summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-08-17 10:46:12 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-08-17 10:46:12 +0000
commit51dfb248933e5fac12fee1be8471bb08f9554428 (patch)
tree1d25518313ca94af4257e56ef919605a219a4178
parentAdding upstream version 1.42.0. (diff)
downloadnetdata-51dfb248933e5fac12fee1be8471bb08f9554428.tar.xz
netdata-51dfb248933e5fac12fee1be8471bb08f9554428.zip
Adding upstream version 1.42.1.upstream/1.42.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--.github/data/distros.yml2
-rw-r--r--CHANGELOG.md51
-rw-r--r--collectors/apps.plugin/apps_plugin.c5
-rw-r--r--collectors/plugins.d/pluginsd_parser.c4
-rw-r--r--collectors/python.d.plugin/hpssa/hpssa.chart.py2
-rw-r--r--collectors/systemd-journal.plugin/systemd-journal.c19
-rw-r--r--contrib/debian/control2
-rw-r--r--contrib/debian/netdata-plugin-apps.postinst5
-rw-r--r--contrib/debian/netdata-plugin-debugfs.postinst5
-rw-r--r--contrib/debian/netdata-plugin-go.postinst5
-rw-r--r--contrib/debian/netdata-plugin-perf.postinst8
-rw-r--r--contrib/debian/netdata-plugin-slabinfo.postinst5
-rw-r--r--contrib/debian/netdata-plugin-systemd-journal.postinst5
-rwxr-xr-xdatabase/engine/rrdengineapi.c7
-rw-r--r--libnetdata/facets/facets.c10
-rw-r--r--libnetdata/facets/facets.h2
-rw-r--r--netdata.spec.in16
-rw-r--r--packaging/docker/Dockerfile1
-rw-r--r--packaging/makeself/openssl.version2
-rw-r--r--packaging/version2
-rw-r--r--registry/registry.c1
-rw-r--r--web/api/web_api.c31
-rw-r--r--web/api/web_api_v1.c21
-rw-r--r--web/api/web_api_v2.c17
-rw-r--r--web/gui/index.html5
-rw-r--r--web/gui/v2/102.625f7fb40793758916f1.chunk.js (renamed from web/gui/v2/102.dc7f30189e6e1105143b.chunk.js)2
-rw-r--r--web/gui/v2/129.1d087d9f7fb4bfa3cb72.chunk.js1
-rw-r--r--web/gui/v2/129.59192a62539648e72a38.chunk.js1
-rw-r--r--web/gui/v2/147.d9a3ab5a852935e0e203.chunk.js (renamed from web/gui/v2/147.dcf17e31c752be5e1c60.chunk.js)2
-rw-r--r--web/gui/v2/18.89d32c7ee15496f689f3.chunk.js (renamed from web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js)4
-rw-r--r--web/gui/v2/18.89d32c7ee15496f689f3.chunk.js.LICENSE.txt (renamed from web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js.LICENSE.txt)0
-rw-r--r--web/gui/v2/193.6c0f51af21cfef8bce9d.chunk.js (renamed from web/gui/v2/193.94e6e52842fb25d00193.chunk.js)2
-rw-r--r--web/gui/v2/20.625d62276782f5f021c5.chunk.js (renamed from web/gui/v2/20.a271e6cfa915fdaf3602.chunk.js)2
-rw-r--r--web/gui/v2/241.dcc517f9189cb747150e.chunk.js (renamed from web/gui/v2/241.9c26252244ccad9ac280.chunk.js)2
-rw-r--r--web/gui/v2/252.c34ade07cc21e6fd9b8e.chunk.js (renamed from web/gui/v2/252.ecac74e9755e6d96573c.chunk.js)2
-rw-r--r--web/gui/v2/264.296e4fe770b1756ed46b.chunk.js (renamed from web/gui/v2/264.a5876f358dd6972563d5.chunk.js)2
-rw-r--r--web/gui/v2/27.23f7ef0669e969b74f95.chunk.js (renamed from web/gui/v2/27.922062ec65b1e01389ee.chunk.js)4
-rw-r--r--web/gui/v2/27.23f7ef0669e969b74f95.chunk.js.LICENSE.txt (renamed from web/gui/v2/27.922062ec65b1e01389ee.chunk.js.LICENSE.txt)0
-rw-r--r--web/gui/v2/277.93f8d8d191859a1c59dc.chunk.js1
-rw-r--r--web/gui/v2/282.112f65cb06615e413141.chunk.js (renamed from web/gui/v2/282.8b52e573f86730f801fc.chunk.js)2
-rw-r--r--web/gui/v2/324.328e79181dbe63b612fa.chunk.js (renamed from web/gui/v2/324.4fc60bcaa065dab2898f.chunk.js)2
-rw-r--r--web/gui/v2/359.aefe439f4f7fb9a02e15.chunk.js (renamed from web/gui/v2/359.fde431aadc6dd872d1b3.chunk.js)2
-rw-r--r--web/gui/v2/360.a55ccd8aeddca3df6bd0.chunk.js (renamed from web/gui/v2/360.035df4a77480670d5715.chunk.js)2
-rw-r--r--web/gui/v2/376.9a81f019e3c71e29c4e1.js2
-rw-r--r--web/gui/v2/376.e533843d1907d4e8dafa.js2
-rw-r--r--web/gui/v2/376.e533843d1907d4e8dafa.js.LICENSE.txt (renamed from web/gui/v2/376.9a81f019e3c71e29c4e1.js.LICENSE.txt)6
-rw-r--r--web/gui/v2/3D_PARTY_LICENSES.txt53
-rw-r--r--web/gui/v2/427.acd538b4ce317d11342e.chunk.js1
-rw-r--r--web/gui/v2/43.36c13bf5ecbdd5373881.chunk.js (renamed from web/gui/v2/43.178b68b4bde3a2876bd8.chunk.js)2
-rw-r--r--web/gui/v2/447.99c65cf897c2e7a4e174.chunk.js (renamed from web/gui/v2/447.d73a7051f850d9257b12.chunk.js)2
-rw-r--r--web/gui/v2/451.aec55cb715f41fc72a63.chunk.js (renamed from web/gui/v2/451.c12c367c27438b213814.chunk.js)2
-rw-r--r--web/gui/v2/470.5ab9b3dc905a52581ba0.chunk.js (renamed from web/gui/v2/470.f28faa6be4559491ed1e.chunk.js)2
-rw-r--r--web/gui/v2/502.517f9b221f4ed676c586.chunk.js (renamed from web/gui/v2/502.9438cab3c9c41c42ed57.chunk.js)2
-rw-r--r--web/gui/v2/510.ea4a79b1c75b8035f760.chunk.js (renamed from web/gui/v2/510.d6163fa8dc978bbb2b42.chunk.js)2
-rw-r--r--web/gui/v2/514.af9132e943f111b25f1c.chunk.js (renamed from web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js)4
-rw-r--r--web/gui/v2/514.af9132e943f111b25f1c.chunk.js.LICENSE.txt (renamed from web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js.LICENSE.txt)2
-rw-r--r--web/gui/v2/533.7791da896bd0af46ae45.chunk.js (renamed from web/gui/v2/533.bf2c24b99df0c8f8a234.chunk.js)2
-rw-r--r--web/gui/v2/564.2354fe745e05d75abbf2.chunk.js (renamed from web/gui/v2/564.22a72ae2b4d5c2e659a1.chunk.js)2
-rw-r--r--web/gui/v2/575.76dcaacb1c2276f86dea.chunk.js (renamed from web/gui/v2/575.9daac2298d0395fdf183.chunk.js)4
-rw-r--r--web/gui/v2/575.76dcaacb1c2276f86dea.chunk.js.LICENSE.txt (renamed from web/gui/v2/575.9daac2298d0395fdf183.chunk.js.LICENSE.txt)0
-rw-r--r--web/gui/v2/597.cb6f23362a28e63af220.chunk.js (renamed from web/gui/v2/597.5d5a03215ae545861922.chunk.js)2
-rw-r--r--web/gui/v2/610.1001494a66c38627ff37.chunk.js (renamed from web/gui/v2/610.d671813e159356dd5674.chunk.js)2
-rw-r--r--web/gui/v2/654.67b0714ebd49a65d277c.chunk.js1
-rw-r--r--web/gui/v2/654.89446e8c7a0b8bba60ba.chunk.js1
-rw-r--r--web/gui/v2/655.6b819502f310febec992.chunk.js (renamed from web/gui/v2/655.e9a4b596ea0a5d9c7bff.chunk.js)2
-rw-r--r--web/gui/v2/663.a89b1206f4b293aabe4b.chunk.js (renamed from web/gui/v2/663.08e4639637c3d8f77b7c.chunk.js)2
-rw-r--r--web/gui/v2/676.4ce73c27b29d5f4672bb.chunk.js1
-rw-r--r--web/gui/v2/676.ccb665950325037c0dda.css (renamed from web/gui/v2/427.ccb665950325037c0dda.css)0
-rw-r--r--web/gui/v2/723.44a07361b47c51d272dd.chunk.js (renamed from web/gui/v2/723.5cbb8237ca47fb280150.chunk.js)2
-rw-r--r--web/gui/v2/765.abdc73e99f918c4200a8.chunk.js1
-rw-r--r--web/gui/v2/765.e7fa6ef71a637cc3ae4d.chunk.js1
-rw-r--r--web/gui/v2/814.3332136a855b7f4da0ef.chunk.js1
-rw-r--r--web/gui/v2/814.bfc6d4650c1097dc56eb.chunk.js1
-rw-r--r--web/gui/v2/817.cd5bd5294b2afab8578f.chunk.js (renamed from web/gui/v2/817.883beafccc77faf546a2.chunk.js)2
-rw-r--r--web/gui/v2/837.bedee580bb54cbbff07c.chunk.js (renamed from web/gui/v2/837.457977c0c92687b5bf08.chunk.js)2
-rw-r--r--web/gui/v2/851.7d3f8a7b3ffc933098b8.chunk.js (renamed from web/gui/v2/851.c2d4621d872e935ac44a.chunk.js)2
-rw-r--r--web/gui/v2/86.a471108ca7f6fc7080fe.chunk.js (renamed from web/gui/v2/86.5e866a98fcb6e62687d3.chunk.js)2
-rw-r--r--web/gui/v2/915.c5be29433632e593abf9.chunk.js1
-rw-r--r--web/gui/v2/934.627b38e3de836130d875.chunk.js1
-rw-r--r--web/gui/v2/934.9dc27c5ebc538bddabb3.chunk.js1
-rw-r--r--web/gui/v2/952.8782ae4b4eb5f5d394ba.chunk.js2
-rw-r--r--web/gui/v2/952.8782ae4b4eb5f5d394ba.chunk.js.LICENSE.txt (renamed from web/gui/v2/952.fd601224f55afda56157.chunk.js.LICENSE.txt)0
-rw-r--r--web/gui/v2/952.fd601224f55afda56157.chunk.js2
-rw-r--r--web/gui/v2/969.64ecdcbb7383f4baee16.chunk.js (renamed from web/gui/v2/969.888044e63adb99d3626d.chunk.js)2
-rw-r--r--web/gui/v2/977.f955167348f6c9037af1.chunk.js (renamed from web/gui/v2/977.96e2ff6feb44e920b79e.chunk.js)2
-rw-r--r--web/gui/v2/Makefile.am112
-rw-r--r--web/gui/v2/agent.html5
-rw-r--r--web/gui/v2/allFiles.6.28.0.json (renamed from web/gui/v2/allFiles.6.27.0.json)194
-rw-r--r--web/gui/v2/allFiles.6.json194
-rw-r--r--web/gui/v2/app.04e10fe5e2e2b4abb9de.js (renamed from web/gui/v2/app.24424bcb6923064df250.js)2
-rw-r--r--web/gui/v2/bundlesManifest.6.json8
-rw-r--r--web/gui/v2/editor.2c7891085085940ad860.chunk.js (renamed from web/gui/v2/editor.0483213ccc286f86f266.chunk.js)2
-rw-r--r--web/gui/v2/index.html5
-rw-r--r--web/gui/v2/local-agent.html5
-rw-r--r--web/gui/v2/npm.react.dom.5f194c629d90a617d1ac.js (renamed from web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js)4
-rw-r--r--web/gui/v2/npm.react.dom.5f194c629d90a617d1ac.js.LICENSE.txt (renamed from web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js.LICENSE.txt)0
-rw-r--r--web/gui/v2/runtime.519955e002a87da88924.js1
-rw-r--r--web/gui/v2/runtime.db3b1f7db7a8e8ecf561.js1
-rw-r--r--web/gui/v2/sw.js2
-rw-r--r--web/server/web_client.c4
100 files changed, 509 insertions, 422 deletions
diff --git a/.github/data/distros.yml b/.github/data/distros.yml
index 82737850..cdd0faf0 100644
--- a/.github/data/distros.yml
+++ b/.github/data/distros.yml
@@ -198,7 +198,7 @@ include:
zypper rm -y libjson-c-devel
packages: &opensuse_packages
type: rpm
- repo_distro: opensuse/leap:15.4
+ repo_distro: opensuse/leap:15.5
arches:
- x86_64
- aarch64
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e1fe6d57..503a940e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,34 @@
# Changelog
+## [v1.42.1](https://github.com/netdata/netdata/tree/v1.42.1) (2023-08-16)
+
+[Full Changelog](https://github.com/netdata/netdata/compare/v1.42.0...v1.42.1)
+
+**Merged pull requests:**
+
+- systemd-journal fixes [\#15814](https://github.com/netdata/netdata/pull/15814) ([ktsaou](https://github.com/ktsaou))
+- fix packaging: link health.log to stdout [\#15813](https://github.com/netdata/netdata/pull/15813) ([ilyam8](https://github.com/ilyam8))
+- docs rename alarm to alert [\#15812](https://github.com/netdata/netdata/pull/15812) ([ilyam8](https://github.com/ilyam8))
+- bump ui to v6.28.0 [\#15810](https://github.com/netdata/netdata/pull/15810) ([ilyam8](https://github.com/ilyam8))
+- return 412 instead of 403 when a bearer token is required [\#15808](https://github.com/netdata/netdata/pull/15808) ([ktsaou](https://github.com/ktsaou))
+- fix api v1 mgmt/health [\#15806](https://github.com/netdata/netdata/pull/15806) ([underhood](https://github.com/underhood))
+- Fix systemd journal build deps in DEB packages. [\#15805](https://github.com/netdata/netdata/pull/15805) ([Ferroin](https://github.com/Ferroin))
+- Clean up python deps for RPM packages. [\#15804](https://github.com/netdata/netdata/pull/15804) ([Ferroin](https://github.com/Ferroin))
+- Add proper SUID fallback for DEB plugin packages. [\#15803](https://github.com/netdata/netdata/pull/15803) ([Ferroin](https://github.com/Ferroin))
+- nfacct.plugin increase restart time from 4 hours to 1 day [\#15801](https://github.com/netdata/netdata/pull/15801) ([ilyam8](https://github.com/ilyam8))
+- Function systemd-journal: always have a nd\_journal\_process [\#15798](https://github.com/netdata/netdata/pull/15798) ([ktsaou](https://github.com/ktsaou))
+- prevent reporting negative retention when the db is empty [\#15796](https://github.com/netdata/netdata/pull/15796) ([ktsaou](https://github.com/ktsaou))
+- Fix typo in Readme [\#15794](https://github.com/netdata/netdata/pull/15794) ([shyamvalsan](https://github.com/shyamvalsan))
+- fix hpssa handle unassigned drives [\#15793](https://github.com/netdata/netdata/pull/15793) ([ilyam8](https://github.com/ilyam8))
+- count functions as collections, to restart plugins [\#15787](https://github.com/netdata/netdata/pull/15787) ([ktsaou](https://github.com/ktsaou))
+- Set correct path for ansible-playbook in deployment tutorial [\#15786](https://github.com/netdata/netdata/pull/15786) ([novotnyJiri](https://github.com/novotnyJiri))
+- minor Dyncfg mvp0 fixes [\#15785](https://github.com/netdata/netdata/pull/15785) ([underhood](https://github.com/underhood))
+- fix docker-compose example [\#15784](https://github.com/netdata/netdata/pull/15784) ([zhqu1148980644](https://github.com/zhqu1148980644))
+- mark integrations milestones as completed in README.md [\#15783](https://github.com/netdata/netdata/pull/15783) ([tkatsoulas](https://github.com/tkatsoulas))
+- Update an oversight on the openSUSE 15.5 packages [\#15781](https://github.com/netdata/netdata/pull/15781) ([tkatsoulas](https://github.com/tkatsoulas))
+- Bump openssl version of static builds to 1.1.1v [\#15779](https://github.com/netdata/netdata/pull/15779) ([tkatsoulas](https://github.com/tkatsoulas))
+- fix: the cleanup was not performed during the kickstart.sh dry run [\#15775](https://github.com/netdata/netdata/pull/15775) ([ilyam8](https://github.com/ilyam8))
+
## [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)
@@ -396,28 +425,6 @@
- Fix $\(libh2o\_dir\) not expanded properly sometimes. [\#15253](https://github.com/netdata/netdata/pull/15253) ([Dim-P](https://github.com/Dim-P))
- use gperf for the pluginsd/streaming parser hashtable [\#15251](https://github.com/netdata/netdata/pull/15251) ([ktsaou](https://github.com/ktsaou))
- Update pfsense.md package install instructions [\#15250](https://github.com/netdata/netdata/pull/15250) ([MYanello](https://github.com/MYanello))
-- URL rewrite at the agent web server to support multiple dashboard versions [\#15247](https://github.com/netdata/netdata/pull/15247) ([ktsaou](https://github.com/ktsaou))
-- delay collecting virtual network interfaces [\#15244](https://github.com/netdata/netdata/pull/15244) ([ilyam8](https://github.com/ilyam8))
-- Assorted kickstart script improvements. [\#15243](https://github.com/netdata/netdata/pull/15243) ([Ferroin](https://github.com/Ferroin))
-- Install the correct systemd unit file on older RPM systems. [\#15240](https://github.com/netdata/netdata/pull/15240) ([Ferroin](https://github.com/Ferroin))
-- Add yaml metadata for metrics.csv files [\#15238](https://github.com/netdata/netdata/pull/15238) ([Ancairon](https://github.com/Ancairon))
-- Add module column to apps.plugin csv [\#15235](https://github.com/netdata/netdata/pull/15235) ([Ancairon](https://github.com/Ancairon))
-- Fix coverity 393183 & 393182 [\#15234](https://github.com/netdata/netdata/pull/15234) ([MrZammler](https://github.com/MrZammler))
-- Create index for health log migration [\#15233](https://github.com/netdata/netdata/pull/15233) ([stelfrag](https://github.com/stelfrag))
-- New alerts endpoint [\#15232](https://github.com/netdata/netdata/pull/15232) ([stelfrag](https://github.com/stelfrag))
-- fix not handling N/A value in python.d/nvidia\_smi [\#15231](https://github.com/netdata/netdata/pull/15231) ([ilyam8](https://github.com/ilyam8))
-- Fix handling of plugin ownership in static builds. [\#15230](https://github.com/netdata/netdata/pull/15230) ([Ferroin](https://github.com/Ferroin))
-- /api/v2 improvements [\#15227](https://github.com/netdata/netdata/pull/15227) ([ktsaou](https://github.com/ktsaou))
-- Remove erroneous space for unit [\#15226](https://github.com/netdata/netdata/pull/15226) ([ralphm](https://github.com/ralphm))
-- Relax jnfv2 caching [\#15224](https://github.com/netdata/netdata/pull/15224) ([ktsaou](https://github.com/ktsaou))
-- Fix /api/v2/contexts,nodes,nodes\_instances,q before match [\#15223](https://github.com/netdata/netdata/pull/15223) ([ktsaou](https://github.com/ktsaou))
-- Fix SSL non-blocking retry handling in the web server [\#15222](https://github.com/netdata/netdata/pull/15222) ([ktsaou](https://github.com/ktsaou))
-- Update dashboard to version v3.0.0. [\#15219](https://github.com/netdata/netdata/pull/15219) ([netdatabot](https://github.com/netdatabot))
-- fix arch detection on i386 \(native packages\) [\#15218](https://github.com/netdata/netdata/pull/15218) ([ilyam8](https://github.com/ilyam8))
-- RW\_SPINLOCK: recursive readers support [\#15217](https://github.com/netdata/netdata/pull/15217) ([ktsaou](https://github.com/ktsaou))
-- 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))
## [v1.40.1](https://github.com/netdata/netdata/tree/v1.40.1) (2023-06-27)
diff --git a/collectors/apps.plugin/apps_plugin.c b/collectors/apps.plugin/apps_plugin.c
index 94f997e8..d25ae3f9 100644
--- a/collectors/apps.plugin/apps_plugin.c
+++ b/collectors/apps.plugin/apps_plugin.c
@@ -16,6 +16,9 @@
fprintf(stdout, PLUGINSD_KEYWORD_FUNCTION " \"processes\" %d \"%s\"\n", PLUGINS_FUNCTIONS_TIMEOUT_DEFAULT, APPS_PLUGIN_PROCESSES_FUNCTION_DESCRIPTION); \
} while(0)
+#define APPS_PLUGIN_GLOBAL_FUNCTIONS() do { \
+ fprintf(stdout, PLUGINSD_KEYWORD_FUNCTION " GLOBAL \"processes\" %d \"%s\"\n", PLUGINS_FUNCTIONS_TIMEOUT_DEFAULT, APPS_PLUGIN_PROCESSES_FUNCTION_DESCRIPTION); \
+ } while(0)
// ----------------------------------------------------------------------------
// debugging
@@ -5687,7 +5690,7 @@ 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();
+ APPS_PLUGIN_GLOBAL_FUNCTIONS();
usec_t step = update_every * USEC_PER_SEC;
global_iterations_counter = 1;
diff --git a/collectors/plugins.d/pluginsd_parser.c b/collectors/plugins.d/pluginsd_parser.c
index 19aa4544..e7a3c40e 100644
--- a/collectors/plugins.d/pluginsd_parser.c
+++ b/collectors/plugins.d/pluginsd_parser.c
@@ -887,6 +887,8 @@ static inline PARSER_RC pluginsd_function(char **words, size_t num_words, PARSER
rrd_collector_add_function(host, st, name, timeout, help, false, pluginsd_execute_function_callback, parser);
+ parser->user.data_collections_count++;
+
return PARSER_RC_OK;
}
@@ -895,6 +897,8 @@ static void pluginsd_function_result_end(struct parser *parser, void *action_dat
if(key)
dictionary_del(parser->inflight.functions, string2str(key));
string_freez(key);
+
+ parser->user.data_collections_count++;
}
static inline PARSER_RC pluginsd_function_result_begin(char **words, size_t num_words, PARSER *parser) {
diff --git a/collectors/python.d.plugin/hpssa/hpssa.chart.py b/collectors/python.d.plugin/hpssa/hpssa.chart.py
index 4da73dc5..66be0083 100644
--- a/collectors/python.d.plugin/hpssa/hpssa.chart.py
+++ b/collectors/python.d.plugin/hpssa/hpssa.chart.py
@@ -182,7 +182,7 @@ class HPSSA(object):
break
elif array_regex.match(line):
self.parse_array(adapter)
- elif line == 'Unassigned' or line == 'HBA Drives':
+ elif line in ('Unassigned', 'unassigned') or line == 'HBA Drives':
self.parse_physical_drives(adapter)
elif ignored_sections_regex.match(line):
self.parse_ignored_section()
diff --git a/collectors/systemd-journal.plugin/systemd-journal.c b/collectors/systemd-journal.plugin/systemd-journal.c
index 08a1891e..0aaa3604 100644
--- a/collectors/systemd-journal.plugin/systemd-journal.c
+++ b/collectors/systemd-journal.plugin/systemd-journal.c
@@ -305,14 +305,23 @@ static void systemd_journal_transform_gid(FACETS *facets __maybe_unused, BUFFER
}
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 *pid = pid_rkv ? buffer_tostring(pid_rkv->wb) : FACET_VALUE_UNSET;
+
+ FACET_ROW_KEY_VALUE *syslog_identifier_rkv = dictionary_get(row->dict, "SYSLOG_IDENTIFIER");
+ const char *identifier = syslog_identifier_rkv ? buffer_tostring(syslog_identifier_rkv->wb) : FACET_VALUE_UNSET;
- const char *identifier = syslog_identifier_rkv ? buffer_tostring(syslog_identifier_rkv->wb) : "UNKNOWN";
- const char *pid = pid_rkv ? buffer_tostring(pid_rkv->wb) : "UNKNOWN";
+ if(strcmp(identifier, FACET_VALUE_UNSET) == 0) {
+ FACET_ROW_KEY_VALUE *comm_rkv = dictionary_get(row->dict, "_COMM");
+ identifier = comm_rkv ? buffer_tostring(comm_rkv->wb) : FACET_VALUE_UNSET;
+ }
buffer_flush(rkv->wb);
- buffer_sprintf(rkv->wb, "%s[%s]", identifier, pid);
+
+ if(strcmp(pid, FACET_VALUE_UNSET) == 0)
+ buffer_strcat(rkv->wb, identifier);
+ else
+ buffer_sprintf(rkv->wb, "%s[%s]", identifier, pid);
buffer_json_add_array_item_string(json_array, buffer_tostring(rkv->wb));
}
@@ -557,7 +566,7 @@ int main(int argc __maybe_unused, char **argv __maybe_unused) {
bool tty = isatty(fileno(stderr)) == 1;
netdata_mutex_lock(&mutex);
- fprintf(stdout, PLUGINSD_KEYWORD_FUNCTION " \"%s\" %d \"%s\"\n",
+ fprintf(stdout, PLUGINSD_KEYWORD_FUNCTION " GLOBAL \"%s\" %d \"%s\"\n",
SYSTEMD_JOURNAL_FUNCTION_NAME, SYSTEMD_JOURNAL_DEFAULT_TIMEOUT, SYSTEMD_JOURNAL_FUNCTION_DESCRIPTION);
heartbeat_t hb;
diff --git a/contrib/debian/control b/contrib/debian/control
index e2b0ca14..262a93a6 100644
--- a/contrib/debian/control
+++ b/contrib/debian/control
@@ -17,6 +17,7 @@ Build-Depends: debhelper (>= 9.20160709),
libsnappy-dev,
libprotobuf-dev,
libprotoc-dev,
+ libsystemd-dev,
cmake,
autogen,
autoconf,
@@ -196,7 +197,6 @@ 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
diff --git a/contrib/debian/netdata-plugin-apps.postinst b/contrib/debian/netdata-plugin-apps.postinst
index 04f91453..f2e52a4b 100644
--- a/contrib/debian/netdata-plugin-apps.postinst
+++ b/contrib/debian/netdata-plugin-apps.postinst
@@ -5,7 +5,10 @@ set -e
case "$1" in
configure|reconfigure)
chown root:netdata /usr/libexec/netdata/plugins.d/apps.plugin
- setcap "cap_dac_read_search=eip cap_sys_ptrace=eip" /usr/libexec/netdata/plugins.d/apps.plugin
+ chmod 0750 /usr/libexec/netdata/plugins.d/apps.plugin
+ if ! setcap "cap_dac_read_search=eip cap_sys_ptrace=eip" /usr/libexec/netdata/plugins.d/apps.plugin; then
+ chmod -f 4750 /usr/libexec/netdata/plugins.d/apps.plugin
+ fi
;;
esac
diff --git a/contrib/debian/netdata-plugin-debugfs.postinst b/contrib/debian/netdata-plugin-debugfs.postinst
index 75d08fd1..4519dabd 100644
--- a/contrib/debian/netdata-plugin-debugfs.postinst
+++ b/contrib/debian/netdata-plugin-debugfs.postinst
@@ -5,7 +5,10 @@ set -e
case "$1" in
configure|reconfigure)
chown root:netdata /usr/libexec/netdata/plugins.d/debugfs.plugin
- setcap "cap_dac_read_search=eip" /usr/libexec/netdata/plugins.d/debugfs.plugin
+ chmod 0750 /usr/libexec/netdata/plugins.d/debugfs.plugin
+ if ! setcap "cap_dac_read_search=eip" /usr/libexec/netdata/plugins.d/debugfs.plugin; then
+ chmod -f 4750 /usr/libexec/netdata/plugins.d/debugfs.plugin
+ fi
;;
esac
diff --git a/contrib/debian/netdata-plugin-go.postinst b/contrib/debian/netdata-plugin-go.postinst
index 9cfce16f..70d67aaa 100644
--- a/contrib/debian/netdata-plugin-go.postinst
+++ b/contrib/debian/netdata-plugin-go.postinst
@@ -5,7 +5,10 @@ set -e
case "$1" in
configure|reconfigure)
chown root:netdata /usr/libexec/netdata/plugins.d/go.d.plugin
- setcap "cap_net_admin=eip cap_net_raw=eip" /usr/libexec/netdata/plugins.d/go.d.plugin
+ chmod 0750 /usr/libexec/netdata/plugins.d/go.d.plugin
+ if ! setcap "cap_net_admin=eip cap_net_raw=eip" /usr/libexec/netdata/plugins.d/go.d.plugin; then
+ chmod -f 4750 /usr/libexec/netdata/plugins.d/go.d.plugin
+ fi
;;
esac
diff --git a/contrib/debian/netdata-plugin-perf.postinst b/contrib/debian/netdata-plugin-perf.postinst
index 5250275c..76905878 100644
--- a/contrib/debian/netdata-plugin-perf.postinst
+++ b/contrib/debian/netdata-plugin-perf.postinst
@@ -5,10 +5,18 @@ set -e
case "$1" in
configure|reconfigure)
chown root:netdata /usr/libexec/netdata/plugins.d/perf.plugin
+ chmod 0750 /usr/libexec/netdata/plugins.d/perf.plugin
+
if capsh --supports=cap_perfmon 2>/dev/null; then
setcap cap_perfmon+ep /usr/libexec/netdata/plugins.d/perf.plugin
+ ret="$?"
else
setcap cap_sys_admin+ep /usr/libexec/netdata/plugins.d/perf.plugin
+ ret="$?"
+ fi
+
+ if [ "${ret}" -ne 0 ]; then
+ chmod -f 4750 /usr/libexec/netdata/plugins.d/perf.plugin
fi
;;
esac
diff --git a/contrib/debian/netdata-plugin-slabinfo.postinst b/contrib/debian/netdata-plugin-slabinfo.postinst
index b697e724..b4aa87ba 100644
--- a/contrib/debian/netdata-plugin-slabinfo.postinst
+++ b/contrib/debian/netdata-plugin-slabinfo.postinst
@@ -5,7 +5,10 @@ set -e
case "$1" in
configure|reconfigure)
chown root:netdata /usr/libexec/netdata/plugins.d/slabinfo.plugin
- setcap "cap_dac_read_search=eip" /usr/libexec/netdata/plugins.d/slabinfo.plugin
+ chmod 0750 /usr/libexec/netdata/plugins.d/slabinfo.plugin
+ if ! setcap "cap_dac_read_search=eip" /usr/libexec/netdata/plugins.d/slabinfo.plugin; then
+ chmod -f 4750 /usr/libexec/netdata/plugins.d/slabinfo.plugin
+ fi
;;
esac
diff --git a/contrib/debian/netdata-plugin-systemd-journal.postinst b/contrib/debian/netdata-plugin-systemd-journal.postinst
index d2f71970..b5e56f75 100644
--- a/contrib/debian/netdata-plugin-systemd-journal.postinst
+++ b/contrib/debian/netdata-plugin-systemd-journal.postinst
@@ -5,7 +5,10 @@ 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
+ chmod 0750 /usr/libexec/netdata/plugins.d/systemd-journal.plugin
+ if ! setcap "cap_dac_read_search=eip" /usr/libexec/netdata/plugins.d/systemd-journal.plugin; then
+ chmod -f 4750 /usr/libexec/netdata/plugins.d/systemd-journal.plugin
+ fi
;;
esac
diff --git a/database/engine/rrdengineapi.c b/database/engine/rrdengineapi.c
index 264cbdfe..c6b1fa2d 100755
--- a/database/engine/rrdengineapi.c
+++ b/database/engine/rrdengineapi.c
@@ -1014,7 +1014,12 @@ size_t rrdeng_disk_space_used(STORAGE_INSTANCE *db_instance) {
time_t rrdeng_global_first_time_s(STORAGE_INSTANCE *db_instance) {
struct rrdengine_instance *ctx = (struct rrdengine_instance *)db_instance;
- return __atomic_load_n(&ctx->atomic.first_time_s, __ATOMIC_RELAXED);
+
+ time_t t = __atomic_load_n(&ctx->atomic.first_time_s, __ATOMIC_RELAXED);
+ if(t == LONG_MAX || t < 0)
+ t = 0;
+
+ return t;
}
size_t rrdeng_currently_collected_metrics(STORAGE_INSTANCE *db_instance) {
diff --git a/libnetdata/facets/facets.c b/libnetdata/facets/facets.c
index 8762b43b..b285baf0 100644
--- a/libnetdata/facets/facets.c
+++ b/libnetdata/facets/facets.c
@@ -1,6 +1,5 @@
#include "facets.h"
-#define FACET_VALUE_UNSET "-"
#define HISTOGRAM_COLUMNS 60
static void facets_row_free(FACETS *facets __maybe_unused, FACET_ROW *row);
@@ -197,14 +196,14 @@ static void facet_value_insert_callback(const DICTIONARY_ITEM *item __maybe_unus
FACET_VALUE *v = value;
FACET_KEY *k = data;
+ if(!v->selected)
+ v->selected = k->default_selected_for_values;
+
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) {
@@ -219,6 +218,9 @@ static bool facet_value_conflict_callback(const DICTIONARY_ITEM *item __maybe_un
if(v->name)
facet_value_is_used(k, v);
+ internal_fatal(v->name && strcmp(v->name, nv->name) != 0, "hash conflict: '%s' and '%s' have the same hash '%s'", v->name, nv->name,
+ dictionary_acquired_item_name(item));
+
return false;
}
diff --git a/libnetdata/facets/facets.h b/libnetdata/facets/facets.h
index c0f7f80c..796d15a0 100644
--- a/libnetdata/facets/facets.h
+++ b/libnetdata/facets/facets.h
@@ -3,6 +3,8 @@
#include "../libnetdata.h"
+#define FACET_VALUE_UNSET "-"
+
typedef enum __attribute__((packed)) {
FACET_KEY_OPTION_FACET = (1 << 0), // filterable values
FACET_KEY_OPTION_NO_FACET = (1 << 1), // non-filterable value
diff --git a/netdata.spec.in b/netdata.spec.in
index 146ee434..44501d5d 100644
--- a/netdata.spec.in
+++ b/netdata.spec.in
@@ -124,18 +124,6 @@ BuildRequires: systemd-rpm-macros
BuildRequires: systemd
%endif
-# Runtime dependencies
-#
-%if 0%{?centos_ver} == 7 || 0%{?centos_ver} == 6
-Requires: python
-%else
-%if 0%{?centos_ver} == 8
-Requires: python38
-%else
-Requires: python3
-%endif
-%endif
-
# Core requirements for the install to succeed
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
@@ -767,12 +755,8 @@ Conflicts: netdata < %{version}
%if 0%{?centos_ver} == 7 || 0%{?centos_ver} == 6
Requires: python
%else
-%if 0%{?centos_ver} == 8
-Requires: python38
-%else
Requires: python3
%endif
-%endif
%if 0%{?centos_ver} != 7
Suggests: sudo
%endif
diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile
index 4cbba913..cf637036 100644
--- a/packaging/docker/Dockerfile
+++ b/packaging/docker/Dockerfile
@@ -79,6 +79,7 @@ RUN mkdir -p /opt/src /var/log/netdata && \
ln -sf /dev/stdout /var/log/netdata/debug.log && \
ln -sf /dev/stderr /var/log/netdata/error.log && \
ln -sf /dev/stdout /var/log/netdata/collector.log && \
+ ln -sf /dev/stdout /var/log/netdata/health.log && \
# Add netdata user
addgroup -g ${NETDATA_GID} -S "${DOCKER_GRP}" && \
adduser -S -H -s /usr/sbin/nologin -u ${NETDATA_GID} -h /etc/netdata -G "${DOCKER_GRP}" "${DOCKER_USR}"
diff --git a/packaging/makeself/openssl.version b/packaging/makeself/openssl.version
index 374b3773..6c101b58 100644
--- a/packaging/makeself/openssl.version
+++ b/packaging/makeself/openssl.version
@@ -1 +1 @@
-OpenSSL_1_1_1t
+OpenSSL_1_1_1v
diff --git a/packaging/version b/packaging/version
index 51e6dd78..dc34105e 100644
--- a/packaging/version
+++ b/packaging/version
@@ -1 +1 @@
-v1.42.0
+v1.42.1
diff --git a/registry/registry.c b/registry/registry.c
index 0393389e..a2a8dd7e 100644
--- a/registry/registry.c
+++ b/registry/registry.c
@@ -192,6 +192,7 @@ int registry_request_hello_json(RRDHOST *host, struct web_client *w) {
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_boolean(w->response.data, "X-Netdata-Auth", true);
buffer_json_member_add_array(w->response.data, "nodes");
RRDHOST *h;
diff --git a/web/api/web_api.c b/web/api/web_api.c
index 7a4704bd..96ab0039 100644
--- a/web/api/web_api.c
+++ b/web/api/web_api.c
@@ -5,27 +5,27 @@
bool netdata_is_protected_by_bearer = false; // this is controlled by cloud, at the point the agent logs in - this should also be saved to /var/lib/netdata
DICTIONARY *netdata_authorized_bearers = NULL;
-static bool web_client_check_acl_and_bearer(struct web_client *w, WEB_CLIENT_ACL endpoint_acl) {
+static short int web_client_check_acl_and_bearer(struct web_client *w, WEB_CLIENT_ACL endpoint_acl) {
if(endpoint_acl == WEB_CLIENT_ACL_NONE || (endpoint_acl & WEB_CLIENT_ACL_NOCHECK))
// the endpoint is totally public
- return true;
+ return HTTP_RESP_OK;
bool acl_allows = w->acl & endpoint_acl;
if(!acl_allows)
// the channel we received the request from (w->acl) is not compatible with the endpoint
- return false;
+ return HTTP_RESP_FORBIDDEN;
if(!netdata_is_protected_by_bearer && !(endpoint_acl & WEB_CLIENT_ACL_BEARER_REQUIRED))
// bearer protection is not enabled and is not required by the endpoint
- return true;
+ return HTTP_RESP_OK;
if(!(endpoint_acl & (WEB_CLIENT_ACL_BEARER_REQUIRED|WEB_CLIENT_ACL_BEARER_OPTIONAL)))
// endpoint does not require a bearer
- return true;
+ return HTTP_RESP_OK;
if((w->acl & (WEB_CLIENT_ACL_ACLK|WEB_CLIENT_ACL_WEBRTC)))
// the request is coming from ACLK or WEBRTC (authorized already),
- return true;
+ return HTTP_RESP_OK;
// at this point we need a bearer to serve the request
// either because:
@@ -37,11 +37,11 @@ static bool web_client_check_acl_and_bearer(struct web_client *w, WEB_CLIENT_ACL
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;
+ return HTTP_RESP_OK;
netdata_log_info("BEARER: bearer is required for request: code %d", t);
- return false;
+ return HTTP_RESP_PRECOND_FAIL;
}
int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_path_endpoint, struct web_api_command *api_commands) {
@@ -73,8 +73,19 @@ int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_pat
return HTTP_RESP_BAD_REQUEST;
}
- if(unlikely(!web_client_check_acl_and_bearer(w, api_commands[i].acl)))
- return web_client_permission_denied(w);
+ short int code = web_client_check_acl_and_bearer(w, api_commands[i].acl);
+ if(code != HTTP_RESP_OK) {
+ if(code == HTTP_RESP_FORBIDDEN)
+ return web_client_permission_denied(w);
+
+ if(code == HTTP_RESP_PRECOND_FAIL)
+ return web_client_bearer_required(w);
+
+ buffer_flush(w->response.data);
+ buffer_sprintf(w->response.data, "Failed with code %d", code);
+ w->response.code = code;
+ return code;
+ }
char *query_string = (char *)buffer_tostring(w->url_query_string_decoded);
diff --git a/web/api/web_api_v1.c b/web/api/web_api_v1.c
index 60962413..6371f86b 100644
--- a/web/api/web_api_v1.c
+++ b/web/api/web_api_v1.c
@@ -1524,6 +1524,25 @@ int web_client_api_request_v1_dbengine_stats(RRDHOST *host __maybe_unused, struc
}
#endif
+#define HLT_MGM "manage/health"
+int web_client_api_request_v1_mgmt(RRDHOST *host, struct web_client *w, char *url) {
+ const char *haystack = buffer_tostring(w->url_path_decoded);
+ char *needle;
+
+ buffer_flush(w->response.data);
+
+ if ((needle = strstr(haystack, HLT_MGM)) == NULL) {
+ buffer_strcat(w->response.data, "Invalid management request. Curently only 'health' is supported.");
+ return HTTP_RESP_NOT_FOUND;
+ }
+ needle += strlen(HLT_MGM);
+ if (*needle != '\0') {
+ buffer_strcat(w->response.data, "Invalid management request. Curently only 'health' is supported.");
+ return HTTP_RESP_NOT_FOUND;
+ }
+ return web_client_api_request_v1_mgmt_health(host, w, url);
+}
+
static struct web_api_command api_commands_v1[] = {
{ "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 },
@@ -1550,7 +1569,7 @@ static struct web_api_command api_commands_v1[] = {
// { "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, web_client_api_request_v1_mgmt_health, 0 },
+ {"manage", 0, WEB_CLIENT_ACL_MGMT | WEB_CLIENT_ACL_ACLK, web_client_api_request_v1_mgmt, 1 },
{ "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 },
diff --git a/web/api/web_api_v2.c b/web/api/web_api_v2.c
index 85028212..e288a5c6 100644
--- a/web/api/web_api_v2.c
+++ b/web/api/web_api_v2.c
@@ -53,16 +53,27 @@ static time_t bearer_get_token(uuid_t *uuid) {
}
#define HTTP_REQUEST_AUTHORIZATION_BEARER "\r\nAuthorization: Bearer "
+#define HTTP_REQUEST_X_NETDATA_AUTH_BEARER "\r\nX-Netdata-Auth: Bearer "
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);
+ const char *bearer = NULL;
+ const char *bearer_end = NULL;
+
+ bearer = strcasestr(req, HTTP_REQUEST_X_NETDATA_AUTH_BEARER);
+ if(bearer)
+ bearer_end = bearer + sizeof(HTTP_REQUEST_X_NETDATA_AUTH_BEARER) - 1;
+ else {
+ bearer = strcasestr(req, HTTP_REQUEST_AUTHORIZATION_BEARER);
+ if(bearer)
+ bearer_end = bearer + sizeof(HTTP_REQUEST_AUTHORIZATION_BEARER) - 1;
+ }
- if(!bearer)
+ if(!bearer || !bearer_end)
return BEARER_STATUS_NO_BEARER_IN_HEADERS;
- const char *token_start = bearer + sizeof(HTTP_REQUEST_AUTHORIZATION_BEARER) - 1;
+ const char *token_start = bearer_end;
while(isspace(*token_start))
token_start++;
diff --git a/web/gui/index.html b/web/gui/index.html
index a53ec9e3..b1986599 100644
--- a/web/gui/index.html
+++ b/web/gui/index.html
@@ -27,7 +27,7 @@
demoFavourites: {"postgresql":["postgres"],"redis":["redis"],"dns-query":["dns_query"],"http-endpoints":["httpcheck"],"nginx":["web_log","nginx"],"apache":["apache"],"host-reachability":["ping"],"cassandra":["cassandra"],"coredns":["coredns"],"logind":["logind"],"iis":["iis"],"active-directory":["ad"],"windows":["windows","ad","iis","mssql","exchange","netframework"],"docker":["cgroup","docker"]},
webpackPublicPath: "https://app.netdata.cloud",
agentApiUrl: searchParams.get("agent") || getBasename(),
- version: "6.27.0",
+ version: "6.28.0",
tracking: false,
cookieDomain: ".netdata.cloud",
onprem: false
@@ -139,7 +139,8 @@
mg: data.agent.machine_guid,
nd: data.agent.node_id,
claimId: data.agent.claim_id,
- cloudStatus: data.cloud_status
+ cloudStatus: data.cloud_status,
+ xNetdataAuthHeader: data["X-Netdata-Auth"] || false
}
diff --git a/web/gui/v2/102.dc7f30189e6e1105143b.chunk.js b/web/gui/v2/102.625f7fb40793758916f1.chunk.js
index 2dd39bf2..48b4c473 100644
--- a/web/gui/v2/102.dc7f30189e6e1105143b.chunk.js
+++ b/web/gui/v2/102.625f7fb40793758916f1.chunk.js
@@ -1 +1 @@
-!function(){try{var C="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(C._sentryDebugIds=C._sentryDebugIds||{},C._sentryDebugIds[t]="b58c987b-6e02-4ad5-be26-fdba2cc975ab",C._sentryDebugIdIdentifier="sentry-dbid-b58c987b-6e02-4ad5-be26-fdba2cc975ab")}catch(C){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[102],{48102:function(C,t,e){e.r(t),e.d(t,{default:function(){return u}});var n=e(29439),i=e(67294),l=e(15557),a=e(92432),o=e(87854),d=e.n(o),r=e(95348),c=e.n(r),p=new(d())({id:"terms.svg",use:"terms.svg-usage",viewBox:"0 0 240 240",content:'<symbol viewBox="0 0 240 240" fill="none" xmlns="http://www.w3.org/2000/svg" id="terms.svg">\n<path opacity="0.3" d="M120 240C186.274 240 240 186.274 240 120C240 53.7258 186.274 0 120 0C53.7258 0 0 53.7258 0 120C0 186.274 53.7258 240 120 240Z" fill="#CCDDE8" />\n<path opacity="0.3" d="M120.284 222.398C183.907 222.398 235.484 218.817 235.484 214.398C235.484 209.98 183.907 206.398 120.284 206.398C56.6608 206.398 5.08398 209.98 5.08398 214.398C5.08398 218.817 56.6608 222.398 120.284 222.398Z" fill="#89B0C9" />\n<path d="M187.823 33.6016H58.2234C54.247 33.6016 51.0234 36.8251 51.0234 40.8016V207.202C51.0234 211.178 54.247 214.402 58.2234 214.402H187.823C191.8 214.402 195.023 211.178 195.023 207.202V40.8016C195.023 36.8251 191.8 33.6016 187.823 33.6016Z" fill="#00AB44" />\n<path d="M188.624 41.6016H57.4238V208.002H188.624V41.6016Z" fill="#F3F7FA" />\n<g opacity="0.3">\n<path opacity="0.3" d="M188.623 41.6V208H57.4232V41.6H188.623ZM190.223 40H55.8232V209.6H190.223V40Z" fill="#435969" />\n</g>\n<path opacity="0.2" d="M164.623 33.6016H87.8232V46.4016C87.8232 48.0989 88.4975 49.7268 89.6978 50.927C90.898 52.1273 92.5259 52.8016 94.2232 52.8016H158.223C159.921 52.8016 161.548 52.1273 162.749 50.927C163.949 49.7268 164.623 48.0989 164.623 46.4016V33.6016Z" fill="#233646" />\n<path d="M155.024 27.1992H91.024C87.4894 27.1992 84.624 30.0646 84.624 33.5992V39.9992C84.624 43.5338 87.4894 46.3992 91.024 46.3992H155.024C158.559 46.3992 161.424 43.5338 161.424 39.9992V33.5992C161.424 30.0646 158.559 27.1992 155.024 27.1992Z" fill="#DBDBDB" />\n<path d="M155.024 27.6817H91.024C90.1912 27.6604 89.3626 27.806 88.5869 28.11C87.8113 28.414 87.1044 28.8703 86.5079 29.4518C85.9114 30.0334 85.4374 30.7286 85.1138 31.4963C84.7903 32.2639 84.6237 33.0887 84.624 33.9217V39.6817C84.6237 40.5148 84.7903 41.3395 85.1138 42.1072C85.4374 42.8749 85.9114 43.5701 86.5079 44.1516C87.1044 44.7332 87.8113 45.1895 88.5869 45.4935C89.3626 45.7975 90.1912 45.9431 91.024 45.9217H155.024C155.857 45.9431 156.686 45.7975 157.461 45.4935C158.237 45.1895 158.944 44.7332 159.54 44.1516C160.137 43.5701 160.611 42.8749 160.934 42.1072C161.258 41.3395 161.424 40.5148 161.424 39.6817V33.9217C161.424 33.0887 161.258 32.2639 160.934 31.4963C160.611 30.7286 160.137 30.0334 159.54 29.4518C158.944 28.8703 158.237 28.414 157.461 28.11C156.686 27.806 155.857 27.6604 155.024 27.6817Z" fill="#DCDCDC" />\n<path d="M155.024 28.1609H91.024C90.2124 28.1178 89.4003 28.238 88.6359 28.5142C87.8715 28.7904 87.1702 29.2171 86.5736 29.769C85.9769 30.3209 85.4969 30.9869 85.1621 31.7275C84.8272 32.4681 84.6443 33.2683 84.624 34.0809V39.5209C84.6443 40.3334 84.8272 41.1336 85.1621 41.8742C85.4969 42.6149 85.9769 43.2808 86.5736 43.8327C87.1702 44.3846 87.8715 44.8113 88.6359 45.0875C89.4003 45.3638 90.2124 45.4839 91.024 45.4409H155.024C155.836 45.4839 156.648 45.3638 157.412 45.0875C158.177 44.8113 158.878 44.3846 159.474 43.8327C160.071 43.2808 160.551 42.6149 160.886 41.8742C161.221 41.1336 161.404 40.3334 161.424 39.5209V34.0809C161.404 33.2683 161.221 32.4681 160.886 31.7275C160.551 30.9869 160.071 30.3209 159.474 29.769C158.878 29.2171 158.177 28.7904 157.412 28.5142C156.648 28.238 155.836 28.1178 155.024 28.1609Z" fill="#DDDDDD" />\n<path d="M155.024 28.6383H91.024C89.4369 28.5499 87.8783 29.0865 86.6821 30.1332C85.4858 31.18 84.7471 32.6536 84.624 34.2383V39.3583C84.7471 40.9431 85.4858 42.4167 86.6821 43.4634C87.8783 44.5101 89.4369 45.0468 91.024 44.9583H155.024C156.611 45.0468 158.17 44.5101 159.366 43.4634C160.562 42.4167 161.301 40.9431 161.424 39.3583V34.2383C161.301 32.6536 160.562 31.18 159.366 30.1332C158.17 29.0865 156.611 28.5499 155.024 28.6383Z" fill="#DEDEDE" />\n<path d="M155.024 29.1211H91.024C87.504 29.1211 84.624 31.5211 84.624 34.4011V39.2011C84.624 42.0811 87.504 44.4811 91.024 44.4811H155.024C158.544 44.4811 161.424 42.0811 161.424 39.2011V34.4011C161.424 31.5211 158.544 29.1211 155.024 29.1211Z" fill="#DFDFDF" />\n<path d="M155.024 29.6016H91.024C87.504 29.6016 84.624 31.8416 84.624 34.7216V38.8816C84.624 41.7616 87.504 44.0016 91.024 44.0016H155.024C158.544 44.0016 161.424 41.7616 161.424 38.8816V34.7216C161.424 31.8416 158.544 29.6016 155.024 29.6016Z" fill="#E0E0E0" />\n<path d="M155.024 30.0781H91.024C87.504 30.0781 84.624 32.1581 84.624 34.8781V38.7181C84.624 41.4381 87.504 43.5181 91.024 43.5181H155.024C158.544 43.5181 161.424 41.4381 161.424 38.7181V34.8781C161.424 32.1581 158.544 30.0781 155.024 30.0781Z" fill="#E1E1E1" />\n<path d="M155.024 30.5586H91.024C87.504 30.5586 84.624 32.4786 84.624 35.0386V38.5586C84.624 41.1186 87.504 43.0386 91.024 43.0386H155.024C158.544 43.0386 161.424 41.1186 161.424 38.5586V35.0386C161.424 32.4786 158.544 30.5586 155.024 30.5586Z" fill="#E2E2E2" />\n<path d="M155.024 31.0391H91.024C87.504 31.0391 84.624 32.9591 84.624 35.1991V38.3991C84.624 40.6391 87.504 42.5591 91.024 42.5591H155.024C158.544 42.5591 161.424 40.6391 161.424 38.3991V35.1991C161.424 32.9591 158.544 31.0391 155.024 31.0391Z" fill="#E3E3E3" />\n<path d="M155.024 31.3594H91.024C87.504 31.3594 84.624 33.2794 84.624 35.5194V38.0794C84.624 40.3194 87.504 42.2394 91.024 42.2394H155.024C158.544 42.2394 161.424 40.3194 161.424 38.0794V35.5194C161.424 33.2794 158.544 31.3594 155.024 31.3594Z" fill="#E3E3E3" />\n<path d="M155.024 31.8398H91.024C87.504 31.8398 84.624 33.5998 84.624 35.6798V37.9198C84.624 39.9998 87.504 41.7598 91.024 41.7598H155.024C158.544 41.7598 161.424 39.9998 161.424 37.9198V35.6798C161.424 33.5998 158.544 31.8398 155.024 31.8398Z" fill="#E4E4E4" />\n<path d="M155.024 32.3203H91.024C87.504 32.3203 84.624 33.9203 84.624 35.8403V37.7603C84.624 39.6803 87.504 41.2803 91.024 41.2803H155.024C158.544 41.2803 161.424 39.6803 161.424 37.7603V35.8403C161.424 33.9203 158.544 32.3203 155.024 32.3203Z" fill="#E5E5E5" />\n<path d="M155.024 32.8008H91.024C87.504 32.8008 84.624 34.2408 84.624 36.0008V37.6008C84.624 39.3608 87.504 40.8008 91.024 40.8008H155.024C158.544 40.8008 161.424 39.3608 161.424 37.6008V36.0008C161.424 34.2408 158.544 32.8008 155.024 32.8008Z" fill="#E6E6E6" />\n<path d="M155.024 33.2812H91.024C87.504 33.2812 84.624 34.5613 84.624 36.3213V37.2812C84.624 39.0412 87.504 40.3213 91.024 40.3213H155.024C158.544 40.3213 161.424 39.0412 161.424 37.2812V36.3213C161.424 34.5613 158.544 33.2812 155.024 33.2812Z" fill="#E7E7E7" />\n<path d="M155.024 33.7617H91.024C87.504 33.7617 84.624 35.0417 84.624 36.4817V37.1217C84.624 38.5617 87.504 39.8417 91.024 39.8417H155.024C158.544 39.8417 161.424 38.5617 161.424 37.1217V36.4817C161.424 35.0417 158.544 33.7617 155.024 33.7617Z" fill="#E8E8E8" />\n<path d="M155.024 34.2422H91.024C87.504 34.2422 84.624 35.3622 84.624 36.6422V36.9622C84.624 38.2422 87.504 39.3622 91.024 39.3622H155.024C158.544 39.3622 161.424 38.2422 161.424 36.9622V36.6422C161.424 35.3622 158.544 34.2422 155.024 34.2422Z" fill="#E9E9E9" />\n<path d="M155.024 34.7188H91.024C87.504 34.7188 84.624 35.6787 84.624 36.7987C84.624 37.9188 87.504 38.8787 91.024 38.8787H155.024C158.544 38.8787 161.424 37.9188 161.424 36.7987C161.424 35.6787 158.544 34.7188 155.024 34.7188Z" fill="#EAEAEA" />\n<path d="M155.024 35.1992H91.024C87.504 35.1992 84.624 35.9992 84.624 37.1192V36.4792C84.624 37.5992 87.504 38.3992 91.024 38.3992H155.024C158.544 38.3992 161.424 37.5992 161.424 36.4792V37.1192C161.424 35.9992 158.544 35.1992 155.024 35.1992Z" fill="#EBEBEB" />\n<path opacity="0.7" d="M155.023 28.8008H91.0233L89.2633 29.1208C88.8179 29.3722 88.4644 29.7594 88.2544 30.2258C88.0445 30.6922 87.9891 31.2136 88.0962 31.7137C88.2034 32.2139 88.4676 32.6667 88.8502 33.0062C89.2329 33.3456 89.7139 33.554 90.2233 33.6008H155.823C156.333 33.554 156.814 33.3456 157.196 33.0062C157.579 32.6667 157.843 32.2139 157.95 31.7137C158.058 31.2136 158.002 30.6922 157.792 30.2258C157.582 29.7594 157.229 29.3722 156.783 29.1208L155.023 28.8008Z" fill="white" />\n<path d="M126.384 19.1992H119.664C117.985 19.1992 116.624 20.5603 116.624 22.2392V32.1592C116.624 33.8382 117.985 35.1992 119.664 35.1992H126.384C128.063 35.1992 129.424 33.8382 129.424 32.1592V22.2392C129.424 20.5603 128.063 19.1992 126.384 19.1992Z" fill="#E6E6E6" />\n<path d="M126.063 19.1992H119.823C118.233 19.1992 116.943 20.4886 116.943 22.0792V32.3192C116.943 33.9098 118.233 35.1992 119.823 35.1992H126.063C127.654 35.1992 128.943 33.9098 128.943 32.3192V22.0792C128.943 20.4886 127.654 19.1992 126.063 19.1992Z" fill="#E7E7E7" />\n<path d="M126.064 19.1992H120.144C118.642 19.1992 117.424 20.417 117.424 21.9192V32.4792C117.424 33.9814 118.642 35.1992 120.144 35.1992H126.064C127.566 35.1992 128.784 33.9814 128.784 32.4792V21.9192C128.784 20.417 127.566 19.1992 126.064 19.1992Z" fill="#E8E8E8" />\n<path d="M125.583 19.1992H120.463C118.961 19.1992 117.743 20.417 117.743 21.9192V32.4792C117.743 33.9814 118.961 35.1992 120.463 35.1992H125.583C127.085 35.1992 128.303 33.9814 128.303 32.4792V21.9192C128.303 20.417 127.085 19.1992 125.583 19.1992Z" fill="#E9E9E9" />\n<path d="M125.423 19.1992H120.623C119.21 19.1992 118.063 20.3454 118.063 21.7592V32.6392C118.063 34.0531 119.21 35.1992 120.623 35.1992H125.423C126.837 35.1992 127.983 34.0531 127.983 32.6392V21.7592C127.983 20.3454 126.837 19.1992 125.423 19.1992Z" fill="#EAEAEA" />\n<path d="M125.263 19.1992H120.943C119.617 19.1992 118.543 20.2737 118.543 21.5992V32.7992C118.543 34.1247 119.617 35.1992 120.943 35.1992H125.263C126.588 35.1992 127.663 34.1247 127.663 32.7992V21.5992C127.663 20.2737 126.588 19.1992 125.263 19.1992Z" fill="#EBEBEB" />\n<path d="M124.784 19.1992H121.264C119.939 19.1992 118.864 20.2737 118.864 21.5992V32.7992C118.864 34.1247 119.939 35.1992 121.264 35.1992H124.784C126.11 35.1992 127.184 34.1247 127.184 32.7992V21.5992C127.184 20.2737 126.11 19.1992 124.784 19.1992Z" fill="#ECECEC" />\n<path d="M124.624 19.1992H121.424C120.186 19.1992 119.184 20.2021 119.184 21.4392V32.9592C119.184 34.1963 120.186 35.1992 121.424 35.1992H124.624C125.861 35.1992 126.864 34.1963 126.864 32.9592V21.4392C126.864 20.2021 125.861 19.1992 124.624 19.1992Z" fill="#ECECEC" />\n<path d="M124.304 19.1992H121.584C120.435 19.1992 119.504 20.1305 119.504 21.2792V33.1192C119.504 34.268 120.435 35.1992 121.584 35.1992H124.304C125.453 35.1992 126.384 34.268 126.384 33.1192V21.2792C126.384 20.1305 125.453 19.1992 124.304 19.1992Z" fill="#EDEDED" />\n<path d="M124.143 19.1992H121.903C120.843 19.1992 119.983 20.0588 119.983 21.1192V33.2792C119.983 34.3396 120.843 35.1992 121.903 35.1992H124.143C125.204 35.1992 126.063 34.3396 126.063 33.2792V21.1192C126.063 20.0588 125.204 19.1992 124.143 19.1992Z" fill="#EEEEEE" />\n<path d="M123.824 19.1992H122.224C121.163 19.1992 120.304 20.0588 120.304 21.1192V33.2792C120.304 34.3396 121.163 35.1992 122.224 35.1992H123.824C124.884 35.1992 125.744 34.3396 125.744 33.2792V21.1192C125.744 20.0588 124.884 19.1992 123.824 19.1992Z" fill="#EFEFEF" />\n<path d="M123.504 19.1992H122.384C121.412 19.1992 120.624 19.9872 120.624 20.9592V33.4392C120.624 34.4112 121.412 35.1992 122.384 35.1992H123.504C124.476 35.1992 125.264 34.4112 125.264 33.4392V20.9592C125.264 19.9872 124.476 19.1992 123.504 19.1992Z" fill="#F0F0F0" />\n<path d="M123.504 19.1992H122.704C121.821 19.1992 121.104 19.9156 121.104 20.7992V33.5992C121.104 34.4829 121.821 35.1992 122.704 35.1992H123.504C124.388 35.1992 125.104 34.4829 125.104 33.5992V20.7992C125.104 19.9156 124.388 19.1992 123.504 19.1992Z" fill="#F1F1F1" />\n<path d="M123.184 19.1992H122.864C122.069 19.1992 121.424 19.8439 121.424 20.6392V33.7592C121.424 34.5545 122.069 35.1992 122.864 35.1992H123.184C123.979 35.1992 124.624 34.5545 124.624 33.7592V20.6392C124.624 19.8439 123.979 19.1992 123.184 19.1992Z" fill="#F2F2F2" />\n<path d="M126.384 19.1992H119.664C117.985 19.1992 116.624 20.5603 116.624 22.2392V32.1592C116.624 33.8382 117.985 35.1992 119.664 35.1992H126.384C128.063 35.1992 129.424 33.8382 129.424 32.1592V22.2392C129.424 20.5603 128.063 19.1992 126.384 19.1992Z" fill="#E6E6E6" />\n<path opacity="0.5" d="M119.664 20.8008C119.282 20.8008 118.915 20.9525 118.645 21.2225C118.375 21.4926 118.224 21.8589 118.224 22.2408V32.1608C118.224 32.5427 118.375 32.909 118.645 33.179C118.915 33.4491 119.282 33.6008 119.664 33.6008C119.895 33.6008 120.124 33.5553 120.337 33.4668C120.551 33.3784 120.745 33.2487 120.908 33.0853C121.072 32.9219 121.201 32.7278 121.29 32.5143C121.378 32.3008 121.424 32.0719 121.424 31.8408V22.5608C121.424 22.3297 121.378 22.1008 121.29 21.8873C121.201 21.6737 121.072 21.4797 120.908 21.3163C120.745 21.1528 120.551 21.0232 120.337 20.9348C120.124 20.8463 119.895 20.8008 119.664 20.8008Z" fill="white" />\n<path opacity="0.1" d="M155.023 27.2H129.423V22.24C129.447 21.8347 129.384 21.4291 129.239 21.0498C129.095 20.6704 128.872 20.3259 128.585 20.0388C128.298 19.7518 127.953 19.5287 127.574 19.3841C127.194 19.2395 126.789 19.1768 126.383 19.2H123.023V46.4H155.023C156.721 46.4 158.349 45.7257 159.549 44.5255C160.749 43.3253 161.423 41.6974 161.423 40V33.6C161.423 31.9026 160.749 30.2748 159.549 29.0745C158.349 27.8743 156.721 27.2 155.023 27.2Z" fill="#233646" />\n<path opacity="0.1" d="M84.624 36.8008V41.6008C84.624 43.2982 85.2983 44.926 86.4985 46.1263C87.6988 47.3265 89.3266 48.0008 91.024 48.0008H155.024C156.721 48.0008 158.349 47.3265 159.55 46.1263C160.75 44.926 161.424 43.2982 161.424 41.6008V36.8008H84.624Z" fill="#233646" />\n<path opacity="0.1" d="M187.823 33.6H161.423C161.423 31.9026 160.749 30.2748 159.549 29.0745C158.349 27.8743 156.721 27.2 155.023 27.2H129.423V22.24C129.447 21.8347 129.384 21.4291 129.239 21.0498C129.095 20.6704 128.872 20.3259 128.585 20.0388C128.298 19.7518 127.953 19.5287 127.574 19.3841C127.194 19.2395 126.789 19.1768 126.383 19.2H123.023V214.4H187.823C189.733 214.4 191.564 213.641 192.915 212.291C194.265 210.941 195.023 209.11 195.023 207.2V40.8C195.023 38.8905 194.265 37.0591 192.915 35.7089C191.564 34.3586 189.733 33.6 187.823 33.6Z" fill="#233646" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 92.7992C84.8127 92.7992 85.301 93.0015 85.6611 93.3616C86.0212 93.7216 86.2234 94.21 86.2234 94.7192V100.479C86.2234 100.988 86.0212 101.477 85.6611 101.837C85.301 102.197 84.8127 102.399 84.3034 102.399H78.5434C78.0342 102.399 77.5459 102.197 77.1858 101.837C76.8257 101.477 76.6234 100.988 76.6234 100.479V94.7192C76.6234 94.21 76.8257 93.7216 77.1858 93.3616C77.5459 93.0015 78.0342 92.7992 78.5434 92.7992H84.3034ZM84.3034 91.1992H78.5434C78.0812 91.1992 77.6235 91.2903 77.1964 91.4672C76.7693 91.6441 76.3813 91.9033 76.0544 92.2302C75.7276 92.5571 75.4683 92.9451 75.2914 93.3722C75.1145 93.7992 75.0234 94.257 75.0234 94.7192V100.479C75.0234 100.941 75.1145 101.399 75.2914 101.826C75.4683 102.253 75.7276 102.641 76.0544 102.968C76.3813 103.295 76.7693 103.554 77.1964 103.731C77.6235 103.908 78.0812 103.999 78.5434 103.999H84.3034C85.237 103.999 86.1323 103.628 86.7925 102.968C87.4526 102.308 87.8234 101.413 87.8234 100.479V94.7192C87.8234 94.257 87.7324 93.7992 87.5555 93.3722C87.3786 92.9451 87.1193 92.5571 86.7925 92.2302C86.4656 91.9033 86.0776 91.6441 85.6505 91.4672C85.2234 91.2903 84.7657 91.1992 84.3034 91.1992Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 93.6016L82.2234 100.002L79.0234 96.8016" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M147.184 92.8008H95.6636C95.2817 92.8008 94.9155 92.9525 94.6454 93.2225C94.3753 93.4926 94.2236 93.8589 94.2236 94.2408V94.5608C94.2236 94.9427 94.3753 95.309 94.6454 95.579C94.9155 95.8491 95.2817 96.0008 95.6636 96.0008H147.184C147.566 96.0008 147.932 95.8491 148.202 95.579C148.472 95.309 148.624 94.9427 148.624 94.5608V94.2408C148.624 93.8589 148.472 93.4926 148.202 93.2225C147.932 92.9525 147.566 92.8008 147.184 92.8008ZM132.784 99.2008H95.6636C95.2817 99.2008 94.9155 99.3525 94.6454 99.6225C94.3753 99.8926 94.2236 100.259 94.2236 100.641V100.961C94.2236 101.343 94.3753 101.709 94.6454 101.979C94.9155 102.249 95.2817 102.401 95.6636 102.401H132.784C133.166 102.401 133.532 102.249 133.802 101.979C134.072 101.709 134.224 101.343 134.224 100.961V100.641C134.224 100.259 134.072 99.8926 133.802 99.6225C133.532 99.3525 133.166 99.2008 132.784 99.2008Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 115.202C84.5556 115.202 84.8053 115.251 85.0382 115.348C85.2711 115.444 85.4828 115.586 85.6611 115.764C85.8394 115.942 85.9808 116.154 86.0773 116.387C86.1738 116.62 86.2234 116.869 86.2234 117.122V122.882C86.2234 123.391 86.0212 123.879 85.6611 124.239C85.301 124.599 84.8127 124.802 84.3034 124.802H78.5434C78.0342 124.802 77.5459 124.599 77.1858 124.239C76.8257 123.879 76.6234 123.391 76.6234 122.882V117.122C76.6234 116.869 76.6731 116.62 76.7696 116.387C76.8661 116.154 77.0075 115.942 77.1858 115.764C77.3641 115.586 77.5757 115.444 77.8087 115.348C78.0416 115.251 78.2913 115.202 78.5434 115.202H84.3034ZM84.3034 113.602H78.5434C78.0812 113.602 77.6235 113.693 77.1964 113.87C76.7693 114.046 76.3813 114.306 76.0544 114.633C75.7276 114.959 75.4683 115.347 75.2914 115.775C75.1145 116.202 75.0234 116.659 75.0234 117.122V122.882C75.0234 123.344 75.1145 123.802 75.2914 124.229C75.4683 124.656 75.7276 125.044 76.0544 125.371C76.3813 125.697 76.7693 125.957 77.1964 126.134C77.6235 126.311 78.0812 126.402 78.5434 126.402H84.3034C85.237 126.402 86.1323 126.031 86.7925 125.371C87.4526 124.71 87.8234 123.815 87.8234 122.882V117.122C87.8234 116.188 87.4526 115.293 86.7925 114.633C86.1323 113.972 85.237 113.602 84.3034 113.602Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 116L82.2234 122.4L79.0234 119.2" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 121.599H95.6636C95.2817 121.599 94.9155 121.751 94.6454 122.021C94.3753 122.291 94.2236 122.657 94.2236 123.039V123.359C94.2236 123.741 94.3753 124.107 94.6454 124.377C94.9155 124.647 95.2817 124.799 95.6636 124.799H132.784C133.166 124.799 133.532 124.647 133.802 124.377C134.072 124.107 134.224 123.741 134.224 123.359V123.039C134.224 122.657 134.072 122.291 133.802 122.021C133.532 121.751 133.166 121.599 132.784 121.599ZM147.184 115.199H95.6636C95.4745 115.199 95.2873 115.236 95.1126 115.309C94.9379 115.381 94.7791 115.487 94.6454 115.621C94.5117 115.755 94.4056 115.913 94.3332 116.088C94.2609 116.263 94.2236 116.45 94.2236 116.639V116.959C94.2236 117.341 94.3753 117.707 94.6454 117.977C94.9155 118.248 95.2817 118.399 95.6636 118.399H147.184C147.566 118.399 147.932 118.248 148.202 117.977C148.472 117.707 148.624 117.341 148.624 116.959V116.639C148.624 116.45 148.586 116.263 148.514 116.088C148.442 115.913 148.336 115.755 148.202 115.621C148.068 115.487 147.909 115.381 147.735 115.309C147.56 115.236 147.373 115.199 147.184 115.199Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 137.6C84.8127 137.6 85.301 137.802 85.6611 138.162C86.0212 138.522 86.2234 139.011 86.2234 139.52V145.28C86.2234 145.789 86.0212 146.278 85.6611 146.638C85.301 146.998 84.8127 147.2 84.3034 147.2H78.5434C78.0342 147.2 77.5459 146.998 77.1858 146.638C76.8257 146.278 76.6234 145.789 76.6234 145.28V139.52C76.6234 139.011 76.8257 138.522 77.1858 138.162C77.5459 137.802 78.0342 137.6 78.5434 137.6H84.3034ZM84.3034 136H78.5434C78.0812 136 77.6235 136.091 77.1964 136.268C76.7693 136.445 76.3813 136.704 76.0544 137.031C75.7276 137.358 75.4683 137.746 75.2914 138.173C75.1145 138.6 75.0234 139.058 75.0234 139.52V145.28C75.0234 145.742 75.1145 146.2 75.2914 146.627C75.4683 147.054 75.7276 147.442 76.0544 147.769C76.3813 148.096 76.7693 148.355 77.1964 148.532C77.6235 148.709 78.0812 148.8 78.5434 148.8H84.3034C85.237 148.8 86.1323 148.429 86.7925 147.769C87.4526 147.109 87.8234 146.214 87.8234 145.28V139.52C87.8234 138.586 87.4526 137.691 86.7925 137.031C86.1323 136.371 85.237 136 84.3034 136Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 138.398L82.2234 144.798L79.0234 141.598" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 144.002H95.6636C95.4745 144.002 95.2873 144.039 95.1126 144.111C94.9379 144.184 94.7791 144.29 94.6454 144.423C94.5117 144.557 94.4056 144.716 94.3332 144.891C94.2609 145.065 94.2236 145.252 94.2236 145.442V145.762C94.2236 146.143 94.3753 146.51 94.6454 146.78C94.9155 147.05 95.2817 147.202 95.6636 147.202H132.784C133.166 147.202 133.532 147.05 133.802 146.78C134.072 146.51 134.224 146.143 134.224 145.762V145.442C134.224 145.252 134.186 145.065 134.114 144.891C134.042 144.716 133.936 144.557 133.802 144.423C133.668 144.29 133.509 144.184 133.335 144.111C133.16 144.039 132.973 144.002 132.784 144.002ZM147.184 137.602H95.6636C95.2817 137.602 94.9155 137.753 94.6454 138.023C94.3753 138.293 94.2236 138.66 94.2236 139.042V139.362C94.2236 139.551 94.2609 139.738 94.3332 139.913C94.4056 140.087 94.5117 140.246 94.6454 140.38C94.7791 140.514 94.9379 140.62 95.1126 140.692C95.2873 140.764 95.4745 140.802 95.6636 140.802H147.184C147.373 140.802 147.56 140.764 147.735 140.692C147.909 140.62 148.068 140.514 148.202 140.38C148.336 140.246 148.442 140.087 148.514 139.913C148.586 139.738 148.624 139.551 148.624 139.362V139.042C148.624 138.66 148.472 138.293 148.202 138.023C147.932 137.753 147.566 137.602 147.184 137.602Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 159.998C84.8127 159.998 85.301 160.201 85.6611 160.561C86.0212 160.921 86.2234 161.409 86.2234 161.918V167.678C86.2234 167.931 86.1738 168.18 86.0773 168.413C85.9808 168.646 85.8394 168.858 85.6611 169.036C85.4828 169.214 85.2711 169.356 85.0382 169.452C84.8053 169.549 84.5556 169.598 84.3034 169.598H78.5434C78.2913 169.598 78.0416 169.549 77.8087 169.452C77.5757 169.356 77.3641 169.214 77.1858 169.036C77.0075 168.858 76.8661 168.646 76.7696 168.413C76.6731 168.18 76.6234 167.931 76.6234 167.678V161.918C76.6234 161.409 76.8257 160.921 77.1858 160.561C77.5459 160.201 78.0342 159.998 78.5434 159.998H84.3034ZM84.3034 158.398H78.5434C77.6099 158.398 76.7146 158.769 76.0544 159.429C75.3943 160.09 75.0234 160.985 75.0234 161.918V167.678C75.0234 168.612 75.3943 169.507 76.0544 170.167C76.7146 170.828 77.6099 171.198 78.5434 171.198H84.3034C85.237 171.198 86.1323 170.828 86.7925 170.167C87.4526 169.507 87.8234 168.612 87.8234 167.678V161.918C87.8234 160.985 87.4526 160.09 86.7925 159.429C86.1323 158.769 85.237 158.398 84.3034 158.398Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 160.801L82.2234 167.201L79.0234 164.001" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 166.4H95.6636C95.2817 166.4 94.9155 166.552 94.6454 166.822C94.3753 167.092 94.2236 167.458 94.2236 167.84V168.16C94.2236 168.349 94.2609 168.536 94.3332 168.711C94.4056 168.886 94.5117 169.044 94.6454 169.178C94.7791 169.312 94.9379 169.418 95.1126 169.49C95.2873 169.563 95.4745 169.6 95.6636 169.6H132.784C132.973 169.6 133.16 169.563 133.335 169.49C133.509 169.418 133.668 169.312 133.802 169.178C133.936 169.044 134.042 168.886 134.114 168.711C134.186 168.536 134.224 168.349 134.224 168.16V167.84C134.224 167.458 134.072 167.092 133.802 166.822C133.532 166.552 133.166 166.4 132.784 166.4ZM147.184 160H95.6636C95.4745 160 95.2873 160.037 95.1126 160.11C94.9379 160.182 94.7791 160.288 94.6454 160.422C94.5117 160.555 94.4056 160.714 94.3332 160.889C94.2609 161.064 94.2236 161.251 94.2236 161.44V161.76C94.2236 162.142 94.3753 162.508 94.6454 162.778C94.9155 163.048 95.2817 163.2 95.6636 163.2H147.184C147.566 163.2 147.932 163.048 148.202 162.778C148.472 162.508 148.624 162.142 148.624 161.76V161.44C148.624 161.251 148.586 161.064 148.514 160.889C148.442 160.714 148.336 160.555 148.202 160.422C148.068 160.288 147.909 160.182 147.735 160.11C147.56 160.037 147.373 160 147.184 160Z" fill="#435969" />\n<path opacity="0.2" d="M79.824 70.4H137.424C138.273 70.4 139.087 70.0629 139.687 69.4627C140.287 68.8626 140.624 68.0487 140.624 67.2C140.624 66.3513 140.287 65.5374 139.687 64.9373C139.087 64.3371 138.273 64 137.424 64H79.824C78.9753 64 78.1614 64.3371 77.5613 64.9373C76.9612 65.5374 76.624 66.3513 76.624 67.2C76.624 68.0487 76.9612 68.8626 77.5613 69.4627C78.1614 70.0629 78.9753 70.4 79.824 70.4ZM147.024 75.2H79.824C78.9753 75.2 78.1614 75.5371 77.5613 76.1373C76.9612 76.7374 76.624 77.5513 76.624 78.4C76.624 79.2487 76.9612 80.0626 77.5613 80.6627C78.1614 81.2629 78.9753 81.6 79.824 81.6H147.024C147.873 81.6 148.687 81.2629 149.287 80.6627C149.887 80.0626 150.224 79.2487 150.224 78.4C150.224 77.5513 149.887 76.7374 149.287 76.1373C148.687 75.5371 147.873 75.2 147.024 75.2Z" fill="#435969" />\n</symbol>'}),f=(c().add(p),p),H=function(){return i.createElement("svg",{height:"240px",width:"240px",viewBox:f.viewBox},i.createElement("use",{xlinkHref:"#".concat(f.id)}))},s=e(78312),V=e(97096),h=function(C){var t=C.checked,e=C.error,n=C.onChange,a=C.tagging,o=C.children;return i.createElement(l.Flex,{alignItems:"center","data-testid":"termsAndConditions"},i.createElement(s.P2,{checked:t,onChange:n,error:e,"data-ga":"signinup::click-checkbox::".concat(a),"data-testid":"termsAndConditions-checkbox"}),o||i.createElement(l.TextBig,null,"By signing up, you agree to the Netdata ",i.createElement(V.w,{tagging:a})," and"," ",i.createElement(V.F,{tagging:a})))},E=e(13477),g=e(46667),u=function(){var C=(0,E.ec)("termsAccepted",{shouldPersist:!0}),t=(0,n.Z)(C,2),e=t[0],o=t[1],d=(0,g.Z)(),r=(0,n.Z)(d,2),c=r[0],p=r[1],f=(0,i.useCallback)((function(){(0,a.L)("","","","","","terms-accept"),o(c)}),[c]);return e?null:i.createElement(l.ConfirmationDialog,{confirmLabel:"Accept","data-ga":"accept-terms-dialog","data-testid":"acceptTermsDialog",handleConfirm:f,hideIcon:!0,hideDecline:!0,isConfirmPositive:!0,isConfirmDisabled:!c,message:i.createElement(l.Flex,{gap:4,alignItems:"center",column:!0},i.createElement(H,null),i.createElement(h,{checked:c,onChange:p,tagging:"modal-view"})),title:"To use Netdata you need to read and accept our terms and conditions"})}},78312:function(C,t,e){e.d(t,{Fg:function(){return o},P2:function(){return r},Sn:function(){return c},U5:function(){return d},Yb:function(){return p},xG:function(){return a}});var n=e(60677),i=e(15557),l=e(16772),a=n.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),o=n.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("main"),(0,i.getSizeBy)(1)),d=(0,n.default)(l.Z).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["label{margin-bottom:0;}> div{display:none;}"]),r=(0,n.default)(i.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,i.getSizeBy)(2),(function(C){return C.error&&(0,i.getColor)("error")})),c=(0,n.default)(i.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),p=(0,n.default)(i.Flex).attrs((function(C){var t=C.gap;return{column:!0,gap:void 0===t?8:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},97096:function(C,t,e){e.d(t,{F:function(){return d},w:function(){return o}});e(92222);var n=e(67294),i=e(78312),l={link:"https://www.netdata.cloud/terms",title:"Terms And Conditions",dataGa:"signinup::click-terms::"},a=function(C){var t=C.link,e=C.title,l=C.dataGa;return function(C){var a=C.tagging;return n.createElement(i.Fg,{href:t,target:"_blank",rel:"noopener noreferrer","data-ga":"".concat(l).concat(a)},e)}},o=a({link:"https://www.netdata.cloud/privacy",title:"Privacy Policy",dataGa:"signinup::click-privacy::"}),d=a(l)}}]); \ No newline at end of file
+!function(){try{var C="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(C._sentryDebugIds=C._sentryDebugIds||{},C._sentryDebugIds[t]="ec6351ad-ff59-4e59-b8f3-30da5cf93943",C._sentryDebugIdIdentifier="sentry-dbid-ec6351ad-ff59-4e59-b8f3-30da5cf93943")}catch(C){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[102],{48102:function(C,t,e){e.r(t),e.d(t,{default:function(){return u}});var n=e(29439),i=e(67294),l=e(57509),a=e(92432),o=e(87854),d=e.n(o),r=e(95348),c=e.n(r),p=new(d())({id:"terms.svg",use:"terms.svg-usage",viewBox:"0 0 240 240",content:'<symbol viewBox="0 0 240 240" fill="none" xmlns="http://www.w3.org/2000/svg" id="terms.svg">\n<path opacity="0.3" d="M120 240C186.274 240 240 186.274 240 120C240 53.7258 186.274 0 120 0C53.7258 0 0 53.7258 0 120C0 186.274 53.7258 240 120 240Z" fill="#CCDDE8" />\n<path opacity="0.3" d="M120.284 222.398C183.907 222.398 235.484 218.817 235.484 214.398C235.484 209.98 183.907 206.398 120.284 206.398C56.6608 206.398 5.08398 209.98 5.08398 214.398C5.08398 218.817 56.6608 222.398 120.284 222.398Z" fill="#89B0C9" />\n<path d="M187.823 33.6016H58.2234C54.247 33.6016 51.0234 36.8251 51.0234 40.8016V207.202C51.0234 211.178 54.247 214.402 58.2234 214.402H187.823C191.8 214.402 195.023 211.178 195.023 207.202V40.8016C195.023 36.8251 191.8 33.6016 187.823 33.6016Z" fill="#00AB44" />\n<path d="M188.624 41.6016H57.4238V208.002H188.624V41.6016Z" fill="#F3F7FA" />\n<g opacity="0.3">\n<path opacity="0.3" d="M188.623 41.6V208H57.4232V41.6H188.623ZM190.223 40H55.8232V209.6H190.223V40Z" fill="#435969" />\n</g>\n<path opacity="0.2" d="M164.623 33.6016H87.8232V46.4016C87.8232 48.0989 88.4975 49.7268 89.6978 50.927C90.898 52.1273 92.5259 52.8016 94.2232 52.8016H158.223C159.921 52.8016 161.548 52.1273 162.749 50.927C163.949 49.7268 164.623 48.0989 164.623 46.4016V33.6016Z" fill="#233646" />\n<path d="M155.024 27.1992H91.024C87.4894 27.1992 84.624 30.0646 84.624 33.5992V39.9992C84.624 43.5338 87.4894 46.3992 91.024 46.3992H155.024C158.559 46.3992 161.424 43.5338 161.424 39.9992V33.5992C161.424 30.0646 158.559 27.1992 155.024 27.1992Z" fill="#DBDBDB" />\n<path d="M155.024 27.6817H91.024C90.1912 27.6604 89.3626 27.806 88.5869 28.11C87.8113 28.414 87.1044 28.8703 86.5079 29.4518C85.9114 30.0334 85.4374 30.7286 85.1138 31.4963C84.7903 32.2639 84.6237 33.0887 84.624 33.9217V39.6817C84.6237 40.5148 84.7903 41.3395 85.1138 42.1072C85.4374 42.8749 85.9114 43.5701 86.5079 44.1516C87.1044 44.7332 87.8113 45.1895 88.5869 45.4935C89.3626 45.7975 90.1912 45.9431 91.024 45.9217H155.024C155.857 45.9431 156.686 45.7975 157.461 45.4935C158.237 45.1895 158.944 44.7332 159.54 44.1516C160.137 43.5701 160.611 42.8749 160.934 42.1072C161.258 41.3395 161.424 40.5148 161.424 39.6817V33.9217C161.424 33.0887 161.258 32.2639 160.934 31.4963C160.611 30.7286 160.137 30.0334 159.54 29.4518C158.944 28.8703 158.237 28.414 157.461 28.11C156.686 27.806 155.857 27.6604 155.024 27.6817Z" fill="#DCDCDC" />\n<path d="M155.024 28.1609H91.024C90.2124 28.1178 89.4003 28.238 88.6359 28.5142C87.8715 28.7904 87.1702 29.2171 86.5736 29.769C85.9769 30.3209 85.4969 30.9869 85.1621 31.7275C84.8272 32.4681 84.6443 33.2683 84.624 34.0809V39.5209C84.6443 40.3334 84.8272 41.1336 85.1621 41.8742C85.4969 42.6149 85.9769 43.2808 86.5736 43.8327C87.1702 44.3846 87.8715 44.8113 88.6359 45.0875C89.4003 45.3638 90.2124 45.4839 91.024 45.4409H155.024C155.836 45.4839 156.648 45.3638 157.412 45.0875C158.177 44.8113 158.878 44.3846 159.474 43.8327C160.071 43.2808 160.551 42.6149 160.886 41.8742C161.221 41.1336 161.404 40.3334 161.424 39.5209V34.0809C161.404 33.2683 161.221 32.4681 160.886 31.7275C160.551 30.9869 160.071 30.3209 159.474 29.769C158.878 29.2171 158.177 28.7904 157.412 28.5142C156.648 28.238 155.836 28.1178 155.024 28.1609Z" fill="#DDDDDD" />\n<path d="M155.024 28.6383H91.024C89.4369 28.5499 87.8783 29.0865 86.6821 30.1332C85.4858 31.18 84.7471 32.6536 84.624 34.2383V39.3583C84.7471 40.9431 85.4858 42.4167 86.6821 43.4634C87.8783 44.5101 89.4369 45.0468 91.024 44.9583H155.024C156.611 45.0468 158.17 44.5101 159.366 43.4634C160.562 42.4167 161.301 40.9431 161.424 39.3583V34.2383C161.301 32.6536 160.562 31.18 159.366 30.1332C158.17 29.0865 156.611 28.5499 155.024 28.6383Z" fill="#DEDEDE" />\n<path d="M155.024 29.1211H91.024C87.504 29.1211 84.624 31.5211 84.624 34.4011V39.2011C84.624 42.0811 87.504 44.4811 91.024 44.4811H155.024C158.544 44.4811 161.424 42.0811 161.424 39.2011V34.4011C161.424 31.5211 158.544 29.1211 155.024 29.1211Z" fill="#DFDFDF" />\n<path d="M155.024 29.6016H91.024C87.504 29.6016 84.624 31.8416 84.624 34.7216V38.8816C84.624 41.7616 87.504 44.0016 91.024 44.0016H155.024C158.544 44.0016 161.424 41.7616 161.424 38.8816V34.7216C161.424 31.8416 158.544 29.6016 155.024 29.6016Z" fill="#E0E0E0" />\n<path d="M155.024 30.0781H91.024C87.504 30.0781 84.624 32.1581 84.624 34.8781V38.7181C84.624 41.4381 87.504 43.5181 91.024 43.5181H155.024C158.544 43.5181 161.424 41.4381 161.424 38.7181V34.8781C161.424 32.1581 158.544 30.0781 155.024 30.0781Z" fill="#E1E1E1" />\n<path d="M155.024 30.5586H91.024C87.504 30.5586 84.624 32.4786 84.624 35.0386V38.5586C84.624 41.1186 87.504 43.0386 91.024 43.0386H155.024C158.544 43.0386 161.424 41.1186 161.424 38.5586V35.0386C161.424 32.4786 158.544 30.5586 155.024 30.5586Z" fill="#E2E2E2" />\n<path d="M155.024 31.0391H91.024C87.504 31.0391 84.624 32.9591 84.624 35.1991V38.3991C84.624 40.6391 87.504 42.5591 91.024 42.5591H155.024C158.544 42.5591 161.424 40.6391 161.424 38.3991V35.1991C161.424 32.9591 158.544 31.0391 155.024 31.0391Z" fill="#E3E3E3" />\n<path d="M155.024 31.3594H91.024C87.504 31.3594 84.624 33.2794 84.624 35.5194V38.0794C84.624 40.3194 87.504 42.2394 91.024 42.2394H155.024C158.544 42.2394 161.424 40.3194 161.424 38.0794V35.5194C161.424 33.2794 158.544 31.3594 155.024 31.3594Z" fill="#E3E3E3" />\n<path d="M155.024 31.8398H91.024C87.504 31.8398 84.624 33.5998 84.624 35.6798V37.9198C84.624 39.9998 87.504 41.7598 91.024 41.7598H155.024C158.544 41.7598 161.424 39.9998 161.424 37.9198V35.6798C161.424 33.5998 158.544 31.8398 155.024 31.8398Z" fill="#E4E4E4" />\n<path d="M155.024 32.3203H91.024C87.504 32.3203 84.624 33.9203 84.624 35.8403V37.7603C84.624 39.6803 87.504 41.2803 91.024 41.2803H155.024C158.544 41.2803 161.424 39.6803 161.424 37.7603V35.8403C161.424 33.9203 158.544 32.3203 155.024 32.3203Z" fill="#E5E5E5" />\n<path d="M155.024 32.8008H91.024C87.504 32.8008 84.624 34.2408 84.624 36.0008V37.6008C84.624 39.3608 87.504 40.8008 91.024 40.8008H155.024C158.544 40.8008 161.424 39.3608 161.424 37.6008V36.0008C161.424 34.2408 158.544 32.8008 155.024 32.8008Z" fill="#E6E6E6" />\n<path d="M155.024 33.2812H91.024C87.504 33.2812 84.624 34.5613 84.624 36.3213V37.2812C84.624 39.0412 87.504 40.3213 91.024 40.3213H155.024C158.544 40.3213 161.424 39.0412 161.424 37.2812V36.3213C161.424 34.5613 158.544 33.2812 155.024 33.2812Z" fill="#E7E7E7" />\n<path d="M155.024 33.7617H91.024C87.504 33.7617 84.624 35.0417 84.624 36.4817V37.1217C84.624 38.5617 87.504 39.8417 91.024 39.8417H155.024C158.544 39.8417 161.424 38.5617 161.424 37.1217V36.4817C161.424 35.0417 158.544 33.7617 155.024 33.7617Z" fill="#E8E8E8" />\n<path d="M155.024 34.2422H91.024C87.504 34.2422 84.624 35.3622 84.624 36.6422V36.9622C84.624 38.2422 87.504 39.3622 91.024 39.3622H155.024C158.544 39.3622 161.424 38.2422 161.424 36.9622V36.6422C161.424 35.3622 158.544 34.2422 155.024 34.2422Z" fill="#E9E9E9" />\n<path d="M155.024 34.7188H91.024C87.504 34.7188 84.624 35.6787 84.624 36.7987C84.624 37.9188 87.504 38.8787 91.024 38.8787H155.024C158.544 38.8787 161.424 37.9188 161.424 36.7987C161.424 35.6787 158.544 34.7188 155.024 34.7188Z" fill="#EAEAEA" />\n<path d="M155.024 35.1992H91.024C87.504 35.1992 84.624 35.9992 84.624 37.1192V36.4792C84.624 37.5992 87.504 38.3992 91.024 38.3992H155.024C158.544 38.3992 161.424 37.5992 161.424 36.4792V37.1192C161.424 35.9992 158.544 35.1992 155.024 35.1992Z" fill="#EBEBEB" />\n<path opacity="0.7" d="M155.023 28.8008H91.0233L89.2633 29.1208C88.8179 29.3722 88.4644 29.7594 88.2544 30.2258C88.0445 30.6922 87.9891 31.2136 88.0962 31.7137C88.2034 32.2139 88.4676 32.6667 88.8502 33.0062C89.2329 33.3456 89.7139 33.554 90.2233 33.6008H155.823C156.333 33.554 156.814 33.3456 157.196 33.0062C157.579 32.6667 157.843 32.2139 157.95 31.7137C158.058 31.2136 158.002 30.6922 157.792 30.2258C157.582 29.7594 157.229 29.3722 156.783 29.1208L155.023 28.8008Z" fill="white" />\n<path d="M126.384 19.1992H119.664C117.985 19.1992 116.624 20.5603 116.624 22.2392V32.1592C116.624 33.8382 117.985 35.1992 119.664 35.1992H126.384C128.063 35.1992 129.424 33.8382 129.424 32.1592V22.2392C129.424 20.5603 128.063 19.1992 126.384 19.1992Z" fill="#E6E6E6" />\n<path d="M126.063 19.1992H119.823C118.233 19.1992 116.943 20.4886 116.943 22.0792V32.3192C116.943 33.9098 118.233 35.1992 119.823 35.1992H126.063C127.654 35.1992 128.943 33.9098 128.943 32.3192V22.0792C128.943 20.4886 127.654 19.1992 126.063 19.1992Z" fill="#E7E7E7" />\n<path d="M126.064 19.1992H120.144C118.642 19.1992 117.424 20.417 117.424 21.9192V32.4792C117.424 33.9814 118.642 35.1992 120.144 35.1992H126.064C127.566 35.1992 128.784 33.9814 128.784 32.4792V21.9192C128.784 20.417 127.566 19.1992 126.064 19.1992Z" fill="#E8E8E8" />\n<path d="M125.583 19.1992H120.463C118.961 19.1992 117.743 20.417 117.743 21.9192V32.4792C117.743 33.9814 118.961 35.1992 120.463 35.1992H125.583C127.085 35.1992 128.303 33.9814 128.303 32.4792V21.9192C128.303 20.417 127.085 19.1992 125.583 19.1992Z" fill="#E9E9E9" />\n<path d="M125.423 19.1992H120.623C119.21 19.1992 118.063 20.3454 118.063 21.7592V32.6392C118.063 34.0531 119.21 35.1992 120.623 35.1992H125.423C126.837 35.1992 127.983 34.0531 127.983 32.6392V21.7592C127.983 20.3454 126.837 19.1992 125.423 19.1992Z" fill="#EAEAEA" />\n<path d="M125.263 19.1992H120.943C119.617 19.1992 118.543 20.2737 118.543 21.5992V32.7992C118.543 34.1247 119.617 35.1992 120.943 35.1992H125.263C126.588 35.1992 127.663 34.1247 127.663 32.7992V21.5992C127.663 20.2737 126.588 19.1992 125.263 19.1992Z" fill="#EBEBEB" />\n<path d="M124.784 19.1992H121.264C119.939 19.1992 118.864 20.2737 118.864 21.5992V32.7992C118.864 34.1247 119.939 35.1992 121.264 35.1992H124.784C126.11 35.1992 127.184 34.1247 127.184 32.7992V21.5992C127.184 20.2737 126.11 19.1992 124.784 19.1992Z" fill="#ECECEC" />\n<path d="M124.624 19.1992H121.424C120.186 19.1992 119.184 20.2021 119.184 21.4392V32.9592C119.184 34.1963 120.186 35.1992 121.424 35.1992H124.624C125.861 35.1992 126.864 34.1963 126.864 32.9592V21.4392C126.864 20.2021 125.861 19.1992 124.624 19.1992Z" fill="#ECECEC" />\n<path d="M124.304 19.1992H121.584C120.435 19.1992 119.504 20.1305 119.504 21.2792V33.1192C119.504 34.268 120.435 35.1992 121.584 35.1992H124.304C125.453 35.1992 126.384 34.268 126.384 33.1192V21.2792C126.384 20.1305 125.453 19.1992 124.304 19.1992Z" fill="#EDEDED" />\n<path d="M124.143 19.1992H121.903C120.843 19.1992 119.983 20.0588 119.983 21.1192V33.2792C119.983 34.3396 120.843 35.1992 121.903 35.1992H124.143C125.204 35.1992 126.063 34.3396 126.063 33.2792V21.1192C126.063 20.0588 125.204 19.1992 124.143 19.1992Z" fill="#EEEEEE" />\n<path d="M123.824 19.1992H122.224C121.163 19.1992 120.304 20.0588 120.304 21.1192V33.2792C120.304 34.3396 121.163 35.1992 122.224 35.1992H123.824C124.884 35.1992 125.744 34.3396 125.744 33.2792V21.1192C125.744 20.0588 124.884 19.1992 123.824 19.1992Z" fill="#EFEFEF" />\n<path d="M123.504 19.1992H122.384C121.412 19.1992 120.624 19.9872 120.624 20.9592V33.4392C120.624 34.4112 121.412 35.1992 122.384 35.1992H123.504C124.476 35.1992 125.264 34.4112 125.264 33.4392V20.9592C125.264 19.9872 124.476 19.1992 123.504 19.1992Z" fill="#F0F0F0" />\n<path d="M123.504 19.1992H122.704C121.821 19.1992 121.104 19.9156 121.104 20.7992V33.5992C121.104 34.4829 121.821 35.1992 122.704 35.1992H123.504C124.388 35.1992 125.104 34.4829 125.104 33.5992V20.7992C125.104 19.9156 124.388 19.1992 123.504 19.1992Z" fill="#F1F1F1" />\n<path d="M123.184 19.1992H122.864C122.069 19.1992 121.424 19.8439 121.424 20.6392V33.7592C121.424 34.5545 122.069 35.1992 122.864 35.1992H123.184C123.979 35.1992 124.624 34.5545 124.624 33.7592V20.6392C124.624 19.8439 123.979 19.1992 123.184 19.1992Z" fill="#F2F2F2" />\n<path d="M126.384 19.1992H119.664C117.985 19.1992 116.624 20.5603 116.624 22.2392V32.1592C116.624 33.8382 117.985 35.1992 119.664 35.1992H126.384C128.063 35.1992 129.424 33.8382 129.424 32.1592V22.2392C129.424 20.5603 128.063 19.1992 126.384 19.1992Z" fill="#E6E6E6" />\n<path opacity="0.5" d="M119.664 20.8008C119.282 20.8008 118.915 20.9525 118.645 21.2225C118.375 21.4926 118.224 21.8589 118.224 22.2408V32.1608C118.224 32.5427 118.375 32.909 118.645 33.179C118.915 33.4491 119.282 33.6008 119.664 33.6008C119.895 33.6008 120.124 33.5553 120.337 33.4668C120.551 33.3784 120.745 33.2487 120.908 33.0853C121.072 32.9219 121.201 32.7278 121.29 32.5143C121.378 32.3008 121.424 32.0719 121.424 31.8408V22.5608C121.424 22.3297 121.378 22.1008 121.29 21.8873C121.201 21.6737 121.072 21.4797 120.908 21.3163C120.745 21.1528 120.551 21.0232 120.337 20.9348C120.124 20.8463 119.895 20.8008 119.664 20.8008Z" fill="white" />\n<path opacity="0.1" d="M155.023 27.2H129.423V22.24C129.447 21.8347 129.384 21.4291 129.239 21.0498C129.095 20.6704 128.872 20.3259 128.585 20.0388C128.298 19.7518 127.953 19.5287 127.574 19.3841C127.194 19.2395 126.789 19.1768 126.383 19.2H123.023V46.4H155.023C156.721 46.4 158.349 45.7257 159.549 44.5255C160.749 43.3253 161.423 41.6974 161.423 40V33.6C161.423 31.9026 160.749 30.2748 159.549 29.0745C158.349 27.8743 156.721 27.2 155.023 27.2Z" fill="#233646" />\n<path opacity="0.1" d="M84.624 36.8008V41.6008C84.624 43.2982 85.2983 44.926 86.4985 46.1263C87.6988 47.3265 89.3266 48.0008 91.024 48.0008H155.024C156.721 48.0008 158.349 47.3265 159.55 46.1263C160.75 44.926 161.424 43.2982 161.424 41.6008V36.8008H84.624Z" fill="#233646" />\n<path opacity="0.1" d="M187.823 33.6H161.423C161.423 31.9026 160.749 30.2748 159.549 29.0745C158.349 27.8743 156.721 27.2 155.023 27.2H129.423V22.24C129.447 21.8347 129.384 21.4291 129.239 21.0498C129.095 20.6704 128.872 20.3259 128.585 20.0388C128.298 19.7518 127.953 19.5287 127.574 19.3841C127.194 19.2395 126.789 19.1768 126.383 19.2H123.023V214.4H187.823C189.733 214.4 191.564 213.641 192.915 212.291C194.265 210.941 195.023 209.11 195.023 207.2V40.8C195.023 38.8905 194.265 37.0591 192.915 35.7089C191.564 34.3586 189.733 33.6 187.823 33.6Z" fill="#233646" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 92.7992C84.8127 92.7992 85.301 93.0015 85.6611 93.3616C86.0212 93.7216 86.2234 94.21 86.2234 94.7192V100.479C86.2234 100.988 86.0212 101.477 85.6611 101.837C85.301 102.197 84.8127 102.399 84.3034 102.399H78.5434C78.0342 102.399 77.5459 102.197 77.1858 101.837C76.8257 101.477 76.6234 100.988 76.6234 100.479V94.7192C76.6234 94.21 76.8257 93.7216 77.1858 93.3616C77.5459 93.0015 78.0342 92.7992 78.5434 92.7992H84.3034ZM84.3034 91.1992H78.5434C78.0812 91.1992 77.6235 91.2903 77.1964 91.4672C76.7693 91.6441 76.3813 91.9033 76.0544 92.2302C75.7276 92.5571 75.4683 92.9451 75.2914 93.3722C75.1145 93.7992 75.0234 94.257 75.0234 94.7192V100.479C75.0234 100.941 75.1145 101.399 75.2914 101.826C75.4683 102.253 75.7276 102.641 76.0544 102.968C76.3813 103.295 76.7693 103.554 77.1964 103.731C77.6235 103.908 78.0812 103.999 78.5434 103.999H84.3034C85.237 103.999 86.1323 103.628 86.7925 102.968C87.4526 102.308 87.8234 101.413 87.8234 100.479V94.7192C87.8234 94.257 87.7324 93.7992 87.5555 93.3722C87.3786 92.9451 87.1193 92.5571 86.7925 92.2302C86.4656 91.9033 86.0776 91.6441 85.6505 91.4672C85.2234 91.2903 84.7657 91.1992 84.3034 91.1992Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 93.6016L82.2234 100.002L79.0234 96.8016" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M147.184 92.8008H95.6636C95.2817 92.8008 94.9155 92.9525 94.6454 93.2225C94.3753 93.4926 94.2236 93.8589 94.2236 94.2408V94.5608C94.2236 94.9427 94.3753 95.309 94.6454 95.579C94.9155 95.8491 95.2817 96.0008 95.6636 96.0008H147.184C147.566 96.0008 147.932 95.8491 148.202 95.579C148.472 95.309 148.624 94.9427 148.624 94.5608V94.2408C148.624 93.8589 148.472 93.4926 148.202 93.2225C147.932 92.9525 147.566 92.8008 147.184 92.8008ZM132.784 99.2008H95.6636C95.2817 99.2008 94.9155 99.3525 94.6454 99.6225C94.3753 99.8926 94.2236 100.259 94.2236 100.641V100.961C94.2236 101.343 94.3753 101.709 94.6454 101.979C94.9155 102.249 95.2817 102.401 95.6636 102.401H132.784C133.166 102.401 133.532 102.249 133.802 101.979C134.072 101.709 134.224 101.343 134.224 100.961V100.641C134.224 100.259 134.072 99.8926 133.802 99.6225C133.532 99.3525 133.166 99.2008 132.784 99.2008Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 115.202C84.5556 115.202 84.8053 115.251 85.0382 115.348C85.2711 115.444 85.4828 115.586 85.6611 115.764C85.8394 115.942 85.9808 116.154 86.0773 116.387C86.1738 116.62 86.2234 116.869 86.2234 117.122V122.882C86.2234 123.391 86.0212 123.879 85.6611 124.239C85.301 124.599 84.8127 124.802 84.3034 124.802H78.5434C78.0342 124.802 77.5459 124.599 77.1858 124.239C76.8257 123.879 76.6234 123.391 76.6234 122.882V117.122C76.6234 116.869 76.6731 116.62 76.7696 116.387C76.8661 116.154 77.0075 115.942 77.1858 115.764C77.3641 115.586 77.5757 115.444 77.8087 115.348C78.0416 115.251 78.2913 115.202 78.5434 115.202H84.3034ZM84.3034 113.602H78.5434C78.0812 113.602 77.6235 113.693 77.1964 113.87C76.7693 114.046 76.3813 114.306 76.0544 114.633C75.7276 114.959 75.4683 115.347 75.2914 115.775C75.1145 116.202 75.0234 116.659 75.0234 117.122V122.882C75.0234 123.344 75.1145 123.802 75.2914 124.229C75.4683 124.656 75.7276 125.044 76.0544 125.371C76.3813 125.697 76.7693 125.957 77.1964 126.134C77.6235 126.311 78.0812 126.402 78.5434 126.402H84.3034C85.237 126.402 86.1323 126.031 86.7925 125.371C87.4526 124.71 87.8234 123.815 87.8234 122.882V117.122C87.8234 116.188 87.4526 115.293 86.7925 114.633C86.1323 113.972 85.237 113.602 84.3034 113.602Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 116L82.2234 122.4L79.0234 119.2" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 121.599H95.6636C95.2817 121.599 94.9155 121.751 94.6454 122.021C94.3753 122.291 94.2236 122.657 94.2236 123.039V123.359C94.2236 123.741 94.3753 124.107 94.6454 124.377C94.9155 124.647 95.2817 124.799 95.6636 124.799H132.784C133.166 124.799 133.532 124.647 133.802 124.377C134.072 124.107 134.224 123.741 134.224 123.359V123.039C134.224 122.657 134.072 122.291 133.802 122.021C133.532 121.751 133.166 121.599 132.784 121.599ZM147.184 115.199H95.6636C95.4745 115.199 95.2873 115.236 95.1126 115.309C94.9379 115.381 94.7791 115.487 94.6454 115.621C94.5117 115.755 94.4056 115.913 94.3332 116.088C94.2609 116.263 94.2236 116.45 94.2236 116.639V116.959C94.2236 117.341 94.3753 117.707 94.6454 117.977C94.9155 118.248 95.2817 118.399 95.6636 118.399H147.184C147.566 118.399 147.932 118.248 148.202 117.977C148.472 117.707 148.624 117.341 148.624 116.959V116.639C148.624 116.45 148.586 116.263 148.514 116.088C148.442 115.913 148.336 115.755 148.202 115.621C148.068 115.487 147.909 115.381 147.735 115.309C147.56 115.236 147.373 115.199 147.184 115.199Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 137.6C84.8127 137.6 85.301 137.802 85.6611 138.162C86.0212 138.522 86.2234 139.011 86.2234 139.52V145.28C86.2234 145.789 86.0212 146.278 85.6611 146.638C85.301 146.998 84.8127 147.2 84.3034 147.2H78.5434C78.0342 147.2 77.5459 146.998 77.1858 146.638C76.8257 146.278 76.6234 145.789 76.6234 145.28V139.52C76.6234 139.011 76.8257 138.522 77.1858 138.162C77.5459 137.802 78.0342 137.6 78.5434 137.6H84.3034ZM84.3034 136H78.5434C78.0812 136 77.6235 136.091 77.1964 136.268C76.7693 136.445 76.3813 136.704 76.0544 137.031C75.7276 137.358 75.4683 137.746 75.2914 138.173C75.1145 138.6 75.0234 139.058 75.0234 139.52V145.28C75.0234 145.742 75.1145 146.2 75.2914 146.627C75.4683 147.054 75.7276 147.442 76.0544 147.769C76.3813 148.096 76.7693 148.355 77.1964 148.532C77.6235 148.709 78.0812 148.8 78.5434 148.8H84.3034C85.237 148.8 86.1323 148.429 86.7925 147.769C87.4526 147.109 87.8234 146.214 87.8234 145.28V139.52C87.8234 138.586 87.4526 137.691 86.7925 137.031C86.1323 136.371 85.237 136 84.3034 136Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 138.398L82.2234 144.798L79.0234 141.598" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 144.002H95.6636C95.4745 144.002 95.2873 144.039 95.1126 144.111C94.9379 144.184 94.7791 144.29 94.6454 144.423C94.5117 144.557 94.4056 144.716 94.3332 144.891C94.2609 145.065 94.2236 145.252 94.2236 145.442V145.762C94.2236 146.143 94.3753 146.51 94.6454 146.78C94.9155 147.05 95.2817 147.202 95.6636 147.202H132.784C133.166 147.202 133.532 147.05 133.802 146.78C134.072 146.51 134.224 146.143 134.224 145.762V145.442C134.224 145.252 134.186 145.065 134.114 144.891C134.042 144.716 133.936 144.557 133.802 144.423C133.668 144.29 133.509 144.184 133.335 144.111C133.16 144.039 132.973 144.002 132.784 144.002ZM147.184 137.602H95.6636C95.2817 137.602 94.9155 137.753 94.6454 138.023C94.3753 138.293 94.2236 138.66 94.2236 139.042V139.362C94.2236 139.551 94.2609 139.738 94.3332 139.913C94.4056 140.087 94.5117 140.246 94.6454 140.38C94.7791 140.514 94.9379 140.62 95.1126 140.692C95.2873 140.764 95.4745 140.802 95.6636 140.802H147.184C147.373 140.802 147.56 140.764 147.735 140.692C147.909 140.62 148.068 140.514 148.202 140.38C148.336 140.246 148.442 140.087 148.514 139.913C148.586 139.738 148.624 139.551 148.624 139.362V139.042C148.624 138.66 148.472 138.293 148.202 138.023C147.932 137.753 147.566 137.602 147.184 137.602Z" fill="#435969" />\n<g opacity="0.5">\n<path opacity="0.5" d="M84.3034 159.998C84.8127 159.998 85.301 160.201 85.6611 160.561C86.0212 160.921 86.2234 161.409 86.2234 161.918V167.678C86.2234 167.931 86.1738 168.18 86.0773 168.413C85.9808 168.646 85.8394 168.858 85.6611 169.036C85.4828 169.214 85.2711 169.356 85.0382 169.452C84.8053 169.549 84.5556 169.598 84.3034 169.598H78.5434C78.2913 169.598 78.0416 169.549 77.8087 169.452C77.5757 169.356 77.3641 169.214 77.1858 169.036C77.0075 168.858 76.8661 168.646 76.7696 168.413C76.6731 168.18 76.6234 167.931 76.6234 167.678V161.918C76.6234 161.409 76.8257 160.921 77.1858 160.561C77.5459 160.201 78.0342 159.998 78.5434 159.998H84.3034ZM84.3034 158.398H78.5434C77.6099 158.398 76.7146 158.769 76.0544 159.429C75.3943 160.09 75.0234 160.985 75.0234 161.918V167.678C75.0234 168.612 75.3943 169.507 76.0544 170.167C76.7146 170.828 77.6099 171.198 78.5434 171.198H84.3034C85.237 171.198 86.1323 170.828 86.7925 170.167C87.4526 169.507 87.8234 168.612 87.8234 167.678V161.918C87.8234 160.985 87.4526 160.09 86.7925 159.429C86.1323 158.769 85.237 158.398 84.3034 158.398Z" fill="#4B6070" />\n</g>\n<path d="M88.6234 160.801L82.2234 167.201L79.0234 164.001" stroke="#FF4136" stroke-miterlimit="10" stroke-linecap="round" />\n<path opacity="0.2" d="M132.784 166.4H95.6636C95.2817 166.4 94.9155 166.552 94.6454 166.822C94.3753 167.092 94.2236 167.458 94.2236 167.84V168.16C94.2236 168.349 94.2609 168.536 94.3332 168.711C94.4056 168.886 94.5117 169.044 94.6454 169.178C94.7791 169.312 94.9379 169.418 95.1126 169.49C95.2873 169.563 95.4745 169.6 95.6636 169.6H132.784C132.973 169.6 133.16 169.563 133.335 169.49C133.509 169.418 133.668 169.312 133.802 169.178C133.936 169.044 134.042 168.886 134.114 168.711C134.186 168.536 134.224 168.349 134.224 168.16V167.84C134.224 167.458 134.072 167.092 133.802 166.822C133.532 166.552 133.166 166.4 132.784 166.4ZM147.184 160H95.6636C95.4745 160 95.2873 160.037 95.1126 160.11C94.9379 160.182 94.7791 160.288 94.6454 160.422C94.5117 160.555 94.4056 160.714 94.3332 160.889C94.2609 161.064 94.2236 161.251 94.2236 161.44V161.76C94.2236 162.142 94.3753 162.508 94.6454 162.778C94.9155 163.048 95.2817 163.2 95.6636 163.2H147.184C147.566 163.2 147.932 163.048 148.202 162.778C148.472 162.508 148.624 162.142 148.624 161.76V161.44C148.624 161.251 148.586 161.064 148.514 160.889C148.442 160.714 148.336 160.555 148.202 160.422C148.068 160.288 147.909 160.182 147.735 160.11C147.56 160.037 147.373 160 147.184 160Z" fill="#435969" />\n<path opacity="0.2" d="M79.824 70.4H137.424C138.273 70.4 139.087 70.0629 139.687 69.4627C140.287 68.8626 140.624 68.0487 140.624 67.2C140.624 66.3513 140.287 65.5374 139.687 64.9373C139.087 64.3371 138.273 64 137.424 64H79.824C78.9753 64 78.1614 64.3371 77.5613 64.9373C76.9612 65.5374 76.624 66.3513 76.624 67.2C76.624 68.0487 76.9612 68.8626 77.5613 69.4627C78.1614 70.0629 78.9753 70.4 79.824 70.4ZM147.024 75.2H79.824C78.9753 75.2 78.1614 75.5371 77.5613 76.1373C76.9612 76.7374 76.624 77.5513 76.624 78.4C76.624 79.2487 76.9612 80.0626 77.5613 80.6627C78.1614 81.2629 78.9753 81.6 79.824 81.6H147.024C147.873 81.6 148.687 81.2629 149.287 80.6627C149.887 80.0626 150.224 79.2487 150.224 78.4C150.224 77.5513 149.887 76.7374 149.287 76.1373C148.687 75.5371 147.873 75.2 147.024 75.2Z" fill="#435969" />\n</symbol>'}),f=(c().add(p),p),H=function(){return i.createElement("svg",{height:"240px",width:"240px",viewBox:f.viewBox},i.createElement("use",{xlinkHref:"#".concat(f.id)}))},s=e(78312),V=e(97096),h=function(C){var t=C.checked,e=C.error,n=C.onChange,a=C.tagging,o=C.children;return i.createElement(l.Flex,{alignItems:"center","data-testid":"termsAndConditions"},i.createElement(s.P2,{checked:t,onChange:n,error:e,"data-ga":"signinup::click-checkbox::".concat(a),"data-testid":"termsAndConditions-checkbox"}),o||i.createElement(l.TextBig,null,"By signing up, you agree to the Netdata ",i.createElement(V.w,{tagging:a})," and"," ",i.createElement(V.F,{tagging:a})))},E=e(13477),g=e(46667),u=function(){var C=(0,E.ec)("termsAccepted",{shouldPersist:!0}),t=(0,n.Z)(C,2),e=t[0],o=t[1],d=(0,g.Z)(),r=(0,n.Z)(d,2),c=r[0],p=r[1],f=(0,i.useCallback)((function(){(0,a.L)("","","","","","terms-accept"),o(c)}),[c]);return e?null:i.createElement(l.ConfirmationDialog,{confirmLabel:"Accept","data-ga":"accept-terms-dialog","data-testid":"acceptTermsDialog",handleConfirm:f,hideIcon:!0,hideDecline:!0,isConfirmPositive:!0,isConfirmDisabled:!c,message:i.createElement(l.Flex,{gap:4,alignItems:"center",column:!0},i.createElement(H,null),i.createElement(h,{checked:c,onChange:p,tagging:"modal-view"})),title:"To use Netdata you need to read and accept our terms and conditions"})}},78312:function(C,t,e){e.d(t,{Fg:function(){return o},P2:function(){return r},Sn:function(){return c},U5:function(){return d},Yb:function(){return p},xG:function(){return a}});var n=e(60677),i=e(57509),l=e(16772),a=n.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),o=n.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("main"),(0,i.getSizeBy)(1)),d=(0,n.default)(l.Z).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["label{margin-bottom:0;}> div{display:none;}"]),r=(0,n.default)(i.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,i.getSizeBy)(2),(function(C){return C.error&&(0,i.getColor)("error")})),c=(0,n.default)(i.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),p=(0,n.default)(i.Flex).attrs((function(C){var t=C.gap;return{column:!0,gap:void 0===t?8:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},97096:function(C,t,e){e.d(t,{F:function(){return d},w:function(){return o}});e(92222);var n=e(67294),i=e(78312),l={link:"https://www.netdata.cloud/terms",title:"Terms And Conditions",dataGa:"signinup::click-terms::"},a=function(C){var t=C.link,e=C.title,l=C.dataGa;return function(C){var a=C.tagging;return n.createElement(i.Fg,{href:t,target:"_blank",rel:"noopener noreferrer","data-ga":"".concat(l).concat(a)},e)}},o=a({link:"https://www.netdata.cloud/privacy",title:"Privacy Policy",dataGa:"signinup::click-privacy::"}),d=a(l)}}]); \ No newline at end of file
diff --git a/web/gui/v2/129.1d087d9f7fb4bfa3cb72.chunk.js b/web/gui/v2/129.1d087d9f7fb4bfa3cb72.chunk.js
new file mode 100644
index 00000000..4baa11a4
--- /dev/null
+++ b/web/gui/v2/129.1d087d9f7fb4bfa3cb72.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9b6a54bc-3095-47ba-8d91-8da7b90d796c",e._sentryDebugIdIdentifier="sentry-dbid-9b6a54bc-3095-47ba-8d91-8da7b90d796c")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[129],{66129:function(e,t,n){n.r(t),n.d(t,{default:function(){return Te}});var r=n(29439),o=n(67294),a=n(57509),l=n(87462),i=n(45987),c=(n(74916),n(64765),n(10034)),u=n(85373),s=n(67034),m=function(){var e=(0,c.NE)(),t=(0,s.Z)(),n=(0,c.dG)(),a=(0,r.Z)(n,2),l=a[0],i=a[1],m=(0,c.Zc)(),d=(0,o.useMemo)((function(){return(0,u.cW)({searchTerm:l,integrations:e})})),g=l?(0,u.QJ)(d,t):m;return{integrations:(0,u.mi)(g),setSearchTerm:i}},d=n(41898),g=function(e){var t=e.flavour,n=(0,c.xh)(),i=(0,r.Z)(n,2),u=i[0],s=i[1],g=(0,c.wC)(),f=g.history,p=g.setHistory,h=(0,c.lX)(),v=m().setSearchTerm,E=(0,o.useMemo)((function(){var e;return null===(e=d.xN[t])||void 0===e?void 0:e.search}),[t]),y=(null===E||void 0===E?void 0:E.wrapperProps)||{},x=(null===E||void 0===E?void 0:E.inputProps)||{};return o.createElement(a.Flex,y,o.createElement(a.TextInput,(0,l.Z)({iconLeft:o.createElement(a.Icon,{name:"search",color:"textLite"}),value:h,onInput:function(e){var t=e.target.value;v(t),t?(u||s(f),p([])):u&&p(u)},placeholder:"Search through 800+ integrations",containerStyles:{width:"100%"},dataGa:"integrations::searchTerm::".concat(t)},x)))},f=n(6308),p=["flavour"],h=function(e){var t=e.flavour,n=(0,i.Z)(e,p),r=(0,f.Z)({polling:3e3}),c=r.loading,u=r.nodes,s=(0,o.useMemo)((function(){var e;return null===(e=d.n5[t])||void 0===e?void 0:e.headerContent}),[t]),m=(0,o.useMemo)((function(){var e;return null===(e=d.xN[t])||void 0===e?void 0:e.header}),[t]),h=(null===m||void 0===m?void 0:m.wrapperProps)||{};return o.createElement(a.Flex,(0,l.Z)({column:!0,alignItems:"center",justifyContent:"center",gap:2},h),s&&o.createElement(s,(0,l.Z)({claimedNodes:u,loadingNodes:c},n)),o.createElement(g,{flavour:t}))},v=n(668),E=(n(21249),n(57640),n(9924),n(50308)),y=n.n(E),x=n(88553),b=n(27856),w=(n(92222),n(86348)),C=(n(47042),n(46667)),Z=function(e){var t=e.categories,n=void 0===t?[]:t,r=e.level,a=void 0===r?0:r,l=e.flavour;return o.createElement(o.Fragment,null,n.map((function(e){return o.createElement(N,{key:e.id,category:e,level:a+1,flavour:l})})))},k=function(e){var t=e.subcategories,n=void 0===t?[]:t,l=e.popular,i=void 0===l?[]:l,c=e.noPopular,u=void 0===c?[]:c,s=e.limitResults,m=void 0===s?0:s,d=e.level,g=e.flavour,f=(0,C.Z)(m),p=(0,r.Z)(f,2),h=p[0],v=p[1],E=m&&!h?u.slice(0,m):u,y=(0,o.useMemo)((function(){return T(2)+4}),[]);return o.createElement(a.Flex,{column:!0},o.createElement(Z,{categories:i,level:d,flavour:g}),o.createElement(Z,{categories:E,level:d,flavour:g}),!!m&&m<n.length&&o.createElement(a.Flex,{padding:[0,0,0,y]},o.createElement(a.Button,{flavour:"borderless",label:h?"Show less":"Show more",onClick:v,small:!0,dataGa:"integrations::click-category-".concat(name,"-").concat(h?"showLess":"showMore","::").concat(g)})))},I=n(38626),F=n(82351),S=n(92432),T=function(){return 4+3*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)},N=function(e){var t=e.isSidebarCollapsed,n=e.category,l=void 0===n?{}:n,i=e.level,u=void 0===i?1:i,s=e.flavour,m=e.maxItemsPerCategory,g=void 0===m?{}:m,f=(0,c.pZ)(),p=(0,c.wC)(),h=p.selectedCategory,E=p.pushCategory,y=l.id,b=l.name,Z=d.JZ[y],N=(0,o.useMemo)((function(){return(0,w.Ov)((0,w.KT)({category:l,categories:f}))}),[l,f]),P=N.categories,M=N.popular,L=N.rest,B=(0,x.Z)(),R=(0,r.Z)(B,2),_=R[0],j=R[1].width,H=(0,o.useMemo)((function(){return d.xN[s]||{}}),[s]).categoryCharacterWidth,z=(0,o.useMemo)((function(){return H>0?Math.floor(j/H):30}),[j,H]),D=(0,o.useMemo)((function(){var e,t=null===(e=g[y])||void 0===e?void 0:e.limit,n=M.length+1;return t>1?t-n:0}),[g,M]),A=y==(null===h||void 0===h?void 0:h.id),G=(0,o.useMemo)((function(){return T(u)}),[u]),W=(0,C.Z)(),O=(0,r.Z)(W,2),Q=O[0],J=O[1],K=function(){E(l),(0,S.L)("integrations","select-category","sidebar","category-id:".concat(l.id)),P.length&&J()};return t?o.createElement(a.Flex,{alignItems:"center",justifyContent:"center",padding:[2]},o.createElement(F.Z,{content:b,align:"right"},Z&&o.createElement(a.Icon,{name:Z,color:A?"primary":"text",cursor:"pointer",onClick:K}))):o.createElement(a.Flex,{column:!0},o.createElement(v.MJ,{ref:_,className:1==u?"top-level":"",gap:u>1?1:2,padding:[2,2,2,G],onClick:K,dataGa:"integrations::click-category-".concat(b,"::").concat(s),background:u>1&&A?"integrationMenuItemHover":null},Z&&o.createElement(a.Icon,{name:Z,size:"small",color:A?"primary":"text"}),u>1&&o.createElement(v.pV,{name:"chevron_right",rotate:Q?1:0,size:"small",color:"textLite",cursor:"pointer",disabled:!P.length}),o.createElement(I.Z,{maxLength:z,text:b,TextComponent:a.TextBig})),!!P.length&&(Q||1==u)&&o.createElement(k,{subcategories:P,popular:M,noPopular:L,limitResults:D,level:u,flavour:s}))},P=function(e){return o.createElement(a.Box,(0,l.Z)({as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}},e))},M={collapsed:{alignItems:"center",justifyContent:"center",padding:[2]},expanded:{justifyContent:"end",padding:[0,2,0,0],position:"sticky",top:"0"}},L={collapsed:{icon:"chevron_right",iconSize:"large",flavour:"borderless",small:!0},expanded:{icon:"chevron_left",iconSize:"small",flavour:"hollow",tiny:!0}},B=function(e){var t=e.isSidebarCollapsed,n=e.onClick,r=void 0===n?y():n,i=(0,o.useMemo)((function(){return t?"collapsed":"expanded"}),[t]);return o.createElement(a.Flex,(0,l.Z)({width:"100%"},M[i]),o.createElement(a.Button,(0,l.Z)({neutral:!0,onClick:r},L[i])))},R=(0,b.D)(300,w.XB),_=function(e){var t=e.flavour,n=e.isSidebarCollapsed,l=e.toggleSidebar,i=void 0===l?y():l,u=(0,x.Z)(),s=(0,r.Z)(u,2),m=s[0],d=s[1].height,g=(0,c.BN)(),f=(0,c.pZ)(),p=(0,o.useState)({}),h=(0,r.Z)(p,2),v=h[0],E=h[1];return(0,o.useEffect)((function(){R({height:d,topLevelCategories:g,categories:f,setState:E})}),[d,g,f]),o.createElement(a.Flex,{ref:m,column:!0,gap:2,overflow:{vertical:"auto"}},o.createElement(B,{isSidebarCollapsed:n,onClick:i}),g.map((function(e,r){return o.createElement(a.Flex,{key:e.id,column:!0,gap:2},o.createElement(N,{isSidebarCollapsed:n,category:e,maxItemsPerCategory:v,flavour:t}),!n&&r<g.length-1&&o.createElement(P,null))})))},j=(0,o.memo)(_),H=n(74059),z=function(){var e=(0,c.wC)().pop,t=(0,o.useCallback)((function(){e(),(0,S.L)("integrations","navigate-back","breadcrumb")}),[e]);return o.createElement(a.Button,{label:"Back",icon:"arrow_left",iconColor:"primary",iconSize:"small",flavour:"borderless",onClick:t})},D=(n(15306),n(60677)),A=["iconProps"],G=function(e){var t=e.iconProps,n=(0,i.Z)(e,A);return o.createElement(a.Flex,(0,l.Z)({width:"74px",height:"74px",alignItems:"center",justifyContent:"center",background:"primary",round:"100%"},n),o.createElement(a.Icon,(0,l.Z)({name:"integrations",color:"white",size:"large"},t)))},W=(0,D.default)(G).withConfig({displayName:"fallbackIcon__PlaceholderIcon",componentId:"sc-182ui8v-0"})(["filter:blur(3px);background:",";opacity:0.7;"],(0,a.getColor)("mainBackground")),O=function(){return o.createElement(W,{iconProps:{color:"textLite"}})},Q=G,J=n(91008),K=function(e){var t=e.name,n=e.icon,l=(0,o.useState)(),i=(0,r.Z)(l,2),c=i[0],u=i[1],s=(0,o.useCallback)((function(){return u(!0)}),[]);return o.createElement(a.Flex,{alignItems:"center",gap:1},n&&(c?o.createElement(Q,{width:"18px",height:"18px",iconProps:{size:void 0,with:"12px",height:"12px"}}):o.createElement("img",{src:n,alt:"".concat(t,"-logo"),height:"18px",onError:s})),o.createElement(a.Text,null,t))},V=function(e){var t=e.category,n=void 0===t?{}:t,r=e.index,l=void 0===r?0:r,i=(0,c.wC)(),u=i.history,s=i.selectedIntegration,m=i.pushCategory;return!s&&l==u.length-1?o.createElement(a.Text,null,n.name):o.createElement(J.Z,{onClick:function(){m(n),(0,S.L)("integrations","select-category","breadcrumb","category-id:".concat(n.id))}},n.name)},X=function(e){var t=e.flavour,n=(0,c.wC)().history,r=n.map((function(e){return e.name})).join("-").replace(" ","");return o.createElement(a.Flex,{gap:2,dataGa:"integrations::view-integration-".concat(r,"::").concat(t)},n.map((function(e,t){return o.createElement(a.Flex,{key:e.id,gap:2},"category"==e.type?o.createElement(V,{category:e,index:t}):o.createElement(K,e),t<n.length-1&&o.createElement(a.Text,null,"/"))})))},Y=function(e){var t=e.url,n=void 0===t?"":t;return n?o.createElement(J.Z,{href:n,rel:"noopener noreferrer",target:"_blank"},o.createElement(F.Z,{content:"Do you see something wrong? Edit the contents of this resource here."},o.createElement(a.Flex,{alignItems:"center",gap:1},o.createElement(a.Icon,{color:"primary",name:"pencilOutline",width:"12px",height:"12px"}),o.createElement(a.Text,{color:"primary"},"Edit information")))):null},$=n(35819),q=(n(82526),n(41817),function(){var e=m().integrations,t=(0,c.Si)(),n=(0,c.mk)(),r=(0,c.wC)().setHistory,l=(0,o.useCallback)((function(){t(),n&&r(n)}),[]);return o.createElement(a.Flex,{alignItems:"center",justifyContent:"between"},o.createElement(a.Flex,{alignItems:"center",gap:4},o.createElement(a.TextBig,null,"Found ",e.length," results"),o.createElement(a.Button,{label:"Clear",icon:"x",iconColor:"primary",iconSize:"small",flavour:"borderless",onClick:l})))}),U=n(71059),ee=(n(57327),n(41539),n(88449),n(2490),n(59849),["src","Placeholder","onError"]),te=function(e){var t=e.src,n=e.Placeholder,a=e.onError,c=void 0===a?y():a,u=(0,i.Z)(e,ee),s=(0,C.Z)(!0),m=(0,r.Z)(s,2),d=m[0],g=m[1];return(0,o.useEffect)((function(){var e=new Image;e.src=t,e.onload=function(){return g()},e.onerror=function(e){return c(e)}}),[]),d&&n?o.createElement(n,null):o.createElement("img",(0,l.Z)({src:t},u))},ne=["isCommunity"],re=["integration"],oe=function(e){var t=e.isCommunity,n=(0,i.Z)(e,ne);return o.createElement(a.Flex,(0,l.Z)({alignItems:"center",gap:1,position:"absolute",top:"-20px",right:"0",padding:[0,2]},n),o.createElement(F.Z,{content:t?"This integration is maintaned by the community":"This integration is maintained by Netdata"},o.createElement(a.TextMicro,{strong:!0,color:"textDescription"},t?"by Community":"by Netdata")),!t&&o.createElement(a.Icon,{name:"favorites",color:"primary",width:"14px",height:"14px"}))},ae=function(e){var t=e.integration,n=void 0===t?{}:t,u=(0,i.Z)(e,re),m=(0,c.wC)(),d=m.selectedCategory,g=m.pushIntegration,f=(0,c.pZ)(),p=(0,C.Z)(),h=(0,r.Z)(p,2),E=h[0],y=h[1],x=n.flattenedCategory,b=n.community,Z=(0,s.Z)(),k=(0,w.QQ)({category:x,getCategoryById:Z}),I=k.tree,F=k.topLevelCategory,T=(0,o.useMemo)((function(){return I.slice(0,2).filter(Boolean).map((function(e){return e.name})).join(" / ")}),[I,F]),N=(0,w.tu)((null===d||void 0===d?void 0:d.id)||(null===x||void 0===x?void 0:x.id),f),P=(0,o.useState)(),M=(0,r.Z)(P,2),L=M[0],B=M[1],R=(0,o.useCallback)((function(){return B(!0)}),[]);return o.createElement(v.Zb,(0,l.Z)({alignItems:"center",justifyContent:"center",height:"100%",position:"relative",overflow:"hidden",cursor:"pointer",padding:[2],onMouseEnter:y,onMouseLeave:y,onClick:function(){g(n),(0,S.L)("integrations","select-integration","integration-tile","integration-id:".concat(n.id))},round:"2px"},u),o.createElement(v.ZL,null,n.icon&&!L&&o.createElement(te,{Placeholder:O,src:n.icon,alt:"".concat(n.name,"-logo"),width:"74px",height:"74px",onError:R})),o.createElement(v._K,{name:N,className:E?"hover":"",width:"190px",height:"190px",color:"textLite"}),o.createElement(a.Flex,{alignItems:"center",justifyContent:"center",column:!0,gap:2,zIndex:10},o.createElement(a.Flex,{justifyContent:"center",column:!0,gap:1},o.createElement(a.H3,{textAlign:"center",strong:!1},n.name),T&&o.createElement(a.TextSmall,{textAlign:"center"},T)),n.icon&&!L&&o.createElement(te,{Placeholder:O,src:n.icon,alt:"".concat(n.name,"-logo"),width:"74px",height:"74px",onError:R}),L&&o.createElement(Q,null),n.description?o.createElement(v.SZ,{className:E?"hover":"",alignItems:"center",justifyContent:"center",width:"100%",padding:[3],background:"mainBackground"},o.createElement(oe,{isCommunity:b}),o.createElement(a.Text,{textAlign:"center"},n.description)):o.createElement(oe,{isCommunity:b,bottom:"4px",top:"unset"})))},le=(0,o.memo)(ae),ie=function(e){var t=e.integrations,n=void 0===t?[]:t,r=e.itemsPerRow,a=void 0===r?4:r,l=e.rowHeight,i=void 0===l?200:l,c=(0,o.useRef)(),u=(0,o.useMemo)((function(){return function(e){for(var t=e.integrations,n=void 0===t?[]:t,r=e.itemsPerRow,o=[],a=[],l=0;l<n.length;l++)a.push(n[l]),(l+1)%r==0&&(o.push(a),a=[]);return a.length>0&&o.push(a),o}({integrations:n,itemsPerRow:a})}),[n,a]),s=(0,o.useCallback)((function(){return i}),[i]),m=(0,U.MG)({count:u.length,getScrollElement:function(){return c.current},enableSmoothScroll:!1,estimateSize:s});return o.createElement("div",{ref:c,style:{height:"100%",overflow:"auto",paddingRight:"16px"}},o.createElement("div",{style:{minHeight:"".concat(m.getTotalSize(),"px"),width:"100%",position:"relative"}},m.getVirtualItems().map((function(e){return o.createElement("div",{key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),overflow:"hidden"},ref:m.measureElement},o.createElement(v.DF,{itemsPerRow:a,rowHeight:i},(u[e.index]||[]).map((function(e){return o.createElement(le,{width:"100%",height:"100%",key:e.flattenedKey||e.id,integration:e})}))))}))))},ce=function(){return o.createElement(a.Flex,{width:"100%",column:!0,alignItems:"center",margin:[8,0,0,0]},o.createElement(a.Flex,{column:!0,justifyContent:"center",alignItems:"center",margin:[0,0,6]},o.createElement(a.H3,{margin:[0,0,4]},"No integrations to display"),o.createElement(a.Text,{color:"textDescription",textAlign:"center"},"There are currently no integrations under this category.",o.createElement("br",null),"Try another category or use the search bar to find what you're looking for.")))},ue=n(94829),se="(min-width: 1600px)",me="(max-width: 1599px)",de="(max-width: 1299px)",ge={large:{itemsPerRow:4,rowHeight:200},medium:{itemsPerRow:3,rowHeight:200},small:{itemsPerRow:2,rowHeight:190}},fe=(0,o.memo)((function(e){var t=e.selectedCategory,n=e.searchTerm,r=e.integrations,l=function(){var e=(0,ue.Z)(se),t=(0,ue.Z)(me),n=(0,ue.Z)(de);return ge[e?"large":t&&!n?"medium":"small"]||{}}(),i=l.itemsPerRow,c=l.rowHeight;return o.createElement(a.Flex,{column:!0,gap:4,width:"100%",height:"100%",overflow:{vertical:"auto"}},o.createElement(a.Flex,{width:"100%",position:"sticky",top:"0",background:"mainBackground",zIndex:15},n?o.createElement(q,null):o.createElement(a.Flex,{column:!0,gap:2},o.createElement(a.H1,{strong:!1},null===t||void 0===t?void 0:t.name),o.createElement(a.Text,null,null===t||void 0===t?void 0:t.description))),r.length?o.createElement(ie,{integrations:r,itemsPerRow:i,rowHeight:c}):o.createElement(ce,null))})),pe=function(e){var t=e.flavour,n=(0,c.wC)().selectedCategory,r=(0,c.lX)(),a=m().integrations;return o.createElement(fe,{flavour:t,selectedCategory:n,searchTerm:r,integrations:a})},he=(n(91058),n(67996)),ve=n(95248),Ee=n(58591),ye=function(){var e,t=(0,o.useState)("calc(100% - 133px)"),n=(0,r.Z)(t,2),l=n[0],i=n[1],u=(0,Ee.m$)().selectedIntegrationTab,s=(0,ve.I0)("selectedIntegrationTab"),m=(0,r.Z)(s,2)[1],d=(0,o.useState)(u||0),g=(0,r.Z)(d,2),f=g[0],p=g[1],h=(0,c.wC)().selectedIntegration,v=void 0===h?{}:h,E=v.overview,y=v.metrics,b=v.alerts,w=v.setup,C=v.troubleshooting,Z=v.relatedResources,k=(0,x.Z)(),I=(0,r.Z)(k,2),F=I[0],T=I[1].height,N=(0,o.useMemo)((function(){return[E?{id:"overview",label:"Overview",content:E}:null,y?{id:"metrics",label:"Metrics",content:y}:null,b?{id:"alerts",label:"Alerts",content:b}:null,w?{id:"setup",label:"Setup",content:w}:null,C?{id:"troubleshooting",label:"Troubleshooting",content:C}:null].filter(Boolean)}),[E,y,b,w,C,Z]);(0,o.useLayoutEffect)((function(){T&&i("".concat(T-70,"px"))}),[T]);return o.createElement(a.Flex,{ref:F,column:!0,gap:2,width:"100%",height:"100%",margin:[4,0,0,0]},o.createElement(a.Flex,{border:{side:"bottom",size:"1px",color:"borderSecondary"},padding:[0,4]},o.createElement(a.Tabs,{selected:parseInt(f),onChange:function(e){var t;m(e),p(e),(0,S.L)("integrations","select-integration-tab","integration-view","selected-tab:".concat(null===(t=N[e])||void 0===t?void 0:t.label))}},N.map((function(e){var t=e.label;return o.createElement(a.Tab,{key:t,label:o.createElement(a.Text,null,t),minWidth:"auto",maxWidth:"auto",padding:[1,4],background:"mainBackground",small:!0})})))),o.createElement(a.Flex,{width:"100%",height:l,overflow:{vertical:"auto"},padding:[2,0]},o.createElement(he.Z,null,null===(e=N[f])||void 0===e?void 0:e.content)))},xe=function(e){var t=e.integration,n=void 0===t?{}:t;return o.createElement(o.Fragment,null,n.description&&o.createElement(a.Flex,{margin:[4,0,0,0]},o.createElement(a.Text,null,n.description)),o.createElement(ye,null))},be=function(e){var t=e.integration,n=void 0===t?{}:t,r=e.topLevelCategory,a=void 0===r?{}:r,l=e.isNightly,i=(0,o.useMemo)((function(){return function(e){return d.ON[null===e||void 0===e?void 0:e.id]||xe}(a)}),[a]);return o.createElement(i,{integration:n,isNightly:l})},we=n(35253),Ce=function(e){var t=e.flavour,n=(0,H.OS)("plan"),l=(0,s.Z)(),i=(0,c.wC)(),u=i.level,m=i.selectedCategory,d=i.selectedIntegration,g=(d||{}).flattenedCategory||m,f=(0,w.QQ)({category:g,getCategoryById:l}).topLevelCategory,p="deploy"==(null===f||void 0===f?void 0:f.id),h=(0,o.useState)(we.N[n]||we.N.default),v=(0,r.Z)(h,2),E=v[0],y=v[1],x=d||u>2;return o.createElement(a.Flex,{column:!0,gap:2,width:"100%",overflow:d&&!p?{}:{vertical:"auto"}},o.createElement(a.Flex,{column:!0,alignItems:"start",gap:2,padding:[0,2,0,0]},x&&o.createElement(z,null),o.createElement(a.Flex,{width:"100%",alignItems:"end",justifyContent:"between"},o.createElement(a.Flex,{alignItems:"center",gap:4},o.createElement(X,{flavour:t}),(null===d||void 0===d?void 0:d.editLink)&&o.createElement(Y,{url:d.editLink})),d&&p&&o.createElement($.Z,{isNightly:"nightly"==E,toggleNightly:function(e){var t=e.target.checked?"nightly":"stable";y(t)}}))),d?o.createElement(be,{integration:d,topLevelCategory:f,isNightly:"nightly"==E,flavour:t}):o.createElement(pe,{flavour:t}))},Ze=n(26502),ke=(0,D.default)(a.Flex).withConfig({displayName:"cncfReference__Wrapper",componentId:"sc-1ntasha-0"})(["position:absolute;bottom:0;"]),Ie=function(){return o.createElement(ke,{width:"100%",alignItems:"start",justifyContent:"end",background:"mainBackground",gap:2,padding:[6]},o.createElement(a.Flex,{width:"500px"},o.createElement(a.TextSmall,{textAlign:"right"},"Netdata is a member of the Cloud Native Computing Foundation (CNCF), and it is the 3rd most starred project in the"," ",o.createElement(J.Z,{alignSelf:"start",Component:a.TextSmall,href:"https://landscape.cncf.io/card-mode?grouping=no&sort=stars",rel:"noopener noreferer",target:"_blank"},"CNCF landscape"),".")),o.createElement(Ze.lR,null))},Fe=n(18663),Se=n(89250),Te=function(e){var t=e.flavour,n=void 0===t?d.p1:t,l=(0,C.Z)(),i=(0,r.Z)(l,4),u=i[0],s=i[2],m=i[3];!function(){var e=(0,o.useRef)(!0),t=(0,Se.TH)().pathname,n=(0,c.P0)();(0,o.useEffect)((function(){e.current||(e.current=!1,n())}),[t])}();var g=(0,C.Z)(),f=(0,r.Z)(g,2),p=f[0],E=f[1];return o.createElement(o.Fragment,null,o.createElement(a.Flex,{position:"relative",height:"100%",column:!0,background:"mainBackground"},o.createElement(a.Flex,{column:!0,alignItems:"center",justifyContent:"center"},o.createElement(h,{flavour:n,onInvite:s})),o.createElement(v.J3,{flavour:n,isSidebarCollapsed:p},o.createElement(j,{flavour:n,isSidebarCollapsed:p,toggleSidebar:E}),o.createElement(Ce,{flavour:n})),n==d.RV.homePage&&o.createElement(Ie,null)),u&&o.createElement(Fe.l,{onClose:m}))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/129.59192a62539648e72a38.chunk.js b/web/gui/v2/129.59192a62539648e72a38.chunk.js
deleted file mode 100644
index c1910a08..00000000
--- a/web/gui/v2/129.59192a62539648e72a38.chunk.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="800953e0-85c5-495d-9332-6f7adbffd467",e._sentryDebugIdIdentifier="sentry-dbid-800953e0-85c5-495d-9332-6f7adbffd467")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[129],{66129:function(e,t,n){n.r(t),n.d(t,{default:function(){return Te}});var r=n(29439),o=n(67294),a=n(15557),l=n(87462),i=n(45987),c=(n(74916),n(64765),n(10034)),u=n(85373),s=n(67034),d=function(){var e=(0,c.NE)(),t=(0,s.Z)(),n=(0,c.dG)(),a=(0,r.Z)(n,2),l=a[0],i=a[1],d=(0,c.Zc)(),m=(0,o.useMemo)((function(){return(0,u.cW)({searchTerm:l,integrations:e})})),g=l?(0,u.QJ)(m,t):d;return{integrations:(0,u.mi)(g),setSearchTerm:i}},m=n(41898),g=function(e){var t=e.flavour,n=(0,c.xh)(),i=(0,r.Z)(n,2),u=i[0],s=i[1],g=(0,c.wC)(),f=g.history,p=g.setHistory,v=(0,c.lX)(),h=d().setSearchTerm,E=(0,o.useMemo)((function(){var e;return null===(e=m.xN[t])||void 0===e?void 0:e.search}),[t]),y=(null===E||void 0===E?void 0:E.wrapperProps)||{},x=(null===E||void 0===E?void 0:E.inputProps)||{};return o.createElement(a.Flex,y,o.createElement(a.TextInput,(0,l.Z)({iconLeft:o.createElement(a.Icon,{name:"search",color:"textLite"}),value:v,onInput:function(e){var t=e.target.value;h(t),t?(u||s(f),p([])):u&&p(u)},placeholder:"Search through 800+ integrations",containerStyles:{width:"100%"},dataGa:"integrations::searchTerm::".concat(t)},x)))},f=n(6308),p=["flavour"],v=function(e){var t=e.flavour,n=(0,i.Z)(e,p),r=(0,f.Z)({polling:3e3}),c=r.loading,u=r.nodes,s=(0,o.useMemo)((function(){var e;return null===(e=m.n5[t])||void 0===e?void 0:e.headerContent}),[t]),d=(0,o.useMemo)((function(){var e;return null===(e=m.xN[t])||void 0===e?void 0:e.header}),[t]),v=(null===d||void 0===d?void 0:d.wrapperProps)||{};return o.createElement(a.Flex,(0,l.Z)({column:!0,alignItems:"center",justifyContent:"center",gap:2},v),s&&o.createElement(s,(0,l.Z)({claimedNodes:u,loadingNodes:c},n)),o.createElement(g,{flavour:t}))},h=n(668),E=(n(21249),n(57640),n(9924),n(50308)),y=n.n(E),x=n(88553),b=n(27856),w=(n(92222),n(86348)),C=(n(47042),n(46667)),Z=function(e){var t=e.categories,n=void 0===t?[]:t,r=e.level,a=void 0===r?0:r,l=e.flavour;return o.createElement(o.Fragment,null,n.map((function(e){return o.createElement(N,{key:e.id,category:e,level:a+1,flavour:l})})))},k=function(e){var t=e.subcategories,n=void 0===t?[]:t,l=e.popular,i=void 0===l?[]:l,c=e.noPopular,u=void 0===c?[]:c,s=e.limitResults,d=void 0===s?0:s,m=e.level,g=e.flavour,f=(0,C.Z)(d),p=(0,r.Z)(f,2),v=p[0],h=p[1],E=d&&!v?u.slice(0,d):u,y=(0,o.useMemo)((function(){return T(2)+4}),[]);return o.createElement(a.Flex,{column:!0},o.createElement(Z,{categories:i,level:m,flavour:g}),o.createElement(Z,{categories:E,level:m,flavour:g}),!!d&&d<n.length&&o.createElement(a.Flex,{padding:[0,0,0,y]},o.createElement(a.Button,{flavour:"borderless",label:v?"Show less":"Show more",onClick:h,small:!0,dataGa:"integrations::click-category-".concat(name,"-").concat(v?"showLess":"showMore","::").concat(g)})))},I=n(38626),F=n(82351),S=n(92432),T=function(){return 4+3*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)},N=function(e){var t=e.isSidebarCollapsed,n=e.category,l=void 0===n?{}:n,i=e.level,u=void 0===i?1:i,s=e.flavour,d=e.maxItemsPerCategory,g=void 0===d?{}:d,f=(0,c.pZ)(),p=(0,c.wC)(),v=p.selectedCategory,E=p.pushCategory,y=l.id,b=l.name,Z=m.JZ[y],N=(0,o.useMemo)((function(){return(0,w.Ov)((0,w.KT)({category:l,categories:f}))}),[l,f]),P=N.categories,M=N.popular,L=N.rest,B=(0,x.Z)(),R=(0,r.Z)(B,2),_=R[0],j=R[1].width,H=(0,o.useMemo)((function(){return m.xN[s]||{}}),[s]).categoryCharacterWidth,z=(0,o.useMemo)((function(){return H>0?Math.floor(j/H):30}),[j,H]),D=(0,o.useMemo)((function(){var e,t=null===(e=g[y])||void 0===e?void 0:e.limit,n=M.length+1;return t>1?t-n:0}),[g,M]),A=y==(null===v||void 0===v?void 0:v.id),G=(0,o.useMemo)((function(){return T(u)}),[u]),W=(0,C.Z)(),O=(0,r.Z)(W,2),Q=O[0],J=O[1],K=function(){E(l),(0,S.L)("integrations","select-category","sidebar","category-id:".concat(l.id)),P.length&&J()};return t?o.createElement(a.Flex,{alignItems:"center",justifyContent:"center",padding:[2]},o.createElement(F.Z,{content:b,align:"right"},Z&&o.createElement(a.Icon,{name:Z,color:A?"primary":"text",cursor:"pointer",onClick:K}))):o.createElement(a.Flex,{column:!0},o.createElement(h.MJ,{ref:_,className:1==u?"top-level":"",gap:u>1?1:2,padding:[2,2,2,G],onClick:K,dataGa:"integrations::click-category-".concat(b,"::").concat(s),background:u>1&&A?"integrationMenuItemHover":null},Z&&o.createElement(a.Icon,{name:Z,size:"small",color:A?"primary":"text"}),u>1&&o.createElement(h.pV,{name:"chevron_right",rotate:Q?1:0,size:"small",color:"textLite",cursor:"pointer",disabled:!P.length}),o.createElement(I.Z,{maxLength:z,text:b,TextComponent:a.TextBig})),!!P.length&&(Q||1==u)&&o.createElement(k,{subcategories:P,popular:M,noPopular:L,limitResults:D,level:u,flavour:s}))},P=function(e){return o.createElement(a.Box,(0,l.Z)({as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}},e))},M={collapsed:{alignItems:"center",justifyContent:"center",padding:[2]},expanded:{justifyContent:"end",padding:[0,2,0,0],position:"sticky",top:"0"}},L={collapsed:{icon:"chevron_right",iconSize:"large",flavour:"borderless",small:!0},expanded:{icon:"chevron_left",iconSize:"small",flavour:"hollow",tiny:!0}},B=function(e){var t=e.isSidebarCollapsed,n=e.onClick,r=void 0===n?y():n,i=(0,o.useMemo)((function(){return t?"collapsed":"expanded"}),[t]);return o.createElement(a.Flex,(0,l.Z)({width:"100%"},M[i]),o.createElement(a.Button,(0,l.Z)({neutral:!0,onClick:r},L[i])))},R=(0,b.D)(300,w.XB),_=function(e){var t=e.flavour,n=e.isSidebarCollapsed,l=e.toggleSidebar,i=void 0===l?y():l,u=(0,x.Z)(),s=(0,r.Z)(u,2),d=s[0],m=s[1].height,g=(0,c.BN)(),f=(0,c.pZ)(),p=(0,o.useState)({}),v=(0,r.Z)(p,2),h=v[0],E=v[1];return(0,o.useEffect)((function(){R({height:m,topLevelCategories:g,categories:f,setState:E})}),[m,g,f]),o.createElement(a.Flex,{ref:d,column:!0,gap:2,overflow:{vertical:"auto"}},o.createElement(B,{isSidebarCollapsed:n,onClick:i}),g.map((function(e,r){return o.createElement(a.Flex,{key:e.id,column:!0,gap:2},o.createElement(N,{isSidebarCollapsed:n,category:e,maxItemsPerCategory:h,flavour:t}),!n&&r<g.length-1&&o.createElement(P,null))})))},j=(0,o.memo)(_),H=n(74059),z=function(){var e=(0,c.wC)().pop,t=(0,o.useCallback)((function(){e(),(0,S.L)("integrations","navigate-back","breadcrumb")}),[e]);return o.createElement(a.Button,{label:"Back",icon:"arrow_left",iconColor:"primary",iconSize:"small",flavour:"borderless",onClick:t})},D=(n(15306),n(60677)),A=["iconProps"],G=function(e){var t=e.iconProps,n=(0,i.Z)(e,A);return o.createElement(a.Flex,(0,l.Z)({width:"74px",height:"74px",alignItems:"center",justifyContent:"center",background:"primary",round:"100%"},n),o.createElement(a.Icon,(0,l.Z)({name:"integrations",color:"white",size:"large"},t)))},W=(0,D.default)(G).withConfig({displayName:"fallbackIcon__PlaceholderIcon",componentId:"sc-182ui8v-0"})(["filter:blur(3px);background:",";opacity:0.7;"],(0,a.getColor)("mainBackground")),O=function(){return o.createElement(W,{iconProps:{color:"textLite"}})},Q=G,J=n(91008),K=function(e){var t=e.name,n=e.icon,l=(0,o.useState)(),i=(0,r.Z)(l,2),c=i[0],u=i[1],s=(0,o.useCallback)((function(){return u(!0)}),[]);return o.createElement(a.Flex,{alignItems:"center",gap:1},n&&(c?o.createElement(Q,{width:"18px",height:"18px",iconProps:{size:void 0,with:"12px",height:"12px"}}):o.createElement("img",{src:n,alt:"".concat(t,"-logo"),height:"18px",onError:s})),o.createElement(a.Text,null,t))},V=function(e){var t=e.category,n=void 0===t?{}:t,r=e.index,l=void 0===r?0:r,i=(0,c.wC)(),u=i.history,s=i.selectedIntegration,d=i.pushCategory;return!s&&l==u.length-1?o.createElement(a.Text,null,n.name):o.createElement(J.Z,{onClick:function(){d(n),(0,S.L)("integrations","select-category","breadcrumb","category-id:".concat(n.id))}},n.name)},X=function(e){var t=e.flavour,n=(0,c.wC)().history,r=n.map((function(e){return e.name})).join("-").replace(" ","");return o.createElement(a.Flex,{gap:2,dataGa:"integrations::view-integration-".concat(r,"::").concat(t)},n.map((function(e,t){return o.createElement(a.Flex,{key:e.id,gap:2},"category"==e.type?o.createElement(V,{category:e,index:t}):o.createElement(K,e),t<n.length-1&&o.createElement(a.Text,null,"/"))})))},Y=function(e){var t=e.url,n=void 0===t?"":t;return n?o.createElement(J.Z,{href:n,rel:"noopener noreferrer",target:"_blank"},o.createElement(F.Z,{content:"Do you see something wrong? Edit the contents of this resource here."},o.createElement(a.Flex,{alignItems:"center",gap:1},o.createElement(a.Icon,{color:"primary",name:"pencilOutline",width:"12px",height:"12px"}),o.createElement(a.Text,{color:"primary"},"Edit information")))):null},$=n(35819),q=(n(82526),n(41817),function(){var e=d().integrations,t=(0,c.Si)(),n=(0,c.mk)(),r=(0,c.wC)().setHistory,l=(0,o.useCallback)((function(){t(),n&&r(n)}),[]);return o.createElement(a.Flex,{alignItems:"center",justifyContent:"between"},o.createElement(a.Flex,{alignItems:"center",gap:4},o.createElement(a.TextBig,null,"Found ",e.length," results"),o.createElement(a.Button,{label:"Clear",icon:"x",iconColor:"primary",iconSize:"small",flavour:"borderless",onClick:l})))}),U=n(71059),ee=(n(57327),n(41539),n(88449),n(2490),n(59849),["src","Placeholder","onError"]),te=function(e){var t=e.src,n=e.Placeholder,a=e.onError,c=void 0===a?y():a,u=(0,i.Z)(e,ee),s=(0,C.Z)(!0),d=(0,r.Z)(s,2),m=d[0],g=d[1];return(0,o.useEffect)((function(){var e=new Image;e.src=t,e.onload=function(){return g()},e.onerror=function(e){return c(e)}}),[]),m&&n?o.createElement(n,null):o.createElement("img",(0,l.Z)({src:t},u))},ne=["isCommunity"],re=["integration"],oe=function(e){var t=e.isCommunity,n=(0,i.Z)(e,ne);return o.createElement(a.Flex,(0,l.Z)({alignItems:"center",gap:1,position:"absolute",top:"-20px",right:"0",padding:[0,2]},n),o.createElement(F.Z,{content:t?"This integration is maintaned by the community":"This integration is maintained by Netdata"},o.createElement(a.TextMicro,{strong:!0,color:"textDescription"},t?"by Community":"by Netdata")),!t&&o.createElement(a.Icon,{name:"favorites",color:"primary",width:"14px",height:"14px"}))},ae=function(e){var t=e.integration,n=void 0===t?{}:t,u=(0,i.Z)(e,re),d=(0,c.wC)(),m=d.selectedCategory,g=d.pushIntegration,f=(0,c.pZ)(),p=(0,C.Z)(),v=(0,r.Z)(p,2),E=v[0],y=v[1],x=n.flattenedCategory,b=n.community,Z=(0,s.Z)(),k=(0,w.QQ)({category:x,getCategoryById:Z}),I=k.tree,F=k.topLevelCategory,T=(0,o.useMemo)((function(){return I.slice(0,2).filter(Boolean).map((function(e){return e.name})).join(" / ")}),[I,F]),N=(0,w.tu)((null===m||void 0===m?void 0:m.id)||(null===x||void 0===x?void 0:x.id),f),P=(0,o.useState)(),M=(0,r.Z)(P,2),L=M[0],B=M[1],R=(0,o.useCallback)((function(){return B(!0)}),[]);return o.createElement(h.Zb,(0,l.Z)({alignItems:"center",justifyContent:"center",height:"100%",position:"relative",overflow:"hidden",cursor:"pointer",padding:[2],onMouseEnter:y,onMouseLeave:y,onClick:function(){g(n),(0,S.L)("integrations","select-integration","integration-tile","integration-id:".concat(n.id))},round:"2px"},u),o.createElement(h.ZL,{background:n.baseColor||"#e08331"}),o.createElement(h._K,{name:N,className:E?"hover":"",width:"190px",height:"190px",color:"textLite"}),o.createElement(a.Flex,{alignItems:"center",justifyContent:"center",column:!0,gap:2,zIndex:10},o.createElement(a.Flex,{justifyContent:"center",column:!0,gap:1},o.createElement(a.H3,{textAlign:"center",strong:!1},n.name),T&&o.createElement(a.TextSmall,{textAlign:"center"},T)),n.icon&&!L&&o.createElement(te,{Placeholder:O,src:n.icon,alt:"".concat(n.name,"-logo"),width:"74px",height:"74px",onError:R}),L&&o.createElement(Q,null),n.description?o.createElement(h.SZ,{className:E?"hover":"",alignItems:"center",justifyContent:"center",width:"100%",padding:[3],background:"darkBackground"},o.createElement(oe,{isCommunity:b}),o.createElement(a.Text,{textAlign:"center"},n.description)):o.createElement(oe,{isCommunity:b,bottom:"4px",top:"unset"})))},le=(0,o.memo)(ae),ie=function(e){var t=e.integrations,n=void 0===t?[]:t,r=e.itemsPerRow,a=void 0===r?4:r,l=e.rowHeight,i=void 0===l?200:l,c=(0,o.useRef)(),u=(0,o.useMemo)((function(){return function(e){for(var t=e.integrations,n=void 0===t?[]:t,r=e.itemsPerRow,o=[],a=[],l=0;l<n.length;l++)a.push(n[l]),(l+1)%r==0&&(o.push(a),a=[]);return a.length>0&&o.push(a),o}({integrations:n,itemsPerRow:a})}),[n,a]),s=(0,o.useCallback)((function(){return i}),[i]),d=(0,U.MG)({count:u.length,getScrollElement:function(){return c.current},enableSmoothScroll:!1,estimateSize:s});return o.createElement("div",{ref:c,style:{height:"100%",overflow:"auto",paddingRight:"16px"}},o.createElement("div",{style:{minHeight:"".concat(d.getTotalSize(),"px"),width:"100%",position:"relative"}},d.getVirtualItems().map((function(e){return o.createElement("div",{key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),overflow:"hidden"},ref:d.measureElement},o.createElement(h.DF,{itemsPerRow:a,rowHeight:i},(u[e.index]||[]).map((function(e){return o.createElement(le,{width:"100%",height:"100%",key:e.flattenedKey||e.id,integration:e})}))))}))))},ce=function(){return o.createElement(a.Flex,{width:"100%",column:!0,alignItems:"center",margin:[8,0,0,0]},o.createElement(a.Flex,{column:!0,justifyContent:"center",alignItems:"center",margin:[0,0,6]},o.createElement(a.H3,{margin:[0,0,4]},"No integrations to display"),o.createElement(a.Text,{color:"textDescription",textAlign:"center"},"There are currently no integrations under this category.",o.createElement("br",null),"Try another category or use the search bar to find what you're looking for.")))},ue=n(94829),se="(min-width: 1600px)",de="(max-width: 1599px)",me="(max-width: 1299px)",ge={large:{itemsPerRow:4,rowHeight:200},medium:{itemsPerRow:3,rowHeight:200},small:{itemsPerRow:2,rowHeight:190}},fe=(0,o.memo)((function(e){var t=e.selectedCategory,n=e.searchTerm,r=e.integrations,l=function(){var e=(0,ue.Z)(se),t=(0,ue.Z)(de),n=(0,ue.Z)(me);return ge[e?"large":t&&!n?"medium":"small"]||{}}(),i=l.itemsPerRow,c=l.rowHeight;return o.createElement(a.Flex,{column:!0,gap:4,width:"100%",height:"100%",overflow:{vertical:"auto"}},o.createElement(a.Flex,{width:"100%",position:"sticky",top:"0",background:"darkBackground",zIndex:15},n?o.createElement(q,null):o.createElement(a.Flex,{column:!0,gap:2},o.createElement(a.H1,{strong:!1},null===t||void 0===t?void 0:t.name),o.createElement(a.Text,null,null===t||void 0===t?void 0:t.description))),r.length?o.createElement(ie,{integrations:r,itemsPerRow:i,rowHeight:c}):o.createElement(ce,null))})),pe=function(e){var t=e.flavour,n=(0,c.wC)().selectedCategory,r=(0,c.lX)(),a=d().integrations;return o.createElement(fe,{flavour:t,selectedCategory:n,searchTerm:r,integrations:a})},ve=(n(91058),n(67996)),he=n(95248),Ee=n(58591),ye=function(){var e,t=(0,o.useState)("calc(100% - 133px)"),n=(0,r.Z)(t,2),l=n[0],i=n[1],u=(0,Ee.m$)().selectedIntegrationTab,s=(0,he.I0)("selectedIntegrationTab"),d=(0,r.Z)(s,2)[1],m=(0,o.useState)(u||0),g=(0,r.Z)(m,2),f=g[0],p=g[1],v=(0,c.wC)().selectedIntegration,h=void 0===v?{}:v,E=h.overview,y=h.metrics,b=h.alerts,w=h.setup,C=h.troubleshooting,Z=h.relatedResources,k=(0,x.Z)(),I=(0,r.Z)(k,2),F=I[0],T=I[1].height,N=(0,o.useMemo)((function(){return[E?{id:"overview",label:"Overview",content:E}:null,y?{id:"metrics",label:"Metrics",content:y}:null,b?{id:"alerts",label:"Alerts",content:b}:null,w?{id:"setup",label:"Setup",content:w}:null,C?{id:"troubleshooting",label:"Troubleshooting",content:C}:null].filter(Boolean)}),[E,y,b,w,C,Z]);(0,o.useLayoutEffect)((function(){T&&i("".concat(T-70,"px"))}),[T]);return o.createElement(a.Flex,{ref:F,column:!0,gap:2,width:"100%",height:"100%",margin:[4,0,0,0]},o.createElement(a.Flex,{border:{side:"bottom",size:"1px",color:"borderSecondary"},padding:[0,4]},o.createElement(a.Tabs,{selected:parseInt(f),onChange:function(e){var t;d(e),p(e),(0,S.L)("integrations","select-integration-tab","integration-view","selected-tab:".concat(null===(t=N[e])||void 0===t?void 0:t.label))}},N.map((function(e){var t=e.label;return o.createElement(a.Tab,{key:t,label:o.createElement(a.Text,null,t),minWidth:"auto",maxWidth:"auto",padding:[1,4],background:"mainBackground",small:!0})})))),o.createElement(a.Flex,{width:"100%",height:l,overflow:{vertical:"auto"},padding:[2,0]},o.createElement(ve.Z,null,null===(e=N[f])||void 0===e?void 0:e.content)))},xe=function(e){var t=e.integration,n=void 0===t?{}:t;return o.createElement(o.Fragment,null,n.description&&o.createElement(a.Flex,{margin:[4,0,0,0]},o.createElement(a.Text,null,n.description)),o.createElement(ye,null))},be=function(e){var t=e.integration,n=void 0===t?{}:t,r=e.topLevelCategory,a=void 0===r?{}:r,l=e.isNightly,i=(0,o.useMemo)((function(){return function(e){return m.ON[null===e||void 0===e?void 0:e.id]||xe}(a)}),[a]);return o.createElement(i,{integration:n,isNightly:l})},we=n(35253),Ce=function(e){var t=e.flavour,n=(0,H.OS)("plan"),l=(0,s.Z)(),i=(0,c.wC)(),u=i.level,d=i.selectedCategory,m=i.selectedIntegration,g=(m||{}).flattenedCategory||d,f=(0,w.QQ)({category:g,getCategoryById:l}).topLevelCategory,p="deploy"==(null===f||void 0===f?void 0:f.id),v=(0,o.useState)(we.N[n]||we.N.default),h=(0,r.Z)(v,2),E=h[0],y=h[1],x=m||u>2;return o.createElement(a.Flex,{column:!0,gap:2,width:"100%",overflow:m&&!p?{}:{vertical:"auto"}},o.createElement(a.Flex,{column:!0,alignItems:"start",gap:2,padding:[0,2,0,0]},x&&o.createElement(z,null),o.createElement(a.Flex,{width:"100%",alignItems:"end",justifyContent:"between"},o.createElement(a.Flex,{alignItems:"center",gap:4},o.createElement(X,{flavour:t}),(null===m||void 0===m?void 0:m.editLink)&&o.createElement(Y,{url:m.editLink})),m&&p&&o.createElement($.Z,{isNightly:"nightly"==E,toggleNightly:function(e){var t=e.target.checked?"nightly":"stable";y(t)}}))),m?o.createElement(be,{integration:m,topLevelCategory:f,isNightly:"nightly"==E,flavour:t}):o.createElement(pe,{flavour:t}))},Ze=n(26502),ke=(0,D.default)(a.Flex).withConfig({displayName:"cncfReference__Wrapper",componentId:"sc-1ntasha-0"})(["position:absolute;bottom:0;"]),Ie=function(){return o.createElement(ke,{width:"100%",alignItems:"start",justifyContent:"end",background:"darkBackground",gap:2,padding:[6]},o.createElement(a.Flex,{width:"500px"},o.createElement(a.TextSmall,{textAlign:"right"},"Netdata is a member of the Cloud Native Computing Foundation (CNCF), and it is the 3rd most starred project in the"," ",o.createElement(J.Z,{alignSelf:"start",Component:a.TextSmall,href:"https://landscape.cncf.io/card-mode?grouping=no&sort=stars",rel:"noopener noreferer",target:"_blank"},"CNCF landscape"),".")),o.createElement(Ze.lR,null))},Fe=n(18663),Se=n(89250),Te=function(e){var t=e.flavour,n=void 0===t?m.p1:t,l=(0,C.Z)(),i=(0,r.Z)(l,4),u=i[0],s=i[2],d=i[3];!function(){var e=(0,o.useRef)(!0),t=(0,Se.TH)().pathname,n=(0,c.P0)();(0,o.useEffect)((function(){e.current||(e.current=!1,n())}),[t])}();var g=(0,C.Z)(),f=(0,r.Z)(g,2),p=f[0],E=f[1];return o.createElement(o.Fragment,null,o.createElement(a.Flex,{position:"relative",height:"100%",column:!0,background:"darkBackground"},o.createElement(a.Flex,{column:!0,alignItems:"center",justifyContent:"center"},o.createElement(v,{flavour:n,onInvite:s})),o.createElement(h.J3,{flavour:n,isSidebarCollapsed:p},o.createElement(j,{flavour:n,isSidebarCollapsed:p,toggleSidebar:E}),o.createElement(Ce,{flavour:n})),n==m.RV.homePage&&o.createElement(Ie,null)),u&&o.createElement(Fe.l,{onClose:d}))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/147.dcf17e31c752be5e1c60.chunk.js b/web/gui/v2/147.d9a3ab5a852935e0e203.chunk.js
index fd7d6a14..f19ea526 100644
--- a/web/gui/v2/147.dcf17e31c752be5e1c60.chunk.js
+++ b/web/gui/v2/147.d9a3ab5a852935e0e203.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="11966994-a67d-43d9-9942-663b89ce17c2",e._sentryDebugIdIdentifier="sentry-dbid-11966994-a67d-43d9-9942-663b89ce17c2")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[147],{95665:function(e,n,t){t.d(n,{Z:function(){return Ue}});var o=t(87462),i=t(29439),a=t(45987),s=(t(66992),t(41539),t(33948),t(92222),t(67294)),r=t(48286),l=t(28789),c=t(69119),d=t(83894),u=t(15557),m=t(92432),h=t(46667),p=t(23109),g=(t(21249),t(57640),t(9924),t(47941),t(82526),t(57327),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(4942)),f=t(60677);function b(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var y=(0,f.default)(u.Flex).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?b(Object(t),!0).forEach((function(n){(0,g.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):b(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({position:"relative",width:{min:200},height:{min:45},column:!0,background:"dropdown",color:"text",zIndex:60,round:!0,alignItems:"end"},e)})).withConfig({displayName:"styled__PickerBox",componentId:"sc-gwjt9o-0"})([""]),_=f.default.span.withConfig({displayName:"styled__StyledTimePeriod",componentId:"sc-gwjt9o-1"})(["margin-bottom:",";cursor:pointer;width:187px;height:",";&:last-of-type{margin-bottom:0;}& > span:hover{color:",";}"],(0,u.getSizeBy)(1.5),(0,u.getSizeBy)(2),(0,u.getColor)("textLite")),w=(0,f.default)(u.Flex).attrs((function(e){return{color:e.isSelected?"primary":"text",margin:[2,6,0]}})).withConfig({displayName:"styled__StyledCustomTimePeriod",componentId:"sc-gwjt9o-2"})(["cursor:pointer;&:first-of-type{margin-top:0;}&:hover{color:",";}"],(0,u.getColor)("textLite")),v=(0,f.default)(u.Flex).attrs({alignItems:"center",border:{side:"all",color:"border"},color:"text",flexWrap:!1,height:8,justifyContent:"center",padding:[2,0],round:1,width:22}).withConfig({displayName:"styled__TimePeriodDropdownButton",componentId:"sc-gwjt9o-3"})([""]),T=(0,f.default)(u.Drop).attrs({background:"mainBackground",column:!0,overflow:{vertical:"auto"},margin:[.5,0,0],padding:[2,0],round:1}).withConfig({displayName:"styled__TimePeriodDrop",componentId:"sc-gwjt9o-4"})([""]),k=(0,f.default)(u.Icon).withConfig({displayName:"styled__DropdownIcon",componentId:"sc-gwjt9o-5"})(["fill:",";width:12px;height:12px;"],(0,u.getColor)("text")),x=f.default.input.withConfig({displayName:"styled__CustomInput",componentId:"sc-gwjt9o-6"})(["border:1px solid ",";background:",";box-sizing:border-box;border-radius:4px;color:",";height:32px;margin-left:10px;margin-right:10px;outline:none;padding:4px;width:32px;&:focus{border:1px solid ",";}"],(0,u.getColor)("border"),(0,u.getColor)("mainBackground"),(0,u.getColor)("text"),(0,u.getColor)("primary")),P=(0,f.default)(u.Drop).attrs({background:"dropdown",round:2,margin:[.5,0,0],border:{side:"all",color:"borderSecondary"},animation:!0}).withConfig({displayName:"styled__StyledDrop",componentId:"sc-gwjt9o-7"})([""]),C=(0,f.default)(u.TextInput).withConfig({displayName:"styled__StyledDateInput",componentId:"sc-gwjt9o-8"})(["margin-left:20px;margin-right:20px;"]),F=f.default.div.withConfig({displayName:"styled__StyledCalendar",componentId:"sc-gwjt9o-9"})(["background:",";border:0;&.react-datepicker{background:",";border:0;}.react-datepicker{&__navigation{top:8px;&-icon::before{border-color:",";}}&__month-container{height:260px;}&__header{background:",";border:0;.react-datepicker__current-month{color:",";font-weight:normal;}.react-datepicker__day-name{color:",";}}&__day{color:",";&:hover{background:",";}&--disabled{color:",";&:hover{background:inherit;}}&--keyboard-selected,&--keyboard-selected:hover{color:",";background:inherit;border-radius:inherit;}&--selected,&--selected:hover{color:",";background:",";border-radius:8px;}&--in-selecting-range,&--in-range{color:",";background:",";border-radius:0;}&--selecting-range-start,&--range-start{color:",";background:",";border-top-left-radius:8px;border-bottom-left-radius:8px;&:hover{color:",";background:",";border-radius:0;border-top-left-radius:8px;border-bottom-left-radius:8px;}}&--selecting-range-end,&--range-end{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;&:hover{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;}}}}"],(0,u.getColor)("dropdown"),(0,u.getColor)("dropdown"),(0,u.getColor)("text"),(0,u.getColor)("dropdown"),(0,u.getColor)("main"),(0,u.getColor)("textLite"),(0,u.getColor)("main"),(0,u.getColor)("elementBackground"),(0,u.getColor)("textLite"),(0,u.getColor)("main"),(0,u.getColor)("bright"),(0,u.getColor)("primary"),(0,u.getColor)("primary"),(0,u.getColor)("elementBackground"),(0,u.getColor)("bright"),(0,u.getColor)("primary"),(0,u.getColor)("bright"),(0,u.getRgbColor)(["green","netdata"],.8),(0,u.getColor)("bright"),(0,u.getColor)("primary"),(0,u.getColor)("bright"),(0,u.getRgbColor)(["green","netdata"],.8)),q=function(e){var n=e.value,t=e.period,o=e.resolution,i=e.isSelected,a=e.setTimeRange,r=e.tagging,l=(0,s.useCallback)((function(){return a(n,o)}),[n,o]);return s.createElement(_,{key:n,onClick:l,"data-ga":"date-picker::click-quick-selector::".concat(r,"::").concat(-n),"data-testid":"timePeriod-value"},s.createElement(u.Text,{color:i?"primary":"text"},t))},S=(0,s.memo)(q),D=(t(39714),t(83112),t(66528),t(29422)),A=t(99982),M=t(49546),N=t(38431),H=t(76417),E=t(936),O=60,I=3600,R=86400,L=["minutes","hours","days","months"],B={minutes:O,hours:I,days:R,months:2592e3},U=function(e,n){return Math.round(e/B[n])},j=function(e,n){var t=(0,D.Z)(new Date(0),(0,g.Z)({},n,e));return-(0,A.Z)(t)},G={startDate:"start",endDate:"finish"},z=[{period:"Last 5 minutes",value:-300,resolution:"minutes"},{period:"Last 10 minutes",value:-600,resolution:"minutes"},{period:"Last 15 minutes",value:-900,resolution:"minutes"},{period:"Last 30 minutes",value:-1800,resolution:"minutes"},{period:"Last hour",value:-3600,resolution:"hours"},{period:"Last 2 hours",value:-7200,resolution:"hours"},{period:"Last 6 hours",value:-21600,resolution:"hours"},{period:"Last 12 hours",value:-43200,resolution:"hours"},{period:"Last day",value:-R,resolution:"days"},{period:"Last 2 days",value:-2*R,resolution:"days"},{period:"Last 7 days",value:-7*R,resolution:"days"}],Y=function(e,n){var t=(0,N.Z)(e,"MMMM d yyyy, H:mm")?e:(0,H.default)(e,"MMMM d yyyy, H:mm",Date.now());return(0,H.default)("".concat(t," ").concat(function(e){if(!e)return"+00:00";var n=e.toString().split("."),t=n[0]>0?"+":"-",o=Math.abs(n[0]).toString(),i="".concat(t).concat(o.padStart(2,0));return n.length>1?"".concat(i,":").concat(String(.6*n[1]).padEnd(2,0)):"".concat(i,":00")}(n)),"MMMM d yyyy, H:mm xxx",Date.now())},X=function(e){var n=e.handleTimePeriodChange,t=e.selectedDate,o=e.tagging;return s.createElement(u.Flex,{column:!0,justifyContent:"start",alignItems:"start",height:{max:"260px"},overflow:{vertical:"auto"},"data-testid":"timePeriods"},z.map((function(e){var i=e.period,a=e.value,r=e.resolution;return s.createElement(S,{key:a,value:a,period:i,resolution:r,setTimeRange:n,isSelected:t===a,tagging:o})})))},Z=(t(9653),t(33161),t(12274)),W=function(e){var n=e.customTimePeriodRef,t=e.handleTimePeriodChange,o=e.value,a=e.resolution,r=e.tagging,l=function(){return o<=0?U(-o,a):0},c=(0,s.useState)(l),d=(0,i.Z)(c,2),m=d[0],p=d[1],f=(0,h.Z)(),b=(0,i.Z)(f,4),y=b[0],_=b[1],P=b[3],C=(0,s.useRef)();(0,s.useEffect)((function(){return p(l())}),[o]);var F=(0,s.useCallback)((function(e){return p(e.target.value)}),[]),q=(0,s.useCallback)((function(e){var n=Number(e.currentTarget.value),i=!Number.isNaN(n)&&Number.isInteger(n)&&n>0,s=(0,D.Z)(new Date(0),(0,g.Z)({},a,n));return i&&(0,Z.default)(s)&&(0,A.Z)(s)<=94694400?t(j(n,a),a):p(o<=0?U(-o,a):0)}),[a,m]),S=(0,s.useCallback)((function(e){return function(){t(j(m,e),e),P()}}),[m]);return s.createElement(u.Flex,{justifyContent:"start",alignItems:"center",height:8,"data-ga":"date-picker::click-last-integer::".concat(r),"data-testid":"customTimePeriod"},s.createElement(u.Text,{"data-testid":"customTimePeriod-label"},"Last"),s.createElement(x,{value:m,onChange:F,onBlur:q,"data-ga":"date-picker::click-last-integer::".concat(r,"::").concat(m),"data-testid":"timePeriod-timeInput"}),s.createElement(v,{"data-testid":"timePeriodDropdown-button",onClick:_,ref:C},s.createElement(u.Text,{"data-testid":"timePeriodDropdown-buttonLabel",padding:[0,4,0,0]},a),s.createElement(k,{"data-testid":"timePeriodDropdown-buttonIcon",name:"triangle_down"})),C.current&&y&&s.createElement(T,{align:{top:"bottom",left:"left"},animation:!0,close:P,"data-testid":"timePeriodDropdown",onClickOutside:P,onEsc:P,ref:n,target:C.current},L.map((function(e){return s.createElement(w,{key:e,onClick:S(e),"data-ga":"date-picker::click-last-time-".concat(e,"::").concat(r),"data-testid":"timePeriod-option"},e)}))))},K=t(313),$=t(89405),V=t(9198),J=t.n(V),Q=(t(59061),function(e){var n=e.selected,t=e.selectsStart,o=void 0!==t&&t,i=e.selectsEnd,a=void 0!==i&&i,r=e.startDate,l=e.endDate,c=e.onChange,d=e.minDate,u=e.maxDate,m=e.dateFormat,h=void 0===m?"MM/dd/yyyy":m,p=e.open,g=void 0!==p&&p,f=e.startOpen,b=void 0!==f&&f,y=e.inline,_=void 0!==y&&y,w=e.selectsRange,v=void 0!==w&&w,T=e.monthsShown,k=void 0===T?1:T,x=e.showPopperArrow,P=void 0===x||x,C=e.calendarContainer,F=void 0===C?null:C;return s.createElement(J(),{selected:n,onChange:c,selectsStart:o,selectsEnd:a,startDate:r,endDate:l,minDate:d,maxDate:u,dateFormat:h,open:g,startOpen:b,inline:_,selectsRange:v,monthsShown:k,showPopperArrow:P,calendarContainer:F})}),ee=function(e){var n=e.name,t=void 0===n?"":n,o=e.value,a=void 0===o?"":o,r=e.onDatesChange,c=e.onFocus,d=e.placeholderText,u=void 0===d?"":d,m=(0,$.rA)().utcOffset,h=(0,s.useState)(""),p=(0,i.Z)(h,2),g=p[0],f=p[1],b=(0,s.useCallback)((function(e){var n=e.target.value;f(n)}),[]),y=(0,s.useCallback)((function(e){if((0,Z.default)(e)){var n=(0,M.default)(e,"MMMM d yyyy, H:mm");f(n)}}),[]),_=(0,s.useCallback)((function(e){var n=Y(e.target.value,m);if((0,Z.default)(n)&&(0,l.default)(n)>0){var t=(0,l.default)(n);r(t,(function(){return y(a)}))}else y(a)}),[a,m]);return(0,s.useEffect)((function(){return y(a)}),[a]),s.createElement(C,{type:"text",name:t,value:a?g:u,onChange:b,onBlur:_,onFocus:c,placeholder:u,"data-testid":"datePicker-input"})},ne=t(19013),te=function(){var e=(0,$.rA)(),n=e.localeTimeString,t=e.localeDateString;return(0,s.useCallback)((function(e){return"".concat(t(e,{locale:"en-us",long:!1})," ").concat(n(e,{locale:"en-us",secs:!1}))}),[n,t])},oe=function(e,n){return e>0?(0,ne.default)(new Date(n(e))):e||0===e?(0,ne.default)(new Date(n((new Date).valueOf()+1e3*e))):null},ie=function(e){var n=te();return(0,s.useMemo)((function(){return oe(e,n)}),[e])},ae=function(e,n){return[ie(e),ie(n)]};function se(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var re=function(e){var n=e.startDate,t=e.setStartDate,a=e.endDate,r=e.setEndDate,c=e.singleDate,d=e.onDatesChange,m=e.onInputFocus,h=e.onlyDates,p=e.maxDate,f=void 0===p?new Date:p,b=e.minDate,y=void 0===b?new Date("1/1/2018"):b,_=e.isSinglePicker,w=ae(n,a),v=(0,i.Z)(w,2),T=v[0],k=v[1],x=ie(c),P=(0,$.rA)().utcOffset,C=te(),q=(0,s.useCallback)((function(e,n){return(0,K.default)(oe(e,C),k)?t(e):n()}),[a,C]),S=(0,s.useCallback)((function(e,n){return(0,K.default)(T,oe(e,C))?r(e):n()}),[n,C]),D=(0,s.useCallback)((function(e){var n=Array.isArray(e)?e[0]:e,t=Array.isArray(e)?e[1]:null,o=n?Y((0,M.default)(n,"MMMM d yyyy, H:mm"),P):n,i=t?Y((0,M.default)(t,"MMMM d yyyy, H:mm"),P):t,a=(0,l.default)(o)||null,s=(0,l.default)(i)||null;d(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?se(Object(t),!0).forEach((function(n){(0,g.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):se(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({},_?{singleDate:a}:{startDate:a,endDate:s}))}),[P]);return s.createElement(u.Flex,{column:!0,justifyContent:"center",alignItems:"center",flex:!0,gap:3,"data-testid":"datePicker-wrapper"},s.createElement(Q,(0,o.Z)({selected:_?x:T,onChange:D},_?{}:{startDate:T,endDate:k},{maxDate:f,minDate:y,inline:!0,selectsRange:!0,monthsShown:_?1:2,dateFormat:"MMMM d yyyy, H:mm",showPopperArrow:!1,calendarContainer:F})),!h&&(_?s.createElement(ee,{name:"date",value:x,onDatesChange:D,placeholderText:"Select a date"}):s.createElement(u.Flex,{justifyContent:"around",alignItems:"center",width:"100%"},s.createElement(ee,{name:"startDate",value:T,onDatesChange:q,onFocus:m,placeholderText:"Select a start date"}),s.createElement(ee,{name:"endDate",value:k,onDatesChange:S,onFocus:m,placeholderText:"Select an end date"}))))},le=function(e){var n=e.startDate,t=e.endDate,o=e.onlyDates,a=ae(n,t),r=(0,i.Z)(a,2),c=r[0],d=r[1],m=(0,s.useMemo)((function(){return function(e,n){var t=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).onlyDates?"MMMM d yyyy":"MMMM d yyyy, H:mm:ss";return{formattedStartDate:(0,M.default)(e,t),formattedEndDate:(0,M.default)(n,t)}}(c,d,{onlyDates:o})}),[c,d]),h=m.formattedStartDate,p=m.formattedEndDate,g=(0,s.useMemo)((function(){return function(e,n){return(0,E.Z)((0,l.default)(e),(0,l.default)(n))}(c,d)}),[c,d]);return s.createElement(u.Flex,{alignItems:"center",gap:2},s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:1.5},s.createElement(u.TextSmall,{strong:!0,whiteSpace:"nowrap"},"From"),s.createElement(u.TextSmall,{whiteSpace:"nowrap","data-testid":"periodIndication-from"},h)),s.createElement(u.Icon,{name:"arrow_left",size:"small",color:"textLite",rotate:2}),s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:1.5},s.createElement(u.TextSmall,{strong:!0,whiteSpace:"nowrap"},"To"),s.createElement(u.TextSmall,{whiteSpace:"nowrap","data-testid":"periodIndication-to"},p)),s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:2},s.createElement(u.TextSmall,{whiteSpace:"nowrap"},"/"),s.createElement(u.TextSmall,{color:"textLite",whiteSpace:"nowrap","data-testid":"periodIndication-period"},g)))},ce=t(2379),de=(t(85827),t(26699),t(3151)),ue=t(33926),me=36e5,he=864e5,pe=2592e6,ge=[{key:"years",value:31104e6,unit:"y"},{key:"months",value:pe,unit:"m"},{key:"days",value:he,unit:"d"},{key:"hours",value:me,unit:"h"},{key:"minutes",value:6e4,unit:"min"},{key:"seconds",value:1e3,unit:"s"}],fe=["hours","minutes","seconds"],be=function(e){var n=e.placeholder,t=void 0===n?"No date":n;return s.createElement(u.TextSmall,null,t)},ye=function(e){var n=e.isPlaying,t=e.startDate,o=e.endDate,i=e.isSameDate,a=e.color,r=e.onlyDates,l=(0,$.rA)(),c=l.localeTimeString,d=l.localeDateString,m=a||(n?"accent":"textFocus");return s.createElement(u.Flex,{gap:2},s.createElement(u.TextSmall,{color:a,whiteSpace:"nowrap"},d(t,{long:!1}),!r&&s.createElement(s.Fragment,null," ","\u2022"," ",s.createElement(u.TextSmall,{color:m,whiteSpace:"nowrap"},c(t,{secs:!1})))),r&&!i&&s.createElement(s.Fragment,null,s.createElement(u.Icon,{name:"arrow_left",color:m,size:"small",rotate:2}),s.createElement(u.TextSmall,{color:a,whiteSpace:"nowrap"},!i&&d(o,{long:!1}),!r&&s.createElement(s.Fragment,null," ","\u2022"," ",s.createElement(u.TextSmall,{color:m,whiteSpace:"nowrap"},c(o,{secs:!1}))))))},_e=function(e){var n=e.isPlaying,t=e.duration,o=e.color,i=e.fluid,a=void 0!==i&&i;return s.createElement(u.Flex,{gap:1,align:"center"},s.createElement(u.TextSmall,{color:o},"\u2022"),s.createElement(u.Flex,{width:a?"auto":5},n&&s.createElement(u.TextSmall,{color:o},"last")),s.createElement(u.TextSmall,{color:o},t))},we=t(82351),ve=(0,f.default)(u.Flex).withConfig({displayName:"styled__Container",componentId:"sc-1s7311w-0"})(["cursor:pointer;&:hover *{color:",";fill:",";}"],(0,u.getColor)("textLite"),(0,u.getColor)("textLite")),Te=(0,f.default)(we.Z).withConfig({displayName:"styled__StyledTooltip",componentId:"sc-1s7311w-1"})(["pointer-events:",";"],(function(e){return e.isDisabled?"none":"auto"})),ke=["onClick","start","end","isPlaying","isPickerOpen","tagging","color","fluid","onlyDates","tooltipContent","isSinglePicker","noDateSelected"],xe=(0,s.forwardRef)((function(e,n){var t=e.onClick,r=e.start,l=e.end,c=e.isPlaying,d=e.isPickerOpen,u=e.tagging,m=e.color,h=e.fluid,p=e.onlyDates,g=e.tooltipContent,f=e.isSinglePicker,b=e.noDateSelected,y=(0,a.Z)(e,ke),_=(0,ce.I)(),w=(0,s.useMemo)((function(){if(b)return[];var e=function(e){return e<0?(0,D.Z)(new Date,{seconds:e}):new Date(e)}(r),n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e?new Date(e):new Date}(l),t=function(e,n){return(0,de.default)(e,n)}(e,n);return[e,n,t]}),[r,l,b]),v=(0,i.Z)(w,3),T=v[0],k=v[1],x=v[2],P=(0,s.useMemo)((function(){return b?0:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.withSeconds,o=void 0!==t&&t,i=n.withTime,a=void 0===i||i,s=o||!!e.seconds;return ge.reduce((function(n,t){var o=t.key,i=t.unit;return"seconds"!==o||s?!a&&fe.includes(o)?n:e[o]?n?"".concat(n," ").concat(e[o]).concat(i):"".concat(e[o]).concat(i):n:n}),"")}(function(e,n){return(0,ue.Z)({start:e,end:n})}(T,k),{withTime:!p})}),[c,T,k,b]);return s.createElement(Te,{content:d?function(){}:g||"Select a predefined or a custom timeframe",align:"bottom",isDisabled:!t||_,plain:!0},s.createElement(ve,(0,o.Z)({alignItems:"center",justifyContent:"center",gap:1,height:"100%",onClick:t,padding:[0,1],ref:n,"data-ga":"date-picker::click-time::".concat(u),"data-testid":"datePicker-accessorElement"},y),f&&b?s.createElement(be,null):s.createElement(ye,{isPlaying:c,endDate:k,startDate:T,isSameDate:x,color:m,onlyDates:p}),!p&&!f&&!b&&s.createElement(_e,{isPlaying:c,duration:P,color:m,fluid:h})))})),Pe=xe,Ce=t(95248),Fe=(t(32023),t(89211)),qe=t(67622),Se=t(37689),De=t(92517),Ae=(0,f.default)(u.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1,width:80}).withConfig({displayName:"dropdown__Dropdown",componentId:"sc-pg99kg-0"})([""]),Me=(0,f.default)(u.Flex).attrs({column:!0,padding:[2,0,0],overflow:{vertical:"auto"},height:{max:"320px"}}).withConfig({displayName:"container__Container",componentId:"sc-1gtygg6-0"})([""]),Ne=(0,f.default)(u.Flex).attrs({justifyContent:"between",alignItems:"center",width:"100%",gap:2}).withConfig({displayName:"wrapper__Wrapper",componentId:"sc-1ehauu1-0"})([""]),He=function(e){var n=e.name,t=e.offset,o=e.utc,i=e.onSelect,a=(0,s.useCallback)((function(){return i(o,t,n)}),[o,n]);return s.createElement(qe.Z,{round:1,onClick:a,Wrapper:Ne,"data-ga":"timezone-picker::click-timezone::global-view::".concat(n)},s.createElement(u.Text,{color:"text"},n),s.createElement(u.Text,{color:"textLite",whiteSpace:"nowrap"},"UTC ",t))},Ee=t(14600),Oe=function(e){var n=e.value,t=e.onChange,o=e.timezoneRef,a=e.timezoneName,r=(0,s.useState)(""),l=(0,i.Z)(r,2),c=l[0],d=l[1],m=(0,Fe.Z)(),h=(0,i.Z)(m,2),p=h[0],g=h[1],f=(0,s.useRef)(),b=(0,s.useRef)();(0,s.useEffect)((function(){b.current&&p&&b.current.focus()}),[p]);var y=(0,s.useMemo)((function(){return c?Ee.K.filter((function(e){var n=e.text,t=e.offset;return n.toUpperCase().includes(c.toUpperCase())||t.includes(c)})):Ee.K}),[c]),_=function(){g(!1),d("")},w=(0,s.useCallback)((function(e,n,o){t(e,n,o),_()}),[]),v=(0,s.useCallback)((function(e){return d(e.target.value)}),[]);return s.createElement(De.Z,{hasBorder:!1,testId:"timezone-picker"},s.createElement(qe.Z,{round:1,onClick:g,ref:f,Wrapper:Ne,padding:[2],"data-ga":"timezone-picker::click-picker::global-view",selected:!0},s.createElement(u.Flex,{gap:1},s.createElement(u.Text,{color:"text",whiteSpace:"nowrap"},a," UTC ",n)),s.createElement(u.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"})),f.current&&p&&s.createElement(Ae,{onClickOutside:_,onEsc:_,ref:o,target:f.current},s.createElement(u.Box,{padding:[0,2]},s.createElement(Se.Z,{value:c,onChange:v,ref:b,"data-ga":"timezone-picker::click-search::global-view"})),s.createElement(Me,null,y.map((function(e){var n=e.text,t=e.offset,o=e.utc;return s.createElement(He,{key:n,name:n,offset:t,utc:o[0],onSelect:w})})))))},Ie=function(e){var n=e.timezoneRef,t=(0,Ce.I0)(),o=(0,i.Z)(t,2),a=o[0],r=a.offset,l=a.timezoneName,c=o[1],d=(0,s.useCallback)((function(e,n,t){return c({utc:e,offset:n,timezoneName:t})}),[]);return s.createElement(Oe,{timezoneRef:n,timezoneName:l,value:r,onChange:d})},Re=(t(68216),t(79433),["mousedown","touchstart"]),Le=t(91128),Be=["onChange","isSinglePicker","values","defaultValue","tagging","isPlaying","onlyDates","accessorProps","maxDate","minDate","accessorTooltipContent"],Ue=function(e){var n=e.onChange,t=e.isSinglePicker,g=e.values,f=void 0===g?{}:g,b=f.start,_=f.end,w=f.singleDate,v=e.defaultValue,T=void 0===v?-900:v,k=e.tagging,x=void 0===k?"":k,C=e.isPlaying,F=e.onlyDates,q=e.accessorProps,S=void 0===q?{}:q,D=e.maxDate,A=e.minDate,M=e.accessorTooltipContent,N=(0,a.Z)(e,Be),H=(0,s.useState)(w),E=(0,i.Z)(H,2),O=E[0],I=E[1],R=(0,s.useState)(b),L=(0,i.Z)(R,2),B=L[0],U=L[1],j=(0,s.useState)(b),z=(0,i.Z)(j,2),Y=z[0],Z=z[1],K=(0,p.Z)("resolution","minutes"),$=(0,i.Z)(K,2),V=$[0],J=$[1],Q=(0,s.useState)("startDate"),ee=(0,i.Z)(Q,2),ne=ee[0],te=ee[1],oe=(0,h.Z)(),ie=(0,i.Z)(oe,4),ae=ie[0],se=ie[1],ce=ie[3],de=(0,s.useRef)(),ue=(0,s.useState)(null),me=(0,i.Z)(ue,2),he=me[0],pe=me[1],ge=(0,s.useState)(null),fe=(0,i.Z)(ge,2),be=fe[0],ye=fe[1],_e=(0,s.useState)(null),we=(0,i.Z)(_e,2),ve=we[0],Te=we[1],ke=(0,Le.Z)();!function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Re,t=arguments.length>2?arguments[2]:void 0,o=(0,s.useRef)();(0,s.useEffect)((function(){var i=function(n){Array.isArray(t)?t.every((function(e){return!e||!e.contains(n.target)}))&&e():o.current&&!o.current.contains(n.target)&&e()};return n.forEach((function(e){return document.addEventListener(e,i)})),function(){n.forEach((function(e){return document.removeEventListener(e,i)}))}}),[o,e,t])}(ce,["mouseup","touchend"],[he,be,ve,de.current]),(0,r.Z)((function(){ke(!!ae)}),[ae]);var xe=(0,s.useCallback)((function(e){var n=e.startDate,t=e.endDate;U(n),Z(t)}),[]);(0,s.useEffect)((function(){xe({startDate:b,endDate:_})}),[b,_]);var Ce=(0,s.useCallback)((function(){t?(I(w),ce()):xe({startDate:T,endDate:0})}),[t]),Fe=(0,s.useCallback)((function(e){e.target.name&&te(e.target.name)}),[]),qe=(0,s.useCallback)((function(e){e.stopPropagation(),se()}),[se]),Se=function(){t?n(O):(n({start:B,end:Y}),ke(!1)),ce()},De=(0,s.useMemo)((function(){return function(e){return G[e]}(ne)}),[ne]),Ae=!!t||null!==B&&null!==Y&&B!==Y,Me=!t&&(B===b&&Y===_),Ne=(0,s.useMemo)((function(){return T}),[]),He=B===Ne,Ee=(0,s.useCallback)((function(e,n){J(n),xe({startDate:e,endDate:0})}),[]),Oe=function(e){var o=e.startDate,i=e.endDate,a=e.singleDate;if(t)I(a),n(a),(0,m.L)("date-picker","click-date-picker",x,String(a));else{xe(F?{startDate:o?(0,l.default)((0,c.default)(new Date(o))):o,endDate:i?(0,l.default)((0,d.default)(new Date(i))):i}:{startDate:o,endDate:i});var s="finish"===De?i||o:o||i;(0,m.L)("date-picker","click-date-picker",x,String(s))}},Ue=(0,s.useMemo)((function(){return de.current&&ae?s.createElement(P,{backdrop:!0,target:de.current,canHideTarget:!1,align:{top:"bottom",left:"left"},onEsc:ce},s.createElement(y,(0,o.Z)({ref:ye,"data-testid":"datePicker"},N),s.createElement(u.Flex,{alignItems:"center",width:"100%",padding:F?[4]:[0,6]},!F&&!t&&s.createElement(u.Flex,{column:!0,gap:3,margin:[0,4,0,0],padding:[6,0],border:{side:"right",color:"borderSecondary"}},s.createElement(X,{handleTimePeriodChange:Ee,selectedDate:B,tagging:x}),s.createElement(W,{handleTimePeriodChange:Ee,customTimePeriodRef:pe,resolution:V,tagging:x,value:B})),s.createElement(re,{startDate:B,endDate:Y,singleDate:O,setStartDate:U,setEndDate:Z,onDatesChange:Oe,onInputFocus:Fe,onlyDates:F,maxDate:D,minDate:A,isSinglePicker:t})),s.createElement(u.Flex,{column:!0,padding:[4,6,2],width:"100%",border:{side:"top",color:"borderSecondary"}},!F&&!t&&s.createElement(Ie,{timezoneRef:Te}),s.createElement(u.Flex,{gap:1,justifyContent:t?"end":F?"center":Ae?"between":"end",width:"100%"},!F&&!t&&Ae&&s.createElement(le,{startDate:B,endDate:Y,onlyDates:F}),s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:1},s.createElement(u.Button,{label:"Clear",flavour:"hollow",onClick:Ce,disabled:He,"data-ga":"date-picker::click-clear::".concat(x,"-").concat(De),"data-testid":"datePicker-clear",small:!0}),s.createElement(u.Button,{label:"Apply",onClick:Se,disabled:!Ae||Me,"data-ga":"date-picker::click-apply::".concat(x,"-").concat(De),"data-testid":"datePicker-apply",small:!0})))))):null}),[B,x,V,Y,Ae,He,De,Me,O,ae]);return s.createElement(s.Fragment,null,s.createElement(Pe,(0,o.Z)({onClick:qe,tagging:x,isPickerOpen:ae,isPlaying:C,setRangeValues:n,start:t?O:b,end:t?O:_,ref:de,onlyDates:F,tooltipContent:M,isSinglePicker:t,noDateSelected:t&&!O},S)),Ue)}},2379:function(e,n,t){t.d(n,{I:function(){return s},o:function(){return r}});var o=t(89250),i=t(3322),a={},s=function(){var e=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/alerts"),n=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/alerts/:alertId"),t=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/home"),s=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/functions"),r=((0,i.ZQ)({extraKey:"fn"})||a).hasHistory;return e||n||t||s&&!r},r=function(){return(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/events")}},92432:function(e,n,t){t.d(n,{L:function(){return o}});var o=function(e,n,t,o,i){var a,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"gaCustomEvent";if(window.envSettings.tracking){if(window.dataLayer){var r={event:s,eventCategory:e,eventAction:n,eventLabel:t,eventValue:o,eventResults:i};window.dataLayer.push(r)}window.gtag&&window.gtag("event","gaCustomEvent",{eventCategory:e,eventAction:n,eventLabel:t,eventValue:o,eventResults:i}),null!==(a=window.posthog)&&void 0!==a&&a.__loaded&&window.posthog.capture(s,{eventCategory:e,eventAction:n,eventLabel:t,eventValue:o})}}},89405:function(e,n,t){t.d(n,{rA:function(){return _},tb:function(){return b}});var o=t(4942),i=t(45987),a=(t(91058),t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),s=t(49546),r=t(58591),l=t(14600),c=["long","isTime","secs","timezone"],d=["locale"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=!!(Intl&&Intl.DateTimeFormat&&navigator.language),p=function(e){return"number"===typeof e?new Date(e):e},g=function(e){return(e=p(e))?(0,s.default)(e,"MM/dd/yyyy"):""},f=function(e){return(e=p(e))?(0,s.default)(e,"HH:mm"):""},b=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new Date(new Date(e).getTime()+60*parseInt(n)*60*1e3)},y=function(e,n){var t=n.locale,o=(0,i.Z)(n,d);return new Intl.DateTimeFormat(null!==t&&void 0!==t?t:navigator.language,function(e){var n=e.long,t=e.isTime,o=e.secs,a=e.timezone,s=(0,i.Z)(e,c);return m(m(m({hourCycle:"h23"},t?{}:n?{weekday:"short",year:"numeric",month:"short",day:"2-digit"}:{dateStyle:"short"}),t&&{timeStyle:o?"medium":"short"}),{},{timeZone:a},s)}(o)).format(e)},_=function(){var e=function(){var e=(0,r.m$)().utc;return(0,l.E)("default",e)}(),n=e.utc,t=e.offset;return{localeDateString:(0,a.useMemo)((function(){return h?function(e,t){return y(e,m({long:!0,timezone:n},t))}:g}),[n]),localeTimeString:(0,a.useMemo)((function(){return h?function(e,t){return y(e,m({secs:!0,isTime:!0,timezone:n},t))}:f}),[n]),utcOffset:t}}},72437:function(e,n,t){t.d(n,{xy:function(){return i}});t(26699);var o=[];var i=function(e){if(o.includes(e))return function(){return!0};var n="true"===localStorage.getItem(e);return function(e){return e||n}}("mobileAppNotifications")()},20709:function(e,n){var t=36e5;n.Z=function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date)-e;if(n<0)return"0 seconds ago";var o=Math.floor(n/864e5);if(o>1)return"".concat(o," days ago");var i=Math.floor(n/t);if(i>0)return"".concat(i," hours ago");var a=Math.floor(n/6e4);if(a>1)return"".concat(a," mins ago");var s=Math.floor(n/1e3);return"".concat(s," seconds ago")}},71752:function(e,n,t){t.d(n,{T:function(){return o}});var o=function(e){return e.messages&&e.messages.length>0?e.messages[0]:void 0}},30688:function(e,n,t){t.d(n,{A:function(){return a},f:function(){return i}});var o=t(93433),i=(t(92222),t(85827),t(41539),t(25387),t(2490),t(72608),function(e,n){return{isValid:e,message:n}});function a(e){return Array.isArray(e)?function(n){return e.reduce((t=n,function(e,n){var i=n(t),a=i.isValid,s=i.message;if(a)return e;var r=e.messages,l=void 0===r?[]:r;return{isValid:a,messages:[].concat((0,o.Z)(l),[s])}}),{isValid:!0});var t}:(n=e,function(e){var t=n(e),o=t.isValid,i=t.message;return i?{isValid:o,messages:[i]}:{isValid:o}});var n}},31203:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=["onClick","src","title"],l=(0,a.forwardRef)((function(e,n){var t=e.onClick,l=e.src,c=e.title,d=void 0===c?"User avatar":c,u=(0,i.Z)(e,r);return a.createElement(s.Flex,(0,o.Z)({cursor:"pointer",round:"50%",as:"img","data-testid":"userAvatar",src:l||"https://www.gravatar.com/avatar/00000000000000000000000000000000?d=mp&f=y",title:d,alt:d,onClick:function(e){return t&&t(e)},width:8,height:8},u,{ref:n}))}));n.Z=l},70842:function(e,n,t){t.d(n,{Z:function(){return Y}});var o=t(87462),i=t(29439),a=t(67294),s=t(15557),r=t(61152),l=t(82351),c=t(24533),d=t(60677),u=t(57387),m=t(78266),h=t(45987),p=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(78710)),g=t(46667),f=t(36065),b=t(74059),y=t(77872),_=t(97346),w=t(14428),v=["selectedSpace","setSelectedSpace","column","showFullname"],T=d.default.div.withConfig({displayName:"spaces__Separator",componentId:"sc-19p9rsp-0"})(["height:1px;width:",";background:",";"],(0,s.getSizeBy)(3),(0,s.getColor)("border")),k=function(e){var n=e.selectedSpace,t=e.setSelectedSpace,r=e.column,c=e.showFullname,d=(0,h.Z)(e,v),u=(0,b.Iw)(),m=(0,a.useMemo)((function(){return u.filter((function(e){return!(0,p.Ly)(e)}))}),[u]),k=(0,g.Z)(),x=(0,i.Z)(k,4),P=x[0],C=x[2],F=x[3];return a.createElement(s.Flex,(0,o.Z)({"data-testid":"workspaceBar",padding:[3,2],column:r,alignItems:"center",justifyContent:"center"},d),a.createElement(s.Flex,{column:!0,"data-testid":"workspaceBar-spaces-list",gap:4,alignItems:"center",overflow:"hidden"},a.createElement(s.Flex,{column:r,"data-testid":"workspaceBar-spacesList",gap:r?4:2,overflow:{vertical:"auto"},flexWrap:!r},m.map((function(e){return a.createElement(y.Z,{testIdPrefix:"workspaceBar-space",key:e,spaceId:e,onClick:t,active:e===(null===n||void 0===n?void 0:n.id),background:"selected",color:"bright",showFullname:c})}))),a.createElement(_.Z,{permission:"user:CreateSpace"},a.createElement(T,{"data-testid":"workspaceBar-separator"}),a.createElement(l.Z,{content:"Create a new Space",align:"right"},a.createElement(w.Z,{permission:"user:CreateSpace",ifForbidden:"hide",icon:"plus",onClick:C,"data-testid":"workspaceBar-addSpace-button"})))),P&&a.createElement(f.Z,{onClose:F,onDone:t}))},x=t(56662),P=t(61458),C=t(33335),F=t(23383),q=t(95383),S=t(73398),D=function(e){var n=e.selectedSpace,t=e.selectedRoom,o=e.setSelectedRoom,r=n.id;(0,F.Z)(r);var c=(0,C.gI)("room:Create",r),d=(0,C.gI)("room:Read",r),u=(0,g.Z)(!1),m=(0,i.Z)(u,4),h=m[0],p=m[2],f=m[3],b=(0,a.useCallback)((function(e){e.stopPropagation(),c&&p()}),[c]),y=(0,q.WY)(r),_=(0,a.useMemo)((function(){return y.filter((function(e){return e.isMember}))}),[y]);return(0,a.useEffect)((function(){null!==_&&void 0!==_&&_.length&&(t||o(_[0]))}),[_,t]),a.createElement(a.Fragment,null,a.createElement(P.Z,{"data-testid":"workspaceRooms-menuList",disabled:!d,headerTestId:"workspaceRooms-warRooms",isOpen:!0,label:a.createElement(s.Flex,{padding:[1,0],margin:[0,0,1,0],flex:!0,justifyContent:"between",alignItems:"center",height:"24px"},a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement(s.Icon,{name:"space_new",color:"menuItem",width:"14px",height:"14px"}),a.createElement(s.TextSmall,{color:"menuItem"},"Select a room")),a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement(l.Z,{content:"Create a new room",align:"right"},a.createElement(w.Z,{permission:"room:Create",tiny:!0,icon:"plus",onClick:b,"data-testid":"workspaceRooms-addWarRoom-button",spaceId:r}))))},a.createElement(s.Flex,{column:!0,"data-testid":"workspaceRooms-warRoomsList",padding:[0,0,1]},_.map((function(e){var n=e.id;return a.createElement(S.Z,{key:n,id:n,hideAlerts:!0,Wrapper:s.TextSmall,isSidebar:!0,selectedId:null===t||void 0===t?void 0:t.id,onClick:function(){return o(e)}})})))),h&&a.createElement(x.U,{onClose:f,isSubmodal:!1}))},A=t(4942),M=(t(92222),t(47941),t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(33582)),N=t(13477),H=t(93017),E=t(28234),O=t(94221),I=t(49254),R=t(39469);function L(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function B(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?L(Object(t),!0).forEach((function(n){(0,A.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):L(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var U=(0,d.default)(s.ModalContent).attrs({width:{base:"80vw"},height:{base:"80vh",min:"80vh"}}).withConfig({displayName:"modal__ModalContent",componentId:"sc-4dwymj-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),j=function(e){var n=e.claim,t=e.loading,o=(e.error,e.privateKey),i=e.setPrivateKey,r=e.selectedSpace,l=e.setSelectedSpace,c=e.selectedRoom,d=e.keyFilename;return r?c?a.createElement(a.Fragment,null,a.createElement(m.H,null),a.createElement(s.H3,{textAlign:"center"},'You are ready to connect your agent in "',c.name,'" of "',r.name,'"'),a.createElement(s.Text,{textAlign:"center"},"Last step is to ensure you're the admin of this agent ;)"),a.createElement(s.TextSmall,{textAlign:"center"},"We've created a file with a random key. Can you read it?"),a.createElement(u.ZP,{"data-testid":"key-filename-command",commandText:"sudo cat ".concat(d),width:"60%"},"$ sudo cat ",d),a.createElement(s.Flex,{column:!0,round:!0,background:"accent",border:"primary",padding:[2],width:"60%"},a.createElement(s.TextSmall,{color:"tooltip"},a.createElement(s.TextSmall,{strong:!0,color:"tooltip"},"Tip:")," ","Run the command and paste here the key it will give you. If the command doesn't work out of the box, locate the ",d," file, open it in your favorite text editor, and copy it to your clipboard.")),a.createElement(s.TextInput,{value:o,placeholder:"Paste private key here",onChange:function(e){return i(e.target.value)},metaShrinked:!0,containerStyles:{width:"60%"}}),a.createElement(s.Button,{label:"Claim your agent",onClick:n,disabled:!o||t,isLoading:t})):a.createElement(a.Fragment,null,a.createElement(m.H,null),a.createElement(s.H3,{textAlign:"center"},'Select a room in "',r.name,'" for this agent'),a.createElement(s.TextBig,{color:"textDescription",textAlign:"center"},"or create a new one by hitting the [+] button.")):a.createElement(a.Fragment,null,a.createElement(m.H,null),a.createElement(s.H3,{textAlign:"center"},"Let's connect your agent"),a.createElement(s.TextBig,{color:"textDescription",textAlign:"center"},"Select the space you want this agent to join"),a.createElement(s.TextBig,{color:"textDescription",textAlign:"center"},"or create a new one by hitting the [+] button."),a.createElement(k,{column:!!r,selectedSpace:r,setSelectedSpace:l,showFullname:!0,width:"80%"}))},G=function(e){var n=e.onClose,t=e.keyFilename,o=function(e){var n,t=(0,a.useState)(),o=(0,i.Z)(t,2),s=o[0],r=o[1],l=(0,a.useState)(),d=(0,i.Z)(l,2),u=d[0],m=d[1],h=(0,a.useState)(""),p=(0,i.Z)(h,2),g=p[0],f=p[1],y=(0,M.Z)(null===s||void 0===s?void 0:s.id),_=(0,b.Q6)(),w=null===(n=window.localNetdataRegistry)||void 0===n?void 0:n.mg,v=(0,c.Lz)(w),T=(0,i.Z)(v,2),k=T[0],x=k.claiming,P=k.claimingError,C=T[1],F=(0,N.Iy)("isAnonymous"),q=(0,H.Z)(),S=(0,i.Z)(q,2),D=S[0],A=S[1],L=(0,c.Hu)(),U=(0,I.Hu)(),j=(0,R.Hu)();return{claim:(0,a.useCallback)((function(){var n;g&&!x&&y&&w&&_&&!F&&u&&(C({claiming:!0}),(0,O.c)({key:g,token:null===y||void 0===y||null===(n=y[0])||void 0===n?void 0:n.token,rooms:[u.id],url:window.envSettings.apiUrl}).then((function(n){var t=n.data;if(!t.success)return C({claiming:!1,claimingError:t.message,claimId:null}),void A({message:t.message});L(),U(),j(),C(B(B({claiming:!1},t),{},{claimingError:""})),e(),D({header:"Your agent got connected to Netdata",text:"You can see your agent in the room ".concat(u.name," of ").concat(s.name," space.")})})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;C({claiming:!1,claimingError:(0,E.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong",claimId:null}),A({message:(0,E.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong"})})))}),[y,g,w,_,F,x]),selectedSpace:s,setSelectedSpace:r,selectedRoom:u,setSelectedRoom:m,loading:x,error:P,privateKey:g,setPrivateKey:f}}(n),r=o.claim,l=o.selectedSpace,d=o.setSelectedSpace,u=o.selectedRoom,m=o.setSelectedRoom,h=o.loading,p=o.error,g=o.privateKey,f=o.setPrivateKey;return a.createElement(s.Modal,{zIndex:7e3,backdropProps:{backdropBlur:!0}},a.createElement(s.Flex,{column:!0,alignItems:"end",gap:3},a.createElement(U,{tabIndex:0},a.createElement(s.ModalHeader,{justifyContent:"between"},a.createElement(s.Flex,{gap:2,alignItems:"center"},"Connect your agent to Netdata"),a.createElement(s.ModalCloseButton,{onClose:n,testId:"claim-modal-close-button"})),a.createElement(s.ModalBody,{overflow:{vertical:"auto"},padding:[0],height:"100%",column:!1},a.createElement(s.Collapsible,{background:"sideBar",open:!!l,direction:"horizontal"},a.createElement(k,{column:!0,selectedSpace:l,setSelectedSpace:d,background:"sideBarMini",height:"100%"})),a.createElement(s.Collapsible,{background:"sideBar",open:!!l,direction:"horizontal"},a.createElement(s.Flex,{flex:!0,width:56,column:!0,overflow:{vertical:"auto"},padding:[2,0]},!!l&&a.createElement(D,{selectedSpace:l,selectedRoom:u,setSelectedRoom:m}))),a.createElement(s.Flex,{alignItems:"center",column:!0,"data-testid":"claim-modal-body",flex:!0,gap:3,justifyContent:"center",padding:[4]},a.createElement(j,{selectedSpace:l,selectedRoom:u,setSelectedSpace:d,keyFilename:t,claim:r,loading:h,error:p,privateKey:g,setPrivateKey:f}))))))},z={unavailable:"Netdata is not available for this agent.",available:"Netdata is available. Click to claim it and gain the full benefits of Netdata!",disabled:"Netdata is available, but it is disabled, you can change the agent configuration to enable it.",banned:"The agent has been banned from cloud.",offline:"The agent tries to connect to Netdata, but it fails to do so.",online:"The agent is already connected to Netdata :)"},Y=function(e){var n=(0,r.Z)("claimModal"),t=(0,i.Z)(n,4),d=t[0],u=t[2],m=t[3],h=(0,c.Lz)(),p=(0,i.Z)(h,1)[0],g=p.canBeClaimed,f=p.cloudStatus,b=p.keyFilename;return a.createElement(a.Fragment,null,a.createElement(l.Z,{plain:!0,content:z[f],isBasic:!0},a.createElement("div",null,a.createElement(s.Button,(0,o.Z)({label:"Connect to Netdata",onClick:u},e,{disabled:!g})))),d&&a.createElement(G,{onClose:m,keyFilename:b}))}},35253:function(e,n,t){t.d(n,{J:function(){return i},N:function(){return o}});var o={Community:"nightly",default:"stable",EarlyBird:"nightly"},i={nightly:{description:"Released at most once every 24 hours with fully-tested code that fixes bugs or security flaws, or introduces new features to Netdata. Every nightly release is a candidate for then becoming a stable release.",title:"Nightly"},stable:{description:"Released when a major milestone is reached. Stable releases might be a better choice for those who run Netdata in mission-critical production systems, as updates will come more infrequently.",title:"Stable"}}},16931:function(e,n,t){t.d(n,{Sn:function(){return l},U8:function(){return s},m7:function(){return r}});var o=t(67294),i=t(60677),a=t(15557),s=(0,i.default)(a.Box).attrs({border:{side:"all",color:"border"},padding:[1.75,7,1.75,3],round:!0}).withConfig({displayName:"styled__InfoBlock",componentId:"sc-1lice8m-0"})(["color:",';font-family:"Courier New",Courier,monospace;font-size:14px;letter-spacing:0.09px;line-height:18px;max-height:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;'],(0,a.getColor)("textLite")),r=((0,i.default)(a.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1lice8m-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),function(e){var n=e.children;return o.createElement(a.Flex,{column:!0,gap:4},n)}),l=((0,i.default)(a.Flex).attrs({margin:[4,0]}).withConfig({displayName:"styled__StyledFlex",componentId:"sc-1lice8m-2"})(["nav{border:none;gap:",";padding:0;}"],(0,a.getSizeBy)(1)),(0,i.default)(a.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-1lice8m-3"})(["&&{width:auto;min-width:auto;height:22px;background:",";border:1px solid ",";border-radius:4px;padding:0;&:hover{background:",";& > span{span{color:",";}svg{fill:",";}}}& > span{display:flex;align-items:center;gap:6px;margin:2px 8px 2px 4px;span{color:",";}svg{fill:",";}}}"],(function(e){var n=e.active,t=e.theme;return(0,a.getColor)(n?"primary":"modalBackground")({theme:t})}),(0,a.getColor)("primary"),(0,a.getColor)("primary"),(0,a.getColor)("modalBackground"),(0,a.getColor)("modalBackground"),(function(e){var n=e.active,t=e.theme;return(0,a.getColor)(n?"modalBackground":"primary")({theme:t})}),(function(e){var n=e.active,t=e.theme;return(0,a.getColor)(n?"modalBackground":"primary")({theme:t})})));(0,i.default)(a.RadioButton).withConfig({displayName:"styled__RadioButton",componentId:"sc-1lice8m-4"})(["&&{align-items:baseline !important;color:red;}"])},52428:function(e,n,t){t.d(n,{J:function(){return c}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(58206),a=t(52631),s=t(74855);function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var c=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){(0,i.Z)(e);var t=(0,s.sc)(l(l({header:"Copied",text:"Command copied to your clipboard! Please run it on your node's terminal.",icon:"gear"},n),{},{success:!0}));a.Z.success(t,{context:"copy"})}}},57387:function(e,n,t){t.d(n,{ZM:function(){return g}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(45987),i=t(4942),a=t(67294),s=t(60677),r=t(15557),l=t(52428),c=["children"],d=["children","confirmationText","commandText"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var m=(0,s.default)(r.Box).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({color:"textDescription",background:"modalTabsBackground",border:{side:"all",color:"borderSecondary"},padding:[4,10,4,4],position:"relative",width:"100%"},e)})).withConfig({displayName:"command__StyledTerminalCommand",componentId:"sc-wnwmk3-0"})(["color:",';border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,r.getColor)("textDescription")),h=(0,s.default)(r.Icon).withConfig({displayName:"command__StyledIcon",componentId:"sc-wnwmk3-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),p=(0,s.default)(r.Box).attrs({color:"textDescription",border:{side:"all",color:"borderSecondary"},background:"modalTabsBackground",padding:[0,1]}).withConfig({displayName:"command__CodeText",componentId:"sc-wnwmk3-2"})(["display:inline-block;color:",';border-radius:2px;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,r.getColor)("textDescription")),g=function(e){var n=e.children,t=(0,o.Z)(e,c);return a.createElement(p,t,n)};n.ZP=function(e){var n=e.children,t=e.confirmationText,i=void 0===t?"Command copied to your clipboard.":t,s=e.commandText,c=void 0===s?n:s,u=(0,o.Z)(e,d);return a.createElement(m,u,n,a.createElement(r.Box,{position:"absolute",bottom:"8px",right:"8px"},a.createElement(h,{name:"copy",size:"small",color:"primary",onClick:(0,l.J)(c||n,{text:i})})))}},80606:function(e,n,t){t.d(n,{F:function(){return r},I:function(){return s}});var o=t(4480),i=t(78401),a=(0,o.cn)({key:"cookiePreferences",default:(0,i.O)()}),s=function(){return(0,o.sJ)(a)},r=function(){return(0,o.FV)(a)}},70459:function(e,n,t){t.d(n,{F:function(){return r}});var o=t(29439),i=(t(41539),t(15581),t(2490),t(34514),t(54747),t(67294)),a=t(54576),s=t(95248),r=function(){var e=(0,a.useChart)(),n=(0,s.I0)(),t=(0,o.Z)(n,2),r=t[0],l=r.after,c=r.before,d=t[1],u=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{autofetchOnWindowBlur:!1};return function(){if(e.getNodes().forEach((function(e){return e.updateAttributes(n)})),!(l<0)){var t=Math.floor((c-l)/1e3);d({after:-t,before:0})}}};return{play:(0,i.useCallback)(u(),[c,l]),forcePlay:(0,i.useCallback)(u({autofetchOnWindowBlur:!0}),[c,l]),pause:(0,i.useCallback)((function(){if(!(l>0)){var e=Date.now();d({after:1e3*Math.floor(e/1e3+l),before:1e3*Math.floor(e/1e3)})}}),[l])}}},92517:function(e,n,t){var o=t(60677),i=t(67294),a=t(15557),s=(0,o.default)(a.Flex).withConfig({displayName:"item__StyledFlex",componentId:"sc-1gby0f1-0"})(["&:hover{background:",";}"],(function(e){var n=e.hasHoverBackground,t=e.theme,o=e.hoverBackground,i=void 0===o?"borderSecondary":o;return n?(0,a.getColor)(i)({theme:t}):null})),r=(0,i.forwardRef)((function(e,n){var t=e.background,o=e.children,r=e.cursor,l=e.hasBorder,c=e.hasHoverBackground,d=e.onClick,u=e.padding,m=e.testId,h=e.borderColor,p=void 0===h?"selected":h,g=e.round,f=e.hoverBackground;return i.createElement(a.Flex,{alignItems:"center",border:l&&{side:"right",color:p},cursor:r,"data-testid":m,onClick:d,ref:n},i.createElement(s,{round:g,alignItems:"center",background:t,hasHoverBackground:c,margin:l?[0,3,0,0]:void 0,padding:u,hoverBackground:f},o))}));n.Z=r},27261:function(e,n,t){var o=t(15557),i=t(67294),a="node-status-indicator";n.Z=function(e){var n=e.statusText,t=e.counter,s=e.statusColor,r=s.statusTextColor,l=s.indicatorWrapperColor,c=s.counterColor;return i.createElement(o.Flex,null,i.createElement(o.Box,{margin:[0,1,0,0]},i.createElement(o.TextSmall,{"data-testid":"".concat(a,"-text-").concat(n),color:r},n)),i.createElement(o.Flex,{justifyContent:"center",alignItems:"center",padding:[0,1],width:{min:7.5},height:5,background:l,round:!0},i.createElement(o.TextSmall,{"data-testid":"".concat(a,"-counter-").concat(n),color:c},t)))}},9458:function(e,n,t){var o=t(67294),i=t(15557);n.Z=function(){return o.createElement(i.Box,{as:"hr",height:3,margin:[0],sx:{borderWidth:"0px 0px 0px 1px",borderColor:"placeholder",borderStyle:"solid"}})}},6973:function(e,n,t){t.d(n,{B:function(){return o}});var o={live:{statusTextColor:"primary",indicatorWrapperColor:"primary",counterColor:"bright"},stale:{statusTextColor:["green","vista"],indicatorWrapperColor:["green","vista"],counterColor:"bright"},offline:{statusTextColor:"textLite",indicatorWrapperColor:"textLite",counterColor:"bright"},unseen:{statusTextColor:"textLite",indicatorWrapperColor:["yellow","seaBuckthorn"],counterColor:"bright"}}},4514:function(e,n,t){t.d(n,{c:function(){return u}});t(21249),t(57640),t(9924),t(47941);var o=t(67294),i=t(60677),a=t(15557),s=t(27261),r=t(9458),l=t(6973),c=(0,i.default)(a.Flex).withConfig({displayName:"wrapper__NodesIndicatorWrapper",componentId:"sc-gy5ftg-0"})(["pointer-events:",";cursor:",";opacity:",";"],(function(e){return e.disabled?"none":"auto"}),(function(e){return e.disabled?"default":"pointer"}),(function(e){return e.disabled?"0.4":"1"})),d={live:{counter:0,statusText:"Live"},stale:{counter:0,statusText:"Stale"},offline:{counter:0,statusText:"Offline"},unseen:{counter:0,statusText:"Unseen"}},u=function(e){return o.createElement(c,e,Object.keys(d).map((function(e){return o.createElement(o.Fragment,{key:e},o.createElement(s.Z,{statusText:d[e].statusText,counter:d[e].counter,statusColor:l.B[e]}),o.createElement(r.Z,null))})))};n.Z=c},64599:function(e,n,t){var o=t(87462),i=t(67294),a=t(15557),s=t(13477),r=t(83356);n.Z=function(e){var n=(0,s.Iy)("isAnonymous"),t=(0,r.Z)();return n?i.createElement(a.Button,(0,o.Z)({label:"Sign In",onClick:t},e)):null}},66143:function(e,n,t){t.r(n),t.d(n,{default:function(){return $e}});t(66992),t(41539),t(88674),t(78783),t(33948);var o=t(67294),i=t(2145),a=t(15557),s=t(13477),r=(t(15581),t(2490),t(34514),t(54747),t(68035)),l=t(4480),c=t(30266),d=t(74059),u=t(33335),m=t(94979),h=t(78266),p=t(29439),g=t(46667),f=t(59636),b=t(67622),y=t(61458),_=t(37518),w=t(60677),v=(0,w.default)(a.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[2,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1,width:64}).withConfig({displayName:"styled__Dropdown",componentId:"sc-1vwntsm-0"})([""]),T=(0,w.default)(a.H6).attrs({color:"border",padding:[2,4]}).withConfig({displayName:"styled__OtherRoomsHeader",componentId:"sc-1vwntsm-1"})([""]),k=t(82351),x=t(93033),P=t(14428),C=function(){var e=(0,g.Z)(),n=(0,p.Z)(e,4),t=n[0],i=n[1],s=n[3],r=(0,o.useRef)(),l=(0,_.Hm)(),c=l.slug,m=(0,d.OS)("name"),h=(0,x.Z)({roomSlug:c}),w=(0,u.gI)("room:Read"),C=(0,d.Q6)();return o.createElement(o.Fragment,null,o.createElement(a.Flex,{alignItems:"center",gap:1,"data-testid":"header-roomOptions"},o.createElement(b.Z,{ref:r,testid:"roomDropdownMenu-roomOptions",icon:"space_new",onClick:i,padding:[2],round:1,width:"auto",disabled:!w||C},l.name&&o.createElement(a.Flex,{alignItems:"center",gap:4},o.createElement(a.Text,null,l.name),o.createElement(a.Icon,{name:"chevron_down",size:"small",color:"text"}))),o.createElement(k.Z,{align:"bottom",content:"Room settings"},o.createElement(P.Z,{permission:"room:Leave","data-ga":"header::click-war-room-settings::global-view","data-testid":"header-manageWarRoom",onClick:h,icon:"gear",flavour:"borderless",neutral:!0,small:!0}))),r.current&&t&&o.createElement(v,{target:r.current,onEsc:s,onClickOutside:s},o.createElement(y.Z,{isOpen:!0,label:"ROOMS IN ".concat(m.toUpperCase()),headerTestId:"roomDropdownMenu-otherRooms",Header:T},o.createElement(a.Flex,{onClick:s,column:!0,height:{max:100},overflow:{vertical:"auto"}},o.createElement(f.Z,null)))))},F=(t(92222),t(97945)),q=t(82902),S=(t(82526),t(41817),function(e){var n=e.description,t=e.title,i=e.testId,s=e.children;return o.createElement(a.Flex,{"data-testid":i,column:!0,gap:2},o.createElement(a.H4,{color:"textDescription"},t),o.createElement(a.Flex,{column:!0,"data-testid":i,gap:2},o.createElement(a.Text,{color:"textDescription"},n),s))}),D=function(e){var n=e.children,t=e.testId,i=e.icon,s=void 0===i?"nodes_update":i;return o.createElement(a.Flex,{"data-testid":t,padding:[6],round:1,width:"100%",background:"modalInfoBackground"},o.createElement(a.Box,{margin:[0,4,0,0]},o.createElement(a.Box,{as:a.Icon,width:10,height:10,name:s})),n)},A=function(e){var n=e.title,t=e.desciription;return o.createElement(a.Flex,{column:!0},o.createElement(a.Flex,null,o.createElement(a.Box,{margin:[0,4,0,0]},o.createElement(a.Icon,{color:"main",name:"warning_triangle_hollow"})),o.createElement(a.H3,null,n)),o.createElement(a.Box,{margin:[6,0,0,0]},t))},M=t(91008),N=t(91268),H=t(89250),E=(t(64211),t(41874),t(11389)),O=t(89050),I=t(86711),R=t(83925);var L=[{id:"name",accessor:"name",header:"Name",cell:function(e){var n=e.getValue,t=e.row;return o.createElement(M.Z,{disabled:!t.original.isLive&&"stale"!==t.original.state,color:"text",hoverColor:"primary",visitedColor:"accent",Component:a.TextSmall},n())},minSize:60},{id:"version",accessor:"version",header:"Version",cell:function(e){var n=e.getValue;return o.createElement(a.Pill,{color:"neutralPillColor",flavour:"neutral"},n())}},{id:"state",accessor:"state",header:"Status",cell:function(e){var n=e.getValue;return o.createElement(E.Z,{state:n()})},sortingFn:function(e,n){return t=(0,O.Q5)(e.original.state),o=(0,O.Q5)(n.original.state),t===o?0:t>o?1:-1;var t,o},enableColumnFilter:!0,filterFn:function(e,n,t){var o=e.original;return t.length<1||t.some((function(e){var n=e.value;return"all"===n||n===(0,O.Q5)(o.state)}))},meta:{tooltip:o.createElement(I.Z,null),filter:{component:"select",isMulti:!0,options:[{value:"Offline",label:"Offline"},{value:"Live",label:"Live"},{value:"Stale",label:"Stale"}]}}},{id:"updateSeverity",accessor:"updateSeverity",header:"Severity",cell:function(e){var n=e.getValue,t=e.row.original;return o.createElement(R.Z,{name:t.name,os:t.os.id,container:t.hw.container,warningLevel:t.updateSeverity,labels:t.labels||{},version:t.version,text:n()})}}],B=t(77823),U=(0,l.cn)({key:"notificationModal",default:!1}),j=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).resetOnUnmount,n=void 0!==e&&e,t=(0,l.rb)(U),i=(0,l.FV)(U),a=(0,p.Z)(i,2),s=a[0],r=a[1],c=(0,o.useCallback)((function(){return r(!0)}),[]),d=(0,o.useCallback)((function(){return r(!1)}),[]);return(0,B.Z)((function(){n&&t()})),{isModalVisible:s,openModal:c,closeModal:d,resetState:t}},G=[{id:"updateSeverity",desc:!1}],z=function(){var e=j().closeModal,n=(0,o.useMemo)((function(){return{goto:{handleAction:function(e){var n=((null===e||void 0===e?void 0:e.labels)||{})._install_type,t=void 0===n?null:n,o=e.hw.container,i=e.os.id,a=e.version,s=(0,q.Ly)({container:o,os:i,_install_type:t,version:a});window.open(s,"_blank","noopener,noreferrer")},tooltipText:"Go to documentation"}}}),[]),t=(0,H.s0)(),i=(0,F.Hg)();return{onClickRow:(0,o.useCallback)((function(n){var o=n.data;if(o.isLive||"stale"===o.state){var a=i(o.id);t(a),e()}}),[]),sortBy:G,rowActions:n,columns:L,disableClickRow:function(e){var n=e.data;return!n.isLive&&"stale"!==n.state}}},Y=t(18129),X={updateSeverity:!0,connectionToCloud:!1},Z=function(e){var n=e.data,t=z(),i=t.rowActions,a=t.onClickRow,s=t.disableClickRow,r=t.sortBy;return o.createElement(N.Z,{"data-testid":"nodesTable-layout",overflow:"hidden",height:"100%"},o.createElement(Y.Z,{customSortBy:r,customNodes:n,showdDefaultRowActions:!1,showDefaultBulkActions:!1,columnVisibility:X,customRowActions:i,enableSelection:!1,onClickRow:a,disableClickRow:s}))},W=function(e){var n=e.onClose,t=(0,F.Ng)(),i=(0,F.Ne)(t),s=t.length,r="Need update (".concat(t.length," ").concat((0,q.V6)(t.length),")");return o.createElement(a.Modal,null,o.createElement(a.ModalContent,{width:{min:200,base:270},height:200},o.createElement(a.ModalHeader,null,o.createElement(A,{title:"Nodes that need Attention",desciription:o.createElement(a.Text,null,"You have ",o.createElement(a.Text,{strong:!0},s)," ",(0,q.V6)(s)," that should be upgraded to ensure experience using Netdata")}),o.createElement(a.ModalCloseButton,{onClose:n,testId:"close-button"})),o.createElement(a.ModalBody,{overflow:"hidden"},o.createElement(D,null,o.createElement(S,{title:r},o.createElement(a.Text,null,o.createElement(a.Flex,{column:!0},o.createElement(a.Text,null,"Please upgrade to ensure you get the latest security and bug fixes.")," ",o.createElement(a.Box,null,"To update your nodes to the latest version"," ",o.createElement(M.Z,{href:q.XY.default,rel:"noopener noreferrer",strong:!0,target:"_blank"},"please read our documentation"," "),"and find direct links for each node depending on where it is running and/or how it was installed."))))),o.createElement(a.Box,{height:"calc(100% - 145px)",padding:[3,0],margin:[0,0,8,0]},o.createElement(Z,{data:i})))))},K=t(48286),$=t(91128),V=t(2379),J=t(54576),Q=t(9058),ee=t(95665),ne=t(95248),te=function(e){var n=e.tagging,t=e.isPlaying,i=(0,ne.I0)(),a=(0,p.Z)(i,2),s=a[0],r=s.offset,l=s.after,c=s.before,d=a[1],u=(0,o.useCallback)((function(e){var n=e.start,t=void 0===n?-900:n,o=e.end;d({after:t,before:t<0?0:void 0===o?0:o})}),[]),m=(0,o.useMemo)((function(){return{start:l<0?l:Math.floor(l),end:l<0?0:Math.ceil(c)}}),[l,c]);return o.createElement(ee.Z,{values:m,utc:r,onChange:u,tagging:n,isPlaying:t})},oe=t(92517),ie=(0,w.default)(a.Flex).withConfig({displayName:"container__Container",componentId:"sc-qc13l0-0"})(["background:",";"],(function(e){var n=e.theme,t=e.isPlaying;return("Dark"===n.name?(0,a.getRgbColor)(t?["green","netdata"]:["neutral","ratsbane"],t?.3:1):(0,a.getRgbColor)(t?["green","frostee"]:["neutral","porcelain"]))({theme:n})})),ae=t(70459),se=(0,w.default)(k.Z).withConfig({displayName:"playPausePill__StyledTooltip",componentId:"sc-1umryvu-0"})(["pointer-events:",";"],(function(e){return e.isDisabled?"none":"auto"})),re=function(e){var n=e.isPlaying,t=e.isForcePlaying,i=e.isDisabled,s=(0,ae.F)(),r=s.play,l=s.pause,c=(0,o.useMemo)((function(){return function(e,n){return e?n?"forcePlay":"playSolid":"pauseSolid"}(n,t)}),[n,t]);return o.createElement(se,{content:n?"Click to pause":"Click to play",align:"bottom",isDisabled:i},o.createElement(a.Box,{as:a.Pill,icon:c,onClick:n?l:r,isPlaying:n,"data-testid":"playPause-button",flavour:n?"success":"neutral",hollow:!0,_hover:{background:n?"accent":"neutralPillColor"},background:n?"primary":"border",color:"bright"},n?"Playing":"Paused"))},le=(0,w.default)(a.Flex).attrs({padding:[1],role:"button"}).withConfig({displayName:"styled__MenuButton",componentId:"sc-3h0zgs-0"})(["cursor:pointer;"]),ce=(0,w.default)(a.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,backdrop:!0,column:!0,padding:[2,0],background:"dropdown",round:1,overflow:{vertical:"auto"},margin:[.5,0,0],width:40}).withConfig({displayName:"styled__Dropdown",componentId:"sc-3h0zgs-1"})([""]),de=(0,w.default)(k.Z).withConfig({displayName:"styled__StyledTooltip",componentId:"sc-3h0zgs-2"})(["pointer-events:",";"],(function(e){return e.isDisabled?"none":"auto"})),ue=function(e){var n=e.target,t=e.isDisabled,i=(0,g.Z)(),s=(0,p.Z)(i,4),r=s[0],l=s[1],c=s[3],d=(0,ae.F)(),u=d.play,m=d.pause,h=d.forcePlay;return o.createElement(o.Fragment,null,r?o.createElement(le,{onClick:l,width:"auto","data-testid":"playOptions-picker"},o.createElement(a.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"})):o.createElement(de,{content:"Play to refresh and have live content, pause to see historical, or force play to keep refreshing even when the tab loses focus at the expense of some system performance.",align:{bottom:"bottom",right:"right"},isDisabled:t,plain:!0},o.createElement(le,{onClick:l,width:"auto","data-testid":"playOptions-picker"},o.createElement(a.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"}))),n.current&&r&&!t&&o.createElement(ce,{target:n.current,onEsc:c,onClickOutside:c},o.createElement(b.Z,{icon:"playOutline",onClick:function(){u(),c()},testid:"playOptions-play"},"Play"),o.createElement(b.Z,{icon:"pauseOutline",onClick:function(){m(),c()},testid:"playOptions-pause"},"Pause"),o.createElement(b.Z,{icon:"forcePlayOutline",onClick:function(){h(),c()},testid:"playOptions-forcePlay"},"Force Play")))},me=(0,o.memo)(ue),he=(0,J.withChartProvider)((function(){var e=(0,V.I)(),n=(0,V.o)(),t=(0,o.useRef)(),i=(0,J.useAttributeValue)("autofetch"),a=!(0,J.useAttributeValue)("paused")&&i&&!n,s=(0,J.useAttributeValue)("autofetchOnWindowBlur"),r=(0,$.Z)();return(0,K.Z)((function(){r(!!e||!!n)}),[e,n]),o.createElement(oe.Z,{hasBorder:!0,borderColor:"borderSecondary",testId:"global-controls"},o.createElement(ie,{isPlaying:a,padding:[2,2],round:!0,height:"100%",alignItems:"center",gap:1,isDisabled:e,ref:t},o.createElement(re,{isPlaying:a,isForcePlaying:s,isDisabled:e||n}),o.createElement(me,{target:t,isDisabled:e||n}),o.createElement(te,{isPlaying:a,tagging:"global-view"})))})),pe=function(){var e=(0,Q.e)().getRoot();return o.createElement(he,{chart:e})},ge=t(96929),fe=function(e){var n=e.toggle,t=e.upToDate,i=e.hasBorder;return o.createElement(oe.Z,{borderColor:"borderSecondary",hasHoverBackground:!0,hasBorder:i},o.createElement(k.Z,{content:"News & Announcements",align:"bottom"},o.createElement(a.Button,{name:"news",icon:"insights",flavour:"borderless",neutral:t,warning:!t,onClick:n,"data-ga":"news::click-news::global-view"})))},be=function(){var e=(0,ge.zN)().length>0;return o.createElement(a.News,{app:"cloud"},(function(n){var t=n.toggle,i=n.upToDate;return o.createElement(a.Flex,{alignItems:"center","data-testid":"cloud-app-news",flex:!0,gap:1},o.createElement(fe,{toggle:t,upToDate:i,hasBorder:!e}))}))},ye=t(4514),_e=function(e){var n=e.children,t=e.background,i=e.testId,s=e.onClose,r=i||"header-banner";return o.createElement(a.Flex,{background:t,"data-testid":r,height:{min:10},padding:[2,10,2,2],position:"sticky",zIndex:5},n,o.createElement(k.Z,{align:"bottom",content:"Dismiss message",isBasic:!0,plain:!0,stretch:"align"},s&&o.createElement(a.Box,{"data-testid":"".concat(r,"-close-button"),as:a.Icon,color:"separator",cursor:"pointer",name:"x",position:"absolute",right:"8px",onClick:function(e){s&&(e.stopPropagation(),s())}})))},we=t(62200),ve={warning:{background:"warningBackground",isDissmissable:!0,icon:"warning_triangle_hollow",iconColor:"warning"},critical:{background:"errorBackground",isDissmissable:!1,icon:"warning_triangle_hollow",iconColor:"error"}},Te=function(e){var n=e.iconColor,t=e.icon,i=e.warningLevel,s=e.numberOfNodesWithCriticalSeverity,r=e.onClickUpdate;return o.createElement(a.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},o.createElement(a.Icon,{"data-testid":"icon-banner-agent-outdated-".concat(i),color:n,name:t})," ",o.createElement(a.Text,{"data-testid":"text-agent-outdated-critical",color:"panel"},s," ",(0,q.V6)(s)," ",s>1?"are":"is"," below recommend agent version"," ",we._b,"."," ",o.createElement(a.Box,{"data-testid":"open-add-node",onClick:r,as:a.Text,cursor:"pointer",textDecoration:"underline",color:"panel"},"Please update them")," ","to ensure you get the latest security bug fixes."))},ke=function(e){var n=e.warningLevel,t=e.numberOfNodesWithCriticalSeverity,i=e.onClose,a=e.onClickUpdate,s=ve[n],r=s.background,l=s.isDissmissable,c=s.icon,d=s.iconColor;return o.createElement(_e,{background:r,onClose:l?i:null},o.createElement(Te,{iconColor:d,icon:c,warningLevel:n,numberOfNodesWithCriticalSeverity:t,onClickUpdate:a}))},xe=function(){var e=j().openModal,n=(0,F.Ng)({severity:"critical"}).length;return n?o.createElement(ke,{numberOfNodesWithCriticalSeverity:n,warningLevel:"critical",onClickUpdate:e}):o.createElement(o.Fragment,null)},Pe=function(e){var n=e.onOpenModalClick,t=(0,F.Ng)({severity:"critical"}).length,i=(0,F.Ng)().length;return i?o.createElement(oe.Z,{borderColor:"borderSecondary",cursor:"pointer",testId:"update-netdata-version-menu-item",hasBorder:!0,padding:[2,0]},o.createElement(a.Pill,{"data-testid":"update-netdata-version-badge",flavour:t?"error":"warning",icon:"warning_triangle_hollow",iconSize:"16px",onClick:n,size:"small"},i)):null},Ce=t(24533),Fe=t(70842),qe=t(64599),Se={offline:{icon:"switch_off",color:"attention",text:"Offline"},online:{icon:"checkmark_s",color:"primary",text:"Online"}},De=function(){var e=(0,d.Q6)(),n=(0,s.Iy)("isAnonymous"),t=(0,Ce.Lz)(),i=(0,p.Z)(t,1)[0],r=i.canBeClaimed,l=i.cloudStatus;if(n)return o.createElement(qe.Z,null);if(!e)return null;if(Se[l]){var c=Se[l],u=c.icon,m=c.color,h=c.text;return o.createElement(a.Flex,{alignItems:"center",gap:1},o.createElement(a.Icon,{name:u,color:m,width:"14px",height:"14px"}),o.createElement(a.TextSmall,{color:m},h))}return r?o.createElement(Fe.Z,null):null},Ae=(0,i.Z)((function(){return Promise.all([t.e(277),t.e(765)]).then(t.bind(t,7922))}),"NodesIndicator"),Me=function(){var e=j(),n=e.isModalVisible,t=e.closeModal,i=e.openModal;return o.createElement(o.Fragment,null,o.createElement(xe,null),o.createElement(a.Flex,{as:"header","data-testid":"header",padding:[2],justifyContent:"between",alignItems:"center",height:12,position:"sticky",background:"topBarBg",zIndex:5},n&&o.createElement(W,{onClose:t}),o.createElement(C,null),o.createElement(a.Flex,{alignItems:"center","data-testid":"header-features",gap:3},!window.envSettings.onprem&&o.createElement(be,null),o.createElement(pe,null),o.createElement(o.Suspense,{fallback:o.createElement(ye.c,{disabled:!0})},o.createElement(Ae,null)),o.createElement(De,{margin:[0,1,0,0],padding:[2,4]}),o.createElement(Pe,{onOpenModalClick:i}))))},Ne=t(15257),He=(0,w.default)(a.Flex).withConfig({displayName:"layout__UserControlContainer",componentId:"sc-18en99b-0"})(["bottom:0;left:0;"]),Ee=function(e){var n=e.children;return o.createElement(a.Flex,{width:"100vw",height:"100vh",column:!0,justifyContent:"center",alignItems:"center",background:"mainBackground",position:"relative"},n,o.createElement(He,{position:"absolute",padding:[4]},o.createElement(Ne.Z,null)))},Oe=(0,w.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),Ie=(0,w.default)(a.Icon).withConfig({displayName:"loading__StyledIcon",componentId:"sc-11p1wp-0"})(["width:208px;height:177px;animation:"," 1.6s ease-in infinite;"],Oe),Re=function(){return o.createElement(o.Fragment,null,o.createElement(Ie,{name:"netdata",color:"primary",title:"Loading","data-testid":"spaceCreationLoading-logo"}),o.createElement(a.H3,{color:"text",margin:[1,0,0]},"We are attempting to create your space but the system is currently busy."),o.createElement(a.Text,{color:"text",margin:[4.5,0,0]},"Thank you for your patience!"))},Le=t(83732),Be=function(){var e=(0,s.jr)(),n=(0,s.Iy)("email"),t=(0,o.useState)(!1),i=(0,p.Z)(t,2),r=i[0],l=i[1],c=(0,o.useCallback)((function(){return l(!1)}),[]),d=(0,Le.Z)({onSuccess:c,onError:c,isDefault:!0}),u=(0,o.useCallback)((function(){l(!0),d({userId:e,email:n})}),[e,n]);return o.createElement(a.Flex,{column:!0,gap:6,alignItems:"center"},o.createElement(a.Flex,{column:!0,gap:2,alignItems:"center"},o.createElement(a.H3,{color:"text"},"There was a problem with automatically creating your space"),o.createElement(a.Text,{color:"text"},"Please try again below")),o.createElement(a.Button,{label:"Continue",isLoading:r,onClick:u}))},Ue=function(){var e=(0,o.useState)(!0),n=(0,p.Z)(e,2),t=n[0],i=n[1];return(0,o.useEffect)((function(){var e=setTimeout((function(){return i(!1)}),1e4);return function(){return clearTimeout(e)}}),[]),o.createElement(Ee,null,t?o.createElement(Re,null):o.createElement(Be,null))},je=t(78710),Ge=t(27622),ze=function(){return o.createElement(a.Flex,{background:"sideBarMini","data-testid":"workspaceBar",padding:[3,2],column:!0,alignItems:"center",gap:6,height:"100vh",justifyContent:"between"},o.createElement(Ge.Z,{"data-testid":"workspaceBar-netdataLogo"}))},Ye=t(6308),Xe=(0,i.Z)((function(){return t.e(264).then(t.bind(t,26264))}),"Sidebar"),Ze=(0,i.Z)((function(){return Promise.all([t.e(663),t.e(969)]).then(t.bind(t,65969))}),"Modals"),We=(0,i.Z)((function(){return t.e(102).then(t.bind(t,48102))}),"AcceptTermsDialog"),Ke=(0,i.Z)((function(){return Promise.all([t.e(193),t.e(952),t.e(277),t.e(427)]).then(t.bind(t,47128))}),"SpacePages"),$e=function(e){var n=e.isUserLoaded;!function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).isUserLoaded,n=(0,l._8)((function(e){var n=e.set;return function(e){var t=e.results;n((0,d.YH)(),t),t.forEach((function(e){var t=e.id,o=e.permissions;n((0,u.SX)(t),o)}))}}),[]);(0,r.Z)((function(){return{key:"spaces",cache:!1,autorun:!!e,fetch:c.oq,association:{getIds:function(){return(0,d.st)("ids")},getError:function(){return(0,d.st)("error")},getLoaded:function(){return(0,d.st)("loaded")},getUpdatedAt:function(){return(0,d.st)("updatedAt")}},getResource:function(e){return(0,d.U7)({id:e})},onReceive:n,pollingOptions:{pollingInterval:412e3}}}),[!!e])}({isUserLoaded:n}),(0,m.Z)();var t=(0,Ye.c)().isIntegrationsPath,i=(0,d.Iw)(),p=(0,d.GM)("loaded"),g=(0,d.GM)("error"),f=(0,s.Iy)("isAnonymous");if(!n||!g&&!f&&!p)return o.createElement(h.Z,{title:"Loading your space..."});var b=i.length;if(g&&!b)throw g;return je.ZP||f||b?o.createElement(a.Flex,{overflow:"hidden",height:"100vh",width:"100vw"},o.createElement(o.Suspense,{fallback:o.createElement(ze,null)},o.createElement(Xe,null)),o.createElement(a.Flex,{column:!0,position:"relative",overflow:"hidden",flex:!0},!t&&o.createElement(Me,null),o.createElement(a.Flex,{column:!0,as:"main",background:"mainBackground",flex:!0,basis:"100%",height:"100%",overflow:"hidden"},o.createElement(o.Suspense,{fallback:o.createElement(h.Z,{title:"Loading your space..."})},o.createElement(Ke,null)))),o.createElement(o.Suspense,{fallback:""},o.createElement(Ze,null),o.createElement(We,null))):o.createElement(Ue,null)}},27622:function(e,n,t){var o=t(87462),i=t(67294),a=t(15557);n.Z=function(e){return i.createElement(a.Icon,(0,o.Z)({name:"netdataPress",color:"success",height:"32px",width:"32px"},e))}},34885:function(e,n,t){t.d(n,{Z:function(){return m}});var o=t(87462),i=t(45987),a=t(67294),s=t(4211),r=t(15557),l=function(){return a.createElement(r.Text,null,"Something went wrong during document parsing")},c=["transformConfiguration","validationConfig","validate","errorComponent","children"],d=function(e){return function(n){var t=n.transformConfiguration,r=void 0===t?{}:t,d=n.validationConfig,u=void 0===d?{}:d,m=n.validate,h=n.errorComponent,p=n.children,g=(0,i.Z)(n,c),f=function(e){var n=e.markdocContent,t=e.validate,o=e.validationConfig,i=e.transformConfiguration;return(0,a.useMemo)((function(){var e=s.ZP.parse("string"===typeof n?n:""),a=[];return t&&(a=s.ZP.validate(e,o)),{tree:a.length?null:s.ZP.transform(e,i),errors:a}}),[n,t,o,i])}({markdocContent:p,validate:m,validationConfig:u,transformConfiguration:r}),b=f.tree,y=f.errors,_=h&&"function"==typeof h?h:l;return y.length?a.createElement(_,{errors:y}):a.createElement(e,(0,o.Z)({tree:b},g))}},u=(0,a.memo)(d((function(e){var n=e.tree,t=e.renderConfiguration;return s.ZP.renderers.react(n,a,t)}))),m=(d((function(e){var n=e.tree;return s.ZP.renderers.html(n)})),u)},67622:function(e,n,t){t.d(n,{z:function(){return u}});var o=t(87462),i=t(45987),a=t(67294),s=t(60677),r=t(15557),l=t(89250),c=["disabled","children","Wrapper","textProps","to","onClick","testid","icon","iconHeight","iconWidth","iconColor","textColor","padding","margin","round","gap","actions","selected","loading","width","isSidebar","isSecondary"],d=function(e){return e?"selected":"borderSecondary"},u=(0,s.default)(r.Flex).withConfig({displayName:"item__PanelRowContainer",componentId:"sc-lf007z-0"})(["cursor:pointer;&:hover{background:",";}",""],(function(e){return(0,r.getColor)(d(e.isSidebar))(e)}),(function(e){return e.selected&&"background: ".concat((0,r.getColor)(d(e.isSidebar))(e),";")})),m=(0,s.default)(r.Icon).withConfig({displayName:"item__StyledIcon",componentId:"sc-lf007z-1"})(["flex:0 0 auto;"]),h=(0,s.default)(r.IconComponents.LoaderIcon).withConfig({displayName:"item__StyledLoaderIcon",componentId:"sc-lf007z-2"})(["flex:0 0 auto;height:16px;width:16px;"]),p=(0,a.forwardRef)((function(e,n){var t=e.disabled,s=e.children,d=e.Wrapper,p=void 0===d?r.Text:d,g=e.textProps,f=e.to,b=void 0===f?"":f,y=e.onClick,_=e.testid,w=e.icon,v=e.iconHeight,T=void 0===v?"16px":v,k=e.iconWidth,x=void 0===k?"16px":k,P=e.iconColor,C=void 0===P?"text":P,F=e.textColor,q=void 0===F?"text":F,S=e.padding,D=void 0===S?[2,4]:S,A=e.margin,M=void 0===A?[0]:A,N=e.round,H=void 0===N?0:N,E=e.gap,O=void 0===E?3:E,I=e.actions,R=e.selected,L=e.loading,B=e.width,U=void 0===B?"100%":B,j=e.isSidebar,G=void 0!==j&&j,z=e.isSecondary,Y=(0,i.Z)(e,c),X=(0,l.s0)(),Z=(0,a.useCallback)((function(){t||(y&&y(),b&&X(b))}),[y,t,b]),W=Y["data-ga"]||"";return a.createElement(u,(0,o.Z)({ref:n,flexWrap:!1,justifyContent:"between",alignItems:"center",padding:D,margin:M,round:H,onClick:Z,"data-testid":_,width:U,selected:R,disabled:t,isSidebar:G},W&&{"data-ga":W}),a.createElement(r.Flex,{alignItems:"center",gap:O,flex:!0,basis:""},L?a.createElement(h,null):"string"===typeof w?a.createElement(m,{name:w,disabled:t,color:C,height:T,width:x}):w,a.createElement(p,(0,o.Z)({opacity:t?"medium":void 0,width:"150px",color:q,italic:z},g),s)),I)}));n.Z=p},61458:function(e,n,t){t.d(n,{g:function(){return c}});var o=t(87462),i=t(45987),a=t(67294),s=t(60677),r=t(15557),l=["disabled","isOpen","toggleOpen","label","children","headerTestId","Header"],c=(0,s.default)(r.H4).attrs({padding:[0,2],background:"error"}).withConfig({displayName:"list__DefaultListHeader",componentId:"sc-5df7lw-0"})(["cursor:pointer;pointer-events:",";"],(function(e){return e.disabled?"none":"auto"})),d=function(e){var n=e.disabled,t=e.toggleOpen,o=e.label,i=e.testid,s=e.Header,r=void 0===s?c:s;return a.createElement(r,{"data-testid":i,onClick:t,opacity:n?"medium":void 0,disabled:n},o)};n.Z=function(e){var n=e.disabled,t=e.isOpen,s=void 0!==t&&t,c=e.toggleOpen,u=e.label,m=e.children,h=e.headerTestId,p=e.Header,g=(0,i.Z)(e,l);return a.createElement(r.Flex,(0,o.Z)({column:!0},g),a.createElement(d,{disabled:n,Header:p,toggleOpen:c,label:u,testid:h}),a.createElement(r.Collapsible,{open:s},m))}},83925:function(e,n,t){var o=t(87462),i=t(4942),a=t(45987),s=(t(92222),t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),r=t(15557),l=t(62200),c=t(82902),d=t(64637),u=["warningLevel","text","container","os","name","labels","version"];function m(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var h={warning:{icon:"warning_triangle_hollow",iconColor:"warning",flavour:"warning",hollow:"warning",reccomendedVersion:l.I3,warningText:"is below the latest stable agent version"},critical:{icon:"warning_triangle_hollow",iconColor:"error",flavour:"error",hollow:"error",reccomendedVersion:l._b,warningText:"is below the recommend agent version"}},p=function(e){var n=e.icon,t=e.iconColor,o=e.warningLevel,i=e.handeleNavigateToDocs,a=e.message;return s.createElement(r.Flex,{column:!0,width:{max:"200px"},gap:2},s.createElement(r.Flex,{alignItems:"center",gap:2},s.createElement(r.Icon,{name:n,color:t}),s.createElement(r.TextMicro,{color:"white"},(0,d.fm)(o))),s.createElement(r.Flex,{column:!0,gap:2},s.createElement(r.TextMicro,{color:"white"},a),s.createElement(r.TextMicro,{"data-testid":"text-agent-outdated-critical",color:"white"},s.createElement(r.Box,{"data-testid":"open-add-node",onClick:i,as:r.TextMicro,cursor:"pointer",textDecoration:"underline",color:"white"}," ","Please update them"," "),"to ensure you get the latest security bug fixes.")))};n.Z=function(e){var n=e.warningLevel,t=e.text,l=void 0===t?"Needs Update":t,g=e.container,f=e.os,b=e.name,y=e.labels,_=e.version,w=(0,a.Z)(e,u),v=h[n],T=v.icon,k=v.flavour,x=v.hollow,P=v.reccomendedVersion,C=v.iconColor,F=v.warningText,q=(0,s.useCallback)((function(){var e=(0,c.Ly)(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?m(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):m(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({container:g,os:f,version:_},y));window.open(e,"_blank","noopener,noreferrer")}),[g,f]),S="".concat(b," ").concat(F," ").concat(P);return s.createElement(r.Tooltip,{allowHoverOnTooltip:!0,content:s.createElement(p,{message:S,icon:T,iconColor:C,warningLevel:n,handeleNavigateToDocs:q})},s.createElement(r.Pill,(0,o.Z)({icon:T,flavour:k,hollow:x},w),(0,d.fm)(l)))}},11389:function(e,n,t){var o=t(67294),i=t(89050),a=t(62200),s=t(15557);n.Z=function(e){var n=e.state,t=e.rawState,r=t||(0,i.Q5)(n),l=a.WV[r.toLocaleLowerCase()],c=l.counterColor,d=l.indicatorWrapperColor;return o.createElement(s.Flex,{margin:[0,"auto",0,"auto"],width:20,height:"20px",padding:[.5,0],border:{side:"all",color:d},background:"nodeBadgeBackground",justifyContent:"center",round:4},o.createElement(s.TextMicro,{strong:!0,color:c},r))}},86711:function(e,n,t){var o=t(67294),i=t(15557);n.Z=function(){return o.createElement(i.Flex,{column:!0,width:{max:"200px"},gap:2},o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Live:")," ","Node is actual collecting and streaming metrics to Netdata"),o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Stale:")," ","Node is currently offline and not streaming metrics to Netdata. It can show historical data from a parent node"),o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Offline:")," ","Node is currently offline, not streaming metrics to Netdata and not available in any parent node"),o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Unseen:")," ","Nodes have never been connected to Netdata, they are claimed but no successful connection was established"))}},91268:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=["children","rightBar"],l=(0,a.forwardRef)((function(e,n){var t=e.children,l=e.rightBar,c=void 0===l?null:l,d=(0,i.Z)(e,r);return a.createElement(s.Flex,{id:"main",height:"100%",width:"100%"},a.createElement(s.Flex,(0,o.Z)({column:!0,overflow:"hidden",width:"100%"},d,{ref:n}),t),c)}));n.Z=l},97346:function(e,n,t){var o=t(33335);n.Z=function(e){var n=e.permission,t=e.spaceId,i=e.children;return(0,o.gI)(n,t)?i:null}},14428:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=t(33335),l=["ifForbidden","permission","spaceId"],c=(0,a.forwardRef)((function(e,n){var t=e.ifForbidden,c=void 0===t?"disabled":t,d=e.permission,u=e.spaceId,m=(0,i.Z)(e,l),h=(0,r.gI)(d,u);return"hide"!==c||h?a.createElement(s.Button,(0,o.Z)({ref:n,disabled:"disabled"===c&&!h||m.disabled},m)):null}));n.Z=c},15418:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(33335),r=["Component","ifForbidden","permission","children","spaceId"];n.Z=function(e){var n=e.Component,t=e.ifForbidden,l=void 0===t?"disabled":t,c=e.permission,d=e.children,u=e.spaceId,m=(0,i.Z)(e,r),h=(0,s.gI)(c,u);return"hide"!==l||h?"function"===typeof d?d(h):n?a.createElement(n,(0,o.Z)({},m,{disabled:"disabled"===l&&!h||m.disabled})):d:null}},37689:function(e,n,t){t.d(n,{Z:function(){return d}});var o=t(87462),i=t(45987),a=t(67294),s=t(60677),r=t(15557),l=(0,s.default)(r.TextInput).withConfig({displayName:"searchInput__SearchInput",componentId:"sc-1x493x7-0"})(["& input{background:transparent;}& > label{margin-bottom:0;}"]),c=["value","onChange"],d=(0,a.forwardRef)((function(e,n){var t=e.value,s=e.onChange,r=(0,i.Z)(e,c);return a.createElement(l,(0,o.Z)({inputRef:n,value:t,onChange:s,placeholder:"Search",name:"search",metaShrinked:!0},r))}))},7693:function(e,n,t){t.d(n,{A:function(){return l},x:function(){return c}});var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=["children","isSubmodal","onClose","title"],l=14,c=function(e){var n=e.children,t=e.isSubmodal,c=e.onClose,d=e.title,u=(0,i.Z)(e,r);return a.createElement(s.Flex,{justifyContent:"between",background:"modalHeaderBackground",alignItems:"center",padding:[0,4]},a.createElement(s.Flex,{alignItems:"center",height:l},a.createElement(s.Button,{neutral:!0,flavour:"borderless",icon:t?"chevron_left":"x",onClick:c,"data-testid":"sidebarModalHeader_".concat(t?"chevron_left":"close_button")}),a.createElement(s.H4,(0,o.Z)({color:"text"},u),d)),n)}},16645:function(e,n,t){t.d(n,{TZ:function(){return d},ZW:function(){return u},oU:function(){return c},u6:function(){return l}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(60677),a=t(15557),s=t(7693);function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var l=(0,i.default)(a.PortalSidebar).withConfig({displayName:"sidebar__SidebarModal",componentId:"sc-tmwerm-0"})(["z-index:35;background:",";width:50%;max-width:",";overflow:",";"],(0,a.getColor)("mainBackground"),(0,a.getSizeBy)(90),(function(e){var n=e.overflow;return void 0===n?"hidden":n})),c=(0,i.default)(a.PortalSidebar).withConfig({displayName:"sidebar__FullModal",componentId:"sc-tmwerm-1"})(["z-index:35;background:",";width:100%;overflow:",";"],(0,a.getColor)("mainBackground"),(function(e){var n=e.overflow;return void 0===n?"hidden":n})),d=(0,i.default)(a.Flex).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({column:!0,background:"mainBackground",width:"100%",padding:[4,4,8]},e)})).withConfig({displayName:"sidebar__SidebarContent",componentId:"sc-tmwerm-2"})(["overflow:",";height:calc( 100vh - "," );"],(function(e){var n=e.overflow;return void 0===n?"auto":n}),(function(e){var n=e.hasFooter,t=e.hasModalTitle,o=void 0===t||t?s.A:0;return(0,a.getSizeBy)(n?(s.A+o+20)/2:(s.A+o)/2)})),u=(0,i.default)(a.Flex).attrs({height:20,justifyContent:"end",alignItems:"center",padding:[3],background:"mainBackground",border:{side:"top",color:"borderSecondary"}}).withConfig({displayName:"sidebar__SidebarFooter",componentId:"sc-tmwerm-3"})([""])},73256:function(e,n,t){t.d(n,{G:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(60677),a=t(15557);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var r=(0,i.default)(a.Flex).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({padding:[4,6,0],width:"100%",background:"modalTabsBackground"},e)})).withConfig({displayName:"tabs__TabHeader",componentId:"sc-1ramyo4-0"})([""])},92903:function(e,n,t){t.d(n,{B:function(){return l}});var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=["children"],l=function(e){var n=e.children,t=(0,i.Z)(e,r);return a.createElement(s.Flex,(0,o.Z)({justifyContent:"between",background:"elementBackground",alignItems:"center",padding:[4,6]},t),a.createElement(s.H3,null,n))}},81488:function(e,n,t){var o=t(29439),i=t(67294),a=t(43337),s=t(15557),r=t(15794),l=t(20709);n.Z=function(e){var n=e.text,t=e.updatedAt,c=e.error,d=(0,i.useState)(),u=(0,o.Z)(d,2)[1],m=function(e){if(!e)return"";var n=new Date(e);return n.getTime()?(0,l.Z)(n,new Date):""}(t);return(0,a.Z)((function(){return u(Math.random())}),1e3),i.createElement(r.Z,{theme:"dark"},i.createElement(s.Flex,{column:!0,gap:3},i.createElement(s.TextSmall,{color:"key"},n),c&&i.createElement(s.Flex,{alignItems:"center",gap:2},i.createElement(s.Icon,{width:14,height:12,color:"text",name:"warning_triangle"}),i.createElement(s.TextSmall,null,"Error: ",m?"Data not updated":"No data")),m&&i.createElement(s.TextMicro,null,i.createElement(s.TextMicro,{color:"key"},"Last updated: "),m)))}},90025:function(e,n,t){var o=t(87462),i=t(4942),a=(t(21249),t(57640),t(9924),t(57327),t(41539),t(88449),t(2490),t(59849),t(26699),t(32023),t(47941),t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),s=t(15557),r=t(95383);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var c={closeMenuOnSelect:!1,backspaceRemovesValue:!1,isClearable:!1,blurInputOnSelect:!0,captureMenuScroll:!0,isMulti:!0};n.Z=function(e){var n=e.selectedValue,t=e.onChange,d=e.formatOptions,u=e.filterValues,m=e.placeholder,h=void 0===m?"search...":m,p=(0,r.J7)(),g=(0,a.useMemo)((function(){return p.map((function(e){var n=e.id,t=e.name;return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({label:t,value:n},d&&d({id:n,name:t}))}))}),[p,d]),f=(0,a.useMemo)((function(){return g.filter((function(e){var t=e.label,o=e.value;return n.includes(o)||u&&u({label:t,value:o})}))}),[g,n,u]),b=(0,a.useCallback)((function(e){var n=e.map((function(e){return e.value}));t(n)}),[t]);return a.createElement(s.Select,(0,o.Z)({placeholder:h},c,{options:g,value:f,onChange:b}))}},88866:function(e,n,t){t.d(n,{V:function(){return r},_:function(){return l}});var o=t(4942);t(85827),t(41539),t(25387),t(2490),t(72608),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var s=[{iconName:"osAlpineLinux",logoFilename:"alpine.svg",name:"alpine",osNames:["Alpine Linux"],title:"Alpine Linux"},{iconName:"osAmazonLinux",logoFilename:"linux.svg",name:"linux",osNames:["Amazon Linux","Amazon Linux AMI"],title:"Amazon Linux"},{iconName:"osArchLinux",logoFilename:"arch.svg",name:"archarm",osNames:["Archcraft","Arch Linux","Arch Linux 32","Arch Linux ARM","ArchLabs","ArchLinux"],title:"Arch Linux"},{iconName:"osCentos",logoFilename:"centos.svg",name:"centos",osNames:["CentOS","CentOS Linux","CentOS Stream"],title:"CentOS"},{iconName:"osCoreOS",logoFilename:"coreos.svg",name:"coreos",osNames:["Container Linux by CoreOS"],title:"CoreOS"},{iconName:"osDebian",logoFilename:"debian.svg",name:"debian",osNames:["Debian GNU/Linux"],title:"Debian"},{iconName:"osFedora",logoFilename:"fedora.svg",name:"fedora",osNames:["Fedora","Fedora Linux","Fedora Remix for WSL"],title:"Fedora"},{iconName:"osFreeBSD",logoFilename:"freebsd.svg",name:"freebsd",osNames:["FreeBSD"],title:"FreeBSD"},{iconName:"serviceFreeNAS",logoFilename:"freenas.svg",name:"freenas",osNames:[],title:"FreeNAS"},{iconName:"osGentoo",logoFilename:"gentoo.svg",name:"gentoo",osNames:["Gentoo"],title:"Gentoo"},{iconName:"serviceKubernetes",logoFilename:"kubernetes.svg",name:"kubernetes",osNames:[],title:"Kubernetes"},{iconName:"osLinux",logoFilename:"linux.svg",name:"linux",osNames:[],title:"Linux"},{iconName:"osMacOSX",logoFilename:"macos.svg",name:"macos",osNames:["mac"],title:"MacOS"},{iconName:"osMacOSX",logoFilename:"macos.svg",name:"mac",osNames:["mac"],title:"MacOS"},{iconName:"osLinuxManjaro",logoFilename:"manjaro.svg",name:"manjaro",osNames:["Manjaro Linux","Manjaro-ARM"],title:"Manjaro"},{iconName:"serviceOpenStack",logoFilename:"openstack.svg",name:"openstack",osNames:[],title:"OpenStack"},{iconName:"osSuseLinux",logoFilename:"opensuse.svg",name:"opensuse",osNames:["openSUSE","openSUSE Leap","openSUSE Leap Micro","openSUSE MicroOS","openSUSE Tumbleweed"],title:"Open Suse"},{iconName:"serviceOpenWrt",logoFilename:"openwrt.svg",name:"openwrt",osNames:["OpenWrt"],title:"OpenWRT"},{iconName:"osOracle",logoFilename:"oracle.svg",name:"oracle",osNames:["Oracle Linux Server"],title:"Oracle Linux"},{iconName:"servicePfSense",logoFilename:"pfsense.svg",name:"pfsense",osNames:[],title:"PFSense"},{logoFilename:"raspberry-pi.svg",name:"raspberry-pi",osNames:[],title:"Raspberry PI"},{iconName:"osRaspbian",name:"raspbian",osNames:["Raspbian","Raspbian GNU/Linux"],title:"Raspbian"},{iconName:"osRedHat",logoFilename:"redhat.svg",name:"redhat",osNames:["Red Hat Enterprise Linux","Red Hat Enterprise Linux Server","Red Hat Enterprise Linux Workstation","RedHatEnterpriseServer"],title:"Red Hat Enterprise Linux"},{iconName:"osSuseLinux",logoFilename:"suse.svg",name:"suse",osNames:[],title:"Suse"},{iconName:"osUbuntu",logoFilename:"ubuntu.svg",name:"ubuntu",osNames:["Ubuntu","Ubuntu Core"],title:"Ubuntu"}],r=s.reduce((function(e,n){return a(a({},e),{},(0,o.Z)({},n.name,n))}),{}),l=s.reduce((function(e,n){return a(a({},e),n.osNames.reduce((function(e,t){return a(a({},e),{},(0,o.Z)({},t,n))}),{}))}),{})},15257:function(e,n,t){t.d(n,{Z:function(){return S}});var o=t(87462),i=t(45987),a=t(29439),s=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(60677)),r=t(67294),l=t(15557),c=t(15794),d=s.default.div.withConfig({displayName:"styled__Divider",componentId:"sc-14bbmjw-0"})(["background:",";height:1px;width:auto;margin:"," ",";"],(0,l.getColor)("disabled"),(0,l.getSizeBy)(1),(0,l.getSizeBy)(2)),u=t(67622),m=t(31203),h=t(46667),p=t(13477),g=t(1043),f=t(83356),b=(t(88674),t(17727),t(16645)),y=t(7693),_=t(73256),w=t(57683),v={flex:!0},T=function(e){var n=e.onClose,t=(0,r.useState)(!1),i=(0,a.Z)(t,2),s=i[0],c=i[1],d=(0,r.useState)(!1),u=(0,a.Z)(d,2),m=u[0],h=u[1],g=(0,r.useState)({}),f=(0,a.Z)(g,2),T=f[0],k=f[1],x=(0,w.Z)(),P=x.handleChangeTab,C=x.activeTabIndex,F=x.tabsByName,q=x.tabs,S=(0,p.oH)(void 0,{shouldPersist:!0,onSuccess:n}),D=(0,r.useCallback)((function(){c(!0),S(T).finally((function(){return c(!1)}))}),[T]),A=(0,r.useMemo)((function(){return q.map((function(e){var t=F[e],i=t.label,a=t.testId,s=t.Component;return r.createElement(l.Tab,{key:e,label:i,"data-testid":"userProfileModal-".concat(a)},r.createElement(s,(0,o.Z)({},"profile"===e&&{setFormState:k,setFormValid:h},{onClose:n})))}))}),[q]);return r.createElement(b.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},r.createElement(y.x,{onClose:n,title:"Settings"},"profile"===q[C]&&r.createElement(l.Button,{disabled:!m,label:"Save",onClick:D,isLoading:s,loadingLabel:"saving..."})),r.createElement(l.Tabs,{selected:C,onChange:P,TabContent:b.TZ,TabsHeader:_.G,tabsProps:v},A))},k=t(82351),x=(0,s.default)(l.Flex).attrs({column:!0,round:1}).withConfig({displayName:"dropdown__Dropdown",componentId:"sc-w0ej6i-0"})(["box-shadow:0 4px 4px rgba(0,0,0,0.25);"]),P=t(78710),C=["hasSeparator","name"],F={"Operational Status":function(){return!0},"Sign In":function(e){var n=e.isAgent,t=e.isAnonymous;return!n&&t},Settings:function(e){var n=e.isAgent,t=e.isAnonymous;return n||!t},"Sign Out":function(e){return!e.isAnonymous}},q=(0,s.default)(l.Button).withConfig({displayName:"userControl__SignInButton",componentId:"sc-n4ebn8-0"})(["&&{> .button-icon{width:24px;height:24px;}}"]),S=function(e){var n=e.dropdownBackground,t=void 0===n?"dropdown":n,s=(0,p.Iy)("avatarURL"),b=(0,p.Iy)("isAnonymous"),y=(0,h.Z)(),_=(0,a.Z)(y,4),v=_[0],S=_[2],D=_[3],A=(0,r.useCallback)((function(){window.open("https://status.netdata.cloud","_blank")}),[]),M=(0,g.UQ)(),N=(0,f.Z)(),H=(0,w.Z)(),E=H.handleOpenProfileModal,O=H.handleCloseProfileModal,I=H.isProfileModalOpen,R=(0,r.useMemo)((function(){return[{name:"Settings",onClick:E,hasSeparator:!1,testid:"userControl-settings"},{name:"Operational Status",onClick:A,hasSeparator:!1,testid:"userControl-operationalStatus"},{name:"Sign In",onClick:N,hasSeparator:!0,testid:"userControl-signOut"},{name:"Sign Out",onClick:M,hasSeparator:!0,testid:"userControl-signOut"}].filter((function(e){return F[e.name]({isAgent:P.ZP,isAnonymous:b})}))}),[b,P.ZP]);return r.createElement(c.Z,null,r.createElement(k.Z,!b&&{content:"Edit your account settings and manage your notifications",align:"right"},!P.ZP&&b?r.createElement(k.Z,{content:"Sign In",align:"right"},r.createElement(q,{small:!0,icon:"sign_in",onClick:S,"data-ga":"sidebar-sign-in::click-dropdown::global-view","data-testid":"sign-in-dropdown",iconSize:"medium",margin:[0,0,2]})):r.createElement(m.Z,{src:s||"","data-testid":"userControl-userAvatar",onClick:S})),v&&r.createElement(l.Layer,{margin:[5,17],position:"bottom-left",onClickOutside:D,onEsc:D},r.createElement(x,{background:t,padding:[2]},R.map((function(e){var n=e.hasSeparator,t=e.name,a=(0,i.Z)(e,C);return r.createElement(r.Fragment,{key:t},n&&r.createElement(d,{key:"".concat(t,"-itemSeparator")}),r.createElement(u.Z,(0,o.Z)({key:t,round:1},a),t))})))),I&&r.createElement(T,{onClose:O}))}},16772:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=["onChange","value","onKeyDown","label"];n.Z=function(e){var n=e.onChange,t=e.value,l=e.onKeyDown,c=e.label,d=(0,i.Z)(e,r);return a.createElement(s.TextInput,(0,o.Z)({label:c,name:"userEmail",placeholder:"Enter an email address",value:t,onChange:n,onKeyDown:l},d))}},57683:function(e,n,t){t.d(n,{Z:function(){return mn}});var o=t(29439),i=(t(57327),t(41539),t(88449),t(2490),t(59849),t(47941),t(26699),t(32023),t(67294)),a=t(65351),s=t(13477),r=t(15557),l=t(30688),c=t(31203),d=t(1043),u=t(46667),m=t(87462),h=t(93433),p=t(45987),g=(t(92222),t(71752)),f=["value","isValid","setIsValid","onChange","label","validators","fieldMessage"],b="User name cannot exceed ".concat(40," characters"),y=function(e){var n=e.length<=40;return(0,l.f)(n,b)},_=function(e){var n=e.value,t=e.isValid,a=e.setIsValid,s=e.onChange,c=e.label,d=e.validators,u=void 0===d?[]:d,b=e.fieldMessage,_=(0,p.Z)(e,f),w=(0,l.A)([y].concat((0,h.Z)(u))),v=(0,i.useState)(""),T=(0,o.Z)(v,2),k=T[0],x=T[1];return(0,i.useEffect)((function(){var e=w(n),o=e.isValid,i=(0,g.T)(e);!t&&o?a(!0):t&&!o&&a(!1),x(i||"")}),[t,n]),i.createElement(r.TextInput,(0,m.Z)({label:c||" ",name:"userName",placeholder:"Enter the user's name",value:n,onChange:s,fieldMessage:b,error:!t&&k},_))},w=t(16772),v=t(46715),T=t(74059),k=t(94666),x=t(72671),P=t(60677),C=(0,P.default)(r.Text).withConfig({displayName:"styled__Label",componentId:"sc-anprf9-0"})(["height:",";font-weight:bold;display:flex;align-items:center;margin-bottom:",";"],(0,r.getSizeBy)(3),(0,r.getSizeBy)(3)),F=P.default.div.withConfig({displayName:"styled__AvatarBlock",componentId:"sc-anprf9-1"})(["height:",";display:flex;margin-bottom:",";"],(0,r.getSizeBy)(10),(0,r.getSizeBy)(4)),q=(P.default.div.withConfig({displayName:"styled__GravatarInfo",componentId:"sc-anprf9-2"})(["padding:0 ",";display:flex;flex-direction:column;justify-content:center;"],(0,r.getSizeBy)(2)),(0,P.default)(r.TextSmall).withConfig({displayName:"styled__StyledTextSmall",componentId:"sc-anprf9-3"})(["margin-bottom:",";"],(0,r.getSizeBy)(2)),(0,P.default)(r.TextNano).withConfig({displayName:"styled__StyledTextNano",componentId:"sc-anprf9-4"})(["color:",";"],(0,r.getColor)("textFocus")),P.default.div.withConfig({displayName:"styled__RadioRow",componentId:"sc-anprf9-5"})(["display:flex;flex-flow:row nowrap;align-items:center;padding:0 0 "," ",";"],(0,r.getSizeBy)(2),(0,r.getSizeBy)(1))),S=P.default.section.withConfig({displayName:"styled__StyledSection",componentId:"sc-anprf9-6"})(["display:flex;margin-top:auto;justify-content:flex-end;"]),D=[function(e){return(0,l.f)(!!e,"Name should not be empty")}],A=function(){},M=(0,x.F)((function(e){var n=e.isLastMember,t=e.spaceName,o=e.children;return i.createElement(r.Flex,{column:!0,gap:2},i.createElement(r.Text,null,"You are about to delete your account at ",i.createElement("strong",null,"Netdata"),". All data related to your account will be deleted."),n&&i.createElement(i.Fragment,null,i.createElement(r.Text,null,i.createElement(r.Text,{strong:!0},t)," space will be deleted since you are the last member."),o),i.createElement(r.Text,null,"This cannot be undone. Are you sure you want to continue?"))})),N=function(e){var n=e.setFormValid,t=e.setFormState,a=(0,s.Iy)("name"),l=(0,r.useInputValue)({value:a,maxChars:40}),m=(0,o.Z)(l,4),h=m[0],p=m[1],g=m[2],f=m[3],b=(0,i.useState)(!1),y=(0,o.Z)(b,2),x=y[0],P=y[1],q=(0,u.Z)(),N=(0,o.Z)(q,4),H=N[0],E=N[2],O=N[3],I=(0,u.Z)(),R=(0,o.Z)(I,2),L=R[0],B=R[1],U=(0,v.RP)().value,j=(0,T.OS)(),G=1===(0,k.H4)().length,z=(0,s.Iy)("email"),Y=(0,s.Iy)("avatarURL");(0,i.useEffect)((function(){f&&n(x)}),[f,x]),(0,i.useEffect)((function(){t({name:h})}),[h]);var X=(0,d.R2)();return i.createElement(i.Fragment,null,i.createElement(C,{"data-testid":"userProfile-label"},"Photo"),i.createElement(F,{"data-testid":"userProfile-avatarSection"},i.createElement(c.Z,{src:Y||"","data-testid":"userProfile-avatar",width:24,height:24})),i.createElement(_,{"data-testid":"userProfile-username",value:h,label:"Name",onChange:p,isValid:x,setIsValid:P,validators:D,fieldIndicator:g,instantFeedback:"positiveFirst",isDirty:f}),i.createElement(w.Z,{"data-testid":"userProfile-email",label:"Email",disabled:!0,value:z,onChange:A}),i.createElement(S,{"data-testid":"userProfile-actions"},i.createElement(r.Button,{danger:!0,onClick:E,label:"Delete account","data-ga":"user-profile-settings::click-delete::global-view","data-testid":"userProfile-deleteAccount-button"}),H&&i.createElement(r.ConfirmationDialog,{confirmLabel:L?"Deleting...":"Yes, delete","data-ga":"delete-account-dialog","data-testid":"deleteAccountDialog",handleConfirm:function(){B(),X()},handleDecline:O,message:i.createElement(M,{isLastMember:G,spaceName:j.name,currentPlan:U}),title:"Delete Account",isConfirmDisabled:L,isConfirmLoading:L,isDeclineDisabled:L})))},H=t(91008),E=function(e){var n=e.gaPrefix,t=void 0===n?"cookie-consent":n,o=e.gaView,a=void 0===o?"global-view":o,s=e.testPrefix,l=void 0===s?"cookieConsent":s;return i.createElement(r.TextSmall,{"data-testid":"".concat(l,"-description")},"This website stores cookies on your computer. These cookies are used to collect information about how you interact with our website and allow us to remember you. We use this information to improve and customize your browsing experience and for analytics and metrics about our visitors on this website and other media. To find out more about the cookies we use, see Netdata's"," ",i.createElement(H.Z,{alignSelf:"start",Component:r.TextSmall,"data-ga":"".concat(t,"::click-policy-link::").concat(a),"data-testid":"".concat(l,"-policyLink"),href:"https://netdata.cloud/privacy",rel:"noopener noreferer",target:"_blank"},"Privacy Policy"),".")},O=t(4942),I=(t(15581),t(34514),t(54747),t(39714),t(21249),t(57640),t(9924),t(26833),t(82526),t(41817),t(38880),t(49337),t(33321),t(69070),t(92432)),R=t(80606),L=t(78401),B=t(52971),U=t(85456),j=(0,P.default)(r.Button).attrs({textTransform:"none",width:"auto"}).withConfig({displayName:"styled__Action",componentId:"sc-aj53iu-0"})(["&&{height:36px;","}"],(function(e){return e.isBanner&&"\n border-width: 0;\n \n > span {\n align-items: center;\n display: flex;\n }\n "}));(0,P.default)(r.Box).withConfig({displayName:"styled__AppContainer",componentId:"sc-aj53iu-1"})(["backdrop-filter:blur(2.5px);background-color:rgba(255,255,255,0.7);inset:0;pointer-events:all;position:absolute;z-index:10;"]),(0,P.default)(r.Icon).attrs({color:"primary",name:"chevron_down_thin"}).withConfig({displayName:"styled__ArrowIcon",componentId:"sc-aj53iu-2"})(["",";"],(function(e){return e.isOpen&&"transform: rotate(180deg);"})),(0,P.default)(r.Box).attrs({background:"bright",border:{color:"borderSecondary",side:"top"},width:"100%"}).withConfig({displayName:"styled__BannerContainer",componentId:"sc-aj53iu-3"})(["bottom:0;position:absolute;"]);function G(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?G(Object(t),!0).forEach((function(n){(0,O.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):G(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var Y=function(e){var n=e.gaPrefix,t=void 0===n?"cookie-consent":n,a=e.gaView,l=void 0===a?"global-view":a,c=e.onClick,d=void 0===c?function(){}:c,u=e.testPrefix,m=void 0===u?"cookieConsent":u,h=(0,s.Iy)("id"),p=(0,i.useState)(U.lF),g=(0,o.Z)(p,2),f=g[0],b=g[1],y=(0,R.F)(),_=(0,o.Z)(y,2)[1],w=function(e){return function(n){var t=n.target;b((function(n){return z(z({},n),{},(0,O.Z)({},e,t.checked))}))}};return i.createElement(r.Flex,{column:!0,"data-testid":"".concat(m,"-preferences"),gap:3},Object.values(B.Ew).map((function(e){var n=e.defaultValue,o=e.description,a=e.disabled,s=e.ga,c=e.id,d=e.title;return i.createElement(r.Flex,{column:!0,"data-testid":"".concat(m,"-").concat(c),gap:1,key:c},i.createElement(r.Flex,{alignItems:"center","data-testid":"".concat(c,"-actionRow"),justifyContent:"between"},i.createElement(r.Flex,{alignItems:"baseline","data-testid":"".concat(c,"-titleContainer")},i.createElement(r.Text,{color:"main","data-testid":"".concat(c,"-title")},d),a&&i.createElement(i.Fragment,null,"\xa0",i.createElement(r.TextSmall,{color:"main","data-testid":"".concat(c,"-statusDescription")},"(always ",B.pD[n],")"))),i.createElement(r.Toggle,{colored:!0,"data-ga":"".concat(t,"::click-").concat(s,"-switch::").concat(l,"::").concat(f[c]?"enabled":"disabled"),"data-testid":"".concat(c,"-switch"),checked:f[c],disabled:a,onChange:w(c)})),i.createElement(r.TextSmall,{color:"textLite","data-testid":"".concat(c,"-description")},o))})),i.createElement(j,{alignSelf:"end","data-ga":"".concat(t,"::click-save-preferences::").concat(l),"data-testid":"".concat(m,"-savePreferences"),disabled:(0,U.fY)(f),flavour:"hollow",label:"Save preferences",onClick:function(){var e=[],n={};Object.keys(f).forEach((function(t){var o=f[t]?B.Ci.granted:B.Ci.denied;e.push("".concat(B.Ew[t].eventName,"=").concat(f[t].toString())),(0,U.ej)(t)!==o&&(B.Ew[t].gmtKeys.forEach((function(e){n[e]=o})),f[t]?B.Ew[t].handleAccept():B.Ew[t].handleDeny(),(0,U.d8)(t,(0,U.ow)(1),o))})),_((0,L.O)()),(0,U.v)(n),(0,I.L)("cookie-consent","save-preferences",e.join(","),h,"","cookie-consent-save-preferences"),d()},padding:[2,4]}))},X=function(e){var n=e.onClose;return i.createElement(r.Flex,{column:!0,"data-testid":"manageCookies",gap:3},i.createElement(E,{gaPrefix:"manage-cookies",testPrefix:"manageCookies"}),i.createElement(Y,{gaPrefix:"manage-cookies",onClick:n,testPrefix:"manageCookies"}))},Z=t(33937),W=function(){var e=(0,Z.k)("theme"),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,i.useCallback)((function(e){return a(e.target.value)}),[]);return i.createElement(i.Fragment,null,i.createElement(C,null,"Netdata Theme"),i.createElement(q,null,i.createElement(r.RadioButton,{label:"Light Theme",checked:"light"===t,onChange:s,value:"light"})),i.createElement(q,null,i.createElement(r.RadioButton,{label:"Dark Theme",checked:"light"!==t,onChange:s,value:"dark"})))},K=t(82351),$=t(93017),V=t(15861),J=t(64687),Q=t.n(J),ee=(t(73210),function(e){var n=e.onCloseModal,t=e.onCreate,a=(0,i.useState)(""),s=(0,o.Z)(a,2),l=s[0],c=s[1];return i.createElement(r.ModalContent,null,i.createElement(r.ModalHeader,null,"Create New Token",i.createElement(r.ModalCloseButton,{testId:"close-button",onClose:n})),i.createElement(r.ModalBody,null,i.createElement(r.Flex,{height:10,width:80},i.createElement(r.TextInput,{"data-testid":"description",placeholder:"Enter Description",onChange:function(e){var n=e.target;return c(n.value)},value:l}))),i.createElement(r.ModalFooter,null,i.createElement(r.Button,{disabled:""===l.trim(),label:"Create",onClick:function(){return t(l)},"data-testid":"btn-create"})))}),ne=P.default.div.withConfig({displayName:"styled__TokenContainer",componentId:"sc-s1axew-0"})(["display:flex;flex-direction:column;align-items:center;color:",";background:",";border:1px solid ",';border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;padding:23px 27px 14px;width:100%;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,r.getColor)("textDescription"),(0,r.getColor)("modalTabsBackground"),(0,r.getColor)("borderSecondary")),te=function(e){return i.createElement(r.Box,(0,m.Z)({},e,{as:r.Icon,sx:{borderRadius:"50%",overflow:"hidden",background:(0,r.getColor)(["neutral","white"])}}))},oe=function(e){return i.createElement(r.Text,(0,m.Z)({},e,{color:["neutral","bluebayoux"]}))},ie=function(e){return i.createElement(r.Flex,(0,m.Z)({},e,{as:r.Icon,sx:{alignSelf:"flex-end",cursor:"pointer"}}))},ae=t(58206),se=t(55678),re=t(74855);function le(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function ce(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?le(Object(t),!0).forEach((function(n){(0,O.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):le(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var de=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){(0,ae.Z)(e);var t=(0,re.sc)(ce(ce({},ce({header:"Copied",text:"Token copied to your clipboard!",icon:"gear"},n)),{},{success:!0}));se.Am.success(t,{context:"copy"})}},ue=function(e){var n=e.onCloseModal,t=e.token;return i.createElement(r.ModalContent,null,i.createElement(r.ModalHeader,null,"Token Generated",i.createElement(r.ModalCloseButton,{testId:"close-button",onClose:n})),i.createElement(r.ModalBody,null,i.createElement(r.Flex,{column:!0,gap:4},i.createElement(ne,null,i.createElement("span",{"data-testid":"token"},t),i.createElement(ie,{name:"copy",size:"small",color:"primary",onClick:de(t),"data-ga":"profile::click-copytoken::all-pages::api-token"})),i.createElement(r.Flex,{alignItems:"center",background:"warningBackground",gap:4,padding:[3,3],round:!0},i.createElement(te,{"data-testid":"noNodesView-warningBannerIcon",name:"exclamation",color:"warning"}),i.createElement(oe,{"data-testid":"warning-message"},"Make sure to copy or store this token and add it where you need it. Once you close this modal you will not be able to retrieve it again.")))),i.createElement(r.ModalFooter,null,i.createElement(r.Button,{label:"Close",onClick:n})))},me=t(26398),he=function(e){var n=e.description,t=e.scopes;return me.Z.post("/api/v1/auth/account/api-token",{description:n,scopes:t})},pe=function(e){return me.Z.delete("/api/v1/auth/account/api-token/".concat(e))},ge=function(e){var n=e.onCloseModal,t=e.onTokenCreated,a=e.view,s=e.token,l=(0,i.useState)(a),c=(0,o.Z)(l,2),d=c[0],u=c[1],m=(0,i.useState)(s),h=(0,o.Z)(m,2),p=h[0],g=h[1],f=function(){var e=(0,V.Z)(Q().mark((function e(n){var o;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,he({description:n});case 2:o=e.sent,(0,I.L)("api-token","create-token","profile",n),g(o.data.token),u("CopyTokenView"),t();case 7:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}();return i.createElement(r.Modal,null,"CreateView"===d&&i.createElement(ee,{"data-testid":"create-view",onCloseModal:n,onCreate:f}),"CopyTokenView"===d&&p&&i.createElement(ue,{onCloseModal:n,token:p}))},fe=t(49546);function be(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function ye(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?be(Object(t),!0).forEach((function(n){(0,O.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):be(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var _e=function(){var e=(0,i.useState)([]),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,u.Z)(!0),r=(0,o.Z)(s,4),l=r[0],c=r[2],d=r[3],m=function(){var e=(0,V.Z)(Q().mark((function e(){var n;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c(),e.next=3,me.Z.get("/api/v1/auth/account/api-token");case 3:n=e.sent,d(),a(n.data.map((function(e){return ye(ye({},e),{},{created_at:e.created_at?(0,fe.default)(new Date(e.created_at),"dd/MM/yyyy"):null,last_used_at:e.last_used_at?(0,fe.default)(new Date(e.last_used_at),"dd/MM/yyyy"):null})})));case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,i.useEffect)((function(){m()}),[]),{isLoading:l,data:t,setData:a,fetchData:m}},we=[{id:"description",header:"Description",size:250,minSize:60,meta:{cellStyles:{sx:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}}},cell:function(e){var n=e.getValue;return i.createElement(K.Z,{plain:!0,content:n()||"",isBasic:!0},i.createElement(r.Text,{whiteSpace:"nowrap",truncate:!0},n()||""))}},{id:"created_at",header:"Created at",size:90,minSize:90,cell:function(e){return(0,e.getValue)()||"-"}},{id:"last_used_at",header:"Used at",size:90,minSize:90,cell:function(e){return(0,e.getValue)()||"-"}},{id:"ends_with",header:"Token",size:90,minSize:90,cell:function(e){var n=e.getValue;return i.createElement(i.Fragment,null,i.createElement(r.Text,{style:{verticalAlign:"sub"}},"******"),n())}}],ve=function(){var e=(0,i.useState)(!1),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,i.useState)(!1),l=(0,o.Z)(s,2),c=l[0],d=l[1],u=(0,i.useState)(null),m=(0,o.Z)(u,2),h=m[0],p=m[1],g=_e(),f=g.data,b=g.setData,y=g.fetchData,_=(0,i.useMemo)((function(){return{addEntry:{handleAction:function(){return a(!0)},tooltipText:"Create new token"}}}),[]),w=(0,$.Z)(),v=(0,o.Z)(w,2)[1],T=(0,i.useMemo)((function(){return{delete:{handleAction:function(e){var n=e.id;pe(n).then((function(){b((function(e){return e.filter((function(e){return e.id!==n}))})),(0,I.L)("api-token","delete-token","profile")})).catch(v)},confirmationTitle:"Delete API Token",confirmationMessage:"You are about to delete API Token, are you sure you want to continue?"}}}),[f]);return i.createElement(i.Fragment,null,i.createElement(r.NetdataTable,{dataColumns:we,data:f,bulkActions:_,rowActions:T}),t&&i.createElement(ge,{view:"CreateView",onCloseModal:function(){return a(!1)},onTokenCreated:y}),c&&i.createElement(ge,{view:"CopyTokenView",onCloseModal:function(){d(!1),p(null)},token:h}))},Te=t(3528),ke=t(72437),xe=t(50308),Pe=t.n(xe),Ce=["disabledInfo"],Fe=["title","description","label","checked","onChange"],qe=function(e){var n,t=e.title,o=void 0===t?"":t,a=e.description,s=void 0===a?"":a,l=e.label,c=void 0===l?"":l,d=e.checked,u=e.onChange,h=void 0===u?Pe():u,g=(0,p.Z)(e,Fe),f=(n=r.Toggle,function(e){var t=e.disabledInfo,o=void 0===t?"This setting is disabled":t,a=(0,p.Z)(e,Ce);return(a||{}).disabled?i.createElement(K.Z,{content:o},i.createElement(r.Box,null,i.createElement(n,a))):i.createElement(n,a)});return i.createElement(r.Flex,{justifyContent:"between",alignItems:"center"},i.createElement(r.Box,null,i.createElement(r.H5,null,o),i.createElement(r.TextSmall,null,s)),i.createElement(f,(0,m.Z)({colored:!0,onChange:h,checked:d,"data-testid":"profileNotifications-".concat(c,"NotificationsToggle"),"data-ga":"profile-ntab::click-toggle::global-view::".concat(d?"enabled":"disabled")},g)))},Se=t(1653),De=(t(66992),t(88674),t(78783),t(33948),function(e){var n=e.value;return i.createElement(r.Box,{width:"232px",height:"232px",background:"white",padding:[4],round:3},i.createElement(Se.Z,{size:200,value:n}))}),Ae=function(e){var n=e.onClose,t=void 0===n?Pe():n,a=function(){var e=_e(),n=e.isLoading,t=e.data,a=(0,i.useState)(),s=(0,o.Z)(a,2),r=s[0],l=s[1],c=(0,$.Z)(),d=(0,o.Z)(c,2)[1],u=function(){var e=(0,V.Z)(Q().mark((function e(){var n,o;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!((null===t||void 0===t?void 0:t.length)>0)){e.next=3;break}return e.next=3,Promise.all(t.map((function(e){var n=e.id;return pe(n)}))).catch(d);case 3:return e.next=5,he({description:"Mobile App",scopes:["scope:mobile-app"]});case 5:n=e.sent,null!==(o=n.data)&&void 0!==o&&o.token&&l(o.token);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,i.useEffect)((function(){n||u()}),[n]),{token:r}}(),s=a.token;return i.createElement(r.Modal,null,i.createElement(r.ModalContent,{width:{min:100,base:140}},i.createElement(r.ModalHeader,null,i.createElement(r.Text,null,"Scan QR Code"),i.createElement(r.ModalCloseButton,{onClose:t,testId:"close-button"})),i.createElement(r.ModalBody,null,i.createElement(r.Flex,{alignItems:"center",justifyContent:"center",height:100},s?i.createElement(De,{value:s}):i.createElement(r.Flex,{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",padding:[4]},i.createElement(r.H3,null,"Generating token")))),i.createElement(r.ModalFooter,null,i.createElement(r.Flex,{justifyContent:"end",padding:[1,2]},i.createElement(r.Button,{label:"Done",onClick:t})))))},Me=function(){var e=(0,Te.MJ)("email"),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,i.useCallback)((function(){return a(!t)}),[t,a]),l=(0,Te.MJ)("mobileApp"),c=(0,o.Z)(l,2),d=c[0],m=c[1],h=(0,i.useCallback)((function(){m(!(null!==d&&void 0!==d&&d.enabled))}),[d,m]),p=(0,u.Z)(),g=(0,o.Z)(p,4),f=g[0],b=g[2],y=g[3];return i.createElement(r.Flex,{column:!0,gap:2},i.createElement(qe,{title:"E-mail",description:"Netdata will send you health notifications via e-mails",label:"email",checked:t,onChange:s}),ke.xy&&i.createElement(r.Flex,{column:!0},i.createElement(qe,{title:"Mobile App Notifications",description:"Netdata will send you health notifications via mobile app notifications",label:"mobileApp",checked:null===d||void 0===d?void 0:d.enabled,onChange:h,disabled:!(null!==d&&void 0!==d&&d.linked),disabledInfo:"You have to link a device first and then enable notifications"}),i.createElement(r.Flex,{justifyContent:"end"},i.createElement(r.Button,{flavour:"borderless",icon:"qrCode",iconColor:"primary",iconSize:"small",onClick:b},i.createElement(r.Text,{color:"primary"},"Show QR code"))),f&&i.createElement(Ae,{onClose:y})))},Ne=(t(85827),t(25387),t(72608),t(78266)),He=t(33335),Ee=(t(69826),t(31672),t(59461),t(89211)),Oe=t(45736),Ie=t(23383),Re=t(95383),Le=t(3689),Be=t(8018),Ue=t(37518),je=P.default.div.withConfig({displayName:"styled__Row",componentId:"sc-lpc291-0"})(["width:100%;height:",";display:flex;flex-flow:row nowrap;align-items:center;padding-left:",";margin-bottom:",";"],(0,r.getSizeBy)(5),(0,r.getSizeBy)(3),(0,r.getSizeBy)(2)),Ge=(0,P.default)(r.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-lpc291-1"})(["width:20px;height:20px;margin-right:",";"],(0,r.getSizeBy)()),ze=(0,P.css)(["&&{width:200px;}margin-left:auto;"]),Ye=(0,P.default)(r.Select).withConfig({displayName:"styled__StyledSelect",componentId:"sc-lpc291-2"})(["",""],ze),Xe=(0,P.default)(r.Button).withConfig({displayName:"styled__SettingsLoader",componentId:"sc-lpc291-3"})([""," color:",";border:1px solid ",";.path{stroke:",";}"],ze,(0,r.getColor)("text"),(0,r.getColor)("border"),(0,r.getColor)("text")),Ze=function(e){var n=e.roomId,t=e.spaceId,a=(0,Te.dR)({roomId:n,spaceId:t,key:"alarms"}),s=(0,o.Z)(a,2),r=s[0],l=s[1],c=(0,i.useCallback)((function(e){l(e.value)}),[l]);return i.createElement(Ye,{options:Object.values(Le.YM),value:Le.YM[r],onChange:c})},We=function(e){var n=e.roomId,t=e.spaceId,a=(0,i.useState)(),s=(0,o.Z)(a,2),l=s[0],c=s[1],d=(0,Be.qn)(t,n,{onFail:function(){c(!1)},onSuccess:function(){c(!1)}}),u=(0,i.useCallback)((function(){c(!0),d()}),[d,n]);return i.createElement(r.Box,{margin:[0,2,0,"auto"]},i.createElement(K.Z,{content:"Join this room to activate notifications for it",isBasic:!0},i.createElement(r.Button,{isLoading:l,label:"Join",onClick:u,flavour:"hollow"})))},Ke=function(e){var n=e.isMember,t=e.roomId,o=e.spaceId,a=(0,Ue.tE)(t,"name");return i.createElement(je,{"data-testid":"roomSettings-room-".concat(a),"data-ga":"profile-ntab::click-join-room-".concat(a,"::global-view")},i.createElement(Ge,{name:"room",color:"text"}),i.createElement(r.Text,null,a),n?i.createElement(i.Suspense,{fallback:i.createElement(Xe,{isLoading:!0,flavour:"hollow",label:"Loading settings.."})},i.createElement(Ze,{roomId:t,spaceId:o})):i.createElement(We,{roomId:t,spaceId:o}))},$e=P.default.div.withConfig({displayName:"styled__CollapsibleRoot",componentId:"sc-1p8t8zr-0"})(["width:100%;height:",";display:flex;flex-flow:row nowrap;align-items:center;cursor:pointer;margin-bottom:",";"],(0,r.getSizeBy)(5),(0,r.getSizeBy)(2)),Ve=(0,P.default)(r.Icon).withConfig({displayName:"styled__OpenerIcon",componentId:"sc-1p8t8zr-1"})(["height:5px;width:6px;margin-right:",";",";"],(0,r.getSizeBy)(2),(function(e){return e.expanded&&"transform: rotate(90deg)"})),Je=(0,P.default)(r.Icon).withConfig({displayName:"styled__SpaceIcon",componentId:"sc-1p8t8zr-2"})(["width:20px;height:20px;margin-right:",";"],(0,r.getSizeBy)()),Qe=(0,P.default)(r.Text).withConfig({displayName:"styled__SpaceLabel",componentId:"sc-1p8t8zr-3"})(["font-weight:bold;"]),en=(0,P.default)(r.TextSmall).withConfig({displayName:"styled__SettingsInfo",componentId:"sc-1p8t8zr-4"})(["margin-left:auto;opacity:0.8;"]),nn=t(26913),tn=function(e){var n=e.expanded,t=e.onExpand,o=e.label,a=e.spaceId;(0,nn.Z)(a);var s=(0,Oe.pV)(a,"channels").find((function(e){return"Email"===e.integration}))||{};return i.createElement($e,{onClick:t,"data-testid":"spaceRoot-space-".concat(o)},i.createElement(Ve,{name:"chevron_right_s",expanded:n,color:"text"}),i.createElement(Je,{name:"space",color:"text"}),i.createElement(Qe,null,o),!s.enabled&&i.createElement(en,null,"E-mail notifications for this space has been disabled by admin"))},on={width:"108px",height:"77px"},an=function(e){var n=e.spaceId,t=e.isCurrent,a=e.showAllRooms,s=(0,Ee.Z)(t),l=(0,o.Z)(s,2),c=l[0],d=l[1],u=(0,Ie.Z)(n,{autorun:!1,polling:!1}),m=(0,Re.y3)(n,"loaded");(0,i.useEffect)((function(){n&&c&&!m&&u()}),[c,m,n,u]);var h=(0,T.vu)(n,"name"),p=(0,Re.WY)(n),g=(0,i.useMemo)((function(){return a?p:p.filter((function(e){return e.isMember}))}),[p,a]),f=(0,i.useRef)();return(0,i.useEffect)((function(){c&&f.current&&f.current.scrollIntoView({behavior:"smooth",block:"start"})}),[c]),i.createElement(r.Flex,{column:!0,ref:f},i.createElement(tn,{expanded:c,onExpand:d,label:h,spaceId:n}),i.createElement(r.Collapsible,{open:c},(function(){return m?i.createElement(i.Fragment,null,g.map((function(e){var t=e.id,o=e.isMember;return i.createElement(Ke,{isMember:o,key:t,roomId:t,spaceId:n})}))):i.createElement(Ne.Z,{iconProps:on,title:"Loading..."})})))},sn=t(22613),rn={width:"108px",height:"77px"},ln=function(){var e=(0,T.th)(),n=function(e){var n=(0,T.GM)("ids");return(0,i.useMemo)((function(){return n.reduce((function(n,t){return t===e?[t].concat((0,h.Z)(n)):[].concat((0,h.Z)(n),[t])}),[])}),[e,n])}(e),t=(0,He.gI)("room:ReadAll"),a=(0,i.useState)(!1),s=(0,o.Z)(a,2),l=s[0],c=s[1];return i.createElement(i.Fragment,null,i.createElement(r.H4,null,"Notifications for all your Netdata Spaces and all the Rooms you are in"),t&&i.createElement(sn.Z,{onFilterClick:function(e){return function(n){n.stopPropagation(),c(e)}},showAllRooms:l,padding:[1,0]}),i.createElement(r.Flex,{overflow:{vertical:"auto"},column:!0,"data-testid":"spaceRoomNotifications-spacesContainer",padding:[3,0,3]},i.createElement(i.Suspense,{fallback:i.createElement(Ne.Z,{iconProps:rn,title:"Loading notification settings..."})},n.map((function(n){return i.createElement(an,{key:n,isCurrent:n===e,showAllRooms:l,spaceId:n})})))))},cn={offline:["basic"],online:["profile","basic","notifications","apiTokens","manageCookies"]},dn={profile:{Component:N,label:"Profile",order:0,testId:"profileTab"},basic:{Component:W,label:"Basic",order:1,testId:"baseTab"},notifications:{Component:(0,i.memo)((function(){return i.createElement(r.Flex,{overflow:{vertical:"hidden"},column:!0,gap:2},i.createElement(r.H4,null,"Notification Methods"),i.createElement(i.Suspense,{fallback:"..."},i.createElement(Me,null)),i.createElement(r.Flex,{height:"1px",background:"border"}),i.createElement(ln,null))})),label:"Notifications",order:2,testId:"notificationsTab"},apiTokens:{Component:ve,label:"API tokens",order:3,testId:"apiTokensTab"},manageCookies:{Component:X,label:"Manage cookies",order:4,testId:"manageCookiesTab"}},un=function(e){return(dn[e]||dn.profile).order},mn=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).modalName,n=void 0===e?"profile":e,t=(0,s.Iy)("isAnonymous"),r=(0,i.useMemo)((function(){return Object.keys(dn).filter((function(e){return cn[t?"offline":"online"].includes(e)}))}),[t]),l=(0,a.Z)(n),c=l.isModalOpen,d=l.currentModalTab,u=l.handleOpenModal,m=l.handleCloseModal,h=l.handleChangeModalTab,p=(0,i.useState)(un(d)),g=(0,o.Z)(p,2),f=g[0],b=g[1],y=function(e){h(e)};return(0,i.useEffect)((function(){b(un(d))}),[d]),{handleOpenProfileModal:function(){u(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"profile")},handleCloseProfileModal:function(){m()},getPreselectedTab:un,setCurrentTab:y,handleChangeTab:function(e){var n=r[e];b(e),y(n)},tabs:r,tabsByName:dn,activeTabIndex:f,isProfileModalOpen:c}}},39840:function(e,n,t){t.d(n,{e8:function(){return h},m9:function(){return u},pK:function(){return m},yi:function(){return d}});t(92222);var o=t(89250),i=t(67294),a=t(37518),s=t(95248),r=t(45771),l=t(20709),c=t(89405),d=function(e){var n=(0,o.s0)(),t=(0,a.A3)(),r=(0,s.XT)({extraKey:"alerts"}),l=(0,s.Sf)("alertStatuses",{extraKey:"alerts"});return(0,i.useCallback)((function(o){e&&r([e]),o&&"string"===typeof o&&l([o]),n("".concat(t,"/alerts"))}),[e,t,r])},u=function(e,n){if(void 0===e)return"-";var t=(0,r.J)(e);return n?"".concat(t," ").concat(n):t},m=function(e,n){return(0,i.useMemo)((function(){return u(e,n)}),[e,n])},h=function(e){var n=e.rawTime,t=e.secs,o=void 0!==t&&t,a=e.long,s=void 0!==a&&a,r=(0,c.rA)(),d=r.localeTimeString,u=r.localeDateString;return(0,i.useMemo)((function(){var e=new Date(1e3*n);return isNaN(e.valueOf())?{}:{timeAgo:(0,l.Z)(e,new Date),formattedDate:"".concat(u(e,{long:s})," ").concat(d(e,{secs:o}))}}),[n,d,u])}},45771:function(e,n,t){t.d(n,{J:function(){return o},j:function(){return i}});t(9653),t(61874),t(26699),t(32023);var o=function(e){var n=e<1?Number(e).toPrecision(3):Number(e).toFixed(2),t=Number.parseFloat(n);return Math.abs(t)>=1e9||Math.abs(t)<=1e-5&&0!==t?t.toExponential(3):t},i=function(e){return e.includes("critical")?"critical":e.includes("warning")?"warning":e.includes("clear")?"clear":e[0]}},83356:function(e,n,t){t(74916),t(15306),t(92222);var o=t(67294),i=t(89250),a=t(64637),s=t(78710);n.Z=function(){var e=(0,i.s0)();return(0,o.useCallback)((function(){if(s.ZP){var n=window.location.origin+window.location.pathname.replace(s.tj,"");window.location.href=(0,a.h2)("".concat(window.envSettings.cloudUrl,"/trust?redirect_uri=").concat(encodeURIComponent(window.location.href),"&agent_uri=").concat(encodeURIComponent(n||window.envSettings.agentApiUrl)))}else e("/sign-in")}),[])}},4808:function(e,n,t){t.d(n,{Ru:function(){return y},bj:function(){return P},g3:function(){return C},oU:function(){return f}});var o=t(4942),i=t(29439),a=t(45987),s=(t(21249),t(57640),t(9924),t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(74916),t(77601),t(2707),t(39714),t(66992),t(78783),t(33948),t(41637),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(26398)),r=t(66152),l=t(39840),c=t(55436),d=t(78710),u=["spaceId","cloudNodeIds","nodeIds","fn","acceptedParams","merge"],m=["nodeIds","spaceId","roomId","roomSlug","anchor","merge","after","before"];function h(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function p(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?h(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):h(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=function(e){var n=e.functions,t=e.nodes;return n.map((function(e){return{name:e.name,nodes:e.ni.reduce((function(e,n){return t[n]?(e[t[n].nd||t[n].mg]=!0,e):e}),{})}}))},f=function(e,n){return(0,d.Ly)(e)?s.Z.get("/api/v2/functions",{baseURL:window.envSettings.agentApiUrl,transform:g}):s.Z.post("/api/v3/spaces/".concat(e,"/rooms/").concat(n,"/functions"),{scope:{nodes:[]},selectors:{nodes:["*"]}},{transform:g})},b=function(e,n){return function(t){return(t=(0,r.Tg)(t)).defaultCharts||"processes"!==e||(t.defaultCharts=[["CPU","Category"],["Memory","Category"]]),t.defaultCharts=t.defaultCharts||[],t.aggregations=t.facets,t.merge=n,t}},y=function(e){var n=e.spaceId,t=e.cloudNodeIds,o=e.nodeIds,r=e.fn,l=e.acceptedParams,c=void 0===l?[]:l,m=e.merge,h=void 0!==m&&m,p=(0,a.Z)(e,u),g=c.reduce((function(e,n){var t=function(e,n){return"after"===e||"before"===e?Math.floor(n/1e3):n}(n,p[n]);return(t=t?"".concat(t):null)?e?"".concat(e," ").concat(n,":").concat(t):"".concat(n,":").concat(t):e}),""),f=(0,d.Ly)(n);if(g=g?"".concat(f?"%20":" ").concat(g):"",f){var y=(0,i.Z)(o,1)[0];return s.Z.get("/host/".concat(y,"/api/v1/function?function=").concat(r).concat(g),{baseURL:window.envSettings.agentApiUrl,transform:b(r,h)})}var _=(0,i.Z)(t,1)[0];return s.Z.get("/api/v2/nodes/".concat(_,"/function"),{params:{function:"".concat(r).concat(g)},transform:b(r,h)})},_={filter:!1,index:1,name:"Unknown",sort:"ascending",sortable:!0,sticky:!1,summary:"",type:"string",uniqueKey:!1,visible:!0,dummy:!1},w=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.Z)({},e,p(p({},_),{},{name:n.name||e},n))},v=p(p(p(p(p({},w("Timestamp",{type:"datetime",index:0})),w("Description",{type:"feedTemplate",index:1})),w("Tags",{type:"pill",index:2})),w("source",{type:"feedTemplate",index:3,dummy:!0})),w("json",{type:"feedTemplate",index:4,dummy:!0})),T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=(0,i.Z)(e,1)[0];return"retention"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).type?/exceeds the maximum data retention/.test(n)?"You've exceeded your plan's retention limit":"":n},k=function(e,n){return function(t){var o,i,a=t.errors,s=void 0===a?[]:a,r=t.page_size,l=t.results,c=l.hits,d=l.aggregations,u=(null===c||void 0===c?void 0:c.hits)||[];return{columns:p({},v),data:u.map((function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=t._source,i=void 0===o?{}:o,a=t._source,s=a.event,r=a.host,l=void 0===r?[]:r,c=a.agent,d=void 0===c?{}:c,u=a.Netdata,m=a.tags,h=Array.isArray(l)?l:[l];return u=p(p({},u),u.alert?{alert:p(p(p({},u.alert),{},{id:null===(e=u.alert.transition)||void 0===e?void 0:e.id},u.alert.name?{name:Array.isArray(u.alert.name)?u.alert.name:[u.alert.name]}:{}),u.alert.current?{current:p(p({},u.alert.current),{},{status:u.alert.current.status?Array.isArray(u.alert.current.status)?u.alert.current.status:[u.alert.current.status]:[]})}:{})}:{}),[i["@timestamp"],s.id,m||[],p(p(p(p({},i),s),u),{},{hosts:h,agentId:d.id,roomId:n}),i]})),default_sort_column:null,type:"table",update_every:5,pageSize:r,totalSize:(null===(o=c.total)||void 0===o?void 0:o.value)||0,anchor:null===(i=u[u.length-1])||void 0===i||null===(i=i.sort)||void 0===i?void 0:i[0],aggregations:d,merge:e,retentionWarning:T(s,{type:"retention"}),warning:T(s)}}},x=function(e,n,t,o){return function(t){var i,a=t.facets,s=void 0===a?[]:a,r=t.items,c=void 0===r?{}:r,d=t.transitions,u=void 0===d?[]:d,m=u.map((function(t){var o=t.machine_guid,i=t.transition_id,a=t.node_id,s=t.hostname,r=t.alert,c=t.new,d=c.status,u=c.value,m=t.when,h=t.old.status,p=t.instance,g=t.units,f={action:"alert-node-transition",space:{id:e},roomId:n,alert:{id:i,current:{status:[d],value_string:(0,l.m9)(u,g)},previous:{status:h},name:[r]},chart:{name:p},hosts:[{id:a||o,name:s}]};return[1e3*m,i,["alert","node_instance"],f,f,d,name,p]}));return{columns:p(p(p(p({},v),w("Status",{type:"value",index:5,dummy:!0,filter:"multiselect"})),w("Alert Name",{type:"value",index:6,dummy:!0,filter:"multiselect"})),w("Instance",{type:"value",index:7,dummy:!0,filter:"multiselect"})),data:m,default_sort_column:null,type:"table",update_every:5,pageSize:100,totalSize:(null===c||void 0===c?void 0:c.matched)||m.length,anchor:null===(i=u[u.length-1])||void 0===i?void 0:i.gi,aggregations:s,merge:o,retentionWarning:null,warning:null}}},P=function(e){var n,t=e.nodeIds,o=void 0===t?[]:t,i=e.spaceId,r=e.roomId,l=e.roomSlug,u=e.anchor,h=void 0===u?"":u,g=e.merge,f=void 0!==g&&g,b=e.after,y=e.before,_=(0,a.Z)(e,m);if((0,d.Ly)(i)){var w=new URLSearchParams(p({after:b?Math.floor(b/1e3):b,before:y?Math.ceil(y/1e3):y,last:100,anchor_gi:h,options:"minify"},_)).toString();return s.Z.get("/api/v2/alert_transitions?".concat(w),{baseURL:window.envSettings.agentApiUrl,transform:x(i,r,0,f)})}return s.Z.post("/api/v1/feed/search",p(p({},_),{},{histogram_seconds:(null===(n=(0,c.BZ)(b,y))||void 0===n?void 0:n.secs)||1,node_ids:o,page_size:100,space_id:i,room_ids:"all-nodes"!==l?[r]:[],search_before:h||Date.now(),from_timestamp:b,to_timestamp:y}),{transform:k(f,r)})},C=function(){return s.Z.get("/api/v1/feed/static/facets")}},81732:function(e,n,t){t.d(n,{GQ:function(){return c},Zn:function(){return u}});var o=t(4942),i=(t(41539),t(88674),t(47941),t(82526),t(57327),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(4480)),a=t(4808);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function r(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var l=(0,i.xu)({key:"checkAgainFnsAtom",default:function(){return 1}}),c=(0,i.CG)({key:"availableFunctionsSelector",get:function(e){var n=e.spaceId,t=e.roomId,o=e.extraKey;return function(e){return(0,e.get)(l(n)),function(e){var n=e.spaceId,t=e.roomId;return"feed"===e.extraKey?Promise.resolve({data:[{name:"feed"}]}):(0,a.oU)(n,t)}({spaceId:n,roomId:t,extraKey:o})}}}),d={id:null,loading:!0,loaded:!1,data:null,error:"",type:"",updateEvery:1,availableFilters:{}},u={table:r(r({},d),{},{sortColumn:"",sortDirection:"descending",columns:{},columnVisibility:{},sortedColumns:[],pinnedColumns:[],groupByColumns:[]}),default:d};n.ZP=(0,i.xu)({key:"function",default:function(e){return r(r({},d),{},{id:e})}})},85672:function(e,n,t){t.d(n,{Ih:function(){return r},Kl:function(){return s},bb:function(){return i},vK:function(){return o}});var o=["#19C89E","#14A6C7","#F3D63D","#E05296","#FF7448","#C082FF"],i={xs:100,sm:140,md:180,l:220,xl:280,xxl:500},a=3600,s=86400,r=[{minLimit:350*s,secs:7*s,unit:"week"},{minLimit:50*s,secs:s,unit:"day"},{minLimit:13*s,secs:21600,unit:"hour"},{minLimit:5*s,secs:10800,unit:"hour"},{minLimit:136800,secs:a,unit:"hour"},{minLimit:61200,secs:1800,unit:"minute"},{minLimit:28800,secs:600,unit:"minute"},{minLimit:10800,secs:300,unit:"minute"},{minLimit:2280,secs:60,unit:"minute"},{minLimit:780,secs:30,unit:"second"},{minLimit:420,secs:10,unit:"second"},{minLimit:300,secs:5,unit:"second"},{minLimit:1,secs:1,unit:"second"}]},3322:function(e,n,t){t.d(n,{CE:function(){return x},Cf:function(){return L},Eq:function(){return I},FF:function(){return H},Hv:function(){return P},I_:function(){return F},KO:function(){return w},T2:function(){return S},WO:function(){return A},ZQ:function(){return C},e6:function(){return M},fg:function(){return E},kU:function(){return O},mO:function(){return q},tD:function(){return T}});t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(93433),i=t(45987),a=t(29439),s=t(4942),r=(t(41539),t(88674),t(2707),t(85827),t(25387),t(2490),t(72608),t(47941),t(21249),t(57640),t(9924),t(67294)),l=t(89250),c=t(4480),d=t(95248),u=t(74059),m=t(37518),h=t(78710),p=t(81732),g=t(4808),f=["key"],b=["key"];function y(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function _(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?y(Object(t),!0).forEach((function(n){(0,s.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var w=function(e){var n,t=(0,u.th)(),o=(0,m.UL)(),i=(0,c.$P)((0,p.GQ)({spaceId:t,roomId:o,extraKey:e})),a=(0,c._8)((function(n){var i=n.refresh;return function(){return i((0,p.GQ)({spaceId:t,roomId:o,extraKey:e}))}}),[t,o,e]);return{loaded:"loading"!==i.state,value:null===(n=i.contents)||void 0===n?void 0:n.data,hasError:"hasError"===i.state,refresh:a}},v=[],T=(0,c.CG)({key:"fnState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,p.ZP)(n));return t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,o){(0,e.set)((0,p.ZP)(n),(function(e){return t?_(_({},e),{},(0,s.Z)({},t,o)):_(_({},e),o)}))}}}),k={extraKey:"fn"},x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k,n=(0,d.tk)("selected",_({defaultValue:v},e));return(0,a.Z)(n,1)[0]},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.D0)("selected",_({defaultValue:v},e))},C=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:k).key;return(0,c.sJ)(T({id:e,key:n}))}(x(e),e)},F=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:k).key;return(0,c.Zl)(T({id:e,key:n}))}(x(e),e)},q=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return[C(e),F(e)]},S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.tk)("isPolling",e)},D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.Sf)("isPolling",e)},A=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return[S(e),D(e)]},M=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.tk)("pollingInterval",e)},N=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.Sf)("pollingInterval",e)},H=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return[M(e),N(e)]},E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k,n=e.key,t=(0,i.Z)(e,f),o=x(t);return(0,d.D0)(n,{extraKey:"".concat(o||t.extraKey,"Settings")})},O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k,n=e.key,t=(0,i.Z)(e,b),o=x(t);return(0,d.D0)(n,{extraKey:"".concat(o||t.extraKey,"Filters")})},I=function(e){var n=(0,l.s0)(),t=function(){var e=(0,m.A3)();return e&&"".concat(e,"/functions")}();return(0,r.useCallback)((function(){n(t,{state:{nodeId:arguments.length>0&&void 0!==arguments[0]?arguments[0]:e}})}),[t,n])},R=(0,c.CG)({key:"feedFacetsSelector",get:function(e){return function(){return e?(0,g.g3)():Promise.resolve({data:{}})}}}),L=function(e){var n=(0,u.th)(),t=(0,h.Ly)(n),i=C({extraKey:e}),a=i.loading,s=i.loaded,l=i.aggregations,d=(0,c.$P)(R(!t));return(0,r.useMemo)((function(){var e;if("hasValue"!==d.state||!s)return[];if(!l)return[];if(t&&Array.isArray(l))return l.reduce((function(e,n){return e.push(_(_({},n),{},{options:(0,o.Z)(n.options).sort((function(e,n){return n.count-e.count}))})),e}),[]).sort((function(e,n){return e.order-n.order}));var n=(null===d||void 0===d||null===(e=d.contents)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.facets)||{};return Object.keys(n).sort((function(e,t){return n[e].order-n[t].order})).reduce((function(e,t){var o,i=n[t],a=i.display_name,s=i.field;return null!==(o=l[t])&&void 0!==o&&o.buckets?(e.push({id:t,name:a,options:l[t].buckets.map((function(e){var n,t;return{id:e.key,name:(null===(n=d.contents.data.fields)||void 0===n||null===(n=n[s])||void 0===n?void 0:n[e.key])||e.key,count:(null===(t=e.hits)||void 0===t?void 0:t.doc_count)||0}}))}),e):e}),[])}),[t,d.state,s,a])}},55436:function(e,n,t){t.d(n,{BZ:function(){return c},Jw:function(){return s},Ol:function(){return l},kl:function(){return r}});t(54678),t(92222),t(69826),t(41539),t(31672),t(2490),t(59461);var o=t(67294),i=t(89405),a=t(85672),s=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.decimalPoints,o=n.defaultValue;return null===e?void 0===o?"":o:isNaN(t)?e:parseFloat(e).toFixed(t)},r=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.defaultValue,o=void 0===t?"":t,i=n.usec;if(void 0!==i&&i&&(e=e?Math.floor(e/1e3):e),null===e)return o;var a=Math.floor(e/86400);e-=24*a*3600;var s=Math.floor(e/3600);e-=3600*s;var r=Math.floor(e/60);return"".concat(a,"d ").concat(s,"h ").concat(r,"m")},l=function(){var e=(0,i.rA)(),n=e.localeTimeString,t=e.localeDateString;return(0,o.useCallback)((function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=o.defaultValue,a=void 0===i?"":i,s=o.usec;void 0!==s&&s&&(e=e?Math.floor(e/1e3):e);var r=new Date(e);return isNaN(r.valueOf())?a:"".concat(t(r,{long:!1})," ").concat(n(r,{secs:!0}))}),[])},c=function(e,n){return a.Ih.find((function(t){var o=t.minLimit;return function(e,n){return e<0?Math.abs(n-e):(n-e)/1e3}(e,n)>=o}))}},67996:function(e,n,t){t.d(n,{Z:function(){return K}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(67294),a=t(34885),s=t(87462),r=t(45987),l=(t(9653),t(60677)),c=t(15557),d=t(91008),u=t(57387),m=t(668),h=["level"],p=["children","href"],g=["content"],f=["ordered","children"],b=["children"],y=l.default.article.withConfig({displayName:"nodes__StyledArticle",componentId:"sc-z8xzec-0"})(["padding-right:8px;padding-bottom:16px;"]),_=l.default.p.withConfig({displayName:"nodes__StyledParagraph",componentId:"sc-z8xzec-1"})(["margin-top:14px;line-height:1.5;"]),w=(0,l.default)(u.ZP).withConfig({displayName:"nodes__StyledCommand",componentId:"sc-z8xzec-2"})(["padding:8px;padding-right:32px;margin-top:8px;"]),v=l.default.ol.withConfig({displayName:"nodes__OrderedList",componentId:"sc-z8xzec-3"})(["list-style:roman;padding-left:16px;line-height:2;"]),T=l.default.ul.withConfig({displayName:"nodes__UnorderedList",componentId:"sc-z8xzec-4"})(['list-style-image:url("/static/img/list-style-image.svg");padding-left:16px;line-height:2;']),k={document:{render:y},heading:{render:function(e){var n=e.level,t=void 0===n?1:n,o=(0,r.Z)(e,h),a={1:c.H1,2:c.H2,3:c.H3,4:c.H4,5:c.H5,6:c.H6}[t]||c.H1,l=t<=3?6-t:2;return i.createElement(a,(0,s.Z)({margin:[l,0,2,0]},o))},attributes:{id:{type:String},level:{type:Number}}},paragraph:{render:_},link:{render:function(e){var n=e.children,t=e.href,o=(0,r.Z)(e,p);return i.createElement(d.Z,(0,s.Z)({href:t,rel:"noopener noreferrer",target:"_blank"},o),n)},attributes:{href:{type:String}}},code:{render:function(e){var n=e.content,t=(0,r.Z)(e,g);return i.createElement(u.ZM,(0,s.Z)({as:"span"},t),n)},attributes:{content:{type:String}}},fence:{render:w,attributes:{content:{type:String}}},list:{render:function(e){var n=e.ordered,t=e.children,o=(0,r.Z)(e,f),a=n?v:T;return i.createElement(a,o,t)},attributes:{ordered:{type:Boolean}}},table:{render:function(e){var n=e.children,t=(0,r.Z)(e,b);return i.createElement(m.AB,t,n)}}},x=function(e){var n=e.summary,t=void 0===n?"":n,o=e.open,a=void 0!==o&&o,s=e.children;return i.createElement(c.Flex,{margin:[2,0,0,0]},i.createElement("details",{open:a},i.createElement("summary",null,i.createElement(c.Text,{strong:!0},t)),s))},P=t(29439),C=(t(21249),t(57640),t(9924),t(88674),t(66342),t(62962),t(23748),(0,l.default)(c.Flex).attrs({column:!0}).withConfig({displayName:"styled__StyledTerminalCommand",componentId:"sc-3zs5xg-0"})(["position:relative;top:-1px;color:",";background:",";border:1px solid ",';cursor:pointer;overflow-wrap:anywhere;white-space:pre-wrap;padding:8px 16px 16px 8px;width:100%;font-family:"Courier New",Courier,monospace;font-weight:bold;letter-spacing:0.09px;line-height:16px;font-size:14px;word-break:break-word;overflow-y:auto;margin-top:',";"],(0,c.getColor)("primary"),(0,c.getColor)("terminalGreen"),(0,c.getColor)("terminalGreenBorder"),(function(e){return e.noMargin?"0":"16px"}))),F=(0,l.default)(c.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-3zs5xg-1"})(["display:flex;align-self:flex-end;cursor:pointer;position:absolute;bottom:8px;right:8px;"]),q=t(19480),S=t(52428),D=["children"],A=function(e){var n=e.children,t=(0,r.Z)(e,D),o=(0,i.useMemo)((function(){return(0,q.$O)(n)}),[n]);return i.createElement(C,(0,s.Z)({onClick:(0,S.J)(o,{text:"Config copied to your clipboard."})},t),n,i.createElement(F,{name:"copy",size:"small",color:"textLite",onClick:(0,S.J)(o,{text:"Config copied to your clipboard."})}))},M=function(e){var n=e.children,t=(0,i.useState)(0),o=(0,P.Z)(t,2),a=o[0],s=o[1],r=i.Children.toArray(n).map((function(e){return e.props}));return i.createElement(c.Flex,{column:!0,width:"100%",margin:[4,0,0,0]},i.createElement(c.Flex,{border:{side:"bottom",size:"1px",color:"borderSecondary"},padding:[0,4]},i.createElement(c.Tabs,{selected:a,onChange:s},r.map((function(e){var n=e.label;return i.createElement(c.Tab,{key:n,label:i.createElement(c.Text,null,n),minWidth:"auto",maxWidth:"auto",padding:[1,4],background:"mainBackground",small:!0})})))),i.createElement(c.Flex,{flex:!0},i.createElement(A,{noMargin:!0},r[a].children)))},N=t(95248),H=t(89250),E=t(74059),O=t(10034),I=t(67034),R=function(e){var n=e.children,t=e.onClick;return i.createElement(c.Box,{as:"a",cursor:"pointer",onClick:t},n)},L=function(e){var n=e.categoryId,t=e.navigateToSettings,o=e.children,a=(0,H.s0)(),s=(0,N.I0)("selectedIntegrationCategory"),r=(0,P.Z)(s,2)[1],l=(0,E.uk)(),c=(0,O.wC)().pushCategory,d=(0,I.Z)(),u=(0,i.useCallback)((function(){t?(r("deploy.docker-kubernetes"),a({pathname:"/spaces/".concat(l,"/settings/integrations"),replace:!0})):c(d(n))}),[c,n,d,t]);return i.createElement(R,{onClick:u},o)},B=(0,i.memo)(L),U=(t(74916),t(15306),t(68757),t(69826),t(31672),t(59461),t(13477)),j=t(33335),G=function(e){var n=e.showClaimingOptions,t=e.command,o=void 0===t?"":t,i=e.claimToken,a=void 0===i?"":i,s=e.claimUrl,r=void 0===s?"":s,l=e.claimRooms,c=void 0===l?"":l;if(n)return o.replaceAll(/{% if \$showClaimingOptions %}\n?/gi,"").replaceAll(/{% \/if %}\n?/gi,"").replaceAll(/{% claim_token %}/gi,a).replaceAll(/{% claim_url %}/gi,r).replaceAll(/{% \$claim_rooms %}/gi,c);return o.replaceAll(/\{%\s*if\s*\$showClaimingOptions\s*%\}[\s\S]*?\{%\s*\/if\s*%\}\n?/g,"")},z=function(e){var n,t=e.methods,o=e.isNightly,a=e.claimToken,s=void 0===a?"":a,r=e.claimUrl,l=void 0===r?"":r,d=e.claimRooms,u=void 0===d?"":d,m=o?"nightly":"stable",h=function(){var e=(0,U.Iy)("isAnonymous"),n=(0,j.gI)("node:Create");return{showClaimingOptions:!e&&n}}().showClaimingOptions;return t.length?h&&!s?i.createElement(c.Flex,{padding:[8,0]},i.createElement(c.Text,null,"Loading token...")):t.length>1?i.createElement(M,null,t.map((function(e){var n=e.method,t=(e.commands.find((function(e){return e.channel==m}))||{}).command;return i.createElement(c.Tab,{key:n,label:n},G({showClaimingOptions:h,command:t,claimToken:s,claimUrl:l,claimRooms:u}))}))):i.createElement(A,null,G({showClaimingOptions:h,command:((null===(n=t[0])||void 0===n?void 0:n.commands.find((function(e){return e.channel==m})))||{}).command||"",claimToken:s,claimUrl:l,claimRooms:u})):null},Y={nodes:k,tags:{details:{render:x,attributes:{summary:{type:String,default:""},open:{type:Boolean,default:!1}}},tabs:{render:M},tab:{render:c.Tab,attributes:{label:{type:String,default:""}}},terminal:{render:A},goToCategory:{render:B,attributes:{categoryId:{type:String,default:""},navigateToSettings:{type:Boolean,default:!1}}},command:{render:z,attributes:{methods:{type:Array,default:[]},isNightly:{type:Boolean,default:!1},claimToken:{type:String,default:""},claimUrl:{type:String,default:""},claimRooms:{type:String,default:""}}}}};function X(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function Z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?X(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):X(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var W=function(e){var n=e.config,t=void 0===n?{}:n,o=e.children;return i.createElement(a.Z,{transformConfiguration:Z(Z({},Y),t)},o)},K=(0,i.memo)(W)},26017:function(e,n,t){t(74916),t(4723);var o=t(67294),i=t(89250),a=t(15557),s=t(67996),r=t(74059),l=t(33582),c=t(37518),d=t(53338);n.Z=function(e){var n=e.integration,t=void 0===n?{}:n,u=e.isNightly,m=e.rooms,h=void 0===m?[]:m,p=e.navigateToSettings,g=t.deployContent,f=t.methods,b=(0,r.th)(),y=function(){var e=(0,i.TH)().pathname.match(/rooms\/(.*?)\/integrate-anything/);return(null===e||void 0===e?void 0:e.length)>=2?e[1]:void 0}()||d.i_,_=(0,c.HM)(b,y),w=(0,l.Z)(b),v=window.envSettings.apiUrl,T=h.length?h.join(","):_,k=(0,o.useMemo)((function(){var e;return{variables:{methods:f,isNightly:u,claimToken:null===w||void 0===w||null===(e=w[0])||void 0===e?void 0:e.token,claimUrl:v,claimRooms:T,navigateToSettings:p}}}),[f,u,w,v,T,p]);return o.createElement(a.Flex,{width:"100%",column:!0,gap:4,padding:[4,0,0,0]},o.createElement(s.Z,{config:k},g))}},35819:function(e,n,t){t(82526),t(41817);var o=t(67294),i=t(15557),a=t(91008),s=t(82351),r=t(50308),l=t.n(r),c=t(35253),d={left:"stable",right:"nightly"},u=function(e){var n=e.right,t=c.J[d[n?"right":"left"]]||{},a=t.title,r=t.description;return o.createElement(s.Z,{content:r,align:"bottom"},o.createElement(i.Text,{padding:n?[0,0,0,1]:[0,1,0,0]},a))};n.Z=function(e){var n=e.isNightly,t=e.toggleNightly,s=void 0===t?l():t;return o.createElement(i.Flex,{column:!0,gap:1},o.createElement(a.Z,{href:"https://learn.netdata.cloud/docs/getting-started/install-netdata#nightly-vs-stable-releases",rel:"noopener noreferrer",target:"_blank"},o.createElement(i.Flex,{alignItems:"center",gap:1},o.createElement(i.Text,{color:"primary"},"Updates channel"),o.createElement(i.Icon,{color:"primary",name:"goToNode",width:"18px",height:"18px"}))),o.createElement(i.Toggle,{labelLeft:"Stable",labelRight:"Nightly",Label:u,colored:!1,checked:n,disabled:!1,onChange:s}))}},41898:function(e,n,t){t.d(n,{vE:function(){return L},n5:function(){return X},xN:function(){return Z},Kl:function(){return B},p1:function(){return Y},O_:function(){return U},RV:function(){return z},DW:function(){return R},ON:function(){return G},JZ:function(){return j}});var o=t(29439),i=t(87462),a=t(67294),s=t(50308),r=t.n(s),l=t(15557),c=t(27622),d=t(60677),u=t(74059),m=t(20428),h=t(46667),p=t(54131),g=function(e){var n=e.name,t=e.onEdit,o=void 0===t?r():t;return a.createElement(l.Flex,{alignItems:"center",gap:2},a.createElement(l.TextBig,null,n),a.createElement(l.Button,{icon:"pencilOutline",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:o}))},f=(0,d.default)(l.Flex).withConfig({displayName:"spaceInfo__StyledWrapper",componentId:"sc-166ce7m-0"})(["margin-top:-3px !important;margin-bottom:-3px !important;"]),b=function(e){var n=e.name,t=e.setName,i=void 0===t?r():t,s=e.onSave,c=void 0===s?r():s,d=e.onCancel,u=void 0===d?r():d,m=e.isLoading,h=(0,a.useState)(),g=(0,o.Z)(h,2),b=g[0],y=g[1],_=(0,a.useMemo)((function(){return(0,p.x3)(n)}),[n]);return a.createElement(f,{gap:2},a.createElement(l.TextInput,{value:n,onChange:function(e){y(!0),i(e.target.value)},disabled:m,size:"tiny",error:p.Qj[_],isDirty:b,instantFeedback:"all"}),a.createElement(l.Button,{label:"Save",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:c,disabled:m||!!_}),a.createElement(l.Button,{label:"Cancel",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:u,disabled:m}))},y=function(){var e=(0,u.OS)(),n=e.id,t=e.name,i=(0,m.Z)(n),s=(0,h.Z)(),r=(0,o.Z)(s,4),l=r[0],c=r[2],d=r[3],p=(0,h.Z)(),f=(0,o.Z)(p,4),y=f[0],_=f[2],w=f[3],v=(0,a.useState)(t),T=(0,o.Z)(v,2),k=T[0],x=T[1],P=(0,a.useCallback)((function(){d(),w()}),[]),C=(0,a.useCallback)((function(){c(),i({name:k},{onSuccess:P,onFail:d})}),[k]);return y?a.createElement(b,{name:k,setName:x,onSave:C,onCancel:w,isLoading:l}):a.createElement(g,{name:t,onEdit:_})},_=t(82351),w=t(89149),v=t(91008),T=t(37518),k=t(33937),x=t(33335),P=(t(92222),t(89250)),C=t(46189),F={light:"primary",dark:"white",unspecified:"primary"},q=function(e){var n={icon:"add_user",flavour:"borderless",onClick:e.onClick,label:"Invite your team"};return(0,x.gI)("space:InviteUser")?a.createElement(l.Button,n):a.createElement(_.Z,{content:"You can't invite a user with your current permissions"},a.createElement(l.Flex,null,a.createElement(l.Button,(0,i.Z)({},n,{disabled:!0}))))},S=function(e){var n=e.claimedNodes,t=e.onClick,o=void 0===t?r():t,i=(0,x.gI)("node:Create"),s=(0,a.useMemo)((function(){return{onClick:o,disabled:!i}}),[i]),c=n.length>0?"Connect more!":"Connect a node";return i?a.createElement(v.Z,s,c):a.createElement(_.Z,{content:"You don't have permission to connect new nodes. Please contact an administrator to do it"},a.createElement(l.Box,null,a.createElement(v.Z,s,c)))},D=function(e){var n=e.claimedNodes,t=e.onConnectClick,o=void 0===t?r():t;return a.createElement(l.Flex,{gap:2},a.createElement(S,{claimedNodes:n,onClick:o}),a.createElement(l.Text,null,"to get started"))},A=function(e){var n=e.claimedNodes,t=e.onConnectClick,o=void 0===t?r():t;return a.createElement(l.Flex,{gap:2},a.createElement(l.Text,null,"You have connected ",n.length," node",n.length<=1?"":"s","."),a.createElement(S,{claimedNodes:n,onClick:o}))},M=(0,a.memo)((function(e){var n=e.claimedNodes,t=e.onConnectClick,o=void 0===t?r():t,i=(0,a.useMemo)((function(){return{claimedNodes:n,onConnectClick:o}}),[n,o]);return a.createElement(l.Flex,{gap:2},a.createElement(l.Text,null,"This is your new space"),n.length>0?a.createElement(A,i):a.createElement(D,i))})),N=function(e){var n=e.claimedNodes,t=void 0===n?[]:n,i=e.onInvite,s=void 0===i?r():i,d=(0,k.R)("theme"),m=(0,T.UL)(),p=(0,h.Z)(),g=(0,o.Z)(p,4),f=g[0],b=g[2],_=g[3],v=function(){var e=(0,P.s0)(),n=(0,u.uk)(),t=(0,T.vf)(),o=C.Z.defaultRoomView;return(0,a.useCallback)((function(){e("/spaces/".concat(n,"/rooms/").concat(t,"/").concat(o),{replace:!0})}),[])}(),x=t.length>0;return a.createElement(a.Fragment,null,a.createElement(c.Z,{height:"66px",width:"66px",color:F[d]}),a.createElement(l.H1,{strong:!1},"Welcome to Netdata!"),a.createElement(M,{claimedNodes:t,onConnectClick:function(e){e.preventDefault,b()}}),a.createElement(y,null),a.createElement(l.Flex,{gap:4},a.createElement(q,{onClick:s}),a.createElement(l.Button,{icon:"rocket",flavour:x?"default":"borderless",onClick:v,label:x?"Launch space":"Node Required for Launch",disabled:!x})),f&&a.createElement(w.Z,{onClose:_,room:m}))},H=function(){return a.createElement(a.Fragment,null,a.createElement(l.H1,{strong:!1},"Integrations Made Easy!"),a.createElement(l.Text,null,"Unleash the Power of Connected Systems"))},E=t(26017),O=t(67996),I=function(e){var n=e.integration,t=void 0===n?{}:n;return a.createElement(l.Flex,{width:"100%",column:!0,gap:2,padding:[4,0,0,0]},a.createElement(O.Z,null,t.alerts))},R="deploy.operating-systems",L=34,B="data-collection",U="deploy-kubernetes",j={deploy:"rocket","data-collection":"collect",notify:"alarmFilled",export:"importExport"},G={deploy:E.Z,"alert-notifications":I},z={homePage:"homePage",settingsPage:"settingsPage",addNodesModal:"addNodesModal"},Y=z.homePage,X={homePage:{headerContent:N},settingsPage:{headerContent:H},addNodesModal:{headerContent:null}},Z={homePage:{header:{height:284,wrapperProps:{padding:[4,0]}},search:{wrapperProps:{width:"500px",margin:[0]}},cncf:{height:80},categoryCharacterWidth:9},settingsPage:{header:{height:210,wrapperProps:{padding:[4,0]}},search:{wrapperProps:{width:"500px",margin:[0]}},cncf:{height:0},categoryCharacterWidth:9},addNodesModal:{header:{height:126,wrapperProps:{width:"100%",padding:[4]}},search:{wrapperProps:{width:"100%",margin:[0],flex:!0},inputProps:{size:"small"}},cncf:{height:16},categoryCharacterWidth:9}}},67034:function(e,n,t){t(69826),t(41539),t(31672),t(2490),t(59461);var o=t(10034);n.Z=function(){var e=(0,o.pZ)();return function(n){return e.find((function(e){return e.id==n}))}}},10034:function(e,n,t){t.d(n,{pZ:function(){return N},xh:function(){return A},mk:function(){return D},Oi:function(){return j},wC:function(){return M},RG:function(){return I},dG:function(){return L},lX:function(){return R},NE:function(){return O},P0:function(){return U},Si:function(){return B},Zc:function(){return E},BN:function(){return H}});var o=t(45987),i=t(4942),a=t(93433),s=t(29439),r=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(92222),t(47042),t(69826),t(31672),t(59461),t(47941),t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),l=t(4480),c=t(95248),d=(t(26699),t(32023),[{id:"deploy",name:"Deploy",description:"",most_popular:!0,priority:1,children:[{id:"deploy.operating-systems",name:"Operating Systems",description:"",most_popular:!0,priority:1,children:[]},{id:"deploy.docker-kubernetes",name:"Docker & Kubernetes",description:"",most_popular:!0,priority:2,children:[]},{id:"deploy.provisioning-systems",parent:"deploy",name:"Provisioning Systems",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection",name:"Data Collection",description:"",most_popular:!0,priority:2,children:[{id:"data-collection.other",name:"Other",description:"",most_popular:!1,priority:-1,collector_default:!0,children:[]},{id:"data-collection.ebpf",name:"eBPF",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.freebsd",name:"FreeBSD",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.containers-and-vms",name:"Containers and VMs",description:"",most_popular:!0,priority:6,children:[]},{id:"data-collection.database-servers",name:"Databases",description:"",most_popular:!0,priority:1,children:[]},{id:"data-collection.kubernetes",name:"Kubernetes",description:"",most_popular:!0,priority:7,children:[]},{id:"data-collection.notifications",name:"Incident Management",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.service-discovery-registry",name:"Service Discovery / Registry",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.web-servers-and-web-proxies",name:"Web Servers and Web Proxies",description:"",most_popular:!0,priority:2,children:[]},{id:"data-collection.cloud-provider-managed",name:"Cloud Provider Managed",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.windows-systems",name:"Windows Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.apm",name:"APM",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.hardware-devices-and-sensors",name:"Hardware Devices and Sensors",description:"",most_popular:!0,priority:4,children:[]},{id:"data-collection.macos-systems",name:"macOS Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.message-brokers",name:"Message Brokers",description:"",most_popular:!0,priority:3,children:[]},{id:"data-collection.provisioning-systems",name:"Provisioning Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.search-engines",name:"Search Engines",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems",name:"Linux Systems",description:"",most_popular:!0,priority:5,children:[{id:"data-collection.linux-systems.system-metrics",name:"System",description:"",most_popular:!0,priority:1,children:[]},{id:"data-collection.linux-systems.memory-metrics",name:"Memory",description:"",most_popular:!0,priority:3,children:[]},{id:"data-collection.linux-systems.cpu-metrics",name:"CPU",description:"",most_popular:!0,priority:2,children:[]},{id:"data-collection.linux-systems.pressure-metrics",name:"Pressure",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.network-metrics",name:"Network",description:"",most_popular:!0,priority:5,children:[]},{id:"data-collection.linux-systems.ipc-metrics",name:"IPC",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.disk-metrics",name:"Disk",description:"",most_popular:!0,priority:4,children:[]},{id:"data-collection.linux-systems.firewall-metrics",name:"Firewall",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.power-supply-metrics",name:"Power Supply",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics",name:"Filesystem",description:"",most_popular:!1,priority:-1,children:[{id:"data-collection.linux-systems.filesystem-metrics.zfs",name:"ZFS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics.btrfs",name:"BTRFS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics.nfs",name:"NFS",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection.linux-systems.kernel-metrics",name:"Kernel",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection.networking-stack-and-network-interfaces",name:"Networking Stack and Network Interfaces",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.synthetic-checks",name:"Synthetic Checks",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ci-cd-systems",name:"CI/CD Platforms",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ups",name:"UPS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.freebsd-systems",name:"FreeBSD Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.logs-servers",name:"Logs Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.security-systems",name:"Security Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.observability",name:"Observability",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.gaming",name:"Gaming",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.iot-devices",name:"IoT Devices",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.media-streaming-servers",name:"Media Services",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.authentication-and-authorization",name:"Authentication and Authorization",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.project-management",name:"Project Management",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.application-servers",name:"Application Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.dns-and-dhcp-servers",name:"DNS and DHCP Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.mail-servers",name:"Mail Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.processes-and-system-services",name:"Processes and System Services",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.storage-mount-points-and-filesystems",name:"Storage, Mount Points and Filesystems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.systemd",name:"Systemd",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.telephony-servers",name:"Telephony Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.vpns",name:"VPNs",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.blockchain-servers",name:"Blockchain Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.distributed-computing-systems",name:"Distributed Computing Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.generic-data-collection",name:"Generic Data Collection",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.p2p",name:"P2P",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.snmp-and-networked-devices",name:"SNMP and Networked Devices",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.system-clock-and-ntp",name:"System Clock and NTP",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.nas",name:"NAS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.api-gateways",name:"API Gateways",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.task-queues",name:"Task Queues",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ftp-servers",name:"FTP Servers",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"export",name:"exporters",description:"Exporter Integrations",most_popular:!0,priority:4,children:[]},{id:"notify",name:"notifications",description:"Notification Integrations",most_popular:!0,priority:3,children:[{id:"notify.agent",name:"Agent Dispatched Notifications",description:"",most_popular:!0,priority:2,children:[]},{id:"notify.cloud",name:"Centralized Cloud Notifications",description:"",most_popular:!0,priority:1,children:[]}]}]),u=[{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:!1},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:!1},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:!1},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:!0},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:!0},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:!0},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:!0},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:!0},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:!0},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:!0},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:!0},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!0},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:!1,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:!0},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:!0},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:!0},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:!1},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:!1},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:!1},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:!0},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!0},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:!1},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:!1},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:!0},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:!0},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:!0},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:!1},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:!1},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:!1,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:!0},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:!1},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:!0},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:!0},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:!1,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:!0},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_\xb5s, 10_\xb5s, 20_\xb5s, 40_\xb5s, 80_\xb5s, 160_\xb5s, 320_\xb5s, 640_\xb5s, 1280_\xb5s, 2560_\xb5s, 5120_\xb5s, 10240_\xb5s, 20480_\xb5s, 40960_\xb5s, +Inf | observes/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent | 5_\xb5s, 10_\xb5s, 20_\xb5s, 40_\xb5s, 80_\xb5s, 160_\xb5s, 320_\xb5s, 640_\xb5s, 1280_\xb5s, 2560_\xb5s, 5120_\xb5s, 10240_\xb5s, 20480_\xb5s, 40960_\xb5s, +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:!0},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:!0},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:!0},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:!1},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:!1},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:!1},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", "<MONGODB_ADMIN_PASSWORD>")\n ```\n\n- Create a user:\n\n ```bash\n db.createUser({\n "user":"netdata",\n "pwd": "<UNIQUE_PASSWORD>",\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:!0},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:!0},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:!1},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:!0},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:!1},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:!0},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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" "<PASSWORD>"\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:!1},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<details>\n<summary>phpDaemon configuration</summary>\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\n<?php\n\nclass MyAppResolver extends \\PHPDaemon\\Core\\AppResolver {\n public function getRequestRoute($req, $upstream) {\n if (preg_match('~^/(ServerStatus|FullStatus)/~', $req->attrs->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\n<?php\nnamespace PHPDaemon\\Applications;\n\nclass FullStatus extends \\PHPDaemon\\Core\\AppInstance {\n public function beginRequest($req, $upstream) {\n return new FullStatusRequest($this, $upstream, $req);\n }\n}\n```\n\n```php\n// /opt/phpdaemon/conf/PHPDaemon/Applications/FullStatusRequest.php\n\n<?php\nnamespace PHPDaemon\\Applications;\n\nuse PHPDaemon\\Core\\Daemon;\nuse PHPDaemon\\HTTPRequest\\Generic;\n\nclass FullStatusRequest extends Generic {\n public function run() {\n $stime = microtime(true);\n $this->header('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</details>\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:!1},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:!1},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:!1},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:!1},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 <INSTALL_PREFIX>/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:!1},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:!0},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:!1},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:!1},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1},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:!0},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:!1},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:!0},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:!1},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:!0},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:!1},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:!0},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:!0},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 | %<st | Total size of reply sent to client (after adaptation). |\n| req_method | %rm | Request method (GET/POST etc). |\n| hier_code | %Sh | Squid hierarchy status (DEFAULT_PARENT etc). |\n| server_address | %<a | Server IP address of the last server or peer connection. |\n| server_address | %<A | Server FQDN or peer name. |\n| mime_type | %mt | MIME content type. |\n\nIn addition, to make `Squid` [native log format](https://wiki.squid-cache.org/Features/LogFormat#Squid_native_access.log_format_in_detail) csv parsable, squidlog understands these groups of codes:\n\n| field | squid format code | description |\n|-------------|-------------------|------------------------------------|\n| result_code | %Ss/%>Hs | Cache code and http code. |\n| hierarchy | %Sh/%<a | Hierarchy code and server address. |\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\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 Squid access log file. | | True |\n| exclude_path | Path to exclude. | | False |\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. | | True |\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.regexp_config | RegExp log parser config. | | False |\n| parser.regexp_config.pattern | RegExp pattern with named groups. | | True |\n\n##### parser.log_type\n\nWeblog supports 3 different log parsers:\n\n| Parser type | Description |\n|-------------|-------------------------------------------|\n| csv | A comma-separated values |\n| ltsv | [LTSV](http://ltsv.org/) |\n| regexp | Regular expression with named groups |\n\nSyntax:\n\n```yaml\nparser:\n log_type: csv\n```\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.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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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<details>\n<summary>See health statuses</summary>\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</details>\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:!1},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:!0},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<details>\n<summary>Example (all not related debug lines were removed)</summary>\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\xb5s\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\xb5s\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\xb5s\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</details>\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:!1,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:!1},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:!1,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: <value>\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:!1,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: <value>\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:!1,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: <value>\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:!1,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: <value>\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:!1,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: <value>\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:!0,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: <value>\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:!1,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:!1,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:!1,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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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 --\x3e Exim Configuration Manager --\x3e 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:!1},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:!1},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:!1},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, <omitted for brevity>}\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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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 <PASSWORD>;\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:!1},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}&current_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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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 <https://linux.die.net/man/8/smartd> 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:!1},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:!1},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:!1},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:!1},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: <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: <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:!1},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:!1},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: '<name-of-varnishd-instance>'\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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1,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:!1,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:!1,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:!1,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:!1,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:!1,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:!0,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:!1,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:!0,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:!0,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:!0,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:!0,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:!1,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:!1,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:!1,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:!1,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:!1,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:!0,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://<hostname>\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` --\x3e `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 <details>\n <summary>Netdata CA certificate</summary>\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 </details>\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 <VirtualHost *:443>\n # ... existing SSL configuration for server authentication ...\n SSLVerifyClient require\n SSLCACertificateFile "/path/to/Netdata_CA.pem"\n </VirtualHost>\n <Directory /var/www/>\n Require expr "%{SSL_CLIENT_S_DN_CN} == \'app.netdata.cloud\'"\n # ... existing directory configuration ...\n </Directory>\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 --\x3e Tags --\x3e 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="<your_incoming_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"}],m=t(86348),h=t(85373),p=t(58591),g=t(41898);function f(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function b(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?f(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):f(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var y=(0,l.cn)({key:"integrationsCategoriesAtom",default:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).hideEmptyCategories,n=void 0===e||e,t=(0,m.bu)(d),o=(0,h.tE)(u),i=[];if(n){var a=(0,m.GP)(o,(function(e){return t.find((function(n){return n.id==e}))}),t);i=t.filter((function(e){var n=e.id;return a.includes(n)}))}else i=t;return i}()}),_=(0,l.cn)({key:"topLevelIntegrationsCategoriesAtom",default:(0,l.nZ)({key:"topLevelIntegrationsCategoriesState",get:function(e){var n=e.get;return(0,m.gP)(n(y))}})}),w=(0,l.cn)({key:"integrationsNavigationHistoryAtom",default:(0,l.nZ)({key:"integrationsNavigationHistoryState",get:function(e){var n=e.get;return function(e){var n,t=e.categories,o=e.integrations,i=(0,p.m$)(),a=i.selectedIntegrationCategory,s=i.selectedIntegration,r=t.find((function(e){return e.id==(a||g.DW)})),l=(0,m.QQ)({category:r,getCategoryById:function(e){return t.find((function(n){return n.id==e}))}}).tree,c=null===(n=o.filter((function(e){return e.id==s})))||void 0===n?void 0:n[0],d=l.filter(Boolean).map((function(e,n){return b(b({},e),{},{type:"category",level:n+1})}));return c&&d.push(b(b({},c),{},{type:"integration"})),d}({categories:n(y),integrations:n(v)})}})}),v=(0,l.cn)({key:"integrationsNormalized",default:(0,l.nZ)({key:"integrationsNormalizedState",get:function(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,h.tE)(u,e)}((0,e.get)(y))}})}),T=(0,l.cn)({key:"integrationsSearchTerm",default:""}),k=(0,l.cn)({key:"integrationsHistoryBeforeSearch",default:null}),x=(0,l.cn)({key:"integrationsModalOpenAtom",default:"true"==(0,p.m$)().integrationsModalOpen}),P=t(67034),C=["flattenedCategory"];function F(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function q(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?F(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):F(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var S=(0,l.nZ)({key:"integrationsQuickStart",get:function(e){var n=(0,e.get)(v).filter((function(e){return e.quickStart>=0}));return(0,h.mi)(n)}}),D=function(){return(0,l.sJ)(k)},A=function(){return(0,l.FV)(k)},M=function(){var e=N(),n=(0,P.Z)(),t=(0,l.FV)(w),i=(0,s.Z)(t,2),d=i[0],u=i[1],h=(0,l.rb)(k),p=(0,c.I0)("selectedIntegrationCategory"),f=(0,s.Z)(p,2)[1],b=(0,c.I0)("selectedIntegration"),y=(0,s.Z)(b,2)[1],_=(0,c.I0)("selectedIntegrationTab"),v=(0,s.Z)(_,2)[1],T=(0,r.useCallback)((function(e){var t=(0,m.QQ)({category:e,getCategoryById:n}).parents,o=[].concat((0,a.Z)(t),[e]).map((function(e,n){return q(q({},e),{},{type:"category",level:n+1})}));u(o),y(""),v(""),h()}),[e,u]),x=(0,r.useCallback)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.flattenedCategory,i=(0,o.Z)(e,C),s=t||(i.categories||[])[0],r=s.categoryId||s.id,l=n(r),c=(0,m.QQ)({category:l,getCategoryById:n}).parents,d=[].concat((0,a.Z)(c),[l]).map((function(e,n){return q(q({},e),{},{type:"category",level:n+1})}));u([].concat((0,a.Z)(d),[q(q({},i),{},{type:"integration"})])),v(""),h()}),[]),F=(0,r.useCallback)((function(){d.length>0&&(u(d.slice(0,d.length-1)),h())}),[d,u]),S=(0,r.useMemo)((function(){var e=d[d.length-1];return"integration"==(null===e||void 0===e?void 0:e.type)?e:null}),[d]),D=(0,r.useMemo)((function(){var e=d.filter((function(e){return"category"==e.type}))||[];return e.length?e[e.length-1]:null}),[d]),A=(0,r.useCallback)((function(){var n=e.find((function(e){return e.id==g.DW})),t=[e.find((function(e){return e.id==n.parentId})),n].filter(Boolean).map((function(e,n){return q(q({},e),{},{type:"category",level:n+1})}));u(t),h()}),[e,u]),M=(0,r.useMemo)((function(){return null===D||void 0===D?void 0:D.level}),[D]);return(0,r.useEffect)((function(){null!==D&&void 0!==D&&D.id&&f(D.id)}),[D]),(0,r.useEffect)((function(){null!==S&&void 0!==S&&S.id&&y(S.id)}),[S]),{history:d,level:M,selectedCategory:D,selectedIntegration:S,pushCategory:T,pushIntegration:x,pop:F,reset:A,setHistory:u}},N=function(){return(0,l.sJ)(y)},H=function(){return(0,l.sJ)(_)},E=function(){var e=M().selectedCategory,n=N(),t=O();return(0,m.KU)({category:e,integrations:t,categories:n})},O=function(){return(0,l.sJ)(v)},I=function(){return(0,l.sJ)(S)},R=function(){return(0,l.sJ)(T)},L=function(){return(0,l.FV)(T)},B=function(){return(0,l.rb)(T)},U=function(){var e=B(),n=M().reset;return function(){e(),n()}},j=function(){return(0,l.FV)(x)}},668:function(e,n,t){t.d(n,{AB:function(){return p},DF:function(){return r},J3:function(){return s},MJ:function(){return l},SZ:function(){return h},ZL:function(){return u},Zb:function(){return d},_K:function(){return m},pV:function(){return f},u6:function(){return g}});var o=t(60677),i=t(15557),a=t(19480),s=o.default.div.withConfig({displayName:"styled__LayoutGrid",componentId:"sc-1kju9s3-0"})(["display:grid;grid-template-columns:"," auto;column-gap:32px;padding:0 24px;height:calc( 100vh - ","px - ","px );@media screen and ","{grid-template-columns:"," auto;}@media screen and ","{grid-template-columns:"," auto;}"],(function(e){return e.isSidebarCollapsed?"".concat(60,"px"):"35%"}),(function(e){return(0,a.CF)(e.flavour)}),(function(e){return(0,a.CY)(e.flavour)}),i.breakpoints.laptop,(function(e){return e.isSidebarCollapsed?"".concat(60,"px"):"30%"}),i.breakpoints.desktop,(function(e){return e.isSidebarCollapsed?"".concat(60,"px"):"25%"})),r=o.default.div.withConfig({displayName:"styled__StyledVirtualRow",componentId:"sc-1kju9s3-1"})(["display:grid;grid-template-columns:repeat(",",1fr);grid-auto-rows:","px;column-gap:16px;row-gap:16px;"],(function(e){return e.itemsPerRow}),(function(e){var n=e.rowHeight;return n>16?n-16:n})),l=(0,o.default)(i.Flex).withConfig({displayName:"styled__CategoryWrapper",componentId:"sc-1kju9s3-2"})(["cursor:pointer;&:hover{background-color:",";}"],(0,i.getColor)("integrationMenuItemHover")),c={Light:"#fff, #dbe1e1",Dark:"#242b2b, #040505",Default:"#fff, #dbe1e1"},d=(0,o.default)(i.Flex).withConfig({displayName:"styled__Card",componentId:"sc-1kju9s3-3"})(["background:radial-gradient(",");"],(function(e){var n=e.theme;return c[null===n||void 0===n?void 0:n.name]})),u=o.default.div.withConfig({displayName:"styled__CardOverlay",componentId:"sc-1kju9s3-4"})(["position:absolute;width:100%;top:0;bottom:0;background:radial-gradient(",",#282c34);opacity:0.1;"],(function(e){return e.background})),m=(0,o.default)(i.Icon).withConfig({displayName:"styled__CardIcon",componentId:"sc-1kju9s3-5"})(["position:absolute;top:-20px;left:-35px;transform:rotate(40deg);opacity:0.1;transition:all 200ms ease-in-out;&&.hover{transform:rotate(40deg) scale(1.2);}"]),h=(0,o.default)(i.Flex).withConfig({displayName:"styled__CardDescription",componentId:"sc-1kju9s3-6"})(["position:absolute;bottom:0;left:0;transform:translateY(100%);transition:all 200ms ease-in-out;&&.hover{transform:translateY(0);}"]),p=o.default.table.withConfig({displayName:"styled__ContentTable",componentId:"sc-1kju9s3-7"})(["width:100%;border:1px solid ",";margin-top:16px;tr:nth-child(even){background:",";}th{padding:8px 16px;background:",";}td{padding:6px;}"],(0,i.getColor)("borderSecondary"),(0,i.getColor)("mainBackground"),(0,i.getColor)("mainBackground")),g=(0,o.default)(i.PortalSidebar).withConfig({displayName:"styled__SidebarModal",componentId:"sc-1kju9s3-8"})(["width:calc(100vw - 54px);z-index:35;background:",";overflow:",";"],(0,i.getColor)("mainBackground"),(function(e){var n=e.overflow;return void 0===n?"hidden":n})),f=(0,o.default)(i.Icon).withConfig({displayName:"styled__CategoryArrow",componentId:"sc-1kju9s3-9"})(["opacity:",";"],(function(e){return e.disabled?"0":"1"}))},86348:function(e,n,t){t.d(n,{GP:function(){return x},KT:function(){return y},KU:function(){return w},Ov:function(){return f},QQ:function(){return T},XB:function(){return P},bu:function(){return g},gP:function(){return b},tu:function(){return v}});t(47941),t(82526),t(38880),t(49337),t(33321),t(69070);var o=t(29439),i=t(93433),a=t(4942),s=t(45987),r=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(15581),t(34514),t(54747),t(2707),t(57327),t(88449),t(59849),t(21249),t(57640),t(9924),t(26699),t(32023),t(69826),t(31672),t(59461),t(47042),t(66992),t(70189),t(78783),t(88921),t(96248),t(13599),t(11477),t(64362),t(15389),t(90401),t(45164),t(91238),t(54837),t(87485),t(56767),t(76651),t(61437),t(35285),t(39865),t(33948),t(91038),t(69720),t(50308)),l=t.n(r),c=t(41898),d=t(64637),u=t(19480),m=["children","most_popular"];function h(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function p(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?h(Object(t),!0).forEach((function(n){(0,a.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):h(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=function e(){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce((function(t,o){t.push(function(e){e.children;var n=e.most_popular,t=(0,s.Z)(e,m),o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(p({},t),{},{name:(0,d.fm)(t.name),mostPopular:n,parentId:o})}(o,n));var a=o.children||[];return t=[].concat((0,i.Z)(t),(0,i.Z)(e(a,o.id)))}),[])},f=function(){var e=[],n=[];(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(t){void 0!==t.priority&&t.priority>=0?e.push(t):n.push(t)}));var t=[],o=[];n.forEach((function(e){e.mostPopular?t.push(e):o.push(e)}));var a=(0,u.BO)("priority"),s=(0,u.Of)("name"),r=[].concat((0,i.Z)(e.sort(a)),(0,i.Z)(t.sort(s)));return{categories:[].concat((0,i.Z)(r),(0,i.Z)(o.sort(s))),popular:r,rest:o}},b=function(){return((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])||[]).filter((function(e){return null==e.parentId}))},y=function(e){var n=e.category;return e.categories.filter((function(e){var t=e.parentId;return n.id==t}))},_=function e(n){var t=n.category,o=n.categories,i=n.allSubcategories,a=void 0===i?[]:i;return(y({category:t,categories:o})||[]).forEach((function(n){a.push(n),e({category:n,categories:o,allSubcategories:a})})),a},w=function(e){var n=e.category,t=void 0===n?{}:n,o=e.integrations,a=void 0===o?[]:o,s=e.categories;if(null==t)return[];var r=_({category:t,categories:void 0===s?[]:s}),l=[t.id].concat((0,i.Z)(r.map((function(e){return e.id}))));return a.filter((function(e){for(var n=e.categories.map((function(e){return e.categoryId})),t=0;t<n.length;t++)if(l.includes(n[t]))return!0;return!1}))},v=function e(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=t.find((function(e){return e.id==n}));return o?null===o.parentId?c.JZ[o.id]:e(o.parentId,t):null},T=function(e){var n=e.category,t=e.getCategoryById,o=void 0===t?l():t,i=function(e){return((null===e||void 0===e?void 0:e.id)||"").split(".").reduce((function(e,n){return e.length?e.push([e[e.length-1],n].join(".")):e.push(n),e}),[])}(n).map((function(e){return o(e)}));return{tree:i,parents:i.length>1?i.slice(0,i.length-1):[],topLevelCategory:i[0]}},k=function e(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l(),o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l(),i=arguments.length>3?arguments[3]:void 0;if(n){var a=o(n);if(a){t(a);var s=i.find((function(e){return e.id==(null===a||void 0===a?void 0:a.parentId)}));s&&e(s.id,t,o,i)}}},x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l(),t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=new Set,i=function(e){return o.add(e.id)};return e.forEach((function(e){e.categories.forEach((function(e){var o=e.categoryId;k(o,i,n,t)}))})),Array.from(o)},P=function(e){var n=e.height,t=e.topLevelCategories,i=void 0===t?[]:t,a=e.categories,s=void 0===a?[]:a,r=e.setState,d=void 0===r?l():r,u={};if(!n||!i.length||!s.length)return u;var m=Math.floor((n/i.length-c.vE)/c.vE);i.forEach((function(e){var n=y({category:e,categories:s});u[e.id]={subcategories:n.length,limit:n.length>m?m:0}})),Object.entries(u).forEach((function(e){var n=(0,o.Z)(e,2),t=n[0],i=n[1],a=i.subcategories,s=i.limit;t!=c.Kl&&s<m&&(u[c.Kl]=p(p({},u[c.Kl]),{},{limit:u[c.Kl].limit+(m-a)}))})),d(u)}},19480:function(e,n,t){t.d(n,{$O:function(){return l},BO:function(){return a},CF:function(){return s},CY:function(){return r},Of:function(){return i}});t(21249),t(57640),t(9924),t(69826),t(41539),t(31672),t(2490),t(59461),t(69720),t(26699),t(32023);var o=t(41898),i=function(e){return function(n,t){return n[e]<t[e]?-1:n[e]>t[e]?1:0}},a=function(e){return function(n,t){return n[e]-t[e]}},s=function(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.p1;return(null===(e=o.xN[n])||void 0===e||null===(e=e.header)||void 0===e?void 0:e.height)||0},r=function(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.p1;return(null===(e=o.xN[n])||void 0===e||null===(e=e.cncf)||void 0===e?void 0:e.height)||0},l=function e(n){var t;return"string"===typeof n?n:Array.isArray(n)?n.map(e).join(""):null!==n&&void 0!==n&&null!==(t=n.props)&&void 0!==t&&t.children?e(n.props.children):""}},85373:function(e,n,t){t.d(n,{QJ:function(){return b},cW:function(){return f},mi:function(){return g},tE:function(){return p}});var o=t(93433),i=t(4942),a=t(45987),s=(t(21249),t(57640),t(9924),t(69826),t(41539),t(31672),t(2490),t(59461),t(15581),t(34514),t(54747),t(92222),t(2707),t(57327),t(88449),t(59849),t(26699),t(32023),t(85827),t(25387),t(72608),t(47941),t(82526),t(38880),t(49337),t(33321),t(69070),t(50308)),r=t.n(s),l=t(66152),c=t(19480),d=["meta"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[e.installDescription,"{% command methods=$methods isNightly=$isNightly claimToken=$claimToken claimUrl=$claimUrl claimRooms=$claimRooms /%}",e.additionalInfo,e.platformInfo].join("\n\n")},p=function(){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((function(n){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.meta,t=void 0===n?{}:n,o=(0,a.Z)(e,d),i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],s=t.monitored_instance,r=t.keywords,c=void 0===r?[]:r,u=t.most_popular,p=t.community,g=s||t,f=g.name,b=g.categories,y=void 0===b?[]:b,_=g.icon_filename,w="deploy"==o.integration_type;return(0,l.k5)(m(m({name:f,categories:y.map((function(e){var n=i.find((function(n){return n.id==e}));return{categoryId:e,name:null===n||void 0===n?void 0:n.name}})),icon:"https://www.netdata.cloud/img/"+_,keywords:c,mostPopular:u,community:p},o),w?{deployContent:h({installDescription:o.install_description,methods:o.methods,additionalInfo:o.additional_info,platformInfo:o.platform_info})}:{}))}(n,e)}))},g=function(){var e=[],n=[];(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(t){void 0!==t.quickStart&&t.quickStart>=0?e.push(t):n.push(t)}));var t=[],i=[];n.forEach((function(e){e.mostPopular?t.push(e):i.push(e)}));var a=[],s=[];i.forEach((function(e){e.community?s.push(e):a.push(e)}));var r=(0,c.BO)("quickStart"),l=(0,c.Of)("name");return[].concat((0,o.Z)(e.sort(r)),(0,o.Z)(t.sort(l)),(0,o.Z)(a.sort(l)),(0,o.Z)(s.sort(l)))},f=function(e){var n=e.searchTerm,t=void 0===n?"":n,i=e.integrations,a=void 0===i?[]:i;if(!t)return a;var s=t.toLocaleLowerCase();return a.filter((function(e){var n=e.name,t=e.keywords,i=e.categories,a=void 0===i?[]:i;if(n.toLocaleLowerCase().includes(s))return!0;var r=a.map((function(e){return e.name})).filter(Boolean);return[].concat((0,o.Z)(t),(0,o.Z)(r)).join(",").toLocaleLowerCase().includes(s)}))},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r();return e.reduce((function(e,t){return t.categories.forEach((function(o){e.push(function(e,n,t){return m(m({},e),{},{flattenedKey:"".concat(e.id,"-").concat(n.categoryId),flattenedCategory:t(n.categoryId)})}(t,o,n))})),e}),[])}},82040:function(e,n,t){t.d(n,{IC:function(){return g},Sq:function(){return h},cA:function(){return b},l9:function(){return p}});var o=t(87462),i=t(15861),a=t(64687),s=t.n(a),r=(t(92222),t(67294)),l=t(15557),c=t(55899),d="delete-node-dialog",u="deleteNodeDialog",m=function(e){var n=1===e;return"Delete ".concat(e," ").concat(n?"node":"nodes")},h=function(e){return"Delete ".concat(e," node")},p=function(e){var n=e.name,t=e.nodesLength;return t?1===t&&n?h(n):m(t):""},g=function(e){var n=e.name;return r.createElement(r.Fragment,null,"You are about to delete offline node ",r.createElement("strong",null,n),".",r.createElement("br",null),"Node will be removed from all rooms and will no longer be accessible. Plus all metadata will be removed.",r.createElement("br",null),"Are you sure you want to continue?")},f=function(e){var n=e.nodesLength,t=1===n;return r.createElement(r.Fragment,null,"You are about to delete ",t?"this":"these"," ",r.createElement("strong",null,n," offline ",t?"node":"nodes"),".",r.createElement("br",null),t?"Node":"Nodes"," will be removed from all rooms and will no longer be accessible. Plus all metadata will be removed.",r.createElement("br",null),"Are you sure you want to continue?")},b=function(e){var n=e.name,t=e.nodesLength;return t?1===t&&n?r.createElement(g,{name:n}):r.createElement(f,{nodesLength:t}):""};n.ZP=function(e){var n=e.ids,t=void 0===n?[]:n,a=e.name,p=e.onClose,b=(0,c.Z)(),y=function(){var e=(0,i.Z)(s().mark((function e(){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,b(t);case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),_=a?{"data-ga":"".concat(d,"-with-name"),"data-testid":"".concat(u,"WithName"),message:r.createElement(g,{name:a}),title:h(a)}:{"data-ga":"".concat(d,"Bulk"),"data-testid":"".concat(u,"Bulk"),message:r.createElement(f,{nodesLength:t.length}),title:m(t.length)};return r.createElement(l.ConfirmationDialog,(0,o.Z)({confirmLabel:"Yes, delete",handleConfirm:y,handleDecline:p},_))}},5633:function(e,n,t){t.d(n,{Br:function(){return h},O3:function(){return f},ar:function(){return y},d1:function(){return g}});var o=t(87462),i=t(15861),a=t(64687),s=t.n(a),r=(t(92222),t(67294)),l=t(15557),c=t(27624),d=t(37518),u="remove-node-dialog",m="removeNodeDialog",h=function(e){return"Remove ".concat(e," node")},p=function(e){var n=1===e;return"Remove ".concat(e," ").concat(n?"node":"nodes")},g=function(e){var n=e.name,t=e.nodesLength;return t?1===t&&n?h(n):p(t):""},f=function(e){var n=e.name,t=e.roomName;return r.createElement(r.Fragment,null,"You are about to remove ",r.createElement("strong",null,n)," from room ",r.createElement("strong",null,t),".",r.createElement("br",null),"Are you sure you want to continue?")},b=function(e){var n=e.nodesLength,t=e.roomName,o=1===n;return r.createElement(r.Fragment,null,"You are about to remove"," ",r.createElement("strong",null,n," ",o?"node":"nodes")," ","from room ",r.createElement("strong",null,t),".",r.createElement("br",null),"Are you sure you want to continue?")},y=function(e){var n=e.name,t=e.nodesLength,o=e.roomName;return t?1===t&&n?r.createElement(f,{name:n,roomName:o}):r.createElement(b,{nodesLength:t,roomName:o}):""};n.ZP=function(e){var n=e.ids,t=void 0===n?[]:n,a=e.name,g=e.onClose,y=(0,c.Z)(),_=t.length,w=(0,d.Hm)("name"),v=function(){var e=(0,i.Z)(s().mark((function e(){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,y(t);case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),T=a?{"data-ga":"".concat(u,"WithName"),"data-testid":"".concat(m,"WithName"),message:r.createElement(f,{name:a,roomName:w}),title:h(a)}:{"data-ga":"".concat(u,"Bulk"),"data-testid":"".concat(m,"Bulk"),message:r.createElement(b,{nodesLength:_,roomName:w}),title:p(_)};return r.createElement(l.ConfirmationDialog,(0,o.Z)({handleConfirm:v,handleDecline:g},T))}},89014:function(e,n,t){t.d(n,{m4:function(){return h},aJ:function(){return u},Ho:function(){return d},h8:function(){return c},Id:function(){return m},d6:function(){return g},Lo:function(){return p},En:function(){return f}});var o,i=t(4942),a="clear",s="warning",r="critical",l="unreachable",c="N/A",d={groupsOrder:{alertStatus:(o={},(0,i.Z)(o,r,1),(0,i.Z)(o,s,2),(0,i.Z)(o,a,3),(0,i.Z)(o,l,4),o),nodeStatus:{Online:1,Stale:2,Offline:3}},prioritySettings:{unprioritizedGroupsPlacement:1}},u=48,m=88,h=75,p=74,g=2,f=0},89050:function(e,n,t){t.d(n,{Aw:function(){return R},Br:function(){return L},Dy:function(){return x},I$:function(){return b},Lt:function(){return k},MC:function(){return F},O2:function(){return P},Q5:function(){return T},V3:function(){return p},_0:function(){return y},cB:function(){return C},jG:function(){return B},jo:function(){return I},kR:function(){return w},oy:function(){return f},yK:function(){return M},yo:function(){return A},ys:function(){return S}});t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(15861),i=t(4942),a=t(64687),s=t.n(a),r=(t(85827),t(41539),t(25387),t(2490),t(72608),t(66992),t(33948),t(92222),t(69826),t(31672),t(59461),t(47941),t(47042),t(26699),t(32023),t(57327),t(88449),t(59849),t(21249),t(57640),t(9924),t(67294)),l=t(41379),c=t(71172),d=t(89014);function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=function(e,n){return e.reduce((function(e,t){var o="".concat(t.values[n]);return e[o]=Array.isArray(e[o])?e[o]:[],e[o].push(t),e}),{})},p=function(e,n){return h(e,"services"===n?"nodeStatus":n)},g=function(e){var n,t,o=e.isLive,i=e.health,a=void 0===i?{}:i;return o?null!==(n=a.alerts)&&void 0!==n&&n.critical?"critical":null!==(t=a.alerts)&&void 0!==t&&t.warning?"warning":"clear":"unreachable"},f=function(e,n){return m(m({},e),{},{alertStatus:g(e),nodeStatus:T(e.state),virtualRowHeight:n})},b=function(e,n){var t=n[e];return t.isVirtualGroupHeader?d.aJ:t.original.virtualRowHeight},y=function(e,n){var t,o=n.orderedRows[e]||{};return(null===o||void 0===o||null===(t=o.original)||void 0===t?void 0:t.id)&&"".concat(o.original.id,"_").concat(e)||o.id||e},_=function(e){return e>9?"9+":"".concat(e)},w=function(e){var n=e.count,t=e.dataTestId,o=e.isLive,i=e.onAlertClick,a=e.type,s=t?"".concat(t,"-alertIndicator"):"alertIndicator",r={"data-testid":"".concat(s,"-").concat(a)};return o?m(m(m(m({},r),n&&{flavour:"critical"===a?"error":"warning"}),n&&i&&{onClick:function(){return i(a)}}),{},{text:_(n)}):r},v={created:"Unseen",reachable:"Live",stale:"Stale",unreachable:"Offline"},T=function(e){return v[e]||v.stale},k=function(e){return"created"===e?"Pending":"Completed"},x=function(e){return e?{background:"nodeBadgeBackground",border:"successText",color:"successText",label:"ON",status:"ON"}:{background:"nodeBadgeBackground",border:"warningText",color:"warningText",label:"OFF",status:"OFF"}},P=function(e){return!e||"unknown"===e},C=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:" \u2022 ";return P(e)?d.h8:"".concat(e).concat(t).concat(n)},F=function(e,n){return P(e)?d.h8:n?"".concat(e," ").concat(n):e},q={HZ:1,KHz:1e3,MHz:1e6,GHz:1e9,THz:1e12,PHz:1e15,EHz:1e18},S=function(e){if(P(e))return d.h8;var n=Object.keys(q).find((function(n){return 1e3>e/q[n]}));return"".concat((e/=q[n]).toFixed(2)," ").concat(n||"")},D={B:1,KiB:1024,MiB:1048576,GiB:1073741824,TiB:1099511627776,PiB:0x4000000000000,EiB:0x1000000000000000},A=function(e){if(P(e))return d.h8;var n=Object.keys(D).find((function(n){return 1024>e/D[n]}));return"".concat((e/=D[n]).toFixed(2)," ").concat(n||"")},M=function(e,n,t,o,i){var a={Live:r.createElement(r.Fragment,null,"is currently connected"),Offline:r.createElement(r.Fragment,null,"is currently not connected"),Stale:r.createElement(r.Fragment,null,"is currently not",r.createElement("br",null),"connected and has",r.createElement("br",null),"only historical data")},s={actionObsolete:r.createElement(r.Fragment,null,"Delete Node"),actionRemove:r.createElement(r.Fragment,null,"Remove Node from room"),alerts:r.createElement(r.Fragment,null,"The current Critical and",r.createElement("br",null),"Warning alerts for",r.createElement("br",null),o),cloudInfo:r.createElement(r.Fragment,null,o,r.createElement("br",null),"cloud information:",r.createElement("br",null),"Cloud Provider \u2022 Instance Type"),connectivity:n in a?r.createElement(r.Fragment,null,o,r.createElement("br",null),a[n]):r.createElement(r.Fragment,null),info:r.createElement(r.Fragment,null,"View node information"),k8s:r.createElement(r.Fragment,null,o," runs on Kubernetes cluster"),kernel:r.createElement(r.Fragment,null,"Kernel information of ",o),ml:r.createElement(r.Fragment,null,"Machine Learning status of ",o," is: ",t),fn:r.createElement(r.Fragment,null,"Functions capability of ",o," is: ",t),functions:r.createElement(r.Fragment,null,o," functions"),systemInfo:r.createElement(r.Fragment,null,o,r.createElement("br",null),"hardware information:",r.createElement("br",null),"O/S \u2022 CPU Frequency \u2022 CPU Cores \u2022 Architecture \u2022 Memory \u2022 Hard Disk Space"),type:r.createElement(r.Fragment,null,"The type of ",o,r.createElement("br",null),"is: ",i)};return e in s?s[e]:""},N={none:!0,null:!0,unknown:!0},H=function(e){return!!e&&!N[e]},E={container:"container","container-other":"container",other:"container"},O={"$(systemd-detect-virt -v)":"vm","$(systemd-detect-virt -v) docker-compose up":"vm","${VIRTUALIZATION}":"vm","(systemd-detect-virt -v)":"vm","detect-virt -v":"vm",lxc:"vm","none #vmware":"vmware",other:"vm","systemd-detect-virt -v":"vm",unknown:"vm","vm-other":"vm","VMware Virtual Platform":"vmware"},I=function(e,n){return H(e)?{icon:"container",iconSize:"18px",label:E[e]||e}:H(n)?{icon:"cluster",iconSize:"18px",label:O[n]||n}:{icon:"ram",iconSize:"14px",label:"Bare Metal"}},R=function(e){var n=e.orderedRows,t=e.start,o=e.end;return n.slice(t,o+1).reduce((function(e,n){return n.original&&!e.includes(n.original.id)&&e.push(n.original.id),e}),[])},L=function(){var e=(0,o.Z)(s().mark((function e(n){var t,o,i,a,r,d;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.cacheKeyPrefix,o=n.nodeIds,i=n.roomId,a=n.spaceId,r=function(e){return e.results.filter((function(e){return!o.includes(e.id)}))},d="".concat(t).concat((0,l.A)({id:i,spaceId:a})),e.next=5,(0,c.c)({key:d,handleResults:r});case 5:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),B=function(){var e=(0,o.Z)(s().mark((function e(n){var t,i,a,r,d;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=n.cacheKeyPrefix,i=n.nodeIds,a=n.roomIds,r=n.spaceId,d=function(e){return e.results.filter((function(e){return!i.includes(e.id)}))},a.map(function(){var e=(0,o.Z)(s().mark((function e(n){var o;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o="".concat(t).concat((0,l.A)({id:n,spaceId:r})),e.next=3,(0,c.c)({key:o,handleResults:d});case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}());case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()},18129:function(e,n,t){t.d(n,{Z:function(){return $}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(67294),a=t(15557),s=t(96929),r=t(89149),l=t(33335),c=t(29439),d=(t(26699),t(32023),t(21249),t(57640),t(9924),t(89250)),u=t(37518),m=t(97945),h=t(46322),p=(t(64211),t(41874),t(11389)),g=(t(92222),t(62200)),f=t(64637),b=t(89050),y=function(e){var n=e.icon,t=e.status,o=e.handleNavigateToDocs,s=e.message;return i.createElement(a.Flex,{column:!0,width:{max:"200px"},gap:2},i.createElement(a.Flex,{alignItems:"center",gap:2},i.createElement(a.Icon,{name:n,color:"bright",size:"small"}),i.createElement(a.TextMicro,{color:"white"},(0,f.fm)(t))),i.createElement(a.Flex,{column:!0,gap:2},i.createElement(a.TextMicro,{color:"white"},s),o&&i.createElement(a.TextMicro,{"data-testid":"text-agent-outdated-critical",color:"white"},i.createElement(a.Box,{"data-testid":"open-add-node",onClick:o,as:a.TextMicro,cursor:"pointer",textDecoration:"underline",color:"white"}," ","Check here"," "),"for troubleshooting")))},_=function(e){var n=e.state,t=e.name,o=(0,b.Lt)(n),s=g.R7[o.toLocaleLowerCase()],r=s.icon,l=s.text,c=s.textColor,d=s.indicatorWrapperColor,u=s.tooltip,m=(0,i.useCallback)((function(){window.open("https://learn.netdata.cloud/guides/troubleshoot/troubleshooting-agent-with-cloud-connection","_blank","noopener,noreferrer")}),[]),h="".concat(t," ").concat(u);return i.createElement(a.Tooltip,{allowHoverOnTooltip:!0,content:i.createElement(y,{message:h,icon:r,status:l,handleNavigateToDocs:"Pending"===o?m:void 0})},i.createElement(a.Flex,{margin:[0,"auto",0,"auto"],height:"20px",padding:[.5,0],border:{side:"all",color:d},background:"nodeBadgeBackground",justifyContent:"center",width:30,round:4,gap:2,alignItems:"center"},i.createElement(a.Icon,{name:r,size:"small",color:c}),i.createElement(a.TextMicro,{strong:!0,color:c},l)))},w=t(86711),v=t(83925);function T(e,n){return e===n?0:e>n?1:-1}var k=[{id:"agent",accessorKey:"name",enableColumnFilter:!1,filterFn:function(e,n,t){var o,i=(null===(o=e.original)||void 0===o?void 0:o.name)||"";return null===i||void 0===i?void 0:i.toLowerCase().includes(t)},header:"Name",cell:function(e){var n=e.getValue;return i.createElement(a.TextSmall,null,n())},size:120},{id:"version",accessorKey:"version",header:"Version",cell:function(e){var n=e.getValue,t=e.row;return i.createElement(a.Flex,{gap:1,flexWrap:!0},i.createElement(a.Pill,{color:"neutralPillColor",hollow:!0,margin:[1,0]},n()),t.original.updateSeverity&&i.createElement(v.Z,{name:t.original.name,os:t.original.os.id,container:t.original.hw.container,warningLevel:"critical"===t.original.updateSeverity?"critical":"warning",labels:t.original.labels,version:n(),margin:[1,0]}))},minSize:50},{id:"state",accessorKey:"state",header:"Status",cell:function(e){var n=e.getValue;return i.createElement(p.Z,{state:n()})},sortingFn:function(e,n){return T((0,b.Q5)(e.original.state),(0,b.Q5)(n.original.state))},enableColumnFilter:!0,filterFn:function(e,n,t){var o=e.original.state;return t.length<1||t.some((function(e){var n=e.value;return"all"===n||n===(0,b.Q5)(o)}))},meta:{filter:{component:"select",isMulti:!0,options:[{value:"Offline",label:"Offline"},{value:"Live",label:"Live"},{value:"Stale",label:"Stale"},{value:"Unseen",label:"Unseen"}]},tooltip:i.createElement(w.Z,null)}},{id:"connectionToCloud",accessorKey:"state",header:"Connection To Cloud",cell:function(e){var n=e.getValue,t=e.row.original;return i.createElement(_,{state:n(),name:t.name})},sortingFn:function(e,n){return T((0,b.Lt)(e.original.state),(0,b.Lt)(n.original.state))},enableColumnFilter:!0,filterFn:function(e,n,t){var o=e.original.state;return t.length<1||t.some((function(e){var n=e.value;return"all"===n||("created"===o&&"created"===n||("created"!==o&&"completed"===n||void 0))}))},size:50,meta:{filter:{component:"select",isMulti:!0,options:[{value:"created",label:"Pending"},{value:"completed",label:"Completed"}]}}},{id:"updateSeverity",accessorKey:"updateSeverity",header:"Severity",cell:function(e){var n=e.getValue,t=e.row.original;return i.createElement(v.Z,{name:t.name,os:t.os.id,container:t.hw.container,warningLevel:t.updateSeverity,labels:t.labels||{},version:t.version,text:n()})}}],x=t(46667),P=t(15861),C=t(64687),F=t.n(C),q=t(82040),S=t(5633),D=t(55899),A=t(27624);function M(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var N=function(e){return Array.isArray(e)?e.filter((function(e){return!e.hasAccessibleData})):e.hasAccessibleData?[]:[{id:e.id}]},H=function(e){return Array.isArray(e)?e:[{id:e.id}]},E=function(e){var n=e.openClaimNodeModal,t=e.roomUntouchable,a=e.isSpace,s=(0,D.Z)(),r=(0,A.Z)(),c=(0,u.Hm)("name"),d=(0,l.gI)("node:Delete"),m=(0,l.gI)("room:RemoveNode"),h=(0,l.gI)("node:Create"),p=(0,l.gI)("room:AddNode"),g=function(){var e=(0,P.Z)(F().mark((function e(n,t){var o,i;return F().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return");case 2:return o=N(n),i=o.map((function(e){return e.id})),e.next=6,s(i);case 6:t.resetRowSelection();case 7:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}(),f=function(){var e=(0,P.Z)(F().mark((function e(n,t){var o,i;return F().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return");case 2:return o=H(n),i=o.map((function(e){return e.id})),e.next=6,r(i);case 6:t.resetRowSelection();case 7:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}(),b=(0,i.useMemo)((function(){return{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){return i.createElement(q.IC,{name:e.name})},confirmationTitle:function(e){return(0,q.Sq)(e.name)},declineLabel:"Cancel",disabledTooltipText:d?"Delete is disabled":"Only admins can delete",handleAction:g,isVisible:!!a,isDisabled:function(e){return e.disabled||!d},tooltipText:"Delete node from space"},remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e){return i.createElement(S.O3,{name:e.name,roomName:c})},confirmationTitle:function(e){return(0,S.Br)(e.name)},declineLabel:"Cancel",handleAction:f,tooltipText:"Remove node from room",isVisible:!a,isDisabled:function(e){return e.disabled||t||!m},disabledTooltipText:t?"Remove is disabled":"Only admins can remove"}}}),[q.IC,q.Sq,S.Br,g,f,S.O3,t,a,d,m]),y=(0,i.useMemo)((function(){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?M(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):M(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({addEntry:{disabledTooltipText:a?"Only admins can connect new nodes":"Only admins can add nodes to the room",handleAction:n,isDisabled:a?!h:!(h||p&&!t),tooltipText:a?"Connect new nodes to space":"Add nodes to room"}},a?{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e,n){return i.createElement(q.cA,{name:n[0].name,nodesLength:n.length})},confirmationTitle:function(e,n){return(0,q.l9)({name:n[0].name,nodesLength:n.length})},disabledTooltipText:d?"Delete is disabled":"Only admins can delete",declineLabel:"Cancel",handleAction:g,isDisabled:!d,tooltipText:"Delete nodes from space"}}:{remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e,n){return i.createElement(S.ar,{name:n[0].name,nodesLength:n.length,roomName:c})},confirmationTitle:function(e,n){return(0,S.d1)({name:n[0].name,nodesLength:n.length})},declineLabel:"Cancel",disabledTooltipText:t?"Remove is disabled":"Only admins can remove",handleAction:f,isDisabled:t||!m,tooltipText:"Remove nodes from room"}})}),[q.cA,q.l9,S.d1,g,f,h,d,m,S.ar,t,a]);return{rowActions:b,bulkActions:y,hasPermissionToDelete:d,hasPermissionToRemove:m}};function O(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function I(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?O(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var R={name:!1,updateSeverity:!1,connectionToCloud:!1},L=[{id:"state",desc:!1}],B=function(e){var n=e.roomUntouchable,t=e.customNodes,o=e.alwaysEnableNodeSelection,a=e.isSpace,r=(0,d.UO)().roomSlug,l=(0,u.UL)(r),p=(0,s.X7)(l,"ids"),g=(0,m.Ne)(p),f=(0,i.useMemo)((function(){return(0,h.C)(t||g)}),[t,p]),y=(0,i.useState)(""),_=(0,c.Z)(y,2)[1],w=(0,x.Z)(),v=(0,c.Z)(w,4),T=v[0],P=v[2],C=v[3],F=E({openClaimNodeModal:P,roomUntouchable:n,isSpace:a}),q=F.rowActions,S=F.bulkActions,D=F.hasPermissionToDelete,A=F.hasPermissionToRemove,M=(0,i.useCallback)((function(e,n,t){var o=t.toLowerCase(),i=e.getValue("agent").toLowerCase(),a=(0,b.Q5)(e.getValue("state")).toLocaleLowerCase(),s=(0,b.Lt)(e.getValue("connectionToCloud")).toLocaleLowerCase(),r=(e.getValue("updateSeverity")||"").toLocaleLowerCase(),l=e.getValue("version").toLowerCase();return i.includes(o)||a.includes(o)||l.includes(o)||s.includes(o)||r.includes(o)}),[]);return{nodes:f.map((function(e){return I(I({},e),{},{disabled:a?!D||!o&&e.hasAccessibleData:!A})}))||[],nodeIds:p,columns:k,rowActions:q,bulkActions:S,isClaimNodeModalOpen:T,sortBy:L,columnVisibility:R,setGlobalFilter:_,openClaimNodeModal:P,closeClaimNodeModal:C,globalFilterFn:M}},U=t(90025),j=t(74059),G=t(33582),z=t(16645),Y=t(7693),X=t(8741),Z=function(e){var n=e.onClose,t=(0,j.th)(),o=(0,u.UL)(),s=(0,i.useState)((function(){return o?[o]:[]})),r=(0,c.Z)(s,2),l=r[0],d=r[1];return(0,G.Z)(t),i.createElement(z.u6,{onClose:n,"data-testid":"addNodes",right:!0,closeOnEsc:!0,closeOnOverlayClick:!0},i.createElement(Y.x,{"data-testid":"addNodes-header",title:"Add Nodes",onClose:n}),i.createElement(z.TZ,{hasModalTitle:!1},i.createElement(a.Flex,{column:!0,"data-testid":"manageClaimedNodes-controls",gap:3},i.createElement(U.Z,{placeholder:"Select Rooms",selectedValue:l,onChange:d}),i.createElement(X.Z,{rooms:l}))))};function W(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function K(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?W(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):W(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var $=function(e){var n=e.roomUntouchable,t=e.showClaimNodeOnEmptySpace,o=void 0!==t&&t,c=e.customNodes,d=void 0===c?[]:c,u=e.customBulkActions,m=e.customRowActions,h=e.enableSelection,p=void 0===h||h,g=e.showdDefaultRowActions,f=void 0===g||g,b=e.showDefaultBulkActions,y=void 0===b||b,_=e.onRowSelected,w=e.onClickRow,v=e.disableClickRow,T=e.columnVisibility,k=e.customSortBy,x=e.showClaimModalWithRoomSelection,P=void 0!==x&&x,C=e.alwaysEnableNodeSelection,F=void 0!==C&&C,q=e.isSpace,S=B({roomUntouchable:n,customNodes:d,alwaysEnableNodeSelection:F,isSpace:q,showClaimModalWithRoomSelection:P}),D=S.nodes,A=S.columns,M=S.rowActions,N=S.bulkActions,H=S.sortBy,E=S.isClaimNodeModalOpen,O=S.openClaimNodeModal,I=S.closeClaimNodeModal,R=S.columnVisibility,L=S.setGlobalFilter,U=S.globalFilterFn,j=(0,l.gI)("node:Create"),G=(0,s.fD)();(0,i.useEffect)((function(){G&&o&&j&&0===D.length&&O()}),[G]);var z=(0,i.useMemo)((function(){return K(K({},R),T)}),[R,T]);return i.createElement(i.Fragment,null,i.createElement(a.NetdataTable,{onRowSelected:_,globalFilterFn:U,columnVisibility:z,enableSelection:p,enableSorting:!0,dataColumns:A,data:D,rowActions:f&&M||m,bulkActions:y&&N||u,sortBy:k||H,onGlobalSearchChange:L,testPrefixCallback:function(e){return e.hostname||e.name},onClickRow:w,disableClickRow:v}),E&&!P&&i.createElement(r.Z,{onClose:I,isSubmodal:!0}),E&&P&&i.createElement(Z,{onClose:I}))}},77184:function(e,n,t){t.d(n,{$3:function(){return b},G1:function(){return _},IU:function(){return g},JV:function(){return p},Y0:function(){return h},eZ:function(){return w},h3:function(){return m}});var o=t(4942),i=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(21249),t(57640),t(9924),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(26398)),a=t(64637),s=t(66152),r=t(3689),l=t(31790);function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function d(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var u=function(e){var n=e.integrations;return n.reduce((function(e,n){var t,o=(0,s.k5)(n),i=o.available?"available":"unavailable";return o.kindLabel=(0,a.fm)(o.kind,!0),o.docsLink=null===(t=n.schema)||void 0===t?void 0:t.annotations.docsUrl,o.internal||(o.fields=(0,l.sY)(o.schema),o.required=o.schema.required),e[i].push(o),e}),{available:[],unavailable:[],original:n})},m=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/integrations"),{transform:u})},h=function(e,n){return i.Z.post("/api/v2/spaces/".concat(e,"/channel"),n)},p=function(e,n){return i.Z.delete("/api/v2/spaces/".concat(e,"/channel/").concat(n))},g=function(e,n,t){return i.Z.put("/api/v2/spaces/".concat(e,"/channel/").concat(n),t)},f=function(e){var n,t=(0,s.k5)(e);return t.docsLink=null===(n=t.schema)||void 0===n?void 0:n.annotations.docsUrl,t.internal||(t.fields=(0,l.sY)(t.schema),t.required=t.schema.required),t},b=function(e,n){return i.Z.get("/api/v2/spaces/".concat(e,"/channel/").concat(n),{transform:f})},y=function(e){return{channels:e.map((function(e){return d(d({},(0,s.k5)(e)),{},{notificationLabel:r.uK[e.alarms].label,kindLabel:(0,a.fm)(e.kind,!0)})})),original:e}},_=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/channel"),{transform:y})},w=function(e,n,t){return i.Z.patch("/api/v2/spaces/".concat(e,"/channel/").concat(n),{enabled:t})}},45939:function(e,n,t){t.d(n,{C:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480);function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var r={additionalProperties:!1,alerts:"ALARMS_SETTING_ALL",description:"",enabled:!0,error:"",fields:[],icon:"",internal:!0,id:"",integration:"",integrationId:"",kind:"",loading:!0,loaded:!1,name:"",rooms:null,roomSelections:[t(3689).k_],secrets:{}},l=(0,i.xu)({key:"spaceChannel",default:function(e){return function(e){return s(s({},r),{},{id:e})}(e)}});n.Z=l},15635:function(e,n,t){t.d(n,{g:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480);function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var r={currentChannelId:"",channels:[],error:"",id:null,loading:!0,loaded:!1,original:[]},l=(0,i.xu)({key:"spaceChannels",default:function(e){return function(e){return s(s({},r),{},{id:e})}(e)}});n.Z=l},3689:function(e,n,t){t.d(n,{Nq:function(){return u},Ue:function(){return l},XH:function(){return y},XK:function(){return d},YM:function(){return p},aU:function(){return c},k_:function(){return s},mN:function(){return m},q7:function(){return f},rc:function(){return r},uK:function(){return h},yV:function(){return b},zK:function(){return g}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942);function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var s={label:"All rooms",value:""},r={plan:"Your plan does not support this configuration.",role:"You do not have permission to change Global Notification configurations."},l="You do not have permission to add configurations. Contact a space administrator to add this configuration.",c={Discord:{name:"integrationDiscordColored"},Webhook:{name:"integrationWebhookColored"},Email:{name:"integrationEmailColored"},MobilePush:{color:"successLite",name:"mobilePushNotifications"},PagerDuty:{name:"integrationPagerdutyColored"},Slack:{name:"integrationSlackColored"},Opsgenie:{name:"integrationOpsgenieColored"},Mattermost:{name:"integrationMattermostColored"},RocketChat:{name:"integrationRocketChatColored"},MobileApp:{name:"integrationMobileAppColored"}},d={PERSONAL:{icon:"userPress",tooltip:"Notification methods whose destination will be a user-specific attribute, e.g. user's e-mail."},SYSTEM:{icon:"systemOverviewPress",tooltip:"Notification methods that the destination will be a target that usually isn't specific to a single user, e.g. Slack channel."}},u={ALARMS_SETTING_ALL:{value:"ALARMS_SETTING_ALL",label:"All Alerts and unreachable"},ALARMS_SETTING_ALL_BUT_UNREACHABLE:{value:"ALARMS_SETTING_ALL_BUT_UNREACHABLE",label:"All Alerts"},ALARMS_SETTING_CRITICAL:{value:"ALARMS_SETTING_CRITICAL",label:"Critical only"},ALARMS_SETTING_UNREACHABLE:{value:"ALARMS_SETTING_UNREACHABLE",label:"Unreachable only"}},m={label:"User defined",value:"USER_DEFINED"},h=a(a({},u),{},{USER_DEFINED:m}),p=a(a({},u),{},{ALARMS_SETTING_NONE:{value:"ALARMS_SETTING_NONE",label:"No notifications"}}),g={"^.*$":"input"},f={string:"input"},b=/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)/g,y="607bfd3c-02c1-4da2-b67a-0d01b518ce5d"},26913:function(e,n,t){t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(77184),a=t(45736),s=t(15635),r=t(5429);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}n.Z=function(e){var n=(0,a.rz)(e);(0,r.Z)((function(){return{enabled:!!e,fetch:function(){return(0,i.G1)(e)},onFail:function(e){return n(c(c({},s.g),{},{error:e.message}))},onSettle:function(){return n({loading:!1,loaded:!0})},onSuccess:function(e){return n(c(c({},s.g),e))}}}),[e])}},69414:function(e,n,t){t.d(n,{E:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480);function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var r={available:[],error:"",id:null,loading:!0,loaded:!1,original:[],unavailable:[]};n.Z=(0,i.xu)({key:"spaceIntegrations",default:function(e){return function(e){return s(s({},r),{},{id:e})}(e)}})},3528:function(e,n,t){t.d(n,{dR:function(){return D},hd:function(){return q},MJ:function(){return S}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(15861),i=t(29439),a=t(4942),s=t(71002),r=t(45987),l=t(64687),c=t.n(l),d=t(4480),u=t(93017),m=(t(92222),t(26398)),h=["domain"];function p(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function g(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?p(Object(t),!0).forEach((function(n){(0,a.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):p(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var f={email:null,browser:null,mobile:null},b={alerts:null},y={me:function(){return"/api/v2/accounts/me/notifications/settings"},room:function(e){var n=e.spaceId,t=e.roomId;return"/api/v2/spaces/".concat(n,"/rooms/").concat(t,"/notifications/settings")}},_=function(e){var n=e.domain,t=(0,r.Z)(e,h);return(0,y[n])(t)},w=(0,d.xu)({key:"notificationsSettings",default:function(e){var n=function(e){var n=e.domain;return{me:f,room:b}[n]}(e),t=_(e);return m.Z.get(t).then((function(e){return g(g(g({},n),e.data),{},{isLoaded:!0})})).catch((function(){return g(g({},n),{},{isLoaded:!0})}))}}),v=t(68008),T=["prop"];function k(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?k(Object(t),!0).forEach((function(n){(0,a.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):k(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var P=(0,d.CG)({key:"notificationsSettings",get:function(e){return function(n){return(0,n.get)(w(e))}},set:function(e){return function(n,t){var o=n.set,i=e.prop,l=(0,r.Z)(e,T);o(w(l),(function(e){var n="object"==(0,s.Z)(e[i])?x(x({},e[i]),{},{enabled:t}):t;return i?x(x({},e),{},(0,a.Z)({},i,n)):n}))}}}),C=function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shouldPersist,t=void 0===n||n,s=(0,d.Zl)(P(e)),r=function(e){return(0,v.Z)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return m.Z.patch(_(e),n)}),[e.domain,e.spaceId,e.roomId])}(e),l=(0,u.Z)(),h=(0,i.Z)(l,2)[1];return(0,d._8)((function(n){var i=n.snapshot;return function(){var n=(0,o.Z)(c().mark((function n(o){var l,d;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(s(o),t){n.next=3;break}return n.abrupt("return");case 3:return n.next=5,i.getPromise(P(e));case 5:return l=n.sent,d=e.prop,n.prev=7,n.next=10,r(x({},d?(0,a.Z)({},d,o):o));case 10:n.next=16;break;case 12:n.prev=12,n.t0=n.catch(7),h(n.t0),s(d?l[d]:l);case 16:case"end":return n.stop()}}),n,null,[[7,12]])})));return function(e){return n.apply(this,arguments)}}()}),[e])},F=function(e){return(0,d.$P)(P(e))},q=function(){return(0,d.$P)(w({domain:"me"}))},S=function(e){var n={domain:"me"},t=F(n),o="hasValue"!==t.state?f:t.contents,i=C(x(x({},n),{},{prop:e}));return[e?o[e]:o,i]},D=function(e){var n=e.roomId,t=e.spaceId,o=e.key,i={domain:"room",roomId:n,spaceId:t},a=F(i),s="hasValue"!==a.state?b:a.contents,r=C(x(x({},i),{},{prop:o}));return[o?s[o]:s,r]}},45736:function(e,n,t){t.d(n,{Cz:function(){return f},R1:function(){return w},h3:function(){return h},pV:function(){return g},ry:function(){return _},rz:function(){return b},su:function(){return m}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480),a=t(45939),s=t(15635),r=t(69414),l=t(31790);function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function d(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var u=(0,i.CG)({key:"spaceChannelState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,a.Z)(n));return t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,i){(0,e.set)((0,a.Z)(n),(function(e){return t?d(d({},e),{},(0,o.Z)({},t,i)):d(d({},e),i)}))}}}),m=function(e,n){return(0,i.sJ)(u({id:e,key:n}))},h=function(e){return(0,i.rb)(u(e))},p=(0,i.CG)({key:"spaceChannelsState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,s.Z)(n));return o=d(d({},o),{},{channels:(0,l.SM)(o.channels)}),t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,i){(0,e.set)((0,s.Z)(n),(function(e){return t?d(d({},e),{},(0,o.Z)({},t,i)):d(d({},e),i)}))}}}),g=function(e,n){return(0,i.sJ)(p({id:e,key:n}))},f=function(e,n){return(0,i.Zl)(u({id:e,key:n}))},b=function(e,n){return(0,i.Zl)(p({id:e,key:n}))},y=(0,i.CG)({key:"spaceIntegrationsState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,r.Z)(n));return o=d(d({},o),{},{available:(0,l.SM)(o.available),unavailable:(0,l.SM)(o.unavailable)}),t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,i){(0,e.set)((0,r.Z)(n),(function(e){return t?d(d({},e),{},(0,o.Z)({},t,i)):d(d({},e),i)}))}}}),_=function(e,n){return(0,i.sJ)(y({id:e,key:n}))},w=function(e,n){return(0,i.Zl)(y({id:e,key:n}))}},31790:function(e,n,t){t.d(n,{SM:function(){return x},uf:function(){return b},xW:function(){return y},D4:function(){return _},sY:function(){return w},XM:function(){return v},ae:function(){return T},A_:function(){return k}});var o=t(29439),i=t(4942),a=(t(26699),t(32023),t(57327),t(41539),t(88449),t(2490),t(59849),t(82526),t(41817),t(85827),t(25387),t(72608),t(47941),t(92222),t(69826),t(31672),t(59461),t(26833),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(93433)),s=t(45987),r=(t(74916),t(4723),t(21249),t(57640),t(9924),t(69720),t(57557)),l=t.n(r),c=t(3689),d=["description","placeholder","title","type"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=function(e,n,t){var r=n.description,u=n.placeholder,h=n.title,p=n.type,g=(0,s.Z)(n,d),f=t.includes(e),b={description:r,id:e,isRequired:f,placeholder:u||"",title:h||e};if("string"===p&&"selection"!==e){var y=g.format,_=g.maxLength,v=g.minLength;return m(m(m({component:"input",getValue:function(e){var n=e.id,t=e.secrets,o=e.subsetId;return(o?t[n][o]:t[n])||""},isValid:function(e){return!!("uri"!==y||null!==e&&void 0!==e&&e.match(c.yV))&&(!(v&&e.length<v)&&!(_&&e.length>_))}},_?{maxlength:_}:{}),v?{minlength:v}:{}),{},{onChange:function(e){var n=e.id,t=e.setSecrets,o=e.subsetId;return function(e){return t((function(t){return m(m({},t),{},o?(0,i.Z)({},n,m(m({},t[n]),{},(0,i.Z)({},o,e))):(0,i.Z)({},n,e))}))}},type:"uri"===y?"url":y||"text"},b)}if("object"===p){var T=g.oneOf,k=g.patternProperties;if(T)return m(m({component:"select",getValue:function(e){var n,t,o=e.id,i=e.secrets;return{label:(null===(n=T.find((function(e){var n;return e.properties.selection.const===(null===(n=i[o])||void 0===n?void 0:n.selection)})))||void 0===n?void 0:n.title)||(f?T[0].title:"None"),value:(null===(t=i[o])||void 0===t?void 0:t.selection)||(f?T[0].properties.selection.const:"")}},onChange:function(e){var n=e.id,t=e.setRequiredSubsets,o=e.setSecrets;return function(e){var a=e.label,s=e.value;if(!s)return t((function(e){return l()(e,n)})),void o((function(e){return l()(e,n)}));var r=T.find((function(e){return e.title===a}));null!==r&&void 0!==r&&r.required&&t((function(e){return m(m({},e),{},(0,i.Z)({},n,T.find((function(e){return e.title===a})).required))})),o((function(e){return m(m({},e),{},(0,i.Z)({},n,{selection:s}))}))}}},T.reduce((function(e,n){return{fields:m(m({},e.fields),{},(0,i.Z)({},n.properties.selection.const,w(n))),options:[].concat((0,a.Z)(e.options),[{label:n.title,value:n.properties.selection.const}]),required:m(m({},e.required),{},(0,i.Z)({},n.properties.selection.const,n.required))}}),{fields:{},options:f?[]:[{label:"None",value:""}],required:{}})),b);if(k)return m({component:"pairs",componentPairs:Object.entries(k).map((function(e){var n=(0,o.Z)(e,2),t=n[0],i=n[1].type;return[c.zK[t],c.q7[i]]}))},b)}return null},p=t(72437);function g(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?g(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):g(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var b=function(e,n){var t=function(e){return e.toLowerCase().includes(n.toLowerCase()||"")};return e.filter((function(e){var n=e.classification,o=e.description,i=e.kind,a=e.title;return t(n)||t(o)||t(i)||t(a)}))},y=function(e,n,t){return!!n&&("selection"===e||("select"===t.component||t.isValid(n)))},_=function(e){return"Delete ".concat(e," channel")},w=function(e){var n=e.properties,t=e.required;return Object.keys(n).reduce((function(e,o){var a=h(o,n[o],t);return f(f({},e),a?(0,i.Z)({},o,a):{})}),{})},v=function(e){var n=(0,o.Z)(e,2),t=n[0],i=n[1];return t===i?"".concat(t,"s"):"".concat(t,"/").concat(i)},T=function(e){var n=e.roomIds,t=e.roomOptions;return n.reduce((function(e,n){var o=t.find((function(e){return e.value===n}));return o&&e.push(o.label),e}),[]).join(", ")},k=function(e,n){return Object.values(e).reduce((function(e,t){return"select"===t.component&&n.includes(t.id)?f(f({},e),{},(0,i.Z)({},t.id,{selection:t.options[0].value})):e}),{})},x=function(e){return p.xy?e:e.filter((function(e){return e.id!==c.XH}))}},28350:function(e,n,t){t.d(n,{Z:function(){return v}});var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=t(91268),l=t(74059),c=t(37518),d=t(18129),u=t(46189),m=t(15418),h=function(e){var n=e.spaceName;return a.createElement(s.Text,{textAlign:"center"},"Please ask your administrator to claim more nodes to\xa0",a.createElement(s.Text,{strong:!0},n)," and you will be able to add them to this room")},p=function(){return a.createElement(s.Text,{textAlign:"center"},"To add nodes to this room, you first need to claim them to its space.")},g=function(e){var n=e.spaceName,t="".concat(u.Z.assetsBaseURL,"/img/rack.png");return a.createElement(s.Flex,{column:!0,padding:[4,8,0],alignItems:"center",gap:4},a.createElement("img",{src:t,alt:"server-rack",width:"188px",height:"188px"}),a.createElement(s.H4,{textAlign:"center"},"No claimed nodes available in this Space: ",n),a.createElement(m.Z,{permission:"node:Create"},(function(e){return e?a.createElement(p,null):a.createElement(h,{spaceName:n})})))},f=t(93433),b=t(29439),y=(t(21249),t(57640),t(9924),t(85827),t(41539),t(25387),t(2490),t(72608),t(57327),t(88449),t(59849),t(26699),t(32023),t(92222),function(e){var n=e.setNodes,t=(0,a.useState)(""),o=(0,b.Z)(t,2),i=o[0],s=o[1],r=(0,a.useState)(!0),l=(0,b.Z)(r,2),c=l[0],d=l[1],u=(0,a.useState)([]),m=(0,b.Z)(u,2),h=m[0],p=m[1];return(0,a.useEffect)((function(){var e=h.map((function(e){return e.id}));e.length||!i||c||n((function(e){return i.split(",").reduce((function(e,n){return e.filter((function(e){return e.id!==n}))}),e)})),e.length&&e.join()!==i&&(n((function(n){var t=n.map((function(e){return e.id}));return e.reduce((function(e,n,o){return t.includes(n)?e:[].concat((0,f.Z)(e),[h[o]])}),n)})),d(!1)),s(e.join())}),[h]),{onRowSelected:p}}),_=["claimedNodeIds","data","roomId","setNodes","showHeader","onAddNodes","canAddNodes","addNodesGA"],w={connectionToCloud:!1},v=function(e){var n=e.claimedNodeIds,t=e.data,u=e.roomId,m=e.setNodes,h=e.showHeader,p=e.onAddNodes,f=e.canAddNodes,b=e.addNodesGA,v=(0,i.Z)(e,_),T=y({setNodes:m}).onRowSelected,k=(0,l.OS)(),x=(0,c.tE)(u),P=(0,a.useMemo)((function(){return{addEntry:{handleAction:p,tooltipText:"Add the selected nodes to the room",isDisabled:!f,disabledTooltipText:"Select some nodes to add to the room","data-ga":b}}}),[p,f]);return a.createElement(s.Flex,(0,o.Z)({column:!0,gap:3,padding:[2,0,0],flex:"grow",width:"100%",height:"100%"},v),h&&a.createElement(s.Flex,{margin:[0,0,5]},a.createElement(s.H3,null,"Available Nodes (",n.length,")")),h&&a.createElement(s.Flex,null,a.createElement(s.Text,{color:"textDescription"},"Nodes in ",k.name," that can be added to ",x.name)),n.length>0?a.createElement(r.Z,{"data-testid":"nodesTable-layout",overflow:"hidden",height:"100%"},a.createElement(d.Z,{enableSelection:!0,customNodes:t,showdDefaultRowActions:!1,showDefaultBulkActions:!1,customBulkActions:P,onRowSelected:T,columnVisibility:w,alwaysEnableNodeSelection:!0})):a.createElement(g,{spaceName:k.name}))}},86242:function(e,n,t){t.d(n,{Z:function(){return p}});var o=t(29439),i=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(26699),t(32023),t(67294)),a=t(62554),s=t(74059),r=t(37518),l=t(53338),c=t(25819),d=t(96929),u=t(46322),m=t(5429),h=t(93017),p=function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).addNodesCallback,t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=(0,i.useState)(e),t=(0,o.Z)(n,2),s=t[0],r=t[1],l=(0,i.useState)([]),c=(0,o.Z)(l,2),d=c[0],u=c[1];(0,a.Z)((function(){u([s])}),300,[s]);var m=(0,i.useCallback)((function(e){return r(e.currentTarget.value)}),[r]);return[s,m,d]}(),p=(0,o.Z)(t,3),g=p[0],f=p[1],b=p[2],y=(0,i.useState)([]),_=(0,o.Z)(y,2),w=_[0],v=_[1],T=(0,s.th)(),k=(0,r.HM)(T,l.i_),x=(0,h.Z)(),P=(0,o.Z)(x,2)[1],C=(0,m.Z)((function(){return{enabled:!!k,fetch:function(){return(0,c.Fz)({roomId:k,spaceId:T})},initialValue:[],onFail:function(e){P(e)}}}),[k,T]),F=(0,o.Z)(C,1)[0],q=(0,d.X7)(e,"ids"),S=(0,i.useMemo)((function(){return F.map((function(e){return e.id})).filter((function(e){return!q.includes(e)}))}),[q,F]),D=(0,i.useMemo)((function(){return(0,u.C)(F)}),[F]),A=(0,d.iB)(T,e,{onSuccess:n});return[{claimedNodeIds:S,data:D,filter:g,setFilter:f,debouncedFilter:b,setNodes:v},{onAddNodes:(0,i.useCallback)((function(){return A(w.map((function(e){return e.id})))}),[A,w]),onAddNode:(0,i.useCallback)((function(e){A([e],{makeCallback:!1})}),[A]),selectedNodes:w}]}},89149:function(e,n,t){t.d(n,{Z:function(){return E}});var o=t(87462),i=t(29439),a=(t(66992),t(41539),t(88674),t(78783),t(33948),t(67294)),s=t(2145),r=t(15557),l=t(37518),c=t(74059),d=t(16645),u=t(7693),m=t(92903),h=t(668),p=t(97346),g=t(8741),f=t(28350),b=t(86242),y=t(78266),_=t(45987),w=t(33582),v=t(50308),T=t.n(v),k=(t(92222),t(60677)),x=t(16931),P=t(52428),C=(0,k.default)(r.Icon).withConfig({displayName:"copyInfo__StyledIcon",componentId:"sc-fgr5qt-0"})(["display:flex;align-self:center;cursor:pointer;position:absolute;right:16px;"]),F=function(e){var n=e.gaPrefix,t=void 0===n?"claim-nodes":n,o=e.info,i=e.title,s=void 0===i?"Claim token":i,l=e.type,c=void 0===l?"token":l,d=e.copyDisabled,u=void 0!==d&&d;return a.createElement(r.Flex,{cursor:"pointer","data-testid":"".concat(c,"Copy"),gap:2,onClick:(0,P.J)(o,{text:"".concat(s," copied to clipboard")}),position:"relative"},a.createElement(x.U8,{"data-testid":"".concat(c,"TextBlock")},o),!u&&a.createElement(C,{"data-testid":"".concat(c,"CopyButton"),"data-ga":"".concat(t,"::click-copy-").concat(c,"::allpages"),name:"copy",size:"small",color:"primary",onClick:(0,P.J)(o,{text:"".concat(s," copied to clipboard")})}))},q=function(e){var n=e.title,t=void 0===n?"":n,o=e.info,i=void 0===o?"Loading...":o,s=e.copyDisabled,l=void 0!==s&&s,c=e.onClose,d=void 0===c?T():c;return a.createElement(r.Modal,null,a.createElement(r.ModalContent,{width:{min:80,base:150},height:30},a.createElement(r.ModalHeader,null,a.createElement(r.H3,null,t),a.createElement(r.ModalCloseButton,{onClose:d})),a.createElement(r.ModalBody,null,a.createElement(F,{info:i,copyDisabled:l}))))},S=["spaceId"],D=function(e){var n,t,i=e.spaceId,s=(0,_.Z)(e,S),r=(0,w.Z)(i);return a.createElement(q,(0,o.Z)({title:"Claim Token",info:null===(n=r[0])||void 0===n?void 0:n.token,copyDisabled:!(null!==(t=r[0])&&void 0!==t&&t.token)},s))},A=t(41898),M=t(46667),N=(0,s.Z)((function(){return Promise.all([t.e(502),t.e(663),t.e(129),t.e(447)]).then(t.bind(t,66129))})),H={default:{modal:{"data-testid":"addWarRoomModal"},sidebarModalHeader:{"data-testid":"addWarRoomModal-header"},sidebarContent:{"data-testid":"addWarRoomModal-content",overflow:"auto",hasFooter:!1}},integrations:{modal:{"data-testid":"addIntegrationModal"},sidebarModalHeader:{"data-testid":"addIntegration-header"},sidebarContent:{"data-testid":"addIntegration-content",overflow:"hidden",hasFooter:!1,padding:[0],hasModalTitle:!1}}},E=function(e){var n=e.title,t=void 0===n?"Add Nodes":n,s=e.onClose,_=e.isSubmodal,w=e.flavour,v=void 0===w?"default":w,T=(0,c.th)(),k=(0,l.Hm)(),x=(0,l.Jb)(),P=null!==k&&void 0!==k&&k.loaded?k:x,C=null===P||void 0===P?void 0:P.id,F=(0,a.useMemo)((function(){return H[v]}),[v]),S="integrations"==v,E=S?h.u6:d.u6,O=(0,b.Z)(C,{addNodesCallback:s}),I=(0,i.Z)(O,2),R=I[0],L=I[1],B=L.onAddNodes,U=L.selectedNodes,j=(0,M.Z)(),G=(0,i.Z)(j,4),z=G[0],Y=G[2],X=G[3],Z=(0,M.Z)(),W=(0,i.Z)(Z,4),K=W[0],$=W[2],V=W[3];return a.createElement(a.Fragment,null,a.createElement(E,(0,o.Z)({right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:s},F.modal),a.createElement(u.x,(0,o.Z)({title:S?a.createElement(r.TextBig,{color:"textLite"},t):a.createElement(a.Fragment,null,"Manage room",a.createElement(r.TextBig,{color:"textLite"},"\xa0/ Add Nodes")),isSubmodal:_,onClose:s},F.sidebarModalHeader||{}),!S&&a.createElement(p.Z,{permission:"node:Create"},a.createElement(r.Flex,{gap:2},a.createElement(r.Button,{flavour:"borderless",onClick:Y},"Claim Token"),a.createElement(r.Button,{flavour:"borderless",onClick:$},"Room ID")))),!S&&a.createElement(m.B,{"data-testid":"addWarRoomModal-title"},"Add nodes to\xa0",null===P||void 0===P?void 0:P.name),a.createElement(d.TZ,F.sidebarContent||{},S?a.createElement(a.Suspense,{fallback:a.createElement(y.Z,{title:"Loading integrations..."})},a.createElement(N,{flavour:A.RV.addNodesModal})):a.createElement(p.Z,{permission:"node:Create"},a.createElement(a.Fragment,null,a.createElement(g.Z,null),!P.untouchable&&a.createElement(f.Z,(0,o.Z)({"data-testid":"addWarRoomModal-availableNodes"},R,{onAddNodes:B,canAddNodes:!!U.length,addNodesGA:"add-war-room-modal::click-add-node::global-view"})))))),!S&&z&&a.createElement(D,{spaceId:T,onClose:X}),!S&&K&&a.createElement(q,{title:"Room ID",info:C,copyDisabled:!C,onClose:V}))}},8741:function(e,n,t){t.d(n,{Z:function(){return p}});var o=t(29439),i=(t(21249),t(57640),t(9924),t(67294)),a=t(15557),s=t(74059),r=t(10034),l=t(35819),c=t(26017),d=t(35253),u=function(e){var n=e.label;return n?i.createElement(i.Fragment,null,i.createElement(a.Icon,{name:"code",size:"small"}),i.createElement(a.TextNano,{strong:!0,textTransform:"uppercase"},n)):null},m=(0,i.memo)(u),h=t(16931),p=(t(69826),t(41539),t(31672),t(2490),t(59461),function(e){var n=e.integrationId,t=e.rooms,u=void 0===t?[]:t,p=(0,r.RG)(),g=(0,s.OS)("plan"),f=function(){var e=(0,r.NE)();return function(n){return e.find((function(e){return e.id==n}))}}(),b=f(n),y=(0,i.useState)(0),_=(0,o.Z)(y,2),w=_[0],v=_[1],T=(0,i.useState)(d.N[g]||d.N.default),k=(0,o.Z)(T,2),x=k[0],P=k[1];return i.createElement(a.Flex,{column:!0,gap:4,width:"100%"},i.createElement(a.Flex,{justifyContent:"end"},i.createElement(l.Z,{isNightly:"nightly"==x,toggleNightly:function(e){var n=e.target.checked?"nightly":"stable";P(n)}})),b?i.createElement(c.Z,{integration:b,isNightly:"nightly"==x,rooms:u,navigateToSettings:!0}):i.createElement(a.Tabs,{selected:w,onChange:v,TabContent:h.m7,tabsProps:{gap:1,margin:[0,0,4,0]}},p.map((function(e){return i.createElement(a.Tab,{as:h.Sn,key:e.name,label:i.createElement(m,{label:e.name})},i.createElement(c.Z,{integration:e,isNightly:"nightly"==x,rooms:u,navigateToSettings:!0}))}))))})},56662:function(e,n,t){t.d(n,{U:function(){return h}});var o=t(29439),i=t(67294),a=t(89250),s=t(12599),r=t(15557),l=t(97323),c=t(74059),d=t(37518),u=t(16645),m=t(7693),h=function(e){var n=e.onClose,t=e.onDone,h=e.isSubmodal,p=void 0===h||h,g=(0,c.th)(),f=(0,i.useState)(""),b=(0,o.Z)(f,2),y=b[0],_=b[1],w=(0,r.useInputValue)({maxChars:255,value:""}),v=(0,o.Z)(w,3),T=v[0],k=v[1],x=v[2],P=function(e){var n=(0,a.s0)(),t=(0,c.uk)();return(0,i.useMemo)((function(){return function(o){var i=o.slug,a=(0,s.Gn)("/spaces/:spaceSlug/rooms/:roomSlug",{spaceSlug:t,roomSlug:i});e(),n(a)}}),[t])}(n),C=(0,d.Dq)(g,{onSuccess:t||P}),F=(0,i.useCallback)((function(){C({name:y,description:T})}),[y,T]);return i.createElement(u.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},i.createElement(m.x,{onClose:n,isSubmodal:p,title:"Create a new room"},i.createElement(r.Button,{label:"Add",onClick:F,disabled:!y})),i.createElement(u.TZ,null,i.createElement(l.Q,{roomName:y,setRoomName:_,roomDescription:T,charsDescIndicator:x,setRoomDescription:k,isCreateForm:!0})))}},7724:function(e,n,t){t.d(n,{CE:function(){return d},M5:function(){return m},R4:function(){return u}});var o=t(29439),i=(t(92222),t(67294)),a=t(15557),s=t(74059),r=t(46667),l=t(37518),c=t(33335),d=function(e){var n=1===e;return"Delete ".concat(e," ").concat(n?"room":"rooms")},u=function(e){return"Delete ".concat(e," room")},m=function(e){var n=e.name,t=e.roomsLength,o=e.spaceName,a=n||"".concat(t,1===t?" room":" rooms");return i.createElement(i.Fragment,null,"You are about to delete ",i.createElement("strong",null,a)," from ",i.createElement("strong",null,o)," space.",i.createElement("br",null),"This cannot be undone. Are you sure you want to continue?")};n.ZP=function(e){var n=e.id,t=e.name,d=e.navigateToParent,h=(0,s.OS)("name"),p=(0,l.tE)(n,"untouchable"),g=(0,c.gI)("room:Delete")&&!p,f=(0,l.IX)(n,{onSuccess:d}),b=(0,r.Z)(),y=(0,o.Z)(b,4),_=y[0],w=y[2],v=y[3];return g?i.createElement(i.Fragment,null,i.createElement(a.Button,{"data-testid":"manageWarRoom-delete",flavour:"hollow",onClick:w,label:"Delete room",danger:!0}),_&&i.createElement(a.ConfirmationDialog,{confirmLabel:"Yes, delete","data-ga":"delete-war-room-dialog","data-testid":"deleteWarRoomDialog",handleConfirm:f,handleDecline:v,message:i.createElement(m,{name:t,spaceName:h}),title:u(t)})):null}},97323:function(e,n,t){t.d(n,{Q:function(){return x}});var o=t(87462),i=t(29439),a=t(45987),s=(t(24603),t(74916),t(88386),t(39714),t(82526),t(41817),t(77601),t(67294)),r=t(15557),l=t(62200),c=t(95383),d=t(37518),u=t(33335),m=t(1229),h=t(46667),p="leave-war-room-dialog",g="leaveWarRoomDialog",f=function(e){var n=e.id,t=e.name,a=e.navigateToParent,l=(0,m.IT)(n,"ids"),c=(0,d.iC)(n,{onSuccess:a}),u=(0,d.tE)(n,"untouchable"),f=(0,h.Z)(),b=(0,i.Z)(f,4),y=b[0],_=b[2],w=b[3],v=1===l.length&&!u?{"data-ga":"".concat(p,"-last-member"),"data-testid":"".concat(g,"LastMember"),message:s.createElement(s.Fragment,null,"If you leave, ",s.createElement("strong",null,t)," room will be deleted immediately.",s.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(t," room")}:{"data-ga":p,"data-testid":g,message:s.createElement(s.Fragment,null,"You are about to leave ",s.createElement("strong",null,t)," room.",s.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(t," room")};return s.createElement(s.Fragment,null,s.createElement(r.Button,{"data-ga":"manage-war-room-tab::click-leave-war-room::manage-war-room-modal","data-testid":"manageWarRoom-leave",icon:"switch_off",flavour:"borderless",label:"Leave room",neutral:!0,padding:[0],width:"fit-content",onClick:_}),y&&s.createElement(r.ConfirmationDialog,(0,o.Z)({confirmLabel:"Yes, leave",handleConfirm:c,handleDecline:w},v)))},b=t(7724),y=t(30688),_=["charsIndicator","isDisabled","isValid","handleChange","setIsValid","setValidationMessage","validationMessage","value"],w=(0,y.A)([function(e){var n=e.length>=1;return(0,y.f)(n,"Give your room a name that's at least one character.")},function(e){var n=e.length<=20;return(0,y.f)(n,"A room's name can't exceed 20 characters.")}]),v=function(e){var n=e.charsIndicator,t=e.isDisabled,l=e.isValid,c=e.handleChange,d=e.setIsValid,u=e.setValidationMessage,m=e.validationMessage,h=e.value,p=(0,a.Z)(e,_),g=(0,r.useTouchedState)({}),f=(0,i.Z)(g,2),b=f[0],y=f[1];return(0,s.useEffect)((function(){var e=w(h),n=e.isValid,t=e.messages&&e.messages.length?e.messages[0]:void 0;!l&&n?d(!0):l&&!n&&d(!1),t&&u(t)}),[l,d,h,b,u]),s.createElement(r.TextInput,(0,o.Z)({"data-testid":"warRoomOptions-warRoomNameInput",label:"Room name",name:"createRoom",placeholder:"Enter your room's name",fieldMessage:"Tip: Use rooms to group your Nodes by their service, purpose, or location.",fieldIndicator:n,value:h,touched:b,onBlur:y,onChange:c,success:l,error:!l&&m,instantFeedback:"all",disabled:t,autoFocus:!0},p))},T=["id","navigateToParent","isCreateForm","roomName","setRoomName","roomDescription","setRoomDescription","charsDescIndicator","onSaveClick"],k=new RegExp(/^[\w\s\d]*?$/),x=function(e){var n=e.id,t=e.navigateToParent,m=e.isCreateForm,h=e.roomName,p=e.setRoomName,g=e.roomDescription,y=e.setRoomDescription,_=e.charsDescIndicator,w=e.onSaveClick,x=(0,a.Z)(e,T),P=(0,d.tE)(n),C=(0,c.J7)(),F=(0,s.useState)(!1),q=(0,i.Z)(F,2),S=q[0],D=q[1],A=(0,s.useState)(""),M=(0,i.Z)(A,2),N=M[0],H=M[1],E=(0,s.useState)(""),O=(0,i.Z)(E,2),I=O[0],R=O[1],L=(0,r.useInputValue)({maxChars:l.v$}),B=(0,i.Z)(L,1)[0],U=(0,s.useCallback)((function(e){return p(e.target.value)}),[p]),j=!!n,G=((0,u.gI)("room:LeaveAllNodes")||!P.untouchable)&&C.length>1&&P.isMember,z=(0,r.useTouchedState)({defaultState:!0}),Y=(0,i.Z)(z,2),X=Y[0],Z=Y[1],W=!P.name||h===P.name&&g===P.description;return(0,s.useEffect)((function(){R(k.test(g)&&X?"":"The description can only contain digits, letters, and spaces.")}),[X,g]),s.createElement(r.Flex,(0,o.Z)({column:!0,"data-testid":"manageWarRoom",flex:"grow",justifyContent:"between",height:"100%"},x),s.createElement(r.Flex,{column:!0,"data-testid":"manageWarRoom-settings",gap:2},s.createElement(r.Box,{"data-testid":"manageWarRoom-createRoomInputBox"},s.createElement(v,{"data-testid":"manageWarRoom-createRoomInput",value:h,handleChange:U,charsIndicator:B,validationMessage:N,setValidationMessage:H,isValid:S,setIsValid:D,isDisabled:j&&P.untouchable})),s.createElement(r.Box,{"data-testid":"manageWarRoom-descriptionInputBox"},s.createElement(r.TextInput,{"data-testid":"manageWarRoom-descriptionInput",label:"Description",name:"roomDescription",placeholder:"A room description...",instantFeedback:"positiveFirst",touched:X,onBlur:Z,fieldIndicator:_,error:""!==I&&I,success:""===I,value:g,onChange:y}))),s.createElement(r.Flex,{"data-testid":"manageWarRoom-actions"},s.createElement(r.Flex,{"data-testid":"manageWarRoom-deleteLeaveActions",gap:4},j&&G&&s.createElement(f,{id:n,name:P.name,navigateToParent:t}),j&&s.createElement(b.ZP,{id:n,name:h,navigateToParent:t})),!m&&s.createElement(r.Button,{"data-ga":"manage-war-room-tab::click-save::manage-war-room-modal","data-testid":"manageRoom-saveButton",label:"Save",onClick:w,disabled:W,margin:[0,0,0,"auto"]})))}},46322:function(e,n,t){t.d(n,{C:function(){return l},k:function(){return r}});var o=t(4942),i=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(46189)),a=t(88866);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var r=function(e){var n=e.data,t=e.untouchable,o=e.currentUserId,i=e.canRemoveUser;return n.reduce((function(e,n){var a=o===(null===n||void 0===n?void 0:n.id);return e.push({name:n.name,email:n.email,user:{avatarURL:n.avatarURL,name:n.name,email:n.email,id:n.id},type:n.role,disabled:!i||a||t}),e}),[])},l=function(e){return e.reduce((function(e,n){var t;return e.push(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({name:n.name||"",os:n.os.id||"",node:{id:n.id,name:n.name||"",os:n.os?"".concat(i.Z.assetsBaseURL,"/img/logos/os/").concat((null===(t=a.V[n.os.id])||void 0===t?void 0:t.logoFilename)||"placeholder.svg"):"".concat(i.Z.assetsBaseURL,"/img/logos/os/placeholder.svg")}},n)),e}),[])}},20031:function(e,n,t){var o=t(87462),i=t(67294),a=t(15557),s=t(82351);n.Z=function(e){return i.createElement(s.Z,{content:"Room you're a member of. You're able to receive notifications related to nodes in this room"},i.createElement(a.Icon,(0,o.Z)({name:"checkmark",width:"12px",height:"12px"},e)))}},41379:function(e,n,t){t.d(n,{A:function(){return p}});var o=t(29439),i=(t(92222),t(57327),t(41539),t(88449),t(2490),t(59849),t(26699),t(32023),t(67294)),a=t(92432),s=t(78710),r=t(68035),l=t(97945),c=t(48854),d=t(95248),u=t(33335),m=t(25819),h=t(96929),p=s.ZP?function(e){var n=e.id;return"rooms.".concat(n,".nodes")}:function(e){var n=e.id,t=e.spaceId;return"spaces.".concat(t,".rooms.").concat(n,".nodes")};n.Z=function(e){var n=e.id,t=e.spaceId,s=e.pollingInterval,g=void 0===s?63e3:s,f=e.polling,b=void 0===f||f,y=(0,d.XT)(),_=(0,h.X7)(n,"ids"),w=(0,i.useState)((function(){return(null===_||void 0===_?void 0:_.length)||0})),v=(0,o.Z)(w,2),T=v[0],k=v[1],x=(0,h.X7)(n,"loaded"),P=(0,u.gI)("room:Read");(0,i.useEffect)((function(){x&&y((function(e){return e&&e.filter((function(e){return _.includes(e)}))}))}),[_,x]),(0,i.useEffect)((function(){x&&T!==_.length&&((0,a.L)("node-count","node-count-changed-from-".concat(T,"-to-").concat(_.length),"","","","node-count-change"),k(_.length))}),[_.length,T,x]),(0,r.Z)((function(){return{key:p({id:n,spaceId:t}),autorun:!!P&&!!t&&!!n,fetch:function(){return(0,m.Fz)({roomId:n,spaceId:t})},polling:b,association:{getError:function(){return(0,h.kY)({id:n,key:"error"})},getIds:function(){return(0,h.kY)({id:n,key:"ids"})},getLoaded:function(){return(0,h.kY)({id:n,key:"loaded"})},getUpdatedAt:function(){return(0,h.kY)({id:n,key:"updatedAt"})}},sort:function(e,n){return e.name.localeCompare(n.name,void 0,{sensitivity:"accent"})},getResource:function(e){return(0,l.zP)({id:e})},getResourcesInitializer:function(){return l.Jz},getResourceInitialState:function(){return c.a},pollingOptions:{pollingInterval:g},maxCacheAge:900,force:!0}}),[t,n,g])}},45781:function(e,n,t){t.d(n,{e$:function(){return m},Mt:function(){return h}});var o=t(4942),i=(t(66992),t(41539),t(33948),t(47941),t(82526),t(57327),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(4480)),a=t(18446),s=t.n(a),r=t(74059),l={loaded:!1,entries:[],error:null,updatedAt:""},c=(0,i.xu)({key:"spaceAlerts",default:l});function d(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function u(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?d(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var m=(0,i.CG)({key:"spaceAlertState",get:function(e){var n=e.id,t=e.key;return function(e){return(0,e.get)(c(n))[t]}},set:function(e){var n=e.id,t=e.key;return function(e,o){var i=e.set;i(c(n),"error"!==t?function(e){return{loaded:!0,entries:s()(o,e.entries)?e.entries:o,updatedAt:(new Date).toISOString()}}:u(u({},l),{},{error:o}))}}}),h=function(e){return function(e,n){return(0,i.sJ)(m({id:e,key:n}))}((0,r.th)(),e)}},69019:function(e,n,t){t.d(n,{Cl:function(){return b},E3:function(){return d},Vs:function(){return y},ZQ:function(){return p},fA:function(){return w},fh:function(){return g},fz:function(){return _},uV:function(){return v}});var o=t(4942),i=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(26398)),a=t(50308),s=t.n(a),r=t(66152);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var d={id:null,name:"",description:"",commitment:!1,pricing:[],enrolledAt:null,currentPeriodFrom:null,currentPeriodTo:null,committedNodes:0,billingEmail:"",balance:{amount:0,currency:"usd"}},u={Pro:"pro",Professional:"pro",Community:"free",EarlyBird:"earlyBird",Business:"business"},m=function(e){var n=u[e.class],t=(0,r.k5)(e),i=Array.isArray(t.pricing)?t.pricing.reduce((function(e,n){return c(c({},e),{},(0,o.Z)({},n.type,n))}),{}):{};return c(c(c({},d),t),{},{pricing:i,slug:n})},h=function(e){return(0,r.k5)(e)},p=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/billing/plans"),{transform:function(e){return e.plans.reduce((function(e,n){var t=m(n),o=e[t.slug]||[];return"year"===t.interval?o.unshift(t):o.push(t),e[t.slug]=o,e}),{})}})},g=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/billing/plan"),{transform:m})},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";return function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o="update"==e?i.Z.put:i.Z.post;return"function"!==typeof o?s():o("/api/v2/spaces/".concat(n,"/billing/plan"),(0,r.v)(t),{transform:function(e){return e.url}})}},b=function(e,n){return f("checkout")(e,n)},y=function(e,n){return f()(e,n)},_=function(e,n){return i.Z.get("/api/v2/spaces/".concat(e,"/billing/portal?redirect_url=").concat(encodeURIComponent(n)),{transform:function(e){return e.url}})},w=function(e,n){var t=n.after,o=n.before;return i.Z.get("/api/v2/spaces/".concat(e,"/billing/node-count?from=").concat(t,"&to=").concat(o))},v=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return i.Z.put("/api/v2/spaces/".concat(e,"/billing/plan/preview"),(0,r.v)(n),{transform:h})}},46715:function(e,n,t){t.d(n,{Gl:function(){return p},RP:function(){return _},SH:function(){return w},Zn:function(){return k},eY:function(){return T},fG:function(){return b}});var o=t(29439),i=(t(41539),t(88674),t(17727),t(67294)),a=t(4480),s=t(50308),r=t.n(s),l=t(74059),c=t(93017),d=t(69019),u=t(49489),m=[],h=(0,a.CG)({key:"plans",get:function(e){return function(){return(0,d.ZQ)(e)}}}),p=function(){var e,n=(0,l.th)(),t=(0,a.$P)(h(n));return{loaded:"loading"!==t.state,value:(null===(e=t.contents)||void 0===e?void 0:e.data)||m,hasError:"hasError"===t.state}},g=(0,a.CG)({key:"previewPlan",get:function(e){var n=e.spaceId,t=e.payload;return function(){return(0,d.uV)(n,t)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),f=function(e){var n;return u.Fi[null===e||void 0===e||null===(n=e.response)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.errorMsgKey]},b=function(e,n){var t,o=(0,l.th)(),i=(0,a.$P)(g({spaceId:o,payload:e,forceFetch:n}));return{loading:"loading"===i.state,value:(null===(t=i.contents)||void 0===t?void 0:t.data)||{},promoCodeError:"hasError"===i.state?f(i.contents):void 0}},y=(0,a.CG)({key:"currentPlan",get:function(e){return function(){return e?(0,d.fh)(e):Promise.resolve()}}}),_=function(){var e,n=(0,l.th)(),t=(0,a.$P)(y(n)),o=(0,a.C)(y(n));return{loaded:"loading"!==t.state,value:(null===(e=t.contents)||void 0===e?void 0:e.data)||d.E3,hasError:"hasError"===t.state,refresh:o}},w=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.href,n=(0,i.useState)(!1),t=(0,o.Z)(n,2),a=t[0],s=t[1],r=(0,l.th)();return[(0,i.useCallback)((function(){s(!0),(0,d.fz)(r,e).then((function(e){var n=e.data;return location.href=n})).finally((function(){return s(!1)}))}),[r,e]),a]},v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d.Vs,n=(0,c.Z)(),t=(0,o.Z)(n,2)[1],i=(0,l.th)(),a=_();return!a.loaded||a.hasError?r():function(n){return e(i,n).then((function(e){a.refresh(),null!==e&&void 0!==e&&e.data&&(location.href=e.data)})).catch(t)}},T=function(){return v(d.Cl)},k=function(){return v()}},33582:function(e,n,t){t.d(n,{Z:function(){return h}});var o=t(15861),i=t(64687),a=t.n(i),s=t(67294),r=t(4480),l=t(33335),c=t(26398),d=function(e){return c.Z.post("/api/v1/spaces/".concat(e,"/tokens"),void 0,{allow401:!0})},u=(0,r.xu)({key:"spaceClaimingTokens",default:[]}),m=(0,r.CG)({key:"claimingTokensState",get:function(e){return function(n){return(0,n.get)(u(e))}},set:function(e){return function(n,t){(0,n.set)(u(e),[t])}}}),h=function(e){var n=(0,r.sJ)(m(e)),t=(0,l.gI)("node:Create",e),i=(0,r._8)((function(e){var n=e.snapshot,t=e.set;return function(){var e=(0,o.Z)(a().mark((function e(o){var i,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getPromise(m(o));case 2:if(e.sent.length){e.next=9;break}return e.next=6,d(o);case 6:i=e.sent,s=i.data,t(m(o),s);case 9:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()}),[]);return(0,s.useEffect)((function(){t&&e&&i(e)}),[t,e]),n}},49489:function(e,n,t){t.d(n,{FC:function(){return i},Fi:function(){return s},Vc:function(){return o},go:function(){return a}});var o={free:{level:0,title:"Community"},earlyBird:{level:0,title:"Early Bird",features:['"Member" role available with existing permissions.','"Member" role with access to _All Nodes_ room.']},pro:{level:10,title:"Pro",features:["7 days of alert history and auditing events.",'Unlock the "Troubleshooter" role and add members to the space without providing management permission.',"Enable webhook alert notification integration."]},business:{level:20,title:"Business",features:["Up-to 90 days of alert history and topology events. Never miss an important event while troubleshooting.",'Unlock all user roles including "Manager", "Observer" and "Billing". Empower your teams to excel.',"Enable alert notification integrations (Slack, PagerDuty and more)."]}},i=["year","month"],a={year:"yearly",month:"monthly"},s={ErrInvalidPromotionCode:"Promotion code is invalid",ErrInactivePromotionCode:"Promotion code is inactive",ErrInvalidPromotionCodePlan:"Promotion code cannot be applied to this plan"}},36065:function(e,n,t){t.d(n,{Z:function(){return f}});var o=t(29439),i=t(67294),a=t(15557),s=t(83732),r=t(62200),l=t(16645),c=t(7693),d=t(92903),u=(t(24603),t(74916),t(88386),t(39714),t(77601),t(46585)),m=t(30688),h=new RegExp(/(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]|[!@#$%^&*()_+=\-])/),p=(0,m.A)([function(e){var n=e.length>=u.Pf;return(0,m.f)(n,"Please enter a name for the Space that is at least 5 characters.")},function(e){var n=e.length<=u.Qy;return(0,m.f)(n,"A Space's name can't exceed 20 characters.")},function(e){return h.test(e)?{isValid:!1,message:"There's an unexpected character in the Space's name. Use only alphanumberic characters (A-Z, a-z, 0-9) and spaces."}:{isValid:!0}}]),g=function(e){var n=e.value,t=e.isValid,s=e.setIsValid,r=e.charsIndicator,l=e.isDirty,c=e.handleChange,d=e.validationMessage,u=e.setValidationMessage,m=e.onKeyDown,h=(0,a.useTouchedState)({}),g=(0,o.Z)(h,2),f=g[0],b=g[1];return(0,i.useEffect)((function(){var e=p(n),o=e.isValid,i=e.messages&&e.messages.length?e.messages[0]:void 0;!t&&o?s(!0):t&&!o&&s(!1),i&&u(i)}),[t,n,f,s,u]),i.createElement(a.TextInput,{label:"Space name",name:"createWorkspace",placeholder:"Enter your Space's name",fieldMessage:"Give your Space a name that's between 5-20 characters. This cannot change.",fieldIndicator:r,value:n,touched:f,onBlur:b,onChange:c,success:t,error:!t&&d,instantFeedback:"positiveFirst",isDirty:l,onKeyDown:m})},f=function(e){var n=e.onClose,t=e.onDone,m=(0,i.useState)(!1),h=(0,o.Z)(m,2),p=h[0],f=h[1],b=(0,i.useState)(!1),y=(0,o.Z)(b,2),_=y[0],w=y[1],v=(0,a.useInputValue)({maxChars:u.Qy}),T=(0,o.Z)(v,4),k=T[0],x=T[1],P=T[2],C=T[3],F=(0,i.useState)(""),q=(0,o.Z)(F,2),S=q[0],D=q[1],A=(0,i.useCallback)((function(e){w(!1),n(),null===t||void 0===t||t(e)}),[n]),M=(0,s.Z)({onSuccess:A,onError:function(){return w(!1)}}),N=(0,i.useCallback)((function(){p&&(w(!0),M({name:k}))}),[k,p]);return i.createElement(l.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},i.createElement(c.x,{onClose:n,title:"Create Space"},i.createElement(a.Button,{disabled:!p,isLoading:_,loadingLabel:"Creating",label:"Save",onClick:N})),i.createElement(d.B,null,"Create a new Space"),i.createElement(l.TZ,null,i.createElement(g,{isDirty:C,isValid:p,setIsValid:f,value:k,handleChange:x,charsIndicator:P,validationMessage:S,setValidationMessage:D,onKeyDown:function(e){e.keyCode===r.DV&&p&&N()}})))}},2509:function(e,n,t){t.d(n,{Q$:function(){return d},Sr:function(){return f},bK:function(){return c},dH:function(){return h},eq:function(){return s},fM:function(){return u},fV:function(){return p},m3:function(){return a},xN:function(){return b},z2:function(){return g}});var o,i=t(4942),a="info",s="rooms",r="nodes",l="users",c="notifications",d="integrations",u="billing",m="integrations",h=[a,s,r,l,c,u,m],p=(o={},(0,i.Z)(o,a,"Info"),(0,i.Z)(o,s,"Rooms"),(0,i.Z)(o,r,"Nodes"),(0,i.Z)(o,l,"Users"),(0,i.Z)(o,c,"Alerts & Notifications"),(0,i.Z)(o,d,"Services"),(0,i.Z)(o,u,"Plan & Billing"),(0,i.Z)(o,m,"Integrations"),o),g=h[0],f="/spaces/:spaceSlug/settings/:settingsTab/*",b="/spaces/:spaceSlug/settings/:settingsTab/:settingsSubTab/*"},72671:function(e,n,t){t.d(n,{F:function(){return _}});var o=t(87462),i=t(29439),a=t(45987),s=(t(92222),t(26699),t(67294)),r=t(89250),l=t(15557),c=t(97346),d=t(91008),u=t(82351),m=t(53606),h=t(46585),p=t(13477),g=t(46667),f=t(46715),b=["currentPlan"],y=["id","isLastSpace","name","onClose"],_=function(e){return function(n){var t=n.currentPlan,o=(0,a.Z)(n,b),i=t.class,r=t.interval,c=t.billingEmail,u="year"===r?"yearly":"monthy",m="".concat(i," ").concat(u),h=!["Community","EarlyBird"].includes(i),p=!!c&&!h;return s.createElement(e,o,h&&s.createElement(s.Fragment,null,s.createElement(l.Text,null,"You are currently on ",s.createElement(l.Text,{strong:!0},m)," subscription, which will be cancelled automatically and any due credit from unused period will be given to your credit balance."),s.createElement(l.Text,null,"Any available credit with us won't be automatically lost. If you want to use it in the future, within the defined period on our"," ",s.createElement(d.Z,{href:"https://www.netdata.cloud/service-terms/",rel:"noopener noreferrer",target:"_blank"},"Terms of Service"),", or have any requests about previous invoices you can reach out to"," ",s.createElement(l.Text,{strong:!0},"support@netdata.cloud"))),p&&s.createElement(l.Text,null,"You will lose direct access to you invoices and billing information. If you want to retrieve this information in the future, you'll have to contact"," ",s.createElement(l.Text,{strong:!0},"support@netdata.cloud")))}},w=_((function(e){var n=e.spaceName,t=e.children;return s.createElement(l.Flex,{column:!0,gap:2},s.createElement(l.Text,null,"You are about to delete ",s.createElement("strong",null,n)," space."),t,s.createElement(l.Text,null,"Are you sure you want to continue?"))}));n.Z=function(e){var n=e.id,t=e.isLastSpace,d=e.name,b=e.onClose,_=(0,a.Z)(e,y),v=(0,r.s0)(),T=(0,m.Z)(n),k=(0,p.jr)(),x=(0,f.RP)().value,P=(0,g.Z)(),C=(0,i.Z)(P,4),F=C[0],q=C[2],S=C[3],D=(0,g.Z)(),A=(0,i.Z)(D,2),M=A[0],N=A[1],H=(0,s.useCallback)((function(e){b(),v("/spaces/".concat(e))}),[]);return k&&s.createElement(c.Z,{permission:"space:Delete"},s.createElement(u.Z,{align:"top",content:t&&h.T$.delete,isBasic:!0,stretch:"align"},s.createElement(l.Box,null,s.createElement(l.Button,(0,o.Z)({danger:!0,"data-ga":"manage-space-tab::click-delete-space::manage-space-modal","data-testid":"deleteSpace-button",disabled:t,flavour:"hollow",label:"DELETE SPACE",onClick:q},_)))),F&&s.createElement(l.ConfirmationDialog,{confirmLabel:M?"Deleting...":"Yes, delete","data-ga":"delete-space","data-testid":"deleteSpaceDialog",handleConfirm:function(){N(),T({onSuccess:H})},handleDecline:S,message:s.createElement(w,{spaceName:d,currentPlan:x}),title:"Delete ".concat(d," space"),isConfirmDisabled:M,isConfirmLoading:M,isDeclineDisabled:M}))}},54131:function(e,n,t){t.d(n,{Qj:function(){return i},uB:function(){return s},x3:function(){return a}});t(74916),t(77601);var o=/^[a-zA-Z0-9@_.-\s!]*$/,i={minLength:"Space name should be more than 4 characters",allowedChars:"Please use alphanumberic characters (A-Z, a-z, 0-9), spaces, periods and supported special characters @, -, _,."},a=function(e){return e.length<5?"minLength":!o.test(e)&&"allowedChars"},s=function(e){return!o.test(e)&&"allowedChars"}},73398:function(e,n,t){t.d(n,{Z:function(){return T}});var o=t(87462),i=t(45987),a=(t(92222),t(67294)),s=t(15557),r=t(45781),l=(t(69826),t(41539),t(31672),t(2490),t(59461),t(4480)),c=t(74059),d={alertCounter:{warning:0,critical:0},unreachableCount:0},u=(0,l.CG)({key:"roomAlertSummaryState",get:function(e){var n=e.id,t=e.key;return function(e){var o=e.get,i=o(c.BN),a=o((0,r.e$)({id:i,key:"entries"})).find((function(e){return e.id===n}))||d;return t?a[t]:a}}}),m=t(37518),h=t(67622),p=t(82351),g=t(60677),f=(0,g.default)(s.Flex).attrs({flex:{grow:0,shrink:0},width:2,height:2,margin:[0,1,0,0],round:1,background:"error",justifyContent:"center",alignItems:"center"}).withConfig({displayName:"indicators__ErrorIndicator",componentId:"sc-19hg3ay-0"})([""]),b=(0,g.default)(f).attrs({background:"warning"}).withConfig({displayName:"indicators__WarningIndicator",componentId:"sc-19hg3ay-1"})([""]),y=(0,g.default)(f).attrs({background:"textLite"}).withConfig({displayName:"indicators__UnreachableIndicator",componentId:"sc-19hg3ay-2"})([""]),_=t(81488),w=t(20031),v=["id","selectedId","spaceSlug","isSidebar","hideAlerts","differentiateIsMember"],T=function(e){var n=e.id,t=e.selectedId,c=e.spaceSlug,d=e.isSidebar,g=e.hideAlerts,T=e.differentiateIsMember,k=(0,i.Z)(e,v),x=function(e,n){return(0,l.sJ)(u({id:e,key:n}))}(n),P=x.alertCounter,C=P.critical,F=P.warning,q=x.unreachableCount,S=(0,m.tE)(n,"slug"),D=(0,m.tE)(n,"name"),A=(0,m.tE)(n,"isMember"),M=(0,r.Mt)("error"),N=(0,r.Mt)("updatedAt");return a.createElement(h.Z,(0,o.Z)({},!!c&&{to:"/spaces/".concat(c,"/rooms/").concat(S)},{testid:"roomLabel-warRoom-".concat(D),actions:g?null:a.createElement(p.Z,{content:a.createElement(_.Z,{error:M,text:"Room alerts",updatedAt:N}),isBasic:!0,align:"right"},a.createElement(s.Flex,{flex:!1,flexWrap:!1,justifyContent:"end",width:{min:6},height:{min:2}},C>0&&a.createElement(f,null),F>0&&a.createElement(b,null),q>0&&a.createElement(y,null))),icon:T&&A&&a.createElement(w.Z,null),iconColor:"successLite",iconHeight:"12px",iconWidth:"12px",gap:1,textProps:T&&!A&&{padding:[0,0,0,4]},selected:n===t,isSidebar:d,isSecondary:!A},k),D)}},22613:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(15557),r=t(55917),l=["onFilterClick","showAllRooms"];n.Z=function(e){var n=e.onFilterClick,t=e.showAllRooms,c=(0,i.Z)(e,l);return a.createElement(s.Flex,(0,o.Z)({gap:2,padding:[1,2],"data-testid":"roomFilterPills"},c),a.createElement(r.S,{flavour:t?"hollow":"default",onClick:n(!1),label:"My Rooms","data-ga":"roomFilterPills::click-my::global-view","data-testid":"roomFilterPills-showMy"}),a.createElement(r.S,{flavour:t?"default":"hollow",onClick:n(!0),label:"All Rooms","data-ga":"roomFilterPills::click-show-all::global-view","data-testid":"roomFilterPills-showAll"}))}},59636:function(e,n,t){var o=t(87462),i=t(29439),a=t(45987),s=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(67294)),r=t(48286),l=t(15557),c=t(95383),d=t(74059),u=t(37518),m=t(33335),h=t(73398),p=t(22613),g=["isSidebar"];n.Z=function(e){var n=e.isSidebar,t=(0,a.Z)(e,g),f=(0,c.J7)(),b=(0,s.useState)(!1),y=(0,i.Z)(b,2),_=y[0],w=y[1],v=(0,d.th)(),T=(0,d.uk)();(0,r.Z)((function(){w(!1)}),[v]);var k=(0,m.gI)("room:ReadAll"),x=(0,s.useMemo)((function(){return f.filter((function(e){return e.isMember}))}),[f]),P=k&&x.length>0,C=P&&!_?x:f,F=(0,u.UL)();return s.createElement(s.Fragment,null,P&&s.createElement(p.Z,{onFilterClick:function(e){return function(n){n.stopPropagation(),w(e)}},showAllRooms:_}),C.map((function(e,i){var a=e.id,r=e.untouchable;return s.createElement(s.Fragment,{key:a},s.createElement(h.Z,(0,o.Z)({id:a,hideAlerts:!n,Wrapper:l.Text,isSidebar:n,differentiateIsMember:_,spaceSlug:T,selectedId:F},t)),r&&i!==C.length-1&&s.createElement(l.Flex,{border:{side:"top",color:"tabsBorder"},margin:[1.5,0],"data-testid":"roomLabel-warRoomSeparator"}))})))}},55917:function(e,n,t){t.d(n,{S:function(){return s},x:function(){return a}});var o=t(60677),i=t(15557),a=(0,o.default)(i.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-i0gfkp-0"})(["transform:",";"],(function(e){return e.right?"rotate(0)":"rotate(180deg)"})),s=(0,o.default)(i.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-i0gfkp-1"})(["&&{padding:2px 16px;font-size:12px;height:auto;width:auto;min-width:96px;}"])},77872:function(e,n,t){var o=t(87462),i=t(4942),a=t(45987),s=t(29439),r=(t(92222),t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),l=t(60677),c=t(89250),d=t(15557),u=t(82351),m=t(74059),h=["active","background","showFullname"],p=["active","spaceId","testIdPrefix","local","onClick","showFullname","color"];function g(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var f=[],b=(0,l.default)(d.Flex).attrs((function(e){var n=e.active,t=e.background,o=e.showFullname;return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?g(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):g(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({width:o?"auto":7,height:7,background:n?"selected":t||"elementBackground",justifyContent:"center",alignItems:"center",round:.5,padding:o?[0,1]:[0],margin:o?[0,0,1]:[0]},(0,a.Z)(e,h))})).withConfig({displayName:"spaceLabel__SpaceBox",componentId:"sc-1e67mnq-0"})(["cursor:pointer;"]);n.Z=function(e){var n=e.active,t=e.spaceId,i=e.testIdPrefix,l=e.local,h=void 0!==l&&l,g=e.onClick,y=e.showFullname,_=e.color,w=(0,a.Z)(e,p),v=(0,c.s0)(),T=(0,m.vu)(t),k=function(e){if(!e)return f;var n=e.split(" "),t=(0,s.Z)(n,2),o=t[0],i=t[1];return[o[0],i?i[0]:""]}(T.name),x=(0,s.Z)(k,2),P=x[0],C=x[1],F=(0,r.useCallback)((function(){return g?g(T):v(h?"/overview":"/spaces/".concat(T.slug))}),[T.slug,h,g]);return r.createElement(u.Z,{content:T.name,align:"right",isBasic:!0},r.createElement(b,(0,o.Z)({active:n,"data-testid":"".concat(i||"spaceLabel-space","-").concat(T.slug),onClick:F},w,{showFullname:y}),h?r.createElement(d.Icon,{name:"node",color:n?"main":_||"textLite"}):y?r.createElement(d.TextSmall,{strong:!0,color:n?"main":_||"textLite"},T.name):r.createElement(r.Fragment,null,r.createElement(d.TextSmall,{strong:!0,color:n?"main":_||"textLite"},P),r.createElement(d.TextSmall,{strong:!0,color:n?"textLite":_||"textDescription"},C))))}},94666:function(e,n,t){t.d(n,{zm:function(){return h},ZN:function(){return p},WA:function(){return m},J9:function(){return g},Wy:function(){return y},nP:function(){return T},H4:function(){return f},kf:function(){return b},Qk:function(){return w}});t(47941),t(82526),t(38880),t(49337),t(33321),t(69070);var o=t(4942),i=(t(41539),t(15581),t(2490),t(34514),t(54747),t(26833),t(21249),t(57640),t(9924),t(57327),t(88449),t(59849),t(4480)),a=t(34912),s=t(13477),r=t(74059),l={ids:(0,i.xu)({key:"spaceMemberIds",default:[]}),updatedAt:(0,i.xu)({key:"spaceMembersUpdatedAt",default:""}),loaded:(0,i.xu)({key:"spaceMembersLoaded",default:!1})},c=(0,i.xu)({key:"spaceMemberRole",default:""});function d(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function u(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?d(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var m=(0,i.CG)({key:"spaceMemberState",get:function(e){var n=e.id,t=e.key;return function(e){return(0,e.get)(l[t](n))}},set:function(e){var n=e.id,t=e.key;return function(e,o){(0,e.set)(l[t](n),o)}}}),h=function(e,n){Object.values(l).forEach((function(t){return e(t(n))}))},p=(0,i.CG)({key:"spaceMemberRoleState",get:function(e){var n=e.id,t=e.spaceId;return function(e){return(0,e.get)(c({id:n,spaceId:t}))}},set:function(e){var n=e.id,t=e.spaceId;return function(e,o){(0,e.set)(c({id:n,spaceId:t}),o)}}}),g=(0,i.CG)({key:"spaceMembersRoleState",set:function(e){return function(n,t){var o=n.set;t.forEach((function(n){var t=n.id,i=n.role;o(p({id:t,spaceId:e}),i)}))}},get:function(e){var n=e.ids,t=e.spaceId;return function(e){var o=e.get;return n.map((function(e){return o(p({id:e,spaceId:t}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),f=function(){var e,n,t=(0,r.th)();return e=t,n="ids",(0,i.sJ)(m({id:e,key:n}))},b=function(e){var n=(0,r.th)();return(0,i.sJ)(g({ids:e,spaceId:n}))},y=function(){return"admin"===function(e){var n=(0,r.th)();return(0,i.sJ)(p({id:e,spaceId:n}))}((0,s.Iy)("id"))},_=(0,i.CG)({key:"currentSpaceMembersState",get:function(e){var n=e.ids,t=e.spaceId;return function(e){var o=e.get;return n.map((function(e){var n=o((0,a.mX)({id:e})),i=o(p({id:e,spaceId:t}));return u(u({},n),{},{role:i})}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),w=function(){var e=(0,r.th)(),n=f();return(0,i.sJ)(_({ids:n,spaceId:e}))},v=(0,i.CG)({key:"spaceAdminsState",get:function(e){var n=e.memberIds,t=e.spaceId;return function(e){return(0,e.get)(_({ids:n,spaceId:t})).filter((function(e){return"admin"===e.role}))}}}),T=function(){var e=(0,r.th)(),n=f();return(0,i.sJ)(v({memberIds:n,spaceId:e}))}},83732:function(e,n,t){var o=t(93433),i=t(15861),a=t(64687),s=t.n(a),r=(t(66992),t(41539),t(70189),t(78783),t(88921),t(96248),t(13599),t(11477),t(64362),t(15389),t(90401),t(45164),t(91238),t(54837),t(87485),t(56767),t(76651),t(61437),t(35285),t(39865),t(33948),t(92222),t(4480)),l=t(30266),c=t(74059),d=t(58502);n.Z=function(e){var n=e.onSuccess,t=e.onError,a=e.isDefault,u=void 0!==a&&a;return(0,r._8)((function(e){var a=e.set;return function(){var e=(0,i.Z)(s().mark((function e(i){var r,m,h,p,g,f,b,y;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=i.name,m=i.userId,h=i.email,e.prev=1,!u){e.next=8;break}return e.next=5,(0,l.A6)(m,h);case 5:e.t0=e.sent,e.next=11;break;case 8:return e.next=10,(0,l.wh)(r);case 10:e.t0=e.sent;case 11:p=e.t0,g=p.data,f=g.id,b=g.slug,y=g.name,a((0,d.ZP)(f),{id:f,slug:b,name:u?y:r,loaded:!0}),a((0,d.bo)(b),f),a((0,c.st)("ids"),(function(e){return e=(0,o.Z)(new Set([].concat((0,o.Z)(e),[f])))})),a((0,c.st)("loaded"),!0),n&&n(g),e.next=24;break;case 21:e.prev=21,e.t1=e.catch(1),t&&t();case 24:case"end":return e.stop()}}),e,null,[[1,21]])})));return function(n){return e.apply(this,arguments)}}()}),[n,t])}},53606:function(e,n,t){var o=t(15861),i=t(29439),a=t(64687),s=t.n(a),r=(t(57327),t(41539),t(88449),t(2490),t(59849),t(4480)),l=t(93017),c=t(30266),d=t(46585),u=t(74059),m=t(58502),h=t(57079),p=t(94666),g=t(95383);n.Z=function(e){var n=(0,l.Z)(),t=(0,i.Z)(n,2)[1];return(0,r._8)((function(n){var a=n.snapshot,r=n.set,l=n.reset;return function(){var n=(0,o.Z)(s().mark((function n(o){var f,b,y,_,w,v,T,k;return s().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return f=o.onSuccess,b=o.onError,n.next=3,a.getPromise((0,u.st)("ids"));case 3:if(y=n.sent,_=y.filter((function(n){return e!==n})),w=(0,i.Z)(_,1),v=w[0]){n.next=9;break}return t({header:"Spaces",text:d.T$.delete}),n.abrupt("return");case 9:if(n.t0=v,!n.t0){n.next=14;break}return n.next=13,a.getPromise((0,m.ZP)(v));case 13:n.t0=n.sent;case 14:return T=n.t0,k=T.slug,r((0,u.st)("ids"),_),r(h.Z,(function(n){return n.filter((function(n){return n!==e}))})),n.prev=18,n.next=21,(0,c.Ns)(e);case 21:f&&f(k),(0,p.zm)(l,e),(0,g.r1)(l,e),l((0,m.ZP)(e)),n.next=32;break;case 27:n.prev=27,n.t1=n.catch(18),r((0,u.st)("ids"),y),t(n.t1),b&&b();case 32:case"end":return n.stop()}}),n,null,[[18,27]])})));return function(e){return n.apply(this,arguments)}}()}),[e])}},20428:function(e,n,t){t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(15861),a=t(29439),s=t(64687),r=t.n(s),l=t(4480),c=t(74059),d=t(30266),u=t(93017);function m(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function h(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?m(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):m(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}n.Z=function(e){var n=(0,u.Z)(),t=(0,a.Z)(n,2),o=t[0],s=t[1];return(0,l._8)((function(n){var t=n.snapshot,a=n.set;return function(){var n=(0,i.Z)(r().mark((function n(i,l){var u,m,p;return r().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return u=l.onSuccess,m=l.onFail,n.next=3,t.getPromise((0,c.U7)({id:e}));case 3:return p=n.sent,a((0,c.U7)({id:e}),(function(e){return h(h({},e),i)})),n.prev=5,n.next=8,(0,d.$F)(e,i);case 8:o({header:"Space successfully updated!"}),u&&u(),n.next=17;break;case 12:n.prev=12,n.t0=n.catch(5),a((0,c.U7)({id:e}),p),s(n.t0),m&&m();case 17:case"end":return n.stop()}}),n,null,[[5,12]])})));return function(e,t){return n.apply(this,arguments)}}()}),[e])}},6308:function(e,n,t){t.d(n,{c:function(){return h}});var o=t(29439),i=(t(74916),t(77601),t(67294)),a=t(89250),s=t(5429),r=t(74059),l=t(25819),c=t(37518),d=t(53338),u=t(93017),m=t(78710),h=function(){var e=(0,a.TH)().pathname;return{isIntegrationsPath:/integrate-anything$/.test(e)}};n.Z=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).polling,n=void 0===e?0:e,t=(0,i.useState)(0),a=(0,o.Z)(t,2),h=a[0],p=a[1],g=(0,r.th)(),f=(0,c.HM)(g,d.i_),b=(0,u.Z)(),y=(0,o.Z)(b,2)[1],_=(0,i.useState)([]),w=(0,o.Z)(_,2),v=w[0],T=w[1];(0,i.useEffect)((function(){var e=null;return!m.ZP&&n&&(e=setInterval((function(){return p((function(e){return e+1}))}),n)),function(){clearInterval(e),e=null}}),[]);var k=(0,s.Z)((function(){return{enabled:!!f,fetch:function(){return(0,l.Fz)({roomId:f,spaceId:g})},initialValue:v,onFail:function(e){y(e)},isDefaultLoading:!0}}),[f,g,h]),x=(0,o.Z)(k,2),P=x[0],C=x[1];return(0,i.useEffect)((function(){C||T(P)}),[C,P]),{isEmptySpace:!m.ZP&&!C&&!P.length,loading:!m.ZP&&C,nodes:P}}},65351:function(e,n,t){var o=t(29439),i=t(67294),a=t(95248);n.Z=function(e,n,t,s){var r=(0,a.I0)("modal"),l=(0,o.Z)(r,2),c=l[0],d=l[1],u=(0,a.I0)("modalTab"),m=(0,o.Z)(u,2),h=m[0],p=m[1],g=(0,a.I0)("modalParams"),f=(0,o.Z)(g,2),b=f[0],y=f[1],_=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;"string"===typeof n&&p(n),d(e),t&&y(t)};return(0,i.useEffect)((function(){n&&_(t,s)}),[]),{isModalOpen:e===c,currentModalTab:h,handleChangeModalTab:p,handleOpenModal:_,handleCloseModal:function(){p(""),d(""),y()},params:b}}},55899:function(e,n,t){var o=t(15861),i=t(64687),a=t.n(i),s=t(67294),r=t(7335),l=t(89050),c=t(96929),d=t(74059),u=t(95383),m=t(19368);n.Z=function(){var e=(0,m.P)(),n=(0,u.yE)(),t=(0,d.th)(),i=(0,r.XU)(),h=(0,c.Ww)(t,n,{onSuccess:function(o){return(0,l.jG)({cacheKeyPrefix:e,nodeIds:o,roomIds:n,spaceId:t})}});return(0,s.useCallback)(function(){var e=(0,o.Z)(a().mark((function e(n){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,h(n);case 2:return e.next=4,i(n);case 4:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),[h,i])}},91128:function(e,n,t){var o=t(29439),i=t(67294),a=t(48286),s=t(46667),r=t(9058);n.Z=function(){var e=(0,s.Z)(!1),n=(0,o.Z)(e,2),t=n[0],l=n[1],c=(0,r.e)(),d=(0,i.useRef)(null);return(0,a.Z)((function(){if(c)return d.current=null===d.current&&c.getRoot().getAttribute("after")>0,c.getRoot().updateAttribute("paused",t),function(){return c&&c.getRoot().updateAttribute("paused",d.current)}}),[t]),l}},93033:function(e,n,t){var o=t(89250),i=t(67294),a=t(12599),s=t(74059),r=t(2509);n.Z=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).roomSlug,n=(0,s.uk)(),t=(0,o.s0)(),l=(0,o.TH)().pathname,c="".concat(l);return(0,i.useCallback)((function(){var o=e?(0,a.Gn)(r.xN,{spaceSlug:n,settingsTab:r.eq,settingsSubTab:e}):"/spaces/".concat(n,"/settings");t(o,{state:{previousUrlPath:c}})}),[c,t,e,n])}},27624:function(e,n,t){var o=t(37518),i=t(96929),a=t(89050),s=t(19368);n.Z=function(e){var n=(0,s.P)(),t=(0,o.UL)(),r=(0,o.tE)(e||t,"spaceId");return(0,i.nI)(r,e||t,{onSuccess:function(o){return(0,a.Br)({cacheKeyPrefix:n,nodeIds:o,roomId:e||t,spaceId:r})}})}},61152:function(e,n,t){var o=t(65351);n.Z=function(e,n){var t=(0,o.Z)(e,n),i=t.isModalOpen,a=t.handleOpenModal,s=t.handleCloseModal;return[i,i?s:a,a,s,t.params]}},78401:function(e,n,t){t.d(n,{O:function(){return c}});t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(29439),a=(t(85827),t(41539),t(25387),t(2490),t(72608),t(69720),t(26699),t(32023),t(52971)),s=t(85456);function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var c=function(){return Object.entries(a.Ew).reduce((function(e,n){var t=(0,i.Z)(n,2),a=t[0],r=t[1];return l(l({},e),{},(0,o.Z)({},a,(0,s.gs)(r.id)))}),{})};n.Z=function(e){var n=e.avatar,t=e.createdAt,o=e.email,i=e.id,r=e.name,l=e.spacesCount,c=e.verifiedEmail;if(window.envSettings.tracking&&(!o||!o.includes("@netdata.msdc.co"))&&(!i||"00000000-0000-0000-0000-000000000000"!==i)&&(!o||!o.includes("anonymous@netdata.cloud"))){var d,u=new Date,m=u.toISOString(),h=new Date(t),p=Math.floor((u-h)/864e5);if((0,s.gs)(a.Ew.analyticsCookies.id))window.dataLayer&&window.dataLayer.push({event:"UserInfoAvailable",user_id:i,userIdentifier:i,userName:r,userEmail:o,userAccountCreatedAt:t,userAccountCreatedDaysAgo:p,userAvatarURL:n,userEmailVerified:c,spacesCount:l}),window.gtag&&window.gtag("config","G-J69Z2JCTFB",{user_id:i}),null!==(d=window.posthog)&&void 0!==d&&d.__loaded&&(window.posthog.identify(i),window.posthog.people.set({email:o||"unknown email",name:r,netdata_cloud_account_created_at:t,netdata_cloud_account_created_days_ago:p}),window.posthog.register({netdata_cloud_account_created_days_ago:p}),window.posthog.register_once({event_source:"cloud",netdata_cloud_account_created_at:t,netdata_cloud_account_email:o||"unknown email",netdata_cloud_account_id:i,netdata_cloud_signed_in_at:m}))}}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cf26f830-2321-4dc8-9c9e-83342c069662",e._sentryDebugIdIdentifier="sentry-dbid-cf26f830-2321-4dc8-9c9e-83342c069662")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[147],{95665:function(e,n,t){t.d(n,{Z:function(){return Ue}});var o=t(87462),i=t(29439),a=t(45987),s=(t(66992),t(41539),t(33948),t(92222),t(67294)),r=t(48286),l=t(28789),c=t(69119),d=t(83894),u=t(57509),m=t(92432),h=t(46667),p=t(23109),g=(t(21249),t(57640),t(9924),t(47941),t(82526),t(57327),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(4942)),f=t(60677);function b(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var y=(0,f.default)(u.Flex).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?b(Object(t),!0).forEach((function(n){(0,g.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):b(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({position:"relative",width:{min:200},height:{min:45},column:!0,background:"dropdown",color:"text",zIndex:60,round:!0,alignItems:"end"},e)})).withConfig({displayName:"styled__PickerBox",componentId:"sc-gwjt9o-0"})([""]),_=f.default.span.withConfig({displayName:"styled__StyledTimePeriod",componentId:"sc-gwjt9o-1"})(["margin-bottom:",";cursor:pointer;width:187px;height:",";&:last-of-type{margin-bottom:0;}& > span:hover{color:",";}"],(0,u.getSizeBy)(1.5),(0,u.getSizeBy)(2),(0,u.getColor)("textLite")),w=(0,f.default)(u.Flex).attrs((function(e){return{color:e.isSelected?"primary":"text",margin:[2,6,0]}})).withConfig({displayName:"styled__StyledCustomTimePeriod",componentId:"sc-gwjt9o-2"})(["cursor:pointer;&:first-of-type{margin-top:0;}&:hover{color:",";}"],(0,u.getColor)("textLite")),v=(0,f.default)(u.Flex).attrs({alignItems:"center",border:{side:"all",color:"border"},color:"text",flexWrap:!1,height:8,justifyContent:"center",padding:[2,0],round:1,width:22}).withConfig({displayName:"styled__TimePeriodDropdownButton",componentId:"sc-gwjt9o-3"})([""]),T=(0,f.default)(u.Drop).attrs({background:"mainBackground",column:!0,overflow:{vertical:"auto"},margin:[.5,0,0],padding:[2,0],round:1}).withConfig({displayName:"styled__TimePeriodDrop",componentId:"sc-gwjt9o-4"})([""]),k=(0,f.default)(u.Icon).withConfig({displayName:"styled__DropdownIcon",componentId:"sc-gwjt9o-5"})(["fill:",";width:12px;height:12px;"],(0,u.getColor)("text")),x=f.default.input.withConfig({displayName:"styled__CustomInput",componentId:"sc-gwjt9o-6"})(["border:1px solid ",";background:",";box-sizing:border-box;border-radius:4px;color:",";height:32px;margin-left:10px;margin-right:10px;outline:none;padding:4px;width:32px;&:focus{border:1px solid ",";}"],(0,u.getColor)("border"),(0,u.getColor)("mainBackground"),(0,u.getColor)("text"),(0,u.getColor)("primary")),P=(0,f.default)(u.Drop).attrs({background:"dropdown",round:2,margin:[.5,0,0],border:{side:"all",color:"borderSecondary"},animation:!0}).withConfig({displayName:"styled__StyledDrop",componentId:"sc-gwjt9o-7"})([""]),C=(0,f.default)(u.TextInput).withConfig({displayName:"styled__StyledDateInput",componentId:"sc-gwjt9o-8"})(["margin-left:20px;margin-right:20px;"]),F=f.default.div.withConfig({displayName:"styled__StyledCalendar",componentId:"sc-gwjt9o-9"})(["background:",";border:0;&.react-datepicker{background:",";border:0;}.react-datepicker{&__navigation{top:8px;&-icon::before{border-color:",";}}&__month-container{height:260px;}&__header{background:",";border:0;.react-datepicker__current-month{color:",";font-weight:normal;}.react-datepicker__day-name{color:",";}}&__day{color:",";&:hover{background:",";}&--disabled{color:",";&:hover{background:inherit;}}&--keyboard-selected,&--keyboard-selected:hover{color:",";background:inherit;border-radius:inherit;}&--selected,&--selected:hover{color:",";background:",";border-radius:8px;}&--in-selecting-range,&--in-range{color:",";background:",";border-radius:0;}&--selecting-range-start,&--range-start{color:",";background:",";border-top-left-radius:8px;border-bottom-left-radius:8px;&:hover{color:",";background:",";border-radius:0;border-top-left-radius:8px;border-bottom-left-radius:8px;}}&--selecting-range-end,&--range-end{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;&:hover{color:",";background:",";border-top-right-radius:8px;border-bottom-right-radius:8px;}}}}"],(0,u.getColor)("dropdown"),(0,u.getColor)("dropdown"),(0,u.getColor)("text"),(0,u.getColor)("dropdown"),(0,u.getColor)("main"),(0,u.getColor)("textLite"),(0,u.getColor)("main"),(0,u.getColor)("elementBackground"),(0,u.getColor)("textLite"),(0,u.getColor)("main"),(0,u.getColor)("bright"),(0,u.getColor)("primary"),(0,u.getColor)("primary"),(0,u.getColor)("elementBackground"),(0,u.getColor)("bright"),(0,u.getColor)("primary"),(0,u.getColor)("bright"),(0,u.getRgbColor)(["green","netdata"],.8),(0,u.getColor)("bright"),(0,u.getColor)("primary"),(0,u.getColor)("bright"),(0,u.getRgbColor)(["green","netdata"],.8)),q=function(e){var n=e.value,t=e.period,o=e.resolution,i=e.isSelected,a=e.setTimeRange,r=e.tagging,l=(0,s.useCallback)((function(){return a(n,o)}),[n,o]);return s.createElement(_,{key:n,onClick:l,"data-ga":"date-picker::click-quick-selector::".concat(r,"::").concat(-n),"data-testid":"timePeriod-value"},s.createElement(u.Text,{color:i?"primary":"text"},t))},S=(0,s.memo)(q),D=(t(39714),t(83112),t(66528),t(29422)),A=t(99982),M=t(49546),N=t(38431),H=t(76417),E=t(936),O=60,I=3600,R=86400,L=["minutes","hours","days","months"],B={minutes:O,hours:I,days:R,months:2592e3},U=function(e,n){return Math.round(e/B[n])},j=function(e,n){var t=(0,D.Z)(new Date(0),(0,g.Z)({},n,e));return-(0,A.Z)(t)},G={startDate:"start",endDate:"finish"},z=[{period:"Last 5 minutes",value:-300,resolution:"minutes"},{period:"Last 10 minutes",value:-600,resolution:"minutes"},{period:"Last 15 minutes",value:-900,resolution:"minutes"},{period:"Last 30 minutes",value:-1800,resolution:"minutes"},{period:"Last hour",value:-3600,resolution:"hours"},{period:"Last 2 hours",value:-7200,resolution:"hours"},{period:"Last 6 hours",value:-21600,resolution:"hours"},{period:"Last 12 hours",value:-43200,resolution:"hours"},{period:"Last day",value:-R,resolution:"days"},{period:"Last 2 days",value:-2*R,resolution:"days"},{period:"Last 7 days",value:-7*R,resolution:"days"}],Y=function(e,n){var t=(0,N.Z)(e,"MMMM d yyyy, H:mm")?e:(0,H.default)(e,"MMMM d yyyy, H:mm",Date.now());return(0,H.default)("".concat(t," ").concat(function(e){if(!e)return"+00:00";var n=e.toString().split("."),t=n[0]>0?"+":"-",o=Math.abs(n[0]).toString(),i="".concat(t).concat(o.padStart(2,0));return n.length>1?"".concat(i,":").concat(String(.6*n[1]).padEnd(2,0)):"".concat(i,":00")}(n)),"MMMM d yyyy, H:mm xxx",Date.now())},X=function(e){var n=e.handleTimePeriodChange,t=e.selectedDate,o=e.tagging;return s.createElement(u.Flex,{column:!0,justifyContent:"start",alignItems:"start",height:{max:"260px"},overflow:{vertical:"auto"},"data-testid":"timePeriods"},z.map((function(e){var i=e.period,a=e.value,r=e.resolution;return s.createElement(S,{key:a,value:a,period:i,resolution:r,setTimeRange:n,isSelected:t===a,tagging:o})})))},Z=(t(9653),t(33161),t(12274)),W=function(e){var n=e.customTimePeriodRef,t=e.handleTimePeriodChange,o=e.value,a=e.resolution,r=e.tagging,l=function(){return o<=0?U(-o,a):0},c=(0,s.useState)(l),d=(0,i.Z)(c,2),m=d[0],p=d[1],f=(0,h.Z)(),b=(0,i.Z)(f,4),y=b[0],_=b[1],P=b[3],C=(0,s.useRef)();(0,s.useEffect)((function(){return p(l())}),[o]);var F=(0,s.useCallback)((function(e){return p(e.target.value)}),[]),q=(0,s.useCallback)((function(e){var n=Number(e.currentTarget.value),i=!Number.isNaN(n)&&Number.isInteger(n)&&n>0,s=(0,D.Z)(new Date(0),(0,g.Z)({},a,n));return i&&(0,Z.default)(s)&&(0,A.Z)(s)<=94694400?t(j(n,a),a):p(o<=0?U(-o,a):0)}),[a,m]),S=(0,s.useCallback)((function(e){return function(){t(j(m,e),e),P()}}),[m]);return s.createElement(u.Flex,{justifyContent:"start",alignItems:"center",height:8,"data-ga":"date-picker::click-last-integer::".concat(r),"data-testid":"customTimePeriod"},s.createElement(u.Text,{"data-testid":"customTimePeriod-label"},"Last"),s.createElement(x,{value:m,onChange:F,onBlur:q,"data-ga":"date-picker::click-last-integer::".concat(r,"::").concat(m),"data-testid":"timePeriod-timeInput"}),s.createElement(v,{"data-testid":"timePeriodDropdown-button",onClick:_,ref:C},s.createElement(u.Text,{"data-testid":"timePeriodDropdown-buttonLabel",padding:[0,4,0,0]},a),s.createElement(k,{"data-testid":"timePeriodDropdown-buttonIcon",name:"triangle_down"})),C.current&&y&&s.createElement(T,{align:{top:"bottom",left:"left"},animation:!0,close:P,"data-testid":"timePeriodDropdown",onClickOutside:P,onEsc:P,ref:n,target:C.current},L.map((function(e){return s.createElement(w,{key:e,onClick:S(e),"data-ga":"date-picker::click-last-time-".concat(e,"::").concat(r),"data-testid":"timePeriod-option"},e)}))))},K=t(313),$=t(89405),V=t(9198),J=t.n(V),Q=(t(59061),function(e){var n=e.selected,t=e.selectsStart,o=void 0!==t&&t,i=e.selectsEnd,a=void 0!==i&&i,r=e.startDate,l=e.endDate,c=e.onChange,d=e.minDate,u=e.maxDate,m=e.dateFormat,h=void 0===m?"MM/dd/yyyy":m,p=e.open,g=void 0!==p&&p,f=e.startOpen,b=void 0!==f&&f,y=e.inline,_=void 0!==y&&y,w=e.selectsRange,v=void 0!==w&&w,T=e.monthsShown,k=void 0===T?1:T,x=e.showPopperArrow,P=void 0===x||x,C=e.calendarContainer,F=void 0===C?null:C;return s.createElement(J(),{selected:n,onChange:c,selectsStart:o,selectsEnd:a,startDate:r,endDate:l,minDate:d,maxDate:u,dateFormat:h,open:g,startOpen:b,inline:_,selectsRange:v,monthsShown:k,showPopperArrow:P,calendarContainer:F})}),ee=function(e){var n=e.name,t=void 0===n?"":n,o=e.value,a=void 0===o?"":o,r=e.onDatesChange,c=e.onFocus,d=e.placeholderText,u=void 0===d?"":d,m=(0,$.rA)().utcOffset,h=(0,s.useState)(""),p=(0,i.Z)(h,2),g=p[0],f=p[1],b=(0,s.useCallback)((function(e){var n=e.target.value;f(n)}),[]),y=(0,s.useCallback)((function(e){if((0,Z.default)(e)){var n=(0,M.default)(e,"MMMM d yyyy, H:mm");f(n)}}),[]),_=(0,s.useCallback)((function(e){var n=Y(e.target.value,m);if((0,Z.default)(n)&&(0,l.default)(n)>0){var t=(0,l.default)(n);r(t,(function(){return y(a)}))}else y(a)}),[a,m]);return(0,s.useEffect)((function(){return y(a)}),[a]),s.createElement(C,{type:"text",name:t,value:a?g:u,onChange:b,onBlur:_,onFocus:c,placeholder:u,"data-testid":"datePicker-input"})},ne=t(19013),te=function(){var e=(0,$.rA)(),n=e.localeTimeString,t=e.localeDateString;return(0,s.useCallback)((function(e){return"".concat(t(e,{locale:"en-us",long:!1})," ").concat(n(e,{locale:"en-us",secs:!1}))}),[n,t])},oe=function(e,n){return e>0?(0,ne.default)(new Date(n(e))):e||0===e?(0,ne.default)(new Date(n((new Date).valueOf()+1e3*e))):null},ie=function(e){var n=te();return(0,s.useMemo)((function(){return oe(e,n)}),[e])},ae=function(e,n){return[ie(e),ie(n)]};function se(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var re=function(e){var n=e.startDate,t=e.setStartDate,a=e.endDate,r=e.setEndDate,c=e.singleDate,d=e.onDatesChange,m=e.onInputFocus,h=e.onlyDates,p=e.maxDate,f=void 0===p?new Date:p,b=e.minDate,y=void 0===b?new Date("1/1/2018"):b,_=e.isSinglePicker,w=ae(n,a),v=(0,i.Z)(w,2),T=v[0],k=v[1],x=ie(c),P=(0,$.rA)().utcOffset,C=te(),q=(0,s.useCallback)((function(e,n){return(0,K.default)(oe(e,C),k)?t(e):n()}),[a,C]),S=(0,s.useCallback)((function(e,n){return(0,K.default)(T,oe(e,C))?r(e):n()}),[n,C]),D=(0,s.useCallback)((function(e){var n=Array.isArray(e)?e[0]:e,t=Array.isArray(e)?e[1]:null,o=n?Y((0,M.default)(n,"MMMM d yyyy, H:mm"),P):n,i=t?Y((0,M.default)(t,"MMMM d yyyy, H:mm"),P):t,a=(0,l.default)(o)||null,s=(0,l.default)(i)||null;d(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?se(Object(t),!0).forEach((function(n){(0,g.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):se(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({},_?{singleDate:a}:{startDate:a,endDate:s}))}),[P]);return s.createElement(u.Flex,{column:!0,justifyContent:"center",alignItems:"center",flex:!0,gap:3,"data-testid":"datePicker-wrapper"},s.createElement(Q,(0,o.Z)({selected:_?x:T,onChange:D},_?{}:{startDate:T,endDate:k},{maxDate:f,minDate:y,inline:!0,selectsRange:!0,monthsShown:_?1:2,dateFormat:"MMMM d yyyy, H:mm",showPopperArrow:!1,calendarContainer:F})),!h&&(_?s.createElement(ee,{name:"date",value:x,onDatesChange:D,placeholderText:"Select a date"}):s.createElement(u.Flex,{justifyContent:"around",alignItems:"center",width:"100%"},s.createElement(ee,{name:"startDate",value:T,onDatesChange:q,onFocus:m,placeholderText:"Select a start date"}),s.createElement(ee,{name:"endDate",value:k,onDatesChange:S,onFocus:m,placeholderText:"Select an end date"}))))},le=function(e){var n=e.startDate,t=e.endDate,o=e.onlyDates,a=ae(n,t),r=(0,i.Z)(a,2),c=r[0],d=r[1],m=(0,s.useMemo)((function(){return function(e,n){var t=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).onlyDates?"MMMM d yyyy":"MMMM d yyyy, H:mm:ss";return{formattedStartDate:(0,M.default)(e,t),formattedEndDate:(0,M.default)(n,t)}}(c,d,{onlyDates:o})}),[c,d]),h=m.formattedStartDate,p=m.formattedEndDate,g=(0,s.useMemo)((function(){return function(e,n){return(0,E.Z)((0,l.default)(e),(0,l.default)(n))}(c,d)}),[c,d]);return s.createElement(u.Flex,{alignItems:"center",gap:2},s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:1.5},s.createElement(u.TextSmall,{strong:!0,whiteSpace:"nowrap"},"From"),s.createElement(u.TextSmall,{whiteSpace:"nowrap","data-testid":"periodIndication-from"},h)),s.createElement(u.Icon,{name:"arrow_left",size:"small",color:"textLite",rotate:2}),s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:1.5},s.createElement(u.TextSmall,{strong:!0,whiteSpace:"nowrap"},"To"),s.createElement(u.TextSmall,{whiteSpace:"nowrap","data-testid":"periodIndication-to"},p)),s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:2},s.createElement(u.TextSmall,{whiteSpace:"nowrap"},"/"),s.createElement(u.TextSmall,{color:"textLite",whiteSpace:"nowrap","data-testid":"periodIndication-period"},g)))},ce=t(2379),de=(t(85827),t(26699),t(3151)),ue=t(33926),me=36e5,he=864e5,pe=2592e6,ge=[{key:"years",value:31104e6,unit:"y"},{key:"months",value:pe,unit:"m"},{key:"days",value:he,unit:"d"},{key:"hours",value:me,unit:"h"},{key:"minutes",value:6e4,unit:"min"},{key:"seconds",value:1e3,unit:"s"}],fe=["hours","minutes","seconds"],be=function(e){var n=e.placeholder,t=void 0===n?"No date":n;return s.createElement(u.TextSmall,null,t)},ye=function(e){var n=e.isPlaying,t=e.startDate,o=e.endDate,i=e.isSameDate,a=e.color,r=e.onlyDates,l=(0,$.rA)(),c=l.localeTimeString,d=l.localeDateString,m=a||(n?"accent":"textFocus");return s.createElement(u.Flex,{gap:2},s.createElement(u.TextSmall,{color:a,whiteSpace:"nowrap"},d(t,{long:!1}),!r&&s.createElement(s.Fragment,null," ","\u2022"," ",s.createElement(u.TextSmall,{color:m,whiteSpace:"nowrap"},c(t,{secs:!1})))),r&&!i&&s.createElement(s.Fragment,null,s.createElement(u.Icon,{name:"arrow_left",color:m,size:"small",rotate:2}),s.createElement(u.TextSmall,{color:a,whiteSpace:"nowrap"},!i&&d(o,{long:!1}),!r&&s.createElement(s.Fragment,null," ","\u2022"," ",s.createElement(u.TextSmall,{color:m,whiteSpace:"nowrap"},c(o,{secs:!1}))))))},_e=function(e){var n=e.isPlaying,t=e.duration,o=e.color,i=e.fluid,a=void 0!==i&&i;return s.createElement(u.Flex,{gap:1,align:"center"},s.createElement(u.TextSmall,{color:o},"\u2022"),s.createElement(u.Flex,{width:a?"auto":5},n&&s.createElement(u.TextSmall,{color:o},"last")),s.createElement(u.TextSmall,{color:o},t))},we=t(82351),ve=(0,f.default)(u.Flex).withConfig({displayName:"styled__Container",componentId:"sc-1s7311w-0"})(["cursor:pointer;&:hover *{color:",";fill:",";}"],(0,u.getColor)("textLite"),(0,u.getColor)("textLite")),Te=(0,f.default)(we.Z).withConfig({displayName:"styled__StyledTooltip",componentId:"sc-1s7311w-1"})(["pointer-events:",";"],(function(e){return e.isDisabled?"none":"auto"})),ke=["onClick","start","end","isPlaying","isPickerOpen","tagging","color","fluid","onlyDates","tooltipContent","isSinglePicker","noDateSelected"],xe=(0,s.forwardRef)((function(e,n){var t=e.onClick,r=e.start,l=e.end,c=e.isPlaying,d=e.isPickerOpen,u=e.tagging,m=e.color,h=e.fluid,p=e.onlyDates,g=e.tooltipContent,f=e.isSinglePicker,b=e.noDateSelected,y=(0,a.Z)(e,ke),_=(0,ce.I)(),w=(0,s.useMemo)((function(){if(b)return[];var e=function(e){return e<0?(0,D.Z)(new Date,{seconds:e}):new Date(e)}(r),n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e?new Date(e):new Date}(l),t=function(e,n){return(0,de.default)(e,n)}(e,n);return[e,n,t]}),[r,l,b]),v=(0,i.Z)(w,3),T=v[0],k=v[1],x=v[2],P=(0,s.useMemo)((function(){return b?0:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.withSeconds,o=void 0!==t&&t,i=n.withTime,a=void 0===i||i,s=o||!!e.seconds;return ge.reduce((function(n,t){var o=t.key,i=t.unit;return"seconds"!==o||s?!a&&fe.includes(o)?n:e[o]?n?"".concat(n," ").concat(e[o]).concat(i):"".concat(e[o]).concat(i):n:n}),"")}(function(e,n){return(0,ue.Z)({start:e,end:n})}(T,k),{withTime:!p})}),[c,T,k,b]);return s.createElement(Te,{content:d?function(){}:g||"Select a predefined or a custom timeframe",align:"bottom",isDisabled:!t||_,plain:!0},s.createElement(ve,(0,o.Z)({alignItems:"center",justifyContent:"center",gap:1,height:"100%",onClick:t,padding:[0,1],ref:n,"data-ga":"date-picker::click-time::".concat(u),"data-testid":"datePicker-accessorElement"},y),f&&b?s.createElement(be,null):s.createElement(ye,{isPlaying:c,endDate:k,startDate:T,isSameDate:x,color:m,onlyDates:p}),!p&&!f&&!b&&s.createElement(_e,{isPlaying:c,duration:P,color:m,fluid:h})))})),Pe=xe,Ce=t(95248),Fe=(t(32023),t(89211)),qe=t(67622),Se=t(37689),De=t(92517),Ae=(0,f.default)(u.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1,width:80}).withConfig({displayName:"dropdown__Dropdown",componentId:"sc-pg99kg-0"})([""]),Me=(0,f.default)(u.Flex).attrs({column:!0,padding:[2,0,0],overflow:{vertical:"auto"},height:{max:"320px"}}).withConfig({displayName:"container__Container",componentId:"sc-1gtygg6-0"})([""]),Ne=(0,f.default)(u.Flex).attrs({justifyContent:"between",alignItems:"center",width:"100%",gap:2}).withConfig({displayName:"wrapper__Wrapper",componentId:"sc-1ehauu1-0"})([""]),He=function(e){var n=e.name,t=e.offset,o=e.utc,i=e.onSelect,a=(0,s.useCallback)((function(){return i(o,t,n)}),[o,n]);return s.createElement(qe.Z,{round:1,onClick:a,Wrapper:Ne,"data-ga":"timezone-picker::click-timezone::global-view::".concat(n)},s.createElement(u.Text,{color:"text"},n),s.createElement(u.Text,{color:"textLite",whiteSpace:"nowrap"},"UTC ",t))},Ee=t(14600),Oe=function(e){var n=e.value,t=e.onChange,o=e.timezoneRef,a=e.timezoneName,r=(0,s.useState)(""),l=(0,i.Z)(r,2),c=l[0],d=l[1],m=(0,Fe.Z)(),h=(0,i.Z)(m,2),p=h[0],g=h[1],f=(0,s.useRef)(),b=(0,s.useRef)();(0,s.useEffect)((function(){b.current&&p&&b.current.focus()}),[p]);var y=(0,s.useMemo)((function(){return c?Ee.K.filter((function(e){var n=e.text,t=e.offset;return n.toUpperCase().includes(c.toUpperCase())||t.includes(c)})):Ee.K}),[c]),_=function(){g(!1),d("")},w=(0,s.useCallback)((function(e,n,o){t(e,n,o),_()}),[]),v=(0,s.useCallback)((function(e){return d(e.target.value)}),[]);return s.createElement(De.Z,{hasBorder:!1,testId:"timezone-picker"},s.createElement(qe.Z,{round:1,onClick:g,ref:f,Wrapper:Ne,padding:[2],"data-ga":"timezone-picker::click-picker::global-view",selected:!0},s.createElement(u.Flex,{gap:1},s.createElement(u.Text,{color:"text",whiteSpace:"nowrap"},a," UTC ",n)),s.createElement(u.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"})),f.current&&p&&s.createElement(Ae,{onClickOutside:_,onEsc:_,ref:o,target:f.current},s.createElement(u.Box,{padding:[0,2]},s.createElement(Se.Z,{value:c,onChange:v,ref:b,"data-ga":"timezone-picker::click-search::global-view"})),s.createElement(Me,null,y.map((function(e){var n=e.text,t=e.offset,o=e.utc;return s.createElement(He,{key:n,name:n,offset:t,utc:o[0],onSelect:w})})))))},Ie=function(e){var n=e.timezoneRef,t=(0,Ce.I0)(),o=(0,i.Z)(t,2),a=o[0],r=a.offset,l=a.timezoneName,c=o[1],d=(0,s.useCallback)((function(e,n,t){return c({utc:e,offset:n,timezoneName:t})}),[]);return s.createElement(Oe,{timezoneRef:n,timezoneName:l,value:r,onChange:d})},Re=(t(68216),t(79433),["mousedown","touchstart"]),Le=t(91128),Be=["onChange","isSinglePicker","values","defaultValue","tagging","isPlaying","onlyDates","accessorProps","maxDate","minDate","accessorTooltipContent"],Ue=function(e){var n=e.onChange,t=e.isSinglePicker,g=e.values,f=void 0===g?{}:g,b=f.start,_=f.end,w=f.singleDate,v=e.defaultValue,T=void 0===v?-900:v,k=e.tagging,x=void 0===k?"":k,C=e.isPlaying,F=e.onlyDates,q=e.accessorProps,S=void 0===q?{}:q,D=e.maxDate,A=e.minDate,M=e.accessorTooltipContent,N=(0,a.Z)(e,Be),H=(0,s.useState)(w),E=(0,i.Z)(H,2),O=E[0],I=E[1],R=(0,s.useState)(b),L=(0,i.Z)(R,2),B=L[0],U=L[1],j=(0,s.useState)(b),z=(0,i.Z)(j,2),Y=z[0],Z=z[1],K=(0,p.Z)("resolution","minutes"),$=(0,i.Z)(K,2),V=$[0],J=$[1],Q=(0,s.useState)("startDate"),ee=(0,i.Z)(Q,2),ne=ee[0],te=ee[1],oe=(0,h.Z)(),ie=(0,i.Z)(oe,4),ae=ie[0],se=ie[1],ce=ie[3],de=(0,s.useRef)(),ue=(0,s.useState)(null),me=(0,i.Z)(ue,2),he=me[0],pe=me[1],ge=(0,s.useState)(null),fe=(0,i.Z)(ge,2),be=fe[0],ye=fe[1],_e=(0,s.useState)(null),we=(0,i.Z)(_e,2),ve=we[0],Te=we[1],ke=(0,Le.Z)();!function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Re,t=arguments.length>2?arguments[2]:void 0,o=(0,s.useRef)();(0,s.useEffect)((function(){var i=function(n){Array.isArray(t)?t.every((function(e){return!e||!e.contains(n.target)}))&&e():o.current&&!o.current.contains(n.target)&&e()};return n.forEach((function(e){return document.addEventListener(e,i)})),function(){n.forEach((function(e){return document.removeEventListener(e,i)}))}}),[o,e,t])}(ce,["mouseup","touchend"],[he,be,ve,de.current]),(0,r.Z)((function(){ke(!!ae)}),[ae]);var xe=(0,s.useCallback)((function(e){var n=e.startDate,t=e.endDate;U(n),Z(t)}),[]);(0,s.useEffect)((function(){xe({startDate:b,endDate:_})}),[b,_]);var Ce=(0,s.useCallback)((function(){t?(I(w),ce()):xe({startDate:T,endDate:0})}),[t]),Fe=(0,s.useCallback)((function(e){e.target.name&&te(e.target.name)}),[]),qe=(0,s.useCallback)((function(e){e.stopPropagation(),se()}),[se]),Se=function(){t?n(O):(n({start:B,end:Y}),ke(!1)),ce()},De=(0,s.useMemo)((function(){return function(e){return G[e]}(ne)}),[ne]),Ae=!!t||null!==B&&null!==Y&&B!==Y,Me=!t&&(B===b&&Y===_),Ne=(0,s.useMemo)((function(){return T}),[]),He=B===Ne,Ee=(0,s.useCallback)((function(e,n){J(n),xe({startDate:e,endDate:0})}),[]),Oe=function(e){var o=e.startDate,i=e.endDate,a=e.singleDate;if(t)I(a),n(a),(0,m.L)("date-picker","click-date-picker",x,String(a));else{xe(F?{startDate:o?(0,l.default)((0,c.default)(new Date(o))):o,endDate:i?(0,l.default)((0,d.default)(new Date(i))):i}:{startDate:o,endDate:i});var s="finish"===De?i||o:o||i;(0,m.L)("date-picker","click-date-picker",x,String(s))}},Ue=(0,s.useMemo)((function(){return de.current&&ae?s.createElement(P,{backdrop:!0,target:de.current,canHideTarget:!1,align:{top:"bottom",left:"left"},onEsc:ce},s.createElement(y,(0,o.Z)({ref:ye,"data-testid":"datePicker"},N),s.createElement(u.Flex,{alignItems:"center",width:"100%",padding:F?[4]:[0,6]},!F&&!t&&s.createElement(u.Flex,{column:!0,gap:3,margin:[0,4,0,0],padding:[6,0],border:{side:"right",color:"borderSecondary"}},s.createElement(X,{handleTimePeriodChange:Ee,selectedDate:B,tagging:x}),s.createElement(W,{handleTimePeriodChange:Ee,customTimePeriodRef:pe,resolution:V,tagging:x,value:B})),s.createElement(re,{startDate:B,endDate:Y,singleDate:O,setStartDate:U,setEndDate:Z,onDatesChange:Oe,onInputFocus:Fe,onlyDates:F,maxDate:D,minDate:A,isSinglePicker:t})),s.createElement(u.Flex,{column:!0,padding:[4,6,2],width:"100%",border:{side:"top",color:"borderSecondary"}},!F&&!t&&s.createElement(Ie,{timezoneRef:Te}),s.createElement(u.Flex,{gap:1,justifyContent:t?"end":F?"center":Ae?"between":"end",width:"100%"},!F&&!t&&Ae&&s.createElement(le,{startDate:B,endDate:Y,onlyDates:F}),s.createElement(u.Flex,{alignItems:"center",justifyContent:"center",gap:1},s.createElement(u.Button,{label:"Clear",flavour:"hollow",onClick:Ce,disabled:He,"data-ga":"date-picker::click-clear::".concat(x,"-").concat(De),"data-testid":"datePicker-clear",small:!0}),s.createElement(u.Button,{label:"Apply",onClick:Se,disabled:!Ae||Me,"data-ga":"date-picker::click-apply::".concat(x,"-").concat(De),"data-testid":"datePicker-apply",small:!0})))))):null}),[B,x,V,Y,Ae,He,De,Me,O,ae]);return s.createElement(s.Fragment,null,s.createElement(Pe,(0,o.Z)({onClick:qe,tagging:x,isPickerOpen:ae,isPlaying:C,setRangeValues:n,start:t?O:b,end:t?O:_,ref:de,onlyDates:F,tooltipContent:M,isSinglePicker:t,noDateSelected:t&&!O},S)),Ue)}},2379:function(e,n,t){t.d(n,{I:function(){return s},o:function(){return r}});var o=t(89250),i=t(3322),a={},s=function(){var e=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/alerts"),n=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/alerts/:alertId"),t=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/home"),s=(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/functions"),r=((0,i.ZQ)({extraKey:"fn"})||a).hasHistory;return e||n||t||s&&!r},r=function(){return(0,o.bS)("/spaces/:spaceSlug/rooms/:roomSlug/events")}},92432:function(e,n,t){t.d(n,{L:function(){return o}});var o=function(e,n,t,o,i){var a,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"gaCustomEvent";if(window.envSettings.tracking){if(window.dataLayer){var r={event:s,eventCategory:e,eventAction:n,eventLabel:t,eventValue:o,eventResults:i};window.dataLayer.push(r)}window.gtag&&window.gtag("event","gaCustomEvent",{eventCategory:e,eventAction:n,eventLabel:t,eventValue:o,eventResults:i}),null!==(a=window.posthog)&&void 0!==a&&a.__loaded&&window.posthog.capture(s,{eventCategory:e,eventAction:n,eventLabel:t,eventValue:o})}}},89405:function(e,n,t){t.d(n,{rA:function(){return _},tb:function(){return b}});var o=t(4942),i=t(45987),a=(t(91058),t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),s=t(49546),r=t(58591),l=t(14600),c=["long","isTime","secs","timezone"],d=["locale"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=!!(Intl&&Intl.DateTimeFormat&&navigator.language),p=function(e){return"number"===typeof e?new Date(e):e},g=function(e){return(e=p(e))?(0,s.default)(e,"MM/dd/yyyy"):""},f=function(e){return(e=p(e))?(0,s.default)(e,"HH:mm"):""},b=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new Date(new Date(e).getTime()+60*parseInt(n)*60*1e3)},y=function(e,n){var t=n.locale,o=(0,i.Z)(n,d);return new Intl.DateTimeFormat(null!==t&&void 0!==t?t:navigator.language,function(e){var n=e.long,t=e.isTime,o=e.secs,a=e.timezone,s=(0,i.Z)(e,c);return m(m(m({hourCycle:"h23"},t?{}:n?{weekday:"short",year:"numeric",month:"short",day:"2-digit"}:{dateStyle:"short"}),t&&{timeStyle:o?"medium":"short"}),{},{timeZone:a},s)}(o)).format(e)},_=function(){var e=function(){var e=(0,r.m$)().utc;return(0,l.E)("default",e)}(),n=e.utc,t=e.offset;return{localeDateString:(0,a.useMemo)((function(){return h?function(e,t){return y(e,m({long:!0,timezone:n},t))}:g}),[n]),localeTimeString:(0,a.useMemo)((function(){return h?function(e,t){return y(e,m({secs:!0,isTime:!0,timezone:n},t))}:f}),[n]),utcOffset:t}}},72437:function(e,n,t){t.d(n,{xy:function(){return i}});t(26699);var o=[];var i=function(e){if(o.includes(e))return function(){return!0};var n="true"===localStorage.getItem(e);return function(e){return e||n}}("mobileAppNotifications")()},20709:function(e,n){var t=36e5;n.Z=function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date)-e;if(n<0)return"0 seconds ago";var o=Math.floor(n/864e5);if(o>1)return"".concat(o," days ago");var i=Math.floor(n/t);if(i>0)return"".concat(i," hours ago");var a=Math.floor(n/6e4);if(a>1)return"".concat(a," mins ago");var s=Math.floor(n/1e3);return"".concat(s," seconds ago")}},71752:function(e,n,t){t.d(n,{T:function(){return o}});var o=function(e){return e.messages&&e.messages.length>0?e.messages[0]:void 0}},30688:function(e,n,t){t.d(n,{A:function(){return a},f:function(){return i}});var o=t(93433),i=(t(92222),t(85827),t(41539),t(25387),t(2490),t(72608),function(e,n){return{isValid:e,message:n}});function a(e){return Array.isArray(e)?function(n){return e.reduce((t=n,function(e,n){var i=n(t),a=i.isValid,s=i.message;if(a)return e;var r=e.messages,l=void 0===r?[]:r;return{isValid:a,messages:[].concat((0,o.Z)(l),[s])}}),{isValid:!0});var t}:(n=e,function(e){var t=n(e),o=t.isValid,i=t.message;return i?{isValid:o,messages:[i]}:{isValid:o}});var n}},31203:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=["onClick","src","title"],l=(0,a.forwardRef)((function(e,n){var t=e.onClick,l=e.src,c=e.title,d=void 0===c?"User avatar":c,u=(0,i.Z)(e,r);return a.createElement(s.Flex,(0,o.Z)({cursor:"pointer",round:"50%",as:"img","data-testid":"userAvatar",src:l||"https://www.gravatar.com/avatar/00000000000000000000000000000000?d=mp&f=y",title:d,alt:d,onClick:function(e){return t&&t(e)},width:8,height:8},u,{ref:n}))}));n.Z=l},70842:function(e,n,t){t.d(n,{Z:function(){return Y}});var o=t(87462),i=t(29439),a=t(67294),s=t(57509),r=t(61152),l=t(82351),c=t(24533),d=t(60677),u=t(57387),m=t(78266),h=t(45987),p=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(78710)),g=t(46667),f=t(36065),b=t(74059),y=t(77872),_=t(97346),w=t(14428),v=["selectedSpace","setSelectedSpace","column","showFullname"],T=d.default.div.withConfig({displayName:"spaces__Separator",componentId:"sc-19p9rsp-0"})(["height:1px;width:",";background:",";"],(0,s.getSizeBy)(3),(0,s.getColor)("border")),k=function(e){var n=e.selectedSpace,t=e.setSelectedSpace,r=e.column,c=e.showFullname,d=(0,h.Z)(e,v),u=(0,b.Iw)(),m=(0,a.useMemo)((function(){return u.filter((function(e){return!(0,p.Ly)(e)}))}),[u]),k=(0,g.Z)(),x=(0,i.Z)(k,4),P=x[0],C=x[2],F=x[3];return a.createElement(s.Flex,(0,o.Z)({"data-testid":"workspaceBar",padding:[3,2],column:r,alignItems:"center",justifyContent:"center"},d),a.createElement(s.Flex,{column:!0,"data-testid":"workspaceBar-spaces-list",gap:4,alignItems:"center",overflow:"hidden"},a.createElement(s.Flex,{column:r,"data-testid":"workspaceBar-spacesList",gap:r?4:2,overflow:{vertical:"auto"},flexWrap:!r},m.map((function(e){return a.createElement(y.Z,{testIdPrefix:"workspaceBar-space",key:e,spaceId:e,onClick:t,active:e===(null===n||void 0===n?void 0:n.id),background:"selected",color:"bright",showFullname:c})}))),a.createElement(_.Z,{permission:"user:CreateSpace"},a.createElement(T,{"data-testid":"workspaceBar-separator"}),a.createElement(l.Z,{content:"Create a new Space",align:"right"},a.createElement(w.Z,{permission:"user:CreateSpace",ifForbidden:"hide",icon:"plus",onClick:C,"data-testid":"workspaceBar-addSpace-button"})))),P&&a.createElement(f.Z,{onClose:F,onDone:t}))},x=t(56662),P=t(61458),C=t(33335),F=t(23383),q=t(95383),S=t(73398),D=function(e){var n=e.selectedSpace,t=e.selectedRoom,o=e.setSelectedRoom,r=n.id;(0,F.Z)(r);var c=(0,C.gI)("room:Create",r),d=(0,C.gI)("room:Read",r),u=(0,g.Z)(!1),m=(0,i.Z)(u,4),h=m[0],p=m[2],f=m[3],b=(0,a.useCallback)((function(e){e.stopPropagation(),c&&p()}),[c]),y=(0,q.WY)(r),_=(0,a.useMemo)((function(){return y.filter((function(e){return e.isMember}))}),[y]);return(0,a.useEffect)((function(){null!==_&&void 0!==_&&_.length&&(t||o(_[0]))}),[_,t]),a.createElement(a.Fragment,null,a.createElement(P.Z,{"data-testid":"workspaceRooms-menuList",disabled:!d,headerTestId:"workspaceRooms-warRooms",isOpen:!0,label:a.createElement(s.Flex,{padding:[1,0],margin:[0,0,1,0],flex:!0,justifyContent:"between",alignItems:"center",height:"24px"},a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement(s.Icon,{name:"space_new",color:"menuItem",width:"14px",height:"14px"}),a.createElement(s.TextSmall,{color:"menuItem"},"Select a room")),a.createElement(s.Flex,{alignItems:"center",gap:2},a.createElement(l.Z,{content:"Create a new room",align:"right"},a.createElement(w.Z,{permission:"room:Create",tiny:!0,icon:"plus",onClick:b,"data-testid":"workspaceRooms-addWarRoom-button",spaceId:r}))))},a.createElement(s.Flex,{column:!0,"data-testid":"workspaceRooms-warRoomsList",padding:[0,0,1]},_.map((function(e){var n=e.id;return a.createElement(S.Z,{key:n,id:n,hideAlerts:!0,Wrapper:s.TextSmall,isSidebar:!0,selectedId:null===t||void 0===t?void 0:t.id,onClick:function(){return o(e)}})})))),h&&a.createElement(x.U,{onClose:f,isSubmodal:!1}))},A=t(4942),M=(t(92222),t(47941),t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(33582)),N=t(13477),H=t(93017),E=t(28234),O=t(94221),I=t(49254),R=t(39469);function L(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function B(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?L(Object(t),!0).forEach((function(n){(0,A.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):L(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var U=(0,d.default)(s.ModalContent).attrs({width:{base:"80vw"},height:{base:"80vh",min:"80vh"}}).withConfig({displayName:"modal__ModalContent",componentId:"sc-4dwymj-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),j=function(e){var n=e.claim,t=e.loading,o=(e.error,e.privateKey),i=e.setPrivateKey,r=e.selectedSpace,l=e.setSelectedSpace,c=e.selectedRoom,d=e.keyFilename;return r?c?a.createElement(a.Fragment,null,a.createElement(m.H,null),a.createElement(s.H3,{textAlign:"center"},'You are ready to connect your agent in "',c.name,'" of "',r.name,'"'),a.createElement(s.Text,{textAlign:"center"},"Last step is to ensure you're the admin of this agent ;)"),a.createElement(s.TextSmall,{textAlign:"center"},"We've created a file with a random key. Can you read it?"),a.createElement(u.ZP,{"data-testid":"key-filename-command",commandText:"sudo cat ".concat(d),width:"60%"},"$ sudo cat ",d),a.createElement(s.Flex,{column:!0,round:!0,background:"accent",border:"primary",padding:[2],width:"60%"},a.createElement(s.TextSmall,{color:"tooltip"},a.createElement(s.TextSmall,{strong:!0,color:"tooltip"},"Tip:")," ","Run the command and paste here the key it will give you. If the command doesn't work out of the box, locate the ",d," file, open it in your favorite text editor, and copy it to your clipboard.")),a.createElement(s.TextInput,{value:o,placeholder:"Paste private key here",onChange:function(e){return i(e.target.value)},metaShrinked:!0,containerStyles:{width:"60%"}}),a.createElement(s.Button,{label:"Claim your agent",onClick:n,disabled:!o||t,isLoading:t})):a.createElement(a.Fragment,null,a.createElement(m.H,null),a.createElement(s.H3,{textAlign:"center"},'Select a room in "',r.name,'" for this agent'),a.createElement(s.TextBig,{color:"textDescription",textAlign:"center"},"or create a new one by hitting the [+] button.")):a.createElement(a.Fragment,null,a.createElement(m.H,null),a.createElement(s.H3,{textAlign:"center"},"Let's connect your agent"),a.createElement(s.TextBig,{color:"textDescription",textAlign:"center"},"Select the space you want this agent to join"),a.createElement(s.TextBig,{color:"textDescription",textAlign:"center"},"or create a new one by hitting the [+] button."),a.createElement(k,{column:!!r,selectedSpace:r,setSelectedSpace:l,showFullname:!0,width:"80%"}))},G=function(e){var n=e.onClose,t=e.keyFilename,o=function(e){var n,t=(0,a.useState)(),o=(0,i.Z)(t,2),s=o[0],r=o[1],l=(0,a.useState)(),d=(0,i.Z)(l,2),u=d[0],m=d[1],h=(0,a.useState)(""),p=(0,i.Z)(h,2),g=p[0],f=p[1],y=(0,M.Z)(null===s||void 0===s?void 0:s.id),_=(0,b.Q6)(),w=null===(n=window.localNetdataRegistry)||void 0===n?void 0:n.mg,v=(0,c.Lz)(w),T=(0,i.Z)(v,2),k=T[0],x=k.claiming,P=k.claimingError,C=T[1],F=(0,N.Iy)("isAnonymous"),q=(0,H.Z)(),S=(0,i.Z)(q,2),D=S[0],A=S[1],L=(0,c.Hu)(),U=(0,I.Hu)(),j=(0,R.Hu)();return{claim:(0,a.useCallback)((function(){var n;g&&!x&&y&&w&&_&&!F&&u&&(C({claiming:!0}),(0,O.c)({key:g,token:null===y||void 0===y||null===(n=y[0])||void 0===n?void 0:n.token,rooms:[u.id],url:window.envSettings.apiUrl}).then((function(n){var t=n.data;if(!t.success)return C({claiming:!1,claimingError:t.message,claimId:null}),void A({message:t.message});L(),U(),j(),C(B(B({claiming:!1},t),{},{claimingError:""})),e(),D({header:"Your agent got connected to Netdata",text:"You can see your agent in the room ".concat(u.name," of ").concat(s.name," space.")})})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;C({claiming:!1,claimingError:(0,E.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong",claimId:null}),A({message:(0,E.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong"})})))}),[y,g,w,_,F,x]),selectedSpace:s,setSelectedSpace:r,selectedRoom:u,setSelectedRoom:m,loading:x,error:P,privateKey:g,setPrivateKey:f}}(n),r=o.claim,l=o.selectedSpace,d=o.setSelectedSpace,u=o.selectedRoom,m=o.setSelectedRoom,h=o.loading,p=o.error,g=o.privateKey,f=o.setPrivateKey;return a.createElement(s.Modal,{zIndex:7e3,backdropProps:{backdropBlur:!0}},a.createElement(s.Flex,{column:!0,alignItems:"end",gap:3},a.createElement(U,{tabIndex:0},a.createElement(s.ModalHeader,{justifyContent:"between"},a.createElement(s.Flex,{gap:2,alignItems:"center"},"Connect your agent to Netdata"),a.createElement(s.ModalCloseButton,{onClose:n,testId:"claim-modal-close-button"})),a.createElement(s.ModalBody,{overflow:{vertical:"auto"},padding:[0],height:"100%",column:!1},a.createElement(s.Collapsible,{background:"sideBar",open:!!l,direction:"horizontal"},a.createElement(k,{column:!0,selectedSpace:l,setSelectedSpace:d,background:"sideBarMini",height:"100%"})),a.createElement(s.Collapsible,{background:"sideBar",open:!!l,direction:"horizontal"},a.createElement(s.Flex,{flex:!0,width:56,column:!0,overflow:{vertical:"auto"},padding:[2,0]},!!l&&a.createElement(D,{selectedSpace:l,selectedRoom:u,setSelectedRoom:m}))),a.createElement(s.Flex,{alignItems:"center",column:!0,"data-testid":"claim-modal-body",flex:!0,gap:3,justifyContent:"center",padding:[4]},a.createElement(j,{selectedSpace:l,selectedRoom:u,setSelectedSpace:d,keyFilename:t,claim:r,loading:h,error:p,privateKey:g,setPrivateKey:f}))))))},z={unavailable:"Netdata is not available for this agent.",available:"Netdata is available. Click to claim it and gain the full benefits of Netdata!",disabled:"Netdata is available, but it is disabled, you can change the agent configuration to enable it.",banned:"The agent has been banned from cloud.",offline:"The agent tries to connect to Netdata, but it fails to do so.",online:"The agent is already connected to Netdata :)"},Y=function(e){var n=(0,r.Z)("claimModal"),t=(0,i.Z)(n,4),d=t[0],u=t[2],m=t[3],h=(0,c.Lz)(),p=(0,i.Z)(h,1)[0],g=p.canBeClaimed,f=p.cloudStatus,b=p.keyFilename;return a.createElement(a.Fragment,null,a.createElement(l.Z,{plain:!0,content:z[f],isBasic:!0},a.createElement("div",null,a.createElement(s.Button,(0,o.Z)({label:"Connect to Netdata",onClick:u},e,{disabled:!g})))),d&&a.createElement(G,{onClose:m,keyFilename:b}))}},35253:function(e,n,t){t.d(n,{J:function(){return i},N:function(){return o}});var o={Community:"nightly",default:"stable",EarlyBird:"nightly"},i={nightly:{description:"Released at most once every 24 hours with fully-tested code that fixes bugs or security flaws, or introduces new features to Netdata. Every nightly release is a candidate for then becoming a stable release.",title:"Nightly"},stable:{description:"Released when a major milestone is reached. Stable releases might be a better choice for those who run Netdata in mission-critical production systems, as updates will come more infrequently.",title:"Stable"}}},16931:function(e,n,t){t.d(n,{Sn:function(){return l},U8:function(){return s},m7:function(){return r}});var o=t(67294),i=t(60677),a=t(57509),s=(0,i.default)(a.Box).attrs({border:{side:"all",color:"border"},padding:[1.75,7,1.75,3],round:!0}).withConfig({displayName:"styled__InfoBlock",componentId:"sc-1lice8m-0"})(["color:",';font-family:"Courier New",Courier,monospace;font-size:14px;letter-spacing:0.09px;line-height:18px;max-height:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;'],(0,a.getColor)("textLite")),r=((0,i.default)(a.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1lice8m-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),function(e){var n=e.children;return o.createElement(a.Flex,{column:!0,gap:4},n)}),l=((0,i.default)(a.Flex).attrs({margin:[4,0]}).withConfig({displayName:"styled__StyledFlex",componentId:"sc-1lice8m-2"})(["nav{border:none;gap:",";padding:0;}"],(0,a.getSizeBy)(1)),(0,i.default)(a.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-1lice8m-3"})(["&&{width:auto;min-width:auto;height:22px;background:",";border:1px solid ",";border-radius:4px;padding:0;&:hover{background:",";& > span{span{color:",";}svg{fill:",";}}}& > span{display:flex;align-items:center;gap:6px;margin:2px 8px 2px 4px;span{color:",";}svg{fill:",";}}}"],(function(e){var n=e.active,t=e.theme;return(0,a.getColor)(n?"primary":"modalBackground")({theme:t})}),(0,a.getColor)("primary"),(0,a.getColor)("primary"),(0,a.getColor)("modalBackground"),(0,a.getColor)("modalBackground"),(function(e){var n=e.active,t=e.theme;return(0,a.getColor)(n?"modalBackground":"primary")({theme:t})}),(function(e){var n=e.active,t=e.theme;return(0,a.getColor)(n?"modalBackground":"primary")({theme:t})})));(0,i.default)(a.RadioButton).withConfig({displayName:"styled__RadioButton",componentId:"sc-1lice8m-4"})(["&&{align-items:baseline !important;color:red;}"])},52428:function(e,n,t){t.d(n,{J:function(){return c}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(58206),a=t(52631),s=t(74855);function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var c=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){(0,i.Z)(e);var t=(0,s.sc)(l(l({header:"Copied",text:"Command copied to your clipboard! Please run it on your node's terminal.",icon:"gear"},n),{},{success:!0}));a.Z.success(t,{context:"copy"})}}},57387:function(e,n,t){t.d(n,{ZM:function(){return g}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(45987),i=t(4942),a=t(67294),s=t(60677),r=t(57509),l=t(52428),c=["children"],d=["children","confirmationText","commandText"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var m=(0,s.default)(r.Box).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({color:"textDescription",background:"modalTabsBackground",border:{side:"all",color:"borderSecondary"},padding:[4,10,4,4],position:"relative",width:"100%"},e)})).withConfig({displayName:"command__StyledTerminalCommand",componentId:"sc-wnwmk3-0"})(["color:",';border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,r.getColor)("textDescription")),h=(0,s.default)(r.Icon).withConfig({displayName:"command__StyledIcon",componentId:"sc-wnwmk3-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),p=(0,s.default)(r.Box).attrs({color:"textDescription",border:{side:"all",color:"borderSecondary"},background:"modalTabsBackground",padding:[0,1]}).withConfig({displayName:"command__CodeText",componentId:"sc-wnwmk3-2"})(["display:inline-block;color:",';border-radius:2px;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,r.getColor)("textDescription")),g=function(e){var n=e.children,t=(0,o.Z)(e,c);return a.createElement(p,t,n)};n.ZP=function(e){var n=e.children,t=e.confirmationText,i=void 0===t?"Command copied to your clipboard.":t,s=e.commandText,c=void 0===s?n:s,u=(0,o.Z)(e,d);return a.createElement(m,u,n,a.createElement(r.Box,{position:"absolute",bottom:"8px",right:"8px"},a.createElement(h,{name:"copy",size:"small",color:"primary",onClick:(0,l.J)(c||n,{text:i})})))}},80606:function(e,n,t){t.d(n,{F:function(){return r},I:function(){return s}});var o=t(4480),i=t(78401),a=(0,o.cn)({key:"cookiePreferences",default:(0,i.O)()}),s=function(){return(0,o.sJ)(a)},r=function(){return(0,o.FV)(a)}},70459:function(e,n,t){t.d(n,{F:function(){return r}});var o=t(29439),i=(t(41539),t(15581),t(2490),t(34514),t(54747),t(67294)),a=t(54576),s=t(95248),r=function(){var e=(0,a.useChart)(),n=(0,s.I0)(),t=(0,o.Z)(n,2),r=t[0],l=r.after,c=r.before,d=t[1],u=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{autofetchOnWindowBlur:!1};return function(){if(e.getNodes().forEach((function(e){return e.updateAttributes(n)})),!(l<0)){var t=Math.floor((c-l)/1e3);d({after:-t,before:0})}}};return{play:(0,i.useCallback)(u(),[c,l]),forcePlay:(0,i.useCallback)(u({autofetchOnWindowBlur:!0}),[c,l]),pause:(0,i.useCallback)((function(){if(!(l>0)){var e=Date.now();d({after:1e3*Math.floor(e/1e3+l),before:1e3*Math.floor(e/1e3)})}}),[l])}}},92517:function(e,n,t){var o=t(60677),i=t(67294),a=t(57509),s=(0,o.default)(a.Flex).withConfig({displayName:"item__StyledFlex",componentId:"sc-1gby0f1-0"})(["&:hover{background:",";}"],(function(e){var n=e.hasHoverBackground,t=e.theme,o=e.hoverBackground,i=void 0===o?"borderSecondary":o;return n?(0,a.getColor)(i)({theme:t}):null})),r=(0,i.forwardRef)((function(e,n){var t=e.background,o=e.children,r=e.cursor,l=e.hasBorder,c=e.hasHoverBackground,d=e.onClick,u=e.padding,m=e.testId,h=e.borderColor,p=void 0===h?"selected":h,g=e.round,f=e.hoverBackground;return i.createElement(a.Flex,{alignItems:"center",border:l&&{side:"right",color:p},cursor:r,"data-testid":m,onClick:d,ref:n},i.createElement(s,{round:g,alignItems:"center",background:t,hasHoverBackground:c,margin:l?[0,3,0,0]:void 0,padding:u,hoverBackground:f},o))}));n.Z=r},27261:function(e,n,t){var o=t(57509),i=t(67294),a="node-status-indicator";n.Z=function(e){var n=e.statusText,t=e.counter,s=e.statusColor,r=s.statusTextColor,l=s.indicatorWrapperColor,c=s.counterColor;return i.createElement(o.Flex,{alignItems:"center",gap:2},i.createElement(o.TextSmall,{"data-testid":"".concat(a,"-text-").concat(n),color:r},n),i.createElement(o.Flex,{justifyContent:"center",alignItems:"center",padding:[0,1],width:{min:7.5},height:5,background:l,round:!0},i.createElement(o.TextSmall,{"data-testid":"".concat(a,"-counter-").concat(n),color:c},t)))}},9458:function(e,n,t){var o=t(67294),i=t(57509);n.Z=function(){return o.createElement(i.Box,{as:"hr",height:3,margin:[0],sx:{borderWidth:"0px 0px 0px 1px",borderColor:"placeholder",borderStyle:"solid"}})}},6973:function(e,n,t){t.d(n,{B:function(){return o}});var o={live:{statusTextColor:"live",indicatorWrapperColor:"live",counterColor:"bright"},stale:{statusTextColor:"stale",indicatorWrapperColor:"stale",counterColor:"bright"},offline:{statusTextColor:"textLite",indicatorWrapperColor:"offline",counterColor:"bright"},unseen:{statusTextColor:"unseen",indicatorWrapperColor:"unseen",counterColor:"bright"}}},4514:function(e,n,t){t.d(n,{c:function(){return u}});t(21249),t(57640),t(9924),t(47941);var o=t(67294),i=t(60677),a=t(57509),s=t(27261),r=t(9458),l=t(6973),c=(0,i.default)(a.Flex).withConfig({displayName:"wrapper__NodesIndicatorWrapper",componentId:"sc-gy5ftg-0"})(["pointer-events:",";cursor:",";opacity:",";"],(function(e){return e.disabled?"none":"auto"}),(function(e){return e.disabled?"default":"pointer"}),(function(e){return e.disabled?"0.4":"1"})),d={live:{counter:0,statusText:"Live"},stale:{counter:0,statusText:"Stale"},offline:{counter:0,statusText:"Offline"},unseen:{counter:0,statusText:"Unseen"}},u=function(e){return o.createElement(c,e,Object.keys(d).map((function(e){return o.createElement(o.Fragment,{key:e},o.createElement(s.Z,{statusText:d[e].statusText,counter:d[e].counter,statusColor:l.B[e]}),o.createElement(r.Z,null))})))};n.Z=c},64599:function(e,n,t){var o=t(87462),i=t(67294),a=t(57509),s=t(13477),r=t(83356);n.Z=function(e){var n=(0,s.Iy)("isAnonymous"),t=(0,r.Z)();return n?i.createElement(a.Button,(0,o.Z)({label:"Sign In",onClick:t},e)):null}},66143:function(e,n,t){t.r(n),t.d(n,{default:function(){return $e}});t(66992),t(41539),t(88674),t(78783),t(33948);var o=t(67294),i=t(2145),a=t(57509),s=t(13477),r=(t(15581),t(2490),t(34514),t(54747),t(68035)),l=t(4480),c=t(30266),d=t(74059),u=t(33335),m=t(94979),h=t(78266),p=t(29439),g=t(46667),f=t(59636),b=t(67622),y=t(61458),_=t(37518),w=t(60677),v=(0,w.default)(a.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[2,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1,width:64}).withConfig({displayName:"styled__Dropdown",componentId:"sc-1vwntsm-0"})([""]),T=(0,w.default)(a.H6).attrs({color:"text",padding:[2,4]}).withConfig({displayName:"styled__OtherRoomsHeader",componentId:"sc-1vwntsm-1"})([""]),k=t(82351),x=t(93033),P=t(14428),C=function(){var e=(0,g.Z)(),n=(0,p.Z)(e,4),t=n[0],i=n[1],s=n[3],r=(0,o.useRef)(),l=(0,_.Hm)(),c=l.slug,m=(0,d.OS)("name"),h=(0,x.Z)({roomSlug:c}),w=(0,u.gI)("room:Read"),C=(0,d.Q6)();return o.createElement(o.Fragment,null,o.createElement(a.Flex,{alignItems:"center",gap:1,"data-testid":"header-roomOptions"},o.createElement(b.Z,{ref:r,testid:"roomDropdownMenu-roomOptions",icon:"space_new",onClick:i,padding:[2],round:1,width:"auto",disabled:!w||C},l.name&&o.createElement(a.Flex,{alignItems:"center",gap:4},o.createElement(a.Text,null,l.name),o.createElement(a.Icon,{name:"chevron_down",size:"small",color:"text"}))),o.createElement(k.Z,{align:"bottom",content:"Room settings"},o.createElement(P.Z,{permission:"room:Leave","data-ga":"header::click-war-room-settings::global-view","data-testid":"header-manageWarRoom",onClick:h,icon:"gear",flavour:"borderless",neutral:!0,small:!0}))),r.current&&t&&o.createElement(v,{target:r.current,onEsc:s,onClickOutside:s},o.createElement(y.Z,{isOpen:!0,label:"ROOMS IN ".concat(m.toUpperCase()),headerTestId:"roomDropdownMenu-otherRooms",Header:T},o.createElement(a.Flex,{onClick:s,column:!0,height:{max:100},overflow:{vertical:"auto"}},o.createElement(f.Z,null)))))},F=(t(92222),t(97945)),q=t(82902),S=(t(82526),t(41817),function(e){var n=e.description,t=e.title,i=e.testId,s=e.children;return o.createElement(a.Flex,{"data-testid":i,column:!0,gap:2},o.createElement(a.H4,{color:"textDescription"},t),o.createElement(a.Flex,{column:!0,"data-testid":i,gap:2},o.createElement(a.Text,{color:"textDescription"},n),s))}),D=function(e){var n=e.children,t=e.testId,i=e.icon,s=void 0===i?"nodes_update":i;return o.createElement(a.Flex,{"data-testid":t,padding:[6],round:1,width:"100%",background:"modalInfoBackground"},o.createElement(a.Box,{margin:[0,4,0,0]},o.createElement(a.Box,{as:a.Icon,width:10,height:10,name:s})),n)},A=function(e){var n=e.title,t=e.desciription;return o.createElement(a.Flex,{column:!0},o.createElement(a.Flex,null,o.createElement(a.Box,{margin:[0,4,0,0]},o.createElement(a.Icon,{color:"main",name:"warning_triangle_hollow"})),o.createElement(a.H3,null,n)),o.createElement(a.Box,{margin:[6,0,0,0]},t))},M=t(91008),N=t(91268),H=t(89250),E=(t(64211),t(41874),t(11389)),O=t(89050),I=t(86711),R=t(83925);var L=[{id:"name",accessor:"name",header:"Name",cell:function(e){var n=e.getValue,t=e.row;return o.createElement(M.Z,{disabled:!t.original.isLive&&"stale"!==t.original.state,color:"text",hoverColor:"primary",visitedColor:"accent",Component:a.TextSmall},n())},minSize:60},{id:"version",accessor:"version",header:"Version",cell:function(e){var n=e.getValue;return o.createElement(a.Pill,{color:"neutralPillColor",flavour:"neutral"},n())}},{id:"state",accessor:"state",header:"Status",cell:function(e){var n=e.getValue;return o.createElement(E.Z,{state:n()})},sortingFn:function(e,n){return t=(0,O.Q5)(e.original.state),o=(0,O.Q5)(n.original.state),t===o?0:t>o?1:-1;var t,o},enableColumnFilter:!0,filterFn:function(e,n,t){var o=e.original;return t.length<1||t.some((function(e){var n=e.value;return"all"===n||n===(0,O.Q5)(o.state)}))},meta:{tooltip:o.createElement(I.Z,null),filter:{component:"select",isMulti:!0,options:[{value:"Offline",label:"Offline"},{value:"Live",label:"Live"},{value:"Stale",label:"Stale"}]}}},{id:"updateSeverity",accessor:"updateSeverity",header:"Severity",cell:function(e){var n=e.getValue,t=e.row.original;return o.createElement(R.Z,{name:t.name,os:t.os.id,container:t.hw.container,warningLevel:t.updateSeverity,labels:t.labels||{},version:t.version,text:n()})}}],B=t(77823),U=(0,l.cn)({key:"notificationModal",default:!1}),j=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).resetOnUnmount,n=void 0!==e&&e,t=(0,l.rb)(U),i=(0,l.FV)(U),a=(0,p.Z)(i,2),s=a[0],r=a[1],c=(0,o.useCallback)((function(){return r(!0)}),[]),d=(0,o.useCallback)((function(){return r(!1)}),[]);return(0,B.Z)((function(){n&&t()})),{isModalVisible:s,openModal:c,closeModal:d,resetState:t}},G=[{id:"updateSeverity",desc:!1}],z=function(){var e=j().closeModal,n=(0,o.useMemo)((function(){return{goto:{handleAction:function(e){var n=((null===e||void 0===e?void 0:e.labels)||{})._install_type,t=void 0===n?null:n,o=e.hw.container,i=e.os.id,a=e.version,s=(0,q.Ly)({container:o,os:i,_install_type:t,version:a});window.open(s,"_blank","noopener,noreferrer")},tooltipText:"Go to documentation"}}}),[]),t=(0,H.s0)(),i=(0,F.Hg)();return{onClickRow:(0,o.useCallback)((function(n){var o=n.data;if(o.isLive||"stale"===o.state){var a=i(o.id);t(a),e()}}),[]),sortBy:G,rowActions:n,columns:L,disableClickRow:function(e){var n=e.data;return!n.isLive&&"stale"!==n.state}}},Y=t(18129),X={updateSeverity:!0,connectionToCloud:!1},Z=function(e){var n=e.data,t=z(),i=t.rowActions,a=t.onClickRow,s=t.disableClickRow,r=t.sortBy;return o.createElement(N.Z,{"data-testid":"nodesTable-layout",overflow:"hidden",height:"100%"},o.createElement(Y.Z,{customSortBy:r,customNodes:n,showdDefaultRowActions:!1,showDefaultBulkActions:!1,columnVisibility:X,customRowActions:i,enableSelection:!1,onClickRow:a,disableClickRow:s}))},W=function(e){var n=e.onClose,t=(0,F.Ng)(),i=(0,F.Ne)(t),s=t.length,r="Need update (".concat(t.length," ").concat((0,q.V6)(t.length),")");return o.createElement(a.Modal,{backdropProps:{backdropBlur:!0}},o.createElement(a.ModalContent,{width:{min:200,base:270},height:200},o.createElement(a.ModalHeader,null,o.createElement(A,{title:"Nodes that need Attention",desciription:o.createElement(a.Text,null,"You have ",o.createElement(a.Text,{strong:!0},s)," ",(0,q.V6)(s)," that should be upgraded to ensure experience using Netdata")}),o.createElement(a.ModalCloseButton,{onClose:n,testId:"close-button"})),o.createElement(a.ModalBody,{overflow:"hidden"},o.createElement(D,null,o.createElement(S,{title:r},o.createElement(a.Text,null,o.createElement(a.Flex,{column:!0},o.createElement(a.Text,null,"Please upgrade to ensure you get the latest security and bug fixes.")," ",o.createElement(a.Box,null,"To update your nodes to the latest version"," ",o.createElement(M.Z,{href:q.XY.default,rel:"noopener noreferrer",strong:!0,target:"_blank"},"please read our documentation"," "),"and find direct links for each node depending on where it is running and/or how it was installed."))))),o.createElement(a.Box,{height:"calc(100% - 145px)",padding:[3,0],margin:[0,0,8,0]},o.createElement(Z,{data:i})))))},K=t(48286),$=t(91128),V=t(2379),J=t(54576),Q=t(9058),ee=t(95665),ne=t(95248),te=function(e){var n=e.tagging,t=e.isPlaying,i=(0,ne.I0)(),a=(0,p.Z)(i,2),s=a[0],r=s.offset,l=s.after,c=s.before,d=a[1],u=(0,o.useCallback)((function(e){var n=e.start,t=void 0===n?-900:n,o=e.end;d({after:t,before:t<0?0:void 0===o?0:o})}),[]),m=(0,o.useMemo)((function(){return{start:l<0?l:Math.floor(l),end:l<0?0:Math.ceil(c)}}),[l,c]);return o.createElement(ee.Z,{values:m,utc:r,onChange:u,tagging:n,isPlaying:t})},oe=t(92517),ie=(0,w.default)(a.Flex).withConfig({displayName:"container__Container",componentId:"sc-qc13l0-0"})(["background:",";"],(function(e){var n=e.theme,t=e.isPlaying;return("Dark"===n.name?(0,a.getRgbColor)(t?["green","green40"]:["neutral","grey70"]):(0,a.getRgbColor)(t?["green","green190"]:["neutral","grey185"]))({theme:n})})),ae=t(70459),se=(0,w.default)(k.Z).withConfig({displayName:"playPausePill__StyledTooltip",componentId:"sc-1umryvu-0"})(["pointer-events:",";"],(function(e){return e.isDisabled?"none":"auto"})),re=function(e){var n=e.isPlaying,t=e.isForcePlaying,i=e.isDisabled,s=(0,ae.F)(),r=s.play,l=s.pause,c=(0,o.useMemo)((function(){return function(e,n){return e?n?"forcePlay":"playSolid":"pauseSolid"}(n,t)}),[n,t]);return o.createElement(se,{content:n?"Click to pause":"Click to play",align:"bottom",isDisabled:i},o.createElement(a.Box,{as:a.Pill,icon:c,onClick:n?l:r,isPlaying:n,"data-testid":"playPause-button",flavour:n?"success":"neutral",hollow:!0,_hover:{background:n?"accent":"neutralPillColor"},background:n?"primary":"neutralPillBg",color:"bright"},n?"Playing":"Paused"))},le=(0,w.default)(a.Flex).attrs({padding:[1],role:"button"}).withConfig({displayName:"styled__MenuButton",componentId:"sc-3h0zgs-0"})(["cursor:pointer;"]),ce=(0,w.default)(a.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,backdrop:!0,column:!0,padding:[2,0],background:"dropdown",round:1,overflow:{vertical:"auto"},margin:[.5,0,0],width:40}).withConfig({displayName:"styled__Dropdown",componentId:"sc-3h0zgs-1"})([""]),de=(0,w.default)(k.Z).withConfig({displayName:"styled__StyledTooltip",componentId:"sc-3h0zgs-2"})(["pointer-events:",";"],(function(e){return e.isDisabled?"none":"auto"})),ue=function(e){var n=e.target,t=e.isDisabled,i=(0,g.Z)(),s=(0,p.Z)(i,4),r=s[0],l=s[1],c=s[3],d=(0,ae.F)(),u=d.play,m=d.pause,h=d.forcePlay;return o.createElement(o.Fragment,null,r?o.createElement(le,{onClick:l,width:"auto","data-testid":"playOptions-picker"},o.createElement(a.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"})):o.createElement(de,{content:"Play to refresh and have live content, pause to see historical, or force play to keep refreshing even when the tab loses focus at the expense of some system performance.",align:{bottom:"bottom",right:"right"},isDisabled:t,plain:!0},o.createElement(le,{onClick:l,width:"auto","data-testid":"playOptions-picker"},o.createElement(a.Icon,{name:"chevron_down",color:"text",width:"12px",height:"12px"}))),n.current&&r&&!t&&o.createElement(ce,{target:n.current,onEsc:c,onClickOutside:c},o.createElement(b.Z,{icon:"playOutline",onClick:function(){u(),c()},testid:"playOptions-play"},"Play"),o.createElement(b.Z,{icon:"pauseOutline",onClick:function(){m(),c()},testid:"playOptions-pause"},"Pause"),o.createElement(b.Z,{icon:"forcePlayOutline",onClick:function(){h(),c()},testid:"playOptions-forcePlay"},"Force Play")))},me=(0,o.memo)(ue),he=(0,J.withChartProvider)((function(){var e=(0,V.I)(),n=(0,V.o)(),t=(0,o.useRef)(),i=(0,J.useAttributeValue)("autofetch"),a=!(0,J.useAttributeValue)("paused")&&i&&!n,s=(0,J.useAttributeValue)("autofetchOnWindowBlur"),r=(0,$.Z)();return(0,K.Z)((function(){r(!!e||!!n)}),[e,n]),o.createElement(oe.Z,{hasBorder:!0,borderColor:"border",testId:"global-controls"},o.createElement(ie,{isPlaying:a,padding:[1,2],round:!0,height:"100%",alignItems:"center",gap:1,isDisabled:e,ref:t},o.createElement(re,{isPlaying:a,isForcePlaying:s,isDisabled:e||n}),o.createElement(me,{target:t,isDisabled:e||n}),o.createElement(te,{isPlaying:a,tagging:"global-view"})))})),pe=function(){var e=(0,Q.e)().getRoot();return o.createElement(he,{chart:e})},ge=t(96929),fe=t(78710),be=function(e){var n=e.toggle,t=e.upToDate,i=e.hasBorder;return o.createElement(oe.Z,{borderColor:"borderSecondary",hasHoverBackground:!0,hasBorder:i},o.createElement(k.Z,{content:"News & Announcements",align:"bottom"},o.createElement(a.Button,{name:"news",icon:"insights",flavour:"borderless",neutral:t,warning:!t,onClick:n,"data-ga":"news::click-news::global-view"})))},ye=function(){var e=(0,ge.zN)().length>0;return o.createElement(a.News,{app:fe.ZP?(0,fe.iM)()?"agent":["cloud","agent"]:"cloud"},(function(n){var t=n.toggle,i=n.upToDate;return o.createElement(a.Flex,{alignItems:"center","data-testid":"cloud-app-news",flex:!0,gap:1},o.createElement(be,{toggle:t,upToDate:i,hasBorder:!e}))}))},_e=t(4514),we=function(e){var n=e.children,t=e.background,i=e.testId,s=e.onClose,r=i||"header-banner";return o.createElement(a.Flex,{background:t,"data-testid":r,height:{min:10},padding:[2,10,2,2],position:"sticky",zIndex:5},n,o.createElement(k.Z,{align:"bottom",content:"Dismiss message",isBasic:!0,plain:!0,stretch:"align"},s&&o.createElement(a.Box,{"data-testid":"".concat(r,"-close-button"),as:a.Icon,color:"text",cursor:"pointer",name:"x",position:"absolute",right:"8px",onClick:function(e){s&&(e.stopPropagation(),s())}})))},ve=t(62200),Te={warning:{background:"warningBannerBg",isDissmissable:!0,icon:"warning_triangle_hollow",iconColor:"warning"},critical:{background:"errorBannerBg",isDissmissable:!1,icon:"warning_triangle_hollow",iconColor:"error"}},ke=function(e){var n=e.iconColor,t=e.icon,i=e.warningLevel,s=e.numberOfNodesWithCriticalSeverity,r=e.onClickUpdate;return o.createElement(a.Flex,{justifyContent:"center",alignItems:"center",width:"100%",gap:2},o.createElement(a.Icon,{"data-testid":"icon-banner-agent-outdated-".concat(i),color:n,name:t})," ",o.createElement(a.Text,{"data-testid":"text-agent-outdated-critical",color:"main"},s," ",(0,q.V6)(s)," ",s>1?"are":"is"," below recommend agent version"," ",ve._b,"."," ",o.createElement(a.Box,{"data-testid":"open-add-node",onClick:r,as:a.Text,cursor:"pointer",textDecoration:"underline",color:"main"},"Please update them")," ","to ensure you get the latest security bug fixes."))},xe=function(e){var n=e.warningLevel,t=e.numberOfNodesWithCriticalSeverity,i=e.onClose,a=e.onClickUpdate,s=Te[n],r=s.background,l=s.isDissmissable,c=s.icon,d=s.iconColor;return o.createElement(we,{background:r,onClose:l?i:null},o.createElement(ke,{iconColor:d,icon:c,warningLevel:n,numberOfNodesWithCriticalSeverity:t,onClickUpdate:a}))},Pe=function(){var e=j().openModal,n=(0,F.Ng)({severity:"critical"}).length;return n?o.createElement(xe,{numberOfNodesWithCriticalSeverity:n,warningLevel:"critical",onClickUpdate:e}):o.createElement(o.Fragment,null)},Ce=function(e){var n=e.onOpenModalClick,t=(0,F.Ng)({severity:"critical"}).length,i=(0,F.Ng)().length;return i?o.createElement(oe.Z,{borderColor:"borderSecondary",cursor:"pointer",testId:"update-netdata-version-menu-item",hasBorder:!0,padding:[2,0]},o.createElement(a.Pill,{"data-testid":"update-netdata-version-badge",flavour:t?"error":"warning",icon:"warning_triangle_hollow",iconSize:"16px",hollow:!0,onClick:n,size:"small"},i)):null},Fe=t(24533),qe=t(70842),Se=t(64599),De={offline:{icon:"switch_off",color:"attention",text:"Offline"},online:{icon:"checkmark_s",color:"primary",text:"Online"}},Ae=function(){var e=(0,d.Q6)(),n=(0,s.Iy)("isAnonymous"),t=(0,Fe.Lz)(),i=(0,p.Z)(t,1)[0],r=i.canBeClaimed,l=i.cloudStatus;if(n)return o.createElement(Se.Z,null);if(!e)return null;if(De[l]){var c=De[l],u=c.icon,m=c.color,h=c.text;return o.createElement(a.Flex,{alignItems:"center",gap:1},o.createElement(a.Icon,{name:u,color:m,width:"14px",height:"14px"}),o.createElement(a.TextSmall,{color:m},h))}return r?o.createElement(qe.Z,null):null},Me=(0,i.Z)((function(){return Promise.all([t.e(915),t.e(765)]).then(t.bind(t,7922))}),"NodesIndicator"),Ne=function(){var e=j(),n=e.isModalVisible,t=e.closeModal,i=e.openModal;return o.createElement(o.Fragment,null,o.createElement(Pe,null),o.createElement(a.Flex,{as:"header","data-testid":"header",padding:[2],justifyContent:"between",alignItems:"center",height:12,position:"sticky",background:"topBarBg",zIndex:5},n&&o.createElement(W,{onClose:t}),o.createElement(C,null),o.createElement(a.Flex,{alignItems:"center","data-testid":"header-features",gap:3},!window.envSettings.onprem&&o.createElement(ye,null),o.createElement(pe,null),o.createElement(o.Suspense,{fallback:o.createElement(_e.c,{disabled:!0})},o.createElement(Me,null)),o.createElement(Ae,{margin:[0,1,0,0],padding:[2,4]}),o.createElement(Ce,{onOpenModalClick:i}))))},He=t(15257),Ee=(0,w.default)(a.Flex).withConfig({displayName:"layout__UserControlContainer",componentId:"sc-18en99b-0"})(["bottom:0;left:0;"]),Oe=function(e){var n=e.children;return o.createElement(a.Flex,{width:"100vw",height:"100vh",column:!0,justifyContent:"center",alignItems:"center",background:"mainBackground",position:"relative"},n,o.createElement(Ee,{position:"absolute",padding:[4]},o.createElement(He.Z,null)))},Ie=(0,w.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),Re=(0,w.default)(a.Icon).withConfig({displayName:"loading__StyledIcon",componentId:"sc-11p1wp-0"})(["width:208px;height:177px;animation:"," 1.6s ease-in infinite;"],Ie),Le=function(){return o.createElement(o.Fragment,null,o.createElement(Re,{name:"netdata",color:"primary",title:"Loading","data-testid":"spaceCreationLoading-logo"}),o.createElement(a.H3,{color:"text",margin:[1,0,0]},"We are attempting to create your space but the system is currently busy."),o.createElement(a.Text,{color:"text",margin:[4.5,0,0]},"Thank you for your patience!"))},Be=t(83732),Ue=function(){var e=(0,s.jr)(),n=(0,s.Iy)("email"),t=(0,o.useState)(!1),i=(0,p.Z)(t,2),r=i[0],l=i[1],c=(0,o.useCallback)((function(){return l(!1)}),[]),d=(0,Be.Z)({onSuccess:c,onError:c,isDefault:!0}),u=(0,o.useCallback)((function(){l(!0),d({userId:e,email:n})}),[e,n]);return o.createElement(a.Flex,{column:!0,gap:6,alignItems:"center"},o.createElement(a.Flex,{column:!0,gap:2,alignItems:"center"},o.createElement(a.H3,{color:"text"},"There was a problem with automatically creating your space"),o.createElement(a.Text,{color:"text"},"Please try again below")),o.createElement(a.Button,{label:"Continue",isLoading:r,onClick:u}))},je=function(){var e=(0,o.useState)(!0),n=(0,p.Z)(e,2),t=n[0],i=n[1];return(0,o.useEffect)((function(){var e=setTimeout((function(){return i(!1)}),1e4);return function(){return clearTimeout(e)}}),[]),o.createElement(Oe,null,t?o.createElement(Le,null):o.createElement(Ue,null))},Ge=t(27622),ze=function(){return o.createElement(a.Flex,{background:"sideBarMini","data-testid":"workspaceBar",padding:[3,2],column:!0,alignItems:"center",gap:6,height:"100vh",justifyContent:"between"},o.createElement(Ge.Z,{"data-testid":"workspaceBar-netdataLogo"}))},Ye=t(6308),Xe=(0,i.Z)((function(){return t.e(264).then(t.bind(t,26264))}),"Sidebar"),Ze=(0,i.Z)((function(){return Promise.all([t.e(663),t.e(969)]).then(t.bind(t,65969))}),"Modals"),We=(0,i.Z)((function(){return t.e(102).then(t.bind(t,48102))}),"AcceptTermsDialog"),Ke=(0,i.Z)((function(){return Promise.all([t.e(193),t.e(952),t.e(915),t.e(676)]).then(t.bind(t,2065))}),"SpacePages"),$e=function(e){var n=e.isUserLoaded;!function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).isUserLoaded,n=(0,l._8)((function(e){var n=e.set;return function(e){var t=e.results;n((0,d.YH)(),t),t.forEach((function(e){var t=e.id,o=e.permissions;n((0,u.SX)(t),o)}))}}),[]);(0,r.Z)((function(){return{key:"spaces",cache:!1,autorun:!!e,fetch:c.oq,association:{getIds:function(){return(0,d.st)("ids")},getError:function(){return(0,d.st)("error")},getLoaded:function(){return(0,d.st)("loaded")},getUpdatedAt:function(){return(0,d.st)("updatedAt")}},getResource:function(e){return(0,d.U7)({id:e})},onReceive:n,pollingOptions:{pollingInterval:412e3}}}),[!!e])}({isUserLoaded:n}),(0,m.Z)();var t=(0,Ye.c)().isIntegrationsPath,i=(0,d.Iw)(),p=(0,d.GM)("loaded"),g=(0,d.GM)("error"),f=(0,s.Iy)("isAnonymous");if(!n||!g&&!f&&!p)return o.createElement(h.Z,{title:"Loading your space..."});var b=i.length;if(g&&!b)throw g;return fe.ZP||f||b?o.createElement(a.Flex,{overflow:"hidden",height:"100vh",width:"100vw"},o.createElement(o.Suspense,{fallback:o.createElement(ze,null)},o.createElement(Xe,null)),o.createElement(a.Flex,{column:!0,position:"relative",overflow:"hidden",flex:!0},!t&&o.createElement(Ne,null),o.createElement(a.Flex,{column:!0,as:"main",background:"mainBackground",flex:!0,basis:"100%",height:"100%",overflow:"hidden"},o.createElement(o.Suspense,{fallback:o.createElement(h.Z,{title:"Loading your space..."})},o.createElement(Ke,null)))),o.createElement(o.Suspense,{fallback:""},o.createElement(Ze,null),o.createElement(We,null))):o.createElement(je,null)}},27622:function(e,n,t){var o=t(87462),i=t(67294),a=t(57509);n.Z=function(e){return i.createElement(a.Icon,(0,o.Z)({name:"netdataPress",color:"success",height:"32px",width:"32px"},e))}},34885:function(e,n,t){t.d(n,{Z:function(){return m}});var o=t(87462),i=t(45987),a=t(67294),s=t(4211),r=t(57509),l=function(){return a.createElement(r.Text,null,"Something went wrong during document parsing")},c=["transformConfiguration","validationConfig","validate","errorComponent","children"],d=function(e){return function(n){var t=n.transformConfiguration,r=void 0===t?{}:t,d=n.validationConfig,u=void 0===d?{}:d,m=n.validate,h=n.errorComponent,p=n.children,g=(0,i.Z)(n,c),f=function(e){var n=e.markdocContent,t=e.validate,o=e.validationConfig,i=e.transformConfiguration;return(0,a.useMemo)((function(){var e=s.ZP.parse("string"===typeof n?n:""),a=[];return t&&(a=s.ZP.validate(e,o)),{tree:a.length?null:s.ZP.transform(e,i),errors:a}}),[n,t,o,i])}({markdocContent:p,validate:m,validationConfig:u,transformConfiguration:r}),b=f.tree,y=f.errors,_=h&&"function"==typeof h?h:l;return y.length?a.createElement(_,{errors:y}):a.createElement(e,(0,o.Z)({tree:b},g))}},u=(0,a.memo)(d((function(e){var n=e.tree,t=e.renderConfiguration;return s.ZP.renderers.react(n,a,t)}))),m=(d((function(e){var n=e.tree;return s.ZP.renderers.html(n)})),u)},67622:function(e,n,t){t.d(n,{z:function(){return d}});var o=t(87462),i=t(45987),a=t(67294),s=t(60677),r=t(57509),l=t(89250),c=["disabled","children","Wrapper","textProps","to","onClick","testid","icon","iconHeight","iconWidth","iconColor","textColor","padding","margin","round","gap","actions","selected","loading","width","isSidebar","isSecondary"],d=(0,s.default)(r.Flex).withConfig({displayName:"item__PanelRowContainer",componentId:"sc-lf007z-0"})(["cursor:pointer;&:hover{background:",";}",""],(function(e){return(0,r.getColor)((e.isSidebar,"selected"))(e)}),(function(e){return e.selected&&"background: ".concat((0,r.getColor)((e.isSidebar,"selected"))(e),";")})),u=(0,s.default)(r.Icon).withConfig({displayName:"item__StyledIcon",componentId:"sc-lf007z-1"})(["flex:0 0 auto;"]),m=(0,s.default)(r.IconComponents.LoaderIcon).withConfig({displayName:"item__StyledLoaderIcon",componentId:"sc-lf007z-2"})(["flex:0 0 auto;height:16px;width:16px;"]),h=(0,a.forwardRef)((function(e,n){var t=e.disabled,s=e.children,h=e.Wrapper,p=void 0===h?r.Text:h,g=e.textProps,f=e.to,b=void 0===f?"":f,y=e.onClick,_=e.testid,w=e.icon,v=e.iconHeight,T=void 0===v?"16px":v,k=e.iconWidth,x=void 0===k?"16px":k,P=e.iconColor,C=void 0===P?"text":P,F=e.textColor,q=void 0===F?"text":F,S=e.padding,D=void 0===S?[2,4]:S,A=e.margin,M=void 0===A?[0]:A,N=e.round,H=void 0===N?0:N,E=e.gap,O=void 0===E?3:E,I=e.actions,R=e.selected,L=e.loading,B=e.width,U=void 0===B?"100%":B,j=e.isSidebar,G=void 0!==j&&j,z=e.isSecondary,Y=(0,i.Z)(e,c),X=(0,l.s0)(),Z=(0,a.useCallback)((function(){t||(y&&y(),b&&X(b))}),[y,t,b]),W=Y["data-ga"]||"";return a.createElement(d,(0,o.Z)({ref:n,flexWrap:!1,justifyContent:"between",alignItems:"center",padding:D,margin:M,round:H,onClick:Z,"data-testid":_,width:U,selected:R,disabled:t,isSidebar:G},W&&{"data-ga":W}),a.createElement(r.Flex,{alignItems:"center",gap:O,flex:!0,basis:""},L?a.createElement(m,null):"string"===typeof w?a.createElement(u,{name:w,disabled:t,color:C,height:T,width:x}):w,a.createElement(p,(0,o.Z)({opacity:t?"medium":void 0,width:"150px",color:q,italic:z},g),s)),I)}));n.Z=h},61458:function(e,n,t){t.d(n,{g:function(){return c}});var o=t(87462),i=t(45987),a=t(67294),s=t(60677),r=t(57509),l=["disabled","isOpen","toggleOpen","label","children","headerTestId","Header"],c=(0,s.default)(r.H4).attrs({padding:[0,2],background:"error"}).withConfig({displayName:"list__DefaultListHeader",componentId:"sc-5df7lw-0"})(["cursor:pointer;pointer-events:",";"],(function(e){return e.disabled?"none":"auto"})),d=function(e){var n=e.disabled,t=e.toggleOpen,o=e.label,i=e.testid,s=e.Header,r=void 0===s?c:s;return a.createElement(r,{"data-testid":i,onClick:t,opacity:n?"medium":void 0,disabled:n},o)};n.Z=function(e){var n=e.disabled,t=e.isOpen,s=void 0!==t&&t,c=e.toggleOpen,u=e.label,m=e.children,h=e.headerTestId,p=e.Header,g=(0,i.Z)(e,l);return a.createElement(r.Flex,(0,o.Z)({column:!0},g),a.createElement(d,{disabled:n,Header:p,toggleOpen:c,label:u,testid:h}),a.createElement(r.Collapsible,{open:s},m))}},83925:function(e,n,t){var o=t(87462),i=t(4942),a=t(45987),s=(t(92222),t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),r=t(57509),l=t(62200),c=t(82902),d=t(64637),u=["warningLevel","text","container","os","name","labels","version"];function m(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var h={warning:{icon:"warning_triangle_hollow",iconColor:"warning",background:"warningSemi",color:"warning",border:"warning",reccomendedVersion:l.I3,warningText:"is below the latest stable agent version"},critical:{icon:"warning_triangle_hollow",iconColor:"error",background:"errorSemi",color:"error",border:"error",reccomendedVersion:l._b,warningText:"is below the recommend agent version"}},p=function(e){var n=e.icon,t=e.iconColor,o=e.warningLevel,i=e.handeleNavigateToDocs,a=e.message;return s.createElement(r.Flex,{column:!0,width:{max:"200px"},gap:2},s.createElement(r.Flex,{alignItems:"center",gap:2},s.createElement(r.Icon,{name:n,color:t}),s.createElement(r.TextMicro,{color:"white"},(0,d.fm)(o))),s.createElement(r.Flex,{column:!0,gap:2},s.createElement(r.TextMicro,{color:"white"},a),s.createElement(r.TextMicro,{"data-testid":"text-agent-outdated-critical",color:"white"},s.createElement(r.Box,{"data-testid":"open-add-node",onClick:i,as:r.TextMicro,cursor:"pointer",textDecoration:"underline",color:"white"}," ","Please update them"," "),"to ensure you get the latest security bug fixes.")))};n.Z=function(e){var n=e.warningLevel,t=e.text,l=void 0===t?"Needs Update":t,g=e.container,f=e.os,b=e.name,y=e.labels,_=e.version,w=(0,a.Z)(e,u),v=h[n],T=v.icon,k=(v.flavour,v.hollow,v.background),x=v.color,P=v.border,C=v.reccomendedVersion,F=v.iconColor,q=v.warningText,S=(0,s.useCallback)((function(){var e=(0,c.Ly)(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?m(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):m(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({container:g,os:f,version:_},y));window.open(e,"_blank","noopener,noreferrer")}),[g,f]),D="".concat(b," ").concat(q," ").concat(C);return s.createElement(r.Tooltip,{allowHoverOnTooltip:!0,content:s.createElement(p,{message:D,icon:T,iconColor:F,warningLevel:n,handeleNavigateToDocs:S})},s.createElement(r.Pill,(0,o.Z)({icon:T,background:k,borderColor:P,color:x},w),(0,d.fm)(l)))}},11389:function(e,n,t){var o=t(67294),i=t(89050),a=t(62200),s=t(57509);n.Z=function(e){var n=e.state,t=e.rawState,r=t||(0,i.Q5)(n),l=a.WV[r.toLocaleLowerCase()],c=l.counterColor,d=l.indicatorWrapperColor;return o.createElement(s.Flex,{margin:[0,"auto",0,"auto"],width:20,height:"20px",padding:[.5,0],border:{side:"all",color:d},background:"nodeBadgeBackground",justifyContent:"center",round:4},o.createElement(s.TextMicro,{strong:!0,color:c},r))}},86711:function(e,n,t){var o=t(67294),i=t(57509);n.Z=function(){return o.createElement(i.Flex,{column:!0,width:{max:"200px"},gap:2},o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Live:")," ","Node is actual collecting and streaming metrics to Netdata"),o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Stale:")," ","Node is currently offline and not streaming metrics to Netdata. It can show historical data from a parent node"),o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Offline:")," ","Node is currently offline, not streaming metrics to Netdata and not available in any parent node"),o.createElement(i.TextMicro,{color:"white"},o.createElement(i.TextMicro,{color:"white",strong:!0},"Unseen:")," ","Nodes have never been connected to Netdata, they are claimed but no successful connection was established"))}},91268:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=["children","rightBar"],l=(0,a.forwardRef)((function(e,n){var t=e.children,l=e.rightBar,c=void 0===l?null:l,d=(0,i.Z)(e,r);return a.createElement(s.Flex,{id:"main",height:"100%",width:"100%"},a.createElement(s.Flex,(0,o.Z)({column:!0,overflow:"hidden",width:"100%"},d,{ref:n}),t),c)}));n.Z=l},97346:function(e,n,t){var o=t(33335);n.Z=function(e){var n=e.permission,t=e.spaceId,i=e.children;return(0,o.gI)(n,t)?i:null}},14428:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=t(33335),l=["ifForbidden","permission","spaceId"],c=(0,a.forwardRef)((function(e,n){var t=e.ifForbidden,c=void 0===t?"disabled":t,d=e.permission,u=e.spaceId,m=(0,i.Z)(e,l),h=(0,r.gI)(d,u);return"hide"!==c||h?a.createElement(s.Button,(0,o.Z)({ref:n,disabled:"disabled"===c&&!h||m.disabled},m)):null}));n.Z=c},15418:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(33335),r=["Component","ifForbidden","permission","children","spaceId"];n.Z=function(e){var n=e.Component,t=e.ifForbidden,l=void 0===t?"disabled":t,c=e.permission,d=e.children,u=e.spaceId,m=(0,i.Z)(e,r),h=(0,s.gI)(c,u);return"hide"!==l||h?"function"===typeof d?d(h):n?a.createElement(n,(0,o.Z)({},m,{disabled:"disabled"===l&&!h||m.disabled})):d:null}},37689:function(e,n,t){t.d(n,{Z:function(){return d}});var o=t(87462),i=t(45987),a=t(67294),s=t(60677),r=t(57509),l=(0,s.default)(r.TextInput).withConfig({displayName:"searchInput__SearchInput",componentId:"sc-1x493x7-0"})(["& input{background:transparent;}& > label{margin-bottom:0;}"]),c=["value","onChange"],d=(0,a.forwardRef)((function(e,n){var t=e.value,s=e.onChange,r=(0,i.Z)(e,c);return a.createElement(l,(0,o.Z)({inputRef:n,value:t,onChange:s,placeholder:"Search",name:"search",metaShrinked:!0},r))}))},7693:function(e,n,t){t.d(n,{A:function(){return l},x:function(){return c}});var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=["children","isSubmodal","onClose","title"],l=14,c=function(e){var n=e.children,t=e.isSubmodal,c=e.onClose,d=e.title,u=(0,i.Z)(e,r);return a.createElement(s.Flex,{justifyContent:"between",background:"modalHeaderBackground",alignItems:"center",padding:[0,4]},a.createElement(s.Flex,{alignItems:"center",height:l},a.createElement(s.Button,{neutral:!0,flavour:"borderless",icon:t?"chevron_left":"x",onClick:c,"data-testid":"sidebarModalHeader_".concat(t?"chevron_left":"close_button")}),a.createElement(s.H4,(0,o.Z)({color:"text"},u),d)),n)}},16645:function(e,n,t){t.d(n,{TZ:function(){return d},ZW:function(){return u},oU:function(){return c},u6:function(){return l}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(60677),a=t(57509),s=t(7693);function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var l=(0,i.default)(a.PortalSidebar).withConfig({displayName:"sidebar__SidebarModal",componentId:"sc-tmwerm-0"})(["z-index:35;background:",";width:50%;max-width:",";overflow:",";"],(0,a.getColor)("modalBackground"),(0,a.getSizeBy)(90),(function(e){var n=e.overflow;return void 0===n?"hidden":n})),c=(0,i.default)(a.PortalSidebar).withConfig({displayName:"sidebar__FullModal",componentId:"sc-tmwerm-1"})(["z-index:35;background:",";width:100%;overflow:",";"],(0,a.getColor)("modalBackground"),(function(e){var n=e.overflow;return void 0===n?"hidden":n})),d=(0,i.default)(a.Flex).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({column:!0,background:"modalBackground",width:"100%",padding:[4,4,8]},e)})).withConfig({displayName:"sidebar__SidebarContent",componentId:"sc-tmwerm-2"})(["overflow:",";height:calc( 100vh - "," );"],(function(e){var n=e.overflow;return void 0===n?"auto":n}),(function(e){var n=e.hasFooter,t=e.hasModalTitle,o=void 0===t||t?s.A:0;return(0,a.getSizeBy)(n?(s.A+o+20)/2:(s.A+o)/2)})),u=(0,i.default)(a.Flex).attrs({height:20,justifyContent:"end",alignItems:"center",padding:[3],background:"modalHeaderBackground",border:{side:"top",color:"borderSecondary"}}).withConfig({displayName:"sidebar__SidebarFooter",componentId:"sc-tmwerm-3"})([""])},73256:function(e,n,t){t.d(n,{G:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(60677),a=t(57509);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var r=(0,i.default)(a.Flex).attrs((function(e){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({padding:[4,6,0],width:"100%",background:"modalTabsBackground"},e)})).withConfig({displayName:"tabs__TabHeader",componentId:"sc-1ramyo4-0"})([""])},92903:function(e,n,t){t.d(n,{B:function(){return l}});var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=["children"],l=function(e){var n=e.children,t=(0,i.Z)(e,r);return a.createElement(s.Flex,(0,o.Z)({justifyContent:"between",background:"modalBackground",alignItems:"center",padding:[4,4,0]},t),a.createElement(s.H3,null,n))}},81488:function(e,n,t){var o=t(29439),i=t(67294),a=t(43337),s=t(57509),r=t(15794),l=t(20709);n.Z=function(e){var n=e.text,t=e.updatedAt,c=e.error,d=(0,i.useState)(),u=(0,o.Z)(d,2)[1],m=function(e){if(!e)return"";var n=new Date(e);return n.getTime()?(0,l.Z)(n,new Date):""}(t);return(0,a.Z)((function(){return u(Math.random())}),1e3),i.createElement(r.Z,{theme:"dark"},i.createElement(s.Flex,{column:!0,gap:3},i.createElement(s.TextSmall,{color:"key"},n),c&&i.createElement(s.Flex,{alignItems:"center",gap:2},i.createElement(s.Icon,{width:14,height:12,color:"text",name:"warning_triangle"}),i.createElement(s.TextSmall,null,"Error: ",m?"Data not updated":"No data")),m&&i.createElement(s.TextMicro,null,i.createElement(s.TextMicro,{color:"key"},"Last updated: "),m)))}},90025:function(e,n,t){var o=t(87462),i=t(4942),a=(t(21249),t(57640),t(9924),t(57327),t(41539),t(88449),t(2490),t(59849),t(26699),t(32023),t(47941),t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),s=t(57509),r=t(95383);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var c={closeMenuOnSelect:!1,backspaceRemovesValue:!1,isClearable:!1,blurInputOnSelect:!0,captureMenuScroll:!0,isMulti:!0};n.Z=function(e){var n=e.selectedValue,t=e.onChange,d=e.formatOptions,u=e.filterValues,m=e.placeholder,h=void 0===m?"search...":m,p=(0,r.J7)(),g=(0,a.useMemo)((function(){return p.map((function(e){var n=e.id,t=e.name;return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({label:t,value:n},d&&d({id:n,name:t}))}))}),[p,d]),f=(0,a.useMemo)((function(){return g.filter((function(e){var t=e.label,o=e.value;return n.includes(o)||u&&u({label:t,value:o})}))}),[g,n,u]),b=(0,a.useCallback)((function(e){var n=e.map((function(e){return e.value}));t(n)}),[t]);return a.createElement(s.Select,(0,o.Z)({placeholder:h},c,{options:g,value:f,onChange:b}))}},88866:function(e,n,t){t.d(n,{V:function(){return r},_:function(){return l}});var o=t(4942);t(85827),t(41539),t(25387),t(2490),t(72608),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var s=[{iconName:"osAlpineLinux",logoFilename:"alpine.svg",name:"alpine",osNames:["Alpine Linux"],title:"Alpine Linux"},{iconName:"osAmazonLinux",logoFilename:"linux.svg",name:"linux",osNames:["Amazon Linux","Amazon Linux AMI"],title:"Amazon Linux"},{iconName:"osArchLinux",logoFilename:"arch.svg",name:"archarm",osNames:["Archcraft","Arch Linux","Arch Linux 32","Arch Linux ARM","ArchLabs","ArchLinux"],title:"Arch Linux"},{iconName:"osCentos",logoFilename:"centos.svg",name:"centos",osNames:["CentOS","CentOS Linux","CentOS Stream"],title:"CentOS"},{iconName:"osCoreOS",logoFilename:"coreos.svg",name:"coreos",osNames:["Container Linux by CoreOS"],title:"CoreOS"},{iconName:"osDebian",logoFilename:"debian.svg",name:"debian",osNames:["Debian GNU/Linux"],title:"Debian"},{iconName:"osFedora",logoFilename:"fedora.svg",name:"fedora",osNames:["Fedora","Fedora Linux","Fedora Remix for WSL"],title:"Fedora"},{iconName:"osFreeBSD",logoFilename:"freebsd.svg",name:"freebsd",osNames:["FreeBSD"],title:"FreeBSD"},{iconName:"serviceFreeNAS",logoFilename:"freenas.svg",name:"freenas",osNames:[],title:"FreeNAS"},{iconName:"osGentoo",logoFilename:"gentoo.svg",name:"gentoo",osNames:["Gentoo"],title:"Gentoo"},{iconName:"serviceKubernetes",logoFilename:"kubernetes.svg",name:"kubernetes",osNames:[],title:"Kubernetes"},{iconName:"osLinux",logoFilename:"linux.svg",name:"linux",osNames:[],title:"Linux"},{iconName:"osMacOSX",logoFilename:"macos.svg",name:"macos",osNames:["mac"],title:"MacOS"},{iconName:"osMacOSX",logoFilename:"macos.svg",name:"mac",osNames:["mac"],title:"MacOS"},{iconName:"osLinuxManjaro",logoFilename:"manjaro.svg",name:"manjaro",osNames:["Manjaro Linux","Manjaro-ARM"],title:"Manjaro"},{iconName:"serviceOpenStack",logoFilename:"openstack.svg",name:"openstack",osNames:[],title:"OpenStack"},{iconName:"osSuseLinux",logoFilename:"opensuse.svg",name:"opensuse",osNames:["openSUSE","openSUSE Leap","openSUSE Leap Micro","openSUSE MicroOS","openSUSE Tumbleweed"],title:"Open Suse"},{iconName:"serviceOpenWrt",logoFilename:"openwrt.svg",name:"openwrt",osNames:["OpenWrt"],title:"OpenWRT"},{iconName:"osOracle",logoFilename:"oracle.svg",name:"oracle",osNames:["Oracle Linux Server"],title:"Oracle Linux"},{iconName:"servicePfSense",logoFilename:"pfsense.svg",name:"pfsense",osNames:[],title:"PFSense"},{logoFilename:"raspberry-pi.svg",name:"raspberry-pi",osNames:[],title:"Raspberry PI"},{iconName:"osRaspbian",name:"raspbian",osNames:["Raspbian","Raspbian GNU/Linux"],title:"Raspbian"},{iconName:"osRedHat",logoFilename:"redhat.svg",name:"redhat",osNames:["Red Hat Enterprise Linux","Red Hat Enterprise Linux Server","Red Hat Enterprise Linux Workstation","RedHatEnterpriseServer"],title:"Red Hat Enterprise Linux"},{iconName:"osSuseLinux",logoFilename:"suse.svg",name:"suse",osNames:[],title:"Suse"},{iconName:"osUbuntu",logoFilename:"ubuntu.svg",name:"ubuntu",osNames:["Ubuntu","Ubuntu Core"],title:"Ubuntu"}],r=s.reduce((function(e,n){return a(a({},e),{},(0,o.Z)({},n.name,n))}),{}),l=s.reduce((function(e,n){return a(a({},e),n.osNames.reduce((function(e,t){return a(a({},e),{},(0,o.Z)({},t,n))}),{}))}),{})},15257:function(e,n,t){t.d(n,{Z:function(){return S}});var o=t(87462),i=t(45987),a=t(29439),s=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(60677)),r=t(67294),l=t(57509),c=t(15794),d=s.default.div.withConfig({displayName:"styled__Divider",componentId:"sc-14bbmjw-0"})(["background:",";height:1px;width:auto;margin:"," ",";"],(0,l.getColor)("disabled"),(0,l.getSizeBy)(1),(0,l.getSizeBy)(2)),u=t(67622),m=t(31203),h=t(46667),p=t(13477),g=t(1043),f=t(83356),b=(t(88674),t(17727),t(16645)),y=t(7693),_=t(73256),w=t(57683),v={flex:!0},T=function(e){var n=e.onClose,t=(0,r.useState)(!1),i=(0,a.Z)(t,2),s=i[0],c=i[1],d=(0,r.useState)(!1),u=(0,a.Z)(d,2),m=u[0],h=u[1],g=(0,r.useState)({}),f=(0,a.Z)(g,2),T=f[0],k=f[1],x=(0,w.Z)(),P=x.handleChangeTab,C=x.activeTabIndex,F=x.tabsByName,q=x.tabs,S=(0,p.oH)(void 0,{shouldPersist:!0,onSuccess:n}),D=(0,r.useCallback)((function(){c(!0),S(T).finally((function(){return c(!1)}))}),[T]),A=(0,r.useMemo)((function(){return q.map((function(e){var t=F[e],i=t.label,a=t.testId,s=t.Component;return r.createElement(l.Tab,{key:e,label:i,"data-testid":"userProfileModal-".concat(a)},r.createElement(s,(0,o.Z)({},"profile"===e&&{setFormState:k,setFormValid:h},{onClose:n})))}))}),[q]);return r.createElement(b.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},r.createElement(y.x,{onClose:n,title:"Settings"},"profile"===q[C]&&r.createElement(l.Button,{disabled:!m,label:"Save",onClick:D,isLoading:s,loadingLabel:"saving..."})),r.createElement(l.Tabs,{selected:C,onChange:P,TabContent:b.TZ,TabsHeader:_.G,tabsProps:v},A))},k=t(82351),x=(0,s.default)(l.Flex).attrs({column:!0,round:1}).withConfig({displayName:"dropdown__Dropdown",componentId:"sc-w0ej6i-0"})(["box-shadow:0 4px 4px rgba(0,0,0,0.25);"]),P=t(78710),C=["hasSeparator","name"],F={"Operational Status":function(){return!0},"Sign In":function(e){var n=e.isAgent,t=e.isAnonymous;return!n&&t},Settings:function(e){var n=e.isAgent,t=e.isAnonymous;return n||!t},"Sign Out":function(e){return!e.isAnonymous}},q=(0,s.default)(l.Button).withConfig({displayName:"userControl__SignInButton",componentId:"sc-n4ebn8-0"})(["&&{> .button-icon{width:24px;height:24px;}}"]),S=function(e){var n=e.dropdownBackground,t=void 0===n?"dropdown":n,s=(0,p.Iy)("avatarURL"),b=(0,p.Iy)("isAnonymous"),y=(0,h.Z)(),_=(0,a.Z)(y,4),v=_[0],S=_[2],D=_[3],A=(0,r.useCallback)((function(){window.open("https://status.netdata.cloud","_blank")}),[]),M=(0,g.UQ)(),N=(0,f.Z)(),H=(0,w.Z)(),E=H.handleOpenProfileModal,O=H.handleCloseProfileModal,I=H.isProfileModalOpen,R=(0,r.useMemo)((function(){return[{name:"Settings",onClick:E,hasSeparator:!1,testid:"userControl-settings"},{name:"Operational Status",onClick:A,hasSeparator:!1,testid:"userControl-operationalStatus"},{name:"Sign In",onClick:N,hasSeparator:!0,testid:"userControl-signOut"},{name:"Sign Out",onClick:M,hasSeparator:!0,testid:"userControl-signOut"}].filter((function(e){return F[e.name]({isAgent:P.ZP,isAnonymous:b})}))}),[b,P.ZP]);return r.createElement(c.Z,null,r.createElement(k.Z,!b&&{content:"Edit your account settings and manage your notifications",align:"right"},!P.ZP&&b?r.createElement(k.Z,{content:"Sign In",align:"right"},r.createElement(q,{small:!0,icon:"sign_in",onClick:S,"data-ga":"sidebar-sign-in::click-dropdown::global-view","data-testid":"sign-in-dropdown",iconSize:"medium",margin:[0,0,2]})):r.createElement(m.Z,{src:s||"","data-testid":"userControl-userAvatar",onClick:S})),v&&r.createElement(l.Layer,{margin:[5,17],position:"bottom-left",onClickOutside:D,onEsc:D},r.createElement(x,{background:t,padding:[2]},R.map((function(e){var n=e.hasSeparator,t=e.name,a=(0,i.Z)(e,C);return r.createElement(r.Fragment,{key:t},n&&r.createElement(d,{key:"".concat(t,"-itemSeparator")}),r.createElement(u.Z,(0,o.Z)({key:t,round:1},a),t))})))),I&&r.createElement(T,{onClose:O}))}},16772:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=["onChange","value","onKeyDown","label"];n.Z=function(e){var n=e.onChange,t=e.value,l=e.onKeyDown,c=e.label,d=(0,i.Z)(e,r);return a.createElement(s.TextInput,(0,o.Z)({label:c,name:"userEmail",placeholder:"Enter an email address",value:t,onChange:n,onKeyDown:l},d))}},57683:function(e,n,t){t.d(n,{Z:function(){return mn}});var o=t(29439),i=(t(57327),t(41539),t(88449),t(2490),t(59849),t(47941),t(26699),t(32023),t(67294)),a=t(65351),s=t(13477),r=t(57509),l=t(30688),c=t(31203),d=t(1043),u=t(46667),m=t(87462),h=t(93433),p=t(45987),g=(t(92222),t(71752)),f=["value","isValid","setIsValid","onChange","label","validators","fieldMessage"],b="User name cannot exceed ".concat(40," characters"),y=function(e){var n=e.length<=40;return(0,l.f)(n,b)},_=function(e){var n=e.value,t=e.isValid,a=e.setIsValid,s=e.onChange,c=e.label,d=e.validators,u=void 0===d?[]:d,b=e.fieldMessage,_=(0,p.Z)(e,f),w=(0,l.A)([y].concat((0,h.Z)(u))),v=(0,i.useState)(""),T=(0,o.Z)(v,2),k=T[0],x=T[1];return(0,i.useEffect)((function(){var e=w(n),o=e.isValid,i=(0,g.T)(e);!t&&o?a(!0):t&&!o&&a(!1),x(i||"")}),[t,n]),i.createElement(r.TextInput,(0,m.Z)({label:c||" ",name:"userName",placeholder:"Enter the user's name",value:n,onChange:s,fieldMessage:b,error:!t&&k},_))},w=t(16772),v=t(46715),T=t(74059),k=t(94666),x=t(72671),P=t(60677),C=(0,P.default)(r.Text).withConfig({displayName:"styled__Label",componentId:"sc-anprf9-0"})(["height:",";font-weight:bold;display:flex;align-items:center;margin-bottom:",";"],(0,r.getSizeBy)(3),(0,r.getSizeBy)(3)),F=P.default.div.withConfig({displayName:"styled__AvatarBlock",componentId:"sc-anprf9-1"})(["height:",";display:flex;margin-bottom:",";"],(0,r.getSizeBy)(10),(0,r.getSizeBy)(4)),q=(P.default.div.withConfig({displayName:"styled__GravatarInfo",componentId:"sc-anprf9-2"})(["padding:0 ",";display:flex;flex-direction:column;justify-content:center;"],(0,r.getSizeBy)(2)),(0,P.default)(r.TextSmall).withConfig({displayName:"styled__StyledTextSmall",componentId:"sc-anprf9-3"})(["margin-bottom:",";"],(0,r.getSizeBy)(2)),(0,P.default)(r.TextNano).withConfig({displayName:"styled__StyledTextNano",componentId:"sc-anprf9-4"})(["color:",";"],(0,r.getColor)("textFocus")),P.default.div.withConfig({displayName:"styled__RadioRow",componentId:"sc-anprf9-5"})(["display:flex;flex-flow:row nowrap;align-items:center;padding:0 0 "," ",";"],(0,r.getSizeBy)(2),(0,r.getSizeBy)(1))),S=P.default.section.withConfig({displayName:"styled__StyledSection",componentId:"sc-anprf9-6"})(["display:flex;margin-top:auto;justify-content:flex-end;"]),D=[function(e){return(0,l.f)(!!e,"Name should not be empty")}],A=function(){},M=(0,x.F)((function(e){var n=e.isLastMember,t=e.spaceName,o=e.children;return i.createElement(r.Flex,{column:!0,gap:2},i.createElement(r.Text,null,"You are about to delete your account at ",i.createElement("strong",null,"Netdata"),". All data related to your account will be deleted."),n&&i.createElement(i.Fragment,null,i.createElement(r.Text,null,i.createElement(r.Text,{strong:!0},t)," space will be deleted since you are the last member."),o),i.createElement(r.Text,null,"This cannot be undone. Are you sure you want to continue?"))})),N=function(e){var n=e.setFormValid,t=e.setFormState,a=(0,s.Iy)("name"),l=(0,r.useInputValue)({value:a,maxChars:40}),m=(0,o.Z)(l,4),h=m[0],p=m[1],g=m[2],f=m[3],b=(0,i.useState)(!1),y=(0,o.Z)(b,2),x=y[0],P=y[1],q=(0,u.Z)(),N=(0,o.Z)(q,4),H=N[0],E=N[2],O=N[3],I=(0,u.Z)(),R=(0,o.Z)(I,2),L=R[0],B=R[1],U=(0,v.RP)().value,j=(0,T.OS)(),G=1===(0,k.H4)().length,z=(0,s.Iy)("email"),Y=(0,s.Iy)("avatarURL");(0,i.useEffect)((function(){f&&n(x)}),[f,x]),(0,i.useEffect)((function(){t({name:h})}),[h]);var X=(0,d.R2)();return i.createElement(i.Fragment,null,i.createElement(C,{"data-testid":"userProfile-label"},"Photo"),i.createElement(F,{"data-testid":"userProfile-avatarSection"},i.createElement(c.Z,{src:Y||"","data-testid":"userProfile-avatar",width:24,height:24})),i.createElement(_,{"data-testid":"userProfile-username",value:h,label:"Name",onChange:p,isValid:x,setIsValid:P,validators:D,fieldIndicator:g,instantFeedback:"positiveFirst",isDirty:f}),i.createElement(w.Z,{"data-testid":"userProfile-email",label:"Email",disabled:!0,value:z,onChange:A}),i.createElement(S,{"data-testid":"userProfile-actions"},i.createElement(r.Button,{danger:!0,onClick:E,label:"Delete account","data-ga":"user-profile-settings::click-delete::global-view","data-testid":"userProfile-deleteAccount-button"}),H&&i.createElement(r.ConfirmationDialog,{confirmLabel:L?"Deleting...":"Yes, delete","data-ga":"delete-account-dialog","data-testid":"deleteAccountDialog",handleConfirm:function(){B(),X()},handleDecline:O,message:i.createElement(M,{isLastMember:G,spaceName:j.name,currentPlan:U}),title:"Delete Account",isConfirmDisabled:L,isConfirmLoading:L,isDeclineDisabled:L})))},H=t(91008),E=function(e){var n=e.gaPrefix,t=void 0===n?"cookie-consent":n,o=e.gaView,a=void 0===o?"global-view":o,s=e.testPrefix,l=void 0===s?"cookieConsent":s;return i.createElement(r.TextSmall,{"data-testid":"".concat(l,"-description")},"This website stores cookies on your computer. These cookies are used to collect information about how you interact with our website and allow us to remember you. We use this information to improve and customize your browsing experience and for analytics and metrics about our visitors on this website and other media. To find out more about the cookies we use, see Netdata's"," ",i.createElement(H.Z,{alignSelf:"start",Component:r.TextSmall,"data-ga":"".concat(t,"::click-policy-link::").concat(a),"data-testid":"".concat(l,"-policyLink"),href:"https://netdata.cloud/privacy",rel:"noopener noreferer",target:"_blank"},"Privacy Policy"),".")},O=t(4942),I=(t(15581),t(34514),t(54747),t(39714),t(21249),t(57640),t(9924),t(26833),t(82526),t(41817),t(38880),t(49337),t(33321),t(69070),t(92432)),R=t(80606),L=t(78401),B=t(52971),U=t(85456),j=(0,P.default)(r.Button).attrs({textTransform:"none",width:"auto"}).withConfig({displayName:"styled__Action",componentId:"sc-aj53iu-0"})(["&&{height:36px;","}"],(function(e){return e.isBanner&&"\n border-width: 0;\n \n > span {\n align-items: center;\n display: flex;\n }\n "}));(0,P.default)(r.Box).withConfig({displayName:"styled__AppContainer",componentId:"sc-aj53iu-1"})(["backdrop-filter:blur(2.5px);background-color:rgba(255,255,255,0.7);inset:0;pointer-events:all;position:absolute;z-index:10;"]),(0,P.default)(r.Icon).attrs({color:"primary",name:"chevron_down_thin"}).withConfig({displayName:"styled__ArrowIcon",componentId:"sc-aj53iu-2"})(["",";"],(function(e){return e.isOpen&&"transform: rotate(180deg);"})),(0,P.default)(r.Box).attrs({background:"bright",border:{color:"borderSecondary",side:"top"},width:"100%"}).withConfig({displayName:"styled__BannerContainer",componentId:"sc-aj53iu-3"})(["bottom:0;position:absolute;"]);function G(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?G(Object(t),!0).forEach((function(n){(0,O.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):G(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var Y=function(e){var n=e.gaPrefix,t=void 0===n?"cookie-consent":n,a=e.gaView,l=void 0===a?"global-view":a,c=e.onClick,d=void 0===c?function(){}:c,u=e.testPrefix,m=void 0===u?"cookieConsent":u,h=(0,s.Iy)("id"),p=(0,i.useState)(U.lF),g=(0,o.Z)(p,2),f=g[0],b=g[1],y=(0,R.F)(),_=(0,o.Z)(y,2)[1],w=function(e){return function(n){var t=n.target;b((function(n){return z(z({},n),{},(0,O.Z)({},e,t.checked))}))}};return i.createElement(r.Flex,{column:!0,"data-testid":"".concat(m,"-preferences"),gap:3},Object.values(B.Ew).map((function(e){var n=e.defaultValue,o=e.description,a=e.disabled,s=e.ga,c=e.id,d=e.title;return i.createElement(r.Flex,{column:!0,"data-testid":"".concat(m,"-").concat(c),gap:1,key:c},i.createElement(r.Flex,{alignItems:"center","data-testid":"".concat(c,"-actionRow"),justifyContent:"between"},i.createElement(r.Flex,{alignItems:"baseline","data-testid":"".concat(c,"-titleContainer")},i.createElement(r.Text,{color:"main","data-testid":"".concat(c,"-title")},d),a&&i.createElement(i.Fragment,null,"\xa0",i.createElement(r.TextSmall,{color:"main","data-testid":"".concat(c,"-statusDescription")},"(always ",B.pD[n],")"))),i.createElement(r.Toggle,{colored:!0,"data-ga":"".concat(t,"::click-").concat(s,"-switch::").concat(l,"::").concat(f[c]?"enabled":"disabled"),"data-testid":"".concat(c,"-switch"),checked:f[c],disabled:a,onChange:w(c)})),i.createElement(r.TextSmall,{color:"textLite","data-testid":"".concat(c,"-description")},o))})),i.createElement(j,{alignSelf:"end","data-ga":"".concat(t,"::click-save-preferences::").concat(l),"data-testid":"".concat(m,"-savePreferences"),disabled:(0,U.fY)(f),flavour:"hollow",label:"Save preferences",onClick:function(){var e=[],n={};Object.keys(f).forEach((function(t){var o=f[t]?B.Ci.granted:B.Ci.denied;e.push("".concat(B.Ew[t].eventName,"=").concat(f[t].toString())),(0,U.ej)(t)!==o&&(B.Ew[t].gmtKeys.forEach((function(e){n[e]=o})),f[t]?B.Ew[t].handleAccept():B.Ew[t].handleDeny(),(0,U.d8)(t,(0,U.ow)(1),o))})),_((0,L.O)()),(0,U.v)(n),(0,I.L)("cookie-consent","save-preferences",e.join(","),h,"","cookie-consent-save-preferences"),d()},padding:[2,4]}))},X=function(e){var n=e.onClose;return i.createElement(r.Flex,{column:!0,"data-testid":"manageCookies",gap:3},i.createElement(E,{gaPrefix:"manage-cookies",testPrefix:"manageCookies"}),i.createElement(Y,{gaPrefix:"manage-cookies",onClick:n,testPrefix:"manageCookies"}))},Z=t(33937),W=function(){var e=(0,Z.k)("theme"),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,i.useCallback)((function(e){return a(e.target.value)}),[]);return i.createElement(i.Fragment,null,i.createElement(C,null,"Netdata Theme"),i.createElement(q,null,i.createElement(r.RadioButton,{label:"Light Theme",checked:"light"===t,onChange:s,value:"light"})),i.createElement(q,null,i.createElement(r.RadioButton,{label:"Dark Theme",checked:"light"!==t,onChange:s,value:"dark"})))},K=t(82351),$=t(93017),V=t(15861),J=t(64687),Q=t.n(J),ee=(t(73210),function(e){var n=e.onCloseModal,t=e.onCreate,a=(0,i.useState)(""),s=(0,o.Z)(a,2),l=s[0],c=s[1];return i.createElement(r.ModalContent,null,i.createElement(r.ModalHeader,null,"Create New Token",i.createElement(r.ModalCloseButton,{testId:"close-button",onClose:n})),i.createElement(r.ModalBody,null,i.createElement(r.Flex,{height:10,width:80},i.createElement(r.TextInput,{"data-testid":"description",placeholder:"Enter Description",onChange:function(e){var n=e.target;return c(n.value)},value:l}))),i.createElement(r.ModalFooter,null,i.createElement(r.Button,{disabled:""===l.trim(),label:"Create",onClick:function(){return t(l)},"data-testid":"btn-create"})))}),ne=P.default.div.withConfig({displayName:"styled__TokenContainer",componentId:"sc-s1axew-0"})(["display:flex;flex-direction:column;align-items:center;color:",";background:",";border:1px solid ",';border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;padding:23px 27px 14px;width:100%;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,r.getColor)("textDescription"),(0,r.getColor)("modalTabsBackground"),(0,r.getColor)("borderSecondary")),te=function(e){return i.createElement(r.Box,(0,m.Z)({},e,{as:r.Icon,sx:{borderRadius:"50%",overflow:"hidden",background:(0,r.getColor)(["neutral","white"])}}))},oe=function(e){return i.createElement(r.Text,(0,m.Z)({},e,{color:["neutral","bluebayoux"]}))},ie=function(e){return i.createElement(r.Flex,(0,m.Z)({},e,{as:r.Icon,sx:{alignSelf:"flex-end",cursor:"pointer"}}))},ae=t(58206),se=t(55678),re=t(74855);function le(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function ce(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?le(Object(t),!0).forEach((function(n){(0,O.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):le(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var de=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){(0,ae.Z)(e);var t=(0,re.sc)(ce(ce({},ce({header:"Copied",text:"Token copied to your clipboard!",icon:"gear"},n)),{},{success:!0}));se.Am.success(t,{context:"copy"})}},ue=function(e){var n=e.onCloseModal,t=e.token;return i.createElement(r.ModalContent,null,i.createElement(r.ModalHeader,null,"Token Generated",i.createElement(r.ModalCloseButton,{testId:"close-button",onClose:n})),i.createElement(r.ModalBody,null,i.createElement(r.Flex,{column:!0,gap:4},i.createElement(ne,null,i.createElement("span",{"data-testid":"token"},t),i.createElement(ie,{name:"copy",size:"small",color:"primary",onClick:de(t),"data-ga":"profile::click-copytoken::all-pages::api-token"})),i.createElement(r.Flex,{alignItems:"center",background:"warningBackground",gap:4,padding:[3,3],round:!0},i.createElement(te,{"data-testid":"noNodesView-warningBannerIcon",name:"exclamation",color:"warning"}),i.createElement(oe,{"data-testid":"warning-message"},"Make sure to copy or store this token and add it where you need it. Once you close this modal you will not be able to retrieve it again.")))),i.createElement(r.ModalFooter,null,i.createElement(r.Button,{label:"Close",onClick:n})))},me=t(26398),he=function(e){var n=e.description,t=e.scopes;return me.Z.post("/api/v1/auth/account/api-token",{description:n,scopes:t})},pe=function(e){return me.Z.delete("/api/v1/auth/account/api-token/".concat(e))},ge=function(e){var n=e.onCloseModal,t=e.onTokenCreated,a=e.view,s=e.token,l=(0,i.useState)(a),c=(0,o.Z)(l,2),d=c[0],u=c[1],m=(0,i.useState)(s),h=(0,o.Z)(m,2),p=h[0],g=h[1],f=function(){var e=(0,V.Z)(Q().mark((function e(n){var o;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,he({description:n});case 2:o=e.sent,(0,I.L)("api-token","create-token","profile",n),g(o.data.token),u("CopyTokenView"),t();case 7:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}();return i.createElement(r.Modal,null,"CreateView"===d&&i.createElement(ee,{"data-testid":"create-view",onCloseModal:n,onCreate:f}),"CopyTokenView"===d&&p&&i.createElement(ue,{onCloseModal:n,token:p}))},fe=t(49546);function be(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function ye(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?be(Object(t),!0).forEach((function(n){(0,O.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):be(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var _e=function(){var e=(0,i.useState)([]),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,u.Z)(!0),r=(0,o.Z)(s,4),l=r[0],c=r[2],d=r[3],m=function(){var e=(0,V.Z)(Q().mark((function e(){var n;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c(),e.next=3,me.Z.get("/api/v1/auth/account/api-token");case 3:n=e.sent,d(),a(n.data.map((function(e){return ye(ye({},e),{},{created_at:e.created_at?(0,fe.default)(new Date(e.created_at),"dd/MM/yyyy"):null,last_used_at:e.last_used_at?(0,fe.default)(new Date(e.last_used_at),"dd/MM/yyyy"):null})})));case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,i.useEffect)((function(){m()}),[]),{isLoading:l,data:t,setData:a,fetchData:m}},we=[{id:"description",header:"Description",size:250,minSize:60,meta:{cellStyles:{sx:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"}}},cell:function(e){var n=e.getValue;return i.createElement(K.Z,{plain:!0,content:n()||"",isBasic:!0},i.createElement(r.Text,{whiteSpace:"nowrap",truncate:!0},n()||""))}},{id:"created_at",header:"Created at",size:90,minSize:90,cell:function(e){return(0,e.getValue)()||"-"}},{id:"last_used_at",header:"Used at",size:90,minSize:90,cell:function(e){return(0,e.getValue)()||"-"}},{id:"ends_with",header:"Token",size:90,minSize:90,cell:function(e){var n=e.getValue;return i.createElement(i.Fragment,null,i.createElement(r.Text,{style:{verticalAlign:"sub"}},"******"),n())}}],ve=function(){var e=(0,i.useState)(!1),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,i.useState)(!1),l=(0,o.Z)(s,2),c=l[0],d=l[1],u=(0,i.useState)(null),m=(0,o.Z)(u,2),h=m[0],p=m[1],g=_e(),f=g.data,b=g.setData,y=g.fetchData,_=(0,i.useMemo)((function(){return{addEntry:{handleAction:function(){return a(!0)},tooltipText:"Create new token"}}}),[]),w=(0,$.Z)(),v=(0,o.Z)(w,2)[1],T=(0,i.useMemo)((function(){return{delete:{handleAction:function(e){var n=e.id;pe(n).then((function(){b((function(e){return e.filter((function(e){return e.id!==n}))})),(0,I.L)("api-token","delete-token","profile")})).catch(v)},confirmationTitle:"Delete API Token",confirmationMessage:"You are about to delete API Token, are you sure you want to continue?"}}}),[f]);return i.createElement(i.Fragment,null,i.createElement(r.NetdataTable,{dataColumns:we,data:f,bulkActions:_,rowActions:T}),t&&i.createElement(ge,{view:"CreateView",onCloseModal:function(){return a(!1)},onTokenCreated:y}),c&&i.createElement(ge,{view:"CopyTokenView",onCloseModal:function(){d(!1),p(null)},token:h}))},Te=t(3528),ke=t(72437),xe=t(50308),Pe=t.n(xe),Ce=["disabledInfo"],Fe=["title","description","label","checked","onChange"],qe=function(e){var n,t=e.title,o=void 0===t?"":t,a=e.description,s=void 0===a?"":a,l=e.label,c=void 0===l?"":l,d=e.checked,u=e.onChange,h=void 0===u?Pe():u,g=(0,p.Z)(e,Fe),f=(n=r.Toggle,function(e){var t=e.disabledInfo,o=void 0===t?"This setting is disabled":t,a=(0,p.Z)(e,Ce);return(a||{}).disabled?i.createElement(K.Z,{content:o},i.createElement(r.Box,null,i.createElement(n,a))):i.createElement(n,a)});return i.createElement(r.Flex,{justifyContent:"between",alignItems:"center"},i.createElement(r.Box,null,i.createElement(r.H5,null,o),i.createElement(r.TextSmall,null,s)),i.createElement(f,(0,m.Z)({colored:!0,onChange:h,checked:d,"data-testid":"profileNotifications-".concat(c,"NotificationsToggle"),"data-ga":"profile-ntab::click-toggle::global-view::".concat(d?"enabled":"disabled")},g)))},Se=t(1653),De=(t(66992),t(88674),t(78783),t(33948),function(e){var n=e.value;return i.createElement(r.Box,{width:"232px",height:"232px",background:"white",padding:[4],round:3},i.createElement(Se.Z,{size:200,value:n}))}),Ae=function(e){var n=e.onClose,t=void 0===n?Pe():n,a=function(){var e=_e(),n=e.isLoading,t=e.data,a=(0,i.useState)(),s=(0,o.Z)(a,2),r=s[0],l=s[1],c=(0,$.Z)(),d=(0,o.Z)(c,2)[1],u=function(){var e=(0,V.Z)(Q().mark((function e(){var n,o;return Q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!((null===t||void 0===t?void 0:t.length)>0)){e.next=3;break}return e.next=3,Promise.all(t.map((function(e){var n=e.id;return pe(n)}))).catch(d);case 3:return e.next=5,he({description:"Mobile App",scopes:["scope:mobile-app"]});case 5:n=e.sent,null!==(o=n.data)&&void 0!==o&&o.token&&l(o.token);case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,i.useEffect)((function(){n||u()}),[n]),{token:r}}(),s=a.token;return i.createElement(r.Modal,null,i.createElement(r.ModalContent,{width:{min:100,base:140}},i.createElement(r.ModalHeader,null,i.createElement(r.Text,null,"Scan QR Code"),i.createElement(r.ModalCloseButton,{onClose:t,testId:"close-button"})),i.createElement(r.ModalBody,null,i.createElement(r.Flex,{alignItems:"center",justifyContent:"center",height:100},s?i.createElement(De,{value:s}):i.createElement(r.Flex,{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",padding:[4]},i.createElement(r.H3,null,"Generating token")))),i.createElement(r.ModalFooter,null,i.createElement(r.Flex,{justifyContent:"end",padding:[1,2]},i.createElement(r.Button,{label:"Done",onClick:t})))))},Me=function(){var e=(0,Te.MJ)("email"),n=(0,o.Z)(e,2),t=n[0],a=n[1],s=(0,i.useCallback)((function(){return a(!t)}),[t,a]),l=(0,Te.MJ)("mobileApp"),c=(0,o.Z)(l,2),d=c[0],m=c[1],h=(0,i.useCallback)((function(){m(!(null!==d&&void 0!==d&&d.enabled))}),[d,m]),p=(0,u.Z)(),g=(0,o.Z)(p,4),f=g[0],b=g[2],y=g[3];return i.createElement(r.Flex,{column:!0,gap:2},i.createElement(qe,{title:"E-mail",description:"Netdata will send you health notifications via e-mails",label:"email",checked:t,onChange:s}),ke.xy&&i.createElement(r.Flex,{column:!0},i.createElement(qe,{title:"Mobile App Notifications",description:"Netdata will send you health notifications via mobile app notifications",label:"mobileApp",checked:null===d||void 0===d?void 0:d.enabled,onChange:h,disabled:!(null!==d&&void 0!==d&&d.linked),disabledInfo:"You have to link a device first and then enable notifications"}),i.createElement(r.Flex,{justifyContent:"end"},i.createElement(r.Button,{flavour:"borderless",icon:"qrCode",iconColor:"primary",iconSize:"small",onClick:b},i.createElement(r.Text,{color:"primary"},"Show QR code"))),f&&i.createElement(Ae,{onClose:y})))},Ne=(t(85827),t(25387),t(72608),t(78266)),He=t(33335),Ee=(t(69826),t(31672),t(59461),t(89211)),Oe=t(45736),Ie=t(23383),Re=t(95383),Le=t(3689),Be=t(8018),Ue=t(37518),je=P.default.div.withConfig({displayName:"styled__Row",componentId:"sc-lpc291-0"})(["width:100%;height:",";display:flex;flex-flow:row nowrap;align-items:center;padding-left:",";margin-bottom:",";"],(0,r.getSizeBy)(5),(0,r.getSizeBy)(3),(0,r.getSizeBy)(2)),Ge=(0,P.default)(r.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-lpc291-1"})(["width:20px;height:20px;margin-right:",";"],(0,r.getSizeBy)()),ze=(0,P.css)(["&&{width:200px;}margin-left:auto;"]),Ye=(0,P.default)(r.Select).withConfig({displayName:"styled__StyledSelect",componentId:"sc-lpc291-2"})(["",""],ze),Xe=(0,P.default)(r.Button).withConfig({displayName:"styled__SettingsLoader",componentId:"sc-lpc291-3"})([""," color:",";border:1px solid ",";.path{stroke:",";}"],ze,(0,r.getColor)("text"),(0,r.getColor)("border"),(0,r.getColor)("text")),Ze=function(e){var n=e.roomId,t=e.spaceId,a=(0,Te.dR)({roomId:n,spaceId:t,key:"alarms"}),s=(0,o.Z)(a,2),r=s[0],l=s[1],c=(0,i.useCallback)((function(e){l(e.value)}),[l]);return i.createElement(Ye,{options:Object.values(Le.YM),value:Le.YM[r],onChange:c})},We=function(e){var n=e.roomId,t=e.spaceId,a=(0,i.useState)(),s=(0,o.Z)(a,2),l=s[0],c=s[1],d=(0,Be.qn)(t,n,{onFail:function(){c(!1)},onSuccess:function(){c(!1)}}),u=(0,i.useCallback)((function(){c(!0),d()}),[d,n]);return i.createElement(r.Box,{margin:[0,2,0,"auto"]},i.createElement(K.Z,{content:"Join this room to activate notifications for it",isBasic:!0},i.createElement(r.Button,{isLoading:l,label:"Join",onClick:u,flavour:"hollow"})))},Ke=function(e){var n=e.isMember,t=e.roomId,o=e.spaceId,a=(0,Ue.tE)(t,"name");return i.createElement(je,{"data-testid":"roomSettings-room-".concat(a),"data-ga":"profile-ntab::click-join-room-".concat(a,"::global-view")},i.createElement(Ge,{name:"room",color:"text"}),i.createElement(r.Text,null,a),n?i.createElement(i.Suspense,{fallback:i.createElement(Xe,{isLoading:!0,flavour:"hollow",label:"Loading settings.."})},i.createElement(Ze,{roomId:t,spaceId:o})):i.createElement(We,{roomId:t,spaceId:o}))},$e=P.default.div.withConfig({displayName:"styled__CollapsibleRoot",componentId:"sc-1p8t8zr-0"})(["width:100%;height:",";display:flex;flex-flow:row nowrap;align-items:center;cursor:pointer;margin-bottom:",";"],(0,r.getSizeBy)(5),(0,r.getSizeBy)(2)),Ve=(0,P.default)(r.Icon).withConfig({displayName:"styled__OpenerIcon",componentId:"sc-1p8t8zr-1"})(["height:5px;width:6px;margin-right:",";",";"],(0,r.getSizeBy)(2),(function(e){return e.expanded&&"transform: rotate(90deg)"})),Je=(0,P.default)(r.Icon).withConfig({displayName:"styled__SpaceIcon",componentId:"sc-1p8t8zr-2"})(["width:20px;height:20px;margin-right:",";"],(0,r.getSizeBy)()),Qe=(0,P.default)(r.Text).withConfig({displayName:"styled__SpaceLabel",componentId:"sc-1p8t8zr-3"})(["font-weight:bold;"]),en=(0,P.default)(r.TextSmall).withConfig({displayName:"styled__SettingsInfo",componentId:"sc-1p8t8zr-4"})(["margin-left:auto;opacity:0.8;"]),nn=t(26913),tn=function(e){var n=e.expanded,t=e.onExpand,o=e.label,a=e.spaceId;(0,nn.Z)(a);var s=(0,Oe.pV)(a,"channels").find((function(e){return"Email"===e.integration}))||{};return i.createElement($e,{onClick:t,"data-testid":"spaceRoot-space-".concat(o)},i.createElement(Ve,{name:"chevron_right_s",expanded:n,color:"text"}),i.createElement(Je,{name:"space",color:"text"}),i.createElement(Qe,null,o),!s.enabled&&i.createElement(en,null,"E-mail notifications for this space has been disabled by admin"))},on={width:"108px",height:"77px"},an=function(e){var n=e.spaceId,t=e.isCurrent,a=e.showAllRooms,s=(0,Ee.Z)(t),l=(0,o.Z)(s,2),c=l[0],d=l[1],u=(0,Ie.Z)(n,{autorun:!1,polling:!1}),m=(0,Re.y3)(n,"loaded");(0,i.useEffect)((function(){n&&c&&!m&&u()}),[c,m,n,u]);var h=(0,T.vu)(n,"name"),p=(0,Re.WY)(n),g=(0,i.useMemo)((function(){return a?p:p.filter((function(e){return e.isMember}))}),[p,a]),f=(0,i.useRef)();return(0,i.useEffect)((function(){c&&f.current&&f.current.scrollIntoView({behavior:"smooth",block:"start"})}),[c]),i.createElement(r.Flex,{column:!0,ref:f},i.createElement(tn,{expanded:c,onExpand:d,label:h,spaceId:n}),i.createElement(r.Collapsible,{open:c},(function(){return m?i.createElement(i.Fragment,null,g.map((function(e){var t=e.id,o=e.isMember;return i.createElement(Ke,{isMember:o,key:t,roomId:t,spaceId:n})}))):i.createElement(Ne.Z,{iconProps:on,title:"Loading..."})})))},sn=t(22613),rn={width:"108px",height:"77px"},ln=function(){var e=(0,T.th)(),n=function(e){var n=(0,T.GM)("ids");return(0,i.useMemo)((function(){return n.reduce((function(n,t){return t===e?[t].concat((0,h.Z)(n)):[].concat((0,h.Z)(n),[t])}),[])}),[e,n])}(e),t=(0,He.gI)("room:ReadAll"),a=(0,i.useState)(!1),s=(0,o.Z)(a,2),l=s[0],c=s[1];return i.createElement(i.Fragment,null,i.createElement(r.H4,null,"Notifications for all your Netdata Spaces and all the Rooms you are in"),t&&i.createElement(sn.Z,{onFilterClick:function(e){return function(n){n.stopPropagation(),c(e)}},showAllRooms:l,padding:[1,0]}),i.createElement(r.Flex,{overflow:{vertical:"auto"},column:!0,"data-testid":"spaceRoomNotifications-spacesContainer",padding:[3,0,3]},i.createElement(i.Suspense,{fallback:i.createElement(Ne.Z,{iconProps:rn,title:"Loading notification settings..."})},n.map((function(n){return i.createElement(an,{key:n,isCurrent:n===e,showAllRooms:l,spaceId:n})})))))},cn={offline:["basic"],online:["profile","basic","notifications","apiTokens","manageCookies"]},dn={profile:{Component:N,label:"Profile",order:0,testId:"profileTab"},basic:{Component:W,label:"Basic",order:1,testId:"baseTab"},notifications:{Component:(0,i.memo)((function(){return i.createElement(r.Flex,{overflow:{vertical:"hidden"},column:!0,gap:2},i.createElement(r.H4,null,"Notification Methods"),i.createElement(i.Suspense,{fallback:"..."},i.createElement(Me,null)),i.createElement(r.Flex,{height:"1px",background:"border"}),i.createElement(ln,null))})),label:"Notifications",order:2,testId:"notificationsTab"},apiTokens:{Component:ve,label:"API tokens",order:3,testId:"apiTokensTab"},manageCookies:{Component:X,label:"Manage cookies",order:4,testId:"manageCookiesTab"}},un=function(e){return(dn[e]||dn.profile).order},mn=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).modalName,n=void 0===e?"profile":e,t=(0,s.Iy)("isAnonymous"),r=(0,i.useMemo)((function(){return Object.keys(dn).filter((function(e){return cn[t?"offline":"online"].includes(e)}))}),[t]),l=(0,a.Z)(n),c=l.isModalOpen,d=l.currentModalTab,u=l.handleOpenModal,m=l.handleCloseModal,h=l.handleChangeModalTab,p=(0,i.useState)(un(d)),g=(0,o.Z)(p,2),f=g[0],b=g[1],y=function(e){h(e)};return(0,i.useEffect)((function(){b(un(d))}),[d]),{handleOpenProfileModal:function(){u(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"profile")},handleCloseProfileModal:function(){m()},getPreselectedTab:un,setCurrentTab:y,handleChangeTab:function(e){var n=r[e];b(e),y(n)},tabs:r,tabsByName:dn,activeTabIndex:f,isProfileModalOpen:c}}},39840:function(e,n,t){t.d(n,{e8:function(){return h},m9:function(){return u},pK:function(){return m},yi:function(){return d}});t(92222);var o=t(89250),i=t(67294),a=t(37518),s=t(95248),r=t(45771),l=t(20709),c=t(89405),d=function(e){var n=(0,o.s0)(),t=(0,a.A3)(),r=(0,s.XT)({extraKey:"alerts"}),l=(0,s.Sf)("alertStatuses",{extraKey:"alerts"});return(0,i.useCallback)((function(o){e&&r([e]),o&&"string"===typeof o&&l([o]),n("".concat(t,"/alerts"))}),[e,t,r])},u=function(e,n){if(void 0===e)return"-";var t=(0,r.J)(e);return n?"".concat(t," ").concat(n):t},m=function(e,n){return(0,i.useMemo)((function(){return u(e,n)}),[e,n])},h=function(e){var n=e.rawTime,t=e.secs,o=void 0!==t&&t,a=e.long,s=void 0!==a&&a,r=(0,c.rA)(),d=r.localeTimeString,u=r.localeDateString;return(0,i.useMemo)((function(){var e=new Date(1e3*n);return isNaN(e.valueOf())?{}:{timeAgo:(0,l.Z)(e,new Date),formattedDate:"".concat(u(e,{long:s})," ").concat(d(e,{secs:o}))}}),[n,d,u])}},45771:function(e,n,t){t.d(n,{J:function(){return o},j:function(){return i}});t(9653),t(61874),t(26699),t(32023);var o=function(e){var n=e<1?Number(e).toPrecision(3):Number(e).toFixed(2),t=Number.parseFloat(n);return Math.abs(t)>=1e9||Math.abs(t)<=1e-5&&0!==t?t.toExponential(3):t},i=function(e){return e.includes("critical")?"critical":e.includes("warning")?"warning":e.includes("clear")?"clear":e[0]}},83356:function(e,n,t){t(74916),t(15306),t(92222);var o=t(67294),i=t(89250),a=t(64637),s=t(78710);n.Z=function(){var e=(0,i.s0)();return(0,o.useCallback)((function(){if(s.ZP){var n=window.location.origin+window.location.pathname.replace(s.tj,"");window.location.href=(0,a.h2)("".concat(window.envSettings.cloudUrl,"/trust?redirect_uri=").concat(encodeURIComponent(window.location.href),"&agent_uri=").concat(encodeURIComponent(n||window.envSettings.agentApiUrl)))}else e("/sign-in")}),[])}},4808:function(e,n,t){t.d(n,{Ru:function(){return y},bj:function(){return P},g3:function(){return C},oU:function(){return f}});var o=t(4942),i=t(29439),a=t(45987),s=(t(21249),t(57640),t(9924),t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(74916),t(77601),t(2707),t(39714),t(66992),t(78783),t(33948),t(41637),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(26398)),r=t(66152),l=t(39840),c=t(55436),d=t(78710),u=["spaceId","cloudNodeIds","nodeIds","fn","acceptedParams","merge"],m=["nodeIds","spaceId","roomId","roomSlug","anchor","merge","after","before"];function h(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function p(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?h(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):h(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=function(e){var n=e.functions,t=e.nodes;return n.map((function(e){return{name:e.name,nodes:e.ni.reduce((function(e,n){return t[n]?(e[t[n].nd||t[n].mg]=!0,e):e}),{})}}))},f=function(e,n){return(0,d.Ly)(e)?s.Z.get("/api/v2/functions",{baseURL:window.envSettings.agentApiUrl,transform:g}):s.Z.post("/api/v3/spaces/".concat(e,"/rooms/").concat(n,"/functions"),{scope:{nodes:[]},selectors:{nodes:["*"]}},{transform:g})},b=function(e,n){return function(t){return(t=(0,r.Tg)(t)).defaultCharts||"processes"!==e||(t.defaultCharts=[["CPU","Category"],["Memory","Category"]]),t.defaultCharts=t.defaultCharts||[],t.aggregations=t.facets,t.merge=n,t}},y=function(e){var n=e.spaceId,t=e.cloudNodeIds,o=e.nodeIds,r=e.fn,l=e.acceptedParams,c=void 0===l?[]:l,m=e.merge,h=void 0!==m&&m,p=(0,a.Z)(e,u),g=c.reduce((function(e,n){var t=function(e,n){return"after"===e||"before"===e?Math.floor(n/1e3):n}(n,p[n]);return(t=t?"".concat(t):null)?e?"".concat(e," ").concat(n,":").concat(t):"".concat(n,":").concat(t):e}),""),f=(0,d.Ly)(n);if(g=g?"".concat(f?"%20":" ").concat(g):"",f){var y=(0,i.Z)(o,1)[0];return s.Z.get("/host/".concat(y,"/api/v1/function?function=").concat(r).concat(g),{baseURL:window.envSettings.agentApiUrl,transform:b(r,h)})}var _=(0,i.Z)(t,1)[0];return s.Z.get("/api/v2/nodes/".concat(_,"/function"),{params:{function:"".concat(r).concat(g)},transform:b(r,h)})},_={filter:!1,index:1,name:"Unknown",sort:"ascending",sortable:!0,sticky:!1,summary:"",type:"string",uniqueKey:!1,visible:!0,dummy:!1},w=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,o.Z)({},e,p(p({},_),{},{name:n.name||e},n))},v=p(p(p(p(p({},w("Timestamp",{type:"datetime",index:0})),w("Description",{type:"feedTemplate",index:1})),w("Tags",{type:"pill",index:2})),w("source",{type:"feedTemplate",index:3,dummy:!0})),w("json",{type:"feedTemplate",index:4,dummy:!0})),T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=(0,i.Z)(e,1)[0];return"retention"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).type?/exceeds the maximum data retention/.test(n)?"You've exceeded your plan's retention limit":"":n},k=function(e,n){return function(t){var o,i,a=t.errors,s=void 0===a?[]:a,r=t.page_size,l=t.results,c=l.hits,d=l.aggregations,u=(null===c||void 0===c?void 0:c.hits)||[];return{columns:p({},v),data:u.map((function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=t._source,i=void 0===o?{}:o,a=t._source,s=a.event,r=a.host,l=void 0===r?[]:r,c=a.agent,d=void 0===c?{}:c,u=a.Netdata,m=a.tags,h=Array.isArray(l)?l:[l];return u=p(p({},u),u.alert?{alert:p(p(p({},u.alert),{},{id:null===(e=u.alert.transition)||void 0===e?void 0:e.id},u.alert.name?{name:Array.isArray(u.alert.name)?u.alert.name:[u.alert.name]}:{}),u.alert.current?{current:p(p({},u.alert.current),{},{status:u.alert.current.status?Array.isArray(u.alert.current.status)?u.alert.current.status:[u.alert.current.status]:[]})}:{})}:{}),[i["@timestamp"],s.id,m||[],p(p(p(p({},i),s),u),{},{hosts:h,agentId:d.id,roomId:n}),i]})),default_sort_column:null,type:"table",update_every:5,pageSize:r,totalSize:(null===(o=c.total)||void 0===o?void 0:o.value)||0,anchor:null===(i=u[u.length-1])||void 0===i||null===(i=i.sort)||void 0===i?void 0:i[0],aggregations:d,merge:e,retentionWarning:T(s,{type:"retention"}),warning:T(s)}}},x=function(e,n,t,o){return function(t){var i,a=t.facets,s=void 0===a?[]:a,r=t.items,c=void 0===r?{}:r,d=t.transitions,u=void 0===d?[]:d,m=u.map((function(t){var o=t.machine_guid,i=t.transition_id,a=t.node_id,s=t.hostname,r=t.alert,c=t.new,d=c.status,u=c.value,m=t.when,h=t.old.status,p=t.instance,g=t.units,f={action:"alert-node-transition",space:{id:e},roomId:n,alert:{id:i,current:{status:[d],value_string:(0,l.m9)(u,g)},previous:{status:h},name:[r]},chart:{name:p},hosts:[{id:a||o,name:s}]};return[1e3*m,i,["alert","node_instance"],f,f,d,name,p]}));return{columns:p(p(p(p({},v),w("Status",{type:"value",index:5,dummy:!0,filter:"multiselect"})),w("Alert Name",{type:"value",index:6,dummy:!0,filter:"multiselect"})),w("Instance",{type:"value",index:7,dummy:!0,filter:"multiselect"})),data:m,default_sort_column:null,type:"table",update_every:5,pageSize:100,totalSize:(null===c||void 0===c?void 0:c.matched)||m.length,anchor:null===(i=u[u.length-1])||void 0===i?void 0:i.gi,aggregations:s,merge:o,retentionWarning:null,warning:null}}},P=function(e){var n,t=e.nodeIds,o=void 0===t?[]:t,i=e.spaceId,r=e.roomId,l=e.roomSlug,u=e.anchor,h=void 0===u?"":u,g=e.merge,f=void 0!==g&&g,b=e.after,y=e.before,_=(0,a.Z)(e,m);if((0,d.Ly)(i)){var w=new URLSearchParams(p({after:b?Math.floor(b/1e3):b,before:y?Math.ceil(y/1e3):y,last:100,anchor_gi:h,options:"minify"},_)).toString();return s.Z.get("/api/v2/alert_transitions?".concat(w),{baseURL:window.envSettings.agentApiUrl,transform:x(i,r,0,f)})}return s.Z.post("/api/v1/feed/search",p(p({},_),{},{histogram_seconds:(null===(n=(0,c.BZ)(b,y))||void 0===n?void 0:n.secs)||1,node_ids:o,page_size:100,space_id:i,room_ids:"all-nodes"!==l?[r]:[],search_before:h||Date.now(),from_timestamp:b,to_timestamp:y}),{transform:k(f,r)})},C=function(){return s.Z.get("/api/v1/feed/static/facets")}},81732:function(e,n,t){t.d(n,{GQ:function(){return c},Zn:function(){return u}});var o=t(4942),i=(t(41539),t(88674),t(47941),t(82526),t(57327),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(4480)),a=t(4808);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function r(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var l=(0,i.xu)({key:"checkAgainFnsAtom",default:function(){return 1}}),c=(0,i.CG)({key:"availableFunctionsSelector",get:function(e){var n=e.spaceId,t=e.roomId,o=e.extraKey;return function(e){return(0,e.get)(l(n)),function(e){var n=e.spaceId,t=e.roomId;return"feed"===e.extraKey?Promise.resolve({data:[{name:"feed"}]}):(0,a.oU)(n,t)}({spaceId:n,roomId:t,extraKey:o})}}}),d={id:null,loading:!0,loaded:!1,data:null,error:"",type:"",updateEvery:1,availableFilters:{}},u={table:r(r({},d),{},{sortColumn:"",sortDirection:"descending",columns:{},columnVisibility:{},sortedColumns:[],pinnedColumns:[],groupByColumns:[]}),default:d};n.ZP=(0,i.xu)({key:"function",default:function(e){return r(r({},d),{},{id:e})}})},85672:function(e,n,t){t.d(n,{Ih:function(){return r},Kl:function(){return s},bb:function(){return i},vK:function(){return o}});var o=["#19C89E","#14A6C7","#F3D63D","#E05296","#FF7448","#C082FF"],i={xs:100,sm:140,md:180,l:220,xl:280,xxl:500},a=3600,s=86400,r=[{minLimit:350*s,secs:7*s,unit:"week"},{minLimit:50*s,secs:s,unit:"day"},{minLimit:13*s,secs:21600,unit:"hour"},{minLimit:5*s,secs:10800,unit:"hour"},{minLimit:136800,secs:a,unit:"hour"},{minLimit:61200,secs:1800,unit:"minute"},{minLimit:28800,secs:600,unit:"minute"},{minLimit:10800,secs:300,unit:"minute"},{minLimit:2280,secs:60,unit:"minute"},{minLimit:780,secs:30,unit:"second"},{minLimit:420,secs:10,unit:"second"},{minLimit:300,secs:5,unit:"second"},{minLimit:1,secs:1,unit:"second"}]},3322:function(e,n,t){t.d(n,{CE:function(){return x},Cf:function(){return L},Eq:function(){return I},FF:function(){return H},Hv:function(){return P},I_:function(){return F},KO:function(){return w},T2:function(){return S},WO:function(){return A},ZQ:function(){return C},e6:function(){return M},fg:function(){return E},kU:function(){return O},mO:function(){return q},tD:function(){return T}});t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(93433),i=t(45987),a=t(29439),s=t(4942),r=(t(41539),t(88674),t(2707),t(85827),t(25387),t(2490),t(72608),t(47941),t(21249),t(57640),t(9924),t(67294)),l=t(89250),c=t(4480),d=t(95248),u=t(74059),m=t(37518),h=t(78710),p=t(81732),g=t(4808),f=["key"],b=["key"];function y(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function _(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?y(Object(t),!0).forEach((function(n){(0,s.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var w=function(e){var n,t=(0,u.th)(),o=(0,m.UL)(),i=(0,c.$P)((0,p.GQ)({spaceId:t,roomId:o,extraKey:e})),a=(0,c._8)((function(n){var i=n.refresh;return function(){return i((0,p.GQ)({spaceId:t,roomId:o,extraKey:e}))}}),[t,o,e]);return{loaded:"loading"!==i.state,value:null===(n=i.contents)||void 0===n?void 0:n.data,hasError:"hasError"===i.state,refresh:a}},v=[],T=(0,c.CG)({key:"fnState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,p.ZP)(n));return t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,o){(0,e.set)((0,p.ZP)(n),(function(e){return t?_(_({},e),{},(0,s.Z)({},t,o)):_(_({},e),o)}))}}}),k={extraKey:"fn"},x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k,n=(0,d.tk)("selected",_({defaultValue:v},e));return(0,a.Z)(n,1)[0]},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.D0)("selected",_({defaultValue:v},e))},C=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:k).key;return(0,c.sJ)(T({id:e,key:n}))}(x(e),e)},F=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:k).key;return(0,c.Zl)(T({id:e,key:n}))}(x(e),e)},q=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return[C(e),F(e)]},S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.tk)("isPolling",e)},D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.Sf)("isPolling",e)},A=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return[S(e),D(e)]},M=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.tk)("pollingInterval",e)},N=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return(0,d.Sf)("pollingInterval",e)},H=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k;return[M(e),N(e)]},E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k,n=e.key,t=(0,i.Z)(e,f),o=x(t);return(0,d.D0)(n,{extraKey:"".concat(o||t.extraKey,"Settings")})},O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:k,n=e.key,t=(0,i.Z)(e,b),o=x(t);return(0,d.D0)(n,{extraKey:"".concat(o||t.extraKey,"Filters")})},I=function(e){var n=(0,l.s0)(),t=function(){var e=(0,m.A3)();return e&&"".concat(e,"/functions")}();return(0,r.useCallback)((function(){n(t,{state:{nodeId:arguments.length>0&&void 0!==arguments[0]?arguments[0]:e}})}),[t,n])},R=(0,c.CG)({key:"feedFacetsSelector",get:function(e){return function(){return e?(0,g.g3)():Promise.resolve({data:{}})}}}),L=function(e){var n=(0,u.th)(),t=(0,h.Ly)(n),i=C({extraKey:e}),a=i.loading,s=i.loaded,l=i.aggregations,d=(0,c.$P)(R(!t&&"feed"===e));return(0,r.useMemo)((function(){var e;if("hasValue"!==d.state||!s)return[];if(!l)return[];if(Array.isArray(l))return l.reduce((function(e,n){return e.push(_(_({},n),{},{options:(0,o.Z)(n.options).sort((function(e,n){return n.count-e.count}))})),e}),[]).sort((function(e,n){return e.order-n.order}));var n=(null===d||void 0===d||null===(e=d.contents)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.facets)||{};return Object.keys(n).sort((function(e,t){return n[e].order-n[t].order})).reduce((function(e,t){var o,i=n[t],a=i.display_name,s=i.field;return null!==(o=l[t])&&void 0!==o&&o.buckets?(e.push({id:t,name:a,options:l[t].buckets.map((function(e){var n,t;return{id:e.key,name:(null===(n=d.contents.data.fields)||void 0===n||null===(n=n[s])||void 0===n?void 0:n[e.key])||e.key,count:(null===(t=e.hits)||void 0===t?void 0:t.doc_count)||0}}))}),e):e}),[])}),[e,t,d.state,s,a])}},55436:function(e,n,t){t.d(n,{BZ:function(){return c},Jw:function(){return s},Ol:function(){return l},kl:function(){return r}});t(54678),t(92222),t(69826),t(41539),t(31672),t(2490),t(59461);var o=t(67294),i=t(89405),a=t(85672),s=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.decimalPoints,o=n.defaultValue;return null===e?void 0===o?"":o:isNaN(t)?e:parseFloat(e).toFixed(t)},r=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.defaultValue,o=void 0===t?"":t,i=n.usec;if(void 0!==i&&i&&(e=e?Math.floor(e/1e3):e),null===e)return o;var a=Math.floor(e/86400);e-=24*a*3600;var s=Math.floor(e/3600);e-=3600*s;var r=Math.floor(e/60);return"".concat(a,"d ").concat(s,"h ").concat(r,"m")},l=function(){var e=(0,i.rA)(),n=e.localeTimeString,t=e.localeDateString;return(0,o.useCallback)((function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=o.defaultValue,a=void 0===i?"":i,s=o.usec;void 0!==s&&s&&(e=e?Math.floor(e/1e3):e);var r=new Date(e);return isNaN(r.valueOf())?a:"".concat(t(r,{long:!1})," ").concat(n(r,{secs:!0}))}),[])},c=function(e,n){return a.Ih.find((function(t){var o=t.minLimit;return function(e,n){return e<0?Math.abs(n-e):(n-e)/1e3}(e,n)>=o}))}},67996:function(e,n,t){t.d(n,{Z:function(){return $}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(67294),a=t(34885),s=t(87462),r=t(45987),l=(t(9653),t(60677)),c=t(57509),d=t(91008),u=t(57387),m=t(668),h=t(46189),p=["level"],g=["children","href"],f=["content"],b=["ordered","children"],y=["children"],_=l.default.article.withConfig({displayName:"nodes__StyledArticle",componentId:"sc-z8xzec-0"})(["padding-right:8px;padding-bottom:16px;"]),w=l.default.p.withConfig({displayName:"nodes__StyledParagraph",componentId:"sc-z8xzec-1"})(["margin-top:14px;line-height:1.5;"]),v=(0,l.default)(u.ZP).withConfig({displayName:"nodes__StyledCommand",componentId:"sc-z8xzec-2"})(["padding:8px;padding-right:32px;margin-top:8px;"]),T=l.default.ol.withConfig({displayName:"nodes__OrderedList",componentId:"sc-z8xzec-3"})(["list-style:roman;padding-left:16px;line-height:2;"]),k=l.default.ul.withConfig({displayName:"nodes__UnorderedList",componentId:"sc-z8xzec-4"})(['list-style-image:url("','/img/list-style-image.svg");padding-left:16px;line-height:2;'],h.Z.assetsBaseURL),x={document:{render:_},heading:{render:function(e){var n=e.level,t=void 0===n?1:n,o=(0,r.Z)(e,p),a={1:c.H1,2:c.H2,3:c.H3,4:c.H4,5:c.H5,6:c.H6}[t]||c.H1,l=t<=3?6-t:2;return i.createElement(a,(0,s.Z)({margin:[l,0,2,0]},o))},attributes:{id:{type:String},level:{type:Number}}},paragraph:{render:w},link:{render:function(e){var n=e.children,t=e.href,o=(0,r.Z)(e,g);return i.createElement(d.Z,(0,s.Z)({href:t,rel:"noopener noreferrer",target:"_blank"},o),n)},attributes:{href:{type:String}}},code:{render:function(e){var n=e.content,t=(0,r.Z)(e,f);return i.createElement(u.ZM,(0,s.Z)({as:"span"},t),n)},attributes:{content:{type:String}}},fence:{render:v,attributes:{content:{type:String}}},list:{render:function(e){var n=e.ordered,t=e.children,o=(0,r.Z)(e,b),a=n?T:k;return i.createElement(a,o,t)},attributes:{ordered:{type:Boolean}}},table:{render:function(e){var n=e.children,t=(0,r.Z)(e,y);return i.createElement(m.AB,t,n)}}},P=function(e){var n=e.summary,t=void 0===n?"":n,o=e.open,a=void 0!==o&&o,s=e.children;return i.createElement(c.Flex,{margin:[2,0,0,0]},i.createElement("details",{open:a},i.createElement("summary",null,i.createElement(c.Text,{strong:!0},t)),s))},C=t(29439),F=(t(21249),t(57640),t(9924),t(88674),t(66342),t(62962),t(23748),(0,l.default)(c.Flex).attrs({column:!0}).withConfig({displayName:"styled__StyledTerminalCommand",componentId:"sc-3zs5xg-0"})(["position:relative;top:-1px;color:",";background:",";border:1px solid ",';cursor:pointer;overflow-wrap:anywhere;white-space:pre-wrap;padding:8px 16px 16px 8px;width:100%;font-family:"Courier New",Courier,monospace;font-weight:bold;letter-spacing:0.09px;line-height:16px;font-size:14px;word-break:break-word;overflow-y:auto;margin-top:',";"],(0,c.getColor)("primary"),(0,c.getColor)("terminalGreen"),(0,c.getColor)("terminalGreenBorder"),(function(e){return e.noMargin?"0":"16px"}))),q=(0,l.default)(c.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-3zs5xg-1"})(["display:flex;align-self:flex-end;cursor:pointer;position:absolute;bottom:8px;right:8px;"]),S=t(19480),D=t(52428),A=["children"],M=function(e){var n=e.children,t=(0,r.Z)(e,A),o=(0,i.useMemo)((function(){return(0,S.$O)(n)}),[n]);return i.createElement(F,(0,s.Z)({onClick:(0,D.J)(o,{text:"Config copied to your clipboard."})},t),n,i.createElement(q,{name:"copy",size:"small",color:"textLite",onClick:(0,D.J)(o,{text:"Config copied to your clipboard."})}))},N=function(e){var n=e.children,t=(0,i.useState)(0),o=(0,C.Z)(t,2),a=o[0],s=o[1],r=i.Children.toArray(n).map((function(e){return e.props}));return i.createElement(c.Flex,{column:!0,width:"100%",margin:[4,0,0,0]},i.createElement(c.Flex,{border:{side:"bottom",size:"1px",color:"borderSecondary"},padding:[0,4]},i.createElement(c.Tabs,{selected:a,onChange:s},r.map((function(e){var n=e.label;return i.createElement(c.Tab,{key:n,label:i.createElement(c.Text,null,n),minWidth:"auto",maxWidth:"auto",padding:[1,4],background:"mainBackground",small:!0})})))),i.createElement(c.Flex,{flex:!0},i.createElement(M,{noMargin:!0},r[a].children)))},H=t(95248),E=t(89250),O=t(74059),I=t(10034),R=t(67034),L=function(e){var n=e.children,t=e.onClick;return i.createElement(c.Box,{as:"a",cursor:"pointer",onClick:t},n)},B=function(e){var n=e.categoryId,t=e.navigateToSettings,o=e.children,a=(0,E.s0)(),s=(0,H.I0)("selectedIntegrationCategory"),r=(0,C.Z)(s,2)[1],l=(0,O.uk)(),c=(0,I.wC)().pushCategory,d=(0,R.Z)(),u=(0,i.useCallback)((function(){t?(r("deploy.docker-kubernetes"),a({pathname:"/spaces/".concat(l,"/settings/integrations"),replace:!0})):c(d(n))}),[c,n,d,t]);return i.createElement(L,{onClick:u},o)},U=(0,i.memo)(B),j=(t(74916),t(15306),t(68757),t(69826),t(31672),t(59461),t(13477)),G=t(33335),z=function(e){var n=e.showClaimingOptions,t=e.command,o=void 0===t?"":t,i=e.claimToken,a=void 0===i?"":i,s=e.claimUrl,r=void 0===s?"":s,l=e.claimRooms,c=void 0===l?"":l;if(n)return o.replaceAll(/{% if \$showClaimingOptions %}\n?/gi,"").replaceAll(/{% \/if %}\n?/gi,"").replaceAll(/{% claim_token %}/gi,a).replaceAll(/{% claim_url %}/gi,r).replaceAll(/{% \$claim_rooms %}/gi,c);return o.replaceAll(/\{%\s*if\s*\$showClaimingOptions\s*%\}[\s\S]*?\{%\s*\/if\s*%\}\n?/g,"")},Y=function(e){var n,t=e.methods,o=e.isNightly,a=e.claimToken,s=void 0===a?"":a,r=e.claimUrl,l=void 0===r?"":r,d=e.claimRooms,u=void 0===d?"":d,m=o?"nightly":"stable",h=function(){var e=(0,j.Iy)("isAnonymous"),n=(0,G.gI)("node:Create");return{showClaimingOptions:!e&&n}}().showClaimingOptions;return t.length?h&&!s?i.createElement(c.Flex,{padding:[8,0]},i.createElement(c.Text,null,"Loading token...")):t.length>1?i.createElement(N,null,t.map((function(e){var n=e.method,t=(e.commands.find((function(e){return e.channel==m}))||{}).command;return i.createElement(c.Tab,{key:n,label:n},z({showClaimingOptions:h,command:t,claimToken:s,claimUrl:l,claimRooms:u}))}))):i.createElement(M,null,z({showClaimingOptions:h,command:((null===(n=t[0])||void 0===n?void 0:n.commands.find((function(e){return e.channel==m})))||{}).command||"",claimToken:s,claimUrl:l,claimRooms:u})):null},X={nodes:x,tags:{details:{render:P,attributes:{summary:{type:String,default:""},open:{type:Boolean,default:!1}}},tabs:{render:N},tab:{render:c.Tab,attributes:{label:{type:String,default:""}}},terminal:{render:M},goToCategory:{render:U,attributes:{categoryId:{type:String,default:""},navigateToSettings:{type:Boolean,default:!1}}},command:{render:Y,attributes:{methods:{type:Array,default:[]},isNightly:{type:Boolean,default:!1},claimToken:{type:String,default:""},claimUrl:{type:String,default:""},claimRooms:{type:String,default:""}}}}};function Z(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function W(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?Z(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):Z(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var K=function(e){var n=e.config,t=void 0===n?{}:n,o=e.children;return i.createElement(a.Z,{transformConfiguration:W(W({},X),t)},o)},$=(0,i.memo)(K)},26017:function(e,n,t){t(74916),t(4723);var o=t(67294),i=t(89250),a=t(57509),s=t(67996),r=t(74059),l=t(33582),c=t(37518),d=t(53338);n.Z=function(e){var n=e.integration,t=void 0===n?{}:n,u=e.isNightly,m=e.rooms,h=void 0===m?[]:m,p=e.navigateToSettings,g=t.deployContent,f=t.methods,b=(0,r.th)(),y=function(){var e=(0,i.TH)().pathname.match(/rooms\/(.*?)\/integrate-anything/);return(null===e||void 0===e?void 0:e.length)>=2?e[1]:void 0}()||d.i_,_=(0,c.HM)(b,y),w=(0,l.Z)(b),v=window.envSettings.apiUrl,T=h.length?h.join(","):_,k=(0,o.useMemo)((function(){var e;return{variables:{methods:f,isNightly:u,claimToken:null===w||void 0===w||null===(e=w[0])||void 0===e?void 0:e.token,claimUrl:v,claimRooms:T,navigateToSettings:p}}}),[f,u,w,v,T,p]);return o.createElement(a.Flex,{width:"100%",column:!0,gap:4,padding:[4,0,0,0]},o.createElement(s.Z,{config:k},g))}},35819:function(e,n,t){t(82526),t(41817);var o=t(67294),i=t(57509),a=t(91008),s=t(82351),r=t(50308),l=t.n(r),c=t(35253),d={left:"stable",right:"nightly"},u=function(e){var n=e.right,t=c.J[d[n?"right":"left"]]||{},a=t.title,r=t.description;return o.createElement(s.Z,{content:r,align:"bottom"},o.createElement(i.Text,{padding:n?[0,0,0,1]:[0,1,0,0]},a))};n.Z=function(e){var n=e.isNightly,t=e.toggleNightly,s=void 0===t?l():t;return o.createElement(i.Flex,{column:!0,gap:1},o.createElement(a.Z,{href:"https://learn.netdata.cloud/docs/getting-started/install-netdata#nightly-vs-stable-releases",rel:"noopener noreferrer",target:"_blank"},o.createElement(i.Flex,{alignItems:"center",gap:1},o.createElement(i.Text,{color:"primary"},"Updates channel"),o.createElement(i.Icon,{color:"primary",name:"goToNode",width:"18px",height:"18px"}))),o.createElement(i.Toggle,{labelLeft:"Stable",labelRight:"Nightly",Label:u,colored:!1,checked:n,disabled:!1,onChange:s}))}},41898:function(e,n,t){t.d(n,{vE:function(){return L},n5:function(){return X},xN:function(){return Z},Kl:function(){return B},p1:function(){return Y},O_:function(){return U},RV:function(){return z},DW:function(){return R},ON:function(){return G},JZ:function(){return j}});var o=t(29439),i=t(87462),a=t(67294),s=t(50308),r=t.n(s),l=t(57509),c=t(27622),d=t(60677),u=t(74059),m=t(20428),h=t(46667),p=t(54131),g=function(e){var n=e.name,t=e.onEdit,o=void 0===t?r():t;return a.createElement(l.Flex,{alignItems:"center",gap:2},a.createElement(l.TextBig,null,n),a.createElement(l.Button,{icon:"pencilOutline",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:o}))},f=(0,d.default)(l.Flex).withConfig({displayName:"spaceInfo__StyledWrapper",componentId:"sc-166ce7m-0"})(["margin-top:-3px !important;margin-bottom:-3px !important;"]),b=function(e){var n=e.name,t=e.setName,i=void 0===t?r():t,s=e.onSave,c=void 0===s?r():s,d=e.onCancel,u=void 0===d?r():d,m=e.isLoading,h=(0,a.useState)(),g=(0,o.Z)(h,2),b=g[0],y=g[1],_=(0,a.useMemo)((function(){return(0,p.x3)(n)}),[n]);return a.createElement(f,{gap:2},a.createElement(l.TextInput,{value:n,onChange:function(e){y(!0),i(e.target.value)},disabled:m,size:"tiny",error:p.Qj[_],isDirty:b,instantFeedback:"all"}),a.createElement(l.Button,{label:"Save",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:c,disabled:m||!!_}),a.createElement(l.Button,{label:"Cancel",flavour:"borderless",iconColor:"text",iconSize:"small",padding:[0],onClick:u,disabled:m}))},y=function(){var e=(0,u.OS)(),n=e.id,t=e.name,i=(0,m.Z)(n),s=(0,h.Z)(),r=(0,o.Z)(s,4),l=r[0],c=r[2],d=r[3],p=(0,h.Z)(),f=(0,o.Z)(p,4),y=f[0],_=f[2],w=f[3],v=(0,a.useState)(t),T=(0,o.Z)(v,2),k=T[0],x=T[1],P=(0,a.useCallback)((function(){d(),w()}),[]),C=(0,a.useCallback)((function(){c(),i({name:k},{onSuccess:P,onFail:d})}),[k]);return y?a.createElement(b,{name:k,setName:x,onSave:C,onCancel:w,isLoading:l}):a.createElement(g,{name:t,onEdit:_})},_=t(82351),w=t(89149),v=t(91008),T=t(37518),k=t(33937),x=t(33335),P=(t(92222),t(89250)),C=t(46189),F={light:"primary",dark:"white",unspecified:"primary"},q=function(e){var n={icon:"add_user",flavour:"borderless",onClick:e.onClick,label:"Invite your team"};return(0,x.gI)("space:InviteUser")?a.createElement(l.Button,n):a.createElement(_.Z,{content:"You can't invite a user with your current permissions"},a.createElement(l.Flex,null,a.createElement(l.Button,(0,i.Z)({},n,{disabled:!0}))))},S=function(e){var n=e.claimedNodes,t=e.onClick,o=void 0===t?r():t,i=(0,x.gI)("node:Create"),s=(0,a.useMemo)((function(){return{onClick:o,disabled:!i}}),[i]),c=n.length>0?"Connect more!":"Connect a node";return i?a.createElement(v.Z,s,c):a.createElement(_.Z,{content:"You don't have permission to connect new nodes. Please contact an administrator to do it"},a.createElement(l.Box,null,a.createElement(v.Z,s,c)))},D=function(e){var n=e.claimedNodes,t=e.onConnectClick,o=void 0===t?r():t;return a.createElement(l.Flex,{gap:2},a.createElement(S,{claimedNodes:n,onClick:o}),a.createElement(l.Text,null,"to get started"))},A=function(e){var n=e.claimedNodes,t=e.onConnectClick,o=void 0===t?r():t;return a.createElement(l.Flex,{gap:2},a.createElement(l.Text,null,"You have connected ",n.length," node",n.length<=1?"":"s","."),a.createElement(S,{claimedNodes:n,onClick:o}))},M=(0,a.memo)((function(e){var n=e.claimedNodes,t=e.onConnectClick,o=void 0===t?r():t,i=(0,a.useMemo)((function(){return{claimedNodes:n,onConnectClick:o}}),[n,o]);return a.createElement(l.Flex,{gap:2},a.createElement(l.Text,null,"This is your new space"),n.length>0?a.createElement(A,i):a.createElement(D,i))})),N=function(e){var n=e.claimedNodes,t=void 0===n?[]:n,i=e.onInvite,s=void 0===i?r():i,d=(0,k.R)("theme"),m=(0,T.UL)(),p=(0,h.Z)(),g=(0,o.Z)(p,4),f=g[0],b=g[2],_=g[3],v=function(){var e=(0,P.s0)(),n=(0,u.uk)(),t=(0,T.vf)(),o=C.Z.defaultRoomView;return(0,a.useCallback)((function(){e("/spaces/".concat(n,"/rooms/").concat(t,"/").concat(o),{replace:!0})}),[])}(),x=t.length>0;return a.createElement(a.Fragment,null,a.createElement(c.Z,{height:"66px",width:"66px",color:F[d]}),a.createElement(l.H1,{strong:!1},"Welcome to Netdata!"),a.createElement(M,{claimedNodes:t,onConnectClick:function(e){e.preventDefault,b()}}),a.createElement(y,null),a.createElement(l.Flex,{gap:4},a.createElement(q,{onClick:s}),a.createElement(l.Button,{icon:"rocket",flavour:x?"default":"borderless",onClick:v,label:x?"Launch space":"Node Required for Launch",disabled:!x})),f&&a.createElement(w.Z,{onClose:_,room:m}))},H=function(){return a.createElement(a.Fragment,null,a.createElement(l.H1,{strong:!1},"Integrations Made Easy!"),a.createElement(l.Text,null,"Unleash the Power of Connected Systems"))},E=t(26017),O=t(67996),I=function(e){var n=e.integration,t=void 0===n?{}:n;return a.createElement(l.Flex,{width:"100%",column:!0,gap:2,padding:[4,0,0,0]},a.createElement(O.Z,null,t.alerts))},R="deploy.operating-systems",L=34,B="data-collection",U="deploy-kubernetes",j={deploy:"rocket","data-collection":"collect",notify:"alarmFilled",export:"importExport"},G={deploy:E.Z,"alert-notifications":I},z={homePage:"homePage",settingsPage:"settingsPage",addNodesModal:"addNodesModal"},Y=z.homePage,X={homePage:{headerContent:N},settingsPage:{headerContent:H},addNodesModal:{headerContent:null}},Z={homePage:{header:{height:284,wrapperProps:{padding:[4,0]}},search:{wrapperProps:{width:"500px",margin:[0]}},cncf:{height:80},categoryCharacterWidth:9},settingsPage:{header:{height:210,wrapperProps:{padding:[4,0]}},search:{wrapperProps:{width:"500px",margin:[0]}},cncf:{height:0},categoryCharacterWidth:9},addNodesModal:{header:{height:126,wrapperProps:{width:"100%",padding:[4]}},search:{wrapperProps:{width:"100%",margin:[0],flex:!0},inputProps:{size:"small"}},cncf:{height:16},categoryCharacterWidth:9}}},67034:function(e,n,t){t(69826),t(41539),t(31672),t(2490),t(59461);var o=t(10034);n.Z=function(){var e=(0,o.pZ)();return function(n){return e.find((function(e){return e.id==n}))}}},10034:function(e,n,t){t.d(n,{pZ:function(){return N},xh:function(){return A},mk:function(){return D},Oi:function(){return j},wC:function(){return M},RG:function(){return I},dG:function(){return L},lX:function(){return R},NE:function(){return O},P0:function(){return U},Si:function(){return B},Zc:function(){return E},BN:function(){return H}});var o=t(45987),i=t(4942),a=t(93433),s=t(29439),r=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(92222),t(47042),t(69826),t(31672),t(59461),t(47941),t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),l=t(4480),c=t(95248),d=(t(26699),t(32023),[{id:"deploy",name:"Deploy",description:"",most_popular:!0,priority:1,children:[{id:"deploy.operating-systems",name:"Operating Systems",description:"",most_popular:!0,priority:1,children:[]},{id:"deploy.docker-kubernetes",name:"Docker & Kubernetes",description:"",most_popular:!0,priority:2,children:[]},{id:"deploy.provisioning-systems",parent:"deploy",name:"Provisioning Systems",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection",name:"Data Collection",description:"",most_popular:!0,priority:2,children:[{id:"data-collection.other",name:"Other",description:"",most_popular:!1,priority:-1,collector_default:!0,children:[]},{id:"data-collection.ebpf",name:"eBPF",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.freebsd",name:"FreeBSD",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.containers-and-vms",name:"Containers and VMs",description:"",most_popular:!0,priority:6,children:[]},{id:"data-collection.database-servers",name:"Databases",description:"",most_popular:!0,priority:1,children:[]},{id:"data-collection.kubernetes",name:"Kubernetes",description:"",most_popular:!0,priority:7,children:[]},{id:"data-collection.notifications",name:"Incident Management",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.service-discovery-registry",name:"Service Discovery / Registry",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.web-servers-and-web-proxies",name:"Web Servers and Web Proxies",description:"",most_popular:!0,priority:2,children:[]},{id:"data-collection.cloud-provider-managed",name:"Cloud Provider Managed",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.windows-systems",name:"Windows Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.apm",name:"APM",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.hardware-devices-and-sensors",name:"Hardware Devices and Sensors",description:"",most_popular:!0,priority:4,children:[]},{id:"data-collection.macos-systems",name:"macOS Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.message-brokers",name:"Message Brokers",description:"",most_popular:!0,priority:3,children:[]},{id:"data-collection.provisioning-systems",name:"Provisioning Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.search-engines",name:"Search Engines",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems",name:"Linux Systems",description:"",most_popular:!0,priority:5,children:[{id:"data-collection.linux-systems.system-metrics",name:"System",description:"",most_popular:!0,priority:1,children:[]},{id:"data-collection.linux-systems.memory-metrics",name:"Memory",description:"",most_popular:!0,priority:3,children:[]},{id:"data-collection.linux-systems.cpu-metrics",name:"CPU",description:"",most_popular:!0,priority:2,children:[]},{id:"data-collection.linux-systems.pressure-metrics",name:"Pressure",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.network-metrics",name:"Network",description:"",most_popular:!0,priority:5,children:[]},{id:"data-collection.linux-systems.ipc-metrics",name:"IPC",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.disk-metrics",name:"Disk",description:"",most_popular:!0,priority:4,children:[]},{id:"data-collection.linux-systems.firewall-metrics",name:"Firewall",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.power-supply-metrics",name:"Power Supply",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics",name:"Filesystem",description:"",most_popular:!1,priority:-1,children:[{id:"data-collection.linux-systems.filesystem-metrics.zfs",name:"ZFS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics.btrfs",name:"BTRFS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.linux-systems.filesystem-metrics.nfs",name:"NFS",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection.linux-systems.kernel-metrics",name:"Kernel",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"data-collection.networking-stack-and-network-interfaces",name:"Networking Stack and Network Interfaces",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.synthetic-checks",name:"Synthetic Checks",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ci-cd-systems",name:"CI/CD Platforms",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ups",name:"UPS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.freebsd-systems",name:"FreeBSD Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.logs-servers",name:"Logs Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.security-systems",name:"Security Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.observability",name:"Observability",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.gaming",name:"Gaming",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.iot-devices",name:"IoT Devices",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.media-streaming-servers",name:"Media Services",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.authentication-and-authorization",name:"Authentication and Authorization",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.project-management",name:"Project Management",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.application-servers",name:"Application Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.dns-and-dhcp-servers",name:"DNS and DHCP Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.mail-servers",name:"Mail Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.processes-and-system-services",name:"Processes and System Services",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.storage-mount-points-and-filesystems",name:"Storage, Mount Points and Filesystems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.systemd",name:"Systemd",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.telephony-servers",name:"Telephony Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.vpns",name:"VPNs",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.blockchain-servers",name:"Blockchain Servers",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.distributed-computing-systems",name:"Distributed Computing Systems",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.generic-data-collection",name:"Generic Data Collection",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.p2p",name:"P2P",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.snmp-and-networked-devices",name:"SNMP and Networked Devices",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.system-clock-and-ntp",name:"System Clock and NTP",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.nas",name:"NAS",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.api-gateways",name:"API Gateways",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.task-queues",name:"Task Queues",description:"",most_popular:!1,priority:-1,children:[]},{id:"data-collection.ftp-servers",name:"FTP Servers",description:"",most_popular:!1,priority:-1,children:[]}]},{id:"export",name:"exporters",description:"Exporter Integrations",most_popular:!0,priority:4,children:[]},{id:"notify",name:"notifications",description:"Notification Integrations",most_popular:!0,priority:3,children:[{id:"notify.agent",name:"Agent Dispatched Notifications",description:"",most_popular:!0,priority:2,children:[]},{id:"notify.cloud",name:"Centralized Cloud Notifications",description:"",most_popular:!0,priority:1,children:[]}]}]),u=[{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:!1},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:!1},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:!1},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:!0},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:!0},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:!0},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:!0},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:!0},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:!0},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:!0},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:!0},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!0},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:!1,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:!0},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:!0},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:!0},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:!1},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:!1},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:!1},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:!0},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!0},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:!1},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:!1},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:!0},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:!0},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:!0},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:!1},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:!1},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:!1,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:!0},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:!1},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:!0},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:!0},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:!1,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:!0},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_\xb5s, 10_\xb5s, 20_\xb5s, 40_\xb5s, 80_\xb5s, 160_\xb5s, 320_\xb5s, 640_\xb5s, 1280_\xb5s, 2560_\xb5s, 5120_\xb5s, 10240_\xb5s, 20480_\xb5s, 40960_\xb5s, +Inf | observes/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent | 5_\xb5s, 10_\xb5s, 20_\xb5s, 40_\xb5s, 80_\xb5s, 160_\xb5s, 320_\xb5s, 640_\xb5s, 1280_\xb5s, 2560_\xb5s, 5120_\xb5s, 10240_\xb5s, 20480_\xb5s, 40960_\xb5s, +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:!0},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:!0},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:!0},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:!1},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:!1},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:!1},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", "<MONGODB_ADMIN_PASSWORD>")\n ```\n\n- Create a user:\n\n ```bash\n db.createUser({\n "user":"netdata",\n "pwd": "<UNIQUE_PASSWORD>",\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:!0},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:!0},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:!1},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:!0},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:!1},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:!0},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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" "<PASSWORD>"\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:!1},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<details>\n<summary>phpDaemon configuration</summary>\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\n<?php\n\nclass MyAppResolver extends \\PHPDaemon\\Core\\AppResolver {\n public function getRequestRoute($req, $upstream) {\n if (preg_match('~^/(ServerStatus|FullStatus)/~', $req->attrs->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\n<?php\nnamespace PHPDaemon\\Applications;\n\nclass FullStatus extends \\PHPDaemon\\Core\\AppInstance {\n public function beginRequest($req, $upstream) {\n return new FullStatusRequest($this, $upstream, $req);\n }\n}\n```\n\n```php\n// /opt/phpdaemon/conf/PHPDaemon/Applications/FullStatusRequest.php\n\n<?php\nnamespace PHPDaemon\\Applications;\n\nuse PHPDaemon\\Core\\Daemon;\nuse PHPDaemon\\HTTPRequest\\Generic;\n\nclass FullStatusRequest extends Generic {\n public function run() {\n $stime = microtime(true);\n $this->header('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</details>\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:!1},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:!1},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:!1},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:!1},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 <INSTALL_PREFIX>/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:!1},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:!0},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:!1},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:!1},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1,community:!0},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:!1},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:!0},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:!1},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:!0},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:!1},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:!0},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:!1},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:!0},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:!0},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 | %<st | Total size of reply sent to client (after adaptation). |\n| req_method | %rm | Request method (GET/POST etc). |\n| hier_code | %Sh | Squid hierarchy status (DEFAULT_PARENT etc). |\n| server_address | %<a | Server IP address of the last server or peer connection. |\n| server_address | %<A | Server FQDN or peer name. |\n| mime_type | %mt | MIME content type. |\n\nIn addition, to make `Squid` [native log format](https://wiki.squid-cache.org/Features/LogFormat#Squid_native_access.log_format_in_detail) csv parsable, squidlog understands these groups of codes:\n\n| field | squid format code | description |\n|-------------|-------------------|------------------------------------|\n| result_code | %Ss/%>Hs | Cache code and http code. |\n| hierarchy | %Sh/%<a | Hierarchy code and server address. |\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\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 Squid access log file. | | True |\n| exclude_path | Path to exclude. | | False |\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. | | True |\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.regexp_config | RegExp log parser config. | | False |\n| parser.regexp_config.pattern | RegExp pattern with named groups. | | True |\n\n##### parser.log_type\n\nWeblog supports 3 different log parsers:\n\n| Parser type | Description |\n|-------------|-------------------------------------------|\n| csv | A comma-separated values |\n| ltsv | [LTSV](http://ltsv.org/) |\n| regexp | Regular expression with named groups |\n\nSyntax:\n\n```yaml\nparser:\n log_type: csv\n```\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.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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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<details>\n<summary>See health statuses</summary>\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</details>\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:!1},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:!0},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<details>\n<summary>Example (all not related debug lines were removed)</summary>\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\xb5s\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\xb5s\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\xb5s\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</details>\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:!1,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:!1},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:!1,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: <value>\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:!1,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: <value>\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:!1,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: <value>\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:!1,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: <value>\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:!1,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: <value>\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:!0,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: <value>\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:!1,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:!1,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:!1,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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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 --\x3e Exim Configuration Manager --\x3e 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:!1},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:!1},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:!1},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, <omitted for brevity>}\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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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 <PASSWORD>;\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:!1},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}&current_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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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 <https://linux.die.net/man/8/smartd> 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:!1},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:!1},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:!1},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:!1},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: <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: <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:!1},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:!1},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: '<name-of-varnishd-instance>'\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:!1},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:!1},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:!1},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:!1},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:!1},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:!1},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:!1,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:!1,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:!1,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:!1,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:!1,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:!1,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:!0,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:!1,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:!0,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:!0,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:!0,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:!0,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:!1,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:!1,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:!1,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:!1,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:!1,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:!0,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://<hostname>\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` --\x3e `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 <details>\n <summary>Netdata CA certificate</summary>\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 </details>\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 <VirtualHost *:443>\n # ... existing SSL configuration for server authentication ...\n SSLVerifyClient require\n SSLCACertificateFile "/path/to/Netdata_CA.pem"\n </VirtualHost>\n <Directory /var/www/>\n Require expr "%{SSL_CLIENT_S_DN_CN} == \'app.netdata.cloud\'"\n # ... existing directory configuration ...\n </Directory>\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 --\x3e Tags --\x3e 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="<your_incoming_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"}],m=t(86348),h=t(85373),p=t(58591),g=t(41898);function f(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function b(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?f(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):f(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var y=(0,l.cn)({key:"integrationsCategoriesAtom",default:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).hideEmptyCategories,n=void 0===e||e,t=(0,m.bu)(d),o=(0,h.tE)(u),i=[];if(n){var a=(0,m.GP)(o,(function(e){return t.find((function(n){return n.id==e}))}),t);i=t.filter((function(e){var n=e.id;return a.includes(n)}))}else i=t;return i}()}),_=(0,l.cn)({key:"topLevelIntegrationsCategoriesAtom",default:(0,l.nZ)({key:"topLevelIntegrationsCategoriesState",get:function(e){var n=e.get;return(0,m.gP)(n(y))}})}),w=(0,l.cn)({key:"integrationsNavigationHistoryAtom",default:(0,l.nZ)({key:"integrationsNavigationHistoryState",get:function(e){var n=e.get;return function(e){var n,t=e.categories,o=e.integrations,i=(0,p.m$)(),a=i.selectedIntegrationCategory,s=i.selectedIntegration,r=t.find((function(e){return e.id==(a||g.DW)})),l=(0,m.QQ)({category:r,getCategoryById:function(e){return t.find((function(n){return n.id==e}))}}).tree,c=null===(n=o.filter((function(e){return e.id==s})))||void 0===n?void 0:n[0],d=l.filter(Boolean).map((function(e,n){return b(b({},e),{},{type:"category",level:n+1})}));return c&&d.push(b(b({},c),{},{type:"integration"})),d}({categories:n(y),integrations:n(v)})}})}),v=(0,l.cn)({key:"integrationsNormalized",default:(0,l.nZ)({key:"integrationsNormalizedState",get:function(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,h.tE)(u,e)}((0,e.get)(y))}})}),T=(0,l.cn)({key:"integrationsSearchTerm",default:""}),k=(0,l.cn)({key:"integrationsHistoryBeforeSearch",default:null}),x=(0,l.cn)({key:"integrationsModalOpenAtom",default:"true"==(0,p.m$)().integrationsModalOpen}),P=t(67034),C=["flattenedCategory"];function F(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function q(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?F(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):F(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var S=(0,l.nZ)({key:"integrationsQuickStart",get:function(e){var n=(0,e.get)(v).filter((function(e){return e.quickStart>=0}));return(0,h.mi)(n)}}),D=function(){return(0,l.sJ)(k)},A=function(){return(0,l.FV)(k)},M=function(){var e=N(),n=(0,P.Z)(),t=(0,l.FV)(w),i=(0,s.Z)(t,2),d=i[0],u=i[1],h=(0,l.rb)(k),p=(0,c.I0)("selectedIntegrationCategory"),f=(0,s.Z)(p,2)[1],b=(0,c.I0)("selectedIntegration"),y=(0,s.Z)(b,2)[1],_=(0,c.I0)("selectedIntegrationTab"),v=(0,s.Z)(_,2)[1],T=(0,r.useCallback)((function(e){var t=(0,m.QQ)({category:e,getCategoryById:n}).parents,o=[].concat((0,a.Z)(t),[e]).map((function(e,n){return q(q({},e),{},{type:"category",level:n+1})}));u(o),y(""),v(""),h()}),[e,u]),x=(0,r.useCallback)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.flattenedCategory,i=(0,o.Z)(e,C),s=t||(i.categories||[])[0],r=s.categoryId||s.id,l=n(r),c=(0,m.QQ)({category:l,getCategoryById:n}).parents,d=[].concat((0,a.Z)(c),[l]).map((function(e,n){return q(q({},e),{},{type:"category",level:n+1})}));u([].concat((0,a.Z)(d),[q(q({},i),{},{type:"integration"})])),v(""),h()}),[]),F=(0,r.useCallback)((function(){d.length>0&&(u(d.slice(0,d.length-1)),h())}),[d,u]),S=(0,r.useMemo)((function(){var e=d[d.length-1];return"integration"==(null===e||void 0===e?void 0:e.type)?e:null}),[d]),D=(0,r.useMemo)((function(){var e=d.filter((function(e){return"category"==e.type}))||[];return e.length?e[e.length-1]:null}),[d]),A=(0,r.useCallback)((function(){var n=e.find((function(e){return e.id==g.DW})),t=[e.find((function(e){return e.id==n.parentId})),n].filter(Boolean).map((function(e,n){return q(q({},e),{},{type:"category",level:n+1})}));u(t),h()}),[e,u]),M=(0,r.useMemo)((function(){return null===D||void 0===D?void 0:D.level}),[D]);return(0,r.useEffect)((function(){null!==D&&void 0!==D&&D.id&&f(D.id)}),[D]),(0,r.useEffect)((function(){null!==S&&void 0!==S&&S.id&&y(S.id)}),[S]),{history:d,level:M,selectedCategory:D,selectedIntegration:S,pushCategory:T,pushIntegration:x,pop:F,reset:A,setHistory:u}},N=function(){return(0,l.sJ)(y)},H=function(){return(0,l.sJ)(_)},E=function(){var e=M().selectedCategory,n=N(),t=O();return(0,m.KU)({category:e,integrations:t,categories:n})},O=function(){return(0,l.sJ)(v)},I=function(){return(0,l.sJ)(S)},R=function(){return(0,l.sJ)(T)},L=function(){return(0,l.FV)(T)},B=function(){return(0,l.rb)(T)},U=function(){var e=B(),n=M().reset;return function(){e(),n()}},j=function(){return(0,l.FV)(x)}},668:function(e,n,t){t.d(n,{AB:function(){return h},DF:function(){return r},J3:function(){return s},MJ:function(){return l},SZ:function(){return m},ZL:function(){return d},Zb:function(){return c},_K:function(){return u},pV:function(){return g},u6:function(){return p}});var o=t(60677),i=t(57509),a=t(19480),s=o.default.div.withConfig({displayName:"styled__LayoutGrid",componentId:"sc-1kju9s3-0"})(["display:grid;grid-template-columns:"," auto;column-gap:32px;padding:0 24px;height:calc( 100vh - ","px - ","px );@media screen and ","{grid-template-columns:"," auto;}@media screen and ","{grid-template-columns:"," auto;}"],(function(e){return e.isSidebarCollapsed?"".concat(60,"px"):"35%"}),(function(e){return(0,a.CF)(e.flavour)}),(function(e){return(0,a.CY)(e.flavour)}),i.breakpoints.laptop,(function(e){return e.isSidebarCollapsed?"".concat(60,"px"):"30%"}),i.breakpoints.desktop,(function(e){return e.isSidebarCollapsed?"".concat(60,"px"):"25%"})),r=o.default.div.withConfig({displayName:"styled__StyledVirtualRow",componentId:"sc-1kju9s3-1"})(["display:grid;grid-template-columns:repeat(",",1fr);grid-auto-rows:","px;column-gap:16px;row-gap:16px;"],(function(e){return e.itemsPerRow}),(function(e){var n=e.rowHeight;return n>16?n-16:n})),l=(0,o.default)(i.Flex).withConfig({displayName:"styled__CategoryWrapper",componentId:"sc-1kju9s3-2"})(["cursor:pointer;&:hover{background-color:",";}"],(0,i.getColor)("integrationMenuItemHover")),c=(0,o.default)(i.Flex).withConfig({displayName:"styled__Card",componentId:"sc-1kju9s3-3"})(["background:",";img{transition:all 200ms ease-in-out;}&:hover{img{transform:scale(1.2);}}"],(0,i.getColor)("panelBg")),d=o.default.div.withConfig({displayName:"styled__CardOverlay",componentId:"sc-1kju9s3-4"})(["position:absolute;width:100%;top:0;bottom:0;filter:blur(70px);opacity:0.2;&& img{width:100%;height:100%;}"]),u=(0,o.default)(i.Icon).withConfig({displayName:"styled__CardIcon",componentId:"sc-1kju9s3-5"})(["position:absolute;top:-20px;left:-35px;transform:rotate(40deg);opacity:0.1;"]),m=(0,o.default)(i.Flex).withConfig({displayName:"styled__CardDescription",componentId:"sc-1kju9s3-6"})(["position:absolute;bottom:0;left:0;transform:translateY(100%);transition:all 200ms ease-in-out;&&.hover{transform:translateY(0);}"]),h=o.default.table.withConfig({displayName:"styled__ContentTable",componentId:"sc-1kju9s3-7"})(["width:100%;border:1px solid ",";margin-top:16px;tr:nth-child(even){background:",";}th{padding:8px 16px;background:",";}td{padding:6px;}"],(0,i.getColor)("borderSecondary"),(0,i.getColor)("mainBackground"),(0,i.getColor)("mainBackground")),p=(0,o.default)(i.PortalSidebar).withConfig({displayName:"styled__SidebarModal",componentId:"sc-1kju9s3-8"})(["width:calc(100vw - 54px);z-index:35;background:",";overflow:",";"],(0,i.getColor)("mainBackground"),(function(e){var n=e.overflow;return void 0===n?"hidden":n})),g=(0,o.default)(i.Icon).withConfig({displayName:"styled__CategoryArrow",componentId:"sc-1kju9s3-9"})(["opacity:",";"],(function(e){return e.disabled?"0":"1"}))},86348:function(e,n,t){t.d(n,{GP:function(){return x},KT:function(){return y},KU:function(){return w},Ov:function(){return f},QQ:function(){return T},XB:function(){return P},bu:function(){return g},gP:function(){return b},tu:function(){return v}});t(47941),t(82526),t(38880),t(49337),t(33321),t(69070);var o=t(29439),i=t(93433),a=t(4942),s=t(45987),r=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(15581),t(34514),t(54747),t(2707),t(57327),t(88449),t(59849),t(21249),t(57640),t(9924),t(26699),t(32023),t(69826),t(31672),t(59461),t(47042),t(66992),t(70189),t(78783),t(88921),t(96248),t(13599),t(11477),t(64362),t(15389),t(90401),t(45164),t(91238),t(54837),t(87485),t(56767),t(76651),t(61437),t(35285),t(39865),t(33948),t(91038),t(69720),t(50308)),l=t.n(r),c=t(41898),d=t(64637),u=t(19480),m=["children","most_popular"];function h(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function p(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?h(Object(t),!0).forEach((function(n){(0,a.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):h(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=function e(){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce((function(t,o){t.push(function(e){e.children;var n=e.most_popular,t=(0,s.Z)(e,m),o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return p(p({},t),{},{name:(0,d.fm)(t.name),mostPopular:n,parentId:o})}(o,n));var a=o.children||[];return t=[].concat((0,i.Z)(t),(0,i.Z)(e(a,o.id)))}),[])},f=function(){var e=[],n=[];(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(t){void 0!==t.priority&&t.priority>=0?e.push(t):n.push(t)}));var t=[],o=[];n.forEach((function(e){e.mostPopular?t.push(e):o.push(e)}));var a=(0,u.BO)("priority"),s=(0,u.Of)("name"),r=[].concat((0,i.Z)(e.sort(a)),(0,i.Z)(t.sort(s)));return{categories:[].concat((0,i.Z)(r),(0,i.Z)(o.sort(s))),popular:r,rest:o}},b=function(){return((arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])||[]).filter((function(e){return null==e.parentId}))},y=function(e){var n=e.category;return e.categories.filter((function(e){var t=e.parentId;return n.id==t}))},_=function e(n){var t=n.category,o=n.categories,i=n.allSubcategories,a=void 0===i?[]:i;return(y({category:t,categories:o})||[]).forEach((function(n){a.push(n),e({category:n,categories:o,allSubcategories:a})})),a},w=function(e){var n=e.category,t=void 0===n?{}:n,o=e.integrations,a=void 0===o?[]:o,s=e.categories;if(null==t)return[];var r=_({category:t,categories:void 0===s?[]:s}),l=[t.id].concat((0,i.Z)(r.map((function(e){return e.id}))));return a.filter((function(e){for(var n=e.categories.map((function(e){return e.categoryId})),t=0;t<n.length;t++)if(l.includes(n[t]))return!0;return!1}))},v=function e(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=t.find((function(e){return e.id==n}));return o?null===o.parentId?c.JZ[o.id]:e(o.parentId,t):null},T=function(e){var n=e.category,t=e.getCategoryById,o=void 0===t?l():t,i=function(e){return((null===e||void 0===e?void 0:e.id)||"").split(".").reduce((function(e,n){return e.length?e.push([e[e.length-1],n].join(".")):e.push(n),e}),[])}(n).map((function(e){return o(e)}));return{tree:i,parents:i.length>1?i.slice(0,i.length-1):[],topLevelCategory:i[0]}},k=function e(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l(),o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l(),i=arguments.length>3?arguments[3]:void 0;if(n){var a=o(n);if(a){t(a);var s=i.find((function(e){return e.id==(null===a||void 0===a?void 0:a.parentId)}));s&&e(s.id,t,o,i)}}},x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l(),t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=new Set,i=function(e){return o.add(e.id)};return e.forEach((function(e){e.categories.forEach((function(e){var o=e.categoryId;k(o,i,n,t)}))})),Array.from(o)},P=function(e){var n=e.height,t=e.topLevelCategories,i=void 0===t?[]:t,a=e.categories,s=void 0===a?[]:a,r=e.setState,d=void 0===r?l():r,u={};if(!n||!i.length||!s.length)return u;var m=Math.floor((n/i.length-c.vE)/c.vE);i.forEach((function(e){var n=y({category:e,categories:s});u[e.id]={subcategories:n.length,limit:n.length>m?m:0}})),Object.entries(u).forEach((function(e){var n=(0,o.Z)(e,2),t=n[0],i=n[1],a=i.subcategories,s=i.limit;t!=c.Kl&&s<m&&(u[c.Kl]=p(p({},u[c.Kl]),{},{limit:u[c.Kl].limit+(m-a)}))})),d(u)}},19480:function(e,n,t){t.d(n,{$O:function(){return l},BO:function(){return a},CF:function(){return s},CY:function(){return r},Of:function(){return i}});t(21249),t(57640),t(9924),t(69826),t(41539),t(31672),t(2490),t(59461),t(69720),t(26699),t(32023);var o=t(41898),i=function(e){return function(n,t){return n[e]<t[e]?-1:n[e]>t[e]?1:0}},a=function(e){return function(n,t){return n[e]-t[e]}},s=function(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.p1;return(null===(e=o.xN[n])||void 0===e||null===(e=e.header)||void 0===e?void 0:e.height)||0},r=function(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.p1;return(null===(e=o.xN[n])||void 0===e||null===(e=e.cncf)||void 0===e?void 0:e.height)||0},l=function e(n){var t;return"string"===typeof n?n:Array.isArray(n)?n.map(e).join(""):null!==n&&void 0!==n&&null!==(t=n.props)&&void 0!==t&&t.children?e(n.props.children):""}},85373:function(e,n,t){t.d(n,{QJ:function(){return b},cW:function(){return f},mi:function(){return g},tE:function(){return p}});var o=t(93433),i=t(4942),a=t(45987),s=(t(21249),t(57640),t(9924),t(69826),t(41539),t(31672),t(2490),t(59461),t(15581),t(34514),t(54747),t(92222),t(2707),t(57327),t(88449),t(59849),t(26699),t(32023),t(85827),t(25387),t(72608),t(47941),t(82526),t(38880),t(49337),t(33321),t(69070),t(50308)),r=t.n(s),l=t(66152),c=t(19480),d=["meta"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[e.installDescription,"{% command methods=$methods isNightly=$isNightly claimToken=$claimToken claimUrl=$claimUrl claimRooms=$claimRooms /%}",e.additionalInfo,e.platformInfo].join("\n\n")},p=function(){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((function(n){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.meta,t=void 0===n?{}:n,o=(0,a.Z)(e,d),i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],s=t.monitored_instance,r=t.keywords,c=void 0===r?[]:r,u=t.most_popular,p=t.community,g=s||t,f=g.name,b=g.categories,y=void 0===b?[]:b,_=g.icon_filename,w="deploy"==o.integration_type;return(0,l.k5)(m(m({name:f,categories:y.map((function(e){var n=i.find((function(n){return n.id==e}));return{categoryId:e,name:null===n||void 0===n?void 0:n.name}})),icon:"https://www.netdata.cloud/img/"+_,keywords:c,mostPopular:u,community:p},o),w?{deployContent:h({installDescription:o.install_description,methods:o.methods,additionalInfo:o.additional_info,platformInfo:o.platform_info})}:{}))}(n,e)}))},g=function(){var e=[],n=[];(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((function(t){void 0!==t.quickStart&&t.quickStart>=0?e.push(t):n.push(t)}));var t=[],i=[];n.forEach((function(e){e.mostPopular?t.push(e):i.push(e)}));var a=[],s=[];i.forEach((function(e){e.community?s.push(e):a.push(e)}));var r=(0,c.BO)("quickStart"),l=(0,c.Of)("name");return[].concat((0,o.Z)(e.sort(r)),(0,o.Z)(t.sort(l)),(0,o.Z)(a.sort(l)),(0,o.Z)(s.sort(l)))},f=function(e){var n=e.searchTerm,t=void 0===n?"":n,i=e.integrations,a=void 0===i?[]:i;if(!t)return a;var s=t.toLocaleLowerCase();return a.filter((function(e){var n=e.name,t=e.keywords,i=e.categories,a=void 0===i?[]:i;if(n.toLocaleLowerCase().includes(s))return!0;var r=a.map((function(e){return e.name})).filter(Boolean);return[].concat((0,o.Z)(t),(0,o.Z)(r)).join(",").toLocaleLowerCase().includes(s)}))},b=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r();return e.reduce((function(e,t){return t.categories.forEach((function(o){e.push(function(e,n,t){return m(m({},e),{},{flattenedKey:"".concat(e.id,"-").concat(n.categoryId),flattenedCategory:t(n.categoryId)})}(t,o,n))})),e}),[])}},82040:function(e,n,t){t.d(n,{IC:function(){return g},Sq:function(){return h},cA:function(){return b},l9:function(){return p}});var o=t(87462),i=t(15861),a=t(64687),s=t.n(a),r=(t(92222),t(67294)),l=t(57509),c=t(55899),d="delete-node-dialog",u="deleteNodeDialog",m=function(e){var n=1===e;return"Delete ".concat(e," ").concat(n?"node":"nodes")},h=function(e){return"Delete ".concat(e," node")},p=function(e){var n=e.name,t=e.nodesLength;return t?1===t&&n?h(n):m(t):""},g=function(e){var n=e.name;return r.createElement(r.Fragment,null,"You are about to delete offline node ",r.createElement("strong",null,n),".",r.createElement("br",null),"Node will be removed from all rooms and will no longer be accessible. Plus all metadata will be removed.",r.createElement("br",null),"Are you sure you want to continue?")},f=function(e){var n=e.nodesLength,t=1===n;return r.createElement(r.Fragment,null,"You are about to delete ",t?"this":"these"," ",r.createElement("strong",null,n," offline ",t?"node":"nodes"),".",r.createElement("br",null),t?"Node":"Nodes"," will be removed from all rooms and will no longer be accessible. Plus all metadata will be removed.",r.createElement("br",null),"Are you sure you want to continue?")},b=function(e){var n=e.name,t=e.nodesLength;return t?1===t&&n?r.createElement(g,{name:n}):r.createElement(f,{nodesLength:t}):""};n.ZP=function(e){var n=e.ids,t=void 0===n?[]:n,a=e.name,p=e.onClose,b=(0,c.Z)(),y=function(){var e=(0,i.Z)(s().mark((function e(){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,b(t);case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),_=a?{"data-ga":"".concat(d,"-with-name"),"data-testid":"".concat(u,"WithName"),message:r.createElement(g,{name:a}),title:h(a)}:{"data-ga":"".concat(d,"Bulk"),"data-testid":"".concat(u,"Bulk"),message:r.createElement(f,{nodesLength:t.length}),title:m(t.length)};return r.createElement(l.ConfirmationDialog,(0,o.Z)({confirmLabel:"Yes, delete",handleConfirm:y,handleDecline:p},_))}},5633:function(e,n,t){t.d(n,{Br:function(){return h},O3:function(){return f},ar:function(){return y},d1:function(){return g}});var o=t(87462),i=t(15861),a=t(64687),s=t.n(a),r=(t(92222),t(67294)),l=t(57509),c=t(27624),d=t(37518),u="remove-node-dialog",m="removeNodeDialog",h=function(e){return"Remove ".concat(e," node")},p=function(e){var n=1===e;return"Remove ".concat(e," ").concat(n?"node":"nodes")},g=function(e){var n=e.name,t=e.nodesLength;return t?1===t&&n?h(n):p(t):""},f=function(e){var n=e.name,t=e.roomName;return r.createElement(r.Fragment,null,"You are about to remove ",r.createElement("strong",null,n)," from room ",r.createElement("strong",null,t),".",r.createElement("br",null),"Are you sure you want to continue?")},b=function(e){var n=e.nodesLength,t=e.roomName,o=1===n;return r.createElement(r.Fragment,null,"You are about to remove"," ",r.createElement("strong",null,n," ",o?"node":"nodes")," ","from room ",r.createElement("strong",null,t),".",r.createElement("br",null),"Are you sure you want to continue?")},y=function(e){var n=e.name,t=e.nodesLength,o=e.roomName;return t?1===t&&n?r.createElement(f,{name:n,roomName:o}):r.createElement(b,{nodesLength:t,roomName:o}):""};n.ZP=function(e){var n=e.ids,t=void 0===n?[]:n,a=e.name,g=e.onClose,y=(0,c.Z)(),_=t.length,w=(0,d.Hm)("name"),v=function(){var e=(0,i.Z)(s().mark((function e(){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,y(t);case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),T=a?{"data-ga":"".concat(u,"WithName"),"data-testid":"".concat(m,"WithName"),message:r.createElement(f,{name:a,roomName:w}),title:h(a)}:{"data-ga":"".concat(u,"Bulk"),"data-testid":"".concat(m,"Bulk"),message:r.createElement(b,{nodesLength:_,roomName:w}),title:p(_)};return r.createElement(l.ConfirmationDialog,(0,o.Z)({handleConfirm:v,handleDecline:g},T))}},89014:function(e,n,t){t.d(n,{m4:function(){return h},aJ:function(){return u},Ho:function(){return d},h8:function(){return c},Id:function(){return m},d6:function(){return g},Lo:function(){return p},En:function(){return f}});var o,i=t(4942),a="clear",s="warning",r="critical",l="unreachable",c="N/A",d={groupsOrder:{alertStatus:(o={},(0,i.Z)(o,r,1),(0,i.Z)(o,s,2),(0,i.Z)(o,a,3),(0,i.Z)(o,l,4),o),nodeStatus:{Online:1,Stale:2,Offline:3}},prioritySettings:{unprioritizedGroupsPlacement:1}},u=48,m=88,h=75,p=74,g=2,f=0},89050:function(e,n,t){t.d(n,{Aw:function(){return R},Br:function(){return L},Dy:function(){return x},I$:function(){return b},Lt:function(){return k},MC:function(){return F},O2:function(){return P},Q5:function(){return T},V3:function(){return p},_0:function(){return y},cB:function(){return C},jG:function(){return B},jo:function(){return I},kR:function(){return w},oy:function(){return f},yK:function(){return M},yo:function(){return A},ys:function(){return S}});t(82526),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(15861),i=t(4942),a=t(64687),s=t.n(a),r=(t(85827),t(41539),t(25387),t(2490),t(72608),t(66992),t(33948),t(92222),t(69826),t(31672),t(59461),t(47941),t(47042),t(26699),t(32023),t(57327),t(88449),t(59849),t(21249),t(57640),t(9924),t(67294)),l=t(41379),c=t(71172),d=t(89014);function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=function(e,n){return e.reduce((function(e,t){var o="".concat(t.values[n]);return e[o]=Array.isArray(e[o])?e[o]:[],e[o].push(t),e}),{})},p=function(e,n){return h(e,"services"===n?"nodeStatus":n)},g=function(e){var n,t,o=e.isLive,i=e.health,a=void 0===i?{}:i;return o?null!==(n=a.alerts)&&void 0!==n&&n.critical?"critical":null!==(t=a.alerts)&&void 0!==t&&t.warning?"warning":"clear":"unreachable"},f=function(e,n){return m(m({},e),{},{alertStatus:g(e),nodeStatus:T(e.state),virtualRowHeight:n})},b=function(e,n){var t=n[e];return t.isVirtualGroupHeader?d.aJ:t.original.virtualRowHeight},y=function(e,n){var t,o=n.orderedRows[e]||{};return(null===o||void 0===o||null===(t=o.original)||void 0===t?void 0:t.id)&&"".concat(o.original.id,"_").concat(e)||o.id||e},_=function(e){return e>9?"9+":"".concat(e)},w=function(e){var n=e.count,t=e.dataTestId,o=e.isLive,i=e.onAlertClick,a=e.type,s=t?"".concat(t,"-alertIndicator"):"alertIndicator",r={"data-testid":"".concat(s,"-").concat(a)};return o?m(m(m(m({},r),n&&{flavour:"critical"===a?"error":"warning"}),n&&i&&{onClick:function(){return i(a)}}),{},{text:_(n)}):r},v={created:"Unseen",reachable:"Live",stale:"Stale",unreachable:"Offline"},T=function(e){return v[e]||v.stale},k=function(e){return"created"===e?"Pending":"Completed"},x=function(e){return e?{background:"successSemi",border:"success",color:"success",label:"ON",status:"ON"}:{background:"warningSemi",border:"warning",color:"warning",label:"OFF",status:"OFF"}},P=function(e){return!e||"unknown"===e},C=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:" \u2022 ";return P(e)?d.h8:"".concat(e).concat(t).concat(n)},F=function(e,n){return P(e)?d.h8:n?"".concat(e," ").concat(n):e},q={HZ:1,KHz:1e3,MHz:1e6,GHz:1e9,THz:1e12,PHz:1e15,EHz:1e18},S=function(e){if(P(e))return d.h8;var n=Object.keys(q).find((function(n){return 1e3>e/q[n]}));return"".concat((e/=q[n]).toFixed(2)," ").concat(n||"")},D={B:1,KiB:1024,MiB:1048576,GiB:1073741824,TiB:1099511627776,PiB:0x4000000000000,EiB:0x1000000000000000},A=function(e){if(P(e))return d.h8;var n=Object.keys(D).find((function(n){return 1024>e/D[n]}));return"".concat((e/=D[n]).toFixed(2)," ").concat(n||"")},M=function(e,n,t,o,i){var a={Live:r.createElement(r.Fragment,null,"is currently connected"),Offline:r.createElement(r.Fragment,null,"is currently not connected"),Stale:r.createElement(r.Fragment,null,"is currently not",r.createElement("br",null),"connected and has",r.createElement("br",null),"only historical data")},s={actionObsolete:r.createElement(r.Fragment,null,"Delete Node"),actionRemove:r.createElement(r.Fragment,null,"Remove Node from room"),alerts:r.createElement(r.Fragment,null,"The current Critical and",r.createElement("br",null),"Warning alerts for",r.createElement("br",null),o),cloudInfo:r.createElement(r.Fragment,null,o,r.createElement("br",null),"cloud information:",r.createElement("br",null),"Cloud Provider \u2022 Instance Type"),connectivity:n in a?r.createElement(r.Fragment,null,o,r.createElement("br",null),a[n]):r.createElement(r.Fragment,null),info:r.createElement(r.Fragment,null,"View node information"),k8s:r.createElement(r.Fragment,null,o," runs on Kubernetes cluster"),kernel:r.createElement(r.Fragment,null,"Kernel information of ",o),ml:r.createElement(r.Fragment,null,"Machine Learning status of ",o," is: ",t),fn:r.createElement(r.Fragment,null,"Functions capability of ",o," is: ",t),functions:r.createElement(r.Fragment,null,o," functions"),systemInfo:r.createElement(r.Fragment,null,o,r.createElement("br",null),"hardware information:",r.createElement("br",null),"O/S \u2022 CPU Frequency \u2022 CPU Cores \u2022 Architecture \u2022 Memory \u2022 Hard Disk Space"),type:r.createElement(r.Fragment,null,"The type of ",o,r.createElement("br",null),"is: ",i)};return e in s?s[e]:""},N={none:!0,null:!0,unknown:!0},H=function(e){return!!e&&!N[e]},E={container:"container","container-other":"container",other:"container"},O={"$(systemd-detect-virt -v)":"vm","$(systemd-detect-virt -v) docker-compose up":"vm","${VIRTUALIZATION}":"vm","(systemd-detect-virt -v)":"vm","detect-virt -v":"vm",lxc:"vm","none #vmware":"vmware",other:"vm","systemd-detect-virt -v":"vm",unknown:"vm","vm-other":"vm","VMware Virtual Platform":"vmware"},I=function(e,n){return H(e)?{icon:"container",iconSize:"18px",label:E[e]||e}:H(n)?{icon:"cluster",iconSize:"18px",label:O[n]||n}:{icon:"ram",iconSize:"14px",label:"Bare Metal"}},R=function(e){var n=e.orderedRows,t=e.start,o=e.end;return n.slice(t,o+1).reduce((function(e,n){return n.original&&!e.includes(n.original.id)&&e.push(n.original.id),e}),[])},L=function(){var e=(0,o.Z)(s().mark((function e(n){var t,o,i,a,r,d;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.cacheKeyPrefix,o=n.nodeIds,i=n.roomId,a=n.spaceId,r=function(e){return e.results.filter((function(e){return!o.includes(e.id)}))},d="".concat(t).concat((0,l.A)({id:i,spaceId:a})),e.next=5,(0,c.c)({key:d,handleResults:r});case 5:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),B=function(){var e=(0,o.Z)(s().mark((function e(n){var t,i,a,r,d;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=n.cacheKeyPrefix,i=n.nodeIds,a=n.roomIds,r=n.spaceId,d=function(e){return e.results.filter((function(e){return!i.includes(e.id)}))},a.map(function(){var e=(0,o.Z)(s().mark((function e(n){var o;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o="".concat(t).concat((0,l.A)({id:n,spaceId:r})),e.next=3,(0,c.c)({key:o,handleResults:d});case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}());case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()},18129:function(e,n,t){t.d(n,{Z:function(){return $}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(67294),a=t(57509),s=t(96929),r=t(89149),l=t(33335),c=t(29439),d=(t(26699),t(32023),t(21249),t(57640),t(9924),t(89250)),u=t(37518),m=t(97945),h=t(46322),p=(t(64211),t(41874),t(11389)),g=(t(92222),t(62200)),f=t(64637),b=t(89050),y=function(e){var n=e.icon,t=e.status,o=e.handleNavigateToDocs,s=e.message;return i.createElement(a.Flex,{column:!0,width:{max:"200px"},gap:2},i.createElement(a.Flex,{alignItems:"center",gap:2},i.createElement(a.Icon,{name:n,color:"bright",size:"small"}),i.createElement(a.TextMicro,{color:"white"},(0,f.fm)(t))),i.createElement(a.Flex,{column:!0,gap:2},i.createElement(a.TextMicro,{color:"white"},s),o&&i.createElement(a.TextMicro,{"data-testid":"text-agent-outdated-critical",color:"white"},i.createElement(a.Box,{"data-testid":"open-add-node",onClick:o,as:a.TextMicro,cursor:"pointer",textDecoration:"underline",color:"white"}," ","Check here"," "),"for troubleshooting")))},_=function(e){var n=e.state,t=e.name,o=(0,b.Lt)(n),s=g.R7[o.toLocaleLowerCase()],r=s.icon,l=s.text,c=s.textColor,d=s.indicatorWrapperColor,u=s.tooltip,m=(0,i.useCallback)((function(){window.open("https://learn.netdata.cloud/guides/troubleshoot/troubleshooting-agent-with-cloud-connection","_blank","noopener,noreferrer")}),[]),h="".concat(t," ").concat(u);return i.createElement(a.Tooltip,{allowHoverOnTooltip:!0,content:i.createElement(y,{message:h,icon:r,status:l,handleNavigateToDocs:"Pending"===o?m:void 0})},i.createElement(a.Flex,{margin:[0,"auto",0,"auto"],height:"20px",padding:[.5,0],border:{side:"all",color:d},background:"nodeBadgeBackground",justifyContent:"center",width:30,round:4,gap:2,alignItems:"center"},i.createElement(a.Icon,{name:r,size:"small",color:c}),i.createElement(a.TextMicro,{strong:!0,color:c},l)))},w=t(86711),v=t(83925);function T(e,n){return e===n?0:e>n?1:-1}var k=[{id:"agent",accessorKey:"name",enableColumnFilter:!1,filterFn:function(e,n,t){var o,i=(null===(o=e.original)||void 0===o?void 0:o.name)||"";return null===i||void 0===i?void 0:i.toLowerCase().includes(t)},header:"Name",cell:function(e){var n=e.getValue;return i.createElement(a.TextSmall,null,n())},size:120},{id:"version",accessorKey:"version",header:"Version",cell:function(e){var n=e.getValue,t=e.row;return i.createElement(a.Flex,{gap:1,flexWrap:!0},i.createElement(a.Pill,{color:"neutralPillColor",hollow:!0,margin:[1,0]},n()),t.original.updateSeverity&&i.createElement(v.Z,{name:t.original.name,os:t.original.os.id,container:t.original.hw.container,warningLevel:"critical"===t.original.updateSeverity?"critical":"warning",labels:t.original.labels,version:n(),margin:[1,0]}))},minSize:50},{id:"state",accessorKey:"state",header:"Status",cell:function(e){var n=e.getValue;return i.createElement(p.Z,{state:n()})},sortingFn:function(e,n){return T((0,b.Q5)(e.original.state),(0,b.Q5)(n.original.state))},enableColumnFilter:!0,filterFn:function(e,n,t){var o=e.original.state;return t.length<1||t.some((function(e){var n=e.value;return"all"===n||n===(0,b.Q5)(o)}))},meta:{filter:{component:"select",isMulti:!0,options:[{value:"Offline",label:"Offline"},{value:"Live",label:"Live"},{value:"Stale",label:"Stale"},{value:"Unseen",label:"Unseen"}]},tooltip:i.createElement(w.Z,null)}},{id:"connectionToCloud",accessorKey:"state",header:"Connection To Cloud",cell:function(e){var n=e.getValue,t=e.row.original;return i.createElement(_,{state:n(),name:t.name})},sortingFn:function(e,n){return T((0,b.Lt)(e.original.state),(0,b.Lt)(n.original.state))},enableColumnFilter:!0,filterFn:function(e,n,t){var o=e.original.state;return t.length<1||t.some((function(e){var n=e.value;return"all"===n||("created"===o&&"created"===n||("created"!==o&&"completed"===n||void 0))}))},size:50,meta:{filter:{component:"select",isMulti:!0,options:[{value:"created",label:"Pending"},{value:"completed",label:"Completed"}]}}},{id:"updateSeverity",accessorKey:"updateSeverity",header:"Severity",cell:function(e){var n=e.getValue,t=e.row.original;return i.createElement(v.Z,{name:t.name,os:t.os.id,container:t.hw.container,warningLevel:t.updateSeverity,labels:t.labels||{},version:t.version,text:n()})}}],x=t(46667),P=t(15861),C=t(64687),F=t.n(C),q=t(82040),S=t(5633),D=t(55899),A=t(27624);function M(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var N=function(e){return Array.isArray(e)?e.filter((function(e){return!e.hasAccessibleData})):e.hasAccessibleData?[]:[{id:e.id}]},H=function(e){return Array.isArray(e)?e:[{id:e.id}]},E=function(e){var n=e.openClaimNodeModal,t=e.roomUntouchable,a=e.isSpace,s=(0,D.Z)(),r=(0,A.Z)(),c=(0,u.Hm)("name"),d=(0,l.gI)("node:Delete"),m=(0,l.gI)("room:RemoveNode"),h=(0,l.gI)("node:Create"),p=(0,l.gI)("room:AddNode"),g=function(){var e=(0,P.Z)(F().mark((function e(n,t){var o,i;return F().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return");case 2:return o=N(n),i=o.map((function(e){return e.id})),e.next=6,s(i);case 6:t.resetRowSelection();case 7:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}(),f=function(){var e=(0,P.Z)(F().mark((function e(n,t){var o,i;return F().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n){e.next=2;break}return e.abrupt("return");case 2:return o=H(n),i=o.map((function(e){return e.id})),e.next=6,r(i);case 6:t.resetRowSelection();case 7:case"end":return e.stop()}}),e)})));return function(n,t){return e.apply(this,arguments)}}(),b=(0,i.useMemo)((function(){return{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){return i.createElement(q.IC,{name:e.name})},confirmationTitle:function(e){return(0,q.Sq)(e.name)},declineLabel:"Cancel",disabledTooltipText:d?"Delete is disabled":"Only admins can delete",handleAction:g,isVisible:!!a,isDisabled:function(e){return e.disabled||!d},tooltipText:"Delete node from space"},remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e){return i.createElement(S.O3,{name:e.name,roomName:c})},confirmationTitle:function(e){return(0,S.Br)(e.name)},declineLabel:"Cancel",handleAction:f,tooltipText:"Remove node from room",isVisible:!a,isDisabled:function(e){return e.disabled||t||!m},disabledTooltipText:t?"Remove is disabled":"Only admins can remove"}}}),[q.IC,q.Sq,S.Br,g,f,S.O3,t,a,d,m]),y=(0,i.useMemo)((function(){return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?M(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):M(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({addEntry:{disabledTooltipText:a?"Only admins can connect new nodes":"Only admins can add nodes to the room",handleAction:n,isDisabled:a?!h:!(h||p&&!t),tooltipText:a?"Connect new nodes to space":"Add nodes to room"}},a?{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e,n){return i.createElement(q.cA,{name:n[0].name,nodesLength:n.length})},confirmationTitle:function(e,n){return(0,q.l9)({name:n[0].name,nodesLength:n.length})},disabledTooltipText:d?"Delete is disabled":"Only admins can delete",declineLabel:"Cancel",handleAction:g,isDisabled:!d,tooltipText:"Delete nodes from space"}}:{remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e,n){return i.createElement(S.ar,{name:n[0].name,nodesLength:n.length,roomName:c})},confirmationTitle:function(e,n){return(0,S.d1)({name:n[0].name,nodesLength:n.length})},declineLabel:"Cancel",disabledTooltipText:t?"Remove is disabled":"Only admins can remove",handleAction:f,isDisabled:t||!m,tooltipText:"Remove nodes from room"}})}),[q.cA,q.l9,S.d1,g,f,h,d,m,S.ar,t,a]);return{rowActions:b,bulkActions:y,hasPermissionToDelete:d,hasPermissionToRemove:m}};function O(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function I(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?O(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var R={name:!1,updateSeverity:!1,connectionToCloud:!1},L=[{id:"state",desc:!1}],B=function(e){var n=e.roomUntouchable,t=e.customNodes,o=e.alwaysEnableNodeSelection,a=e.isSpace,r=(0,d.UO)().roomSlug,l=(0,u.UL)(r),p=(0,s.X7)(l,"ids"),g=(0,m.Ne)(p),f=(0,i.useMemo)((function(){return(0,h.C)(t||g)}),[t,p]),y=(0,i.useState)(""),_=(0,c.Z)(y,2)[1],w=(0,x.Z)(),v=(0,c.Z)(w,4),T=v[0],P=v[2],C=v[3],F=E({openClaimNodeModal:P,roomUntouchable:n,isSpace:a}),q=F.rowActions,S=F.bulkActions,D=F.hasPermissionToDelete,A=F.hasPermissionToRemove,M=(0,i.useCallback)((function(e,n,t){var o=t.toLowerCase(),i=e.getValue("agent").toLowerCase(),a=(0,b.Q5)(e.getValue("state")).toLocaleLowerCase(),s=(0,b.Lt)(e.getValue("connectionToCloud")).toLocaleLowerCase(),r=(e.getValue("updateSeverity")||"").toLocaleLowerCase(),l=e.getValue("version").toLowerCase();return i.includes(o)||a.includes(o)||l.includes(o)||s.includes(o)||r.includes(o)}),[]);return{nodes:f.map((function(e){return I(I({},e),{},{disabled:a?!D||!o&&e.hasAccessibleData:!A})}))||[],nodeIds:p,columns:k,rowActions:q,bulkActions:S,isClaimNodeModalOpen:T,sortBy:L,columnVisibility:R,setGlobalFilter:_,openClaimNodeModal:P,closeClaimNodeModal:C,globalFilterFn:M}},U=t(90025),j=t(74059),G=t(33582),z=t(16645),Y=t(7693),X=t(8741),Z=function(e){var n=e.onClose,t=(0,j.th)(),o=(0,u.UL)(),s=(0,i.useState)((function(){return o?[o]:[]})),r=(0,c.Z)(s,2),l=r[0],d=r[1];return(0,G.Z)(t),i.createElement(z.u6,{onClose:n,"data-testid":"addNodes",right:!0,closeOnEsc:!0,closeOnOverlayClick:!0},i.createElement(Y.x,{"data-testid":"addNodes-header",title:"Add Nodes",onClose:n}),i.createElement(z.TZ,{hasModalTitle:!1},i.createElement(a.Flex,{column:!0,"data-testid":"manageClaimedNodes-controls",gap:3},i.createElement(U.Z,{placeholder:"Select Rooms",selectedValue:l,onChange:d}),i.createElement(X.Z,{rooms:l}))))};function W(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function K(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?W(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):W(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var $=function(e){var n=e.roomUntouchable,t=e.showClaimNodeOnEmptySpace,o=void 0!==t&&t,c=e.customNodes,d=void 0===c?[]:c,u=e.customBulkActions,m=e.customRowActions,h=e.enableSelection,p=void 0===h||h,g=e.showdDefaultRowActions,f=void 0===g||g,b=e.showDefaultBulkActions,y=void 0===b||b,_=e.onRowSelected,w=e.onClickRow,v=e.disableClickRow,T=e.columnVisibility,k=e.customSortBy,x=e.showClaimModalWithRoomSelection,P=void 0!==x&&x,C=e.alwaysEnableNodeSelection,F=void 0!==C&&C,q=e.isSpace,S=B({roomUntouchable:n,customNodes:d,alwaysEnableNodeSelection:F,isSpace:q,showClaimModalWithRoomSelection:P}),D=S.nodes,A=S.columns,M=S.rowActions,N=S.bulkActions,H=S.sortBy,E=S.isClaimNodeModalOpen,O=S.openClaimNodeModal,I=S.closeClaimNodeModal,R=S.columnVisibility,L=S.setGlobalFilter,U=S.globalFilterFn,j=(0,l.gI)("node:Create"),G=(0,s.fD)();(0,i.useEffect)((function(){G&&o&&j&&0===D.length&&O()}),[G]);var z=(0,i.useMemo)((function(){return K(K({},R),T)}),[R,T]);return i.createElement(i.Fragment,null,i.createElement(a.NetdataTable,{onRowSelected:_,globalFilterFn:U,columnVisibility:z,enableSelection:p,enableSorting:!0,dataColumns:A,data:D,rowActions:f&&M||m,bulkActions:y&&N||u,sortBy:k||H,onGlobalSearchChange:L,testPrefixCallback:function(e){return e.hostname||e.name},onClickRow:w,disableClickRow:v}),E&&!P&&i.createElement(r.Z,{onClose:I,isSubmodal:!0}),E&&P&&i.createElement(Z,{onClose:I}))}},77184:function(e,n,t){t.d(n,{$3:function(){return b},G1:function(){return _},IU:function(){return g},JV:function(){return p},Y0:function(){return h},eZ:function(){return w},h3:function(){return m}});var o=t(4942),i=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(21249),t(57640),t(9924),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(26398)),a=t(64637),s=t(66152),r=t(3689),l=t(31790);function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function d(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var u=function(e){var n=e.integrations;return n.reduce((function(e,n){var t,o=(0,s.k5)(n),i=o.available?"available":"unavailable";return o.kindLabel=(0,a.fm)(o.kind,!0),o.docsLink=null===(t=n.schema)||void 0===t?void 0:t.annotations.docsUrl,o.internal||(o.fields=(0,l.sY)(o.schema),o.required=o.schema.required),e[i].push(o),e}),{available:[],unavailable:[],original:n})},m=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/integrations"),{transform:u})},h=function(e,n){return i.Z.post("/api/v2/spaces/".concat(e,"/channel"),n)},p=function(e,n){return i.Z.delete("/api/v2/spaces/".concat(e,"/channel/").concat(n))},g=function(e,n,t){return i.Z.put("/api/v2/spaces/".concat(e,"/channel/").concat(n),t)},f=function(e){var n,t=(0,s.k5)(e);return t.docsLink=null===(n=t.schema)||void 0===n?void 0:n.annotations.docsUrl,t.internal||(t.fields=(0,l.sY)(t.schema),t.required=t.schema.required),t},b=function(e,n){return i.Z.get("/api/v2/spaces/".concat(e,"/channel/").concat(n),{transform:f})},y=function(e){return{channels:e.map((function(e){return d(d({},(0,s.k5)(e)),{},{notificationLabel:r.uK[e.alarms].label,kindLabel:(0,a.fm)(e.kind,!0)})})),original:e}},_=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/channel"),{transform:y})},w=function(e,n,t){return i.Z.patch("/api/v2/spaces/".concat(e,"/channel/").concat(n),{enabled:t})}},45939:function(e,n,t){t.d(n,{C:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480);function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var r={additionalProperties:!1,alerts:"ALARMS_SETTING_ALL",description:"",enabled:!0,error:"",fields:[],icon:"",internal:!0,id:"",integration:"",integrationId:"",kind:"",loading:!0,loaded:!1,name:"",rooms:null,roomSelections:[t(3689).k_],secrets:{}},l=(0,i.xu)({key:"spaceChannel",default:function(e){return function(e){return s(s({},r),{},{id:e})}(e)}});n.Z=l},15635:function(e,n,t){t.d(n,{g:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480);function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var r={currentChannelId:"",channels:[],error:"",id:null,loading:!0,loaded:!1,original:[]},l=(0,i.xu)({key:"spaceChannels",default:function(e){return function(e){return s(s({},r),{},{id:e})}(e)}});n.Z=l},3689:function(e,n,t){t.d(n,{Nq:function(){return u},Ue:function(){return l},XH:function(){return y},XK:function(){return d},YM:function(){return p},aU:function(){return c},k_:function(){return s},mN:function(){return m},q7:function(){return f},rc:function(){return r},uK:function(){return h},yV:function(){return b},zK:function(){return g}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942);function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function a(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?i(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var s={label:"All rooms",value:""},r={plan:"Your plan does not support this configuration.",role:"You do not have permission to change Global Notification configurations."},l="You do not have permission to add configurations. Contact a space administrator to add this configuration.",c={Discord:{name:"integrationDiscordColored"},Webhook:{name:"integrationWebhookColored"},Email:{name:"integrationEmailColored"},MobilePush:{color:"successLite",name:"mobilePushNotifications"},PagerDuty:{name:"integrationPagerdutyColored"},Slack:{name:"integrationSlackColored"},Opsgenie:{name:"integrationOpsgenieColored"},Mattermost:{name:"integrationMattermostColored"},RocketChat:{name:"integrationRocketChatColored"},MobileApp:{name:"integrationMobileAppColored"}},d={PERSONAL:{icon:"userPress",tooltip:"Notification methods whose destination will be a user-specific attribute, e.g. user's e-mail."},SYSTEM:{icon:"systemOverviewPress",tooltip:"Notification methods that the destination will be a target that usually isn't specific to a single user, e.g. Slack channel."}},u={ALARMS_SETTING_ALL:{value:"ALARMS_SETTING_ALL",label:"All Alerts and unreachable"},ALARMS_SETTING_ALL_BUT_UNREACHABLE:{value:"ALARMS_SETTING_ALL_BUT_UNREACHABLE",label:"All Alerts"},ALARMS_SETTING_CRITICAL:{value:"ALARMS_SETTING_CRITICAL",label:"Critical only"},ALARMS_SETTING_UNREACHABLE:{value:"ALARMS_SETTING_UNREACHABLE",label:"Unreachable only"}},m={label:"User defined",value:"USER_DEFINED"},h=a(a({},u),{},{USER_DEFINED:m}),p=a(a({},u),{},{ALARMS_SETTING_NONE:{value:"ALARMS_SETTING_NONE",label:"No notifications"}}),g={"^.*$":"input"},f={string:"input"},b=/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)/g,y="607bfd3c-02c1-4da2-b67a-0d01b518ce5d"},26913:function(e,n,t){t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(77184),a=t(45736),s=t(15635),r=t(5429);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}n.Z=function(e){var n=(0,a.rz)(e);(0,r.Z)((function(){return{enabled:!!e,fetch:function(){return(0,i.G1)(e)},onFail:function(e){return n(c(c({},s.g),{},{error:e.message}))},onSettle:function(){return n({loading:!1,loaded:!0})},onSuccess:function(e){return n(c(c({},s.g),e))}}}),[e])}},69414:function(e,n,t){t.d(n,{E:function(){return r}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480);function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function s(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var r={available:[],error:"",id:null,loading:!0,loaded:!1,original:[],unavailable:[]};n.Z=(0,i.xu)({key:"spaceIntegrations",default:function(e){return function(e){return s(s({},r),{},{id:e})}(e)}})},3528:function(e,n,t){t.d(n,{dR:function(){return D},hd:function(){return q},MJ:function(){return S}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(15861),i=t(29439),a=t(4942),s=t(71002),r=t(45987),l=t(64687),c=t.n(l),d=t(4480),u=t(93017),m=(t(92222),t(26398)),h=["domain"];function p(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function g(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?p(Object(t),!0).forEach((function(n){(0,a.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):p(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var f={email:null,browser:null,mobile:null},b={alerts:null},y={me:function(){return"/api/v2/accounts/me/notifications/settings"},room:function(e){var n=e.spaceId,t=e.roomId;return"/api/v2/spaces/".concat(n,"/rooms/").concat(t,"/notifications/settings")}},_=function(e){var n=e.domain,t=(0,r.Z)(e,h);return(0,y[n])(t)},w=(0,d.xu)({key:"notificationsSettings",default:function(e){var n=function(e){var n=e.domain;return{me:f,room:b}[n]}(e),t=_(e);return m.Z.get(t).then((function(e){return g(g(g({},n),e.data),{},{isLoaded:!0})})).catch((function(){return g(g({},n),{},{isLoaded:!0})}))}}),v=t(68008),T=["prop"];function k(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function x(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?k(Object(t),!0).forEach((function(n){(0,a.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):k(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var P=(0,d.CG)({key:"notificationsSettings",get:function(e){return function(n){return(0,n.get)(w(e))}},set:function(e){return function(n,t){var o=n.set,i=e.prop,l=(0,r.Z)(e,T);o(w(l),(function(e){var n="object"==(0,s.Z)(e[i])?x(x({},e[i]),{},{enabled:t}):t;return i?x(x({},e),{},(0,a.Z)({},i,n)):n}))}}}),C=function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shouldPersist,t=void 0===n||n,s=(0,d.Zl)(P(e)),r=function(e){return(0,v.Z)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return m.Z.patch(_(e),n)}),[e.domain,e.spaceId,e.roomId])}(e),l=(0,u.Z)(),h=(0,i.Z)(l,2)[1];return(0,d._8)((function(n){var i=n.snapshot;return function(){var n=(0,o.Z)(c().mark((function n(o){var l,d;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(s(o),t){n.next=3;break}return n.abrupt("return");case 3:return n.next=5,i.getPromise(P(e));case 5:return l=n.sent,d=e.prop,n.prev=7,n.next=10,r(x({},d?(0,a.Z)({},d,o):o));case 10:n.next=16;break;case 12:n.prev=12,n.t0=n.catch(7),h(n.t0),s(d?l[d]:l);case 16:case"end":return n.stop()}}),n,null,[[7,12]])})));return function(e){return n.apply(this,arguments)}}()}),[e])},F=function(e){return(0,d.$P)(P(e))},q=function(){return(0,d.$P)(w({domain:"me"}))},S=function(e){var n={domain:"me"},t=F(n),o="hasValue"!==t.state?f:t.contents,i=C(x(x({},n),{},{prop:e}));return[e?o[e]:o,i]},D=function(e){var n=e.roomId,t=e.spaceId,o=e.key,i={domain:"room",roomId:n,spaceId:t},a=F(i),s="hasValue"!==a.state?b:a.contents,r=C(x(x({},i),{},{prop:o}));return[o?s[o]:s,r]}},45736:function(e,n,t){t.d(n,{Cz:function(){return f},R1:function(){return w},h3:function(){return h},pV:function(){return g},ry:function(){return _},rz:function(){return b},su:function(){return m}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(4480),a=t(45939),s=t(15635),r=t(69414),l=t(31790);function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function d(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?c(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):c(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var u=(0,i.CG)({key:"spaceChannelState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,a.Z)(n));return t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,i){(0,e.set)((0,a.Z)(n),(function(e){return t?d(d({},e),{},(0,o.Z)({},t,i)):d(d({},e),i)}))}}}),m=function(e,n){return(0,i.sJ)(u({id:e,key:n}))},h=function(e){return(0,i.rb)(u(e))},p=(0,i.CG)({key:"spaceChannelsState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,s.Z)(n));return o=d(d({},o),{},{channels:(0,l.SM)(o.channels)}),t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,i){(0,e.set)((0,s.Z)(n),(function(e){return t?d(d({},e),{},(0,o.Z)({},t,i)):d(d({},e),i)}))}}}),g=function(e,n){return(0,i.sJ)(p({id:e,key:n}))},f=function(e,n){return(0,i.Zl)(u({id:e,key:n}))},b=function(e,n){return(0,i.Zl)(p({id:e,key:n}))},y=(0,i.CG)({key:"spaceIntegrationsState",get:function(e){var n=e.id,t=e.key;return function(e){var o=(0,e.get)((0,r.Z)(n));return o=d(d({},o),{},{available:(0,l.SM)(o.available),unavailable:(0,l.SM)(o.unavailable)}),t?o[t]:o}},set:function(e){var n=e.id,t=e.key;return function(e,i){(0,e.set)((0,r.Z)(n),(function(e){return t?d(d({},e),{},(0,o.Z)({},t,i)):d(d({},e),i)}))}}}),_=function(e,n){return(0,i.sJ)(y({id:e,key:n}))},w=function(e,n){return(0,i.Zl)(y({id:e,key:n}))}},31790:function(e,n,t){t.d(n,{SM:function(){return x},uf:function(){return b},xW:function(){return y},D4:function(){return _},sY:function(){return w},XM:function(){return v},ae:function(){return T},A_:function(){return k}});var o=t(29439),i=t(4942),a=(t(26699),t(32023),t(57327),t(41539),t(88449),t(2490),t(59849),t(82526),t(41817),t(85827),t(25387),t(72608),t(47941),t(92222),t(69826),t(31672),t(59461),t(26833),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(93433)),s=t(45987),r=(t(74916),t(4723),t(21249),t(57640),t(9924),t(69720),t(57557)),l=t.n(r),c=t(3689),d=["description","placeholder","title","type"];function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?u(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):u(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var h=function(e,n,t){var r=n.description,u=n.placeholder,h=n.title,p=n.type,g=(0,s.Z)(n,d),f=t.includes(e),b={description:r,id:e,isRequired:f,placeholder:u||"",title:h||e};if("string"===p&&"selection"!==e){var y=g.format,_=g.maxLength,v=g.minLength;return m(m(m({component:"input",getValue:function(e){var n=e.id,t=e.secrets,o=e.subsetId;return(o?t[n][o]:t[n])||""},isValid:function(e){return!!("uri"!==y||null!==e&&void 0!==e&&e.match(c.yV))&&(!(v&&e.length<v)&&!(_&&e.length>_))}},_?{maxlength:_}:{}),v?{minlength:v}:{}),{},{onChange:function(e){var n=e.id,t=e.setSecrets,o=e.subsetId;return function(e){return t((function(t){return m(m({},t),{},o?(0,i.Z)({},n,m(m({},t[n]),{},(0,i.Z)({},o,e))):(0,i.Z)({},n,e))}))}},type:"uri"===y?"url":y||"text"},b)}if("object"===p){var T=g.oneOf,k=g.patternProperties;if(T)return m(m({component:"select",getValue:function(e){var n,t,o=e.id,i=e.secrets;return{label:(null===(n=T.find((function(e){var n;return e.properties.selection.const===(null===(n=i[o])||void 0===n?void 0:n.selection)})))||void 0===n?void 0:n.title)||(f?T[0].title:"None"),value:(null===(t=i[o])||void 0===t?void 0:t.selection)||(f?T[0].properties.selection.const:"")}},onChange:function(e){var n=e.id,t=e.setRequiredSubsets,o=e.setSecrets;return function(e){var a=e.label,s=e.value;if(!s)return t((function(e){return l()(e,n)})),void o((function(e){return l()(e,n)}));var r=T.find((function(e){return e.title===a}));null!==r&&void 0!==r&&r.required&&t((function(e){return m(m({},e),{},(0,i.Z)({},n,T.find((function(e){return e.title===a})).required))})),o((function(e){return m(m({},e),{},(0,i.Z)({},n,{selection:s}))}))}}},T.reduce((function(e,n){return{fields:m(m({},e.fields),{},(0,i.Z)({},n.properties.selection.const,w(n))),options:[].concat((0,a.Z)(e.options),[{label:n.title,value:n.properties.selection.const}]),required:m(m({},e.required),{},(0,i.Z)({},n.properties.selection.const,n.required))}}),{fields:{},options:f?[]:[{label:"None",value:""}],required:{}})),b);if(k)return m({component:"pairs",componentPairs:Object.entries(k).map((function(e){var n=(0,o.Z)(e,2),t=n[0],i=n[1].type;return[c.zK[t],c.q7[i]]}))},b)}return null},p=t(72437);function g(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?g(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):g(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var b=function(e,n){var t=function(e){return e.toLowerCase().includes(n.toLowerCase()||"")};return e.filter((function(e){var n=e.classification,o=e.description,i=e.kind,a=e.title;return t(n)||t(o)||t(i)||t(a)}))},y=function(e,n,t){return!!n&&("selection"===e||("select"===t.component||t.isValid(n)))},_=function(e){return"Delete ".concat(e," channel")},w=function(e){var n=e.properties,t=e.required;return Object.keys(n).reduce((function(e,o){var a=h(o,n[o],t);return f(f({},e),a?(0,i.Z)({},o,a):{})}),{})},v=function(e){var n=(0,o.Z)(e,2),t=n[0],i=n[1];return t===i?"".concat(t,"s"):"".concat(t,"/").concat(i)},T=function(e){var n=e.roomIds,t=e.roomOptions;return n.reduce((function(e,n){var o=t.find((function(e){return e.value===n}));return o&&e.push(o.label),e}),[]).join(", ")},k=function(e,n){return Object.values(e).reduce((function(e,t){return"select"===t.component&&n.includes(t.id)?f(f({},e),{},(0,i.Z)({},t.id,{selection:t.options[0].value})):e}),{})},x=function(e){return p.xy?e:e.filter((function(e){return e.id!==c.XH}))}},28350:function(e,n,t){t.d(n,{Z:function(){return v}});var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=t(91268),l=t(74059),c=t(37518),d=t(18129),u=t(46189),m=t(15418),h=function(e){var n=e.spaceName;return a.createElement(s.Text,{textAlign:"center"},"Please ask your administrator to claim more nodes to\xa0",a.createElement(s.Text,{strong:!0},n)," and you will be able to add them to this room")},p=function(){return a.createElement(s.Text,{textAlign:"center"},"To add nodes to this room, you first need to claim them to its space.")},g=function(e){var n=e.spaceName,t="".concat(u.Z.assetsBaseURL,"/img/rack.png");return a.createElement(s.Flex,{column:!0,padding:[4,8,0],alignItems:"center",gap:4},a.createElement("img",{src:t,alt:"server-rack",width:"188px",height:"188px"}),a.createElement(s.H4,{textAlign:"center"},"No claimed nodes available in this Space: ",n),a.createElement(m.Z,{permission:"node:Create"},(function(e){return e?a.createElement(p,null):a.createElement(h,{spaceName:n})})))},f=t(93433),b=t(29439),y=(t(21249),t(57640),t(9924),t(85827),t(41539),t(25387),t(2490),t(72608),t(57327),t(88449),t(59849),t(26699),t(32023),t(92222),function(e){var n=e.setNodes,t=(0,a.useState)(""),o=(0,b.Z)(t,2),i=o[0],s=o[1],r=(0,a.useState)(!0),l=(0,b.Z)(r,2),c=l[0],d=l[1],u=(0,a.useState)([]),m=(0,b.Z)(u,2),h=m[0],p=m[1];return(0,a.useEffect)((function(){var e=h.map((function(e){return e.id}));e.length||!i||c||n((function(e){return i.split(",").reduce((function(e,n){return e.filter((function(e){return e.id!==n}))}),e)})),e.length&&e.join()!==i&&(n((function(n){var t=n.map((function(e){return e.id}));return e.reduce((function(e,n,o){return t.includes(n)?e:[].concat((0,f.Z)(e),[h[o]])}),n)})),d(!1)),s(e.join())}),[h]),{onRowSelected:p}}),_=["claimedNodeIds","data","roomId","setNodes","showHeader","onAddNodes","canAddNodes","addNodesGA"],w={connectionToCloud:!1},v=function(e){var n=e.claimedNodeIds,t=e.data,u=e.roomId,m=e.setNodes,h=e.showHeader,p=e.onAddNodes,f=e.canAddNodes,b=e.addNodesGA,v=(0,i.Z)(e,_),T=y({setNodes:m}).onRowSelected,k=(0,l.OS)(),x=(0,c.tE)(u),P=(0,a.useMemo)((function(){return{addEntry:{handleAction:p,tooltipText:"Add the selected nodes to the room",isDisabled:!f,disabledTooltipText:"Select some nodes to add to the room","data-ga":b}}}),[p,f]);return a.createElement(s.Flex,(0,o.Z)({column:!0,gap:3,padding:[2,0,0],flex:"grow",width:"100%",height:"100%"},v),h&&a.createElement(s.Flex,{margin:[0,0,5]},a.createElement(s.H3,null,"Available Nodes (",n.length,")")),h&&a.createElement(s.Flex,null,a.createElement(s.Text,{color:"textDescription"},"Nodes in ",k.name," that can be added to ",x.name)),n.length>0?a.createElement(r.Z,{"data-testid":"nodesTable-layout",overflow:"hidden",height:"100%"},a.createElement(d.Z,{enableSelection:!0,customNodes:t,showdDefaultRowActions:!1,showDefaultBulkActions:!1,customBulkActions:P,onRowSelected:T,columnVisibility:w,alwaysEnableNodeSelection:!0})):a.createElement(g,{spaceName:k.name}))}},86242:function(e,n,t){t.d(n,{Z:function(){return p}});var o=t(29439),i=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(26699),t(32023),t(67294)),a=t(62554),s=t(74059),r=t(37518),l=t(53338),c=t(25819),d=t(96929),u=t(46322),m=t(5429),h=t(93017),p=function(e){var n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).addNodesCallback,t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=(0,i.useState)(e),t=(0,o.Z)(n,2),s=t[0],r=t[1],l=(0,i.useState)([]),c=(0,o.Z)(l,2),d=c[0],u=c[1];(0,a.Z)((function(){u([s])}),300,[s]);var m=(0,i.useCallback)((function(e){return r(e.currentTarget.value)}),[r]);return[s,m,d]}(),p=(0,o.Z)(t,3),g=p[0],f=p[1],b=p[2],y=(0,i.useState)([]),_=(0,o.Z)(y,2),w=_[0],v=_[1],T=(0,s.th)(),k=(0,r.HM)(T,l.i_),x=(0,h.Z)(),P=(0,o.Z)(x,2)[1],C=(0,m.Z)((function(){return{enabled:!!k,fetch:function(){return(0,c.Fz)({roomId:k,spaceId:T})},initialValue:[],onFail:function(e){P(e)}}}),[k,T]),F=(0,o.Z)(C,1)[0],q=(0,d.X7)(e,"ids"),S=(0,i.useMemo)((function(){return F.map((function(e){return e.id})).filter((function(e){return!q.includes(e)}))}),[q,F]),D=(0,i.useMemo)((function(){return(0,u.C)(F)}),[F]),A=(0,d.iB)(T,e,{onSuccess:n});return[{claimedNodeIds:S,data:D,filter:g,setFilter:f,debouncedFilter:b,setNodes:v},{onAddNodes:(0,i.useCallback)((function(){return A(w.map((function(e){return e.id})))}),[A,w]),onAddNode:(0,i.useCallback)((function(e){A([e],{makeCallback:!1})}),[A]),selectedNodes:w}]}},89149:function(e,n,t){t.d(n,{Z:function(){return E}});var o=t(87462),i=t(29439),a=(t(66992),t(41539),t(88674),t(78783),t(33948),t(67294)),s=t(2145),r=t(57509),l=t(37518),c=t(74059),d=t(16645),u=t(7693),m=t(92903),h=t(668),p=t(97346),g=t(8741),f=t(28350),b=t(86242),y=t(78266),_=t(45987),w=t(33582),v=t(50308),T=t.n(v),k=(t(92222),t(60677)),x=t(16931),P=t(52428),C=(0,k.default)(r.Icon).withConfig({displayName:"copyInfo__StyledIcon",componentId:"sc-fgr5qt-0"})(["display:flex;align-self:center;cursor:pointer;position:absolute;right:16px;"]),F=function(e){var n=e.gaPrefix,t=void 0===n?"claim-nodes":n,o=e.info,i=e.title,s=void 0===i?"Claim token":i,l=e.type,c=void 0===l?"token":l,d=e.copyDisabled,u=void 0!==d&&d;return a.createElement(r.Flex,{cursor:"pointer","data-testid":"".concat(c,"Copy"),gap:2,onClick:(0,P.J)(o,{text:"".concat(s," copied to clipboard")}),position:"relative"},a.createElement(x.U8,{"data-testid":"".concat(c,"TextBlock")},o),!u&&a.createElement(C,{"data-testid":"".concat(c,"CopyButton"),"data-ga":"".concat(t,"::click-copy-").concat(c,"::allpages"),name:"copy",size:"small",color:"primary",onClick:(0,P.J)(o,{text:"".concat(s," copied to clipboard")})}))},q=function(e){var n=e.title,t=void 0===n?"":n,o=e.info,i=void 0===o?"Loading...":o,s=e.copyDisabled,l=void 0!==s&&s,c=e.onClose,d=void 0===c?T():c;return a.createElement(r.Modal,null,a.createElement(r.ModalContent,{width:{min:80,base:150},height:30},a.createElement(r.ModalHeader,null,a.createElement(r.H3,null,t),a.createElement(r.ModalCloseButton,{onClose:d})),a.createElement(r.ModalBody,null,a.createElement(F,{info:i,copyDisabled:l}))))},S=["spaceId"],D=function(e){var n,t,i=e.spaceId,s=(0,_.Z)(e,S),r=(0,w.Z)(i);return a.createElement(q,(0,o.Z)({title:"Claim Token",info:null===(n=r[0])||void 0===n?void 0:n.token,copyDisabled:!(null!==(t=r[0])&&void 0!==t&&t.token)},s))},A=t(41898),M=t(46667),N=(0,s.Z)((function(){return Promise.all([t.e(502),t.e(663),t.e(129),t.e(447)]).then(t.bind(t,66129))})),H={default:{modal:{"data-testid":"addWarRoomModal"},sidebarModalHeader:{"data-testid":"addWarRoomModal-header"},sidebarContent:{"data-testid":"addWarRoomModal-content",overflow:"auto",hasFooter:!1}},integrations:{modal:{"data-testid":"addIntegrationModal"},sidebarModalHeader:{"data-testid":"addIntegration-header"},sidebarContent:{"data-testid":"addIntegration-content",overflow:"hidden",hasFooter:!1,padding:[0],hasModalTitle:!1}}},E=function(e){var n=e.title,t=void 0===n?"Add Nodes":n,s=e.onClose,_=e.isSubmodal,w=e.flavour,v=void 0===w?"default":w,T=(0,c.th)(),k=(0,l.Hm)(),x=(0,l.Jb)(),P=null!==k&&void 0!==k&&k.loaded?k:x,C=null===P||void 0===P?void 0:P.id,F=(0,a.useMemo)((function(){return H[v]}),[v]),S="integrations"==v,E=S?h.u6:d.u6,O=(0,b.Z)(C,{addNodesCallback:s}),I=(0,i.Z)(O,2),R=I[0],L=I[1],B=L.onAddNodes,U=L.selectedNodes,j=(0,M.Z)(),G=(0,i.Z)(j,4),z=G[0],Y=G[2],X=G[3],Z=(0,M.Z)(),W=(0,i.Z)(Z,4),K=W[0],$=W[2],V=W[3];return a.createElement(a.Fragment,null,a.createElement(E,(0,o.Z)({right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:s},F.modal),a.createElement(u.x,(0,o.Z)({title:S?a.createElement(r.TextBig,{color:"textLite"},t):a.createElement(a.Fragment,null,"Manage room",a.createElement(r.TextBig,{color:"textLite"},"\xa0/ Add Nodes")),isSubmodal:_,onClose:s},F.sidebarModalHeader||{}),!S&&a.createElement(p.Z,{permission:"node:Create"},a.createElement(r.Flex,{gap:2},a.createElement(r.Button,{flavour:"borderless",onClick:Y},"Claim Token"),a.createElement(r.Button,{flavour:"borderless",onClick:$},"Room ID")))),!S&&a.createElement(m.B,{"data-testid":"addWarRoomModal-title"},"Add nodes to\xa0",null===P||void 0===P?void 0:P.name),a.createElement(d.TZ,F.sidebarContent||{},S?a.createElement(a.Suspense,{fallback:a.createElement(y.Z,{title:"Loading integrations..."})},a.createElement(N,{flavour:A.RV.addNodesModal})):a.createElement(p.Z,{permission:"node:Create"},a.createElement(a.Fragment,null,a.createElement(g.Z,null),!P.untouchable&&a.createElement(f.Z,(0,o.Z)({"data-testid":"addWarRoomModal-availableNodes"},R,{onAddNodes:B,canAddNodes:!!U.length,addNodesGA:"add-war-room-modal::click-add-node::global-view"})))))),!S&&z&&a.createElement(D,{spaceId:T,onClose:X}),!S&&K&&a.createElement(q,{title:"Room ID",info:C,copyDisabled:!C,onClose:V}))}},8741:function(e,n,t){t.d(n,{Z:function(){return p}});var o=t(29439),i=(t(21249),t(57640),t(9924),t(67294)),a=t(57509),s=t(74059),r=t(10034),l=t(35819),c=t(26017),d=t(35253),u=function(e){var n=e.label;return n?i.createElement(i.Fragment,null,i.createElement(a.Icon,{name:"code",size:"small"}),i.createElement(a.TextNano,{strong:!0,textTransform:"uppercase"},n)):null},m=(0,i.memo)(u),h=t(16931),p=(t(69826),t(41539),t(31672),t(2490),t(59461),function(e){var n=e.integrationId,t=e.rooms,u=void 0===t?[]:t,p=(0,r.RG)(),g=(0,s.OS)("plan"),f=function(){var e=(0,r.NE)();return function(n){return e.find((function(e){return e.id==n}))}}(),b=f(n),y=(0,i.useState)(0),_=(0,o.Z)(y,2),w=_[0],v=_[1],T=(0,i.useState)(d.N[g]||d.N.default),k=(0,o.Z)(T,2),x=k[0],P=k[1];return i.createElement(a.Flex,{column:!0,gap:4,width:"100%"},i.createElement(a.Flex,{justifyContent:"end"},i.createElement(l.Z,{isNightly:"nightly"==x,toggleNightly:function(e){var n=e.target.checked?"nightly":"stable";P(n)}})),b?i.createElement(c.Z,{integration:b,isNightly:"nightly"==x,rooms:u,navigateToSettings:!0}):i.createElement(a.Tabs,{selected:w,onChange:v,TabContent:h.m7,tabsProps:{gap:1,margin:[0,0,4,0]}},p.map((function(e){return i.createElement(a.Tab,{as:h.Sn,key:e.name,label:i.createElement(m,{label:e.name})},i.createElement(c.Z,{integration:e,isNightly:"nightly"==x,rooms:u,navigateToSettings:!0}))}))))})},56662:function(e,n,t){t.d(n,{U:function(){return h}});var o=t(29439),i=t(67294),a=t(89250),s=t(12599),r=t(57509),l=t(97323),c=t(74059),d=t(37518),u=t(16645),m=t(7693),h=function(e){var n=e.onClose,t=e.onDone,h=e.isSubmodal,p=void 0===h||h,g=(0,c.th)(),f=(0,i.useState)(""),b=(0,o.Z)(f,2),y=b[0],_=b[1],w=(0,r.useInputValue)({maxChars:255,value:""}),v=(0,o.Z)(w,3),T=v[0],k=v[1],x=v[2],P=function(e){var n=(0,a.s0)(),t=(0,c.uk)();return(0,i.useMemo)((function(){return function(o){var i=o.slug,a=(0,s.Gn)("/spaces/:spaceSlug/rooms/:roomSlug",{spaceSlug:t,roomSlug:i});e(),n(a)}}),[t])}(n),C=(0,d.Dq)(g,{onSuccess:t||P}),F=(0,i.useCallback)((function(){C({name:y,description:T})}),[y,T]);return i.createElement(u.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},i.createElement(m.x,{onClose:n,isSubmodal:p,title:"Create a new room"},i.createElement(r.Button,{label:"Add",onClick:F,disabled:!y})),i.createElement(u.TZ,null,i.createElement(l.Q,{roomName:y,setRoomName:_,roomDescription:T,charsDescIndicator:x,setRoomDescription:k,isCreateForm:!0})))}},7724:function(e,n,t){t.d(n,{CE:function(){return d},M5:function(){return m},R4:function(){return u}});var o=t(29439),i=(t(92222),t(67294)),a=t(57509),s=t(74059),r=t(46667),l=t(37518),c=t(33335),d=function(e){var n=1===e;return"Delete ".concat(e," ").concat(n?"room":"rooms")},u=function(e){return"Delete ".concat(e," room")},m=function(e){var n=e.name,t=e.roomsLength,o=e.spaceName,a=n||"".concat(t,1===t?" room":" rooms");return i.createElement(i.Fragment,null,"You are about to delete ",i.createElement("strong",null,a)," from ",i.createElement("strong",null,o)," space.",i.createElement("br",null),"This cannot be undone. Are you sure you want to continue?")};n.ZP=function(e){var n=e.id,t=e.name,d=e.navigateToParent,h=(0,s.OS)("name"),p=(0,l.tE)(n,"untouchable"),g=(0,c.gI)("room:Delete")&&!p,f=(0,l.IX)(n,{onSuccess:d}),b=(0,r.Z)(),y=(0,o.Z)(b,4),_=y[0],w=y[2],v=y[3];return g?i.createElement(i.Fragment,null,i.createElement(a.Button,{"data-testid":"manageWarRoom-delete",flavour:"hollow",onClick:w,label:"Delete room",danger:!0}),_&&i.createElement(a.ConfirmationDialog,{confirmLabel:"Yes, delete","data-ga":"delete-war-room-dialog","data-testid":"deleteWarRoomDialog",handleConfirm:f,handleDecline:v,message:i.createElement(m,{name:t,spaceName:h}),title:u(t)})):null}},97323:function(e,n,t){t.d(n,{Q:function(){return x}});var o=t(87462),i=t(29439),a=t(45987),s=(t(24603),t(74916),t(88386),t(39714),t(82526),t(41817),t(77601),t(67294)),r=t(57509),l=t(62200),c=t(95383),d=t(37518),u=t(33335),m=t(1229),h=t(46667),p="leave-war-room-dialog",g="leaveWarRoomDialog",f=function(e){var n=e.id,t=e.name,a=e.navigateToParent,l=(0,m.IT)(n,"ids"),c=(0,d.iC)(n,{onSuccess:a}),u=(0,d.tE)(n,"untouchable"),f=(0,h.Z)(),b=(0,i.Z)(f,4),y=b[0],_=b[2],w=b[3],v=1===l.length&&!u?{"data-ga":"".concat(p,"-last-member"),"data-testid":"".concat(g,"LastMember"),message:s.createElement(s.Fragment,null,"If you leave, ",s.createElement("strong",null,t)," room will be deleted immediately.",s.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(t," room")}:{"data-ga":p,"data-testid":g,message:s.createElement(s.Fragment,null,"You are about to leave ",s.createElement("strong",null,t)," room.",s.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(t," room")};return s.createElement(s.Fragment,null,s.createElement(r.Button,{"data-ga":"manage-war-room-tab::click-leave-war-room::manage-war-room-modal","data-testid":"manageWarRoom-leave",icon:"switch_off",flavour:"borderless",label:"Leave room",neutral:!0,padding:[0],width:"fit-content",onClick:_}),y&&s.createElement(r.ConfirmationDialog,(0,o.Z)({confirmLabel:"Yes, leave",handleConfirm:c,handleDecline:w},v)))},b=t(7724),y=t(30688),_=["charsIndicator","isDisabled","isValid","handleChange","setIsValid","setValidationMessage","validationMessage","value"],w=(0,y.A)([function(e){var n=e.length>=1;return(0,y.f)(n,"Give your room a name that's at least one character.")},function(e){var n=e.length<=20;return(0,y.f)(n,"A room's name can't exceed 20 characters.")}]),v=function(e){var n=e.charsIndicator,t=e.isDisabled,l=e.isValid,c=e.handleChange,d=e.setIsValid,u=e.setValidationMessage,m=e.validationMessage,h=e.value,p=(0,a.Z)(e,_),g=(0,r.useTouchedState)({}),f=(0,i.Z)(g,2),b=f[0],y=f[1];return(0,s.useEffect)((function(){var e=w(h),n=e.isValid,t=e.messages&&e.messages.length?e.messages[0]:void 0;!l&&n?d(!0):l&&!n&&d(!1),t&&u(t)}),[l,d,h,b,u]),s.createElement(r.TextInput,(0,o.Z)({"data-testid":"warRoomOptions-warRoomNameInput",label:"Room name",name:"createRoom",placeholder:"Enter your room's name",fieldMessage:"Tip: Use rooms to group your Nodes by their service, purpose, or location.",fieldIndicator:n,value:h,touched:b,onBlur:y,onChange:c,success:l,error:!l&&m,instantFeedback:"all",disabled:t,autoFocus:!0},p))},T=["id","navigateToParent","isCreateForm","roomName","setRoomName","roomDescription","setRoomDescription","charsDescIndicator","onSaveClick"],k=new RegExp(/^[\w\s\d]*?$/),x=function(e){var n=e.id,t=e.navigateToParent,m=e.isCreateForm,h=e.roomName,p=e.setRoomName,g=e.roomDescription,y=e.setRoomDescription,_=e.charsDescIndicator,w=e.onSaveClick,x=(0,a.Z)(e,T),P=(0,d.tE)(n),C=(0,c.J7)(),F=(0,s.useState)(!1),q=(0,i.Z)(F,2),S=q[0],D=q[1],A=(0,s.useState)(""),M=(0,i.Z)(A,2),N=M[0],H=M[1],E=(0,s.useState)(""),O=(0,i.Z)(E,2),I=O[0],R=O[1],L=(0,r.useInputValue)({maxChars:l.v$}),B=(0,i.Z)(L,1)[0],U=(0,s.useCallback)((function(e){return p(e.target.value)}),[p]),j=!!n,G=((0,u.gI)("room:LeaveAllNodes")||!P.untouchable)&&C.length>1&&P.isMember,z=(0,r.useTouchedState)({defaultState:!0}),Y=(0,i.Z)(z,2),X=Y[0],Z=Y[1],W=!P.name||h===P.name&&g===P.description;return(0,s.useEffect)((function(){R(k.test(g)&&X?"":"The description can only contain digits, letters, and spaces.")}),[X,g]),s.createElement(r.Flex,(0,o.Z)({column:!0,"data-testid":"manageWarRoom",flex:"grow",justifyContent:"between",height:"100%"},x),s.createElement(r.Flex,{column:!0,"data-testid":"manageWarRoom-settings",gap:2},s.createElement(r.Box,{"data-testid":"manageWarRoom-createRoomInputBox"},s.createElement(v,{"data-testid":"manageWarRoom-createRoomInput",value:h,handleChange:U,charsIndicator:B,validationMessage:N,setValidationMessage:H,isValid:S,setIsValid:D,isDisabled:j&&P.untouchable})),s.createElement(r.Box,{"data-testid":"manageWarRoom-descriptionInputBox"},s.createElement(r.TextInput,{"data-testid":"manageWarRoom-descriptionInput",label:"Description",name:"roomDescription",placeholder:"A room description...",instantFeedback:"positiveFirst",touched:X,onBlur:Z,fieldIndicator:_,error:""!==I&&I,success:""===I,value:g,onChange:y}))),s.createElement(r.Flex,{"data-testid":"manageWarRoom-actions"},s.createElement(r.Flex,{"data-testid":"manageWarRoom-deleteLeaveActions",gap:4},j&&G&&s.createElement(f,{id:n,name:P.name,navigateToParent:t}),j&&s.createElement(b.ZP,{id:n,name:h,navigateToParent:t})),!m&&s.createElement(r.Button,{"data-ga":"manage-war-room-tab::click-save::manage-war-room-modal","data-testid":"manageRoom-saveButton",label:"Save",onClick:w,disabled:W,margin:[0,0,0,"auto"]})))}},46322:function(e,n,t){t.d(n,{C:function(){return l},k:function(){return r}});var o=t(4942),i=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(46189)),a=t(88866);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var r=function(e){var n=e.data,t=e.untouchable,o=e.currentUserId,i=e.canRemoveUser;return n.reduce((function(e,n){var a=o===(null===n||void 0===n?void 0:n.id);return e.push({name:n.name,email:n.email,user:{avatarURL:n.avatarURL,name:n.name,email:n.email,id:n.id},type:n.role,disabled:!i||a||t}),e}),[])},l=function(e){return e.reduce((function(e,n){var t;return e.push(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({name:n.name||"",os:n.os.id||"",node:{id:n.id,name:n.name||"",os:n.os?"".concat(i.Z.assetsBaseURL,"/img/logos/os/").concat((null===(t=a.V[n.os.id])||void 0===t?void 0:t.logoFilename)||"placeholder.svg"):"".concat(i.Z.assetsBaseURL,"/img/logos/os/placeholder.svg")}},n)),e}),[])}},20031:function(e,n,t){var o=t(87462),i=t(67294),a=t(57509),s=t(82351);n.Z=function(e){return i.createElement(s.Z,{content:"Room you're a member of. You're able to receive notifications related to nodes in this room"},i.createElement(a.Icon,(0,o.Z)({name:"checkmark",width:"12px",height:"12px"},e)))}},41379:function(e,n,t){t.d(n,{A:function(){return p}});var o=t(29439),i=(t(92222),t(57327),t(41539),t(88449),t(2490),t(59849),t(26699),t(32023),t(67294)),a=t(92432),s=t(78710),r=t(68035),l=t(97945),c=t(48854),d=t(95248),u=t(33335),m=t(25819),h=t(96929),p=s.ZP?function(e){var n=e.id;return"rooms.".concat(n,".nodes")}:function(e){var n=e.id,t=e.spaceId;return"spaces.".concat(t,".rooms.").concat(n,".nodes")};n.Z=function(e){var n=e.id,t=e.spaceId,s=e.pollingInterval,g=void 0===s?63e3:s,f=e.polling,b=void 0===f||f,y=(0,d.XT)(),_=(0,h.X7)(n,"ids"),w=(0,i.useState)((function(){return(null===_||void 0===_?void 0:_.length)||0})),v=(0,o.Z)(w,2),T=v[0],k=v[1],x=(0,h.X7)(n,"loaded"),P=(0,u.gI)("room:Read");(0,i.useEffect)((function(){x&&y((function(e){return e&&e.filter((function(e){return _.includes(e)}))}))}),[_,x]),(0,i.useEffect)((function(){x&&T!==_.length&&((0,a.L)("node-count","node-count-changed-from-".concat(T,"-to-").concat(_.length),"","","","node-count-change"),k(_.length))}),[_.length,T,x]),(0,r.Z)((function(){return{key:p({id:n,spaceId:t}),autorun:!!P&&!!t&&!!n,fetch:function(){return(0,m.Fz)({roomId:n,spaceId:t})},polling:b,association:{getError:function(){return(0,h.kY)({id:n,key:"error"})},getIds:function(){return(0,h.kY)({id:n,key:"ids"})},getLoaded:function(){return(0,h.kY)({id:n,key:"loaded"})},getUpdatedAt:function(){return(0,h.kY)({id:n,key:"updatedAt"})}},sort:function(e,n){return e.name.localeCompare(n.name,void 0,{sensitivity:"accent"})},getResource:function(e){return(0,l.zP)({id:e})},getResourcesInitializer:function(){return l.Jz},getResourceInitialState:function(){return c.a},pollingOptions:{pollingInterval:g},maxCacheAge:900,force:!0}}),[t,n,g])}},45781:function(e,n,t){t.d(n,{e$:function(){return m},Mt:function(){return h}});var o=t(4942),i=(t(66992),t(41539),t(33948),t(47941),t(82526),t(57327),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(4480)),a=t(18446),s=t.n(a),r=t(74059),l={loaded:!1,entries:[],error:null,updatedAt:""},c=(0,i.xu)({key:"spaceAlerts",default:l});function d(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function u(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?d(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var m=(0,i.CG)({key:"spaceAlertState",get:function(e){var n=e.id,t=e.key;return function(e){return(0,e.get)(c(n))[t]}},set:function(e){var n=e.id,t=e.key;return function(e,o){var i=e.set;i(c(n),"error"!==t?function(e){return{loaded:!0,entries:s()(o,e.entries)?e.entries:o,updatedAt:(new Date).toISOString()}}:u(u({},l),{},{error:o}))}}}),h=function(e){return function(e,n){return(0,i.sJ)(m({id:e,key:n}))}((0,r.th)(),e)}},69019:function(e,n,t){t.d(n,{Cl:function(){return b},E3:function(){return d},Vs:function(){return y},ZQ:function(){return p},fA:function(){return w},fh:function(){return g},fz:function(){return _},uV:function(){return v}});var o=t(4942),i=(t(85827),t(41539),t(25387),t(2490),t(72608),t(92222),t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(26398)),a=t(50308),s=t.n(a),r=t(66152);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?l(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):l(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var d={id:null,name:"",description:"",commitment:!1,pricing:[],enrolledAt:null,currentPeriodFrom:null,currentPeriodTo:null,committedNodes:0,billingEmail:"",balance:{amount:0,currency:"usd"}},u={Pro:"pro",Professional:"pro",Community:"free",EarlyBird:"earlyBird",Business:"business"},m=function(e){var n=u[e.class],t=(0,r.k5)(e),i=Array.isArray(t.pricing)?t.pricing.reduce((function(e,n){return c(c({},e),{},(0,o.Z)({},n.type,n))}),{}):{};return c(c(c({},d),t),{},{pricing:i,slug:n})},h=function(e){return(0,r.k5)(e)},p=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/billing/plans"),{transform:function(e){return e.plans.reduce((function(e,n){var t=m(n),o=e[t.slug]||[];return"year"===t.interval?o.unshift(t):o.push(t),e[t.slug]=o,e}),{})}})},g=function(e){return i.Z.get("/api/v2/spaces/".concat(e,"/billing/plan"),{transform:m})},f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";return function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o="update"==e?i.Z.put:i.Z.post;return"function"!==typeof o?s():o("/api/v2/spaces/".concat(n,"/billing/plan"),(0,r.v)(t),{transform:function(e){return e.url}})}},b=function(e,n){return f("checkout")(e,n)},y=function(e,n){return f()(e,n)},_=function(e,n){return i.Z.get("/api/v2/spaces/".concat(e,"/billing/portal?redirect_url=").concat(encodeURIComponent(n)),{transform:function(e){return e.url}})},w=function(e,n){var t=n.after,o=n.before;return i.Z.get("/api/v2/spaces/".concat(e,"/billing/node-count?from=").concat(t,"&to=").concat(o))},v=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return i.Z.put("/api/v2/spaces/".concat(e,"/billing/plan/preview"),(0,r.v)(n),{transform:h})}},46715:function(e,n,t){t.d(n,{Gl:function(){return p},RP:function(){return _},SH:function(){return w},Zn:function(){return k},eY:function(){return T},fG:function(){return b}});var o=t(29439),i=(t(41539),t(88674),t(17727),t(67294)),a=t(4480),s=t(50308),r=t.n(s),l=t(74059),c=t(93017),d=t(69019),u=t(49489),m=[],h=(0,a.CG)({key:"plans",get:function(e){return function(){return(0,d.ZQ)(e)}}}),p=function(){var e,n=(0,l.th)(),t=(0,a.$P)(h(n));return{loaded:"loading"!==t.state,value:(null===(e=t.contents)||void 0===e?void 0:e.data)||m,hasError:"hasError"===t.state}},g=(0,a.CG)({key:"previewPlan",get:function(e){var n=e.spaceId,t=e.payload;return function(){return(0,d.uV)(n,t)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),f=function(e){var n;return u.Fi[null===e||void 0===e||null===(n=e.response)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.errorMsgKey]},b=function(e,n){var t,o=(0,l.th)(),i=(0,a.$P)(g({spaceId:o,payload:e,forceFetch:n}));return{loading:"loading"===i.state,value:(null===(t=i.contents)||void 0===t?void 0:t.data)||{},promoCodeError:"hasError"===i.state?f(i.contents):void 0}},y=(0,a.CG)({key:"currentPlan",get:function(e){return function(){return e?(0,d.fh)(e):Promise.resolve()}}}),_=function(){var e,n=(0,l.th)(),t=(0,a.$P)(y(n)),o=(0,a.C)(y(n));return{loaded:"loading"!==t.state,value:(null===(e=t.contents)||void 0===e?void 0:e.data)||d.E3,hasError:"hasError"===t.state,refresh:o}},w=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.href,n=(0,i.useState)(!1),t=(0,o.Z)(n,2),a=t[0],s=t[1],r=(0,l.th)();return[(0,i.useCallback)((function(){s(!0),(0,d.fz)(r,e).then((function(e){var n=e.data;return location.href=n})).finally((function(){return s(!1)}))}),[r,e]),a]},v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d.Vs,n=(0,c.Z)(),t=(0,o.Z)(n,2)[1],i=(0,l.th)(),a=_();return!a.loaded||a.hasError?r():function(n){return e(i,n).then((function(e){a.refresh(),null!==e&&void 0!==e&&e.data&&(location.href=e.data)})).catch(t)}},T=function(){return v(d.Cl)},k=function(){return v()}},33582:function(e,n,t){t.d(n,{Z:function(){return h}});var o=t(15861),i=t(64687),a=t.n(i),s=t(67294),r=t(4480),l=t(33335),c=t(26398),d=function(e){return c.Z.post("/api/v1/spaces/".concat(e,"/tokens"),void 0,{allow401:!0})},u=(0,r.xu)({key:"spaceClaimingTokens",default:[]}),m=(0,r.CG)({key:"claimingTokensState",get:function(e){return function(n){return(0,n.get)(u(e))}},set:function(e){return function(n,t){(0,n.set)(u(e),[t])}}}),h=function(e){var n=(0,r.sJ)(m(e)),t=(0,l.gI)("node:Create",e),i=(0,r._8)((function(e){var n=e.snapshot,t=e.set;return function(){var e=(0,o.Z)(a().mark((function e(o){var i,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getPromise(m(o));case 2:if(e.sent.length){e.next=9;break}return e.next=6,d(o);case 6:i=e.sent,s=i.data,t(m(o),s);case 9:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()}),[]);return(0,s.useEffect)((function(){t&&e&&i(e)}),[t,e]),n}},49489:function(e,n,t){t.d(n,{FC:function(){return i},Fi:function(){return s},Vc:function(){return o},go:function(){return a}});var o={free:{level:0,title:"Community"},earlyBird:{level:0,title:"Early Bird",features:['"Member" role available with existing permissions.','"Member" role with access to _All Nodes_ room.']},pro:{level:10,title:"Pro",features:["7 days of alert history and auditing events.",'Unlock the "Troubleshooter" role and add members to the space without providing management permission.',"Enable webhook alert notification integration."]},business:{level:20,title:"Business",features:["Up-to 90 days of alert history and topology events. Never miss an important event while troubleshooting.",'Unlock all user roles including "Manager", "Observer" and "Billing". Empower your teams to excel.',"Enable alert notification integrations (Slack, PagerDuty and more)."]}},i=["year","month"],a={year:"yearly",month:"monthly"},s={ErrInvalidPromotionCode:"Promotion code is invalid",ErrInactivePromotionCode:"Promotion code is inactive",ErrInvalidPromotionCodePlan:"Promotion code cannot be applied to this plan"}},36065:function(e,n,t){t.d(n,{Z:function(){return f}});var o=t(29439),i=t(67294),a=t(57509),s=t(83732),r=t(62200),l=t(16645),c=t(7693),d=t(92903),u=(t(24603),t(74916),t(88386),t(39714),t(77601),t(46585)),m=t(30688),h=new RegExp(/(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]|[!@#$%^&*()_+=\-])/),p=(0,m.A)([function(e){var n=e.length>=u.Pf;return(0,m.f)(n,"Please enter a name for the Space that is at least 5 characters.")},function(e){var n=e.length<=u.Qy;return(0,m.f)(n,"A Space's name can't exceed 20 characters.")},function(e){return h.test(e)?{isValid:!1,message:"There's an unexpected character in the Space's name. Use only alphanumberic characters (A-Z, a-z, 0-9) and spaces."}:{isValid:!0}}]),g=function(e){var n=e.value,t=e.isValid,s=e.setIsValid,r=e.charsIndicator,l=e.isDirty,c=e.handleChange,d=e.validationMessage,u=e.setValidationMessage,m=e.onKeyDown,h=(0,a.useTouchedState)({}),g=(0,o.Z)(h,2),f=g[0],b=g[1];return(0,i.useEffect)((function(){var e=p(n),o=e.isValid,i=e.messages&&e.messages.length?e.messages[0]:void 0;!t&&o?s(!0):t&&!o&&s(!1),i&&u(i)}),[t,n,f,s,u]),i.createElement(a.TextInput,{label:"Space name",name:"createWorkspace",placeholder:"Enter your Space's name",fieldMessage:"Give your Space a name that's between 5-20 characters. This cannot change.",fieldIndicator:r,value:n,touched:f,onBlur:b,onChange:c,success:t,error:!t&&d,instantFeedback:"positiveFirst",isDirty:l,onKeyDown:m})},f=function(e){var n=e.onClose,t=e.onDone,m=(0,i.useState)(!1),h=(0,o.Z)(m,2),p=h[0],f=h[1],b=(0,i.useState)(!1),y=(0,o.Z)(b,2),_=y[0],w=y[1],v=(0,a.useInputValue)({maxChars:u.Qy}),T=(0,o.Z)(v,4),k=T[0],x=T[1],P=T[2],C=T[3],F=(0,i.useState)(""),q=(0,o.Z)(F,2),S=q[0],D=q[1],A=(0,i.useCallback)((function(e){w(!1),n(),null===t||void 0===t||t(e)}),[n]),M=(0,s.Z)({onSuccess:A,onError:function(){return w(!1)}}),N=(0,i.useCallback)((function(){p&&(w(!0),M({name:k}))}),[k,p]);return i.createElement(l.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},i.createElement(c.x,{onClose:n,title:"Create Space"},i.createElement(a.Button,{disabled:!p,isLoading:_,loadingLabel:"Creating",label:"Save",onClick:N})),i.createElement(d.B,null,"Create a new Space"),i.createElement(l.TZ,null,i.createElement(g,{isDirty:C,isValid:p,setIsValid:f,value:k,handleChange:x,charsIndicator:P,validationMessage:S,setValidationMessage:D,onKeyDown:function(e){e.keyCode===r.DV&&p&&N()}})))}},2509:function(e,n,t){t.d(n,{Q$:function(){return d},Sr:function(){return f},bK:function(){return c},dH:function(){return h},eq:function(){return s},fM:function(){return u},fV:function(){return p},m3:function(){return a},xN:function(){return b},z2:function(){return g}});var o,i=t(4942),a="info",s="rooms",r="nodes",l="users",c="notifications",d="integrations",u="billing",m="integrations",h=[a,s,r,l,c,u,m],p=(o={},(0,i.Z)(o,a,"Info"),(0,i.Z)(o,s,"Rooms"),(0,i.Z)(o,r,"Nodes"),(0,i.Z)(o,l,"Users"),(0,i.Z)(o,c,"Alerts & Notifications"),(0,i.Z)(o,d,"Services"),(0,i.Z)(o,u,"Plan & Billing"),(0,i.Z)(o,m,"Integrations"),o),g=h[0],f="/spaces/:spaceSlug/settings/:settingsTab/*",b="/spaces/:spaceSlug/settings/:settingsTab/:settingsSubTab/*"},72671:function(e,n,t){t.d(n,{F:function(){return _}});var o=t(87462),i=t(29439),a=t(45987),s=(t(92222),t(26699),t(67294)),r=t(89250),l=t(57509),c=t(97346),d=t(91008),u=t(82351),m=t(53606),h=t(46585),p=t(13477),g=t(46667),f=t(46715),b=["currentPlan"],y=["id","isLastSpace","name","onClose"],_=function(e){return function(n){var t=n.currentPlan,o=(0,a.Z)(n,b),i=t.class,r=t.interval,c=t.billingEmail,u="year"===r?"yearly":"monthy",m="".concat(i," ").concat(u),h=!["Community","EarlyBird"].includes(i),p=!!c&&!h;return s.createElement(e,o,h&&s.createElement(s.Fragment,null,s.createElement(l.Text,null,"You are currently on ",s.createElement(l.Text,{strong:!0},m)," subscription, which will be cancelled automatically and any due credit from unused period will be given to your credit balance."),s.createElement(l.Text,null,"Any available credit with us won't be automatically lost. If you want to use it in the future, within the defined period on our"," ",s.createElement(d.Z,{href:"https://www.netdata.cloud/service-terms/",rel:"noopener noreferrer",target:"_blank"},"Terms of Service"),", or have any requests about previous invoices you can reach out to"," ",s.createElement(l.Text,{strong:!0},"support@netdata.cloud"))),p&&s.createElement(l.Text,null,"You will lose direct access to you invoices and billing information. If you want to retrieve this information in the future, you'll have to contact"," ",s.createElement(l.Text,{strong:!0},"support@netdata.cloud")))}},w=_((function(e){var n=e.spaceName,t=e.children;return s.createElement(l.Flex,{column:!0,gap:2},s.createElement(l.Text,null,"You are about to delete ",s.createElement("strong",null,n)," space."),t,s.createElement(l.Text,null,"Are you sure you want to continue?"))}));n.Z=function(e){var n=e.id,t=e.isLastSpace,d=e.name,b=e.onClose,_=(0,a.Z)(e,y),v=(0,r.s0)(),T=(0,m.Z)(n),k=(0,p.jr)(),x=(0,f.RP)().value,P=(0,g.Z)(),C=(0,i.Z)(P,4),F=C[0],q=C[2],S=C[3],D=(0,g.Z)(),A=(0,i.Z)(D,2),M=A[0],N=A[1],H=(0,s.useCallback)((function(e){b(),v("/spaces/".concat(e))}),[]);return k&&s.createElement(c.Z,{permission:"space:Delete"},s.createElement(u.Z,{align:"top",content:t&&h.T$.delete,isBasic:!0,stretch:"align"},s.createElement(l.Box,null,s.createElement(l.Button,(0,o.Z)({danger:!0,"data-ga":"manage-space-tab::click-delete-space::manage-space-modal","data-testid":"deleteSpace-button",disabled:t,flavour:"hollow",label:"DELETE SPACE",onClick:q},_)))),F&&s.createElement(l.ConfirmationDialog,{confirmLabel:M?"Deleting...":"Yes, delete","data-ga":"delete-space","data-testid":"deleteSpaceDialog",handleConfirm:function(){N(),T({onSuccess:H})},handleDecline:S,message:s.createElement(w,{spaceName:d,currentPlan:x}),title:"Delete ".concat(d," space"),isConfirmDisabled:M,isConfirmLoading:M,isDeclineDisabled:M}))}},54131:function(e,n,t){t.d(n,{Qj:function(){return i},uB:function(){return s},x3:function(){return a}});t(74916),t(77601);var o=/^[a-zA-Z0-9@_.-\s!]*$/,i={minLength:"Space name should be more than 4 characters",allowedChars:"Please use alphanumberic characters (A-Z, a-z, 0-9), spaces, periods and supported special characters @, -, _,."},a=function(e){return e.length<5?"minLength":!o.test(e)&&"allowedChars"},s=function(e){return!o.test(e)&&"allowedChars"}},73398:function(e,n,t){t.d(n,{Z:function(){return T}});var o=t(87462),i=t(45987),a=(t(92222),t(67294)),s=t(57509),r=t(45781),l=(t(69826),t(41539),t(31672),t(2490),t(59461),t(4480)),c=t(74059),d={alertCounter:{warning:0,critical:0},unreachableCount:0},u=(0,l.CG)({key:"roomAlertSummaryState",get:function(e){var n=e.id,t=e.key;return function(e){var o=e.get,i=o(c.BN),a=o((0,r.e$)({id:i,key:"entries"})).find((function(e){return e.id===n}))||d;return t?a[t]:a}}}),m=t(37518),h=t(67622),p=t(82351),g=t(60677),f=(0,g.default)(s.Flex).attrs({flex:{grow:0,shrink:0},width:2,height:2,margin:[0,1,0,0],round:1,background:"error",justifyContent:"center",alignItems:"center"}).withConfig({displayName:"indicators__ErrorIndicator",componentId:"sc-19hg3ay-0"})([""]),b=(0,g.default)(f).attrs({background:"warning"}).withConfig({displayName:"indicators__WarningIndicator",componentId:"sc-19hg3ay-1"})([""]),y=(0,g.default)(f).attrs({background:"textLite"}).withConfig({displayName:"indicators__UnreachableIndicator",componentId:"sc-19hg3ay-2"})([""]),_=t(81488),w=t(20031),v=["id","selectedId","spaceSlug","isSidebar","hideAlerts","differentiateIsMember"],T=function(e){var n=e.id,t=e.selectedId,c=e.spaceSlug,d=e.isSidebar,g=e.hideAlerts,T=e.differentiateIsMember,k=(0,i.Z)(e,v),x=function(e,n){return(0,l.sJ)(u({id:e,key:n}))}(n),P=x.alertCounter,C=P.critical,F=P.warning,q=x.unreachableCount,S=(0,m.tE)(n,"slug"),D=(0,m.tE)(n,"name"),A=(0,m.tE)(n,"isMember"),M=(0,r.Mt)("error"),N=(0,r.Mt)("updatedAt");return a.createElement(h.Z,(0,o.Z)({},!!c&&{to:"/spaces/".concat(c,"/rooms/").concat(S)},{testid:"roomLabel-warRoom-".concat(D),actions:g?null:a.createElement(p.Z,{content:a.createElement(_.Z,{error:M,text:"Room alerts",updatedAt:N}),isBasic:!0,align:"right"},a.createElement(s.Flex,{flex:!1,flexWrap:!1,justifyContent:"end",width:{min:6},height:{min:2}},C>0&&a.createElement(f,null),F>0&&a.createElement(b,null),q>0&&a.createElement(y,null))),icon:T&&A&&a.createElement(w.Z,null),iconColor:"successLite",iconHeight:"12px",iconWidth:"12px",gap:1,textProps:T&&!A&&{padding:[0,0,0,4]},selected:n===t,isSidebar:d,isSecondary:!A},k),D)}},22613:function(e,n,t){var o=t(87462),i=t(45987),a=t(67294),s=t(57509),r=t(55917),l=["onFilterClick","showAllRooms"];n.Z=function(e){var n=e.onFilterClick,t=e.showAllRooms,c=(0,i.Z)(e,l);return a.createElement(s.Flex,(0,o.Z)({gap:2,padding:[1,2],"data-testid":"roomFilterPills"},c),a.createElement(r.S,{flavour:t?"hollow":"default",onClick:n(!1),label:"My Rooms","data-ga":"roomFilterPills::click-my::global-view","data-testid":"roomFilterPills-showMy"}),a.createElement(r.S,{flavour:t?"default":"hollow",onClick:n(!0),label:"All Rooms","data-ga":"roomFilterPills::click-show-all::global-view","data-testid":"roomFilterPills-showAll"}))}},59636:function(e,n,t){var o=t(87462),i=t(29439),a=t(45987),s=(t(57327),t(41539),t(88449),t(2490),t(59849),t(21249),t(57640),t(9924),t(67294)),r=t(48286),l=t(57509),c=t(95383),d=t(74059),u=t(37518),m=t(33335),h=t(73398),p=t(22613),g=["isSidebar"];n.Z=function(e){var n=e.isSidebar,t=(0,a.Z)(e,g),f=(0,c.J7)(),b=(0,s.useState)(!1),y=(0,i.Z)(b,2),_=y[0],w=y[1],v=(0,d.th)(),T=(0,d.uk)();(0,r.Z)((function(){w(!1)}),[v]);var k=(0,m.gI)("room:ReadAll"),x=(0,s.useMemo)((function(){return f.filter((function(e){return e.isMember}))}),[f]),P=k&&x.length>0,C=P&&!_?x:f,F=(0,u.UL)();return s.createElement(s.Fragment,null,P&&s.createElement(p.Z,{onFilterClick:function(e){return function(n){n.stopPropagation(),w(e)}},showAllRooms:_}),C.map((function(e,i){var a=e.id,r=e.untouchable;return s.createElement(s.Fragment,{key:a},s.createElement(h.Z,(0,o.Z)({id:a,hideAlerts:!n,Wrapper:l.Text,isSidebar:n,differentiateIsMember:_,spaceSlug:T,selectedId:F},t)),r&&i!==C.length-1&&s.createElement(l.Flex,{border:{side:"top",color:"border"},margin:[1.5,0],"data-testid":"roomLabel-warRoomSeparator"}))})))}},55917:function(e,n,t){t.d(n,{S:function(){return s},x:function(){return a}});var o=t(60677),i=t(57509),a=(0,o.default)(i.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-i0gfkp-0"})(["transform:",";"],(function(e){return e.right?"rotate(0)":"rotate(180deg)"})),s=(0,o.default)(i.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-i0gfkp-1"})(["&&{padding:2px 16px;font-size:12px;height:auto;width:auto;min-width:96px;}"])},77872:function(e,n,t){var o=t(87462),i=t(4942),a=t(45987),s=t(29439),r=(t(92222),t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070),t(67294)),l=t(60677),c=t(89250),d=t(57509),u=t(82351),m=t(74059),h=["active","background","showFullname"],p=["active","spaceId","testIdPrefix","local","onClick","showFullname","color"];function g(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}var f=[],b=(0,l.default)(d.Flex).attrs((function(e){var n=e.active,t=(e.background,e.showFullname);return function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?g(Object(t),!0).forEach((function(n){(0,i.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):g(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}({width:t?"auto":7,height:7,background:n?"spaceSelected":"spaceIdle",justifyContent:"center",alignItems:"center",round:.5,padding:t?[0,1]:[0],margin:t?[0,0,1]:[0]},(0,a.Z)(e,h))})).withConfig({displayName:"spaceLabel__SpaceBox",componentId:"sc-1e67mnq-0"})(["cursor:pointer;&:hover{background:",";}"],(function(e){return e.active?(0,d.getColor)("spaceSelected"):(0,d.getColor)("spaceHovered")}));n.Z=function(e){var n=e.active,t=e.spaceId,i=e.testIdPrefix,l=e.local,h=void 0!==l&&l,g=e.onClick,y=e.showFullname,_=e.color,w=(0,a.Z)(e,p),v=(0,c.s0)(),T=(0,m.vu)(t),k=function(e){if(!e)return f;var n=e.split(" "),t=(0,s.Z)(n,2),o=t[0],i=t[1];return[o[0],i?i[0]:""]}(T.name),x=(0,s.Z)(k,2),P=x[0],C=x[1],F=(0,r.useCallback)((function(){return g?g(T):v(h?"/overview":"/spaces/".concat(T.slug))}),[T.slug,h,g]);return r.createElement(u.Z,{content:T.name,align:"right",isBasic:!0},r.createElement(b,(0,o.Z)({active:n,"data-testid":"".concat(i||"spaceLabel-space","-").concat(T.slug),onClick:F},w,{showFullname:y}),h?r.createElement(d.Icon,{name:"node",color:n?"text":"textLite"}):y?r.createElement(d.TextSmall,{strong:!0,color:n?"main":_||"textLite"},T.name):r.createElement(r.Fragment,null,r.createElement(d.TextSmall,{strong:!0,color:n?"text":_||"textLite"},P),r.createElement(d.TextSmall,{strong:!0,color:n?"textLite":_||"textLite"},C))))}},94666:function(e,n,t){t.d(n,{zm:function(){return h},ZN:function(){return p},WA:function(){return m},J9:function(){return g},Wy:function(){return y},nP:function(){return T},H4:function(){return f},kf:function(){return b},Qk:function(){return w}});t(47941),t(82526),t(38880),t(49337),t(33321),t(69070);var o=t(4942),i=(t(41539),t(15581),t(2490),t(34514),t(54747),t(26833),t(21249),t(57640),t(9924),t(57327),t(88449),t(59849),t(4480)),a=t(34912),s=t(13477),r=t(74059),l={ids:(0,i.xu)({key:"spaceMemberIds",default:[]}),updatedAt:(0,i.xu)({key:"spaceMembersUpdatedAt",default:""}),loaded:(0,i.xu)({key:"spaceMembersLoaded",default:!1})},c=(0,i.xu)({key:"spaceMemberRole",default:""});function d(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function u(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?d(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var m=(0,i.CG)({key:"spaceMemberState",get:function(e){var n=e.id,t=e.key;return function(e){return(0,e.get)(l[t](n))}},set:function(e){var n=e.id,t=e.key;return function(e,o){(0,e.set)(l[t](n),o)}}}),h=function(e,n){Object.values(l).forEach((function(t){return e(t(n))}))},p=(0,i.CG)({key:"spaceMemberRoleState",get:function(e){var n=e.id,t=e.spaceId;return function(e){return(0,e.get)(c({id:n,spaceId:t}))}},set:function(e){var n=e.id,t=e.spaceId;return function(e,o){(0,e.set)(c({id:n,spaceId:t}),o)}}}),g=(0,i.CG)({key:"spaceMembersRoleState",set:function(e){return function(n,t){var o=n.set;t.forEach((function(n){var t=n.id,i=n.role;o(p({id:t,spaceId:e}),i)}))}},get:function(e){var n=e.ids,t=e.spaceId;return function(e){var o=e.get;return n.map((function(e){return o(p({id:e,spaceId:t}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),f=function(){var e,n,t=(0,r.th)();return e=t,n="ids",(0,i.sJ)(m({id:e,key:n}))},b=function(e){var n=(0,r.th)();return(0,i.sJ)(g({ids:e,spaceId:n}))},y=function(){return"admin"===function(e){var n=(0,r.th)();return(0,i.sJ)(p({id:e,spaceId:n}))}((0,s.Iy)("id"))},_=(0,i.CG)({key:"currentSpaceMembersState",get:function(e){var n=e.ids,t=e.spaceId;return function(e){var o=e.get;return n.map((function(e){var n=o((0,a.mX)({id:e})),i=o(p({id:e,spaceId:t}));return u(u({},n),{},{role:i})}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),w=function(){var e=(0,r.th)(),n=f();return(0,i.sJ)(_({ids:n,spaceId:e}))},v=(0,i.CG)({key:"spaceAdminsState",get:function(e){var n=e.memberIds,t=e.spaceId;return function(e){return(0,e.get)(_({ids:n,spaceId:t})).filter((function(e){return"admin"===e.role}))}}}),T=function(){var e=(0,r.th)(),n=f();return(0,i.sJ)(v({memberIds:n,spaceId:e}))}},83732:function(e,n,t){var o=t(93433),i=t(15861),a=t(64687),s=t.n(a),r=(t(66992),t(41539),t(70189),t(78783),t(88921),t(96248),t(13599),t(11477),t(64362),t(15389),t(90401),t(45164),t(91238),t(54837),t(87485),t(56767),t(76651),t(61437),t(35285),t(39865),t(33948),t(92222),t(4480)),l=t(30266),c=t(74059),d=t(58502);n.Z=function(e){var n=e.onSuccess,t=e.onError,a=e.isDefault,u=void 0!==a&&a;return(0,r._8)((function(e){var a=e.set;return function(){var e=(0,i.Z)(s().mark((function e(i){var r,m,h,p,g,f,b,y;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=i.name,m=i.userId,h=i.email,e.prev=1,!u){e.next=8;break}return e.next=5,(0,l.A6)(m,h);case 5:e.t0=e.sent,e.next=11;break;case 8:return e.next=10,(0,l.wh)(r);case 10:e.t0=e.sent;case 11:p=e.t0,g=p.data,f=g.id,b=g.slug,y=g.name,a((0,d.ZP)(f),{id:f,slug:b,name:u?y:r,loaded:!0}),a((0,d.bo)(b),f),a((0,c.st)("ids"),(function(e){return e=(0,o.Z)(new Set([].concat((0,o.Z)(e),[f])))})),a((0,c.st)("loaded"),!0),n&&n(g),e.next=24;break;case 21:e.prev=21,e.t1=e.catch(1),t&&t();case 24:case"end":return e.stop()}}),e,null,[[1,21]])})));return function(n){return e.apply(this,arguments)}}()}),[n,t])}},53606:function(e,n,t){var o=t(15861),i=t(29439),a=t(64687),s=t.n(a),r=(t(57327),t(41539),t(88449),t(2490),t(59849),t(4480)),l=t(93017),c=t(30266),d=t(46585),u=t(74059),m=t(58502),h=t(57079),p=t(94666),g=t(95383);n.Z=function(e){var n=(0,l.Z)(),t=(0,i.Z)(n,2)[1];return(0,r._8)((function(n){var a=n.snapshot,r=n.set,l=n.reset;return function(){var n=(0,o.Z)(s().mark((function n(o){var f,b,y,_,w,v,T,k;return s().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return f=o.onSuccess,b=o.onError,n.next=3,a.getPromise((0,u.st)("ids"));case 3:if(y=n.sent,_=y.filter((function(n){return e!==n})),w=(0,i.Z)(_,1),v=w[0]){n.next=9;break}return t({header:"Spaces",text:d.T$.delete}),n.abrupt("return");case 9:if(n.t0=v,!n.t0){n.next=14;break}return n.next=13,a.getPromise((0,m.ZP)(v));case 13:n.t0=n.sent;case 14:return T=n.t0,k=T.slug,r((0,u.st)("ids"),_),r(h.Z,(function(n){return n.filter((function(n){return n!==e}))})),n.prev=18,n.next=21,(0,c.Ns)(e);case 21:f&&f(k),(0,p.zm)(l,e),(0,g.r1)(l,e),l((0,m.ZP)(e)),n.next=32;break;case 27:n.prev=27,n.t1=n.catch(18),r((0,u.st)("ids"),y),t(n.t1),b&&b();case 32:case"end":return n.stop()}}),n,null,[[18,27]])})));return function(e){return n.apply(this,arguments)}}()}),[e])}},20428:function(e,n,t){t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(15861),a=t(29439),s=t(64687),r=t.n(s),l=t(4480),c=t(74059),d=t(30266),u=t(93017);function m(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function h(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?m(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):m(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}n.Z=function(e){var n=(0,u.Z)(),t=(0,a.Z)(n,2),o=t[0],s=t[1];return(0,l._8)((function(n){var t=n.snapshot,a=n.set;return function(){var n=(0,i.Z)(r().mark((function n(i,l){var u,m,p;return r().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return u=l.onSuccess,m=l.onFail,n.next=3,t.getPromise((0,c.U7)({id:e}));case 3:return p=n.sent,a((0,c.U7)({id:e}),(function(e){return h(h({},e),i)})),n.prev=5,n.next=8,(0,d.$F)(e,i);case 8:o({header:"Space successfully updated!"}),u&&u(),n.next=17;break;case 12:n.prev=12,n.t0=n.catch(5),a((0,c.U7)({id:e}),p),s(n.t0),m&&m();case 17:case"end":return n.stop()}}),n,null,[[5,12]])})));return function(e,t){return n.apply(this,arguments)}}()}),[e])}},6308:function(e,n,t){t.d(n,{c:function(){return h}});var o=t(29439),i=(t(74916),t(77601),t(67294)),a=t(89250),s=t(5429),r=t(74059),l=t(25819),c=t(37518),d=t(53338),u=t(93017),m=t(78710),h=function(){var e=(0,a.TH)().pathname;return{isIntegrationsPath:/integrate-anything$/.test(e)}};n.Z=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).polling,n=void 0===e?0:e,t=(0,i.useState)(0),a=(0,o.Z)(t,2),h=a[0],p=a[1],g=(0,r.th)(),f=(0,c.HM)(g,d.i_),b=(0,u.Z)(),y=(0,o.Z)(b,2)[1],_=(0,i.useState)([]),w=(0,o.Z)(_,2),v=w[0],T=w[1];(0,i.useEffect)((function(){var e=null;return!m.ZP&&n&&(e=setInterval((function(){return p((function(e){return e+1}))}),n)),function(){clearInterval(e),e=null}}),[]);var k=(0,s.Z)((function(){return{enabled:!!f,fetch:function(){return(0,l.Fz)({roomId:f,spaceId:g})},initialValue:v,onFail:function(e){y(e)},isDefaultLoading:!0}}),[f,g,h]),x=(0,o.Z)(k,2),P=x[0],C=x[1];return(0,i.useEffect)((function(){C||T(P)}),[C,P]),{isEmptySpace:!m.ZP&&!C&&!P.length,loading:!m.ZP&&C,nodes:P}}},65351:function(e,n,t){var o=t(29439),i=t(67294),a=t(95248);n.Z=function(e,n,t,s){var r=(0,a.I0)("modal"),l=(0,o.Z)(r,2),c=l[0],d=l[1],u=(0,a.I0)("modalTab"),m=(0,o.Z)(u,2),h=m[0],p=m[1],g=(0,a.I0)("modalParams"),f=(0,o.Z)(g,2),b=f[0],y=f[1],_=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;"string"===typeof n&&p(n),d(e),t&&y(t)};return(0,i.useEffect)((function(){n&&_(t,s)}),[]),{isModalOpen:e===c,currentModalTab:h,handleChangeModalTab:p,handleOpenModal:_,handleCloseModal:function(){p(""),d(""),y()},params:b}}},55899:function(e,n,t){var o=t(15861),i=t(64687),a=t.n(i),s=t(67294),r=t(7335),l=t(89050),c=t(96929),d=t(74059),u=t(95383),m=t(19368);n.Z=function(){var e=(0,m.P)(),n=(0,u.yE)(),t=(0,d.th)(),i=(0,r.XU)(),h=(0,c.Ww)(t,n,{onSuccess:function(o){return(0,l.jG)({cacheKeyPrefix:e,nodeIds:o,roomIds:n,spaceId:t})}});return(0,s.useCallback)(function(){var e=(0,o.Z)(a().mark((function e(n){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,h(n);case 2:return e.next=4,i(n);case 4:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),[h,i])}},91128:function(e,n,t){var o=t(29439),i=t(67294),a=t(48286),s=t(46667),r=t(9058);n.Z=function(){var e=(0,s.Z)(!1),n=(0,o.Z)(e,2),t=n[0],l=n[1],c=(0,r.e)(),d=(0,i.useRef)(null);return(0,a.Z)((function(){if(c)return d.current=null===d.current&&c.getRoot().getAttribute("after")>0,c.getRoot().updateAttribute("paused",t),function(){return c&&c.getRoot().updateAttribute("paused",d.current)}}),[t]),l}},93033:function(e,n,t){var o=t(89250),i=t(67294),a=t(12599),s=t(74059),r=t(2509);n.Z=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).roomSlug,n=(0,s.uk)(),t=(0,o.s0)(),l=(0,o.TH)().pathname,c="".concat(l);return(0,i.useCallback)((function(){var o=e?(0,a.Gn)(r.xN,{spaceSlug:n,settingsTab:r.eq,settingsSubTab:e}):"/spaces/".concat(n,"/settings");t(o,{state:{previousUrlPath:c}})}),[c,t,e,n])}},27624:function(e,n,t){var o=t(37518),i=t(96929),a=t(89050),s=t(19368);n.Z=function(e){var n=(0,s.P)(),t=(0,o.UL)(),r=(0,o.tE)(e||t,"spaceId");return(0,i.nI)(r,e||t,{onSuccess:function(o){return(0,a.Br)({cacheKeyPrefix:n,nodeIds:o,roomId:e||t,spaceId:r})}})}},61152:function(e,n,t){var o=t(65351);n.Z=function(e,n){var t=(0,o.Z)(e,n),i=t.isModalOpen,a=t.handleOpenModal,s=t.handleCloseModal;return[i,i?s:a,a,s,t.params]}},78401:function(e,n,t){t.d(n,{O:function(){return c}});t(47941),t(82526),t(57327),t(88449),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var o=t(4942),i=t(29439),a=(t(85827),t(41539),t(25387),t(2490),t(72608),t(69720),t(26699),t(32023),t(52971)),s=t(85456);function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?r(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var c=function(){return Object.entries(a.Ew).reduce((function(e,n){var t=(0,i.Z)(n,2),a=t[0],r=t[1];return l(l({},e),{},(0,o.Z)({},a,(0,s.gs)(r.id)))}),{})};n.Z=function(e){var n=e.avatar,t=e.createdAt,o=e.email,i=e.id,r=e.name,l=e.spacesCount,c=e.verifiedEmail;if(window.envSettings.tracking&&(!o||!o.includes("@netdata.msdc.co"))&&(!i||"00000000-0000-0000-0000-000000000000"!==i)&&(!o||!o.includes("anonymous@netdata.cloud"))){var d,u=new Date,m=u.toISOString(),h=new Date(t),p=Math.floor((u-h)/864e5);if((0,s.gs)(a.Ew.analyticsCookies.id))window.dataLayer&&window.dataLayer.push({event:"UserInfoAvailable",user_id:i,userIdentifier:i,userName:r,userEmail:o,userAccountCreatedAt:t,userAccountCreatedDaysAgo:p,userAvatarURL:n,userEmailVerified:c,spacesCount:l}),window.gtag&&window.gtag("config","G-J69Z2JCTFB",{user_id:i}),null!==(d=window.posthog)&&void 0!==d&&d.__loaded&&(window.posthog.identify(i),window.posthog.people.set({email:o||"unknown email",name:r,netdata_cloud_account_created_at:t,netdata_cloud_account_created_days_ago:p}),window.posthog.register({netdata_cloud_account_created_days_ago:p}),window.posthog.register_once({event_source:"cloud",netdata_cloud_account_created_at:t,netdata_cloud_account_email:o||"unknown email",netdata_cloud_account_id:i,netdata_cloud_signed_in_at:m}))}}}}]); \ No newline at end of file
diff --git a/web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js b/web/gui/v2/18.89d32c7ee15496f689f3.chunk.js
index 70a1be1c..74ab70e1 100644
--- a/web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js
+++ b/web/gui/v2/18.89d32c7ee15496f689f3.chunk.js
@@ -1,2 +1,2 @@
-/*! For license information please see 18.d27b3a3f82b13e4e31b5.chunk.js.LICENSE.txt */
-!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="8f07beaf-963c-43c0-986c-7f64b5e19b44",t._sentryDebugIdIdentifier="sentry-dbid-8f07beaf-963c-43c0-986c-7f64b5e19b44")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[18],{19221:function(t,e,n){"use strict";n.d(e,{ZP:function(){return G}});var i=n(50840),o=n.n(i),r=n(50713);const s=t=>t&&t.enabled&&t.modifierKey,a=(t,e)=>t&&e[t+"Key"],c=(t,e)=>t&&!e[t+"Key"];function u(t,e,n){return void 0===t||("string"===typeof t?-1!==t.indexOf(e):"function"===typeof t&&-1!==t({chart:n}).indexOf(e))}function l(t,e){return"function"===typeof t&&(t=t({chart:e})),"string"===typeof t?{x:-1!==t.indexOf("x"),y:-1!==t.indexOf("y")}:{x:!1,y:!1}}function h(t,e,n){const{mode:i="xy",scaleMode:o,overScaleMode:s}=t||{},a=function({x:t,y:e},n){const i=n.scales,o=Object.keys(i);for(let r=0;r<o.length;r++){const n=i[o[r]];if(e>=n.top&&e<=n.bottom&&t>=n.left&&t<=n.right)return n}return null}(e,n),c=l(i,n),u=l(o,n);if(s){const t=l(s,n);for(const e of["x","y"])t[e]&&(u[e]=c[e],c[e]=!1)}if(a&&u[a.axis])return[a];const h=[];return(0,r.F)(n.scales,(function(t){c[t.axis]&&h.push(t)})),h}const f=new WeakMap;function d(t){let e=f.get(t);return e||(e={originalScaleLimits:{},updatedScaleLimits:{},handlers:{},panDelta:{}},f.set(t,e)),e}function p(t,e,n){const i=t.max-t.min,o=i*(e-1),r=t.isHorizontal()?n.x:n.y,s=Math.max(0,Math.min(1,(t.getValueForPixel(r)-t.min)/i||0));return{min:o*s,max:o*(1-s)}}function m(t,e,n,i,o){let s=n[i];if("original"===s){const n=t.originalScaleLimits[e.id][i];s=(0,r.v)(n.options,n.scale)}return(0,r.v)(s,o)}function v(t,{min:e,max:n},i,o=!1){const r=d(t.chart),{id:s,axis:a,options:c}=t,u=i&&(i[s]||i[a])||{},{minRange:l=0}=u,h=m(r,t,u,"min",-1/0),f=m(r,t,u,"max",1/0),p=o?Math.max(n-e,l):t.max-t.min,v=(p-n+e)/2;return n+=v,(e-=v)<h?(e=h,n=Math.min(h+p,f)):n>f&&(n=f,e=Math.max(f-p,h)),c.min=e,c.max=n,r.updatedScaleLimits[t.id]={min:e,max:n},t.parse(e)!==t.min||t.parse(n)!==t.max}const g=t=>0===t||isNaN(t)?0:t<0?Math.min(Math.round(t),-1):Math.max(Math.round(t),1);const y={second:500,minute:3e4,hour:18e5,day:432e5,week:3024e5,month:1296e6,quarter:5184e6,year:157248e5};function x(t,e,n,i=!1){const{min:o,max:r,options:s}=t,a=s.time&&s.time.round,c=y[a]||0,u=t.getValueForPixel(t.getPixelForValue(o+c)-e),l=t.getValueForPixel(t.getPixelForValue(r+c)-e),{min:h=-1/0,max:f=1/0}=i&&n&&n[t.axis]||{};return!!(isNaN(u)||isNaN(l)||u<h||l>f)||v(t,{min:u,max:l},n,i)}function T(t,e,n){return x(t,e,n,!0)}const b={category:function(t,e,n,i){const o=p(t,e,n);return t.min===t.max&&e<1&&function(t){const e=t.getLabels().length-1;t.min>0&&(t.min-=1),t.max<e&&(t.max+=1)}(t),v(t,{min:t.min+g(o.min),max:t.max-g(o.max)},i,!0)},default:function(t,e,n,i){const o=p(t,e,n);return v(t,{min:t.min+o.min,max:t.max-o.max},i,!0)}},w={default:function(t,e,n,i){v(t,function(t,e,n){const i=t.getValueForPixel(e),o=t.getValueForPixel(n);return{min:Math.min(i,o),max:Math.max(i,o)}}(t,e,n),i,!0)}},E={category:function(t,e,n){const i=t.getLabels().length-1;let{min:o,max:r}=t;const s=Math.max(r-o,1),a=Math.round(function(t){return t.isHorizontal()?t.width:t.height}(t)/Math.max(s,10)),c=Math.round(Math.abs(e/a));let u;return e<-a?(r=Math.min(r+c,i),o=1===s?r:r-s,u=r===i):e>a&&(o=Math.max(0,o-c),r=1===s?o:o+s,u=0===o),v(t,{min:o,max:r},n)||u},default:x,logarithmic:T,timeseries:T};function M(t,e){(0,r.F)(t,((n,i)=>{e[i]||delete t[i]}))}function S(t,e){const{scales:n}=t,{originalScaleLimits:i,updatedScaleLimits:o}=e;return(0,r.F)(n,(function(t){(function(t,e,n){const{id:i,options:{min:o,max:r}}=t;if(!e[i]||!n[i])return!0;const s=n[i];return s.min!==o||s.max!==r})(t,i,o)&&(i[t.id]={min:{scale:t.min,options:t.options.min},max:{scale:t.max,options:t.options.max}})})),M(i,n),M(o,n),i}function z(t,e,n,i){const o=b[t.type]||b.default;(0,r.Q)(o,[t,e,n,i])}function P(t,e,n,i,o){const s=w[t.type]||w.default;(0,r.Q)(s,[t,e,n,i,o])}function D(t){const e=t.chartArea;return{x:(e.left+e.right)/2,y:(e.top+e.bottom)/2}}function I(t,e,n="none"){const{x:i=1,y:o=1,focalPoint:s=D(t)}="number"===typeof e?{x:e,y:e}:e,a=d(t),{options:{limits:c,zoom:u}}=a;S(t,a);const l=1!==i,f=1!==o,p=h(u,s,t);(0,r.F)(p||t.scales,(function(t){t.isHorizontal()&&l?z(t,i,s,c):!t.isHorizontal()&&f&&z(t,o,s,c)})),t.update(n),(0,r.Q)(u.onZoom,[{chart:t}])}function C(t,e,n,i="none"){const o=d(t),{options:{limits:s,zoom:a}}=o,{mode:c="xy"}=a;S(t,o);const l=u(c,"x",t),h=u(c,"y",t);(0,r.F)(t.scales,(function(t){t.isHorizontal()&&l?P(t,e.x,n.x,s):!t.isHorizontal()&&h&&P(t,e.y,n.y,s)})),t.update(i),(0,r.Q)(a.onZoom,[{chart:t}])}function _(t){const e=d(t);let n=1,i=1;return(0,r.F)(t.scales,(function(t){const o=function(t,e){const n=t.originalScaleLimits[e];if(!n)return;const{min:i,max:o}=n;return(0,r.v)(o.options,o.scale)-(0,r.v)(i.options,i.scale)}(e,t.id);if(o){const e=Math.round(o/(t.max-t.min)*100)/100;n=Math.min(n,e),i=Math.max(i,e)}})),n<1?n:i}function A(t,e,n,i){const{panDelta:o}=i,s=o[t.id]||0;(0,r.s)(s)===(0,r.s)(e)&&(e+=s);const a=E[t.type]||E.default;(0,r.Q)(a,[t,e,n])?o[t.id]=0:o[t.id]=e}function O(t,e,n,i="none"){const{x:o=0,y:s=0}="number"===typeof e?{x:e,y:e}:e,a=d(t),{options:{pan:c,limits:u}}=a,{onPan:l}=c||{};S(t,a);const h=0!==o,f=0!==s;(0,r.F)(n||t.scales,(function(t){t.isHorizontal()&&h?A(t,o,u,a):!t.isHorizontal()&&f&&A(t,s,u,a)})),t.update(i),(0,r.Q)(l,[{chart:t}])}function R(t){const e=d(t);S(t,e);const n={};for(const i of Object.keys(t.scales)){const{min:t,max:o}=e.originalScaleLimits[i]||{min:{},max:{}};n[i]={min:t.scale,max:o.scale}}return n}function k(t,e){const{handlers:n}=d(t),i=n[e];i&&i.target&&(i.target.removeEventListener(e,i),delete n[e])}function Z(t,e,n,i){const{handlers:o,options:r}=d(t),s=o[n];s&&s.target===e||(k(t,n),o[n]=e=>i(t,e,r),o[n].target=e,e.addEventListener(n,o[n]))}function F(t,e){const n=d(t);n.dragStart&&(n.dragging=!0,n.dragEnd=e,t.update("none"))}function Y(t,e){const n=d(t);n.dragStart&&"Escape"===e.key&&(k(t,"keydown"),n.dragging=!1,n.dragStart=n.dragEnd=null,t.update("none"))}function N(t,e,n){const{onZoomStart:i,onZoomRejected:o}=n;if(i){const n=(0,r.z)(e,t);if(!1===(0,r.Q)(i,[{chart:t,event:e,point:n}]))return(0,r.Q)(o,[{chart:t,event:e}]),!1}}function X(t,e){const n=d(t),{pan:i,zoom:o={}}=n.options;if(0!==e.button||a(s(i),e)||c(s(o.drag),e))return(0,r.Q)(o.onZoomRejected,[{chart:t,event:e}]);!1!==N(t,e,o)&&(n.dragStart=e,Z(t,t.canvas,"mousemove",F),Z(t,window.document,"keydown",Y))}function L(t,e,n,i){const o=u(e,"x",t),s=u(e,"y",t);let{top:a,left:c,right:l,bottom:h,width:f,height:d}=t.chartArea;const p=(0,r.z)(n,t),m=(0,r.z)(i,t);o&&(c=Math.min(p.x,m.x),l=Math.max(p.x,m.x)),s&&(a=Math.min(p.y,m.y),h=Math.max(p.y,m.y));const v=l-c,g=h-a;return{left:c,top:a,right:l,bottom:h,width:v,height:g,zoomX:o&&v?1+(f-v)/f:1,zoomY:s&&g?1+(d-g)/d:1}}function q(t,e){const n=d(t);if(!n.dragStart)return;k(t,"mousemove");const{mode:i,onZoomComplete:o,drag:{threshold:s=0}}=n.options.zoom,a=L(t,i,n.dragStart,e),c=u(i,"x",t)?a.width:0,l=u(i,"y",t)?a.height:0,h=Math.sqrt(c*c+l*l);if(n.dragStart=n.dragEnd=null,h<=s)return n.dragging=!1,void t.update("none");C(t,{x:a.left,y:a.top},{x:a.right,y:a.bottom},"zoom"),setTimeout((()=>n.dragging=!1),500),(0,r.Q)(o,[{chart:t}])}function W(t,e){const{handlers:{onZoomComplete:n},options:{zoom:i}}=d(t);if(!function(t,e,n){if(c(s(n.wheel),e))(0,r.Q)(n.onZoomRejected,[{chart:t,event:e}]);else if(!1!==N(t,e,n)&&(e.cancelable&&e.preventDefault(),void 0!==e.deltaY))return!0}(t,e,i))return;const o=e.target.getBoundingClientRect(),a=1+(e.deltaY>=0?-i.wheel.speed:i.wheel.speed);I(t,{x:a,y:a,focalPoint:{x:e.clientX-o.left,y:e.clientY-o.top}}),n&&n()}function H(t,e,n,i){n&&(d(t).handlers[e]=function(t,e){let n;return function(){return clearTimeout(n),n=setTimeout(t,e),e}}((()=>(0,r.Q)(n,[{chart:t}])),i))}function j(t,e){return function(n,i){const{pan:o,zoom:u={}}=e.options;if(!o||!o.enabled)return!1;const l=i&&i.srcEvent;return!l||(!(!e.panning&&"mouse"===i.pointerType&&(c(s(o),l)||a(s(u.drag),l)))||((0,r.Q)(o.onPanRejected,[{chart:t,event:i}]),!1))}}function Q(t,e,n){if(e.scale){const{center:i,pointers:o}=n,r=1/e.scale*n.scale,s=n.target.getBoundingClientRect(),a=function(t,e){const n=Math.abs(t.clientX-e.clientX),i=Math.abs(t.clientY-e.clientY),o=n/i;let r,s;return o>.3&&o<1.7?r=s=!0:n>i?r=!0:s=!0,{x:r,y:s}}(o[0],o[1]),c=e.options.zoom.mode;I(t,{x:a.x&&u(c,"x",t)?r:1,y:a.y&&u(c,"y",t)?r:1,focalPoint:{x:i.x-s.left,y:i.y-s.top}}),e.scale=n.scale}}function V(t,e,n){const i=e.delta;i&&(e.panning=!0,O(t,{x:n.deltaX-i.x,y:n.deltaY-i.y},e.panScales),e.delta={x:n.deltaX,y:n.deltaY})}const U=new WeakMap;function B(t,e){const n=d(t),i=t.canvas,{pan:s,zoom:a}=e,c=new(o().Manager)(i);a&&a.pinch.enabled&&(c.add(new(o().Pinch)),c.on("pinchstart",(()=>function(t,e){e.options.zoom.pinch.enabled&&(e.scale=1)}(0,n))),c.on("pinch",(e=>Q(t,n,e))),c.on("pinchend",(e=>function(t,e,n){e.scale&&(Q(t,e,n),e.scale=null,(0,r.Q)(e.options.zoom.onZoomComplete,[{chart:t}]))}(t,n,e)))),s&&s.enabled&&(c.add(new(o().Pan)({threshold:s.threshold,enable:j(t,n)})),c.on("panstart",(e=>function(t,e,n){const{enabled:i,onPanStart:o,onPanRejected:s}=e.options.pan;if(!i)return;const a=n.target.getBoundingClientRect(),c={x:n.center.x-a.left,y:n.center.y-a.top};if(!1===(0,r.Q)(o,[{chart:t,event:n,point:c}]))return(0,r.Q)(s,[{chart:t,event:n}]);e.panScales=h(e.options.pan,c,t),e.delta={x:0,y:0},clearTimeout(e.panEndTimeout),V(t,e,n)}(t,n,e))),c.on("panmove",(e=>V(t,n,e))),c.on("panend",(()=>function(t,e){e.delta=null,e.panning&&(e.panEndTimeout=setTimeout((()=>e.panning=!1),500),(0,r.Q)(e.options.pan.onPanComplete,[{chart:t}]))}(t,n)))),U.set(t,c)}function K(t,e,n){const i=n.zoom.drag,{dragStart:o,dragEnd:r}=d(t);if(i.drawTime!==e||!r)return;const{left:s,top:a,width:c,height:u}=L(t,n.zoom.mode,o,r),l=t.ctx;l.save(),l.beginPath(),l.fillStyle=i.backgroundColor||"rgba(225,225,225,0.3)",l.fillRect(s,a,c,u),i.borderWidth>0&&(l.lineWidth=i.borderWidth,l.strokeStyle=i.borderColor||"rgba(225,225,225)",l.strokeRect(s,a,c,u)),l.restore()}var G={id:"zoom",version:"2.0.1",defaults:{pan:{enabled:!1,mode:"xy",threshold:10,modifierKey:null},zoom:{wheel:{enabled:!1,speed:.1,modifierKey:null},drag:{enabled:!1,drawTime:"beforeDatasetsDraw",modifierKey:null},pinch:{enabled:!1},mode:"xy"}},start:function(t,e,n){d(t).options=n,Object.prototype.hasOwnProperty.call(n.zoom,"enabled")&&console.warn("The option `zoom.enabled` is no longer supported. Please use `zoom.wheel.enabled`, `zoom.drag.enabled`, or `zoom.pinch.enabled`."),(Object.prototype.hasOwnProperty.call(n.zoom,"overScaleMode")||Object.prototype.hasOwnProperty.call(n.pan,"overScaleMode"))&&console.warn("The option `overScaleMode` is deprecated. Please use `scaleMode` instead (and update `mode` as desired)."),o()&&B(t,n),t.pan=(e,n,i)=>O(t,e,n,i),t.zoom=(e,n)=>I(t,e,n),t.zoomRect=(e,n,i)=>C(t,e,n,i),t.zoomScale=(e,n,i)=>function(t,e,n,i="none"){S(t,d(t)),v(t.scales[e],n,void 0,!0),t.update(i)}(t,e,n,i),t.resetZoom=e=>function(t,e="default"){const n=d(t),i=S(t,n);(0,r.F)(t.scales,(function(t){const e=t.options;i[t.id]?(e.min=i[t.id].min.options,e.max=i[t.id].max.options):(delete e.min,delete e.max)})),t.update(e),(0,r.Q)(n.options.zoom.onZoomComplete,[{chart:t}])}(t,e),t.getZoomLevel=()=>_(t),t.getInitialScaleBounds=()=>R(t),t.isZoomedOrPanned=()=>function(t){const e=R(t);for(const n of Object.keys(t.scales)){const{min:i,max:o}=e[n];if(void 0!==i&&t.scales[n].min!==i)return!0;if(void 0!==o&&t.scales[n].max!==o)return!0}return!1}(t)},beforeEvent(t){const e=d(t);if(e.panning||e.dragging)return!1},beforeUpdate:function(t,e,n){d(t).options=n,function(t,e){const n=t.canvas,{wheel:i,drag:o,onZoomComplete:r}=e.zoom;i.enabled?(Z(t,n,"wheel",W),H(t,"onZoomComplete",r,250)):k(t,"wheel"),o.enabled?(Z(t,n,"mousedown",X),Z(t,n.ownerDocument,"mouseup",q)):(k(t,"mousedown"),k(t,"mousemove"),k(t,"mouseup"),k(t,"keydown"))}(t,n)},beforeDatasetsDraw(t,e,n){K(t,"beforeDatasetsDraw",n)},afterDatasetsDraw(t,e,n){K(t,"afterDatasetsDraw",n)},beforeDraw(t,e,n){K(t,"beforeDraw",n)},afterDraw(t,e,n){K(t,"afterDraw",n)},stop:function(t){!function(t){k(t,"mousedown"),k(t,"mousemove"),k(t,"mouseup"),k(t,"wheel"),k(t,"click"),k(t,"keydown")}(t),o()&&function(t){const e=U.get(t);e&&(e.remove("pinchstart"),e.remove("pinch"),e.remove("pinchend"),e.remove("panstart"),e.remove("pan"),e.remove("panend"),e.destroy(),U.delete(t))}(t),function(t){f.delete(t)}(t)},panFunctions:E,zoomFunctions:b,zoomRectFunctions:w}},50840:function(t,e,n){var i;!function(o,r,s,a){"use strict";var c,u=["","webkit","Moz","MS","ms","o"],l=r.createElement("div"),h="function",f=Math.round,d=Math.abs,p=Date.now;function m(t,e,n){return setTimeout(w(t,n),e)}function v(t,e,n){return!!Array.isArray(t)&&(g(t,n[e],n),!0)}function g(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==a)for(i=0;i<t.length;)e.call(n,t[i],i,t),i++;else for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t)}function y(t,e,n){var i="DEPRECATED METHOD: "+e+"\n"+n+" AT \n";return function(){var e=new Error("get-stack-trace"),n=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",r=o.console&&(o.console.warn||o.console.log);return r&&r.call(o.console,i,n),t.apply(this,arguments)}}c="function"!==typeof Object.assign?function(t){if(t===a||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n<arguments.length;n++){var i=arguments[n];if(i!==a&&null!==i)for(var o in i)i.hasOwnProperty(o)&&(e[o]=i[o])}return e}:Object.assign;var x=y((function(t,e,n){for(var i=Object.keys(e),o=0;o<i.length;)(!n||n&&t[i[o]]===a)&&(t[i[o]]=e[i[o]]),o++;return t}),"extend","Use `assign`."),T=y((function(t,e){return x(t,e,!0)}),"merge","Use `assign`.");function b(t,e,n){var i,o=e.prototype;(i=t.prototype=Object.create(o)).constructor=t,i._super=o,n&&c(i,n)}function w(t,e){return function(){return t.apply(e,arguments)}}function E(t,e){return typeof t==h?t.apply(e&&e[0]||a,e):t}function M(t,e){return t===a?e:t}function S(t,e,n){g(I(e),(function(e){t.addEventListener(e,n,!1)}))}function z(t,e,n){g(I(e),(function(e){t.removeEventListener(e,n,!1)}))}function P(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function D(t,e){return t.indexOf(e)>-1}function I(t){return t.trim().split(/\s+/g)}function C(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;i<t.length;){if(n&&t[i][n]==e||!n&&t[i]===e)return i;i++}return-1}function _(t){return Array.prototype.slice.call(t,0)}function A(t,e,n){for(var i=[],o=[],r=0;r<t.length;){var s=e?t[r][e]:t[r];C(o,s)<0&&i.push(t[r]),o[r]=s,r++}return n&&(i=e?i.sort((function(t,n){return t[e]>n[e]})):i.sort()),i}function O(t,e){for(var n,i,o=e[0].toUpperCase()+e.slice(1),r=0;r<u.length;){if((i=(n=u[r])?n+o:e)in t)return i;r++}return a}var R=1;function k(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||o}var Z="ontouchstart"in o,F=O(o,"PointerEvent")!==a,Y=Z&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),N="touch",X="mouse",L=25,q=1,W=2,H=4,j=8,Q=1,V=2,U=4,B=8,K=16,G=V|U,$=B|K,J=G|$,tt=["x","y"],et=["clientX","clientY"];function nt(t,e){var n=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){E(t.options.enable,[t])&&n.handler(e)},this.init()}function it(t,e,n){var i=n.pointers.length,o=n.changedPointers.length,r=e&q&&i-o===0,s=e&(H|j)&&i-o===0;n.isFirst=!!r,n.isFinal=!!s,r&&(t.session={}),n.eventType=e,function(t,e){var n=t.session,i=e.pointers,o=i.length;n.firstInput||(n.firstInput=ot(e));o>1&&!n.firstMultiple?n.firstMultiple=ot(e):1===o&&(n.firstMultiple=!1);var r=n.firstInput,s=n.firstMultiple,c=s?s.center:r.center,u=e.center=rt(i);e.timeStamp=p(),e.deltaTime=e.timeStamp-r.timeStamp,e.angle=ut(c,u),e.distance=ct(c,u),function(t,e){var n=e.center,i=t.offsetDelta||{},o=t.prevDelta||{},r=t.prevInput||{};e.eventType!==q&&r.eventType!==H||(o=t.prevDelta={x:r.deltaX||0,y:r.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y});e.deltaX=o.x+(n.x-i.x),e.deltaY=o.y+(n.y-i.y)}(n,e),e.offsetDirection=at(e.deltaX,e.deltaY);var l=st(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=l.x,e.overallVelocityY=l.y,e.overallVelocity=d(l.x)>d(l.y)?l.x:l.y,e.scale=s?(h=s.pointers,f=i,ct(f[0],f[1],et)/ct(h[0],h[1],et)):1,e.rotation=s?function(t,e){return ut(e[1],e[0],et)+ut(t[1],t[0],et)}(s.pointers,i):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,function(t,e){var n,i,o,r,s=t.lastInterval||e,c=e.timeStamp-s.timeStamp;if(e.eventType!=j&&(c>L||s.velocity===a)){var u=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,h=st(c,u,l);i=h.x,o=h.y,n=d(h.x)>d(h.y)?h.x:h.y,r=at(u,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,o=s.velocityY,r=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=o,e.direction=r}(n,e);var h,f;var m=t.element;P(e.srcEvent.target,m)&&(m=e.srcEvent.target);e.target=m}(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function ot(t){for(var e=[],n=0;n<t.pointers.length;)e[n]={clientX:f(t.pointers[n].clientX),clientY:f(t.pointers[n].clientY)},n++;return{timeStamp:p(),pointers:e,center:rt(e),deltaX:t.deltaX,deltaY:t.deltaY}}function rt(t){var e=t.length;if(1===e)return{x:f(t[0].clientX),y:f(t[0].clientY)};for(var n=0,i=0,o=0;o<e;)n+=t[o].clientX,i+=t[o].clientY,o++;return{x:f(n/e),y:f(i/e)}}function st(t,e,n){return{x:e/t||0,y:n/t||0}}function at(t,e){return t===e?Q:d(t)>=d(e)?t<0?V:U:e<0?B:K}function ct(t,e,n){n||(n=tt);var i=e[n[0]]-t[n[0]],o=e[n[1]]-t[n[1]];return Math.sqrt(i*i+o*o)}function ut(t,e,n){n||(n=tt);var i=e[n[0]]-t[n[0]],o=e[n[1]]-t[n[1]];return 180*Math.atan2(o,i)/Math.PI}nt.prototype={handler:function(){},init:function(){this.evEl&&S(this.element,this.evEl,this.domHandler),this.evTarget&&S(this.target,this.evTarget,this.domHandler),this.evWin&&S(k(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&z(this.element,this.evEl,this.domHandler),this.evTarget&&z(this.target,this.evTarget,this.domHandler),this.evWin&&z(k(this.element),this.evWin,this.domHandler)}};var lt={mousedown:q,mousemove:W,mouseup:H},ht="mousedown",ft="mousemove mouseup";function dt(){this.evEl=ht,this.evWin=ft,this.pressed=!1,nt.apply(this,arguments)}b(dt,nt,{handler:function(t){var e=lt[t.type];e&q&&0===t.button&&(this.pressed=!0),e&W&&1!==t.which&&(e=H),this.pressed&&(e&H&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:X,srcEvent:t}))}});var pt={pointerdown:q,pointermove:W,pointerup:H,pointercancel:j,pointerout:j},mt={2:N,3:"pen",4:X,5:"kinect"},vt="pointerdown",gt="pointermove pointerup pointercancel";function yt(){this.evEl=vt,this.evWin=gt,nt.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}o.MSPointerEvent&&!o.PointerEvent&&(vt="MSPointerDown",gt="MSPointerMove MSPointerUp MSPointerCancel"),b(yt,nt,{handler:function(t){var e=this.store,n=!1,i=t.type.toLowerCase().replace("ms",""),o=pt[i],r=mt[t.pointerType]||t.pointerType,s=r==N,a=C(e,t.pointerId,"pointerId");o&q&&(0===t.button||s)?a<0&&(e.push(t),a=e.length-1):o&(H|j)&&(n=!0),a<0||(e[a]=t,this.callback(this.manager,o,{pointers:e,changedPointers:[t],pointerType:r,srcEvent:t}),n&&e.splice(a,1))}});var xt={touchstart:q,touchmove:W,touchend:H,touchcancel:j};function Tt(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,nt.apply(this,arguments)}function bt(t,e){var n=_(t.touches),i=_(t.changedTouches);return e&(H|j)&&(n=A(n.concat(i),"identifier",!0)),[n,i]}b(Tt,nt,{handler:function(t){var e=xt[t.type];if(e===q&&(this.started=!0),this.started){var n=bt.call(this,t,e);e&(H|j)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:N,srcEvent:t})}}});var wt={touchstart:q,touchmove:W,touchend:H,touchcancel:j},Et="touchstart touchmove touchend touchcancel";function Mt(){this.evTarget=Et,this.targetIds={},nt.apply(this,arguments)}function St(t,e){var n=_(t.touches),i=this.targetIds;if(e&(q|W)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var o,r,s=_(t.changedTouches),a=[],c=this.target;if(r=n.filter((function(t){return P(t.target,c)})),e===q)for(o=0;o<r.length;)i[r[o].identifier]=!0,o++;for(o=0;o<s.length;)i[s[o].identifier]&&a.push(s[o]),e&(H|j)&&delete i[s[o].identifier],o++;return a.length?[A(r.concat(a),"identifier",!0),a]:void 0}b(Mt,nt,{handler:function(t){var e=wt[t.type],n=St.call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:N,srcEvent:t})}});var zt=2500;function Pt(){nt.apply(this,arguments);var t=w(this.handler,this);this.touch=new Mt(this.manager,t),this.mouse=new dt(this.manager,t),this.primaryTouch=null,this.lastTouches=[]}function Dt(t,e){t&q?(this.primaryTouch=e.changedPointers[0].identifier,It.call(this,e)):t&(H|j)&&It.call(this,e)}function It(t){var e=t.changedPointers[0];if(e.identifier===this.primaryTouch){var n={x:e.clientX,y:e.clientY};this.lastTouches.push(n);var i=this.lastTouches;setTimeout((function(){var t=i.indexOf(n);t>-1&&i.splice(t,1)}),zt)}}function Ct(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,i=0;i<this.lastTouches.length;i++){var o=this.lastTouches[i],r=Math.abs(e-o.x),s=Math.abs(n-o.y);if(r<=25&&s<=25)return!0}return!1}b(Pt,nt,{handler:function(t,e,n){var i=n.pointerType==N,o=n.pointerType==X;if(!(o&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if(i)Dt.call(this,e,n);else if(o&&Ct.call(this,n))return;this.callback(t,e,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var _t=O(l.style,"touchAction"),At=_t!==a,Ot="compute",Rt="auto",kt="manipulation",Zt="none",Ft="pan-x",Yt="pan-y",Nt=function(){if(!At)return!1;var t={},e=o.CSS&&o.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){t[n]=!e||o.CSS.supports("touch-action",n)})),t}();function Xt(t,e){this.manager=t,this.set(e)}Xt.prototype={set:function(t){t==Ot&&(t=this.compute()),At&&this.manager.element.style&&Nt[t]&&(this.manager.element.style[_t]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return g(this.manager.recognizers,(function(e){E(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))})),function(t){if(D(t,Zt))return Zt;var e=D(t,Ft),n=D(t,Yt);if(e&&n)return Zt;if(e||n)return e?Ft:Yt;if(D(t,kt))return kt;return Rt}(t.join(" "))},preventDefaults:function(t){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)e.preventDefault();else{var i=this.actions,o=D(i,Zt)&&!Nt[Zt],r=D(i,Yt)&&!Nt[Yt],s=D(i,Ft)&&!Nt[Ft];if(o){var a=1===t.pointers.length,c=t.distance<2,u=t.deltaTime<250;if(a&&c&&u)return}if(!s||!r)return o||r&&n&G||s&&n&$?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var Lt=1,qt=2,Wt=4,Ht=8,jt=Ht,Qt=16,Vt=32;function Ut(t){this.options=c({},this.defaults,t||{}),this.id=R++,this.manager=null,this.options.enable=M(this.options.enable,!0),this.state=Lt,this.simultaneous={},this.requireFail=[]}function Bt(t){return t&Qt?"cancel":t&Ht?"end":t&Wt?"move":t&qt?"start":""}function Kt(t){return t==K?"down":t==B?"up":t==V?"left":t==U?"right":""}function Gt(t,e){var n=e.manager;return n?n.get(t):t}function $t(){Ut.apply(this,arguments)}function Jt(){$t.apply(this,arguments),this.pX=null,this.pY=null}function te(){$t.apply(this,arguments)}function ee(){Ut.apply(this,arguments),this._timer=null,this._input=null}function ne(){$t.apply(this,arguments)}function ie(){$t.apply(this,arguments)}function oe(){Ut.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function re(t,e){return(e=e||{}).recognizers=M(e.recognizers,re.defaults.preset),new se(t,e)}Ut.prototype={defaults:{},set:function(t){return c(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(v(t,"recognizeWith",this))return this;var e=this.simultaneous;return e[(t=Gt(t,this)).id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return v(t,"dropRecognizeWith",this)||(t=Gt(t,this),delete this.simultaneous[t.id]),this},requireFailure:function(t){if(v(t,"requireFailure",this))return this;var e=this.requireFail;return-1===C(e,t=Gt(t,this))&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(v(t,"dropRequireFailure",this))return this;t=Gt(t,this);var e=C(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function i(n){e.manager.emit(n,t)}n<Ht&&i(e.options.event+Bt(n)),i(e.options.event),t.additionalEvent&&i(t.additionalEvent),n>=Ht&&i(e.options.event+Bt(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=Vt},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(Vt|Lt)))return!1;t++}return!0},recognize:function(t){var e=c({},t);if(!E(this.options.enable,[this,e]))return this.reset(),void(this.state=Vt);this.state&(jt|Qt|Vt)&&(this.state=Lt),this.state=this.process(e),this.state&(qt|Wt|Ht|Qt)&&this.tryEmit(e)},process:function(t){},getTouchAction:function(){},reset:function(){}},b($t,Ut,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,n=t.eventType,i=e&(qt|Wt),o=this.attrTest(t);return i&&(n&j||!o)?e|Qt:i||o?n&H?e|Ht:e&qt?e|Wt:qt:Vt}}),b(Jt,$t,{defaults:{event:"pan",threshold:10,pointers:1,direction:J},getTouchAction:function(){var t=this.options.direction,e=[];return t&G&&e.push(Yt),t&$&&e.push(Ft),e},directionTest:function(t){var e=this.options,n=!0,i=t.distance,o=t.direction,r=t.deltaX,s=t.deltaY;return o&e.direction||(e.direction&G?(o=0===r?Q:r<0?V:U,n=r!=this.pX,i=Math.abs(t.deltaX)):(o=0===s?Q:s<0?B:K,n=s!=this.pY,i=Math.abs(t.deltaY))),t.direction=o,n&&i>e.threshold&&o&e.direction},attrTest:function(t){return $t.prototype.attrTest.call(this,t)&&(this.state&qt||!(this.state&qt)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Kt(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),b(te,$t,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Zt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&qt)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),b(ee,Ut,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Rt]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance<e.threshold,o=t.deltaTime>e.time;if(this._input=t,!i||!n||t.eventType&(H|j)&&!o)this.reset();else if(t.eventType&q)this.reset(),this._timer=m((function(){this.state=jt,this.tryEmit()}),e.time,this);else if(t.eventType&H)return jt;return Vt},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===jt&&(t&&t.eventType&H?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=p(),this.manager.emit(this.options.event,this._input)))}}),b(ne,$t,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Zt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&qt)}}),b(ie,$t,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:G|$,pointers:1},getTouchAction:function(){return Jt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(G|$)?e=t.overallVelocity:n&G?e=t.overallVelocityX:n&$&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&d(e)>this.options.velocity&&t.eventType&H},emit:function(t){var e=Kt(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),b(oe,Ut,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[kt]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance<e.threshold,o=t.deltaTime<e.time;if(this.reset(),t.eventType&q&&0===this.count)return this.failTimeout();if(i&&o&&n){if(t.eventType!=H)return this.failTimeout();var r=!this.pTime||t.timeStamp-this.pTime<e.interval,s=!this.pCenter||ct(this.pCenter,t.center)<e.posThreshold;if(this.pTime=t.timeStamp,this.pCenter=t.center,s&&r?this.count+=1:this.count=1,this._input=t,0===this.count%e.taps)return this.hasRequireFailures()?(this._timer=m((function(){this.state=jt,this.tryEmit()}),e.interval,this),qt):jt}return Vt},failTimeout:function(){return this._timer=m((function(){this.state=Vt}),this.options.interval,this),Vt},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==jt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),re.VERSION="2.0.7",re.defaults={domEvents:!1,touchAction:Ot,enable:!0,inputTarget:null,inputClass:null,preset:[[ne,{enable:!1}],[te,{enable:!1},["rotate"]],[ie,{direction:G}],[Jt,{direction:G},["swipe"]],[oe],[oe,{event:"doubletap",taps:2},["tap"]],[ee]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function se(t,e){var n;this.options=c({},re.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=new((n=this).options.inputClass||(F?yt:Y?Mt:Z?Pt:dt))(n,it),this.touchAction=new Xt(this,this.options.touchAction),ae(this,!0),g(this.options.recognizers,(function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])}),this)}function ae(t,e){var n,i=t.element;i.style&&(g(t.options.cssProps,(function(o,r){n=O(i.style,r),e?(t.oldCssProps[n]=i.style[n],i.style[n]=o):i.style[n]=t.oldCssProps[n]||""})),e||(t.oldCssProps={}))}se.prototype={set:function(t){return c(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?2:1},recognize:function(t){var e=this.session;if(!e.stopped){var n;this.touchAction.preventDefaults(t);var i=this.recognizers,o=e.curRecognizer;(!o||o&&o.state&jt)&&(o=e.curRecognizer=null);for(var r=0;r<i.length;)n=i[r],2===e.stopped||o&&n!=o&&!n.canRecognizeWith(o)?n.reset():n.recognize(t),!o&&n.state&(qt|Wt|Ht)&&(o=e.curRecognizer=n),r++}},get:function(t){if(t instanceof Ut)return t;for(var e=this.recognizers,n=0;n<e.length;n++)if(e[n].options.event==t)return e[n];return null},add:function(t){if(v(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(v(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,n=C(e,t);-1!==n&&(e.splice(n,1),this.touchAction.update())}return this},on:function(t,e){if(t!==a&&e!==a){var n=this.handlers;return g(I(t),(function(t){n[t]=n[t]||[],n[t].push(e)})),this}},off:function(t,e){if(t!==a){var n=this.handlers;return g(I(t),(function(t){e?n[t]&&n[t].splice(C(n[t],e),1):delete n[t]})),this}},emit:function(t,e){this.options.domEvents&&function(t,e){var n=r.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=e,e.target.dispatchEvent(n)}(t,e);var n=this.handlers[t]&&this.handlers[t].slice();if(n&&n.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var i=0;i<n.length;)n[i](e),i++}},destroy:function(){this.element&&ae(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},c(re,{INPUT_START:q,INPUT_MOVE:W,INPUT_END:H,INPUT_CANCEL:j,STATE_POSSIBLE:Lt,STATE_BEGAN:qt,STATE_CHANGED:Wt,STATE_ENDED:Ht,STATE_RECOGNIZED:jt,STATE_CANCELLED:Qt,STATE_FAILED:Vt,DIRECTION_NONE:Q,DIRECTION_LEFT:V,DIRECTION_RIGHT:U,DIRECTION_UP:B,DIRECTION_DOWN:K,DIRECTION_HORIZONTAL:G,DIRECTION_VERTICAL:$,DIRECTION_ALL:J,Manager:se,Input:nt,TouchAction:Xt,TouchInput:Mt,MouseInput:dt,PointerEventInput:yt,TouchMouseInput:Pt,SingleTouchInput:Tt,Recognizer:Ut,AttrRecognizer:$t,Tap:oe,Pan:Jt,Swipe:ie,Pinch:te,Rotate:ne,Press:ee,on:S,off:z,each:g,merge:T,extend:x,assign:c,inherit:b,bindFn:w,prefixed:O}),("undefined"!==typeof o?o:"undefined"!==typeof self?self:{}).Hammer=re,(i=function(){return re}.call(e,n,e,t))===a||(t.exports=i)}(window,document)},50361:function(t,e,n){var i=n(85990);t.exports=function(t){return i(t,5)}},41203:function(t,e,n){"use strict";var i=n(23148),o=n(19013),r=n(76417),s=n(23855),a=n(12274),c=n(49546),u=n(51820),l=n(61973),h=n(58545),f=n(78343),d=n(77349),p=n(63500),m=n(11640),v=n(8791),g=n(21593),y=n(59910),x=n(11699),T=n(69690),b=n(76972),w=n(67803),E=n(13882),M=n(93645);var S=n(50157);var z=n(5001);var P=n(69119),D=n(584),I=n(43703),C=n(94431),_=n(38148);var A=n(83894),O=n(67090),R=n(4135);var k=n(10876);const Z={datetime:"MMM d, yyyy, h:mm:ss aaaa",millisecond:"h:mm:ss.SSS aaaa",second:"h:mm:ss aaaa",minute:"h:mm aaaa",hour:"ha",day:"MMM d",week:"PP",month:"MMM yyyy",quarter:"qqq - yyyy",year:"yyyy"};i.IQ._date.override({_id:"date-fns",formats:function(){return Z},parse:function(t,e){if(null===t||"undefined"===typeof t)return null;const n=typeof t;return"number"===n||t instanceof Date?t=(0,o.default)(t):"string"===n&&(t="string"===typeof e?(0,r.default)(t,e,new Date,this.options):(0,s.default)(t,this.options)),(0,a.default)(t)?t.getTime():null},format:function(t,e){return(0,c.default)(t,e,this.options)},add:function(t,e,n){switch(n){case"millisecond":return(0,u.Z)(t,e);case"second":return(0,l.Z)(t,e);case"minute":return(0,h.default)(t,e);case"hour":return(0,f.default)(t,e);case"day":return(0,d.default)(t,e);case"week":return(0,p.default)(t,e);case"month":return(0,m.default)(t,e);case"quarter":return(0,v.default)(t,e);case"year":return(0,g.default)(t,e);default:return t}},diff:function(t,e,n){switch(n){case"millisecond":return(0,y.Z)(t,e);case"second":return(0,x.Z)(t,e);case"minute":return(0,T.Z)(t,e);case"hour":return(0,b.Z)(t,e);case"day":return(0,w.Z)(t,e);case"week":return function(t,e,n){(0,E.Z)(2,arguments);var i=(0,w.Z)(t,e)/7;return(0,M.u)(null===n||void 0===n?void 0:n.roundingMethod)(i)}(t,e);case"month":return(0,S.Z)(t,e);case"quarter":return function(t,e,n){(0,E.Z)(2,arguments);var i=(0,S.Z)(t,e)/3;return(0,M.u)(null===n||void 0===n?void 0:n.roundingMethod)(i)}(t,e);case"year":return(0,z.Z)(t,e);default:return 0}},startOf:function(t,e,n){switch(e){case"second":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMilliseconds(0),e}(t);case"minute":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setSeconds(0,0),e}(t);case"hour":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMinutes(0,0,0),e}(t);case"day":return(0,P.default)(t);case"week":return(0,D.default)(t);case"isoWeek":return(0,D.default)(t,{weekStartsOn:+n});case"month":return(0,I.default)(t);case"quarter":return(0,C.default)(t);case"year":return(0,_.default)(t);default:return t}},endOf:function(t,e){switch(e){case"second":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMilliseconds(999),e}(t);case"minute":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setSeconds(59,999),e}(t);case"hour":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMinutes(59,59,999),e}(t);case"day":return(0,A.default)(t);case"week":return(0,O.default)(t);case"month":return(0,R.default)(t);case"quarter":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t),n=e.getMonth(),i=n-n%3+3;return e.setMonth(i,0),e.setHours(23,59,59,999),e}(t);case"year":return(0,k.default)(t);default:return t}}})}}]); \ No newline at end of file
+/*! For license information please see 18.89d32c7ee15496f689f3.chunk.js.LICENSE.txt */
+!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="8f07beaf-963c-43c0-986c-7f64b5e19b44",t._sentryDebugIdIdentifier="sentry-dbid-8f07beaf-963c-43c0-986c-7f64b5e19b44")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[18],{19221:function(t,e,n){"use strict";n.d(e,{ZP:function(){return G}});var i=n(50840),o=n.n(i),r=n(50713);const s=t=>t&&t.enabled&&t.modifierKey,a=(t,e)=>t&&e[t+"Key"],c=(t,e)=>t&&!e[t+"Key"];function u(t,e,n){return void 0===t||("string"===typeof t?-1!==t.indexOf(e):"function"===typeof t&&-1!==t({chart:n}).indexOf(e))}function l(t,e){return"function"===typeof t&&(t=t({chart:e})),"string"===typeof t?{x:-1!==t.indexOf("x"),y:-1!==t.indexOf("y")}:{x:!1,y:!1}}function h(t,e,n){const{mode:i="xy",scaleMode:o,overScaleMode:s}=t||{},a=function({x:t,y:e},n){const i=n.scales,o=Object.keys(i);for(let r=0;r<o.length;r++){const n=i[o[r]];if(e>=n.top&&e<=n.bottom&&t>=n.left&&t<=n.right)return n}return null}(e,n),c=l(i,n),u=l(o,n);if(s){const t=l(s,n);for(const e of["x","y"])t[e]&&(u[e]=c[e],c[e]=!1)}if(a&&u[a.axis])return[a];const h=[];return(0,r.F)(n.scales,(function(t){c[t.axis]&&h.push(t)})),h}const f=new WeakMap;function d(t){let e=f.get(t);return e||(e={originalScaleLimits:{},updatedScaleLimits:{},handlers:{},panDelta:{}},f.set(t,e)),e}function p(t,e,n){const i=t.max-t.min,o=i*(e-1),r=t.isHorizontal()?n.x:n.y,s=Math.max(0,Math.min(1,(t.getValueForPixel(r)-t.min)/i||0));return{min:o*s,max:o*(1-s)}}function m(t,e,n,i,o){let s=n[i];if("original"===s){const n=t.originalScaleLimits[e.id][i];s=(0,r.v)(n.options,n.scale)}return(0,r.v)(s,o)}function v(t,{min:e,max:n},i,o=!1){const r=d(t.chart),{id:s,axis:a,options:c}=t,u=i&&(i[s]||i[a])||{},{minRange:l=0}=u,h=m(r,t,u,"min",-1/0),f=m(r,t,u,"max",1/0),p=o?Math.max(n-e,l):t.max-t.min,v=(p-n+e)/2;return n+=v,(e-=v)<h?(e=h,n=Math.min(h+p,f)):n>f&&(n=f,e=Math.max(f-p,h)),c.min=e,c.max=n,r.updatedScaleLimits[t.id]={min:e,max:n},t.parse(e)!==t.min||t.parse(n)!==t.max}const g=t=>0===t||isNaN(t)?0:t<0?Math.min(Math.round(t),-1):Math.max(Math.round(t),1);const y={second:500,minute:3e4,hour:18e5,day:432e5,week:3024e5,month:1296e6,quarter:5184e6,year:157248e5};function x(t,e,n,i=!1){const{min:o,max:r,options:s}=t,a=s.time&&s.time.round,c=y[a]||0,u=t.getValueForPixel(t.getPixelForValue(o+c)-e),l=t.getValueForPixel(t.getPixelForValue(r+c)-e),{min:h=-1/0,max:f=1/0}=i&&n&&n[t.axis]||{};return!!(isNaN(u)||isNaN(l)||u<h||l>f)||v(t,{min:u,max:l},n,i)}function T(t,e,n){return x(t,e,n,!0)}const b={category:function(t,e,n,i){const o=p(t,e,n);return t.min===t.max&&e<1&&function(t){const e=t.getLabels().length-1;t.min>0&&(t.min-=1),t.max<e&&(t.max+=1)}(t),v(t,{min:t.min+g(o.min),max:t.max-g(o.max)},i,!0)},default:function(t,e,n,i){const o=p(t,e,n);return v(t,{min:t.min+o.min,max:t.max-o.max},i,!0)}},w={default:function(t,e,n,i){v(t,function(t,e,n){const i=t.getValueForPixel(e),o=t.getValueForPixel(n);return{min:Math.min(i,o),max:Math.max(i,o)}}(t,e,n),i,!0)}},E={category:function(t,e,n){const i=t.getLabels().length-1;let{min:o,max:r}=t;const s=Math.max(r-o,1),a=Math.round(function(t){return t.isHorizontal()?t.width:t.height}(t)/Math.max(s,10)),c=Math.round(Math.abs(e/a));let u;return e<-a?(r=Math.min(r+c,i),o=1===s?r:r-s,u=r===i):e>a&&(o=Math.max(0,o-c),r=1===s?o:o+s,u=0===o),v(t,{min:o,max:r},n)||u},default:x,logarithmic:T,timeseries:T};function M(t,e){(0,r.F)(t,((n,i)=>{e[i]||delete t[i]}))}function S(t,e){const{scales:n}=t,{originalScaleLimits:i,updatedScaleLimits:o}=e;return(0,r.F)(n,(function(t){(function(t,e,n){const{id:i,options:{min:o,max:r}}=t;if(!e[i]||!n[i])return!0;const s=n[i];return s.min!==o||s.max!==r})(t,i,o)&&(i[t.id]={min:{scale:t.min,options:t.options.min},max:{scale:t.max,options:t.options.max}})})),M(i,n),M(o,n),i}function z(t,e,n,i){const o=b[t.type]||b.default;(0,r.Q)(o,[t,e,n,i])}function P(t,e,n,i,o){const s=w[t.type]||w.default;(0,r.Q)(s,[t,e,n,i,o])}function D(t){const e=t.chartArea;return{x:(e.left+e.right)/2,y:(e.top+e.bottom)/2}}function I(t,e,n="none"){const{x:i=1,y:o=1,focalPoint:s=D(t)}="number"===typeof e?{x:e,y:e}:e,a=d(t),{options:{limits:c,zoom:u}}=a;S(t,a);const l=1!==i,f=1!==o,p=h(u,s,t);(0,r.F)(p||t.scales,(function(t){t.isHorizontal()&&l?z(t,i,s,c):!t.isHorizontal()&&f&&z(t,o,s,c)})),t.update(n),(0,r.Q)(u.onZoom,[{chart:t}])}function C(t,e,n,i="none"){const o=d(t),{options:{limits:s,zoom:a}}=o,{mode:c="xy"}=a;S(t,o);const l=u(c,"x",t),h=u(c,"y",t);(0,r.F)(t.scales,(function(t){t.isHorizontal()&&l?P(t,e.x,n.x,s):!t.isHorizontal()&&h&&P(t,e.y,n.y,s)})),t.update(i),(0,r.Q)(a.onZoom,[{chart:t}])}function _(t){const e=d(t);let n=1,i=1;return(0,r.F)(t.scales,(function(t){const o=function(t,e){const n=t.originalScaleLimits[e];if(!n)return;const{min:i,max:o}=n;return(0,r.v)(o.options,o.scale)-(0,r.v)(i.options,i.scale)}(e,t.id);if(o){const e=Math.round(o/(t.max-t.min)*100)/100;n=Math.min(n,e),i=Math.max(i,e)}})),n<1?n:i}function A(t,e,n,i){const{panDelta:o}=i,s=o[t.id]||0;(0,r.s)(s)===(0,r.s)(e)&&(e+=s);const a=E[t.type]||E.default;(0,r.Q)(a,[t,e,n])?o[t.id]=0:o[t.id]=e}function O(t,e,n,i="none"){const{x:o=0,y:s=0}="number"===typeof e?{x:e,y:e}:e,a=d(t),{options:{pan:c,limits:u}}=a,{onPan:l}=c||{};S(t,a);const h=0!==o,f=0!==s;(0,r.F)(n||t.scales,(function(t){t.isHorizontal()&&h?A(t,o,u,a):!t.isHorizontal()&&f&&A(t,s,u,a)})),t.update(i),(0,r.Q)(l,[{chart:t}])}function R(t){const e=d(t);S(t,e);const n={};for(const i of Object.keys(t.scales)){const{min:t,max:o}=e.originalScaleLimits[i]||{min:{},max:{}};n[i]={min:t.scale,max:o.scale}}return n}function k(t,e){const{handlers:n}=d(t),i=n[e];i&&i.target&&(i.target.removeEventListener(e,i),delete n[e])}function Z(t,e,n,i){const{handlers:o,options:r}=d(t),s=o[n];s&&s.target===e||(k(t,n),o[n]=e=>i(t,e,r),o[n].target=e,e.addEventListener(n,o[n]))}function F(t,e){const n=d(t);n.dragStart&&(n.dragging=!0,n.dragEnd=e,t.update("none"))}function Y(t,e){const n=d(t);n.dragStart&&"Escape"===e.key&&(k(t,"keydown"),n.dragging=!1,n.dragStart=n.dragEnd=null,t.update("none"))}function N(t,e,n){const{onZoomStart:i,onZoomRejected:o}=n;if(i){const n=(0,r.z)(e,t);if(!1===(0,r.Q)(i,[{chart:t,event:e,point:n}]))return(0,r.Q)(o,[{chart:t,event:e}]),!1}}function X(t,e){const n=d(t),{pan:i,zoom:o={}}=n.options;if(0!==e.button||a(s(i),e)||c(s(o.drag),e))return(0,r.Q)(o.onZoomRejected,[{chart:t,event:e}]);!1!==N(t,e,o)&&(n.dragStart=e,Z(t,t.canvas,"mousemove",F),Z(t,window.document,"keydown",Y))}function L(t,e,n,i){const o=u(e,"x",t),s=u(e,"y",t);let{top:a,left:c,right:l,bottom:h,width:f,height:d}=t.chartArea;const p=(0,r.z)(n,t),m=(0,r.z)(i,t);o&&(c=Math.min(p.x,m.x),l=Math.max(p.x,m.x)),s&&(a=Math.min(p.y,m.y),h=Math.max(p.y,m.y));const v=l-c,g=h-a;return{left:c,top:a,right:l,bottom:h,width:v,height:g,zoomX:o&&v?1+(f-v)/f:1,zoomY:s&&g?1+(d-g)/d:1}}function q(t,e){const n=d(t);if(!n.dragStart)return;k(t,"mousemove");const{mode:i,onZoomComplete:o,drag:{threshold:s=0}}=n.options.zoom,a=L(t,i,n.dragStart,e),c=u(i,"x",t)?a.width:0,l=u(i,"y",t)?a.height:0,h=Math.sqrt(c*c+l*l);if(n.dragStart=n.dragEnd=null,h<=s)return n.dragging=!1,void t.update("none");C(t,{x:a.left,y:a.top},{x:a.right,y:a.bottom},"zoom"),setTimeout((()=>n.dragging=!1),500),(0,r.Q)(o,[{chart:t}])}function W(t,e){const{handlers:{onZoomComplete:n},options:{zoom:i}}=d(t);if(!function(t,e,n){if(c(s(n.wheel),e))(0,r.Q)(n.onZoomRejected,[{chart:t,event:e}]);else if(!1!==N(t,e,n)&&(e.cancelable&&e.preventDefault(),void 0!==e.deltaY))return!0}(t,e,i))return;const o=e.target.getBoundingClientRect(),a=1+(e.deltaY>=0?-i.wheel.speed:i.wheel.speed);I(t,{x:a,y:a,focalPoint:{x:e.clientX-o.left,y:e.clientY-o.top}}),n&&n()}function H(t,e,n,i){n&&(d(t).handlers[e]=function(t,e){let n;return function(){return clearTimeout(n),n=setTimeout(t,e),e}}((()=>(0,r.Q)(n,[{chart:t}])),i))}function j(t,e){return function(n,i){const{pan:o,zoom:u={}}=e.options;if(!o||!o.enabled)return!1;const l=i&&i.srcEvent;return!l||(!(!e.panning&&"mouse"===i.pointerType&&(c(s(o),l)||a(s(u.drag),l)))||((0,r.Q)(o.onPanRejected,[{chart:t,event:i}]),!1))}}function Q(t,e,n){if(e.scale){const{center:i,pointers:o}=n,r=1/e.scale*n.scale,s=n.target.getBoundingClientRect(),a=function(t,e){const n=Math.abs(t.clientX-e.clientX),i=Math.abs(t.clientY-e.clientY),o=n/i;let r,s;return o>.3&&o<1.7?r=s=!0:n>i?r=!0:s=!0,{x:r,y:s}}(o[0],o[1]),c=e.options.zoom.mode;I(t,{x:a.x&&u(c,"x",t)?r:1,y:a.y&&u(c,"y",t)?r:1,focalPoint:{x:i.x-s.left,y:i.y-s.top}}),e.scale=n.scale}}function V(t,e,n){const i=e.delta;i&&(e.panning=!0,O(t,{x:n.deltaX-i.x,y:n.deltaY-i.y},e.panScales),e.delta={x:n.deltaX,y:n.deltaY})}const U=new WeakMap;function B(t,e){const n=d(t),i=t.canvas,{pan:s,zoom:a}=e,c=new(o().Manager)(i);a&&a.pinch.enabled&&(c.add(new(o().Pinch)),c.on("pinchstart",(()=>function(t,e){e.options.zoom.pinch.enabled&&(e.scale=1)}(0,n))),c.on("pinch",(e=>Q(t,n,e))),c.on("pinchend",(e=>function(t,e,n){e.scale&&(Q(t,e,n),e.scale=null,(0,r.Q)(e.options.zoom.onZoomComplete,[{chart:t}]))}(t,n,e)))),s&&s.enabled&&(c.add(new(o().Pan)({threshold:s.threshold,enable:j(t,n)})),c.on("panstart",(e=>function(t,e,n){const{enabled:i,onPanStart:o,onPanRejected:s}=e.options.pan;if(!i)return;const a=n.target.getBoundingClientRect(),c={x:n.center.x-a.left,y:n.center.y-a.top};if(!1===(0,r.Q)(o,[{chart:t,event:n,point:c}]))return(0,r.Q)(s,[{chart:t,event:n}]);e.panScales=h(e.options.pan,c,t),e.delta={x:0,y:0},clearTimeout(e.panEndTimeout),V(t,e,n)}(t,n,e))),c.on("panmove",(e=>V(t,n,e))),c.on("panend",(()=>function(t,e){e.delta=null,e.panning&&(e.panEndTimeout=setTimeout((()=>e.panning=!1),500),(0,r.Q)(e.options.pan.onPanComplete,[{chart:t}]))}(t,n)))),U.set(t,c)}function K(t,e,n){const i=n.zoom.drag,{dragStart:o,dragEnd:r}=d(t);if(i.drawTime!==e||!r)return;const{left:s,top:a,width:c,height:u}=L(t,n.zoom.mode,o,r),l=t.ctx;l.save(),l.beginPath(),l.fillStyle=i.backgroundColor||"rgba(225,225,225,0.3)",l.fillRect(s,a,c,u),i.borderWidth>0&&(l.lineWidth=i.borderWidth,l.strokeStyle=i.borderColor||"rgba(225,225,225)",l.strokeRect(s,a,c,u)),l.restore()}var G={id:"zoom",version:"2.0.1",defaults:{pan:{enabled:!1,mode:"xy",threshold:10,modifierKey:null},zoom:{wheel:{enabled:!1,speed:.1,modifierKey:null},drag:{enabled:!1,drawTime:"beforeDatasetsDraw",modifierKey:null},pinch:{enabled:!1},mode:"xy"}},start:function(t,e,n){d(t).options=n,Object.prototype.hasOwnProperty.call(n.zoom,"enabled")&&console.warn("The option `zoom.enabled` is no longer supported. Please use `zoom.wheel.enabled`, `zoom.drag.enabled`, or `zoom.pinch.enabled`."),(Object.prototype.hasOwnProperty.call(n.zoom,"overScaleMode")||Object.prototype.hasOwnProperty.call(n.pan,"overScaleMode"))&&console.warn("The option `overScaleMode` is deprecated. Please use `scaleMode` instead (and update `mode` as desired)."),o()&&B(t,n),t.pan=(e,n,i)=>O(t,e,n,i),t.zoom=(e,n)=>I(t,e,n),t.zoomRect=(e,n,i)=>C(t,e,n,i),t.zoomScale=(e,n,i)=>function(t,e,n,i="none"){S(t,d(t)),v(t.scales[e],n,void 0,!0),t.update(i)}(t,e,n,i),t.resetZoom=e=>function(t,e="default"){const n=d(t),i=S(t,n);(0,r.F)(t.scales,(function(t){const e=t.options;i[t.id]?(e.min=i[t.id].min.options,e.max=i[t.id].max.options):(delete e.min,delete e.max)})),t.update(e),(0,r.Q)(n.options.zoom.onZoomComplete,[{chart:t}])}(t,e),t.getZoomLevel=()=>_(t),t.getInitialScaleBounds=()=>R(t),t.isZoomedOrPanned=()=>function(t){const e=R(t);for(const n of Object.keys(t.scales)){const{min:i,max:o}=e[n];if(void 0!==i&&t.scales[n].min!==i)return!0;if(void 0!==o&&t.scales[n].max!==o)return!0}return!1}(t)},beforeEvent(t){const e=d(t);if(e.panning||e.dragging)return!1},beforeUpdate:function(t,e,n){d(t).options=n,function(t,e){const n=t.canvas,{wheel:i,drag:o,onZoomComplete:r}=e.zoom;i.enabled?(Z(t,n,"wheel",W),H(t,"onZoomComplete",r,250)):k(t,"wheel"),o.enabled?(Z(t,n,"mousedown",X),Z(t,n.ownerDocument,"mouseup",q)):(k(t,"mousedown"),k(t,"mousemove"),k(t,"mouseup"),k(t,"keydown"))}(t,n)},beforeDatasetsDraw(t,e,n){K(t,"beforeDatasetsDraw",n)},afterDatasetsDraw(t,e,n){K(t,"afterDatasetsDraw",n)},beforeDraw(t,e,n){K(t,"beforeDraw",n)},afterDraw(t,e,n){K(t,"afterDraw",n)},stop:function(t){!function(t){k(t,"mousedown"),k(t,"mousemove"),k(t,"mouseup"),k(t,"wheel"),k(t,"click"),k(t,"keydown")}(t),o()&&function(t){const e=U.get(t);e&&(e.remove("pinchstart"),e.remove("pinch"),e.remove("pinchend"),e.remove("panstart"),e.remove("pan"),e.remove("panend"),e.destroy(),U.delete(t))}(t),function(t){f.delete(t)}(t)},panFunctions:E,zoomFunctions:b,zoomRectFunctions:w}},50840:function(t,e,n){var i;!function(o,r,s,a){"use strict";var c,u=["","webkit","Moz","MS","ms","o"],l=r.createElement("div"),h="function",f=Math.round,d=Math.abs,p=Date.now;function m(t,e,n){return setTimeout(w(t,n),e)}function v(t,e,n){return!!Array.isArray(t)&&(g(t,n[e],n),!0)}function g(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==a)for(i=0;i<t.length;)e.call(n,t[i],i,t),i++;else for(i in t)t.hasOwnProperty(i)&&e.call(n,t[i],i,t)}function y(t,e,n){var i="DEPRECATED METHOD: "+e+"\n"+n+" AT \n";return function(){var e=new Error("get-stack-trace"),n=e&&e.stack?e.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",r=o.console&&(o.console.warn||o.console.log);return r&&r.call(o.console,i,n),t.apply(this,arguments)}}c="function"!==typeof Object.assign?function(t){if(t===a||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n<arguments.length;n++){var i=arguments[n];if(i!==a&&null!==i)for(var o in i)i.hasOwnProperty(o)&&(e[o]=i[o])}return e}:Object.assign;var x=y((function(t,e,n){for(var i=Object.keys(e),o=0;o<i.length;)(!n||n&&t[i[o]]===a)&&(t[i[o]]=e[i[o]]),o++;return t}),"extend","Use `assign`."),T=y((function(t,e){return x(t,e,!0)}),"merge","Use `assign`.");function b(t,e,n){var i,o=e.prototype;(i=t.prototype=Object.create(o)).constructor=t,i._super=o,n&&c(i,n)}function w(t,e){return function(){return t.apply(e,arguments)}}function E(t,e){return typeof t==h?t.apply(e&&e[0]||a,e):t}function M(t,e){return t===a?e:t}function S(t,e,n){g(I(e),(function(e){t.addEventListener(e,n,!1)}))}function z(t,e,n){g(I(e),(function(e){t.removeEventListener(e,n,!1)}))}function P(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function D(t,e){return t.indexOf(e)>-1}function I(t){return t.trim().split(/\s+/g)}function C(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;i<t.length;){if(n&&t[i][n]==e||!n&&t[i]===e)return i;i++}return-1}function _(t){return Array.prototype.slice.call(t,0)}function A(t,e,n){for(var i=[],o=[],r=0;r<t.length;){var s=e?t[r][e]:t[r];C(o,s)<0&&i.push(t[r]),o[r]=s,r++}return n&&(i=e?i.sort((function(t,n){return t[e]>n[e]})):i.sort()),i}function O(t,e){for(var n,i,o=e[0].toUpperCase()+e.slice(1),r=0;r<u.length;){if((i=(n=u[r])?n+o:e)in t)return i;r++}return a}var R=1;function k(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||o}var Z="ontouchstart"in o,F=O(o,"PointerEvent")!==a,Y=Z&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),N="touch",X="mouse",L=25,q=1,W=2,H=4,j=8,Q=1,V=2,U=4,B=8,K=16,G=V|U,$=B|K,J=G|$,tt=["x","y"],et=["clientX","clientY"];function nt(t,e){var n=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){E(t.options.enable,[t])&&n.handler(e)},this.init()}function it(t,e,n){var i=n.pointers.length,o=n.changedPointers.length,r=e&q&&i-o===0,s=e&(H|j)&&i-o===0;n.isFirst=!!r,n.isFinal=!!s,r&&(t.session={}),n.eventType=e,function(t,e){var n=t.session,i=e.pointers,o=i.length;n.firstInput||(n.firstInput=ot(e));o>1&&!n.firstMultiple?n.firstMultiple=ot(e):1===o&&(n.firstMultiple=!1);var r=n.firstInput,s=n.firstMultiple,c=s?s.center:r.center,u=e.center=rt(i);e.timeStamp=p(),e.deltaTime=e.timeStamp-r.timeStamp,e.angle=ut(c,u),e.distance=ct(c,u),function(t,e){var n=e.center,i=t.offsetDelta||{},o=t.prevDelta||{},r=t.prevInput||{};e.eventType!==q&&r.eventType!==H||(o=t.prevDelta={x:r.deltaX||0,y:r.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y});e.deltaX=o.x+(n.x-i.x),e.deltaY=o.y+(n.y-i.y)}(n,e),e.offsetDirection=at(e.deltaX,e.deltaY);var l=st(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=l.x,e.overallVelocityY=l.y,e.overallVelocity=d(l.x)>d(l.y)?l.x:l.y,e.scale=s?(h=s.pointers,f=i,ct(f[0],f[1],et)/ct(h[0],h[1],et)):1,e.rotation=s?function(t,e){return ut(e[1],e[0],et)+ut(t[1],t[0],et)}(s.pointers,i):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,function(t,e){var n,i,o,r,s=t.lastInterval||e,c=e.timeStamp-s.timeStamp;if(e.eventType!=j&&(c>L||s.velocity===a)){var u=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,h=st(c,u,l);i=h.x,o=h.y,n=d(h.x)>d(h.y)?h.x:h.y,r=at(u,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,o=s.velocityY,r=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=o,e.direction=r}(n,e);var h,f;var m=t.element;P(e.srcEvent.target,m)&&(m=e.srcEvent.target);e.target=m}(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function ot(t){for(var e=[],n=0;n<t.pointers.length;)e[n]={clientX:f(t.pointers[n].clientX),clientY:f(t.pointers[n].clientY)},n++;return{timeStamp:p(),pointers:e,center:rt(e),deltaX:t.deltaX,deltaY:t.deltaY}}function rt(t){var e=t.length;if(1===e)return{x:f(t[0].clientX),y:f(t[0].clientY)};for(var n=0,i=0,o=0;o<e;)n+=t[o].clientX,i+=t[o].clientY,o++;return{x:f(n/e),y:f(i/e)}}function st(t,e,n){return{x:e/t||0,y:n/t||0}}function at(t,e){return t===e?Q:d(t)>=d(e)?t<0?V:U:e<0?B:K}function ct(t,e,n){n||(n=tt);var i=e[n[0]]-t[n[0]],o=e[n[1]]-t[n[1]];return Math.sqrt(i*i+o*o)}function ut(t,e,n){n||(n=tt);var i=e[n[0]]-t[n[0]],o=e[n[1]]-t[n[1]];return 180*Math.atan2(o,i)/Math.PI}nt.prototype={handler:function(){},init:function(){this.evEl&&S(this.element,this.evEl,this.domHandler),this.evTarget&&S(this.target,this.evTarget,this.domHandler),this.evWin&&S(k(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&z(this.element,this.evEl,this.domHandler),this.evTarget&&z(this.target,this.evTarget,this.domHandler),this.evWin&&z(k(this.element),this.evWin,this.domHandler)}};var lt={mousedown:q,mousemove:W,mouseup:H},ht="mousedown",ft="mousemove mouseup";function dt(){this.evEl=ht,this.evWin=ft,this.pressed=!1,nt.apply(this,arguments)}b(dt,nt,{handler:function(t){var e=lt[t.type];e&q&&0===t.button&&(this.pressed=!0),e&W&&1!==t.which&&(e=H),this.pressed&&(e&H&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:X,srcEvent:t}))}});var pt={pointerdown:q,pointermove:W,pointerup:H,pointercancel:j,pointerout:j},mt={2:N,3:"pen",4:X,5:"kinect"},vt="pointerdown",gt="pointermove pointerup pointercancel";function yt(){this.evEl=vt,this.evWin=gt,nt.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}o.MSPointerEvent&&!o.PointerEvent&&(vt="MSPointerDown",gt="MSPointerMove MSPointerUp MSPointerCancel"),b(yt,nt,{handler:function(t){var e=this.store,n=!1,i=t.type.toLowerCase().replace("ms",""),o=pt[i],r=mt[t.pointerType]||t.pointerType,s=r==N,a=C(e,t.pointerId,"pointerId");o&q&&(0===t.button||s)?a<0&&(e.push(t),a=e.length-1):o&(H|j)&&(n=!0),a<0||(e[a]=t,this.callback(this.manager,o,{pointers:e,changedPointers:[t],pointerType:r,srcEvent:t}),n&&e.splice(a,1))}});var xt={touchstart:q,touchmove:W,touchend:H,touchcancel:j};function Tt(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,nt.apply(this,arguments)}function bt(t,e){var n=_(t.touches),i=_(t.changedTouches);return e&(H|j)&&(n=A(n.concat(i),"identifier",!0)),[n,i]}b(Tt,nt,{handler:function(t){var e=xt[t.type];if(e===q&&(this.started=!0),this.started){var n=bt.call(this,t,e);e&(H|j)&&n[0].length-n[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:N,srcEvent:t})}}});var wt={touchstart:q,touchmove:W,touchend:H,touchcancel:j},Et="touchstart touchmove touchend touchcancel";function Mt(){this.evTarget=Et,this.targetIds={},nt.apply(this,arguments)}function St(t,e){var n=_(t.touches),i=this.targetIds;if(e&(q|W)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var o,r,s=_(t.changedTouches),a=[],c=this.target;if(r=n.filter((function(t){return P(t.target,c)})),e===q)for(o=0;o<r.length;)i[r[o].identifier]=!0,o++;for(o=0;o<s.length;)i[s[o].identifier]&&a.push(s[o]),e&(H|j)&&delete i[s[o].identifier],o++;return a.length?[A(r.concat(a),"identifier",!0),a]:void 0}b(Mt,nt,{handler:function(t){var e=wt[t.type],n=St.call(this,t,e);n&&this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:N,srcEvent:t})}});var zt=2500;function Pt(){nt.apply(this,arguments);var t=w(this.handler,this);this.touch=new Mt(this.manager,t),this.mouse=new dt(this.manager,t),this.primaryTouch=null,this.lastTouches=[]}function Dt(t,e){t&q?(this.primaryTouch=e.changedPointers[0].identifier,It.call(this,e)):t&(H|j)&&It.call(this,e)}function It(t){var e=t.changedPointers[0];if(e.identifier===this.primaryTouch){var n={x:e.clientX,y:e.clientY};this.lastTouches.push(n);var i=this.lastTouches;setTimeout((function(){var t=i.indexOf(n);t>-1&&i.splice(t,1)}),zt)}}function Ct(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,i=0;i<this.lastTouches.length;i++){var o=this.lastTouches[i],r=Math.abs(e-o.x),s=Math.abs(n-o.y);if(r<=25&&s<=25)return!0}return!1}b(Pt,nt,{handler:function(t,e,n){var i=n.pointerType==N,o=n.pointerType==X;if(!(o&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if(i)Dt.call(this,e,n);else if(o&&Ct.call(this,n))return;this.callback(t,e,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var _t=O(l.style,"touchAction"),At=_t!==a,Ot="compute",Rt="auto",kt="manipulation",Zt="none",Ft="pan-x",Yt="pan-y",Nt=function(){if(!At)return!1;var t={},e=o.CSS&&o.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){t[n]=!e||o.CSS.supports("touch-action",n)})),t}();function Xt(t,e){this.manager=t,this.set(e)}Xt.prototype={set:function(t){t==Ot&&(t=this.compute()),At&&this.manager.element.style&&Nt[t]&&(this.manager.element.style[_t]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return g(this.manager.recognizers,(function(e){E(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))})),function(t){if(D(t,Zt))return Zt;var e=D(t,Ft),n=D(t,Yt);if(e&&n)return Zt;if(e||n)return e?Ft:Yt;if(D(t,kt))return kt;return Rt}(t.join(" "))},preventDefaults:function(t){var e=t.srcEvent,n=t.offsetDirection;if(this.manager.session.prevented)e.preventDefault();else{var i=this.actions,o=D(i,Zt)&&!Nt[Zt],r=D(i,Yt)&&!Nt[Yt],s=D(i,Ft)&&!Nt[Ft];if(o){var a=1===t.pointers.length,c=t.distance<2,u=t.deltaTime<250;if(a&&c&&u)return}if(!s||!r)return o||r&&n&G||s&&n&$?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var Lt=1,qt=2,Wt=4,Ht=8,jt=Ht,Qt=16,Vt=32;function Ut(t){this.options=c({},this.defaults,t||{}),this.id=R++,this.manager=null,this.options.enable=M(this.options.enable,!0),this.state=Lt,this.simultaneous={},this.requireFail=[]}function Bt(t){return t&Qt?"cancel":t&Ht?"end":t&Wt?"move":t&qt?"start":""}function Kt(t){return t==K?"down":t==B?"up":t==V?"left":t==U?"right":""}function Gt(t,e){var n=e.manager;return n?n.get(t):t}function $t(){Ut.apply(this,arguments)}function Jt(){$t.apply(this,arguments),this.pX=null,this.pY=null}function te(){$t.apply(this,arguments)}function ee(){Ut.apply(this,arguments),this._timer=null,this._input=null}function ne(){$t.apply(this,arguments)}function ie(){$t.apply(this,arguments)}function oe(){Ut.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function re(t,e){return(e=e||{}).recognizers=M(e.recognizers,re.defaults.preset),new se(t,e)}Ut.prototype={defaults:{},set:function(t){return c(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(v(t,"recognizeWith",this))return this;var e=this.simultaneous;return e[(t=Gt(t,this)).id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return v(t,"dropRecognizeWith",this)||(t=Gt(t,this),delete this.simultaneous[t.id]),this},requireFailure:function(t){if(v(t,"requireFailure",this))return this;var e=this.requireFail;return-1===C(e,t=Gt(t,this))&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(v(t,"dropRequireFailure",this))return this;t=Gt(t,this);var e=C(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function i(n){e.manager.emit(n,t)}n<Ht&&i(e.options.event+Bt(n)),i(e.options.event),t.additionalEvent&&i(t.additionalEvent),n>=Ht&&i(e.options.event+Bt(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=Vt},canEmit:function(){for(var t=0;t<this.requireFail.length;){if(!(this.requireFail[t].state&(Vt|Lt)))return!1;t++}return!0},recognize:function(t){var e=c({},t);if(!E(this.options.enable,[this,e]))return this.reset(),void(this.state=Vt);this.state&(jt|Qt|Vt)&&(this.state=Lt),this.state=this.process(e),this.state&(qt|Wt|Ht|Qt)&&this.tryEmit(e)},process:function(t){},getTouchAction:function(){},reset:function(){}},b($t,Ut,{defaults:{pointers:1},attrTest:function(t){var e=this.options.pointers;return 0===e||t.pointers.length===e},process:function(t){var e=this.state,n=t.eventType,i=e&(qt|Wt),o=this.attrTest(t);return i&&(n&j||!o)?e|Qt:i||o?n&H?e|Ht:e&qt?e|Wt:qt:Vt}}),b(Jt,$t,{defaults:{event:"pan",threshold:10,pointers:1,direction:J},getTouchAction:function(){var t=this.options.direction,e=[];return t&G&&e.push(Yt),t&$&&e.push(Ft),e},directionTest:function(t){var e=this.options,n=!0,i=t.distance,o=t.direction,r=t.deltaX,s=t.deltaY;return o&e.direction||(e.direction&G?(o=0===r?Q:r<0?V:U,n=r!=this.pX,i=Math.abs(t.deltaX)):(o=0===s?Q:s<0?B:K,n=s!=this.pY,i=Math.abs(t.deltaY))),t.direction=o,n&&i>e.threshold&&o&e.direction},attrTest:function(t){return $t.prototype.attrTest.call(this,t)&&(this.state&qt||!(this.state&qt)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=Kt(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),b(te,$t,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Zt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&qt)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),b(ee,Ut,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Rt]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance<e.threshold,o=t.deltaTime>e.time;if(this._input=t,!i||!n||t.eventType&(H|j)&&!o)this.reset();else if(t.eventType&q)this.reset(),this._timer=m((function(){this.state=jt,this.tryEmit()}),e.time,this);else if(t.eventType&H)return jt;return Vt},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===jt&&(t&&t.eventType&H?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=p(),this.manager.emit(this.options.event,this._input)))}}),b(ne,$t,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Zt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&qt)}}),b(ie,$t,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:G|$,pointers:1},getTouchAction:function(){return Jt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(G|$)?e=t.overallVelocity:n&G?e=t.overallVelocityX:n&$&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&d(e)>this.options.velocity&&t.eventType&H},emit:function(t){var e=Kt(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),b(oe,Ut,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[kt]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance<e.threshold,o=t.deltaTime<e.time;if(this.reset(),t.eventType&q&&0===this.count)return this.failTimeout();if(i&&o&&n){if(t.eventType!=H)return this.failTimeout();var r=!this.pTime||t.timeStamp-this.pTime<e.interval,s=!this.pCenter||ct(this.pCenter,t.center)<e.posThreshold;if(this.pTime=t.timeStamp,this.pCenter=t.center,s&&r?this.count+=1:this.count=1,this._input=t,0===this.count%e.taps)return this.hasRequireFailures()?(this._timer=m((function(){this.state=jt,this.tryEmit()}),e.interval,this),qt):jt}return Vt},failTimeout:function(){return this._timer=m((function(){this.state=Vt}),this.options.interval,this),Vt},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==jt&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),re.VERSION="2.0.7",re.defaults={domEvents:!1,touchAction:Ot,enable:!0,inputTarget:null,inputClass:null,preset:[[ne,{enable:!1}],[te,{enable:!1},["rotate"]],[ie,{direction:G}],[Jt,{direction:G},["swipe"]],[oe],[oe,{event:"doubletap",taps:2},["tap"]],[ee]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function se(t,e){var n;this.options=c({},re.defaults,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=new((n=this).options.inputClass||(F?yt:Y?Mt:Z?Pt:dt))(n,it),this.touchAction=new Xt(this,this.options.touchAction),ae(this,!0),g(this.options.recognizers,(function(t){var e=this.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])}),this)}function ae(t,e){var n,i=t.element;i.style&&(g(t.options.cssProps,(function(o,r){n=O(i.style,r),e?(t.oldCssProps[n]=i.style[n],i.style[n]=o):i.style[n]=t.oldCssProps[n]||""})),e||(t.oldCssProps={}))}se.prototype={set:function(t){return c(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},stop:function(t){this.session.stopped=t?2:1},recognize:function(t){var e=this.session;if(!e.stopped){var n;this.touchAction.preventDefaults(t);var i=this.recognizers,o=e.curRecognizer;(!o||o&&o.state&jt)&&(o=e.curRecognizer=null);for(var r=0;r<i.length;)n=i[r],2===e.stopped||o&&n!=o&&!n.canRecognizeWith(o)?n.reset():n.recognize(t),!o&&n.state&(qt|Wt|Ht)&&(o=e.curRecognizer=n),r++}},get:function(t){if(t instanceof Ut)return t;for(var e=this.recognizers,n=0;n<e.length;n++)if(e[n].options.event==t)return e[n];return null},add:function(t){if(v(t,"add",this))return this;var e=this.get(t.options.event);return e&&this.remove(e),this.recognizers.push(t),t.manager=this,this.touchAction.update(),t},remove:function(t){if(v(t,"remove",this))return this;if(t=this.get(t)){var e=this.recognizers,n=C(e,t);-1!==n&&(e.splice(n,1),this.touchAction.update())}return this},on:function(t,e){if(t!==a&&e!==a){var n=this.handlers;return g(I(t),(function(t){n[t]=n[t]||[],n[t].push(e)})),this}},off:function(t,e){if(t!==a){var n=this.handlers;return g(I(t),(function(t){e?n[t]&&n[t].splice(C(n[t],e),1):delete n[t]})),this}},emit:function(t,e){this.options.domEvents&&function(t,e){var n=r.createEvent("Event");n.initEvent(t,!0,!0),n.gesture=e,e.target.dispatchEvent(n)}(t,e);var n=this.handlers[t]&&this.handlers[t].slice();if(n&&n.length){e.type=t,e.preventDefault=function(){e.srcEvent.preventDefault()};for(var i=0;i<n.length;)n[i](e),i++}},destroy:function(){this.element&&ae(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},c(re,{INPUT_START:q,INPUT_MOVE:W,INPUT_END:H,INPUT_CANCEL:j,STATE_POSSIBLE:Lt,STATE_BEGAN:qt,STATE_CHANGED:Wt,STATE_ENDED:Ht,STATE_RECOGNIZED:jt,STATE_CANCELLED:Qt,STATE_FAILED:Vt,DIRECTION_NONE:Q,DIRECTION_LEFT:V,DIRECTION_RIGHT:U,DIRECTION_UP:B,DIRECTION_DOWN:K,DIRECTION_HORIZONTAL:G,DIRECTION_VERTICAL:$,DIRECTION_ALL:J,Manager:se,Input:nt,TouchAction:Xt,TouchInput:Mt,MouseInput:dt,PointerEventInput:yt,TouchMouseInput:Pt,SingleTouchInput:Tt,Recognizer:Ut,AttrRecognizer:$t,Tap:oe,Pan:Jt,Swipe:ie,Pinch:te,Rotate:ne,Press:ee,on:S,off:z,each:g,merge:T,extend:x,assign:c,inherit:b,bindFn:w,prefixed:O}),("undefined"!==typeof o?o:"undefined"!==typeof self?self:{}).Hammer=re,(i=function(){return re}.call(e,n,e,t))===a||(t.exports=i)}(window,document)},50361:function(t,e,n){var i=n(85990);t.exports=function(t){return i(t,5)}},41203:function(t,e,n){"use strict";var i=n(23148),o=n(19013),r=n(76417),s=n(23855),a=n(12274),c=n(49546),u=n(51820),l=n(61973),h=n(58545),f=n(78343),d=n(77349),p=n(63500),m=n(11640),v=n(8791),g=n(21593),y=n(59910),x=n(11699),T=n(69690),b=n(76972),w=n(67803),E=n(13882),M=n(93645);var S=n(50157);var z=n(5001);var P=n(69119),D=n(584),I=n(43703),C=n(94431),_=n(38148);var A=n(83894),O=n(67090),R=n(4135);var k=n(10876);const Z={datetime:"MMM d, yyyy, h:mm:ss aaaa",millisecond:"h:mm:ss.SSS aaaa",second:"h:mm:ss aaaa",minute:"h:mm aaaa",hour:"ha",day:"MMM d",week:"PP",month:"MMM yyyy",quarter:"qqq - yyyy",year:"yyyy"};i.IQ._date.override({_id:"date-fns",formats:function(){return Z},parse:function(t,e){if(null===t||"undefined"===typeof t)return null;const n=typeof t;return"number"===n||t instanceof Date?t=(0,o.default)(t):"string"===n&&(t="string"===typeof e?(0,r.default)(t,e,new Date,this.options):(0,s.default)(t,this.options)),(0,a.default)(t)?t.getTime():null},format:function(t,e){return(0,c.default)(t,e,this.options)},add:function(t,e,n){switch(n){case"millisecond":return(0,u.Z)(t,e);case"second":return(0,l.Z)(t,e);case"minute":return(0,h.default)(t,e);case"hour":return(0,f.default)(t,e);case"day":return(0,d.default)(t,e);case"week":return(0,p.default)(t,e);case"month":return(0,m.default)(t,e);case"quarter":return(0,v.default)(t,e);case"year":return(0,g.default)(t,e);default:return t}},diff:function(t,e,n){switch(n){case"millisecond":return(0,y.Z)(t,e);case"second":return(0,x.Z)(t,e);case"minute":return(0,T.Z)(t,e);case"hour":return(0,b.Z)(t,e);case"day":return(0,w.Z)(t,e);case"week":return function(t,e,n){(0,E.Z)(2,arguments);var i=(0,w.Z)(t,e)/7;return(0,M.u)(null===n||void 0===n?void 0:n.roundingMethod)(i)}(t,e);case"month":return(0,S.Z)(t,e);case"quarter":return function(t,e,n){(0,E.Z)(2,arguments);var i=(0,S.Z)(t,e)/3;return(0,M.u)(null===n||void 0===n?void 0:n.roundingMethod)(i)}(t,e);case"year":return(0,z.Z)(t,e);default:return 0}},startOf:function(t,e,n){switch(e){case"second":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMilliseconds(0),e}(t);case"minute":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setSeconds(0,0),e}(t);case"hour":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMinutes(0,0,0),e}(t);case"day":return(0,P.default)(t);case"week":return(0,D.default)(t);case"isoWeek":return(0,D.default)(t,{weekStartsOn:+n});case"month":return(0,I.default)(t);case"quarter":return(0,C.default)(t);case"year":return(0,_.default)(t);default:return t}},endOf:function(t,e){switch(e){case"second":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMilliseconds(999),e}(t);case"minute":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setSeconds(59,999),e}(t);case"hour":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t);return e.setMinutes(59,59,999),e}(t);case"day":return(0,A.default)(t);case"week":return(0,O.default)(t);case"month":return(0,R.default)(t);case"quarter":return function(t){(0,E.Z)(1,arguments);var e=(0,o.default)(t),n=e.getMonth(),i=n-n%3+3;return e.setMonth(i,0),e.setHours(23,59,59,999),e}(t);case"year":return(0,k.default)(t);default:return t}}})}}]); \ No newline at end of file
diff --git a/web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js.LICENSE.txt b/web/gui/v2/18.89d32c7ee15496f689f3.chunk.js.LICENSE.txt
index f8dedba1..f8dedba1 100644
--- a/web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js.LICENSE.txt
+++ b/web/gui/v2/18.89d32c7ee15496f689f3.chunk.js.LICENSE.txt
diff --git a/web/gui/v2/193.94e6e52842fb25d00193.chunk.js b/web/gui/v2/193.6c0f51af21cfef8bce9d.chunk.js
index 8974c96c..fb31c6e3 100644
--- a/web/gui/v2/193.94e6e52842fb25d00193.chunk.js
+++ b/web/gui/v2/193.6c0f51af21cfef8bce9d.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e31d6b9-2151-47f7-8512-93e586d64632",e._sentryDebugIdIdentifier="sentry-dbid-9e31d6b9-2151-47f7-8512-93e586d64632")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[193],{54857:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return c.default}}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=a?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(o,i,u):o[i]=e[i]}o.default=e,n&&n.set(e,o);return o}(n(67294)),a=g(n(45697)),i=g(n(73935)),u=g(n(86010)),l=n(81825),s=n(2849),f=n(9280),c=g(n(80783)),d=g(n(55904)),p=["axis","bounds","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","position","positionOffset","scale"];function g(e){return e&&e.__esModule?e:{default:e}}function y(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}function b(){return b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}function h(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){M(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){u=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return S(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return S(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e,t){return O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},O(e,t)}function P(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=x(e);if(t){var a=x(this).constructor;n=Reflect.construct(o,arguments,a)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return j(e)}(this,n)}}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e){return x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},x(e)}function M(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&O(e,t)}(f,e);var t,n,r,a=P(f);function f(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),M(j(t=a.call(this,e)),"onDragStart",(function(e,n){if((0,d.default)("Draggable: onDragStart: %j",n),!1===t.props.onStart(e,(0,s.createDraggableData)(j(t),n)))return!1;t.setState({dragging:!0,dragged:!0})})),M(j(t),"onDrag",(function(e,n){if(!t.state.dragging)return!1;(0,d.default)("Draggable: onDrag: %j",n);var r=(0,s.createDraggableData)(j(t),n),o={x:r.x,y:r.y};if(t.props.bounds){var a=o.x,i=o.y;o.x+=t.state.slackX,o.y+=t.state.slackY;var u=w((0,s.getBoundPosition)(j(t),o.x,o.y),2),l=u[0],f=u[1];o.x=l,o.y=f,o.slackX=t.state.slackX+(a-o.x),o.slackY=t.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-t.state.x,r.deltaY=o.y-t.state.y}if(!1===t.props.onDrag(e,r))return!1;t.setState(o)})),M(j(t),"onDragStop",(function(e,n){if(!t.state.dragging)return!1;if(!1===t.props.onStop(e,(0,s.createDraggableData)(j(t),n)))return!1;(0,d.default)("Draggable: onDragStop: %j",n);var r={dragging:!1,slackX:0,slackY:0};if(Boolean(t.props.position)){var o=t.props.position,a=o.x,i=o.y;r.x=a,r.y=i}t.setState(r)})),t.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:v({},e.position),slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),t}return t=f,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.position,r=t.prevPropsPosition;return!n||r&&n.x===r.x&&n.y===r.y?null:((0,d.default)("Draggable: getDerivedStateFromProps %j",{position:n,prevPropsPosition:r}),{x:n.x,y:n.y,prevPropsPosition:v({},n)})}}],(n=[{key:"componentDidMount",value:function(){"undefined"!==typeof window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"findDOMNode",value:function(){var e,t,n;return null!==(e=null===(t=this.props)||void 0===t||null===(n=t.nodeRef)||void 0===n?void 0:n.current)&&void 0!==e?e:i.default.findDOMNode(this)}},{key:"render",value:function(){var e,t=this.props,n=(t.axis,t.bounds,t.children),r=t.defaultPosition,a=t.defaultClassName,i=t.defaultClassNameDragging,f=t.defaultClassNameDragged,d=t.position,g=t.positionOffset,y=(t.scale,h(t,p)),m={},w=null,S=!Boolean(d)||this.state.dragging,D=d||r,O={x:(0,s.canDragX)(this)&&S?this.state.x:D.x,y:(0,s.canDragY)(this)&&S?this.state.y:D.y};this.state.isElementSVG?w=(0,l.createSVGTransform)(O,g):m=(0,l.createCSSTransform)(O,g);var P=(0,u.default)(n.props.className||"",a,(M(e={},i,this.state.dragging),M(e,f,this.state.dragged),e));return o.createElement(c.default,b({},y,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),o.cloneElement(o.Children.only(n),{className:P,style:v(v({},n.props.style),m),transform:w}))}}])&&D(t.prototype,n),r&&D(t,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(o.Component);t.default=E,M(E,"displayName","Draggable"),M(E,"propTypes",v(v({},c.default.propTypes),{},{axis:a.default.oneOf(["both","x","y","none"]),bounds:a.default.oneOfType([a.default.shape({left:a.default.number,right:a.default.number,top:a.default.number,bottom:a.default.number}),a.default.string,a.default.oneOf([!1])]),defaultClassName:a.default.string,defaultClassNameDragging:a.default.string,defaultClassNameDragged:a.default.string,defaultPosition:a.default.shape({x:a.default.number,y:a.default.number}),positionOffset:a.default.shape({x:a.default.oneOfType([a.default.number,a.default.string]),y:a.default.oneOfType([a.default.number,a.default.string])}),position:a.default.shape({x:a.default.number,y:a.default.number}),className:f.dontSetMe,style:f.dontSetMe,transform:f.dontSetMe})),M(E,"defaultProps",v(v({},c.default.defaultProps),{},{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1}))},80783:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=a?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(o,i,u):o[i]=e[i]}o.default=e,n&&n.set(e,o);return o}(n(67294)),a=c(n(45697)),i=c(n(73935)),u=n(81825),l=n(2849),s=n(9280),f=c(n(55904));function c(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){u=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},b(e,t)}function h(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=v(e);if(t){var a=v(this).constructor;n=Reflect.construct(o,arguments,a)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,n)}}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},v(e)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S={start:"touchstart",move:"touchmove",stop:"touchend"},D={start:"mousedown",move:"mousemove",stop:"mouseup"},O=D,P=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&b(e,t)}(s,e);var t,n,r,a=h(s);function s(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(m(e=a.call.apply(a,[this].concat(n))),"state",{dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null}),w(m(e),"mounted",!1),w(m(e),"handleDragStart",(function(t){if(e.props.onMouseDown(t),!e.props.allowAnyClick&&"number"===typeof t.button&&0!==t.button)return!1;var n=e.findDOMNode();if(!n||!n.ownerDocument||!n.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");var r=n.ownerDocument;if(!(e.props.disabled||!(t.target instanceof r.defaultView.Node)||e.props.handle&&!(0,u.matchesSelectorAndParentsTo)(t.target,e.props.handle,n)||e.props.cancel&&(0,u.matchesSelectorAndParentsTo)(t.target,e.props.cancel,n))){"touchstart"===t.type&&t.preventDefault();var o=(0,u.getTouchIdentifier)(t);e.setState({touchIdentifier:o});var a=(0,l.getControlPosition)(t,o,m(e));if(null!=a){var i=a.x,s=a.y,c=(0,l.createCoreData)(m(e),i,s);(0,f.default)("DraggableCore: handleDragStart: %j",c),(0,f.default)("calling",e.props.onStart),!1!==e.props.onStart(t,c)&&!1!==e.mounted&&(e.props.enableUserSelectHack&&(0,u.addUserSelectStyles)(r),e.setState({dragging:!0,lastX:i,lastY:s}),(0,u.addEvent)(r,O.move,e.handleDrag),(0,u.addEvent)(r,O.stop,e.handleDragStop))}}})),w(m(e),"handleDrag",(function(t){var n=(0,l.getControlPosition)(t,e.state.touchIdentifier,m(e));if(null!=n){var r=n.x,o=n.y;if(Array.isArray(e.props.grid)){var a=r-e.state.lastX,i=o-e.state.lastY,u=p((0,l.snapToGrid)(e.props.grid,a,i),2);if(a=u[0],i=u[1],!a&&!i)return;r=e.state.lastX+a,o=e.state.lastY+i}var s=(0,l.createCoreData)(m(e),r,o);if((0,f.default)("DraggableCore: handleDrag: %j",s),!1!==e.props.onDrag(t,s)&&!1!==e.mounted)e.setState({lastX:r,lastY:o});else try{e.handleDragStop(new MouseEvent("mouseup"))}catch(d){var c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),e.handleDragStop(c)}}})),w(m(e),"handleDragStop",(function(t){if(e.state.dragging){var n=(0,l.getControlPosition)(t,e.state.touchIdentifier,m(e));if(null!=n){var r=n.x,o=n.y;if(Array.isArray(e.props.grid)){var a=r-e.state.lastX||0,i=o-e.state.lastY||0,s=p((0,l.snapToGrid)(e.props.grid,a,i),2);a=s[0],i=s[1],r=e.state.lastX+a,o=e.state.lastY+i}var c=(0,l.createCoreData)(m(e),r,o);if(!1===e.props.onStop(t,c)||!1===e.mounted)return!1;var d=e.findDOMNode();d&&e.props.enableUserSelectHack&&(0,u.removeUserSelectStyles)(d.ownerDocument),(0,f.default)("DraggableCore: handleDragStop: %j",c),e.setState({dragging:!1,lastX:NaN,lastY:NaN}),d&&((0,f.default)("DraggableCore: Removing handlers"),(0,u.removeEvent)(d.ownerDocument,O.move,e.handleDrag),(0,u.removeEvent)(d.ownerDocument,O.stop,e.handleDragStop))}}})),w(m(e),"onMouseDown",(function(t){return O=D,e.handleDragStart(t)})),w(m(e),"onMouseUp",(function(t){return O=D,e.handleDragStop(t)})),w(m(e),"onTouchStart",(function(t){return O=S,e.handleDragStart(t)})),w(m(e),"onTouchEnd",(function(t){return O=S,e.handleDragStop(t)})),e}return t=s,(n=[{key:"componentDidMount",value:function(){this.mounted=!0;var e=this.findDOMNode();e&&(0,u.addEvent)(e,S.start,this.onTouchStart,{passive:!1})}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var e=this.findDOMNode();if(e){var t=e.ownerDocument;(0,u.removeEvent)(t,D.move,this.handleDrag),(0,u.removeEvent)(t,S.move,this.handleDrag),(0,u.removeEvent)(t,D.stop,this.handleDragStop),(0,u.removeEvent)(t,S.stop,this.handleDragStop),(0,u.removeEvent)(e,S.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,u.removeUserSelectStyles)(t)}}},{key:"findDOMNode",value:function(){var e,t,n;return null!==(e=this.props)&&void 0!==e&&e.nodeRef?null===(t=this.props)||void 0===t||null===(n=t.nodeRef)||void 0===n?void 0:n.current:i.default.findDOMNode(this)}},{key:"render",value:function(){return o.cloneElement(o.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}])&&y(t.prototype,n),r&&y(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(o.Component);t.default=P,w(P,"displayName","DraggableCore"),w(P,"propTypes",{allowAnyClick:a.default.bool,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:a.default.arrayOf(a.default.number),handle:a.default.string,cancel:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number,className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),w(P,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},61193:function(e,t,n){var r=n(54857),o=r.default,a=r.DraggableCore;e.exports=o,e.exports.default=o,e.exports.DraggableCore=a},81825:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.addClassName=p,t.addEvent=function(e,t,n,r){if(!e)return;var o=l({capture:!0},r);e.addEventListener?e.addEventListener(t,n,o):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n},t.addUserSelectStyles=function(e){if(!e)return;var t=e.getElementById("react-draggable-style-el");t||((t=e.createElement("style")).type="text/css",t.id="react-draggable-style-el",t.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",t.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(t));e.body&&p(e.body,"react-draggable-transparent-selection")},t.createCSSTransform=function(e,t){var n=d(e,t,"px");return s({},(0,a.browserPrefixToKey)("transform",a.default),n)},t.createSVGTransform=function(e,t){return d(e,t,"")},t.getTouch=function(e,t){return e.targetTouches&&(0,o.findInArray)(e.targetTouches,(function(e){return t===e.identifier}))||e.changedTouches&&(0,o.findInArray)(e.changedTouches,(function(e){return t===e.identifier}))},t.getTouchIdentifier=function(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier},t.getTranslation=d,t.innerHeight=function(e){var t=e.clientHeight,n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,o.int)(n.paddingTop),t-=(0,o.int)(n.paddingBottom)},t.innerWidth=function(e){var t=e.clientWidth,n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,o.int)(n.paddingLeft),t-=(0,o.int)(n.paddingRight)},t.matchesSelector=c,t.matchesSelectorAndParentsTo=function(e,t,n){var r=e;do{if(c(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1},t.offsetXYFromParent=function(e,t,n){var r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),o=(e.clientX+t.scrollLeft-r.left)/n,a=(e.clientY+t.scrollTop-r.top)/n;return{x:o,y:a}},t.outerHeight=function(e){var t=e.clientHeight,n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,o.int)(n.borderTopWidth),t+=(0,o.int)(n.borderBottomWidth)},t.outerWidth=function(e){var t=e.clientWidth,n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,o.int)(n.borderLeftWidth),t+=(0,o.int)(n.borderRightWidth)},t.removeClassName=g,t.removeEvent=function(e,t,n,r){if(!e)return;var o=l({capture:!0},r);e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null},t.removeUserSelectStyles=function(e){if(!e)return;try{if(e.body&&g(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{var t=(e.defaultView||window).getSelection();t&&"Caret"!==t.type&&t.removeAllRanges()}}catch(n){}};var o=n(9280),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=a?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(o,u,l):o[u]=e[u]}o.default=e,n&&n.set(e,o);return o}(n(38650));function i(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f="";function c(e,t){return f||(f=(0,o.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],(function(t){return(0,o.isFunction)(e[t])}))),!!(0,o.isFunction)(e[f])&&e[f](t)}function d(e,t,n){var r=e.x,o=e.y,a="translate(".concat(r).concat(n,",").concat(o).concat(n,")");if(t){var i="".concat("string"===typeof t.x?t.x:t.x+n),u="".concat("string"===typeof t.y?t.y:t.y+n);a="translate(".concat(i,", ").concat(u,")")+a}return a}function p(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function g(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}},38650:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.browserPrefixToKey=o,t.browserPrefixToStyle=function(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e},t.default=void 0,t.getPrefix=r;var n=["Moz","Webkit","O","ms"];function r(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"===typeof window)return"";var a=null===(e=window.document)||void 0===e||null===(t=e.documentElement)||void 0===t?void 0:t.style;if(!a)return"";if(r in a)return"";for(var i=0;i<n.length;i++)if(o(r,n[i])in a)return n[i];return""}function o(e,t){return t?"".concat(t).concat(function(e){for(var t="",n=!0,r=0;r<e.length;r++)n?(t+=e[r].toUpperCase(),n=!1):"-"===e[r]?n=!0:t+=e[r];return t}(e)):e}var a=r();t.default=a},55904:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){0}},2849:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.canDragX=function(e){return"both"===e.props.axis||"x"===e.props.axis},t.canDragY=function(e){return"both"===e.props.axis||"y"===e.props.axis},t.createCoreData=function(e,t,n){var o=e.state,i=!(0,r.isNum)(o.lastX),u=a(e);return i?{node:u,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:u,deltaX:t-o.lastX,deltaY:n-o.lastY,lastX:o.lastX,lastY:o.lastY,x:t,y:n}},t.createDraggableData=function(e,t){var n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}},t.getBoundPosition=function(e,t,n){if(!e.props.bounds)return[t,n];var i=e.props.bounds;i="string"===typeof i?i:function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}(i);var u=a(e);if("string"===typeof i){var l,s=u.ownerDocument,f=s.defaultView;if(!((l="parent"===i?u.parentNode:s.querySelector(i))instanceof f.HTMLElement))throw new Error('Bounds selector "'+i+'" could not find an element.');var c=l,d=f.getComputedStyle(u),p=f.getComputedStyle(c);i={left:-u.offsetLeft+(0,r.int)(p.paddingLeft)+(0,r.int)(d.marginLeft),top:-u.offsetTop+(0,r.int)(p.paddingTop)+(0,r.int)(d.marginTop),right:(0,o.innerWidth)(c)-(0,o.outerWidth)(u)-u.offsetLeft+(0,r.int)(p.paddingRight)-(0,r.int)(d.marginRight),bottom:(0,o.innerHeight)(c)-(0,o.outerHeight)(u)-u.offsetTop+(0,r.int)(p.paddingBottom)-(0,r.int)(d.marginBottom)}}(0,r.isNum)(i.right)&&(t=Math.min(t,i.right));(0,r.isNum)(i.bottom)&&(n=Math.min(n,i.bottom));(0,r.isNum)(i.left)&&(t=Math.max(t,i.left));(0,r.isNum)(i.top)&&(n=Math.max(n,i.top));return[t,n]},t.getControlPosition=function(e,t,n){var r="number"===typeof t?(0,o.getTouch)(e,t):null;if("number"===typeof t&&!r)return null;var i=a(n),u=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,o.offsetXYFromParent)(r||e,u,n.props.scale)},t.snapToGrid=function(e,t,n){var r=Math.round(t/e[0])*e[0],o=Math.round(n/e[1])*e[1];return[r,o]};var r=n(9280),o=n(81825);function a(e){var t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}},9280:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.dontSetMe=function(e,t,n){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(n," - do not set this, set it on the child."))},t.findInArray=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t.apply(t,[e[n],n,e]))return e[n]},t.int=function(e){return parseInt(e,10)},t.isFunction=function(e){return"function"===typeof e||"[object Function]"===Object.prototype.toString.call(e)},t.isNum=function(e){return"number"===typeof e&&!isNaN(e)}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9e31d6b9-2151-47f7-8512-93e586d64632",e._sentryDebugIdIdentifier="sentry-dbid-9e31d6b9-2151-47f7-8512-93e586d64632")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[193],{54857:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return c.default}}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=a?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(o,i,u):o[i]=e[i]}o.default=e,n&&n.set(e,o);return o}(n(67294)),a=g(n(45697)),i=g(n(73935)),u=g(n(86010)),l=n(81825),s=n(2849),f=n(9280),c=g(n(80783)),d=g(n(55904)),p=["axis","bounds","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","position","positionOffset","scale"];function g(e){return e&&e.__esModule?e:{default:e}}function y(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}function b(){return b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}function h(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){M(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){u=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return S(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return S(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e,t){return O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},O(e,t)}function P(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=x(e);if(t){var a=x(this).constructor;n=Reflect.construct(o,arguments,a)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return j(e)}(this,n)}}function j(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e){return x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},x(e)}function M(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&O(e,t)}(f,e);var t,n,r,a=P(f);function f(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),M(j(t=a.call(this,e)),"onDragStart",(function(e,n){if((0,d.default)("Draggable: onDragStart: %j",n),!1===t.props.onStart(e,(0,s.createDraggableData)(j(t),n)))return!1;t.setState({dragging:!0,dragged:!0})})),M(j(t),"onDrag",(function(e,n){if(!t.state.dragging)return!1;(0,d.default)("Draggable: onDrag: %j",n);var r=(0,s.createDraggableData)(j(t),n),o={x:r.x,y:r.y};if(t.props.bounds){var a=o.x,i=o.y;o.x+=t.state.slackX,o.y+=t.state.slackY;var u=w((0,s.getBoundPosition)(j(t),o.x,o.y),2),l=u[0],f=u[1];o.x=l,o.y=f,o.slackX=t.state.slackX+(a-o.x),o.slackY=t.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-t.state.x,r.deltaY=o.y-t.state.y}if(!1===t.props.onDrag(e,r))return!1;t.setState(o)})),M(j(t),"onDragStop",(function(e,n){if(!t.state.dragging)return!1;if(!1===t.props.onStop(e,(0,s.createDraggableData)(j(t),n)))return!1;(0,d.default)("Draggable: onDragStop: %j",n);var r={dragging:!1,slackX:0,slackY:0};if(Boolean(t.props.position)){var o=t.props.position,a=o.x,i=o.y;r.x=a,r.y=i}t.setState(r)})),t.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:v({},e.position),slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element."),t}return t=f,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.position,r=t.prevPropsPosition;return!n||r&&n.x===r.x&&n.y===r.y?null:((0,d.default)("Draggable: getDerivedStateFromProps %j",{position:n,prevPropsPosition:r}),{x:n.x,y:n.y,prevPropsPosition:v({},n)})}}],(n=[{key:"componentDidMount",value:function(){"undefined"!==typeof window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}},{key:"componentWillUnmount",value:function(){this.setState({dragging:!1})}},{key:"findDOMNode",value:function(){var e,t,n;return null!==(e=null===(t=this.props)||void 0===t||null===(n=t.nodeRef)||void 0===n?void 0:n.current)&&void 0!==e?e:i.default.findDOMNode(this)}},{key:"render",value:function(){var e,t=this.props,n=(t.axis,t.bounds,t.children),r=t.defaultPosition,a=t.defaultClassName,i=t.defaultClassNameDragging,f=t.defaultClassNameDragged,d=t.position,g=t.positionOffset,y=(t.scale,h(t,p)),m={},w=null,S=!Boolean(d)||this.state.dragging,D=d||r,O={x:(0,s.canDragX)(this)&&S?this.state.x:D.x,y:(0,s.canDragY)(this)&&S?this.state.y:D.y};this.state.isElementSVG?w=(0,l.createSVGTransform)(O,g):m=(0,l.createCSSTransform)(O,g);var P=(0,u.default)(n.props.className||"",a,(M(e={},i,this.state.dragging),M(e,f,this.state.dragged),e));return o.createElement(c.default,b({},y,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),o.cloneElement(o.Children.only(n),{className:P,style:v(v({},n.props.style),m),transform:w}))}}])&&D(t.prototype,n),r&&D(t,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(o.Component);t.default=E,M(E,"displayName","Draggable"),M(E,"propTypes",v(v({},c.default.propTypes),{},{axis:a.default.oneOf(["both","x","y","none"]),bounds:a.default.oneOfType([a.default.shape({left:a.default.number,right:a.default.number,top:a.default.number,bottom:a.default.number}),a.default.string,a.default.oneOf([!1])]),defaultClassName:a.default.string,defaultClassNameDragging:a.default.string,defaultClassNameDragged:a.default.string,defaultPosition:a.default.shape({x:a.default.number,y:a.default.number}),positionOffset:a.default.shape({x:a.default.oneOfType([a.default.number,a.default.string]),y:a.default.oneOfType([a.default.number,a.default.string])}),position:a.default.shape({x:a.default.number,y:a.default.number}),className:f.dontSetMe,style:f.dontSetMe,transform:f.dontSetMe})),M(E,"defaultProps",v(v({},c.default.defaultProps),{},{axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1}))},80783:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=a?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(o,i,u):o[i]=e[i]}o.default=e,n&&n.set(e,o);return o}(n(67294)),a=c(n(45697)),i=c(n(73935)),u=n(81825),l=n(2849),s=n(9280),f=c(n(55904));function c(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){u=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},b(e,t)}function h(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=v(e);if(t){var a=v(this).constructor;n=Reflect.construct(o,arguments,a)}else n=o.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,n)}}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},v(e)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S={start:"touchstart",move:"touchmove",stop:"touchend"},D={start:"mousedown",move:"mousemove",stop:"mouseup"},O=D,P=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&b(e,t)}(s,e);var t,n,r,a=h(s);function s(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(m(e=a.call.apply(a,[this].concat(n))),"state",{dragging:!1,lastX:NaN,lastY:NaN,touchIdentifier:null}),w(m(e),"mounted",!1),w(m(e),"handleDragStart",(function(t){if(e.props.onMouseDown(t),!e.props.allowAnyClick&&"number"===typeof t.button&&0!==t.button)return!1;var n=e.findDOMNode();if(!n||!n.ownerDocument||!n.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");var r=n.ownerDocument;if(!(e.props.disabled||!(t.target instanceof r.defaultView.Node)||e.props.handle&&!(0,u.matchesSelectorAndParentsTo)(t.target,e.props.handle,n)||e.props.cancel&&(0,u.matchesSelectorAndParentsTo)(t.target,e.props.cancel,n))){"touchstart"===t.type&&t.preventDefault();var o=(0,u.getTouchIdentifier)(t);e.setState({touchIdentifier:o});var a=(0,l.getControlPosition)(t,o,m(e));if(null!=a){var i=a.x,s=a.y,c=(0,l.createCoreData)(m(e),i,s);(0,f.default)("DraggableCore: handleDragStart: %j",c),(0,f.default)("calling",e.props.onStart),!1!==e.props.onStart(t,c)&&!1!==e.mounted&&(e.props.enableUserSelectHack&&(0,u.addUserSelectStyles)(r),e.setState({dragging:!0,lastX:i,lastY:s}),(0,u.addEvent)(r,O.move,e.handleDrag),(0,u.addEvent)(r,O.stop,e.handleDragStop))}}})),w(m(e),"handleDrag",(function(t){var n=(0,l.getControlPosition)(t,e.state.touchIdentifier,m(e));if(null!=n){var r=n.x,o=n.y;if(Array.isArray(e.props.grid)){var a=r-e.state.lastX,i=o-e.state.lastY,u=p((0,l.snapToGrid)(e.props.grid,a,i),2);if(a=u[0],i=u[1],!a&&!i)return;r=e.state.lastX+a,o=e.state.lastY+i}var s=(0,l.createCoreData)(m(e),r,o);if((0,f.default)("DraggableCore: handleDrag: %j",s),!1!==e.props.onDrag(t,s)&&!1!==e.mounted)e.setState({lastX:r,lastY:o});else try{e.handleDragStop(new MouseEvent("mouseup"))}catch(d){var c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),e.handleDragStop(c)}}})),w(m(e),"handleDragStop",(function(t){if(e.state.dragging){var n=(0,l.getControlPosition)(t,e.state.touchIdentifier,m(e));if(null!=n){var r=n.x,o=n.y;if(Array.isArray(e.props.grid)){var a=r-e.state.lastX||0,i=o-e.state.lastY||0,s=p((0,l.snapToGrid)(e.props.grid,a,i),2);a=s[0],i=s[1],r=e.state.lastX+a,o=e.state.lastY+i}var c=(0,l.createCoreData)(m(e),r,o);if(!1===e.props.onStop(t,c)||!1===e.mounted)return!1;var d=e.findDOMNode();d&&e.props.enableUserSelectHack&&(0,u.removeUserSelectStyles)(d.ownerDocument),(0,f.default)("DraggableCore: handleDragStop: %j",c),e.setState({dragging:!1,lastX:NaN,lastY:NaN}),d&&((0,f.default)("DraggableCore: Removing handlers"),(0,u.removeEvent)(d.ownerDocument,O.move,e.handleDrag),(0,u.removeEvent)(d.ownerDocument,O.stop,e.handleDragStop))}}})),w(m(e),"onMouseDown",(function(t){return O=D,e.handleDragStart(t)})),w(m(e),"onMouseUp",(function(t){return O=D,e.handleDragStop(t)})),w(m(e),"onTouchStart",(function(t){return O=S,e.handleDragStart(t)})),w(m(e),"onTouchEnd",(function(t){return O=S,e.handleDragStop(t)})),e}return t=s,(n=[{key:"componentDidMount",value:function(){this.mounted=!0;var e=this.findDOMNode();e&&(0,u.addEvent)(e,S.start,this.onTouchStart,{passive:!1})}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var e=this.findDOMNode();if(e){var t=e.ownerDocument;(0,u.removeEvent)(t,D.move,this.handleDrag),(0,u.removeEvent)(t,S.move,this.handleDrag),(0,u.removeEvent)(t,D.stop,this.handleDragStop),(0,u.removeEvent)(t,S.stop,this.handleDragStop),(0,u.removeEvent)(e,S.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,u.removeUserSelectStyles)(t)}}},{key:"findDOMNode",value:function(){var e,t,n;return null!==(e=this.props)&&void 0!==e&&e.nodeRef?null===(t=this.props)||void 0===t||null===(n=t.nodeRef)||void 0===n?void 0:n.current:i.default.findDOMNode(this)}},{key:"render",value:function(){return o.cloneElement(o.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}])&&y(t.prototype,n),r&&y(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(o.Component);t.default=P,w(P,"displayName","DraggableCore"),w(P,"propTypes",{allowAnyClick:a.default.bool,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:a.default.arrayOf(a.default.number),handle:a.default.string,cancel:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number,className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),w(P,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},61193:function(e,t,n){var r=n(54857),o=r.default,a=r.DraggableCore;e.exports=o,e.exports.default=o,e.exports.DraggableCore=a},81825:function(e,t,n){function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.addClassName=p,t.addEvent=function(e,t,n,r){if(!e)return;var o=l({capture:!0},r);e.addEventListener?e.addEventListener(t,n,o):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n},t.addUserSelectStyles=function(e){if(!e)return;var t=e.getElementById("react-draggable-style-el");t||((t=e.createElement("style")).type="text/css",t.id="react-draggable-style-el",t.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",t.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(t));e.body&&p(e.body,"react-draggable-transparent-selection")},t.createCSSTransform=function(e,t){var n=d(e,t,"px");return s({},(0,a.browserPrefixToKey)("transform",a.default),n)},t.createSVGTransform=function(e,t){return d(e,t,"")},t.getTouch=function(e,t){return e.targetTouches&&(0,o.findInArray)(e.targetTouches,(function(e){return t===e.identifier}))||e.changedTouches&&(0,o.findInArray)(e.changedTouches,(function(e){return t===e.identifier}))},t.getTouchIdentifier=function(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier},t.getTranslation=d,t.innerHeight=function(e){var t=e.clientHeight,n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,o.int)(n.paddingTop),t-=(0,o.int)(n.paddingBottom)},t.innerWidth=function(e){var t=e.clientWidth,n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,o.int)(n.paddingLeft),t-=(0,o.int)(n.paddingRight)},t.matchesSelector=c,t.matchesSelectorAndParentsTo=function(e,t,n){var r=e;do{if(c(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1},t.offsetXYFromParent=function(e,t,n){var r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),o=(e.clientX+t.scrollLeft-r.left)/n,a=(e.clientY+t.scrollTop-r.top)/n;return{x:o,y:a}},t.outerHeight=function(e){var t=e.clientHeight,n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,o.int)(n.borderTopWidth),t+=(0,o.int)(n.borderBottomWidth)},t.outerWidth=function(e){var t=e.clientWidth,n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,o.int)(n.borderLeftWidth),t+=(0,o.int)(n.borderRightWidth)},t.removeClassName=g,t.removeEvent=function(e,t,n,r){if(!e)return;var o=l({capture:!0},r);e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null},t.removeUserSelectStyles=function(e){if(!e)return;try{if(e.body&&g(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{var t=(e.defaultView||window).getSelection();t&&"Caret"!==t.type&&t.removeAllRanges()}}catch(n){}};var o=n(9280),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=a?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(o,u,l):o[u]=e[u]}o.default=e,n&&n.set(e,o);return o}(n(38650));function i(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f="";function c(e,t){return f||(f=(0,o.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],(function(t){return(0,o.isFunction)(e[t])}))),!!(0,o.isFunction)(e[f])&&e[f](t)}function d(e,t,n){var r=e.x,o=e.y,a="translate(".concat(r).concat(n,",").concat(o).concat(n,")");if(t){var i="".concat("string"===typeof t.x?t.x:t.x+n),u="".concat("string"===typeof t.y?t.y:t.y+n);a="translate(".concat(i,", ").concat(u,")")+a}return a}function p(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function g(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}},38650:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.browserPrefixToKey=o,t.browserPrefixToStyle=function(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e},t.default=void 0,t.getPrefix=r;var n=["Moz","Webkit","O","ms"];function r(){var e,t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"===typeof window)return"";var a=null===(e=window.document)||void 0===e||null===(t=e.documentElement)||void 0===t?void 0:t.style;if(!a)return"";if(r in a)return"";for(var i=0;i<n.length;i++)if(o(r,n[i])in a)return n[i];return""}function o(e,t){return t?"".concat(t).concat(function(e){for(var t="",n=!0,r=0;r<e.length;r++)n?(t+=e[r].toUpperCase(),n=!1):"-"===e[r]?n=!0:t+=e[r];return t}(e)):e}var a=r();t.default=a},55904:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){0}},2849:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.canDragX=function(e){return"both"===e.props.axis||"x"===e.props.axis},t.canDragY=function(e){return"both"===e.props.axis||"y"===e.props.axis},t.createCoreData=function(e,t,n){var o=e.state,i=!(0,r.isNum)(o.lastX),u=a(e);return i?{node:u,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:u,deltaX:t-o.lastX,deltaY:n-o.lastY,lastX:o.lastX,lastY:o.lastY,x:t,y:n}},t.createDraggableData=function(e,t){var n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}},t.getBoundPosition=function(e,t,n){if(!e.props.bounds)return[t,n];var i=e.props.bounds;i="string"===typeof i?i:function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}(i);var u=a(e);if("string"===typeof i){var l,s=u.ownerDocument,f=s.defaultView;if(!((l="parent"===i?u.parentNode:s.querySelector(i))instanceof f.HTMLElement))throw new Error('Bounds selector "'+i+'" could not find an element.');var c=l,d=f.getComputedStyle(u),p=f.getComputedStyle(c);i={left:-u.offsetLeft+(0,r.int)(p.paddingLeft)+(0,r.int)(d.marginLeft),top:-u.offsetTop+(0,r.int)(p.paddingTop)+(0,r.int)(d.marginTop),right:(0,o.innerWidth)(c)-(0,o.outerWidth)(u)-u.offsetLeft+(0,r.int)(p.paddingRight)-(0,r.int)(d.marginRight),bottom:(0,o.innerHeight)(c)-(0,o.outerHeight)(u)-u.offsetTop+(0,r.int)(p.paddingBottom)-(0,r.int)(d.marginBottom)}}(0,r.isNum)(i.right)&&(t=Math.min(t,i.right));(0,r.isNum)(i.bottom)&&(n=Math.min(n,i.bottom));(0,r.isNum)(i.left)&&(t=Math.max(t,i.left));(0,r.isNum)(i.top)&&(n=Math.max(n,i.top));return[t,n]},t.getControlPosition=function(e,t,n){var r="number"===typeof t?(0,o.getTouch)(e,t):null;if("number"===typeof t&&!r)return null;var i=a(n),u=n.props.offsetParent||i.offsetParent||i.ownerDocument.body;return(0,o.offsetXYFromParent)(r||e,u,n.props.scale)},t.snapToGrid=function(e,t,n){var r=Math.round(t/e[0])*e[0],o=Math.round(n/e[1])*e[1];return[r,o]};var r=n(9280),o=n(81825);function a(e){var t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}},9280:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.dontSetMe=function(e,t,n){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(n," - do not set this, set it on the child."))},t.findInArray=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t.apply(t,[e[n],n,e]))return e[n]},t.int=function(e){return parseInt(e,10)},t.isFunction=function(e){return"function"===typeof e||"[object Function]"===Object.prototype.toString.call(e)},t.isNum=function(e){return"number"===typeof e&&!isNaN(e)}}}]); \ No newline at end of file
diff --git a/web/gui/v2/20.a271e6cfa915fdaf3602.chunk.js b/web/gui/v2/20.625d62276782f5f021c5.chunk.js
index e9295e7f..8065f411 100644
--- a/web/gui/v2/20.a271e6cfa915fdaf3602.chunk.js
+++ b/web/gui/v2/20.625d62276782f5f021c5.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1f51898b-3194-4f66-aa61-e8fbb3a27c01",e._sentryDebugIdIdentifier="sentry-dbid-1f51898b-3194-4f66-aa61-e8fbb3a27c01")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[20],{9020:function(e,t,n){n.r(t),n.d(t,{default:function(){return de}});n(21249),n(57640),n(9924);var a=n(67294),l=n(15557),o=n(91008),r=n(25185),s=n(87462),i=n(29439),c=n(45987),u=(n(69720),n(50308)),d=n.n(u),m=n(82351),f=n(35539),p=["scope","setScope","isDisabled"],b=function(e){var t=e.scope,n=e.setScope,o=void 0===n?d():n,r=e.isDisabled,u=(0,c.Z)(e,p);return a.createElement(l.Flex,(0,s.Z)({gap:3},u),Object.entries(f.k0).map((function(e){var n=(0,i.Z)(e,2),s=n[0],c=n[1],u=c.text,d=c.tooltip;return a.createElement(l.RadioButton,{key:s,checked:s===t,onChange:function(){return o(s)},disabled:r},a.createElement(m.Z,{content:d,align:"bottom"},a.createElement(l.TextSmall,{color:"textDescription"},u)))})))},g=n(84580),h=(n(38862),n(46667)),v=n(4942),E=function(e){var t=e.selectedKey,n=e.selectedValue,o=e.onAddHostLabel,r=void 0===o?d():o,s=e.onRemoveHostLabel,c=void 0===s?d():s,u=e.isDefault,f=void 0!==u&&u,p=e.showPlaceholder,b=void 0===p?d():p,h=e.isDisabled,E=(0,a.useState)(t||""),C=(0,i.Z)(E,2),D=C[0],Z=C[1],x=(0,a.useState)(n||""),y=(0,i.Z)(x,2),S=y[0],O=y[1],k=function(){D&&S&&(r((0,v.Z)({},D,S)),b())};return a.createElement(l.Flex,{gap:2},a.createElement(g.Z,{component:"input",onChange:Z,onBlur:k,placeholder:"Host key",value:D,disabled:h||!f}),a.createElement(g.Z,{component:"input",onChange:O,onBlur:k,placeholder:"Host value",value:S,disabled:h||!f||!D}),f?a.createElement(m.Z,{content:"Save label pair",align:"bottom"},a.createElement(l.Button,{flavour:"borderless",disabled:!D||!S},a.createElement(l.Icon,{name:"check",color:"primary",size:"small"}))):a.createElement(m.Z,{content:"Remove label pair",align:"bottom"},a.createElement(l.Button,{flavour:"borderless",onClick:function(){return c(t)}},a.createElement(l.Icon,{name:"x",color:"primary",size:"small"}))))},C=function(e){var t=e.hostLabels,n=e.onAddHostLabel,l=e.onRemoveHostLabel;return Object.entries(t).map((function(e){var t=(0,i.Z)(e,2),o=t[0],r=t[1];return a.createElement(E,{key:o,onAddHostLabel:n,selectedKey:o,selectedValue:r,onRemoveHostLabel:l})}))},D=function(e){var t=e.hostLabels,n=e.onAddHostLabel,o=void 0===n?d():n,r=e.onRemoveHostLabel,s=void 0===r?d():r,c=e.isEdit,u=e.isDisabled,m=!!Object.entries(t||{}).length,f=(0,h.Z)(!1),p=(0,i.Z)(f,3),b=p[0],g=p[2];return a.createElement(l.Flex,{column:!0,gap:1},a.createElement(l.TextSmall,{color:"textLite"},"Host labels"),m&&a.createElement(C,{hostLabels:t,onAddHostLabel:o,onRemoveHostLabel:s}),(!m||b)&&a.createElement(E,{key:JSON.stringify(t),onAddHostLabel:o,isDefault:!0,showPlaceholder:g,isDisabled:u}),c&&!b&&m&&a.createElement(l.Flex,{justifyContent:"end"},a.createElement(l.Button,{flavour:"borderless",onClick:g},"Add host label")))},Z=n(95665);function x(){var e=new Date,t=e.getFullYear(),n=e.getMonth(),a=e.getDate(),l=new Date(0);return l.setFullYear(t,n,a+1),l.setHours(0,0,0,0),l}var y=n(69119),S=n(29422),O=n(95248),k=Object.entries(f.lI).map((function(e){var t=(0,i.Z)(e,2),n=t[0];return{label:t[1],value:n}})),w=x(),L=(0,y.default)((0,S.Z)(w,{years:1})),A=function(e){var t=e.duration,n=e.setDuration,o=e.setDate,r=e.endDate,s=e.isDisabled,i=(0,O.by)("offset");return a.createElement(l.Flex,{gap:2},a.createElement(g.Z,{component:"select",title:"Duration",onChange:n,options:k,placeholder:"Select duration",value:t,isDisabled:s}),"custom"===t.value&&a.createElement(l.Flex,{alignSelf:"end"},a.createElement(Z.Z,{isSinglePicker:!0,values:{singleDate:r},minDate:w,maxDate:L,utc:i,onChange:o,isPlaying:!1,accessorProps:f.mD,padding:[4,0],width:"auto",accessorTooltipContent:"Select end date"})))};function R(){return(0,y.default)(Date.now())}var H=R(),I=x(),P=function(e){var t=e.start,n=e.end,o=e.onChange,r=e.isDisabled,s=e.isEdit,c=(0,a.useState)(s?"schedule":f.JG),u=(0,i.Z)(c,2),d=u[0],p=u[1],b=(0,a.useState)(f.yu),g=(0,i.Z)(b,2),h=g[0],v=g[1],E=(0,a.useState)(0),C=(0,i.Z)(E,2),D=C[0],k=C[1],w=(0,O.by)("offset"),L=(0,a.useState)(t?new Date(t):s?null:H),P=(0,i.Z)(L,2),j=P[0],F=P[1],_=(0,a.useState)(n?new Date(n):s?null:I),B=(0,i.Z)(_,2),N=B[0],U=B[1],M=(0,a.useState)((0,y.default)((0,S.Z)(j,{days:1}))),T=(0,i.Z)(M,2),z=T[0],G=T[1];(0,a.useEffect)((function(){var e=(0,S.Z)(j,{days:1});G(e),!s&&j>=N&&U(e)}),[j]),(0,a.useEffect)((function(){o({start:j,end:N,scheduleOption:d,duration:h})}),[j,N,d,h]);var K=x(),V=(0,y.default)((0,S.Z)(K,{years:1}));return a.createElement(l.Flex,{column:!0,gap:3},!s&&a.createElement(l.Flex,{gap:3},Object.entries(f.Zg).map((function(e){var t=(0,i.Z)(e,2),n=t[0],o=t[1],s=o.text,c=o.tooltip;return a.createElement(l.RadioButton,{key:n,checked:n===d,onChange:function(){return p(n)},disabled:r},a.createElement(m.Z,{content:c,align:"bottom"},a.createElement(l.TextSmall,{color:"textDescription"},s)))}))),"now"===d?a.createElement(A,{duration:h,setDuration:v,setDate:function(e){F(Date.now()),U(e)},endDate:N,isDisabled:r}):a.createElement(l.Flex,{gap:2},a.createElement(l.Flex,{column:!0,gap:2,flex:{grow:1,shrink:1},basis:0},a.createElement(l.TextSmall,null,"Start date"),a.createElement(Z.Z,{isSinglePicker:!0,values:{singleDate:new Date(j)},minDate:R(),maxDate:V,utc:w,onChange:function(e){F(e),k((function(e){return e+1}))},isPlaying:!1,accessorProps:f.mD,padding:[4,0],width:"auto",accessorTooltipContent:"Select start date"})),a.createElement(l.Flex,{column:!0,gap:2,flex:{grow:1,shrink:1},basis:0},a.createElement(l.TextSmall,null,"End date"),a.createElement(Z.Z,{key:D,isSinglePicker:!0,values:{singleDate:N?new Date(N):N},minDate:z,maxDate:V,utc:w,onChange:U,isPlaying:!1,accessorProps:f.mD,padding:[4,0],width:"auto",accessorTooltipContent:"Select end date"}))))},j=function(e){var t=e.content,n=void 0===t?"Loading alerts...":t;return a.createElement(l.Flex,{height:45,alignItems:"center",justifyContent:"center"},a.createElement(l.Text,null,n))},F=n(27308),_=function(e){return a.createElement(l.Flex,(0,s.Z)({gap:2,alignItems:"center"},e),a.createElement(l.Icon,{size:"small",color:"warning",name:"warning_triangle"}),a.createElement(l.Text,null,"This feature is only available to paid plans"),a.createElement(F.Z,{classification:"Pro",content:"Go to Pro plan"}),a.createElement(F.Z,{classification:"Business",content:"Go to Business plan"}))},B=(n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(57327),n(41539),n(88449),n(2490),n(59849),n(47941),n(69826),n(31672),n(59461),n(26699),n(32023),n(88674),n(17727),n(89250)),N=n(13477),U=n(33335),M=n(74059),T=n(96929),z=n(3689),G=n(93742),K=n(25403),V=n(4480),Q=n(48450),Y=(0,V.CG)({key:"spaceAlertMetas",get:function(e){return function(){return(0,Q.uk)(e)}}}),J=n(62447),W=n(45396),$=n(93017),q=["id","name"],X=["rooms","nodes","hostLabels","startsAt","lastsUntil"],ee=["accountId","scope","rooms","nodes","hostLabels","startsAt","lastsUntil","scheduleOption","duration"];function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?te(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ae={name:"",rooms:[],nodes:[],hostLabels:null,alertNames:[],alertContexts:[],alertRoles:[],startsAt:null,lastsUntil:null},le=function(e){var t=e.id;return ne({label:e.name,value:t},(0,c.Z)(e,q))},oe=function(e){return{label:e,value:e}},re=function(e){return e.value},se=function(e,t){e.accountId;var n=e.scope,a=e.rooms,l=e.nodes,o=e.hostLabels,r=e.startsAt,s=e.lastsUntil,i=e.scheduleOption,u=e.duration,d=(0,c.Z)(e,ee),m=a.filter((function(e){return e.value!==f.sr.value})).map(re),p=l.map(re),b=!!Object.keys(o||{}).length,g=function(e){var t=e.startsAt,n=e.lastsUntil,a=e.scheduleOption,l=e.duration;if("schedule"==a)return{start:t,end:n};var o=Date.now(),r=void 0;switch(l){case"oneHour":r=(0,S.Z)(o,{hours:1});break;case"sixHours":r=(0,S.Z)(o,{hours:6});break;case"twelveHours":r=(0,S.Z)(o,{hours:12});break;case"oneDay":r=(0,S.Z)(o,{days:1});break;case"custom":r=n}return ne({start:o},r?{end:r}:{})}({startsAt:r,lastsUntil:s,scheduleOption:i,duration:u}),h=g.start,v=g.end;return ne(ne(ne(ne(ne(ne(ne({},d),"personal"==n?{account_id:t}:{}),m.length?{room_ids:m}:{}),p.length?{node_ids:p}:{}),b?{host_labels:o}:{}),h?{starts_at:new Date(h).toISOString()}:{}),v?{lasts_until:new Date(v).toISOString()}:{})},ie=function(e){var t,n=e.rule,l=e.onClose,o=e.isEdit,r=(0,N.jr)(),s=(0,B.s0)(),u=(0,M.uk)(),d=(0,h.Z)(),m=(0,i.Z)(d,2),p=m[0],b=m[1],g=(0,G.Z)({all:!0}),E=null===(t=g.find((function(e){return"All nodes"==e.label})))||void 0===t?void 0:t.value,C=function(){var e,t=(0,M.th)(),n=(0,V.$P)(Y(t));return{loaded:"loading"!==n.state,value:(null===(e=n.contents)||void 0===e?void 0:e.data)||Q.ND,hasError:"hasError"===n.state}}(),D=C.loaded,Z=C.value,x=C.hasError,y=(0,K.wK)(),S=(0,K.j6)(),O=o?S:y,k=(0,K._A)(),w=(0,$.Z)(),L=(0,i.Z)(w,3)[2],A=(0,a.useState)({alertNameOptions:[],alertContextOptions:[],alertRoleOptions:[]}),R=(0,i.Z)(A,2),H=R[0],I=R[1],P=H.alertNameOptions,j=H.alertContextOptions,F=H.alertRoleOptions,_=(0,a.useState)((function(){return ne(ne({},ae),function(e){var t,n=e.rooms,a=e.nodes,l=e.hostLabels,o=e.startsAt,r=e.lastsUntil,s=(0,c.Z)(e,X);return ne(ne(ne(ne(ne({},s),{},{scope:s.accountId?"personal":f.xQ,canSubmit:!(null===s||void 0===s||null===(t=s.name)||void 0===t||!t.length),rooms:null!==n&&void 0!==n&&n.length?n.map(le):[z.k_]},null!==a&&void 0!==a&&a.length?{nodes:a.map(le).filter((function(e){return!e.notAvailable}))}:{}),l?{hostLabels:l}:{}),o?{startsAt:o}:{}),r?{lastsUntil:r}:{})}(n))})),q=(0,i.Z)(_,2),ee=q[0],te=q[1],re=(0,T.IW)(ee.roomIds||[E]),ie=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{scope:e})}))}),[]),ce=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{name:e,canSubmit:!(null===e||void 0===e||!e.length)})}))}),[]),ue=(0,a.useCallback)((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=function(e){return e.length<=1?e:e[e.length-1].value==f.sr.value?[f.sr]:e.filter((function(e){return!!e.value}))}(e),a=n.map((function(e){return e.value||E})),l=t.length<n.length?n.filter((function(e){var n=e.value;return!t.includes(n)}))[0]:null;te((function(e){return ne(ne({},e),{},{rooms:n,roomIds:a,lastRoomAdded:l||null})}))}),[E]),de=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{nodeIds:e.map((function(e){return e.value})),nodes:e})}))}),[]),me=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{hostLabels:ne(ne({},t.hostLabels),e)})}))}),[]),fe=(0,a.useCallback)((function(e){return te((function(t){var n=ne({},t.hostLabels);return delete n[e],ne(ne({},t),{},{hostLabels:n})}))}),[]),pe=(0,a.useCallback)((function(e){return function(t){return te((function(n){return ne(ne({},n),{},(0,v.Z)({},e,t.map((function(e){return e.value}))))}))}}),[]),be=(0,a.useCallback)((function(e){var t=e.start,n=e.end,a=e.scheduleOption,l=e.duration;return te((function(e){return ne(ne({},e),{},{startsAt:t,lastsUntil:n,scheduleOption:a,duration:l.value})}))}),[]),ge=(0,a.useCallback)((function(){b(),O(se(ee,r)).then((function(){l(),k()})).catch((function(e){return L((0,J._)(e))})).finally(b)}),[ee,r]),he=(0,W.Z)();(0,a.useEffect)((function(){var e,t=(null===(e=ee.lastRoomAdded)||void 0===e?void 0:e.value)||E,n=null;return t&&(n=he(t)),function(){var e;return!(null===(e=n)||void 0===e||!e.cancel)&&n.cancel()}}),[ee.roomIds,he]),(0,a.useEffect)((function(){if(D){var e=Z||{},t=e.contexts,n=e.names,a=e.roles;I({alertNameOptions:n?n.map(oe):[],alertContextOptions:t?t.map(oe):[],alertRoleOptions:a?a.map(oe):[]})}}),[D]);var ve=(0,U.gI)("space:CreatePersonalSilencingRule"),Ee=(0,a.useCallback)((function(){return s("/spaces/".concat(u,"/settings/billing"))}),[u]);return{state:ee,onScopeChange:ie,onRuleNameChange:ce,onRoomsSelectionChange:ue,roomOptions:g,onNodesSelectionChange:de,nodesOptions:re,alertMetasLoaded:D,alertMetas:Z,alertNameOptions:P,alertContextOptions:j,alertRoleOptions:F,alertMetasError:x,onAlertValueChange:pe,onAddHostLabel:me,onRemoveHostLabel:fe,onDatesChange:be,loading:p,onSave:ge,spaceCreatePersonalSilencingRule:ve,onUpdateButtonClick:Ee}},ce=function(e){return null!==e&&void 0!==e&&e.length?e.map(oe):[]},ue=function(){return a.createElement(l.Box,{as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}})},de=function(e){var t=e.rule,n=void 0===t?{}:t,s=e.onClose,i=e.isEdit,c=ie({rule:n,onClose:s,isEdit:i}),u=c.state,d=c.onScopeChange,f=c.onRuleNameChange,p=c.onRoomsSelectionChange,h=c.roomOptions,v=c.onNodesSelectionChange,E=c.nodesOptions,C=c.alertMetasLoaded,Z=c.alertNameOptions,x=c.alertContextOptions,y=c.alertRoleOptions,S=c.onAlertValueChange,O=c.onAddHostLabel,k=c.onRemoveHostLabel,w=c.onDatesChange,L=c.loading,A=c.onSave,R=c.spaceCreatePersonalSilencingRule,H=c.onUpdateButtonClick;return a.createElement(l.Modal,{onEsc:s},a.createElement(r.hz,{style:{maxHeight:"800px"}},a.createElement(l.ModalHeader,{padding:[6,4,3]},a.createElement(l.Flex,{column:!0,gap:2},a.createElement(l.Flex,{flex:!0,alignItems:"center",justifyContent:"between"},a.createElement(l.H4,null,"Add silencing rule"),s&&a.createElement(r.A3,{onClose:s})),a.createElement(l.Text,null,"Define an alert notification silencing rule that will apply to all users or just you."," ",a.createElement(o.Z,{"data-ga":"alert-silencing::click-link-docs::rule-modal","data-testid":"silencing-rules-doc",href:"https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/netdata-cloud-notifications/manage-alert-notification-silencing-rules",rel:"noopener noreferrer",target:"_blank"},"Learn how to configure silencing rules.")),!R&&a.createElement(_,null))),a.createElement(l.ModalBody,{padding:[0]},a.createElement(r.QD,null,a.createElement(l.Flex,{column:!0,gap:3},a.createElement(b,{scope:u.scope,setScope:d,padding:[0,0,1,0],isDisabled:!R}),a.createElement(g.Z,{component:"input",onChange:f,placeholder:"Add rule name",title:"Rule name*",value:u.name,disabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:function(e){return p(e,u.roomIds)},options:h,placeholder:"Select rooms",title:"Rooms*",value:u.rooms,isDisabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:v,options:E,placeholder:"Select nodes",title:"Nodes",value:u.nodes,isDisabled:!R||!E.length}),a.createElement(D,{hostLabels:u.hostLabels,onAddHostLabel:O,onRemoveHostLabel:k,isEdit:i,isDisabled:!R}),C?a.createElement(a.Fragment,null,a.createElement(ue,null),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:S("alertNames"),options:Z,placeholder:"Select alert name",title:"Alert name",value:ce(u.alertNames),isDisabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:S("alertContexts"),options:x,placeholder:"Select alert context",title:"Alert context",value:ce(u.alertContexts),isDisabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:S("alertRoles"),options:y,placeholder:"Select alert role",title:"Alert role",value:ce(u.alertRoles),isDisabled:!R})):a.createElement(j,null),a.createElement(ue,null),a.createElement(P,{start:u.startsAt,end:u.lastsUntil,onChange:w,isEdit:i,isDisabled:!R}))),a.createElement(r.QD,{alignItems:"end",justifyContent:"center"},a.createElement(l.Flex,{gap:4},a.createElement(l.Button,{flavour:"borderless",label:"Cancel",onClick:s,disabled:L}),R?a.createElement(m.Z,{content:i?"Update the rule":"Create the rule",align:"bottom"},a.createElement(l.Button,{label:"OK",onClick:A,"data-ga":"alert-silencing::click-save-".concat(i?"edit":"new","-rule::rule-modal"),"data-testid":"saveRule-button",textTransform:"uppercase",isLoading:L,disabled:L||!u.canSubmit})):a.createElement(m.Z,{content:"Update to a paid plan in order to be able to create silencing rules",align:"bottom"},a.createElement(l.Button,{label:"Upgrade!",onClick:H})))))))}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="21c1830b-49b5-47fe-8a18-e2fa59fce755",e._sentryDebugIdIdentifier="sentry-dbid-21c1830b-49b5-47fe-8a18-e2fa59fce755")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[20],{9020:function(e,t,n){n.r(t),n.d(t,{default:function(){return de}});n(21249),n(57640),n(9924);var a=n(67294),l=n(57509),o=n(91008),r=n(25185),s=n(87462),i=n(29439),c=n(45987),u=(n(69720),n(50308)),d=n.n(u),m=n(82351),f=n(35539),p=["scope","setScope","isDisabled"],b=function(e){var t=e.scope,n=e.setScope,o=void 0===n?d():n,r=e.isDisabled,u=(0,c.Z)(e,p);return a.createElement(l.Flex,(0,s.Z)({gap:3},u),Object.entries(f.k0).map((function(e){var n=(0,i.Z)(e,2),s=n[0],c=n[1],u=c.text,d=c.tooltip;return a.createElement(l.RadioButton,{key:s,checked:s===t,onChange:function(){return o(s)},disabled:r},a.createElement(m.Z,{content:d,align:"bottom"},a.createElement(l.TextSmall,{color:"textDescription"},u)))})))},g=n(84580),h=(n(38862),n(46667)),v=n(4942),E=function(e){var t=e.selectedKey,n=e.selectedValue,o=e.onAddHostLabel,r=void 0===o?d():o,s=e.onRemoveHostLabel,c=void 0===s?d():s,u=e.isDefault,f=void 0!==u&&u,p=e.showPlaceholder,b=void 0===p?d():p,h=e.isDisabled,E=(0,a.useState)(t||""),C=(0,i.Z)(E,2),D=C[0],Z=C[1],x=(0,a.useState)(n||""),y=(0,i.Z)(x,2),S=y[0],O=y[1],k=function(){D&&S&&(r((0,v.Z)({},D,S)),b())};return a.createElement(l.Flex,{gap:2},a.createElement(g.Z,{component:"input",onChange:Z,onBlur:k,placeholder:"Host key",value:D,disabled:h||!f}),a.createElement(g.Z,{component:"input",onChange:O,onBlur:k,placeholder:"Host value",value:S,disabled:h||!f||!D}),f?a.createElement(m.Z,{content:"Save label pair",align:"bottom"},a.createElement(l.Button,{flavour:"borderless",disabled:!D||!S},a.createElement(l.Icon,{name:"check",color:"primary",size:"small"}))):a.createElement(m.Z,{content:"Remove label pair",align:"bottom"},a.createElement(l.Button,{flavour:"borderless",onClick:function(){return c(t)}},a.createElement(l.Icon,{name:"x",color:"primary",size:"small"}))))},C=function(e){var t=e.hostLabels,n=e.onAddHostLabel,l=e.onRemoveHostLabel;return Object.entries(t).map((function(e){var t=(0,i.Z)(e,2),o=t[0],r=t[1];return a.createElement(E,{key:o,onAddHostLabel:n,selectedKey:o,selectedValue:r,onRemoveHostLabel:l})}))},D=function(e){var t=e.hostLabels,n=e.onAddHostLabel,o=void 0===n?d():n,r=e.onRemoveHostLabel,s=void 0===r?d():r,c=e.isEdit,u=e.isDisabled,m=!!Object.entries(t||{}).length,f=(0,h.Z)(!1),p=(0,i.Z)(f,3),b=p[0],g=p[2];return a.createElement(l.Flex,{column:!0,gap:1},a.createElement(l.TextSmall,{color:"textLite"},"Host labels"),m&&a.createElement(C,{hostLabels:t,onAddHostLabel:o,onRemoveHostLabel:s}),(!m||b)&&a.createElement(E,{key:JSON.stringify(t),onAddHostLabel:o,isDefault:!0,showPlaceholder:g,isDisabled:u}),c&&!b&&m&&a.createElement(l.Flex,{justifyContent:"end"},a.createElement(l.Button,{flavour:"borderless",onClick:g},"Add host label")))},Z=n(95665);function x(){var e=new Date,t=e.getFullYear(),n=e.getMonth(),a=e.getDate(),l=new Date(0);return l.setFullYear(t,n,a+1),l.setHours(0,0,0,0),l}var y=n(69119),S=n(29422),O=n(95248),k=Object.entries(f.lI).map((function(e){var t=(0,i.Z)(e,2),n=t[0];return{label:t[1],value:n}})),w=x(),L=(0,y.default)((0,S.Z)(w,{years:1})),A=function(e){var t=e.duration,n=e.setDuration,o=e.setDate,r=e.endDate,s=e.isDisabled,i=(0,O.by)("offset");return a.createElement(l.Flex,{gap:2},a.createElement(g.Z,{component:"select",title:"Duration",onChange:n,options:k,placeholder:"Select duration",value:t,isDisabled:s}),"custom"===t.value&&a.createElement(l.Flex,{alignSelf:"end"},a.createElement(Z.Z,{isSinglePicker:!0,values:{singleDate:r},minDate:w,maxDate:L,utc:i,onChange:o,isPlaying:!1,accessorProps:f.mD,padding:[4,0],width:"auto",accessorTooltipContent:"Select end date"})))};function R(){return(0,y.default)(Date.now())}var H=R(),I=x(),P=function(e){var t=e.start,n=e.end,o=e.onChange,r=e.isDisabled,s=e.isEdit,c=(0,a.useState)(s?"schedule":f.JG),u=(0,i.Z)(c,2),d=u[0],p=u[1],b=(0,a.useState)(f.yu),g=(0,i.Z)(b,2),h=g[0],v=g[1],E=(0,a.useState)(0),C=(0,i.Z)(E,2),D=C[0],k=C[1],w=(0,O.by)("offset"),L=(0,a.useState)(t?new Date(t):s?null:H),P=(0,i.Z)(L,2),j=P[0],F=P[1],_=(0,a.useState)(n?new Date(n):s?null:I),B=(0,i.Z)(_,2),N=B[0],U=B[1],M=(0,a.useState)((0,y.default)((0,S.Z)(j,{days:1}))),T=(0,i.Z)(M,2),z=T[0],G=T[1];(0,a.useEffect)((function(){var e=(0,S.Z)(j,{days:1});G(e),!s&&j>=N&&U(e)}),[j]),(0,a.useEffect)((function(){o({start:j,end:N,scheduleOption:d,duration:h})}),[j,N,d,h]);var K=x(),V=(0,y.default)((0,S.Z)(K,{years:1}));return a.createElement(l.Flex,{column:!0,gap:3},!s&&a.createElement(l.Flex,{gap:3},Object.entries(f.Zg).map((function(e){var t=(0,i.Z)(e,2),n=t[0],o=t[1],s=o.text,c=o.tooltip;return a.createElement(l.RadioButton,{key:n,checked:n===d,onChange:function(){return p(n)},disabled:r},a.createElement(m.Z,{content:c,align:"bottom"},a.createElement(l.TextSmall,{color:"textDescription"},s)))}))),"now"===d?a.createElement(A,{duration:h,setDuration:v,setDate:function(e){F(Date.now()),U(e)},endDate:N,isDisabled:r}):a.createElement(l.Flex,{gap:2},a.createElement(l.Flex,{column:!0,gap:2,flex:{grow:1,shrink:1},basis:0},a.createElement(l.TextSmall,null,"Start date"),a.createElement(Z.Z,{isSinglePicker:!0,values:{singleDate:new Date(j)},minDate:R(),maxDate:V,utc:w,onChange:function(e){F(e),k((function(e){return e+1}))},isPlaying:!1,accessorProps:f.mD,padding:[4,0],width:"auto",accessorTooltipContent:"Select start date"})),a.createElement(l.Flex,{column:!0,gap:2,flex:{grow:1,shrink:1},basis:0},a.createElement(l.TextSmall,null,"End date"),a.createElement(Z.Z,{key:D,isSinglePicker:!0,values:{singleDate:N?new Date(N):N},minDate:z,maxDate:V,utc:w,onChange:U,isPlaying:!1,accessorProps:f.mD,padding:[4,0],width:"auto",accessorTooltipContent:"Select end date"}))))},j=function(e){var t=e.content,n=void 0===t?"Loading alerts...":t;return a.createElement(l.Flex,{height:45,alignItems:"center",justifyContent:"center"},a.createElement(l.Text,null,n))},F=n(27308),_=function(e){return a.createElement(l.Flex,(0,s.Z)({gap:2,alignItems:"center"},e),a.createElement(l.Icon,{size:"small",color:"warning",name:"warning_triangle"}),a.createElement(l.Text,null,"This feature is only available to paid plans"),a.createElement(F.Z,{classification:"Pro",content:"Go to Pro plan"}),a.createElement(F.Z,{classification:"Business",content:"Go to Business plan"}))},B=(n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(57327),n(41539),n(88449),n(2490),n(59849),n(47941),n(69826),n(31672),n(59461),n(26699),n(32023),n(88674),n(17727),n(89250)),N=n(13477),U=n(33335),M=n(74059),T=n(96929),z=n(3689),G=n(93742),K=n(25403),V=n(4480),Q=n(48450),Y=(0,V.CG)({key:"spaceAlertMetas",get:function(e){return function(){return(0,Q.uk)(e)}}}),J=n(62447),W=n(45396),$=n(93017),q=["id","name"],X=["rooms","nodes","hostLabels","startsAt","lastsUntil"],ee=["accountId","scope","rooms","nodes","hostLabels","startsAt","lastsUntil","scheduleOption","duration"];function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?te(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ae={name:"",rooms:[],nodes:[],hostLabels:null,alertNames:[],alertContexts:[],alertRoles:[],startsAt:null,lastsUntil:null},le=function(e){var t=e.id;return ne({label:e.name,value:t},(0,c.Z)(e,q))},oe=function(e){return{label:e,value:e}},re=function(e){return e.value},se=function(e,t){e.accountId;var n=e.scope,a=e.rooms,l=e.nodes,o=e.hostLabels,r=e.startsAt,s=e.lastsUntil,i=e.scheduleOption,u=e.duration,d=(0,c.Z)(e,ee),m=a.filter((function(e){return e.value!==f.sr.value})).map(re),p=l.map(re),b=!!Object.keys(o||{}).length,g=function(e){var t=e.startsAt,n=e.lastsUntil,a=e.scheduleOption,l=e.duration;if("schedule"==a)return{start:t,end:n};var o=Date.now(),r=void 0;switch(l){case"oneHour":r=(0,S.Z)(o,{hours:1});break;case"sixHours":r=(0,S.Z)(o,{hours:6});break;case"twelveHours":r=(0,S.Z)(o,{hours:12});break;case"oneDay":r=(0,S.Z)(o,{days:1});break;case"custom":r=n}return ne({start:o},r?{end:r}:{})}({startsAt:r,lastsUntil:s,scheduleOption:i,duration:u}),h=g.start,v=g.end;return ne(ne(ne(ne(ne(ne(ne({},d),"personal"==n?{account_id:t}:{}),m.length?{room_ids:m}:{}),p.length?{node_ids:p}:{}),b?{host_labels:o}:{}),h?{starts_at:new Date(h).toISOString()}:{}),v?{lasts_until:new Date(v).toISOString()}:{})},ie=function(e){var t,n=e.rule,l=e.onClose,o=e.isEdit,r=(0,N.jr)(),s=(0,B.s0)(),u=(0,M.uk)(),d=(0,h.Z)(),m=(0,i.Z)(d,2),p=m[0],b=m[1],g=(0,G.Z)({all:!0}),E=null===(t=g.find((function(e){return"All nodes"==e.label})))||void 0===t?void 0:t.value,C=function(){var e,t=(0,M.th)(),n=(0,V.$P)(Y(t));return{loaded:"loading"!==n.state,value:(null===(e=n.contents)||void 0===e?void 0:e.data)||Q.ND,hasError:"hasError"===n.state}}(),D=C.loaded,Z=C.value,x=C.hasError,y=(0,K.wK)(),S=(0,K.j6)(),O=o?S:y,k=(0,K._A)(),w=(0,$.Z)(),L=(0,i.Z)(w,3)[2],A=(0,a.useState)({alertNameOptions:[],alertContextOptions:[],alertRoleOptions:[]}),R=(0,i.Z)(A,2),H=R[0],I=R[1],P=H.alertNameOptions,j=H.alertContextOptions,F=H.alertRoleOptions,_=(0,a.useState)((function(){return ne(ne({},ae),function(e){var t,n=e.rooms,a=e.nodes,l=e.hostLabels,o=e.startsAt,r=e.lastsUntil,s=(0,c.Z)(e,X);return ne(ne(ne(ne(ne({},s),{},{scope:s.accountId?"personal":f.xQ,canSubmit:!(null===s||void 0===s||null===(t=s.name)||void 0===t||!t.length),rooms:null!==n&&void 0!==n&&n.length?n.map(le):[z.k_]},null!==a&&void 0!==a&&a.length?{nodes:a.map(le).filter((function(e){return!e.notAvailable}))}:{}),l?{hostLabels:l}:{}),o?{startsAt:o}:{}),r?{lastsUntil:r}:{})}(n))})),q=(0,i.Z)(_,2),ee=q[0],te=q[1],re=(0,T.IW)(ee.roomIds||[E]),ie=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{scope:e})}))}),[]),ce=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{name:e,canSubmit:!(null===e||void 0===e||!e.length)})}))}),[]),ue=(0,a.useCallback)((function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=function(e){return e.length<=1?e:e[e.length-1].value==f.sr.value?[f.sr]:e.filter((function(e){return!!e.value}))}(e),a=n.map((function(e){return e.value||E})),l=t.length<n.length?n.filter((function(e){var n=e.value;return!t.includes(n)}))[0]:null;te((function(e){return ne(ne({},e),{},{rooms:n,roomIds:a,lastRoomAdded:l||null})}))}),[E]),de=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{nodeIds:e.map((function(e){return e.value})),nodes:e})}))}),[]),me=(0,a.useCallback)((function(e){return te((function(t){return ne(ne({},t),{},{hostLabels:ne(ne({},t.hostLabels),e)})}))}),[]),fe=(0,a.useCallback)((function(e){return te((function(t){var n=ne({},t.hostLabels);return delete n[e],ne(ne({},t),{},{hostLabels:n})}))}),[]),pe=(0,a.useCallback)((function(e){return function(t){return te((function(n){return ne(ne({},n),{},(0,v.Z)({},e,t.map((function(e){return e.value}))))}))}}),[]),be=(0,a.useCallback)((function(e){var t=e.start,n=e.end,a=e.scheduleOption,l=e.duration;return te((function(e){return ne(ne({},e),{},{startsAt:t,lastsUntil:n,scheduleOption:a,duration:l.value})}))}),[]),ge=(0,a.useCallback)((function(){b(),O(se(ee,r)).then((function(){l(),k()})).catch((function(e){return L((0,J._)(e))})).finally(b)}),[ee,r]),he=(0,W.Z)();(0,a.useEffect)((function(){var e,t=(null===(e=ee.lastRoomAdded)||void 0===e?void 0:e.value)||E,n=null;return t&&(n=he(t)),function(){var e;return!(null===(e=n)||void 0===e||!e.cancel)&&n.cancel()}}),[ee.roomIds,he]),(0,a.useEffect)((function(){if(D){var e=Z||{},t=e.contexts,n=e.names,a=e.roles;I({alertNameOptions:n?n.map(oe):[],alertContextOptions:t?t.map(oe):[],alertRoleOptions:a?a.map(oe):[]})}}),[D]);var ve=(0,U.gI)("space:CreatePersonalSilencingRule"),Ee=(0,a.useCallback)((function(){return s("/spaces/".concat(u,"/settings/billing"))}),[u]);return{state:ee,onScopeChange:ie,onRuleNameChange:ce,onRoomsSelectionChange:ue,roomOptions:g,onNodesSelectionChange:de,nodesOptions:re,alertMetasLoaded:D,alertMetas:Z,alertNameOptions:P,alertContextOptions:j,alertRoleOptions:F,alertMetasError:x,onAlertValueChange:pe,onAddHostLabel:me,onRemoveHostLabel:fe,onDatesChange:be,loading:p,onSave:ge,spaceCreatePersonalSilencingRule:ve,onUpdateButtonClick:Ee}},ce=function(e){return null!==e&&void 0!==e&&e.length?e.map(oe):[]},ue=function(){return a.createElement(l.Box,{as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}})},de=function(e){var t=e.rule,n=void 0===t?{}:t,s=e.onClose,i=e.isEdit,c=ie({rule:n,onClose:s,isEdit:i}),u=c.state,d=c.onScopeChange,f=c.onRuleNameChange,p=c.onRoomsSelectionChange,h=c.roomOptions,v=c.onNodesSelectionChange,E=c.nodesOptions,C=c.alertMetasLoaded,Z=c.alertNameOptions,x=c.alertContextOptions,y=c.alertRoleOptions,S=c.onAlertValueChange,O=c.onAddHostLabel,k=c.onRemoveHostLabel,w=c.onDatesChange,L=c.loading,A=c.onSave,R=c.spaceCreatePersonalSilencingRule,H=c.onUpdateButtonClick;return a.createElement(l.Modal,{onEsc:s},a.createElement(r.hz,{style:{maxHeight:"800px"}},a.createElement(l.ModalHeader,{padding:[6,4,3]},a.createElement(l.Flex,{column:!0,gap:2},a.createElement(l.Flex,{flex:!0,alignItems:"center",justifyContent:"between"},a.createElement(l.H4,null,"Add silencing rule"),s&&a.createElement(r.A3,{onClose:s})),a.createElement(l.Text,null,"Define an alert notification silencing rule that will apply to all users or just you."," ",a.createElement(o.Z,{"data-ga":"alert-silencing::click-link-docs::rule-modal","data-testid":"silencing-rules-doc",href:"https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/netdata-cloud-notifications/manage-alert-notification-silencing-rules",rel:"noopener noreferrer",target:"_blank"},"Learn how to configure silencing rules.")),!R&&a.createElement(_,null))),a.createElement(l.ModalBody,{padding:[0]},a.createElement(r.QD,null,a.createElement(l.Flex,{column:!0,gap:3},a.createElement(b,{scope:u.scope,setScope:d,padding:[0,0,1,0],isDisabled:!R}),a.createElement(g.Z,{component:"input",onChange:f,placeholder:"Add rule name",title:"Rule name*",value:u.name,disabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:function(e){return p(e,u.roomIds)},options:h,placeholder:"Select rooms",title:"Rooms*",value:u.rooms,isDisabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:v,options:E,placeholder:"Select nodes",title:"Nodes",value:u.nodes,isDisabled:!R||!E.length}),a.createElement(D,{hostLabels:u.hostLabels,onAddHostLabel:O,onRemoveHostLabel:k,isEdit:i,isDisabled:!R}),C?a.createElement(a.Fragment,null,a.createElement(ue,null),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:S("alertNames"),options:Z,placeholder:"Select alert name",title:"Alert name",value:ce(u.alertNames),isDisabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:S("alertContexts"),options:x,placeholder:"Select alert context",title:"Alert context",value:ce(u.alertContexts),isDisabled:!R}),a.createElement(g.Z,{component:"select",isMulti:!0,onChange:S("alertRoles"),options:y,placeholder:"Select alert role",title:"Alert role",value:ce(u.alertRoles),isDisabled:!R})):a.createElement(j,null),a.createElement(ue,null),a.createElement(P,{start:u.startsAt,end:u.lastsUntil,onChange:w,isEdit:i,isDisabled:!R}))),a.createElement(r.QD,{alignItems:"end",justifyContent:"center"},a.createElement(l.Flex,{gap:4},a.createElement(l.Button,{flavour:"borderless",label:"Cancel",onClick:s,disabled:L}),R?a.createElement(m.Z,{content:i?"Update the rule":"Create the rule",align:"bottom"},a.createElement(l.Button,{label:"OK",onClick:A,"data-ga":"alert-silencing::click-save-".concat(i?"edit":"new","-rule::rule-modal"),"data-testid":"saveRule-button",textTransform:"uppercase",isLoading:L,disabled:L||!u.canSubmit})):a.createElement(m.Z,{content:"Update to a paid plan in order to be able to create silencing rules",align:"bottom"},a.createElement(l.Button,{label:"Upgrade!",onClick:H})))))))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/241.9c26252244ccad9ac280.chunk.js b/web/gui/v2/241.dcc517f9189cb747150e.chunk.js
index 499ed4aa..0c0790f2 100644
--- a/web/gui/v2/241.9c26252244ccad9ac280.chunk.js
+++ b/web/gui/v2/241.dcc517f9189cb747150e.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="8eb15d28-ec6a-4c58-a08f-ab953f1c39b6",e._sentryDebugIdIdentifier="sentry-dbid-8eb15d28-ec6a-4c58-a08f-ab953f1c39b6")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[241],{1178:function(e,n,t){t.r(n),t.d(n,{MagicLinkSent:function(){return m}});t(74916),t(64765);var i=t(67294),r=t(60677),o=t(89250),a=t(15557),c=t(15794),d=t(8360),l=t(91940),u=t(87562),f=t(1043),s=(0,r.default)(a.Text).attrs({role:"button"}).withConfig({displayName:"magicLinkSent__ButtonText",componentId:"sc-ua6kmo-0"})(["cursor:pointer;"]),m=function(){var e=(0,o.TH)(),n=e.search,t=e.state,r=((void 0===t?{}:t)||{}).email,c=window.location.hash,m=(0,f.iM)(),g=(0,i.useCallback)((function(){var e=encodeURIComponent((0,u.$)("/sign-in".concat(n),c)),t=encodeURIComponent((0,u.$)("/sign-up/verify".concat(n),c));m({email:r,redirectURI:e,registerURI:t,resend:!0})}),[r]);return i.createElement(l.Z,{"data-testid":"magicLinkSent"},i.createElement(a.H1,{textAlign:"center"},"Check your email!"),i.createElement(a.Flex,{column:!0,padding:[0,0,8,0],gap:8,justifyContent:"between",alignItems:"center",border:{side:"bottom",color:"disabled"}},i.createElement(a.Flex,{column:!0,gap:1,alignItems:"center"},i.createElement(a.TextBig,{textAlign:"center"},"We have sent an email to ",i.createElement(a.TextBig,{strong:!0},!!r&&r),"."),i.createElement(a.TextBig,{textAlign:"center"},"Please find this email (check your spam folder too) and click the button there to continue.")),i.createElement(a.Text,{textAlign:"center"},"Didn't receive it?"," ",i.createElement(s,{onClick:g,color:"primary"},"Click here to resend it."))),i.createElement(a.Flex,{column:!0,alignSelf:"center"},i.createElement(d.Z,null)))};n.default=(0,c.k)(m,"light")},76362:function(e,n,t){t.d(n,{S1:function(){return o},ZT:function(){return i},ae:function(){return c},jU:function(){return a},on:function(){return r}});var i=function(){};function r(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.addEventListener&&e.addEventListener.apply(e,n)}function o(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.removeEventListener&&e.removeEventListener.apply(e,n)}var a="undefined"!==typeof window,c="undefined"!==typeof navigator},94829:function(e,n,t){var i=t(67294),r=t(76362);n.Z=function(e,n){var t=(0,i.useState)(function(e,n){return void 0!==n?n:!!r.jU&&window.matchMedia(e).matches}(e,n)),o=t[0],a=t[1];return(0,i.useEffect)((function(){var n=!0,t=window.matchMedia(e),i=function(){n&&a(!!t.matches)};return t.addListener(i),a(t.matches),function(){n=!1,t.removeListener(i)}}),[e]),o}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3a1a50ff-db18-48dc-85d4-bc1c901957d8",e._sentryDebugIdIdentifier="sentry-dbid-3a1a50ff-db18-48dc-85d4-bc1c901957d8")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[241],{1178:function(e,n,t){t.r(n),t.d(n,{MagicLinkSent:function(){return m}});t(74916),t(64765);var i=t(67294),r=t(60677),o=t(89250),a=t(57509),c=t(15794),d=t(8360),l=t(91940),u=t(87562),f=t(1043),s=(0,r.default)(a.Text).attrs({role:"button"}).withConfig({displayName:"magicLinkSent__ButtonText",componentId:"sc-ua6kmo-0"})(["cursor:pointer;"]),m=function(){var e=(0,o.TH)(),n=e.search,t=e.state,r=((void 0===t?{}:t)||{}).email,c=window.location.hash,m=(0,f.iM)(),g=(0,i.useCallback)((function(){var e=encodeURIComponent((0,u.$)("/sign-in".concat(n),c)),t=encodeURIComponent((0,u.$)("/sign-up/verify".concat(n),c));m({email:r,redirectURI:e,registerURI:t,resend:!0})}),[r]);return i.createElement(l.Z,{"data-testid":"magicLinkSent"},i.createElement(a.H1,{textAlign:"center"},"Check your email!"),i.createElement(a.Flex,{column:!0,padding:[0,0,8,0],gap:8,justifyContent:"between",alignItems:"center",border:{side:"bottom",color:"disabled"}},i.createElement(a.Flex,{column:!0,gap:1,alignItems:"center"},i.createElement(a.TextBig,{textAlign:"center"},"We have sent an email to ",i.createElement(a.TextBig,{strong:!0},!!r&&r),"."),i.createElement(a.TextBig,{textAlign:"center"},"Please find this email (check your spam folder too) and click the button there to continue.")),i.createElement(a.Text,{textAlign:"center"},"Didn't receive it?"," ",i.createElement(s,{onClick:g,color:"primary"},"Click here to resend it."))),i.createElement(a.Flex,{column:!0,alignSelf:"center"},i.createElement(d.Z,null)))};n.default=(0,c.k)(m,"light")},76362:function(e,n,t){t.d(n,{S1:function(){return o},ZT:function(){return i},ae:function(){return c},jU:function(){return a},on:function(){return r}});var i=function(){};function r(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.addEventListener&&e.addEventListener.apply(e,n)}function o(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.removeEventListener&&e.removeEventListener.apply(e,n)}var a="undefined"!==typeof window,c="undefined"!==typeof navigator},94829:function(e,n,t){var i=t(67294),r=t(76362);n.Z=function(e,n){var t=(0,i.useState)(function(e,n){return void 0!==n?n:!!r.jU&&window.matchMedia(e).matches}(e,n)),o=t[0],a=t[1];return(0,i.useEffect)((function(){var n=!0,t=window.matchMedia(e),i=function(){n&&a(!!t.matches)};return t.addListener(i),a(t.matches),function(){n=!1,t.removeListener(i)}}),[e]),o}}}]); \ No newline at end of file
diff --git a/web/gui/v2/252.ecac74e9755e6d96573c.chunk.js b/web/gui/v2/252.c34ade07cc21e6fd9b8e.chunk.js
index 7a2d5d22..b14a311c 100644
--- a/web/gui/v2/252.ecac74e9755e6d96573c.chunk.js
+++ b/web/gui/v2/252.c34ade07cc21e6fd9b8e.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="888d3f00-5281-4526-acae-85d599fce192",e._sentryDebugIdIdentifier="sentry-dbid-888d3f00-5281-4526-acae-85d599fce192")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[252],{46019:function(e,t,n){n.r(t),n.d(t,{SignIn:function(){return B},default:function(){return _}});n(74916),n(15306),n(64765),n(77601);var a=n(67294),i=n(89250),r=n(17563),o=n(15557),l=n(15794),c=n(1043),d=n(87562),u=n(26502),s=(n(92222),n(60677)),f=s.default.a.withConfig({displayName:"linkButton__LinkButton",componentId:"sc-9kv26a-0"})(["color:",";text-decoration:none;background-color:transparent;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;height:",";background:",";border:1px solid ",";border-radius:2px;max-width:320px;width:100%;",";&:hover{text-decoration:none;color:unset;}"],(0,o.getColor)("background"),(0,o.getSizeBy)(5.5),(0,o.getColor)("mainBackground"),(0,o.getColor)("mainBackground"),(function(e){var t=e.disabled;return"\n opacity: ".concat(t?.4:1,";\n pointer-events: ").concat(t?"none":"auto",";\n ")})),g=function(e){return(0,s.default)(f).withConfig({displayName:"linkButton",componentId:"sc-9kv26a-1"})(["box-shadow:0px 0px 1px rgba(0,0,0,0.12);border-radius:2px;background:",";border:1px solid ",";span{flex:1;display:flex;align-items:center;justify-content:center;padding:0 ",";color:",";}"],e,e,(0,o.getSizeBy)(1),(0,o.getColor)("bright"))},m=g("#445260"),p=g("#4285f4"),b=n(29439),h=n(78312),E=function(e){var t=e.onSubmit,n=e.disabled,i=e.initialValue,r=e.buttonLabel,l=e.tagging,c=(0,o.useInputValue)({value:i||""}),d=(0,b.Z)(c,4),u=d[0],s=d[1],f=d[3],g=(0,o.useTouchedState)({}),m=(0,b.Z)(g,2),p=m[0],E=m[1],v=(0,a.useState)(!1),x=(0,b.Z)(v,2),w=x[0],y=x[1],k=(0,a.useCallback)((function(e){e.preventDefault(),t(u)}),[t,u]);return a.createElement(o.Flex,{as:"form",column:!0,gap:4,width:"100%","data-testid":"emailField"},a.createElement(h.U5,{value:u,onChange:s,isValid:w,setIsValid:y,instantFeedback:"positiveFirst",isDirty:f,success:w&&"Valid E-mail",onBlur:E,touched:p,"data-testid":"emailField-input"}),a.createElement(h.Sn,{type:"submit",disabled:n||!f,width:"100%",label:r,onClick:k,"data-ga":"signinup::click-email::".concat(l),"data-testid":"emailField-submitButton"}))},v=n(8360),x=n(91940),w=function(){return a.createElement(o.Flex,{height:"1px",width:"100%",background:"disabled"})},y=n(87462),k=n(46189),C=n(92432),I=k.Z.demoSlug,S=function(e){return a.createElement(o.Text,(0,y.Z)({textAlign:"center"},e),"Discover the power and simplicity of Netdata in our live infrastructure monitoring"," ",a.createElement(h.Fg,{onClick:function(){(0,C.L)("signinup","click-demo","sni-view")},href:"/spaces/".concat(I),target:"_blank"},"demo")," ")},F=function(e){var t=e.to;return a.createElement(o.Box,{position:"fixed"},a.createElement(o.Button,{as:"a",href:t,flavour:"borderless",label:"Go back to ".concat(t.replace(/#.*/,"")),icon:"arrow_left",rel:"noopener noreferrer"}))},B=function(){var e=(0,i.TH)().search,t=window.location.hash,n=(0,c.iM)(),l=r.parse(e).redirect_uri,s=(0,a.useCallback)((function(a){var i=encodeURIComponent((0,d.$)("/sign-in".concat(e),t)),r=encodeURIComponent((0,d.$)("/sign-up/verify".concat(e),t));n({email:a,redirectURI:i,registerURI:r})}),[]);return(0,a.useEffect)((function(){if(/app\.netdata\.cloud/.test(location.hostname)){var e=document.createElement("script");return e.src="https://zsvdrp94yfxr.statuspage.io/embed/script.js",e.async=!0,document.body.appendChild(e),function(){document.body.removeChild(e)}}}),[]),a.createElement(a.Fragment,null,!!l&&a.createElement(F,{to:l}),a.createElement(x.Z,{"data-testid":"signIn"},a.createElement(o.H1,{textAlign:"center"},"Welcome!"),a.createElement(o.TextBig,{textAlign:"center"},"Sign in and let\u2019s get you started:"),a.createElement(h.Yb,null,a.createElement(o.Flex,{column:!0,gap:4},a.createElement(p,{href:(0,d.G)("google"),disabled:!1,"data-ga":"signinup::click-google::sni-view","data-testid":"signIn-googleButton"},a.createElement(h.xG,null,a.createElement(u.av,null)),a.createElement(o.Text,{textAlign:"center"},"Continue with Google")),a.createElement(m,{href:(0,d.G)("github"),disabled:!1,"data-ga":"signinup::click-github::sni-view","data-testid":"signIn-githubButton"},a.createElement(h.xG,null,a.createElement(u.bY,null)),a.createElement(o.Text,null,"Continue with GitHub"))),a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(w,null),a.createElement(o.H4,null,"or"),a.createElement(w,null)),a.createElement(E,{onSubmit:s,buttonLabel:"Sign in by email",tagging:"sni-view"})),a.createElement(o.Flex,{column:!0,gap:2,alignSelf:"center",width:{max:"480px"}},a.createElement(o.TextBig,{textAlign:"center"},"Don't have a Netdata account yet? Relax! Sign-in and we will create one for you!"),a.createElement(S,{margin:[4,0,0]}),a.createElement(v.Z,null)),a.createElement(w,null),a.createElement(o.Flex,{column:!0,gap:4,alignItems:"center"},a.createElement(u.lR,null),a.createElement(o.TextSmall,{textAlign:"center"},"Netdata is a member of the Cloud Native Computing Foundation (CNCF), and it is the 3rd most starred project in the CNCF landscape."))))},_=(0,l.k)(B,"light")},76362:function(e,t,n){n.d(t,{S1:function(){return r},ZT:function(){return a},ae:function(){return l},jU:function(){return o},on:function(){return i}});var a=function(){};function i(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function r(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var o="undefined"!==typeof window,l="undefined"!==typeof navigator},94829:function(e,t,n){var a=n(67294),i=n(76362);t.Z=function(e,t){var n=(0,a.useState)(function(e,t){return void 0!==t?t:!!i.jU&&window.matchMedia(e).matches}(e,t)),r=n[0],o=n[1];return(0,a.useEffect)((function(){var t=!0,n=window.matchMedia(e),a=function(){t&&o(!!n.matches)};return n.addListener(a),o(n.matches),function(){t=!1,n.removeListener(a)}}),[e]),r}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e6a10f4b-e1b1-4683-9600-82592172f126",e._sentryDebugIdIdentifier="sentry-dbid-e6a10f4b-e1b1-4683-9600-82592172f126")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[252],{46019:function(e,t,n){n.r(t),n.d(t,{SignIn:function(){return B},default:function(){return _}});n(74916),n(15306),n(64765),n(77601);var a=n(67294),i=n(89250),r=n(17563),o=n(57509),l=n(15794),c=n(1043),u=n(87562),d=n(26502),s=(n(92222),n(60677)),f=s.default.a.withConfig({displayName:"linkButton__LinkButton",componentId:"sc-9kv26a-0"})(["color:",";text-decoration:none;background-color:transparent;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;height:",";background:",";border:1px solid ",";border-radius:2px;max-width:320px;width:100%;",";&:hover{text-decoration:none;color:unset;}"],(0,o.getColor)("background"),(0,o.getSizeBy)(5.5),(0,o.getColor)("mainBackground"),(0,o.getColor)("mainBackground"),(function(e){var t=e.disabled;return"\n opacity: ".concat(t?.4:1,";\n pointer-events: ").concat(t?"none":"auto",";\n ")})),g=function(e){return(0,s.default)(f).withConfig({displayName:"linkButton",componentId:"sc-9kv26a-1"})(["box-shadow:0px 0px 1px rgba(0,0,0,0.12);border-radius:2px;background:",";border:1px solid ",";span{flex:1;display:flex;align-items:center;justify-content:center;padding:0 ",";color:",";}"],e,e,(0,o.getSizeBy)(1),(0,o.getColor)("bright"))},m=g("#445260"),p=g("#4285f4"),b=n(29439),h=n(78312),E=function(e){var t=e.onSubmit,n=e.disabled,i=e.initialValue,r=e.buttonLabel,l=e.tagging,c=(0,o.useInputValue)({value:i||""}),u=(0,b.Z)(c,4),d=u[0],s=u[1],f=u[3],g=(0,o.useTouchedState)({}),m=(0,b.Z)(g,2),p=m[0],E=m[1],v=(0,a.useState)(!1),x=(0,b.Z)(v,2),w=x[0],y=x[1],k=(0,a.useCallback)((function(e){e.preventDefault(),t(d)}),[t,d]);return a.createElement(o.Flex,{as:"form",column:!0,gap:4,width:"100%","data-testid":"emailField"},a.createElement(h.U5,{value:d,onChange:s,isValid:w,setIsValid:y,instantFeedback:"positiveFirst",isDirty:f,success:w&&"Valid E-mail",onBlur:E,touched:p,"data-testid":"emailField-input"}),a.createElement(h.Sn,{type:"submit",disabled:n||!f,width:"100%",label:r,onClick:k,"data-ga":"signinup::click-email::".concat(l),"data-testid":"emailField-submitButton"}))},v=n(8360),x=n(91940),w=function(){return a.createElement(o.Flex,{height:"1px",width:"100%",background:"disabled"})},y=n(87462),k=n(46189),C=n(92432),I=k.Z.demoSlug,S=function(e){return a.createElement(o.Text,(0,y.Z)({textAlign:"center"},e),"Discover the power and simplicity of Netdata in our live infrastructure monitoring"," ",a.createElement(h.Fg,{onClick:function(){(0,C.L)("signinup","click-demo","sni-view")},href:"/spaces/".concat(I),target:"_blank"},"demo")," ")},F=function(e){var t=e.to;return a.createElement(o.Box,{position:"fixed"},a.createElement(o.Button,{as:"a",href:t,flavour:"borderless",label:"Go back to ".concat(t.replace(/#.*/,"")),icon:"arrow_left",rel:"noopener noreferrer"}))},B=function(){var e=(0,i.TH)().search,t=window.location.hash,n=(0,c.iM)(),l=r.parse(e).redirect_uri,s=(0,a.useCallback)((function(a){var i=encodeURIComponent((0,u.$)("/sign-in".concat(e),t)),r=encodeURIComponent((0,u.$)("/sign-up/verify".concat(e),t));n({email:a,redirectURI:i,registerURI:r})}),[]);return(0,a.useEffect)((function(){if(/app\.netdata\.cloud/.test(location.hostname)){var e=document.createElement("script");return e.src="https://zsvdrp94yfxr.statuspage.io/embed/script.js",e.async=!0,document.body.appendChild(e),function(){document.body.removeChild(e)}}}),[]),a.createElement(a.Fragment,null,!!l&&a.createElement(F,{to:l}),a.createElement(x.Z,{"data-testid":"signIn"},a.createElement(o.H1,{textAlign:"center"},"Welcome!"),a.createElement(o.TextBig,{textAlign:"center"},"Sign in and let\u2019s get you started:"),a.createElement(h.Yb,null,a.createElement(o.Flex,{column:!0,gap:4},a.createElement(p,{href:(0,u.G)("google"),disabled:!1,"data-ga":"signinup::click-google::sni-view","data-testid":"signIn-googleButton"},a.createElement(h.xG,null,a.createElement(d.av,null)),a.createElement(o.Text,{textAlign:"center"},"Continue with Google")),a.createElement(m,{href:(0,u.G)("github"),disabled:!1,"data-ga":"signinup::click-github::sni-view","data-testid":"signIn-githubButton"},a.createElement(h.xG,null,a.createElement(d.bY,null)),a.createElement(o.Text,null,"Continue with GitHub"))),a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(w,null),a.createElement(o.H4,null,"or"),a.createElement(w,null)),a.createElement(E,{onSubmit:s,buttonLabel:"Sign in by email",tagging:"sni-view"})),a.createElement(o.Flex,{column:!0,gap:2,alignSelf:"center",width:{max:"480px"}},a.createElement(o.TextBig,{textAlign:"center"},"Don't have a Netdata account yet? Relax! Sign-in and we will create one for you!"),a.createElement(S,{margin:[4,0,0]}),a.createElement(v.Z,null)),a.createElement(w,null),a.createElement(o.Flex,{column:!0,gap:4,alignItems:"center"},a.createElement(d.lR,null),a.createElement(o.TextSmall,{textAlign:"center"},"Netdata is a member of the Cloud Native Computing Foundation (CNCF), and it is the 3rd most starred project in the CNCF landscape."))))},_=(0,l.k)(B,"light")},76362:function(e,t,n){n.d(t,{S1:function(){return r},ZT:function(){return a},ae:function(){return l},jU:function(){return o},on:function(){return i}});var a=function(){};function i(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function r(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var o="undefined"!==typeof window,l="undefined"!==typeof navigator},94829:function(e,t,n){var a=n(67294),i=n(76362);t.Z=function(e,t){var n=(0,a.useState)(function(e,t){return void 0!==t?t:!!i.jU&&window.matchMedia(e).matches}(e,t)),r=n[0],o=n[1];return(0,a.useEffect)((function(){var t=!0,n=window.matchMedia(e),a=function(){t&&o(!!n.matches)};return n.addListener(a),o(n.matches),function(){t=!1,n.removeListener(a)}}),[e]),r}}}]); \ No newline at end of file
diff --git a/web/gui/v2/264.a5876f358dd6972563d5.chunk.js b/web/gui/v2/264.296e4fe770b1756ed46b.chunk.js
index 0634c52f..03e14a7c 100644
--- a/web/gui/v2/264.a5876f358dd6972563d5.chunk.js
+++ b/web/gui/v2/264.296e4fe770b1756ed46b.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="cbfe57a7-8263-439c-a909-d5481c7ee0f7",e._sentryDebugIdIdentifier="sentry-dbid-cbfe57a7-8263-439c-a909-d5481c7ee0f7")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[264],{26264:function(e,t,n){n.r(t),n.d(t,{default:function(){return ve}});var a=n(29439),r=n(67294),o=n(15557),c=n(33937),i=n(87462),l=(n(21249),n(57640),n(9924),n(60677)),s=n(89250),u=n(46189),d=n(46667),m=n(27622),p=n(77872),g=n(36459),f=(n(19601),n(82351)),h=n(93033),b=n(15418),E=n(74059),v=function(e){var t=Object.assign({},((0,g.Z)(e),e)),n=(0,h.Z)(),a=(0,E.Q6)();return r.createElement(b.Z,{permission:"space:ReadSettings"},(function(e){return r.createElement(f.Z,{content:e?"Space settings":a?"You are viewing a local agent. Connect the agent to a space on cloud to be able to view and change the settings":"Only admins can view space settings"},r.createElement(o.Flex,{opacity:e?null:"weak",padding:[0,1]},r.createElement(o.Button,(0,i.Z)({disabled:!e,flavour:"borderless",icon:"gear",neutral:!0,onClick:n,small:!0,"data-ga":"left-sidebar::click-space-settings::global-view","data-testid":"workspaceBar-manageSpace"},t))))}))},w=n(36065),k=n(15257),x=n(92432),C=n(14428),I=n(97346),y=n(57683),Z=n(3528),S=function(){var e=(0,Z.hd)("email"),t=(0,y.Z)().handleOpenProfileModal;return"loading"===e.state||e.state.hasError?null:r.createElement(o.IconButton,{flavour:"borderless","data-testid":"open-email-notification",cursor:"pointer",width:"20px",height:"20px",onClick:function(){return t("notifications")},icon:e.contents.email?"notification_shortcut_enabled":"notification_shortcut_disabled",tooltip:"Email Notifications","data-ga":"left-sidebar::click-user-notification-settings::global-view",iconColor:"iconColor"})},_=(0,r.memo)(S),P=l.default.div.withConfig({displayName:"spaces__Separator",componentId:"sc-8de8pq-0"})(["height:1px;width:",";background:",";"],(0,o.getSizeBy)(3),(0,o.getColor)("border")),F=(0,l.default)(o.Button).withConfig({displayName:"spaces__DocButton",componentId:"sc-8de8pq-1"})(["&&{> .button-icon{width:20px;height:20px;}}"]),O=(0,l.default)(o.Button).withConfig({displayName:"spaces__ExpandButton",componentId:"sc-8de8pq-2"})(["&&{> .button-icon{width:6px;height:9px;}}"]),B={onClickOut:function(){return(0,x.L)("header-help","click-out-modal","global-view")},onCloseClick:function(){return(0,x.L)("header-help","click-close","global-view")},onOpenIssueClick:function(){return(0,x.L)("header-help","click-\u03bfpen-issue","global-view")},onContributeClick:function(){return(0,x.L)("header-help","click-contribute","global-view")},onOpenBugClick:function(){return(0,x.L)("header-help","click-bug","global-view")},onSupportClick:function(){return(0,x.L)("header-help","click-support","global-view")},onVisitDocumentClick:function(){return(0,x.L)("header-help","click-visit-doc","global-view")},onGoToDemoClick:function(){return(0,x.L)("header-help","click-go-to-demo","global-view")}},T=function(e){var t=e.spacePanelCollapsed,n=e.toggleSpacePanel,c=(0,E.Iw)(),l=(0,E.th)(),g=(0,d.Z)(),h=(0,a.Z)(g,4),b=h[0],x=h[2],y=h[3],Z=(0,s.s0)(),S=(0,r.useCallback)((function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).slug;return Z("/spaces/".concat(e))}),[]);return r.createElement(o.Flex,{background:"sideBarMini","data-testid":"workspaceBar",padding:[3,2],column:!0,alignItems:"center",gap:6,height:"100vh",justifyContent:"between"},r.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-spaces-list",gap:4,alignItems:"center",overflow:"hidden"},r.createElement(m.Z,{"data-testid":"workspaceBar-netdataLogo"}),t&&r.createElement(O,{"data-testid":"workspaceBar-expandButton",onClick:n,icon:"chevron_right_s",neutral:!0,flavour:"borderless",small:!0}),r.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-spacesList",gap:4,overflow:{vertical:"auto"}},c.map((function(e){return r.createElement(p.Z,{testIdPrefix:"workspaceBar-space",key:e,spaceId:e,active:e===l})}))),r.createElement(I.Z,{permission:"user:CreateSpace"},r.createElement(P,{"data-testid":"workspaceBar-separator"})),r.createElement(f.Z,{content:"Create a new Space",align:"right"},r.createElement(C.Z,{permission:"user:CreateSpace",ifForbidden:"hide",icon:"plus",onClick:x,"data-testid":"workspaceBar-addSpace-button"}))),r.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-actionsList",gap:4,alignItems:"center"},r.createElement(o.Flex,{column:!0,gap:1,alignItems:"center"},r.createElement(I.Z,{permission:"user:ChangeSpaceRoomNotifications"},r.createElement(_,null)),r.createElement(o.Documentation,(0,i.Z)({app:"cloud",demoUrl:u.Z.demoUrl},B),(function(e){return r.createElement(f.Z,{content:"Read documentation, engage with the community and let us know about any feature requests or bugs",align:"right"},r.createElement(F,{neutral:!0,flavour:"borderless",icon:"question",onClick:e,"data-ga":"header-help::click-help::global-view","data-testid":"documentation-button",title:"Need help?"}))})),r.createElement(v,null)),r.createElement(k.Z,null)),b&&r.createElement(w.Z,{onClose:y,onDone:S}))},L=n(15861),N=n(64687),j=n.n(N),D=(n(9170),n(66992),n(41539),n(88674),n(34668),n(78783),n(33948),n(69826),n(31672),n(2490),n(59461),n(26699),n(32023),n(92222),n(57327),n(88449),n(59849),n(74916),n(77601),n(15306),n(27856)),R=n(26398),z=n(18761),W=n(97945),A=n(7335),M=n(25819),U=n(67622),q=n(61458),V=n(92501),H=n(37689),G=n(64358),Q=(0,l.default)(o.Icon).withConfig({displayName:"styled__TrashIcon",componentId:"sc-1hr9uxl-0"})(["&:hover{fill:",";opacity:0.6;}"],(0,o.getColor)("textFocus")),Y=(0,l.default)(o.TextSmall).withConfig({displayName:"styled__UrlWrapper",componentId:"sc-1hr9uxl-1"})(["overflow-wrap:anywhere;"]),$=(0,l.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1hr9uxl-2"})(["transform:",";"],(function(e){return e.right?"rotate(0)":"rotate(180deg)"})),J=function(){var e=(0,L.Z)(j().mark((function e(t,n){var a,r,o,c,i,l,s;return j().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.spaces,r=void 0===a?[]:a,o=n.id,e.next=3,(0,z.kq)(o);case 3:if(c=e.sent,!(i=c.data).length){e.next=9;break}return e.next=8,Promise.any(r.map((function(e){return R.Z.get((0,G.W)({spaceId:e.id})).then((function(t){var n=t.data;return Promise.any(n.map((function(t){return(0,M.Fz)({roomId:t.id,spaceId:e.id}).then((function(n){var a=n.data.find((function(e){var t=e.id;return i.includes(t)}));if(!a)throw new Error("can't find matching node");return"".concat(window.envSettings.cloudUrl,"/spaces/").concat(e.slug,"/rooms/").concat(t.slug,"/nodes/").concat(a.id)}))})))}))}))).then((function(e){return e})).catch((function(){}));case 8:l=e.sent;case 9:if(!l){e.next=11;break}return e.abrupt("return",l);case 11:if(!(s=t.filter((function(e){return!/netdata\.cloud\//.test(e)}))).length){e.next=16;break}return e.next=15,Promise.any(s.map((function(e){var t=/^https?:\/\//.test(e)?e:"http://".concat(e);return t=t.replace(/\/+$/,""),R.Z.get("".concat(t,"/api/v1/registry?action=hello")).then((function(){return t}))}))).then((function(e){return e})).catch((function(){}));case 15:return e.abrupt("return",e.sent);case 16:return e.abrupt("return");case 17:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),K=function(e){/https?:\/\//.test(e)||(e="http://".concat(e)),location.replace(e)},X=function(e){var t=e.id,n=e.selectedId,c=e.setSelectedId,i=(0,W.bV)(t,"name"),l=(0,d.Z)(),s=(0,a.Z)(l,4),u=s[0],m=s[2],p=s[3],g=(0,A.lL)(),f=(0,W.bV)(t,"urls"),h=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.openList,o=n.setSelectedId,c=(0,r.useRef)(),i=(0,E.GM)("ids"),l=(0,E.Zu)(i);return(0,r.useCallback)((0,L.Z)(j().mark((function n(){return j().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(o(e),c.current){n.next=5;break}return n.next=4,J(t,{spaces:l,id:e});case 4:c.current=n.sent;case 5:if(o(),c.current){n.next=8;break}return n.abrupt("return",a());case 8:K(c.current);case 9:case"end":return n.stop()}}),n)}))),[t,l])}(t,f,{openList:m,setSelectedId:c}),b=(0,r.useCallback)((function(){u?p():h()}),[u,h]),v=n===t;return r.createElement(r.Fragment,null,r.createElement(U.Z,{onClick:b,isSidebar:!0,padding:[1,2,1,4],testid:"visitedNodes-".concat(i),disabled:!!n&&!v,selected:v,loading:v,iconColor:"menuItem",textColor:"menuItem",Wrapper:o.TextSmall},i),u&&r.createElement(o.Flex,{column:!0,margin:[1,3],padding:[2],border:{side:"all",color:"separator"},round:2},r.createElement(o.Text,{textAlign:"center"},"We couldn't connect to any of your instances, here is the list:"),f.map((function(e){return r.createElement(U.Z,{key:e,onClick:function(){return K(e)},isSidebar:!0,testid:"visitedNodes-node-".concat(e),actions:r.createElement(o.Flex,{flex:!1,margin:[0,0,0,1]},r.createElement(Q,{name:"trashcan",size:"small",color:"menuItem",onClick:function(n){n.stopPropagation(),g(t,e)},width:"16px",height:"16px"})),padding:[2],Wrapper:Y,iconColor:"menuItem",textColor:"menuItem"},e)}))))},ee=function(){var e=(0,A.z2)(),t=(0,d.Z)(e.length>0),n=(0,a.Z)(t,2),c=n[0],i=n[1];(0,r.useEffect)((function(){c||i()}),[e.length]);var l=(0,r.useState)(""),s=(0,a.Z)(l,2),u=s[0],m=s[1],p=(0,A.H3)(u),g=(0,r.useCallback)((0,D.D)(300,(function(e){return m(e.target.value)})),[]),f=(0,r.useState)(),h=(0,a.Z)(f,2),b=h[0],E=h[1];return e.length?r.createElement(q.Z,{isOpen:c,toggleOpen:i,label:r.createElement(o.Flex,{padding:[1,0],flex:!0,justifyContent:"between",alignItems:"center"},r.createElement(o.Flex,{alignItems:"center",gap:2},r.createElement(o.Icon,{name:"node_hollow",color:"menuItem",width:"14px",height:"14px"}),r.createElement(o.TextSmall,{color:"menuItem"},"Visited Nodes")),r.createElement($,{right:!c,name:"chevron_down",size:"small",color:"menuItem"})),headerTestId:"visitedNodes"},e.length>3&&r.createElement(o.Flex,{padding:[1,2,2,4]},r.createElement(H.Z,{"data-testid":"search-visited-nodes-input",onChange:g,size:"tiny"})),r.createElement(o.Flex,{padding:[0,0,2],column:!0},p.length?p.map((function(e){return r.createElement(X,{key:e,id:e,selectedId:b,setSelectedId:E})})):r.createElement(o.Text,{padding:[3,5]},"No nodes match your search"))):null},te=(0,r.memo)((function(){return r.createElement(V.ZP,{fallback:""},r.createElement(r.Suspense,{fallback:""},r.createElement(ee,null)))})),ne=n(56662),ae=n(55917),re=n(33335),oe=function(e){return function(t){var n=(0,E.th)();return r.createElement(e,(0,i.Z)({},t,{key:n}))}},ce=n(59636),ie={isSidebar:!0,padding:[1,2,1,4],textColor:"menuItem",Wrapper:o.TextSmall},le=oe((function(){var e=(0,re.gI)("room:Create"),t=(0,re.gI)("room:Read"),n=(0,d.Z)(t),c=(0,a.Z)(n,2),i=c[0],l=c[1],s=(0,d.Z)(!1),u=(0,a.Z)(s,4),m=u[0],p=u[2],g=u[3],h=(0,r.useCallback)((function(t){t.stopPropagation(),e&&p()}),[e]);return r.createElement(r.Fragment,null,r.createElement(q.Z,{"data-testid":"workspaceRooms-menuList",disabled:!t,headerTestId:"workspaceRooms-warRooms",isOpen:i,label:r.createElement(o.Flex,{padding:[1,0],margin:[0,0,1,0],flex:!0,justifyContent:"between",alignItems:"center",height:"24px"},r.createElement(o.Flex,{alignItems:"center",gap:2},r.createElement(o.Icon,{name:"space_new",color:"menuItem",width:"14px",height:"14px"}),r.createElement(o.TextSmall,{color:"menuItem"},"Rooms")),r.createElement(o.Flex,{alignItems:"center",gap:2},r.createElement(f.Z,{content:"Create a new room",align:"right"},r.createElement(C.Z,{permission:"room:Create",tiny:!0,icon:"plus",onClick:h,"data-testid":"workspaceRooms-addWarRoom-button"})),r.createElement(ae.x,{right:!i,name:"chevron_down",size:"small",color:"menuItem"}))),toggleOpen:l},r.createElement(o.Flex,{column:!0,"data-testid":"workspaceRooms-warRoomsList",padding:[0,0,1]},r.createElement(ce.Z,ie))),m&&r.createElement(ne.U,{onClose:g,isSubmodal:!1}))})),se=n(61152),ue=(0,l.default)(o.Flex).attrs({alignItems:"center",justifyContent:"center",width:10,height:4,round:.5,background:"sideBarMini"}).withConfig({displayName:"styled__AdminPill",componentId:"sc-1ps23b1-0"})(["opacity:0;",":hover &{opacity:1;}"],U.z),de=function(e){var t=e.children,n=e.onToggle;return r.createElement(o.Flex,{justifyContent:"between",alignItems:"center"},r.createElement(o.Flex,{alignItems:"center"},t),r.createElement(o.Button,{onClick:n,icon:"chevron_left",neutral:!0,flavour:"hollow",small:!0}))},me=n(89149),pe=n(38671),ge=(0,l.default)(q.g).attrs({padding:[2],color:"textLite"}).withConfig({displayName:"spacePanel__ListHeader",componentId:"sc-1275zgk-0"})([""]),fe=function(e){return r.createElement(o.Flex,(0,i.Z)({alignItems:"center",gap:2},e),r.createElement(ue,null,r.createElement(o.TextFemto,{strong:!0,color:"text"},"ADMIN")),r.createElement(o.Flex,{opacity:"medium"},r.createElement(o.Icon,{name:"padlock",size:"small",width:"18px",height:"18px",color:"text"})))},he={iconWidth:"14px",iconHeight:"14px",padding:[1,2],gap:2,isSidebar:!0,textColor:"menuItem",iconColor:"menuItem",Wrapper:o.TextSmall},be=function(e){var t=e.toggleSpacePanel,n=(0,E.OS)(),c=(0,d.Z)(),l=(0,a.Z)(c,4),s=l[0],u=l[2],m=l[3],p=(0,se.Z)("manageInvitations"),g=(0,a.Z)(p,2)[1],f=(0,E.Q6)(),h=(0,pe.Z)().onIntegrationsClick;return r.createElement(r.Fragment,null,s&&r.createElement(me.Z,{title:"Integrations",onClose:m}),r.createElement(q.Z,{"data-testid":"spacesPanel",isOpen:!0,label:r.createElement(de,{onToggle:t},n.name),headerTestId:"spacesPanel-activeSpaceHeader",Header:ge},r.createElement(o.Flex,{column:!0,padding:[2,0,1],"data-testid":"spacesPanel-menuList"},r.createElement(U.Z,(0,i.Z)({onClick:h,testid:"agentDashboard-addIntegrations",dataGa:"integrations::click-add-integrations::sideMenu",icon:"integrations"},he),"Integrations"),f?null:r.createElement(r.Fragment,null,r.createElement(b.Z,{permission:"node:Create"},(function(e){return r.createElement(U.Z,(0,i.Z)({actions:e?null:r.createElement(fe,{"data-testid":"adminWarning-notAdmin"}),disabled:!e,onClick:u,testid:"spacesPanel-claimNodes",icon:"nodes_hollow"},he),"Connect Nodes")})),r.createElement(b.Z,{permission:"space:InviteUser"},(function(e){return r.createElement(U.Z,(0,i.Z)({actions:e?null:r.createElement(fe,{"data-testid":"adminWarning-cannotInvite"}),disabled:!e,onClick:g,testid:"spacesPanel-inviteUsers",icon:"user"},he),"Invite Users")}))))))},Ee=function(e){var t=e.spacePanelCollapsed,n=e.toggleSpacePanel;return r.createElement(o.Collapsible,{width:56,background:"sideBar",open:!t,direction:"horizontal"},r.createElement(o.Flex,{flex:!0,width:56,column:!0,overflow:{vertical:"hidden"},padding:[2,0]},r.createElement(be,{toggleSpacePanel:n}),r.createElement(o.Flex,{overflow:{vertical:"auto"},flex:!0,column:!0},r.createElement(le,null),r.createElement(te,null))))},ve=(0,r.memo)((function(){var e=(0,c.k)("spacePanelCollapsed"),t=(0,a.Z)(e,2),n=t[0],i=t[1],l=(0,pe.Z)(),s=l.isIntegrationsVisible,u=l.hideIntegrations,d=(0,r.useCallback)((function(){return i(!n)}),[n]);return(0,r.useLayoutEffect)((function(){var e=setTimeout((function(){return window.dispatchEvent(new Event("resize"))}),400);return function(){return clearTimeout(e)}}),[n]),r.createElement(o.Flex,null,r.createElement(T,{spacePanelCollapsed:n,toggleSpacePanel:d}),r.createElement(Ee,{spacePanelCollapsed:n,toggleSpacePanel:d}),s&&r.createElement(me.Z,{title:"Integrations",onClose:u,flavour:"integrations"}))}))},38671:function(e,t,n){n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var a=n(4942),r=n(29439),o=n(67294),c=n(10034),i=n(58591);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=(0,i.m$)(),t=(0,c.Oi)(),n=(0,r.Z)(t,2),a=n[0],l=n[1],u=(0,c.wC)().reset,d=(0,o.useCallback)((function(){u(),(0,i.xs)(s(s({},e),{},{integrationsModalOpen:"true"})),l("true")}),[u,e]);return{isIntegrationsVisible:a,hideIntegrations:(0,o.useCallback)((function(){(0,i.xs)(s(s({},e),{},{integrationsModalOpen:""})),l("")}),[e]),onIntegrationsClick:d}}},11060:function(e,t,n){var a=n(1702),r=Error,o=a("".replace),c=String(r("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,l=i.test(c);e.exports=function(e,t){if(l&&"string"==typeof e&&!r.prepareStackTrace)for(;t--;)e=o(e,i,"");return e}},5392:function(e,t,n){var a=n(68880),r=n(11060),o=n(22914),c=Error.captureStackTrace;e.exports=function(e,t,n,i){o&&(c?c(e,t):a(e,"stack",r(n,i)))}},22914:function(e,t,n){var a=n(47293),r=n(79114);e.exports=!a((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",r(1,7)),7!==e.stack)}))},58340:function(e,t,n){var a=n(70111),r=n(68880);e.exports=function(e,t){a(t)&&"cause"in t&&r(e,"cause",t.cause)}},56277:function(e,t,n){var a=n(41340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:a(e)}},56967:function(e,t,n){var a=n(82109),r=n(47976),o=n(79518),c=n(27674),i=n(99920),l=n(70030),s=n(68880),u=n(79114),d=n(58340),m=n(5392),p=n(20408),g=n(56277),f=n(5112)("toStringTag"),h=Error,b=[].push,E=function(e,t){var n,a=r(v,this);c?n=c(h(),a?o(this):v):(n=a?this:l(v),s(n,f,"Error")),void 0!==t&&s(n,"message",g(t)),m(n,E,n.stack,1),arguments.length>2&&d(n,arguments[2]);var i=[];return p(e,b,{that:i}),s(n,"errors",i),n};c?c(E,h):i(E,h,{name:!0});var v=E.prototype=l(h.prototype,{constructor:u(1,E),message:u(1,""),name:u(1,"AggregateError")});a({global:!0,constructor:!0,arity:2},{AggregateError:E})},9170:function(e,t,n){n(56967)},34668:function(e,t,n){var a=n(82109),r=n(46916),o=n(19662),c=n(35005),i=n(78523),l=n(12534),s=n(20408),u=n(80612),d="No one promise resolved";a({target:"Promise",stat:!0,forced:u},{any:function(e){var t=this,n=c("AggregateError"),a=i.f(t),u=a.resolve,m=a.reject,p=l((function(){var a=o(t.resolve),c=[],i=0,l=1,p=!1;s(e,(function(e){var o=i++,s=!1;l++,r(a,t,e).then((function(e){s||p||(p=!0,u(e))}),(function(e){s||p||(s=!0,c[o]=e,--l||m(new n(c,d)))}))})),--l||m(new n(c,d))}));return p.error&&m(p.value),a.promise}})}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="527e225a-dd4c-428b-a731-778e3e5731ec",e._sentryDebugIdIdentifier="sentry-dbid-527e225a-dd4c-428b-a731-778e3e5731ec")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[264],{26264:function(e,t,n){n.r(t),n.d(t,{default:function(){return ve}});var a=n(29439),r=n(67294),o=n(57509),i=n(33937),c=n(87462),l=(n(21249),n(57640),n(9924),n(60677)),s=n(89250),u=n(46189),d=n(46667),m=n(27622),p=n(77872),g=n(36459),f=(n(19601),n(82351)),h=n(93033),b=n(15418),E=n(74059),v=function(e){var t=Object.assign({},((0,g.Z)(e),e)),n=(0,h.Z)(),a=(0,E.Q6)();return r.createElement(b.Z,{permission:"space:ReadSettings"},(function(e){return r.createElement(f.Z,{content:e?"Space settings":a?"You are viewing a local agent. Connect the agent to a space on cloud to be able to view and change the settings":"Only admins can view space settings"},r.createElement(o.Flex,{opacity:e?null:"weak",padding:[0,1]},r.createElement(o.Button,(0,c.Z)({disabled:!e,flavour:"borderless",icon:"gear",neutral:!0,onClick:n,small:!0,"data-ga":"left-sidebar::click-space-settings::global-view","data-testid":"workspaceBar-manageSpace"},t))))}))},w=n(36065),k=n(15257),x=n(92432),C=n(14428),I=n(97346),y=n(57683),Z=n(3528),S=function(){var e=(0,Z.hd)("email"),t=(0,y.Z)().handleOpenProfileModal;return"loading"===e.state||e.state.hasError?null:r.createElement(o.IconButton,{flavour:"borderless","data-testid":"open-email-notification",cursor:"pointer",width:"20px",height:"20px",onClick:function(){return t("notifications")},icon:e.contents.email?"notification_shortcut_enabled":"notification_shortcut_disabled",tooltip:"Email Notifications","data-ga":"left-sidebar::click-user-notification-settings::global-view",iconColor:"iconColor"})},_=(0,r.memo)(S),P=l.default.div.withConfig({displayName:"spaces__Separator",componentId:"sc-8de8pq-0"})(["height:1px;width:",";background:",";"],(0,o.getSizeBy)(3),(0,o.getColor)("border")),F=(0,l.default)(o.Button).withConfig({displayName:"spaces__DocButton",componentId:"sc-8de8pq-1"})(["&&{> .button-icon{width:20px;height:20px;}}"]),O=(0,l.default)(o.Button).withConfig({displayName:"spaces__ExpandButton",componentId:"sc-8de8pq-2"})(["&&{> .button-icon{width:6px;height:9px;}}"]),B={onClickOut:function(){return(0,x.L)("header-help","click-out-modal","global-view")},onCloseClick:function(){return(0,x.L)("header-help","click-close","global-view")},onOpenIssueClick:function(){return(0,x.L)("header-help","click-\u03bfpen-issue","global-view")},onContributeClick:function(){return(0,x.L)("header-help","click-contribute","global-view")},onOpenBugClick:function(){return(0,x.L)("header-help","click-bug","global-view")},onSupportClick:function(){return(0,x.L)("header-help","click-support","global-view")},onVisitDocumentClick:function(){return(0,x.L)("header-help","click-visit-doc","global-view")},onGoToDemoClick:function(){return(0,x.L)("header-help","click-go-to-demo","global-view")}},T=function(e){var t=e.spacePanelCollapsed,n=e.toggleSpacePanel,i=(0,E.Iw)(),l=(0,E.th)(),g=(0,d.Z)(),h=(0,a.Z)(g,4),b=h[0],x=h[2],y=h[3],Z=(0,s.s0)(),S=(0,r.useCallback)((function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).slug;return Z("/spaces/".concat(e))}),[]);return r.createElement(o.Flex,{background:"sideBarMini","data-testid":"workspaceBar",padding:[3,0],column:!0,alignItems:"center",gap:6,height:"100vh",justifyContent:"between"},r.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-spaces-list",gap:4,alignItems:"center",overflow:"hidden"},r.createElement(m.Z,{"data-testid":"workspaceBar-netdataLogo"}),t&&r.createElement(O,{"data-testid":"workspaceBar-expandButton",onClick:n,icon:"chevron_right_s",neutral:!0,flavour:"borderless",small:!0}),r.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-spacesList",gap:4,overflow:{vertical:"auto"}},i.map((function(e){return r.createElement(p.Z,{testIdPrefix:"workspaceBar-space",key:e,spaceId:e,active:e===l})}))),r.createElement(I.Z,{permission:"user:CreateSpace"},r.createElement(P,{"data-testid":"workspaceBar-separator"})),r.createElement(f.Z,{content:"Create a new Space",align:"right"},r.createElement(C.Z,{permission:"user:CreateSpace",ifForbidden:"hide",icon:"plus",onClick:x,"data-testid":"workspaceBar-addSpace-button"}))),r.createElement(o.Flex,{column:!0,"data-testid":"workspaceBar-actionsList",gap:4,alignItems:"center"},r.createElement(o.Flex,{column:!0,gap:1,alignItems:"center"},r.createElement(I.Z,{permission:"user:ChangeSpaceRoomNotifications"},r.createElement(_,null)),r.createElement(o.Documentation,(0,c.Z)({app:"cloud",demoUrl:u.Z.demoUrl},B),(function(e){return r.createElement(f.Z,{content:"Read documentation, engage with the community and let us know about any feature requests or bugs",align:"right"},r.createElement(F,{neutral:!0,flavour:"borderless",icon:"question",onClick:e,"data-ga":"header-help::click-help::global-view","data-testid":"documentation-button",title:"Need help?"}))})),r.createElement(v,null)),r.createElement(k.Z,null)),b&&r.createElement(w.Z,{onClose:y,onDone:S}))},L=n(15861),N=n(64687),j=n.n(N),D=(n(9170),n(66992),n(41539),n(88674),n(34668),n(78783),n(33948),n(69826),n(31672),n(2490),n(59461),n(26699),n(32023),n(92222),n(57327),n(88449),n(59849),n(74916),n(77601),n(15306),n(27856)),R=n(26398),z=n(18761),W=n(97945),A=n(7335),M=n(25819),U=n(67622),q=n(61458),V=n(92501),H=n(37689),G=n(64358),Q=(0,l.default)(o.Icon).withConfig({displayName:"styled__TrashIcon",componentId:"sc-1hr9uxl-0"})(["&:hover{fill:",";opacity:0.6;}"],(0,o.getColor)("textFocus")),Y=(0,l.default)(o.TextSmall).withConfig({displayName:"styled__UrlWrapper",componentId:"sc-1hr9uxl-1"})(["overflow-wrap:anywhere;"]),$=(0,l.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1hr9uxl-2"})(["transform:",";"],(function(e){return e.right?"rotate(0)":"rotate(180deg)"})),J=function(){var e=(0,L.Z)(j().mark((function e(t,n){var a,r,o,i,c,l,s;return j().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.spaces,r=void 0===a?[]:a,o=n.id,e.next=3,(0,z.kq)(o);case 3:if(i=e.sent,!(c=i.data).length){e.next=9;break}return e.next=8,Promise.any(r.map((function(e){return R.Z.get((0,G.W)({spaceId:e.id})).then((function(t){var n=t.data;return Promise.any(n.map((function(t){return(0,M.Fz)({roomId:t.id,spaceId:e.id}).then((function(n){var a=n.data.find((function(e){var t=e.id;return c.includes(t)}));if(!a)throw new Error("can't find matching node");return"".concat(window.envSettings.cloudUrl,"/spaces/").concat(e.slug,"/rooms/").concat(t.slug,"/nodes/").concat(a.id)}))})))}))}))).then((function(e){return e})).catch((function(){}));case 8:l=e.sent;case 9:if(!l){e.next=11;break}return e.abrupt("return",l);case 11:if(!(s=t.filter((function(e){return!/netdata\.cloud\//.test(e)}))).length){e.next=16;break}return e.next=15,Promise.any(s.map((function(e){var t=/^https?:\/\//.test(e)?e:"http://".concat(e);return t=t.replace(/\/+$/,""),R.Z.get("".concat(t,"/api/v1/registry?action=hello")).then((function(){return t}))}))).then((function(e){return e})).catch((function(){}));case 15:return e.abrupt("return",e.sent);case 16:return e.abrupt("return");case 17:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),K=function(e){/https?:\/\//.test(e)||(e="http://".concat(e)),location.replace(e)},X=function(e){var t=e.id,n=e.selectedId,i=e.setSelectedId,c=(0,W.bV)(t,"name"),l=(0,d.Z)(),s=(0,a.Z)(l,4),u=s[0],m=s[2],p=s[3],g=(0,A.lL)(),f=(0,W.bV)(t,"urls"),h=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.openList,o=n.setSelectedId,i=(0,r.useRef)(),c=(0,E.GM)("ids"),l=(0,E.Zu)(c);return(0,r.useCallback)((0,L.Z)(j().mark((function n(){return j().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(o(e),i.current){n.next=5;break}return n.next=4,J(t,{spaces:l,id:e});case 4:i.current=n.sent;case 5:if(o(),i.current){n.next=8;break}return n.abrupt("return",a());case 8:K(i.current);case 9:case"end":return n.stop()}}),n)}))),[t,l])}(t,f,{openList:m,setSelectedId:i}),b=(0,r.useCallback)((function(){u?p():h()}),[u,h]),v=n===t;return r.createElement(r.Fragment,null,r.createElement(U.Z,{onClick:b,isSidebar:!0,padding:[1,2,1,4],testid:"visitedNodes-".concat(c),disabled:!!n&&!v,selected:v,loading:v,iconColor:"menuItem",textColor:"menuItem",Wrapper:o.TextSmall},c),u&&r.createElement(o.Flex,{column:!0,margin:[1,3],padding:[2],border:{side:"all",color:"separator"},round:2},r.createElement(o.Text,{textAlign:"center"},"We couldn't connect to any of your instances, here is the list:"),f.map((function(e){return r.createElement(U.Z,{key:e,onClick:function(){return K(e)},isSidebar:!0,testid:"visitedNodes-node-".concat(e),actions:r.createElement(o.Flex,{flex:!1,margin:[0,0,0,1]},r.createElement(Q,{name:"trashcan",size:"small",color:"menuItem",onClick:function(n){n.stopPropagation(),g(t,e)},width:"16px",height:"16px"})),padding:[2],Wrapper:Y,iconColor:"menuItem",textColor:"menuItem"},e)}))))},ee=function(){var e=(0,A.z2)(),t=(0,d.Z)(e.length>0),n=(0,a.Z)(t,2),i=n[0],c=n[1];(0,r.useEffect)((function(){i||c()}),[e.length]);var l=(0,r.useState)(""),s=(0,a.Z)(l,2),u=s[0],m=s[1],p=(0,A.H3)(u),g=(0,r.useCallback)((0,D.D)(300,(function(e){return m(e.target.value)})),[]),f=(0,r.useState)(),h=(0,a.Z)(f,2),b=h[0],E=h[1];return e.length?r.createElement(q.Z,{isOpen:i,toggleOpen:c,label:r.createElement(o.Flex,{padding:[1,0],flex:!0,justifyContent:"between",alignItems:"center"},r.createElement(o.Flex,{alignItems:"center",gap:2},r.createElement(o.Icon,{name:"node_hollow",color:"menuItem",width:"14px",height:"14px"}),r.createElement(o.TextSmall,{color:"menuItem"},"Visited Nodes")),r.createElement($,{right:!i,name:"chevron_down",size:"small",color:"menuItem"})),headerTestId:"visitedNodes"},e.length>3&&r.createElement(o.Flex,{padding:[1,2,2,4]},r.createElement(H.Z,{"data-testid":"search-visited-nodes-input",onChange:g,size:"tiny"})),r.createElement(o.Flex,{padding:[0,0,2],column:!0},p.length?p.map((function(e){return r.createElement(X,{key:e,id:e,selectedId:b,setSelectedId:E})})):r.createElement(o.Text,{padding:[3,5]},"No nodes match your search"))):null},te=(0,r.memo)((function(){return r.createElement(V.ZP,{fallback:""},r.createElement(r.Suspense,{fallback:""},r.createElement(ee,null)))})),ne=n(56662),ae=n(55917),re=n(33335),oe=function(e){return function(t){var n=(0,E.th)();return r.createElement(e,(0,c.Z)({},t,{key:n}))}},ie=n(59636),ce={isSidebar:!0,padding:[1,2,1,4],textColor:"menuItem",Wrapper:o.TextSmall},le=oe((function(){var e=(0,re.gI)("room:Create"),t=(0,re.gI)("room:Read"),n=(0,d.Z)(t),i=(0,a.Z)(n,2),c=i[0],l=i[1],s=(0,d.Z)(!1),u=(0,a.Z)(s,4),m=u[0],p=u[2],g=u[3],h=(0,r.useCallback)((function(t){t.stopPropagation(),e&&p()}),[e]);return r.createElement(r.Fragment,null,r.createElement(q.Z,{"data-testid":"workspaceRooms-menuList",disabled:!t,headerTestId:"workspaceRooms-warRooms",isOpen:c,label:r.createElement(o.Flex,{padding:[1,0],margin:[0,0,1,0],flex:!0,justifyContent:"between",alignItems:"center",height:"24px"},r.createElement(o.Flex,{alignItems:"center",gap:2},r.createElement(o.Icon,{name:"space_new",color:"menuItem",width:"14px",height:"14px"}),r.createElement(o.TextSmall,{color:"menuItem"},"Rooms")),r.createElement(o.Flex,{alignItems:"center",gap:2},r.createElement(f.Z,{content:"Create a new room",align:"right"},r.createElement(C.Z,{permission:"room:Create",tiny:!0,icon:"plus",onClick:h,"data-testid":"workspaceRooms-addWarRoom-button"})),r.createElement(ae.x,{right:!c,name:"chevron_down",size:"small",color:"menuItem"}))),toggleOpen:l},r.createElement(o.Flex,{column:!0,"data-testid":"workspaceRooms-warRoomsList",padding:[0,0,1]},r.createElement(ie.Z,ce))),m&&r.createElement(ne.U,{onClose:g,isSubmodal:!1}))})),se=n(61152),ue=(0,l.default)(o.Flex).attrs({alignItems:"center",justifyContent:"center",width:10,height:4,round:.5,background:"sideBarMini"}).withConfig({displayName:"styled__AdminPill",componentId:"sc-1ps23b1-0"})(["opacity:0;",":hover &{opacity:1;}"],U.z),de=function(e){var t=e.children,n=e.onToggle;return r.createElement(o.Flex,{justifyContent:"between",alignItems:"center"},r.createElement(o.Flex,{alignItems:"center"},t),r.createElement(o.Button,{onClick:n,icon:"chevron_left",neutral:!0,flavour:"hollow",small:!0}))},me=n(89149),pe=n(38671),ge=(0,l.default)(q.g).attrs({padding:[2],color:"textLite"}).withConfig({displayName:"spacePanel__ListHeader",componentId:"sc-1275zgk-0"})([""]),fe=function(e){return r.createElement(o.Flex,(0,c.Z)({alignItems:"center",gap:2},e),r.createElement(ue,null,r.createElement(o.TextFemto,{strong:!0,color:"text"},"ADMIN")),r.createElement(o.Flex,{opacity:"medium"},r.createElement(o.Icon,{name:"padlock",size:"small",width:"18px",height:"18px",color:"text"})))},he={iconWidth:"14px",iconHeight:"14px",padding:[1,2],gap:2,isSidebar:!0,textColor:"menuItem",iconColor:"menuItem",Wrapper:o.TextSmall},be=function(e){var t=e.toggleSpacePanel,n=(0,E.OS)(),i=(0,d.Z)(),l=(0,a.Z)(i,4),s=l[0],u=l[2],m=l[3],p=(0,se.Z)("manageInvitations"),g=(0,a.Z)(p,2)[1],f=(0,E.Q6)(),h=(0,pe.Z)().onIntegrationsClick;return r.createElement(r.Fragment,null,s&&r.createElement(me.Z,{title:"Integrations",onClose:m}),r.createElement(q.Z,{"data-testid":"spacesPanel",isOpen:!0,label:r.createElement(de,{onToggle:t},n.name),headerTestId:"spacesPanel-activeSpaceHeader",Header:ge},r.createElement(o.Flex,{column:!0,padding:[2,0,1],"data-testid":"spacesPanel-menuList"},r.createElement(U.Z,(0,c.Z)({onClick:h,testid:"agentDashboard-addIntegrations",dataGa:"integrations::click-add-integrations::sideMenu",icon:"integrations"},he),"Integrations"),f?null:r.createElement(r.Fragment,null,r.createElement(b.Z,{permission:"node:Create"},(function(e){return r.createElement(U.Z,(0,c.Z)({actions:e?null:r.createElement(fe,{"data-testid":"adminWarning-notAdmin"}),disabled:!e,onClick:u,testid:"spacesPanel-claimNodes",icon:"nodes_hollow"},he),"Connect Nodes")})),r.createElement(b.Z,{permission:"space:InviteUser"},(function(e){return r.createElement(U.Z,(0,c.Z)({actions:e?null:r.createElement(fe,{"data-testid":"adminWarning-cannotInvite"}),disabled:!e,onClick:g,testid:"spacesPanel-inviteUsers",icon:"user"},he),"Invite Users")}))))))},Ee=function(e){var t=e.spacePanelCollapsed,n=e.toggleSpacePanel;return r.createElement(o.Collapsible,{width:56,background:"sideBar",border:{side:"right",color:"borderSecondary"},open:!t,direction:"horizontal"},r.createElement(o.Flex,{flex:!0,width:56,column:!0,overflow:{vertical:"hidden"},padding:[2,0]},r.createElement(be,{toggleSpacePanel:n}),r.createElement(o.Flex,{overflow:{vertical:"auto"},flex:!0,column:!0},r.createElement(le,null),r.createElement(te,null))))},ve=(0,r.memo)((function(){var e=(0,i.k)("spacePanelCollapsed"),t=(0,a.Z)(e,2),n=t[0],c=t[1],l=(0,pe.Z)(),s=l.isIntegrationsVisible,u=l.hideIntegrations,d=(0,r.useCallback)((function(){return c(!n)}),[n]);return(0,r.useLayoutEffect)((function(){var e=setTimeout((function(){return window.dispatchEvent(new Event("resize"))}),400);return function(){return clearTimeout(e)}}),[n]),r.createElement(o.Flex,null,r.createElement(T,{spacePanelCollapsed:n,toggleSpacePanel:d}),r.createElement(Ee,{spacePanelCollapsed:n,toggleSpacePanel:d}),s&&r.createElement(me.Z,{title:"Integrations",onClose:u,flavour:"integrations"}))}))},38671:function(e,t,n){n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var a=n(4942),r=n(29439),o=n(67294),i=n(10034),c=n(58591);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=(0,c.m$)(),t=(0,i.Oi)(),n=(0,r.Z)(t,2),a=n[0],l=n[1],u=(0,i.wC)().reset,d=(0,o.useCallback)((function(){u(),(0,c.xs)(s(s({},e),{},{integrationsModalOpen:"true"})),l("true")}),[u,e]);return{isIntegrationsVisible:a,hideIntegrations:(0,o.useCallback)((function(){(0,c.xs)(s(s({},e),{},{integrationsModalOpen:""})),l("")}),[e]),onIntegrationsClick:d}}},11060:function(e,t,n){var a=n(1702),r=Error,o=a("".replace),i=String(r("zxcasd").stack),c=/\n\s*at [^:]*:[^\n]*/,l=c.test(i);e.exports=function(e,t){if(l&&"string"==typeof e&&!r.prepareStackTrace)for(;t--;)e=o(e,c,"");return e}},5392:function(e,t,n){var a=n(68880),r=n(11060),o=n(22914),i=Error.captureStackTrace;e.exports=function(e,t,n,c){o&&(i?i(e,t):a(e,"stack",r(n,c)))}},22914:function(e,t,n){var a=n(47293),r=n(79114);e.exports=!a((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",r(1,7)),7!==e.stack)}))},58340:function(e,t,n){var a=n(70111),r=n(68880);e.exports=function(e,t){a(t)&&"cause"in t&&r(e,"cause",t.cause)}},56277:function(e,t,n){var a=n(41340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:a(e)}},56967:function(e,t,n){var a=n(82109),r=n(47976),o=n(79518),i=n(27674),c=n(99920),l=n(70030),s=n(68880),u=n(79114),d=n(58340),m=n(5392),p=n(20408),g=n(56277),f=n(5112)("toStringTag"),h=Error,b=[].push,E=function(e,t){var n,a=r(v,this);i?n=i(h(),a?o(this):v):(n=a?this:l(v),s(n,f,"Error")),void 0!==t&&s(n,"message",g(t)),m(n,E,n.stack,1),arguments.length>2&&d(n,arguments[2]);var c=[];return p(e,b,{that:c}),s(n,"errors",c),n};i?i(E,h):c(E,h,{name:!0});var v=E.prototype=l(h.prototype,{constructor:u(1,E),message:u(1,""),name:u(1,"AggregateError")});a({global:!0,constructor:!0,arity:2},{AggregateError:E})},9170:function(e,t,n){n(56967)},34668:function(e,t,n){var a=n(82109),r=n(46916),o=n(19662),i=n(35005),c=n(78523),l=n(12534),s=n(20408),u=n(80612),d="No one promise resolved";a({target:"Promise",stat:!0,forced:u},{any:function(e){var t=this,n=i("AggregateError"),a=c.f(t),u=a.resolve,m=a.reject,p=l((function(){var a=o(t.resolve),i=[],c=0,l=1,p=!1;s(e,(function(e){var o=c++,s=!1;l++,r(a,t,e).then((function(e){s||p||(p=!0,u(e))}),(function(e){s||p||(s=!0,i[o]=e,--l||m(new n(i,d)))}))})),--l||m(new n(i,d))}));return p.error&&m(p.value),a.promise}})}}]); \ No newline at end of file
diff --git a/web/gui/v2/27.922062ec65b1e01389ee.chunk.js b/web/gui/v2/27.23f7ef0669e969b74f95.chunk.js
index cf898f09..27d855bc 100644
--- a/web/gui/v2/27.922062ec65b1e01389ee.chunk.js
+++ b/web/gui/v2/27.23f7ef0669e969b74f95.chunk.js
@@ -1,2 +1,2 @@
-/*! For license information please see 27.922062ec65b1e01389ee.chunk.js.LICENSE.txt */
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9ca15db1-3ca9-4b8b-9815-db8b8f3ed8c3",e._sentryDebugIdIdentifier="sentry-dbid-9ca15db1-3ca9-4b8b-9815-db8b8f3ed8c3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[27],{94184:function(e,t){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)){if(r.length){var i=a.apply(null,r);i&&e.push(i)}}else if("object"===o){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){e.push(r.toString());continue}for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},55988:function(e,t,r){"use strict";var n=r(70111),a=Math.floor;e.exports=Number.isInteger||function(e){return!n(e)&&isFinite(e)&&a(e)===e}},2814:function(e,t,r){"use strict";var n=r(17854),a=r(47293),o=r(1702),i=r(41340),s=r(53111).trim,u=r(81361),c=o("".charAt),l=n.parseFloat,d=n.Symbol,p=d&&d.iterator,f=1/l(u+"-0")!==-1/0||p&&!a((function(){l(Object(p))}));e.exports=f?function(e){var t=s(i(e)),r=l(t);return 0===r&&"-"==c(t,0)?-0:r}:l},54986:function(e,t,r){"use strict";var n=r(88113);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(n)},76650:function(e,t,r){"use strict";var n=r(1702),a=r(17466),o=r(41340),i=r(38415),s=r(84488),u=n(i),c=n("".slice),l=Math.ceil,d=function(e){return function(t,r,n){var i,d,p=o(s(t)),f=a(r),h=p.length,v=void 0===n?" ":o(n);return f<=h||""==v?p:((d=u(v,l((i=f-h)/v.length))).length>i&&(d=c(d,0,i)),e?p+d:d+p)}};e.exports={start:d(!1),end:d(!0)}},38415:function(e,t,r){"use strict";var n=r(19303),a=r(41340),o=r(84488),i=RangeError;e.exports=function(e){var t=a(o(this)),r="",s=n(e);if(s<0||s==1/0)throw i("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(t+=t))1&s&&(r+=t);return r}},33161:function(e,t,r){"use strict";r(82109)({target:"Number",stat:!0},{isInteger:r(55988)})},61874:function(e,t,r){"use strict";var n=r(82109),a=r(2814);n({target:"Number",stat:!0,forced:Number.parseFloat!=a},{parseFloat:a})},54678:function(e,t,r){"use strict";var n=r(82109),a=r(2814);n({global:!0,forced:parseFloat!=a},{parseFloat:a})},66528:function(e,t,r){"use strict";var n=r(82109),a=r(76650).end;n({target:"String",proto:!0,forced:r(54986)},{padEnd:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}})},83112:function(e,t,r){"use strict";var n=r(82109),a=r(76650).start;n({target:"String",proto:!0,forced:r(54986)},{padStart:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}})},68757:function(e,t,r){"use strict";var n=r(82109),a=r(46916),o=r(1702),i=r(84488),s=r(60614),u=r(68554),c=r(47850),l=r(41340),d=r(58173),p=r(34706),f=r(10647),h=r(5112),v=r(31913),m=h("replace"),g=TypeError,y=o("".indexOf),w=o("".replace),b=o("".slice),D=Math.max,k=function(e,t,r){return r>e.length?-1:""===t?r:y(e,t,r)};n({target:"String",proto:!0},{replaceAll:function(e,t){var r,n,o,h,C,S,M,T,x,Z=i(this),E=0,_=0,P="";if(!u(e)){if((r=c(e))&&(n=l(i(p(e))),!~y(n,"g")))throw g("`.replaceAll` does not allow non-global regexes");if(o=d(e,m))return a(o,e,Z,t);if(v&&r)return w(l(Z),e,t)}for(h=l(Z),C=l(e),(S=s(t))||(t=l(t)),M=C.length,T=D(1,M),E=k(h,C,0);-1!==E;)x=S?l(t(C,E,h)):f(C,h,E,[],void 0,t),P+=b(h,_,E)+x,_=E+M,E=k(h,C,E+T);return _<h.length&&(P+=b(h,_)),P}})},41817:function(e,t,r){"use strict";var n=r(82109),a=r(19781),o=r(17854),i=r(1702),s=r(92597),u=r(60614),c=r(47976),l=r(41340),d=r(47045),p=r(99920),f=o.Symbol,h=f&&f.prototype;if(a&&u(f)&&(!("description"in h)||void 0!==f().description)){var v={},m=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:l(arguments[0]),t=c(h,this)?new f(e):void 0===e?f():f(e);return""===e&&(v[t]=!0),t};p(m,f),m.prototype=h,h.constructor=m;var g="Symbol(test)"==String(f("test")),y=i(h.valueOf),w=i(h.toString),b=/^Symbol\((.*)\)[^)]+$/,D=i("".replace),k=i("".slice);d(h,"description",{configurable:!0,get:function(){var e=y(this);if(s(v,e))return"";var t=w(e),r=g?k(t,7,-1):D(t,b,"$1");return""===r?void 0:r}}),n({global:!0,constructor:!0,forced:!0},{Symbol:m})}},66342:function(e,t,r){"use strict";var n=r(82109),a=r(25787),o=r(79518),i=r(68880),s=r(92597),u=r(5112),c=r(66462),l=r(31913),d=u("toStringTag"),p=TypeError,f=function(){if(a(this,c),o(this)===c)throw p("Abstract class AsyncIterator not directly constructable")};f.prototype=c,s(c,d)||i(c,d,"AsyncIterator"),!l&&s(c,"constructor")&&c.constructor!==Object||i(c,"constructor",f),n({global:!0,constructor:!0,forced:l},{AsyncIterator:f})},62962:function(e,t,r){"use strict";var n=r(82109),a=r(12269).toArray;n({target:"AsyncIterator",proto:!0,real:!0},{toArray:function(){return a(this,void 0,[])}})},23748:function(e,t,r){"use strict";var n=r(82109),a=r(19670),o=r(20408),i=r(24942),s=[].push;n({target:"Iterator",proto:!0,real:!0},{toArray:function(){var e=[];return o(i(a(this)),s,{that:e,IS_RECORD:!0}),e}})},52149:function(e,t,r){"use strict";function n(e,t){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}r.d(t,{Z:function(){return n}})},8958:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},a=function(e,t,r){var a,o=n[e];return a="string"===typeof o?o:1===t?o.one:o.other.replace("{{count}}",t.toString()),null!==r&&void 0!==r&&r.addSuffix?r.comparison&&r.comparison>0?"in "+a:a+" ago":a};function o(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var i={date:o({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:o({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:o({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},s={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},u=function(e,t,r,n){return s[e]};function c(e){return function(t,r){var n;if("formatting"===(null!==r&&void 0!==r&&r.context?String(r.context):"standalone")&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,o=null!==r&&void 0!==r&&r.width?String(r.width):a;n=e.formattingValues[o]||e.formattingValues[a]}else{var i=e.defaultWidth,s=null!==r&&void 0!==r&&r.width?String(r.width):e.defaultWidth;n=e.values[s]||e.values[i]}return n[e.argumentCallback?e.argumentCallback(t):t]}}var l={ordinalNumber:function(e,t){var r=Number(e),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:c({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:c({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:c({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:c({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:c({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function d(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.width,a=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;var i,s=o[0],u=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(u)?function(e,t){for(var r=0;r<e.length;r++)if(t(e[r]))return r;return}(u,(function(e){return e.test(s)})):function(e,t){for(var r in e)if(e.hasOwnProperty(r)&&t(e[r]))return r;return}(u,(function(e){return e.test(s)}));return i=e.valueCallback?e.valueCallback(c):c,{value:i=r.valueCallback?r.valueCallback(i):i,rest:t.slice(s.length)}}}var p,f={ordinalNumber:(p={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.match(p.matchPattern);if(!r)return null;var n=r[0],a=e.match(p.parsePattern);if(!a)return null;var o=p.valueCallback?p.valueCallback(a[0]):a[0];return{value:o=t.valueCallback?t.valueCallback(o):o,rest:e.slice(n.length)}}),era:d({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:d({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:d({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:d({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:d({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},h={code:"en-US",formatDistance:a,formatLong:i,formatRelative:u,localize:l,match:f,options:{weekStartsOn:0,firstWeekContainsDate:1}}},84314:function(e,t,r){"use strict";r.d(t,{j:function(){return a}});var n={};function a(){return n}},97621:function(e,t){"use strict";var r=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},n=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},a={p:n,P:function(e,t){var a,o=e.match(/(P+)(p+)?/)||[],i=o[1],s=o[2];if(!s)return r(e,t);switch(i){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;default:a=t.dateTime({width:"full"})}return a.replace("{{date}}",r(i,t)).replace("{{time}}",n(s,t))}};t.Z=a},24262:function(e,t,r){"use strict";function n(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}r.d(t,{Z:function(){return n}})},49702:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=r(19013),a=r(66979),o=r(7032),i=r(13882);var s=6048e5;function u(e){(0,i.Z)(1,arguments);var t=(0,n.default)(e),r=(0,a.Z)(t).getTime()-function(e){(0,i.Z)(1,arguments);var t=(0,o.Z)(e),r=new Date(0);return r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0),(0,a.Z)(r)}(t).getTime();return Math.round(r/s)+1}},7032:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(19013),a=r(13882),o=r(66979);function i(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getUTCFullYear(),i=new Date(0);i.setUTCFullYear(r+1,0,4),i.setUTCHours(0,0,0,0);var s=(0,o.Z)(i),u=new Date(0);u.setUTCFullYear(r,0,4),u.setUTCHours(0,0,0,0);var c=(0,o.Z)(u);return t.getTime()>=s.getTime()?r+1:t.getTime()>=c.getTime()?r:r-1}},23324:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(19013),a=r(59025),o=r(7651),i=r(13882),s=r(83946),u=r(84314);var c=6048e5;function l(e,t){(0,i.Z)(1,arguments);var r=(0,n.default)(e),l=(0,a.Z)(r,t).getTime()-function(e,t){var r,n,c,l,d,p,f,h;(0,i.Z)(1,arguments);var v=(0,u.j)(),m=(0,s.Z)(null!==(r=null!==(n=null!==(c=null!==(l=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null===t||void 0===t||null===(d=t.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==c?c:v.firstWeekContainsDate)&&void 0!==n?n:null===(f=v.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==r?r:1),g=(0,o.Z)(e,t),y=new Date(0);return y.setUTCFullYear(g,0,m),y.setUTCHours(0,0,0,0),(0,a.Z)(y,t)}(r,t).getTime();return Math.round(l/c)+1}},7651:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=r(19013),a=r(13882),o=r(59025),i=r(83946),s=r(84314);function u(e,t){var r,u,c,l,d,p,f,h;(0,a.Z)(1,arguments);var v=(0,n.default)(e),m=v.getUTCFullYear(),g=(0,s.j)(),y=(0,i.Z)(null!==(r=null!==(u=null!==(c=null!==(l=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null===t||void 0===t||null===(d=t.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==c?c:g.firstWeekContainsDate)&&void 0!==u?u:null===(f=g.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==r?r:1);if(!(y>=1&&y<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var w=new Date(0);w.setUTCFullYear(m+1,0,y),w.setUTCHours(0,0,0,0);var b=(0,o.Z)(w,t),D=new Date(0);D.setUTCFullYear(m,0,y),D.setUTCHours(0,0,0,0);var k=(0,o.Z)(D,t);return v.getTime()>=b.getTime()?m+1:v.getTime()>=k.getTime()?m:m-1}},5267:function(e,t,r){"use strict";r.d(t,{Do:function(){return i},Iu:function(){return o},qp:function(){return s}});var n=["D","DD"],a=["YY","YYYY"];function o(e){return-1!==n.indexOf(e)}function i(e){return-1!==a.indexOf(e)}function s(e,t,r){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}},13882:function(e,t,r){"use strict";function n(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}r.d(t,{Z:function(){return n}})},93645:function(e,t,r){"use strict";r.d(t,{u:function(){return o}});var n={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}},a="trunc";function o(e){return e?n[e]:n[a]}},66979:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getUTCDay(),o=(r<1?7:0)+r-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}},59025:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(19013),a=r(13882),o=r(83946),i=r(84314);function s(e,t){var r,s,u,c,l,d,p,f;(0,a.Z)(1,arguments);var h=(0,i.j)(),v=(0,o.Z)(null!==(r=null!==(s=null!==(u=null!==(c=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==c?c:null===t||void 0===t||null===(l=t.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==u?u:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,n.default)(e),g=m.getUTCDay(),y=(g<v?7:0)+g-v;return m.setUTCDate(m.getUTCDate()-y),m.setUTCHours(0,0,0,0),m}},83946:function(e,t,r){"use strict";function n(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}r.d(t,{Z:function(){return n}})},29422:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(71002),a=r(77349),o=r(11640),i=r(19013),s=r(13882),u=r(83946);function c(e,t){if((0,s.Z)(2,arguments),!t||"object"!==(0,n.Z)(t))return new Date(NaN);var r=t.years?(0,u.Z)(t.years):0,c=t.months?(0,u.Z)(t.months):0,l=t.weeks?(0,u.Z)(t.weeks):0,d=t.days?(0,u.Z)(t.days):0,p=t.hours?(0,u.Z)(t.hours):0,f=t.minutes?(0,u.Z)(t.minutes):0,h=t.seconds?(0,u.Z)(t.seconds):0,v=(0,i.default)(e),m=c||r?(0,o.default)(v,c+12*r):v,g=d||l?(0,a.default)(m,d+7*l):m,y=1e3*(h+60*(f+60*p));return new Date(g.getTime()+y)}},77349:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return isNaN(i)?new Date(NaN):i?(r.setDate(r.getDate()+i),r):r}},78343:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(83946),a=r(51820),o=r(13882),i=36e5;function s(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.Z)(e,r*i)}},51820:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e).getTime(),i=(0,n.Z)(t);return new Date(r+i)}},58545:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(83946),a=r(51820),o=r(13882),i=6e4;function s(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.Z)(e,r*i)}},11640:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);if(isNaN(i))return new Date(NaN);if(!i)return r;var s=r.getDate(),u=new Date(r.getTime());return u.setMonth(r.getMonth()+i+1,0),s>=u.getDate()?u:(r.setFullYear(u.getFullYear(),u.getMonth(),s),r)}},8791:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(11640),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=3*(0,n.Z)(t);return(0,a.default)(e,r)}},63500:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(77349),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=7*(0,n.Z)(t);return(0,a.default)(e,r)}},21593:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(11640),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,12*r)}},49474:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t),i=r.getTime()-o.getTime();return i<0?-1:i>0?1:i}},36948:function(e,t,r){"use strict";r.d(t,{qk:function(){return o},vh:function(){return a},yJ:function(){return n}});Math.pow(10,8);var n=6e4,a=36e5,o=1e3},92300:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(24262),a=r(69119),o=r(13882),i=864e5;function s(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),s=(0,a.default)(t),u=r.getTime()-(0,n.Z)(r),c=s.getTime()-(0,n.Z)(s);return Math.round((u-c)/i)}},84129:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return 12*(r.getFullYear()-o.getFullYear())+(r.getMonth()-o.getMonth())}},91857:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()-o.getFullYear()}},67803:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(19013),a=r(92300),o=r(13882);function i(e,t){var r=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return r<0?-1:r>0?1:r}function s(e,t){(0,o.Z)(2,arguments);var r=(0,n.default)(e),s=(0,n.default)(t),u=i(r,s),c=Math.abs((0,a.default)(r,s));r.setDate(r.getDate()-u*c);var l=u*(c-Number(i(r,s)===-u));return 0===l?0:l}},76972:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(36948),a=r(59910),o=r(13882),i=r(93645);function s(e,t,r){(0,o.Z)(2,arguments);var s=(0,a.Z)(e,t)/n.vh;return(0,i.u)(null===r||void 0===r?void 0:r.roundingMethod)(s)}},59910:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){return(0,a.Z)(2,arguments),(0,n.default)(e).getTime()-(0,n.default)(t).getTime()}},69690:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(36948),a=r(59910),o=r(13882),i=r(93645);function s(e,t,r){(0,o.Z)(2,arguments);var s=(0,a.Z)(e,t)/n.yJ;return(0,i.u)(null===r||void 0===r?void 0:r.roundingMethod)(s)}},50157:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(19013),a=r(84129),o=r(49474),i=r(13882),s=r(83894),u=r(4135);function c(e,t){(0,i.Z)(2,arguments);var r,c=(0,n.default)(e),l=(0,n.default)(t),d=(0,o.Z)(c,l),p=Math.abs((0,a.default)(c,l));if(p<1)r=0;else{1===c.getMonth()&&c.getDate()>27&&c.setDate(30),c.setMonth(c.getMonth()-d*p);var f=(0,o.Z)(c,l)===-d;(function(e){(0,i.Z)(1,arguments);var t=(0,n.default)(e);return(0,s.default)(t).getTime()===(0,u.default)(t).getTime()})((0,n.default)(e))&&1===p&&1===(0,o.Z)(e,l)&&(f=!1),r=d*(p-Number(f))}return 0===r?0:r}},11699:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(59910),a=r(13882),o=r(93645);function i(e,t,r){(0,a.Z)(2,arguments);var i=(0,n.Z)(e,t)/1e3;return(0,o.u)(null===r||void 0===r?void 0:r.roundingMethod)(i)}},5001:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(19013),a=r(91857),o=r(49474),i=r(13882);function s(e,t){(0,i.Z)(2,arguments);var r=(0,n.default)(e),s=(0,n.default)(t),u=(0,o.Z)(r,s),c=Math.abs((0,a.default)(r,s));r.setFullYear(1584),s.setFullYear(1584);var l=(0,o.Z)(r,s)===-u,d=u*(c-Number(l));return 0===d?0:d}},83894:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return t.setHours(23,59,59,999),t}},4135:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}},67090:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(84314),a=r(19013),o=r(83946),i=r(13882);function s(e,t){var r,s,u,c,l,d,p,f;(0,i.Z)(1,arguments);var h=(0,n.j)(),v=(0,o.Z)(null!==(r=null!==(s=null!==(u=null!==(c=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==c?c:null===t||void 0===t||null===(l=t.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==u?u:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,a.default)(e),g=m.getDay(),y=6+(g<v?-7:0)-(g-v);return m.setDate(m.getDate()+y),m.setHours(23,59,59,999),m}},10876:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getFullYear();return t.setFullYear(r+1,0,0),t.setHours(23,59,59,999),t}},49546:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return L}});var n=r(12274),a=r(91218),o=r(19013),i=r(13882);var s=r(49702),u=r(7032),c=r(23324),l=r(7651);function d(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length<t;)n="0"+n;return r+n}var p={y:function(e,t){var r=e.getUTCFullYear(),n=r>0?r:1-r;return d("yy"===t?n%100:n,t.length)},M:function(e,t){var r=e.getUTCMonth();return"M"===t?String(r+1):d(r+1,2)},d:function(e,t){return d(e.getUTCDate(),t.length)},a:function(e,t){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:function(e,t){return d(e.getUTCHours()%12||12,t.length)},H:function(e,t){return d(e.getUTCHours(),t.length)},m:function(e,t){return d(e.getUTCMinutes(),t.length)},s:function(e,t){return d(e.getUTCSeconds(),t.length)},S:function(e,t){var r=t.length,n=e.getUTCMilliseconds();return d(Math.floor(n*Math.pow(10,r-3)),t.length)}},f="midnight",h="noon",v="morning",m="afternoon",g="evening",y="night",w={G:function(e,t,r){var n=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(e,t,r){if("yo"===t){var n=e.getUTCFullYear(),a=n>0?n:1-n;return r.ordinalNumber(a,{unit:"year"})}return p.y(e,t)},Y:function(e,t,r,n){var a=(0,l.Z)(e,n),o=a>0?a:1-a;return"YY"===t?d(o%100,2):"Yo"===t?r.ordinalNumber(o,{unit:"year"}):d(o,t.length)},R:function(e,t){return d((0,u.Z)(e),t.length)},u:function(e,t){return d(e.getUTCFullYear(),t.length)},Q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return d(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return d(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,r){var n=e.getUTCMonth();switch(t){case"M":case"MM":return p.M(e,t);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,r){var n=e.getUTCMonth();switch(t){case"L":return String(n+1);case"LL":return d(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,r,n){var a=(0,c.Z)(e,n);return"wo"===t?r.ordinalNumber(a,{unit:"week"}):d(a,t.length)},I:function(e,t,r){var n=(0,s.Z)(e);return"Io"===t?r.ordinalNumber(n,{unit:"week"}):d(n,t.length)},d:function(e,t,r){return"do"===t?r.ordinalNumber(e.getUTCDate(),{unit:"date"}):p.d(e,t)},D:function(e,t,r){var n=function(e){(0,i.Z)(1,arguments);var t=(0,o.default)(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=r-t.getTime();return Math.floor(n/864e5)+1}(e);return"Do"===t?r.ordinalNumber(n,{unit:"dayOfYear"}):d(n,t.length)},E:function(e,t,r){var n=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,r,n){var a=e.getUTCDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return d(o,2);case"eo":return r.ordinalNumber(o,{unit:"day"});case"eee":return r.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(a,{width:"short",context:"formatting"});default:return r.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,r,n){var a=e.getUTCDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return d(o,t.length);case"co":return r.ordinalNumber(o,{unit:"day"});case"ccc":return r.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(a,{width:"narrow",context:"standalone"});case"cccccc":return r.day(a,{width:"short",context:"standalone"});default:return r.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,r){var n=e.getUTCDay(),a=0===n?7:n;switch(t){case"i":return String(a);case"ii":return d(a,t.length);case"io":return r.ordinalNumber(a,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,r){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(e,t,r){var n,a=e.getUTCHours();switch(n=12===a?h:0===a?f:a/12>=1?"pm":"am",t){case"b":case"bb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(e,t,r){var n,a=e.getUTCHours();switch(n=a>=17?g:a>=12?m:a>=4?v:y,t){case"B":case"BB":case"BBB":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(e,t,r){if("ho"===t){var n=e.getUTCHours()%12;return 0===n&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return p.h(e,t)},H:function(e,t,r){return"Ho"===t?r.ordinalNumber(e.getUTCHours(),{unit:"hour"}):p.H(e,t)},K:function(e,t,r){var n=e.getUTCHours()%12;return"Ko"===t?r.ordinalNumber(n,{unit:"hour"}):d(n,t.length)},k:function(e,t,r){var n=e.getUTCHours();return 0===n&&(n=24),"ko"===t?r.ordinalNumber(n,{unit:"hour"}):d(n,t.length)},m:function(e,t,r){return"mo"===t?r.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):p.m(e,t)},s:function(e,t,r){return"so"===t?r.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):p.s(e,t)},S:function(e,t){return p.S(e,t)},X:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return D(a);case"XXXX":case"XX":return k(a);default:return k(a,":")}},x:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"x":return D(a);case"xxxx":case"xx":return k(a);default:return k(a,":")}},O:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+b(a,":");default:return"GMT"+k(a,":")}},z:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+b(a,":");default:return"GMT"+k(a,":")}},t:function(e,t,r,n){var a=n._originalDate||e;return d(Math.floor(a.getTime()/1e3),t.length)},T:function(e,t,r,n){return d((n._originalDate||e).getTime(),t.length)}};function b(e,t){var r=e>0?"-":"+",n=Math.abs(e),a=Math.floor(n/60),o=n%60;if(0===o)return r+String(a);var i=t||"";return r+String(a)+i+d(o,2)}function D(e,t){return e%60===0?(e>0?"-":"+")+d(Math.abs(e)/60,2):k(e,t)}function k(e,t){var r=t||"",n=e>0?"-":"+",a=Math.abs(e);return n+d(Math.floor(a/60),2)+r+d(a%60,2)}var C=w,S=r(97621),M=r(24262),T=r(5267),x=r(83946),Z=r(84314),E=r(8958),_=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,P=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,O=/^'([^]*?)'?$/,N=/''/g,Y=/[a-zA-Z]/;function L(e,t,r){var s,u,c,l,d,p,f,h,v,m,g,y,w,b,D,k,L,I;(0,i.Z)(2,arguments);var R=String(t),A=(0,Z.j)(),F=null!==(s=null!==(u=null===r||void 0===r?void 0:r.locale)&&void 0!==u?u:A.locale)&&void 0!==s?s:E.Z,B=(0,x.Z)(null!==(c=null!==(l=null!==(d=null!==(p=null===r||void 0===r?void 0:r.firstWeekContainsDate)&&void 0!==p?p:null===r||void 0===r||null===(f=r.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==d?d:A.firstWeekContainsDate)&&void 0!==l?l:null===(v=A.locale)||void 0===v||null===(m=v.options)||void 0===m?void 0:m.firstWeekContainsDate)&&void 0!==c?c:1);if(!(B>=1&&B<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var j=(0,x.Z)(null!==(g=null!==(y=null!==(w=null!==(b=null===r||void 0===r?void 0:r.weekStartsOn)&&void 0!==b?b:null===r||void 0===r||null===(D=r.locale)||void 0===D||null===(k=D.options)||void 0===k?void 0:k.weekStartsOn)&&void 0!==w?w:A.weekStartsOn)&&void 0!==y?y:null===(L=A.locale)||void 0===L||null===(I=L.options)||void 0===I?void 0:I.weekStartsOn)&&void 0!==g?g:0);if(!(j>=0&&j<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!F.localize)throw new RangeError("locale must contain localize property");if(!F.formatLong)throw new RangeError("locale must contain formatLong property");var H=(0,o.default)(e);if(!(0,n.default)(H))throw new RangeError("Invalid time value");var U=(0,M.Z)(H),W=(0,a.Z)(H,U),q={firstWeekContainsDate:B,weekStartsOn:j,locale:F,_originalDate:H};return R.match(P).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,S.Z[t])(e,F.formatLong):e})).join("").match(_).map((function(n){if("''"===n)return"'";var a=n[0];if("'"===a)return function(e){var t=e.match(O);if(!t)return e;return t[1].replace(N,"'")}(n);var o=C[a];if(o)return null!==r&&void 0!==r&&r.useAdditionalWeekYearTokens||!(0,T.Do)(n)||(0,T.qp)(n,t,String(e)),null!==r&&void 0!==r&&r.useAdditionalDayOfYearTokens||!(0,T.Iu)(n)||(0,T.qp)(n,t,String(e)),o(W,n,F.localize,q);if(a.match(Y))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");return n})).join("")}},936:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=r(84314),a=r(24262),o=r(49474),i=r(19013),s=r(52149);var u=r(8958),c=r(13882),l=6e4,d=1440,p=30*d,f=365*d;function h(e,t,r){var h,v,m;(0,c.Z)(2,arguments);var g=(0,n.j)(),y=null!==(h=null!==(v=null===r||void 0===r?void 0:r.locale)&&void 0!==v?v:g.locale)&&void 0!==h?h:u.Z;if(!y.formatDistance)throw new RangeError("locale must contain localize.formatDistance property");var w=(0,o.Z)(e,t);if(isNaN(w))throw new RangeError("Invalid time value");var b,D,k,C=(0,s.Z)((b=r,(0,s.Z)({},b)),{addSuffix:Boolean(null===r||void 0===r?void 0:r.addSuffix),comparison:w});w>0?(D=(0,i.default)(t),k=(0,i.default)(e)):(D=(0,i.default)(e),k=(0,i.default)(t));var S,M=String(null!==(m=null===r||void 0===r?void 0:r.roundingMethod)&&void 0!==m?m:"round");if("floor"===M)S=Math.floor;else if("ceil"===M)S=Math.ceil;else{if("round"!==M)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");S=Math.round}var T,x=k.getTime()-D.getTime(),Z=x/l,E=(x-((0,a.Z)(k)-(0,a.Z)(D)))/l,_=null===r||void 0===r?void 0:r.unit;if("second"===(T=_?String(_):Z<1?"second":Z<60?"minute":Z<d?"hour":E<p?"day":E<f?"month":"year")){var P=S(x/1e3);return y.formatDistance("xSeconds",P,C)}if("minute"===T){var O=S(Z);return y.formatDistance("xMinutes",O,C)}if("hour"===T){var N=S(Z/60);return y.formatDistance("xHours",N,C)}if("day"===T){var Y=S(E/d);return y.formatDistance("xDays",Y,C)}if("month"===T){var L=S(E/p);return 12===L&&"month"!==_?y.formatDistance("xYears",1,C):y.formatDistance("xMonths",L,C)}if("year"===T){var I=S(E/f);return y.formatDistance("xYears",I,C)}throw new RangeError("unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'")}},55855:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getDate()}},20466:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getDay()}},85817:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getHours()}},9827:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return c}});var n=r(19013),a=r(584),o=r(13882);function i(e){return(0,o.Z)(1,arguments),(0,a.default)(e,{weekStartsOn:1})}function s(e){(0,o.Z)(1,arguments);var t=function(e){(0,o.Z)(1,arguments);var t=(0,n.default)(e),r=t.getFullYear(),a=new Date(0);a.setFullYear(r+1,0,4),a.setHours(0,0,0,0);var s=i(a),u=new Date(0);u.setFullYear(r,0,4),u.setHours(0,0,0,0);var c=i(u);return t.getTime()>=s.getTime()?r+1:t.getTime()>=c.getTime()?r:r-1}(e),r=new Date(0);return r.setFullYear(t,0,4),r.setHours(0,0,0,0),i(r)}var u=6048e5;function c(e){(0,o.Z)(1,arguments);var t=(0,n.default)(e),r=i(t).getTime()-s(t).getTime();return Math.round(r/u)+1}},39159:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getMinutes()}},78966:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getMonth()}},56605:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return Math.floor(t.getMonth()/3)+1}},77881:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getSeconds()}},28789:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getTime()}},99982:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(28789),a=r(13882);function o(e){return(0,a.Z)(1,arguments),Math.floor((0,n.default)(e)/1e3)}},95570:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getFullYear()}},33926:function(e,t,r){"use strict";r.d(t,{Z:function(){return f}});var n=r(49474),a=r(29422),o=r(67803),i=r(76972),s=r(69690),u=r(50157),c=r(11699),l=r(5001),d=r(19013),p=r(13882);function f(e){(0,p.Z)(1,arguments);var t=(0,d.default)(e.start),r=(0,d.default)(e.end);if(isNaN(t.getTime()))throw new RangeError("Start Date is invalid");if(isNaN(r.getTime()))throw new RangeError("End Date is invalid");var f={};f.years=Math.abs((0,l.Z)(r,t));var h=(0,n.Z)(r,t),v=(0,a.Z)(t,{years:h*f.years});f.months=Math.abs((0,u.Z)(r,v));var m=(0,a.Z)(v,{months:h*f.months});f.days=Math.abs((0,o.Z)(r,m));var g=(0,a.Z)(m,{days:h*f.days});f.hours=Math.abs((0,i.Z)(r,g));var y=(0,a.Z)(g,{hours:h*f.hours});f.minutes=Math.abs((0,s.Z)(r,y));var w=(0,a.Z)(y,{minutes:h*f.minutes});return f.seconds=Math.abs((0,c.Z)(r,w)),f}},42699:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()>o.getTime()}},313:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()<o.getTime()}},71381:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(71002),a=r(13882);function o(e){return(0,a.Z)(1,arguments),e instanceof Date||"object"===(0,n.Z)(e)&&"[object Date]"===Object.prototype.toString.call(e)}},96843:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},38431:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(76417),a=r(12274),o=r(13882);function i(e,t,r){return(0,o.Z)(2,arguments),(0,a.default)((0,n.default)(e,t,new Date,r))}},3151:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(69119),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},49160:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()===o.getFullYear()&&r.getMonth()===o.getMonth()}},86117:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(94431),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},60792:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()===o.getFullYear()}},12274:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(71381),a=r(19013),o=r(13882);function i(e){if((0,o.Z)(1,arguments),!(0,n.default)(e)&&"number"!==typeof e)return!1;var t=(0,a.default)(e);return!isNaN(Number(t))}},24257:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e).getTime(),o=(0,n.default)(t.start).getTime(),i=(0,n.default)(t.end).getTime();if(!(o<=i))throw new RangeError("Invalid interval");return r>=o&&r<=i}},99890:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(71002),a=r(19013),o=r(13882);function i(e){var t,r;if((0,o.Z)(1,arguments),e&&"function"===typeof e.forEach)t=e;else{if("object"!==(0,n.Z)(e)||null===e)return new Date(NaN);t=Array.prototype.slice.call(e)}return t.forEach((function(e){var t=(0,a.default)(e);(void 0===r||r<t||isNaN(Number(t)))&&(r=t)})),r||new Date(NaN)}},37950:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(71002),a=r(19013),o=r(13882);function i(e){var t,r;if((0,o.Z)(1,arguments),e&&"function"===typeof e.forEach)t=e;else{if("object"!==(0,n.Z)(e)||null===e)return new Date(NaN);t=Array.prototype.slice.call(e)}return t.forEach((function(e){var t=(0,a.default)(e);(void 0===r||r>t||isNaN(t.getDate()))&&(r=t)})),r||new Date(NaN)}},76417:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return Ye}});var n=r(71002),a=r(40181);function o(e,t){var r="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=(0,a.Z)(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw i}}}}var i=r(8958),s=r(91218),u=r(19013),c=r(52149),l=r(97621),d=r(24262),p=r(5267),f=r(83946),h=r(13882),v=r(97326),m=r(60136),g=r(29388),y=r(15671),w=r(43144),b=r(4942),D=function(){function e(){(0,y.Z)(this,e),(0,b.Z)(this,"priority",void 0),(0,b.Z)(this,"subPriority",0)}return(0,w.Z)(e,[{key:"validate",value:function(e,t){return!0}}]),e}(),k=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(e,n,a,o,i){var s;return(0,y.Z)(this,r),(s=t.call(this)).value=e,s.validateValue=n,s.setValue=a,s.priority=o,i&&(s.subPriority=i),s}return(0,w.Z)(r,[{key:"validate",value:function(e,t){return this.validateValue(e,this.value,t)}},{key:"set",value:function(e,t,r){return this.setValue(e,t,this.value,r)}}]),r}(D),C=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",10),(0,b.Z)((0,v.Z)(e),"subPriority",-1),e}return(0,w.Z)(r,[{key:"set",value:function(e,t){if(t.timestampIsSet)return e;var r=new Date(0);return r.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),r.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),r}}]),r}(D),S=function(){function e(){(0,y.Z)(this,e),(0,b.Z)(this,"incompatibleTokens",void 0),(0,b.Z)(this,"priority",void 0),(0,b.Z)(this,"subPriority",void 0)}return(0,w.Z)(e,[{key:"run",value:function(e,t,r,n){var a=this.parse(e,t,r,n);return a?{setter:new k(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}},{key:"validate",value:function(e,t,r){return!0}}]),e}(),M=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",140),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["R","u","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"G":case"GG":case"GGG":return r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"});case"GGGGG":return r.era(e,{width:"narrow"});default:return r.era(e,{width:"wide"})||r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"})}}},{key:"set",value:function(e,t,r){return t.era=r,e.setUTCFullYear(r,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),T=r(36948),x={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Z=/^([+-])(\d{2})(\d{2})?|Z/,E=/^([+-])(\d{2})(\d{2})|Z/,_=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,P=/^([+-])(\d{2}):(\d{2})|Z/,O=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function N(e,t){return e?{value:t(e.value),rest:e.rest}:e}function Y(e,t){var r=t.match(e);return r?{value:parseInt(r[0],10),rest:t.slice(r[0].length)}:null}function L(e,t){var r=t.match(e);if(!r)return null;if("Z"===r[0])return{value:0,rest:t.slice(1)};var n="+"===r[1]?1:-1,a=r[2]?parseInt(r[2],10):0,o=r[3]?parseInt(r[3],10):0,i=r[5]?parseInt(r[5],10):0;return{value:n*(a*T.vh+o*T.yJ+i*T.qk),rest:t.slice(r[0].length)}}function I(e){return Y(x.anyDigitsSigned,e)}function R(e,t){switch(e){case 1:return Y(x.singleDigit,t);case 2:return Y(x.twoDigits,t);case 3:return Y(x.threeDigits,t);case 4:return Y(x.fourDigits,t);default:return Y(new RegExp("^\\d{1,"+e+"}"),t)}}function A(e,t){switch(e){case 1:return Y(x.singleDigitSigned,t);case 2:return Y(x.twoDigitsSigned,t);case 3:return Y(x.threeDigitsSigned,t);case 4:return Y(x.fourDigitsSigned,t);default:return Y(new RegExp("^-?\\d{1,"+e+"}"),t)}}function F(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function B(e,t){var r,n=t>0,a=n?t:1-t;if(a<=50)r=e||100;else{var o=a+50;r=e+100*Math.floor(o/100)-(e>=o%100?100:0)}return n?r:1-r}function j(e){return e%400===0||e%4===0&&e%100!==0}var H=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","u","w","I","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return{year:e,isTwoDigitYear:"yy"===t}};switch(t){case"y":return N(R(4,e),n);case"yo":return N(r.ordinalNumber(e,{unit:"year"}),n);default:return N(R(t.length,e),n)}}},{key:"validate",value:function(e,t){return t.isTwoDigitYear||t.year>0}},{key:"set",value:function(e,t,r){var n=e.getUTCFullYear();if(r.isTwoDigitYear){var a=B(r.year,n);return e.setUTCFullYear(a,0,1),e.setUTCHours(0,0,0,0),e}var o="era"in t&&1!==t.era?1-r.year:r.year;return e.setUTCFullYear(o,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),U=r(7651),W=r(59025),q=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","Q","q","M","L","I","d","D","i","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return{year:e,isTwoDigitYear:"YY"===t}};switch(t){case"Y":return N(R(4,e),n);case"Yo":return N(r.ordinalNumber(e,{unit:"year"}),n);default:return N(R(t.length,e),n)}}},{key:"validate",value:function(e,t){return t.isTwoDigitYear||t.year>0}},{key:"set",value:function(e,t,r,n){var a=(0,U.Z)(e,n);if(r.isTwoDigitYear){var o=B(r.year,a);return e.setUTCFullYear(o,0,n.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,W.Z)(e,n)}var i="era"in t&&1!==t.era?1-r.year:r.year;return e.setUTCFullYear(i,0,n.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,W.Z)(e,n)}}]),r}(S),Q=r(66979),K=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){return A("R"===t?4:t.length,e)}},{key:"set",value:function(e,t,r){var n=new Date(0);return n.setUTCFullYear(r,0,4),n.setUTCHours(0,0,0,0),(0,Q.Z)(n)}}]),r}(S),V=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["G","y","Y","R","w","I","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){return A("u"===t?4:t.length,e)}},{key:"set",value:function(e,t,r){return e.setUTCFullYear(r,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),z=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",120),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"Q":case"QQ":return R(t.length,e);case"Qo":return r.ordinalNumber(e,{unit:"quarter"});case"QQQ":return r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(e,{width:"narrow",context:"formatting"});default:return r.quarter(e,{width:"wide",context:"formatting"})||r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=1&&t<=4}},{key:"set",value:function(e,t,r){return e.setUTCMonth(3*(r-1),1),e.setUTCHours(0,0,0,0),e}}]),r}(S),G=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",120),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"q":case"qq":return R(t.length,e);case"qo":return r.ordinalNumber(e,{unit:"quarter"});case"qqq":return r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(e,{width:"narrow",context:"standalone"});default:return r.quarter(e,{width:"wide",context:"standalone"})||r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=1&&t<=4}},{key:"set",value:function(e,t,r){return e.setUTCMonth(3*(r-1),1),e.setUTCHours(0,0,0,0),e}}]),r}(S),X=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]),(0,b.Z)((0,v.Z)(e),"priority",110),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return e-1};switch(t){case"M":return N(Y(x.month,e),n);case"MM":return N(R(2,e),n);case"Mo":return N(r.ordinalNumber(e,{unit:"month"}),n);case"MMM":return r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(e,{width:"narrow",context:"formatting"});default:return r.month(e,{width:"wide",context:"formatting"})||r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.setUTCMonth(r,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),J=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",110),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return e-1};switch(t){case"L":return N(Y(x.month,e),n);case"LL":return N(R(2,e),n);case"Lo":return N(r.ordinalNumber(e,{unit:"month"}),n);case"LLL":return r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(e,{width:"narrow",context:"standalone"});default:return r.month(e,{width:"wide",context:"standalone"})||r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.setUTCMonth(r,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),$=r(23324);var ee=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",100),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","i","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"w":return Y(x.week,e);case"wo":return r.ordinalNumber(e,{unit:"week"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=53}},{key:"set",value:function(e,t,r,n){return(0,W.Z)(function(e,t,r){(0,h.Z)(2,arguments);var n=(0,u.default)(e),a=(0,f.Z)(t),o=(0,$.Z)(n,r)-a;return n.setUTCDate(n.getUTCDate()-7*o),n}(e,r,n),n)}}]),r}(S),te=r(49702);var re=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",100),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"I":return Y(x.week,e);case"Io":return r.ordinalNumber(e,{unit:"week"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=53}},{key:"set",value:function(e,t,r){return(0,Q.Z)(function(e,t){(0,h.Z)(2,arguments);var r=(0,u.default)(e),n=(0,f.Z)(t),a=(0,te.Z)(r)-n;return r.setUTCDate(r.getUTCDate()-7*a),r}(e,r))}}]),r}(S),ne=[31,28,31,30,31,30,31,31,30,31,30,31],ae=[31,29,31,30,31,30,31,31,30,31,30,31],oe=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"subPriority",1),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","w","I","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"d":return Y(x.date,e);case"do":return r.ordinalNumber(e,{unit:"date"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){var r=j(e.getUTCFullYear()),n=e.getUTCMonth();return r?t>=1&&t<=ae[n]:t>=1&&t<=ne[n]}},{key:"set",value:function(e,t,r){return e.setUTCDate(r),e.setUTCHours(0,0,0,0),e}}]),r}(S),ie=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"subpriority",1),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"D":case"DD":return Y(x.dayOfYear,e);case"Do":return r.ordinalNumber(e,{unit:"date"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return j(e.getUTCFullYear())?t>=1&&t<=366:t>=1&&t<=365}},{key:"set",value:function(e,t,r){return e.setUTCMonth(0,r),e.setUTCHours(0,0,0,0),e}}]),r}(S),se=r(84314);function ue(e,t,r){var n,a,o,i,s,c,l,d;(0,h.Z)(2,arguments);var p=(0,se.j)(),v=(0,f.Z)(null!==(n=null!==(a=null!==(o=null!==(i=null===r||void 0===r?void 0:r.weekStartsOn)&&void 0!==i?i:null===r||void 0===r||null===(s=r.locale)||void 0===s||null===(c=s.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==o?o:p.weekStartsOn)&&void 0!==a?a:null===(l=p.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==n?n:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,u.default)(e),g=(0,f.Z)(t),y=((g%7+7)%7<v?7:0)+g-m.getUTCDay();return m.setUTCDate(m.getUTCDate()+y),m}var ce=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"E":case"EE":case"EEE":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=ue(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(S),le=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r,n){var a=function(e){var t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"e":case"ee":return N(R(t.length,e),a);case"eo":return N(r.ordinalNumber(e,{unit:"day"}),a);case"eee":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"eeeee":return r.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=ue(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(S),de=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r,n){var a=function(e){var t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"c":case"cc":return N(R(t.length,e),a);case"co":return N(r.ordinalNumber(e,{unit:"day"}),a);case"ccc":return r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});case"ccccc":return r.day(e,{width:"narrow",context:"standalone"});case"cccccc":return r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});default:return r.day(e,{width:"wide",context:"standalone"})||r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=ue(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(S);var pe=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return 0===e?7:e};switch(t){case"i":case"ii":return R(t.length,e);case"io":return r.ordinalNumber(e,{unit:"day"});case"iii":return N(r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiii":return N(r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiiii":return N(r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);default:return N(r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n)}}},{key:"validate",value:function(e,t){return t>=1&&t<=7}},{key:"set",value:function(e,t,r){return e=function(e,t){(0,h.Z)(2,arguments);var r=(0,f.Z)(t);r%7===0&&(r-=7);var n=(0,u.default)(e),a=((r%7+7)%7<1?7:0)+r-n.getUTCDay();return n.setUTCDate(n.getUTCDate()+a),n}(e,r),e.setUTCHours(0,0,0,0),e}}]),r}(S),fe=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",80),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["b","B","H","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"a":case"aa":case"aaa":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(F(r),0,0,0),e}}]),r}(S),he=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",80),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","B","H","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"b":case"bb":case"bbb":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(F(r),0,0,0),e}}]),r}(S),ve=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",80),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","b","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"B":case"BB":case"BBB":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(F(r),0,0,0),e}}]),r}(S),me=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["H","K","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"h":return Y(x.hour12h,e);case"ho":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=12}},{key:"set",value:function(e,t,r){var n=e.getUTCHours()>=12;return n&&r<12?e.setUTCHours(r+12,0,0,0):n||12!==r?e.setUTCHours(r,0,0,0):e.setUTCHours(0,0,0,0),e}}]),r}(S),ge=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","b","h","K","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"H":return Y(x.hour23h,e);case"Ho":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=23}},{key:"set",value:function(e,t,r){return e.setUTCHours(r,0,0,0),e}}]),r}(S),ye=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["h","H","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"K":return Y(x.hour11h,e);case"Ko":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.getUTCHours()>=12&&r<12?e.setUTCHours(r+12,0,0,0):e.setUTCHours(r,0,0,0),e}}]),r}(S),we=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","b","h","H","K","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"k":return Y(x.hour24h,e);case"ko":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=24}},{key:"set",value:function(e,t,r){var n=r<=24?r%24:r;return e.setUTCHours(n,0,0,0),e}}]),r}(S),be=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",60),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"m":return Y(x.minute,e);case"mo":return r.ordinalNumber(e,{unit:"minute"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=59}},{key:"set",value:function(e,t,r){return e.setUTCMinutes(r,0,0),e}}]),r}(S),De=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",50),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"s":return Y(x.second,e);case"so":return r.ordinalNumber(e,{unit:"second"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=59}},{key:"set",value:function(e,t,r){return e.setUTCSeconds(r,0),e}}]),r}(S),ke=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",30),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){return N(R(t.length,e),(function(e){return Math.floor(e*Math.pow(10,3-t.length))}))}},{key:"set",value:function(e,t,r){return e.setUTCMilliseconds(r),e}}]),r}(S),Ce=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",10),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T","x"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){switch(t){case"X":return L(Z,e);case"XX":return L(E,e);case"XXXX":return L(_,e);case"XXXXX":return L(O,e);default:return L(P,e)}}},{key:"set",value:function(e,t,r){return t.timestampIsSet?e:new Date(e.getTime()-r)}}]),r}(S),Se=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",10),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T","X"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){switch(t){case"x":return L(Z,e);case"xx":return L(E,e);case"xxxx":return L(_,e);case"xxxxx":return L(O,e);default:return L(P,e)}}},{key:"set",value:function(e,t,r){return t.timestampIsSet?e:new Date(e.getTime()-r)}}]),r}(S),Me=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",40),(0,b.Z)((0,v.Z)(e),"incompatibleTokens","*"),e}return(0,w.Z)(r,[{key:"parse",value:function(e){return I(e)}},{key:"set",value:function(e,t,r){return[new Date(1e3*r),{timestampIsSet:!0}]}}]),r}(S),Te=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",20),(0,b.Z)((0,v.Z)(e),"incompatibleTokens","*"),e}return(0,w.Z)(r,[{key:"parse",value:function(e){return I(e)}},{key:"set",value:function(e,t,r){return[new Date(r),{timestampIsSet:!0}]}}]),r}(S),xe={G:new M,y:new H,Y:new q,R:new K,u:new V,Q:new z,q:new G,M:new X,L:new J,w:new ee,I:new re,d:new oe,D:new ie,E:new ce,e:new le,c:new de,i:new pe,a:new fe,b:new he,B:new ve,h:new me,H:new ge,K:new ye,k:new we,m:new be,s:new De,S:new ke,X:new Ce,x:new Se,t:new Me,T:new Te},Ze=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ee=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,_e=/^'([^]*?)'?$/,Pe=/''/g,Oe=/\S/,Ne=/[a-zA-Z]/;function Ye(e,t,r,a){var v,m,g,y,w,b,D,k,S,M,T,x,Z,E,_,P,O,N;(0,h.Z)(3,arguments);var Y=String(e),L=String(t),I=(0,se.j)(),R=null!==(v=null!==(m=null===a||void 0===a?void 0:a.locale)&&void 0!==m?m:I.locale)&&void 0!==v?v:i.Z;if(!R.match)throw new RangeError("locale must contain match property");var A=(0,f.Z)(null!==(g=null!==(y=null!==(w=null!==(b=null===a||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==b?b:null===a||void 0===a||null===(D=a.locale)||void 0===D||null===(k=D.options)||void 0===k?void 0:k.firstWeekContainsDate)&&void 0!==w?w:I.firstWeekContainsDate)&&void 0!==y?y:null===(S=I.locale)||void 0===S||null===(M=S.options)||void 0===M?void 0:M.firstWeekContainsDate)&&void 0!==g?g:1);if(!(A>=1&&A<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var F=(0,f.Z)(null!==(T=null!==(x=null!==(Z=null!==(E=null===a||void 0===a?void 0:a.weekStartsOn)&&void 0!==E?E:null===a||void 0===a||null===(_=a.locale)||void 0===_||null===(P=_.options)||void 0===P?void 0:P.weekStartsOn)&&void 0!==Z?Z:I.weekStartsOn)&&void 0!==x?x:null===(O=I.locale)||void 0===O||null===(N=O.options)||void 0===N?void 0:N.weekStartsOn)&&void 0!==T?T:0);if(!(F>=0&&F<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(""===L)return""===Y?(0,u.default)(r):new Date(NaN);var B,j={firstWeekContainsDate:A,weekStartsOn:F,locale:R},H=[new C],U=L.match(Ee).map((function(e){var t=e[0];return t in l.Z?(0,l.Z[t])(e,R.formatLong):e})).join("").match(Ze),W=[],q=o(U);try{var Q=function(){var t=B.value;null!==a&&void 0!==a&&a.useAdditionalWeekYearTokens||!(0,p.Do)(t)||(0,p.qp)(t,L,e),null!==a&&void 0!==a&&a.useAdditionalDayOfYearTokens||!(0,p.Iu)(t)||(0,p.qp)(t,L,e);var r=t[0],n=xe[r];if(n){var o=n.incompatibleTokens;if(Array.isArray(o)){var i=W.find((function(e){return o.includes(e.token)||e.token===r}));if(i)throw new RangeError("The format string mustn't contain `".concat(i.fullToken,"` and `").concat(t,"` at the same time"))}else if("*"===n.incompatibleTokens&&W.length>0)throw new RangeError("The format string mustn't contain `".concat(t,"` and any other token at the same time"));W.push({token:r,fullToken:t});var s=n.run(Y,t,R.match,j);if(!s)return{v:new Date(NaN)};H.push(s.setter),Y=s.rest}else{if(r.match(Ne))throw new RangeError("Format string contains an unescaped latin alphabet character `"+r+"`");if("''"===t?t="'":"'"===r&&(t=t.match(_e)[1].replace(Pe,"'")),0!==Y.indexOf(t))return{v:new Date(NaN)};Y=Y.slice(t.length)}};for(q.s();!(B=q.n()).done;){var K=Q();if("object"===(0,n.Z)(K))return K.v}}catch(re){q.e(re)}finally{q.f()}if(Y.length>0&&Oe.test(Y))return new Date(NaN);var V=H.map((function(e){return e.priority})).sort((function(e,t){return t-e})).filter((function(e,t,r){return r.indexOf(e)===t})).map((function(e){return H.filter((function(t){return t.priority===e})).sort((function(e,t){return t.subPriority-e.subPriority}))})).map((function(e){return e[0]})),z=(0,u.default)(r);if(isNaN(z.getTime()))return new Date(NaN);var G,X=(0,s.Z)(z,(0,d.Z)(z)),J={},$=o(V);try{for($.s();!(G=$.n()).done;){var ee=G.value;if(!ee.validate(X,j))return new Date(NaN);var te=ee.set(X,J,j);Array.isArray(te)?(X=te[0],(0,c.Z)(J,te[1])):X=te}}catch(re){$.e(re)}finally{$.f()}return X}},23855:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(36948),a=r(13882),o=r(83946);function i(e,t){var r;(0,a.Z)(1,arguments);var i=(0,o.Z)(null!==(r=null===t||void 0===t?void 0:t.additionalDigits)&&void 0!==r?r:2);if(2!==i&&1!==i&&0!==i)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!==typeof e&&"[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);var v,m=function(e){var t,r={},n=e.split(s.dateTimeDelimiter);if(n.length>2)return r;/:/.test(n[0])?t=n[0]:(r.date=n[0],t=n[1],s.timeZoneDelimiter.test(r.date)&&(r.date=e.split(s.timeZoneDelimiter)[0],t=e.substr(r.date.length,e.length)));if(t){var a=s.timezone.exec(t);a?(r.time=t.replace(a[1],""),r.timezone=a[1]):r.time=t}return r}(e);if(m.date){var g=function(e,t){var r=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),n=e.match(r);if(!n)return{year:NaN,restDateString:""};var a=n[1]?parseInt(n[1]):null,o=n[2]?parseInt(n[2]):null;return{year:null===o?a:100*o,restDateString:e.slice((n[1]||n[2]).length)}}(m.date,i);v=function(e,t){if(null===t)return new Date(NaN);var r=e.match(u);if(!r)return new Date(NaN);var n=!!r[4],a=d(r[1]),o=d(r[2])-1,i=d(r[3]),s=d(r[4]),c=d(r[5])-1;if(n)return function(e,t,r){return t>=1&&t<=53&&r>=0&&r<=6}(0,s,c)?function(e,t,r){var n=new Date(0);n.setUTCFullYear(e,0,4);var a=n.getUTCDay()||7,o=7*(t-1)+r+1-a;return n.setUTCDate(n.getUTCDate()+o),n}(t,s,c):new Date(NaN);var l=new Date(0);return function(e,t,r){return t>=0&&t<=11&&r>=1&&r<=(f[t]||(h(e)?29:28))}(t,o,i)&&function(e,t){return t>=1&&t<=(h(e)?366:365)}(t,a)?(l.setUTCFullYear(t,o,Math.max(a,i)),l):new Date(NaN)}(g.restDateString,g.year)}if(!v||isNaN(v.getTime()))return new Date(NaN);var y,w=v.getTime(),b=0;if(m.time&&(b=function(e){var t=e.match(c);if(!t)return NaN;var r=p(t[1]),a=p(t[2]),o=p(t[3]);if(!function(e,t,r){if(24===e)return 0===t&&0===r;return r>=0&&r<60&&t>=0&&t<60&&e>=0&&e<25}(r,a,o))return NaN;return r*n.vh+a*n.yJ+1e3*o}(m.time),isNaN(b)))return new Date(NaN);if(!m.timezone){var D=new Date(w+b),k=new Date(0);return k.setFullYear(D.getUTCFullYear(),D.getUTCMonth(),D.getUTCDate()),k.setHours(D.getUTCHours(),D.getUTCMinutes(),D.getUTCSeconds(),D.getUTCMilliseconds()),k}return y=function(e){if("Z"===e)return 0;var t=e.match(l);if(!t)return 0;var r="+"===t[1]?-1:1,a=parseInt(t[2]),o=t[3]&&parseInt(t[3])||0;if(!function(e,t){return t>=0&&t<=59}(0,o))return NaN;return r*(a*n.vh+o*n.yJ)}(m.timezone),isNaN(y)?new Date(NaN):new Date(w+b+y)}var s={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},u=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,c=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,l=/^([+-])(\d{2})(?::?(\d{2}))?$/;function d(e){return e?parseInt(e):1}function p(e){return e&&parseFloat(e.replace(",","."))||0}var f=[31,null,31,30,31,30,31,31,30,31,30,31];function h(e){return e%400===0||e%4===0&&e%100!==0}},92311:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var n=r(71002),a=r(19013),o=r(62225),i=r(83946),s=r(13882);function u(e,t){if((0,s.Z)(2,arguments),"object"!==(0,n.Z)(t)||null===t)throw new RangeError("values parameter must be an object");var r=(0,a.default)(e);return isNaN(r.getTime())?new Date(NaN):(null!=t.year&&r.setFullYear(t.year),null!=t.month&&(r=(0,o.default)(r,t.month)),null!=t.date&&r.setDate((0,i.Z)(t.date)),null!=t.hours&&r.setHours((0,i.Z)(t.hours)),null!=t.minutes&&r.setMinutes((0,i.Z)(t.minutes)),null!=t.seconds&&r.setSeconds((0,i.Z)(t.seconds)),null!=t.milliseconds&&r.setMilliseconds((0,i.Z)(t.milliseconds)),r)}},37042:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return r.setHours(i),r}},4543:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return r.setMinutes(i),r}},62225:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t),s=r.getFullYear(),u=r.getDate(),c=new Date(0);c.setFullYear(s,i,15),c.setHours(0,0,0,0);var l=function(e){(0,o.Z)(1,arguments);var t=(0,a.default)(e),r=t.getFullYear(),n=t.getMonth(),i=new Date(0);return i.setFullYear(r,n+1,0),i.setHours(0,0,0,0),i.getDate()}(c);return r.setMonth(i,Math.min(u,l)),r}},11503:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(83946),a=r(19013),o=r(62225),i=r(13882);function s(e,t){(0,i.Z)(2,arguments);var r=(0,a.default)(e),s=(0,n.Z)(t)-(Math.floor(r.getMonth()/3)+1);return(0,o.default)(r,r.getMonth()+3*s)}},39880:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return r.setSeconds(i),r}},44749:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return isNaN(r.getTime())?new Date(NaN):(r.setFullYear(i),r)}},69119:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return t.setHours(0,0,0,0),t}},43703:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return t.setDate(1),t.setHours(0,0,0,0),t}},94431:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getMonth(),o=r-r%3;return t.setMonth(o,1),t.setHours(0,0,0,0),t}},584:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(19013),a=r(83946),o=r(13882),i=r(84314);function s(e,t){var r,s,u,c,l,d,p,f;(0,o.Z)(1,arguments);var h=(0,i.j)(),v=(0,a.Z)(null!==(r=null!==(s=null!==(u=null!==(c=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==c?c:null===t||void 0===t||null===(l=t.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==u?u:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,n.default)(e),g=m.getDay(),y=(g<v?7:0)+g-v;return m.setDate(m.getDate()-y),m.setHours(0,0,0,0),m}},38148:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=new Date(0);return r.setFullYear(t.getFullYear(),0,1),r.setHours(0,0,0,0),r}},7069:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(77349),a=r(13882),o=r(83946);function i(e,t){(0,a.Z)(2,arguments);var r=(0,o.Z)(t);return(0,n.default)(e,-r)}},91218:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(51820),a=r(13882),o=r(83946);function i(e,t){(0,a.Z)(2,arguments);var r=(0,o.Z)(t);return(0,n.Z)(e,-r)}},54559:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(11640),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},58793:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(8791),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},77982:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(63500),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},59319:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(21593),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},19013:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(71002),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===(0,n.Z)(e)&&"[object Date]"===t?new Date(e.getTime()):"number"===typeof e||"[object Number]"===t?new Date(e):("string"!==typeof e&&"[object String]"!==t||"undefined"===typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}},82908:function(e){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},90939:function(e,t,r){var n=r(21299),a=r(37005);e.exports=function e(t,r,o,i,s){return t===r||(null==t||null==r||!a(t)&&!a(r)?t!==t&&r!==r:n(t,r,o,i,e,s))}},21299:function(e,t,r){var n=r(46384),a=r(67114),o=r(18351),i=r(16096),s=r(64160),u=r(1469),c=r(44144),l=r(36719),d="[object Arguments]",p="[object Array]",f="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,v,m,g){var y=u(e),w=u(t),b=y?p:s(e),D=w?p:s(t),k=(b=b==d?f:b)==f,C=(D=D==d?f:D)==f,S=b==D;if(S&&c(e)){if(!c(t))return!1;y=!0,k=!1}if(S&&!k)return g||(g=new n),y||l(e)?a(e,t,r,v,m,g):o(e,t,b,r,v,m,g);if(!(1&r)){var M=k&&h.call(e,"__wrapped__"),T=C&&h.call(t,"__wrapped__");if(M||T){var x=M?e.value():e,Z=T?t.value():t;return g||(g=new n),m(x,Z,r,v,g)}}return!!S&&(g||(g=new n),i(e,t,r,v,m,g))}},67114:function(e,t,r){var n=r(88668),a=r(82908),o=r(74757);e.exports=function(e,t,r,i,s,u){var c=1&r,l=e.length,d=t.length;if(l!=d&&!(c&&d>l))return!1;var p=u.get(e),f=u.get(t);if(p&&f)return p==t&&f==e;var h=-1,v=!0,m=2&r?new n:void 0;for(u.set(e,t),u.set(t,e);++h<l;){var g=e[h],y=t[h];if(i)var w=c?i(y,g,h,t,e,u):i(g,y,h,e,t,u);if(void 0!==w){if(w)continue;v=!1;break}if(m){if(!a(t,(function(e,t){if(!o(m,t)&&(g===e||s(g,e,r,i,u)))return m.push(t)}))){v=!1;break}}else if(g!==y&&!s(g,y,r,i,u)){v=!1;break}}return u.delete(e),u.delete(t),v}},18351:function(e,t,r){var n=r(62705),a=r(11149),o=r(77813),i=r(67114),s=r(68776),u=r(21814),c=n?n.prototype:void 0,l=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,d,p){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var f=s;case"[object Set]":var h=1&n;if(f||(f=u),e.size!=t.size&&!h)return!1;var v=p.get(e);if(v)return v==t;n|=2,p.set(e,t);var m=i(f(e),f(t),n,c,d,p);return p.delete(e),m;case"[object Symbol]":if(l)return l.call(e)==l.call(t)}return!1}},16096:function(e,t,r){var n=r(58234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,o,i,s){var u=1&r,c=n(e),l=c.length;if(l!=n(t).length&&!u)return!1;for(var d=l;d--;){var p=c[d];if(!(u?p in t:a.call(t,p)))return!1}var f=s.get(e),h=s.get(t);if(f&&h)return f==t&&h==e;var v=!0;s.set(e,t),s.set(t,e);for(var m=u;++d<l;){var g=e[p=c[d]],y=t[p];if(o)var w=u?o(y,g,p,t,e,s):o(g,y,p,e,t,s);if(!(void 0===w?g===y||i(g,y,r,o,s):w)){v=!1;break}m||(m="constructor"==p)}if(v&&!m){var b=e.constructor,D=t.constructor;b==D||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof D&&D instanceof D||(v=!1)}return s.delete(e),s.delete(t),v}},68776:function(e){e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},21814:function(e){e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},18446:function(e,t,r){var n=r(90939);e.exports=function(e,t){return n(e,t)}},59061:function(){},3655:function(e,t,r){var n=r(32792);function a(e){this.mode=n.MODE_8BIT_BYTE,this.data=e}a.prototype={getLength:function(e){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}},e.exports=a},27321:function(e){function t(){this.buffer=new Array,this.length=0}t.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var r=0;r<t;r++)this.putBit(1==(e>>>t-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},e.exports=t},49381:function(e){e.exports={L:1,M:0,Q:3,H:2}},32832:function(e,t,r){var n=r(11518);function a(e,t){if(void 0==e.length)throw new Error(e.length+"/"+t);for(var r=0;r<e.length&&0==e[r];)r++;this.num=new Array(e.length-r+t);for(var n=0;n<e.length-r;n++)this.num[n]=e[n+r]}a.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<e.getLength();o++)t[r+o]^=n.gexp(n.glog(this.get(r))+n.glog(e.get(o)));return new a(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=n.glog(this.get(0))-n.glog(e.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(o=0;o<e.getLength();o++)r[o]^=n.gexp(n.glog(e.get(o))+t);return new a(r,0).mod(e)}},e.exports=a},14450:function(e,t,r){var n=r(3655),a=r(17611),o=r(27321),i=r(93160),s=r(32832);function u(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}var c=u.prototype;c.addData=function(e){var t=new n(e);this.dataList.push(t),this.dataCache=null},c.isDark=function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},c.getModuleCount=function(){return this.moduleCount},c.make=function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var t=a.getRSBlocks(e,this.errorCorrectLevel),r=new o,n=0,s=0;s<t.length;s++)n+=t[s].dataCount;for(s=0;s<this.dataList.length;s++){var u=this.dataList[s];r.put(u.mode,4),r.put(u.getLength(),i.getLengthInBits(u.mode,e)),u.write(r)}if(r.getLengthInBits()<=8*n)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},c.makeImpl=function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=new Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++)this.modules[r][n]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=u.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},c.setupPositionProbePattern=function(e,t){for(var r=-1;r<=7;r++)if(!(e+r<=-1||this.moduleCount<=e+r))for(var n=-1;n<=7;n++)t+n<=-1||this.moduleCount<=t+n||(this.modules[e+r][t+n]=0<=r&&r<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=n&&n<=4)},c.getBestMaskPattern=function(){for(var e=0,t=0,r=0;r<8;r++){this.makeImpl(!0,r);var n=i.getLostPoint(this);(0==r||e>n)&&(e=n,t=r)}return t},c.createMovieClip=function(e,t,r){var n=e.createEmptyMovieClip(t,r);this.make();for(var a=0;a<this.modules.length;a++)for(var o=1*a,i=0;i<this.modules[a].length;i++){var s=1*i;this.modules[a][i]&&(n.beginFill(0,100),n.moveTo(s,o),n.lineTo(s+1,o),n.lineTo(s+1,o+1),n.lineTo(s,o+1),n.endFill())}return n},c.setupTimingPattern=function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(var t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)},c.setupPositionAdjustPattern=function(){for(var e=i.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var r=0;r<e.length;r++){var n=e[t],a=e[r];if(null==this.modules[n][a])for(var o=-2;o<=2;o++)for(var s=-2;s<=2;s++)this.modules[n+o][a+s]=-2==o||2==o||-2==s||2==s||0==o&&0==s}},c.setupTypeNumber=function(e){for(var t=i.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var n=!e&&1==(t>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=n}for(r=0;r<18;r++){n=!e&&1==(t>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=n}},c.setupTypeInfo=function(e,t){for(var r=this.errorCorrectLevel<<3|t,n=i.getBCHTypeInfo(r),a=0;a<15;a++){var o=!e&&1==(n>>a&1);a<6?this.modules[a][8]=o:a<8?this.modules[a+1][8]=o:this.modules[this.moduleCount-15+a][8]=o}for(a=0;a<15;a++){o=!e&&1==(n>>a&1);a<8?this.modules[8][this.moduleCount-a-1]=o:a<9?this.modules[8][15-a-1+1]=o:this.modules[8][15-a-1]=o}this.modules[this.moduleCount-8][8]=!e},c.mapData=function(e,t){for(var r=-1,n=this.moduleCount-1,a=7,o=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var u=0;u<2;u++)if(null==this.modules[n][s-u]){var c=!1;o<e.length&&(c=1==(e[o]>>>a&1)),i.getMask(t,n,s-u)&&(c=!c),this.modules[n][s-u]=c,-1==--a&&(o++,a=7)}if((n+=r)<0||this.moduleCount<=n){n-=r,r=-r;break}}},u.PAD0=236,u.PAD1=17,u.createData=function(e,t,r){for(var n=a.getRSBlocks(e,t),s=new o,c=0;c<r.length;c++){var l=r[c];s.put(l.mode,4),s.put(l.getLength(),i.getLengthInBits(l.mode,e)),l.write(s)}var d=0;for(c=0;c<n.length;c++)d+=n[c].dataCount;if(s.getLengthInBits()>8*d)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*d+")");for(s.getLengthInBits()+4<=8*d&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(!1);for(;!(s.getLengthInBits()>=8*d)&&(s.put(u.PAD0,8),!(s.getLengthInBits()>=8*d));)s.put(u.PAD1,8);return u.createBytes(s,n)},u.createBytes=function(e,t){for(var r=0,n=0,a=0,o=new Array(t.length),u=new Array(t.length),c=0;c<t.length;c++){var l=t[c].dataCount,d=t[c].totalCount-l;n=Math.max(n,l),a=Math.max(a,d),o[c]=new Array(l);for(var p=0;p<o[c].length;p++)o[c][p]=255&e.buffer[p+r];r+=l;var f=i.getErrorCorrectPolynomial(d),h=new s(o[c],f.getLength()-1).mod(f);u[c]=new Array(f.getLength()-1);for(p=0;p<u[c].length;p++){var v=p+h.getLength()-u[c].length;u[c][p]=v>=0?h.get(v):0}}var m=0;for(p=0;p<t.length;p++)m+=t[p].totalCount;var g=new Array(m),y=0;for(p=0;p<n;p++)for(c=0;c<t.length;c++)p<o[c].length&&(g[y++]=o[c][p]);for(p=0;p<a;p++)for(c=0;c<t.length;c++)p<u[c].length&&(g[y++]=u[c][p]);return g},e.exports=u},17611:function(e,t,r){var n=r(49381);function a(e,t){this.totalCount=e,this.dataCount=t}a.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],a.getRSBlocks=function(e,t){var r=a.getRsBlockTable(e,t);if(void 0==r)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var n=r.length/3,o=new Array,i=0;i<n;i++)for(var s=r[3*i+0],u=r[3*i+1],c=r[3*i+2],l=0;l<s;l++)o.push(new a(u,c));return o},a.getRsBlockTable=function(e,t){switch(t){case n.L:return a.RS_BLOCK_TABLE[4*(e-1)+0];case n.M:return a.RS_BLOCK_TABLE[4*(e-1)+1];case n.Q:return a.RS_BLOCK_TABLE[4*(e-1)+2];case n.H:return a.RS_BLOCK_TABLE[4*(e-1)+3];default:return}},e.exports=a},11518:function(e){for(var t={glog:function(e){if(e<1)throw new Error("glog("+e+")");return t.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},r=0;r<8;r++)t.EXP_TABLE[r]=1<<r;for(r=8;r<256;r++)t.EXP_TABLE[r]=t.EXP_TABLE[r-4]^t.EXP_TABLE[r-5]^t.EXP_TABLE[r-6]^t.EXP_TABLE[r-8];for(r=0;r<255;r++)t.LOG_TABLE[t.EXP_TABLE[r]]=r;e.exports=t},32792:function(e){e.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}},93160:function(e,t,r){var n=r(32792),a=r(32832),o=r(11518),i=0,s=1,u=2,c=3,l=4,d=5,p=6,f=7,h={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;h.getBCHDigit(t)-h.getBCHDigit(h.G15)>=0;)t^=h.G15<<h.getBCHDigit(t)-h.getBCHDigit(h.G15);return(e<<10|t)^h.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;h.getBCHDigit(t)-h.getBCHDigit(h.G18)>=0;)t^=h.G18<<h.getBCHDigit(t)-h.getBCHDigit(h.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return h.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,r){switch(e){case i:return(t+r)%2==0;case s:return t%2==0;case u:return r%3==0;case c:return(t+r)%3==0;case l:return(Math.floor(t/2)+Math.floor(r/3))%2==0;case d:return t*r%2+t*r%3==0;case p:return(t*r%2+t*r%3)%2==0;case f:return(t*r%3+(t+r)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new a([1],0),r=0;r<e;r++)t=t.multiply(new a([1,o.gexp(r)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case n.MODE_NUMBER:return 10;case n.MODE_ALPHA_NUM:return 9;case n.MODE_8BIT_BYTE:case n.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case n.MODE_NUMBER:return 12;case n.MODE_ALPHA_NUM:return 11;case n.MODE_8BIT_BYTE:return 16;case n.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else{if(!(t<41))throw new Error("type:"+t);switch(e){case n.MODE_NUMBER:return 14;case n.MODE_ALPHA_NUM:return 13;case n.MODE_8BIT_BYTE:return 16;case n.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),r=0,n=0;n<t;n++)for(var a=0;a<t;a++){for(var o=0,i=e.isDark(n,a),s=-1;s<=1;s++)if(!(n+s<0||t<=n+s))for(var u=-1;u<=1;u++)a+u<0||t<=a+u||0==s&&0==u||i==e.isDark(n+s,a+u)&&o++;o>5&&(r+=3+o-5)}for(n=0;n<t-1;n++)for(a=0;a<t-1;a++){var c=0;e.isDark(n,a)&&c++,e.isDark(n+1,a)&&c++,e.isDark(n,a+1)&&c++,e.isDark(n+1,a+1)&&c++,0!=c&&4!=c||(r+=3)}for(n=0;n<t;n++)for(a=0;a<t-6;a++)e.isDark(n,a)&&!e.isDark(n,a+1)&&e.isDark(n,a+2)&&e.isDark(n,a+3)&&e.isDark(n,a+4)&&!e.isDark(n,a+5)&&e.isDark(n,a+6)&&(r+=40);for(a=0;a<t;a++)for(n=0;n<t-6;n++)e.isDark(n,a)&&!e.isDark(n+1,a)&&e.isDark(n+2,a)&&e.isDark(n+3,a)&&e.isDark(n+4,a)&&!e.isDark(n+5,a)&&e.isDark(n+6,a)&&(r+=40);var l=0;for(a=0;a<t;a++)for(n=0;n<t;n++)e.isDark(n,a)&&l++;return r+=10*(Math.abs(100*l/t/t-50)/5)}};e.exports=h},9198:function(e,t,r){!function(e,t,r,n,a,o,i,s,u,c,l,d,p,f,h,v,m,g,y,w,b,D,k,C,S,M,T,x,Z,E,_,P,O,N,Y,L,I,R,A,F,B,j,H,U,W,q,Q,K,V,z,G,X,J,$,ee,te,re,ne,ae,oe,ie,se,ue,ce){"use strict";function le(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var de=le(t),pe=le(n),fe=le(a),he=le(o),ve=le(i),me=le(s),ge=le(u),ye=le(c),we=le(l),be=le(d),De=le(p),ke=le(f),Ce=le(h),Se=le(v),Me=le(m),Te=le(g),xe=le(y),Ze=le(w),Ee=le(b),_e=le(D),Pe=le(k),Oe=le(C),Ne=le(S),Ye=le(M),Le=le(T),Ie=le(x),Re=le(Z),Ae=le(E),Fe=le(_),Be=le(P),je=le(O),He=le(N),Ue=le(Y),We=le(L),qe=le(I),Qe=le(R),Ke=le(A),Ve=le(F),ze=le(B),Ge=le(j),Xe=le(H),Je=le(U),$e=le(W),et=le(q),tt=le(K),rt=le(V),nt=le(z),at=le(G),ot=le(X),it=le(J),st=le($),ut=le(ee),ct=le(te),lt=le(re),dt=le(ne),pt=le(ae),ft=le(oe),ht=le(ie),vt=le(se),mt=le(ce);function gt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function yt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?gt(Object(r),!0).forEach((function(t){Ct(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):gt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function wt(e){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wt(e)}function bt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Ot(n.key),n)}}function kt(e,t,r){return t&&Dt(e.prototype,t),r&&Dt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ct(e,t,r){return(t=Ot(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function St(){return St=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},St.apply(this,arguments)}function Mt(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xt(e,t)}function Tt(e){return Tt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Tt(e)}function xt(e,t){return xt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xt(e,t)}function Zt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Et(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Tt(e);if(t){var a=Tt(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Zt(e)}(this,r)}}function _t(e){return function(e){if(Array.isArray(e))return Pt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Pt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ot(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var Nt=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Yt=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Lt={p:Yt,P:function(e,t){var r,n=e.match(/(P+)(p+)?/)||[],a=n[1],o=n[2];if(!o)return Nt(e,t);switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Nt(a,t)).replace("{{time}}",Yt(o,t))}},It=12,Rt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;function At(e){var t=e?"string"==typeof e||e instanceof String?ft.default(e):dt.default(e):new Date;return Ft(t)?t:null}function Ft(e,t){return t=t||new Date("1/1/1000"),he.default(e)&&!ct.default(e,t)}function Bt(e,t,r){if("en"===r)return ve.default(e,t,{awareOfUnicodeTokens:!0});var n=tr(r);return r&&!n&&console.warn('A locale object was not found for the provided string ["'.concat(r,'"].')),!n&&er()&&tr(er())&&(n=tr(er())),ve.default(e,t,{locale:n||null,awareOfUnicodeTokens:!0})}function jt(e,t){var r=t.dateFormat,n=t.locale;return e&&Bt(e,Array.isArray(r)?r[0]:r,n)||""}function Ht(e,t){var r=t.hour,n=void 0===r?0:r,a=t.minute,o=void 0===a?0:a,i=t.second,s=void 0===i?0:i;return Be.default(Fe.default(Ae.default(e,s),o),n)}function Ut(e,t,r){var n=tr(t||er());return Ge.default(e,{locale:n,weekStartsOn:r})}function Wt(e){return Xe.default(e)}function qt(e){return $e.default(e)}function Qt(e){return Je.default(e)}function Kt(){return ze.default(At())}function Vt(e,t){return e&&t?it.default(e,t):!e&&!t}function zt(e,t){return e&&t?ot.default(e,t):!e&&!t}function Gt(e,t){return e&&t?st.default(e,t):!e&&!t}function Xt(e,t){return e&&t?at.default(e,t):!e&&!t}function Jt(e,t){return e&&t?nt.default(e,t):!e&&!t}function $t(e,t,r){var n,a=ze.default(t),o=et.default(r);try{n=lt.default(e,{start:a,end:o})}catch(e){n=!1}return n}function er(){return("undefined"!=typeof window?window:globalThis).__localeId__}function tr(e){if("string"==typeof e){var t="undefined"!=typeof window?window:globalThis;return t.__localeData__?t.__localeData__[e]:null}return e}function rr(e,t){return Bt(je.default(At(),e),"LLLL",t)}function nr(e,t){return Bt(je.default(At(),e),"LLL",t)}function ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.excludeDateIntervals,i=t.includeDates,s=t.includeDateIntervals,u=t.filterDate;return pr(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Xt(e,t)}))||o&&o.some((function(t){var r=t.start,n=t.end;return lt.default(e,{start:r,end:n})}))||i&&!i.some((function(t){return Xt(e,t)}))||s&&!s.some((function(t){var r=t.start,n=t.end;return lt.default(e,{start:r,end:n})}))||u&&!u(At(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,n=t.excludeDateIntervals;return n&&n.length>0?n.some((function(t){var r=t.start,n=t.end;return lt.default(e,{start:r,end:n})})):r&&r.some((function(t){return Xt(e,t)}))||!1}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate;return pr(e,{minDate:Xe.default(r),maxDate:tt.default(n)})||a&&a.some((function(t){return zt(e,t)}))||o&&!o.some((function(t){return zt(e,t)}))||i&&!i(At(e))||!1}function sr(e,t,r,n){var a=Ie.default(e),o=Ye.default(e),i=Ie.default(t),s=Ye.default(t),u=Ie.default(n);return a===i&&a===u?o<=r&&r<=s:a<i?u===a&&o<=r||u===i&&s>=r||u<i&&u>a:void 0}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate;return pr(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Gt(e,t)}))||o&&!o.some((function(t){return Gt(e,t)}))||i&&!i(At(e))||!1}function cr(e,t,r){if(!he.default(t)||!he.default(r))return!1;var n=Ie.default(t),a=Ie.default(r);return n<=e&&a>=e}function lr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate,s=new Date(e,0,1);return pr(s,{minDate:$e.default(r),maxDate:rt.default(n)})||a&&a.some((function(e){return Vt(s,e)}))||o&&!o.some((function(e){return Vt(s,e)}))||i&&!i(At(s))||!1}function dr(e,t,r,n){var a=Ie.default(e),o=Le.default(e),i=Ie.default(t),s=Le.default(t),u=Ie.default(n);return a===i&&a===u?o<=r&&r<=s:a<i?u===a&&o<=r||u===i&&s>=r||u<i&&u>a:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate;return r&&Qe.default(e,r)<0||n&&Qe.default(e,n)>0}function fr(e,t){return t.some((function(t){return _e.default(t)===_e.default(e)&&Ee.default(t)===Ee.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,n=t.includeTimes,a=t.filterTime;return r&&fr(e,r)||n&&!fr(e,n)||a&&!a(e)||!1}function vr(e,t){var r=t.minTime,n=t.maxTime;if(!r||!n)throw new Error("Both minTime and maxTime props required");var a,o=At(),i=Be.default(Fe.default(o,Ee.default(e)),_e.default(e)),s=Be.default(Fe.default(o,Ee.default(r)),_e.default(r)),u=Be.default(Fe.default(o,Ee.default(n)),_e.default(n));try{a=!lt.default(i,{start:s,end:u})}catch(e){a=!1}return a}function mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=Me.default(e,1);return r&&Ke.default(r,a)>0||n&&n.every((function(e){return Ke.default(e,a)>0}))||!1}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=be.default(e,1);return r&&Ke.default(a,r)>0||n&&n.every((function(e){return Ke.default(a,e)>0}))||!1}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=xe.default(e,1);return r&&Ve.default(r,a)>0||n&&n.every((function(e){return Ve.default(e,a)>0}))||!1}function wr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=ke.default(e,1);return r&&Ve.default(a,r)>0||n&&n.every((function(e){return Ve.default(a,e)>0}))||!1}function br(e){var t=e.minDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return Qe.default(e,t)>=0}));return We.default(n)}return r?We.default(r):t}function Dr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return Qe.default(e,t)<=0}));return qe.default(n)}return r?qe.default(r):t}function kr(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"react-datepicker__day--highlighted",r=new Map,n=0,a=e.length;n<a;n++){var o=e[n];if(fe.default(o)){var i=Bt(o,"MM.dd.yyyy"),s=r.get(i)||[];s.includes(t)||(s.push(t),r.set(i,s))}else if("object"===wt(o)){var u=Object.keys(o),c=u[0],l=o[u[0]];if("string"==typeof c&&l.constructor===Array)for(var d=0,p=l.length;d<p;d++){var f=Bt(l[d],"MM.dd.yyyy"),h=r.get(f)||[];h.includes(c)||(h.push(c),r.set(f,h))}}}return r}function Cr(e,t,r,n,a){for(var o=a.length,i=[],s=0;s<o;s++){var u=me.default(ge.default(e,_e.default(a[s])),Ee.default(a[s])),c=me.default(e,(r+1)*n);ut.default(u,t)&&ct.default(u,c)&&i.push(a[s])}return i}function Sr(e){return e<10?"0".concat(e):"".concat(e)}function Mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:It,r=Math.ceil(Ie.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Tr(e,t,r,n){for(var a=[],o=0;o<2*t+1;o++){var i=e+t-o,s=!0;r&&(s=Ie.default(r)<=i),n&&s&&(s=Ie.default(n)>=i),s&&a.push(i)}return a}var xr=function(e){Mt(n,e);var r=Et(n);function n(e){var a;bt(this,n),Ct(Zt(a=r.call(this,e)),"renderOptions",(function(){var e=a.props.year,t=a.state.yearsList.map((function(t){return de.default.createElement("div",{className:e===t?"react-datepicker__year-option react-datepicker__year-option--selected_year":"react-datepicker__year-option",key:t,onClick:a.onChange.bind(Zt(a),t),"aria-selected":e===t?"true":void 0},e===t?de.default.createElement("span",{className:"react-datepicker__year-option--selected"},"\u2713"):"",t)})),r=a.props.minDate?Ie.default(a.props.minDate):null,n=a.props.maxDate?Ie.default(a.props.maxDate):null;return n&&a.state.yearsList.find((function(e){return e===n}))||t.unshift(de.default.createElement("div",{className:"react-datepicker__year-option",key:"upcoming",onClick:a.incrementYears},de.default.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming"}))),r&&a.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement("div",{className:"react-datepicker__year-option",key:"previous",onClick:a.decrementYears},de.default.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous"}))),t})),Ct(Zt(a),"onChange",(function(e){a.props.onChange(e)})),Ct(Zt(a),"handleClickOutside",(function(){a.props.onCancel()})),Ct(Zt(a),"shiftYears",(function(e){var t=a.state.yearsList.map((function(t){return t+e}));a.setState({yearsList:t})})),Ct(Zt(a),"incrementYears",(function(){return a.shiftYears(1)})),Ct(Zt(a),"decrementYears",(function(){return a.shiftYears(-1)}));var o=e.yearDropdownItemNumber,i=e.scrollableYearDropdown,s=o||(i?10:5);return a.state={yearsList:Tr(a.props.year,s,a.props.minDate,a.props.maxDate)},a.dropdownRef=t.createRef(),a}return kt(n,[{key:"componentDidMount",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:"render",value:function(){var e=pe.default({"react-datepicker__year-dropdown":!0,"react-datepicker__year-dropdown--scrollable":this.props.scrollableYearDropdown});return de.default.createElement("div",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),n}(de.default.Component),Zr=ht.default(xr),Er=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Ct(Zt(e),"renderSelectOptions",(function(){for(var t=e.props.minDate?Ie.default(e.props.minDate):1900,r=e.props.maxDate?Ie.default(e.props.maxDate):2100,n=[],a=t;a<=r;a++)n.push(de.default.createElement("option",{key:a,value:a},a));return n})),Ct(Zt(e),"onSelectChange",(function(t){e.onChange(t.target.value)})),Ct(Zt(e),"renderSelectMode",(function(){return de.default.createElement("select",{value:e.props.year,className:"react-datepicker__year-select",onChange:e.onSelectChange},e.renderSelectOptions())})),Ct(Zt(e),"renderReadView",(function(t){return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__year-read-view",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement("span",{className:"react-datepicker__year-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__year-read-view--selected-year"},e.props.year))})),Ct(Zt(e),"renderDropdown",(function(){return de.default.createElement(Zr,{key:"dropdown",year:e.props.year,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableYearDropdown:e.props.scrollableYearDropdown,yearDropdownItemNumber:e.props.yearDropdownItemNumber})})),Ct(Zt(e),"renderScrollMode",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),Ct(Zt(e),"onChange",(function(t){e.toggleDropdown(),t!==e.props.year&&e.props.onChange(t)})),Ct(Zt(e),"toggleDropdown",(function(t){e.setState({dropdownVisible:!e.state.dropdownVisible},(function(){e.props.adjustDateOnChange&&e.handleYearChange(e.props.date,t)}))})),Ct(Zt(e),"handleYearChange",(function(t,r){e.onSelect(t,r),e.setOpen()})),Ct(Zt(e),"onSelect",(function(t,r){e.props.onSelect&&e.props.onSelect(t,r)})),Ct(Zt(e),"setOpen",(function(){e.props.setOpen&&e.props.setOpen(!0)})),e}return kt(r,[{key:"render",value:function(){var e;switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode();break;case"select":e=this.renderSelectMode()}return de.default.createElement("div",{className:"react-datepicker__year-dropdown-container react-datepicker__year-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),_r=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"isSelectedMonth",(function(t){return e.props.month===t})),Ct(Zt(e),"renderOptions",(function(){return e.props.monthNames.map((function(t,r){return de.default.createElement("div",{className:e.isSelectedMonth(r)?"react-datepicker__month-option react-datepicker__month-option--selected_month":"react-datepicker__month-option",key:t,onClick:e.onChange.bind(Zt(e),r),"aria-selected":e.isSelectedMonth(r)?"true":void 0},e.isSelectedMonth(r)?de.default.createElement("span",{className:"react-datepicker__month-option--selected"},"\u2713"):"",t)}))})),Ct(Zt(e),"onChange",(function(t){return e.props.onChange(t)})),Ct(Zt(e),"handleClickOutside",(function(){return e.props.onCancel()})),e}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__month-dropdown"},this.renderOptions())}}]),r}(de.default.Component),Pr=ht.default(_r),Or=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Ct(Zt(e),"renderSelectOptions",(function(e){return e.map((function(e,t){return de.default.createElement("option",{key:t,value:t},e)}))})),Ct(Zt(e),"renderSelectMode",(function(t){return de.default.createElement("select",{value:e.props.month,className:"react-datepicker__month-select",onChange:function(t){return e.onChange(t.target.value)}},e.renderSelectOptions(t))})),Ct(Zt(e),"renderReadView",(function(t,r){return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__month-read-view",onClick:e.toggleDropdown},de.default.createElement("span",{className:"react-datepicker__month-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__month-read-view--selected-month"},r[e.props.month]))})),Ct(Zt(e),"renderDropdown",(function(t){return de.default.createElement(Pr,{key:"dropdown",month:e.props.month,monthNames:t,onChange:e.onChange,onCancel:e.toggleDropdown})})),Ct(Zt(e),"renderScrollMode",(function(t){var r=e.state.dropdownVisible,n=[e.renderReadView(!r,t)];return r&&n.unshift(e.renderDropdown(t)),n})),Ct(Zt(e),"onChange",(function(t){e.toggleDropdown(),t!==e.props.month&&e.props.onChange(t)})),Ct(Zt(e),"toggleDropdown",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return kt(r,[{key:"render",value:function(){var e,t=this,r=[0,1,2,3,4,5,6,7,8,9,10,11].map(this.props.useShortMonthInDropdown?function(e){return nr(e,t.props.locale)}:function(e){return rr(e,t.props.locale)});switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode(r);break;case"select":e=this.renderSelectMode(r)}return de.default.createElement("div",{className:"react-datepicker__month-dropdown-container react-datepicker__month-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component);function Nr(e,t){for(var r=[],n=Wt(e),a=Wt(t);!ut.default(n,a);)r.push(At(n)),n=be.default(n,1);return r}var Yr,Lr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"renderOptions",(function(){return n.state.monthYearsList.map((function(e){var t=Re.default(e),r=Vt(n.props.date,e)&&zt(n.props.date,e);return de.default.createElement("div",{className:r?"react-datepicker__month-year-option--selected_month-year":"react-datepicker__month-year-option",key:t,onClick:n.onChange.bind(Zt(n),t),"aria-selected":r?"true":void 0},r?de.default.createElement("span",{className:"react-datepicker__month-year-option--selected"},"\u2713"):"",Bt(e,n.props.dateFormat,n.props.locale))}))})),Ct(Zt(n),"onChange",(function(e){return n.props.onChange(e)})),Ct(Zt(n),"handleClickOutside",(function(){n.props.onCancel()})),n.state={monthYearsList:Nr(n.props.minDate,n.props.maxDate)},n}return kt(r,[{key:"render",value:function(){var e=pe.default({"react-datepicker__month-year-dropdown":!0,"react-datepicker__month-year-dropdown--scrollable":this.props.scrollableMonthYearDropdown});return de.default.createElement("div",{className:e},this.renderOptions())}}]),r}(de.default.Component),Ir=ht.default(Lr),Rr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Ct(Zt(e),"renderSelectOptions",(function(){for(var t=Wt(e.props.minDate),r=Wt(e.props.maxDate),n=[];!ut.default(t,r);){var a=Re.default(t);n.push(de.default.createElement("option",{key:a,value:a},Bt(t,e.props.dateFormat,e.props.locale))),t=be.default(t,1)}return n})),Ct(Zt(e),"onSelectChange",(function(t){e.onChange(t.target.value)})),Ct(Zt(e),"renderSelectMode",(function(){return de.default.createElement("select",{value:Re.default(Wt(e.props.date)),className:"react-datepicker__month-year-select",onChange:e.onSelectChange},e.renderSelectOptions())})),Ct(Zt(e),"renderReadView",(function(t){var r=Bt(e.props.date,e.props.dateFormat,e.props.locale);return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__month-year-read-view",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement("span",{className:"react-datepicker__month-year-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__month-year-read-view--selected-month-year"},r))})),Ct(Zt(e),"renderDropdown",(function(){return de.default.createElement(Ir,{key:"dropdown",date:e.props.date,dateFormat:e.props.dateFormat,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableMonthYearDropdown:e.props.scrollableMonthYearDropdown,locale:e.props.locale})})),Ct(Zt(e),"renderScrollMode",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),Ct(Zt(e),"onChange",(function(t){e.toggleDropdown();var r=At(parseInt(t));Vt(e.props.date,r)&&zt(e.props.date,r)||e.props.onChange(r)})),Ct(Zt(e),"toggleDropdown",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return kt(r,[{key:"render",value:function(){var e;switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode();break;case"select":e=this.renderSelectMode()}return de.default.createElement("div",{className:"react-datepicker__month-year-dropdown-container react-datepicker__month-year-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),Ar=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"dayEl",de.default.createRef()),Ct(Zt(e),"handleClick",(function(t){!e.isDisabled()&&e.props.onClick&&e.props.onClick(t)})),Ct(Zt(e),"handleMouseEnter",(function(t){!e.isDisabled()&&e.props.onMouseEnter&&e.props.onMouseEnter(t)})),Ct(Zt(e),"handleOnKeyDown",(function(t){" "===t.key&&(t.preventDefault(),t.key="Enter"),e.props.handleOnKeyDown(t)})),Ct(Zt(e),"isSameDay",(function(t){return Xt(e.props.day,t)})),Ct(Zt(e),"isKeyboardSelected",(function(){return!e.props.disabledKeyboardNavigation&&!e.isSameDay(e.props.selected)&&e.isSameDay(e.props.preSelection)})),Ct(Zt(e),"isDisabled",(function(){return ar(e.props.day,e.props)})),Ct(Zt(e),"isExcluded",(function(){return or(e.props.day,e.props)})),Ct(Zt(e),"getHighLightedClass",(function(){var t=e.props,r=t.day,n=t.highlightDates;if(!n)return!1;var a=Bt(r,"MM.dd.yyyy");return n.get(a)})),Ct(Zt(e),"isInRange",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&$t(r,n,a)})),Ct(Zt(e),"isInSelectingRange",(function(){var t,r=e.props,n=r.day,a=r.selectsStart,o=r.selectsEnd,i=r.selectsRange,s=r.selectsDisabledDaysInRange,u=r.startDate,c=r.endDate,l=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return!(!(a||o||i)||!l||!s&&e.isDisabled())&&(a&&c&&(ct.default(l,c)||Jt(l,c))?$t(n,l,c):(o&&u&&(ut.default(l,u)||Jt(l,u))||!(!i||!u||c||!ut.default(l,u)&&!Jt(l,u)))&&$t(n,u,l))})),Ct(Zt(e),"isSelectingRangeStart",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,n=r.day,a=r.startDate,o=r.selectsStart,i=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return Xt(n,o?i:a)})),Ct(Zt(e),"isSelectingRangeEnd",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,n=r.day,a=r.endDate,o=r.selectsEnd,i=r.selectsRange,s=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return Xt(n,o||i?s:a)})),Ct(Zt(e),"isRangeStart",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&Xt(n,r)})),Ct(Zt(e),"isRangeEnd",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&Xt(a,r)})),Ct(Zt(e),"isWeekend",(function(){var t=Pe.default(e.props.day);return 0===t||6===t})),Ct(Zt(e),"isAfterMonth",(function(){return void 0!==e.props.month&&(e.props.month+1)%12===Ye.default(e.props.day)})),Ct(Zt(e),"isBeforeMonth",(function(){return void 0!==e.props.month&&(Ye.default(e.props.day)+1)%12===e.props.month})),Ct(Zt(e),"isCurrentDay",(function(){return e.isSameDay(At())})),Ct(Zt(e),"isSelected",(function(){return e.isSameDay(e.props.selected)})),Ct(Zt(e),"getClassNames",(function(t){var r,n=e.props.dayClassName?e.props.dayClassName(t):void 0;return pe.default("react-datepicker__day",n,"react-datepicker__day--"+Bt(e.props.day,"ddd",r),{"react-datepicker__day--disabled":e.isDisabled(),"react-datepicker__day--excluded":e.isExcluded(),"react-datepicker__day--selected":e.isSelected(),"react-datepicker__day--keyboard-selected":e.isKeyboardSelected(),"react-datepicker__day--range-start":e.isRangeStart(),"react-datepicker__day--range-end":e.isRangeEnd(),"react-datepicker__day--in-range":e.isInRange(),"react-datepicker__day--in-selecting-range":e.isInSelectingRange(),"react-datepicker__day--selecting-range-start":e.isSelectingRangeStart(),"react-datepicker__day--selecting-range-end":e.isSelectingRangeEnd(),"react-datepicker__day--today":e.isCurrentDay(),"react-datepicker__day--weekend":e.isWeekend(),"react-datepicker__day--outside-month":e.isAfterMonth()||e.isBeforeMonth()},e.getHighLightedClass("react-datepicker__day--highlighted"))})),Ct(Zt(e),"getAriaLabel",(function(){var t=e.props,r=t.day,n=t.ariaLabelPrefixWhenEnabled,a=void 0===n?"Choose":n,o=t.ariaLabelPrefixWhenDisabled,i=void 0===o?"Not available":o,s=e.isDisabled()||e.isExcluded()?i:a;return"".concat(s," ").concat(Bt(r,"PPPP",e.props.locale))})),Ct(Zt(e),"getTabIndex",(function(t,r){var n=t||e.props.selected,a=r||e.props.preSelection;return e.isKeyboardSelected()||e.isSameDay(n)&&Xt(a,n)?0:-1})),Ct(Zt(e),"handleFocusDay",(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains("react-datepicker__day")&&(r=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(r=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(r=!1)),r&&e.dayEl.current.focus({preventScroll:!0})})),Ct(Zt(e),"renderDayContents",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Oe.default(e.props.day),e.props.day):Oe.default(e.props.day)})),Ct(Zt(e),"render",(function(){return de.default.createElement("div",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),"aria-label":e.getAriaLabel(),role:"option","aria-disabled":e.isDisabled(),"aria-current":e.isCurrentDay()?"date":void 0,"aria-selected":e.isSelected()||e.isInRange()},e.renderDayContents())})),e}return kt(r,[{key:"componentDidMount",value:function(){this.handleFocusDay()}},{key:"componentDidUpdate",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),Fr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"handleClick",(function(t){e.props.onClick&&e.props.onClick(t)})),e}return kt(r,[{key:"render",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,n=void 0===r?"week ":r,a={"react-datepicker__week-number":!0,"react-datepicker__week-number--clickable":!!e.onClick};return de.default.createElement("div",{className:pe.default(a),"aria-label":"".concat(n," ").concat(this.props.weekNumber),onClick:this.handleClick},t)}}],[{key:"defaultProps",get:function(){return{ariaLabelPrefix:"week "}}}]),r}(de.default.Component),Br=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"handleDayClick",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r)})),Ct(Zt(e),"handleDayMouseEnter",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),Ct(Zt(e),"handleWeekClick",(function(t,r,n){"function"==typeof e.props.onWeekSelect&&e.props.onWeekSelect(t,r,n),e.props.shouldCloseOnSelect&&e.props.setOpen(!1)})),Ct(Zt(e),"formatWeekNumber",(function(t){return e.props.formatWeekNumber?e.props.formatWeekNumber(t):function(e,t){var r=t&&tr(t)||er()&&tr(er());return Ne.default(e,r?{locale:r}:null)}(t)})),Ct(Zt(e),"renderDays",(function(){var t=Ut(e.props.day,e.props.locale,e.props.calendarStartDay),r=[],n=e.formatWeekNumber(t);if(e.props.showWeekNumber){var a=e.props.onWeekSelect?e.handleWeekClick.bind(Zt(e),t,n):void 0;r.push(de.default.createElement(Fr,{key:"W",weekNumber:n,onClick:a,ariaLabelPrefix:e.props.ariaLabelPrefix}))}return r.concat([0,1,2,3,4,5,6].map((function(r){var n=ye.default(t,r);return de.default.createElement(Ar,{ariaLabelPrefixWhenEnabled:e.props.chooseDayAriaLabelPrefix,ariaLabelPrefixWhenDisabled:e.props.disabledDayAriaLabelPrefix,key:n.valueOf(),day:n,month:e.props.month,onClick:e.handleDayClick.bind(Zt(e),n),onMouseEnter:e.handleDayMouseEnter.bind(Zt(e),n),minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,highlightDates:e.props.highlightDates,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,renderDayContents:e.props.renderDayContents,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart,locale:e.props.locale})})))})),e}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__week"},this.renderDays())}}],[{key:"defaultProps",get:function(){return{shouldCloseOnSelect:!0}}}]),r}(de.default.Component),jr="two_columns",Hr="three_columns",Ur="four_columns",Wr=(Ct(Yr={},jr,{grid:[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]],verticalNavigationOffset:2}),Ct(Yr,Hr,{grid:[[0,1,2],[3,4,5],[6,7,8],[9,10,11]],verticalNavigationOffset:3}),Ct(Yr,Ur,{grid:[[0,1,2,3],[4,5,6,7],[8,9,10,11]],verticalNavigationOffset:4}),Yr);function qr(e,t){return e?Ur:t?jr:Hr}var Qr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"MONTH_REFS",_t(Array(12)).map((function(){return de.default.createRef()}))),Ct(Zt(e),"QUARTER_REFS",_t(Array(4)).map((function(){return de.default.createRef()}))),Ct(Zt(e),"isDisabled",(function(t){return ar(t,e.props)})),Ct(Zt(e),"isExcluded",(function(t){return or(t,e.props)})),Ct(Zt(e),"handleDayClick",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r,e.props.orderInDisplay)})),Ct(Zt(e),"handleDayMouseEnter",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),Ct(Zt(e),"handleMouseLeave",(function(){e.props.onMouseLeave&&e.props.onMouseLeave()})),Ct(Zt(e),"isRangeStartMonth",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&zt(je.default(n,t),a)})),Ct(Zt(e),"isRangeStartQuarter",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Gt(He.default(n,t),a)})),Ct(Zt(e),"isRangeEndMonth",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&zt(je.default(n,t),o)})),Ct(Zt(e),"isRangeEndQuarter",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Gt(He.default(n,t),o)})),Ct(Zt(e),"isInSelectingRangeMonth",(function(t){var r,n=e.props,a=n.day,o=n.selectsStart,i=n.selectsEnd,s=n.selectsRange,u=n.startDate,c=n.endDate,l=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return!(!(o||i||s)||!l)&&(o&&c?sr(l,c,t,a):(i&&u||!(!s||!u||c))&&sr(u,l,t,a))})),Ct(Zt(e),"isSelectingMonthRangeStart",(function(t){var r;if(!e.isInSelectingRangeMonth(t))return!1;var n=e.props,a=n.day,o=n.startDate,i=n.selectsStart,s=je.default(a,t),u=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return zt(s,i?u:o)})),Ct(Zt(e),"isSelectingMonthRangeEnd",(function(t){var r;if(!e.isInSelectingRangeMonth(t))return!1;var n=e.props,a=n.day,o=n.endDate,i=n.selectsEnd,s=n.selectsRange,u=je.default(a,t),c=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return zt(u,i||s?c:o)})),Ct(Zt(e),"isInSelectingRangeQuarter",(function(t){var r,n=e.props,a=n.day,o=n.selectsStart,i=n.selectsEnd,s=n.selectsRange,u=n.startDate,c=n.endDate,l=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return!(!(o||i||s)||!l)&&(o&&c?dr(l,c,t,a):(i&&u||!(!s||!u||c))&&dr(u,l,t,a))})),Ct(Zt(e),"isWeekInMonth",(function(t){var r=e.props.day,n=ye.default(t,6);return zt(t,r)||zt(n,r)})),Ct(Zt(e),"isCurrentMonth",(function(e,t){return Ie.default(e)===Ie.default(At())&&t===Ye.default(At())})),Ct(Zt(e),"isCurrentQuarter",(function(e,t){return Ie.default(e)===Ie.default(At())&&t===Le.default(At())})),Ct(Zt(e),"isSelectedMonth",(function(e,t,r){return Ye.default(r)===t&&Ie.default(e)===Ie.default(r)})),Ct(Zt(e),"isSelectedQuarter",(function(e,t,r){return Le.default(e)===t&&Ie.default(e)===Ie.default(r)})),Ct(Zt(e),"renderWeeks",(function(){for(var t=[],r=e.props.fixedHeight,n=0,a=!1,o=Ut(Wt(e.props.day),e.props.locale,e.props.calendarStartDay);t.push(de.default.createElement(Br,{ariaLabelPrefix:e.props.weekAriaLabelPrefix,chooseDayAriaLabelPrefix:e.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:e.props.disabledDayAriaLabelPrefix,key:n,day:o,month:Ye.default(e.props.day),onDayClick:e.handleDayClick,onDayMouseEnter:e.handleDayMouseEnter,onWeekSelect:e.props.onWeekSelect,formatWeekNumber:e.props.formatWeekNumber,locale:e.props.locale,minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,highlightDates:e.props.highlightDates,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,showWeekNumber:e.props.showWeekNumbers,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,setOpen:e.props.setOpen,shouldCloseOnSelect:e.props.shouldCloseOnSelect,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,renderDayContents:e.props.renderDayContents,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,calendarStartDay:e.props.calendarStartDay,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart})),!a;){n++,o=we.default(o,1);var i=r&&n>=6,s=!r&&!e.isWeekInMonth(o);if(i||s){if(!e.props.peekNextMonth)break;a=!0}}return t})),Ct(Zt(e),"onMonthClick",(function(t,r){e.handleDayClick(Wt(je.default(e.props.day,r)),t)})),Ct(Zt(e),"onMonthMouseEnter",(function(t){e.handleDayMouseEnter(Wt(je.default(e.props.day,t)))})),Ct(Zt(e),"handleMonthNavigation",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),Ct(Zt(e),"onMonthKeyDown",(function(t,r){var n=e.props,a=n.selected,o=n.preSelection,i=n.disabledKeyboardNavigation,s=n.showTwoColumnMonthYearPicker,u=n.showFourColumnMonthYearPicker,c=n.setPreSelection,l=t.key;if("Tab"!==l&&t.preventDefault(),!i){var d=qr(u,s),p=Wr[d].verticalNavigationOffset,f=Wr[d].grid;switch(l){case"Enter":e.onMonthClick(t,r),c(a);break;case"ArrowRight":e.handleMonthNavigation(11===r?0:r+1,be.default(o,1));break;case"ArrowLeft":e.handleMonthNavigation(0===r?11:r-1,Me.default(o,1));break;case"ArrowUp":e.handleMonthNavigation(f[0].includes(r)?r+12-p:r-p,Me.default(o,p));break;case"ArrowDown":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+p:r+p,be.default(o,p))}}})),Ct(Zt(e),"onQuarterClick",(function(t,r){e.handleDayClick(Qt(He.default(e.props.day,r)),t)})),Ct(Zt(e),"onQuarterMouseEnter",(function(t){e.handleDayMouseEnter(Qt(He.default(e.props.day,t)))})),Ct(Zt(e),"handleQuarterNavigation",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),Ct(Zt(e),"onQuarterKeyDown",(function(t,r){var n=t.key;if(!e.props.disabledKeyboardNavigation)switch(n){case"Enter":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case"ArrowRight":e.handleQuarterNavigation(4===r?1:r+1,De.default(e.props.preSelection,1));break;case"ArrowLeft":e.handleQuarterNavigation(1===r?4:r-1,Te.default(e.props.preSelection,1))}})),Ct(Zt(e),"getMonthClassNames",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate,i=r.selected,s=r.minDate,u=r.maxDate,c=r.preSelection,l=r.monthClassName,d=r.excludeDates,p=r.includeDates,f=l?l(je.default(n,t)):void 0,h=je.default(n,t);return pe.default("react-datepicker__month-text","react-datepicker__month-".concat(t),f,{"react-datepicker__month-text--disabled":(s||u||d||p)&&ir(h,e.props),"react-datepicker__month-text--selected":e.isSelectedMonth(n,t,i),"react-datepicker__month-text--keyboard-selected":!e.props.disabledKeyboardNavigation&&Ye.default(c)===t,"react-datepicker__month-text--in-selecting-range":e.isInSelectingRangeMonth(t),"react-datepicker__month-text--in-range":sr(a,o,t,n),"react-datepicker__month-text--range-start":e.isRangeStartMonth(t),"react-datepicker__month-text--range-end":e.isRangeEndMonth(t),"react-datepicker__month-text--selecting-range-start":e.isSelectingMonthRangeStart(t),"react-datepicker__month-text--selecting-range-end":e.isSelectingMonthRangeEnd(t),"react-datepicker__month-text--today":e.isCurrentMonth(n,t)})})),Ct(Zt(e),"getTabIndex",(function(t){var r=Ye.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?"-1":"0"})),Ct(Zt(e),"getQuarterTabIndex",(function(t){var r=Le.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?"-1":"0"})),Ct(Zt(e),"getAriaLabel",(function(t){var r=e.props,n=r.chooseDayAriaLabelPrefix,a=void 0===n?"Choose":n,o=r.disabledDayAriaLabelPrefix,i=void 0===o?"Not available":o,s=r.day,u=je.default(s,t),c=e.isDisabled(u)||e.isExcluded(u)?i:a;return"".concat(c," ").concat(Bt(u,"MMMM yyyy"))})),Ct(Zt(e),"getQuarterClassNames",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate,i=r.selected,s=r.minDate,u=r.maxDate,c=r.preSelection;return pe.default("react-datepicker__quarter-text","react-datepicker__quarter-".concat(t),{"react-datepicker__quarter-text--disabled":(s||u)&&ur(He.default(n,t),e.props),"react-datepicker__quarter-text--selected":e.isSelectedQuarter(n,t,i),"react-datepicker__quarter-text--keyboard-selected":Le.default(c)===t,"react-datepicker__quarter-text--in-selecting-range":e.isInSelectingRangeQuarter(t),"react-datepicker__quarter-text--in-range":dr(a,o,t,n),"react-datepicker__quarter-text--range-start":e.isRangeStartQuarter(t),"react-datepicker__quarter-text--range-end":e.isRangeEndQuarter(t)})})),Ct(Zt(e),"getMonthContent",(function(t){var r=e.props,n=r.showFullMonthYearPicker,a=r.renderMonthContent,o=r.locale,i=nr(t,o),s=rr(t,o);return a?a(t,i,s):n?s:i})),Ct(Zt(e),"getQuarterContent",(function(t){var r=e.props,n=r.renderQuarterContent,a=function(e,t){return Bt(He.default(At(),e),"QQQ",t)}(t,r.locale);return n?n(t,a):a})),Ct(Zt(e),"renderMonths",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,n=t.showFourColumnMonthYearPicker,a=t.day,o=t.selected;return Wr[qr(n,r)].grid.map((function(t,r){return de.default.createElement("div",{className:"react-datepicker__month-wrapper",key:r},t.map((function(t,r){return de.default.createElement("div",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:"option","aria-label":e.getAriaLabel(t),"aria-current":e.isCurrentMonth(a,t)?"date":void 0,"aria-selected":e.isSelectedMonth(a,t,o)},e.getMonthContent(t))})))}))})),Ct(Zt(e),"renderQuarters",(function(){var t=e.props,r=t.day,n=t.selected;return de.default.createElement("div",{className:"react-datepicker__quarter-wrapper"},[1,2,3,4].map((function(t,a){return de.default.createElement("div",{key:a,ref:e.QUARTER_REFS[a],role:"option",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),"aria-selected":e.isSelectedQuarter(r,t,n),tabIndex:e.getQuarterTabIndex(t),"aria-current":e.isCurrentQuarter(r,t)?"date":void 0},e.getQuarterContent(t))})))})),Ct(Zt(e),"getClassNames",(function(){var t=e.props,r=t.selectingDate,n=t.selectsStart,a=t.selectsEnd,o=t.showMonthYearPicker,i=t.showQuarterYearPicker;return pe.default("react-datepicker__month",{"react-datepicker__month--selecting-range":r&&(n||a)},{"react-datepicker__monthPicker":o},{"react-datepicker__quarterPicker":i})})),e}return kt(r,[{key:"render",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,n=e.day,a=e.ariaLabelPrefix,o=void 0===a?"month ":a;return de.default.createElement("div",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,"aria-label":"".concat(o," ").concat(Bt(n,"yyyy-MM")),role:"listbox"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),Kr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{height:null}),Ct(Zt(e),"handleClick",(function(t){(e.props.minTime||e.props.maxTime)&&vr(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&hr(t,e.props)||e.props.onChange(t)})),Ct(Zt(e),"isSelectedTime",(function(t,r,n){return e.props.selected&&r===_e.default(t)&&n===Ee.default(t)})),Ct(Zt(e),"liClasses",(function(t,r,n){var a=["react-datepicker__time-list-item",e.props.timeClassName?e.props.timeClassName(t,r,n):void 0];return e.isSelectedTime(t,r,n)&&a.push("react-datepicker__time-list-item--selected"),((e.props.minTime||e.props.maxTime)&&vr(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&hr(t,e.props))&&a.push("react-datepicker__time-list-item--disabled"),e.props.injectTimes&&(60*_e.default(t)+Ee.default(t))%e.props.intervals!=0&&a.push("react-datepicker__time-list-item--injected"),a.join(" ")})),Ct(Zt(e),"handleOnKeyDown",(function(t,r){" "===t.key&&(t.preventDefault(),t.key="Enter"),"Enter"===t.key&&e.handleClick(r),e.props.handleOnKeyDown(t)})),Ct(Zt(e),"renderTimes",(function(){for(var t,r=[],n=e.props.format?e.props.format:"p",a=e.props.intervals,o=(t=At(e.props.selected),ze.default(t)),i=1440/a,s=e.props.injectTimes&&e.props.injectTimes.sort((function(e,t){return e-t})),u=e.props.selected||e.props.openToDate||At(),c=_e.default(u),l=Ee.default(u),d=Be.default(Fe.default(o,l),c),p=0;p<i;p++){var f=me.default(o,p*a);if(r.push(f),s){var h=Cr(o,f,p,a,s);r=r.concat(h)}}return r.map((function(t,r){return de.default.createElement("li",{key:r,onClick:e.handleClick.bind(Zt(e),t),className:e.liClasses(t,c,l),ref:function(r){(ct.default(t,d)||Jt(t,d))&&(e.centerLi=r)},onKeyDown:function(r){e.handleOnKeyDown(r,t)},tabIndex:"0","aria-selected":e.isSelectedTime(t,c,l)?"true":void 0},Bt(t,n,e.props.locale))}))})),e}return kt(r,[{key:"componentDidMount",value:function(){this.list.scrollTop=this.centerLi&&r.calcCenterPosition(this.props.monthRef?this.props.monthRef.clientHeight-this.header.clientHeight:this.list.clientHeight,this.centerLi),this.props.monthRef&&this.header&&this.setState({height:this.props.monthRef.clientHeight-this.header.clientHeight})}},{key:"render",value:function(){var e=this,t=this.state.height;return de.default.createElement("div",{className:"react-datepicker__time-container ".concat(this.props.todayButton?"react-datepicker__time-container--with-today-button":"")},de.default.createElement("div",{className:"react-datepicker__header react-datepicker__header--time ".concat(this.props.showTimeSelectOnly?"react-datepicker__header--time--only":""),ref:function(t){e.header=t}},de.default.createElement("div",{className:"react-datepicker-time__header"},this.props.timeCaption)),de.default.createElement("div",{className:"react-datepicker__time"},de.default.createElement("div",{className:"react-datepicker__time-box"},de.default.createElement("ul",{className:"react-datepicker__time-list",ref:function(t){e.list=t},style:t?{height:t}:{},tabIndex:"0"},this.renderTimes()))))}}],[{key:"defaultProps",get:function(){return{intervals:30,onTimeChange:function(){},todayButton:null,timeCaption:"Time"}}}]),r}(de.default.Component);Ct(Kr,"calcCenterPosition",(function(e,t){return t.offsetTop-(e/2-t.clientHeight/2)}));var Vr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"YEAR_REFS",_t(Array(n.props.yearItemNumber)).map((function(){return de.default.createRef()}))),Ct(Zt(n),"isDisabled",(function(e){return ar(e,n.props)})),Ct(Zt(n),"isExcluded",(function(e){return or(e,n.props)})),Ct(Zt(n),"selectingDate",(function(){var e;return null!==(e=n.props.selectingDate)&&void 0!==e?e:n.props.preSelection})),Ct(Zt(n),"updateFocusOnPaginate",(function(e){var t=function(){this.YEAR_REFS[e].current.focus()}.bind(Zt(n));window.requestAnimationFrame(t)})),Ct(Zt(n),"handleYearClick",(function(e,t){n.props.onDayClick&&n.props.onDayClick(e,t)})),Ct(Zt(n),"handleYearNavigation",(function(e,t){var r=n.props,a=r.date,o=r.yearItemNumber,i=Mr(a,o).startPeriod;n.isDisabled(t)||n.isExcluded(t)||(n.props.setPreSelection(t),e-i==-1?n.updateFocusOnPaginate(o-1):e-i===o?n.updateFocusOnPaginate(0):n.YEAR_REFS[e-i].current.focus())})),Ct(Zt(n),"isSameDay",(function(e,t){return Xt(e,t)})),Ct(Zt(n),"isCurrentYear",(function(e){return e===Ie.default(At())})),Ct(Zt(n),"isRangeStart",(function(e){return n.props.startDate&&n.props.endDate&&Vt(Ue.default(At(),e),n.props.startDate)})),Ct(Zt(n),"isRangeEnd",(function(e){return n.props.startDate&&n.props.endDate&&Vt(Ue.default(At(),e),n.props.endDate)})),Ct(Zt(n),"isInRange",(function(e){return cr(e,n.props.startDate,n.props.endDate)})),Ct(Zt(n),"isInSelectingRange",(function(e){var t=n.props,r=t.selectsStart,a=t.selectsEnd,o=t.selectsRange,i=t.startDate,s=t.endDate;return!(!(r||a||o)||!n.selectingDate())&&(r&&s?cr(e,n.selectingDate(),s):(a&&i||!(!o||!i||s))&&cr(e,i,n.selectingDate()))})),Ct(Zt(n),"isSelectingRangeStart",(function(e){if(!n.isInSelectingRange(e))return!1;var t=n.props,r=t.startDate,a=t.selectsStart;return Vt(Ue.default(At(),e),a?n.selectingDate():r)})),Ct(Zt(n),"isSelectingRangeEnd",(function(e){if(!n.isInSelectingRange(e))return!1;var t=n.props,r=t.endDate,a=t.selectsEnd,o=t.selectsRange;return Vt(Ue.default(At(),e),a||o?n.selectingDate():r)})),Ct(Zt(n),"isKeyboardSelected",(function(e){var t=qt(Ue.default(n.props.date,e));return!n.props.disabledKeyboardNavigation&&!n.props.inline&&!Xt(t,qt(n.props.selected))&&Xt(t,qt(n.props.preSelection))})),Ct(Zt(n),"onYearClick",(function(e,t){var r=n.props.date;n.handleYearClick(qt(Ue.default(r,t)),e)})),Ct(Zt(n),"onYearKeyDown",(function(e,t){var r=e.key;if(!n.props.disabledKeyboardNavigation)switch(r){case"Enter":n.onYearClick(e,t),n.props.setPreSelection(n.props.selected);break;case"ArrowRight":n.handleYearNavigation(t+1,ke.default(n.props.preSelection,1));break;case"ArrowLeft":n.handleYearNavigation(t-1,xe.default(n.props.preSelection,1))}})),Ct(Zt(n),"getYearClassNames",(function(e){var t=n.props,r=t.minDate,a=t.maxDate,o=t.selected,i=t.excludeDates,s=t.includeDates,u=t.filterDate;return pe.default("react-datepicker__year-text",{"react-datepicker__year-text--selected":e===Ie.default(o),"react-datepicker__year-text--disabled":(r||a||i||s||u)&&lr(e,n.props),"react-datepicker__year-text--keyboard-selected":n.isKeyboardSelected(e),"react-datepicker__year-text--range-start":n.isRangeStart(e),"react-datepicker__year-text--range-end":n.isRangeEnd(e),"react-datepicker__year-text--in-range":n.isInRange(e),"react-datepicker__year-text--in-selecting-range":n.isInSelectingRange(e),"react-datepicker__year-text--selecting-range-start":n.isSelectingRangeStart(e),"react-datepicker__year-text--selecting-range-end":n.isSelectingRangeEnd(e),"react-datepicker__year-text--today":n.isCurrentYear(e)})})),Ct(Zt(n),"getYearTabIndex",(function(e){return n.props.disabledKeyboardNavigation?"-1":e===Ie.default(n.props.preSelection)?"0":"-1"})),Ct(Zt(n),"getYearContainerClassNames",(function(){var e=n.props,t=e.selectingDate,r=e.selectsStart,a=e.selectsEnd,o=e.selectsRange;return pe.default("react-datepicker__year",{"react-datepicker__year--selecting-range":t&&(r||a||o)})})),Ct(Zt(n),"getYearContent",(function(e){return n.props.renderYearContent?n.props.renderYearContent(e):e})),n}return kt(r,[{key:"render",value:function(){for(var e=this,t=[],r=this.props,n=r.date,a=r.yearItemNumber,o=r.onYearMouseEnter,i=r.onYearMouseLeave,s=Mr(n,a),u=s.startPeriod,c=s.endPeriod,l=function(r){t.push(de.default.createElement("div",{ref:e.YEAR_REFS[r-u],onClick:function(t){e.onYearClick(t,r)},onKeyDown:function(t){e.onYearKeyDown(t,r)},tabIndex:e.getYearTabIndex(r),className:e.getYearClassNames(r),onMouseEnter:function(e){return o(e,r)},onMouseLeave:function(e){return i(e,r)},key:r,"aria-current":e.isCurrentYear(r)?"date":void 0},e.getYearContent(r)))},d=u;d<=c;d++)l(d);return de.default.createElement("div",{className:this.getYearContainerClassNames()},de.default.createElement("div",{className:"react-datepicker__year-wrapper",onMouseLeave:this.props.clearSelectingDate},t))}}]),r}(de.default.Component),zr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"onTimeChange",(function(e){n.setState({time:e});var t=new Date;t.setHours(e.split(":")[0]),t.setMinutes(e.split(":")[1]),n.props.onChange(t)})),Ct(Zt(n),"renderTimeInput",(function(){var e=n.state.time,t=n.props,r=t.date,a=t.timeString,o=t.customTimeInput;return o?de.default.cloneElement(o,{date:r,value:e,onChange:n.onTimeChange}):de.default.createElement("input",{type:"time",className:"react-datepicker-time__input",placeholder:"Time",name:"time-input",required:!0,value:e,onChange:function(e){n.onTimeChange(e.target.value||a)}})})),n.state={time:n.props.timeString},n}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__input-time-container"},de.default.createElement("div",{className:"react-datepicker-time__caption"},this.props.timeInputLabel),de.default.createElement("div",{className:"react-datepicker-time__input-container"},de.default.createElement("div",{className:"react-datepicker-time__input"},this.renderTimeInput())))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.timeString!==t.time?{time:e.timeString}:null}}]),r}(de.default.Component);function Gr(e){var t=e.className,r=e.children,n=e.showPopperArrow,a=e.arrowProps,o=void 0===a?{}:a;return de.default.createElement("div",{className:t},n&&de.default.createElement("div",St({className:"react-datepicker__triangle"},o)),r)}var Xr=["react-datepicker__year-select","react-datepicker__month-select","react-datepicker__month-year-select"],Jr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"handleClickOutside",(function(e){n.props.onClickOutside(e)})),Ct(Zt(n),"setClickOutsideRef",(function(){return n.containerRef.current})),Ct(Zt(n),"handleDropdownFocus",(function(e){(function(){var e=((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).className||"").split(/\s+/);return Xr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&n.props.onDropdownFocus()})),Ct(Zt(n),"getDateInView",(function(){var e=n.props,t=e.preSelection,r=e.selected,a=e.openToDate,o=br(n.props),i=Dr(n.props),s=At();return a||r||t||(o&&ct.default(s,o)?o:i&&ut.default(s,i)?i:s)})),Ct(Zt(n),"increaseMonth",(function(){n.setState((function(e){var t=e.date;return{date:be.default(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Ct(Zt(n),"decreaseMonth",(function(){n.setState((function(e){var t=e.date;return{date:Me.default(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Ct(Zt(n),"handleDayClick",(function(e,t,r){n.props.onSelect(e,t,r),n.props.setPreSelection&&n.props.setPreSelection(e)})),Ct(Zt(n),"handleDayMouseEnter",(function(e){n.setState({selectingDate:e}),n.props.onDayMouseEnter&&n.props.onDayMouseEnter(e)})),Ct(Zt(n),"handleMonthMouseLeave",(function(){n.setState({selectingDate:null}),n.props.onMonthMouseLeave&&n.props.onMonthMouseLeave()})),Ct(Zt(n),"handleYearMouseEnter",(function(e,t){n.setState({selectingDate:Ue.default(At(),t)}),n.props.onYearMouseEnter&&n.props.onYearMouseEnter(e,t)})),Ct(Zt(n),"handleYearMouseLeave",(function(e,t){n.props.onYearMouseLeave&&n.props.onYearMouseLeave(e,t)})),Ct(Zt(n),"handleYearChange",(function(e){n.props.onYearChange&&(n.props.onYearChange(e),n.setState({isRenderAriaLiveMessage:!0})),n.props.adjustDateOnChange&&(n.props.onSelect&&n.props.onSelect(e),n.props.setOpen&&n.props.setOpen(!0)),n.props.setPreSelection&&n.props.setPreSelection(e)})),Ct(Zt(n),"handleMonthChange",(function(e){n.handleCustomMonthChange(e),n.props.adjustDateOnChange&&(n.props.onSelect&&n.props.onSelect(e),n.props.setOpen&&n.props.setOpen(!0)),n.props.setPreSelection&&n.props.setPreSelection(e)})),Ct(Zt(n),"handleCustomMonthChange",(function(e){n.props.onMonthChange&&(n.props.onMonthChange(e),n.setState({isRenderAriaLiveMessage:!0}))})),Ct(Zt(n),"handleMonthYearChange",(function(e){n.handleYearChange(e),n.handleMonthChange(e)})),Ct(Zt(n),"changeYear",(function(e){n.setState((function(t){var r=t.date;return{date:Ue.default(r,e)}}),(function(){return n.handleYearChange(n.state.date)}))})),Ct(Zt(n),"changeMonth",(function(e){n.setState((function(t){var r=t.date;return{date:je.default(r,e)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Ct(Zt(n),"changeMonthYear",(function(e){n.setState((function(t){var r=t.date;return{date:Ue.default(je.default(r,Ye.default(e)),Ie.default(e))}}),(function(){return n.handleMonthYearChange(n.state.date)}))})),Ct(Zt(n),"header",(function(){var e=Ut(arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,n.props.locale,n.props.calendarStartDay),t=[];return n.props.showWeekNumbers&&t.push(de.default.createElement("div",{key:"W",className:"react-datepicker__day-name"},n.props.weekLabel||"#")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=ye.default(e,t),a=n.formatWeekday(r,n.props.locale),o=n.props.weekDayClassName?n.props.weekDayClassName(r):void 0;return de.default.createElement("div",{key:t,className:pe.default("react-datepicker__day-name",o)},a)})))})),Ct(Zt(n),"formatWeekday",(function(e,t){return n.props.formatWeekDay?function(e,t,r){return t(Bt(e,"EEEE",r))}(e,n.props.formatWeekDay,t):n.props.useWeekdaysShort?function(e,t){return Bt(e,"EEE",t)}(e,t):function(e,t){return Bt(e,"EEEEEE",t)}(e,t)})),Ct(Zt(n),"decreaseYear",(function(){n.setState((function(e){var t=e.date;return{date:xe.default(t,n.props.showYearPicker?n.props.yearItemNumber:1)}}),(function(){return n.handleYearChange(n.state.date)}))})),Ct(Zt(n),"clearSelectingDate",(function(){n.setState({selectingDate:null})})),Ct(Zt(n),"renderPreviousButton",(function(){if(!n.props.renderCustomHeader){var e;switch(!0){case n.props.showMonthYearPicker:e=yr(n.state.date,n.props);break;case n.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.yearItemNumber,a=void 0===n?It:n,o=Mr(qt(xe.default(e,a)),a).endPeriod,i=r&&Ie.default(r);return i&&i>o||!1}(n.state.date,n.props);break;default:e=mr(n.state.date,n.props)}if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var t=["react-datepicker__navigation","react-datepicker__navigation--previous"],r=n.decreaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker)&&(r=n.decreaseYear),e&&n.props.showDisabledMonthNavigation&&(t.push("react-datepicker__navigation--previous--disabled"),r=null);var a=n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker,o=n.props,i=o.previousMonthButtonLabel,s=o.previousYearButtonLabel,u=n.props,c=u.previousMonthAriaLabel,l=void 0===c?"string"==typeof i?i:"Previous Month":c,d=u.previousYearAriaLabel,p=void 0===d?"string"==typeof s?s:"Previous Year":d;return de.default.createElement("button",{type:"button",className:t.join(" "),onClick:r,onKeyDown:n.props.handleOnKeyDown,"aria-label":a?p:l},de.default.createElement("span",{className:["react-datepicker__navigation-icon","react-datepicker__navigation-icon--previous"].join(" ")},a?n.props.previousYearButtonLabel:n.props.previousMonthButtonLabel))}}})),Ct(Zt(n),"increaseYear",(function(){n.setState((function(e){var t=e.date;return{date:ke.default(t,n.props.showYearPicker?n.props.yearItemNumber:1)}}),(function(){return n.handleYearChange(n.state.date)}))})),Ct(Zt(n),"renderNextButton",(function(){if(!n.props.renderCustomHeader){var e;switch(!0){case n.props.showMonthYearPicker:e=wr(n.state.date,n.props);break;case n.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.yearItemNumber,a=void 0===n?It:n,o=Mr(ke.default(e,a),a).startPeriod,i=r&&Ie.default(r);return i&&i<o||!1}(n.state.date,n.props);break;default:e=gr(n.state.date,n.props)}if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var t=["react-datepicker__navigation","react-datepicker__navigation--next"];n.props.showTimeSelect&&t.push("react-datepicker__navigation--next--with-time"),n.props.todayButton&&t.push("react-datepicker__navigation--next--with-today-button");var r=n.increaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker)&&(r=n.increaseYear),e&&n.props.showDisabledMonthNavigation&&(t.push("react-datepicker__navigation--next--disabled"),r=null);var a=n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker,o=n.props,i=o.nextMonthButtonLabel,s=o.nextYearButtonLabel,u=n.props,c=u.nextMonthAriaLabel,l=void 0===c?"string"==typeof i?i:"Next Month":c,d=u.nextYearAriaLabel,p=void 0===d?"string"==typeof s?s:"Next Year":d;return de.default.createElement("button",{type:"button",className:t.join(" "),onClick:r,onKeyDown:n.props.handleOnKeyDown,"aria-label":a?p:l},de.default.createElement("span",{className:["react-datepicker__navigation-icon","react-datepicker__navigation-icon--next"].join(" ")},a?n.props.nextYearButtonLabel:n.props.nextMonthButtonLabel))}}})),Ct(Zt(n),"renderCurrentMonth",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,t=["react-datepicker__current-month"];return n.props.showYearDropdown&&t.push("react-datepicker__current-month--hasYearDropdown"),n.props.showMonthDropdown&&t.push("react-datepicker__current-month--hasMonthDropdown"),n.props.showMonthYearDropdown&&t.push("react-datepicker__current-month--hasMonthYearDropdown"),de.default.createElement("div",{className:t.join(" ")},Bt(e,n.props.dateFormat,n.props.locale))})),Ct(Zt(n),"renderYearDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showYearDropdown&&!e)return de.default.createElement(Er,{adjustDateOnChange:n.props.adjustDateOnChange,date:n.state.date,onSelect:n.props.onSelect,setOpen:n.props.setOpen,dropdownMode:n.props.dropdownMode,onChange:n.changeYear,minDate:n.props.minDate,maxDate:n.props.maxDate,year:Ie.default(n.state.date),scrollableYearDropdown:n.props.scrollableYearDropdown,yearDropdownItemNumber:n.props.yearDropdownItemNumber})})),Ct(Zt(n),"renderMonthDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthDropdown&&!e)return de.default.createElement(Or,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,onChange:n.changeMonth,month:Ye.default(n.state.date),useShortMonthInDropdown:n.props.useShortMonthInDropdown})})),Ct(Zt(n),"renderMonthYearDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthYearDropdown&&!e)return de.default.createElement(Rr,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,dateFormat:n.props.dateFormat,onChange:n.changeMonthYear,minDate:n.props.minDate,maxDate:n.props.maxDate,date:n.state.date,scrollableMonthYearDropdown:n.props.scrollableMonthYearDropdown})})),Ct(Zt(n),"handleTodayButtonClick",(function(e){n.props.onSelect(Kt(),e),n.props.setPreSelection&&n.props.setPreSelection(Kt())})),Ct(Zt(n),"renderTodayButton",(function(){if(n.props.todayButton&&!n.props.showTimeSelectOnly)return de.default.createElement("div",{className:"react-datepicker__today-button",onClick:function(e){return n.handleTodayButtonClick(e)}},n.props.todayButton)})),Ct(Zt(n),"renderDefaultHeader",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement("div",{className:"react-datepicker__header ".concat(n.props.showTimeSelect?"react-datepicker__header--has-time-select":"")},n.renderCurrentMonth(t),de.default.createElement("div",{className:"react-datepicker__header__dropdown react-datepicker__header__dropdown--".concat(n.props.dropdownMode),onFocus:n.handleDropdownFocus},n.renderMonthDropdown(0!==r),n.renderMonthYearDropdown(0!==r),n.renderYearDropdown(0!==r)),de.default.createElement("div",{className:"react-datepicker__day-names"},n.header(t)))})),Ct(Zt(n),"renderCustomHeader",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(n.props.showTimeSelect&&!n.state.monthContainer||n.props.showTimeSelectOnly)return null;var a=mr(n.state.date,n.props),o=gr(n.state.date,n.props),i=yr(n.state.date,n.props),s=wr(n.state.date,n.props),u=!n.props.showMonthYearPicker&&!n.props.showQuarterYearPicker&&!n.props.showYearPicker;return de.default.createElement("div",{className:"react-datepicker__header react-datepicker__header--custom",onFocus:n.props.onDropdownFocus},n.props.renderCustomHeader(yt(yt({},n.state),{},{customHeaderCount:r,monthDate:t,changeMonth:n.changeMonth,changeYear:n.changeYear,decreaseMonth:n.decreaseMonth,increaseMonth:n.increaseMonth,decreaseYear:n.decreaseYear,increaseYear:n.increaseYear,prevMonthButtonDisabled:a,nextMonthButtonDisabled:o,prevYearButtonDisabled:i,nextYearButtonDisabled:s})),u&&de.default.createElement("div",{className:"react-datepicker__day-names"},n.header(t)))})),Ct(Zt(n),"renderYearHeader",(function(){var e=n.state.date,t=n.props,r=t.showYearPicker,a=Mr(e,t.yearItemNumber),o=a.startPeriod,i=a.endPeriod;return de.default.createElement("div",{className:"react-datepicker__header react-datepicker-year-header"},r?"".concat(o," - ").concat(i):Ie.default(e))})),Ct(Zt(n),"renderHeader",(function(e){switch(!0){case void 0!==n.props.renderCustomHeader:return n.renderCustomHeader(e);case n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker:return n.renderYearHeader(e);default:return n.renderDefaultHeader(e)}})),Ct(Zt(n),"renderMonths",(function(){if(!n.props.showTimeSelectOnly&&!n.props.showYearPicker){for(var e=[],t=n.props.showPreviousMonths?n.props.monthsShown-1:0,r=Me.default(n.state.date,t),a=0;a<n.props.monthsShown;++a){var o=a-n.props.monthSelectedIn,i=be.default(r,o),s="month-".concat(a),u=a<n.props.monthsShown-1,c=a>0;e.push(de.default.createElement("div",{key:s,ref:function(e){n.monthContainer=e},className:"react-datepicker__month-container"},n.renderHeader({monthDate:i,i:a}),de.default.createElement(Qr,{chooseDayAriaLabelPrefix:n.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:n.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:n.props.weekAriaLabelPrefix,ariaLabelPrefix:n.props.monthAriaLabelPrefix,onChange:n.changeMonthYear,day:i,dayClassName:n.props.dayClassName,calendarStartDay:n.props.calendarStartDay,monthClassName:n.props.monthClassName,onDayClick:n.handleDayClick,handleOnKeyDown:n.props.handleOnDayKeyDown,onDayMouseEnter:n.handleDayMouseEnter,onMouseLeave:n.handleMonthMouseLeave,onWeekSelect:n.props.onWeekSelect,orderInDisplay:a,formatWeekNumber:n.props.formatWeekNumber,locale:n.props.locale,minDate:n.props.minDate,maxDate:n.props.maxDate,excludeDates:n.props.excludeDates,excludeDateIntervals:n.props.excludeDateIntervals,highlightDates:n.props.highlightDates,selectingDate:n.state.selectingDate,includeDates:n.props.includeDates,includeDateIntervals:n.props.includeDateIntervals,inline:n.props.inline,shouldFocusDayInline:n.props.shouldFocusDayInline,fixedHeight:n.props.fixedHeight,filterDate:n.props.filterDate,preSelection:n.props.preSelection,setPreSelection:n.props.setPreSelection,selected:n.props.selected,selectsStart:n.props.selectsStart,selectsEnd:n.props.selectsEnd,selectsRange:n.props.selectsRange,selectsDisabledDaysInRange:n.props.selectsDisabledDaysInRange,showWeekNumbers:n.props.showWeekNumbers,startDate:n.props.startDate,endDate:n.props.endDate,peekNextMonth:n.props.peekNextMonth,setOpen:n.props.setOpen,shouldCloseOnSelect:n.props.shouldCloseOnSelect,renderDayContents:n.props.renderDayContents,renderMonthContent:n.props.renderMonthContent,renderQuarterContent:n.props.renderQuarterContent,renderYearContent:n.props.renderYearContent,disabledKeyboardNavigation:n.props.disabledKeyboardNavigation,showMonthYearPicker:n.props.showMonthYearPicker,showFullMonthYearPicker:n.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:n.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:n.props.showFourColumnMonthYearPicker,showYearPicker:n.props.showYearPicker,showQuarterYearPicker:n.props.showQuarterYearPicker,isInputFocused:n.props.isInputFocused,containerRef:n.containerRef,monthShowsDuplicateDaysEnd:u,monthShowsDuplicateDaysStart:c})))}return e}})),Ct(Zt(n),"renderYears",(function(){if(!n.props.showTimeSelectOnly)return n.props.showYearPicker?de.default.createElement("div",{className:"react-datepicker__year--container"},n.renderHeader(),de.default.createElement(Vr,St({onDayClick:n.handleDayClick,selectingDate:n.state.selectingDate,clearSelectingDate:n.clearSelectingDate,date:n.state.date},n.props,{onYearMouseEnter:n.handleYearMouseEnter,onYearMouseLeave:n.handleYearMouseLeave}))):void 0})),Ct(Zt(n),"renderTimeSection",(function(){if(n.props.showTimeSelect&&(n.state.monthContainer||n.props.showTimeSelectOnly))return de.default.createElement(Kr,{selected:n.props.selected,openToDate:n.props.openToDate,onChange:n.props.onTimeChange,timeClassName:n.props.timeClassName,format:n.props.timeFormat,includeTimes:n.props.includeTimes,intervals:n.props.timeIntervals,minTime:n.props.minTime,maxTime:n.props.maxTime,excludeTimes:n.props.excludeTimes,filterTime:n.props.filterTime,timeCaption:n.props.timeCaption,todayButton:n.props.todayButton,showMonthDropdown:n.props.showMonthDropdown,showMonthYearDropdown:n.props.showMonthYearDropdown,showYearDropdown:n.props.showYearDropdown,withPortal:n.props.withPortal,monthRef:n.state.monthContainer,injectTimes:n.props.injectTimes,locale:n.props.locale,handleOnKeyDown:n.props.handleOnKeyDown,showTimeSelectOnly:n.props.showTimeSelectOnly})})),Ct(Zt(n),"renderInputTimeSection",(function(){var e=new Date(n.props.selected),t=Ft(e)&&Boolean(n.props.selected)?"".concat(Sr(e.getHours()),":").concat(Sr(e.getMinutes())):"";if(n.props.showTimeInput)return de.default.createElement(zr,{date:e,timeString:t,timeInputLabel:n.props.timeInputLabel,onChange:n.props.onTimeChange,customTimeInput:n.props.customTimeInput})})),Ct(Zt(n),"renderAriaLiveRegion",(function(){var e,t=Mr(n.state.date,n.props.yearItemNumber),r=t.startPeriod,a=t.endPeriod;return e=n.props.showYearPicker?"".concat(r," - ").concat(a):n.props.showMonthYearPicker||n.props.showQuarterYearPicker?Ie.default(n.state.date):"".concat(rr(Ye.default(n.state.date),n.props.locale)," ").concat(Ie.default(n.state.date)),de.default.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},n.state.isRenderAriaLiveMessage&&e)})),Ct(Zt(n),"renderChildren",(function(){if(n.props.children)return de.default.createElement("div",{className:"react-datepicker__children-container"},n.props.children)})),n.containerRef=de.default.createRef(),n.state={date:n.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},n}return kt(r,[{key:"componentDidMount",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:"componentDidUpdate",value:function(e){var t=this;if(!this.props.preSelection||Xt(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!Xt(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!zt(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:"render",value:function(){var e=this.props.container||Gr;return de.default.createElement("div",{ref:this.containerRef},de.default.createElement(e,{className:pe.default("react-datepicker",this.props.className,{"react-datepicker--time-only":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:"defaultProps",get:function(){return{onDropdownFocus:function(){},monthsShown:1,monthSelectedIn:0,forceShowMonthNavigation:!1,timeCaption:"Time",previousYearButtonLabel:"Previous Year",nextYearButtonLabel:"Next Year",previousMonthButtonLabel:"Previous Month",nextMonthButtonLabel:"Next Month",customTimeInput:null,yearItemNumber:It}}}]),r}(de.default.Component),$r=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),(n=t.call(this,e)).el=document.createElement("div"),n}return kt(r,[{key:"componentDidMount",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement("div"),this.portalRoot.setAttribute("id",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:"componentWillUnmount",value:function(){this.portalRoot.removeChild(this.el)}},{key:"render",value:function(){return vt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),en=function(e){return!e.disabled&&-1!==e.tabIndex},tn=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"getTabChildren",(function(){return Array.prototype.slice.call(n.tabLoopRef.current.querySelectorAll("[tabindex], a, button, input, select, textarea"),1,-1).filter(en)})),Ct(Zt(n),"handleFocusStart",(function(){var e=n.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),Ct(Zt(n),"handleFocusEnd",(function(){var e=n.getTabChildren();e&&e.length>1&&e[0].focus()})),n.tabLoopRef=de.default.createRef(),n}return kt(r,[{key:"render",value:function(){return this.props.enableTabLoop?de.default.createElement("div",{className:"react-datepicker__tab-loop",ref:this.tabLoopRef},de.default.createElement("div",{className:"react-datepicker__tab-loop__start",tabIndex:"0",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement("div",{className:"react-datepicker__tab-loop__end",tabIndex:"0",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:"defaultProps",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),rn=function(e){Mt(r,e);var t=Et(r);function r(){return bt(this,r),t.apply(this,arguments)}return kt(r,[{key:"render",value:function(){var e,t=this.props,r=t.className,n=t.wrapperClassName,a=t.hidePopper,o=t.popperComponent,i=t.popperModifiers,s=t.popperPlacement,u=t.popperProps,c=t.targetComponent,l=t.enableTabLoop,d=t.popperOnKeyDown,p=t.portalId,f=t.portalHost;if(!a){var h=pe.default("react-datepicker-popper",r);e=de.default.createElement(ue.Popper,St({modifiers:i,placement:s},u),(function(e){var t=e.ref,r=e.style,n=e.placement,a=e.arrowProps;return de.default.createElement(tn,{enableTabLoop:l},de.default.createElement("div",{ref:t,style:r,className:h,"data-placement":n,onKeyDown:d},de.default.cloneElement(o,{arrowProps:a})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),p&&!a&&(e=de.default.createElement($r,{portalId:p,portalHost:f},e));var v=pe.default("react-datepicker-wrapper",n);return de.default.createElement(ue.Manager,{className:"react-datepicker-manager"},de.default.createElement(ue.Reference,null,(function(e){var t=e.ref;return de.default.createElement("div",{ref:t,className:v},c)})),e)}}],[{key:"defaultProps",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:"bottom-start"}}}]),r}(de.default.Component),nn="react-datepicker-ignore-onclickoutside",an=ht.default(Jr),on="Date input not valid.",sn=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"getPreSelection",(function(){return n.props.openToDate?n.props.openToDate:n.props.selectsEnd&&n.props.startDate?n.props.startDate:n.props.selectsStart&&n.props.endDate?n.props.endDate:At()})),Ct(Zt(n),"calcInitialState",(function(){var e,t=n.getPreSelection(),r=br(n.props),a=Dr(n.props),o=r&&ct.default(t,ze.default(r))?r:a&&ut.default(t,et.default(a))?a:t;return{open:n.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=n.props.selectsRange?n.props.startDate:n.props.selected)&&void 0!==e?e:o,highlightDates:kr(n.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),Ct(Zt(n),"clearPreventFocusTimeout",(function(){n.preventFocusTimeout&&clearTimeout(n.preventFocusTimeout)})),Ct(Zt(n),"setFocus",(function(){n.input&&n.input.focus&&n.input.focus({preventScroll:!0})})),Ct(Zt(n),"setBlur",(function(){n.input&&n.input.blur&&n.input.blur(),n.cancelFocusInput()})),Ct(Zt(n),"setOpen",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n.setState({open:e,preSelection:e&&n.state.open?n.state.preSelection:n.calcInitialState().preSelection,lastPreSelectChange:cn},(function(){e||n.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&n.setBlur(),n.setState({inputValue:null})}))}))})),Ct(Zt(n),"inputOk",(function(){return fe.default(n.state.preSelection)})),Ct(Zt(n),"isCalendarOpen",(function(){return void 0===n.props.open?n.state.open&&!n.props.disabled&&!n.props.readOnly:n.props.open})),Ct(Zt(n),"handleFocus",(function(e){n.state.preventFocus||(n.props.onFocus(e),n.props.preventOpenOnFocus||n.props.readOnly||n.setOpen(!0)),n.setState({focused:!0})})),Ct(Zt(n),"cancelFocusInput",(function(){clearTimeout(n.inputFocusTimeout),n.inputFocusTimeout=null})),Ct(Zt(n),"deferFocusInput",(function(){n.cancelFocusInput(),n.inputFocusTimeout=setTimeout((function(){return n.setFocus()}),1)})),Ct(Zt(n),"handleDropdownFocus",(function(){n.cancelFocusInput()})),Ct(Zt(n),"handleBlur",(function(e){(!n.state.open||n.props.withPortal||n.props.showTimeInput)&&n.props.onBlur(e),n.setState({focused:!1})})),Ct(Zt(n),"handleCalendarClickOutside",(function(e){n.props.inline||n.setOpen(!1),n.props.onClickOutside(e),n.props.withPortal&&e.preventDefault()})),Ct(Zt(n),"handleChange",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var a=t[0];if(!n.props.onChangeRaw||(n.props.onChangeRaw.apply(Zt(n),t),"function"==typeof a.isDefaultPrevented&&!a.isDefaultPrevented())){n.setState({inputValue:a.target.value,lastPreSelectChange:un});var o,i,s,u,c,l,d,p,f=(o=a.target.value,i=n.props.dateFormat,s=n.props.locale,u=n.props.strictParsing,c=n.props.minDate,l=null,d=tr(s)||tr(er()),p=!0,Array.isArray(i)?(i.forEach((function(e){var t=pt.default(o,e,new Date,{locale:d});u&&(p=Ft(t,c)&&o===Bt(t,e,s)),Ft(t,c)&&p&&(l=t)})),l):(l=pt.default(o,i,new Date,{locale:d}),u?p=Ft(l)&&o===Bt(l,i,s):Ft(l)||(i=i.match(Rt).map((function(e){var t=e[0];return"p"===t||"P"===t?d?(0,Lt[t])(e,d.formatLong):t:e})).join(""),o.length>0&&(l=pt.default(o,i.slice(0,o.length),new Date)),Ft(l)||(l=new Date(o))),Ft(l)&&p?l:null));n.props.showTimeSelectOnly&&n.props.selected&&!Xt(f,n.props.selected)&&(f=null==f?mt.default(n.props.selected,{hours:_e.default(n.props.selected),minutes:Ee.default(n.props.selected),seconds:Ze.default(n.props.selected)}):mt.default(n.props.selected,{hours:_e.default(f),minutes:Ee.default(f),seconds:Ze.default(f)})),!f&&a.target.value||n.setSelected(f,a,!0)}})),Ct(Zt(n),"handleSelect",(function(e,t,r){if(n.setState({preventFocus:!0},(function(){return n.preventFocusTimeout=setTimeout((function(){return n.setState({preventFocus:!1})}),50),n.preventFocusTimeout})),n.props.onChangeRaw&&n.props.onChangeRaw(t),n.setSelected(e,t,!1,r),n.props.showDateSelect&&n.setState({isRenderAriaLiveMessage:!0}),!n.props.shouldCloseOnSelect||n.props.showTimeSelect)n.setPreSelection(e);else if(!n.props.inline){n.props.selectsRange||n.setOpen(!1);var a=n.props,o=a.startDate,i=a.endDate;!o||i||ct.default(e,o)||n.setOpen(!1)}})),Ct(Zt(n),"setSelected",(function(e,t,r,a){var o=e;if(n.props.showYearPicker){if(null!==o&&lr(Ie.default(o),n.props))return}else if(n.props.showMonthYearPicker){if(null!==o&&ir(o,n.props))return}else if(null!==o&&ar(o,n.props))return;var i=n.props,s=i.onChange,u=i.selectsRange,c=i.startDate,l=i.endDate;if(!Jt(n.props.selected,o)||n.props.allowSameDay||u)if(null!==o&&(!n.props.selected||r&&(n.props.showTimeSelect||n.props.showTimeSelectOnly||n.props.showTimeInput)||(o=Ht(o,{hour:_e.default(n.props.selected),minute:Ee.default(n.props.selected),second:Ze.default(n.props.selected)})),n.props.inline||n.setState({preSelection:o}),n.props.focusSelectedMonth||n.setState({monthSelectedIn:a})),u){var d=c&&l;c||l?c&&!l&&(ct.default(o,c)?s([o,null],t):s([c,o],t)):s([o,null],t),d&&s([o,null],t)}else s(o,t);r||(n.props.onSelect(o,t),n.setState({inputValue:null}))})),Ct(Zt(n),"setPreSelection",(function(e){var t=void 0!==n.props.minDate,r=void 0!==n.props.maxDate,a=!0;if(e){var o=ze.default(e);if(t&&r)a=$t(e,n.props.minDate,n.props.maxDate);else if(t){var i=ze.default(n.props.minDate);a=ut.default(e,i)||Jt(o,i)}else if(r){var s=et.default(n.props.maxDate);a=ct.default(e,s)||Jt(o,s)}}a&&n.setState({preSelection:e})})),Ct(Zt(n),"handleTimeChange",(function(e){var t=Ht(n.props.selected?n.props.selected:n.getPreSelection(),{hour:_e.default(e),minute:Ee.default(e)});n.setState({preSelection:t}),n.props.onChange(t),n.props.shouldCloseOnSelect&&n.setOpen(!1),n.props.showTimeInput&&n.setOpen(!0),(n.props.showTimeSelectOnly||n.props.showTimeSelect)&&n.setState({isRenderAriaLiveMessage:!0}),n.setState({inputValue:null})})),Ct(Zt(n),"onInputClick",(function(){n.props.disabled||n.props.readOnly||n.setOpen(!0),n.props.onInputClick()})),Ct(Zt(n),"onInputKeyDown",(function(e){n.props.onKeyDown(e);var t=e.key;if(n.state.open||n.props.inline||n.props.preventOpenOnFocus){if(n.state.open){if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault();var r=n.calendar.componentNode&&n.calendar.componentNode.querySelector('.react-datepicker__day[tabindex="0"]');return void(r&&r.focus({preventScroll:!0}))}var a=At(n.state.preSelection);"Enter"===t?(e.preventDefault(),n.inputOk()&&n.state.lastPreSelectChange===cn?(n.handleSelect(a,e),!n.props.shouldCloseOnSelect&&n.setPreSelection(a)):n.setOpen(!1)):"Escape"===t?(e.preventDefault(),n.setOpen(!1)):"Tab"===t&&e.shiftKey&&n.setOpen(!1),n.inputOk()||n.props.onInputError({code:1,msg:on})}}else"ArrowDown"!==t&&"ArrowUp"!==t&&"Enter"!==t||n.onInputClick()})),Ct(Zt(n),"onPortalKeyDown",(function(e){"Escape"===e.key&&(e.preventDefault(),n.setState({preventFocus:!0},(function(){n.setOpen(!1),setTimeout((function(){n.setFocus(),n.setState({preventFocus:!1})}))})))})),Ct(Zt(n),"onDayKeyDown",(function(e){n.props.onKeyDown(e);var t=e.key,r=At(n.state.preSelection);if("Enter"===t)e.preventDefault(),n.handleSelect(r,e),!n.props.shouldCloseOnSelect&&n.setPreSelection(r);else if("Escape"===t)e.preventDefault(),n.setOpen(!1),n.inputOk()||n.props.onInputError({code:1,msg:on});else if(!n.props.disabledKeyboardNavigation){var a;switch(t){case"ArrowLeft":a=Ce.default(r,1);break;case"ArrowRight":a=ye.default(r,1);break;case"ArrowUp":a=Se.default(r,1);break;case"ArrowDown":a=we.default(r,1);break;case"PageUp":a=Me.default(r,1);break;case"PageDown":a=be.default(r,1);break;case"Home":a=xe.default(r,1);break;case"End":a=ke.default(r,1)}if(!a)return void(n.props.onInputError&&n.props.onInputError({code:1,msg:on}));if(e.preventDefault(),n.setState({lastPreSelectChange:cn}),n.props.adjustDateOnChange&&n.setSelected(a),n.setPreSelection(a),n.props.inline){var o=Ye.default(r),i=Ye.default(a),s=Ie.default(r),u=Ie.default(a);o!==i||s!==u?n.setState({shouldFocusDayInline:!0}):n.setState({shouldFocusDayInline:!1})}}})),Ct(Zt(n),"onPopperKeyDown",(function(e){"Escape"===e.key&&(e.preventDefault(),n.setState({preventFocus:!0},(function(){n.setOpen(!1),setTimeout((function(){n.setFocus(),n.setState({preventFocus:!1})}))})))})),Ct(Zt(n),"onClearClick",(function(e){e&&e.preventDefault&&e.preventDefault(),n.props.selectsRange?n.props.onChange([null,null],e):n.props.onChange(null,e),n.setState({inputValue:null})})),Ct(Zt(n),"clear",(function(){n.onClearClick()})),Ct(Zt(n),"onScroll",(function(e){"boolean"==typeof n.props.closeOnScroll&&n.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||n.setOpen(!1):"function"==typeof n.props.closeOnScroll&&n.props.closeOnScroll(e)&&n.setOpen(!1)})),Ct(Zt(n),"renderCalendar",(function(){return n.props.inline||n.isCalendarOpen()?de.default.createElement(an,{ref:function(e){n.calendar=e},locale:n.props.locale,calendarStartDay:n.props.calendarStartDay,chooseDayAriaLabelPrefix:n.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:n.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:n.props.weekAriaLabelPrefix,monthAriaLabelPrefix:n.props.monthAriaLabelPrefix,adjustDateOnChange:n.props.adjustDateOnChange,setOpen:n.setOpen,shouldCloseOnSelect:n.props.shouldCloseOnSelect,dateFormat:n.props.dateFormatCalendar,useWeekdaysShort:n.props.useWeekdaysShort,formatWeekDay:n.props.formatWeekDay,dropdownMode:n.props.dropdownMode,selected:n.props.selected,preSelection:n.state.preSelection,onSelect:n.handleSelect,onWeekSelect:n.props.onWeekSelect,openToDate:n.props.openToDate,minDate:n.props.minDate,maxDate:n.props.maxDate,selectsStart:n.props.selectsStart,selectsEnd:n.props.selectsEnd,selectsRange:n.props.selectsRange,startDate:n.props.startDate,endDate:n.props.endDate,excludeDates:n.props.excludeDates,excludeDateIntervals:n.props.excludeDateIntervals,filterDate:n.props.filterDate,onClickOutside:n.handleCalendarClickOutside,formatWeekNumber:n.props.formatWeekNumber,highlightDates:n.state.highlightDates,includeDates:n.props.includeDates,includeDateIntervals:n.props.includeDateIntervals,includeTimes:n.props.includeTimes,injectTimes:n.props.injectTimes,inline:n.props.inline,shouldFocusDayInline:n.state.shouldFocusDayInline,peekNextMonth:n.props.peekNextMonth,showMonthDropdown:n.props.showMonthDropdown,showPreviousMonths:n.props.showPreviousMonths,useShortMonthInDropdown:n.props.useShortMonthInDropdown,showMonthYearDropdown:n.props.showMonthYearDropdown,showWeekNumbers:n.props.showWeekNumbers,showYearDropdown:n.props.showYearDropdown,withPortal:n.props.withPortal,forceShowMonthNavigation:n.props.forceShowMonthNavigation,showDisabledMonthNavigation:n.props.showDisabledMonthNavigation,scrollableYearDropdown:n.props.scrollableYearDropdown,scrollableMonthYearDropdown:n.props.scrollableMonthYearDropdown,todayButton:n.props.todayButton,weekLabel:n.props.weekLabel,outsideClickIgnoreClass:nn,fixedHeight:n.props.fixedHeight,monthsShown:n.props.monthsShown,monthSelectedIn:n.state.monthSelectedIn,onDropdownFocus:n.handleDropdownFocus,onMonthChange:n.props.onMonthChange,onYearChange:n.props.onYearChange,dayClassName:n.props.dayClassName,weekDayClassName:n.props.weekDayClassName,monthClassName:n.props.monthClassName,timeClassName:n.props.timeClassName,showDateSelect:n.props.showDateSelect,showTimeSelect:n.props.showTimeSelect,showTimeSelectOnly:n.props.showTimeSelectOnly,onTimeChange:n.handleTimeChange,timeFormat:n.props.timeFormat,timeIntervals:n.props.timeIntervals,minTime:n.props.minTime,maxTime:n.props.maxTime,excludeTimes:n.props.excludeTimes,filterTime:n.props.filterTime,timeCaption:n.props.timeCaption,className:n.props.calendarClassName,container:n.props.calendarContainer,yearItemNumber:n.props.yearItemNumber,yearDropdownItemNumber:n.props.yearDropdownItemNumber,previousMonthAriaLabel:n.props.previousMonthAriaLabel,previousMonthButtonLabel:n.props.previousMonthButtonLabel,nextMonthAriaLabel:n.props.nextMonthAriaLabel,nextMonthButtonLabel:n.props.nextMonthButtonLabel,previousYearAriaLabel:n.props.previousYearAriaLabel,previousYearButtonLabel:n.props.previousYearButtonLabel,nextYearAriaLabel:n.props.nextYearAriaLabel,nextYearButtonLabel:n.props.nextYearButtonLabel,timeInputLabel:n.props.timeInputLabel,disabledKeyboardNavigation:n.props.disabledKeyboardNavigation,renderCustomHeader:n.props.renderCustomHeader,popperProps:n.props.popperProps,renderDayContents:n.props.renderDayContents,renderMonthContent:n.props.renderMonthContent,renderQuarterContent:n.props.renderQuarterContent,renderYearContent:n.props.renderYearContent,onDayMouseEnter:n.props.onDayMouseEnter,onMonthMouseLeave:n.props.onMonthMouseLeave,onYearMouseEnter:n.props.onYearMouseEnter,onYearMouseLeave:n.props.onYearMouseLeave,selectsDisabledDaysInRange:n.props.selectsDisabledDaysInRange,showTimeInput:n.props.showTimeInput,showMonthYearPicker:n.props.showMonthYearPicker,showFullMonthYearPicker:n.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:n.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:n.props.showFourColumnMonthYearPicker,showYearPicker:n.props.showYearPicker,showQuarterYearPicker:n.props.showQuarterYearPicker,showPopperArrow:n.props.showPopperArrow,excludeScrollbar:n.props.excludeScrollbar,handleOnKeyDown:n.props.onKeyDown,handleOnDayKeyDown:n.onDayKeyDown,isInputFocused:n.state.focused,customTimeInput:n.props.customTimeInput,setPreSelection:n.setPreSelection},n.props.children):null})),Ct(Zt(n),"renderAriaLiveRegion",(function(){var e,t=n.props,r=t.dateFormat,a=t.locale,o=n.props.showTimeInput||n.props.showTimeSelect?"PPPPp":"PPPP";return e=n.props.selectsRange?"Selected start date: ".concat(jt(n.props.startDate,{dateFormat:o,locale:a}),". ").concat(n.props.endDate?"End date: "+jt(n.props.endDate,{dateFormat:o,locale:a}):""):n.props.showTimeSelectOnly?"Selected time: ".concat(jt(n.props.selected,{dateFormat:r,locale:a})):n.props.showYearPicker?"Selected year: ".concat(jt(n.props.selected,{dateFormat:"yyyy",locale:a})):n.props.showMonthYearPicker?"Selected month: ".concat(jt(n.props.selected,{dateFormat:"MMMM yyyy",locale:a})):n.props.showQuarterYearPicker?"Selected quarter: ".concat(jt(n.props.selected,{dateFormat:"yyyy, QQQ",locale:a})):"Selected date: ".concat(jt(n.props.selected,{dateFormat:o,locale:a})),de.default.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},e)})),Ct(Zt(n),"renderDateInput",(function(){var e,t=pe.default(n.props.className,Ct({},nn,n.state.open)),r=n.props.customInput||de.default.createElement("input",{type:"text"}),a=n.props.customInputRef||"ref",o="string"==typeof n.props.value?n.props.value:"string"==typeof n.state.inputValue?n.state.inputValue:n.props.selectsRange?function(e,t,r){if(!e)return"";var n=jt(e,r),a=t?jt(t,r):"";return"".concat(n," - ").concat(a)}(n.props.startDate,n.props.endDate,n.props):jt(n.props.selected,n.props);return de.default.cloneElement(r,(Ct(e={},a,(function(e){n.input=e})),Ct(e,"value",o),Ct(e,"onBlur",n.handleBlur),Ct(e,"onChange",n.handleChange),Ct(e,"onClick",n.onInputClick),Ct(e,"onFocus",n.handleFocus),Ct(e,"onKeyDown",n.onInputKeyDown),Ct(e,"id",n.props.id),Ct(e,"name",n.props.name),Ct(e,"form",n.props.form),Ct(e,"autoFocus",n.props.autoFocus),Ct(e,"placeholder",n.props.placeholderText),Ct(e,"disabled",n.props.disabled),Ct(e,"autoComplete",n.props.autoComplete),Ct(e,"className",pe.default(r.props.className,t)),Ct(e,"title",n.props.title),Ct(e,"readOnly",n.props.readOnly),Ct(e,"required",n.props.required),Ct(e,"tabIndex",n.props.tabIndex),Ct(e,"aria-describedby",n.props.ariaDescribedBy),Ct(e,"aria-invalid",n.props.ariaInvalid),Ct(e,"aria-labelledby",n.props.ariaLabelledBy),Ct(e,"aria-required",n.props.ariaRequired),e))})),Ct(Zt(n),"renderClearButton",(function(){var e=n.props,t=e.isClearable,r=e.selected,a=e.startDate,o=e.endDate,i=e.clearButtonTitle,s=e.clearButtonClassName,u=void 0===s?"":s,c=e.ariaLabelClose,l=void 0===c?"Close":c;return!t||null==r&&null==a&&null==o?null:de.default.createElement("button",{type:"button",className:"react-datepicker__close-icon ".concat(u).trim(),"aria-label":l,onClick:n.onClearClick,title:i,tabIndex:-1})})),n.state=n.calcInitialState(),n}return kt(r,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.onScroll,!0)}},{key:"componentDidUpdate",value:function(e,t){var r,n;e.inline&&(r=e.selected,n=this.props.selected,r&&n?Ye.default(r)!==Ye.default(n)||Ie.default(r)!==Ie.default(n):r!==n)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:kr(this.props.highlightDates)}),t.focused||Jt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:"componentWillUnmount",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener("scroll",this.onScroll,!0)}},{key:"renderInputContainer",value:function(){var e=this.props.showIcon;return de.default.createElement("div",{className:"react-datepicker__input-container".concat(e?" react-datepicker__view-calendar-icon":"")},e&&de.default.createElement("svg",{className:"react-datepicker__calendar-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},de.default.createElement("path",{d:"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z"})),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:"render",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(tn,{enableTabLoop:this.props.enableTabLoop},de.default.createElement("div",{className:"react-datepicker__portal",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement($r,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement("div",null,this.renderInputContainer(),t)}return de.default.createElement(rn,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:"defaultProps",get:function(){return{allowSameDay:!1,dateFormat:"MM/dd/yyyy",dateFormatCalendar:"LLLL yyyy",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:"scroll",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:"Time",previousMonthAriaLabel:"Previous Month",previousMonthButtonLabel:"Previous Month",nextMonthAriaLabel:"Next Month",nextMonthButtonLabel:"Next Month",previousYearAriaLabel:"Previous Year",previousYearButtonLabel:"Previous Year",nextYearAriaLabel:"Next Year",nextYearButtonLabel:"Next Year",timeInputLabel:"Time",enableTabLoop:!0,yearItemNumber:It,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0}}}]),r}(de.default.Component),un="input",cn="navigate";e.CalendarContainer=Gr,e.default=sn,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r="undefined"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){("undefined"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,"__esModule",{value:!0})}(t,r(67294),r(45697),r(94184),r(71381),r(12274),r(49546),r(58545),r(78343),r(77349),r(63500),r(11640),r(8791),r(21593),r(7069),r(77982),r(54559),r(58793),r(59319),r(77881),r(39159),r(85817),r(20466),r(55855),r(9827),r(78966),r(56605),r(95570),r(28789),r(39880),r(4543),r(37042),r(62225),r(11503),r(44749),r(37950),r(99890),r(92300),r(84129),r(91857),r(69119),r(584),r(43703),r(94431),r(38148),r(83894),r(67090),r(4135),r(10876),r(96843),r(3151),r(49160),r(60792),r(86117),r(42699),r(313),r(24257),r(19013),r(76417),r(23855),r(58949),r(73935),r(12053),r(92311))},69590:function(e){var t="undefined"!==typeof Element,r="function"===typeof Map,n="function"===typeof Set,a="function"===typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,u,c,l;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(u=s;0!==u--;)if(!o(e[u],i[u]))return!1;return!0}if(r&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(l=e.entries();!(u=l.next()).done;)if(!i.has(u.value[0]))return!1;for(l=e.entries();!(u=l.next()).done;)if(!o(u.value[1],i.get(u.value[0])))return!1;return!0}if(n&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(l=e.entries();!(u=l.next()).done;)if(!i.has(u.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(u=s;0!==u--;)if(e[u]!==i[u])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(u=s;0!==u--;)if(!Object.prototype.hasOwnProperty.call(i,c[u]))return!1;if(t&&e instanceof Element)return!1;for(u=s;0!==u--;)if(("_owner"!==c[u]&&"__v"!==c[u]&&"__o"!==c[u]||!e.$$typeof)&&!o(e[c[u]],i[c[u]]))return!1;return!0}return e!==e&&i!==i}e.exports=function(e,t){try{return o(e,t)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}}},58949:function(e,t,r){"use strict";r.r(t),r.d(t,{IGNORE_CLASS_NAME:function(){return h}});var n=r(67294),a=r(73935);function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e,t,r){return e===t||(e.correspondingElement?e.correspondingElement.classList.contains(r):e.classList.contains(r))}var u,c,l=(void 0===u&&(u=0),function(){return++u}),d={},p={},f=["touchstart","touchmove"],h="ignore-react-onclickoutside";function v(e,t){var r={};return-1!==f.indexOf(t)&&c&&(r.passive=!e.props.preventDefault),r}t.default=function(e,t){var r,u,f=e.displayName||e.name||"Component";return u=r=function(r){var u,h;function m(e){var n;return(n=r.call(this,e)||this).__outsideClickHandler=function(e){if("function"!==typeof n.__clickOutsideHandlerProp){var t=n.getInstance();if("function"!==typeof t.props.handleClickOutside){if("function"!==typeof t.handleClickOutside)throw new Error("WrappedComponent: "+f+" lacks a handleClickOutside(event) function for processing outside click events.");t.handleClickOutside(e)}else t.props.handleClickOutside(e)}else n.__clickOutsideHandlerProp(e)},n.__getComponentNode=function(){var e=n.getInstance();return t&&"function"===typeof t.setClickOutsideRef?t.setClickOutsideRef()(e):"function"===typeof e.setClickOutsideRef?e.setClickOutsideRef():(0,a.findDOMNode)(e)},n.enableOnClickOutside=function(){if("undefined"!==typeof document&&!p[n._uid]){"undefined"===typeof c&&(c=function(){if("undefined"!==typeof window&&"function"===typeof window.addEventListener){var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),r=function(){};return window.addEventListener("testPassiveEventSupport",r,t),window.removeEventListener("testPassiveEventSupport",r,t),e}}()),p[n._uid]=!0;var e=n.props.eventTypes;e.forEach||(e=[e]),d[n._uid]=function(e){var t;null!==n.componentNode&&(n.props.preventDefault&&e.preventDefault(),n.props.stopPropagation&&e.stopPropagation(),n.props.excludeScrollbar&&(t=e,document.documentElement.clientWidth<=t.clientX||document.documentElement.clientHeight<=t.clientY)||function(e,t,r){if(e===t)return!0;for(;e.parentNode||e.host;){if(e.parentNode&&s(e,t,r))return!0;e=e.parentNode||e.host}return e}(e.composed&&e.composedPath&&e.composedPath().shift()||e.target,n.componentNode,n.props.outsideClickIgnoreClass)===document&&n.__outsideClickHandler(e))},e.forEach((function(e){document.addEventListener(e,d[n._uid],v(i(n),e))}))}},n.disableOnClickOutside=function(){delete p[n._uid];var e=d[n._uid];if(e&&"undefined"!==typeof document){var t=n.props.eventTypes;t.forEach||(t=[t]),t.forEach((function(t){return document.removeEventListener(t,e,v(i(n),t))})),delete d[n._uid]}},n.getRef=function(e){return n.instanceRef=e},n._uid=l(),n}h=r,(u=m).prototype=Object.create(h.prototype),u.prototype.constructor=u,o(u,h);var g=m.prototype;return g.getInstance=function(){if(e.prototype&&!e.prototype.isReactComponent)return this;var t=this.instanceRef;return t.getInstance?t.getInstance():t},g.componentDidMount=function(){if("undefined"!==typeof document&&document.createElement){var e=this.getInstance();if(t&&"function"===typeof t.handleClickOutside&&(this.__clickOutsideHandlerProp=t.handleClickOutside(e),"function"!==typeof this.__clickOutsideHandlerProp))throw new Error("WrappedComponent: "+f+" lacks a function for processing outside click events specified by the handleClickOutside config option.");this.componentNode=this.__getComponentNode(),this.props.disableOnClickOutside||this.enableOnClickOutside()}},g.componentDidUpdate=function(){this.componentNode=this.__getComponentNode()},g.componentWillUnmount=function(){this.disableOnClickOutside()},g.render=function(){var t=this.props;t.excludeScrollbar;var r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(t,["excludeScrollbar"]);return e.prototype&&e.prototype.isReactComponent?r.ref=this.getRef:r.wrappedRef=this.getRef,r.disableOnClickOutside=this.disableOnClickOutside,r.enableOnClickOutside=this.enableOnClickOutside,(0,n.createElement)(e,r)},m}(n.Component),r.displayName="OnClickOutside("+f+")",r.defaultProps={eventTypes:["mousedown","touchstart"],excludeScrollbar:t&&t.excludeScrollbar||!1,outsideClickIgnoreClass:h,preventDefault:!1,stopPropagation:!1},r.getClass=function(){return e.getClass?e.getClass():e},u}},12053:function(e,t,r){"use strict";r.r(t),r.d(t,{Manager:function(){return i},Popper:function(){return Le},Reference:function(){return Ae},usePopper:function(){return Pe}});var n=r(67294),a=n.createContext(),o=n.createContext();function i(e){var t=e.children,r=n.useState(null),i=r[0],s=r[1],u=n.useRef(!1);n.useEffect((function(){return function(){u.current=!0}}),[]);var c=n.useCallback((function(e){u.current||s(e)}),[]);return n.createElement(a.Provider,{value:i},n.createElement(o.Provider,{value:c},t))}var s=function(e){return Array.isArray(e)?e[0]:e},u=function(e){if("function"===typeof e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.apply(void 0,r)}},c=function(e,t){if("function"===typeof e)return u(e,t);null!=e&&(e.current=t)},l=function(e){return e.reduce((function(e,t){var r=t[0],n=t[1];return e[r]=n,e}),{})},d="undefined"!==typeof window&&window.document&&window.document.createElement?n.useLayoutEffect:n.useEffect,p=r(73935);function f(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function h(e){return e instanceof f(e).Element||e instanceof Element}function v(e){return e instanceof f(e).HTMLElement||e instanceof HTMLElement}function m(e){return"undefined"!==typeof ShadowRoot&&(e instanceof f(e).ShadowRoot||e instanceof ShadowRoot)}var g=Math.max,y=Math.min,w=Math.round;function b(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function D(){return!/^((?!chrome|android).)*safari/i.test(b())}function k(e,t,r){void 0===t&&(t=!1),void 0===r&&(r=!1);var n=e.getBoundingClientRect(),a=1,o=1;t&&v(e)&&(a=e.offsetWidth>0&&w(n.width)/e.offsetWidth||1,o=e.offsetHeight>0&&w(n.height)/e.offsetHeight||1);var i=(h(e)?f(e):window).visualViewport,s=!D()&&r,u=(n.left+(s&&i?i.offsetLeft:0))/a,c=(n.top+(s&&i?i.offsetTop:0))/o,l=n.width/a,d=n.height/o;return{width:l,height:d,top:c,right:u+l,bottom:c+d,left:u,x:u,y:c}}function C(e){var t=f(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function S(e){return e?(e.nodeName||"").toLowerCase():null}function M(e){return((h(e)?e.ownerDocument:e.document)||window.document).documentElement}function T(e){return k(M(e)).left+C(e).scrollLeft}function x(e){return f(e).getComputedStyle(e)}function Z(e){var t=x(e),r=t.overflow,n=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+a+n)}function E(e,t,r){void 0===r&&(r=!1);var n=v(t),a=v(t)&&function(e){var t=e.getBoundingClientRect(),r=w(t.width)/e.offsetWidth||1,n=w(t.height)/e.offsetHeight||1;return 1!==r||1!==n}(t),o=M(t),i=k(e,a,r),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(n||!n&&!r)&&(("body"!==S(t)||Z(o))&&(s=function(e){return e!==f(e)&&v(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:C(e);var t}(t)),v(t)?((u=k(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):o&&(u.x=T(o))),{x:i.left+s.scrollLeft-u.x,y:i.top+s.scrollTop-u.y,width:i.width,height:i.height}}function _(e){var t=k(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function P(e){return"html"===S(e)?e:e.assignedSlot||e.parentNode||(m(e)?e.host:null)||M(e)}function O(e){return["html","body","#document"].indexOf(S(e))>=0?e.ownerDocument.body:v(e)&&Z(e)?e:O(P(e))}function N(e,t){var r;void 0===t&&(t=[]);var n=O(e),a=n===(null==(r=e.ownerDocument)?void 0:r.body),o=f(n),i=a?[o].concat(o.visualViewport||[],Z(n)?n:[]):n,s=t.concat(i);return a?s:s.concat(N(P(i)))}function Y(e){return["table","td","th"].indexOf(S(e))>=0}function L(e){return v(e)&&"fixed"!==x(e).position?e.offsetParent:null}function I(e){for(var t=f(e),r=L(e);r&&Y(r)&&"static"===x(r).position;)r=L(r);return r&&("html"===S(r)||"body"===S(r)&&"static"===x(r).position)?t:r||function(e){var t=/firefox/i.test(b());if(/Trident/i.test(b())&&v(e)&&"fixed"===x(e).position)return null;var r=P(e);for(m(r)&&(r=r.host);v(r)&&["html","body"].indexOf(S(r))<0;){var n=x(r);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return r;r=r.parentNode}return null}(e)||t}var R="top",A="bottom",F="right",B="left",j="auto",H=[R,A,F,B],U="start",W="end",q="clippingParents",Q="viewport",K="popper",V="reference",z=H.reduce((function(e,t){return e.concat([t+"-"+U,t+"-"+W])}),[]),G=[].concat(H,[j]).reduce((function(e,t){return e.concat([t,t+"-"+U,t+"-"+W])}),[]),X=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function J(e){var t=new Map,r=new Set,n=[];function a(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var n=t.get(e);n&&a(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||a(e)})),n}function $(e){var t;return function(){return t||(t=new Promise((function(r){Promise.resolve().then((function(){t=void 0,r(e())}))}))),t}}var ee={placement:"bottom",modifiers:[],strategy:"absolute"};function te(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return!t.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function re(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,n=void 0===r?[]:r,a=t.defaultOptions,o=void 0===a?ee:a;return function(e,t,r){void 0===r&&(r=o);var a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ee,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},i=[],s=!1,u={state:a,setOptions:function(r){var s="function"===typeof r?r(a.options):r;c(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:h(e)?N(e):e.contextElement?N(e.contextElement):[],popper:N(t)};var l=function(e){var t=J(e);return X.reduce((function(e,r){return e.concat(t.filter((function(e){return e.phase===r})))}),[])}(function(e){var t=e.reduce((function(e,t){var r=e[t.name];return e[t.name]=r?Object.assign({},r,t,{options:Object.assign({},r.options,t.options),data:Object.assign({},r.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}([].concat(n,a.options.modifiers)));return a.orderedModifiers=l.filter((function(e){return e.enabled})),a.orderedModifiers.forEach((function(e){var t=e.name,r=e.options,n=void 0===r?{}:r,o=e.effect;if("function"===typeof o){var s=o({state:a,name:t,instance:u,options:n}),c=function(){};i.push(s||c)}})),u.update()},forceUpdate:function(){if(!s){var e=a.elements,t=e.reference,r=e.popper;if(te(t,r)){a.rects={reference:E(t,I(r),"fixed"===a.options.strategy),popper:_(r)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(e){return a.modifiersData[e.name]=Object.assign({},e.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var o=a.orderedModifiers[n],i=o.fn,c=o.options,l=void 0===c?{}:c,d=o.name;"function"===typeof i&&(a=i({state:a,options:l,name:d,instance:u})||a)}else a.reset=!1,n=-1}}},update:$((function(){return new Promise((function(e){u.forceUpdate(),e(a)}))})),destroy:function(){c(),s=!0}};if(!te(e,t))return u;function c(){i.forEach((function(e){return e()})),i=[]}return u.setOptions(r).then((function(e){!s&&r.onFirstUpdate&&r.onFirstUpdate(e)})),u}}var ne={passive:!0};function ae(e){return e.split("-")[0]}function oe(e){return e.split("-")[1]}function ie(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function se(e){var t,r=e.reference,n=e.element,a=e.placement,o=a?ae(a):null,i=a?oe(a):null,s=r.x+r.width/2-n.width/2,u=r.y+r.height/2-n.height/2;switch(o){case R:t={x:s,y:r.y-n.height};break;case A:t={x:s,y:r.y+r.height};break;case F:t={x:r.x+r.width,y:u};break;case B:t={x:r.x-n.width,y:u};break;default:t={x:r.x,y:r.y}}var c=o?ie(o):null;if(null!=c){var l="y"===c?"height":"width";switch(i){case U:t[c]=t[c]-(r[l]/2-n[l]/2);break;case W:t[c]=t[c]+(r[l]/2-n[l]/2)}}return t}var ue={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ce(e){var t,r=e.popper,n=e.popperRect,a=e.placement,o=e.variation,i=e.offsets,s=e.position,u=e.gpuAcceleration,c=e.adaptive,l=e.roundOffsets,d=e.isFixed,p=i.x,h=void 0===p?0:p,v=i.y,m=void 0===v?0:v,g="function"===typeof l?l({x:h,y:m}):{x:h,y:m};h=g.x,m=g.y;var y=i.hasOwnProperty("x"),b=i.hasOwnProperty("y"),D=B,k=R,C=window;if(c){var S=I(r),T="clientHeight",Z="clientWidth";if(S===f(r)&&"static"!==x(S=M(r)).position&&"absolute"===s&&(T="scrollHeight",Z="scrollWidth"),a===R||(a===B||a===F)&&o===W)k=A,m-=(d&&S===C&&C.visualViewport?C.visualViewport.height:S[T])-n.height,m*=u?1:-1;if(a===B||(a===R||a===A)&&o===W)D=F,h-=(d&&S===C&&C.visualViewport?C.visualViewport.width:S[Z])-n.width,h*=u?1:-1}var E,_=Object.assign({position:s},c&&ue),P=!0===l?function(e,t){var r=e.x,n=e.y,a=t.devicePixelRatio||1;return{x:w(r*a)/a||0,y:w(n*a)/a||0}}({x:h,y:m},f(r)):{x:h,y:m};return h=P.x,m=P.y,u?Object.assign({},_,((E={})[k]=b?"0":"",E[D]=y?"0":"",E.transform=(C.devicePixelRatio||1)<=1?"translate("+h+"px, "+m+"px)":"translate3d("+h+"px, "+m+"px, 0)",E)):Object.assign({},_,((t={})[k]=b?m+"px":"",t[D]=y?h+"px":"",t.transform="",t))}var le={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,n=e.name,a=r.offset,o=void 0===a?[0,0]:a,i=G.reduce((function(e,r){return e[r]=function(e,t,r){var n=ae(e),a=[B,R].indexOf(n)>=0?-1:1,o="function"===typeof r?r(Object.assign({},t,{placement:e})):r,i=o[0],s=o[1];return i=i||0,s=(s||0)*a,[B,F].indexOf(n)>=0?{x:s,y:i}:{x:i,y:s}}(r,t.rects,o),e}),{}),s=i[t.placement],u=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[n]=i}},de={left:"right",right:"left",bottom:"top",top:"bottom"};function pe(e){return e.replace(/left|right|bottom|top/g,(function(e){return de[e]}))}var fe={start:"end",end:"start"};function he(e){return e.replace(/start|end/g,(function(e){return fe[e]}))}function ve(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&m(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function me(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ge(e,t,r){return t===Q?me(function(e,t){var r=f(e),n=M(e),a=r.visualViewport,o=n.clientWidth,i=n.clientHeight,s=0,u=0;if(a){o=a.width,i=a.height;var c=D();(c||!c&&"fixed"===t)&&(s=a.offsetLeft,u=a.offsetTop)}return{width:o,height:i,x:s+T(e),y:u}}(e,r)):h(t)?function(e,t){var r=k(e,!1,"fixed"===t);return r.top=r.top+e.clientTop,r.left=r.left+e.clientLeft,r.bottom=r.top+e.clientHeight,r.right=r.left+e.clientWidth,r.width=e.clientWidth,r.height=e.clientHeight,r.x=r.left,r.y=r.top,r}(t,r):me(function(e){var t,r=M(e),n=C(e),a=null==(t=e.ownerDocument)?void 0:t.body,o=g(r.scrollWidth,r.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),i=g(r.scrollHeight,r.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),s=-n.scrollLeft+T(e),u=-n.scrollTop;return"rtl"===x(a||r).direction&&(s+=g(r.clientWidth,a?a.clientWidth:0)-o),{width:o,height:i,x:s,y:u}}(M(e)))}function ye(e,t,r,n){var a="clippingParents"===t?function(e){var t=N(P(e)),r=["absolute","fixed"].indexOf(x(e).position)>=0&&v(e)?I(e):e;return h(r)?t.filter((function(e){return h(e)&&ve(e,r)&&"body"!==S(e)})):[]}(e):[].concat(t),o=[].concat(a,[r]),i=o[0],s=o.reduce((function(t,r){var a=ge(e,r,n);return t.top=g(a.top,t.top),t.right=y(a.right,t.right),t.bottom=y(a.bottom,t.bottom),t.left=g(a.left,t.left),t}),ge(e,i,n));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function we(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function be(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}function De(e,t){void 0===t&&(t={});var r=t,n=r.placement,a=void 0===n?e.placement:n,o=r.strategy,i=void 0===o?e.strategy:o,s=r.boundary,u=void 0===s?q:s,c=r.rootBoundary,l=void 0===c?Q:c,d=r.elementContext,p=void 0===d?K:d,f=r.altBoundary,v=void 0!==f&&f,m=r.padding,g=void 0===m?0:m,y=we("number"!==typeof g?g:be(g,H)),w=p===K?V:K,b=e.rects.popper,D=e.elements[v?w:p],C=ye(h(D)?D:D.contextElement||M(e.elements.popper),u,l,i),S=k(e.elements.reference),T=se({reference:S,element:b,strategy:"absolute",placement:a}),x=me(Object.assign({},b,T)),Z=p===K?x:S,E={top:C.top-Z.top+y.top,bottom:Z.bottom-C.bottom+y.bottom,left:C.left-Z.left+y.left,right:Z.right-C.right+y.right},_=e.modifiersData.offset;if(p===K&&_){var P=_[a];Object.keys(E).forEach((function(e){var t=[F,A].indexOf(e)>=0?1:-1,r=[R,A].indexOf(e)>=0?"y":"x";E[e]+=P[r]*t}))}return E}function ke(e,t,r){return g(e,y(t,r))}var Ce={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name,a=r.mainAxis,o=void 0===a||a,i=r.altAxis,s=void 0!==i&&i,u=r.boundary,c=r.rootBoundary,l=r.altBoundary,d=r.padding,p=r.tether,f=void 0===p||p,h=r.tetherOffset,v=void 0===h?0:h,m=De(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:l}),w=ae(t.placement),b=oe(t.placement),D=!b,k=ie(w),C="x"===k?"y":"x",S=t.modifiersData.popperOffsets,M=t.rects.reference,T=t.rects.popper,x="function"===typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,Z="number"===typeof x?{mainAxis:x,altAxis:x}:Object.assign({mainAxis:0,altAxis:0},x),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,P={x:0,y:0};if(S){if(o){var O,N="y"===k?R:B,Y="y"===k?A:F,L="y"===k?"height":"width",j=S[k],H=j+m[N],W=j-m[Y],q=f?-T[L]/2:0,Q=b===U?M[L]:T[L],K=b===U?-T[L]:-M[L],V=t.elements.arrow,z=f&&V?_(V):{width:0,height:0},G=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},X=G[N],J=G[Y],$=ke(0,M[L],z[L]),ee=D?M[L]/2-q-$-X-Z.mainAxis:Q-$-X-Z.mainAxis,te=D?-M[L]/2+q+$+J+Z.mainAxis:K+$+J+Z.mainAxis,re=t.elements.arrow&&I(t.elements.arrow),ne=re?"y"===k?re.clientTop||0:re.clientLeft||0:0,se=null!=(O=null==E?void 0:E[k])?O:0,ue=j+te-se,ce=ke(f?y(H,j+ee-se-ne):H,j,f?g(W,ue):W);S[k]=ce,P[k]=ce-j}if(s){var le,de="x"===k?R:B,pe="x"===k?A:F,fe=S[C],he="y"===C?"height":"width",ve=fe+m[de],me=fe-m[pe],ge=-1!==[R,B].indexOf(w),ye=null!=(le=null==E?void 0:E[C])?le:0,we=ge?ve:fe-M[he]-T[he]-ye+Z.altAxis,be=ge?fe+M[he]+T[he]-ye-Z.altAxis:me,Ce=f&&ge?function(e,t,r){var n=ke(e,t,r);return n>r?r:n}(we,fe,be):ke(f?we:ve,fe,f?be:me);S[C]=Ce,P[C]=Ce-fe}t.modifiersData[n]=P}},requiresIfExists:["offset"]};var Se={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,n=e.name,a=e.options,o=r.elements.arrow,i=r.modifiersData.popperOffsets,s=ae(r.placement),u=ie(s),c=[B,F].indexOf(s)>=0?"height":"width";if(o&&i){var l=function(e,t){return we("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:be(e,H))}(a.padding,r),d=_(o),p="y"===u?R:B,f="y"===u?A:F,h=r.rects.reference[c]+r.rects.reference[u]-i[u]-r.rects.popper[c],v=i[u]-r.rects.reference[u],m=I(o),g=m?"y"===u?m.clientHeight||0:m.clientWidth||0:0,y=h/2-v/2,w=l[p],b=g-d[c]-l[f],D=g/2-d[c]/2+y,k=ke(w,D,b),C=u;r.modifiersData[n]=((t={})[C]=k,t.centerOffset=k-D,t)}},effect:function(e){var t=e.state,r=e.options.element,n=void 0===r?"[data-popper-arrow]":r;null!=n&&("string"!==typeof n||(n=t.elements.popper.querySelector(n)))&&ve(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Me(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Te(e){return[R,F,A,B].some((function(t){return e[t]>=0}))}var xe=re({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,r=e.instance,n=e.options,a=n.scroll,o=void 0===a||a,i=n.resize,s=void 0===i||i,u=f(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",r.update,ne)})),s&&u.addEventListener("resize",r.update,ne),function(){o&&c.forEach((function(e){e.removeEventListener("scroll",r.update,ne)})),s&&u.removeEventListener("resize",r.update,ne)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,r=e.name;t.modifiersData[r]=se({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,r=e.options,n=r.gpuAcceleration,a=void 0===n||n,o=r.adaptive,i=void 0===o||o,s=r.roundOffsets,u=void 0===s||s,c={placement:ae(t.placement),variation:oe(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ce(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:u})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ce(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},n=t.attributes[e]||{},a=t.elements[e];v(a)&&S(a)&&(Object.assign(a.style,r),Object.keys(n).forEach((function(e){var t=n[e];!1===t?a.removeAttribute(e):a.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var n=t.elements[e],a=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});v(n)&&S(n)&&(Object.assign(n.style,o),Object.keys(a).forEach((function(e){n.removeAttribute(e)})))}))}},requires:["computeStyles"]},le,{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var a=r.mainAxis,o=void 0===a||a,i=r.altAxis,s=void 0===i||i,u=r.fallbackPlacements,c=r.padding,l=r.boundary,d=r.rootBoundary,p=r.altBoundary,f=r.flipVariations,h=void 0===f||f,v=r.allowedAutoPlacements,m=t.options.placement,g=ae(m),y=u||(g===m||!h?[pe(m)]:function(e){if(ae(e)===j)return[];var t=pe(e);return[he(e),t,he(t)]}(m)),w=[m].concat(y).reduce((function(e,r){return e.concat(ae(r)===j?function(e,t){void 0===t&&(t={});var r=t,n=r.placement,a=r.boundary,o=r.rootBoundary,i=r.padding,s=r.flipVariations,u=r.allowedAutoPlacements,c=void 0===u?G:u,l=oe(n),d=l?s?z:z.filter((function(e){return oe(e)===l})):H,p=d.filter((function(e){return c.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,r){return t[r]=De(e,{placement:r,boundary:a,rootBoundary:o,padding:i})[ae(r)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:r,boundary:l,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:v}):r)}),[]),b=t.rects.reference,D=t.rects.popper,k=new Map,C=!0,S=w[0],M=0;M<w.length;M++){var T=w[M],x=ae(T),Z=oe(T)===U,E=[R,A].indexOf(x)>=0,_=E?"width":"height",P=De(t,{placement:T,boundary:l,rootBoundary:d,altBoundary:p,padding:c}),O=E?Z?F:B:Z?A:R;b[_]>D[_]&&(O=pe(O));var N=pe(O),Y=[];if(o&&Y.push(P[x]<=0),s&&Y.push(P[O]<=0,P[N]<=0),Y.every((function(e){return e}))){S=T,C=!1;break}k.set(T,Y)}if(C)for(var L=function(e){var t=w.find((function(t){var r=k.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},I=h?3:1;I>0;I--){if("break"===L(I))break}t.placement!==S&&(t.modifiersData[n]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},Ce,Se,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,r=e.name,n=t.rects.reference,a=t.rects.popper,o=t.modifiersData.preventOverflow,i=De(t,{elementContext:"reference"}),s=De(t,{altBoundary:!0}),u=Me(i,n),c=Me(s,a,o),l=Te(u),d=Te(c);t.modifiersData[r]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:l,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":d})}}]}),Ze=r(69590),Ee=r.n(Ze),_e=[],Pe=function(e,t,r){void 0===r&&(r={});var a=n.useRef(null),o={onFirstUpdate:r.onFirstUpdate,placement:r.placement||"bottom",strategy:r.strategy||"absolute",modifiers:r.modifiers||_e},i=n.useState({styles:{popper:{position:o.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=i[0],u=i[1],c=n.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var t=e.state,r=Object.keys(t.elements);p.flushSync((function(){u({styles:l(r.map((function(e){return[e,t.styles[e]||{}]}))),attributes:l(r.map((function(e){return[e,t.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),f=n.useMemo((function(){var e={onFirstUpdate:o.onFirstUpdate,placement:o.placement,strategy:o.strategy,modifiers:[].concat(o.modifiers,[c,{name:"applyStyles",enabled:!1}])};return Ee()(a.current,e)?a.current||e:(a.current=e,e)}),[o.onFirstUpdate,o.placement,o.strategy,o.modifiers,c]),h=n.useRef();return d((function(){h.current&&h.current.setOptions(f)}),[f]),d((function(){if(null!=e&&null!=t){var n=(r.createPopper||xe)(e,t,f);return h.current=n,function(){n.destroy(),h.current=null}}}),[e,t,r.createPopper]),{state:h.current?h.current.state:null,styles:s.styles,attributes:s.attributes,update:h.current?h.current.update:null,forceUpdate:h.current?h.current.forceUpdate:null}},Oe=function(){},Ne=function(){return Promise.resolve(null)},Ye=[];function Le(e){var t=e.placement,r=void 0===t?"bottom":t,o=e.strategy,i=void 0===o?"absolute":o,u=e.modifiers,l=void 0===u?Ye:u,d=e.referenceElement,p=e.onFirstUpdate,f=e.innerRef,h=e.children,v=n.useContext(a),m=n.useState(null),g=m[0],y=m[1],w=n.useState(null),b=w[0],D=w[1];n.useEffect((function(){c(f,g)}),[f,g]);var k=n.useMemo((function(){return{placement:r,strategy:i,onFirstUpdate:p,modifiers:[].concat(l,[{name:"arrow",enabled:null!=b,options:{element:b}}])}}),[r,i,p,l,b]),C=Pe(d||v,g,k),S=C.state,M=C.styles,T=C.forceUpdate,x=C.update,Z=n.useMemo((function(){return{ref:y,style:M.popper,placement:S?S.placement:r,hasPopperEscaped:S&&S.modifiersData.hide?S.modifiersData.hide.hasPopperEscaped:null,isReferenceHidden:S&&S.modifiersData.hide?S.modifiersData.hide.isReferenceHidden:null,arrowProps:{style:M.arrow,ref:D},forceUpdate:T||Oe,update:x||Ne}}),[y,D,r,S,M,x,T]);return s(h)(Z)}var Ie=r(42473),Re=r.n(Ie);function Ae(e){var t=e.children,r=e.innerRef,a=n.useContext(o),i=n.useCallback((function(e){c(r,e),u(a,e)}),[r,a]);return n.useEffect((function(){return function(){return c(r,null)}}),[]),n.useEffect((function(){Re()(Boolean(a),"`Reference` should not be used outside of a `Manager` component.")}),[a]),s(t)({ref:i})}},88632:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a=s(r(45697)),o=r(67294),i=s(o);function s(e){return e&&e.__esModule?e:{default:e}}var u={bgColor:a.default.oneOfType([a.default.object,a.default.string]).isRequired,bgD:a.default.string.isRequired,fgColor:a.default.oneOfType([a.default.object,a.default.string]).isRequired,fgD:a.default.string.isRequired,size:a.default.number.isRequired,title:a.default.string,viewBoxSize:a.default.number.isRequired,xmlns:a.default.string},c={title:void 0,xmlns:"http://www.w3.org/2000/svg"},l=(0,o.forwardRef)((function(e,t){var r=e.bgColor,a=e.bgD,o=e.fgD,s=e.fgColor,u=e.size,c=e.title,l=e.viewBoxSize,d=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["bgColor","bgD","fgD","fgColor","size","title","viewBoxSize"]);return i.default.createElement("svg",n({},d,{height:u,ref:t,viewBox:"0 0 "+l+" "+l,width:u}),c?i.default.createElement("title",null,c):null,i.default.createElement("path",{d:a,fill:r}),i.default.createElement("path",{d:o,fill:s}))}));l.displayName="QRCodeSvg",l.propTypes=u,l.defaultProps=c,t.default=l},1653:function(e,t,r){"use strict";var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a=l(r(14450)),o=l(r(49381)),i=l(r(45697)),s=r(67294),u=l(s),c=l(r(88632));function l(e){return e&&e.__esModule?e:{default:e}}var d={bgColor:i.default.oneOfType([i.default.object,i.default.string]),fgColor:i.default.oneOfType([i.default.object,i.default.string]),level:i.default.string,size:i.default.number,value:i.default.string.isRequired},p=(0,s.forwardRef)((function(e,t){var r=e.bgColor,i=e.fgColor,s=e.level,l=e.size,d=e.value,p=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["bgColor","fgColor","level","size","value"]),f=new a.default(-1,o.default[s]);f.addData(d),f.make();var h=f.modules;return u.default.createElement(c.default,n({},p,{bgColor:r,bgD:h.map((function(e,t){return e.map((function(e,r){return e?"":"M "+r+" "+t+" l 1 0 0 1 -1 0 Z"})).join(" ")})).join(" "),fgColor:i,fgD:h.map((function(e,t){return e.map((function(e,r){return e?"M "+r+" "+t+" l 1 0 0 1 -1 0 Z":""})).join(" ")})).join(" "),ref:t,size:l,viewBoxSize:h.length}))}));p.displayName="QRCode",p.propTypes=d,p.defaultProps={bgColor:"#FFFFFF",fgColor:"#000000",level:"L",size:256},t.Z=p},62554:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(67294),a=r(34513);function o(e,t,r){void 0===t&&(t=0),void 0===r&&(r=[]);var o=(0,a.Z)(e,t),i=o[0],s=o[1],u=o[2];return(0,n.useEffect)(u,r),[i,s]}},18127:function(e,t,r){"use strict";var n=r(67294);t.Z=function(e){(0,n.useEffect)(e,[])}},43337:function(e,t,r){"use strict";var n=r(67294);t.Z=function(e,t){var r=(0,n.useRef)((function(){}));(0,n.useEffect)((function(){r.current=e})),(0,n.useEffect)((function(){if(null!==t){var e=setInterval((function(){return r.current()}),t||0);return function(){return clearInterval(e)}}}),[t])}},34513:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(67294);function a(e,t){void 0===t&&(t=0);var r=(0,n.useRef)(!1),a=(0,n.useRef)(),o=(0,n.useRef)(e),i=(0,n.useCallback)((function(){return r.current}),[]),s=(0,n.useCallback)((function(){r.current=!1,a.current&&clearTimeout(a.current),a.current=setTimeout((function(){r.current=!0,o.current()}),t)}),[t]),u=(0,n.useCallback)((function(){r.current=null,a.current&&clearTimeout(a.current)}),[]);return(0,n.useEffect)((function(){o.current=e}),[e]),(0,n.useEffect)((function(){return s(),u}),[t]),[i,u,s]}},89211:function(e,t,r){"use strict";var n=r(67294),a=function(e,t){return"boolean"===typeof t?t:!e};t.Z=function(e){return(0,n.useReducer)(a,e)}},77823:function(e,t,r){"use strict";var n=r(67294),a=r(18127);t.Z=function(e){var t=(0,n.useRef)(e);t.current=e,(0,a.Z)((function(){return function(){return t.current()}}))}},42473:function(e){"use strict";var t=function(){};e.exports=t}}]); \ No newline at end of file
+/*! For license information please see 27.23f7ef0669e969b74f95.chunk.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="9ca15db1-3ca9-4b8b-9815-db8b8f3ed8c3",e._sentryDebugIdIdentifier="sentry-dbid-9ca15db1-3ca9-4b8b-9815-db8b8f3ed8c3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[27],{94184:function(e,t){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)){if(r.length){var i=a.apply(null,r);i&&e.push(i)}}else if("object"===o){if(r.toString!==Object.prototype.toString&&!r.toString.toString().includes("[native code]")){e.push(r.toString());continue}for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},55988:function(e,t,r){"use strict";var n=r(70111),a=Math.floor;e.exports=Number.isInteger||function(e){return!n(e)&&isFinite(e)&&a(e)===e}},2814:function(e,t,r){"use strict";var n=r(17854),a=r(47293),o=r(1702),i=r(41340),s=r(53111).trim,u=r(81361),c=o("".charAt),l=n.parseFloat,d=n.Symbol,p=d&&d.iterator,f=1/l(u+"-0")!==-1/0||p&&!a((function(){l(Object(p))}));e.exports=f?function(e){var t=s(i(e)),r=l(t);return 0===r&&"-"==c(t,0)?-0:r}:l},54986:function(e,t,r){"use strict";var n=r(88113);e.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(n)},76650:function(e,t,r){"use strict";var n=r(1702),a=r(17466),o=r(41340),i=r(38415),s=r(84488),u=n(i),c=n("".slice),l=Math.ceil,d=function(e){return function(t,r,n){var i,d,p=o(s(t)),f=a(r),h=p.length,v=void 0===n?" ":o(n);return f<=h||""==v?p:((d=u(v,l((i=f-h)/v.length))).length>i&&(d=c(d,0,i)),e?p+d:d+p)}};e.exports={start:d(!1),end:d(!0)}},38415:function(e,t,r){"use strict";var n=r(19303),a=r(41340),o=r(84488),i=RangeError;e.exports=function(e){var t=a(o(this)),r="",s=n(e);if(s<0||s==1/0)throw i("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(t+=t))1&s&&(r+=t);return r}},33161:function(e,t,r){"use strict";r(82109)({target:"Number",stat:!0},{isInteger:r(55988)})},61874:function(e,t,r){"use strict";var n=r(82109),a=r(2814);n({target:"Number",stat:!0,forced:Number.parseFloat!=a},{parseFloat:a})},54678:function(e,t,r){"use strict";var n=r(82109),a=r(2814);n({global:!0,forced:parseFloat!=a},{parseFloat:a})},66528:function(e,t,r){"use strict";var n=r(82109),a=r(76650).end;n({target:"String",proto:!0,forced:r(54986)},{padEnd:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}})},83112:function(e,t,r){"use strict";var n=r(82109),a=r(76650).start;n({target:"String",proto:!0,forced:r(54986)},{padStart:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}})},68757:function(e,t,r){"use strict";var n=r(82109),a=r(46916),o=r(1702),i=r(84488),s=r(60614),u=r(68554),c=r(47850),l=r(41340),d=r(58173),p=r(34706),f=r(10647),h=r(5112),v=r(31913),m=h("replace"),g=TypeError,y=o("".indexOf),w=o("".replace),b=o("".slice),D=Math.max,k=function(e,t,r){return r>e.length?-1:""===t?r:y(e,t,r)};n({target:"String",proto:!0},{replaceAll:function(e,t){var r,n,o,h,C,S,M,T,x,Z=i(this),E=0,_=0,P="";if(!u(e)){if((r=c(e))&&(n=l(i(p(e))),!~y(n,"g")))throw g("`.replaceAll` does not allow non-global regexes");if(o=d(e,m))return a(o,e,Z,t);if(v&&r)return w(l(Z),e,t)}for(h=l(Z),C=l(e),(S=s(t))||(t=l(t)),M=C.length,T=D(1,M),E=k(h,C,0);-1!==E;)x=S?l(t(C,E,h)):f(C,h,E,[],void 0,t),P+=b(h,_,E)+x,_=E+M,E=k(h,C,E+T);return _<h.length&&(P+=b(h,_)),P}})},41817:function(e,t,r){"use strict";var n=r(82109),a=r(19781),o=r(17854),i=r(1702),s=r(92597),u=r(60614),c=r(47976),l=r(41340),d=r(47045),p=r(99920),f=o.Symbol,h=f&&f.prototype;if(a&&u(f)&&(!("description"in h)||void 0!==f().description)){var v={},m=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:l(arguments[0]),t=c(h,this)?new f(e):void 0===e?f():f(e);return""===e&&(v[t]=!0),t};p(m,f),m.prototype=h,h.constructor=m;var g="Symbol(test)"==String(f("test")),y=i(h.valueOf),w=i(h.toString),b=/^Symbol\((.*)\)[^)]+$/,D=i("".replace),k=i("".slice);d(h,"description",{configurable:!0,get:function(){var e=y(this);if(s(v,e))return"";var t=w(e),r=g?k(t,7,-1):D(t,b,"$1");return""===r?void 0:r}}),n({global:!0,constructor:!0,forced:!0},{Symbol:m})}},66342:function(e,t,r){"use strict";var n=r(82109),a=r(25787),o=r(79518),i=r(68880),s=r(92597),u=r(5112),c=r(66462),l=r(31913),d=u("toStringTag"),p=TypeError,f=function(){if(a(this,c),o(this)===c)throw p("Abstract class AsyncIterator not directly constructable")};f.prototype=c,s(c,d)||i(c,d,"AsyncIterator"),!l&&s(c,"constructor")&&c.constructor!==Object||i(c,"constructor",f),n({global:!0,constructor:!0,forced:l},{AsyncIterator:f})},62962:function(e,t,r){"use strict";var n=r(82109),a=r(12269).toArray;n({target:"AsyncIterator",proto:!0,real:!0},{toArray:function(){return a(this,void 0,[])}})},23748:function(e,t,r){"use strict";var n=r(82109),a=r(19670),o=r(20408),i=r(24942),s=[].push;n({target:"Iterator",proto:!0,real:!0},{toArray:function(){var e=[];return o(i(a(this)),s,{that:e,IS_RECORD:!0}),e}})},52149:function(e,t,r){"use strict";function n(e,t){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}r.d(t,{Z:function(){return n}})},8958:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},a=function(e,t,r){var a,o=n[e];return a="string"===typeof o?o:1===t?o.one:o.other.replace("{{count}}",t.toString()),null!==r&&void 0!==r&&r.addSuffix?r.comparison&&r.comparison>0?"in "+a:a+" ago":a};function o(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var i={date:o({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:o({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:o({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},s={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},u=function(e,t,r,n){return s[e]};function c(e){return function(t,r){var n;if("formatting"===(null!==r&&void 0!==r&&r.context?String(r.context):"standalone")&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,o=null!==r&&void 0!==r&&r.width?String(r.width):a;n=e.formattingValues[o]||e.formattingValues[a]}else{var i=e.defaultWidth,s=null!==r&&void 0!==r&&r.width?String(r.width):e.defaultWidth;n=e.values[s]||e.values[i]}return n[e.argumentCallback?e.argumentCallback(t):t]}}var l={ordinalNumber:function(e,t){var r=Number(e),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:c({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:c({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:c({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:c({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:c({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})};function d(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.width,a=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;var i,s=o[0],u=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(u)?function(e,t){for(var r=0;r<e.length;r++)if(t(e[r]))return r;return}(u,(function(e){return e.test(s)})):function(e,t){for(var r in e)if(e.hasOwnProperty(r)&&t(e[r]))return r;return}(u,(function(e){return e.test(s)}));return i=e.valueCallback?e.valueCallback(c):c,{value:i=r.valueCallback?r.valueCallback(i):i,rest:t.slice(s.length)}}}var p,f={ordinalNumber:(p={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.match(p.matchPattern);if(!r)return null;var n=r[0],a=e.match(p.parsePattern);if(!a)return null;var o=p.valueCallback?p.valueCallback(a[0]):a[0];return{value:o=t.valueCallback?t.valueCallback(o):o,rest:e.slice(n.length)}}),era:d({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:d({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:d({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:d({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:d({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},h={code:"en-US",formatDistance:a,formatLong:i,formatRelative:u,localize:l,match:f,options:{weekStartsOn:0,firstWeekContainsDate:1}}},84314:function(e,t,r){"use strict";r.d(t,{j:function(){return a}});var n={};function a(){return n}},97621:function(e,t){"use strict";var r=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},n=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},a={p:n,P:function(e,t){var a,o=e.match(/(P+)(p+)?/)||[],i=o[1],s=o[2];if(!s)return r(e,t);switch(i){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;default:a=t.dateTime({width:"full"})}return a.replace("{{date}}",r(i,t)).replace("{{time}}",n(s,t))}};t.Z=a},24262:function(e,t,r){"use strict";function n(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}r.d(t,{Z:function(){return n}})},49702:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=r(19013),a=r(66979),o=r(7032),i=r(13882);var s=6048e5;function u(e){(0,i.Z)(1,arguments);var t=(0,n.default)(e),r=(0,a.Z)(t).getTime()-function(e){(0,i.Z)(1,arguments);var t=(0,o.Z)(e),r=new Date(0);return r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0),(0,a.Z)(r)}(t).getTime();return Math.round(r/s)+1}},7032:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(19013),a=r(13882),o=r(66979);function i(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getUTCFullYear(),i=new Date(0);i.setUTCFullYear(r+1,0,4),i.setUTCHours(0,0,0,0);var s=(0,o.Z)(i),u=new Date(0);u.setUTCFullYear(r,0,4),u.setUTCHours(0,0,0,0);var c=(0,o.Z)(u);return t.getTime()>=s.getTime()?r+1:t.getTime()>=c.getTime()?r:r-1}},23324:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(19013),a=r(59025),o=r(7651),i=r(13882),s=r(83946),u=r(84314);var c=6048e5;function l(e,t){(0,i.Z)(1,arguments);var r=(0,n.default)(e),l=(0,a.Z)(r,t).getTime()-function(e,t){var r,n,c,l,d,p,f,h;(0,i.Z)(1,arguments);var v=(0,u.j)(),m=(0,s.Z)(null!==(r=null!==(n=null!==(c=null!==(l=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null===t||void 0===t||null===(d=t.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==c?c:v.firstWeekContainsDate)&&void 0!==n?n:null===(f=v.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==r?r:1),g=(0,o.Z)(e,t),y=new Date(0);return y.setUTCFullYear(g,0,m),y.setUTCHours(0,0,0,0),(0,a.Z)(y,t)}(r,t).getTime();return Math.round(l/c)+1}},7651:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=r(19013),a=r(13882),o=r(59025),i=r(83946),s=r(84314);function u(e,t){var r,u,c,l,d,p,f,h;(0,a.Z)(1,arguments);var v=(0,n.default)(e),m=v.getUTCFullYear(),g=(0,s.j)(),y=(0,i.Z)(null!==(r=null!==(u=null!==(c=null!==(l=null===t||void 0===t?void 0:t.firstWeekContainsDate)&&void 0!==l?l:null===t||void 0===t||null===(d=t.locale)||void 0===d||null===(p=d.options)||void 0===p?void 0:p.firstWeekContainsDate)&&void 0!==c?c:g.firstWeekContainsDate)&&void 0!==u?u:null===(f=g.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==r?r:1);if(!(y>=1&&y<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var w=new Date(0);w.setUTCFullYear(m+1,0,y),w.setUTCHours(0,0,0,0);var b=(0,o.Z)(w,t),D=new Date(0);D.setUTCFullYear(m,0,y),D.setUTCHours(0,0,0,0);var k=(0,o.Z)(D,t);return v.getTime()>=b.getTime()?m+1:v.getTime()>=k.getTime()?m:m-1}},5267:function(e,t,r){"use strict";r.d(t,{Do:function(){return i},Iu:function(){return o},qp:function(){return s}});var n=["D","DD"],a=["YY","YYYY"];function o(e){return-1!==n.indexOf(e)}function i(e){return-1!==a.indexOf(e)}function s(e,t,r){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}},13882:function(e,t,r){"use strict";function n(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}r.d(t,{Z:function(){return n}})},93645:function(e,t,r){"use strict";r.d(t,{u:function(){return o}});var n={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}},a="trunc";function o(e){return e?n[e]:n[a]}},66979:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getUTCDay(),o=(r<1?7:0)+r-1;return t.setUTCDate(t.getUTCDate()-o),t.setUTCHours(0,0,0,0),t}},59025:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(19013),a=r(13882),o=r(83946),i=r(84314);function s(e,t){var r,s,u,c,l,d,p,f;(0,a.Z)(1,arguments);var h=(0,i.j)(),v=(0,o.Z)(null!==(r=null!==(s=null!==(u=null!==(c=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==c?c:null===t||void 0===t||null===(l=t.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==u?u:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,n.default)(e),g=m.getUTCDay(),y=(g<v?7:0)+g-v;return m.setUTCDate(m.getUTCDate()-y),m.setUTCHours(0,0,0,0),m}},83946:function(e,t,r){"use strict";function n(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}r.d(t,{Z:function(){return n}})},29422:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(71002),a=r(77349),o=r(11640),i=r(19013),s=r(13882),u=r(83946);function c(e,t){if((0,s.Z)(2,arguments),!t||"object"!==(0,n.Z)(t))return new Date(NaN);var r=t.years?(0,u.Z)(t.years):0,c=t.months?(0,u.Z)(t.months):0,l=t.weeks?(0,u.Z)(t.weeks):0,d=t.days?(0,u.Z)(t.days):0,p=t.hours?(0,u.Z)(t.hours):0,f=t.minutes?(0,u.Z)(t.minutes):0,h=t.seconds?(0,u.Z)(t.seconds):0,v=(0,i.default)(e),m=c||r?(0,o.default)(v,c+12*r):v,g=d||l?(0,a.default)(m,d+7*l):m,y=1e3*(h+60*(f+60*p));return new Date(g.getTime()+y)}},77349:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return isNaN(i)?new Date(NaN):i?(r.setDate(r.getDate()+i),r):r}},78343:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(83946),a=r(51820),o=r(13882),i=36e5;function s(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.Z)(e,r*i)}},51820:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e).getTime(),i=(0,n.Z)(t);return new Date(r+i)}},58545:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(83946),a=r(51820),o=r(13882),i=6e4;function s(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.Z)(e,r*i)}},11640:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);if(isNaN(i))return new Date(NaN);if(!i)return r;var s=r.getDate(),u=new Date(r.getTime());return u.setMonth(r.getMonth()+i+1,0),s>=u.getDate()?u:(r.setFullYear(u.getFullYear(),u.getMonth(),s),r)}},8791:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(11640),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=3*(0,n.Z)(t);return(0,a.default)(e,r)}},63500:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(77349),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=7*(0,n.Z)(t);return(0,a.default)(e,r)}},21593:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(11640),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,12*r)}},49474:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t),i=r.getTime()-o.getTime();return i<0?-1:i>0?1:i}},36948:function(e,t,r){"use strict";r.d(t,{qk:function(){return o},vh:function(){return a},yJ:function(){return n}});Math.pow(10,8);var n=6e4,a=36e5,o=1e3},92300:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(24262),a=r(69119),o=r(13882),i=864e5;function s(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),s=(0,a.default)(t),u=r.getTime()-(0,n.Z)(r),c=s.getTime()-(0,n.Z)(s);return Math.round((u-c)/i)}},84129:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return 12*(r.getFullYear()-o.getFullYear())+(r.getMonth()-o.getMonth())}},91857:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()-o.getFullYear()}},67803:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(19013),a=r(92300),o=r(13882);function i(e,t){var r=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return r<0?-1:r>0?1:r}function s(e,t){(0,o.Z)(2,arguments);var r=(0,n.default)(e),s=(0,n.default)(t),u=i(r,s),c=Math.abs((0,a.default)(r,s));r.setDate(r.getDate()-u*c);var l=u*(c-Number(i(r,s)===-u));return 0===l?0:l}},76972:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(36948),a=r(59910),o=r(13882),i=r(93645);function s(e,t,r){(0,o.Z)(2,arguments);var s=(0,a.Z)(e,t)/n.vh;return(0,i.u)(null===r||void 0===r?void 0:r.roundingMethod)(s)}},59910:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){return(0,a.Z)(2,arguments),(0,n.default)(e).getTime()-(0,n.default)(t).getTime()}},69690:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(36948),a=r(59910),o=r(13882),i=r(93645);function s(e,t,r){(0,o.Z)(2,arguments);var s=(0,a.Z)(e,t)/n.yJ;return(0,i.u)(null===r||void 0===r?void 0:r.roundingMethod)(s)}},50157:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(19013),a=r(84129),o=r(49474),i=r(13882),s=r(83894),u=r(4135);function c(e,t){(0,i.Z)(2,arguments);var r,c=(0,n.default)(e),l=(0,n.default)(t),d=(0,o.Z)(c,l),p=Math.abs((0,a.default)(c,l));if(p<1)r=0;else{1===c.getMonth()&&c.getDate()>27&&c.setDate(30),c.setMonth(c.getMonth()-d*p);var f=(0,o.Z)(c,l)===-d;(function(e){(0,i.Z)(1,arguments);var t=(0,n.default)(e);return(0,s.default)(t).getTime()===(0,u.default)(t).getTime()})((0,n.default)(e))&&1===p&&1===(0,o.Z)(e,l)&&(f=!1),r=d*(p-Number(f))}return 0===r?0:r}},11699:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(59910),a=r(13882),o=r(93645);function i(e,t,r){(0,a.Z)(2,arguments);var i=(0,n.Z)(e,t)/1e3;return(0,o.u)(null===r||void 0===r?void 0:r.roundingMethod)(i)}},5001:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(19013),a=r(91857),o=r(49474),i=r(13882);function s(e,t){(0,i.Z)(2,arguments);var r=(0,n.default)(e),s=(0,n.default)(t),u=(0,o.Z)(r,s),c=Math.abs((0,a.default)(r,s));r.setFullYear(1584),s.setFullYear(1584);var l=(0,o.Z)(r,s)===-u,d=u*(c-Number(l));return 0===d?0:d}},83894:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return t.setHours(23,59,59,999),t}},4135:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getMonth();return t.setFullYear(t.getFullYear(),r+1,0),t.setHours(23,59,59,999),t}},67090:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(84314),a=r(19013),o=r(83946),i=r(13882);function s(e,t){var r,s,u,c,l,d,p,f;(0,i.Z)(1,arguments);var h=(0,n.j)(),v=(0,o.Z)(null!==(r=null!==(s=null!==(u=null!==(c=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==c?c:null===t||void 0===t||null===(l=t.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==u?u:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,a.default)(e),g=m.getDay(),y=6+(g<v?-7:0)-(g-v);return m.setDate(m.getDate()+y),m.setHours(23,59,59,999),m}},10876:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getFullYear();return t.setFullYear(r+1,0,0),t.setHours(23,59,59,999),t}},49546:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return L}});var n=r(12274),a=r(91218),o=r(19013),i=r(13882);var s=r(49702),u=r(7032),c=r(23324),l=r(7651);function d(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length<t;)n="0"+n;return r+n}var p={y:function(e,t){var r=e.getUTCFullYear(),n=r>0?r:1-r;return d("yy"===t?n%100:n,t.length)},M:function(e,t){var r=e.getUTCMonth();return"M"===t?String(r+1):d(r+1,2)},d:function(e,t){return d(e.getUTCDate(),t.length)},a:function(e,t){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:function(e,t){return d(e.getUTCHours()%12||12,t.length)},H:function(e,t){return d(e.getUTCHours(),t.length)},m:function(e,t){return d(e.getUTCMinutes(),t.length)},s:function(e,t){return d(e.getUTCSeconds(),t.length)},S:function(e,t){var r=t.length,n=e.getUTCMilliseconds();return d(Math.floor(n*Math.pow(10,r-3)),t.length)}},f="midnight",h="noon",v="morning",m="afternoon",g="evening",y="night",w={G:function(e,t,r){var n=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(e,t,r){if("yo"===t){var n=e.getUTCFullYear(),a=n>0?n:1-n;return r.ordinalNumber(a,{unit:"year"})}return p.y(e,t)},Y:function(e,t,r,n){var a=(0,l.Z)(e,n),o=a>0?a:1-a;return"YY"===t?d(o%100,2):"Yo"===t?r.ordinalNumber(o,{unit:"year"}):d(o,t.length)},R:function(e,t){return d((0,u.Z)(e),t.length)},u:function(e,t){return d(e.getUTCFullYear(),t.length)},Q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return d(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return d(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,r){var n=e.getUTCMonth();switch(t){case"M":case"MM":return p.M(e,t);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,r){var n=e.getUTCMonth();switch(t){case"L":return String(n+1);case"LL":return d(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,r,n){var a=(0,c.Z)(e,n);return"wo"===t?r.ordinalNumber(a,{unit:"week"}):d(a,t.length)},I:function(e,t,r){var n=(0,s.Z)(e);return"Io"===t?r.ordinalNumber(n,{unit:"week"}):d(n,t.length)},d:function(e,t,r){return"do"===t?r.ordinalNumber(e.getUTCDate(),{unit:"date"}):p.d(e,t)},D:function(e,t,r){var n=function(e){(0,i.Z)(1,arguments);var t=(0,o.default)(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=r-t.getTime();return Math.floor(n/864e5)+1}(e);return"Do"===t?r.ordinalNumber(n,{unit:"dayOfYear"}):d(n,t.length)},E:function(e,t,r){var n=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,r,n){var a=e.getUTCDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return d(o,2);case"eo":return r.ordinalNumber(o,{unit:"day"});case"eee":return r.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(a,{width:"short",context:"formatting"});default:return r.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,r,n){var a=e.getUTCDay(),o=(a-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return d(o,t.length);case"co":return r.ordinalNumber(o,{unit:"day"});case"ccc":return r.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(a,{width:"narrow",context:"standalone"});case"cccccc":return r.day(a,{width:"short",context:"standalone"});default:return r.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,r){var n=e.getUTCDay(),a=0===n?7:n;switch(t){case"i":return String(a);case"ii":return d(a,t.length);case"io":return r.ordinalNumber(a,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,r){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(e,t,r){var n,a=e.getUTCHours();switch(n=12===a?h:0===a?f:a/12>=1?"pm":"am",t){case"b":case"bb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(e,t,r){var n,a=e.getUTCHours();switch(n=a>=17?g:a>=12?m:a>=4?v:y,t){case"B":case"BB":case"BBB":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(e,t,r){if("ho"===t){var n=e.getUTCHours()%12;return 0===n&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return p.h(e,t)},H:function(e,t,r){return"Ho"===t?r.ordinalNumber(e.getUTCHours(),{unit:"hour"}):p.H(e,t)},K:function(e,t,r){var n=e.getUTCHours()%12;return"Ko"===t?r.ordinalNumber(n,{unit:"hour"}):d(n,t.length)},k:function(e,t,r){var n=e.getUTCHours();return 0===n&&(n=24),"ko"===t?r.ordinalNumber(n,{unit:"hour"}):d(n,t.length)},m:function(e,t,r){return"mo"===t?r.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):p.m(e,t)},s:function(e,t,r){return"so"===t?r.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):p.s(e,t)},S:function(e,t){return p.S(e,t)},X:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return D(a);case"XXXX":case"XX":return k(a);default:return k(a,":")}},x:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"x":return D(a);case"xxxx":case"xx":return k(a);default:return k(a,":")}},O:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+b(a,":");default:return"GMT"+k(a,":")}},z:function(e,t,r,n){var a=(n._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+b(a,":");default:return"GMT"+k(a,":")}},t:function(e,t,r,n){var a=n._originalDate||e;return d(Math.floor(a.getTime()/1e3),t.length)},T:function(e,t,r,n){return d((n._originalDate||e).getTime(),t.length)}};function b(e,t){var r=e>0?"-":"+",n=Math.abs(e),a=Math.floor(n/60),o=n%60;if(0===o)return r+String(a);var i=t||"";return r+String(a)+i+d(o,2)}function D(e,t){return e%60===0?(e>0?"-":"+")+d(Math.abs(e)/60,2):k(e,t)}function k(e,t){var r=t||"",n=e>0?"-":"+",a=Math.abs(e);return n+d(Math.floor(a/60),2)+r+d(a%60,2)}var C=w,S=r(97621),M=r(24262),T=r(5267),x=r(83946),Z=r(84314),E=r(8958),_=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,P=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,O=/^'([^]*?)'?$/,N=/''/g,Y=/[a-zA-Z]/;function L(e,t,r){var s,u,c,l,d,p,f,h,v,m,g,y,w,b,D,k,L,I;(0,i.Z)(2,arguments);var R=String(t),A=(0,Z.j)(),F=null!==(s=null!==(u=null===r||void 0===r?void 0:r.locale)&&void 0!==u?u:A.locale)&&void 0!==s?s:E.Z,B=(0,x.Z)(null!==(c=null!==(l=null!==(d=null!==(p=null===r||void 0===r?void 0:r.firstWeekContainsDate)&&void 0!==p?p:null===r||void 0===r||null===(f=r.locale)||void 0===f||null===(h=f.options)||void 0===h?void 0:h.firstWeekContainsDate)&&void 0!==d?d:A.firstWeekContainsDate)&&void 0!==l?l:null===(v=A.locale)||void 0===v||null===(m=v.options)||void 0===m?void 0:m.firstWeekContainsDate)&&void 0!==c?c:1);if(!(B>=1&&B<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var j=(0,x.Z)(null!==(g=null!==(y=null!==(w=null!==(b=null===r||void 0===r?void 0:r.weekStartsOn)&&void 0!==b?b:null===r||void 0===r||null===(D=r.locale)||void 0===D||null===(k=D.options)||void 0===k?void 0:k.weekStartsOn)&&void 0!==w?w:A.weekStartsOn)&&void 0!==y?y:null===(L=A.locale)||void 0===L||null===(I=L.options)||void 0===I?void 0:I.weekStartsOn)&&void 0!==g?g:0);if(!(j>=0&&j<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!F.localize)throw new RangeError("locale must contain localize property");if(!F.formatLong)throw new RangeError("locale must contain formatLong property");var H=(0,o.default)(e);if(!(0,n.default)(H))throw new RangeError("Invalid time value");var U=(0,M.Z)(H),W=(0,a.Z)(H,U),q={firstWeekContainsDate:B,weekStartsOn:j,locale:F,_originalDate:H};return R.match(P).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,S.Z[t])(e,F.formatLong):e})).join("").match(_).map((function(n){if("''"===n)return"'";var a=n[0];if("'"===a)return function(e){var t=e.match(O);if(!t)return e;return t[1].replace(N,"'")}(n);var o=C[a];if(o)return null!==r&&void 0!==r&&r.useAdditionalWeekYearTokens||!(0,T.Do)(n)||(0,T.qp)(n,t,String(e)),null!==r&&void 0!==r&&r.useAdditionalDayOfYearTokens||!(0,T.Iu)(n)||(0,T.qp)(n,t,String(e)),o(W,n,F.localize,q);if(a.match(Y))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");return n})).join("")}},936:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=r(84314),a=r(24262),o=r(49474),i=r(19013),s=r(52149);var u=r(8958),c=r(13882),l=6e4,d=1440,p=30*d,f=365*d;function h(e,t,r){var h,v,m;(0,c.Z)(2,arguments);var g=(0,n.j)(),y=null!==(h=null!==(v=null===r||void 0===r?void 0:r.locale)&&void 0!==v?v:g.locale)&&void 0!==h?h:u.Z;if(!y.formatDistance)throw new RangeError("locale must contain localize.formatDistance property");var w=(0,o.Z)(e,t);if(isNaN(w))throw new RangeError("Invalid time value");var b,D,k,C=(0,s.Z)((b=r,(0,s.Z)({},b)),{addSuffix:Boolean(null===r||void 0===r?void 0:r.addSuffix),comparison:w});w>0?(D=(0,i.default)(t),k=(0,i.default)(e)):(D=(0,i.default)(e),k=(0,i.default)(t));var S,M=String(null!==(m=null===r||void 0===r?void 0:r.roundingMethod)&&void 0!==m?m:"round");if("floor"===M)S=Math.floor;else if("ceil"===M)S=Math.ceil;else{if("round"!==M)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");S=Math.round}var T,x=k.getTime()-D.getTime(),Z=x/l,E=(x-((0,a.Z)(k)-(0,a.Z)(D)))/l,_=null===r||void 0===r?void 0:r.unit;if("second"===(T=_?String(_):Z<1?"second":Z<60?"minute":Z<d?"hour":E<p?"day":E<f?"month":"year")){var P=S(x/1e3);return y.formatDistance("xSeconds",P,C)}if("minute"===T){var O=S(Z);return y.formatDistance("xMinutes",O,C)}if("hour"===T){var N=S(Z/60);return y.formatDistance("xHours",N,C)}if("day"===T){var Y=S(E/d);return y.formatDistance("xDays",Y,C)}if("month"===T){var L=S(E/p);return 12===L&&"month"!==_?y.formatDistance("xYears",1,C):y.formatDistance("xMonths",L,C)}if("year"===T){var I=S(E/f);return y.formatDistance("xYears",I,C)}throw new RangeError("unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'")}},55855:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getDate()}},20466:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getDay()}},85817:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getHours()}},9827:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return c}});var n=r(19013),a=r(584),o=r(13882);function i(e){return(0,o.Z)(1,arguments),(0,a.default)(e,{weekStartsOn:1})}function s(e){(0,o.Z)(1,arguments);var t=function(e){(0,o.Z)(1,arguments);var t=(0,n.default)(e),r=t.getFullYear(),a=new Date(0);a.setFullYear(r+1,0,4),a.setHours(0,0,0,0);var s=i(a),u=new Date(0);u.setFullYear(r,0,4),u.setHours(0,0,0,0);var c=i(u);return t.getTime()>=s.getTime()?r+1:t.getTime()>=c.getTime()?r:r-1}(e),r=new Date(0);return r.setFullYear(t,0,4),r.setHours(0,0,0,0),i(r)}var u=6048e5;function c(e){(0,o.Z)(1,arguments);var t=(0,n.default)(e),r=i(t).getTime()-s(t).getTime();return Math.round(r/u)+1}},39159:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getMinutes()}},78966:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getMonth()}},56605:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return Math.floor(t.getMonth()/3)+1}},77881:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getSeconds()}},28789:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getTime()}},99982:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(28789),a=r(13882);function o(e){return(0,a.Z)(1,arguments),Math.floor((0,n.default)(e)/1e3)}},95570:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){return(0,a.Z)(1,arguments),(0,n.default)(e).getFullYear()}},33926:function(e,t,r){"use strict";r.d(t,{Z:function(){return f}});var n=r(49474),a=r(29422),o=r(67803),i=r(76972),s=r(69690),u=r(50157),c=r(11699),l=r(5001),d=r(19013),p=r(13882);function f(e){(0,p.Z)(1,arguments);var t=(0,d.default)(e.start),r=(0,d.default)(e.end);if(isNaN(t.getTime()))throw new RangeError("Start Date is invalid");if(isNaN(r.getTime()))throw new RangeError("End Date is invalid");var f={};f.years=Math.abs((0,l.Z)(r,t));var h=(0,n.Z)(r,t),v=(0,a.Z)(t,{years:h*f.years});f.months=Math.abs((0,u.Z)(r,v));var m=(0,a.Z)(v,{months:h*f.months});f.days=Math.abs((0,o.Z)(r,m));var g=(0,a.Z)(m,{days:h*f.days});f.hours=Math.abs((0,i.Z)(r,g));var y=(0,a.Z)(g,{hours:h*f.hours});f.minutes=Math.abs((0,s.Z)(r,y));var w=(0,a.Z)(y,{minutes:h*f.minutes});return f.seconds=Math.abs((0,c.Z)(r,w)),f}},42699:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()>o.getTime()}},313:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()<o.getTime()}},71381:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(71002),a=r(13882);function o(e){return(0,a.Z)(1,arguments),e instanceof Date||"object"===(0,n.Z)(e)&&"[object Date]"===Object.prototype.toString.call(e)}},96843:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},38431:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(76417),a=r(12274),o=r(13882);function i(e,t,r){return(0,o.Z)(2,arguments),(0,a.default)((0,n.default)(e,t,new Date,r))}},3151:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(69119),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},49160:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()===o.getFullYear()&&r.getMonth()===o.getMonth()}},86117:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(94431),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getTime()===o.getTime()}},60792:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e),o=(0,n.default)(t);return r.getFullYear()===o.getFullYear()}},12274:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(71381),a=r(19013),o=r(13882);function i(e){if((0,o.Z)(1,arguments),!(0,n.default)(e)&&"number"!==typeof e)return!1;var t=(0,a.default)(e);return!isNaN(Number(t))}},24257:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e,t){(0,a.Z)(2,arguments);var r=(0,n.default)(e).getTime(),o=(0,n.default)(t.start).getTime(),i=(0,n.default)(t.end).getTime();if(!(o<=i))throw new RangeError("Invalid interval");return r>=o&&r<=i}},99890:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(71002),a=r(19013),o=r(13882);function i(e){var t,r;if((0,o.Z)(1,arguments),e&&"function"===typeof e.forEach)t=e;else{if("object"!==(0,n.Z)(e)||null===e)return new Date(NaN);t=Array.prototype.slice.call(e)}return t.forEach((function(e){var t=(0,a.default)(e);(void 0===r||r<t||isNaN(Number(t)))&&(r=t)})),r||new Date(NaN)}},37950:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(71002),a=r(19013),o=r(13882);function i(e){var t,r;if((0,o.Z)(1,arguments),e&&"function"===typeof e.forEach)t=e;else{if("object"!==(0,n.Z)(e)||null===e)return new Date(NaN);t=Array.prototype.slice.call(e)}return t.forEach((function(e){var t=(0,a.default)(e);(void 0===r||r>t||isNaN(t.getDate()))&&(r=t)})),r||new Date(NaN)}},76417:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return Ye}});var n=r(71002),a=r(40181);function o(e,t){var r="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=(0,a.Z)(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw i}}}}var i=r(8958),s=r(91218),u=r(19013),c=r(52149),l=r(97621),d=r(24262),p=r(5267),f=r(83946),h=r(13882),v=r(97326),m=r(60136),g=r(29388),y=r(15671),w=r(43144),b=r(4942),D=function(){function e(){(0,y.Z)(this,e),(0,b.Z)(this,"priority",void 0),(0,b.Z)(this,"subPriority",0)}return(0,w.Z)(e,[{key:"validate",value:function(e,t){return!0}}]),e}(),k=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(e,n,a,o,i){var s;return(0,y.Z)(this,r),(s=t.call(this)).value=e,s.validateValue=n,s.setValue=a,s.priority=o,i&&(s.subPriority=i),s}return(0,w.Z)(r,[{key:"validate",value:function(e,t){return this.validateValue(e,this.value,t)}},{key:"set",value:function(e,t,r){return this.setValue(e,t,this.value,r)}}]),r}(D),C=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",10),(0,b.Z)((0,v.Z)(e),"subPriority",-1),e}return(0,w.Z)(r,[{key:"set",value:function(e,t){if(t.timestampIsSet)return e;var r=new Date(0);return r.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),r.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),r}}]),r}(D),S=function(){function e(){(0,y.Z)(this,e),(0,b.Z)(this,"incompatibleTokens",void 0),(0,b.Z)(this,"priority",void 0),(0,b.Z)(this,"subPriority",void 0)}return(0,w.Z)(e,[{key:"run",value:function(e,t,r,n){var a=this.parse(e,t,r,n);return a?{setter:new k(a.value,this.validate,this.set,this.priority,this.subPriority),rest:a.rest}:null}},{key:"validate",value:function(e,t,r){return!0}}]),e}(),M=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",140),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["R","u","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"G":case"GG":case"GGG":return r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"});case"GGGGG":return r.era(e,{width:"narrow"});default:return r.era(e,{width:"wide"})||r.era(e,{width:"abbreviated"})||r.era(e,{width:"narrow"})}}},{key:"set",value:function(e,t,r){return t.era=r,e.setUTCFullYear(r,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),T=r(36948),x={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Z=/^([+-])(\d{2})(\d{2})?|Z/,E=/^([+-])(\d{2})(\d{2})|Z/,_=/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,P=/^([+-])(\d{2}):(\d{2})|Z/,O=/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/;function N(e,t){return e?{value:t(e.value),rest:e.rest}:e}function Y(e,t){var r=t.match(e);return r?{value:parseInt(r[0],10),rest:t.slice(r[0].length)}:null}function L(e,t){var r=t.match(e);if(!r)return null;if("Z"===r[0])return{value:0,rest:t.slice(1)};var n="+"===r[1]?1:-1,a=r[2]?parseInt(r[2],10):0,o=r[3]?parseInt(r[3],10):0,i=r[5]?parseInt(r[5],10):0;return{value:n*(a*T.vh+o*T.yJ+i*T.qk),rest:t.slice(r[0].length)}}function I(e){return Y(x.anyDigitsSigned,e)}function R(e,t){switch(e){case 1:return Y(x.singleDigit,t);case 2:return Y(x.twoDigits,t);case 3:return Y(x.threeDigits,t);case 4:return Y(x.fourDigits,t);default:return Y(new RegExp("^\\d{1,"+e+"}"),t)}}function A(e,t){switch(e){case 1:return Y(x.singleDigitSigned,t);case 2:return Y(x.twoDigitsSigned,t);case 3:return Y(x.threeDigitsSigned,t);case 4:return Y(x.fourDigitsSigned,t);default:return Y(new RegExp("^-?\\d{1,"+e+"}"),t)}}function F(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;default:return 0}}function B(e,t){var r,n=t>0,a=n?t:1-t;if(a<=50)r=e||100;else{var o=a+50;r=e+100*Math.floor(o/100)-(e>=o%100?100:0)}return n?r:1-r}function j(e){return e%400===0||e%4===0&&e%100!==0}var H=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","u","w","I","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return{year:e,isTwoDigitYear:"yy"===t}};switch(t){case"y":return N(R(4,e),n);case"yo":return N(r.ordinalNumber(e,{unit:"year"}),n);default:return N(R(t.length,e),n)}}},{key:"validate",value:function(e,t){return t.isTwoDigitYear||t.year>0}},{key:"set",value:function(e,t,r){var n=e.getUTCFullYear();if(r.isTwoDigitYear){var a=B(r.year,n);return e.setUTCFullYear(a,0,1),e.setUTCHours(0,0,0,0),e}var o="era"in t&&1!==t.era?1-r.year:r.year;return e.setUTCFullYear(o,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),U=r(7651),W=r(59025),q=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","Q","q","M","L","I","d","D","i","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return{year:e,isTwoDigitYear:"YY"===t}};switch(t){case"Y":return N(R(4,e),n);case"Yo":return N(r.ordinalNumber(e,{unit:"year"}),n);default:return N(R(t.length,e),n)}}},{key:"validate",value:function(e,t){return t.isTwoDigitYear||t.year>0}},{key:"set",value:function(e,t,r,n){var a=(0,U.Z)(e,n);if(r.isTwoDigitYear){var o=B(r.year,a);return e.setUTCFullYear(o,0,n.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,W.Z)(e,n)}var i="era"in t&&1!==t.era?1-r.year:r.year;return e.setUTCFullYear(i,0,n.firstWeekContainsDate),e.setUTCHours(0,0,0,0),(0,W.Z)(e,n)}}]),r}(S),Q=r(66979),K=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){return A("R"===t?4:t.length,e)}},{key:"set",value:function(e,t,r){var n=new Date(0);return n.setUTCFullYear(r,0,4),n.setUTCHours(0,0,0,0),(0,Q.Z)(n)}}]),r}(S),V=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",130),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["G","y","Y","R","w","I","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){return A("u"===t?4:t.length,e)}},{key:"set",value:function(e,t,r){return e.setUTCFullYear(r,0,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),z=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",120),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"Q":case"QQ":return R(t.length,e);case"Qo":return r.ordinalNumber(e,{unit:"quarter"});case"QQQ":return r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(e,{width:"narrow",context:"formatting"});default:return r.quarter(e,{width:"wide",context:"formatting"})||r.quarter(e,{width:"abbreviated",context:"formatting"})||r.quarter(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=1&&t<=4}},{key:"set",value:function(e,t,r){return e.setUTCMonth(3*(r-1),1),e.setUTCHours(0,0,0,0),e}}]),r}(S),G=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",120),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"q":case"qq":return R(t.length,e);case"qo":return r.ordinalNumber(e,{unit:"quarter"});case"qqq":return r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(e,{width:"narrow",context:"standalone"});default:return r.quarter(e,{width:"wide",context:"standalone"})||r.quarter(e,{width:"abbreviated",context:"standalone"})||r.quarter(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=1&&t<=4}},{key:"set",value:function(e,t,r){return e.setUTCMonth(3*(r-1),1),e.setUTCHours(0,0,0,0),e}}]),r}(S),X=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]),(0,b.Z)((0,v.Z)(e),"priority",110),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return e-1};switch(t){case"M":return N(Y(x.month,e),n);case"MM":return N(R(2,e),n);case"Mo":return N(r.ordinalNumber(e,{unit:"month"}),n);case"MMM":return r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(e,{width:"narrow",context:"formatting"});default:return r.month(e,{width:"wide",context:"formatting"})||r.month(e,{width:"abbreviated",context:"formatting"})||r.month(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.setUTCMonth(r,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),J=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",110),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return e-1};switch(t){case"L":return N(Y(x.month,e),n);case"LL":return N(R(2,e),n);case"Lo":return N(r.ordinalNumber(e,{unit:"month"}),n);case"LLL":return r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(e,{width:"narrow",context:"standalone"});default:return r.month(e,{width:"wide",context:"standalone"})||r.month(e,{width:"abbreviated",context:"standalone"})||r.month(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.setUTCMonth(r,1),e.setUTCHours(0,0,0,0),e}}]),r}(S),$=r(23324);var ee=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",100),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","i","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"w":return Y(x.week,e);case"wo":return r.ordinalNumber(e,{unit:"week"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=53}},{key:"set",value:function(e,t,r,n){return(0,W.Z)(function(e,t,r){(0,h.Z)(2,arguments);var n=(0,u.default)(e),a=(0,f.Z)(t),o=(0,$.Z)(n,r)-a;return n.setUTCDate(n.getUTCDate()-7*o),n}(e,r,n),n)}}]),r}(S),te=r(49702);var re=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",100),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"I":return Y(x.week,e);case"Io":return r.ordinalNumber(e,{unit:"week"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=53}},{key:"set",value:function(e,t,r){return(0,Q.Z)(function(e,t){(0,h.Z)(2,arguments);var r=(0,u.default)(e),n=(0,f.Z)(t),a=(0,te.Z)(r)-n;return r.setUTCDate(r.getUTCDate()-7*a),r}(e,r))}}]),r}(S),ne=[31,28,31,30,31,30,31,31,30,31,30,31],ae=[31,29,31,30,31,30,31,31,30,31,30,31],oe=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"subPriority",1),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","w","I","D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"d":return Y(x.date,e);case"do":return r.ordinalNumber(e,{unit:"date"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){var r=j(e.getUTCFullYear()),n=e.getUTCMonth();return r?t>=1&&t<=ae[n]:t>=1&&t<=ne[n]}},{key:"set",value:function(e,t,r){return e.setUTCDate(r),e.setUTCHours(0,0,0,0),e}}]),r}(S),ie=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"subpriority",1),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"D":case"DD":return Y(x.dayOfYear,e);case"Do":return r.ordinalNumber(e,{unit:"date"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return j(e.getUTCFullYear())?t>=1&&t<=366:t>=1&&t<=365}},{key:"set",value:function(e,t,r){return e.setUTCMonth(0,r),e.setUTCHours(0,0,0,0),e}}]),r}(S),se=r(84314);function ue(e,t,r){var n,a,o,i,s,c,l,d;(0,h.Z)(2,arguments);var p=(0,se.j)(),v=(0,f.Z)(null!==(n=null!==(a=null!==(o=null!==(i=null===r||void 0===r?void 0:r.weekStartsOn)&&void 0!==i?i:null===r||void 0===r||null===(s=r.locale)||void 0===s||null===(c=s.options)||void 0===c?void 0:c.weekStartsOn)&&void 0!==o?o:p.weekStartsOn)&&void 0!==a?a:null===(l=p.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==n?n:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,u.default)(e),g=(0,f.Z)(t),y=((g%7+7)%7<v?7:0)+g-m.getUTCDay();return m.setUTCDate(m.getUTCDate()+y),m}var ce=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["D","i","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"E":case"EE":case"EEE":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(e,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=ue(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(S),le=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r,n){var a=function(e){var t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"e":case"ee":return N(R(t.length,e),a);case"eo":return N(r.ordinalNumber(e,{unit:"day"}),a);case"eee":return r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});case"eeeee":return r.day(e,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"});default:return r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=ue(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(S),de=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r,n){var a=function(e){var t=7*Math.floor((e-1)/7);return(e+n.weekStartsOn+6)%7+t};switch(t){case"c":case"cc":return N(R(t.length,e),a);case"co":return N(r.ordinalNumber(e,{unit:"day"}),a);case"ccc":return r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});case"ccccc":return r.day(e,{width:"narrow",context:"standalone"});case"cccccc":return r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"});default:return r.day(e,{width:"wide",context:"standalone"})||r.day(e,{width:"abbreviated",context:"standalone"})||r.day(e,{width:"short",context:"standalone"})||r.day(e,{width:"narrow",context:"standalone"})}}},{key:"validate",value:function(e,t){return t>=0&&t<=6}},{key:"set",value:function(e,t,r,n){return(e=ue(e,r,n)).setUTCHours(0,0,0,0),e}}]),r}(S);var pe=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",90),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){var n=function(e){return 0===e?7:e};switch(t){case"i":case"ii":return R(t.length,e);case"io":return r.ordinalNumber(e,{unit:"day"});case"iii":return N(r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiii":return N(r.day(e,{width:"narrow",context:"formatting"}),n);case"iiiiii":return N(r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n);default:return N(r.day(e,{width:"wide",context:"formatting"})||r.day(e,{width:"abbreviated",context:"formatting"})||r.day(e,{width:"short",context:"formatting"})||r.day(e,{width:"narrow",context:"formatting"}),n)}}},{key:"validate",value:function(e,t){return t>=1&&t<=7}},{key:"set",value:function(e,t,r){return e=function(e,t){(0,h.Z)(2,arguments);var r=(0,f.Z)(t);r%7===0&&(r-=7);var n=(0,u.default)(e),a=((r%7+7)%7<1?7:0)+r-n.getUTCDay();return n.setUTCDate(n.getUTCDate()+a),n}(e,r),e.setUTCHours(0,0,0,0),e}}]),r}(S),fe=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",80),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["b","B","H","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"a":case"aa":case"aaa":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(F(r),0,0,0),e}}]),r}(S),he=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",80),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","B","H","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"b":case"bb":case"bbb":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(F(r),0,0,0),e}}]),r}(S),ve=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",80),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","b","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"B":case"BB":case"BBB":return r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(e,{width:"narrow",context:"formatting"});default:return r.dayPeriod(e,{width:"wide",context:"formatting"})||r.dayPeriod(e,{width:"abbreviated",context:"formatting"})||r.dayPeriod(e,{width:"narrow",context:"formatting"})}}},{key:"set",value:function(e,t,r){return e.setUTCHours(F(r),0,0,0),e}}]),r}(S),me=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["H","K","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"h":return Y(x.hour12h,e);case"ho":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=12}},{key:"set",value:function(e,t,r){var n=e.getUTCHours()>=12;return n&&r<12?e.setUTCHours(r+12,0,0,0):n||12!==r?e.setUTCHours(r,0,0,0):e.setUTCHours(0,0,0,0),e}}]),r}(S),ge=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","b","h","K","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"H":return Y(x.hour23h,e);case"Ho":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=23}},{key:"set",value:function(e,t,r){return e.setUTCHours(r,0,0,0),e}}]),r}(S),ye=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["h","H","k","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"K":return Y(x.hour11h,e);case"Ko":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=11}},{key:"set",value:function(e,t,r){return e.getUTCHours()>=12&&r<12?e.setUTCHours(r+12,0,0,0):e.setUTCHours(r,0,0,0),e}}]),r}(S),we=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",70),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["a","b","h","H","K","t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"k":return Y(x.hour24h,e);case"ko":return r.ordinalNumber(e,{unit:"hour"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=1&&t<=24}},{key:"set",value:function(e,t,r){var n=r<=24?r%24:r;return e.setUTCHours(n,0,0,0),e}}]),r}(S),be=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",60),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"m":return Y(x.minute,e);case"mo":return r.ordinalNumber(e,{unit:"minute"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=59}},{key:"set",value:function(e,t,r){return e.setUTCMinutes(r,0,0),e}}]),r}(S),De=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",50),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t,r){switch(t){case"s":return Y(x.second,e);case"so":return r.ordinalNumber(e,{unit:"second"});default:return R(t.length,e)}}},{key:"validate",value:function(e,t){return t>=0&&t<=59}},{key:"set",value:function(e,t,r){return e.setUTCSeconds(r,0),e}}]),r}(S),ke=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",30),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){return N(R(t.length,e),(function(e){return Math.floor(e*Math.pow(10,3-t.length))}))}},{key:"set",value:function(e,t,r){return e.setUTCMilliseconds(r),e}}]),r}(S),Ce=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",10),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T","x"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){switch(t){case"X":return L(Z,e);case"XX":return L(E,e);case"XXXX":return L(_,e);case"XXXXX":return L(O,e);default:return L(P,e)}}},{key:"set",value:function(e,t,r){return t.timestampIsSet?e:new Date(e.getTime()-r)}}]),r}(S),Se=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",10),(0,b.Z)((0,v.Z)(e),"incompatibleTokens",["t","T","X"]),e}return(0,w.Z)(r,[{key:"parse",value:function(e,t){switch(t){case"x":return L(Z,e);case"xx":return L(E,e);case"xxxx":return L(_,e);case"xxxxx":return L(O,e);default:return L(P,e)}}},{key:"set",value:function(e,t,r){return t.timestampIsSet?e:new Date(e.getTime()-r)}}]),r}(S),Me=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",40),(0,b.Z)((0,v.Z)(e),"incompatibleTokens","*"),e}return(0,w.Z)(r,[{key:"parse",value:function(e){return I(e)}},{key:"set",value:function(e,t,r){return[new Date(1e3*r),{timestampIsSet:!0}]}}]),r}(S),Te=function(e){(0,m.Z)(r,e);var t=(0,g.Z)(r);function r(){var e;(0,y.Z)(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return e=t.call.apply(t,[this].concat(a)),(0,b.Z)((0,v.Z)(e),"priority",20),(0,b.Z)((0,v.Z)(e),"incompatibleTokens","*"),e}return(0,w.Z)(r,[{key:"parse",value:function(e){return I(e)}},{key:"set",value:function(e,t,r){return[new Date(r),{timestampIsSet:!0}]}}]),r}(S),xe={G:new M,y:new H,Y:new q,R:new K,u:new V,Q:new z,q:new G,M:new X,L:new J,w:new ee,I:new re,d:new oe,D:new ie,E:new ce,e:new le,c:new de,i:new pe,a:new fe,b:new he,B:new ve,h:new me,H:new ge,K:new ye,k:new we,m:new be,s:new De,S:new ke,X:new Ce,x:new Se,t:new Me,T:new Te},Ze=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ee=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,_e=/^'([^]*?)'?$/,Pe=/''/g,Oe=/\S/,Ne=/[a-zA-Z]/;function Ye(e,t,r,a){var v,m,g,y,w,b,D,k,S,M,T,x,Z,E,_,P,O,N;(0,h.Z)(3,arguments);var Y=String(e),L=String(t),I=(0,se.j)(),R=null!==(v=null!==(m=null===a||void 0===a?void 0:a.locale)&&void 0!==m?m:I.locale)&&void 0!==v?v:i.Z;if(!R.match)throw new RangeError("locale must contain match property");var A=(0,f.Z)(null!==(g=null!==(y=null!==(w=null!==(b=null===a||void 0===a?void 0:a.firstWeekContainsDate)&&void 0!==b?b:null===a||void 0===a||null===(D=a.locale)||void 0===D||null===(k=D.options)||void 0===k?void 0:k.firstWeekContainsDate)&&void 0!==w?w:I.firstWeekContainsDate)&&void 0!==y?y:null===(S=I.locale)||void 0===S||null===(M=S.options)||void 0===M?void 0:M.firstWeekContainsDate)&&void 0!==g?g:1);if(!(A>=1&&A<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var F=(0,f.Z)(null!==(T=null!==(x=null!==(Z=null!==(E=null===a||void 0===a?void 0:a.weekStartsOn)&&void 0!==E?E:null===a||void 0===a||null===(_=a.locale)||void 0===_||null===(P=_.options)||void 0===P?void 0:P.weekStartsOn)&&void 0!==Z?Z:I.weekStartsOn)&&void 0!==x?x:null===(O=I.locale)||void 0===O||null===(N=O.options)||void 0===N?void 0:N.weekStartsOn)&&void 0!==T?T:0);if(!(F>=0&&F<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(""===L)return""===Y?(0,u.default)(r):new Date(NaN);var B,j={firstWeekContainsDate:A,weekStartsOn:F,locale:R},H=[new C],U=L.match(Ee).map((function(e){var t=e[0];return t in l.Z?(0,l.Z[t])(e,R.formatLong):e})).join("").match(Ze),W=[],q=o(U);try{var Q=function(){var t=B.value;null!==a&&void 0!==a&&a.useAdditionalWeekYearTokens||!(0,p.Do)(t)||(0,p.qp)(t,L,e),null!==a&&void 0!==a&&a.useAdditionalDayOfYearTokens||!(0,p.Iu)(t)||(0,p.qp)(t,L,e);var r=t[0],n=xe[r];if(n){var o=n.incompatibleTokens;if(Array.isArray(o)){var i=W.find((function(e){return o.includes(e.token)||e.token===r}));if(i)throw new RangeError("The format string mustn't contain `".concat(i.fullToken,"` and `").concat(t,"` at the same time"))}else if("*"===n.incompatibleTokens&&W.length>0)throw new RangeError("The format string mustn't contain `".concat(t,"` and any other token at the same time"));W.push({token:r,fullToken:t});var s=n.run(Y,t,R.match,j);if(!s)return{v:new Date(NaN)};H.push(s.setter),Y=s.rest}else{if(r.match(Ne))throw new RangeError("Format string contains an unescaped latin alphabet character `"+r+"`");if("''"===t?t="'":"'"===r&&(t=t.match(_e)[1].replace(Pe,"'")),0!==Y.indexOf(t))return{v:new Date(NaN)};Y=Y.slice(t.length)}};for(q.s();!(B=q.n()).done;){var K=Q();if("object"===(0,n.Z)(K))return K.v}}catch(re){q.e(re)}finally{q.f()}if(Y.length>0&&Oe.test(Y))return new Date(NaN);var V=H.map((function(e){return e.priority})).sort((function(e,t){return t-e})).filter((function(e,t,r){return r.indexOf(e)===t})).map((function(e){return H.filter((function(t){return t.priority===e})).sort((function(e,t){return t.subPriority-e.subPriority}))})).map((function(e){return e[0]})),z=(0,u.default)(r);if(isNaN(z.getTime()))return new Date(NaN);var G,X=(0,s.Z)(z,(0,d.Z)(z)),J={},$=o(V);try{for($.s();!(G=$.n()).done;){var ee=G.value;if(!ee.validate(X,j))return new Date(NaN);var te=ee.set(X,J,j);Array.isArray(te)?(X=te[0],(0,c.Z)(J,te[1])):X=te}}catch(re){$.e(re)}finally{$.f()}return X}},23855:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(36948),a=r(13882),o=r(83946);function i(e,t){var r;(0,a.Z)(1,arguments);var i=(0,o.Z)(null!==(r=null===t||void 0===t?void 0:t.additionalDigits)&&void 0!==r?r:2);if(2!==i&&1!==i&&0!==i)throw new RangeError("additionalDigits must be 0, 1 or 2");if("string"!==typeof e&&"[object String]"!==Object.prototype.toString.call(e))return new Date(NaN);var v,m=function(e){var t,r={},n=e.split(s.dateTimeDelimiter);if(n.length>2)return r;/:/.test(n[0])?t=n[0]:(r.date=n[0],t=n[1],s.timeZoneDelimiter.test(r.date)&&(r.date=e.split(s.timeZoneDelimiter)[0],t=e.substr(r.date.length,e.length)));if(t){var a=s.timezone.exec(t);a?(r.time=t.replace(a[1],""),r.timezone=a[1]):r.time=t}return r}(e);if(m.date){var g=function(e,t){var r=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),n=e.match(r);if(!n)return{year:NaN,restDateString:""};var a=n[1]?parseInt(n[1]):null,o=n[2]?parseInt(n[2]):null;return{year:null===o?a:100*o,restDateString:e.slice((n[1]||n[2]).length)}}(m.date,i);v=function(e,t){if(null===t)return new Date(NaN);var r=e.match(u);if(!r)return new Date(NaN);var n=!!r[4],a=d(r[1]),o=d(r[2])-1,i=d(r[3]),s=d(r[4]),c=d(r[5])-1;if(n)return function(e,t,r){return t>=1&&t<=53&&r>=0&&r<=6}(0,s,c)?function(e,t,r){var n=new Date(0);n.setUTCFullYear(e,0,4);var a=n.getUTCDay()||7,o=7*(t-1)+r+1-a;return n.setUTCDate(n.getUTCDate()+o),n}(t,s,c):new Date(NaN);var l=new Date(0);return function(e,t,r){return t>=0&&t<=11&&r>=1&&r<=(f[t]||(h(e)?29:28))}(t,o,i)&&function(e,t){return t>=1&&t<=(h(e)?366:365)}(t,a)?(l.setUTCFullYear(t,o,Math.max(a,i)),l):new Date(NaN)}(g.restDateString,g.year)}if(!v||isNaN(v.getTime()))return new Date(NaN);var y,w=v.getTime(),b=0;if(m.time&&(b=function(e){var t=e.match(c);if(!t)return NaN;var r=p(t[1]),a=p(t[2]),o=p(t[3]);if(!function(e,t,r){if(24===e)return 0===t&&0===r;return r>=0&&r<60&&t>=0&&t<60&&e>=0&&e<25}(r,a,o))return NaN;return r*n.vh+a*n.yJ+1e3*o}(m.time),isNaN(b)))return new Date(NaN);if(!m.timezone){var D=new Date(w+b),k=new Date(0);return k.setFullYear(D.getUTCFullYear(),D.getUTCMonth(),D.getUTCDate()),k.setHours(D.getUTCHours(),D.getUTCMinutes(),D.getUTCSeconds(),D.getUTCMilliseconds()),k}return y=function(e){if("Z"===e)return 0;var t=e.match(l);if(!t)return 0;var r="+"===t[1]?-1:1,a=parseInt(t[2]),o=t[3]&&parseInt(t[3])||0;if(!function(e,t){return t>=0&&t<=59}(0,o))return NaN;return r*(a*n.vh+o*n.yJ)}(m.timezone),isNaN(y)?new Date(NaN):new Date(w+b+y)}var s={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},u=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,c=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,l=/^([+-])(\d{2})(?::?(\d{2}))?$/;function d(e){return e?parseInt(e):1}function p(e){return e&&parseFloat(e.replace(",","."))||0}var f=[31,null,31,30,31,30,31,31,30,31,30,31];function h(e){return e%400===0||e%4===0&&e%100!==0}},92311:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return u}});var n=r(71002),a=r(19013),o=r(62225),i=r(83946),s=r(13882);function u(e,t){if((0,s.Z)(2,arguments),"object"!==(0,n.Z)(t)||null===t)throw new RangeError("values parameter must be an object");var r=(0,a.default)(e);return isNaN(r.getTime())?new Date(NaN):(null!=t.year&&r.setFullYear(t.year),null!=t.month&&(r=(0,o.default)(r,t.month)),null!=t.date&&r.setDate((0,i.Z)(t.date)),null!=t.hours&&r.setHours((0,i.Z)(t.hours)),null!=t.minutes&&r.setMinutes((0,i.Z)(t.minutes)),null!=t.seconds&&r.setSeconds((0,i.Z)(t.seconds)),null!=t.milliseconds&&r.setMilliseconds((0,i.Z)(t.milliseconds)),r)}},37042:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return r.setHours(i),r}},4543:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return r.setMinutes(i),r}},62225:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t),s=r.getFullYear(),u=r.getDate(),c=new Date(0);c.setFullYear(s,i,15),c.setHours(0,0,0,0);var l=function(e){(0,o.Z)(1,arguments);var t=(0,a.default)(e),r=t.getFullYear(),n=t.getMonth(),i=new Date(0);return i.setFullYear(r,n+1,0),i.setHours(0,0,0,0),i.getDate()}(c);return r.setMonth(i,Math.min(u,l)),r}},11503:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(83946),a=r(19013),o=r(62225),i=r(13882);function s(e,t){(0,i.Z)(2,arguments);var r=(0,a.default)(e),s=(0,n.Z)(t)-(Math.floor(r.getMonth()/3)+1);return(0,o.default)(r,r.getMonth()+3*s)}},39880:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return r.setSeconds(i),r}},44749:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(19013),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,a.default)(e),i=(0,n.Z)(t);return isNaN(r.getTime())?new Date(NaN):(r.setFullYear(i),r)}},69119:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return t.setHours(0,0,0,0),t}},43703:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e);return t.setDate(1),t.setHours(0,0,0,0),t}},94431:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=t.getMonth(),o=r-r%3;return t.setMonth(o,1),t.setHours(0,0,0,0),t}},584:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return s}});var n=r(19013),a=r(83946),o=r(13882),i=r(84314);function s(e,t){var r,s,u,c,l,d,p,f;(0,o.Z)(1,arguments);var h=(0,i.j)(),v=(0,a.Z)(null!==(r=null!==(s=null!==(u=null!==(c=null===t||void 0===t?void 0:t.weekStartsOn)&&void 0!==c?c:null===t||void 0===t||null===(l=t.locale)||void 0===l||null===(d=l.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==u?u:h.weekStartsOn)&&void 0!==s?s:null===(p=h.locale)||void 0===p||null===(f=p.options)||void 0===f?void 0:f.weekStartsOn)&&void 0!==r?r:0);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var m=(0,n.default)(e),g=m.getDay(),y=(g<v?7:0)+g-v;return m.setDate(m.getDate()-y),m.setHours(0,0,0,0),m}},38148:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(19013),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=(0,n.default)(e),r=new Date(0);return r.setFullYear(t.getFullYear(),0,1),r.setHours(0,0,0,0),r}},7069:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(77349),a=r(13882),o=r(83946);function i(e,t){(0,a.Z)(2,arguments);var r=(0,o.Z)(t);return(0,n.default)(e,-r)}},91218:function(e,t,r){"use strict";r.d(t,{Z:function(){return i}});var n=r(51820),a=r(13882),o=r(83946);function i(e,t){(0,a.Z)(2,arguments);var r=(0,o.Z)(t);return(0,n.Z)(e,-r)}},54559:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(11640),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},58793:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(8791),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},77982:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(63500),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},59319:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var n=r(83946),a=r(21593),o=r(13882);function i(e,t){(0,o.Z)(2,arguments);var r=(0,n.Z)(t);return(0,a.default)(e,-r)}},19013:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return o}});var n=r(71002),a=r(13882);function o(e){(0,a.Z)(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===(0,n.Z)(e)&&"[object Date]"===t?new Date(e.getTime()):"number"===typeof e||"[object Number]"===t?new Date(e):("string"!==typeof e&&"[object String]"!==t||"undefined"===typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}},82908:function(e){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},90939:function(e,t,r){var n=r(21299),a=r(37005);e.exports=function e(t,r,o,i,s){return t===r||(null==t||null==r||!a(t)&&!a(r)?t!==t&&r!==r:n(t,r,o,i,e,s))}},21299:function(e,t,r){var n=r(46384),a=r(67114),o=r(18351),i=r(16096),s=r(64160),u=r(1469),c=r(44144),l=r(36719),d="[object Arguments]",p="[object Array]",f="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,v,m,g){var y=u(e),w=u(t),b=y?p:s(e),D=w?p:s(t),k=(b=b==d?f:b)==f,C=(D=D==d?f:D)==f,S=b==D;if(S&&c(e)){if(!c(t))return!1;y=!0,k=!1}if(S&&!k)return g||(g=new n),y||l(e)?a(e,t,r,v,m,g):o(e,t,b,r,v,m,g);if(!(1&r)){var M=k&&h.call(e,"__wrapped__"),T=C&&h.call(t,"__wrapped__");if(M||T){var x=M?e.value():e,Z=T?t.value():t;return g||(g=new n),m(x,Z,r,v,g)}}return!!S&&(g||(g=new n),i(e,t,r,v,m,g))}},67114:function(e,t,r){var n=r(88668),a=r(82908),o=r(74757);e.exports=function(e,t,r,i,s,u){var c=1&r,l=e.length,d=t.length;if(l!=d&&!(c&&d>l))return!1;var p=u.get(e),f=u.get(t);if(p&&f)return p==t&&f==e;var h=-1,v=!0,m=2&r?new n:void 0;for(u.set(e,t),u.set(t,e);++h<l;){var g=e[h],y=t[h];if(i)var w=c?i(y,g,h,t,e,u):i(g,y,h,e,t,u);if(void 0!==w){if(w)continue;v=!1;break}if(m){if(!a(t,(function(e,t){if(!o(m,t)&&(g===e||s(g,e,r,i,u)))return m.push(t)}))){v=!1;break}}else if(g!==y&&!s(g,y,r,i,u)){v=!1;break}}return u.delete(e),u.delete(t),v}},18351:function(e,t,r){var n=r(62705),a=r(11149),o=r(77813),i=r(67114),s=r(68776),u=r(21814),c=n?n.prototype:void 0,l=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,d,p){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new a(e),new a(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var f=s;case"[object Set]":var h=1&n;if(f||(f=u),e.size!=t.size&&!h)return!1;var v=p.get(e);if(v)return v==t;n|=2,p.set(e,t);var m=i(f(e),f(t),n,c,d,p);return p.delete(e),m;case"[object Symbol]":if(l)return l.call(e)==l.call(t)}return!1}},16096:function(e,t,r){var n=r(58234),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,o,i,s){var u=1&r,c=n(e),l=c.length;if(l!=n(t).length&&!u)return!1;for(var d=l;d--;){var p=c[d];if(!(u?p in t:a.call(t,p)))return!1}var f=s.get(e),h=s.get(t);if(f&&h)return f==t&&h==e;var v=!0;s.set(e,t),s.set(t,e);for(var m=u;++d<l;){var g=e[p=c[d]],y=t[p];if(o)var w=u?o(y,g,p,t,e,s):o(g,y,p,e,t,s);if(!(void 0===w?g===y||i(g,y,r,o,s):w)){v=!1;break}m||(m="constructor"==p)}if(v&&!m){var b=e.constructor,D=t.constructor;b==D||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof D&&D instanceof D||(v=!1)}return s.delete(e),s.delete(t),v}},68776:function(e){e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},21814:function(e){e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},18446:function(e,t,r){var n=r(90939);e.exports=function(e,t){return n(e,t)}},59061:function(){},3655:function(e,t,r){var n=r(32792);function a(e){this.mode=n.MODE_8BIT_BYTE,this.data=e}a.prototype={getLength:function(e){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}},e.exports=a},27321:function(e){function t(){this.buffer=new Array,this.length=0}t.prototype={get:function(e){var t=Math.floor(e/8);return 1==(this.buffer[t]>>>7-e%8&1)},put:function(e,t){for(var r=0;r<t;r++)this.putBit(1==(e>>>t-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},e.exports=t},49381:function(e){e.exports={L:1,M:0,Q:3,H:2}},32832:function(e,t,r){var n=r(11518);function a(e,t){if(void 0==e.length)throw new Error(e.length+"/"+t);for(var r=0;r<e.length&&0==e[r];)r++;this.num=new Array(e.length-r+t);for(var n=0;n<e.length-r;n++)this.num[n]=e[n+r]}a.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=new Array(this.getLength()+e.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<e.getLength();o++)t[r+o]^=n.gexp(n.glog(this.get(r))+n.glog(e.get(o)));return new a(t,0)},mod:function(e){if(this.getLength()-e.getLength()<0)return this;for(var t=n.glog(this.get(0))-n.glog(e.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(o=0;o<e.getLength();o++)r[o]^=n.gexp(n.glog(e.get(o))+t);return new a(r,0).mod(e)}},e.exports=a},14450:function(e,t,r){var n=r(3655),a=r(17611),o=r(27321),i=r(93160),s=r(32832);function u(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}var c=u.prototype;c.addData=function(e){var t=new n(e);this.dataList.push(t),this.dataCache=null},c.isDark=function(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw new Error(e+","+t);return this.modules[e][t]},c.getModuleCount=function(){return this.moduleCount},c.make=function(){if(this.typeNumber<1){var e=1;for(e=1;e<40;e++){for(var t=a.getRSBlocks(e,this.errorCorrectLevel),r=new o,n=0,s=0;s<t.length;s++)n+=t[s].dataCount;for(s=0;s<this.dataList.length;s++){var u=this.dataList[s];r.put(u.mode,4),r.put(u.getLength(),i.getLengthInBits(u.mode,e)),u.write(r)}if(r.getLengthInBits()<=8*n)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},c.makeImpl=function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=new Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++)this.modules[r][n]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=u.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},c.setupPositionProbePattern=function(e,t){for(var r=-1;r<=7;r++)if(!(e+r<=-1||this.moduleCount<=e+r))for(var n=-1;n<=7;n++)t+n<=-1||this.moduleCount<=t+n||(this.modules[e+r][t+n]=0<=r&&r<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=n&&n<=4)},c.getBestMaskPattern=function(){for(var e=0,t=0,r=0;r<8;r++){this.makeImpl(!0,r);var n=i.getLostPoint(this);(0==r||e>n)&&(e=n,t=r)}return t},c.createMovieClip=function(e,t,r){var n=e.createEmptyMovieClip(t,r);this.make();for(var a=0;a<this.modules.length;a++)for(var o=1*a,i=0;i<this.modules[a].length;i++){var s=1*i;this.modules[a][i]&&(n.beginFill(0,100),n.moveTo(s,o),n.lineTo(s+1,o),n.lineTo(s+1,o+1),n.lineTo(s,o+1),n.endFill())}return n},c.setupTimingPattern=function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(var t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)},c.setupPositionAdjustPattern=function(){for(var e=i.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var r=0;r<e.length;r++){var n=e[t],a=e[r];if(null==this.modules[n][a])for(var o=-2;o<=2;o++)for(var s=-2;s<=2;s++)this.modules[n+o][a+s]=-2==o||2==o||-2==s||2==s||0==o&&0==s}},c.setupTypeNumber=function(e){for(var t=i.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var n=!e&&1==(t>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=n}for(r=0;r<18;r++){n=!e&&1==(t>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=n}},c.setupTypeInfo=function(e,t){for(var r=this.errorCorrectLevel<<3|t,n=i.getBCHTypeInfo(r),a=0;a<15;a++){var o=!e&&1==(n>>a&1);a<6?this.modules[a][8]=o:a<8?this.modules[a+1][8]=o:this.modules[this.moduleCount-15+a][8]=o}for(a=0;a<15;a++){o=!e&&1==(n>>a&1);a<8?this.modules[8][this.moduleCount-a-1]=o:a<9?this.modules[8][15-a-1+1]=o:this.modules[8][15-a-1]=o}this.modules[this.moduleCount-8][8]=!e},c.mapData=function(e,t){for(var r=-1,n=this.moduleCount-1,a=7,o=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var u=0;u<2;u++)if(null==this.modules[n][s-u]){var c=!1;o<e.length&&(c=1==(e[o]>>>a&1)),i.getMask(t,n,s-u)&&(c=!c),this.modules[n][s-u]=c,-1==--a&&(o++,a=7)}if((n+=r)<0||this.moduleCount<=n){n-=r,r=-r;break}}},u.PAD0=236,u.PAD1=17,u.createData=function(e,t,r){for(var n=a.getRSBlocks(e,t),s=new o,c=0;c<r.length;c++){var l=r[c];s.put(l.mode,4),s.put(l.getLength(),i.getLengthInBits(l.mode,e)),l.write(s)}var d=0;for(c=0;c<n.length;c++)d+=n[c].dataCount;if(s.getLengthInBits()>8*d)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*d+")");for(s.getLengthInBits()+4<=8*d&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(!1);for(;!(s.getLengthInBits()>=8*d)&&(s.put(u.PAD0,8),!(s.getLengthInBits()>=8*d));)s.put(u.PAD1,8);return u.createBytes(s,n)},u.createBytes=function(e,t){for(var r=0,n=0,a=0,o=new Array(t.length),u=new Array(t.length),c=0;c<t.length;c++){var l=t[c].dataCount,d=t[c].totalCount-l;n=Math.max(n,l),a=Math.max(a,d),o[c]=new Array(l);for(var p=0;p<o[c].length;p++)o[c][p]=255&e.buffer[p+r];r+=l;var f=i.getErrorCorrectPolynomial(d),h=new s(o[c],f.getLength()-1).mod(f);u[c]=new Array(f.getLength()-1);for(p=0;p<u[c].length;p++){var v=p+h.getLength()-u[c].length;u[c][p]=v>=0?h.get(v):0}}var m=0;for(p=0;p<t.length;p++)m+=t[p].totalCount;var g=new Array(m),y=0;for(p=0;p<n;p++)for(c=0;c<t.length;c++)p<o[c].length&&(g[y++]=o[c][p]);for(p=0;p<a;p++)for(c=0;c<t.length;c++)p<u[c].length&&(g[y++]=u[c][p]);return g},e.exports=u},17611:function(e,t,r){var n=r(49381);function a(e,t){this.totalCount=e,this.dataCount=t}a.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],a.getRSBlocks=function(e,t){var r=a.getRsBlockTable(e,t);if(void 0==r)throw new Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var n=r.length/3,o=new Array,i=0;i<n;i++)for(var s=r[3*i+0],u=r[3*i+1],c=r[3*i+2],l=0;l<s;l++)o.push(new a(u,c));return o},a.getRsBlockTable=function(e,t){switch(t){case n.L:return a.RS_BLOCK_TABLE[4*(e-1)+0];case n.M:return a.RS_BLOCK_TABLE[4*(e-1)+1];case n.Q:return a.RS_BLOCK_TABLE[4*(e-1)+2];case n.H:return a.RS_BLOCK_TABLE[4*(e-1)+3];default:return}},e.exports=a},11518:function(e){for(var t={glog:function(e){if(e<1)throw new Error("glog("+e+")");return t.LOG_TABLE[e]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},r=0;r<8;r++)t.EXP_TABLE[r]=1<<r;for(r=8;r<256;r++)t.EXP_TABLE[r]=t.EXP_TABLE[r-4]^t.EXP_TABLE[r-5]^t.EXP_TABLE[r-6]^t.EXP_TABLE[r-8];for(r=0;r<255;r++)t.LOG_TABLE[t.EXP_TABLE[r]]=r;e.exports=t},32792:function(e){e.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}},93160:function(e,t,r){var n=r(32792),a=r(32832),o=r(11518),i=0,s=1,u=2,c=3,l=4,d=5,p=6,f=7,h={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;h.getBCHDigit(t)-h.getBCHDigit(h.G15)>=0;)t^=h.G15<<h.getBCHDigit(t)-h.getBCHDigit(h.G15);return(e<<10|t)^h.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;h.getBCHDigit(t)-h.getBCHDigit(h.G18)>=0;)t^=h.G18<<h.getBCHDigit(t)-h.getBCHDigit(h.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return h.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,r){switch(e){case i:return(t+r)%2==0;case s:return t%2==0;case u:return r%3==0;case c:return(t+r)%3==0;case l:return(Math.floor(t/2)+Math.floor(r/3))%2==0;case d:return t*r%2+t*r%3==0;case p:return(t*r%2+t*r%3)%2==0;case f:return(t*r%3+(t+r)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new a([1],0),r=0;r<e;r++)t=t.multiply(new a([1,o.gexp(r)],0));return t},getLengthInBits:function(e,t){if(1<=t&&t<10)switch(e){case n.MODE_NUMBER:return 10;case n.MODE_ALPHA_NUM:return 9;case n.MODE_8BIT_BYTE:case n.MODE_KANJI:return 8;default:throw new Error("mode:"+e)}else if(t<27)switch(e){case n.MODE_NUMBER:return 12;case n.MODE_ALPHA_NUM:return 11;case n.MODE_8BIT_BYTE:return 16;case n.MODE_KANJI:return 10;default:throw new Error("mode:"+e)}else{if(!(t<41))throw new Error("type:"+t);switch(e){case n.MODE_NUMBER:return 14;case n.MODE_ALPHA_NUM:return 13;case n.MODE_8BIT_BYTE:return 16;case n.MODE_KANJI:return 12;default:throw new Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),r=0,n=0;n<t;n++)for(var a=0;a<t;a++){for(var o=0,i=e.isDark(n,a),s=-1;s<=1;s++)if(!(n+s<0||t<=n+s))for(var u=-1;u<=1;u++)a+u<0||t<=a+u||0==s&&0==u||i==e.isDark(n+s,a+u)&&o++;o>5&&(r+=3+o-5)}for(n=0;n<t-1;n++)for(a=0;a<t-1;a++){var c=0;e.isDark(n,a)&&c++,e.isDark(n+1,a)&&c++,e.isDark(n,a+1)&&c++,e.isDark(n+1,a+1)&&c++,0!=c&&4!=c||(r+=3)}for(n=0;n<t;n++)for(a=0;a<t-6;a++)e.isDark(n,a)&&!e.isDark(n,a+1)&&e.isDark(n,a+2)&&e.isDark(n,a+3)&&e.isDark(n,a+4)&&!e.isDark(n,a+5)&&e.isDark(n,a+6)&&(r+=40);for(a=0;a<t;a++)for(n=0;n<t-6;n++)e.isDark(n,a)&&!e.isDark(n+1,a)&&e.isDark(n+2,a)&&e.isDark(n+3,a)&&e.isDark(n+4,a)&&!e.isDark(n+5,a)&&e.isDark(n+6,a)&&(r+=40);var l=0;for(a=0;a<t;a++)for(n=0;n<t;n++)e.isDark(n,a)&&l++;return r+=10*(Math.abs(100*l/t/t-50)/5)}};e.exports=h},9198:function(e,t,r){!function(e,t,r,n,a,o,i,s,u,c,l,d,p,f,h,v,m,g,y,w,b,D,k,C,S,M,T,x,Z,E,_,P,O,N,Y,L,I,R,A,F,B,j,H,U,W,q,Q,K,V,z,G,X,J,$,ee,te,re,ne,ae,oe,ie,se,ue,ce){"use strict";function le(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var de=le(t),pe=le(n),fe=le(a),he=le(o),ve=le(i),me=le(s),ge=le(u),ye=le(c),we=le(l),be=le(d),De=le(p),ke=le(f),Ce=le(h),Se=le(v),Me=le(m),Te=le(g),xe=le(y),Ze=le(w),Ee=le(b),_e=le(D),Pe=le(k),Oe=le(C),Ne=le(S),Ye=le(M),Le=le(T),Ie=le(x),Re=le(Z),Ae=le(E),Fe=le(_),Be=le(P),je=le(O),He=le(N),Ue=le(Y),We=le(L),qe=le(I),Qe=le(R),Ke=le(A),Ve=le(F),ze=le(B),Ge=le(j),Xe=le(H),Je=le(U),$e=le(W),et=le(q),tt=le(K),rt=le(V),nt=le(z),at=le(G),ot=le(X),it=le(J),st=le($),ut=le(ee),ct=le(te),lt=le(re),dt=le(ne),pt=le(ae),ft=le(oe),ht=le(ie),vt=le(se),mt=le(ce);function gt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function yt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?gt(Object(r),!0).forEach((function(t){Ct(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):gt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function wt(e){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wt(e)}function bt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Ot(n.key),n)}}function kt(e,t,r){return t&&Dt(e.prototype,t),r&&Dt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ct(e,t,r){return(t=Ot(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function St(){return St=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},St.apply(this,arguments)}function Mt(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xt(e,t)}function Tt(e){return Tt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Tt(e)}function xt(e,t){return xt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},xt(e,t)}function Zt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Et(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Tt(e);if(t){var a=Tt(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Zt(e)}(this,r)}}function _t(e){return function(e){if(Array.isArray(e))return Pt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Pt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ot(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var Nt=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Yt=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Lt={p:Yt,P:function(e,t){var r,n=e.match(/(P+)(p+)?/)||[],a=n[1],o=n[2];if(!o)return Nt(e,t);switch(a){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",Nt(a,t)).replace("{{time}}",Yt(o,t))}},It=12,Rt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;function At(e){var t=e?"string"==typeof e||e instanceof String?ft.default(e):dt.default(e):new Date;return Ft(t)?t:null}function Ft(e,t){return t=t||new Date("1/1/1000"),he.default(e)&&!ct.default(e,t)}function Bt(e,t,r){if("en"===r)return ve.default(e,t,{awareOfUnicodeTokens:!0});var n=tr(r);return r&&!n&&console.warn('A locale object was not found for the provided string ["'.concat(r,'"].')),!n&&er()&&tr(er())&&(n=tr(er())),ve.default(e,t,{locale:n||null,awareOfUnicodeTokens:!0})}function jt(e,t){var r=t.dateFormat,n=t.locale;return e&&Bt(e,Array.isArray(r)?r[0]:r,n)||""}function Ht(e,t){var r=t.hour,n=void 0===r?0:r,a=t.minute,o=void 0===a?0:a,i=t.second,s=void 0===i?0:i;return Be.default(Fe.default(Ae.default(e,s),o),n)}function Ut(e,t,r){var n=tr(t||er());return Ge.default(e,{locale:n,weekStartsOn:r})}function Wt(e){return Xe.default(e)}function qt(e){return $e.default(e)}function Qt(e){return Je.default(e)}function Kt(){return ze.default(At())}function Vt(e,t){return e&&t?it.default(e,t):!e&&!t}function zt(e,t){return e&&t?ot.default(e,t):!e&&!t}function Gt(e,t){return e&&t?st.default(e,t):!e&&!t}function Xt(e,t){return e&&t?at.default(e,t):!e&&!t}function Jt(e,t){return e&&t?nt.default(e,t):!e&&!t}function $t(e,t,r){var n,a=ze.default(t),o=et.default(r);try{n=lt.default(e,{start:a,end:o})}catch(e){n=!1}return n}function er(){return("undefined"!=typeof window?window:globalThis).__localeId__}function tr(e){if("string"==typeof e){var t="undefined"!=typeof window?window:globalThis;return t.__localeData__?t.__localeData__[e]:null}return e}function rr(e,t){return Bt(je.default(At(),e),"LLLL",t)}function nr(e,t){return Bt(je.default(At(),e),"LLL",t)}function ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.excludeDateIntervals,i=t.includeDates,s=t.includeDateIntervals,u=t.filterDate;return pr(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Xt(e,t)}))||o&&o.some((function(t){var r=t.start,n=t.end;return lt.default(e,{start:r,end:n})}))||i&&!i.some((function(t){return Xt(e,t)}))||s&&!s.some((function(t){var r=t.start,n=t.end;return lt.default(e,{start:r,end:n})}))||u&&!u(At(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,n=t.excludeDateIntervals;return n&&n.length>0?n.some((function(t){var r=t.start,n=t.end;return lt.default(e,{start:r,end:n})})):r&&r.some((function(t){return Xt(e,t)}))||!1}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate;return pr(e,{minDate:Xe.default(r),maxDate:tt.default(n)})||a&&a.some((function(t){return zt(e,t)}))||o&&!o.some((function(t){return zt(e,t)}))||i&&!i(At(e))||!1}function sr(e,t,r,n){var a=Ie.default(e),o=Ye.default(e),i=Ie.default(t),s=Ye.default(t),u=Ie.default(n);return a===i&&a===u?o<=r&&r<=s:a<i?u===a&&o<=r||u===i&&s>=r||u<i&&u>a:void 0}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate;return pr(e,{minDate:r,maxDate:n})||a&&a.some((function(t){return Gt(e,t)}))||o&&!o.some((function(t){return Gt(e,t)}))||i&&!i(At(e))||!1}function cr(e,t,r){if(!he.default(t)||!he.default(r))return!1;var n=Ie.default(t),a=Ie.default(r);return n<=e&&a>=e}function lr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate,a=t.excludeDates,o=t.includeDates,i=t.filterDate,s=new Date(e,0,1);return pr(s,{minDate:$e.default(r),maxDate:rt.default(n)})||a&&a.some((function(e){return Vt(s,e)}))||o&&!o.some((function(e){return Vt(s,e)}))||i&&!i(At(s))||!1}function dr(e,t,r,n){var a=Ie.default(e),o=Le.default(e),i=Ie.default(t),s=Le.default(t),u=Ie.default(n);return a===i&&a===u?o<=r&&r<=s:a<i?u===a&&o<=r||u===i&&s>=r||u<i&&u>a:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.maxDate;return r&&Qe.default(e,r)<0||n&&Qe.default(e,n)>0}function fr(e,t){return t.some((function(t){return _e.default(t)===_e.default(e)&&Ee.default(t)===Ee.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,n=t.includeTimes,a=t.filterTime;return r&&fr(e,r)||n&&!fr(e,n)||a&&!a(e)||!1}function vr(e,t){var r=t.minTime,n=t.maxTime;if(!r||!n)throw new Error("Both minTime and maxTime props required");var a,o=At(),i=Be.default(Fe.default(o,Ee.default(e)),_e.default(e)),s=Be.default(Fe.default(o,Ee.default(r)),_e.default(r)),u=Be.default(Fe.default(o,Ee.default(n)),_e.default(n));try{a=!lt.default(i,{start:s,end:u})}catch(e){a=!1}return a}function mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=Me.default(e,1);return r&&Ke.default(r,a)>0||n&&n.every((function(e){return Ke.default(e,a)>0}))||!1}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=be.default(e,1);return r&&Ke.default(a,r)>0||n&&n.every((function(e){return Ke.default(a,e)>0}))||!1}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.includeDates,a=xe.default(e,1);return r&&Ve.default(r,a)>0||n&&n.every((function(e){return Ve.default(e,a)>0}))||!1}function wr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.includeDates,a=ke.default(e,1);return r&&Ve.default(a,r)>0||n&&n.every((function(e){return Ve.default(a,e)>0}))||!1}function br(e){var t=e.minDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return Qe.default(e,t)>=0}));return We.default(n)}return r?We.default(r):t}function Dr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var n=r.filter((function(e){return Qe.default(e,t)<=0}));return qe.default(n)}return r?qe.default(r):t}function kr(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"react-datepicker__day--highlighted",r=new Map,n=0,a=e.length;n<a;n++){var o=e[n];if(fe.default(o)){var i=Bt(o,"MM.dd.yyyy"),s=r.get(i)||[];s.includes(t)||(s.push(t),r.set(i,s))}else if("object"===wt(o)){var u=Object.keys(o),c=u[0],l=o[u[0]];if("string"==typeof c&&l.constructor===Array)for(var d=0,p=l.length;d<p;d++){var f=Bt(l[d],"MM.dd.yyyy"),h=r.get(f)||[];h.includes(c)||(h.push(c),r.set(f,h))}}}return r}function Cr(e,t,r,n,a){for(var o=a.length,i=[],s=0;s<o;s++){var u=me.default(ge.default(e,_e.default(a[s])),Ee.default(a[s])),c=me.default(e,(r+1)*n);ut.default(u,t)&&ct.default(u,c)&&i.push(a[s])}return i}function Sr(e){return e<10?"0".concat(e):"".concat(e)}function Mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:It,r=Math.ceil(Ie.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Tr(e,t,r,n){for(var a=[],o=0;o<2*t+1;o++){var i=e+t-o,s=!0;r&&(s=Ie.default(r)<=i),n&&s&&(s=Ie.default(n)>=i),s&&a.push(i)}return a}var xr=function(e){Mt(n,e);var r=Et(n);function n(e){var a;bt(this,n),Ct(Zt(a=r.call(this,e)),"renderOptions",(function(){var e=a.props.year,t=a.state.yearsList.map((function(t){return de.default.createElement("div",{className:e===t?"react-datepicker__year-option react-datepicker__year-option--selected_year":"react-datepicker__year-option",key:t,onClick:a.onChange.bind(Zt(a),t),"aria-selected":e===t?"true":void 0},e===t?de.default.createElement("span",{className:"react-datepicker__year-option--selected"},"\u2713"):"",t)})),r=a.props.minDate?Ie.default(a.props.minDate):null,n=a.props.maxDate?Ie.default(a.props.maxDate):null;return n&&a.state.yearsList.find((function(e){return e===n}))||t.unshift(de.default.createElement("div",{className:"react-datepicker__year-option",key:"upcoming",onClick:a.incrementYears},de.default.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming"}))),r&&a.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement("div",{className:"react-datepicker__year-option",key:"previous",onClick:a.decrementYears},de.default.createElement("a",{className:"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous"}))),t})),Ct(Zt(a),"onChange",(function(e){a.props.onChange(e)})),Ct(Zt(a),"handleClickOutside",(function(){a.props.onCancel()})),Ct(Zt(a),"shiftYears",(function(e){var t=a.state.yearsList.map((function(t){return t+e}));a.setState({yearsList:t})})),Ct(Zt(a),"incrementYears",(function(){return a.shiftYears(1)})),Ct(Zt(a),"decrementYears",(function(){return a.shiftYears(-1)}));var o=e.yearDropdownItemNumber,i=e.scrollableYearDropdown,s=o||(i?10:5);return a.state={yearsList:Tr(a.props.year,s,a.props.minDate,a.props.maxDate)},a.dropdownRef=t.createRef(),a}return kt(n,[{key:"componentDidMount",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:"render",value:function(){var e=pe.default({"react-datepicker__year-dropdown":!0,"react-datepicker__year-dropdown--scrollable":this.props.scrollableYearDropdown});return de.default.createElement("div",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),n}(de.default.Component),Zr=ht.default(xr),Er=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Ct(Zt(e),"renderSelectOptions",(function(){for(var t=e.props.minDate?Ie.default(e.props.minDate):1900,r=e.props.maxDate?Ie.default(e.props.maxDate):2100,n=[],a=t;a<=r;a++)n.push(de.default.createElement("option",{key:a,value:a},a));return n})),Ct(Zt(e),"onSelectChange",(function(t){e.onChange(t.target.value)})),Ct(Zt(e),"renderSelectMode",(function(){return de.default.createElement("select",{value:e.props.year,className:"react-datepicker__year-select",onChange:e.onSelectChange},e.renderSelectOptions())})),Ct(Zt(e),"renderReadView",(function(t){return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__year-read-view",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement("span",{className:"react-datepicker__year-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__year-read-view--selected-year"},e.props.year))})),Ct(Zt(e),"renderDropdown",(function(){return de.default.createElement(Zr,{key:"dropdown",year:e.props.year,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableYearDropdown:e.props.scrollableYearDropdown,yearDropdownItemNumber:e.props.yearDropdownItemNumber})})),Ct(Zt(e),"renderScrollMode",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),Ct(Zt(e),"onChange",(function(t){e.toggleDropdown(),t!==e.props.year&&e.props.onChange(t)})),Ct(Zt(e),"toggleDropdown",(function(t){e.setState({dropdownVisible:!e.state.dropdownVisible},(function(){e.props.adjustDateOnChange&&e.handleYearChange(e.props.date,t)}))})),Ct(Zt(e),"handleYearChange",(function(t,r){e.onSelect(t,r),e.setOpen()})),Ct(Zt(e),"onSelect",(function(t,r){e.props.onSelect&&e.props.onSelect(t,r)})),Ct(Zt(e),"setOpen",(function(){e.props.setOpen&&e.props.setOpen(!0)})),e}return kt(r,[{key:"render",value:function(){var e;switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode();break;case"select":e=this.renderSelectMode()}return de.default.createElement("div",{className:"react-datepicker__year-dropdown-container react-datepicker__year-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),_r=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"isSelectedMonth",(function(t){return e.props.month===t})),Ct(Zt(e),"renderOptions",(function(){return e.props.monthNames.map((function(t,r){return de.default.createElement("div",{className:e.isSelectedMonth(r)?"react-datepicker__month-option react-datepicker__month-option--selected_month":"react-datepicker__month-option",key:t,onClick:e.onChange.bind(Zt(e),r),"aria-selected":e.isSelectedMonth(r)?"true":void 0},e.isSelectedMonth(r)?de.default.createElement("span",{className:"react-datepicker__month-option--selected"},"\u2713"):"",t)}))})),Ct(Zt(e),"onChange",(function(t){return e.props.onChange(t)})),Ct(Zt(e),"handleClickOutside",(function(){return e.props.onCancel()})),e}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__month-dropdown"},this.renderOptions())}}]),r}(de.default.Component),Pr=ht.default(_r),Or=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Ct(Zt(e),"renderSelectOptions",(function(e){return e.map((function(e,t){return de.default.createElement("option",{key:t,value:t},e)}))})),Ct(Zt(e),"renderSelectMode",(function(t){return de.default.createElement("select",{value:e.props.month,className:"react-datepicker__month-select",onChange:function(t){return e.onChange(t.target.value)}},e.renderSelectOptions(t))})),Ct(Zt(e),"renderReadView",(function(t,r){return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__month-read-view",onClick:e.toggleDropdown},de.default.createElement("span",{className:"react-datepicker__month-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__month-read-view--selected-month"},r[e.props.month]))})),Ct(Zt(e),"renderDropdown",(function(t){return de.default.createElement(Pr,{key:"dropdown",month:e.props.month,monthNames:t,onChange:e.onChange,onCancel:e.toggleDropdown})})),Ct(Zt(e),"renderScrollMode",(function(t){var r=e.state.dropdownVisible,n=[e.renderReadView(!r,t)];return r&&n.unshift(e.renderDropdown(t)),n})),Ct(Zt(e),"onChange",(function(t){e.toggleDropdown(),t!==e.props.month&&e.props.onChange(t)})),Ct(Zt(e),"toggleDropdown",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return kt(r,[{key:"render",value:function(){var e,t=this,r=[0,1,2,3,4,5,6,7,8,9,10,11].map(this.props.useShortMonthInDropdown?function(e){return nr(e,t.props.locale)}:function(e){return rr(e,t.props.locale)});switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode(r);break;case"select":e=this.renderSelectMode(r)}return de.default.createElement("div",{className:"react-datepicker__month-dropdown-container react-datepicker__month-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component);function Nr(e,t){for(var r=[],n=Wt(e),a=Wt(t);!ut.default(n,a);)r.push(At(n)),n=be.default(n,1);return r}var Yr,Lr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"renderOptions",(function(){return n.state.monthYearsList.map((function(e){var t=Re.default(e),r=Vt(n.props.date,e)&&zt(n.props.date,e);return de.default.createElement("div",{className:r?"react-datepicker__month-year-option--selected_month-year":"react-datepicker__month-year-option",key:t,onClick:n.onChange.bind(Zt(n),t),"aria-selected":r?"true":void 0},r?de.default.createElement("span",{className:"react-datepicker__month-year-option--selected"},"\u2713"):"",Bt(e,n.props.dateFormat,n.props.locale))}))})),Ct(Zt(n),"onChange",(function(e){return n.props.onChange(e)})),Ct(Zt(n),"handleClickOutside",(function(){n.props.onCancel()})),n.state={monthYearsList:Nr(n.props.minDate,n.props.maxDate)},n}return kt(r,[{key:"render",value:function(){var e=pe.default({"react-datepicker__month-year-dropdown":!0,"react-datepicker__month-year-dropdown--scrollable":this.props.scrollableMonthYearDropdown});return de.default.createElement("div",{className:e},this.renderOptions())}}]),r}(de.default.Component),Ir=ht.default(Lr),Rr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{dropdownVisible:!1}),Ct(Zt(e),"renderSelectOptions",(function(){for(var t=Wt(e.props.minDate),r=Wt(e.props.maxDate),n=[];!ut.default(t,r);){var a=Re.default(t);n.push(de.default.createElement("option",{key:a,value:a},Bt(t,e.props.dateFormat,e.props.locale))),t=be.default(t,1)}return n})),Ct(Zt(e),"onSelectChange",(function(t){e.onChange(t.target.value)})),Ct(Zt(e),"renderSelectMode",(function(){return de.default.createElement("select",{value:Re.default(Wt(e.props.date)),className:"react-datepicker__month-year-select",onChange:e.onSelectChange},e.renderSelectOptions())})),Ct(Zt(e),"renderReadView",(function(t){var r=Bt(e.props.date,e.props.dateFormat,e.props.locale);return de.default.createElement("div",{key:"read",style:{visibility:t?"visible":"hidden"},className:"react-datepicker__month-year-read-view",onClick:function(t){return e.toggleDropdown(t)}},de.default.createElement("span",{className:"react-datepicker__month-year-read-view--down-arrow"}),de.default.createElement("span",{className:"react-datepicker__month-year-read-view--selected-month-year"},r))})),Ct(Zt(e),"renderDropdown",(function(){return de.default.createElement(Ir,{key:"dropdown",date:e.props.date,dateFormat:e.props.dateFormat,onChange:e.onChange,onCancel:e.toggleDropdown,minDate:e.props.minDate,maxDate:e.props.maxDate,scrollableMonthYearDropdown:e.props.scrollableMonthYearDropdown,locale:e.props.locale})})),Ct(Zt(e),"renderScrollMode",(function(){var t=e.state.dropdownVisible,r=[e.renderReadView(!t)];return t&&r.unshift(e.renderDropdown()),r})),Ct(Zt(e),"onChange",(function(t){e.toggleDropdown();var r=At(parseInt(t));Vt(e.props.date,r)&&zt(e.props.date,r)||e.props.onChange(r)})),Ct(Zt(e),"toggleDropdown",(function(){return e.setState({dropdownVisible:!e.state.dropdownVisible})})),e}return kt(r,[{key:"render",value:function(){var e;switch(this.props.dropdownMode){case"scroll":e=this.renderScrollMode();break;case"select":e=this.renderSelectMode()}return de.default.createElement("div",{className:"react-datepicker__month-year-dropdown-container react-datepicker__month-year-dropdown-container--".concat(this.props.dropdownMode)},e)}}]),r}(de.default.Component),Ar=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"dayEl",de.default.createRef()),Ct(Zt(e),"handleClick",(function(t){!e.isDisabled()&&e.props.onClick&&e.props.onClick(t)})),Ct(Zt(e),"handleMouseEnter",(function(t){!e.isDisabled()&&e.props.onMouseEnter&&e.props.onMouseEnter(t)})),Ct(Zt(e),"handleOnKeyDown",(function(t){" "===t.key&&(t.preventDefault(),t.key="Enter"),e.props.handleOnKeyDown(t)})),Ct(Zt(e),"isSameDay",(function(t){return Xt(e.props.day,t)})),Ct(Zt(e),"isKeyboardSelected",(function(){return!e.props.disabledKeyboardNavigation&&!e.isSameDay(e.props.selected)&&e.isSameDay(e.props.preSelection)})),Ct(Zt(e),"isDisabled",(function(){return ar(e.props.day,e.props)})),Ct(Zt(e),"isExcluded",(function(){return or(e.props.day,e.props)})),Ct(Zt(e),"getHighLightedClass",(function(){var t=e.props,r=t.day,n=t.highlightDates;if(!n)return!1;var a=Bt(r,"MM.dd.yyyy");return n.get(a)})),Ct(Zt(e),"isInRange",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&$t(r,n,a)})),Ct(Zt(e),"isInSelectingRange",(function(){var t,r=e.props,n=r.day,a=r.selectsStart,o=r.selectsEnd,i=r.selectsRange,s=r.selectsDisabledDaysInRange,u=r.startDate,c=r.endDate,l=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return!(!(a||o||i)||!l||!s&&e.isDisabled())&&(a&&c&&(ct.default(l,c)||Jt(l,c))?$t(n,l,c):(o&&u&&(ut.default(l,u)||Jt(l,u))||!(!i||!u||c||!ut.default(l,u)&&!Jt(l,u)))&&$t(n,u,l))})),Ct(Zt(e),"isSelectingRangeStart",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,n=r.day,a=r.startDate,o=r.selectsStart,i=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return Xt(n,o?i:a)})),Ct(Zt(e),"isSelectingRangeEnd",(function(){var t;if(!e.isInSelectingRange())return!1;var r=e.props,n=r.day,a=r.endDate,o=r.selectsEnd,i=r.selectsRange,s=null!==(t=e.props.selectingDate)&&void 0!==t?t:e.props.preSelection;return Xt(n,o||i?s:a)})),Ct(Zt(e),"isRangeStart",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&Xt(n,r)})),Ct(Zt(e),"isRangeEnd",(function(){var t=e.props,r=t.day,n=t.startDate,a=t.endDate;return!(!n||!a)&&Xt(a,r)})),Ct(Zt(e),"isWeekend",(function(){var t=Pe.default(e.props.day);return 0===t||6===t})),Ct(Zt(e),"isAfterMonth",(function(){return void 0!==e.props.month&&(e.props.month+1)%12===Ye.default(e.props.day)})),Ct(Zt(e),"isBeforeMonth",(function(){return void 0!==e.props.month&&(Ye.default(e.props.day)+1)%12===e.props.month})),Ct(Zt(e),"isCurrentDay",(function(){return e.isSameDay(At())})),Ct(Zt(e),"isSelected",(function(){return e.isSameDay(e.props.selected)})),Ct(Zt(e),"getClassNames",(function(t){var r,n=e.props.dayClassName?e.props.dayClassName(t):void 0;return pe.default("react-datepicker__day",n,"react-datepicker__day--"+Bt(e.props.day,"ddd",r),{"react-datepicker__day--disabled":e.isDisabled(),"react-datepicker__day--excluded":e.isExcluded(),"react-datepicker__day--selected":e.isSelected(),"react-datepicker__day--keyboard-selected":e.isKeyboardSelected(),"react-datepicker__day--range-start":e.isRangeStart(),"react-datepicker__day--range-end":e.isRangeEnd(),"react-datepicker__day--in-range":e.isInRange(),"react-datepicker__day--in-selecting-range":e.isInSelectingRange(),"react-datepicker__day--selecting-range-start":e.isSelectingRangeStart(),"react-datepicker__day--selecting-range-end":e.isSelectingRangeEnd(),"react-datepicker__day--today":e.isCurrentDay(),"react-datepicker__day--weekend":e.isWeekend(),"react-datepicker__day--outside-month":e.isAfterMonth()||e.isBeforeMonth()},e.getHighLightedClass("react-datepicker__day--highlighted"))})),Ct(Zt(e),"getAriaLabel",(function(){var t=e.props,r=t.day,n=t.ariaLabelPrefixWhenEnabled,a=void 0===n?"Choose":n,o=t.ariaLabelPrefixWhenDisabled,i=void 0===o?"Not available":o,s=e.isDisabled()||e.isExcluded()?i:a;return"".concat(s," ").concat(Bt(r,"PPPP",e.props.locale))})),Ct(Zt(e),"getTabIndex",(function(t,r){var n=t||e.props.selected,a=r||e.props.preSelection;return e.isKeyboardSelected()||e.isSameDay(n)&&Xt(a,n)?0:-1})),Ct(Zt(e),"handleFocusDay",(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains("react-datepicker__day")&&(r=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(r=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(r=!1)),r&&e.dayEl.current.focus({preventScroll:!0})})),Ct(Zt(e),"renderDayContents",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Oe.default(e.props.day),e.props.day):Oe.default(e.props.day)})),Ct(Zt(e),"render",(function(){return de.default.createElement("div",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),"aria-label":e.getAriaLabel(),role:"option","aria-disabled":e.isDisabled(),"aria-current":e.isCurrentDay()?"date":void 0,"aria-selected":e.isSelected()||e.isInRange()},e.renderDayContents())})),e}return kt(r,[{key:"componentDidMount",value:function(){this.handleFocusDay()}},{key:"componentDidUpdate",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),Fr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"handleClick",(function(t){e.props.onClick&&e.props.onClick(t)})),e}return kt(r,[{key:"render",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,n=void 0===r?"week ":r,a={"react-datepicker__week-number":!0,"react-datepicker__week-number--clickable":!!e.onClick};return de.default.createElement("div",{className:pe.default(a),"aria-label":"".concat(n," ").concat(this.props.weekNumber),onClick:this.handleClick},t)}}],[{key:"defaultProps",get:function(){return{ariaLabelPrefix:"week "}}}]),r}(de.default.Component),Br=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"handleDayClick",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r)})),Ct(Zt(e),"handleDayMouseEnter",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),Ct(Zt(e),"handleWeekClick",(function(t,r,n){"function"==typeof e.props.onWeekSelect&&e.props.onWeekSelect(t,r,n),e.props.shouldCloseOnSelect&&e.props.setOpen(!1)})),Ct(Zt(e),"formatWeekNumber",(function(t){return e.props.formatWeekNumber?e.props.formatWeekNumber(t):function(e,t){var r=t&&tr(t)||er()&&tr(er());return Ne.default(e,r?{locale:r}:null)}(t)})),Ct(Zt(e),"renderDays",(function(){var t=Ut(e.props.day,e.props.locale,e.props.calendarStartDay),r=[],n=e.formatWeekNumber(t);if(e.props.showWeekNumber){var a=e.props.onWeekSelect?e.handleWeekClick.bind(Zt(e),t,n):void 0;r.push(de.default.createElement(Fr,{key:"W",weekNumber:n,onClick:a,ariaLabelPrefix:e.props.ariaLabelPrefix}))}return r.concat([0,1,2,3,4,5,6].map((function(r){var n=ye.default(t,r);return de.default.createElement(Ar,{ariaLabelPrefixWhenEnabled:e.props.chooseDayAriaLabelPrefix,ariaLabelPrefixWhenDisabled:e.props.disabledDayAriaLabelPrefix,key:n.valueOf(),day:n,month:e.props.month,onClick:e.handleDayClick.bind(Zt(e),n),onMouseEnter:e.handleDayMouseEnter.bind(Zt(e),n),minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,highlightDates:e.props.highlightDates,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,renderDayContents:e.props.renderDayContents,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart,locale:e.props.locale})})))})),e}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__week"},this.renderDays())}}],[{key:"defaultProps",get:function(){return{shouldCloseOnSelect:!0}}}]),r}(de.default.Component),jr="two_columns",Hr="three_columns",Ur="four_columns",Wr=(Ct(Yr={},jr,{grid:[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]],verticalNavigationOffset:2}),Ct(Yr,Hr,{grid:[[0,1,2],[3,4,5],[6,7,8],[9,10,11]],verticalNavigationOffset:3}),Ct(Yr,Ur,{grid:[[0,1,2,3],[4,5,6,7],[8,9,10,11]],verticalNavigationOffset:4}),Yr);function qr(e,t){return e?Ur:t?jr:Hr}var Qr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"MONTH_REFS",_t(Array(12)).map((function(){return de.default.createRef()}))),Ct(Zt(e),"QUARTER_REFS",_t(Array(4)).map((function(){return de.default.createRef()}))),Ct(Zt(e),"isDisabled",(function(t){return ar(t,e.props)})),Ct(Zt(e),"isExcluded",(function(t){return or(t,e.props)})),Ct(Zt(e),"handleDayClick",(function(t,r){e.props.onDayClick&&e.props.onDayClick(t,r,e.props.orderInDisplay)})),Ct(Zt(e),"handleDayMouseEnter",(function(t){e.props.onDayMouseEnter&&e.props.onDayMouseEnter(t)})),Ct(Zt(e),"handleMouseLeave",(function(){e.props.onMouseLeave&&e.props.onMouseLeave()})),Ct(Zt(e),"isRangeStartMonth",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&zt(je.default(n,t),a)})),Ct(Zt(e),"isRangeStartQuarter",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Gt(He.default(n,t),a)})),Ct(Zt(e),"isRangeEndMonth",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&zt(je.default(n,t),o)})),Ct(Zt(e),"isRangeEndQuarter",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate;return!(!a||!o)&&Gt(He.default(n,t),o)})),Ct(Zt(e),"isInSelectingRangeMonth",(function(t){var r,n=e.props,a=n.day,o=n.selectsStart,i=n.selectsEnd,s=n.selectsRange,u=n.startDate,c=n.endDate,l=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return!(!(o||i||s)||!l)&&(o&&c?sr(l,c,t,a):(i&&u||!(!s||!u||c))&&sr(u,l,t,a))})),Ct(Zt(e),"isSelectingMonthRangeStart",(function(t){var r;if(!e.isInSelectingRangeMonth(t))return!1;var n=e.props,a=n.day,o=n.startDate,i=n.selectsStart,s=je.default(a,t),u=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return zt(s,i?u:o)})),Ct(Zt(e),"isSelectingMonthRangeEnd",(function(t){var r;if(!e.isInSelectingRangeMonth(t))return!1;var n=e.props,a=n.day,o=n.endDate,i=n.selectsEnd,s=n.selectsRange,u=je.default(a,t),c=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return zt(u,i||s?c:o)})),Ct(Zt(e),"isInSelectingRangeQuarter",(function(t){var r,n=e.props,a=n.day,o=n.selectsStart,i=n.selectsEnd,s=n.selectsRange,u=n.startDate,c=n.endDate,l=null!==(r=e.props.selectingDate)&&void 0!==r?r:e.props.preSelection;return!(!(o||i||s)||!l)&&(o&&c?dr(l,c,t,a):(i&&u||!(!s||!u||c))&&dr(u,l,t,a))})),Ct(Zt(e),"isWeekInMonth",(function(t){var r=e.props.day,n=ye.default(t,6);return zt(t,r)||zt(n,r)})),Ct(Zt(e),"isCurrentMonth",(function(e,t){return Ie.default(e)===Ie.default(At())&&t===Ye.default(At())})),Ct(Zt(e),"isCurrentQuarter",(function(e,t){return Ie.default(e)===Ie.default(At())&&t===Le.default(At())})),Ct(Zt(e),"isSelectedMonth",(function(e,t,r){return Ye.default(r)===t&&Ie.default(e)===Ie.default(r)})),Ct(Zt(e),"isSelectedQuarter",(function(e,t,r){return Le.default(e)===t&&Ie.default(e)===Ie.default(r)})),Ct(Zt(e),"renderWeeks",(function(){for(var t=[],r=e.props.fixedHeight,n=0,a=!1,o=Ut(Wt(e.props.day),e.props.locale,e.props.calendarStartDay);t.push(de.default.createElement(Br,{ariaLabelPrefix:e.props.weekAriaLabelPrefix,chooseDayAriaLabelPrefix:e.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:e.props.disabledDayAriaLabelPrefix,key:n,day:o,month:Ye.default(e.props.day),onDayClick:e.handleDayClick,onDayMouseEnter:e.handleDayMouseEnter,onWeekSelect:e.props.onWeekSelect,formatWeekNumber:e.props.formatWeekNumber,locale:e.props.locale,minDate:e.props.minDate,maxDate:e.props.maxDate,excludeDates:e.props.excludeDates,excludeDateIntervals:e.props.excludeDateIntervals,includeDates:e.props.includeDates,includeDateIntervals:e.props.includeDateIntervals,inline:e.props.inline,shouldFocusDayInline:e.props.shouldFocusDayInline,highlightDates:e.props.highlightDates,selectingDate:e.props.selectingDate,filterDate:e.props.filterDate,preSelection:e.props.preSelection,selected:e.props.selected,selectsStart:e.props.selectsStart,selectsEnd:e.props.selectsEnd,selectsRange:e.props.selectsRange,selectsDisabledDaysInRange:e.props.selectsDisabledDaysInRange,showWeekNumber:e.props.showWeekNumbers,startDate:e.props.startDate,endDate:e.props.endDate,dayClassName:e.props.dayClassName,setOpen:e.props.setOpen,shouldCloseOnSelect:e.props.shouldCloseOnSelect,disabledKeyboardNavigation:e.props.disabledKeyboardNavigation,renderDayContents:e.props.renderDayContents,handleOnKeyDown:e.props.handleOnKeyDown,isInputFocused:e.props.isInputFocused,containerRef:e.props.containerRef,calendarStartDay:e.props.calendarStartDay,monthShowsDuplicateDaysEnd:e.props.monthShowsDuplicateDaysEnd,monthShowsDuplicateDaysStart:e.props.monthShowsDuplicateDaysStart})),!a;){n++,o=we.default(o,1);var i=r&&n>=6,s=!r&&!e.isWeekInMonth(o);if(i||s){if(!e.props.peekNextMonth)break;a=!0}}return t})),Ct(Zt(e),"onMonthClick",(function(t,r){e.handleDayClick(Wt(je.default(e.props.day,r)),t)})),Ct(Zt(e),"onMonthMouseEnter",(function(t){e.handleDayMouseEnter(Wt(je.default(e.props.day,t)))})),Ct(Zt(e),"handleMonthNavigation",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),Ct(Zt(e),"onMonthKeyDown",(function(t,r){var n=e.props,a=n.selected,o=n.preSelection,i=n.disabledKeyboardNavigation,s=n.showTwoColumnMonthYearPicker,u=n.showFourColumnMonthYearPicker,c=n.setPreSelection,l=t.key;if("Tab"!==l&&t.preventDefault(),!i){var d=qr(u,s),p=Wr[d].verticalNavigationOffset,f=Wr[d].grid;switch(l){case"Enter":e.onMonthClick(t,r),c(a);break;case"ArrowRight":e.handleMonthNavigation(11===r?0:r+1,be.default(o,1));break;case"ArrowLeft":e.handleMonthNavigation(0===r?11:r-1,Me.default(o,1));break;case"ArrowUp":e.handleMonthNavigation(f[0].includes(r)?r+12-p:r-p,Me.default(o,p));break;case"ArrowDown":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+p:r+p,be.default(o,p))}}})),Ct(Zt(e),"onQuarterClick",(function(t,r){e.handleDayClick(Qt(He.default(e.props.day,r)),t)})),Ct(Zt(e),"onQuarterMouseEnter",(function(t){e.handleDayMouseEnter(Qt(He.default(e.props.day,t)))})),Ct(Zt(e),"handleQuarterNavigation",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),Ct(Zt(e),"onQuarterKeyDown",(function(t,r){var n=t.key;if(!e.props.disabledKeyboardNavigation)switch(n){case"Enter":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case"ArrowRight":e.handleQuarterNavigation(4===r?1:r+1,De.default(e.props.preSelection,1));break;case"ArrowLeft":e.handleQuarterNavigation(1===r?4:r-1,Te.default(e.props.preSelection,1))}})),Ct(Zt(e),"getMonthClassNames",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate,i=r.selected,s=r.minDate,u=r.maxDate,c=r.preSelection,l=r.monthClassName,d=r.excludeDates,p=r.includeDates,f=l?l(je.default(n,t)):void 0,h=je.default(n,t);return pe.default("react-datepicker__month-text","react-datepicker__month-".concat(t),f,{"react-datepicker__month-text--disabled":(s||u||d||p)&&ir(h,e.props),"react-datepicker__month-text--selected":e.isSelectedMonth(n,t,i),"react-datepicker__month-text--keyboard-selected":!e.props.disabledKeyboardNavigation&&Ye.default(c)===t,"react-datepicker__month-text--in-selecting-range":e.isInSelectingRangeMonth(t),"react-datepicker__month-text--in-range":sr(a,o,t,n),"react-datepicker__month-text--range-start":e.isRangeStartMonth(t),"react-datepicker__month-text--range-end":e.isRangeEndMonth(t),"react-datepicker__month-text--selecting-range-start":e.isSelectingMonthRangeStart(t),"react-datepicker__month-text--selecting-range-end":e.isSelectingMonthRangeEnd(t),"react-datepicker__month-text--today":e.isCurrentMonth(n,t)})})),Ct(Zt(e),"getTabIndex",(function(t){var r=Ye.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?"-1":"0"})),Ct(Zt(e),"getQuarterTabIndex",(function(t){var r=Le.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?"-1":"0"})),Ct(Zt(e),"getAriaLabel",(function(t){var r=e.props,n=r.chooseDayAriaLabelPrefix,a=void 0===n?"Choose":n,o=r.disabledDayAriaLabelPrefix,i=void 0===o?"Not available":o,s=r.day,u=je.default(s,t),c=e.isDisabled(u)||e.isExcluded(u)?i:a;return"".concat(c," ").concat(Bt(u,"MMMM yyyy"))})),Ct(Zt(e),"getQuarterClassNames",(function(t){var r=e.props,n=r.day,a=r.startDate,o=r.endDate,i=r.selected,s=r.minDate,u=r.maxDate,c=r.preSelection;return pe.default("react-datepicker__quarter-text","react-datepicker__quarter-".concat(t),{"react-datepicker__quarter-text--disabled":(s||u)&&ur(He.default(n,t),e.props),"react-datepicker__quarter-text--selected":e.isSelectedQuarter(n,t,i),"react-datepicker__quarter-text--keyboard-selected":Le.default(c)===t,"react-datepicker__quarter-text--in-selecting-range":e.isInSelectingRangeQuarter(t),"react-datepicker__quarter-text--in-range":dr(a,o,t,n),"react-datepicker__quarter-text--range-start":e.isRangeStartQuarter(t),"react-datepicker__quarter-text--range-end":e.isRangeEndQuarter(t)})})),Ct(Zt(e),"getMonthContent",(function(t){var r=e.props,n=r.showFullMonthYearPicker,a=r.renderMonthContent,o=r.locale,i=nr(t,o),s=rr(t,o);return a?a(t,i,s):n?s:i})),Ct(Zt(e),"getQuarterContent",(function(t){var r=e.props,n=r.renderQuarterContent,a=function(e,t){return Bt(He.default(At(),e),"QQQ",t)}(t,r.locale);return n?n(t,a):a})),Ct(Zt(e),"renderMonths",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,n=t.showFourColumnMonthYearPicker,a=t.day,o=t.selected;return Wr[qr(n,r)].grid.map((function(t,r){return de.default.createElement("div",{className:"react-datepicker__month-wrapper",key:r},t.map((function(t,r){return de.default.createElement("div",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:"option","aria-label":e.getAriaLabel(t),"aria-current":e.isCurrentMonth(a,t)?"date":void 0,"aria-selected":e.isSelectedMonth(a,t,o)},e.getMonthContent(t))})))}))})),Ct(Zt(e),"renderQuarters",(function(){var t=e.props,r=t.day,n=t.selected;return de.default.createElement("div",{className:"react-datepicker__quarter-wrapper"},[1,2,3,4].map((function(t,a){return de.default.createElement("div",{key:a,ref:e.QUARTER_REFS[a],role:"option",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),"aria-selected":e.isSelectedQuarter(r,t,n),tabIndex:e.getQuarterTabIndex(t),"aria-current":e.isCurrentQuarter(r,t)?"date":void 0},e.getQuarterContent(t))})))})),Ct(Zt(e),"getClassNames",(function(){var t=e.props,r=t.selectingDate,n=t.selectsStart,a=t.selectsEnd,o=t.showMonthYearPicker,i=t.showQuarterYearPicker;return pe.default("react-datepicker__month",{"react-datepicker__month--selecting-range":r&&(n||a)},{"react-datepicker__monthPicker":o},{"react-datepicker__quarterPicker":i})})),e}return kt(r,[{key:"render",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,n=e.day,a=e.ariaLabelPrefix,o=void 0===a?"month ":a;return de.default.createElement("div",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,"aria-label":"".concat(o," ").concat(Bt(n,"yyyy-MM")),role:"listbox"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),Kr=function(e){Mt(r,e);var t=Et(r);function r(){var e;bt(this,r);for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return Ct(Zt(e=t.call.apply(t,[this].concat(a))),"state",{height:null}),Ct(Zt(e),"handleClick",(function(t){(e.props.minTime||e.props.maxTime)&&vr(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&hr(t,e.props)||e.props.onChange(t)})),Ct(Zt(e),"isSelectedTime",(function(t,r,n){return e.props.selected&&r===_e.default(t)&&n===Ee.default(t)})),Ct(Zt(e),"liClasses",(function(t,r,n){var a=["react-datepicker__time-list-item",e.props.timeClassName?e.props.timeClassName(t,r,n):void 0];return e.isSelectedTime(t,r,n)&&a.push("react-datepicker__time-list-item--selected"),((e.props.minTime||e.props.maxTime)&&vr(t,e.props)||(e.props.excludeTimes||e.props.includeTimes||e.props.filterTime)&&hr(t,e.props))&&a.push("react-datepicker__time-list-item--disabled"),e.props.injectTimes&&(60*_e.default(t)+Ee.default(t))%e.props.intervals!=0&&a.push("react-datepicker__time-list-item--injected"),a.join(" ")})),Ct(Zt(e),"handleOnKeyDown",(function(t,r){" "===t.key&&(t.preventDefault(),t.key="Enter"),"Enter"===t.key&&e.handleClick(r),e.props.handleOnKeyDown(t)})),Ct(Zt(e),"renderTimes",(function(){for(var t,r=[],n=e.props.format?e.props.format:"p",a=e.props.intervals,o=(t=At(e.props.selected),ze.default(t)),i=1440/a,s=e.props.injectTimes&&e.props.injectTimes.sort((function(e,t){return e-t})),u=e.props.selected||e.props.openToDate||At(),c=_e.default(u),l=Ee.default(u),d=Be.default(Fe.default(o,l),c),p=0;p<i;p++){var f=me.default(o,p*a);if(r.push(f),s){var h=Cr(o,f,p,a,s);r=r.concat(h)}}return r.map((function(t,r){return de.default.createElement("li",{key:r,onClick:e.handleClick.bind(Zt(e),t),className:e.liClasses(t,c,l),ref:function(r){(ct.default(t,d)||Jt(t,d))&&(e.centerLi=r)},onKeyDown:function(r){e.handleOnKeyDown(r,t)},tabIndex:"0","aria-selected":e.isSelectedTime(t,c,l)?"true":void 0},Bt(t,n,e.props.locale))}))})),e}return kt(r,[{key:"componentDidMount",value:function(){this.list.scrollTop=this.centerLi&&r.calcCenterPosition(this.props.monthRef?this.props.monthRef.clientHeight-this.header.clientHeight:this.list.clientHeight,this.centerLi),this.props.monthRef&&this.header&&this.setState({height:this.props.monthRef.clientHeight-this.header.clientHeight})}},{key:"render",value:function(){var e=this,t=this.state.height;return de.default.createElement("div",{className:"react-datepicker__time-container ".concat(this.props.todayButton?"react-datepicker__time-container--with-today-button":"")},de.default.createElement("div",{className:"react-datepicker__header react-datepicker__header--time ".concat(this.props.showTimeSelectOnly?"react-datepicker__header--time--only":""),ref:function(t){e.header=t}},de.default.createElement("div",{className:"react-datepicker-time__header"},this.props.timeCaption)),de.default.createElement("div",{className:"react-datepicker__time"},de.default.createElement("div",{className:"react-datepicker__time-box"},de.default.createElement("ul",{className:"react-datepicker__time-list",ref:function(t){e.list=t},style:t?{height:t}:{},tabIndex:"0"},this.renderTimes()))))}}],[{key:"defaultProps",get:function(){return{intervals:30,onTimeChange:function(){},todayButton:null,timeCaption:"Time"}}}]),r}(de.default.Component);Ct(Kr,"calcCenterPosition",(function(e,t){return t.offsetTop-(e/2-t.clientHeight/2)}));var Vr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"YEAR_REFS",_t(Array(n.props.yearItemNumber)).map((function(){return de.default.createRef()}))),Ct(Zt(n),"isDisabled",(function(e){return ar(e,n.props)})),Ct(Zt(n),"isExcluded",(function(e){return or(e,n.props)})),Ct(Zt(n),"selectingDate",(function(){var e;return null!==(e=n.props.selectingDate)&&void 0!==e?e:n.props.preSelection})),Ct(Zt(n),"updateFocusOnPaginate",(function(e){var t=function(){this.YEAR_REFS[e].current.focus()}.bind(Zt(n));window.requestAnimationFrame(t)})),Ct(Zt(n),"handleYearClick",(function(e,t){n.props.onDayClick&&n.props.onDayClick(e,t)})),Ct(Zt(n),"handleYearNavigation",(function(e,t){var r=n.props,a=r.date,o=r.yearItemNumber,i=Mr(a,o).startPeriod;n.isDisabled(t)||n.isExcluded(t)||(n.props.setPreSelection(t),e-i==-1?n.updateFocusOnPaginate(o-1):e-i===o?n.updateFocusOnPaginate(0):n.YEAR_REFS[e-i].current.focus())})),Ct(Zt(n),"isSameDay",(function(e,t){return Xt(e,t)})),Ct(Zt(n),"isCurrentYear",(function(e){return e===Ie.default(At())})),Ct(Zt(n),"isRangeStart",(function(e){return n.props.startDate&&n.props.endDate&&Vt(Ue.default(At(),e),n.props.startDate)})),Ct(Zt(n),"isRangeEnd",(function(e){return n.props.startDate&&n.props.endDate&&Vt(Ue.default(At(),e),n.props.endDate)})),Ct(Zt(n),"isInRange",(function(e){return cr(e,n.props.startDate,n.props.endDate)})),Ct(Zt(n),"isInSelectingRange",(function(e){var t=n.props,r=t.selectsStart,a=t.selectsEnd,o=t.selectsRange,i=t.startDate,s=t.endDate;return!(!(r||a||o)||!n.selectingDate())&&(r&&s?cr(e,n.selectingDate(),s):(a&&i||!(!o||!i||s))&&cr(e,i,n.selectingDate()))})),Ct(Zt(n),"isSelectingRangeStart",(function(e){if(!n.isInSelectingRange(e))return!1;var t=n.props,r=t.startDate,a=t.selectsStart;return Vt(Ue.default(At(),e),a?n.selectingDate():r)})),Ct(Zt(n),"isSelectingRangeEnd",(function(e){if(!n.isInSelectingRange(e))return!1;var t=n.props,r=t.endDate,a=t.selectsEnd,o=t.selectsRange;return Vt(Ue.default(At(),e),a||o?n.selectingDate():r)})),Ct(Zt(n),"isKeyboardSelected",(function(e){var t=qt(Ue.default(n.props.date,e));return!n.props.disabledKeyboardNavigation&&!n.props.inline&&!Xt(t,qt(n.props.selected))&&Xt(t,qt(n.props.preSelection))})),Ct(Zt(n),"onYearClick",(function(e,t){var r=n.props.date;n.handleYearClick(qt(Ue.default(r,t)),e)})),Ct(Zt(n),"onYearKeyDown",(function(e,t){var r=e.key;if(!n.props.disabledKeyboardNavigation)switch(r){case"Enter":n.onYearClick(e,t),n.props.setPreSelection(n.props.selected);break;case"ArrowRight":n.handleYearNavigation(t+1,ke.default(n.props.preSelection,1));break;case"ArrowLeft":n.handleYearNavigation(t-1,xe.default(n.props.preSelection,1))}})),Ct(Zt(n),"getYearClassNames",(function(e){var t=n.props,r=t.minDate,a=t.maxDate,o=t.selected,i=t.excludeDates,s=t.includeDates,u=t.filterDate;return pe.default("react-datepicker__year-text",{"react-datepicker__year-text--selected":e===Ie.default(o),"react-datepicker__year-text--disabled":(r||a||i||s||u)&&lr(e,n.props),"react-datepicker__year-text--keyboard-selected":n.isKeyboardSelected(e),"react-datepicker__year-text--range-start":n.isRangeStart(e),"react-datepicker__year-text--range-end":n.isRangeEnd(e),"react-datepicker__year-text--in-range":n.isInRange(e),"react-datepicker__year-text--in-selecting-range":n.isInSelectingRange(e),"react-datepicker__year-text--selecting-range-start":n.isSelectingRangeStart(e),"react-datepicker__year-text--selecting-range-end":n.isSelectingRangeEnd(e),"react-datepicker__year-text--today":n.isCurrentYear(e)})})),Ct(Zt(n),"getYearTabIndex",(function(e){return n.props.disabledKeyboardNavigation?"-1":e===Ie.default(n.props.preSelection)?"0":"-1"})),Ct(Zt(n),"getYearContainerClassNames",(function(){var e=n.props,t=e.selectingDate,r=e.selectsStart,a=e.selectsEnd,o=e.selectsRange;return pe.default("react-datepicker__year",{"react-datepicker__year--selecting-range":t&&(r||a||o)})})),Ct(Zt(n),"getYearContent",(function(e){return n.props.renderYearContent?n.props.renderYearContent(e):e})),n}return kt(r,[{key:"render",value:function(){for(var e=this,t=[],r=this.props,n=r.date,a=r.yearItemNumber,o=r.onYearMouseEnter,i=r.onYearMouseLeave,s=Mr(n,a),u=s.startPeriod,c=s.endPeriod,l=function(r){t.push(de.default.createElement("div",{ref:e.YEAR_REFS[r-u],onClick:function(t){e.onYearClick(t,r)},onKeyDown:function(t){e.onYearKeyDown(t,r)},tabIndex:e.getYearTabIndex(r),className:e.getYearClassNames(r),onMouseEnter:function(e){return o(e,r)},onMouseLeave:function(e){return i(e,r)},key:r,"aria-current":e.isCurrentYear(r)?"date":void 0},e.getYearContent(r)))},d=u;d<=c;d++)l(d);return de.default.createElement("div",{className:this.getYearContainerClassNames()},de.default.createElement("div",{className:"react-datepicker__year-wrapper",onMouseLeave:this.props.clearSelectingDate},t))}}]),r}(de.default.Component),zr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"onTimeChange",(function(e){n.setState({time:e});var t=new Date;t.setHours(e.split(":")[0]),t.setMinutes(e.split(":")[1]),n.props.onChange(t)})),Ct(Zt(n),"renderTimeInput",(function(){var e=n.state.time,t=n.props,r=t.date,a=t.timeString,o=t.customTimeInput;return o?de.default.cloneElement(o,{date:r,value:e,onChange:n.onTimeChange}):de.default.createElement("input",{type:"time",className:"react-datepicker-time__input",placeholder:"Time",name:"time-input",required:!0,value:e,onChange:function(e){n.onTimeChange(e.target.value||a)}})})),n.state={time:n.props.timeString},n}return kt(r,[{key:"render",value:function(){return de.default.createElement("div",{className:"react-datepicker__input-time-container"},de.default.createElement("div",{className:"react-datepicker-time__caption"},this.props.timeInputLabel),de.default.createElement("div",{className:"react-datepicker-time__input-container"},de.default.createElement("div",{className:"react-datepicker-time__input"},this.renderTimeInput())))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.timeString!==t.time?{time:e.timeString}:null}}]),r}(de.default.Component);function Gr(e){var t=e.className,r=e.children,n=e.showPopperArrow,a=e.arrowProps,o=void 0===a?{}:a;return de.default.createElement("div",{className:t},n&&de.default.createElement("div",St({className:"react-datepicker__triangle"},o)),r)}var Xr=["react-datepicker__year-select","react-datepicker__month-select","react-datepicker__month-year-select"],Jr=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"handleClickOutside",(function(e){n.props.onClickOutside(e)})),Ct(Zt(n),"setClickOutsideRef",(function(){return n.containerRef.current})),Ct(Zt(n),"handleDropdownFocus",(function(e){(function(){var e=((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).className||"").split(/\s+/);return Xr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&n.props.onDropdownFocus()})),Ct(Zt(n),"getDateInView",(function(){var e=n.props,t=e.preSelection,r=e.selected,a=e.openToDate,o=br(n.props),i=Dr(n.props),s=At();return a||r||t||(o&&ct.default(s,o)?o:i&&ut.default(s,i)?i:s)})),Ct(Zt(n),"increaseMonth",(function(){n.setState((function(e){var t=e.date;return{date:be.default(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Ct(Zt(n),"decreaseMonth",(function(){n.setState((function(e){var t=e.date;return{date:Me.default(t,1)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Ct(Zt(n),"handleDayClick",(function(e,t,r){n.props.onSelect(e,t,r),n.props.setPreSelection&&n.props.setPreSelection(e)})),Ct(Zt(n),"handleDayMouseEnter",(function(e){n.setState({selectingDate:e}),n.props.onDayMouseEnter&&n.props.onDayMouseEnter(e)})),Ct(Zt(n),"handleMonthMouseLeave",(function(){n.setState({selectingDate:null}),n.props.onMonthMouseLeave&&n.props.onMonthMouseLeave()})),Ct(Zt(n),"handleYearMouseEnter",(function(e,t){n.setState({selectingDate:Ue.default(At(),t)}),n.props.onYearMouseEnter&&n.props.onYearMouseEnter(e,t)})),Ct(Zt(n),"handleYearMouseLeave",(function(e,t){n.props.onYearMouseLeave&&n.props.onYearMouseLeave(e,t)})),Ct(Zt(n),"handleYearChange",(function(e){n.props.onYearChange&&(n.props.onYearChange(e),n.setState({isRenderAriaLiveMessage:!0})),n.props.adjustDateOnChange&&(n.props.onSelect&&n.props.onSelect(e),n.props.setOpen&&n.props.setOpen(!0)),n.props.setPreSelection&&n.props.setPreSelection(e)})),Ct(Zt(n),"handleMonthChange",(function(e){n.handleCustomMonthChange(e),n.props.adjustDateOnChange&&(n.props.onSelect&&n.props.onSelect(e),n.props.setOpen&&n.props.setOpen(!0)),n.props.setPreSelection&&n.props.setPreSelection(e)})),Ct(Zt(n),"handleCustomMonthChange",(function(e){n.props.onMonthChange&&(n.props.onMonthChange(e),n.setState({isRenderAriaLiveMessage:!0}))})),Ct(Zt(n),"handleMonthYearChange",(function(e){n.handleYearChange(e),n.handleMonthChange(e)})),Ct(Zt(n),"changeYear",(function(e){n.setState((function(t){var r=t.date;return{date:Ue.default(r,e)}}),(function(){return n.handleYearChange(n.state.date)}))})),Ct(Zt(n),"changeMonth",(function(e){n.setState((function(t){var r=t.date;return{date:je.default(r,e)}}),(function(){return n.handleMonthChange(n.state.date)}))})),Ct(Zt(n),"changeMonthYear",(function(e){n.setState((function(t){var r=t.date;return{date:Ue.default(je.default(r,Ye.default(e)),Ie.default(e))}}),(function(){return n.handleMonthYearChange(n.state.date)}))})),Ct(Zt(n),"header",(function(){var e=Ut(arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,n.props.locale,n.props.calendarStartDay),t=[];return n.props.showWeekNumbers&&t.push(de.default.createElement("div",{key:"W",className:"react-datepicker__day-name"},n.props.weekLabel||"#")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=ye.default(e,t),a=n.formatWeekday(r,n.props.locale),o=n.props.weekDayClassName?n.props.weekDayClassName(r):void 0;return de.default.createElement("div",{key:t,className:pe.default("react-datepicker__day-name",o)},a)})))})),Ct(Zt(n),"formatWeekday",(function(e,t){return n.props.formatWeekDay?function(e,t,r){return t(Bt(e,"EEEE",r))}(e,n.props.formatWeekDay,t):n.props.useWeekdaysShort?function(e,t){return Bt(e,"EEE",t)}(e,t):function(e,t){return Bt(e,"EEEEEE",t)}(e,t)})),Ct(Zt(n),"decreaseYear",(function(){n.setState((function(e){var t=e.date;return{date:xe.default(t,n.props.showYearPicker?n.props.yearItemNumber:1)}}),(function(){return n.handleYearChange(n.state.date)}))})),Ct(Zt(n),"clearSelectingDate",(function(){n.setState({selectingDate:null})})),Ct(Zt(n),"renderPreviousButton",(function(){if(!n.props.renderCustomHeader){var e;switch(!0){case n.props.showMonthYearPicker:e=yr(n.state.date,n.props);break;case n.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,n=t.yearItemNumber,a=void 0===n?It:n,o=Mr(qt(xe.default(e,a)),a).endPeriod,i=r&&Ie.default(r);return i&&i>o||!1}(n.state.date,n.props);break;default:e=mr(n.state.date,n.props)}if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var t=["react-datepicker__navigation","react-datepicker__navigation--previous"],r=n.decreaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker)&&(r=n.decreaseYear),e&&n.props.showDisabledMonthNavigation&&(t.push("react-datepicker__navigation--previous--disabled"),r=null);var a=n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker,o=n.props,i=o.previousMonthButtonLabel,s=o.previousYearButtonLabel,u=n.props,c=u.previousMonthAriaLabel,l=void 0===c?"string"==typeof i?i:"Previous Month":c,d=u.previousYearAriaLabel,p=void 0===d?"string"==typeof s?s:"Previous Year":d;return de.default.createElement("button",{type:"button",className:t.join(" "),onClick:r,onKeyDown:n.props.handleOnKeyDown,"aria-label":a?p:l},de.default.createElement("span",{className:["react-datepicker__navigation-icon","react-datepicker__navigation-icon--previous"].join(" ")},a?n.props.previousYearButtonLabel:n.props.previousMonthButtonLabel))}}})),Ct(Zt(n),"increaseYear",(function(){n.setState((function(e){var t=e.date;return{date:ke.default(t,n.props.showYearPicker?n.props.yearItemNumber:1)}}),(function(){return n.handleYearChange(n.state.date)}))})),Ct(Zt(n),"renderNextButton",(function(){if(!n.props.renderCustomHeader){var e;switch(!0){case n.props.showMonthYearPicker:e=wr(n.state.date,n.props);break;case n.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,n=t.yearItemNumber,a=void 0===n?It:n,o=Mr(ke.default(e,a),a).startPeriod,i=r&&Ie.default(r);return i&&i<o||!1}(n.state.date,n.props);break;default:e=gr(n.state.date,n.props)}if((n.props.forceShowMonthNavigation||n.props.showDisabledMonthNavigation||!e)&&!n.props.showTimeSelectOnly){var t=["react-datepicker__navigation","react-datepicker__navigation--next"];n.props.showTimeSelect&&t.push("react-datepicker__navigation--next--with-time"),n.props.todayButton&&t.push("react-datepicker__navigation--next--with-today-button");var r=n.increaseMonth;(n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker)&&(r=n.increaseYear),e&&n.props.showDisabledMonthNavigation&&(t.push("react-datepicker__navigation--next--disabled"),r=null);var a=n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker,o=n.props,i=o.nextMonthButtonLabel,s=o.nextYearButtonLabel,u=n.props,c=u.nextMonthAriaLabel,l=void 0===c?"string"==typeof i?i:"Next Month":c,d=u.nextYearAriaLabel,p=void 0===d?"string"==typeof s?s:"Next Year":d;return de.default.createElement("button",{type:"button",className:t.join(" "),onClick:r,onKeyDown:n.props.handleOnKeyDown,"aria-label":a?p:l},de.default.createElement("span",{className:["react-datepicker__navigation-icon","react-datepicker__navigation-icon--next"].join(" ")},a?n.props.nextYearButtonLabel:n.props.nextMonthButtonLabel))}}})),Ct(Zt(n),"renderCurrentMonth",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n.state.date,t=["react-datepicker__current-month"];return n.props.showYearDropdown&&t.push("react-datepicker__current-month--hasYearDropdown"),n.props.showMonthDropdown&&t.push("react-datepicker__current-month--hasMonthDropdown"),n.props.showMonthYearDropdown&&t.push("react-datepicker__current-month--hasMonthYearDropdown"),de.default.createElement("div",{className:t.join(" ")},Bt(e,n.props.dateFormat,n.props.locale))})),Ct(Zt(n),"renderYearDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showYearDropdown&&!e)return de.default.createElement(Er,{adjustDateOnChange:n.props.adjustDateOnChange,date:n.state.date,onSelect:n.props.onSelect,setOpen:n.props.setOpen,dropdownMode:n.props.dropdownMode,onChange:n.changeYear,minDate:n.props.minDate,maxDate:n.props.maxDate,year:Ie.default(n.state.date),scrollableYearDropdown:n.props.scrollableYearDropdown,yearDropdownItemNumber:n.props.yearDropdownItemNumber})})),Ct(Zt(n),"renderMonthDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthDropdown&&!e)return de.default.createElement(Or,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,onChange:n.changeMonth,month:Ye.default(n.state.date),useShortMonthInDropdown:n.props.useShortMonthInDropdown})})),Ct(Zt(n),"renderMonthYearDropdown",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(n.props.showMonthYearDropdown&&!e)return de.default.createElement(Rr,{dropdownMode:n.props.dropdownMode,locale:n.props.locale,dateFormat:n.props.dateFormat,onChange:n.changeMonthYear,minDate:n.props.minDate,maxDate:n.props.maxDate,date:n.state.date,scrollableMonthYearDropdown:n.props.scrollableMonthYearDropdown})})),Ct(Zt(n),"handleTodayButtonClick",(function(e){n.props.onSelect(Kt(),e),n.props.setPreSelection&&n.props.setPreSelection(Kt())})),Ct(Zt(n),"renderTodayButton",(function(){if(n.props.todayButton&&!n.props.showTimeSelectOnly)return de.default.createElement("div",{className:"react-datepicker__today-button",onClick:function(e){return n.handleTodayButtonClick(e)}},n.props.todayButton)})),Ct(Zt(n),"renderDefaultHeader",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement("div",{className:"react-datepicker__header ".concat(n.props.showTimeSelect?"react-datepicker__header--has-time-select":"")},n.renderCurrentMonth(t),de.default.createElement("div",{className:"react-datepicker__header__dropdown react-datepicker__header__dropdown--".concat(n.props.dropdownMode),onFocus:n.handleDropdownFocus},n.renderMonthDropdown(0!==r),n.renderMonthYearDropdown(0!==r),n.renderYearDropdown(0!==r)),de.default.createElement("div",{className:"react-datepicker__day-names"},n.header(t)))})),Ct(Zt(n),"renderCustomHeader",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(n.props.showTimeSelect&&!n.state.monthContainer||n.props.showTimeSelectOnly)return null;var a=mr(n.state.date,n.props),o=gr(n.state.date,n.props),i=yr(n.state.date,n.props),s=wr(n.state.date,n.props),u=!n.props.showMonthYearPicker&&!n.props.showQuarterYearPicker&&!n.props.showYearPicker;return de.default.createElement("div",{className:"react-datepicker__header react-datepicker__header--custom",onFocus:n.props.onDropdownFocus},n.props.renderCustomHeader(yt(yt({},n.state),{},{customHeaderCount:r,monthDate:t,changeMonth:n.changeMonth,changeYear:n.changeYear,decreaseMonth:n.decreaseMonth,increaseMonth:n.increaseMonth,decreaseYear:n.decreaseYear,increaseYear:n.increaseYear,prevMonthButtonDisabled:a,nextMonthButtonDisabled:o,prevYearButtonDisabled:i,nextYearButtonDisabled:s})),u&&de.default.createElement("div",{className:"react-datepicker__day-names"},n.header(t)))})),Ct(Zt(n),"renderYearHeader",(function(){var e=n.state.date,t=n.props,r=t.showYearPicker,a=Mr(e,t.yearItemNumber),o=a.startPeriod,i=a.endPeriod;return de.default.createElement("div",{className:"react-datepicker__header react-datepicker-year-header"},r?"".concat(o," - ").concat(i):Ie.default(e))})),Ct(Zt(n),"renderHeader",(function(e){switch(!0){case void 0!==n.props.renderCustomHeader:return n.renderCustomHeader(e);case n.props.showMonthYearPicker||n.props.showQuarterYearPicker||n.props.showYearPicker:return n.renderYearHeader(e);default:return n.renderDefaultHeader(e)}})),Ct(Zt(n),"renderMonths",(function(){if(!n.props.showTimeSelectOnly&&!n.props.showYearPicker){for(var e=[],t=n.props.showPreviousMonths?n.props.monthsShown-1:0,r=Me.default(n.state.date,t),a=0;a<n.props.monthsShown;++a){var o=a-n.props.monthSelectedIn,i=be.default(r,o),s="month-".concat(a),u=a<n.props.monthsShown-1,c=a>0;e.push(de.default.createElement("div",{key:s,ref:function(e){n.monthContainer=e},className:"react-datepicker__month-container"},n.renderHeader({monthDate:i,i:a}),de.default.createElement(Qr,{chooseDayAriaLabelPrefix:n.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:n.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:n.props.weekAriaLabelPrefix,ariaLabelPrefix:n.props.monthAriaLabelPrefix,onChange:n.changeMonthYear,day:i,dayClassName:n.props.dayClassName,calendarStartDay:n.props.calendarStartDay,monthClassName:n.props.monthClassName,onDayClick:n.handleDayClick,handleOnKeyDown:n.props.handleOnDayKeyDown,onDayMouseEnter:n.handleDayMouseEnter,onMouseLeave:n.handleMonthMouseLeave,onWeekSelect:n.props.onWeekSelect,orderInDisplay:a,formatWeekNumber:n.props.formatWeekNumber,locale:n.props.locale,minDate:n.props.minDate,maxDate:n.props.maxDate,excludeDates:n.props.excludeDates,excludeDateIntervals:n.props.excludeDateIntervals,highlightDates:n.props.highlightDates,selectingDate:n.state.selectingDate,includeDates:n.props.includeDates,includeDateIntervals:n.props.includeDateIntervals,inline:n.props.inline,shouldFocusDayInline:n.props.shouldFocusDayInline,fixedHeight:n.props.fixedHeight,filterDate:n.props.filterDate,preSelection:n.props.preSelection,setPreSelection:n.props.setPreSelection,selected:n.props.selected,selectsStart:n.props.selectsStart,selectsEnd:n.props.selectsEnd,selectsRange:n.props.selectsRange,selectsDisabledDaysInRange:n.props.selectsDisabledDaysInRange,showWeekNumbers:n.props.showWeekNumbers,startDate:n.props.startDate,endDate:n.props.endDate,peekNextMonth:n.props.peekNextMonth,setOpen:n.props.setOpen,shouldCloseOnSelect:n.props.shouldCloseOnSelect,renderDayContents:n.props.renderDayContents,renderMonthContent:n.props.renderMonthContent,renderQuarterContent:n.props.renderQuarterContent,renderYearContent:n.props.renderYearContent,disabledKeyboardNavigation:n.props.disabledKeyboardNavigation,showMonthYearPicker:n.props.showMonthYearPicker,showFullMonthYearPicker:n.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:n.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:n.props.showFourColumnMonthYearPicker,showYearPicker:n.props.showYearPicker,showQuarterYearPicker:n.props.showQuarterYearPicker,isInputFocused:n.props.isInputFocused,containerRef:n.containerRef,monthShowsDuplicateDaysEnd:u,monthShowsDuplicateDaysStart:c})))}return e}})),Ct(Zt(n),"renderYears",(function(){if(!n.props.showTimeSelectOnly)return n.props.showYearPicker?de.default.createElement("div",{className:"react-datepicker__year--container"},n.renderHeader(),de.default.createElement(Vr,St({onDayClick:n.handleDayClick,selectingDate:n.state.selectingDate,clearSelectingDate:n.clearSelectingDate,date:n.state.date},n.props,{onYearMouseEnter:n.handleYearMouseEnter,onYearMouseLeave:n.handleYearMouseLeave}))):void 0})),Ct(Zt(n),"renderTimeSection",(function(){if(n.props.showTimeSelect&&(n.state.monthContainer||n.props.showTimeSelectOnly))return de.default.createElement(Kr,{selected:n.props.selected,openToDate:n.props.openToDate,onChange:n.props.onTimeChange,timeClassName:n.props.timeClassName,format:n.props.timeFormat,includeTimes:n.props.includeTimes,intervals:n.props.timeIntervals,minTime:n.props.minTime,maxTime:n.props.maxTime,excludeTimes:n.props.excludeTimes,filterTime:n.props.filterTime,timeCaption:n.props.timeCaption,todayButton:n.props.todayButton,showMonthDropdown:n.props.showMonthDropdown,showMonthYearDropdown:n.props.showMonthYearDropdown,showYearDropdown:n.props.showYearDropdown,withPortal:n.props.withPortal,monthRef:n.state.monthContainer,injectTimes:n.props.injectTimes,locale:n.props.locale,handleOnKeyDown:n.props.handleOnKeyDown,showTimeSelectOnly:n.props.showTimeSelectOnly})})),Ct(Zt(n),"renderInputTimeSection",(function(){var e=new Date(n.props.selected),t=Ft(e)&&Boolean(n.props.selected)?"".concat(Sr(e.getHours()),":").concat(Sr(e.getMinutes())):"";if(n.props.showTimeInput)return de.default.createElement(zr,{date:e,timeString:t,timeInputLabel:n.props.timeInputLabel,onChange:n.props.onTimeChange,customTimeInput:n.props.customTimeInput})})),Ct(Zt(n),"renderAriaLiveRegion",(function(){var e,t=Mr(n.state.date,n.props.yearItemNumber),r=t.startPeriod,a=t.endPeriod;return e=n.props.showYearPicker?"".concat(r," - ").concat(a):n.props.showMonthYearPicker||n.props.showQuarterYearPicker?Ie.default(n.state.date):"".concat(rr(Ye.default(n.state.date),n.props.locale)," ").concat(Ie.default(n.state.date)),de.default.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},n.state.isRenderAriaLiveMessage&&e)})),Ct(Zt(n),"renderChildren",(function(){if(n.props.children)return de.default.createElement("div",{className:"react-datepicker__children-container"},n.props.children)})),n.containerRef=de.default.createRef(),n.state={date:n.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},n}return kt(r,[{key:"componentDidMount",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:"componentDidUpdate",value:function(e){var t=this;if(!this.props.preSelection||Xt(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!Xt(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!zt(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:"render",value:function(){var e=this.props.container||Gr;return de.default.createElement("div",{ref:this.containerRef},de.default.createElement(e,{className:pe.default("react-datepicker",this.props.className,{"react-datepicker--time-only":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:"defaultProps",get:function(){return{onDropdownFocus:function(){},monthsShown:1,monthSelectedIn:0,forceShowMonthNavigation:!1,timeCaption:"Time",previousYearButtonLabel:"Previous Year",nextYearButtonLabel:"Next Year",previousMonthButtonLabel:"Previous Month",nextMonthButtonLabel:"Next Month",customTimeInput:null,yearItemNumber:It}}}]),r}(de.default.Component),$r=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),(n=t.call(this,e)).el=document.createElement("div"),n}return kt(r,[{key:"componentDidMount",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement("div"),this.portalRoot.setAttribute("id",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:"componentWillUnmount",value:function(){this.portalRoot.removeChild(this.el)}},{key:"render",value:function(){return vt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),en=function(e){return!e.disabled&&-1!==e.tabIndex},tn=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"getTabChildren",(function(){return Array.prototype.slice.call(n.tabLoopRef.current.querySelectorAll("[tabindex], a, button, input, select, textarea"),1,-1).filter(en)})),Ct(Zt(n),"handleFocusStart",(function(){var e=n.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),Ct(Zt(n),"handleFocusEnd",(function(){var e=n.getTabChildren();e&&e.length>1&&e[0].focus()})),n.tabLoopRef=de.default.createRef(),n}return kt(r,[{key:"render",value:function(){return this.props.enableTabLoop?de.default.createElement("div",{className:"react-datepicker__tab-loop",ref:this.tabLoopRef},de.default.createElement("div",{className:"react-datepicker__tab-loop__start",tabIndex:"0",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement("div",{className:"react-datepicker__tab-loop__end",tabIndex:"0",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:"defaultProps",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),rn=function(e){Mt(r,e);var t=Et(r);function r(){return bt(this,r),t.apply(this,arguments)}return kt(r,[{key:"render",value:function(){var e,t=this.props,r=t.className,n=t.wrapperClassName,a=t.hidePopper,o=t.popperComponent,i=t.popperModifiers,s=t.popperPlacement,u=t.popperProps,c=t.targetComponent,l=t.enableTabLoop,d=t.popperOnKeyDown,p=t.portalId,f=t.portalHost;if(!a){var h=pe.default("react-datepicker-popper",r);e=de.default.createElement(ue.Popper,St({modifiers:i,placement:s},u),(function(e){var t=e.ref,r=e.style,n=e.placement,a=e.arrowProps;return de.default.createElement(tn,{enableTabLoop:l},de.default.createElement("div",{ref:t,style:r,className:h,"data-placement":n,onKeyDown:d},de.default.cloneElement(o,{arrowProps:a})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),p&&!a&&(e=de.default.createElement($r,{portalId:p,portalHost:f},e));var v=pe.default("react-datepicker-wrapper",n);return de.default.createElement(ue.Manager,{className:"react-datepicker-manager"},de.default.createElement(ue.Reference,null,(function(e){var t=e.ref;return de.default.createElement("div",{ref:t,className:v},c)})),e)}}],[{key:"defaultProps",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:"bottom-start"}}}]),r}(de.default.Component),nn="react-datepicker-ignore-onclickoutside",an=ht.default(Jr),on="Date input not valid.",sn=function(e){Mt(r,e);var t=Et(r);function r(e){var n;return bt(this,r),Ct(Zt(n=t.call(this,e)),"getPreSelection",(function(){return n.props.openToDate?n.props.openToDate:n.props.selectsEnd&&n.props.startDate?n.props.startDate:n.props.selectsStart&&n.props.endDate?n.props.endDate:At()})),Ct(Zt(n),"calcInitialState",(function(){var e,t=n.getPreSelection(),r=br(n.props),a=Dr(n.props),o=r&&ct.default(t,ze.default(r))?r:a&&ut.default(t,et.default(a))?a:t;return{open:n.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=n.props.selectsRange?n.props.startDate:n.props.selected)&&void 0!==e?e:o,highlightDates:kr(n.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),Ct(Zt(n),"clearPreventFocusTimeout",(function(){n.preventFocusTimeout&&clearTimeout(n.preventFocusTimeout)})),Ct(Zt(n),"setFocus",(function(){n.input&&n.input.focus&&n.input.focus({preventScroll:!0})})),Ct(Zt(n),"setBlur",(function(){n.input&&n.input.blur&&n.input.blur(),n.cancelFocusInput()})),Ct(Zt(n),"setOpen",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];n.setState({open:e,preSelection:e&&n.state.open?n.state.preSelection:n.calcInitialState().preSelection,lastPreSelectChange:cn},(function(){e||n.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&n.setBlur(),n.setState({inputValue:null})}))}))})),Ct(Zt(n),"inputOk",(function(){return fe.default(n.state.preSelection)})),Ct(Zt(n),"isCalendarOpen",(function(){return void 0===n.props.open?n.state.open&&!n.props.disabled&&!n.props.readOnly:n.props.open})),Ct(Zt(n),"handleFocus",(function(e){n.state.preventFocus||(n.props.onFocus(e),n.props.preventOpenOnFocus||n.props.readOnly||n.setOpen(!0)),n.setState({focused:!0})})),Ct(Zt(n),"cancelFocusInput",(function(){clearTimeout(n.inputFocusTimeout),n.inputFocusTimeout=null})),Ct(Zt(n),"deferFocusInput",(function(){n.cancelFocusInput(),n.inputFocusTimeout=setTimeout((function(){return n.setFocus()}),1)})),Ct(Zt(n),"handleDropdownFocus",(function(){n.cancelFocusInput()})),Ct(Zt(n),"handleBlur",(function(e){(!n.state.open||n.props.withPortal||n.props.showTimeInput)&&n.props.onBlur(e),n.setState({focused:!1})})),Ct(Zt(n),"handleCalendarClickOutside",(function(e){n.props.inline||n.setOpen(!1),n.props.onClickOutside(e),n.props.withPortal&&e.preventDefault()})),Ct(Zt(n),"handleChange",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var a=t[0];if(!n.props.onChangeRaw||(n.props.onChangeRaw.apply(Zt(n),t),"function"==typeof a.isDefaultPrevented&&!a.isDefaultPrevented())){n.setState({inputValue:a.target.value,lastPreSelectChange:un});var o,i,s,u,c,l,d,p,f=(o=a.target.value,i=n.props.dateFormat,s=n.props.locale,u=n.props.strictParsing,c=n.props.minDate,l=null,d=tr(s)||tr(er()),p=!0,Array.isArray(i)?(i.forEach((function(e){var t=pt.default(o,e,new Date,{locale:d});u&&(p=Ft(t,c)&&o===Bt(t,e,s)),Ft(t,c)&&p&&(l=t)})),l):(l=pt.default(o,i,new Date,{locale:d}),u?p=Ft(l)&&o===Bt(l,i,s):Ft(l)||(i=i.match(Rt).map((function(e){var t=e[0];return"p"===t||"P"===t?d?(0,Lt[t])(e,d.formatLong):t:e})).join(""),o.length>0&&(l=pt.default(o,i.slice(0,o.length),new Date)),Ft(l)||(l=new Date(o))),Ft(l)&&p?l:null));n.props.showTimeSelectOnly&&n.props.selected&&!Xt(f,n.props.selected)&&(f=null==f?mt.default(n.props.selected,{hours:_e.default(n.props.selected),minutes:Ee.default(n.props.selected),seconds:Ze.default(n.props.selected)}):mt.default(n.props.selected,{hours:_e.default(f),minutes:Ee.default(f),seconds:Ze.default(f)})),!f&&a.target.value||n.setSelected(f,a,!0)}})),Ct(Zt(n),"handleSelect",(function(e,t,r){if(n.setState({preventFocus:!0},(function(){return n.preventFocusTimeout=setTimeout((function(){return n.setState({preventFocus:!1})}),50),n.preventFocusTimeout})),n.props.onChangeRaw&&n.props.onChangeRaw(t),n.setSelected(e,t,!1,r),n.props.showDateSelect&&n.setState({isRenderAriaLiveMessage:!0}),!n.props.shouldCloseOnSelect||n.props.showTimeSelect)n.setPreSelection(e);else if(!n.props.inline){n.props.selectsRange||n.setOpen(!1);var a=n.props,o=a.startDate,i=a.endDate;!o||i||ct.default(e,o)||n.setOpen(!1)}})),Ct(Zt(n),"setSelected",(function(e,t,r,a){var o=e;if(n.props.showYearPicker){if(null!==o&&lr(Ie.default(o),n.props))return}else if(n.props.showMonthYearPicker){if(null!==o&&ir(o,n.props))return}else if(null!==o&&ar(o,n.props))return;var i=n.props,s=i.onChange,u=i.selectsRange,c=i.startDate,l=i.endDate;if(!Jt(n.props.selected,o)||n.props.allowSameDay||u)if(null!==o&&(!n.props.selected||r&&(n.props.showTimeSelect||n.props.showTimeSelectOnly||n.props.showTimeInput)||(o=Ht(o,{hour:_e.default(n.props.selected),minute:Ee.default(n.props.selected),second:Ze.default(n.props.selected)})),n.props.inline||n.setState({preSelection:o}),n.props.focusSelectedMonth||n.setState({monthSelectedIn:a})),u){var d=c&&l;c||l?c&&!l&&(ct.default(o,c)?s([o,null],t):s([c,o],t)):s([o,null],t),d&&s([o,null],t)}else s(o,t);r||(n.props.onSelect(o,t),n.setState({inputValue:null}))})),Ct(Zt(n),"setPreSelection",(function(e){var t=void 0!==n.props.minDate,r=void 0!==n.props.maxDate,a=!0;if(e){var o=ze.default(e);if(t&&r)a=$t(e,n.props.minDate,n.props.maxDate);else if(t){var i=ze.default(n.props.minDate);a=ut.default(e,i)||Jt(o,i)}else if(r){var s=et.default(n.props.maxDate);a=ct.default(e,s)||Jt(o,s)}}a&&n.setState({preSelection:e})})),Ct(Zt(n),"handleTimeChange",(function(e){var t=Ht(n.props.selected?n.props.selected:n.getPreSelection(),{hour:_e.default(e),minute:Ee.default(e)});n.setState({preSelection:t}),n.props.onChange(t),n.props.shouldCloseOnSelect&&n.setOpen(!1),n.props.showTimeInput&&n.setOpen(!0),(n.props.showTimeSelectOnly||n.props.showTimeSelect)&&n.setState({isRenderAriaLiveMessage:!0}),n.setState({inputValue:null})})),Ct(Zt(n),"onInputClick",(function(){n.props.disabled||n.props.readOnly||n.setOpen(!0),n.props.onInputClick()})),Ct(Zt(n),"onInputKeyDown",(function(e){n.props.onKeyDown(e);var t=e.key;if(n.state.open||n.props.inline||n.props.preventOpenOnFocus){if(n.state.open){if("ArrowDown"===t||"ArrowUp"===t){e.preventDefault();var r=n.calendar.componentNode&&n.calendar.componentNode.querySelector('.react-datepicker__day[tabindex="0"]');return void(r&&r.focus({preventScroll:!0}))}var a=At(n.state.preSelection);"Enter"===t?(e.preventDefault(),n.inputOk()&&n.state.lastPreSelectChange===cn?(n.handleSelect(a,e),!n.props.shouldCloseOnSelect&&n.setPreSelection(a)):n.setOpen(!1)):"Escape"===t?(e.preventDefault(),n.setOpen(!1)):"Tab"===t&&e.shiftKey&&n.setOpen(!1),n.inputOk()||n.props.onInputError({code:1,msg:on})}}else"ArrowDown"!==t&&"ArrowUp"!==t&&"Enter"!==t||n.onInputClick()})),Ct(Zt(n),"onPortalKeyDown",(function(e){"Escape"===e.key&&(e.preventDefault(),n.setState({preventFocus:!0},(function(){n.setOpen(!1),setTimeout((function(){n.setFocus(),n.setState({preventFocus:!1})}))})))})),Ct(Zt(n),"onDayKeyDown",(function(e){n.props.onKeyDown(e);var t=e.key,r=At(n.state.preSelection);if("Enter"===t)e.preventDefault(),n.handleSelect(r,e),!n.props.shouldCloseOnSelect&&n.setPreSelection(r);else if("Escape"===t)e.preventDefault(),n.setOpen(!1),n.inputOk()||n.props.onInputError({code:1,msg:on});else if(!n.props.disabledKeyboardNavigation){var a;switch(t){case"ArrowLeft":a=Ce.default(r,1);break;case"ArrowRight":a=ye.default(r,1);break;case"ArrowUp":a=Se.default(r,1);break;case"ArrowDown":a=we.default(r,1);break;case"PageUp":a=Me.default(r,1);break;case"PageDown":a=be.default(r,1);break;case"Home":a=xe.default(r,1);break;case"End":a=ke.default(r,1)}if(!a)return void(n.props.onInputError&&n.props.onInputError({code:1,msg:on}));if(e.preventDefault(),n.setState({lastPreSelectChange:cn}),n.props.adjustDateOnChange&&n.setSelected(a),n.setPreSelection(a),n.props.inline){var o=Ye.default(r),i=Ye.default(a),s=Ie.default(r),u=Ie.default(a);o!==i||s!==u?n.setState({shouldFocusDayInline:!0}):n.setState({shouldFocusDayInline:!1})}}})),Ct(Zt(n),"onPopperKeyDown",(function(e){"Escape"===e.key&&(e.preventDefault(),n.setState({preventFocus:!0},(function(){n.setOpen(!1),setTimeout((function(){n.setFocus(),n.setState({preventFocus:!1})}))})))})),Ct(Zt(n),"onClearClick",(function(e){e&&e.preventDefault&&e.preventDefault(),n.props.selectsRange?n.props.onChange([null,null],e):n.props.onChange(null,e),n.setState({inputValue:null})})),Ct(Zt(n),"clear",(function(){n.onClearClick()})),Ct(Zt(n),"onScroll",(function(e){"boolean"==typeof n.props.closeOnScroll&&n.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||n.setOpen(!1):"function"==typeof n.props.closeOnScroll&&n.props.closeOnScroll(e)&&n.setOpen(!1)})),Ct(Zt(n),"renderCalendar",(function(){return n.props.inline||n.isCalendarOpen()?de.default.createElement(an,{ref:function(e){n.calendar=e},locale:n.props.locale,calendarStartDay:n.props.calendarStartDay,chooseDayAriaLabelPrefix:n.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:n.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:n.props.weekAriaLabelPrefix,monthAriaLabelPrefix:n.props.monthAriaLabelPrefix,adjustDateOnChange:n.props.adjustDateOnChange,setOpen:n.setOpen,shouldCloseOnSelect:n.props.shouldCloseOnSelect,dateFormat:n.props.dateFormatCalendar,useWeekdaysShort:n.props.useWeekdaysShort,formatWeekDay:n.props.formatWeekDay,dropdownMode:n.props.dropdownMode,selected:n.props.selected,preSelection:n.state.preSelection,onSelect:n.handleSelect,onWeekSelect:n.props.onWeekSelect,openToDate:n.props.openToDate,minDate:n.props.minDate,maxDate:n.props.maxDate,selectsStart:n.props.selectsStart,selectsEnd:n.props.selectsEnd,selectsRange:n.props.selectsRange,startDate:n.props.startDate,endDate:n.props.endDate,excludeDates:n.props.excludeDates,excludeDateIntervals:n.props.excludeDateIntervals,filterDate:n.props.filterDate,onClickOutside:n.handleCalendarClickOutside,formatWeekNumber:n.props.formatWeekNumber,highlightDates:n.state.highlightDates,includeDates:n.props.includeDates,includeDateIntervals:n.props.includeDateIntervals,includeTimes:n.props.includeTimes,injectTimes:n.props.injectTimes,inline:n.props.inline,shouldFocusDayInline:n.state.shouldFocusDayInline,peekNextMonth:n.props.peekNextMonth,showMonthDropdown:n.props.showMonthDropdown,showPreviousMonths:n.props.showPreviousMonths,useShortMonthInDropdown:n.props.useShortMonthInDropdown,showMonthYearDropdown:n.props.showMonthYearDropdown,showWeekNumbers:n.props.showWeekNumbers,showYearDropdown:n.props.showYearDropdown,withPortal:n.props.withPortal,forceShowMonthNavigation:n.props.forceShowMonthNavigation,showDisabledMonthNavigation:n.props.showDisabledMonthNavigation,scrollableYearDropdown:n.props.scrollableYearDropdown,scrollableMonthYearDropdown:n.props.scrollableMonthYearDropdown,todayButton:n.props.todayButton,weekLabel:n.props.weekLabel,outsideClickIgnoreClass:nn,fixedHeight:n.props.fixedHeight,monthsShown:n.props.monthsShown,monthSelectedIn:n.state.monthSelectedIn,onDropdownFocus:n.handleDropdownFocus,onMonthChange:n.props.onMonthChange,onYearChange:n.props.onYearChange,dayClassName:n.props.dayClassName,weekDayClassName:n.props.weekDayClassName,monthClassName:n.props.monthClassName,timeClassName:n.props.timeClassName,showDateSelect:n.props.showDateSelect,showTimeSelect:n.props.showTimeSelect,showTimeSelectOnly:n.props.showTimeSelectOnly,onTimeChange:n.handleTimeChange,timeFormat:n.props.timeFormat,timeIntervals:n.props.timeIntervals,minTime:n.props.minTime,maxTime:n.props.maxTime,excludeTimes:n.props.excludeTimes,filterTime:n.props.filterTime,timeCaption:n.props.timeCaption,className:n.props.calendarClassName,container:n.props.calendarContainer,yearItemNumber:n.props.yearItemNumber,yearDropdownItemNumber:n.props.yearDropdownItemNumber,previousMonthAriaLabel:n.props.previousMonthAriaLabel,previousMonthButtonLabel:n.props.previousMonthButtonLabel,nextMonthAriaLabel:n.props.nextMonthAriaLabel,nextMonthButtonLabel:n.props.nextMonthButtonLabel,previousYearAriaLabel:n.props.previousYearAriaLabel,previousYearButtonLabel:n.props.previousYearButtonLabel,nextYearAriaLabel:n.props.nextYearAriaLabel,nextYearButtonLabel:n.props.nextYearButtonLabel,timeInputLabel:n.props.timeInputLabel,disabledKeyboardNavigation:n.props.disabledKeyboardNavigation,renderCustomHeader:n.props.renderCustomHeader,popperProps:n.props.popperProps,renderDayContents:n.props.renderDayContents,renderMonthContent:n.props.renderMonthContent,renderQuarterContent:n.props.renderQuarterContent,renderYearContent:n.props.renderYearContent,onDayMouseEnter:n.props.onDayMouseEnter,onMonthMouseLeave:n.props.onMonthMouseLeave,onYearMouseEnter:n.props.onYearMouseEnter,onYearMouseLeave:n.props.onYearMouseLeave,selectsDisabledDaysInRange:n.props.selectsDisabledDaysInRange,showTimeInput:n.props.showTimeInput,showMonthYearPicker:n.props.showMonthYearPicker,showFullMonthYearPicker:n.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:n.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:n.props.showFourColumnMonthYearPicker,showYearPicker:n.props.showYearPicker,showQuarterYearPicker:n.props.showQuarterYearPicker,showPopperArrow:n.props.showPopperArrow,excludeScrollbar:n.props.excludeScrollbar,handleOnKeyDown:n.props.onKeyDown,handleOnDayKeyDown:n.onDayKeyDown,isInputFocused:n.state.focused,customTimeInput:n.props.customTimeInput,setPreSelection:n.setPreSelection},n.props.children):null})),Ct(Zt(n),"renderAriaLiveRegion",(function(){var e,t=n.props,r=t.dateFormat,a=t.locale,o=n.props.showTimeInput||n.props.showTimeSelect?"PPPPp":"PPPP";return e=n.props.selectsRange?"Selected start date: ".concat(jt(n.props.startDate,{dateFormat:o,locale:a}),". ").concat(n.props.endDate?"End date: "+jt(n.props.endDate,{dateFormat:o,locale:a}):""):n.props.showTimeSelectOnly?"Selected time: ".concat(jt(n.props.selected,{dateFormat:r,locale:a})):n.props.showYearPicker?"Selected year: ".concat(jt(n.props.selected,{dateFormat:"yyyy",locale:a})):n.props.showMonthYearPicker?"Selected month: ".concat(jt(n.props.selected,{dateFormat:"MMMM yyyy",locale:a})):n.props.showQuarterYearPicker?"Selected quarter: ".concat(jt(n.props.selected,{dateFormat:"yyyy, QQQ",locale:a})):"Selected date: ".concat(jt(n.props.selected,{dateFormat:o,locale:a})),de.default.createElement("span",{role:"alert","aria-live":"polite",className:"react-datepicker__aria-live"},e)})),Ct(Zt(n),"renderDateInput",(function(){var e,t=pe.default(n.props.className,Ct({},nn,n.state.open)),r=n.props.customInput||de.default.createElement("input",{type:"text"}),a=n.props.customInputRef||"ref",o="string"==typeof n.props.value?n.props.value:"string"==typeof n.state.inputValue?n.state.inputValue:n.props.selectsRange?function(e,t,r){if(!e)return"";var n=jt(e,r),a=t?jt(t,r):"";return"".concat(n," - ").concat(a)}(n.props.startDate,n.props.endDate,n.props):jt(n.props.selected,n.props);return de.default.cloneElement(r,(Ct(e={},a,(function(e){n.input=e})),Ct(e,"value",o),Ct(e,"onBlur",n.handleBlur),Ct(e,"onChange",n.handleChange),Ct(e,"onClick",n.onInputClick),Ct(e,"onFocus",n.handleFocus),Ct(e,"onKeyDown",n.onInputKeyDown),Ct(e,"id",n.props.id),Ct(e,"name",n.props.name),Ct(e,"form",n.props.form),Ct(e,"autoFocus",n.props.autoFocus),Ct(e,"placeholder",n.props.placeholderText),Ct(e,"disabled",n.props.disabled),Ct(e,"autoComplete",n.props.autoComplete),Ct(e,"className",pe.default(r.props.className,t)),Ct(e,"title",n.props.title),Ct(e,"readOnly",n.props.readOnly),Ct(e,"required",n.props.required),Ct(e,"tabIndex",n.props.tabIndex),Ct(e,"aria-describedby",n.props.ariaDescribedBy),Ct(e,"aria-invalid",n.props.ariaInvalid),Ct(e,"aria-labelledby",n.props.ariaLabelledBy),Ct(e,"aria-required",n.props.ariaRequired),e))})),Ct(Zt(n),"renderClearButton",(function(){var e=n.props,t=e.isClearable,r=e.selected,a=e.startDate,o=e.endDate,i=e.clearButtonTitle,s=e.clearButtonClassName,u=void 0===s?"":s,c=e.ariaLabelClose,l=void 0===c?"Close":c;return!t||null==r&&null==a&&null==o?null:de.default.createElement("button",{type:"button",className:"react-datepicker__close-icon ".concat(u).trim(),"aria-label":l,onClick:n.onClearClick,title:i,tabIndex:-1})})),n.state=n.calcInitialState(),n}return kt(r,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.onScroll,!0)}},{key:"componentDidUpdate",value:function(e,t){var r,n;e.inline&&(r=e.selected,n=this.props.selected,r&&n?Ye.default(r)!==Ye.default(n)||Ie.default(r)!==Ie.default(n):r!==n)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:kr(this.props.highlightDates)}),t.focused||Jt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:"componentWillUnmount",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener("scroll",this.onScroll,!0)}},{key:"renderInputContainer",value:function(){var e=this.props.showIcon;return de.default.createElement("div",{className:"react-datepicker__input-container".concat(e?" react-datepicker__view-calendar-icon":"")},e&&de.default.createElement("svg",{className:"react-datepicker__calendar-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},de.default.createElement("path",{d:"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z"})),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:"render",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(tn,{enableTabLoop:this.props.enableTabLoop},de.default.createElement("div",{className:"react-datepicker__portal",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement($r,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement("div",null,this.renderInputContainer(),t)}return de.default.createElement(rn,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:"defaultProps",get:function(){return{allowSameDay:!1,dateFormat:"MM/dd/yyyy",dateFormatCalendar:"LLLL yyyy",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:"scroll",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:"Time",previousMonthAriaLabel:"Previous Month",previousMonthButtonLabel:"Previous Month",nextMonthAriaLabel:"Next Month",nextMonthButtonLabel:"Next Month",previousYearAriaLabel:"Previous Year",previousYearButtonLabel:"Previous Year",nextYearAriaLabel:"Next Year",nextYearButtonLabel:"Next Year",timeInputLabel:"Time",enableTabLoop:!0,yearItemNumber:It,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0}}}]),r}(de.default.Component),un="input",cn="navigate";e.CalendarContainer=Gr,e.default=sn,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r="undefined"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){("undefined"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,"__esModule",{value:!0})}(t,r(67294),r(45697),r(94184),r(71381),r(12274),r(49546),r(58545),r(78343),r(77349),r(63500),r(11640),r(8791),r(21593),r(7069),r(77982),r(54559),r(58793),r(59319),r(77881),r(39159),r(85817),r(20466),r(55855),r(9827),r(78966),r(56605),r(95570),r(28789),r(39880),r(4543),r(37042),r(62225),r(11503),r(44749),r(37950),r(99890),r(92300),r(84129),r(91857),r(69119),r(584),r(43703),r(94431),r(38148),r(83894),r(67090),r(4135),r(10876),r(96843),r(3151),r(49160),r(60792),r(86117),r(42699),r(313),r(24257),r(19013),r(76417),r(23855),r(58949),r(73935),r(12053),r(92311))},69590:function(e){var t="undefined"!==typeof Element,r="function"===typeof Map,n="function"===typeof Set,a="function"===typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,u,c,l;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(u=s;0!==u--;)if(!o(e[u],i[u]))return!1;return!0}if(r&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(l=e.entries();!(u=l.next()).done;)if(!i.has(u.value[0]))return!1;for(l=e.entries();!(u=l.next()).done;)if(!o(u.value[1],i.get(u.value[0])))return!1;return!0}if(n&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(l=e.entries();!(u=l.next()).done;)if(!i.has(u.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(u=s;0!==u--;)if(e[u]!==i[u])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(u=s;0!==u--;)if(!Object.prototype.hasOwnProperty.call(i,c[u]))return!1;if(t&&e instanceof Element)return!1;for(u=s;0!==u--;)if(("_owner"!==c[u]&&"__v"!==c[u]&&"__o"!==c[u]||!e.$$typeof)&&!o(e[c[u]],i[c[u]]))return!1;return!0}return e!==e&&i!==i}e.exports=function(e,t){try{return o(e,t)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}}},58949:function(e,t,r){"use strict";r.r(t),r.d(t,{IGNORE_CLASS_NAME:function(){return h}});var n=r(67294),a=r(73935);function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e,t,r){return e===t||(e.correspondingElement?e.correspondingElement.classList.contains(r):e.classList.contains(r))}var u,c,l=(void 0===u&&(u=0),function(){return++u}),d={},p={},f=["touchstart","touchmove"],h="ignore-react-onclickoutside";function v(e,t){var r={};return-1!==f.indexOf(t)&&c&&(r.passive=!e.props.preventDefault),r}t.default=function(e,t){var r,u,f=e.displayName||e.name||"Component";return u=r=function(r){var u,h;function m(e){var n;return(n=r.call(this,e)||this).__outsideClickHandler=function(e){if("function"!==typeof n.__clickOutsideHandlerProp){var t=n.getInstance();if("function"!==typeof t.props.handleClickOutside){if("function"!==typeof t.handleClickOutside)throw new Error("WrappedComponent: "+f+" lacks a handleClickOutside(event) function for processing outside click events.");t.handleClickOutside(e)}else t.props.handleClickOutside(e)}else n.__clickOutsideHandlerProp(e)},n.__getComponentNode=function(){var e=n.getInstance();return t&&"function"===typeof t.setClickOutsideRef?t.setClickOutsideRef()(e):"function"===typeof e.setClickOutsideRef?e.setClickOutsideRef():(0,a.findDOMNode)(e)},n.enableOnClickOutside=function(){if("undefined"!==typeof document&&!p[n._uid]){"undefined"===typeof c&&(c=function(){if("undefined"!==typeof window&&"function"===typeof window.addEventListener){var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),r=function(){};return window.addEventListener("testPassiveEventSupport",r,t),window.removeEventListener("testPassiveEventSupport",r,t),e}}()),p[n._uid]=!0;var e=n.props.eventTypes;e.forEach||(e=[e]),d[n._uid]=function(e){var t;null!==n.componentNode&&(n.props.preventDefault&&e.preventDefault(),n.props.stopPropagation&&e.stopPropagation(),n.props.excludeScrollbar&&(t=e,document.documentElement.clientWidth<=t.clientX||document.documentElement.clientHeight<=t.clientY)||function(e,t,r){if(e===t)return!0;for(;e.parentNode||e.host;){if(e.parentNode&&s(e,t,r))return!0;e=e.parentNode||e.host}return e}(e.composed&&e.composedPath&&e.composedPath().shift()||e.target,n.componentNode,n.props.outsideClickIgnoreClass)===document&&n.__outsideClickHandler(e))},e.forEach((function(e){document.addEventListener(e,d[n._uid],v(i(n),e))}))}},n.disableOnClickOutside=function(){delete p[n._uid];var e=d[n._uid];if(e&&"undefined"!==typeof document){var t=n.props.eventTypes;t.forEach||(t=[t]),t.forEach((function(t){return document.removeEventListener(t,e,v(i(n),t))})),delete d[n._uid]}},n.getRef=function(e){return n.instanceRef=e},n._uid=l(),n}h=r,(u=m).prototype=Object.create(h.prototype),u.prototype.constructor=u,o(u,h);var g=m.prototype;return g.getInstance=function(){if(e.prototype&&!e.prototype.isReactComponent)return this;var t=this.instanceRef;return t.getInstance?t.getInstance():t},g.componentDidMount=function(){if("undefined"!==typeof document&&document.createElement){var e=this.getInstance();if(t&&"function"===typeof t.handleClickOutside&&(this.__clickOutsideHandlerProp=t.handleClickOutside(e),"function"!==typeof this.__clickOutsideHandlerProp))throw new Error("WrappedComponent: "+f+" lacks a function for processing outside click events specified by the handleClickOutside config option.");this.componentNode=this.__getComponentNode(),this.props.disableOnClickOutside||this.enableOnClickOutside()}},g.componentDidUpdate=function(){this.componentNode=this.__getComponentNode()},g.componentWillUnmount=function(){this.disableOnClickOutside()},g.render=function(){var t=this.props;t.excludeScrollbar;var r=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(t,["excludeScrollbar"]);return e.prototype&&e.prototype.isReactComponent?r.ref=this.getRef:r.wrappedRef=this.getRef,r.disableOnClickOutside=this.disableOnClickOutside,r.enableOnClickOutside=this.enableOnClickOutside,(0,n.createElement)(e,r)},m}(n.Component),r.displayName="OnClickOutside("+f+")",r.defaultProps={eventTypes:["mousedown","touchstart"],excludeScrollbar:t&&t.excludeScrollbar||!1,outsideClickIgnoreClass:h,preventDefault:!1,stopPropagation:!1},r.getClass=function(){return e.getClass?e.getClass():e},u}},12053:function(e,t,r){"use strict";r.r(t),r.d(t,{Manager:function(){return i},Popper:function(){return Le},Reference:function(){return Ae},usePopper:function(){return Pe}});var n=r(67294),a=n.createContext(),o=n.createContext();function i(e){var t=e.children,r=n.useState(null),i=r[0],s=r[1],u=n.useRef(!1);n.useEffect((function(){return function(){u.current=!0}}),[]);var c=n.useCallback((function(e){u.current||s(e)}),[]);return n.createElement(a.Provider,{value:i},n.createElement(o.Provider,{value:c},t))}var s=function(e){return Array.isArray(e)?e[0]:e},u=function(e){if("function"===typeof e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e.apply(void 0,r)}},c=function(e,t){if("function"===typeof e)return u(e,t);null!=e&&(e.current=t)},l=function(e){return e.reduce((function(e,t){var r=t[0],n=t[1];return e[r]=n,e}),{})},d="undefined"!==typeof window&&window.document&&window.document.createElement?n.useLayoutEffect:n.useEffect,p=r(73935);function f(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function h(e){return e instanceof f(e).Element||e instanceof Element}function v(e){return e instanceof f(e).HTMLElement||e instanceof HTMLElement}function m(e){return"undefined"!==typeof ShadowRoot&&(e instanceof f(e).ShadowRoot||e instanceof ShadowRoot)}var g=Math.max,y=Math.min,w=Math.round;function b(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function D(){return!/^((?!chrome|android).)*safari/i.test(b())}function k(e,t,r){void 0===t&&(t=!1),void 0===r&&(r=!1);var n=e.getBoundingClientRect(),a=1,o=1;t&&v(e)&&(a=e.offsetWidth>0&&w(n.width)/e.offsetWidth||1,o=e.offsetHeight>0&&w(n.height)/e.offsetHeight||1);var i=(h(e)?f(e):window).visualViewport,s=!D()&&r,u=(n.left+(s&&i?i.offsetLeft:0))/a,c=(n.top+(s&&i?i.offsetTop:0))/o,l=n.width/a,d=n.height/o;return{width:l,height:d,top:c,right:u+l,bottom:c+d,left:u,x:u,y:c}}function C(e){var t=f(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function S(e){return e?(e.nodeName||"").toLowerCase():null}function M(e){return((h(e)?e.ownerDocument:e.document)||window.document).documentElement}function T(e){return k(M(e)).left+C(e).scrollLeft}function x(e){return f(e).getComputedStyle(e)}function Z(e){var t=x(e),r=t.overflow,n=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+a+n)}function E(e,t,r){void 0===r&&(r=!1);var n=v(t),a=v(t)&&function(e){var t=e.getBoundingClientRect(),r=w(t.width)/e.offsetWidth||1,n=w(t.height)/e.offsetHeight||1;return 1!==r||1!==n}(t),o=M(t),i=k(e,a,r),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(n||!n&&!r)&&(("body"!==S(t)||Z(o))&&(s=function(e){return e!==f(e)&&v(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:C(e);var t}(t)),v(t)?((u=k(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):o&&(u.x=T(o))),{x:i.left+s.scrollLeft-u.x,y:i.top+s.scrollTop-u.y,width:i.width,height:i.height}}function _(e){var t=k(e),r=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:n}}function P(e){return"html"===S(e)?e:e.assignedSlot||e.parentNode||(m(e)?e.host:null)||M(e)}function O(e){return["html","body","#document"].indexOf(S(e))>=0?e.ownerDocument.body:v(e)&&Z(e)?e:O(P(e))}function N(e,t){var r;void 0===t&&(t=[]);var n=O(e),a=n===(null==(r=e.ownerDocument)?void 0:r.body),o=f(n),i=a?[o].concat(o.visualViewport||[],Z(n)?n:[]):n,s=t.concat(i);return a?s:s.concat(N(P(i)))}function Y(e){return["table","td","th"].indexOf(S(e))>=0}function L(e){return v(e)&&"fixed"!==x(e).position?e.offsetParent:null}function I(e){for(var t=f(e),r=L(e);r&&Y(r)&&"static"===x(r).position;)r=L(r);return r&&("html"===S(r)||"body"===S(r)&&"static"===x(r).position)?t:r||function(e){var t=/firefox/i.test(b());if(/Trident/i.test(b())&&v(e)&&"fixed"===x(e).position)return null;var r=P(e);for(m(r)&&(r=r.host);v(r)&&["html","body"].indexOf(S(r))<0;){var n=x(r);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return r;r=r.parentNode}return null}(e)||t}var R="top",A="bottom",F="right",B="left",j="auto",H=[R,A,F,B],U="start",W="end",q="clippingParents",Q="viewport",K="popper",V="reference",z=H.reduce((function(e,t){return e.concat([t+"-"+U,t+"-"+W])}),[]),G=[].concat(H,[j]).reduce((function(e,t){return e.concat([t,t+"-"+U,t+"-"+W])}),[]),X=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function J(e){var t=new Map,r=new Set,n=[];function a(e){r.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!r.has(e)){var n=t.get(e);n&&a(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){r.has(e.name)||a(e)})),n}function $(e){var t;return function(){return t||(t=new Promise((function(r){Promise.resolve().then((function(){t=void 0,r(e())}))}))),t}}var ee={placement:"bottom",modifiers:[],strategy:"absolute"};function te(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return!t.some((function(e){return!(e&&"function"===typeof e.getBoundingClientRect)}))}function re(e){void 0===e&&(e={});var t=e,r=t.defaultModifiers,n=void 0===r?[]:r,a=t.defaultOptions,o=void 0===a?ee:a;return function(e,t,r){void 0===r&&(r=o);var a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ee,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},i=[],s=!1,u={state:a,setOptions:function(r){var s="function"===typeof r?r(a.options):r;c(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:h(e)?N(e):e.contextElement?N(e.contextElement):[],popper:N(t)};var l=function(e){var t=J(e);return X.reduce((function(e,r){return e.concat(t.filter((function(e){return e.phase===r})))}),[])}(function(e){var t=e.reduce((function(e,t){var r=e[t.name];return e[t.name]=r?Object.assign({},r,t,{options:Object.assign({},r.options,t.options),data:Object.assign({},r.data,t.data)}):t,e}),{});return Object.keys(t).map((function(e){return t[e]}))}([].concat(n,a.options.modifiers)));return a.orderedModifiers=l.filter((function(e){return e.enabled})),a.orderedModifiers.forEach((function(e){var t=e.name,r=e.options,n=void 0===r?{}:r,o=e.effect;if("function"===typeof o){var s=o({state:a,name:t,instance:u,options:n}),c=function(){};i.push(s||c)}})),u.update()},forceUpdate:function(){if(!s){var e=a.elements,t=e.reference,r=e.popper;if(te(t,r)){a.rects={reference:E(t,I(r),"fixed"===a.options.strategy),popper:_(r)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(e){return a.modifiersData[e.name]=Object.assign({},e.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var o=a.orderedModifiers[n],i=o.fn,c=o.options,l=void 0===c?{}:c,d=o.name;"function"===typeof i&&(a=i({state:a,options:l,name:d,instance:u})||a)}else a.reset=!1,n=-1}}},update:$((function(){return new Promise((function(e){u.forceUpdate(),e(a)}))})),destroy:function(){c(),s=!0}};if(!te(e,t))return u;function c(){i.forEach((function(e){return e()})),i=[]}return u.setOptions(r).then((function(e){!s&&r.onFirstUpdate&&r.onFirstUpdate(e)})),u}}var ne={passive:!0};function ae(e){return e.split("-")[0]}function oe(e){return e.split("-")[1]}function ie(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function se(e){var t,r=e.reference,n=e.element,a=e.placement,o=a?ae(a):null,i=a?oe(a):null,s=r.x+r.width/2-n.width/2,u=r.y+r.height/2-n.height/2;switch(o){case R:t={x:s,y:r.y-n.height};break;case A:t={x:s,y:r.y+r.height};break;case F:t={x:r.x+r.width,y:u};break;case B:t={x:r.x-n.width,y:u};break;default:t={x:r.x,y:r.y}}var c=o?ie(o):null;if(null!=c){var l="y"===c?"height":"width";switch(i){case U:t[c]=t[c]-(r[l]/2-n[l]/2);break;case W:t[c]=t[c]+(r[l]/2-n[l]/2)}}return t}var ue={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ce(e){var t,r=e.popper,n=e.popperRect,a=e.placement,o=e.variation,i=e.offsets,s=e.position,u=e.gpuAcceleration,c=e.adaptive,l=e.roundOffsets,d=e.isFixed,p=i.x,h=void 0===p?0:p,v=i.y,m=void 0===v?0:v,g="function"===typeof l?l({x:h,y:m}):{x:h,y:m};h=g.x,m=g.y;var y=i.hasOwnProperty("x"),b=i.hasOwnProperty("y"),D=B,k=R,C=window;if(c){var S=I(r),T="clientHeight",Z="clientWidth";if(S===f(r)&&"static"!==x(S=M(r)).position&&"absolute"===s&&(T="scrollHeight",Z="scrollWidth"),a===R||(a===B||a===F)&&o===W)k=A,m-=(d&&S===C&&C.visualViewport?C.visualViewport.height:S[T])-n.height,m*=u?1:-1;if(a===B||(a===R||a===A)&&o===W)D=F,h-=(d&&S===C&&C.visualViewport?C.visualViewport.width:S[Z])-n.width,h*=u?1:-1}var E,_=Object.assign({position:s},c&&ue),P=!0===l?function(e,t){var r=e.x,n=e.y,a=t.devicePixelRatio||1;return{x:w(r*a)/a||0,y:w(n*a)/a||0}}({x:h,y:m},f(r)):{x:h,y:m};return h=P.x,m=P.y,u?Object.assign({},_,((E={})[k]=b?"0":"",E[D]=y?"0":"",E.transform=(C.devicePixelRatio||1)<=1?"translate("+h+"px, "+m+"px)":"translate3d("+h+"px, "+m+"px, 0)",E)):Object.assign({},_,((t={})[k]=b?m+"px":"",t[D]=y?h+"px":"",t.transform="",t))}var le={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,r=e.options,n=e.name,a=r.offset,o=void 0===a?[0,0]:a,i=G.reduce((function(e,r){return e[r]=function(e,t,r){var n=ae(e),a=[B,R].indexOf(n)>=0?-1:1,o="function"===typeof r?r(Object.assign({},t,{placement:e})):r,i=o[0],s=o[1];return i=i||0,s=(s||0)*a,[B,F].indexOf(n)>=0?{x:s,y:i}:{x:i,y:s}}(r,t.rects,o),e}),{}),s=i[t.placement],u=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[n]=i}},de={left:"right",right:"left",bottom:"top",top:"bottom"};function pe(e){return e.replace(/left|right|bottom|top/g,(function(e){return de[e]}))}var fe={start:"end",end:"start"};function he(e){return e.replace(/start|end/g,(function(e){return fe[e]}))}function ve(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&m(r)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function me(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ge(e,t,r){return t===Q?me(function(e,t){var r=f(e),n=M(e),a=r.visualViewport,o=n.clientWidth,i=n.clientHeight,s=0,u=0;if(a){o=a.width,i=a.height;var c=D();(c||!c&&"fixed"===t)&&(s=a.offsetLeft,u=a.offsetTop)}return{width:o,height:i,x:s+T(e),y:u}}(e,r)):h(t)?function(e,t){var r=k(e,!1,"fixed"===t);return r.top=r.top+e.clientTop,r.left=r.left+e.clientLeft,r.bottom=r.top+e.clientHeight,r.right=r.left+e.clientWidth,r.width=e.clientWidth,r.height=e.clientHeight,r.x=r.left,r.y=r.top,r}(t,r):me(function(e){var t,r=M(e),n=C(e),a=null==(t=e.ownerDocument)?void 0:t.body,o=g(r.scrollWidth,r.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),i=g(r.scrollHeight,r.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),s=-n.scrollLeft+T(e),u=-n.scrollTop;return"rtl"===x(a||r).direction&&(s+=g(r.clientWidth,a?a.clientWidth:0)-o),{width:o,height:i,x:s,y:u}}(M(e)))}function ye(e,t,r,n){var a="clippingParents"===t?function(e){var t=N(P(e)),r=["absolute","fixed"].indexOf(x(e).position)>=0&&v(e)?I(e):e;return h(r)?t.filter((function(e){return h(e)&&ve(e,r)&&"body"!==S(e)})):[]}(e):[].concat(t),o=[].concat(a,[r]),i=o[0],s=o.reduce((function(t,r){var a=ge(e,r,n);return t.top=g(a.top,t.top),t.right=y(a.right,t.right),t.bottom=y(a.bottom,t.bottom),t.left=g(a.left,t.left),t}),ge(e,i,n));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function we(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function be(e,t){return t.reduce((function(t,r){return t[r]=e,t}),{})}function De(e,t){void 0===t&&(t={});var r=t,n=r.placement,a=void 0===n?e.placement:n,o=r.strategy,i=void 0===o?e.strategy:o,s=r.boundary,u=void 0===s?q:s,c=r.rootBoundary,l=void 0===c?Q:c,d=r.elementContext,p=void 0===d?K:d,f=r.altBoundary,v=void 0!==f&&f,m=r.padding,g=void 0===m?0:m,y=we("number"!==typeof g?g:be(g,H)),w=p===K?V:K,b=e.rects.popper,D=e.elements[v?w:p],C=ye(h(D)?D:D.contextElement||M(e.elements.popper),u,l,i),S=k(e.elements.reference),T=se({reference:S,element:b,strategy:"absolute",placement:a}),x=me(Object.assign({},b,T)),Z=p===K?x:S,E={top:C.top-Z.top+y.top,bottom:Z.bottom-C.bottom+y.bottom,left:C.left-Z.left+y.left,right:Z.right-C.right+y.right},_=e.modifiersData.offset;if(p===K&&_){var P=_[a];Object.keys(E).forEach((function(e){var t=[F,A].indexOf(e)>=0?1:-1,r=[R,A].indexOf(e)>=0?"y":"x";E[e]+=P[r]*t}))}return E}function ke(e,t,r){return g(e,y(t,r))}var Ce={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name,a=r.mainAxis,o=void 0===a||a,i=r.altAxis,s=void 0!==i&&i,u=r.boundary,c=r.rootBoundary,l=r.altBoundary,d=r.padding,p=r.tether,f=void 0===p||p,h=r.tetherOffset,v=void 0===h?0:h,m=De(t,{boundary:u,rootBoundary:c,padding:d,altBoundary:l}),w=ae(t.placement),b=oe(t.placement),D=!b,k=ie(w),C="x"===k?"y":"x",S=t.modifiersData.popperOffsets,M=t.rects.reference,T=t.rects.popper,x="function"===typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,Z="number"===typeof x?{mainAxis:x,altAxis:x}:Object.assign({mainAxis:0,altAxis:0},x),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,P={x:0,y:0};if(S){if(o){var O,N="y"===k?R:B,Y="y"===k?A:F,L="y"===k?"height":"width",j=S[k],H=j+m[N],W=j-m[Y],q=f?-T[L]/2:0,Q=b===U?M[L]:T[L],K=b===U?-T[L]:-M[L],V=t.elements.arrow,z=f&&V?_(V):{width:0,height:0},G=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},X=G[N],J=G[Y],$=ke(0,M[L],z[L]),ee=D?M[L]/2-q-$-X-Z.mainAxis:Q-$-X-Z.mainAxis,te=D?-M[L]/2+q+$+J+Z.mainAxis:K+$+J+Z.mainAxis,re=t.elements.arrow&&I(t.elements.arrow),ne=re?"y"===k?re.clientTop||0:re.clientLeft||0:0,se=null!=(O=null==E?void 0:E[k])?O:0,ue=j+te-se,ce=ke(f?y(H,j+ee-se-ne):H,j,f?g(W,ue):W);S[k]=ce,P[k]=ce-j}if(s){var le,de="x"===k?R:B,pe="x"===k?A:F,fe=S[C],he="y"===C?"height":"width",ve=fe+m[de],me=fe-m[pe],ge=-1!==[R,B].indexOf(w),ye=null!=(le=null==E?void 0:E[C])?le:0,we=ge?ve:fe-M[he]-T[he]-ye+Z.altAxis,be=ge?fe+M[he]+T[he]-ye-Z.altAxis:me,Ce=f&&ge?function(e,t,r){var n=ke(e,t,r);return n>r?r:n}(we,fe,be):ke(f?we:ve,fe,f?be:me);S[C]=Ce,P[C]=Ce-fe}t.modifiersData[n]=P}},requiresIfExists:["offset"]};var Se={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,r=e.state,n=e.name,a=e.options,o=r.elements.arrow,i=r.modifiersData.popperOffsets,s=ae(r.placement),u=ie(s),c=[B,F].indexOf(s)>=0?"height":"width";if(o&&i){var l=function(e,t){return we("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:be(e,H))}(a.padding,r),d=_(o),p="y"===u?R:B,f="y"===u?A:F,h=r.rects.reference[c]+r.rects.reference[u]-i[u]-r.rects.popper[c],v=i[u]-r.rects.reference[u],m=I(o),g=m?"y"===u?m.clientHeight||0:m.clientWidth||0:0,y=h/2-v/2,w=l[p],b=g-d[c]-l[f],D=g/2-d[c]/2+y,k=ke(w,D,b),C=u;r.modifiersData[n]=((t={})[C]=k,t.centerOffset=k-D,t)}},effect:function(e){var t=e.state,r=e.options.element,n=void 0===r?"[data-popper-arrow]":r;null!=n&&("string"!==typeof n||(n=t.elements.popper.querySelector(n)))&&ve(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Me(e,t,r){return void 0===r&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function Te(e){return[R,F,A,B].some((function(t){return e[t]>=0}))}var xe=re({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,r=e.instance,n=e.options,a=n.scroll,o=void 0===a||a,i=n.resize,s=void 0===i||i,u=f(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",r.update,ne)})),s&&u.addEventListener("resize",r.update,ne),function(){o&&c.forEach((function(e){e.removeEventListener("scroll",r.update,ne)})),s&&u.removeEventListener("resize",r.update,ne)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,r=e.name;t.modifiersData[r]=se({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,r=e.options,n=r.gpuAcceleration,a=void 0===n||n,o=r.adaptive,i=void 0===o||o,s=r.roundOffsets,u=void 0===s||s,c={placement:ae(t.placement),variation:oe(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ce(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:u})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ce(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var r=t.styles[e]||{},n=t.attributes[e]||{},a=t.elements[e];v(a)&&S(a)&&(Object.assign(a.style,r),Object.keys(n).forEach((function(e){var t=n[e];!1===t?a.removeAttribute(e):a.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,r={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,r.popper),t.styles=r,t.elements.arrow&&Object.assign(t.elements.arrow.style,r.arrow),function(){Object.keys(t.elements).forEach((function(e){var n=t.elements[e],a=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:r[e]).reduce((function(e,t){return e[t]="",e}),{});v(n)&&S(n)&&(Object.assign(n.style,o),Object.keys(a).forEach((function(e){n.removeAttribute(e)})))}))}},requires:["computeStyles"]},le,{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,r=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var a=r.mainAxis,o=void 0===a||a,i=r.altAxis,s=void 0===i||i,u=r.fallbackPlacements,c=r.padding,l=r.boundary,d=r.rootBoundary,p=r.altBoundary,f=r.flipVariations,h=void 0===f||f,v=r.allowedAutoPlacements,m=t.options.placement,g=ae(m),y=u||(g===m||!h?[pe(m)]:function(e){if(ae(e)===j)return[];var t=pe(e);return[he(e),t,he(t)]}(m)),w=[m].concat(y).reduce((function(e,r){return e.concat(ae(r)===j?function(e,t){void 0===t&&(t={});var r=t,n=r.placement,a=r.boundary,o=r.rootBoundary,i=r.padding,s=r.flipVariations,u=r.allowedAutoPlacements,c=void 0===u?G:u,l=oe(n),d=l?s?z:z.filter((function(e){return oe(e)===l})):H,p=d.filter((function(e){return c.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,r){return t[r]=De(e,{placement:r,boundary:a,rootBoundary:o,padding:i})[ae(r)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:r,boundary:l,rootBoundary:d,padding:c,flipVariations:h,allowedAutoPlacements:v}):r)}),[]),b=t.rects.reference,D=t.rects.popper,k=new Map,C=!0,S=w[0],M=0;M<w.length;M++){var T=w[M],x=ae(T),Z=oe(T)===U,E=[R,A].indexOf(x)>=0,_=E?"width":"height",P=De(t,{placement:T,boundary:l,rootBoundary:d,altBoundary:p,padding:c}),O=E?Z?F:B:Z?A:R;b[_]>D[_]&&(O=pe(O));var N=pe(O),Y=[];if(o&&Y.push(P[x]<=0),s&&Y.push(P[O]<=0,P[N]<=0),Y.every((function(e){return e}))){S=T,C=!1;break}k.set(T,Y)}if(C)for(var L=function(e){var t=w.find((function(t){var r=k.get(t);if(r)return r.slice(0,e).every((function(e){return e}))}));if(t)return S=t,"break"},I=h?3:1;I>0;I--){if("break"===L(I))break}t.placement!==S&&(t.modifiersData[n]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},Ce,Se,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,r=e.name,n=t.rects.reference,a=t.rects.popper,o=t.modifiersData.preventOverflow,i=De(t,{elementContext:"reference"}),s=De(t,{altBoundary:!0}),u=Me(i,n),c=Me(s,a,o),l=Te(u),d=Te(c);t.modifiersData[r]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:l,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":d})}}]}),Ze=r(69590),Ee=r.n(Ze),_e=[],Pe=function(e,t,r){void 0===r&&(r={});var a=n.useRef(null),o={onFirstUpdate:r.onFirstUpdate,placement:r.placement||"bottom",strategy:r.strategy||"absolute",modifiers:r.modifiers||_e},i=n.useState({styles:{popper:{position:o.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=i[0],u=i[1],c=n.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var t=e.state,r=Object.keys(t.elements);p.flushSync((function(){u({styles:l(r.map((function(e){return[e,t.styles[e]||{}]}))),attributes:l(r.map((function(e){return[e,t.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),f=n.useMemo((function(){var e={onFirstUpdate:o.onFirstUpdate,placement:o.placement,strategy:o.strategy,modifiers:[].concat(o.modifiers,[c,{name:"applyStyles",enabled:!1}])};return Ee()(a.current,e)?a.current||e:(a.current=e,e)}),[o.onFirstUpdate,o.placement,o.strategy,o.modifiers,c]),h=n.useRef();return d((function(){h.current&&h.current.setOptions(f)}),[f]),d((function(){if(null!=e&&null!=t){var n=(r.createPopper||xe)(e,t,f);return h.current=n,function(){n.destroy(),h.current=null}}}),[e,t,r.createPopper]),{state:h.current?h.current.state:null,styles:s.styles,attributes:s.attributes,update:h.current?h.current.update:null,forceUpdate:h.current?h.current.forceUpdate:null}},Oe=function(){},Ne=function(){return Promise.resolve(null)},Ye=[];function Le(e){var t=e.placement,r=void 0===t?"bottom":t,o=e.strategy,i=void 0===o?"absolute":o,u=e.modifiers,l=void 0===u?Ye:u,d=e.referenceElement,p=e.onFirstUpdate,f=e.innerRef,h=e.children,v=n.useContext(a),m=n.useState(null),g=m[0],y=m[1],w=n.useState(null),b=w[0],D=w[1];n.useEffect((function(){c(f,g)}),[f,g]);var k=n.useMemo((function(){return{placement:r,strategy:i,onFirstUpdate:p,modifiers:[].concat(l,[{name:"arrow",enabled:null!=b,options:{element:b}}])}}),[r,i,p,l,b]),C=Pe(d||v,g,k),S=C.state,M=C.styles,T=C.forceUpdate,x=C.update,Z=n.useMemo((function(){return{ref:y,style:M.popper,placement:S?S.placement:r,hasPopperEscaped:S&&S.modifiersData.hide?S.modifiersData.hide.hasPopperEscaped:null,isReferenceHidden:S&&S.modifiersData.hide?S.modifiersData.hide.isReferenceHidden:null,arrowProps:{style:M.arrow,ref:D},forceUpdate:T||Oe,update:x||Ne}}),[y,D,r,S,M,x,T]);return s(h)(Z)}var Ie=r(42473),Re=r.n(Ie);function Ae(e){var t=e.children,r=e.innerRef,a=n.useContext(o),i=n.useCallback((function(e){c(r,e),u(a,e)}),[r,a]);return n.useEffect((function(){return function(){return c(r,null)}}),[]),n.useEffect((function(){Re()(Boolean(a),"`Reference` should not be used outside of a `Manager` component.")}),[a]),s(t)({ref:i})}},88632:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a=s(r(45697)),o=r(67294),i=s(o);function s(e){return e&&e.__esModule?e:{default:e}}var u={bgColor:a.default.oneOfType([a.default.object,a.default.string]).isRequired,bgD:a.default.string.isRequired,fgColor:a.default.oneOfType([a.default.object,a.default.string]).isRequired,fgD:a.default.string.isRequired,size:a.default.number.isRequired,title:a.default.string,viewBoxSize:a.default.number.isRequired,xmlns:a.default.string},c={title:void 0,xmlns:"http://www.w3.org/2000/svg"},l=(0,o.forwardRef)((function(e,t){var r=e.bgColor,a=e.bgD,o=e.fgD,s=e.fgColor,u=e.size,c=e.title,l=e.viewBoxSize,d=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["bgColor","bgD","fgD","fgColor","size","title","viewBoxSize"]);return i.default.createElement("svg",n({},d,{height:u,ref:t,viewBox:"0 0 "+l+" "+l,width:u}),c?i.default.createElement("title",null,c):null,i.default.createElement("path",{d:a,fill:r}),i.default.createElement("path",{d:o,fill:s}))}));l.displayName="QRCodeSvg",l.propTypes=u,l.defaultProps=c,t.default=l},1653:function(e,t,r){"use strict";var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a=l(r(14450)),o=l(r(49381)),i=l(r(45697)),s=r(67294),u=l(s),c=l(r(88632));function l(e){return e&&e.__esModule?e:{default:e}}var d={bgColor:i.default.oneOfType([i.default.object,i.default.string]),fgColor:i.default.oneOfType([i.default.object,i.default.string]),level:i.default.string,size:i.default.number,value:i.default.string.isRequired},p=(0,s.forwardRef)((function(e,t){var r=e.bgColor,i=e.fgColor,s=e.level,l=e.size,d=e.value,p=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}(e,["bgColor","fgColor","level","size","value"]),f=new a.default(-1,o.default[s]);f.addData(d),f.make();var h=f.modules;return u.default.createElement(c.default,n({},p,{bgColor:r,bgD:h.map((function(e,t){return e.map((function(e,r){return e?"":"M "+r+" "+t+" l 1 0 0 1 -1 0 Z"})).join(" ")})).join(" "),fgColor:i,fgD:h.map((function(e,t){return e.map((function(e,r){return e?"M "+r+" "+t+" l 1 0 0 1 -1 0 Z":""})).join(" ")})).join(" "),ref:t,size:l,viewBoxSize:h.length}))}));p.displayName="QRCode",p.propTypes=d,p.defaultProps={bgColor:"#FFFFFF",fgColor:"#000000",level:"L",size:256},t.Z=p},62554:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(67294),a=r(34513);function o(e,t,r){void 0===t&&(t=0),void 0===r&&(r=[]);var o=(0,a.Z)(e,t),i=o[0],s=o[1],u=o[2];return(0,n.useEffect)(u,r),[i,s]}},18127:function(e,t,r){"use strict";var n=r(67294);t.Z=function(e){(0,n.useEffect)(e,[])}},43337:function(e,t,r){"use strict";var n=r(67294);t.Z=function(e,t){var r=(0,n.useRef)((function(){}));(0,n.useEffect)((function(){r.current=e})),(0,n.useEffect)((function(){if(null!==t){var e=setInterval((function(){return r.current()}),t||0);return function(){return clearInterval(e)}}}),[t])}},34513:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(67294);function a(e,t){void 0===t&&(t=0);var r=(0,n.useRef)(!1),a=(0,n.useRef)(),o=(0,n.useRef)(e),i=(0,n.useCallback)((function(){return r.current}),[]),s=(0,n.useCallback)((function(){r.current=!1,a.current&&clearTimeout(a.current),a.current=setTimeout((function(){r.current=!0,o.current()}),t)}),[t]),u=(0,n.useCallback)((function(){r.current=null,a.current&&clearTimeout(a.current)}),[]);return(0,n.useEffect)((function(){o.current=e}),[e]),(0,n.useEffect)((function(){return s(),u}),[t]),[i,u,s]}},89211:function(e,t,r){"use strict";var n=r(67294),a=function(e,t){return"boolean"===typeof t?t:!e};t.Z=function(e){return(0,n.useReducer)(a,e)}},77823:function(e,t,r){"use strict";var n=r(67294),a=r(18127);t.Z=function(e){var t=(0,n.useRef)(e);t.current=e,(0,a.Z)((function(){return function(){return t.current()}}))}},42473:function(e){"use strict";var t=function(){};e.exports=t}}]); \ No newline at end of file
diff --git a/web/gui/v2/27.922062ec65b1e01389ee.chunk.js.LICENSE.txt b/web/gui/v2/27.23f7ef0669e969b74f95.chunk.js.LICENSE.txt
index 827f2732..827f2732 100644
--- a/web/gui/v2/27.922062ec65b1e01389ee.chunk.js.LICENSE.txt
+++ b/web/gui/v2/27.23f7ef0669e969b74f95.chunk.js.LICENSE.txt
diff --git a/web/gui/v2/277.93f8d8d191859a1c59dc.chunk.js b/web/gui/v2/277.93f8d8d191859a1c59dc.chunk.js
deleted file mode 100644
index 94d8f4ba..00000000
--- a/web/gui/v2/277.93f8d8d191859a1c59dc.chunk.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3a12f50d-c4bd-41b6-9e29-fc48dc4c2024",e._sentryDebugIdIdentifier="sentry-dbid-3a12f50d-c4bd-41b6-9e29-fc48dc4c2024")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[277],{46742:function(e,t,n){n.d(t,{lG:function(){return w},om:function(){return h}});var r=n(29439),o=n(93433),a=n(87462),i=n(45987),c=n(4942),l=(n(47042),n(92222),n(41539),n(39714),n(85827),n(25387),n(2490),n(72608),n(26699),n(32023),n(21249),n(57640),n(9924),n(57327),n(88449),n(59849),n(64211),n(41874),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),u=n(60677),s=n(95248),d=n(15557),f=n(39434),m=["item","onItemClick","itemProps"],p=["value","disabled","onClick","label","selected","indeterminate","textColor","iconName","count","level"],g=["baseKey","extraKey","param","Item","testIdPrefix","collection","getValue","getLabel","itemsProps","itemProps","capitalized","multi"];function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y=function(e){return e?e[0].toUpperCase()+e.slice(1):"Unknown"},h=(0,u.default)(d.Flex).attrs((function(e){return b({as:"li",role:"option",padding:[1,2],gap:1,justifyContent:"between",width:"100%"},e)})).withConfig({displayName:"checkboxes__ItemContainer",componentId:"sc-1vef46u-0"})(["cursor:",";opacity:",";align-items:",";"," ",""],(function(e){return e.disabled?"default":"pointer"}),(function(e){var t=e.disabled;return e.stale||t?.7:1}),(function(e){return e.alignItems||"center"}),(function(e){var t=e.multi,n=e.selected,r=e.theme;return!t&&n&&"\n background-color: ".concat(function(e){var t=e.theme;return("Dark"===t.name?(0,d.getRgbColor)(["green","netdata"],.3):(0,d.getRgbColor)(["green","frostee"]))({theme:t})}({theme:r}),";\n ")}),(function(e){var t=e.multi,n=e.selected,r=e.theme;return!t&&!n&&"\n &:hover {\n background-color: ".concat((0,d.getColor)("borderSecondary")({theme:r}),";\n }\n ")})),w=(0,u.default)(d.Checkbox).withConfig({displayName:"checkboxes__FullWidthCheckbox",componentId:"sc-1vef46u-1"})(["width:100%;"]),O=function(e){var t=e.baseKey,n=e.extraKey,c=e.param,u=e.Item,f=e.testIdPrefix,m=e.collection,p=e.getValue,v=e.getLabel,y=e.itemsProps,h=e.itemProps,w=e.capitalized,O=void 0===w||w,x=e.multi,k=void 0===x||x,C=(0,i.Z)(e,g),I=(0,s.I0)(c,{defaultValue:[],key:t,extraKey:n}),P=(0,r.Z)(I,2),j=P[0],E=void 0===j?[]:j,L=P[1];(0,l.useEffect)((function(){if(m.length&&E.length){var e=E.filter((function(e){return m.some((function(t){return p(t)===e}))}));e.length!==E.length&&L(e)}}),[m.length,L]);var Z=(0,l.useCallback)((function(e){var t=e.value,n=e.checked;L(k?function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?t:[]:n?[].concat((0,o.Z)(e),[t]):e.filter((function(e){return e!==t}))}:function(){return n?[t]:[]})}),[L]),S=(0,l.useMemo)((function(){return function(e){var t=e.collection,n=e.selected,r=e.getValue,a=e.getLabel,i=e.itemsProps,c=e.multi;if(!t.length)return[];var l=c&&t.length<=n.length,u=c&&!l&&!!n.length;return t.reduce((function(e,t){var c=n.includes(r(t));return[].concat((0,o.Z)(e),[b(b(b({},i.row),t),{},{value:r(t),label:a(t),selected:c})])}),c?[b(b({},i.head),{},{label:"Select all",value:t.map(r),selected:l,indeterminate:u})]:[])}({collection:m,selected:E,getValue:p,getLabel:v,itemsProps:y,multi:k})}),[E,L,m]);return l.createElement(d.MenuDropdown,(0,a.Z)({hideShadow:!0,height:{max:"300px"},width:{max:"600px"},background:"mainBackground",overflow:"auto","data-testid":"".concat(f,'-filter-selections"'),searchMargin:[0,0,2],items:S,Item:u,onItemClick:Z,value:E,"data-value":E.join(",")||"all-selected",hasSearch:m.length>5,itemProps:b(b({},h),{},{testIdPrefix:f,capitalized:O,multi:k})},C))},x=function(e){return e};O.defaultProps={itemProps:{padding:[1,.5],maxLength:30,multi:!0},itemsProps:{head:{textColor:"textLite"},row:{textColor:"text"}},Item:function(e){var t=e.item,n=e.onItemClick,r=e.itemProps,o=(0,i.Z)(e,m),c=t.value,u=t.disabled,s=t.onClick,g=t.label,v=t.selected,b=t.indeterminate,O=t.textColor,x=t.iconName,k=t.count,C=t.level,I=void 0===C?0:C,P=(0,i.Z)(t,p),j=r.capitalized,E=r.multi,L=u||!E&&v,Z=function(e){u||(s&&s(e),n({value:c,label:g,checked:!v,item:t}))};return l.createElement(h,(0,a.Z)({"aria-selected":v,selected:v,disabled:L,stale:0===k||"0"===k},P,o,r,{"data-testid":"".concat(r.testIdPrefix,"-filters-item")}),l.createElement(d.Flex,{gap:2,alignItems:"center",padding:[0,0,0,4*I],width:"100%"},E?l.createElement(w,{"data-testid":"".concat(r.testIdPrefix,"-filters-checkbox-").concat(g),checked:v,disabled:L,indeterminate:b,onChange:Z,label:l.createElement(d.Flex,{gap:1,alignItems:"center",width:"100%"},x&&l.createElement(d.Icon,{name:x,size:"small",color:"textLite"}),l.createElement(f.default,{Component:d.TextSmall,title:g,text:"string"===typeof g&&j?y(g):g.toString(),maxLength:r.maxLength||80,color:O}))}):l.createElement(d.Flex,{gap:1,padding:[0,1],alignItems:"center",onClick:Z,"data-testid":"".concat(r.testIdPrefix,"-filters-item-").concat(g)},l.createElement(f.default,{Component:d.TextSmall,title:g,text:"string"===typeof g&&j?y(g):g.toString(),maxLength:r.maxLength||80,color:O}))),!isNaN(k)&&l.createElement(d.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(r.testIdPrefix,"-filters-").concat(g,"-count")},k.toString()))},getValue:x,getLabel:x},t.ZP=O},97193:function(e,t,n){n.d(t,{c:function(){return E}});var r=n(29439),o=n(4942),a=n(93433),i=n(87462),c=n(45987),l=(n(92222),n(41539),n(39714),n(64211),n(2490),n(41874),n(26699),n(32023),n(85827),n(25387),n(72608),n(57327),n(88449),n(59849),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),u=n(91966),s=n.n(u),d=n(95062),f=n.n(d),m=n(79655),p=n(97945),g=n(95248),v=n(15557),b=n(39434),y=n(91008),h=n(72233),w=n(39583),O=n(46742),x=["value","disabled","onClick","label","nodeId","selected","status","indeterminate","textColor","iconName","hasAlerts","hasML","hasFn","showAlerts","showMl","showFn","requireML","requireFn","capabilities","count","multi","checkIsDisabled"],k=["item","onItemClick","itemProps","close"],C=["baseKey","extraKey","statusProps","multi","useFilteredIds","nodeCounts","checkIsDisabled"];function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var j={Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasML:!0,hasAlerts:!0,hasFn:!0},node:{textColor:"text",showAlerts:!0,showMl:!0,showFn:!0}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale",hasML:!0},node:{textColor:"text",showMl:!0}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline"},node:{textColor:"textLite"}}},E=function(e){var t=e.item,n=t.value,r=t.disabled,o=t.onClick,a=t.label,u=t.nodeId,s=t.selected,d=t.status,g=t.indeterminate,C=t.textColor,I=t.iconName,P=t.hasAlerts,j=t.hasML,E=t.hasFn,L=t.showAlerts,Z=t.showMl,S=t.showFn,D=t.requireML,_=t.requireFn,N=t.capabilities,A=t.count,U=t.multi,F=void 0===U||U,M=t.checkIsDisabled,T=void 0===M?f():M,R=(0,c.Z)(t,x),B=e.onItemClick,G=e.itemProps,V=e.close,K=(0,c.Z)(e,k),z=(0,p.m3)(u),J=(0,l.useMemo)((function(){var e;return!S||!N||(null===(e=N.funcs)||void 0===e?void 0:e.enabled)}),[S]),H=(0,l.useMemo)((function(){var e;return!S||!N||(null===(e=N.ml)||void 0===e?void 0:e.enabled)}),[S]),q=r||D&&!H||_&&!J||!F&&s||T(u),$=function(e){q||(o&&o(e),B({value:n,checked:!s,status:d}))},W=function(e){e.stopPropagation(),null===V||void 0===V||V()};return l.createElement(O.om,(0,i.Z)({"aria-selected":s,selected:s,disabled:q,stale:0===A||"0"===A},R,K,G,{"data-testid":"filterNodes-item-".concat(a),multi:F}),l.createElement(v.Flex,{gap:2,alignItems:"center",flex:!0},F?l.createElement(l.Fragment,null,l.createElement(O.lG,{"data-testid":"filterNodes-checkbox-".concat(a),checked:s,disabled:q,indeterminate:g,onChange:$,label:l.createElement(v.Flex,{gap:1,alignItems:"center"},I&&l.createElement(v.Icon,{name:I,size:"small",color:"textLite"}),l.createElement(b.default,{Component:v.TextSmall,title:a,text:a,maxLength:(null===G||void 0===G?void 0:G.maxLength)||80,color:C,truncate:!0}),"Offline"!==d&&!Array.isArray(n)&&l.createElement(y.Z,{as:m.rU,to:z,state:{nodeId:u},"data-testid":"filterNodes-item-gta",color:"textLite",hoverColor:"text",onClick:W},l.createElement(v.Icon,{name:"nav_arrow_goto",height:"10px",width:"10px"})))})):l.createElement(v.Flex,{gap:1,padding:[0,1],alignItems:"center",onClick:$,"data-testid":"filterNodes-item-".concat(a),flex:!0},l.createElement(b.default,{Component:v.TextSmall,title:a,text:a,maxLength:(null===G||void 0===G?void 0:G.maxLength)||80,color:C}),"Offline"!==d&&!Array.isArray(n)&&l.createElement(y.Z,{as:m.rU,to:z,state:{nodeId:u},"data-testid":"filterNodes-item-gta",color:"textLite",hoverColor:"text",onClick:W},l.createElement(v.Icon,{name:"nav_arrow_goto",height:"10px",width:"10px"})))),l.createElement(v.Flex,{gap:1},L&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:17},l.createElement(w.Z,{id:n,isLive:!0,name:a})),Z&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(h.Z,{badge:"ml","data-testid":"nodes-indicator-machine-learning",enabled:H,name:a})),S&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(h.Z,{badge:"fn","data-testid":"nodes-indicator-fn",enabled:J,name:a})),P&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:17},l.createElement(v.Icon,{name:"alarm",size:"small",color:"textLite"}),l.createElement(v.TextSmall,{strong:!0,color:"textLite"},"Alerts")),j&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(v.Icon,{name:"anomaliesLens",size:"small",color:"textLite"}),l.createElement(v.TextSmall,{strong:!0,color:"textLite"},"ML")),E&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(v.Icon,{name:"functions",size:"small",color:"textLite"}),l.createElement(v.TextSmall,{strong:!0,color:"textLite"},"Fn")),!isNaN(A)&&l.createElement(v.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(G.testIdPrefix,"-filters-").concat(a,"-count")},A.toString())))},L=function(e){var t=e.ids,n=e.status,r=e.selectedIds,o=e.nodesById,i=e.statusProps,c=e.multi,l=void 0===c||c,u=e.nodeCounts,s=e.checkIsDisabled;if(!t.length)return[];var d=l&&!t.some((function(e){return!r.includes(e)})),f=l&&r.length&&!d&&t.some((function(e){return r.includes(e)}));return t.reduce((function(e,t){var c=o[t],d=c.name,f=c.capabilities,m=r.includes(t);return[].concat((0,a.Z)(e),[P(P({value:t,label:d,nodeId:t,selected:m,status:n,capabilities:f},i[n].node),{},{multi:l,checkIsDisabled:s,count:u?u[t]||0:NaN})])}),[P(P({value:t,selected:d,indeterminate:f,disabled:!l,status:n},i[n].head),{},{multi:l})])},Z=function(e){return e};t.Z=function(e){var t=e.baseKey,n=e.extraKey,o=e.statusProps,u=void 0===o?j:o,d=e.multi,f=void 0===d||d,m=e.useFilteredIds,b=void 0===m?Z:m,y=e.nodeCounts,h=e.checkIsDisabled,w=(0,c.Z)(e,C),O=b((0,g.H7)()),x=(0,g.wT)({defaultValue:[],key:t,extraKey:n}),k=(0,r.Z)(x,2),I=k[0],P=k[1];(0,l.useEffect)((function(){if(O.length&&I.length){var e=I.filter((function(e){return O.includes(e)}));e.length!==I.length&&P(e)}}),[O]);var S=(0,p.HZ)(O),D=(0,p.e5)(O),_=(0,p.mf)(O),N=(0,l.useCallback)((function(e){var t=e.value,n=e.checked;P(f?function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?(0,a.Z)(new Set([].concat((0,a.Z)(e),(0,a.Z)(t)))):s()(e,t):n?[].concat((0,a.Z)(e),[t]):e.filter((function(e){return e!==t}))}:function(){return n?[t]:[]})}),[P]),A=(0,p.d$)(),U=(0,l.useMemo)((function(){var e=L({ids:S,status:"Live",selectedIds:I,nodesById:A,statusProps:u,multi:f,nodeCounts:y,checkIsDisabled:h}),t=L({ids:D,status:"Stale",selectedIds:I,nodesById:A,statusProps:u,multi:f,nodeCounts:y,checkIsDisabled:h}),n=L({ids:_,status:"Offline",selectedIds:I,nodesById:A,statusProps:u,multi:f,nodeCounts:y,checkIsDisabled:h});return e.concat(t,n)}),[I,S.length,D.length,_.length,y,h]);return l.createElement(v.MenuDropdown,(0,i.Z)({hideShadow:!0,height:{max:"60vh"},width:{max:"600px"},overflow:"auto","data-testid":"filterNodes-drop",searchMargin:[2],items:U,Item:E,onItemClick:N,value:I,"data-value":I.join(",")||"all-nodes",hasSearch:!0},w))}},48450:function(e,t,n){n.d(t,{Kp:function(){return d},MN:function(){return w},ND:function(){return m},hN:function(){return b},jc:function(){return h},sr:function(){return g},uk:function(){return f}});var r=n(4942),o=(n(21249),n(57640),n(9924),n(41539),n(88674),n(92087),n(74916),n(15306),n(92222),n(82481),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),a=n(66152),i=n(78710);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=function(e){return{id:e.roomID,alertCounter:e.alarmCounter,unreachableCount:e.unreachableCount,state:e.state}},s=function(e){return{results:(e.results||[]).map(u)}},d=function(e){return(0,i.Ly)(e)?Promise.resolve({data:{results:[]}}):o.Z.get("/api/v2/spaces/".concat(e,"/alarms"),{transform:s})},f=function(e){return(0,i.Ly)(e)?Promise.resolve({data:null}):o.Z.get("/api/v2/spaces/".concat(e,"/alarms/metas"))},m={contexts:null,names:null,roles:null},p=function(e){var t=e.alerts,n=void 0===t?[]:t,r=e.nodes,o=void 0===r?[]:r,i=e.alert_instances,c=void 0===i?[]:i;return(0,a.k5)(c.map((function(e){var t=e.ni,r=e.ati,a=e.tr_i,i=e.tr_v,c=e.tr_t,l=e.cfg,u=e.info,s=e.fami,d=e.ch,f=e.ch_n,m=void 0===f?d:f,p=e.ctx,g=e.v,v=e.t,b=e.flags,y=e.st,h=e.src,w=e.units,O=e.to,x=e.cl,k=e.cm,C=e.tp,I=o[t],P=n[r],j=P.nm,E=P.cr,L=P.wr,Z=P.cl,S=P.er,D=P.in,_=P.nd,N=P.cfg;return{mg:I.mg,nd:I.nd,nodeId:I.nd||I.mg,id:a,context:p,value:g,status:y.toLowerCase(),name:j,displayName:(j||"unknown_alert").replace(/_/g," "),alert:alert,criticalCount:E,warningCount:L,clearCount:Z,errorCount:S,instanceCount:D,nodeCount:_,configCount:N,lastStatusChangeValue:i,lastStatusChange:c,configHash:l,info:u,family:s,instance:d,instanceName:m,lastUpdated:v,flags:b,units:w,source:h,recipient:O,class:x,component:k,type:C}})))},g=function(e,t){return(0,i.Ly)(e)?o.Z.get("/api/v2/alerts?options=summary,instances,values,minify&status=raised",{baseURL:window.envSettings.agentApiUrl,transform:p}):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[],contexts:[]},selectors:{status:["raised"]},options:["summary","values","instances"]},{transform:p})},v=function(e){var t=e.transitions,n=void 0===t?[]:t;if(!n[0])return{};var r=n[0],o=r.config_hash_id,a=r.context,i=r.machine_guid,c=r.info,l=r.transition_id,u=r.node_id,s=r.alert,d=r.new,f=d.status,m=d.value,p=r.when,g=r.old,v=g.status,b=g.value,y=g.duration,h=r.instance,w=r.instance_n,O=void 0===w?h:w,x=r.units;return{configHash:o,context:a,name:s,id:l,mg:i,nodeId:u||i,nd:u,alert:s,info:c,displayName:(s||"unknown_alert").replace(/_/g," "),status:f.toLowerCase(),lastStatusChange:p,lastStatusChangeValue:m,prevStatus:v.toLowerCase(),prevValue:b,prevDuration:y,instance:h,instanceName:O,units:x}},b=function(e,t,n){return(0,i.Ly)(e)?o.Z.get("/api/v2/alert_transitions?options=minify&transition=".concat(n),{baseURL:window.envSettings.agentApiUrl,transform:v}).then((function(n){var r=n.data;return x(e,t,r.configHash,r)})):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alert_transitions"),{transition:n},{transform:v}).then((function(n){var r=n.data;return x(e,t,r.configHash,r)}))},y=function(e){var t=e.alerts;return(void 0===t?[]:t).map((function(e){var t=e.nm,n=e.cr,r=e.wr,o=e.cl,a=e.er,i=e.in,c=e.nd,l=e.cfg;return{name:t,displayName:(t||"unknown_alert").replace(/_/g," "),criticalCount:n,warningCount:r,clearCount:o,errorCount:a,instanceCount:i,nodeCount:c,configCount:l}}))},h=function(e,t){return(0,i.Ly)(e)?o.Z.get("/api/v2/alerts?options=minify",{baseURL:window.envSettings.agentApiUrl,transform:y}).then((function(e){return e.data})):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[]}},{transform:y}).then((function(e){return e.data}))},w=function(e,t,n){return(0,i.Ly)(e)?o.Z.get("/api/v2/alerts?options=summary,values,instances,minify&alert=".concat(n),{baseURL:window.envSettings.agentApiUrl,transform:p}).then((function(e){return e.data})):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[]},selectors:{alert:[n]},options:["summary","instances","values"]},{transform:p}).then((function(e){return e.data}))},O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.class,r=t.component,o=t.type,a=t.info,i=t.value,c=i.calc,u=void 0===c?"":c,s=i.update_every,d=i.units,f=i.db,m=t.status,p=t.notification||{},g=p.type,v=p.exec,b=p.to,y=p.delay,h=p.repeat||{},w=h.warn,O=h.crit,x=m||{},k=x.warn,C=x.crit,I=x.green,P=x.red,j=f||{},E=j.dimensions,L=j.method,Z=j.after,S=j.before,D=j.options;return l(l({info:a},e),{},{configInfo:a,class:n,component:r,type:o,calculation:u,updateEvery:s,units:d,warning:k,critical:C,lookupDimensions:E,lookupMethod:L,lookupAfter:Z,lookupBefore:S,lookupOptions:D,notificationType:g,exec:v,recipient:b,delay:y,warnRepeatEvery:w,critRepeatEvery:O,green:I,red:P})}},x=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,i.Ly)(e)?o.Z.get("/api/v2/alert_config?options=minify&config=".concat(n),{baseURL:window.envSettings.agentApiUrl,transform:O(r)}):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alert_config"),{config:n},{transform:O(r)})}},84074:function(e,t,n){n.d(t,{E3:function(){return i},Gs:function(){return d},HI:function(){return s},IG:function(){return u},bc:function(){return c},p$:function(){return l}});var r=n(4480),o=n(80239),a=n(48450),i={id:null,loaded:!1,nodeId:null,instance:null,instanceName:null,name:"",calculation:"",lookupAfter:0,lookupBefore:0,status:"unknown",date:"",fullyLoaded:!1,fullyLoading:!1,info:"",configInfo:"",warning:"",critical:"",updateEvery:0,source:"",recipient:"Unknown",units:"",delayUpDuration:null,delayDownDuration:null,delayMaxDuration:null,delayMultiplier:null,delayUpToTimestamp:null,lookupDimensions:"",lookupMethod:"",lookupOptions:"",class:"Unknown",type:"Unknown",component:"Unknown"};t.ZP=(0,r.cn)({key:"alert",default:{}});var c=(0,r.cn)({key:"selectedAlert",default:null}),l=(0,r.cn)({key:"alertsTabsAtom",default:o.U}),u=(0,r.xu)({key:"alertConfigurations",default:function(e){var t=e.spaceId,n=e.roomId;return(0,a.jc)(t,n)}}),s=(0,r.xu)({key:"alertInstances",default:function(e){var t=e.spaceId,n=e.roomId,r=e.name;return(0,a.MN)(t,n,r)}}),d=(0,r.xu)({key:"selectedAlertConfiguration",default:{alertName:null,nodeId:null}})},12008:function(e,t,n){n.d(t,{Bk:function(){return P},E5:function(){return y},ER:function(){return O},E_:function(){return C},JU:function(){return Z},O0:function(){return h},__:function(){return S},fp:function(){return b},n_:function(){return E},sb:function(){return k},v3:function(){return D},w4:function(){return L},yx:function(){return x}});var r=n(4942),o=(n(21249),n(57640),n(9924),n(57327),n(41539),n(88449),n(2490),n(59849),n(85827),n(25387),n(72608),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),a=n(4480),i=n(37518),c=n(96929),l=n(99322),u=n(97945),s=n(80239),d=n(74059),f=n(84074),m=n(48450),p=n(45771);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=(0,a.CG)({key:"alertState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(f.ZP)[t]||f.E3;return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,o){var a=e.set;a(f.ZP,n?"function"!==typeof o?function(e){return v(v({},e),{},(0,r.Z)({},t,v(v({},e[t]),{},(0,r.Z)({},n,o))))}:function(e){return v(v({},e),{},(0,r.Z)({},t,v(v({},e[t]),{},(0,r.Z)({},n,o(e[t][n])))))}:function(e){return v(v({},e),{},(0,r.Z)({},t,v(v(v({},f.E3),e[t]),o)))})}}}),y=function(e,t){return(0,a.sJ)(b({id:e,key:t}))},h=function(){return(0,a.FV)(f.bc)},w=(0,a.CG)({key:"alertsState",get:function(e){return function(t){var n=t.get;return e.map((function(e){return n(b({id:e}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),O=function(e){return(0,a.sJ)(w(e))},x=function(e){var t=(0,i.UL)(),n=(0,d.th)(),r=(0,a._8)((function(r){var o=r.set;return function(){o(b({id:e,key:"fullyLoading"}),!0);var r=(0,m.hN)(n,t,e);return r.then((function(t){var n=t.data;return o(b({id:e}),v(v({},n),{},{fullyLoaded:!0,fullyLoading:!1,loaded:!0}))})).catch((function(){return o(b({id:e,key:"fullyLoading"}),!1)})),function(){return r.cancel()}}}),[t,n]);(0,o.useEffect)((function(){e&&r()}),[e,r])},k=function(){var e=I(),t=(0,c.zN)(),n=(0,u.Ne)(t);return(0,o.useMemo)((function(){return n.map((function(t){var n=e.filter((function(e){return e.nodeId===t.id}));if(!n.length)return t;var o=n.map((function(e){return e.status}));return v(v({},t),{},(0,r.Z)({},s.nb.alertStatus,(0,p.j)(o)))}))}),[e,n])},C=(0,a.CG)({key:"roomAlerts",get:function(e){return function(t){var n=t.get,r=n((0,l.e8)({id:e,key:"ids"}));return n(w(r))}}}),I=function(){var e=(0,i.UL)();return(0,a.sJ)(C(e))},P=function(){var e=(0,i.UL)();return(0,a.sJ)((0,l.e8)({id:e,key:"loaded"}))},j={warning:0,critical:0,clear:0},E=function(e){var t=O(e);return(0,o.useMemo)((function(){return t.reduce((function(e,t){var n=t.status;return e[n]=e[n]+1,e}),v({},j))}),[e])},L=function(){var e=(0,d.th)(),t=(0,i.UL)();return(0,a.sJ)((0,f.IG)({spaceId:e,roomId:t}))},Z=function(e,t){var n=(0,d.th)(),r=(0,i.UL)(),c=(0,a.sJ)((0,f.HI)({spaceId:n,roomId:r,name:e}));return(0,o.useMemo)((function(){return t?c.filter((function(e){return e.nodeId===t})):c}),[c,t])},S=function(){var e=(0,i.UL)();return(0,a.FV)((0,f.Gs)(e))},D=function(){var e=(0,i.UL)();return(0,a.rb)((0,f.Gs)(e))}},38671:function(e,t,n){n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(29439),a=n(67294),i=n(10034),c=n(58591);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=(0,c.m$)(),t=(0,i.Oi)(),n=(0,o.Z)(t,2),r=n[0],l=n[1],s=(0,i.wC)().reset,d=(0,a.useCallback)((function(){s(),(0,c.xs)(u(u({},e),{},{integrationsModalOpen:"true"})),l("true")}),[s,e]);return{isIntegrationsVisible:r,hideIntegrations:(0,a.useCallback)((function(){(0,c.xs)(u(u({},e),{},{integrationsModalOpen:""})),l("")}),[e]),onIntegrationsClick:d}}},77796:function(e,t,n){n.d(t,{in:function(){return s},ev:function(){return m},rw:function(){return p}});var r=n(93433),o=n(4942),a=(n(2707),n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4480)),i=(0,a.cn)({key:"alertIdsByNodeId",default:{}});function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=[],s=(0,a.nZ)({key:"nodesAlertIdsState",get:function(e){return(0,e.get)(i)},set:function(e,t){return(0,e.set)(i,t)}}),d=(0,a.CG)({key:"nodeAlertIdsState",get:function(e){return function(t){return(0,t.get)(i)[e]||u}},set:function(e){return function(t,n){(0,t.set)(i,(function(t){return l(l({},t),{},(0,o.Z)({},e,(0,r.Z)(n).sort((function(e,t){return e.id-t.id}))))}))}}}),f=(0,a.CG)({key:"nodesAlertIdsState",get:function(e){return function(t){var n=(0,t.get)(i);return e.reduce((function(e,t){return[].concat((0,r.Z)(e),(0,r.Z)(n[t]||[]))}),[])}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),m=function(e){return(0,a.sJ)(d(e))},p=function(e){return(0,a.sJ)(f(e))}},4312:function(e,t,n){n.d(t,{Z:function(){return p}});var r=n(87462),o=n(45987),a=n(67294),i=n(82351),c=n(60677),l=n(15557),u=(0,c.default)(l.Flex).attrs((function(){return{width:{max:"315px"},overflow:"hidden"}})).withConfig({displayName:"styled__Container",componentId:"sc-d9qxpb-0"})(["color:",";"],(0,l.getColor)("bright")),s=["children"],d=function(e){var t=e.children,n=(0,o.Z)(e,s);return a.createElement(u,(0,r.Z)({"data-testid":"nodeInfoContent"},n),t)},f=n(89050),m=["align","badge","base","children","connectivityState","content","isBasic","status","nodeName","nodeType"],p=function(e){var t=e.align,n=void 0===t?"bottom":t,c=e.badge,l=e.base,u=void 0===l?{background:"main",padding:[2]}:l,s=e.children,p=e.connectivityState,g=e.content,v=e.isBasic,b=void 0===v||v,y=e.status,h=e.nodeName,w=e.nodeType,O=(0,o.Z)(e,m);return a.createElement(i.Z,(0,r.Z)({align:n,base:u,content:function(){return a.createElement(d,{"data-testid":"nodeInfoTooltip-tooltipContent"},g||(0,f.yK)(c,p,y,h,w))},"data-testid":"nodeInfoTooltip",isBasic:b},O),s)}},39583:function(e,t,n){n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(87462),o=n(4942),a=n(45987),i=n(67294),c=n(15557),l=n(12008),u=n(77796),s=n(89050),d=n(4312),f=["id","isLive","name","onClick"];function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(e){var t=e.id,n=e.isLive,o=e.name,m=e.onClick,g=(0,a.Z)(e,f),v=(0,u.ev)(t),b=(0,l.n_)(v),y=b.critical,h=b.warning,w=p(p({},(null===g||void 0===g?void 0:g["data-testid"])&&{dataTestId:null===g||void 0===g?void 0:g["data-testid"]}),{},{isLive:n}),O=(0,s.kR)(p({count:y,type:"critical"},w)),x=(0,s.kR)(p({count:h,type:"warning"},w));return i.createElement(d.Z,(0,r.Z)({badge:"alerts","data-testid":"node-alerts",nodeName:o},g),i.createElement(c.AlertMasterCard,{onClick:O.text||x.text?m:null,pillLeft:O,pillRight:x}))}},72233:function(e,t,n){var r=n(87462),o=n(45987),a=n(67294),i=n(15557),c=n(89050),l=n(4312),u=["children","badge","enabled","name","onClick"];t.Z=function(e){var t=e.children,n=e.badge,s=e.enabled,d=e.name,f=e.onClick,m=(0,o.Z)(e,u),p=(0,c.Dy)(s);return a.createElement(l.Z,(0,r.Z)({badge:n,"data-testid":"node-".concat(n,"-status"),status:p.status,nodeName:d},m),a.createElement(i.Flex,{alignItems:"center",gap:2,onClick:s?f:void 0,cursor:s&&f?"pointer":"default","data-ga":"nodes-list::click-capability::".concat(p.label)},t,a.createElement(i.Pill,{background:p.background,borderColor:p.border,color:p.color,padding:[1,2],textSize:"small"},p.label)))}},99322:function(e,t,n){n.d(t,{e8:function(){return i},uy:function(){return c}});var r=n(4480),o=n(37518),a={ids:(0,r.xu)({key:"roomAlertIds",default:[]}),error:(0,r.xu)({key:"roomAlertError",default:null}),updatedAt:(0,r.xu)({key:"roomAlertsUpdatedAt",default:""}),loaded:(0,r.xu)({key:"roomAlertsLoaded",default:!1})},i=(0,r.CG)({key:"roomAlertState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(a[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(a[n](t),r)}}}),c=function(e){return function(e,t){return(0,r.sJ)(i({id:e,key:t}))}((0,o.UL)(),e)}}}]); \ No newline at end of file
diff --git a/web/gui/v2/282.8b52e573f86730f801fc.chunk.js b/web/gui/v2/282.112f65cb06615e413141.chunk.js
index 186da05b..8e08633a 100644
--- a/web/gui/v2/282.8b52e573f86730f801fc.chunk.js
+++ b/web/gui/v2/282.112f65cb06615e413141.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c4838b8a-04e4-4939-9531-eebb0ffd83e1",e._sentryDebugIdIdentifier="sentry-dbid-c4838b8a-04e4-4939-9531-eebb0ffd83e1")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[282],{38282:function(e,n,t){t.r(n);t(66992),t(41539),t(88674),t(78783),t(33948);var r=t(67294),o=t(2145),a=t(64487),i=t(92501),c=t(13477),u=t(49254),l=t(39469),d=t(24533),s=t(7335),f=t(52971),g=t(85456),v=t(78266),m=(0,o.Z)((function(){return Promise.all([t.e(470),t.e(27),t.e(147)]).then(t.bind(t,66143))}),"Layout");n.default=(0,i.Pf)((function(){var e=(0,c.Iy)("isLoaded"),n=(0,c.Iy)("email"),t=(0,g.gs)(f.Ew.performanceCookies.id),o=(0,c.jr)(),i=(0,c.Iy)("isAnonymous"),y=(0,l.Hu)();return(0,r.useEffect)((function(){i||y()}),[i]),(0,r.useEffect)((function(){if(o&&n&&t)try{a.av({id:o,email:n})}catch(e){console.warn("Sentry: unable to set user")}}),[n,t,o]),(0,s.aG)(o),(0,l.ZP)(),(0,u.ZP)(),(0,d.ZP)(),r.createElement(r.Suspense,{fallback:r.createElement(v.Z,null)},r.createElement(m,{isUserLoaded:e}))}))},94221:function(e,n,t){t.d(n,{c:function(){return i}});t(41539),t(39714),t(66992),t(78783),t(33948),t(41637);var r=t(26398),o=t(64637),a=function(e){return window.localNetdataRegistry.mg=e.agent.mg,window.localNetdataRegistry.hostname=(0,o.lV)(e.agent.nm||"agent"),{cloudStatus:e.cloud.status,canBeClaimed:e.can_be_claimed,keyFilename:e.key_filename,claimId:e.cloud.claim_id,mg:e.agent.mg,nd:e.agent.nd,success:e.success,message:e.message}},i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,t=e.token,o=e.rooms,i=e.url,c=new URLSearchParams({key:n,rooms:o,token:t,url:i}).toString();return c=n&&o&&t&&i&&c?"?".concat(c):"",r.Z.get("/api/v2/claim".concat(c),{baseURL:window.envSettings.agentApiUrl,transform:a})}},24533:function(e,n,t){t.d(n,{Hu:function(){return m},Lz:function(){return y}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var r=t(4942),o=t(29439),a=t(67294),i=t(4480),c=t(74059),u=t(13477),l=t(28234),d=t(94221);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=(0,i.xu)({key:"claimStatusAtom",default:{loaded:!1,loading:!1,cloudStatus:"disabled",canBeClaimed:!1,claimId:null,keyFilename:"",error:"",claiming:!1,claimingError:""}}),v=(0,i.xu)({key:"checkClaimStatus",default:function(){return 1}}),m=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,t=(0,i.Zl)(v(n));return(0,a.useCallback)((function(){return t((function(e){return e+1}))}),[n])},y=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,t=(0,i.FV)(g({machineGuid:n})),r=(0,o.Z)(t,2),c=r[0],u=r[1];return[c,(0,a.useCallback)((function(e){return u((function(n){return f(f({},n),e)}),[])}))]};n.ZP=function(){var e,n=(0,c.Q6)(),t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,r=(0,i.FV)(v(t)),s=(0,o.Z)(r,2),g=s[0],m=s[1],b=y(t),p=(0,o.Z)(b,2),w=p[0],O=p[1],h=w.loading,k=(0,u.Iy)("isAnonymous");return(0,a.useEffect)((function(){!h&&t&&n&&!k&&(O({loading:!0,nodeId:null,spaceId:null,roomIds:[]}),(0,d.c)().then((function(e){var n=e.data;O(f(f({loading:!1,loaded:!0},n),{},{error:""}))})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;O({loading:!1,loaded:!0,error:(0,l.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong",cloudStatus:"disabled",canBeClaimed:!1,keyFilename:""})})))}),[t,g,n,k]),f(f({},w),{},{checkAgain:m})}},39469:function(e,n,t){t.d(n,{Hu:function(){return w},zp:function(){return O}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var r,o=t(4942),a=t(29439),i=t(67294),c=t(4480),u=t(37176),l=t(74059),d=t(13477),s=t(28234),f=t(24533),g=t(18761);function v(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?v(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var y=null===(r=window.localNetdataRegistry)||void 0===r?void 0:r.mg,b=(0,c.xu)({key:"currentAgentBearerAtom",default:{loading:!1,token:localStorage.getItem("agentJWT:".concat(y))||"",expiration:localStorage.getItem("agentJWTExp:".concat(y))||null,bearerProtection:!0,error:""}}),p=(0,c.xu)({key:"checkAgentBearer",default:function(){return 1}}),w=function(){var e=(0,f.Lz)(),n=(0,a.Z)(e,1)[0].mg,t=(0,c.Zl)(p(n));return(0,i.useCallback)((function(){return t((function(e){return e+1}))}),[n])},O=function(){var e=(0,f.Lz)(),n=(0,a.Z)(e,1)[0],t=n.claimId,r=n.mg,o=n.nd;return(0,c.FV)(b({nodeId:o,machineGuid:r,claimId:t}))};n.ZP=function(){var e=(0,l.Q6)(),n=(0,f.Lz)(),t=(0,a.Z)(n,1)[0],r=t.claimId,o=t.mg,v=t.nd,y=(0,c.FV)(p(o)),b=(0,a.Z)(y,2),w=b[0],h=b[1],k=O(),I=(0,a.Z)(k,2),P=I[0],j=P.loading,S=P.token,Z=P.expiration,E=P.bearerProtection,A=P.error,D=I[1],R=(0,u.Z)(w),x=(0,d.Iy)("isAnonymous");return(0,i.useEffect)((function(){!j&&o&&e&&!x&&r&&v&&(w===R&&Z&&1e3*Z>(new Date).getTime()+3600||(D((function(e){return m(m({},e),{},{loading:!0})})),(0,g.op)(v,o,r).then((function(e){var n=e.data;D(m(m({loading:!1},n),{},{error:""})),localStorage.setItem("agentJWT:".concat(o),null===n||void 0===n?void 0:n.token),localStorage.setItem("agentJWTExp:".concat(o),null===n||void 0===n?void 0:n.expiration)})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;localStorage.removeItem("agentJWT:".concat(o)),localStorage.removeItem("agentJWTExp:".concat(o)),D({loading:!1,token:"",expiration:null,bearerProtection:!0,error:(0,s.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong"})}))))}),[o,Z,w,e,x,R]),{token:S,bearerProtection:E,checkAgain:h,error:A}}},49254:function(e,n,t){t.d(n,{Hu:function(){return m},ej:function(){return y}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var r=t(4942),o=t(29439),a=t(67294),i=t(4480),c=t(74059),u=t(13477),l=t(28234),d=t(18761);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=(0,i.xu)({key:"userAccessAtom",default:{loaded:!1,loading:!1,userStatus:"notLoggedIn",userNodeStatus:"noAccess",nodeId:null,spaceId:null,roomIds:[],error:""}}),v=(0,i.xu)({key:"checkUserAccess",default:function(){return 1}}),m=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,t=(0,i.Zl)(v(n));return(0,a.useCallback)((function(){return t((function(e){return e+1}))}),[n])},y=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg;return(0,i.FV)(g({machineGuid:n}))};n.ZP=function(){var e,n=(0,c.Q6)(),t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,r=(0,i.FV)(v(t)),s=(0,o.Z)(r,2),g=s[0],m=s[1],b=y(t),p=(0,o.Z)(b,2),w=p[0],O=p[1],h=w.loading,k=(0,u.Iy)("isAnonymous");return(0,a.useEffect)((function(){!h&&t&&n&&!k&&(O((function(e){return f({loading:!0,nodeId:null,spaceId:null,roomIds:[]},e)})),(0,d.yM)(t).then((function(e){var n=e.data;O(f(f({loading:!1,loaded:!0},n),{},{error:""}))})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;O({loading:!1,loaded:!0,error:(0,l.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong",userStatus:"notLoggedIn",userNodeStatus:"noAccess",nodeId:null,spaceId:null,roomIds:[]})})))}),[t,g,n,k,h]),f(f({},w),{},{checkAgain:m})}},37176:function(e,n,t){t.d(n,{Z:function(){return o}});var r=t(67294);function o(e){var n=(0,r.useRef)();return(0,r.useEffect)((function(){n.current=e})),n.current}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ad504c4f-4619-4b82-810a-b0d65f7f4194",e._sentryDebugIdIdentifier="sentry-dbid-ad504c4f-4619-4b82-810a-b0d65f7f4194")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[282],{38282:function(e,n,t){t.r(n);t(66992),t(41539),t(88674),t(78783),t(33948);var r=t(67294),o=t(2145),a=t(64487),i=t(92501),c=t(13477),u=t(49254),l=t(39469),d=t(24533),s=t(7335),f=t(52971),g=t(85456),v=t(78266),m=(0,o.Z)((function(){return Promise.all([t.e(470),t.e(27),t.e(147)]).then(t.bind(t,66143))}),"Layout");n.default=(0,i.Pf)((function(){var e=(0,c.Iy)("isLoaded"),n=(0,c.Iy)("email"),t=(0,g.gs)(f.Ew.performanceCookies.id),o=(0,c.jr)(),i=(0,c.Iy)("isAnonymous"),y=(0,l.Hu)();return(0,r.useEffect)((function(){i||y()}),[i]),(0,r.useEffect)((function(){if(o&&n&&t)try{a.av({id:o,email:n})}catch(e){console.warn("Sentry: unable to set user")}}),[n,t,o]),(0,s.aG)(o),(0,l.ZP)(),(0,u.ZP)(),(0,d.ZP)(),r.createElement(r.Suspense,{fallback:r.createElement(v.Z,null)},r.createElement(m,{isUserLoaded:e}))}))},94221:function(e,n,t){t.d(n,{c:function(){return i}});t(41539),t(39714),t(66992),t(78783),t(33948),t(41637);var r=t(26398),o=t(64637),a=function(e){return window.localNetdataRegistry.mg=e.agent.mg,window.localNetdataRegistry.hostname=(0,o.lV)(e.agent.nm||"agent"),{cloudStatus:e.cloud.status,canBeClaimed:e.can_be_claimed,keyFilename:e.key_filename,claimId:e.cloud.claim_id,mg:e.agent.mg,nd:e.agent.nd,success:e.success,message:e.message}},i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.key,t=e.token,o=e.rooms,i=e.url,c=new URLSearchParams({key:n,rooms:o,token:t,url:i}).toString();return c=n&&o&&t&&i&&c?"?".concat(c):"",r.Z.get("/api/v2/claim".concat(c),{baseURL:window.envSettings.agentApiUrl,transform:a})}},24533:function(e,n,t){t.d(n,{Hu:function(){return m},Lz:function(){return y}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var r=t(4942),o=t(29439),a=t(67294),i=t(4480),c=t(74059),u=t(13477),l=t(28234),d=t(94221);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=(0,i.xu)({key:"claimStatusAtom",default:{loaded:!1,loading:!1,cloudStatus:"disabled",canBeClaimed:!1,claimId:null,keyFilename:"",error:"",claiming:!1,claimingError:""}}),v=(0,i.xu)({key:"checkClaimStatus",default:function(){return 1}}),m=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,t=(0,i.Zl)(v(n));return(0,a.useCallback)((function(){return t((function(e){return e+1}))}),[n])},y=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,t=(0,i.FV)(g({machineGuid:n})),r=(0,o.Z)(t,2),c=r[0],u=r[1];return[c,(0,a.useCallback)((function(e){return u((function(n){return f(f({},n),e)}),[])}))]};n.ZP=function(){var e,n=(0,c.Q6)(),t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,r=(0,i.FV)(v(t)),s=(0,o.Z)(r,2),g=s[0],m=s[1],b=y(t),p=(0,o.Z)(b,2),w=p[0],O=p[1],h=w.loading,k=(0,u.Iy)("isAnonymous");return(0,a.useEffect)((function(){!h&&t&&n&&!k&&(O({loading:!0,nodeId:null,spaceId:null,roomIds:[]}),(0,d.c)().then((function(e){var n=e.data;O(f(f({loading:!1,loaded:!0},n),{},{error:""}))})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;O({loading:!1,loaded:!0,error:(0,l.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong",cloudStatus:"disabled",canBeClaimed:!1,keyFilename:""})})))}),[t,g,n,k]),f(f({},w),{},{checkAgain:m})}},39469:function(e,n,t){t.d(n,{Hu:function(){return w},zp:function(){return O}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var r,o=t(4942),a=t(29439),i=t(67294),c=t(4480),u=t(37176),l=t(74059),d=t(13477),s=t(28234),f=t(24533),g=t(18761);function v(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function m(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?v(Object(t),!0).forEach((function(n){(0,o.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var y=null===(r=window.localNetdataRegistry)||void 0===r?void 0:r.mg,b=(0,c.xu)({key:"currentAgentBearerAtom",default:{loading:!1,token:localStorage.getItem("agentJWT:".concat(y))||"",expiration:localStorage.getItem("agentJWTExp:".concat(y))||null,bearerProtection:!0,error:""}}),p=(0,c.xu)({key:"checkAgentBearer",default:function(){return 1}}),w=function(){var e=(0,f.Lz)(),n=(0,a.Z)(e,1)[0].mg,t=(0,c.Zl)(p(n));return(0,i.useCallback)((function(){return t((function(e){return e+1}))}),[n])},O=function(){var e=(0,f.Lz)(),n=(0,a.Z)(e,1)[0],t=n.claimId,r=n.mg,o=n.nd;return(0,c.FV)(b({nodeId:o,machineGuid:r,claimId:t}))};n.ZP=function(){var e=(0,l.Q6)(),n=(0,f.Lz)(),t=(0,a.Z)(n,1)[0],r=t.claimId,o=t.mg,v=t.nd,y=(0,c.FV)(p(o)),b=(0,a.Z)(y,2),w=b[0],h=b[1],k=O(),I=(0,a.Z)(k,2),P=I[0],j=P.loading,S=P.token,Z=P.expiration,E=P.bearerProtection,A=P.error,D=I[1],R=(0,u.Z)(w),x=(0,d.Iy)("isAnonymous");return(0,i.useEffect)((function(){!j&&o&&e&&!x&&r&&v&&(w===R&&Z&&1e3*Z>(new Date).getTime()+3600||(D((function(e){return m(m({},e),{},{loading:!0})})),(0,g.op)(v,o,r).then((function(e){var n=e.data;D(m(m({loading:!1},n),{},{error:""})),localStorage.setItem("agentJWT:".concat(o),null===n||void 0===n?void 0:n.token),localStorage.setItem("agentJWTExp:".concat(o),null===n||void 0===n?void 0:n.expiration)})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;localStorage.removeItem("agentJWT:".concat(o)),localStorage.removeItem("agentJWTExp:".concat(o)),D({loading:!1,token:"",expiration:null,bearerProtection:!0,error:(0,s.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong"})}))))}),[o,Z,w,e,x,R]),{token:S,bearerProtection:E,checkAgain:h,error:A}}},49254:function(e,n,t){t.d(n,{Hu:function(){return m},ej:function(){return y}});t(47941),t(82526),t(57327),t(41539),t(88449),t(2490),t(59849),t(38880),t(15581),t(34514),t(54747),t(49337),t(33321),t(69070);var r=t(4942),o=t(29439),a=t(67294),i=t(4480),c=t(74059),u=t(13477),l=t(28234),d=t(18761);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function f(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){(0,r.Z)(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var g=(0,i.xu)({key:"userAccessAtom",default:{loaded:!1,loading:!1,userStatus:"notLoggedIn",userNodeStatus:"noAccess",nodeId:null,spaceId:null,roomIds:[],error:""}}),v=(0,i.xu)({key:"checkUserAccess",default:function(){return 1}}),m=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,t=(0,i.Zl)(v(n));return(0,a.useCallback)((function(){return t((function(e){return e+1}))}),[n])},y=function(){var e,n=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg;return(0,i.FV)(g({machineGuid:n}))};n.ZP=function(){var e,n=(0,c.Q6)(),t=null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.mg,r=(0,i.FV)(v(t)),s=(0,o.Z)(r,2),g=s[0],m=s[1],b=y(t),p=(0,o.Z)(b,2),w=p[0],O=p[1],h=w.loading,k=(0,u.Iy)("isAnonymous");return(0,a.useEffect)((function(){!h&&t&&n&&!k&&(O((function(e){return f({loading:!0,nodeId:null,spaceId:null,roomIds:[]},e)})),(0,d.yM)(t).then((function(e){var n=e.data;O(f(f({loading:!1,loaded:!0},n),{},{error:""}))})).catch((function(e){var n,t=null===e||void 0===e||null===(n=e.response)||void 0===n?void 0:n.data;O({loading:!1,loaded:!0,error:(0,l.r)(null===t||void 0===t?void 0:t.errorMsgKey)||(null===t||void 0===t?void 0:t.errorMessage)||"Something went wrong",userStatus:"notLoggedIn",userNodeStatus:"noAccess",nodeId:null,spaceId:null,roomIds:[]})})))}),[t,g,n,k,h]),f(f({},w),{},{checkAgain:m})}},37176:function(e,n,t){t.d(n,{Z:function(){return o}});var r=t(67294);function o(e){var n=(0,r.useRef)();return(0,r.useEffect)((function(){n.current=e})),n.current}}}]); \ No newline at end of file
diff --git a/web/gui/v2/324.4fc60bcaa065dab2898f.chunk.js b/web/gui/v2/324.328e79181dbe63b612fa.chunk.js
index 406e8574..f9996e91 100644
--- a/web/gui/v2/324.4fc60bcaa065dab2898f.chunk.js
+++ b/web/gui/v2/324.328e79181dbe63b612fa.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="12692396-4134-4763-9df4-2b214c6d38b6",e._sentryDebugIdIdentifier="sentry-dbid-12692396-4134-4763-9df4-2b214c6d38b6")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[324],{80959:function(e,t,n){var r=n(87462),a=n(45987),o=n(67294),l=n(15557),i=["message","title","footer"];t.Z=function(e){var t=e.message,n=e.title,c=e.footer,u=(0,a.Z)(e,i),s=(null===u||void 0===u?void 0:u["data-testid"])||"functionError";return o.createElement(l.Flex,(0,r.Z)({alignItems:"center",column:!0,"data-testid":s,flex:!0,gap:3,justifyContent:"center",padding:[0,20]},u),o.createElement(l.H3,{"data-testid":"".concat(s,"-title")},n),o.createElement(l.TextBig,{color:"textDescription","data-testid":"".concat(s,"-message")},t),c)}},34324:function(e,t,n){n.r(t),n.d(t,{default:function(){return vr}});var r={};n.r(r),n.d(r,{base:function(){return yn},table:function(){return bn}});var a=n(29439),o=n(67294),l=n(91268),i=n(96929),c=n(3322),u=(n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4942)),s=(n(47941),n(21249),n(57640),n(9924),n(60677)),d=n(15557),m=n(54316),f=n(46667),p=n(82351),v=n(29814),g=n(72843),b=n(37518),y=n(87462),h=(n(85827),n(25387),n(72608),n(69826),n(31672),n(59461),n(97193)),E=n(8144);function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=function(e){var t=e.roomId,n=e.flavour,r=e.availableFns,a=function(e){var t="fn"===e;return(0,o.useMemo)((function(){return{Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasFn:t},node:{textColor:"text",showFn:t,requireFn:t}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale"},node:{textColor:"text",disabled:t}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline",disabled:t},node:{textColor:"textLite",disabled:t}}}}),[e])}(n),l=function(e){var t=(0,c.ZQ)({extraKey:e}).aggregations;return(0,o.useMemo)((function(){return null!==t&&void 0!==t&&t.node_ids?t.node_ids.buckets.reduce((function(e,t){return O(O({},e),{},(0,u.Z)({},t.key,t.hits.doc_count))}),{}):null}),[t])}(n),i="fn"===n,s=(0,c.CE)({extraKey:n}),d=(0,o.useMemo)((function(){var e;return Array.isArray(r)&&(null===(e=r.find((function(e){return e.name===s})))||void 0===e?void 0:e.nodes)||{}}),[s,r]),m=(0,o.useCallback)((function(e){return!!d&&!d[e]}),[d]),f=(0,o.useCallback)((function(){return Object.keys(d)}),[d]);return o.createElement(E.Z,{title:"Nodes",testIdPrefix:"nodes",baseKey:t,extraKey:n,param:"selectedNodeIds",multi:"feed"===n},o.createElement(h.Z,(0,y.Z)({key:n,baseKey:t,extraKey:n,statusProps:a,background:"mainBackground",itemProps:{padding:[1,1,1,.5],maxLength:30},searchMargin:[0,0,2],height:{max:"300px"},multi:"feed"===n,nodeCounts:l},i&&{useFilteredIds:f},{checkIsDisabled:m})))},S=n(46742),C=function(e){return e.name},Z=function(e){var t=e.param,n=e.baseKey,r=e.extraKey,a=e.testIdPrefix,l=e.title,i=e.items,c=void 0===i?[]:i,u=e.multi,s=void 0!==u&&u;return c.length?o.createElement(E.Z,{title:l,testIdPrefix:a,baseKey:n,extraKey:r,param:t,multi:s},o.createElement(S.ZP,{param:t,baseKey:n,extraKey:r,testIdPrefix:a,collection:c,multi:s,getValue:C,getLabel:C})):null},j=n(93433),k=(n(92222),{none:!0,facet:!0}),P=function(e,t){var n=(0,c.ZQ)({extraKey:e}),r=n.loaded,a=n.loading,l=n.columns,i=n.sortedColumns,u=(0,o.useRef)([]);return(0,o.useMemo)((function(){return!r||a||(u.current=i.reduce((function(e,n){return!l[n].filter||k[l[n].filter]?e:[].concat((0,j.Z)(e),[t(n,l)])}),[])),u.current}),[r,a])},I=n(95248),T=n(71002),D=(n(64211),n(41874),n(69720),n(26699),n(32023),n(54678),n(4480));function F(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?F(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var N={query:function(e,t,n){var r=n.columnVisibility,o=(null===t||void 0===t?void 0:t.toLowerCase())||"";return Object.entries(e).some((function(e){var t=(0,a.Z)(e,2),n=t[0],l=t[1];return!!r[n]&&(null!==l&&"undefined"!==typeof l&&(Array.isArray(l)?l.some((function(e){return String(e).toLowerCase().includes(o)})):("object"===(0,T.Z)(l)&&Object.keys(l).some((function(e){return String(l[e]).toLowerCase().includes(o)})),String(l).toLowerCase().includes(o))))}))}},z=function(e){return function(t,n){return!e.some((function(e){var r=(0,a.Z)(e,2),o=r[0],l=r[1];return N[o]?!N[o](t,l,n):!function(e){return function(t,n,r){var a;if("range"===(null===(a=r.columns[e])||void 0===a?void 0:a.filter)&&null!==n&&void 0!==n&&n.length)return t[e]>=n[0]&&t[e]<=n[1];if(!Array.isArray(n)||!n.length)return!0;var o=t[e];return"number"===typeof o?(o=parseFloat(o),n.some((function(e){return parseFloat(e)===o}))):n.includes(o)}}(o)(t,l,n)}))}},A=(0,D.CG)({key:"fnDataFiltered",get:function(e){var t=e.extraKey,n=e.roomId,r=e.omit,a=void 0===r?[]:r,o=e.keepAll,l=e.fn;return function(e){var r,i=e.get,u=null===(r=i((0,I.dz)({key:n,extraKey:"".concat(l,"Settings")})))||void 0===r?void 0:r.sortColumn,s=i((0,I.dz)({key:n,extraKey:t})),d=Object.keys(s).reduce((function(e,t){return a.includes(t)||e.push([t,s[t]]),e}),[]),m=i((0,c.tD)({id:l})),f=m.columnVisibility,p=m.data,v=m.columns;if(m.aggregations||!d.length||!p)return p||[];var g=z(d);return o?p.map((function(e){return g(e,{columnVisibility:f,columns:v,sortColumn:u})?e:K(K({},e),{},{hidden:!0})})):p.filter((function(e){return g(e,{columnVisibility:f,columns:v,sortColumn:u})}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.extraKey,n=void 0===t?"fn":t,r=e.omit,a=void 0===r?[]:r,o=e.keepAll,l=void 0!==o&&o,i=(0,c.CE)({extraKey:n}),u=(0,b.UL)();return(0,D.sJ)(A({extraKey:"".concat(i||n,"Filters"),fn:i,roomId:u,omit:a,keepAll:l}))},R=(n(2707),n(6557)),M=function(e){return e.id},B={string:function(e,t){return e.localeCompare(t,void 0,{sensitivity:"accent"})},integer:function(e,t){return e-t}},_={table:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.param,r=t.columns;return Object.entries(e.reduce((function(e,t){var a,o;return e[t[n]]={count:((null===(a=e[t[n]])||void 0===a?void 0:a.count)||0)+(t.hidden?0:1),type:null===(o=r[n])||void 0===o?void 0:o.type},e}),{})).map((function(e){var t=(0,a.Z)(e,2),n=t[0],r=t[1];return{id:n,type:r.type,count:r.count}})).sort((function(e,t){return(B[e.type]||B.integer)(e.id,t.id)}))},default:n.n(R)()},V=function(e,t){return{key:e,type:t[e].filter}},U={multiselect:function(e){var t=e.param,n=e.baseKey,r=e.extraKey,a=e.filtersKey,l=e.testIdPrefix,i=e.title,u=function(e){var t=e.extraKey,n=e.filtersKey,r=e.param,a=L({extraKey:t,omit:[r],keepAll:!0}),l=(0,I.tk)(r,{extraKey:n}),i=(0,c.ZQ)({key:"type",extraKey:t}),u=_[i]||_.default,s=(0,c.ZQ)({key:"columns",extraKey:t});return(0,o.useMemo)((function(){return u(a,{param:r,columns:s})}),[r,a,l])}({param:t,extraKey:r,filtersKey:a});return u&&u.length?o.createElement(E.Z,{title:i,testIdPrefix:l,baseKey:n,extraKey:a,param:t,defaultIsOpen:!1},o.createElement(S.ZP,{param:t,baseKey:n,extraKey:a,testIdPrefix:l,collection:u,capitalized:!1,getValue:M,getLabel:M})):null},range:function(e){var t=e.param,n=e.baseKey,r=e.extraKey,l=e.filtersKey,i=e.testIdPrefix,u=e.title,s=(0,c.ZQ)({extraKey:r}).columns,m=(0,I.I0)(t,{defaultValue:[],key:n,extraKey:l}),f=(0,a.Z)(m,2),p=f[0],v=f[1];if(!s[t])return null;var g=1*s[t].range.min,b=1*s[t].range.max;return o.createElement(E.Z,{title:u,testIdPrefix:i,baseKey:n,extraKey:l,param:t,defaultIsOpen:!1},o.createElement(d.Box,{padding:[2,0],width:"100%"},o.createElement(d.MultiRangeInput,{min:g,max:b,onChange:function(e){var t=e.min,n=e.max;return v([t,n])},initMin:p[0]?1*p[0]:g,initMax:p[1]?1*p[1]:b})))}},W=function(e){var t=e.roomId,n=e.extraKey,r=(0,c.CE)({extraKey:n}),a=function(e){return P(e,V)}(n);return a.map((function(e){var a=U[e.type]||U.multiselect;return o.createElement(a,{key:e.key,title:e.key,testIdPrefix:"function",baseKey:t,extraKey:n,filtersKey:"".concat(r||n,"Filters"),param:e.key})}))},H=function(e){return e.name||e.id},Q=function(e){return e.id},q=function(e){var t=e.title,n=e.options,r=e.param,a=e.baseKey,l=e.filtersKey,i=e.testIdPrefix;return null!==n&&void 0!==n&&n.length?o.createElement(E.Z,{title:t,testIdPrefix:i,baseKey:a,extraKey:l,param:r,defaultIsOpen:!1},o.createElement(S.ZP,{param:r,baseKey:a,extraKey:l,testIdPrefix:i,collection:n,capitalized:!1,getValue:Q,getLabel:H})):null},G={nodes:!0},X=function(e){var t=e.roomId,n=e.extraKey,r=(0,c.CE)({extraKey:n}),a=(0,c.Cf)(n);return a.length?a.map((function(e){return G[e.id]?null:o.createElement(q,{key:e.id,title:e.name,options:e.options,param:e.id,testIdPrefix:"function",baseKey:t,filtersKey:"".concat(r||n,"Filters")})})):null},J=(0,o.memo)((function(e){var t=e.flavour,n=e.refetch,r=e.availableFns,a=(0,b.UL)(),l=(0,c.ZQ)({extraKey:t}),i=l.loaded,u=l.aggregations,s=l.error;return o.createElement(d.Flex,{column:!0,overflow:{vertical:"auto"},padding:[0,3,30]},"fn"===t&&o.createElement(Z,{title:"Function",testIdPrefix:"function",baseKey:a,extraKey:t,param:"selected",items:r}),o.createElement(w,{roomId:a,flavour:t,availableFns:r}),i&&!u&&!s&&o.createElement(W,{roomId:a,extraKey:t}),i&&u&&!s&&o.createElement(X,{roomId:a,extraKey:t,onFilter:n}))})),Y=n(45987),$=(n(38862),n(32586)),ee=n(76184),te=n(52428),ne=["selectedRowData","setSelectedRowData"],re=function(e){var t=e.data;return o.createElement(ee.Z,{name:"Files"},o.createElement(d.Flex,{gap:1,padding:[0,1],alignItems:"center"},o.createElement(d.Box,{sx:{fontWeight:"500",letterSpacing:"1px"},as:d.Text,color:"textLite"},"{;}"),o.createElement(d.TextSmall,null,"Copy data as"),o.createElement(d.Flex,{cursor:"pointer",gap:1,onClick:(0,te.J)(JSON.stringify(t),{text:"JSON copied to clipboard"})},o.createElement(d.TextSmall,{color:"primary"},"json"),o.createElement(d.Icon,{color:"primary",size:"small",name:"copy"}))))},ae=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.data,r=void 0===n?{}:n,o=t.columns,l=void 0===o?{}:o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],c=arguments.length>2?arguments[2]:void 0;return Object.entries(r).reduce((function(t,n){var r,o=(0,a.Z)(n,2),i=o[0],u=o[1],s=c?"".concat(c,".").concat(i):(null===(r=l[i])||void 0===r?void 0:r.displayName)||i,d=Array.isArray(u);return d&&"object"===(0,T.Z)(u[0])&&null!==u[0]||d&&u.length>1?t.push([s,JSON.stringify(u)]):u&&"object"===(0,T.Z)(u)?e({data:u},t,s):t.push([s,d?u.length>1?"[".concat(u.join(", "),"]"):u[0]:u]),t}),i)},oe=function(e){var t=e.selectedRowData,n=void 0===t?{}:t,r=e.setSelectedRowData,l=(0,Y.Z)(e,ne),i=(0,o.useMemo)((function(){return ae(n).sort((function(e,t){var n=(0,a.Z)(e,1)[0],r=(0,a.Z)(t,1)[0];return n.localeCompare(r)}))}),[n]);return o.createElement(d.Flex,(0,y.Z)({column:!0,gap:2,overflow:{vertical:"auto"},padding:[2,3]},l),o.createElement(d.Flex,{justifyContent:"between",padding:[2,0],border:{side:"bottom",color:"borderSecondary"}},o.createElement(d.TextBig,{strong:!0},"Row info"),i.length>0&&o.createElement(d.Box,{onClick:function(){return r()},cursor:"pointer"},o.createElement(d.TextSmall,{color:"primary"},"Clear selection"))),Array.isArray(i)&&i.length?o.createElement(o.Fragment,null,i.map((function(e){var t=(0,a.Z)(e,2),n=t[0],r=t[1];return o.createElement($.Z,{key:n,size:"small",name:n,testId:"rightBar-rowInfoContent-".concat(n),padding:[1,0,0]},r)})),o.createElement(re,{data:n})):o.createElement(d.Text,null,"Select a row to see raw data"))};function le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?le(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ce={color:{active:"success",notActive:"textLite"}},ue={filters:ie(ie({iconName:"filterList"},ce),{},{width:"19px",Content:J,dataTestId:"fnFilters",label:"Filters"}),info:ie(ie({iconName:"information"},ce),{},{width:"19px",dataTestId:"info",Content:oe,label:"Info"})},se=Object.keys(ue),de=(0,s.default)(d.Tabs).withConfig({displayName:"sidebar__StyledTabs",componentId:"sc-1x1ez62-0"})(["overflow:hidden;height:100%;"]),me=function(e){var t=e.isActive,n=e.color,r=e.name,a=e.label;return o.createElement(p.Z,{plain:!0,content:a},o.createElement(d.Icon,{name:r,color:t?n.active:n.notActive,height:"18px",width:"18px"}))},fe=function(e){var t=(0,f.Z)(!0),n=(0,a.Z)(t,3),r=n[0],l=n[1],i=n[2],c=(0,o.useState)(0),u=(0,a.Z)(c,2),s=u[0],p=u[1];return(0,o.useEffect)((function(){e.selectedRowData&&(p(1),i())}),[e.selectedRowData]),o.createElement(m.ZP,{collapsedComponent:o.createElement(v.Z,{availableTabs:ue,onClickTab:l,tabsToShow:se}),header:o.createElement(g.Z,{icon:"filterList",isOpen:r,onToggle:l,title:"Filters"}),isOpen:r},o.createElement(d.Flex,{"data-testid":"overview-info",column:!0,overflow:"hidden",height:"100%"},o.createElement(de,{selected:s,onChange:p,noDefaultBorder:!0},se.map((function(t,n){var r=ue[t],a=r.iconName,l=r.color,i=r.Content,c=r.dataTestId,u=r.label;return o.createElement(d.Tab,{style:{display:1===se.length?"none":"inherit"},"data-testid":c,maxWidth:"100%",key:a,small:!0,label:o.createElement(me,{isActive:s===n,name:a,color:l,label:u})},o.createElement(d.Flex,{column:!0,overflow:"hidden",height:"calc(100% - 60px)",position:"relative"},o.createElement(i,e)))})))))},pe=n(36560),ve=n(78266),ge=(n(41817),n(97945)),be=n(74059),ye=n(49254),he=n(89250),Ee=function(e){var t=(0,I.XT)(e),n=(0,he.TH)().state;return(0,o.useEffect)((function(){null!==n&&void 0!==n&&n.nodeId&&t([n.nodeId])}),[]),null===n||void 0===n?void 0:n.nodeId},xe=n(91008),Oe=n(80959),we=["paramsKey"],Se=function(e){var t=e.paramsKey,n=(0,Y.Z)(e,we),r=(null===n||void 0===n?void 0:n["data-testid"])||"capableNodesError",a=(0,I.c6)(t),l=(0,ge.bV)(null===a||void 0===a?void 0:a[0],"name");return o.createElement(d.Flex,(0,y.Z)({alignItems:"center",flex:!0,gap:8,justifyContent:"center"},n,{"data-testid":r}),o.createElement(d.Icon,{"data-testid":"".concat(r,"-icon"),height:"230px",name:"unreachableNode",width:"230px"}),o.createElement(Oe.Z,{"data-testid":"".concat(r,"-details"),gap:2,title:l?"".concat(l," is not configured for Functions"):"Your nodes are not configured for Functions",message:o.createElement(o.Fragment,null,"Learn how to configure your nodes"," ",o.createElement(xe.Z,{Component:d.TextBig,"data-ga":"functions-capable-nodes-error::click-docs-link::functions-view","data-testid":"".concat(r,"-docsLink"),href:"https://learn.netdata.cloud/docs/nightly/operations/run-time-troubleshooting-with-functions#prerequisites",target:"_blank",rel:"noopener noreferrer"},"to support functions")),width:{max:"fit-content"}}))},Ce=n(64599),Ze=n(70842),je=n(39469),ke=n(36657),Pe=n(91128),Ie=n(62554),Te=(0,s.default)(d.Flex).attrs({alignItems:"center",border:{side:"bottom",color:"borderSecondary"},padding:[2]}).withConfig({displayName:"styled__MenuItem",componentId:"sc-fmyuo7-0"})(["&:last-child{border:none;}"]),De=(0,s.default)(d.TextInput).withConfig({displayName:"styled__TextInput",componentId:"sc-fmyuo7-1"})(['margin:0 10px;min-width:unset;width:45px;> div{margin:0;}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}input[type="number"]{-moz-appearance:textfield;}']),Fe=["onClose","targetRef","paramsKey"];function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ke(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ze=function(e){var t=e.onClose,n=e.targetRef,r=e.paramsKey,l=(0,Y.Z)(e,Fe),i=(null===l||void 0===l?void 0:l["data-testid"])||"refreshOptions",u=(0,c.ZQ)(Ne({key:"updateEvery"},r)),s=(0,c.WO)(r),m=(0,a.Z)(s,2),p=m[0],v=m[1],g=(0,f.Z)(p),b=(0,a.Z)(g,2),y=b[0],h=b[1];(0,Ie.Z)((function(){!!p!==!!y&&v(y)}),200,[p,y]);var E=(0,c.FF)(Ne(Ne({},r),{},{defaultValue:u})),x=(0,a.Z)(E,2),O=x[0],w=x[1],S=(0,o.useState)(O),C=(0,a.Z)(S,2),Z=C[0],j=C[1];return(0,Ie.Z)((function(){O!==Z&&w(Z)}),400,[O,Z]),n.current?o.createElement(d.Drop,{align:{top:"bottom",right:"right"},animation:!0,background:"dropdown",close:t,column:!0,"data-testid":i,margin:[.5,0,0],onClickOutside:t,onEsc:t,round:1,target:n.current,width:58},o.createElement(Te,{"data-testid":"".concat(i,"-autoRefresh"),justifyContent:"between"},o.createElement(d.Text,{color:"menuItem","data-testid":"".concat(i,"-autoRefresh-label")},"Auto Refresh"),o.createElement(d.Toggle,{colored:!0,checked:y,"data-ga":"functions-refresh-options::auto-refresh-switch::functions-view::".concat(y?"enabled":"disabled"),"data-testid":"".concat(i,"-autoRefresh-switch"),onChange:h})),o.createElement(Te,{"data-testid":"".concat(i,"-pollingInterval")},o.createElement(d.Text,{color:"menuItem","data-testid":"".concat(i,"-pollingInterval-label")},"Refresh every"),o.createElement(De,{"data-ga":"functions-refresh-options::polling-interval::functions-view","data-testid":"".concat(i,"-pollingInterval-input"),min:1,onChange:function(e){var t=+e.target.value;t>0&&j(t)},size:"tiny",type:"number",value:Z}),o.createElement(d.Text,{color:"menuItem","data-testid":"".concat(i,"-pollingInterval-units")},"seconds"))):null},Ae=n(89405),Le=function(e){var t=e.paramsKey,n=(0,c.ZQ)(t).updatedAt,r=(0,Ae.rA)(),a=r.localeTimeString,l=r.localeDateString;return o.createElement(d.TextMicro,{color:"textLite"},"Last updated: ",l(n,{long:!0})," ",a(n,{secs:!0}))},Re=s.default.div.withConfig({displayName:"reload__IconsContainer",componentId:"sc-1nbamjz-0"})(["position:relative;"]),Me=(0,s.default)(d.Icon).withConfig({displayName:"reload__SmallIcon",componentId:"sc-1nbamjz-1"})(["position:absolute;top:3px;left:3px;"]),Be=function(e){var t=e.onRefresh,n=e.dataGa,r=e.testId,a=e.paramsKey,l=(0,c.T2)(a);return o.createElement(Re,null,o.createElement(Me,{name:l?"playSolid":"pauseSolid",width:"8px",height:"8px",color:l?"primary":"text"}),o.createElement(d.IconButton,{"data-testid":"".concat(r,"-refreshNowBtn"),"data-ga":"".concat(n,"::click-refresh-now::functions-view"),flavour:"hollow",icon:"refresh",onClick:function(){return t({merge:!1})},disabled:l}))},_e=["onRefresh","paramsKey"],Ve={fn:{dataGa:"functions-header",hasAutoRefresh:!0,Title:function(e){var t=e.name,n=e.fn,r=void 0===n?"Processes":n;return t?"".concat(r," on ").concat(t):r},TextContent:function(e){var t=e.testId;return o.createElement(o.Fragment,null,"Netdata Functions enable detailed low-level monitoring at the edge. Use this tab to execute functions on your node and see the results immediately."," ",o.createElement(xe.Z,{Component:d.Text,"data-ga":"functions-header::click-docs-link::functions-view","data-testid":"".concat(t,"-docsLink"),href:"https://learn.netdata.cloud/docs/nightly/concepts/netdata-functions",target:"_blank",rel:"noopener noreferrer"},"Read the Netdata functions documentation to learn more"),".")}},feed:{dataGa:"feed-header",Title:function(){return"Events"},TextContent:function(e){var t=e.testId;return o.createElement(o.Fragment,null,"Troubleshoot faster with Netdata Events. Access topology and alert events across the war room in one convenient location."," ",o.createElement(xe.Z,{Component:d.Text,"data-ga":"feed-header::click-docs-link::feed-view","data-testid":"".concat(t,"-docsLink"),href:"https://learn.netdata.cloud/docs/nightly/concepts/events-feed",target:"_blank",rel:"noopener noreferrer"},"Read the Events feed documentation to learn more"),".")}}},Ue=(0,o.memo)((function(e){var t=e.onRefresh,n=e.paramsKey,r=(0,Y.Z)(e,_e),l=(null===r||void 0===r?void 0:r["data-testid"])||"functionsHeader",i=(0,o.useRef)(),u=Ve[n.extraKey],s=u.dataGa,m=u.hasAutoRefresh,p=u.TextContent,v=u.Title,g=(0,f.Z)(!1),b=(0,a.Z)(g,4),y=b[0],h=b[1],E=b[3],x=(0,I.c6)(n),O=(0,ge.bV)(null===x||void 0===x?void 0:x[0],"name"),w=(0,c.ZQ)(n),S=w.loaded,C=w.data,Z=w.totalSize,j=(0,c.CE)(n);return o.createElement(d.Flex,{"data-testid":l,justifyContent:"between",margin:[0,0,3]},o.createElement(d.Flex,{column:!0,gap:2,"data-testid":"".concat(l,"-info"),width:{max:164}},o.createElement(d.Flex,{gap:2,alignItems:"baseline"},o.createElement(d.H1,{"data-testid":"".concat(l,"-title")},o.createElement(v,{name:O,fn:j})),S&&o.createElement(d.TextSmall,{color:"textLite",strong:!0},"(",Z||(null===C||void 0===C?void 0:C.length)||0," results)")),o.createElement(d.Flex,{column:!0,gap:2},o.createElement(d.Text,{"data-testid":"".concat(l,"-description"),color:"textLite"},o.createElement(p,{testId:l})))),o.createElement(d.Flex,{alignItems:"end",column:!0,gap:1},o.createElement(d.Flex,{gap:1},o.createElement(Be,{testId:l,dataGa:s,onRefresh:t,paramsKey:n}),m&&o.createElement(d.IconButton,{"data-testid":"".concat(l,"-refreshOptionsBtn"),"data-ga":"".concat(s,"::click-refresh-options::functions-view"),flavour:"hollow",icon:"chevron_down",ref:i,onClick:h}),y&&o.createElement(ze,{"data-testid":"".concat(l,"-refreshOptions"),isOpen:y,onClose:E,targetRef:i,paramsKey:n})),o.createElement(Le,{paramsKey:n})))}),(function(e,t){return e.onRefresh===t.onRefresh})),We=n(41331),He=(n(88386),n(55436)),Qe=["icon","iconRotate","children","onClick","strong","testId","textAlign","wrap"],qe=["description","tooltipValue","value","valueOptions","wrap"],Ge=(0,s.default)(d.Icon).attrs({color:"text",height:"16px",width:"16px"}).withConfig({displayName:"value__Arrow",componentId:"sc-1ahoh2y-0"})(["rotate:",";transition:all 200ms ease;"],(function(e){return e.rotate})),Xe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=t.decimalPoints,a=void 0===r?0:r,l=t.units,i=t.defaultValue,c=(0,He.Ol)();return(0,o.useMemo)((function(){switch(n){case"number":return(0,He.Jw)(e,{decimalPoints:a,units:l,defaultValue:i});case"duration":return(0,He.kl)(e,{defaultValue:i});case"datetime":return c(e,{defaultValue:i});case"datetime_usec":return c(e,{defaultValue:i,usec:!0});default:return null===e||"undefined"===typeof e?i:e}}),[e,l])},Je=function(e){var t=e.description,n=void 0===t?"":t,r=e.value,a=e.units,l=void 0===a?"":a;return n?o.createElement(d.Flex,{column:!0,gap:1,justifyContent:"center"},o.createElement(d.TextSmall,{color:"bright"},n),o.createElement(d.TextSmall,{strong:!0,color:"bright",textAlign:"center"},r," ",l)):"".concat(r," ").concat(l)},Ye=(0,o.forwardRef)((function(e,t){var n=e.icon,r=e.iconRotate,a=e.children,l=e.onClick,i=e.strong,c=e.testId,u=void 0===c?"cell":c,s=e.textAlign,m=e.wrap,f=(0,Y.Z)(e,Qe);return o.createElement(d.Flex,(0,y.Z)({cursor:l?"pointer":"inherit",gap:.5,onClick:l,overflow:"hidden",ref:t,width:{max:"100%"},flexWrap:!0},f),n&&o.createElement(Ge,{name:n,rotate:r}),o.createElement(d.TextSmall,{"data-testid":"".concat(u,"-value"),strong:i,textAlign:s,truncate:!m,whiteSpace:m?"wrap":"nowrap"},a))})),$e=function(e){var t=e.description,n=void 0===t?"":t,r=e.tooltipValue,a=e.value,l=e.valueOptions,i=void 0===l?{}:l,c=e.wrap,u=(0,Y.Z)(e,qe),s=Xe(a,i);return o.createElement(p.Z,(0,y.Z)({content:!c&&o.createElement(Je,{description:n,value:r||a,units:i.units}),"data-testid":"tableCell",isBasic:!0},u),o.createElement(Ye,{wrap:c},s))},et=["description","maxValue","strong","type","value","valueOptions","wrap"],tt=function(e){var t=e.description,n=void 0===t?"":t,r=e.maxValue,a=e.strong,l=e.type,i=e.value,c=e.valueOptions,u=void 0===c?{}:c,s=e.wrap,m=(0,Y.Z)(e,et),f=100*i/r,v="bar"===l,g=(null===m||void 0===m?void 0:m["data-testid"])||"progressTableCell",b=Xe(i,u);return o.createElement(p.Z,{content:o.createElement(Je,{description:n,value:i,units:u.units}),isBasic:!0,stretch:"align"},o.createElement(d.Flex,{column:!0,"data-testid":g,gap:1,flexWrap:s},!v&&o.createElement(Ye,{strong:a,testid:g},b),o.createElement(d.ProgressBar,{background:"sideBarMini",border:"none",color:["green","netdata"],containerWidth:"100%","data-testid":"".concat(g,"-bar"),height:2,width:"".concat(f,"%")})))},nt=["value","wrap"],rt=function(e){var t=e.value,n=e.wrap,r=(0,Y.Z)(e,nt);return t=Array.isArray(t)?t:[t],o.createElement(d.Flex,{alignItems:"center",gap:1,flexWrap:n},t.map((function(e,t){return o.createElement(d.Flex,(0,y.Z)({"data-testid":"tableCell",key:"".concat(e,"-").concat(t)},r),o.createElement(d.Pill,{flavour:"neutral",color:"neutralPillColor",size:"small"},e))})))},at=n(20686),ot=["color"],lt=function(e){var t=e.hide,n=e.user;return t||!n?null:o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"by"),o.createElement(it,null,n))},it=function(e){var t=e.color,n=void 0===t?"textDescription":t,r=(0,Y.Z)(e,ot);return o.createElement(d.TextSmall,(0,y.Z)({color:n,strong:!0},r))},ct=function(e){var t=e.type,n=e.text,r=void 0===n?t:n,a=e.hollow,l=a?"".concat(t.toLowerCase(),"AlertsTable"):t.toLowerCase();return o.createElement(at.Z,(0,y.Z)({type:l},a&&{border:!1}),r)},ut=(0,s.default)(d.Flex).attrs({gap:1,flexWrap:!0,alignItems:"center"}).withConfig({displayName:"components__Container",componentId:"sc-1qr6qv2-0"})([""]),st=n(79655),dt=["chart","hosts","alert"];function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ft(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var pt={CLEAR:0,WARNING:1,CRITICAL:2,UNINITIALIZED:3,UNDEFINED:4},vt=function(e){var t=e.chart,n=e.nodeId,r=e.nodeName,a=e.spaceSlug,l=e.roomSlug,i=e.alert,c=(0,he.s0)(),u=(0,ge.m3)(n),s=(0,o.useCallback)((function(){i?c(u,{state:{alertId:null===i||void 0===i?void 0:i.id}}):c(u)}),[u,i]),m="/spaces/".concat(a,"/rooms/").concat(l,"/alerts/").concat(null===i||void 0===i?void 0:i.id),f=i.current,v=i.name,g=i.previous;if("ERROR"===f.status)return o.createElement(ut,null,o.createElement(d.TextSmall,null,"For the alert"),o.createElement(xe.Z,{Component:it,as:st.rU,to:m},v),o.createElement(d.TextSmall,null,"for"),o.createElement(xe.Z,{Component:it,onClick:s},t.name),o.createElement(d.TextSmall,null,"on"),o.createElement(xe.Z,{Component:it,onClick:s},r),o.createElement(d.TextSmall,null,"we couldn't calculate the current value"),o.createElement(p.Z,{align:"bottom",content:"Please check your alert configuration"},o.createElement(d.Icon,{color:"nodeBadgeColor",size:"small",name:"information"})));if("REMOVED"===f.status)return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Alert"),o.createElement(xe.Z,{Component:it,as:st.rU,to:m},v),o.createElement(d.TextSmall,null,"for"),o.createElement(xe.Z,{Component:it,onClick:s},t.name),o.createElement(d.TextSmall,null,"on"),o.createElement(xe.Z,{Component:it,onClick:s},r),o.createElement(d.TextSmall,null,"is no longer available, state can't be assessed"));var b=pt[f.status]===pt.CLEAR;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Alert"),o.createElement(xe.Z,{Component:it,as:st.rU,to:m},v),o.createElement(d.TextSmall,null,"for"),o.createElement(xe.Z,{Component:it,onClick:s},t.name),o.createElement(d.TextSmall,null,"on"),o.createElement(xe.Z,{Component:it,onClick:s},r),b?o.createElement(d.TextSmall,null,"recovered"):o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,pt[g.status]===pt.CRITICAL?"was demoted":pt[g.status]===pt.WARNING?"escalated":pt[f.status]===pt.UNDEFINED?"transitioned":"was raised"),o.createElement(d.TextSmall,null,"to"),o.createElement(ct,{type:f.status}),pt[f.status]===pt.UNDEFINED&&o.createElement(d.TextSmall,null,"state")),o.createElement(d.TextSmall,null,"with value"),o.createElement(ct,{type:f.status,text:f.value_string,hollow:!0,padding:[0]}))},gt=function(e){var t=e.id,n=e.name,r=(0,be.uk)(),a=(0,b.tE)(t,"slug"),l="/spaces/".concat(r,"/rooms/").concat(a,"/home");return o.createElement(xe.Z,{Component:it,as:st.rU,to:l},n)},bt=function(e){var t=e.rooms;return t.map((function(e,n){return o.createElement(o.Fragment,{key:e.id},n>0&&(n<t.length-1?", ":" and "),o.createElement(gt,e))}))},yt=function(e){var t=e.rooms;if(!t.length)return null;var n=t.length>1?"rooms":"room";return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"on ",n),o.createElement(bt,{rooms:t}))},ht=function(e){var t=e.contexts;t.map((function(e,n){return o.createElement(o.Fragment,{key:e},n>0&&(n<t.length-1?", ":" and "),o.createElement(it,null,e))}))},Et=function(e){var t=e.contexts;if(!t.length)return null;var n=t.length>1?"contexts":"context";return o.createElement(d.TextSmall,null,"on ",n," ",o.createElement(ht,{contexts:t}))},xt={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},Ot=function(e){var t=e.start,n=e.end,r=(0,Ae.rA)().localeDateString;if(!t||!n)return null;var a=r(new Date(t),xt),l=r(new Date(n),xt);return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"(scheduled ",a," - ",l,")"))},wt={"silencing-rule-created":"created","silencing-rule-deleted":"deleted","silencing-rule-changed":"changed"},St=function(e){var t=e.rooms,n=void 0===t?[]:t,r=e.contexts,a=void 0===r?[]:r;return n.length||a.length?o.createElement(o.Fragment,null,!!n.length&&o.createElement(yt,{rooms:n}),!!n.length&&!!a.length&&o.createElement(d.TextSmall,null,"and ",o.createElement(Et,{contexts:a}))):null},Ct=function(e){var t,n=e.action,r=e.notification,a=e.user,l=e.room,i=e.context,c=((null===r||void 0===r||null===(t=r.silencing)||void 0===t?void 0:t.rule)||[])[0],u=null===a||void 0===a?void 0:a.name,s=(null===i||void 0===i?void 0:i.name)||[];return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Silencing rule"),o.createElement(it,null,c.name),o.createElement(St,{rooms:l,contexts:s}),o.createElement(d.TextSmall,null,"was ",wt[n]),o.createElement(lt,{user:u}),o.createElement(Ot,c))},Zt=n(62200),jt=function(e,t){var n,r;return(null===(n=e.target)||void 0===n?void 0:n[t])||(null===(r=e.target)||void 0===r?void 0:r.id)||e[t]||e.id},kt=function(e){return Array.isArray(e)?e[0].name||e[0].id:e.name||e.id},Pt=function(e){var t=e.statistics,n=(null===t||void 0===t?void 0:t.nodes)||{},r=n.live,a=n.stale,l=n.removed,i=n.total;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Space statistics. Nodes:"),o.createElement(d.TextSmall,{color:Zt.WV.live.statusTextSmallColor},r," live"),o.createElement(d.TextSmall,null,","),o.createElement(d.TextSmall,{color:Zt.WV.stale.statusTextSmallColor},a," stale"),o.createElement(d.TextSmall,null,","),o.createElement(d.TextSmall,{color:Zt.WV.offline.statusTextSmallColor},l," removed"),o.createElement(d.TextSmall,null,","),o.createElement(d.TextSmall,{strong:!0},i," total"))},It=(n(69810),n(86035),n(6973)),Tt=function(e){var t=e.stateColor,n=e.state;return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"became"),o.createElement(it,{color:t},n))},Dt=function(e){var t=e.stateColor,n=e.state;return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"was"),o.createElement(it,{color:t},n))},Ft={"node-created":Tt,"node-state-live":Tt,"node-state-stale":Tt,"node-state-offline":Tt,"node-removed":Dt,"node-deleted":Dt,"node-restored":Dt,default:Dt},Kt=function(e){var t,n=e.action,r=e.hosts,a=(void 0===r?[]:r)[0],l=a.id,i=a.name,c=(0,he.s0)(),u=(0,ge.m3)(l),s=(0,o.useCallback)((function(){return c(u)}),[u]),m=Ft[n],f=n.split("-").at(-1),p=null===(t=It.B[f])||void 0===t?void 0:t.statusTextSmallColor;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Node"),o.createElement(xe.Z,{Component:it,onClick:s},i),o.createElement(m,{stateColor:p,state:f}))},Nt=function(e){var t=e.room,n=(0,b.Hm)("untouchable");return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"was added to",n?" room":""),o.createElement(it,null,n?kt(t):"this room"))},zt=function(e){var t=e.room,n=(0,b.Hm)("untouchable");return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"was removed from",n?" room":""),o.createElement(it,null,n?kt(t):"this room"))},At={"room-created":function(){return o.createElement(d.TextSmall,null,"was created")},"room-deleted":function(){return o.createElement(d.TextSmall,null,"was deleted")},"room-node-added":Nt,"room-node-removed":zt,"room-user-added":Nt,"room-user-removed":zt},Lt=function(e){var t,n=e.action,r=e.hosts,a=void 0===r?[]:r,l=e.Netdata,i=e.user,c=At[n],u=null===(t=a[0])||void 0===t?void 0:t.name;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Node"),o.createElement(it,null,u),o.createElement(c,{room:l.room}),o.createElement(lt,{user:null===i||void 0===i?void 0:i.name}))},Rt=function(e){var t=e.action,n=e.Netdata,r=e.user,a=At[t];return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(r,"name")),o.createElement(a,{room:n.room}),o.createElement(lt,{hide:!r.target,user:r.name}))},Mt=function(e){var t=e.action,n=e.Netdata,r=e.user,a=At[t];return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Room"),o.createElement(it,null,kt(n.room)),o.createElement(a,null),o.createElement(lt,{user:r.name}))},Bt={"alert-node-transition":function(e){var t=e.chart,n=e.hosts,r=e.alert,a=(0,Y.Z)(e,dt);return n.map((function(e,n){var l=e.id,i=e.name,c=ft(ft({},r),{},{name:r.name[n]},r.current?{current:ft(ft({},r.current),r.current.status?{status:r.current.status[n]||r.current.status[0]}:{})}:{});return o.createElement(vt,(0,y.Z)({key:l,chart:t,nodeId:l,nodeName:i,alert:c},a))}))},"node-created":Kt,"node-state-live":Kt,"node-state-stale":Kt,"node-state-offline":Kt,"node-removed":Kt,"node-deleted":Kt,"node-restored":Kt,"agent-connected":function(e){var t=e.agentId;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t)," ",o.createElement(d.TextSmall,null,"has connected to Netdata"))},"agent-disconnected":function(e){var t=e.agentId,n=e.reason;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t),o.createElement(d.TextSmall,null,"has disconnected from Netdata with reason: \u201c",n,"\u201d"))},"agent-authenticated":function(e){var t=e.agentId;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t),o.createElement(d.TextSmall,null,"has successfully authenticated"))},"agent-authentication-failed":function(e){var t=e.agentId;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t),o.createElement(d.TextSmall,null,"has failed to authenticate"))},"room-created":Mt,"room-deleted":Mt,"room-node-added":Lt,"room-node-removed":Lt,"room-user-added":Rt,"room-user-removed":Rt,"space-created":function(e){var t=e.Netdata,n=e.user;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Space"),o.createElement(it,null,t.space.name||t.space.id),o.createElement(d.TextSmall,null,"was created"),o.createElement(lt,{user:n.name}))},"space-statistics":Pt,"space-user-added":function(e){var t=e.Netdata,n=e.user,r=((null===t||void 0===t?void 0:t.inviter)||{}).name;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(n,"name")),o.createElement(d.TextSmall,null,"was added to this space"),r&&o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"by invite of"),o.createElement(it,null,r)))},"space-user-changed":function(e){var t,n=e.user;if(!(null===(t=n.changes)||void 0===t||!t.roles)&&1===Object.keys(n.changes).length){var r=n.changes.roles.length>1,a=n.changes.roles.join(", ");return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User ",r?"roles":"role"," for"),o.createElement(it,null,jt(n,"name")),o.createElement(d.TextSmall,null,r?"were":"was"," changed to"),o.createElement(it,null,a),o.createElement(lt,{hide:!n.target,user:n.name}))}return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(n,"name")),o.createElement(d.TextSmall,null,"was modified"))},"space-user-invited":function(e){var t=e.user;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(t,"email")),o.createElement(d.TextSmall,null,"was invited to this space"),o.createElement(lt,{user:t.name}))},"space-user-removed":function(e){var t=e.user,n=(t.target||{}).name;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(t,"name")),o.createElement(d.TextSmall,null,"was removed from this space"),n&&o.createElement(lt,{user:t.name}))},"space-user-uninvited":function(e){var t=e.event,n=e.user;return"space-invite-expired"===t.reason?o.createElement(ut,null,o.createElement(d.TextSmall,null,"The invite for"),o.createElement(it,null,jt(n,"email")),o.createElement(d.TextSmall,null,"to this space has expired")):o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(n,"email")),o.createElement(d.TextSmall,null,"was uninvited from this space"),o.createElement(lt,{hide:!n.target,user:n.name}))},"silencing-rule-created":Ct,"silencing-rule-deleted":Ct,"silencing-rule-changed":Ct},_t=function(e){var t=e.data,n=t.source,r=n.action,a=n.roomId,l=n.space,i=(0,be.vu)(l.id,"slug"),c=(0,b.tE)(a,"slug"),u=Bt[r];return u?o.createElement(u,(0,y.Z)({},t.source,{spaceSlug:i,roomSlug:c})):o.createElement(ut,null,o.createElement(d.Text,null,"Event")," ",o.createElement(d.Text,{strong:!0},r)," ",o.createElement(d.Text,null,"emitted"))},Vt=["value"],Ut=["visualization","type","value"],Wt={bar:tt,"bar-with-integer":tt,duration:tt,pill:rt,number:$e,string:$e,feedTemplate:_t,datetime:function(e){var t=e.value,n=(0,Y.Z)(e,Vt),r=new Date(t),a=(0,Ae.rA)(),l=a.localeTimeString,i=a.localeDateString,c=isNaN(r.valueOf())?"Missing date & time":"".concat(i(r,{long:!1})," ").concat(l(r,{secs:!0}));return o.createElement($e,(0,y.Z)({value:c},n))},value:$e},Ht={bar:tt,pill:rt,value:$e,feedTemplate:_t},Qt=function(e){var t=e.visualization,n=e.type,r=e.value,a=(0,Y.Z)(e,Ut),l=Ht[t]||Wt[n]||Ht.value;return o.createElement(l,(0,y.Z)({value:r,type:n},a))},qt=["displayName","name","sortable","sticky","units","max","maxValue","dummy","cellSize","valueOptions","summary","type","visualization","wrap"];function Gt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Gt(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Gt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Jt={sum:"sum",min:"min",max:"max",extent:"extent",mean:"mean",median:"median",unique:"unique",uniqueCount:"uniqueCount",count:"count"};function Yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yt(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var en=(0,o.memo)(d.NetdataTable,(function(e,t){return(0,We.ZP)(e,t,{keep:["columnVisibility","data","fnQuery","sortBy","virtualizeOptions"]})})),tn={cellStyles:{height:"46px"},headStyles:{height:"44px"},styles:{verticalAlign:"middle"}},nn=(0,o.memo)((0,o.forwardRef)((function(e,t){var n=e["data-testid"],r=e.paramsKey,l=e.refetch,i=e.onShowInfo,u=(0,c.ZQ)(r),s=u.columns,m=u.sortedColumns,f=u.sortColumn,p=u.sortDirection,v=u.columnVisibility,g=u.pinnedColumns,y=u.loading,h=u.totalSize,E=u.anchor,x=u.retentionWarning,O=u.groupByColumns,w=(0,o.useState)(""),S=(0,a.Z)(w,2),C=S[0],Z=S[1],k=L(r),P="feed"===r.extraKey,T=function(e,t,n){var r=n.groupBy;return(0,o.useMemo)((function(){return e.reduce((function(e,n){var a=t[n],l=a.displayName,i=a.name,c=a.sortable,u=a.sticky,s=a.units,m=a.max,f=a.maxValue,p=a.dummy,v=a.cellSize,g=a.valueOptions,b=a.summary,y=a.type,h=a.visualization,E=a.wrap,x=void 0!==E&&E,O=(0,Y.Z)(a,qt);return p?e:[].concat((0,j.Z)(e),[Xt(Xt(Xt({},O),{},{id:l,accessorFn:function(e){return e[n]},cell:function(e){var t=e.getValue,n=e.row,a=e.cell.getIsAggregated(),l=t(),c=a&&(Jt[b]===Jt.count||Jt[b]===Jt.uniqueCount||!Jt[b]);return o.createElement(Qt,{description:i,data:n.original,maxValue:m||f.value,padding:n.depth>0?[0,0,0,2.5*n.depth]:[0],strong:a,value:c?"".concat(l,"x"):l,tooltipValue:c?"".concat(l," ").concat(1===l?"item":"items"," associated with ").concat(r," grouping"):l,valueOptions:c?Xt(Xt({},g),{},{transform:"none"}):g,type:y,visualization:h,wrap:x})},header:o.createElement(d.Flex,{column:!0},o.createElement(d.TextMicro,{strong:!0},l),s&&o.createElement(d.TextNano,null,"(",s,")")),enableSorting:c,aggregationFn:Jt[b]||Jt.count},v),{},{meta:Xt({biggestCellIndexPerColumn:null===f||void 0===f?void 0:f.index,sticky:u,styles:{verticalAlign:"middle"}},l!==i?{tooltip:i}:{})})])}),[])}),[t,r])}(m,s,$t({},P?{}:{groupBy:C})),D=(0,c.CE)(r),F=(0,b.UL)(),K=(0,c.fg)($t({key:"sortColumn"},r)),N=(0,a.Z)(K,2),z=N[0],A=N[1],R=(0,c.fg)($t({key:"sortDirection"},r)),M=(0,a.Z)(R,2),B=M[0],_=M[1],V=(0,c.kU)($t({key:"query"},r)),U=(0,a.Z)(V,2),W=U[0],H=U[1],Q=(0,c.I_)($t({key:"columnVisibility"},r)),q=(0,I.I0)(z,{defaultValue:[],key:F,extraKey:"".concat(D,"RangeFilter")}),G=(0,a.Z)(q,2)[1],X=(0,o.useMemo)((function(){return z||f?[{id:z||f,desc:"descending"===(B||p)}]:[]}),[f,p,z,B]),J=(0,o.useCallback)((function(e){var t=e(),n=(0,a.Z)(t,1)[0],r=(null===n||void 0===n?void 0:n.id)||r,o=null!==n&&void 0!==n&&n.desc?p||"descending":"ascending";A(r),_(o),z!==r&&G([])}),[z,G,f,p]),$=(0,o.useCallback)((function(e){Q((function(t){return $t($t({},t),e())}))}),[]),ee=(0,o.useMemo)((function(){return{left:g}}),[g]),te=(0,o.useMemo)((function(){return{overscan:10,hasNextPage:h>k.length,loading:y,loadMore:function(){y||h<=k.length||l({anchor:E,merge:!0})},warning:x}}),[k.length,y]),ne=(0,o.useCallback)((function(e){var t=e.data;return i({data:t.json||t,columns:s})}),[]);return o.createElement(en,{groupByColumns:O,onClickRow:ne,autoFixedColumns:!0,columnPinning:ee,columnVisibility:v,data:k,dataColumns:T,dataGa:"functions",enableColumnPinning:!!g.length,enableColumnVisibility:!P,enableCustomSearch:!P,enablePinning:!P&&!!g.length,enableResize:!0,enableSorting:!P,globalFilter:P?null:W,onColumnVisibilityChange:$,onGlobalSearchChange:P?null:H,onGroupByChange:P?null:Z,onSortingChange:P?null:J,sortBy:X,testPrefix:n,virtualizeOptions:te,meta:tn,ref:t})})),(function(){return!0})),rn=n(18997),an=n(4808),on=(n(26833),n(50361)),ln=n.n(on),cn=n(38609),un=n(81732),sn=n(85672),dn=["defaultSortColumn","updateEvery","merge","groupBy","showIds","pagination","items"],mn=["data","type","updateEvery"];function fn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function pn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var vn={minSize:sn.bb.xs,maxSize:sn.bb.xl},gn={bar:{size:sn.bb.xs},value:{minSize:sn.bb.sm,size:sn.bb.md},feedTemplate:{size:sn.bb.xxl,minSize:sn.bb.lg,maxSize:5e3},pill:{size:sn.bb.md,minSize:sn.bb.md}},bn=function(e,t,n){var r=t.defaultSortColumn,a=t.updateEvery,o=t.merge,l=t.groupBy,i=t.showIds,c=void 0===i||i,u=t.pagination,s=t.items,d=(0,Y.Z)(t,dn),m=ln()(o?(0,cn.Z)(n.columns,t.columns):t.columns),f={},p=Object.keys(m).reduce((function(e,t){var n=m[t],r=n.id,a=n.name,o=n.sticky,l=n.visible,i=n.index;return n.displayName=c?r||t:a,e.columnVisibility[n.displayName]=l,o&&e.pinnedColumns.push(n.displayName),n.valueOptions=n.valueOptions||{},n.cellSize=function(e,t){var n=e.visualization;return e.fullWidth?gn.feedTemplate:t?{minSize:sn.bb.xs,maxSize:sn.bb.md,size:sn.bb.xs}:pn(pn({},vn),gn[n]||gn.xs)}(pn(pn({},n),{},{visualization:n.visualization||n.type}),n.uniqueKey),"undefined"!==typeof i&&(f[i]=t),e}),{columnVisibility:{},pinnedColumns:[]}),v=t.data.map((function(e){return e.reduce((function(e,t,n){var r,a,o=f[n];if(!o)return e;var l=m[o],i=isNaN(t)?(null===t||void 0===t?void 0:t.length)||0:t;"flexTemplate"!==l.type&&(!l.maxValue||i>l.maxValue.value)&&(l.maxValue={index:n,value:i});var c=(null===l||void 0===l||null===(r=l.range)||void 0===r?void 0:r.min)||t,u=(null===l||void 0===l||null===(a=l.range)||void 0===a?void 0:a.max)||l.max||t;return l.range={min:c<t?c:t,max:u>t?u:t},e[o]=t,e}),{})})),g=o?(n.data||[]).concat(v):v,b=null!==u&&void 0!==u&&u.enabled&&u.column?{anchor:g[g.length-1][m[u.column].index]}:{};e(pn(pn(pn(pn(pn({},un.Zn.table),d),{},{groupByColumns:l,data:g,columns:o?(0,cn.Z)(n.columns,m):m,updatedAt:(new Date).getTime(),updateEvery:a,sortedColumns:Object.values(f),sortColumn:r,sortDirection:r?m[r].sort:"descending"},p),b),{},{totalSize:(null===s||void 0===s?void 0:s.matched)||g.length,loading:!1,loaded:!0}))},yn=function(e,t){var n=t.data,r=t.type,a=t.updateEvery,o=(0,Y.Z)(t,mn);e(pn(pn(pn({},un.Zn.default),o),{},{data:n,updateEvery:a,type:r,loading:!1,loaded:!0}))};function hn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function En(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var xn={default:{fetch:an.Ru,isEnabled:function(e){var t=e.nodeIds,n=e.fn;return!(null===t||void 0===t||!t.length)&&!!n}},feed:{fetch:an.bj,isEnabled:function(e){var t=e.roomId,n=e.fn;return!!t&&!!n}}},On=function(){var e=(0,I.by)(),t=e.after,n=e.before;return(0,o.useMemo)((function(){if(t>0)return[{after:t,before:n},t,n];var e=Date.now();return[{after:e+1e3*t,before:e},t,n]}),[t,n])},wn=n(92501),Sn=(n(47042),n(26495)),Cn=n(36337),Zn=n(19221),jn=n(23148),kn=(0,D.cn)({key:"feedChart",default:{navigation:"pan"}});function Pn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function In(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Tn=(0,D.CG)({key:"feedChartState",get:function(e){var t=e.key;return function(e){var n=(0,e.get)(kn);return t?n[t]:n}},set:function(e){var t=e.key;return function(e,n){(0,e.set)(kn,(function(e){return t?In(In({},e),{},(0,u.Z)({},t,n)):In(In({},e),n)}))}}}),Dn=function(e){return(0,D.sJ)(Tn({key:e}))},Fn=function(e){return(0,D.Zl)(Tn({key:e}))},Kn=(n(41203),["icon","hoverIndicator","padding"]);function Nn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var An=(0,s.default)(d.Button).attrs((function(e){return{flavour:"borderless",iconColor:e.active?"textDescription":"border",iconSize:"small",padding:[.5],small:!0}})).withConfig({displayName:"styled__Button",componentId:"sc-8s0lqd-0"})(["&&{background-color:",";height:20px;width:20px;&:hover{background-color:",";.button-icon__color{fill:",";}}}"],(function(e){var t=e.theme;return e.active?(0,d.getColor)("borderSecondary")({theme:t}):"initial"}),(function(e){var t=e.theme;return(0,d.getColor)("borderSecondary")({theme:t})}),(function(e){var t=e.theme;return(0,d.getColor)("textDescription")({theme:t})})),Ln=(0,s.default)(d.Flex).attrs({padding:[.5],gap:1,round:!0,border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"styled__Container",componentId:"sc-8s0lqd-1"})(["position:absolute;top:18px;right:8px;background:",";&:hover{background:",";}"],(0,d.getRgbColor)("elementBackground",.5),(0,d.getColor)("elementBackground")),Rn=function(e){var t=e.active,n=e.disabled,r=e.defaultColor;return t?"textDescription":n?"disabled":void 0===r?"border":r},Mn=(s.default.button.attrs((function(e){var t=e.icon,n=e.hoverIndicator,r=void 0===n||n,a=e.padding,o=void 0===a?0:a,l=(0,Y.Z)(e,Kn);return zn(zn({},l),{},{children:t,active:l.active||l["aria-expanded"],hoverIndicator:r,padding:o})})).withConfig({displayName:"styled__StyledButton",componentId:"sc-8s0lqd-2"})(["border:initial;padding:",";height:fit-content;line-height:0;background:",";cursor:pointer;svg{fill:",";stroke:",";}"," &:hover{",";svg{fill:",";stroke:",";}}"],(function(e){return e.padding}),(function(e){var t=e.theme;return e.active?(0,d.getColor)("borderSecondary")({theme:t}):"initial"}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?"none":(0,d.getColor)(Rn({active:t,disabled:n}))({theme:r})}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?(0,d.getColor)(Rn({active:t,disabled:n}))({theme:r}):"none"}),(function(e){var t=e.active,n=e.hoverIndicator;return(t||n)&&"\n border-radius: 4px;\n "}),(function(e){var t=e.theme,n=e.hoverIndicator,r=e.disabled;return n&&!r&&"background: ".concat((0,d.getColor)("borderSecondary")({theme:t}),";")}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?"none":(0,d.getColor)(Rn({defaultColor:"textDescription",disabled:r}))({theme:t})}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?(0,d.getColor)(Rn({defaultColor:"textDescription",disabled:r}))({theme:t}):"none"})),["testIdPrefix"]),Bn=(0,o.forwardRef)((function(e,t){var n,r=e.testIdPrefix,l=(0,Y.Z)(e,Mn),i=(0,I.I0)(),c=(0,a.Z)(i,2),u=c[0],s=u.after,d=u.before,m=c[1],f=[Dn(n="navigation"),Fn(n)],p=(0,a.Z)(f,2),v=p[0],g=p[1],b=(0,o.useCallback)((function(e){var t=s,n=d;if(s<0){var r=Date.now();t=r+1e3*s,n=r}var a=e*Math.round((n-t)/4);m({after:t+a,before:n-a})}),[s,d]),h=s>0&&Math.abs(d-s)<2e3||-1===s;return o.createElement(Ln,(0,y.Z)({"data-testid":"chartToolbox","data-track":"chart-toolbox::hover-chart::".concat(r),"data-toolbox":"true",ref:t},l),o.createElement(An,{active:"pan"===v,"data-testid":"chartToolbox-pan","data-track":"chart-toolbox::pan-click::".concat(r),icon:"panTool",onClick:function(){return g("pan")},title:"Pan"}),o.createElement(An,{active:"highlight"===v,"data-testid":"chartToolbox-highlight","data-track":"chart-toolbox::highlight-click::".concat(r),icon:"highlightArea",onClick:function(){return g("highlight")},title:"Highlight"}),o.createElement(An,{active:"zoom"===v,"data-testid":"chartToolbox-zoom","data-track":"chart-toolbox::zoom-click::".concat(r),disabled:h,icon:"dragHorizontal",onClick:function(){g("zoom")},title:"Select and zoom"}),o.createElement(An,{"data-testid":"chartToolbox-zoomIn","data-track":"chart-toolbox::zoom-in-click::".concat(r),disabled:h,icon:"zoomIn",onClick:function(){b(1)},title:"Zoom in"}),o.createElement(An,{"data-testid":"chartToolbox-zoomOut","data-track":"chart-toolbox::zoom-out-click::".concat(r),icon:"zoomOut",onClick:function(){b(-1)},title:"Zoom out"}),o.createElement(An,{"data-testid":"chartToolbox-zoomReset","data-track":"chart-toolbox::zoom-reset-click::".concat(r),disabled:-900===s&&0===d,icon:"zoomReset",onClick:function(){m({after:-900,before:0})},title:"Zoom reset"}))}));function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Un={after:null,before:null};jn.kL.register(Cn.Z,jn.vn,jn.ZL,jn.uw,jn.De,jn.f$,jn.FB,jn.u,Zn.ZP);var Wn=function(e){var t,n=e.paramsKey,r=e.testIdPrefix,l=(0,o.useRef)(),i=(0,o.useContext)(s.ThemeContext),u=(0,I.I0)(),m=(0,a.Z)(u,2),p=m[0],v=m[1],g=(0,o.useState)([]),b=(0,a.Z)(g,2),y=b[0],h=b[1],E=(0,o.useState)(Un),x=(0,a.Z)(E,2),O=x[0],w=x[1],S=(0,o.useState)(!1),C=(0,a.Z)(S,2),Z=C[0],k=C[1],P=(0,o.useState)(!1),T=(0,a.Z)(P,2),D=T[0],F=T[1],K=(0,o.useState)([]),N=(0,a.Z)(K,2),z=N[0],A=N[1],L=(0,o.useState)(null),R=(0,a.Z)(L,2),M=R[0],B=R[1],_=(0,o.useState)("second"),V=(0,a.Z)(_,2),U=V[0],W=V[1],H=(0,f.Z)(!1),Q=(0,a.Z)(H,4),q=Q[0],G=Q[2],X=Q[3],J=(0,c.ZQ)(n).aggregations,Y=Dn().navigation,$=(0,Ae.rA)(),ee=$.localeTimeString,te=$.localeDateString,ne=On(),re=(0,a.Z)(ne,1)[0],ae=re.before-re.after,oe=(0,o.useMemo)((function(){var e=Date.now();return{min:re.after-ae,max:0===p.before?re.before:e<re.before+ae?e:re.before+ae}}),[re.after,re.before,p.before]),le=[{backgroundColor:(0,d.getColor)("primary")({theme:i}),borderWidth:0,data:y,label:"Histogram",maxBarThickness:50,minBarLength:0}];(0,o.useEffect)((function(){var e;if(null!==J&&void 0!==J&&null!==(e=J.event_histogram)&&void 0!==e&&null!==(e=e.hits)&&void 0!==e&&e.buckets){var t=J.event_histogram.hits.buckets.reduce((function(e,t){var n=t.key,r=t.doc_count;return{data:[].concat((0,j.Z)(e.data),[r]),labels:[].concat((0,j.Z)(e.labels),[n])}}),{data:[],labels:[]}),n=(0,He.BZ)(p.after,p.before)||{};h(t.data),A(t.labels),B(null),W(n.unit)}}),[null===J||void 0===J||null===(t=J.event_histogram)||void 0===t||null===(t=t.hits)||void 0===t?void 0:t.buckets]);var ie=(0,o.useMemo)((function(){return{animation:!1,interaction:{axis:"x"},maintainAspectRatio:!1,plugins:{annotation:{annotations:Vn({},O.after&&O.before?{annotation:{type:"box",backgroundColor:"rgba(128,128,128,0.3)",borderDash:[1,5,1,1],borderWidth:1,xMax:O.before,xMin:O.after,xScaleID:"x"}}:{})},legend:{align:"start",display:!1,position:"bottom"},zoom:{limits:{x:oe},pan:{enabled:"pan"===Y&&!Z,mode:"x",onPanStart:function(e){e.chart.canvas.style.cursor="grabbing"},onPanComplete:function(e){var t=e.chart;t.canvas.style.cursor="default";var n=t.scales.x,r=n.min,a=n.max;B({min:Math.round(r),max:Math.round(a)}),v({after:Math.round(r),before:Math.round(a)}),t.update()},threshold:1},zoom:{drag:{enabled:"zoom"===Y||Z},mode:"x",onZoomStart:function(e){e.chart.canvas.style.cursor="col-resize"},onZoomComplete:function(e){var t=e.chart;if("zoom"===Y||Z){t.canvas.style.cursor="default";var n=t.scales.x,r=n.min,a=n.max;v({after:Math.round(r),before:Math.round(a)}),k(!1)}}}}},responsive:!0,scales:{x:Vn({type:"time",grid:{drawBorder:!0,drawOnChartArea:!1,drawTicks:!0,offset:!1},parsing:!1,ticks:Vn({color:(0,d.getColor)("textLite")({theme:i}),font:{size:11},autoSkip:!0,maxTicksLimit:20},"minute"===U&&ae>=1e3*sn.Kl?{callback:function(e){var t=te(e,{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0}).split("/").reverse().slice(1).join("-"),n=ee(e,{secs:!1});return"".concat(t," ").concat(n)}}:{}),time:{displayFormats:{week:"yyyy-MM-dd",day:"MM-dd",hour:"MM-dd HH:mm",minute:"HH:mm",second:"HH:mm:ss"},tooltipFormat:"yyyy-MM-dd HH:mm:ss",unit:U||"second"}},M?{min:M.min,max:M.max}:{}),y:{beginAtZero:!0,ticks:{precision:0,color:(0,d.getColor)("textLite")({theme:i}),font:{size:11}}}}}}),[O,ae,Z,Y,M,B,U,oe]);if((0,o.useEffect)((function(){var e=function(e){"Shift"===e.key&&(e.preventDefault(),k(!0))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[]),!y.length)return null;return o.createElement(d.Flex,{position:"relative",height:{min:50},onMouseEnter:G,onMouseLeave:X},q&&o.createElement(Bn,{testIdPrefix:r}),o.createElement(Sn.$Q,{data:{datasets:le,labels:z},onMouseDown:function(e){if(e.preventDefault(),"highlight"===Y){F(!0);var t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;n.canvas.style.cursor="crosshair",w({after:Math.round(n.scales.x.getValueForPixel(t)),before:null})}},onMouseMove:function(e){if(e.preventDefault(),"highlight"===Y&&D){var t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;w((function(e){return Vn(Vn({},e),{},{before:Math.round(n.scales.x.getValueForPixel(t))})}))}},onMouseUp:function(e){e.preventDefault(),F(!1);var t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;n.canvas.style.cursor="default",O.after===Math.round(n.scales.x.getValueForPixel(t))?w(Un):w(O)},options:ie,ref:l}))},Hn=["sorter"];function Qn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Gn=function(e){return{label:e,value:e}},Xn=function(e){var t=e.paramsKey,n=e.initData,r=e.initFilter,l=(0,c.ZQ)(t),i=l.charts,m=l.loading,f=L(t),p=(0,o.useContext)(s.ThemeContext),v=Object.keys(i).map(Gn),g=P(t.extraKey,Gn),b=(0,o.useState)(n),y=(0,a.Z)(b,2),h=y[0],E=y[1],x=(0,o.useState)(r),O=(0,a.Z)(x,2),w=O[0],S=O[1],C=(0,c.CE)(t);(0,o.useEffect)((function(){E(n)}),[n]),(0,o.useEffect)((function(){S(r)}),[r]);var Z=(0,o.useMemo)((function(){if(!i[h])return{datasets:[],labels:[]};var e=i[h].columns,t=null===f||void 0===f?void 0:f.reduce((function(t,n){var r=n[w];return t[r]?qn(qn({},t),{},(0,u.Z)({},r,e.reduce((function(e,t){var r;return qn(qn({},e),{},(r={},(0,u.Z)(r,t,e[t]+n[t]),(0,u.Z)(r,"sorter",e.sorter+n[t]),r))}),t[r]))):qn(qn({},t),{},(0,u.Z)({},r,e.reduce((function(e,t,a){var o;return qn(qn(qn({},e),0===a?{label:r,sorter:n[t]}:{}),{},(o={},(0,u.Z)(o,t,n[t]),(0,u.Z)(o,"sorter",e.sorter?e.sorter+n[t]:n[t]),o))}),{})))}),{}),n=Object.values(t).sort((function(e,t){return t.sorter-e.sorter})).slice(0,15).map((function(e){e.sorter;return qn({},(0,Y.Z)(e,Hn))}));return{datasets:i[h].columns.map((function(e,t){return{backgroundColor:sn.vK[t],borderWidth:0,data:n.map((function(t){return t[e]})),label:e,maxBarThickness:50,minBarLength:0}})),labels:n.map((function(e){return e.label}))}}),[C,i,h,w,f]),j={animation:!1,maintainAspectRatio:!1,plugins:{legend:{position:"bottom",labels:{boxWidth:4,boxHeight:20,title:{color:(0,d.getColor)("textLite")({theme:p})}}}},responsive:!0,scales:{x:{stacked:!0},y:{stacked:!0}}};return o.createElement(d.Flex,{column:!0,"data-testid":"functionsCharts",gap:3,width:"50%"},o.createElement(d.Flex,{alignItems:"center","data-testid":"functionsChart".concat(h,"-selects"),gap:2},o.createElement(d.Select,{"data-ga":"functions-chart-".concat(h,"::select-data::functions-view"),"data-testid":"functionsChart".concat(h,"-dataSelect"),isLoading:m,onChange:function(e){var t=e.value;return E(t)},options:v,styles:{size:"tiny",minWidth:120},value:{label:h,value:h}}),o.createElement(d.Text,{"data-testid":"functionsChart".concat(h,"-perLabel"),color:"textLite"},"per"),o.createElement(d.Select,{"data-ga":"functions-chart-".concat(w,"::select-filter::functions-view"),"data-testid":"functionsChart".concat(w,"-filterSelect"),isLoading:m,onChange:function(e){var t=e.value;return S(t)},options:g,styles:{size:"tiny",minWidth:120},value:{label:w,value:w}})),o.createElement(d.Flex,{position:"relative",height:{min:60},width:{min:"100%"}},o.createElement(Sn.$Q,{data:Z,options:j})))},Jn=["margin","defaultCharts"],Yn=["paramsKey","testIdPrefix","availableFns","availableFnsLoaded","hasError"],$n={extraKey:"fn"},er={fn:{Chart:function(e){var t=e.margin,n=e.defaultCharts,r=(0,Y.Z)(e,Jn);return o.createElement(d.Flex,{gap:6,margin:t},n.map((function(e,t){var n=(0,a.Z)(e,2),l=n[0],i=n[1];return o.createElement(Xn,(0,y.Z)({key:t,initData:l,initFilter:i},r))})))},loadingMessage:"Loading function..."},feed:{Chart:Wn,loadingMessage:"Loading events..."}},tr={table:nn},nr=(0,o.memo)((function(e){var t=e.paramsKey,n=void 0===t?$n:t,l=e.testIdPrefix,i=void 0===l?"functions":l,u=e.availableFns,s=e.availableFnsLoaded,m=e.hasError,f=(0,Y.Z)(e,Yn),p=er[n.extraKey]||er.fn,v=p.Chart,g=p.loadingMessage,h=(0,c.Hv)(n),E=(0,a.Z)(h,2),x=E[0],O=E[1],w=(0,I.c6)(n),S=(0,c.ZQ)(n),C=S.loaded,Z=S.data,j=S.error,k=S.type,P=S.retentionWarning,T=S.defaultCharts,D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,a.Z)(e,1)[0],n=(0,ge.bV)(t,"name");return 1===e.length&&n?"on ".concat(n):"on your selected node"}(w);(0,o.useEffect)((function(){var e;null!==x&&void 0!==x&&x.length||null===u||void 0===u||null===(e=u[0])||void 0===e||!e.name||m||O([u[0].name])}),[s,x]);var F=(0,ke.useHovered)({},[C]),K=(0,a.Z)(F,2),N=K[0],z=K[1],A=(0,Pe.Z)();(0,o.useEffect)((function(){A(z)}),[z]);var L=function(e,t,n){var l=(0,be.th)(),i=(0,b.vf)(),u=(0,c.T2)(n),s=(0,c.e6)(n),d=(0,c.mO)(n),m=(0,a.Z)(d,2),f=m[0],p=m[1],v=(0,o.useRef)();v.current=f;var g=function(e){var t=e.data,n=void 0===t?{}:t;(r[n.type]||yn)(p,n,v.current)},y=xn[t]||xn.default,h=y.fetch,E=y.isEnabled,x=On(),O=(0,a.Z)(x,3),w=O[0],S=O[1],C=O[2],Z=(0,o.useRef)();Z.current=w;var j=(0,b.UL)(),k=(0,I.by)(null,{key:j,extraKey:"".concat(t||n.extraKey,"Filters")}),P=(0,ge.Xw)(e),T=(0,je.zp)(),D=(0,a.Z)(T,1)[0].loading;return(0,rn.Z)((function(){return{enabled:!D&&E({nodeIds:e,fn:t,roomId:j}),fetch:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return h(En(En(En(En({roomId:j,spaceId:l,nodeIds:e,cloudNodeIds:P,fn:t,roomSlug:i},k),Z.current),n),{},{acceptedParams:f.acceptedParams}))},onStart:function(){return p({loading:!0})},onFail:function(e){var t;null!==(t=e)&&void 0!==t&&null!==(t=t.response)&&void 0!==t&&t.data&&(e=e.response.data),p({error:e,loading:!1,loaded:!0})},onReceive:g,polling:u||!1,pollingOptions:{pollingInterval:1e3*(s||f.updateEvery),shouldPause:!0},force:!0}}),[j,null===e||void 0===e?void 0:e.length,null===e||void 0===e?void 0:e[0],t,u,u&&s,!!f.aggregations&&k,S,C,D])}(w,x[0],n);if(!C||!s)return o.createElement(ve.Z,{title:g,"data-testid":"".concat(i,"Loading")});if(m)return o.createElement(wn.NY,{title:"Functions couldn't be loaded",message:"We couldn't find any available functions."});if(j&&"canceled"!==j)return"ErrNodeResourceNotFound"===(null===j||void 0===j?void 0:j.errorMsgKey)?o.createElement(Oe.Z,{message:"Please review your selection and try again.",title:"".concat("feed"===n.extraKey?"Events are":'Function "'.concat(x,'" is')," not available ").concat(D,".")}):o.createElement(wn.NY,{title:"".concat("feed"===n.extraKey?"Events":"Functions"," couldn't be loaded"),message:"ErrForbidden"===(null===j||void 0===j?void 0:j.errorMsgKey)?"Forbidden":""});var R=tr[k]||tr.table;return o.createElement(d.Box,{overflow:{horizontal:"hidden",vertical:"auto"},column:!0,padding:[4,4,0],gap:2},o.createElement(Ue,{nodeIds:w,onRefresh:L,paramsKey:n}),o.createElement(v,{paramsKey:n,testIdPrefix:i,defaultCharts:T}),C&&null!==Z&&void 0!==Z&&Z.length?o.createElement(R,(0,y.Z)({"data-testid":"".concat(i,"Component"),paramsKey:n,refetch:L,ref:N},f)):o.createElement(d.Flex,{column:!0,justifyContent:"center",alignItems:"center",alignSelf:"center",margin:["feed"===n.extraKey?3:30,0,0],gap:3},o.createElement(d.H3,null,"No results to display"),o.createElement(d.Text,{color:"textDescription",textAlign:"center"},"Double-check your search or filters and dates and try again with different conditions"),P&&o.createElement(d.Text,{color:"text",textAlign:"center"},P)))})),rr=nr,ar=n(24533),or=["paramsKey","hasError","refreshAvailableFns","availableFnsLoaded","availableFns"];function lr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ir(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lr(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var cr=function(e){var t=(0,je.Hu)();return o.createElement(d.Button,(0,y.Z)({label:"Get a fresh agent token",onClick:t},e))},ur="Functions expose sensitive information about your systems and applications. To protect your privacy, Netdata exposes this information only to logged-in users and claimed agents. When viewing Functions directly on a Netdata Agent UI, this information is sent directly from the Netdata Agent to your web browser, without exposing it to any third parties.",sr={notLoggedIn:{title:"Sign in to Netdata to use Functions",description:ur,footer:o.createElement(Ce.Z,null)},notClaimed:{title:"Connect this agent to Netdata to use Functions",description:ur,footer:o.createElement(Ze.Z,null)},noAccess:{title:"This agent belongs to a Netdata Space you are not member of",description:ur,footer:o.createElement(d.TextBig,{color:"textDescription"},"Ask for an invitation from the administrators of the Netdata Space of the agent to use functions.")},bearerError:{title:"You are not authorized to use Functions",description:ur,footer:o.createElement(cr,null)}},dr={extraKey:"fn"},mr=["paramsKey"],fr={extraKey:"feed"},pr={fn:{Component:function(e){var t=e.paramsKey,n=void 0===t?dr:t,r=e.hasError,l=e.refreshAvailableFns,i=e.availableFnsLoaded,u=e.availableFns,s=(0,Y.Z)(e,or),d=(0,I.H7)(n),m=(0,I.wT)(n),f=(0,a.Z)(m,2),p=f[0],v=f[1],g=(0,ge.M2)(d),b=Ee(n),h=(0,c.CE)(n);(0,o.useEffect)((function(){var e;if(null!==d&&void 0!==d&&d.length&&!b&&(null===p||void 0===p||!p.length)&&h){var t=null===(e=u.find((function(e){return e.name===h})))||void 0===e?void 0:e.nodes;t&&v([Object.keys(t)[0]])}}),[b,v,p,h]);var E=(0,ye.ej)(),x=(0,a.Z)(E,1)[0],O=(0,je.zp)(),w=(0,a.Z)(O,1)[0],S=w.bearerProtection,C=w.error,Z=w.token,j=(0,be.Q6)(),k=(0,ar.Lz)(),P=(0,a.Z)(k,1)[0],T=P.canBeClaimed,D=P.cloudStatus;if((0,o.useEffect)((function(){r&&l()}),[D,Z]),!g.length)return o.createElement(Se,{paramsKey:n});if(j&&(r||C&&S)){var F=function(e){var t=e.userStatus,n=e.userNodeStatus,r=e.accessError,a=e.canBeClaimed;return e.cloudStatus,sr[t]?sr[t]:r?sr.notLoggedIn:a?sr.notClaimed:sr[n]?sr[n]:sr.bearerError}(ir(ir({},x),{},{bearerError:C,canBeClaimed:T,cloudStatus:D})),K=F.title,N=F.description,z=F.footer;return o.createElement(Oe.Z,{title:K,message:N,footer:z})}return o.createElement(rr,(0,y.Z)({testIdPrefix:"fn",paramsKey:n,availableFnsLoaded:i,availableFns:u},s))},paramsKey:{extraKey:"fn"},loading:"Loading functions..."},feed:{Component:function(e){var t=e.paramsKey,n=void 0===t?fr:t,r=(0,Y.Z)(e,mr);return Ee(n),o.createElement(rr,(0,y.Z)({testIdPrefix:"feed",paramsKey:n},r))},paramsKey:{extraKey:"feed"},loading:"Loading events..."}},vr=function(e){var t=e.flavour,n=pr[t]||pr.fn,r=n.Component,u=n.paramsKey,s=n.loading,d=(0,i.zN)(),m=(0,i.fD)(),f=(0,o.useState)(),p=(0,a.Z)(f,2),v=p[0],g=p[1],b=(0,c.KO)(u.extraKey),y=b.loaded,h=b.value,E=b.hasError,x=b.refresh;return m?d.length||"fn"!==t?o.createElement(l.Z,{"data-testid":"".concat(t,"Page"),margin:[0,0,8,0],rightBar:o.createElement(fe,{flavour:t,selectedRowData:v,setSelectedRowData:g,availableFns:h})},o.createElement(r,{testIdPrefix:t,paramsKey:u,onShowInfo:g,availableFnsLoaded:y,availableFns:h,refreshAvailableFns:x,hasError:E})):o.createElement(pe.Z,null):o.createElement(ve.Z,{title:s})}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c641cb14-f5cc-40d1-a0ea-7a9ed843aa77",e._sentryDebugIdIdentifier="sentry-dbid-c641cb14-f5cc-40d1-a0ea-7a9ed843aa77")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[324],{80959:function(e,t,n){var r=n(87462),a=n(45987),o=n(67294),l=n(57509),i=["message","title","footer"];t.Z=function(e){var t=e.message,n=e.title,c=e.footer,u=(0,a.Z)(e,i),s=(null===u||void 0===u?void 0:u["data-testid"])||"functionError";return o.createElement(l.Flex,(0,r.Z)({alignItems:"center",column:!0,"data-testid":s,flex:!0,gap:3,justifyContent:"center",padding:[0,20]},u),o.createElement(l.H3,{"data-testid":"".concat(s,"-title")},n),o.createElement(l.TextBig,{color:"textDescription","data-testid":"".concat(s,"-message")},t),c)}},34324:function(e,t,n){n.r(t),n.d(t,{default:function(){return vr}});var r={};n.r(r),n.d(r,{base:function(){return yn},table:function(){return bn}});var a=n(29439),o=n(67294),l=n(91268),i=n(96929),c=n(3322),u=(n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4942)),s=(n(47941),n(21249),n(57640),n(9924),n(60677)),d=n(57509),m=n(54316),f=n(46667),p=n(82351),v=n(29814),g=n(72843),b=n(37518),y=n(87462),h=(n(85827),n(25387),n(72608),n(69826),n(31672),n(59461),n(97193)),E=n(8144);function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=function(e){var t=e.roomId,n=e.flavour,r=e.availableFns,a=function(e){var t="fn"===e;return(0,o.useMemo)((function(){return{Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasFn:t},node:{textColor:"text",showFn:t,requireFn:t}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale"},node:{textColor:"text",disabled:t}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline",disabled:t},node:{textColor:"textLite",disabled:t}}}}),[e])}(n),l=function(e){var t=(0,c.ZQ)({extraKey:e}).aggregations;return(0,o.useMemo)((function(){return null!==t&&void 0!==t&&t.node_ids?t.node_ids.buckets.reduce((function(e,t){return O(O({},e),{},(0,u.Z)({},t.key,t.hits.doc_count))}),{}):null}),[t])}(n),i="fn"===n,s=(0,c.CE)({extraKey:n}),d=(0,o.useMemo)((function(){var e;return Array.isArray(r)&&(null===(e=r.find((function(e){return e.name===s})))||void 0===e?void 0:e.nodes)||{}}),[s,r]),m=(0,o.useCallback)((function(e){return!!d&&!d[e]}),[d]),f=(0,o.useCallback)((function(){return Object.keys(d)}),[d]);return o.createElement(E.Z,{title:"Nodes",testIdPrefix:"nodes",baseKey:t,extraKey:n,param:"selectedNodeIds",multi:"feed"===n},o.createElement(h.Z,(0,y.Z)({key:n,baseKey:t,extraKey:n,statusProps:a,background:"mainBackground",itemProps:{padding:[1,1,1,.5],maxLength:30},searchMargin:[0,0,2],height:{max:"300px"},multi:"feed"===n,nodeCounts:l},i&&{useFilteredIds:f},{checkIsDisabled:m})))},C=n(46742),S=function(e){return e.name},Z=function(e){var t=e.param,n=e.baseKey,r=e.extraKey,a=e.testIdPrefix,l=e.title,i=e.items,c=void 0===i?[]:i,u=e.multi,s=void 0!==u&&u;return c.length?o.createElement(E.Z,{title:l,testIdPrefix:a,baseKey:n,extraKey:r,param:t,multi:s},o.createElement(C.ZP,{param:t,baseKey:n,extraKey:r,testIdPrefix:a,collection:c,multi:s,getValue:S,getLabel:S})):null},j=n(93433),k=(n(92222),{none:!0,facet:!0}),P=function(e,t){var n=(0,c.ZQ)({extraKey:e}),r=n.loaded,a=n.loading,l=n.columns,i=n.sortedColumns,u=(0,o.useRef)([]);return(0,o.useMemo)((function(){return!r||a||(u.current=i.reduce((function(e,n){return!l[n].filter||k[l[n].filter]?e:[].concat((0,j.Z)(e),[t(n,l)])}),[])),u.current}),[r,a])},I=n(95248),T=n(71002),D=(n(64211),n(41874),n(69720),n(26699),n(32023),n(54678),n(4480));function F(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?F(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var N={query:function(e,t,n){var r=n.columnVisibility,o=(null===t||void 0===t?void 0:t.toLowerCase())||"";return Object.entries(e).some((function(e){var t=(0,a.Z)(e,2),n=t[0],l=t[1];return!!r[n]&&(null!==l&&"undefined"!==typeof l&&(Array.isArray(l)?l.some((function(e){return String(e).toLowerCase().includes(o)})):("object"===(0,T.Z)(l)&&Object.keys(l).some((function(e){return String(l[e]).toLowerCase().includes(o)})),String(l).toLowerCase().includes(o))))}))}},z=function(e){return function(t,n){return!e.some((function(e){var r=(0,a.Z)(e,2),o=r[0],l=r[1];return N[o]?!N[o](t,l,n):!function(e){return function(t,n,r){var a;if("range"===(null===(a=r.columns[e])||void 0===a?void 0:a.filter)&&null!==n&&void 0!==n&&n.length)return t[e]>=n[0]&&t[e]<=n[1];if(!Array.isArray(n)||!n.length)return!0;var o=t[e];return"number"===typeof o?(o=parseFloat(o),n.some((function(e){return parseFloat(e)===o}))):n.includes(o)}}(o)(t,l,n)}))}},A=(0,D.CG)({key:"fnDataFiltered",get:function(e){var t=e.extraKey,n=e.roomId,r=e.omit,a=void 0===r?[]:r,o=e.keepAll,l=e.fn;return function(e){var r,i=e.get,u=null===(r=i((0,I.dz)({key:n,extraKey:"".concat(l,"Settings")})))||void 0===r?void 0:r.sortColumn,s=i((0,I.dz)({key:n,extraKey:t})),d=Object.keys(s).reduce((function(e,t){return a.includes(t)||e.push([t,s[t]]),e}),[]),m=i((0,c.tD)({id:l})),f=m.columnVisibility,p=m.data,v=m.columns;if(m.aggregations||!d.length||!p)return p||[];var g=z(d);return o?p.map((function(e){return g(e,{columnVisibility:f,columns:v,sortColumn:u})?e:K(K({},e),{},{hidden:!0})})):p.filter((function(e){return g(e,{columnVisibility:f,columns:v,sortColumn:u})}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.extraKey,n=void 0===t?"fn":t,r=e.omit,a=void 0===r?[]:r,o=e.keepAll,l=void 0!==o&&o,i=(0,c.CE)({extraKey:n}),u=(0,b.UL)();return(0,D.sJ)(A({extraKey:"".concat(i||n,"Filters"),fn:i,roomId:u,omit:a,keepAll:l}))},R=(n(2707),n(6557)),M=function(e){return e.id},B={string:function(e,t){return e.localeCompare(t,void 0,{sensitivity:"accent"})},integer:function(e,t){return e-t}},_={table:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.param,r=t.columns;return Object.entries(e.reduce((function(e,t){var a,o;return e[t[n]]={count:((null===(a=e[t[n]])||void 0===a?void 0:a.count)||0)+(t.hidden?0:1),type:null===(o=r[n])||void 0===o?void 0:o.type},e}),{})).map((function(e){var t=(0,a.Z)(e,2),n=t[0],r=t[1];return{id:n,type:r.type,count:r.count}})).sort((function(e,t){return(B[e.type]||B.integer)(e.id,t.id)}))},default:n.n(R)()},V=function(e,t){return{key:e,type:t[e].filter}},U={multiselect:function(e){var t=e.param,n=e.baseKey,r=e.extraKey,a=e.filtersKey,l=e.testIdPrefix,i=e.title,u=function(e){var t=e.extraKey,n=e.filtersKey,r=e.param,a=L({extraKey:t,omit:[r],keepAll:!0}),l=(0,I.tk)(r,{extraKey:n}),i=(0,c.ZQ)({key:"type",extraKey:t}),u=_[i]||_.default,s=(0,c.ZQ)({key:"columns",extraKey:t});return(0,o.useMemo)((function(){return u(a,{param:r,columns:s})}),[r,a,l])}({param:t,extraKey:r,filtersKey:a});return u&&u.length?o.createElement(E.Z,{title:i,testIdPrefix:l,baseKey:n,extraKey:a,param:t,defaultIsOpen:!1},o.createElement(C.ZP,{param:t,baseKey:n,extraKey:a,testIdPrefix:l,collection:u,capitalized:!1,getValue:M,getLabel:M})):null},range:function(e){var t=e.param,n=e.baseKey,r=e.extraKey,l=e.filtersKey,i=e.testIdPrefix,u=e.title,s=(0,c.ZQ)({extraKey:r}).columns,m=(0,I.I0)(t,{defaultValue:[],key:n,extraKey:l}),f=(0,a.Z)(m,2),p=f[0],v=f[1];if(!s[t])return null;var g=1*s[t].range.min,b=1*s[t].range.max;return o.createElement(E.Z,{title:u,testIdPrefix:i,baseKey:n,extraKey:l,param:t,defaultIsOpen:!1},o.createElement(d.Box,{padding:[2,0],width:"100%"},o.createElement(d.MultiRangeInput,{min:g,max:b,onChange:function(e){var t=e.min,n=e.max;return v([t,n])},initMin:p[0]?1*p[0]:g,initMax:p[1]?1*p[1]:b})))}},W=function(e){var t=e.roomId,n=e.extraKey,r=(0,c.CE)({extraKey:n}),a=function(e){return P(e,V)}(n);return a.map((function(e){var a=U[e.type]||U.multiselect;return o.createElement(a,{key:e.key,title:e.key,testIdPrefix:"function",baseKey:t,extraKey:n,filtersKey:"".concat(r||n,"Filters"),param:e.key})}))},H=function(e){return e.name||e.id},Q=function(e){return e.id},q=function(e){var t=e.title,n=e.options,r=e.param,a=e.baseKey,l=e.filtersKey,i=e.testIdPrefix;return null!==n&&void 0!==n&&n.length?o.createElement(E.Z,{title:t,testIdPrefix:i,baseKey:a,extraKey:l,param:r,defaultIsOpen:!1},o.createElement(C.ZP,{param:r,baseKey:a,extraKey:l,testIdPrefix:i,collection:n,capitalized:!1,getValue:Q,getLabel:H})):null},G={nodes:!0},X=function(e){var t=e.roomId,n=e.extraKey,r=(0,c.CE)({extraKey:n}),a=(0,c.Cf)(n);return a.length?a.map((function(e){return G[e.id]?null:o.createElement(q,{key:e.id,title:e.name,options:e.options,param:e.id,testIdPrefix:"function",baseKey:t,filtersKey:"".concat(r||n,"Filters")})})):null},J=(0,o.memo)((function(e){var t=e.flavour,n=e.refetch,r=e.availableFns,a=(0,b.UL)(),l=(0,c.ZQ)({extraKey:t}),i=l.loaded,u=l.aggregations,s=l.error;return o.createElement(d.Flex,{column:!0,overflow:{vertical:"auto"},padding:[0,3,30]},"fn"===t&&o.createElement(Z,{title:"Function",testIdPrefix:"function",baseKey:a,extraKey:t,param:"selected",items:r}),o.createElement(w,{roomId:a,flavour:t,availableFns:r}),i&&!u&&!s&&o.createElement(W,{roomId:a,extraKey:t}),i&&u&&!s&&o.createElement(X,{roomId:a,extraKey:t,onFilter:n}))})),Y=n(45987),$=(n(38862),n(32586)),ee=n(76184),te=n(52428),ne=["selectedRowData","setSelectedRowData"],re=function(e){var t=e.data;return o.createElement(ee.Z,{name:"Files"},o.createElement(d.Flex,{gap:1,padding:[0,1],alignItems:"center"},o.createElement(d.Box,{sx:{fontWeight:"500",letterSpacing:"1px"},as:d.Text,color:"textLite"},"{;}"),o.createElement(d.TextSmall,null,"Copy data as"),o.createElement(d.Flex,{cursor:"pointer",gap:1,onClick:(0,te.J)(JSON.stringify(t),{text:"JSON copied to clipboard"})},o.createElement(d.TextSmall,{color:"primary"},"json"),o.createElement(d.Icon,{color:"primary",size:"small",name:"copy"}))))},ae=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.data,r=void 0===n?{}:n,o=t.columns,l=void 0===o?{}:o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],c=arguments.length>2?arguments[2]:void 0;return Object.entries(r).reduce((function(t,n){var r,o=(0,a.Z)(n,2),i=o[0],u=o[1],s=c?"".concat(c,".").concat(i):(null===(r=l[i])||void 0===r?void 0:r.displayName)||i,d=Array.isArray(u);return d&&"object"===(0,T.Z)(u[0])&&null!==u[0]||d&&u.length>1?t.push([s,JSON.stringify(u)]):u&&"object"===(0,T.Z)(u)?e({data:u},t,s):t.push([s,d?u.length>1?"[".concat(u.join(", "),"]"):u[0]:u]),t}),i)},oe=function(e){var t=e.selectedRowData,n=void 0===t?{}:t,r=e.setSelectedRowData,l=(0,Y.Z)(e,ne),i=(0,o.useMemo)((function(){return ae(n).sort((function(e,t){var n=(0,a.Z)(e,1)[0],r=(0,a.Z)(t,1)[0];return n.localeCompare(r)}))}),[n]);return o.createElement(d.Flex,(0,y.Z)({column:!0,gap:2,overflow:{vertical:"auto"},padding:[2,3]},l),o.createElement(d.Flex,{justifyContent:"between",padding:[2,0],border:{side:"bottom",color:"borderSecondary"}},o.createElement(d.TextBig,{strong:!0},"Row info"),i.length>0&&o.createElement(d.Box,{onClick:function(){return r()},cursor:"pointer"},o.createElement(d.TextSmall,{color:"primary"},"Clear selection"))),Array.isArray(i)&&i.length?o.createElement(o.Fragment,null,i.map((function(e){var t=(0,a.Z)(e,2),n=t[0],r=t[1];return o.createElement($.Z,{key:n,size:"small",name:n,testId:"rightBar-rowInfoContent-".concat(n),padding:[1,0,0]},r)})),o.createElement(re,{data:n})):o.createElement(d.Text,null,"Select a row to see raw data"))};function le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?le(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):le(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ce={color:{active:"success",notActive:"textLite"}},ue={filters:ie(ie({iconName:"filterList"},ce),{},{width:"19px",Content:J,dataTestId:"fnFilters",label:"Filters"}),info:ie(ie({iconName:"information"},ce),{},{width:"19px",dataTestId:"info",Content:oe,label:"Info"})},se=Object.keys(ue),de=(0,s.default)(d.Tabs).withConfig({displayName:"sidebar__StyledTabs",componentId:"sc-1x1ez62-0"})(["overflow:hidden;height:100%;"]),me=function(e){var t=e.isActive,n=e.color,r=e.name,a=e.label;return o.createElement(p.Z,{plain:!0,content:a},o.createElement(d.Icon,{name:r,color:t?n.active:n.notActive,height:"18px",width:"18px"}))},fe=function(e){var t=(0,f.Z)(!0),n=(0,a.Z)(t,3),r=n[0],l=n[1],i=n[2],c=(0,o.useState)(0),u=(0,a.Z)(c,2),s=u[0],p=u[1];return(0,o.useEffect)((function(){e.selectedRowData&&(p(1),i())}),[e.selectedRowData]),o.createElement(m.ZP,{collapsedComponent:o.createElement(v.Z,{availableTabs:ue,onClickTab:l,tabsToShow:se}),header:o.createElement(g.Z,{icon:"filterList",isOpen:r,onToggle:l,title:"Filters"}),isOpen:r},o.createElement(d.Flex,{"data-testid":"overview-info",column:!0,overflow:"hidden",height:"100%"},o.createElement(de,{selected:s,onChange:p,noDefaultBorder:!0},se.map((function(t,n){var r=ue[t],a=r.iconName,l=r.color,i=r.Content,c=r.dataTestId,u=r.label;return o.createElement(d.Tab,{style:{display:1===se.length?"none":"inherit"},"data-testid":c,maxWidth:"100%",key:a,small:!0,label:o.createElement(me,{isActive:s===n,name:a,color:l,label:u})},o.createElement(d.Flex,{column:!0,overflow:"hidden",height:"calc(100% - 60px)",position:"relative"},o.createElement(i,e)))})))))},pe=n(36560),ve=n(78266),ge=(n(41817),n(97945)),be=n(74059),ye=n(49254),he=n(89250),Ee=function(e){var t=(0,I.XT)(e),n=(0,he.TH)().state;return(0,o.useEffect)((function(){null!==n&&void 0!==n&&n.nodeId&&t([n.nodeId])}),[]),null===n||void 0===n?void 0:n.nodeId},xe=n(91008),Oe=n(80959),we=["paramsKey"],Ce=function(e){var t=e.paramsKey,n=(0,Y.Z)(e,we),r=(null===n||void 0===n?void 0:n["data-testid"])||"capableNodesError",a=(0,I.c6)(t),l=(0,ge.bV)(null===a||void 0===a?void 0:a[0],"name");return o.createElement(d.Flex,(0,y.Z)({alignItems:"center",flex:!0,gap:8,justifyContent:"center"},n,{"data-testid":r}),o.createElement(d.Icon,{"data-testid":"".concat(r,"-icon"),height:"230px",name:"unreachableNode",width:"230px"}),o.createElement(Oe.Z,{"data-testid":"".concat(r,"-details"),gap:2,title:l?"".concat(l," is not configured for Functions"):"Your nodes are not configured for Functions",message:o.createElement(o.Fragment,null,"Learn how to configure your nodes"," ",o.createElement(xe.Z,{Component:d.TextBig,"data-ga":"functions-capable-nodes-error::click-docs-link::functions-view","data-testid":"".concat(r,"-docsLink"),href:"https://learn.netdata.cloud/docs/nightly/operations/run-time-troubleshooting-with-functions#prerequisites",target:"_blank",rel:"noopener noreferrer"},"to support functions")),width:{max:"fit-content"}}))},Se=n(64599),Ze=n(70842),je=n(39469),ke=n(36657),Pe=n(91128),Ie=n(62554),Te=(0,s.default)(d.Flex).attrs({alignItems:"center",border:{side:"bottom",color:"borderSecondary"},padding:[2]}).withConfig({displayName:"styled__MenuItem",componentId:"sc-fmyuo7-0"})(["&:last-child{border:none;}"]),De=(0,s.default)(d.TextInput).withConfig({displayName:"styled__TextInput",componentId:"sc-fmyuo7-1"})(['margin:0 10px;min-width:unset;width:45px;> div{margin:0;}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}input[type="number"]{-moz-appearance:textfield;}']),Fe=["onClose","targetRef","paramsKey"];function Ke(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ke(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ke(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ze=function(e){var t=e.onClose,n=e.targetRef,r=e.paramsKey,l=(0,Y.Z)(e,Fe),i=(null===l||void 0===l?void 0:l["data-testid"])||"refreshOptions",u=(0,c.ZQ)(Ne({key:"updateEvery"},r)),s=(0,c.WO)(r),m=(0,a.Z)(s,2),p=m[0],v=m[1],g=(0,f.Z)(p),b=(0,a.Z)(g,2),y=b[0],h=b[1];(0,Ie.Z)((function(){!!p!==!!y&&v(y)}),200,[p,y]);var E=(0,c.FF)(Ne(Ne({},r),{},{defaultValue:u})),x=(0,a.Z)(E,2),O=x[0],w=x[1],C=(0,o.useState)(O),S=(0,a.Z)(C,2),Z=S[0],j=S[1];return(0,Ie.Z)((function(){O!==Z&&w(Z)}),400,[O,Z]),n.current?o.createElement(d.Drop,{align:{top:"bottom",right:"right"},animation:!0,background:"dropdown",close:t,column:!0,"data-testid":i,margin:[.5,0,0],onClickOutside:t,onEsc:t,round:1,target:n.current,width:58},o.createElement(Te,{"data-testid":"".concat(i,"-autoRefresh"),justifyContent:"between"},o.createElement(d.Text,{color:"menuItem","data-testid":"".concat(i,"-autoRefresh-label")},"Auto Refresh"),o.createElement(d.Toggle,{colored:!0,checked:y,"data-ga":"functions-refresh-options::auto-refresh-switch::functions-view::".concat(y?"enabled":"disabled"),"data-testid":"".concat(i,"-autoRefresh-switch"),onChange:h})),o.createElement(Te,{"data-testid":"".concat(i,"-pollingInterval")},o.createElement(d.Text,{color:"menuItem","data-testid":"".concat(i,"-pollingInterval-label")},"Refresh every"),o.createElement(De,{"data-ga":"functions-refresh-options::polling-interval::functions-view","data-testid":"".concat(i,"-pollingInterval-input"),min:1,onChange:function(e){var t=+e.target.value;t>0&&j(t)},size:"tiny",type:"number",value:Z}),o.createElement(d.Text,{color:"menuItem","data-testid":"".concat(i,"-pollingInterval-units")},"seconds"))):null},Ae=n(89405),Le=function(e){var t=e.paramsKey,n=(0,c.ZQ)(t).updatedAt,r=(0,Ae.rA)(),a=r.localeTimeString,l=r.localeDateString;return o.createElement(d.TextMicro,{color:"textLite"},"Last updated: ",l(n,{long:!0})," ",a(n,{secs:!0}))},Re=s.default.div.withConfig({displayName:"reload__IconsContainer",componentId:"sc-1nbamjz-0"})(["position:relative;"]),Me=(0,s.default)(d.Icon).withConfig({displayName:"reload__SmallIcon",componentId:"sc-1nbamjz-1"})(["position:absolute;top:3px;left:3px;"]),Be=function(e){var t=e.onRefresh,n=e.dataGa,r=e.testId,a=e.paramsKey,l=(0,c.T2)(a);return o.createElement(Re,null,o.createElement(Me,{name:l?"playSolid":"pauseSolid",width:"8px",height:"8px",color:l?"primary":"text"}),o.createElement(d.IconButton,{"data-testid":"".concat(r,"-refreshNowBtn"),"data-ga":"".concat(n,"::click-refresh-now::functions-view"),flavour:"hollow",icon:"refresh",onClick:function(){return t({merge:!1})},disabled:l}))},_e=["onRefresh","paramsKey"],Ve={fn:{dataGa:"functions-header",hasAutoRefresh:!0,Title:function(e){var t=e.name,n=e.fn,r=void 0===n?"Processes":n;return t?"".concat(r," on ").concat(t):r},TextContent:function(e){var t=e.testId;return o.createElement(o.Fragment,null,"Netdata Functions enable detailed low-level monitoring at the edge. Use this tab to execute functions on your node and see the results immediately."," ",o.createElement(xe.Z,{Component:d.Text,"data-ga":"functions-header::click-docs-link::functions-view","data-testid":"".concat(t,"-docsLink"),href:"https://learn.netdata.cloud/docs/nightly/concepts/netdata-functions",target:"_blank",rel:"noopener noreferrer"},"Read the Netdata functions documentation to learn more"),".")}},feed:{dataGa:"feed-header",Title:function(){return"Events"},TextContent:function(e){var t=e.testId;return o.createElement(o.Fragment,null,"Troubleshoot faster with Netdata Events. Access topology and alert events across the war room in one convenient location."," ",o.createElement(xe.Z,{Component:d.Text,"data-ga":"feed-header::click-docs-link::feed-view","data-testid":"".concat(t,"-docsLink"),href:"https://learn.netdata.cloud/docs/nightly/concepts/events-feed",target:"_blank",rel:"noopener noreferrer"},"Read the Events feed documentation to learn more"),".")}}},Ue=(0,o.memo)((function(e){var t=e.onRefresh,n=e.paramsKey,r=(0,Y.Z)(e,_e),l=(null===r||void 0===r?void 0:r["data-testid"])||"functionsHeader",i=(0,o.useRef)(),u=Ve[n.extraKey],s=u.dataGa,m=u.hasAutoRefresh,p=u.TextContent,v=u.Title,g=(0,f.Z)(!1),b=(0,a.Z)(g,4),y=b[0],h=b[1],E=b[3],x=(0,I.c6)(n),O=(0,ge.bV)(null===x||void 0===x?void 0:x[0],"name"),w=(0,c.ZQ)(n),C=w.loaded,S=w.data,Z=w.totalSize,j=(0,c.CE)(n);return o.createElement(d.Flex,{"data-testid":l,justifyContent:"between",margin:[0,0,3]},o.createElement(d.Flex,{column:!0,gap:2,"data-testid":"".concat(l,"-info"),width:{max:164}},o.createElement(d.Flex,{gap:2,alignItems:"baseline"},o.createElement(d.H1,{"data-testid":"".concat(l,"-title")},o.createElement(v,{name:O,fn:j})),C&&o.createElement(d.TextSmall,{color:"textLite",strong:!0},"(",Z||(null===S||void 0===S?void 0:S.length)||0," results)")),o.createElement(d.Flex,{column:!0,gap:2},o.createElement(d.Text,{"data-testid":"".concat(l,"-description"),color:"textLite"},o.createElement(p,{testId:l})))),o.createElement(d.Flex,{alignItems:"end",column:!0,gap:1},o.createElement(d.Flex,{gap:1},o.createElement(Be,{testId:l,dataGa:s,onRefresh:t,paramsKey:n}),m&&o.createElement(d.IconButton,{"data-testid":"".concat(l,"-refreshOptionsBtn"),"data-ga":"".concat(s,"::click-refresh-options::functions-view"),flavour:"hollow",icon:"chevron_down",ref:i,onClick:h}),y&&o.createElement(ze,{"data-testid":"".concat(l,"-refreshOptions"),isOpen:y,onClose:E,targetRef:i,paramsKey:n})),o.createElement(Le,{paramsKey:n})))}),(function(e,t){return e.onRefresh===t.onRefresh})),We=n(41331),He=(n(88386),n(55436)),Qe=["icon","iconRotate","children","onClick","strong","testId","textAlign","wrap"],qe=["description","tooltipValue","value","valueOptions","wrap"],Ge=(0,s.default)(d.Icon).attrs({color:"text",height:"16px",width:"16px"}).withConfig({displayName:"value__Arrow",componentId:"sc-1ahoh2y-0"})(["rotate:",";transition:all 200ms ease;"],(function(e){return e.rotate})),Xe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=t.decimalPoints,a=void 0===r?0:r,l=t.units,i=t.defaultValue,c=(0,He.Ol)();return(0,o.useMemo)((function(){switch(n){case"number":return(0,He.Jw)(e,{decimalPoints:a,units:l,defaultValue:i});case"duration":return(0,He.kl)(e,{defaultValue:i});case"datetime":return c(e,{defaultValue:i});case"datetime_usec":return c(e,{defaultValue:i,usec:!0});default:return null===e||"undefined"===typeof e?i:e}}),[e,l])},Je=function(e){var t=e.description,n=void 0===t?"":t,r=e.value,a=e.units,l=void 0===a?"":a;return n?o.createElement(d.Flex,{column:!0,gap:1,justifyContent:"center"},o.createElement(d.TextSmall,{color:"bright"},n),o.createElement(d.TextSmall,{strong:!0,color:"bright",textAlign:"center"},r," ",l)):"".concat(r," ").concat(l)},Ye=(0,o.forwardRef)((function(e,t){var n=e.icon,r=e.iconRotate,a=e.children,l=e.onClick,i=e.strong,c=e.testId,u=void 0===c?"cell":c,s=e.textAlign,m=e.wrap,f=(0,Y.Z)(e,Qe);return o.createElement(d.Flex,(0,y.Z)({cursor:l?"pointer":"inherit",gap:.5,onClick:l,overflow:"hidden",ref:t,width:{max:"100%"},flexWrap:!0},f),n&&o.createElement(Ge,{name:n,rotate:r}),o.createElement(d.TextSmall,{"data-testid":"".concat(u,"-value"),strong:i,textAlign:s,truncate:!m,whiteSpace:m?"wrap":"nowrap"},a))})),$e=function(e){var t=e.description,n=void 0===t?"":t,r=e.tooltipValue,a=e.value,l=e.valueOptions,i=void 0===l?{}:l,c=e.wrap,u=(0,Y.Z)(e,qe),s=Xe(a,i);return o.createElement(p.Z,(0,y.Z)({content:!c&&o.createElement(Je,{description:n,value:r||a,units:i.units}),"data-testid":"tableCell",isBasic:!0},u),o.createElement(Ye,{wrap:c},s))},et=["description","maxValue","strong","type","value","valueOptions","wrap"],tt=function(e){var t=e.description,n=void 0===t?"":t,r=e.maxValue,a=e.strong,l=e.type,i=e.value,c=e.valueOptions,u=void 0===c?{}:c,s=e.wrap,m=(0,Y.Z)(e,et),f=100*i/r,v="bar"===l,g=(null===m||void 0===m?void 0:m["data-testid"])||"progressTableCell",b=Xe(i,u);return o.createElement(p.Z,{content:o.createElement(Je,{description:n,value:i,units:u.units}),isBasic:!0,stretch:"align"},o.createElement(d.Flex,{column:!0,"data-testid":g,gap:1,flexWrap:s},!v&&o.createElement(Ye,{strong:a,testid:g},b),o.createElement(d.ProgressBar,{background:"sideBarMini",border:"none",color:["green","netdata"],containerWidth:"100%","data-testid":"".concat(g,"-bar"),height:2,width:"".concat(f,"%")})))},nt=["value","wrap"],rt=function(e){var t=e.value,n=e.wrap,r=(0,Y.Z)(e,nt);return t=Array.isArray(t)?t:[t],o.createElement(d.Flex,{alignItems:"center",gap:1,flexWrap:n},t.map((function(e,t){return o.createElement(d.Flex,(0,y.Z)({"data-testid":"tableCell",key:"".concat(e,"-").concat(t)},r),o.createElement(d.Pill,{flavour:"neutral",color:"neutralPillColor",size:"small"},e))})))},at=n(20686),ot=["color"],lt=function(e){var t=e.hide,n=e.user;return t||!n?null:o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"by"),o.createElement(it,null,n))},it=function(e){var t=e.color,n=void 0===t?"textDescription":t,r=(0,Y.Z)(e,ot);return o.createElement(d.TextSmall,(0,y.Z)({color:n,strong:!0},r))},ct=function(e){var t=e.type,n=e.text,r=void 0===n?t:n,a=e.hollow,l=a?"".concat(t.toLowerCase(),"AlertsTable"):t.toLowerCase();return o.createElement(at.Z,(0,y.Z)({type:l},a&&{border:!1}),r)},ut=(0,s.default)(d.Flex).attrs({gap:1,flexWrap:!0,alignItems:"center"}).withConfig({displayName:"components__Container",componentId:"sc-1qr6qv2-0"})([""]),st=n(79655),dt=["chart","hosts","alert"];function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ft(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var pt={CLEAR:0,WARNING:1,CRITICAL:2,UNINITIALIZED:3,UNDEFINED:4},vt=function(e){var t=e.chart,n=e.nodeId,r=e.nodeName,a=e.spaceSlug,l=e.roomSlug,i=e.alert,c=(0,he.s0)(),u=(0,ge.m3)(n),s=(0,o.useCallback)((function(){i?c(u,{state:{alertId:null===i||void 0===i?void 0:i.id}}):c(u)}),[u,i]),m="/spaces/".concat(a,"/rooms/").concat(l,"/alerts/").concat(null===i||void 0===i?void 0:i.id),f=i.current,v=i.name,g=i.previous;if("ERROR"===f.status)return o.createElement(ut,null,o.createElement(d.TextSmall,null,"For the alert"),o.createElement(xe.Z,{Component:it,as:st.rU,to:m},v),o.createElement(d.TextSmall,null,"for"),o.createElement(xe.Z,{Component:it,onClick:s},t.name),o.createElement(d.TextSmall,null,"on"),o.createElement(xe.Z,{Component:it,onClick:s},r),o.createElement(d.TextSmall,null,"we couldn't calculate the current value"),o.createElement(p.Z,{align:"bottom",content:"Please check your alert configuration"},o.createElement(d.Icon,{color:"nodeBadgeColor",size:"small",name:"information"})));if("REMOVED"===f.status)return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Alert"),o.createElement(xe.Z,{Component:it,as:st.rU,to:m},v),o.createElement(d.TextSmall,null,"for"),o.createElement(xe.Z,{Component:it,onClick:s},t.name),o.createElement(d.TextSmall,null,"on"),o.createElement(xe.Z,{Component:it,onClick:s},r),o.createElement(d.TextSmall,null,"is no longer available, state can't be assessed"));var b=pt[f.status]===pt.CLEAR;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Alert"),o.createElement(xe.Z,{Component:it,as:st.rU,to:m},v),o.createElement(d.TextSmall,null,"for"),o.createElement(xe.Z,{Component:it,onClick:s},t.name),o.createElement(d.TextSmall,null,"on"),o.createElement(xe.Z,{Component:it,onClick:s},r),b?o.createElement(d.TextSmall,null,"recovered"):o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,pt[g.status]===pt.CRITICAL?"was demoted":pt[g.status]===pt.WARNING?"escalated":pt[f.status]===pt.UNDEFINED?"transitioned":"was raised"),o.createElement(d.TextSmall,null,"to"),o.createElement(ct,{type:f.status}),pt[f.status]===pt.UNDEFINED&&o.createElement(d.TextSmall,null,"state")),o.createElement(d.TextSmall,null,"with value"),o.createElement(ct,{type:f.status,text:f.value_string,hollow:!0,padding:[0]}))},gt=function(e){var t=e.id,n=e.name,r=(0,be.uk)(),a=(0,b.tE)(t,"slug"),l="/spaces/".concat(r,"/rooms/").concat(a,"/home");return o.createElement(xe.Z,{Component:it,as:st.rU,to:l},n)},bt=function(e){var t=e.rooms;return t.map((function(e,n){return o.createElement(o.Fragment,{key:e.id},n>0&&(n<t.length-1?", ":" and "),o.createElement(gt,e))}))},yt=function(e){var t=e.rooms;if(!t.length)return null;var n=t.length>1?"rooms":"room";return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"on ",n),o.createElement(bt,{rooms:t}))},ht=function(e){var t=e.contexts;t.map((function(e,n){return o.createElement(o.Fragment,{key:e},n>0&&(n<t.length-1?", ":" and "),o.createElement(it,null,e))}))},Et=function(e){var t=e.contexts;if(!t.length)return null;var n=t.length>1?"contexts":"context";return o.createElement(d.TextSmall,null,"on ",n," ",o.createElement(ht,{contexts:t}))},xt={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},Ot=function(e){var t=e.start,n=e.end,r=(0,Ae.rA)().localeDateString;if(!t||!n)return null;var a=r(new Date(t),xt),l=r(new Date(n),xt);return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"(scheduled ",a," - ",l,")"))},wt={"silencing-rule-created":"created","silencing-rule-deleted":"deleted","silencing-rule-changed":"changed"},Ct=function(e){var t=e.rooms,n=void 0===t?[]:t,r=e.contexts,a=void 0===r?[]:r;return n.length||a.length?o.createElement(o.Fragment,null,!!n.length&&o.createElement(yt,{rooms:n}),!!n.length&&!!a.length&&o.createElement(d.TextSmall,null,"and ",o.createElement(Et,{contexts:a}))):null},St=function(e){var t,n=e.action,r=e.notification,a=e.user,l=e.room,i=e.context,c=((null===r||void 0===r||null===(t=r.silencing)||void 0===t?void 0:t.rule)||[])[0],u=null===a||void 0===a?void 0:a.name,s=(null===i||void 0===i?void 0:i.name)||[];return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Silencing rule"),o.createElement(it,null,c.name),o.createElement(Ct,{rooms:l,contexts:s}),o.createElement(d.TextSmall,null,"was ",wt[n]),o.createElement(lt,{user:u}),o.createElement(Ot,c))},Zt=n(62200),jt=function(e,t){var n,r;return(null===(n=e.target)||void 0===n?void 0:n[t])||(null===(r=e.target)||void 0===r?void 0:r.id)||e[t]||e.id},kt=function(e){return Array.isArray(e)?e[0].name||e[0].id:e.name||e.id},Pt=function(e){var t=e.statistics,n=(null===t||void 0===t?void 0:t.nodes)||{},r=n.live,a=n.stale,l=n.removed,i=n.total;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Space statistics. Nodes:"),o.createElement(d.TextSmall,{color:Zt.WV.live.statusTextSmallColor},r," live"),o.createElement(d.TextSmall,null,","),o.createElement(d.TextSmall,{color:Zt.WV.stale.statusTextSmallColor},a," stale"),o.createElement(d.TextSmall,null,","),o.createElement(d.TextSmall,{color:Zt.WV.offline.statusTextSmallColor},l," removed"),o.createElement(d.TextSmall,null,","),o.createElement(d.TextSmall,{strong:!0},i," total"))},It=(n(69810),n(86035),n(6973)),Tt=function(e){var t=e.stateColor,n=e.state;return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"became"),o.createElement(it,{color:t},n))},Dt=function(e){var t=e.stateColor,n=e.state;return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"was"),o.createElement(it,{color:t},n))},Ft={"node-created":Tt,"node-state-live":Tt,"node-state-stale":Tt,"node-state-offline":Tt,"node-removed":Dt,"node-deleted":Dt,"node-restored":Dt,default:Dt},Kt=function(e){var t,n=e.action,r=e.hosts,a=(void 0===r?[]:r)[0],l=a.id,i=a.name,c=(0,he.s0)(),u=(0,ge.m3)(l),s=(0,o.useCallback)((function(){return c(u)}),[u]),m=Ft[n],f=n.split("-").at(-1),p=null===(t=It.B[f])||void 0===t?void 0:t.statusTextSmallColor;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Node"),o.createElement(xe.Z,{Component:it,onClick:s},i),o.createElement(m,{stateColor:p,state:f}))},Nt=function(e){var t=e.room,n=(0,b.Hm)("untouchable");return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"was added to",n?" room":""),o.createElement(it,null,n?kt(t):"this room"))},zt=function(e){var t=e.room,n=(0,b.Hm)("untouchable");return o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"was removed from",n?" room":""),o.createElement(it,null,n?kt(t):"this room"))},At={"room-created":function(){return o.createElement(d.TextSmall,null,"was created")},"room-deleted":function(){return o.createElement(d.TextSmall,null,"was deleted")},"room-node-added":Nt,"room-node-removed":zt,"room-user-added":Nt,"room-user-removed":zt},Lt=function(e){var t,n=e.action,r=e.hosts,a=void 0===r?[]:r,l=e.Netdata,i=e.user,c=At[n],u=null===(t=a[0])||void 0===t?void 0:t.name;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Node"),o.createElement(it,null,u),o.createElement(c,{room:l.room}),o.createElement(lt,{user:null===i||void 0===i?void 0:i.name}))},Rt=function(e){var t=e.action,n=e.Netdata,r=e.user,a=At[t];return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(r,"name")),o.createElement(a,{room:n.room}),o.createElement(lt,{hide:!r.target,user:r.name}))},Mt=function(e){var t=e.action,n=e.Netdata,r=e.user,a=At[t];return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Room"),o.createElement(it,null,kt(n.room)),o.createElement(a,null),o.createElement(lt,{user:r.name}))},Bt={"alert-node-transition":function(e){var t=e.chart,n=e.hosts,r=e.alert,a=(0,Y.Z)(e,dt);return n.map((function(e,n){var l=e.id,i=e.name,c=ft(ft({},r),{},{name:r.name[n]},r.current?{current:ft(ft({},r.current),r.current.status?{status:r.current.status[n]||r.current.status[0]}:{})}:{});return o.createElement(vt,(0,y.Z)({key:l,chart:t,nodeId:l,nodeName:i,alert:c},a))}))},"node-created":Kt,"node-state-live":Kt,"node-state-stale":Kt,"node-state-offline":Kt,"node-removed":Kt,"node-deleted":Kt,"node-restored":Kt,"agent-connected":function(e){var t=e.agentId;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t)," ",o.createElement(d.TextSmall,null,"has connected to Netdata"))},"agent-disconnected":function(e){var t=e.agentId,n=e.reason;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t),o.createElement(d.TextSmall,null,"has disconnected from Netdata with reason: \u201c",n,"\u201d"))},"agent-authenticated":function(e){var t=e.agentId;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t),o.createElement(d.TextSmall,null,"has successfully authenticated"))},"agent-authentication-failed":function(e){var t=e.agentId;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Agent with claim ID"),o.createElement(it,null,t),o.createElement(d.TextSmall,null,"has failed to authenticate"))},"room-created":Mt,"room-deleted":Mt,"room-node-added":Lt,"room-node-removed":Lt,"room-user-added":Rt,"room-user-removed":Rt,"space-created":function(e){var t=e.Netdata,n=e.user;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"Space"),o.createElement(it,null,t.space.name||t.space.id),o.createElement(d.TextSmall,null,"was created"),o.createElement(lt,{user:n.name}))},"space-statistics":Pt,"space-user-added":function(e){var t=e.Netdata,n=e.user,r=((null===t||void 0===t?void 0:t.inviter)||{}).name;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(n,"name")),o.createElement(d.TextSmall,null,"was added to this space"),r&&o.createElement(o.Fragment,null,o.createElement(d.TextSmall,null,"by invite of"),o.createElement(it,null,r)))},"space-user-changed":function(e){var t,n=e.user;if(!(null===(t=n.changes)||void 0===t||!t.roles)&&1===Object.keys(n.changes).length){var r=n.changes.roles.length>1,a=n.changes.roles.join(", ");return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User ",r?"roles":"role"," for"),o.createElement(it,null,jt(n,"name")),o.createElement(d.TextSmall,null,r?"were":"was"," changed to"),o.createElement(it,null,a),o.createElement(lt,{hide:!n.target,user:n.name}))}return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(n,"name")),o.createElement(d.TextSmall,null,"was modified"))},"space-user-invited":function(e){var t=e.user;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(t,"email")),o.createElement(d.TextSmall,null,"was invited to this space"),o.createElement(lt,{user:t.name}))},"space-user-removed":function(e){var t=e.user,n=(t.target||{}).name;return o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(t,"name")),o.createElement(d.TextSmall,null,"was removed from this space"),n&&o.createElement(lt,{user:t.name}))},"space-user-uninvited":function(e){var t=e.event,n=e.user;return"space-invite-expired"===t.reason?o.createElement(ut,null,o.createElement(d.TextSmall,null,"The invite for"),o.createElement(it,null,jt(n,"email")),o.createElement(d.TextSmall,null,"to this space has expired")):o.createElement(ut,null,o.createElement(d.TextSmall,null,"User"),o.createElement(it,null,jt(n,"email")),o.createElement(d.TextSmall,null,"was uninvited from this space"),o.createElement(lt,{hide:!n.target,user:n.name}))},"silencing-rule-created":St,"silencing-rule-deleted":St,"silencing-rule-changed":St},_t=function(e){var t=e.data,n=t.source,r=n.action,a=n.roomId,l=n.space,i=(0,be.vu)(l.id,"slug"),c=(0,b.tE)(a,"slug"),u=Bt[r];return u?o.createElement(u,(0,y.Z)({},t.source,{spaceSlug:i,roomSlug:c})):o.createElement(ut,null,o.createElement(d.Text,null,"Event")," ",o.createElement(d.Text,{strong:!0},r)," ",o.createElement(d.Text,null,"emitted"))},Vt=["value"],Ut=["visualization","type","value"],Wt={bar:tt,"bar-with-integer":tt,duration:tt,pill:rt,number:$e,string:$e,feedTemplate:_t,datetime:function(e){var t=e.value,n=(0,Y.Z)(e,Vt),r=new Date(t),a=(0,Ae.rA)(),l=a.localeTimeString,i=a.localeDateString,c=isNaN(r.valueOf())?"Missing date & time":"".concat(i(r,{long:!1})," ").concat(l(r,{secs:!0}));return o.createElement($e,(0,y.Z)({value:c},n))},value:$e},Ht={bar:tt,pill:rt,value:$e,feedTemplate:_t},Qt=function(e){var t=e.visualization,n=e.type,r=e.value,a=(0,Y.Z)(e,Ut),l=Ht[t]||Wt[n]||Ht.value;return o.createElement(l,(0,y.Z)({value:r,type:n},a))},qt=["displayName","name","sortable","sticky","units","max","maxValue","dummy","cellSize","valueOptions","summary","type","visualization","wrap"];function Gt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Gt(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Gt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Jt={sum:"sum",min:"min",max:"max",extent:"extent",mean:"mean",median:"median",unique:"unique",uniqueCount:"uniqueCount",count:"count"};function Yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yt(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var en=(0,o.memo)(d.NetdataTable,(function(e,t){return(0,We.ZP)(e,t,{keep:["columnVisibility","data","fnQuery","sortBy","virtualizeOptions"]})})),tn={cellStyles:{height:"46px"},headStyles:{height:"44px"},styles:{verticalAlign:"middle"}},nn=(0,o.memo)((0,o.forwardRef)((function(e,t){var n=e["data-testid"],r=e.paramsKey,l=e.refetch,i=e.onShowInfo,u=(0,c.ZQ)(r),s=u.columns,m=u.sortedColumns,f=u.sortColumn,p=u.sortDirection,v=u.columnVisibility,g=u.pinnedColumns,y=u.loading,h=u.totalSize,E=u.anchor,x=u.retentionWarning,O=u.groupByColumns,w=(0,o.useState)(""),C=(0,a.Z)(w,2),S=C[0],Z=C[1],k=L(r),P="feed"===r.extraKey,T=function(e,t,n){var r=n.groupBy;return(0,o.useMemo)((function(){return e.reduce((function(e,n){var a=t[n],l=a.displayName,i=a.name,c=a.sortable,u=a.sticky,s=a.units,m=a.max,f=a.maxValue,p=a.dummy,v=a.cellSize,g=a.valueOptions,b=a.summary,y=a.type,h=a.visualization,E=a.wrap,x=void 0!==E&&E,O=(0,Y.Z)(a,qt);return p?e:[].concat((0,j.Z)(e),[Xt(Xt(Xt({},O),{},{id:l,accessorFn:function(e){return e[n]},cell:function(e){var t=e.getValue,n=e.row,a=e.cell.getIsAggregated(),l=t(),c=a&&(Jt[b]===Jt.count||Jt[b]===Jt.uniqueCount||!Jt[b]);return o.createElement(Qt,{description:i,data:n.original,maxValue:m||f.value,padding:n.depth>0?[0,0,0,2.5*n.depth]:[0],strong:a,value:c?"".concat(l,"x"):l,tooltipValue:c?"".concat(l," ").concat(1===l?"item":"items"," associated with ").concat(r," grouping"):l,valueOptions:c?Xt(Xt({},g),{},{transform:"none"}):g,type:y,visualization:h,wrap:x})},header:o.createElement(d.Flex,{column:!0},o.createElement(d.TextMicro,{strong:!0},l),s&&o.createElement(d.TextNano,null,"(",s,")")),enableSorting:c,aggregationFn:Jt[b]||Jt.count},v),{},{meta:Xt({biggestCellIndexPerColumn:null===f||void 0===f?void 0:f.index,sticky:u,styles:{verticalAlign:"middle"}},l!==i?{tooltip:i}:{})})])}),[])}),[t,r])}(m,s,$t({},P?{}:{groupBy:S})),D=(0,c.CE)(r),F=(0,b.UL)(),K=(0,c.fg)($t({key:"sortColumn"},r)),N=(0,a.Z)(K,2),z=N[0],A=N[1],R=(0,c.fg)($t({key:"sortDirection"},r)),M=(0,a.Z)(R,2),B=M[0],_=M[1],V=(0,c.kU)($t({key:"query"},r)),U=(0,a.Z)(V,2),W=U[0],H=U[1],Q=(0,c.I_)($t({key:"columnVisibility"},r)),q=(0,I.I0)(z,{defaultValue:[],key:F,extraKey:"".concat(D,"RangeFilter")}),G=(0,a.Z)(q,2)[1],X=(0,o.useMemo)((function(){return z||f?[{id:z||f,desc:"descending"===(B||p)}]:[]}),[f,p,z,B]),J=(0,o.useCallback)((function(e){var t=e(),n=(0,a.Z)(t,1)[0],r=(null===n||void 0===n?void 0:n.id)||r,o=null!==n&&void 0!==n&&n.desc?p||"descending":"ascending";A(r),_(o),z!==r&&G([])}),[z,G,f,p]),$=(0,o.useCallback)((function(e){Q((function(t){return $t($t({},t),e())}))}),[]),ee=(0,o.useMemo)((function(){return{left:g}}),[g]),te=(0,o.useMemo)((function(){return{overscan:10,hasNextPage:h>k.length,loading:y,loadMore:function(){y||h<=k.length||l({anchor:E,merge:!0})},warning:x}}),[k.length,y]),ne=(0,o.useCallback)((function(e){var t=e.data;return i({data:t.json||t,columns:s})}),[]);return o.createElement(en,{groupByColumns:O,onClickRow:ne,autoFixedColumns:!0,columnPinning:ee,columnVisibility:v,data:k,dataColumns:T,dataGa:"functions",enableColumnPinning:!!g.length,enableColumnVisibility:!P,enableCustomSearch:!P,enablePinning:!P&&!!g.length,enableResize:!0,enableSorting:!P,globalFilter:P?null:W,onColumnVisibilityChange:$,onGlobalSearchChange:P?null:H,onGroupByChange:P?null:Z,onSortingChange:P?null:J,sortBy:X,testPrefix:n,virtualizeOptions:te,meta:tn,ref:t})})),(function(){return!0})),rn=n(18997),an=n(4808),on=(n(26833),n(50361)),ln=n.n(on),cn=n(38609),un=n(81732),sn=n(85672),dn=["defaultSortColumn","updateEvery","merge","groupBy","showIds","pagination","items"],mn=["data","type","updateEvery"];function fn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function pn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var vn={minSize:sn.bb.xs,maxSize:sn.bb.xl},gn={bar:{size:sn.bb.xs},value:{minSize:sn.bb.sm,size:sn.bb.md},feedTemplate:{size:sn.bb.xxl,minSize:sn.bb.lg,maxSize:5e3},pill:{size:sn.bb.md,minSize:sn.bb.md}},bn=function(e,t,n){var r=t.defaultSortColumn,a=t.updateEvery,o=t.merge,l=t.groupBy,i=t.showIds,c=void 0===i||i,u=t.pagination,s=t.items,d=(0,Y.Z)(t,dn),m=ln()(o?(0,cn.Z)(n.columns,t.columns):t.columns),f={},p=Object.keys(m).reduce((function(e,t){var n=m[t],r=n.id,a=n.name,o=n.sticky,l=n.visible,i=n.index;return n.displayName=c?r||t:a,e.columnVisibility[n.displayName]=l,o&&e.pinnedColumns.push(n.displayName),n.valueOptions=n.valueOptions||{},n.cellSize=function(e,t){var n=e.visualization;return e.fullWidth?gn.feedTemplate:t?{minSize:sn.bb.xs,maxSize:sn.bb.md,size:sn.bb.xs}:pn(pn({},vn),gn[n]||gn.xs)}(pn(pn({},n),{},{visualization:n.visualization||n.type}),n.uniqueKey),"undefined"!==typeof i&&(f[i]=t),e}),{columnVisibility:{},pinnedColumns:[]}),v=t.data.map((function(e){return e.reduce((function(e,t,n){var r,a,o=f[n];if(!o)return e;var l=m[o],i=isNaN(t)?(null===t||void 0===t?void 0:t.length)||0:t;"flexTemplate"!==l.type&&(!l.maxValue||i>l.maxValue.value)&&(l.maxValue={index:n,value:i});var c=(null===l||void 0===l||null===(r=l.range)||void 0===r?void 0:r.min)||t,u=(null===l||void 0===l||null===(a=l.range)||void 0===a?void 0:a.max)||l.max||t;return l.range={min:c<t?c:t,max:u>t?u:t},e[o]=t,e}),{})})),g=o?(n.data||[]).concat(v):v,b=null!==u&&void 0!==u&&u.enabled&&u.column?{anchor:g[g.length-1][m[u.column].index]}:{};e(pn(pn(pn(pn(pn({},un.Zn.table),d),{},{groupByColumns:l,data:g,columns:o?(0,cn.Z)(n.columns,m):m,updatedAt:(new Date).getTime(),updateEvery:a,sortedColumns:Object.values(f),sortColumn:r,sortDirection:r?m[r].sort:"descending"},p),b),{},{totalSize:(null===s||void 0===s?void 0:s.matched)||g.length,loading:!1,loaded:!0}))},yn=function(e,t){var n=t.data,r=t.type,a=t.updateEvery,o=(0,Y.Z)(t,mn);e(pn(pn(pn({},un.Zn.default),o),{},{data:n,updateEvery:a,type:r,loading:!1,loaded:!0}))};function hn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function En(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var xn={default:{fetch:an.Ru,isEnabled:function(e){var t=e.nodeIds,n=e.fn;return!(null===t||void 0===t||!t.length)&&!!n}},feed:{fetch:an.bj,isEnabled:function(e){var t=e.roomId,n=e.fn;return!!t&&!!n}}},On=function(){var e=(0,I.by)(),t=e.after,n=e.before;return(0,o.useMemo)((function(){if(t>0)return[{after:t,before:n},t,n];var e=Date.now();return[{after:e+1e3*t,before:e},t,n]}),[t,n])},wn=n(92501),Cn=(n(47042),n(26495)),Sn=n(36337),Zn=n(19221),jn=n(23148),kn=(0,D.cn)({key:"feedChart",default:{navigation:"pan"}});function Pn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function In(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Tn=(0,D.CG)({key:"feedChartState",get:function(e){var t=e.key;return function(e){var n=(0,e.get)(kn);return t?n[t]:n}},set:function(e){var t=e.key;return function(e,n){(0,e.set)(kn,(function(e){return t?In(In({},e),{},(0,u.Z)({},t,n)):In(In({},e),n)}))}}}),Dn=function(e){return(0,D.sJ)(Tn({key:e}))},Fn=function(e){return(0,D.Zl)(Tn({key:e}))},Kn=(n(41203),["icon","hoverIndicator","padding"]);function Nn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var An=(0,s.default)(d.Button).attrs((function(e){return{flavour:"borderless",iconColor:e.active?"textDescription":"border",iconSize:"small",padding:[.5],small:!0}})).withConfig({displayName:"styled__Button",componentId:"sc-8s0lqd-0"})(["&&{background-color:",";height:20px;width:20px;&:hover{background-color:",";.button-icon__color{fill:",";}}}"],(function(e){var t=e.theme;return e.active?(0,d.getColor)("borderSecondary")({theme:t}):"initial"}),(function(e){var t=e.theme;return(0,d.getColor)("borderSecondary")({theme:t})}),(function(e){var t=e.theme;return(0,d.getColor)("textDescription")({theme:t})})),Ln=(0,s.default)(d.Flex).attrs({padding:[.5],gap:1,round:!0,border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"styled__Container",componentId:"sc-8s0lqd-1"})(["position:absolute;top:18px;right:8px;background:",";&:hover{background:",";}"],(0,d.getRgbColor)("elementBackground",.5),(0,d.getColor)("elementBackground")),Rn=function(e){var t=e.active,n=e.disabled,r=e.defaultColor;return t?"textDescription":n?"disabled":void 0===r?"border":r},Mn=(s.default.button.attrs((function(e){var t=e.icon,n=e.hoverIndicator,r=void 0===n||n,a=e.padding,o=void 0===a?0:a,l=(0,Y.Z)(e,Kn);return zn(zn({},l),{},{children:t,active:l.active||l["aria-expanded"],hoverIndicator:r,padding:o})})).withConfig({displayName:"styled__StyledButton",componentId:"sc-8s0lqd-2"})(["border:initial;padding:",";height:fit-content;line-height:0;background:",";cursor:pointer;svg{fill:",";stroke:",";}"," &:hover{",";svg{fill:",";stroke:",";}}"],(function(e){return e.padding}),(function(e){var t=e.theme;return e.active?(0,d.getColor)("borderSecondary")({theme:t}):"initial"}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?"none":(0,d.getColor)(Rn({active:t,disabled:n}))({theme:r})}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?(0,d.getColor)(Rn({active:t,disabled:n}))({theme:r}):"none"}),(function(e){var t=e.active,n=e.hoverIndicator;return(t||n)&&"\n border-radius: 4px;\n "}),(function(e){var t=e.theme,n=e.hoverIndicator,r=e.disabled;return n&&!r&&"background: ".concat((0,d.getColor)("borderSecondary")({theme:t}),";")}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?"none":(0,d.getColor)(Rn({defaultColor:"textDescription",disabled:r}))({theme:t})}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?(0,d.getColor)(Rn({defaultColor:"textDescription",disabled:r}))({theme:t}):"none"})),["testIdPrefix"]),Bn=(0,o.forwardRef)((function(e,t){var n,r=e.testIdPrefix,l=(0,Y.Z)(e,Mn),i=(0,I.I0)(),c=(0,a.Z)(i,2),u=c[0],s=u.after,d=u.before,m=c[1],f=[Dn(n="navigation"),Fn(n)],p=(0,a.Z)(f,2),v=p[0],g=p[1],b=(0,o.useCallback)((function(e){var t=s,n=d;if(s<0){var r=Date.now();t=r+1e3*s,n=r}var a=e*Math.round((n-t)/4);m({after:t+a,before:n-a})}),[s,d]),h=s>0&&Math.abs(d-s)<2e3||-1===s;return o.createElement(Ln,(0,y.Z)({"data-testid":"chartToolbox","data-track":"chart-toolbox::hover-chart::".concat(r),"data-toolbox":"true",ref:t},l),o.createElement(An,{active:"pan"===v,"data-testid":"chartToolbox-pan","data-track":"chart-toolbox::pan-click::".concat(r),icon:"panTool",onClick:function(){return g("pan")},title:"Pan"}),o.createElement(An,{active:"highlight"===v,"data-testid":"chartToolbox-highlight","data-track":"chart-toolbox::highlight-click::".concat(r),icon:"highlightArea",onClick:function(){return g("highlight")},title:"Highlight"}),o.createElement(An,{active:"zoom"===v,"data-testid":"chartToolbox-zoom","data-track":"chart-toolbox::zoom-click::".concat(r),disabled:h,icon:"dragHorizontal",onClick:function(){g("zoom")},title:"Select and zoom"}),o.createElement(An,{"data-testid":"chartToolbox-zoomIn","data-track":"chart-toolbox::zoom-in-click::".concat(r),disabled:h,icon:"zoomIn",onClick:function(){b(1)},title:"Zoom in"}),o.createElement(An,{"data-testid":"chartToolbox-zoomOut","data-track":"chart-toolbox::zoom-out-click::".concat(r),icon:"zoomOut",onClick:function(){b(-1)},title:"Zoom out"}),o.createElement(An,{"data-testid":"chartToolbox-zoomReset","data-track":"chart-toolbox::zoom-reset-click::".concat(r),disabled:-900===s&&0===d,icon:"zoomReset",onClick:function(){m({after:-900,before:0})},title:"Zoom reset"}))}));function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Un={after:null,before:null};jn.kL.register(Sn.Z,jn.vn,jn.ZL,jn.uw,jn.De,jn.f$,jn.FB,jn.u,Zn.ZP);var Wn=function(e){var t,n=e.paramsKey,r=e.testIdPrefix,l=(0,o.useRef)(),i=(0,o.useContext)(s.ThemeContext),u=(0,I.I0)(),m=(0,a.Z)(u,2),p=m[0],v=m[1],g=(0,o.useState)([]),b=(0,a.Z)(g,2),y=b[0],h=b[1],E=(0,o.useState)(Un),x=(0,a.Z)(E,2),O=x[0],w=x[1],C=(0,o.useState)(!1),S=(0,a.Z)(C,2),Z=S[0],k=S[1],P=(0,o.useState)(!1),T=(0,a.Z)(P,2),D=T[0],F=T[1],K=(0,o.useState)([]),N=(0,a.Z)(K,2),z=N[0],A=N[1],L=(0,o.useState)(null),R=(0,a.Z)(L,2),M=R[0],B=R[1],_=(0,o.useState)("second"),V=(0,a.Z)(_,2),U=V[0],W=V[1],H=(0,f.Z)(!1),Q=(0,a.Z)(H,4),q=Q[0],G=Q[2],X=Q[3],J=(0,c.ZQ)(n).aggregations,Y=Dn().navigation,$=(0,Ae.rA)(),ee=$.localeTimeString,te=$.localeDateString,ne=On(),re=(0,a.Z)(ne,1)[0],ae=re.before-re.after,oe=(0,o.useMemo)((function(){var e=Date.now();return{min:re.after-ae,max:0===p.before?re.before:e<re.before+ae?e:re.before+ae}}),[re.after,re.before,p.before]),le=[{backgroundColor:(0,d.getColor)("primary")({theme:i}),borderWidth:0,data:y,label:"Histogram",maxBarThickness:50,minBarLength:0}];(0,o.useEffect)((function(){var e;if(null!==J&&void 0!==J&&null!==(e=J.event_histogram)&&void 0!==e&&null!==(e=e.hits)&&void 0!==e&&e.buckets){var t=J.event_histogram.hits.buckets.reduce((function(e,t){var n=t.key,r=t.doc_count;return{data:[].concat((0,j.Z)(e.data),[r]),labels:[].concat((0,j.Z)(e.labels),[n])}}),{data:[],labels:[]}),n=(0,He.BZ)(p.after,p.before)||{};h(t.data),A(t.labels),B(null),W(n.unit)}}),[null===J||void 0===J||null===(t=J.event_histogram)||void 0===t||null===(t=t.hits)||void 0===t?void 0:t.buckets]);var ie=(0,o.useMemo)((function(){return{animation:!1,interaction:{axis:"x"},maintainAspectRatio:!1,plugins:{annotation:{annotations:Vn({},O.after&&O.before?{annotation:{type:"box",backgroundColor:"rgba(128,128,128,0.3)",borderDash:[1,5,1,1],borderWidth:1,xMax:O.before,xMin:O.after,xScaleID:"x"}}:{})},legend:{align:"start",display:!1,position:"bottom"},zoom:{limits:{x:oe},pan:{enabled:"pan"===Y&&!Z,mode:"x",onPanStart:function(e){e.chart.canvas.style.cursor="grabbing"},onPanComplete:function(e){var t=e.chart;t.canvas.style.cursor="default";var n=t.scales.x,r=n.min,a=n.max;B({min:Math.round(r),max:Math.round(a)}),v({after:Math.round(r),before:Math.round(a)}),t.update()},threshold:1},zoom:{drag:{enabled:"zoom"===Y||Z},mode:"x",onZoomStart:function(e){e.chart.canvas.style.cursor="col-resize"},onZoomComplete:function(e){var t=e.chart;if("zoom"===Y||Z){t.canvas.style.cursor="default";var n=t.scales.x,r=n.min,a=n.max;v({after:Math.round(r),before:Math.round(a)}),k(!1)}}}}},responsive:!0,scales:{x:Vn({type:"time",grid:{drawBorder:!0,drawOnChartArea:!1,drawTicks:!0,offset:!1},parsing:!1,ticks:Vn({color:(0,d.getColor)("textLite")({theme:i}),font:{size:11},autoSkip:!0,maxTicksLimit:20},"minute"===U&&ae>=1e3*sn.Kl?{callback:function(e){var t=te(e,{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0}).split("/").reverse().slice(1).join("-"),n=ee(e,{secs:!1});return"".concat(t," ").concat(n)}}:{}),time:{displayFormats:{week:"yyyy-MM-dd",day:"MM-dd",hour:"MM-dd HH:mm",minute:"HH:mm",second:"HH:mm:ss"},tooltipFormat:"yyyy-MM-dd HH:mm:ss",unit:U||"second"}},M?{min:M.min,max:M.max}:{}),y:{beginAtZero:!0,ticks:{precision:0,color:(0,d.getColor)("textLite")({theme:i}),font:{size:11}}}}}}),[O,ae,Z,Y,M,B,U,oe]);if((0,o.useEffect)((function(){var e=function(e){"Shift"===e.key&&(e.preventDefault(),k(!0))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[]),!y.length)return null;return o.createElement(d.Flex,{position:"relative",height:{min:50},onMouseEnter:G,onMouseLeave:X},q&&o.createElement(Bn,{testIdPrefix:r}),o.createElement(Cn.$Q,{data:{datasets:le,labels:z},onMouseDown:function(e){if(e.preventDefault(),"highlight"===Y){F(!0);var t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;n.canvas.style.cursor="crosshair",w({after:Math.round(n.scales.x.getValueForPixel(t)),before:null})}},onMouseMove:function(e){if(e.preventDefault(),"highlight"===Y&&D){var t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;w((function(e){return Vn(Vn({},e),{},{before:Math.round(n.scales.x.getValueForPixel(t))})}))}},onMouseUp:function(e){e.preventDefault(),F(!1);var t=e.nativeEvent.offsetX||e.nativeEvent.layerX,n=l.current;n.canvas.style.cursor="default",O.after===Math.round(n.scales.x.getValueForPixel(t))?w(Un):w(O)},options:ie,ref:l}))},Hn=["sorter"];function Qn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qn(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Gn=function(e){return{label:e,value:e}},Xn=function(e){var t=e.paramsKey,n=e.initData,r=e.initFilter,l=(0,c.ZQ)(t),i=l.charts,m=l.loading,f=L(t),p=(0,o.useContext)(s.ThemeContext),v=Object.keys(i).map(Gn),g=P(t.extraKey,Gn),b=(0,o.useState)(n),y=(0,a.Z)(b,2),h=y[0],E=y[1],x=(0,o.useState)(r),O=(0,a.Z)(x,2),w=O[0],C=O[1],S=(0,c.CE)(t);(0,o.useEffect)((function(){E(n)}),[n]),(0,o.useEffect)((function(){C(r)}),[r]);var Z=(0,o.useMemo)((function(){if(!i[h])return{datasets:[],labels:[]};var e=i[h].columns,t=null===f||void 0===f?void 0:f.reduce((function(t,n){var r=n[w];return t[r]?qn(qn({},t),{},(0,u.Z)({},r,e.reduce((function(e,t){var r;return qn(qn({},e),{},(r={},(0,u.Z)(r,t,e[t]+n[t]),(0,u.Z)(r,"sorter",e.sorter+n[t]),r))}),t[r]))):qn(qn({},t),{},(0,u.Z)({},r,e.reduce((function(e,t,a){var o;return qn(qn(qn({},e),0===a?{label:r,sorter:n[t]}:{}),{},(o={},(0,u.Z)(o,t,n[t]),(0,u.Z)(o,"sorter",e.sorter?e.sorter+n[t]:n[t]),o))}),{})))}),{}),n=Object.values(t).sort((function(e,t){return t.sorter-e.sorter})).slice(0,15).map((function(e){e.sorter;return qn({},(0,Y.Z)(e,Hn))}));return{datasets:i[h].columns.map((function(e,t){return{backgroundColor:sn.vK[t],borderWidth:0,data:n.map((function(t){return t[e]})),label:e,maxBarThickness:50,minBarLength:0}})),labels:n.map((function(e){return e.label}))}}),[S,i,h,w,f]),j={animation:!1,maintainAspectRatio:!1,plugins:{legend:{position:"bottom",labels:{boxWidth:4,boxHeight:20,title:{color:(0,d.getColor)("textLite")({theme:p})}}}},responsive:!0,scales:{x:{stacked:!0,grid:{color:(0,d.getColor)("borderSecondary")({theme:p})}},y:{stacked:!0,grid:{color:(0,d.getColor)("borderSecondary")({theme:p})}}}};return o.createElement(d.Flex,{column:!0,"data-testid":"functionsCharts",gap:3,width:"50%",background:"mainChartBg",border:{side:"all",color:"mainChartBorder"},padding:[4],round:.5},o.createElement(d.Flex,{alignItems:"center","data-testid":"functionsChart".concat(h,"-selects"),gap:2},o.createElement(d.Select,{"data-ga":"functions-chart-".concat(h,"::select-data::functions-view"),"data-testid":"functionsChart".concat(h,"-dataSelect"),isLoading:m,onChange:function(e){var t=e.value;return E(t)},options:v,styles:{size:"tiny",minWidth:120},value:{label:h,value:h}}),o.createElement(d.Text,{"data-testid":"functionsChart".concat(h,"-perLabel"),color:"textLite"},"per"),o.createElement(d.Select,{"data-ga":"functions-chart-".concat(w,"::select-filter::functions-view"),"data-testid":"functionsChart".concat(w,"-filterSelect"),isLoading:m,onChange:function(e){var t=e.value;return C(t)},options:g,styles:{size:"tiny",minWidth:120},value:{label:w,value:w}})),o.createElement(d.Flex,{position:"relative",height:{min:60},width:{min:"100%"}},o.createElement(Cn.$Q,{data:Z,options:j})))},Jn=["margin","defaultCharts"],Yn=["paramsKey","testIdPrefix","availableFns","availableFnsLoaded","hasError"],$n={extraKey:"fn"},er={fn:{Chart:function(e){var t=e.margin,n=e.defaultCharts,r=(0,Y.Z)(e,Jn);return o.createElement(d.Flex,{gap:4,margin:t},n.map((function(e,t){var n=(0,a.Z)(e,2),l=n[0],i=n[1];return o.createElement(Xn,(0,y.Z)({key:t,initData:l,initFilter:i},r))})))},loadingMessage:"Loading function..."},feed:{Chart:Wn,loadingMessage:"Loading events..."}},tr={table:nn},nr=(0,o.memo)((function(e){var t=e.paramsKey,n=void 0===t?$n:t,l=e.testIdPrefix,i=void 0===l?"functions":l,u=e.availableFns,s=e.availableFnsLoaded,m=e.hasError,f=(0,Y.Z)(e,Yn),p=er[n.extraKey]||er.fn,v=p.Chart,g=p.loadingMessage,h=(0,c.Hv)(n),E=(0,a.Z)(h,2),x=E[0],O=E[1],w=(0,I.c6)(n),C=(0,c.ZQ)(n),S=C.loaded,Z=C.data,j=C.error,k=C.type,P=C.retentionWarning,T=C.defaultCharts,D=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,a.Z)(e,1)[0],n=(0,ge.bV)(t,"name");return 1===e.length&&n?"on ".concat(n):"on your selected node"}(w);(0,o.useEffect)((function(){var e;null!==x&&void 0!==x&&x.length||null===u||void 0===u||null===(e=u[0])||void 0===e||!e.name||m||O([u[0].name])}),[s,x]);var F=(0,ke.useHovered)({},[S]),K=(0,a.Z)(F,2),N=K[0],z=K[1],A=(0,Pe.Z)();(0,o.useEffect)((function(){A(z)}),[z]);var L=function(e,t,n){var l=(0,be.th)(),i=(0,b.vf)(),u=(0,c.T2)(n),s=(0,c.e6)(n),d=(0,c.mO)(n),m=(0,a.Z)(d,2),f=m[0],p=m[1],v=(0,o.useRef)();v.current=f;var g=function(e){var t=e.data,n=void 0===t?{}:t;(r[n.type]||yn)(p,n,v.current)},y=xn[t]||xn.default,h=y.fetch,E=y.isEnabled,x=On(),O=(0,a.Z)(x,3),w=O[0],C=O[1],S=O[2],Z=(0,o.useRef)();Z.current=w;var j=(0,b.UL)(),k=(0,I.by)(null,{key:j,extraKey:"".concat(t||n.extraKey,"Filters")}),P=(0,ge.Xw)(e),T=(0,je.zp)(),D=(0,a.Z)(T,1)[0].loading;return(0,rn.Z)((function(){return{enabled:!D&&E({nodeIds:e,fn:t,roomId:j}),fetch:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return h(En(En(En(En({roomId:j,spaceId:l,nodeIds:e,cloudNodeIds:P,fn:t,roomSlug:i},k),Z.current),n),{},{acceptedParams:f.acceptedParams}))},onStart:function(){return p({loading:!0})},onFail:function(e){var t;null!==(t=e)&&void 0!==t&&null!==(t=t.response)&&void 0!==t&&t.data&&(e=e.response.data),p({error:e,loading:!1,loaded:!0})},onReceive:g,polling:u||!1,pollingOptions:{pollingInterval:1e3*(s||f.updateEvery),shouldPause:!0},force:!0}}),[j,null===e||void 0===e?void 0:e.length,null===e||void 0===e?void 0:e[0],t,u,u&&s,!!f.aggregations&&k,C,S,D])}(w,x[0],n);if(!S||!s)return o.createElement(ve.Z,{title:g,"data-testid":"".concat(i,"Loading")});if(m)return o.createElement(wn.NY,{title:"Functions couldn't be loaded",message:"We couldn't find any available functions."});if(j&&"canceled"!==j)return"ErrNodeResourceNotFound"===(null===j||void 0===j?void 0:j.errorMsgKey)?o.createElement(Oe.Z,{message:"Please review your selection and try again.",title:"".concat("feed"===n.extraKey?"Events are":'Function "'.concat(x,'" is')," not available ").concat(D,".")}):o.createElement(wn.NY,{title:"".concat("feed"===n.extraKey?"Events":"Functions"," couldn't be loaded"),message:"ErrForbidden"===(null===j||void 0===j?void 0:j.errorMsgKey)?"Forbidden":""});var R=tr[k]||tr.table;return o.createElement(d.Box,{overflow:{horizontal:"hidden",vertical:"auto"},column:!0,padding:[4,4,0],gap:4},o.createElement(Ue,{nodeIds:w,onRefresh:L,paramsKey:n}),o.createElement(v,{paramsKey:n,testIdPrefix:i,defaultCharts:T}),S&&null!==Z&&void 0!==Z&&Z.length?o.createElement(R,(0,y.Z)({"data-testid":"".concat(i,"Component"),paramsKey:n,refetch:L,ref:N},f)):o.createElement(d.Flex,{column:!0,justifyContent:"center",alignItems:"center",alignSelf:"center",margin:["feed"===n.extraKey?3:30,0,0],gap:3},o.createElement(d.H3,null,"No results to display"),o.createElement(d.Text,{color:"textDescription",textAlign:"center"},"Double-check your search or filters and dates and try again with different conditions"),P&&o.createElement(d.Text,{color:"text",textAlign:"center"},P)))})),rr=nr,ar=n(24533),or=["paramsKey","hasError","refreshAvailableFns","availableFnsLoaded","availableFns"];function lr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ir(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lr(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var cr=function(e){var t=(0,je.Hu)();return o.createElement(d.Button,(0,y.Z)({label:"Get a fresh agent token",onClick:t},e))},ur="Functions expose sensitive information about your systems and applications. To protect your privacy, Netdata exposes this information only to logged-in users and claimed agents. When viewing Functions directly on a Netdata Agent UI, this information is sent directly from the Netdata Agent to your web browser, without exposing it to any third parties.",sr={notLoggedIn:{title:"Sign in to Netdata to use Functions",description:ur,footer:o.createElement(Se.Z,null)},notClaimed:{title:"Connect this agent to Netdata to use Functions",description:ur,footer:o.createElement(Ze.Z,null)},noAccess:{title:"This agent belongs to a Netdata Space you are not member of",description:ur,footer:o.createElement(d.TextBig,{color:"textDescription"},"Ask for an invitation from the administrators of the Netdata Space of the agent to use functions.")},bearerError:{title:"You are not authorized to use Functions",description:ur,footer:o.createElement(cr,null)}},dr={extraKey:"fn"},mr=["paramsKey"],fr={extraKey:"feed"},pr={fn:{Component:function(e){var t=e.paramsKey,n=void 0===t?dr:t,r=e.hasError,l=e.refreshAvailableFns,i=e.availableFnsLoaded,u=e.availableFns,s=(0,Y.Z)(e,or),d=(0,I.H7)(n),m=(0,I.wT)(n),f=(0,a.Z)(m,2),p=f[0],v=f[1],g=(0,ge.M2)(d),b=Ee(n),h=(0,c.CE)(n);(0,o.useEffect)((function(){var e;if(null!==d&&void 0!==d&&d.length&&!b&&(null===p||void 0===p||!p.length)&&h){var t=null===(e=u.find((function(e){return e.name===h})))||void 0===e?void 0:e.nodes;t&&v([Object.keys(t)[0]])}}),[b,v,p,h]);var E=(0,ye.ej)(),x=(0,a.Z)(E,1)[0],O=(0,je.zp)(),w=(0,a.Z)(O,1)[0],C=w.bearerProtection,S=w.error,Z=w.token,j=(0,be.Q6)(),k=(0,ar.Lz)(),P=(0,a.Z)(k,1)[0],T=P.canBeClaimed,D=P.cloudStatus;if((0,o.useEffect)((function(){r&&l()}),[D,Z]),!g.length)return o.createElement(Ce,{paramsKey:n});if(j&&(r||S&&C)){var F=function(e){var t=e.userStatus,n=e.userNodeStatus,r=e.accessError,a=e.canBeClaimed;return e.cloudStatus,sr[t]?sr[t]:r?sr.notLoggedIn:a?sr.notClaimed:sr[n]?sr[n]:sr.bearerError}(ir(ir({},x),{},{bearerError:S,canBeClaimed:T,cloudStatus:D})),K=F.title,N=F.description,z=F.footer;return o.createElement(Oe.Z,{title:K,message:N,footer:z})}return o.createElement(rr,(0,y.Z)({testIdPrefix:"fn",paramsKey:n,availableFnsLoaded:i,availableFns:u},s))},paramsKey:{extraKey:"fn"},loading:"Loading functions..."},feed:{Component:function(e){var t=e.paramsKey,n=void 0===t?fr:t,r=(0,Y.Z)(e,mr);return Ee(n),o.createElement(rr,(0,y.Z)({testIdPrefix:"feed",paramsKey:n},r))},paramsKey:{extraKey:"feed"},loading:"Loading events..."}},vr=function(e){var t=e.flavour,n=pr[t]||pr.fn,r=n.Component,u=n.paramsKey,s=n.loading,d=(0,i.zN)(),m=(0,i.fD)(),f=(0,o.useState)(),p=(0,a.Z)(f,2),v=p[0],g=p[1],b=(0,c.KO)(u.extraKey),y=b.loaded,h=b.value,E=b.hasError,x=b.refresh;return m?d.length||"fn"!==t?o.createElement(l.Z,{"data-testid":"".concat(t,"Page"),margin:[0,0,8,0],rightBar:o.createElement(fe,{flavour:t,selectedRowData:v,setSelectedRowData:g,availableFns:h})},o.createElement(r,{testIdPrefix:t,paramsKey:u,onShowInfo:g,availableFnsLoaded:y,availableFns:h,refreshAvailableFns:x,hasError:E})):o.createElement(pe.Z,null):o.createElement(ve.Z,{title:s})}}}]); \ No newline at end of file
diff --git a/web/gui/v2/359.fde431aadc6dd872d1b3.chunk.js b/web/gui/v2/359.aefe439f4f7fb9a02e15.chunk.js
index 8da49ebc..a1a2d82e 100644
--- a/web/gui/v2/359.fde431aadc6dd872d1b3.chunk.js
+++ b/web/gui/v2/359.aefe439f4f7fb9a02e15.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e56d15d7-ab70-4586-9c15-e358edf27201",e._sentryDebugIdIdentifier="sentry-dbid-e56d15d7-ab70-4586-9c15-e358edf27201")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[359],{57359:function(e,t,n){n.r(t),n.d(t,{default:function(){return We}});var a=n(67294),r=n(95248),o=n(93433),i=(n(26699),n(32023),n(57327),n(41539),n(88449),n(2490),n(59849),n(92222),n(85827),n(25387),n(72608),n(4480)),l=n(97945),c={nodes:(0,i.xu)({key:"anomalyFilters",default:[]})},s=((0,i.CG)({key:"anomalyFilterState",get:function(e){var t=e.roomId,n=e.filterKey;return function(e){return(0,e.get)(c[n](t))}},set:function(e){var t=e.roomId,n=e.filterKey;return function(e,a){var r=e.set,i=e.get;if(Array.isArray(a))return r(c[n](t),a);var l=i(c[n](t)),s=l.includes(a)?l.filter((function(e){return e!==a})):[].concat((0,o.Z)(l),[a]);r(c[n](t),s)}}}),function(e,t){return t?e[t]:e}),d=n(36560),u=n(96929),m=n(15557),h=n(87854),f=n.n(h),p=n(95348),L=n.n(p),g=new(f())({id:"notCapableNodes",use:"notCapableNodes-usage",viewBox:"0 0 231 230",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 231 230" id="notCapableNodes"><path fill="#EDF2F6" d="M115.5 226c61.304 0 111-49.696 111-111S176.804 4 115.5 4 4.5 53.696 4.5 115s49.696 111 111 111Z" /><path fill="#E2E6EC" d="M212.149 115A96.65 96.65 0 1 1 39.894 54.809l3.303-4.038A96.649 96.649 0 0 1 212.149 115Z" /><mask id="notCapableNodes_a" width="206" height="194" x="6" y="18" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#E2E6EC" d="M211.798 114.743a96.657 96.657 0 0 1-40.698 78.821 96.659 96.659 0 0 1-87.833 12.432C68.697 200.905 26.108 203.209 15.5 192c-10.608-11.209.28-35.172-4-50-4.281-14.828-6.001-31.361-3-46.5 3.001-15.139-.614-35.927 9-48H40c13.017-14.675 33.037-22.027 52.086-26.708a96.648 96.648 0 0 1 119.712 93.951Z" /></mask><g mask="url(#notCapableNodes_a)"><g clip-path="url(#notCapableNodes_b)"><path fill="#45535C" d="M217.255 50H19.142a2.641 2.641 0 0 0-2.642 2.642v134.716A2.642 2.642 0 0 0 19.142 190h198.113a2.641 2.641 0 0 0 2.641-2.642V52.642A2.641 2.641 0 0 0 217.255 50Z" /><path fill="#546C82" d="M19.142 50h198.113a2.644 2.644 0 0 1 2.641 2.642v3.962H16.5v-3.962A2.641 2.641 0 0 1 19.142 50Z" /><path fill="#0F0" d="M21.123 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962Z" opacity=".5" /><path fill="#FF0" d="M27.726 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962Z" opacity=".5" /><path fill="red" d="M34.33 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962Z" opacity=".5" /><path stroke="#fff" stroke-miterlimit="10" stroke-width="2" d="m34.33 88.962 6.604-6.603-6.604-6.604M44.236 88.302h11.887" /></g><path fill="#7698B0" d="M145.373 81.99a2.327 2.327 0 1 0-4.655 0v19.551a2.328 2.328 0 1 0 4.655 0V81.989Z" /><path fill="#6D8CA3" d="M145.373 83.386h7.821a2.421 2.421 0 0 1 2.421 2.42v11.918a2.42 2.42 0 0 1-2.421 2.421h-7.821v-16.76Z" /><path fill="#658196" d="M155.615 88.972h2.979a2.608 2.608 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.979v-5.587Z" /><path fill="#7698B0" d="M219.897 143.904v1.862h-36.35a9.31 9.31 0 0 1-9.311-9.31v-36.311c0-4.097-2.7-7.449-6.052-7.449h-6.982v-1.862h6.982c4.376 0 7.914 4.19 7.914 9.311v36.311a7.446 7.446 0 0 0 7.449 7.448h36.35Z" /><path fill="#80A4BF" d="M124.89 85.248h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM124.89 94.558h-9.31a1.862 1.862 0 1 0 0 3.725h9.31a1.862 1.862 0 1 0 0-3.725Z" /><path fill="#6D8CA3" d="M127.777 81.524h12.941v20.483h-12.941a3.818 3.818 0 0 1-3.818-3.818V85.341a3.814 3.814 0 0 1 2.357-3.527c.463-.192.959-.29 1.461-.29Z" /><path fill="#19B357" d="M106.269 107.127a2.327 2.327 0 0 0-4.655 0v19.553a2.327 2.327 0 0 0 4.655 0v-19.553Z" /><path fill="#00AB44" d="M106.269 108.524h7.821a2.421 2.421 0 0 1 2.421 2.421v11.917a2.421 2.421 0 0 1-2.421 2.421h-7.821v-16.759Z" /><path fill="#00993D" d="M116.511 114.11h2.979a2.607 2.607 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.979v-5.587Z" /><path fill="#00AB44" d="M219.896 132.732c-.016.624 0 1.136 0 1.862h-75.454a9.312 9.312 0 0 1-9.311-9.311c0-4.097-2.7-7.448-6.051-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.189 7.914 9.31a7.447 7.447 0 0 0 7.448 7.449h75.454Z" /><path fill="#00CB51" d="M85.786 110.386h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM85.786 119.697h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724Z" /><path fill="#00AB44" d="M88.672 106.662h12.942v20.483H88.672a3.817 3.817 0 0 1-3.817-3.817v-12.849a3.818 3.818 0 0 1 3.817-3.817Z" /><path fill="#7698B0" d="M124.89 149.025a2.327 2.327 0 1 0-4.655 0v19.552a2.328 2.328 0 0 0 4.655 0v-19.552Z" /><path fill="#6D8CA3" d="M124.89 150.421h7.821a2.421 2.421 0 0 1 2.421 2.421v11.824a2.421 2.421 0 0 1-2.421 2.421h-7.821v-16.666Z" /><path fill="#658196" d="M135.131 156.008h2.98a2.606 2.606 0 0 1 2.607 2.607v.372a2.608 2.608 0 0 1-2.607 2.607h-2.98v-5.586Z" /><path fill="#7698B0" d="M219.896 122.49h-56.833a7.446 7.446 0 0 0-7.448 7.448v20.483c0 5.121-3.538 9.311-7.914 9.311h-6.983v-1.862h6.983c3.352 0 6.052-3.352 6.052-7.449v-20.483a9.31 9.31 0 0 1 9.31-9.31h56.833v1.862Z" /><path fill="#80A4BF" d="M104.407 152.284h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724ZM104.407 161.594h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724Z" /><path fill="#6D8CA3" d="M107.293 148.559h12.942v20.484h-12.942a3.818 3.818 0 0 1-3.817-3.818v-12.848a3.818 3.818 0 0 1 3.817-3.818Z" /></g><defs><clipPath id="notCapableNodes_b"><path fill="#fff" d="M16.5 50h203.396v140H16.5z" /></clipPath></defs></symbol>'}),v=(L().add(g),g),Z=function(){return a.createElement(m.Flex,{width:"100%",justifyContent:"center",alignItems:"center",gap:3},a.createElement("svg",{viewBox:v.viewBox,height:"222px"},a.createElement("use",{xlinkHref:"#".concat(v.id)})),a.createElement(m.TextBig,{strong:!0},"Your nodes are either offline or not configured for ML"))},y=n(91008),b=function(){return a.createElement(m.Flex,{height:10.5,width:{min:10.5},background:"warningText",justifyContent:"center",alignItems:"center",round:"50%",sx:{borderRadius:"50%"}},a.createElement(m.Icon,{color:"warningBackground",name:"informationPress"}))},M=function(e){var t=e.to,n=e.children;return a.createElement(y.Z,{Component:m.Text,href:t,target:"_blank",rel:"noopener noreferrer"},n)},E=function(){return a.createElement(m.Flex,{column:!0,gap:1},a.createElement(m.Text,{strong:!0,color:"textDescription"},"Not Configured Nodes"),a.createElement(m.Text,{color:"textDescription"},"Learn how to configure your nodes"," ",a.createElement(M,{to:"https://learn.netdata.cloud/docs/cloud/insights/anomaly-advisor#enable-ml-on-netdata-agent"},"to support anomaly advisor"),"."))},w=function(){return a.createElement(m.Flex,{column:!0,gap:1},a.createElement(m.Text,{strong:!0,color:"textDescription"},"Not Capable Nodes"),a.createElement(m.Text,{color:"textDescription"},"All nodes need to be updated to a version higher than"," ",a.createElement(m.Text,{strong:!0,color:"textDescription"},"1.32"),". Learn how to"," ",a.createElement(M,{to:"https://learn.netdata.cloud/docs/agent/packaging/installer/update"},"update to the latest Netdata version"),"."))},x=function(){return a.createElement(m.Box,{round:!0,background:"elementBackground",padding:[4]},a.createElement(m.Flex,{gap:4,alignItems:"start"},a.createElement(b,null),a.createElement(m.Flex,{gap:4,column:!0},a.createElement(E,null),a.createElement(w,null))))},C=function(){return a.createElement(m.Flex,{column:!0,width:"100%",height:"100%",justifyContent:"start",padding:[8,4]},a.createElement(m.Flex,{column:!0,gap:8},a.createElement(Z,null),a.createElement(x,null)))},k=n(29439),A=n(88553),I=n(91268),D=n(37518),O=n(89479),S=n(74059),T=n(74662),_=n(25517),H=n(49887),B=n(39612),F=(n(82526),n(38880),n(49337),n(33321),n(69070),n(4942)),N=(n(47941),n(15581),n(34514),n(54747),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(21249),n(57640),n(9924),n(89692)),j=n(87462),V=n(45987),P=n(2077),R=n(89405),G=n(78122),U=function(e){return Math.floor(e/1e3)},z=function(){var e=(0,_.$B)(),t=(0,k.Z)(e,2),n=t[0],r=t[1],o=(0,R.rA)().localeTimeString,i=(0,a.useMemo)((function(){var e=U(n),t=U(r);return[(0,G.getDateDiff)(e,t),o(n,{secs:!0}),o(r,{secs:!0})]}),[n,r]),l=(0,k.Z)(i,3),c=l[0],s=l[1],d=l[2];return n&&r?a.createElement(m.Flex,{gap:1,alignItems:"baseline"},a.createElement(m.TextMicro,{strong:!0,color:"textLite"},a.createElement(m.TextSmall,{strong:!0,color:"textLite"},s," \u2192 ",d," \u2022")," ","Duration: ",c)):null},K=n(60677),Y=(0,K.keyframes)(["from{transform:translate(412px,0);}"]),$=K.default.g.withConfig({displayName:"skeleton__Animated",componentId:"sc-gwkfye-0"})(["animation:",";"],(function(e){return e.animate?(0,K.css)([""," 1s linear infinite"],Y):""})),q=function(e){var t=e.animate,n=void 0!==t&&t;return a.createElement("svg",{width:"1140",height:"80",viewBox:"0 0 1140 80",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a.createElement("mask",{id:"mask0_467_73096",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"1140",height:"80"},a.createElement("rect",{width:"1140",height:"80",fill:"#C4C4C4"})),a.createElement("g",{mask:"url(#mask0_467_73096)"},a.createElement($,{animate:n},a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M-374 70L-401 78H-192.5H14H25.5H212L180 70L157 55L144 70L105 11L69.5 70H41L17.8524 76.8586L-8 73L-39 38L-62 71L-85.5 61.5L-100.5 73L-114.5 61.5L-146 41L-168 70L-192.5 78L-235 70L-258 55L-271 70L-310 11L-327.75 40.5L-345.5 70H-374Z",fill:"#8F9EAA"}),a.createElement("path",{d:"M-401 78L-401.142 77.5206L-401 78.5V78ZM-374 70V69.5H-374.073L-374.142 69.5206L-374 70ZM212 78V78.5L212.121 77.5149L212 78ZM180 70L179.727 70.4188L179.797 70.4647L179.879 70.4851L180 70ZM157 55L157.273 54.5812L156.908 54.3429L156.622 54.6725L157 55ZM144 70L143.583 70.2757L143.946 70.8254L144.378 70.3275L144 70ZM105 11L105.417 10.7243L104.98 10.0632L104.572 10.7422L105 11ZM69.5 70V70.5H69.7827L69.9284 70.2578L69.5 70ZM41 70V69.5H40.9275L40.8579 69.5206L41 70ZM17.8524 76.8586L17.7785 77.3531L17.8882 77.3694L17.9944 77.338L17.8524 76.8586ZM-8 73L-8.3743 73.3315L-8.25369 73.4677L-8.07382 73.4945L-8 73ZM-39 38L-38.6257 37.6685L-39.0469 37.1929L-39.4102 37.7141L-39 38ZM-62 71L-62.1874 71.4636L-61.8178 71.613L-61.5898 71.2859L-62 71ZM-85.5 61.5L-85.3126 61.0365L-85.5775 60.9294L-85.8042 61.1032L-85.5 61.5ZM-100.5 73L-100.817 73.3864L-100.511 73.6383L-100.196 73.3968L-100.5 73ZM-114.5 61.5L-114.183 61.1137L-114.204 61.0961L-114.227 61.0809L-114.5 61.5ZM-146 41L-145.727 40.5809L-146.117 40.3272L-146.398 40.6978L-146 41ZM-168 70L-167.845 70.4753L-167.696 70.4268L-167.602 70.3022L-168 70ZM-235 70L-235.273 70.4188L-235.19 70.473L-235.092 70.4914L-235 70ZM-258 55L-257.727 54.5812L-258.092 54.3429L-258.378 54.6725L-258 55ZM-271 70L-271.417 70.2757L-271.054 70.8254L-270.622 70.3275L-271 70ZM-310 11L-309.583 10.7243L-310.02 10.0632L-310.428 10.7422L-310 11ZM-345.5 70V70.5H-345.217L-345.072 70.2578L-345.5 70ZM-400.858 78.4794L-373.858 70.4794L-374.142 69.5206L-401.142 77.5206L-400.858 78.4794ZM-192.5 77.5H-401V78.5H-192.5V77.5ZM14 77.5H-192.5V78.5H14V77.5ZM14 78.5H25.5V77.5H14V78.5ZM25.5 78.5H212V77.5H25.5V78.5ZM212.121 77.5149L180.121 69.5149L179.879 70.4851L211.879 78.4851L212.121 77.5149ZM180.273 69.5812L157.273 54.5812L156.727 55.4188L179.727 70.4188L180.273 69.5812ZM156.622 54.6725L143.622 69.6725L144.378 70.3275L157.378 55.3275L156.622 54.6725ZM144.417 69.7243L105.417 10.7243L104.583 11.2757L143.583 70.2757L144.417 69.7243ZM104.572 10.7422L69.0716 69.7422L69.9284 70.2578L105.428 11.2578L104.572 10.7422ZM69.5 69.5H41V70.5H69.5V69.5ZM40.8579 69.5206L17.7103 76.3792L17.9944 77.338L41.1421 70.4794L40.8579 69.5206ZM-8.07382 73.4945L17.7785 77.3531L17.9262 76.364L-7.92618 72.5055L-8.07382 73.4945ZM-39.3743 38.3315L-8.3743 73.3315L-7.6257 72.6685L-38.6257 37.6685L-39.3743 38.3315ZM-61.5898 71.2859L-38.5898 38.2859L-39.4102 37.7141L-62.4102 70.7141L-61.5898 71.2859ZM-85.6874 61.9636L-62.1874 71.4636L-61.8126 70.5364L-85.3126 61.0365L-85.6874 61.9636ZM-100.196 73.3968L-85.1958 61.8968L-85.8042 61.1032L-100.804 72.6032L-100.196 73.3968ZM-114.817 61.8864L-100.817 73.3864L-100.183 72.6136L-114.183 61.1137L-114.817 61.8864ZM-146.273 41.4191L-114.773 61.9191L-114.227 61.0809L-145.727 40.5809L-146.273 41.4191ZM-167.602 70.3022L-145.602 41.3022L-146.398 40.6978L-168.398 69.6978L-167.602 70.3022ZM-192.345 78.4753L-167.845 70.4753L-168.155 69.5247L-192.655 77.5247L-192.345 78.4753ZM-235.092 70.4914L-192.592 78.4914L-192.408 77.5086L-234.908 69.5086L-235.092 70.4914ZM-258.273 55.4188L-235.273 70.4188L-234.727 69.5812L-257.727 54.5812L-258.273 55.4188ZM-270.622 70.3275L-257.622 55.3275L-258.378 54.6725L-271.378 69.6725L-270.622 70.3275ZM-310.417 11.2757L-271.417 70.2757L-270.583 69.7243L-309.583 10.7243L-310.417 11.2757ZM-327.322 40.7578L-309.572 11.2578L-310.428 10.7422L-328.178 40.2422L-327.322 40.7578ZM-345.072 70.2578L-327.322 40.7578L-328.178 40.2422L-345.928 69.7422L-345.072 70.2578ZM-374 70.5H-345.5V69.5H-374V70.5Z",fill:"#CFD5DA"})),a.createElement("mask",{id:"mask1_467_73096",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"52",y:"0",width:"1140",height:"80"},a.createElement("rect",{x:"52",width:"1140",height:"80",fill:"#C4C4C4"})),a.createElement("g",{mask:"url(#mask1_467_73096)"},a.createElement("rect",{x:"55.5",y:"-1.5",width:"1140",height:"80",fill:"#CFD5DA",fillOpacity:"0.25",stroke:"#8F9EAA",strokeDasharray:"2 5"}),a.createElement("rect",{x:"55",width:"86",height:"3",fill:"#CFD5DA"}))))},J=new(f())({id:"error-state",use:"error-state-usage",viewBox:"0 0 199 79",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 199 79" id="error-state"><path fill="#8F9EAA" fill-rule="evenodd" d="m91.008 47.745 2.142 1.506.575-.819-2.438-1.713-.287.409-.298-.401L51.319 76.01 25.983 77.76H0v1h26.017l.017-.002 25.5-1.76.147-.01.117-.087 39.21-29.156Zm7.017 4.932 4.875 3.427.575-.818-4.875-3.427-.575.818Zm9.75 6.854 4.875 3.427.575-.818-4.875-3.427-.575.818Zm9.75 6.854 4.875 3.426.575-.818-4.875-3.427-.575.819Zm25.62.71-.199-.061-.182.098-3.25 1.742.472.882 3.067-1.645 2.679.812.29-.957-2.877-.872Zm8.336 3.57 2.874.871 2.874.871.29-.957-2.874-.871-2.874-.871-.29.957Zm-21.245 4.318 3.25-1.742-.472-.882-2.979 1.597-2.185-1.536-.575.818 2.437 1.713.253.178.271-.146Zm32.742-.834 2.877.872.043.013.044.005 2.667.31.115-.993-2.622-.305-2.834-.859-.29.957Zm10.964 1.82 5.334.619.115-.993-5.333-.62-.116.993Zm10.667 1.239 5.333.619.116-.993-5.334-.62-.115.993Zm10.667 1.239 2.666.31.116-.994-2.667-.31-.115.993Z" clip-rule="evenodd" /><mask id="error-state_a" width="93" height="79" x="53" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#C4C4C4" d="M53 0h93v79H53z" /></mask><g fill="#CFD5DA" mask="url(#error-state_a)"><path fill-opacity=".25" stroke="#8F9EAA" stroke-dasharray="2 5" d="M56.5-1.5h85v82h-85z" /><path d="M56 0h86v3H56z" /></g></symbol>'}),Q=(L().add(J),J),W=function(){return a.createElement("svg",{viewBox:Q.viewBox,width:"197"},a.createElement("use",{xlinkHref:"#".concat(Q.id)}))},X=(0,K.default)(m.Button).withConfig({displayName:"errorView__RetryButton",componentId:"sc-1n9qb8k-0"})(["white-space:normal !important;align-items:flex-start !important;width:230px !important;font-size:12px !important;font-weight:normal !important;& > *{align-items:start !important;margin:0 !important;padding:0 !important;}"]),ee=function(e){var t=e.onRetry;return a.createElement(m.Flex,{column:!0,alignItems:"center",width:"100%"},a.createElement(W,null),a.createElement(m.TextSmall,{margin:[1,0,0],color:"textDescription"},"Something went wrong."),a.createElement(X,{margin:[2,0,0],padding:[0],onClick:t,icon:"reload",flavour:"borderless",label:"Retry fetching anomalies for the same timeframe",height:"initial",width:"initial"}))},te=["error","loading","hasData","onRetry","totalDimensionsCount"],ne=function(e){var t=e.error,n=e.loading,r=e.hasData;return t?a.createElement(m.TextSmall,null,"No data"===t?"No data for this period. Try highlighting an other area.":t.errorMessage||"Something went wrong"):n?a.createElement(m.TextSmall,null,"Searching for anomalies..."):r?a.createElement(m.TextSmall,{color:"sectionDescription"},"Anomalous metrics in the selected timeframe sorted from most anomalous to least."):a.createElement(m.TextSmall,null,"You haven't highlighted any timeframe yet.")},ae=function(e){var t=e.error,n=e.loading,r=e.hasData,o=e.onRetry,i=e.totalDimensionsCount,l=(0,V.Z)(e,te);return a.createElement(m.Flex,(0,j.Z)({column:!0,gap:2,padding:[4],background:"sideBar"},l),a.createElement(m.Flex,{gap:1,alignItems:"baseline"},a.createElement(m.H4,{color:"sectionTitle"},i?"".concat(i," "):"","Anomalous metrics"),a.createElement(z,null)),a.createElement(ne,{hasData:r,loading:n,error:t}),t?a.createElement(ee,{onRetry:o}):a.createElement(q,{animate:n}))},re=function(e){var t=(0,r.TA)({extraKey:"anomalies"}),n=(0,P.$g)({nodeIds:t,flavour:"anomaly"}),o=n.loaded,i=n.loading,l=n.error,c=n.totalDimensionsCount;return a.createElement(ae,(0,j.Z)({loading:i,error:l,hasData:o,totalDimensionsCount:c},e))};function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){(0,F.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var le={"anomaly_detection.anomaly_rate":{name:"Anomaly Rate",info:"This is the percentage of metrics that are anomalous."},"anomaly_detection.dimensions":{name:"Count of Anomalous Metrics",info:"Variance in the amount of anomalous metrics over time could indicate unexpected behavior that merits investigation."},"anomaly_detection.detector_events":{name:"Anomaly Events Detected ",info:"An anomaly event is a period of time when a node has persistently elevated anomaly rates across all metrics. This may indicate unexpected behavior that merits investigation."}},ce={"Anomaly advisor":{showAR:!1,name:"Anomaly advisor",info:a.createElement(m.Flex,{column:!0,gap:2},a.createElement(m.TextSmall,{color:"sectionDescription"},"Machine Learning powered automated anomaly detection running at the edge."),a.createElement(m.TextSmall,{color:"sectionDescription"},"Use this page as a starting point to explore potential anomalies. Learn more on"," ",a.createElement(y.Z,{Component:m.TextSmall,href:"https://learn.netdata.cloud/docs/cloud/insights/anomaly-advisor",target:"_blank",rel:"noopener noreferrer"},"how to")," ","use Anomaly Advisor."),a.createElement(m.Flex,{gap:1,alignItems:"center"},a.createElement(m.Icon,{name:"highlightArea",color:"sectionDescription",size:"small"}),a.createElement(m.TextSmall,{color:"sectionDescription"},"Highlight a time-frame of interest to explore potential anomalies.")))},"Anomalous metrics":{weightKey:"score",info:a.createElement(re,null)}},se=Object.keys(le),de=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).os,a={},r=function(e,t){var n={},a={},r={};return se.forEach((function(e,n){t[e]={chartId:e,id:"Anomaly advisor",subMenuId:e,priority:-(n+1)}})),e.forEach((function(e,n){t[e]={chartId:e,id:"Anomalous metrics",subMenuId:e,priority:n+1}})),[].concat(se,(0,o.Z)(e)).forEach((function(e){var o=t[e],i="".concat(o.id,"|").concat(o.subMenuId);a[i]||(a[i]=[]),n[o.id]||(n[o.id]=new Set),r[o.id]||(r[o.id]=[]),o.chartId&&(a[i].push(o.chartId),r[o.id].push(o.chartId)),i&&n[o.id].add(i)})),{chartMenus:t,menuGroups:n,subMenus:a,menuGroupChartIds:r}}(e,a),i=r.menuGroups,l=r.subMenus,c=r.menuGroupChartIds,s={},d=Object.keys(i).reduce((function(e,t){var n=c[t],r=(0,o.Z)(i[t]),l=a[n[0]];return e[t]=ie(ie(ie({},l),ce[t]),{},{level:0,id:t,subMenuIds:r,subMenuChartIds:n,link:"".concat((0,B.Z)("menu_".concat(t))),size:24,forceVisibility:!0,arFlavour:"anomaly"}),e}),{}),u=Object.keys(l).reduce((function(e,t){var n=l[t];if(!n.length)return e;var r=a[n[0]],o=d[r.id].id,i=r.chartId.split("::"),c=(0,k.Z)(i,2),s=c[0],u=c[1],m=le[r.chartId];return e[t]=ie(ie(ie({},r),{},{name:u?"".concat(s," > ").concat(u):s},m),{},{level:1,id:t,menuGroupId:o,chartIds:n,link:"".concat((0,B.Z)("menu_".concat(r.id,"_submenu_").concat(r.subMenuId))),size:24,forceVisibility:!0,arFlavour:"anomaly",showAR:!m,weightKey:"score"}),e}),{}),m=Object.keys(i),h=m.reduce((function(e,t){1;var r=d[t];return[].concat((0,o.Z)(e),[r],(0,o.Z)(d[t].subMenuIds.reduce((function(e,r){1;var i=u[r];return[].concat((0,o.Z)(e),[i],(0,o.Z)(u[r].chartIds.map((function(e){var o=a[e];if(o)return 1,s[e]=(0,N.ZP)(ie(ie({},o),{},{id:e,context:e}),{menuId:t,subMenuId:r,sectionInfo:u[r].info},{os:n}),ie(ie({},s[e]),{},{level:2,size:365,menuKey:d[t].id,forceVisibility:!0})}))))}),[])))}),[]);return a=null,{stickyIndexes:[],allCharts:h,menuGroupIds:m,menuGroupById:d,subMenuById:u,menuChartsAttributeById:s}},ue=n(15394),me=n(13962),he=n(22962),fe=n(61152),pe=n(69743),Le=n(56102),ge=n(11835),ve=["id"],Ze=function(e){var t=e.id,n=(0,V.Z)(e,ve);return a.createElement(pe.d,(0,j.Z)({id:t},n),a.createElement(Le.Y,{id:t}),a.createElement(ge.f,{id:t}))},ye=(0,a.memo)(Ze),be=n(71824),Me=n(9058),Ee=n(16978),we=(n(69826),n(31672),n(59461),n(74916),n(4723),n(24298)),xe=n(96415),Ce=n(70873),ke=n(43460),Ae=n(84817),Ie=n(18039),De=function(e,t){return e&&e.getRoot().getChildren().find((function(e){return e.match({id:"anomalies-".concat(t)})}))},Oe=function(e){return function(t){return"overview-page::".concat(e.getAttribute("id"),"::").concat(t)}},Se=["id"],Te=["height"];function _e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function He(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_e(Object(n),!0).forEach((function(t){(0,F.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Be=function(e){var t=e.id,n=(0,V.Z)(e,Se),r=(0,D.UL)(),o=(0,be.nI)(t),i=o.height,l=void 0===i?0:i,c=(0,V.Z)(o,Te),s=(0,Me.e)(),d=(0,a.useMemo)((function(){var e=De(s,r),n=e.getNode({id:t});if(n)return n;var a=t.split("::"),o=(0,k.Z)(a,2),i=o[0],d=o[1];return n=s.makeChart({attributes:He({contextScope:[i],height:(0,Ie.C)(e,t,l+260),id:t,roomId:r,selectedDimensions:d?[d]:[],groupBy:["instance"]},c),makeTrack:Oe}),e.appendChild(n),n}),[s,r,t]);return a.createElement(Ee.Z,(0,j.Z)({margin:[0,0,2],chart:d,"data-chartid":t,"data-track":d.track("container")},n))},Fe=a.memo(Be,(function(e,t){return e.id===t.id})),Ne=["id","subMenuId"],je=function(e){var t=e.id,n=e.subMenuId,r=(0,V.Z)(e,Ne);return a.createElement(Fe,(0,j.Z)({id:t,role:"graphics-object","aria-roledescription":"chart","data-submenuid":n},r))},Ve=(0,a.memo)(je),Pe=n(14048),Re=n(12664),Ge=n(62525),Ue=n(71929),ze=(0,Ge.Ji)((function(e){return a.createElement(Ue.Z,(0,j.Z)({as:"p",role:"document"},e))}),(function(e){return{children:e.info}})),Ke=function(e){var t=e.id;return a.createElement(Pe.D,{gap:0,id:t},a.createElement(Re.o,{id:t,margin:[1,0,0]}),a.createElement(ze,{id:t}))},Ye=(0,a.memo)(Ke),$e=function(e){switch(e.level){case 0:return ye;case 1:return Ye;case 2:return Ve;default:return null}},qe=function(e){var t=e.onChartNameChange,n=e.initialChartName,r=e.dashboardOptions,o=e.linkToGo,i=e.contextToGo,l=(0,fe.Z)("addToDashboardModal"),c=(0,k.Z)(l,4),s=c[0],d=c[3],u=(0,ue.Z)({onChartNameChange:t,initialChartName:n,linkToGo:o,contextToGo:i}),m=u.setActiveMenuGroupId,h=u.setActiveSubMenuId;return a.createElement(T.v,null,a.createElement(me.Z,{onActiveMenuGroupId:m,onActiveSubMenuId:h,getComponent:$e,dashboardOptions:r,initialChartName:n,checkVisibility:function(){return!0}}),s&&a.createElement(he.Z,{onClose:d}))},Je=["alerts","info"],Qe=function(e){var t=e.nodeIds,n=(0,S.th)(),o=(0,D.UL)(),i=(0,_.ZP)(n,o,t),l=(0,k.Z)(i,5),c=l[0],s=l[1],d=l[2],u=l[3],m=l[4],h=(0,O.MS)(o,d),f=(0,A.Z)(),p=(0,k.Z)(f,2),L=p[0],g=p[1].width;!function(e,t,n){var r=n.width,o=n.host;if(!o)throw"No host provided";var i=(0,Me.e)();(0,a.useMemo)((function(){if(i&&e){var n=De(i,e);if(!n)return n=i.makeContainer({attributes:{id:"anomalies-".concat(e),roomId:e,host:o,overlays:{proceeded:{type:"proceeded"}},nodesScope:t,width:r,toolboxElements:[ke.default,xe.default,Ce.default,Ae.Z]}}),i.appendChild(n),(0,we.unregister)((0,Ie.M)(i,n))}}),[i,o,e,t]),(0,a.useEffect)((function(){if(i&&e){var n=De(i,e);n&&n.getNodes().forEach((function(e){e.updateAttribute("nodesScope",t),e.getAttribute("active")&&"chart"===e.type&&e.trigger("fetch")}))}}),[i,e,t]),(0,a.useEffect)((function(){return function(){if(i&&e){var t=De(i,e);t&&t.destroy()}}}),[e])}(o,t,{host:(0,S.Q6)()?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(n,"/rooms/").concat(o),width:g});var v=(0,r.I0)("chartName",{key:o,extraKey:"anomalies"}),Z=(0,k.Z)(v,2),y=Z[0],b=Z[1],M=(0,a.useState)(0),E=(0,k.Z)(M,2),w=E[0],x=E[1],C=(0,a.useState)(!1),F=(0,k.Z)(C,2),N=F[0],j=F[1];return(0,a.useEffect)((function(){j(!!s.length)}),[s.length]),a.createElement(T.Z,{getChart:h,chartIds:c,getMenu:de},a.createElement(I.Z,{ref:L,position:"relative",rightBar:a.createElement(H.Z,{nodeIds:t,title:"Anomalies",initialChartName:y,hiddenTabs:Je,selectedTab:w,setSelectedTab:x,flavour:"anomalies",loaded:!0,hasSearch:!1}),gap:1},a.createElement(qe,{initialChartName:y,onChartNameChange:b,linkToGo:N&&(0,B.Z)("menu_Anomalous metrics")}),(!s.length||!!u)&&a.createElement(re,{position:"absolute",bottom:0,right:0,left:0,zIndex:6e3,onRetry:m})))},We=function(){var e=(0,r.TA)({extraKey:"anomalies"}),t=(0,u.zN)(),n=(0,u.fD)(),i=function(e){var t=(0,l.HZ)(),n=(0,l.Ne)(t);return(0,a.useMemo)((function(){return n.reduce((function(t,n){var a=n.capabilities.ml;return null!==a&&void 0!==a&&a.enabled?t.predicting=[].concat((0,o.Z)(t.predicting),[s(n,e)]):t.incapable=[].concat((0,o.Z)(t.incapable),[s(n,e)]),t}),{predicting:[],incapable:[]})}),[t.length,e])}("id").predicting;if(n&&!t.length)return a.createElement(d.Z,null);var c=i.length>0;return n&&!c?a.createElement(C,null):a.createElement(Qe,{nodeIds:e})}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="131bad06-f856-418b-9744-b8f95744de20",e._sentryDebugIdIdentifier="sentry-dbid-131bad06-f856-418b-9744-b8f95744de20")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[359],{57359:function(e,t,n){n.r(t),n.d(t,{default:function(){return We}});var a=n(67294),r=n(95248),o=n(93433),i=(n(26699),n(32023),n(57327),n(41539),n(88449),n(2490),n(59849),n(92222),n(85827),n(25387),n(72608),n(4480)),l=n(97945),c={nodes:(0,i.xu)({key:"anomalyFilters",default:[]})},s=((0,i.CG)({key:"anomalyFilterState",get:function(e){var t=e.roomId,n=e.filterKey;return function(e){return(0,e.get)(c[n](t))}},set:function(e){var t=e.roomId,n=e.filterKey;return function(e,a){var r=e.set,i=e.get;if(Array.isArray(a))return r(c[n](t),a);var l=i(c[n](t)),s=l.includes(a)?l.filter((function(e){return e!==a})):[].concat((0,o.Z)(l),[a]);r(c[n](t),s)}}}),function(e,t){return t?e[t]:e}),d=n(36560),u=n(96929),m=n(57509),h=n(87854),f=n.n(h),p=n(95348),L=n.n(p),g=new(f())({id:"notCapableNodes",use:"notCapableNodes-usage",viewBox:"0 0 231 230",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 231 230" id="notCapableNodes"><path fill="#EDF2F6" d="M115.5 226c61.304 0 111-49.696 111-111S176.804 4 115.5 4 4.5 53.696 4.5 115s49.696 111 111 111Z" /><path fill="#E2E6EC" d="M212.149 115A96.65 96.65 0 1 1 39.894 54.809l3.303-4.038A96.649 96.649 0 0 1 212.149 115Z" /><mask id="notCapableNodes_a" width="206" height="194" x="6" y="18" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#E2E6EC" d="M211.798 114.743a96.657 96.657 0 0 1-40.698 78.821 96.659 96.659 0 0 1-87.833 12.432C68.697 200.905 26.108 203.209 15.5 192c-10.608-11.209.28-35.172-4-50-4.281-14.828-6.001-31.361-3-46.5 3.001-15.139-.614-35.927 9-48H40c13.017-14.675 33.037-22.027 52.086-26.708a96.648 96.648 0 0 1 119.712 93.951Z" /></mask><g mask="url(#notCapableNodes_a)"><g clip-path="url(#notCapableNodes_b)"><path fill="#45535C" d="M217.255 50H19.142a2.641 2.641 0 0 0-2.642 2.642v134.716A2.642 2.642 0 0 0 19.142 190h198.113a2.641 2.641 0 0 0 2.641-2.642V52.642A2.641 2.641 0 0 0 217.255 50Z" /><path fill="#546C82" d="M19.142 50h198.113a2.644 2.644 0 0 1 2.641 2.642v3.962H16.5v-3.962A2.641 2.641 0 0 1 19.142 50Z" /><path fill="#0F0" d="M21.123 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962Z" opacity=".5" /><path fill="#FF0" d="M27.726 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962Z" opacity=".5" /><path fill="red" d="M34.33 55.283a1.981 1.981 0 1 0 0-3.962 1.981 1.981 0 0 0 0 3.962Z" opacity=".5" /><path stroke="#fff" stroke-miterlimit="10" stroke-width="2" d="m34.33 88.962 6.604-6.603-6.604-6.604M44.236 88.302h11.887" /></g><path fill="#7698B0" d="M145.373 81.99a2.327 2.327 0 1 0-4.655 0v19.551a2.328 2.328 0 1 0 4.655 0V81.989Z" /><path fill="#6D8CA3" d="M145.373 83.386h7.821a2.421 2.421 0 0 1 2.421 2.42v11.918a2.42 2.42 0 0 1-2.421 2.421h-7.821v-16.76Z" /><path fill="#658196" d="M155.615 88.972h2.979a2.608 2.608 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.979v-5.587Z" /><path fill="#7698B0" d="M219.897 143.904v1.862h-36.35a9.31 9.31 0 0 1-9.311-9.31v-36.311c0-4.097-2.7-7.449-6.052-7.449h-6.982v-1.862h6.982c4.376 0 7.914 4.19 7.914 9.311v36.311a7.446 7.446 0 0 0 7.449 7.448h36.35Z" /><path fill="#80A4BF" d="M124.89 85.248h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM124.89 94.558h-9.31a1.862 1.862 0 1 0 0 3.725h9.31a1.862 1.862 0 1 0 0-3.725Z" /><path fill="#6D8CA3" d="M127.777 81.524h12.941v20.483h-12.941a3.818 3.818 0 0 1-3.818-3.818V85.341a3.814 3.814 0 0 1 2.357-3.527c.463-.192.959-.29 1.461-.29Z" /><path fill="#19B357" d="M106.269 107.127a2.327 2.327 0 0 0-4.655 0v19.553a2.327 2.327 0 0 0 4.655 0v-19.553Z" /><path fill="#00AB44" d="M106.269 108.524h7.821a2.421 2.421 0 0 1 2.421 2.421v11.917a2.421 2.421 0 0 1-2.421 2.421h-7.821v-16.759Z" /><path fill="#00993D" d="M116.511 114.11h2.979a2.607 2.607 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.979v-5.587Z" /><path fill="#00AB44" d="M219.896 132.732c-.016.624 0 1.136 0 1.862h-75.454a9.312 9.312 0 0 1-9.311-9.311c0-4.097-2.7-7.448-6.051-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.189 7.914 9.31a7.447 7.447 0 0 0 7.448 7.449h75.454Z" /><path fill="#00CB51" d="M85.786 110.386h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM85.786 119.697h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724Z" /><path fill="#00AB44" d="M88.672 106.662h12.942v20.483H88.672a3.817 3.817 0 0 1-3.817-3.817v-12.849a3.818 3.818 0 0 1 3.817-3.817Z" /><path fill="#7698B0" d="M124.89 149.025a2.327 2.327 0 1 0-4.655 0v19.552a2.328 2.328 0 0 0 4.655 0v-19.552Z" /><path fill="#6D8CA3" d="M124.89 150.421h7.821a2.421 2.421 0 0 1 2.421 2.421v11.824a2.421 2.421 0 0 1-2.421 2.421h-7.821v-16.666Z" /><path fill="#658196" d="M135.131 156.008h2.98a2.606 2.606 0 0 1 2.607 2.607v.372a2.608 2.608 0 0 1-2.607 2.607h-2.98v-5.586Z" /><path fill="#7698B0" d="M219.896 122.49h-56.833a7.446 7.446 0 0 0-7.448 7.448v20.483c0 5.121-3.538 9.311-7.914 9.311h-6.983v-1.862h6.983c3.352 0 6.052-3.352 6.052-7.449v-20.483a9.31 9.31 0 0 1 9.31-9.31h56.833v1.862Z" /><path fill="#80A4BF" d="M104.407 152.284h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724ZM104.407 161.594h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724Z" /><path fill="#6D8CA3" d="M107.293 148.559h12.942v20.484h-12.942a3.818 3.818 0 0 1-3.817-3.818v-12.848a3.818 3.818 0 0 1 3.817-3.818Z" /></g><defs><clipPath id="notCapableNodes_b"><path fill="#fff" d="M16.5 50h203.396v140H16.5z" /></clipPath></defs></symbol>'}),v=(L().add(g),g),Z=function(){return a.createElement(m.Flex,{width:"100%",justifyContent:"center",alignItems:"center",gap:3},a.createElement("svg",{viewBox:v.viewBox,height:"222px"},a.createElement("use",{xlinkHref:"#".concat(v.id)})),a.createElement(m.TextBig,{strong:!0},"Your nodes are either offline or not configured for ML"))},y=n(91008),b=function(){return a.createElement(m.Flex,{height:10.5,width:{min:10.5},background:"warningText",justifyContent:"center",alignItems:"center",round:"50%",sx:{borderRadius:"50%"}},a.createElement(m.Icon,{color:"warningBackground",name:"informationPress"}))},M=function(e){var t=e.to,n=e.children;return a.createElement(y.Z,{Component:m.Text,href:t,target:"_blank",rel:"noopener noreferrer"},n)},E=function(){return a.createElement(m.Flex,{column:!0,gap:1},a.createElement(m.Text,{strong:!0,color:"textDescription"},"Not Configured Nodes"),a.createElement(m.Text,{color:"textDescription"},"Learn how to configure your nodes"," ",a.createElement(M,{to:"https://learn.netdata.cloud/docs/cloud/insights/anomaly-advisor#enable-ml-on-netdata-agent"},"to support anomaly advisor"),"."))},w=function(){return a.createElement(m.Flex,{column:!0,gap:1},a.createElement(m.Text,{strong:!0,color:"textDescription"},"Not Capable Nodes"),a.createElement(m.Text,{color:"textDescription"},"All nodes need to be updated to a version higher than"," ",a.createElement(m.Text,{strong:!0,color:"textDescription"},"1.32"),". Learn how to"," ",a.createElement(M,{to:"https://learn.netdata.cloud/docs/agent/packaging/installer/update"},"update to the latest Netdata version"),"."))},x=function(){return a.createElement(m.Box,{round:!0,background:"elementBackground",padding:[4]},a.createElement(m.Flex,{gap:4,alignItems:"start"},a.createElement(b,null),a.createElement(m.Flex,{gap:4,column:!0},a.createElement(E,null),a.createElement(w,null))))},C=function(){return a.createElement(m.Flex,{column:!0,width:"100%",height:"100%",justifyContent:"start",padding:[8,4]},a.createElement(m.Flex,{column:!0,gap:8},a.createElement(Z,null),a.createElement(x,null)))},k=n(29439),A=n(88553),I=n(91268),D=n(37518),O=n(89479),S=n(74059),T=n(74662),_=n(25517),H=n(49887),B=n(39612),F=(n(82526),n(38880),n(49337),n(33321),n(69070),n(4942)),N=(n(47941),n(15581),n(34514),n(54747),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(21249),n(57640),n(9924),n(89692)),j=n(87462),V=n(45987),P=n(2077),R=n(89405),G=n(78122),U=function(e){return Math.floor(e/1e3)},z=function(){var e=(0,_.$B)(),t=(0,k.Z)(e,2),n=t[0],r=t[1],o=(0,R.rA)().localeTimeString,i=(0,a.useMemo)((function(){var e=U(n),t=U(r);return[(0,G.getDateDiff)(e,t),o(n,{secs:!0}),o(r,{secs:!0})]}),[n,r]),l=(0,k.Z)(i,3),c=l[0],s=l[1],d=l[2];return n&&r?a.createElement(m.Flex,{gap:1,alignItems:"baseline"},a.createElement(m.TextMicro,{strong:!0,color:"textLite"},a.createElement(m.TextSmall,{strong:!0,color:"textLite"},s," \u2192 ",d," \u2022")," ","Duration: ",c)):null},K=n(60677),Y=(0,K.keyframes)(["from{transform:translate(412px,0);}"]),$=K.default.g.withConfig({displayName:"skeleton__Animated",componentId:"sc-gwkfye-0"})(["animation:",";"],(function(e){return e.animate?(0,K.css)([""," 1s linear infinite"],Y):""})),q=function(e){var t=e.animate,n=void 0!==t&&t;return a.createElement("svg",{width:"1140",height:"80",viewBox:"0 0 1140 80",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a.createElement("mask",{id:"mask0_467_73096",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"0",y:"0",width:"1140",height:"80"},a.createElement("rect",{width:"1140",height:"80",fill:"#C4C4C4"})),a.createElement("g",{mask:"url(#mask0_467_73096)"},a.createElement($,{animate:n},a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M-374 70L-401 78H-192.5H14H25.5H212L180 70L157 55L144 70L105 11L69.5 70H41L17.8524 76.8586L-8 73L-39 38L-62 71L-85.5 61.5L-100.5 73L-114.5 61.5L-146 41L-168 70L-192.5 78L-235 70L-258 55L-271 70L-310 11L-327.75 40.5L-345.5 70H-374Z",fill:"#8F9EAA"}),a.createElement("path",{d:"M-401 78L-401.142 77.5206L-401 78.5V78ZM-374 70V69.5H-374.073L-374.142 69.5206L-374 70ZM212 78V78.5L212.121 77.5149L212 78ZM180 70L179.727 70.4188L179.797 70.4647L179.879 70.4851L180 70ZM157 55L157.273 54.5812L156.908 54.3429L156.622 54.6725L157 55ZM144 70L143.583 70.2757L143.946 70.8254L144.378 70.3275L144 70ZM105 11L105.417 10.7243L104.98 10.0632L104.572 10.7422L105 11ZM69.5 70V70.5H69.7827L69.9284 70.2578L69.5 70ZM41 70V69.5H40.9275L40.8579 69.5206L41 70ZM17.8524 76.8586L17.7785 77.3531L17.8882 77.3694L17.9944 77.338L17.8524 76.8586ZM-8 73L-8.3743 73.3315L-8.25369 73.4677L-8.07382 73.4945L-8 73ZM-39 38L-38.6257 37.6685L-39.0469 37.1929L-39.4102 37.7141L-39 38ZM-62 71L-62.1874 71.4636L-61.8178 71.613L-61.5898 71.2859L-62 71ZM-85.5 61.5L-85.3126 61.0365L-85.5775 60.9294L-85.8042 61.1032L-85.5 61.5ZM-100.5 73L-100.817 73.3864L-100.511 73.6383L-100.196 73.3968L-100.5 73ZM-114.5 61.5L-114.183 61.1137L-114.204 61.0961L-114.227 61.0809L-114.5 61.5ZM-146 41L-145.727 40.5809L-146.117 40.3272L-146.398 40.6978L-146 41ZM-168 70L-167.845 70.4753L-167.696 70.4268L-167.602 70.3022L-168 70ZM-235 70L-235.273 70.4188L-235.19 70.473L-235.092 70.4914L-235 70ZM-258 55L-257.727 54.5812L-258.092 54.3429L-258.378 54.6725L-258 55ZM-271 70L-271.417 70.2757L-271.054 70.8254L-270.622 70.3275L-271 70ZM-310 11L-309.583 10.7243L-310.02 10.0632L-310.428 10.7422L-310 11ZM-345.5 70V70.5H-345.217L-345.072 70.2578L-345.5 70ZM-400.858 78.4794L-373.858 70.4794L-374.142 69.5206L-401.142 77.5206L-400.858 78.4794ZM-192.5 77.5H-401V78.5H-192.5V77.5ZM14 77.5H-192.5V78.5H14V77.5ZM14 78.5H25.5V77.5H14V78.5ZM25.5 78.5H212V77.5H25.5V78.5ZM212.121 77.5149L180.121 69.5149L179.879 70.4851L211.879 78.4851L212.121 77.5149ZM180.273 69.5812L157.273 54.5812L156.727 55.4188L179.727 70.4188L180.273 69.5812ZM156.622 54.6725L143.622 69.6725L144.378 70.3275L157.378 55.3275L156.622 54.6725ZM144.417 69.7243L105.417 10.7243L104.583 11.2757L143.583 70.2757L144.417 69.7243ZM104.572 10.7422L69.0716 69.7422L69.9284 70.2578L105.428 11.2578L104.572 10.7422ZM69.5 69.5H41V70.5H69.5V69.5ZM40.8579 69.5206L17.7103 76.3792L17.9944 77.338L41.1421 70.4794L40.8579 69.5206ZM-8.07382 73.4945L17.7785 77.3531L17.9262 76.364L-7.92618 72.5055L-8.07382 73.4945ZM-39.3743 38.3315L-8.3743 73.3315L-7.6257 72.6685L-38.6257 37.6685L-39.3743 38.3315ZM-61.5898 71.2859L-38.5898 38.2859L-39.4102 37.7141L-62.4102 70.7141L-61.5898 71.2859ZM-85.6874 61.9636L-62.1874 71.4636L-61.8126 70.5364L-85.3126 61.0365L-85.6874 61.9636ZM-100.196 73.3968L-85.1958 61.8968L-85.8042 61.1032L-100.804 72.6032L-100.196 73.3968ZM-114.817 61.8864L-100.817 73.3864L-100.183 72.6136L-114.183 61.1137L-114.817 61.8864ZM-146.273 41.4191L-114.773 61.9191L-114.227 61.0809L-145.727 40.5809L-146.273 41.4191ZM-167.602 70.3022L-145.602 41.3022L-146.398 40.6978L-168.398 69.6978L-167.602 70.3022ZM-192.345 78.4753L-167.845 70.4753L-168.155 69.5247L-192.655 77.5247L-192.345 78.4753ZM-235.092 70.4914L-192.592 78.4914L-192.408 77.5086L-234.908 69.5086L-235.092 70.4914ZM-258.273 55.4188L-235.273 70.4188L-234.727 69.5812L-257.727 54.5812L-258.273 55.4188ZM-270.622 70.3275L-257.622 55.3275L-258.378 54.6725L-271.378 69.6725L-270.622 70.3275ZM-310.417 11.2757L-271.417 70.2757L-270.583 69.7243L-309.583 10.7243L-310.417 11.2757ZM-327.322 40.7578L-309.572 11.2578L-310.428 10.7422L-328.178 40.2422L-327.322 40.7578ZM-345.072 70.2578L-327.322 40.7578L-328.178 40.2422L-345.928 69.7422L-345.072 70.2578ZM-374 70.5H-345.5V69.5H-374V70.5Z",fill:"#CFD5DA"})),a.createElement("mask",{id:"mask1_467_73096",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:"52",y:"0",width:"1140",height:"80"},a.createElement("rect",{x:"52",width:"1140",height:"80",fill:"#C4C4C4"})),a.createElement("g",{mask:"url(#mask1_467_73096)"},a.createElement("rect",{x:"55.5",y:"-1.5",width:"1140",height:"80",fill:"#CFD5DA",fillOpacity:"0.25",stroke:"#8F9EAA",strokeDasharray:"2 5"}),a.createElement("rect",{x:"55",width:"86",height:"3",fill:"#CFD5DA"}))))},J=new(f())({id:"error-state",use:"error-state-usage",viewBox:"0 0 199 79",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 199 79" id="error-state"><path fill="#8F9EAA" fill-rule="evenodd" d="m91.008 47.745 2.142 1.506.575-.819-2.438-1.713-.287.409-.298-.401L51.319 76.01 25.983 77.76H0v1h26.017l.017-.002 25.5-1.76.147-.01.117-.087 39.21-29.156Zm7.017 4.932 4.875 3.427.575-.818-4.875-3.427-.575.818Zm9.75 6.854 4.875 3.427.575-.818-4.875-3.427-.575.818Zm9.75 6.854 4.875 3.426.575-.818-4.875-3.427-.575.819Zm25.62.71-.199-.061-.182.098-3.25 1.742.472.882 3.067-1.645 2.679.812.29-.957-2.877-.872Zm8.336 3.57 2.874.871 2.874.871.29-.957-2.874-.871-2.874-.871-.29.957Zm-21.245 4.318 3.25-1.742-.472-.882-2.979 1.597-2.185-1.536-.575.818 2.437 1.713.253.178.271-.146Zm32.742-.834 2.877.872.043.013.044.005 2.667.31.115-.993-2.622-.305-2.834-.859-.29.957Zm10.964 1.82 5.334.619.115-.993-5.333-.62-.116.993Zm10.667 1.239 5.333.619.116-.993-5.334-.62-.115.993Zm10.667 1.239 2.666.31.116-.994-2.667-.31-.115.993Z" clip-rule="evenodd" /><mask id="error-state_a" width="93" height="79" x="53" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#C4C4C4" d="M53 0h93v79H53z" /></mask><g fill="#CFD5DA" mask="url(#error-state_a)"><path fill-opacity=".25" stroke="#8F9EAA" stroke-dasharray="2 5" d="M56.5-1.5h85v82h-85z" /><path d="M56 0h86v3H56z" /></g></symbol>'}),Q=(L().add(J),J),W=function(){return a.createElement("svg",{viewBox:Q.viewBox,width:"197"},a.createElement("use",{xlinkHref:"#".concat(Q.id)}))},X=(0,K.default)(m.Button).withConfig({displayName:"errorView__RetryButton",componentId:"sc-1n9qb8k-0"})(["white-space:normal !important;align-items:flex-start !important;width:230px !important;font-size:12px !important;font-weight:normal !important;& > *{align-items:start !important;margin:0 !important;padding:0 !important;}"]),ee=function(e){var t=e.onRetry;return a.createElement(m.Flex,{column:!0,alignItems:"center",width:"100%"},a.createElement(W,null),a.createElement(m.TextSmall,{margin:[1,0,0],color:"textDescription"},"Something went wrong."),a.createElement(X,{margin:[2,0,0],padding:[0],onClick:t,icon:"reload",flavour:"borderless",label:"Retry fetching anomalies for the same timeframe",height:"initial",width:"initial"}))},te=["error","loading","hasData","onRetry","totalDimensionsCount"],ne=function(e){var t=e.error,n=e.loading,r=e.hasData;return t?a.createElement(m.TextSmall,null,"No data"===t?"No data for this period. Try highlighting an other area.":t.errorMessage||"Something went wrong"):n?a.createElement(m.TextSmall,null,"Searching for anomalies..."):r?a.createElement(m.TextSmall,{color:"sectionDescription"},"Anomalous metrics in the selected timeframe sorted from most anomalous to least."):a.createElement(m.TextSmall,null,"You haven't highlighted any timeframe yet.")},ae=function(e){var t=e.error,n=e.loading,r=e.hasData,o=e.onRetry,i=e.totalDimensionsCount,l=(0,V.Z)(e,te);return a.createElement(m.Flex,(0,j.Z)({column:!0,gap:2,padding:[4],background:"sideBar"},l),a.createElement(m.Flex,{gap:1,alignItems:"baseline"},a.createElement(m.H4,{color:"sectionTitle"},i?"".concat(i," "):"","Anomalous metrics"),a.createElement(z,null)),a.createElement(ne,{hasData:r,loading:n,error:t}),t?a.createElement(ee,{onRetry:o}):a.createElement(q,{animate:n}))},re=function(e){var t=(0,r.TA)({extraKey:"anomalies"}),n=(0,P.$g)({nodeIds:t,flavour:"anomaly"}),o=n.loaded,i=n.loading,l=n.error,c=n.totalDimensionsCount;return a.createElement(ae,(0,j.Z)({loading:i,error:l,hasData:o,totalDimensionsCount:c},e))};function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){(0,F.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var le={"anomaly_detection.anomaly_rate":{name:"Anomaly Rate",info:"This is the percentage of metrics that are anomalous."},"anomaly_detection.dimensions":{name:"Count of Anomalous Metrics",info:"Variance in the amount of anomalous metrics over time could indicate unexpected behavior that merits investigation."},"anomaly_detection.detector_events":{name:"Anomaly Events Detected ",info:"An anomaly event is a period of time when a node has persistently elevated anomaly rates across all metrics. This may indicate unexpected behavior that merits investigation."}},ce={"Anomaly advisor":{showAR:!1,name:"Anomaly advisor",info:a.createElement(m.Flex,{column:!0,gap:2},a.createElement(m.TextSmall,{color:"sectionDescription"},"Machine Learning powered automated anomaly detection running at the edge."),a.createElement(m.TextSmall,{color:"sectionDescription"},"Use this page as a starting point to explore potential anomalies. Learn more on"," ",a.createElement(y.Z,{Component:m.TextSmall,href:"https://learn.netdata.cloud/docs/cloud/insights/anomaly-advisor",target:"_blank",rel:"noopener noreferrer"},"how to")," ","use Anomaly Advisor."),a.createElement(m.Flex,{gap:1,alignItems:"center"},a.createElement(m.Icon,{name:"highlightArea",color:"sectionDescription",size:"small"}),a.createElement(m.TextSmall,{color:"sectionDescription"},"Highlight a time-frame of interest to explore potential anomalies.")))},"Anomalous metrics":{weightKey:"score",info:a.createElement(re,null)}},se=Object.keys(le),de=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).os,a={},r=function(e,t){var n={},a={},r={};return se.forEach((function(e,n){t[e]={chartId:e,id:"Anomaly advisor",subMenuId:e,priority:-(n+1)}})),e.forEach((function(e,n){t[e]={chartId:e,id:"Anomalous metrics",subMenuId:e,priority:n+1}})),[].concat(se,(0,o.Z)(e)).forEach((function(e){var o=t[e],i="".concat(o.id,"|").concat(o.subMenuId);a[i]||(a[i]=[]),n[o.id]||(n[o.id]=new Set),r[o.id]||(r[o.id]=[]),o.chartId&&(a[i].push(o.chartId),r[o.id].push(o.chartId)),i&&n[o.id].add(i)})),{chartMenus:t,menuGroups:n,subMenus:a,menuGroupChartIds:r}}(e,a),i=r.menuGroups,l=r.subMenus,c=r.menuGroupChartIds,s={},d=Object.keys(i).reduce((function(e,t){var n=c[t],r=(0,o.Z)(i[t]),l=a[n[0]];return e[t]=ie(ie(ie({},l),ce[t]),{},{level:0,id:t,subMenuIds:r,subMenuChartIds:n,link:"".concat((0,B.Z)("menu_".concat(t))),size:24,forceVisibility:!0,arFlavour:"anomaly"}),e}),{}),u=Object.keys(l).reduce((function(e,t){var n=l[t];if(!n.length)return e;var r=a[n[0]],o=d[r.id].id,i=r.chartId.split("::"),c=(0,k.Z)(i,2),s=c[0],u=c[1],m=le[r.chartId];return e[t]=ie(ie(ie({},r),{},{name:u?"".concat(s," > ").concat(u):s},m),{},{level:1,id:t,menuGroupId:o,chartIds:n,link:"".concat((0,B.Z)("menu_".concat(r.id,"_submenu_").concat(r.subMenuId))),size:24,forceVisibility:!0,arFlavour:"anomaly",showAR:!m,weightKey:"score"}),e}),{}),m=Object.keys(i),h=m.reduce((function(e,t){1;var r=d[t];return[].concat((0,o.Z)(e),[r],(0,o.Z)(d[t].subMenuIds.reduce((function(e,r){1;var i=u[r];return[].concat((0,o.Z)(e),[i],(0,o.Z)(u[r].chartIds.map((function(e){var o=a[e];if(o)return 1,s[e]=(0,N.ZP)(ie(ie({},o),{},{id:e,context:e}),{menuId:t,subMenuId:r,sectionInfo:u[r].info},{os:n}),ie(ie({},s[e]),{},{level:2,size:365,menuKey:d[t].id,forceVisibility:!0})}))))}),[])))}),[]);return a=null,{stickyIndexes:[],allCharts:h,menuGroupIds:m,menuGroupById:d,subMenuById:u,menuChartsAttributeById:s}},ue=n(15394),me=n(13962),he=n(22962),fe=n(61152),pe=n(69743),Le=n(56102),ge=n(11835),ve=["id"],Ze=function(e){var t=e.id,n=(0,V.Z)(e,ve);return a.createElement(pe.d,(0,j.Z)({id:t},n),a.createElement(Le.Y,{id:t}),a.createElement(ge.f,{id:t}))},ye=(0,a.memo)(Ze),be=n(71824),Me=n(9058),Ee=n(16978),we=(n(69826),n(31672),n(59461),n(74916),n(4723),n(24298)),xe=n(96415),Ce=n(70873),ke=n(43460),Ae=n(84817),Ie=n(18039),De=function(e,t){return e&&e.getRoot().getChildren().find((function(e){return e.match({id:"anomalies-".concat(t)})}))},Oe=function(e){return function(t){return"overview-page::".concat(e.getAttribute("id"),"::").concat(t)}},Se=["id"],Te=["height"];function _e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function He(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_e(Object(n),!0).forEach((function(t){(0,F.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Be=function(e){var t=e.id,n=(0,V.Z)(e,Se),r=(0,D.UL)(),o=(0,be.nI)(t),i=o.height,l=void 0===i?0:i,c=(0,V.Z)(o,Te),s=(0,Me.e)(),d=(0,a.useMemo)((function(){var e=De(s,r),n=e.getNode({id:t});if(n)return n;var a=t.split("::"),o=(0,k.Z)(a,2),i=o[0],d=o[1];return n=s.makeChart({attributes:He({contextScope:[i],height:(0,Ie.C)(e,t,l+260),id:t,roomId:r,selectedDimensions:d?[d]:[],groupBy:["instance"]},c),makeTrack:Oe}),e.appendChild(n),n}),[s,r,t]);return a.createElement(Ee.Z,(0,j.Z)({margin:[0,0,2],chart:d,"data-chartid":t,"data-track":d.track("container")},n))},Fe=a.memo(Be,(function(e,t){return e.id===t.id})),Ne=["id","subMenuId"],je=function(e){var t=e.id,n=e.subMenuId,r=(0,V.Z)(e,Ne);return a.createElement(Fe,(0,j.Z)({id:t,role:"graphics-object","aria-roledescription":"chart","data-submenuid":n},r))},Ve=(0,a.memo)(je),Pe=n(14048),Re=n(12664),Ge=n(62525),Ue=n(71929),ze=(0,Ge.Ji)((function(e){return a.createElement(Ue.Z,(0,j.Z)({as:"p",role:"document"},e))}),(function(e){return{children:e.info}})),Ke=function(e){var t=e.id;return a.createElement(Pe.D,{gap:0,id:t},a.createElement(Re.o,{id:t,margin:[1,0,0]}),a.createElement(ze,{id:t}))},Ye=(0,a.memo)(Ke),$e=function(e){switch(e.level){case 0:return ye;case 1:return Ye;case 2:return Ve;default:return null}},qe=function(e){var t=e.onChartNameChange,n=e.initialChartName,r=e.dashboardOptions,o=e.linkToGo,i=e.contextToGo,l=(0,fe.Z)("addToDashboardModal"),c=(0,k.Z)(l,4),s=c[0],d=c[3],u=(0,ue.Z)({onChartNameChange:t,initialChartName:n,linkToGo:o,contextToGo:i}),m=u.setActiveMenuGroupId,h=u.setActiveSubMenuId;return a.createElement(T.v,null,a.createElement(me.Z,{onActiveMenuGroupId:m,onActiveSubMenuId:h,getComponent:$e,dashboardOptions:r,initialChartName:n,checkVisibility:function(){return!0}}),s&&a.createElement(he.Z,{onClose:d}))},Je=["alerts","info"],Qe=function(e){var t=e.nodeIds,n=(0,S.th)(),o=(0,D.UL)(),i=(0,_.ZP)(n,o,t),l=(0,k.Z)(i,5),c=l[0],s=l[1],d=l[2],u=l[3],m=l[4],h=(0,O.MS)(o,d),f=(0,A.Z)(),p=(0,k.Z)(f,2),L=p[0],g=p[1].width;!function(e,t,n){var r=n.width,o=n.host;if(!o)throw"No host provided";var i=(0,Me.e)();(0,a.useMemo)((function(){if(i&&e){var n=De(i,e);if(!n)return n=i.makeContainer({attributes:{id:"anomalies-".concat(e),roomId:e,host:o,overlays:{proceeded:{type:"proceeded"}},nodesScope:t,width:r,toolboxElements:[ke.default,xe.default,Ce.default,Ae.Z]}}),i.appendChild(n),(0,we.unregister)((0,Ie.M)(i,n))}}),[i,o,e,t]),(0,a.useEffect)((function(){if(i&&e){var n=De(i,e);n&&n.getNodes().forEach((function(e){e.updateAttribute("nodesScope",t),e.getAttribute("active")&&"chart"===e.type&&e.trigger("fetch")}))}}),[i,e,t]),(0,a.useEffect)((function(){return function(){if(i&&e){var t=De(i,e);t&&t.destroy()}}}),[e])}(o,t,{host:(0,S.Q6)()?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(n,"/rooms/").concat(o),width:g});var v=(0,r.I0)("chartName",{key:o,extraKey:"anomalies"}),Z=(0,k.Z)(v,2),y=Z[0],b=Z[1],M=(0,a.useState)(0),E=(0,k.Z)(M,2),w=E[0],x=E[1],C=(0,a.useState)(!1),F=(0,k.Z)(C,2),N=F[0],j=F[1];return(0,a.useEffect)((function(){j(!!s.length)}),[s.length]),a.createElement(T.Z,{getChart:h,chartIds:c,getMenu:de},a.createElement(I.Z,{ref:L,position:"relative",rightBar:a.createElement(H.Z,{nodeIds:t,title:"Anomalies",initialChartName:y,hiddenTabs:Je,selectedTab:w,setSelectedTab:x,flavour:"anomalies",loaded:!0,hasSearch:!1}),gap:1},a.createElement(qe,{initialChartName:y,onChartNameChange:b,linkToGo:N&&(0,B.Z)("menu_Anomalous metrics")}),(!s.length||!!u)&&a.createElement(re,{position:"absolute",bottom:0,right:0,left:0,zIndex:6e3,onRetry:m})))},We=function(){var e=(0,r.TA)({extraKey:"anomalies"}),t=(0,u.zN)(),n=(0,u.fD)(),i=function(e){var t=(0,l.HZ)(),n=(0,l.Ne)(t);return(0,a.useMemo)((function(){return n.reduce((function(t,n){var a=n.capabilities.ml;return null!==a&&void 0!==a&&a.enabled?t.predicting=[].concat((0,o.Z)(t.predicting),[s(n,e)]):t.incapable=[].concat((0,o.Z)(t.incapable),[s(n,e)]),t}),{predicting:[],incapable:[]})}),[t.length,e])}("id").predicting;if(n&&!t.length)return a.createElement(d.Z,null);var c=i.length>0;return n&&!c?a.createElement(C,null):a.createElement(Qe,{nodeIds:e})}}}]); \ No newline at end of file
diff --git a/web/gui/v2/360.035df4a77480670d5715.chunk.js b/web/gui/v2/360.a55ccd8aeddca3df6bd0.chunk.js
index 9a34ae13..80604e0f 100644
--- a/web/gui/v2/360.035df4a77480670d5715.chunk.js
+++ b/web/gui/v2/360.a55ccd8aeddca3df6bd0.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a55e90cf-09e9-4e4a-9113-03f469734a77",e._sentryDebugIdIdentifier="sentry-dbid-a55e90cf-09e9-4e4a-9113-03f469734a77")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[360],{79360:function(e,n,t){t.r(n),t.d(n,{default:function(){return I}});var r=t(67294),o=t(89250),a=(t(47042),t(91038),t(77601),t(82526),t(41817),t(32165),t(29439)),c=t(15861),i=t(64687),u=t.n(i),l=(t(66992),t(41539),t(78783),t(33948),t(41637),t(74916),t(64765),t(88674),t(60285),t(39714),t(21249),t(57640),t(9924),t(64211),t(2490),t(41874),t(23157),t(57327),t(88449),t(59849),t(9170),t(34668),t(92222),t(15557)),d=t(13477),f=t(28234),s=t(18761);function p(e,n){var t="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,n){if(!e)return;if("string"===typeof e)return m(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return m(e,n)}(e))||n&&e&&"number"===typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return c=e.done,e},e:function(e){i=!0,a=e},f:function(){try{c||null==t.return||t.return()}finally{if(i)throw a}}}}function m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var h=new URLSearchParams(window.location.search.substr(1)),y=function(){location.assign("https://registry.my-netdata.io/goto-host-from-alarm.html".concat(location.search))},v=function(){var e=(0,c.Z)(u().mark((function e(n,t){var r,o,a;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,s.XG)(t,n);case 3:return r=e.sent,e.abrupt("return",r.data);case 7:throw e.prev=7,e.t0=e.catch(0),o=e.t0.response.data,document.body.innerHTML="".concat((0,f.r)(null===o||void 0===o?void 0:o.errorMsgKey),"</br></br>Getting you back to Netdata..."),(a=new Error((0,f.r)(null===o||void 0===o?void 0:o.errorMsgKey)||"Redirect error")).name="".concat((null===o||void 0===o?void 0:o.errorMsgKey)||"Server error"),a.stack="".concat((null===o||void 0===o?void 0:o.errorCode)||"Redirect error code"),a;case 15:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(n,t){return e.apply(this,arguments)}}(),g=function(e){return fetch(e,{redirect:"follow"}).then((function(){return e}))},b=function(e){var n,t="top;nowelcome=1",r=p(h.entries());try{for(r.s();!(n=r.n()).done;){var o=(0,a.Z)(n.value,2),c=o[0],i=o[1];"agentID"!==(c=decodeURIComponent(c))&&(t+=";".concat(encodeURIComponent(c)),""!==(i=decodeURIComponent(i))&&(t+="=".concat(encodeURIComponent(i))))}}catch(l){r.e(l)}finally{r.f()}var u=new URL(e);return"/"===u.pathname&&(u.pathname=""),u.hash=t,u.toString()},w=function(){var e=(0,d.jr)(),n=(0,o.TH)().search;return(0,r.useEffect)((function(){e&&function(e,n){if(h.has("agentID")){var t=decodeURIComponent(h.get("agentID")||"unknown_agent_id");v(t,e).catch((function(e){if("ErrVisitedNodeNotFound"!==(null===e||void 0===e?void 0:e.name))throw document.body.innerHTML="<p>".concat(null===e||void 0===e?void 0:e.message,"</p>"),e;y()})).then((function(e){var t,r=null===e||void 0===e||null===(t=e.urls)||void 0===t?void 0:t.map(b),o="https:"===location.protocol&&r.some((function(e){return!e.startsWith("https:")})),a=o?r.filter((function(e){return e.startsWith("https:")})):r;if(0!==a.length)return Promise.any(a.map(g)).then((function(){location.assign("url".concat(n))}),(function(){o?location.protocol="http:":document.body.innerHTML="\n <ul>\n ".concat(r.map((function(e){return'<li><a href="'.concat(encodeURIComponent(e),'" target="_blank" rel="noopener noreferrer">').concat(e,"</a></li>")})).join("\n"),"\n </ul>\n ")}));o?location.protocol="http:":y()}))}else document.body.innerHTML='<p>missing "agentID" query string parameter</p>'}(e,n||"")}),[e,n]),r.createElement(l.H4,null,"Redirecting...")},I=function(){return r.createElement(o.Z5,null,r.createElement(o.AW,{path:"/redirects/alerts",element:r.createElement(w,null)}),r.createElement(o.AW,{path:"/redirects/alarms",element:r.createElement(w,null)})," ")}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e78ee916-cb8b-4c08-a2ad-8df2d1fca00c",e._sentryDebugIdIdentifier="sentry-dbid-e78ee916-cb8b-4c08-a2ad-8df2d1fca00c")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[360],{79360:function(e,n,t){t.r(n),t.d(n,{default:function(){return I}});var r=t(67294),o=t(89250),a=(t(47042),t(91038),t(77601),t(82526),t(41817),t(32165),t(29439)),c=t(15861),i=t(64687),u=t.n(i),l=(t(66992),t(41539),t(78783),t(33948),t(41637),t(74916),t(64765),t(88674),t(60285),t(39714),t(21249),t(57640),t(9924),t(64211),t(2490),t(41874),t(23157),t(57327),t(88449),t(59849),t(9170),t(34668),t(92222),t(57509)),d=t(13477),f=t(28234),s=t(18761);function p(e,n){var t="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,n){if(!e)return;if("string"===typeof e)return m(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return m(e,n)}(e))||n&&e&&"number"===typeof e.length){t&&(e=t);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return c=e.done,e},e:function(e){i=!0,a=e},f:function(){try{c||null==t.return||t.return()}finally{if(i)throw a}}}}function m(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var h=new URLSearchParams(window.location.search.substr(1)),y=function(){location.assign("https://registry.my-netdata.io/goto-host-from-alarm.html".concat(location.search))},b=function(){var e=(0,c.Z)(u().mark((function e(n,t){var r,o,a;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,s.XG)(t,n);case 3:return r=e.sent,e.abrupt("return",r.data);case 7:throw e.prev=7,e.t0=e.catch(0),o=e.t0.response.data,document.body.innerHTML="".concat((0,f.r)(null===o||void 0===o?void 0:o.errorMsgKey),"</br></br>Getting you back to Netdata..."),(a=new Error((0,f.r)(null===o||void 0===o?void 0:o.errorMsgKey)||"Redirect error")).name="".concat((null===o||void 0===o?void 0:o.errorMsgKey)||"Server error"),a.stack="".concat((null===o||void 0===o?void 0:o.errorCode)||"Redirect error code"),a;case 15:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(n,t){return e.apply(this,arguments)}}(),v=function(e){return fetch(e,{redirect:"follow"}).then((function(){return e}))},g=function(e){var n,t="top;nowelcome=1",r=p(h.entries());try{for(r.s();!(n=r.n()).done;){var o=(0,a.Z)(n.value,2),c=o[0],i=o[1];"agentID"!==(c=decodeURIComponent(c))&&(t+=";".concat(encodeURIComponent(c)),""!==(i=decodeURIComponent(i))&&(t+="=".concat(encodeURIComponent(i))))}}catch(l){r.e(l)}finally{r.f()}var u=new URL(e);return"/"===u.pathname&&(u.pathname=""),u.hash=t,u.toString()},w=function(){var e=(0,d.jr)(),n=(0,o.TH)().search;return(0,r.useEffect)((function(){e&&function(e,n){if(h.has("agentID")){var t=decodeURIComponent(h.get("agentID")||"unknown_agent_id");b(t,e).catch((function(e){if("ErrVisitedNodeNotFound"!==(null===e||void 0===e?void 0:e.name))throw document.body.innerHTML="<p>".concat(null===e||void 0===e?void 0:e.message,"</p>"),e;y()})).then((function(e){var t,r=null===e||void 0===e||null===(t=e.urls)||void 0===t?void 0:t.map(g),o="https:"===location.protocol&&r.some((function(e){return!e.startsWith("https:")})),a=o?r.filter((function(e){return e.startsWith("https:")})):r;if(0!==a.length)return Promise.any(a.map(v)).then((function(){location.assign("url".concat(n))}),(function(){o?location.protocol="http:":document.body.innerHTML="\n <ul>\n ".concat(r.map((function(e){return'<li><a href="'.concat(encodeURIComponent(e),'" target="_blank" rel="noopener noreferrer">').concat(e,"</a></li>")})).join("\n"),"\n </ul>\n ")}));o?location.protocol="http:":y()}))}else document.body.innerHTML='<p>missing "agentID" query string parameter</p>'}(e,n||"")}),[e,n]),r.createElement(l.H4,null,"Redirecting...")},I=function(){return r.createElement(o.Z5,null,r.createElement(o.AW,{path:"/redirects/alerts",element:r.createElement(w,null)}),r.createElement(o.AW,{path:"/redirects/alarms",element:r.createElement(w,null)})," ")}}}]); \ No newline at end of file
diff --git a/web/gui/v2/376.9a81f019e3c71e29c4e1.js b/web/gui/v2/376.9a81f019e3c71e29c4e1.js
deleted file mode 100644
index 787de65f..00000000
--- a/web/gui/v2/376.9a81f019e3c71e29c4e1.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see 376.9a81f019e3c71e29c4e1.js.LICENSE.txt */
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c0708bd3-2985-40d2-874a-e4b713cbd258",e._sentryDebugIdIdentifier="sentry-dbid-c0708bd3-2985-40d2-874a-e4b713cbd258")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[376],{78081:function(e,t,n){var r=n(82215),o=n(82584),i=n(20609),a=n(98420),s=n(20738),u=n(18923),l=Date.prototype.getTime;function c(e,t,n){var p=n||{};return!!(p.strict?i(e,t):e===t)||(!e||!t||"object"!==typeof e&&"object"!==typeof t?p.strict?i(e,t):e==t:function(e,t,n){var i,p;if(typeof e!==typeof t)return!1;if(f(e)||f(t))return!1;if(e.prototype!==t.prototype)return!1;if(o(e)!==o(t))return!1;var h=a(e),g=a(t);if(h!==g)return!1;if(h||g)return e.source===t.source&&s(e)===s(t);if(u(e)&&u(t))return l.call(e)===l.call(t);var v=d(e),m=d(t);if(v!==m)return!1;if(v||m){if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}if(typeof e!==typeof t)return!1;try{var y=r(e),b=r(t)}catch(w){return!1}if(y.length!==b.length)return!1;for(y.sort(),b.sort(),i=y.length-1;i>=0;i--)if(y[i]!=b[i])return!1;for(i=y.length-1;i>=0;i--)if(!c(e[p=y[i]],t[p],n))return!1;return!0}(e,t,p))}function f(e){return null===e||void 0===e}function d(e){return!(!e||"object"!==typeof e||"number"!==typeof e.length)&&("function"===typeof e.copy&&"function"===typeof e.slice&&!(e.length>0&&"number"!==typeof e[0]))}e.exports=c},21782:function(e,t,n){"use strict";var r=n(82215),o="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,u=n(31044)(),l=s&&u,c=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if("function"!==typeof(o=r)||"[object Function]"!==i.call(o)||!r())return;var o;l?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n},f=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s<i.length;s+=1)c(e,i[s],t[i[s]],n[i[s]])};f.supportsDescriptors=!!l,e.exports=f},34474:function(e){"use strict";var t=String.prototype.replace,n=/%20/g,r="RFC1738",o="RFC3986";e.exports={default:o,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:r,RFC3986:o}},33644:function(e,t,n){"use strict";var r=n(62267),o=n(25048),i=n(34474);e.exports={formats:i,parse:o,stringify:r}},25048:function(e,t,n){"use strict";var r=n(74872),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},u=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},l=function(e,t,n,r){if(e){var i=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(i),l=s?i.slice(0,s.index):i,c=[];if(l){if(!n.plainObjects&&o.call(Object.prototype,l)&&!n.allowPrototypes)return;c.push(l)}for(var f=0;n.depth>0&&null!==(s=a.exec(i))&&f<n.depth;){if(f+=1,!n.plainObjects&&o.call(Object.prototype,s[1].slice(1,-1))&&!n.allowPrototypes)return;c.push(s[1])}return s&&c.push("["+i.slice(s.index)+"]"),function(e,t,n,r){for(var o=r?t:u(t,n),i=e.length-1;i>=0;--i){var a,s=e[i];if("[]"===s&&n.parseArrays)a=[].concat(o);else{a=n.plainObjects?Object.create(null):{};var l="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(l,10);n.parseArrays||""!==l?!isNaN(c)&&s!==l&&String(c)===l&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(a=[])[c]=o:"__proto__"!==l&&(a[l]=o):a={0:o}}o=a}return o}(c,t,n,r)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!==typeof e.decoder)throw new TypeError("Decoder has to be a function.");if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t="undefined"===typeof e.charset?a.charset:e.charset;return{allowDots:"undefined"===typeof e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"===typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"===typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"===typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"===typeof e.comma?e.comma:a.comma,decoder:"function"===typeof e.decoder?e.decoder:a.decoder,delimiter:"string"===typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"===typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"===typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"===typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"===typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null===e||"undefined"===typeof e)return n.plainObjects?Object.create(null):{};for(var c="string"===typeof e?function(e,t){var n,l={__proto__:null},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,f=t.parameterLimit===1/0?void 0:t.parameterLimit,d=c.split(t.delimiter,f),p=-1,h=t.charset;if(t.charsetSentinel)for(n=0;n<d.length;++n)0===d[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===d[n]?h="utf-8":"utf8=%26%2310003%3B"===d[n]&&(h="iso-8859-1"),p=n,n=d.length);for(n=0;n<d.length;++n)if(n!==p){var g,v,m=d[n],y=m.indexOf("]="),b=-1===y?m.indexOf("="):y+1;-1===b?(g=t.decoder(m,a.decoder,h,"key"),v=t.strictNullHandling?null:""):(g=t.decoder(m.slice(0,b),a.decoder,h,"key"),v=r.maybeMap(u(m.slice(b+1),t),(function(e){return t.decoder(e,a.decoder,h,"value")}))),v&&t.interpretNumericEntities&&"iso-8859-1"===h&&(v=s(v)),m.indexOf("[]=")>-1&&(v=i(v)?[v]:v),o.call(l,g)?l[g]=r.combine(l[g],v):l[g]=v}return l}(e,n):e,f=n.plainObjects?Object.create(null):{},d=Object.keys(c),p=0;p<d.length;++p){var h=d[p],g=l(h,c[h],n,"string"===typeof e);f=r.merge(f,g,n)}return!0===n.allowSparse?f:r.compact(f)}},62267:function(e,t,n){"use strict";var r=n(37478),o=n(74872),i=n(34474),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},u=Array.isArray,l=Array.prototype.push,c=function(e,t){l.apply(e,u(t)?t:[t])},f=Date.prototype.toISOString,d=i.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:o.encode,encodeValuesOnly:!1,format:d,formatter:i.formatters[d],indices:!1,serializeDate:function(e){return f.call(e)},skipNulls:!1,strictNullHandling:!1},h={},g=function e(t,n,i,a,s,l,f,d,g,v,m,y,b,w,x,_){for(var S,O=t,C=_,E=0,A=!1;void 0!==(C=C.get(h))&&!A;){var M=C.get(t);if(E+=1,"undefined"!==typeof M){if(M===E)throw new RangeError("Cyclic object value");A=!0}"undefined"===typeof C.get(h)&&(E=0)}if("function"===typeof d?O=d(n,O):O instanceof Date?O=m(O):"comma"===i&&u(O)&&(O=o.maybeMap(O,(function(e){return e instanceof Date?m(e):e}))),null===O){if(s)return f&&!w?f(n,p.encoder,x,"key",y):n;O=""}if("string"===typeof(S=O)||"number"===typeof S||"boolean"===typeof S||"symbol"===typeof S||"bigint"===typeof S||o.isBuffer(O))return f?[b(w?n:f(n,p.encoder,x,"key",y))+"="+b(f(O,p.encoder,x,"value",y))]:[b(n)+"="+b(String(O))];var k,P=[];if("undefined"===typeof O)return P;if("comma"===i&&u(O))w&&f&&(O=o.maybeMap(O,f)),k=[{value:O.length>0?O.join(",")||null:void 0}];else if(u(d))k=d;else{var R=Object.keys(O);k=g?R.sort(g):R}for(var T=a&&u(O)&&1===O.length?n+"[]":n,I=0;I<k.length;++I){var B=k[I],D="object"===typeof B&&"undefined"!==typeof B.value?B.value:O[B];if(!l||null!==D){var j=u(O)?"function"===typeof i?i(T,B):T:T+(v?"."+B:"["+B+"]");_.set(t,E);var L=r();L.set(h,_),c(P,e(D,j,i,a,s,l,"comma"===i&&w&&u(O)?null:f,d,g,v,m,y,b,w,x,L))}}return P};e.exports=function(e,t){var n,o=e,l=function(e){if(!e)return p;if(null!==e.encoder&&"undefined"!==typeof e.encoder&&"function"!==typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=i.default;if("undefined"!==typeof e.format){if(!a.call(i.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var r=i.formatters[n],o=p.filter;return("function"===typeof e.filter||u(e.filter))&&(o=e.filter),{addQueryPrefix:"boolean"===typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:"undefined"===typeof e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:"undefined"===typeof e.delimiter?p.delimiter:e.delimiter,encode:"boolean"===typeof e.encode?e.encode:p.encode,encoder:"function"===typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"===typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:o,format:n,formatter:r,serializeDate:"function"===typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"===typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"===typeof e.sort?e.sort:null,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"===typeof l.filter?o=(0,l.filter)("",o):u(l.filter)&&(n=l.filter);var f,d=[];if("object"!==typeof o||null===o)return"";f=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var h=s[f];if(t&&"commaRoundTrip"in t&&"boolean"!==typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var v="comma"===h&&t&&t.commaRoundTrip;n||(n=Object.keys(o)),l.sort&&n.sort(l.sort);for(var m=r(),y=0;y<n.length;++y){var b=n[y];l.skipNulls&&null===o[b]||c(d,g(o[b],b,h,v,l.strictNullHandling,l.skipNulls,l.encode?l.encoder:null,l.filter,l.sort,l.allowDots,l.serializeDate,l.format,l.formatter,l.encodeValuesOnly,l.charset,m))}var w=d.join(l.delimiter),x=!0===l.addQueryPrefix?"?":"";return l.charsetSentinel&&("iso-8859-1"===l.charset?x+="utf8=%26%2310003%3B&":x+="utf8=%E2%9C%93&"),w.length>0?x+w:""}},74872:function(e,t,n){"use strict";var r=n(34474),o=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)"undefined"!==typeof e[r]&&(n[r]=e[r]);return n};e.exports={arrayToObject:s,assign:function(e,t){return Object.keys(t).reduce((function(e,n){return e[n]=t[n],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],r=0;r<t.length;++r)for(var o=t[r],a=o.obj[o.prop],s=Object.keys(a),u=0;u<s.length;++u){var l=s[u],c=a[l];"object"===typeof c&&null!==c&&-1===n.indexOf(c)&&(t.push({obj:a,prop:l}),n.push(c))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],o=0;o<n.length;++o)"undefined"!==typeof n[o]&&r.push(n[o]);t.obj[t.prop]=r}}}(t),e},decode:function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(o){return r}},encode:function(e,t,n,o,i){if(0===e.length)return e;var s=e;if("symbol"===typeof e?s=Symbol.prototype.toString.call(e):"string"!==typeof e&&(s=String(e)),"iso-8859-1"===n)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var u="",l=0;l<s.length;++l){var c=s.charCodeAt(l);45===c||46===c||95===c||126===c||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===r.RFC1738&&(40===c||41===c)?u+=s.charAt(l):c<128?u+=a[c]:c<2048?u+=a[192|c>>6]+a[128|63&c]:c<55296||c>=57344?u+=a[224|c>>12]+a[128|c>>6&63]+a[128|63&c]:(l+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(l)),u+=a[240|c>>18]+a[128|c>>12&63]+a[128|c>>6&63]+a[128|63&c])}return u},isBuffer:function(e){return!(!e||"object"!==typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var n=[],r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)},merge:function e(t,n,r){if(!n)return t;if("object"!==typeof n){if(i(t))t.push(n);else{if(!t||"object"!==typeof t)return[t,n];(r&&(r.plainObjects||r.allowPrototypes)||!o.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!==typeof t)return[t].concat(n);var a=t;return i(t)&&!i(n)&&(a=s(t,r)),i(t)&&i(n)?(n.forEach((function(n,i){if(o.call(t,i)){var a=t[i];a&&"object"===typeof a&&n&&"object"===typeof n?t[i]=e(a,n,r):t.push(n)}else t[i]=n})),t):Object.keys(n).reduce((function(t,i){var a=n[i];return o.call(t,i)?t[i]=e(t[i],a,r):t[i]=a,t}),a)}}},25663:function(e,t,n){"use strict";var r=n(25972).functionsHaveConfigurableNames(),o=Object,i=TypeError;e.exports=function(){if(null!=this&&this!==o(this))throw new i("RegExp.prototype.flags getter called on non-object");var e="";return this.hasIndices&&(e+="d"),this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.unicodeSets&&(e+="v"),this.sticky&&(e+="y"),e},r&&Object.defineProperty&&Object.defineProperty(e.exports,"name",{value:"get flags"})},20738:function(e,t,n){"use strict";var r=n(21782),o=n(55559),i=n(25663),a=n(64879),s=n(5353),u=o(a());r(u,{getPolyfill:a,implementation:i,shim:s}),e.exports=u},64879:function(e,t,n){"use strict";var r=n(25663),o=n(21782).supportsDescriptors,i=Object.getOwnPropertyDescriptor;e.exports=function(){if(o&&"gim"===/a/gim.flags){var e=i(RegExp.prototype,"flags");if(e&&"function"===typeof e.get&&"boolean"===typeof RegExp.prototype.dotAll&&"boolean"===typeof RegExp.prototype.hasIndices){var t="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){t+="d"}}),Object.defineProperty(n,"sticky",{get:function(){t+="y"}}),"dy"===t)return e.get}}return r}},5353:function(e,t,n){"use strict";var r=n(21782).supportsDescriptors,o=n(64879),i=Object.getOwnPropertyDescriptor,a=Object.defineProperty,s=TypeError,u=Object.getPrototypeOf,l=/a/;e.exports=function(){if(!r||!u)throw new s("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=o(),t=u(l),n=i(t,"flags");return n&&n.get===e||a(t,"flags",{configurable:!0,enumerable:!1,get:e}),e}},45042:function(e,t,n){"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{Z:function(){return r}})},90026:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=a(n(58960)),o=n(24298),i=a(n(93492));function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,a,s,l,c=(0,r.default)(e,t),f=function(){c.render();var e=t.getAttributes(),n=e.hoverX;if(e.loaded){var r=t.getPayload().data,o=r[n?t.getClosestRow(n[0]):r.length-1];if(Array.isArray(o)){c.render();var i=t.getAttribute("getValueRange")(t),a=i[0],u=i[1];a===s&&u===l||c.sdk.trigger("yAxisChange",t,a,u),s=a,l=u,c.trigger("rendered")}}};return u(u({},c),{},{mount:function(e){c.mount(e),a=(0,i.default)(e,(function(){return c.trigger("resize")}));var r=t.getAttributes().loaded;n=(0,o.unregister)(t.onAttributeChange("hoverX",f),!r&&t.onceAttributeChange("loaded",f)),c.trigger("resize"),f()},unmount:function(){n&&n(),a&&a(),c.unmount(),s=null,l=null},render:f})}},62369:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.default=void 0;t.default=function(e,t){void 0===t&&(t={});var n=e.getElement(),o=n.clientWidth,i=n.clientHeight;return{header:{title:{text:"",color:"",fontSize:"",fontWeight:""},subtitle:{text:"",color:"",fontSize:"",fontWeight:""},titleSubtitlePadding:1},footer:{text:"",color:"",fontSize:"",fontWeight:"",location:""},data:r({sortOrder:"label-asc",smallSegmentGrouping:{enabled:!0,value:5,valueType:"count",label:"smaller",caption:"rest of dimensions",color:e.chart.getThemeAttribute("themeD3pieSmallColor")},content:[]},t),labels:{outer:{format:"label-value2",hideWhenLessThanPercentage:null,pieDistance:10},inner:{format:"percentage",hideWhenLessThanPercentage:101},mainLabel:{color:"segment",fontSize:"0.9em",fontWeight:"normal",font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},percentage:{color:e.chart.getThemeAttribute("themeInnerLabelColor"),fontSize:"1em",fontWeight:"strong",decimalPlaces:0,font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},value:{color:e.chart.getThemeAttribute("themeD3pieSmallColor"),fontSize:"1.2em",fontWeight:"strong",font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},lines:{enabled:!0,style:"curved",color:"segment"},truncation:{enabled:!1,truncateLength:30},formatter:function(t){return"value"===t.part?("No data"===t.realLabel?"-":e.chart.getConvertedValue(t.value))+" "+e.chart.getUnitSign():"percentage"===t.part?t.label+"%":t.label}},effects:{load:{effect:"none",speed:0},pullOutSegmentOnClick:{effect:"bounce",speed:400,size:5},highlightSegmentOnMouseover:!0,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"caption",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:"#000000",backgroundOpacity:.5,color:"#ffffff",borderRadius:2,fontSize:"11px",padding:4}},misc:{colors:{background:"transparent",segments:[],segmentStroke:e.chart.getThemeAttribute("themeD3pieStroke")},gradient:{enabled:!1},canvasPadding:{top:0,right:0,bottom:0,left:0},pieCenterOffset:{x:0,y:0},cssPrefix:null},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null},size:{canvasHeight:Math.floor(i),canvasWidth:Math.floor(o),pieInnerRadius:"50%",pieOuterRadius:"75%"}}}},16469:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(58960)),o=n(24298),i=c(n(93492)),a=c(n(81220)),s=c(n(53087)),u=c(n(94015)),l=c(n(62369));function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,c,f,p,h=(0,r.default)(e,t),g=null,v=(0,a.default)(),m=function(){g&&(g.destroy(),g.recreate())},y=function(){h.render();var e=t.getAttributes(),n=e.hoverX,r=e.loaded;if(g&&r){var o=t.getPayload().data,i=n?t.getClosestRow(n[0]):-1;i=-1===i?o.length-1:i;var a=t.getVisibleDimensionIds().map((function(e){return{label:(0,s.default)(e,30),value:t.getDimensionValue(e,i),color:t.selectDimensionColor(e),caption:e}})).filter((function(e){return!!e.value})),u=t.getAttribute("getValueRange")(t),c=u[0],d=u[1];c===f&&d===p||h.sdk.trigger("yAxisChange",t,c,d),f=c,p=d,h.render(),g.options.data.content=a.length?a:[{label:"No data",value:1,color:h.chart.getThemeAttribute("themeD3pieSmallColor")}],g.options.labels=(0,l.default)(h).labels,window.requestAnimationFrame((function(){m()})),h.trigger("rendered")}};return d(d({},h),{},{mount:function(e){if(!g){h.mount(e);var r=t.getAttribute("theme");e.classList.add(r);var a=t.getAttributes().loaded;g=new u.default(e,(0,l.default)(h)),c=(0,i.default)(e.parentNode,(function(){g.options=d(d({},g.options),{},{size:(0,l.default)(h).size}),m(),h.trigger("resize")}));var s=v.add(y);n=(0,o.unregister)(t.onAttributeChange("hoverX",s),!a&&t.onceAttributeChange("loaded",s),t.onAttributeChange("theme",s),t.on("visibleDimensionsChanged",s)),h.trigger("resize"),y()}},unmount:function(){n&&n(),c&&c(),g&&(g.destroy(),g=null),f=null,p=null,h.unmount()},render:y})}},94015:function(e,t,n){"use strict";var r,o,i,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(85169));function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}o=[],r=function(){var e="d3pie",t="0.2.1",n=0,r={header:{title:{text:"",color:"#333333",fontSize:"18px",fontWeight:"bold",font:"arial"},subtitle:{text:"",color:"#666666",fontSize:"14px",fontWeight:"bold",font:"arial"},location:"top-center",titleSubtitlePadding:8},footer:{text:"",color:"#666666",fontSize:"14px",fontWeight:"bold",font:"arial",location:"left"},size:{canvasHeight:500,canvasWidth:500,pieInnerRadius:"0%",pieOuterRadius:null},data:{sortOrder:"none",ignoreSmallSegments:{enabled:!1,valueType:"percentage",value:null},smallSegmentGrouping:{enabled:!1,value:1,valueType:"percentage",label:"Other",color:"#cccccc"},content:[]},labels:{outer:{format:"label",hideWhenLessThanPercentage:null,pieDistance:30},inner:{format:"percentage",hideWhenLessThanPercentage:null},mainLabel:{color:"#333333",font:"arial",fontWeight:"normal",fontSize:"10px"},percentage:{color:"#dddddd",font:"arial",fontWeight:"bold",fontSize:"10px",decimalPlaces:0},value:{color:"#cccc44",fontWeight:"bold",font:"arial",fontSize:"10px"},lines:{enabled:!0,style:"curved",color:"segment"},truncation:{enabled:!1,truncateLength:30},formatter:null},effects:{load:{effect:"none",speed:1e3},pullOutSegmentOnClick:{effect:"none",speed:300,size:10},highlightSegmentOnMouseover:!1,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"placeholder",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:"#000000",backgroundOpacity:.5,color:"#efefef",borderRadius:2,font:"arial",fontWeight:"bold",fontSize:"10px",padding:4}},misc:{colors:{background:null,segments:["#2484c1","#65a620","#7b6888","#a05d56","#961a1a","#d8d23a","#e98125","#d0743c","#635222","#6ada6a","#0c6197","#7d9058","#207f33","#44b9b0","#bca44a","#e4a14b","#a3acb2","#8cc3e9","#69a6f9","#5b388f","#546e91","#8bde95","#d2ab58","#273c71","#98bf6e","#4daa4b","#98abc5","#cc1010","#31383b","#006391","#c2643f","#b0a474","#a5a39c","#a9c2bc","#22af8c","#7fcecf","#987ac6","#3d3b87","#b77b1c","#c9c2b6","#807ece","#8db27c","#be66a2","#9ed3c6","#00644b","#005064","#77979f","#77e079","#9c73ab","#1f79a7"],segmentStroke:"#ffffff"},gradient:{enabled:!1,percentage:95,color:"#000000"},canvasPadding:{top:5,right:5,bottom:5,left:5},pieCenterOffset:{x:0,y:0},cssPrefix:null},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null}},o={initialCheck:function(e){var t=e.cssPrefix,n=e.element,r=e.options;if(!(n instanceof HTMLElement||n instanceof SVGElement))return!1;if(!/[a-zA-Z][a-zA-Z0-9_-]*$/.test(t))return!1;if(!i.isArray(r.data.content))return!1;for(var o=[],a=0;a<r.data.content.length;a++)"number"!==typeof r.data.content[a].value||isNaN(r.data.content[a].value)||r.data.content[a].value<=0||o.push(r.data.content[a]);return e.options.data.content=o,!0}},i={addSVGSpace:function(e){var t=e.element,n=e.options.size.canvasWidth,r=e.options.size.canvasHeight,o=e.options.misc.colors.background,i=a.select(t).append("svg:svg").attr("width",n).attr("height",r);return"transparent"!==o&&i.style("background-color",(function(){return o})),i},shuffleArray:function(e){for(var t,n,r=e.length;0!==r;)n=Math.floor(Math.random()*r),t=e[r-=1],e[r]=e[n],e[n]=t;return e},processObj:function(e,t,n){return"string"===typeof t?i.processObj(e,t.split("."),n):1===t.length&&void 0!==n?(e[t[0]]=n,e[t[0]]):0===t.length?e:i.processObj(e[t[0]],t.slice(1),n)},getDimensions:function(e){"string"===typeof e&&(e=document.getElementById(e));var t=0,n=0;if(e){var r=e.getBBox();t=r.width,n=r.height}return{w:t,h:n}},rectIntersect:function(e,t){return!(t.x>e.x+e.w||t.x+t.w<e.x||t.y+t.h<e.y||t.y>e.y+e.h)},getColorShade:function(e,t){(e=String(e).replace(/[^0-9a-f]/gi,"")).length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;for(var n="#",r=0;r<3;r++){var o=parseInt(e.substr(2*r,2),16);n+=("00"+(o=Math.round(Math.min(Math.max(0,o+o*t),255)).toString(16))).substr(o.length)}return n},initSegmentColors:function(e){for(var t=e.options.data.content,n=e.options.misc.colors.segments,r=[],o=0;o<t.length;o++)t[o].hasOwnProperty("color")?r.push(t[o].color):r.push(n[o]);return r},applySmallSegmentGrouping:function(e,t){var n=[],r=[],o=0,i=0;if("count"===t.valueType){for(var a=[],s=0,c=0;c<e.length;c++)a[s++]={idx:c,value:e[c].value};for(a.sort((function(e,t){return e.value<t.value?1:-1})),s=0;s<a.length;s++)e[a[s].idx].smallSegmentPriority=s;for(c=0;c<e.length;c++)e[c].smallSegmentPriority>=t.value?(r.push(e[c]),o+=e[c].value,i++):(e[c].isGrouped=!1,n.push(e[c]))}else if("percentage"===t.valueType){var f=u.getTotalPieSize(e);for(c=0;c<e.length;c++)if("percentage"===t.valueType){if(e[c].value/f*100<=t.value){r.push(e[c]),o+=e[c].value,i++;continue}e[c].isGrouped=!1,n.push(e[c])}}else for(c=0;c<e.length;c++)e[c].value<=t.value?(r.push(e[c]),o+=e[c].value,i++):(e[c].isGrouped=!1,n.push(e[c]));return r.length&&n.push(l(l({},t),{},{color:t.color,label:"["+t.label+" "+i+"]",value:o,isGrouped:!0,groupedData:r})),n},showPoint:function(e,t,n){e.append("circle").attr("cx",t).attr("cy",n).attr("r",2).style("fill","black")},isFunction:function(e){return e&&"[object Function]"==={}.toString.call(e)},isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)}},s=function e(){var t,n,r,o,i,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1,f=Object.prototype.toString,d=Object.prototype.hasOwnProperty,p={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object"},h={isFunction:function(e){return"function"===h.type(e)},isArray:Array.isArray||function(e){return"array"===h.type(e)},isWindow:function(e){return null!==e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null===e?String(e):p[f.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==h.type(e)||e.nodeType)return!1;try{if(e.constructor&&!d.call(e,"constructor")&&!d.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var t;for(t in e);return void 0===t||d.call(e,t)}};for("boolean"===typeof s&&(c=s,s=arguments[1]||{},u=2),"object"===typeof s||h.isFunction(s)||(s={}),l===u&&(s=this,--u);u<l;u++)if(null!==(t=arguments[u]))for(n in t)r=s[n],s!==(o=t[n])&&(c&&o&&(h.isPlainObject(o)||(i=h.isArray(o)))?(i?(i=!1,a=r&&h.isArray(r)?r:[]):a=r&&h.isPlainObject(r)?r:{},s[n]=e(c,a,o)):void 0!==o&&(s[n]=o));return s},u={toRadians:function(e){return e*(Math.PI/180)},toDegrees:function(e){return e*(180/Math.PI)},computePieRadius:function(e){var t=e.options.size,n=e.options.misc.canvasPadding,r=t.canvasWidth-n.left-n.right,o=t.canvasHeight-n.top-n.bottom;"pie-center"!==e.options.header.location&&(o-=e.textComponents.headerHeight),e.textComponents.footer.exists&&(o-=e.textComponents.footer.h);var i,a,s=(r<(o=o<0?0:o)?r:o)/3;if(null!==t.pieOuterRadius)if(/%/.test(t.pieOuterRadius)){a=(a=(a=parseInt(t.pieOuterRadius.replace(/[\D]/,""),10))>99?99:a)<0?0:a;var u=r<o?r:o;if("none"!==e.options.labels.outer.format){var l=2*parseInt(e.options.labels.outer.pieDistance,10);u-l>0&&(u-=l)}s=Math.floor(u/100*a)/2}else s=parseInt(t.pieOuterRadius,10);/%/.test(t.pieInnerRadius)?(a=(a=(a=parseInt(t.pieInnerRadius.replace(/[\D]/,""),10))>99?99:a)<0?0:a,i=Math.floor(s/100*a)):i=parseInt(t.pieInnerRadius,10),e.innerRadius=i,e.outerRadius=s},getTotalPieSize:function(e){for(var t=0,n=0;n<e.length;n++)t+=e[n].value;return t},sortPieData:function(e){var t=e.options.data.content;switch(e.options.data.sortOrder){case"none":break;case"random":t=i.shuffleArray(t);break;case"value-asc":t.sort((function(e,t){return e.value<t.value?-1:1}));break;case"value-desc":t.sort((function(e,t){return e.value<t.value?1:-1}));break;case"label-asc":t.sort((function(e,t){return e.label.toLowerCase()>t.label.toLowerCase()?1:-1}));break;case"label-desc":t.sort((function(e,t){return e.label.toLowerCase()<t.label.toLowerCase()?1:-1}))}return t},getPieTranslateCenter:function(e){return"translate("+e.x+","+e.y+")"},calculatePieCenter:function(e){var t=e.options.misc.pieCenterOffset,n=e.textComponents.title.exists&&"pie-center"!==e.options.header.location,r=e.textComponents.subtitle.exists&&"pie-center"!==e.options.header.location,o=e.options.misc.canvasPadding.top;n&&r?o+=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h:n?o+=e.textComponents.title.h:r&&(o+=e.textComponents.subtitle.h);var i=0;e.textComponents.footer.exists&&(i=e.textComponents.footer.h+e.options.misc.canvasPadding.bottom);var a=(e.options.size.canvasWidth-e.options.misc.canvasPadding.left-e.options.misc.canvasPadding.right)/2+e.options.misc.canvasPadding.left,s=(e.options.size.canvasHeight-i-o)/2+o;a+=t.x,s+=t.y,e.pieCenter={x:a,y:s}},rotate:function(e,t,n,r,o){o=o*Math.PI/180;var i=Math.cos,a=Math.sin;return{x:(e-n)*i(o)-(t-r)*a(o)+n,y:(e-n)*a(o)+(t-r)*i(o)+r}},translate:function(e,t,n,r){var o=u.toRadians(r);return{x:e+n*Math.sin(o),y:t-n*Math.cos(o)}},pointIsInArc:function(e,t,n){var r=n.innerRadius()(t),o=n.outerRadius()(t),i=n.startAngle()(t),a=n.endAngle()(t),s=e.x*e.x+e.y*e.y,u=Math.atan2(e.x,-e.y);return u=u<0?u+2*Math.PI:u,r*r<=s&&s<=o*o&&i<=u&&u<=a}},c={add:function(e,t,n){var r=c.getIncludes(n),o=e.options.labels,i=e.svg.insert("g","."+e.cssPrefix+"labels-"+t).attr("class",e.cssPrefix+"labels-"+t),a=e.__labels[t]=i.selectAll("."+e.cssPrefix+"labelGroup-"+t).data(e.options.data.content).enter().append("g").attr("id",(function(n,r){return e.cssPrefix+"labelGroup"+r+"-"+t})).attr("data-index",(function(e,t){return t})).attr("class",e.cssPrefix+"labelGroup-"+t).style("opacity",0),s={section:t,sectionDisplayType:n};r.mainLabel&&a.append("text").attr("id",(function(n,r){return e.cssPrefix+"segmentMainLabel"+r+"-"+t})).attr("class",e.cssPrefix+"segmentMainLabel-"+t).text((function(e,t){var n=e.label;return o.formatter?(s.index=t,s.part="mainLabel",s.value=e.value,s.label=n,n=o.formatter(s)):o.truncation.enabled&&e.label.length>o.truncation.truncateLength&&(n=e.label.substring(0,o.truncation.truncateLength)+"..."),n})).style("font-size",o.mainLabel.fontSize).style("font-family",o.mainLabel.font).style("font-weight",o.mainLabel.fontWeight).style("fill",(function(t,n){return"segment"===o.mainLabel.color?e.options.colors[n]:o.mainLabel.color})),r.percentage&&a.append("text").attr("id",(function(n,r){return e.cssPrefix+"segmentPercentage"+r+"-"+t})).attr("class",e.cssPrefix+"segmentPercentage-"+t).text((function(e,t){var n=e.percentage;return o.formatter?(s.index=t,s.part="percentage",s.value=e.value,s.label=e.percentage,n=o.formatter(s)):n+="%",n})).style("font-size",o.percentage.fontSize).style("font-family",o.percentage.font).style("font-weight",o.percentage.fontWeight).style("fill",o.percentage.color),r.value&&a.append("text").attr("id",(function(n,r){return e.cssPrefix+"segmentValue"+r+"-"+t})).attr("class",e.cssPrefix+"segmentValue-"+t).text((function(e,t){return s.index=t,s.part="value",s.value=e.value,s.label=e.value,s.realLabel=e.label,o.formatter?o.formatter(s,e.value):e.value})).style("font-size",o.value.fontSize).style("font-family",o.value.font).style("font-weight",o.value.fontWeight).style("fill",o.value.color)},positionLabelElements:function(e,t,n){c["dimensions-"+t]=[],e.__labels[t].each((function(n,r){var o=a.select(this).selectAll("."+e.cssPrefix+"segmentMainLabel-"+t),i=a.select(this).selectAll("."+e.cssPrefix+"segmentPercentage-"+t),s=a.select(this).selectAll("."+e.cssPrefix+"segmentValue-"+t);c["dimensions-"+t].push({mainLabel:null!==o.node()?o.node().getBBox():null,percentage:null!==i.node()?i.node().getBBox():null,value:null!==s.node()?s.node().getBBox():null})}));var r=5,o=c["dimensions-"+t];switch(n){case"label-value1":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dx",(function(e,t){return o[t].mainLabel.width+r}));break;case"label-value2":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dy",(function(e,t){return o[t].mainLabel.height}));break;case"label-percentage1":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return o[t].mainLabel.width+r}));break;case"label-percentage2":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return o[t].mainLabel.width/2-o[t].percentage.width/2})).attr("dy",(function(e,t){return o[t].mainLabel.height}))}},computeLabelLinePositions:function(e){e.lineCoordGroups=[],e.__labels.outer.each((function(t,n){return c.computeLinePosition(e,n)}))},computeLinePosition:function(e,t){var n,r,o,i,a=f.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),s=u.rotate(e.pieCenter.x,e.pieCenter.y-e.outerRadius,e.pieCenter.x,e.pieCenter.y,a),l=e.outerLabelGroupData[t].h/5,c=6,d=Math.floor(a/90),p=4;switch(2===d&&180===a&&(d=1),d){case 0:n=e.outerLabelGroupData[t].x-c-(e.outerLabelGroupData[t].x-c-s.x)/2,r=e.outerLabelGroupData[t].y+(s.y-e.outerLabelGroupData[t].y)/p,o=e.outerLabelGroupData[t].x-c,i=e.outerLabelGroupData[t].y-l;break;case 1:n=s.x+(e.outerLabelGroupData[t].x-s.x)/p,r=s.y+(e.outerLabelGroupData[t].y-s.y)/p,o=e.outerLabelGroupData[t].x-c,i=e.outerLabelGroupData[t].y-l;break;case 2:var h=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c;n=s.x-(s.x-h)/p,r=s.y+(e.outerLabelGroupData[t].y-s.y)/p,o=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c,i=e.outerLabelGroupData[t].y-l;break;case 3:var g=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c;n=g+(s.x-g)/p,r=e.outerLabelGroupData[t].y+(s.y-e.outerLabelGroupData[t].y)/p,o=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c,i=e.outerLabelGroupData[t].y-l}"straight"===e.options.labels.lines.style?e.lineCoordGroups[t]=[{x:s.x,y:s.y},{x:o,y:i}]:e.lineCoordGroups[t]=[{x:s.x,y:s.y},{x:n,y:r},{x:o,y:i}]},addLabelLines:function(e){var t=e.svg.insert("g","."+e.cssPrefix+"pieChart").attr("class",e.cssPrefix+"lineGroups").style("opacity",1).selectAll("."+e.cssPrefix+"lineGroup").data(e.lineCoordGroups).enter().append("g").attr("class",e.cssPrefix+"lineGroup"),n=a.line().curve(a.curveBasis).x((function(e){return e.x})).y((function(e){return e.y}));t.append("path").attr("d",n).attr("stroke",(function(t,n){return"segment"===e.options.labels.lines.color?e.options.colors[n]:e.options.labels.lines.color})).attr("stroke-width",1).attr("fill","none").style("opacity",(function(t,n){var r=e.options.labels.outer.hideWhenLessThanPercentage;return null!==r&&t.percentage<r||""===e.options.data.content[n].label?0:1}))},positionLabelGroups:function(e,t){"none"!==e.options.labels[t].format&&e.__labels[t].style("opacity",(function(n,r){var o=e.options.labels[t].hideWhenLessThanPercentage;return null!==o&&n.percentage<o?0:1})).attr("transform",(function(n,r){var o,a;if("outer"===t)o=e.outerLabelGroupData[r].x,a=e.outerLabelGroupData[r].y;else{var l=s(!0,{},e.pieCenter);if(e.innerRadius>0){var c=f.getSegmentAngle(r,e.options.data.content,e.totalSize,{midpoint:!0}),d=u.translate(e.pieCenter.x,e.pieCenter.y,e.innerRadius,c);l.x=d.x,l.y=d.y}var p=i.getDimensions(e.cssPrefix+"labelGroup"+r+"-inner"),h=p.w/2,g=p.h/4;o=l.x+(e.lineCoordGroups[r][0].x-l.x)/1.8,a=l.y+(e.lineCoordGroups[r][0].y-l.y)/1.8,o-=h,a+=g}return"translate("+o+","+a+")"}))},getIncludes:function(e){var t=!1,n=!1,r=!1;switch(e){case"label":t=!0;break;case"value":n=!0;break;case"percentage":r=!0;break;case"label-value1":case"label-value2":t=!0,n=!0;break;case"label-percentage1":case"label-percentage2":t=!0,r=!0}return{mainLabel:t,value:n,percentage:r}},computeOuterLabelCoords:function(e){e.__labels.outer.each((function(t,n){return c.getIdealOuterLabelPositions(e,n)})),c.resolveOuterLabelCollisions(e)},resolveOuterLabelCollisions:function(e){if("none"!==e.options.labels.outer.format){var t=e.options.data.content.length;c.checkConflict(e,0,"clockwise",t),c.checkConflict(e,t-1,"anticlockwise",t)}},checkConflict:function(e,t,n,r){var o,a;if(!(r<=1)){var s=e.outerLabelGroupData[t].hs;if(("clockwise"!==n||"right"===s)&&("anticlockwise"!==n||"left"===s)){var u="clockwise"===n?t+1:t-1,l=e.outerLabelGroupData[t],f=e.outerLabelGroupData[u],d={labelHeights:e.outerLabelGroupData[0].h,center:e.pieCenter,lineLength:e.outerRadius+e.options.labels.outer.pieDistance,heightChange:e.outerLabelGroupData[0].h+1};if("clockwise"===n){for(o=0;o<=t;o++)if(a=e.outerLabelGroupData[o],!c.isLabelHidden(e,o)&&i.rectIntersect(a,f)){c.adjustLabelPos(e,u,l,d);break}}else for(o=r-1;o>=t;o--)if(a=e.outerLabelGroupData[o],!c.isLabelHidden(e,o)&&i.rectIntersect(a,f)){c.adjustLabelPos(e,u,l,d);break}c.checkConflict(e,u,n,r)}}},isLabelHidden:function(e,t){var n=e.options.labels.outer.hideWhenLessThanPercentage;return null!==n&&d.percentage<n||""===e.options.data.content[t].label},adjustLabelPos:function(e,t,n,r){var o,i,a,s;s=n.y+r.heightChange,i=r.center.y-s,o=Math.abs(r.lineLength)>Math.abs(i)?Math.sqrt(r.lineLength*r.lineLength-i*i):Math.sqrt(i*i-r.lineLength*r.lineLength),a="right"===n.hs?r.center.x+o:r.center.x-o-e.outerLabelGroupData[t].w,e.outerLabelGroupData[t].x=a,e.outerLabelGroupData[t].y=s},getIdealOuterLabelPositions:function(e,t){var n=e.svg.select("#"+e.cssPrefix+"labelGroup"+t+"-outer").node();if(n){var r=n.getBBox(),o=f.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),i=e.pieCenter.x,a=e.pieCenter.y-(e.outerRadius+e.options.labels.outer.pieDistance),s=u.rotate(i,a,e.pieCenter.x,e.pieCenter.y,o),l="right";o>180?(s.x-=r.width+8,l="left"):s.x+=8,e.outerLabelGroupData[t]={x:s.x,y:s.y,w:r.width,h:r.height,hs:l}}}},f={effectMap:{none:a.easeLinear,bounce:a.easeBounce,linear:a.easeLinear,sin:a.easeSin,elastic:a.easeElastic,back:a.easeBack,quad:a.easeQuad,circle:a.easeCircle,exp:a.easeExp},create:function(e){var t=e.pieCenter,n=e.options.colors,r=(e.options.effects.load,e.options.misc.colors.segmentStroke),o=e.svg.insert("g","#"+e.cssPrefix+"title").attr("transform",(function(){return u.getPieTranslateCenter(t)})).attr("class",e.cssPrefix+"pieChart"),i=a.arc().innerRadius(e.innerRadius).outerRadius(e.outerRadius).startAngle(0).endAngle((function(t){return t.value/e.totalSize*2*Math.PI}));o.selectAll("."+e.cssPrefix+"arc").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"arc").append("path").attr("id",(function(t,n){return e.cssPrefix+"segment"+n})).attr("fill",(function(t,r){var o=n[r];return e.options.misc.gradient.enabled&&(o="url(#"+e.cssPrefix+"grad"+r+")"),o})).style("stroke",r).style("stroke-width",1).attr("data-index",(function(e,t){return t})).attr("d",i),e.svg.selectAll("g."+e.cssPrefix+"arc").attr("transform",(function(t,n){var r=0;return n>0&&(r=f.getSegmentAngle(n-1,e.options.data.content,e.totalSize)),"rotate("+r+")"})),e.arc=i},addGradients:function(e){var t=e.svg.append("defs").selectAll("radialGradient").data(e.options.data.content).enter().append("radialGradient").attr("gradientUnits","userSpaceOnUse").attr("cx",0).attr("cy",0).attr("r","120%").attr("id",(function(t,n){return e.cssPrefix+"grad"+n}));t.append("stop").attr("offset","0%").style("stop-color",(function(t,n){return e.options.colors[n]})),t.append("stop").attr("offset",e.options.misc.gradient.percentage+"%").style("stop-color",e.options.misc.gradient.color)},addSegmentEventHandlers:function(e){var t=e.svg.selectAll("."+e.cssPrefix+"arc");(t=t.merge(e.__labels.inner.merge(e.__labels.outer))).on("click",(function(){var t,n=a.select(this);if(n.attr("class")===e.cssPrefix+"arc")t=n.select("path");else{var r=n.attr("data-index");t=a.select("#"+e.cssPrefix+"segment"+r)}var o=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onClickSegment,t,o),"none"!==e.options.effects.pullOutSegmentOnClick.effect&&(o?f.closeSegment(e,t.node()):f.openSegment(e,t.node()))})),t.on("mouseover",(function(){var t,n,r=a.select(this);if(r.attr("class")===e.cssPrefix+"arc"?t=r.select("path"):(n=r.attr("data-index"),t=a.select("#"+e.cssPrefix+"segment"+n)),e.options.effects.highlightSegmentOnMouseover){n=t.attr("data-index");var o=e.options.colors[n];t.style("fill",i.getColorShade(o,e.options.effects.highlightLuminosity))}e.options.tooltips.enabled&&(n=t.attr("data-index"),h.showTooltip(e,n));var s=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onMouseoverSegment,t,s)})),t.on("mousemove",(function(){h.moveTooltip(e)})),t.on("mouseout",(function(){var t,n,r=a.select(this);if(r.attr("class")===e.cssPrefix+"arc"?t=r.select("path"):(n=r.attr("data-index"),t=a.select("#"+e.cssPrefix+"segment"+n)),e.options.effects.highlightSegmentOnMouseover){n=t.attr("data-index");var o=e.options.colors[n];e.options.misc.gradient.enabled&&(o="url(#"+e.cssPrefix+"grad"+n+")"),t.style("fill",o)}e.options.tooltips.enabled&&(n=t.attr("data-index"),h.hideTooltip(e,n));var i=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onMouseoutSegment,t,i)}))},onSegmentEvent:function(e,t,n,r){if(i.isFunction(t)){var o=parseInt(n.attr("data-index"),10);t({segment:n.node(),index:o,expanded:r,data:e.options.data.content[o]})}},openSegment:function(e,t){e.isOpeningSegment||(e.isOpeningSegment=!0,f.maybeCloseOpenSegment(e),a.select(t).transition().ease(f.effectMap[e.options.effects.pullOutSegmentOnClick.effect]).duration(e.options.effects.pullOutSegmentOnClick.speed).attr("transform",(function(t,n){var r=e.arc.centroid(t),o=r[0],i=r[1],a=Math.sqrt(o*o+i*i),s=parseInt(e.options.effects.pullOutSegmentOnClick.size,10);return"translate("+o/a*s+","+i/a*s+")"})).on("end",(function(n,r){e.currentlyOpenSegment=t,e.isOpeningSegment=!1,a.select(t).attr("class",e.cssPrefix+"expanded")})))},maybeCloseOpenSegment:function(e){"undefined"!==typeof e&&e.svg.selectAll("."+e.cssPrefix+"expanded").size()>0&&f.closeSegment(e,e.svg.select("."+e.cssPrefix+"expanded").node())},closeSegment:function(e,t){a.select(t).transition().duration(400).attr("transform","translate(0,0)").on("end",(function(n,r){a.select(t).attr("class",""),e.currentlyOpenSegment=null}))},getCentroid:function(e){var t=e.getBBox();return{x:t.x+t.width/2,y:t.y+t.height/2}},getSegmentAngle:function(e,t,n,r){var o,i=s({compounded:!0,midpoint:!1},r),a=t[e].value;if(i.compounded){o=0;for(var u=0;u<=e;u++)o+=t[u].value}"undefined"===typeof o&&(o=a);var l=o/n*360;return i.midpoint&&(l-=a/n*360/2),l}},p={offscreenCoord:-1e4,addTitle:function(e){e.__title=e.svg.selectAll("."+e.cssPrefix+"title").data([e.options.header.title]).enter().append("text").text((function(e){return e.text})).attr("id",e.cssPrefix+"title").attr("class",e.cssPrefix+"title").attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("text-anchor",(function(){return"top-center"===e.options.header.location||"pie-center"===e.options.header.location?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionTitle:function(e){var t,n=e.textComponents,r=e.options.header.location,o=e.options.misc.canvasPadding,i=e.options.size.canvasWidth,a=e.options.header.titleSubtitlePadding;t="top-left"===r?o.left:(i-o.right)/2+o.left,t+=e.options.misc.pieCenterOffset.x;var s=o.top+n.title.h;"pie-center"===r&&(s=e.pieCenter.y,n.subtitle.exists?s=s-(n.title.h+a+n.subtitle.h)/2+n.title.h:s+=n.title.h/4),e.__title.attr("x",t).attr("y",s)},addSubtitle:function(e){var t=e.options.header.location;e.__subtitle=e.svg.selectAll("."+e.cssPrefix+"subtitle").data([e.options.header.subtitle]).enter().append("text").text((function(e){return e.text})).attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("id",e.cssPrefix+"subtitle").attr("class",e.cssPrefix+"subtitle").attr("text-anchor",(function(){return"top-center"===t||"pie-center"===t?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionSubtitle:function(e){var t,n=e.options.misc.canvasPadding,r=e.options.size.canvasWidth;t="top-left"===e.options.header.location?n.left:(r-n.right)/2+n.left,t+=e.options.misc.pieCenterOffset.x;var o=p.getHeaderHeight(e);e.__subtitle.attr("x",t).attr("y",o)},addFooter:function(e){e.__footer=e.svg.selectAll("."+e.cssPrefix+"footer").data([e.options.footer]).enter().append("text").text((function(e){return e.text})).attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("id",e.cssPrefix+"footer").attr("class",e.cssPrefix+"footer").attr("text-anchor",(function(){var t="left";return"bottom-center"===e.options.footer.location?t="middle":"bottom-right"===e.options.footer.location&&(t="left"),t})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionFooter:function(e){var t,n=e.options.footer.location,r=e.textComponents.footer.w,o=e.options.size.canvasWidth,i=e.options.size.canvasHeight,a=e.options.misc.canvasPadding;t="bottom-left"===n?a.left:"bottom-right"===n?o-r-a.right:o/2,e.__footer.attr("x",t).attr("y",i-a.bottom)},getHeaderHeight:function(e){var t;if(e.textComponents.title.exists){var n=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h;t="pie-center"===e.options.header.location?e.pieCenter.y-n/2+n:n+e.options.misc.canvasPadding.top}else if("pie-center"===e.options.header.location){var r=e.options.misc.canvasPadding.bottom+e.textComponents.footer.h;t=(e.options.size.canvasHeight-r)/2+e.options.misc.canvasPadding.top+e.textComponents.subtitle.h/2}else t=e.options.misc.canvasPadding.top+e.textComponents.subtitle.h;return t}},h={addTooltips:function(e){var t=e.svg.insert("g").attr("class",e.cssPrefix+"tooltips");t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"tooltip").attr("id",(function(t,n){return e.cssPrefix+"tooltip"+n})).style("opacity",0).append("rect").attr("rx",e.options.tooltips.styles.borderRadius).attr("ry",e.options.tooltips.styles.borderRadius).attr("x",-e.options.tooltips.styles.padding).attr("opacity",e.options.tooltips.styles.backgroundOpacity).style("fill",e.options.tooltips.styles.backgroundColor),t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).append("text").attr("fill",(function(t){return e.options.tooltips.styles.color})).style("font-size",(function(t){return e.options.tooltips.styles.fontSize})).style("font-weight",(function(t){return e.options.tooltips.styles.fontWeight})).style("font-family",(function(t){return e.options.tooltips.styles.font})).text((function(t,n){var r=e.options.tooltips.string;return"caption"===e.options.tooltips.type&&(r=t.caption),h.replacePlaceholders(e,r,n,{label:t.label,value:t.value,percentage:t.percentage})})),t.selectAll("."+e.cssPrefix+"tooltip rect").attr("width",(function(t,n){return i.getDimensions(e.cssPrefix+"tooltip"+n).w+2*e.options.tooltips.styles.padding})).attr("height",(function(t,n){return i.getDimensions(e.cssPrefix+"tooltip"+n).h+2*e.options.tooltips.styles.padding})).attr("y",(function(t,n){return-i.getDimensions(e.cssPrefix+"tooltip"+n).h/2+1}))},showTooltip:function(e,t){var n=e.options.tooltips.styles.fadeInSpeed;h.currentTooltip===t&&(n=1),h.currentTooltip=t,a.select("#"+e.cssPrefix+"tooltip"+t).transition().duration(n).style("opacity",(function(){return 1})),h.moveTooltip(e)},moveTooltip:function(e){a.selectAll("#"+e.cssPrefix+"tooltip"+h.currentTooltip).attr("transform",(function(t){var n=a.pointer(this.parentNode);return"translate("+(n[0]+e.options.tooltips.styles.padding+2)+","+(n[1]-2*e.options.tooltips.styles.padding-2)+")"}))},hideTooltip:function(e,t){a.select("#"+e.cssPrefix+"tooltip"+t).style("opacity",(function(){return 0})),a.select("#"+e.cssPrefix+"tooltip"+h.currentTooltip).attr("transform",(function(t,n){return"translate("+(e.options.size.canvasWidth+1e3)+","+(e.options.size.canvasHeight+1e3)+")"}))},replacePlaceholders:function(e,t,n,r){i.isFunction(e.options.tooltips.placeholderParser)&&e.options.tooltips.placeholderParser(n,r);var o=function(){return function(e){var t=arguments[1];return r.hasOwnProperty(t)?r[arguments[1]]:arguments[0]}};return t.replace(/\{(\w+)\}/g,o(r))}},g=function(i,u){if(this.element=i,"string"===typeof i){var l=i.replace(/^#/,"");this.element=document.getElementById(l)}var c={};s(!0,c,r,u),this.options=c,null!==this.options.misc.cssPrefix?this.cssPrefix=this.options.misc.cssPrefix:(this.cssPrefix="p"+n+"_",n++),o.initialCheck(this)&&(a.select(this.element).attr(e,t),v.call(this),m.call(this))};g.prototype.recreate=function(){o.initialCheck(this)&&(v.call(this),m.call(this))},g.prototype.redraw=function(){this.element.innerHTML="",m.call(this)},g.prototype.destroy=function(){this.element.innerHTML="",a.select(this.element).attr(e,null)},g.prototype.getOpenSegment=function(){var e=this.currentlyOpenSegment;if(null!==e&&"undefined"!==typeof e){var t=parseInt(a.select(e).attr("data-index"),10);return{element:e,index:t,data:this.options.data.content[t]}}return null},g.prototype.openSegment=function(e){(e=parseInt(e,10))<0||e>this.options.data.content.length-1||f.openSegment(this,a.select("#"+this.cssPrefix+"segment"+e).node())},g.prototype.closeSegment=function(){f.maybeCloseOpenSegment(this)},g.prototype.updateProp=function(e,t){switch(e){case"header.title.text":var n=i.processObj(this.options,e);i.processObj(this.options,e,t),a.select("#"+this.cssPrefix+"title").html(t),(""===n&&""!==t||""!==n&&""===t)&&this.redraw();break;case"header.subtitle.text":var r=i.processObj(this.options,e);i.processObj(this.options,e,t),a.select("#"+this.cssPrefix+"subtitle").html(t),(""===r&&""!==t||""!==r&&""===t)&&this.redraw();break;case"callbacks.onload":case"callbacks.onMouseoverSegment":case"callbacks.onMouseoutSegment":case"callbacks.onClickSegment":case"effects.pullOutSegmentOnClick.effect":case"effects.pullOutSegmentOnClick.speed":case"effects.pullOutSegmentOnClick.size":case"effects.highlightSegmentOnMouseover":case"effects.highlightLuminosity":i.processObj(this.options,e,t);break;default:i.processObj(this.options,e,t),this.destroy(),this.recreate()}};var v=function(){this.options.data.content=u.sortPieData(this),this.options.data.smallSegmentGrouping.enabled&&(this.options.data.content=i.applySmallSegmentGrouping(this.options.data.content,this.options.data.smallSegmentGrouping)),this.options.colors=i.initSegmentColors(this),this.totalSize=u.getTotalPieSize(this.options.data.content);for(var e=this.options.labels.percentage.decimalPlaces,t=0;t<this.options.data.content.length;t++)this.options.data.content[t].percentage=y(this.options.data.content[t].value,this.totalSize,e);for(var n=0,r=0;r<this.options.data.content.length;r++)r===this.options.data.content.length-1&&(this.options.data.content[r].percentage=(100-n).toFixed(e)),n+=parseFloat(this.options.data.content[r].percentage)},m=function(){this.svg=i.addSVGSpace(this),this.textComponents={headerHeight:0,title:{exists:""!==this.options.header.title.text,h:0,w:0},subtitle:{exists:""!==this.options.header.subtitle.text,h:0,w:0},footer:{exists:""!==this.options.footer.text,h:0,w:0}},this.outerLabelGroupData=[],p.addTitle(this),p.addSubtitle(this),p.addFooter(this);var e=this;p.positionFooter(e);var t=i.getDimensions(e.__footer.node());if(e.textComponents.footer.h=t.h,e.textComponents.footer.w=t.w,e.textComponents.title.exists){var n=i.getDimensions(e.__title.node());e.textComponents.title.h=n.h,e.textComponents.title.w=n.w}if(e.textComponents.subtitle.exists){var r=i.getDimensions(e.__subtitle.node());e.textComponents.subtitle.h=r.h,e.textComponents.subtitle.w=r.w}if(e.textComponents.title.exists||e.textComponents.subtitle.exists){var o=0;e.textComponents.title.exists&&(o+=e.textComponents.title.h,e.textComponents.subtitle.exists&&(o+=e.options.header.titleSubtitlePadding)),e.textComponents.subtitle.exists&&(o+=e.textComponents.subtitle.h),e.textComponents.headerHeight=o}if(u.computePieRadius(e),u.calculatePieCenter(e),p.positionTitle(e),p.positionSubtitle(e),e.options.misc.gradient.enabled&&f.addGradients(e),f.create(e),e.__labels={},c.add(e,"inner",e.options.labels.inner.format),c.add(e,"outer",e.options.labels.outer.format),c.positionLabelElements(e,"inner",e.options.labels.inner.format),c.positionLabelElements(e,"outer",e.options.labels.outer.format),c.computeOuterLabelCoords(e),c.positionLabelGroups(e,"outer"),c.computeLabelLinePositions(e),e.options.labels.lines.enabled&&"none"!==e.options.labels.outer.format&&c.addLabelLines(e),c.positionLabelGroups(e,"inner"),i.isFunction(e.options.callbacks.onload))try{e.options.callbacks.onload()}catch(a){}e.options.tooltips.enabled&&h.addTooltips(e),f.addSegmentEventHandlers(e)},y=function(e,t,n){var r=e/t;return n<=0?Math.round(100*r):(100*r).toFixed(n)};return g},void 0===(i="function"===typeof r?r.apply(t,o):r)||(e.exports=i)},49021:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e,t){var n=e.getDygraph(),r=n.getArea().h,o=n.canvas_ctx_,i=e.chart.getPayload().data[t];if(Array.isArray(i)){var a=n.toDomXCoord(i[0]),s=e.chart.getThemeAttribute("themeCrosshair");n.setSelection(t),o.save(),o.beginPath(),o.setLineDash([5,5]),o.strokeStyle=s,o.moveTo(a,0),o.lineTo(a,r),o.stroke(),o.closePath(),o.restore()}}},60579:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t,n,r,o,i=function(t,n,r){var o=r&&function(t,n){if(Array.isArray(n)){var r=t.offsetY;if(r>e.getDygraph().getArea().h-10)return"ANNOTATIONS";if(r<15)return"ANOMALY_RATE";for(var o=n[0],i=Math.abs(n[0].canvasy-r),a=1;a<n.length;a++){var s=Math.abs(n[a].canvasy-r);s<i&&(i=s,o=n[a])}return o.name}}(t,r);if(o){var i=e.getDygraph().getPropertiesForSeries(o);if(i){var a=e.chart.getPayloadDimensionIds();if(null!=a&&a.length){var s=a[i.column-1]||i.name;e.sdk.trigger("highlightHover",e.chart,n,s),e.chart.trigger("highlightHover",n,s)}}}},a=function(e,a,s){o!==a&&(r=s,o=a,t=e.offsetX,n=e.offsetY,i(e,a,s))},s=function(e){Math.abs(e.offsetX-t)<5&&Math.abs(e.offsetY-n)<5||(t=e.offsetX,n=e.offsetY,i(e,o,r))},u=function(){e.sdk.trigger("highlightBlur",e.chart),e.chart.trigger("highlightBlur")},l=function(){n=null,r=null,o=null,e.off("highlightCallback",a),e.off("mousemove",s)};return{toggle:function(t){return t?e.on("highlightCallback",a).on("mousemove",s).on("mouseout",u):l()},destroy:l}}},67514:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(7494)),o=h(n(58960)),i=h(n(81220)),a=h(n(93492)),s=n(93501),u=n(79635),l=n(56778),c=h(n(97962)),f=h(n(60579)),d=h(n(34613)),p=h(n(49021));function h(e){return e&&e.__esModule?e:{default:e}}function g(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,h,v,m=(0,o.default)(e,t),b=null,w=[],x=null,_=null,S=null,O=null,C={line:(0,u.makeLinePlotter)(m),stackedBar:(0,u.makeStackedBarPlotter)(m),multiBar:(0,u.makeMultiColumnBarPlotter)(m),heatmap:(0,u.makeHeatmapPlotter)(m),default:null},E={yRangePad:30,strokeWidth:.7,fillAlpha:.2,fillGraph:!1,stackedGraph:!1,forceIncludeZero:!1,errorBars:!1,makeYAxisLabelFormatter:function(){return function(e,n,r,o){var i=o.axes_[0].extremeRange,a=o.axes_[0].valueRange||[null,null],s=a[0],u=a[1];return s=null===s?i[0]:s,u=null===u?i[1]:u,s===h&&u===v||(h=s,v=u,m.sdk.trigger("yAxisChange",t,s,u)),t.getConvertedValue(e)}},makeYTicker:function(){return l.numericTicker},highlightCircleSize:4},A={line:y(y({},E),{},{strokeWidth:1.5,fillAlpha:.2}),stacked:y(y({},E),{},{strokeWidth:.1,fillAlpha:.8,fillGraph:!0,stackedGraph:!0,forceIncludeZero:!0}),area:y(y({},E),{},{fillGraph:!0,forceIncludeZero:!0}),stackedBar:y(y({},E),{},{stackedGraph:!0,forceIncludeZero:!0}),heatmap:y(y({},E),{},{makeYAxisLabelFormatter:function(){return function(e){var n=t.getAttribute("min"),r=t.getAttribute("max");n===h&&r===v||(h=n,v=r,m.sdk.trigger("yAxisChange",t,n,r));var o=parseFloat(parseFloat(e).toFixed(5));return isNaN(o)?e:o}},makeYTicker:function(e){return function(t,n,r,o,i){return(0,l.heatmapTicker)(t,n,r,o,i,e)}},highlightCircleSize:0}),default:y({},E)},M=function(){var e=t.getPayload().labels,n=t.getAttributes(),o=n.chartType,i=n.includeZero,a=n.enabledXAxis,u=n.enabledYAxis,l=n.yAxisLabelWidth,c=C[o]||C.default,f=A[o]||A.default,d=f.strokeWidth,p=f.fillAlpha,h=f.fillGraph,g=f.stackedGraph,v=f.forceIncludeZero,m=f.makeYAxisLabelFormatter,b=f.errorBars,w=f.makeYTicker,x=f.highlightCircleSize,_=f.yRangePad,S=m(e),O=w?w(t.getVisibleDimensionIds()):null,E=t.getAttributes().selectedLegendDimensions,M=t.getPayloadDimensionIds();return{yRangePad:_,stackedGraph:g,fillGraph:h,fillAlpha:p,highlightCircleSize:x,strokeWidth:d,includeZero:i||v&&M.length>1&&E.length>1,stackedGraphNaNFill:"none",plotter:c,errorBars:b,axes:{x:a?{ticker:r.default.dateTicker,axisLabelFormatter:t.formatXAxis,axisLabelWidth:60}:{drawAxis:!1},y:u?y(y(y({},O&&{ticker:O}),{},{axisLabelFormatter:S},l&&{axisLabelWidth:l}),{},{pixelsPerLabel:15}):{drawAxis:!1}},ylabel:t.getAttribute("hasYlabel")&&t.getUnitSign({long:!0,real:(0,s.isHeatmap)(o)})}},k=function(){var e=m.chart.getThemeAttribute("themeGridColor");return{axisLineColor:e,gridLineColor:e}},P=function(){var e=t.getPayloadDimensionIds(),n=t.getPayload().labels;if(null==e||!e.length||null==n||!n.length)return{visibility:!1};var r=n.length-e.length,o=Array(r>0?r:0).fill(!0),i=t.getAttribute("selectedLegendDimensions");return{visibility:[].concat(g(e.map(i.length?t.isDimensionVisible:function(){return!0})),g(o))}},R=function(){var e=t.getAttributes(),n=e.outOfLimits,r=e.getValueRange,o=e.staticValueRange,i=e.chartType,a=t.getPayload(),u=a.data,l=a.labels,c=t.getDateWindow(),f=n||0===u.length;return{file:f?[[0]]:u,labels:f?["X"]:l,dateWindow:c,valueRange:o||((0,s.isHeatmap)(i)?[0,t.getVisibleDimensionIds().length]:r(t,{dygraph:!0}))}},T=function(){return t.isSparkline()?{drawGrid:!1,drawAxis:!1,ylabel:void 0,yLabelWidth:0,highlightCircleSize:3,fillAlpha:1,strokeWidth:0}:null},I=function(){var e=t.getPayloadDimensionIds();return e.length?{colors:e.map(t.selectDimensionColor)}:{}},B=y(y({},m),{},{getChartWidth:function(){return b?b.getArea().w:m.getChartWidth()},getChartHeight:function(){return b?b.getArea().h:100},getPreceded:function(){if(!b)return-1;if(1e3*t.getFirstEntry()<b.xAxisRange()[0])return-1;var e=b.xAxisExtremes()[0];return b.toDomXCoord(e)},mount:function(e){if(!b){m.mount(e);var o=t.getAttribute("theme");e.classList.add(o);var l=t.getAttributes(),c=t.getPayload(),f=c.data,d=c.labels;n=(0,i.default)();var h=l.outOfLimits||0===f.length;b=new r.default(e,h?[[0]]:f,y(y(y(y(y(y({legend:"never",showLabelsOnHighlight:!1,labels:h?["X"]:d,dateWindow:t.getDateWindow(),highlightCallback:n.add((function(e,t,n,r,o){return m.trigger("highlightCallback",e,t,n,r,o)})),unhighlightCallback:n.add((function(){return m.trigger("unhighlightCallback")})),drawCallback:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["drawCallback"].concat(t))},underlayCallback:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["underlayCallback"].concat(t))})),interactionModel:{willDestroyContextMyself:!0,mouseout:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mouseout"].concat(t))})),mousedown:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mousedown"].concat(t))})),mousemove:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mousemove"].concat(t))})),mouseover:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mouseover"].concat(t))})),mouseup:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mouseup"].concat(t))})),touchstart:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["touchstart"].concat(t))})),touchmove:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["touchmove"].concat(t))})),touchend:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["touchend"].concat(t))})),dblclick:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["dblclick"].concat(t))})),wheel:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["wheel"].concat(t))}))},series:{ANOMALY_RATE:{plotter:(0,u.makeAnomalyPlotter)(m),drawPoints:!1,pointSize:0,highlightCircleSize:0},ANNOTATIONS:{plotter:(0,u.makeAnnotationsPlotter)(m),drawPoints:!1,pointSize:0,highlightCircleSize:0}},strokeBorderWidth:0,axisLabelFontSize:l.axisLabelFontSize,axisLineWidth:1,gridLineWidth:1,maxNumberWidth:8,highlightSeriesBackgroundAlpha:1,drawGapEdgePoints:!0,ylabel:t.getAttribute("hasYlabel")&&t.getUnitSign({long:!0}),digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits"),yLabelWidth:12,yRangePad:30,labelsSeparateLines:!0,rightGap:-5},M()),k()),P()),R()),T()),I())),S=(0,a.default)(e,(function(){m.trigger("resize")})),_.toggle(l.enabledHover),x.toggle(l.enabledNavigation,l.navigation),w=[m.on("resize",n.add((function(){return b.resize()}))),t.onAttributeChange("hoverX",n.add((function(e){var n=e?t.getClosestRow(e[0]):-1;if(-1===n)return b.setSelection();(0,p.default)(B,n)}))),t.onAttributeChange("enabledHover",_.toggle),t.onAttributeChange("enabledNavigation",x.toggle),t.onAttributeChange("navigation",x.set),t.onAttributeChange("overlays",O.toggle),t.onAttributeChange("theme",(function(t,n){e.classList.remove(n),e.classList.add(t),b.updateOptions(k())})),t.onAttributeChange("chartType",(function(){t.getAttribute("processing")||b.updateOptions(M())})),t.onAttributeChange("selectedLegendDimensions",(function(){t.getAttribute("processing")||b.updateOptions(y(y(y(y({},P()),I()),M()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")}))})),t.onAttributeChange("unitsConversion",(function(){return b.updateOptions(y(y({},M()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")}))})),t.onAttributeChange("staticValueRange",(function(e){var n=e[0],r=e[1];b.updateOptions({valueRange:(0,s.isHeatmap)(l.chartType)?[Math.ceil(n),Math.ceil(r)]:l.getValueRange(t,{dygraph:!0})})})),t.onAttributeChange("timezone",(function(){return b.updateOptions({})}))].filter(Boolean),O.toggle(),m.trigger("resize"),m.render()}},unmount:function(){b&&(S(),n&&n.clear(),w.forEach((function(e){return e()})),w=[],m.unmount(),_.destroy(),x.destroy(),b.destroy(),b=null,O.destroy())},getDygraph:function(){return b},getXAxisRange:function(){var e;return null==(e=b)?void 0:e.xAxisRange()},render:function(){if(b){var e=t.getAttributes(),n=e.highlighting,r=e.panning,o=e.processing;e.chartType;n||r||o||(m.render(),b.updateOptions(y(y(y(y(y({},R()),P()),I()),M()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")},T())),m.trigger("rendered"))}}});return x=(0,c.default)(B),_=(0,f.default)(B),O=(0,d.default)(B),B}},25436:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=n(42189),i=(r=n(18774))&&r.__esModule?r:{default:r};t.default=function(e){var t=function(t,n){return void 0===n&&(n=e.chart.getAttribute("navigation")),e.chart.updateAttributes({navigation:t,prevNavigation:n})},n=(0,o.debounce)(500,(function(e,t,n){e.moveX(t,n)})),r=e.on("mousedown",(function(e){e.shiftKey&&e.altKey?t("selectVertical"):e.altKey?t("highlight"):e.shiftKey&&t("select")})).on("mouseup",(function(){setTimeout((function(){var n=e.chart.getAttribute("prevNavigation");n&&t(n,null)}))})).on("wheel",(function(t,r){if(t.shiftKey||t.altKey){t.preventDefault(),t.stopPropagation();var o="number"!==typeof t.wheelDelta||Number.isNaN(t.wheelDelta)?-1.2*t.deltaY:t.wheelDelta/40,a=(t.detail?-1*t.detail:o)/50,s=t.offsetX||t.layerX-t.target.offsetLeft,u=function(e,t){var n=e.toDomCoords(e.xAxisRange()[0],null)[0],r=t-n,o=e.toDomCoords(e.xAxisRange()[1],null)[0]-n;return 0===o?0:r/o}(r,s);!function(t,o,a){a=a||.5;var s=t.xAxisRange(),u=s[0],l=s[1],c=(l-u)*o,f=c*a,d=c*(1-a),p=Math.round((u+f)/1e3),h=Math.round((l-d)/1e3),g=(0,i.default)({after:p,before:h}),v=g.fixedAfter,m=g.fixedBefore;v===u&&m===l||(n(e.chart,v,m),r.updateOptions({dateWindow:[1e3*v,1e3*m]}))}(r,a,u)}})).on("dblclick",e.chart.resetNavigation);return function(){return r()}}},97962:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(25436)),o=s(n(47883)),i=s(n(36012)),a=s(n(37108));function s(e){return e&&e.__esModule?e:{default:e}}var u={highlight:o.default,select:o.default,selectVertical:a.default,pan:i.default};t.default=function(e){var t,n,o=function(){null==t||t(),t=null},i=function(){o(),null==n||n(),n=null},a=function(r){var i;n&&(o(),t=null==(i=u[r])?void 0:i.call(u,e))};return{toggle:function(t,o){if(!t)return i();n=(0,r.default)(e),o&&a(o)},set:a,destroy:i}}},36012:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r};t.default=function(e){var t=function(e,t,n){n.isPanning&&o.default.movePan(e,t,n)},n=function n(r,i,a){a.isPanning&&(o.default.endPan(r,i,a),a.destroy(),e.sdk.trigger("panEnd",e.chart,i.dateWindow_)),e.off("mousemove",t),e.off("mouseup",n),e.off("mouseout",n)};return e.on("mousedown",(function(r,i,a){e.sdk.trigger("panStart",e.chart),a.initializeMouseDown(r,i,a),o.default.startPan(r,i,a),a.is2DPan=!1,e.on("mousemove",t).on("mouseout",n).on("mouseup",n)}))}},47883:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r},i=n(72247);t.default=function(e){var t,n,r=function(e,t,r){if(r.isZooming){var o=t.canvas_ctx_,a=t.canvas_,s=t.getArea(),u=a.getBoundingClientRect(),l=u.left+s.x,c=(u.top,s.y,s.w);s.h;if(!(e.pageX<l||e.pageX>l+c)){r.zoomMoved=!0,r.dragEndX=(0,i.dragGetX_)(e,r);var f=r.dragStartX,d=r.dragEndX;o.clearRect(0,0,a.width,a.height),o.fillStyle="rgba(128,128,128,0.3)",o.fillRect(Math.min(f,d),s.y,Math.abs(d-f),s.h),r.prevEndX=d,n=d}}},a=function o(i,a,s){if(s.isZooming){a.clearZoomRect_(),s.destroy();var u=function(e){return-1===n||Math.abs(t-n)<5?null:[Math.round(e.toDataXCoord(t)/1e3),Math.round(e.toDataXCoord(n)/1e3)].sort((function(e,t){return e-t}))}(a);e.sdk.trigger("highlightEnd",e.chart,u)}e.off("mousemove",r),e.off("mouseup",o)};return e.on("mousedown",(function(i,s,u){e.sdk.trigger("highlightStart",e.chart),u.initializeMouseDown(i,s,u),o.default.startZoom(i,s,u),t=u.dragStartX,n=-1,e.on("mousemove",r).on("mouseup",a)}))}},37108:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r},i=n(72247);t.default=function(e){var t,n,r=function(e,t,r){if(r.isZooming){var o=t.canvas_ctx_,a=t.canvas_,s=a.getBoundingClientRect();if(!(e.pageY<s.top||e.pageY>s.bottom)){r.zoomMoved=!0,r.dragEndY=(0,i.dragGetY_)(e,r);var u=r.dragStartY,l=r.dragEndY,c=t.getArea();o.clearRect(0,0,a.width,a.height),o.fillStyle="rgba(128,128,128,0.3)",o.fillRect(c.x,Math.min(u,l),c.w,Math.abs(l-u)),r.prevEndY=l,n=l}}},a=function o(i,a,s){if(s.isZooming){a.clearZoomRect_(),s.destroy();var u=-1===n||Math.abs(t-n)<5?null:[a.toDataYCoord(t),a.toDataYCoord(n)].sort((function(e,t){return e-t}));e.sdk.trigger("highlightVerticalEnd",e.chart,u)}e.off("mousemove",r),e.off("mouseup",o)};return e.on("mousedown",(function(i,s,u){e.sdk.trigger("highlightVerticalStart",e.chart),u.initializeMouseDown(i,s,u),o.default.startZoom(i,s,u),t=u.dragStartY,n=-1,e.on("mousemove",r).on("mouseup",a)}))}},1991:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062),o={warning:"#F9A825",critical:"#FF4136",clear:"#00AB44"};t.default=function(e,t){var n=e.chart.getAttribute("overlays")[t],i=n.when,a=n.status,s=e.getDygraph(),u=s.getArea().h,l=s.hidden_ctx_,c=(0,r.getArea)(s,[i,i]);if(!c)return(0,r.trigger)(e,t);var f=c.from;(0,r.trigger)(e,t,c),l.save(),l.beginPath(),l.moveTo(f-1,0),l.lineTo(f-1,u),l.globalAlpha=1,l.lineWidth=2,l.setLineDash([4,4]),l.strokeStyle=o[a],l.stroke(),l.closePath(),l.restore()}},3288:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062),o={warning:"#FFF8E1",critical:"#FFEBEF",clear:"#E5F5E8"},i={warning:"#FFC300",critical:"#F59B9B",clear:"#68C47D"},a={warning:"#F9A825",critical:"#FF4136",clear:"#00AB44"};t.default=function(e,t){var n=e.chart.getAttribute("overlays")[t],s=n.whenTriggered,u=n.whenLast,l=void 0===u?Math.floor((new Date).getTime()/1e3):u,c=n.status,f=e.getDygraph(),d=f.getArea().h,p=f.hidden_ctx_,h=(0,r.getArea)(f,[s,l]);if(!h)return(0,r.trigger)(e,t);var g=h.from,v=h.width,m=h.to;(0,r.trigger)(e,t,h),p.save(),p.beginPath(),p.rect(g,0,v,d-1),p.fillStyle=i[c],p.globalAlpha=.1,p.fill();p.beginPath(),p.moveTo(g,0),p.lineTo(g,d),p.globalAlpha=1,p.lineWidth=2,p.setLineDash([4,4]),p.strokeStyle=o[c],p.stroke(),p.beginPath(),p.moveTo(m-2,0),p.lineTo(m-2,d),p.strokeStyle=a[c],p.stroke(),p.closePath(),p.restore()}},41062:function(e,t){"use strict";t.__esModule=!0,t.trigger=t.getArea=void 0;t.getArea=function(e,t){var n=e.xAxisRange(),r=n[0],o=n[1],i=1e3*t[0],a=1e3*t[1];if(a<r||i>o)return null;var s=Math.max(r,i),u=Math.min(o,a),l=e.toDomXCoord(s),c=e.toDomXCoord(u);return{from:l,to:c,width:c-l}};t.trigger=function(e,t,n){return requestAnimationFrame((function(){return e.trigger("overlayedAreaChanged:"+t,n)}))}},4241:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062);t.default=function(e,t){var n=e.chart.getAttribute("overlays")[t].range;if(n){var o=e.getDygraph(),i=o.getArea().h,a=o.hidden_ctx_,s=(0,r.getArea)(o,n);if(!s)return(0,r.trigger)(e,t);var u=s.from,l=s.width;(0,r.trigger)(e,t,s),a.save(),a.beginPath(),a.rect(u,0,l,i-1),a.fillStyle="rgba(207, 213, 218, 0.12)",a.fill(),a.beginPath(),a.rect(u,0,0,i-1),a.rect(u+l,0,0,i-1),a.fill(),a.setLineDash([2,7]),a.lineWidth=1,a.strokeStyle="#CFD5DA",a.stroke(),a.stroke(),a.closePath(),a.restore()}}},34613:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(82415))&&r.__esModule?r:{default:r};t.default=function(e){var t=null,n=function(t){var n=e.chart.getAttribute("overlays")[t].type,r=o.default[n];r&&r(e,t)},r=function(){var t=e.chart.getAttribute("overlays");Object.keys(t).forEach(n)},i=function(){var t=e.getDygraph();t&&t.renderGraph_(!1)},a=function(){t&&(i(),t(),t=null)};return{toggle:function(){var n=e.chart.getAttribute("overlays");if(!Object.keys(n).length)return a();t?i():t=e.on("underlayCallback",r)},destroy:a}}},85362:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062);t.default=function(e,t){var n=e.getDygraph(),o=n.xAxisRange()[1],i=o/1e3,a=e.chart.getFirstEntry(),s=e.chart.getAttributes(),u=s.outOfLimits,l=s.error;if(u||a&&!(a>i)||l){var c=u||l?[o,o]:[a,a],f=(0,r.getArea)(n,c);(0,r.trigger)(e,t,f)}}},82415:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(1991)),o=s(n(3288)),i=s(n(4241)),a=s(n(85362));function s(e){return e&&e.__esModule?e:{default:e}}var u={alarm:r.default,alarmRange:o.default,highlight:i.default,proceeded:a.default};t.default=u},9806:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(35890);function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.default=function(e){return function(t){if(e&&"ANNOTATIONS"===t.setName){var n=t.drawingContext,i=t.points,a=i[1].canvasx-i[0].canvasx+1,s=Math.floor(a),u=e.chart.getPayloadDimensionIds(),l=e.chart.getAttribute("selectedLegendDimensions"),c=u.reduce((function(t,n,r){return l.length?e.chart.isDimensionVisible(n)&&t.add(r):t.add(r),t}),new Set),f=e.chart.getPayload().all;i.forEach((function(i){var a=i.canvasx,u=e.chart.getClosestRow(i.xval),l=o(f[u].slice(1).reduce((function(e,t,n){var o=t.pa;return c.has(n)&&o&&r.parts.forEach((function(t){return(0,r.check)(o,r.enums[t])&&e.add(t)})),e}),new Set)).sort((function(e,t){return r.priorities[e]<r.priorities[t]})),d=t.dygraph.getArea().h;n.strokeStyle=n.fillStyle="transparent",n.fillRect(a-s/2,d-4,s,d),n.strokeRect(a-s/2,d-4,s,d),l.forEach((function(e){n.strokeStyle=n.fillStyle=r.colors[e]||"transparent",n.fillRect(a-s/2,d-4,s,d),n.strokeRect(a-s/2,d-4,s,d)}))}))}}}},56950:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(69032);t.default=function(e){return function(t){if(e&&"ANOMALY_RATE"===t.setName){var n=t.drawingContext,o=t.points;if(!o.length)return;var i=o[1].canvasx-o[0].canvasx+1,a=Math.floor(i),s=(0,r.scaleLinear)().domain([0,100]).range(["transparent",e.chart.getThemeAttribute("themeAnomalyScaleColor")]),u=e.chart.getPayloadDimensionIds(),l=e.chart.getAttribute("selectedLegendDimensions"),c=u.reduce((function(t,n,r){return l.length?e.chart.isDimensionVisible(n)&&t.add(r):t.add(r),t}),new Set),f=e.chart.getPayload().all;o.forEach((function(t){var r=t.canvasx,o=e.chart.getClosestRow(t.xval),i=f[o].slice(1).reduce((function(e,t,n){var r=t.arp;return c.has(n)?e>(r||0)?e:r||0:e}),0);n.strokeStyle=n.fillStyle=s(i),n.fillRect(r-a/2,0,a,15),n.strokeRect(r-a/2,0,a,15)}))}}}},43492:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(93501);t.default=function(e){return function(t){if(e&&0===t.seriesIndex){var n=e.chart.getVisibleDimensionIds(),o=e.chart.getVisibleDimensionIndexesById(),i=t.dygraph,a=t.drawingContext,s=t.allSeriesPoints,u=i.layout_.setNames,l=1/0;s.forEach((function(e){var t=e[1].canvasx-e[0].canvasx;t<l&&(l=t)}));var c=Math.floor(l),f=(0,r.makeGetColor)(e.chart);u.forEach((function(t,r){var u=o[t];if(-1!==u){var l=Math.abs(0===u?i.toDomYCoord(u+1)-i.toDomYCoord(u):i.toDomYCoord(u)-i.toDomYCoord(u-1));s[r].forEach((function(t,r){var o=e.chart.getDimensionValue(n[u],r)||0;a.fillStyle=f(o),a.fillRect(t.canvasx-c/2,i.toDomYCoord(u)-l/2,c,l),a.strokeStyle="transparent",a.strokeRect(t.canvasx-c/2,i.toDomYCoord(u)-l/2,c,l)}))}}))}}}},96556:function(e,t,n){"use strict";t.__esModule=!0,t.darkenColor=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r};t.darkenColor=function(e){var t=o.default.toRGB_(e);return t.r=Math.floor((255+t.r)/2),t.g=Math.floor((255+t.g)/2),t.b=Math.floor((255+t.b)/2),"rgb("+t.r+","+t.g+","+t.b+")"}},79635:function(e,t,n){"use strict";t.__esModule=!0,t.makeStackedBarPlotter=t.makeMultiColumnBarPlotter=t.makeLinePlotter=t.makeHeatmapPlotter=t.makeAnomalyPlotter=t.makeAnnotationsPlotter=void 0;var r=l(n(98972));t.makeLinePlotter=r.default;var o=l(n(60810));t.makeStackedBarPlotter=o.default;var i=l(n(82921));t.makeMultiColumnBarPlotter=i.default;var a=l(n(43492));t.makeHeatmapPlotter=a.default;var s=l(n(56950));t.makeAnomalyPlotter=s.default;var u=l(n(9806));function l(e){return e&&e.__esModule?e:{default:e}}t.makeAnnotationsPlotter=u.default},98972:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0,n(86929);t.default=function(){return function(e){window.smoothPlotter(e)}}},82921:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(96556);t.default=function(){return function(e){if(0===e.seriesIndex){var t=e.dygraph,n=e.drawingContext,o=e.allSeriesPoints,i=t.toDomYCoord(0),a=1/0;o.forEach((function(e){var t=e[1].canvasx-e[0].canvasx;t<a&&(a=t)}));var s=Math.floor(2/3*a),u=t.getColors(),l=t.getColors().map((function(e){return(0,r.darkenColor)(e)}));o.forEach((function(e,t){n.fillStyle=u[t],n.strokeStyle=l[t],e.forEach((function(e){var r=e.canvasx-s/2*(1-t/(o.length>1?o.length-1:1));n.fillRect(r,e.canvasy,s/o.length,i-e.canvasy),n.strokeRect(r,e.canvasy,s/o.length,i-e.canvasy)}))}))}}}},60810:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(96556);t.default=function(){return function(e){var t=e.drawingContext,n=e.points,o=e.dygraph.toDomYCoord(0);t.fillStyle=(0,r.darkenColor)(e.color);var i=n[1].canvasx-n[0].canvasx,a=Math.floor(2/3*i);n.forEach((function(e){var n=e.canvasx;t.fillRect(n-a/2,e.canvasy,a,o-e.canvasy),t.strokeRect(n-a/2,e.canvasy,a,o-e.canvasy)}))}}},35484:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(93501);function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.default=function(e,t,n,i,a,s){var u=s.map(r.withoutPrefix),l=i("pixelsPerLabel"),c=Math.floor(n/l),f=i("axisLabelFormatter"),d=Math.ceil(s.length/(c-1)),p=u.map((function(e,t){return{v:t,label:t%d===0?f(u[t],0,i,a):null}})),h=a.yAxisRange(0),g=h[0],v=h[1],m=(v-g)/15/a.getArea().h;return[{label_v:v-m}].concat(o(p),[{label_v:g+m}])}},56778:function(e,t,n){"use strict";t.__esModule=!0,t.numericTicker=t.heatmapTicker=void 0;var r=i(n(65581));t.numericTicker=r.default;var o=i(n(35484));function i(e){return e&&e.__esModule?e:{default:e}}t.heatmapTicker=o.default},65581:function(e,t){"use strict";function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.__esModule=!0,t.default=void 0;t.default=function(e,t,r,o,i,a){var s,u,l,c,f=o("pixelsPerLabel"),d=[];if(a)for(s=0;s<a.length;s++)d.push({v:a[s]});else if(0===d.length){var p,h,g,v=[1,2,5,10,20,50,100],m=Math.ceil(r/f),y=Math.abs(t-e)/m,b=Math.floor(Math.log(y)/Math.log(10)),w=Math.pow(10,b);for(u=0;u<v.length&&(p=w*v[u],h=Math.floor(e/p)*p,g=Math.ceil(t/p)*p,!(r/(c=Math.abs(g-h)/p)>f));u++);for(h>g&&(p*=-1),s=0;s<=c;s++)l=h+s*p,d.push({v:l})}var x=o("axisLabelFormatter");for(s=0;s<d.length;s++)void 0===d[s].label&&(d[s].label=x(d[s].v,0,o,i));var _=i.yAxisRange(0),S=_[0],O=_[1],C=(O-S)/15/i.getArea().h;return[{label_v:O-C,label:"AR"}].concat(n(d.filter((function(e){return i.toPercentYCoord(e.v,0)<.92&&i.toPercentYCoord(e.v,0)>.08}))),[{label_v:S+C,label:"i"}])}},76081:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(26712)),o=s(n(58960)),i=n(24298),a=s(n(93492));function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,s,u,c,f=(0,o.default)(e,t),d=null,p=function(){return{trackColor:t.getThemeAttribute("themeEasyPieTrackColor"),scaleColor:t.getThemeAttribute("themeEasyPieScaleColor")}},h=function(){var e=f.getElement(),t=e.clientWidth,n=e.clientHeight,r=t<n?t:n,o=r/22;return{lineWidth:o<4?2:Math.floor(o),size:r<20?20:r,scaleLength:o<4?2:Math.floor(o)}},g=function(){f.render();var e=t.getAttributes(),n=e.hoverX,r=e.loaded;if(d&&r){var o=t.getPayload().data;if(void 0!==(null==o?void 0:o.length)){var i=o[n?t.getClosestRow(n[0]):o.length-1];if(Array.isArray(i)){var a=i.slice(1).reduce((function(e,t){return void 0===t&&(t=0),e+t}),0),s=t.getAttribute("getValueRange")(t),l=s[0],p=s[1];f.render();var h=(a-l)/(p-l)*100;d.update(h),l===u&&p===c||f.sdk.trigger("yAxisChange",t,l,p),u=l,c=p,f.trigger("rendered")}}}};return l(l({},f),{},{mount:function(e){if(!d){f.mount(e);var o=t.getAttribute("theme");e.classList.add(o);var u=t.getAttributes().loaded,c=function(){d=new r.default(e,l(l({barColor:t.selectDimensionColor(),animate:!1},p()),h()))};c();var v=function(){var t=d.renderer.getCanvas();d.renderer.clear(),e.removeChild(t),c()};s=(0,a.default)(e,(function(){v(),f.trigger("resize")})),n=(0,i.unregister)(t.onAttributeChange("hoverX",(function(e,t){Boolean(t)!==Boolean(e)&&(e?d.disableAnimation():d.enableAnimation()),g()})),!u&&t.onceAttributeChange("loaded",g),t.onAttributeChange("theme",v)),f.trigger("resize"),g()}},unmount:function(){n&&n(),s&&s(),d&&(d.renderer.clear(),d=null),u=null,c=null,f.unmount()},render:g})}},69187:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(63902)),o=s(n(58960)),i=n(24298),a=s(n(93492));function s(e){return e&&e.__esModule?e:{default:e}}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,s,l,c,d=(0,o.default)(e,t),p=null,h=function(){return{color:d.chart.getThemeAttribute("themeGaugePointer"),strokeColor:d.chart.getThemeAttribute("themeGaugeStroke")}},g=function(){return t.getAttribute("getValueRange")(t)},v=function(){d.render();var e=t.getAttributes(),n=e.hoverX,r=e.loaded;if(p&&r){var o=t.getPayload().data;if(void 0!==(null==o?void 0:o.length)){var i=o[n?t.getClosestRow(n[0]):o.length-1];if(Array.isArray(i)){var a=i.slice(1).reduce((function(e,t){return void 0===t&&(t=0),e+t}),0),u=g(),c=u[0],f=u[1];c===s&&f===l||d.sdk.trigger("yAxisChange",t,c,f),s=c,l=f,d.render();var h=Math.max(Math.min((a-c)/(f-c)*100,99.999),.001);p.set(h),d.trigger("rendered")}}}};return f(f({},d),{},{mount:function(e){if(!p){d.mount(e);var o=h(),s=o.color,l=o.strokeColor,g=t.getAttributes().staticZones;(p=new r.default(e.firstChild).setOptions(f({angle:-.2,lineWidth:.2,radiusScale:1,pointer:{length:.6,strokeWidth:.035,color:s},strokeColor:l,limitMax:!1,limitMin:!1,colorStart:t.selectDimensionColor(),generateGradient:!0,highDpiSupport:!0},g&&{staticZones:[{strokeStyle:l,min:0,max:100,height:1}].concat(u(g))}))).maxValue=100,p.animationSpeed=Number.MAX_VALUE,p.setMinValue(0),c=(0,a.default)(e,(function(){var t=e.clientWidth,n=.9*(e.clientHeight>t?t:e.clientHeight);e.firstChild.G__height=n,e.firstChild.style.height=n+"px";var r=t;e.firstChild.G__width=r,e.firstChild.style.width=r+"px",p.setOptions({}),p.update(!0),d.trigger("resize")}));var m=t.getAttributes().loaded;n=(0,i.unregister)(t.onAttributeChange("hoverX",v),!m&&t.onceAttributeChange("loaded",v),t.onAttributeChange("theme",(function(){var e=h(),t=e.color,n=e.strokeColor;p.setOptions({strokeColor:n,pointer:{color:t}})})));var y=e.clientWidth,b=.9*(e.clientHeight>y?y:e.clientHeight);e.firstChild.G__height=b,e.firstChild.style.height=b+"px";var w=y;e.firstChild.G__width=w,e.firstChild.style.width=w+"px",p.setOptions({}),d.trigger("resize"),v()}},unmount:function(){n&&n(),c&&c(),p=null,s=null,l=null,d.unmount()},render:v,getMinMax:g})}},63902:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e,t){for(var n in t.prototype)t.hasOwnProperty(n)&&(e[n]=t[n]);function r(){this.constructor=e}return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},r=function(e,t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);for(var o in t)t.hasOwnProperty(o)&&(n[o]=t[o]);return n},o=function(e){return"#"===e.charAt(0)?e.substring(1,7):e};function i(e,t){null==e&&(e=!0),this.clear=null==t||t,e&&l.add(this)}function a(){return a.__super__.constructor.apply(this,arguments)}function s(e){if(this.gauge=e,void 0===this.gauge)throw new Error("The element isn't defined.");this.ctx=this.gauge.ctx,this.canvas=this.gauge.canvas,s.__super__.constructor.call(this,!1,!1),this.setOptions()}function u(e){var t,n;this.canvas=e,u.__super__.constructor.call(this),this.percentColors=null,"undefined"!==typeof G_vmlCanvasManager&&(this.canvas=window.G_vmlCanvasManager.initElement(this.canvas)),this.ctx=this.canvas.getContext("2d"),t=this.canvas.clientHeight,n=this.canvas.clientWidth,this.canvas.height=t,this.canvas.width=n,this.gp=[new s(this)],this.setOptions()}i.prototype.animationSpeed=32,i.prototype.update=function(e){var t;return null==e&&(e=!1),!(!e&&this.displayedValue===this.value)&&(this.ctx&&this.clear&&this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),t=this.value-this.displayedValue,Math.abs(t/this.animationSpeed)<=.001?this.displayedValue=this.value:this.displayedValue=this.displayedValue+t/this.animationSpeed,this.render(),!0)},n(a,i),a.prototype.displayScale=1,a.prototype.forceUpdate=!0,a.prototype.setMinValue=function(e,t){var n,r,o,i,a;if(this.minValue=e,null==t&&(t=!0),t){for(this.displayedValue=this.minValue,a=[],r=0,o=(i=this.gp||[]).length;r<o;r++)n=i[r],a.push(n.displayedValue=this.minValue);return a}},a.prototype.setOptions=function(e){return null==e&&(e=null),this.options=r(this.options,e),this.options.angle>.5&&(this.options.angle=.5),this.configDisplayScale(),this},a.prototype.configDisplayScale=function(){var e,t,n,r;return!1===this.options.highDpiSupport?delete this.displayScale:(t=window.devicePixelRatio||1,e=this.ctx.webkitBackingStorePixelRatio||this.ctx.mozBackingStorePixelRatio||this.ctx.msBackingStorePixelRatio||this.ctx.oBackingStorePixelRatio||this.ctx.backingStorePixelRatio||1,this.displayScale=t/e),r=this.canvas.G__width||this.canvas.width,n=this.canvas.G__height||this.canvas.height,this.canvas.width=r*this.displayScale,this.canvas.height=n*this.displayScale,this.canvas.style.width=r+"px",this.canvas.style.height=n+"px",this.canvas.G__width=r,this.canvas.G__height=n,this},a.prototype.parseValue=function(e){return e=parseFloat(e)||Number(e),isFinite(e)?e:0},n(s,i),s.prototype.displayedValue=0,s.prototype.value=0,s.prototype.options={strokeWidth:.035,length:.1,color:"#000000",iconPath:null,iconScale:1,iconAngle:0},s.prototype.img=null,s.prototype.setOptions=function(e){if(null==e&&(e=null),this.options=r(this.options,e),this.length=2*this.gauge.radius*this.gauge.options.radiusScale*this.options.length,this.strokeWidth=this.canvas.height*this.options.strokeWidth,this.maxValue=this.gauge.maxValue,this.minValue=this.gauge.minValue,this.animationSpeed=this.gauge.animationSpeed,this.options.angle=this.gauge.options.angle,this.options.iconPath)return this.img=new Image,this.img.src=this.options.iconPath},s.prototype.render=function(){var e,t,n,r,o,i,a,s,u;if(e=this.gauge.getAngle.call(this,this.displayedValue),s=Math.round(this.length*Math.cos(e)),u=Math.round(this.length*Math.sin(e)),i=Math.round(this.strokeWidth*Math.cos(e-Math.PI/2)),a=Math.round(this.strokeWidth*Math.sin(e-Math.PI/2)),t=Math.round(this.strokeWidth*Math.cos(e+Math.PI/2)),n=Math.round(this.strokeWidth*Math.sin(e+Math.PI/2)),this.ctx.beginPath(),this.ctx.fillStyle=this.options.color,this.ctx.arc(0,0,this.strokeWidth,0,2*Math.PI,!1),this.ctx.fill(),this.ctx.beginPath(),this.ctx.moveTo(i,a),this.ctx.lineTo(s,u),this.ctx.lineTo(t,n),this.ctx.fill(),this.img)return r=Math.round(this.img.width*this.options.iconScale),o=Math.round(this.img.height*this.options.iconScale),this.ctx.save(),this.ctx.translate(s,u),this.ctx.rotate(e+Math.PI/180*(90+this.options.iconAngle)),this.ctx.drawImage(this.img,-r/2,-o/2,r,o),this.ctx.restore()},n(u,a),u.prototype.elem=null,u.prototype.value=[20],u.prototype.maxValue=80,u.prototype.minValue=0,u.prototype.displayedAngle=0,u.prototype.displayedValue=0,u.prototype.lineWidth=40,u.prototype.paddingTop=.1,u.prototype.paddingBottom=.1,u.prototype.percentColors=null,u.prototype.options={colorStart:"#6fadcf",colorStop:void 0,gradientType:0,strokeColor:"#e0e0e0",pointer:{length:.8,strokeWidth:.035,iconScale:1},angle:.15,lineWidth:.44,radiusScale:1,limitMax:!1,limitMin:!1},u.prototype.setOptions=function(e){var t,n,r,o,i;for(null==e&&(e=null),u.__super__.setOptions.call(this,e),this.configPercentColors(),this.extraPadding=0,this.options.angle<0&&(o=Math.PI*(1+this.options.angle),this.extraPadding=Math.sin(o)),this.availableHeight=this.canvas.height*(1-this.paddingTop-this.paddingBottom),this.lineWidth=this.availableHeight*this.options.lineWidth,this.radius=(this.availableHeight-this.lineWidth/2)/(1+this.extraPadding),this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),n=0,r=(i=this.gp).length;n<r;n++)(t=i[n]).setOptions(this.options.pointer),t.render();return this.render(),this},u.prototype.configPercentColors=function(){var e,t,n,r,i,a,s;if(this.percentColors=null,void 0!==this.options.percentColors){for(this.percentColors=new Array,a=[],n=r=0,i=this.options.percentColors.length-1;0<=i?r<=i:r>=i;n=0<=i?++r:--r)s=parseInt(o(this.options.percentColors[n][1]).substring(0,2),16),t=parseInt(o(this.options.percentColors[n][1]).substring(2,4),16),e=parseInt(o(this.options.percentColors[n][1]).substring(4,6),16),a.push(this.percentColors[n]={pct:this.options.percentColors[n][0],color:{r:s,g:t,b:e}});return a}},u.prototype.set=function(e){var t,n,r,o,i,a,u,c,f;for(e instanceof Array||(e=[e]),n=r=0,u=e.length-1;0<=u?r<=u:r>=u;n=0<=u?++r:--r)e[n]=this.parseValue(e[n]);if(e.length>this.gp.length)for(n=o=0,c=e.length-this.gp.length;0<=c?o<c:o>c;n=0<=c?++o:--o)(t=new s(this)).setOptions(this.options.pointer),this.gp.push(t);else e.length<this.gp.length&&(this.gp=this.gp.slice(this.gp.length-e.length));for(n=0,a=0,i=e.length;a<i;a++)(f=e[a])>this.maxValue?this.options.limitMax?f=this.maxValue:this.maxValue=f+1:f<this.minValue&&(this.options.limitMin?f=this.minValue:this.minValue=f-1),this.gp[n].value=f,this.gp[n++].setOptions({minValue:this.minValue,maxValue:this.maxValue,angle:this.options.angle});return this.value=Math.max(Math.min(e[e.length-1],this.maxValue),this.minValue),l.add(this),l.run(this.forceUpdate),this.forceUpdate=!1},u.prototype.getAngle=function(e){return(1+this.options.angle)*Math.PI+(e-this.minValue)/(this.maxValue-this.minValue)*(1-2*this.options.angle)*Math.PI},u.prototype.getColorForPercentage=function(e,t){var n,r,o,i,a,s,u;if(0===e)n=this.percentColors[0].color;else for(n=this.percentColors[this.percentColors.length-1].color,o=i=0,s=this.percentColors.length-1;0<=s?i<=s:i>=s;o=0<=s?++i:--i)if(e<=this.percentColors[o].pct){!0===t?(u=this.percentColors[o-1]||this.percentColors[0],r=this.percentColors[o],a=(e-u.pct)/(r.pct-u.pct),n={r:Math.floor(u.color.r*(1-a)+r.color.r*a),g:Math.floor(u.color.g*(1-a)+r.color.g*a),b:Math.floor(u.color.b*(1-a)+r.color.b*a)}):n=this.percentColors[o].color;break}return"rgb("+[n.r,n.g,n.b].join(",")+")"},u.prototype.getColorForValue=function(e,t){var n;return n=(e-this.minValue)/(this.maxValue-this.minValue),this.getColorForPercentage(n,t)},u.prototype.renderTicks=function(e,t,n,r){var o,i,a,s,u,l,c,f,d,p,h,g,v,m,y,b,w,x,_,S;if(e!=={}){for(l=e.divisions||0,x=e.subDivisions||0,a=e.divColor||"#fff",m=e.subColor||"#fff",s=e.divLength||.7,b=e.subLength||.2,d=parseFloat(this.maxValue)-parseFloat(this.minValue),p=parseFloat(d)/parseFloat(e.divisions),y=parseFloat(p)/parseFloat(e.subDivisions),o=parseFloat(this.minValue),i=0+y,u=(f=d/400)*(e.divWidth||1),w=f*(e.subWidth||1),g=[],_=c=0,h=l+1;c<h;_=c+=1)this.ctx.lineWidth=this.lineWidth*s,v=this.lineWidth/2*(1-s),S=this.radius*this.options.radiusScale+v,this.ctx.strokeStyle=a,this.ctx.beginPath(),this.ctx.arc(0,0,S,this.getAngle(o-u),this.getAngle(o+u),!1),this.ctx.stroke(),i=o+y,o+=p,_!==e.divisions&&x>0?g.push(function(){var e,t,n;for(n=[],e=0,t=x-1;e<t;e+=1)this.ctx.lineWidth=this.lineWidth*b,v=this.lineWidth/2*(1-b),S=this.radius*this.options.radiusScale+v,this.ctx.strokeStyle=m,this.ctx.beginPath(),this.ctx.arc(0,0,S,this.getAngle(i-w),this.getAngle(i+w),!1),this.ctx.stroke(),n.push(i+=y);return n}.call(this)):g.push(void 0);return g}},u.prototype.render=function(){var e,t,n,r,o,i,a,s,u,l,c,f,d,p,h,g;if(h=this.canvas.width/2,n=this.canvas.height*this.paddingTop+this.availableHeight-(this.radius+this.lineWidth/2)*this.extraPadding,e=this.getAngle(this.displayedValue),this.ctx.lineCap="butt",l=this.radius*this.options.radiusScale,this.options.staticZones)for(this.ctx.save(),this.ctx.translate(h,n),this.ctx.lineWidth=this.lineWidth,r=0,i=(c=this.options.staticZones).length;r<i;r++)u=(g=c[r]).min,this.options.limitMin&&u<this.minValue&&(u=this.minValue),s=g.max,this.options.limitMax&&s>this.maxValue&&(s=this.maxValue),p=this.radius*this.options.radiusScale,g.height&&(this.ctx.lineWidth=this.lineWidth*g.height,d=this.lineWidth/2*(g.offset||1-g.height),p=this.radius*this.options.radiusScale+d),this.ctx.strokeStyle=g.strokeStyle,this.ctx.beginPath(),this.ctx.arc(0,0,p,this.getAngle(u),this.getAngle(s),!1),this.ctx.stroke();else void 0!==this.options.customFillStyle?t=this.options.customFillStyle(this):null!==this.percentColors?t=this.getColorForValue(this.displayedValue,this.options.generateGradient):void 0!==this.options.colorStop?((t=0===this.options.gradientType?this.ctx.createRadialGradient(h,n,9,h,n,70):this.ctx.createLinearGradient(0,0,h,0)).addColorStop(0,this.options.colorStart),t.addColorStop(1,this.options.colorStop)):t=this.options.colorStart,this.ctx.strokeStyle=t,this.ctx.beginPath(),this.ctx.arc(h,n,l,(1+this.options.angle)*Math.PI,e,!1),this.ctx.lineWidth=this.lineWidth,this.ctx.stroke(),this.ctx.strokeStyle=this.options.strokeColor,this.ctx.beginPath(),this.ctx.arc(h,n,l,e,(2-this.options.angle)*Math.PI,!1),this.ctx.stroke(),this.ctx.save(),this.ctx.translate(h,n);for(this.options.renderTicks&&this.renderTicks(this.options.renderTicks,h,n,l),this.ctx.restore(),this.ctx.translate(h,n),o=0,a=(f=this.gp).length;o<a;o++)f[o].update(!0);return this.ctx.translate(-h,-n)};var l={elements:[],animId:null,addAll:function(e){var t,n,r,o;for(o=[],n=0,r=e.length;n<r;n++)t=e[n],o.push(l.elements.push(t));return o},add:function(e){if(l.elements.indexOf(e)<0)return l.elements.push(e)},run:function(e){var t,n,r,o,i,a,s;if(null==e&&(e=!1),isFinite(parseFloat(e))||!0===e){for(t=!0,s=[],r=n=0,i=(a=l.elements).length;n<i;r=++n)a[r].update(!0===e)?t=!1:s.push(r);for(o=s.length-1;o>=0;o+=-1)r=s[o],l.elements.splice(r,1);return l.animId=t?null:requestAnimationFrame(l.run)}if(!1===e)return!0===l.animId&&cancelAnimationFrame(l.animId),l.animId=requestAnimationFrame(l.run)}},c=u;t.default=c},1271:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=n(24298),i=(r=n(58960))&&r.__esModule?r:{default:r};function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l={labels:[],data:[],values:{},tree:{}};t.default=function(e,t){var n,r=(0,i.default)(e,t),a=l,u=null,c=!1,f=function(e){var n=(void 0===e?{}:e).force;if(!c||void 0!==n&&n||t.consumePayload()){var o=t.getPayload();o.data.length&&(a=o,d(),c=!0,r.trigger("groupBoxChanged",a))}},d=function(){var e=t.getPayload().all;if(0!==e.length){var n=t.getAttribute("hoverX"),o=n?t.getClosestRow(n[0]):-1;a&&(u=-1===o?e[e.length-1]:e[o],-1===o||Array.isArray(u)?r.trigger("groupBoxRowDataChanged",u):u=null)}};return s(s({},r),{},{mount:function(){f(),r.trigger("resize"),n=(0,o.unregister)(t.onAttributeChange("hoverX",d),t.on("finishFetch",(function(){return f({force:!0})})),t.on("visibleDimensionsChanged",(function(){return f({force:!0})})),t.onAttributeChange("theme",(function(){return f({force:!0})})))},unmount:function(){n&&n(),n=null},render:function(){r.render(),r.trigger("rendered")},getGroupBox:function(){return a},getGroupBoxRowData:function(){return u}})}},1630:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=a(n(58960)),o=n(24298),i=a(n(93492));function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,a,s,l,c=(0,r.default)(e,t),f=function(){c.render();var e=t.getAttributes(),n=e.hoverX;if(e.loaded){var r=t.getPayload().data,o=r[n?t.getClosestRow(n[0]):r.length-1];if(Array.isArray(o)){c.render();var i=t.getAttribute("getValueRange")(t),a=i[0],u=i[1];a===s&&u===l||c.sdk.trigger("yAxisChange",t,a,u),s=a,l=u,c.trigger("rendered")}}};return u(u({},c),{},{mount:function(e){c.mount(e),a=(0,i.default)(e,(function(){return c.trigger("resize")}));var r=t.getAttributes().loaded;n=(0,o.unregister)(t.onAttributeChange("hoverX",f),!r&&t.onceAttributeChange("loaded",f)),c.trigger("resize"),f()},unmount:function(){n&&n(),a&&a(),c.unmount(),s=null,l=null},render:f})}},65777:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default={"fping.latency":"FPing Latency","fping.packets":"FPing Packets","fping.quality":"FPing Quality"}},71896:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(60677))&&r.__esModule?r:{default:r},i=n(90509),a=n(81743),s=["icon","hoverIndicator","padding"];function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=function(e){var t=e.active,n=e.disabled,r=e.defaultColor;return t?"textDescription":n?"disabled":void 0===r?"border":r},d=o.default.button.attrs((function(e){var t=e.icon,n=e.hoverIndicator,r=void 0===n||n,o=e.padding,i=void 0===o?0:o,a=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,s);return l(l({},a),{},{children:t,active:a.active||a["aria-expanded"],hoverIndicator:r,padding:i})})).withConfig({displayName:"button__Button",componentId:"sc-oqiqxn-0"})(["border:initial;padding:",";height:fit-content;line-height:0;background:",";cursor:pointer;svg{fill:",";stroke:",";}"," &:hover{",";svg{fill:",";stroke:",";}}"],(function(e){return e.padding}),(function(e){var t=e.theme;return e.active?(0,i.getColor)("borderSecondary")({theme:t}):"initial"}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?"none":(0,i.getColor)(f({active:t,disabled:n}))({theme:r})}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?(0,i.getColor)(f({active:t,disabled:n}))({theme:r}):"none"}),(function(e){var t=e.active,n=e.hoverIndicator;return(t||n)&&"\n border-radius: 4px;\n "}),(function(e){var t=e.theme,n=e.hoverIndicator,r=e.disabled;return n&&!r&&"background: "+(0,i.getColor)("borderSecondary")({theme:t})+";"}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?"none":(0,i.getColor)(f({defaultColor:"textDescription",disabled:r}))({theme:t})}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?(0,i.getColor)(f({defaultColor:"textDescription",disabled:r}))({theme:t}):"none"})),p=(0,a.withTooltip)(d);t.default=p},3701:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Button=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=u(n(2568)),i=n(10114),a=u(n(71896));t.Button=a.default;var s=["svg","size","width","height"];function u(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var f="netdata-sdk-svg",d='<svg\n id="'+f+'"\n aria-hidden="true"\n style="position: absolute; width: 0; height: 0; overflow: hidden;"\n >\n <defs />\n </svg>',p=(0,r.forwardRef)((function(e,t){var n=e.svg,a=e.size,u=void 0===a?"24px":a,l=e.width,p=void 0===l?u:l,h=e.height,g=void 0===h?u:h,v=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,s),m=(null==n?void 0:n.content)||n,y=(0,r.useMemo)((function(){return(0,o.default)(m)}),[m]);return(0,r.useEffect)((function(){if(!document.getElementById(y)){!function(){if(!document.querySelector("#"+f)){var e=document.createElement("div");e.innerHTML=d,document.body.insertBefore(e.firstChild.cloneNode(!0),document.body.firstChild)}}();var e=document.querySelector("#"+f+" defs"),t=function(e,t){var n=document.createElement("div");if(!(e=e.trim().replace(/^<symbol /i,"<svg ").replace(/<\/symbol>$/i,"</svg>")))return console.error("Couldn't find SVG: "+t+" - "+e),"";if(n.innerHTML=e,!n.firstChild)return"";var r=n.firstChild.getAttribute("viewBox"),o=n.firstChild.getAttribute("xmlns"),i=n.firstChild.getAttribute("preserveAspectRatio")||"";return n.innerHTML='<svg viewbox="'+r+'" id="'+t+'" xmlns="'+o+'" preserveAspectRatio="'+i+'">'+n.firstChild.innerHTML+"</svg>",n.firstChild}(m,y);e.appendChild(t)}}),[m]),r.default.createElement(i.StyledIcon,c({ref:t,width:p,height:g},v),r.default.createElement("use",{xlinkHref:"#"+y}))}));t.default=p},213:function(e,t,n){"use strict";t.__esModule=!0,t.getColors=t.default=void 0;var r=s(n(67294)),o=s(n(32855)),i=n(90833),a=["type","children","noBorder","title"];function s(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(this,arguments)}var l={error:{background:"errorBackground",color:"errorText"},warning:{background:"warningBackground",color:"warningText"},success:{background:["green","frostee"],color:"success"},neutral:{background:"elementBackground",color:"textLite"}},c=function(e){var t;return null!=(t=l[e])?t:l.error};t.getColors=c;var f=function(e){var t=e.type,n=e.children,s=e.noBorder,l=(e.title,function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,a)),f=c(t),d=f.background,p=f.color;return r.default.createElement(o.default,u({padding:[.2,1],background:d,round:3,border:s?void 0:{color:p,size:"1px",side:"all"},alignItems:"center","data-testid":"badge"},l),"object"===typeof n?n:r.default.createElement(i.TextMicro,{color:p,whiteSpace:"nowrap"},n))};t.default=f},40673:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=(0,n(67294).createContext)(null);t.default=r},54576:function(e,t,n){"use strict";t.__esModule=!0;var r={withChartProvider:!0};t.withChartProvider=t.default=void 0;var o=u(n(67294)),i=u(n(40673)),a=n(41145);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===a[e]||(t[e]=a[e]))}));var s=["chart"];function u(e){return e&&e.__esModule?e:{default:e}}var l=function(e){var t=e.chart,n=e.children;return o.default.createElement(i.default.Provider,{value:t},n)};t.withChartProvider=function(e){return function(t){var n=t.chart,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,s);return o.default.createElement(l,{chart:n},o.default.createElement(e,r))}};var c=l;t.default=c},41145:function(e,t,n){"use strict";t.__esModule=!0,t.useVisibleDimensionId=t.useValue=t.useUnits=t.useUnitSign=t.useTitle=t.usePayload=t.useOnResize=t.useName=t.useLoadingColor=t.useLatestValue=t.useLatestRowValue=t.useLatestConvertedValue=t.useIsFetching=t.useInitialLoading=t.useImmediateListener=t.useFormatTime=t.useFormatDate=t.useForceUpdate=t.useEmpty=t.useDimensionIds=t.useConvertedValue=t.useConverted=t.useColor=t.useChartError=t.useChart=t.useAttributeValue=t.useAttribute=void 0;var r=n(67294),o=n(69032),i=n(24298),a=n(35890),s=c(n(65777)),u=c(n(40673)),l=["chart","id"];function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=function(){return(0,r.useContext)(u.default)};t.useChart=h;var g=function(e){return e+1},v=function(){return(0,r.useReducer)(g,0)[1]};t.useForceUpdate=v;var m=function(e,t){var n=(0,r.useMemo)(e,t);(0,r.useLayoutEffect)((function(){return n}),[n])};t.useImmediateListener=m;var y=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange(e,n)}),[t]),t.getAttribute(e)};t.useAttributeValue=y;t.useInitialLoading=function(){var e=h(),t=v();return m((function(){return e.onAttributeChange("loaded",t)}),[e]),!e.getAttribute("loaded")};t.useLoadingColor=function(e){void 0===e&&(e="themeNeutralBackground");var t=h(),n=(0,r.useState)(e),i=n[0],a=n[1],s=y("fetchStartedAt"),u=y("loading");return(0,r.useLayoutEffect)((function(){if(u){var n=(0,o.scaleLinear)().domain([0,1e3,2e3,3e3,1e5]).range([t.getThemeAttribute(e),t.getThemeAttribute(e),t.getThemeAttribute("themeLoadingStart"),t.getThemeAttribute("themeNetdata"),t.getThemeAttribute("themeNetdata")]),r=setInterval((function(){a(n(Date.now()-s))}),500);return function(){return clearInterval(r)}}a(e)}),[u,s,t]),i};t.useColor=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange("theme",n)}),[t]),t.getThemeAttribute(e)};t.useIsFetching=function(){var e=h(),t=v();return m((function(){return e.onAttributeChange("loading",t)}),[e]),e.getAttribute("loading")};t.useEmpty=function(){var e=h(),t=v();return m((function(){return e.on("finishFetch",t)}),[e]),0===e.getPayload().data.length};t.useAttribute=function(e){var t=h(),n=v(),o=function(){return t.getAttribute(e)};m((function(){return t.onAttributeChange(e,n)}),[t]);var i=(0,r.useCallback)((function(n){return t.updateAttribute(e,"function"===typeof n?n(o()):n)}),[t]);return[o(),i]};t.useTitle=function(){var e=y("title"),t=y("contextScope"),n=1===t.length&&s.default[t[0]];return n||e};t.useName=function(){var e=y("name"),t=y("contextScope");return e||t.join(", ")};t.useVisibleDimensionId=function(e){var t=h(),n=v();return m((function(){t.onAttributeChange("selectedDimensions",n),t.on("visibleDimensionsChanged",n)}),[t]),t.isDimensionVisible(e)};t.usePayload=function(){var e=h(),t=v();return m((function(){return e.on("payloadChanged",t)}),[e]),e.getPayload()};t.useChartError=function(){var e=(0,r.useState)(null),t=e[0],n=e[1],o=h(),i=v();return m((function(){var e=function(e){n(e),i()};return o.on("successFetch",(function(){return e(o.getAttribute("error"))})).on("failFetch",(function(){return e(o.getAttribute("error"))}))}),[o]),t};t.useFormatTime=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange("timezone",n)}),[t]),(0,r.useMemo)((function(){return t.formatTime(e)}),[e,t.getAttribute("timezone")])};t.useFormatDate=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange("timezone",n)}),[t]),(0,r.useMemo)((function(){return t.formatDate(e)}),[e,t.getAttribute("timezone")])};t.useOnResize=function(e){var t=h(),n=v();return m((function(){return t.getUI(e).on("resize",n)}),[e,t]),{width:t.getUI(e).getChartWidth(),height:t.getUI(e).getChartHeight(),parentWidth:t.getAttribute("width")}};t.useDimensionIds=function(){var e=h(),t=v();return m((function(){return e.on("dimensionChanged",t)}),[e]),e.getDimensionIds()};t.useUnitSign=function(e){var t=void 0===e?{}:e,n=t.long,r=t.key,o=void 0===r?"units":r,i=h(),a=v();return m((function(){return i.onAttributeChange(o+"Conversion",a)}),[i,o]),i.getUnitSign({long:n,key:o})};t.useUnits=function(e){void 0===e&&(e="units");var t=h(),n=v();return m((function(){return t.onAttributeChange(e+"Conversion",n)}),[t,e]),t.getUnits(e)};var b=function(e,t){var n=void 0===t?{}:t,o=n.valueKey,i=n.fractionDigits,s=n.unitsKey,u=void 0===s?"units":s,l=h(),c=y(u+"Conversion");return(0,r.useMemo)((function(){return null===e||"-"===e?"-":"arp"===o||"percent"===o?0===e?"-":(Math.round(100*(e+Number.EPSILON))/100).toFixed(i||2):"pa"===o?a.parts.reduce((function(t,n){var r;return(0,a.check)(e,a.enums[n])?d(d({},t),{},((r={})[n]=a.colors[n],r)):t}),{}):l.getConvertedValue(e,{fractionDigits:i,key:u})}),[l,e,o,c])};t.useConverted=b;t.useLatestRowValue=function(e){void 0===e&&(e={});var t=h(),n=(0,r.useState)(null),o=n[0],a=n[1];return(0,r.useLayoutEffect)((function(){var n=function(){var n=t.getAttribute("hoverX"),r=t.getPayload().all;if(0===r.length)return"";var o=n?t.getClosestRow(n[0]):-1;return o=-1===o?r.length-1:o,t.getVisibleDimensionIds().map((function(n){return{label:n,value:t.getDimensionValue(n,o,e),color:t.selectDimensionColor(n)}}))};return(0,i.unregister)(t.onAttributeChange("hoverX",(function(){return a(n())})),t.on("dimensionChanged",(function(){return a(n())})),t.on("render",(function(){return a(n())})))}),[t]),o};var w={latest:function(e){var t=e.chart,n=e.id,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,l),o=t.getAttribute("hoverX"),i=t.getPayload().all;if(!i.length)return null;var a=o?t.getClosestRow(o[0]):-1;a=-1===a?i.length-1:a;var s=t.getPayloadDimensionIds();return n=n||s[0],t.getDimensionValue(n,a,r)},window:function(e){var t=e.chart,n=e.id,r=e.valueKey,o=e.objKey,i=t.getAttribute(o).sts[r];if(null==i||!i.length)return null;var a=t.getPayloadDimensionIds();return n=n||a[0],i[t.getDimensionIndex(n)]},highlight:function(e){var t,n=e.chart,r=(e.id,e.valueKey,e.objKey,n.getAttribute("overlays").highlight);if(null==r||!r.range)return null;null==r||r.range;var o=null!=(t=null==r?void 0:r.moveX)?t:{};o.after,o.before}},x=function(e,t,n){void 0===t&&(t="latest");var o=void 0===n?{}:n,a=o.valueKey,s=void 0===a?"value":a,u=o.objKey,l=void 0===u?"viewDimensions":u,c=o.abs,f=o.unitsKey,d=void 0===f?"units":f,p=o.allowNull,g=h(),v=(0,r.useState)(null),m=v[0],y=v[1];return(0,r.useLayoutEffect)((function(){var n=function(){return(w[t]||w.latest)({chart:g,id:e,valueKey:s,objKey:l,abs:c,allowNull:p})};return y(n()),(0,i.unregister)(g.onAttributeChange("hoverX",(function(){return y(n())})),g.on("dimensionChanged",(function(){return y(n())})),g.onAttributeChange(d+"Conversion",(function(){return y(n())})),g.on("render",(function(){return y(n())})))}),[g,e,s,t,l,d]),m};t.useValue=x;t.useLatestValue=function(e,t){return void 0===t&&(t={}),x(e,"latest",t)};var _=function(e,t,n){void 0===t&&(t="latest"),void 0===n&&(n={});var r=x(e,t,n);return b(r,n)};t.useConvertedValue=_;t.useLatestConvertedValue=function(e,t){return void 0===t&&(t={}),_(e,"latest",d({allowNull:!0},t))}},34675:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=d(n(32855)),i=n(54576),a=d(n(213)),s=n(36657),u=d(n(30017)),l=d(n(53281)),c=["type","status"],f=["plain"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}function g(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function y(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function(){var e=(0,s.useHovered)(),t=e[0],n=e[1];return r.default.createElement(o.default,{ref:t},n?r.default.createElement(l.default,null):r.default.createElement(u.default,null))},w={type:"error",children:"Error",status:"error"},x={type:"neutral",children:"Loading",status:"loading"},_=function(e){var t=e.type,n=e.status,o=g(e,c);return t?r.default.createElement(a.default,h({type:t,"data-testid":"chartHeaderStatus-"+n},o)):null},S=function(e){var t=e.plain,n=g(e,f),a=(0,i.useInitialLoading)(),s=(0,i.useEmpty)(),u=function(e){var t=e.initialLoading,n=e.error;return(0,r.useMemo)((function(){return n?m(m({},w),{},{children:w.children+": "+n}):t?x:null}),[t,n])}({initialLoading:a,error:(0,i.useChartError)()});return r.default.createElement(o.default,h({gap:2,"data-testid":"chartHeaderStatus",basis:"0"},n),r.default.createElement(b,null),!t&&r.default.createElement(_,u),!t&&!a&&s&&!u&&r.default.createElement(_,{type:"neutral",status:"empty"},"No data"))};t.default=S},30017:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(60677)),i=n(90509),a=c(n(79962)),s=n(54576),u=c(n(3701));function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=(0,o.keyframes)(["0%{stroke-dashoffset:100;}100%{stroke-dashoffset:0;}"]),p=(0,o.css)(["stroke-dasharray:100;stroke-dashoffset:100;animation:"," 1000ms linear forwards;animation-delay:0s;animation-iteration-count:infinite;-webkit-backface-visibility:hidden;opacity:1;visibility:visible;"],d),h=(0,o.default)(u.default).withConfig({displayName:"logo__StyledIcon",componentId:"sc-1pruasp-0"})(["stroke:",";stroke-width:2;",""],(function(e){var t=e.strokeColor,n=e.theme;return(0,i.getColor)(t)({theme:n})}),(function(e){return e.isFetching&&p})),g=function(e){var t=(0,s.useIsFetching)(),n=(0,s.useLoadingColor)("tabsBorder");return r.default.createElement(h,f({svg:a.default,color:"mainBackground",strokeColor:n,isFetching:t,title:t?"Playing":"Paused","data-testid":"chartHeaderStatus-logo",size:"16px"},e))};t.default=g},53281:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=c(n(67294)),i=c(n(60677)),a=(r=n(20172))&&r.__esModule?r:{default:r},s=c(n(3701)),u=n(54576);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=(0,i.keyframes)(["from{transform:rotate(360deg);}to{transform:rotate(0);}"]),p=(0,i.css)(["animation:"," 1.6s ease-in infinite;"],d),h=(0,i.default)(s.default).withConfig({displayName:"reload__StyledIcon",componentId:"sc-hdwdmt-0"})(["",""],(function(e){return e.isLoading&&p})),g=function(e){var t=(0,u.useChart)(),n=(0,o.useState)(!1),r=n[0],i=n[1];return o.default.createElement(s.Button,f({icon:o.default.createElement(h,{svg:a.default,isLoading:r,size:"16px"}),disabled:r,onClick:function(){i(!0),t.fetch().finally((function(){return i(!1)}))},title:"Refresh","data-testid":"chartHeaderStatus-reload",tooltipProps:{open:!0},"data-track":t.track("refresh"),small:!0},e))};t.default=g},96415:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=g(n(67294)),o=p(n(47817)),i=p(n(39161)),a=p(n(51349)),s=p(n(92662)),u=p(n(84156)),l=p(n(72457)),c=p(n(21219)),f=g(n(3701)),d=n(54576);function p(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v.apply(this,arguments)}var m={color:"border",margin:[0,2,0,0],size:"16px"},y=function(e){var t=e.disabled,n=(0,d.useChart)(),p=(0,d.useAttributeValue)("chartType")||"line",h=function(e){return(0,r.useMemo)((function(){return[{value:"line",label:"Line",icon:r.default.createElement(f.default,v({svg:i.default},m)),svg:i.default,"data-track":e.track("chartType-line")},{value:"stacked",label:"Stacked",icon:r.default.createElement(f.default,v({svg:a.default},m)),svg:a.default,"data-track":e.track("chartType-stacked")},{value:"area",label:"Area",icon:r.default.createElement(f.default,v({svg:s.default},m)),svg:s.default,"data-track":e.track("chartType-area")},{value:"stackedBar",label:"Stacked Bar",icon:r.default.createElement(f.default,v({svg:l.default},m)),svg:l.default,"data-track":e.track("chartType-stackedBar")},{value:"multiBar",label:"Multi Bar",icon:r.default.createElement(f.default,v({svg:u.default},m)),svg:u.default,"data-track":e.track("chartType-multiBar")},{value:"heatmap",label:"Heatmap",icon:r.default.createElement(f.default,v({svg:c.default},m)),svg:c.default,"data-track":e.track("chartType-heatmap"),disabled:"disabled"===e.getHeatmapType()}]}),[e,e.getHeatmapType()])}(n),g=h.find((function(e){return e.value===p})),y=g.label,b=g.svg;return r.default.createElement(o.default,{value:p,items:h,dropProps:{align:{top:"bottom",right:"right"},"data-toolbox":!0},dropdownProps:{width:"130px"},onChange:n.updateChartTypeAttribute,"data-track":n.track("chartType")},r.default.createElement(f.Button,{icon:r.default.createElement(f.default,{svg:b,size:"16px"}),title:y,disabled:t,"data-testid":"chartHeaderToolbox-chartType"}))},b=(0,r.memo)(y);t.default=b},70873:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),o=l(n(25271)),i=l(n(53685)),a=n(54576),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(3701));function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var f=function(e){var t=(0,a.useChart)(),n=(0,a.useAttributeValue)("fullscreen");return r.default.createElement(s.Button,c({icon:r.default.createElement(s.default,{svg:n?i.default:o.default,size:"16px"}),onClick:t.toggleFullscreen,title:n?"Minimize":"Full screen","data-testid":"chartHeaderToolbox-fullscreen","data-track":t.track("fullscreen")},e))};t.default=f},43460:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),o=u(n(25312)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(3701)),a=n(54576);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){var t=(0,a.useChart)(),n=(0,a.useAttribute)("showingInfo"),s=n[0],u=n[1];return r.default.createElement(i.Button,l({icon:r.default.createElement(i.default,{svg:o.default,size:"16px"}),title:"Information","data-testid":"chartHeaderToolbox-information",active:s,onClick:function(){return u((function(e){return!e}))},"data-track":t.track("information")},e))};t.default=c},81743:function(e,t,n){"use strict";t.__esModule=!0,t.withTooltip=t.tooltipStyleProps=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(15557),i=["children"],a=["content","Content"],s=["title"];function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var f={padding:[1,2],margin:[2],round:1,width:{max:"300px",base:"fit-content"},"data-toolbox":!0,background:"tooltip"};t.tooltipStyleProps=f;var d=function(e){var t=e.children,n=c(e,i);return r.default.createElement(o.Flex,l({},f,n),r.default.createElement(o.TextSmall,{color:"bright",wordBreak:"break-word"},t))},p=(0,r.forwardRef)((function(e,t){var n=e.content,i=e.Content,s=void 0===i?d:i,u=c(e,a);return r.default.createElement(o.Tooltip,l({ref:t,plain:!0,content:r.default.createElement(s,u,n)},u,{dropProps:{"data-toolbox":!0}}))}));p.defaultProps={align:"bottom"};t.withTooltip=function(e,t){return void 0===t&&(t={}),(0,r.forwardRef)((function(n,o){var i=n.title,a=c(n,s);return i?r.default.createElement(p,l({content:i,disabled:a.open},t,a.tooltipProps),r.default.createElement(e,l({ref:o},a))):r.default.createElement(e,l({ref:o},a))}))};var h=p;t.default=h},36657:function(e,t,n){"use strict";t.__esModule=!0,t.useHovered=t.default=void 0;var r=n(67294),o=function(){return!0},i=function(e,t){var n=e.onHover,i=e.onBlur,a=e.isOut,s=void 0===a?o:a,u=(0,r.useRef)();return(0,r.useLayoutEffect)((function(){if(u.current){var e=function(e){for(var t=e.relatedTarget;t&&t!==u.current&&s(t);)t=t.parentElement;t!==u.current&&s(t)&&i()};return u.current.addEventListener("mouseover",n),u.current.addEventListener("mouseout",e),function(){u.current&&(u.current.removeEventListener("mouseover",n),u.current.removeEventListener("mouseout",e))}}}),t),u};t.useHovered=function(e,t){var n=(void 0===e?{}:e).isOut;void 0===t&&(t=[]);var o=(0,r.useState)(!1),a=o[0],s=o[1];return[i({onHover:function(){return s(!0)},onBlur:function(){return s(!1)},isOut:n},t),a]};var a=i;t.default=a},35890:function(e,t){"use strict";t.__esModule=!0,t.priorities=t.parts=t.labels=t.enums=t.colors=t.check=void 0;var n={E:1,O:2,P:4};t.enums=n;var r=Object.keys(n);t.parts=r;t.check=function(e,t){return e&t};t.colors={P:"RGB(126, 189, 194)",O:"RGB(243, 223, 162)",E:"RGB(232, 185, 219)"};t.priorities={E:0,P:1,O:2};t.labels={E:"Empty data",P:"Partial data",O:"Overflow"}},91211:function(e,t){"use strict";t.__esModule=!0,t.setsAreEqual=t.filter=t.default=void 0;t.setsAreEqual=function(e,t){return e.size===t.size&&Array.from(e).every((function(e){return t.has(e)}))};var n=function(e,t){var n=t.omit,r=void 0===n?[]:n,o=t.keep,i=void 0===o?[]:o;return r.length&&i.length?e.filter((function(e){return i.length?i.includes(e):!r.includes(e)})):e};t.filter=n;var r=function e(t,r,o){if(void 0===o&&(o={}),t===r)return!0;if("object"!==typeof t||null===t||"object"!==typeof r||null===r)return!1;var i=n(Object.keys(t),o),a=n(Object.keys(r),o);if(i.length!==a.length)return!1;var s=Object.prototype.hasOwnProperty.bind(r);return!i.some((function(n){return!s(n)||t[n]!==r[n]&&!e(t[n],r[n],o)}))};t.default=r},93501:function(e,t,n){"use strict";t.__esModule=!0,t.withoutPrefix=t.useIsHeatmap=t.useGetColor=t.makeGetColor=t.isIncremental=t.isHeatmap=t.heatmapTypes=t.heatmapOrChartType=void 0;var r=n(67294),o=n(69032),i=n(54576),a={default:"default",disabled:"disabled",incremental:"incremental"};t.heatmapTypes=a;var s=function(e){return"heatmap"===(e&&"string"!==typeof e?e.getAttribute("chartType"):e)};t.isHeatmap=s;t.useIsHeatmap=function(){return"heatmap"===(0,i.useAttributeValue)("chartType")};t.isIncremental=function(e){return s(e)&&e.getAttribute("heatmapType")===a.incremental};var u=/(.+)_(\d+?\.?(\d+)?|\+[Ii]nf)$/;t.heatmapOrChartType=function(e,t){return Array.isArray(e)&&e.every((function(e){return e.match(u)}))?"heatmap":t};var l=function(e,t){void 0===t&&(t=1);var n=e.getAttribute("max"),r=function(e){return["rgba(62, 73, 137, "+e+")","rgba(49, 104, 142, "+e+")","rgba(38, 130, 142, "+e+")","rgba(31, 158, 137, "+e+")","rgba(53, 183, 121, "+e+")","rgba(110, 206, 88, "+e+")","rgba(181, 222, 43, "+e+")","rgba(253, 231, 37, "+e+")"]}(t),i=n/(r.length-1),a=(0,o.scaleLinear)().domain(Array.from({length:r.length-1},(function(e,t){return t*i}))).range(r);return function(e){return e?a(e):"transparent"}};t.makeGetColor=l;t.useGetColor=function(e){void 0===e&&(e=1);var t=(0,i.useChart)();return(0,r.useMemo)((function(){return l(t,e)}),[e])};t.withoutPrefix=function(e){return e?e.replace(/.+_(\d+?\.?(\d+)?|\+[Ii]nf)$/,"$1"):e}},18774:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e){var t=e.after,n=e.before,r=void 0===n?0:n,o=r-t;if(o<=60){var i=60-o,a=i/2;return{fixedAfter:t-a-i%2,fixedBefore:r+a}}return{fixedAfter:t,fixedBefore:r}};t.default=n},81220:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(){var e=new Set;return{add:function(t){var n;return function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];e.delete(n),clearTimeout(n),n=setTimeout((function(){return t.apply(void 0,o)})),e.add(n)}},clear:function(){return Array.from(e).forEach((function(e){return clearTimeout(e)}))}}}},10387:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(26399));function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var s="keydown",u="keyup",l={default:function(e,t){return e.size===t.size&&i(t).every((function(t){return e.has(t)||e.has(r.aliasByCode[t])}))?"all":"none"},intersection:function(e,t){if(0===t.size)return"none";var n=i(t).filter((function(t){return e.has(t)||e.has(r.aliasByCode[t])}));return e.size<=t.size&&n.length===e.size?"all":n}};t.default=function(){var e=[],t=new Set,n=function(n){var o=n.code||r.default[n.keyCode||n.which],i=n.type;if(i===s){if(t.has(o))return;t.add(o)}e.some((function(e){return e(i)})),i===u&&t.has(o)&&t.delete(o)};return{onKeyChange:function(n,r,o){var i=void 0===o?{}:o,a=i.fireOn,u=void 0===a?s:a,c=i.policy,f=i.allPressed,d=void 0===f||f,p=new Set(Array.isArray(n)?n:[n]),h=l[c]||l.intersection;e.push((function(e){if(e!==u)return!1;var n=h(p,t);return!(d&&"all"!==n||"none"===n)&&(r(),!0)}));var g=e.length-1;return function(){return e.splice(g,1)}},initKeyboardListener:function(){window.addEventListener("keydown",n),window.addEventListener("keyup",n)},clearKeyboardListener:function(){window.removeEventListener("keydown",n),window.removeEventListener("keyup",n),t=new Set},eventListener:n}}},26399:function(e,t){"use strict";t.__esModule=!0,t.default=t.codesByAlias=t.aliasByCode=void 0;t.aliasByCode={ShiftLeft:"Shift",ShiftRight:"Shift",ControlLeft:"Control",ControlRight:"Control",AltLeft:"Alt",AltRight:"Alt",MetaLeft:"Meta",MetaRight:"Meta"};t.codesByAlias={Shift:["ShiftLeft","ShiftRight"],Alt:["AltLeft","AltRight"],Control:["ControlLeft","ControlRight"],Meta:["MetaLeft","MetaRight"]};t.default={8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",48:"Digit0",49:"Digit1",50:"Digit2",51:"Digit3",52:"Digit4",53:"Digit5",54:"Digit6",55:"Digit7",56:"Digit8",57:"Digit9",65:"KeyA",66:"KeyB",67:"KeyC",68:"KeyD",69:"KeyE",70:"KeyF",71:"KeyG",72:"KeyH",73:"KeyI",74:"KeyJ",75:"KeyK",76:"KeyL",77:"KeyM",78:"KeyN",79:"KeyO",80:"KeyP",81:"KeyQ",82:"KeyR",83:"KeyS",84:"KeyT",85:"KeyU",86:"KeyV",87:"KeyW",88:"KeyX",89:"KeyY",90:"KeyZ",91:"Meta",92:"Meta",93:"ContextMenu",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",106:"NumpadMultiply",107:"NumpadAdd",109:"NumpadSubtract",110:"NumpadDecimal",111:"NumpadDivide",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",181:"VolumeMute",182:"VolumeDown",183:"VolumeUp",186:"Semicolon",187:"Equal",188:"Comma",190:"Period",191:"Slash",192:"Backquote",219:"BracketLeft",220:"Backslash",221:"BracketRight",222:"Quote"}},24298:function(e,t){"use strict";t.__esModule=!0,t.unregister=t.default=void 0;t.unregister=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(){return t.forEach((function(e){return e&&e()}))}};t.default=function(){var e={},t={},n=function(n,r){var o,i;null==(o=t[n])||o.delete(r),null==(i=e[n])||i.delete(r)},r=function e(r,o,i){void 0===i&&(i=[]),t[r]=t[r]||new Set,t[r].add(o),i.unshift((function(){return n(r,o)}));var a=function(){return i.forEach((function(e){return e()}))};return a.on=function(t,n){return e(t,n,i)},a};return{off:n,on:r,once:function(t,o){return r(t,o),e[t]=e[t]||new Set,e[t].add(o),function(){return n(t,o)}},trigger:function(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];var a=t[n];null==a||a.forEach((function(e){return e.apply(void 0,o)}));var s=e[n];null!=s&&s.size&&(t[n]=s.forEach((function(e){s.delete(e),a.delete(e)})))},offAll:function(){t={},e={}}}}},93877:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(91211))&&r.__esModule?r:{default:r};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=function(e,t){return Object.assign(t,e)};t.default=function(e,t,n){void 0===n&&(n=u);var r=new Set(t);return{updatePristine:function(t,i,s){if(r.has(i)){if(!(i in t[e])&&!(0,o.default)(t[i],s)){var u,l,c=t[e];return n(((l={})[e]=a(a({},t[e]),{},((u={})[i]=t[i],u)),l),t),c}if((0,o.default)(t[e][i],s)){var f,d=t[e],p=a({},t[e]);return delete p[i],n(((f={})[e]=p,f),t),d}}},resetPristine:function(t){var r;n(a(a({},t[e]),{},((r={})[e]={},r)),t)}}}},93492:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e,t){var n,r=!0,o=new ResizeObserver((function(){r?r=!1:(clearTimeout(n),n=setTimeout(t,200))}));return o.observe(e),function(){clearTimeout(n),o&&o.disconnect(),o=null}}},53087:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e){if(/\d/.test(e))return e;var t=e.substring(1,e.length-1);return[e.charAt(0),t.replace(/([aeiou])/gi,""),e.charAt(e.length-1)].join("")},r=function(e){return e.replace(/(\w)\1+/g,"$1")},o=function(e,t){var n=Math.floor((t-3)/2);return e.substring(0,n)+"..."+e.substring(e.length-n)},i=function(e,t,n){return e.length<=n?e:e.replace(/(\w.+?|\d.+)([\s-_.@]+?)/g,(function(e,r,o){return""+(r=t(r,n))+o}))};t.default=function(e,t){if(void 0===t&&(t=60),!e)return e;if(e.length<=t)return e;var a=e.trim().match(/(.+[\s-_.@])(.+)$/);if(!a)return function(e,t){return(e=r(n(e))).length<=t?e:o(e,t)}(e,t);var s=a[1],u=a[2];return s.match(/[\s-_.@]/)?(s=i(s,n,t-u.length),s=i(s,r,t-u.length)):s=r(n(u)),(s+u).length<=t||(s+(u=r(n(u)))).length<=t?s+u:o(s+=u,t)}},97574:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e>-10&&e<10?"0"+e:""+e}},25382:function(e,t,n){"use strict";t.Z=void 0;var r=w(n(67514)),o=w(n(76081)),i=w(n(69187)),a=w(n(1630)),s=w(n(16469)),u=w(n(90026)),l=w(n(1271)),c=w(n(91213)),f=w(n(24553)),d=w(n(57799)),p=w(n(24667)),h=w(n(60518)),g=w(n(86534)),v=w(n(75211)),m=w(n(33792)),y=w(n(41578)),b=["attributes"];function w(e){return e&&e.__esModule?e:{default:e}}function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x(Object(n),!0).forEach((function(t){S(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function S(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.Z=function(e){void 0===e&&(e={});var t=e,n=t.attributes,w=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,b);return(0,c.default)(_({ui:{dygraph:r.default,easypiechart:o.default,gauge:i.default,groupBoxes:l.default,number:a.default,d3pie:s.default,bars:u.default},plugins:{move:h.default,unitConversion:f.default,hover:d.default,pan:p.default,highlight:g.default,select:v.default,selectVertical:m.default,play:y.default},attributes:_({_v:"v3",chartLibrary:"dygraph",navigation:"pan",after:-900,overlays:{proceeded:{type:"proceeded"}}},n)},w))}},91213:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(24298)),o=u(n(84725)),i=u(n(97966)),a=u(n(211)),s=["ui"];function u(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t,n=e.ui,u=e.plugins,l=void 0===u?{}:u,f=e.attributes,d=e.on,p=void 0===d?{}:d,h=(0,r.default)(),g={ui:n},v={},m=function(e,t){v[e]=t(x)},y=function(e){return(0,i.default)(c({sdk:x},e))},b=function(e){var t=e.getAttribute("chartLibrary")||f.chartLibrary;return t in g.ui||console.error('Chart library "'+t+'" does not exist in '+Object.keys(g.ui).join(", ")),(0,g.ui[t])(x,e)},w=function(e){return(0,o.default)(c({sdk:x},e))},x=c(c({},h),{},{getRoot:function(){return t},register:m,unregister:function(e){v[e](),delete v[e]},addUI:function(e,t){g.ui[e]=t},makeChartCore:y,makeChartUI:b,makeChart:function(e){var t=e.ui,n=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,s),r=y(n),o=b(r);return r.setUI(c(c({},o),t),"default"),r},makeContainer:w,getNode:function(e,n){return t.getNode(e,n)},getNodes:function(e,n){return t.getNodes(e,n)},appendChild:function(e,n){var r=(void 0===n?{}:n).inherit,o=void 0===r||r;return t.appendChild(e,{inherit:o})},removeChild:function(e){return t.removeChild(e)},version:function(){return g._v},ui:n});return t=w({attributes:c(c({id:"root"},a.default),f)}),Object.keys(p).forEach((function(e){return h.on(e,p[e])})),Object.keys(l).forEach((function(e){return m(e,l[e])})),x}},211:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(96415)),o=s(n(70873)),i=s(n(43460)),a=s(n(34675));function s(e){return e&&e.__esModule?e:{default:e}}var u={id:"",name:"",chartLibrary:"",theme:"default",host:"",description:"",before:0,after:0,title:"",min:0,max:0,pristineStaticValueRange:void 0,valueRange:null,staticValueRange:null,getValueRange:function(e,t){var n=(void 0===t?{}:t).dygraph,r=void 0!==n&&n;if(!e)return[null,null];var o=e.getAttributes(),i=o.min,a=void 0===i?null:i,s=o.max,u=void 0===s?null:s,l=o.valueRange,c=void 0===l?[null,null]:l,f=o.staticValueRange;if(f)return f;if(!c||null===c[0]&&null===c[1])return r?[null,null]:[a,u];var d=c[0],p=c[1];if(r){var h=e.getAttributes(),g=h.groupBy,v=h.aggregationMethod;if(g.length>1||"dimension"!==g[0]||"avg"!==v)return[null,null]}return[null===d||d>a?a:d,null===p||p<u?u:p]},loaded:!1,loading:!1,processing:!1,updatedAt:0,fetchStartedAt:0,focused:!1,active:!1,sparkline:!1,chartType:"",selectedLegendDimensions:[],contextItems:[],contextScope:[],nodesScope:[],selectedContexts:[],selectedDimensions:[],selectedLabels:[],selectedNodes:[],selectedInstances:[],dimensionIds:[],versions:{},enabledHover:!0,syncHover:!0,hoverX:null,navigation:"",enabledNavigation:!0,enabledResetRange:!0,syncPanning:!0,panning:!1,hovering:!1,syncHighlight:!0,highlighting:!1,desiredUnits:"auto",syncUnits:!1,unitsConversionMethod:"",unitsConversionDivider:-1,unitsConversionFractionDigits:0,unitsConversion:"",dbUnitsConversionMethod:"",dbUnitsConversionDivider:-1,dbUnitsConversionFractionDigits:0,dbUnitsConversion:"",temperature:"celsius",secondsAsTime:!0,timezone:void 0,syncTimezone:!0,dimensionsSort:"default",autofetch:!1,autofetchOnWindowBlur:!1,paused:!1,pixelsPerPoint:3,legend:!0,groupingMethod:"average",groupingTime:0,urlOptions:[],eliminateZeroDimensions:!0,fullscreen:!1,overlays:{},themeGridColor:["#F7F8F8","#282827"],themeCrosshair:["#536775","#536775"],showingInfo:!1,colors:[],height:"",enabledHeightResize:!0,pristineEnabledHeightResize:{},enabledXAxis:!0,enabledYAxis:!0,hasToolbox:!0,expandable:!0,hasYlabel:!0,yAxisLabelWidth:60,axisLabelFontSize:10,outOfLimits:!1,aggregationMethod:"sum",groupBy:["dimension"],groupByLabel:[],dimensionsSortBy:[{id:"contribution",desc:!0}],instancesSortBy:[{id:"contribution",desc:!0}],nodesSortBy:[{id:"contribution",desc:!0}],groupBySortBy:[],labelsSortBy:[{id:"contribution",desc:!0}],nodesExpanded:{},groupByExpanded:{},labelsExpanded:{},pristine:{},themeTrackColor:["#ECEEEF","#383B40"],themeScaleColor:["#F7F8F8","#2B3136"],themeEasyPieTrackColor:["#ECEEEF","#383B40"],themeEasyPieScaleColor:["#CFD5DA","#536775"],themeGaugePointer:["#8F9EAA","#536775"],themeGaugeStroke:["#ECEEEF","#383B40"],themeD3pieSmallColor:["#536775","#CFD5DA"],themeD3pieStroke:["#ECEEEF","#383B40"],themeInnerLabelColor:["#F7F8F8","#282827"],themeLabelColor:["#35414a","#ffffff"],themeBackground:["#ffffff","#282C34"],themeNeutralBackground:["#ECEEEF","#383B40"],themeWarningBackground:["#FFCC26","#FFCC26"],themeErrorBackground:["#F95251","#F95251"],themeAnomalyScaleColor:["#9F75F9","#9F75F9"],themeGroupBoxesMin:["#E4F1FF","#000C18"],themeGroupBoxesMax:["#0075F2","#0075F2"],themeLoadingStart:["#BFE5C6","#2f5446"],themeNetdata:["#00AB44","#00AB44"],legendScroll:0,initializedFilters:!1,error:null,agent:!0,toolboxElements:[i.default,r.default,o.default],leftHeaderElements:[a.default],expanded:!1,expandedHeight:300,viewDimensions:{ids:[],names:[],count:0,priorities:[],grouped:[],algorithm:"absolute"},units:"",viewUpdateEvery:0,updateEvery:0,firstEntry:0,lastEntry:0,dimensions:[],labels:[],nodes:[],instances:[],alerts:[],weightsAction:"values",weightsTab:"window",renderedAt:null,fetchAt:null,dimensionsOnNonDimensionGrouping:null,en:{instance:{one:"instance",other:"instances"}},bearer:null};t.default=u},3533:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s="*";t.default=function(e,t){var n=e.getAttributes().host,o=function(e){var t=e.getAttributes(),n=t.selectedContexts,o=t.context,a=t.nodesScope,u=t.contextScope,l=t.selectedNodes,c=t.selectedInstances,f=t.selectedDimensions,d=t.selectedLabels,p=t.aggregationMethod,h=(0,r.getChartURLOptions)(e),g=(0,r.getChartPayload)(e);return i(i({},g),{},{options:h.join("|"),contexts:(Array.isArray(n)?n.join("|"):"")||o||s,scope_contexts:(Array.isArray(u)?u.join("|"):"")||s,scope_nodes:(Array.isArray(a)?a.join("|"):"")||s,nodes:(Array.isArray(l)?l.join("|"):"")||s,instances:(Array.isArray(c)?c.join("|"):"")||s,dimensions:(Array.isArray(f)?f.join("|"):"")||s,labels:(Array.isArray(d)?d.join("|"):"")||s,"group_by[0]":(g["group_by[0]"]||e.getAttribute("groupBy")).join("|"),"group_by_label[0]":(g["group_by_label[0]"]||e.getAttribute("groupByLabel")).join("|"),"aggregation[0]":g["aggregation[0]"]||p},!!g["group_by[1]"]&&{"group_by[1]":g["group_by[1]"].join("|"),"group_by_label[1]":(g["group_by_label[1]"]||[]).join("|"),"aggregation[1]":g["aggregation[1]"]})}(e),a=new URLSearchParams(o).toString();return fetch(n+"/data?"+a,t).then((function(e){return e.json()}))}},70152:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s="*";t.default=function(e,t){var n=e.getAttributes().host,o=function(e){var t=e.getAttributes(),n=t.selectedContexts,o=t.context,a=t.nodesScope,u=t.contextScope,l=t.selectedNodes,c=t.selectedInstances,f=t.selectedDimensions,d=t.selectedLabels,p=t.aggregationMethod,h=(0,r.getChartURLOptions)(e),g=e.getAttribute("groupByLabel").join("|");return i(i({format:"json",options:h.join("|"),contexts:n.join("|")||o||s,scope_contexts:u.join("|")||s,scope_nodes:a.join("|")||s,nodes:l.join("|")||s,instances:c.join("|")||s,dimensions:f.join("|")||s,labels:d.join("|")||s,group_by:e.getAttribute("groupBy").join("|")},!!g&&{group_by_label:g}),{},{aggregation:p},(0,r.getChartPayload)(e))}(e),a=new URLSearchParams(o).toString();return fetch(n+"/weights?"+a,t).then((function(e){return e.json()}))}},41321:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111),o=["after","before","points","time_group","time_resampling","format"];function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=["*"],l=function(e){var t=e.getAttributes(),n=t.selectedContexts,i=t.context,s=t.nodesScope,l=t.contextScope,c=t.selectedNodes,f=t.selectedInstances,d=t.selectedDimensions,p=t.selectedLabels,h=t.aggregationMethod,g=(0,r.getChartURLOptions)(e),v=(0,r.getChartPayload)(e),m=v.after,y=v.before,b=v.points,w=v.time_group,x=v.time_resampling,_=v.format,S=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(v,o);return{format:_,options:g,scope:{contexts:Array.isArray(l)&&l.length?l:u,nodes:Array.isArray(s)&&s.length?s:[]},selectors:{contexts:Array.isArray(n)&&n.length?n:i?[i]:u,nodes:Array.isArray(c)&&c.length?c:u,instances:Array.isArray(f)&&f.length?f:u,dimensions:Array.isArray(d)&&d.length?d:u,labels:Array.isArray(p)&&p.length?p:u},aggregations:{metrics:[{group_by:S["group_by[0]"]||e.getAttribute("groupBy"),group_by_label:S["group_by_label[0]"]||e.getAttribute("groupByLabel"),aggregation:S["aggregation[0]"]||h},!!S["group_by[1]"]&&{group_by:S["group_by[1]"],group_by_label:S["group_by_label[1]"]||[],aggregation:S["aggregation[1]"]||"avg"}].filter(Boolean),time:{time_group:w,time_resampling:x}},window:a(a({after:m},m>0&&{before:y}),{},{points:b})}};t.default=function(e,t){var n=e.getAttributes().host,r=l(e);return fetch(n+"/data",a({method:"POST",body:JSON.stringify(r)},t)).then((function(e){return e.json()}))}},79738:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s="*";t.default=function(e,t){var n=e.getAttributes().host,o=function(e){var t=e.getAttributes(),n=t.selectedContexts,o=t.context,a=t.nodesScope,u=t.contextScope,l=t.selectedNodes,c=t.selectedInstances,f=t.selectedDimensions,d=t.selectedLabels,p=t.aggregationMethod,h=(0,r.getChartURLOptions)(e),g=e.getAttribute("groupByLabel").join("|");return i(i({format:"json",options:h.join("|"),contexts:n.join("|")||o||s,scope_contexts:u.join("|")||s,scope_nodes:a.join("|")||s,nodes:l.join("|")||s,instances:c.join("|")||s,dimensions:f.join("|")||s,labels:d.join("|")||s,group_by:e.getAttribute("groupBy").join("|")},!!g&&{group_by_label:g}),{},{aggregation:p},(0,r.getChartPayload)(e))}(e),a=new URLSearchParams(o).toString();return fetch(n+"/weights?"+a,t).then((function(e){return e.json()}))}},54111:function(e,t){"use strict";t.__esModule=!0,t.pointMultiplierByChartType=t.getChartURLOptions=t.getChartPayload=t.errorCodesToMessage=void 0;var n=["after","before","groupingMethod","groupingTime","chartLibrary","renderedAt","hovering","fetchStartedAt","chartType","pixelsPerPoint"];function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var u={groupBoxes:["group-by-labels"],default:[]};t.getChartURLOptions=function(e){var t=e.getAttributes(),n=t.eliminateZeroDimensions,r=t.urlOptions,o=void 0===r?[]:r,i=t.chartLibrary,s=u[i]||u.default;return[].concat(a(o),["jsonwrap",n&&"nonzero","flip","ms","jw-anomaly-rates","minify"],a(s)).filter(Boolean)};var l=function(e){return{"group_by[0]":e["group_by[0]"]||["instance"],"group_by_label[0]":e["group_by_label[0]"]||[],"aggregation[0]":e["aggregation[0]"]||"sum"}},c={gauge:l,easypiechart:l,number:l,default:function(e){return{"group_by[0]":e["group_by[0]"],"group_by_label[0]":e["group_by_label[0]"],"aggregation[0]":e["aggregation[0]"]}}},f={multiBar:.1,stackedBar:.1,heatmap:.7,default:.7};t.pointMultiplierByChartType=f;t.getChartPayload=function(e){var t=e.getUI(),r=e.getAttribute("width")||t.getChartWidth(),i=e.getAttributes(),a=i.after,s=i.before,u=i.groupingMethod,l=i.groupingTime,d=i.chartLibrary,p=i.renderedAt,h=i.hovering,g=i.fetchStartedAt,v=i.chartType,m=i.pixelsPerPoint,y=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(i,n),b=f[v]||f.default,w=h&&p?Math.ceil(p/1e3):Math.ceil(g/1e3),x=a>0?{after:a,before:s}:{after:w+a,before:w};return o(o(o({points:Math.round(r/m*b),format:"json2",time_group:u,time_resampling:l},x),(c[d]||c.default)(y)),!!y["group_by[1]"]&&{"group_by[1]":y["group_by[1]"],"group_by_label[1]":y["group_by_label[1]"],"aggregation[1]":y["aggregation[1]"]})};t.errorCodesToMessage={ErrAllNodesFailed:"All agents failed to return data"}},39360:function(e,t,n){"use strict";t.__esModule=!0;var r={fetchChartData:!0,fetchChartWeights:!0};t.fetchChartWeights=t.fetchChartData=void 0;var o=l(n(3533)),i=l(n(70152)),a=l(n(41321)),s=l(n(79738)),u=n(54111);function l(e){return e&&e.__esModule?e:{default:e}}Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===u[e]||(t[e]=u[e]))}));t.fetchChartData=function(e,t){return e.getAttributes().agent?(0,o.default)(e,t):(0,a.default)(e,t)};t.fetchChartWeights=function(e,t){return e.getAttributes().agent?(0,i.default)(e,t):(0,s.default)(e,t)}},19285:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(93501),o=["summary","functions","details","totals","db","view","result"];function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var c=function e(t,n,r){var o=n[0],i=n.slice(1);return t[o]||i.length?(t[o]||(t[o]={}),t[o]=e(t[o],i,r),t):(t[o]=r,t)},f=function(e){var t=e.data.reduce((function(t,n){var r=function(e,t){return e.reduce((function(n,r,o){return n.values.push(0===o?r:r[t.value]),n.all.push(0===o?{value:r}:Object.keys(t).reduce((function(e,n){return e[n]=r[t[n]],e}),{})),o===e.length-1&&(n.values=[].concat(u(n.values),[null,null]),n.all=[].concat(u(n.all),[{},{}])),n}),{values:[],all:[]})}(n,e.point);return t.data.push(r.values),t.all.push(r.all),t}),{data:[],all:[]}),n=e.labels.reduce((function(e,t,n){if(0===n)return e;var r=t.split(",");return c(e,r,t)}),{});return a(a({labels:[].concat(u(e.labels),["ANOMALY_RATE","ANNOTATIONS"])},t),{},{tree:n})};t.default=function(e){var t=e.summary,n=t.nodes,i=void 0===n?[]:n,s=t.instances,u=void 0===s?[]:s,l=t.dimensions,c=void 0===l?[]:l,d=t.labels,p=void 0===d?[]:d,h=t.alerts,g=void 0===h?[]:h,v=e.functions,m=void 0===v?[]:v,y=e.details,b=void 0===y?{}:y,w=e.totals,x=w.contexts,_=void 0===x?{}:x,S=w.dimensions,O=void 0===S?{}:S,C=w.instances,E=void 0===C?{}:C,A=w.label_key_values,M=void 0===A?{}:A,k=w.nodes,P=void 0===k?{}:k,R=e.db,T=R.update_every,I=R.first_entry,B=R.last_entry,D=R.tiers,j=R.per_tier,L=R.dimensions,Z=R.units,N=e.view,F=N.title,H=N.update_every,V=N.units,z=N.dimensions,U=N.chart_type,G=N.min,W=N.max,$=e.result,q=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,o),Y={},X={};i.forEach((function(e){Y[e.nd||e.mg]=e,X[e.ni]=e.nd||e.mg}));var K=[],J={};c.forEach((function(e){J[e.id]=e,K.push(e.id)}));var Q=null,ee=u.reduce((function(e,t){return e[Q=t.id+"@"+(Y[X[t.ni]].nd||Y[X[t.ni]].mg)]=t,e[Q].nm=(t.nm||t.id)+"@"+Y[X[t.ni]].nm,e}),{});return a(a({},q),{},{result:f($),updateEvery:T,viewUpdateEvery:H,firstEntry:I,lastEntry:B,units:V,chartType:(0,r.heatmapOrChartType)(z.ids,U),title:F,tiers:D,perTier:j,nodes:Y,nodesIndexes:X,instances:ee,dimensions:J,dimensionIds:K,labels:p.reduce((function(e,t){return e[t.id]=t,e}),{}),alerts:g.reduce((function(e,t){return e[t.name]=t,e}),{}),viewDimensions:z,dbDimensions:L,dbUnits:Z,details:b,functions:m,contextsTotals:_,dimensionsTotals:O,instancesTotals:E,labelsTotals:M,nodesTotals:P,min:G,max:W})}},6576:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=new Set(["%","percentage","percent","rotations/min","ratio","seconds","seconds ago","milliseconds","millisec","ms","log2 s","minutes","hours","interval","ticks","celsius","c","mhz","hz","volts","kwh","ampere","amps","dbm","value","stratum","units","watt","temperature","random number","rpm","quadro","adv/item","multiplier","geforce"]),r=/(%|\/operation|\/run| run|\/request)/;t.default=function(e){var t=e.getUnits();if(!t)return"avg";var o=t.toLowerCase();return n.has(o)||r.test(o)?"avg":(o=e.getUnitSign().toLowerCase(),n.has(o)||r.test(o)?"avg":"sum")}},68735:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.getAttributes(),n=t.selectedDimensions,r=t.groupBy,o=t.dimensionsOnNonDimensionGrouping;return n.length||r.includes("dimension")?n:o||n}},24584:function(e,t,n){"use strict";t.__esModule=!0,t.stackedAggregations=t.default=void 0;var r=i(n(6576)),o=i(n(68735));function i(e){return e&&e.__esModule?e:{default:e}}t.stackedAggregations={avg:!0,sum:!0};t.default=function(e){var t=e.getAttribute("dimensionIds");return{aggregationMethod:e.getAttribute("aggregationMethod")||(0,r.default)(e),selectedDimensions:(0,o.default)(e),initializedFilters:!!t.length}}},95433:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(91211))&&r.__esModule?r:{default:r},i=l(n(54417)),a=l(n(24584)),s=n(93501);function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t=e.getAttribute("chartType"),n=t,r={node:!0,instance:!0,dimension:!0},u=function(i){var s=i.filter((function(e){return e.isLabel})),u=s.map((function(e){return e.value})),l=i.reduce((function(e,t){return r[t.value]?(e.push(t.value),e):e}),[]);s.length&&l.push("label"),l.length||(l=["dimension"]),(0,o.default)(l,e.getAttribute("groupBy"))&&(0,o.default)(u,e.getAttribute("groupByLabel"))||(e.updateAttributes({groupByLabel:u,groupBy:l,processing:!0}),e.updateAttributes((0,a.default)(e)),e.fetch({processing:!0}).then((function(){return function(r){if(e.updateAttribute("selectedLegendDimensions",[]),!e.getAttribute("selectedChartType")){if(r.length>1||"dimension"!==r[0]){n=n||e.getAttribute("chartType");var o=e.getAttribute("aggregationMethod");return e.updateAttribute("chartType",a.stackedAggregations[o]?"stacked":t)}e.updateAttributes({chartType:n,processing:!0}),n=t}}(e.getAttribute("groupBy"))})))};return{updateGroupByAttribute:u,updateChartTypeAttribute:function(t){var n=e.getAttribute("groupBy");e.updateAttributes({selectedChartType:t,chartType:t,processing:!0}),(0,s.isHeatmap)(t)&&(u(["dimension"]),!(0,o.default)(n,e.getAttribute("groupBy")))||e.trigger("fetch",{processing:!0})},updateNodesAttribute:function(t){var n=t.reduce((function(e,t){return t.isInstance?e.selectedInstances.push(t.value):e.selectedNodes.push(t.value),e}),{selectedNodes:[],selectedInstances:[]}),r=n.selectedNodes,i=n.selectedInstances,a=!(0,o.default)(r,e.getAttribute("selectedNodes"));a&&e.updateAttributes({selectedNodes:r,processing:!0});var s=!(0,o.default)(i,e.getAttribute("selectedInstances"));s&&e.updateAttributes({selectedInstances:i,processing:!0}),(s||a)&&e.trigger("fetch",{processing:!0})},updateInstancesAttribute:function(t){var n=t.map((function(e){return e.value}));(0,o.default)(n,e.getAttribute("selectedInstances"))||(e.updateAttributes({selectedInstances:n,processing:!0}),e.trigger("fetch",{processing:!0}))},updateDimensionsAttribute:function(t){var n=t.map((function(e){return e.value}));(0,o.default)(n,e.getAttribute("selectedDimensions"))||(e.updateAttributes({selectedDimensions:n,processing:!0}),e.trigger("fetch",{processing:!0}))},updateLabelsAttribute:function(t){var n=t.map((function(e){return e.value}));(0,o.default)(n,e.getAttribute("selectedLabels"))||(e.updateAttributes({selectedLabels:n,processing:!0}),e.trigger("fetch",{processing:!0}))},updateAggregationMethodAttribute:function(t){e.getAttribute("aggregationMethod")!==t&&(e.updateAttributes({aggregationMethod:t,processing:!0}),e.trigger("fetch",{processing:!0}))},updateTimeAggregationMethodAttribute:function(t){var n=t.alias,r=t.method,o=n?""+r+n:r;e.getAttribute("groupingMethod")!==o&&(e.updateAttributes({groupingMethod:o,processing:!0}),e.trigger("fetch",{processing:!0}))},updateContextScopeAttribute:function(t){e.getAttribute("contextScope")[0]!==t&&(e.updateAttributes({contextScope:[t],processing:!0}),e.updateAttributes((0,a.default)(e)),e.trigger("fetch",{processing:!0}))},resetPristine:function(){var t=e.getAttributes(),n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t[i.pristineKey]);i.default.reset(t),e.attributeListeners.trigger(i.pristineKey,t[i.pristineKey],n),e.sdk.trigger("pristineChanged",e,i.pristineKey,t[i.pristineKey],n),Object.keys(n).forEach((function(r){return e.attributeListeners.trigger(r,t[r],n[r])})),e.trigger("fetch",{processing:!0})},removePristine:function(){var t=e.getAttribute(i.pristineKey),n={};e.updateAttribute(i.pristineKey,n),e.sdk.trigger("pristineChanged",e,i.pristineKey,n,t)}}}},97966:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=p(n(10387)),o=p(n(81220)),i=p(n(37876)),a=p(n(16286)),s=n(39360),u=p(n(55689)),l=p(n(95433)),c=p(n(73370)),f=p(n(34142)),d=p(n(44255));function p(e){return e&&e.__esModule?e:{default:e}}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){v(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m={default:0,dark:1},y=function(){return function(e){return e}};t.default=function(e){var t=void 0===e?{}:e,n=t.sdk,p=t.parent,h=t.getChart,v=void 0===h?s.fetchChartData:h,b=t.attributes,w=t.makeTrack,x=void 0===w?y:w,_=(0,o.default)(),S=(0,i.default)({sdk:n,parent:p,attributes:b});S.getChart=v;var O=null;S.getRoot=function(){return n.getRoot()},S.backoffMs=null,S.backoff=function(e){if(S)if(e)S.backoffMs=e;else{var t=S.backoffMs?2*S.backoffMs:S.getUpdateEvery();S.backoffMs=t>3e4?3e4:t}};var C={};S.getUpdateEvery=function(){if(S){var e=S.getAttributes(),t=e.loaded,n=e.viewUpdateEvery,r=e.updateEvery;return n?1e3*n:t?1e3*r||1e3:0}};var E=null,A=null,M=null,k=null;S.getDateWindow=function(){var e=S.getAttributes(),t=e.after,r=e.before,o=e.renderedAt,i=n.getRoot().getAttribute("fetchAt")||Date.now();return A===t&&M===o&&k===i?E:(A=t,M=o,k=i,E=t>0?[1e3*t,1e3*r]:[(o||i)+1e3*t,o||i])},S.startAutofetch=function(){if(S){var e=S.getAttributes(),t=e.fetchStartedAt,n=e.loading,r=e.autofetch,o=e.active;if(r&&!n&&o&&!S.getRoot().getAttribute("paused"))if(0!==t){var i=Date.now()-t,a=S.getUpdateEvery(),s=i/a;if(Math.floor(s)>=1)return S.lastFetch=S.getDateWindow(),void S.trigger("fetch");var u=S.backoffMs||a-Math.round((s-Math.floor(s))*a);clearTimeout(O),O=setTimeout((function(){S.startAutofetch()}),u)}else S.trigger("fetch")}},S.getUI=function(e){return void 0===e&&(e="default"),C[e]},S.setUI=function(e,t){void 0===t&&(t="default"),C[t]=e};var P=_.add((function(){return Object.keys(C).forEach((function(e){return C[e].render()}))}));S.on("render",P),S.getConvertedValue=function(e,t){var n=void 0===t?{}:t,r=n.fractionDigits,o=n.key,i=void 0===o?"units":o;if(S){if(null===e)return"-";var s=S.getAttribute(i+"ConversionMethod"),u=S.getAttribute(i+"ConversionDivider"),l=S.getAttribute(i+"ConversionFractionDigits"),c=(0,a.default)(S,s,e,u);return-1===l?c:Intl.NumberFormat(void 0,{useGrouping:!0,minimumFractionDigits:isNaN(r)?l:r,maximumFractionDigits:isNaN(r)?l:r}).format(c)}},S.focus=function(e){S&&(S.getAttribute("focused")&&S.getAttribute("hovering")||(S.updateAttributes({focused:!0}),n.trigger("hoverChart",S,e),S.trigger("hoverChart",e)))},S.blur=function(e){S&&(S.getAttribute("focused")||S.getAttribute("hovering"))&&(S.updateAttributes({focused:!1}),n.trigger("blurChart",S,e),S.trigger("blurChart",e))},S.activate=function(){S&&(S.updateAttribute("active",!0),n.trigger("active",S,!0))},S.deactivate=function(){S&&(S.updateAttribute("active",!1),n.trigger("active",S,!1))},S.getFirstEntry=function(){return S.getAttribute("firstEntry")},S.getUnits=function(){if(S)return S.getAttributes().units},S.getApplicableNodes=function(e,t){if(!S)return[];if(!S.match(e))return[S];var n=S.getAncestor(e);return n?n.getNodes(e,t):[S]},S.stopAutofetch=function(e){void 0===e&&(e=!0),clearTimeout(O),S&&e&&!S.getAttribute("active")&&S.getAttribute("loaded")&&S.getAttribute("loading")&&S.cancelFetch()},(0,u.default)(S,n),(0,c.default)(S,n),(0,d.default)(S,n),S.type="chart",(0,f.default)(S),S.track=x(S);var R=(0,r.default)(),T=R.onKeyChange,I=R.initKeyboardListener,B=R.clearKeyboardListener;T(["Alt","Shift","KeyF"],(function(){S&&S.updateAttribute("fullscreen",!S.getAttribute("fullscreen"))})),T(["Alt","Shift","KeyR"],(function(){S&&S.resetNavigation()})),S.onAttributeChange("autofetch",(function(e){S&&(e?S.startAutofetch():S.stopAutofetch(!1))})),S.onAttributeChange("active",(function(e){if(S)return e?S.getAttribute("autofetch")?S.startAutofetch():void 0:S.stopAutofetch()})),S.onAttributeChange("focused",(function(e){S&&(e?I():B(),S.invalidateClosestRowCache())})),S.makeChartUI=function(e,t){void 0===t&&(t=S.getAttribute("chartLibrary")),t in n.ui||console.error('Chart library "'+t+'" does not exist in '+Object.keys(n.ui).join(", "));var r=(0,n.ui[t])(n,S);S.setUI(r,e)},S.makeSubChart=function(e){void 0===e&&(e={});var t=n.makeChartCore(e),r=n.makeChartUI(t);return t.setUI(r,"default"),t},S.getThemeIndex=function(){if(S)return m[S.getAttribute("theme")]||m.default},S.getThemeAttribute=function(e){var t;if(S){var n=S.getAttributes(),r=S.getThemeIndex();return(null==(t=n[e])?void 0:t[r])||e}};return S.intl=function(e,t){var n,r;if(void 0===t&&(t=1),!S)return e;var o=S.getAttribute("en");return null!=o&&o[e]?1===t?(null==(n=o[e])?void 0:n.one)||e:(null==(r=o[e])?void 0:r.other)||e+"s":1===t?e:e+"s"},g(g(g({},S),(0,l.default)(S)),{},{destroy:function(){S&&(_&&_.clear(),S.destroy(),S.stopAutofetch(),B(),Object.keys(C).forEach((function(e){return C[e].unmount()})),setTimeout((function(){C=null,S=null}),2e3),S.destroy())},onKeyChange:T})}},73370:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(39360),o=u(n(14933)),i=u(n(24584)),a=u(n(19285)),s=["result","chartType","versions"];function u(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d={labels:[],data:[],all:[],tree:{}};t.default=function(e){var t=null,n=d,u=null;e.lastFetch=[null,null],e.getPayload=function(){return n},(0,o.default)(e),e.cancelFetch=function(){return t&&t.abort()};var l=function(){e&&(e.startAutofetch(),e.trigger("finishFetch"),e.trigger("render"))};e.doneFetch=function(t){e.backoffMs=0,setTimeout((function(){var n=(0,a.default)(t),r=n.result,o=n.chartType,p=n.versions,h=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(n,s),g=u,v=function(e){var t=(e||d).data;return(null==t?void 0:t.length)||0}(u=r);e.consumePayload(),e.invalidateClosestRowCache(),!e.getAttribute("loaded")&&e.getParent()&&e.getParent().trigger("chartLoaded",e);var m=e.getAttributes();e.updateAttributes(c(c({loaded:!0,loading:!1,processing:!1,updatedAt:Date.now(),outOfLimits:!v,chartType:m.selectedChartType||m.chartType||o},h),{},{versions:p,title:m.title||h.title,error:null})),e.updateDimensions(),e.getAttribute("initializedFilters")||e.setAttributes((0,i.default)(e)),e.trigger("successFetch",u,g),f(p),l()}))};var f=function(t){var n=t.alerts_hard_hash,r=t.alerts_soft_hash,o=t.contexts_hard_hash,i=t.contexts_soft_hash,a=t.nodes_hard_hash;if(e){var s=e.getParent();s&&s.updateAttribute("versions",{alertsHardHash:n,alertsSoftHash:r,contextsHardHash:o,contextsSoftHash:i,nodesHardHash:a})}},p=function(t){e&&("AbortError"!==(null==t?void 0:t.name)?(e.backoff(),e.trigger("failFetch",t),!e.getAttribute("loaded")&&e.getParent()&&e.getParent().trigger("chartLoaded",e),e.updateAttributes({loaded:!0,loading:!1,processing:!1,updatedAt:Date.now(),error:r.errorCodesToMessage[null==t?void 0:t.errorMessage]||(null==t?void 0:t.errorMessage)||(null==t?void 0:t.message)||"Something went wrong"}),l()):e.updateAttribute("loading",!1))};e.fetch=function(n){var r=(void 0===n?{}:n).processing,o=void 0!==r&&r;if(e){if(e.cancelFetch(),e.updateAttributes({processing:o,loading:!0,fetchStartedAt:Date.now()}),e.trigger("startFetch"),!function(){if(!e)return!1;var t=e.getAttributes(),n=t.firstEntry,r=t.after,o=t.before;return!n||n<=(r>=0?o:Date.now()/1e3)}())return Promise.resolve().then((function(){return p({message:"Exceeds agent data retention settings"})}));var i=c({signal:(t=new AbortController).signal},e.getAttribute("bearer")&&{headers:{Authorization:"Bearer "+e.getAttribute("bearer")}});return e.getChart(e,i).then((function(t){var n;return null!=t&&t.errorMsgKey?p(t):Array.isArray(null==t?void 0:t.result)||Array.isArray(null==t||null==(n=t.result)?void 0:n.data)?e.doneFetch(t):p()})).catch(p)}},e.consumePayload=function(){if(n===u||null===u)return!1;var t=n;return n=u,e&&e.trigger("payloadChanged",u,t),!0},e.on("fetch",e.fetch)}},55689:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(88577))&&r.__esModule?r:{default:r},i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(91211)),a=n(93501);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function u(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.default=function(e,t){var n=[],r={},s=[],l=[],c={},f=new Set,d=0,p=["sum"];e.isSparkline=function(){return e.getAttribute("sparkline")},e.getHeatmapType=function(){return e.getAttribute("heatmapType")},e.getPayloadDimensionIds=function(){if(e.isSparkline())return p;var t=e.getAttribute("viewDimensions");return u((null==t?void 0:t.ids)||[])};var h={default:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort((function(t,n){return e.getDimensionPriority(t)-e.getDimensionPriority(n)}))},nameAsc:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort((function(t,n){return e.getDimensionName(t).localeCompare(e.getDimensionName(n))}))},nameDesc:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort((function(t,n){return e.getDimensionName(n).localeCompare(e.getDimensionName(t))}))},valueDesc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().data;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(r,n)-e.getDimensionValue(t,n)}))},valueAsc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().data;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(t,n)-e.getDimensionValue(r,n)}))},anomalyDesc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(r,n,{valueKey:"arp"})-e.getDimensionValue(t,n,{valueKey:"arp"})}))},anomalyAsc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(t,n,{valueKey:"arp"})-e.getDimensionValue(r,n,{valueKey:"arp"})}))},annotationsDesc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(r,n,{valueKey:"pa"})-e.getDimensionValue(t,n,{valueKey:"pa"})}))},annotationsAsc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(t,n,{valueKey:"pa"})-e.getDimensionValue(r,n,{valueKey:"pa"})}))}},g=function(){var t=e.getAttribute("selectedLegendDimensions");l=t.length?s.filter((function(n){return t.includes(n)||t.includes(e.getDimensionName(n))})):s,c=l.reduce((function(e,t,n){return e[t]=n,e}),{});var n=f;f=new Set(l),(0,i.setsAreEqual)(f,n)||e.trigger("visibleDimensionsChanged")};e.sortDimensions=function(){var t=e.getAttribute("dimensionsSort");s=(h[t]||h.default)(),g(),s&&e.trigger("dimensionChanged")},e.onHoverSortDimensions=function(t,n){return void 0===n&&(n=e.getAttribute("dimensionsSort")),((0,a.isHeatmap)(e)?h.default:h[n]||h.default)((function(){return u(e.getVisibleDimensionIds())}),t)};var v=function(){var t=e.getAttribute("colors"),n=d++%(t.length+o.default.length);return n<t.length?"number"===typeof t[n]?o.default[t[n]]:t[n]:o.default[n-t.length]};e.updateDimensions=function(){var t=e.getPayloadDimensionIds();if(!(0,i.default)(n,t)){n=t;var o=1===e.getAttribute("groupBy").length&&"dimension"===e.getAttribute("groupBy")[0],s=null;r=t.reduce((function(t,n,r){if(o&&!e.getHeatmapType()){var i,u=null==(i=n.match(/(.+)_(\d+?\.?(\d+)?|\+[Ii]nf)$/))?void 0:i[1];e.setAttribute("heatmapType",s&&u!==s||!u?a.heatmapTypes.disabled:null),s===u&&e.setAttribute("heatmapType",a.heatmapTypes[s]||a.heatmapTypes.incremental),s=u}return t[n]=r,t}),{}),o?/latency/.test(e.getAttribute("context"))&&e.setAttribute("heatmapType",a.heatmapTypes.default):e.setAttribute("heatmapType",null),e.sortDimensions(),e.updateColors()}},e.getDimensionIndex=function(e){return r[e]},e.getDimensionIds=function(){return s},e.getVisibleDimensionIds=function(){return l},e.getVisibleDimensionIndexesById=function(){return c},e.isDimensionVisible=function(e){return f.has(e)};var m=null;e.selectDimensionColor=function(n){void 0===n&&(n="selected");var r=function(){if(m)return m;var t=e.getAttributes(),n=t.colors,r=t.contextScope,o=t.id;return m=n.length?e.getAttribute("id"):(r[0]||o).split(".")[0]}(),o=e.getAttribute("colors");if(e.isSparkline()&&o&&1===o.length)return o[0];var i="selected"===n;n=!n||i?e.getAttribute("selectedDimensions")[0]:n;var a=i&&null!=o&&o.length?o[0]:t.getRoot().getNextColor(v,r,n),s=e.getThemeIndex();return"string"===typeof a?a:a[s]},e.getDimensionName=function(t){var n=e.getAttribute("viewDimensions");return null!=n&&n.names?(0,a.isHeatmap)(e)?(0,a.withoutPrefix)(n.names[r[t]]):n.names[r[t]]:""},e.getDimensionPriority=function(t){var n=e.getAttribute("viewDimensions");return null!=n&&n.priorities?n.priorities[r[t]]:0},e.getRowDimensionValue=function(t,n,o){var i=void 0===o?{}:o,s=i.valueKey,u=void 0===s?"value":s,l=i.abs,c=void 0===l||l,f=i.incrementable,d=void 0===f||f,p=i.allowNull,h=void 0!==p&&p,g=null==n?void 0:n[r[t]+1];if("undefined"===typeof g)return null;if(g=null!==g&&"object"===typeof g?g[u]:g,g=h&&null===g?g:c?Math.abs(g):g,d&&(0,a.isIncremental)(e)){var v=e.getVisibleDimensionIndexesById()[t],m=e.getVisibleDimensionIds()[v-1];g-=e.getRowDimensionValue(m,n,{valueKey:u,abs:c,incrementable:!1,allowNull:h})||0}return g},e.getDimensionValue=function(t,n,r){void 0===r&&(r={});var o=e.getPayload().all[n];return e.getRowDimensionValue(t,o,r)},e.toggleDimensionId=function(t,n){var r=(void 0===n?{}:n).merge,o=void 0!==r&&r,i=e.getAttribute("selectedLegendDimensions");if(i.length)if(e.isDimensionVisible(t)){var a=i.filter((function(e){return e!==t}));e.updateAttribute("selectedLegendDimensions",a.length?o?a:[t]:[])}else{var s=o?[].concat(u(i),[t]):[t];e.updateAttribute("selectedLegendDimensions",s)}else e.updateAttribute("selectedLegendDimensions",o?e.getDimensionIds().filter((function(e){return e!==t})):[t])},e.onAttributeChange("dimensionsSort",e.sortDimensions),e.onAttributeChange("selectedLegendDimensions",g),e.updateColors=function(){var t=e.getAttribute("dimensionIds");t.length&&(e.isSparkline()?p:t).forEach(e.selectDimensionColor)}}},14933:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=-1,n=-1;e.invalidateClosestRowCache=function(){t=-1,n=-1};e.getClosestRow=function(r){return t===r||(t=r,n=function(t){var n=e.getPayload().data;if(0===n.length)return-1;if(t<n[0][0])return 0;if(t>n[n.length-1][0])return n.length-1;for(var r=0,o=n.length-1;r<o;){var i=Math.floor((r+o)/2);if(n[i][0]===t)return i;n[i][0]<t?r=i+1:o=i-1}return r}(r)),n}}},34142:function(e,t){"use strict";t.__esModule=!0,t.unitMap=t.default=void 0;var n={"active connections":"a-con",arrays:"arrays","calls/s":"c/s",Celsius:"cels",charts:"charts","connected clients":"con-c","connections/s":"c/s",containers:"cont","context switches/s":"co-sw",dBm:"dBm",descriptors:"descr",difference:"dif","drops/s":"d/s",entropy:"entr","errors/s":"err/s",events:"events","events/s":"e/s","faults/s":"f/s","files/s":"f/s","frames/s":"f/s",GiB:"GiB","gigabits/s":"gb/s",inodes:"inodes","interrupts/s":"i/s",KiB:"KiB","KiB/operation":"Kib/op","KiB/s":"KiB/s","kilobits/s":"kb/s",load:"load","merged operations/s":"m-o/s","messages/s":"m/s",metrics:"metrics",MHz:"MHz",MiB:"MiB","MiB/s":"MiB/s","megabits/s":"mb/s","microseconds lost/s":"\xb5s l/s","milliseconds/operation":"ms/o","milliseconds/request":"ms/r","milliseconds/run":"ms/run","milliseconds/s":"ms/s",nanoseconds:"ns",microseconds:"\xb5s",milliseconds:"ms",ms:"ms","% of time working":"%time","open files":"o-f","open pipes":"o-p","open sockets":"o-s","operations/s":"ops/s","packets/s":"p/s","page faults/s":"p-f/s",pages:"pages",percentage:"%",pcent:"%",percent:"%",processes:"prc","processes/s":"prc/s","reads/s":"read/s","reports/s":"rep/s","requests/s":"req/s","Rotations/min":"rot/min",seconds:"secs",minutes:"mins",hours:"hrs",days:"d","duration (minutes, seconds)":"mins:secs","duration (hours, minutes)":"hrs:mins","duration (days, hours)":"d:hrs","duration (months, days)":"m-d","duration (years, months)":"Y-m",segments:"segm",semaphores:"semph",sockets:"socket","softirqs/s":"s-irq/s",state:"state",status:"status",threads:"thr",value:"value",Volts:"V",Watt:"W",bits:"b",bytes:"B",kilobytes:"KB",megabytes:"MB",gigabytes:"GB",terabytes:"TB",petabytes:"PB",exabytes:"EB",zettabytes:"ZB",yottabytes:"YB","bits/s":"b/s","bytes/s":"B/s","kilobytes/s":"KB/s","megabytes/s":"MB/s","gigabytes/s":"GB/s","terabytes/s":"TB/s","petabytes/s":"PB/s","exabytes/s":"EB/s","zettabytes/s":"ZB/s","yottabytes/s":"YB/s"};t.unitMap=n;var r=/num\s\(([fpn\u03bcmcAhkMGTPE])\)?\s(.+)?/;t.default=function(e){return e.getUnitSign=function(t){var o=void 0===t?{}:t,i=o.long,a=void 0!==i&&i,s=o.key,u=void 0===s?"units":s,l=o.real;if(void 0!==l&&l)return e.getAttribute("units");var c=e.getAttribute(u+"Conversion")||e.getAttribute(u),f="";if(r.test(c)){var d=c.match(r);f=d[1]&&"A"!==d[1]?d[1]+" ":"",c=d[2]}return c&&"undefined"!==c&&"null"!==c?""+f+(a?c:n[c]||c):""}}},44255:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;(r=n(88577))&&r.__esModule,function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=a(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=o?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=e[i]}r.default=e,n&&n.set(e,r)}(n(91211));var r,o=n(39360),i=["result"];function a(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:t})(e)}var s=function(e){var t=e.nodes;e.point;return Object.keys(t).reduce((function(e,t){var n=transformDataRow(t,result.point,stats);return e.push(n),e}),{})};t.default=function(e,t){var n=null,r=function(t){var n=s(t);n.result,function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n])}(n,i);e.updateAttributes({weightsLoading:!1,error:null}),e.trigger("weights:finishFetch")},a=function(t){e&&("AbortError"!==(null==t?void 0:t.name)?(e.updateAttributes({weightsLoading:!1,weightsError:(null==t?void 0:t.errorMessage)||(null==t?void 0:t.message)||"Something went wrong"}),e.trigger("weights:finishFetch")):e.updateAttribute("weightsLoading",!1))};return{weights:{},fetchWeights:function(){if(e){return n&&n.abort(),e.trigger("weights:startFetch"),e.updateAttributes({weightsLoading:!0}),function(){var t={signal:(n=new AbortController).signal};return(0,o.fetchChartWeights)(e,t).then((function(e){return r(e)})).catch(a)}()}}}}},88577:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=[["#3366CC","#66AA00"],["#DC3912","#FE3912"],["#109618","#3366CC"],["#FF9900","#D66300"],["#990099","#0099C6"],["#DD4477","#DDDD00"],["#3B3EAC","#5054e6"],["#66AA00","#EE9911"],["#0099C6","#BB44CC"],["#B82E2E","#e45757"],["#AAAA11","#ef0aef"],["#5574A6","#CC7700"],["#994499","#22AA99"],["#22AA99","#109618"],["#6633CC","#905bfd"],["#E67300","#f54882"],["#316395","#4381bf"],["#8B0707","#ff3737"],["#329262","#329262"],["#3B3EAC","#3B3EFF"]]},58960:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=i(n(24298)),o=i(n(81220));function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n=(0,r.default)(),i=(0,o.default)(),a=null,u=t.getDateWindow()[1],l=function(){return u=t.getDateWindow()[1]};t.on("visibleDimensionsChanged",i.add(l));return s(s({},n),{},{sdk:e,chart:t,mount:function(n){a=n,e.trigger("mountChartUI",t)},unmount:function(){e.trigger("unmountChartUI",t),n.offAll(),a=null,i&&i.clear()},render:l,getRenderedAt:function(){return u},getElement:function(){return a},getChartWidth:function(){return a?a.offsetWidth:800},getChartHeight:function(){return a?a.offsetHeight:300}})}},84725:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(37876))&&r.__esModule?r:{default:r};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t=void 0===e?{}:e,n=t.sdk,r=t.parent,i=t.attributes,s=(0,o.default)({sdk:n,parent:r,attributes:i}),u=[],l=function(e,t,n){void 0===n&&(n=null);var r=n?u:[f];return n=n||[],r.forEach((function(r){var o=r.match(e);!o&&null!=t&&t.inherit||(o&&n.push(r),"container"===r.type&&r.getNodes(e,t,n))})),n},c={};s.type="container",s.getApplicableNodes=function(e,t){if(!s.match(e))return[f];var n=s.getAncestor(e);return n?n.getNodes(e,t):l(e,t)};var f=a(a({},s),{},{destroy:function(){s&&(s.destroy(),u.forEach((function(e){return e.destroy()})),u=[],c={},setTimeout((function(){return s=null}),2e3))},appendChild:function(e,t){var r=(void 0===t?{}:t).inherit,o=void 0===r||r;e.setParent(f,{inherit:o}),u.push(e),f.trigger("nodeAdded",e),n.trigger("nodeAdded",f,e),f.trigger(e.type+"Added",e),n.trigger(e.type+"Added",f,e)},removeChild:function(e){u=u.filter((function(t){return t.getId()!==e})),f.trigger("nodeRemoved",s),n.trigger("nodeRemoved",f,s),f.trigger(s.type+"Removed",s),n.trigger(s.type+"Removed",f,s)},getNode:function(e,t,n){var r;return void 0===n&&(n=[f]),n.some((function(n){var o=n.match(e);if(o||null==t||!t.inherit)return o?(r=n,!0):!("container"!==n.type||!(r=n.getNode(e,t,u)))||void 0})),r},getNodes:l,getChildren:function(){return u},getNextColor:function(e,t,n){t in c||(c[t]={});var r=c[t];if(n in r)return r[n];var o=e();return r[n]=o,o},getRoot:function(){return n.getRoot()}});return f}},78647:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.default=void 0;var i={hourCycle:"h23",weekday:"short",year:"numeric",month:"short",day:"2-digit"},a={hourCycle:"h23",month:"2-digit",day:"2-digit"},s={hourCycle:"h23",timeStyle:"medium"},u=function(e){return e>-10&&e<10?"0"+e.toString():e.toString()};t.default=function(){var e,t,n,o=function(t){return e.format(t)};return{update:function(o){try{!function(o){e=new Intl.DateTimeFormat(navigator.language,r(r({},s),{},{timeZone:o})),n=new Intl.DateTimeFormat(navigator.language,r(r({},i),{},{timeZone:o})),t=new Intl.DateTimeFormat(navigator.language,r(r({},a),{},{timeZone:o}))}(o)}catch(l){n={format:function(e){return new Date(e).toLocaleDateString()}},e={format:function(e){return new Date(e).toLocaleTimeString()}},t={format:function(e){var t=new Date(e);return[t.getHours(),t.getMinutes(),t.getSeconds()].map(u).join(":")}}}},formatTime:o,formatDate:function(e){return n.format(e)},formatXAxis:function(e){return 0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()?t.format(e):o(e)},destroy:function(){e=null,t=null,n=null}}}},37876:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(67429),o=c(n(24298)),i=c(n(93877)),a=c(n(18774)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(54417)),u=c(n(78647));function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t=e.sdk,n=e.parent,l=void 0===n?null:n,c=e.attributes,f=(0,o.default)(),p=(0,o.default)(),h=d({id:(null==c?void 0:c.id)||(0,r.v4)()},c),g=function(e,t){h[e]=t},v=function(e){return h[e]},m=function(){return h.id},y=function(e,t,n){return p.trigger(e,t,n)},b=function(e,n){if(h){var r=h[e];if(r!==n){var o=s.default.update(h,e,n);g(e,n),y(e,n,r),o&&(y(s.pristineKey,h[s.pristineKey],o),t.trigger("pristineChanged",s.pristineKey,D,n,r))}}},w=function(){return h},x=function(e){var n=null,r=Object.keys(e).reduce((function(t,r){var o=e[r],i=h[r];if(i===o)return t;var a=s.default.update(h,r,o);return a&&!n&&(n=a),g(r,o),t[r]=i,t}),{});Object.keys(r).forEach((function(t){return y(t,e[t],r[t])})),n&&(y(s.pristineKey,h[s.pristineKey],n),t.trigger("pristineChanged",s.pristineKey,D,h[s.pristineKey],n))},_=function(e,t){return p.on(e,t)},S=function(e,t){var n=(void 0===t?{}:t).inherit;l=e,(void 0===n||n)&&e&&P()},O=(0,u.default)(),C=O.update,E=O.formatTime,A=O.formatDate,M=O.formatXAxis,k=O.destroy,P=function(){var e=l.getAttributes();h=d(d(d({},e),h),{},{overlays:d(d({},e.overlays),h.overlays)}),C(h.timezone)},R=function(e,n){void 0===n&&(n=0);var r=(0,a.default)({after:e,before:n}),o=r.fixedAfter,i=r.fixedBefore;t.trigger("moveX",D,Math.floor(o),Math.floor(i))},T=function(e){var t=w(),n=t.after,r=t.before;if(n<0){var o=Date.now()/1e3;n=o+n,r=o}var i=e*Math.round((r-n)/4);R(n+i,r-i)},I=function(){var e=v("pristineStaticValueRange");void 0!==e&&(b("pristineStaticValueRange",void 0),b("staticValueRange",e))},B=(0,i.default)("pristineEnabledHeightResize",["enabledHeightResize"],x);C(v("timezone")),_("timezone",C);S(l);var D=d(d({attributeListeners:p},f),{},{sdk:t,setAttribute:g,getAttribute:v,updateAttribute:b,setAttributes:function(e){return Object.keys(e).forEach((function(t){return g(t,e[t])}))},getAttributes:w,updateAttributes:x,onAttributeChange:_,onAttributesChange:function(e,t){return e.reduce((function(e,n){return e?e.on(n,t):p.on(n,t)}),null)},onceAttributeChange:function(e,t){return p.once(e,t)},match:function(e){return"function"===typeof e?e(D,h):!e||!h||!Object.keys(e).some((function(t){return e[t]!==h[t]}))},setParent:S,getParent:function(){return l},getId:m,getAncestor:function(e){for(var t=D,n=null;null!=(r=t.getParent())&&r.match(e);){var r;n=t.getParent(),t=n}return n},inherit:P,updateHeight:function(e){b("height",e),t.trigger("heightChanged",D,e)},updateStaticValueRange:function(e){if(void 0===v("pristineStaticValueRange")){var t=v("staticValueRange");b("pristineStaticValueRange",t)}b("staticValueRange",e)},resetStaticValueRange:I,toggleFullscreen:function(){var e=v("fullscreen");if(!e)return B.updatePristine(h,"enabledHeightResize",!1),b("enabledHeightResize",!1),void b("fullscreen",!e);B.resetPristine(h),b("fullscreen",!e)},moveY:function(e,n){t.trigger("moveY",D,e,n)},moveX:R,zoomIn:function(){return T(1)},zoomOut:function(){return T(-1)},resetNavigation:function(){var e=v("pristineStaticValueRange");if(v("enabledResetRange"))return void 0!==e?I():void R(-900)},destroy:function(){l&&l.removeChild(m()),f.offAll(),p.offAll(),setTimeout((function(){return l=null}),2e3),k()},formatTime:E,formatDate:A,formatXAxis:M});return D}},86534:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightStart",(function(e){"highlight"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),n=e.on("highlightEnd",(function(e,t){if("highlight"===e.getAttribute("navigation")){var n=function(e){var t=(e.getAncestor({syncHighlight:!0})||e).getAttribute("after");if(t>0)return null;var n=Math.floor(Date.now()/1e3);return{after:n+t,before:n}}(e);e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){var o=function(e,t){var n=e.getAttributes(),o=n.overlays,i=n.after,a=n.before;if(t)return r(r({},o),{},{highlight:{range:t,type:"highlight",moveX:{after:i,before:a}}});var s=r({},o);return delete s.highlight,s}(e,t);e.updateAttributes(r({enabledHover:!0,highlighting:!1,overlays:o},n))}))}}));return function(){t(),n()}}},57799:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e.on("highlightHover",(function(e,t,n){e.getApplicableNodes({syncHover:!0}).forEach((function(e){return e.updateAttribute("hoverX",[t,n])}))})).on("highlightBlur",(function(e){e.getApplicableNodes({syncHover:!0}).forEach((function(e){return e.updateAttribute("hoverX",null)}))})).on("hoverChart",(function(t){t.getApplicableNodes({syncHover:!0}).forEach((function(e){e.getAttribute("hovering")||t.getRoot().getAttribute("paused")||e.updateAttributes({hovering:!0,renderedAt:t.getAttribute("after")<0?t.getUI().getRenderedAt():t.getAttribute("before")})})),e.trigger("play:hoverChart",t)})).on("blurChart",(function(t){t.getApplicableNodes({syncHover:!0}).forEach((function(e){t.getRoot().getAttribute("paused")||e.updateAttributes({hovering:!1,renderedAt:null})})),e.trigger("play:blurChart",t)}))}},60518:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t;return e.on("moveX",(function(e,t,n){var r=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=!0),e<0?{after:e,before:t}:n&&t>Math.ceil(Date.now()/1e3)?{after:Math.floor(e-t+1),before:0}:{after:Math.floor(e),before:Math.ceil(t)}}(t,n,e.getAttribute("autoPlay"));e.getApplicableNodes({syncPanning:!0}).forEach((function(e){e.updateAttributes(r),e.getAttribute("active")||e.updateAttribute("loaded",!1)}))})).on("moveY",(function(e,n,r){e.updateStaticValueRange([n,r]);var o=e.getAttribute("after");if(o<0){var i=Date.now()/1e3-1;e.moveX(i+o,i)}t&&t(),t=e.onAttributeChange("after",(function(n){n>0||(e.resetStaticValueRange(),t())}))}))}},24667:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("panStart",(function(e){e.getApplicableNodes({syncPanning:!0}).forEach((function(e){return e.updateAttributes({enabledHover:!1,panning:!0})}))})),n=e.on("panEnd",(function(e,t){var n=t[0],r=t[1];e.moveX(n/1e3,r/1e3),e.getApplicableNodes({syncPanning:!0}).forEach((function(e){return e.updateAttributes({enabledHover:!0,panning:!1})}))}));return function(){t(),n()}}},41578:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t,n=function n(){!e.getRoot().getAttribute("paused")&&e.getRoot().getAttribute("after")<0&&e.getRoot().setAttribute("fetchAt",Date.now()),e.getNodes((function(t,n){var r=n.loaded,o=n.active;return"chart"===t.type&&r&&o&&!e.getRoot().getAttribute("paused")})).forEach((function(e){return e.trigger("render")})),t=setTimeout(n,1e3)},r=function(e){clearTimeout(t),t=null,e&&n()},o=function(e,t){var n=void 0===t?{}:t,r=n.now,o=void 0===r?new Date:r,i=n.force,a=void 0!==i&&i,s=e.getAttributes(),u=s.after,l=s.hovering,c=s.active,f=s.loaded,d=s.fetchStartedAt,p=u<0&&!l&&!e.getRoot().getAttribute("paused");if("container"===e.type)return e.updateAttribute("autofetch",p);p=p&&c,e.updateAttribute("autofetch",p);var h=e.lastFetch,g=h[0],v=h[1],m=e.getDateWindow(),y=m[0],b=m[1];if(c&&!p&&(a||f&&(g!==y||v!==b))){if(d&&o-e.getUpdateEvery()<=d)return;e.lastFetch=[y,b],e.trigger("fetch")}},i=function(){e.getRoot().updateAttribute("paused",!e.getRoot().getAttribute("autofetchOnWindowBlur")),r(e.getRoot().getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),e.getNodes().forEach((function(e){return o(e)}))},a=function(){e.getRoot().updateAttribute("paused",!1),r(e.getRoot().getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),e.getNodes().forEach((function(e){return o(e)}))};window.addEventListener("blur",i),window.addEventListener("focus",a);var s=e.on("active",(function(t){r(t.getAttribute("after")<0&&!t.getAttribute("hovering")&&!e.getRoot().getAttribute("paused")),o(t,{force:!0})})).on("play:hoverChart",(function(t){r(!1),e.getRoot().getAttribute("paused")||t.getApplicableNodes({syncHover:!0}).forEach((function(e){return o(e,{now:t.getAttribute("renderedAt")})}))})).on("play:blurChart",(function(t){t.getRoot().getAttribute("paused")||(r(t.getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),t.getApplicableNodes({syncHover:!0}).forEach((function(e){return o(e)})))})).on("moveX",(function(t){r(t.getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),t.getApplicableNodes({syncPanning:!0}).forEach((function(e){e.setAttributes({viewUpdateEvery:0,updateEvery:0}),o(e)}))}));return e.getRoot().onAttributeChange("paused",(function(){return e.getNodes().forEach((function(e){return o(e)}))})),function(){s(),window.removeEventListener("blur",i),window.removeEventListener("focus",a)}}},75211:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightStart",(function(e){"select"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),n=e.on("highlightEnd",(function(e,t){if("select"===e.getAttribute("navigation")&&(e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!0,highlighting:!1})})),null!==t)){var n=t[0],r=t[1];e.moveX(n,r)}}));return function(){t(),n()}}},33792:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightVerticalStart",(function(e){"selectVertical"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),n=e.on("highlightVerticalEnd",(function(e,t){if("selectVertical"===e.getAttribute("navigation")&&(e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!0,highlighting:!1})})),null!==t)){var n=t[0],r=t[1];e.moveY(n,r)}}));return function(){t(),n()}}},21666:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(78775)),o=a(n(99980)),i=a(n(16286));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var u=function(e,t,n,r){var i=o.default[e];if("auto"!==r&&r in i)return["divide",i[r],r];var a=Math.abs(t),s=Math.abs(n),u=a>s?a:s,l=Object.keys(i).reverse().find((function(e){return u>=i[e]}));return l?["divide",i[l],"num"===e?l+" "+r:l]:["original"]},l=function(e,t,n,i){var a=e.getAttributes().desiredUnits;return"original"===a?["original"]:r.default[t]?function(e,t,n,o){var i=r.default[t];if("auto"!==o)return o in i?[(0,r.makeConversableKey)(t,o),void 0,o]:["original"];var a=Object.keys(i),s=a.findIndex((function(t){return i[t].check(e,n)}));if(-1===s)return["original"];var u=a[s];return[(0,r.makeConversableKey)(t,u),void 0,u]}(e,t,i,a):o.default[t]?u(t,n,i,a):"percentage"===t||"percent"===t||"pcent"===t||/%/.test(t||"")?["original"]:u("num",n,i,t)},c=[1e3,100,10,1,.1,.01,.001],f=function(e,t,n,r,o){void 0===o&&(o=5);var a=e.getAttribute(t),s=l(e,a,n,r),u=s[0],f=s[1],d=s[2],p=void 0===d?a:d,h=(0,i.default)(e,u,n,f),g=(0,i.default)(e,u,r,f),v=Math.abs(h===g?h:g-h),m="original"===u||"divide"===u?function(e){var t=c.findIndex((function(t){return e>t})),n=-1===t?c.length-1:t;return 3===n?4:n}(v):-1;return{method:u,divider:f,units:p,fractionDigits:m>o?o:m}};t.default=f},24553:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(21666))&&r.__esModule?r:{default:r};var i=function(e,t,n,r){void 0===t&&(t="units");var i,a=(0,o.default)(e,t,n,r),s=a.method,u=a.divider,l=a.units,c=a.fractionDigits,f=e.getAncestor({syncUnits:!0});if(!f||"original"===s)return e.updateAttributes(((i={})[t+"ConversionMethod"]=s,i[t+"ConversionDivider"]=u,i[t+"Conversion"]=l,i[t+"ConversionFractionDigits"]=c,i));var d=f.getAttribute(t+"ConversionDivider"),p=function(){var n;e.updateAttributes(((n={})[t+"ConversionMethod"]=s,n[t+"ConversionDivider"]=u,n[t+"Conversion"]=l,n[t+"ConversionFractionDigits"]=c,n))};if(u>d)return e.getApplicableNodes({syncUnits:!0}).forEach((function(n){var r;if(n===e)return p();n.updateAttributes(((r={})[t+"ConversionMethod"]=s,r[t+"ConversionDivider"]=u,r[t+"Conversion"]=l,r))}));p()};t.default=function(e){return e.on("yAxisChange",(function(e,t,n){i(e,"units",t,n),i(e,"dbUnits",t,n),e.updateAttributes({min:t,max:n})}))}},54417:function(e,t,n){"use strict";t.__esModule=!0,t.pristineKey=t.default=void 0;var r,o=(r=n(93877))&&r.__esModule?r:{default:r};var i="pristine";t.pristineKey=i;var a=(0,o.default)(i,["aggregationMethod","groupBy","groupByLabel","groupingMethod","groupingTime","chartType","selectedDimensions","selectedLabels","selectedNodes","selectedInstances"]),s={update:a.updatePristine,reset:a.resetPristine};t.default=s},78775:function(e,t,n){"use strict";t.__esModule=!0,t.makeConversableKey=t.default=void 0;var r,o=(r=n(97574))&&r.__esModule?r:{default:r};t.makeConversableKey=function(e,t){return e+"-"+t};var i={check:function(e){return"fahrenheit"===e.getAttribute("temperature")},convert:function(e){return 9*e/5+32}},a=function(e,t,n){void 0===n&&(n="MS");var r=Math.abs(e),i=Math.floor(r/86400),a="DAYS"===t?i+"d":"";r-=86400*i;var s=Math.floor(r/3600),u=(0,o.default)(s);if("DAYS"===t)return a+":"+u;r-=3600*s;var l=Math.floor(r/60),c=(0,o.default)(l);return"HOURS"===t?u+":"+c:(r-=60*l,c+":"+(0,o.default)("MS"===n?r.toFixed(2):Math.round(r)))},s=function(e){return void 0===e&&(e=1),function(t){return(t*e).toFixed(2)}},u={Celsius:{Fahrenheit:i},celsius:{fahrenheit:i},milliseconds:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1},convert:s(1e3)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<1e3},convert:s()},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<6e4},convert:s(.001)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=6e4&&t<36e5},convert:function(e){return a(e/1e3,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=36e5&&t<864e5},convert:function(e){return a(e/1e3,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=864e5},convert:function(e){return a(e/1e3,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e6},convert:function(e){return a(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e6},convert:function(e){return a(e,"DAYS")}}},ms:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1},convert:s(1e3)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<1e3},convert:s()},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<6e4},convert:s(.001)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=6e4&&t<36e5},convert:function(e){return a(e/1e3,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=36e5&&t<864e5},convert:function(e){return a(e/1e3,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=864e5},convert:function(e){return a(e/1e3,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e6},convert:function(e){return a(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e6},convert:function(e){return a(e,"DAYS")}}},seconds:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<.001},convert:s(1e6)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=.001&&t<1},convert:s(1e3)},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<60},convert:s(1)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=60&&t<3600},convert:function(e){return a(e,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=3600&&t<86400},convert:function(e){return a(e,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=86400},convert:function(e){return a(e,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e3},convert:function(e){return a(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e3},convert:function(e){return a(e,"DAYS")}},"dHH:MM:ss":{check:function(){return!1},convert:function(e){return a(e,"DAYS","SECONDS")}}},nanoseconds:{nanoseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1e3},convert:function(e){var t=Math.round(10*e);return t-=10*(e=Math.floor(t/10)),e+"."+(0,o.default)(t)}},microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<1e6},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3);return e-=1e3*t,e=Math.round(e/10),t+"."+(0,o.default)(e)}},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e6&&t<1e9},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3/1e3);return e-=1e3*t*1e3,e=Math.round(e/1e3/10),t+"."+(0,o.default)(e)}},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e9},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3/1e3/1e3);return e-=1e3*t*1e3*1e3,e=Math.round(e/1e3/1e3/10),t+"."+(0,o.default)(e)}}}};t.default=u},16286:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(78775));function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=a(a({},Object.keys(r.default).reduce((function(e,t){return Object.keys(r.default[t]).forEach((function(n){e[(0,r.makeConversableKey)(t,n)]=function(e,o){return r.default[t][n].convert(o,e)}})),e}),{})),{},{original:function(e,t){return t},divide:function(e,t,n){return t/n}});t.default=function(e,t,n,r){return(u[t]||u.original)(e,n,r)}},99980:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default={"packets/s":{pps:1,Kpps:1e3,Mpps:1e6,Gpps:1e9,Tpps:1e12,Ppps:1e15,Epps:1e18},pps:{pps:1,Kpps:1e3,Mpps:1e6,Gpps:1e9,Tpps:1e12,Ppps:1e15,Epps:1e18},"kilobits/s":{"bits/s":.001,"kilobits/s":1,"megabits/s":1e3,"gigabits/s":1e6,"terabits/s":1e9,"petabits/s":1e12,"exabits/s":1e12},"bytes/s":{"bytes/s":1,"kilobytes/s":1024,"megabytes/s":1048576,"gigabytes/s":1073741824,"terabytes/s":1099511627776,"petabits/s":0x4000000000000,"exabits/s":0x1000000000000000},"kilobytes/s":{"bytes/s":1/1024,"kilobytes/s":1,"megabytes/s":1024,"gigabytes/s":1048576,"terabytes/s":1073741824,"petabits/s":1099511627776,"exabits/s":0x4000000000000},"B/s":{"B/s":1,"KiB/s":1024,"MiB/s":1048576,"GiB/s":1073741824,"TiB/s":1099511627776,"PiB/s":0x4000000000000,"EiB/s":0x1000000000000000},"KB/s":{"B/s":1/1024,"KB/s":1,"MB/s":1024,"GB/s":1048576,"TB/s":1073741824,"PB/s":1099511627776,"EB/s":0x4000000000000},"KiB/s":{"B/s":1/1024,"KiB/s":1,"MiB/s":1024,"GiB/s":1048576,"TiB/s":1073741824,"PiB/s":1099511627776,"EiB/s":0x4000000000000},bytes:{bytes:1,kilobytes:1024,megabytes:1048576,gigabytes:1073741824,terabytes:1099511627776,petabytes:0x4000000000000,exabytes:0x1000000000000000},B:{B:1,KiB:1024,MiB:1048576,GiB:1073741824,TiB:1099511627776,PiB:0x4000000000000,EiB:0x1000000000000000},KB:{B:1/1024,KB:1,MB:1024,GB:1048576,TB:1073741824,PB:1099511627776,EB:0x4000000000000},KiB:{B:1/1024,KiB:1,MiB:1024,GiB:1048576,TiB:1073741824,PiB:1099511627776,EiB:0x4000000000000},MB:{B:1/1048576,KB:1/1024,MB:1,GB:1024,TB:1048576,PB:1073741824,EB:1099511627776},MiB:{B:1/1048576,KiB:1/1024,MiB:1,GiB:1024,TiB:1048576,PiB:1073741824,EiB:1099511627776},GB:{B:1/1073741824,KB:1/1048576,MB:1/1024,GB:1,TB:1024,PB:1048576,EB:1073741824},GiB:{B:1/1073741824,KiB:1/1048576,MiB:1/1024,GiB:1,TiB:1024,PiB:1048576,EiB:1073741824},num:{"num (f)":1e-15,"num (p)":1e-12,"num (n)":1e-9,"num (\u03bc)":1e-6,"num (m)":.001,"num (A)":1,"num (k)":1e3,"num (M)":1e6,"num (G)":1e9,"num (T)":1e12,"num (P)":1e15,"num (E)":1e18,"num (Z)":1e21,"num (Y)":1e24}}},82633:function(e,t,n){"use strict";n.r(t);var r,o,i,a=n(60677),s=n(32855),u=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)},c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},f=(0,a.keyframes)(r||(r=u(["\n 0% {\n opacity: 0.5;\n transform: scale(0.8);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n"],["\n 0% {\n opacity: 0.5;\n transform: scale(0.8);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n"]))),d=(0,a.css)(o||(o=u(["\n opacity: 0;\n animation: "," 0.1s forwards;\n animation-delay: 0.01s;\n"],["\n opacity: 0;\n animation: "," 0.1s forwards;\n animation-delay: 0.01s;\n"])),f),p=(0,a.default)(s.default).attrs((function(e){var t=e.zIndex,n=void 0===t?6e4:t,r=c(e,["zIndex"]);return l({zIndex:n,position:"fixed"},r)}))(i||(i=u(["\n left: -99999px;\n\n ","\n ","\n ","\n\n backface-visibility: hidden;\n perspective: 1000;\n transform: translate3d(0, 0, 0);\n will-change: left, top, transform;\n"],["\n left: -99999px;\n\n ","\n ","\n ","\n\n backface-visibility: hidden;\n perspective: 1000;\n transform: translate3d(0, 0, 0);\n will-change: left, top, transform;\n"])),(function(e){return e.animation&&d}),(function(e){return!e.hideShadow&&"box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);"}),(function(e){return!!e.noEvents&&"pointer-events: none;"}));t.default=p},24724:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var r,o=n(67294),i=n(73935),a=n(91183),s=n(86321),u=n(44175),l=n(11557),c=n(88006),f=n(86518),d=n(82633),p=n(54113),h=n(60677),g=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},v=function(){return v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},v.apply(this,arguments)},m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},y=h.default.div(r||(r=g(["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n z-index: 50000;\n ",";\n}\n"],["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n z-index: 50000;\n ",";\n}\n"])),p.Z),b={top:"bottom",left:"left"},w=(0,o.forwardRef)((function(e,t){var n=e.backdrop,r=void 0!==n&&n,p=e.target,h=e.align,g=void 0===h?b:h,w=e.stretch,x=void 0===w?"width":w,_=e.onClickOutside,S=e.onEsc,O=e.children,C=e.canHideTarget,E=void 0===C||C,A=e.keepHorizontal,M=m(e,["backdrop","target","align","stretch","onClickOutside","onEsc","children","canHideTarget","keepHorizontal"]),k=(0,l.default)(t),P=k[0],R=k[1],T=(0,f.default)(p,P,g,x,E,A);(0,o.useLayoutEffect)((function(){T()}),[T]),function(e,t){(0,o.useEffect)((function(){var n,r=function(){var n=(0,c.Z)(e).filter((function(e){return e.scrollHeight>e.clientHeight}));return n.forEach((function(e){return e.addEventListener("scroll",t,{capture:!1,passive:!0})})),function(){return n.forEach((function(e){return e.removeEventListener("scroll",t)}))}};n=r();var o=function(){n(),n=r(),t()};return window.addEventListener("resize",o),function(){n(),window.removeEventListener("resize",o)}}),[e,t])}(p,T),(0,u.Z)(P,_,p),(0,s.Z)(S);var I=(0,a.default)();return i.createPortal(r?o.createElement(o.Fragment,null,o.createElement(d.default,v({ref:R,width:{max:"100%"},column:!0,"data-testid":"drop"},M),O),o.createElement(y,null)):o.createElement(d.default,v({ref:R,width:{max:"100%"},column:!0,"data-testid":"drop"},M),O),I)}))},86518:function(e,t,n){"use strict";n.r(t);var r=n(67294),o=function(e,t,n,r){void 0===r&&(r=!0);var i=function(e,t,n){return"left"===e.left?t.left:"right"===e.left?t.right:"right"===e.right?t.right-n.width:"left"===e.right?t.left-n.width:t.left+t.width/2-n.width/2}(e,t,n),a=Math.max(0,i);return i=Math.min(window.innerWidth-n.width,a),r||a===i?i:o(function(e){return"left"===e.left?{right:"right"}:"right"===e.left?{right:"left"}:"right"===e.right?{left:"left"}:"left"===e.right?{left:"right"}:void 0}(e),t,n)},i=function(e,t,n,r){void 0===r&&(r=!0);var o=function(e,t,n){if("top"===e.top)return t.top;if("bottom"===e.top)return t.bottom;if("bottom"===e.bottom)return t.bottom-n.height;if("top"===e.bottom){var r=t.top-n.height;return r<0&&t.bottom+n.height<window.innerHeight?t.bottom:r}return t.top+t.height/2-n.height/2}(e,t,n),a=Math.max(0,o);return o=Math.min(window.innerHeight-n.height,a),r||a===o?o:i(function(e){return"top"===e.top?{bottom:"bottom"}:"bottom"===e.top?{bottom:"top"}:"bottom"===e.bottom?{top:"top"}:"top"===e.bottom?{top:"bottom"}:void 0}(e),t,n)},a=["top","right","bottom","right","width"];t.default=function(e,t,n,s,u,l){return(0,r.useCallback)((function(){if(t.current){a.forEach((function(e){return t.current.style[e]=""}));var r=e.getBoundingClientRect(),c=t.current.getBoundingClientRect(),f=function(e,t,n){return"align"===e?Math.min(t.width,n.width):"width"===e?Math.max(t.width,n.width):Math.min(n.width,window.innerWidth)}(s,r,c);c.width=f;requestAnimationFrame((function(){var e=o(n,r,c,u),a=i(n,r,c,u);t.current&&(l&&t.current.style.left||(t.current.style.left="".concat(e,"px")),t.current.style.top="".concat(a,"px"),s&&(t.current.style.width="".concat(f,"px")))}))}}),[e,n,s])}},51586:function(e,t,n){"use strict";var r,o=n(67294),i=n(60677),a=n(71059),s=n(32855),u=n(37807),l=n(65588),c=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},f=function(){return f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},f.apply(this,arguments)},d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},p=(0,i.default)(s.default)(r||(r=c(["\n ","\n list-style-type: none;\n"],["\n ","\n list-style-type: none;\n"])),(function(e){return!e.hideShadow&&"box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);"})),h=function(){return 28};t.Z=function(e){var t=e.hideShadow,n=e.itemProps,r=e.items,i=e.onItemClick,c=e.dropTitle,g=e.dropTitlePadding,v=void 0===g?[3,3,0]:g,m=e.Item,y=e.Footer,b=e.value,w=e.hasSearch,x=e.searchMargin,_=void 0===x?[4]:x,S=e.gap,O=void 0===S?0:S,C=e.estimateSize,E=void 0===C?h:C,A=e.close,M=d(e,["hideShadow","itemProps","items","onItemClick","dropTitle","dropTitlePadding","Item","Footer","value","hasSearch","searchMargin","gap","estimateSize","close"]),k=(0,o.useState)(""),P=k[0],R=k[1],T=(0,o.useMemo)((function(){if(!P)return r;var e=P.toLowerCase();return r.filter((function(t){var n=t.label,r=t.value;return!("string"!==typeof n||!n.toLowerCase().includes(e))||!("string"!==typeof r||!r.toLowerCase().includes(e))}))}),[r,P]),I=(0,o.useCallback)((function(e){R(e.target.value)}),[R]),B=(0,o.useRef)(),D=(0,a.MG)({count:T.length,getScrollElement:function(){return B.current},scrollOffsetFn:function(e){return e?e.target.scrollTop-B.current.offsetTop:0},overscan:3,enableSmoothScroll:!1,estimateSize:E});return o.createElement(p,f({as:"ul",role:"listbox",background:"dropdown",hideShadow:t,padding:[0],margin:[1,0],column:!0,tabindex:"-1",width:"auto"},M),c&&o.createElement(s.default,{padding:v},c),w&&o.createElement(l.Z,{margin:_},o.createElement(u.Z,{"data-testid":"dropdown-search",defaultValue:P,placeholder:"Search",onChange:I,size:"tiny"})),o.createElement("div",{ref:B,style:{height:"100%",overflow:"auto"}},o.createElement("div",{style:{minHeight:"".concat(D.getTotalSize(),"px"),width:"100%",position:"relative"}},D.getVirtualItems().map((function(e){return o.createElement("div",{key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),padding:2*O,overflow:"hidden"},"data-index":e.index,ref:D.measureElement},o.createElement(m,{item:T[e.index],index:e.index,itemProps:n,value:b,onItemClick:i,close:A}))})))),y&&o.createElement(y,{close:A}))}},91970:function(e,t,n){"use strict";n.r(t),n.d(t,{ItemContainer:function(){return d}});var r,o=n(67294),i=n(60677),a=n(50757),s=n(32855),u=n(90833),l=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},c=function(){return c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c.apply(this,arguments)},f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=(0,i.default)(s.default).attrs({as:"li",role:"option",padding:[1,4]})(r||(r=l(["\n cursor: ",";\n opacity: ",";\n alignitems: ",";\n pointer-events: ",";\n\n &:hover {\n background-color: ",";\n }\n"],["\n cursor: ",";\n opacity: ",";\n alignitems: ",";\n pointer-events: ",";\n\n &:hover {\n background-color: ",";\n }\n"])),(function(e){var t=e.cursor;return null!==t&&void 0!==t?t:"pointer"}),(function(e){return e.disabled?.4:1}),(function(e){var t=e.alignItems;return null!==t&&void 0!==t?t:"center"}),(function(e){return e.disabled?"none":"auto"}),(function(e){return(0,a.Lq)("borderSecondary")(e)}));t.default=function(e){var t=e.item,n=t.value,r=t.label,i=t.icon,a=t.reverse,s=t.disabled,l=t.onClick,p=f(t,["value","label","icon","reverse","disabled","onClick"]),h=e.value,g=e.onItemClick,v=e.index,m=e.style,y=f(e,["item","value","onItemClick","index","style"]),b=h===n;return o.createElement(d,c({"data-index":v,"aria-selected":b,disabled:s||b,onClick:function(e){l&&l(e),g(n)}},p,y,{style:m}),a&&o.createElement(u.TextSmall,null,r),i,!a&&o.createElement(u.TextSmall,null,r))}},47817:function(e,t,n){"use strict";n.r(t);var r=n(67294),o=n(24724),i=n(88719),a=n(88006),s=n(11557),u=n(62928),l=n(84309),c=n(51586),f=n(91970),d=function(){return d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},d.apply(this,arguments)},p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},h=(0,r.forwardRef)((function(e,t){var n=e.value,h=e.onChange,g=e.onOpen,v=e.onClose,m=e.closeOnClick,y=void 0===m||m,b=e.open,w=void 0!==b&&b,x=e.icon,_=void 0===x?null:x,S=e.label,O=e.caret,C=void 0===O||O,E=e.children,A=e.dropProps,M=e.dropdownProps,k=e.itemProps,P=e.items,R=e.Item,T=void 0===R?f.default:R,I=e.Footer,B=e.Dropdown,D=void 0===B?c.Z:B,j=e.animation,L=e.dropTitle,Z=e.dropTitlePadding,N=e.hasSearch,F=void 0!==N&&N,H=p(e,["value","onChange","onOpen","onClose","closeOnClick","open","icon","label","caret","children","dropProps","dropdownProps","itemProps","items","Item","Footer","Dropdown","animation","dropTitle","dropTitlePadding","hasSearch"]),V=(0,u.Z)(w,{on:g,off:v}),z=V[0],U=V[1],G=V[3],W=(0,s.default)(t),$=W[0],q=W[1],Y=(0,r.useCallback)((function(e){h&&h(e),y&&G()}),[h]),X=(0,r.useCallback)((function(e){$.current===e.target||(0,a.Z)(e.target).some((function(e){return e===$.current}))||G()}),[G]),K=(0,i.Z)(E,q,d({onClick:U,"aria-haspopup":"listbox","aria-expanded":z,open:z},H)),J=(0,r.useMemo)((function(){if(S)return S;if(K)return K;var e=P.find((function(e){return e.value===n}));return null===e||void 0===e?void 0:e.label}),[S,K,P,n]);return r.createElement(r.Fragment,null,K||r.createElement(l.Z,d({ref:q,icon:_,label:J,caret:C,onClick:U,open:z},H)),z&&$.current&&r.createElement(o.Z,d({animation:j,onEsc:G,onClickOutside:X,hideShadow:!0,target:$.current},A),r.createElement(D,d({dropTitle:L,dropTitlePadding:Z,value:n,onItemClick:Y,items:P,itemProps:k,Item:T,Footer:I,hasSearch:F,close:G},M))))}));t.default=h},84309:function(e,t,n){"use strict";var r,o=n(67294),i=n(60677),a=n(32855),s=n(11597),u=n(90833),l=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},c=function(){return c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c.apply(this,arguments)},f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=(0,i.default)(a.default)(r||(r=l(["\n cursor: pointer;\n"],["\n cursor: pointer;\n"]))),p=(0,o.forwardRef)((function(e,t){var n=e.open,r=e.icon,i=e.label,l=e.caret,p=f(e,["open","icon","label","caret"]);return o.createElement(d,c({gap:2,padding:[2,4],justifyContent:"between",alignItems:"center",role:"button",tabindex:"0","aria-haspopup":"listbox","aria-expanded":n,ref:t},p),o.createElement(a.default,{alignItems:"center",gap:2},r,"string"===typeof i?o.createElement(u.Text,null,i):i),!0===l?o.createElement(s.JO,{name:"chevron_down",color:"text",width:"12px",height:"12px",rotate:n?2:null}):l)}));t.Z=p},88006:function(e,t){"use strict";t.Z=function(e){var t=[];for(e=e.parentNode;e;)t.push(e),e=e.parentNode;return t}},88719:function(e,t,n){"use strict";var r=n(67294),o=n(13692),i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)};t.Z=function(e,t,n){return(0,r.useMemo)((function(){if(void 0===e||null===e)return e;if("function"===typeof e)return e(i({ref:function(e){return(0,o.Z)(t,e)}},n));var a=function(e){return 1!==r.Children.count(e)?r.Children.only(e):(0,r.isValidElement)(e)?e:r.createElement("span",null,e)}(e);return(0,r.cloneElement)(a,i(i({},n),{ref:function(e){(0,o.Z)(t,e),(0,o.Z)(a.ref,e)}}))}),[e,n.open])}},54922:function(e,t,n){"use strict";n.r(t),n.d(t,{LoaderIcon:function(){return l}});var r,o=n(67294),i=n(60677),a=n(50757),s=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},u=i.default.svg(r||(r=s(["\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n"],["\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n"])),(0,a.Lq)("bright"),(0,a.Lq)("bright")),l=function(e){var t=e.className;return o.createElement(u,{className:t,viewBox:"0 0 21 17",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{className:"path",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd"},o.createElement("path",{d:"M2,1 C8.25086152,1 11.9367136,1 13.0575562,1 C14.73882,1 19.6834591,2 19.9614325,7.72050108 C20.239406,13.4410022 15.7459591,15.1224845 13.6463763,15.1224845 C12.2466545,15.1224845 10.0279195,15.1224845 6.9901715,15.1224845 L2,1 Z",id:"Path-2",strokeWidth:"2"})))}},46345:function(e,t,n){"use strict";n.d(t,{J:function(){return u}});var r=n(67294),o=n(33981),i=n(10114),a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)},s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},u=(0,r.forwardRef)((function(e,t){var n=e.name,u=e.className,l=e.size,c=e.disabled,f=void 0!==c&&c,d=s(e,["name","className","size","disabled"]),p=o.e[n];if(!p)return null;var h,g=l||((h=n).endsWith("_s")?"small":h.endsWith("_l")?"large":"medium");return r.createElement(i.StyledIcon,a({viewBox:p.viewBox},d,{size:g,className:u,disabled:f,ref:t}),r.createElement("use",{xlinkHref:"#".concat(p.id)}))}))},33981:function(e,t,n){"use strict";n.d(t,{e:function(){return Tf}});var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"add_node",use:"add_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="add_node"><path d="M4.25 6.25h1v-1h-1v1ZM3.375 8.5h11c.759 0 1.375-.616 1.375-1.375v-3.75c0-.759-.616-1.375-1.375-1.375h-11C2.616 2 2 2.616 2 3.375v3.75C2 7.884 2.616 8.5 3.375 8.5Zm.125-5h10.75V7H3.5V3.5Zm1.75 10v-1h-1v1h1ZM3.5 10.75h12.25v-.125c0-.759-.616-1.375-1.375-1.375h-11C2.616 9.25 2 9.866 2 10.625v3.75c0 .759.616 1.375 1.375 1.375H10.5v-1.5h-7v-3.5Zm12.25 3.5V12h-1.5v2.25H12v1.5h2.25V18h1.5v-2.25H18v-1.5h-2.25Z" /></symbol>'}),u=(a().add(s),s),l=new(o())({id:"add_user",use:"add_user-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="add_user"><path d="M11.5 5C11.5 2.519 9.481.5 7 .5A4.505 4.505 0 0 0 2.5 5c0 1.217.49 2.32 1.278 3.13C1.902 8.584.5 10.266.5 12.279V15.5H2v-3.221A2.779 2.779 0 0 1 4.779 9.5H7c2.481 0 4.5-2.019 4.5-4.5ZM7 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm5.75 4.25V10h-1.5v2.25H9v1.5h2.25V16h1.5v-2.25H15v-1.5h-2.25Z" /></symbol>'}),c=(a().add(l),l),f=new(o())({id:"aggregation_avg",use:"aggregation_avg-usage",viewBox:"0 0 16 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12" id="aggregation_avg"><path d="M15.75 4c0-.41-.34-.75-.75-.75H3.81l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L.19 4.75H15c.41 0 .75-.34.75-.75ZM1 7.25c-.41 0-.75.34-.75.75s.34.75.75.75h11.19l-1.72 1.72c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l4.28-4.28H1Z" /></symbol>'}),d=(a().add(f),f),p=new(o())({id:"aggregation_max",use:"aggregation_max-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_max"><path d="M10.03.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06L10.94 4H4.71C2.11 4 0 6.11 0 8.71V16h1.5V8.71c0-1.77 1.44-3.21 3.21-3.21h6.73L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 5 10.03.97Z" /></symbol>'}),h=(a().add(p),p),g=new(o())({id:"aggregation_med",use:"aggregation_med-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_med"><path d="M.75 0H0v1.5h.75V0ZM0 14h.75v-1.5H0V14ZM3.53 0H2.14v1.5h1.39V0ZM2.14 14h1.39v-1.5H2.14V14ZM6.31 0H4.92v1.5h1.39V0Zm5.55 0h-1.39v1.5h1.39V0ZM9.08 0H7.69v1.5h1.39V0ZM0 5.75h14v-1.5H0v1.5ZM4.92 14h1.39v-1.5H4.92V14Zm8.33-14v1.5H14V0h-.75ZM0 9.75h14v-1.5H0v1.5ZM7.69 14h1.39v-1.5H7.69V14Zm5.56 0H14v-1.5h-.75V14Zm-2.78 0h1.39v-1.5h-1.39V14Z" /></symbol>'}),v=(a().add(g),g),m=new(o())({id:"aggregation_min",use:"aggregation_min-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_min"><path d="M10.03 6.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.47 2.47H4.71c-1.77 0-3.21-1.44-3.21-3.21V0H0v7.29C0 9.89 2.11 12 4.71 12h6.23l-1.97 1.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 11l-4.03-4.03Z" /></symbol>'}),y=(a().add(m),m),b=new(o())({id:"aggregation_sum",use:"aggregation_sum-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="aggregation_sum"><path d="M12 3V0H0v3l5 4-5 4v3h12v-3h-1.5v1.5h-9v-.78l4.44-3.55L7.4 7 5.94 5.83 1.5 2.28V1.5h9V3H12Z" /></symbol>'}),w=(a().add(b),b),x=new(o())({id:"aggregation_sum_abs",use:"aggregation_sum_abs-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_sum_abs"><path d="M0 0v6h14V0H0Zm12.5 4.5h-11v-3h11v3ZM0 14h14V8H0v6Zm1.5-4.5h11v3h-11v-3Z" /></symbol>'}),_=(a().add(x),x),S=new(o())({id:"alarm",use:"alarm-usage",viewBox:"0 0 18 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 21" id="alarm"><path d="M17 13.6c-.6-.6-1-1.5-1-2.4V8c0-3.5-2.6-6.4-6-6.9V1c0-.6-.4-1-1-1S8 .4 8 1v.1C4.6 1.6 2 4.5 2 8v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C0 18.9 1.1 20 2.5 20h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9l-1-1Zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H8a2 2 0 0 0 2-2H3.7c.2-.6.3-1.2.3-1.8V8c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4v2.1Z" /></symbol>'}),O=(a().add(S),S),C=new(o())({id:"alarm_c",use:"alarm_c-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_c"><circle cx="21.5" cy="2.5" r="2.5" fill="#FF4136" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9l-1-1Zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4v2.1Z" clip-rule="evenodd" /></symbol>'}),E=(a().add(C),C),A=new(o())({id:"alarm_cw",use:"alarm_cw-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_cw"><circle cx="15.5" cy="2.5" r="2.5" fill="#FF4136" /><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path d="M12.317 1.042A3.487 3.487 0 0 0 12 2.5c0 .541.123 1.054.342 1.511A5.29 5.29 0 0 0 12 4C9.2 4 7 6.2 7 9v3.2c0 .6-.1 1.2-.3 1.8H13a2 2 0 0 1-2 2H5.4l-.4.4v2.1c0 .3.2.5.5.5h13c.3 0 .5-.2.5-.5v-2.1l-.4-.4c-1-1-1.6-2.4-1.6-3.8V9c0-1.134-.36-2.17-.976-3h2.294c.437.909.682 1.926.682 3v3.2c0 .9.4 1.8 1 2.4l1 1v2.9c0 1.4-1.1 2.5-2.5 2.5h-4.8c-.3.6-1 1-1.7 1s-1.4-.4-1.7-1H5.5C4.1 21 3 19.9 3 18.5v-2.9l1-1c.7-.7 1-1.5 1-2.4V9c0-3.5 2.6-6.4 6-6.9V2c0-.6.4-1 1-1 .113 0 .22.014.317.042Z" /></symbol>'}),M=(a().add(A),A),k=new(o())({id:"alarmFilled",use:"alarmFilled-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alarmFilled"><path d="M15.22 9.84A1.988 1.988 0 0 1 14 8V7c0-1.73-.87-3.25-2.2-4.15a5.17 5.17 0 0 0-1.82-.76c0-.03.02-.06.02-.1 0-.55-.45-1-1-1s-1 .45-1 1c0 .04.02.06.02.1-.66.13-1.28.39-1.82.76C4.87 3.75 4 5.27 4 7v1a1.988 1.988 0 0 1-1.22 1.84c-.24.1-.02.16-.02.16H11c0 .83-.67 1.5-1.5 1.5H2v2.35c0 .15.02.29.04.43A2.154 2.154 0 0 0 4.15 16H8c0 .55.45 1 1 1s1-.45 1-1h3.85a2.154 2.154 0 0 0 2.11-1.72c.03-.14.04-.29.04-.43V10c-.28 0-.54-.06-.78-.16Z" /></symbol>'}),P=(a().add(k),k),R=new(o())({id:"alarm_w",use:"alarm_w-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_w"><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9l-1-1Zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4v2.1Z" clip-rule="evenodd" /></symbol>'}),T=(a().add(R),R),I=new(o())({id:"alarm_bell",use:"alarm_bell-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="alarm_bell"><path d="M11.45 8.11A2.61 2.61 0 0 1 10 5.77V5c0-1.97-1.44-3.6-3.31-3.93 0-.02.01-.04.01-.07 0-.39-.31-.7-.7-.7-.39 0-.7.31-.7.7 0 .02.01.05.01.07C3.44 1.4 2 3.03 2 5v.76c0 1-.55 1.9-1.45 2.34L0 8.38v2.82c0 .99.81 1.8 1.8 1.8H5c0 .55.45 1 1 1s1-.45 1-1h3.2c.99 0 1.8-.81 1.8-1.8V8.38l-.55-.27ZM11 11.2c0 .44-.36.8-.8.8H1.8c-.44 0-.8-.36-.8-.8V10h5.5c.55 0 1-.45 1-1H1c1.23-.61 2-1.87 2-3.24V5c0-1.66 1.34-3 3-3s3 1.34 3 3v.76c0 1.37.77 2.62 2 3.24v2.2Z" /></symbol>'}),B=(a().add(I),I),D=new(o())({id:"alarms_new",use:"alarms_new-usage",viewBox:"0 0 22 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 20" id="alarms_new"><path d="m17.5 12 4.4-5-4.4-5H11V0H9v2H0v10h9v6H5v2h10v-2h-4v-6h6.5ZM2 10V4h14.5l2.6 3-2.6 3H2Z" /></symbol>'}),j=(a().add(D),D),L=new(o())({id:"alarm_off",use:"alarm_off-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="alarm_off"><path d="M12.2 7V6c0-.272-.029-.537-.07-.797l-1.412 2.046a3.504 3.504 0 0 0 1.982 2.914v2.688c0 .358-.292.65-.65.65H6.407l-1.035 1.5H6.2a1 1 0 0 0 2 0h3.85a2.15 2.15 0 0 0 2.15-2.15V9a2 2 0 0 1-2-2Zm.426-6.867a.75.75 0 0 0-1.043.191L10.34 2.128A4.913 4.913 0 0 0 8.18 1.099c.004-.034.02-.063.02-.099a1 1 0 0 0-2 0c0 .035.016.064.02.099A4.999 4.999 0 0 0 2.2 6v1a2 2 0 0 1-2 2v3.85c0 .912.57 1.687 1.372 2a.746.746 0 0 0 1.245.827l10-14.5a.75.75 0 0 0-.19-1.044ZM2.496 13.5H2.35a.65.65 0 0 1-.65-.65V10.5h2.865l-2.069 3ZM5.6 9H3.063A3.472 3.472 0 0 0 3.7 7V6c0-1.93 1.57-3.5 3.5-3.5.877 0 1.672.331 2.284.867L5.6 9Z" /></symbol>'}),Z=(a().add(L),L),N=new(o())({id:"anomalies_brain",use:"anomalies_brain-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_brain"><path d="M17 8.99c0-1.008-.31-1.915-.929-2.621v-.101a4.44 4.44 0 0 0-4.439-4.436h-.103a3.97 3.97 0 0 0-1.755-.706c-.826-.202-1.548-.1-1.548-.1-.723.2-1.342.503-1.858.907-2.374 0-4.439 2.016-4.439 4.436v.1A3.818 3.818 0 0 0 1 8.99c0 1.008.31 1.916.929 2.622v.1c0 2.42 1.961 4.437 4.336 4.437h.103a4.352 4.352 0 0 0 1.858.806s.722.101 1.548 0a3.868 3.868 0 0 0 1.858-.806c2.375 0 4.439-2.017 4.439-4.437v-.1c.62-.706.929-1.614.929-2.622Zm-8.774 1.815c-.207-.1-.413-.202-.62-.303l-.825 1.311a6.06 6.06 0 0 0 1.445.504v3.126a2.479 2.479 0 0 1-1.136-.605c-.619-.605-.929-1.31-.929-2.218H4.613c0 .605.103 1.109.31 1.613-.93-.504-1.446-1.412-1.446-2.52v-.303c0-.605.413-1.31.93-1.815.206-.202.412-.302.722-.403.206.403.62.907 1.239 1.21L7.09 9.09c-1.032-.504-.722-1.411-.516-1.714L5.13 6.671c-.103.303-.206.605-.31 1.008-.516.101-1.032.404-1.445.807-.31.303-.516.605-.826.907V8.99c0-.706.31-1.411.723-1.915.516-.605 1.342-.908 2.064-.908V4.655c-.516 0-1.135.1-1.548.302.516-.907 1.445-1.512 2.478-1.512h.206l.413.1.31-.302c.206-.302.619-.504 1.032-.605v8.167Zm6.503.1c-.516.606-1.342.908-2.064.908v1.513c.516 0 1.135-.101 1.548-.303-.516.908-1.445 1.512-2.477 1.512h-.207l-.413-.1-.31.302c-.31.303-.722.504-1.135.605V7.276c.206.101.413.101.62.303l.825-1.311c-.31-.302-.826-.504-1.342-.504V2.638c.413.101.826.303 1.136.605.619.504.929 1.311.929 2.118h1.548c0-.605-.103-1.11-.31-1.614.93.505 1.446 1.412 1.446 2.521v.302c-.104.706-.413 1.412-.93 1.916-.206.202-.412.303-.722.403-.207-.504-.62-.907-1.239-1.21L10.91 8.99c1.032.504.722 1.412.516 1.714l1.445.605c.103-.302.206-.605.31-1.008a6.624 6.624 0 0 0 1.445-.807c.31-.302.62-.605.826-1.008v.403a3.2 3.2 0 0 1-.723 2.017Z" /></symbol>'}),F=(a().add(N),N),H=new(o())({id:"anomalies_lens",use:"anomalies_lens-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_lens"><path fill-rule="evenodd" d="m12.74 11.68 2.79 2.79c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22l-2.79-2.79A5.976 5.976 0 0 1 8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6c0 1.39-.47 2.66-1.26 3.68ZM3.814 9.65A4.51 4.51 0 0 0 8 12.5a4.51 4.51 0 0 0 4.186-2.85h-.456l-.19-.19-.54-.54-.54.54-.561.56-.44-.66L8 7.173 6.54 9.36l-.192.289H3.814Zm-.3-1.3A4.507 4.507 0 0 1 8 3.5a4.507 4.507 0 0 1 4.486 4.85h-.217l-.81-.81L11 7.08l-.46.46-.439.44-1.56-2.34L8 4.827l-.54.811L5.651 8.35H3.514Z" clip-rule="evenodd" /></symbol>'}),V=(a().add(H),H),z=n(88055),U=new(o())({id:"applications_hollow",use:"applications_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="applications_hollow"><path d="M13.75 3.75h-1.99c-.37 0-.72.09-1.04.23a2.578 2.578 0 0 0-2.55-2.23H4.34a2.59 2.59 0 0 0-2.59 2.59v3.83c0 1.13.74 2.09 1.76 2.44-.16.32-.26.68-.26 1.07v1.16c0 1.33 1.08 2.42 2.42 2.42h1.16c.4 0 .77-.11 1.1-.28a2.14 2.14 0 0 0 1.96 1.28h2.71c1.18 0 2.15-.96 2.15-2.15V11.4c0-.28-.06-.55-.16-.8.96-.35 1.66-1.26 1.66-2.35v-2a2.5 2.5 0 0 0-2.5-2.5Zm-6 9.08c0 .51-.41.92-.92.92H5.67c-.51 0-.92-.41-.92-.92v-1.16c0-.51.41-.92.92-.92h1.16c.51 0 .92.41.92.92v1.16Zm.41-3.58H4.34c-.6 0-1.09-.49-1.09-1.09V4.34c0-.6.49-1.09 1.09-1.09h3.83c.6 0 1.09.49 1.09 1.09v3.83c-.01.59-.5 1.08-1.1 1.08Zm5.09 4.85c0 .36-.29.65-.65.65H9.9c-.36 0-.65-.29-.65-.65v-2.7c0-.36.29-.65.65-.65h2.7c.36 0 .65.29.65.65v2.7Zm1.5-5.85c0 .55-.45 1-1 1h-1.99c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h1.99c.55 0 1 .45 1 1v2Z" /></symbol>'}),G=(a().add(U),U),W=new(o())({id:"around_clock",use:"around_clock-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="around_clock"><path d="M8 3.25c-.41 0-.75.34-.75.75v4c0 .2.08.39.22.53l2 2c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L8.75 7.69V4c0-.41-.34-.75-.75-.75Z" /><path d="M8 0C3.58 0 0 3.58 0 8c0 .17.01.33.03.5h1.5c-.01-.17-.03-.33-.03-.5 0-3.58 2.92-6.5 6.5-6.5s6.5 2.92 6.5 6.5-2.92 6.5-6.5 6.5c-2.29 0-4.29-1.2-5.45-3h2.7c.41 0 .75-.34.75-.75S5.66 10 5.25 10H0v5.25c0 .41.34.75.75.75s.75-.34.75-.75v-2.61C2.95 14.67 5.31 16 8 16c4.42 0 8-3.58 8-8s-3.58-8-8-8Z" /></symbol>'}),$=(a().add(W),W),q=new(o())({id:"arrow_down",use:"arrow_down-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="arrow_down"><path d="M9 3v5h2l-3 4-3-4h2V3h2Z" /></symbol>'}),Y=(a().add(q),q),X=new(o())({id:"arrow_w_line_left",use:"arrow_w_line_left-usage",viewBox:"0 0 26 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 24" id="arrow_w_line_left"><path stroke="#8F9EAA" d="M1 6v13" /><path d="M9.3 17.7c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L7.4 13H23c.6 0 1-.4 1-1s-.4-1-1-1H7.4l3.3-3.3c.4-.4.4-1 0-1.4-.2-.2-.5-.3-.7-.3-.2 0-.5.1-.7.3L3.6 12l5.7 5.7Z" /></symbol>'}),K=(a().add(X),X),J=new(o())({id:"arrow_w_line_right",use:"arrow_w_line_right-usage",viewBox:"0 0 24 13",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 13" id="arrow_w_line_right"><path stroke="#8F9EAA" stroke-width="2" d="M23 13V0" /><path d="M14.7 1.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L16.6 6H1c-.6 0-1 .4-1 1s.4 1 1 1h15.6l-3.3 3.3c-.4.4-.4 1 0 1.4.2.2.5.3.7.3.2 0 .5-.1.7-.3L20.4 7l-5.7-5.7Z" /></symbol>'}),Q=(a().add(J),J),ee=new(o())({id:"arrow_left",use:"arrow_left-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_left"><path d="M7.3 17.7c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L5.4 13H21c.6 0 1-.4 1-1s-.4-1-1-1H5.4l3.3-3.3c.4-.4.4-1 0-1.4-.2-.2-.5-.3-.7-.3-.2 0-.5.1-.7.3L1.6 12l5.7 5.7Z" /></symbol>'}),te=(a().add(ee),ee),ne=new(o())({id:"arrow-s_down",use:"arrow-s_down-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_down"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4Z" /></symbol>'}),re=(a().add(ne),ne),oe=new(o())({id:"arrow-s_left",use:"arrow-s_left-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_left"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4Z" /></symbol>'}),ie=(a().add(oe),oe),ae=new(o())({id:"arrows_vertical",use:"arrows_vertical-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="arrows_vertical"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0Zm1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0Z" /></symbol>'}),se=(a().add(ae),ae),ue=new(o())({id:"bookmark",use:"bookmark-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="bookmark"><path d="M9.77 1.5c.4 0 .73.33.73.73V12.5L6.9 9.8 6 9.13l-.9.67-3.6 2.7V2.23c0-.4.33-.73.73-.73h7.54Zm0-1.5H2.23C1 0 0 1 0 2.23V12.5a1.498 1.498 0 0 0 2.4 1.2L6 11l3.6 2.7a1.498 1.498 0 0 0 2.4-1.2V2.23C12 1 11 0 9.77 0Z" /></symbol>'}),le=(a().add(ue),ue),ce=new(o())({id:"bullet_one",use:"bullet_one-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_one"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5Zm1.5 7.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1v-3H4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5v3.5h1c.28 0 .5.22.5.5s-.22.5-.5.5Z" /></symbol>'}),fe=(a().add(ce),ce),de=new(o())({id:"bullet_three",use:"bullet_three-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_three"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5Zm2 6c0 .83-.67 1.5-1.5 1.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4c0 .39-.15.73-.39 1 .24.27.39.61.39 1Z" /></symbol>'}),pe=(a().add(de),de),he=new(o())({id:"bullet_two",use:"bullet_two-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_two"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5Zm1.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5v-.99c0-.83.67-1.5 1.49-1.51H5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4s-.67 1.5-1.5 1.5h-.99c-.28 0-.51.23-.51.51v.49h2.5Z" /></symbol>'}),ge=(a().add(he),he),ve=new(o())({id:"calendar_full",use:"calendar_full-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full"><path d="M13.747 3.518c0-.006.003-.011.003-.018v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1c0 .006.003.011.003.018A2.922 2.922 0 0 0 1.5 6.428v6.644A2.931 2.931 0 0 0 4.428 16h9.144a2.931 2.931 0 0 0 2.928-2.928V6.428a2.922 2.922 0 0 0-2.753-2.91ZM15 13.072c0 .789-.639 1.428-1.428 1.428H4.428A1.428 1.428 0 0 1 3 13.072V8.75h8.5a1.5 1.5 0 0 0 1.5-1.5H3v-.822C3 5.639 3.639 5 4.428 5h9.144C14.361 5 15 5.639 15 6.428v6.644Z" /></symbol>'}),me=(a().add(ve),ve),ye=new(o())({id:"calendar_full_press",use:"calendar_full_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full_press"><path d="M14.07 3h-.32V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-.32C2.86 3 2 3.86 2 4.93V6h11c0 .83-.67 1.5-1.5 1.5H2v6.57C2 15.13 2.86 16 3.93 16h10.15c1.06 0 1.93-.86 1.93-1.93V4.93A1.94 1.94 0 0 0 14.07 3Z" /></symbol>'}),be=(a().add(ye),ye),we=new(o())({id:"chart_added",use:"chart_added-usage",viewBox:"0 0 17 17",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" id="chart_added"><path d="M15.5 10.56V4.38L12 .88l-6 6-2-2-3.5 3.5v3.06c0 2.24 1.82 4.06 4.06 4.06h4.7c-.3-.46-.53-.96-.65-1.5H4.56C3.15 14 2 12.85 2 11.44V9l2-2 2 2 6-6 2 2v4.66c-.32-.1-.65-.16-1-.16-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5c0-.95-.38-1.81-1-2.44Zm-.5 3.19h-1.25V15h-1.5v-1.25H11v-1.5h1.25V11h1.5v1.25H15v1.5Z" /></symbol>'}),xe=(a().add(we),we),_e=new(o())({id:"charts",use:"charts-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="charts"><path d="m15 12.59-6-6-3 3-1.5-1.5-4.5 4.5v2.58C0 17.84 2.17 20 4.83 20h10.33c2.67 0 4.83-2.17 4.83-4.83V7.59l-4.99 5Zm3 2.58c0 1.56-1.27 2.83-2.83 2.83H4.83C3.27 18 2 16.73 2 15.17v-1.75l2.5-2.5 1.5 1.5 3-3 6 6 3-3v2.75ZM2 6.41l2-2 2 2 3.5-3.5 5.5 5.5 2-2 .67.67 1.41-1.41L17 3.59l-2 2L9.5.09 6 3.59l-2-2-4 4v4.17l2-2V6.41Z" /></symbol>'}),Se=(a().add(_e),_e),Oe=new(o())({id:"check",use:"check-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="check"><path fill-rule="evenodd" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2Z" clip-rule="evenodd" /></symbol>'}),Ce=(a().add(Oe),Oe),Ee=new(o())({id:"checkmark_partial_s",use:"checkmark_partial_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_partial_s"><path d="M1 7h14v3H1z" /></symbol>'}),Ae=(a().add(Ee),Ee),Me=n(13563),ke=new(o())({id:"checkmark",use:"checkmark-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="checkmark"><circle cx="8" cy="8" r="8" fill="#42B861" /><path fill="#fff" d="M6.913 11.727 3.718 8.532a.747.747 0 1 1 1.057-1.057L6.83 9.53l4.35-5.018a.749.749 0 1 1 1.133.983l-5.4 6.232Z" /></symbol>'}),Pe=(a().add(ke),ke),Re=new(o())({id:"chevron_double",use:"chevron_double-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="chevron_double"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0Zm1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0Z" /></symbol>'}),Te=(a().add(Re),Re),Ie=n(3728),Be=n(54194),De=n(51289),je=new(o())({id:"chevron_left",use:"chevron_left-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left"><path d="m4.59 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L7.41 9l4.29 4.29a.996.996 0 1 1-1.41 1.41L4.59 9Z" /></symbol>'}),Le=(a().add(je),je),Ze=new(o())({id:"chevron_left_start",use:"chevron_left_start-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left_start"><path d="m8 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L10.82 9l4.29 4.29a.996.996 0 1 1-1.41 1.41L8 9Z" /><path fill-rule="evenodd" d="M4 3a1 1 0 0 1 1 1v10a1 1 0 1 1-2 0V4a1 1 0 0 1 1-1Z" clip-rule="evenodd" /></symbol>'}),Ne=(a().add(Ze),Ze),Fe=new(o())({id:"chevron_left_small",use:"chevron_left_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_left_small"><path d="M4 0c.3 0 .5.1.7.3.4.4.4 1 0 1.4L3.4 3l1.3 1.3c.4.4.4 1 0 1.4-.4.4-1 .4-1.4 0L.6 3 3.3.3c.2-.2.4-.3.7-.3Z" /></symbol>'}),He=(a().add(Fe),Fe),Ve=new(o())({id:"chevron_right",use:"chevron_right-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right"><path d="M13.41 9 7.7 14.71a.996.996 0 1 1-1.41-1.41l4.29-4.29-4.29-4.3A.996.996 0 1 1 7.7 3.3L13.41 9Z" /></symbol>'}),ze=(a().add(Ve),Ve),Ue=new(o())({id:"chevron_right_s",use:"chevron_right_s-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_s"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3Z" /></symbol>'}),Ge=(a().add(Ue),Ue),We=new(o())({id:"chevron_right_end",use:"chevron_right_end-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right_end"><path d="m10 9-5.71 5.71a.996.996 0 1 1-1.41-1.41L7.18 9 2.89 4.71A.996.996 0 1 1 4.3 3.3L10 9Z" /><path fill-rule="evenodd" d="M14 15a1 1 0 0 1-1-1V4a1 1 0 1 1 2 0v10a1 1 0 0 1-1 1Z" clip-rule="evenodd" /></symbol>'}),$e=(a().add(We),We),qe=new(o())({id:"chevron_right_small",use:"chevron_right_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_small"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3Z" /></symbol>'}),Ye=(a().add(qe),qe),Xe=n(22874),Ke=new(o())({id:"class_error",use:"class_error-usage",viewBox:"0 0 21 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 22" id="class_error"><path d="M10.357 12.95a1.7 1.7 0 1 0 0 3.4 1.7 1.7 0 0 0 0-3.4ZM9.88 5.728a1.83 1.83 0 0 0-1.24 2.272l.88 3a.913.913 0 0 0 1.752 0l.88-3A1.828 1.828 0 0 0 9.88 5.727Zm8.172-1.855L12.741.806a4.7 4.7 0 0 0-4.689 0L2.74 3.872a4.702 4.702 0 0 0-2.344 4.06v6.134c0 1.67.898 3.226 2.344 4.06l5.312 3.067a4.682 4.682 0 0 0 2.345.626c.81 0 1.62-.208 2.344-.626l5.311-3.066a4.702 4.702 0 0 0 2.345-4.061V7.933c0-1.67-.898-3.226-2.345-4.061Zm.345 10.193c0 .958-.515 1.85-1.345 2.329l-5.311 3.067a2.694 2.694 0 0 1-2.689 0L3.74 16.394a2.697 2.697 0 0 1-1.344-2.33V7.934c0-.958.515-1.85 1.344-2.33l5.312-3.066a2.69 2.69 0 0 1 1.345-.358c.464 0 .93.119 1.344.358l5.311 3.067a2.697 2.697 0 0 1 1.345 2.329v6.132Z" /></symbol>'}),Je=(a().add(Ke),Ke),Qe=new(o())({id:"class_latency",use:"class_latency-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="class_latency"><path d="M7.736.36c-.36.1-.72.22-1.06.36l.75 1.85c.27-.11.55-.2.84-.28L7.736.36Zm-2.58 3.59-1.31-1.5c-.28.24-.54.5-.79.77l1.46 1.35c-.1.11-.2.22-.29.34.33-.4.69-.76 1.09-1.08-.05.03-.11.08-.16.12Zm-3.92 2.04c-.15.33-.28.68-.39 1.04l1.91.59c.09-.28.2-.56.31-.83l-1.83-.8ZM2.396 10v.25l-1.99.07c.01.38.04.74.1 1.1l1.97-.28c-.05-.37-.08-.75-.08-1.14Zm.89 3.66-1.78.92c.17.33.36.65.57.96l1.66-1.11c.08.12.16.24.25.35-.26-.35-.49-.73-.7-1.12Zm17.09-4.29c-.02-.38-.07-.74-.13-1.1-.01-.04-.01-.08-.02-.12l-.06-.29c-.02-.12-.05-.24-.09-.36-.02-.11-.05-.21-.09-.32-.1-.36-.22-.7-.37-1.04 0-.01 0-.02-.01-.03-.11-.28-.24-.55-.38-.81-.03-.06-.06-.11-.09-.16-.18-.32-.38-.63-.6-.93-.02-.03-.04-.07-.06-.1-.02-.03-.04-.06-.07-.09-.06-.09-.13-.18-.2-.26-.09-.11-.17-.22-.27-.32-.03-.04-.06-.07-.09-.11-.25-.27-.51-.53-.78-.78-.04-.03-.07-.06-.11-.09-.1-.1-.21-.18-.32-.27-.14-.11-.29-.23-.44-.33-.3-.22-.62-.42-.94-.6-.05-.03-.1-.06-.16-.09-.27-.14-.55-.27-.83-.39-.34-.15-.69-.271-1.05-.37-.11-.04-.21-.07-.32-.09-.2-.06-.4-.1-.61-.14-.05-.01-.1-.02-.15-.02-.36-.07-.73-.12-1.11-.14-.2-.01-.42-.02-.63-.02-.16 0-.32 0-.47.01-.38.021-.75.06-1.11.12l.32 1.97c.29-.05.58-.08.88-.09.12-.01.25-.01.38-.01.17 0 .34.01.51.02a7.71 7.71 0 0 1 1.74.3c.29.09.57.19.84.3.01 0 .01.01.02.01.24.09.47.21.7.34.03.01.05.021.08.04.31.18.61.37.89.58.1.08.2.15.3.24.32.26.61.53.88.84.16.18.31.36.45.55.21.28.4.58.58.89.15.26.28.53.39.8.11.27.21.55.3.84.04.14.08.28.11.43.03.13.06.26.08.39.01.01.01.03.01.04.05.29.08.58.1.88.01.17.02.34.02.51a8.714 8.714 0 0 1-.19 1.76c-.02.08-.04.16-.06.23-.03.13-.07.26-.11.38-.15.48-.35.95-.59 1.39 0 .01 0 .01-.01.021 0 0 0 .01-.01.02-.02.03-.04.07-.06.11-.24.41-.51.81-.8 1.17-.07.1-.16.2-.25.29a7.786 7.786 0 0 1-1.6 1.36c-.24.15-.5.3-.77.44-.03.01-.06.03-.09.04-.11.06-.23.11-.35.16-.46.19-.93.34-1.42.45-.22.05-.45.09-.68.12-.29.03-.58.05-.88.06h-.13c-.26 0-.51-.01-.76-.04-.3-.02-.59-.07-.88-.13-.29-.06-.58-.14-.86-.23-.28-.1-.56-.2-.82-.32-.05-.021-.1-.04-.14-.07-.12-.05-.24-.11-.35-.18-.1-.05-.2-.11-.3-.17-.45-.28-.87-.59-1.26-.94.16.16.34.31.52.45l-1.2 1.58c.29.23.59.44.91.63.26.16.54.3.81.43.05.03.11.06.17.08.33.16.68.3 1.04.41.35.12.71.21 1.07.29.36.07.72.13 1.1.17.31.02.63.04.95.04h.16c.37-.01.74-.03 1.1-.08.09-.01.18-.02.26-.04.15-.02.31-.05.45-.07l.39-.09v-.01c.36-.08.71-.18 1.06-.31.01 0 .01-.01.02-.01.3-.11.6-.24.89-.38.04-.01.07-.03.11-.05.34-.17.66-.35.97-.55.07-.05.14-.09.21-.14.12-.08.24-.17.36-.26.11-.07.22-.16.33-.25.28-.24.56-.49.81-.75.1-.09.19-.19.28-.29l.24-.27c.07-.09.15-.18.22-.27.23-.29.44-.59.63-.91.1-.15.2-.31.29-.47.08-.16.16-.31.23-.47.01-.01.01-.02.01-.03h.01a9.82 9.82 0 0 0 .65-1.8c.03-.1.05-.2.07-.3.09-.35.15-.72.19-1.09 0-.03.01-.06.01-.09.03-.34.05-.68.05-1.02 0-.211-.01-.421-.02-.631Zm-16.11 5.77-1.53 1.29c.24.28.5.55.76.8l1.38-1.44c.05.05.1.09.15.13-.29-.26-.56-.54-.8-.84.01.02.02.04.04.06Zm-1.62-3.13-1.93.5c.09.36.2.71.34 1.06l1.86-.72c.03.09.07.18.11.26-.15-.36-.27-.72-.38-1.1Zm-.11-3.53-1.96-.37c-.07.36-.12.72-.15 1.1l1.99.15c0 .06-.01.11-.01.17.02-.36.07-.71.13-1.05Zm1.42-3.22-1.61-1.19c-.22.3-.42.61-.61.93l1.73 1c-.04.06-.07.13-.1.19.18-.32.38-.63.59-.93Zm2.66-2.31-.94-1.77c-.33.18-.65.37-.95.58l1.13 1.65c-.06.04-.12.09-.18.14.3-.22.61-.42.94-.6Z" /></symbol>'}),et=(a().add(Qe),Qe),tt=new(o())({id:"class_utilization",use:"class_utilization-usage",viewBox:"0 0 25 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 19" id="class_utilization"><path d="m5.357 7.55-2.12-2.12c2.22-1.94 5.05-3.17 8.16-3.39v3.01c.33-.03.663-.05 1-.05.337 0 .67.021 1 .05V2.04c3.11.22 5.94 1.45 8.16 3.39l-2.12 2.12c.51.43.98.9 1.41 1.41l2.12-2.12 1.42-1.41c-.44-.51-.91-.98-1.42-1.42A15.925 15.925 0 0 0 12.397 0c-4.05 0-7.75 1.52-10.57 4.01-.51.44-.98.91-1.42 1.42l1.42 1.41 2.12 2.12c.43-.51.9-.98 1.41-1.41Zm9.56 8.57 2.394-9.714a1.017 1.017 0 0 0-1.827-.812L9.878 13.88a2.8 2.8 0 1 0 5.039 2.24Z" /></symbol>'}),nt=(a().add(tt),tt),rt=new(o())({id:"class_workload",use:"class_workload-usage",viewBox:"0 0 22 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21" id="class_workload"><path d="M2.336 21h1v-2h-1v2Zm-1.94 0h.94v-2h-.94v2Zm3.94 0h1v-2h-1v2ZM21.104 5.293 16.397.586 11.69 5.293a.999.999 0 1 0 1.414 1.414l2.293-2.293v9.626c0 .13-.01.26-.02.38-.01.16-.03.32-.06.47-.01.1-.03.2-.06.3 0 .02-.01.03-.01.05a4.894 4.894 0 0 1-.45 1.16c-.06.12-.14.24-.21.36-.16.23-.33.45-.52.65a.8.8 0 0 1-.13.13c-.11.11-.23.22-.35.32-.26.21-.54.4-.83.56-.24.13-.5.24-.76.33-.26.08-.53.15-.81.19l-.25.03c-.17.02-.36.03-.6.03h-2v2h2.1c.23 0 .46-.01.68-.04.03 0 .06 0 .08-.01.06 0 .12-.01.17-.01l.12-.03c.39-.05.77-.14 1.14-.26a6.764 6.764 0 0 0 2.05-1.1.55.55 0 0 0 .09-.07c.08-.06.16-.12.24-.2.19-.15.37-.33.53-.51.26-.28.5-.58.72-.91.1-.16.2-.33.3-.5.05-.11.11-.21.15-.31.04-.07.07-.15.1-.22.16-.35.29-.72.38-1.1.01-.03.01-.05.02-.08.03-.12.05-.24.07-.35.04-.17.06-.35.08-.53v-.03c.01-.03.01-.07.01-.11v-.05c.02-.18.03-.36.03-.54V4.414l2.293 2.293a.997.997 0 0 0 1.413 0 .999.999 0 0 0 0-1.414ZM6.336 21h1v-2h-1v2Zm6.82-20h-5.8C3.516 1 .396 4.12.396 7.96V17h2V7.96c0-2.73 2.23-4.96 4.96-4.96h3.8l2-2Z" /></symbol>'}),ot=(a().add(rt),rt),it=new(o())({id:"clock_hollow",use:"clock_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="clock_hollow"><path d="M12 4c-4.96 0-9 4.04-9 9 0 2.07.71 3.97 1.89 5.5l-1.64 1.84a.998.998 0 0 0 .08 1.41c.19.17.43.25.66.25.28 0 .55-.11.75-.34l1.53-1.72A8.965 8.965 0 0 0 12 22c4.96 0 9-4.04 9-9s-4.04-9-9-9Zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7ZM4.17 6.79C4.06 6.55 4 6.28 4 6c0-1.1.9-2 2-2 .39 0 .75.12 1.06.31.63-.36 1.29-.65 1.99-.87A3.978 3.978 0 0 0 6 2C3.79 2 2 3.79 2 6c0 1.01.39 1.93 1.01 2.63.32-.65.71-1.27 1.16-1.84ZM18 4c1.1 0 2 .9 2 2 0 .28-.06.55-.17.79.45.57.83 1.18 1.15 1.84C21.61 7.93 22 7.01 22 6c0-2.21-1.79-4-4-4-1.23 0-2.32.57-3.05 1.44.7.22 1.36.51 1.99.87.31-.19.67-.31 1.06-.31Zm1.79 15.26c-.42.52-.89 1-1.4 1.43l.86.97c.2.22.47.34.75.34.24 0 .47-.08.66-.25.41-.37.45-1 .08-1.41l-.95-1.08ZM13 12.46V9c0-.55-.45-1-1-1s-1 .45-1 1v4.54l3.45 2.3c.17.11.36.17.55.17.32 0 .64-.16.83-.45.31-.46.18-1.08-.28-1.39L13 12.46Z" /></symbol>'}),at=(a().add(it),it),st=new(o())({id:"clock_5_min",use:"clock_5_min-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2ZM2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76ZM9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7Zm0 12.5A5.51 5.51 0 0 1 3.5 9c0-3.03 2.47-5.5 5.5-5.5s5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5Zm5.24-.14c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06l-.35-.4ZM9 5v4l1.8-3.57A3.959 3.959 0 0 0 9 5Z" /></symbol>'}),ut=(a().add(st),st),lt=new(o())({id:"clock_5_min_press",use:"clock_5_min_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min_press"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2ZM2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76ZM9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7Zm0 7V5c.31 0 .62.04.92.11.3.07.6.18.87.32L9 9Zm5.24 5.36c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06l-.35-.4Z" /></symbol>'}),ct=(a().add(lt),lt),ft=new(o())({id:"close_circle",use:"close_circle-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="close_circle"><path d="M5 0a5 5 0 1 0 .001 10.001A5 5 0 0 0 5 0Zm2.03 5.97a.75.75 0 0 1-1.06 1.061L5 6.061l-.97.97a.748.748 0 0 1-1.06 0 .75.75 0 0 1 0-1.061L3.94 5l-.97-.97a.75.75 0 1 1 1.061-1.061l.97.97.97-.97A.75.75 0 1 1 7.032 4.03l-.97.97.968.97Z" /></symbol>'}),dt=(a().add(ft),ft),pt=new(o())({id:"cluster",use:"cluster-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster"><path d="M11 3.494 4.5 7.247v7.506l6.5 3.753 6.5-3.753V7.247L11 3.494Zm0 1.732 4.227 2.44-1.99 1.161L11 7.537 8.736 8.842l-2.01-1.148L11 5.226Zm-.75 11.115L6 13.887v-4.88l2 1.143v2.582l2.25 1.3v2.31Zm-.75-4.475v-1.732l1.5-.866 1.5.866v1.731l-1.5.866-1.5-.865Zm6.5 2.021-4.227 2.44-.01-2.304-.013.008L14 12.732V10.12l2-1.167v4.935Z" /></symbol>'}),ht=(a().add(pt),pt),gt=new(o())({id:"cluster_spaces",use:"cluster_spaces-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster_spaces"><path d="M12 4v6h6V4h-6Zm4.5 4.5h-3v-3h3v3ZM4 18h6v-6H4v6Zm1.5-4.5h3v3h-3v-3ZM4 10h6V4H4v6Zm8 8h6v-6h-6v6Zm1.5-4.5h3v3h-3v-3Z" /></symbol>'}),vt=(a().add(gt),gt),mt=new(o())({id:"code",use:"code-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="code"><path d="M9.24 4.29a.753.753 0 0 0-.95.47l-2 6a.753.753 0 0 0 .71.99c.31 0 .61-.2.71-.51l2-6c.13-.4-.08-.82-.47-.95ZM5.32 5c-.3 0-.56.17-.69.45L3.5 8l1.14 2.55c.12.27.39.45.69.45.54 0 .91-.56.69-1.05L5.14 8 6 6.05C6.23 5.56 5.86 5 5.32 5Zm5.36 0c-.54 0-.91.56-.69 1.05L10.85 8l-.86 1.95c-.22.5.14 1.05.69 1.05.3 0 .56-.17.69-.45L12.5 8l-1.14-2.55a.728.728 0 0 0-.68-.45Zm1.67-3h-8.7C2.19 2 1 3.19 1 4.65v6.69c0 1.47 1.19 2.65 2.65 2.65h8.69c1.47 0 2.65-1.19 2.65-2.65V4.65A2.64 2.64 0 0 0 12.35 2Zm1.15 9.35c0 .64-.52 1.15-1.15 1.15h-8.7c-.64 0-1.15-.52-1.15-1.15v-6.7c0-.63.52-1.15 1.15-1.15h8.69c.64 0 1.15.52 1.15 1.15v6.7h.01Z" /></symbol>'}),yt=(a().add(mt),mt),bt=n(53685),wt=new(o())({id:"collect",use:"collect-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="collect"><path d="M7.79 11.79a.996.996 0 0 0 0 1.41L12 17.41l4.21-4.21a.996.996 0 1 0-1.41-1.41l-1.8 1.8V2h-2v11.59L9.21 11.8a.999.999 0 0 0-1.42-.01ZM19.64 8H14v3.17l.09-.09a1.983 1.983 0 0 1 2.82 0 1.983 1.983 0 0 1 0 2.82L12 18.83l-4.91-4.91a1.983 1.983 0 0 1 0-2.82 1.983 1.983 0 0 1 2.82 0l.09.09V8H4V6.36c0-.2.16-.36.36-.36H10V4H4.36C3.06 4 2 5.06 2 6.36v12.09A3.55 3.55 0 0 0 5.55 22h12.89a3.55 3.55 0 0 0 3.55-3.55v-8.09A2.35 2.35 0 0 0 19.64 8Z" /></symbol>'}),xt=(a().add(wt),wt),_t=new(o())({id:"community",use:"community-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="community"><path d="M10 5.25H6v1.5h4v-1.5Zm-1.5 3H6v1.5h2.5v-1.5Zm6.48-1.09c.01.11.02.22.02.34 0 .94-.19 1.84-.53 2.66.01.11.03.22.03.34V15H10c-1.33 0-2.5-.59-3.32-1.5H8c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6v6h2.83c1.04 1.79 2.96 3 5.17 3h6v-6c0-1.23-.38-2.38-1.02-3.34ZM3.5 12V7.5C3.5 5.01 5.51 3 8 3c1.42 0 2.67.67 3.49 1.7.08.1.17.2.25.3.48.72.76 1.57.76 2.5 0 2.49-2.01 4.5-4.5 4.5H3.5Z" /></symbol>'}),St=(a().add(_t),_t),Ot=new(o())({id:"connection_to_cloud",use:"connection_to_cloud-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="connection_to_cloud"><path d="M15.05 5.07A4.956 4.956 0 0 1 17 9c0 2.58-1.96 4.68-4.47 4.95l.21-.21c.33-.33.51-.77.51-1.24 0-.072-.008-.136-.017-.206a5.176 5.176 0 0 1-.003-.024c1.32-.5 2.27-1.77 2.27-3.27 0-.9-.35-1.71-.9-2.32-.31-.35-.69-.63-1.11-.83l-.025-.015-.025-.015c-.18-.09-.38-.15-.58-.2l-.037-.014c-.023-.01-.048-.02-.073-.026-.24-.05-.49-.08-.74-.08a.506.506 0 0 1-.065.01c-.023.003-.045.005-.065.01l-.22.03-.41.04c-.72.16-1.36.55-1.84 1.08l-1.11-1c.42-.48.94-.87 1.51-1.15A4.43 4.43 0 0 0 7 3.5C4.52 3.5 2.5 5.52 2.5 8c0 1.7.96 3.16 2.35 3.92a1.739 1.739 0 0 0 .41 1.81l.01.01A5.994 5.994 0 0 1 1 8c0-3.31 2.69-6 6-6 1.79 0 3.39.79 4.48 2.04a4.731 4.731 0 0 1 1.44.06c.02.005.04.008.06.01a3.832 3.832 0 0 1 .81.24 4.322 4.322 0 0 1 1.158.644l.102.076Z" /><path d="m7.119 13.09 1.22-1.22v3.19h1.5v-3.19l1.22 1.22c.29.29 1.06 0 1.06 0s.29-.77 0-1.06L9.089 9l-3.03 3.03c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0Z" /></symbol>'}),Ct=(a().add(Ot),Ot),Et=new(o())({id:"connectivity_status_live",use:"connectivity_status_live-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_live"><circle cx="9" cy="9" r="9" fill="#BFE5C6" /><path fill="#00AB44" d="M6.903 7.351c0-.538.2-1.024.51-1.396l-.73-.645a3.169 3.169 0 0 0-.748 2.041A3.2 3.2 0 0 0 6.684 9.4l.729-.652a2.18 2.18 0 0 1-.51-1.396Zm-.961-2.7L5.206 4A5.246 5.246 0 0 0 4 7.351c0 1.277.458 2.447 1.206 3.351l.736-.652a4.196 4.196 0 0 1-.974-2.699c0-1.03.367-1.975.974-2.7ZM9 8.516c.62 0 1.129-.526 1.129-1.164 0-.638-.51-1.163-1.129-1.163-.62 0-1.129.525-1.129 1.163S8.381 8.515 9 8.515Zm0-1.33c.09 0 .161.073.161.166 0 .186-.322.186-.322 0 0-.093.07-.166.161-.166ZM12.793 4c-.2.173-.412.366-.735.652.607.724.974 1.668.974 2.7 0 1.03-.367 1.974-.974 2.698.323.286.536.473.736.652A5.233 5.233 0 0 0 14 7.352 5.233 5.233 0 0 0 12.793 4Zm-1.477 1.303-.729.645c.316.38.51.864.51 1.396 0 .532-.2 1.024-.51 1.397.336.292.368.325.73.645a3.2 3.2 0 0 0 .748-2.048c0-.785-.29-1.483-.749-2.035Zm-1.348 7.7h-.484V9.844A.495.495 0 0 0 9 9.346a.495.495 0 0 0-.484.498v3.159h-.484c-.535 0-.967.445-.967.997h3.87c0-.552-.432-.997-.967-.997Z" /></symbol>'}),At=(a().add(Et),Et),Mt=new(o())({id:"connectivity_status_offline",use:"connectivity_status_offline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_offline"><circle cx="9" cy="9" r="9" fill="#FFEBEF" /><path fill="#ED7374" d="M9 2.778A6.218 6.218 0 0 0 2.778 9 6.218 6.218 0 0 0 9 15.222 6.218 6.218 0 0 0 15.222 9 6.218 6.218 0 0 0 9 2.778ZM4.111 9A4.898 4.898 0 0 1 9 4.111c1.111 0 2.124.373 2.951.996l-6.835 6.835A4.784 4.784 0 0 1 4.11 9ZM9 13.89a4.878 4.878 0 0 1-2.951-.996l6.835-6.835c.623.818.996 1.84.996 2.95.009 2.685-2.187 4.88-4.88 4.88Z" /></symbol>'}),kt=(a().add(Mt),Mt),Pt=new(o())({id:"connectivity_status_stale",use:"connectivity_status_stale-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_stale"><circle cx="9" cy="9" r="9" fill="#ECEEEF" /><path fill="#8F9EAA" d="M7.03 4H5.47C4.66 4 4 4.66 4 5.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C8.5 4.66 7.84 4 7.03 4ZM5.5 12.53 5.47 5.5H7l.03 7-1.53.03ZM12.53 4h-1.56c-.81 0-1.47.66-1.47 1.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C14 4.66 13.34 4 12.53 4ZM11 12.53l-.03-7.03h1.53l.03 7-1.53.03Z" /></symbol>'}),Rt=(a().add(Pt),Pt),Tt=new(o())({id:"container",use:"container-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="container"><path d="M15.613 5H6.387A2.386 2.386 0 0 0 4 7.387v7.227A2.386 2.386 0 0 0 6.387 17h9.227a2.387 2.387 0 0 0 2.387-2.387V7.387A2.388 2.388 0 0 0 15.613 5Zm.887 9.613a.888.888 0 0 1-.887.887H6.387a.888.888 0 0 1-.887-.887V7.387c0-.489.398-.887.887-.887h9.227c.489 0 .887.398.887.887v7.226H16.5ZM10.249 14h1.5V8.002h-1.5V14Zm-3 0h1.5V8.002h-1.5V14Zm6 0h1.5V8.002h-1.5V14Z" /></symbol>'}),It=(a().add(Tt),Tt),Bt=new(o())({id:"controller_kind",use:"controller_kind-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_kind"><path d="M10.25 15h1.5v-1.5h-1.5V15Zm3.189-11H8.561A4.561 4.561 0 0 0 4 8.561v4.879A4.56 4.56 0 0 0 8.561 18h4.879a4.561 4.561 0 0 0 4.561-4.561V8.561A4.562 4.562 0 0 0 13.439 4Zm3.061 9.439a3.064 3.064 0 0 1-3.061 3.061H8.561A3.064 3.064 0 0 1 5.5 13.439V8.561A3.064 3.064 0 0 1 8.561 5.5h4.879a3.064 3.064 0 0 1 3.06 3.061v4.878ZM13 9.25h-1.25V7h-1.5v2.25H9c-.965 0-1.75.785-1.75 1.75s.785 1.75 1.75 1.75h4c.965 0 1.75-.785 1.75-1.75S13.965 9.25 13 9.25Zm0 2H9a.25.25 0 0 1 0-.5h4a.25.25 0 0 1 0 .5Z" /></symbol>'}),Dt=(a().add(Bt),Bt),jt=new(o())({id:"controller_name",use:"controller_name-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_name"><path d="m12.227 8.228-3.354 3.21a1.622 1.622 0 1 0 2.667 1.666l1.415-4.422a.443.443 0 0 0-.728-.454Zm2.482-3.166A6.996 6.996 0 0 0 5.063 7.29 7.001 7.001 0 0 0 10.993 18 7 7 0 0 0 14.71 5.062Zm.956 8.852a5.473 5.473 0 0 1-4.67 2.586 5.496 5.496 0 0 1-2.909-.836 5.507 5.507 0 0 1-1.75-7.579A5.477 5.477 0 0 1 11.008 5.5c1.026 0 2.031.29 2.907.836a5.508 5.508 0 0 1 1.75 7.579Z" /></symbol>'}),Lt=(a().add(jt),jt),Zt=new(o())({id:"copy",use:"copy-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="copy"><path d="M10.146 14h1.412v-1.5h-1.412V14Zm-2.352 0h1.412v-1.5H7.794V14ZM11 0H0v11h3v.559h1.5V11H11V4.5h.559V3H11V0ZM9.5 9.5h-8v-8h8v8ZM3 14h1.5v-1.5H3V14Zm2.441 0h1.411v-1.5H5.441V14Zm7.059 0H14v-1.5h-1.5V14Zm0-11v1.5H14V3h-1.5Zm0 3.853H14V5.441h-1.5v1.412Zm0 2.353H14V7.794h-1.5v1.412Zm0 2.353H14v-1.412h-1.5v1.412Z" /></symbol>'}),Nt=(a().add(Zt),Zt),Ft=new(o())({id:"correlation",use:"correlation-usage",viewBox:"0 0 28 28",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 28 28" id="correlation"><path fill="#00AB44" d="M21.56 2.333H6.79A4.456 4.456 0 0 0 2.333 6.79v14.77a4.113 4.113 0 0 0 4.107 4.107h15.12a4.113 4.113 0 0 0 4.107-4.107V6.44a4.113 4.113 0 0 0-4.107-4.107ZM19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21h-.012Zm1.995-9.672a1.146 1.146 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645Z" /><path fill="#fff" d="M21.828 11.328a1.145 1.145 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645Z" /><path fill="#fff" d="M19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21h-.012Z" /></symbol>'}),Ht=(a().add(Ft),Ft),Vt=new(o())({id:"correlation_inv",use:"correlation_inv-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="correlation_inv"><path d="M12.99 15.24 17 17.58V22h2v-5.57l-4.02-2.35-1.99 1.16Zm9.22-9.45L18 1.59 13.79 5.8a.996.996 0 1 0 1.41 1.41l1.8-1.8v4.01l-5 2.92-5-2.91V5.41L8.79 7.2c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L6 1.59l-4.21 4.2A.996.996 0 1 0 3.2 7.2L5 5.41v5.16l5.02 2.93L5 16.43V22h2v-4.43l12-7V5.41l1.79 1.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41Z" /></symbol>'}),zt=(a().add(Vt),Vt),Ut=new(o())({id:"cpu",use:"cpu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="cpu"><path d="M11 2 9.22 8H14l-7 8 1.78-6H4l7-8Zm0-1.5c-.42 0-.84.18-1.13.51l-7 8c-.39.44-.48 1.07-.24 1.61s.78.88 1.37.88h2.77l-1.21 4.07a1.505 1.505 0 0 0 1.43 1.93c.42 0 .84-.18 1.13-.51l6.96-7.96a1.498 1.498 0 0 0-1.09-2.53H14h-2.77l1.21-4.07A1.505 1.505 0 0 0 11 .5Z" /></symbol>'}),Gt=(a().add(Ut),Ut),Wt=new(o())({id:"cross_s",use:"cross_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="cross_s"><path fill-rule="evenodd" d="M13 4.538 11.461 3 8 6.462 4.538 3 3 4.538 6.462 8 3 11.461 4.538 13 8 9.538 11.461 13 13 11.461 9.538 8 13 4.538Z" clip-rule="evenodd" /></symbol>'}),$t=(a().add(Wt),Wt),qt=new(o())({id:"data_retention",use:"data_retention-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="data_retention"><path d="m13.78 4.83-.93-3.46a.75.75 0 1 0-1.45.39l.2.76C10.8 2.2 9.93 2 9 2a6.98 6.98 0 0 0-6.04 3.48l1.11 1.11A5.477 5.477 0 0 1 9 3.5c.78 0 1.52.18 2.2.48l-1.26.34c-.2.05-.36.18-.46.35-.1.17-.13.37-.07.57.11.4.52.64.92.53l3.45-.94ZM3.53 9.59l.94.94c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L3 6.94.47 9.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.55-.55c.48 3.39 3.38 6 6.9 6.02l.41-1.52c-.13.01-.25.02-.38.02-2.84 0-5.18-2.15-5.48-4.91Zm10.53 5.11-.75-.2A6.992 6.992 0 0 0 16 9c0-1.27-.34-2.45-.93-3.48l-1.51.4c.59.88.94 1.93.94 3.07 0 1.81-.89 3.41-2.24 4.41l.33-1.25c.05-.2.02-.4-.07-.57-.1-.17-.26-.3-.46-.35a.75.75 0 0 0-.92.53l-.93 3.46 3.46.93a.75.75 0 1 0 .39-1.45Z" /></symbol>'}),Yt=(a().add(qt),qt),Xt=n(94631),Kt=new(o())({id:"dashboard",use:"dashboard-usage",viewBox:"0 0 22 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 18" id="dashboard"><path d="M11.98 11.29 4.27 8.53a.551.551 0 0 0-.54.94l6.29 5.24a1.994 1.994 0 0 0 3.16-.86 2 2 0 0 0-1.2-2.56ZM11 0C4.93 0 0 4.93 0 11c0 2.39.77 4.68 2.22 6.6l.3.4h16.96l.3-.4C21.23 15.67 22 13.39 22 11c0-6.07-4.93-11-11-11Zm7.47 16H3.53C2.53 14.51 2 12.79 2 11c0-4.62 3.51-8.44 8-8.94V3c0 .55.45 1 1 1s1-.45 1-1v-.94c3.21.36 5.9 2.4 7.19 5.23l-.89.29c-.53.17-.81.73-.64 1.26.14.42.53.69.95.69.1 0 .21-.02.31-.05l.9-.29c.12.59.18 1.19.18 1.81 0 1.79-.53 3.51-1.53 5Z" /></symbol>'}),Jt=(a().add(Kt),Kt),Qt=new(o())({id:"dashboard_add",use:"dashboard_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dashboard_add"><path fill-rule="evenodd" d="M8.594 9.357 3.921 7.721a.342.342 0 0 0-.37.101.322.322 0 0 0 .043.456l3.812 3.106a1.233 1.233 0 0 0 1.268.174 3.318 3.318 0 0 1 .423-1.865 1.19 1.19 0 0 0-.503-.336Zm-5.121 2.791h5.294c.11.436.304.837.566 1.185H2.861l-.182-.237a6.36 6.36 0 0 1-1.346-3.91c0-3.598 2.988-6.52 6.667-6.52s6.667 2.922 6.667 6.52c0 .048 0 .096-.002.145a3.347 3.347 0 0 0-1.284-1.033 5.11 5.11 0 0 0-.036-.185l-.239.075A3.325 3.325 0 0 0 12.08 8a.586.586 0 0 1 .346-.842l.539-.172a5.454 5.454 0 0 0-4.358-3.1v.557A.601.601 0 0 1 8 5.037a.601.601 0 0 1-.606-.593v-.557c-2.721.297-4.849 2.56-4.849 5.298 0 1.06.322 2.08.928 2.963Zm5.86-.815a2.666 2.666 0 1 1 5.334 0 2.666 2.666 0 1 1-5.334 0Zm3.334 2V12H14v-1.333h-1.333V9.333h-1.334v1.334H10V12h1.333v1.333h1.334Z" clip-rule="evenodd" /></symbol>'}),en=(a().add(Qt),Qt),tn=new(o())({id:"dashboards",use:"dashboards-usage",viewBox:"0 0 16 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 10" id="dashboards"><path d="M6.27 5.18 3.13 4.6a.436.436 0 0 0-.46.23c-.1.21-.02.47.19.57l2.86 1.42c.07.03.15.06.23.08.47.09.93-.22 1.02-.7a.868.868 0 0 0-.7-1.02ZM10 0c-.7 0-1.37.13-1.99.35C7.38.13 6.71 0 6 0 2.69 0 0 2.69 0 6c0 1.3.42 2.54 1.22 3.6l.3.4h8.95l.3-.4c.8-1.06 1.22-2.31 1.22-3.6 0-1.51-.57-2.89-1.49-3.95C12.47 2.3 14 3.97 14 6c0 .7-.19 1.39-.55 2h-.76c-.21.71-.54 1.38-.98 2h2.77l.3-.4C15.58 8.54 16 7.29 16 6c0-3.31-2.69-6-6-6Zm-.55 8h-6.9C2.19 7.39 2 6.7 2 6c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .7-.19 1.39-.55 2Z" /></symbol>'}),nn=(a().add(tn),tn),rn=new(o())({id:"disk",use:"disk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="disk"><path d="M4 13.5h2V12H4v1.5Zm12.44-3.91-1.82-6.37a2.376 2.376 0 0 0-2.27-1.72h-6.7c-1.05 0-1.98.71-2.27 1.72L1.56 9.59l-.06.2v3.58C1.5 14.82 2.68 16 4.13 16h9.74c1.45 0 2.63-1.18 2.63-2.63V9.79l-.06-.2ZM15 13.37c0 .62-.51 1.13-1.13 1.13H4.13c-.62 0-1.13-.51-1.13-1.13v-2.62h8.5c.83 0 1.5-.67 1.5-1.5H3.21l1.61-5.62c.11-.37.45-.63.83-.63h6.69c.39 0 .73.26.83.63L15 10v3.37Z" /></symbol>'}),on=(a().add(rn),rn),an=new(o())({id:"documentation",use:"documentation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="documentation"><path d="M19.5 16h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5Zm0 2h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5Zm2.5-5.7V5.63c0-2-1.63-3.63-3.63-3.63H7C4.24 2 2 4.24 2 7v11c0 .15.03.3.1.43A4.503 4.503 0 0 0 6.5 22H21c.55 0 1-.45 1-1s-.45-1-1-1H6.5a2.5 2.5 0 0 1 0-5h12.8c1.49 0 2.7-1.21 2.7-2.7Zm-2 0c0 .39-.31.7-.7.7H6.5c-.92 0-1.78.28-2.5.76V7c0-1.65 1.35-3 3-3h11.37c.9 0 1.63.73 1.63 1.63v6.67Z" /></symbol>'}),sn=(a().add(an),an),un=n(7775),ln=new(o())({id:"dots_2x3",use:"dots_2x3-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="dots_2x3"><path d="M1 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Zm0-4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Zm4-2c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1Zm0 6c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1ZM1 0C.4 0 0 .4 0 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Zm4 4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Z" /></symbol>'}),cn=(a().add(ln),ln),fn=new(o())({id:"download",use:"download-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="download"><path d="M18 13v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 16.1V13H0v3.1C0 18.25 1.75 20 3.9 20h12.2c2.15 0 3.9-1.75 3.9-3.9V13h-2Zm-8 1.41 5.21-5.21a.996.996 0 1 0-1.41-1.41l-2.8 2.8V1c0-.55-.45-1-1-1S9 .45 9 1v9.59l-2.79-2.8A.996.996 0 1 0 4.8 9.2l5.2 5.21Z" /></symbol>'}),dn=(a().add(fn),fn),pn=n(69999),hn=new(o())({id:"edit",use:"edit-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="edit"><circle cx="8" cy="8" r="8" fill="#536775" /><path fill="#fff" d="M12.23 3.765a2.638 2.638 0 0 0-2.555-.67c-.455.12-.86.38-1.19.715L7.295 5 9.19 6.895c.39.39 1.025.39 1.415 0L8.705 5l.525-.525c.605-.605 1.68-.605 2.29 0 .305.31.475.72.475 1.15 0 .425-.175.845-.475 1.145l-4.76 4.76-.91.13a2.492 2.492 0 0 0-1.505-1.505l.13-.915L7.65 6.065l-.71-.71-3.41 3.41-.47 3.285c-.04.245.04.495.215.67.145.145.345.23.545.23a.82.82 0 0 0 .115-.01l3.295-.47 4.965-4.965c.33-.33.59-.735.71-1.19.25-.935-.01-1.88-.675-2.55ZM4.09 11.91l.105-.735c.27.14.49.36.63.63l-.735.105Z" /></symbol>'}),gn=(a().add(hn),hn),vn=new(o())({id:"error",use:"error-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="error"><path fill-rule="evenodd" d="M1 21h22L12 2 1 21Zm12-3h-2v-2h2v2Zm0-4h-2v-4h2v4Z" clip-rule="evenodd" /><mask id="error_a" width="22" height="19" x="1" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M1 21h22L12 2 1 21Zm12-3h-2v-2h2v2Zm0-4h-2v-4h2v4Z" clip-rule="evenodd" /></mask></symbol>'}),mn=(a().add(vn),vn),yn=new(o())({id:"exclamation",use:"exclamation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="exclamation"><path d="m11.865 14.354-.656-4.656V6.546h2.176v3.152l-.624 4.656h-.896Zm.432 3.552c-.459 0-.79-.106-.992-.32-.203-.213-.304-.485-.304-.816v-.32c0-.33.101-.602.304-.816.203-.213.533-.32.992-.32.448 0 .773.107.976.32.203.214.304.486.304.816v.32c0 .331-.101.603-.304.816-.203.214-.528.32-.976.32Z" /></symbol>'}),bn=(a().add(yn),yn),wn=n(25271),xn=new(o())({id:"favorites",use:"favorites-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="favorites"><path d="M3 2v11.5l6 3 6-3V2H3Zm7.4 8.43L9 9.69l-1.4.74.27-1.56-1.14-1.11 1.57-.22.7-1.42.7 1.42 1.57.23-1.13 1.11.26 1.55Z" /></symbol>'}),_n=(a().add(xn),xn),Sn=new(o())({id:"feed",use:"feed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="feed"><g clip-path="url(#feed_a)"><path d="M12.12 8C13.16 8 14 7.16 14 6.12V2.88C14 1.84 13.16 1 12.12 1H3.88C2.84 1 2 1.84 2 2.88V10l2-2h8.12ZM3.5 2.88c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.25c0 .21-.17.38-.38.38H3.5V2.88Zm1.79.93a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38Zm2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38ZM14.12 9H5.88C4.84 9 4 9.84 4 10.88v3.25c0 1.04.84 1.88 1.88 1.88H14l2 2v-7.12C16 9.84 15.16 9 14.12 9Zm.38 5.5H5.88a.38.38 0 0 1-.38-.38v-3.25c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.63h-.01Zm-3.21-2.69a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38Zm2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38Z" /></g><defs><clipPath id="feed_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'}),On=(a().add(Sn),Sn),Cn=new(o())({id:"filter",use:"filter-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="filter"><path d="M18.467 4.222H5.533c-.722 0-1.31.59-1.31 1.311v3.134l4.444 4.444v6.667h2.222l4.444-3.334v-3.333l4.445-4.444V5.533c0-.722-.59-1.31-1.311-1.31Zm-.356 3.756-3.956 3.955-.488.49v3.188l-3.334 2.5v-5.689l-.489-.489-3.266-3.266h6.533c.611 0 1.111-.5 1.111-1.111H5.89V5.889H18.11v2.089Z" /></symbol>'}),En=(a().add(Cn),Cn),An=new(o())({id:"filterList",use:"filterList-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="filterList"><path d="m3 5 .5 2h11l.5-2H3Zm4.5 8h3l.5-2H7l.5 2Zm-2-3h7l.5-2H5l.5 2Z" /></symbol>'}),Mn=(a().add(An),An),kn=new(o())({id:"force_play",use:"force_play-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play"><path d="M15.55 7.95 7.5 2.09a.942.942 0 0 0-1.5.77v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .77.88 1.22 1.5.77l8.05-5.85a1.3 1.3 0 0 0 0-2.11Z" /></symbol>'}),Pn=(a().add(kn),kn),Rn=new(o())({id:"force_play_outline",use:"force_play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play_outline"><path d="M15.55 7.95 7.5 2.09a.904.904 0 0 0-.55-.18.95.95 0 0 0-.95.95v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .56.46.95.95.95.19 0 .38-.06.55-.18l8.05-5.85a1.3 1.3 0 0 0 0-2.11Zm-8.05 6.1V3.95L14.45 9 7.5 14.05Z" /></symbol>'}),Tn=(a().add(Rn),Rn),In=new(o())({id:"functions",use:"functions-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="functions"><path d="m7.381 2.268.008-.046-.627-.16c-.623-.16-1.274-.005-1.798.43-.539.445-.893 1.144-.976 1.92l-.079.735h-.473l-.414 1.292h.75L3.497 9l-.412 3.649c-.041.368-.15.72-.316 1.033a2.418 2.418 0 0 1-.604.745L2 15.929l.032.071.474-.309a3.545 3.545 0 0 0 1.176-1.315c.25-.47.412-1 .474-1.554L4.57 9.17l.291-2.73h.95l.385-1.204v-.088H4.998l.061-.57c.044-.414.233-.786.52-1.023a1.07 1.07 0 0 1 .957-.23l.34.088.505-1.144ZM9.186 8.598l1.276 2.144-1.276 2.145.88.75 1.058-1.78 1.06 1.78.88-.75-1.277-2.145 1.276-2.144-.88-.75-1.059 1.78-1.059-1.78-.88.75ZM6.234 9.733c.258-1.79 1.133-3.25 1.863-4.062l.153.198v1.53a6.684 6.684 0 0 0-.952 2.554c-.171 1.187-.004 2.576.952 4.01v1.5l-.16.2c-1.724-1.989-2.121-4.095-1.856-5.93ZM14.062 15.665c.73-.81 1.605-2.272 1.863-4.061.265-1.835-.132-3.941-1.856-5.93l-.16.2v1.5c.955 1.433 1.123 2.823.952 4.01a6.685 6.685 0 0 1-.953 2.554v1.53l.154.197Z" /></symbol>'}),Bn=(a().add(In),In),Dn=new(o())({id:"full_screen",use:"full_screen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="full_screen"><path d="m11.53 7.53 2.97-2.97v2.19a.75.75 0 0 0 1.5 0V3.06l.03-.03L16 3V2h-1l-.03-.03-.03.03h-3.69a.75.75 0 0 0 0 1.5h2.189l-2.97 2.97 1.061 1.06Zm-5.06 2.94L3.5 13.439v-2.19a.75.75 0 0 0-1.5 0v3.69l-.03.03.03.03v1h1l.03.03.03-.03h3.69a.75.75 0 0 0 0-1.5H4.561l2.97-2.97-1.061-1.06Zm.28-6.97a.75.75 0 0 0 0-1.5H3.061l-.03-.03L3 2H2v1l-.03.03.03.03v3.69a.75.75 0 0 0 1.5 0V4.56l2.97 2.97 1.06-1.06L4.561 3.5H6.75ZM16 11.25a.75.75 0 0 0-1.5 0v2.189l-2.97-2.97-1.06 1.06 2.97 2.97h-2.19a.75.75 0 0 0 0 1.5h3.689l.03.03.03-.03h1v-1l.03-.03-.03-.03v-3.69H16Z" /></symbol>'}),jn=(a().add(Dn),Dn),Ln=new(o())({id:"gear",use:"gear-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="gear"><path d="M7.17 7.17a4.004 4.004 0 0 0 0 5.66C7.95 13.61 8.97 14 10 14s2.05-.39 2.83-1.17C13.59 12.07 14 11.07 14 10s-.42-2.07-1.17-2.83a4.008 4.008 0 0 0-5.66 0Zm4.24 4.24c-.78.78-2.05.78-2.83 0a1.983 1.983 0 0 1 0-2.82c.39-.39.9-.58 1.41-.58.51 0 1.02.19 1.41.58.38.38.59.88.59 1.41 0 .53-.2 1.04-.58 1.41Zm8.5-2.71-.13-.99-.86-.49-.45-.26c-.1-.27-.21-.54-.33-.8l.14-.5.26-.96-.6-.79c-.3-.39-.57-.7-.85-.98-.29-.29-.6-.56-.99-.86l-.79-.6-.96.26-.5.14c-.26-.12-.53-.23-.8-.33l-.26-.45-.49-.86-.99-.13c-.48-.06-.9-.09-1.3-.09s-.82.03-1.3.09l-.99.13-.49.86-.26.45c-.27.1-.54.21-.8.33l-.5-.14-.97-.26-.79.6c-.39.3-.7.57-.98.85-.29.29-.56.6-.86.99l-.6.79.26.96.14.5c-.12.26-.23.53-.33.8l-.45.26-.86.49-.13.99c-.06.48-.09.9-.09 1.3s.03.82.09 1.3l.13.99.86.49.45.26c.1.27.21.54.33.8l-.14.5-.26.96.6.79c.3.39.57.7.85.98.29.29.6.56.99.86l.79.6.96-.26.5-.14c.26.12.53.23.8.33l.26.45.49.86.99.13c.48.06.9.09 1.3.09s.82-.03 1.3-.09l.99-.13.49-.86.26-.45c.27-.1.54-.21.8-.33l.5.14.96.26.79-.6c.39-.3.7-.57.98-.85.29-.29.56-.6.86-.99l.6-.79-.26-.96-.14-.5c.12-.26.23-.53.33-.8l.45-.26.86-.49.13-.99c.06-.48.09-.9.09-1.3s-.02-.82-.08-1.3Zm-1.99 2.34-1.14.65c-.17.66-.43 1.3-.79 1.91l.35 1.27c-.21.28-.44.54-.68.79-.25.25-.51.47-.79.68L13.6 16c-.6.36-1.24.62-1.91.79l-.65 1.14c-.34.04-.69.08-1.04.08-.35 0-.7-.03-1.04-.08l-.65-1.14A7.35 7.35 0 0 1 6.4 16l-1.27.35c-.28-.21-.54-.44-.79-.68-.25-.25-.47-.51-.68-.79L4 13.6c-.36-.6-.62-1.24-.79-1.91l-1.14-.65C2.03 10.7 2 10.35 2 10c0-.35.03-.7.08-1.04l1.14-.65c.17-.66.43-1.3.79-1.91l-.35-1.27c.21-.28.44-.54.68-.79.25-.25.51-.47.79-.68L6.4 4c.6-.36 1.24-.62 1.91-.79l.65-1.14c.34-.04.69-.08 1.04-.08.35 0 .7.03 1.04.08l.65 1.14c.66.17 1.3.43 1.91.79l1.27-.35c.28.21.54.44.79.68.25.25.47.51.68.79L16 6.4c.36.6.62 1.24.79 1.91l1.14.65c.04.34.08.69.08 1.04 0 .35-.04.7-.09 1.04Z" /></symbol>'}),Zn=(a().add(Ln),Ln),Nn=new(o())({id:"github",use:"github-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="github"><path fill-rule="evenodd" d="M12 3a9 9 0 0 0-2.845 17.54c.45.083.614-.195.614-.434 0-.213-.007-.78-.012-1.53-2.503.543-3.031-1.207-3.031-1.207-.41-1.04-1-1.317-1-1.317-.817-.558.062-.547.062-.547.903.064 1.378.928 1.378.928.803 1.375 2.107.978 2.62.747.082-.58.314-.977.571-1.202-1.998-.227-4.1-1-4.1-4.448 0-.983.351-1.787.927-2.415-.093-.228-.402-1.144.089-2.382 0 0 .755-.242 2.474.922.718-.2 1.488-.3 2.253-.303a8.63 8.63 0 0 1 2.253.303c1.719-1.164 2.473-.922 2.473-.922.491 1.238.182 2.154.09 2.382.577.628.925 1.432.925 2.415 0 3.457-2.105 4.218-4.11 4.44.323.278.611.828.611 1.667 0 1.203-.01 2.174-.01 2.47 0 .24.162.52.618.432A9 9 0 0 0 12 3Z" clip-rule="evenodd" /></symbol>'}),Fn=(a().add(Nn),Nn),Hn=new(o())({id:"go_to_node",use:"go_to_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="go_to_node"><path d="M13.5 11.57c0 1.07-.86 1.93-1.93 1.93H6.43c-1.07 0-1.93-.86-1.93-1.93V6.43c0-1.07.86-1.93 1.93-1.93h.07C7.33 4.5 8 3.83 8 3H6.43C4.54 3 3 4.54 3 6.43v5.14C3 13.47 4.54 15 6.43 15h5.14c1.9 0 3.43-1.54 3.43-3.43V10c-.83 0-1.5.67-1.5 1.5v.07ZM10 3c-.41 0-.75.34-.75.75s.34.75.75.75h2.44L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l3.47-3.47V8c0 .41.34.75.75.75S15 8.41 15 8V3h-5Z" /></symbol>'}),Vn=(a().add(Hn),Hn),zn=new(o())({id:"google",use:"google-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="google"><path fill-rule="evenodd" d="M20.64 12.205c0-.639-.057-1.252-.164-1.841H12v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 21c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H3.957v2.332A8.997 8.997 0 0 0 12 21Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M6.964 13.71A5.41 5.41 0 0 1 6.682 12c0-.593.102-1.17.282-1.71V7.958H3.957A8.997 8.997 0 0 0 3 12c0 1.452.348 2.827.957 4.042l3.007-2.332Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 6.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C16.463 3.891 14.426 3 12 3a8.997 8.997 0 0 0-8.043 4.958l3.007 2.332C7.672 8.163 9.656 6.58 12 6.58Z" clip-rule="evenodd" /></symbol>'}),Un=(a().add(zn),zn),Gn=new(o())({id:"group_by",use:"group_by-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="group_by"><path d="M3.5 12H2v4h4v-1.5H3.5V12ZM6 12h2v-2H6v2ZM3.5 3.5H6V2H2v4h1.5V3.5ZM12 6h-2v2h2V6Zm2.5 8.5H12V16h4v-4h-1.5v2.5ZM12 2v1.5h2.5V6H16V2h-4Zm0 8h-2v2h2v-2ZM6 8h2V6H6v2Z" /></symbol>'}),Wn=(a().add(Gn),Gn),$n=new(o())({id:"hamburger",use:"hamburger-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="hamburger"><path d="M3 13h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2ZM3 7h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2ZM3 19h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2Z" /></symbol>'}),qn=(a().add($n),$n),Yn=new(o())({id:"help",use:"help-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="help"><path d="M10 12.2c-.72 0-1.3.58-1.3 1.3 0 .72.58 1.3 1.3 1.3.72 0 1.3-.58 1.3-1.3 0-.72-.58-1.3-1.3-1.3ZM13 0c-1.2 0-2.27.54-3 1.38C9.27.54 8.2 0 7 0H0v19h7c1.1 0 2 .9 2 2h2c0-1.1.9-2 2-2h7V0h-7Zm5 17h-5c-1.2 0-2.27.54-3 1.38C9.27 17.54 8.2 17 7 17H2V2h5a2 2 0 0 1 1.72 1h2.56A2 2 0 0 1 13 2h5v15ZM10.88 5.13C8.85 4.54 7 6.06 7 8h2c0-.55.45-1 1-1s1 .45 1 1c0 .37-.21.71-.54.89-.9.47-1.46 1.45-1.46 2.55h2c0-.34.16-.65.39-.77 1.3-.68 1.96-2.21 1.43-3.72a2.915 2.915 0 0 0-1.94-1.82Z" /></symbol>'}),Xn=(a().add(Yn),Yn),Kn=new(o())({id:"hide",use:"hide-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="hide"><path d="M12 11c1.1 0 2-.9 2-2 0-.86-.54-1.58-1.3-1.87l-1.4 3.73c.22.09.45.14.7.14Zm-.47-8.73a.94.94 0 1 0-1.76-.66L9.25 3H6C2.69 3 0 5.69 0 9c0 2.9 2.06 5.32 4.8 5.88l-.32.86a.94.94 0 1 0 1.76.66L11.25 3l.28-.73ZM7.49 7.68A1.98 1.98 0 0 0 6 7c-1.1 0-2 .9-2 2s.9 2 2 2c.09 0 .17-.01.26-.03l-.92 2.46C3.17 13.11 1.5 11.25 1.5 9c0-2.48 2.02-4.5 4.5-4.5h2.69l-1.2 3.18Zm6.61-4.29-.52 1.41A4.49 4.49 0 0 1 16.5 9c0 2.48-2.02 4.5-4.5 4.5h-1.69L9.75 15H12c3.31 0 6-2.69 6-6 0-2.57-1.62-4.76-3.9-5.61Z" /></symbol>'}),Jn=(a().add(Kn),Kn),Qn=new(o())({id:"highlight_area",use:"highlight_area-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="highlight_area"><g clip-path="url(#highlight_area_a)"><path d="M10 13h2v2h1v-2h2v-1h-2v-2h-1v2h-2v1ZM6 13h2v-1H6v1ZM4 13v-1H2v-2H1v2a1 1 0 0 0 1 1h2ZM12 8h1V6h-1v2ZM12 2v2h1V2a1 1 0 0 0-1-1h-2v1h2ZM1 8h1V6H1v2ZM6 2h2V1H6v1ZM2 4V2h2V1H2a1 1 0 0 0-1 1v2h1Z" /></g><defs><clipPath id="highlight_area_a"><path d="M0 0h16v16H0z" /></clipPath></defs></symbol>'}),er=(a().add(Qn),Qn),tr=new(o())({id:"holder",use:"holder-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="holder"><path d="m12 10 3 4H9l3-4Z" /></symbol>'}),nr=(a().add(tr),tr),rr=new(o())({id:"importExport",use:"importExport-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="importExport"><path d="m10.5 7.06 2.03-2.03c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.22.22V2h-1.5v2.19l-.22-.22a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.03 2.03ZM4.53 5.03l.22-.22V7h1.5V4.81l.22.22c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L5.5 1.94 3.47 3.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0ZM12.65 8h-9.3C2.6 8 2 8.6 2 9.35v3.3C2 13.4 2.6 14 3.35 14h9.3c.75 0 1.35-.6 1.35-1.35v-3.3C14 8.6 13.4 8 12.65 8ZM5.5 12H4v-1.5h1.5V12Z" /></symbol>'}),or=(a().add(rr),rr),ir=new(o())({id:"incident_manager",use:"incident_manager-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="incident_manager"><path d="M9 10.3c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2Zm-.13-.68c.41.07.81-.2.88-.62l.36-2c.02-.12.02-.26 0-.39C10 6 9.41 5.59 8.8 5.7c-.61.11-1.02.69-.91 1.3l.36 2c.05.31.29.56.62.62Zm5.95-5.48L10.3 1.53A2.56 2.56 0 0 0 9 1.18c-.46 0-.91.12-1.3.35L3.18 4.14c-.8.46-1.3 1.33-1.3 2.25v5.22c0 .93.5 1.79 1.3 2.25l4.52 2.61c.39.23.84.35 1.3.35.46 0 .91-.12 1.3-.35l4.52-2.61c.8-.46 1.3-1.33 1.3-2.25V6.39c0-.92-.5-1.79-1.3-2.25Zm-.2 7.47c0 .39-.21.76-.55.95l-4.52 2.61a1.084 1.084 0 0 1-1.1 0l-4.52-2.61c-.34-.2-.55-.56-.55-.95V6.39c0-.39.21-.76.55-.95l4.52-2.61a1.084 1.084 0 0 1 1.1 0l4.52 2.61c.34.2.55.56.55.95v5.22Z" /></symbol>'}),ar=(a().add(ir),ir),sr=n(25312),ur=new(o())({id:"information_press",use:"information_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information_press"><path d="M9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714ZM9 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Zm2 6.503c0 .688-.558 1.247-1.247 1.247H7v-.211c0-.698.557-1.26 1.25-1.281V9.5H7A1.5 1.5 0 0 1 8.5 8h1.25v3.25H11v.253Z" /></symbol>'}),lr=(a().add(ur),ur),cr=new(o())({id:"insights",use:"insights-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="insights"><path d="M.5 6.25h1.559a7.037 7.037 0 0 0-.011 1.5H2a1.5 1.5 0 0 1-1.5-1.5ZM1.541 11.145l-.001-.001 1.293-.875c.235.443.511.862.836 1.246l-.046.031a1.5 1.5 0 0 1-2.082-.401ZM2.382 1.614l1.284.869a7.025 7.025 0 0 0-.85 1.236l-.033-.022a1.5 1.5 0 0 1-.401-2.083ZM14.337 2.481l1.281-.867a1.5 1.5 0 0 1-.401 2.083l-.036.025a7.03 7.03 0 0 0-.844-1.241ZM6.119 6.163C5.893 6.969 5 7 5 7a4 4 0 0 1 4-4v1a2.99 2.99 0 0 0-2.881 2.163Z" /><path d="M7.615.645A6.508 6.508 0 0 1 15.5 7c0 2.236-1.15 4.29-3 5.472v1.122A2.91 2.91 0 0 1 9.594 16.5H8.406A2.91 2.91 0 0 1 5.5 13.594v-1.121a6.521 6.521 0 0 1-2.902-6.611c.444-2.586 2.46-4.683 5.017-5.217ZM11 13.594v-2.016A4.998 4.998 0 0 0 9 2c-.353 0-.713.036-1.079.113-1.955.408-3.507 2.033-3.845 4.002-.405 2.358.85 4.463 2.779 5.385H10A1.5 1.5 0 0 1 8.5 13H7v.594C7 14.371 7.63 15 8.406 15h1.188C10.37 15 11 14.371 11 13.594ZM14.377 11.546l-.042-.029a7.01 7.01 0 0 0 .846-1.239l1.279.866-.001.001a1.499 1.499 0 0 1-2.082.401ZM16 7c0-.253-.016-.503-.042-.75H17.5a1.5 1.5 0 0 1-1.5 1.5h-.046A6.91 6.91 0 0 0 16 7Z" /></symbol>'}),fr=(a().add(cr),cr),dr=new(o())({id:"discord",use:"discord-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="discord"><path d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22ZM8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22Z" /><path fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2Zm10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31Z" clip-rule="evenodd" /></symbol>'}),pr=(a().add(dr),dr),hr=new(o())({id:"discord_colored",use:"discord_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="discord_colored"><path fill="#7289DA" d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22ZM8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22Z" /><path fill="#7289DA" fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2Zm10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31Z" clip-rule="evenodd" /></symbol>'}),gr=(a().add(hr),hr),vr=new(o())({id:"email",use:"email-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="email"><path d="M18.177 9.974c-1.233.83-2.487 1.624-3.748 2.407L18.5 16.5l-5.341-3.335c-.258.158-.514.32-.773.478l-.385.235-.386-.235c-.259-.157-.515-.319-.774-.478L5.5 16.5l4.07-4.119a119.756 119.756 0 0 1-3.748-2.406l-1.421-.962A3.167 3.167 0 0 1 4 8.699v7.12A2.18 2.18 0 0 0 6.181 18H17.82A2.18 2.18 0 0 0 20 15.82V8.696a3.03 3.03 0 0 1-.402.315l-1.421.963ZM4.907 8.171l1.517.801c1.889 1.003 3.737 2.074 5.576 3.161 1.84-1.085 3.688-2.156 5.577-3.159l1.517-.801c.4-.17.636-.43.749-.794A2.177 2.177 0 0 0 17.819 6H6.18c-.919 0-1.702.57-2.023 1.375.113.366.349.625.75.796ZM17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3ZM21.5 15.82a3.684 3.684 0 0 1-3.68 3.68H6.181A3.685 3.685 0 0 1 2.5 15.819V8.18A3.684 3.684 0 0 1 6.18 4.5h11.639A3.685 3.685 0 0 1 21.5 8.181v7.639Z" /></symbol>'}),mr=(a().add(vr),vr),yr=new(o())({id:"email_colored",use:"email_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="email_colored"><path fill="#49B5E6" d="M17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3Z" /><path fill="#fff" d="M17.819 4.5H6.18A3.684 3.684 0 0 0 2.5 8.18v7.639A3.685 3.685 0 0 0 6.181 19.5H17.82a3.684 3.684 0 0 0 3.68-3.68V8.181A3.685 3.685 0 0 0 17.819 4.5ZM6.18 6h11.639c.92 0 1.704.572 2.024 1.378-.113.365-.349.624-.749.794l-1.517.801C15.688 9.976 13.84 11.047 12 12.132c-1.839-1.087-3.687-2.158-5.576-3.161L4.907 8.17c-.4-.17-.637-.43-.749-.796A2.177 2.177 0 0 1 6.18 6ZM20 15.82A2.18 2.18 0 0 1 17.82 18H6.181A2.18 2.18 0 0 1 4 15.819v-7.12c.138.129.284.238.401.314l1.421.962c1.233.83 2.487 1.623 3.748 2.406L5.5 16.5l5.341-3.335c.259.158.515.32.774.478l.386.235.385-.235c.259-.158.515-.319.773-.478L18.5 16.5l-4.071-4.119a122.86 122.86 0 0 0 3.748-2.407l1.421-.962c.118-.077.264-.187.402-.315v7.123Z" /></symbol>'}),br=(a().add(yr),yr),wr=new(o())({id:"mattermost",use:"mattermost-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 700" id="mattermost"><path fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292Z" clip-rule="evenodd" /></symbol>'}),xr=(a().add(wr),wr),_r=new(o())({id:"mattermost_colored",use:"mattermost_colored-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 700 700" id="mattermost_colored"><path fill="#0058CC" fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419Z" clip-rule="evenodd" /><path fill="#0058CC" fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292Z" clip-rule="evenodd" /></symbol>'}),Sr=(a().add(_r),_r),Or=new(o())({id:"mobile_app_colored",use:"mobile_app_colored-usage",viewBox:"0 0 25 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24" id="mobile_app_colored"><path fill="#00CD51" d="m22.84 7.67-.09-.09V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H6.68a3.93 3.93 0 0 0-3.93 3.93v14.14A3.93 3.93 0 0 0 6.68 23h7.14a3.93 3.93 0 0 0 3.93-3.93V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22ZM12.25 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h4Zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09h2.58c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06 1.92-.37 3.6 1.09 3.6 2.94v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),Cr=(a().add(Or),Or),Er=new(o())({id:"opsgenie",use:"opsgenie-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="opsgenie"><path d="M7.97 7.825a3.12 3.12 0 1 0 0-6.242 3.12 3.12 0 0 0 0 6.242Z" /><path d="M10.858 12.258a14.347 14.347 0 0 0 2.48-3.266.174.174 0 0 0-.021-.22.175.175 0 0 0-.067-.043l-2.567-1.341c-.116-.059-.233-.03-.262.058a10.441 10.441 0 0 1-2.45 2.887A10.88 10.88 0 0 1 5.55 7.446a.204.204 0 0 0-.262-.058L2.72 8.729a.175.175 0 0 0-.088.263 15.167 15.167 0 0 0 2.45 3.266h.059a13.04 13.04 0 0 0 2.829 2.159 12.482 12.482 0 0 0 2.858-2.13h.03v-.029Z" /></symbol>'}),Ar=(a().add(Er),Er),Mr=new(o())({id:"opsgenie_colored",use:"opsgenie_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="opsgenie_colored"><path fill="url(#opsgenie_colored_a)" d="M8 7.982A3.491 3.491 0 1 0 8 1a3.491 3.491 0 0 0 0 6.982Z" /><path fill="url(#opsgenie_colored_b)" d="M7.702 14.906a16.84 16.84 0 0 1-5.528-5.779.391.391 0 0 1 .17-.542l2.644-1.297a.391.391 0 0 1 .51.156 13.07 13.07 0 0 0 5.676 5.137 16.925 16.925 0 0 1-2.877 2.325.561.561 0 0 1-.595 0Z" /><path fill="#2684FF" d="M8.297 14.906a16.83 16.83 0 0 0 5.529-5.779.391.391 0 0 0-.169-.542l-2.645-1.297a.391.391 0 0 0-.511.156 13.064 13.064 0 0 1-5.675 5.137c.87.879 1.835 1.658 2.876 2.325a.561.561 0 0 0 .595 0Z" /><defs><linearGradient id="opsgenie_colored_a" x1="589.669" x2="589.669" y1="233.534" y2="1669.91" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".82" stop-color="#0052CC" /></linearGradient><linearGradient id="opsgenie_colored_b" x1="486.022" x2="888.127" y1="436.972" y2="1041.77" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".62" stop-color="#0052CC" /></linearGradient></defs></symbol>'}),kr=(a().add(Mr),Mr),Pr=new(o())({id:"pagerduty",use:"pagerduty-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pagerduty"><path d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2ZM9.821 18.667H7.897v-3.59H9.82v3.59h.001Zm3.269-5.257H7.897V5.333h5.192a4.038 4.038 0 0 1 .001 8.077ZM12.577 7H9.821v4.744h2.756a2.372 2.372 0 0 0 0-4.744Z" /></symbol>'}),Rr=(a().add(Pr),Pr),Tr=new(o())({id:"pagerduty_colored",use:"pagerduty_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="pagerduty_colored"><path fill="#04AC38" d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2Z" /><path fill="#fff" d="M13.09 5.333H7.897v8.077h5.192a4.038 4.038 0 0 0 .001-8.077Zm-.513 6.41H9.821V7h2.756a2.372 2.372 0 0 1 0 4.744Zm-4.68 6.924H9.82v-3.59H7.897v3.59Z" /></symbol>'}),Ir=(a().add(Tr),Tr),Br=new(o())({id:"rocketChat",use:"rocketChat-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="rocketChat"><path d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817Zm-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81Zm9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667ZM12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68Zm-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799Z" /></symbol>'}),Dr=(a().add(Br),Br),jr=new(o())({id:"rocketChat_colored",use:"rocketChat_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="rocketChat_colored"><path fill="#fff" d="M1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.432.375.822.2 1.293-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.073-.975 1.617-2.184 1.35-3.668-.248-1.367-1.093-2.312-2.224-3.02C10.935 3.218 8.98 2.94 6.938 3.17c-.372.041-.64 0-.946-.255C4.566 1.718 2.535 1.498 1 2.338Z" /><path fill="#DC2928" d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817Zm-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81Zm9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667ZM12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68Zm-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799Z" /></symbol>'}),Lr=(a().add(jr),jr),Zr=new(o())({id:"integrations",use:"integrations-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="integrations"><path d="M15.03 3.97a.754.754 0 0 0-1.06 0l-1.94 1.94-1.94-1.94 1.94-1.94c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L9.03 2.91 7.5 1.38 4.75 4.13c-.81.8-1.25 1.88-1.25 3.02v.23l-.27.27C2.04 8.83 1.96 10.7 2.94 12l-1.47 1.47c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L4 13.06c.57.44 1.27.68 2 .68.89 0 1.72-.35 2.35-.97l.27-.27h.23c1.14 0 2.21-.44 3.02-1.25l2.75-2.75-1.53-1.53 1.94-1.94c.29-.29.29-.77 0-1.06Zm-4.22 6.22c-.52.52-1.22.81-1.96.81H8l-.71.71a1.8 1.8 0 0 1-1.29.53c-.47 0-.93-.18-1.29-.53l-.42-.42c-.71-.71-.71-1.87 0-2.58l.18-.18.94.94c.59.59 1.54.59 2.12 0L5.02 6.96c.05-.66.32-1.29.79-1.77L7.5 3.5l5 5-1.69 1.69Z" /></symbol>'}),Nr=(a().add(Zr),Zr),Fr=new(o())({id:"slack",use:"slack-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="slack"><path d="M22.483 9.243a2.203 2.203 0 0 0-2.205-2.205 2.203 2.203 0 0 0-2.205 2.205v2.206h2.205c1.22 0 2.205-.986 2.205-2.206Zm-20.966 5.53c0 1.219.986 2.205 2.205 2.205a2.203 2.203 0 0 0 2.205-2.205v-2.206H3.722a2.204 2.204 0 0 0-2.205 2.206Zm7.718-2.205a2.204 2.204 0 0 0-2.205 2.206v5.513c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206v-5.513c0-1.22-.985-2.206-2.205-2.206Zm5.53-1.12a2.204 2.204 0 0 0 2.205-2.205v-5.53c0-1.22-.986-2.205-2.205-2.205a2.204 2.204 0 0 0-2.205 2.206v5.529c0 1.22.985 2.206 2.205 2.206Zm-5.53-4.41h-5.53A2.203 2.203 0 0 0 1.5 9.243c0 1.22.986 2.206 2.205 2.206h5.53a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205Zm11.06 5.53h-5.53a2.204 2.204 0 0 0-2.205 2.206c0 1.219.986 2.205 2.205 2.205h5.53a2.203 2.203 0 0 0 2.205-2.205c0-1.22-.986-2.206-2.205-2.206Zm-5.53 5.513H12.56v2.205c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205ZM9.235 1.508A2.204 2.204 0 0 0 7.03 3.714c0 1.219.986 2.205 2.205 2.205h2.205V3.714c0-1.22-.985-2.206-2.205-2.206Z" /></symbol>'}),Hr=(a().add(Fr),Fr),Vr=new(o())({id:"slack_colored",use:"slack_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="slack_colored"><path fill="#E0225B" d="M5.927 14.773c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h2.205v2.205Zm1.103 0c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205v5.513c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205v-5.513Z" /><path fill="#39C5EF" d="M9.235 5.919A2.203 2.203 0 0 1 7.03 3.714c0-1.22.986-2.205 2.205-2.205s2.205.986 2.205 2.205v2.205H9.235Zm0 1.119c1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-5.53A2.203 2.203 0 0 1 1.5 9.243c0-1.22.986-2.205 2.205-2.205h5.53Z" /><path fill="#2FB77E" d="M18.073 9.243c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-2.205V9.243Zm-1.103 0c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205v-5.53c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205v5.53Z" /><path fill="#EBB22D" d="M14.765 18.08c1.22 0 2.205.987 2.205 2.206 0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205V18.08h2.205Zm0-1.101a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h5.53c1.22 0 2.205.986 2.205 2.205 0 1.22-.986 2.205-2.205 2.205h-5.53Z" /></symbol>'}),zr=(a().add(Vr),Vr),Ur=new(o())({id:"webhook",use:"webhook-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="webhook"><path d="M4.34 17.025c.247 1.325 1.453 2.139 2.69 1.815 1.314-.344 2.012-1.611 1.517-2.912-.18-.472-.068-.773.156-1.144.874-1.444 1.73-2.9 2.624-4.401-2.082-1.044-2.843-2.43-2.34-4.124.443-1.494 1.938-2.472 3.46-2.242.759.114 1.427.426 1.947 1.018.788.898.965 1.947.725 3.115.639.173 1.22.33 1.798.488.766-2.101-.133-4.555-2.094-5.814a5.148 5.148 0 0 0-6.422.674C7.495 4.39 7 5.478 6.885 6.738c-.163 1.782.573 3.22 1.81 4.45l-1.966 3.3c-.182.013-.293.015-.401.03-1.294.184-2.204 1.334-1.987 2.507Zm17.924-2.384c-.866-1.898-3.281-3.67-6.483-2.68l-1.902-3.355c.098-.246.189-.447.259-.655.252-.745.1-1.424-.378-2.028a2.185 2.185 0 0 0-2.474-.675 2.195 2.195 0 0 0-1.401 2.15c.039.964.685 1.824 1.687 1.998.6.104.894.388 1.16.879.789 1.456 1.619 2.89 2.434 4.337 1.965-1.31 3.59-1.268 4.804.096a3.21 3.21 0 0 1 .052 4.19c-1.198 1.415-2.813 1.47-4.658.276L13.898 20.4c1.868 1.865 4.536 2.113 6.645.66 2.052-1.412 2.767-4.127 1.72-6.42ZM15.85 18.3a2.18 2.18 0 0 0 3.068.106c.904-.84.945-2.25.09-3.127-.835-.858-2.265-.94-3.041-.031-.472.552-.955.617-1.581.607-1.603-.025-3.208-.008-4.811-.008.104 2.256-.748 3.662-2.44 3.995-1.656.327-3.181-.518-3.718-2.06-.61-1.752.144-3.153 2.324-4.265l-.494-1.791c-2.375.518-4.157 2.822-3.973 5.415.163 2.289 2.009 4.32 4.267 4.686a5.146 5.146 0 0 0 3.448-.614c1.375-.78 2.173-2.007 2.543-3.527h3.855c.163.22.295.435.463.614Z" /></symbol>'}),Gr=(a().add(Ur),Ur),Wr=new(o())({id:"webhook_colored",use:"webhook_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="webhook_colored"><path fill="#C73A63" d="M11.327 10.383c-.894 1.502-1.75 2.957-2.624 4.4-.224.372-.336.674-.156 1.145.495 1.302-.203 2.568-1.516 2.912-1.238.324-2.444-.49-2.69-1.814-.217-1.173.694-2.323 1.987-2.506.108-.015.219-.017.4-.031l1.968-3.3C7.458 9.96 6.722 8.52 6.885 6.739 7 5.478 7.495 4.39 8.4 3.498a5.148 5.148 0 0 1 6.422-.674c1.96 1.26 2.859 3.714 2.094 5.814l-1.798-.488c.24-1.168.063-2.216-.725-3.115-.52-.593-1.188-.904-1.947-1.02-1.522-.23-3.017.749-3.46 2.243-.504 1.696.258 3.08 2.34 4.125Z" /><path fill="#4B4B4B" d="m13.879 8.606 1.902 3.355c3.202-.991 5.617.782 6.483 2.68 1.046 2.293.33 5.008-1.724 6.422-2.11 1.452-4.776 1.204-6.645-.661l1.466-1.227c1.846 1.195 3.46 1.139 4.658-.276a3.21 3.21 0 0 0-.052-4.19c-1.214-1.364-2.84-1.406-4.804-.096-.815-1.446-1.644-2.88-2.434-4.337-.266-.491-.56-.776-1.16-.88-1.002-.174-1.648-1.034-1.687-1.998a2.194 2.194 0 0 1 1.4-2.15 2.184 2.184 0 0 1 2.475.675c.478.604.63 1.284.378 2.028-.068.208-.158.409-.256.655Z" /><path fill="#4A4A4A" d="M15.383 17.686h-3.855c-.37 1.52-1.168 2.747-2.543 3.527a5.144 5.144 0 0 1-3.448.614c-2.258-.364-4.104-2.397-4.267-4.685-.184-2.593 1.598-4.897 3.974-5.415l.494 1.79c-2.18 1.113-2.934 2.514-2.324 4.266.537 1.542 2.062 2.387 3.718 2.06 1.69-.334 2.544-1.74 2.44-3.995 1.603 0 3.208-.017 4.81.008.627.01 1.11-.055 1.582-.607.777-.908 2.206-.826 3.042.032a2.183 2.183 0 0 1-.091 3.127 2.181 2.181 0 0 1-3.068-.106c-.165-.181-.298-.395-.464-.616Z" /></symbol>'}),$r=(a().add(Wr),Wr),qr=new(o())({id:"ipNetworking",use:"ipNetworking-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworking"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.3-.6-.4h-.1c-.2-.1-.4-.2-.6-.2h-.1c-.2-.1-.4-.1-.7-.1h-.3C9.4 3.8 8 3 6.5 3 4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3ZM10.5 11h-4C4.6 11 3 9.4 3 7.5S4.6 4 6.5 4c1.1 0 2 .5 2.7 1.3-.7.2-1.3.8-1.7 1.4l.9.5c.3-.5.8-.9 1.4-1.1.1 0 .2 0 .2-.1h.5c.2 0 .4 0 .5.1h.1c.1 0 .3.1.4.1h.1c.1.1.3.2.4.3.1.1.3.2.4.4.4.4.6 1 .6 1.6 0 1.4-1.1 2.5-2.5 2.5Z" /></symbol>'}),Yr=(a().add(qr),qr),Xr=new(o())({id:"ipNetworkingPress",use:"ipNetworkingPress-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworkingPress"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.2-.5-.3 0 0-.1 0-.1-.1-.2-.1-.4-.1-.6-.2h-.1c-.3-.1-.5-.1-.8-.1h-.2c-1.2.1-2.2.7-2.7 1.7l-.9-.5c.6-1 1.6-1.8 2.8-2.1-.8-.7-1.8-1.1-3-1.1C4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3Z" /></symbol>'}),Kr=(a().add(Xr),Xr),Jr=new(o())({id:"last_week",use:"last_week-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="last_week"><path d="M10.75 11.083 9 8.75l-1.75 2.333V5.5h-1.5v7.25h2.125L9 11.25l1.125 1.5h2.125V5.5h-1.5v5.583ZM11.562 2H6.438A4.438 4.438 0 0 0 2 6.438v5.124A4.438 4.438 0 0 0 6.438 16h5.124A4.438 4.438 0 0 0 16 11.562V6.438A4.438 4.438 0 0 0 11.562 2Zm2.938 9.562a2.941 2.941 0 0 1-2.938 2.938H6.438A2.941 2.941 0 0 1 3.5 11.562V6.438A2.941 2.941 0 0 1 6.438 3.5h5.124A2.941 2.941 0 0 1 14.5 6.438v5.124Z" /></symbol>'}),Qr=(a().add(Jr),Jr),eo=new(o())({id:"line_chart",use:"line_chart-usage",viewBox:"0 0 15 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" id="line_chart"><path d="M14 3.24A3.24 3.24 0 0 0 10.76 0H3.24A3.24 3.24 0 0 0 0 3.24v7.53a3.24 3.24 0 0 0 3.24 3.24h7.53a3.24 3.24 0 0 0 3.24-3.24V6.48c-.42.32-.94.52-1.5.52v3.76c0 .96-.78 1.74-1.74 1.74H3.24c-.96 0-1.74-.78-1.74-1.74V10C2.33 10 3 9.33 3 8.5c0-.23-.06-.45-.15-.64l1.01-1.01c.2.09.41.15.64.15.36 0 .69-.13.95-.35L8.03 8.2A1.498 1.498 0 0 0 9.5 10a1.498 1.498 0 0 0 1.25-2.33l1.31-1.74c.14.04.29.07.44.07.83 0 1.5-.67 1.5-1.5V3.24Zm-2.75 2.09L9.94 7.07C9.8 7.03 9.65 7 9.5 7c-.36 0-.69.13-.95.35L5.97 5.8A1.498 1.498 0 0 0 4.5 4C3.67 4 3 4.67 3 5.5c0 .23.06.45.15.64L2.14 7.15C1.94 7.06 1.73 7 1.5 7V3.24c0-.96.78-1.74 1.74-1.74h7.53c.88 0 1.6.66 1.71 1.5a1.5 1.5 0 0 0-1.23 2.33Z" /></symbol>'}),to=(a().add(eo),eo),no=new(o())({id:"logo_s",use:"logo_s-usage",viewBox:"0 0 14 13",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 13" id="logo_s"><path fill-rule="evenodd" d="M8.393 12.804H5.64L0 .882h8.007c3.113.007 5.636 2.77 5.637 6.177-.005 3.176-2.353 5.745-5.251 5.745Z" clip-rule="evenodd" /></symbol>'}),ro=(a().add(no),no),oo=n(79962),io=new(o())({id:"magnify",use:"magnify-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="magnify"><path fill-rule="evenodd" d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5Zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14Z" clip-rule="evenodd" /></symbol>'}),ao=(a().add(io),io),so=n(28524),uo=new(o())({id:"metrics_explorer",use:"metrics_explorer-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="metrics_explorer"><path d="M11.5 7.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88Zm.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H4.38c-.48 0-.88-.39-.88-.88V8.14l1.67 1.11 1.02.68 1.5-1.5c.99.96 2.32 1.57 3.81 1.57 2.7 0 4.93-1.94 5.4-4.5A5.497 5.497 0 0 0 11.5 1C8.81 1 6.57 2.94 6.1 5.5c.12.63.34 1.22.65 1.75L6 8 3 6H2v7.62A2.38 2.38 0 0 0 4.38 16h9.24A2.38 2.38 0 0 0 16 13.62V11l-1.17-.73c-.87.24-1.81.27-2.74.06ZM11.5 2.5c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3Z" /></symbol>'}),lo=(a().add(uo),uo),co=new(o())({id:"minimize_s",use:"minimize_s-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="minimize_s"><path d="M14 14H4c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1Z" /></symbol>'}),fo=(a().add(co),co),po=new(o())({id:"mobile_push_notifications",use:"mobile_push_notifications-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications"><path d="M22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22ZM11.5 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h4Zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),ho=(a().add(po),po),go=new(o())({id:"mobile_push_notifications_hollow",use:"mobile_push_notifications_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications_hollow"><path d="M11.5 19h-4c-.28 0-.5.22-.5.5s.22.5.5.5h4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5ZM22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2v5.07c0 1.06-.87 1.93-1.93 1.93H5.93C4.87 21 4 20.13 4 19.07V4.93C4 3.87 4.87 3 5.93 3h7.09c-.63.84-1.03 1.87-1.03 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12.01-.84-.31-1.63-.9-2.22ZM19.88 11h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),vo=(a().add(go),go),mo=new(o())({id:"monitoring",use:"monitoring-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="monitoring"><path d="m13.5 9.38-2 4-.69-1.38H4v1h6.19l1.31 2.62 2-4 .69 1.38H16v-1h-1.19L13.5 9.38ZM15.87 0H4.13C1.85 0 0 1.85 0 4.13v11.74C0 18.15 1.85 20 4.13 20h11.74c2.28 0 4.13-1.85 4.13-4.13V4.13C20 1.85 18.15 0 15.87 0ZM18 15.87c0 1.17-.96 2.13-2.13 2.13H4.13C2.96 18 2 17.04 2 15.87V4.13C2 2.96 2.96 2 4.13 2h11.74C17.04 2 18 2.96 18 4.13v11.74ZM9.5 4.38l-2 4L6.81 7H4v1h2.19l1.31 2.62 2-4L10.19 8H16V7h-5.19L9.5 4.38Z" /></symbol>'}),yo=(a().add(mo),mo),bo=new(o())({id:"more",use:"more-usage",viewBox:"0 0 18 4",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 4" id="more"><path d="M14 2a2 2 0 1 0 4.001-.001A2 2 0 0 0 14 2Zm-3 0a2 2 0 1 0-4.001.001A2 2 0 0 0 11 2ZM4 2a2 2 0 1 0-4.001.001A2 2 0 0 0 4 2Z" /></symbol>'}),wo=(a().add(bo),bo),xo=n(67679),_o=n(36179),So=new(o())({id:"nav_arrow_goto",use:"nav_arrow_goto-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="nav_arrow_goto"><path d="M8.5 7.6c0 .5-.4.9-.9.9H2.4c-.5 0-.9-.4-.9-.9V2.4c0-.5.4-.9.9-.9h.1C3.33 1.5 4 .83 4 0H2.4A2.4 2.4 0 0 0 0 2.4v5.2A2.4 2.4 0 0 0 2.4 10h5.2A2.4 2.4 0 0 0 10 7.6V6c-.83 0-1.5.67-1.5 1.5v.1ZM5.75 0C5.34 0 5 .34 5 .75s.34.75.75.75h1.69L3.97 4.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L8.5 2.56v1.69c0 .41.34.75.75.75s.75-.34.75-.75V0H5.75Z" /></symbol>'}),Oo=(a().add(So),So),Co=n(64036),Eo=new(o())({id:"netdata",use:"netdata-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="netdata"><g clip-path="url(#netdata_a)"><path d="M13.645 4.5H2.526l7.833 15h3.822c4.025 0 7.286-3.232 7.293-7.228-.002-4.288-3.505-7.764-7.83-7.772Zm.536 13.125h-2.685L5.62 6.375h8.021c3.283.006 5.956 2.652 5.957 5.894-.004 2.954-2.435 5.356-5.417 5.356Z" /></g><defs><clipPath id="netdata_a"><path d="M2 5.2c0-1.12 0-1.68.218-2.108a2 2 0 0 1 .874-.874C3.52 2 4.08 2 5.2 2h13.6c1.12 0 1.68 0 2.108.218a2 2 0 0 1 .874.874C22 3.52 22 4.08 22 5.2v13.6c0 1.12 0 1.68-.218 2.108a2 2 0 0 1-.874.874C20.48 22 19.92 22 18.8 22H5.2c-1.12 0-1.68 0-2.108-.218a2 2 0 0 1-.874-.874C2 20.48 2 19.92 2 18.8V5.2Z" /></clipPath></defs></symbol>'}),Ao=(a().add(Eo),Eo),Mo=new(o())({id:"netdataAssistant",use:"netdataAssistant-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="netdataAssistant"><path fill-rule="evenodd" d="M8.302 2.5H1l5.788 11.1h2.8L6.2 6.3h2.102V2.5Zm1.902 11.068L9.45 8.85h1.85L9.06 2.5h.155c3.195.006 5.783 2.578 5.785 5.751-.005 2.758-2.101 5.024-4.796 5.317Z" clip-rule="evenodd" /></symbol>'}),ko=(a().add(Mo),Mo),Po=new(o())({id:"netdata-press",use:"netdata-press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="netdata-press"><path fill-rule="evenodd" d="M10.535 2H.158l7.311 14h3.567c3.756 0 6.8-3.017 6.806-6.746C17.84 5.251 14.571 2.007 10.535 2Z" clip-rule="evenodd" /></symbol>'}),Ro=(a().add(Po),Po),To=new(o())({id:"node",use:"node-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node"><path fill-rule="evenodd" d="M19.111 9H4.89A.885.885 0 0 0 4 9.875v5.25c0 .481.4.875.889.875H19.11a.885.885 0 0 0 .889-.875v-5.25c0-.481-.4-.875-.889-.875ZM7.556 14.25c-.978 0-1.778-.787-1.778-1.75 0-.962.8-1.75 1.778-1.75.977 0 1.777.788 1.777 1.75 0 .963-.8 1.75-1.777 1.75Z" clip-rule="evenodd" /></symbol>'}),Io=(a().add(To),To),Bo=new(o())({id:"node_child",use:"node_child-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_child"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35ZM5 13.5H3.5V12H5v1.5Z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9Zm-.01 5.49 12.99.01v-3.99l-.01-.01H2.51l-.01 3.99Z" /></symbol>'}),Do=(a().add(Bo),Bo),jo=new(o())({id:"node_default_l",use:"node_default_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_default_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#979797" rx="7.5" /><path fill="#35414A" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088Zm1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549Zm-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3l1.276 2.123Zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09Zm10.765 2.254c.37 0 .717.09 1.023.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034Zm-.176 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088Z" clip-rule="evenodd" /></symbol>'}),Lo=(a().add(jo),jo),Zo=new(o())({id:"node_hollow",use:"node_hollow-usage",viewBox:"0 0 22 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 12" id="node_hollow"><path d="M5 7H3v2h2V7Zm14.97-7H2.03C.91 0 0 .91 0 2.03v7.94C0 11.09.91 12 2.03 12h17.94c1.12 0 2.03-.91 2.03-2.03V2.03C22 .91 21.09 0 19.97 0ZM20 9.97c0 .02-.01.03-.03.03L2 9.97 2.03 2 20 2.03v7.94Z" /></symbol>'}),No=(a().add(Zo),Zo),Fo=new(o())({id:"node_import_export",use:"node_import_export-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node_import_export"><path d="m7 11.41 3.71-3.71A.996.996 0 1 0 9.3 6.29L8 7.59V2H6v5.59l-1.29-1.3A.996.996 0 1 0 3.3 7.7L7 11.41Zm7.71-4.7L16 5.41V11h2V5.41l1.29 1.29c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L17 1.59 13.29 5.3a.996.996 0 0 0 0 1.41c.39.39 1.03.39 1.42 0ZM7 17H5v2h2v-2Zm13.61-4H3.39C2.62 13 2 13.62 2 14.39v6.22c0 .77.62 1.39 1.39 1.39h17.22c.77 0 1.39-.62 1.39-1.39v-6.22c0-.77-.62-1.39-1.39-1.39ZM20 20H4v-5h16v5Z" /></symbol>'}),Ho=(a().add(Fo),Fo),Vo=new(o())({id:"node_notification_l",use:"node_notification_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_notification_l"><rect width="39" height="39" x=".5" y=".5" fill="#00AB44" stroke="#00AB4E" rx="7.5" /><path fill="#fff" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088Zm1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549Zm-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3l1.276 2.123Zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09Zm10.765 2.254c.37 0 .717.09 1.023.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034Zm-.176 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088Z" clip-rule="evenodd" /></symbol>'}),zo=(a().add(Vo),Vo),Uo=new(o())({id:"node_parent",use:"node_parent-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_parent"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35ZM5 13.5H3.5V12H5v1.5Z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9Zm-.01 5.49 12.99.01v-3.99l-.01-.01H2.51l-.01 3.99Z" /></symbol>'}),Go=(a().add(Uo),Uo),Wo=new(o())({id:"node_selected_l",use:"node_selected_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_selected_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#00AB4E" rx="7.5" /><path fill="#00AB44" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088Zm1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549Zm-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3l1.276 2.123Zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09Zm10.765 2.254c.37 0 .717.09 1.023.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034Zm-.176 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088Z" clip-rule="evenodd" /></symbol>'}),$o=(a().add(Wo),Wo),qo=new(o())({id:"nodes",use:"nodes-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="nodes"><path d="M15.111 8.889H.89c-.489 0-.889.4-.889.889v5.333C0 15.6.4 16 .889 16H15.11c.489 0 .889-.4.889-.889V9.778c0-.49-.4-.89-.889-.89ZM3.556 14.222c-.978 0-1.778-.8-1.778-1.778 0-.977.8-1.777 1.778-1.777.977 0 1.777.8 1.777 1.777 0 .978-.8 1.778-1.777 1.778ZM15.11 0H.89C.4 0 0 .4 0 .889v5.333c0 .49.4.89.889.89H15.11c.489 0 .889-.4.889-.89V.89C16 .4 15.6 0 15.111 0ZM3.556 5.333c-.978 0-1.778-.8-1.778-1.777 0-.978.8-1.778 1.778-1.778.977 0 1.777.8 1.777 1.778 0 .977-.8 1.777-1.777 1.777Z" /></symbol>'}),Yo=(a().add(qo),qo),Xo=new(o())({id:"nodes_hollow",use:"nodes_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nodes_hollow"><path d="M2.5 15.5H4V14H2.5v1.5ZM15.88 0H2.12C.95 0 0 .95 0 2.12v4.26C0 7.55.95 8.5 2.12 8.5h13.76c1.17 0 2.12-.95 2.12-2.12V2.12C18 .95 17.05 0 15.88 0Zm.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62V2.12c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62v4.26ZM2.5 6H4V4.5H2.5V6Zm13.38 3.5H2.12C.95 9.5 0 10.45 0 11.62v4.26C0 17.05.95 18 2.12 18h13.76c1.17 0 2.12-.95 2.12-2.12v-4.26c0-1.17-.95-2.12-2.12-2.12Zm.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62v-4.26c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62v4.26Z" /></symbol>'}),Ko=(a().add(Xo),Xo),Jo=new(o())({id:"none_selected",use:"none_selected-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="none_selected"><path d="M8 .5C3.86.5.5 3.86.5 8c0 4.14 3.36 7.5 7.5 7.5 4.14 0 7.5-3.36 7.5-7.5C15.5 3.86 12.14.5 8 .5ZM2 8c0-3.31 2.69-6 6-6 1.39 0 2.66.47 3.67 1.26l-8.41 8.41A5.926 5.926 0 0 1 2 8Zm6 6c-1.39 0-2.66-.47-3.67-1.26l8.41-8.41A5.926 5.926 0 0 1 14 8c0 3.31-2.69 6-6 6Z" /></symbol>'}),Qo=(a().add(Jo),Jo),ei=new(o())({id:"notification_shortcut_enabled",use:"notification_shortcut_enabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_enabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8l7 4.38Zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78ZM5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7Z" /><path fill="#96D4A2" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5V7Z" /></symbol>'}),ti=(a().add(ei),ei),ni=new(o())({id:"notification_shortcut_disabled",use:"notification_shortcut_disabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_disabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8l7 4.38Zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78ZM5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7Z" /><path fill="#F59B9B" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5V7Z" /></symbol>'}),ri=(a().add(ni),ni),oi=new(o())({id:"os",use:"os-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os"><path d="M6.75 6C5.78 6 5 6.78 5 7.75v2.5c0 .97.78 1.75 1.75 1.75s1.75-.78 1.75-1.75v-2.5C8.5 6.78 7.72 6 6.75 6ZM7 10.25c0 .14-.11.25-.25.25s-.25-.11-.25-.25v-2.5c0-.14.11-.25.25-.25s.25.11.25.25v2.5ZM11.25 6c-.96 0-1.75.79-1.75 1.75v.03c0 .57.28 1.11.75 1.43l1.15.8c.07.05.11.12.11.21v.03c0 .14-.11.25-.25.25s-.25-.11-.25-.25V9.9H9.5v.35c0 .96.79 1.75 1.75 1.75S13 11.21 13 10.25v-.03c0-.57-.28-1.11-.75-1.43l-1.15-.8a.248.248 0 0 1-.11-.21v-.03c0-.14.11-.25.25-.25s.25.11.25.25v.35h1.5v-.35C13 6.79 12.21 6 11.25 6Zm.52-4H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2Zm2.73 9.77c0 1.5-1.22 2.73-2.73 2.73H6.23c-1.5 0-2.73-1.22-2.73-2.73V6.23c0-1.51 1.22-2.73 2.73-2.73h5.54c1.5 0 2.73 1.22 2.73 2.73v5.54Z" /></symbol>'}),ii=(a().add(oi),oi),ai=new(o())({id:"alpine_linux",use:"alpine_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alpine_linux"><path d="M13.04 2H4.96L.92 9l4.04 7h8.08l4.04-7-4.04-7Zm-6.41 8.78c-.44-.02-.84-.21-1.13-.5l1.13-1.1v1.6Zm3.32-.49L7.52 7.93l-2.44 2.36c-.62.6-1.61.6-2.23 0l4.67-4.52 4.67 4.52c-.62.6-1.61.6-2.24 0Zm2.85.04-2.02-1.96-.17.17-1.13-1.08 1.29-1.25 4.26 4.12c-.62.61-1.61.61-2.23 0Z" /></symbol>'}),si=(a().add(ai),ai),ui=new(o())({id:"amazon_linux",use:"amazon_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="amazon_linux"><path d="m15.95 11.99-.01.01c-.23.19-.53.34-.83.46-.31.12-.63.21-.95.3-.65.16-1.33.28-2 .36-1.35.17-2.72.22-4.08.16-1.36-.06-2.71-.24-4.02-.6-1.3-.35-2.55-.89-3.65-1.71a.242.242 0 0 0-.31.01c-.1.09-.12.25-.03.35.48.56 1.06 1.03 1.68 1.42.62.4 1.29.71 1.98.96 1.38.5 2.83.76 4.28.84 1.45.08 2.91-.01 4.34-.31.71-.15 1.42-.35 2.1-.64.34-.14.67-.31.99-.51.16-.1.31-.22.46-.34.14-.13.28-.27.4-.45.05-.08.05-.19-.02-.27-.09-.11-.24-.12-.33-.04Zm-.84-4.81c.68.15 1.28.33 1.28.85 0 .45-.39.75-1.14.75-.63 0-1.24-.28-1.63-.62a.162.162 0 0 0-.25.04l-.28.43c-.05.07-.03.16.03.22.53.48 1.26.72 2.09.72 1.39 0 2.13-.71 2.13-1.62 0-1.21-1.09-1.46-2.01-1.67-.66-.15-1.22-.31-1.22-.76 0-.43.41-.69 1.08-.69.58 0 1.09.2 1.42.5.08.07.2.05.26-.04l.24-.38c.05-.07.03-.17-.03-.22-.44-.38-1.06-.65-1.9-.65-1.29 0-2.01.72-2.01 1.56 0 1.13 1.05 1.37 1.94 1.58ZM6.93 9.32c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.1-3.43c.05-.16.27-.16.32 0l1.1 3.43c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.55-4.93c.03-.11-.05-.22-.16-.22h-.67c-.08 0-.14.05-.16.12l-1.01 3.38c-.05.16-.27.16-.32 0L9.74 4.28a.171.171 0 0 0-.16-.12h-.61c-.07 0-.14.05-.16.12L7.7 7.67c-.05.16-.28.16-.32 0L6.37 4.28a.171.171 0 0 0-.16-.12h-.67c-.11 0-.2.11-.16.22l1.55 4.94Zm11.03 1.65-.01-.04a.35.35 0 0 0-.3-.23c-.14-.01-.26-.02-.38-.02h-.37c-.25.01-.49.02-.74.06-.25.04-.49.08-.73.16s-.47.18-.68.33c-.06.04-.08.11-.05.18.03.07.12.11.19.08h.01c.2-.09.41-.14.63-.17.22-.03.44-.03.66-.02.22.01.45.04.67.07l.33.06c.02 0 .04.01.06.01v.03c.01.1.01.2.01.31-.01.21-.04.44-.1.65-.11.44-.29.86-.55 1.25-.04.07-.04.15.02.21.07.06.17.06.23-.01.35-.37.63-.8.83-1.27a3.651 3.651 0 0 0 .3-1.16c.01-.15.01-.3-.03-.48ZM3.83 6.54c-.39-.3-.89-.44-1.45-.44-.88 0-1.83.52-1.83 1.73 0 1.16.96 1.75 1.83 1.75.57 0 1.06-.16 1.45-.46.11-.09.27-.01.27.13v.02c0 .09.08.17.17.17h.64c.09 0 .17-.08.17-.17V5.88c0-1.34-.97-1.85-2.12-1.85-.8 0-1.49.25-2.06.76-.06.06-.08.15-.03.22l.24.38c.06.09.18.11.26.04.43-.38.9-.56 1.44-.56.75 0 1.29.39 1.29 1.05v.48c0 .14-.16.22-.27.14Zm.27 1.68c0 .04-.01.08-.04.11-.3.36-.79.55-1.32.55-.71 0-1.21-.43-1.21-1.05 0-.62.5-1.05 1.21-1.05.52 0 1.02.19 1.32.55.02.03.04.07.04.11v.78Z" /></symbol>'}),li=(a().add(ui),ui),ci=new(o())({id:"arch_linux",use:"arch_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="arch_linux"><path d="M15.46 14.32c-.21-.19-.43-.38-.66-.56-.53-.42-1.08-.81-1.69-1.1-.03-.02-.05-.06-.03-.09.01-.03.05-.04.08-.04.57.13 1.12.36 1.65.61C12.57 9.09 10.6 5.04 9 1c-.6 1.5-1.25 3.01-1.94 4.52.07.08.14.16.22.24.26.27.53.53.82.78.29.24.6.47.93.67.03.02.04.06.02.09s-.05.04-.08.03c-.37-.13-.73-.29-1.08-.47-.35-.19-.69-.39-1.02-.62-.04-.02-.07-.05-.11-.08C5.08 9.76 3.13 13.38 1 17h.1c1.43-1.31 3.6-2.25 6.1-2.56-.04-.27-.06-.55-.06-.84 0-1.8.84-3.27 1.87-3.27 1.03 0 1.87 1.46 1.87 3.27 0 .29-.02.57-.06.84 2.5.31 4.67 1.25 6.1 2.56h.1c-.55-.89-1.06-1.79-1.56-2.68Z" /></symbol>'}),fi=(a().add(ci),ci),di=new(o())({id:"celarOS",use:"celarOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="celarOS"><path d="M9 2.02c-3.87 0-7 3.13-7 7 0 2.44 1.25 4.59 3.15 5.85v-2.54l-2.21-2.21a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.69 2.69v3.99c.46.15.94.26 1.43.32V10.9L4.97 7.67a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.9 2.9 2.9-2.9c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14L9.81 10.9v5.08c.5-.06.98-.16 1.43-.32v-3.99l2.69-2.69c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14l-2.21 2.21v2.54c1.9-1.25 3.15-3.4 3.15-5.85-.01-3.86-3.14-7-7.01-7Zm0 5.46c-.66 0-1.19-.53-1.19-1.19 0-.66.53-1.19 1.19-1.19.66 0 1.19.53 1.19 1.19 0 .66-.53 1.19-1.19 1.19Z" /></symbol>'}),pi=(a().add(di),di),hi=new(o())({id:"centos",use:"centos-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos"><path d="M7.76 8.27h.51v-.52L5.14 4.62l1.08-1.08H3.54v2.68l1.08-1.08 3.14 3.13Zm.21.73-.36-.36H3.17V7.1L1.27 9l1.9 1.9V9.36H7.6L7.97 9Zm.67-1.39.36.36.36-.36V3.17h1.54L9 1.27l-1.9 1.9h1.53v4.44h.01ZM4.62 5.65 3.54 6.74v1.53h3.7L4.62 5.65Zm3.65 1.59v-3.7H6.74L5.65 4.62l2.62 2.62Zm1.46 0 2.62-2.62-1.08-1.08H9.73v3.7Zm0 .52v.52h.51l3.13-3.13 1.08 1.08V3.54h-2.68l1.08 1.08-3.12 3.14Zm1.03.51h3.7V6.74l-1.08-1.08-2.62 2.61Zm2.62 4.08 1.08-1.08V9.73h-3.7l2.62 2.62Zm-8.76 0 2.62-2.62h-3.7v1.53l1.08 1.09Zm5.62-2.62h-.51v.52l3.13 3.13-1.08 1.08h2.69v-2.68l-1.08 1.08-3.15-3.13ZM16.73 9l-1.9-1.9v1.53H10.4l-.36.36.36.36h4.43v1.55l1.9-1.9Zm-7 1.76v3.7h1.53l1.08-1.08-2.61-2.62Zm-.37-.37L9 10.03l-.36.36v4.43H7.1l1.9 1.9 1.9-1.9H9.36v-4.43Zm-1.09-.15v-.51h-.51l-3.13 3.13-1.08-1.09v2.69h2.68l-1.08-1.08 3.12-3.14Zm0 .52-2.62 2.62 1.08 1.08h1.53v-3.7h.01Z" /></symbol>'}),gi=(a().add(hi),hi),vi=new(o())({id:"centos_colored",use:"centos_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos_colored"><path fill="#942579" d="m7.7 8.4.6.59-.6.59H3.5v1.97L.95 8.99l2.56-2.52V8.4H7.7Z" /><path fill="#EEA724" d="m9.6 7.7-.59.6-.59-.6V3.5H6.44L9.01.95l2.52 2.56H9.6V7.7Z" /><path fill="#2E2C74" d="m10.3 9.6-.6-.59.6-.59h4.2V6.44l2.56 2.57-2.56 2.52V9.6h-4.2Z" /><path fill="#9DCB3B" d="m8.4 10.3.59-.6.59.6v4.2h1.97l-2.57 2.56-2.52-2.56H8.4v-4.2ZM3.36 3.36h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M3.17 3.17h5.46v5.46H3.17V3.17Zm.37 5.1h4.73V3.54H3.54v4.73Z" /><path fill="#942579" d="M9.55 3.36h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M9.36 3.17h5.46v5.46H9.36V3.17Zm.37 5.1h4.73V3.54H9.73v4.73Z" /><path fill="#EEA724" d="M9.55 9.55h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M9.36 9.36h5.46v5.46H9.36V9.36Zm.37 5.1h4.73V9.73H9.73v4.73Z" /><path fill="#2E2C74" d="M3.36 9.55h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M3.17 9.36h5.46v5.46H3.17V9.36Zm.37 5.1h4.73V9.73H3.54v4.73Z" /><path fill="#fff" d="M4.62 12.86.76 9l3.86-3.86L8.49 9l-3.87 3.86ZM1.28 9l3.35 3.35L7.97 9 4.62 5.65 1.28 9ZM9 8.49 5.14 4.62 9 .76l3.86 3.86L9 8.49ZM5.65 4.62 9 7.97l3.35-3.35L9 1.28 5.65 4.62Zm7.73 8.24L9.52 9l3.86-3.86L17.24 9l-3.86 3.86ZM10.03 9l3.35 3.35L16.72 9l-3.35-3.35L10.03 9ZM9 17.24l-3.86-3.86L9 9.52l3.86 3.86L9 17.24Zm-3.35-3.86L9 16.72l3.35-3.35L9 10.03l-3.35 3.35Z" /></symbol>'}),mi=(a().add(vi),vi),yi=new(o())({id:"coreOS",use:"coreOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="coreOS"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7Zm-2.1 9.1c0-4.9.7-7 2.1-8.4A6.3 6.3 0 0 1 15.3 9c-1.4 1.4-3.5 2.1-8.4 2.1Zm1.96-5.42c-.28.92-.48 2.18-.54 4 1.82-.06 3.08-.25 4-.54a4.88 4.88 0 0 0-3.46-3.46Z" /></symbol>'}),bi=(a().add(yi),yi),wi=new(o())({id:"debian",use:"debian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian"><path d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15ZM7.56 7.56c.01 0 .01 0 0 0Zm6.97-2.63-.03.12.03-.12Zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16Zm1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01Zm-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18Z" /></symbol>'}),xi=(a().add(wi),wi),_i=new(o())({id:"debian_colored",use:"debian_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian_colored"><path fill="#D61C53" d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15ZM7.56 7.56c.01 0 .01 0 0 0Zm6.97-2.63-.03.12.03-.12Zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16Zm1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01Zm-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18Z" /></symbol>'}),Si=(a().add(_i),_i),Oi=new(o())({id:"fedora",use:"fedora-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="fedora"><path d="M8.98 2C5.11 2 2 5.15 2 8.98v5.45c0 .85.68 1.57 1.57 1.57h5.4c3.87 0 7.02-3.15 7.02-7.02C16 5.15 12.85 2 8.98 2ZM4.19 14.69a3.261 3.261 0 0 1-1.47-2.73c0-1.6 1.15-2.91 2.63-3.21-.14.2-.24.44-.24.7 0 .34.14.64.35.86-.69.24-1.21.9-1.21 1.65 0 .53.24 1 .61 1.31-.44.19-.73.59-.73 1.11.01.11.04.21.06.31Zm6.49-4.48H9.32v1.74c0 1.83-1.49 3.28-3.32 3.28-.26 0-.47 0-.72-.08-.34-.08-.64-.38-.64-.77 0-.43.3-.72.77-.72.21 0 .3.04.6.04.98 0 1.74-.77 1.74-1.74v-1.49c0-.13-.08-.26-.26-.26H6.38c-.43 0-.77-.34-.77-.77s.34-.77.77-.77h1.36V6.94c0-1.79 1.49-3.28 3.28-3.28.3 0 .47.04.72.08.38.13.68.43.68.77 0 .43-.3.72-.77.72-.21 0-.3-.04-.64-.04-.94 0-1.7.81-1.7 1.74v1.49c0 .17.09.25.21.25h1.15c.43 0 .77.34.77.77s-.33.77-.76.77Zm1.03-.06c.14-.2.24-.44.24-.7 0-.33-.14-.63-.35-.86a1.739 1.739 0 0 0 .58-2.95c.45-.18.75-.6.75-1.13 0-.1-.03-.2-.06-.29.88.59 1.47 1.6 1.47 2.72 0 1.6-1.15 2.91-2.63 3.21Z" /></symbol>'}),Ci=(a().add(Oi),Oi),Ei=new(o())({id:"freeBSD",use:"freeBSD-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeBSD"><path d="M3.1 5.51c.59-.98 1.42-1.81 2.4-2.4-.3-.2-.59-.38-.77-.46-.42-.21-1.96-.98-2.59-.49-.49.63.28 2.17.49 2.59.1.17.27.46.47.76Zm11 1.19c.35-.35 1.05-1.4 1.26-1.82.21-.42.98-1.96.49-2.59-.63-.49-2.17.28-2.59.49-.42.21-1.46.92-1.81 1.27-.28.98 1.25 2.93 2.65 2.65Zm.64-.21c.18.55.06.93-.39.96-.7.04-1.94-.81-2.77-1.91-.83-1.1-.93-2.02-.22-2.07.1-.01.2.01.31.03l.52-.43a6.822 6.822 0 0 0-9.83 6.12c0 3.77 3.05 6.81 6.81 6.81a6.822 6.822 0 0 0 5.95-10.16l-.38.65Z" /></symbol>'}),Ai=(a().add(Ei),Ei),Mi=new(o())({id:"gentoo",use:"gentoo-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="gentoo"><path d="M8.77 5.34c-.1-.02-.2-.04-.29-.04-.4 0-.71.23-.71.53 0 .19.1.42.26.63a.537.537 0 0 1-.05-.21c0-.2.19-.34.44-.34.06 0 .12.01.18.02.4.1.7.49.7.77 0 .16-.12.29-.31.33.06.01.12.02.18.02.4 0 .71-.23.71-.53.01-.42-.47-1.02-1.11-1.18ZM16 8.06c0-.18-.03-.38-.11-.6-.17-.45-.5-.89-.8-1.27-.62-.79-3.19-2.67-3.5-2.89C11.46 3.2 9.81 2 7.78 2h-.17c-2.33.01-4.14 1.36-4.98 2.52-.32.45-.47.9-.48 1.31-.01.18-.01.93.01 1.13.04.49.27.9.57 1.18.31.29 1.37.8 2.26 1.19-.72.57-1.84 1.48-2.31 2.01-.57.64-.78 1.33-.63 2.03-.11.5-.03 1.02.25 1.53.39.72 1.18 1.09 2.33 1.09.39 0 .83-.04 1.37-.12 1.47-.23 4.06-1.64 5.35-2.47 1.26-.82 3.5-2.81 4.19-3.44.19-.18.45-.5.47-.97-.01-.16-.01-.78-.01-.93Zm-.73.79c-.68.63-2.9 2.6-4.14 3.41-1.26.82-3.78 2.2-5.19 2.42-.51.08-.94.12-1.31.12-1.02 0-1.68-.3-2.01-.91-.43-.79-.31-1.59.34-2.32.66-.75 2.74-2.35 2.89-2.47.18-.15.37-.34.47-.46-.12-.06-.31-.13-.48-.18-.02 0-.03-.01-.05-.02-.4-.17-2.42-1.05-2.81-1.41-.5-.46-.72-1.38-.05-2.31.79-1.09 2.49-2.37 4.68-2.37h.16c1.94 0 3.52 1.17 3.59 1.22.11.08 2.82 2.06 3.43 2.83.5.61 1.33 1.66.48 2.45Zm-4.13-5.03S9.53 2.61 7.63 2.67c-2.27 0-3.8 1.42-4.39 2.22-.59.8-.37 1.55 0 1.89.37.34 2.7 1.35 2.7 1.35s.73.2.8.4c.07.2-.66.81-.66.81s-2.18 1.69-2.84 2.44c-.66.74-.58 1.42-.29 1.95.44.81 1.61.81 2.92.61 1.31-.2 3.8-1.55 5.04-2.36 1.24-.81 3.51-2.83 4.09-3.37.58-.54.07-1.28-.51-2.02-.58-.75-3.35-2.77-3.35-2.77ZM8.98 7.49c-1.07-.15-1.93-.86-1.9-1.59.02-.73.91-1.19 1.99-1.04 1.07.15 1.93.86 1.9 1.59-.03.72-.92 1.19-1.99 1.04Z" /></symbol>'}),ki=(a().add(Mi),Mi),Pi=new(o())({id:"linux",use:"linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux"><path d="M6.71 15.07c-.13-.17-.27-.32-.4-.49-.19-.25-.34-.54-.49-.81-.2-.37-.42-.73-.64-1.09-.09-.15-.19-.3-.32-.4a.696.696 0 0 0-.23-.11.39.39 0 0 0-.26.02.41.41 0 0 0-.21.18c-.05.08-.09.16-.12.25s-.07.17-.11.26a.52.52 0 0 1-.18.21c-.08.06-.19.08-.29.09-.1.01-.21-.01-.31-.01-.1-.01-.21-.02-.31 0a.6.6 0 0 0-.28.13c-.07.07-.11.16-.13.25-.02.09-.02.19-.01.28.01.21.05.42.06.63.01.21 0 .43-.07.63-.05.13-.13.25-.18.38-.02.07-.04.13-.05.2 0 .07.01.14.05.2.05.08.13.14.22.18.09.04.18.06.27.08.21.05.41.13.61.18.57.16 1.18.19 1.74.39.29.11.58.26.89.27.19.01.39-.04.56-.14.17-.1.31-.24.4-.42.13-.24.16-.53.08-.79-.04-.2-.16-.38-.29-.55Zm9.05-.49a.4.4 0 0 0-.14-.15c-.05-.04-.11-.08-.17-.12-.12-.08-.23-.17-.34-.27-.11-.09-.22-.19-.32-.3a.93.93 0 0 1-.2-.38c-.02-.09-.02-.18-.02-.26-.01-.1-.03-.2-.06-.29a.585.585 0 0 0-.1-.17.576.576 0 0 0-.23-.13h-.02c.11-.19.2-.4.24-.61.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.11-.15-.21-.3-.32-.45-.06-.12-.12-.23-.17-.35-.15-.32-.28-.65-.46-.95-.03-.04-.05-.09-.08-.13-.02-.3-.05-.6-.07-.89-.03-.59.01-1.19-.15-1.76-.08-.28-.2-.54-.35-.79-.18-.29-.41-.54-.68-.74C9.93.94 9.39.78 8.85.78c-.4-.01-.8.07-1.15.26-.37.2-.68.52-.87.9-.19.37-.26.8-.27 1.23-.01.41.02.83.04 1.24.01.43.01.87.04 1.29.01.14.03.28.03.42 0 .07 0 .14-.01.21v-.02c0 .01-.01.01-.01.02-.06.14-.13.28-.21.41-.14.17-.27.34-.41.51l-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.02.07.05.12.07.19.04-.07.09-.14.14-.2.06-.07.14-.13.22-.16.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.08.11.14.23.2.36.06.11.11.22.14.33.06.23.04.47-.04.7l.12-.03c.25-.05.5-.1.76-.1.05 0 .1-.01.15-.01.18.02.37.03.56.02.03 0 .06-.01.09-.01.04 0 .07.01.1.02.31.02.61.05.91.09.27.04.53.09.79.16.1.02.2.05.3.08a1.87 1.87 0 0 1-.03-.34c.01-.34.09-.67.16-1 .02-.1.04-.19.05-.29.04-.21.07-.41.09-.62-.03.28-.08.56-.13.83-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.07-.08.12-.17.16-.26.09-.1.07-.2.03-.28ZM8.78 3.65c.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.12.04.26.03.39-.01.15-.04.29-.1.43-.04.09-.11.17-.19.24l-.09-.03c-.13-.03-.24-.09-.36-.13.08 0 .16-.02.23-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25.297.297 0 0 0-.16-.02c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.03.26.03.07.07.14.13.19-.08-.04-.16-.08-.23-.12a.3.3 0 0 1-.08-.04c-.05-.06-.08-.14-.11-.21-.02-.04-.05-.07-.08-.11a.75.75 0 0 1 .01-.49Zm.12 2.22c.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.01-.01c.05 0 .09-.01.14-.01-.05.02-.1.05-.15.08-.08.05-.15.12-.23.19-.17.14-.36.26-.56.33-.13.05-.27.08-.41.11-.18.04-.36.08-.54.07-.18-.01-.37-.05-.51-.16-.05-.04-.1-.09-.15-.14a.585.585 0 0 0-.17-.1c-.01-.01-.02-.01-.04-.01s-.03-.01-.04-.02c-.01-.01-.01-.01-.01-.02.08.01.15.05.21.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.15-.03.29-.06.42-.11ZM6.96 3.6c.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.1.11.18.25.23.4.05.13.07.27.07.41-.07.09-.13.19-.2.28-.03.02-.07.03-.1.05 0-.01.01-.01.01-.02.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.03.05-.04.11-.05.16-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.02.01.05.01.08.01-.05.05-.11.09-.16.14-.04.03-.08.07-.12.11-.02-.02-.05-.03-.06-.05-.07-.06-.11-.14-.15-.22-.07-.17-.08-.35-.09-.53-.01-.19-.02-.39.04-.57Zm7.05 9.22c-.19.27-.48.48-.8.59-.19.07-.4.07-.6.01a.622.622 0 0 1-.3-.18c-.1-.11-.13-.26-.14-.41-.01-.15.01-.31.05-.45-.13-.03-.26-.05-.39-.07-.08-.01-.16-.02-.24-.02a.35.35 0 0 0-.22.08c-.06.06-.1.14-.11.22-.01.08-.01.17 0 .26.02.33.02.65.01.98a1.06 1.06 0 0 0-.43-.05c-.26.03-.51.12-.74.24-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.07.08-.16.13-.24.2-.07.01-.15.03-.22.03-.06-.08-.12-.15-.18-.23-.15-.2-.22-.45-.35-.67-.17-.3-.45-.52-.75-.69a.95.95 0 0 0-.09-.21c-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07l-.12-.12c-.01-.23-.01-.47.01-.7.06-.6.23-1.19.47-1.74.07-.16.15-.32.23-.47.12-.12.24-.24.38-.35.24-.17.55-.31.9-.43.23-.05.46-.08.46-.08-1.31.19-1.22-.11-1.28-.19a.342.342 0 0 1-.04-.18c.1-.32.29-.6.49-.87.05-.07.1-.14.14-.21.04.03.08.07.12.1.15.08.31.12.47.14.03 0 .06 0 .08.01-.2-.18-.38-.39-.46-.64-.07-.2-.09-.42-.16-.61-.02-.05-.05-.11-.06-.16-.01-.03-.01-.06-.01-.09.01.02.03.04.06.06.02.02.05.03.07.05.13.08.24.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.04-.18 0-.03.01-.05.02-.08l.01.01c.03.06.04.14.03.21 0 .07-.01.15.02.22.03.08.08.14.12.21.02.04.03.08.03.12 0 .04-.01.08-.04.11-.02.02-.06.04-.09.04-.03.01-.07 0-.1-.01-.07-.01-.13-.04-.19-.05a.375.375 0 0 0-.25.08c-.07.05-.13.12-.2.18-.14.13-.31.24-.48.33-.14.08-.29.15-.42.23-.02.01-.04.03-.06.04.21.01.42 0 .62-.03.35-.06.67-.18 1.01-.21.24-.02.48 0 .71-.04-.09.01-.18.02-.27.02.02.05.05.09.07.14.18.4.31.82.37 1.25.24.25.44.53.59.84.43.9.43 1.94.31 2.93l-.03.24.2.03.03-.12c.04-.1.11-.2.19-.27.09-.07.18-.13.29-.15.12-.03.26-.01.38 0 .12.02.24.05.36.07.13.02.26.04.38.1.06.02.12.06.17.1.04.04.09.1.11.16.03.07.03.16.01.25.01.1-.05.2-.11.3ZM11.04 8.3c-.09-.28-.13-.84-.13-.84s-.06.45-.32.64c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78ZM7.72 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.03-.35.03-.69 0-1.04Zm.53-1.4a.472.472 0 0 1-.18-.49c-.01.08-.02.16-.04.24L8 8.06c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.631.631 0 0 1-.38-.12Z" /></symbol>'}),Ri=(a().add(Pi),Pi),Ti=new(o())({id:"linux_colored",use:"linux_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux_colored"><path fill="#050507" d="M12.29 6.52c.18.39.38.78.56 1.17.34.76.61 1.56.72 2.38.11.82.06 1.68-.2 2.47-.29.89-.85 1.69-1.52 2.34-.8.77-1.83 1.36-2.94 1.41-.72.03-1.45-.18-2.09-.52a4.58 4.58 0 0 1-1.42-1.13c-.39-.47-.68-1.02-.82-1.61-.17-.73-.09-1.51.16-2.21.18-.51.45-.98.64-1.48.21-.55.32-1.13.6-1.65.25-.47.62-.87.82-1.36.12-.29.17-.61.25-.92.08-.31.18-.62.39-.86.25-.29.63-.44 1.01-.49.38-.04.76.02 1.14.1.3.07.59.15.88.25.24.09.49.19.7.34.29.21.51.49.68.8.16.32.29.65.44.97Z" /><path fill="#050507" d="M9.1 16.3c.31.02.61.05.91.09.27.04.53.09.79.16.41.1.82.23 1.24.24.11 0 .22 0 .33-.03a.69.69 0 0 0 .3-.14c.13-.1.21-.26.24-.42.03-.16.01-.33-.04-.49-.1-.32-.3-.59-.47-.87-.1-.16-.18-.33-.29-.49-.1-.16-.23-.31-.39-.41-.22-.14-.49-.19-.75-.16s-.51.12-.74.24c-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.1.1-.23.17-.33.27-.05.05-.1.11-.12.17-.03.07-.03.14-.01.21.02.05.05.09.08.12.04.03.08.05.13.07.09.04.19.04.29.05Z" /><path fill="#050507" d="M8.19 16.28c-.25.01-.51.05-.76.1-.24.05-.48.1-.71.17-.4.1-.79.23-1.2.24-.11 0-.22 0-.32-.03a.606.606 0 0 1-.29-.14.69.69 0 0 1-.24-.42c-.03-.16-.01-.33.04-.49.09-.32.3-.59.46-.87.09-.16.18-.33.28-.49.1-.16.22-.31.38-.41.21-.14.48-.19.73-.16s.5.12.72.24c.32.17.61.41.79.72.13.22.2.47.35.67.08.11.18.2.25.32.03.06.06.12.06.19a.25.25 0 0 1-.05.19c-.03.04-.06.07-.1.09-.04.02-.08.04-.13.05-.08.03-.17.03-.26.03ZM6.77 5.69c-.04-.43-.03-.86-.04-1.29-.02-.41-.05-.83-.04-1.24.01-.42.08-.85.27-1.23s.49-.7.86-.9c.35-.19.75-.27 1.15-.26.54.01 1.08.17 1.52.49.27.2.5.45.69.74.15.24.28.51.35.79.15.57.12 1.17.15 1.76.03.56.12 1.12.09 1.68-.01.12-.02.25-.07.35a.55.55 0 0 1-.25.25.97.97 0 0 1-.34.11c-.23.04-.47.01-.71.03-.34.03-.67.16-1.01.21-.41.06-.82.02-1.23 0-.16-.01-.33-.01-.49-.03a1.28 1.28 0 0 1-.47-.14.876.876 0 0 1-.24-.19.604.604 0 0 1-.14-.26c-.04-.15-.02-.3-.02-.45 0-.14-.02-.28-.03-.42Z" /><path fill="#FDFEFC" d="M7.42 5.52c-.06.07-.1.16-.12.25-.02.09-.03.18-.03.28-.01.19 0 .38-.04.56-.05.19-.17.36-.29.52-.2.28-.4.57-.5.9-.06.2-.08.41-.06.62-.22.33-.42.68-.58 1.04-.24.55-.41 1.14-.47 1.74-.07.73.02 1.49.31 2.17.21.49.52.94.93 1.29.21.18.43.33.68.45.84.41 1.89.42 2.72-.03.43-.23.8-.57 1.15-.91.21-.21.42-.42.59-.66.31-.48.42-1.06.49-1.62.12-.99.12-2.03-.31-2.93-.15-.31-.35-.59-.59-.84-.06-.43-.19-.85-.37-1.25-.13-.29-.29-.56-.41-.85-.05-.12-.09-.24-.15-.36s-.12-.23-.22-.32a.9.9 0 0 0-.34-.2c-.13-.04-.26-.06-.39-.07-.26-.01-.53.02-.79.01-.21-.01-.42-.05-.63-.03-.11.01-.21.02-.31.06-.12.04-.21.1-.27.18Z" /><path fill="#010101" fill-opacity=".259" d="M7.29 6.51c.09.27.28.51.51.69.07.06.15.12.24.16.09.04.18.06.28.05.09-.01.18-.04.27-.09l.24-.15c.14-.09.28-.16.42-.23.17-.09.34-.2.48-.33.07-.06.13-.13.2-.18.07-.05.16-.09.25-.08.07 0 .13.03.19.05.03.01.07.01.1.01.03-.01.07-.02.09-.04a.15.15 0 0 0 .04-.11c0-.04-.02-.08-.03-.12-.04-.07-.1-.14-.12-.21-.02-.07-.02-.14-.02-.22 0-.07 0-.15-.03-.21a.254.254 0 0 0-.12-.11.293.293 0 0 0-.16-.04c-.11-.01-.22.01-.33.02-.15.01-.3-.01-.44 0-.18.01-.36.06-.55.06-.21 0-.42-.07-.63-.04-.09.01-.17.05-.26.08s-.17.05-.26.05c-.1 0-.2-.04-.3-.04-.05 0-.1 0-.15.02-.05.02-.09.05-.11.1a.31.31 0 0 0-.02.08c0 .03 0 .06.01.09.01.06.04.11.06.16.06.16.08.38.15.58Z" /><path fill="#010101" d="M7.02 5.73c.18.11.35.25.49.41.13.15.24.31.4.42.12.08.26.12.4.13.17.02.34-.01.5-.05.15-.04.3-.1.43-.17.26-.14.47-.36.75-.45.06-.02.13-.04.18-.06.06-.03.11-.06.14-.12.03-.05.03-.11.03-.17.01-.06.03-.12.04-.18.01-.06.01-.13-.02-.18-.02-.05-.07-.08-.12-.11-.05-.02-.11-.03-.16-.04-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.04-.55.05-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.01-.18.04-.25.09-.07.04-.13.11-.2.16-.03.03-.07.05-.11.07-.04.02-.08.03-.13.03H7.1c-.04.01-.07.03-.09.05.01.04.01.08.01.11Z" opacity=".3" /><path fill="url(#linux_colored_a)" d="M8.2 4.25c0 .12-.01.25-.04.37-.04.12-.1.23-.18.32-.06.06-.13.1-.21.12-.08.03-.17.03-.25.01a.512.512 0 0 1-.23-.14.636.636 0 0 1-.14-.22c-.07-.17-.08-.35-.1-.53-.01-.2-.03-.4.04-.59.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.21.04.07.03.12.08.18.13.11.11.18.25.24.4.04.15.06.3.07.46Z" /><path fill="url(#linux_colored_b)" d="M10.41 4.25c-.01.15-.04.29-.1.43-.06.13-.16.25-.29.32-.1.06-.23.08-.35.07a.74.74 0 0 1-.33-.13c-.2-.14-.33-.35-.41-.58-.07-.23-.11-.48-.03-.7.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.13.04.27.03.4Z" /><path fill="#010101" fill-opacity=".259" d="M7.47 4.82c-.1.08-.19.17-.28.26-.05.05-.1.1-.12.17-.02.06-.02.12-.03.19 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33a2.11 2.11 0 0 0 .3-.26c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.09-.48.25-.65.45Z" /><path fill="#050507" d="M7.96 4.53c.1-.11.17-.24.26-.36.05-.06.1-.11.17-.15.06-.04.14-.06.21-.05.08.01.16.05.22.1.06.06.1.13.14.2.03.07.06.15.11.21.05.07.13.11.19.16.03.03.06.05.09.09.03.03.05.07.05.11.01.04 0 .09-.01.13-.01.04-.04.08-.07.11-.06.06-.14.09-.23.1-.17.02-.34-.03-.51-.02-.17 0-.34.07-.51.06-.09 0-.17-.02-.24-.07a.258.258 0 0 1-.09-.09.284.284 0 0 1-.04-.12c0-.04.01-.08.02-.12a.36.36 0 0 1 .07-.1c.06-.08.12-.13.17-.19ZM9.6 3.69c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.04.26.03.08.08.16.14.21.07.06.16.09.25.1.09 0 .18-.02.25-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25c-.06-.01-.11-.02-.17-.02Z" /><path fill="#161615" d="M9.74 4.07c-.05.02-.12.01-.15.05-.01.03.01.07.03.09.06.02.15-.02.17-.08.01-.02-.01-.06-.03-.07 0 0-.01.01-.02.01Z" /><path fill="#fff" d="M9.96 4.2c.06-.06-.05-.24-.13-.31-.06-.05-.24-.1-.24-.05.01.06.09.13.14.18.08.07.2.21.23.18Z" opacity=".5" /><path fill="gray" d="M10.38 3.86c-.08-.07-.16-.13-.25-.19-.29-.19-.68-.23-1.01-.13-.07.02-.14.05-.21.08.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.02.07.04.12.04.18ZM9.78 2.77c-.03.03-.05.07-.07.11.12.03.23.07.33.14.2.13.35.32.45.53.02-.03.05-.06.07-.09-.11-.22-.26-.42-.46-.56a.831.831 0 0 0-.32-.13ZM7.49 2.88h-.07c.08.01.16.03.23.06.1.04.18.11.26.18.14.13.24.29.31.46-.02-.13-.06-.26-.11-.37l-.09-.09a1 1 0 0 0-.26-.18.626.626 0 0 0-.27-.06Z" /><path fill="#050507" d="M7.26 4.04c-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.05.02.11.03.16.02a.2.2 0 0 0 .12-.08c.03-.04.05-.09.07-.13.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.01.05-.03.11-.04.16Z" /><path fill="#fff" d="M7.53 3.95c.01.04.06.05.08.08.02.03.05.06.06.09.03.07-.02.16.03.21.02.01.05.01.07 0 .06-.06.05-.17.02-.26a.298.298 0 0 0-.15-.18c-.03-.02-.08-.03-.11-.01-.01.02-.01.05 0 .07Z" opacity=".5" /><path fill="#BA9319" d="M7.03 5.59c0 .02.01.03.02.05.01.02.04.04.06.06.02.02.05.03.07.05.13.08.23.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.03-.18.01-.07.03-.13.04-.2.01-.07.01-.14-.02-.2a.278.278 0 0 0-.12-.12.317.317 0 0 0-.16-.04c-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.05-.55.06-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.02-.18.05-.25.1s-.13.12-.2.18c-.03.03-.07.06-.11.07-.04.02-.08.03-.13.03H7.1c-.01 0-.03.01-.04.02l-.03.03c.03.03.01.06 0 .09Z" /><path fill="#5F461B" d="M7.49 5.13c-.07.04-.15.09-.22.14-.04.03-.07.05-.09.09-.01.03-.02.06-.02.09v.09c0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.02.02.04.02.01 0 .03.01.04.01.07.02.12.06.17.1.05.04.09.1.15.14.14.11.33.16.51.16s.36-.03.54-.07c.14-.03.28-.06.41-.11.21-.08.4-.19.56-.33.07-.07.15-.14.23-.19.07-.05.16-.08.23-.12.01 0 .01-.01.02-.01.01-.01.01-.01.01-.02a.03.03 0 0 0 0-.04c0-.01-.01-.02-.02-.04l-.03-.03a.508.508 0 0 0-.29-.1c-.1-.01-.21 0-.31-.02s-.19-.05-.28-.08c-.1-.03-.2-.06-.3-.07a1.94 1.94 0 0 0-.72.02c-.22.05-.44.13-.64.25Z" /><path fill="#F4C021" d="M7.47 4.88c-.11.07-.2.16-.28.26-.05.06-.09.12-.11.19-.02.06-.02.11-.04.17 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.06.04.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.07-.07c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.08-.48.24-.65.45Z" /><path fill="#F6DA4A" d="M9.11 4.93a.055.055 0 0 0-.05-.03c-.02 0-.04-.01-.06 0a.37.37 0 0 0-.11.05c-.09.07-.18.15-.25.23a.8.8 0 0 0-.2.4c0 .03-.01.05 0 .08s.01.05.03.07c.02.02.04.03.06.03.02 0 .05 0 .07-.01.04-.01.08-.04.11-.07.19-.17.35-.36.42-.6.01-.02.01-.05.01-.07-.01-.04-.01-.06-.03-.08Z" /><path fill="#5F461B" d="M8.67 4.59c.01.04.08.03.12.05.03.02.06.06.1.06.04 0 .09-.01.1-.05.01-.05-.06-.08-.11-.09-.06-.02-.13-.03-.18 0-.02 0-.04.01-.03.03ZM8.03 4.56c-.05-.02-.13.07-.1.12.01.01.03.03.04.02.02-.01.04-.06.07-.07.02-.02.01-.06-.01-.07Z" /><path fill="#F4C021" d="M10.39 5.21c-.01.11-.09.2-.18.2s-.15-.09-.14-.2c.01-.11.09-.2.18-.2.09.01.15.09.14.2Z" /><path fill="gray" d="M8.02 3.57c-.08-.01-.15-.03-.23-.04a.902.902 0 0 0-.51.1c-.1.06-.17.14-.24.23 0-.09.01-.18.04-.26.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.05.06.09.11.13.17Z" /><path fill="#050507" d="M12.54 8.94c.34.27.55.68.62 1.11.05.33.02.68-.06 1.01-.08.33-.19.65-.31.97-.05.13-.09.25-.11.39a.59.59 0 0 0 .06.39c.07.14.21.23.36.27.15.04.3.04.45.01.15-.04.29-.11.41-.2.31-.24.49-.61.56-.99.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.16-.21-.28-.45-.47-.64a.955.955 0 0 0-.33-.22.654.654 0 0 0-.39-.03c-.17.05-.3.18-.38.34-.07.16-.09.34-.06.51.04.22.14.43.25.62.13.22.28.43.47.59.23.18.48.29.68.45Z" /><path fill="#838385" d="M13.23 11.05c-.12.4-.27.79-.41 1.19-.05.14-.1.28-.12.42-.01-.07-.01-.16-.01-.24.02-.14.07-.26.11-.39.23-.64.47-1.31.37-1.98-.07-.43-.28-.84-.62-1.11-.18-.15-.4-.26-.59-.4.21.12.43.21.62.36.36.26.62.67.69 1.11.05.34.07.64-.04 1.04Z" /><path fill="#010101" fill-opacity=".259" d="M6.48 8.17c.06.08-.04.38 1.28.19 0 0-.23.03-.46.08-.35.12-.66.25-.9.43-.24.17-.41.4-.62.59 0 0 .35-.64.44-.83.09-.19-.01-.18.05-.47.07-.28.24-.56.24-.56s-.14.41-.03.57ZM10.71 8.1c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78c-.09-.28-.13-.84-.13-.84s-.05.45-.32.64Z" /><path fill="#010101" fill-opacity=".259" d="M8.19 7.7c-.01.08-.02.16-.04.24l-.03.12c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.63.63 0 0 1-.4-.12.428.428 0 0 1-.14-.16.613.613 0 0 1-.02-.33ZM7.85 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.02-.35.02-.69 0-1.04Z" /><path fill="#050507" d="M15.88 14.83c-.03-.06-.08-.11-.13-.16-.05-.04-.11-.08-.16-.12-.12-.09-.22-.18-.33-.28-.11-.1-.22-.2-.3-.31a.868.868 0 0 1-.18-.39c-.01-.04 0-.07-.01-.11-.01-.03-.03-.07-.04-.1-.02-.09-.02-.18-.02-.26 0-.05-.02-.09-.03-.13-.02-.04-.04-.09-.07-.13a.636.636 0 0 0-.22-.14.742.742 0 0 0-.25-.05c-.21-.01-.42.06-.63.07-.2.02-.39-.02-.58-.07-.11-.03-.22-.08-.33-.11-.18-.05-.36-.08-.54-.12-.08-.01-.16-.03-.23-.03a.34.34 0 0 0-.22.07c-.07.05-.1.14-.12.22-.02.08-.01.17-.01.26.02.51 0 1.02-.07 1.52-.03.18-.07.36-.1.54l-.03.21c-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.06-.07.1-.14.13-.22-.02-.02-.02-.04-.03-.06Z" /><path fill="#F4C021" d="M15.75 14.67c-.03.09-.08.17-.14.24-.13.16-.32.26-.5.35-.31.16-.64.29-.93.48-.2.13-.38.28-.55.44-.15.14-.28.28-.45.4-.17.12-.36.2-.56.23-.24.04-.5-.01-.72-.11-.16-.07-.31-.16-.4-.31-.09-.15-.11-.32-.11-.49 0-.3.06-.6.11-.9.04-.25.09-.5.11-.75.05-.46.05-.92.02-1.37a.885.885 0 0 1 0-.23.288.288 0 0 1 .3-.27c.07 0 .14.01.21.02.17.02.34.04.5.09.1.03.2.06.31.09.17.05.35.07.53.05.19-.02.38-.09.57-.09.08 0 .16.02.23.04.08.02.15.06.21.11.04.04.07.1.1.15.03.08.06.17.06.26s-.02.19-.01.28c.01.08.04.15.08.21s.09.12.14.18c.1.11.19.23.31.31.14.1.3.16.44.25.04.03.08.06.11.1.04.07.06.16.03.24Z" /><path fill="#7D7D7D" d="M12.37 9.21c.07-.01.47.34.42.46-.06.13-.16.05-.23.05s-.28.09-.31.04c-.03-.05.09-.2.16-.31.04-.09-.11-.23-.04-.24Z" opacity=".75" /><path fill="#7D7D7D" d="M6.63 7.03c-.01-.08-.12-.09-.17-.05-.04.03-.08.15-.05.19.07.08.23-.03.22-.14Z" opacity=".25" /><path fill="#BA9319" d="M14.01 12.84a.273.273 0 0 0-.15-.13c-.06-.03-.13-.03-.2-.03-.14 0-.27.04-.41.02-.12-.01-.23-.05-.34-.08a.732.732 0 0 0-.36-.01c-.12.03-.23.12-.3.22-.06.1-.09.21-.1.32-.01.11 0 .23.01.34.01.08.02.16.04.24a.561.561 0 0 0 .38.42c.18.07.38.06.56-.01.31-.14.58-.38.74-.68.06-.11.1-.22.13-.34.01-.05.02-.1.02-.14.01-.05 0-.1-.02-.14Z" /><path fill="#BA9319" d="M14.01 12.77a.33.33 0 0 0-.15-.1c-.06-.02-.13-.03-.2-.02-.14 0-.27.03-.41.02-.12-.01-.23-.04-.34-.06-.12-.02-.24-.03-.36-.01-.12.02-.23.08-.3.16a.43.43 0 0 0-.1.23c-.01.08 0 .16.01.24.01.06.02.12.04.17.02.06.05.11.1.16.07.07.17.12.28.15.18.05.38.05.56-.01.31-.1.58-.28.74-.49.06-.08.1-.16.13-.25.01-.03.02-.07.02-.1.01-.02 0-.06-.02-.09Z" /><path fill="#050507" d="M14.26 12.27c.03.07.03.16.01.25-.03.1-.08.21-.15.29-.19.28-.47.49-.79.6-.19.07-.4.07-.6.01a.71.71 0 0 1-.3-.18c-.1-.11-.13-.26-.15-.41-.01-.19.01-.4.1-.57a.736.736 0 0 1 .48-.43c.12-.02.26-.01.38.01s.24.05.36.07c.12.02.26.04.38.1.06.02.12.06.16.1.07.04.1.09.12.16Z" /><path fill="#838385" d="M12.94 11.77c-.03 0-.06.01-.09.01-.19.03-.37.16-.47.32-.07.12-.1.26-.09.4 0-.1.03-.19.08-.28.08-.14.22-.25.38-.28.1-.02.2-.01.3.01.1.01.19.02.29.05.15.03.29.08.41.17.03.02.06.04.08.07.02.03.04.06.05.09.01.05 0 .1-.03.15a1.06 1.06 0 0 1-.19.2c.14-.03.29-.07.4-.15a.3.3 0 0 0 .12-.13c.03-.05.04-.12.03-.18a.238.238 0 0 0-.06-.11c-.03-.03-.06-.06-.09-.08-.15-.1-.32-.17-.5-.19-.12-.02-.23-.04-.35-.05-.09-.01-.18-.02-.27-.02Z" /><path fill="#050507" d="m6.63 6.67-.46.58-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.04.16.11.31.18.45.31.61.79 1.14 1.34 1.55.25.18.53.34.81.47.15.07.32.13.49.14.08 0 .17-.01.25-.05.08-.03.15-.09.19-.16.06-.09.08-.2.06-.3-.01-.1-.05-.2-.11-.29-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07-.11-.11-.23-.22-.31-.35-.08-.13-.12-.28-.15-.43-.08-.41-.06-.84.08-1.23.05-.15.13-.3.2-.45.12-.25.23-.51.39-.75.2-.29.46-.54.62-.85.14-.26.19-.56.24-.85.05-.22.09-.44.13-.67Z" /><path fill="#838385" d="M5.06 10.24c-.14.39-.16.82-.08 1.23.03.15.07.3.15.43.08.13.19.24.31.35.01.01.04.03.05.04h-.02a.523.523 0 0 1-.23-.1.58.58 0 0 1-.16-.19c-.06-.09-.1-.18-.16-.26a.548.548 0 0 0-.29-.21c.09-.04.16-.1.21-.18a.6.6 0 0 0 .07-.32c-.01-.11-.02-.22-.01-.33.01-.21.1-.41.18-.61.1-.27.19-.55.34-.79.1-.15.21-.29.33-.41a.12.12 0 0 1 .07-.07c.02-.01.04-.03.07-.03-.07.09-.15.18-.21.28-.16.23-.27.49-.39.74-.11.13-.18.28-.23.43Z" /><path fill="#050507" d="M4.46 11.86c.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.13.19.25.4.3.63.07.3.03.62-.12.88a1.146 1.146 0 0 1-1.07.59c-.34-.03-.64-.21-.95-.34-.63-.28-1.33-.39-1.98-.61-.2-.07-.4-.15-.6-.21-.09-.03-.18-.05-.27-.1a.478.478 0 0 1-.21-.19.378.378 0 0 1-.04-.21c.01-.07.02-.14.05-.21.05-.14.14-.26.2-.39.1-.22.12-.46.12-.7 0-.24-.03-.48-.04-.71 0-.11 0-.21.02-.32.02-.1.07-.2.15-.28.07-.07.17-.1.27-.12.1-.02.2-.01.29-.01.1.01.2.01.29.01.1 0 .2-.02.28-.07.08-.04.15-.11.21-.18.06-.07.1-.15.15-.23.05-.08.1-.16.16-.23s.16-.13.25-.16Z" /><path fill="#F4C021" d="M4.5 12.18c.08-.03.17-.04.26-.02.08.02.16.06.23.11.14.11.23.26.32.4.22.36.44.72.64 1.09.15.28.3.56.49.81.13.17.27.32.4.49.13.17.24.35.3.55.07.26.04.55-.08.79-.09.17-.23.32-.4.42-.17.1-.36.15-.56.14-.31-.01-.59-.17-.89-.27-.56-.2-1.17-.23-1.74-.39-.21-.06-.41-.13-.61-.18-.09-.02-.18-.04-.27-.08a.433.433 0 0 1-.22-.18.351.351 0 0 1-.05-.2c0-.07.02-.14.04-.2.05-.13.13-.25.18-.38.08-.2.09-.42.07-.63-.01-.21-.05-.42-.06-.63a.878.878 0 0 1 .01-.28c.02-.09.06-.18.13-.25s.17-.11.28-.13c.1-.02.21-.01.31 0s.21.02.31.01.21-.03.29-.09a.52.52 0 0 0 .18-.21c.04-.08.08-.17.11-.26s.07-.17.12-.25a.41.41 0 0 1 .21-.18Z" /><defs><radialGradient id="linux_colored_a" cx="0" cy="0" r="1" gradientTransform="matrix(.65895 -.02773 .04242 1.00798 7.632 4.069)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient><radialGradient id="linux_colored_b" cx="0" cy="0" r="1" gradientTransform="matrix(.9544 0 0 .9544 9.662 4.1)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient></defs></symbol>'}),Ii=(a().add(Ti),Ti),Bi=new(o())({id:"linux_manjaro",use:"linux_manjaro-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="linux_manjaro"><path d="M9.049 0H0v14h4.084V4.097h4.965V0ZM14 0H9.903v14H14V0Z" /><path d="M9.049 4.951H4.95V14H9.05V4.951Z" /></symbol>'}),Di=(a().add(Bi),Bi),ji=new(o())({id:"macOSX",use:"macOSX-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="macOSX"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7Zm3.55 11.48h-.85L9 9.61l-2.7 3.87h-.85L8.57 9 5.45 4.52h.85L9 8.39l2.7-3.87h.85L9.43 9l3.12 4.48Z" /></symbol>'}),Li=(a().add(ji),ji),Zi=new(o())({id:"oracle",use:"oracle-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle"><path d="M12 14H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h6c2.76 0 5 2.24 5 5s-2.24 5-5 5ZM6 6C4.35 6 3 7.35 3 9s1.35 3 3 3h6c1.65 0 3-1.35 3-3s-1.35-3-3-3H6Z" /></symbol>'}),Ni=(a().add(Zi),Zi),Fi=new(o())({id:"oracle_colored",use:"oracle_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle_colored"><path fill="#ED1C24" d="M12 4H6C3.24 4 1 6.24 1 9s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5Z" /></symbol>'}),Hi=(a().add(Fi),Fi),Vi=new(o())({id:"os_press",use:"os_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os_press"><path d="M6.75 7.5c-.14 0-.25.11-.25.25v2.5c0 .14.11.25.25.25s.25-.11.25-.25v-2.5c0-.14-.11-.25-.25-.25ZM11.77 2H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2ZM8.5 10.25c0 .97-.78 1.75-1.75 1.75S5 11.22 5 10.25v-2.5C5 6.78 5.78 6 6.75 6s1.75.78 1.75 1.75v2.5ZM13 8.1h-1.5v-.35c0-.14-.11-.25-.25-.25s-.25.11-.25.25v.03c0 .08.04.16.11.21l1.15.8c.47.33.75.86.75 1.43v.03c0 .96-.79 1.75-1.75 1.75s-1.76-.79-1.76-1.75V9.9H11v.35c0 .14.11.25.25.25s.25-.11.25-.25v-.03a.26.26 0 0 0-.11-.21l-1.15-.8c-.47-.33-.75-.86-.75-1.43v-.03c0-.96.79-1.75 1.75-1.75S13 6.79 13 7.75v.35Z" /></symbol>'}),zi=(a().add(Vi),Vi),Ui=new(o())({id:"raspbian",use:"raspbian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="raspbian"><path d="M13.96 8.09c.32-1.85-1.36-2.49-1.36-2.49 1.36-.32 2.4-2.57 2-3.86 0 0 .16-.24-1.76-.64S9 1.58 9 2.86C9 1.58 7.08.7 5.16 1.1c-1.92.4-1.76.64-1.76.64-.4 1.29.64 3.53 2 3.86 0 0-1.68.64-1.36 2.49 0 0-2.24 1.45-.64 3.86 0 0 .08.8.4 1.2 0 0 .24 1.69 1.68 2.01 0 0 .48.8 1.44.88 0 0 .72.96 2.08.96s2.08-.96 2.08-.96c.96-.08 1.44-.88 1.44-.88 1.44-.32 1.68-2.01 1.68-2.01.32-.4.4-1.2.4-1.2 1.6-2.42-.64-3.86-.64-3.86Zm-1.1-1.77c.59.53.84 1.25.66 1.77-.45-.17-.94-.47-1.41-.89a4.49 4.49 0 0 1-1.06-1.33c.49-.24 1.23-.07 1.81.45ZM9.72 2.3c.64-.64 1.44-.8 2.16-.72.72.08 1.92.48 2.4.4-.24.4-.4.88-.4 1.37 0 .49-.8 1.69-1.76 1.93-.84.21-1.67-.01-2.03-.71 0-.01.01-.01.01-.02.1-.12.21-.23.32-.34.23-.22.48-.43.74-.62.52-.39 1.09-.72 1.69-1l-.03-.07c-.63.21-1.24.49-1.82.83-.29.17-.57.35-.84.56-.11.09-.21.17-.32.27-.48-.34-.71-1.28-.12-1.88Zm.93 4.14c-.13.57-.82 1-1.65 1s-1.52-.43-1.65-1c.13-.57.82-1 1.65-1s1.52.43 1.65 1Zm.03 6.22c0 .93-.75 1.69-1.68 1.69-.93 0-1.68-.76-1.68-1.69 0-.93.75-1.69 1.68-1.69.93 0 1.68.76 1.68 1.69ZM4.12 3.35c0-.48-.16-.96-.4-1.37.48.08 1.68-.32 2.4-.4.72-.08 1.52.08 2.16.72.59.6.36 1.54-.12 1.86-.1-.09-.21-.18-.32-.27-.27-.21-.55-.39-.84-.56-.58-.33-1.2-.61-1.83-.82l-.03.07c.6.28 1.16.61 1.69 1 .26.19.51.4.74.62.12.11.22.23.32.34 0 .01.01.01.01.02-.36.7-1.2.92-2.03.71-.95-.24-1.75-1.44-1.75-1.92Zm1.02 2.97c.59-.52 1.33-.69 1.81-.45-.22.43-.58.9-1.06 1.33-.47.41-.96.72-1.41.89-.19-.52.06-1.24.66-1.77Zm-1.12 5.36h-.05c-.44-.04-.73-.78-.64-1.64.09-.86.51-1.52.95-1.48.06.01.12.03.18.06.19.33.28.88.22 1.5-.07.73-.34 1.34-.66 1.56Zm2.44 3.15c-.57.11-1.43-.47-1.92-1.29-.49-.83-.43-1.58.13-1.7.57-.11 1.43.47 1.92 1.29.49.83.43 1.59-.13 1.7Zm.08-3.59c-.91-.04-1.48-.9-1.26-1.92.22-1.02 1.13-1.81 2.04-1.76.91.04 1.48.9 1.26 1.92-.22 1.01-1.13 1.8-2.04 1.76ZM9 16.52c-.83 0-1.53-.5-1.76-1.19.45-.31 1.07-.5 1.76-.5s1.31.19 1.76.5c-.23.69-.93 1.19-1.76 1.19Zm.42-7.05c-.22-1.01.35-1.87 1.26-1.91.91-.04 1.83.75 2.04 1.76.22 1.02-.35 1.88-1.26 1.92-.91.04-1.82-.75-2.04-1.77Zm4.04 4.07c-.49.83-1.35 1.4-1.92 1.29-.57-.11-.63-.87-.13-1.7.49-.83 1.35-1.4 1.92-1.29.57.11.63.87.13 1.7Zm.57-1.86h-.05c-.32-.23-.59-.83-.66-1.56-.06-.61.03-1.17.22-1.5.06-.03.12-.05.18-.06.44-.04.87.62.95 1.48.09.87-.2 1.6-.64 1.64Z" /></symbol>'}),Gi=(a().add(Ui),Ui),Wi=new(o())({id:"red_hat",use:"red_hat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="red_hat"><path d="m14.41 8.96-.19-.8a1.153 1.153 0 0 1 0 .01l-.63-2.72c-.14-.6-.27-.87-1.32-1.4-.81-.42-2.59-1.11-3.12-1.11-.49 0-.63.63-1.21.63-.56 0-.98-.47-1.5-.47-.5 0-.83.34-1.09 1.05 0 0-.71 1.99-.8 2.28v.01l-.31.76C2.83 7.28 1 7.53 1 9.14c0 2.65 6.27 5.91 11.23 5.91 3.81 0 4.77-1.72 4.77-3.08 0-1.07-.92-2.28-2.59-3.01ZM4.54 6.54v.08-.02a.064.064 0 0 1 0-.06Zm6.95 5.11c-3.93 0-7.37-2.3-7.37-3.82v-.04c.13-.31.3-.71.45-1.03v-.02c0 .01.01.02.01.03l.03.06c0 .01.01.02.01.03.01.02.02.04.04.07.01.01.01.02.02.03.01.02.03.05.05.07.01.01.02.03.03.04.02.02.03.05.05.07.01.01.02.03.03.04.02.02.03.04.05.06.02.02.04.04.05.06.02.02.03.04.05.05.02.02.04.05.07.07l.05.05.07.07.06.06c.02.02.05.04.08.07.02.02.05.04.07.06.02.02.04.04.06.05.03.03.07.05.1.08.02.02.04.04.07.05l.11.08c.02.02.05.03.07.05.04.03.08.06.12.08.02.02.05.03.07.05.04.03.08.05.12.08.03.02.06.04.08.05.04.02.08.05.11.07.03.02.06.04.1.06.04.02.08.05.12.07.03.02.06.04.1.06.04.03.09.05.13.08.03.01.05.03.08.04.05.03.11.06.16.08.02.01.05.02.07.04l.18.09c.02.01.05.02.07.03.06.03.13.06.19.09.02.01.05.02.07.03.07.03.13.06.2.09.02.01.05.02.07.03.07.03.14.06.22.08.02.01.04.02.06.02.08.03.15.06.23.08.02.01.04.01.05.02.08.03.16.05.24.08.01 0 .03.01.04.01.08.03.17.05.25.07.01 0 .02.01.04.01.09.02.18.05.27.07.02 0 .03.01.05.01l.27.06c.02 0 .03.01.05.01.09.02.18.04.28.05.02 0 .04.01.05.01.09.02.19.03.28.04.02 0 .03 0 .05.01.1.01.19.03.29.04h.05l.3.03h.04c.11.01.21.01.32.02h.02c.11 0 .23.01.34.01.98 0 2.37-.19 2.55-1.23.1.44.22.94.3 1.41-.15 1.03-1.4 1.58-2.99 1.58Z" /></symbol>'}),$i=(a().add(Wi),Wi),qi=new(o())({id:"suse_linux",use:"suse_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="suse_linux"><path d="M16.83 8.24c.01 0 .02-.01.03-.01.13-.04.77-.2.68-.45l-.47-1.26s-.16-.55-.87-.79-2.52-.79-3.07-.79v.63s-1.89-.79-4.88-.79-5.59 1.5-6.85 3.07c-1.26 1.57-1.01 3-.7 3.63.31.63 1.1 1.73 2.6 1.73s2.28-1.02 2.28-1.65c0-.7-.23-1.51-.84-1.92-.65-.42-1.58-.46-2.15.11-.68.68-.3 2.01.76 1.98.28-.01.73-.14.73-.48 0-.31-.16-.39-.39-.31-.24.08-.31.08-.47 0-.25-.13-.3-.5-.1-.69.26-.24.69-.2.96-.01.42.28.74.66.57 1.18-.16.49-.53.88-1.08.89-.56.01-1.17-.08-1.52-.57-.43-.61-.69-1.46-.26-2.13.55-.87 1.26-1.02 2.05-.94.79.08 2.2.87 2.44 1.57.24.71.31.87.31 1.1l1.1.55s-.47-1.26.24-1.89c.71-.63 1.65-.31 1.97-.08.32.23 1.34 1.18 1.5 1.5l1.5.71s-.47-.71-.71-1.34c-.24-.63 0-1.26.39-1.26s1.5.16 2.05.16c.55 0 2.52-.08 2.83-1.34-.02.08-.41.22-.49.25-.19.08-.39.15-.6.18-.38.07-.74.02-1.1-.11-.49-.16-.97-.39-1.43-.64l-.31-.71c.57.32 1.11.71 1.73.93.5.17 1.05.13 1.57-.01Zm-2.12-1.29c0-.59.48-1.06 1.06-1.06.58 0 1.06.48 1.06 1.06a1.06 1.06 0 0 1-2.12 0Zm1.81 0c0-.41-.33-.75-.75-.75s-.75.33-.75.75c0 .41.33.75.75.75s.75-.33.75-.75Zm-.93-.25c.03-.1.19-.14.36-.09.17.05.27.18.24.28-.03.1-.19.14-.36.09-.17-.05-.27-.18-.24-.28Z" /></symbol>'}),Yi=(a().add(qi),qi),Xi=new(o())({id:"ubuntu",use:"ubuntu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu"><path d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46Zm6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26Zm3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46ZM6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9Zm3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1Zm3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46Z" /></symbol>'}),Ki=(a().add(Xi),Xi),Ji=new(o())({id:"ubuntu_colored",use:"ubuntu_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu_colored"><path fill="#F26422" d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46Zm6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26Zm3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46ZM6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9Zm3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1Zm3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46Z" /></symbol>'}),Qi=(a().add(Ji),Ji),ea=new(o())({id:"notification",use:"notification-usage",viewBox:"0 0 40 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 24" id="notification"><path fill-rule="evenodd" d="M28 24c6.627 0 12-5.373 12-12S34.627 0 28 0 16 5.373 16 12s5.373 12 12 12Z" clip-rule="evenodd" /><path stroke="#fff" d="M23.5 12c0 6.351-5.149 11.5-11.5 11.5S.5 18.351.5 12 5.649.5 12 .5 23.5 5.649 23.5 12Z" /><path d="M14.718 15H9.459v-.897l2.606-2.841c.375-.42.642-.768.8-1.048.16-.283.241-.565.241-.848 0-.373-.105-.673-.316-.903-.208-.229-.49-.343-.844-.343-.422 0-.75.129-.983.386-.232.258-.349.61-.349 1.058H9.31c0-.476.107-.904.322-1.283.219-.383.528-.68.93-.892.404-.211.87-.317 1.396-.317.76 0 1.357.192 1.794.575.44.38.66.906.66 1.58 0 .39-.11.8-.332 1.23-.219.425-.579.91-1.08 1.455l-1.912 2.046h3.63V15ZM26.969 10.494h.795c.4-.004.718-.108.95-.312.237-.204.355-.5.355-.886 0-.372-.099-.66-.296-.865-.193-.208-.49-.311-.891-.311-.351 0-.64.102-.865.306-.226.2-.338.463-.338.79h-1.305c0-.402.105-.767.316-1.096.215-.33.512-.586.892-.768.383-.187.811-.28 1.284-.28.78 0 1.393.197 1.837.591.447.39.671.935.671 1.633 0 .35-.113.682-.338.994-.222.308-.51.54-.865.698.43.147.755.378.977.693.226.315.339.69.339 1.128 0 .701-.242 1.26-.725 1.675-.48.416-1.112.623-1.896.623-.752 0-1.368-.2-1.848-.601-.48-.401-.72-.935-.72-1.6h1.306c0 .343.114.622.343.837.233.215.544.322.935.322.404 0 .723-.107.956-.322.233-.215.349-.526.349-.934 0-.412-.122-.73-.365-.951-.244-.222-.605-.333-1.085-.333h-.768v-1.031Z" /></symbol>'}),ta=(a().add(ea),ea),na=new(o())({id:"padlock",use:"padlock-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="padlock"><path d="M13 7.5v-2c0-2.21-1.79-4-4-4s-4 1.79-4 4v2H3.5V11c0 3.03 2.47 5.5 5.5 5.5s5.5-2.47 5.5-5.5V7.5H13Zm-6.5-2a2.5 2.5 0 0 1 5 0v2h-5v-2ZM13 11c0 2.21-1.79 4-4 4s-4-1.79-4-4V9h8v2Zm-4.75 1.75c0 .41.34.75.75.75s.75-.34.75-.75v-.95A1.097 1.097 0 0 0 9 9.9a1.097 1.097 0 0 0-.75 1.9v.95Z" /></symbol>'}),ra=(a().add(na),na),oa=n(57138),ia=new(o())({id:"pause_outline",use:"pause_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pause_outline"><path d="M6.43 3H5.07C3.93 3 3 3.93 3 5.07v7.86C3 14.07 3.93 15 5.07 15h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C8.5 3.93 7.57 3 6.43 3ZM7 12.93c0 .31-.26.57-.57.57H5.07a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57v7.86ZM12.93 3h-1.36c-1.14 0-2.07.93-2.07 2.07v7.86c0 1.14.93 2.07 2.07 2.07h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C15 3.93 14.07 3 12.93 3Zm.57 9.93c0 .31-.26.57-.57.57h-1.36a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57v7.86Z" /></symbol>'}),aa=(a().add(ia),ia),sa=new(o())({id:"pause_solid",use:"pause_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pause_solid"><path d="M9.1 5H6.8c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9C11 5.8 10.2 5 9.1 5Zm8 0h-2.3c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9c0-1.1-.8-1.9-1.9-1.9Z" /></symbol>'}),ua=(a().add(sa),sa),la=new(o())({id:"pencil_outline",use:"pencil_outline-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pencil_outline"><path d="M9.76 0c-1.13 0-2.2.45-3 1.24L6 2 4.94 3.06.5 7.5 0 14l6.5-.5 6.26-6.26a4.242 4.242 0 0 0-3-7.24Zm1.94 6.18-5.86 5.86-2.26.17c-.21-.43-.49-.82-.84-1.15-.28-.26-.6-.48-.95-.65l.17-2.25L6 4.12 8.38 6.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44L7.06 3.06l.76-.76a2.744 2.744 0 0 1 3.88 3.88Z" /></symbol>'}),ca=(a().add(la),la),fa=new(o())({id:"pencil_solid",use:"pencil_solid-usage",viewBox:"0 0 19 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 19" id="pencil_solid"><path d="M17.71 4.043c.39-.39.39-1.04 0-1.41L15.37.292c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75 1.84-1.83ZM0 14.253v3.75h3.75l11.06-11.07-3.75-3.75L0 14.253Z" /></symbol>'}),da=(a().add(fa),fa),pa=new(o())({id:"pie_chart_skeleton",use:"pie_chart_skeleton-usage",viewBox:"0 0 100 100",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" id="pie_chart_skeleton"><path fill-rule="evenodd" d="m68.254 96.563-1.544-8.756A41.654 41.654 0 0 1 50 91.282c-23.083 0-41.795-18.712-41.795-41.795C8.205 26.404 26.917 7.692 50 7.692c.872 0 1.739.027 2.598.08L51.23.015A50.96 50.96 0 0 0 50 0C22.386 0 0 22.386 0 50s22.386 50 50 50c6.442 0 12.6-1.219 18.254-3.437Zm31.092-54.669a50.02 50.02 0 0 0-.224-1.27l.224 1.27Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="m95.04 28.262 1.687 4.637-7.31 2.66a41.73 41.73 0 0 1 2.377 13.928c0 23.083-18.712 41.795-41.794 41.795-.225 0-.45-.002-.674-.005l3.153 8.662C78.941 98.647 100 76.784 100 50a49.8 49.8 0 0 0-4.96-21.738Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M99.514 57c.32-2.287.486-4.624.486-7 0-27.614-22.385-50-50-50h-.256v7.693H50c23.083 0 41.795 18.711 41.795 41.794 0 2.565-.23 5.076-.673 7.513h8.392Z" clip-rule="evenodd" /></symbol>'}),ha=(a().add(pa),pa),ga=new(o())({id:"pin_element",use:"pin_element-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pin_element"><path d="M3.75 0h6.5A3.75 3.75 0 0 1 14 3.75C14 4.44 13.44 5 12.75 5h-.25V3.75a2.25 2.25 0 0 0-2.25-2.25h-6.5A2.25 2.25 0 0 0 1.5 3.75v6.5a2.25 2.25 0 0 0 2.25 2.25H5v.25C5 13.44 4.44 14 3.75 14A3.75 3.75 0 0 1 0 10.25v-6.5A3.75 3.75 0 0 1 3.75 0Z" /><path d="M12.5 7.25a.75.75 0 0 1 1.5 0V14H7.25a.75.75 0 0 1 0-1.5h4.19L6.47 7.53l1.06-1.06 4.97 4.969V7.25Z" /></symbol>'}),va=(a().add(ga),ga),ma=new(o())({id:"play_outline",use:"play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="play_outline"><path d="M13.73 7.24 5.94 3.05c-.2-.11-.42-.16-.62-.16C4.63 2.89 4 3.44 4 4.2v9.6c0 .77.63 1.32 1.32 1.32.21 0 .42-.05.62-.16l7.79-4.19c1.4-.76 1.4-2.78 0-3.53Zm-.71 2.2L5.5 13.49V4.51l7.52 4.05c.23.12.26.33.26.44 0 .11-.03.32-.26.44Z" /></symbol>'}),ya=(a().add(ma),ma),ba=new(o())({id:"play_solid",use:"play_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="play_solid"><path d="M21.728 10.702 5.619 1.5a1.738 1.738 0 0 0-.868-.234c-.917 0-1.759.734-1.759 1.759v17.95a1.76 1.76 0 0 0 1.759 1.759c.29 0 .587-.073.868-.234l16.109-9.201a1.496 1.496 0 0 0 0-2.597Z" /></symbol>'}),wa=(a().add(ba),ba),xa=new(o())({id:"plus",use:"plus-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus"><path fill-rule="evenodd" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2Z" clip-rule="evenodd" /></symbol>'}),_a=(a().add(xa),xa),Sa=new(o())({id:"plus_mini_s",use:"plus_mini_s-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus_mini_s"><path fill-rule="evenodd" d="M15.889 7H8.11C7.5 7 7 7.5 7 8.111v7.778C7 16.5 7.5 17 8.111 17h7.778C16.5 17 17 16.5 17 15.889V8.11C17 7.5 16.5 7 15.889 7ZM15 12.6h-2.4V15h-1.2v-2.4H9v-1.2h2.4V9h1.2v2.4H15v1.2Z" clip-rule="evenodd" /></symbol>'}),Oa=(a().add(Sa),Sa),Ca=new(o())({id:"pod",use:"pod-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="pod"><path d="M7 15h3v-3H7v3Zm4-11-7 6v8h7l7-6V4h-7Zm5.5 7.31-6.055 5.19H5.5v-5.81l6.055-5.19H16.5v5.81ZM15 7h-3v3h3V7Z" /></symbol>'}),Ea=(a().add(Ca),Ca),Aa=new(o())({id:"pricing",use:"pricing-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="pricing"><path d="M9.75 5.751 7.556 7.947l-.862-.862a.67.67 0 0 0-.942 0 .67.67 0 0 0 0 .942L7.555 9.83l3.138-3.138a.67.67 0 0 0 0-.942.67.67 0 0 0-.942 0ZM8 1.778c-2.596.026-4.64.649-6.222 1.778V7.11C1.75 9.618 4.426 12.97 8 14.222c3.573-1.253 6.249-4.604 6.222-7.11V3.555C12.64 2.426 10.595 1.804 8 1.778ZM8 12.79c-2.845-1.182-4.907-3.893-4.89-5.68V4.285C4.419 3.529 6.054 3.138 8 3.11c1.946.018 3.582.418 4.889 1.165V7.12c.017 1.778-2.045 4.489-4.89 5.671Z" /></symbol>'}),Ma=(a().add(Aa),Aa),ka=new(o())({id:"print",use:"print-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="print"><path d="M18 8.2v6.4l-1 1v2.3c0 .1-.1.2-.2.2H3.2c-.1-.1-.2-.2-.2-.3V16h10c1.1 0 2-.9 2-2H2v-3c0-.6.5-1 1-1h13V0H4v8H3c-1.7 0-3 1.4-3 3v4.4l1 1v1.4C1 19 2 20 3.2 20h13.7c1.2 0 2.2-1 2.2-2.2v-1.4l1-1V11c-.1-1.3-.9-2.4-2.1-2.8ZM6 2h8v6H6V2Z" /></symbol>'}),Pa=(a().add(ka),ka),Ra=new(o())({id:"privacy",use:"privacy-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="privacy"><path d="M11.556 6.667V4.889A3.555 3.555 0 0 0 8 1.333 3.555 3.555 0 0 0 4.445 4.89v1.778H3.11v3.11a4.897 4.897 0 0 0 4.89 4.89 4.897 4.897 0 0 0 4.888-4.89v-3.11h-1.333ZM5.778 4.889a2.223 2.223 0 0 1 4.444 0v1.778H5.778V4.889Zm5.778 4.889A3.555 3.555 0 0 1 8 13.333a3.555 3.555 0 0 1-3.555-3.555V8h7.11v1.778Zm-4.222 1.555c0 .365.302.667.666.667a.671.671 0 0 0 .667-.667v-.844A.975.975 0 0 0 8 8.8a.975.975 0 0 0-.666 1.689v.844Z" /></symbol>'}),Ta=(a().add(Ra),Ra),Ia=new(o())({id:"push_notifications",use:"push_notifications-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="push_notifications"><path d="M20.09 6.67 20 6.58V5c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48C12.35.19 11.73 0 11.07 0H3.93A3.93 3.93 0 0 0 0 3.93v14.14A3.93 3.93 0 0 0 3.93 22h7.14A3.93 3.93 0 0 0 15 18.07V13h-2.69C10.06 13 8.08 11.28 8 9.03c-.04-1.05.32-2.05 1-2.84V5c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22ZM9.5 18c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h4Zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H14c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C16.32 1.69 18 3.15 18 5v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),Ba=(a().add(Ia),Ia),Da=new(o())({id:"qr_code",use:"qr_code-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="qr_code"><path d="M11.323 16.226c0-.428.346-.774.774-.774a3.355 3.355 0 0 0 3.355-3.355v-1.032a.774.774 0 0 1 1.548 0v1.032A4.903 4.903 0 0 1 12.097 17a.774.774 0 0 1-.774-.774ZM6.677 16.226a.774.774 0 0 1-.774.774A4.903 4.903 0 0 1 1 12.097v-1.032a.774.774 0 0 1 1.548 0v1.032a3.355 3.355 0 0 0 3.355 3.355c.428 0 .774.346.774.774ZM6.677 1.774a.774.774 0 0 1-.774.774 3.355 3.355 0 0 0-3.355 3.355v1.032a.774.774 0 0 1-1.548 0V5.903A4.903 4.903 0 0 1 5.903 1c.428 0 .774.347.774.774ZM11.323 1.774c0-.427.346-.774.774-.774A4.903 4.903 0 0 1 17 5.903v1.032a.774.774 0 1 1-1.548 0V5.903a3.355 3.355 0 0 0-3.355-3.355.774.774 0 0 1-.774-.774ZM3.684 8.071a.774.774 0 0 0 0 1.548h10.322a.774.774 0 0 0 0-1.548H3.685Z" /></symbol>'}),ja=(a().add(Da),Da),La=new(o())({id:"question",use:"question-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="question"><path d="M10 12.6c-.77 0-1.4.63-1.4 1.4 0 .77.63 1.4 1.4 1.4.77 0 1.4-.63 1.4-1.4 0-.77-.63-1.4-1.4-1.4ZM10 0C4.49 0 0 4.49 0 10s4.49 10 10 10 10-4.49 10-10S15.51 0 10 0Zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8Zm.06-13h-.11C8.32 5 7 6.32 7 7.94V8l2-.06c0-.52.42-.94.94-.94h.11c.52 0 .94.42.94.94 0 .25-.15.49-.38.6l-.12.05a2.87 2.87 0 0 0-1.65 2.59v.61h2v-.61c0-.33.19-.64.49-.78l.12-.05c.93-.44 1.53-1.38 1.53-2.41C13 6.32 11.68 5 10.06 5Z" /></symbol>'}),Za=(a().add(La),La),Na=new(o())({id:"questionFilled",use:"questionFilled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="questionFilled"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2Zm0 15.4c-.77 0-1.4-.63-1.4-1.4 0-.77.63-1.4 1.4-1.4.77 0 1.4.63 1.4 1.4 0 .77-.63 1.4-1.4 1.4Zm1.55-5.06c-.48.22-.55.47-.55.76v.65h-2v-.96c0-.87.48-1.65 1.26-2.04l.4-.2c.21-.11.34-.32.34-.55 0-.55-.45-1-1-1s-1 .45-1 1H9c0-1.65 1.35-3 3-3s3 1.35 3 3c0 1-.55 1.9-1.45 2.34Z" /></symbol>'}),Fa=(a().add(Na),Na),Ha=new(o())({id:"ram",use:"ram-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ram"><path d="m7.5 8.5 2 2 1-1-2-2-1 1ZM5 11l2 2 1-1-2-2-1 1Zm5-5 2 2 1-1-2-2-1 1Zm7 1-6-6L1 11l6 6 1-1 1 1 8-8-1-1 1-1Zm-2.12 2L9 14.88l-1-1-1 1L3.12 11 11 3.12 14.88 7l-1 1 1 1Z" /></symbol>'}),Va=(a().add(Ha),Ha),za=n(16071),Ua=new(o())({id:"reduce_size",use:"reduce_size-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="reduce_size"><path d="M2 6.75A.75.75 0 0 1 2.75 6h2.189L1.97 3.03l1.06-1.061L6 4.939v-2.19a.75.75 0 0 1 1.5 0v3.69l.03.03-.03.03v1h-1l-.031.03-.03-.03H2.75A.75.75 0 0 1 2 6.75ZM11.31 2a.75.75 0 0 1 .75.75v2.189l2.97-2.97 1.061 1.06L13.121 6h2.189a.75.75 0 0 1 0 1.5h-3.69l-.03.03-.03-.03h-1v-1l-.03-.03.03-.03v-3.69a.75.75 0 0 1 .75-.75ZM2 11.31c0 .414.336.75.75.75h2.189L1.97 15.03l1.06 1.06L6 13.12v2.19a.75.75 0 0 0 1.5 0v-3.69l.03-.03-.03-.03v-1h-1l-.031-.03-.03.03H2.75a.75.75 0 0 0-.75.75ZM11.31 16.06a.75.75 0 0 0 .75-.75v-2.19l2.97 2.97 1.061-1.06-2.97-2.97h2.189a.75.75 0 0 0 0-1.5h-3.69l-.03-.03-.03.03h-1v1l-.03.03.03.03v3.69c0 .414.336.75.75.75Z" /></symbol>'}),Ga=(a().add(Ua),Ua),Wa=new(o())({id:"refresh",use:"refresh-usage",viewBox:"0 0 18 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 19" id="refresh"><path d="M9 14.524c-1.867 0-3.487-1.023-4.365-2.531h2.947a.85.85 0 0 0 .844-.844.85.85 0 0 0-.844-.843H2.25v5.343a.85.85 0 0 0 .844.844.85.85 0 0 0 .844-.844v-1.755C5.175 15.312 6.974 16.212 9 16.212a6.741 6.741 0 0 0 6.716-6.188h-1.721c-.27 2.52-2.396 4.5-4.995 4.5Zm5.906-12.093a.85.85 0 0 0-.844.843V5.03C12.825 3.612 11.026 2.712 9 2.712a6.741 6.741 0 0 0-6.716 6.187h1.721C4.275 6.38 6.401 4.4 9 4.4c1.867 0 3.488 1.024 4.365 2.532h-2.959a.85.85 0 0 0-.844.843.85.85 0 0 0 .844.844h5.344V3.274a.85.85 0 0 0-.844-.843Z" /></symbol>'}),$a=(a().add(Wa),Wa),qa=new(o())({id:"reload",use:"reload-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="reload"><path fill-rule="evenodd" d="M12.77 20.047c3.228-.362 5.814-2.942 6.183-6.17.483-4.221-2.798-7.814-6.91-7.86V4.124c0-.106-.131-.161-.22-.096L7.924 6.891a.12.12 0 0 0 0 .194l3.899 2.863c.088.066.22.007.22-.095v-1.89c2.89.046 5.204 2.505 5.006 5.444-.167 2.527-2.228 4.579-4.756 4.74a5.105 5.105 0 0 1-5.365-4.274.971.971 0 0 0-.96-.812.963.963 0 0 0-.956 1.105 7.048 7.048 0 0 0 7.758 5.88Z" clip-rule="evenodd" /></symbol>'}),Ya=(a().add(qa),qa),Xa=new(o())({id:"remove_node",use:"remove_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="remove_node"><path d="M3.5 6.55c0-1.68 1.37-3.05 3.05-3.05H8V2H6.55C4.04 2 2 4.04 2 6.55V8h1.5V6.55Zm7.71-5.27c-.4-.12-.81.12-.93.52l-.06.21-.22.77-1.21 4.24C7.78 7.13 7 7.97 7 9c0 .64.31 1.2.77 1.56L6.65 14.5h-.1c-1.68 0-3.05-1.37-3.05-3.05V10H2v1.45c0 2.41 1.89 4.37 4.27 4.52a.742.742 0 0 0 .74.78c.33 0 .63-.21.72-.54l4-14c.1-.4-.13-.82-.52-.93Zm2.6 1.39-.44 1.53c.68.56 1.13 1.4 1.13 2.35V8H16V6.55c0-1.65-.88-3.08-2.19-3.88Zm.69 8.78c0 1.68-1.37 3.05-3.05 3.05h-1.03L9.99 16h1.45c2.51 0 4.55-2.04 4.55-4.55V10h-1.5v1.45h.01Z" /></symbol>'}),Ka=(a().add(Xa),Xa),Ja=n(259),Qa=new(o())({id:"rocket",use:"rocket-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rocket"><path d="m15.788 11.25-2.862-1.717c-.038.94-.172 1.807-.326 2.53H16v-.438a.437.437 0 0 0-.212-.375ZM12.26 13.375h3.303a.438.438 0 0 0 .437-.438V12.5h-3.5a15.72 15.72 0 0 1-.24.875ZM5.074 9.533 2.212 11.25a.436.436 0 0 0-.212.375v.438h3.4a15.12 15.12 0 0 1-.326-2.53ZM2 12.5v.438c0 .241.196.437.438.437H5.74a15.496 15.496 0 0 1-.24-.875H2ZM9 16c.45 0 .927-.512 1.058-1.313H7.942C8.073 15.488 8.55 16 9 16ZM9.243 2.074a.437.437 0 0 0-.486 0C7.183 3.123 5.5 5.494 5.5 9c0 .962.113 1.861.258 2.625h6.484A14.14 14.14 0 0 0 12.5 9c0-3.506-1.683-5.877-3.257-6.926ZM9 8.563a1.313 1.313 0 1 1 0-2.626 1.313 1.313 0 0 1 0 2.625Z" /><path d="M9 8.125a.875.875 0 1 0 0-1.75.875.875 0 0 0 0 1.75ZM6.406 13.975a.438.438 0 0 0 .407.275h4.375c.178 0 .34-.109.406-.275.02-.053.312-.792.558-1.912H5.848c.246 1.12.537 1.86.558 1.912Z" /></symbol>'}),es=(a().add(Qa),Qa),ts=new(o())({id:"room",use:"room-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="room"><path fill-rule="evenodd" d="M9 6a1 1 0 0 0-1 1v1H7a1 1 0 1 0 0 2h1v4H7a1 1 0 1 0 0 2h1v1a1 1 0 1 0 2 0v-1h4v1a1 1 0 1 0 2 0v-1h1a1 1 0 1 0 0-2h-1v-4h1a1 1 0 1 0 0-2h-1V7a1 1 0 1 0-2 0v1h-4V7a1 1 0 0 0-1-1Zm5 8v-4h-4v4h4Z" clip-rule="evenodd" /></symbol>'}),ns=(a().add(ts),ts),rs=new(o())({id:"room_home",use:"room_home-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="room_home"><path d="M11.93 0H2.07C.93 0 0 .93 0 2.07v5.85c0 1.14.93 2.07 2.07 2.07H6.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.14 0 2.07-.93 2.07-2.07V2.07C14 .93 13.07 0 11.93 0Zm0 9H2.07c-.57 0-1.02-.44-1.06-1h11.97c-.03.56-.49 1-1.05 1ZM13 7H1V2.07C1 1.48 1.48 1 2.07 1h9.85c.59 0 1.07.48 1.07 1.07V7H13Z" /></symbol>'}),os=(a().add(rs),rs),is=new(o())({id:"room_new",use:"room_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="room_new"><path d="M2.567 10h6.866A2.57 2.57 0 0 0 12 7.433V2.567A2.57 2.57 0 0 0 9.433 0H2.567A2.57 2.57 0 0 0 0 2.567v4.866A2.57 2.57 0 0 0 2.567 10ZM2 2.567C2 2.255 2.254 2 2.567 2h6.866c.312 0 .567.254.567.567v4.866A.568.568 0 0 1 9.433 8H2.567A.568.568 0 0 1 2 7.433V2.567ZM15.14 0h-1.933c.398.583.644 1.267.736 2h1.197A2.863 2.863 0 0 1 18 4.86v10.28A2.863 2.863 0 0 1 15.14 18H4.86A2.863 2.863 0 0 1 2 15.14v-3.197a4.541 4.541 0 0 1-2-.736v3.933C0 17.82 2.18 20 4.86 20h10.28c2.68 0 4.86-2.18 4.86-4.86V4.86C20 2.18 17.82 0 15.14 0Z" /></symbol>'}),as=(a().add(is),is),ss=new(o())({id:"room_overview",use:"room_overview-usage",viewBox:"0 0 24 25",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" id="room_overview"><path d="m16 8.5 2.667-2.666L21.334 8.5v.16l-2 1.507v-.84l-.667-.667L16 11.327l-5.333-5.333L8 8.66 6.667 7.327l-2 2v1.013l-2 2V8.5l4-4L8 5.834l2.667-2.667L16 8.5Z" /><path fill-rule="evenodd" d="m8 12.5 2.667-2.666L16 15.167l5.334-4v6.107c0 2.52-2.04 4.56-4.56 4.56H7.227c-2.52 0-4.56-2.04-4.56-4.56v-2.107l4-4L8 12.5Zm11.334 4.774v-2.107l-3.52 2.64-5.147-5.147L8 15.327l-1.333-1.333-2 2v1.28a2.56 2.56 0 0 0 2.56 2.56h9.547a2.56 2.56 0 0 0 2.56-2.56Z" clip-rule="evenodd" /></symbol>'}),us=(a().add(ss),ss),ls=new(o())({id:"sad",use:"sad-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="sad"><path fill-rule="evenodd" d="M17.93 20.666A10.453 10.453 0 0 1 12 22.5C6.201 22.5 1.5 17.799 1.5 12S6.201 1.5 12 1.5 22.5 6.201 22.5 12c0 1.482-.308 2.922-.895 4.248l1.34 2.476a1.5 1.5 0 0 1 .165.934 1.506 1.506 0 0 1-1.56 1.278l-.144-.014-3.174-.47-.302.214ZM8.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm7.514 5.832c-2.81-1.774-5.406-1.774-7.889-.014a.5.5 0 1 1-.578-.816c2.822-2 5.856-2 9-.015a.5.5 0 1 1-.533.845ZM15.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm-13 1a9.5 9.5 0 1 1 19 0 9.461 9.461 0 0 1-.905 4.053l-.108.229 1.578 2.918a.5.5 0 0 1-.454.738l-.087-.009-3.563-.529-.168.13A9.455 9.455 0 0 1 12 21.5 9.5 9.5 0 0 1 2.5 12Z" clip-rule="evenodd" /></symbol>'}),cs=(a().add(ls),ls),fs=new(o())({id:"save",use:"save-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="save"><path d="m7 11.061 4.03-4.03A.75.75 0 1 0 9.969 5.97l-2.22 2.22V0h-1.5v8.189L4.03 5.97a.75.75 0 1 0-1.061 1.061L7 11.061ZM0 12.5V14h14v-1.5H0Z" /></symbol>'}),ds=(a().add(fs),fs),ps=new(o())({id:"search",use:"search-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search"><path d="M5 8h1c0-1.1.9-2 2-2V5C6.34 5 5 6.34 5 8Zm10.53 6.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06ZM8 12.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 3.5 8 3.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5Z" /></symbol>'}),hs=(a().add(ps),ps),gs=new(o())({id:"search_s",use:"search_s-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="search_s"><path fill-rule="evenodd" d="m10.122 9.143 3.673 3.66A.701.701 0 0 1 13.296 14a.703.703 0 0 1-.497-.204L9.12 10.128a5.648 5.648 0 0 1-3.45 1.178C2.543 11.306 0 8.77 0 5.653 0 2.536 2.544 0 5.67 0c3.127 0 5.67 2.536 5.67 5.653a5.61 5.61 0 0 1-1.218 3.49Zm-4.45-7.74c-2.351 0-4.265 1.906-4.265 4.25 0 2.343 1.914 4.25 4.264 4.25 2.351 0 4.264-1.907 4.264-4.25 0-2.344-1.913-4.25-4.264-4.25Z" clip-rule="evenodd" /></symbol>'}),vs=(a().add(gs),gs),ms=new(o())({id:"search_press",use:"search_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search_press"><path d="m15.53 14.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06ZM8 6c-1.1 0-2 .9-2 2H5c0-1.66 1.34-3 3-3v1Z" /></symbol>'}),ys=(a().add(ms),ms),bs=new(o())({id:"apache",use:"apache-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache"><path d="M4.91 16.7c.18-.5.35-1 .54-1.5.21.07.42.14.64.22-.16.53-.31 1.06-.48 1.59l-.7-.31Zm8.95-10.95c-.3.3-.8.48-1.37.42 0 0 .53.22 1.16.38-.14.47-.29.96-.46 1.47-.39.17-.79.29-1.13.26.35.15.65.25.93.33-.03.1-.07.19-.11.29-.42.06-.96.09-1.64.02.39.27.86.47 1.32.62-1.43 2.55-4.21 3.39-4.21 3.39 1.21.84 2.02.21 2.02.21-.62 1.37-1.83.53-1.83.53.19.74 1.21.84 1.21.84-.82.63-3.04-.31-3.04-.31 1.21.84.39 1.48.39 1.48-.13-.49-.6-.69-.92-.77.1-.34.2-.68.3-1.03.16-.55.33-1.1.5-1.64.17-.55.34-1.09.52-1.64.43-1.29.87-2.58 1.36-3.84.52-1.26 1.02-2.53 1.84-3.65-.87 1.09-1.43 2.34-2 3.57-.55 1.24-1.05 2.51-1.54 3.78-.09.24-.18.48-.27.71-.2.54-.39 1.07-.59 1.61l-.57 1.62c-.03.09-.06.19-.09.28-.4-.21-1.18-.52-1.77-.06-.19-.74.82-.63.82-.63-1.21-.84-.19-.74-.19-.74.19.74 1.21.84 1.21.84-.19-.74-1.59-2.32-1.59-2.32 1.01.1 1.21.84 1.21.84-.97-3.69 1.91-7.71 2.54-9.08.62-1.37 2.85-2.95 4.28-2.43 2.16.78 2.27 2.4 1.71 4.65Z" /></symbol>'}),ws=(a().add(bs),bs),xs=new(o())({id:"apache_tomcat",use:"apache_tomcat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache_tomcat"><path d="M16.58 9.12v-.23h-.92c-.04.08-.09.15-.13.23h1.05Zm0-.54v-.23h-.64c-.04.08-.07.15-.11.23h.75Zm1.15 6.04c-.34-.38-1.01-.57-1.57-.55-.36-.43-2.26-2.43-2.63-2.83.79-.55 1.47-1.27 2-2.13h-.77v-.23h.9c.06-.1.11-.21.17-.31h-1.07v-.23h1.18c.47-1.02.74-2.19.71-3.47 0-.35-.11-1.84-.31-2.24-.54.21-1.54.88-1.76 1.57-1.07-.16-2.29-.14-3.35.04-.18-.74-1.07-1.31-1.74-1.62-.29.48-.41 1.59-.38 2.37H9.1c.03.71.12 1.37.28 1.97-2.32.58-4.84 2.1-6.26 3.56-.66-.89-.93-1.63-1-2.18-.1-.7.07-1.34.49-1.86.65-.81 1.58-.86 2.53-.71-.02.15 0 .29.06.38.25.37 1.6.5 2.41.14-.59-.84-1.8-1.24-2.14-1.08-.11.06-.19.15-.25.27-.33-.06-.66-.1-.89-.1-.84.01-1.48.3-1.96.89-.47.59-.66 1.31-.55 2.1.11.75.47 1.54 1.1 2.37l-.3.33C1.1 12.77 0 14.58 0 14.88v.16h1.99l-.03-.19c-.11-.59.11-1.34.57-1.89.29-.35.77-.75 1.52-.93.67.66 1.52 1.34 2.47 2.02H8v-.16c0-.18-.08-.33-.24-.44-.23-.15-.59-.18-.93-.06-.32-.35-.49-.82-.53-1.41 3.21.28 6.29 1.58 9.76 3.4h1.91l.02-.12c.03-.18-.06-.42-.26-.64Zm-1.4-8.06-.14.41-.62-.1.76-.31Zm-.31.92-.11.34-.47-.17.58-.17Zm-1.16-3.23c-.01 0-.02-.01-.02-.01s.01.01.02.01Zm-1.43.06-.38 1.3-.58-1.28.96-.02Zm-2.99 2.38-.84.05-.09-.55.93.5Zm-.13.73-.47.13-.09-.36.56.23ZM4.67 9.51l.53-.4.26.94-.79-.54Zm1.17-.77.6-.36.54.94-1.14-.58Zm1.06-.55 1.03-.47.51 1.51L6.9 8.19Zm4.13.93H9.21v-.23h1.82v.23Zm0-.54H9.21v-.23h1.82v.23Zm1.2.77-.11-.17.65-.43-1.15-.72.05-.08c.15-.26.28-.59.37-.92h-.88v-.2h.92c.11-.49.14-.95 0-1.19-.06-.1-.14-.15-.25-.15-.53 0-.75.56-.75.58L10.89 6c.01-.03.28-.71.94-.71.19 0 .33.08.43.25.17.29.15.78.03 1.29h1.61c.21-.63.66-.93 1.41-.93v.2c-.81 0-1.04.34-1.2.73h.88v.2l-.88-.01h-.08c-.1.34-.02.64.21 1-.06.03-1.14.74-1.13.74l.72.45-.11.17-.79-.51-.7.48Zm1.39 2.29.37.36-.86.4.49-.76Zm-.02 1.46.79-.6.31.32-1.1.28Zm-1.51-5.01.85.54.81-.54h-1.66Zm1.74-1.07h-1.59c-.08.32-.2.62-.33.87h2.06c-.18-.3-.21-.64-.14-.87Z" /></symbol>'}),_s=(a().add(xs),xs),Ss=new(o())({id:"beanstalk",use:"beanstalk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="beanstalk"><path d="M8.37 8.56c-.29 0-.54.11-.76.32-.22.21-.33.57-.33 1.06 0 .36.04.65.13.87.17.42.48.63.94.63.34 0 .6-.14.77-.41.17-.27.26-.64.26-1.08 0-.4-.09-.73-.26-.99-.16-.27-.41-.4-.75-.4ZM6.99 5.64c-1.61-.73-4.05-.68-4.56-.71-.52-.03-1.27-.15-1.41-.57.08 1.24.58 4 1.57 5.94.99 1.94 3.11 2.79 4.15 3.08 1.04.29 2.7.28 3.11.3.41.02.55.43.65.9.11.53.05 1.72-.27 2.42h.72c.13-2.14-.14-4.86-.58-7.23-.44-2.36-1.77-3.4-3.38-4.13Zm2.61 5.77c-.29.4-.69.59-1.21.59-.29 0-.53-.07-.73-.21-.12-.08-.24-.21-.38-.4v.49H6.7V6.66h.62v1.89c.14-.18.31-.32.5-.42.19-.1.4-.14.63-.14.47 0 .86.16 1.15.49.29.32.44.8.44 1.44 0 .6-.15 1.09-.44 1.49ZM16.98 1c-.3.29-1.48.42-1.92.44-.44.02-2.03.07-3.47 1.17-1.44 1.1-1.55 4.67-1.2 6.37-.13-.92.28-1.36.51-1.47.34-.16.68-.08 1.45-.13 1.25-.08 2.46-.92 3.3-2C16.49 4.29 17 1.71 16.98 1Z" /></symbol>'}),Os=(a().add(Ss),Ss),Cs=new(o())({id:"bind",use:"bind-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="bind"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm.02-1.128a5.892 5.892 0 1 0-5.206-3.131c.123.206.25.394.38.581.215.312.456.604.762.866.355.305.759.597 1.223.657.185.024.334.024.334.024h.314l.815-.084.188-.02c.15-.018.453-.091.585-.126.773-.23 1.525-.982 1.63-1.087.083-.083.3-.369.397-.501.054-.07.03-.17.006-.27l-.005-.021a3.113 3.113 0 1 1 1.65-3.131c.122.655.227 1.762-.084 2.586-.48 1.275-.773 1.65-1.484 2.382-.535.551-1.248.886-1.591 1.004a.087.087 0 0 0-.06.083.194.194 0 0 1-.12.182c.09.004.178.006.267.006Zm-1.368-.16a8.949 8.949 0 0 1-1.012-.341c.323.143.661.257 1.012.34ZM10.069 8A2.069 2.069 0 1 1 5.93 8a2.069 2.069 0 0 1 4.138 0Z" clip-rule="evenodd" /></symbol>'}),Es=(a().add(Cs),Cs),As=new(o())({id:"containerTech",use:"containerTech-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="containerTech"><path d="M10.42 1.81c-.46-.34-1.02-.53-1.59-.53-.41 0-.82.1-1.19.28L2.61 4.08l4.45 3.34 6.5-3.25-3.14-2.36Zm-1.79.5c.07-.01.13-.02.2-.02.02 0 .04.01.06.01a.758.758 0 0 0-.26.01ZM2 9.47c0 .65.31 1.26.83 1.65L6.4 13.8l.1.08V8.25L2 4.88v4.59Zm5.5-1.16v5.56l1.5-.75V9.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l1-.5V8.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l.86-.43c.7-.35 1.14-1.06 1.14-1.85V5.06L7.5 8.31Z" /></symbol>'}),Ms=(a().add(As),As),ks=new(o())({id:"coreDNS",use:"coreDNS-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="coreDNS"><path d="m7.508 7.097-.074-.074L5.48 8.977l-.013.014a.661.661 0 0 0-.11.15l-.003.004-.029.06a.697.697 0 0 0 .151.753l.394.394 1.635-1.636a1.142 1.142 0 0 0 .003-1.62Z" /><path d="m14.405 5.14-.84-.841a1.143 1.143 0 0 0-1.536-.074c-.03.022-.055.048-.084.074l-.64.64 2.005 2.007c.05.051.098.106.142.164l.003.005c.03.173.052.35.068.526l-.003.003a5.812 5.812 0 0 0-.071-.528 1.365 1.365 0 0 0-.142-.164l-2.003-2.01L9.112 2.75a1.632 1.632 0 0 0-2.3 0l-4.53 4.527a1.63 1.63 0 0 0-.24 1.987l.002.004-.434.427a1.145 1.145 0 0 0 0 1.62l.84.84a1.148 1.148 0 0 0 1.62 0l.394-.394 2.014 2.014a1.632 1.632 0 0 0 2.299 0l4.533-4.527a1.623 1.623 0 0 0 .358-1.752l-.073.073.076-.076-.002-.005.733-.732a1.144 1.144 0 0 0 .003-1.617Zm-3.493 2.55a1.25 1.25 0 0 1 0 0ZM7.623 11.12a1.304 1.304 0 0 1-1.841 0l-.342-.34-.977.976-1.091-1.091 1.09 1.09.978-.979-.39-.39a1.316 1.316 0 0 1-.232-1.526c.061-.116.14-.223.233-.315l1.952-1.953.002.002 1.046-1.047a1.302 1.302 0 0 1 1.842 0l.4.4-.429.428.002.001-.002.002-.402-.403a.68.68 0 0 0-.622-.193.693.693 0 0 0-.357.19L7.437 7.02l.075.074a1.145 1.145 0 0 1 0 1.62l-1.64 1.638.342.341a.691.691 0 0 0 .753.152l.062-.03c.003 0 .003-.003.006-.003a.72.72 0 0 0 .161-.119l1.32-1.32-.013-.013a1.145 1.145 0 0 1 0-1.62l.003-.002a1.144 1.144 0 0 0 0 1.62l.012.01-.002.002.428.428 1.681-1.68a.867.867 0 0 0 0 .003l-3 3Z" /></symbol>'}),Ps=(a().add(ks),ks),Rs=new(o())({id:"couchDB",use:"couchDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="couchDB"><path d="M14 10.75c0 .66-.35.99-1 1H5c-.65-.01-1-.34-1-1 0-.66.35-.99 1-1h8c.65.01 1 .34 1 1Zm-1 1.5H5c-.65.01-1 .34-1 1 0 .66.35.99 1 1h8c.65-.01 1-.34 1-1 0-.66-.35-.99-1-1Zm2.5-5.5c-.65.01-1 .34-1 1v5.5c0 .66.35.99 1 1 .98-.03 1.5-1.01 1.5-3v-2.5c0-1.33-.52-1.98-1.5-2Zm-13 0c-.98.02-1.5.67-1.5 2v2.5c0 1.99.52 2.96 1.5 3 .65-.01 1-.34 1-1v-5.5c0-.66-.35-.99-1-1Zm13-.5c0-1.66-.87-2.47-2.5-2.5H5c-1.63.03-2.5.84-2.5 2.5.98.02 1.5.5 1.5 1.5 0 .99.52 1.48 1.5 1.5h7c.98-.02 1.5-.5 1.5-1.5 0-.99.52-1.48 1.5-1.5Z" /></symbol>'}),Ts=(a().add(Rs),Rs),Is=new(o())({id:"database",use:"database-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="database"><path d="M9 10c5.153 0 7.5-2.073 7.5-4S14.153 2 9 2C3.847 2 1.5 4.073 1.5 6s2.347 4 7.5 4Zm0-6.5c3.313 0 6 1.119 6 2.5s-2.687 2.5-6 2.5S3 7.381 3 6s2.687-2.5 6-2.5Zm5.566 9.431C13.68 13.85 11.523 14.5 9 14.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 12c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369Zm0-3C13.68 10.85 11.523 11.5 9 11.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 9c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369Z" /></symbol>'}),Bs=(a().add(Is),Is),Ds=new(o())({id:"dns",use:"dns-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dns"><path d="M12.233 9.344c-.564 0-1.174-.151-1.19-.745l-.552.002c0 .907.865 1.172 1.7 1.172.743 0 1.588-.246 1.588-1.084 0-.68-.822-.796-1.112-.848l-.906-.14c-.456-.07-.604-.232-.604-.435 0-.389.46-.54.858-.54.885 0 1.058.354 1.099.61h.549c-.056-.796-.828-1.037-1.575-1.037-.947 0-1.48.398-1.48 1.005 0 .643.658.805 1.098.865l.84.124c.428.07.687.19.687.49-.002.357-.42.561-1 .561ZM3.154 3.801a6.836 6.836 0 0 1 1.888-1.216c-.512.616-.933 1.385-1.24 2.264h1.112c.176-.449.388-.86.631-1.234.355-.535.775-.967 1.212-1.247.234-.148.47-.256.713-.319v2.8h1.053v-2.8c.242.063.479.17.713.32.438.277.856.71 1.21 1.246.245.372.457.785.634 1.232h1.109c-.306-.878-.729-1.648-1.24-2.264a6.82 6.82 0 0 1 1.89 1.217c.355.319.664.672.931 1.047h1.213c-1.325-2.274-3.954-3.825-6.986-3.825-3.032 0-5.662 1.551-6.988 3.825H2.22c.268-.375.579-.727.934-1.046ZM9.446 9.012h-.012L7.059 6.38H6.42v3.306h.549V7.055h.01l2.377 2.632h.638V6.381h-.55v2.63ZM4.155 6.38H2.28v3.306h1.907c1.133 0 1.584-.778 1.584-1.699.001-.959-.507-1.607-1.616-1.607Zm.007 2.88-1.33-.002V6.806h1.227c.952 0 1.166.61 1.166 1.189-.002.589-.162 1.266-1.063 1.266ZM12.84 12.22a6.859 6.859 0 0 1-1.89 1.216c.514-.615.935-1.386 1.24-2.264h-1.11c-.176.448-.389.86-.635 1.233-.353.536-.774.968-1.211 1.249a2.542 2.542 0 0 1-.711.317V11.17H7.472v2.8c-.24-.064-.48-.171-.714-.318-.438-.28-.854-.711-1.21-1.249a6.986 6.986 0 0 1-.635-1.233H3.802c.305.879.728 1.648 1.24 2.264a6.836 6.836 0 0 1-1.888-1.217 6.42 6.42 0 0 1-.934-1.047H1.01c1.327 2.276 3.956 3.827 6.988 3.827 3.032 0 5.662-1.551 6.988-3.827h-1.213c-.268.377-.577.73-.931 1.05Z" /></symbol>'}),js=(a().add(Ds),Ds),Ls=new(o())({id:"docker_hub_press",use:"docker_hub_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub_press"><path d="M7.9 3.77H6.42v1.47H7.9V3.77Zm2.21 2.21H8.63v1.47h1.47V5.98h.01Zm0-2.21H8.63v1.47h1.47V3.77h.01Zm4.87 3.49c-.13-.02.16-2.05-1.5-1.99 0 0-.84 1.12-.5 1.99.41 1.04-1.5 1-1.5 1h-9.6C.81 8.26.16 9.45.75 10.34c1.15 1.73 2.76 3.9 5.75 3.9h1c1.34 0 2.46-.34 3.35-.79 1.35-.68 2.33-1.89 2.96-3.26.25-.53.67-1.08 1.34-1.14 1.33-.11 2.33-.66 2.32-1.8 0 .01-1.35-.52-2.49.01ZM5.69 5.98H4.21v1.47h1.47V5.98h.01Zm2.21 0H6.42v1.47H7.9V5.98Z" /></symbol>'}),Zs=(a().add(Ls),Ls),Ns=new(o())({id:"docker_hub",use:"docker_hub-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub"><g clip-path="url(#docker_hub_a)"><path d="M9.98 4.37v1.3h-1.3v-1.3h1.3Zm-1.96 0v1.3h-1.3v-1.3h1.3Zm5.01 1.32c1.4 0 1.15 1.75 1.26 1.77.34-.15.7-.21 1.02-.21.65 0 1.18.21 1.18.21.01 1-.87 1.49-2.05 1.59-.6.05-.97.53-1.19 1.01-.56 1.21-1.43 2.28-2.62 2.89-.79.4-1.77.7-2.96.7h-.88c-2.65 0-4.07-1.92-5.09-3.45-.52-.79.05-1.84 1-1.84h8.53c.21 0 1.63-.03 1.3-.88-.3-.77.44-1.77.44-1.77.02-.02.04-.02.06-.02Zm-3.05.63v1.3h-1.3v-1.3h1.3Zm-1.96 0v1.3h-1.3v-1.3h1.3Zm-1.95 0v1.3h-1.3v-1.3h1.3Zm5.41-3.45H5.22v1.96H3.26v2.02H2.7c-1 0-1.91.55-2.38 1.42-.47.87-.42 1.93.13 2.75.89 1.34 2.74 4.12 6.34 4.12h.88c1.29 0 2.51-.29 3.64-.86 1.4-.71 2.55-1.95 3.31-3.59.03-.07.06-.12.09-.16 2.44-.25 3.3-1.75 3.29-3.08l-.01-1.02-.95-.37c-.13-.05-.78-.29-1.61-.31-.59-1.38-1.81-1.56-2.4-1.56h-.11l-.72.03-.43.58c-.06.07-.17.23-.29.45V2.87Z" /></g><defs><clipPath id="docker_hub_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'}),Fs=(a().add(Ns),Ns),Hs=new(o())({id:"dotnet",use:"dotnet-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dotnet"><path d="M2.389 9.991c0 .127-.054.24-.14.32a.488.488 0 0 1-.672 0 .44.44 0 0 1 .001-.64.49.49 0 0 1 .672 0c.085.08.139.194.139.32Zm4.758.379h-.852L4.053 6.83c-.052-.08-.1-.171-.138-.268l-.003-.01h-.02a4.874 4.874 0 0 1 .026.668v-.007 3.156h-.753V5.556h.907L6.24 9.011c.091.143.15.242.177.296h.013a4.205 4.205 0 0 1-.033-.653v.005-3.103h.75v4.814Zm3.667 0H8.178V5.556h2.532v.678H8.958v1.364h1.614v.675H8.958v1.423h1.856v.674Zm3.747-4.136h-1.35v4.136h-.779V6.234h-1.346v-.678h3.474v.678Z" /></symbol>'}),Vs=(a().add(Hs),Hs),zs=new(o())({id:"eBPF",use:"eBPF-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="eBPF"><path d="M16.291 4.293a.445.445 0 0 0-.629.029c-.315.345-1.152.89-2.217 1.093a3.968 3.968 0 0 0-1.848-1.306c-.132-1.01.002-1.838.419-2.663a.444.444 0 1 0-.795-.4c-.455.901-.63 1.822-.538 2.885-.901-.052-1.749.269-2.279.953a2.373 2.373 0 0 0-.278.458C7.3 5.05 6.365 4.913 5.47 4.913c-1.586 0-3.049.426-3.574 1.161-1.119 1.564.86 3.292 2.061 3.802a3.694 3.694 0 0 0-.344 1.501c-.007.745.227 1.493.677 2.163.131.195.28.38.443.553l-.384 1.778 1.75-.79c.41.19.843.312 1.275.356.12.012.248.02.385.02.699 0 1.593-.197 2.489-.935.713 1.02 1.738 1.678 2.751 1.678h.074c1.467-.048 3.18-1.955.372-6.939a2.32 2.32 0 0 0 .249-.273c.597-.77.648-1.816.235-2.767 1.068-.267 1.948-.812 2.392-1.298a.449.449 0 0 0-.03-.63ZM9.735 9.41a5.275 5.275 0 0 0-.431 2.292c-.68 0-1.291-.232-1.719-.664-.316-.319-.497-.718-.495-1.072a4.242 4.242 0 0 0 1.946-1.087 4.05 4.05 0 0 0 .699.531Zm-4.049-.079a5.11 5.11 0 0 1-.246-.006c-.003-.71.155-1.312.951-1.952.95.03 1.868.167 2.588.307a3.323 3.323 0 0 1-.404.518c-.698.752-1.67 1.133-2.889 1.133Zm-.217-3.614c.963 0 1.904.172 2.653.485.829.413 1.002.739 1.031.897a.511.511 0 0 1-.009.204c-1.687-.337-3.169-.426-4.404-.263-.03.004-.059.01-.088.013-.376-.13-.803-.427-1.049-1.091.534-.158 1.193-.245 1.866-.245ZM2.453 7.453c-.138-.345-.108-.626.096-.911.139-.195.43-.347.675-.447.137.366.374.783.787 1.08a5.139 5.139 0 0 0-1.422.546 1.991 1.991 0 0 1-.136-.268Zm.98 1.173a4.029 4.029 0 0 1-.608-.58c.519-.297 1.126-.478 1.769-.578.008 0 .116-.017.116-.017.356-.05.721-.075 1.087-.082-.616.63-.755 1.26-.757 1.926a6.278 6.278 0 0 1-.52-.078c-.175-.033-.608-.218-1.087-.591Zm4.024 6.011c-.967-.1-1.925-.692-2.499-1.546-.644-.957-.71-2.037-.202-3.019.145.02.303.037.469.048.041.797.406 1.601 1.032 2.233.783.791 1.866 1.218 3.043 1.218.137 0 .275-.007.414-.018.038.09.078.178.12.265-.713.623-1.53.906-2.377.82Zm2.658-2.827a4.486 4.486 0 0 1 .482-2.348c.064-.118.176-.253.317-.373.464.883.81 1.666 1.05 2.384-.331.79-.891 1.311-1.608 1.51a4.542 4.542 0 0 1-.241-1.173Zm2.177 3.434a2.554 2.554 0 0 1-.445-.24 3.76 3.76 0 0 1-1.078-1.152 4.387 4.387 0 0 1-.262-.493c.686-.199 1.244-.652 1.627-1.323.079.294.14.577.182.852.141.903.072 1.623-.024 2.356Zm1.619-.404c-.273.484-.695.55-.864.554l-.048.001c-.104 0-.209-.01-.316-.032.065-.495.122-.988.116-1.535.368.241.887.41 1.304.454-.039.212-.103.4-.192.558Zm.183-1.71c.041.27.057.523.049.755a2.794 2.794 0 0 1-.619-.149c-.362-.13-.652-.31-.755-.469-.101-1.099-.486-2.446-1.515-4.398a.98.98 0 0 1 .414-.1c.158 0 .308.049.458.151.217.147.425.394.617.736.748 1.328 1.203 2.496 1.351 3.473Z" /></symbol>'}),Us=(a().add(zs),zs),Gs=new(o())({id:"elasticSearch",use:"elasticSearch-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="elasticSearch"><path d="m6.21 6.83-2.52-.59c-1.03.33-1.73 1.32-1.73 2.39 0 1.05.65 1.99 1.62 2.36L6.8 8.08l-.59-1.25Zm4.49 2.63 3.37-2.96c.05-.25.07-.5.07-.75 0-2.08-1.69-3.76-3.76-3.76-1.25 0-2.41.61-3.1 1.64l-.56 2.91.65 1.39 3.33 1.53ZM6.17 6.23l.51-2.6c-.32-.24-.7-.37-1.1-.37-.99 0-1.81.81-1.81 1.81 0 .21.04.43.11.62l2.29.54Zm8.25.75-3.3 2.88.67 1.28 2.52.59a2.535 2.535 0 0 0 1.73-2.39c0-1.05-.64-1.98-1.62-2.36Zm-2.59 4.77-.5 2.59c.32.24.7.38 1.09.38.99 0 1.81-.81 1.81-1.81 0-.22-.04-.43-.11-.62l-2.29-.54ZM7.2 8.5l-3.29 2.97c-.05.24-.07.5-.07.76 0 2.08 1.7 3.77 3.77 3.77 1.26 0 2.42-.62 3.13-1.65l.55-2.91-.75-1.42L7.2 8.5Z" /></symbol>'}),Ws=(a().add(Gs),Gs),$s=new(o())({id:"freeNAS",use:"freeNAS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeNAS"><path d="M17.33 7.17c-.43.86-2.22 1.51-2.94 1.43l-.43.79-.43-.72c-1.08.22-2.44.07-2.58-.14-.14-.22-.14-.43-.14-.43l.93-1.15-2.37-.5 3.01-.57c.43-.86 1.08-2.51 1-3.37-.65 0-5.45.57-6.88 1.86-1.79-1.43-4.01-1.64-4.94-1.64.79.72.79 1.22.79 1.79v1.29s-.72 1.29-.93 2.44c-.21 1.15.14 2.72.72 3.66.18.29.44.76.84 1.25-.45.76-1.07 1.83-.98 1.83.09 0 .97-.7 1.58-1.18.94.88 2.4 1.69 4.73 1.69 4.23 0 6.31-3.44 6.38-4.66 2.28-.66 2.78-2.74 2.64-3.67Zm-5.23 5.59c-.57.29-1.72.5-2.51 0-.73-.46-.72-1.51-.57-2.01.15-.5.93-1.65.93-1.65.36 1 1.79 1.86 3.08 1.86 0 .8-.36 1.52-.93 1.8Z" /></symbol>'}),qs=(a().add($s),$s),Ys=new(o())({id:"haProxy",use:"haProxy-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="haProxy"><path d="m15.93 8.98.53-.52v.01h.48V8h-.48v.2l-1.29-.26v-.31l1.06-.72V7h.48v-.47h-.48v.06l-.71-.4.26-.61h.31v-.47h-.48v.24l-.95.07v-.38h-.17l.4-.72h.37v-.47h-.48v.16l-.69-.11-.07-.65h.18v-.47h-.48v.29l-.75.38v-.2h-.38l.07-.83h.26v-.47h-.48v.27l-.67.18-.37-.62h.08v-.47H11v.47h.05l-.51.62h-.45l-.26-.93h.16V1h-.48v.43l-.55.44-.5-.39V1h-.47v.48h.15l-.26.92h-.45l-.49-.6h.03v-.47h-.48v.47h.07l-.36.6-.65-.18v-.29h-.47v.48h.25l.06.87H5v.19l-.73-.34v-.34h-.48v.47H4l-.08.7-.68.13v-.24h-.48v.47h.31l.42.73h-.18v.39l-.92-.07v-.24h-.48v.47h.32l.27.6-.69.4v-.07h-.48V7h.48v-.08l.99.68v.35l-1.27.24v-.17h-.48v.47h.46l.54.51-.54.51h-.46v.47h.48v-.17l1.28.22v.33l-1.01.69v-.02h-.48v.47h.48v-.07l.69.38-.26.62H1.9v.47h.48v-.24l.94-.09v.37h.19l-.44.79h-.32v.47h.48v-.21l.69.1.07.68h-.18v.47h.48v-.3l.73-.4v.18h.39l-.07.95h-.22v.47h.48v-.31l.66-.2.36.6h-.11v.47h.48v-.47h-.02l.51-.66h.42l.26.97h-.12v.47h.48v-.46l.5-.4.55.45v.41h.47v-.48h-.17l.27-.94h.45l.51.65h-.07v.47h.48v-.47h-.09l.38-.64.65.19v.32h.47v-.48h-.25l-.06-.91h.4v-.21l.74.37v.35h.48v-.47h-.21l.08-.69.7-.1v.23h.48v-.47h-.34l-.42-.78h.16v-.39l.95.1v.28h.48v-.47h-.32l-.29-.66.74-.42v.13h.48v-.47h-.48v.07l-1.07-.71v-.33l1.3-.24v.17h.48v-.47h-.46l-.56-.56Zm.54-.75v.2l-.55.53-.74-.72v-.27l1.29.26Zm-.24-1.61v.26l-1.06.72v-.15h-.19l.53-1.24.72.41Zm-.62-1.24v.2h.14l-.25.59-.83-.47v-.25l.94-.07Zm-.94.53v-.18l.82.47-.54 1.25h-.65v.3l-.67-.18.01-.83h-.25l.56-.82.72-.01Zm-1.25 4.11.6-.93.38.58h-.1v.6l-.69.23v-.49l-.19.01Zm-2.68 2.27.11-1.34 1.43-.12v.49h.57l-.15 1.34-1.4.16v-.54l-.56.01Zm-2.79 0 .23-.26 1.64.01.21.24h-.06l-.01 1.14-.98.75-1.01-.77.01-1.11h-.03ZM4.6 8.03l-.63.95-.43-.67h.13v-.52l.72-.2v.44h.21Zm2.63-2.34-.14 1.44-1.38.16v-.56h-.57l.14-1.4 1.39-.17v.53h.56Zm2.8 0-.25.29-1.6-.01-.25-.27H8l.01-1.14.97-.75 1.02.78-.01 1.1h.04Zm2.81 1.04-.52-.01-.01.56-1.47-.17-.12-1.43h.59v-.55l1.38.17.15 1.43Zm-.12-1.41 1.07.13v.46h.12l-.56.82-.48-.01-.15-1.4Zm-1.79 2.73-.07-.86 1.46.17-.01.52-.29.25v-.06l-1.09-.02Zm-2.89 2.09-.01.81-.89-.09-.09-.89.81.01.01-1.9-.82-.01.09-.88.88-.1-.01.78 1.9.01.01-.8.85.1.07.87-.75-.01-.01 1.9.77.01-.08.94-.85.07.01-.81-1.89-.01ZM5.98 8.25l-.01 1.58-.25.22v-.01l-1.07-.01-.67-1.02.65-.98 1.07.01v-.03l.28.24Zm-.27-.33v-.57l1.37-.16-.09.88-1.01-.01v.1l-.27-.24Zm.01 2.22.25-.22v.04l1.02.01.09.88-1.37-.14.01-.57Zm5.22-.19 1.04.01.32.28v.54l-1.43.12.07-.95Zm-.16-2.84-.85-.1.01-1.03h-.08l.25-.29h.54l.13 1.42ZM8.09 5.97h-.05l-.01 1.05-.88.1.15-1.43h.55l.24.28Zm-2.98.75H4.6l-.55-.8h.11v-.46l1.08-.13-.13 1.39Zm-.5 3.32h-.22v.43l-.71-.22v-.58h-.12l.41-.62.64.99Zm.5 1.32.14 1.31-1.06-.12v-.5h-.08l.5-.71.5.02Zm.03 0 .57.01.01-.59 1.38.14.14 1.37h-.56v.55l-1.39-.15-.15-1.33Zm2.02-.44.88.09-.01 1.03h.06l-.23.26H7.3l-.14-1.38Zm2.75 1.13h.02l.01-1.02.85-.07-.11 1.33h-.55l-.22-.24Zm2.97-.72h.46l.54.73h-.09v.47l-1.06.12.15-1.32Zm-.59-1.32v.14L12 9.9l.01-1.69.29-.25v.09l1.04.01.65 1-.62.96-1.08-.01Zm1.73-.99-.63-.96h.24V7.6l.67.18v.53h.17l-.45.71Zm.76-4.98v.29h.08l-.4.72h-.25l-.12-1.11.69.1Zm-1.06-.94v.15h.27l.07.65-1.09-.17v-.26l.75-.37Zm-.74 1.02v-.35l1.09.17.12 1.12h-.39v.37l-1.08-.14-.13-1.17h.39Zm-.29 1.16-1.37-.17v-.53l.79-.56v.1h.45l.13 1.16Zm-.24-3.04v.17h.19l-.07.84h-.27l-.5-.84.65-.17Zm-1.36-.46h.29l.37.62-1.12.3v-.31h-.05l.51-.61Zm-.45 1.49v-.53l1.13-.31.5.83h-.16v.73l-.79.55v-.16l-.81-.01-.21-1.1h.34Zm-.38 0 .21 1.1h-.48v.18L9 3.8l.77-.59v.07l.49-.01Zm-.75-1.81v.01h.3l.26.93h-.31v.08l-.78-.6.53-.42Zm-.55.44.8.61v.65l-.79.61-.78-.6V2.5l.77-.6Zm-.79-.41h.26l.52.4-.75.59v-.07h-.3l.27-.92Zm.03 1.78v-.06l.76.58-.94.72v-.14h-.54l.21-1.1h.51ZM6.59 1.8h.31l.49.6h-.06v.3l-1.11-.3.37-.6Zm-.37.62 1.12.31v.54h.32l-.21 1.1-.75-.01v.22L5.87 4v-.72H5.7l.52-.86Zm-.86-.01h.2v-.16l.63.17-.52.86h-.25l-.06-.87Zm.05 1.74h.46v-.11l.82.58v.5l-1.39.17.11-1.14Zm-1.38-.9h.24v-.1L5 3.5v.26l-1.05.19.08-.7Zm-.08.72L5 3.78v.36h.37l-.12 1.15-1.08.13v-.38h-.36l.14-1.07Zm-.85.34h.14V4.1l.68-.12-.12 1.06h-.28l-.42-.73Zm.92 1.61.55.8h-.18l-.01.85-.72.2v-.31h-.59l-.55-1.23.78-.46v.15h.72Zm-1.77-.34h.14v-.2l.92.07v.27l-.79.46-.27-.6ZM1.8 6.9v-.27l.7-.41.54 1.22H2.8v.13l-1-.67Zm-.27 1.58v-.26l1.27-.24v.32l-.73.69-.54-.51Zm0 1.31v-.25l.54-.51.73.69v.3l-1.27-.23Zm1.28-.12v.01l-.71-.67.73-.7h.67l.45.7-.43.65-.71.01ZM1.8 11.4v-.32l1.01-.68v.13h.23l-.54 1.26-.7-.39Zm.57 1.23v-.2h-.12l.26-.6.8.45v.27l-.94.08Zm.94-.56v.18l-.79-.44.55-1.27h.61v-.25l.71.22-.01.86h.17l-.5.71-.74-.01Zm-.09 1.89v-.24h-.13l.44-.79h.25l.12 1.12-.68-.09Zm1.06.94v-.14h-.27l-.07-.68 1.07.15v.27l-.73.4ZM5 13.84v.36l-1.07-.15-.12-1.13h.37v-.34l1.06.12.12 1.13-.36.01Zm.28-1.13 1.39.15v.52l-.79.57v-.12H5.4l-.12-1.12Zm.29 3.08v-.14h-.23l.07-.95h.26l.53.89-.63.2Zm1.33.43h-.29l-.36-.61 1.07-.33v.28h.09l-.51.66Zm.42-1.53v.56l-1.09.34-.53-.88h.17V14l.79-.57v.18l.79.01.21 1.08-.34-.01Zm.37 0-.21-1.08h.5v-.17l.98.75-.77.59v-.1l-.5.01Zm.77 1.84h-.31l-.26-.97h.3v-.07l.77.63-.5.41Zm-.27-1.07v-.62l.8-.61.8.61v.63l-.8.64-.8-.65Zm1.62 1.06h-.27v.04l-.53-.44.78-.63v.08h.3l-.28.95Zm-.02-1.81v.09l-.77-.59.95-.73v.14h.53l-.21 1.1-.5-.01Zm1.58 1.53h-.26l-.51-.66h.05v-.31l1.1.33-.38.64Zm.39-.67-1.11-.33v-.53h-.34l.21-1.1.76.01v-.21l.83.6v.71h.15l-.5.85Zm.86.06h-.2v.13l-.64-.19.51-.86h.26l.07.92Zm-.05-1.78h-.44v.12l-.83-.6v-.5l1.39-.16-.12 1.14Zm1.4.91h-.24v.1l-.74-.37v-.26l1.06-.16-.08.69Zm.08-.72-1.06.16v-.34h-.39l.13-1.16 1.07-.12v.36h.39l-.14 1.1Zm.83-.32h-.11v.22l-.7.1.13-1.1h.26l.42.78Zm-.95-1.65-.54-.73h.22l.01-.8.69-.23v.23h.61l.54 1.25-.79.45v-.16l-.74-.01Zm1.82.38h-.13v.17l-.95-.1v-.26l.8-.46.28.65Zm.48-1.32v.21l-.75.43-.54-1.23h.23v-.12l1.06.71Zm-1.78-1.47-.4-.61.47-.74h.66v-.03l.72.7-.73.71v-.02l-.72-.01Zm2.02.13-1.3.24v-.31l.74-.72.55.54.01.25Z" /></symbol>'}),Xs=(a().add(Ys),Ys),Ks=new(o())({id:"httpCheck",use:"httpCheck-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="httpCheck"><path d="M7.16 7.35c0 .47.16.76.79.76.16 0 .42-.02.56-.06v-.59H8.4c-.18 0-.22-.05-.22-.18v-.93h.39V5.7h-.39v-.6h-1v.6h-.33v.65h.32v1h-.01ZM12.6 6.3c-.22 0-.28.16-.28.6 0 .39.06.58.27.58.21 0 .29-.16.29-.61.01-.46-.1-.57-.28-.57ZM9 2c-3.08.26-4.98.86-6.39 1.6v5.11c0 3.26 2.62 6.78 6.39 7.29 3.77-.51 6.39-4.03 6.39-7.29V3.6C13.98 2.86 12.08 2.26 9 2Zm.31 3.69h.33v-.6h1v.6h.39v.65h-.39v.93c0 .13.04.18.22.18h.11v.59c-.14.04-.4.06-.56.06-.62 0-.79-.29-.79-.76v-1H9.3v-.65h.01ZM9 13.52v1.84c-1.58-.24-3.04-1.08-4.12-2.38-1.04-1.24-1.63-2.8-1.63-4.27V3.99C4.73 3.28 6.58 2.85 9 2.64v9.07l2.36-2.36.9.9L9 13.52Zm3.88-5.39c-.27 0-.43-.09-.53-.21v.99h-1.02V5.7h.99c.01.06.02.19.02.25.09-.13.27-.31.66-.31.48 0 .92.39.92 1.19.01.91-.51 1.3-1.04 1.3ZM7.69 10.4l-.9.9L9 13.52v-1.81L7.69 10.4ZM5.86 5.63c-.34 0-.54.15-.67.29v-1.1H4.17v3.24h1.02V6.75c0-.25.03-.41.23-.41.14 0 .2.09.2.29v1.44h1.02V6.52c-.01-.55-.26-.89-.78-.89Z" /></symbol>'}),Js=(a().add(Ks),Ks),Qs=new(o())({id:"iceCast",use:"iceCast-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="iceCast"><path d="m14.94 12.17-.22-.39c-.01-.02-.02-.03-.04-.03l-.31-.12L16.3 9.7l-5.34-5.34-1.65 1.77a.09.09 0 0 1-.07.03c-.02 0-.05-.01-.06-.02-.04-.03-.04-.09 0-.13l1.65-1.77L9 2.41 6.66 4.75l1.28 1.31c.04.04.04.1 0 .13-.02.02-.04.03-.06.03-.02 0-.05-.01-.07-.03L6.53 4.88 1.7 9.7l1.73 1.73-.03.1a.79.79 0 0 0-.23.14c-.18.17-.28.76-.26 1.19.01.28.07.46.17.54.09.07.15.1.23.04.02-.02.04-.03.14-.02.16.03.2.08.2.1 0 .04.03.08.07.08l1.18.07c.25-.01.46-.05.65-.12L9 17l3.48-3.48.32-.21.03.06c.01.02.03.03.04.04.27.09.55.12.81.12.21 0 .42-.02.61-.04.01 0 .02 0 .03-.01l.48-.27c.01-.01.03-.02.03-.04.1-.24.14-.56.13-.97-.01-.01-.01-.02-.02-.03Zm-1.61-2.03c.24-.04.44-.02.55.08.09.08.14.19.13.35 0 .02 0 .03.01.04.17.25.19.41.07.69-.08.05-.23.1-.7.1h-.01l-.34.06h-.52l-.18-.26c-.01-.09-.03-.19-.08-.32 0-.12 0-.29-.05-.44l.05-.25c.06 0 .12-.01.17-.02l.5-.04h.38c.01.01.02.01.02.01Zm-.56-1 .28.2.12.48c-.28.12-.51.21-.63.18h-.04c-.02.01-.04.01-.07.02l-.22.02H10.8c-.3-.04-.52-.13-.63-.27l-.01-.01c-.14-.11-.21-.27-.2-.49 0-.01 0-.03-.01-.04-.02-.03-.06-.11.1-.24l.67-.06h1.81l.24.21Zm-.59 2.2c-.01.02-.04.03-.07.03h-.05c-.06-.03-.13-.05-.2-.08s-.14-.05-.21-.08c-.2-.08-.4-.18-.54-.3a.489.489 0 0 1-.14-.18c-.01-.01-.01-.02-.02-.03-.03-.02-.06-.04-.08-.07-.18-.16-.14-.25-.04-.39l1.02.02c.23.08.28.31.27.64v.03c.11.29.08.38.06.41Zm-.72-3.51c.02-.01.12-.08.69.02.21.15.28.31.24.48v.03c.01.09-.05.2-.17.33H10.84c-.28.09-.52.12-.72.09h-.01a.868.868 0 0 1-.46-.1c-.01 0-.02-.01-.03-.02l-.07-.19.04-.27.03-.24 1.11-.08.7-.02c0-.01.02-.02.03-.03Zm-2.08.67.04.12c-.06.03-.12.05-.19.06-.06-.01-.11-.02-.17-.04h-.03l-.47.09-.83.02H7.7c-.18.07-.48.02-.86-.05l.02-.7.12-.06c.13-.06.24-.09.33-.08h.01c.37-.06.78-.11 1.05-.05h.03c.28-.04.51 0 .72.04h.01c.11.1.2.22.26.36l-.03.25c.01.01.01.03.02.04Zm-1.34.48.53-.1.47-.09c.07.01.13.03.19.04.33.08.5.16.5.32v.42c-.06.1-.43.13-.57.14l-.66.1a.57.57 0 0 0-.26 0c-.2-.05-.32-.13-.38-.27-.08-.24-.02-.42.18-.56Zm1.41-2.25c.26-.1.68-.01.98.06l.09.02h.03c.2-.04.35.01.46.15l.01.01c.12.11.26.38.18.47-.01.02-.02.04-.02.06.01.13-.02.18-.03.19-.01 0-.02.02-.07.01h-.77l-.84.06c-.25-.04-.38-.17-.4-.4 0-.01 0-.02-.01-.03-.08-.16-.14-.29-.18-.48.16-.05.34-.09.55-.11.01-.01.01-.01.02-.01Zm-1.41-.51c.01 0 .01 0 .02-.01.29-.17.94-.21 1.1-.07l.15.22c-.01.08-.03.14-.07.17-.04.03-.1.04-.19.02h-.03l-1 .12c-.12.02-.2.01-.24-.03-.04-.04-.07-.11-.07-.22.06-.11.17-.16.33-.2ZM5.99 7.49l.54-.26.61-.36h1.29c.19.05.29.21.29.5 0 .01 0 .02.01.03.03.07.05.12.03.15-.02.03-.08.06-.16.07l-.21.03c-.26-.06-.61-.02-1.07.05-.11 0-.23.03-.36.08h-.55c-.19.05-.31.05-.37 0-.07-.05-.07-.18-.05-.29Zm-.28.76.64-.16c.06 0 .14 0 .17.05.04.04.03.12.02.18v.04c.06.15.03.25-.09.33l-.81.13c-.13.02-.24-.03-.33-.15-.01-.07 0-.22.4-.42ZM4.68 9.43c.1-.13.2-.21.32-.24.01 0 .02-.01.03-.01.18-.14.37-.16.62-.16h.65l.6-.05.43.15.22.2-.03.64-.29.08c-.13-.05-.28-.02-.47.09l-1.45-.05H5.3c-.22.04-.42-.01-.63-.14-.06-.2-.06-.36.01-.51Zm2.38 1.73a.24.24 0 0 1-.15.06c-.07 0-.14-.03-.21-.09-.15-.59-.06-.72-.01-.75.04-.03.08-.06.12-.08h.11l.29-.08c.07.06.12.19.14.39l-.31.49s0 .03.02.06Zm-3.43.16v-.01c.04-.44.13-.77.24-.91.32-.17.61-.21.85-.11.01 0 .01 0 .02.01l.76.06h.74c.06 0 .11.01.14.04.05.05.08.16.08.31l-.05.7c-.04.03-.08.06-.11.1-.06.06-.1.13-.14.2-.1 0-.23 0-.42.06-.55.17-1.17.07-1.77-.03-.15-.02-.29-.05-.43-.06l.09-.36Zm2.32 1.34v.25l-.07.31c-.25.19-.56.29-.97.31l-1.12-.07c-.03-.06-.11-.14-.31-.18-.15-.03-.21.01-.26.04-.01-.01-.02-.01-.04-.03-.05-.04-.1-.17-.11-.42-.02-.43.09-.95.22-1.08.02-.02.04-.04.07-.05 0 .02 0 .04.01.05.01.02.03.03.05.03.16.02.33.05.51.07.36.06.74.12 1.12.12.24 0 .48-.03.7-.09.1.07.19.16.28.31l-.08.43Zm1.26-.4-.03.08-.26.78c-.21.28-.36.41-.47.41-.1 0-.21-.1-.34-.3v-.55l.11-.56v-.02c-.01-.07.01-.16.04-.24.12-.01.2-.06.29-.24 0-.01.01-.02.01-.03l.01-.09c.06-.03.12-.05.19-.04h.01l.41-.04.18.09c.06.21-.03.44-.15.75Zm1.58-1.84-.23.26c-.52.48-.88.73-1.05.73l-.23-.25c.02-.02.03-.04.05-.05 0-.01.01-.01.01-.02l.18-.43c0-.01.01-.02.01-.03l.06-.09c.11-.1.24-.2.35-.29.14-.11.26-.2.32-.27.03.01.05.01.08.01h.02l.13-.02c.1.03.19.08.27.15.01.01.02.03.04.04v.26h-.01Zm1.4.61-.71-.36c-.18-.1-.36-.16-.53-.17V10l.54-.12.68.2.3.22.03.47c-.19.1-.29.18-.31.26Zm.66.54-.43-.43.22-.26c.06-.02.12-.05.2-.08l.01.01c.18.32.61.49.97.62.07.03.14.05.2.08.01 0 .01 0 .02.01.09.14.05.25 0 .33l-.01.01c-.08.02-.16.07-.22.15l-.18.14-.13.1-.65-.68Zm1.5 1.85c-.23 0-.31-.12-.4-.26-.01-.02-.03-.04-.04-.06-.02-.03-.05-.06-.07-.09-.13-.16-.3-.37-.31-.58l.18-.14.38-.28c.06 0 .12.02.19.06 0 .03.01.07.02.1l.22.61v.01l.12.23.04.18-.33.22Zm2.34-.33-.44.25c-.4.04-.86.07-1.31-.06l-.28-.55-.21-.6c-.02-.09-.04-.22.02-.28.05-.05.15-.06.3-.04h.02l.86-.12.59.04.36.14.19.35c.02.37-.02.66-.1.87ZM3.02 1.03c-.04-.04-.09-.04-.13 0-.04.04-.04.09 0 .13l3.64 3.72.13-.13-3.64-3.72Zm10.88.19c.03-.04.03-.1 0-.13-.04-.03-.1-.03-.13 0l-2.94 3.15.13.13 2.94-3.15Z" /></symbol>'}),eu=(a().add(Qs),Qs),tu=new(o())({id:"influxDB",use:"influxDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="influxDB"><path d="M16.68 10.76 14.9 3.78a.76.76 0 0 0-.53-.54L7.43 1.28a.78.78 0 0 0-.74.19L1.53 6.5a.79.79 0 0 0-.21.73l1.78 6.99c.07.26.27.47.53.54l6.94 1.95a.75.75 0 0 0 .74-.19l5.16-5.03c.19-.18.27-.46.21-.73Zm-4.02-6.42-2.39.8-1.46-1.89 3.85 1.09Zm-1.54 6.71-4.79-1.8 3.6-3 1.19 4.8ZM7.44 2.87l.14.04 2.04 2.62L5.56 8.9 3.1 7.1l4.34-4.23ZM3.1 8.04l2.03 1.49-.94 2.81-1.09-4.3Zm7.48 7.07-.02.02-5.94-1.67 1.2-3.59 5.41 2.03-.65 3.21Zm.97-.94.44-2.18 2.17-.36-2.61 2.54Zm.4-2.94-1.35-5.4 3-1 1.5 5.88-3.15.52Z" /></symbol>'}),nu=(a().add(tu),tu),ru=new(o())({id:"ipfs",use:"ipfs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipfs"><path d="M2.05 13.09 8.81 17V9.19L2.05 5.28v7.81Zm.47-6.74c.08-.04.16-.08.23-.13l4.91 2.83c-.06.51.22 1 .7 1.21v5.67c-.08.04-.16.08-.23.13l-4.91-2.83c.06-.51-.22-1-.7-1.21V6.35Zm1.07 6.66 4.39 2.53v-5.06c-.42-.27-.68-.72-.7-1.22L2.89 6.73v5.07c.41.27.67.72.7 1.21ZM9 2.54c-.25 0-.49-.06-.7-.17L3.91 4.91 8.3 7.44c.22-.11.45-.17.7-.17.25 0 .49.06.7.17l4.39-2.53L9.7 2.37c-.22.11-.46.17-.7.17Zm1.02 7.94v5.03l4.39-2.53c.02-.5.28-.95.7-1.22V6.7l-4.39 2.56c-.02.5-.28.95-.7 1.22ZM9 1 2.23 4.91 9 8.81l6.77-3.91L9 1Zm-.7 6.87L3.39 5.04c.01-.09.01-.18 0-.26L8.3 1.94c.41.31.98.31 1.39 0l4.91 2.83c-.01.09-.01.18 0 .26L9.69 7.87c-.41-.31-.97-.31-1.39 0Zm.89 1.32V17l6.77-3.91V5.28L9.19 9.19Zm6.29 2.8c-.47.21-.75.69-.7 1.21l-4.91 2.83c-.07-.05-.15-.1-.23-.13l-.01-5.63c.47-.21.75-.69.7-1.21l4.91-2.86c.07.05.15.1.23.13v5.66h.01Z" /></symbol>'}),ou=(a().add(ru),ru),iu=new(o())({id:"ipvs",use:"ipvs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipvs"><path d="M1.63 13.18 8.24 17V9.41L1.63 5.59v7.59Zm2.3-5 .6 2.6c.18.8.31 1.39.41 2l.02.01c.09-.45.23-.91.42-1.51L6 9.37l1.17.68-1.57 4.17-1.36-.78L2.7 7.47l1.23.71ZM9.02 1 2.45 4.8l6.61 3.82 6.57-3.8L9.02 1ZM5.05 4.47 8.46 2.5l1.17.68-3.41 1.97-1.17-.68Zm7.15 1.48c-.77.45-1.74.31-2.5-.13l-.53-.31L8 6.18l-1.14-.66 3.41-1.97 1.71.99c.8.46.9 1.02.22 1.41ZM9.76 9.41V17l6.61-3.82V5.59L9.76 9.41Zm3.32 4.5c-1.17.67-1.8.4-1.9-.5l1.14-.66c.09.42.38.44.84.18.44-.25.63-.55.63-.87 0-.37-.21-.39-.92-.17-1.27.39-1.54.01-1.54-.67 0-.89.58-1.87 1.71-2.52 1.24-.71 1.73-.26 1.79.48l-1.13.66c-.04-.26-.16-.49-.68-.2-.33.19-.53.46-.53.76s.17.33.86.12c1.32-.4 1.61-.01 1.61.72-.01.94-.64 1.95-1.88 2.67Zm-2.1-9.08-.32-.18-.74.42.33.19c.26.15.55.18.8.04.25-.15.2-.32-.07-.47Z" /></symbol>'}),au=(a().add(iu),iu),su=new(o())({id:"kubernetes",use:"kubernetes-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="kubernetes"><path d="M8.18 8.14c.15 0 .28-.12.28-.27l.08-1.66-.33.07c-.58.13-1.11.43-1.54.84l1.37.98c.06.03.09.04.14.04Zm1.31-.11c.08.12.25.13.36.07l1.36-.96c-.5-.5-1.14-.81-1.87-.89l.1 1.67c0 .04.02.08.05.11ZM7.46 9.22a.27.27 0 0 0-.03-.38L6.2 7.75a3.52 3.52 0 0 0-.48 2.02l1.6-.47c.07-.01.1-.03.14-.08Zm1.06.58.45.22.45-.22.12-.48-.31-.4h-.5l-.31.4.1.48Zm1.68.48c-.12.05-.18.18-.15.31l.65 1.56c.4-.25.75-.6.99-.99.13-.18.23-.4.31-.63l-1.66-.28c-.04 0-.09.01-.14.03Zm-2.65-.02-1.64.28c.23.66.7 1.24 1.28 1.62l.63-1.52c.03-.05.03-.12.02-.17-.02-.12-.15-.21-.29-.21Zm7.42-5.15a1.03 1.03 0 0 0-.53-.61L9.39 2.08A.859.859 0 0 0 8.98 2c-.13 0-.28 0-.41.03L3.51 4.47c-.25.12-.43.33-.5.61l-1.24 5.45c-.05.28.02.56.18.79l3.49 4.32c.2.2.48.33.76.35h5.56c.3.03.58-.1.76-.35l3.49-4.32c.17-.23.23-.51.2-.79l-1.24-5.42Zm-.81 5.78c-.03 0-.05 0-.08-.02-.02-.02-.02-.02-.03-.02-.03 0-.05-.02-.07-.02-.07-.02-.12-.05-.18-.08-.03 0-.07-.02-.1-.03h-.02c-.17-.07-.35-.12-.53-.15h-.02c-.05 0-.1.02-.13.05 0 0 0 .02-.02.02l-.13-.02c-.3.94-.94 1.74-1.79 2.25l.05.13s-.02 0-.02.02c-.03.05-.03.12-.02.17.07.17.15.33.26.48v.03c.03.03.05.05.07.08.05.05.08.1.12.17.02.02.03.03.03.05 0 0 .02 0 .02.02.03.08.03.17.02.25-.01.08-.08.15-.15.18-.05.02-.08.03-.13.03-.13 0-.25-.08-.31-.2-.02 0-.02-.02-.02-.02-.02-.02-.02-.03-.03-.05-.03-.05-.05-.12-.07-.18l-.03-.1v-.02c-.05-.18-.13-.35-.22-.51a.256.256 0 0 0-.13-.1c0-.02 0-.02-.02-.02l-.07-.12c-.17.05-.35.12-.53.15-.3.08-.6.12-.89.12-.5 0-.98-.08-1.44-.26l-.07.13c0 .02 0 .02-.02.02-.05.02-.1.05-.13.1-.08.17-.17.33-.22.51l-.03.1c-.02.07-.05.12-.07.18-.02.02-.03.03-.03.05-.02 0-.02.02-.02.02-.07.12-.18.2-.31.2-.03 0-.08-.02-.12-.03A.334.334 0 0 1 6.4 14c.02 0 .02-.02.02-.02.02-.02.02-.03.03-.05.05-.07.08-.13.12-.17a.5.5 0 0 0 .07-.08v-.02c.1-.15.2-.31.26-.48.02-.05.02-.12-.02-.17 0 0-.02 0-.02-.02l.08-.12c-.17-.08-.3-.18-.45-.3-.65-.5-1.11-1.18-1.36-1.94l-.15.02s0-.02-.02-.02a.19.19 0 0 0-.13-.05h-.02c-.2.03-.36.08-.55.15h-.02c-.03 0-.07.02-.1.03-.05.02-.12.05-.18.07-.02 0-.07-.02-.07 0s0 .02-.02.02c-.03.02-.05.02-.08.02-.15.02-.3-.08-.33-.23-.03-.18.08-.35.26-.38.02-.02.02-.02.03-.02.03 0 .05-.02.07-.02.07 0 .13-.02.2-.02.03-.02.07-.02.1-.02.2-.02.38-.05.56-.1.05-.03.1-.07.12-.12 0 0 .02 0 .02-.02l.13-.03c-.15-.94.07-1.9.58-2.72.02-.03.03-.05.05-.08l-.1-.1v.02c.02-.05-.02-.12-.05-.15-.13-.13-.3-.23-.46-.33-.03-.02-.07-.03-.1-.05-.07-.03-.13-.07-.18-.1-.02 0-.05-.03-.05-.03s0-.02-.02-.02c-.13-.12-.17-.31-.07-.46.05-.08.13-.12.23-.12.08 0 .17.03.23.08l.02.02c.02.02.03.02.05.03.05.05.08.1.13.15.02.02.05.03.07.07.12.13.27.26.41.38.03.02.07.03.1.03s.05-.02.07-.02h.02l.1.07c.55-.58 1.26-.99 2.04-1.16.2-.03.38-.07.56-.08l.02-.13v-.03c.05-.03.07-.08.08-.13 0-.2 0-.38-.03-.56v.01c0-.03 0-.07-.02-.1a.693.693 0 0 1-.03-.2v-.08c0-.08.03-.17.1-.23.08-.08.18-.13.28-.12.17.02.3.18.28.35v.1c-.02.07-.02.13-.03.2 0 .03-.02.07-.02.1v.02c-.03.2-.03.38-.03.56.02.05.03.1.08.13v-.02l.02.13c.78.08 1.54.38 2.15.86.13.13.28.26.41.4l.13-.08h.02c.02.02.05.02.07.02.03 0 .07-.02.1-.03.15-.1.3-.23.41-.36.02-.02.05-.03.07-.07.03-.05.08-.1.13-.15.02 0 .03-.02.05-.03l.02-.02a.4.4 0 0 1 .23-.08c.08 0 .18.05.23.12.12.15.08.35-.07.46 0 .02.02.02 0 .03-.02.02-.03.02-.05.03-.07.03-.12.07-.18.1-.03.02-.07.03-.1.05-.17.1-.31.2-.46.33-.03.03-.05.1-.05.15v.02l-.1.1c.26.41.46.88.58 1.36.1.48.13.98.07 1.46l.13.03c.02.05.07.1.12.12.18.05.38.08.56.1h.02c.03.02.07.02.1.02.07 0 .13 0 .2.02.03 0 .07 0 .07.02s.02.02.03.02c.15.03.28.17.3.35-.03.1-.16.2-.31.2Zm-2.45-3.14-1.24 1.13c-.03.03-.05.07-.07.12-.03.15.05.3.2.33l1.57.45c.03-.35.02-.7-.07-1.04-.07-.36-.21-.7-.39-.99Zm-2.65 3.23c-.12-.07-.25-.03-.33.07l-.81 1.47c.33.1.7.17 1.04.17.25 0 .48-.03.71-.08.12-.03.22-.05.31-.07l-.79-1.44a.474.474 0 0 0-.13-.12Z" /></symbol>'}),uu=(a().add(su),su),lu=new(o())({id:"lighthttpd",use:"lighthttpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd"><path d="M3.67 14.86v.01l1.02-.92-.48-.32-.54 1.23ZM17.49 2 .51 10.14l1.89 1.65 14.92-9.67-14.63 9.92.98 2.83.36-1.82L17.49 2 4.38 13.25l-.01.03L8.43 16l9.06-14Z" /></symbol>'}),cu=(a().add(lu),lu),fu=new(o())({id:"lighthttpd2",use:"lighthttpd2-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd2"><path d="M16.97 2 1.03 6.92l3.5 3.76L16.8 2.11 4.82 10.93l.97 2.81.36-1.81L16.97 2 6.5 12.13l-.01.03 6.8 3.84 3.68-14Zm-4.03 10.71v.71h-2.43v-.8c0-.7.57-1.27 1.27-1.27h.2c.18 0 .32-.14.32-.32s-.14-.32-.32-.32h-.61c-.08 0-.14.06-.14.14v.07h-.71v-.07c0-.47.39-.86.86-.86h.61a1.04 1.04 0 1 1 0 2.08h-.2c-.31 0-.55.25-.55.55v.09h1.7ZM5.8 13.73v.01l1.01-.92-.47-.32-.54 1.23Z" /></symbol>'}),du=(a().add(fu),fu),pu=new(o())({id:"liteSpeed",use:"liteSpeed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="liteSpeed"><path d="M8.2 10.92 6.5 9.23a.398.398 0 0 1 0-.57l.49-.49-.33-.47a.532.532 0 0 1 .11-.72l3.84-2.95V1L2.95 8.67c-.16.16-.16.41 0 .57l3.68 3.68 1.57-2Zm2.78-.51L9.13 7.75c-.08-.11-.07-.29.01-.4l3.37-4.28c.05-.06.06-.1.05-.1-.01 0-.04.02-.09.05L7.05 7.19c-.11.08-.13.24-.06.36l1.88 2.7c.08.11.07.29-.01.4l-3.37 4.27c-.05.06-.06.1-.04.1.01 0 .04-.02.09-.05l5.42-4.16c.1-.08.06-.33.02-.4Zm4.07-1.64-3.68-3.68L9.8 7.08l1.69 1.69c.16.16.16.41 0 .57l-.49.49s.33.49.34.52c.08.15.09.51-.12.67l-3.84 2.95V17l7.67-7.66c.16-.16.16-.41 0-.57Z" /></symbol>'}),hu=(a().add(pu),pu),gu=new(o())({id:"lxc",use:"lxc-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lxc"><path d="M8.69 6.35 4.96 4.26l-3.58 2 3.74 2.09 3.57-2ZM5.26 9.59l3.59-2.01V6.6L5.26 8.61v.98Zm7.48 0v-.98l-3.59-2v.98l3.59 2Zm-7.78.17V8.61L1.22 6.52v1.19l3.7 2.07.04-.02Zm11.66-3.5L9 2 5.26 4.09l7.62 4.26 3.74-2.09Zm-3.58 5.21h-.07l-3.84 2.15V16l7.65-4.28V9.34l-3.74 2.09v.04Zm-.3-.22v-.94l-3.61 2.02v.94l3.61-2.02Zm.3-2.64v2.47l3.74-2.09V6.52l-3.74 2.09ZM1.22 11.72 8.87 16v-2.39L1.22 9.34v2.38Zm11.52-1.79L9 7.84 5.26 9.93v.04L9 12.06l3.74-2.09v-.04ZM1.22 8.99l7.65 4.28v-.94L1.22 8.06v.93Z" /></symbol>'}),vu=(a().add(gu),gu),mu=new(o())({id:"mariaDB",use:"mariaDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mariaDB"><path d="M16.82 3.09c-.9.3-1.21-.3-2.41 0-1.21.3-1.51 2.98-3.02 3.87-1.51.89-3.92.6-5.43 1.79-1.51 1.19-1.81 3.28-2.41 3.28-.6 0-1.21-.3-2.11-.3-.9 0-.9 0-.9.3s1.21.89 1.21 1.19c0 .3-.91.89-.91 1.49s1.51 0 2.11-.3c.6-.3 1.81-1.49 2.71-1.49.9 0 2.41.6 3.32.6.41 0 .57-.06.63-.13.07-.08.88-.77.88-1.36 0 0 0 1.19-.6 1.79-.6.6-1.21 1.19-.9 1.19.3 0 3.02 0 3.32-2.98.15-1.51.3 0 .3 0l-.3.6s2.41-1.49 2.71-2.68c.3-1.19-.3-2.68.6-3.28.9-.6 1.81-1.49 1.81-1.79-.01-.3.29-1.2-.61-1.79ZM15.39 4.3c-.04.07-.11.13-.17.17-.13.08-.25.1-.4.07-.05-.02-.06-.05-.06-.07 0-.02 0-.04.01-.06.02-.07.03-.11.06-.15.03-.03.07-.06.13-.08.11-.04.24-.04.35-.03.05 0 .09-.01.1.05.01.02-.01.07-.02.1Z" /></symbol>'}),yu=(a().add(mu),mu),bu=new(o())({id:"memCached",use:"memCached-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="memCached"><path d="M11.46 2H6.54C2.57 2 2 2.57 2 6.54v4.92C2 15.43 2.57 16 6.54 16h4.93c3.97 0 4.54-.57 4.54-4.54V6.54C16 2.57 15.43 2 11.46 2ZM8.07 13.08c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51Zm1.86 0c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51Zm3.38 0h-2.15c.2-1.09.94-6.06.33-6.08-.33.05-1.82 4.22-1.82 4.22s-.33-.04-.66-.04-.66.04-.66.04S6.84 7.06 6.52 7c-.61.02.12 4.99.33 6.08H4.69S4.33 9 5.02 4.64h1.99c.38 0 1.82 2.53 1.99 2.53.17 0 1.61-2.53 1.99-2.53h1.99c.69 4.36.33 8.44.33 8.44Z" /></symbol>'}),wu=(a().add(bu),bu),xu=new(o())({id:"mongoDB",use:"mongoDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mongoDB"><g clip-path="url(#mongoDB_a)"><path d="M8.9.07c-.04.27-.12.47-.38.7-.64.57-3.35 2.78-3.58 7.57-.2 4.29 3.01 7 3.67 7.45.22-.63.34-1.3.42-2.33.11-4.19.11-10.81-.13-13.39Zm.16 14.6c-.07.45-.17.82-.29 1.18l-.06.17c.05.35.15 1.15.23 1.99h.36c.08-.76.21-1.51.38-2.25l-.02-.01c-.27-.14-.48-.52-.6-1.08Zm3.86-7.58C11.97 2.88 9.97 1.76 9.47.96 9.28.65 9.12.33 8.97 0c0 .04.01.09.01.13.04.29.07.79.09 1.4.09 2.02.12 4.96.1 7.74.02.88.01 1.75-.03 2.63-.01.64-.02 1.26-.04 1.82.05 1.05.29 1.71.62 1.87l.04.02c1.69-1.2 3.9-4.24 3.16-8.52Z" /></g><defs><clipPath id="mongoDB_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'}),_u=(a().add(xu),xu),Su=new(o())({id:"mySQL",use:"mySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL"><path d="M16.06 14.8c-.14-.14-.3-.27-.46-.39-.05-.04-.08-.06-.12-.09.13-.02.26-.05.39-.07.17-.02.36-.03.5-.04l1.27-.02-.6-1.08c-.5-.9-1.21-1.46-1.92-1.94-.36-.24-.72-.45-1.1-.64-.31-.16-.61-.3-.93-.43-.51-.67-.79-1.54-1.2-2.53a10.57 10.57 0 0 0-1.79-2.89c-.75-.85-1.58-1.6-2.53-2.23-.47-.31-1.01-.61-1.59-.79-.5-.16-.97-.26-1.54-.28-.41-.32-.85-.61-1.38-.81C2.72.47 2.38.39 1.98.4 1.62.41 1.19.51.81.82c-.27.18-.46.49-.52.76-.07.28-.05.53-.01.75.09.44.28.8.6 1.12.2.19.25.21.36.31.09.08.16.15.21.21.09.11.12.2.15.4.09.68.3 1.24.52 1.8.12.29.23.55.44.89.05.06.07.1.14.18.04.04.09.09.14.12-.26.65-.29 1.25-.32 1.83-.01.36 0 .71.04 1.06.04.37.06.67.2 1.14.16.44.36.76.64 1.09.14.16.3.32.52.46.22.14.52.28.92.26.4-.04.7-.19.96-.51.18.22.37.44.56.65.64.62 1.33 1.17 2.06 1.65 1.46.95 3.02 1.67 4.67 2.15l.22-.62c-1.46-.71-2.85-1.61-4.09-2.61-.62-.51-1.18-1.07-1.69-1.65-.52-.58-.93-1.21-1.37-1.83l-.93-1.29-.44 1.38-.02.05c-.14.44-.13.8-.15 1.03-.03-.03-.07-.06-.09-.1-.15-.16-.29-.41-.35-.58-.05-.16-.1-.51-.13-.79-.03-.3-.04-.6-.03-.9.01-.58.1-1.2.3-1.52l.2-.33-.15-.34c-.09-.21-.17-.35-.31-.54-.07-.09-.15-.19-.27-.28-.08-.13-.2-.38-.29-.61-.19-.48-.37-.99-.43-1.44-.04-.36-.2-.82-.48-1.15-.25-.31-.57-.54-.67-.63a.801.801 0 0 1-.19-.35c0-.02-.01-.04-.01-.06l.04-.03s.08-.05.23-.05c.15 0 .34.03.53.1.39.14.77.39 1.13.7l.23.2.33-.01a4 4 0 0 1 1.26.21c.43.14.83.35 1.24.63.81.54 1.58 1.21 2.22 1.96.65.74 1.15 1.57 1.54 2.5.39.89.71 2.05 1.51 3.01l.13.15.19.07c.32.12.68.29 1 .46.33.17.65.35.96.56.22.15.43.31.63.48-.4.1-.81.23-1.21.46l-.61.35.31.64.01.01c.17.32.3.44.47.6.16.15.33.27.51.37.17.1.38.2.52.25.14.05.27.11.4.18.26.14.51.31.72.5.22.23.5.49.75.72l.42-.29c-.14-.33-.26-.63-.43-.96-.16-.37-.4-.68-.69-.95ZM.73.89C.76.86.79.85.82.82L.84.8.73.89ZM5.2 5.51c.47-.39.16-1.1-.63-1.02.4.24.63.87.63 1.02Z" /></symbol>'}),Ou=(a().add(Su),Su),Cu=new(o())({id:"mySQL_press",use:"mySQL_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL_press"><path d="M16.45 16.06s-.39-.63-1.26-1.1c-.87-.47-1.1-.94-1.1-.94.94-.55 2.28-.55 2.28-.55-.87-1.65-3.78-2.75-3.78-2.75-1.02-1.26-1.02-2.44-2.13-4.25C9.36 4.65 7.48 3.15 6.3 2.6c-1.18-.55-2.13-.47-2.13-.47-1.26-1.1-2.44-1.18-2.91-.71-.47.32-.24 1.18.23 1.58.47.4.79.63.87 1.34.08.71.71 2.28.94 2.44.24.16.39.55.39.55-.63 1.02-.39 3.23-.24 3.78.16.55.87 1.57 1.5 1.34.63-.24.31-1.02.55-1.65 2.13 4.09 7.71 6.06 7.71 6.06H17l-.55-.8ZM4.8 4.81c0-.16-.24-.79-.63-1.02.79-.08 1.1.62.63 1.02Z" /></symbol>'}),Eu=(a().add(Cu),Cu),Au=new(o())({id:"nginx",use:"nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx"><path d="M10.75 6c-.41 0-.75.34-.75.75v2.31L7.84 6.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V8.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75Zm4.19-1.78-4.77-2.76c-.35-.2-.76-.31-1.16-.31-.4 0-.81.11-1.16.31L3.06 4.23c-.72.41-1.16 1.19-1.16 2.02v5.51c0 .83.45 1.6 1.17 2.02l4.77 2.76c.35.2.76.31 1.16.31.41 0 .81-.11 1.16-.31l4.78-2.76c.72-.41 1.16-1.19 1.16-2.02V6.24c.01-.83-.44-1.6-1.16-2.02Zm-.33 7.54c0 .3-.16.57-.41.72l-4.78 2.76c-.13.07-.27.11-.41.11-.14 0-.29-.04-.41-.11l-4.78-2.76a.819.819 0 0 1-.41-.72V6.24c0-.3.16-.57.41-.72L8.6 2.76c.13-.07.27-.11.41-.11.14 0 .29.04.41.11l4.78 2.76c.26.15.41.42.41.72v5.52Z" /></symbol>'}),Mu=(a().add(Au),Au),ku=new(o())({id:"nginx_local",use:"nginx_local-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_local"><path d="m9 17 2-2H7l2 2Zm1.75-12c-.41 0-.75.34-.75.75v2.31L7.84 5.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V7.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75Zm2.77-1.21-3.13-1.81c-.42-.24-.9-.37-1.39-.37-.49 0-.97.13-1.39.37L4.48 3.79c-.86.49-1.39 1.41-1.39 2.4V9.8c0 .99.53 1.91 1.39 2.41l3.13 1.81c.42.24.9.37 1.39.37.49 0 .97-.13 1.39-.37l3.13-1.81a2.78 2.78 0 0 0 1.39-2.41V6.19c0-.99-.53-1.91-1.39-2.4Zm-.11 6.02c0 .46-.24.88-.64 1.11l-3.13 1.81c-.2.11-.42.17-.64.17-.22 0-.44-.06-.64-.17l-3.13-1.81c-.4-.23-.64-.65-.64-1.11V6.19c0-.46.24-.88.64-1.11l3.13-1.81c.2-.11.42-.17.64-.17.22 0 .44.06.64.17l3.13 1.81c.4.23.64.65.64 1.11v3.62Z" /></symbol>'}),Pu=(a().add(ku),ku),Ru=new(o())({id:"nginx_plus",use:"nginx_plus-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_plus"><path d="M15.55 4.62 9.52 1.14a1.02 1.02 0 0 0-1.04 0L2.45 4.62c-.32.19-.52.53-.52.9v6.96c0 .37.2.71.52.9l6.03 3.48c.32.19.72.19 1.04 0l6.03-3.48c.32-.19.52-.53.52-.9V5.52c0-.37-.2-.71-.52-.9Zm-6.43 6.49c0 .24-.14.46-.37.55-.07.03-.15.05-.23.05-.15 0-.31-.06-.42-.17L4.6 8.03v3.09a.591.591 0 0 1-1.18 0V6.6c0-.24.14-.46.37-.55.22-.09.48-.04.65.13l3.51 3.51V6.6a.591.591 0 0 1 1.18 0v4.51h-.01Zm5.23-1.75h-1.53v1.53a.56.56 0 1 1-1.12 0V9.36h-1.53a.56.56 0 1 1 0-1.12h1.53V6.7a.56.56 0 1 1 1.12 0v1.53h1.53c.31 0 .56.25.56.56 0 .31-.25.57-.56.57Z" /></symbol>'}),Tu=(a().add(Ru),Ru),Iu=new(o())({id:"ntpd",use:"ntpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76ZM4.5 7c0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5S4.5 9.48 4.5 7Zm5.25-.31V4.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v2.81l1.24 1.24c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-.8-.8Z" /></symbol>'}),Bu=(a().add(Iu),Iu),Du=new(o())({id:"ntpd_press",use:"ntpd_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd_press"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76Zm-7-7.19V4.5c0-.41.34-.75.75-.75s.75.34.75.75v2.19l.8.8c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22L8.25 7.31Z" /></symbol>'}),ju=(a().add(Du),Du),Lu=new(o())({id:"openStack",use:"openStack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openStack"><path d="M12.5 12.01c0 .27-.22.49-.49.49H5.99a.49.49 0 0 1-.49-.49v-.21H2v3.38c0 .45.37.82.82.82h12.36c.45 0 .82-.37.82-.82V11.8h-3.5v.21Zm-7-4.41H2v2.8h3.5V7.6ZM15.18 2H2.82c-.45 0-.82.37-.82.82V6.2h3.5v-.21c0-.27.22-.49.49-.49h6.03c.27 0 .49.22.49.49v.21h3.5V2.82a.839.839 0 0 0-.83-.82Zm-2.68 8.4H16V7.6h-3.5v2.8Z" /></symbol>'}),Zu=(a().add(Lu),Lu),Nu=new(o())({id:"openWrt",use:"openWrt-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openWrt"><path d="M3.69 8.36c-.12 0-.22.04-.29.13-.07.08-.11.22-.11.42 0 .19.04.33.11.41.07.08.17.13.29.13.13 0 .23-.04.3-.12.07-.08.1-.23.1-.44 0-.18-.04-.31-.11-.39-.07-.1-.16-.14-.29-.14ZM9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7ZM4.58 9.43c-.08.14-.18.25-.33.33-.14.08-.32.12-.53.12-.22 0-.4-.03-.54-.1a.773.773 0 0 1-.34-.33c-.1-.14-.14-.33-.14-.55 0-.31.09-.55.26-.73.17-.17.42-.26.73-.26.32 0 .57.09.74.26.17.17.26.41.26.72 0 .22-.04.4-.11.54Zm1.76.27c-.11.12-.25.18-.42.18-.08 0-.16-.01-.22-.04a.567.567 0 0 1-.18-.12v.66h-.54V8.47h.5v.2c.07-.09.13-.14.19-.17.08-.04.16-.06.26-.06.19 0 .33.07.43.21.1.14.15.32.15.53 0 .23-.06.4-.17.52Zm1.97-.41H7.24c.01.08.03.15.07.19.05.06.12.09.2.09.05 0 .1-.01.15-.04.03-.02.06-.05.09-.09l.53.05c-.08.14-.18.24-.29.3-.11.06-.28.09-.49.09-.18 0-.33-.03-.44-.08a.568.568 0 0 1-.26-.25.744.744 0 0 1-.1-.4c0-.22.07-.39.21-.52.14-.13.33-.2.58-.2.2 0 .36.03.47.09.12.06.2.15.26.26.06.11.09.26.09.44v.07Zm1.71.56h-.54v-.76c0-.09-.02-.15-.05-.18-.03-.04-.08-.05-.14-.05-.06 0-.12.02-.16.07-.04.05-.06.14-.06.26v.66h-.53V8.47h.5v.23c.07-.09.15-.16.22-.2.08-.04.17-.06.28-.06.15 0 .26.04.35.13.08.09.12.22.12.4v.88h.01Zm2.42 0h-.58l-.34-1.2-.33 1.2h-.59l-.43-1.91h.56l.2 1.06.3-1.06h.56l.3 1.07.2-1.07h.56l-.41 1.91Zm1.52-.96a.336.336 0 0 0-.15-.04.18.18 0 0 0-.16.09c-.06.08-.08.23-.08.45v.46h-.54V8.47h.5v.23c.05-.1.1-.17.15-.2.05-.04.11-.06.19-.06s.17.02.26.07l-.17.38Zm.68.94a.339.339 0 0 1-.14-.15.875.875 0 0 1-.05-.33v-.49h-.2v-.39h.2v-.25l.53-.27v.52h.29v.39h-.29v.49c0 .06.01.1.02.12.02.03.05.04.09.04.04 0 .09-.01.17-.03l.04.37c-.13.03-.25.04-.37.04-.13 0-.23-.02-.29-.06ZM7.5 8.75c-.08 0-.15.03-.2.1-.03.04-.05.1-.06.19h.53c-.01-.1-.04-.18-.08-.22a.294.294 0 0 0-.19-.07Zm-1.75.08c-.07 0-.12.03-.17.08-.05.05-.07.14-.07.26 0 .11.02.19.07.24.05.05.1.08.18.08.06 0 .11-.02.16-.08.04-.05.06-.14.06-.26 0-.11-.02-.2-.07-.25a.213.213 0 0 0-.16-.07Z" /></symbol>'}),Fu=(a().add(Nu),Nu),Hu=new(o())({id:"pan",use:"pan-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pan"><path d="M9 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm6.624-2.416a.75.75 0 1 0-1.248.832l1.223 1.834h-1.674C13.56 5.847 11.504 4 9 4S4.44 5.847 4.076 8.25H2.401l1.223-1.834a.75.75 0 0 0-1.248-.832L.099 9l2.277 3.416a.75.75 0 0 0 1.248-.832L2.401 9.75h1.674C4.44 12.153 6.496 14 9 14s4.56-1.847 4.924-4.25h1.674l-1.223 1.834a.75.75 0 0 0 1.248.832L17.901 9l-2.277-3.416ZM9 12.5c-1.93 0-3.5-1.57-3.5-3.5S7.07 5.5 9 5.5s3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5Z" /></symbol>'}),Vu=(a().add(Hu),Hu),zu=new(o())({id:"percona",use:"percona-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="percona"><path d="M9 2C5.13 2 2 5.13 2 9c0 2.38 1.19 4.48 3 5.74V9c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4c-.95 0-1.81-.35-2.5-.9v3.44c.78.3 1.62.47 2.5.47 3.87 0 7-3.13 7-7S12.87 2 9 2Zm2.5 7a2.5 2.5 0 0 0-5 0 2.5 2.5 0 0 0 5 0Z" /></symbol>'}),Uu=(a().add(zu),zu),Gu=new(o())({id:"pfSense",use:"pfSense-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pfSense"><path d="m11.86 6.83.53-1.8c.38-1.3 1.57-2.19 2.92-2.19H16c0-.46-.38-.84-.84-.84H2.84c-.46 0-.84.38-.84.84V13.5l1.68-6.67h2.1l-.21.85c.86-.76 1.9-1.19 2.87-1.1 1.7.17 2.5 1.92 1.78 3.92s-2.68 3.48-4.38 3.31c-.69-.07-1.23-.4-1.58-.9L3.47 16h11.69c.46 0 .84-.38.84-.84V4.8h-.69c-.48 0-.91.32-1.04.78l-.37 1.25h1.26l.35.84-.84.84h-1.26l-1.5 5.11H9.87l1.5-5.11h-.75l.49-1.68h.75Zm-3.75 3.56c.36-1.02-.05-1.92-.93-2.01-.82-.09-1.76.57-2.17 1.5l-.19.77c-.05.75.36 1.34 1.05 1.41.87.1 1.87-.65 2.24-1.67Z" /></symbol>'}),Wu=(a().add(Gu),Gu),$u=new(o())({id:"php_fpm",use:"php_fpm-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="php_fpm"><path d="M2.32 8.49h-.37l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12Zm10.11.04h-.38l-.21 1.19h.34c.22 0 .39-.05.51-.14.11-.09.18-.24.22-.47.02-.07.02-.14.02-.2 0-.11-.02-.18-.07-.24-.07-.1-.22-.14-.43-.14ZM.82 6.67 0 11.33h8.32l.82-4.65H.82v-.01Zm2.53 2.42c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.13.05-.3.07-.52.07h-.47l-.13.72H.98l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49 0 .08-.02.17-.03.27Zm2.27-.31-.23 1.26h-.55l.22-1.2c.01-.06.02-.11.02-.14 0-.06-.01-.11-.04-.13-.05-.05-.14-.07-.27-.07h-.44l-.29 1.55H3.5L4 7.33h.54l-.13.72h.48c.3 0 .51.06.63.17.09.08.12.2.12.35 0 .07 0 .14-.02.21Zm2.48.31c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.14.04-.3.07-.52.07H6.4l-.13.72h-.54l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49-.01.08-.02.17-.03.27Zm1.47-2.42-.82 4.65h8.43L18 6.67H9.57Zm.83 3.49h-.58l.3-1.67h-.39l.07-.41h.39l.04-.21c.04-.21.11-.36.2-.43.09-.07.25-.11.47-.11h.52l-.07.4h-.26c-.09 0-.16.02-.21.04-.05.03-.07.08-.09.14l-.03.17h.52l-.07.41h-.51l-.3 1.67Zm3.06-1.01c-.03.14-.07.27-.13.38-.06.11-.13.21-.22.3-.11.12-.23.2-.37.24-.14.05-.31.07-.52.07h-.47l-.13.75h-.55l.52-2.82h1.06c.32 0 .55.1.7.28.11.13.15.3.15.51-.01.1-.02.19-.04.29Zm3.41-.31-.24 1.32h-.56l.22-1.25c.01-.03.01-.05.02-.07 0-.02.01-.05.01-.08 0-.06-.01-.11-.03-.15-.05-.05-.14-.07-.28-.07h-.31l-.3 1.62h-.57l.29-1.62h-.64l-.3 1.62h-.56L14 8.09h2.12c.3 0 .52.06.64.18.08.09.12.21.12.37.01.06 0 .13-.01.2Zm-9.8-.35H6.7l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12Z" /></symbol>'}),qu=(a().add($u),$u),Yu=new(o())({id:"postgreSQL",use:"postgreSQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="postgreSQL"><path d="M6.05 10.28c-.55-.58-.8-1.37-.69-2.19.12-.88.08-1.65.05-2.07-.01-.1-.01-.19-.01-.24 0-.12-.05-2.62 1.4-4.07.01-.01.03-.02.04-.04-.87-.28-3.05-.85-4.37.09-.81.58-1.19 1.65-1.11 3.19.02.49.33 2.22.86 3.95.61 1.99 1.3 3.25 1.89 3.45.09.03.37.12.77-.36.57-.68 1.1-1.27 1.35-1.53-.07-.06-.12-.12-.18-.18Zm8.17-5.06c-.59-.07-1.27-.06-1.54.33-.52.75.5 2.58.93 3.36.11.2.19.35.23.44.04.1.09.19.13.27.3-.64.22-1.28.15-1.91-.04-.31-.08-.63-.07-.94.01-.32.05-.58.09-.83.04-.25.07-.47.08-.72Zm-.58.56c-.05.05-.15.14-.29.16h-.05c-.21 0-.38-.17-.4-.26-.02-.13.19-.22.4-.25.21-.03.43.01.45.13.01.06-.03.14-.11.22Zm-.14-3.17c.8.93 1.19 1.96 1.22 2.3.01.05 0 .1-.01.13.01.36-.03.66-.08.96-.04.24-.07.49-.08.77-.01.27.03.56.06.87.09.74.19 1.59-.32 2.43l.03.03c.02.03.04.05.06.08 1.99-3.13 2.68-6.76 2.05-7.56C14.94.71 12.65.91 11.55 1.14c.87.39 1.51.96 1.95 1.47Zm-5 8.54c-.14-.06-.21-.09-.38.1-.11.12-.19.22-.26.31-.31.39-.45.52-1.36.71-.19.04-.3.08-.36.11.07.05.2.11.34.14.67.17 1.6.18 2.24-.72.08-.11.05-.24.03-.31-.04-.16-.14-.29-.25-.34Zm5.91-.06c-.03-.02-.05-.04-.07-.05-.04.02-.08.03-.1.03-.23.07-.45.13-.42.72.19.18 1.4.16 2.07-.15.34-.16.58-.33.71-.46h-.01c-1.04.21-1.77.18-2.18-.09Zm-8-1.15c.35.36.81.57 1.28.57.05-.22.14-.46.24-.71l.04-.1c.05-.13.1-.25.16-.39.29-.64.65-1.44.23-3.35-.08-.37-.27-.58-.59-.66-.69-.16-1.66.36-1.87.55 0 .04.01.1.01.16.03.43.07 1.24-.06 2.17-.09.65.12 1.29.56 1.76Zm.79-4.22c0-.03.02-.07.07-.11.08-.06.25-.09.43-.06.11.02.22.05.29.09.14.08.15.16.14.21-.02.13-.22.3-.44.3h-.06a.578.578 0 0 1-.36-.22c-.02-.05-.08-.13-.07-.21Zm6.86 4.88c-.04-.05-.08-.11-.13-.17-.16-.2-.38-.48-.55-.89-.03-.06-.11-.21-.2-.38-.52-.94-1.61-2.89-.91-3.89.32-.46.96-.65 1.9-.55-.3-.87-1.64-3.46-4.72-3.51-.94-.02-1.71.27-2.29.86C6.24 3 6 4.46 5.93 5.24c.04-.02.09-.05.14-.07.23-.12.7-.32 1.21-.38.85-.09 1.41.29 1.58 1.07.45 2.08.04 3-.27 3.67-.06.12-.11.24-.15.35l-.04.1c-.09.24-.17.46-.22.65.22-.06.41.02.51.06.25.11.47.36.55.66l.03.15c.01.03.01.05.01.08-.06 2.08.02 3.97.19 4.39.26.65.65 1.22 1.76.98 1.07-.23 1.45-.62 1.63-1.65.14-.79.4-3.02.44-3.48-.03-.95.48-1.14.76-1.22Z" /></symbol>'}),Xu=(a().add(Yu),Yu),Ku=new(o())({id:"prometheus",use:"prometheus-usage",viewBox:"0 0 256 257",content:'<symbol xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" viewBox="0 0 256 257" id="prometheus"><path d="M128.001.667C57.311.667 0 57.971 0 128.664c0 70.69 57.311 127.998 128.001 127.998S256 199.354 256 128.664C256 57.97 198.689.667 128.001.667zm0 239.56c-20.112 0-36.419-13.435-36.419-30.004h72.838c0 16.566-16.306 30.004-36.419 30.004zm60.153-39.94H67.842V178.47h120.314v21.816h-.002zm-.432-33.045H68.185c-.398-.458-.804-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.716-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722-7.673-8.994-12.23-20.428-12.23-32.116 0-25.658 19.68-48.079 12.58-66.201 6.91.562 14.3 14.583 14.8 36.505 7.346-10.152 10.42-28.69 10.42-40.056 0-11.769 7.755-25.44 15.512-25.907-6.915 11.396 1.79 21.165 9.53 45.4 2.902 9.103 2.532 24.423 4.772 34.138.744-20.178 4.213-49.62 17.014-59.784-5.647 12.8.836 28.818 5.27 36.518 7.154 12.424 11.49 21.836 11.49 39.638 0 11.936-4.407 23.173-11.84 31.958 8.452-1.586 14.289-3.016 14.289-3.016l27.45-5.355c.002-.002-3.987 16.401-19.314 32.197z" /></symbol>'}),Ju=(a().add(Ku),Ku),Qu=new(o())({id:"proxySQL",use:"proxySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="proxySQL"><path d="m3.26 8.13-.89-.75-.37.53.18.62 1.08-.4Zm-1.27-.21L2 7.91v-.02l-.01.03Zm1.97 4.15H2.8l.05.64.54.36.57-1Zm2.64 3.77-.01-.01h-.02l.03.01Zm-3.75-3.12v-.02l-.01-.01.01.03Zm10.72-9.05.01.01h.02l-.03-.01ZM7.03 14.63l-.89.74.45.46.64-.07-.2-1.13Zm5.72-9.96 1.09-.39-.26-.59-.63-.16-.2 1.14ZM9 3.29l.58-1L9 2.01l-.58.28.58 1ZM8.99 2l.01.01.01-.01h-.02ZM4.41 3.69h.02l.01-.01-.03.01Zm.84.98-.2-1.14-.63.16-.26.59 1.09.39Zm-2.39 5.49a.09.09 0 0 0-.07-.03l-.09.02c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.26-.05-.02-.12c0-.03-.02-.06-.04-.08Zm11.88-2.03 1.09.4.18-.62-.38-.52-.89.74ZM3.82 6.23c.03-.01.05-.03.07-.07.02-.03.03-.06.03-.09A.09.09 0 0 0 3.89 6l-.22-.14a.085.085 0 0 0-.07 0c-.03.01-.05.03-.07.07-.02.03-.03.06-.03.09s.01.05.03.07l.22.14c.02.01.04.01.07 0Zm10.79 1.93 1.02-.86a6.962 6.962 0 0 0-1.72-2.98l-1.24.45.23-1.3A6.85 6.85 0 0 0 9.66 2.3L9 3.42 8.35 2.3c-1.2.12-2.3.54-3.24 1.19l.22 1.28-1.22-.44c-.81.82-1.41 1.84-1.72 2.98l1 .84-1.22.45a6.911 6.911 0 0 0 .6 3.4h1.31l-.65 1.13c.68.94 1.59 1.71 2.65 2.21l1-.84.23 1.28c.55.14 1.12.21 1.71.21.58 0 1.14-.07 1.68-.21l.23-1.29 1.01.85c1.06-.5 1.97-1.26 2.65-2.2l-.66-1.15h1.33a6.843 6.843 0 0 0 .6-3.39l-1.25-.44Zm-3.57-5.05.12-.23.24.12-.12.23c-.01.02-.01.05.01.07.01.03.04.05.07.07.03.02.06.02.09.02s.05-.02.06-.04l.12-.23.23.12-.12.23c-.05.09-.15.1-.32.03l-.16.31-.23-.12.16-.31c-.15-.08-.2-.17-.15-.27Zm-4.48-.06.1.24c.01.02.03.04.06.04.03.01.06 0 .1-.01.03-.01.06-.03.08-.06.02-.03.02-.05.01-.07l-.1-.24.24-.1.09.2c.04.1-.02.18-.17.27.17-.06.27-.04.31.06l.09.2-.24.1-.1-.24a.068.068 0 0 0-.06-.04c-.03-.01-.06 0-.1.01-.03.01-.06.03-.08.06-.02.03-.02.05-.01.07l.1.24-.24.1-.09-.2c-.04-.1.02-.18.17-.27-.17.06-.27.04-.31-.06l-.09-.2.24-.1ZM3.38 6.31c-.04-.03-.06-.07-.06-.13s.02-.12.05-.18l.14-.22c.04-.06.09-.1.14-.13.06-.03.11-.03.15 0l.22.14c.04.03.06.07.06.13s-.02.12-.05.19l-.13.21c-.04.06-.09.1-.14.13-.06.03-.11.03-.15 0l-.23-.14Zm-.75 4.38-.1-.5a.306.306 0 0 1 .02-.19.14.14 0 0 1 .11-.1l.05-.01c.04-.01.08 0 .12.04.04.03.07.09.09.18l-.02-.12c-.01-.03 0-.07.01-.09.01-.03.03-.04.05-.05l.31-.06.05.25-.26.05c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.35-.07.05.25-.79.16Zm2.34 3.62-.38-.37a.335.335 0 0 1-.1-.17c-.01-.06 0-.11.03-.14l.06-.06c.03-.03.08-.05.14-.04.06.01.12.04.17.09l.19.18.24-.26.19.18-.54.59Zm8.26-.03-.45-.54-.3.25-.06-.07.51-.42.51.61-.21.17Zm-4.22.34c-3.03 0-5.49-2.46-5.49-5.49 0-3.03 2.46-5.49 5.49-5.49 3.03 0 5.49 2.46 5.49 5.49 0 3.03-2.45 5.49-5.49 5.49ZM14.56 6c-.02.01-.03.03-.03.06l-.04.35c-.01.06-.03.11-.07.13l-.04.02c-.04.02-.09.02-.15 0a.348.348 0 0 1-.14-.13l-.07-.11a.45.45 0 0 1-.06-.19c0-.05.03-.09.08-.12l.07.11c-.01 0-.01 0-.01.01-.02.01-.03.03-.03.06s.01.06.03.09c.02.04.05.07.07.08.02.01.05.01.07-.01.02-.01.03-.03.03-.06l.04-.35c.01-.06.03-.11.07-.13l.04-.02c.04-.02.09-.02.15 0 .06.03.1.07.14.13l.07.11c.08.14.08.25-.02.32l-.07-.11c.05-.04.05-.09.01-.15a.19.19 0 0 0-.07-.08c-.02-.01-.05-.02-.07-.01Zm1.05 4.28-.06.26c-.02.07-.05.13-.09.17-.05.04-.09.06-.14.05l-.43-.1c-.1-.02-.14-.12-.11-.3l-.06.26-.09-.02.05-.19c.02-.08.06-.11.12-.11l.05-.19c.02-.07.05-.13.09-.17.05-.04.09-.06.14-.05l.43.1c.05.01.08.05.1.1.02.05.02.12 0 .19ZM4.84 13.73c-.03-.01-.05 0-.07.02l-.06.06c-.02.02-.02.04-.01.07.01.03.02.06.05.08l.1.09.18-.19-.1-.09c-.03-.02-.06-.03-.09-.04Zm10.6-3.49-.43-.1c-.02-.01-.05 0-.07.02-.02.02-.04.05-.05.09a.17.17 0 0 0 0 .1c.01.03.03.05.05.05l.43.1c.02.01.05 0 .07-.02.02-.02.04-.05.05-.08a.17.17 0 0 0 0-.1c-.01-.04-.02-.06-.05-.06Zm-1.4 1.83.58 1 .54-.36.05-.64h-1.17Zm1.12.63-.01.01v.02l.01-.03Zm-4.19 1.93-.2 1.14.64.07.45-.46-.89-.75Zm.45 1.2h-.02l-.01.01.03-.01Zm4.59-7.94v.02l.01.01-.01-.03Zm-7-3.88c-2.83 0-5.12 2.29-5.12 5.12s2.29 5.12 5.12 5.12 5.12-2.29 5.12-5.12-2.29-5.12-5.12-5.12Zm-1.7 3.61c.6-.86 1.43-1.32 2.47-1.37h.09c.32 0 .64.08.88.15-.29-.07-.56-.1-.83-.1-.67 0-1.12.22-1.45.42-.54.32-.43.78-.4.87 0 0-.01 0-.01.01-.42.27-.78.84-.66 1.41.11.53.58 1.14 1.36 1.25-.04.07-.16.23-.39.23-.08 0-.16-.02-.25-.05-.31-.12-.79-.7-.99-1.34-.12-.37-.18-.95.18-1.48Zm1.24 3.91c-.67 0-1.36-.28-1.86-.75-.49-.45-.79-1.12-.88-1.84.27 1.6 1.77 2.15 1.79 2.16.16.06.32.09.49.09.32 0 .6-.11.77-.32 1.05-.23 1.66-.93 1.63-1.89.18.18.65.78 0 1.57-.53.64-1.2.98-1.94.98Zm2.35-1.99c0-.15-.18-.58-.43-.68l-.05-.02v.05c.03 1.28-1.03 1.71-1.15 1.76l-.02.01c-.12.04-.36.14-.68.14-.44 0-.87-.16-1.3-.49-.48-.36-.68-.83-.73-1.29.03.18.09.35.18.51.3.57.88.94 1.29 1.04.09.02.17.03.25.03.44 0 .58-.34.58-.34l.02-.04-.04-.01c-.6-.08-1.08-.59-1.27-1.04-.09-.2-.06-.52.06-.81.15-.35.41-.65.75-.85.34-.19.73-.3 1.13-.3.16 0 .31.02.46.05-.1-.01-.21-.02-.32-.02-.16 0-.3.01-.43.02-.03 0-.07.01-.1.01-.35.03-.88.39-.91.62-.03.23.07.27.08.27l.02.01.01-.01c.1-.08.41-.26 1.07-.26.64 0 1.24.38 1.56.98.32.61.01 1.46-.32 1.87-.17.21-.36.36-.51.46.73-.57.8-1.4.8-1.67Zm-.47 2.72c.78-.62 1.21-1.29 1.26-1.97.07-.92-.56-1.55-.57-1.56l-.07-.07.01.09c.01.09.01.18 0 .25-.18-.62-1.06-1.18-1.92-1.18-.34 0-.64.09-.87.26-.02-.12.02-.24.1-.34.2-.26.67-.42 1.23-.42.77 0 2.13.43 2.29 2.02.12 1.19-.42 2.26-1.46 2.92Z" /></symbol>'}),el=(a().add(Qu),Qu),tl=new(o())({id:"rabbitMQ",use:"rabbitMQ-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rabbitMQ"><path d="M10.26 6.96V2.71c0-.39-.32-.71-.71-.71H8.17c-.39 0-.71.32-.71.71v4.25c0 .39-.32.71-.71.71h-.82c-.39 0-.71-.32-.71-.71V2.71c0-.39-.32-.71-.71-.71H3.2c-.39 0-.71.32-.71.71v12.58c0 .39.32.71.71.71h11.6c.39 0 .71-.32.71-.71V8.38c0-.39-.32-.71-.71-.71h-3.83c-.39 0-.71-.32-.71-.71Zm2.66 5.54c0 .38-.31.7-.7.7h-1.27c-.38 0-.7-.31-.7-.7v-1.27c0-.38.31-.7.7-.7h1.27c.38 0 .7.31.7.7v1.27Z" /></symbol>'}),nl=(a().add(tl),tl),rl=new(o())({id:"redis",use:"redis-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="redis"><path d="M1.49 5.89c.87.41 5.67 2.35 6.43 2.71.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.42-.22.63-.39.64-.55.01-.17-.21-.31-.65-.47-.85-.31-5.34-2.1-6.2-2.41-.86-.32-1.21-.3-2.22.06-1.01.36-5.78 2.23-6.63 2.57-.43.17-.63.32-.63.49.01.16.23.33.66.54Zm7.85 1.92L6.55 6.66l4-.61-1.21 1.76Zm5.81-2.65-2.33.92-.26.1-2.34-.92 2.58-1.02 2.35.92ZM8.04 2.79l1.22.48 1.14-.37-.31.74 1.06.4-.01.07-1.39.14-.34.81-.54-.9-1.62-.14-.01-.07 1.18-.43-.38-.73ZM5.66 4.46c1.16 0 2.06.36 2.06.82 0 .46-.9.82-2.06.82-1.16 0-2.06-.36-2.06-.82 0-.46.91-.82 2.06-.82Zm10.87 6.68c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57v-1.63c-.01.16-.22.33-.64.55ZM1.49 7.54c.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V5.31c-.01.02-.02.03-.04.05v.01c-.03.03-.06.06-.11.1l-.01.01c-.02.01-.04.03-.06.04l-.01.01c-.05.03-.1.07-.16.1-.01 0-.01.01-.02.01-.02.01-.05.03-.07.04-.01 0-.02.01-.03.01-.03.02-.07.04-.1.05-.01.01-.03.01-.04.02-.24.12-.7.33-1.26.57-.08.04-.17.07-.26.11-.02.01-.04.02-.07.03-.43.19-.91.39-1.4.6-.34.14-.68.29-1 .43l-.06.03-.15.06c-.58.25-1.12.49-1.53.67-.25.11-.44.21-.57.27-.4.21-.73.33-1.02.38-.1.02-.2.02-.29.02h-.12c-.05 0-.09-.01-.14-.02-.23-.03-.47-.11-.75-.25-.35-.17-1.58-.68-2.9-1.23a.694.694 0 0 0-.13-.05c-.82-.34-1.65-.68-2.3-.96-.14-.06-.28-.12-.41-.17-.31-.13-.56-.24-.7-.31-.04-.02-.07-.03-.1-.05-.01 0-.02-.01-.03-.01-.03-.01-.05-.03-.07-.04-.01 0-.01-.01-.02-.01-.03-.02-.06-.03-.09-.05h-.01c-.03-.02-.05-.03-.07-.05-.01 0-.01-.01-.02-.01-.02-.01-.04-.03-.06-.04 0 0-.01 0-.01-.01-.02-.02-.04-.03-.06-.05-.02-.01-.03-.03-.05-.04l-.01-.01c-.01-.02-.03-.03-.04-.05v1.46c.02.18.25.35.68.56Zm15.04.91c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.36 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V7.9c-.01.16-.22.33-.64.55Z" /></symbol>'}),ol=(a().add(rl),rl),il=new(o())({id:"rethinkDB",use:"rethinkDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rethinkDB"><path d="M4.08 8.83c-.13 0-.22.04-.27.12-.05.08-.08.17-.08.27h.67c0-.26-.11-.39-.32-.39ZM2.1 8.27h-.12v.74h.07c.17 0 .31-.03.4-.1.1-.07.14-.16.14-.3.02-.22-.15-.34-.49-.34ZM0 4.91v8.18h18V4.91H0Zm8.2 3.1c.04-.04.1-.06.17-.06s.12.02.17.06c.04.04.06.1.06.16s-.02.12-.06.16c-.04.04-.1.06-.17.06s-.12-.02-.16-.06a.211.211 0 0 1-.06-.16c0-.07.01-.11.05-.16Zm-4.99 2.08c0 .03-.02.05-.05.05h-.42c-.03 0-.06-.01-.07-.04l-.44-.83h-.06c-.07 0-.13 0-.18-.01v.64h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.28h-.17c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05.27-.01.5-.02.68-.02.56 0 .83.19.83.57a.635.635 0 0 1-.39.58l.37.71h.2c.03 0 .05.02.05.05v.17h.01Zm1.51-.66c-.01.01-.02.01-.05.01h-.94c.01.15.05.26.11.34.07.08.18.12.34.12.12 0 .24-.03.36-.08.03-.01.05-.01.06.02l.06.14c.01.02 0 .05-.03.06-.14.07-.32.11-.53.11-.25 0-.44-.07-.56-.21-.12-.14-.18-.33-.18-.57 0-.24.06-.43.19-.59.13-.16.31-.23.54-.23.12 0 .22.02.3.06.08.04.15.1.19.17.09.14.13.3.13.48.02.12.01.16.01.17Zm1.21.67c-.1.05-.22.07-.36.07-.19 0-.31-.05-.37-.14a.34.34 0 0 1-.07-.18c-.02-.08-.03-.17-.03-.25v-.74h-.18c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.18v-.42c0-.03.02-.05.05-.05h.26c.03 0 .05.02.05.05v.42h.32c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.32v.78c0 .1.01.17.04.21.03.04.07.06.14.06s.14-.01.2-.04c.02-.01.04 0 .05.02l.06.14v.03c.01.01 0 .02-.02.04Zm1.95-.01c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.49c.03 0 .05.02.05.05v.95c.12-.17.29-.26.5-.26.33 0 .5.17.5.52v.79h.19c.03 0 .05.02.05.05v.17h-.01Zm.95 0c0 .03-.02.05-.05.05h-.76c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.2V8.86h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05v1.24h.2c.03 0 .05.02.05.05v.15Zm1.92 0c0 .03-.02.05-.05.05H10c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05H9c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.86H9c-.03 0-.05-.01-.05-.04v-.16c0-.03.02-.05.05-.05h.44c.03 0 .04.02.05.05l.03.18c.11-.16.27-.25.48-.26h.07c.31.01.46.19.46.52v.79h.19c.03 0 .05.02.05.05v.15h-.02Zm1.83 0c0 .03-.02.05-.05.05h-.41c-.03 0-.05-.01-.07-.04l-.48-.75h-.11v.54h.17c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05V9.1h.16l.5-.47c.02-.02.05-.03.08-.03h.25c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.2l-.35.33.44.7h.19c.03 0 .05.02.05.05v.15Zm1.75-.23c-.21.18-.5.27-.87.27h-.67c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.27-.01.48-.02.61-.02s.23 0 .3.01l.22.03c.08.02.16.04.22.07.07.03.13.07.2.12.07.05.12.11.17.18.1.16.15.36.15.61-.01.38-.12.66-.33.84Zm2.05.08c-.13.11-.31.17-.53.18-.09.01-.24.01-.44.01h-.45c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.26-.01.5-.02.73-.02.23 0 .41.04.55.13.14.09.21.21.21.37 0 .12-.04.22-.11.3-.07.09-.16.15-.26.19.16.02.29.08.38.18.09.09.13.21.13.34 0 .18-.07.32-.21.43Zm-2.86-1.67h-.2v1.62h.21c.23 0 .42-.07.55-.22.13-.15.19-.35.19-.61s-.06-.45-.18-.59c-.13-.13-.32-.2-.57-.2Zm2.2.89h-.23v.74h.14c.19 0 .33-.03.44-.09.1-.06.16-.16.16-.3-.01-.23-.17-.35-.51-.35Zm.36-.57c0-.12-.04-.2-.12-.25a.623.623 0 0 0-.33-.07h-.15v.63h.12c.33 0 .48-.1.48-.31Z" /></symbol>'}),al=(a().add(il),il),sl=new(o())({id:"retroShare",use:"retroShare-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="retroShare"><path d="M15.31 5.69a2.428 2.428 0 0 0-2.99-2.99c-.89-.45-1.9-.7-2.96-.7-2.31 0-4.34 1.18-5.53 2.96-.22.05-.43.14-.62.25-.56.32-.96.84-1.13 1.47-.17.62-.08 1.28.24 1.84.11.19.25.37.41.52.2 3.34 2.87 6.01 6.2 6.22.15.16.33.3.53.41.37.21.79.32 1.21.32a2.427 2.427 0 0 0 2.35-1.82A6.64 6.64 0 0 0 16 8.63c0-1.05-.25-2.05-.69-2.94ZM5.34 9.35c-1.03.46-2.27.08-2.85-.92-.62-1.07-.25-2.44.82-3.05 1.07-.62 2.44-.25 3.05.82.38.65.39 1.42.09 2.06l3.02 3.06-.12.06c-.44.25-.78.62-1 1.04L5.34 9.35Zm6.65 2.42c.92.66 1.2 1.93.63 2.93a2.23 2.23 0 0 1-3.05.82 2.23 2.23 0 0 1-.82-3.05c.38-.65 1.04-1.05 1.74-1.11l1.14-4.14c.04.02.08.05.11.07.44.25.92.36 1.39.35l-1.14 4.13Zm.99-4.51c-.76 0-1.42-.38-1.83-.95L7 7.4v-.13c0-.51-.15-.98-.4-1.38l4.16-1.09a2.235 2.235 0 0 1 4.46.23c0 1.23-1 2.23-2.24 2.23Z" /></symbol>'}),ul=(a().add(sl),sl),ll=new(o())({id:"selected_area",use:"selected_area-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="selected_area"><path d="M3.5 5.85H2v2.1h1.5v-2.1Zm0-2.35h.25V2H2v1.75h1.5V3.5ZM7.949 2h-2.1v1.5h2.1V2ZM2 16h6.75V9.25H2V16Zm1.5-5.25h3.75v3.75H3.5v-3.75ZM14.25 2v1.5h.25v.25H16V2h-1.75Zm.25 5.95H16v-2.1h-1.5v2.1Zm0 4.2H16v-2.1h-1.5v2.1ZM10.051 16h2.1v-1.5h-2.1V16Zm4.449-1.5h-.25V16H16v-1.75h-1.5v.25ZM12.149 2h-2.1v1.5h2.1V2Z" /></symbol>'}),cl=(a().add(ll),ll),fl=new(o())({id:"sendgrid",use:"sendgrid-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="sendgrid"><path d="M2 10.16h3.84V14H2v-3.84Zm7.92 0H6.08V14h3.84v-3.84ZM2 9.92h3.84V6.08H2v3.84Zm4.08 0h3.84V6.08H6.08v3.84Zm4.08-4.08H14V2h-3.84v3.84Zm3.84.24h-3.84v3.84H14V6.08Zm-7.92-.24h3.84V2H6.08v3.84Z" /></symbol>'}),dl=(a().add(fl),fl),pl=new(o())({id:"services",use:"services-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="services"><path d="M14.5 6c-1.39 0-2.57.96-2.9 2.25H9.52c.47-.53.84-1.12 1.11-1.78.12.02.24.03.37.03 1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3c0 1 .49 1.88 1.24 2.43a5.11 5.11 0 0 1-1.97 2.32H6.4A3.003 3.003 0 0 0 3.5 6c-1.65 0-3 1.35-3 3s1.35 3 3 3c1.39 0 2.57-.96 2.9-2.25h.87c.9.58 1.55 1.35 1.97 2.32C8.49 12.62 8 13.5 8 14.5c0 1.65 1.35 3 3 3s3-1.35 3-3-1.35-3-3-3c-.13 0-.25.01-.37.03-.27-.66-.64-1.25-1.11-1.78h2.08A3.003 3.003 0 0 0 14.5 12c1.65 0 3-1.35 3-3s-1.35-3-3-3Zm-4.97 8.22c.01-.08.04-.16.07-.23.02-.07.06-.14.1-.21v-.01c.02-.04.05-.09.08-.13a.53.53 0 0 1 .1-.12c.01-.02.03-.04.05-.06.02-.03.04-.05.07-.06a.7.7 0 0 1 .16-.14c.08-.05.16-.1.25-.14.1-.04.2-.07.31-.09.09-.02.19-.03.28-.03.03 0 .07 0 .1.01.1 0 .19.02.28.05.08.02.16.04.23.08.07.03.14.06.21.11.01 0 .01.01.02.01.06.04.13.09.18.15.06.05.11.11.15.17.21.25.33.56.33.92 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5c0-.1.01-.19.03-.28ZM9.5 3.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .8-.62 1.44-1.4 1.49-.03.01-.07.01-.1.01-.56 0-1.06-.31-1.3-.77-.13-.22-.2-.46-.2-.73Zm5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5S16 8.17 16 9s-.67 1.5-1.5 1.5Z" /></symbol>'}),hl=(a().add(pl),pl),gl=new(o())({id:"smartdlog",use:"smartdlog-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="smartdlog"><path d="M15 14.022H1V2h14v12.022Zm-13.48-.52h12.96V2.52H1.52v10.982Z" /><path d="M15 2.52H1v.99h14v-.99ZM9.848 4.602h-4.25v.52h4.25v-.52ZM12.103 5.947H5.597v.52h6.506v-.52ZM11.123 7.335H5.597v.52h5.526v-.52ZM12.97 8.809H5.597v.52h7.373v-.52ZM10.715 10.327H5.597v.52h5.118v-.52ZM12.016 11.671H5.684v.52h6.332v-.52ZM4.816 4.602H2.561v.52h2.255v-.52ZM4.816 5.947H2.561v.52h2.255v-.52Z" /><path d="M4.816 5.947H2.561v.52h2.255v-.52ZM4.816 7.291H2.561v.52h2.255v-.52ZM4.816 8.636H2.561v.52h2.255v-.52ZM4.816 10.327H2.561v.52h2.255v-.52ZM4.816 11.671H2.561v.52h2.255v-.52Z" /></symbol>'}),vl=(a().add(gl),gl),ml=new(o())({id:"solr",use:"solr-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="solr"><path d="M8.99 2c-.95 0-1.86.19-2.69.54l-.92 7.79L10 2.07A8.57 8.57 0 0 0 8.99 2ZM3.21 5.03l1.02 5.12 1.45-7.32c-.99.52-1.83 1.28-2.47 2.2Zm7.2-2.88-4.02 8.71 7.45-6.89a6.857 6.857 0 0 0-3.43-1.82ZM2 8.38l1.09 1.95-.5-4.2c-.31.7-.52 1.46-.59 2.25Zm13.94-.28-8.21 4.59 7.7-.91c.37-.85.57-1.78.57-2.77 0-.31-.02-.61-.06-.91Zm-3.03 6.73c.92-.62 1.68-1.45 2.22-2.43l-7.22 1.43 5 1ZM9.57 16c.78-.06 1.52-.25 2.2-.55l-4.04-.48L9.57 16ZM14.1 4.22l-6.89 7.45 8.66-4a6.965 6.965 0 0 0-1.77-3.45Z" /></symbol>'}),yl=(a().add(ml),ml),bl=new(o())({id:"squid",use:"squid-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="squid"><path d="M17 3.1c-.03-.43-.36-.65-.54-.81-.18-.16-.41-.47.03-.7-1.9-.15-5.12-.31-8.95 1.79C4.36 5.13 3.3 7.43 3.03 8.15c-.79.2-1.37.92-1.37 1.77 0 .16.02.32.06.48-.85.67-.88 2.89-.5 3.52.4.66 1.15 1.35 2.59 1.24 1.44-.11 2.27.58 2.39 1.33 0 0 .19-.72.04-1.29-.15-.16-.4-.34-.75-.48.04.03.07.08.07.14 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.02c-.09-.03-.18-.06-.28-.09-.13-.04-.27-.08-.41-.13.05.03.09.08.09.15 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.03c-.44-.16-.9-.4-1.19-.75-.39-.33-.44-.8-.32-1 .02.18.23.56.47.88.2.24.64.58 1.56.84.11.03.41.12.71.29.14.08.26.16.36.24.11.03.29.06.55.06.5-.01 2.03.03 2.57.95-.18-1.26-.9-1.8-1.69-2.06-.11.04-.23.07-.35.09.05.04.09.11.09.18 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.06 0-.12.01-.18.01-.12 0-.25-.01-.39-.02.01.03.02.06.02.1 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.02 0-.04-.01-.06-.01a2.17 2.17 0 0 1-.42-.11c-.02.13-.13.23-.26.23-.15 0-.26-.12-.26-.26 0-.07.03-.14.08-.19-.17-.11-.34-.25-.49-.4a.32.32 0 0 1-.29.19c-.18 0-.32-.14-.32-.32 0-.16.11-.29.26-.32-.13-.2-.24-.42-.33-.65a.29.29 0 0 1-.24.14.28.28 0 1 1 0-.56c.05 0 .11.02.15.04l.14-.03c.1.41.27.78.5 1.1.08.04.14.11.16.2.19.22.42.41.66.55.09 0 .17.04.22.11.16.07.32.12.49.14.89.14 1.4.09 1.96-.19.14-.12.25-.25.34-.36.17-.22.91-1.02 1.49-.99-.09-.31-.41-.52-.77-.55-.36-.03-.7.17-.95.38s-.82.61-1.31.41c-.49-.2-1.08-.69-1.14-1.4-.06-.71.56-1.19.56-1.19.68.31 1.88.24 2.89-.08 1.01-.32 2.93-1.31 3.54-1.9.61-.59 1.03-1.23 1.2-1.87.16-.64.48-.72.56-.67.09.05.28.31.52.31s.91-.27.88-1.12c-.03-.59-.14-.67.14-.83.19-.11.42-.09.58-.07.11-.01.49-.18.46-.61ZM6.03 15.39c.08 0 .15.07.15.15 0 .08-.07.15-.15.15-.08 0-.15-.07-.15-.15 0-.08.07-.15.15-.15Zm-2.29-1.2c.13 0 .24.11.24.24s-.11.24-.24.24-.24-.11-.24-.24.1-.24.24-.24Zm4.88.48c.1 0 .18.08.18.18 0 .1-.08.18-.18.18a.18.18 0 0 1-.18-.18c0-.1.08-.18.18-.18Zm-.6-.44c.11 0 .2.09.2.2a.2.2 0 0 1-.2.2.2.2 0 0 1-.2-.2c0-.11.09-.2.2-.2Zm1.2-2.25c.07 0 .12.05.12.12 0 .07-.05.12-.12.12-.07 0-.12-.05-.12-.12 0-.07.05-.12.12-.12Zm-.46.08c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16c0-.08.08-.16.16-.16Zm-.61.29c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16.07-.16.16-.16Zm-.81.32c.12 0 .21.1.21.21 0 .12-.1.21-.21.21-.12 0-.21-.1-.21-.21-.01-.11.09-.21.21-.21Zm-.85 0a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58Zm6.53-10.88c.18 0 .33.15.33.33 0 .18-.15.33-.33.33-.18 0-.33-.15-.33-.33 0-.18.14-.33.33-.33Zm-2.65.57c.25 0 .46.21.46.46s-.21.46-.46.46-.46-.21-.46-.46.21-.46.46-.46Zm-1.63.7a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12Zm-1.48.86a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12Zm-2.4 2.05c.17 0 .31.14.31.31 0 .17-.14.32-.31.32-.17 0-.31-.14-.31-.31 0-.17.13-.32.31-.32Zm-2.53 7.28c-.17 0-.3-.13-.3-.3 0-.17.13-.3.3-.3.17 0 .3.13.3.3a.3.3 0 0 1-.3.3Zm-.3-1.34c0-.18.14-.32.32-.32s.32.14.32.32-.14.32-.32.32a.329.329 0 0 1-.32-.32Zm1.12 1.99c0 .15-.12.27-.27.27-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27Zm.35-2.43c-.86 0-1.55-.69-1.55-1.55 0-.86.69-1.55 1.55-1.55.86 0 1.55.69 1.55 1.55 0 .86-.7 1.55-1.55 1.55Zm1.56.25c-.17 0-.31-.14-.31-.31 0-.17.14-.31.31-.31.17 0 .31.14.31.31 0 .17-.14.31-.31.31Zm.57.34a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58Zm.15-3.61c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27Zm.14-2.55c-.25 0-.46-.21-.46-.46s.21-.46.46-.46.46.21.46.46-.21.46-.46.46Zm.61 3.82c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27Zm.38-1.81c-.23 0-.42-.19-.42-.42 0-.23.19-.42.42-.42.23 0 .42.19.42.42 0 .23-.19.42-.42.42Zm.78 1.9c-.22 0-.41-.18-.41-.41 0-.22.18-.41.41-.41.22 0 .41.18.41.41 0 .23-.18.41-.41.41Zm.2-3.17a.58.58 0 1 1 1.16.001.58.58 0 0 1-1.16 0ZM9.2 9.4a.49.49 0 1 1 .002-.981.49.49 0 0 1-.002.981Zm.4-3.77c0-.36.29-.65.65-.65.36 0 .65.29.65.65 0 .36-.29.65-.65.65-.36 0-.65-.29-.65-.65Zm1.1 3.14c-.31 0-.55-.25-.55-.55 0-.3.25-.55.55-.55.31 0 .55.25.55.55 0 .3-.25.55-.55.55Zm.63-6.32a.37.37 0 1 1 .738-.002.37.37 0 0 1-.738.002Zm.7 1.76c.3 0 .53.24.53.53 0 .3-.24.53-.53.53-.3 0-.53-.24-.53-.53 0-.29.24-.53.53-.53Zm.1 3.49c-.29 0-.52-.23-.52-.52 0-.29.23-.52.52-.52.29 0 .52.23.52.52 0 .29-.23.52-.52.52Zm1.02-1.1a.47.47 0 1 1-.001-.939.47.47 0 0 1 .001.94Zm.28-2.25a.39.39 0 1 1 .39-.39c0 .22-.17.39-.39.39Zm.59 1.06c-.13 0-.23-.1-.23-.23s.1-.23.23-.23.23.1.23.23-.1.23-.23.23Zm.39-1.75c-.14 0-.26-.11-.26-.26 0-.14.11-.26.26-.26.15 0 .26.11.26.26 0 .14-.12.26-.26.26ZM3.66 8.68c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Z" /></symbol>'}),wl=(a().add(bl),bl),xl=new(o())({id:"summary_statistic",use:"summary_statistic-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="summary_statistic"><path d="M3.5 11.666V6.334A2.837 2.837 0 0 1 6.334 3.5h5.332A2.837 2.837 0 0 1 14.5 6.334V11H16V6.334A4.333 4.333 0 0 0 11.666 2H6.334A4.333 4.333 0 0 0 2 6.334v5.332A4.333 4.333 0 0 0 6.334 16H11v-1.5H6.334A2.837 2.837 0 0 1 3.5 11.666ZM9.75 12V8h-1.5v4h1.5ZM16 14.5V12h-1.5v2.5H12V16h2.5v2H16v-2h2v-1.5h-2ZM5.25 12h1.5V9h-1.5v3Zm7.5-6h-1.5v6h1.5V6Z" /></symbol>'}),_l=(a().add(xl),xl),Sl=new(o())({id:"systemd",use:"systemd-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="systemd"><path d="M2 6v3.628h1.395V9.07h-.837V6.558h.837V6H2Zm10.605 0v.558h.837V9.07h-.837v.558H14V6h-1.395ZM8.28 7.814l2.511-1.396V9.21L8.28 7.814ZM6.187 9.07a1.256 1.256 0 1 0 0-2.512 1.256 1.256 0 0 0 0 2.512Z" /></symbol>'}),Ol=(a().add(Sl),Sl),Cl=new(o())({id:"traefik",use:"traefik-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="traefik"><path d="M4.93 5.87c-.07.12-.21.2-.35.2-.07 0-.14-.02-.21-.05-.03.39-.03.78-.01 1.18l4.38 1.07.02.1c.01.03.11.64.16 1.41.05-.77.16-1.38.16-1.41l.02-.1 4.17-1.07c-.01-.39-.04-.78-.08-1.16-.06.03-.12.04-.19.04-.15 0-.28-.07-.35-.19-.01-.02-.16-.21-.35-.52-.06.46-.24.88-.57 1.03l-1.76-.2c.09.14.11.29-.04.45-.13.14-.25.14-.39.11.01.19.04.38 0 .6-.06.11-.17.12-.27.16a.388.388 0 0 1-.3-.24c-.03-.24 0-.47.02-.7h-.02c-.01.25-.05.5-.02.75-.46.61-.74-.15-.6-.6-.17.04-.34.03-.44-.16a.425.425 0 0 1-.04-.31l-1.95.12c-.36-.06-.58-.47-.66-.97-.17.26-.29.41-.33.46Zm.67-.98c.39 1.51 2.81 1.13 2.72-.39-.03-.43-.21-.74-.48-.93H9.4c-.26.25-.43.6-.41 1.04.28 1.63 2.81 1.32 2.77-.18-.21-.41-.41-.88-.57-1.39-.03-.1-.03-.2-.01-.29-.73-.31-1.59-.38-2.48-.38-.79.06-1.55.18-2.22.44.02.08.01.17-.02.26-.24.71-.57 1.34-.86 1.82Zm4.09-.79c.22 0 .4.2.4.44s-.18.44-.4.44c-.22 0-.4-.2-.4-.44s.18-.44.4-.44Zm-3.02.55c0 .24-.18.44-.41.44-.23 0-.41-.2-.41-.44s.18-.44.41-.44c.23 0 .41.2.41.44Zm3.2.1c.05 0 .09-.05.09-.11s-.04-.11-.09-.11c-.05 0-.1.05-.1.11.01.06.05.11.1.11Zm-3.42.11c.05 0 .1-.05.1-.11s-.04-.11-.1-.11c-.05 0-.1.05-.1.11s.05.11.1.11Zm-2.27.81h.01c.02.05.06.09.11.12l.14.08c.13.07.28.03.35-.09 0 0 .98-1.22 1.51-2.74.05-.14.02-.27-.11-.34l-.14-.08a.25.25 0 0 0-.17-.03h-.01c-.5-.27-1.11-.16-1.59.22.2-.31.47-.64.8-.96.99-.94 6.99-.7 7.6 0 .23.26.45.62.63.95-.47-.37-1.06-.48-1.55-.23h-.01a.27.27 0 0 0-.17.03l-.15.08c-.13.07-.16.19-.12.34.48 1.54 1.43 2.79 1.43 2.79.06.12.22.17.35.1l.15-.08c.05-.03.09-.07.12-.12h.01c.58-.3.83-1.02.67-1.74.1-.06.07-.3-.05-.54-.11-.21-.26-.36-.36-.36-.19-.45-.51-1.09-.97-1.51-.76-.7-6.68-.73-7.59 0-.53.43-.9 1.04-1.12 1.48-.1.03-.24.16-.34.35-.13.24-.16.48-.07.54-.17.7.07 1.42.64 1.74Zm4.48-.39c-.02.02-.05.07-.1.14.2-.1.47-.11.67-.03a.63.63 0 0 0-.08-.11c-.11-.08-.4-.07-.49 0Zm5.2 6.79c-.01-.12-.03-.25-.04-.37-.05.01-2.53.66-4.68.42.02.19.04.37.05.53v-.06s2.42.17 4.67-.52Zm-4.45 1.37c-.01-.02-.02-.03-.03-.05.1.17.25.35.35.41.13.09.66.24 1.4.27.74.03 1.59-.13 2.12-.43s.7-.63.7-.63v-.02c-.09.03-2.41.69-4.54.45Zm-.07-.1c-.03-.06-.06-.13-.08-.21.01.05.02.09.03.11.02.03.04.06.05.1Zm6.6-7.15-.08-.04c-.1-.05-.23.01-.3.14l-1.47 2.78-.05.09v.01l-.25.46c-.17-.05-.35-.07-.52-.06l.02.5c.01.19.05.18.15.22l-.11.2c-.08-.11-.14-.27-.13-.61.03-.77.32-.46.31-.95l.01-1.63-4.3 1.1s-.17.92-.18 1.91c0 .3.01.66.03 1.03 0-.02 0-.04.01-.06 0 0 2.27.22 4.53-.47.06 0 .12-.02.14-.07l.12-.24c.16.04.31 0 .32-.25.17-.08.1-.24 0-.36l.26-.5v-.01l1.52-2.86c.09-.14.07-.28-.03-.33ZM4.29 10.86l.07-.03c2.2.65 4.38.44 4.38.44v.02c.02-.35.03-.7.03-.99-.01-1-.17-1.91-.17-1.91l-4.51-1.1.1 1.63c-.01.49.46.18.49.95.01.45-.08.59-.2.7l-.11-.23c.1-.04.14-.02.15-.22l.02-.5c-.16-.01-.33 0-.49.05l-.21-.44s0-.01-.01-.01L2.44 6.28c-.06-.13-.19-.2-.29-.15l-.08.04c-.1.05-.13.19-.07.32l1.39 2.93c0 .01.01.02.02.03l.22.46c-.11.12-.2.3-.02.39.01.25.16.29.32.25l.12.26c.03.07.14.1.24.05Zm8.94 2.97c-.5.25-1.22.41-1.92.41h-.19c-.71-.03-1.29-.18-1.48-.3-.17-.11-.4-.42-.49-.64-.08-.2-.19-1.26-.23-2.18-.04.92-.15 1.98-.23 2.18-.09.23-.32.53-.49.64-.18.12-.76.27-1.46.3h-.19c-.73 0-1.49-.18-1.99-.46-.05-.03-.09-.06-.14-.08.07.51.21 1 .48 1.42.15.24.34.45.55.63-.02 0-.04 0-.06.01-.3.22-.89.55-.6 1 .07.07.07.03.12.05.03.05.15.29.45.11.33-.18.55-.53.94-.59-.02-.02-.04-.05-.06-.07.69.33 1.5.47 2.21.49 1.02.04 2.17-.1 3.09-.6.42.14.69 1.05 1.17.61.5-.3-.1-.92-.44-1.13.24-.22.44-.49.59-.8.17-.31.28-.65.37-1Zm-4.55-1.71c-2.13.23-4.6-.42-4.62-.42-.01.12-.03.25-.04.37 2.22.69 4.6.52 4.61.52.02-.14.04-.3.05-.47Zm-.13 1.07c-.01.02-.02.05-.02.07 0-.01.01-.02.01-.02 0-.02 0-.03.01-.05Zm-1.82.89c.73-.03 1.25-.19 1.38-.27.09-.06.22-.21.32-.36-2.14.24-4.46-.44-4.48-.45v.02s.17.33.69.63c.52.3 1.36.46 2.09.43Z" /></symbol>'}),El=(a().add(Cl),Cl),Al=new(o())({id:"varnish",use:"varnish-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="varnish"><path d="M13.165 8.533a3.766 3.766 0 1 0 0-7.531 3.766 3.766 0 0 0 0 7.531ZM7.197 17.001a2.72 2.72 0 1 0 0-5.44 2.72 2.72 0 0 0 0 5.44ZM2.638 9.656a1.564 1.564 0 1 0 0-3.127 1.564 1.564 0 0 0 0 3.127Z" /></symbol>'}),Ml=(a().add(Al),Al),kl=new(o())({id:"webLog",use:"webLog-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog"><path d="M8.26 15.96c.24.03.49.04.74.04s.5-.01.74-.04l1.34-1.36H6.92l1.34 1.36ZM6.22 13.9h5.55l1.38-1.4H4.84l1.38 1.4Zm-2.07-2.1h9.71l1.38-1.4H2.76l1.39 1.4ZM16 8.82v-.18c0-.03 0-.06-.01-.09 0-.03 0-.06-.01-.09 0-.06-.01-.11-.01-.17a7.03 7.03 0 0 0-2.16-4.39A7.046 7.046 0 0 0 9 2c-1.79 0-3.5.68-4.8 1.91A6.93 6.93 0 0 0 2.04 8.3c-.01.06-.01.11-.01.17 0 .03 0 .06-.01.08 0 .03 0 .06-.01.09V9c0 .24.01.47.04.7h13.93c.02-.23.04-.46.04-.7-.02-.06-.02-.12-.02-.18ZM8.3 8.3H3.44c.13-1.05.54-2.02 1.21-2.84a7.19 7.19 0 0 0 3.64 1.4V8.3h.01Zm0-2.84c-.94-.11-1.83-.45-2.61-.97.77-.56 1.66-.92 2.61-1.04v2.01Zm1.4-2.02c.95.12 1.84.47 2.61 1.04-.78.53-1.67.86-2.61.97V3.44Zm0 4.86V6.87a7.28 7.28 0 0 0 3.64-1.4c.67.82 1.08 1.79 1.21 2.84H9.7V8.3Z" /></symbol>'}),Pl=(a().add(kl),kl),Rl=new(o())({id:"webLog_nginx",use:"webLog_nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog_nginx"><path d="m11.06 1.94-.44-.44H3.5v15h11V5.38l-3.44-3.44Zm-.31 1.81 1.5 1.5h-1.5v-1.5ZM13 15H5V3h4.25v3.75H13V15ZM6.97 7.93c-.29.11-.47.39-.47.7v3.75c0 .41.34.75.75.75s.75-.34.75-.75v-1.85l2.2 2.36c.14.16.34.24.55.24.09 0 .19-.02.28-.05.29-.11.47-.39.47-.7V8.62c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.85L7.8 8.11a.754.754 0 0 0-.83-.18Z" /></symbol>'}),Tl=(a().add(Rl),Rl),Il=new(o())({id:"x509_check",use:"x509_check-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="x509_check"><path d="M12.79 9.42c-.02.46-.07.85-.16 1.18h1.23c.04.22.13.45.45.45.5 0 .53-.88.54-1.49-.21.27-.56.36-.91.36-.48 0-.88-.17-1.15-.5Zm1.45 2.64c-1.2 0-1.59-.65-1.71-1.15-.31.81-.88 1.15-1.71 1.15-.77 0-1.33-.31-1.65-1.06-.27.67-.86 1.06-1.82 1.06-1.29 0-1.82-.71-1.87-1.67h1.38c.03.41.16.66.51.66.42 0 .53-.34.53-.97 0-.63-.13-.93-.55-.93-.32 0-.46.19-.54.51l-1.25-.13c.1-.66.29-2.5.35-3.22h3.27L9 7.44H7.06c-.02.25-.08.74-.1.95.18-.16.47-.27.9-.27.45 0 .79.15 1.04.4.13-1.72.89-2.31 1.96-2.31.77 0 1.37.3 1.69 1.12.26-.7.88-1.12 1.77-1.12.72 0 1.22.24 1.54.71C14.96 4.07 12.3 2 9.16 2 5.83 2 3.04 4.33 2.33 7.45h.81c.23.56.39 1.09.47 1.35h.03c.11-.33.3-.88.5-1.35h1.51L4.49 9.57l1.16 2.4H4.08c-.24-.63-.39-1.13-.48-1.4h-.03c-.08.25-.3.92-.49 1.4h-.27A7.013 7.013 0 0 0 9.16 16a7 7 0 0 0 6.56-4.56c-.32.41-.79.62-1.48.62ZM2.16 9c0 .5.05.98.15 1.45l.36-.72-.5-1.04c-.01.1-.01.21-.01.31Zm12.18-.11c.31 0 .5-.2.5-.77 0-.59-.11-.91-.51-.91-.34 0-.5.27-.5.84 0 .59.18.84.51.84Zm-3.85.6-.63-.63-.49.49 1.12 1.12 1.68-1.68-.49-.49-1.19 1.19Z" /></symbol>'}),Bl=(a().add(Il),Il),Dl=new(o())({id:"xen",use:"xen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="xen"><path d="M10.22 6.47H7.17L5.4 7.82 4.37 6.47H1.92l1.94 2.54L0 11.97h3.06l1.93-1.48 1.13 1.48h2.45L6.53 9.3l3.69-2.83Zm-5.24 5.94a3.3 3.3 0 0 1-1.65-.43l-.21.16H1.58c.85.91 2.05 1.49 3.4 1.49s2.55-.57 3.4-1.49H6.29c-.4.17-.84.27-1.31.27Zm5.72-4.84c-1.78 0-2.57.97-2.57 1.85 0 .73.52 1.42 2.06 1.42 1.42 0 2.1-.51 2.36-1.05h-1.56c-.12.16-.29.26-.66.26-.43 0-.61-.2-.61-.48 0-.03 0-.07.01-.1h2.96c.07-.18.1-.34.1-.56-.01-.74-.63-1.34-2.09-1.34Zm.56 1.25H9.91c.09-.3.35-.5.77-.5.39 0 .59.14.59.4.01.02 0 .06-.01.1Zm-9.42 1.51a3.406 3.406 0 0 1 .32-3.25l-.6-.79H2.9a3.419 3.419 0 0 1 4.17.02l.03-.02h1.63a4.634 4.634 0 0 0-3.76-1.92C2.42 4.37.35 6.44.35 9c0 .75.18 1.47.5 2.1l.99-.77Zm6.49-1.97c.24-.31.59-.58 1.07-.76-.02-.08-.05-.15-.08-.23l-1.03.79c.01.08.03.14.04.2Zm8.44-.79c-.71 0-1.11.22-1.36.42.02-.09.05-.28.06-.34h-1.58c-.05.21-.11.45-.22.85l-.61 2.25h1.62l.43-1.6c.13-.5.4-.72.81-.72.42 0 .46.22.38.52l-.49 1.8h1.62l.51-1.89c.23-.85-.24-1.29-1.17-1.29Zm-8.6 2.62c-.08.21-.18.41-.29.59l.78 1.02c.21-.28.4-.59.54-.91-.29-.08-.53-.2-.72-.36a1.26 1.26 0 0 1-.31-.34Z" /></symbol>'}),jl=(a().add(Dl),Dl),Ll=new(o())({id:"settings",use:"settings-usage",viewBox:"0 0 17 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 15" id="settings"><path d="M14.514 7.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v5.86c-1.29.34-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89Zm-.17 4.27c-.18.08-.38.12-.58.12-.2 0-.4-.04-.58-.12-.54-.23-.92-.76-.92-1.38a1.36 1.36 0 0 1 .08-.45c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36-.02.62-.4 1.15-.94 1.38ZM4.014 5.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v3.86c-1.29.33-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89Zm.7 3.25-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52-.22.13-.48.21-.75.21s-.53-.08-.75-.21c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.03-.12-.05-.24-.05-.36s.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.02.25-.05.36Zm4.52-7.26a.739.739 0 0 0-.72-.6c-.36 0-.65.26-.72.6a2.982 2.982 0 0 0-2.28 2.9c0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.41-.97-2.58-2.28-2.9Zm.73 3.26-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52a1.42 1.42 0 0 1-1.49 0c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.02-.11-.04-.23-.04-.36 0-.13.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.04.25-.07.36Zm-7.45 7.05v2.34c0 .41.34.75.75.75s.75-.34.75-.75v-2.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09Zm5.25-4v6.34c0 .41.34.75.75.75s.75-.34.75-.75V7.71c-.24.05-.49.09-.75.09s-.51-.04-.75-.09Zm5.25 6v.34c0 .41.34.75.75.75s.75-.34.75-.75v-.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09Z" /></symbol>'}),Zl=(a().add(Ll),Ll),Nl=new(o())({id:"settings_h",use:"settings_h-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="settings_h"><path d="M.75 4.5h5.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3C8.11.75 6.94 1.71 6.61 3H.75C.34 3 0 3.34 0 3.75s.34.75.75.75ZM8.21 3c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.15-.92 1.38-.18.08-.38.12-.58.12a1.361 1.361 0 0 1-.45-.08c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53C8.08 4.26 8 4 8 3.73s.08-.51.21-.73Zm5.04 1.5c.41 0 .75-.34.75-.75S13.66 3 13.25 3h-.34c.05.24.09.49.09.75s-.04.51-.09.75h.34ZM4.5 7.25c-1.39 0-2.56.96-2.89 2.25H.75c-.41 0-.75.34-.75.75s.34.75.75.75h.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3Zm.58 4.38c-.18.08-.38.12-.58.12-.13 0-.25-.02-.36-.05l-.09-.03c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53-.13-.22-.21-.48-.21-.75s.08-.53.21-.75c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.17-.92 1.4Zm8.17-2.13H7.91c.05.24.09.49.09.75s-.04.51-.09.75h5.34c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z" /></symbol>'}),Fl=(a().add(Nl),Nl),Hl=new(o())({id:"sign_in",use:"sign_in-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sign_in"><g clip-path="url(#sign_in_a)"><path d="M6.76 4.231c.38-.308.994-.308 1.374 0L14 9.001l-5.867 4.768c-.19.154-.438.231-.687.231-.248 0-.497-.078-.686-.232-.38-.308-.38-.808 0-1.116l3.523-2.863H.97C.435 9.79 0 9.436 0 9c0-.435.435-.788.971-.788h9.312L6.76 5.348c-.38-.308-.38-.808 0-1.117Z" /><path d="M2.6 3.88a.759.759 0 0 1-.07-1.12A8.944 8.944 0 0 1 9 0c4.97 0 8.99 4.03 8.99 9S13.97 18 9 18c-2.54 0-4.84-1.06-6.47-2.76a.759.759 0 0 1 .07-1.12c.3-.23.73-.22.99.05 1.69 1.78 4.25 2.73 7 2.16 2.89-.59 5.2-2.93 5.77-5.82.1-.51.14-1.02.14-1.51s-.04-1-.14-1.51c-.57-2.89-2.89-5.22-5.77-5.82-2.74-.57-5.3.38-7 2.16-.26.28-.7.29-.99.05Z" /></g><defs><clipPath id="sign_in_a"><path d="M0 18V0h18v18z" /></clipPath></defs></symbol>'}),Vl=(a().add(Hl),Hl),zl=new(o())({id:"sorting_vertical",use:"sorting_vertical-usage",viewBox:"0 0 19 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" id="sorting_vertical"><path d="M16.736 0H2.908C1.822 0 .933.9.933 2v14c0 1.1.889 2 1.975 2h13.828c1.086 0 1.975-.9 1.975-2V2c0-1.1-.889-2-1.975-2ZM6.859 14H4.883V7H6.86v7Zm3.95 0H8.835V4h1.976v10Zm3.951 0h-1.975v-4h1.975v4Z" /></symbol>'}),Ul=(a().add(zl),zl),Gl=new(o())({id:"sorting_asc",use:"sorting_asc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_asc"><path d="M.8 5.2c.4.4 1 .4 1.4 0l.8-.8V8c0 .6.4 1 1 1s1-.4 1-1V4.4l.8.8c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L4 .6.8 3.8c-.4.4-.4 1 0 1.4Z" /></symbol>'}),Wl=(a().add(Gl),Gl),$l=n(30871),ql=new(o())({id:"sorting_desc",use:"sorting_desc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_desc"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4Z" /></symbol>'}),Yl=(a().add(ql),ql),Xl=n(35211),Kl=new(o())({id:"sort_indicator",use:"sort_indicator-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_indicator"><path d="M6 2.44 3.47 4.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.72-.72V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l.72.72c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L6 2.44ZM12 15.75l2.53-2.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.72.72V3.19c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-.72-.72a.742.742 0 0 0-.53-.22c-.19 0-.38.07-.53.22-.29.29-.29.77 0 1.06L12 15.75Z" /></symbol>'}),Jl=(a().add(Kl),Kl),Ql=new(o())({id:"space",use:"space-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="space"><path fill-rule="evenodd" d="M11.985 2a9.92 9.92 0 0 1 7.06 2.925 9.92 9.92 0 0 1 2.925 7.06 9.92 9.92 0 0 1-2.924 7.06 9.92 9.92 0 0 1-7.06 2.925 9.92 9.92 0 0 1-7.061-2.924A9.92 9.92 0 0 1 2 11.986c0-1.346.263-2.652.782-3.881a.58.58 0 0 1 1.068.45 8.771 8.771 0 0 0-.691 3.43c0 4.867 3.96 8.826 8.826 8.826 4.867 0 8.826-3.959 8.826-8.826 0-4.867-3.959-8.826-8.826-8.826a8.788 8.788 0 0 0-3.179.59.58.58 0 0 1-.417-1.082A9.942 9.942 0 0 1 11.985 2Zm.195 13.963c.895 0 1.623.727 1.623 1.622 0 .894-.728 1.622-1.623 1.622a1.624 1.624 0 0 1-1.622-1.622c0-.895.728-1.622 1.622-1.622Zm0 1.158a.464.464 0 1 0 .002.928.464.464 0 0 0-.002-.928Zm-.195-11.315a6.186 6.186 0 0 1 6.18 6.18 6.176 6.176 0 0 1-2.725 5.122.58.58 0 0 1-.648-.96 5.02 5.02 0 1 0-5.332.177.58.58 0 0 1-.584 1 6.175 6.175 0 0 1-3.07-5.34 6.186 6.186 0 0 1 6.18-6.179Zm0 2.698c1.92 0 3.481 1.562 3.481 3.481 0 1.92-1.561 3.481-3.48 3.481a3.485 3.485 0 0 1-3.482-3.48c0-1.92 1.562-3.482 3.481-3.482Zm0 1.16a2.325 2.325 0 0 0-2.322 2.321 2.325 2.325 0 0 0 2.322 2.322 2.325 2.325 0 0 0 2.322-2.322 2.325 2.325 0 0 0-2.322-2.322ZM5.228 2.946A2.284 2.284 0 0 1 7.51 5.228 2.284 2.284 0 0 1 5.23 7.51a2.284 2.284 0 0 1-2.282-2.28 2.284 2.284 0 0 1 2.281-2.282Zm0 1.16c-.618 0-1.122.503-1.122 1.121 0 .619.504 1.122 1.122 1.122.62 0 1.122-.503 1.122-1.122 0-.618-.503-1.122-1.122-1.122Z" clip-rule="evenodd" /></symbol>'}),ec=(a().add(Ql),Ql),tc=new(o())({id:"space_new",use:"space_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="space_new"><path d="M2 13.77V11H0v2.77C0 17.2 2.79 20 6.23 20H9v-2H6.23C3.9 18 2 16.1 2 13.77Zm0-7.54C2 3.9 3.9 2 6.23 2H9V0H6.23A6.23 6.23 0 0 0 0 6.23V9h2V6.23ZM12 10c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2Zm6 3.77C18 16.1 16.1 18 13.77 18H11v2h2.77C17.2 20 20 17.21 20 13.77V11h-2v2.77ZM13.77 0H11v2h2.77C16.1 2 18 3.9 18 6.23V9h2V6.23A6.23 6.23 0 0 0 13.77 0Z" /></symbol>'}),nc=(a().add(tc),tc),rc=new(o())({id:"spaces_v2",use:"spaces_v2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="spaces_v2"><path d="M22.27 4.22c-.17-.85-.65-1.49-1.38-1.85-.89-.45-2.11-.43-3.58.02.82.46 1.58 1.02 2.25 1.66.18.02.32.05.43.11.12.06.25.16.31.47.08.4.01.94-.19 1.56A9.926 9.926 0 0 0 12 2C6.49 2 2 6.49 2 12c0 1.25.25 2.43.67 3.54-.85 1.7-1.17 3.13-.94 4.25.2.96.8 1.67 1.7 1.99.36.13.76.19 1.2.19 2.25 0 5.54-1.59 8.98-4.4 4.73-3.87 9.37-9.86 8.66-13.35ZM4.1 19.89c-.2-.07-.34-.18-.41-.51-.08-.39 0-.94.2-1.58.54.75 1.17 1.41 1.89 1.99-.72.19-1.3.23-1.68.1Zm3.91-.99C5.62 17.52 4 14.95 4 12c0-4.41 3.59-8 8-8 3.1 0 5.79 1.78 7.11 4.36-1.33 2.31-3.69 5.14-6.77 7.65-1.58 1.3-3.05 2.24-4.33 2.89Zm12.56-5.35c-.34.4-.69.78-1.06 1.16-1.04 2.89-3.69 5-6.87 5.26 0 0-.01 0-.01.01-1.07.6-2.15 1.18-3.32 1.65.85.24 1.75.37 2.67.37 5.51 0 10-4.49 10-10 0-.1-.01-.2-.01-.29-.42.65-.89 1.26-1.4 1.84Z" /></symbol>'}),oc=(a().add(rc),rc),ic=new(o())({id:"switch_off",use:"switch_off-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="switch_off"><path d="M11.58 2.712a.75.75 0 0 0-.981 1.136A5.479 5.479 0 0 1 12.499 8c0 3.033-2.468 5.5-5.5 5.5a5.506 5.506 0 0 1-5.5-5.5 5.48 5.48 0 0 1 1.9-4.152.75.75 0 1 0-.981-1.136A6.985 6.985 0 0 0 0 8c0 3.86 3.141 7 7 7s7-3.14 7-7a6.98 6.98 0 0 0-2.42-5.288ZM7 8.75A.75.75 0 0 0 7.75 8V1a.75.75 0 0 0-1.5 0v7c0 .414.336.75.75.75Z" /></symbol>'}),ac=(a().add(ic),ic),sc=new(o())({id:"system_overview",use:"system_overview-usage",viewBox:"0 0 32 32",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="system_overview"><path d="M16 14c.51 0 .98.2 1.33.52l2.68-2.98A5.99 5.99 0 0 0 16 10.01c-3.29 0-6 2.71-6 6s2.71 6 6 6 6-2.71 6-6a6 6 0 0 0-.48-2.36l-3.68 1.57A2.006 2.006 0 0 1 16 18.01c-1.1 0-2-.9-2-2S14.9 14 16 14ZM3.47 16C4.84 10.25 10.06 6.11 16 6.11c2.41 0 4.69.69 6.65 1.89H21.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5H28V4.5c0-.83-.67-1.5-1.5-1.5S25 3.67 25 4.5v1.19c-2.6-1.76-5.7-2.8-9-2.8C8.43 2.89 1.8 8.26.24 15.67L.17 16l.07.33c.19.92.47 1.81.81 2.67H4.6c-.5-.94-.88-1.94-1.13-3Zm28.29-.33c-.19-.92-.47-1.81-.81-2.67H27.4c.5.94.88 1.94 1.13 3-1.37 5.75-6.59 9.89-12.53 9.89-2.41 0-4.69-.69-6.65-1.89h1.15c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H4v6.5c0 .83.67 1.5 1.5 1.5S7 28.33 7 27.5v-1.19c2.6 1.76 5.7 2.8 9 2.8 7.57 0 14.2-5.37 15.76-12.78l.07-.33-.07-.33Z" /></symbol>'}),uc=(a().add(sc),sc),lc=new(o())({id:"system_overview_press",use:"system_overview_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="system_overview_press"><path d="M3.07 12H7.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.12 0 2.03-.89 2.07-2H1.01c.04 1.11.94 2 2.06 2Zm9.86-10H3.07C1.93 2 1 2.93 1 4.07V9h14V4.07C15 2.93 14.07 2 12.93 2Z" /></symbol>'}),cc=(a().add(lc),lc),fc=new(o())({id:"text_add",use:"text_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="text_add"><path d="M12 8.5c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5Zm2 4.25h-1.25V14h-1.5v-1.25H10v-1.5h1.25V10h1.5v1.25H14v1.5ZM12.5 1.54V5H14V1.54C14 .69 13.31 0 12.46 0H1.54C.69 0 0 .69 0 1.54V5h1.5V1.54c0-.02.02-.04.04-.04h4.71v11H3V14h4.75V1.5h4.71c.02 0 .04.02.04.04Z" /></symbol>'}),dc=(a().add(fc),fc),pc=new(o())({id:"thumb_down",use:"thumb_down-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_down"><path d="M20.4 4h-3l-2-2H5.6L2 5.6v8.8L4.6 17H9v3.4l1.6 1.6h3.8l1.6-1.6v-3l1.4-1.4H22V5.6L20.4 4ZM16 14.6l-2 2v3l-.4.4h-2.2l-.4-.4V15H5.4L4 13.6V12h5v-1H4V8h5V7H4v-.6L6.4 4h8.2L16 5.4v9.2Zm4-.6h-2V6h1.6l.4.4V14Z" /></symbol>'}),hc=(a().add(pc),pc),gc=new(o())({id:"thumb_up",use:"thumb_up-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_up"><path d="M19.4 7H15V3.6L13.4 2H9.6L8 3.6v3L6.6 8H2v10.4L3.6 20h3l2 2h9.8l3.6-3.6V9.6L19.4 7ZM6 18H4.4l-.4-.4V10h2v8Zm14-6h-5v1h5v3h-5v1h5v.6L17.6 20H9.4L8 18.6V9.4l2-2v-3l.4-.4h2.2l.4.4V9h5.6l1.4 1.4V12Z" /></symbol>'}),vc=(a().add(gc),gc),mc=new(o())({id:"tiny_buttons",use:"tiny_buttons-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="tiny_buttons"><path d="M14.525 18.5h1.65V17h-1.65v1.5Zm.225-15H3.5v11.25h3.75v1.425h1.5V14.75h6v-6h1.425v-1.5H14.75V3.5Zm-1.5 9.75H5V5h8.25v8.25Zm-1.2 5.25h1.65V17h-1.65v1.5Zm-2.475 0h1.65V17h-1.65v1.5Zm-2.325 0h1.5V17h-1.5v1.5ZM17 7.25v1.5h1.5v-1.5H17Zm0 3.975h1.5v-1.65H17v1.65Zm0 7.275h1.5V17H17v1.5Zm0-2.325h1.5v-1.65H17v1.65Zm0-2.475h1.5v-1.65H17v1.65ZM4 1h14v-2H4v2Zm17 3v14h2V4h-2Zm-3 17H4v2h14v-2ZM1 18V4h-2v14h2Zm3 3a3 3 0 0 1-3-3h-2a5 5 0 0 0 5 5v-2Zm17-3a3 3 0 0 1-3 3v2a5 5 0 0 0 5-5h-2ZM18 1a3 3 0 0 1 3 3h2a5 5 0 0 0-5-5v2ZM4-1a5 5 0 0 0-5 5h2a3 3 0 0 1 3-3v-2Z" /></symbol>'}),yc=(a().add(mc),mc),bc=new(o())({id:"training",use:"training-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="training"><path fill="#8F9EAA" fill-rule="evenodd" d="M1.3 6.661 3.507 7.8v2.976c.016.276.1.544.243.777.142.23.337.42.568.552.87.6 2.314.896 3.681.896s2.81-.296 3.68-.896a1.6 1.6 0 0 0 .569-.552c.143-.233.227-.5.243-.777V7.796l.337-.183v3.35l.01.031a.589.589 0 0 0 .208.294.554.554 0 0 0 .662 0 .59.59 0 0 0 .208-.294l.01-.03V7.058l.772-.397h.002a.558.558 0 0 0 .225-.222.588.588 0 0 0-.031-.623.552.552 0 0 0-.246-.195l-.033-.013h-.037l-6.4-2.57a.508.508 0 0 0-.395 0L1.35 5.623a.552.552 0 0 0-.246.196.584.584 0 0 0 .194.843Zm10.07 1.701-.013 1.246v1.17c0 .048-.034.146-.181.279-.141.127-.36.262-.658.385-.592.245-1.464.43-2.556.43s-1.963-.19-2.555-.438a2.324 2.324 0 0 1-.658-.39c-.147-.134-.182-.233-.182-.281V8.357l1.454.751 1.101.573.577.298a.514.514 0 0 0 .495.001l.605-.298 1.119-.57 1.451-.75Zm-3.917.234L2.866 6.22l5.096-2.045 5.096 2.042-4.586 2.378-.51.245-.51-.245Z" clip-rule="evenodd" /></symbol>'}),wc=(a().add(bc),bc),xc=new(o())({id:"trashcan",use:"trashcan-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="trashcan"><path d="M4.75 5.188v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.563v-6.75a.557.557 0 0 0-.562-.562.557.557 0 0 0-.563.563Zm3.375 0v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.563v-6.75a.557.557 0 0 0-.562-.562.557.557 0 0 0-.563.563Zm4.669.73-.259.26.09-1.474v-.068H11.5l-.495 7.92a1.147 1.147 0 0 1-1.147 1.08H4.143a1.147 1.147 0 0 1-1.148-1.08L2.568 5.75 2.433 3.5h10.755a.557.557 0 0 0 .562-.563.557.557 0 0 0-.563-.562H9.25A2.257 2.257 0 0 0 7 .125a2.257 2.257 0 0 0-2.25 2.25H.813a.557.557 0 0 0-.563.563c0 .314.248.562.563.562h.495l.067 1.192.09 1.474-.259-.259a.557.557 0 0 0-.798 0 .557.557 0 0 0 0 .8L1.533 7.83c.01.011.022.011.033.023l.293 4.759A2.286 2.286 0 0 0 4.13 14.75h5.704a2.27 2.27 0 0 0 2.272-2.137l.293-4.748c.011-.011.022-.011.034-.022l1.125-1.125a.557.557 0 0 0 0-.8c-.225-.224-.551-.224-.765 0ZM7 1.25c.619 0 1.125.506 1.125 1.125h-2.25c0-.619.506-1.125 1.125-1.125Z" /></symbol>'}),_c=(a().add(xc),xc),Sc=new(o())({id:"triangle",use:"triangle-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="triangle"><path d="M24 0 12 16 0 0z" /></symbol>'}),Oc=(a().add(Sc),Sc),Cc=new(o())({id:"triangle_down",use:"triangle_down-usage",viewBox:"0 0 10 5",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 5" id="triangle_down"><path d="m0 0 5 5 5-5H0Z" /></symbol>'}),Ec=(a().add(Cc),Cc),Ac=new(o())({id:"unknownError",use:"unknownError-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="unknownError"><path d="M11.17 2H4.83C2.26 2 .68 4.8 2 7l3.35 5.59c.6 1 1.62 1.5 2.65 1.5 1.03 0 2.05-.5 2.65-1.5L14 7c1.32-2.2-.26-5-2.83-5Zm1.55 4.23-3.35 5.59c-.42.7-1.09.77-1.36.77s-.94-.07-1.36-.77L3.28 6.23c-.49-.81-.18-1.54-.02-1.81s.62-.92 1.57-.92h6.34c.95 0 1.41.64 1.57.91.16.27.46 1-.02 1.82ZM8 8.35c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75Zm-.18-3.31c-.43.1-.71.53-.61.96l.36 1.6a.434.434 0 0 0 .85 0L8.78 6c.02-.11.03-.24 0-.35a.79.79 0 0 0-.96-.61Z" /></symbol>'}),Mc=(a().add(Ac),Ac),kc=new(o())({id:"universe",use:"universe-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="universe"><path d="M9 13.35c.75 0 1.35-.6 1.35-1.35 0-.75-.6-1.35-1.35-1.35-.75 0-1.35.6-1.35 1.35 0 .75.6 1.35 1.35 1.35Zm2.23-2.12c.35.35.93.26 1.19-.16.37-.6.58-1.31.58-2.07 0-2.21-1.79-3.97-4-3.98a3.982 3.982 0 0 0-3.42 6.05c.26.43.84.51 1.19.16.25-.25.28-.63.1-.93-.23-.37-.37-.82-.37-1.3 0-1.38 1.12-2.49 2.5-2.49S11.5 7.63 11.5 9c0 .48-.14.93-.37 1.31-.18.29-.15.67.1.92ZM5.71 5.71c.53-.53.53-1.38 0-1.91s-1.38-.53-1.91 0-.53 1.38 0 1.91 1.38.53 1.91 0ZM9 10c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1Zm.42-7.99c-.81-.05-1.58.04-2.31.25-.43.12-.66.59-.49 1.01l.01.01c.14.34.51.53.86.43.89-.26 1.87-.3 2.88-.05 1.98.48 3.57 2.11 4.01 4.1a5.514 5.514 0 0 1-6.6 6.6c-1.99-.44-3.62-2.02-4.1-4-.25-1.01-.21-2 .05-2.89.1-.35-.1-.72-.43-.86 0 0-.01 0-.01-.01a.759.759 0 0 0-1.01.49c-.2.73-.3 1.5-.25 2.3.2 3.59 3.24 6.52 6.84 6.6 3.98.08 7.22-3.15 7.15-7.12-.08-3.59-3.01-6.65-6.6-6.86Z" /></symbol>'}),Pc=(a().add(kc),kc),Rc=new(o())({id:"unreachable",use:"unreachable-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="unreachable"><path d="M10 8.5H8V10H5.62l-1.38 1.5h.96v2h1.62v-2H9.5V10h2V3.62L10 5.24V8.5ZM11.5.45a.746.746 0 0 0-1.06.05l-.46.5H.5v9h1.3L.44 11.5c-.28.31-.26.78.05 1.06.14.13.32.2.5.2.2 0 .41-.08.55-.25l10-11c.29-.31.27-.79-.04-1.06ZM3.17 8.5H2v-6h1.25V4h1.5V2.5h3.87l-5.45 6Z" /></symbol>'}),Tc=(a().add(Rc),Rc),Ic=new(o())({id:"unreachableNode",use:"unreachableNode-usage",viewBox:"0 0 231 230",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 231 230" id="unreachableNode"><path fill="#EDF2F6" d="M115.5 226c61.304 0 111-49.696 111-111S176.804 4 115.5 4 4.5 53.696 4.5 115s49.696 111 111 111Z" /><path fill="#E2E6EC" d="M212.149 115a96.657 96.657 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432 96.653 96.653 0 0 1-60.974-64.43 96.65 96.65 0 0 1 17.25-87.015l3.303-4.037A96.649 96.649 0 0 1 212.149 115Z" /><mask id="unreachableNode_a" width="206" height="194" x="6" y="18" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#E2E6EC" d="M211.798 114.743a96.645 96.645 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432C68.697 200.905 26.108 203.209 15.5 192c-10.608-11.209.281-35.172-4-50-4.281-14.828-6-31.361-3-46.5 3.001-15.139-.614-35.927 9-48H40c13.017-14.675 33.037-22.027 52.086-26.708a96.648 96.648 0 0 1 119.712 93.951Z" /></mask><g mask="url(#unreachableNode_a)"><g clip-path="url(#unreachableNode_b)"><path fill="#45535C" d="M217.255 50H19.142a2.641 2.641 0 0 0-2.642 2.642v134.716A2.642 2.642 0 0 0 19.142 190h198.113a2.641 2.641 0 0 0 2.641-2.642V52.642A2.641 2.641 0 0 0 217.255 50Z" /><path fill="#546C82" d="M19.142 50h198.113a2.644 2.644 0 0 1 2.641 2.642v3.962H16.5v-3.962A2.641 2.641 0 0 1 19.142 50Z" /><path fill="#0F0" d="M21.123 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963Z" opacity=".5" /><path fill="#FF0" d="M27.727 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963Z" opacity=".5" /><path fill="red" d="M34.33 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963Z" opacity=".5" /><path stroke="#fff" stroke-miterlimit="10" stroke-width="2" d="m34.33 88.962 6.604-6.603-6.604-6.604M44.236 88.302h11.887" /></g><path fill="#7698B0" d="M145.374 81.989a2.328 2.328 0 0 0-4.656 0v19.552a2.327 2.327 0 0 0 4.656 0V81.989Z" /><path fill="#6D8CA3" d="M145.373 83.386h7.821a2.421 2.421 0 0 1 2.421 2.42v11.918a2.42 2.42 0 0 1-2.421 2.421h-7.821v-16.76Z" /><path fill="#658196" d="M155.615 88.972h2.979a2.607 2.607 0 0 1 2.607 2.607v.372a2.61 2.61 0 0 1-2.607 2.607h-2.979v-5.586Z" /><path fill="#7698B0" d="M219.897 143.904v1.862h-36.35a9.31 9.31 0 0 1-9.311-9.31v-36.312c0-4.096-2.7-7.448-6.052-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.19 7.914 9.31v36.312a7.447 7.447 0 0 0 7.449 7.448h36.35Z" /><path fill="#80A4BF" d="M124.89 85.247h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM124.89 94.558h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724Z" /><path fill="#6D8CA3" d="M127.777 81.523h12.941v20.484h-12.941a3.818 3.818 0 0 1-3.818-3.818V85.341a3.815 3.815 0 0 1 2.357-3.527c.463-.192.959-.29 1.461-.29Z" /><path fill="#19B357" d="M106.269 107.127a2.327 2.327 0 0 0-4.655 0v19.553a2.327 2.327 0 0 0 4.655 0v-19.553Z" /><path fill="#00AB44" d="M106.269 108.523h7.821a2.419 2.419 0 0 1 2.42 2.421v11.918a2.419 2.419 0 0 1-2.42 2.42h-7.821v-16.759Z" /><path fill="#00993D" d="M116.51 114.11h2.98a2.607 2.607 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.98v-5.587Z" /><path fill="#00AB44" d="M219.896 132.732c-.016.624 0 1.136 0 1.862h-75.454a9.312 9.312 0 0 1-9.311-9.311c0-4.096-2.7-7.448-6.051-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.189 7.914 9.31a7.447 7.447 0 0 0 7.448 7.449h75.454Z" /><path fill="#00CB51" d="M85.786 110.386h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724ZM85.786 119.696h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724Z" /><path fill="#00AB44" d="M88.672 106.662h12.942v20.483H88.672a3.817 3.817 0 0 1-3.817-3.817v-12.849a3.818 3.818 0 0 1 3.817-3.817Z" /><path fill="#7698B0" d="M124.89 149.025a2.328 2.328 0 1 0-4.655 0v19.552a2.328 2.328 0 0 0 4.655 0v-19.552Z" /><path fill="#6D8CA3" d="M124.89 150.421h7.821a2.421 2.421 0 0 1 2.421 2.421v11.824a2.421 2.421 0 0 1-2.421 2.421h-7.821v-16.666Z" /><path fill="#658196" d="M135.131 156.008h2.98a2.606 2.606 0 0 1 2.607 2.607v.372a2.608 2.608 0 0 1-2.607 2.607h-2.98v-5.586Z" /><path fill="#7698B0" d="M219.896 122.49h-56.833a7.447 7.447 0 0 0-7.448 7.448v20.484c0 5.12-3.538 9.31-7.914 9.31h-6.983v-1.862h6.983c3.352 0 6.052-3.352 6.052-7.448v-20.484a9.31 9.31 0 0 1 9.31-9.31h56.833v1.862Z" /><path fill="#80A4BF" d="M104.407 152.283h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM104.407 161.594h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724Z" /><path fill="#6D8CA3" d="M107.293 148.559h12.942v20.483h-12.942a3.817 3.817 0 0 1-3.817-3.818v-12.848a3.815 3.815 0 0 1 3.817-3.817Z" /></g><defs><clipPath id="unreachableNode_b"><path fill="#fff" d="M16.5 50h203.396v140H16.5z" /></clipPath></defs></symbol>'}),Bc=(a().add(Ic),Ic),Dc=new(o())({id:"update",use:"update-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update"><path d="M12.29 7.29 9 10.59 7.71 9.3a.996.996 0 1 0-1.41 1.41l2.71 2.71 4.71-4.71a.996.996 0 0 0 0-1.41 1.02 1.02 0 0 0-1.43-.01ZM2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1Zm17.95-1h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1Z" /></symbol>'}),jc=(a().add(Dc),Dc),Lc=new(o())({id:"update_pending",use:"update_pending-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update_pending"><path d="M2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1Zm9.5-3.21a1.54 1.54 0 0 0-1.86-1.14A1.53 1.53 0 0 0 8.5 7.5l.59 2.5a.93.93 0 0 0 1.81 0l.59-2.5c.06-.23.07-.47.01-.71ZM10 11.24c-.7 0-1.26.56-1.26 1.26s.56 1.26 1.26 1.26 1.26-.56 1.26-1.26-.56-1.26-1.26-1.26ZM19.95 9h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1Z" /></symbol>'}),Zc=(a().add(Lc),Lc),Nc=new(o())({id:"upload",use:"upload-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="upload"><path d="M6.21 7.21 9 4.41V14c0 .55.45 1 1 1s1-.45 1-1V4.41l2.79 2.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L10 .59l-5.21 5.2a.996.996 0 0 0 0 1.41c.39.39 1.03.4 1.42.01ZM18 14v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 17.1V14H0v3.1C0 19.25 1.75 21 3.9 21h12.2c2.15 0 3.9-1.75 3.9-3.9V14h-2Z" /></symbol>'}),Fc=(a().add(Nc),Nc),Hc=new(o())({id:"user",use:"user-usage",viewBox:"0 0 16 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 18" id="user"><path d="M13.72 11.59c-.02.02-.04.05-.06.07-.35.35-.74.66-1.14.94 1.18.71 1.98 2 1.98 3.48V18H16v-1.92c0-1.85-.9-3.48-2.28-4.49ZM8 0C4.69 0 2 2.69 2 6c0 1.89.87 3.57 2.24 4.67-2.43.6-4.24 2.79-4.24 5.41V18h1.5v-1.92C1.5 13.83 3.33 12 5.58 12H8c3.31 0 6-2.69 6-6s-2.69-6-6-6Zm0 10.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 1.5 8 1.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5Z" /></symbol>'}),Vc=(a().add(Hc),Hc),zc=new(o())({id:"user_press",use:"user_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="user_press"><path d="M10 7.2c.6-.5 1-1.3 1-2.2 0-1.7-1.3-3-3-3S5 3.3 5 5c0 .9.4 1.7 1 2.2-1.7.5-3 2.1-3 4V14h10v-2.8c0-1.9-1.3-3.5-3-4Z" /></symbol>'}),Uc=(a().add(zc),zc),Gc=new(o())({id:"users",use:"users-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="users"><path d="M11.71 6.92C12.5 6.19 13 5.16 13 4c0-2.21-1.79-4-4-4-1.11 0-2.1.46-2.82 1.2C5.81 1.08 5.42 1 5 1 2.79 1 1 2.79 1 5c0 1.16.5 2.19 1.29 2.92A4.059 4.059 0 0 0 0 11.56V14h1.5v-2.44C1.5 10.15 2.65 9 4.06 9h1.88c1.41 0 2.56 1.15 2.56 2.56V14H10v-2.44c0-1.6-.94-2.98-2.29-3.64C8.5 7.19 9 6.16 9 5c0-1.22-.56-2.3-1.42-3.03.41-.29.89-.47 1.42-.47a2.494 2.494 0 0 1 .8 4.86c-.09.32-.23.63-.38.92l.24.72h.27c1.41 0 2.56 1.15 2.56 2.56V14h1.5v-3.44c.01-1.6-.93-2.98-2.28-3.64ZM5 7.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5Z" /></symbol>'}),Wc=(a().add(Gc),Gc),$c=new(o())({id:"view_list",use:"view_list-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="view_list"><path d="M10 17h6c1.1 0 2-.9 2-2h-8v2Zm0-8h6c1.1 0 2-.9 2-2h-8v2Zm8.48-7H5.52C3.58 2 2 3.58 2 5.52v12.97c0 1.94 1.58 3.52 3.52 3.52h12.97c1.94 0 3.52-1.58 3.52-3.52V5.52A3.54 3.54 0 0 0 18.48 2ZM6 20h-.48C4.68 20 4 19.32 4 18.48V5.52C4 4.68 4.68 4 5.52 4H6v16Zm14-1.52c0 .84-.68 1.52-1.52 1.52H8V4h10.48c.84 0 1.52.68 1.52 1.52v12.96ZM10 13h6c1.1 0 2-.9 2-2h-8v2Z" /></symbol>'}),qc=(a().add($c),$c),Yc=new(o())({id:"single_node_view",use:"single_node_view-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view"><path d="m7.22 2.75-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58Zm2.53-.2V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05ZM4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05Zm-1.06 9.12-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06ZM12.75 1.9l-1.39-.57-.59 1.43c.49.14.95.33 1.39.57l.59-1.43Zm1.34 3.07 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06Zm-1.06 9.12 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06ZM5 8.5H3.5V10H5V8.5Zm10.5-3h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5Zm0 5.5h-13V7h13v4Zm-7.25 4.45V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05Zm2.53-.2.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57Zm-5.53.85 1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57l-.59 1.43Z" /></symbol>'}),Xc=(a().add(Yc),Yc),Kc=new(o())({id:"single_node_view_press",use:"single_node_view_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view_press"><path d="M9.75 2.55V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05Zm-2.53.2-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58Zm5.53-.85-1.39-.57-.59 1.43c.49.14.95.33 1.39.57l.59-1.43ZM4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05Zm9.12 1.06 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06ZM5.25 16.1l1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57l-.59 1.43Zm7.78-2.01 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06ZM15.5 5.5h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5ZM5 10H3.5V8.5H5V10Zm-1.09 3.03-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06Zm6.87 2.22.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57Zm-2.53.2V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05Z" /></symbol>'}),Jc=(a().add(Kc),Kc),Qc=new(o())({id:"virtualization",use:"virtualization-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="virtualization"><path d="M11.69 3H6.31C5.59 3 5 3.59 5 4.31V5h-.69C3.59 5 3 5.59 3 6.31v5.38c0 .72.59 1.31 1.31 1.31h5.38c.72 0 1.31-.59 1.31-1.31V11h.69c.72 0 1.31-.59 1.31-1.31V4.31C13 3.59 12.41 3 11.69 3ZM10 11.69c0 .17-.14.31-.31.31H4.31c-.17 0-.31-.14-.31-.31V6.31c0-.17.14-.31.31-.31H5v3.69c0 .72.59 1.31 1.31 1.31H10v.69ZM10 10H6.31C6.14 10 6 9.86 6 9.69V6h3.69c.17 0 .31.14.31.31V10Zm2-.31c0 .17-.14.31-.31.31H11V6.31C11 5.59 10.41 5 9.69 5H6v-.69c0-.17.14-.31.31-.31h5.38c.17 0 .31.14.31.31v5.38Z" /></symbol>'}),ef=(a().add(Qc),Qc),tf=new(o())({id:"warning",use:"warning-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.065C22.129 6.51 17.62 2 12.064 2Zm1.006 15.097h-2.013v-2.013h2.013v2.013Zm0-4.026h-2.013V7.032h2.013v6.039Z" clip-rule="evenodd" /><mask id="warning_a" width="21" height="21" x="2" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.065C22.129 6.51 17.62 2 12.064 2Zm1.006 15.097h-2.013v-2.013h2.013v2.013Zm0-4.026h-2.013V7.032h2.013v6.039Z" clip-rule="evenodd" /></mask></symbol>'}),nf=(a().add(tf),tf),rf=new(o())({id:"warning_triangle",use:"warning_triangle-usage",viewBox:"0 0 12 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 10" id="warning_triangle"><path d="M11.027 7.94 6.84.493a.887.887 0 0 0-.153-.2C6.68.287 6.68.28 6.674.28A.932.932 0 0 0 6 0a.953.953 0 0 0-.673.273C5.32.28 5.32.287 5.314.287c-.054.06-.107.12-.154.2L.974 7.94a1.23 1.23 0 0 0-.154.593c.014.394.227.767.567.967.173.1.373.16.593.16h8.04a1.158 1.158 0 0 0 1.16-1.127c.007-.193-.04-.4-.153-.593ZM6 7.667A.669.669 0 0 1 5.334 7c0-.367.3-.667.666-.667.367 0 .667.3.667.667 0 .367-.3.667-.667.667Zm.667-3.334-.32 1.334a.365.365 0 0 1-.433.266.372.372 0 0 1-.267-.266l-.313-1.334a.688.688 0 0 1 .506-.826.688.688 0 0 1 .827.826Z" /></symbol>'}),of=(a().add(rf),rf),af=n(45724),sf=new(o())({id:"weights_compare",use:"weights_compare-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="weights_compare"><path d="M2.111 11.778v-.89H.778v.89H2.11ZM13.222 10v-.889H11.89V10h1.333ZM.778 9.111V10H2.11v-.889H.778Zm12.444 2.667v-.89H11.89v.89h1.333Zm0-8.89V2H11.89v.889h1.333Zm-3.529-.47-.942.942 1.974 1.973H3.277L5.25 3.36l-.943-.942L2.11 4.612v-.834H.778v.889h1.279L.724 6l1.333 1.333H.777v.89h1.334v-.835l2.196 2.194.942-.942-1.973-1.973h7.448L8.75 8.64l.943.942 2.196-2.195v.835h1.333v-.889h-1.279L13.277 6l-1.334-1.333h1.28v-.89h-1.334v.835L9.693 2.418Zm3.53-1.307V.222h-1.334v.89h1.333Zm-12.445 0H2.11V.222H.778v.89ZM2.11 2.89V2H.778v.889H2.11Z" /></symbol>'}),uf=(a().add(sf),sf),lf=new(o())({id:"weights_drill_down",use:"weights_drill_down-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="weights_drill_down"><path d="M13.222 8.333V3.89H7.89v1.555H4.11v-.666h2V.333H.778v4.445h2v7.333h5.11v1.556h5.334V9.222H7.89v1.556H4.11v-4H7.89v1.555h5.333Zm-4-3.11h2.667V7H9.222V5.222Zm0 5.333h2.667v1.777H9.222v-1.777Zm-7.11-7.112V1.667h2.666v1.777H2.11Z" /></symbol>'}),cf=(a().add(lf),lf),ff=new(o())({id:"x",use:"x-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="x"><path d="m13.4 12 5.3-5.3c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4.2.2.4.3.7.3.3 0 .5-.1.7-.3l5.3-5.3 5.3 5.3c.2.2.5.3.7.3.2 0 .5-.1.7-.3.4-.4.4-1 0-1.4L13.4 12Z" /></symbol>'}),df=(a().add(ff),ff),pf=new(o())({id:"firewall_solid",use:"firewall_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="firewall_solid"><path d="M20 3c-3.71 0-7.52-1.88-7.55-1.89L12 .88l-.45.22C11.52 1.12 7.72 3 4 3H3v7.03c0 5.29 2.94 10.05 7.68 12.42l1.32.66 1-.5V3.51c1.39.55 3.62 1.27 6 1.44v5.07c0 4.3-2.27 8.19-5.97 10.3.12.72.64 1.31 1.32 1.54C18.48 19.35 21 14.91 21 10.01V3h-1Z" /></symbol>'}),hf=(a().add(pf),pf),gf=new(o())({id:"qualityOfService_solid",use:"qualityOfService_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="qualityOfService_solid"><path d="m22.28 8.88-1.99-1.67-.45-2.56c-.17-.96-1-1.65-1.97-1.65h-2.6l-1.99-1.67c-.37-.31-.83-.47-1.29-.47-.46 0-.91.16-1.29.47L8.72 3h-2.6c-.97 0-1.8.7-1.97 1.65L3.7 7.21 1.72 8.88c-.74.62-.93 1.69-.45 2.53l1.3 2.25-.45 2.56a2 2 0 0 0 1.29 2.23l2.44.89 1.3 2.25c.37.63 1.03 1 1.73 1 .23 0 .46-.04.68-.12l2.44-.89 2.44.89a1.994 1.994 0 0 0 2.41-.88l1.3-2.25 2.44-.89c.91-.33 1.45-1.27 1.29-2.23l-.45-2.56 1.3-2.25c.49-.84.3-1.91-.45-2.53Zm-5.57 1.83L11 16.41 7.29 12.7a.996.996 0 1 1 1.41-1.41l2.29 2.29 4.29-4.29a.996.996 0 0 1 1.41 0c.39.39.41 1.03.02 1.42Z" /></symbol>'}),vf=(a().add(gf),gf),mf=new(o())({id:"applications_solid",use:"applications_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="applications_solid"><path d="M15.87 16c-1.19 0-2.24-.55-2.95-1.39C14.15 14 15 12.75 15 11.3V5.71C15 3.67 13.34 2 11.29 2H5.71C3.66 2 2 3.66 2 5.71v5.59c0 2.04 1.66 3.71 3.71 3.71h.4c-.06.23-.11.47-.11.72v1.57c0 1.5 1.22 2.72 2.72 2.72h1.37a3.68 3.68 0 0 1-.09-.82V18H8.72c-.4 0-.72-.32-.72-.72v-1.57c0-.4.32-.72.72-.72h2.42c-.08.26-.13.53-.13.82v3.37c0 1.55 1.26 2.82 2.82 2.82h3.37c1.55 0 2.82-1.26 2.82-2.82V15.9c-.28.07-.57.1-.87.1h-3.28Zm3.26-10H16v2h3.13c.48 0 .87.39.87.87v3.27c0 .48-.39.87-.87.87h-3.27c-.06 0-.12-.02-.18-.04-.25.65-.64 1.23-1.14 1.7.4.21.84.34 1.32.34h3.27c1.58 0 2.87-1.29 2.87-2.87V8.87C22 7.29 20.71 6 19.13 6Z" /></symbol>'}),yf=(a().add(mf),mf),bf=new(o())({id:"networking_stack",use:"networking_stack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="networking_stack"><path d="m2.94 9.26 3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.82-.47 1.31-1.32 1.31-2.27s-.49-1.8-1.31-2.27l-3.73-2.15c-.71-.41-1.53-.63-2.35-.63-.82 0-1.64.22-2.35.63L2.94 4.72c-.82.47-1.31 1.32-1.31 2.27s.49 1.79 1.31 2.27Zm.75-3.24 3.69-2.13c.5-.29 1.05-.43 1.6-.43s1.11.14 1.6.43l3.73 2.15c.75.43.75 1.51 0 1.94l-3.69 2.13c-.5.29-1.05.43-1.6.43s-1.11-.14-1.6-.43L3.69 7.96c-.75-.43-.75-1.51 0-1.94Zm3.46 1.8c.72.41 1.88.42 2.59 0 .27-.15 1.06-.61 1.29-.75.48-.27.47-.72-.01-1s-1.25-.28-1.73 0c-.42.24-.45.62-.12.89-.11-.04-.21-.09-.31-.14-.38-.22-.56-.51-.53-.8-.44.01-.87.11-1.2.3-.7.41-.7 1.08.02 1.5Zm8.26 4.07-3.69 2.13a5.43 5.43 0 0 1-5.4 0l-3.73-2.15c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.33-.56.61-.94.83Zm0-2-3.69 2.13a5.43 5.43 0 0 1-5.4 0L2.59 9.86c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.34-.56.62-.94.84Z" /></symbol>'}),wf=(a().add(bf),bf),xf=new(o())({id:"charts_view",use:"charts_view-usage",viewBox:"0 0 16 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 15" id="charts_view"><path d="M10.25 6.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88Zm.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H3.13c-.48 0-.88-.39-.88-.88V7.14l1.67 1.11 1.02.68 1.5-1.5C7.43 8.39 8.76 9 10.25 9c2.7 0 4.93-1.94 5.4-4.5a5.497 5.497 0 0 0-5.4-4.5c-2.69 0-4.93 1.94-5.4 4.5.12.63.34 1.22.65 1.75L4.75 7l-3-2h-1v7.62A2.38 2.38 0 0 0 3.13 15h9.24a2.38 2.38 0 0 0 2.38-2.38V10l-1.17-.73c-.87.24-1.81.27-2.74.06Zm-.59-7.83c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3Z" /></symbol>'}),_f=(a().add(xf),xf),Sf=new(o())({id:"nodes_update",use:"nodes_update-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="nodes_update"><rect width="40" height="40" fill="#F9A825" rx="20" /><path fill="#FFF8E1" d="M20 10.285c-5.356 0-9.715 4.358-9.715 9.715s4.359 9.715 9.715 9.715 9.715-4.358 9.715-9.715-4.36-9.715-9.715-9.715Zm0 4.382a1.334 1.334 0 1 1-.001 2.668 1.334 1.334 0 0 1 0-2.668Zm2.666 8.67c0 .918-.744 1.663-1.662 1.663h-3.67v-.281c0-.93.742-1.679 1.666-1.708v-2.344h-1.667a2 2 0 0 1 2-2H21V23h1.666v.337Z" /></symbol>'}),Of=(a().add(Sf),Sf),Cf=n(69666),Ef=n(65828),Af=n(44636),Mf=n(13249),kf=n(18567),Pf=n(11182),Rf=n(69790),Tf={add_node:u,add_user:c,aggregation_avg:d,aggregation_max:h,aggregation_med:v,aggregation_min:y,aggregation_sum:w,aggregation_sum_abs:_,alarm:O,alarmCritical:E,alarmCriticalWarning:M,alarmFilled:P,alarmWarning:T,alarm_bell:B,alarms_new:j,alarm_off:Z,anomaliesBrain:F,anomaliesLens:V,anomalyBadge:z.default,applications_hollow:G,applicationsSolid:yf,around_clock:$,arrow_down:Y,arrow_w_line_left:K,arrow_w_line_right:Q,arrow_left:te,arrow_s_down:re,arrow_s_left:ie,arrows_vertical:se,bookmark:le,bullet_one:fe,bullet_three:pe,bullet_two:ge,calendarFull:me,calendarFullPress:be,chart_added:xe,charts:Se,charts_view:_f,check:Ce,checkmark_partial_s:Ae,checkmark_s:Me.default,checkmark:Pe,chevron_double:Te,chevron_down:Ie.default,chevron_down_thin:Be.default,chevron_expand:De.default,chevron_left:Le,chevron_left_small:He,chevron_left_start:Ne,chevron_right:ze,chevron_right_end:$e,chevron_right_s:Ge,chevron_right_small:Ye,chevron_up_thin:Xe.default,classError:Je,classLatency:et,classUtilization:nt,classWorkload:ot,clock_hollow:at,clock5Min:ut,clock5MinPress:ct,close_circle:dt,cluster:ht,cluster_spaces:vt,code:yt,collapse:bt.default,collect:xt,community:St,connection_to_cloud:Ct,connectivityStatusLive:At,connectivityStatusOffline:kt,connectivityStatusStale:Rt,container:It,controller_kind:Dt,controller_name:Lt,copy:Nt,correlation:Ht,correlation_inv:zt,cpu:Gt,cross_s:$t,data_retention:Yt,database:Xt.default,dashboard:Jt,dashboard_add:en,dashboards:nn,disk:on,documentation:sn,dot:un.default,dots_2x3:cn,download:dn,dragHorizontal:pn.default,edit:gn,error:mn,exclamation:bn,expand:wn.default,favorites:_n,feed:On,filter:En,filterList:Mn,firewallSolid:hf,forcePlay:Pn,forcePlayOutline:Tn,functions:Bn,fullScreen:jn,gear:Zn,github:Fn,google:Un,goToNode:Vn,group_by:Wn,hamburger:qn,help:Xn,hide:Jn,highlightArea:er,holder:nr,importExport:or,incident_manager:ar,information:sr.default,informationPress:lr,insights:fr,integrationDiscord:pr,integrationDiscordColored:gr,integrationEmail:mr,integrationEmailColored:br,integrationMattermost:xr,integrationMattermostColored:Sr,integrationMobileAppColored:Cr,integrationOpsgenie:Ar,integrationOpsgenieColored:kr,integrationPagerduty:Rr,integrationPagerdutyColored:Ir,integrationRocketChat:Dr,integrationRocketChatColored:Lr,integrations:Nr,integrationSlack:Hr,integrationSlackColored:zr,integrationWebhook:Gr,integrationWebhookColored:$r,ipNetworking:Yr,ipNetworkingPress:Kr,last_week:Qr,line_chart:to,logo_s:ro,loading:oo.default,magnify:ao,metrics:so.default,metrics_explorer:lo,minimize_s:fo,mobilePushNotifications:ho,mobilePushNotificationsHollow:vo,monitoring:yo,more:wo,navLeft:xo.default,navRight:_o.default,nav_arrow_goto:Oo,nav_dots:Co.Z,networkingStack:wf,netdata:Ao,netdataAssistant:ko,netdataPress:Ro,node:Io,node_child:Do,node_default_l:Lo,node_hollow:No,node_import_export:Ho,node_notification_l:zo,node_parent:Go,node_selected_l:$o,nodes:Yo,nodes_hollow:Ko,none_selected:Qo,nodes_update:Of,notification:ta,notification_shortcut_enabled:ti,notification_shortcut_disabled:ri,os:ii,osAlpineLinux:si,osAmazonLinux:li,osArchLinux:fi,osCelarOS:pi,osCentos:gi,osCentosColored:mi,osCoreOS:bi,osDebian:xi,osDebianColored:Si,osFedora:Ci,osFreeBSD:Ai,osGentoo:ki,osLinux:Ri,osLinuxColored:Ii,osLinuxManjaro:Di,osMacOSX:Li,osOracle:Ni,osOracleColored:Hi,osPress:zi,osRaspbian:Gi,osRedHat:$i,osSuseLinux:Yi,osUbuntu:Ki,osUbuntuColored:Qi,padlock:ra,panTool:oa.default,pauseOutline:aa,pauseSolid:ua,pencilSolid:da,pencilOutline:ca,pie_chart_skeleton:ha,pin_element:va,playOutline:ya,playSolid:wa,plus:_a,plus_mini_s:Oa,pod:Ea,pricing:Ma,print:Pa,privacy:Ta,pushNotifications:Ba,qrCode:ja,ram:Va,qualityOfServiceSolid:vf,question:Za,questionFilled:Fa,rearrange:za.Z,reduceSize:Ga,refresh:$a,reload:Ya,removeNode:Ka,resize_handler:Ja.default,rocket:es,room:ns,room_home:os,room_new:as,room_overview:us,sad:cs,save:ds,search:hs,search_s:vs,searchPress:ys,serviceApache:ws,serviceApacheTomcat:_s,serviceBeanstalk:Os,serviceBind:Es,serviceContainer:Ms,serviceCoreDns:Ps,serviceCouchDB:Ts,serviceDatabase:Bs,serviceDNS:js,serviceDockerHubPress:Zs,serviceDockerHub:Fs,serviceDotNet:Vs,serviceEBPF:Us,serviceElasticSearch:Ws,serviceFreeNAS:qs,serviceHAProxy:Xs,serviceHTTPCheck:Js,serviceIceCast:eu,serviceInfluxDB:nu,serviceIPFS:ou,serviceIPVS:au,serviceKubernetes:uu,serviceLighthttpd:cu,serviceLighthttpd2:du,serviceLiteSpeed:hu,serviceLxc:vu,serviceMariaDB:yu,serviceMemCached:wu,serviceMongoDB:_u,serviceMySQL:Ou,serviceMySQLPress:Eu,serviceNginx:Mu,serviceNginxLocal:Pu,serviceNginxPlus:Tu,serviceNtpd:Bu,serviceNtpdPress:ju,serviceOpenStack:Zu,serviceOpenWrt:Fu,servicePan:Vu,servicePercona:Uu,servicePfSense:Wu,servicePhpFpm:qu,servicePostgreSQL:Xu,servicePrometheus:Ju,serviceProxySQL:el,serviceRabbitMQ:nl,serviceRedis:ol,serviceRethinkDB:al,serviceRetroShare:ul,serviceSelectedArea:cl,serviceSendgrid:dl,services:hl,servicesSmartdlog:vl,serviceSolr:yl,serviceSquid:wl,serviceSummaryStatistic:_l,serviceSystemd:Ol,serviceTraefik:El,serviceVarnish:Ml,serviceWebLog:Pl,serviceWebLogNginx:Tl,serviceX509Check:Bl,serviceXen:jl,settings:Zl,settings_h:Fl,sign_in:Vl,sorting_vertical:Ul,sort_ascending:$l.default,sorting_asc:Wl,sort_descending:Xl.default,sorting_desc:Yl,sort_indicator:Jl,space:ec,space_new:nc,spaces_v2:oc,switch_off:ac,system_overview:uc,systemOverviewPress:cc,text_add:dc,thumb_down:hc,thumb_up:vc,tiny_buttons:yc,training:wc,trashcan:_c,triangle:Oc,triangle_down:Ec,unknownError:Mc,universe:Pc,unreachable:Tc,unreachableNode:Bc,update:jc,update_pending:Zc,upload:Fc,user:Vc,userPress:Uc,users:Wc,view_list:qc,viewSingleNode:Xc,viewSingleNodePress:Jc,virtualization:ef,warning:nf,warning_triangle:of,warning_triangle_hollow:af.default,weights_compare:uf,weights_drill_down:cf,x:df,zoomIn:Cf.default,zoomOut:Ef.default,zoomReset:Af.default,N:Mf.default,I:kf.default,D:Pf.default,L:Rf.default}},11597:function(e,t,n){"use strict";n.d(t,{JO:function(){return i.J},NZ:function(){return r},eS:function(){return o.e}});var r=n(54922),o=n(33981),i=n(46345)},10114:function(e,t,n){"use strict";n.r(t),n.d(t,{StyledIcon:function(){return c}});var r,o=n(60677),i=n(50757),a=n(69498),s=n(21352),u=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},l={small:"16px",medium:"24px",large:"40px"},c=o.default.svg(r||(r=u(["\n height: ",";\n width: ",";\n opacity: ",";\n pointer-events: ",";\n ","\n ","\n ","\n ","\n ","\n"],["\n height: ",";\n width: ",";\n opacity: ",";\n pointer-events: ",";\n ","\n ","\n ","\n ","\n ","\n"])),(function(e){var t=e.size;return e.height||l[t]}),(function(e){var t=e.size;return e.width||l[t]}),(function(e){return e.disabled?.3:1}),(function(e){return e.disabled?"none":"unset"}),(function(e){var t=e.rotate;return!isNaN(t)&&"transform: rotate(".concat(90*t,"deg);")}),(function(e){var t=e.theme,n=e.color;return n&&"fill: ".concat((0,i.Lq)(n)({theme:t}),";")}),(function(e){var t=e.theme,n=e.hoverColor;return n&&"&:hover { fill: ".concat((0,i.Lq)(n)({theme:t}),"; }")}),a.Z,s.Z)},49713:function(e,t,n){"use strict";n.d(t,{oi:function(){return q},di:function(){return H},a6:function(){return U},fC:function(){return X},mz:function(){return Y}});var r,o,i,a,s,u,l,c,f,d,p,h,g,v=n(67294),m=n(78382),y=n(60677),b=n(11597),w=n(90509),x=n(11275),_=n(69498),S=n(21352),O=n(1605),C=n(88292),E=n(32855),A=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},M=(0,y.css)(r||(r=A(["\n cursor: ",";\n pointer-events: ",";\n"],["\n cursor: ",";\n pointer-events: ",";\n"])),(function(e){return e.disabled?"not-allowed":""}),(function(e){return e.disabled?"none":"auto"})),k=y.default.div(o||(o=A(["\n ","\n ","\n position: relative;\n ","\n"],["\n ","\n ","\n position: relative;\n ","\n"])),_.Z,S.Z,C.Z),P=y.default.input.attrs({round:!0})(i||(i=A(["\n ","\n ","\n height: 100%;\n width: 100%;\n font-weight: normal;\n flex-grow: 0;\n ",";\n ",";\n font-size: ",";\n line-height: 18px;\n color: ",";\n background: ",";\n\n &::placeholder {\n font-size: ",";\n line-height: 18px;\n color: ",";\n opacity: 1;\n font-weight: normal;\n }\n ",";\n"],["\n ","\n ","\n height: 100%;\n width: 100%;\n font-weight: normal;\n flex-grow: 0;\n ",";\n ",";\n font-size: ",";\n line-height: 18px;\n color: ",";\n background: ",";\n\n &::placeholder {\n font-size: ",";\n line-height: 18px;\n color: ",";\n opacity: 1;\n font-weight: normal;\n }\n ",";\n"])),x.aY,O.Z,(function(e){return e.iconLeft&&"padding-left: 0"}),(function(e){return e.iconRight&&"padding-right: 0"}),(function(e){return"tiny"===e.size?"12px":"14px"}),(function(e){return e.disabled?(0,w.getColor)("placeholder"):(0,w.getColor)("textDescription")}),(function(e){return e.disabled?(0,w.getColor)("mainBackgroundDisabled"):(0,w.getColor)("mainBackground")}),(function(e){return"tiny"===e.size?"12px":"14px"}),(0,w.getColor)("placeholder"),M),R=y.default.label(a||(a=A(["\n width: 100%;\n display: block;\n ",";\n"],["\n width: 100%;\n display: block;\n ",";\n"])),M),T=(0,y.default)(E.default).attrs({alignItems:"center",color:"text",flex:!1,width:"100%"})(s||(s=A(["\n font-style: normal;\n font-weight: bold;\n font-size: ",";\n line-height: 18px;\n margin-bottom: 4px;\n"],["\n font-style: normal;\n font-weight: bold;\n font-size: ",";\n line-height: 18px;\n margin-bottom: 4px;\n"])),(function(e){return"tiny"===e.size?"12px":"14px"})),I=(0,y.default)(E.default)(u||(u=A(["\n ",";\n"],["\n ",";\n"])),M),B=(0,y.default)(b.JO)(l||(l=A(["\n flex-grow: 0;\n flex-shrink: 0;\n"],["\n flex-grow: 0;\n flex-shrink: 0;\n"]))),D=(0,y.default)(B)(c||(c=A(["\n fill: ",";\n"],["\n fill: ",";\n"])),(0,w.getColor)("error")),j=(0,y.default)(B)(f||(f=A(["\n fill: ",";\n"],["\n fill: ",";\n"])),(0,w.getColor)("success")),L=(0,y.default)(E.default)(d||(d=A([""],[""]))),Z=(0,y.default)(E.default)(p||(p=A(["\n flex-flow: row nowrap;\n"],["\n flex-flow: row nowrap;\n"]))),N=y.default.span(h||(h=A(["\n font-size: 12px;\n line-height: 16px;\n overflow: hidden;\n flex-grow: 0;\n flex-shrink: 0;\n color: ",";\n"],["\n font-size: 12px;\n line-height: 16px;\n overflow: hidden;\n flex-grow: 0;\n flex-shrink: 0;\n color: ",";\n"])),(0,w.getColor)("placeholder")),F=(0,y.default)(N)(g||(g=A(["\n color: ",";\n flex-shrink: 1;\n"],["\n color: ",";\n flex-shrink: 1;\n"])),(0,w.getValidatedControlColor)("text")),H=function(e){var t=e.defaultState,n=void 0!==t&&t,r=e.onBlur,o=e.onFocus,i=(0,v.useState)(n),a=i[0],s=i[1],u=(0,v.useCallback)((function(e){a||s(!0),o&&o(e)}),[o,a]),l=(0,v.useCallback)((function(e){s(!1),r&&r(e)}),[r]);return[a,u,l]},V=function(){return V=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},V.apply(this,arguments)},z=function(e){var t=e.defaultColor,n=void 0===t?"inputBorder":t,r=e.success,o=void 0===r?"success":r,i=e.error,a=void 0===i?"error":i,s=e.disabled;return{success:o,error:a,disabled:void 0===s?"inputBorder":s,default:n}},U=function(e){var t=e.size,n=void 0===t?"large":t,r=e.disabled,o=e.success,i=e.error,a=e.focused,s=o?"success":i?"error":r?"disabled":"default",u=(0,v.useMemo)((function(){switch(n){case"tiny":return{height:"28px",padding:[1,2]};case"small":return{height:"34px",padding:[2,3]};default:return{height:"42px",padding:[2.5,4]}}}),[n]),l=(0,v.useMemo)((function(){return V(V({},u),{background:r?"mainBackgroundDisabled":"mainBackground",border:{size:"1px",type:"solid",color:a?z({defaultColor:"inputBorderFocus"})[s]:z({})[s],side:"all"},round:!0,_hover:{border:{size:"1px",type:"solid",color:z({defaultColor:"inputBorderHover"})[s],side:"all"}}})}),[s,u,a]),c=(0,v.useCallback)((function(e){var t=e.iconRight,n=void 0!==t&&t,r=e.iconLeft;return{height:"100%",alignItems:"center",round:!0,margin:[0,n?0:2,0,void 0!==r&&r?0:2]}}),[r]);return{styles:{inputContainer:l,iconContainer:c}}},G=function(){return G=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},G.apply(this,arguments)},W=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},$=function(e){var t=e.isDirty,n=e.instantFeedback,r=e.value,o=e.prevValue,i=e.error,a=e.success;return e.touched||Boolean("all"===n&&t)||Boolean("positiveFirst"===n&&t&&a)||Boolean("positiveFirst"===n&&t&&i&&o&&r.length<o.length)},q=function(e){var t=e.error,n=e.success,r=e.touched,o=e.disabled,i=e.instantFeedback,a=e.iconLeft,s=e.iconRight,u=e.name,l=e.onFocus,c=e.onBlur,f=e.className,d=e.fieldMessage,p=e.fieldIndicator,h=e.metaShrinked,g=e.placeholder,y=void 0===g?"":g,b=e.label,w=e.isDirty,x=e.value,_=e.inputRef,S=e.size,O=void 0===S?"large":S,C=e.handleMetaDisplay,E=void 0===C?$:C,A=e.containerStyles,M=e.inputContainerStyles,B=W(e,["error","success","touched","disabled","instantFeedback","iconLeft","iconRight","name","onFocus","onBlur","className","fieldMessage","fieldIndicator","metaShrinked","placeholder","label","isDirty","value","inputRef","size","handleMetaDisplay","containerStyles","inputContainerStyles"]),V=H({onBlur:c,onFocus:l}),z=V[0],q=V[1],Y=V[2],X=E({isDirty:w,instantFeedback:i,value:x,prevValue:(0,m.Z)(x),error:t,success:n,touched:r,focused:z}),K=X&&n,J=X&&t,Q=J&&!0!==t&&t,ee=K&&!0!==n&&n,te=U({size:O,error:J,success:K,disabled:o,focused:z}).styles,ne=v.useCallback((function(e){var t=e.icon;return v.createElement(L,G({},te.iconContainer({iconLeft:!0})),t)}),[]),re=v.useCallback((function(e){var t=e.icon;return v.createElement(L,G({},te.iconContainer({iconRight:!0})),t)}),[]);return v.createElement(k,G({className:f},A),v.createElement(R,{disabled:o},b&&v.createElement(T,{size:O},v.createElement("span",null,b)),v.createElement(I,G({},te.inputContainer,{focused:z,success:K,error:J,disabled:o},M),a&&v.createElement(ne,{icon:a}),v.createElement(P,G({disabled:o,placeholder:y,onBlur:Y,onFocus:q,name:u,"aria-label":u,iconLeft:a,iconRight:s,type:"text",value:x,size:O,ref:_},B)),s&&v.createElement(re,{icon:s}),X&&t&&v.createElement(re,{icon:v.createElement(D,{name:"cross_s"})}),X&&n&&v.createElement(re,{icon:v.createElement(j,{name:"checkmark_s"})}))),!h&&v.createElement(Z,{margin:[1,0,0,0],width:"100%",justifyContent:"between",alignItems:"center"},v.createElement(F,{success:K,error:J},J&&Q||K&&ee||d),v.createElement(N,null,p)))},Y=(n(65390),function(e){var t=e.onBlur,n=e.defaultState,r=void 0!==n&&n,o=(0,v.useState)(r),i=o[0],a=o[1],s=(0,v.useCallback)((function(e){i||a(!0),t&&t(e)}),[t,i]);return[i,s,a]}),X=function(e){var t=e.value,n=void 0===t?"":t,r=e.onChange,o=e.maxChars,i=(0,v.useState)(n),a=i[0],s=i[1],u=(0,v.useState)(!1),l=u[0],c=u[1],f=(0,v.useCallback)((function(e){var t=e.target.value;if(o&&t.length>o)return e.preventDefault(),void e.stopPropagation();s(t),l||c(!0),r&&r(e)}),[l,o,r]),d=o?"".concat(a.length,"/").concat(o):"",p=(0,v.useCallback)((function(e){void 0===e&&(e=""),s(e),c(!1)}),[]);return[a,f,d,l,{setIsDirty:c,setValue:s,resetValue:p}]}},65390:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r,o,i,a=n(67294),s=n(32855),u=n(90833),l=n(60677),c=n(65588),f=n(66243),d=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},p=(0,l.default)(c.Z)(r||(r=d([""],[""]))),h=(0,l.default)(c.Z)(o||(o=d(["\n background-position: ",";\n background-color: ","40;\n background-image: linear-gradient(\n ",",\n ","\n );\n background-repeat: no-repeat;\n background-size: ",";\n height: 2px;\n width: ",";\n"],["\n background-position: ",";\n background-color: ","40;\n background-image: linear-gradient(\n ",",\n ","\n );\n background-repeat: no-repeat;\n background-size: ",";\n height: 2px;\n width: ",";\n"])),(function(e){var t=e.max,n=e.min,r=e.minValue,o=e.width;return"".concat(o*((r-n)/(t-n))*100/100,"px 100%")}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){var t=e.max,n=e.maxValue,r=e.min,o=e.minValue;return"".concat(100*(n-o)/(t-r),"% 100%")}),(function(e){var t=e.width;return"".concat(t,"px")||0})),g=(0,l.default)(f.Z)(i||(i=d(["\n pointer-events: none;\n position: absolute;\n height: 0;\n outline: none;\n width: 100%;\n\n &::-webkit-slider-thumb {\n pointer-events: all;\n }\n"],["\n pointer-events: none;\n position: absolute;\n height: 0;\n outline: none;\n width: 100%;\n\n &::-webkit-slider-thumb {\n pointer-events: all;\n }\n"]))),v=function(){return v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},v.apply(this,arguments)},m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},y=function(e){var t=e.initMax,n=e.initMin,r=e.max,o=void 0===r?100:r,i=e.min,l=void 0===i?0:i,c=e.onChange,f=e.onInput,d=e.step,y=void 0===d?1:d,b=e.TextComponent,w=void 0===b?u.TextSmall:b,x=m(e,["initMax","initMin","max","min","onChange","onInput","step","TextComponent"]),_=(0,a.useState)(t||o),S=_[0],O=_[1],C=(0,a.useState)(n||l),E=C[0],A=C[1],M=(0,a.useState)(0),k=M[0],P=M[1],R=(0,a.useRef)(null),T=(0,a.useRef)(null);(0,a.useEffect)((function(){R.current&&P(R.current.getBoundingClientRect().width)}),[E]),(0,a.useEffect)((function(){O(t||o),A(n||l)}),[o,l]);return a.createElement(s.default,{column:!0,gap:1},a.createElement(s.default,{alignItems:"center","data-testid":"multiRangeInput",justifyContent:"center",position:"relative",width:"100%"},a.createElement(g,v({"data-testid":"minRangeInput",max:o,min:l,onChange:function(e){c&&c({max:S,min:e.target.value})},onInput:function(e){var t=Math.min(+e.target.value,S-y);A(t),e.target.value=t.toString(),f&&f({max:S,min:e.target.value})},position:"relative",ref:T,step:y,value:E,zIndex:3},x)),a.createElement(g,v({"data-testid":"maxRangeInput",max:o,min:l,onChange:function(e){c&&c({max:e.target.value,min:E})},onInput:function(e){var t=Math.max(+e.target.value,E+y);O(t),e.target.value=t.toString(),f&&f({max:e.target.value,min:E})},ref:R,step:y,value:S,zIndex:5},x)),a.createElement(p,{"data-testid":"multiRange-slider"},a.createElement(h,{"data-testid":"multiRange-sliderTrack",max:o,maxValue:S,min:l,minValue:E,width:k}))),a.createElement(s.default,{"data-testid":"multiRange-values",justifyContent:"between"},a.createElement(w,{"data-testid":"multiRange-minValue"},E),a.createElement(w,{"data-testid":"multiRange-maxValue"},S)))}},66243:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r,o=n(67294),i=n(60677),a=n(50757),s=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},u=i.default.input.attrs({type:"range"})(r||(r=s(["\n -webkit-appearance: none;\n height: 2px;\n background-color: ","40;\n background-image: linear-gradient(",", ",");\n background-repeat: no-repeat;\n background-size: ",";\n cursor: pointer;\n width: 100%;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background: ",";\n transition: all 0.3s ease-in-out;\n\n &:active {\n height: 16px;\n width: 16px;\n }\n }\n"],["\n -webkit-appearance: none;\n height: 2px;\n background-color: ","40;\n background-image: linear-gradient(",", ",");\n background-repeat: no-repeat;\n background-size: ",";\n cursor: pointer;\n width: 100%;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background: ",";\n transition: all 0.3s ease-in-out;\n\n &:active {\n height: 16px;\n width: 16px;\n }\n }\n"])),(0,a.Lq)("primary"),(0,a.Lq)("primary"),(0,a.Lq)("primary"),(function(e){var t=e.max,n=e.value;return"".concat(100*n/t,"% 100%")}),(0,a.Lq)("primary")),l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)},c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},f=(0,o.forwardRef)((function(e,t){var n=e.max,r=void 0===n?100:n,i=e.min,a=void 0===i?0:i,s=e.step,f=void 0===s?1:s,d=e.value,p=void 0===d?0:d,h=c(e,["max","min","step","value"]);return o.createElement(u,l({"data-testid":"rangeInput",max:r,min:a,step:f,type:"range",value:p,ref:t},h))}))},11307:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r,o,i,a,s=n(67294),u=n(90833),l=n(60677),c=n(90509),f=n(69498),d=n(955),p=n(21352),h=n(11597),g=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},v=l.default.input(r||(r=g(["\n && {\n height: 0;\n width: 0;\n opacity: 0;\n -moz-appearance: none;\n margin: 0;\n border: none;\n }\n"],["\n && {\n height: 0;\n width: 0;\n opacity: 0;\n -moz-appearance: none;\n margin: 0;\n border: none;\n }\n"]))),m=l.default.label(o||(o=g(["\n display: flex;\n flex-direction: row;\n align-items: center;\n ","\n ","\n\n ","\n ","\n"],["\n display: flex;\n flex-direction: row;\n align-items: center;\n ","\n ","\n\n ","\n ","\n"])),d.Z,p.Z,f.Z,(function(e){var t=e.disabled;return"\n pointer-events: ".concat(t?"none":"auto",";\n cursor: ").concat(t?"default":"pointer",";\n")})),y=l.default.div(i||(i=g(["\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n flex: 0 0 auto;\n\n height: 16px;\n width: 16px;\n\n box-sizing: border-box;\n border: 1px solid ",";\n border-radius: 100%;\n background: ",";\n\n ","\n"],["\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n flex: 0 0 auto;\n\n height: 16px;\n width: 16px;\n\n box-sizing: border-box;\n border: 1px solid ",";\n border-radius: 100%;\n background: ",";\n\n ","\n"])),(function(e){return(0,c.getColor)(e.borderColor)(e)}),(function(e){return(0,c.getColor)(e.background)(e)}),f.Z),b=(0,l.default)(h.JO)(a||(a=g(["\n fill: ",";\n height: 8px;\n width: 8px;\n"],["\n fill: ",";\n height: 8px;\n width: 8px;\n"])),(function(e){return(0,c.getColor)(e.color)(e)})),w=function(){return w=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},w.apply(this,arguments)},x=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},_={disabled:{containerColor:"disabledBackground",dotColor:"disabledBackground",borderColor:"disabledBackground"},checked:{containerColor:"inputBg",dotColor:"primary",borderColor:"inputBorder"},checkedDisabled:{containerColor:"inputBg",dotColor:"disabled",borderColor:"inputBorder"},default:{containerColor:"inputBg",dotColor:"bright",borderColor:"inputBorder"}},S=function(e){var t=e.alignItems,n=void 0===t?"center":t,r=e.alignSelf,o=e.checked,i=e.children,a=e.disabled,l=e.iconProps,c=e.label,f=e.margin,d=x(e,["alignItems","alignSelf","checked","children","disabled","iconProps","label","margin"]),p=a&&!o?"disabled":o&&a?"checkedDisabled":o?"checked":"default",h=s.useMemo((function(){return _[p]}),[p]),g="checkedDisabled"===p||"checked"===p;return s.createElement(m,{alignItems:n,alignSelf:r,disabled:a,margin:f},s.createElement(v,w({type:"radio",disabled:a,checked:o},d)),s.createElement(y,{background:h.containerColor,borderColor:h.borderColor,margin:i||c?[.5,2,0,0]:null},g&&s.createElement(b,w({name:"dot",color:h.dotColor},l))),i,c&&!i&&s.createElement(u.Text,null,c))}},37807:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r,o=n(67294),i=n(60677),a=n(49713),s=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},u=(0,i.default)(a.oi)(r||(r=s(["\n & input {\n background: transparent;\n }\n\n & > label {\n margin-bottom: 0;\n }\n\n & > div {\n margin-top: 0;\n }\n"],["\n & input {\n background: transparent;\n }\n\n & > label {\n margin-bottom: 0;\n }\n\n & > div {\n margin-top: 0;\n }\n"]))),l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)},c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},f=(0,o.forwardRef)((function(e,t){var n=e.value,r=e.onChange,i=e.placeholder,a=c(e,["value","onChange","placeholder"]);return o.createElement(u,l({inputRef:t,value:n,onChange:r,placeholder:i,size:"tiny"},a))}))},51559:function(e,t,n){"use strict";var r,o=n(60677),i=n(21352),a=n(69498),s=n(96069),u=n(1605),l=n(33778),c=n(94932),f=n(69838),d=n(55199),p=n(51702),h=n(88292),g=n(77857),v=n(77606),m=n(13557),y=n(4667),b=n(88489),w=n(87331),x=n(73052),_=n(75980),S=n(37947),O=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},C=function(e){return(0,S.ZP)(e.sx)(e)};t.Z=function(e){return(0,o.default)(e)(r||(r=O(["\n box-sizing: border-box;\n\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"],["\n box-sizing: border-box;\n\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"])),m.Z,i.Z,c.Z,a.Z,s.Z,y.Z,h.Z,p.Z,v.Z,l.Z,b.Z,u.Z,g.Z,f.Z,d.Z,w.Z,x.ZP,_.FK,C)}},65588:function(e,t,n){"use strict";var r=(0,n(51559).Z)("div");t.Z=r},4528:function(e,t,n){"use strict";n.d(t,{Z:function(){return I}});var r,o=n(60677),i=n(21352),a=n(69498),s=n(96069),u=n(1605),l=n(33778),c=n(94932),f=n(69838),d=n(55199),p=n(51702),h=n(88292),g=n(77857),v=n(77606),m=function(e){var t=e.flex,n=e.basis;if(void 0===t&&void 0===n)return"";if(n&&void 0===t)return"flex-basis: ".concat(n,";");var r=function(e,t){if(void 0===t&&(t="auto"),!0===e)return"1 1 ".concat(t);if(!1===e)return"0 0 ".concat(t);if("grow"===e)return"1 0 ".concat(t);if("shrink"===e)return"0 1 ".concat(t);if("number"===typeof e)return"".concat(e," 0 ").concat(t);if("object"!==typeof e)return"";var n=e.grow,r=e.shrink;return"".concat(n," ").concat(r," ").concat(t)}(t,n);return r?"flex: ".concat(r,";"):""},y=function(e){var t=function(e){return!0===e?"wrap":!1===e?"nowrap":"reverse"===e?e:""}(e.flexWrap);return t&&"flex-wrap: ".concat(t,";")},b=n(955),w=n(13557),x={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly",stretch:"stretch"},_=function(e){var t=e.justifyContent;return t in x?"justify-content: ".concat(x[t],";"):""},S=n(4667),O=function(e){var t=function(e,t,n){return e?"column":t?"column-reverse":n?"row-reverse":"row"}(e.column,e.columnReverse,e.rowReverse);return"flex-direction: ".concat(t,";")},C=n(88489),E=n(87331),A=n(73052),M=n(60702),k=n(75980),P=n(37947),R=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},T=function(e){return(0,P.ZP)(e.sx)(e)},I=function(e){return(0,o.default)(e)(r||(r=R(["\n display: flex;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"],["\n display: flex;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"])),m,O,y,b.Z,w.Z,_,i.Z,c.Z,a.Z,s.Z,S.Z,h.Z,p.Z,M.B3,v.Z,l.Z,C.Z,u.Z,g.Z,f.Z,d.Z,E.Z,A.ZP,k.FK,T)}},32855:function(e,t,n){"use strict";n.r(t);var r=(0,n(4528).Z)("div");t.default=r},24018:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return v}});var r,o=n(60677),i=n(13947),a={top:"0",right:"0",bottom:"0",left:"0"},s=function(e,t){if(!Array.isArray(t)||t.length<1||t.length>4)return a;var n=t.map((function(t){return(0,i.F)(e,t)}));return 1===n.length?{top:n[0],right:n[0],bottom:n[0],left:n[0]}:2===n.length?{top:n[0],right:n[1],bottom:n[0],left:n[1]}:3===n.length?{top:n[0],right:n[1],bottom:n[2],left:n[1]}:{top:n[0],right:n[1],bottom:n[2],left:n[3]}},u=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},l=function(e,t){return"0"!==e&&"0"!==t?"calc((100% - ".concat(e,") - ").concat(t,")"):"0"===e&&"0"===t?"100%":"calc(100% - ".concat("0"===e?t:e,")")},c=new Set(["top","center","bottom"]),f=new Set(["bottom-left","left","top-left"]),d=new Set(["right","center","left"]),p=new Set(["top-left","top","top-right"]),h=new Set(["top-right","right","bottom-right"]),g=new Set(["bottom-right","bottom","bottom-left"]),v=o.default.div.attrs((function(e){var t=e.theme,n=e.margin;return{marginDimensions:s(t,n)}}))(r||(r=u(["\n position: ",";\n display: flex;\n outline: none;\n pointer-events: all;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n"],["\n position: ",";\n display: flex;\n outline: none;\n pointer-events: all;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n"])),(function(e){return e.isAbsolute?"absolute":"fixed"}),(function(e){var t=e.marginDimensions,n=t.top,r=t.bottom;return"max-height: ".concat(l(n,r),";")}),(function(e){var t=e.marginDimensions,n=t.right,r=t.left;return"max-width: ".concat(l(r,n),";")}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"vertical"===n||!0===n||p.has(t)?"top: ".concat(r.top,";"):d.has(t)?"top: 50%;":""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"horizontal"===n||!0===n||h.has(t)?"right: ".concat(r.right,";"):""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"vertical"===n||!0===n||g.has(t)?"bottom: ".concat(r.bottom,";"):""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"horizontal"===n||!0===n||f.has(t)?"left: ".concat(r.left,";"):c.has(t)?"left: 50%;":""}),(function(e){var t=e.full,n=e.position,r=function(){var e=!0!==t&&"horizontal"!==t&&c.has(n),r=!0!==t&&"vertical"!==t&&d.has(n);return e||r?e&&!r?"translateX(-50%)":!e&&r?"translateY(-50%)":"translate(-50%, -50%)":""}();return r&&"transform: ".concat(r,";")}),(function(e){return e.borderShadow&&"box-shadow: 0px 2px 68px rgba(0, 0, 0, 0.288);"}),(function(e){var t=e.zIndex;return"z-index: ".concat(void 0===t?35:t,";")}))},56872:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return x}});var r,o,i=n(67294),a=n(73935),s=n(91183),u=n(44175),l=n(86321),c=n(24018),f=n(60677),d=n(54113),p=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},h=function(){return h=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},h.apply(this,arguments)},g=f.default.div(r||(r=p(["\n position: fixed;\n inset: 0;\n z-index: 35;\n pointer-events: none;\n outline: none;\n"],["\n position: fixed;\n inset: 0;\n z-index: 35;\n pointer-events: none;\n outline: none;\n"]))),v=f.default.div(o||(o=p(["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n ",";\n}\n"],["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n ",";\n}\n"])),d.Z),m=function(e){var t=e.children,n=e.backdropProps;return i.createElement(g,{"data-testid":"layer-backdropContainer"},i.createElement(v,h({"data-testid":"layer-backdrop"},n)),t)},y=function(){return y=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},y.apply(this,arguments)},b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},w=[],x=function(e){var t=e.position,n=void 0===t?"center":t,r=e.full,o=void 0!==r&&r,f=e.backdrop,d=void 0===f||f,p=e.margin,h=void 0===p?w:p,g=e.onClickOutside,v=e.onEsc,x=e.borderShadow,_=e.children,S=e.backdropProps,O=b(e,["position","full","backdrop","margin","onClickOutside","onEsc","borderShadow","children","backdropProps"]),C=(0,i.useRef)();(0,u.Z)(C,g),(0,l.Z)(v);var E=(0,s.default)(),A=i.createElement(c.default,y({isAbsolute:d,ref:C,full:o,position:n,margin:h,borderShadow:x,"data-testid":"layer-container"},d?{}:y({},O)),_);return a.createPortal(d?i.createElement(m,y({backdropProps:S},O),A):A,E)}},54113:function(e,t){"use strict";t.Z=function(e){var t=e.backdropBlur;return t?"boolean"===typeof t?"backdrop-filter: blur(10px);":"backdrop-filter: blur(".concat(t,"number"===typeof t?"px);":");"):""}},13557:function(e,t){"use strict";var n={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",stretch:"stretch"};t.Z=function(e){var t=e.alignContent;return t in n?"align-content: ".concat(n[t],";"):""}},955:function(e,t){"use strict";var n={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"};t.Z=function(e){var t=e.alignItems;return t in n?"align-items: ".concat(n[t],";"):""}},77606:function(e,t,n){"use strict";var r=n(50757);t.Z=function(e){var t=e.theme,n=e.background,o=e.backgroundOpacity;if(!n)return"";var i=o?(0,r.zt)(n,o)({theme:t}):(0,r.Lq)(n)({theme:t});return i&&"background-color: ".concat(i,";")}},88489:function(e,t,n){"use strict";var r=n(50757),o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)},i={all:function(e){var t=e.size,n=e.type,r=e.color;return"\n border: ".concat(t," ").concat(n," ").concat(r,";\n ")},horizontal:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-top: ".concat(t," ").concat(n," ").concat(r,";\n border-bottom: ").concat(t," ").concat(n," ").concat(r,";\n ")},vertical:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-left: ".concat(t," ").concat(n," ").concat(r,";\n border-right: ").concat(t," ").concat(n," ").concat(r,";\n ")},top:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-top: ".concat(t," ").concat(n," ").concat(r,";\n ")},right:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-right: ".concat(t," ").concat(n," ").concat(r,";\n ")},bottom:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-bottom: ".concat(t," ").concat(n," ").concat(r,";\n ")},left:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-left: ".concat(t," ").concat(n," ").concat(r,";\n ")}},a=function(e){return{color:(0,r.Lq)("border")({theme:e}),size:"1px",side:"all",type:"solid"}};t.Z=function(e){var t=e.theme,n=e.border;if(void 0===n)return"";if(!0===n)return i.all(a(t));if(n in i)return i[n](a(t));if("object"!==typeof n)return"";var s=n.side,u=n.color;return s in i&&i[s](o(o(o({},a(t)),n),{color:(0,r.Lq)(u||"border")({theme:t})}))}},4667:function(e,t){"use strict";t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.gap,r=e.column,o=e.columnReverse,i=e.rowReverse;if("number"!==typeof n)return"";var a=function(e){var t=e.column,n=e.columnReverse,r=e.rowReverse;return t||n?"bottom":r?"left":"right"}({column:r,columnReverse:o,rowReverse:i});return"\n &> *:not(:last-child) {\n margin-".concat(a,": ").concat(t*n,"px;\n }\n ")}},51702:function(e,t){"use strict";t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.height;if("object"===typeof n){var r=n.min,o=void 0===r?"":r,i=n.max,a=void 0===i?"":i;return"\n ".concat(o&&"min-height: ".concat("number"===typeof o?"".concat(t*o,"px"):o,";"),"\n ").concat(a&&"max-height: ".concat("number"===typeof a?"".concat(t*a,"px"):a,";"),"\n ")}return n&&"height: ".concat("number"===typeof n?"".concat(t*n,"px"):n,";")}},77857:function(e,t){"use strict";t.Z=function(e){var t=e.overflow;if(!t)return"";if("string"===typeof t)return"overflow: ".concat(t,";");var n=t.vertical,r=void 0===n?"":n,o=t.horizontal,i=void 0===o?"":o;return"\n ".concat(r&&"overflow-y: ".concat(r,";"),"\n ").concat(i&&"overflow-x: ".concat(i,";"),"\n ")}},73052:function(e,t,n){"use strict";var r=n(77606),o=n(88489),i=n(87331),a=n(50757),s=n(955),u=function(){return u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},u.apply(this,arguments)},l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},c={boxShadow:i.Z,border:o.Z,background:r.Z,color:function(e){var t=e.theme,n=e.color;return n?"color: ".concat((0,a.Lq)(n)({theme:t}),";"):""},alignItems:s.Z},f=function(e){var t=e.theme,n=l(e,["theme"]),r="";for(var o in n)if(void 0===c[o]){var i=n[o];r+="".concat(o,":").concat(i,";")}else{var a=c[o];r+=a&&"function"===typeof a?a(u({theme:t},n)):""}return r},d={_before:"&::before",_after:"&::after",_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_focusWithin:"&:focus-within",_visited:"&:visited",_empty:"&:empty",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_disabled:"&[disabled], &[aria-disabled=true], &[data-disabled]",_checked:"&[aria-checked=true]",_mixed:"&[aria-checked=mixed]",_selected:"&[aria-selected=true], [data-selected] > &",_invalid:"&[aria-invalid=true]",_pressed:"&[aria-pressed=true]",_readOnly:"&[aria-readonly=true], &[readonly]",_first:"&:first-of-type",_last:"&:last-of-type",_expanded:"&[aria-expanded=true]",_grabbed:"&[aria-grabbed=true]",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_groupHover:"[role=group]:hover &",_autofill:"&:-webkit-autofill",_placeholder:"&::placeholder"};t.ZP=function(e){var t=e.theme,n=l(e,["theme"]),r="";for(var o in n)if(o in d){var i=o,a=n[i],s=f(u({theme:t},a));r+="\n ".concat(d[i],"{ \n ").concat(s," \n }")}return r.replace(/^(?=\n)$|^\s*|\s*$|\n\n+/gm,"")}},87331:function(e,t,n){"use strict";var r=n(50757);t.Z=function(e){var t=e.boxShadow,n=e.theme;if(!t)return"";var o=t.color?(0,r.Lq)(t.color)({theme:n}):"",i=t.size?t.size:"";return i?"box-shadow:".concat(i," ").concat(o,";"):""}},88292:function(e,t){"use strict";t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.width;if("object"===typeof n){var r=n.min,o=void 0===r?"":r,i=n.max,a=void 0===i?"":i,s=n.base,u=void 0===s?"":s;return"\n ".concat(o&&"min-width: ".concat("number"===typeof o?"".concat(t*o,"px"):o,";"),"\n ").concat(a&&"max-width: ".concat("number"===typeof a?"".concat(t*a,"px"):a,";"),"\n ").concat(u&&"width: ".concat("number"===typeof u?"".concat(t*u,"px"):u,";"),"\n ")}return n&&"width: ".concat("number"===typeof n?"".concat(t*n,"px"):n,";")}},90833:function(e,t,n){"use strict";n.r(t),n.d(t,{H0:function(){return g},H1:function(){return v},H2:function(){return m},H3:function(){return y},H4:function(){return b},H5:function(){return w},H6:function(){return x},List:function(){return p},ListItem:function(){return h},Text:function(){return E},TextBig:function(){return A},TextBigger:function(){return M},TextFemto:function(){return _},TextHuge:function(){return k},TextMicro:function(){return O},TextNano:function(){return S},TextSmall:function(){return C},makeBig:function(){return a.fl},makeBigger:function(){return a.L5},makeFemto:function(){return a.zs},makeH0:function(){return a.XZ},makeH1:function(){return a.Q2},makeH2:function(){return a.gg},makeH3:function(){return a.UY},makeH4:function(){return a.lU},makeH5:function(){return a.Pp},makeH6:function(){return a.QL},makeHuge:function(){return a.u$},makeMicro:function(){return a.Ly},makeNano:function(){return a.Uw},makeSmall:function(){return a.Y2},makeText:function(){return a.fh},makeTypography:function(){return a.eq}});var r,o,i,a=n(60702),s=n(60677),u=n(21352),l=n(69498),c=n(96069),f=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},d=(0,s.css)(r||(r=f(["\n ","\n ","\n ","\n"],["\n ","\n ","\n ","\n"])),u.Z,l.Z,c.Z),p=s.default.ul(o||(o=f(["\n list-style-type: disc;\n list-style-position: outside;\n padding-left: 28px;\n ","\n"],["\n list-style-type: disc;\n list-style-position: outside;\n padding-left: 28px;\n ","\n"])),d),h=s.default.li(i||(i=f(["\n line-height: 22px;\n padding-left: 9px;\n ","\n"],["\n line-height: 22px;\n padding-left: 9px;\n ","\n"])),d),g=(0,a.XZ)("h1"),v=(0,a.Q2)("h1"),m=(0,a.gg)("h2"),y=(0,a.UY)("h3"),b=(0,a.lU)("h4"),w=(0,a.Pp)("h5"),x=(0,a.QL)("h6"),_=(0,a.zs)("span"),S=(0,a.Uw)("span"),O=(0,a.Ly)("span"),C=(0,a.Y2)("span"),E=(0,a.fh)("span"),A=(0,a.fl)("span"),M=(0,a.L5)("span"),k=(0,a.u$)("span")},60702:function(e,t,n){"use strict";n.d(t,{B3:function(){return y},fl:function(){return I},L5:function(){return B},zs:function(){return M},XZ:function(){return x},Q2:function(){return _},gg:function(){return S},UY:function(){return O},lU:function(){return C},Pp:function(){return E},QL:function(){return A},u$:function(){return D},Ly:function(){return P},Uw:function(){return k},Y2:function(){return R},fh:function(){return T},eq:function(){return w}});var r,o,i=n(60677),a=n(50757),s=n(21352),u=n(69498),l=n(96069),c=n(98625),f=new Set(["left","center","right"]),d=new Set(["underline","none","line-through"]),p=new Set(["normal","nowrap","pre-line"]),h=new Set(["normal","break-all","keep-all","break-word"]),g=n(33778),v=n(55199),m=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},y=function(e){var t=e.theme,n=e.color,r=void 0===n?"text":n;return"color: ".concat((0,a.Lq)(r)({theme:t}),";")},b=(0,i.css)(r||(r=m(["\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n "," \n ","\n ","\n ","\n ","\n ","\n"],["\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n "," \n ","\n ","\n ","\n ","\n ","\n"])),y,(function(e){var t=e.background,n=void 0===t?"text":t,r=e.code,o=e.color,i=void 0===o?"elementBackground":o,s=e.theme;return r&&"\n background-color: ".concat((0,a.Lq)(n)({theme:s}),";\n border-radius: 4px;\n color: ").concat((0,a.Lq)(i)({theme:s}),";\n padding: 0 6px;\n ")}),s.Z,(function(e){var t=e.textAlign;return f.has(t)&&"text-align: ".concat(t,";")}),(function(e){var t=e.textDecoration;return d.has(t)&&"text-decoration: ".concat(t,";")}),c.Z,(function(e){return e.truncate&&"\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"}),(function(e){var t=e.whiteSpace;return p.has(t)&&"white-space: ".concat(t,";")}),(function(e){var t=e.wordBreak;return h.has(t)&&"word-break: ".concat(t,";")}),u.Z,l.Z,g.Z,v.Z,(function(e){var t=e.fontSize;return t&&"\n font-size: ".concat(t,";\n line-height: ").concat(t,";\n ")})),w=function(e,t){var n,r,a=t.fontSize,s=t.lineHeight,u=t.strong;return(0,i.default)(e)(o||(o=m(['\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif;\n font-style: normal;\n ',"\n ","\n ","\n ","\n"],['\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif;\n font-style: normal;\n ',"\n ","\n ","\n ","\n"])),(r=a,function(){return"font-size: ".concat(r,";")}),function(e){return function(){return"line-height: ".concat(e,";")}}(s),(n=u,function(e){var t=e.strong;return"font-weight: ".concat((void 0===t?n:t)?"bold":"normal",";")}),b)},x=function(e){return w(e,{fontSize:"26px",lineHeight:"32px",strong:!0})},_=function(e){return w(e,{fontSize:"24px",lineHeight:"28px",strong:!0})},S=function(e){return w(e,{fontSize:"22px",lineHeight:"24px",strong:!0})},O=function(e){return w(e,{fontSize:"20px",lineHeight:"24px",strong:!0})},C=function(e){return w(e,{fontSize:"16px",lineHeight:"21px",strong:!0})},E=function(e){return w(e,{fontSize:"14px",lineHeight:"18px",strong:!0})},A=function(e){return w(e,{fontSize:"12px",lineHeight:"14px",strong:!0})},M=function(e){return w(e,{fontSize:"8px",lineHeight:"10px"})},k=function(e){return w(e,{fontSize:"10px",lineHeight:"13px"})},P=function(e){return w(e,{fontSize:"11px",lineHeight:"14px"})},R=function(e){return w(e,{fontSize:"12px",lineHeight:"16px"})},T=function(e){return w(e,{fontSize:"14px",lineHeight:"20px"})},I=function(e){return w(e,{fontSize:"16px",lineHeight:"18px"})},B=function(e){return w(e,{fontSize:"24px",lineHeight:"32px"})},D=function(e){return w(e,{fontSize:"36px",lineHeight:"44px"})}},91183:function(e,t,n){"use strict";n.r(t);var r=n(67294);t.default=function(){var e=(0,r.useMemo)((function(){var e=document.createElement("div");return document.body.append(e),e}),[]);return(0,r.useLayoutEffect)((function(){return function(){return document.body.removeChild(e)}}),[]),e}},11557:function(e,t,n){"use strict";n.r(t);var r=n(67294),o=n(13692);t.default=function(e){var t=(0,r.useRef)(),n=(0,r.useCallback)((function(n){t.current=n,(0,o.Z)(e,n)}),[]);return[t,n]}},86321:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e){return(0,r.useEffect)((function(){if(e){var t=function(t){27===t.keyCode&&e(t)};return document.addEventListener("keydown",t),function(){return document.removeEventListener("keydown",t)}}}),[e])}},44175:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(67294),o=n(88006),i=function(e,t){return(0,o.Z)(t).some((function(t){return t===e}))},a=function(e,t,n){(0,r.useEffect)((function(){if(t){var r=function(r){r.target===e.current||i(e.current,r.target)||i(n,r.target)||t(r)};return document.addEventListener("mousedown",r),function(){return document.removeEventListener("mousedown",r)}}}),[t])}},62928:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e,t){void 0===e&&(e=!1);var n=void 0===t?{}:t,o=n.on,i=n.off,a=n.toggle,s=(0,r.useState)(!!e),u=s[0],l=s[1];return[u,(0,r.useCallback)((function(){l((function(e){var t=!e;return a&&a(t),o&&t&&o(),i&&!t&&i(),t}))}),[o,i,a]),(0,r.useCallback)((function(){l(!0),o&&o()}),[o]),(0,r.useCallback)((function(){l(!1),i&&i()}),[i])]}},15557:function(e,t,n){"use strict";n.r(t),n.d(t,{AlertMasterCard:function(){return Om},Animation:function(){return bi},Box:function(){return Te.Z},Button:function(){return Ee},ButtonGroup:function(){return ut},Checkbox:function(){return tn},Collapsible:function(){return Ai},ConfirmationDialog:function(){return Km},DarkTheme:function(){return ee.Cs},DefaultTheme:function(){return ee.XU},Documentation:function(){return du},DraggableTabs:function(){return Rv},Drop:function(){return Ie.Z},DropContainer:function(){return Ge},Flex:function(){return Se.default},H0:function(){return He.H0},H1:function(){return He.H1},H2:function(){return He.H2},H3:function(){return He.H3},H4:function(){return He.H4},H5:function(){return He.H5},H6:function(){return He.H6},Icon:function(){return xe.JO},IconButton:function(){return nt},IconComponents:function(){return xe.NZ},InputRange:function(){return Lo.Z},Intersection:function(){return Uv},Layer:function(){return Xo.default},List:function(){return He.List},ListItem:function(){return He.ListItem},MasterCard:function(){return km},Menu:function(){return Uo.default},MenuButton:function(){return $o.Z},MenuDropdown:function(){return Go.Z},MenuDropdownItem:function(){return Wo.default},MenuItemContainer:function(){return Wo.ItemContainer},Modal:function(){return Zm},ModalBody:function(){return Bm},ModalButton:function(){return jm},ModalCloseButton:function(){return Lm},ModalContent:function(){return Tm},ModalFooter:function(){return Dm},ModalHeader:function(){return Im},MultiRangeInput:function(){return Zo.Z},NavigationTab:function(){return Fl},NavigationTabs:function(){return Rl},NetdataTable:function(){return PO},News:function(){return kl},Pill:function(){return dm},Popover:function(){return zo},PortalSidebar:function(){return Pt},ProgressBar:function(){return vm},RadioButton:function(){return So.default},Select:function(){return XS},Sidebar:function(){return vt},Tab:function(){return To},TabSeparator:function(){return Hl},Table:function(){return xr},Tabs:function(){return jo},Text:function(){return He.Text},TextBig:function(){return He.TextBig},TextBigger:function(){return He.TextBigger},TextFemto:function(){return He.TextFemto},TextHuge:function(){return He.TextHuge},TextInput:function(){return an.oi},TextMicro:function(){return He.TextMicro},TextNano:function(){return He.TextNano},TextSmall:function(){return He.TextSmall},Toggle:function(){return yo},Tooltip:function(){return Xe},VirtualizedTable:function(){return no},breakpoints:function(){return Tt},calcSize:function(){return ee.nF},devices:function(){return Rt},extendTheme:function(){return ee.B1},getColor:function(){return ee.Lq},getGutterHeight:function(){return ee.j2},getOrElse:function(){return ee.fS},getRgbColor:function(){return ee.zt},getSizeBy:function(){return ee.sq},getSizeUnit:function(){return ee.T2},iconsList:function(){return xe.eS},makeBig:function(){return He.makeBig},makeBigger:function(){return He.makeBigger},makeBox:function(){return Yo.Z},makeFemto:function(){return He.makeFemto},makeFlex:function(){return qo.Z},makeH0:function(){return He.makeH0},makeH1:function(){return He.makeH1},makeH2:function(){return He.makeH2},makeH3:function(){return He.makeH3},makeH4:function(){return He.makeH4},makeH5:function(){return He.makeH5},makeH6:function(){return He.makeH6},makeHuge:function(){return He.makeHuge},makeMicro:function(){return He.makeMicro},makeNano:function(){return He.makeNano},makeSmall:function(){return He.makeSmall},makeText:function(){return He.makeText},makeTypography:function(){return He.makeTypography},propOrElse:function(){return ee.yw},useCheckboxesList:function(){return on},useFocusedState:function(){return an.di},useInputStyles:function(){return an.a6},useInputValue:function(){return an.fC},useIntersection:function(){return Nv},useNavigationArrow:function(){return lv.default},useTouchedState:function(){return an.mz},webkitVisibleScrollbar:function(){return sn.f1}});var r={};n.r(r),n.d(r,{doFilterValuesMatch:function(){return Ki},findFilterValues:function(){return qi},isFilterValueRange:function(){return Qi},markSelectedFacetValuesFromFilters:function(){return Xi},mergeFilters:function(){return Ji},removeSingleFilterValue:function(){return Yi},serialiseFilter:function(){return ea}});var o={};n.r(o),n.d(o,{a11yNotify:function(){return cs},addFilter:function(){return qa},clearFilters:function(){return Xa},removeFilter:function(){return Ka},reset:function(){return Ja},setCurrent:function(){return Qa},setFilter:function(){return es},setResultsPerPage:function(){return ts},setSearchTerm:function(){return ns},setSort:function(){return rs},trackAutocompleteClickThrough:function(){return Ya},trackAutocompleteSuggestionClickThrough:function(){return fs},trackClickThrough:function(){return os}});var i=n(67294),a=n.t(i,2),s=n(60677),u=n(87462),l=n(97326),c=n(89611);function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,c.Z)(e,t)}var d=n(61120);var p=n(78814);function h(e,t,n){return h=(0,p.Z)()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&(0,c.Z)(o,n.prototype),o},h.apply(null,arguments)}function g(e){var t="function"===typeof Map?new Map:void 0;return g=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return h(e,arguments,(0,d.Z)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,c.Z)(r,e)},g(e)}var v=function(e){function t(t){var n;return n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this,(0,l.Z)(n)}return f(t,e),t}(g(Error));function m(e){return Math.round(255*e)}function y(e,t,n){return m(e)+","+m(t)+","+m(n)}function b(e,t,n,r){if(void 0===r&&(r=y),0===t)return r(n,n,n);var o=(e%360+360)%360/60,i=(1-Math.abs(2*n-1))*t,a=i*(1-Math.abs(o%2-1)),s=0,u=0,l=0;o>=0&&o<1?(s=i,u=a):o>=1&&o<2?(s=a,u=i):o>=2&&o<3?(u=i,l=a):o>=3&&o<4?(u=a,l=i):o>=4&&o<5?(s=a,l=i):o>=5&&o<6&&(s=i,l=a);var c=n-i/2;return r(s+c,u+c,l+c)}var w={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var x=/^#[a-fA-F0-9]{6}$/,_=/^#[a-fA-F0-9]{8}$/,S=/^#[a-fA-F0-9]{3}$/,O=/^#[a-fA-F0-9]{4}$/,C=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,E=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,A=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,M=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function k(e){if("string"!==typeof e)throw new v(3);var t=function(e){if("string"!==typeof e)return e;var t=e.toLowerCase();return w[t]?"#"+w[t]:e}(e);if(t.match(x))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(_)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(S))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(O)){var r=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:r}}var o=C.exec(t);if(o)return{red:parseInt(""+o[1],10),green:parseInt(""+o[2],10),blue:parseInt(""+o[3],10)};var i=E.exec(t.substring(0,50));if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])>1?parseFloat(""+i[4])/100:parseFloat(""+i[4])};var a=A.exec(t);if(a){var s="rgb("+b(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",u=C.exec(s);if(!u)throw new v(4,t,s);return{red:parseInt(""+u[1],10),green:parseInt(""+u[2],10),blue:parseInt(""+u[3],10)}}var l=M.exec(t.substring(0,50));if(l){var c="rgb("+b(parseInt(""+l[1],10),parseInt(""+l[2],10)/100,parseInt(""+l[3],10)/100)+")",f=C.exec(c);if(!f)throw new v(4,t,c);return{red:parseInt(""+f[1],10),green:parseInt(""+f[2],10),blue:parseInt(""+f[3],10),alpha:parseFloat(""+l[4])>1?parseFloat(""+l[4])/100:parseFloat(""+l[4])}}throw new v(5)}function P(e){return function(e){var t,n=e.red/255,r=e.green/255,o=e.blue/255,i=Math.max(n,r,o),a=Math.min(n,r,o),s=(i+a)/2;if(i===a)return void 0!==e.alpha?{hue:0,saturation:0,lightness:s,alpha:e.alpha}:{hue:0,saturation:0,lightness:s};var u=i-a,l=s>.5?u/(2-i-a):u/(i+a);switch(i){case n:t=(r-o)/u+(r<o?6:0);break;case r:t=(o-n)/u+2;break;default:t=(n-r)/u+4}return t*=60,void 0!==e.alpha?{hue:t,saturation:l,lightness:s,alpha:e.alpha}:{hue:t,saturation:l,lightness:s}}(k(e))}var R=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function T(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function I(e){return T(Math.round(255*e))}function B(e,t,n){return R("#"+I(e)+I(t)+I(n))}function D(e,t,n){return b(e,t,n,B)}function j(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return D(e,t,n);if("object"===typeof e&&void 0===t&&void 0===n)return D(e.hue,e.saturation,e.lightness);throw new v(1)}function L(e,t,n,r){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?D(e,t,n):"rgba("+b(e,t,n)+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?D(e.hue,e.saturation,e.lightness):"rgba("+b(e.hue,e.saturation,e.lightness)+","+e.alpha+")";throw new v(2)}function Z(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return R("#"+T(e)+T(t)+T(n));if("object"===typeof e&&void 0===t&&void 0===n)return R("#"+T(e.red)+T(e.green)+T(e.blue));throw new v(6)}function N(e,t,n,r){if("string"===typeof e&&"number"===typeof t){var o=k(e);return"rgba("+o.red+","+o.green+","+o.blue+","+t+")"}if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?Z(e,t,n):"rgba("+e+","+t+","+n+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?Z(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new v(7)}var F=function(e){return"number"===typeof e.red&&"number"===typeof e.green&&"number"===typeof e.blue&&("number"!==typeof e.alpha||"undefined"===typeof e.alpha)},H=function(e){return"number"===typeof e.red&&"number"===typeof e.green&&"number"===typeof e.blue&&"number"===typeof e.alpha},V=function(e){return"number"===typeof e.hue&&"number"===typeof e.saturation&&"number"===typeof e.lightness&&("number"!==typeof e.alpha||"undefined"===typeof e.alpha)},z=function(e){return"number"===typeof e.hue&&"number"===typeof e.saturation&&"number"===typeof e.lightness&&"number"===typeof e.alpha};function U(e){if("object"!==typeof e)throw new v(8);if(H(e))return N(e);if(F(e))return Z(e);if(z(e))return L(e);if(V(e))return j(e);throw new v(8)}function G(e,t,n){return function(){var r=n.concat(Array.prototype.slice.call(arguments));return r.length>=t?e.apply(this,r):G(e,t,r)}}function W(e){return G(e,e.length,[])}function $(e,t,n){return Math.max(e,Math.min(t,n))}function q(e,t){if("transparent"===t)return t;var n=P(t);return U((0,u.Z)({},n,{lightness:$(0,1,n.lightness-parseFloat(e))}))}var Y=W(q);function X(e,t){if("transparent"===t)return t;var n=P(t);return U((0,u.Z)({},n,{lightness:$(0,1,n.lightness+parseFloat(e))}))}var K=W(X);var J,Q,ee=n(50757),te=n(69498),ne=n(96069),re=n(1605),oe=n(21352),ie=n(98625),ae="default",se="hollow",ue=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},le=function(){return le=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},le.apply(this,arguments)},ce=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},fe={light:ee.XU,dark:ee.Cs},de=(0,s.css)(J||(J=ue(["\n border-color: ",";\n background-color: ",";\n color: ",";\n"],["\n border-color: ",";\n background-color: ",";\n color: ",";\n"])),(function(e){return e.colors.borderActive(e)}),(function(e){return e.colors.bgActive(e)}),(function(e){return e.colors.colorActive(e)})),pe=function(e){return e.neutral?(0,ee.Lq)(e.flavour===se?"textFocus":"text")(e):(0,ee.Lq)("primary")(e)},he=function(e){return e.neutral?(0,ee.Lq)("textFocus")(e):(0,ee.Lq)("primary")(e)},ge=function(e){return(0,ee.Lq)("mainBackground")(e)},ve=function(e){return e.neutral?(0,ee.Lq)("textFocus")(e):(0,ee.Lq)("accent")(e)},me=function(e){return e.neutral?K(.2,(0,ee.Lq)("textFocus")(e)):(0,ee.Lq)("successLite")(e)},ye=(0,ee.Lq)(["transparent","full"]),be=function(e){var t,n=e.flavour,r=void 0===n?ae:n,o=e.danger,i=e.warning,a=e.iconColor,s=o?(0,ee.Lq)("error"):void 0,u=i?(0,ee.Lq)("warning"):void 0,l=s||u,c=l?function(e){return K(.2,l(e))}:void 0,f=l?function(e){return Y(.2,l(e))}:void 0,d=a?(0,ee.Lq)(a):void 0,p=((t={})[ae]={color:ge,colorHover:ge,colorActive:ge,bg:l||pe,bgHover:c||ve,bgActive:f||me,border:l||pe,borderHover:c||ve,borderActive:f||me,iconColor:d||ge},t[se]={color:l||pe,colorHover:c||me,colorActive:f||me,bg:ye,bgHover:ye,bgActive:ye,border:l||he,borderHover:c||me,borderActive:f||me,iconColor:d||l||pe},t.borderless={color:l||pe,colorHover:c||me,colorActive:f||me,bg:ye,bgHover:ye,bgActive:ye,border:ye,borderHover:ye,borderActive:ye,iconColor:d||l||pe},t);return p[r]||p[ae]},we=s.default.button.attrs((function(e){var t=e.groupFirst,n=e.groupLast,r=e.groupMiddle,o=ce(e,["groupFirst","groupLast","groupMiddle"]);return le({padding:o.padding||o.tiny?[.5]:o.small?[1]:[2],colors:be(o),round:t?{side:"left"}:n?{side:"right"}:!r},function(e){return e.themeType?le(le({},e),{theme:fe[e.themeType]}):le(le({},e),{theme:e.theme})}(o))}))(Q||(Q=ue(["\n && {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n ",";\n\n font-weight: ",";\n font-size: ",";\n line-height: ",";\n white-space: nowrap;\n word-break: keep-all;\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n ","\n ","\n transition: all 150ms;\n\n background-color: ",";\n color: ",";\n\n border-width: 1px;\n border-style: solid;\n border-color: ",";\n ","\n box-sizing: border-box;\n\n text-decoration: none;\n & > span {\n ",";\n margin-left: ",";\n }\n\n &:hover {\n border-color: ",";\n background-color: ",";\n color: ",";\n text-decoration: none;\n\n .button-icon {\n fill: ",";\n }\n }\n\n &:active {\n ","\n }\n ","\n\n &:focus {\n outline: none;\n }\n\n .button-icon {\n height: ",";\n width: ",";\n fill: ",";\n }\n\n .button-icon__color {\n fill: ",";\n }\n .ntd-spinner {\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n }\n\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n }\n"],["\n && {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n ",";\n\n font-weight: ",";\n font-size: ",";\n line-height: ",";\n white-space: nowrap;\n word-break: keep-all;\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n ","\n ","\n transition: all 150ms;\n\n background-color: ",";\n color: ",";\n\n border-width: 1px;\n border-style: solid;\n border-color: ",";\n ","\n box-sizing: border-box;\n\n text-decoration: none;\n & > span {\n ",";\n margin-left: ",";\n }\n\n &:hover {\n border-color: ",";\n background-color: ",";\n color: ",";\n text-decoration: none;\n\n .button-icon {\n fill: ",";\n }\n }\n\n &:active {\n ","\n }\n ","\n\n &:focus {\n outline: none;\n }\n\n .button-icon {\n height: ",";\n width: ",";\n fill: ",";\n }\n\n .button-icon__color {\n fill: ",";\n }\n .ntd-spinner {\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n }\n\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n }\n"])),oe.Z,(function(e){return e.strong?700:500}),(function(e){var t=e.small;return e.tiny?"10px":t?"12px":"14px"}),(0,ee.sq)(2),(function(e){return e.disabled?.4:1}),(function(e){return e.disabled?"none":"auto"}),te.Z,ne.Z,(function(e){return e.colors.bg(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.border(e)}),re.Z,ie.Z,(function(e){return e.hasIcon?"2px":"0px"}),(function(e){return e.colors.borderHover(e)}),(function(e){return e.colors.bgHover(e)}),(function(e){return e.colors.colorHover(e)}),(function(e){return e.colors.colorHover(e)}),de,(function(e){return e.active&&"\n ".concat(de,"\n ")}),(0,ee.sq)(2),(0,ee.sq)(2),(function(e){return e.colors.color(e)}),(function(e){return e.colors.iconColor(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.color(e)})),xe=n(11597),_e=n(54922),Se=n(32855),Oe=function(){return Oe=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Oe.apply(this,arguments)},Ce=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ee=(0,i.forwardRef)((function(e,t){var n=e.label,r=e.icon,o=e.flavour,a=e.isLoading,s=e.loadingLabel,u=e.onClick,l=e.textTransform,c=void 0===l?"firstLetter":l,f=e.iconColor,d=e.iconSize,p=e.iconWidth,h=e.iconHeight,g=e.children,v=void 0===g?n:g,m=Ce(e,["label","icon","flavour","isLoading","loadingLabel","onClick","textTransform","iconColor","iconSize","iconWidth","iconHeight","children"]);return i.createElement(we,Oe({flavour:o,textTransform:c,hasIcon:!!r||a,onClick:a?void 0:u,ref:t,iconColor:f},m),a&&i.createElement(_e.LoaderIcon,{className:"button-icon"}),r&&!a&&i.createElement(Se.default,{justifyContent:"center",alignItems:"center",width:"auto",height:"100%"},i.createElement(xe.JO,{size:d,className:f?"button-icon__color":"button-icon",title:r,name:r,width:p,height:h})),!!v&&i.createElement("span",null,a&&s||v))}));Ee.defaultProps={onClick:function(){},icon:null};var Ae,Me,ke,Pe,Re,Te=n(65588),Ie=n(24724),Be=n(11557),De=n(62928),je=n(88719),Le=0,Ze=function(){return--Le},Ne=function(e){return(0,i.useMemo)((function(){return e||Ze()}),[])},Fe={top:{bottom:"top"},left:{right:"left"},right:{left:"right"},bottom:{top:"bottom"}},He=n(90833),Ve=function(){return Ve=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ve.apply(this,arguments)},ze=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ue={right:1,bottom:2,left:3},Ge=function(e){var t=e.children,n=e.align,r=e.margin,o=void 0===r?[1]:r,a=e.background,s=void 0===a?"tooltip":a,u=ze(e,["children","align","margin","background"]);return i.createElement(Se.default,{column:"top"===n,columnReverse:"bottom"===n,rowReverse:"right"===n,margin:o},i.createElement(Se.default,Ve({background:s,padding:[1,2],round:!0,column:!0},u),"string"===typeof t?i.createElement(He.Text,{color:"bright"},t):t),n&&i.createElement(xe.JO,{name:"triangle",alignSelf:"center",color:s,rotate:Ue[n],height:"8px",width:"8px","data-testid":"drop-arrow"}))},We=function(){return We=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},We.apply(this,arguments)},$e=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},qe=function(e){return"function"===typeof e?e():e},Ye=(0,i.forwardRef)((function(e,t){var n=e.plain,r=e.open,o=void 0!==r&&r,a=e.align,s=void 0===a?"top":a,u=e.dropProps,l=e.content,c=e.animation,f=e.disabled,d=e.zIndex,p=void 0===d?80:d,h=e.children,g=e.allowHoverOnTooltip,v=$e(e,["plain","open","align","dropProps","content","animation","disabled","zIndex","children","allowHoverOnTooltip"]),m=Ne(v["aria-describedby"]),y=(0,De.Z)(!1),b=y[0],w=y[2],x=y[3],_=(0,Be.default)(t),S=_[0],O=_[1],C=(0,je.Z)(h,O,We(We({onMouseEnter:w,onMouseLeave:g?function(){return setTimeout((function(){E.current||x()}),300)}:x,onFocus:w,onBlur:x},b&&{"aria-describedby":m}),v)),E=(0,i.useRef)(!1);return(0,i.useLayoutEffect)((function(){S.current&&o&&w()}),[]),l?i.createElement(i.Fragment,null,C,b&&S.current&&!f&&i.createElement(Ie.Z,We({noEvents:!g,align:(null===u||void 0===u?void 0:u.align)||Fe[s],hideShadow:!0,id:m,onClickOutside:x,onMouseEnter:function(){return E.current=!0},onMouseLeave:function(){E.current=!1,x()},target:S.current},u,{animation:c,onEsc:x,zIndex:p}),n?qe(l):i.createElement(Ge,{align:s},qe(l)))):h})),Xe=Ye,Ke=function(){return Ke=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ke.apply(this,arguments)},Je=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Qe=["neutral","black"],et=function(e){var t=e.content;return i.createElement(Se.default,{padding:[1.5,2],margin:[2],background:Qe,round:1,alignSelf:"start"},i.createElement(He.TextSmall,{color:"bright"},t))},tt=(0,i.forwardRef)((function(e,t){var n=e.iconColor,r=void 0===n?"nodeBadgeColor":n,o=e.flavour,a=void 0===o?"borderless":o,s=e.icon,u=e.disabled,l=e.onClick,c=e.width,f=void 0===c?"20px":c,d=e.height,p=void 0===d?"20px":d,h=e.iconSize,g=e.tooltip,v=void 0===g?"":g,m=Je(e,["iconColor","flavour","icon","disabled","onClick","width","height","iconSize","tooltip"]),y="default"===a;return i.createElement(Xe,{plain:!0,animation:!0,content:v&&i.createElement(et,{content:v})},i.createElement(Te.Z,Ke({cursor:"pointer",iconWidth:f,iconHeight:p,onClick:l,as:Ee,flavour:a,disabled:u,icon:s,iconColor:y?"white":r,iconSize:h,neutral:!y,ref:t},m)))})),nt=tt,rt=function(){return rt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},rt.apply(this,arguments)},ot=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},it=function(e,t){var n=0==e,r=e==t-1;return{groupFirst:n,groupLast:r,groupMiddle:!n&&!r}},at=function(e){var t=e.children,n=i.Children.toArray(t).length;return i.createElement(i.Fragment,null,i.Children.map(t,(function(e,t){if((0,i.isValidElement)(e)){var r=it(t,n);return(0,i.cloneElement)(e,r)}return e})))},st=function(e){var t=e.items,n=e.checked,r=e.onChange;return i.createElement(i.Fragment,null,t.map((function(e,o){var a=e.label,s=e.value,u=it(o,t.length);return i.createElement(Ee,rt({key:s,label:a,onClick:function(){return r(s)}},n!=s?{flavour:"hollow"}:{},u))})))},ut=function(e){var t=e.items,n=e.checked,r=e.onChange,o=e.children,a=ot(e,["items","checked","onChange","children"]);return i.createElement(Se.default,rt({alignItems:"center"},a),(null===t||void 0===t?void 0:t.length)?i.createElement(st,{items:t,checked:n,onChange:r}):i.createElement(at,null,o))},lt=n(90509),ct=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},ft=s.default.div(Ae||(Ae=ct(["\n display: flex;\n flex-direction: ",";\n top: 0;\n bottom: 0;\n height: 100vh;\n width: 100vw;\n"],["\n display: flex;\n flex-direction: ",";\n top: 0;\n bottom: 0;\n height: 100vh;\n width: 100vw;\n"])),(function(e){return e.isRight?"row-reverse":"row"})),dt=s.default.aside(Me||(Me=ct(["\n overflow: hidden;\n top: 0;\n bottom: 0;\n height: 100%;\n width: 50%;\n"],["\n overflow: hidden;\n top: 0;\n bottom: 0;\n height: 100%;\n width: 50%;\n"]))),pt=s.default.aside(ke||(ke=ct(["\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0; // needed for dashboard where body has some left-padding\n height: 100vh;\n width: 100vw;\n min-width: 100vw;\n max-width: 100vw;\n background-color: black;\n opacity: 0.3;\n z-index: 15;\n"],["\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0; // needed for dashboard where body has some left-padding\n height: 100vh;\n width: 100vw;\n min-width: 100vw;\n max-width: 100vw;\n background-color: black;\n opacity: 0.3;\n z-index: 15;\n"]))),ht=s.default.aside(Pe||(Pe=ct(["\n position: fixed;\n overflow: hidden;\n top: 0;\n ",": 0;\n bottom: 0;\n height: 100vh;\n width: 50vw;\n box-shadow: 0px ","px 68px rgba(0, 0, 0, 0.288);\n"],["\n position: fixed;\n overflow: hidden;\n top: 0;\n ",": 0;\n bottom: 0;\n height: 100vh;\n width: 50vw;\n box-shadow: 0px ","px 68px rgba(0, 0, 0, 0.288);\n"])),(0,lt.propOrElse)(["side"],"left"),(0,lt.propOrElse)(["shadowSide"],!0)?2:-2),gt=s.default.div(Re||(Re=ct(["\n display: flex;\n width: 50%;\n background-color: ",";\n box-shadow: inset 0px ","px 68px\n rgba(0, 0, 0, 0.288);\n"],["\n display: flex;\n width: 50%;\n background-color: ",";\n box-shadow: inset 0px ","px 68px\n rgba(0, 0, 0, 0.288);\n"])),(0,lt.getColor)("primary"),(0,lt.propOrElse)(["shadowSide"],!0)?2:-2),vt=function(e){var t=e.info,n=e.children,r=e.className,o=e.right,a=void 0!==o&&o;return i.createElement(ft,{isRight:a},i.createElement(dt,{className:r,shadowSide:a},n),i.createElement(gt,null,t))},mt=n(73935),yt=n(45697),bt=n.n(yt),wt=!("undefined"===typeof window||!window.document||!window.document.createElement),xt=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var _t=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),xt(t,[{key:"componentWillUnmount",value:function(){this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null}},{key:"render",value:function(){return wt?(this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode)),mt.createPortal(this.props.children,this.props.node||this.defaultNode)):null}}]),t}(i.Component);_t.propTypes={children:bt().node.isRequired,node:bt().any};var St=_t,Ot=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var Ct=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),Ot(t,[{key:"componentDidMount",value:function(){this.renderPortal()}},{key:"componentDidUpdate",value:function(e){this.renderPortal()}},{key:"componentWillUnmount",value:function(){mt.unmountComponentAtNode(this.defaultNode||this.props.node),this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null,this.portal=null}},{key:"renderPortal",value:function(e){this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode));var t=this.props.children;"function"===typeof this.props.children.type&&(t=i.cloneElement(this.props.children)),this.portal=mt.unstable_renderSubtreeIntoContainer(this,t,this.props.node||this.defaultNode)}},{key:"render",value:function(){return null}}]),t}(i.Component),Et=Ct;Ct.propTypes={children:bt().node.isRequired,node:bt().any};var At=mt.createPortal?St:Et,Mt=function(){return Mt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Mt.apply(this,arguments)},kt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Pt=function(e){var t=e.children,n=e.className,r=e.closeOnEsc,o=void 0!==r&&r,a=e.closeOnOverlayClick,s=void 0!==a&&a,u=e.onClose,l=void 0===u?function(){}:u,c=e.right,f=void 0!==c&&c,d=e.Wrapper,p=void 0===d?i.Fragment:d,h=kt(e,["children","className","closeOnEsc","closeOnOverlayClick","onClose","right","Wrapper"]);(0,i.useEffect)((function(){var e=function(e){27===e.keyCode&&o&&l()};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[o,l]);return i.createElement(At,null,i.createElement(pt,{onClick:function(){s&&l()}}),i.createElement(p,null,i.createElement(ht,Mt({className:n,shadowSide:f,side:f?"right":"left"},h),t)))},Rt={mobileSmall:"320px",mobile:"425px",tablet:"768px",laptop:"1024px",laptopLarge:"1200px",desktop:"1440px",desktopLarge:"2560px"},Tt={mobileSmall:"(min-width: ".concat(Rt.mobileSmall,")"),mobile:"(min-width: ".concat(Rt.mobile,")"),tablet:"(min-width: ".concat(Rt.tablet,")"),laptop:"(min-width: ".concat(Rt.laptop,")"),laptopLarge:"(min-width: ".concat(Rt.laptopLarge,")"),desktop:"(min-width: ".concat(Rt.desktop,")"),desktopLarge:"(min-width: ".concat(Rt.desktopLarge,")")},It=function(e){var t=e.defaultColor,n=void 0===t?"inputBorder":t,r=e.disabled,o=void 0===r?"inputBorder":r,i=e.error,a=void 0===i?"error":i,s=e.success;return{default:n,disabled:o,error:a,success:void 0===s?"success":s}},Bt=function(e){var t=e.disabled,n=e.success,r=e.error,o=e.focused,a=n?"success":r?"error":t?"disabled":"default";return{styles:{styledCheckbox:(0,i.useMemo)((function(){return{alignItems:"center",background:t?"mainBackgroundDisabled":"mainBackground",border:{size:"1px",type:"solid",color:o?It({defaultColor:"inputBorderFocus"})[a]:It({})[a],side:"all"},height:"inherit",justifyContent:"center",round:!0,width:"inherit",_focus:{border:{color:It({defaultColor:"controlFocused"})[a],side:"all",size:"1px",type:"solid"},boxShadow:{color:It({defaultColor:"controlFocused"})[a],size:"0 0 0 1px"}}}}),[a,o])}}};function Dt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){e.forEach((function(e){return function(e,t){if(null!=e)if(function(e){return"function"===typeof e}(e))e(t);else try{e.current=t}catch(n){throw new Error("Cannot assign value '".concat(t,"' to ref '").concat(e,"'"))}}(e,t)}))}}var jt,Lt,Zt,Nt,Ft,Ht,Vt=function(){return Vt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Vt.apply(this,arguments)},zt=function(e){var t=e.onChange,n=e.indeterminate,r=e.disabled,o=e.checked,a=(0,De.Z)(),s=a[0],u=a[2],l=a[3],c=(0,i.useRef)(null),f=(0,i.useCallback)((function(e){r?e.preventDefault():null===t||void 0===t||t(e)}),[r,t]);return(0,i.useEffect)((function(){c.current&&(c.current.indeterminate=Boolean(n))}),[n]),{getCheckBoxProps:(0,i.useCallback)((function(){return{"data-focus":s?"":void 0,"data-disabled":r?"":void 0,indeterminate:n,checked:o}}),[s,r,o,n]),getInputProps:(0,i.useCallback)((function(e,t){return void 0===e&&(e=null),Vt(Vt({},t),{type:"checkbox",ref:Dt(c,e),onChange:f,onFocus:u,onBlur:l,checked:o,disabled:r})}),[l,u,f,o,r]),state:{disabled:r,indeterminate:n,checked:o,isFocused:s}}},Ut=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Gt=function(){return Gt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Gt.apply(this,arguments)},Wt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},$t=(0,s.default)(Te.Z).attrs({height:"16px",width:"16px"})(jt||(jt=Ut(["\n box-sizing: border-box;\n"],["\n box-sizing: border-box;\n"]))),qt=(0,s.default)(xe.JO).attrs({height:"16px",width:"16px"})(Lt||(Lt=Ut(["\n flex-grow: 0;\n flex-shrink: 0;\n fill: ",";\n"],["\n flex-grow: 0;\n flex-shrink: 0;\n fill: ",";\n"])),(0,lt.getValidatedControlColor)("primary","accent")),Yt=s.default.input.attrs({type:"checkbox"})(Zt||(Zt=Ut(["\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n"],["\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n"]))),Xt=(0,s.default)(Se.default)(Nt||(Nt=Ut(["\n box-sizing: border-box;\n transition: all 150ms;\n\n "," {\n visibility: ",";\n"],["\n box-sizing: border-box;\n transition: all 150ms;\n\n "," {\n visibility: ",";\n"])),qt,(function(e){return e.indeterminate||e.checked?"visible":"hidden"})),Kt=(0,s.default)(Se.default).attrs((function(e){return Gt({as:"label",position:"relative",alignItems:"center"},e)}))(Ft||(Ft=Ut(["\n cursor: ",";\n"],["\n cursor: ",";\n"])),(function(e){return e.disabled?"auto":"pointer"})),Jt=s.default.span(Ht||(Ht=Ut(["\n ",";\n ",";\n"],["\n ",";\n ",";\n"])),(function(e){var t=e.right,n=Wt(e,["right"]);return t?"margin-left: ".concat((0,lt.getSizeUnit)(n),"px;"):"margin-right: ".concat((0,lt.getSizeUnit)(n),"px;")}),(function(e){return e.disabled&&"opacity: 0.4;"})),Qt=function(){return Qt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Qt.apply(this,arguments)},en=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},tn=(0,i.forwardRef)((function(e,t){var n=e.alignSelf,r=e.checked,o=e.className,a=e["data-testid"],s=e.disabled,u=e.iconProps,l=e.indeterminate,c=e.Label,f=e.label,d=e.labelProps,p=e.labelPosition,h=e.margin,g=en(e,["alignSelf","checked","className","data-testid","disabled","iconProps","indeterminate","Label","label","labelProps","labelPosition","margin"]),v=Bt({disabled:s}).styles,m=zt(Qt({checked:r,disabled:s,indeterminate:l},g)),y=m.getInputProps,b=m.getCheckBoxProps;return i.createElement(Kt,Qt({alignSelf:n,className:o,"data-testid":a,disabled:s,margin:h},d),f&&"left"===p&&i.createElement(Jt,{as:c,disabled:s,left:!0},f),i.createElement($t,null,i.createElement(Yt,Qt({"data-testid":"checkbox-input"},y(t,g))),i.createElement(Xt,Qt({"data-testid":"styled-checkbox"},v.styledCheckbox,b()),i.createElement(qt,Qt({disabled:s,name:l?"checkmark_partial_s":"checkmark_s"},u)))),f&&"right"===p&&i.createElement(Jt,{as:c,disabled:s,right:!0},f))}));tn.defaultProps={Label:He.Text,labelPosition:"right"};var nn,rn,on=function(e,t){var n=e.every((function(e){return e})),r=!n&&e.includes(!1)&&e.includes(!0),o=(0,i.useCallback)((function(){n?t.forEach((function(e){return e(!1)})):t.forEach((function(e){return e(!0)}))}),[n,t]);return[n,r,o]},an=n(49713),sn=n(11275),un=n(79521),ln=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},cn=s.default.table(nn||(nn=ln(["\n width: 100%;\n height: 100%;\n border-collapse: ",";\n position: ",";\n"],["\n width: 100%;\n height: 100%;\n border-collapse: ",";\n position: ",";\n"])),(function(e){return e.hasStickyHeader?"separate":"collapse"}),(function(e){return e.hasStickyHeader&&"relative"})),fn=s.default.div(rn||(rn=ln(["\n display: ",";\n border-spacing: 0;\n"],["\n display: ",";\n border-spacing: 0;\n"])),(function(e){return e.hideHeader?"block":"inline-block"})),dn=function(){return dn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},dn.apply(this,arguments)},pn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},hn={mainContainer:{block:function(e){var t=e.children,n=e.className,r=e.callbackRef,o=pn(e,["children","className","callbackRef"]);return i.createElement(fn,dn({ref:r,className:"table-container ".concat(n||"")},o),t)},table:function(e){var t=e.children,n=e.callbackRef,r=pn(e,["children","callbackRef"]);return i.createElement(cn,dn({ref:n},r),t)}},tbody:{block:function(e){var t=e.children,n=pn(e,["children"]);return i.createElement("div",dn({className:"table-body"},n),t)},table:function(e){var t=e.children,n=pn(e,["children"]);return i.createElement("tbody",dn({},n),t)}}},gn=function(e){var t=e.children,n=e.layoutType,r=pn(e,["children","layoutType"]);return(0,hn.mainContainer[n])(dn({children:t},r))},vn=function(e){var t=e.children,n=e.layoutType,r=pn(e,["children","layoutType"]);return(0,hn.tbody[n])(dn({children:t},r))},mn=(0,i.createContext)({}),yn=(0,i.createContext)({});yn.displayName="StickyListContext";var bn,wn,xn,_n,Sn,On,Cn=mn.Provider,En=(mn.Consumer,yn.Provider),An=yn.Consumer,Mn=n(55101),kn=function(){return kn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},kn.apply(this,arguments)},Pn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Rn=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},Tn=function(e,t){var n=e.reduce((function(e,n){var r="".concat(n.values[t]);return e[r]=Array.isArray(e[r])?e[r]:[],e[r].push(n),e}),{});return n},In=function(e,t){return e.priority-t.priority},Bn=function(e,t,n){return(0,Mn.ETc)(["groupsOrder",t,n],e)||(0,Mn.ETc)(["prioritySettings","unprioritizedGroupsPlacement"],e)||999999},Dn=function(e,t){return(0,Mn.zGw)((function(e){return e.filter((function(e){return e.subRows.length}))}),(0,Mn.UID)((function(e){return kn(kn({},e),{priority:e.priority||Bn(t,e.groupByID,e.groupByVal)})})),(0,Mn.DYV)(In))(e)},jn=function(e){return e.reduce((function(e,t){var n=t.subRows,r=Pn(t,["subRows"]);return n.length>0?(e.push(kn({subRows:[],isVirtualGroupHeader:!0},r)),(0,Mn.zoF)(e,n)):(e.push(t),e)}),[])},Ln=function(e){var t=e.index,n=e.style,r=e.rows,o=e.verticalGutter,i=0!==t?r[t-1]:{},a=r[t].isVirtualGroupHeader||i.isVirtualGroupHeader,s=a?n.top:n.top+o,u=a?n.height:n.height-o;return kn(kn({},n),{top:s,height:u})},Zn=function(e){var t=e.selectedFlatRows,n=e.isGrouped,r=e.itemIsDisabled;return t.reduce((function(e,t){return n&&t.isGrouped||r(t.original)||e.push(t.original),e}),[])},Nn=function(e){return e.reduce((function(e,t){return t.column.InnerRow?function(e,t){var n;return kn(kn({},e),((n={})[t.column.id]=kn(kn({},Object.prototype.hasOwnProperty.call(e,t.column.id)&&e[t.column.id]),{parentRow:t}),n))}(e,t):t.column.parentRow?function(e,t){var n;return kn(kn({},e),((n={})[t.column.parentRow]=kn(kn({},Object.prototype.hasOwnProperty.call(e,t.column.parentRow)&&e[t.column.parentRow]),{children:Object.prototype.hasOwnProperty.call(e[t.column.parentRow],"children")?Rn(Rn([],e[t.column.parentRow].children,!0),[t],!1):[t]}),n))}(e,t):e}),{})},Fn=function(){return Fn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Fn.apply(this,arguments)},Hn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Vn=function(e){var t=e.cell,n=e.selectedRowIds,r=e.customProps,o=Hn(e,["cell","selectedRowIds","customProps"]);return"table"===(0,i.useContext)(mn)?i.createElement("td",Fn({},o),t.render("Cell",Fn({selectedRowIds:n},r))):i.createElement("div",Fn({className:"table-cell"},o),t.render("Cell",Fn({selectedRowIds:n},r)))},zn=function(){return zn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},zn.apply(this,arguments)},Un=function(e){var t=e.row,n=e.children,r=e.selectedRowIds,o=e.customProps;return t.render("InnerRow",zn({selectedRowIds:r,children:n},o))},Gn=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Wn=s.default.tr(bn||(bn=Gn(["\n cursor: ",";\n position: ",";\n"],["\n cursor: ",";\n position: ",";\n"])),(function(e){return e.onClick?"pointer":"auto"}),(function(e){return e.hasStickyHeader?"static":"relative"})),$n=s.default.div(wn||(wn=Gn(["\n position: relative;\n"],["\n position: relative;\n"]))),qn=function(){return qn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},qn.apply(this,arguments)},Yn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Xn={row:{block:function(e){var t=e.children,n=Yn(e,["children"]);return i.createElement($n,qn({className:"table-row"},n),t)},table:function(e){var t=e.children,n=Yn(e,["children"]);return i.createElement(Wn,qn({},n),t)}},group:{}},Kn=function(e){var t=e.children,n=e.layoutType,r=Yn(e,["children","layoutType"]);return(0,Xn.row[n])(qn({children:t},r))},Jn=function(e){var t=e.row,n=e.layoutType,r=e.style,o=t.getRowProps();return"table"===n?i.createElement("tr",qn({title:"group-head"},o,{style:r}),i.createElement("td",{colSpan:t.cells.length},t.groupByVal)):i.createElement("div",qn({className:"group-head"},o,{style:r}),t.groupByVal)},Qn=function(e){var t=e.row,n=e.prepareRow,r=e.selectedRowIds,o=e.onRowClick,a=e.renderGroupHead,s=e.canToggleExpand,u=e.customProps,l=e.style,c=(0,i.useContext)(mn),f=t.subRows,d=t.isVirtualGroupHeader,p=(0,i.useMemo)((function(){return Nn(t.cells)}),[t.cells]),h=(0,i.useMemo)((function(){return o?function(e){o(t,e)}:o}),[o,t]),g=function(e){return e.map((function(e){var t=e.getCellProps(),n=t.key,o=Yn(t,["key"]);return i.createElement(Vn,qn({key:n,cell:e,selectedRowIds:r},o,{customProps:u}))}))};if(d||f.length>0)return a?i.createElement(i.Fragment,null,a({row:t,layoutType:c,prepareRow:n,selectedRowIds:r,customProps:u,style:l})):i.createElement(Jn,{row:t,layoutType:c,style:l});var v,m=u.hasStickyHeader;return i.createElement(Kn,qn({layoutType:c,hasStickyHeader:m},h&&{onClick:h},t.getRowProps({style:l}),s&&t.getToggleRowExpandedProps()),Object.keys(p).length?(v=p,Object.values(v).map((function(e){return i.createElement(Un,{row:e.parentRow,customProps:u,key:e.parentRow,selectedRowIds:r},g(e.children||[]))}))):g(t.cells))},er=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},tr=s.default.thead(xn||(xn=er(["\n & > tr th {\n border-spacing: 0;\n border-bottom: 1px solid #aeb3b7;\n padding-bottom: 5px;\n text-align: left;\n }\n"],["\n & > tr th {\n border-spacing: 0;\n border-bottom: 1px solid #aeb3b7;\n padding-bottom: 5px;\n text-align: left;\n }\n"]))),nr=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},rr=function(){return rr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},rr.apply(this,arguments)},or=(0,s.default)(Se.default)(_n||(_n=nr(["\n &:hover {\n opacity: 0.7;\n }\n"],["\n &:hover {\n opacity: 0.7;\n }\n"]))),ir=s.default.th(On||(On=nr(["\n position: ",";\n ",";\n"],["\n position: ",";\n ",";\n"])),(function(e){return e.hasStickyHeader&&"relative"}),(function(e){var t=e.background,n=void 0===t?"mainBackground":t,r=e.hasStickyHeader,o=e.stickyTop,i=void 0===o?0:o;return r&&(0,s.css)(Sn||(Sn=nr(["\n position: sticky;\n top: ",";\n background: ",";\n z-index: 1;\n "],["\n position: sticky;\n top: ",";\n background: ",";\n z-index: 1;\n "])),i,(0,ee.Lq)(n))})),ar=function(e){var t=e.column,n=e.sortableBy,r=e.customProps,o=(0,i.useState)(!1),a=o[0],s=o[1],u=(0,i.useContext)(mn),l=t.id,c=t.getSortByToggleProps,f=t.getHeaderProps,d=t.render,p=t.isSorted,h=t.isSortedDesc,g=n.includes(l),v=g&&a,m=(0,i.useMemo)((function(){return g?c():{}}),[g]),y=r.hasStickyHeader,b=r.stickyTop;return"table"===u?i.createElement(ir,rr({hasStickyHeader:y,stickyTop:b},m,f(),{onMouseEnter:function(){return s(!0)},onMouseLeave:function(){return s(!1)}}),g?i.createElement(or,{alignItems:"center",justifyContent:"start",height:{min:6},gap:2},d("Header",rr({},r)),p?i.createElement(xe.JO,{name:"arrow_s_down",color:"text",width:"10",height:"10",rotate:h?null:2,"data-testid":"columnHhead-sortingIcon"}):v&&i.createElement(xe.JO,{name:"arrow_s_down",color:"text",width:"10",height:"10",rotate:2})):d("Header",rr({},r))):i.createElement("div",rr({},m,f(),{className:"column-head"}),d("Header",rr({},r)))},sr=function(){return sr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},sr.apply(this,arguments)},ur=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},lr={thead:{block:function(e){var t=e.children;return i.createElement("div",{className:"table-head"},t)},table:function(e){var t=e.children;return i.createElement(tr,null,t)}},headerGroup:{block:function(e){var t=e.children,n=ur(e,["children"]);return i.createElement("div",sr({className:"header-group"},n),t)},table:function(e){var t=e.children,n=ur(e,["children"]);return i.createElement("tr",sr({},n),t)}}},cr=function(e){var t=e.children,n=e.layoutType;return(0,lr.thead[n])({children:t})},fr=function(e){var t=e.children,n=e.layoutType,r=ur(e,["children","layoutType"]);return(0,lr.headerGroup[n])(sr({children:t},r))},dr=function(e){var t=e.headerGroups,n=e.sortableBy,r=e.customProps,o=(0,i.useContext)(mn);return i.createElement(cr,{layoutType:o},t.map((function(e){var t=e.getHeaderGroupProps(),a=t.key,s=ur(t,["key"]);return i.createElement(fr,sr({key:a},s,{layoutType:o}),e.headers.map((function(e){var t=e.getHeaderProps().key;return i.createElement(ar,{key:t,column:e,sortableBy:n,customProps:r})})))})))},pr=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},hr=[un.useGlobalFilter,un.useColumnOrder,un.useGroupBy,un.useSortBy,un.useExpanded,un.usePagination,un.useRowSelect],gr=pr(pr([],hr,!0),[un.useBlockLayout],!1),vr=function(){return vr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},vr.apply(this,arguments)},mr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},yr=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},br=function(){return!1},wr=function(e){var t=e.layoutType,n=e.dataTestId,r=e.getTableProps,o=e.getTableBodyProps,a=e.prepareRow,s=e.renderRowSubComponent,u=e.className,l=e.callbackRef,c=e.customProps,f=void 0===c?{}:c,d=e.headerGroups,p=e.sortableBy,h=e.tableRows,g=e.onRowClick,v=e.selectedRowIds,m=e.renderGroupHead,y=e.visibleColumns;return i.createElement(Cn,{value:t},i.createElement(gn,vr({"data-testid":n,layoutType:t},r(),{className:u,callbackRef:l,hasStickyHeader:f.hasStickyHeader,stickyTop:f.stickyTop}),i.createElement(dr,{headerGroups:d,sortableBy:p,customProps:f}),i.createElement(vn,vr({layoutType:t},o()),h.map((function(e){return a(e),i.createElement(i.Fragment,{key:e.id},i.createElement(Qn,{canToggleExpand:!!s,customProps:f,row:e,prepareRow:a,onRowClick:g,selectedRowIds:v,renderGroupHead:m}),e.isExpanded&&s?i.createElement("tr",null,i.createElement("td",{colSpan:y.length},s({row:e}))):null)})))))};function xr(e){var t=e.groupsOrderSettings,n=e.layoutType,r=void 0===n?"table":n,o=e.columns,a=e.data,s=e["data-testid"],u=e.sortableBy,l=void 0===u?[]:u,c=e.selectedItemsClb,f=e.toggleSelectedItemClb,d=e.itemIsDisabled,p=void 0===d?br:d,h=e.autoResetSelectedRows,g=void 0!==h&&h,v=e.autoResetSortBy,m=void 0!==v&&v,y=e.autoResetGroupBy,b=void 0!==y&&y,w=e.autoResetFilters,x=void 0!==w&&w,_=e.autoResetExpanded,S=void 0!==_&&_,O=e.withPagination,C=void 0!==O&&O,E=e.showTotalPages,A=void 0!==E&&E,M=e.controlledState,k=void 0===M?{}:M,P=e.renderGroupHead,R=e.initialState,T=void 0===R?{}:R,I=e.className,B=e.paginationContainerStyles,D=void 0===B?{}:B,j=e.callbackRef,L=e.groupByFn,Z=void 0===L?Tn:L,N=e.disableGlobalFilter,F=void 0!==N&&N,H=e.globalFilter,V=e.filterTypes,z=e.dataResultsCallback,U=e.renderRowSubComponent,G=e.onRowClick,W=e.onGoToPrevious,$=void 0===W?function(){}:W,q=e.onGoToNext,Y=void 0===q?function(){}:q,X=mr(e,["groupsOrderSettings","layoutType","columns","data","data-testid","sortableBy","selectedItemsClb","toggleSelectedItemClb","itemIsDisabled","autoResetSelectedRows","autoResetSortBy","autoResetGroupBy","autoResetFilters","autoResetExpanded","withPagination","showTotalPages","controlledState","renderGroupHead","initialState","className","paginationContainerStyles","callbackRef","groupByFn","disableGlobalFilter","globalFilter","filterTypes","dataResultsCallback","renderRowSubComponent","onRowClick","onGoToPrevious","onGoToNext"]),K=(0,i.useMemo)((function(){return k.columnOrder||o.map((function(e){return e.id}))}),[o,k.columnOrder]),J="block"===r?gr:hr,Q=un.useTable.apply(void 0,yr([{columns:o,data:a,initialState:T,autoResetSelectedRows:g,autoResetSortBy:m,autoResetGroupBy:b,autoResetFilters:x,autoResetExpanded:S,disableGlobalFilter:F,globalFilter:H,filterTypes:V,groupByFn:Z,useControlledState:function(e){return i.useMemo((function(){return vr(vr(vr({},e),k),{columnOrder:K})}),[e,k])},toggleSelectedItemClb:f,itemIsDisabled:p}],J,!1)),ee=Q.getTableProps,te=Q.getTableBodyProps,ne=Q.headerGroups,re=Q.rows,oe=Q.prepareRow,ie=Q.selectedFlatRows,ae=Q.isAllRowsSelected,se=Q.state,ue=se.selectedRowIds,le=se.groupBy,ce=se.pageIndex,fe=Q.toggleAllRowsExpanded,de=Q.isAllRowsExpanded,pe=Q.visibleColumns,he=Q.page,ge=Q.canPreviousPage,ve=Q.canNextPage,me=Q.nextPage,ye=Q.previousPage,be=Q.pageCount;(0,i.useEffect)((function(){if((0===ie.length||ae)&&c){var e=le.length>0,t=Zn({selectedFlatRows:ie,isGrouped:e,itemIsDisabled:p});c(t)}}),[ie,ae,c,le,p]),(0,i.useEffect)((function(){de||U||fe()}),[de,fe]);var we=(0,i.useMemo)((function(){return le.length>0&&t&&t.groupsOrder[le[0]]?Dn(re,t):re}),[le,t,re]),_e=(0,i.useMemo)((function(){return C?he:we}),[C,he,we]),Oe=C&&be>1,Ce=(0,i.useCallback)((function(){$(),ye()}),[ye,$]),Ee=(0,i.useCallback)((function(){Y(),me()}),[me,Y]);return(0,i.useEffect)((function(){if(z){var e=jn(we).filter((function(e){return!e.isVirtualGroupHeader}));z(e)}}),[we,z]),Oe?i.createElement(Se.default,vr({column:!0,justifyContent:"between",alignItems:"center",gap:1},D),i.createElement(wr,{layoutType:r,dataTestId:s,getTableProps:ee,getTableBodyProps:te,prepareRow:oe,renderRowSubComponent:U,className:I,callbackRef:j,customProps:X,headerGroups:ne,sortableBy:l,tableRows:_e,onRowClick:G,selectedRowIds:ue,renderGroupHead:P,visibleColumns:pe}),i.createElement(Se.default,{justifyContent:"between",alignItems:"center",gap:6,"data-testid":"table-pagination"},i.createElement(xe.JO,{name:"chevron_left",color:"text",cursor:"pointer",disabled:!ge,onClick:Ce}),i.createElement(He.Text,{color:"textDescription"},ce+1,A&&" / ".concat(be)),i.createElement(xe.JO,{name:"chevron_left",color:"text",cursor:"pointer",disabled:!ve,onClick:Ee,rotate:2}))):i.createElement(wr,{layoutType:r,dataTestId:s,getTableProps:ee,getTableBodyProps:te,prepareRow:oe,renderRowSubComponent:U,className:I,callbackRef:j,customProps:X,headerGroups:ne,sortableBy:l,tableRows:_e,onRowClick:G,selectedRowIds:ue,renderGroupHead:P,visibleColumns:pe})}var _r=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function Sr(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],o=t[n],!(r===o||_r(r)&&_r(o)))return!1;var r,o;return!0}var Or=function(e,t){var n;void 0===t&&(t=Sr);var r,o=[],i=!1;return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return i&&n===this&&t(a,o)||(r=e.apply(this,a),i=!0,n=this,o=a),r}},Cr="object"===typeof performance&&"function"===typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function Er(e){cancelAnimationFrame(e.id)}function Ar(e,t){var n=Cr();var r={id:requestAnimationFrame((function o(){Cr()-n>=t?e.call(null):r.id=requestAnimationFrame(o)}))};return r}var Mr=-1;function kr(e){if(void 0===e&&(e=!1),-1===Mr||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),Mr=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return Mr}var Pr=null;function Rr(e){if(void 0===e&&(e=!1),null===Pr||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?Pr="positive-descending":(t.scrollLeft=1,Pr=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),Pr}return Pr}var Tr=function(e,t){return e};function Ir(e){var t,n=e.getItemOffset,r=e.getEstimatedTotalSize,o=e.getItemSize,a=e.getOffsetForIndexAndAlignment,s=e.getStartIndexForOffset,c=e.getStopIndexForStartIndex,d=e.initInstanceProps,p=e.shouldResetStyleCacheOnItemSizeChange,h=e.validateProps;return t=function(e){function t(t){var r;return(r=e.call(this,t)||this)._instanceProps=d(r.props,(0,l.Z)(r)),r._outerRef=void 0,r._resetIsScrollingTimeoutId=null,r.state={instance:(0,l.Z)(r),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof r.props.initialScrollOffset?r.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},r._callOnItemsRendered=void 0,r._callOnItemsRendered=Or((function(e,t,n,o){return r.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:o})})),r._callOnScroll=void 0,r._callOnScroll=Or((function(e,t,n){return r.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})})),r._getItemStyle=void 0,r._getItemStyle=function(e){var t,i=r.props,a=i.direction,s=i.itemSize,u=i.layout,l=r._getItemStyleCache(p&&s,p&&u,p&&a);if(l.hasOwnProperty(e))t=l[e];else{var c=n(r.props,e,r._instanceProps),f=o(r.props,e,r._instanceProps),d="horizontal"===a||"horizontal"===u,h="rtl"===a,g=d?c:0;l[e]=t={position:"absolute",left:h?void 0:g,right:h?g:void 0,top:d?0:c,height:d?"100%":f,width:d?f:"100%"}}return t},r._getItemStyleCache=void 0,r._getItemStyleCache=Or((function(e,t,n){return{}})),r._onScrollHorizontal=function(e){var t=e.currentTarget,n=t.clientWidth,o=t.scrollLeft,i=t.scrollWidth;r.setState((function(e){if(e.scrollOffset===o)return null;var t=r.props.direction,a=o;if("rtl"===t)switch(Rr()){case"negative":a=-o;break;case"positive-descending":a=i-n-o}return a=Math.max(0,Math.min(a,i-n)),{isScrolling:!0,scrollDirection:e.scrollOffset<o?"forward":"backward",scrollOffset:a,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._onScrollVertical=function(e){var t=e.currentTarget,n=t.clientHeight,o=t.scrollHeight,i=t.scrollTop;r.setState((function(e){if(e.scrollOffset===i)return null;var t=Math.max(0,Math.min(i,o-n));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._outerRefSetter=function(e){var t=r.props.outerRef;r._outerRef=e,"function"===typeof t?t(e):null!=t&&"object"===typeof t&&t.hasOwnProperty("current")&&(t.current=e)},r._resetIsScrollingDebounced=function(){null!==r._resetIsScrollingTimeoutId&&Er(r._resetIsScrollingTimeoutId),r._resetIsScrollingTimeoutId=Ar(r._resetIsScrolling,150)},r._resetIsScrolling=function(){r._resetIsScrollingTimeoutId=null,r.setState({isScrolling:!1},(function(){r._getItemStyleCache(-1,null)}))},r}f(t,e),t.getDerivedStateFromProps=function(e,t){return Br(e,t),h(e),null};var g=t.prototype;return g.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}}),this._resetIsScrollingDebounced)},g.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props,r=n.itemCount,o=n.layout,i=this.state.scrollOffset;e=Math.max(0,Math.min(e,r-1));var s=0;if(this._outerRef){var u=this._outerRef;s="vertical"===o?u.scrollWidth>u.clientWidth?kr():0:u.scrollHeight>u.clientHeight?kr():0}this.scrollTo(a(this.props,e,t,i,this._instanceProps,s))},g.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,r=e.layout;if("number"===typeof n&&null!=this._outerRef){var o=this._outerRef;"horizontal"===t||"horizontal"===r?o.scrollLeft=n:o.scrollTop=n}this._callPropsCallbacks()},g.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,r=this.state,o=r.scrollOffset;if(r.scrollUpdateWasRequested&&null!=this._outerRef){var i=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(Rr()){case"negative":i.scrollLeft=-o;break;case"positive-ascending":i.scrollLeft=o;break;default:var a=i.clientWidth,s=i.scrollWidth;i.scrollLeft=s-a-o}else i.scrollLeft=o;else i.scrollTop=o}this._callPropsCallbacks()},g.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&Er(this._resetIsScrollingTimeoutId)},g.render=function(){var e=this.props,t=e.children,n=e.className,o=e.direction,a=e.height,s=e.innerRef,l=e.innerElementType,c=e.innerTagName,f=e.itemCount,d=e.itemData,p=e.itemKey,h=void 0===p?Tr:p,g=e.layout,v=e.outerElementType,m=e.outerTagName,y=e.style,b=e.useIsScrolling,w=e.width,x=this.state.isScrolling,_="horizontal"===o||"horizontal"===g,S=_?this._onScrollHorizontal:this._onScrollVertical,O=this._getRangeToRender(),C=O[0],E=O[1],A=[];if(f>0)for(var M=C;M<=E;M++)A.push((0,i.createElement)(t,{data:d,key:h(M,d),index:M,isScrolling:b?x:void 0,style:this._getItemStyle(M)}));var k=r(this.props,this._instanceProps);return(0,i.createElement)(v||m||"div",{className:n,onScroll:S,ref:this._outerRefSetter,style:(0,u.Z)({position:"relative",height:a,width:w,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},y)},(0,i.createElement)(l||c||"div",{children:A,ref:s,style:{height:_?"100%":k,pointerEvents:x?"none":void 0,width:_?k:"100%"}}))},g._callPropsCallbacks=function(){if("function"===typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],r=e[2],o=e[3];this._callOnItemsRendered(t,n,r,o)}if("function"===typeof this.props.onScroll){var i=this.state,a=i.scrollDirection,s=i.scrollOffset,u=i.scrollUpdateWasRequested;this._callOnScroll(a,s,u)}},g._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,r=this.state,o=r.isScrolling,i=r.scrollDirection,a=r.scrollOffset;if(0===t)return[0,0,0,0];var u=s(this.props,a,this._instanceProps),l=c(this.props,u,a,this._instanceProps),f=o&&"backward"!==i?1:Math.max(1,n),d=o&&"forward"!==i?1:Math.max(1,n);return[Math.max(0,u-f),Math.max(0,Math.min(t-1,l+d)),u,l]},t}(i.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var Br=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},Dr=function(e,t,n){var r=e.itemSize,o=n.itemMetadataMap,i=n.lastMeasuredIndex;if(t>i){var a=0;if(i>=0){var s=o[i];a=s.offset+s.size}for(var u=i+1;u<=t;u++){var l=r(u);o[u]={offset:a,size:l},a+=l}n.lastMeasuredIndex=t}return o[t]},jr=function(e,t,n,r,o){for(;r<=n;){var i=r+Math.floor((n-r)/2),a=Dr(e,i,t).offset;if(a===o)return i;a<o?r=i+1:a>o&&(n=i-1)}return r>0?r-1:0},Lr=function(e,t,n,r){for(var o=e.itemCount,i=1;n<o&&Dr(e,n,t).offset<r;)n+=i,i*=2;return jr(e,t,Math.min(n,o-1),Math.floor(n/2),r)},Zr=function(e,t){var n=e.itemCount,r=t.itemMetadataMap,o=t.estimatedItemSize,i=t.lastMeasuredIndex,a=0;if(i>=n&&(i=n-1),i>=0){var s=r[i];a=s.offset+s.size}return a+(n-i-1)*o},Nr=Ir({getItemOffset:function(e,t,n){return Dr(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:Zr,getOffsetForIndexAndAlignment:function(e,t,n,r,o,i){var a=e.direction,s=e.height,u=e.layout,l=e.width,c="horizontal"===a||"horizontal"===u?l:s,f=Dr(e,t,o),d=Zr(e,o),p=Math.max(0,Math.min(d-c,f.offset)),h=Math.max(0,f.offset-c+f.size+i);switch("smart"===n&&(n=r>=h-c&&r<=p+c?"auto":"center"),n){case"start":return p;case"end":return h;case"center":return Math.round(h+(p-h)/2);default:return r>=h&&r<=p?r:r<h?h:p}},getStartIndexForOffset:function(e,t,n){return function(e,t,n){var r=t.itemMetadataMap,o=t.lastMeasuredIndex;return(o>0?r[o].offset:0)>=n?jr(e,t,o,0,n):Lr(e,t,Math.max(0,o),n)}(e,n,t)},getStopIndexForStartIndex:function(e,t,n,r){for(var o=e.direction,i=e.height,a=e.itemCount,s=e.layout,u=e.width,l="horizontal"===o||"horizontal"===s?u:i,c=Dr(e,t,r),f=n+l,d=c.offset+c.size,p=t;p<a-1&&d<f;)p++,d+=Dr(e,p,r).size;return p},initInstanceProps:function(e,t){var n={itemMetadataMap:{},estimatedItemSize:e.estimatedItemSize||50,lastMeasuredIndex:-1};return t.resetAfterIndex=function(e,r){void 0===r&&(r=!0),n.lastMeasuredIndex=Math.min(n.lastMeasuredIndex,e-1),t._getItemStyleCache(-1),r&&t.forceUpdate()},n},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){e.itemSize}}),Fr=Ir({getItemOffset:function(e,t){return t*e.itemSize},getItemSize:function(e,t){return e.itemSize},getEstimatedTotalSize:function(e){var t=e.itemCount;return e.itemSize*t},getOffsetForIndexAndAlignment:function(e,t,n,r,o,i){var a=e.direction,s=e.height,u=e.itemCount,l=e.itemSize,c=e.layout,f=e.width,d="horizontal"===a||"horizontal"===c?f:s,p=Math.max(0,u*l-d),h=Math.min(p,t*l),g=Math.max(0,t*l-d+l+i);switch("smart"===n&&(n=r>=g-d&&r<=h+d?"auto":"center"),n){case"start":return h;case"end":return g;case"center":var v=Math.round(g+(h-g)/2);return v<Math.ceil(d/2)?0:v>p+Math.floor(d/2)?p:v;default:return r>=g&&r<=h?r:r<g?g:h}},getStartIndexForOffset:function(e,t){var n=e.itemCount,r=e.itemSize;return Math.max(0,Math.min(n-1,Math.floor(t/r)))},getStopIndexForStartIndex:function(e,t,n){var r=e.direction,o=e.height,i=e.itemCount,a=e.itemSize,s=e.layout,u=e.width,l=t*a,c="horizontal"===r||"horizontal"===s?u:o,f=Math.ceil((c+n-l)/a);return Math.max(0,Math.min(i-1,t+f-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){e.itemSize}});var Hr,Vr,zr=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Ur=(0,s.default)(Fr)(Hr||(Hr=zr(["\n ","\n"],["\n ","\n"])),sn.f1),Gr=(0,s.default)(Nr)(Vr||(Vr=zr(["\n ","\n"],["\n ","\n"])),sn.f1),Wr=function(){return Wr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Wr.apply(this,arguments)},$r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},qr=function(e){var t=e.data,n=e.index,r=e.style,o=t.ItemRenderer;return i.createElement(o,{index:n,style:r,data:t})},Yr=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.style,o=(r.width,$r(r,["width"]));$r(e,["children","style"]);return i.createElement(An,null,(function(e){var r=e.getTableProps,a=e.getTableBodyProps,s=e.headerGroups,u=e.hideHeader,l=e.sortableBy,c=e.className,f=e.customProps,d=e.layoutType;return i.createElement(gn,Wr({style:o,layoutType:d,hideHeader:u},r(),{className:c,callbackRef:t}),!u&&i.createElement(dr,{headerGroups:s,sortableBy:l,customProps:f}),i.createElement(vn,Wr({layoutType:d},a()),n))}))})),Xr=function(e){var t=e.children,n=e.getTableProps,r=e.getTableBodyProps,o=e.headerGroups,a=e.hideHeader,s=e.sortableBy,u=e.className,l=e.customProps,c=e.layoutType,f=e.variableSize,d=e.callbackRef,p=e.itemKey,h=e.orderedRows,g=$r(e,["children","getTableProps","getTableBodyProps","headerGroups","hideHeader","sortableBy","className","customProps","layoutType","variableSize","callbackRef","itemKey","orderedRows"]);return i.createElement(En,{value:{ItemRenderer:t,getTableProps:n,getTableBodyProps:r,headerGroups:o,hideHeader:a,sortableBy:s,className:u,customProps:l,layoutType:c}},f?i.createElement(Gr,Wr({itemData:{ItemRenderer:t,orderedRows:h},ref:d,itemKey:p},g),qr):i.createElement(Ur,Wr({itemData:{ItemRenderer:t,orderedRows:h},ref:d,itemKey:p},g),qr))};Xr.defaultProps={innerElementType:Yr};var Kr=function(){return Kr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Kr.apply(this,arguments)},Jr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Qr=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},eo=function(e){return String(e)},to=function(){return!1};function no(e){var t=e.groupsOrderSettings,n=e.layoutType,r=void 0===n?"table":n,o=e.columns,a=e.data,s=e.sortableBy,u=void 0===s?[]:s,l=e.selectedItemsClb,c=e.toggleSelectedItemClb,f=e.itemIsDisabled,d=void 0===f?to:f,p=e.autoResetSelectedRows,h=void 0!==p&&p,g=e.autoResetSortBy,v=void 0!==g&&g,m=e.autoResetGroupBy,y=void 0!==m&&m,b=e.autoResetFilters,w=void 0!==b&&b,x=e.autoResetExpanded,_=void 0!==x&&x,S=e.controlledState,O=void 0===S?{}:S,C=e.renderGroupHead,E=e.initialState,A=void 0===E?{}:E,M=e.className,k=e.hideHeader,P=void 0!==k&&k,R=e.groupByFn,T=void 0===R?Tn:R,I=e.disableGlobalFilter,B=void 0!==I&&I,D=e.globalFilter,j=e.filterTypes,L=e.virtualizedSettings,Z=L.width,N=L.height,F=L.variableSize,H=void 0!==F&&F,V=L.overscanCount,z=L.itemSize,U=L.verticalGutter,G=void 0===U?0:U,W=L.itemKey,$=void 0===W?eo:W,q=L.rendererHash,Y=L.innerRef,X=L.outerRef,K=L.onItemsRendered,J=L.onScroll,Q=L.useIsScrolling,ee=e.callbackRef,te=e.dataResultsCallback,ne=Jr(e,["groupsOrderSettings","layoutType","columns","data","sortableBy","selectedItemsClb","toggleSelectedItemClb","itemIsDisabled","autoResetSelectedRows","autoResetSortBy","autoResetGroupBy","autoResetFilters","autoResetExpanded","controlledState","renderGroupHead","initialState","className","hideHeader","groupByFn","disableGlobalFilter","globalFilter","filterTypes","virtualizedSettings","callbackRef","dataResultsCallback"]),re=(0,i.useMemo)((function(){return O.columnOrder||o.map((function(e){return e.id}))}),[o,O.columnOrder]),oe=(0,i.useMemo)((function(){return q||"stableFallback"}),[q]),ie="block"===r?gr:hr,ae=un.useTable.apply(void 0,Qr([{columns:o,data:a,initialState:A,autoResetSelectedRows:h,autoResetSortBy:v,autoResetGroupBy:y,autoResetFilters:w,disableGlobalFilter:B,globalFilter:D,filterTypes:j,autoResetExpanded:_,useControlledState:function(e){return i.useMemo((function(){return Kr(Kr(Kr({},e),O),{columnOrder:re})}),[e,O])},groupByFn:T,toggleSelectedItemClb:c,itemIsDisabled:d}],ie,!1)),se=ae.getTableProps,ue=ae.getTableBodyProps,le=ae.headerGroups,ce=ae.rows,fe=ae.prepareRow,de=ae.selectedFlatRows,pe=ae.isAllRowsSelected,he=ae.state,ge=he.selectedRowIds,ve=he.groupBy,me=ae.toggleAllRowsExpanded,ye=ae.isAllRowsExpanded;(0,i.useEffect)((function(){if((0===de.length||pe)&&l){var e=ve.length>0,t=Zn({selectedFlatRows:de,isGrouped:e,itemIsDisabled:d});l(t)}}),[de,pe,l,ve,d]),(0,i.useEffect)((function(){ye||me()}),[ye,me]);var be=(0,i.useMemo)((function(){return ve.length>0&&t&&t.groupsOrder[ve[0]]?jn(Dn(ce,t)):ce}),[ve,t,ce]),we=(0,i.useCallback)((function(e){return z(e,be)}),[z,be]),xe=H?we:z,_e=(0,i.useCallback)((function(e){var t=e.index,n=e.style,r=e.data,o=r.orderedRows[t];return fe(o),i.createElement(Qn,{key:o.id,style:Ln({index:t,style:n,verticalGutter:G,rows:r.orderedRows}),customProps:ne,row:o,prepareRow:fe,selectedRowIds:ge,renderGroupHead:C})}),[O,C,G,oe]),Se=(0,i.useCallback)((function(e){K&&K(e,be)}),[K,be]);return(0,i.useEffect)((function(){if(te){var e=be.filter((function(e){return!e.isVirtualGroupHeader}));te(e)}}),[be,te]),i.createElement(Cn,{value:r},i.createElement(Xr,{height:N,itemCount:be.length,itemSize:xe,width:Z,getTableProps:se,getTableBodyProps:ue,headerGroups:le,hideHeader:P,sortableBy:u,className:M,customProps:ne,layoutType:r,variableSize:H,overscanCount:V,callbackRef:ee,itemKey:$,orderedRows:be,innerRef:Y,outerRef:X,onItemsRendered:Se,onScroll:J,useIsScrolling:Q},_e))}var ro,oo,io,ao,so,uo=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},lo=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},co=s.default.div(ro||(ro=uo(["\n display: block;\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n"],["\n display: block;\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n"]))),fo=s.default.input.attrs({type:"checkbox"})(oo||(oo=uo(["\n display: none;\n"],["\n display: none;\n"]))),po=s.default.div(io||(io=uo(["\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n background: ",";\n border: 1px solid ",";\n border-radius: 100px;\n transition: all 150ms;\n\n display: block;\n position: relative;\n\n -webkit-tap-highlight-color: transparent;\n flex-shrink: 0;\n align-self: flex-start;\n cursor: pointer;\n pointer-events: ",';\n\n &:after {\n display: block;\n position: absolute;\n content: "";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n left: 5%;\n top: 50%;\n transform: translateY(-50%);\n transition: left 0.2s ease;\n background-color: ',";\n }\n\n ","\n\n ",":focus + & {\n ","\n }\n"],["\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n background: ",";\n border: 1px solid ",";\n border-radius: 100px;\n transition: all 150ms;\n\n display: block;\n position: relative;\n\n -webkit-tap-highlight-color: transparent;\n flex-shrink: 0;\n align-self: flex-start;\n cursor: pointer;\n pointer-events: ",';\n\n &:after {\n display: block;\n position: absolute;\n content: "";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n left: 5%;\n top: 50%;\n transform: translateY(-50%);\n transition: left 0.2s ease;\n background-color: ',";\n }\n\n ","\n\n ",":focus + & {\n ","\n }\n"])),(function(e){return e.disabled?(0,lt.getColor)("mainBackgroundDisabled"):(0,lt.getColor)("mainBackground")}),(0,lt.getColor)("border"),(function(e){return e.disabled?"none":"auto"}),(function(e){var t=e.disabled,n=e.colored,r=e.checked;return t?(0,lt.getColor)("border"):n?r?(0,lt.getColor)("primary"):(0,lt.getColor)("error"):(0,lt.getColor)("controlFocused")}),(function(e){return e.checked&&"\n &:after {\n left: 55%;\n }\n "}),fo,sn._Y),ho=s.default.label(ao||(ao=uo(["\n ","\n ","\n position: relative;\n cursor: pointer;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n"],["\n ","\n ","\n position: relative;\n cursor: pointer;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n"])),te.Z,oe.Z),go=s.default.span(so||(so=uo(["\n ","\n"],["\n ","\n"])),(function(e){var t=e.right,n=lo(e,["right"]);return t?"margin-left: ".concat((0,lt.getSizeUnit)(n),"px;"):"margin-right: ".concat((0,lt.getSizeUnit)(n),"px;")})),vo=function(){return vo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},vo.apply(this,arguments)},mo=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},yo=function(e){var t=e.checked,n=e.disabled,r=e.className,o=e.labelLeft,a=e.labelRight,s=e.Label,u=e.colored,l=e.margin,c=e.alignSelf,f=mo(e,["checked","disabled","className","labelLeft","labelRight","Label","colored","margin","alignSelf"]);return i.createElement(ho,{className:r,margin:l,alignSelf:c},o&&i.createElement(go,{as:s,left:!0},o),i.createElement(co,null,i.createElement(fo,vo({disabled:n,checked:t},f)),i.createElement(po,{checked:t,disabled:n,colored:u,role:"switch"})),a&&i.createElement(go,{as:s,right:!0},a))};yo.defaultProps={colored:!1,Label:He.Text};var bo,wo,xo,_o,So=n(11307),Oo=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Co=function(){return Co=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Co.apply(this,arguments)},Eo=(0,s.default)(Se.default).attrs((function(e){return Co({column:!0,flexWrap:!1},e)}))(bo||(bo=Oo([""],[""]))),Ao=(0,s.default)(Se.default).attrs((function(e){return Co({as:"nav",row:!0,flexWrap:!1,justifyContent:"start",alignItems:"center",padding:[0,.5],flex:!1,border:e.noDefaultBorder&&{side:"bottom",size:"1px",type:"solid",color:"borderSecondary"}},e)}))(wo||(wo=Oo([""],[""]))),Mo=(0,s.default)(Se.default)(xo||(xo=Oo(["\n white-space: nowrap;\n border-bottom: "," solid\n ",";\n box-sizing: border-box;\n\n min-width: ",";\n max-width: ",";\n height: ",";\n color: ",";\n font-weight: ",";\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n &:hover {\n border-bottom: "," solid ",";\n }\n\n & > span {\n font-weight: ",";\n }\n"],["\n white-space: nowrap;\n border-bottom: "," solid\n ",";\n box-sizing: border-box;\n\n min-width: ",";\n max-width: ",";\n height: ",";\n color: ",";\n font-weight: ",";\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n &:hover {\n border-bottom: "," solid ",";\n }\n\n & > span {\n font-weight: ",";\n }\n"])),(function(e){return e.small?"2px":"4px"}),(function(e){return e.active?(0,lt.getColor)("accent"):(0,lt.getColor)(["transparent","full"])}),(function(e){var t=e.minWidth;return null!==t&&void 0!==t?t:(0,lt.getSizeBy)(10)}),(function(e){var t=e.maxWidth;return null!==t&&void 0!==t?t:(0,lt.getSizeBy)(26)}),(function(e){return e.small?(0,lt.getSizeBy)(4):(0,lt.getSizeBy)(6)}),(0,lt.getColor)("text"),(function(e){return e.active?"bold":"normal"}),(function(e){return e.disabled?.4:1}),(function(e){return e.disabled?"none":"auto"}),(function(e){return e.small?"2px":"4px"}),(0,lt.getColor)("primary"),(function(e){return e.active?"bold":"normal"})),ko=(0,s.default)(Se.default)(_o||(_o=Oo(["\n white-space: nowrap;\n color: ",";\n padding: 4px 8px;\n background: ",";\n width: 100%;\n border-radius: 4px;\n cursor: ",";\n justify-content: flex-start;\n &:hover {\n background: ",";\n }\n"],["\n white-space: nowrap;\n color: ",";\n padding: 4px 8px;\n background: ",";\n width: 100%;\n border-radius: 4px;\n cursor: ",";\n justify-content: flex-start;\n &:hover {\n background: ",";\n }\n"])),(0,lt.getColor)("text"),(function(e){return e.active?(0,lt.getColor)("nodeBadgeBackground"):(0,lt.getColor)(["transparent","full"])}),(function(e){return e.active?"default":"pointer"}),(0,lt.getColor)("nodeBadgeBackground")),Po=function(){return Po=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Po.apply(this,arguments)},Ro=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},To=function(e){var t=e.index,n=e.isMenuItem,r=e.onChange,o=Ro(e,["index","isMenuItem","onChange"]),a=(0,i.useCallback)((function(){return r&&r(t||0)}),[t,r]),s=n?ko:Mo;return i.createElement(s,Po({justifyContent:"center",alignItems:"center",basis:"100%",onClick:o.disabled?void 0:a},o),o.label)},Io=function(){return Io=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Io.apply(this,arguments)},Bo=function(){return Bo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Bo.apply(this,arguments)},Do=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},jo=(0,i.forwardRef)((function(e,t){var n=e.className,r=e.onChange,o=e.selected,a=e.children,s=e.TabsHeader,u=void 0===s?i.Fragment:s,l=e.TabContent,c=void 0===l?i.Fragment:l,f=e.noDefaultBorder,d=e.tabsProps,p=Do(e,["className","onChange","selected","children","TabsHeader","TabContent","noDefaultBorder","tabsProps"]),h=function(e,t){void 0===e&&(e=0);var n=(0,i.useState)(t?e:0),r=n[0],o=n[1],a=(0,i.useCallback)((function(e){t?t(e):o(e)}),[t]);return(0,i.useEffect)((function(){o(e||0)}),[e]),[r,a]}(o,r),g=h[0],v=h[1],m=function(e,t,n){return(0,i.useMemo)((function(){var r=[],o=[],a=null,s=-1,u=!1;return i.Children.forEach(e,(function(e,l){var c=(null===e||void 0===e?void 0:e.props)||{};s<0&&!c.disabled&&(s=l);var f=t===r.length,d="".concat(l,"-").concat(c.label);e&&o.push(i.createElement(To,Io({key:d},c,{onChange:n,index:l,active:f}))),f&&(u=!!c.disabled,a=c.children),r.push(l)})),[o,a,s,u]}),[e,t,n])}(a,g,v),y=m[0],b=m[1],w=m[2],x=m[3];return(0,i.useEffect)((function(){x&&g!==w&&v(w)}),[g,w,x,v]),i.createElement(Eo,Bo({className:n},p),i.createElement(u,{ref:t},i.createElement(Ao,Bo({className:"tabs",noDefaultBorder:f},d),y)),i.createElement(c,null,b))})),Lo=n(66243),Zo=n(65390),No=function(){return No=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},No.apply(this,arguments)},Fo=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ho=function(e){return"function"===typeof e?e():e},Vo=(0,i.forwardRef)((function(e,t){var n=e.plain,r=e.open,o=void 0!==r&&r,a=e.align,s=void 0===a?"top":a,u=e.dropProps,l=e.content,c=e.animation,f=e.children,d=e.zIndex,p=void 0===d?70:d,h=Fo(e,["plain","open","align","dropProps","content","animation","children","zIndex"]),g=Ne(h["aria-describedby"]),v=(0,De.Z)(o),m=v[0],y=v[2],b=v[3],w=(0,i.useRef)(!1),x=(0,i.useRef)(!1),_=(0,i.useCallback)((function(){return requestAnimationFrame((function(){return!w.current&&!x.current&&b()}))}),[]),S=(0,Be.default)(t),O=S[0],C=S[1],E=(0,je.Z)(f,C,No(No({isOpen:m,onMouseOver:y,onMouseLeave:_,onFocus:y,onBlur:_},m&&{"aria-describedby":g}),h)),A=(0,i.useCallback)((function(){w.current=!0}),[]),M=(0,i.useCallback)((function(){w.current=!1,_()}),[]);return i.createElement(i.Fragment,null,E,m&&O.current&&i.createElement(Ie.Z,No({id:g,hideShadow:!0},u,{align:(null===u||void 0===u?void 0:u.align)||Fe[s],animation:c,onEsc:b,onMouseEnter:A,onMouseLeave:M,target:O.current,zIndex:p}),n?Ho(l):i.createElement(Ge,{align:s,background:["transparent","popover"],padding:[2,4]},Ho(l))))})),zo=Vo,Uo=n(47817),Go=n(51586),Wo=n(91970),$o=n(84309),qo=n(4528),Yo=n(51559),Xo=n(56872),Ko=n(63366),Jo=!1,Qo=i.createContext(null),ei="unmounted",ti="exited",ni="entering",ri="entered",oi="exiting",ii=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o=ti,r.appearStatus=ni):o=ri:o=t.unmountOnExit||t.mountOnEnter?ei:ti,r.state={status:o},r.nextCallback=null,r}f(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===ei?{status:ti}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==ni&&n!==ri&&(t=ni):n!==ni&&n!==ri||(t=oi)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===ni){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:mt.findDOMNode(this);n&&function(e){e.scrollTop}(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===ti&&this.setState({status:ei})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[mt.findDOMNode(this),r],i=o[0],a=o[1],s=this.getTimeouts(),u=r?s.appear:s.enter;!e&&!n||Jo?this.safeSetState({status:ri},(function(){t.props.onEntered(i)})):(this.props.onEnter(i,a),this.safeSetState({status:ni},(function(){t.props.onEntering(i,a),t.onTransitionEnd(u,(function(){t.safeSetState({status:ri},(function(){t.props.onEntered(i,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:mt.findDOMNode(this);t&&!Jo?(this.props.onExit(r),this.safeSetState({status:oi},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:ti},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:ti},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:mt.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],a=o[1];this.props.addEndListener(i,a)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===ei)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,Ko.Z)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return i.createElement(Qo.Provider,{value:null},"function"===typeof n?n(e,r):i.cloneElement(i.Children.only(n),r))},t}(i.Component);function ai(){}ii.contextType=Qo,ii.propTypes={},ii.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:ai,onEntering:ai,onEntered:ai,onExit:ai,onExiting:ai,onExited:ai},ii.UNMOUNTED=ei,ii.EXITED=ti,ii.ENTERING=ni,ii.ENTERED=ri,ii.EXITING=oi;var si,ui,li,ci,fi,di,pi,hi=ii,gi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},vi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},mi=function(){return mi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},mi.apply(this,arguments)},yi=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},bi=function(e){var t=e.in,n=e.as,r=e.toggle,o=e.speed,a=void 0===o?200:o,u=e.timing,l=void 0===u?"":u,c=e.transformOrigin,f=e.mount,d=e.children,p=yi(e,["in","as","toggle","speed","timing","transformOrigin","mount","children"]),h=(0,i.useMemo)((function(){return function(e){var t=e.toggle,n=e.timing,r=void 0===n?"":n,o=e.speed,i=void 0===o?200:o,a=e.transformOrigin,u=function(e){return(0,s.css)(si||(si=gi(["\n ","\n animation: "," ","ms ",";\n "],["\n ","\n animation: "," ","ms ",";\n "])),a&&"transform-origin: ".concat(a,";"),e,i,r)};return{entering:u((0,s.keyframes)(ui||(ui=gi(["from { "," }"],["from { "," }"])),t)),exiting:u((0,s.keyframes)(li||(li=gi(["to { "," }"],["to { "," }"])),t))}}({toggle:r,timing:l,speed:a,transformOrigin:c})}),[]),g=(0,i.useMemo)((function(){return n&&(0,s.default)(n)(ci||(ci=vi(["\n ","\n "],["\n ","\n "])),(function(e){return e.transitionStyling}))}),[]);return i.createElement(hi,{in:t,timeout:a,mountOnEnter:!f,unmountOnExit:!f},(function(e){var t=h[e];return g?i.createElement(g,mi({transitionStyling:t},p),d({transition:e,transitionStyling:t})):d({transition:e,transitionStyling:t})}))},wi=n(21794),xi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},_i=function(){return _i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},_i.apply(this,arguments)},Si=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Oi={vertical:"height",horizontal:"width"},Ci=(0,s.default)(Se.default).attrs({column:!0})(fi||(fi=xi(["\n transition: ",";\n ",";\n"],["\n transition: ",";\n ",";\n"])),(function(e){var t=e.duration,n=e.measurement;return"max-".concat(n," ").concat(t,"ms ease-out, opacity ").concat(t,"ms ease")}),(function(e){var t=e.measurement,n=e.maxDimension;return"max-".concat(t,": ").concat(n)})),Ei=(0,i.forwardRef)((function(e,t){var n=e.open,r=void 0!==n&&n,o=e.duration,a=void 0===o?150:o,s=e.children,u=e.direction,l=e.persist,c=void 0!==l&&l,f=Si(e,["open","duration","children","direction","persist"]),d=(0,i.useState)(r?"initial":0),p=d[0],h=d[1],g=(0,i.useState)(r),v=g[0],m=g[1],y=(0,Be.default)(t),b=y[0],w=y[1];(0,wi.Z)((function(){var e,t=requestAnimationFrame((function(){h(r?0:"".concat(b.current.scrollHeight,"px")),e=requestAnimationFrame((function(){h(r?"".concat(b.current.scrollHeight,"px"):0)}))}));r&&m(!0);var n=setTimeout((function(){return r?h("initial"):m(!1)}),a);return function(){cancelAnimationFrame(t),cancelAnimationFrame(e),clearTimeout(n)}}),[r]);var x=(0,i.useMemo)((function(){return(v||c)&&("function"===typeof s?s():s)}),[v,c,s]);return i.createElement(Ci,_i({open:r,maxDimension:p,measurement:Oi[u]||Oi.vertical,duration:a,ref:w,"data-testid":"collapsible",overflow:"initial"===p?"visible":"hidden"},f),x)})),Ai=(0,i.memo)(Ei),Mi=n(73809),ki=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Pi=function(){return Pi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Pi.apply(this,arguments)},Ri=(0,s.default)(He.Text).attrs({as:"a",target:"_blank"})(di||(di=ki(["\n &&& {\n text-decoration: none;\n color: ",";\n\n &:hover {\n color: ",";\n text-decoration: none;\n }\n }\n"],["\n &&& {\n text-decoration: none;\n color: ",";\n\n &:hover {\n color: ",";\n text-decoration: none;\n }\n }\n"])),(0,ee.Lq)("primary"),(0,ee.Lq)("accent")),Ti=function(e){var t=e.icon,n=e.title,r=e.content,o=e.url,a=e.children,s=e.testid,u=e.label,l=e.labelTransform,c=e.onClick;return i.createElement(Se.default,{width:"100%",column:!0,gap:2},i.createElement(Se.default,{gap:2,alignItems:"center"},i.createElement(xe.JO,{color:"text",name:t,width:"18px",height:"18px"}),i.createElement(He.H5,{margin:[0]},n)),i.createElement(Se.default,{column:!0,gap:4,padding:[0,2]},i.createElement(He.Text,null,r),i.createElement(Ee,Pi({width:"100%",onClick:c,label:u,"data-testid":s},l&&{textTransform:l},o&&{as:"a",target:"_blank",href:o})),a))},Ii={cloud:{documentationUrl:"https://learn.netdata.cloud/",issuesUrl:"https://github.com/netdata/netdata-cloud/issues/new?labels=bug&template=submig-a-bug-for-netdata-cloud.md&title=%5BBUG%5D",issuesLabel:"Let us know about any bugs you\u2019ve encountered in Netdata Cloud.",otherIssuesUrl:"https://github.com/netdata/netdata/issues/new?assignees=&labels=bug%2Cneeds+triage&template=BUG_REPORT.yml&title=%5BBug%5D%3A+",otherIssuesLabel:"Agent",communitySupportUrl:"https://www.netdata.cloud/community/"},agent:{documentationUrl:"https://learn.netdata.cloud/",issuesUrl:"https://github.com/netdata/netdata/issues/new?assignees=&labels=bug%2Cneeds+triage&template=BUG_REPORT.yml&title=%5BBug%5D%3A+",issuesLabel:"Let us know about any bugs you\u2019ve encountered in Netdata Agent.",otherIssuesUrl:"https://github.com/netdata/netdata-cloud/issues/new?labels=bug&template=submig-a-bug-for-netdata-cloud.md&title=%5BBUG%5D",otherIssuesLabel:"Cloud",communitySupportUrl:"https://www.netdata.cloud/community/"}},Bi=function(e){var t=e.app,n=e.onDashboardClick,r=e.onVisitDocumentClick,o=e.onOpenIssueClick,a=e.onOpenBugClick,s=e.onSupportClick,u=e.onGoToDemoClick,l=e.demoUrl,c=void 0===l?"https://app.netdata.cloud/spaces/netdata-demor":l,f=Ii[t]||Ii.cloud,d=f.documentationUrl,p=f.issuesUrl,h=f.issuesLabel,g=f.communitySupportUrl,v=f.otherIssuesUrl,m=f.otherIssuesLabel;return i.createElement(i.Fragment,null,"agent"===t&&i.createElement(i.Fragment,null,i.createElement(Ti,{icon:"dashboard",title:"Dashboard",content:"Learn how to interact with graphs using your mouse or touch interface.",testid:"dashboard-info",label:"Learn to use the Dashboard",onClick:n}),i.createElement(Se.default,{width:"100%",height:{min:"1px"},background:"disabled"})),i.createElement(Ti,{icon:"documentation",title:"Documentation",content:"View how-tos, reference docs, and tutorials to help you get the most out of Netdata Cloud.\n ",url:d,testid:"documentation-link",label:"Visit the docs",onClick:r}),i.createElement(Ti,{icon:"unknownError",title:"Report a Bug",content:h,url:p,testid:"documentation-report-bug-link",label:"Open a new Issue in GitHub",labelTransform:"none",onClick:o},i.createElement(He.Text,null,"Found a bug with the Netdata ",m,"?",i.createElement(Ri,{href:v,onClick:a},"Open an issue")," ","on GitHub")),i.createElement(Ti,{icon:"community",title:"Community",content:"If you need help or would like to contribute to Netdata, join our Community and ask questions, discuss topics, or propose feature requests.",url:g,testid:"documentation-community-support-link",label:"Join the Community",onClick:s}),i.createElement(Ti,{icon:"spaces_v2",title:"Public demo space",content:"Netdata has a public demo space where you can explore different monitoring use-cases. Jump into any that might interest you and put your hands-on our monitoring solution!",url:c,testid:"demo-link",label:"Go to demo",onClick:u}))},Di=function(){return Di=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Di.apply(this,arguments)},ji=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Li={border:{side:"top",color:"disabled"},padding:[6,0,0]},Zi=function(e){return i.createElement(Se.default,Di({overflow:{vertical:"auto"},padding:[6,4],gap:6,column:!0},e))},Ni=function(e){var t=e.title,n=e.children,r=e.topBorder,o=void 0===r||r,a=ji(e,["title","children","topBorder"]);return i.createElement(Se.default,Di({column:!0},o&&Li,a),i.createElement(Se.default,{margin:[0,0,2],gap:2},i.createElement(xe.JO,{name:"insights",color:"text",width:"18px",height:"18px"}),i.createElement(He.Text,{strong:!0},t)),"string"===typeof n?i.createElement(He.Text,null,n):n)},Fi=function(){return i.createElement(Zi,null,i.createElement(Ni,{title:"Mouse Over / Hover",topBorder:!1},i.createElement(He.Text,null,"Mouse over on a chart to show, at its legend, the values for the timestamp under the mouse (the chart will also highlight the point at the chart)."),i.createElement(He.Text,null,"All the other visible charts will also show and highlight their values for the same timestamp.")),i.createElement(Ni,{title:"Drag Chart Contents"},i.createElement(He.Text,null,"Drag the contents of a chart, by pressing the left mouse button and moving the mouse,"),i.createElement(He.Text,null,"All the charts will follow soon after you let the chart alone (this little delay is by design: it speeds up your browser and lets you focus on what you are exploring)."),i.createElement(He.Text,null,"Once a chart is panned, auto refreshing stops for all charts. To enable it again, double click a panned chart.")),i.createElement(Ni,{title:"Double Click"},"Double Click a chart to reset all the charts to their default auto-refreshing state."),i.createElement(Ni,{title:"SHIFT + Drag"},i.createElement(He.Text,null,"While pressing the ",i.createElement("b",null,"SHIFT")," key, press the left mouse button on the contents of a chart and move the mouse to select an area, to zoom in. The other charts will follow too. Zooming is performed in two phases:"),i.createElement(He.Text,{margin:[4,0,0]},"- The already loaded chart contents are zoomed (low resolution)"),i.createElement(He.Text,null,"- New data are transferred from the netdata server, to refresh the chart with possibly more detail."),i.createElement(He.Text,{margin:[4,0,0]},"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Ni,{title:"Highlight Timeframe"},i.createElement(He.Text,null,"While pressing the ",i.createElement("b",null,"ALT")," key, press the left mouse button on the contents of a chart and move the mouse to select an area. The selected are will be highlighted on all charts.")),i.createElement(Ni,{title:"SHIFT + Mouse Wheel"},i.createElement(He.Text,null,"While pressing the ",i.createElement("b",null,"SHIFT")," key and the mouse pointer is over the contents of a chart, scroll the mouse wheel to zoom in or out. This kind of zooming is aligned to center below the mouse pointer. The other charts will follow too."),i.createElement(He.Text,null,"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Ni,{title:"Legend Operations"},i.createElement(He.Text,null,"Click on the label or value of a dimension, will select / un-select this dimension."),i.createElement(He.Text,null,"You can press any of the ",i.createElement("b",null,"SHIFT")," or ",i.createElement("b",null,"CONTROL")," keys and then click on legend labels or values, to select / un-select multiple dimensions.")))},Hi=function(){return i.createElement(Zi,null,i.createElement(Ni,{title:"Single tap",topBorder:!1},i.createElement(He.Text,null,"Single Tap on the contents of a chart to show, at its legend, the values for the timestamp tapped (the chart will also highlight the point at the chart)."),i.createElement(He.Text,null,"All the other visible charts will also show and highlight their values for the same timestamp.")),i.createElement(Ni,{title:"Drag Chart Contents"},i.createElement(He.Text,null,"Touch and Drag the contents of a chart to pan it horizontally."),i.createElement(He.Text,null,"All the charts will follow soon after you let the chart alone (this little delay is by design: it speeds up your browser and lets you focus on what you are exploring)."),i.createElement(He.Text,null,"Once a chart is panned, auto refreshing stops for all charts. To enable it again, double tap a panned chart.")),i.createElement(Ni,{title:i.createElement(i.Fragment,null,i.createElement(He.Text,{strong:!0},"Zoom"),i.createElement(He.Text,{margin:[0,0,0,1]},"(does not work on firefox and IE/Edge)"))},i.createElement(He.Text,null,"With two fingers, zoom in or out."),i.createElement(He.Text,null,"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Ni,{title:"Double Tap"},"Tap on the label or value of a dimension, will select / un-select this dimension."))},Vi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},zi=(0,s.default)(jo)(pi||(pi=Vi(["\n width: 100%;\n\n .tabs > * {\n min-width: initial;\n max-width: initial;\n }\n"],["\n width: 100%;\n\n .tabs > * {\n min-width: initial;\n max-width: initial;\n }\n"]))),Ui=function(){return i.createElement(Se.default,{overflow:{vertical:"auto"},"data-testid":"dashboard"},i.createElement(zi,null,i.createElement(To,{label:"Using a Mouse"},i.createElement(Fi,null)),i.createElement(To,{label:"Using Touch"},i.createElement(Hi,null))))},Gi=n(78081),Wi=n.n(Gi),$i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function qi(e,t,n){const r=e.find((e=>e.field===t&&e.type===n));return r?r.values:[]}function Yi(e,t,n,r){return e.reduce(((e,o)=>{const{field:i,values:a,type:s}=o,u=$i(o,["field","values","type"]);if(i===t&&(!r||s===r)){const t=a.filter((e=>!Ki(e,n)));return t.length>0?e.concat(Object.assign({field:i,values:t,type:s},u)):e}return e.concat(o)}),[])}function Xi(e,t,n,r){const o=e.data,i=qi(t,n,r)||[];return Object.assign(Object.assign({},e),{data:o.map((e=>Object.assign(Object.assign({},e),{selected:i.some((t=>Ki(t,e.value)))})))})}function Ki(e,t){return!!(e&&e.name&&t&&t.name&&e.name===t.name)||Wi()(e,t,{strict:!0})}function Ji(e,t){return t?t.reduce(((e,t)=>e.find((e=>e.type===t.type&&e.field===t.field))?e:[...e,t]),e):e}function Qi(e){return"object"===typeof e&&void 0!==e.name}const ea=e=>e.reduce(((e,t)=>(Qi(t)?e.push(t.name):e.push(t.toString()),e)),[]).join(","),ta=Object.assign({},r);var na=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function ra(e,t,n){const{disjunctiveFacets:r,disjunctiveFacetsAnalyticsTags:o}=t;r&&console.warn("search-ui-site-search-connector: disjunctiveFacets is not supported by Site Search"),o&&console.warn("search-ui-site-search-connector: disjunctiveFacetsAnalyticsTags is not supported by Site Search");const i=function(e){if(!e)return;const t=Object.entries(e).map((([e,t])=>{if("value"==t.type)return t.sort&&console.warn("search-ui-site-search-connector: Site Search does not support 'sort' on facets"),t.size&&console.warn("search-ui-site-search-connector: Site Search does not support 'size' on facets"),[e,t];console.warn(`search-ui-site-search-connector: Dropping ${e} facet, only value facets are supported in Site Search`)})).filter((e=>e)).map((([e])=>e));return t.length?t:void 0}(t.facets),a=function(e){if(e&&0!==Object.keys(e).length)return e.reduce(((e,t)=>{const n=t.field,r=t.values;if(e[n])return console.warn("search-ui-site-search-connector: More than one filter found for a single field"),e;if(t.type&&"all"!==t.type&&"any"!==t.type)return console.warn(`search-ui-site-search-connector: Unsupported filter type "${t.type}" found, only "all" and "any" are currently supported`),e;if(void 0!==r.find((e=>"object"===typeof e))){if(r.length>1)return console.warn("search-ui-site-search-connector: Cannot apply more than 1 none-value filters to a single field"),e;const t=r[0];if(ta.isFilterValueRange(t)){const{name:r}=t,o=na(t,["name"]);return e[n]=Object.assign({type:"range"},o),e}return e}return e[n]=Object.assign(Object.assign({},"any"===t.type?{}:{type:"and"}),{values:r}),e}),{})}(void 0!==t.filters?t.filters:e.filters),s=void 0!==t.current?t.current:e.current,u=void 0!==t.resultsPerPage?t.resultsPerPage:e.resultsPerPage,l=void 0!==t.sortDirection?t.sortDirection:e.sortDirection,c=void 0!==t.sortField?t.sortField:e.sortField,f=void 0!==t.sortList?t.sortList:e.sortList,[d,p]=(h=t.result_fields)?[Object.keys(h),Object.entries(h).reduce(((e,[t,n])=>n.snippet?Object.assign(Object.assign({},e),{[t]:n.snippet}):e),{})]:[];var h;const g=(v=t.search_fields)?Object.keys(v):[];var v;const m=e.searchTerm;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},u&&{per_page:u}),s&&{page:s}),l&&{sort_direction:{[n]:l}}),c&&{sort_field:{[n]:c}}),f&&{sort_list:{[n]:f}}),a&&{filters:{[n]:a}}),i&&{facets:{[n]:i}}),d&&{fetch_fields:{[n]:d}}),p&&{highlight_fields:{[n]:p}}),g&&!!g.length&&{search_fields:{[n]:g}}),{q:m})}var oa=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};const ia=(e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n});function aa(e,t){const n=function(e,t){return e[t].map((e=>{const{highlight:t,sort:n}=e,r=oa(e,["highlight","sort"]),o=Object.entries(r).filter((([e])=>!e.startsWith("_"))).map((([e,t])=>{return[e,(n=t,{raw:n})];var n})).reduce(ia,{});return Object.entries(t).forEach((([e,t])=>{o[e].snippet=t})),o}))}(e.records,t),r=e.info[t].num_pages,o=e.info[t].total_result_count,i=(a=e.info[t]).facets?Object.entries(a.facets).map((([e,t])=>[e,[{field:e,data:Object.entries(t).map((([e,t])=>({value:e,count:t}))),type:"value"}]])).reduce(ia,{}):{};var a;return Object.assign({rawResponse:e,results:n,totalPages:r,totalResults:o,requestId:""},Object.keys(i).length>0&&{facets:i})}var sa=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(t){i(t)}}function s(e){try{u(r.throw(e))}catch(t){i(t)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};function ua(e,t,n,r){return sa(this,void 0,void 0,(function*(){const o=new Headers({"Content-Type":"application/json"}),i=yield fetch(`https://search-api.swiftype.com/api/v1/public/${n}`,{method:t,headers:o,body:JSON.stringify(Object.assign({engine_key:e},r)),credentials:"include"});let a;try{a=yield i.json()}catch(s){}if(i.status>=200&&i.status<300)return a;{const e=a&&a.errors&&Object.entries(a.errors).length>0?JSON.stringify(a.errors):i.status;throw new Error(`${e}`)}}))}var la=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(t){i(t)}}function s(e){try{u(r.throw(e))}catch(t){i(t)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};function ca(e,t,n){const r=Object.entries(Object.assign({engine_key:e},n)).map((([e,t])=>`${e}=${encodeURIComponent(t)}`)).join("&");return fetch(`https://search-api.swiftype.com/api/v1/public/${t}?${r}`,{method:"GET",credentials:"include"})}var fa=class{constructor({documentType:e,engineKey:t,beforeSearchCall:n=((e,t)=>t(e)),beforeAutocompleteResultsCall:r=((e,t)=>t(e))}){this.documentType=e,this.engineKey=t,this.beforeSearchCall=n,this.beforeAutocompleteResultsCall=r,this.request=ua.bind(this,t),this._get=ca.bind(this,t)}onResultClick({query:e,documentId:t,tags:n}){n&&n.length>0&&console.warn("search-ui-site-search-connector: Site Search does not support tags on click"),this._get("analytics/pc",{t:(new Date).getTime(),q:e,doc_id:t})}onAutocompleteResultClick({query:e,documentId:t,tags:n}){n&&console.warn("search-ui-site-search-connector: Site Search does not support tags on autocompleteClick"),this._get("analytics/pas",{t:(new Date).getTime(),q:e,doc_id:t})}onSearch(e,t){const n=ra(e,t,this.documentType);return this.beforeSearchCall(n,(e=>this.request("POST","engines/search.json",e).then((e=>aa(e,this.documentType)))))}onAutocomplete({searchTerm:e},t){return la(this,void 0,void 0,(function*(){if(t.results){const n=ra({searchTerm:e},t.results,this.documentType);return this.beforeAutocompleteResultsCall(n,(e=>this.request("POST","engines/suggest.json",e).then((e=>({autocompletedResults:aa(e,this.documentType).results})))))}t.suggestions&&console.warn("search-ui-site-search-connector: Site Search does support query suggestions on autocomplete")}))}};function da(e){return"/"===e.charAt(0)}function pa(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}var ha=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],o=t&&t.split("/")||[],i=e&&da(e),a=t&&da(t),s=i||a;if(e&&da(e)?o=r:r.length&&(o.pop(),o=o.concat(r)),!o.length)return"/";if(o.length){var u=o[o.length-1];n="."===u||".."===u||""===u}else n=!1;for(var l=0,c=o.length;c>=0;c--){var f=o[c];"."===f?pa(o,c):".."===f?(pa(o,c),l++):l&&(pa(o,c),l--)}if(!s)for(;l--;l)o.unshift("..");!s||""===o[0]||o[0]&&da(o[0])||o.unshift("");var d=o.join("/");return n&&"/"!==d.substr(-1)&&(d+="/"),d},ga=!0,va="Invariant failed";function ma(e,t){if(!e){if(ga)throw new Error(va);var n="function"===typeof t?t():t,r=n?"".concat(va,": ").concat(n):va;throw new Error(r)}}function ya(e){return"/"===e.charAt(0)?e:"/"+e}function ba(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function wa(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function xa(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function _a(e,t,n,r){var o;"string"===typeof e?(o=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,u.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=ha(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function Sa(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var Oa=!("undefined"===typeof window||!window.document||!window.document.createElement);function Ca(e,t){t(window.confirm(e))}var Ea="popstate",Aa="hashchange";function Ma(){try{return window.history.state||{}}catch(e){return{}}}function ka(e){void 0===e&&(e={}),Oa||ma(!1);var t=window.history,n=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history}(),r=!(-1===window.navigator.userAgent.indexOf("Trident")),o=e,i=o.forceRefresh,a=void 0!==i&&i,s=o.getUserConfirmation,l=void 0===s?Ca:s,c=o.keyLength,f=void 0===c?6:c,d=e.basename?wa(ya(e.basename)):"";function p(e){var t=e||{},n=t.key,r=t.state,o=window.location,i=o.pathname+o.search+o.hash;return d&&(i=ba(i,d)),_a(i,r,n)}function h(){return Math.random().toString(36).substr(2,f)}var g=Sa();function v(e){(0,u.Z)(M,e),M.length=t.length,g.notifyListeners(M.location,M.action)}function m(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||w(p(e.state))}function y(){w(p(Ma()))}var b=!1;function w(e){if(b)b=!1,v();else{g.confirmTransitionTo(e,"POP",l,(function(t){t?v({action:"POP",location:e}):function(e){var t=M.location,n=_.indexOf(t.key);-1===n&&(n=0);var r=_.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(b=!0,O(o))}(e)}))}}var x=p(Ma()),_=[x.key];function S(e){return d+xa(e)}function O(e){t.go(e)}var C=0;function E(e){1===(C+=e)&&1===e?(window.addEventListener(Ea,m),r&&window.addEventListener(Aa,y)):0===C&&(window.removeEventListener(Ea,m),r&&window.removeEventListener(Aa,y))}var A=!1;var M={length:t.length,action:"POP",location:x,createHref:S,push:function(e,r){var o="PUSH",i=_a(e,r,h(),M.location);g.confirmTransitionTo(i,o,l,(function(e){if(e){var r=S(i),s=i.key,u=i.state;if(n)if(t.pushState({key:s,state:u},null,r),a)window.location.href=r;else{var l=_.indexOf(M.location.key),c=_.slice(0,l+1);c.push(i.key),_=c,v({action:o,location:i})}else window.location.href=r}}))},replace:function(e,r){var o="REPLACE",i=_a(e,r,h(),M.location);g.confirmTransitionTo(i,o,l,(function(e){if(e){var r=S(i),s=i.key,u=i.state;if(n)if(t.replaceState({key:s,state:u},null,r),a)window.location.replace(r);else{var l=_.indexOf(M.location.key);-1!==l&&(_[l]=i.key),v({action:o,location:i})}else window.location.replace(r)}}))},go:O,goBack:function(){O(-1)},goForward:function(){O(1)},block:function(e){void 0===e&&(e=!1);var t=g.setPrompt(e);return A||(E(1),A=!0),function(){return A&&(A=!1,E(-1)),t()}},listen:function(e){var t=g.appendListener(e);return E(1),function(){E(-1),t()}}};return M}function Pa(e,t,n){return Math.min(Math.max(e,t),n)}var Ra=n(33644),Ta=n.n(Ra);var Ia={encode(e,t){return function(e){return void 0!==e&&null!==e&&"number"===typeof e}(e)?`n_${e}_n`:function(e){return e&&"boolean"===typeof e}(e)?`b_${e}_b`:t(e)},decode(e,t){if(/n_-?[\d\.]*_n/.test(e)){const t=e.substring(2,e.length-2);return Number(t)}if(/^b_(true|false)*_b$/.test(e)){return function(e){if("true"===e)return!0;if("false"===e)return!1;throw"Invalid type parsed as Boolean value"}(e.substring(2,e.length-2))}return t(e)}},Ba={parse(e){return Ta().parse(e,{ignoreQueryPrefix:!0,decoder:Ia.decode,arrayLimit:1e3})},stringify(e){return Ta().stringify(e,{encoder:Ia.encode})}};function Da(e){return Array.isArray(e)?e[e.length-1]:e}function ja(e){return function(e){if(!function(e){return!isNaN(e)}(e))return;return parseInt(e,10)}(Da(e))}function La(e){return e.filters}function Za(e){return ja(e.current)}function Na(e){return Da(e.q)}function Fa(e){const t=Da(e["sort-field"]),n=Da(e["sort-direction"]);return t?[t,n]:[]}function Ha(e){return ja(e.size)}function Va(e){return e.sort}class za{constructor(e={}){this.routingOptions={readUrl:e.readUrl||this.readUrl.bind(this),writeUrl:e.writeUrl||this.writeUrl.bind(this),urlToState:e.urlToState||this.urlToState.bind(this),stateToUrl:e.stateToUrl||this.stateToUrl.bind(this),routeChangeHandler:e.routeChangeHandler||this.routeChangeHandler.bind(this)},this.history="undefined"!==typeof window?ka():function(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,r=t.initialEntries,o=void 0===r?["/"]:r,i=t.initialIndex,a=void 0===i?0:i,s=t.keyLength,l=void 0===s?6:s,c=Sa();function f(e){(0,u.Z)(m,e),m.length=m.entries.length,c.notifyListeners(m.location,m.action)}function d(){return Math.random().toString(36).substr(2,l)}var p=Pa(a,0,o.length-1),h=o.map((function(e){return _a(e,void 0,"string"===typeof e?d():e.key||d())})),g=xa;function v(e){var t=Pa(m.index+e,0,m.entries.length-1),r=m.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?f({action:"POP",location:r,index:t}):f()}))}var m={length:h.length,action:"POP",location:h[p],index:p,entries:h,createHref:g,push:function(e,t){var r="PUSH",o=_a(e,t,d(),m.location);c.confirmTransitionTo(o,r,n,(function(e){if(e){var t=m.index+1,n=m.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),f({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=_a(e,t,d(),m.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(m.entries[m.index]=o,f({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=m.index+e;return t>=0&&t<m.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return m}(),this.lastPushSearchString=""}readUrl(){return this.history?this.history.location.search:""}writeUrl(e,{replaceUrl:t=!1}={}){(t?this.history.replace:this.history.push)(`?${e}`)}urlToState(e){return function(e){const t={current:Za(e),filters:La(e),searchTerm:Na(e),resultsPerPage:Ha(e),sortField:Fa(e)[0],sortDirection:Fa(e)[1],sortList:Va(e)};return Object.keys(t).reduce(((e,n)=>{const r=t[n];return r&&(e[n]=r),e}),{})}(Ba.parse(e))}stateToUrl(e){return`${function(e){return Ba.stringify(function({searchTerm:e,current:t,filters:n,resultsPerPage:r,sortDirection:o,sortField:i,sortList:a}){const s={};return t>1&&(s.current=t),e&&(s.q=e),r&&(s.size=r),n&&n.length>0&&(s.filters=n),a&&a.length>0?s.sort=a:i&&(s["sort-field"]=i,s["sort-direction"]=o),s}(e))}(e)}`}getStateFromURL(){return this.routingOptions.urlToState(this.routingOptions.readUrl())}pushStateToURL(e,{replaceUrl:t=!1}={}){const n=this.routingOptions.stateToUrl(e);this.lastPushSearchString=n,this.routingOptions.writeUrl(n,{replaceUrl:t})}onURLStateChange(e){this.unlisten=this.routingOptions.routeChangeHandler((t=>{`?${this.lastPushSearchString}`!==t&&(this.lastPushSearchString="",e(this.routingOptions.urlToState(t)))}).bind(this))}routeChangeHandler(e){return this.history.listen((t=>{e(t.search)}))}tearDown(){this.unlisten()}}class Ua{constructor(){this.requestSequence=0,this.lastCompleted=0}next(){return++this.requestSequence}isOldRequest(e){return e<this.lastCompleted}completed(e){this.lastCompleted=e}}function Ga(e,t){let n;const r=function(){const r=arguments;clearTimeout(n),n=setTimeout((()=>{e.apply(null,r)}),t)};return r.cancel=()=>{n&&(clearTimeout(n),n=null)},r}class Wa{constructor(){this.debounceCache={}}runWithDebounce(e,t,n,...r){if(!e)return n(...r);const o=`${t}|${e.toString()}`;let i=this.debounceCache[o];i||(this.debounceCache[o]=Ga(n,e),i=this.debounceCache[o]),i(...r)}cancelByName(e){Object.entries(this.debounceCache).filter((([t])=>t.startsWith(`${e}|`))).forEach((([e,t])=>t.cancel()))}}Wa.debounce=(e,t)=>Ga(t,e);var $a=Wa;function qa(e,t,n="all"){this.debug&&console.log("Search UI: Action","addFilter",...arguments);const{filters:r}=this.state,o=r.find((t=>t.field===e&&t.type===n))||null,i=r.filter((t=>t.field!==e||t.type!==n))||[],a=(null===o||void 0===o?void 0:o.values)||[],s=a.find((e=>Ki(e,t)))?a:a.concat(t);this._updateSearchResults({current:1,filters:[...i,{field:e,values:s,type:n}]});this.events.emit({type:"FacetFilterSelected",field:e,value:ea(s),query:this.state.searchTerm})}function Ya(e,t=[]){this.debug&&console.log("Search UI: Action","trackAutocompleteClickThrough",...arguments);const{autocompletedResultsRequestId:n,searchTerm:r,autocompletedResults:o,current:i,resultsPerPage:a,totalResults:s,filters:u}=this.state,l=o.findIndex((t=>t._meta.id===e)),c=o[l],f=this.events;f.autocompleteResultClick({query:r,documentId:e,requestId:n,tags:t,result:c,resultIndex:l}),f.emit({type:"ResultSelected",documentId:e,query:r,position:l,origin:"autocomplete",tags:t,totalResults:s,filters:u,currentPage:i,resultsPerPage:a})}function Xa(e=[]){this.debug&&console.log("Search UI: Action","clearFilters",...arguments);const{filters:t}=this.state,n=t.filter((t=>{const n=t.field;return e.includes(n)}));this._updateSearchResults({current:1,filters:n})}function Ka(e,t,n){this.debug&&console.log("Search UI: Action","removeFilter",...arguments);const{filters:r}=this.state;let o=r;o=!t&&n?r.filter((t=>!(t.field===e&&t.type===n))):t?Yi(r,e,t,n):r.filter((t=>t.field!==e)),this._updateSearchResults({current:1,filters:o});this.events.emit({type:"FacetFilterRemoved",field:e,value:t&&ea([t]),query:this.state.searchTerm})}function Ja(){this.debug&&console.log("Search UI: Action","reset",...arguments),this._setState(this.startingState),this.trackUrlState&&this.URLManager.pushStateToURL(this.state)}function Qa(e){this.debug&&console.log("Search UI: Action","setCurrent",...arguments),this._updateSearchResults({current:e})}function es(e,t,n="all"){this.debug&&console.log("Search UI: Action","setFilter",...arguments);let{filters:r}=this.state;r=r.filter((t=>t.field!==e||t.type!==n)),this._updateSearchResults({current:1,filters:[...r,{field:e,values:[t],type:n}]});this.events.emit({type:"FacetFilterSelected",field:e,value:t&&ea([t]),query:this.state.searchTerm})}function ts(e){this.debug&&console.log("Search UI: Action","setResultsPerPage",...arguments),this._updateSearchResults({current:1,resultsPerPage:e})}function ns(e,{autocompleteMinimumCharacters:t=0,autocompleteResults:n=!1,autocompleteSuggestions:r=!1,shouldClearFilters:o=!0,refresh:i=!0,debounce:a=0}={}){this.debug&&console.log("Search UI: Action","setSearchTerm",...arguments),this._setState({searchTerm:e}),i&&this.debounceManager.runWithDebounce(a,"_updateSearchResults",this._updateSearchResults,Object.assign({current:1},o&&{filters:[]})),(n||r)&&e.length>=t&&this.debounceManager.runWithDebounce(a,"_updateAutocomplete",this._updateAutocomplete,e,{autocompleteResults:n,autocompleteSuggestions:r})}function rs(e,t){this.debug&&console.log("Search UI: Action","setSort",...arguments);const n={current:1,sortList:null,sortField:null,sortDirection:null};Array.isArray(e)?n.sortList=e:(n.sortField=e,n.sortDirection=t),this._updateSearchResults(n)}function os(e,t=[]){this.debug&&console.log("Search UI: Action","trackClickThrough",...arguments);const{requestId:n,searchTerm:r,results:o,current:i,resultsPerPage:a,totalResults:s,filters:u}=this.state,l=o.findIndex((t=>t._meta.id===e)),c=o[l],f=this.events;this.events.resultClick({query:r,documentId:e,requestId:n,tags:t,result:c,page:i,resultsPerPage:a,resultIndexOnPage:l}),f.emit({type:"ResultSelected",documentId:e,query:r,origin:"results",position:l,tags:t,totalResults:s,filters:u,currentPage:i,resultsPerPage:a})}const is="search-ui-screen-reader-notifications",as="undefined"!==typeof document,ss=()=>{if(!as)return null;let e=document.getElementById(is);return e||(e=document.createElement("div"),e.id=is,e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.margin="-1px",e.style.padding="0",e.style.border="0",e.style.overflow="hidden",e.style.clip="rect(0 0 0 0)",document.body.appendChild(e),e)},us=e=>{const t=ss();t&&(t.textContent=e)},ls={searchResults:({start:e,end:t,totalResults:n,searchTerm:r})=>{let o=`Showing ${e} to ${t} results out of ${n}`;return r&&(o+=`, searching for "${r}".`),o}};function cs(e,t){if(!this.hasA11yNotifications)return;const n=this.a11yNotificationMessages[e];if(!n){const t=`Could not find corresponding message function in a11yNotificationMessages: "${e}"`;return void console.warn("Action","a11yNotify",t)}const r=n(t);us(r),this.debug&&console.log("Search UI: Action","a11yNotify",{messageFunc:e,messageArgs:t,message:r})}function fs(e,t,n=[]){this.debug&&console.log("Search UI: Action","trackAutocompleteSuggestionClickThrough",...arguments);const{searchTerm:r}=this.state;this.events.emit({type:"AutocompleteSuggestionSelected",position:t,query:r,tags:n,suggestion:e})}function ds(e,t,n){if(n){if(t){const r=t[e].bind(t);return(...e)=>n(...e,r)}return n}return t&&t[e]?t[e].bind(t):()=>{throw`No ${e} handler provided and no Connector provided. You must configure one or the other.`}}var ps=class{constructor({apiConnector:e,onSearch:t,onAutocomplete:n,onResultClick:r,onAutocompleteResultClick:o,plugins:i=[]}={}){this.search=ds("onSearch",e,t),this.autocomplete=ds("onAutocomplete",e,n),this.resultClick=ds("onResultClick",e,r),this.autocompleteResultClick=ds("onAutocompleteResultClick",e,o),this.plugins=i}emit(e){this.plugins.forEach((t=>{t.subscribe(e)}))}};var hs=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function gs({current:e,filters:t,resultsPerPage:n,searchTerm:r,sortDirection:o,sortField:i,sortList:a}){return{current:e,filters:t,resultsPerPage:n,searchTerm:r,sortDirection:o,sortField:i,sortList:a}}const vs={current:1,filters:[],resultsPerPage:20,searchTerm:"",sortDirection:"",sortField:"",sortList:[],autocompletedResults:[],autocompletedResultsRequestId:"",autocompletedSuggestions:{},autocompletedSuggestionsRequestId:"",error:"",isLoading:!1,facets:{},requestId:"",results:[],resultSearchTerm:"",totalPages:0,totalResults:0,pagingStart:0,pagingEnd:0,wasSearched:!1,rawResponse:{}};function ms(e={},t={},n=[]){return Object.entries(e).reduce(((e,[r,o])=>(t[r]&&"function"===typeof t[r]&&!t[r]({filters:n})||(e[r]=o),e)),{})}var ys=class{constructor({apiConnector:e,autocompleteQuery:t={},plugins:n=[],debug:r,initialState:i,onSearch:a,onAutocomplete:s,onResultClick:u,onAutocompleteResultClick:l,searchQuery:c={},trackUrlState:f=!0,routingOptions:d={},urlPushDebounceLength:p=500,hasA11yNotifications:h=!1,a11yNotificationMessages:g={},alwaysSearchOnInitialLoad:v=!1}){let m;this.state=vs,this._updateAutocomplete=(e,{autocompleteResults:t,autocompleteSuggestions:n}={})=>{const r=this.autocompleteRequestSequencer.next(),o=Object.assign(Object.assign({},t&&{results:this.autocompleteQuery.results||{}}),n&&{suggestions:this.autocompleteQuery.suggestions||{}});return this.events.autocomplete({searchTerm:e},o).then((e=>{this.autocompleteRequestSequencer.isOldRequest(r)||(this.autocompleteRequestSequencer.completed(r),this._setState(e))}))},this._updateSearchResults=(e,{skipPushToUrl:t=!1,replaceUrl:n=!1}={})=>{const{current:r,filters:o,resultsPerPage:i,searchTerm:a,sortDirection:s,sortField:u,sortList:l}=Object.assign(Object.assign({},this.state),e);this.debounceManager.cancelByName("_updateSearchResults"),this._setState({current:r,error:"",filters:o,resultsPerPage:i,searchTerm:a,sortDirection:s,sortField:u,sortList:l}),this._makeSearchRequest({skipPushToUrl:t,replaceUrl:n})},this._makeSearchRequest=$a.debounce(0,(({skipPushToUrl:e,replaceUrl:t})=>{const{current:n,filters:r,resultsPerPage:o,searchTerm:i,sortDirection:a,sortField:s,sortList:u}=this.state;this._setState({isLoading:!0});const l=this.searchRequestSequencer.next(),c=this.searchQuery,{conditionalFacets:f}=c,d=hs(c,["conditionalFacets"]),p=Object.assign(Object.assign({},d),{facets:ms(this.searchQuery.facets,f,r)}),h=Object.assign(Object.assign({},gs(this.state)),{filters:Ji(r,this.searchQuery.filters)});return this.events.search(h,p).then((c=>{if(this.searchRequestSequencer.isOldRequest(l))return;this.searchRequestSequencer.completed(l);const{totalResults:f}=c;this.events.emit({type:"SearchQuery",filters:this.state.filters,query:this.state.searchTerm,currentPage:h.current,resultsPerPage:h.resultsPerPage,totalResults:f});const d=0===f?0:(n-1)*o+1,p=f<d+o?f:d+o-1;if(this._setState(Object.assign(Object.assign({isLoading:!1,resultSearchTerm:i,pagingStart:d,pagingEnd:p},c),{wasSearched:!0})),this.hasA11yNotifications){const e={start:d,end:p,totalResults:f,searchTerm:i};this.actions.a11yNotify("searchResults",e)}!e&&this.trackUrlState&&this.debounceManager.runWithDebounce(this.urlPushDebounceLength,"pushStateToURL",this.URLManager.pushStateToURL.bind(this.URLManager),{current:n,filters:r,resultsPerPage:o,searchTerm:i,sortDirection:a,sortField:s,sortList:u},{replaceUrl:t})}),(e=>{var t;"Invalid credentials"!==e.message?this._setState({error:`An unexpected error occurred: ${e.message}`}):this._setState(Object.assign({},(null===(t=this.apiConnector)||void 0===t?void 0:t.state)&&Object.assign({},this.apiConnector.state)))}))})),this.actions=Object.entries(o).reduce(((e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n.bind(this)})),{}),this.actions=Object.assign(Object.assign({},this.actions),(null===e||void 0===e?void 0:e.actions)&&Object.assign({},e.actions)),Object.assign(this,this.actions),this.events=new ps({apiConnector:e,onSearch:a,onAutocomplete:s,onResultClick:u,onAutocompleteResultClick:l,plugins:n}),this.debug=r,this.debug&&(console.warn("Search UI Debugging is enabled. This should be turned off in production deployments."),"undefined"!==typeof window&&(window.searchUI=this)),this.autocompleteRequestSequencer=new Ua,this.searchRequestSequencer=new Ua,this.debounceManager=new $a,this.autocompleteQuery=t,this.searchQuery=c,this.subscriptions=[],this.trackUrlState=f,this.urlPushDebounceLength=p,this.alwaysSearchOnInitialLoad=v,this.apiConnector=e,f?(this.URLManager=new za(d),m=this.URLManager.getStateFromURL(),this.URLManager.onURLStateChange((e=>{this._updateSearchResults(Object.assign(Object.assign({},vs),e),{skipPushToUrl:!0})}))):m={},this.hasA11yNotifications=h,this.hasA11yNotifications&&ss(),this.a11yNotificationMessages=Object.assign(Object.assign({},ls),g),this.startingState=Object.assign(Object.assign({},this.state),i);const y=gs(Object.assign(Object.assign({},this.startingState),m));this.state=Object.assign(Object.assign(Object.assign({},this.state),(null===e||void 0===e?void 0:e.state)&&Object.assign({},e.state)),y),(y.searchTerm||y.filters.length>0||this.alwaysSearchOnInitialLoad)&&this._updateSearchResults(y,{replaceUrl:!0})}_setState(e){const t=Object.assign(Object.assign({},this.state),e);this.debug&&console.log("Search UI: State Update",e,t),this.state=t,this.subscriptions.forEach((e=>e(t)))}setSearchQuery(e){this.searchQuery=e,this._updateSearchResults({})}setAutocompleteQuery(e){this.autocompleteQuery=e}subscribeToStateChanges(e){this.subscriptions.push(e)}unsubscribeToStateChanges(e){this.subscriptions=this.subscriptions.filter((t=>t!==e))}tearDown(){this.subscriptions=[],this.URLManager&&this.URLManager.tearDown(),this.debounceManager.cancelByName("pushStateToURL")}getActions(){return this.actions}getState(){return Object.assign({},this.state)}};var bs=i.createContext(null);var ws={moreFilters:({visibleOptionsCount:e,showingAll:t})=>{let n=t?"All ":"";return n+=`${e} options shown.`,n}};var xs=({children:e,config:t,driver:n})=>{const[r,o]=(0,i.useState)(null);if((0,i.useEffect)((()=>{const e=n||new ys(Object.assign(Object.assign({},t),{a11yNotificationMessages:Object.assign(Object.assign({},ws),t.a11yNotificationMessages)}));return o(e),()=>{e.tearDown()}}),[]),(0,i.useEffect)((()=>{r&&r.setSearchQuery(t.searchQuery)}),[t.searchQuery]),(0,i.useEffect)((()=>{r&&r.setAutocompleteQuery(t.autocompleteQuery)}),[t.autocompleteQuery]),!r)return null;const a={driver:r};return i.createElement(bs.Provider,{value:a},e)},_s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function Ss(e,t,n){return(n.mapContextToProps||t)(e,n)||{}}var Os=function(e){if(!e)throw"withSearch requires a function to be provided which returns an object with at least one value.";return function(t){class n extends i.PureComponent{constructor(t,n){super(t),this.subscription=t=>{this.mounted&&this.setState((n=>Ss(Object.assign(Object.assign({},n),t),e,this.props)))},this.mounted=!1,this.state=Object.assign({},Ss(function(e){return Object.assign(Object.assign({},e.driver.getState()),e.driver.getActions())}(n),e,t))}componentDidMount(){this.mounted=!0,this.context.driver.subscribeToStateChanges(this.subscription)}componentWillUnmount(){this.mounted=!1,this.context.driver.unsubscribeToStateChanges(this.subscription)}render(){const e=_s(this.props,[]);return i.createElement(t,Object.assign({},this.state,e))}}return n.contextType=bs,n}};function Cs({mapContextToProps:e,children:t}){const n=Os(e)((e=>t(e)));return i.createElement(n,null)}Cs.propTypes={mapContextToProps:bt().func,children:bt().func.isRequired};var Es,As,Ms,ks,Ps,Rs,Ts=Cs,Is=n(52861),Bs=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(t){i(t)}}function s(e){try{u(r.throw(e))}catch(t){i(t)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},Ds=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(u){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(u){s=[6,u],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}},js={headers:{"Content-Type":"application/json"},transformResponse:function(e){try{var t=JSON.parse(e).topics;return(void 0===t?[]:t).map((function(e){var t=e.id,n=e.title,r=e.fancy_title,o=e.slug;return{id:{raw:t},title:{raw:n},description:{raw:r},url:{raw:"https://community.netdata.cloud/t/".concat(o)}}}))}catch(n){return n}}},Ls=function(e,t){return Bs(void 0,void 0,void 0,(function(){var n;return Ds(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,(0,Is.Z)("https://community.netdata.cloud/search.json?q=".concat(e),js)];case 1:return(n=r.sent()).data?(t&&t(n),[3,3]):[2];case 2:return r.sent(),[2];case 3:return[2]}}))}))},Zs=function(){return Zs=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Zs.apply(this,arguments)},Ns=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Fs=function(e){var t=e.children,n=Ns(e,["children"]),r=(0,i.useState)([]),o=r[0],a=r[1],s=n.searchTerm,u=n.results;return(0,i.useEffect)((function(){if(s){var e=!0;return Ls(s,(function(t){var n=t.data;return e&&a(n)})),function(){return e=!1}}}),[s]),t(Zs(Zs({},n),{results:Zs(Zs({},u),{discourse:o})}))},Hs=/^https:\/\/((learn.netdata).cloud|www.(netdata.cloud)|github.com\/netdata\/(netdata-cloud)|github.com\/netdata\/(netdata))/,Vs=function(e){return e.reduce((function(e,t){var n=t.url.raw.match(Hs).find((function(e,t){return t>1&&e}));return e[n]=e[n]||[],e[n].push(t),e}),{})},zs=function(){return zs=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},zs.apply(this,arguments)},Us={apiConnector:new fa({engineKey:"BZL_aEiLAebVKkcm3eFr",documentType:"page"}),initialState:{resultsPerPage:100},searchQuery:{result_fields:{title:{snippet:{size:100,fallback:!0}},url:{raw:{}},description:{snippet:{size:100,fallback:!0}}}},alwaysSearchOnInitialLoad:!1},Gs=function(e){var t=e.searchTerm,n=e.setSearchTerm,r=e.results,o=e.reset;return{searchTerm:t,setSearchTerm:n,results:zs(zs({},Vs(r)),{discourse:[]}),reset:o}},Ws=function(e){var t=e.children;return i.createElement(xs,{config:Us},i.createElement(Ts,{mapContextToProps:Gs},(function(e){return i.createElement(Fs,zs({},e),t)})))},$s=n(21337),qs=function(e){var t=e.defaultValue,n=e.setSearchTerm,r=e.setSearchView,o=(0,i.useState)(t),a=o[0],s=o[1];(0,$s.Z)((function(){n(a),a.length<3||r()}),300,[a]);var u=(0,i.useCallback)((function(e){return s(e.target.value)}),[]);return i.createElement(an.oi,{value:a,onChange:u,placeholder:"Search Netdata\u2019s docs & community",autoFocus:!0,iconLeft:i.createElement(xe.JO,{name:"search_s",size:"small",color:a?"text":"border"})})},Ys=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Xs=function(){return Xs=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Xs.apply(this,arguments)},Ks=s.default.a(Es||(Es=Ys(["\n text-decoration: none;\n\n &:hover,\n &:visited {\n color: ",";\n }\n"],["\n text-decoration: none;\n\n &:hover,\n &:visited {\n color: ",";\n }\n"])),(0,ee.Lq)("primary")),Js=function(e){var t=e.title,n=e.description,r=e.url;return i.createElement(Se.default,{gap:2,column:!0},i.createElement(He.Text,{strong:!0,dangerouslySetInnerHTML:{__html:(null===t||void 0===t?void 0:t.snippet)||(null===t||void 0===t?void 0:t.raw)||"Untitled"}}),!!n&&i.createElement(He.Text,{dangerouslySetInnerHTML:{__html:"".concat((null===n||void 0===n?void 0:n.snippet)||(null===n||void 0===n?void 0:n.raw)||"No description","&hellip;")}}),i.createElement(Se.default,{alignSelf:"end"},i.createElement(He.Text,{as:Ks,color:"primary",href:r,target:"_blank"},"Read \u2192")))},Qs=function(e){return i.createElement(Se.default,Xs({overflow:{vertical:"auto"},padding:[6,4],gap:6,column:!0},e))},eu=(0,s.default)(jo)(As||(As=Ys(["\n width: 100%;\n\n .tabs > * {\n min-width: 160px;\n max-width: 100%;\n }\n"],["\n width: 100%;\n\n .tabs > * {\n min-width: 160px;\n max-width: 100%;\n }\n"]))),tu=["learn","community"],nu={learn:"learn.netdata",community:"discourse","github-cloud":"netdata-cloud","github-agent":"netdata"},ru={learn:"Documentation",community:"Community","github-cloud":"Github / Cloud","github-agent":"Github / Agent"},ou=function(e){var t=e.results;return i.createElement(Se.default,{overflow:{vertical:"auto"},"data-testid":"searchResults",flex:!0,width:"1000px",height:"60vh"},i.createElement(eu,null,tu.map((function(e){var n=t[nu[e]],r=null===n||void 0===n?void 0:n.length;return i.createElement(To,{key:e,label:"".concat(ru[e]).concat(r?" (".concat(r,")"):"")},i.createElement(Qs,null,r?n.map((function(e){var t=e.id,n=e.url,r=e.title,o=e.description;return i.createElement(Js,{key:t.raw,url:n.raw,title:r,description:o})})):i.createElement(Se.default,{padding:[4]},i.createElement(He.Text,{strong:!0},"No results"))))}))))},iu=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},au=(0,s.default)(Se.default).attrs({padding:[6],background:"dropdown",gap:6,column:!0,round:!0,overflow:{vertical:"auto"}})(Ms||(Ms=iu(["\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n"],["\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n"]))),su=function(e){var t=e.children,n=e.onClose;return i.createElement(Se.default,{width:"100%",alignItems:"center",justifyContent:"between",padding:[0,0,4],border:{side:"bottom",color:"disabled"}},i.createElement(Se.default,{gap:2,alignItems:"center"},t),i.createElement(Ee,{icon:"x",neutral:!0,small:!0,onClick:n,flavour:"borderless","data-testid":"documentation-help-close"}))},uu="general",lu="dashboard",cu="search",fu={general:"Need help?",dashboard:"Need help?"},du=function(e){var t=e.app,n=void 0===t?"cloud":t,r=e.onCloseClick,o=e.onVisitDocumentClick,a=e.onOpenIssueClick,s=e.onOpenBugClick,u=e.onContributeClick,l=e.onSupportClick,c=e.onGoToDemoClick,f=e.children,d=e.demoUrl,p=(0,Mi.Z)(),h=p[0],g=p[1],v=(0,i.useState)(uu),m=v[0],y=v[1],b=m===uu,w=(0,i.useCallback)((function(){return y(lu)}),[]),x=(0,i.useCallback)((function(){return y(uu)}),[]),_=(0,i.useCallback)((function(){return y(cu)}),[]),S=(0,i.useCallback)((function(){g(),r&&r()}),[]);return i.createElement(i.Fragment,null,f(g,h),h&&i.createElement(Xo.default,{position:"bottom-left",backdrop:!0,margin:[5,17],onClickOutside:g,onEsc:g},i.createElement(Ws,null,(function(e){var t=e.searchTerm,r=e.setSearchTerm,f=e.results,p=e.reset;return i.createElement(i.Fragment,null,i.createElement(au,{width:{max:b?"325px":m===lu?"600px":"100%"},"data-testid":"documentation-layer"},i.createElement(su,{onClose:S},b&&i.createElement(xe.JO,{color:"text",name:"questionFilled",width:"18px",height:"18px"}),!b&&i.createElement(Ee,{icon:"arrow_left",neutral:!0,small:!0,onClick:function(){x(),p()},flavour:"borderless","data-testid":"dashboard-back"}),i.createElement(He.H5,{margin:[0]},fu[m]||fu.general)),m!==lu&&i.createElement(qs,{defaultValue:t,setSearchTerm:r,setSearchView:_}),b&&i.createElement(Se.default,{gap:6,overflow:{vertical:"auto"},column:!0,padding:[1]},i.createElement(Bi,{app:n,onDashboardClick:w,onVisitDocumentClick:o,onOpenIssueClick:a,onOpenBugClick:s,onContributeClick:u,onSupportClick:l,onGoToDemoClick:c,demoUrl:d})),m===lu&&i.createElement(Ui,null),m===cu&&i.createElement(ou,{results:f})))}))))},pu=n(27539),hu=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},gu=(0,s.default)(Se.default).attrs({overflow:{vertical:"auto"},padding:[0,4,0,0]})(ks||(ks=hu(["\n ","\n"],["\n ","\n"])),sn.f1),vu=function(e){var t=e.onClose;return i.createElement(Se.default,{border:{side:"bottom",color:"selected"},justifyContent:"between",alignItems:"center",padding:[0,0,4,0]},i.createElement(Se.default,{gap:2},i.createElement(xe.JO,{color:"text",name:"insights"}),i.createElement(He.TextBig,{strong:!0},"Netdata News")),i.createElement(Ee,{flavour:"borderless",neutral:!0,icon:"x",title:"close news",onClick:t}))},mu=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},yu=(0,s.default)(Se.default).attrs({as:"img"})(Ps||(Ps=mu(["\n object-fit: cover;\n"],["\n object-fit: cover;\n"]))),bu=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},wu=(0,s.default)(Se.default).attrs({as:"a"})(Rs||(Rs=bu(["\n text-decoration: none;\n & :hover {\n text-decoration: none;\n }\n"],["\n text-decoration: none;\n & :hover {\n text-decoration: none;\n }\n"]))),xu=function(e){var t=e.item,n=t.last_publication_date,r=t.data,o=r.title,a=r.description,s=r.url,u=r.image,l=r.label,c=u&&u.url,f=new Date(n);return i.createElement(Se.default,{column:!0,gap:2},i.createElement(Se.default,{gap:4},c&&i.createElement(yu,{src:c,width:"160px"}),i.createElement(Se.default,{column:!0,gap:2},i.createElement(He.Text,{strong:!0},o),i.createElement(He.Text,null,a))),i.createElement(Se.default,{justifyContent:"between",alignItems:"center"},i.createElement(He.TextSmall,null,f.toLocaleDateString()),i.createElement(wu,{href:s,target:"_blank",rel:"noopener noreferrer",gap:1,alignItems:"center"},i.createElement(He.Text,{color:"success",strong:!0},l),i.createElement(xe.JO,{color:"success",rotate:2,name:"arrow_left"}))))},_u=n(80024),Su=function(e,t){return Su=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},Su(e,t)};function Ou(e,t){function n(){this.constructor=e}Su(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var Cu=function(){return Cu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Cu.apply(this,arguments)},Eu=function(){function e(e){this.data={},this.data=e}return e.prototype.id=function(){return this.data.id},e.prototype.ref=function(){return this.data.ref},e.prototype.label=function(){return this.data.label},e}(),Au=function(){function e(e){this.data={},this.data=e,this.variations=(e.variations||[]).map((function(e){return new Eu(e)}))}return e.prototype.id=function(){return this.data.id},e.prototype.googleId=function(){return this.data.googleId},e.prototype.name=function(){return this.data.name},e}(),Mu=function(){function e(e){e&&(this.drafts=(e.drafts||[]).map((function(e){return new Au(e)})),this.running=(e.running||[]).map((function(e){return new Au(e)})))}return e.prototype.current=function(){return this.running.length>0?this.running[0]:null},e.prototype.refFromCookie=function(e){if(!e||""===e.trim())return null;var t=e.trim().split(" ");if(t.length<2)return null;var n=t[0],r=parseInt(t[1],10),o=this.running.filter((function(e){return e.googleId()===n&&e.variations.length>r}))[0];return o?o.variations[r].ref():null},e}(),ku=function(){function e(e,t){for(var n in this.httpClient=t,this.form=e,this.data={},e.fields)e.fields[n].default&&(this.data[n]=[e.fields[n].default])}return e.prototype.set=function(e,t){var n=this.form.fields[e];if(!n)throw new Error("Unknown field "+e);var r=""===t||void 0===t?null:t,o=this.data[e]||[];o=n.multiple?r?o.concat([r]):o:r?[r]:o,this.data[e]=o},e.prototype.url=function(){var e=this.form.action;if(this.data){var t=e.indexOf("?")>-1?"&":"?";for(var n in this.data)if(Object.prototype.hasOwnProperty.call(this.data,n)){var r=this.data[n];if(r)for(var o=0;o<r.length;o++)e+=t+n+"="+encodeURIComponent(r[o]),t="&"}}return e},e.prototype.submit=function(e){return this.httpClient.cachedRequest(this.url()).then((function(t){return e&&e(null,t),t})).catch((function(t){throw e&&e(t),t}))},e}(),Pu=function(e){function t(t,n){return e.call(this,t,n)||this}return Ou(t,e),t.prototype.set=function(t,n){return e.prototype.set.call(this,t,n),this},t.prototype.ref=function(e){return this.set("ref",e)},t.prototype.query=function(e){if("string"===typeof e)return this.query([e]);if(Array.isArray(e))return this.set("q","["+e.join("")+"]");throw new Error("Invalid query : "+e)},t.prototype.pageSize=function(e){return this.set("pageSize",e)},t.prototype.graphQuery=function(e){return this.set("graphQuery",e)},t.prototype.lang=function(e){return this.set("lang",e)},t.prototype.page=function(e){return this.set("page",e)},t.prototype.after=function(e){return this.set("after",e)},t.prototype.orderings=function(e){return e?this.set("orderings","["+e.join(",")+"]"):this},t}(ku),Ru=function(e){function t(t,n){return e.call(this,t,n)||this}return Ou(t,e),t}(ku),Tu="at",Iu="not",Bu="missing",Du="has",ju="any",Lu="in",Zu="fulltext",Nu="similar",Fu="number.gt",Hu="number.lt",Vu="number.inRange",zu="date.before",Uu="date.after",Gu="date.between",Wu="date.day-of-month",$u="date.day-of-month-after",qu="date.day-of-month-before",Yu="date.day-of-week",Xu="date.day-of-week-after",Ku="date.day-of-week-before",Ju="date.month",Qu="date.month-before",el="date.month-after",tl="date.year",nl="date.hour",rl="date.hour-before",ol="date.hour-after",il="geopoint.near";function al(e){if("string"===typeof e)return'"'+e+'"';if("number"===typeof e)return e.toString();if(e instanceof Date)return e.getTime().toString();if(Array.isArray(e))return"["+e.map((function(e){return al(e)})).join(",")+"]";if("boolean"===typeof e)return e.toString();throw new Error("Unable to encode "+e+" of type "+typeof e)}var sl={near:function(e,t,n,r){return"["+il+"("+e+", "+t+", "+n+", "+r+")]"}},ul={before:function(e,t){return"["+zu+"("+e+", "+al(t)+")]"},after:function(e,t){return"["+Uu+"("+e+", "+al(t)+")]"},between:function(e,t,n){return"["+Gu+"("+e+", "+al(t)+", "+al(n)+")]"},dayOfMonth:function(e,t){return"["+Wu+"("+e+", "+t+")]"},dayOfMonthAfter:function(e,t){return"["+$u+"("+e+", "+t+")]"},dayOfMonthBefore:function(e,t){return"["+qu+"("+e+", "+t+")]"},dayOfWeek:function(e,t){return"["+Yu+"("+e+", "+al(t)+")]"},dayOfWeekAfter:function(e,t){return"["+Xu+"("+e+", "+al(t)+")]"},dayOfWeekBefore:function(e,t){return"["+Ku+"("+e+", "+al(t)+")]"},month:function(e,t){return"["+Ju+"("+e+", "+al(t)+")]"},monthBefore:function(e,t){return"["+Qu+"("+e+", "+al(t)+")]"},monthAfter:function(e,t){return"["+el+"("+e+", "+al(t)+")]"},year:function(e,t){return"["+tl+"("+e+", "+t+")]"},hour:function(e,t){return"["+nl+"("+e+", "+t+")]"},hourBefore:function(e,t){return"["+rl+"("+e+", "+t+")]"},hourAfter:function(e,t){return"["+ol+"("+e+", "+t+")]"}},ll={gt:function(e,t){return"["+Fu+"("+e+", "+t+")]"},lt:function(e,t){return"["+Hu+"("+e+", "+t+")]"},inRange:function(e,t,n){return"["+Vu+"("+e+", "+t+", "+n+")]"}},cl={at:function(e,t){return"["+Tu+"("+e+", "+al(t)+")]"},not:function(e,t){return"["+Iu+"("+e+", "+al(t)+")]"},missing:function(e){return"["+Bu+"("+e+")]"},has:function(e){return"["+Du+"("+e+")]"},any:function(e,t){return"["+ju+"("+e+", "+al(t)+")]"},in:function(e,t){return"["+Lu+"("+e+", "+al(t)+")]"},fulltext:function(e,t){return"["+Zu+"("+e+", "+al(t)+")]"},similar:function(e,t){return"["+Nu+'("'+e+'", '+t+")]"},date:ul,dateBefore:ul.before,dateAfter:ul.after,dateBetween:ul.between,dayOfMonth:ul.dayOfMonth,dayOfMonthAfter:ul.dayOfMonthAfter,dayOfMonthBefore:ul.dayOfMonthBefore,dayOfWeek:ul.dayOfWeek,dayOfWeekAfter:ul.dayOfWeekAfter,dayOfWeekBefore:ul.dayOfWeekBefore,month:ul.month,monthBefore:ul.monthBefore,monthAfter:ul.monthAfter,year:ul.year,hour:ul.hour,hourBefore:ul.hourBefore,hourAfter:ul.hourAfter,number:ll,gt:ll.gt,lt:ll.lt,inRange:ll.inRange,near:sl.near,geopoint:sl},fl=decodeURIComponent;var dl={parse:function(e,t){if("string"!==typeof e)throw new TypeError("argument str must be a string");var n={},r=t||{},o=e.split(/; */),i=r.decode||fl;return o.forEach((function(e){var t=e.indexOf("=");if(!(t<0)){var r=e.substr(0,t).trim(),o=e.substr(++t,e.length).trim();'"'==o[0]&&(o=o.slice(1,-1)),void 0==n[r]&&(n[r]=function(e,t){try{return t(e)}catch(n){return e}}(o,i))}})),n}};function pl(e,t,n){return{token:e,documentId:t,resolve:function(r,o,i){return t&&n?n(t,{ref:e}).then((function(e){if(e){var t=r&&r(e)||e.url||o;return i&&i(null,t),t}return i&&i(null,o),o})):Promise.resolve(o)}}}var hl="io.prismic.preview",gl="io.prismic.experiment",vl=function(){function e(e,t,n){this.data=e,this.masterRef=e.refs.filter((function(e){return e.isMasterRef}))[0],this.experiments=new Mu(e.experiments),this.bookmarks=e.bookmarks,this.httpClient=t,this.options=n,this.refs=e.refs,this.tags=e.tags,this.types=e.types,this.languages=e.languages}return e.prototype.form=function(e){var t=this.data.forms[e];return t?"tags"===e?new Ru(t,this.httpClient):new Pu(t,this.httpClient):null},e.prototype.searchForm=function(e){var t=this.form(e);return t instanceof Pu?t:null},e.prototype.tagsForm=function(){var e=this.form("tags");if(!e)throw new Error("Missing tags form");if(e instanceof Ru)return e;throw new Error("Unexpected error: tags form is not TagsForm")},e.prototype.everything=function(){var e=this.searchForm("everything");if(!e)throw new Error("Missing everything form");return e},e.prototype.master=function(){return this.masterRef.ref},e.prototype.ref=function(e){var t=this.data.refs.filter((function(t){return t.label===e}))[0];return t?t.ref:null},e.prototype.currentExperiment=function(){return this.experiments.current()},e.prototype.query=function(e,t,n){void 0===n&&(n=function(){});var r="function"===typeof t?{options:{},callback:t}:{options:t||{},callback:n},o=r.options,i=r.callback,a=this.everything();for(var s in o)a=a.set(s,o[s]);if(!o.ref){var u="";this.options.req?u=this.options.req.headers.cookie||"":"undefined"!==typeof window&&window.document&&(u=window.document.cookie||"");var l=dl.parse(u),c=l[hl],f=this.experiments.refFromCookie(l[gl]);a=a.ref(c||f||this.masterRef.ref)}return e&&a.query(e),a.submit(i)},e.prototype.queryFirst=function(e,t,n){var r="function"===typeof t?{options:{},callback:t}:{options:t||{},callback:n||function(){}},o=r.options,i=r.callback;return o.page=1,o.pageSize=1,this.query(e,o).then((function(e){var t=e&&e.results&&e.results[0];return i(null,t),t})).catch((function(e){throw i(e),e}))},e.prototype.getByID=function(e,t,n){var r=t?Cu({},t):{};return r.lang||(r.lang="*"),this.queryFirst(cl.at("document.id",e),r,n)},e.prototype.getByIDs=function(e,t,n){var r=t?Cu({},t):{};return r.lang||(r.lang="*"),this.query(cl.in("document.id",e),r,n)},e.prototype.getByUID=function(e,t,n,r){var o=n?Cu({},n):{};if("*"===o.lang)throw new Error("FORBIDDEN. You can't use getByUID with *, use the predicates instead.");return o.page||(o.page=1),this.queryFirst(cl.at("my."+e+".uid",t),o,r)},e.prototype.getSingle=function(e,t,n){var r=t?Cu({},t):{};return this.queryFirst(cl.at("document.type",e),r,n)},e.prototype.getBookmark=function(e,t,n){var r=this.data.bookmarks[e];return r?this.getByID(r,t,n):Promise.reject("Error retrieving bookmarked id")},e.prototype.getTags=function(e){return this.tagsForm().submit(e)},e.prototype.getPreviewResolver=function(e,t){return pl(e,t,this.getByID.bind(this))},e}();function ml(e){this.size=0,this.limit=e,this._keymap={}}ml.prototype.put=function(e,t){var n={key:e,value:t};if(this._keymap[e]=n,this.tail?(this.tail.newer=n,n.older=this.tail):this.head=n,this.tail=n,this.size===this.limit)return this.shift();this.size++},ml.prototype.shift=function(){var e=this.head;return e&&(this.head.newer?(this.head=this.head.newer,this.head.older=void 0):this.head=void 0,e.newer=e.older=void 0,delete this._keymap[e.key]),console.log("purging ",e.key),e},ml.prototype.get=function(e,t){var n=this._keymap[e];if(void 0!==n)return n===this.tail||(n.newer&&(n===this.head&&(this.head=n.newer),n.newer.older=n.older),n.older&&(n.older.newer=n.newer),n.newer=void 0,n.older=this.tail,this.tail&&(this.tail.newer=n),this.tail=n),t?n:n.value},ml.prototype.find=function(e){return this._keymap[e]},ml.prototype.set=function(e,t){var n,r=this.get(e,!0);return r?(n=r.value,r.value=t):(n=this.put(e,t))&&(n=n.value),n},ml.prototype.remove=function(e){var t=this._keymap[e];if(t)return delete this._keymap[t.key],t.newer&&t.older?(t.older.newer=t.newer,t.newer.older=t.older):t.newer?(t.newer.older=void 0,this.head=t.newer):t.older?(t.older.newer=void 0,this.tail=t.older):this.head=this.tail=void 0,this.size--,t.value},ml.prototype.removeAll=function(){this.head=this.tail=void 0,this.size=0,this._keymap={}},"function"===typeof Object.keys?ml.prototype.keys=function(){return Object.keys(this._keymap)}:ml.prototype.keys=function(){var e=[];for(var t in this._keymap)e.push(t);return e},ml.prototype.forEach=function(e,t,n){var r;if(!0===t?(n=!0,t=void 0):"object"!==typeof t&&(t=this),n)for(r=this.tail;r;)e.call(t,r.key,r.value,this),r=r.older;else for(r=this.head;r;)e.call(t,r.key,r.value,this),r=r.newer},ml.prototype.toString=function(){for(var e="",t=this.head;t;)e+=String(t.key)+":"+t.value,(t=t.newer)&&(e+=" < ");return e};var yl=function(){function e(e){void 0===e&&(e=1e3),this.lru=function(e){return new ml(e)}(e)}return e.prototype.isExpired=function(e){var t=this.lru.get(e,!1);return!!t&&(0!==t.expiredIn&&t.expiredIn<Date.now())},e.prototype.get=function(e,t){var n=this.lru.get(e,!1);n&&!this.isExpired(e)?t(null,n.data):t&&t(null)},e.prototype.set=function(e,t,n,r){this.lru.remove(e),this.lru.put(e,{data:t,expiredIn:n?Date.now()+1e3*n:0}),r&&r(null)},e.prototype.remove=function(e,t){this.lru.remove(e),t&&t(null)},e.prototype.clear=function(e){this.lru.removeAll(),e&&e(null)},e}();var bl=function(){function e(e){this.options=e||{}}return e.prototype.request=function(e,t){!function(e,t,n){var r,o={headers:{Accept:"application/json"}};t&&t.proxyAgent&&(o.agent=t.proxyAgent);var i=_u(e,o);(t.timeoutInMs?Promise.race([i,new Promise((function(n,o){r=setTimeout((function(){return o(new Error(e+" response timeout"))}),t.timeoutInMs)}))]):i).then((function(t){return clearTimeout(r),~~(t.status/100!==2)?t.text().then((function(){var n=new Error("Unexpected status code ["+t.status+"] on URL "+e);throw n.status=t.status,n})):t.json().then((function(e){var r=t.headers.get("cache-control"),o=r?/max-age=(\d+)/.exec(r):null,i=o?parseInt(o[1],10):void 0;n(null,e,t,i)}))})).catch((function(e){clearTimeout(r),n(e)}))}(e,this.options,t)},e}(),wl=function(){function e(e,t,n,r){this.requestHandler=e||new bl({proxyAgent:n,timeoutInMs:r}),this.cache=t||new yl}return e.prototype.request=function(e,t){this.requestHandler.request(e,(function(e,n,r,o){e?t&&t(e,null,r,o):n&&t&&t(null,n,r,o)}))},e.prototype.cachedRequest=function(e,t){var n=this,r=t||{};return new Promise((function(t,o){!function(t){var o=r.cacheKey||e;n.cache.get(o,(function(i,a){i||a?t(i,a):n.request(e,(function(e,i,a,s){if(e)t(e,null);else{var u=s||r.ttl;u&&n.cache.set(o,i,u,t),t(null,i)}}))}))}((function(e,n){e&&o(e),n&&t(n)}))}))},e}();var xl=function(){function e(e,t){this.options=t||{},this.url=e;var n=[this.options.accessToken&&"access_token="+this.options.accessToken,this.options.routes&&"routes="+encodeURIComponent(JSON.stringify(this.options.routes))].filter(Boolean);n.length>0&&(this.url+=function(e){return e.indexOf("?")>-1?"&":"?"}(e)+n.join("&")),this.apiDataTTL=this.options.apiDataTTL||5,this.httpClient=new wl(this.options.requestHandler,this.options.apiCache,this.options.proxyAgent,this.options.timeoutInMs)}return e.prototype.get=function(e){var t=this;return this.httpClient.cachedRequest(this.url,{ttl:this.apiDataTTL}).then((function(n){var r=new vl(n,t.httpClient,t.options);return e&&e(null,r),r})).catch((function(t){throw e&&e(t),t}))},e}(),_l=function(){function e(e,t){this.id=e,this.api=t,this.fields={}}return e.prototype.set=function(e,t){return this.fields[e]=t,this},e.prototype.ref=function(e){return this.set("ref",e)},e.prototype.query=function(e){return this.set("q",e)},e.prototype.pageSize=function(e){return this.set("pageSize",e)},e.prototype.graphQuery=function(e){return this.set("graphQuery",e)},e.prototype.lang=function(e){return this.set("lang",e)},e.prototype.page=function(e){return this.set("page",e)},e.prototype.after=function(e){return this.set("after",e)},e.prototype.orderings=function(e){return this.set("orderings",e)},e.prototype.url=function(){var t=this;return this.api.get().then((function(n){return e.toSearchForm(t,n).url()}))},e.prototype.submit=function(t){var n=this;return this.api.get().then((function(r){return e.toSearchForm(n,r).submit(t)}))},e.toSearchForm=function(e,t){var n=t.searchForm(e.id);if(n)return Object.keys(e.fields).reduce((function(t,n){var r=e.fields[n];return"q"===n?t.query(r):"pageSize"===n?t.pageSize(r):"graphQuery"===n?t.graphQuery(r):"lang"===n?t.lang(r):"page"===n?t.page(r):"after"===n?t.after(r):"orderings"===n?t.orderings(r):t.set(n,r)}),n);throw new Error("Unable to access to form "+e.id)},e}(),Sl=function(){function e(e,t){this.api=new xl(e,t)}return e.prototype.getApi=function(){return this.api.get()},e.prototype.everything=function(){return this.form("everything")},e.prototype.form=function(e){return new _l(e,this.api)},e.prototype.query=function(e,t,n){return this.getApi().then((function(r){return r.query(e,t,n)}))},e.prototype.queryFirst=function(e,t,n){return this.getApi().then((function(r){return r.queryFirst(e,t,n)}))},e.prototype.getByID=function(e,t,n){return this.getApi().then((function(r){return r.getByID(e,t,n)}))},e.prototype.getByIDs=function(e,t,n){return this.getApi().then((function(r){return r.getByIDs(e,t,n)}))},e.prototype.getByUID=function(e,t,n,r){return this.getApi().then((function(o){return o.getByUID(e,t,n,r)}))},e.prototype.getSingle=function(e,t,n){return this.getApi().then((function(r){return r.getSingle(e,t,n)}))},e.prototype.getBookmark=function(e,t,n){return this.getApi().then((function(r){return r.getBookmark(e,t,n)}))},e.prototype.getTags=function(){return this.getApi().then((function(e){return e.getTags()}))},e.prototype.getPreviewResolver=function(e,t){var n=this;return pl(e,t,(function(e,t){return n.getApi().then((function(n){return n.getByID(e,t)}))}))},e.getApi=function(e,t){return new xl(e,t).get()},e}(),Ol={experimentCookie:gl,previewCookie:hl,Predicates:cl,predicates:cl,Experiments:Mu,Api:xl,client:function(e,t){return new Sl(e,t)},getApi:Cl,api:function(e,t){return Cl(e,t)}};function Cl(e,t){return Sl.getApi(e,t)}var El=Ol,Al=El.client("https://netdata-news.cdn.prismic.io/api/v2"),Ml=[],kl=function(e){var t=e.app,n=void 0===t?"cloud":t,r=e.onCloseClick,o=e.children,a=(0,pu.Z)("news_last_seen"),s=a[0],u=a[1],l=(0,i.useState)(Ml),c=l[0],f=l[1],d=(0,i.useState)(),p=d[0],h=d[1],g=(0,Mi.Z)(),v=g[0],m=g[1];(0,i.useEffect)((function(){!function(e,t,n){Al.query(El.Predicates.at("document.tags",[e]),{pageSize:100,orderings:"[document.last_publication_date desc]"}).then(t).catch(n)}(n,(function(e){var t=e.results;return f(t)}),(function(){return h(!0)}))}),[]);var y=(0,i.useMemo)((function(){if(!c.length)return!0;var e=c[0].last_publication_date;return new Date(s)>=new Date(e)}),[s,c]),b=(0,i.useCallback)((function(){m(),u(new Date),r&&r()}),[r]);return i.createElement(i.Fragment,null,o({toggle:m,isOpen:v,upToDate:y}),v&&i.createElement(Xo.default,{backdrop:!0,onClickOutside:b,onEsc:b},i.createElement(Se.default,{background:"dropdown",round:!0,padding:[6],width:"640px",height:{max:"640px"},gap:4,column:!0},i.createElement(vu,{onClose:b}),i.createElement(gu,{column:!0,gap:6},p&&i.createElement(He.TextSmall,{textAlign:"center"},"Something went wrong \ud83d\ude14"),!p&&!c.length&&i.createElement(He.TextSmall,{textAlign:"center"},"There are no latest news"),!p&&c.length>0&&c.map((function(e){return i.createElement(xu,{key:e.id,item:e})}))))))},Pl=function(){return Pl=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Pl.apply(this,arguments)},Rl=function(e){var t=e.children,n=(0,i.useState)(!1),r=n[0],o=n[1],a=(0,i.useRef)(),s=(0,i.useMemo)((function(){return i.Children.map(t,(function(e){var t="DraggableTabs"===e.type.displayName;return i.cloneElement(e,Pl({collapsed:r},t&&{onResize:o,ref:a}))}))}),[r,t]);return i.createElement(Se.default,{column:!0,width:"100%",position:"relative",ref:a},i.createElement(Se.default,{height:"1px",background:"borderSecondary",width:"100%",position:"absolute",style:{top:0},zIndex:3}),i.createElement(Se.default,{justifyContent:"start",alignSelf:"start",alignItems:"end",width:"100%",height:"100%",overflow:"hidden",background:"topBarBg"},s),i.createElement(Se.default,{height:"1px",background:"borderSecondary",width:"100%",position:"absolute",style:{bottom:0},zIndex:1}))},Tl=n(46345),Il=function(){var e=(0,i.useContext)(s.ThemeContext);return function(t){return(0,ee.Lq)(t)({theme:e})}},Bl=function(){return Bl=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Bl.apply(this,arguments)},Dl=function(e){var t=e.borderSideColor,n=e.borderTopColor,r=e.showBorderLeft;return Bl({borderRight:"1px solid ".concat(t),borderTop:"3px solid ".concat(n)},r?{borderLeft:"1px solid ".concat(t)}:{})},jl=function(e){var t=e.active,n=void 0!==t&&t,r=e.showBorderLeft,o=void 0!==r&&r,a=Il(),s=a("borderSecondary"),u=n?a("primary"):"transparent";return{rootStyles:(0,i.useMemo)((function(){return{cursor:"pointer",gap:1,alignItems:"center",justifyContent:"start",position:"relative",padding:[2,3],background:n?"mainBackground":"topBarBg",zIndex:n?2:1,height:8,sx:Bl({},Dl({borderSideColor:s,borderTopColor:u,showBorderLeft:o}))}}),[u,s,n])}},Ll=function(){return Ll=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ll.apply(this,arguments)},Zl=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Nl=function(e){var t=e.active,n=e.onActivate,r=e.tabIndex,o=e.onMouseOver,a=e.onMouseOut,s=e.onClose,u=e.fixed,l=e.collapsed,c=e.icon,f=e.children,d=e.draggableRef,p=e.dragHandleProps,h=e.tabRef,g=e.showBorderLeft,v=e.tooltip,m=Zl(e,["active","onActivate","tabIndex","onMouseOver","onMouseOut","onClose","fixed","collapsed","icon","children","draggableRef","dragHandleProps","tabRef","showBorderLeft","tooltip"]),y=(0,i.useState)(),b=y[0],w=y[1],x=jl({active:t,showBorderLeft:g}).rootStyles,_=(0,i.useCallback)((function(e){e&&e.preventDefault(),n&&n()}),[n]),S=(0,i.useCallback)((function(e){w(!0),o&&o(e)}),[o]),O=(0,i.useCallback)((function(e){w(!1),a&&a(e)}),[a]),C=(0,i.useCallback)((function(e){e.preventDefault(),e.stopPropagation(),s&&s(r,t)}),[s,r,t]),E=(0,i.useCallback)((function(e){d&&d(e),h&&h(e)}),[d,h]),A=(0,i.useCallback)((function(e){return i.cloneElement(e,{color:t?"text":"border"})}),[t]),M=b&&!u;return i.createElement(Se.default,Ll({},x,{ref:E,onClick:_,onMouseOver:S,onMouseLeave:O},m),i.createElement(Se.default,null,M&&i.createElement(Tl.J,{name:"x",size:"small",color:t?"text":"border",onClick:C}),i.createElement(Xe,{content:v,align:v?"bottom":"top"},!M&&c&&A(c))),!l&&i.createElement(Se.default,Ll({},p),f))};Nl.displayName="Tab";var Fl=Nl,Hl=function(){return i.createElement(Se.default,{padding:[1,2],height:"100%"},i.createElement(Se.default,{width:"1px",background:"selected",height:"100%"}))},Vl=n(4942);function zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ul(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zl(Object(n),!0).forEach((function(t){(0,Vl.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Gl(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var Wl="function"===typeof Symbol&&Symbol.observable||"@@observable",$l=function(){return Math.random().toString(36).substring(7).split("").join(".")},ql={INIT:"@@redux/INIT"+$l(),REPLACE:"@@redux/REPLACE"+$l(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+$l()}};function Yl(e){if("object"!==typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Xl(e,t,n){var r;if("function"===typeof t&&"function"===typeof n||"function"===typeof n&&"function"===typeof arguments[3])throw new Error(Gl(0));if("function"===typeof t&&"undefined"===typeof n&&(n=t,t=void 0),"undefined"!==typeof n){if("function"!==typeof n)throw new Error(Gl(1));return n(Xl)(e,t)}if("function"!==typeof e)throw new Error(Gl(2));var o=e,i=t,a=[],s=a,u=!1;function l(){s===a&&(s=a.slice())}function c(){if(u)throw new Error(Gl(3));return i}function f(e){if("function"!==typeof e)throw new Error(Gl(4));if(u)throw new Error(Gl(5));var t=!0;return l(),s.push(e),function(){if(t){if(u)throw new Error(Gl(6));t=!1,l();var n=s.indexOf(e);s.splice(n,1),a=null}}}function d(e){if(!Yl(e))throw new Error(Gl(7));if("undefined"===typeof e.type)throw new Error(Gl(8));if(u)throw new Error(Gl(9));try{u=!0,i=o(i,e)}finally{u=!1}for(var t=a=s,n=0;n<t.length;n++){(0,t[n])()}return e}return d({type:ql.INIT}),(r={dispatch:d,subscribe:f,getState:c,replaceReducer:function(e){if("function"!==typeof e)throw new Error(Gl(10));o=e,d({type:ql.REPLACE})}})[Wl]=function(){var e,t=f;return(e={subscribe:function(e){if("object"!==typeof e||null===e)throw new Error(Gl(11));function n(){e.next&&e.next(c())}return n(),{unsubscribe:t(n)}}})[Wl]=function(){return this},e},r}function Kl(e,t){return function(){return t(e.apply(this,arguments))}}function Jl(e,t){if("function"===typeof e)return Kl(e,t);if("object"!==typeof e||null===e)throw new Error(Gl(16));var n={};for(var r in e){var o=e[r];"function"===typeof o&&(n[r]=Kl(o,t))}return n}function Ql(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}var ec=i.createContext(null);var tc=function(e){e()},nc=function(){return tc};var rc={notify:function(){},get:function(){return[]}};function oc(e,t){var n,r=rc;function o(){a.onStateChange&&a.onStateChange()}function i(){n||(n=t?t.addNestedSub(o):e.subscribe(o),r=function(){var e=nc(),t=null,n=null;return{clear:function(){t=null,n=null},notify:function(){e((function(){for(var e=t;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],n=t;n;)e.push(n),n=n.next;return e},subscribe:function(e){var r=!0,o=n={callback:e,next:null,prev:n};return o.prev?o.prev.next=o:t=o,function(){r&&null!==t&&(r=!1,o.next?o.next.prev=o.prev:n=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}var a={addNestedSub:function(e){return i(),r.subscribe(e)},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:o,isSubscribed:function(){return Boolean(n)},trySubscribe:i,tryUnsubscribe:function(){n&&(n(),n=void 0,r.clear(),r=rc)},getListeners:function(){return r}};return a}var ic="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?i.useLayoutEffect:i.useEffect;var ac=function(e){var t=e.store,n=e.context,r=e.children,o=(0,i.useMemo)((function(){var e=oc(t);return{store:t,subscription:e}}),[t]),a=(0,i.useMemo)((function(){return t.getState()}),[t]);ic((function(){var e=o.subscription;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),a!==t.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[o,a]);var s=n||ec;return i.createElement(s.Provider,{value:o},r)},sc=n(8679),uc=n.n(sc),lc=n(72973),cc=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],fc=["reactReduxForwardedRef"],dc=[],pc=[null,null];function hc(e,t){var n=e[1];return[t.payload,n+1]}function gc(e,t,n){ic((function(){return e.apply(void 0,t)}),n)}function vc(e,t,n,r,o,i,a){e.current=r,t.current=o,n.current=!1,i.current&&(i.current=null,a())}function mc(e,t,n,r,o,i,a,s,u,l){if(e){var c=!1,f=null,d=function(){if(!c){var e,n,d=t.getState();try{e=r(d,o.current)}catch(p){n=p,f=p}n||(f=null),e===i.current?a.current||u():(i.current=e,s.current=e,a.current=!0,l({type:"STORE_UPDATED",payload:{error:n}}))}};n.onStateChange=d,n.trySubscribe(),d();return function(){if(c=!0,n.tryUnsubscribe(),n.onStateChange=null,f)throw f}}}var yc=function(){return[null,0]};function bc(e,t){void 0===t&&(t={});var n=t,r=n.getDisplayName,o=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,a=n.methodName,s=void 0===a?"connectAdvanced":a,l=n.renderCountProp,c=void 0===l?void 0:l,f=n.shouldHandleStateChanges,d=void 0===f||f,p=n.storeKey,h=void 0===p?"store":p,g=(n.withRef,n.forwardRef),v=void 0!==g&&g,m=n.context,y=void 0===m?ec:m,b=(0,Ko.Z)(n,cc),w=y;return function(t){var n=t.displayName||t.name||"Component",r=o(n),a=(0,u.Z)({},b,{getDisplayName:o,methodName:s,renderCountProp:c,shouldHandleStateChanges:d,storeKey:h,displayName:r,wrappedComponentName:n,WrappedComponent:t}),l=b.pure;var f=l?i.useMemo:function(e){return e()};function p(n){var r=(0,i.useMemo)((function(){var e=n.reactReduxForwardedRef,t=(0,Ko.Z)(n,fc);return[n.context,e,t]}),[n]),o=r[0],s=r[1],l=r[2],c=(0,i.useMemo)((function(){return o&&o.Consumer&&(0,lc.isContextConsumer)(i.createElement(o.Consumer,null))?o:w}),[o,w]),p=(0,i.useContext)(c),h=Boolean(n.store)&&Boolean(n.store.getState)&&Boolean(n.store.dispatch);Boolean(p)&&Boolean(p.store);var g=h?n.store:p.store,v=(0,i.useMemo)((function(){return function(t){return e(t.dispatch,a)}(g)}),[g]),m=(0,i.useMemo)((function(){if(!d)return pc;var e=oc(g,h?null:p.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[g,h,p]),y=m[0],b=m[1],x=(0,i.useMemo)((function(){return h?p:(0,u.Z)({},p,{subscription:y})}),[h,p,y]),_=(0,i.useReducer)(hc,dc,yc),S=_[0][0],O=_[1];if(S&&S.error)throw S.error;var C=(0,i.useRef)(),E=(0,i.useRef)(l),A=(0,i.useRef)(),M=(0,i.useRef)(!1),k=f((function(){return A.current&&l===E.current?A.current:v(g.getState(),l)}),[g,S,l]);gc(vc,[E,C,M,l,k,A,b]),gc(mc,[d,g,y,v,E,C,M,A,b,O],[g,y,v]);var P=(0,i.useMemo)((function(){return i.createElement(t,(0,u.Z)({},k,{ref:s}))}),[s,t,k]);return(0,i.useMemo)((function(){return d?i.createElement(c.Provider,{value:x},P):P}),[c,P,x])}var g=l?i.memo(p):p;if(g.WrappedComponent=t,g.displayName=p.displayName=r,v){var m=i.forwardRef((function(e,t){return i.createElement(g,(0,u.Z)({},e,{reactReduxForwardedRef:t}))}));return m.displayName=r,m.WrappedComponent=t,uc()(m,t)}return uc()(g,t)}}function wc(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function xc(e,t){if(wc(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(t,n[o])||!wc(e[n[o]],t[n[o]]))return!1;return!0}function _c(e){return function(t,n){var r=e(t,n);function o(){return r}return o.dependsOnOwnProps=!1,o}}function Sc(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function Oc(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=Sc(e);var o=r(t,n);return"function"===typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=Sc(o),o=r(t,n)),o},r}}var Cc=[function(e){return"function"===typeof e?Oc(e):void 0},function(e){return e?void 0:_c((function(e){return{dispatch:e}}))},function(e){return e&&"object"===typeof e?_c((function(t){return function(e,t){var n={},r=function(r){var o=e[r];"function"===typeof o&&(n[r]=function(){return t(o.apply(void 0,arguments))})};for(var o in e)r(o);return n}(e,t)})):void 0}];var Ec=[function(e){return"function"===typeof e?Oc(e):void 0},function(e){return e?void 0:_c((function(){return{}}))}];function Ac(e,t,n){return(0,u.Z)({},n,e,t)}var Mc=[function(e){return"function"===typeof e?function(e){return function(t,n){n.displayName;var r,o=n.pure,i=n.areMergedPropsEqual,a=!1;return function(t,n,s){var u=e(t,n,s);return a?o&&i(u,r)||(r=u):(a=!0,r=u),r}}}(e):void 0},function(e){return e?void 0:function(){return Ac}}],kc=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function Pc(e,t,n,r){return function(o,i){return n(e(o,i),t(r,i),i)}}function Rc(e,t,n,r,o){var i,a,s,u,l,c=o.areStatesEqual,f=o.areOwnPropsEqual,d=o.areStatePropsEqual,p=!1;function h(o,p){var h=!f(p,a),g=!c(o,i,p,a);return i=o,a=p,h&&g?(s=e(i,a),t.dependsOnOwnProps&&(u=t(r,a)),l=n(s,u,a)):h?(e.dependsOnOwnProps&&(s=e(i,a)),t.dependsOnOwnProps&&(u=t(r,a)),l=n(s,u,a)):g?function(){var t=e(i,a),r=!d(t,s);return s=t,r&&(l=n(s,u,a)),l}():l}return function(o,c){return p?h(o,c):(s=e(i=o,a=c),u=t(r,a),l=n(s,u,a),p=!0,l)}}function Tc(e,t){var n=t.initMapStateToProps,r=t.initMapDispatchToProps,o=t.initMergeProps,i=(0,Ko.Z)(t,kc),a=n(e,i),s=r(e,i),u=o(e,i);return(i.pure?Rc:Pc)(a,s,u,e,i)}var Ic=["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"];function Bc(e,t,n){for(var r=t.length-1;r>=0;r--){var o=t[r](e);if(o)return o}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function Dc(e,t){return e===t}function jc(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?bc:n,o=t.mapStateToPropsFactories,i=void 0===o?Ec:o,a=t.mapDispatchToPropsFactories,s=void 0===a?Cc:a,l=t.mergePropsFactories,c=void 0===l?Mc:l,f=t.selectorFactory,d=void 0===f?Tc:f;return function(e,t,n,o){void 0===o&&(o={});var a=o,l=a.pure,f=void 0===l||l,p=a.areStatesEqual,h=void 0===p?Dc:p,g=a.areOwnPropsEqual,v=void 0===g?xc:g,m=a.areStatePropsEqual,y=void 0===m?xc:m,b=a.areMergedPropsEqual,w=void 0===b?xc:b,x=(0,Ko.Z)(a,Ic),_=Bc(e,i,"mapStateToProps"),S=Bc(t,s,"mapDispatchToProps"),O=Bc(n,c,"mergeProps");return r(d,(0,u.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:_,initMapDispatchToProps:S,initMergeProps:O,pure:f,areStatesEqual:h,areOwnPropsEqual:v,areStatePropsEqual:y,areMergedPropsEqual:w},x))}}var Lc=jc();var Zc;function Nc(e,t){var n=(0,i.useState)((function(){return{inputs:t,result:e()}}))[0],r=(0,i.useRef)(!0),o=(0,i.useRef)(n),a=r.current||Boolean(t&&o.current.inputs&&function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(t,o.current.inputs)),s=a?o.current:{inputs:t,result:e()};return(0,i.useEffect)((function(){r.current=!1,o.current=s}),[s]),s.result}Zc=mt.unstable_batchedUpdates,tc=Zc;var Fc=Nc,Hc=function(e,t){return Nc((function(){return e}),t)},Vc=function(e){var t=e.top,n=e.right,r=e.bottom,o=e.left;return{top:t,right:n,bottom:r,left:o,width:n-o,height:r-t,x:o,y:t,center:{x:(n+o)/2,y:(r+t)/2}}},zc=function(e,t){return{top:e.top-t.top,left:e.left-t.left,bottom:e.bottom+t.bottom,right:e.right+t.right}},Uc=function(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}},Gc={top:0,right:0,bottom:0,left:0},Wc=function(e){var t=e.borderBox,n=e.margin,r=void 0===n?Gc:n,o=e.border,i=void 0===o?Gc:o,a=e.padding,s=void 0===a?Gc:a,u=Vc(zc(t,r)),l=Vc(Uc(t,i)),c=Vc(Uc(l,s));return{marginBox:u,borderBox:Vc(t),paddingBox:l,contentBox:c,margin:r,border:i,padding:s}},$c=function(e){var t=e.slice(0,-2);if("px"!==e.slice(-2))return 0;var n=Number(t);return isNaN(n)&&ma(!1),n},qc=function(e,t){var n,r,o=e.borderBox,i=e.border,a=e.margin,s=e.padding,u=(r=t,{top:(n=o).top+r.y,left:n.left+r.x,bottom:n.bottom+r.y,right:n.right+r.x});return Wc({borderBox:u,border:i,margin:a,padding:s})},Yc=function(e,t){return void 0===t&&(t={x:window.pageXOffset,y:window.pageYOffset}),qc(e,t)},Xc=function(e,t){var n={top:$c(t.marginTop),right:$c(t.marginRight),bottom:$c(t.marginBottom),left:$c(t.marginLeft)},r={top:$c(t.paddingTop),right:$c(t.paddingRight),bottom:$c(t.paddingBottom),left:$c(t.paddingLeft)},o={top:$c(t.borderTopWidth),right:$c(t.borderRightWidth),bottom:$c(t.borderBottomWidth),left:$c(t.borderLeftWidth)};return Wc({borderBox:e,margin:n,padding:r,border:o})},Kc=function(e){var t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return Xc(t,n)},Jc=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];t=o,n||(n=requestAnimationFrame((function(){n=null,e.apply(void 0,t)})))};return r.cancel=function(){n&&(cancelAnimationFrame(n),n=null)},r};function Qc(e,t){}Qc.bind(null,"warn"),Qc.bind(null,"error");function ef(){}function tf(e,t,n){var r=t.map((function(t){var r=function(e,t){return(0,u.Z)({},e,{},t)}(n,t.options);return e.addEventListener(t.eventName,t.fn,r),function(){e.removeEventListener(t.eventName,t.fn,r)}}));return function(){r.forEach((function(e){e()}))}}var nf=!0,rf="Invariant failed";function of(e){this.message=e}function af(e,t){if(!e)throw new of(nf?rf:rf+": "+(t||""))}of.prototype.toString=function(){return this.message};var sf=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).callbacks=null,t.unbind=ef,t.onWindowError=function(e){var n=t.getCallbacks();n.isDragging()&&n.tryAbort(),e.error instanceof of&&e.preventDefault()},t.getCallbacks=function(){if(!t.callbacks)throw new Error("Unable to find AppCallbacks in <ErrorBoundary/>");return t.callbacks},t.setCallbacks=function(e){t.callbacks=e},t}f(t,e);var n=t.prototype;return n.componentDidMount=function(){this.unbind=tf(window,[{eventName:"error",fn:this.onWindowError}])},n.componentDidCatch=function(e){if(!(e instanceof of))throw e;this.setState({})},n.componentWillUnmount=function(){this.unbind()},n.render=function(){return this.props.children(this.setCallbacks)},t}(i.Component),uf=function(e){return e+1},lf=function(e,t){var n=e.droppableId===t.droppableId,r=uf(e.index),o=uf(t.index);return n?"\n You have moved the item from position "+r+"\n to position "+o+"\n ":"\n You have moved the item from position "+r+"\n in list "+e.droppableId+"\n to list "+t.droppableId+"\n in position "+o+"\n "},cf=function(e,t,n){return t.droppableId===n.droppableId?"\n The item "+e+"\n has been combined with "+n.draggableId:"\n The item "+e+"\n in list "+t.droppableId+"\n has been combined with "+n.draggableId+"\n in list "+n.droppableId+"\n "},ff=function(e){return"\n The item has returned to its starting position\n of "+uf(e.index)+"\n"},df="\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n",pf=function(e){return"\n You have lifted an item in position "+uf(e.source.index)+"\n"},hf=function(e){var t=e.destination;if(t)return lf(e.source,t);var n=e.combine;return n?cf(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},gf=function(e){if("CANCEL"===e.reason)return"\n Movement cancelled.\n "+ff(e.source)+"\n ";var t=e.destination,n=e.combine;return t?"\n You have dropped the item.\n "+lf(e.source,t)+"\n ":n?"\n You have dropped the item.\n "+cf(e.draggableId,e.source,n)+"\n ":"\n The item has been dropped while not over a drop area.\n "+ff(e.source)+"\n "},vf={x:0,y:0},mf=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},yf=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},bf=function(e,t){return e.x===t.x&&e.y===t.y},wf=function(e){return{x:0!==e.x?-e.x:0,y:0!==e.y?-e.y:0}},xf=function(e,t,n){var r;return void 0===n&&(n=0),(r={})[e]=t,r["x"===e?"y":"x"]=n,r},_f=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},Sf=function(e,t){return Math.min.apply(Math,t.map((function(t){return _f(e,t)})))},Of=function(e){return function(t){return{x:e(t.x),y:e(t.y)}}},Cf=function(e,t){return{top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}},Ef=function(e){return[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}]},Af=function(e,t){return t&&t.shouldClipSubject?function(e,t){var n=Vc({top:Math.max(t.top,e.top),right:Math.min(t.right,e.right),bottom:Math.min(t.bottom,e.bottom),left:Math.max(t.left,e.left)});return n.width<=0||n.height<=0?null:n}(t.pageMarginBox,e):Vc(e)},Mf=function(e){var t=e.page,n=e.withPlaceholder,r=e.axis,o=e.frame,i=function(e,t){return t?Cf(e,t.scroll.diff.displacement):e}(t.marginBox,o),a=function(e,t,n){var r;return n&&n.increasedBy?(0,u.Z)({},e,((r={})[t.end]=e[t.end]+n.increasedBy[t.line],r)):e}(i,r,n);return{page:t,withPlaceholder:n,active:Af(a,o)}},kf=function(e,t){e.frame||af(!1);var n=e.frame,r=yf(t,n.scroll.initial),o=wf(r),i=(0,u.Z)({},n,{scroll:{initial:n.scroll.initial,current:t,diff:{value:r,displacement:o},max:n.scroll.max}}),a=Mf({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:i});return(0,u.Z)({},e,{frame:i,subject:a})};function Pf(e){return Object.values?Object.values(e):Object.keys(e).map((function(t){return e[t]}))}function Rf(e,t){if(e.findIndex)return e.findIndex(t);for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}function Tf(e,t){if(e.find)return e.find(t);var n=Rf(e,t);return-1!==n?e[n]:void 0}function If(e){return Array.prototype.slice.call(e)}var Bf=Or((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),Df=Or((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),jf=Or((function(e){return Pf(e)})),Lf=Or((function(e){return Pf(e)})),Zf=Or((function(e,t){var n=Lf(t).filter((function(t){return e===t.descriptor.droppableId})).sort((function(e,t){return e.descriptor.index-t.descriptor.index}));return n}));function Nf(e){return e.at&&"REORDER"===e.at.type?e.at.destination:null}function Ff(e){return e.at&&"COMBINE"===e.at.type?e.at.combine:null}var Hf=Or((function(e,t){return t.filter((function(t){return t.descriptor.id!==e.descriptor.id}))})),Vf=function(e,t){return e.descriptor.droppableId===t.descriptor.id},zf={point:vf,value:0},Uf={invisible:{},visible:{},all:[]},Gf={displaced:Uf,displacedBy:zf,at:null},Wf=function(e,t){return function(n){return e<=n&&n<=t}},$f=function(e){var t=Wf(e.top,e.bottom),n=Wf(e.left,e.right);return function(r){if(t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right))return!0;var o=t(r.top)||t(r.bottom),i=n(r.left)||n(r.right);if(o&&i)return!0;var a=r.top<e.top&&r.bottom>e.bottom,s=r.left<e.left&&r.right>e.right;return!(!a||!s)||(a&&i||s&&o)}},qf=function(e){var t=Wf(e.top,e.bottom),n=Wf(e.left,e.right);return function(e){return t(e.top)&&t(e.bottom)&&n(e.left)&&n(e.right)}},Yf={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},Xf={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},Kf=function(e){var t=e.target,n=e.destination,r=e.viewport,o=e.withDroppableDisplacement,i=e.isVisibleThroughFrameFn,a=o?function(e,t){var n=t.frame?t.frame.scroll.diff.displacement:vf;return Cf(e,n)}(t,n):t;return function(e,t,n){return!!t.subject.active&&n(t.subject.active)(e)}(a,n,i)&&function(e,t,n){return n(t)(e)}(a,r,i)},Jf=function(e){return Kf((0,u.Z)({},e,{isVisibleThroughFrameFn:$f}))},Qf=function(e){return Kf((0,u.Z)({},e,{isVisibleThroughFrameFn:qf}))},ed=function(e,t,n){if("boolean"===typeof n)return n;if(!t)return!0;var r=t.invisible,o=t.visible;if(r[e])return!1;var i=o[e];return!i||i.shouldAnimate};function td(e){var t=e.afterDragging,n=e.destination,r=e.displacedBy,o=e.viewport,i=e.forceShouldAnimate,a=e.last;return t.reduce((function(e,t){var s=function(e,t){var n=e.page.marginBox,r={top:t.point.y,right:0,bottom:0,left:t.point.x};return Vc(zc(n,r))}(t,r),u=t.descriptor.id;if(e.all.push(u),!Jf({target:s,destination:n,viewport:o,withDroppableDisplacement:!0}))return e.invisible[t.descriptor.id]=!0,e;var l={draggableId:u,shouldAnimate:ed(u,a,i)};return e.visible[u]=l,e}),{all:[],visible:{},invisible:{}})}function nd(e){var t=e.insideDestination,n=e.inHomeList,r=e.displacedBy,o=e.destination,i=function(e,t){if(!e.length)return 0;var n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}(t,{inHomeList:n});return{displaced:Uf,displacedBy:r,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:i}}}}function rd(e){var t=e.draggable,n=e.insideDestination,r=e.destination,o=e.viewport,i=e.displacedBy,a=e.last,s=e.index,u=e.forceShouldAnimate,l=Vf(t,r);if(null==s)return nd({insideDestination:n,inHomeList:l,displacedBy:i,destination:r});var c=Tf(n,(function(e){return e.descriptor.index===s}));if(!c)return nd({insideDestination:n,inHomeList:l,displacedBy:i,destination:r});var f=Hf(t,n),d=n.indexOf(c);return{displaced:td({afterDragging:f.slice(d),destination:r,displacedBy:i,last:a,viewport:o.frame,forceShouldAnimate:u}),displacedBy:i,at:{type:"REORDER",destination:{droppableId:r.descriptor.id,index:s}}}}function od(e,t){return Boolean(t.effected[e])}var id=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.draggable,o=e.draggables,i=e.destination,a=e.insideDestination,s=e.previousImpact,u=e.viewport,l=e.afterCritical,c=s.at;if(c||af(!1),"REORDER"===c.type){var f=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.insideDestination,o=e.location;if(!r.length)return null;var i=o.index,a=t?i+1:i-1,s=r[0].descriptor.index,u=r[r.length-1].descriptor.index;return a<s||a>(n?u:u+1)?null:a}({isMovingForward:t,isInHomeList:n,location:c.destination,insideDestination:a});return null==f?null:rd({draggable:r,insideDestination:a,destination:i,viewport:u,last:s.displaced,displacedBy:s.displacedBy,index:f})}var d=function(e){var t=e.isMovingForward,n=e.destination,r=e.draggables,o=e.combine,i=e.afterCritical;if(!n.isCombineEnabled)return null;var a=o.draggableId,s=r[a].descriptor.index;return od(a,i)?t?s:s-1:t?s+1:s}({isMovingForward:t,destination:i,displaced:s.displaced,draggables:o,combine:c.combine,afterCritical:l});return null==d?null:rd({draggable:r,insideDestination:a,destination:i,viewport:u,last:s.displaced,displacedBy:s.displacedBy,index:d})},ad=function(e){var t=e.afterCritical,n=e.impact,r=e.draggables,o=Ff(n);o||af(!1);var i=o.draggableId,a=r[i].page.borderBox.center,s=function(e){var t=e.displaced,n=e.afterCritical,r=e.combineWith,o=e.displacedBy,i=Boolean(t.visible[r]||t.invisible[r]);return od(r,n)?i?vf:wf(o.point):i?o.point:vf}({displaced:n.displaced,afterCritical:t,combineWith:i,displacedBy:n.displacedBy});return mf(a,s)},sd=function(e,t){return t.margin[e.start]+t.borderBox[e.size]/2},ud=function(e,t,n){return t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2},ld=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return xf(t.line,n.marginBox[t.end]+sd(t,r),ud(t,n.marginBox,r))},cd=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return xf(t.line,n.marginBox[t.start]-function(e,t){return t.margin[e.end]+t.borderBox[e.size]/2}(t,r),ud(t,n.marginBox,r))},fd=function(e){var t=e.impact,n=e.draggable,r=e.draggables,o=e.droppable,i=e.afterCritical,a=Zf(o.descriptor.id,r),s=n.page,u=o.axis;if(!a.length)return function(e){var t=e.axis,n=e.moveInto,r=e.isMoving;return xf(t.line,n.contentBox[t.start]+sd(t,r),ud(t,n.contentBox,r))}({axis:u,moveInto:o.page,isMoving:s});var l=t.displaced,c=t.displacedBy,f=l.all[0];if(f){var d=r[f];if(od(f,i))return cd({axis:u,moveRelativeTo:d.page,isMoving:s});var p=qc(d.page,c.point);return cd({axis:u,moveRelativeTo:p,isMoving:s})}var h=a[a.length-1];if(h.descriptor.id===n.descriptor.id)return s.borderBox.center;if(od(h.descriptor.id,i)){var g=qc(h.page,wf(i.displacedBy.point));return ld({axis:u,moveRelativeTo:g,isMoving:s})}return ld({axis:u,moveRelativeTo:h.page,isMoving:s})},dd=function(e,t){var n=e.frame;return n?mf(t,n.scroll.diff.displacement):t},pd=function(e){var t=function(e){var t=e.impact,n=e.draggable,r=e.droppable,o=e.draggables,i=e.afterCritical,a=n.page.borderBox.center,s=t.at;return r&&s?"REORDER"===s.type?fd({impact:t,draggable:n,draggables:o,droppable:r,afterCritical:i}):ad({impact:t,draggables:o,afterCritical:i}):a}(e),n=e.droppable;return n?dd(n,t):t},hd=function(e,t){var n=yf(t,e.scroll.initial),r=wf(n);return{frame:Vc({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:r}}}};function gd(e,t){return e.map((function(e){return t[e]}))}var vd=function(e){var t=e.pageBorderBoxCenter,n=e.draggable,r=function(e,t){return mf(e.scroll.diff.displacement,t)}(e.viewport,t),o=yf(r,n.page.borderBox.center);return mf(n.client.borderBox.center,o)},md=function(e){var t=e.draggable,n=e.destination,r=e.newPageBorderBoxCenter,o=e.viewport,i=e.withDroppableDisplacement,a=e.onlyOnMainAxis,s=void 0!==a&&a,l=yf(r,t.page.borderBox.center),c={target:Cf(t.page.borderBox,l),destination:n,withDroppableDisplacement:i,viewport:o};return s?function(e){return Kf((0,u.Z)({},e,{isVisibleThroughFrameFn:(t=e.destination.axis,function(e){var n=Wf(e.top,e.bottom),r=Wf(e.left,e.right);return function(e){return t===Yf?n(e.top)&&n(e.bottom):r(e.left)&&r(e.right)}})}));var t}(c):Qf(c)},yd=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,o=e.draggables,i=e.previousImpact,a=e.viewport,s=e.previousPageBorderBoxCenter,l=e.previousClientSelection,c=e.afterCritical;if(!r.isEnabled)return null;var f=Zf(r.descriptor.id,o),d=Vf(n,r),p=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,o=e.insideDestination,i=e.previousImpact;if(!r.isCombineEnabled)return null;if(!Nf(i))return null;function a(e){var t={type:"COMBINE",combine:{draggableId:e,droppableId:r.descriptor.id}};return(0,u.Z)({},i,{at:t})}var s=i.displaced.all,l=s.length?s[0]:null;if(t)return l?a(l):null;var c=Hf(n,o);if(!l)return c.length?a(c[c.length-1].descriptor.id):null;var f=Rf(c,(function(e){return e.descriptor.id===l}));-1===f&&af(!1);var d=f-1;return d<0?null:a(c[d].descriptor.id)}({isMovingForward:t,draggable:n,destination:r,insideDestination:f,previousImpact:i})||id({isMovingForward:t,isInHomeList:d,draggable:n,draggables:o,destination:r,insideDestination:f,previousImpact:i,viewport:a,afterCritical:c});if(!p)return null;var h=pd({impact:p,draggable:n,droppable:r,draggables:o,afterCritical:c});if(md({draggable:n,destination:r,newPageBorderBoxCenter:h,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:vd({pageBorderBoxCenter:h,draggable:n,viewport:a}),impact:p,scrollJumpRequest:null};var g=yf(h,s),v=function(e){var t=e.impact,n=e.viewport,r=e.destination,o=e.draggables,i=e.maxScrollChange,a=hd(n,mf(n.scroll.current,i)),s=r.frame?kf(r,mf(r.frame.scroll.current,i)):r,l=t.displaced,c=td({afterDragging:gd(l.all,o),destination:r,displacedBy:t.displacedBy,viewport:a.frame,last:l,forceShouldAnimate:!1}),f=td({afterDragging:gd(l.all,o),destination:s,displacedBy:t.displacedBy,viewport:n.frame,last:l,forceShouldAnimate:!1}),d={},p={},h=[l,c,f];return l.all.forEach((function(e){var t=function(e,t){for(var n=0;n<t.length;n++){var r=t[n].visible[e];if(r)return r}return null}(e,h);t?p[e]=t:d[e]=!0})),(0,u.Z)({},t,{displaced:{all:l.all,invisible:d,visible:p}})}({impact:p,viewport:a,destination:r,draggables:o,maxScrollChange:g});return{clientSelection:l,impact:v,scrollJumpRequest:g}},bd=function(e){var t=e.subject.active;return t||af(!1),t},wd=function(e,t){var n=e.page.borderBox.center;return od(e.descriptor.id,t)?yf(n,t.displacedBy.point):n},xd=function(e,t){var n=e.page.borderBox;return od(e.descriptor.id,t)?Cf(n,wf(t.displacedBy.point)):n},_d=Or((function(e,t){var n=t[e.line];return{value:n,point:xf(e.line,n)}})),Sd=function(e,t){return(0,u.Z)({},e,{scroll:(0,u.Z)({},e.scroll,{max:t})})},Od=function(e,t,n){var r=e.frame;Vf(t,e)&&af(!1),e.subject.withPlaceholder&&af(!1);var o=_d(e.axis,t.displaceBy).point,i=function(e,t,n){var r=e.axis;if("virtual"===e.descriptor.mode)return xf(r.line,t[r.line]);var o=e.subject.page.contentBox[r.size],i=Zf(e.descriptor.id,n).reduce((function(e,t){return e+t.client.marginBox[r.size]}),0),a=i+t[r.line]-o;return a<=0?null:xf(r.line,a)}(e,o,n),a={placeholderSize:o,increasedBy:i,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!r){var s=Mf({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return(0,u.Z)({},e,{subject:s})}var l=i?mf(r.scroll.max,i):r.scroll.max,c=Sd(r,l),f=Mf({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:c});return(0,u.Z)({},e,{subject:f,frame:c})},Cd=function(e){var t=e.isMovingForward,n=e.previousPageBorderBoxCenter,r=e.draggable,o=e.isOver,i=e.draggables,a=e.droppables,s=e.viewport,u=e.afterCritical,l=function(e){var t=e.isMovingForward,n=e.pageBorderBoxCenter,r=e.source,o=e.droppables,i=e.viewport,a=r.subject.active;if(!a)return null;var s=r.axis,u=Wf(a[s.start],a[s.end]),l=jf(o).filter((function(e){return e!==r})).filter((function(e){return e.isEnabled})).filter((function(e){return Boolean(e.subject.active)})).filter((function(e){return $f(i.frame)(bd(e))})).filter((function(e){var n=bd(e);return t?a[s.crossAxisEnd]<n[s.crossAxisEnd]:n[s.crossAxisStart]<a[s.crossAxisStart]})).filter((function(e){var t=bd(e),n=Wf(t[s.start],t[s.end]);return u(t[s.start])||u(t[s.end])||n(a[s.start])||n(a[s.end])})).sort((function(e,n){var r=bd(e)[s.crossAxisStart],o=bd(n)[s.crossAxisStart];return t?r-o:o-r})).filter((function(e,t,n){return bd(e)[s.crossAxisStart]===bd(n[0])[s.crossAxisStart]}));if(!l.length)return null;if(1===l.length)return l[0];var c=l.filter((function(e){return Wf(bd(e)[s.start],bd(e)[s.end])(n[s.line])}));return 1===c.length?c[0]:c.length>1?c.sort((function(e,t){return bd(e)[s.start]-bd(t)[s.start]}))[0]:l.sort((function(e,t){var r=Sf(n,Ef(bd(e))),o=Sf(n,Ef(bd(t)));return r!==o?r-o:bd(e)[s.start]-bd(t)[s.start]}))[0]}({isMovingForward:t,pageBorderBoxCenter:n,source:o,droppables:a,viewport:s});if(!l)return null;var c=Zf(l.descriptor.id,i),f=function(e){var t=e.pageBorderBoxCenter,n=e.viewport,r=e.destination,o=e.insideDestination,i=e.afterCritical,a=o.filter((function(e){return Qf({target:xd(e,i),destination:r,viewport:n.frame,withDroppableDisplacement:!0})})).sort((function(e,n){var o=_f(t,dd(r,wd(e,i))),a=_f(t,dd(r,wd(n,i)));return o<a?-1:a<o?1:e.descriptor.index-n.descriptor.index}));return a[0]||null}({pageBorderBoxCenter:n,viewport:s,destination:l,insideDestination:c,afterCritical:u}),d=function(e){var t=e.previousPageBorderBoxCenter,n=e.moveRelativeTo,r=e.insideDestination,o=e.draggable,i=e.draggables,a=e.destination,s=e.viewport,u=e.afterCritical;if(!n){if(r.length)return null;var l={displaced:Uf,displacedBy:zf,at:{type:"REORDER",destination:{droppableId:a.descriptor.id,index:0}}},c=pd({impact:l,draggable:o,droppable:a,draggables:i,afterCritical:u}),f=Vf(o,a)?a:Od(a,o,i);return md({draggable:o,destination:f,newPageBorderBoxCenter:c,viewport:s.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?l:null}var d=Boolean(t[a.axis.line]<=n.page.borderBox.center[a.axis.line]),p=function(){var e=n.descriptor.index;return n.descriptor.id===o.descriptor.id||d?e:e+1}(),h=_d(a.axis,o.displaceBy);return rd({draggable:o,insideDestination:r,destination:a,viewport:s,displacedBy:h,last:Uf,index:p})}({previousPageBorderBoxCenter:n,destination:l,draggable:r,draggables:i,moveRelativeTo:f,insideDestination:c,viewport:s,afterCritical:u});if(!d)return null;var p=pd({impact:d,draggable:r,droppable:l,draggables:i,afterCritical:u});return{clientSelection:vd({pageBorderBoxCenter:p,draggable:r,viewport:s}),impact:d,scrollJumpRequest:null}},Ed=function(e){var t=e.at;return t?"REORDER"===t.type?t.destination.droppableId:t.combine.droppableId:null},Ad=function(e){var t=e.state,n=e.type,r=function(e,t){var n=Ed(e);return n?t[n]:null}(t.impact,t.dimensions.droppables),o=Boolean(r),i=t.dimensions.droppables[t.critical.droppable.id],a=r||i,s=a.axis.direction,u="vertical"===s&&("MOVE_UP"===n||"MOVE_DOWN"===n)||"horizontal"===s&&("MOVE_LEFT"===n||"MOVE_RIGHT"===n);if(u&&!o)return null;var l="MOVE_DOWN"===n||"MOVE_RIGHT"===n,c=t.dimensions.draggables[t.critical.draggable.id],f=t.current.page.borderBoxCenter,d=t.dimensions,p=d.draggables,h=d.droppables;return u?yd({isMovingForward:l,previousPageBorderBoxCenter:f,draggable:c,destination:a,draggables:p,viewport:t.viewport,previousClientSelection:t.current.client.selection,previousImpact:t.impact,afterCritical:t.afterCritical}):Cd({isMovingForward:l,previousPageBorderBoxCenter:f,draggable:c,isOver:a,draggables:p,droppables:h,viewport:t.viewport,afterCritical:t.afterCritical})};function Md(e){return"DRAGGING"===e.phase||"COLLECTING"===e.phase}function kd(e){var t=Wf(e.top,e.bottom),n=Wf(e.left,e.right);return function(e){return t(e.y)&&n(e.x)}}function Pd(e){var t=e.pageBorderBox,n=e.draggable,r=e.droppables,o=jf(r).filter((function(e){if(!e.isEnabled)return!1;var n,r,o=e.subject.active;if(!o)return!1;if(r=o,!((n=t).left<r.right&&n.right>r.left&&n.top<r.bottom&&n.bottom>r.top))return!1;if(kd(o)(t.center))return!0;var i=e.axis,a=o.center[i.crossAxisLine],s=t[i.crossAxisStart],u=t[i.crossAxisEnd],l=Wf(o[i.crossAxisStart],o[i.crossAxisEnd]),c=l(s),f=l(u);return!c&&!f||(c?s<a:u>a)}));return o.length?1===o.length?o[0].descriptor.id:function(e){var t=e.pageBorderBox,n=e.draggable,r=e.candidates,o=n.page.borderBox.center,i=r.map((function(e){var n=e.axis,r=xf(e.axis.line,t.center[n.line],e.page.borderBox.center[n.crossAxisLine]);return{id:e.descriptor.id,distance:_f(o,r)}})).sort((function(e,t){return t.distance-e.distance}));return i[0]?i[0].id:null}({pageBorderBox:t,draggable:n,candidates:o}):null}var Rd=function(e,t){return Vc(Cf(e,t))};function Td(e){var t=e.displaced,n=e.id;return Boolean(t.visible[n]||t.invisible[n])}var Id=function(e){var t=e.pageOffset,n=e.draggable,r=e.draggables,o=e.droppables,i=e.previousImpact,a=e.viewport,s=e.afterCritical,u=Rd(n.page.borderBox,t),l=Pd({pageBorderBox:u,draggable:n,droppables:o});if(!l)return Gf;var c=o[l],f=Zf(c.descriptor.id,r),d=function(e,t){var n=e.frame;return n?Rd(t,n.scroll.diff.value):t}(c,u);return function(e){var t=e.draggable,n=e.pageBorderBoxWithDroppableScroll,r=e.previousImpact,o=e.destination,i=e.insideDestination,a=e.afterCritical;if(!o.isCombineEnabled)return null;var s=o.axis,u=_d(o.axis,t.displaceBy),l=u.value,c=n[s.start],f=n[s.end],d=Tf(Hf(t,i),(function(e){var t=e.descriptor.id,n=e.page.borderBox,o=n[s.size]/4,i=od(t,a),u=Td({displaced:r.displaced,id:t});return i?u?f>n[s.start]+o&&f<n[s.end]-o:c>n[s.start]-l+o&&c<n[s.end]-l-o:u?f>n[s.start]+l+o&&f<n[s.end]+l-o:c>n[s.start]+o&&c<n[s.end]-o}));return d?{displacedBy:u,displaced:r.displaced,at:{type:"COMBINE",combine:{draggableId:d.descriptor.id,droppableId:o.descriptor.id}}}:null}({pageBorderBoxWithDroppableScroll:d,draggable:n,previousImpact:i,destination:c,insideDestination:f,afterCritical:s})||function(e){var t=e.pageBorderBoxWithDroppableScroll,n=e.draggable,r=e.destination,o=e.insideDestination,i=e.last,a=e.viewport,s=e.afterCritical,u=r.axis,l=_d(r.axis,n.displaceBy),c=l.value,f=t[u.start],d=t[u.end],p=function(e){var t=e.draggable,n=e.closest,r=e.inHomeList;return n?r&&n.descriptor.index>t.descriptor.index?n.descriptor.index-1:n.descriptor.index:null}({draggable:n,closest:Tf(Hf(n,o),(function(e){var t=e.descriptor.id,n=e.page.borderBox.center[u.line],r=od(t,s),o=Td({displaced:i,id:t});return r?o?d<=n:f<n-c:o?d<=n+c:f<n})),inHomeList:Vf(n,r)});return rd({draggable:n,insideDestination:o,destination:r,viewport:a,last:i,displacedBy:l,index:p})}({pageBorderBoxWithDroppableScroll:d,draggable:n,destination:c,insideDestination:f,last:i.displaced,viewport:a,afterCritical:s})},Bd=function(e,t){var n;return(0,u.Z)({},e,((n={})[t.descriptor.id]=t,n))},Dd=function(e){var t=e.previousImpact,n=e.impact,r=e.droppables,o=Ed(t),i=Ed(n);if(!o)return r;if(o===i)return r;var a=r[o];if(!a.subject.withPlaceholder)return r;var s=function(e){var t=e.subject.withPlaceholder;t||af(!1);var n=e.frame;if(!n){var r=Mf({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return(0,u.Z)({},e,{subject:r})}var o=t.oldFrameMaxScroll;o||af(!1);var i=Sd(n,o),a=Mf({page:e.subject.page,axis:e.axis,frame:i,withPlaceholder:null});return(0,u.Z)({},e,{subject:a,frame:i})}(a);return Bd(r,s)},jd=function(e){var t=e.state,n=e.clientSelection,r=e.dimensions,o=e.viewport,i=e.impact,a=e.scrollJumpRequest,s=o||t.viewport,l=r||t.dimensions,c=n||t.current.client.selection,f=yf(c,t.initial.client.selection),d={offset:f,selection:c,borderBoxCenter:mf(t.initial.client.borderBoxCenter,f)},p={selection:mf(d.selection,s.scroll.current),borderBoxCenter:mf(d.borderBoxCenter,s.scroll.current),offset:mf(d.offset,s.scroll.diff.value)},h={client:d,page:p};if("COLLECTING"===t.phase)return(0,u.Z)({phase:"COLLECTING"},t,{dimensions:l,viewport:s,current:h});var g=l.draggables[t.critical.draggable.id],v=i||Id({pageOffset:p.offset,draggable:g,draggables:l.draggables,droppables:l.droppables,previousImpact:t.impact,viewport:s,afterCritical:t.afterCritical}),m=function(e){var t=e.draggable,n=e.draggables,r=e.droppables,o=e.previousImpact,i=e.impact,a=Dd({previousImpact:o,impact:i,droppables:r}),s=Ed(i);if(!s)return a;var u=r[s];if(Vf(t,u))return a;if(u.subject.withPlaceholder)return a;var l=Od(u,t,n);return Bd(a,l)}({draggable:g,impact:v,previousImpact:t.impact,draggables:l.draggables,droppables:l.droppables});return(0,u.Z)({},t,{current:h,dimensions:{draggables:l.draggables,droppables:m},impact:v,viewport:s,scrollJumpRequest:a||null,forceShouldAnimate:!a&&null})};var Ld=function(e){var t=e.impact,n=e.viewport,r=e.draggables,o=e.destination,i=e.forceShouldAnimate,a=t.displaced,s=function(e,t){return e.map((function(e){return t[e]}))}(a.all,r),l=td({afterDragging:s,destination:o,displacedBy:t.displacedBy,viewport:n.frame,forceShouldAnimate:i,last:a});return(0,u.Z)({},t,{displaced:l})},Zd=function(e){var t=e.impact,n=e.draggable,r=e.droppable,o=e.draggables,i=e.viewport,a=e.afterCritical,s=pd({impact:t,draggable:n,draggables:o,droppable:r,afterCritical:a});return vd({pageBorderBoxCenter:s,draggable:n,viewport:i})},Nd=function(e){var t=e.state,n=e.dimensions,r=e.viewport;"SNAP"!==t.movementMode&&af(!1);var o=t.impact,i=r||t.viewport,a=n||t.dimensions,s=a.draggables,u=a.droppables,l=s[t.critical.draggable.id],c=Ed(o);c||af(!1);var f=u[c],d=Ld({impact:o,viewport:i,destination:f,draggables:s}),p=Zd({impact:d,draggable:l,droppable:f,draggables:s,viewport:i,afterCritical:t.afterCritical});return jd({impact:d,clientSelection:p,state:t,dimensions:a,viewport:i})},Fd=function(e){var t=e.draggable,n=e.home,r=e.draggables,o=e.viewport,i=_d(n.axis,t.displaceBy),a=Zf(n.descriptor.id,r),s=a.indexOf(t);-1===s&&af(!1);var u,l=a.slice(s+1),c=l.reduce((function(e,t){return e[t.descriptor.id]=!0,e}),{}),f={inVirtualList:"virtual"===n.descriptor.mode,displacedBy:i,effected:c};return{impact:{displaced:td({afterDragging:l,destination:n,displacedBy:i,last:null,viewport:o.frame,forceShouldAnimate:!1}),displacedBy:i,at:{type:"REORDER",destination:(u=t.descriptor,{index:u.index,droppableId:u.droppableId})}},afterCritical:f}},Hd=function(e){0},Vd=function(e){0},zd=function(e){var t=e.additions,n=e.updatedDroppables,r=e.viewport,o=r.scroll.diff.value;return t.map((function(e){var t=e.descriptor.droppableId,i=function(e){var t=e.frame;return t||af(!1),t}(n[t]),a=i.scroll.diff.value,s=function(e){var t=e.draggable,n=e.offset,r=e.initialWindowScroll,o=qc(t.client,n),i=Yc(o,r);return(0,u.Z)({},t,{placeholder:(0,u.Z)({},t.placeholder,{client:o}),client:o,page:i})}({draggable:e,offset:mf(o,a),initialWindowScroll:r.scroll.initial});return s}))},Ud=function(e){return"SNAP"===e.movementMode},Gd=function(e,t,n){var r=function(e,t){return{draggables:e.draggables,droppables:Bd(e.droppables,t)}}(e.dimensions,t);return!Ud(e)||n?jd({state:e,dimensions:r}):Nd({state:e,dimensions:r})};function Wd(e){return e.isDragging&&"SNAP"===e.movementMode?(0,u.Z)({phase:"DRAGGING"},e,{scrollJumpRequest:null}):e}var $d={phase:"IDLE",completed:null,shouldFlush:!1},qd=function(e,t){if(void 0===e&&(e=$d),"FLUSH"===t.type)return(0,u.Z)({},$d,{shouldFlush:!0});if("INITIAL_PUBLISH"===t.type){"IDLE"!==e.phase&&af(!1);var n=t.payload,r=n.critical,o=n.clientSelection,i=n.viewport,a=n.dimensions,s=n.movementMode,l=a.draggables[r.draggable.id],c=a.droppables[r.droppable.id],f={selection:o,borderBoxCenter:l.client.borderBox.center,offset:vf},d={client:f,page:{selection:mf(f.selection,i.scroll.initial),borderBoxCenter:mf(f.selection,i.scroll.initial),offset:mf(f.selection,i.scroll.diff.value)}},p=jf(a.droppables).every((function(e){return!e.isFixedOnPage})),h=Fd({draggable:l,home:c,draggables:a.draggables,viewport:i}),g=h.impact;return{phase:"DRAGGING",isDragging:!0,critical:r,movementMode:s,dimensions:a,initial:d,current:d,isWindowScrollAllowed:p,impact:g,afterCritical:h.afterCritical,onLiftImpact:g,viewport:i,scrollJumpRequest:null,forceShouldAnimate:null}}if("COLLECTION_STARTING"===t.type)return"COLLECTING"===e.phase||"DROP_PENDING"===e.phase?e:("DRAGGING"!==e.phase&&af(!1),(0,u.Z)({phase:"COLLECTING"},e,{phase:"COLLECTING"}));if("PUBLISH_WHILE_DRAGGING"===t.type)return"COLLECTING"!==e.phase&&"DROP_PENDING"!==e.phase&&af(!1),function(e){var t=e.state,n=e.published;Hd();var r=n.modified.map((function(e){var n=t.dimensions.droppables[e.droppableId];return kf(n,e.scroll)})),o=(0,u.Z)({},t.dimensions.droppables,{},Bf(r)),i=Df(zd({additions:n.additions,updatedDroppables:o,viewport:t.viewport})),a=(0,u.Z)({},t.dimensions.draggables,{},i);n.removals.forEach((function(e){delete a[e]}));var s={droppables:o,draggables:a},l=Ed(t.impact),c=l?s.droppables[l]:null,f=s.draggables[t.critical.draggable.id],d=s.droppables[t.critical.droppable.id],p=Fd({draggable:f,home:d,draggables:a,viewport:t.viewport}),h=p.impact,g=p.afterCritical,v=c&&c.isCombineEnabled?t.impact:h,m=Id({pageOffset:t.current.page.offset,draggable:s.draggables[t.critical.draggable.id],draggables:s.draggables,droppables:s.droppables,previousImpact:v,viewport:t.viewport,afterCritical:g});Vd();var y=(0,u.Z)({phase:"DRAGGING"},t,{phase:"DRAGGING",impact:m,onLiftImpact:h,dimensions:s,afterCritical:g,forceShouldAnimate:!1});return"COLLECTING"===t.phase?y:(0,u.Z)({phase:"DROP_PENDING"},y,{phase:"DROP_PENDING",reason:t.reason,isWaiting:!1})}({state:e,published:t.payload});if("MOVE"===t.type){if("DROP_PENDING"===e.phase)return e;Md(e)||af(!1);var v=t.payload.client;return bf(v,e.current.client.selection)?e:jd({state:e,clientSelection:v,impact:Ud(e)?e.impact:null})}if("UPDATE_DROPPABLE_SCROLL"===t.type){if("DROP_PENDING"===e.phase)return Wd(e);if("COLLECTING"===e.phase)return Wd(e);Md(e)||af(!1);var m=t.payload,y=m.id,b=m.newScroll,w=e.dimensions.droppables[y];if(!w)return e;var x=kf(w,b);return Gd(e,x,!1)}if("UPDATE_DROPPABLE_IS_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;Md(e)||af(!1);var _=t.payload,S=_.id,O=_.isEnabled,C=e.dimensions.droppables[S];C||af(!1),C.isEnabled===O&&af(!1);var E=(0,u.Z)({},C,{isEnabled:O});return Gd(e,E,!0)}if("UPDATE_DROPPABLE_IS_COMBINE_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;Md(e)||af(!1);var A=t.payload,M=A.id,k=A.isCombineEnabled,P=e.dimensions.droppables[M];P||af(!1),P.isCombineEnabled===k&&af(!1);var R=(0,u.Z)({},P,{isCombineEnabled:k});return Gd(e,R,!0)}if("MOVE_BY_WINDOW_SCROLL"===t.type){if("DROP_PENDING"===e.phase||"DROP_ANIMATING"===e.phase)return e;Md(e)||af(!1),e.isWindowScrollAllowed||af(!1);var T=t.payload.newScroll;if(bf(e.viewport.scroll.current,T))return Wd(e);var I=hd(e.viewport,T);return Ud(e)?Nd({state:e,viewport:I}):jd({state:e,viewport:I})}if("UPDATE_VIEWPORT_MAX_SCROLL"===t.type){if(!Md(e))return e;var B=t.payload.maxScroll;if(bf(B,e.viewport.scroll.max))return e;var D=(0,u.Z)({},e.viewport,{scroll:(0,u.Z)({},e.viewport.scroll,{max:B})});return(0,u.Z)({phase:"DRAGGING"},e,{viewport:D})}if("MOVE_UP"===t.type||"MOVE_DOWN"===t.type||"MOVE_LEFT"===t.type||"MOVE_RIGHT"===t.type){if("COLLECTING"===e.phase||"DROP_PENDING"===e.phase)return e;"DRAGGING"!==e.phase&&af(!1);var j=Ad({state:e,type:t.type});return j?jd({state:e,impact:j.impact,clientSelection:j.clientSelection,scrollJumpRequest:j.scrollJumpRequest}):e}if("DROP_PENDING"===t.type){var L=t.payload.reason;return"COLLECTING"!==e.phase&&af(!1),(0,u.Z)({phase:"DROP_PENDING"},e,{phase:"DROP_PENDING",isWaiting:!0,reason:L})}if("DROP_ANIMATE"===t.type){var Z=t.payload,N=Z.completed,F=Z.dropDuration,H=Z.newHomeClientOffset;return"DRAGGING"!==e.phase&&"DROP_PENDING"!==e.phase&&af(!1),{phase:"DROP_ANIMATING",completed:N,dropDuration:F,newHomeClientOffset:H,dimensions:e.dimensions}}return"DROP_COMPLETE"===t.type?{phase:"IDLE",completed:t.payload.completed,shouldFlush:!1}:e},Yd=function(e){return{type:"LIFT",payload:e}},Xd=function(e){return{type:"PUBLISH_WHILE_DRAGGING",payload:e}},Kd=function(){return{type:"COLLECTION_STARTING",payload:null}},Jd=function(e){return{type:"UPDATE_DROPPABLE_SCROLL",payload:e}},Qd=function(e){return{type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}},ep=function(e){return{type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}},tp=function(e){return{type:"MOVE",payload:e}},np=function(){return{type:"MOVE_UP",payload:null}},rp=function(){return{type:"MOVE_DOWN",payload:null}},op=function(){return{type:"MOVE_RIGHT",payload:null}},ip=function(){return{type:"MOVE_LEFT",payload:null}},ap=function(){return{type:"FLUSH",payload:null}},sp=function(e){return{type:"DROP_COMPLETE",payload:e}},up=function(e){return{type:"DROP",payload:e}},lp=function(){return{type:"DROP_ANIMATION_FINISHED",payload:null}};var cp="cubic-bezier(.2,1,.1,1)",fp={drop:0,combining:.7},dp={drop:.75},pp=.2+"s "+"cubic-bezier(0.2, 0, 0, 1)",hp={fluid:"opacity "+pp,snap:"transform "+pp+", opacity "+pp,drop:function(e){var t=e+"s "+cp;return"transform "+t+", opacity "+t},outOfTheWay:"transform "+pp,placeholder:"height "+pp+", width "+pp+", margin "+pp},gp=function(e){return bf(e,vf)?null:"translate("+e.x+"px, "+e.y+"px)"},vp={moveTo:gp,drop:function(e,t){var n=gp(e);return n?t?n+" scale("+dp.drop+")":n:null}},mp=.33,yp=.55,bp=yp-mp,wp=function(e){var t=e.getState,n=e.dispatch;return function(e){return function(r){if("DROP"===r.type){var o=t(),i=r.payload.reason;if("COLLECTING"!==o.phase){if("IDLE"!==o.phase){"DROP_PENDING"===o.phase&&o.isWaiting&&af(!1),"DRAGGING"!==o.phase&&"DROP_PENDING"!==o.phase&&af(!1);var a=o.critical,s=o.dimensions,l=s.draggables[o.critical.draggable.id],c=function(e){var t=e.draggables,n=e.reason,r=e.lastImpact,o=e.home,i=e.viewport,a=e.onLiftImpact;return r.at&&"DROP"===n?"REORDER"===r.at.type?{impact:r,didDropInsideDroppable:!0}:{impact:(0,u.Z)({},r,{displaced:Uf}),didDropInsideDroppable:!0}:{impact:Ld({draggables:t,impact:a,destination:o,viewport:i,forceShouldAnimate:!0}),didDropInsideDroppable:!1}}({reason:i,lastImpact:o.impact,afterCritical:o.afterCritical,onLiftImpact:o.onLiftImpact,home:o.dimensions.droppables[o.critical.droppable.id],viewport:o.viewport,draggables:o.dimensions.draggables}),f=c.impact,d=c.didDropInsideDroppable,p=d?Nf(f):null,h=d?Ff(f):null,g={index:a.draggable.index,droppableId:a.droppable.id},v={draggableId:l.descriptor.id,type:l.descriptor.type,source:g,reason:i,mode:o.movementMode,destination:p,combine:h},m=function(e){var t=e.impact,n=e.draggable,r=e.dimensions,o=e.viewport,i=e.afterCritical,a=r.draggables,s=r.droppables,u=Ed(t),l=u?s[u]:null,c=s[n.descriptor.droppableId],f=Zd({impact:t,draggable:n,draggables:a,afterCritical:i,droppable:l||c,viewport:o});return yf(f,n.client.borderBox.center)}({impact:f,draggable:l,dimensions:s,viewport:o.viewport,afterCritical:o.afterCritical}),y={critical:o.critical,afterCritical:o.afterCritical,result:v,impact:f};if(!bf(o.current.client.offset,m)||Boolean(v.combine)){var b=function(e){var t=e.current,n=e.destination,r=e.reason,o=_f(t,n);if(o<=0)return mp;if(o>=1500)return yp;var i=mp+bp*(o/1500);return Number(("CANCEL"===r?.6*i:i).toFixed(2))}({current:o.current.client.offset,destination:m,reason:i});n(function(e){return{type:"DROP_ANIMATE",payload:e}}({newHomeClientOffset:m,dropDuration:b,completed:y}))}else n(sp({completed:y}))}}else n(function(e){return{type:"DROP_PENDING",payload:e}}({reason:i}))}else e(r)}}},xp=function(){return{x:window.pageXOffset,y:window.pageYOffset}};function _p(e){var t=e.onWindowScroll;var n=Jc((function(){t(xp())})),r=function(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(t){t.target!==window&&t.target!==window.document||e()}}}(n),o=ef;function i(){return o!==ef}return{start:function(){i()&&af(!1),o=tf(window,[r])},stop:function(){i()||af(!1),n.cancel(),o(),o=ef},isActive:i}}var Sp=function(e){var t=_p({onWindowScroll:function(t){e.dispatch({type:"MOVE_BY_WINDOW_SCROLL",payload:{newScroll:t}})}});return function(e){return function(n){t.isActive()||"INITIAL_PUBLISH"!==n.type||t.start(),t.isActive()&&function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(n)&&t.stop(),e(n)}}},Op=function(){var e=[];return{add:function(t){var n=setTimeout((function(){return function(t){var n=Rf(e,(function(e){return e.timerId===t}));-1===n&&af(!1),e.splice(n,1)[0].callback()}(n)})),r={timerId:n,callback:t};e.push(r)},flush:function(){if(e.length){var t=[].concat(e);e.length=0,t.forEach((function(e){clearTimeout(e.timerId),e.callback()}))}}}},Cp=function(e,t){Hd(),t(),Vd()},Ep=function(e,t){return{draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t}},Ap=function(e,t,n,r){if(e){var o=function(e){var t=!1,n=!1,r=setTimeout((function(){n=!0})),o=function(o){t||n||(t=!0,e(o),clearTimeout(r))};return o.wasCalled=function(){return t},o}(n);e(t,{announce:o}),o.wasCalled()||n(r(t))}else n(r(t))},Mp=function(e,t){var n=function(e,t){var n=Op(),r=null,o=function(n){r||af(!1),r=null,Cp(0,(function(){return Ap(e().onDragEnd,n,t,gf)}))};return{beforeCapture:function(t,n){r&&af(!1),Cp(0,(function(){var r=e().onBeforeCapture;r&&r({draggableId:t,mode:n})}))},beforeStart:function(t,n){r&&af(!1),Cp(0,(function(){var r=e().onBeforeDragStart;r&&r(Ep(t,n))}))},start:function(o,i){r&&af(!1);var a=Ep(o,i);r={mode:i,lastCritical:o,lastLocation:a.source,lastCombine:null},n.add((function(){Cp(0,(function(){return Ap(e().onDragStart,a,t,pf)}))}))},update:function(o,i){var a=Nf(i),s=Ff(i);r||af(!1);var l=!function(e,t){if(e===t)return!0;var n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,r=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&r}(o,r.lastCritical);l&&(r.lastCritical=o);var c,f,d=(f=a,!(null==(c=r.lastLocation)&&null==f||null!=c&&null!=f&&c.droppableId===f.droppableId&&c.index===f.index));d&&(r.lastLocation=a);var p=!function(e,t){return null==e&&null==t||null!=e&&null!=t&&e.draggableId===t.draggableId&&e.droppableId===t.droppableId}(r.lastCombine,s);if(p&&(r.lastCombine=s),l||d||p){var h=(0,u.Z)({},Ep(o,r.mode),{combine:s,destination:a});n.add((function(){Cp(0,(function(){return Ap(e().onDragUpdate,h,t,hf)}))}))}},flush:function(){r||af(!1),n.flush()},drop:o,abort:function(){if(r){var e=(0,u.Z)({},Ep(r.lastCritical,r.mode),{combine:null,destination:null,reason:"CANCEL"});o(e)}}}}(e,t);return function(e){return function(t){return function(r){if("BEFORE_INITIAL_CAPTURE"!==r.type){if("INITIAL_PUBLISH"===r.type){var o=r.payload.critical;return n.beforeStart(o,r.payload.movementMode),t(r),void n.start(o,r.payload.movementMode)}if("DROP_COMPLETE"===r.type){var i=r.payload.completed.result;return n.flush(),t(r),void n.drop(i)}if(t(r),"FLUSH"!==r.type){var a=e.getState();"DRAGGING"===a.phase&&n.update(a.critical,a.impact)}else n.abort()}else n.beforeCapture(r.payload.draggableId,r.payload.movementMode)}}}},kp=function(e){return function(t){return function(n){if("DROP_ANIMATION_FINISHED"===n.type){var r=e.getState();"DROP_ANIMATING"!==r.phase&&af(!1),e.dispatch(sp({completed:r.completed}))}else t(n)}}},Pp=function(e){var t=null,n=null;return function(r){return function(o){if("FLUSH"!==o.type&&"DROP_COMPLETE"!==o.type&&"DROP_ANIMATION_FINISHED"!==o.type||(n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)),r(o),"DROP_ANIMATE"===o.type){var i={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){"DROP_ANIMATING"===e.getState().phase&&e.dispatch({type:"DROP_ANIMATION_FINISHED",payload:null})}};n=requestAnimationFrame((function(){n=null,t=tf(window,[i])}))}}}},Rp=function(e){return function(t){return function(n){if(t(n),"PUBLISH_WHILE_DRAGGING"===n.type){var r=e.getState();"DROP_PENDING"===r.phase&&(r.isWaiting||e.dispatch(up({reason:r.reason})))}}}},Tp=Ql,Ip=function(e){var t,n=e.dimensionMarshal,r=e.focusMarshal,o=e.styleMarshal,i=e.getResponders,a=e.announce,s=e.autoScroller;return Xl(qd,Tp(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error(Gl(15))},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return r=Ql.apply(void 0,i)(n.dispatch),Ul(Ul({},n),{},{dispatch:r})}}}((t=o,function(){return function(e){return function(n){"INITIAL_PUBLISH"===n.type&&t.dragging(),"DROP_ANIMATE"===n.type&&t.dropping(n.payload.completed.result.reason),"FLUSH"!==n.type&&"DROP_COMPLETE"!==n.type||t.resting(),e(n)}}}),function(e){return function(){return function(t){return function(n){"DROP_COMPLETE"!==n.type&&"FLUSH"!==n.type&&"DROP_ANIMATE"!==n.type||e.stopPublishing(),t(n)}}}}(n),function(e){return function(t){var n=t.getState,r=t.dispatch;return function(t){return function(o){if("LIFT"===o.type){var i=o.payload,a=i.id,s=i.clientSelection,u=i.movementMode,l=n();"DROP_ANIMATING"===l.phase&&r(sp({completed:l.completed})),"IDLE"!==n().phase&&af(!1),r(ap()),r({type:"BEFORE_INITIAL_CAPTURE",payload:{draggableId:a,movementMode:u}});var c={draggableId:a,scrollOptions:{shouldPublishImmediately:"SNAP"===u}},f=e.startPublishing(c),d=f.critical,p=f.dimensions,h=f.viewport;r({type:"INITIAL_PUBLISH",payload:{critical:d,dimensions:p,clientSelection:s,movementMode:u,viewport:h}})}else t(o)}}}}(n),wp,kp,Pp,Rp,function(e){return function(t){return function(n){return function(r){if(function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(r))return e.stop(),void n(r);if("INITIAL_PUBLISH"===r.type){n(r);var o=t.getState();return"DRAGGING"!==o.phase&&af(!1),void e.start(o)}n(r),e.scroll(t.getState())}}}}(s),Sp,function(e){var t=!1;return function(){return function(n){return function(r){if("INITIAL_PUBLISH"===r.type)return t=!0,e.tryRecordFocus(r.payload.critical.draggable.id),n(r),void e.tryRestoreFocusRecorded();if(n(r),t){if("FLUSH"===r.type)return t=!1,void e.tryRestoreFocusRecorded();if("DROP_COMPLETE"===r.type){t=!1;var o=r.payload.completed.result;o.combine&&e.tryShiftRecord(o.draggableId,o.combine.draggableId),e.tryRestoreFocusRecorded()}}}}}}(r),Mp(i,a))))};var Bp=function(e){var t=e.scrollHeight,n=e.scrollWidth,r=e.height,o=e.width,i=yf({x:n,y:t},{x:o,y:r});return{x:Math.max(0,i.x),y:Math.max(0,i.y)}},Dp=function(){var e=document.documentElement;return e||af(!1),e},jp=function(){var e=Dp();return Bp({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},Lp=function(e){var t=e.critical,n=e.scrollOptions,r=e.registry;Hd();var o=function(){var e=xp(),t=jp(),n=e.y,r=e.x,o=Dp(),i=o.clientWidth,a=o.clientHeight;return{frame:Vc({top:n,left:r,right:r+i,bottom:n+a}),scroll:{initial:e,current:e,max:t,diff:{value:vf,displacement:vf}}}}(),i=o.scroll.current,a=t.droppable,s=r.droppable.getAllByType(a.type).map((function(e){return e.callbacks.getDimensionAndWatchScroll(i,n)})),u=r.draggable.getAllByType(t.draggable.type).map((function(e){return e.getDimension(i)})),l={draggables:Df(u),droppables:Bf(s)};return Vd(),{dimensions:l,critical:t,viewport:o}};function Zp(e,t,n){return n.descriptor.id!==t.id&&(n.descriptor.type===t.type&&"virtual"===e.droppable.getById(n.descriptor.droppableId).descriptor.mode)}var Np=function(e,t){var n=null,r=function(e){var t=e.registry,n=e.callbacks,r={additions:{},removals:{},modified:{}},o=null,i=function(){o||(n.collectionStarting(),o=requestAnimationFrame((function(){o=null,Hd();var e=r,i=e.additions,a=e.removals,s=e.modified,u=Object.keys(i).map((function(e){return t.draggable.getById(e).getDimension(vf)})).sort((function(e,t){return e.descriptor.index-t.descriptor.index})),l=Object.keys(s).map((function(e){return{droppableId:e,scroll:t.droppable.getById(e).callbacks.getScrollWhileDragging()}})),c={additions:u,removals:Object.keys(a),modified:l};r={additions:{},removals:{},modified:{}},Vd(),n.publish(c)})))};return{add:function(e){var t=e.descriptor.id;r.additions[t]=e,r.modified[e.descriptor.droppableId]=!0,r.removals[t]&&delete r.removals[t],i()},remove:function(e){var t=e.descriptor;r.removals[t.id]=!0,r.modified[t.droppableId]=!0,r.additions[t.id]&&delete r.additions[t.id],i()},stop:function(){o&&(cancelAnimationFrame(o),o=null,r={additions:{},removals:{},modified:{}})}}}({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),o=function(t){n||af(!1);var o=n.critical.draggable;"ADDITION"===t.type&&Zp(e,o,t.value)&&r.add(t.value),"REMOVAL"===t.type&&Zp(e,o,t.value)&&r.remove(t.value)},i={updateDroppableIsEnabled:function(r,o){e.droppable.exists(r)||af(!1),n&&t.updateDroppableIsEnabled({id:r,isEnabled:o})},updateDroppableIsCombineEnabled:function(r,o){n&&(e.droppable.exists(r)||af(!1),t.updateDroppableIsCombineEnabled({id:r,isCombineEnabled:o}))},scrollDroppable:function(t,r){n&&e.droppable.getById(t).callbacks.scroll(r)},updateDroppableScroll:function(r,o){n&&(e.droppable.exists(r)||af(!1),t.updateDroppableScroll({id:r,newScroll:o}))},startPublishing:function(t){n&&af(!1);var r=e.draggable.getById(t.draggableId),i=e.droppable.getById(r.descriptor.droppableId),a={draggable:r.descriptor,droppable:i.descriptor},s=e.subscribe(o);return n={critical:a,unsubscribe:s},Lp({critical:a,registry:e,scrollOptions:t.scrollOptions})},stopPublishing:function(){if(n){r.stop();var t=n.critical.droppable;e.droppable.getAllByType(t.type).forEach((function(e){return e.callbacks.dragStopped()})),n.unsubscribe(),n=null}}};return i},Fp=function(e,t){return"IDLE"===e.phase||"DROP_ANIMATING"===e.phase&&(e.completed.result.draggableId!==t&&"DROP"===e.completed.result.reason)},Hp=function(e){window.scrollBy(e.x,e.y)},Vp=Or((function(e){return jf(e).filter((function(e){return!!e.isEnabled&&!!e.frame}))})),zp=function(e){var t=e.center,n=e.destination,r=e.droppables;if(n){var o=r[n];return o.frame?o:null}var i=function(e,t){var n=Tf(Vp(t),(function(t){return t.frame||af(!1),kd(t.frame.pageMarginBox)(e)}));return n}(t,r);return i},Up=.25,Gp=.05,Wp=28,$p=function(e){return Math.pow(e,2)},qp={stopDampeningAt:1200,accelerateAt:360},Yp=function(e){var t=e.startOfRange,n=e.endOfRange,r=e.current,o=n-t;return 0===o?0:(r-t)/o},Xp=qp.accelerateAt,Kp=qp.stopDampeningAt,Jp=function(e){var t=e.distanceToEdge,n=e.thresholds,r=e.dragStartTime,o=e.shouldUseTimeDampening,i=function(e,t){if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return Wp;if(e===t.startScrollingFrom)return 1;var n=Yp({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),r=Wp*$p(1-n);return Math.ceil(r)}(t,n);return 0===i?0:o?Math.max(function(e,t){var n=t,r=Kp,o=Date.now()-n;if(o>=Kp)return e;if(o<Xp)return 1;var i=Yp({startOfRange:Xp,endOfRange:r,current:o}),a=e*$p(i);return Math.ceil(a)}(i,r),1):i},Qp=function(e){var t=e.container,n=e.distanceToEdges,r=e.dragStartTime,o=e.axis,i=e.shouldUseTimeDampening,a=function(e,t){return{startScrollingFrom:e[t.size]*Up,maxScrollValueAt:e[t.size]*Gp}}(t,o);return n[o.end]<n[o.start]?Jp({distanceToEdge:n[o.end],thresholds:a,dragStartTime:r,shouldUseTimeDampening:i}):-1*Jp({distanceToEdge:n[o.start],thresholds:a,dragStartTime:r,shouldUseTimeDampening:i})},eh=Of((function(e){return 0===e?0:e})),th=function(e){var t=e.dragStartTime,n=e.container,r=e.subject,o=e.center,i=e.shouldUseTimeDampening,a={top:o.y-n.top,right:n.right-o.x,bottom:n.bottom-o.y,left:o.x-n.left},s=Qp({container:n,distanceToEdges:a,dragStartTime:t,axis:Yf,shouldUseTimeDampening:i}),u=Qp({container:n,distanceToEdges:a,dragStartTime:t,axis:Xf,shouldUseTimeDampening:i}),l=eh({x:u,y:s});if(bf(l,vf))return null;var c=function(e){var t=e.container,n=e.subject,r=e.proposedScroll,o=n.height>t.height,i=n.width>t.width;return i||o?i&&o?null:{x:i?0:r.x,y:o?0:r.y}:r}({container:n,subject:r,proposedScroll:l});return c?bf(c,vf)?null:c:null},nh=Of((function(e){return 0===e?0:e>0?1:-1})),rh=function(){var e=function(e,t){return e<0?e:e>t?e-t:0};return function(t){var n=t.current,r=t.max,o=t.change,i=mf(n,o),a={x:e(i.x,r.x),y:e(i.y,r.y)};return bf(a,vf)?null:a}}(),oh=function(e){var t=e.max,n=e.current,r=e.change,o={x:Math.max(n.x,t.x),y:Math.max(n.y,t.y)},i=nh(r),a=rh({max:o,current:n,change:i});return!a||(0!==i.x&&0===a.x||0!==i.y&&0===a.y)},ih=function(e,t){return oh({current:e.scroll.current,max:e.scroll.max,change:t})},ah=function(e,t){var n=e.frame;return!!n&&oh({current:n.scroll.current,max:n.scroll.max,change:t})},sh=function(e){var t=e.state,n=e.dragStartTime,r=e.shouldUseTimeDampening,o=e.scrollWindow,i=e.scrollDroppable,a=t.current.page.borderBoxCenter,s=t.dimensions.draggables[t.critical.draggable.id].page.marginBox;if(t.isWindowScrollAllowed){var u=function(e){var t=e.viewport,n=e.subject,r=e.center,o=e.dragStartTime,i=e.shouldUseTimeDampening,a=th({dragStartTime:o,container:t.frame,subject:n,center:r,shouldUseTimeDampening:i});return a&&ih(t,a)?a:null}({dragStartTime:n,viewport:t.viewport,subject:s,center:a,shouldUseTimeDampening:r});if(u)return void o(u)}var l=zp({center:a,destination:Ed(t.impact),droppables:t.dimensions.droppables});if(l){var c=function(e){var t=e.droppable,n=e.subject,r=e.center,o=e.dragStartTime,i=e.shouldUseTimeDampening,a=t.frame;if(!a)return null;var s=th({dragStartTime:o,container:a.pageMarginBox,subject:n,center:r,shouldUseTimeDampening:i});return s&&ah(t,s)?s:null}({dragStartTime:n,droppable:l,subject:s,center:a,shouldUseTimeDampening:r});c&&i(l.descriptor.id,c)}},uh=function(e){var t=e.move,n=e.scrollDroppable,r=e.scrollWindow,o=function(e,t){if(!ah(e,t))return t;var r=function(e,t){var n=e.frame;return n&&ah(e,t)?rh({current:n.scroll.current,max:n.scroll.max,change:t}):null}(e,t);if(!r)return n(e.descriptor.id,t),null;var o=yf(t,r);return n(e.descriptor.id,o),yf(t,o)},i=function(e,t,n){if(!e)return n;if(!ih(t,n))return n;var o=function(e,t){if(!ih(e,t))return null;var n=e.scroll.max,r=e.scroll.current;return rh({current:r,max:n,change:t})}(t,n);if(!o)return r(n),null;var i=yf(n,o);return r(i),yf(n,i)};return function(e){var n=e.scrollJumpRequest;if(n){var r=Ed(e.impact);r||af(!1);var a=o(e.dimensions.droppables[r],n);if(a){var s=e.viewport,u=i(e.isWindowScrollAllowed,s,a);u&&function(e,n){var r=mf(e.current.client.selection,n);t({client:r})}(e,u)}}}},lh=function(e){var t=e.scrollDroppable,n=e.scrollWindow,r=e.move,o=function(e){var t=e.scrollWindow,n=e.scrollDroppable,r=Jc(t),o=Jc(n),i=null,a=function(e){i||af(!1);var t=i,n=t.shouldUseTimeDampening,a=t.dragStartTime;sh({state:e,scrollWindow:r,scrollDroppable:o,dragStartTime:a,shouldUseTimeDampening:n})};return{start:function(e){Hd(),i&&af(!1);var t=Date.now(),n=!1,r=function(){n=!0};sh({state:e,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:r,scrollDroppable:r}),i={dragStartTime:t,shouldUseTimeDampening:n},Vd(),n&&a(e)},stop:function(){i&&(r.cancel(),o.cancel(),i=null)},scroll:a}}({scrollWindow:n,scrollDroppable:t}),i=uh({move:r,scrollWindow:n,scrollDroppable:t});return{scroll:function(e){"DRAGGING"===e.phase&&("FLUID"!==e.movementMode?e.scrollJumpRequest&&i(e):o.scroll(e))},start:o.start,stop:o.stop}},ch="data-rbd",fh=function(){var e=ch+"-drag-handle";return{base:e,draggableId:e+"-draggable-id",contextId:e+"-context-id"}}(),dh=function(){var e=ch+"-draggable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),ph=function(){var e=ch+"-droppable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),hh={contextId:ch+"-scroll-container-context-id"},gh=function(e,t){return e.map((function(e){var n=e.styles[t];return n?e.selector+" { "+n+" }":""})).join(" ")},vh=function(e){var t,n=(t=e,function(e){return"["+e+'="'+t+'"]'}),r=function(){var e="\n cursor: -webkit-grab;\n cursor: grab;\n ";return{selector:n(fh.contextId),styles:{always:"\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ",resting:e,dragging:"pointer-events: none;",dropAnimating:e}}}(),o=[function(){var e="\n transition: "+hp.outOfTheWay+";\n ";return{selector:n(dh.contextId),styles:{dragging:e,dropAnimating:e,userCancel:e}}}(),r,{selector:n(ph.contextId),styles:{always:"overflow-anchor: none;"}},{selector:"body",styles:{dragging:"\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n "}}];return{always:gh(o,"always"),resting:gh(o,"resting"),dragging:gh(o,"dragging"),dropAnimating:gh(o,"dropAnimating"),userCancel:gh(o,"userCancel")}},mh="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?i.useLayoutEffect:i.useEffect,yh=function(){var e=document.querySelector("head");return e||af(!1),e},bh=function(e){var t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};var wh=function(e){return e&&e.ownerDocument?e.ownerDocument.defaultView:window};function xh(e){return e instanceof wh(e).HTMLElement}function _h(e,t){var n="["+fh.contextId+'="'+e+'"]',r=If(document.querySelectorAll(n));if(!r.length)return null;var o=Tf(r,(function(e){return e.getAttribute(fh.draggableId)===t}));return o&&xh(o)?o:null}function Sh(){var e={draggables:{},droppables:{}},t=[];function n(e){t.length&&t.forEach((function(t){return t(e)}))}function r(t){return e.draggables[t]||null}var o={register:function(t){e.draggables[t.descriptor.id]=t,n({type:"ADDITION",value:t})},update:function(t,n){var r=e.draggables[n.descriptor.id];r&&r.uniqueId===t.uniqueId&&(delete e.draggables[n.descriptor.id],e.draggables[t.descriptor.id]=t)},unregister:function(t){var o=t.descriptor.id,i=r(o);i&&t.uniqueId===i.uniqueId&&(delete e.draggables[o],n({type:"REMOVAL",value:t}))},getById:function(e){var t=r(e);return t||af(!1),t},findById:r,exists:function(e){return Boolean(r(e))},getAllByType:function(t){return Pf(e.draggables).filter((function(e){return e.descriptor.type===t}))}};function i(t){return e.droppables[t]||null}return{draggable:o,droppable:{register:function(t){e.droppables[t.descriptor.id]=t},unregister:function(t){var n=i(t.descriptor.id);n&&t.uniqueId===n.uniqueId&&delete e.droppables[t.descriptor.id]},getById:function(e){var t=i(e);return t||af(!1),t},findById:i,exists:function(e){return Boolean(i(e))},getAllByType:function(t){return Pf(e.droppables).filter((function(e){return e.descriptor.type===t}))}},subscribe:function(e){return t.push(e),function(){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},clean:function(){e.draggables={},e.droppables={},t.length=0}}}var Oh=i.createContext(null),Ch=function(){var e=document.body;return e||af(!1),e},Eh={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},Ah=function(e){return"rbd-announcement-"+e};var Mh=0,kh={separator:"::"};function Ph(e,t){return void 0===t&&(t=kh),Fc((function(){return""+e+t.separator+Mh++}),[t.separator,e])}var Rh=i.createContext(null);function Th(e){0}function Ih(e,t){Th()}function Bh(e){var t=(0,i.useRef)(e);return(0,i.useEffect)((function(){t.current=e})),t}var Dh,jh=27,Lh=32,Zh=37,Nh=38,Fh=39,Hh=40,Vh=((Dh={})[13]=!0,Dh[9]=!0,Dh),zh=function(e){Vh[e.keyCode]&&e.preventDefault()},Uh=function(){var e="visibilitychange";return"undefined"===typeof document?e:Tf([e,"ms"+e,"webkit"+e,"moz"+e,"o"+e],(function(e){return"on"+e in document}))||e}(),Gh=0,Wh=5;var $h,qh={type:"IDLE"};function Yh(e){var t=e.cancel,n=e.completed,r=e.getPhase,o=e.setPhase;return[{eventName:"mousemove",fn:function(e){var t=e.button,n=e.clientX,i=e.clientY;if(t===Gh){var a={x:n,y:i},s=r();if("DRAGGING"===s.type)return e.preventDefault(),void s.actions.move(a);"PENDING"!==s.type&&af(!1);var u=s.point;if(l=u,c=a,Math.abs(c.x-l.x)>=Wh||Math.abs(c.y-l.y)>=Wh){var l,c;e.preventDefault();var f=s.actions.fluidLift(a);o({type:"DRAGGING",actions:f})}}}},{eventName:"mouseup",fn:function(e){var o=r();"DRAGGING"===o.type?(e.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"mousedown",fn:function(e){"DRAGGING"===r().type&&e.preventDefault(),t()}},{eventName:"keydown",fn:function(e){if("PENDING"!==r().type)return e.keyCode===jh?(e.preventDefault(),void t()):void zh(e);t()}},{eventName:"resize",fn:t},{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(){"PENDING"===r().type&&t()}},{eventName:"webkitmouseforcedown",fn:function(e){var n=r();"IDLE"===n.type&&af(!1),n.actions.shouldRespectForcePress()?t():e.preventDefault()}},{eventName:Uh,fn:t}]}function Xh(){}var Kh=(($h={})[34]=!0,$h[33]=!0,$h[36]=!0,$h[35]=!0,$h);function Jh(e,t){function n(){t(),e.cancel()}return[{eventName:"keydown",fn:function(r){return r.keyCode===jh?(r.preventDefault(),void n()):r.keyCode===Lh?(r.preventDefault(),t(),void e.drop()):r.keyCode===Hh?(r.preventDefault(),void e.moveDown()):r.keyCode===Nh?(r.preventDefault(),void e.moveUp()):r.keyCode===Fh?(r.preventDefault(),void e.moveRight()):r.keyCode===Zh?(r.preventDefault(),void e.moveLeft()):void(Kh[r.keyCode]?r.preventDefault():zh(r))}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:Uh,fn:n}]}var Qh={type:"IDLE"},eg=.15;var tg={input:!0,button:!0,textarea:!0,select:!0,option:!0,optgroup:!0,video:!0,audio:!0};function ng(e,t){if(null==t)return!1;if(Boolean(tg[t.tagName.toLowerCase()]))return!0;var n=t.getAttribute("contenteditable");return"true"===n||""===n||t!==e&&ng(e,t.parentElement)}function rg(e,t){var n=t.target;return!!xh(n)&&ng(e,n)}var og=function(e){return Vc(e.getBoundingClientRect()).center};var ig=function(){var e="matches";return"undefined"===typeof document?e:Tf([e,"msMatchesSelector","webkitMatchesSelector"],(function(e){return e in Element.prototype}))||e}();function ag(e,t){return null==e?null:e[ig](t)?e:ag(e.parentElement,t)}function sg(e,t){return e.closest?e.closest(t):ag(e,t)}function ug(e,t){var n,r=t.target;if(!((n=r)instanceof wh(n).Element))return null;var o=function(e){return"["+fh.contextId+'="'+e+'"]'}(e),i=sg(r,o);return i&&xh(i)?i:null}function lg(e){e.preventDefault()}function cg(e){var t=e.expected,n=e.phase,r=e.isLockActive;e.shouldWarn;return!!r()&&t===n}function fg(e){var t=e.lockAPI,n=e.store,r=e.registry,o=e.draggableId;if(t.isClaimed())return!1;var i=r.draggable.findById(o);return!!i&&(!!i.options.isEnabled&&!!Fp(n.getState(),o))}function dg(e){var t=e.lockAPI,n=e.contextId,r=e.store,o=e.registry,i=e.draggableId,a=e.forceSensorStop,s=e.sourceEvent;if(!fg({lockAPI:t,store:r,registry:o,draggableId:i}))return null;var l=o.draggable.getById(i),c=function(e,t){var n="["+dh.contextId+'="'+e+'"]',r=Tf(If(document.querySelectorAll(n)),(function(e){return e.getAttribute(dh.id)===t}));return r&&xh(r)?r:null}(n,l.descriptor.id);if(!c)return null;if(s&&!l.options.canDragInteractiveElements&&rg(c,s))return null;var f=t.claim(a||ef),d="PRE_DRAG";function p(){return l.options.shouldRespectForcePress}function h(){return t.isActive(f)}var g=function(e,t){cg({expected:e,phase:d,isLockActive:h,shouldWarn:!0})&&r.dispatch(t())}.bind(null,"DRAGGING");function v(e){function n(){t.release(),d="COMPLETED"}function o(t,o){if(void 0===o&&(o={shouldBlockNextClick:!1}),e.cleanup(),o.shouldBlockNextClick){var i=tf(window,[{eventName:"click",fn:lg,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(i)}n(),r.dispatch(up({reason:t}))}return"PRE_DRAG"!==d&&(n(),"PRE_DRAG"!==d&&af(!1)),r.dispatch(Yd(e.liftActionArgs)),d="DRAGGING",(0,u.Z)({isActive:function(){return cg({expected:"DRAGGING",phase:d,isLockActive:h,shouldWarn:!1})},shouldRespectForcePress:p,drop:function(e){return o("DROP",e)},cancel:function(e){return o("CANCEL",e)}},e.actions)}var m={isActive:function(){return cg({expected:"PRE_DRAG",phase:d,isLockActive:h,shouldWarn:!1})},shouldRespectForcePress:p,fluidLift:function(e){var t=Jc((function(e){g((function(){return tp({client:e})}))})),n=v({liftActionArgs:{id:i,clientSelection:e,movementMode:"FLUID"},cleanup:function(){return t.cancel()},actions:{move:t}});return(0,u.Z)({},n,{move:t})},snapLift:function(){var e={moveUp:function(){return g(np)},moveRight:function(){return g(op)},moveDown:function(){return g(rp)},moveLeft:function(){return g(ip)}};return v({liftActionArgs:{id:i,clientSelection:og(c),movementMode:"SNAP"},cleanup:ef,actions:e})},abort:function(){cg({expected:"PRE_DRAG",phase:d,isLockActive:h,shouldWarn:!0})&&t.release()}};return m}var pg=[function(e){var t=(0,i.useRef)(qh),n=(0,i.useRef)(ef),r=Fc((function(){return{eventName:"mousedown",fn:function(t){if(!t.defaultPrevented&&t.button===Gh&&!(t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)){var r=e.findClosestDraggableId(t);if(r){var o=e.tryGetLock(r,s,{sourceEvent:t});if(o){t.preventDefault();var i={x:t.clientX,y:t.clientY};n.current(),c(o,i)}}}}}}),[e]),o=Fc((function(){return{eventName:"webkitmouseforcewillbegin",fn:function(t){if(!t.defaultPrevented){var n=e.findClosestDraggableId(t);if(n){var r=e.findOptionsForDraggable(n);r&&(r.shouldRespectForcePress||e.canGetLock(n)&&t.preventDefault())}}}}}),[e]),a=Hc((function(){n.current=tf(window,[o,r],{passive:!1,capture:!0})}),[o,r]),s=Hc((function(){"IDLE"!==t.current.type&&(t.current=qh,n.current(),a())}),[a]),u=Hc((function(){var e=t.current;s(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[s]),l=Hc((function(){var e=Yh({cancel:u,completed:s,getPhase:function(){return t.current},setPhase:function(e){t.current=e}});n.current=tf(window,e,{capture:!0,passive:!1})}),[u,s]),c=Hc((function(e,n){"IDLE"!==t.current.type&&af(!1),t.current={type:"PENDING",point:n,actions:e},l()}),[l]);mh((function(){return a(),function(){n.current()}}),[a])},function(e){var t=(0,i.useRef)(Xh),n=Fc((function(){return{eventName:"keydown",fn:function(n){if(!n.defaultPrevented&&n.keyCode===Lh){var o=e.findClosestDraggableId(n);if(o){var i=e.tryGetLock(o,u,{sourceEvent:n});if(i){n.preventDefault();var a=!0,s=i.snapLift();t.current(),t.current=tf(window,Jh(s,u),{capture:!0,passive:!1})}}}function u(){a||af(!1),a=!1,t.current(),r()}}}}),[e]),r=Hc((function(){t.current=tf(window,[n],{passive:!1,capture:!0})}),[n]);mh((function(){return r(),function(){t.current()}}),[r])},function(e){var t=(0,i.useRef)(Qh),n=(0,i.useRef)(ef),r=Hc((function(){return t.current}),[]),o=Hc((function(e){t.current=e}),[]),a=Fc((function(){return{eventName:"touchstart",fn:function(t){if(!t.defaultPrevented){var r=e.findClosestDraggableId(t);if(r){var o=e.tryGetLock(r,u,{sourceEvent:t});if(o){var i=t.touches[0],a={x:i.clientX,y:i.clientY};n.current(),d(o,a)}}}}}}),[e]),s=Hc((function(){n.current=tf(window,[a],{capture:!0,passive:!1})}),[a]),u=Hc((function(){var e=t.current;"IDLE"!==e.type&&("PENDING"===e.type&&clearTimeout(e.longPressTimerId),o(Qh),n.current(),s())}),[s,o]),l=Hc((function(){var e=t.current;u(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[u]),c=Hc((function(){var e={capture:!0,passive:!1},t={cancel:l,completed:u,getPhase:r},o=tf(window,function(e){var t=e.cancel,n=e.completed,r=e.getPhase;return[{eventName:"touchmove",options:{capture:!1},fn:function(e){var n=r();if("DRAGGING"===n.type){n.hasMoved=!0;var o=e.touches[0],i={x:o.clientX,y:o.clientY};e.preventDefault(),n.actions.move(i)}else t()}},{eventName:"touchend",fn:function(e){var o=r();"DRAGGING"===o.type?(e.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"touchcancel",fn:function(e){"DRAGGING"===r().type?(e.preventDefault(),t()):t()}},{eventName:"touchforcechange",fn:function(e){var n=r();"IDLE"===n.type&&af(!1);var o=e.touches[0];if(o&&o.force>=eg){var i=n.actions.shouldRespectForcePress();if("PENDING"!==n.type)return i?n.hasMoved?void e.preventDefault():void t():void e.preventDefault();i&&t()}}},{eventName:Uh,fn:t}]}(t),e),i=tf(window,function(e){var t=e.cancel,n=e.getPhase;return[{eventName:"orientationchange",fn:t},{eventName:"resize",fn:t},{eventName:"contextmenu",fn:function(e){e.preventDefault()}},{eventName:"keydown",fn:function(e){"DRAGGING"===n().type?(e.keyCode===jh&&e.preventDefault(),t()):t()}},{eventName:Uh,fn:t}]}(t),e);n.current=function(){o(),i()}}),[l,r,u]),f=Hc((function(){var e=r();"PENDING"!==e.type&&af(!1);var t=e.actions.fluidLift(e.point);o({type:"DRAGGING",actions:t,hasMoved:!1})}),[r,o]),d=Hc((function(e,t){"IDLE"!==r().type&&af(!1);var n=setTimeout(f,120);o({type:"PENDING",point:t,actions:e,longPressTimerId:n}),c()}),[c,r,o,f]);mh((function(){return s(),function(){n.current();var e=r();"PENDING"===e.type&&(clearTimeout(e.longPressTimerId),o(Qh))}}),[r,s,o]),mh((function(){return tf(window,[{eventName:"touchmove",fn:function(){},options:{capture:!1,passive:!1}}])}),[])}];function hg(e){var t=e.contextId,n=e.store,r=e.registry,o=e.customSensors,a=e.enableDefaultSensors,s=[].concat(a?pg:[],o||[]),u=(0,i.useState)((function(){return function(){var e=null;function t(){e||af(!1),e=null}return{isClaimed:function(){return Boolean(e)},isActive:function(t){return t===e},claim:function(t){e&&af(!1);var n={abandon:t};return e=n,n},release:t,tryAbandon:function(){e&&(e.abandon(),t())}}}()}))[0],l=Hc((function(e,t){e.isDragging&&!t.isDragging&&u.tryAbandon()}),[u]);mh((function(){var e=n.getState();return n.subscribe((function(){var t=n.getState();l(e,t),e=t}))}),[u,n,l]),mh((function(){return u.tryAbandon}),[u.tryAbandon]);var c=Hc((function(e){return fg({lockAPI:u,registry:r,store:n,draggableId:e})}),[u,r,n]),f=Hc((function(e,o,i){return dg({lockAPI:u,registry:r,contextId:t,store:n,draggableId:e,forceSensorStop:o,sourceEvent:i&&i.sourceEvent?i.sourceEvent:null})}),[t,u,r,n]),d=Hc((function(e){return function(e,t){var n=ug(e,t);return n?n.getAttribute(fh.draggableId):null}(t,e)}),[t]),p=Hc((function(e){var t=r.draggable.findById(e);return t?t.options:null}),[r.draggable]),h=Hc((function(){u.isClaimed()&&(u.tryAbandon(),"IDLE"!==n.getState().phase&&n.dispatch(ap()))}),[u,n]),g=Hc(u.isClaimed,[u]),v=Fc((function(){return{canGetLock:c,tryGetLock:f,findClosestDraggableId:d,findOptionsForDraggable:p,tryReleaseLock:h,isLockClaimed:g}}),[c,f,d,p,h,g]);Th();for(var m=0;m<s.length;m++)s[m](v)}var gg=function(e){return{onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}};function vg(e){return e.current||af(!1),e.current}function mg(e){var t=e.contextId,n=e.setCallbacks,r=e.sensors,o=e.nonce,a=e.dragHandleUsageInstructions,s=(0,i.useRef)(null);Ih();var l=Bh(e),c=Hc((function(){return gg(l.current)}),[l]),f=function(e){var t=Fc((function(){return Ah(e)}),[e]),n=(0,i.useRef)(null);return(0,i.useEffect)((function(){var e=document.createElement("div");return n.current=e,e.id=t,e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),(0,u.Z)(e.style,Eh),Ch().appendChild(e),function(){setTimeout((function(){var t=Ch();t.contains(e)&&t.removeChild(e),e===n.current&&(n.current=null)}))}}),[t]),Hc((function(e){var t=n.current;t&&(t.textContent=e)}),[])}(t),d=function(e){var t=e.contextId,n=e.text,r=Ph("hidden-text",{separator:"-"}),o=Fc((function(){return function(e){return"rbd-hidden-text-"+e.contextId+"-"+e.uniqueId}({contextId:t,uniqueId:r})}),[r,t]);return(0,i.useEffect)((function(){var e=document.createElement("div");return e.id=o,e.textContent=n,e.style.display="none",Ch().appendChild(e),function(){var t=Ch();t.contains(e)&&t.removeChild(e)}}),[o,n]),o}({contextId:t,text:a}),p=function(e,t){var n=Fc((function(){return vh(e)}),[e]),r=(0,i.useRef)(null),o=(0,i.useRef)(null),a=Hc(Or((function(e){var t=o.current;t||af(!1),t.textContent=e})),[]),s=Hc((function(e){var t=r.current;t||af(!1),t.textContent=e}),[]);mh((function(){(r.current||o.current)&&af(!1);var i=bh(t),u=bh(t);return r.current=i,o.current=u,i.setAttribute(ch+"-always",e),u.setAttribute(ch+"-dynamic",e),yh().appendChild(i),yh().appendChild(u),s(n.always),a(n.resting),function(){var e=function(e){var t=e.current;t||af(!1),yh().removeChild(t),e.current=null};e(r),e(o)}}),[t,s,a,n.always,n.resting,e]);var u=Hc((function(){return a(n.dragging)}),[a,n.dragging]),l=Hc((function(e){a("DROP"!==e?n.userCancel:n.dropAnimating)}),[a,n.dropAnimating,n.userCancel]),c=Hc((function(){o.current&&a(n.resting)}),[a,n.resting]);return Fc((function(){return{dragging:u,dropping:l,resting:c}}),[u,l,c])}(t,o),h=Hc((function(e){vg(s).dispatch(e)}),[]),g=Fc((function(){return Jl({publishWhileDragging:Xd,updateDroppableScroll:Jd,updateDroppableIsEnabled:Qd,updateDroppableIsCombineEnabled:ep,collectionStarting:Kd},h)}),[h]),v=function(){var e=Fc(Sh,[]);return(0,i.useEffect)((function(){return function(){requestAnimationFrame(e.clean)}}),[e]),e}(),m=Fc((function(){return Np(v,g)}),[v,g]),y=Fc((function(){return lh((0,u.Z)({scrollWindow:Hp,scrollDroppable:m.scrollDroppable},Jl({move:tp},h)))}),[m.scrollDroppable,h]),b=function(e){var t=(0,i.useRef)({}),n=(0,i.useRef)(null),r=(0,i.useRef)(null),o=(0,i.useRef)(!1),a=Hc((function(e,n){var r={id:e,focus:n};return t.current[e]=r,function(){var n=t.current;n[e]!==r&&delete n[e]}}),[]),s=Hc((function(t){var n=_h(e,t);n&&n!==document.activeElement&&n.focus()}),[e]),u=Hc((function(e,t){n.current===e&&(n.current=t)}),[]),l=Hc((function(){r.current||o.current&&(r.current=requestAnimationFrame((function(){r.current=null;var e=n.current;e&&s(e)})))}),[s]),c=Hc((function(e){n.current=null;var t=document.activeElement;t&&t.getAttribute(fh.draggableId)===e&&(n.current=e)}),[]);return mh((function(){return o.current=!0,function(){o.current=!1;var e=r.current;e&&cancelAnimationFrame(e)}}),[]),Fc((function(){return{register:a,tryRecordFocus:c,tryRestoreFocusRecorded:l,tryShiftRecord:u}}),[a,c,l,u])}(t),w=Fc((function(){return Ip({announce:f,autoScroller:y,dimensionMarshal:m,focusMarshal:b,getResponders:c,styleMarshal:p})}),[f,y,m,b,c,p]);s.current=w;var x=Hc((function(){var e=vg(s);"IDLE"!==e.getState().phase&&e.dispatch(ap())}),[]),_=Hc((function(){var e=vg(s).getState();return e.isDragging||"DROP_ANIMATING"===e.phase}),[]);n(Fc((function(){return{isDragging:_,tryAbort:x}}),[_,x]));var S=Hc((function(e){return Fp(vg(s).getState(),e)}),[]),O=Hc((function(){return Md(vg(s).getState())}),[]),C=Fc((function(){return{marshal:m,focus:b,contextId:t,canLift:S,isMovementAllowed:O,dragHandleUsageInstructionsId:d,registry:v}}),[t,m,d,b,S,O,v]);return hg({contextId:t,store:w,registry:v,customSensors:r,enableDefaultSensors:!1!==e.enableDefaultSensors}),(0,i.useEffect)((function(){return x}),[x]),i.createElement(Rh.Provider,{value:C},i.createElement(ac,{context:Oh,store:w},e.children))}var yg=0;function bg(e){var t=Fc((function(){return""+yg++}),[]),n=e.dragHandleUsageInstructions||df;return i.createElement(sf,null,(function(r){return i.createElement(mg,{nonce:e.nonce,contextId:t,setCallbacks:r,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd},e.children)}))}var wg=function(e){return function(t){return e===t}},xg=wg("scroll"),_g=wg("auto"),Sg=(wg("visible"),function(e,t){return t(e.overflowX)||t(e.overflowY)}),Og=function(e){var t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return Sg(n,xg)||Sg(n,_g)},Cg=function e(t){return null==t||t===document.body||t===document.documentElement?null:Og(t)?t:e(t.parentElement)},Eg=function(e){return{x:e.scrollLeft,y:e.scrollTop}},Ag=function e(t){return!!t&&("fixed"===window.getComputedStyle(t).position||e(t.parentElement))},Mg=function(e){return{closestScrollable:Cg(e),isFixedOnPage:Ag(e)}},kg=function(e){var t=e.ref,n=e.descriptor,r=e.env,o=e.windowScroll,i=e.direction,a=e.isDropDisabled,s=e.isCombineEnabled,u=e.shouldClipSubject,l=r.closestScrollable,c=function(e,t){var n=Kc(e);if(!t)return n;if(e!==t)return n;var r=n.paddingBox.top-t.scrollTop,o=n.paddingBox.left-t.scrollLeft,i=r+t.scrollHeight,a=o+t.scrollWidth,s=zc({top:r,right:a,bottom:i,left:o},n.border);return Wc({borderBox:s,margin:n.margin,border:n.border,padding:n.padding})}(t,l),f=Yc(c,o),d=function(){if(!l)return null;var e=Kc(l),t={scrollHeight:l.scrollHeight,scrollWidth:l.scrollWidth};return{client:e,page:Yc(e,o),scroll:Eg(l),scrollSize:t,shouldClipSubject:u}}(),p=function(e){var t=e.descriptor,n=e.isEnabled,r=e.isCombineEnabled,o=e.isFixedOnPage,i=e.direction,a=e.client,s=e.page,u=e.closest,l=function(){if(!u)return null;var e=u.scrollSize,t=u.client,n=Bp({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,height:t.paddingBox.height,width:t.paddingBox.width});return{pageMarginBox:u.page.marginBox,frameClient:t,scrollSize:e,shouldClipSubject:u.shouldClipSubject,scroll:{initial:u.scroll,current:u.scroll,max:n,diff:{value:vf,displacement:vf}}}}(),c="vertical"===i?Yf:Xf;return{descriptor:t,isCombineEnabled:r,isFixedOnPage:o,axis:c,isEnabled:n,client:a,page:s,frame:l,subject:Mf({page:s,withPlaceholder:null,axis:c,frame:l})}}({descriptor:n,isEnabled:!a,isCombineEnabled:s,isFixedOnPage:r.isFixedOnPage,direction:i,client:c,page:f,closest:d});return p},Pg={passive:!1},Rg={passive:!0},Tg=function(e){return e.shouldPublishImmediately?Pg:Rg};function Ig(e){var t=(0,i.useContext)(e);return t||af(!1),t}var Bg=function(e){return e&&e.env.closestScrollable||null};function Dg(){}var jg={width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},Lg=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate,o=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate;return t||"close"===r?jg:{height:n.client.borderBox.height,width:n.client.borderBox.width,margin:n.client.margin}}({isAnimatingOpenOnMount:t,placeholder:n,animate:r});return{display:n.display,boxSizing:"border-box",width:o.width,height:o.height,marginTop:o.margin.top,marginRight:o.margin.right,marginBottom:o.margin.bottom,marginLeft:o.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:"none"!==r?hp.placeholder:null}};var Zg=i.memo((function(e){var t=(0,i.useRef)(null),n=Hc((function(){t.current&&(clearTimeout(t.current),t.current=null)}),[]),r=e.animate,o=e.onTransitionEnd,a=e.onClose,s=e.contextId,u=(0,i.useState)("open"===e.animate),l=u[0],c=u[1];(0,i.useEffect)((function(){return l?"open"!==r?(n(),c(!1),Dg):t.current?Dg:(t.current=setTimeout((function(){t.current=null,c(!1)})),n):Dg}),[r,l,n]);var f=Hc((function(e){"height"===e.propertyName&&(o(),"close"===r&&a())}),[r,a,o]),d=Lg({isAnimatingOpenOnMount:l,animate:e.animate,placeholder:e.placeholder});return i.createElement(e.placeholder.tagName,{style:d,"data-rbd-placeholder-context-id":s,onTransitionEnd:f,ref:e.innerRef})})),Ng=i.createContext(null);var Fg=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).state={isVisible:Boolean(t.props.on),data:t.props.on,animate:t.props.shouldAnimate&&t.props.on?"open":"none"},t.onClose=function(){"close"===t.state.animate&&t.setState({isVisible:!1})},t}return f(t,e),t.getDerivedStateFromProps=function(e,t){return e.shouldAnimate?e.on?{isVisible:!0,data:e.on,animate:"open"}:t.isVisible?{isVisible:!0,data:t.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:Boolean(e.on),data:e.on,animate:"none"}},t.prototype.render=function(){if(!this.state.isVisible)return null;var e={onClose:this.onClose,data:this.state.data,animate:this.state.animate};return this.props.children(e)},t}(i.PureComponent),Hg={dragging:5e3,dropAnimating:4500},Vg=function(e,t){return t?hp.drop(t.duration):e?hp.snap:hp.fluid},zg=function(e,t){return e?t?fp.drop:fp.combining:null},Ug=function(e){return null!=e.forceShouldAnimate?e.forceShouldAnimate:"SNAP"===e.mode};function Gg(e){return"DRAGGING"===e.type?function(e){var t=e.dimension.client,n=e.offset,r=e.combineWith,o=e.dropping,i=Boolean(r),a=Ug(e),s=Boolean(o),u=s?vp.drop(n,i):vp.moveTo(n);return{position:"fixed",top:t.marginBox.top,left:t.marginBox.left,boxSizing:"border-box",width:t.borderBox.width,height:t.borderBox.height,transition:Vg(a,o),transform:u,opacity:zg(i,s),zIndex:s?Hg.dropAnimating:Hg.dragging,pointerEvents:"none"}}(e):(t=e,{transform:vp.moveTo(t.offset),transition:t.shouldAnimateDisplacement?null:"none"});var t}function Wg(e){var t=Ph("draggable"),n=e.descriptor,r=e.registry,o=e.getDraggableRef,a=e.canDragInteractiveElements,s=e.shouldRespectForcePress,u=e.isEnabled,l=Fc((function(){return{canDragInteractiveElements:a,shouldRespectForcePress:s,isEnabled:u}}),[a,u,s]),c=Hc((function(e){var t=o();return t||af(!1),function(e,t,n){void 0===n&&(n=vf);var r=window.getComputedStyle(t),o=t.getBoundingClientRect(),i=Xc(o,r),a=Yc(i,n);return{descriptor:e,placeholder:{client:i,tagName:t.tagName.toLowerCase(),display:r.display},displaceBy:{x:i.marginBox.width,y:i.marginBox.height},client:i,page:a}}(n,t,e)}),[n,o]),f=Fc((function(){return{uniqueId:t,descriptor:n,options:l,getDimension:c}}),[n,c,l,t]),d=(0,i.useRef)(f),p=(0,i.useRef)(!0);mh((function(){return r.draggable.register(d.current),function(){return r.draggable.unregister(d.current)}}),[r.draggable]),mh((function(){if(p.current)p.current=!1;else{var e=d.current;d.current=f,r.draggable.update(f,e)}}),[f,r.draggable])}function $g(e,t,n){Ih()}function qg(e){e.preventDefault()}var Yg=function(e,t){return e===t},Xg=function(e){var t=e.combine,n=e.destination;return n?n.droppableId:t?t.droppableId:null};function Kg(e){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}var Jg={mapped:{type:"SECONDARY",offset:vf,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:Kg(null)}};var Qg=Lc((function(){var e=function(){var e=Or((function(e,t){return{x:e,y:t}})),t=Or((function(e,t,n,r,o){return{isDragging:!0,isClone:t,isDropAnimating:Boolean(o),dropAnimation:o,mode:e,draggingOver:n,combineWith:r,combineTargetFor:null}})),n=Or((function(e,n,r,o,i,a,s){return{mapped:{type:"DRAGGING",dropping:null,draggingOver:i,combineWith:a,mode:n,offset:e,dimension:r,forceShouldAnimate:s,snapshot:t(n,o,i,a,null)}}}));return function(r,o){if(r.isDragging){if(r.critical.draggable.id!==o.draggableId)return null;var i=r.current.client.offset,a=r.dimensions.draggables[o.draggableId],s=Ed(r.impact),u=(c=r.impact).at&&"COMBINE"===c.at.type?c.at.combine.draggableId:null,l=r.forceShouldAnimate;return n(e(i.x,i.y),r.movementMode,a,o.isClone,s,u,l)}var c;if("DROP_ANIMATING"===r.phase){var f=r.completed;if(f.result.draggableId!==o.draggableId)return null;var d=o.isClone,p=r.dimensions.draggables[o.draggableId],h=f.result,g=h.mode,v=Xg(h),m=function(e){return e.combine?e.combine.draggableId:null}(h),y={duration:r.dropDuration,curve:cp,moveTo:r.newHomeClientOffset,opacity:m?fp.drop:null,scale:m?dp.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:p,dropping:y,draggingOver:v,combineWith:m,mode:g,forceShouldAnimate:null,snapshot:t(g,d,v,m,y)}}}return null}}(),t=function(){var e=Or((function(e,t){return{x:e,y:t}})),t=Or(Kg),n=Or((function(e,n,r){return void 0===n&&(n=null),{mapped:{type:"SECONDARY",offset:e,combineTargetFor:n,shouldAnimateDisplacement:r,snapshot:t(n)}}})),r=function(e){return e?n(vf,e,!0):null},o=function(t,o,i,a){var s=i.displaced.visible[t],u=Boolean(a.inVirtualList&&a.effected[t]),l=Ff(i),c=l&&l.draggableId===t?o:null;if(!s){if(!u)return r(c);if(i.displaced.invisible[t])return null;var f=wf(a.displacedBy.point),d=e(f.x,f.y);return n(d,c,!0)}if(u)return r(c);var p=i.displacedBy.point,h=e(p.x,p.y);return n(h,c,s.shouldAnimate)};return function(e,t){if(e.isDragging)return e.critical.draggable.id===t.draggableId?null:o(t.draggableId,e.critical.draggable.id,e.impact,e.afterCritical);if("DROP_ANIMATING"===e.phase){var n=e.completed;return n.result.draggableId===t.draggableId?null:o(t.draggableId,n.result.draggableId,n.impact,n.afterCritical)}return null}}();return function(n,r){return e(n,r)||t(n,r)||Jg}}),{dropAnimationFinished:lp},null,{context:Oh,pure:!0,areStatePropsEqual:Yg})((function(e){var t=(0,i.useRef)(null),n=Hc((function(e){t.current=e}),[]),r=Hc((function(){return t.current}),[]),o=Ig(Rh),a=o.contextId,s=o.dragHandleUsageInstructionsId,u=o.registry,l=Ig(Ng),c=l.type,f=l.droppableId,d=Fc((function(){return{id:e.draggableId,index:e.index,type:c,droppableId:f}}),[e.draggableId,e.index,c,f]),p=e.children,h=e.draggableId,g=e.isEnabled,v=e.shouldRespectForcePress,m=e.canDragInteractiveElements,y=e.isClone,b=e.mapped,w=e.dropAnimationFinished;$g(),Th(),y||Wg(Fc((function(){return{descriptor:d,registry:u,getDraggableRef:r,canDragInteractiveElements:m,shouldRespectForcePress:v,isEnabled:g}}),[d,u,r,m,v,g]));var x=Fc((function(){return g?{tabIndex:0,role:"button","aria-describedby":s,"data-rbd-drag-handle-draggable-id":h,"data-rbd-drag-handle-context-id":a,draggable:!1,onDragStart:qg}:null}),[a,s,h,g]),_=Hc((function(e){"DRAGGING"===b.type&&b.dropping&&"transform"===e.propertyName&&w()}),[w,b]),S=Fc((function(){var e=Gg(b),t="DRAGGING"===b.type&&b.dropping?_:null;return{innerRef:n,draggableProps:{"data-rbd-draggable-context-id":a,"data-rbd-draggable-id":h,style:e,onTransitionEnd:t},dragHandleProps:x}}),[a,x,h,b,_,n]),O=Fc((function(){return{draggableId:d.id,type:d.type,source:{index:d.index,droppableId:d.droppableId}}}),[d.droppableId,d.id,d.index,d.type]);return p(S,b.snapshot,O)}));function ev(e){return Ig(Ng).isUsingCloneFor!==e.draggableId||e.isClone?i.createElement(Qg,e):null}function tv(e){var t="boolean"!==typeof e.isDragDisabled||!e.isDragDisabled,n=Boolean(e.disableInteractiveElementBlocking),r=Boolean(e.shouldRespectForcePress);return i.createElement(ev,(0,u.Z)({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:r}))}var nv=function(e,t){return e===t.droppable.type},rv=function(e,t){return t.draggables[e.draggable.id]};var ov={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:function(){return document.body||af(!1),document.body}},iv=Lc((function(){var e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t=(0,u.Z)({},e,{shouldAnimatePlaceholder:!1}),n=Or((function(e){return{draggableId:e.id,type:e.type,source:{index:e.index,droppableId:e.droppableId}}})),r=Or((function(r,o,i,a,s,u){var l=s.descriptor.id;if(s.descriptor.droppableId===r){var c=u?{render:u,dragging:n(s.descriptor)}:null,f={isDraggingOver:i,draggingOverWith:i?l:null,draggingFromThisWith:l,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!1,snapshot:f,useClone:c}}if(!o)return t;if(!a)return e;var d={isDraggingOver:i,draggingOverWith:l,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!0,snapshot:d,useClone:null}}));return function(n,o){var i=o.droppableId,a=o.type,s=!o.isDropDisabled,u=o.renderClone;if(n.isDragging){var l=n.critical;if(!nv(a,l))return t;var c=rv(l,n.dimensions),f=Ed(n.impact)===i;return r(i,s,f,f,c,u)}if("DROP_ANIMATING"===n.phase){var d=n.completed;if(!nv(a,d.critical))return t;var p=rv(d.critical,n.dimensions);return r(i,s,Xg(d.result)===i,Ed(d.impact)===i,p,u)}if("IDLE"===n.phase&&n.completed&&!n.shouldFlush){var h=n.completed;if(!nv(a,h.critical))return t;var g=Ed(h.impact)===i,v=Boolean(h.impact.at&&"COMBINE"===h.impact.at.type),m=h.critical.droppable.id===i;return g?v?e:t:m?e:t}return t}}),{updateViewportMaxScroll:function(e){return{type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}}},null,{context:Oh,pure:!0,areStatePropsEqual:Yg})((function(e){var t=(0,i.useContext)(Rh);t||af(!1);var n=t.contextId,r=t.isMovementAllowed,o=(0,i.useRef)(null),a=(0,i.useRef)(null),s=e.children,u=e.droppableId,l=e.type,c=e.mode,f=e.direction,d=e.ignoreContainerClipping,p=e.isDropDisabled,h=e.isCombineEnabled,g=e.snapshot,v=e.useClone,m=e.updateViewportMaxScroll,y=e.getContainerForClone,b=Hc((function(){return o.current}),[]),w=Hc((function(e){o.current=e}),[]),x=(Hc((function(){return a.current}),[]),Hc((function(e){a.current=e}),[]));Ih();var _=Hc((function(){r()&&m({maxScroll:jp()})}),[r,m]);!function(e){var t=(0,i.useRef)(null),n=Ig(Rh),r=Ph("droppable"),o=n.registry,a=n.marshal,s=Bh(e),u=Fc((function(){return{id:e.droppableId,type:e.type,mode:e.mode}}),[e.droppableId,e.mode,e.type]),l=(0,i.useRef)(u),c=Fc((function(){return Or((function(e,n){t.current||af(!1);var r={x:e,y:n};a.updateDroppableScroll(u.id,r)}))}),[u.id,a]),f=Hc((function(){var e=t.current;return e&&e.env.closestScrollable?Eg(e.env.closestScrollable):vf}),[]),d=Hc((function(){var e=f();c(e.x,e.y)}),[f,c]),p=Fc((function(){return Jc(d)}),[d]),h=Hc((function(){var e=t.current,n=Bg(e);e&&n||af(!1),e.scrollOptions.shouldPublishImmediately?d():p()}),[p,d]),g=Hc((function(e,r){t.current&&af(!1);var o=s.current,i=o.getDroppableRef();i||af(!1);var a=Mg(i),l={ref:i,descriptor:u,env:a,scrollOptions:r};t.current=l;var c=kg({ref:i,descriptor:u,env:a,windowScroll:e,direction:o.direction,isDropDisabled:o.isDropDisabled,isCombineEnabled:o.isCombineEnabled,shouldClipSubject:!o.ignoreContainerClipping}),f=a.closestScrollable;return f&&(f.setAttribute(hh.contextId,n.contextId),f.addEventListener("scroll",h,Tg(l.scrollOptions))),c}),[n.contextId,u,h,s]),v=Hc((function(){var e=t.current,n=Bg(e);return e&&n||af(!1),Eg(n)}),[]),m=Hc((function(){var e=t.current;e||af(!1);var n=Bg(e);t.current=null,n&&(p.cancel(),n.removeAttribute(hh.contextId),n.removeEventListener("scroll",h,Tg(e.scrollOptions)))}),[h,p]),y=Hc((function(e){var n=t.current;n||af(!1);var r=Bg(n);r||af(!1),r.scrollTop+=e.y,r.scrollLeft+=e.x}),[]),b=Fc((function(){return{getDimensionAndWatchScroll:g,getScrollWhileDragging:v,dragStopped:m,scroll:y}}),[m,g,v,y]),w=Fc((function(){return{uniqueId:r,descriptor:u,callbacks:b}}),[b,u,r]);mh((function(){return l.current=w.descriptor,o.droppable.register(w),function(){t.current&&m(),o.droppable.unregister(w)}}),[b,u,m,w,a,o.droppable]),mh((function(){t.current&&a.updateDroppableIsEnabled(l.current.id,!e.isDropDisabled)}),[e.isDropDisabled,a]),mh((function(){t.current&&a.updateDroppableIsCombineEnabled(l.current.id,e.isCombineEnabled)}),[e.isCombineEnabled,a])}({droppableId:u,type:l,mode:c,direction:f,isDropDisabled:p,isCombineEnabled:h,ignoreContainerClipping:d,getDroppableRef:b});var S=i.createElement(Fg,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},(function(e){var t=e.onClose,r=e.data,o=e.animate;return i.createElement(Zg,{placeholder:r,onClose:t,innerRef:x,animate:o,contextId:n,onTransitionEnd:_})})),O=Fc((function(){return{innerRef:w,placeholder:S,droppableProps:{"data-rbd-droppable-id":u,"data-rbd-droppable-context-id":n}}}),[n,u,S,w]),C=v?v.dragging.draggableId:null,E=Fc((function(){return{droppableId:u,type:l,isUsingCloneFor:C}}),[u,C,l]);return i.createElement(Ng.Provider,{value:E},s(O,g),function(){if(!v)return null;var e=v.dragging,t=v.render,n=i.createElement(ev,{draggableId:e.draggableId,index:e.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(function(n,r){return t(n,r,e)}));return mt.createPortal(n,y())}())}));iv.defaultProps=ov;var av,sv,uv=n(27856),lv=n(84436),cv=function(){return cv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},cv.apply(this,arguments)},fv={width:-1,tabRight:-1},dv=function(e,t,n,r,o){var a=(0,i.useRef)(fv);return(0,i.useCallback)((function(){if(t.current&&n.current.length){var o=document.body.clientWidth,i=t.current.getBoundingClientRect().left,s=e.current.getBoundingClientRect(),u=s.right,l=s.left;a.current.expandedStaticWidth||(a.current.expandedStaticWidth=i-l);var c=n.current[n.current.length-1].getBoundingClientRect(),f=c.right,d=c.width;if(function(e,t){return e.width===fv.width||e.width===t.width&&e.tabRight!==t.tabRight||e.width!==t.width}(a.current,{width:o,tabRight:f})){var p=o-u;if(!(f<o-p&&l+a.current.expandedStaticWidth+(f-i)+p>o))return a.current=cv(cv({},a.current),{width:o,tabRight:f,containerRight:u}),f>=u&&!a.current.collapse?(a.current.collapse=!0,r(!0)):f+d<u&&(a.current.collapse||"undefined"===typeof a.current.collapse)?(a.current.collapse=!1,r(!1)):void 0}}}),o)},pv=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},hv=(0,s.default)(Se.default).attrs({width:"100%",height:"100%",flex:!0,basis:"0%",position:"relative",overflow:{vertical:"hidden",horizontal:"auto"}})(av||(av=pv(["\n -ms-overflow-style: none;\n overflow: -moz-scrollbars-none;\n\n &::-webkit-scrollbar {\n height: 0px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ",";\n }\n"],["\n -ms-overflow-style: none;\n overflow: -moz-scrollbars-none;\n\n &::-webkit-scrollbar {\n height: 0px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ",";\n }\n"])),(0,ee.Lq)("selected")),gv=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},vv=(0,s.default)(Se.default).attrs({padding:[2]})(sv||(sv=gv(["\n cursor: pointer;\n"],["\n cursor: pointer;\n"]))),mv=function(e){var t=e.onClick,n=e.name;return i.createElement(vv,{onClick:t},i.createElement(Tl.J,{name:n,color:"text",width:8,height:8}))},yv=function(){return yv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},yv.apply(this,arguments)},bv=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},wv=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.onDragEnd,o=e.onTabClose,a=e.onResize,s=e.collapsed,u=(0,i.useRef)(),l=(0,i.useRef)([]);!function(e){var t=(0,i.useCallback)((function(t){var n=e.current;n.scrollLeft=n.scrollLeft+.1*t.deltaY}));(0,i.useEffect)((function(){if(e.current){var n=e.current;return n.addEventListener("wheel",t),function(){return n.remove("wheel",t)}}}),[])}(u);var c=dv(t,u,l,a,[n]),f=(0,lv.default)(u,l,n,s),d=f[0],p=f[1],h=f[2];(0,i.useEffect)((function(){if(u.current){var e=u.current,t=(0,uv.D)(300,(function(){c(),h()}));return t(),e.addEventListener("scroll",h),window.addEventListener("resize",t),function(){e.removeEventListener("scroll",h),window.removeEventListener("resize",t)}}}),[n]);var g=(0,i.useCallback)((function(e){if(e){var t=l.current;n.length>=t.length&&(l.current=bv(bv([],t,!0),[e],!1)),n.length<t.length&&(l.current=t.filter((function(t){return t.getAttribute("data-rbd-draggable-id")===e.getAttribute("data-rbd-draggable-id")})))}}),[n]),v=(0,i.useMemo)((function(){return i.Children.map(n,(function(e,t){var n="tab-".concat(t);return i.createElement(tv,{key:n,draggableId:n,index:t},(function(n){var r=n.innerRef,a=n.draggableProps,s=n.dragHandleProps;return i.cloneElement(e,yv(yv(yv({},a),{dragHandleProps:s,draggableRef:r,tabRef:g,tabIndex:t,onClose:o}),e.props))}))}))}),[n,o]),m=(0,i.useCallback)((function(e){if(r)return r(e)}),[r]);return i.createElement(bg,{onDragEnd:m},i.createElement(Se.default,{flex:"grow",basis:"0%",height:"100%",width:"100%",alignItems:"center",overflow:"hidden"},d&&i.createElement(mv,{onClick:function(e){e.preventDefault();var t=u.current;t.scrollTo({left:t.scrollLeft-100,behavior:"smooth"})},name:"navLeft"}),i.createElement(iv,{droppableId:"tabList",direction:"horizontal"},(function(e){var t=e.innerRef,n=e.placeholder,r=e.droppableProps;return i.createElement(hv,yv({ref:function(e){u.current=e,t(e)}},r,{flex:"grow",basis:"0%",position:"relative"}),v,n)})),p&&i.createElement(mv,{onClick:function(e){e.preventDefault();var t=u.current;t.scrollTo({left:t.scrollLeft+100,behavior:"smooth"})},name:"navRight"})))}));wv.displayName="DraggableTabs";var xv,_v,Sv,Ov,Cv,Ev,Av,Mv,kv,Pv,Rv=wv,Tv=n(68434),Iv=new Map,Bv={},Dv={},jv=new Map,Lv=function(e){var t=e.root,n=e.rootMargin,r=e.threshold;return"".concat(function(e){if(Iv.has(e))return Iv.get(e);var t=Ze();return Iv.set(e,t),t}(t),"|").concat(n,"|").concat(r)},Zv=function(e){e.forEach((function(e){var t=e.target,n=e.isIntersecting,r=jv.get(t);null===r||void 0===r||r(n)}))},Nv=function(e){var t=e.root,n=e.rootMargin,r=e.threshold,o=e.onVisibility,a=(0,i.useRef)(),s=(0,i.useRef)(),u=(0,i.useState)(!1),l=u[0],c=u[1],f=(0,i.useCallback)((function(e){var i;if(a.current=e,null===(i=s.current)||void 0===i||i.call(s),s.current=null,e){var u={root:t,rootMargin:n,threshold:r};s.current=function(e,t,n){var r=Lv(n);r in Bv||(Bv[r]=new IntersectionObserver(Zv,n),Dv[r]=0);var o=Bv[r];return o.observe(t),jv.set(t,e),Dv[r]=Dv[r]+1,function(){jv.delete(t),o.unobserve(t),Dv[r]=Dv[r]-1,Dv[r]>0||(o.disconnect(),jv.delete(e),delete Bv[r],delete Dv[r])}}((function(e){o&&o(e),c(e)}),e,u)}}),[t,n,r,o]);return(0,i.useEffect)((function(){return function(){var e;null===(e=s.current)||void 0===e||e.call(s),s.current=null}}),[]),[f,a,l]},Fv=n(13692),Hv=function(){return Hv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Hv.apply(this,arguments)},Vv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},zv=(0,i.forwardRef)((function(e,t){var n,r=e.height,o=void 0===r?"100%":r,a=e.width,s=void 0===a?"100%":a,u=e.fallback,l=void 0===u?null:u,c=e.root,f=e.rootMargin,d=void 0===f?"0px":f,p=e.threshold,h=void 0===p?0:p,g=e.onVisibility,v=e.children,m=Vv(e,["height","width","fallback","root","rootMargin","threshold","onVisibility","children"]),y=Nv({root:c,rootMargin:d,threshold:h,onVisibility:g}),b=y[0],w=y[1],x=y[2],_=(0,Tv.Z)(x),S=(0,i.useRef)(o);return x!==_&&!x&&w.current&&(S.current="".concat(w.current.clientHeight,"px")),i.createElement(Se.default,Hv({ref:function(e){b(e),(0,Fv.Z)(t,e)},width:s},{height:x?o:{min:S.current}},m),"function"===typeof(n=x?v:l)?n():n)})),Uv=zv,Gv={background:{neutral:"nodeBadgeBackground",success:["green","netdata"],clear:["green","netdata"],warning:["yellow","seaBuckthorn"],error:["red","pomegranate"]},hollow:{neutral:"nodeBadgeBackground",success:"nodeBadgeBackground",warning:"nodeBadgeBackground",error:"nodeBadgeBackground"},border:{neutral:"neutralPillBorder",success:["green","deyork"],clear:["green","deyork"],warning:["yellow","seaBuckthorn"],error:["red","apricot"]},color:{neutral:"neutralPillColor",success:["green","netdata"],clear:["green","netdata"],warning:["yellow","seaBuckthorn"],error:["red","apricot"]}},Wv={alert:"alertIcon",disabledClear:"idleClear",disabledError:"idleError",disabledWarning:"idleWarning",clear:"successLite",error:"errorLite",warning:"warningLite"},$v=function(e,t){return Gv[e][t]},qv=function(){return qv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},qv.apply(this,arguments)},Yv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Xv=function(e){var t=e.icon,n=e.color,r=e.hollow,o=e.flavour,a=e.size,s=Yv(e,["icon","color","hollow","flavour","size"]);return t?"string"!==typeof t?t:i.createElement(xe.JO,qv({color:n||(r?$v("color",o):"bright"),"data-testid":"pill-icon",height:a||"14px",width:a||"14px",name:t},s)):null},Kv=function(e,t){return e||function(e){return Wv[e]}(t)},Jv=function(e){var t=e.theme,n=e.background,r=e.flavour,o=void 0===r?"neutral":r,i=e.hollow;if(n){var a=(0,ee.Lq)(n)({theme:t});return"background-color: ".concat(a,";")}var s=i?"hollow":"background",u=(0,ee.Lq)($v(s,o))({theme:t});return"background-color: ".concat(u,";")},Qv={default:"18px",large:"22px"},em=function(e,t,n){return e||(n?"8px":Qv[t]||Qv.default)},tm={default:[1,2],large:[1,3]},nm=function(e,t,n){return e||(n?[0]:tm[t]||tm.default)},rm=function(e,t){return e||t&&"8px"},om=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},im=function(){return im=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},im.apply(this,arguments)},am=(0,s.default)(Se.default).attrs((function(e){var t=e.background,n=(e.height,e.onClick),r=e.round,o=void 0===r?999:r,i=e.size;return im(im({background:t},n&&{cursor:"pointer"}),{position:"relative",round:o,size:i,border:{side:"all",color:"alertBorder"}})}))(xv||(xv=om(["\n * {\n cursor: ",";\n }\n"],["\n * {\n cursor: ",";\n }\n"])),(function(e){return e.onClick?"pointer":"inherit"})),sm=(0,s.default)(Se.default).attrs((function(e){var t=e.round,n=void 0===t?999:t,r=e.hollow,o=e.flavour,i=e.borderColor,a=e.onClick,s=e.padding,u=e.size,l=e.tiny,c=e.width,f=e.height,d=e.position,p=e.zIndex,h=e.justifyContent,g=void 0===h?"center":h,v=e.alignItems,m=void 0===v?"center":v;return im(im({padding:nm(s,u,l),round:n,border:{side:"all",color:i||$v(r?"border":"background",o),size:"1px"}},a&&{cursor:"pointer"}),{height:em(f,u,l),width:rm(c,l),justifyContent:g,alignItems:m,position:d,zIndex:p})}))(_v||(_v=om(["\n ",";\n"],["\n ",";\n"])),Jv),um=function(){return um=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},um.apply(this,arguments)},lm=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},cm={default:He.TextMicro,large:He.Text,normal:He.Text,small:He.TextSmall},fm=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.background,o=e.color,a=e["data-testid"],s=void 0===a?"pill":a,u=e.flavour,l=e.hollow,c=e.icon,f=e.iconSize,d=e.normal,p=e.reverse,h=e.size,g=e.textSize,v=e.tiny,m=lm(e,["children","background","color","data-testid","flavour","hollow","icon","iconSize","normal","reverse","size","textSize","tiny"]),y={color:o,flavour:u,hollow:l,icon:c,size:f};if(v)return i.createElement(sm,um({background:r,"data-testid":"".concat(s,"-tiny"),flavour:u,hollow:l,ref:t,tiny:!0},m));var b=g?cm[g]:cm[h]||cm.default;return i.createElement(sm,um({background:r,"data-testid":s,flavour:u,gap:1,hollow:l,ref:t,size:h},m),!p&&i.createElement(Xv,um({"data-testid":"".concat(s,"-icon-left")},y)),n&&i.createElement(b,{color:o||(l?$v("color",u):"bright"),"data-testid":"".concat(s,"-text"),strong:!d,whiteSpace:"nowrap"},n),p&&i.createElement(Xv,um({"data-testid":"".concat(s,"-icon-right")},y)))})),dm=fm,pm=function(){return pm=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},pm.apply(this,arguments)},hm=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},gm=(0,i.forwardRef)((function(e,t){var n=e.background,r=void 0===n?"nodeBadgeBackground":n,o=e.className,a=e.color,s=void 0===a?"text":a,u=e.containerWidth,l=void 0===u?"100%":u,c=e.height,f=void 0===c?2:c,d=e.value,p=e.width,h=hm(e,["background","className","color","containerWidth","height","value","width"]);return d=Array.isArray(d)?d:[d||{width:p,color:s}],i.createElement(Se.default,pm({background:r,border:{side:"all",color:r},className:o,"data-testid":"progressBar",height:f,ref:t,round:"2px",width:l},h),d.map((function(e,t){var n=e.color,r=e.width;return"0%"===r?null:i.createElement(Te.Z,{background:n,border:{side:"all",color:n},"data-testid":"progressBar-progress".concat(r),height:"100%",key:"".concat(r,"-").concat(t),position:"relative",round:"2px",width:r})})))})),vm=gm,mm=function(){return mm=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},mm.apply(this,arguments)},ym=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},bm=(0,i.forwardRef)((function(e,t){var n=e.background,r=e.icon,o=e.text,a=ym(e,["background","icon","text"]);return i.createElement(dm,mm({background:n,borderColor:n,"data-testid":"mastercard-pill",icon:r,ref:t},a),!r&&(o||"-"))})),wm=bm,xm=function(){return xm=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},xm.apply(this,arguments)},_m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Sm=(0,i.forwardRef)((function(e,t){var n=e["data-testid"],r=void 0===n?"alert-mastercard":n,o=e.height,a=e.normal,s=e.onClick,u=e.labelProps,l=void 0===u?{}:u,c=e.pillLeft,f=void 0===c?{}:c,d=e.pillRight,p=void 0===d?{}:d,h=e.pillEnd,g=e.round,v=e.size,m=_m(e,["data-testid","height","normal","onClick","labelProps","pillLeft","pillRight","pillEnd","round","size"]),y={height:o,round:g,size:v},b=xm(xm({background:Wv.alert,color:"text",icon:"alarm_bell",zIndex:4},l),y),w=xm(xm({normal:a},y),m),x=Kv(f.background,f.flavour||"disabledError"),_=Kv(p.background,p.flavour||"disabledWarning"),S=h&&Kv(h.background,h.flavour||"disabledClear"),O=xm(xm(xm({background:x,position:"relative",margin:[0,0,0,-3],padding:[1,2,1,4],zIndex:3},w),f),{round:l.hidden?g:"0 12px 12px 0"}),C=xm(xm(xm({background:_,margin:[0,0,0,-3],padding:[1,2,1,4],zIndex:2},w),p),{round:"0 12px 12px 0"}),E=h&&xm(xm({background:S,margin:[0,0,0,-3],padding:[1,2,1,4],zIndex:1,round:"0 12px 12px 0"},w),h);return i.createElement(am,xm({"data-testid":r,onClick:s,ref:t},y),!l.hidden&&i.createElement(wm,xm({"data-testid":"".concat(r,"-icon-pill")},b)),i.createElement(wm,xm({"data-testid":"".concat(r,"-left-pill")},O)),i.createElement(wm,xm({"data-testid":"".concat(r,"-right-pill")},C)),E&&i.createElement(wm,xm({"data-testid":"".concat(r,"-end-pill")},E)))})),Om=Sm,Cm=function(){return Cm=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Cm.apply(this,arguments)},Em=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Am={default:"22px",large:"37px"},Mm=(0,i.forwardRef)((function(e,t){var n=e.children,r=e["data-testid"],o=void 0===r?"mastercard":r,a=e.height,s=e.normal,u=e.onClick,l=e.pillLeft,c=void 0===l?{}:l,f=e.pillRight,d=void 0===f?{}:f,p=e.pillEnd,h=e.round,g=e.size,v=(e.zIndex,Em(e,["children","data-testid","height","normal","onClick","pillLeft","pillRight","pillEnd","round","size","zIndex"])),m={height:a,round:h,size:g},y=Cm(Cm({normal:s},m),v),b=Kv(d.background,d.flavour||"disabledWarning"),w=p&&Kv(p.background,p.flavour||"disabledClear"),x=Cm(Cm(Cm({background:Kv(c.background,c.flavour||"disabledError"),padding:[0,3],position:"relative",width:{min:Am[v.size]||Am.default}},y),c),{round:"12px",zIndex:3}),_=Cm(Cm(Cm({background:b,margin:[0,0,0,-1.5],padding:[0,2],width:{min:Am[v.size]||Am.default}},y),d),{round:"0 12px 12px 0",zIndex:2}),S=p&&Cm(Cm(Cm({background:w,margin:[0,0,0,-1.5],padding:[0,2],width:{min:Am[v.size]||Am.default}},y),p),{round:"0 12px 12px 0",zIndex:1});return i.createElement(am,Cm({"data-testid":o,onClick:u,ref:t},m),n||i.createElement(i.Fragment,null,i.createElement(wm,Cm({"data-testid":"".concat(o,"-left-pill")},x)),i.createElement(wm,Cm({"data-testid":"".concat(o,"-right-pill")},_)),S&&i.createElement(wm,Cm({"data-testid":"".concat(o,"-end-pill")},S))))})),km=Mm,Pm=function(){return Pm=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Pm.apply(this,arguments)},Rm=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Tm=function(e){var t=e.background,n=void 0===t?"mainBackground":t,r=e.children,o=e.testId,a=Rm(e,["background","children","testId"]);return i.createElement(Se.default,Pm({background:n,column:!0,"data-testid":o,round:!0},a),r)},Im=function(e){var t=e.children,n=e.testId,r=Rm(e,["children","testId"]);return i.createElement(Se.default,Pm({background:"modalHeaderBackground","data-testid":n,padding:[2,4]},r),t)},Bm=function(e){var t=e.children,n=e.testId,r=Rm(e,["children","testId"]);return i.createElement(Se.default,Pm({"data-testid":n,padding:[2,4],column:!0},r),t)},Dm=function(e){var t=e.children,n=e.hasBorder,r=void 0===n||n,o=e.parentPadding,a=e.testId,s=Rm(e,["children","hasBorder","parentPadding","testId"]);return i.createElement(Se.default,{column:!0,padding:o||[0,4],flex:1},i.createElement(Se.default,Pm({"data-testid":a,flex:1,padding:[2,0],alignItems:"center",justifyContent:"end",border:r?{size:"1px",type:"solid",side:"top",color:"borderSecondary"}:{}},s),t))},jm=function(e){var t=e.iconName,n=e.onClick,r=e.testId,o=Rm(e,["iconName","onClick","testId"]);return i.createElement(Te.Z,Pm({"data-testid":r,sx:{marginLeft:"auto"},as:xe.JO,name:t,color:"border",onClick:n,cursor:"pointer"},o))},Lm=function(e){var t=e.onClose,n=e.testId,r=Rm(e,["onClose","testId"]);return i.createElement(jm,Pm({iconName:"x",onClick:t,testId:n},r))},Zm=function(e){var t=e.children,n=Rm(e,["children"]);return i.createElement(Xo.default,Pm({},n),t)},Nm=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Fm=(0,s.default)(Dm).attrs({gap:6,hasBorder:!1,parentPadding:[0],padding:[0]})(Sv||(Sv=Nm([""],[""]))),Hm=(0,s.default)(Lm).attrs({color:"text",height:"14px",width:"14px"})(Ov||(Ov=Nm(["\n &:hover {\n fill: ",";\n }\n"],["\n &:hover {\n fill: ",";\n }\n"])),(0,ee.Lq)("selected")),Vm=(0,s.default)(He.Text).attrs({as:Tm,background:"dropdown",gap:6,height:{max:"calc(100vh - 32px)",min:45},padding:[6],width:{base:128,max:140,min:70}})(Cv||(Cv=Nm([""],[""]))),zm=(0,s.default)(Bm).attrs({column:!1,padding:[0]})(Ev||(Ev=Nm(["\n display: block;\n\n strong {\n font-weight: bold;\n }\n"],["\n display: block;\n\n strong {\n font-weight: bold;\n }\n"]))),Um=(0,s.default)(Zm).attrs({backdropProps:{backdropBlur:8}})(Av||(Av=Nm(["\n box-shadow: 0 11px 15px -7px rgb(0 0 0 / 20%), 0px 24px 38px 3px rgb(0 0 0 / 14%),\n 0px 9px 46px 8px rgb(0 0 0 / 12%);\n"],["\n box-shadow: 0 11px 15px -7px rgb(0 0 0 / 20%), 0px 24px 38px 3px rgb(0 0 0 / 14%),\n 0px 9px 46px 8px rgb(0 0 0 / 12%);\n"]))),Gm=(0,s.default)(Im).attrs({alignItems:"center",padding:[0],background:""})(Mv||(Mv=Nm([""],[""]))),Wm=(0,s.default)(He.H3).attrs({margin:[0]})(kv||(kv=Nm([""],[""]))),$m=(0,s.default)(xe.JO).attrs({color:"main",height:"24px",width:"24px"})(Pv||(Pv=Nm([""],[""]))),qm=function(){return qm=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},qm.apply(this,arguments)},Ym=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Xm=function(e){var t=e.children,n=Ym(e,["children"]);return"object"===typeof t?t:i.createElement(He.Text,qm({},n),t)},Km=function(e){var t=e.confirmLabel,n=void 0===t?"Yes, remove":t,r=e.confirmWidth,o=void 0===r?"128px":r,a=e["data-ga"],s=void 0===a?"confirmation-dialog":a,u=e["data-testid"],l=void 0===u?"confirmationDialog":u,c=e.declineLabel,f=void 0===c?"Cancel":c,d=e.declineWidth,p=void 0===d?"128px":d,h=e.handleConfirm,g=e.handleDecline,v=e.hideIcon,m=e.iconName,y=void 0===m?"warning_triangle_hollow":m,b=e.isConfirmDisabled,w=e.isConfirmLoading,x=e.isDeclineDisabled,_=e.isConfirmPositive,S=e.message,O=e.title;return i.createElement(Um,{onEsc:g},i.createElement(Vm,{"data-testid":l},i.createElement(Gm,{"data-testid":"".concat(l,"-headerContainer")},i.createElement(Se.default,{"data-testid":"".concat(l,"-header"),gap:4},!v&&i.createElement($m,{"data-testid":"".concat(l,"-headerIcon"),name:y}),i.createElement(Wm,{"data-testid":"".concat(l,"-headerText")},O)),g&&i.createElement(Hm,{"data-testid":"".concat(l,"-headerClose"),onClose:g})),i.createElement(zm,{"data-testid":"".concat(l,"-body")},i.createElement(Xm,{"data-testid":"".concat(l,"-bodyMessage")},S)),i.createElement(Fm,{"data-testid":"".concat(l,"-actions")},g&&i.createElement(Ee,{"data-ga":"".concat(s,"-::click-cancel::global-view"),"data-testid":"".concat(l,"-cancelAction"),flavour:"hollow",disabled:x,label:f,onClick:g,width:p}),i.createElement(Ee,{"data-ga":"".concat(s,"-::click-confirm::global-view"),"data-testid":"".concat(l,"-confirmAction"),danger:!_&&!0,disabled:b,label:n,onClick:h,width:o,isLoading:w}))))};function Jm(e,t){return"function"===typeof e?e(t):e}function Qm(e,t){return n=>{t.setState((t=>({...t,[e]:Jm(n,t[e])})))}}function ey(e){return e instanceof Function}function ty(e,t){const n=[],r=e=>{e.forEach((e=>{n.push(e);const o=t(e);null!=o&&o.length&&r(o)}))};return r(e),n}function ny(e,t,n){let r,o=[];return()=>{let i;n.key&&n.debug&&(i=Date.now());const a=e(),s=a.length!==o.length||a.some(((e,t)=>o[t]!==e));if(!s)return r;let u;if(o=a,n.key&&n.debug&&(u=Date.now()),r=t(...a),null==n||null==n.onChange||n.onChange(r),n.key&&n.debug&&null!=n&&n.debug()){const e=Math.round(100*(Date.now()-i))/100,t=Math.round(100*(Date.now()-u))/100,r=t/16,o=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${o(t,5)} /${o(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,null==n?void 0:n.key)}return r}}function ry(e,t,n){var r;let o={id:null!=(r=n.id)?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const e=[],t=n=>{n.subHeaders&&n.subHeaders.length&&n.subHeaders.map(t),e.push(n)};return t(o),e},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach((t=>{Object.assign(o,null==t.createHeader?void 0:t.createHeader(o,e))})),o}const oy={createTable:e=>({getHeaderGroups:ny((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((t,n,r,o)=>{var i,a;const s=null!=(i=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?i:[],u=null!=(a=null==o?void 0:o.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?a:[],l=n.filter((e=>!(null!=r&&r.includes(e.id))&&!(null!=o&&o.includes(e.id))));return iy(t,[...s,...l,...u],e)}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterHeaderGroups:ny((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((t,n,r,o)=>(n=n.filter((e=>!(null!=r&&r.includes(e.id))&&!(null!=o&&o.includes(e.id)))),iy(t,n,e,"center"))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftHeaderGroups:ny((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left]),((t,n,r)=>{var o;const i=null!=(o=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?o:[];return iy(t,i,e,"left")}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightHeaderGroups:ny((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right]),((t,n,r)=>{var o;const i=null!=(o=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?o:[];return iy(t,i,e,"right")}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getFooterGroups:ny((()=>[e.getHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftFooterGroups:ny((()=>[e.getLeftHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterFooterGroups:ny((()=>[e.getCenterHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightFooterGroups:ny((()=>[e.getRightHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getFlatHeaders:ny((()=>[e.getHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftFlatHeaders:ny((()=>[e.getLeftHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterFlatHeaders:ny((()=>[e.getCenterHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightFlatHeaders:ny((()=>[e.getRightHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterLeafHeaders:ny((()=>[e.getCenterFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftLeafHeaders:ny((()=>[e.getLeftFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightLeafHeaders:ny((()=>[e.getRightFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeafHeaders:ny((()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()]),((e,t,n)=>{var r,o,i,a,s,u;return[...null!=(r=null==(o=e[0])?void 0:o.headers)?r:[],...null!=(i=null==(a=t[0])?void 0:a.headers)?i:[],...null!=(s=null==(u=n[0])?void 0:u.headers)?s:[]].map((e=>e.getLeafHeaders())).flat()}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}})})};function iy(e,t,n,r){var o,i;let a=0;const s=function(e,t){void 0===t&&(t=1),a=Math.max(a,t),e.filter((e=>e.getIsVisible())).forEach((e=>{var n;null!=(n=e.columns)&&n.length&&s(e.columns,t+1)}),0)};s(e);let u=[];const l=(e,t)=>{const o={depth:t,id:[r,`${t}`].filter(Boolean).join("_"),headers:[]},i=[];e.forEach((e=>{const a=[...i].reverse()[0];let s,u=!1;if(e.column.depth===o.depth&&e.column.parent?s=e.column.parent:(s=e.column,u=!0),a&&(null==a?void 0:a.column)===s)a.subHeaders.push(e);else{const o=ry(n,s,{id:[r,t,s.id,null==e?void 0:e.id].filter(Boolean).join("_"),isPlaceholder:u,placeholderId:u?`${i.filter((e=>e.column===s)).length}`:void 0,depth:t,index:i.length});o.subHeaders.push(e),i.push(o)}o.headers.push(e),e.headerGroup=o})),u.push(o),t>0&&l(i,t-1)},c=t.map(((e,t)=>ry(n,e,{depth:a,index:t})));l(c,a-1),u.reverse();const f=e=>{const t=e.filter((e=>e.column.getIsVisible()));return t.map((e=>{let t=0,n=0,r=[0];e.subHeaders&&e.subHeaders.length?(r=[],f(e.subHeaders).forEach((e=>{let{colSpan:n,rowSpan:o}=e;t+=n,r.push(o)}))):t=1;return n+=Math.min(...r),e.colSpan=t,e.rowSpan=n,{colSpan:t,rowSpan:n}}))};return f(null!=(o=null==(i=u[0])?void 0:i.headers)?o:[]),u}const ay={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},sy={getDefaultColumnDef:()=>ay,getInitialState:e=>({columnSizing:{},columnSizingInfo:{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]},...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:Qm("columnSizing",e),onColumnSizingInfoChange:Qm("columnSizingInfo",e)}),createColumn:(e,t)=>({getSize:()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max(null!=(n=e.columnDef.minSize)?n:ay.minSize,null!=(r=null!=i?i:e.columnDef.size)?r:ay.size),null!=(o=e.columnDef.maxSize)?o:ay.maxSize)},getStart:n=>{const r=n?"left"===n?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),o=r.findIndex((t=>t.id===e.id));if(o>0){const e=r[o-1];return e.getStart(n)+e.getSize()}return 0},resetSize:()=>{t.setColumnSizing((t=>{let{[e.id]:n,...r}=t;return r}))},getCanResize:()=>{var n,r;return(null==(n=e.columnDef.enableResizing)||n)&&(null==(r=t.options.enableColumnResizing)||r)},getIsResizing:()=>t.getState().columnSizingInfo.isResizingColumn===e.id}),createHeader:(e,t)=>({getSize:()=>{let t=0;const n=e=>{var r;e.subHeaders.length?e.subHeaders.forEach(n):t+=null!=(r=e.column.getSize())?r:0};return n(e),t},getStart:()=>{if(e.index>0){const t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},getResizeHandler:()=>{const n=t.getColumn(e.column.id),r=null==n?void 0:n.getCanResize();return o=>{if(!n||!r)return;if(null==o.persist||o.persist(),ly(o)&&o.touches&&o.touches.length>1)return;const i=e.getSize(),a=e?e.getLeafHeaders().map((e=>[e.column.id,e.column.getSize()])):[[n.id,n.getSize()]],s=ly(o)?Math.round(o.touches[0].clientX):o.clientX,u={},l=(e,n)=>{"number"===typeof n&&(t.setColumnSizingInfo((e=>{var t,r;const o=n-(null!=(t=null==e?void 0:e.startOffset)?t:0),i=Math.max(o/(null!=(r=null==e?void 0:e.startSize)?r:0),-.999999);return e.columnSizingStart.forEach((e=>{let[t,n]=e;u[t]=Math.round(100*Math.max(n+n*i,0))/100})),{...e,deltaOffset:o,deltaPercentage:i}})),"onChange"!==t.options.columnResizeMode&&"end"!==e||t.setColumnSizing((e=>({...e,...u}))))},c=e=>l("move",e),f=e=>{l("end",e),t.setColumnSizingInfo((e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]})))},d={moveHandler:e=>c(e.clientX),upHandler:e=>{document.removeEventListener("mousemove",d.moveHandler),document.removeEventListener("mouseup",d.upHandler),f(e.clientX)}},p={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),c(e.touches[0].clientX),!1),upHandler:e=>{var t;document.removeEventListener("touchmove",p.moveHandler),document.removeEventListener("touchend",p.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(null==(t=e.touches[0])?void 0:t.clientX)}},h=!!function(){if("boolean"===typeof uy)return uy;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch(t){e=!1}return uy=e,uy}()&&{passive:!1};ly(o)?(document.addEventListener("touchmove",p.moveHandler,h),document.addEventListener("touchend",p.upHandler,h)):(document.addEventListener("mousemove",d.moveHandler,h),document.addEventListener("mouseup",d.upHandler,h)),t.setColumnSizingInfo((e=>({...e,startOffset:s,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:a,isResizingColumn:n.id})))}}}),createTable:e=>({setColumnSizing:t=>null==e.options.onColumnSizingChange?void 0:e.options.onColumnSizingChange(t),setColumnSizingInfo:t=>null==e.options.onColumnSizingInfoChange?void 0:e.options.onColumnSizingInfoChange(t),resetColumnSizing:t=>{var n;e.setColumnSizing(t?{}:null!=(n=e.initialState.columnSizing)?n:{})},resetHeaderSizeInfo:t=>{var n;e.setColumnSizingInfo(t?{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}:null!=(n=e.initialState.columnSizingInfo)?n:{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]})},getTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},getLeftTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getLeftHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},getCenterTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getCenterHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},getRightTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getRightHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0}})};let uy=null;function ly(e){return"touchstart"===e.type}const cy={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Qm("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;return{_autoResetExpanded:()=>{var r,o;if(t){if(null!=(r=null!=(o=e.options.autoResetAll)?o:e.options.autoResetExpanded)?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue((()=>{e.resetExpanded(),n=!1}))}}else e._queue((()=>{t=!0}))},setExpanded:t=>null==e.options.onExpandedChange?void 0:e.options.onExpandedChange(t),toggleAllRowsExpanded:t=>{(null!=t?t:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},resetExpanded:t=>{var n,r;e.setExpanded(t?{}:null!=(n=null==(r=e.initialState)?void 0:r.expanded)?n:{})},getCanSomeRowsExpand:()=>e.getPrePaginationRowModel().flatRows.some((e=>e.getCanExpand())),getToggleAllRowsExpandedHandler:()=>t=>{null==t.persist||t.persist(),e.toggleAllRowsExpanded()},getIsSomeRowsExpanded:()=>{const t=e.getState().expanded;return!0===t||Object.values(t).some(Boolean)},getIsAllRowsExpanded:()=>{const t=e.getState().expanded;return"boolean"===typeof t?!0===t:!!Object.keys(t).length&&!e.getRowModel().flatRows.some((e=>!e.getIsExpanded()))},getExpandedDepth:()=>{let t=0;return(!0===e.getState().expanded?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach((e=>{const n=e.split(".");t=Math.max(t,n.length)})),t},getPreExpandedRowModel:()=>e.getSortedRowModel(),getExpandedRowModel:()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())}},createRow:(e,t)=>({toggleExpanded:n=>{t.setExpanded((r=>{var o;const i=!0===r||!(null==r||!r[e.id]);let a={};if(!0===r?Object.keys(t.getRowModel().rowsById).forEach((e=>{a[e]=!0})):a=r,n=null!=(o=n)?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:t,...n}=a;return n}return r}))},getIsExpanded:()=>{var n;const r=t.getState().expanded;return!!(null!=(n=null==t.options.getIsRowExpanded?void 0:t.options.getIsRowExpanded(e))?n:!0===r||(null==r?void 0:r[e.id]))},getCanExpand:()=>{var n,r,o;return null!=(n=null==t.options.getRowCanExpand?void 0:t.options.getRowCanExpand(e))?n:(null==(r=t.options.enableExpanding)||r)&&!(null==(o=e.subRows)||!o.length)},getToggleExpandedHandler:()=>{const t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}})},fy=(e,t,n)=>{var r,o,i;const a=n.toLowerCase();return Boolean(null==(r=e.getValue(t))||null==(o=r.toString())||null==(i=o.toLowerCase())?void 0:i.includes(a))};fy.autoRemove=e=>xy(e);const dy=(e,t,n)=>{var r,o;return Boolean(null==(r=e.getValue(t))||null==(o=r.toString())?void 0:o.includes(n))};dy.autoRemove=e=>xy(e);const py=(e,t,n)=>{var r,o;return(null==(r=e.getValue(t))||null==(o=r.toString())?void 0:o.toLowerCase())===(null==n?void 0:n.toLowerCase())};py.autoRemove=e=>xy(e);const hy=(e,t,n)=>{var r;return null==(r=e.getValue(t))?void 0:r.includes(n)};hy.autoRemove=e=>xy(e)||!(null!=e&&e.length);const gy=(e,t,n)=>!n.some((n=>{var r;return!(null!=(r=e.getValue(t))&&r.includes(n))}));gy.autoRemove=e=>xy(e)||!(null!=e&&e.length);const vy=(e,t,n)=>n.some((n=>{var r;return null==(r=e.getValue(t))?void 0:r.includes(n)}));vy.autoRemove=e=>xy(e)||!(null!=e&&e.length);const my=(e,t,n)=>e.getValue(t)===n;my.autoRemove=e=>xy(e);const yy=(e,t,n)=>e.getValue(t)==n;yy.autoRemove=e=>xy(e);const by=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};by.resolveFilterValue=e=>{let[t,n]=e,r="number"!==typeof t?parseFloat(t):t,o="number"!==typeof n?parseFloat(n):n,i=null===t||Number.isNaN(r)?-1/0:r,a=null===n||Number.isNaN(o)?1/0:o;if(i>a){const e=i;i=a,a=e}return[i,a]},by.autoRemove=e=>xy(e)||xy(e[0])&&xy(e[1]);const wy={includesString:fy,includesStringSensitive:dy,equalsString:py,arrIncludes:hy,arrIncludesAll:gy,arrIncludesSome:vy,equals:my,weakEquals:yy,inNumberRange:by};function xy(e){return void 0===e||null===e||""===e}const _y={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:Qm("columnFilters",e),onGlobalFilterChange:Qm("globalFilter",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n,r;const o=null==(n=e.getCoreRowModel().flatRows[0])||null==(r=n._getAllCellsByColumnId()[t.id])?void 0:r.getValue();return"string"===typeof o||"number"===typeof o}}),createColumn:(e,t)=>({getAutoFilterFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=null==n?void 0:n.getValue(e.id);return"string"===typeof r?wy.includesString:"number"===typeof r?wy.inNumberRange:"boolean"===typeof r||null!==r&&"object"===typeof r?wy.equals:Array.isArray(r)?wy.arrIncludes:wy.weakEquals},getFilterFn:()=>{var n,r;return ey(e.columnDef.filterFn)?e.columnDef.filterFn:"auto"===e.columnDef.filterFn?e.getAutoFilterFn():null!=(n=null==(r=t.options.filterFns)?void 0:r[e.columnDef.filterFn])?n:wy[e.columnDef.filterFn]},getCanFilter:()=>{var n,r,o;return(null==(n=e.columnDef.enableColumnFilter)||n)&&(null==(r=t.options.enableColumnFilters)||r)&&(null==(o=t.options.enableFilters)||o)&&!!e.accessorFn},getCanGlobalFilter:()=>{var n,r,o,i;return(null==(n=e.columnDef.enableGlobalFilter)||n)&&(null==(r=t.options.enableGlobalFilter)||r)&&(null==(o=t.options.enableFilters)||o)&&(null==(i=null==t.options.getColumnCanGlobalFilter?void 0:t.options.getColumnCanGlobalFilter(e))||i)&&!!e.accessorFn},getIsFiltered:()=>e.getFilterIndex()>-1,getFilterValue:()=>{var n,r;return null==(n=t.getState().columnFilters)||null==(r=n.find((t=>t.id===e.id)))?void 0:r.value},getFilterIndex:()=>{var n,r;return null!=(n=null==(r=t.getState().columnFilters)?void 0:r.findIndex((t=>t.id===e.id)))?n:-1},setFilterValue:n=>{t.setColumnFilters((t=>{const r=e.getFilterFn(),o=null==t?void 0:t.find((t=>t.id===e.id)),i=Jm(n,o?o.value:void 0);var a;if(Sy(r,i,e))return null!=(a=null==t?void 0:t.filter((t=>t.id!==e.id)))?a:[];const s={id:e.id,value:i};var u;return o?null!=(u=null==t?void 0:t.map((t=>t.id===e.id?s:t)))?u:[]:null!=t&&t.length?[...t,s]:[s]}))},_getFacetedRowModel:t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),getFacetedRowModel:()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),_getFacetedUniqueValues:t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),getFacetedUniqueValues:()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,_getFacetedMinMaxValues:t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),getFacetedMinMaxValues:()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}),createRow:(e,t)=>({columnFilters:{},columnFiltersMeta:{}}),createTable:e=>({getGlobalAutoFilterFn:()=>wy.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return ey(r)?r:"auto"===r?e.getGlobalAutoFilterFn():null!=(t=null==(n=e.options.filterFns)?void 0:n[r])?t:wy[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns();null==e.options.onColumnFiltersChange||e.options.onColumnFiltersChange((e=>{var r;return null==(r=Jm(t,e))?void 0:r.filter((e=>{const t=n.find((t=>t.id===e.id));if(t){if(Sy(t.getFilterFn(),e.value,t))return!1}return!0}))}))},setGlobalFilter:t=>{null==e.options.onGlobalFilterChange||e.options.onGlobalFilterChange(t)},resetGlobalFilter:t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)},resetColumnFilters:t=>{var n,r;e.setColumnFilters(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.columnFilters)?n:[])},getPreFilteredRowModel:()=>e.getCoreRowModel(),getFilteredRowModel:()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel()),_getGlobalFacetedRowModel:e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),getGlobalFacetedRowModel:()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),_getGlobalFacetedUniqueValues:e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),getGlobalFacetedUniqueValues:()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,_getGlobalFacetedMinMaxValues:e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),getGlobalFacetedMinMaxValues:()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}})};function Sy(e,t,n){return!(!e||!e.autoRemove)&&e.autoRemove(t,n)||"undefined"===typeof t||"string"===typeof t&&!t}const Oy={sum:(e,t,n)=>n.reduce(((t,n)=>{const r=n.getValue(e);return t+("number"===typeof r?r:0)}),0),min:(e,t,n)=>{let r;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(r>n||void 0===r&&n>=n)&&(r=n)})),r},max:(e,t,n)=>{let r;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(r<n||void 0===r&&n>=n)&&(r=n)})),r},extent:(e,t,n)=>{let r,o;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(void 0===r?n>=n&&(r=o=n):(r>n&&(r=n),o<n&&(o=n)))})),[r,o]},mean:(e,t)=>{let n=0,r=0;if(t.forEach((t=>{let o=t.getValue(e);null!=o&&(o=+o)>=o&&(++n,r+=o)})),n)return r/n},median:(e,t)=>{if(!t.length)return;const n=t.map((t=>t.getValue(e)));if(!function(e){return Array.isArray(e)&&e.every((e=>"number"===typeof e))}(n))return;if(1===n.length)return n[0];const r=Math.floor(n.length/2),o=n.sort(((e,t)=>e-t));return n.length%2!==0?o[r]:(o[r-1]+o[r])/2},unique:(e,t)=>Array.from(new Set(t.map((t=>t.getValue(e)))).values()),uniqueCount:(e,t)=>new Set(t.map((t=>t.getValue(e)))).size,count:(e,t)=>t.length},Cy={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return null!=(t=null==(n=e.getValue())||null==n.toString?void 0:n.toString())?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:Qm("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>({toggleGrouping:()=>{t.setGrouping((t=>null!=t&&t.includes(e.id)?t.filter((t=>t!==e.id)):[...null!=t?t:[],e.id]))},getCanGroup:()=>{var n,r,o,i;return null!=(n=null==(r=null!=(o=null==(i=e.columnDef.enableGrouping)||i)?o:t.options.enableGrouping)||r)?n:!!e.accessorFn},getIsGrouped:()=>{var n;return null==(n=t.getState().grouping)?void 0:n.includes(e.id)},getGroupedIndex:()=>{var n;return null==(n=t.getState().grouping)?void 0:n.indexOf(e.id)},getToggleGroupingHandler:()=>{const t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},getAutoAggregationFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=null==n?void 0:n.getValue(e.id);return"number"===typeof r?Oy.sum:"[object Date]"===Object.prototype.toString.call(r)?Oy.extent:void 0},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return ey(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:"auto"===e.columnDef.aggregationFn?e.getAutoAggregationFn():null!=(n=null==(r=t.options.aggregationFns)?void 0:r[e.columnDef.aggregationFn])?n:Oy[e.columnDef.aggregationFn]}}),createTable:e=>({setGrouping:t=>null==e.options.onGroupingChange?void 0:e.options.onGroupingChange(t),resetGrouping:t=>{var n,r;e.setGrouping(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.grouping)?n:[])},getPreGroupedRowModel:()=>e.getFilteredRowModel(),getGroupedRowModel:()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())}),createRow:(e,t)=>({getIsGrouped:()=>!!e.groupingColumnId,getGroupingValue:n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return null!=r&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},_groupingValuesCache:{}}),createCell:(e,t,n,r)=>({getIsGrouped:()=>t.getIsGrouped()&&t.id===n.groupingColumnId,getIsPlaceholder:()=>!e.getIsGrouped()&&t.getIsGrouped(),getIsAggregated:()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!(null==(t=n.subRows)||!t.length)}})};const Ey={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Qm("columnOrder",e)}),createTable:e=>({setColumnOrder:t=>null==e.options.onColumnOrderChange?void 0:e.options.onColumnOrderChange(t),resetColumnOrder:t=>{var n;e.setColumnOrder(t?[]:null!=(n=e.initialState.columnOrder)?n:[])},_getOrderColumnsFn:ny((()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode]),((e,t,n)=>r=>{let o=[];if(null!=e&&e.length){const t=[...e],n=[...r];for(;n.length&&t.length;){const e=t.shift(),r=n.findIndex((t=>t.id===e));r>-1&&o.push(n.splice(r,1)[0])}o=[...o,...n]}else o=r;return function(e,t,n){if(null==t||!t.length||!n)return e;const r=e.filter((e=>!t.includes(e.id)));if("remove"===n)return r;const o=t.map((t=>e.find((e=>e.id===t)))).filter(Boolean);return[...o,...r]}(o,t,n)}),{key:!1})})},Ay={getInitialState:e=>({...e,pagination:{pageIndex:0,pageSize:10,...null==e?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:Qm("pagination",e)}),createTable:e=>{let t=!1,n=!1;return{_autoResetPageIndex:()=>{var r,o;if(t){if(null!=(r=null!=(o=e.options.autoResetAll)?o:e.options.autoResetPageIndex)?r:!e.options.manualPagination){if(n)return;n=!0,e._queue((()=>{e.resetPageIndex(),n=!1}))}}else e._queue((()=>{t=!0}))},setPagination:t=>null==e.options.onPaginationChange?void 0:e.options.onPaginationChange((e=>Jm(t,e))),resetPagination:t=>{var n;e.setPagination(t?{pageIndex:0,pageSize:10}:null!=(n=e.initialState.pagination)?n:{pageIndex:0,pageSize:10})},setPageIndex:t=>{e.setPagination((n=>{let r=Jm(t,n.pageIndex);const o="undefined"===typeof e.options.pageCount||-1===e.options.pageCount?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return r=Math.max(0,Math.min(r,o)),{...n,pageIndex:r}}))},resetPageIndex:t=>{var n,r,o;e.setPageIndex(t?0:null!=(n=null==(r=e.initialState)||null==(o=r.pagination)?void 0:o.pageIndex)?n:0)},resetPageSize:t=>{var n,r,o;e.setPageSize(t?10:null!=(n=null==(r=e.initialState)||null==(o=r.pagination)?void 0:o.pageSize)?n:10)},setPageSize:t=>{e.setPagination((e=>{const n=Math.max(1,Jm(t,e.pageSize)),r=e.pageSize*e.pageIndex,o=Math.floor(r/n);return{...e,pageIndex:o,pageSize:n}}))},setPageCount:t=>e.setPagination((n=>{var r;let o=Jm(t,null!=(r=e.options.pageCount)?r:-1);return"number"===typeof o&&(o=Math.max(-1,o)),{...n,pageCount:o}})),getPageOptions:ny((()=>[e.getPageCount()]),(e=>{let t=[];return e&&e>0&&(t=[...new Array(e)].fill(null).map(((e,t)=>t))),t}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getCanPreviousPage:()=>e.getState().pagination.pageIndex>0,getCanNextPage:()=>{const{pageIndex:t}=e.getState().pagination,n=e.getPageCount();return-1===n||0!==n&&t<n-1},previousPage:()=>e.setPageIndex((e=>e-1)),nextPage:()=>e.setPageIndex((e=>e+1)),getPrePaginationRowModel:()=>e.getExpandedRowModel(),getPaginationRowModel:()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),getPageCount:()=>{var t;return null!=(t=e.options.pageCount)?t:Math.ceil(e.getPrePaginationRowModel().rows.length/e.getState().pagination.pageSize)}}}},My={getInitialState:e=>({columnPinning:{left:[],right:[]},...e}),getDefaultOptions:e=>({onColumnPinningChange:Qm("columnPinning",e)}),createColumn:(e,t)=>({pin:n=>{const r=e.getLeafColumns().map((e=>e.id)).filter(Boolean);t.setColumnPinning((e=>{var t,o,i,a,s,u;return"right"===n?{left:(null!=(i=null==e?void 0:e.left)?i:[]).filter((e=>!(null!=r&&r.includes(e)))),right:[...(null!=(a=null==e?void 0:e.right)?a:[]).filter((e=>!(null!=r&&r.includes(e)))),...r]}:"left"===n?{left:[...(null!=(s=null==e?void 0:e.left)?s:[]).filter((e=>!(null!=r&&r.includes(e)))),...r],right:(null!=(u=null==e?void 0:e.right)?u:[]).filter((e=>!(null!=r&&r.includes(e))))}:{left:(null!=(t=null==e?void 0:e.left)?t:[]).filter((e=>!(null!=r&&r.includes(e)))),right:(null!=(o=null==e?void 0:e.right)?o:[]).filter((e=>!(null!=r&&r.includes(e))))}}))},getCanPin:()=>e.getLeafColumns().some((e=>{var n,r;return(null==(n=e.columnDef.enablePinning)||n)&&(null==(r=t.options.enablePinning)||r)})),getIsPinned:()=>{const n=e.getLeafColumns().map((e=>e.id)),{left:r,right:o}=t.getState().columnPinning,i=n.some((e=>null==r?void 0:r.includes(e))),a=n.some((e=>null==o?void 0:o.includes(e)));return i?"left":!!a&&"right"},getPinnedIndex:()=>{var n,r,o;const i=e.getIsPinned();return i?null!=(n=null==(r=t.getState().columnPinning)||null==(o=r[i])?void 0:o.indexOf(e.id))?n:-1:0}}),createRow:(e,t)=>({getCenterVisibleCells:ny((()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right]),((e,t,n)=>{const r=[...null!=t?t:[],...null!=n?n:[]];return e.filter((e=>!r.includes(e.column.id)))}),{key:"row.getCenterVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),getLeftVisibleCells:ny((()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,]),((e,t)=>{const n=(null!=t?t:[]).map((t=>e.find((e=>e.column.id===t)))).filter(Boolean).map((e=>({...e,position:"left"})));return n}),{key:"row.getLeftVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),getRightVisibleCells:ny((()=>[e._getAllVisibleCells(),t.getState().columnPinning.right]),((e,t)=>{const n=(null!=t?t:[]).map((t=>e.find((e=>e.column.id===t)))).filter(Boolean).map((e=>({...e,position:"right"})));return n}),{key:"row.getRightVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}})}),createTable:e=>({setColumnPinning:t=>null==e.options.onColumnPinningChange?void 0:e.options.onColumnPinningChange(t),resetColumnPinning:t=>{var n,r;return e.setColumnPinning(t?{left:[],right:[]}:null!=(n=null==(r=e.initialState)?void 0:r.columnPinning)?n:{left:[],right:[]})},getIsSomeColumnsPinned:t=>{var n;const r=e.getState().columnPinning;var o,i;return t?Boolean(null==(n=r[t])?void 0:n.length):Boolean((null==(o=r.left)?void 0:o.length)||(null==(i=r.right)?void 0:i.length))},getLeftLeafColumns:ny((()=>[e.getAllLeafColumns(),e.getState().columnPinning.left]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.id===t)))).filter(Boolean)),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),getRightLeafColumns:ny((()=>[e.getAllLeafColumns(),e.getState().columnPinning.right]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.id===t)))).filter(Boolean)),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),getCenterLeafColumns:ny((()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((e,t,n)=>{const r=[...null!=t?t:[],...null!=n?n:[]];return e.filter((e=>!r.includes(e.id)))}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}})})},ky={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Qm("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>({setRowSelection:t=>null==e.options.onRowSelectionChange?void 0:e.options.onRowSelectionChange(t),resetRowSelection:t=>{var n;return e.setRowSelection(t?{}:null!=(n=e.initialState.rowSelection)?n:{})},toggleAllRowsSelected:t=>{e.setRowSelection((n=>{t="undefined"!==typeof t?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach((e=>{e.getCanSelect()&&(r[e.id]=!0)})):o.forEach((e=>{delete r[e.id]})),r}))},toggleAllPageRowsSelected:t=>e.setRowSelection((n=>{const r="undefined"!==typeof t?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach((t=>{Py(o,t.id,r,e)})),o})),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:ny((()=>[e.getState().rowSelection,e.getCoreRowModel()]),((t,n)=>Object.keys(t).length?Ry(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getFilteredSelectedRowModel:ny((()=>[e.getState().rowSelection,e.getFilteredRowModel()]),((t,n)=>Object.keys(t).length?Ry(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:"getFilteredSelectedRowModel",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getGroupedSelectedRowModel:ny((()=>[e.getState().rowSelection,e.getSortedRowModel()]),((t,n)=>Object.keys(t).length?Ry(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:"getGroupedSelectedRowModel",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getIsAllRowsSelected:()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=Boolean(t.length&&Object.keys(n).length);return r&&t.some((e=>e.getCanSelect()&&!n[e.id]))&&(r=!1),r},getIsAllPageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows.filter((e=>e.getCanSelect())),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some((e=>!n[e.id]))&&(r=!1),r},getIsSomeRowsSelected:()=>{var t;const n=Object.keys(null!=(t=e.getState().rowSelection)?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},getIsSomePageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows;return!e.getIsAllPageRowsSelected()&&t.filter((e=>e.getCanSelect())).some((e=>e.getIsSelected()||e.getIsSomeSelected()))},getToggleAllRowsSelectedHandler:()=>t=>{e.toggleAllRowsSelected(t.target.checked)},getToggleAllPageRowsSelectedHandler:()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}}),createRow:(e,t)=>({toggleSelected:n=>{const r=e.getIsSelected();t.setRowSelection((o=>{if(r===(n="undefined"!==typeof n?n:!r))return o;const i={...o};return Py(i,e.id,n,t),i}))},getIsSelected:()=>{const{rowSelection:n}=t.getState();return Ty(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return"some"===Iy(e,n)},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return"all"===Iy(e,n)},getCanSelect:()=>{var n;return"function"===typeof t.options.enableRowSelection?t.options.enableRowSelection(e):null==(n=t.options.enableRowSelection)||n},getCanSelectSubRows:()=>{var n;return"function"===typeof t.options.enableSubRowSelection?t.options.enableSubRowSelection(e):null==(n=t.options.enableSubRowSelection)||n},getCanMultiSelect:()=>{var n;return"function"===typeof t.options.enableMultiRowSelection?t.options.enableMultiRowSelection(e):null==(n=t.options.enableMultiRowSelection)||n},getToggleSelectedHandler:()=>{const t=e.getCanSelect();return n=>{var r;t&&e.toggleSelected(null==(r=n.target)?void 0:r.checked)}}})},Py=(e,t,n,r)=>{var o;const i=r.getRow(t);n?(i.getCanMultiSelect()||Object.keys(e).forEach((t=>delete e[t])),i.getCanSelect()&&(e[t]=!0)):delete e[t],null!=(o=i.subRows)&&o.length&&i.getCanSelectSubRows()&&i.subRows.forEach((t=>Py(e,t.id,n,r)))};function Ry(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(e,t){return e.map((e=>{var t;const a=Ty(e,n);if(a&&(r.push(e),o[e.id]=e),null!=(t=e.subRows)&&t.length&&(e={...e,subRows:i(e.subRows)}),a)return e})).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function Ty(e,t){var n;return null!=(n=t[e.id])&&n}function Iy(e,t,n){if(e.subRows&&e.subRows.length){let n=!0,r=!1;return e.subRows.forEach((e=>{r&&!n||(Ty(e,t)?r=!0:n=!1)})),n?"all":!!r&&"some"}return!1}const By=/([0-9]+)/gm;function Dy(e,t){return e===t?0:e>t?1:-1}function jy(e){return"number"===typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"===typeof e?e:""}function Ly(e,t){const n=e.split(By).filter(Boolean),r=t.split(By).filter(Boolean);for(;n.length&&r.length;){const e=n.shift(),t=r.shift(),o=parseInt(e,10),i=parseInt(t,10),a=[o,i].sort();if(isNaN(a[0])){if(e>t)return 1;if(t>e)return-1}else{if(isNaN(a[1]))return isNaN(o)?-1:1;if(o>i)return 1;if(i>o)return-1}}return n.length-r.length}const Zy={alphanumeric:(e,t,n)=>Ly(jy(e.getValue(n)).toLowerCase(),jy(t.getValue(n)).toLowerCase()),alphanumericCaseSensitive:(e,t,n)=>Ly(jy(e.getValue(n)),jy(t.getValue(n))),text:(e,t,n)=>Dy(jy(e.getValue(n)).toLowerCase(),jy(t.getValue(n)).toLowerCase()),textCaseSensitive:(e,t,n)=>Dy(jy(e.getValue(n)),jy(t.getValue(n))),datetime:(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:r<o?-1:0},basic:(e,t,n)=>Dy(e.getValue(n),t.getValue(n))},Ny={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:Qm("sorting",e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>({getAutoSortingFn:()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const t of n){const n=null==t?void 0:t.getValue(e.id);if("[object Date]"===Object.prototype.toString.call(n))return Zy.datetime;if("string"===typeof n&&(r=!0,n.split(By).length>1))return Zy.alphanumeric}return r?Zy.text:Zy.basic},getAutoSortDir:()=>{const n=t.getFilteredRowModel().flatRows[0];return"string"===typeof(null==n?void 0:n.getValue(e.id))?"asc":"desc"},getSortingFn:()=>{var n,r;if(!e)throw new Error;return ey(e.columnDef.sortingFn)?e.columnDef.sortingFn:"auto"===e.columnDef.sortingFn?e.getAutoSortingFn():null!=(n=null==(r=t.options.sortingFns)?void 0:r[e.columnDef.sortingFn])?n:Zy[e.columnDef.sortingFn]},toggleSorting:(n,r)=>{const o=e.getNextSortingOrder(),i="undefined"!==typeof n&&null!==n;t.setSorting((a=>{const s=null==a?void 0:a.find((t=>t.id===e.id)),u=null==a?void 0:a.findIndex((t=>t.id===e.id));let l,c=[],f=i?n:"desc"===o;var d;(l=null!=a&&a.length&&e.getCanMultiSort()&&r?s?"toggle":"add":null!=a&&a.length&&u!==a.length-1?"replace":s?"toggle":"replace","toggle"===l&&(i||o||(l="remove")),"add"===l)?(c=[...a,{id:e.id,desc:f}],c.splice(0,c.length-(null!=(d=t.options.maxMultiSortColCount)?d:Number.MAX_SAFE_INTEGER))):c="toggle"===l?a.map((t=>t.id===e.id?{...t,desc:f}:t)):"remove"===l?a.filter((t=>t.id!==e.id)):[{id:e.id,desc:f}];return c}))},getFirstSortDir:()=>{var n,r;return(null!=(n=null!=(r=e.columnDef.sortDescFirst)?r:t.options.sortDescFirst)?n:"desc"===e.getAutoSortDir())?"desc":"asc"},getNextSortingOrder:n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?!!(a===i||null!=(r=t.options.enableSortingRemoval)&&!r||n&&null!=(o=t.options.enableMultiRemove)&&!o)&&("desc"===a?"asc":"desc"):i},getCanSort:()=>{var n,r;return(null==(n=e.columnDef.enableSorting)||n)&&(null==(r=t.options.enableSorting)||r)&&!!e.accessorFn},getCanMultiSort:()=>{var n,r;return null!=(n=null!=(r=e.columnDef.enableMultiSort)?r:t.options.enableMultiSort)?n:!!e.accessorFn},getIsSorted:()=>{var n;const r=null==(n=t.getState().sorting)?void 0:n.find((t=>t.id===e.id));return!!r&&(r.desc?"desc":"asc")},getSortIndex:()=>{var n,r;return null!=(n=null==(r=t.getState().sorting)?void 0:r.findIndex((t=>t.id===e.id)))?n:-1},clearSorting:()=>{t.setSorting((t=>null!=t&&t.length?t.filter((t=>t.id!==e.id)):[]))},getToggleSortingHandler:()=>{const n=e.getCanSort();return r=>{n&&(null==r.persist||r.persist(),null==e.toggleSorting||e.toggleSorting(void 0,!!e.getCanMultiSort()&&(null==t.options.isMultiSortEvent?void 0:t.options.isMultiSortEvent(r))))}}}),createTable:e=>({setSorting:t=>null==e.options.onSortingChange?void 0:e.options.onSortingChange(t),resetSorting:t=>{var n,r;e.setSorting(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.sorting)?n:[])},getPreSortedRowModel:()=>e.getGroupedRowModel(),getSortedRowModel:()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())})},Fy={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Qm("columnVisibility",e)}),createColumn:(e,t)=>({toggleVisibility:n=>{e.getCanHide()&&t.setColumnVisibility((t=>({...t,[e.id]:null!=n?n:!e.getIsVisible()})))},getIsVisible:()=>{var n,r;return null==(n=null==(r=t.getState().columnVisibility)?void 0:r[e.id])||n},getCanHide:()=>{var n,r;return(null==(n=e.columnDef.enableHiding)||n)&&(null==(r=t.options.enableHiding)||r)},getToggleVisibilityHandler:()=>t=>{null==e.toggleVisibility||e.toggleVisibility(t.target.checked)}}),createRow:(e,t)=>({_getAllVisibleCells:ny((()=>[e.getAllCells(),t.getState().columnVisibility]),(e=>e.filter((e=>e.column.getIsVisible()))),{key:"row._getAllVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),getVisibleCells:ny((()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()]),((e,t,n)=>[...e,...t,...n]),{key:!1,debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}})}),createTable:e=>{const t=(t,n)=>ny((()=>[n(),n().filter((e=>e.getIsVisible())).map((e=>e.id)).join("_")]),(e=>e.filter((e=>null==e.getIsVisible?void 0:e.getIsVisible()))),{key:t,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}});return{getVisibleFlatColumns:t("getVisibleFlatColumns",(()=>e.getAllFlatColumns())),getVisibleLeafColumns:t("getVisibleLeafColumns",(()=>e.getAllLeafColumns())),getLeftVisibleLeafColumns:t("getLeftVisibleLeafColumns",(()=>e.getLeftLeafColumns())),getRightVisibleLeafColumns:t("getRightVisibleLeafColumns",(()=>e.getRightLeafColumns())),getCenterVisibleLeafColumns:t("getCenterVisibleLeafColumns",(()=>e.getCenterLeafColumns())),setColumnVisibility:t=>null==e.options.onColumnVisibilityChange?void 0:e.options.onColumnVisibilityChange(t),resetColumnVisibility:t=>{var n;e.setColumnVisibility(t?{}:null!=(n=e.initialState.columnVisibility)?n:{})},toggleAllColumnsVisible:t=>{var n;t=null!=(n=t)?n:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce(((e,n)=>({...e,[n.id]:t||!(null!=n.getCanHide&&n.getCanHide())})),{}))},getIsAllColumnsVisible:()=>!e.getAllLeafColumns().some((e=>!(null!=e.getIsVisible&&e.getIsVisible()))),getIsSomeColumnsVisible:()=>e.getAllLeafColumns().some((e=>null==e.getIsVisible?void 0:e.getIsVisible())),getToggleAllColumnsVisibilityHandler:()=>t=>{var n;e.toggleAllColumnsVisible(null==(n=t.target)?void 0:n.checked)}}}},Hy=[oy,Fy,Ey,My,_y,Ny,Cy,cy,Ay,ky,sy];function Vy(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:Hy};const r=n._features.reduce(((e,t)=>Object.assign(e,null==t.getDefaultOptions?void 0:t.getDefaultOptions(n))),{});let o={...null!=(t=e.initialState)?t:{}};n._features.forEach((e=>{var t;o=null!=(t=null==e.getInitialState?void 0:e.getInitialState(o))?t:o}));const i=[];let a=!1;const s={_features:Hy,options:{...r,...e},initialState:o,_queue:e=>{i.push(e),a||(a=!0,Promise.resolve().then((()=>{for(;i.length;)i.shift()();a=!1})).catch((e=>setTimeout((()=>{throw e})))))},reset:()=>{n.setState(n.initialState)},setOptions:e=>{const t=Jm(e,n.options);n.options=(e=>n.options.mergeOptions?n.options.mergeOptions(r,e):{...r,...e})(t)},getState:()=>n.options.state,setState:e=>{null==n.options.onStateChange||n.options.onStateChange(e)},_getRowId:(e,t,r)=>{var o;return null!=(o=null==n.options.getRowId?void 0:n.options.getRowId(e,t,r))?o:`${r?[r.id,t].join("."):t}`},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:e=>{const t=n.getRowModel().rowsById[e];if(!t)throw new Error;return t},_getDefaultColumnDef:ny((()=>[n.options.defaultColumn]),(e=>{var t;return e=null!=(t=e)?t:{},{header:e=>{const t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t,n;return null!=(t=null==(n=e.renderValue())||null==n.toString?void 0:n.toString())?t:null},...n._features.reduce(((e,t)=>Object.assign(e,null==t.getDefaultColumnDef?void 0:t.getDefaultColumnDef())),{}),...e}}),{debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns},key:!1}),_getColumnDefs:()=>n.options.columns,getAllColumns:ny((()=>[n._getColumnDefs()]),(e=>{const t=function(e,r,o){return void 0===o&&(o=0),e.map((e=>{const i=function(e,t,n,r){var o,i;const a={...e._getDefaultColumnDef(),...t},s=a.accessorKey;let u,l=null!=(o=null!=(i=a.id)?i:s?s.replace(".","_"):void 0)?o:"string"===typeof a.header?a.header:void 0;if(a.accessorFn?u=a.accessorFn:s&&(u=s.includes(".")?e=>{let t=e;for(const r of s.split(".")){var n;t=null==(n=t)?void 0:n[r]}return t}:e=>e[a.accessorKey]),!l)throw new Error;let c={id:`${String(l)}`,accessorFn:u,parent:r,depth:n,columnDef:a,columns:[],getFlatColumns:ny((()=>[!0]),(()=>{var e;return[c,...null==(e=c.columns)?void 0:e.flatMap((e=>e.getFlatColumns()))]}),{key:"column.getFlatColumns",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),getLeafColumns:ny((()=>[e._getOrderColumnsFn()]),(e=>{var t;if(null!=(t=c.columns)&&t.length){let t=c.columns.flatMap((e=>e.getLeafColumns()));return e(t)}return[c]}),{key:"column.getLeafColumns",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}})};return c=e._features.reduce(((t,n)=>Object.assign(t,null==n.createColumn?void 0:n.createColumn(c,e))),c),c}(n,e,o,r),a=e;return i.columns=a.columns?t(a.columns,i,o+1):[],i}))};return t(e)}),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getAllFlatColumns:ny((()=>[n.getAllColumns()]),(e=>e.flatMap((e=>e.getFlatColumns()))),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),_getAllFlatColumnsById:ny((()=>[n.getAllFlatColumns()]),(e=>e.reduce(((e,t)=>(e[t.id]=t,e)),{})),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getAllLeafColumns:ny((()=>[n.getAllColumns(),n._getOrderColumnsFn()]),((e,t)=>{let n=e.flatMap((e=>e.getLeafColumns()));return t(n)}),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getColumn:e=>n._getAllFlatColumnsById()[e]};return Object.assign(n,s),n._features.forEach((e=>Object.assign(n,null==e.createTable?void 0:e.createTable(n)))),n}const zy=(e,t,n,r,o,i,a)=>{let s={id:t,index:r,original:n,depth:o,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(s._valuesCache.hasOwnProperty(t))return s._valuesCache[t];const n=e.getColumn(t);return null!=n&&n.accessorFn?(s._valuesCache[t]=n.accessorFn(s.original,r),s._valuesCache[t]):void 0},getUniqueValues:t=>{if(s._uniqueValuesCache.hasOwnProperty(t))return s._uniqueValuesCache[t];const n=e.getColumn(t);return null!=n&&n.accessorFn?n.columnDef.getUniqueValues?(s._uniqueValuesCache[t]=n.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[t]):(s._uniqueValuesCache[t]=[s.getValue(t)],s._uniqueValuesCache[t]):void 0},renderValue:t=>{var n;return null!=(n=s.getValue(t))?n:e.options.renderFallbackValue},subRows:null!=i?i:[],getLeafRows:()=>ty(s.subRows,(e=>e.subRows)),getParentRow:()=>s.parentId?e.getRow(s.parentId):void 0,getParentRows:()=>{let e=[],t=s;for(;;){const n=t.getParentRow();if(!n)break;e.push(n),t=n}return e.reverse()},getAllCells:ny((()=>[e.getAllLeafColumns()]),(t=>t.map((t=>function(e,t,n,r){const o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:()=>{var t;return null!=(t=o.getValue())?t:e.options.renderFallbackValue},getContext:ny((()=>[e,n,t,o]),((e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue})),{key:!1,debug:()=>e.options.debugAll})};return e._features.forEach((r=>{Object.assign(o,null==r.createCell?void 0:r.createCell(o,n,t,e))}),{}),o}(e,s,t,t.id)))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}}),_getAllCellsByColumnId:ny((()=>[s.getAllCells()]),(e=>e.reduce(((e,t)=>(e[t.column.id]=t,e)),{})),{key:"row.getAllCellsByColumnId",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}})};for(let u=0;u<e._features.length;u++){const t=e._features[u];Object.assign(s,null==t||null==t.createRow?void 0:t.createRow(s,e))}return s};function Uy(e,t,n){return n.options.filterFromLeafRows?function(e,t,n){var r;const o=[],i={},a=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,s=function(e,r){void 0===r&&(r=0);const o=[];for(let l=0;l<e.length;l++){var u;let c=e[l];const f=zy(n,c.id,c.original,c.index,c.depth,void 0,c.parentId);if(f.columnFilters=c.columnFilters,null!=(u=c.subRows)&&u.length&&r<a){if(f.subRows=s(c.subRows,r+1),c=f,t(c)&&!f.subRows.length){o.push(c),i[c.id]=c,i[l]=c;continue}if(t(c)||f.subRows.length){o.push(c),i[c.id]=c,i[l]=c;continue}}else c=f,t(c)&&(o.push(c),i[c.id]=c,i[l]=c)}return o};return{rows:s(e),flatRows:o,rowsById:i}}(e,t,n):function(e,t,n){var r;const o=[],i={},a=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,s=function(e,r){void 0===r&&(r=0);const u=[];for(let c=0;c<e.length;c++){let f=e[c];if(t(f)){var l;if(null!=(l=f.subRows)&&l.length&&r<a){const e=zy(n,f.id,f.original,f.index,f.depth,void 0,f.parentId);e.subRows=s(f.subRows,r+1),f=e}u.push(f),o.push(f),i[f.id]=f}}return u};return{rows:s(e),flatRows:o,rowsById:i}}(e,t,n)}function Gy(){return e=>ny((()=>[e.getState().grouping,e.getPreGroupedRowModel()]),((t,n)=>{if(!n.rows.length||!t.length)return n;const r=t.filter((t=>e.getColumn(t))),o=[],i={},a=function(t,n,s){if(void 0===n&&(n=0),n>=r.length)return t.map((e=>(e.depth=n,o.push(e),i[e.id]=e,e.subRows&&(e.subRows=a(e.subRows,n+1,e.id)),e)));const u=r[n],l=function(e,t){const n=new Map;return e.reduce(((e,n)=>{const r=`${n.getGroupingValue(t)}`,o=e.get(r);return o?o.push(n):e.set(r,[n]),e}),n)}(t,u),c=Array.from(l.entries()).map(((t,l)=>{let[c,f]=t,d=`${u}:${c}`;d=s?`${s}>${d}`:d;const p=a(f,n+1,d),h=n?ty(f,(e=>e.subRows)):f,g=zy(e,d,h[0].original,l,n,void 0,s);return Object.assign(g,{groupingColumnId:u,groupingValue:c,subRows:p,leafRows:h,getValue:t=>{if(r.includes(t)){if(g._valuesCache.hasOwnProperty(t))return g._valuesCache[t];var n;if(f[0])g._valuesCache[t]=null!=(n=f[0].getValue(t))?n:void 0;return g._valuesCache[t]}if(g._groupingValuesCache.hasOwnProperty(t))return g._groupingValuesCache[t];const o=e.getColumn(t),i=null==o?void 0:o.getAggregationFn();return i?(g._groupingValuesCache[t]=i(t,h,f),g._groupingValuesCache[t]):void 0}}),p.forEach((e=>{o.push(e),i[e.id]=e})),g}));return c},s=a(n.rows,0);return s.forEach((e=>{o.push(e),i[e.id]=e})),{rows:s,flatRows:o,rowsById:i}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._queue((()=>{e._autoResetExpanded(),e._autoResetPageIndex()}))}})}function Wy(e){const t=[],n=e=>{var r;t.push(e),null!=(r=e.subRows)&&r.length&&e.getIsExpanded()&&e.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function $y(e,t){return e?function(e){return"function"===typeof e&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}(n=e)||"function"===typeof n||function(e){return"object"===typeof e&&"symbol"===typeof e.$$typeof&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}(n)?i.createElement(e,t):e:null;var n}var qy={gt:function(e,t){return e>t},eq:function(e,t){return e===t},lt:function(e,t){return e<t},all:function(){return!0}},Yy=function(e,t,n){var r=n[0],o=n[1],i=r.value,a=e.getValue(t);if(isNaN(o)||""===o)return!0;var s=qy[i](Number(a),Number(o));return!s&&e.subRows.length?e.subRows.some((function(e){return Yy(e,t,n)})):s},Xy=function(e,t,n){var r=e.getValue(t);return n.length<1||n.some((function(e){var t,n,o=e.value;return"all"===o||(null===(t=null===o||void 0===o?void 0:o.toLowerCase)||void 0===t?void 0:t.call(o))===(null===(n=null===r||void 0===r?void 0:r.toLowerCase)||void 0===n?void 0:n.call(r))}))},Ky=function(e,t,n){var r,o,i=e.getValue(t),a=n.value;return"all"===a||(null===(r=null===a||void 0===a?void 0:a.toLowerCase)||void 0===r?void 0:r.call(a))===(null===(o=null===i||void 0===i?void 0:i.toLowerCase)||void 0===o?void 0:o.call(i))},Jy=function(e,t,n){var r,o,i=null===(o=null===(r=e.getValue(t))||void 0===r?void 0:r.toString)||void 0===o?void 0:o.call(r);if("string"!==typeof i)return!1;var a=n?n.toLowerCase():"",s=i.toLowerCase().includes(a);return!s&&e.subRows.length?e.subRows.some((function(e){return Jy(e,t,n)})):s},Qy=function(){return Qy=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Qy.apply(this,arguments)},eb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},tb=(0,i.forwardRef)((function(e,t){var n=e.id,r=e.icon,o=e.background,a=e.handleAction,s=e.tooltipText,u=e.confirmation,l=e.confirmationTitle,c=e.confirmationMessage,f=e.handleDecline,d=e.confirmLabel,p=e.declineLabel,h=e.actionButtonDirection,g=e.testPrefix,v=e.dataGa,m=e.disabled,y=e.visible,b=e.currentRow,w=e.selectedRows,x=e.disabledTooltipText,_=e.iconColor,S=e.flavour,O=void 0===S?"borderless":S,C=e.CustomUIAction,E=e.label,A=e.TooltipComponent,M=void 0===A?Xe:A,k=eb(e,["id","icon","background","handleAction","tooltipText","confirmation","confirmationTitle","confirmationMessage","handleDecline","confirmLabel","declineLabel","actionButtonDirection","testPrefix","dataGa","disabled","visible","currentRow","selectedRows","disabledTooltipText","iconColor","flavour","CustomUIAction","label","TooltipComponent"]),P=(0,i.useState)(!1),R=P[0],T=P[1];if(!1===y)return null;var I=E?Ee:nt;return i.createElement(i.Fragment,null,R&&C&&i.createElement(C,{handleAction:a(),onClose:function(){return T(!1)},data:(null===b||void 0===b?void 0:b.original)||w}),R&&!C&&i.createElement(Km,{actionButtonDirection:h,declineLabel:p,confirmLabel:d,title:"function"===typeof l?l(null===b||void 0===b?void 0:b.original,w):l,message:"function"===typeof c?c(null===b||void 0===b?void 0:b.original,w):c,handleDecline:function(){T(!1),null===f||void 0===f||f()},handleConfirm:function(){T(!1),null===a||void 0===a||a()}}),i.createElement(M,{content:m?x:s},i.createElement(Se.default,{ref:t,alignItems:"center",justifyContent:"center",_hover:{background:m||E?null:"borderSecondary"},cursor:m?"auto":"pointer",key:n,round:!0,background:E?null:o},i.createElement(I,Qy({iconSize:"small","data-testid":"netdata-table-action-".concat(n).concat(g),"data-ga":v,disabled:m,onClick:function(){u||C?T(!0):a()},icon:r,flavour:O,iconColor:_,label:E},k)))))})),nb=tb,rb=function(){return rb=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},rb.apply(this,arguments)},ob=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},ib={delete:{icon:"trashcan",confirmation:!0,tooltipText:"Delete",confirmationTitle:"Delete Row",confirmationMessage:"You are about to delete a row, are you sure?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse",disabledTooltipText:"Delete is disabled"},edit:{icon:"pencilOutline",confirmation:!1,tooltipText:"Edit"},replace:{icon:"refresh",confirmation:!0,tooltipText:"Replace",confirmationTitle:"Replace Row",confirmationMessage:"You are about to replace a row, are you sure you want to continue?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse"},info:{icon:"information",confirmation:!1,tooltipText:"Information"},toggleAlarm:{icon:"alarm_off",confirmation:!1,tooltipText:"Turn of Alarms"},userSettings:{icon:"user",confirmation:!1,tooltipText:"User Settings"},remove:{icon:"removeNode",confirmation:!0,actionButtonDirection:"reverse",confirmLabel:"Yes",declineLabel:"No"},goto:{icon:"nav_arrow_goto",confirmation:!1,tooltipText:"Go to"}},ab=function(){return ab=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ab.apply(this,arguments)},sb=function(e,t){var n=t.rowActions,r=t.enableSelection,o=t.testPrefix,a=t.tableMeta,s=function(e,t){var n=void 0===t?{}:t,r=n.testPrefix,o=n.tableMeta,a=(0,i.useMemo)((function(){return Object.keys(e).reduce((function(t,n){var r=ib[n]||ib.delete,o=e[n];return t.push(rb(rb({id:n},r),o)),t}),[])}),[e]);return a.length<1?null:{id:"actions",enableHiding:!1,enableResizing:!1,header:"Actions",cell:function(e){var t=e.row,n=e.table;return i.createElement(Se.default,{"data-testid":"action-cell",height:"100%",gap:2},a.map((function(e){var o=e.id,a=e.handleAction,s=e.isDisabled,u=e.isVisible,l=void 0===u||u,c=e.dataGa,f=ob(e,["id","handleAction","isDisabled","isVisible","dataGa"]);return i.createElement(nb,rb({},f,{disabled:"function"===typeof s?s(t.original):s,visible:"function"===typeof l?l(t.original):l,dataGa:"function"===typeof c?c(t.original):c,key:o,id:o,handleAction:function(){return a(t.original,n)},testPrefix:r,currentRow:t}))})))},enableColumnFilter:!1,enableSorting:!1,meta:{stopPropagation:!0},tableMeta:o}}(n,{testPrefix:o,tableMeta:a}),u=function(e,t){var n=t.testPrefix,r=t.tableMeta;return(0,i.useMemo)((function(){return e?{id:"checkbox",enableHiding:!1,enableResizing:!1,header:function(e){var t=e.table;return i.createElement(tn,{"data-testid":"netdata-table-header-checkbox".concat(n),checked:t.getIsAllRowsSelected(),indeterminate:t.getIsSomeRowsSelected(),onChange:t.getToggleAllRowsSelectedHandler()})},cell:function(e){var t,r,o,a=e.row;return"hidden"!==(null===(t=a.original)||void 0===t?void 0:t.disabled)&&i.createElement(tn,{"data-testid":"netdata-table-cell-checkbox".concat(n),checked:!(null===(r=a.original)||void 0===r?void 0:r.disabled)&&a.getIsSelected(),indeterminate:a.getIsSomeSelected(),onChange:a.getToggleSelectedHandler(),disabled:(null===(o=a.original)||void 0===o?void 0:o.disabled)||!1})},enableColumnFilter:!1,enableSorting:!1,size:30,maxSize:30,minSize:30,meta:{stopPropagation:!0},tableMeta:r}:null}),[e])}(r,{testPrefix:o,tableMeta:a});return(0,i.useMemo)((function(){if(!e||e.length<1)return[];var t=!1;return e=e.map((function(e,n){if(Array.isArray(e.columns))return t=!0,ab(ab({id:n},e),{columns:e.columns.map((function(e,t){if(!e.id)throw new Error("Please provide id at ".concat(t));return ab(ab({enableColumnFilter:!1,enableGlobalFilter:!0,enableSorting:!0,size:150,maxSize:5e3,minSize:150,enableHiding:!0,enableResize:!0,footer:function(e){return e.column.id},tableMeta:a},e),{accessorKey:e.accessorKey||e.id})}))});if(!e.id)throw new Error("Please provide id at ".concat(n));return ab(ab({enableColumnFilter:!1,enableGlobalFilter:!0,enableSorting:!0,size:150,maxSize:5e3,minSize:150,enableHiding:!0,enableResize:!0,footer:function(e){return e.column.id},tableMeta:a},e),{accessorKey:e.accessorKey||e.id})})),u&&e.unshift(t?{id:"selectionColumn",columns:u}:u),s&&e.push(t?{id:"rowActionsColumn",columns:s}:s),e}),[e,s,u])},ub=function(){return ub=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ub.apply(this,arguments)},lb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},cb=(0,i.forwardRef)((function(e,t){var n=e.isDisabled,r=e.isVisible,o=e.testPrefix,a=e.id,s=e.icon,u=e.handleAction,l=e.selectedRows,c=e.table,f=e.tooltipText,d=e.alwaysEnabled,p=lb(e,["isDisabled","isVisible","testPrefix","id","icon","handleAction","selectedRows","table","tooltipText","alwaysEnabled"]),h=(0,i.useRef)(),g="function"===typeof n?n():n,v="function"===typeof r?r():r;return i.createElement(nb,ub({ref:Dt(h,t),testPrefix:"-bulk".concat(o),key:a,visible:v,id:a,icon:s,handleAction:function(){return u(l,c)},tooltipText:f,disabled:!d&&(null===l||void 0===l?void 0:l.length)<1||g,background:"elementBackground",selectedRows:l},p))})),fb=cb,db=function(e){var t=e.column,n=e.dataGa,r=e.disabled,o=t.getIsVisible();return i.createElement(Se.default,{alignItems:"center",as:He.ListItem,justifyContent:"between",padding:[1]},i.createElement(tn,{checked:o,disabled:r,label:t.columnDef.name||t.id,onChange:t.getToggleVisibilityHandler(),"data-ga":"columns-menu::click-".concat(o?"disable":"enable","-").concat(t.id,"-::").concat(n)}))},pb=function(e){var t=e.dataGa,n=e.parentRef,r=e.isOpen,o=e.columns,a=e.onClose,s=e.pinnedColumns;return n.current&&r?i.createElement(Ie.Z,{background:"dropdown",height:{max:"400px"},onClickOutside:a,overflow:{vertical:"auto"},round:1,target:n.current,width:50,align:{top:"bottom",right:"right"}},i.createElement(Se.default,{border:{size:"1px",type:"solid",side:"bottom",color:"borderSecondary"},padding:[3,3,1]},i.createElement(He.Text,{color:"textLite"},"Edit columns")),i.createElement(Se.default,{column:!0,padding:[1,3]},s.length?i.createElement(Se.default,{border:{size:"1px",type:"solid",side:"bottom",color:"borderSecondary"},column:!0},s.map((function(e){return i.createElement(db,{column:e,dataGa:t,disabled:!0,key:e.id})}))):null,o.map((function(e){return i.createElement(db,{column:e,dataGa:t,key:e.id})})))):null},hb=function(){return hb=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},hb.apply(this,arguments)},gb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},vb=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},mb=function(e){var t=e.alwaysEnabled,n=e.columnPinning,r=void 0===n?{}:n,o=e.dataGa,a=e.enableColumnPinning,s=e.handleAction,u=e.id,l=e.icon,c=e.isDisabled,f=e.isOpen,d=e.isVisible,p=e.onClose,h=e.selectedRows,g=e.table,v=e.testPrefix,m=e.tooltipText,y=gb(e,["alwaysEnabled","columnPinning","dataGa","enableColumnPinning","handleAction","id","icon","isDisabled","isOpen","isVisible","onClose","selectedRows","table","testPrefix","tooltipText"]),b=(0,i.useRef)(),w="function"===typeof c?c():c,x="function"===typeof d?d():d,_=g.getAllLeafColumns(),S=a?vb(vb([],(null===r||void 0===r?void 0:r.left)||[],!0),(null===r||void 0===r?void 0:r.right)||[],!0):[],O=a?_.reduce((function(e,t){var n;if(!t.getCanHide())return e;var r="columns";return S.includes(t.id)&&(r="pinnedColumns"),hb(hb({},e),((n={})[r]=vb(vb([],e[r],!0),[t],!1),n))}),{columns:[],pinnedColumns:[]}):{columns:_,pinnedColumns:[]},C=O.columns,E=O.pinnedColumns;return i.createElement(i.Fragment,null,i.createElement(fb,hb({ref:b,testPrefix:"-bulk".concat(v),visible:x,id:u,icon:l,handleAction:function(){return s(h,g)},tooltipText:m,disabled:!t&&(null===h||void 0===h?void 0:h.length)<1||w,background:"elementBackground",selectedRows:h,dataGa:o},y)),i.createElement(pb,{columns:C,dataGa:o,isOpen:f,onClose:p,parentRef:b,pinnedColumns:E}))},yb=function(){return yb=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},yb.apply(this,arguments)},bb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},wb={delete:{icon:"trashcan",confirmation:!0,tooltipText:"Delete",confirmationTitle:"Delete Row",confirmationMessage:"You are about to delete a row, are you sure you want to continue?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse"},download:{icon:"download",confirmation:!1,tooltipText:"Download"},toggleAlarm:{icon:"alarm_off",confirmation:!1,tooltipText:"Turn of Alarms"},userSettings:{icon:"user",confirmation:!1,tooltipText:"User Settings"},addEntry:{icon:"plus",alwaysEnabled:!0,flavour:"default",iconColor:"white"},remove:{icon:"removeNode",confirmation:!0,confirmLabel:"Yes",declineLabel:"No"},columnVisibility:{icon:"gear",alwaysEnabled:!0}},xb=function(e,t){void 0===t&&(t={});var n=(0,De.Z)(!1),r=n[0],o=n[1],a=n[3];return(0,i.useMemo)((function(){return i.createElement(mb,yb({key:"columnVisibility"},wb.columnVisibility,{handleAction:o,isOpen:r,isVisible:e,id:"columnVisibility",onClose:a},t))}),[e,r,t.table.getVisibleFlatColumns()])},_b=function(){return _b=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},_b.apply(this,arguments)},Sb=(0,i.createContext)({}),Ob=function(){return(0,i.useContext)(Sb)},Cb={hoveredRow:null,hoveredColumn:null,rowsHeight:{}},Eb=function(e){var t=e.onHoverCell,n=e.children,r=(0,i.useState)(Cb),o=r[0],a=r[1],s=(0,i.useCallback)((function(e){a((function(t){return _b(_b({},t),e)}))}),[]),u=(0,i.useCallback)((function(e){var n=void 0===e?{}:e,r=n.row,o=n.column;s({hoveredRow:r,hoveredColumn:o}),null===t||void 0===t||t({row:r,column:o})}),[t]),l=(0,i.useCallback)((function(e){var t=e.index,n=e.height;a((function(e){var r;return _b(_b({},e),{rowsHeight:_b(_b({},e.rowsHeight),(r={},r[t]=Math.max(e.rowsHeight[t]||0,n),r))})}))}),[]),c=(0,i.useMemo)((function(){return _b(_b({},o),{dispatch:s,onHover:u,setRowHeight:l})}),[o,u]);return i.createElement(Sb.Provider,{value:c},n)},Ab=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Mb=function(){return Mb=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Mb.apply(this,arguments)},kb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Pb=(0,s.default)(He.Text).attrs((function(e){return Mb({as:"tr",width:"fit-content"},e)}))(Bb||(Bb=Ab([""],[""]))),Rb=(0,s.default)(Te.Z)(Db||(Db=Ab(["\n border-bottom: 1px solid ",";\n &:not(:last-child) {\n border-right: 1px solid\n ",";\n }\n"],["\n border-bottom: 1px solid ",";\n &:not(:last-child) {\n border-right: 1px solid\n ",";\n }\n"])),(0,lt.getColor)("borderSecondary"),(function(e){var t=e.background,n=e.theme;return(0,lt.getColor)(t||"borderSecondary")({theme:n})})),Tb=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.width,o=kb(e,["children","width"]);return i.createElement(Te.Z,Mb({sx:{borderCollapse:"separate","table-layout":"fixed",borderSpacing:"0"},ref:t,as:"table",width:r},o),n)}));Tb.Head=(0,i.forwardRef)((function(e,t){var n=e.children,r=kb(e,["children"]);return i.createElement(Te.Z,Mb({ref:t,sx:{zIndex:10,position:"sticky",top:0},as:"thead"},r),n)})),Tb.HeadRow=(0,i.forwardRef)((function(e,t){var n=e.children,r=kb(e,["children"]);return i.createElement(Te.Z,Mb({as:"tr",ref:t,background:"tableRowBg",color:"text"},r),n)})),Tb.Resizer=function(e){var t=e.onMouseDown,n=e.onTouchStart,r=e.deltaOffset,o=e.getIsResizing,a=e.background;if(t){var s=o()?{transform:"translateX(".concat(r,"px)")}:{};return i.createElement(Te.Z,{_hover:{background:"resizerLine",color:"resizerLine"},_active:{background:"resizerLine",color:"resizerLine"},_before:{content:'":"',position:"absolute",top:"0",bottom:"0",display:"flex",alignItems:"center",left:"-8px",width:"8px"},sx:Mb({width:"2px",userSelect:"none",touchAction:"none",cursor:"col-resize",color:"border"},s),onMouseDown:t,onTouchStart:n,background:a||"borderSecondary",position:"absolute",top:0,right:0,bottom:0})}},Tb.HeadCell=(0,i.forwardRef)((function(e,t){var n=e.id,r=e.children,o=e.align,a=void 0===o?"left":o,s=e.width,u=e.tooltipText,l=e.filter,c=e.onMouseDown,f=e.onTouchStart,d=e.getIsResizing,p=e.deltaOffset,h=e.styles,g=void 0===h?{}:h,v=e.headStyles,m=void 0===v?{}:v,y=kb(e,["id","children","align","width","tooltipText","filter","onMouseDown","onTouchStart","getIsResizing","deltaOffset","styles","headStyles"]),b=Ob().onHover;return i.createElement(Rb,Mb({as:"th",ref:t,sx:{textAlign:a,fontSize:"14px"},position:"relative",padding:[1,2],width:"".concat(s,"px"),onMouseEnter:function(){return b({row:null,column:n})},onMouseLeave:function(){return b()},height:"60px"},y,g,m,{background:y.background}),i.createElement(Se.default,null,r,u&&i.createElement(Te.Z,{position:"absolute",top:1,right:"12px",width:4,height:4},i.createElement(Xe,{align:"bottom",content:u},i.createElement(xe.JO,{color:"nodeBadgeColor",size:"small",name:"information"})))),i.createElement(Te.Z,{sx:{fontWeight:"normal"}},l),i.createElement(Tb.Resizer,{onMouseDown:c,onTouchStart:f,getIsResizing:d,deltaOffset:p,background:y.background}))}));var Ib={asc:"sort_ascending",desc:"sort_descending",indicator:"sort_indicator"};Tb.SortingHeadCell=(0,i.forwardRef)((function(e,t){var n,r=e.children,o=e.onSortClicked,a=e.setSortDirection,s=e.width,u=e.sortDirection,l=e.filter,c=e.align,f=void 0===c?"left":c,d=e.dataGa,p=e["data-testid"],h=e["sortby-testid"],g=e.styles,v=void 0===g?{}:g,m=e.headStyles,y=void 0===m?{}:m,b=e.tooltipText,w=e.coloredSortedColumn,x=kb(e,["children","onSortClicked","setSortDirection","width","sortDirection","filter","align","dataGa","data-testid","sortby-testid","styles","headStyles","tooltipText","coloredSortedColumn"]),_=(0,De.Z)(!1),S=_[0],O=_[2],C=_[3],E=S&&!u,A=(0,i.useCallback)((function(e){e.preventDefault(),null===o||void 0===o||o(e)}),[u,a,o]);return i.createElement(Tb.HeadCell,Mb({styles:v,align:f,ref:t,"data-testid":p,width:s,tooltipText:b,headStyles:y},x,{filter:l},w&&!!u&&{background:"columnHighlight"}),i.createElement(Te.Z,{onMouseEnter:O,onMouseLeave:C,onClick:A,position:"relative",cursor:"pointer","data-testid":h,"data-ga":"".concat(d,"::click-").concat(u?"ascending":"descending","-column-").concat(x.id)},i.createElement(Se.default,{position:"relative","data-testid":"sorting-cell-children-sorting-arrows-wrapper",gap:1},r,i.createElement(Te.Z,{position:"absolute",top:.5,right:"-16px"},i.createElement(xe.JO,{height:"16px",width:"16px",color:E?"textLite":"text",name:null!==(n=Ib[E?"indicator":u])&&void 0!==n?n:null})))))})),Tb.Body=(0,i.forwardRef)((function(e,t){var n=e.children,r=kb(e,["children"]);return i.createElement(Te.Z,Mb({ref:t,as:"tbody"},r),n)})),Tb.Cell=(0,i.forwardRef)((function(e,t){var n=e.align,r=void 0===n?"left":n,o=e.cellHeight,a=void 0===o?"65px":o,s=e.children,u=e.index,l=e.isRowHovering,c=e.meta,f=e.onClick,d=e.tableMeta,p=e.width,h=e.row,g=e.cell,v=kb(e,["align","cellHeight","children","index","isRowHovering","meta","onClick","tableMeta","width","row","cell"]);return i.createElement(Te.Z,Mb({as:"td",onClick:function(e){e.persist(),v.stopPropagation&&e.stopPropagation(),null===f||void 0===f||f()},padding:[1,2],ref:t,sx:{textAlign:r},width:"".concat(p,"px")},v,{background:!v.background&&l?"tableRowBgHover":v.background||(u%2===0?"mainBackground":"tableRowBg"),backgroundOpacity:l?v.backgroundOpacity?.8:1:v.backgroundOpacity||.7,height:a},null===d||void 0===d?void 0:d.cellStyles,null===d||void 0===d?void 0:d.pinnedStyles,null===d||void 0===d?void 0:d.styles,null===c||void 0===c?void 0:c.cellStyles,null===c||void 0===c?void 0:c.pinnedStyles,null===c||void 0===c?void 0:c.styles),s,g.getIsGrouped()&&h.getCanExpand()&&i.createElement(Se.default,{cursor:"pointer",role:"button",padding:[1],gap:1,onClick:function(e){h.getToggleExpandedHandler()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))}},i.createElement(He.Text,{fontSize:"10px",color:"textLite"},"Expand"),i.createElement(xe.JO,{name:"chevron_down",width:"12px",height:"12px",color:"selected",rotate:h.getIsExpanded()?2:null})))})),Tb.Row=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.onClick,o=e.disableClickRow,a=e.onMouseEnter,s=e.onMouseLeave,u=kb(e,["children","onClick","disableClickRow","onMouseEnter","onMouseLeave"]),l=o&&o(),c=!l&&void 0!==r?"pointer":"intial";return i.createElement(Te.Z,Mb({onMouseEnter:function(e){null===a||void 0===a||a(e)},onMouseLeave:function(e){null===s||void 0===s||s(e)},as:Pb,cursor:c,isClickable:!!r,onClick:function(e){l||(e.persist(),e.stopPropagation(),null===r||void 0===r||r())},ref:t},u),n)}));var Bb,Db,jb=Tb;var Lb=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(r){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),Zb=Math.abs,Nb=String.fromCharCode,Fb=Object.assign;function Hb(e){return e.trim()}function Vb(e,t,n){return e.replace(t,n)}function zb(e,t){return e.indexOf(t)}function Ub(e,t){return 0|e.charCodeAt(t)}function Gb(e,t,n){return e.slice(t,n)}function Wb(e){return e.length}function $b(e){return e.length}function qb(e,t){return t.push(e),e}var Yb=1,Xb=1,Kb=0,Jb=0,Qb=0,ew="";function tw(e,t,n,r,o,i,a){return{value:e,root:t,parent:n,type:r,props:o,children:i,line:Yb,column:Xb,length:a,return:""}}function nw(e,t){return Fb(tw("",null,null,"",null,null,0),e,{length:-e.length},t)}function rw(){return Qb=Jb>0?Ub(ew,--Jb):0,Xb--,10===Qb&&(Xb=1,Yb--),Qb}function ow(){return Qb=Jb<Kb?Ub(ew,Jb++):0,Xb++,10===Qb&&(Xb=1,Yb++),Qb}function iw(){return Ub(ew,Jb)}function aw(){return Jb}function sw(e,t){return Gb(ew,e,t)}function uw(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function lw(e){return Yb=Xb=1,Kb=Wb(ew=e),Jb=0,[]}function cw(e){return ew="",e}function fw(e){return Hb(sw(Jb-1,hw(91===e?e+2:40===e?e+1:e)))}function dw(e){for(;(Qb=iw())&&Qb<33;)ow();return uw(e)>2||uw(Qb)>3?"":" "}function pw(e,t){for(;--t&&ow()&&!(Qb<48||Qb>102||Qb>57&&Qb<65||Qb>70&&Qb<97););return sw(e,aw()+(t<6&&32==iw()&&32==ow()))}function hw(e){for(;ow();)switch(Qb){case e:return Jb;case 34:case 39:34!==e&&39!==e&&hw(Qb);break;case 40:41===e&&hw(e);break;case 92:ow()}return Jb}function gw(e,t){for(;ow()&&e+Qb!==57&&(e+Qb!==84||47!==iw()););return"/*"+sw(t,Jb-1)+"*"+Nb(47===e?e:ow())}function vw(e){for(;!uw(iw());)ow();return sw(e,Jb)}var mw="-ms-",yw="-moz-",bw="-webkit-",ww="comm",xw="rule",_w="decl",Sw="@keyframes";function Ow(e,t){for(var n="",r=$b(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function Cw(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case _w:return e.return=e.return||e.value;case ww:return"";case Sw:return e.return=e.value+"{"+Ow(e.children,r)+"}";case xw:e.value=e.props.join(",")}return Wb(n=Ow(e.children,r))?e.return=e.value+"{"+n+"}":""}function Ew(e){return cw(Aw("",null,null,null,[""],e=lw(e),0,[0],e))}function Aw(e,t,n,r,o,i,a,s,u){for(var l=0,c=0,f=a,d=0,p=0,h=0,g=1,v=1,m=1,y=0,b="",w=o,x=i,_=r,S=b;v;)switch(h=y,y=ow()){case 40:if(108!=h&&58==Ub(S,f-1)){-1!=zb(S+=Vb(fw(y),"&","&\f"),"&\f")&&(m=-1);break}case 34:case 39:case 91:S+=fw(y);break;case 9:case 10:case 13:case 32:S+=dw(h);break;case 92:S+=pw(aw()-1,7);continue;case 47:switch(iw()){case 42:case 47:qb(kw(gw(ow(),aw()),t,n),u);break;default:S+="/"}break;case 123*g:s[l++]=Wb(S)*m;case 125*g:case 59:case 0:switch(y){case 0:case 125:v=0;case 59+c:-1==m&&(S=Vb(S,/\f/g,"")),p>0&&Wb(S)-f&&qb(p>32?Pw(S+";",r,n,f-1):Pw(Vb(S," ","")+";",r,n,f-2),u);break;case 59:S+=";";default:if(qb(_=Mw(S,t,n,l,c,o,s,b,w=[],x=[],f),i),123===y)if(0===c)Aw(S,t,_,_,w,i,f,s,x);else switch(99===d&&110===Ub(S,3)?100:d){case 100:case 108:case 109:case 115:Aw(e,_,_,r&&qb(Mw(e,_,_,0,0,o,s,b,o,w=[],f),x),o,x,f,s,r?w:x);break;default:Aw(S,_,_,_,[""],x,0,s,x)}}l=c=p=0,g=m=1,b=S="",f=a;break;case 58:f=1+Wb(S),p=h;default:if(g<1)if(123==y)--g;else if(125==y&&0==g++&&125==rw())continue;switch(S+=Nb(y),y*g){case 38:m=c>0?1:(S+="\f",-1);break;case 44:s[l++]=(Wb(S)-1)*m,m=1;break;case 64:45===iw()&&(S+=fw(ow())),d=iw(),c=f=Wb(b=S+=vw(aw())),y++;break;case 45:45===h&&2==Wb(S)&&(g=0)}}return i}function Mw(e,t,n,r,o,i,a,s,u,l,c){for(var f=o-1,d=0===o?i:[""],p=$b(d),h=0,g=0,v=0;h<r;++h)for(var m=0,y=Gb(e,f+1,f=Zb(g=a[h])),b=e;m<p;++m)(b=Hb(g>0?d[m]+" "+y:Vb(y,/&\f/g,d[m])))&&(u[v++]=b);return tw(e,t,n,0===o?xw:s,u,l,c)}function kw(e,t,n){return tw(e,t,n,ww,Nb(Qb),Gb(e,2,-2),0)}function Pw(e,t,n,r){return tw(e,t,n,_w,Gb(e,0,r),Gb(e,r+1,-1),r)}var Rw=function(e,t,n){for(var r=0,o=0;r=o,o=iw(),38===r&&12===o&&(t[n]=1),!uw(o);)ow();return sw(e,Jb)},Tw=function(e,t){return cw(function(e,t){var n=-1,r=44;do{switch(uw(r)){case 0:38===r&&12===iw()&&(t[n]=1),e[n]+=Rw(Jb-1,t,n);break;case 2:e[n]+=fw(r);break;case 4:if(44===r){e[++n]=58===iw()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=Nb(r)}}while(r=ow());return e}(lw(e),t))},Iw=new WeakMap,Bw=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Iw.get(n))&&!r){Iw.set(e,!0);for(var o=[],i=Tw(t,o),a=n.props,s=0,u=0;s<i.length;s++)for(var l=0;l<a.length;l++,u++)e.props[u]=o[s]?i[s].replace(/&\f/g,a[l]):a[l]+" "+i[s]}}},Dw=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function jw(e,t){switch(function(e,t){return 45^Ub(e,0)?(((t<<2^Ub(e,0))<<2^Ub(e,1))<<2^Ub(e,2))<<2^Ub(e,3):0}(e,t)){case 5103:return bw+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return bw+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return bw+e+yw+e+mw+e+e;case 6828:case 4268:return bw+e+mw+e+e;case 6165:return bw+e+mw+"flex-"+e+e;case 5187:return bw+e+Vb(e,/(\w+).+(:[^]+)/,bw+"box-$1$2"+mw+"flex-$1$2")+e;case 5443:return bw+e+mw+"flex-item-"+Vb(e,/flex-|-self/,"")+e;case 4675:return bw+e+mw+"flex-line-pack"+Vb(e,/align-content|flex-|-self/,"")+e;case 5548:return bw+e+mw+Vb(e,"shrink","negative")+e;case 5292:return bw+e+mw+Vb(e,"basis","preferred-size")+e;case 6060:return bw+"box-"+Vb(e,"-grow","")+bw+e+mw+Vb(e,"grow","positive")+e;case 4554:return bw+Vb(e,/([^-])(transform)/g,"$1"+bw+"$2")+e;case 6187:return Vb(Vb(Vb(e,/(zoom-|grab)/,bw+"$1"),/(image-set)/,bw+"$1"),e,"")+e;case 5495:case 3959:return Vb(e,/(image-set\([^]*)/,bw+"$1$`$1");case 4968:return Vb(Vb(e,/(.+:)(flex-)?(.*)/,bw+"box-pack:$3"+mw+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+bw+e+e;case 4095:case 3583:case 4068:case 2532:return Vb(e,/(.+)-inline(.+)/,bw+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Wb(e)-1-t>6)switch(Ub(e,t+1)){case 109:if(45!==Ub(e,t+4))break;case 102:return Vb(e,/(.+:)(.+)-([^]+)/,"$1"+bw+"$2-$3$1"+yw+(108==Ub(e,t+3)?"$3":"$2-$3"))+e;case 115:return~zb(e,"stretch")?jw(Vb(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==Ub(e,t+1))break;case 6444:switch(Ub(e,Wb(e)-3-(~zb(e,"!important")&&10))){case 107:return Vb(e,":",":"+bw)+e;case 101:return Vb(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+bw+(45===Ub(e,14)?"inline-":"")+"box$3$1"+bw+"$2$3$1"+mw+"$2box$3")+e}break;case 5936:switch(Ub(e,t+11)){case 114:return bw+e+mw+Vb(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return bw+e+mw+Vb(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return bw+e+mw+Vb(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return bw+e+mw+e+e}return e}var Lw=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case _w:e.return=jw(e.value,e.length);break;case Sw:return Ow([nw(e,{value:Vb(e.value,"@","@"+bw)})],r);case xw:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Ow([nw(e,{props:[Vb(t,/:(read-\w+)/,":"+yw+"$1")]})],r);case"::placeholder":return Ow([nw(e,{props:[Vb(t,/:(plac\w+)/,":"+bw+"input-$1")]}),nw(e,{props:[Vb(t,/:(plac\w+)/,":"+yw+"$1")]}),nw(e,{props:[Vb(t,/:(plac\w+)/,mw+"input-$1")]})],r)}return""}))}}],Zw=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||Lw;var o,i,a={},s=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)a[t[n]]=!0;s.push(e)}));var u,l,c=[Cw,(l=function(e){u.insert(e)},function(e){e.root||(e=e.return)&&l(e)})],f=function(e){var t=$b(e);return function(n,r,o,i){for(var a="",s=0;s<t;s++)a+=e[s](n,r,o,i)||"";return a}}([Bw,Dw].concat(r,c));i=function(e,t,n,r){u=n,Ow(Ew(e?e+"{"+t.styles+"}":t.styles),f),r&&(d.inserted[t.name]=!0)};var d={key:t,sheet:new Lb({key:t,container:o,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:a,registered:{},insert:i};return d.sheet.hydrate(s),d};var Nw=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)};var Fw={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Hw=n(45042),Vw=/[A-Z]|^ms/g,zw=/_EMO_([^_]+?)_([^]*?)_EMO_/g,Uw=function(e){return 45===e.charCodeAt(1)},Gw=function(e){return null!=e&&"boolean"!==typeof e},Ww=(0,Hw.Z)((function(e){return Uw(e)?e:e.replace(Vw,"-$&").toLowerCase()})),$w=function(e,t){switch(e){case"animation":case"animationName":if("string"===typeof t)return t.replace(zw,(function(e,t,n){return Yw={name:t,styles:n,next:Yw},t}))}return 1===Fw[e]||Uw(e)||"number"!==typeof t||0===t?t:t+"px"};function qw(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return Yw={name:n.name,styles:n.styles,next:Yw},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)Yw={name:r.name,styles:r.styles,next:Yw},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=qw(e,t,n[o])+";";else for(var i in n){var a=n[i];if("object"!==typeof a)null!=t&&void 0!==t[a]?r+=i+"{"+t[a]+"}":Gw(a)&&(r+=Ww(i)+":"+$w(i,a)+";");else if(!Array.isArray(a)||"string"!==typeof a[0]||null!=t&&void 0!==t[a[0]]){var s=qw(e,t,a);switch(i){case"animation":case"animationName":r+=Ww(i)+":"+s+";";break;default:r+=i+"{"+s+"}"}}else for(var u=0;u<a.length;u++)Gw(a[u])&&(r+=Ww(i)+":"+$w(i,a[u])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=Yw,i=n(e);return Yw=o,qw(e,t,i)}}if(null==t)return n;var a=t[n];return void 0!==a?a:n}var Yw,Xw=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var Kw=function(e,t,n){if(1===e.length&&"object"===typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";Yw=void 0;var i=e[0];null==i||void 0===i.raw?(r=!1,o+=qw(n,t,i)):o+=i[0];for(var a=1;a<e.length;a++)o+=qw(n,t,e[a]),r&&(o+=i[a]);Xw.lastIndex=0;for(var s,u="";null!==(s=Xw.exec(o));)u+="-"+s[1];var l=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+u;return{name:l,styles:o,next:Yw}},Jw=!!a.useInsertionEffect&&a.useInsertionEffect,Qw=Jw||function(e){return e()},ex=(Jw||i.useLayoutEffect,{}.hasOwnProperty),tx=i.createContext("undefined"!==typeof HTMLElement?Zw({key:"css"}):null);tx.Provider;var nx=function(e){return(0,i.forwardRef)((function(t,n){var r=(0,i.useContext)(tx);return e(t,r,n)}))};var rx=i.createContext({});var ox="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",ix=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return Nw(t,n,r),Qw((function(){return function(e,t,n){Nw(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}(t,n,r)})),null},ax=nx((function(e,t,n){var r=e.css;"string"===typeof r&&void 0!==t.registered[r]&&(r=t.registered[r]);var o=e[ox],a=[r],s="";"string"===typeof e.className?s=function(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}(t.registered,a,e.className):null!=e.className&&(s=e.className+" ");var u=Kw(a,void 0,i.useContext(rx));s+=t.key+"-"+u.name;var l={};for(var c in e)ex.call(e,c)&&"css"!==c&&c!==ox&&(l[c]=e[c]);return l.ref=n,l.className=s,i.createElement(i.Fragment,null,i.createElement(ix,{cache:t,serialized:u,isStringTag:"string"===typeof o}),i.createElement(o,l))}));var sx=ax,ux=function(e,t){var n=arguments;if(null==t||!ex.call(t,"css"))return i.createElement.apply(void 0,n);var r=n.length,o=new Array(r);o[0]=sx,o[1]=function(e,t){var n={};for(var r in t)ex.call(t,r)&&(n[r]=t[r]);return n[ox]=e,n}(e,t);for(var a=2;a<r;a++)o[a]=n[a];return i.createElement.apply(null,o)};function lx(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Kw(t)}var cx=n(29439),fx=n(45987),dx=n(71002);function px(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}Math.min,Math.max;const hx=["top","right","bottom","left"];hx.reduce(((e,t)=>e.concat(t,t+"-start",t+"-end")),[]);function gx(e){var t;return(null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function vx(e){return gx(e).getComputedStyle(e)}function mx(e){return e instanceof gx(e).Node}function yx(e){return mx(e)?(e.nodeName||"").toLowerCase():""}let bx;function wx(){if(bx)return bx;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(bx=e.brands.map((e=>e.brand+"/"+e.version)).join(" "),bx):navigator.userAgent}function xx(e){return e instanceof gx(e).HTMLElement}function _x(e){return e instanceof gx(e).Element}function Sx(e){return"undefined"!=typeof ShadowRoot&&(e instanceof gx(e).ShadowRoot||e instanceof ShadowRoot)}function Ox(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=vx(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function Cx(){return/^((?!chrome|android).)*safari/i.test(wx())}function Ex(e){return["html","body","#document"].includes(yx(e))}Math.min,Math.max;const Ax=Math.round;function Mx(e){const t=vx(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=xx(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=Ax(n)!==i||Ax(r)!==a;return s&&(n=i,r=a),{width:n,height:r,fallback:s}}function kx(e){return _x(e)?e:e.contextElement}const Px={x:1,y:1};function Rx(e){const t=kx(e);if(!xx(t))return Px;const n=t.getBoundingClientRect(),{width:r,height:o,fallback:i}=Mx(t);let a=(i?Ax(n.width):n.width)/r,s=(i?Ax(n.height):n.height)/o;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}function Tx(e,t,n,r){var o,i;void 0===t&&(t=!1),void 0===n&&(n=!1);const a=e.getBoundingClientRect(),s=kx(e);let u=Px;t&&(r?_x(r)&&(u=Rx(r)):u=Rx(e));const l=s?gx(s):window,c=Cx()&&n;let f=(a.left+(c&&(null==(o=l.visualViewport)?void 0:o.offsetLeft)||0))/u.x,d=(a.top+(c&&(null==(i=l.visualViewport)?void 0:i.offsetTop)||0))/u.y,p=a.width/u.x,h=a.height/u.y;if(s){const e=gx(s),t=r&&_x(r)?gx(r):r;let n=e.frameElement;for(;n&&r&&t!==e;){const e=Rx(n),t=n.getBoundingClientRect(),r=getComputedStyle(n);t.x+=(n.clientLeft+parseFloat(r.paddingLeft))*e.x,t.y+=(n.clientTop+parseFloat(r.paddingTop))*e.y,f*=e.x,d*=e.y,p*=e.x,h*=e.y,f+=t.x,d+=t.y,n=gx(n).frameElement}}return px({width:p,height:h,x:f,y:d})}function Ix(e){return((mx(e)?e.ownerDocument:e.document)||window.document).documentElement}function Bx(e){if("html"===yx(e))return e;const t=e.assignedSlot||e.parentNode||Sx(e)&&e.host||Ix(e);return Sx(t)?t.host:t}function Dx(e){const t=Bx(e);return Ex(t)?t.ownerDocument.body:xx(t)&&Ox(t)?t:Dx(t)}function jx(e,t){var n;void 0===t&&(t=[]);const r=Dx(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=gx(r);return o?t.concat(i,i.visualViewport||[],Ox(r)?r:[]):t.concat(r,jx(r))}var Lx=i.useLayoutEffect,Zx=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],Nx=function(){};function Fx(e,t){return t?"-"===t[0]?e+t:e+"__"+t:e}function Hx(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];var i=[].concat(r);if(t&&e)for(var a in t)t.hasOwnProperty(a)&&t[a]&&i.push("".concat(Fx(e,a)));return i.filter((function(e){return e})).map((function(e){return String(e).trim()})).join(" ")}var Vx=function(e){return t=e,Array.isArray(t)?e.filter(Boolean):"object"===(0,dx.Z)(e)&&null!==e?[e]:[];var t},zx=function(e){return e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme,Ul({},(0,fx.Z)(e,Zx))},Ux=function(e,t,n){var r=e.cx,o=e.getStyles,i=e.getClassNames,a=e.className;return{css:o(t,e),className:r(null!==n&&void 0!==n?n:{},i(t,e),a)}};function Gx(e){return[document.documentElement,document.body,window].indexOf(e)>-1}function Wx(e){return Gx(e)?window.pageYOffset:e.scrollTop}function $x(e,t){Gx(e)?window.scrollTo(0,t):e.scrollTop=t}function qx(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Nx,o=Wx(e),i=t-o,a=0;!function t(){var s=function(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}(a+=10,o,i,n);$x(e,s),a<n?window.requestAnimationFrame(t):r(e)}()}function Yx(e,t){var n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=t.offsetHeight/3;r.bottom+o>n.bottom?$x(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+o,e.scrollHeight)):r.top-o<n.top&&$x(e,Math.max(t.offsetTop-o,0))}function Xx(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}}var Kx=!1,Jx={get passive(){return Kx=!0}},Qx="undefined"!==typeof window?window:{};Qx.addEventListener&&Qx.removeEventListener&&(Qx.addEventListener("p",Nx,Jx),Qx.removeEventListener("p",Nx,!1));var e_=Kx;function t_(e){return null!=e}function n_(e,t,n){return e?t:n}function r_(e){var t=e.maxHeight,n=e.menuEl,r=e.minHeight,o=e.placement,i=e.shouldScroll,a=e.isFixedPosition,s=e.controlHeight,u=function(e){var t=getComputedStyle(e),n="absolute"===t.position,r=/(auto|scroll)/;if("fixed"===t.position)return document.documentElement;for(var o=e;o=o.parentElement;)if(t=getComputedStyle(o),(!n||"static"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return o;return document.documentElement}(n),l={placement:"bottom",maxHeight:t};if(!n||!n.offsetParent)return l;var c,f=u.getBoundingClientRect().height,d=n.getBoundingClientRect(),p=d.bottom,h=d.height,g=d.top,v=n.offsetParent.getBoundingClientRect().top,m=a?window.innerHeight:Gx(c=u)?window.innerHeight:c.clientHeight,y=Wx(u),b=parseInt(getComputedStyle(n).marginBottom,10),w=parseInt(getComputedStyle(n).marginTop,10),x=v-w,_=m-g,S=x+y,O=f-y-g,C=p-m+y+b,E=y+g-w,A=160;switch(o){case"auto":case"bottom":if(_>=h)return{placement:"bottom",maxHeight:t};if(O>=h&&!a)return i&&qx(u,C,A),{placement:"bottom",maxHeight:t};if(!a&&O>=r||a&&_>=r)return i&&qx(u,C,A),{placement:"bottom",maxHeight:a?_-b:O-b};if("auto"===o||a){var M=t,k=a?x:S;return k>=r&&(M=Math.min(k-b-s,t)),{placement:"top",maxHeight:M}}if("bottom"===o)return i&&$x(u,C),{placement:"bottom",maxHeight:t};break;case"top":if(x>=h)return{placement:"top",maxHeight:t};if(S>=h&&!a)return i&&qx(u,E,A),{placement:"top",maxHeight:t};if(!a&&S>=r||a&&x>=r){var P=t;return(!a&&S>=r||a&&x>=r)&&(P=a?x-w:S-w),i&&qx(u,E,A),{placement:"top",maxHeight:P}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return l}var o_=function(e){return"auto"===e?"bottom":e},i_=(0,i.createContext)(null),a_=function(e){var t=e.children,n=e.minMenuHeight,r=e.maxMenuHeight,o=e.menuPlacement,a=e.menuPosition,s=e.menuShouldScrollIntoView,u=e.theme,l=((0,i.useContext)(i_)||{}).setPortalPlacement,c=(0,i.useRef)(null),f=(0,i.useState)(r),d=(0,cx.Z)(f,2),p=d[0],h=d[1],g=(0,i.useState)(null),v=(0,cx.Z)(g,2),m=v[0],y=v[1],b=u.spacing.controlHeight;return Lx((function(){var e=c.current;if(e){var t="fixed"===a,i=r_({maxHeight:r,menuEl:e,minHeight:n,placement:o,shouldScroll:s&&!t,isFixedPosition:t,controlHeight:b});h(i.maxHeight),y(i.placement),null===l||void 0===l||l(i.placement)}}),[r,o,a,s,n,l,b]),t({ref:c,placerProps:Ul(Ul({},e),{},{placement:m||o_(o),maxHeight:p})})},s_=function(e){var t=e.children,n=e.innerRef,r=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"menu",{menu:!0}),{ref:n},r),t)},u_=function(e,t){var n=e.theme,r=n.spacing.baseUnit,o=n.colors;return Ul({textAlign:"center"},t?{}:{color:o.neutral40,padding:"".concat(2*r,"px ").concat(3*r,"px")})},l_=u_,c_=u_,f_=function(e){var t=e.children,n=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),n),t)};f_.defaultProps={children:"No options"};var d_=function(e){var t=e.children,n=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),n),t)};d_.defaultProps={children:"Loading..."};var p_,h_=["size"];var g_,v_,m_={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},y_=function(e){var t=e.size,n=(0,fx.Z)(e,h_);return ux("svg",(0,u.Z)({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:m_},n))},b_=function(e){return ux(y_,(0,u.Z)({size:20},e),ux("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},w_=function(e){return ux(y_,(0,u.Z)({size:20},e),ux("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},x_=function(e,t){var n=e.isFocused,r=e.theme,o=r.spacing.baseUnit,i=r.colors;return Ul({label:"indicatorContainer",display:"flex",transition:"color 150ms"},t?{}:{color:n?i.neutral60:i.neutral20,padding:2*o,":hover":{color:n?i.neutral80:i.neutral40}})},__=x_,S_=x_,O_=function(){var e=lx.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}(p_||(g_=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],v_||(v_=g_.slice(0)),p_=Object.freeze(Object.defineProperties(g_,{raw:{value:Object.freeze(v_)}})))),C_=function(e){var t=e.delay,n=e.offset;return ux("span",{css:lx({animation:"".concat(O_," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},E_=function(e){var t=e.innerProps,n=e.isRtl;return ux("div",(0,u.Z)({},Ux(e,"loadingIndicator",{indicator:!0,"loading-indicator":!0}),t),ux(C_,{delay:0,offset:n}),ux(C_,{delay:160,offset:!0}),ux(C_,{delay:320,offset:!n}))};E_.defaultProps={size:4};var A_=function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,o=e.innerRef,i=e.innerProps,a=e.menuIsOpen;return ux("div",(0,u.Z)({ref:o},Ux(e,"control",{control:!0,"control--is-disabled":n,"control--is-focused":r,"control--menu-is-open":a}),i),t)},M_=["data"],k_=function(e){var t=e.children,n=e.cx,r=e.getStyles,o=e.getClassNames,i=e.Heading,a=e.headingProps,s=e.innerProps,l=e.label,c=e.theme,f=e.selectProps;return ux("div",(0,u.Z)({},Ux(e,"group",{group:!0}),s),ux(i,(0,u.Z)({},a,{selectProps:f,theme:c,getStyles:r,getClassNames:o,cx:n}),l),ux("div",null,t))},P_=["innerRef","isDisabled","isHidden","inputClassName"],R_={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},T_={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content","&:after":Ul({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},R_)},I_=function(e){return Ul({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},R_)},B_=function(e){var t=e.children,n=e.innerProps;return ux("div",n,t)};var D_=function(e){var t=e.children,n=e.components,r=e.data,o=e.innerProps,i=e.isDisabled,a=e.removeProps,s=e.selectProps,u=n.Container,l=n.Label,c=n.Remove;return ux(u,{data:r,innerProps:Ul(Ul({},Ux(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":i})),o),selectProps:s},ux(l,{data:r,innerProps:Ul({},Ux(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:s},t),ux(c,{data:r,innerProps:Ul(Ul({},Ux(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(t||"option")},a),selectProps:s}))},j_={ClearIndicator:function(e){var t=e.children,n=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),t||ux(b_,null))},Control:A_,DropdownIndicator:function(e){var t=e.children,n=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),t||ux(w_,null))},DownChevron:w_,CrossIcon:b_,Group:k_,GroupHeading:function(e){var t=zx(e);t.data;var n=(0,fx.Z)(t,M_);return ux("div",(0,u.Z)({},Ux(e,"groupHeading",{"group-heading":!0}),n))},IndicatorsContainer:function(e){var t=e.children,n=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"indicatorsContainer",{indicators:!0}),n),t)},IndicatorSeparator:function(e){var t=e.innerProps;return ux("span",(0,u.Z)({},t,Ux(e,"indicatorSeparator",{"indicator-separator":!0})))},Input:function(e){var t=e.cx,n=e.value,r=zx(e),o=r.innerRef,i=r.isDisabled,a=r.isHidden,s=r.inputClassName,l=(0,fx.Z)(r,P_);return ux("div",(0,u.Z)({},Ux(e,"input",{"input-container":!0}),{"data-value":n||""}),ux("input",(0,u.Z)({className:t({input:!0},s),ref:o,style:I_(a),disabled:i},l)))},LoadingIndicator:E_,Menu:s_,MenuList:function(e){var t=e.children,n=e.innerProps,r=e.innerRef,o=e.isMulti;return ux("div",(0,u.Z)({},Ux(e,"menuList",{"menu-list":!0,"menu-list--is-multi":o}),{ref:r},n),t)},MenuPortal:function(e){var t=e.appendTo,n=e.children,r=e.controlElement,o=e.innerProps,a=e.menuPlacement,s=e.menuPosition,l=(0,i.useRef)(null),c=(0,i.useRef)(null),f=(0,i.useState)(o_(a)),d=(0,cx.Z)(f,2),p=d[0],h=d[1],g=(0,i.useMemo)((function(){return{setPortalPlacement:h}}),[]),v=(0,i.useState)(null),m=(0,cx.Z)(v,2),y=m[0],b=m[1],w=(0,i.useCallback)((function(){if(r){var e=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(r),t="fixed"===s?0:window.pageYOffset,n=e[p]+t;n===(null===y||void 0===y?void 0:y.offset)&&e.left===(null===y||void 0===y?void 0:y.rect.left)&&e.width===(null===y||void 0===y?void 0:y.rect.width)||b({offset:n,rect:e})}}),[r,s,p,null===y||void 0===y?void 0:y.offset,null===y||void 0===y?void 0:y.rect.left,null===y||void 0===y?void 0:y.rect.width]);Lx((function(){w()}),[w]);var x=(0,i.useCallback)((function(){"function"===typeof c.current&&(c.current(),c.current=null),r&&l.current&&(c.current=function(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:s=!1}=r,u=o||i?[..._x(e)?jx(e):e.contextElement?jx(e.contextElement):[],...jx(t)]:[];u.forEach((e=>{const t=!_x(e)&&e.toString().includes("V");!o||s&&!t||e.addEventListener("scroll",n,{passive:!0}),i&&e.addEventListener("resize",n)}));let l,c=null;a&&(c=new ResizeObserver((()=>{n()})),_x(e)&&!s&&c.observe(e),_x(e)||!e.contextElement||s||c.observe(e.contextElement),c.observe(t));let f=s?Tx(e):null;return s&&function t(){const r=Tx(e);!f||r.x===f.x&&r.y===f.y&&r.width===f.width&&r.height===f.height||n(),f=r,l=requestAnimationFrame(t)}(),n(),()=>{var e;u.forEach((e=>{o&&e.removeEventListener("scroll",n),i&&e.removeEventListener("resize",n)})),null==(e=c)||e.disconnect(),c=null,s&&cancelAnimationFrame(l)}}(r,l.current,w,{elementResize:"ResizeObserver"in window}))}),[r,w]);Lx((function(){x()}),[x]);var _=(0,i.useCallback)((function(e){l.current=e,x()}),[x]);if(!t&&"fixed"!==s||!y)return null;var S=ux("div",(0,u.Z)({ref:_},Ux(Ul(Ul({},e),{},{offset:y.offset,position:s,rect:y.rect}),"menuPortal",{"menu-portal":!0}),o),n);return ux(i_.Provider,{value:g},t?(0,mt.createPortal)(S,t):S)},LoadingMessage:d_,NoOptionsMessage:f_,MultiValue:D_,MultiValueContainer:B_,MultiValueLabel:B_,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return ux("div",(0,u.Z)({role:"button"},n),t||ux(b_,{size:14}))},Option:function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,o=e.isSelected,i=e.innerRef,a=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"option",{option:!0,"option--is-disabled":n,"option--is-focused":r,"option--is-selected":o}),{ref:i,"aria-disabled":n},a),t)},Placeholder:function(e){var t=e.children,n=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"placeholder",{placeholder:!0}),n),t)},SelectContainer:function(e){var t=e.children,n=e.innerProps,r=e.isDisabled,o=e.isRtl;return ux("div",(0,u.Z)({},Ux(e,"container",{"--is-disabled":r,"--is-rtl":o}),n),t)},SingleValue:function(e){var t=e.children,n=e.isDisabled,r=e.innerProps;return ux("div",(0,u.Z)({},Ux(e,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),r),t)},ValueContainer:function(e){var t=e.children,n=e.innerProps,r=e.isMulti,o=e.hasValue;return ux("div",(0,u.Z)({},Ux(e,"valueContainer",{"value-container":!0,"value-container--is-multi":r,"value-container--has-value":o}),n),t)}},L_=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"];var Z_=n(15671),N_=n(43144),F_=n(60136),H_=n(29388),V_=n(93433),z_=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function U_(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],o=t[n],!(r===o||z_(r)&&z_(o)))return!1;var r,o;return!0}for(var G_={name:"7pg0cj-a11yText",styles:"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap"},W_=function(e){return ux("span",(0,u.Z)({css:G_},e))},$_={guidance:function(e){var t=e.isSearchable,n=e.isMulti,r=e.isDisabled,o=e.tabSelectsValue;switch(e.context){case"menu":return"Use Up and Down to choose options".concat(r?"":", press Enter to select the currently focused option",", press Escape to exit the menu").concat(o?", press Tab to select the option and exit the menu":"",".");case"input":return"".concat(e["aria-label"]||"Select"," is focused ").concat(t?",type to refine list":"",", press Down to open the menu, ").concat(n?" press left to focus selected values":"");case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value";default:return""}},onChange:function(e){var t=e.action,n=e.label,r=void 0===n?"":n,o=e.labels,i=e.isDisabled;switch(t){case"deselect-option":case"pop-value":case"remove-value":return"option ".concat(r,", deselected.");case"clear":return"All selected options have been cleared.";case"initial-input-focus":return"option".concat(o.length>1?"s":""," ").concat(o.join(","),", selected.");case"select-option":return"option ".concat(r,i?" is disabled. Select another option.":", selected.");default:return""}},onFocus:function(e){var t=e.context,n=e.focused,r=e.options,o=e.label,i=void 0===o?"":o,a=e.selectValue,s=e.isDisabled,u=e.isSelected,l=function(e,t){return e&&e.length?"".concat(e.indexOf(t)+1," of ").concat(e.length):""};if("value"===t&&a)return"value ".concat(i," focused, ").concat(l(a,n),".");if("menu"===t){var c=s?" disabled":"",f="".concat(u?"selected":"focused").concat(c);return"option ".concat(i," ").concat(f,", ").concat(l(r,n),".")}return""},onFilter:function(e){var t=e.inputValue,n=e.resultsMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}},q_=function(e){var t=e.ariaSelection,n=e.focusedOption,r=e.focusedValue,o=e.focusableOptions,a=e.isFocused,s=e.selectValue,u=e.selectProps,l=e.id,c=u.ariaLiveMessages,f=u.getOptionLabel,d=u.inputValue,p=u.isMulti,h=u.isOptionDisabled,g=u.isSearchable,v=u.menuIsOpen,m=u.options,y=u.screenReaderStatus,b=u.tabSelectsValue,w=u["aria-label"],x=u["aria-live"],_=(0,i.useMemo)((function(){return Ul(Ul({},$_),c||{})}),[c]),S=(0,i.useMemo)((function(){var e,n="";if(t&&_.onChange){var r=t.option,o=t.options,i=t.removedValue,a=t.removedValues,u=t.value,l=i||r||(e=u,Array.isArray(e)?null:e),c=l?f(l):"",d=o||a||void 0,p=d?d.map(f):[],g=Ul({isDisabled:l&&h(l,s),label:c,labels:p},t);n=_.onChange(g)}return n}),[t,_,h,s,f]),O=(0,i.useMemo)((function(){var e="",t=n||r,i=!!(n&&s&&s.includes(n));if(t&&_.onFocus){var a={focused:t,label:f(t),isDisabled:h(t,s),isSelected:i,options:o,context:t===n?"menu":"value",selectValue:s};e=_.onFocus(a)}return e}),[n,r,f,h,_,o,s]),C=(0,i.useMemo)((function(){var e="";if(v&&m.length&&_.onFilter){var t=y({count:o.length});e=_.onFilter({inputValue:d,resultsMessage:t})}return e}),[o,d,v,_,m,y]),E=(0,i.useMemo)((function(){var e="";if(_.guidance){var t=r?"value":v?"menu":"input";e=_.guidance({"aria-label":w,context:t,isDisabled:n&&h(n,s),isMulti:p,isSearchable:g,tabSelectsValue:b})}return e}),[w,n,r,p,h,g,v,_,s,b]),A="".concat(O," ").concat(C," ").concat(E),M=ux(i.Fragment,null,ux("span",{id:"aria-selection"},S),ux("span",{id:"aria-context"},A)),k="initial-input-focus"===(null===t||void 0===t?void 0:t.action);return ux(i.Fragment,null,ux(W_,{id:l},k&&M),ux(W_,{"aria-live":x,"aria-atomic":"false","aria-relevant":"additions text"},a&&!k&&M))},Y_=[{base:"A",letters:"A\u24b6\uff21\xc0\xc1\xc2\u1ea6\u1ea4\u1eaa\u1ea8\xc3\u0100\u0102\u1eb0\u1eae\u1eb4\u1eb2\u0226\u01e0\xc4\u01de\u1ea2\xc5\u01fa\u01cd\u0200\u0202\u1ea0\u1eac\u1eb6\u1e00\u0104\u023a\u2c6f"},{base:"AA",letters:"\ua732"},{base:"AE",letters:"\xc6\u01fc\u01e2"},{base:"AO",letters:"\ua734"},{base:"AU",letters:"\ua736"},{base:"AV",letters:"\ua738\ua73a"},{base:"AY",letters:"\ua73c"},{base:"B",letters:"B\u24b7\uff22\u1e02\u1e04\u1e06\u0243\u0182\u0181"},{base:"C",letters:"C\u24b8\uff23\u0106\u0108\u010a\u010c\xc7\u1e08\u0187\u023b\ua73e"},{base:"D",letters:"D\u24b9\uff24\u1e0a\u010e\u1e0c\u1e10\u1e12\u1e0e\u0110\u018b\u018a\u0189\ua779"},{base:"DZ",letters:"\u01f1\u01c4"},{base:"Dz",letters:"\u01f2\u01c5"},{base:"E",letters:"E\u24ba\uff25\xc8\xc9\xca\u1ec0\u1ebe\u1ec4\u1ec2\u1ebc\u0112\u1e14\u1e16\u0114\u0116\xcb\u1eba\u011a\u0204\u0206\u1eb8\u1ec6\u0228\u1e1c\u0118\u1e18\u1e1a\u0190\u018e"},{base:"F",letters:"F\u24bb\uff26\u1e1e\u0191\ua77b"},{base:"G",letters:"G\u24bc\uff27\u01f4\u011c\u1e20\u011e\u0120\u01e6\u0122\u01e4\u0193\ua7a0\ua77d\ua77e"},{base:"H",letters:"H\u24bd\uff28\u0124\u1e22\u1e26\u021e\u1e24\u1e28\u1e2a\u0126\u2c67\u2c75\ua78d"},{base:"I",letters:"I\u24be\uff29\xcc\xcd\xce\u0128\u012a\u012c\u0130\xcf\u1e2e\u1ec8\u01cf\u0208\u020a\u1eca\u012e\u1e2c\u0197"},{base:"J",letters:"J\u24bf\uff2a\u0134\u0248"},{base:"K",letters:"K\u24c0\uff2b\u1e30\u01e8\u1e32\u0136\u1e34\u0198\u2c69\ua740\ua742\ua744\ua7a2"},{base:"L",letters:"L\u24c1\uff2c\u013f\u0139\u013d\u1e36\u1e38\u013b\u1e3c\u1e3a\u0141\u023d\u2c62\u2c60\ua748\ua746\ua780"},{base:"LJ",letters:"\u01c7"},{base:"Lj",letters:"\u01c8"},{base:"M",letters:"M\u24c2\uff2d\u1e3e\u1e40\u1e42\u2c6e\u019c"},{base:"N",letters:"N\u24c3\uff2e\u01f8\u0143\xd1\u1e44\u0147\u1e46\u0145\u1e4a\u1e48\u0220\u019d\ua790\ua7a4"},{base:"NJ",letters:"\u01ca"},{base:"Nj",letters:"\u01cb"},{base:"O",letters:"O\u24c4\uff2f\xd2\xd3\xd4\u1ed2\u1ed0\u1ed6\u1ed4\xd5\u1e4c\u022c\u1e4e\u014c\u1e50\u1e52\u014e\u022e\u0230\xd6\u022a\u1ece\u0150\u01d1\u020c\u020e\u01a0\u1edc\u1eda\u1ee0\u1ede\u1ee2\u1ecc\u1ed8\u01ea\u01ec\xd8\u01fe\u0186\u019f\ua74a\ua74c"},{base:"OI",letters:"\u01a2"},{base:"OO",letters:"\ua74e"},{base:"OU",letters:"\u0222"},{base:"P",letters:"P\u24c5\uff30\u1e54\u1e56\u01a4\u2c63\ua750\ua752\ua754"},{base:"Q",letters:"Q\u24c6\uff31\ua756\ua758\u024a"},{base:"R",letters:"R\u24c7\uff32\u0154\u1e58\u0158\u0210\u0212\u1e5a\u1e5c\u0156\u1e5e\u024c\u2c64\ua75a\ua7a6\ua782"},{base:"S",letters:"S\u24c8\uff33\u1e9e\u015a\u1e64\u015c\u1e60\u0160\u1e66\u1e62\u1e68\u0218\u015e\u2c7e\ua7a8\ua784"},{base:"T",letters:"T\u24c9\uff34\u1e6a\u0164\u1e6c\u021a\u0162\u1e70\u1e6e\u0166\u01ac\u01ae\u023e\ua786"},{base:"TZ",letters:"\ua728"},{base:"U",letters:"U\u24ca\uff35\xd9\xda\xdb\u0168\u1e78\u016a\u1e7a\u016c\xdc\u01db\u01d7\u01d5\u01d9\u1ee6\u016e\u0170\u01d3\u0214\u0216\u01af\u1eea\u1ee8\u1eee\u1eec\u1ef0\u1ee4\u1e72\u0172\u1e76\u1e74\u0244"},{base:"V",letters:"V\u24cb\uff36\u1e7c\u1e7e\u01b2\ua75e\u0245"},{base:"VY",letters:"\ua760"},{base:"W",letters:"W\u24cc\uff37\u1e80\u1e82\u0174\u1e86\u1e84\u1e88\u2c72"},{base:"X",letters:"X\u24cd\uff38\u1e8a\u1e8c"},{base:"Y",letters:"Y\u24ce\uff39\u1ef2\xdd\u0176\u1ef8\u0232\u1e8e\u0178\u1ef6\u1ef4\u01b3\u024e\u1efe"},{base:"Z",letters:"Z\u24cf\uff3a\u0179\u1e90\u017b\u017d\u1e92\u1e94\u01b5\u0224\u2c7f\u2c6b\ua762"},{base:"a",letters:"a\u24d0\uff41\u1e9a\xe0\xe1\xe2\u1ea7\u1ea5\u1eab\u1ea9\xe3\u0101\u0103\u1eb1\u1eaf\u1eb5\u1eb3\u0227\u01e1\xe4\u01df\u1ea3\xe5\u01fb\u01ce\u0201\u0203\u1ea1\u1ead\u1eb7\u1e01\u0105\u2c65\u0250"},{base:"aa",letters:"\ua733"},{base:"ae",letters:"\xe6\u01fd\u01e3"},{base:"ao",letters:"\ua735"},{base:"au",letters:"\ua737"},{base:"av",letters:"\ua739\ua73b"},{base:"ay",letters:"\ua73d"},{base:"b",letters:"b\u24d1\uff42\u1e03\u1e05\u1e07\u0180\u0183\u0253"},{base:"c",letters:"c\u24d2\uff43\u0107\u0109\u010b\u010d\xe7\u1e09\u0188\u023c\ua73f\u2184"},{base:"d",letters:"d\u24d3\uff44\u1e0b\u010f\u1e0d\u1e11\u1e13\u1e0f\u0111\u018c\u0256\u0257\ua77a"},{base:"dz",letters:"\u01f3\u01c6"},{base:"e",letters:"e\u24d4\uff45\xe8\xe9\xea\u1ec1\u1ebf\u1ec5\u1ec3\u1ebd\u0113\u1e15\u1e17\u0115\u0117\xeb\u1ebb\u011b\u0205\u0207\u1eb9\u1ec7\u0229\u1e1d\u0119\u1e19\u1e1b\u0247\u025b\u01dd"},{base:"f",letters:"f\u24d5\uff46\u1e1f\u0192\ua77c"},{base:"g",letters:"g\u24d6\uff47\u01f5\u011d\u1e21\u011f\u0121\u01e7\u0123\u01e5\u0260\ua7a1\u1d79\ua77f"},{base:"h",letters:"h\u24d7\uff48\u0125\u1e23\u1e27\u021f\u1e25\u1e29\u1e2b\u1e96\u0127\u2c68\u2c76\u0265"},{base:"hv",letters:"\u0195"},{base:"i",letters:"i\u24d8\uff49\xec\xed\xee\u0129\u012b\u012d\xef\u1e2f\u1ec9\u01d0\u0209\u020b\u1ecb\u012f\u1e2d\u0268\u0131"},{base:"j",letters:"j\u24d9\uff4a\u0135\u01f0\u0249"},{base:"k",letters:"k\u24da\uff4b\u1e31\u01e9\u1e33\u0137\u1e35\u0199\u2c6a\ua741\ua743\ua745\ua7a3"},{base:"l",letters:"l\u24db\uff4c\u0140\u013a\u013e\u1e37\u1e39\u013c\u1e3d\u1e3b\u017f\u0142\u019a\u026b\u2c61\ua749\ua781\ua747"},{base:"lj",letters:"\u01c9"},{base:"m",letters:"m\u24dc\uff4d\u1e3f\u1e41\u1e43\u0271\u026f"},{base:"n",letters:"n\u24dd\uff4e\u01f9\u0144\xf1\u1e45\u0148\u1e47\u0146\u1e4b\u1e49\u019e\u0272\u0149\ua791\ua7a5"},{base:"nj",letters:"\u01cc"},{base:"o",letters:"o\u24de\uff4f\xf2\xf3\xf4\u1ed3\u1ed1\u1ed7\u1ed5\xf5\u1e4d\u022d\u1e4f\u014d\u1e51\u1e53\u014f\u022f\u0231\xf6\u022b\u1ecf\u0151\u01d2\u020d\u020f\u01a1\u1edd\u1edb\u1ee1\u1edf\u1ee3\u1ecd\u1ed9\u01eb\u01ed\xf8\u01ff\u0254\ua74b\ua74d\u0275"},{base:"oi",letters:"\u01a3"},{base:"ou",letters:"\u0223"},{base:"oo",letters:"\ua74f"},{base:"p",letters:"p\u24df\uff50\u1e55\u1e57\u01a5\u1d7d\ua751\ua753\ua755"},{base:"q",letters:"q\u24e0\uff51\u024b\ua757\ua759"},{base:"r",letters:"r\u24e1\uff52\u0155\u1e59\u0159\u0211\u0213\u1e5b\u1e5d\u0157\u1e5f\u024d\u027d\ua75b\ua7a7\ua783"},{base:"s",letters:"s\u24e2\uff53\xdf\u015b\u1e65\u015d\u1e61\u0161\u1e67\u1e63\u1e69\u0219\u015f\u023f\ua7a9\ua785\u1e9b"},{base:"t",letters:"t\u24e3\uff54\u1e6b\u1e97\u0165\u1e6d\u021b\u0163\u1e71\u1e6f\u0167\u01ad\u0288\u2c66\ua787"},{base:"tz",letters:"\ua729"},{base:"u",letters:"u\u24e4\uff55\xf9\xfa\xfb\u0169\u1e79\u016b\u1e7b\u016d\xfc\u01dc\u01d8\u01d6\u01da\u1ee7\u016f\u0171\u01d4\u0215\u0217\u01b0\u1eeb\u1ee9\u1eef\u1eed\u1ef1\u1ee5\u1e73\u0173\u1e77\u1e75\u0289"},{base:"v",letters:"v\u24e5\uff56\u1e7d\u1e7f\u028b\ua75f\u028c"},{base:"vy",letters:"\ua761"},{base:"w",letters:"w\u24e6\uff57\u1e81\u1e83\u0175\u1e87\u1e85\u1e98\u1e89\u2c73"},{base:"x",letters:"x\u24e7\uff58\u1e8b\u1e8d"},{base:"y",letters:"y\u24e8\uff59\u1ef3\xfd\u0177\u1ef9\u0233\u1e8f\xff\u1ef7\u1e99\u1ef5\u01b4\u024f\u1eff"},{base:"z",letters:"z\u24e9\uff5a\u017a\u1e91\u017c\u017e\u1e93\u1e95\u01b6\u0225\u0240\u2c6c\ua763"}],X_=new RegExp("["+Y_.map((function(e){return e.letters})).join("")+"]","g"),K_={},J_=0;J_<Y_.length;J_++)for(var Q_=Y_[J_],eS=0;eS<Q_.letters.length;eS++)K_[Q_.letters[eS]]=Q_.base;var tS=function(e){return e.replace(X_,(function(e){return K_[e]}))},nS=function(e,t){void 0===t&&(t=U_);var n=null;function r(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;var i=e.apply(this,r);return n={lastResult:i,lastArgs:r,lastThis:this},i}return r.clear=function(){n=null},r}(tS),rS=function(e){return e.replace(/^\s+|\s+$/g,"")},oS=function(e){return"".concat(e.label," ").concat(e.value)},iS=["innerRef"];function aS(e){var t=e.innerRef,n=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=Object.entries(e).filter((function(e){var t=(0,cx.Z)(e,1)[0];return!n.includes(t)}));return o.reduce((function(e,t){var n=(0,cx.Z)(t,2),r=n[0],o=n[1];return e[r]=o,e}),{})}((0,fx.Z)(e,iS),"onExited","in","enter","exit","appear");return ux("input",(0,u.Z)({ref:t},n,{css:lx({label:"dummyInput",background:0,border:0,caretColor:"transparent",fontSize:"inherit",gridArea:"1 / 1 / 2 / 3",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(.01)"},"","")}))}var sS=function(e){e.preventDefault(),e.stopPropagation()};var uS=["boxSizing","height","overflow","paddingRight","position"],lS={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function cS(e){e.preventDefault()}function fS(e){e.stopPropagation()}function dS(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function pS(){return"ontouchstart"in window||navigator.maxTouchPoints}var hS=!("undefined"===typeof window||!window.document||!window.document.createElement),gS=0,vS={capture:!1,passive:!1};var mS=function(){return document.activeElement&&document.activeElement.blur()},yS={name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"};function bS(e){var t=e.children,n=e.lockEnabled,r=e.captureEnabled,o=function(e){var t=e.isEnabled,n=e.onBottomArrive,r=e.onBottomLeave,o=e.onTopArrive,a=e.onTopLeave,s=(0,i.useRef)(!1),u=(0,i.useRef)(!1),l=(0,i.useRef)(0),c=(0,i.useRef)(null),f=(0,i.useCallback)((function(e,t){if(null!==c.current){var i=c.current,l=i.scrollTop,f=i.scrollHeight,d=i.clientHeight,p=c.current,h=t>0,g=f-d-l,v=!1;g>t&&s.current&&(r&&r(e),s.current=!1),h&&u.current&&(a&&a(e),u.current=!1),h&&t>g?(n&&!s.current&&n(e),p.scrollTop=f,v=!0,s.current=!0):!h&&-t>l&&(o&&!u.current&&o(e),p.scrollTop=0,v=!0,u.current=!0),v&&sS(e)}}),[n,r,o,a]),d=(0,i.useCallback)((function(e){f(e,e.deltaY)}),[f]),p=(0,i.useCallback)((function(e){l.current=e.changedTouches[0].clientY}),[]),h=(0,i.useCallback)((function(e){var t=l.current-e.changedTouches[0].clientY;f(e,t)}),[f]),g=(0,i.useCallback)((function(e){if(e){var t=!!e_&&{passive:!1};e.addEventListener("wheel",d,t),e.addEventListener("touchstart",p,t),e.addEventListener("touchmove",h,t)}}),[h,p,d]),v=(0,i.useCallback)((function(e){e&&(e.removeEventListener("wheel",d,!1),e.removeEventListener("touchstart",p,!1),e.removeEventListener("touchmove",h,!1))}),[h,p,d]);return(0,i.useEffect)((function(){if(t){var e=c.current;return g(e),function(){v(e)}}}),[t,g,v]),function(e){c.current=e}}({isEnabled:void 0===r||r,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),a=function(e){var t=e.isEnabled,n=e.accountForScrollbars,r=void 0===n||n,o=(0,i.useRef)({}),a=(0,i.useRef)(null),s=(0,i.useCallback)((function(e){if(hS){var t=document.body,n=t&&t.style;if(r&&uS.forEach((function(e){var t=n&&n[e];o.current[e]=t})),r&&gS<1){var i=parseInt(o.current.paddingRight,10)||0,a=document.body?document.body.clientWidth:0,s=window.innerWidth-a+i||0;Object.keys(lS).forEach((function(e){var t=lS[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(s,"px"))}t&&pS()&&(t.addEventListener("touchmove",cS,vS),e&&(e.addEventListener("touchstart",dS,vS),e.addEventListener("touchmove",fS,vS))),gS+=1}}),[r]),u=(0,i.useCallback)((function(e){if(hS){var t=document.body,n=t&&t.style;gS=Math.max(gS-1,0),r&&gS<1&&uS.forEach((function(e){var t=o.current[e];n&&(n[e]=t)})),t&&pS()&&(t.removeEventListener("touchmove",cS,vS),e&&(e.removeEventListener("touchstart",dS,vS),e.removeEventListener("touchmove",fS,vS)))}}),[r]);return(0,i.useEffect)((function(){if(t){var e=a.current;return s(e),function(){u(e)}}}),[t,s,u]),function(e){a.current=e}}({isEnabled:n});return ux(i.Fragment,null,n&&ux("div",{onClick:mS,css:yS}),t((function(e){o(e),a(e)})))}var wS={name:"1a0ro4n-requiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"},xS=function(e){var t=e.name,n=e.onFocus;return ux("input",{required:!0,name:t,tabIndex:-1,"aria-hidden":"true",onFocus:n,css:wS,value:"",onChange:function(){}})},_S={clearIndicator:S_,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":void 0,pointerEvents:t?"none":void 0,position:"relative"}},control:function(e,t){var n=e.isDisabled,r=e.isFocused,o=e.theme,i=o.colors,a=o.borderRadius;return Ul({label:"control",alignItems:"center",cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:o.spacing.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms"},t?{}:{backgroundColor:n?i.neutral5:i.neutral0,borderColor:n?i.neutral10:r?i.primary:i.neutral20,borderRadius:a,borderStyle:"solid",borderWidth:1,boxShadow:r?"0 0 0 1px ".concat(i.primary):void 0,"&:hover":{borderColor:r?i.primary:i.neutral30}})},dropdownIndicator:__,group:function(e,t){var n=e.theme.spacing;return t?{}:{paddingBottom:2*n.baseUnit,paddingTop:2*n.baseUnit}},groupHeading:function(e,t){var n=e.theme,r=n.colors,o=n.spacing;return Ul({label:"group",cursor:"default",display:"block"},t?{}:{color:r.neutral40,fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:3*o.baseUnit,paddingRight:3*o.baseUnit,textTransform:"uppercase"})},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e,t){var n=e.isDisabled,r=e.theme,o=r.spacing.baseUnit,i=r.colors;return Ul({label:"indicatorSeparator",alignSelf:"stretch",width:1},t?{}:{backgroundColor:n?i.neutral10:i.neutral20,marginBottom:2*o,marginTop:2*o})},input:function(e,t){var n=e.isDisabled,r=e.value,o=e.theme,i=o.spacing,a=o.colors;return Ul(Ul({visibility:n?"hidden":"visible",transform:r?"translateZ(0)":""},T_),t?{}:{margin:i.baseUnit/2,paddingBottom:i.baseUnit/2,paddingTop:i.baseUnit/2,color:a.neutral80})},loadingIndicator:function(e,t){var n=e.isFocused,r=e.size,o=e.theme,i=o.colors,a=o.spacing.baseUnit;return Ul({label:"loadingIndicator",display:"flex",transition:"color 150ms",alignSelf:"center",fontSize:r,lineHeight:1,marginRight:r,textAlign:"center",verticalAlign:"middle"},t?{}:{color:n?i.neutral60:i.neutral20,padding:2*a})},loadingMessage:c_,menu:function(e,t){var n,r=e.placement,o=e.theme,i=o.borderRadius,a=o.spacing,s=o.colors;return Ul((n={label:"menu"},(0,Vl.Z)(n,function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(r),"100%"),(0,Vl.Z)(n,"position","absolute"),(0,Vl.Z)(n,"width","100%"),(0,Vl.Z)(n,"zIndex",1),n),t?{}:{backgroundColor:s.neutral0,borderRadius:i,boxShadow:"0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",marginBottom:a.menuGutter,marginTop:a.menuGutter})},menuList:function(e,t){var n=e.maxHeight,r=e.theme.spacing.baseUnit;return Ul({maxHeight:n,overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},t?{}:{paddingBottom:r,paddingTop:r})},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e,t){var n=e.theme,r=n.spacing,o=n.borderRadius,i=n.colors;return Ul({label:"multiValue",display:"flex",minWidth:0},t?{}:{backgroundColor:i.neutral10,borderRadius:o/2,margin:r.baseUnit/2})},multiValueLabel:function(e,t){var n=e.theme,r=n.borderRadius,o=n.colors,i=e.cropWithEllipsis;return Ul({overflow:"hidden",textOverflow:i||void 0===i?"ellipsis":void 0,whiteSpace:"nowrap"},t?{}:{borderRadius:r/2,color:o.neutral80,fontSize:"85%",padding:3,paddingLeft:6})},multiValueRemove:function(e,t){var n=e.theme,r=n.spacing,o=n.borderRadius,i=n.colors,a=e.isFocused;return Ul({alignItems:"center",display:"flex"},t?{}:{borderRadius:o/2,backgroundColor:a?i.dangerLight:void 0,paddingLeft:r.baseUnit,paddingRight:r.baseUnit,":hover":{backgroundColor:i.dangerLight,color:i.danger}})},noOptionsMessage:l_,option:function(e,t){var n=e.isDisabled,r=e.isFocused,o=e.isSelected,i=e.theme,a=i.spacing,s=i.colors;return Ul({label:"option",cursor:"default",display:"block",fontSize:"inherit",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)"},t?{}:{backgroundColor:o?s.primary:r?s.primary25:"transparent",color:n?s.neutral20:o?s.neutral0:"inherit",padding:"".concat(2*a.baseUnit,"px ").concat(3*a.baseUnit,"px"),":active":{backgroundColor:n?void 0:o?s.primary:s.primary50}})},placeholder:function(e,t){var n=e.theme,r=n.spacing,o=n.colors;return Ul({label:"placeholder",gridArea:"1 / 1 / 2 / 3"},t?{}:{color:o.neutral50,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2})},singleValue:function(e,t){var n=e.isDisabled,r=e.theme,o=r.spacing,i=r.colors;return Ul({label:"singleValue",gridArea:"1 / 1 / 2 / 3",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},t?{}:{color:n?i.neutral40:i.neutral80,marginLeft:o.baseUnit/2,marginRight:o.baseUnit/2})},valueContainer:function(e,t){var n=e.theme.spacing,r=e.isMulti,o=e.hasValue,i=e.selectProps.controlShouldRenderValue;return Ul({alignItems:"center",display:r&&o&&i?"flex":"grid",flex:1,flexWrap:"wrap",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"},t?{}:{padding:"".concat(n.baseUnit/2,"px ").concat(2*n.baseUnit,"px")})}};var SS={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},OS={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:Xx(),captureMenuScroll:!Xx(),classNames:{},closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e){return function(t,n){if(t.data.__isNew__)return!0;var r=Ul({ignoreCase:!0,ignoreAccents:!0,stringify:oS,trim:!0,matchFrom:"any"},e),o=r.ignoreCase,i=r.ignoreAccents,a=r.stringify,s=r.trim,u=r.matchFrom,l=s?rS(n):n,c=s?rS(a(t)):a(t);return o&&(l=l.toLowerCase(),c=c.toLowerCase()),i&&(l=nS(l),c=tS(c)),"start"===u?c.substr(0,l.length)===l:c.indexOf(l)>-1}}(),formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0,unstyled:!1};function CS(e,t,n,r){return{type:"option",data:t,isDisabled:RS(e,t,n),isSelected:TS(e,t,n),label:kS(e,t),value:PS(e,t),index:r}}function ES(e,t){return e.options.map((function(n,r){if("options"in n){var o=n.options.map((function(n,r){return CS(e,n,t,r)})).filter((function(t){return MS(e,t)}));return o.length>0?{type:"group",data:n,options:o,index:r}:void 0}var i=CS(e,n,t,r);return MS(e,i)?i:void 0})).filter(t_)}function AS(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,(0,V_.Z)(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function MS(e,t){var n=e.inputValue,r=void 0===n?"":n,o=t.data,i=t.isSelected,a=t.label,s=t.value;return(!BS(e)||!i)&&IS(e,{label:a,value:s,data:o},r)}var kS=function(e,t){return e.getOptionLabel(t)},PS=function(e,t){return e.getOptionValue(t)};function RS(e,t,n){return"function"===typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function TS(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"===typeof e.isOptionSelected)return e.isOptionSelected(t,n);var r=PS(e,t);return n.some((function(t){return PS(e,t)===r}))}function IS(e,t,n){return!e.filterOption||e.filterOption(t,n)}var BS=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},DS=1,jS=function(e){(0,F_.Z)(n,e);var t=(0,H_.Z)(n);function n(e){var r;if((0,Z_.Z)(this,n),(r=t.call(this,e)).state={ariaSelection:null,focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},r.blockOptionHover=!1,r.isComposing=!1,r.commonProps=void 0,r.initialTouchX=0,r.initialTouchY=0,r.instancePrefix="",r.openAfterFocus=!1,r.scrollToFocusedOptionOnUpdate=!1,r.userIsDragging=void 0,r.controlRef=null,r.getControlRef=function(e){r.controlRef=e},r.focusedOptionRef=null,r.getFocusedOptionRef=function(e){r.focusedOptionRef=e},r.menuListRef=null,r.getMenuListRef=function(e){r.menuListRef=e},r.inputRef=null,r.getInputRef=function(e){r.inputRef=e},r.focus=r.focusInput,r.blur=r.blurInput,r.onChange=function(e,t){var n=r.props,o=n.onChange,i=n.name;t.name=i,r.ariaOnChange(e,t),o(e,t)},r.setValue=function(e,t,n){var o=r.props,i=o.closeMenuOnSelect,a=o.isMulti,s=o.inputValue;r.onInputChange("",{action:"set-value",prevInputValue:s}),i&&(r.setState({inputIsHiddenAfterUpdate:!a}),r.onMenuClose()),r.setState({clearFocusValueOnUpdate:!0}),r.onChange(e,{action:t,option:n})},r.selectOption=function(e){var t=r.props,n=t.blurInputOnSelect,o=t.isMulti,i=t.name,a=r.state.selectValue,s=o&&r.isOptionSelected(e,a),u=r.isOptionDisabled(e,a);if(s){var l=r.getOptionValue(e);r.setValue(a.filter((function(e){return r.getOptionValue(e)!==l})),"deselect-option",e)}else{if(u)return void r.ariaOnChange(e,{action:"select-option",option:e,name:i});o?r.setValue([].concat((0,V_.Z)(a),[e]),"select-option",e):r.setValue(e,"select-option")}n&&r.blurInput()},r.removeValue=function(e){var t=r.props.isMulti,n=r.state.selectValue,o=r.getOptionValue(e),i=n.filter((function(e){return r.getOptionValue(e)!==o})),a=n_(t,i,i[0]||null);r.onChange(a,{action:"remove-value",removedValue:e}),r.focusInput()},r.clearValue=function(){var e=r.state.selectValue;r.onChange(n_(r.props.isMulti,[],null),{action:"clear",removedValues:e})},r.popValue=function(){var e=r.props.isMulti,t=r.state.selectValue,n=t[t.length-1],o=t.slice(0,t.length-1),i=n_(e,o,o[0]||null);r.onChange(i,{action:"pop-value",removedValue:n})},r.getValue=function(){return r.state.selectValue},r.cx=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Hx.apply(void 0,[r.props.classNamePrefix].concat(t))},r.getOptionLabel=function(e){return kS(r.props,e)},r.getOptionValue=function(e){return PS(r.props,e)},r.getStyles=function(e,t){var n=r.props.unstyled,o=_S[e](t,n);o.boxSizing="border-box";var i=r.props.styles[e];return i?i(o,t):o},r.getClassNames=function(e,t){var n,o;return null===(n=(o=r.props.classNames)[e])||void 0===n?void 0:n.call(o,t)},r.getElementId=function(e){return"".concat(r.instancePrefix,"-").concat(e)},r.getComponents=function(){return e=r.props,Ul(Ul({},j_),e.components);var e},r.buildCategorizedOptions=function(){return ES(r.props,r.state.selectValue)},r.getCategorizedOptions=function(){return r.props.menuIsOpen?r.buildCategorizedOptions():[]},r.buildFocusableOptions=function(){return AS(r.buildCategorizedOptions())},r.getFocusableOptions=function(){return r.props.menuIsOpen?r.buildFocusableOptions():[]},r.ariaOnChange=function(e,t){r.setState({ariaSelection:Ul({value:e},t)})},r.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),r.focusInput())},r.onMenuMouseMove=function(e){r.blockOptionHover=!1},r.onControlMouseDown=function(e){if(!e.defaultPrevented){var t=r.props.openMenuOnClick;r.state.isFocused?r.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&r.onMenuClose():t&&r.openMenu("first"):(t&&(r.openAfterFocus=!0),r.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()}},r.onDropdownIndicatorMouseDown=function(e){if((!e||"mousedown"!==e.type||0===e.button)&&!r.props.isDisabled){var t=r.props,n=t.isMulti,o=t.menuIsOpen;r.focusInput(),o?(r.setState({inputIsHiddenAfterUpdate:!n}),r.onMenuClose()):r.openMenu("first"),e.preventDefault()}},r.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(r.clearValue(),e.preventDefault(),r.openAfterFocus=!1,"touchend"===e.type?r.focusInput():setTimeout((function(){return r.focusInput()})))},r.onScroll=function(e){"boolean"===typeof r.props.closeMenuOnScroll?e.target instanceof HTMLElement&&Gx(e.target)&&r.props.onMenuClose():"function"===typeof r.props.closeMenuOnScroll&&r.props.closeMenuOnScroll(e)&&r.props.onMenuClose()},r.onCompositionStart=function(){r.isComposing=!0},r.onCompositionEnd=function(){r.isComposing=!1},r.onTouchStart=function(e){var t=e.touches,n=t&&t.item(0);n&&(r.initialTouchX=n.clientX,r.initialTouchY=n.clientY,r.userIsDragging=!1)},r.onTouchMove=function(e){var t=e.touches,n=t&&t.item(0);if(n){var o=Math.abs(n.clientX-r.initialTouchX),i=Math.abs(n.clientY-r.initialTouchY);r.userIsDragging=o>5||i>5}},r.onTouchEnd=function(e){r.userIsDragging||(r.controlRef&&!r.controlRef.contains(e.target)&&r.menuListRef&&!r.menuListRef.contains(e.target)&&r.blurInput(),r.initialTouchX=0,r.initialTouchY=0)},r.onControlTouchEnd=function(e){r.userIsDragging||r.onControlMouseDown(e)},r.onClearIndicatorTouchEnd=function(e){r.userIsDragging||r.onClearIndicatorMouseDown(e)},r.onDropdownIndicatorTouchEnd=function(e){r.userIsDragging||r.onDropdownIndicatorMouseDown(e)},r.handleInputChange=function(e){var t=r.props.inputValue,n=e.currentTarget.value;r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange(n,{action:"input-change",prevInputValue:t}),r.props.menuIsOpen||r.onMenuOpen()},r.onInputFocus=function(e){r.props.onFocus&&r.props.onFocus(e),r.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(r.openAfterFocus||r.props.openMenuOnFocus)&&r.openMenu("first"),r.openAfterFocus=!1},r.onInputBlur=function(e){var t=r.props.inputValue;r.menuListRef&&r.menuListRef.contains(document.activeElement)?r.inputRef.focus():(r.props.onBlur&&r.props.onBlur(e),r.onInputChange("",{action:"input-blur",prevInputValue:t}),r.onMenuClose(),r.setState({focusedValue:null,isFocused:!1}))},r.onOptionHover=function(e){r.blockOptionHover||r.state.focusedOption===e||r.setState({focusedOption:e})},r.shouldHideSelectedOptions=function(){return BS(r.props)},r.onValueInputFocus=function(e){e.preventDefault(),e.stopPropagation(),r.focus()},r.onKeyDown=function(e){var t=r.props,n=t.isMulti,o=t.backspaceRemovesValue,i=t.escapeClearsValue,a=t.inputValue,s=t.isClearable,u=t.isDisabled,l=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,d=t.openMenuOnFocus,p=r.state,h=p.focusedOption,g=p.focusedValue,v=p.selectValue;if(!u&&("function"!==typeof c||(c(e),!e.defaultPrevented))){switch(r.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||a)return;r.focusValue("previous");break;case"ArrowRight":if(!n||a)return;r.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(g)r.removeValue(g);else{if(!o)return;n?r.popValue():s&&r.clearValue()}break;case"Tab":if(r.isComposing)return;if(e.shiftKey||!l||!f||!h||d&&r.isOptionSelected(h,v))return;r.selectOption(h);break;case"Enter":if(229===e.keyCode)break;if(l){if(!h)return;if(r.isComposing)return;r.selectOption(h);break}return;case"Escape":l?(r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange("",{action:"menu-close",prevInputValue:a}),r.onMenuClose()):s&&i&&r.clearValue();break;case" ":if(a)return;if(!l){r.openMenu("first");break}if(!h)return;r.selectOption(h);break;case"ArrowUp":l?r.focusOption("up"):r.openMenu("last");break;case"ArrowDown":l?r.focusOption("down"):r.openMenu("first");break;case"PageUp":if(!l)return;r.focusOption("pageup");break;case"PageDown":if(!l)return;r.focusOption("pagedown");break;case"Home":if(!l)return;r.focusOption("first");break;case"End":if(!l)return;r.focusOption("last");break;default:return}e.preventDefault()}},r.instancePrefix="react-select-"+(r.props.instanceId||++DS),r.state.selectValue=Vx(e.value),e.menuIsOpen&&r.state.selectValue.length){var o=r.buildFocusableOptions(),i=o.indexOf(r.state.selectValue[0]);r.state.focusedOption=o[i]}return r}return(0,N_.Z)(n,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput(),this.props.menuIsOpen&&this.state.focusedOption&&this.menuListRef&&this.focusedOptionRef&&Yx(this.menuListRef,this.focusedOptionRef)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isDisabled,r=t.menuIsOpen,o=this.state.isFocused;(o&&!n&&e.isDisabled||o&&r&&!e.menuIsOpen)&&this.focusInput(),o&&n&&!e.isDisabled?this.setState({isFocused:!1},this.onMenuClose):o||n||!e.isDisabled||this.inputRef!==document.activeElement||this.setState({isFocused:!0}),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(Yx(this.menuListRef,this.focusedOptionRef),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){this.onInputChange("",{action:"menu-close",prevInputValue:this.props.inputValue}),this.props.onMenuClose()}},{key:"onInputChange",value:function(e,t){this.props.onInputChange(e,t)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(e){var t=this,n=this.state,r=n.selectValue,o=n.isFocused,i=this.buildFocusableOptions(),a="first"===e?0:i.length-1;if(!this.props.isMulti){var s=i.indexOf(r[0]);s>-1&&(a=s)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:i[a]},(function(){return t.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t=this.state,n=t.selectValue,r=t.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var o=n.indexOf(r);r||(o=-1);var i=n.length-1,a=-1;if(n.length){switch(e){case"previous":a=0===o?0:-1===o?i:o-1;break;case"next":o>-1&&o<i&&(a=o+1)}this.setState({inputIsHidden:-1!==a,focusedValue:n[a]})}}}},{key:"focusOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state.focusedOption,r=this.getFocusableOptions();if(r.length){var o=0,i=r.indexOf(n);n||(i=-1),"up"===e?o=i>0?i-1:r.length-1:"down"===e?o=(i+1)%r.length:"pageup"===e?(o=i-t)<0&&(o=0):"pagedown"===e?(o=i+t)>r.length-1&&(o=r.length-1):"last"===e&&(o=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[o],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?"function"===typeof this.props.theme?this.props.theme(SS):Ul(Ul({},SS),this.props.theme):SS}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getClassNames,o=this.getValue,i=this.selectOption,a=this.setValue,s=this.props,u=s.isMulti,l=s.isRtl,c=s.options;return{clearValue:e,cx:t,getStyles:n,getClassNames:r,getValue:o,hasValue:this.hasValue(),isMulti:u,isRtl:l,options:c,selectOption:i,selectProps:s,setValue:a,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return RS(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return TS(this.props,e,t)}},{key:"filterOption",value:function(e,t){return IS(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"===typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,o=e.inputValue,a=e.tabIndex,s=e.form,l=e.menuIsOpen,c=e.required,f=this.getComponents().Input,d=this.state,p=d.inputIsHidden,h=d.ariaSelection,g=this.commonProps,v=r||this.getElementId("input"),m=Ul(Ul(Ul({"aria-autocomplete":"list","aria-expanded":l,"aria-haspopup":!0,"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-required":c,role:"combobox"},l&&{"aria-controls":this.getElementId("listbox"),"aria-owns":this.getElementId("listbox")}),!n&&{"aria-readonly":!0}),this.hasValue()?"initial-input-focus"===(null===h||void 0===h?void 0:h.action)&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return n?i.createElement(f,(0,u.Z)({},g,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:v,innerRef:this.getInputRef,isDisabled:t,isHidden:p,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:a,form:s,type:"text",value:o},m)):i.createElement(aS,(0,u.Z)({id:v,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:Nx,onFocus:this.onInputFocus,disabled:t,tabIndex:a,inputMode:"none",form:s,value:""},m))}},{key:"renderPlaceholderOrValue",value:function(){var e=this,t=this.getComponents(),n=t.MultiValue,r=t.MultiValueContainer,o=t.MultiValueLabel,a=t.MultiValueRemove,s=t.SingleValue,l=t.Placeholder,c=this.commonProps,f=this.props,d=f.controlShouldRenderValue,p=f.isDisabled,h=f.isMulti,g=f.inputValue,v=f.placeholder,m=this.state,y=m.selectValue,b=m.focusedValue,w=m.isFocused;if(!this.hasValue()||!d)return g?null:i.createElement(l,(0,u.Z)({},c,{key:"placeholder",isDisabled:p,isFocused:w,innerProps:{id:this.getElementId("placeholder")}}),v);if(h)return y.map((function(t,s){var l=t===b,f="".concat(e.getOptionLabel(t),"-").concat(e.getOptionValue(t));return i.createElement(n,(0,u.Z)({},c,{components:{Container:r,Label:o,Remove:a},isFocused:l,isDisabled:p,key:f,index:s,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault()}},data:t}),e.formatOptionLabel(t,"value"))}));if(g)return null;var x=y[0];return i.createElement(s,(0,u.Z)({},c,{data:x,isDisabled:p}),this.formatOptionLabel(x,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.getComponents().ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,a=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||o)return null;var s={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return i.createElement(e,(0,u.Z)({},t,{innerProps:s,isFocused:a}))}},{key:"renderLoadingIndicator",value:function(){var e=this.getComponents().LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,a=this.state.isFocused;if(!e||!o)return null;return i.createElement(e,(0,u.Z)({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:a}))}},{key:"renderIndicatorSeparator",value:function(){var e=this.getComponents(),t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,o=this.props.isDisabled,a=this.state.isFocused;return i.createElement(n,(0,u.Z)({},r,{isDisabled:o,isFocused:a}))}},{key:"renderDropdownIndicator",value:function(){var e=this.getComponents().DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,o={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return i.createElement(e,(0,u.Z)({},t,{innerProps:o,isDisabled:n,isFocused:r}))}},{key:"renderMenu",value:function(){var e=this,t=this.getComponents(),n=t.Group,r=t.GroupHeading,o=t.Menu,a=t.MenuList,s=t.MenuPortal,l=t.LoadingMessage,c=t.NoOptionsMessage,f=t.Option,d=this.commonProps,p=this.state.focusedOption,h=this.props,g=h.captureMenuScroll,v=h.inputValue,m=h.isLoading,y=h.loadingMessage,b=h.minMenuHeight,w=h.maxMenuHeight,x=h.menuIsOpen,_=h.menuPlacement,S=h.menuPosition,O=h.menuPortalTarget,C=h.menuShouldBlockScroll,E=h.menuShouldScrollIntoView,A=h.noOptionsMessage,M=h.onMenuScrollToTop,k=h.onMenuScrollToBottom;if(!x)return null;var P,R=function(t,n){var r=t.type,o=t.data,a=t.isDisabled,s=t.isSelected,l=t.label,c=t.value,h=p===o,g=a?void 0:function(){return e.onOptionHover(o)},v=a?void 0:function(){return e.selectOption(o)},m="".concat(e.getElementId("option"),"-").concat(n),y={id:m,onClick:v,onMouseMove:g,onMouseOver:g,tabIndex:-1};return i.createElement(f,(0,u.Z)({},d,{innerProps:y,data:o,isDisabled:a,isSelected:s,key:m,label:l,type:r,value:c,isFocused:h,innerRef:h?e.getFocusedOptionRef:void 0}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())P=this.getCategorizedOptions().map((function(t){if("group"===t.type){var o=t.data,a=t.options,s=t.index,l="".concat(e.getElementId("group"),"-").concat(s),c="".concat(l,"-heading");return i.createElement(n,(0,u.Z)({},d,{key:l,data:o,options:a,Heading:r,headingProps:{id:c,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return R(e,"".concat(s,"-").concat(e.index))})))}if("option"===t.type)return R(t,"".concat(t.index))}));else if(m){var T=y({inputValue:v});if(null===T)return null;P=i.createElement(l,d,T)}else{var I=A({inputValue:v});if(null===I)return null;P=i.createElement(c,d,I)}var B={minMenuHeight:b,maxMenuHeight:w,menuPlacement:_,menuPosition:S,menuShouldScrollIntoView:E},D=i.createElement(a_,(0,u.Z)({},d,B),(function(t){var n=t.ref,r=t.placerProps,s=r.placement,l=r.maxHeight;return i.createElement(o,(0,u.Z)({},d,B,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove,id:e.getElementId("listbox")},isLoading:m,placement:s}),i.createElement(bS,{captureEnabled:g,onTopArrive:M,onBottomArrive:k,lockEnabled:C},(function(t){return i.createElement(a,(0,u.Z)({},d,{innerRef:function(n){e.getMenuListRef(n),t(n)},isLoading:m,maxHeight:l,focusedOption:p}),P)})))}));return O||"fixed"===S?i.createElement(s,(0,u.Z)({},d,{appendTo:O,controlElement:this.controlRef,menuPlacement:_,menuPosition:S}),D):D}},{key:"renderFormField",value:function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,o=t.isMulti,a=t.name,s=t.required,u=this.state.selectValue;if(s&&!this.hasValue()&&!r)return i.createElement(xS,{name:a,onFocus:this.onValueInputFocus});if(a&&!r){if(o){if(n){var l=u.map((function(t){return e.getOptionValue(t)})).join(n);return i.createElement("input",{name:a,type:"hidden",value:l})}var c=u.length>0?u.map((function(t,n){return i.createElement("input",{key:"i-".concat(n),name:a,type:"hidden",value:e.getOptionValue(t)})})):i.createElement("input",{name:a,type:"hidden",value:""});return i.createElement("div",null,c)}var f=u[0]?this.getOptionValue(u[0]):"";return i.createElement("input",{name:a,type:"hidden",value:f})}}},{key:"renderLiveRegion",value:function(){var e=this.commonProps,t=this.state,n=t.ariaSelection,r=t.focusedOption,o=t.focusedValue,a=t.isFocused,s=t.selectValue,l=this.getFocusableOptions();return i.createElement(q_,(0,u.Z)({},e,{id:this.getElementId("live-region"),ariaSelection:n,focusedOption:r,focusedValue:o,isFocused:a,selectValue:s,focusableOptions:l}))}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,o=e.ValueContainer,a=this.props,s=a.className,l=a.id,c=a.isDisabled,f=a.menuIsOpen,d=this.state.isFocused,p=this.commonProps=this.getCommonProps();return i.createElement(r,(0,u.Z)({},p,{className:s,innerProps:{id:l,onKeyDown:this.onKeyDown},isDisabled:c,isFocused:d}),this.renderLiveRegion(),i.createElement(t,(0,u.Z)({},p,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:c,isFocused:d,menuIsOpen:f}),i.createElement(o,(0,u.Z)({},p,{isDisabled:c}),this.renderPlaceholderOrValue(),this.renderInput()),i.createElement(n,(0,u.Z)({},p,{isDisabled:c}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.clearFocusValueOnUpdate,o=t.inputIsHiddenAfterUpdate,i=t.ariaSelection,a=t.isFocused,s=t.prevWasFocused,u=e.options,l=e.value,c=e.menuIsOpen,f=e.inputValue,d=e.isMulti,p=Vx(l),h={};if(n&&(l!==n.value||u!==n.options||c!==n.menuIsOpen||f!==n.inputValue)){var g=c?function(e,t){return AS(ES(e,t))}(e,p):[],v=r?function(e,t){var n=e.focusedValue,r=e.selectValue.indexOf(n);if(r>-1){if(t.indexOf(n)>-1)return n;if(r<t.length)return t[r]}return null}(t,p):null,m=function(e,t){var n=e.focusedOption;return n&&t.indexOf(n)>-1?n:t[0]}(t,g);h={selectValue:p,focusedOption:m,focusedValue:v,clearFocusValueOnUpdate:!1}}var y=null!=o&&e!==n?{inputIsHidden:o,inputIsHiddenAfterUpdate:void 0}:{},b=i,w=a&&s;return a&&!w&&(b={value:n_(d,p,p[0]||null),options:p,action:"initial-input-focus"},w=!s),"initial-input-focus"===(null===i||void 0===i?void 0:i.action)&&(b=null),Ul(Ul(Ul({},h),y),{},{prevProps:e,ariaSelection:b,prevWasFocused:w})}}]),n}(i.Component);jS.defaultProps=OS;var LS,ZS,NS,FS=(0,i.forwardRef)((function(e,t){var n=function(e){var t=e.defaultInputValue,n=void 0===t?"":t,r=e.defaultMenuIsOpen,o=void 0!==r&&r,a=e.defaultValue,s=void 0===a?null:a,u=e.inputValue,l=e.menuIsOpen,c=e.onChange,f=e.onInputChange,d=e.onMenuClose,p=e.onMenuOpen,h=e.value,g=(0,fx.Z)(e,L_),v=(0,i.useState)(void 0!==u?u:n),m=(0,cx.Z)(v,2),y=m[0],b=m[1],w=(0,i.useState)(void 0!==l?l:o),x=(0,cx.Z)(w,2),_=x[0],S=x[1],O=(0,i.useState)(void 0!==h?h:s),C=(0,cx.Z)(O,2),E=C[0],A=C[1],M=(0,i.useCallback)((function(e,t){"function"===typeof c&&c(e,t),A(e)}),[c]),k=(0,i.useCallback)((function(e,t){var n;"function"===typeof f&&(n=f(e,t)),b(void 0!==n?n:e)}),[f]),P=(0,i.useCallback)((function(){"function"===typeof p&&p(),S(!0)}),[p]),R=(0,i.useCallback)((function(){"function"===typeof d&&d(),S(!1)}),[d]),T=void 0!==u?u:y,I=void 0!==l?l:_,B=void 0!==h?h:E;return Ul(Ul({},g),{},{inputValue:T,menuIsOpen:I,onChange:M,onInputChange:k,onMenuClose:R,onMenuOpen:P,value:B})}(e);return i.createElement(jS,(0,u.Z)({ref:t},n))})),HS=FS,VS=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},zS=function(){return zS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},zS.apply(this,arguments)},US=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},GS=function(e,t){var n=e.selectProps,r=n["data-ga"],o=n["data-testid"];return{"data-ga":(0,i.useMemo)((function(){if(!r)return r;var e=r.split("::");return e[1]?(e[1]="".concat(e[1],"-").concat(t),e.join("::")):r}),[r]),"data-testid":"".concat(o||"").concat(t)}},WS=function(e,t){return function(n){var r=GS(n,t);return i.createElement(e,zS({},n,{innerProps:zS(zS({},n.innerProps||{}),r)}))}},$S=zS(zS({},j_),{ClearIndicator:WS(j_.ClearIndicator,"ClearIndicator"),Control:WS(j_.Control,"Control"),DropdownIndicator:WS(j_.DropdownIndicator,"DropdownIndicator"),DownChevron:WS(j_.DownChevron,"DownChevron"),CrossIcon:WS(j_.CrossIcon,"CrossIcon"),Group:WS(j_.Group,"Group"),GroupHeading:WS(j_.GroupHeading,"GroupHeading"),IndicatorsContainer:WS(j_.IndicatorsContainer,"IndicatorsContainer"),IndicatorSeparator:WS(j_.IndicatorSeparator,"IndicatorSeparator"),Input:(LS=j_.Input,ZS="Input",function(e){var t=GS(e,ZS);return i.createElement(LS,zS({},e,t))}),LoadingIndicator:WS(j_.LoadingIndicator,"LoadingIndicator"),Menu:WS(j_.Menu,"Menu"),MenuList:WS(j_.MenuList,"MenuList"),MenuPortal:WS(j_.MenuPortal,"MenuPortal"),LoadingMessage:WS(j_.LoadingMessage,"LoadingMessage"),MultiValue:WS(j_.MultiValue,"MultiValue"),MultiValueContainer:WS(j_.MultiValueContainer,"MultiValueContainer"),MultiValueLabel:WS(j_.MultiValueLabel,"MultiValueLabel"),MultiValueRemove:WS(j_.MultiValueRemove,"MultiValueRemove"),NoOptionsMessage:WS(j_.NoOptionsMessage,"NoOptionsMessage"),Option:WS(j_.Option,"Option"),Placeholder:WS(j_.Placeholder,"Placeholder"),SelectContainer:WS(j_.SelectContainer,"SelectContainer"),SingleValue:WS(j_.SingleValue,"SingleValue"),ValueContainer:WS(j_.ValueContainer,"ValueContainer")}),qS=function(e,t){return t.isDisabled?e.colors.placeholder:t.isSelected?e.colors.bright:e.colors.textDescription},YS=function(e,t){void 0===t&&(t={});var n=t.minWidth,r=t.size,o=US(t,["minWidth","size"]);return zS(zS({control:function(t,r){return zS(zS({},t),{borderColor:r.isFocused?e.colors.inputBorderFocus:e.colors.inputBorder,boxShadow:"none",minHeight:18,minWidth:n||160,":hover":{borderColor:e.colors.inputBorderHover}})},input:function(t,n){return zS(zS(zS({},t),{color:n.isDisabled?e.colors.placeholder:e.colors.textDescription}),"tiny"===r?{lineHeight:"18px",paddingBottom:0,paddingTop:0}:{})},menu:function(e){return zS(zS({},e),{zIndex:100})},menuPortal:function(e){return zS(zS({},e),{zIndex:9999})},multiValue:function(e){return zS(zS(zS({},e),{fontSize:"tiny"===r?"12px":"14px",flexDirection:"row-reverse"}),"tiny"===r?{minHeight:18}:{})},multiValueLabel:function(t,n){return zS(zS(zS(zS({},t),{backgroundColor:e.colors.disabled,borderRadius:"0 2px 2px 0",color:n.isDisabled?e.colors.placeholder:e.colors.textDescription}),"tiny"===r?{padding:"1px"}:{}),{paddingRight:n.data.isDisabled?"8px":""})},multiValueRemove:function(t,n){return zS({color:n.isDisabled?e.colors.placeholder:e.colors.textDescription},n.data.isDisabled?zS(zS({},t),{display:"none"}):zS(zS({},t),{borderRadius:"2px 0 0 2px",background:e.colors.disabled,":hover":{background:e.colors.tabsBorder}}))},option:function(t,n){return zS(zS(zS({},t),{color:qS(e,n)}),"tiny"===r?{fontSize:"12px",minHeight:28,padding:"4px 8px"}:{})},placeholder:function(t){return zS(zS(zS({},t),{color:e.colors.placeholder}),"tiny"===r?{fontSize:"12px",lineHeight:"18px"}:{})},singleValue:function(t,n){return zS(zS({},t),{color:n.isDisabled?e.colors.placeholder:e.colors.textDescription,fontSize:"tiny"===r?"12px":"14px"})}},"tiny"===r?{dropdownIndicator:function(e){return zS(zS({},e),{padding:"3px"})},clearIndicator:function(e){return zS(zS({},e),{padding:"3px"})},indicatorsContainer:function(e){return zS(zS({},e),{minHeight:18})},valueContainer:function(e){return zS(zS({},e),{minHeight:18,padding:"1px 6px"})}}:{dropdownIndicator:function(e){return zS(zS({},e),{padding:"3px"})},clearIndicator:function(e){return zS(zS({},e),{padding:"3px"})},indicatorsContainer:function(e){return zS(zS({},e),{minHeight:28})},valueContainer:function(e){return zS(zS({},e),{minHeight:28,padding:"1px 6px"})}}),o)},XS=(0,s.default)(HS).attrs((function(e){return zS(zS({},e),{components:zS(zS({},$S),e.components),theme:(t=e.theme,function(e){return zS(zS({},e),{borderRadius:4,colors:zS(zS({},e.colors),{primary:t.colors.border,primary25:t.colors.selected,primary50:t.colors.border,primary75:t.colors.tooltip,danger:t.colors.text,dangerLight:t.colors.border,neutral0:t.colors.mainBackground,neutral5:t.colors.mainBackgroundDisabled,neutral30:t.colors.controlFocused,neutral60:t.colors.border,neutral80:t.colors.text,neutral10:t.colors.border,neutral20:t.colors.border})})}),styles:YS(e.theme,e.styles)});var t}))(NS||(NS=VS([""],[""]))),KS=function(){return KS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},KS.apply(this,arguments)},JS=function(e){var t=e["data-ga"],n=e["data-testid"],r=e.onChange,o=e.value,a=e.options,s=e.isMulti,u=e.styles;return i.createElement(XS,{"data-testid":n,"data-ga":t,isMulti:s,options:a,value:o,onChange:function(e){r(e)},styles:KS({size:"tiny"},u||{})})},QS=[{value:"all",label:"All"},{value:"gt",label:"Greater than"},{value:"eq",label:"Equal"},{value:"lt",label:"Less than"}],eO=function(e){var t=e.column,n=t.setFilterValue,r=(0,t.getFilterValue)();return(0,i.useEffect)((function(){n((function(e){return[QS[0],null===e||void 0===e?void 0:e[1]]}))}),[]),i.createElement(Se.default,{gap:2},i.createElement(JS,{value:r?r[0]:QS[0],options:QS,onChange:function(e){return n((function(t){return[e,null===t||void 0===t?void 0:t[1]]}))}}),i.createElement(Te.Z,{as:an.oi,width:{max:50},defaultValue:r?r[1]:null,onChange:(0,uv.D)(300,(function(e){e.persist(),n((function(t){return[null===t||void 0===t?void 0:t[0],e.target.value]}))})),pattern:"[0-9]*(.[0-9]+)?",inputMode:"decimal",size:"tiny"}))},tO=function(){return tO=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},tO.apply(this,arguments)},nO=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},rO=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},oO={value:"all",label:"All"},iO=function(e){var t=e.column,n=e.isMulti,r=void 0!==n&&n,o=e.options,a=void 0===o?[]:o,s=e.tiny,u=void 0===s||s,l=nO(e,["column","isMulti","options","tiny"]),c=t.setFilterValue,f=(0,t.getFilterValue)(),d=r?a:rO([oO],a,!0),p=r?f:d[0];return i.createElement(JS,tO({value:f||p,isMulti:r,options:d,onChange:function(e){return c(e)},styles:u&&{size:"tiny"}},l))},aO=n(37807),sO=function(){return sO=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},sO.apply(this,arguments)},uO=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},lO={comparison:eO,select:iO,default:function(e){var t=e.column,n=e.testPrefix,r=t.id,o=void 0===r?"":r,a=(0,uv.D)(300,(function(e){t.setFilterValue(e.target.value)}));return i.createElement(Te.Z,{"data-testid":"netdata-table-filter-".concat(o).concat(n),as:aO.Z,defaultValue:t.getFilterValue(),width:{max:50},placeholder:"Search...",iconRight:i.createElement(xe.JO,{color:"textLite",name:"magnify",height:"18px",width:"18px"}),onChange:a})}},cO=function(e){var t=e.enableResize,n=e.enableSorting,r=e.headers,o=e.pinnedStyles,a=void 0===o?{}:o,s=e.table,u=e.testPrefix,l=uO(e,["enableResize","enableSorting","headers","pinnedStyles","table","testPrefix"]);return r.map((function(e,r){var o,c,f=e.id,d=e.colSpan,p=e.getContext,h=e.isPlaceholder,g=e.column,v=e.getResizeHandler,m=e.getSize,y=g.getCanSort,b=g.columnDef,w=g.getCanResize,x=g.getIsResizing,_="function"===typeof b.tableMeta?b.tableMeta({},g,r):b.tableMeta,S="function"===typeof b.meta?b.meta({},g,r):b.meta,O=sO(sO(sO({verticalAlign:"baseline"},(null===_||void 0===_?void 0:_.headStyles)||{}),(null===S||void 0===S?void 0:S.headStyles)||{}),a),C=(null===S||void 0===S?void 0:S.styles)||{},E=S&&(null===(o=null===S||void 0===S?void 0:S.filter)||void 0===o?void 0:o.component)?null===(c=null===S||void 0===S?void 0:S.filter)||void 0===c?void 0:c.component:"default",A=S&&(null===S||void 0===S?void 0:S.filter)?null===S||void 0===S?void 0:S.filter:{},M=S&&(null===S||void 0===S?void 0:S.tooltip)?null===S||void 0===S?void 0:S.tooltip:"",k=lO[E],P=t&&w()?{onMouseDown:v(),onTouchStart:v(),getIsResizing:x,deltaOffset:s.getState().columnSizingInfo.deltaOffset}:{},R=m();return y()&&n?i.createElement(jb.SortingHeadCell,sO({colSpan:d,"data-testid":"netdata-table-head-cell".concat(u),filter:g.getCanFilter()&&i.createElement(k,sO({column:g,testPrefix:u},A)),headStyles:O,key:f,id:f,onSortClicked:g.getToggleSortingHandler(),"sortby-testid":"netdata-table-head-cell-sortyBy-".concat(f).concat(u),sortDirection:g.getIsSorted(),styles:C,tooltipText:M,width:R},P,l),h?null:$y(g.columnDef.header,p())," "):i.createElement(jb.HeadCell,sO({colSpan:d,"data-testid":"netdata-table-head-cell".concat(u),filter:g.getCanFilter()&&i.createElement(k,sO({column:g,testPrefix:u},A)),headStyles:O,key:f,id:f,styles:C,tooltipText:M,width:R},P,l),h?null:$y(g.columnDef.header,p()))}))},fO=n(71059),dO=function(){return dO=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},dO.apply(this,arguments)},pO=function(e){var t=e.coloredSortedColumn,n=e.disableClickRow,r=e.enableColumnPinning,o=e.getRowHandler,a=e.hoveredRow,s=e.onClickRow,u=e.onHover,l=e.pinnedStyles,c=e.row,f=e.side,d=e.table,p=e.testPrefix,h=e.testPrefixCallback,g=e.virtualRow,v=(0,i.useRef)(),m=c[o](),y=Ob(),b=y.rowsHeight,w=y.setRowHeight,x=b[g.index];return(0,i.useLayoutEffect)((function(){var e;if(r||["left","right"].includes(f)){var t=(null===(e=v.current)||void 0===e?void 0:e.clientHeight)||0;w({index:g.index,height:t})}}),[]),i.createElement(jb.Row,dO({key:g.key,"data-testid":"netdata-table-row".concat(p).concat(h?"-"+h(c.original):""),onClick:c.getCanExpand()&&!c.depth?void 0:s?function(){return s({data:c.original,table:d,fullRow:c})}:void 0,disableClickRow:function(){return null===n||void 0===n?void 0:n({data:c.original,table:d,fullRow:c})},ref:v},x?{height:"".concat(x,"px")}:{}),m.map((function(e,n){return i.createElement(jb.Cell,dO({"data-testid":"netdata-table-cell-".concat(e.column.columnDef.id).concat(p),key:e.column.columnDef.id,index:g.index,isRowExpandable:c.getCanExpand(),isRowHovering:c.id===a,meta:"function"===typeof e.column.columnDef.meta?e.column.columnDef.meta(c):e.column.columnDef.meta,onMouseEnter:function(){return u({row:c.id,column:e.column.id})},onMouseLeave:function(){return u()},pinnedStyles:n===m.length-1?l:{},row:c,cell:e,tableMeta:"function"===typeof e.column.columnDef.tableMeta?e.column.columnDef.tableMeta(c,e,n):e.column.columnDef.tableMeta,width:e.column.getSize()},e.column.getCanSort()&&t&&!!e.column.getIsSorted()&&{background:"columnHighlight",backgroundOpacity:g.index%2===0?"0.2":"0.4"},r?{cellHeight:"".concat(x,"px")}:{}),$y(e.column.columnDef.cell,e.getContext()))})))},hO=function(e){var t,n=e.disableClickRow,r=e.getRowHandler,o=void 0===r?"getCenterVisibleCells":r,a=e.onClickRow,s=e.pinnedStyles,u=e.table,l=e.testPrefix,c=e.testPrefixCallback,f=e.scrollParentRef,d=e.overscan,p=e.hasNextPage,h=e.loading,g=e.loadMore,v=e.coloredSortedColumn,m=e.meta,y=e.enableColumnPinning,b=e.side,w=Ob(),x=w.onHover,_=w.hoveredRow,S=u.getRowModel().rows,O=(0,fO.MG)({count:S.length,getScrollElement:function(){return f.current},estimateSize:function(){var e,t;return!!(null===(e=m.styles)||void 0===e?void 0:e.height)&&parseInt(m.styles.height)||!!(null===(t=m.cellStyles)||void 0===t?void 0:t.height)&&parseInt(m.cellStyles.height)||35},overscan:d||10}),C=O.getVirtualItems();(0,i.useEffect)((function(){if(g){var e=C[C.length-1];e&&e.index===S.length-1&&p&&!h&&g()}}),[C,h]);var E=C.length>0&&(null===(t=null===C||void 0===C?void 0:C[0])||void 0===t?void 0:t.start)||0,A=O.getTotalSize(),M=(0,i.useMemo)((function(){var e;return C.length>0?A-((null===(e=null===C||void 0===C?void 0:C[C.length-1])||void 0===e?void 0:e.end)||0):0}),[C.length]);return i.createElement(i.Fragment,null,E>0&&i.createElement("tr",null,i.createElement("td",{style:{height:"".concat(E,"px")}})),C.map((function(e){var t=S[e.index];return i.createElement(pO,{key:e.key,table:u,pinnedStyles:s,row:t,virtualRow:e,onClickRow:a,disableClickRow:n,testPrefix:l,testPrefixCallback:c,getRowHandler:o,onHover:x,coloredSortedColumn:v,hoveredRow:_,enableColumnPinning:y,side:b})})),M>0&&i.createElement("tr",null,i.createElement("td",{style:{height:"".concat(M,"px")}})))},gO=function(){return gO=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},gO.apply(this,arguments)},vO=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},mO=function(e){var t=e.dataGa,n=e.disableClickRow,r=e.enableResize,o=e.enableSorting,a=e.getRowHandler,s=e.headers,u=e.onClickRow,l=e.onHoverCell,c=e.pinnedStyles,f=void 0===c?{}:c,d=e.table,p=e.tableRef,h=e.testPrefix,g=e.testPrefixCallback,v=e.width,m=e.scrollParentRef,y=e.virtualizeOptions,b=void 0===y?{}:y,w=e.coloredSortedColumn,x=e.meta,_=e.side,S=vO(e,["dataGa","disableClickRow","enableResize","enableSorting","getRowHandler","headers","onClickRow","onHoverCell","pinnedStyles","table","tableRef","testPrefix","testPrefixCallback","width","scrollParentRef","virtualizeOptions","coloredSortedColumn","meta","side"]);return i.createElement(jb,gO({dataGa:t,"data-testid":"netdata-table".concat(h),ref:p,testPrefix:h,width:v},S),i.createElement(jb.Head,{"data-testid":"netdata-table-head".concat(h)},s.map((function(e,n){return i.createElement(jb.HeadRow,{key:n,id:e.id,"data-testid":"netdata-table-headRow".concat(h)},i.createElement(cO,{dataGa:t,enableResize:r,enableSorting:o,headers:e.headers,pinnedStyles:f,table:d,testPrefix:h,coloredSortedColumn:o&&w}))}))),i.createElement(jb.Body,{"data-testid":"netdata-table-body".concat(h)},i.createElement(hO,gO({scrollParentRef:m,disableClickRow:n,getRowHandler:a,onClickRow:u,onHoverCell:l,pinnedStyles:f,table:d,testPrefix:h,testPrefixCallback:g,coloredSortedColumn:o&&w,meta:x,enableColumnPinning:S.enableColumnPinning,side:_},b))))},yO=function(){return yO=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},yO.apply(this,arguments)},bO=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},wO=function(e){var t,n,r=e.dataGa,o=e.disableClickRow,a=e.enableResize,s=e.enableSorting,u=e.onClickRow,l=e.onHoverCell,c=e.table,f=e.testPrefix,d=e.testPrefixCallback,p=e.scrollParentRef,h=e.side,g=bO(e,["dataGa","disableClickRow","enableResize","enableSorting","onClickRow","onHoverCell","table","testPrefix","testPrefixCallback","scrollParentRef","side"]),v=Il(),m="left"==h,y=m?"getLeftVisibleCells":"getRightVisibleCells",b=m?"borderRight":"borderLeft",w=m?"getLeftTotalSize":"getRightTotalSize";return i.createElement(Te.Z,{background:"mainBackground",sx:(t={position:"sticky"},t[h]=0,t.zIndex=11,t.height="fit-content",t)},i.createElement(mO,yO({scrollParentRef:p,dataGa:"pin-".concat(r),disableClickRow:o,enableResize:a,enableSorting:s,getRowHandler:y,onClickRow:u,onHoverCell:l,pinnedStyles:(n={},n[b]="1px solid ".concat(v("borderSecondary")),n),table:c,testPrefix:"pin".concat(f),testPrefixCallback:d,width:a?"".concat(c[w](),"px"):"100%",side:h},g)))},xO=function(){return xO=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},xO.apply(this,arguments)},_O=(0,i.memo)((function(e){var t=e.bulkActions,n=e.dataGa,r=e.groupByOptions,o=e.groupValue,a=e.onGroupBy,s=e.onSearch,u=e.searchPlaceholder,l=void 0===u?"Search":u,c=e.searchValue,f=e.tableMeta,d=e.title,p=null===c||void 0===c?void 0:c.split(" ").filter((function(e){return!!e})).length;return f="function"===typeof f?f({},{},null):f,i.createElement(Se.default,xO({width:"100%",zIndex:10,background:"mainBackground",padding:[0,0,4],gap:3,alignItems:"center"},f.bulkActionsStyles),!!d&&i.createElement(He.TextBig,{margin:[0,0,0,3],strong:!0},d),s&&i.createElement(Se.default,xO({width:{max:57.5,base:"40%"}},f.searchContainerStyles),i.createElement(aO.Z,xO({"data-testid":"table-global-search-filter","data-ga":"".concat(n,"::search-").concat(p,"-words::table-filter"),defaultValue:c,iconLeft:i.createElement(xe.JO,{color:"textLite",name:"magnify",height:"18px",width:"18px"}),onChange:(0,uv.D)(300,(function(e){e.persist(),s(e.target.value)})),placeholder:l},f.searchStyles))),r&&i.createElement(Se.default,xO({alignItems:"center","data-testid":"tableGroupBy",gap:2},f.groupByContainerStyles),i.createElement(He.TextSmall,{"data-testid":"tableGroupByLabel",color:"textLite",whiteSpace:"nowrap"},"Group by"),i.createElement(XS,{"data-ga":"".concat(n,"::group-by-filter::table-filter"),"data-testid":"tableGroupByFilter",menuPortalTarget:document.body,onChange:function(e){var t=e.value;return a(t)},options:Object.values(r),styles:{size:"tiny",minWidth:120},value:r[o]||r.default})),!!t&&i.createElement(Se.default,{gap:1,"data-testid":"bulk-actions",width:"100%",justifyContent:"end"},t))})),SO=(0,i.memo)((function(e){var t=e.table,n=t.nextPage,r=t.previousPage,o=t.getCanPreviousPage,a=t.getCanNextPage,s=t.getPageCount,u=t.setPageIndex,l=t.resetPageIndex,c=t.getState().pagination.pageIndex;return i.createElement(Se.default,{alignItems:"center",justifyContent:"end",height:"45px",background:"mainBackground",border:{side:"top",color:"borderSecondary"}},i.createElement(nt,{title:"First","data-testid":"pagination-go-to-first",cursor:"pointer",onClick:l,icon:"chevron_left_start",iconSize:"small",tooltip:"test",disabled:!o()}),i.createElement(nt,{title:"Previous","data-testid":"pagination-go-to-previous",cursor:"pointer",onClick:r,icon:"chevron_left",iconSize:"small",tooltip:"Previous",disabled:!o()}),i.createElement(He.Text,{"data-testid":"pagination-counter"},"Page ",0===s()?0:c," of ",s()),i.createElement(nt,{title:"Next","data-testid":"pagination-go-to-next",cursor:"pointer",onClick:n,icon:"chevron_right",iconSize:"small",disabled:!a()}),i.createElement(nt,{title:"Last","data-testid":"pagination-go-to-last",cursor:"pointer",onClick:function(){return u(s()-1)},icon:"chevron_right_end",iconSize:"small",disabled:!a()}))})),OO=function(){return OO=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},OO.apply(this,arguments)},CO=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},EO=function(){},AO={},MO={comparison:Yy,select:function(e,t,n){var r=Array.isArray(n),o=r?Xy(e,t,n):Ky(e,t,n);return!o&&e.subRows.length?e.subRows.some((function(e){return r?Xy(e,t,n):Ky(e,t,n)})):o}},kO=(0,i.forwardRef)((function(e,t){var n=e.bulkActions,r=e.columnPinning,o=e.columnVisibility,a=e.expanded,s=e.rowSelection,u=e.data,l=e.dataColumns,c=e.dataGa,f=e.enableColumnPinning,d=e.enableColumnVisibility,p=e.enablePagination,h=e.enableResize,g=e.enableSelection,v=e.enableSubRowSelection,m=e.enableSorting,y=e.globalFilter,b=e.globalFilterFn,w=void 0===b?Jy:b,x=e.grouping,_=void 0===x?"":x,S=e.groupByColumns,O=e.onClickRow,C=e.onColumnVisibilityChange,E=e.onGlobalSearchChange,A=e.onGroupByChange,M=e.onHoverCell,k=e.onRowSelected,P=e.onSortingChange,R=e.onExpandedChange,T=e.paginationOptions,I=e.rowActions,B=e.sortBy,D=e.testPrefix,j=e.meta,L=e.title,Z=e.virtualizeOptions,N=CO(e,["bulkActions","columnPinning","columnVisibility","expanded","rowSelection","data","dataColumns","dataGa","enableColumnPinning","enableColumnVisibility","enablePagination","enableResize","enableSelection","enableSubRowSelection","enableSorting","globalFilter","globalFilterFn","grouping","groupByColumns","onClickRow","onColumnVisibilityChange","onGlobalSearchChange","onGroupByChange","onHoverCell","onRowSelected","onSortingChange","onExpandedChange","paginationOptions","rowActions","sortBy","testPrefix","meta","title","virtualizeOptions"]),F=(0,i.useState)(o),H=F[0],V=F[1];(0,i.useEffect)((function(){H!==o&&V(o)}),[o]);var z=(0,i.useState)((function(){return r||{}})),U=z[0],G=z[1];(0,i.useEffect)((function(){r&&H!==r&&G(r)}),[r]);var W=(0,i.useState)(s),$=W[0],q=W[1];(0,i.useEffect)((function(){$!==s&&q(s)}),[s]);var Y=(0,i.useState)((function(){return B||[]})),X=Y[0],K=Y[1];(0,i.useEffect)((function(){B&&X!==B&&K(B)}),[B]);var J=(0,i.useCallback)((function(e){P(e),K(e)}),[P]),Q=(0,i.useState)((function(){return{pageIndex:T.pageIndex,pageSize:T.pageSize}})),ee=Q[0],te=Q[1],ne=(0,i.useCallback)((function(e){C(e),V(e)}),[]),re=(0,i.useState)(y),oe=re[0],ie=re[1],ae=(0,i.useState)(_),se=ae[0],ue=ae[1],le=(0,i.useMemo)((function(){return S?OO({default:{label:"None",value:""}},Object.keys(S).reduce((function(e,t){var n,r=l.find((function(e){return e.id===t}));return OO(OO({},e),((n={})[t]={label:(null===r||void 0===r?void 0:r.name)||r.id,value:t},n))}),{})):null}),[S]);(0,i.useEffect)((function(){y&&oe!==y&&ie(y)}),[B]);var ce=(0,i.useCallback)((function(e){null===E||void 0===E||E(e),ie(String(e))}),[]),fe=(0,i.useCallback)((function(e){null===A||void 0===A||A(e),ue(e)}),[A]),de=sb(l,{testPrefix:D,enableSelection:g,rowActions:I,tableMeta:j}),pe=(0,i.useState)(a),he=pe[0],ge=pe[1],ve=(0,i.useCallback)((function(e){R(e),ge(e)}),[]),me=function(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=i.useState((()=>({current:Vy(t)}))),[r,o]=i.useState((()=>n.current.initialState));return n.current.setOptions((t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{o(t),null==e.onStateChange||e.onStateChange(t)}}))),n.current}(OO(OO({columns:de,data:u,manualPagination:!p,columnResizeMode:h?"onEnd":"",filterFns:MO,state:{columnVisibility:H,rowSelection:$,globalFilter:oe,sorting:X,pagination:ee,columnPinning:U,expanded:he,grouping:(0,i.useMemo)((function(){var e;return Array.isArray(se)?[se].filter(Boolean):(null===(e=null===S||void 0===S?void 0:S[se])||void 0===e?void 0:e.columns)||[]}),[se]),columnOrder:[]},onExpandedChange:ve},w?{globalFilterFn:w}:{}),{getCoreRowModel:e=>ny((()=>[e.options.data]),(t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(t,o,i){void 0===o&&(o=0);const a=[];for(let u=0;u<t.length;u++){const l=zy(e,e._getRowId(t[u],u,i),t[u],u,o,void 0,null==i?void 0:i.id);var s;n.flatRows.push(l),n.rowsById[l.id]=l,a.push(l),e.options.getSubRows&&(l.originalSubRows=e.options.getSubRows(t[u],u),null!=(s=l.originalSubRows)&&s.length&&(l.subRows=r(l.originalSubRows,o+1,l)))}return a};return n.rows=r(t),n}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}}),getFilteredRowModel:e=>ny((()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter]),((t,n,r)=>{if(!t.rows.length||(null==n||!n.length)&&!r){for(let e=0;e<t.flatRows.length;e++)t.flatRows[e].columnFilters={},t.flatRows[e].columnFiltersMeta={};return t}const o=[],i=[];(null!=n?n:[]).forEach((t=>{var n;const r=e.getColumn(t.id);if(!r)return;const i=r.getFilterFn();i&&o.push({id:t.id,filterFn:i,resolvedValue:null!=(n=null==i.resolveFilterValue?void 0:i.resolveFilterValue(t.value))?n:t.value})}));const a=n.map((e=>e.id)),s=e.getGlobalFilterFn(),u=e.getAllLeafColumns().filter((e=>e.getCanGlobalFilter()));let l,c;r&&s&&u.length&&(a.push("__global__"),u.forEach((e=>{var t;i.push({id:e.id,filterFn:s,resolvedValue:null!=(t=null==s.resolveFilterValue?void 0:s.resolveFilterValue(r))?t:r})})));for(let e=0;e<t.flatRows.length;e++){const n=t.flatRows[e];if(n.columnFilters={},o.length)for(let e=0;e<o.length;e++){l=o[e];const t=l.id;n.columnFilters[t]=l.filterFn(n,t,l.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))}if(i.length){for(let e=0;e<i.length;e++){c=i[e];const t=c.id;if(c.filterFn(n,t,c.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))){n.columnFilters.__global__=!0;break}}!0!==n.columnFilters.__global__&&(n.columnFilters.__global__=!1)}}return Uy(t.rows,(e=>{for(let t=0;t<a.length;t++)if(!1===e.columnFilters[a[t]])return!1;return!0}),e)}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}}),onRowSelectionChange:q,onGlobalFilterChange:ce,onSortingChange:J,getSortedRowModel:e=>ny((()=>[e.getState().sorting,e.getPreSortedRowModel()]),((t,n)=>{if(!n.rows.length||null==t||!t.length)return n;const r=e.getState().sorting,o=[],i=r.filter((t=>{var n;return null==(n=e.getColumn(t.id))?void 0:n.getCanSort()})),a={};i.forEach((t=>{const n=e.getColumn(t.id);n&&(a[t.id]={sortUndefined:n.columnDef.sortUndefined,invertSorting:n.columnDef.invertSorting,sortingFn:n.getSortingFn()})}));const s=e=>{const t=[...e];return t.sort(((e,t)=>{for(let r=0;r<i.length;r+=1){var n;const o=i[r],s=a[o.id],u=null!=(n=null==o?void 0:o.desc)&&n;if(s.sortUndefined){const n="undefined"===typeof e.getValue(o.id),r="undefined"===typeof t.getValue(o.id);if(n||r)return n&&r?0:n?s.sortUndefined:-s.sortUndefined}let l=s.sortingFn(e,t,o.id);if(0!==l)return u&&(l*=-1),s.invertSorting&&(l*=-1),l}return e.index-t.index})),t.forEach((e=>{var t;o.push(e),null!=(t=e.subRows)&&t.length&&(e.subRows=s(e.subRows))})),t};return{rows:s(n.rows),flatRows:o,rowsById:n.rowsById}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}}),getPaginationRowModel:e=>ny((()=>[e.getState().pagination,e.getPrePaginationRowModel(),e.options.paginateExpandedRows?void 0:e.getState().expanded]),((t,n)=>{if(!n.rows.length)return n;const{pageSize:r,pageIndex:o}=t;let{rows:i,flatRows:a,rowsById:s}=n;const u=r*o,l=u+r;let c;i=i.slice(u,l),c=e.options.paginateExpandedRows?{rows:i,flatRows:a,rowsById:s}:Wy({rows:i,flatRows:a,rowsById:s}),c.flatRows=[];const f=e=>{c.flatRows.push(e),e.subRows.length&&e.subRows.forEach(f)};return c.rows.forEach(f),c}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getExpandedRowModel:e=>ny((()=>[e.getState().expanded,e.getPreExpandedRowModel(),e.options.paginateExpandedRows]),((e,t,n)=>!t.rows.length||!0!==e&&!Object.keys(null!=e?e:{}).length?t:n?Wy(t):t),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getGroupedRowModel:Gy(),getSubRows:function(e){return e.children},onPaginationChange:te,onColumnVisibilityChange:ne,onColumnPinningChange:G,enableSubRowSelection:v,columnGroupingMode:"reorder"})),ye=(0,i.useState)([]),be=ye[0],we=ye[1];(0,i.useEffect)((function(){var e=me.getSelectedRowModel().flatRows;if(e){var t=e.reduce((function(e,t){var n=t.original;return(null===n||void 0===n?void 0:n.disabled)||e.push(n),e}),[]);we(t),null===k||void 0===k||k(t)}}),[$,me]);var _e=f||d||!!n,Oe=(0,i.useRef)(),Ce=function(e){var t=e.bulkActions,n=e.enableColumnVisibility,r=bb(e,["bulkActions","enableColumnVisibility"]),o=xb(n,r);return(0,i.useMemo)((function(){return t?Object.keys(t).map((function(e){var n=wb[e]||wb.delete,o=t[e];return i.createElement(fb,yb({key:e},r,n,{id:e},o))})).concat(o):o}),[t,o])}({bulkActions:n,columnPinning:U,dataGa:c,enableColumnVisibility:d,enableColumnPinning:f,selectedRows:be,table:me,testPrefix:D}),Ee=(0,i.useCallback)((function(e){return{side:e,enableResize:h,onClickRow:O,enableSorting:m,table:me,headers:"left"===e?me.getLeftHeaderGroups():me.getRightHeaderGroups(),testPrefix:D,dataGa:c,scrollParentRef:Oe,virtualizeOptions:Z,meta:j}}),[h,O,m,me,D,c,Oe,Z,j]),Ae=Z||{},Me=Ae.hasNextPage,ke=Ae.loading,Pe=Ae.warning;return i.createElement(Eb,{onHoverCell:M},i.createElement(Se.default,{height:"100%",overflow:"hidden",column:!0,ref:t},E||_e?i.createElement(_O,{bulkActions:_e?Ce:null,dataGa:c,groupByOptions:le,groupValue:se,onGroupBy:fe,onSearch:E?ce:null,searchValue:oe,tableMeta:j,title:L}):null,i.createElement(Se.default,{row:!0,ref:Oe,overflow:"auto"},f&&U.left&&i.createElement(wO,OO({},Ee("left"))),i.createElement(mO,OO({headers:U?me.getCenterHeaderGroups():me.getHeaderGroups(),width:"100%",getRowHandler:f?"getCenterVisibleCells":"getVisibleCells",scrollParentRef:Oe,enableResize:h,onClickRow:O,enableSorting:m,enableColumnPinning:f,table:me,dataGa:c,testPrefix:D,virtualizeOptions:Z,meta:j,side:"center"},N)),f&&U.right&&i.createElement(wO,OO({},Ee("right")))),!Me&&!ke&&!!Pe&&i.createElement(Se.default,{alignItems:"center",justifyContent:"center",gap:2,padding:[4],width:"100%"},i.createElement(xe.JO,{name:"warning_triangle_hollow",color:"warning"})," ",i.createElement(He.Text,{color:"warningText"},Pe)),Me&&ke&&i.createElement(Se.default,{alignItems:"center",justifyContent:"center",gap:2,padding:[4],width:"100%"},i.createElement(xe.NZ.LoaderIcon,null)," ",i.createElement(He.Text,null,"Loading more...")),p&&i.createElement(SO,{table:me})))}));kO.defaultProps={coloredSortedColumn:!0,enableColumnPinning:!1,enableColumnVisibility:!1,enableResize:!1,onColumnVisibilityChange:EO,onSortingChange:EO,onExpandedChange:EO,paginationOptions:{pageIndex:0,pageSize:100},expanded:AO,rowSelection:AO,rowActions:AO,meta:AO,globalFilter:"",testPrefix:""};var PO=kO},21352:function(e,t){"use strict";var n={end:"flex-end",start:"flex-start",center:"center",stretch:"stretch"};t.Z=function(e){var t=e.alignSelf;return t in n&&"align-self: ".concat(n[t],";")}},55199:function(e,t){"use strict";var n={pointer:"pointer",default:"default",grab:"grab",move:"move",none:"none",text:"text",wait:"wait",notAllowed:"not-allowed",initial:"initial",inherit:"inherit"};t.Z=function(e){var t=e.cursor;return t&&t in n?"cursor: ".concat(n[t],";"):""}},11275:function(e,t,n){"use strict";n.d(t,{_Y:function(){return l},aY:function(){return i},f1:function(){return d}});var r,o,i="\n font-family: inherit;\n border: none;\n outline: none;\n padding: 0;\n margin: 0;\n",a=n(60677),s=n(50757),u=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},l=(0,a.css)(r||(r=u(["\n border-color: ",";\n box-shadow: 0 0 0 1px ",";\n"],["\n border-color: ",";\n box-shadow: 0 0 0 1px ",";\n"])),(0,s.dI)("controlFocused"),(0,s.dI)("controlFocused")),c=n(90509),f=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},d=(0,a.css)(o||(o=f(["\n &::-webkit-scrollbar {\n width: ",";\n }\n &::-webkit-scrollbar-track {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb:hover {\n background-color: ",";\n }\n &::-webkit-scrollbar-track-piece {\n background-color: ",";\n }\n &::-webkit-scrollbar-corner {\n background-color: ",";\n }\n"],["\n &::-webkit-scrollbar {\n width: ",";\n }\n &::-webkit-scrollbar-track {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb:hover {\n background-color: ",";\n }\n &::-webkit-scrollbar-track-piece {\n background-color: ",";\n }\n &::-webkit-scrollbar-corner {\n background-color: ",";\n }\n"])),(0,c.getSizeBy)(1),(0,c.getSizeBy)(.5),(0,c.getRgbColor)("border",.1),(0,c.getSizeBy)(1),(0,c.getRgbColor)("border",.3),(0,c.getRgbColor)("border",.5),(0,c.getRgbColor)("border",.3),(0,c.getRgbColor)("border",.3))},69498:function(e,t,n){"use strict";var r=n(13947);t.Z=function(e){var t=e.theme,n=e.margin;return n?Array.isArray(n)&&n.length>=1&&n.length<=4?"margin: ".concat((0,r.t)(t,n),";"):(console.error("Please provide an array (max 4 elements) for `margin` style helper."),""):""}},33778:function(e,t){"use strict";var n={weak:.3,medium:.4,strong:.8};t.Z=function(e){var t=e.opacity,r=t&&n[t];return r?"opacity: ".concat(r,";"):""}},96069:function(e,t,n){"use strict";var r=n(13947);t.Z=function(e){var t=e.theme,n=e.padding;return n?Array.isArray(n)&&n.length>=1&&n.length<=4?"padding: ".concat((0,r.t)(t,n),";"):(console.error("Please provide an array (max 4 elements) for `padding` style helper."),""):""}},94932:function(e,t){"use strict";var n={static:"static",absolute:"absolute",fixed:"fixed",relative:"relative",sticky:"sticky",initial:"initial",inherit:"inherit"};t.Z=function(e){var t=e.position;return t in n?"position: ".concat(t,";"):""}},1605:function(e,t){"use strict";var n=function(e,t){return!0===t?"".concat(e,"px"):"number"===typeof t?"".concat(e*t,"px"):"string"===typeof t?t:""},r=function(e,t){return"border-top-left-radius: ".concat(n(e,t),";")},o=function(e,t){return"border-top-right-radius: ".concat(n(e,t),";")},i=function(e,t){return"border-bottom-left-radius: ".concat(n(e,t),";")},a=function(e,t){return"border-bottom-right-radius: ".concat(n(e,t),";")},s={top:function(e,t){return"\n ".concat(r(e,t),"\n ").concat(o(e,t),"\n ")},left:function(e,t){return"\n ".concat(r(e,t),"\n ").concat(i(e,t),"\n ")},bottom:function(e,t){return"\n ".concat(i(e,t),"\n ").concat(a(e,t),"\n ")},right:function(e,t){return"\n ".concat(o(e,t),"\n ").concat(a(e,t),"\n ")},"top-left":r,"top-right":o,"bottom-left":i,"bottom-right":a};t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,r=e.round;if(!r)return"";var o=n(t,r);if(o)return"border-radius: ".concat(o,";");var i=r.side,a=r.size,u=void 0===a?1:a;return i in s?"".concat(s[i](t,u)):""}},13692:function(e,t){"use strict";t.Z=function(e,t){"function"===typeof e?e(t):e&&(e.current=t)}},98625:function(e,t){"use strict";var n={none:"none",capitalize:"capitalize",uppercase:"uppercase",lowercase:"lowercase",firstLetter:"firstLetter",fullWidth:"full-width"};t.Z=function(e){var t=(void 0===e?{}:e).textTransform,r=void 0===t?n.none:t;return r===n.firstLetter?"text-transform: lowercase;\n &::first-letter {\n text-transform: uppercase;\n }\n":"text-transform: ".concat(r in n?n[r]:n.none,";")}},13947:function(e,t,n){"use strict";n.d(t,{F:function(){return r},t:function(){return o}});var r=function(e,t){return"number"===typeof t?0===(n=e.constants.SIZE_SUB_UNIT*t)?"0":"".concat(n,"px"):"auto";var n},o=function(e,t){return t.map((function(t){return r(e,t)})).join(" ")}},69838:function(e,t){"use strict";t.Z=function(e){var t=e.zIndex;if(t&&"number"===typeof t)return"z-index: ".concat(t,";")}},84436:function(e,t,n){"use strict";n.r(t);var r=n(67294);t.default=function(e,t,n,o){var i=(0,r.useState)(!1),a=i[0],s=i[1],u=(0,r.useState)(!1),l=u[0],c=u[1];return[a,l,(0,r.useCallback)((function(){if(e.current&&t.current&&o){var n=e.current,r=t.current;if(Array.isArray(r)&&r.length){var i=r[r.length-1],a=n.scrollLeft,u=n.getBoundingClientRect().right,l=i.getBoundingClientRect().right;l>u&&c(!0),l<=u&&c(!1),a>0&&s(!0),0===a&&s(!1)}}}),[o,n])]}},50757:function(e,t,n){"use strict";n.d(t,{Cs:function(){return m},XU:function(){return d},nF:function(){return y.calcSize},B1:function(){return y.extendTheme},Lq:function(){return y.getColor},j2:function(){return y.getGutterHeight},fS:function(){return y.getOrElse},zt:function(){return y.getRgbColor},sq:function(){return y.getSizeBy},T2:function(){return y.getSizeUnit},dI:function(){return y.getValidatedControlColor},yw:function(){return y.propOrElse}});var r={};n.r(r),n.d(r,{GUTTER_HEIGHT:function(){return c},SIZE_SUB_UNIT:function(){return u},SIZE_UNIT:function(){return l}});var o={transparent:{full:"rgba(255, 255, 255, 0.0)",semi:"rgba(255, 255, 255, 0.5)",popover:"rgba(18, 36, 50, 0.9)"},green:{poker:"#2f5446",chateau:"#42B861",netdata:"#00AB44",deyork:"#68C47D",vista:"#96D4A2",fringyFlower:"#BFE5C6",frostee:"#E5F5E8",limeGreen:"#48E499",terminalGreen:"#00220E",terminalGreenBorder:"#006729",terminalGreenBorderLight:"#BBFFD6"},red:{pomegranate:"#FF4136",carnation:"#F95251",apricot:"#ED7374",wewak:"#F59B9B",pastelpink:"#FFCED3",lavender:"#FFEBEF"},yellow:{amber:"#FFC300",sunglow:"#FFCC26",seaBuckthorn:"#F9A825",mustard:"#FFD74F",salomie:"#FFE182",buttermilk:"#FFEDB3",ginfizz:"#FFF8E1"},neutral:{white:"#FFFFFF",black:"#000000",limedSpruce:"#35414A",regentgrey:"#8F9EAA",blackhaze:"#F7F8F8",brightGrey:"#E9ECEC",chineseWhite:"#DEE3E3",iron:"#CFD5DA",porcelain:"#ECEEEF",bluebayoux:"#536775",shark:"#1C1E22",tuna:"#383B40",outerSpace:"#2B3136",ratsbane:"#3E4551",arsenic:"#353B45",gunmetal:"#282C34",darkGunmetal:"#21252B",eerieBlack:"#181c20","grey-05":"#040505","grey-180":"#DBE1E1","grey-195":"#F6F7F7","grey-197":"#F5FFF9"},purple:{mauve:"#DB94F4",mauveDark:"#CB66EF",mauveFocus:"#EBC2F9",daisy:"#563D7C",lilac:"#B596F8",lilacLite:"#C6AEFA",lilacFocus:"#824EF3"},blue:{aquamarine:"#19C89E",indigo:"#5790FF",cyan:"#00BAE2"},shadows:{dropdownLight:"rgba(9, 30, 66, 0.15)",dropdownDark:"rgba(0, 0, 0, 0.4)"}},i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)},a={primary:o.green.netdata,accent:o.green.chateau,main:o.neutral.limedSpruce,border:o.neutral.regentgrey,borderSecondary:o.neutral.porcelain,tabsBorder:o.neutral.iron,disabled:o.neutral.porcelain,disabledBackground:o.neutral.porcelain,dropdown:o.neutral.white,dropdownShadow:o.shadows.dropdownLight,elementBackground:o.neutral.blackhaze,elementBackgroundHover:o.neutral.white,mainBackground:o.neutral.white,mainBackgroundDisabled:o.neutral.blackhaze,modalHeaderBackground:o.neutral.porcelain,modalTabsBackground:o.neutral.blackhaze,modalBackground:o.neutral.white,modalInfoBackground:o.neutral.blackhaze,success:o.green.netdata,successLite:o.green.deyork,successBackground:o.green.frostee,successText:o.green.netdata,warning:o.yellow.seaBuckthorn,warningLite:o.yellow.mustard,warningBackground:o.yellow.buttermilk,warningText:o.yellow.seaBuckthorn,error:o.red.pomegranate,errorLite:o.red.apricot,errorBackground:o.red.lavender,errorText:o.red.pomegranate,attention:o.purple.mauve,attentionSecondary:o.purple.daisy,separator:o.neutral.porcelain,controlFocused:o.neutral.limedSpruce,selected:o.neutral.iron,tooltip:o.neutral.shark,bright:o.neutral.white,text:o.neutral.bluebayoux,textLite:o.neutral.regentgrey,textFocus:o.neutral.regentgrey,textDescription:o.neutral.bluebayoux,sectionHeaderBackground:o.neutral.limedSpruce,sectionTitle:o.neutral.bluebayoux,sectionDescription:o.neutral.regentgrey,placeholder:o.neutral.regentgrey,key:o.neutral.regentgrey,panel:o.neutral.limedSpruce,panelBg:o.neutral.blackhaze,sideBar:o.neutral.brightGrey,sideBarMini:o.neutral.chineseWhite,menuItem:o.neutral.bluebayoux,nodesViewMiniCharts:o.neutral.iron,topBarBg:o.neutral.blackhaze,elevationLevelOne:o.neutral.porcelain,inputBg:o.neutral.blackhaze,inputBorder:o.neutral.iron,inputBorderHover:o.neutral.regentgrey,inputBorderFocus:o.neutral.bluebayoux,nodeBadgeBackground:o.neutral.porcelain,nodeBadgeBorder:o.neutral.iron,nodeBadgeColor:o.neutral.bluebayoux,neutralPillBg:o.neutral.iron,neutralPillBorder:o.neutral.iron,neutralPillColor:o.neutral.bluebayoux,alertBorder:o.neutral.porcelain,alertIcon:o.neutral.porcelain,idleError:o.neutral.regentgrey,idleWarning:o.neutral.iron,idleClear:o.neutral.chineseWhite,dropdownTable:o.neutral.white,tableRowBg:o.neutral.blackhaze,tableRowBgHover:o.neutral.porcelain,columnHighlight:o.green.frostee,iconColor:o.neutral.limedSpruce,progressBg:o.neutral.chineseWhite,resizerLine:o.green.vista,anomalyText:o.purple.lilac,anomalyTextLite:o.purple.lilacLite,anomalyTextFocus:o.purple.lilacFocus,terminalGreen:o.green["grey-197"],terminalGreenBorder:o.green.terminalGreenBorderLight,darkBackground:o.neutral["grey-195"],integrationMenuItemHover:o.neutral["grey-180"]},s=i(i({},a),o),u=4,l=8,c=8,f=function(){return f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},f.apply(this,arguments)},d=f(f({},{name:"Default",version:"0.0.1"}),{constants:r,colors:s}),p=function(){return p=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},p.apply(this,arguments)},h={primary:o.green.netdata,accent:o.green.chateau,main:o.neutral.white,border:o.neutral.bluebayoux,borderSecondary:o.neutral.ratsbane,tabsBorder:o.neutral.ratsbane,disabled:o.neutral.tuna,disabledBackground:o.neutral.outerSpace,dropdown:o.neutral.arsenic,dropdownShadow:o.shadows.dropdownDark,elementBackground:o.neutral.outerSpace,elementBackgroundHover:o.neutral.tuna,mainBackground:o.neutral.gunmetal,mainBackgroundDisabled:o.neutral.outerSpace,modalHeaderBackground:o.neutral.shark,modalTabsBackground:o.neutral.darkGunmetal,modalBackground:o.neutral.outerSpace,modalInfoBackground:o.neutral.bluebayoux,success:o.green.netdata,successLite:o.green.deyork,successBackground:o.green.deyork,successText:o.green.netdata,warning:o.yellow.seaBuckthorn,warningLite:o.yellow.sunglow,warningBackground:o.yellow.salomie,warningText:o.yellow.seaBuckthorn,error:o.red.pomegranate,errorLite:o.red.apricot,errorBackground:o.red.wewak,errorText:o.red.pomegranate,attention:o.purple.mauve,attentionSecondary:o.purple.daisy,separator:o.neutral.bluebayoux,controlFocused:o.neutral.white,selected:o.neutral.bluebayoux,tooltip:o.neutral.outerSpace,bright:o.neutral.white,text:o.neutral.iron,textLite:o.neutral.regentgrey,textFocus:o.neutral.porcelain,textDescription:o.neutral.regentgrey,sectionHeaderBackground:o.neutral.white,sectionTitle:o.neutral.iron,sectionDescription:o.neutral.regentgrey,menuItem:o.neutral.regentgrey,placeholder:o.neutral.bluebayoux,key:o.neutral.iron,panel:o.neutral.limedSpruce,panelBg:o.neutral.arsenic,sideBar:o.neutral.darkGunmetal,sideBarMini:o.neutral.eerieBlack,nodesViewMiniCharts:o.neutral.limedSpruce,topBarBg:o.neutral.arsenic,elevationLevelOne:o.neutral.ratsbane,inputBg:o.neutral.arsenic,inputBorder:o.neutral.bluebayoux,inputBorderHover:o.neutral.bluebayoux,inputBorderFocus:o.neutral.limedSpruce,nodeBadgeBackground:o.neutral.limedSpruce,nodeBadgeBorder:o.neutral.bluebayoux,nodeBadgeColor:o.neutral.white,neutralPillBg:o.neutral.limedSpruce,neutralPillBorder:o.neutral.limedSpruce,neutralPillColor:o.neutral.regentgrey,alertBorder:o.neutral.bluebayoux,alertIcon:o.neutral.gunmetal,idleError:o.neutral.tuna,idleWarning:o.neutral.ratsbane,idleClear:o.neutral.arsenic,dropdownTable:o.neutral.eerieBlack,tableRowBgHover:o.neutral.ratsbane,tableRowBg:o.neutral.arsenic,columnHighlight:o.green.poker,progressBg:o.neutral.bluebayoux,iconColor:o.neutral.iron,resizerLine:o.green.vista,anomalyText:o.purple.mauve,anomalyTextLite:o.purple.mauveDark,anomalyTextFocus:o.purple.mauveFocus,terminalGreen:o.green.terminalGreen,terminalGreenBorder:o.green.terminalGreenBorder,darkBackground:o.neutral["grey-05"],integrationMenuItemHover:o.green.terminalGreen},g=p(p({},o),h),v=function(){return v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},v.apply(this,arguments)},m=v(v({},{name:"Dark",version:"0.0.1"}),{constants:r,colors:g}),y=n(90509)},90509:function(e,t,n){"use strict";n.r(t),n.d(t,{calcSize:function(){return f},extendTheme:function(){return s},getColor:function(){return d},getGutterHeight:function(){return g},getOrElse:function(){return l},getRgbColor:function(){return p},getSizeBy:function(){return h},getSizeUnit:function(){return c},getValidatedControlColor:function(){return v},propOrElse:function(){return u}});var r=n(65583),o=n.n(r),i=n(55101),a=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},s=function(e,t){return(0,i.BPw)(e,t)},u=function(e,t){return function(n){return(0,i.pMU)(t,e,n)}},l=function(e,t){return function(n){var r=n.theme;return(0,i.pMU)(t,e,r)}},c=function(e){var t=e.theme;return(0,i.ETc)(["constants","SIZE_UNIT"],t)},f=function(e){return function(t){if(e){var n=e.replace("_","".concat(c(t)));return o()(n)}return c(t)}},d=function(e){var t=Array.isArray(e)?e:[e];return l(a(["colors"],t,!0),e||"#fff")},p=function(e,t){return void 0===t&&(t=1),function(n){var r=n.theme,o=d(e)({theme:r}),i=parseInt(o.substring(1),16),a=i>>8&255,s=255&i;return"rgba(".concat(i>>16&255,", ").concat(a,", ").concat(s,", ").concat(t,")")}},h=function(e){return void 0===e&&(e=1),function(t){return isNaN(e)?e:"".concat((c(t)||0)*e,"px")}},g=function(e){var t=e.theme,n=(0,i.ETc)(["constants","GUTTER_HEIGHT"],t)||0;return"".concat(n,"px")},v=function(e,t){return void 0===e&&(e="border"),void 0===t&&(t="disabled"),function(n){var r=n.theme,o=n.success,i=n.error,a=n.disabled;return o?d(["success"])({theme:r}):i?d(["error"])({theme:r}):a?d([t])({theme:r}):d([e])({theme:r})}}},80024:function(e,t){var n="undefined"!==typeof self?self:this,r=function(){function e(){this.fetch=!1,this.DOMException=n.DOMException}return e.prototype=n,new e}();!function(e){!function(t){var n={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(n.arrayBuffer)var r=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],o=ArrayBuffer.isView||function(e){return e&&r.indexOf(Object.prototype.toString.call(e))>-1};function i(e){if("string"!==typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function a(e){return"string"!==typeof e&&(e=String(e)),e}function s(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return n.iterable&&(t[Symbol.iterator]=function(){return t}),t}function u(e){this.map={},e instanceof u?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function l(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function c(e){return new Promise((function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}}))}function f(e){var t=new FileReader,n=c(t);return t.readAsArrayBuffer(e),n}function d(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function p(){return this.bodyUsed=!1,this._initBody=function(e){var t;this._bodyInit=e,e?"string"===typeof e?this._bodyText=e:n.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:n.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:n.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():n.arrayBuffer&&n.blob&&((t=e)&&DataView.prototype.isPrototypeOf(t))?(this._bodyArrayBuffer=d(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):n.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||o(e))?this._bodyArrayBuffer=d(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"===typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n.blob&&(this.blob=function(){var e=l(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(f)}),this.text=function(){var e=l(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,n=c(t);return t.readAsText(e),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},n.formData&&(this.formData=function(){return this.text().then(v)}),this.json=function(){return this.text().then(JSON.parse)},this}u.prototype.append=function(e,t){e=i(e),t=a(t);var n=this.map[e];this.map[e]=n?n+", "+t:t},u.prototype.delete=function(e){delete this.map[i(e)]},u.prototype.get=function(e){return e=i(e),this.has(e)?this.map[e]:null},u.prototype.has=function(e){return this.map.hasOwnProperty(i(e))},u.prototype.set=function(e,t){this.map[i(e)]=a(t)},u.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},u.prototype.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),s(e)},u.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),s(e)},u.prototype.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),s(e)},n.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);var h=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function g(e,t){var n=(t=t||{}).body;if(e instanceof g){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new u(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",!t.headers&&this.headers||(this.headers=new u(t.headers)),this.method=function(e){var t=e.toUpperCase();return h.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function v(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}})),t}function m(e){var t=new u;return e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}})),t}function y(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new u(t.headers),this.url=t.url||"",this._initBody(e)}g.prototype.clone=function(){return new g(this,{body:this._bodyInit})},p.call(g.prototype),p.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var b=[301,302,303,307,308];y.redirect=function(e,t){if(-1===b.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},t.DOMException=e.DOMException;try{new t.DOMException}catch(x){t.DOMException=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function w(e,r){return new Promise((function(o,i){var a=new g(e,r);if(a.signal&&a.signal.aborted)return i(new t.DOMException("Aborted","AbortError"));var s=new XMLHttpRequest;function u(){s.abort()}s.onload=function(){var e={status:s.status,statusText:s.statusText,headers:m(s.getAllResponseHeaders()||"")};e.url="responseURL"in s?s.responseURL:e.headers.get("X-Request-URL");var t="response"in s?s.response:s.responseText;o(new y(t,e))},s.onerror=function(){i(new TypeError("Network request failed"))},s.ontimeout=function(){i(new TypeError("Network request failed"))},s.onabort=function(){i(new t.DOMException("Aborted","AbortError"))},s.open(a.method,a.url,!0),"include"===a.credentials?s.withCredentials=!0:"omit"===a.credentials&&(s.withCredentials=!1),"responseType"in s&&n.blob&&(s.responseType="blob"),a.headers.forEach((function(e,t){s.setRequestHeader(t,e)})),a.signal&&(a.signal.addEventListener("abort",u),s.onreadystatechange=function(){4===s.readyState&&a.signal.removeEventListener("abort",u)}),s.send("undefined"===typeof a._bodyInit?null:a._bodyInit)}))}w.polyfill=!0,e.fetch||(e.fetch=w,e.Headers=u,e.Request=g,e.Response=y),t.Headers=u,t.Request=g,t.Response=y,t.fetch=w,Object.defineProperty(t,"__esModule",{value:!0})}({})}(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var o=r;(t=o.fetch).default=o.fetch,t.fetch=o.fetch,t.Headers=o.Headers,t.Request=o.Request,t.Response=o.Response,e.exports=t},12599:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}var o;n.d(t,{Ep:function(){return s},Gn:function(){return _},J0:function(){return i},LX:function(){return S},RQ:function(){return k},WK:function(){return B},X3:function(){return I},Zn:function(){return C},Zq:function(){return A},aU:function(){return o},cP:function(){return u},fp:function(){return c},pC:function(){return M}}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(o||(o={}));function i(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function a(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function s(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function u(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}var l;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(l||(l={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function c(e,t,n){void 0===n&&(n="/");let r=C(("string"===typeof t?u(t):t).pathname||"/",n);if(null==r)return null;let o=f(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let a=0;null==i&&a<o.length;++a)i=x(o[a],O(r));return i}function f(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=[]),void 0===r&&(r="");let o=(e,o,a)=>{let s={relativePath:void 0===a?e.path||"":a,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};s.relativePath.startsWith("/")&&(i(s.relativePath.startsWith(r),'Absolute route path "'+s.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),s.relativePath=s.relativePath.slice(r.length));let u=k([r,s.relativePath]),l=n.concat(s);e.children&&e.children.length>0&&(i(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+u+'".'),f(e.children,t,l,u)),(null!=e.path||e.index)&&t.push({path:u,score:w(u,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of d(e.path))o(e,t,r);else o(e,t)})),t}function d(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return o?[i,""]:[i];let a=d(r.join("/")),s=[];return s.push(...a.map((e=>""===e?i:[i,e].join("/")))),o&&s.push(...a),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const p=/^:\w+$/,h=3,g=2,v=1,m=10,y=-2,b=e=>"*"===e;function w(e,t){let n=e.split("/"),r=n.length;return n.some(b)&&(r+=y),t&&(r+=g),n.filter((e=>!b(e))).reduce(((e,t)=>e+(p.test(t)?h:""===t?v:m)),r)}function x(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let a=0;a<n.length;++a){let e=n[a],s=a===n.length-1,u="/"===o?t:t.slice(o.length)||"/",l=S({path:e.relativePath,caseSensitive:e.caseSensitive,end:s},u);if(!l)return null;Object.assign(r,l.params);let c=e.route;i.push({params:r,pathname:k([o,l.pathname]),pathnameBase:P(k([o,l.pathnameBase])),route:c}),"/"!==l.pathnameBase&&(o=k([o,l.pathnameBase]))}return i}function _(e,t){void 0===t&&(t={});let n=e;n.endsWith("*")&&"*"!==n&&!n.endsWith("/*")&&(a(!1,'Route path "'+n+'" will be treated as if it were "'+n.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+n.replace(/\*$/,"/*")+'".'),n=n.replace(/\*$/,"/*"));return(n.startsWith("/")?"/":"")+n.split(/\/+/).map(((e,n,r)=>{if(n===r.length-1&&"*"===e){return t["*"]}const o=e.match(/^:(\w+)(\??)$/);if(o){const[,e,n]=o;let r=t[e];return"?"===n?null==r?"":r:(null==r&&i(!1,'Missing ":'+e+'" param'),r)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")}function S(e,t){"string"===typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=!0);a("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were "'+e.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+e.replace(/\*$/,"/*")+'".');let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/\/:(\w+)/g,((e,t)=>(r.push(t),"/([^\\/]+)")));e.endsWith("*")?(r.push("*"),o+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":""!==e&&"/"!==e&&(o+="(?:(?=\\/|$))");let i=new RegExp(o,t?void 0:"i");return[i,r]}(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],s=i.replace(/(.)\/+$/,"$1"),u=o.slice(1);return{params:r.reduce(((e,t,n)=>{if("*"===t){let e=u[n]||"";s=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}return e[t]=function(e,t){try{return decodeURIComponent(e)}catch(n){return a(!1,'The value for the URL param "'+t+'" will not be decoded because the string "'+e+'" is a malformed URL segment. This is probably due to a bad percent encoding ('+n+")."),e}}(u[n]||"",t),e}),{}),pathname:i,pathnameBase:s,pattern:e}}function O(e){try{return decodeURI(e)}catch(t){return a(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function C(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function E(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}function A(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function M(e,t,n,o){let a;void 0===o&&(o=!1),"string"===typeof e?a=u(e):(a=r({},e),i(!a.pathname||!a.pathname.includes("?"),E("?","pathname","search",a)),i(!a.pathname||!a.pathname.includes("#"),E("#","pathname","hash",a)),i(!a.search||!a.search.includes("#"),E("#","search","hash",a)));let s,l=""===e||""===a.pathname,c=l?"/":a.pathname;if(o||null==c)s=n;else{let e=t.length-1;if(c.startsWith("..")){let t=c.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}s=e>=0?t[e]:"/"}let f=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:o=""}="string"===typeof e?u(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:R(r),hash:T(o)}}(a,s),d=c&&"/"!==c&&c.endsWith("/"),p=(l||"."===c)&&n.endsWith("/");return f.pathname.endsWith("/")||!d&&!p||(f.pathname+="/"),f}const k=e=>e.join("/").replace(/\/\/+/g,"/"),P=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),R=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",T=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";class I extends Error{}function B(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const D=["post","put","patch","delete"],j=(new Set(D),["get",...D]);new Set(j),new Set([301,302,303,307,308]),new Set([307,308]);Symbol("deferred")},7576:function(e,t,n){"use strict";n.d(t,{S1:function(){return Zt},jp:function(){return Nt}});var r=n(12343),o=n(62844),i=n(57321);const a=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/],s=[/^.*healthcheck.*$/,/^.*healthy.*$/,/^.*live.*$/,/^.*ready.*$/,/^.*heartbeat.*$/,/^.*\/health$/,/^.*\/healthz$/];class u{static __initStatic(){this.id="InboundFilters"}__init(){this.name=u.id}constructor(e={}){this._options=e,u.prototype.__init.call(this)}setupOnce(e,t){const n=e=>{const n=t();if(n){const t=n.getIntegration(u);if(t){const u=n.getClient(),c=u?u.getOptions():{},f=function(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:a],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[],...e.disableTransactionDefaults?[]:s],ignoreInternal:void 0===e.ignoreInternal||e.ignoreInternal}}(t._options,c);return function(e,t){if(t.ignoreInternal&&function(e){try{return"SentryError"===e.exception.values[0].type}catch(t){}return!1}(e))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${(0,o.jH)(e)}`),!0;if(function(e,t){if(e.type||!t||!t.length)return!1;return function(e){if(e.message)return[e.message];if(e.exception){const{values:n}=e.exception;try{const{type:e="",value:t=""}=n&&n[n.length-1]||{};return[`${t}`,`${e}: ${t}`]}catch(t){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract message for event ${(0,o.jH)(e)}`),[]}}return[]}(e).some((e=>(0,i.U0)(e,t)))}(e,t.ignoreErrors))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${(0,o.jH)(e)}`),!0;if(function(e,t){if("transaction"!==e.type||!t||!t.length)return!1;const n=e.transaction;return!!n&&(0,i.U0)(n,t)}(e,t.ignoreTransactions))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${(0,o.jH)(e)}`),!0;if(function(e,t){if(!t||!t.length)return!1;const n=l(e);return!!n&&(0,i.U0)(n,t)}(e,t.denyUrls))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${(0,o.jH)(e)}.\nUrl: ${l(e)}`),!0;if(!function(e,t){if(!t||!t.length)return!0;const n=l(e);return!n||(0,i.U0)(n,t)}(e,t.allowUrls))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${(0,o.jH)(e)}.\nUrl: ${l(e)}`),!0;return!1}(e,f)?null:e}}return e};n.id=this.name,e(n)}}function l(e){try{let n;try{n=e.exception.values[0].stacktrace.frames}catch(t){}return n?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&"<anonymous>"!==n.filename&&"[native code]"!==n.filename)return n.filename||null}return null}(n):null}catch(n){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract url for event ${(0,o.jH)(e)}`),null}}u.__initStatic();var c=n(20535);let f;class d{constructor(){d.prototype.__init.call(this)}static __initStatic(){this.id="FunctionToString"}__init(){this.name=d.id}setupOnce(){f=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=(0,c.HK)(this)||this;return f.apply(t,e)}}catch(e){}}}d.__initStatic();var p=n(95659),h=n(10350);const g=[];function v(e){const t=e.defaultIntegrations||[],n=e.integrations;let r;t.forEach((e=>{e.isDefaultInstance=!0})),r=Array.isArray(n)?[...t,...n]:"function"===typeof n?(0,o.lE)(n(t)):t;const i=function(e){const t={};return e.forEach((e=>{const{name:n}=e,r=t[n];r&&!r.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)})),Object.keys(t).map((e=>t[e]))}(r),a=function(e,t){for(let n=0;n<e.length;n++)if(!0===t(e[n]))return n;return-1}(i,(e=>"Debug"===e.name));if(-1!==a){const[e]=i.splice(a,1);i.push(e)}return i}function m(e,t){t[e.name]=e,-1===g.indexOf(e.name)&&(e.setupOnce(h.c,p.Gd),g.push(e.name),("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(`Integration installed: ${e.name}`))}const y=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function b(e,t=!1){const{host:n,path:r,pass:o,port:i,projectId:a,protocol:s,publicKey:u}=e;return`${s}://${u}${t&&o?`:${o}`:""}@${n}${i?`:${i}`:""}/${r?`${r}/`:r}${a}`}function w(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function x(e){const t="string"===typeof e?function(e){const t=y.exec(e);if(!t)return void console.error(`Invalid Sentry Dsn: ${e}`);const[n,r,o="",i,a="",s]=t.slice(1);let u="",l=s;const c=l.split("/");if(c.length>1&&(u=c.slice(0,-1).join("/"),l=c.pop()),l){const e=l.match(/^\d+/);e&&(l=e[0])}return w({host:i,pass:o,path:u,projectId:l,port:a,protocol:n,publicKey:r})}(e):w(e);if(t&&function(e){if("undefined"!==typeof __SENTRY_DEBUG__&&!__SENTRY_DEBUG__)return!0;const{port:t,projectId:n,protocol:o}=e;return!["protocol","publicKey","host","projectId"].find((t=>!e[t]&&(r.kg.error(`Invalid Sentry Dsn: ${t} missing`),!0)))&&(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(o)?!t||!isNaN(parseInt(t,10))||(r.kg.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):(r.kg.error(`Invalid Sentry Dsn: Invalid protocol ${o}`),!1):(r.kg.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1))}(t))return t}const _="7";function S(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function O(e,t={}){const n="string"===typeof t?t:t.tunnel,r="string"!==typeof t&&t._metadata?t._metadata.sdk:void 0;return n||`${function(e){return`${S(e)}${e.projectId}/envelope/`}(e)}?${function(e,t){return(0,c._j)({sentry_key:e.publicKey,sentry_version:_,...t&&{sentry_client:`${t.name}/${t.version}`}})}(e,r)}`}const C=50,E=/\(error: (.*)\)/;function A(...e){const t=e.sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));return(e,n=0)=>{const r=[],o=e.split("\n");for(let i=n;i<o.length;i++){const e=o[i];if(e.length>1024)continue;const n=E.test(e)?e.replace(E,"$1"):e;if(!n.match(/\S*Error: /)){for(const e of t){const t=e(n);if(t){r.push(t);break}}if(r.length>=C)break}}return function(e){if(!e.length)return[];const t=e.slice(0,C),n=t[t.length-1].function;n&&/sentryWrapped/.test(n)&&t.pop();t.reverse();const r=t[t.length-1].function;r&&/captureMessage|captureException/.test(r)&&t.pop();return t.map((e=>({...e,filename:e.filename||t[t.length-1].filename,function:e.function||"?"})))}(r)}}const M="<anonymous>";function k(e){try{return e&&"function"===typeof e&&e.name||M}catch(t){return M}}var P=n(71235);const R=(0,P.Rf)();function T(){if(!("fetch"in R))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch(e){return!1}}function I(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}var B=n(67597);const D=(0,P.Rf)();const j=(0,P.Rf)(),L="__sentry_xhr_v2__",Z={},N={};function F(e){if(!N[e])switch(N[e]=!0,e){case"console":!function(){if(!("console"in j))return;r.RU.forEach((function(e){e in j.console&&(0,c.hl)(j.console,e,(function(t){return function(...n){V("console",{args:n,level:e}),t&&t.apply(j.console,n)}}))}))}();break;case"dom":!function(){if(!("document"in j))return;const e=V.bind(null,"dom"),t=Y(e,!0);j.document.addEventListener("click",t,!1),j.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach((t=>{const n=j[t]&&j[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,c.hl)(n,"addEventListener",(function(t){return function(n,r,o){if("click"===n||"keypress"==n)try{const r=this,i=r.__sentry_instrumentation_handlers__=r.__sentry_instrumentation_handlers__||{},a=i[n]=i[n]||{refCount:0};if(!a.handler){const r=Y(e);a.handler=r,t.call(this,n,r,o)}a.refCount++}catch(i){}return t.call(this,n,r,o)}})),(0,c.hl)(n,"removeEventListener",(function(e){return function(t,n,r){if("click"===t||"keypress"==t)try{const n=this,o=n.__sentry_instrumentation_handlers__||{},i=o[t];i&&(i.refCount--,i.refCount<=0&&(e.call(this,t,i.handler,r),i.handler=void 0,delete o[t]),0===Object.keys(o).length&&delete n.__sentry_instrumentation_handlers__)}catch(o){}return e.call(this,t,n,r)}})))}))}();break;case"xhr":!function(){if(!("XMLHttpRequest"in j))return;const e=XMLHttpRequest.prototype;(0,c.hl)(e,"open",(function(e){return function(...t){const n=t[1],r=this[L]={method:(0,B.HD)(t[0])?t[0].toUpperCase():t[0],url:t[1],request_headers:{}};(0,B.HD)(n)&&"POST"===r.method&&n.match(/sentry_key/)&&(this.__sentry_own_request__=!0);const o=()=>{const e=this[L];if(e&&4===this.readyState){try{e.status_code=this.status}catch(n){}V("xhr",{args:t,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:this})}};return"onreadystatechange"in this&&"function"===typeof this.onreadystatechange?(0,c.hl)(this,"onreadystatechange",(function(e){return function(...t){return o(),e.apply(this,t)}})):this.addEventListener("readystatechange",o),(0,c.hl)(this,"setRequestHeader",(function(e){return function(...t){const[n,r]=t,o=this[L];return o&&(o.request_headers[n.toLowerCase()]=r),e.apply(this,t)}})),e.apply(this,t)}})),(0,c.hl)(e,"send",(function(e){return function(...t){const n=this[L];return n&&void 0!==t[0]&&(n.body=t[0]),V("xhr",{args:t,startTimestamp:Date.now(),xhr:this}),e.apply(this,t)}}))}();break;case"fetch":!function(){if(!function(){if(!T())return!1;if(I(R.fetch))return!0;let e=!1;const t=R.document;if(t&&"function"===typeof t.createElement)try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=I(n.contentWindow.fetch)),t.head.removeChild(n)}catch(n){("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return e}())return;(0,c.hl)(j,"fetch",(function(e){return function(...t){const{method:n,url:r}=function(e){if(0===e.length)return{method:"GET",url:""};if(2===e.length){const[t,n]=e;return{url:U(t),method:z(n,"method")?String(n.method).toUpperCase():"GET"}}const t=e[0];return{url:U(t),method:z(t,"method")?String(t.method).toUpperCase():"GET"}}(t),o={args:t,fetchData:{method:n,url:r},startTimestamp:Date.now()};return V("fetch",{...o}),e.apply(j,t).then((e=>(V("fetch",{...o,endTimestamp:Date.now(),response:e}),e)),(e=>{throw V("fetch",{...o,endTimestamp:Date.now(),error:e}),e}))}}))}();break;case"history":!function(){if(!function(){const e=D.chrome,t=e&&e.app&&e.app.runtime,n="history"in D&&!!D.history.pushState&&!!D.history.replaceState;return!t&&n}())return;const e=j.onpopstate;function t(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const e=G,t=String(n);G=t,V("history",{from:e,to:t})}return e.apply(this,t)}}j.onpopstate=function(...t){const n=j.location.href,r=G;if(G=n,V("history",{from:r,to:n}),e)try{return e.apply(this,t)}catch(o){}},(0,c.hl)(j.history,"pushState",t),(0,c.hl)(j.history,"replaceState",t)}();break;case"error":X=j.onerror,j.onerror=function(e,t,n,r,o){return V("error",{column:r,error:o,line:n,msg:e,url:t}),!(!X||X.__SENTRY_LOADER__)&&X.apply(this,arguments)},j.onerror.__SENTRY_INSTRUMENTED__=!0;break;case"unhandledrejection":K=j.onunhandledrejection,j.onunhandledrejection=function(e){return V("unhandledrejection",e),!(K&&!K.__SENTRY_LOADER__)||K.apply(this,arguments)},j.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0;break;default:return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("unknown instrumentation type:",e))}}function H(e,t){Z[e]=Z[e]||[],Z[e].push(t),F(e)}function V(e,t){if(e&&Z[e])for(const o of Z[e]||[])try{o(t)}catch(n){("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${k(o)}\nError:`,n)}}function z(e,t){return!!e&&"object"===typeof e&&!!e[t]}function U(e){return"string"===typeof e?e:e?z(e,"url")?e.url:e.toString?e.toString():"":""}let G;const W=1e3;let $,q;function Y(e,t=!1){return n=>{if(!n||q===n)return;if(function(e){if("keypress"!==e.type)return!1;try{const t=e.target;if(!t||!t.tagName)return!0;if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable)return!1}catch(t){}return!0}(n))return;const r="keypress"===n.type?"input":n.type;(void 0===$||function(e,t){if(!e)return!0;if(e.type!==t.type)return!0;try{if(e.target!==t.target)return!0}catch(n){}return!1}(q,n))&&(e({event:n,name:r,global:t}),q=n),clearTimeout($),$=j.setTimeout((()=>{$=void 0}),W)}}let X=null;let K=null;var J=n(96893);function Q(e,t=100,n=1/0){try{return te("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function ee(e,t=3,n=102400){const r=Q(e,t);return o=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(o))>n?ee(e,t-1,n):r;var o}function te(e,t,r=1/0,o=1/0,i=function(){const e="function"===typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;e<t.length;e++)if(t[e]===n)return!0;return t.push(n),!1},function(n){if(e)t.delete(n);else for(let e=0;e<t.length;e++)if(t[e]===n){t.splice(e,1);break}}]}()){const[a,s]=i;if(null==t||["number","boolean","string"].includes(typeof t)&&!(0,B.i2)(t))return t;const u=function(e,t){try{if("domain"===e&&t&&"object"===typeof t&&t._events)return"[Domain]";if("domainEmitter"===e)return"[DomainEmitter]";if("undefined"!==typeof n.g&&t===n.g)return"[Global]";if("undefined"!==typeof window&&t===window)return"[Window]";if("undefined"!==typeof document&&t===document)return"[Document]";if((0,B.Cy)(t))return"[SyntheticEvent]";if("number"===typeof t&&t!==t)return"[NaN]";if("function"===typeof t)return`[Function: ${k(t)}]`;if("symbol"===typeof t)return`[${String(t)}]`;if("bigint"===typeof t)return`[BigInt: ${String(t)}]`;const r=function(e){const t=Object.getPrototypeOf(e);return t?t.constructor.name:"null prototype"}(t);return/^HTML(\w*)Element$/.test(r)?`[HTMLElement: ${r}]`:`[object ${r}]`}catch(r){return`**non-serializable** (${r})`}}(e,t);if(!u.startsWith("[object "))return u;if(t.__sentry_skip_normalization__)return t;const l="number"===typeof t.__sentry_override_normalization_depth__?t.__sentry_override_normalization_depth__:r;if(0===l)return u.replace("object ","");if(a(t))return"[Circular ~]";const f=t;if(f&&"function"===typeof f.toJSON)try{return te("",f.toJSON(),l-1,o,i)}catch(g){}const d=Array.isArray(t)?[]:{};let p=0;const h=(0,c.Sh)(t);for(const n in h){if(!Object.prototype.hasOwnProperty.call(h,n))continue;if(p>=o){d[n]="[MaxProperties ~]";break}const e=h[n];d[n]=te(n,e,l-1,o,i),p++}return s(t),d}function ne(e,t=[]){return[e,t]}function re(e,t){const[n,r]=e;return[n,[...r,t]]}function oe(e,t){const n=e[1];for(const r of n){if(t(r,r[0].type))return!0}return!1}function ie(e,t){return(t||new TextEncoder).encode(e)}function ae(e,t){const[n,r]=e;let o=JSON.stringify(n);function i(e){"string"===typeof o?o="string"===typeof e?o+e:[ie(o,t),e]:o.push("string"===typeof e?ie(e,t):e)}for(const s of r){const[e,t]=s;if(i(`\n${JSON.stringify(e)}\n`),"string"===typeof t||t instanceof Uint8Array)i(t);else{let e;try{e=JSON.stringify(t)}catch(a){e=JSON.stringify(Q(t))}i(e)}}return"string"===typeof o?o:function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);let r=0;for(const o of e)n.set(o,r),r+=o.length;return n}(o)}function se(e,t){const n="string"===typeof e.data?ie(e.data,t):e.data;return[(0,c.Jr)({type:"attachment",length:n.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),n]}const ue={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor"};function le(e){return ue[e]}function ce(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}class fe extends Error{constructor(e,t="warn"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=t}}function de(e,t,n,r){const o=ce(n),i=e.type&&"replay_event"!==e.type?e.type:"event";!function(e,t){t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]])}(e,n&&n.sdk);const a=function(e,t,n,r){const o=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&{dsn:b(r)},...o&&{trace:(0,c.Jr)({...o})}}}(e,o,r,t);delete e.sdkProcessingMetadata;return ne(a,[[{type:i},e]])}var pe=n(9015),he=n(51131);var ge=n(21170);function ve(e,t,n,r){const{normalizeDepth:a=3,normalizeMaxBreadth:s=1e3}=e,u={...t,event_id:t.event_id||n.event_id||(0,o.DM)(),timestamp:t.timestamp||(0,ge.yW)()},l=n.integrations||e.integrations.map((e=>e.name));!function(e,t){const{environment:n,release:r,dist:o,maxValueLength:a=250}=t;"environment"in e||(e.environment="environment"in t?n:he.J);void 0===e.release&&void 0!==r&&(e.release=r);void 0===e.dist&&void 0!==o&&(e.dist=o);e.message&&(e.message=(0,i.$G)(e.message,a));const s=e.exception&&e.exception.values&&e.exception.values[0];s&&s.value&&(s.value=(0,i.$G)(s.value,a));const u=e.request;u&&u.url&&(u.url=(0,i.$G)(u.url,a))}(u,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(u,l),void 0===t.type&&function(e,t){const n=P.n2._sentryDebugIds;if(!n)return;let r;const o=me.get(t);o?r=o:(r=new Map,me.set(t,r));const i=Object.keys(n).reduce(((e,o)=>{let i;const a=r.get(o);a?i=a:(i=t(o),r.set(o,i));for(let t=i.length-1;t>=0;t--){const r=i[t];if(r.filename){e[r.filename]=n[o];break}}return e}),{});try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.filename&&(e.debug_id=i[e.filename])}))}))}catch(a){}}(u,e.stackParser);let c=r;n.captureContext&&(c=h.s.clone(c).update(n.captureContext));let f=(0,J.WD)(u);if(c){if(c.getAttachments){const e=[...n.attachments||[],...c.getAttachments()];e.length&&(n.attachments=e)}f=c.applyToEvent(u,n)}return f.then((e=>(e&&function(e){const t={};try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)}))}))}catch(r){}if(0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.keys(t).forEach((e=>{n.push({type:"sourcemap",code_file:e,debug_id:t[e]})}))}(e),"number"===typeof a&&a>0?function(e,t,n){if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((e=>({...e,...e.data&&{data:Q(e.data,t,n)}})))},...e.user&&{user:Q(e.user,t,n)},...e.contexts&&{contexts:Q(e.contexts,t,n)},...e.extra&&{extra:Q(e.extra,t,n)}};e.contexts&&e.contexts.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=Q(e.contexts.trace.data,t,n)));e.spans&&(r.spans=e.spans.map((e=>(e.data&&(e.data=Q(e.data,t,n)),e))));return r}(e,a,s):e)))}const me=new WeakMap;const ye="Not capturing exception because it's already been captured.";class be{__init(){this._integrations={}}__init2(){this._integrationsInitialized=!1}__init3(){this._numProcessing=0}__init4(){this._outcomes={}}__init5(){this._hooks={}}constructor(e){if(be.prototype.__init.call(this),be.prototype.__init2.call(this),be.prototype.__init3.call(this),be.prototype.__init4.call(this),be.prototype.__init5.call(this),this._options=e,e.dsn?this._dsn=x(e.dsn):("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("No DSN provided, client will not do anything."),this._dsn){const t=O(this._dsn,e);this._transport=e.transport({recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,n){if((0,o.YO)(e))return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(ye));let i=t&&t.event_id;return this._process(this.eventFromException(e,t).then((e=>this._captureEvent(e,t,n))).then((e=>{i=e}))),i}captureMessage(e,t,n,r){let o=n&&n.event_id;const i=(0,B.pt)(e)?this.eventFromMessage(String(e),t,n):this.eventFromException(e,n);return this._process(i.then((e=>this._captureEvent(e,n,r))).then((e=>{o=e}))),o}captureEvent(e,t,n){if(t&&t.originalException&&(0,o.YO)(t.originalException))return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(ye));let i=t&&t.event_id;return this._process(this._captureEvent(e,t,n).then((e=>{i=e}))),i}captureSession(e){this._isEnabled()?"string"!==typeof e.release?("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Discarded session because of missing or non-string release"):(this.sendSession(e),(0,pe.CT)(e,{init:!1})):("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("SDK not enabled, will not capture session.")}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?this._isClientDoneProcessing(e).then((n=>t.flush(e).then((e=>n&&e)))):(0,J.WD)(!0)}close(e){return this.flush(e).then((e=>(this.getOptions().enabled=!1,e)))}setupIntegrations(){this._isEnabled()&&!this._integrationsInitialized&&(this._integrations=function(e){const t={};return e.forEach((e=>{e&&m(e,t)})),t}(this._options.integrations),this._integrationsInitialized=!0)}getIntegrationById(e){return this._integrations[e]}getIntegration(e){try{return this._integrations[e.id]||null}catch(t){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Cannot retrieve integration ${e.id} from the current Client`),null}}addIntegration(e){m(e,this._integrations)}sendEvent(e,t={}){if(this._dsn){let n=de(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=re(n,se(e,this._options.transportOptions&&this._options.transportOptions.textEncoder));const r=this._sendEnvelope(n);r&&r.then((t=>this.emit("afterSendEvent",e,t)),null)}}sendSession(e){if(this._dsn){const t=function(e,t,n,r){const o=ce(n);return ne({sent_at:(new Date).toISOString(),...o&&{sdk:o},...!!r&&{dsn:b(t)}},["aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this._sendEnvelope(t)}}recordDroppedEvent(e,t,n){if(this._options.sendClientReports){const n=`${e}:${t}`;("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(`Adding outcome: "${n}"`),this._outcomes[n]=this._outcomes[n]+1||1}}on(e,t){this._hooks[e]||(this._hooks[e]=[]),this._hooks[e].push(t)}emit(e,...t){this._hooks[e]&&this._hooks[e].forEach((e=>e(...t)))}_updateSessionFromEvent(e,t){let n=!1,r=!1;const o=t.exception&&t.exception.values;if(o){r=!0;for(const e of o){const t=e.mechanism;if(t&&!1===t.handled){n=!0;break}}}const i="ok"===e.status;(i&&0===e.errors||i&&n)&&((0,pe.CT)(e,{...n&&{status:"crashed"},errors:e.errors||Number(r||n)}),this.captureSession(e))}_isClientDoneProcessing(e){return new J.cW((t=>{let n=0;const r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),t(!0)):(n+=1,e&&n>=e&&(clearInterval(r),t(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._dsn}_prepareEvent(e,t,n){const r=this.getOptions(),o=Object.keys(this._integrations);return!t.integrations&&o.length>0&&(t.integrations=o),ve(r,e,t,n).then((e=>{if(null===e)return e;const{propagationContext:t}=e.sdkProcessingMetadata||{};if(!(e.contexts&&e.contexts.trace)&&t){const{traceId:r,spanId:o,parentSpanId:i,dsc:a}=t;e.contexts={trace:{trace_id:r,span_id:o,parent_span_id:i},...e.contexts};const s=a||function(e,t,n){const r=t.getOptions(),{publicKey:o}=t.getDsn()||{},{segment:i}=n&&n.getUser()||{},a=(0,c.Jr)({environment:r.environment||he.J,release:r.release,user_segment:i,public_key:o,trace_id:e});return t.emit&&t.emit("createDsc",a),a}(r,this,n);e.sdkProcessingMetadata={dynamicSamplingContext:s,...e.sdkProcessingMetadata}}return e}))}_captureEvent(e,t={},n){return this._processEvent(e,t,n).then((e=>e.event_id),(e=>{if("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__){const t=e;"log"===t.logLevel?r.kg.log(t.message):r.kg.warn(t)}}))}_processEvent(e,t,n){const r=this.getOptions(),{sampleRate:o}=r;if(!this._isEnabled())return(0,J.$2)(new fe("SDK not enabled, will not capture event.","log"));const i=xe(e),a=we(e),s=e.type||"error",u=`before send for type \`${s}\``;if(a&&"number"===typeof o&&Math.random()>o)return this.recordDroppedEvent("sample_rate","error",e),(0,J.$2)(new fe(`Discarding event because it's not included in the random sample (sampling rate = ${o})`,"log"));const l="replay_event"===s?"replay":s;return this._prepareEvent(e,t,n).then((n=>{if(null===n)throw this.recordDroppedEvent("event_processor",l,e),new fe("An event processor returned `null`, will not send event.","log");if(t.data&&!0===t.data.__sentry__)return n;const o=function(e,t,n){const{beforeSend:r,beforeSendTransaction:o}=e;if(we(t)&&r)return r(t,n);if(xe(t)&&o)return o(t,n);return t}(r,n,t);return function(e,t){const n=`${t} must return \`null\` or a valid event.`;if((0,B.J8)(e))return e.then((e=>{if(!(0,B.PO)(e)&&null!==e)throw new fe(n);return e}),(e=>{throw new fe(`${t} rejected with ${e}`)}));if(!(0,B.PO)(e)&&null!==e)throw new fe(n);return e}(o,u)})).then((r=>{if(null===r)throw this.recordDroppedEvent("before_send",l,e),new fe(`${u} returned \`null\`, will not send event.`,"log");const o=n&&n.getSession();!i&&o&&this._updateSessionFromEvent(o,r);const a=r.transaction_info;if(i&&a&&r.transaction!==e.transaction){const e="custom";r.transaction_info={...a,source:e}}return this.sendEvent(r,t),r})).then(null,(e=>{if(e instanceof fe)throw e;throw this.captureException(e,{data:{__sentry__:!0},originalException:e}),new fe(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`)}))}_process(e){this._numProcessing++,e.then((e=>(this._numProcessing--,e)),(e=>(this._numProcessing--,e)))}_sendEnvelope(e){if(this._transport&&this._dsn)return this.emit("beforeEnvelope",e),this._transport.send(e).then(null,(e=>{("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Error while sending event:",e)}));("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Transport disabled")}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.keys(e).map((t=>{const[n,r]=t.split(":");return{reason:n,category:r,quantity:e[t]}}))}}function we(e){return void 0===e.type}function xe(e){return"transaction"===e.type}var _e=n(40105),Se=n(68518);function Oe(e,t){const n=Ee(e,t),r={type:t&&t.name,value:Me(t)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function Ce(e,t){return{exception:{values:[Oe(e,t)]}}}function Ee(e,t){const n=t.stacktrace||t.stack||"",r=function(e){if(e){if("number"===typeof e.framesToPop)return e.framesToPop;if(Ae.test(e.message))return 1}return 0}(t);try{return e(n,r)}catch(o){}return[]}const Ae=/Minified React error #\d+;/i;function Me(e){const t=e&&e.message;return t?t.error&&"string"===typeof t.error.message?t.error.message:t:"No error message"}function ke(e,t,n,r,i){let a;if((0,B.VW)(t)&&t.error){return Ce(e,t.error)}if((0,B.TX)(t)||(0,B.fm)(t)){const i=t;if("stack"in t)a=Ce(e,t);else{const t=i.name||((0,B.TX)(i)?"DOMError":"DOMException"),s=i.message?`${t}: ${i.message}`:t;a=Pe(e,s,n,r),(0,o.Db)(a,s)}return"code"in i&&(a.tags={...a.tags,"DOMException.code":`${i.code}`}),a}if((0,B.VZ)(t))return Ce(e,t);if((0,B.PO)(t)||(0,B.cO)(t)){return a=function(e,t,n,r){const o=(0,p.Gd)().getClient(),i=o&&o.getOptions().normalizeDepth,a={exception:{values:[{type:(0,B.cO)(t)?t.constructor.name:r?"UnhandledRejection":"Error",value:Re(t,{isUnhandledRejection:r})}]},extra:{__serialized__:ee(t,i)}};if(n){const t=Ee(e,n);t.length&&(a.exception.values[0].stacktrace={frames:t})}return a}(e,t,n,i),(0,o.EG)(a,{synthetic:!0}),a}return a=Pe(e,t,n,r),(0,o.Db)(a,`${t}`,void 0),(0,o.EG)(a,{synthetic:!0}),a}function Pe(e,t,n,r){const o={message:t};if(r&&n){const r=Ee(e,n);r.length&&(o.exception={values:[{value:t,stacktrace:{frames:r}}]})}return o}function Re(e,{isUnhandledRejection:t}){const n=(0,c.zf)(e),r=t?"promise rejection":"exception";if((0,B.VW)(e))return`Event \`ErrorEvent\` captured as ${r} with message \`${e.message}\``;if((0,B.cO)(e)){return`Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(t){}}(e)}\` (type=${e.type}) captured as ${r}`}return`Object captured as ${r} with keys: ${n}`}var Te=n(64487);const Ie=P.n2;let Be=0;function De(){return Be>0}function je(e,t={},n){if("function"!==typeof e)return e;try{const t=e.__sentry_wrapped__;if(t)return t;if((0,c.HK)(e))return e}catch(i){return e}const r=function(){const r=Array.prototype.slice.call(arguments);try{n&&"function"===typeof n&&n.apply(this,arguments);const o=r.map((e=>je(e,t)));return e.apply(this,o)}catch(i){throw Be++,setTimeout((()=>{Be--})),(0,Te.$e)((e=>{e.addEventProcessor((e=>(t.mechanism&&((0,o.Db)(e,void 0,void 0),(0,o.EG)(e,t.mechanism)),e.extra={...e.extra,arguments:r},e))),(0,Te.Tb)(i)})),i}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch(a){}(0,c.$Q)(r,e),(0,c.xp)(e,"__sentry_wrapped__",r);try{Object.getOwnPropertyDescriptor(r,"name").configurable&&Object.defineProperty(r,"name",{get(){return e.name}})}catch(a){}return r}var Le=n(58464);const Ze=["fatal","error","warning","log","info","debug"];function Ne(e){return"warn"===e?"warning":Ze.includes(e)?e:"log"}function Fe(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}const He=1024,Ve="Breadcrumbs";class ze{static __initStatic(){this.id=Ve}__init(){this.name=ze.id}constructor(e){ze.prototype.__init.call(this),this.options={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e}}setupOnce(){this.options.console&&H("console",Ue),this.options.dom&&H("dom",function(e){function t(t){let n,o="object"===typeof e?e.serializeAttribute:void 0,i="object"===typeof e&&"number"===typeof e.maxStringLength?e.maxStringLength:void 0;i&&i>He&&(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${i} was configured. Sentry will use 1024 instead.`),i=He),"string"===typeof o&&(o=[o]);try{const e=t.event;n=function(e){return!!e&&!!e.target}(e)?(0,Le.Rt)(e.target,{keyAttrs:o,maxStringLength:i}):(0,Le.Rt)(e,{keyAttrs:o,maxStringLength:i})}catch(a){n="<unknown>"}0!==n.length&&(0,p.Gd)().addBreadcrumb({category:`ui.${t.name}`,message:n},{event:t.event,name:t.name,global:t.global})}return t}(this.options.dom)),this.options.xhr&&H("xhr",Ge),this.options.fetch&&H("fetch",We),this.options.history&&H("history",$e)}addSentryBreadcrumb(e){this.options.sentry&&(0,p.Gd)().addBreadcrumb({category:"sentry."+("transaction"===e.type?"transaction":"event"),event_id:e.event_id,level:e.level,message:(0,o.jH)(e)},{event:e})}}function Ue(e){for(let n=0;n<e.args.length;n++)if("ref=Ref<"===e.args[n]){e.args[n+1]="viewRef";break}const t={category:"console",data:{arguments:e.args,logger:"console"},level:Ne(e.level),message:(0,i.nK)(e.args," ")};if("assert"===e.level){if(!1!==e.args[0])return;t.message=`Assertion failed: ${(0,i.nK)(e.args.slice(1)," ")||"console.assert"}`,t.data.arguments=e.args.slice(1)}(0,p.Gd)().addBreadcrumb(t,{input:e.args,level:e.level})}function Ge(e){const{startTimestamp:t,endTimestamp:n}=e,r=e.xhr[L];if(!t||!n||!r)return;const{method:o,url:i,status_code:a,body:s}=r,u={method:o,url:i,status_code:a},l={xhr:e.xhr,input:s,startTimestamp:t,endTimestamp:n};(0,p.Gd)().addBreadcrumb({category:"xhr",data:u,type:"http"},l)}function We(e){const{startTimestamp:t,endTimestamp:n}=e;if(n&&(!e.fetchData.url.match(/sentry_key/)||"POST"!==e.fetchData.method))if(e.error){const r=e.fetchData,o={data:e.error,input:e.args,startTimestamp:t,endTimestamp:n};(0,p.Gd)().addBreadcrumb({category:"fetch",data:r,level:"error",type:"http"},o)}else{const r={...e.fetchData,status_code:e.response&&e.response.status},o={input:e.args,response:e.response,startTimestamp:t,endTimestamp:n};(0,p.Gd)().addBreadcrumb({category:"fetch",data:r,type:"http"},o)}}function $e(e){let t=e.from,n=e.to;const r=Fe(Ie.location.href);let o=Fe(t);const i=Fe(n);o.path||(o=r),r.protocol===i.protocol&&r.host===i.host&&(n=i.relative),r.protocol===o.protocol&&r.host===o.host&&(t=o.relative),(0,p.Gd)().addBreadcrumb({category:"navigation",data:{from:t,to:n}})}ze.__initStatic();class qe extends be{constructor(e){const t=Ie.SENTRY_SDK_SOURCE||(0,Se.S)();e._metadata=e._metadata||{},e._metadata.sdk=e._metadata.sdk||{name:"sentry.javascript.browser",packages:[{name:`${t}:@sentry/browser`,version:_e.J}],version:_e.J},super(e),e.sendClientReports&&Ie.document&&Ie.document.addEventListener("visibilitychange",(()=>{"hidden"===Ie.document.visibilityState&&this._flushOutcomes()}))}eventFromException(e,t){return function(e,t,n,r){const i=ke(e,t,n&&n.syntheticException||void 0,r);return(0,o.EG)(i),i.level="error",n&&n.event_id&&(i.event_id=n.event_id),(0,J.WD)(i)}(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",n){return function(e,t,n="info",r,o){const i=Pe(e,t,r&&r.syntheticException||void 0,o);return i.level=n,r&&r.event_id&&(i.event_id=r.event_id),(0,J.WD)(i)}(this._options.stackParser,e,t,n,this._options.attachStacktrace)}sendEvent(e,t){const n=this.getIntegrationById(Ve);n&&n.addSentryBreadcrumb&&n.addSentryBreadcrumb(e),super.sendEvent(e,t)}captureUserFeedback(e){if(!this._isEnabled())return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("SDK not enabled, will not capture user feedback."));const t=function(e,{metadata:t,tunnel:n,dsn:r}){const o={event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&t.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!r&&{dsn:b(r)}},i=function(e){return[{type:"user_report"},e]}(e);return ne(o,[i])}(e,{metadata:this.getSdkMetadata(),dsn:this.getDsn(),tunnel:this.getOptions().tunnel});this._sendEnvelope(t)}_prepareEvent(e,t,n){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,n)}_flushOutcomes(){const e=this._clearOutcomes();if(0===e.length)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log("No outcomes to send"));if(!this._dsn)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log("No dsn provided, will not send outcomes"));("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log("Sending outcomes:",e);const t=(n=e,ne((o=this._options.tunnel&&b(this._dsn))?{dsn:o}:{},[[{type:"client_report"},{timestamp:i||(0,ge.yW)(),discarded_events:n}]]));var n,o,i;this._sendEnvelope(t)}}class Ye{static __initStatic(){this.id="GlobalHandlers"}__init(){this.name=Ye.id}__init2(){this._installFunc={onerror:Xe,onunhandledrejection:Ke}}constructor(e){Ye.prototype.__init.call(this),Ye.prototype.__init2.call(this),this._options={onerror:!0,onunhandledrejection:!0,...e}}setupOnce(){Error.stackTraceLimit=50;const e=this._options;for(const n in e){const o=this._installFunc[n];o&&e[n]&&(t=n,("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(`Global Handler attached: ${t}`),o(),this._installFunc[n]=void 0)}var t}}function Xe(){H("error",(e=>{const[t,n,r]=et();if(!t.getIntegration(Ye))return;const{msg:o,url:i,line:a,column:s,error:u}=e;if(De()||u&&u.__sentry_own_request__)return;const l=void 0===u&&(0,B.HD)(o)?function(e,t,n,r){const o=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;let i=(0,B.VW)(e)?e.message:e,a="Error";const s=i.match(o);s&&(a=s[1],i=s[2]);const u={exception:{values:[{type:a,value:i}]}};return Je(u,t,n,r)}(o,i,a,s):Je(ke(n,u||o,void 0,r,!1),i,a,s);l.level="error",Qe(t,u,l,"onerror")}))}function Ke(){H("unhandledrejection",(e=>{const[t,n,r]=et();if(!t.getIntegration(Ye))return;let o=e;try{"reason"in e?o=e.reason:"detail"in e&&"reason"in e.detail&&(o=e.detail.reason)}catch(a){}if(De()||o&&o.__sentry_own_request__)return!0;const i=(0,B.pt)(o)?{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(o)}`}]}}:ke(n,o,void 0,r,!0);i.level="error",Qe(t,o,i,"onunhandledrejection")}))}function Je(e,t,n,r){const o=e.exception=e.exception||{},i=o.values=o.values||[],a=i[0]=i[0]||{},s=a.stacktrace=a.stacktrace||{},u=s.frames=s.frames||[],l=isNaN(parseInt(r,10))?void 0:r,c=isNaN(parseInt(n,10))?void 0:n,f=(0,B.HD)(t)&&t.length>0?t:(0,Le.l4)();return 0===u.length&&u.push({colno:l,filename:f,function:"?",in_app:!0,lineno:c}),e}function Qe(e,t,n,r){(0,o.EG)(n,{handled:!1,type:r}),e.captureEvent(n,{originalException:t})}function et(){const e=(0,p.Gd)(),t=e.getClient(),n=t&&t.getOptions()||{stackParser:()=>[],attachStacktrace:!1};return[e,n.stackParser,n.attachStacktrace]}Ye.__initStatic();const tt=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"];class nt{static __initStatic(){this.id="TryCatch"}__init(){this.name=nt.id}constructor(e){nt.prototype.__init.call(this),this._options={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...e}}setupOnce(){this._options.setTimeout&&(0,c.hl)(Ie,"setTimeout",rt),this._options.setInterval&&(0,c.hl)(Ie,"setInterval",rt),this._options.requestAnimationFrame&&(0,c.hl)(Ie,"requestAnimationFrame",ot),this._options.XMLHttpRequest&&"XMLHttpRequest"in Ie&&(0,c.hl)(XMLHttpRequest.prototype,"send",it);const e=this._options.eventTarget;if(e){(Array.isArray(e)?e:tt).forEach(at)}}}function rt(e){return function(...t){const n=t[0];return t[0]=je(n,{mechanism:{data:{function:k(e)},handled:!0,type:"instrument"}}),e.apply(this,t)}}function ot(e){return function(t){return e.apply(this,[je(t,{mechanism:{data:{function:"requestAnimationFrame",handler:k(e)},handled:!0,type:"instrument"}})])}}function it(e){return function(...t){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach((e=>{e in n&&"function"===typeof n[e]&&(0,c.hl)(n,e,(function(t){const n={mechanism:{data:{function:e,handler:k(t)},handled:!0,type:"instrument"}},r=(0,c.HK)(t);return r&&(n.mechanism.data.handler=k(r)),je(t,n)}))})),e.apply(this,t)}}function at(e){const t=Ie,n=t[e]&&t[e].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,c.hl)(n,"addEventListener",(function(t){return function(n,r,o){try{"function"===typeof r.handleEvent&&(r.handleEvent=je(r.handleEvent,{mechanism:{data:{function:"handleEvent",handler:k(r),target:e},handled:!0,type:"instrument"}}))}catch(i){}return t.apply(this,[n,je(r,{mechanism:{data:{function:"addEventListener",handler:k(r),target:e},handled:!0,type:"instrument"}}),o])}})),(0,c.hl)(n,"removeEventListener",(function(e){return function(t,n,r){const o=n;try{const n=o&&o.__sentry_wrapped__;n&&e.call(this,t,n,r)}catch(i){}return e.call(this,t,o,r)}})))}function st(e,t,n=250,r,o,a,s){if(!a.exception||!a.exception.values||!s||!(0,B.V9)(s.originalException,Error))return;const u=a.exception.values.length>0?a.exception.values[a.exception.values.length-1]:void 0;var l,c;u&&(a.exception.values=(l=ut(e,t,o,s.originalException,r,a.exception.values,u,0),c=n,l.map((e=>(e.value&&(e.value=(0,i.$G)(e.value,c)),e)))))}function ut(e,t,n,r,o,i,a,s){if(i.length>=n+1)return i;let u=[...i];if((0,B.V9)(r[o],Error)){lt(a,s);const i=e(t,r[o]),l=u.length;ct(i,o,l,s),u=ut(e,t,n,r[o],o,[i,...u],i,l)}return Array.isArray(r.errors)&&r.errors.forEach(((r,i)=>{if((0,B.V9)(r,Error)){lt(a,s);const l=e(t,r),c=u.length;ct(l,`errors[${i}]`,c,s),u=ut(e,t,n,r,o,[l,...u],l,c)}})),u}function lt(e,t){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,is_exception_group:!0,exception_id:t}}function ct(e,t,n,r){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}nt.__initStatic();class ft{static __initStatic(){this.id="LinkedErrors"}__init(){this.name=ft.id}constructor(e={}){ft.prototype.__init.call(this),this._key=e.key||"cause",this._limit=e.limit||5}setupOnce(e,t){e(((e,n)=>{const r=t(),o=r.getClient(),i=r.getIntegration(ft);if(!o||!i)return e;const a=o.getOptions();return st(Oe,a.stackParser,a.maxValueLength,i._key,i._limit,e,n),e}))}}ft.__initStatic();class dt{constructor(){dt.prototype.__init.call(this)}static __initStatic(){this.id="HttpContext"}__init(){this.name=dt.id}setupOnce(){(0,h.c)((e=>{if((0,p.Gd)().getIntegration(dt)){if(!Ie.navigator&&!Ie.location&&!Ie.document)return e;const t=e.request&&e.request.url||Ie.location&&Ie.location.href,{referrer:n}=Ie.document||{},{userAgent:r}=Ie.navigator||{},o={...e.request&&e.request.headers,...n&&{Referer:n},...r&&{"User-Agent":r}},i={...e.request,...t&&{url:t},headers:o};return{...e,request:i}}return e}))}}dt.__initStatic();class pt{constructor(){pt.prototype.__init.call(this)}static __initStatic(){this.id="Dedupe"}__init(){this.name=pt.id}setupOnce(e,t){const n=e=>{if(e.type)return e;const n=t().getIntegration(pt);if(n){try{if(function(e,t){if(!t)return!1;if(function(e,t){const n=e.message,r=t.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!gt(e,t))return!1;if(!ht(e,t))return!1;return!0}(e,t))return!0;if(function(e,t){const n=vt(t),r=vt(e);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!gt(e,t))return!1;if(!ht(e,t))return!1;return!0}(e,t))return!0;return!1}(e,n._previousEvent))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(o){return n._previousEvent=e}return n._previousEvent=e}return e};n.id=this.name,e(n)}}function ht(e,t){let n=mt(e),r=mt(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){const e=r[o],t=n[o];if(e.filename!==t.filename||e.lineno!==t.lineno||e.colno!==t.colno||e.function!==t.function)return!1}return!0}function gt(e,t){let n=e.fingerprint,r=t.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;try{return!(n.join("")!==r.join(""))}catch(o){return!1}}function vt(e){return e.exception&&e.exception.values&&e.exception.values[0]}function mt(e){const t=e.exception;if(t)try{return t.values[0].stacktrace.frames}catch(n){return}}pt.__initStatic();const yt="?";function bt(e,t,n,r){const o={filename:e,function:t,in_app:!0};return void 0!==n&&(o.lineno=n),void 0!==r&&(o.colno=r),o}const wt=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,xt=/\((\S*)(?::(\d+))(?::(\d+))\)/,_t=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,St=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Ot=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,Ct=A(...[[30,e=>{const t=wt.exec(e);if(t){if(t[2]&&0===t[2].indexOf("eval")){const e=xt.exec(t[2]);e&&(t[2]=e[1],t[3]=e[2],t[4]=e[3])}const[e,n]=Et(t[1]||yt,t[2]);return bt(n,e,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}}],[50,e=>{const t=_t.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const e=St.exec(t[3]);e&&(t[1]=t[1]||"eval",t[3]=e[1],t[4]=e[2],t[5]="")}let e=t[3],n=t[1]||yt;return[n,e]=Et(n,e),bt(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}],[40,e=>{const t=Ot.exec(e);return t?bt(t[2],t[1]||yt,+t[3],t[4]?+t[4]:void 0):void 0}]]),Et=(e,t)=>{const n=-1!==e.indexOf("safari-extension"),r=-1!==e.indexOf("safari-web-extension");return n||r?[-1!==e.indexOf("@")?e.split("@")[0]:yt,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};function At(e){const t=[];function n(e){return t.splice(t.indexOf(e),1)[0]}return{$:t,add:function(r){if(!(void 0===e||t.length<e))return(0,J.$2)(new fe("Not adding Promise because buffer limit was reached."));const o=r();return-1===t.indexOf(o)&&t.push(o),o.then((()=>n(o))).then(null,(()=>n(o).then(null,(()=>{})))),o},drain:function(e){return new J.cW(((n,r)=>{let o=t.length;if(!o)return n(!0);const i=setTimeout((()=>{e&&e>0&&n(!1)}),e);t.forEach((e=>{(0,J.WD)(e).then((()=>{--o||(clearTimeout(i),n(!0))}),r)}))}))}}}const Mt=6e4;function kt(e,{statusCode:t,headers:n},r=Date.now()){const o={...e},i=n&&n["x-sentry-rate-limits"],a=n&&n["retry-after"];if(i)for(const s of i.trim().split(",")){const[e,t]=s.split(":",2),n=parseInt(e,10),i=1e3*(isNaN(n)?60:n);if(t)for(const a of t.split(";"))o[a]=r+i;else o.all=r+i}else a?o.all=r+function(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const r=Date.parse(`${e}`);return isNaN(r)?Mt:r-t}(a,r):429===t&&(o.all=r+6e4);return o}const Pt=30;function Rt(e,t,n=At(e.bufferSize||Pt)){let o={};function i(i){const a=[];if(oe(i,((t,n)=>{const r=le(n);if(function(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}(o,r)){const o=Tt(t,n);e.recordDroppedEvent("ratelimit_backoff",r,o)}else a.push(t)})),0===a.length)return(0,J.WD)();const s=ne(i[0],a),u=t=>{oe(s,((n,r)=>{const o=Tt(n,r);e.recordDroppedEvent(t,le(r),o)}))};return n.add((()=>t({body:ae(s,e.textEncoder)}).then((e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),o=kt(o,e),e)),(e=>{throw u("network_error"),e})))).then((e=>e),(e=>{if(e instanceof fe)return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Skipped sending event because buffer is full."),u("queue_overflow"),(0,J.WD)();throw e}))}return i.__sentry__baseTransport__=!0,{send:i,flush:e=>n.drain(e)}}function Tt(e,t){if("event"===t||"transaction"===t)return Array.isArray(e)?e[1]:void 0}let It;function Bt(e,t=function(){if(It)return It;if(I(Ie.fetch))return It=Ie.fetch.bind(Ie);const e=Ie.document;let t=Ie.fetch;if(e&&"function"===typeof e.createElement)try{const n=e.createElement("iframe");n.hidden=!0,e.head.appendChild(n);const r=n.contentWindow;r&&r.fetch&&(t=r.fetch),e.head.removeChild(n)}catch(n){("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return It=t.bind(Ie)}()){let n=0,o=0;return Rt(e,(function(r){const i=r.body.length;n+=i,o++;const a={body:r.body,method:"POST",referrerPolicy:"origin",headers:e.headers,keepalive:n<=6e4&&o<15,...e.fetchOptions};try{return t(e.url,a).then((e=>(n-=i,o--,{statusCode:e.status,headers:{"x-sentry-rate-limits":e.headers.get("X-Sentry-Rate-Limits"),"retry-after":e.headers.get("Retry-After")}})))}catch(s){return It=void 0,n-=i,o--,(0,J.$2)(s)}}))}const Dt=4;function jt(e){return Rt(e,(function(t){return new J.cW(((n,r)=>{const o=new XMLHttpRequest;o.onerror=r,o.onreadystatechange=()=>{o.readyState===Dt&&n({statusCode:o.status,headers:{"x-sentry-rate-limits":o.getResponseHeader("X-Sentry-Rate-Limits"),"retry-after":o.getResponseHeader("Retry-After")}})},o.open("POST",e.url);for(const t in e.headers)Object.prototype.hasOwnProperty.call(e.headers,t)&&o.setRequestHeader(t,e.headers[t]);o.send(t.body)}))}))}const Lt=[new u,new d,new nt,new ze,new Ye,new ft,new pt,new dt];function Zt(e={}){void 0===e.defaultIntegrations&&(e.defaultIntegrations=Lt),void 0===e.release&&("string"===typeof __SENTRY_RELEASE__&&(e.release=__SENTRY_RELEASE__),Ie.SENTRY_RELEASE&&Ie.SENTRY_RELEASE.id&&(e.release=Ie.SENTRY_RELEASE.id)),void 0===e.autoSessionTracking&&(e.autoSessionTracking=!0),void 0===e.sendClientReports&&(e.sendClientReports=!0);const t={...e,stackParser:(n=e.stackParser||Ct,Array.isArray(n)?A(...n):n),integrations:v(e),transport:e.transport||(T()?Bt:jt)};var n;!function(e,t){!0===t.debug&&("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?r.kg.enable():console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle."));const n=(0,p.Gd)();n.getScope().update(t.initialScope);const o=new e(t);n.bindClient(o)}(qe,t),e.autoSessionTracking&&function(){if("undefined"===typeof Ie.document)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Session tracking in non-browser environment with @sentry/browser is not supported."));const e=(0,p.Gd)();if(!e.captureSession)return;Ft(e),H("history",(({from:e,to:t})=>{void 0!==e&&e!==t&&Ft((0,p.Gd)())}))}()}function Nt(e={},t=(0,p.Gd)()){if(!Ie.document)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Global document not defined in showReportDialog call"));const{client:n,scope:o}=t.getStackTop(),i=e.dsn||n&&n.getDsn();if(!i)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("DSN not configured for showReportDialog call"));o&&(e.user={...o.getUser(),...e.user}),e.eventId||(e.eventId=t.lastEventId());const a=Ie.document.createElement("script");a.async=!0,a.crossOrigin="anonymous",a.src=function(e,t){const n=x(e);if(!n)return"";const r=`${S(n)}embed/error-page/`;let o=`dsn=${b(n)}`;for(const i in t)if("dsn"!==i)if("user"===i){const e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`;return`${r}?${o}`}(i,e),e.onLoad&&(a.onload=e.onLoad);const s=Ie.document.head||Ie.document.body;s?s.appendChild(a):("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Not injecting report dialog. No injection point found in HTML")}function Ft(e){e.startSession({ignoreDuration:!0}),e.captureSession()}},51131:function(e,t,n){"use strict";n.d(t,{J:function(){return r}});const r="production"},64487:function(e,t,n){"use strict";n.d(t,{$e:function(){return a},Tb:function(){return o},av:function(){return i}});var r=n(95659);function o(e,t){return(0,r.Gd)().captureException(e,{captureContext:t})}function i(e){(0,r.Gd)().setUser(e)}function a(e){(0,r.Gd)().withScope(e)}},95659:function(e,t,n){"use strict";n.d(t,{Gd:function(){return g}});var r=n(62844),o=n(21170),i=n(12343),a=n(71235),s=n(51131),u=n(10350),l=n(9015);const c=4,f=100;class d{constructor(e,t=new u.s,n=c){this._version=n,this._stack=[{scope:t}],e&&this.bindClient(e)}isOlderThan(e){return this._version<e}bindClient(e){this.getStackTop().client=e,e&&e.setupIntegrations&&e.setupIntegrations()}pushScope(){const e=u.s.clone(this.getScope());return this.getStack().push({client:this.getClient(),scope:e}),e}popScope(){return!(this.getStack().length<=1)&&!!this.getStack().pop()}withScope(e){const t=this.pushScope();try{e(t)}finally{this.popScope()}}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getStack(){return this._stack}getStackTop(){return this._stack[this._stack.length-1]}captureException(e,t){const n=this._lastEventId=t&&t.event_id?t.event_id:(0,r.DM)(),o=new Error("Sentry syntheticException");return this._withClient(((r,i)=>{r.captureException(e,{originalException:e,syntheticException:o,...t,event_id:n},i)})),n}captureMessage(e,t,n){const o=this._lastEventId=n&&n.event_id?n.event_id:(0,r.DM)(),i=new Error(e);return this._withClient(((r,a)=>{r.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:o},a)})),o}captureEvent(e,t){const n=t&&t.event_id?t.event_id:(0,r.DM)();return e.type||(this._lastEventId=n),this._withClient(((r,o)=>{r.captureEvent(e,{...t,event_id:n},o)})),n}lastEventId(){return this._lastEventId}addBreadcrumb(e,t){const{scope:n,client:r}=this.getStackTop();if(!r)return;const{beforeBreadcrumb:a=null,maxBreadcrumbs:s=f}=r.getOptions&&r.getOptions()||{};if(s<=0)return;const u={timestamp:(0,o.yW)(),...e},l=a?(0,i.Cf)((()=>a(u,t))):u;null!==l&&(r.emit&&r.emit("beforeAddBreadcrumb",l,t),n.addBreadcrumb(l,s))}setUser(e){this.getScope().setUser(e)}setTags(e){this.getScope().setTags(e)}setExtras(e){this.getScope().setExtras(e)}setTag(e,t){this.getScope().setTag(e,t)}setExtra(e,t){this.getScope().setExtra(e,t)}setContext(e,t){this.getScope().setContext(e,t)}configureScope(e){const{scope:t,client:n}=this.getStackTop();n&&e(t)}run(e){const t=h(this);try{e(this)}finally{h(t)}}getIntegration(e){const t=this.getClient();if(!t)return null;try{return t.getIntegration(e)}catch(n){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.kg.warn(`Cannot retrieve integration ${e.id} from the current Hub`),null}}startTransaction(e,t){const n=this._callExtensionMethod("startTransaction",e,t);return"undefined"!==typeof __SENTRY_DEBUG__&&!__SENTRY_DEBUG__||n||console.warn("Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n"),n}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(e=!1){if(e)return this.endSession();this._sendSessionUpdate()}endSession(){const e=this.getStackTop().scope,t=e.getSession();t&&(0,l.RJ)(t),this._sendSessionUpdate(),e.setSession()}startSession(e){const{scope:t,client:n}=this.getStackTop(),{release:r,environment:o=s.J}=n&&n.getOptions()||{},{userAgent:i}=a.n2.navigator||{},u=(0,l.Hv)({release:r,environment:o,user:t.getUser(),...i&&{userAgent:i},...e}),c=t.getSession&&t.getSession();return c&&"ok"===c.status&&(0,l.CT)(c,{status:"exited"}),this.endSession(),t.setSession(u),u}shouldSendDefaultPii(){const e=this.getClient(),t=e&&e.getOptions();return Boolean(t&&t.sendDefaultPii)}_sendSessionUpdate(){const{scope:e,client:t}=this.getStackTop(),n=e.getSession();n&&t&&t.captureSession&&t.captureSession(n)}_withClient(e){const{scope:t,client:n}=this.getStackTop();n&&e(n,t)}_callExtensionMethod(e,...t){const n=p().__SENTRY__;if(n&&n.extensions&&"function"===typeof n.extensions[e])return n.extensions[e].apply(this,t);("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.kg.warn(`Extension method ${e} couldn't be found, doing nothing.`)}}function p(){return a.n2.__SENTRY__=a.n2.__SENTRY__||{extensions:{},hub:void 0},a.n2}function h(e){const t=p(),n=y(t);return b(t,e),n}function g(){const e=p();if(e.__SENTRY__&&e.__SENTRY__.acs){const t=e.__SENTRY__.acs.getCurrentHub();if(t)return t}return v(e)}function v(e=p()){return m(e)&&!y(e).isOlderThan(c)||b(e,new d),y(e)}function m(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function y(e){return(0,a.YO)("hub",(()=>new d),e)}function b(e,t){if(!e)return!1;return(e.__SENTRY__=e.__SENTRY__||{}).hub=t,!0}},10350:function(e,t,n){"use strict";n.d(t,{c:function(){return d},s:function(){return c}});var r=n(67597),o=n(21170),i=n(96893),a=n(12343),s=n(62844),u=n(71235),l=n(9015);class c{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=p()}static clone(e){const t=new c;return e&&(t._breadcrumbs=[...e._breadcrumbs],t._tags={...e._tags},t._extra={...e._extra},t._contexts={...e._contexts},t._user=e._user,t._level=e._level,t._span=e._span,t._session=e._session,t._transactionName=e._transactionName,t._fingerprint=e._fingerprint,t._eventProcessors=[...e._eventProcessors],t._requestSession=e._requestSession,t._attachments=[...e._attachments],t._sdkProcessingMetadata={...e._sdkProcessingMetadata},t._propagationContext={...e._propagationContext}),t}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{},this._session&&(0,l.CT)(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSpan(e){return this._span=e,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const e=this.getSpan();return e&&e.transaction}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;if("function"===typeof e){const t=e(this);return t instanceof c?t:this}return e instanceof c?(this._tags={...this._tags,...e._tags},this._extra={...this._extra,...e._extra},this._contexts={...this._contexts,...e._contexts},e._user&&Object.keys(e._user).length&&(this._user=e._user),e._level&&(this._level=e._level),e._fingerprint&&(this._fingerprint=e._fingerprint),e._requestSession&&(this._requestSession=e._requestSession),e._propagationContext&&(this._propagationContext=e._propagationContext)):(0,r.PO)(e)&&(this._tags={...this._tags,...e.tags},this._extra={...this._extra,...e.extra},this._contexts={...this._contexts,...e.contexts},e.user&&(this._user=e.user),e.level&&(this._level=e.level),e.fingerprint&&(this._fingerprint=e.fingerprint),e.requestSession&&(this._requestSession=e.requestSession),e.propagationContext&&(this._propagationContext=e.propagationContext)),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this._propagationContext=p(),this}addBreadcrumb(e,t){const n="number"===typeof t?t:100;if(n<=0)return this;const r={timestamp:(0,o.yW)(),...e};return this._breadcrumbs=[...this._breadcrumbs,r].slice(-n),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}getAttachments(){return this._attachments}clearAttachments(){return this._attachments=[],this}applyToEvent(e,t={}){if(this._extra&&Object.keys(this._extra).length&&(e.extra={...this._extra,...e.extra}),this._tags&&Object.keys(this._tags).length&&(e.tags={...this._tags,...e.tags}),this._user&&Object.keys(this._user).length&&(e.user={...this._user,...e.user}),this._contexts&&Object.keys(this._contexts).length&&(e.contexts={...this._contexts,...e.contexts}),this._level&&(e.level=this._level),this._transactionName&&(e.transaction=this._transactionName),this._span){e.contexts={trace:this._span.getTraceContext(),...e.contexts};const t=this._span.transaction;if(t){e.sdkProcessingMetadata={dynamicSamplingContext:t.getDynamicSamplingContext(),...e.sdkProcessingMetadata};const n=t.name;n&&(e.tags={transaction:n,...e.tags})}}return this._applyFingerprint(e),e.breadcrumbs=[...e.breadcrumbs||[],...this._breadcrumbs],e.breadcrumbs=e.breadcrumbs.length>0?e.breadcrumbs:void 0,e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...this._sdkProcessingMetadata,propagationContext:this._propagationContext},this._notifyEventProcessors([...f(),...this._eventProcessors],e,t)}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...e},this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}_notifyEventProcessors(e,t,n,o=0){return new i.cW(((i,s)=>{const u=e[o];if(null===t||"function"!==typeof u)i(t);else{const l=u({...t},n);("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&u.id&&null===l&&a.kg.log(`Event processor "${u.id}" dropped event`),(0,r.J8)(l)?l.then((t=>this._notifyEventProcessors(e,t,n,o+1).then(i))).then(null,s):this._notifyEventProcessors(e,l,n,o+1).then(i).then(null,s)}}))}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((e=>{e(this)})),this._notifyingListeners=!1)}_applyFingerprint(e){e.fingerprint=e.fingerprint?(0,s.lE)(e.fingerprint):[],this._fingerprint&&(e.fingerprint=e.fingerprint.concat(this._fingerprint)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}}function f(){return(0,u.YO)("globalEventProcessors",(()=>[]))}function d(e){f().push(e)}function p(){return{traceId:(0,s.DM)(),spanId:(0,s.DM)().substring(16),sampled:!1}}},9015:function(e,t,n){"use strict";n.d(t,{CT:function(){return s},Hv:function(){return a},RJ:function(){return u}});var r=n(21170),o=n(62844),i=n(20535);function a(e){const t=(0,r.ph)(),n={sid:(0,o.DM)(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return(0,i.Jr)({sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:"number"===typeof e.did||"string"===typeof e.did?`${e.did}`:void 0,duration:e.duration,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}(n)};return e&&s(n,e),n}function s(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||(0,r.ph)(),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:(0,o.DM)()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),"number"===typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if("number"===typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),"number"===typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function u(e,t){let n={};t?n={status:t}:"ok"===e.status&&(n={status:"exited"}),s(e,n)}},40105:function(e,t,n){"use strict";n.d(t,{J:function(){return r}});const r="7.60.1"},24975:function(e,t,n){"use strict";n.d(t,{SV:function(){return c}});var r=n(95659),o=n(7576),i=n(64487),a=n(67597),s=n(12343),u=(n(8679),n(67294));const l={componentStack:null,error:null,eventId:null};class c extends u.Component{__init(){this.state=l}__init2(){this._openFallbackReportDialog=!0}constructor(e){super(e),c.prototype.__init.call(this),c.prototype.__init2.call(this),c.prototype.__init3.call(this);const t=(0,r.Gd)().getClient();t&&t.on&&e.showDialog&&(this._openFallbackReportDialog=!1,t.on("afterSendEvent",(t=>{t.type||t.event_id!==this._lastEventId||(0,o.jp)({...e.dialogOptions,eventId:this._lastEventId})})))}componentDidCatch(e,{componentStack:t}){const{beforeCapture:n,onError:r,showDialog:s,dialogOptions:l}=this.props;(0,i.$e)((c=>{if(function(e){const t=e.match(/^([^.]+)/);return null!==t&&parseInt(t[0])>=17}(u.version)&&(0,a.VZ)(e)){const n=new Error(e.message);n.name=`React ErrorBoundary ${n.name}`,n.stack=t,function(e,t){const n=new WeakMap;!function e(t,r){if(!n.has(t))return t.cause?(n.set(t,!0),e(t.cause,r)):void(t.cause=r)}(e,t)}(e,n)}n&&n(c,e,t);const f=(0,i.Tb)(e,{contexts:{react:{componentStack:t}}});r&&r(e,t,f),s&&(this._lastEventId=f,this._openFallbackReportDialog&&(0,o.jp)({...l,eventId:f})),this.setState({error:e,componentStack:t,eventId:f})}))}componentDidMount(){const{onMount:e}=this.props;e&&e()}componentWillUnmount(){const{error:e,componentStack:t,eventId:n}=this.state,{onUnmount:r}=this.props;r&&r(e,t,n)}__init3(){this.resetErrorBoundary=()=>{const{onReset:e}=this.props,{error:t,componentStack:n,eventId:r}=this.state;e&&e(t,n,r),this.setState(l)}}render(){const{fallback:e,children:t}=this.props,n=this.state;if(n.error){let t;return t="function"===typeof e?e({error:n.error,componentStack:n.componentStack,resetError:this.resetErrorBoundary,eventId:n.eventId}):e,u.isValidElement(t)?t:(e&&("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("fallback did not produce a valid ReactElement"),null)}return"function"===typeof t?t():t}}},27923:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var r=n(40105),o=n(7576);function i(e){e._metadata=e._metadata||{},e._metadata.sdk=e._metadata.sdk||{name:"sentry.javascript.react",packages:[{name:"npm:@sentry/react",version:r.J}],version:r.J},(0,o.S1)(e)}},58464:function(e,t,n){"use strict";n.d(t,{Rt:function(){return a},l4:function(){return u}});var r=n(67597);const o=(0,n(71235).Rf)(),i=80;function a(e,t={}){try{let n=e;const r=5,o=[];let a=0,u=0;const l=" > ",c=l.length;let f;const d=Array.isArray(t)?t:t.keyAttrs,p=!Array.isArray(t)&&t.maxStringLength||i;for(;n&&a++<r&&(f=s(n,d),!("html"===f||a>1&&u+o.length*c+f.length>=p));)o.push(f),u+=f.length,n=n.parentNode;return o.reverse().join(l)}catch(n){return"<unknown>"}}function s(e,t){const n=e,o=[];let i,a,s,u,l;if(!n||!n.tagName)return"";o.push(n.tagName.toLowerCase());const c=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(c&&c.length)c.forEach((e=>{o.push(`[${e[0]}="${e[1]}"]`)}));else if(n.id&&o.push(`#${n.id}`),i=n.className,i&&(0,r.HD)(i))for(a=i.split(/\s+/),l=0;l<a.length;l++)o.push(`.${a[l]}`);const f=["aria-label","type","name","title","alt"];for(l=0;l<f.length;l++)s=f[l],u=n.getAttribute(s),u&&o.push(`[${s}="${u}"]`);return o.join("")}function u(){try{return o.document.location.href}catch(e){return""}}},68518:function(e,t,n){"use strict";function r(){return"undefined"!==typeof __SENTRY_BROWSER_BUNDLE__&&!!__SENTRY_BROWSER_BUNDLE__}function o(){return"npm"}n.d(t,{S:function(){return o},n:function(){return r}})},67597:function(e,t,n){"use strict";n.d(t,{Cy:function(){return v},HD:function(){return l},J8:function(){return g},Kj:function(){return h},PO:function(){return f},TX:function(){return s},V9:function(){return y},VW:function(){return a},VZ:function(){return o},cO:function(){return d},fm:function(){return u},i2:function(){return m},kK:function(){return p},pt:function(){return c}});const r=Object.prototype.toString;function o(e){switch(r.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return y(e,Error)}}function i(e,t){return r.call(e)===`[object ${t}]`}function a(e){return i(e,"ErrorEvent")}function s(e){return i(e,"DOMError")}function u(e){return i(e,"DOMException")}function l(e){return i(e,"String")}function c(e){return null===e||"object"!==typeof e&&"function"!==typeof e}function f(e){return i(e,"Object")}function d(e){return"undefined"!==typeof Event&&y(e,Event)}function p(e){return"undefined"!==typeof Element&&y(e,Element)}function h(e){return i(e,"RegExp")}function g(e){return Boolean(e&&e.then&&"function"===typeof e.then)}function v(e){return f(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function m(e){return"number"===typeof e&&e!==e}function y(e,t){try{return e instanceof t}catch(n){return!1}}},12343:function(e,t,n){"use strict";n.d(t,{Cf:function(){return i},RU:function(){return o},kg:function(){return s}});var r=n(71235);const o=["debug","info","warn","error","log","assert","trace"];function i(e){if(!("console"in r.n2))return e();const t=r.n2.console,n={};o.forEach((e=>{const r=t[e]&&t[e].__sentry_original__;e in t&&r&&(n[e]=t[e],t[e]=r)}));try{return e()}finally{Object.keys(n).forEach((e=>{t[e]=n[e]}))}}function a(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1}};return"undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?o.forEach((n=>{t[n]=(...t)=>{e&&i((()=>{r.n2.console[n](`Sentry Logger [${n}]:`,...t)}))}})):o.forEach((e=>{t[e]=()=>{}})),t}let s;s="undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?(0,r.YO)("logger",a):a()},62844:function(e,t,n){"use strict";n.d(t,{DM:function(){return i},Db:function(){return u},EG:function(){return l},YO:function(){return c},jH:function(){return s},lE:function(){return f}});var r=n(20535),o=n(71235);function i(){const e=o.n2,t=e.crypto||e.msCrypto;if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,"");const n=t&&t.getRandomValues?()=>t.getRandomValues(new Uint8Array(1))[0]:()=>16*Math.random();return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,(e=>(e^(15&n())>>e/4).toString(16)))}function a(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function s(e){const{message:t,event_id:n}=e;if(t)return t;const r=a(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"<unknown>":n||"<unknown>"}function u(e,t,n){const r=e.exception=e.exception||{},o=r.values=r.values||[],i=o[0]=o[0]||{};i.value||(i.value=t||""),i.type||(i.type=n||"Error")}function l(e,t){const n=a(e);if(!n)return;const r=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...r,...t},t&&"data"in t){const e={...r&&r.data,...t.data};n.mechanism.data=e}}function c(e){if(e&&e.__sentry_captured__)return!0;try{(0,r.xp)(e,"__sentry_captured__",!0)}catch(t){}return!1}function f(e){return Array.isArray(e)?e:[e]}},61422:function(e,t,n){"use strict";n.d(t,{KV:function(){return o},l$:function(){return i}});var r=n(68518);function o(){return!(0,r.n)()&&"[object process]"===Object.prototype.toString.call("undefined"!==typeof process?process:0)}function i(e,t){return e.require(t)}e=n.hmd(e)},20535:function(e,t,n){"use strict";n.d(t,{$Q:function(){return u},HK:function(){return l},Jr:function(){return g},Sh:function(){return f},_j:function(){return c},hl:function(){return a},xp:function(){return s},zf:function(){return h}});var r=n(58464),o=n(67597),i=n(57321);function a(e,t,n){if(!(t in e))return;const r=e[t],o=n(r);if("function"===typeof o)try{u(o,r)}catch(i){}e[t]=o}function s(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}function u(e,t){const n=t.prototype||{};e.prototype=t.prototype=n,s(e,"__sentry_original__",t)}function l(e){return e.__sentry_original__}function c(e){return Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}function f(e){if((0,o.VZ)(e))return{message:e.message,name:e.name,stack:e.stack,...p(e)};if((0,o.cO)(e)){const t={type:e.type,target:d(e.target),currentTarget:d(e.currentTarget),...p(e)};return"undefined"!==typeof CustomEvent&&(0,o.V9)(e,CustomEvent)&&(t.detail=e.detail),t}return e}function d(e){try{return(0,o.kK)(e)?(0,r.Rt)(e):Object.prototype.toString.call(e)}catch(t){return"<unknown>"}}function p(e){if("object"===typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function h(e,t=40){const n=Object.keys(f(e));if(n.sort(),!n.length)return"[object has no keys]";if(n[0].length>=t)return(0,i.$G)(n[0],t);for(let r=n.length;r>0;r--){const e=n.slice(0,r).join(", ");if(!(e.length>t))return r===n.length?e:(0,i.$G)(e,t)}return""}function g(e){return v(e,new Map)}function v(e,t){if((0,o.PO)(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const o of Object.keys(e))"undefined"!==typeof e[o]&&(r[o]=v(e[o],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(v(e,t))})),r}return e}},57321:function(e,t,n){"use strict";n.d(t,{$G:function(){return o},U0:function(){return a},nK:function(){return i}});var r=n(67597);function o(e,t=0){return"string"!==typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function i(e,t){if(!Array.isArray(e))return"";const n=[];for(let o=0;o<e.length;o++){const t=e[o];try{n.push(String(t))}catch(r){n.push("[value cannot be serialized]")}}return n.join(t)}function a(e,t=[],n=!1){return t.some((t=>function(e,t,n=!1){return!!(0,r.HD)(e)&&((0,r.Kj)(t)?t.test(e):!!(0,r.HD)(t)&&(n?e===t:e.includes(t)))}(e,t,n)))}},96893:function(e,t,n){"use strict";n.d(t,{$2:function(){return a},WD:function(){return i},cW:function(){return s}});var r,o=n(67597);function i(e){return new s((t=>{t(e)}))}function a(e){return new s(((t,n)=>{n(e)}))}!function(e){e[e.PENDING=0]="PENDING";e[e.RESOLVED=1]="RESOLVED";e[e.REJECTED=2]="REJECTED"}(r||(r={}));class s{__init(){this._state=r.PENDING}__init2(){this._handlers=[]}constructor(e){s.prototype.__init.call(this),s.prototype.__init2.call(this),s.prototype.__init3.call(this),s.prototype.__init4.call(this),s.prototype.__init5.call(this),s.prototype.__init6.call(this);try{e(this._resolve,this._reject)}catch(t){this._reject(t)}}then(e,t){return new s(((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(o){r(o)}else n(t)},e=>{if(t)try{n(t(e))}catch(o){r(o)}else r(e)}]),this._executeHandlers()}))}catch(e){return this.then((e=>e),e)}finally(e){return new s(((t,n)=>{let r,o;return this.then((t=>{o=!1,r=t,e&&e()}),(t=>{o=!0,r=t,e&&e()})).then((()=>{o?n(r):t(r)}))}))}__init3(){this._resolve=e=>{this._setResult(r.RESOLVED,e)}}__init4(){this._reject=e=>{this._setResult(r.REJECTED,e)}}__init5(){this._setResult=(e,t)=>{this._state===r.PENDING&&((0,o.J8)(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init6(){this._executeHandlers=()=>{if(this._state===r.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach((e=>{e[0]||(this._state===r.RESOLVED&&e[1](this._value),this._state===r.REJECTED&&e[2](this._value),e[0]=!0)}))}}}},21170:function(e,t,n){"use strict";n.d(t,{ph:function(){return c},yW:function(){return l}});var r=n(61422),o=n(71235);e=n.hmd(e);const i=(0,o.Rf)(),a={nowSeconds:()=>Date.now()/1e3};const s=(0,r.KV)()?function(){try{return(0,r.l$)(e,"perf_hooks").performance}catch(t){return}}():function(){const{performance:e}=i;if(!e||!e.now)return;return{now:()=>e.now(),timeOrigin:Date.now()-e.now()}}(),u=void 0===s?a:{nowSeconds:()=>(s.timeOrigin+s.now())/1e3},l=a.nowSeconds.bind(a),c=u.nowSeconds.bind(u);let f;(()=>{const{performance:e}=i;if(!e||!e.now)return void(f="none");const t=36e5,n=e.now(),r=Date.now(),o=e.timeOrigin?Math.abs(e.timeOrigin+n-r):t,a=o<t,s=e.timing&&e.timing.navigationStart,u="number"===typeof s?Math.abs(s+n-r):t;a||u<t?o<=u?(f="timeOrigin",e.timeOrigin):f="navigationStart":f="dateNow"})()},71235:function(e,t,n){"use strict";function r(e){return e&&e.Math==Math?e:void 0}n.d(t,{Rf:function(){return i},YO:function(){return a},n2:function(){return o}});const o="object"==typeof globalThis&&r(globalThis)||"object"==typeof window&&r(window)||"object"==typeof self&&r(self)||"object"==typeof n.g&&r(n.g)||function(){return this}()||{};function i(){return o}function a(e,t,n){const r=n||o,i=r.__SENTRY__=r.__SENTRY__||{};return i[e]||(i[e]=t())}},37947:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}var o=function(e,t,n,r,o){for(t=t&&t.split?t.split("."):[t],r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e},i=[40,52,64].map((function(e){return e+"em"})),a={space:[0,4,8,16,32,64,128,256,512],fontSizes:[12,14,16,20,24,32,48,64,72]},s={bg:"backgroundColor",m:"margin",mt:"marginTop",mr:"marginRight",mb:"marginBottom",ml:"marginLeft",mx:"marginX",my:"marginY",p:"padding",pt:"paddingTop",pr:"paddingRight",pb:"paddingBottom",pl:"paddingLeft",px:"paddingX",py:"paddingY"},u={marginX:["marginLeft","marginRight"],marginY:["marginTop","marginBottom"],paddingX:["paddingLeft","paddingRight"],paddingY:["paddingTop","paddingBottom"],size:["width","height"]},l={color:"colors",backgroundColor:"colors",borderColor:"colors",margin:"space",marginTop:"space",marginRight:"space",marginBottom:"space",marginLeft:"space",marginX:"space",marginY:"space",padding:"space",paddingTop:"space",paddingRight:"space",paddingBottom:"space",paddingLeft:"space",paddingX:"space",paddingY:"space",top:"space",right:"space",bottom:"space",left:"space",gridGap:"space",gridColumnGap:"space",gridRowGap:"space",gap:"space",columnGap:"space",rowGap:"space",fontFamily:"fonts",fontSize:"fontSizes",fontWeight:"fontWeights",lineHeight:"lineHeights",letterSpacing:"letterSpacings",border:"borders",borderTop:"borders",borderRight:"borders",borderBottom:"borders",borderLeft:"borders",borderWidth:"borderWidths",borderStyle:"borderStyles",borderRadius:"radii",borderTopRightRadius:"radii",borderTopLeftRadius:"radii",borderBottomRightRadius:"radii",borderBottomLeftRadius:"radii",borderTopWidth:"borderWidths",borderTopColor:"colors",borderTopStyle:"borderStyles",borderBottomWidth:"borderWidths",borderBottomColor:"colors",borderBottomStyle:"borderStyles",borderLeftWidth:"borderWidths",borderLeftColor:"colors",borderLeftStyle:"borderStyles",borderRightWidth:"borderWidths",borderRightColor:"colors",borderRightStyle:"borderStyles",outlineColor:"colors",boxShadow:"shadows",textShadow:"shadows",zIndex:"zIndices",width:"sizes",minWidth:"sizes",maxWidth:"sizes",height:"sizes",minHeight:"sizes",maxHeight:"sizes",flexBasis:"sizes",size:"sizes",fill:"colors",stroke:"colors"},c=function(e,t){if("number"!==typeof t||t>=0)return o(e,t,t);var n=Math.abs(t),r=o(e,n,n);return"string"===typeof r?"-"+r:-1*r},f=["margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","top","bottom","left","right"].reduce((function(e,t){var n;return r({},e,((n={})[t]=c,n))}),{});t.ZP=function e(t){return function(n){void 0===n&&(n={});var c=r({},a,{},n.theme||n),d={},p=function(e){return function(t){var n={},r=o(t,"breakpoints",i),a=[null].concat(r.map((function(e){return"@media screen and (min-width: "+e+")"})));for(var s in e){var u="function"===typeof e[s]?e[s](t):e[s];if(null!=u)if(Array.isArray(u))for(var l=0;l<u.slice(0,a.length).length;l++){var c=a[l];c?(n[c]=n[c]||{},null!=u[l]&&(n[c][s]=u[l])):n[s]=u[l]}else n[s]=u}return n}}("function"===typeof t?t(c):t)(c);for(var h in p){var g=p[h],v="function"===typeof g?g(c):g;if("variant"!==h)if(v&&"object"===typeof v)d[h]=e(v)(c);else{var m=o(s,h,h),y=o(l,m),b=o(c,y,o(c,m,{})),w=o(f,m,o)(b,v,v);if(u[m])for(var x=u[m],_=0;_<x.length;_++)d[x[_]]=w;else d[m]=w}else d=r({},d,{},e(o(c,v))(c))}return d}}},21924:function(e,t,n){"use strict";var r=n(10492),o=n(55559),i=o(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"===typeof n&&i(e,".prototype.")>-1?o(n):n}},55559:function(e,t,n){"use strict";var r=n(58612),o=n(10492),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),s=o("%Reflect.apply%",!0)||r.call(a,i),u=o("%Object.getOwnPropertyDescriptor%",!0),l=o("%Object.defineProperty%",!0),c=o("%Math.max%");if(l)try{l({},"a",{value:1})}catch(d){l=null}e.exports=function(e){var t=s(r,a,arguments);u&&l&&(u(t,"length").configurable&&l(t,"length",{value:1+c(0,e.length-(arguments.length-1))}));return t};var f=function(){return s(r,i,arguments)};l?l(e.exports,"apply",{value:f}):e.exports.apply=f},10492:function(e,t,n){"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(t){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(P){u=null}var l=function(){throw new a},c=u?function(){try{return l}catch(e){try{return u(arguments,"callee").get}catch(t){return l}}}():l,f=n(41405)(),d=n(28185)(),p=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),h={},g="undefined"!==typeof Uint8Array&&p?p(Uint8Array):r,v={"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f&&p?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":h,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f&&p?p(p([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&f&&p?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&f&&p?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f&&p?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(p)try{null.error}catch(P){var m=p(p(P));v["%Error.prototype%"]=m}var y=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&p&&(n=p(o.prototype))}return v[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(58612),x=n(17642),_=w.call(Function.call,Array.prototype.concat),S=w.call(Function.apply,Array.prototype.splice),O=w.call(Function.call,String.prototype.replace),C=w.call(Function.call,String.prototype.slice),E=w.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,M=/\\(\\)?/g,k=function(e,t){var n,r=e;if(x(b,r)&&(r="%"+(n=b[r])[0]+"%"),x(v,r)){var i=v[r];if(i===h&&(i=y(r)),"undefined"===typeof i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===E(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=C(e,0,1),n=C(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return O(e,A,(function(e,t,n,o){r[r.length]=n?O(o,M,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=k("%"+r+"%",t),s=i.name,l=i.value,c=!1,f=i.alias;f&&(r=f[0],S(n,_([0,1],f)));for(var d=1,p=!0;d<n.length;d+=1){var h=n[d],g=C(h,0,1),m=C(h,-1);if(('"'===g||"'"===g||"`"===g||'"'===m||"'"===m||"`"===m)&&g!==m)throw new o("property names with quotes must have matching quotes");if("constructor"!==h&&p||(c=!0),x(v,s="%"+(r+="."+h)+"%"))l=v[s];else if(null!=l){if(!(h in l)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(u&&d+1>=n.length){var y=u(l,h);l=(p=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:l[h]}else p=x(l,h),l=l[h];p&&!c&&(v[s]=l)}}return l}},40487:function(e){var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=t},86010:function(e,t,n){"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.r(t),n.d(t,{clsx:function(){return o}}),t.default=o},19662:function(e,t,n){"use strict";var r=n(60614),o=n(66330),i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not a function")}},39483:function(e,t,n){"use strict";var r=n(4411),o=n(66330),i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not a constructor")}},40027:function(e,t,n){"use strict";var r=n(75706).has;e.exports=function(e){return r(e),e}},96077:function(e,t,n){"use strict";var r=n(60614),o=String,i=TypeError;e.exports=function(e){if("object"==typeof e||r(e))return e;throw i("Can't set "+o(e)+" as a prototype")}},88999:function(e,t,n){"use strict";var r=n(79405).has;e.exports=function(e){return r(e),e}},51223:function(e,t,n){"use strict";var r=n(5112),o=n(70030),i=n(3070).f,a=r("unscopables"),s=Array.prototype;void 0==s[a]&&i(s,a,{configurable:!0,value:o(null)}),e.exports=function(e){s[a][e]=!0}},31530:function(e,t,n){"use strict";var r=n(28710).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},25787:function(e,t,n){"use strict";var r=n(47976),o=TypeError;e.exports=function(e,t){if(r(t,e))return e;throw o("Incorrect invocation")}},19670:function(e,t,n){"use strict";var r=n(70111),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not an object")}},7556:function(e,t,n){"use strict";var r=n(47293);e.exports=r((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},18533:function(e,t,n){"use strict";var r=n(42092).forEach,o=n(9341)("forEach");e.exports=o?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},48457:function(e,t,n){"use strict";var r=n(49974),o=n(46916),i=n(47908),a=n(53411),s=n(97659),u=n(4411),l=n(26244),c=n(86135),f=n(18554),d=n(71246),p=Array;e.exports=function(e){var t=i(e),n=u(this),h=arguments.length,g=h>1?arguments[1]:void 0,v=void 0!==g;v&&(g=r(g,h>2?arguments[2]:void 0));var m,y,b,w,x,_,S=d(t),O=0;if(!S||this===p&&s(S))for(m=l(t),y=n?new this(m):p(m);m>O;O++)_=v?g(t[O],O):t[O],c(y,O,_);else for(x=(w=f(t,S)).next,y=n?new this:[];!(b=o(x,w)).done;O++)_=v?a(w,g,[b.value,O],!0):b.value,c(y,O,_);return y.length=O,y}},41318:function(e,t,n){"use strict";var r=n(45656),o=n(51400),i=n(26244),a=function(e){return function(t,n,a){var s,u=r(t),l=i(u),c=o(a,l);if(e&&n!=n){for(;l>c;)if((s=u[c++])!=s)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},42092:function(e,t,n){"use strict";var r=n(49974),o=n(1702),i=n(68361),a=n(47908),s=n(26244),u=n(65417),l=o([].push),c=function(e){var t=1==e,n=2==e,o=3==e,c=4==e,f=6==e,d=7==e,p=5==e||f;return function(h,g,v,m){for(var y,b,w=a(h),x=i(w),_=r(g,v),S=s(x),O=0,C=m||u,E=t?C(h,S):n||d?C(h,0):void 0;S>O;O++)if((p||O in x)&&(b=_(y=x[O],O,w),e))if(t)E[O]=b;else if(b)switch(e){case 3:return!0;case 5:return y;case 6:return O;case 2:l(E,y)}else switch(e){case 4:return!1;case 7:l(E,y)}return f?-1:o||c?c:E}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},81194:function(e,t,n){"use strict";var r=n(47293),o=n(5112),i=n(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},9341:function(e,t,n){"use strict";var r=n(47293);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){return 1},1)}))}},53671:function(e,t,n){"use strict";var r=n(19662),o=n(47908),i=n(68361),a=n(26244),s=TypeError,u=function(e){return function(t,n,u,l){r(n);var c=o(t),f=i(c),d=a(c),p=e?d-1:0,h=e?-1:1;if(u<2)for(;;){if(p in f){l=f[p],p+=h;break}if(p+=h,e?p<0:d<=p)throw s("Reduce of empty array with no initial value")}for(;e?p>=0:d>p;p+=h)p in f&&(l=n(l,f[p],p,c));return l}};e.exports={left:u(!1),right:u(!0)}},83658:function(e,t,n){"use strict";var r=n(19781),o=n(43157),i=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,t){if(o(e)&&!a(e,"length").writable)throw i("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},41589:function(e,t,n){"use strict";var r=n(51400),o=n(26244),i=n(86135),a=Array,s=Math.max;e.exports=function(e,t,n){for(var u=o(e),l=r(t,u),c=r(void 0===n?u:n,u),f=a(s(c-l,0)),d=0;l<c;l++,d++)i(f,d,e[l]);return f.length=d,f}},50206:function(e,t,n){"use strict";var r=n(1702);e.exports=r([].slice)},94362:function(e,t,n){"use strict";var r=n(41589),o=Math.floor,i=function(e,t){var n=e.length,u=o(n/2);return n<8?a(e,t):s(e,i(r(e,0,u),t),i(r(e,u),t),t)},a=function(e,t){for(var n,r,o=e.length,i=1;i<o;){for(r=i,n=e[i];r&&t(e[r-1],n)>0;)e[r]=e[--r];r!==i++&&(e[r]=n)}return e},s=function(e,t,n,r){for(var o=t.length,i=n.length,a=0,s=0;a<o||s<i;)e[a+s]=a<o&&s<i?r(t[a],n[s])<=0?t[a++]:n[s++]:a<o?t[a++]:n[s++];return e};e.exports=i},77475:function(e,t,n){"use strict";var r=n(43157),o=n(4411),i=n(70111),a=n(5112)("species"),s=Array;e.exports=function(e){var t;return r(e)&&(t=e.constructor,(o(t)&&(t===s||r(t.prototype))||i(t)&&null===(t=t[a]))&&(t=void 0)),void 0===t?s:t}},65417:function(e,t,n){"use strict";var r=n(77475);e.exports=function(e,t){return new(r(e))(0===t?0:t)}},21753:function(e,t,n){"use strict";var r=n(46916),o=n(35005),i=n(58173);e.exports=function(e,t,n,a){try{var s=i(e,"return");if(s)return o("Promise").resolve(r(s,e)).then((function(){t(n)}),(function(e){a(e)}))}catch(u){return a(u)}t(n)}},45348:function(e,t,n){"use strict";var r=n(46916),o=n(12534),i=n(19670),a=n(70030),s=n(68880),u=n(89190),l=n(5112),c=n(29909),f=n(35005),d=n(58173),p=n(66462),h=n(76178),g=n(99212),v=f("Promise"),m=l("toStringTag"),y="AsyncIteratorHelper",b="WrapForValidAsyncIterator",w=c.set,x=function(e){var t=!e,n=c.getterFor(e?b:y),s=function(e){var r=o((function(){return n(e)})),i=r.error,a=r.value;return i||t&&a.done?{exit:!0,value:i?v.reject(a):v.resolve(h(void 0,!0))}:{exit:!1,value:a}};return u(a(p),{next:function(){var e=s(this),t=e.value;if(e.exit)return t;var n=o((function(){return i(t.nextHandler(v))})),r=n.error,a=n.value;return r&&(t.done=!0),r?v.reject(a):v.resolve(a)},return:function(){var t=s(this),n=t.value;if(t.exit)return n;n.done=!0;var a,u,l=n.iterator,c=o((function(){if(n.inner)try{g(n.inner.iterator,"normal")}catch(e){return g(l,"throw",e)}return d(l,"return")}));return a=u=c.value,c.error?v.reject(u):void 0===a?v.resolve(h(void 0,!0)):(u=(c=o((function(){return r(a,l)}))).value,c.error?v.reject(u):e?v.resolve(u):v.resolve(u).then((function(e){return i(e),h(void 0,!0)})))}})},_=x(!0),S=x(!1);s(S,m,"Async Iterator Helper"),e.exports=function(e,t){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=t?b:y,r.nextHandler=e,r.counter=0,r.done=!1,w(this,r)};return n.prototype=t?_:S,n}},12269:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(70111),s=n(7207),u=n(35005),l=n(24942),c=n(21753),f=function(e){var t=0==e,n=1==e,f=2==e,d=3==e;return function(e,p,h){i(e);var g=void 0!==p;!g&&t||o(p);var v=l(e),m=u("Promise"),y=v.iterator,b=v.next,w=0;return new m((function(e,o){var u=function(e){c(y,o,e,o)},l=function(){try{if(g)try{s(w)}catch(v){u(v)}m.resolve(i(r(b,y))).then((function(r){try{if(i(r).done)t?(h.length=w,e(h)):e(!d&&(f||void 0));else{var s=r.value;try{if(g){var v=p(s,w),b=function(r){if(n)l();else if(f)r?l():c(y,e,!1,o);else if(t)try{h[w++]=r,l()}catch(i){u(i)}else r?c(y,e,d||s,o):l()};a(v)?m.resolve(v).then(b,u):b(v)}else h[w++]=s,l()}catch(x){u(x)}}}catch(_){o(_)}}),o)}catch(x){o(x)}};l()}))}};e.exports={toArray:f(0),forEach:f(1),every:f(2),some:f(3),find:f(4)}},13232:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(70111),s=n(24942),u=n(45348),l=n(76178),c=n(21753),f=u((function(e){var t=this,n=t.iterator,o=t.mapper;return new e((function(s,u){var f=function(e){t.done=!0,u(e)},d=function(e){c(n,f,e,f)};e.resolve(i(r(t.next,n))).then((function(n){try{if(i(n).done)t.done=!0,s(l(void 0,!0));else{var r=n.value;try{var u=o(r,t.counter++),c=function(e){s(l(e,!1))};a(u)?e.resolve(u).then(c,d):c(u)}catch(p){d(p)}}}catch(h){f(h)}}),f)}))}));e.exports=function(e){return i(this),o(e),new f(s(this),{mapper:e})}},66462:function(e,t,n){"use strict";var r,o,i=n(17854),a=n(5465),s=n(60614),u=n(70030),l=n(79518),c=n(98052),f=n(5112),d=n(31913),p="USE_FUNCTION_CONSTRUCTOR",h=f("asyncIterator"),g=i.AsyncIterator,v=a.AsyncIteratorPrototype;if(v)r=v;else if(s(g))r=g.prototype;else if(a[p]||i[p])try{o=l(l(l(Function("return async function*(){}()")()))),l(o)===Object.prototype&&(r=o)}catch(m){}r?d&&(r=u(r)):r={},s(r[h])||c(r,h,(function(){return this})),e.exports=r},53411:function(e,t,n){"use strict";var r=n(19670),o=n(99212);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(a){o(e,"throw",a)}}},17072:function(e,t,n){"use strict";var r=n(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(s){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(s){}return n}},84326:function(e,t,n){"use strict";var r=n(1702),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},70648:function(e,t,n){"use strict";var r=n(51694),o=n(60614),i=n(84326),a=n(5112)("toStringTag"),s=Object,u="Arguments"==i(function(){return arguments}());e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=s(e),a))?n:u?i(t):"Object"==(r=i(t))&&o(t.callee)?"Arguments":r}},95631:function(e,t,n){"use strict";var r=n(70030),o=n(47045),i=n(89190),a=n(49974),s=n(25787),u=n(68554),l=n(20408),c=n(51656),f=n(76178),d=n(96340),p=n(19781),h=n(62423).fastKey,g=n(29909),v=g.set,m=g.getterFor;e.exports={getConstructor:function(e,t,n,c){var f=e((function(e,o){s(e,d),v(e,{type:t,index:r(null),first:void 0,last:void 0,size:0}),p||(e.size=0),u(o)||l(o,e[c],{that:e,AS_ENTRIES:n})})),d=f.prototype,g=m(t),y=function(e,t,n){var r,o,i=g(e),a=b(e,t);return a?a.value=n:(i.last=a={index:o=h(t,!0),key:t,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),p?i.size++:e.size++,"F"!==o&&(i.index[o]=a)),e},b=function(e,t){var n,r=g(e),o=h(t);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==t)return n};return i(d,{clear:function(){for(var e=g(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,p?e.size=0:this.size=0},delete:function(e){var t=this,n=g(t),r=b(t,e);if(r){var o=r.next,i=r.previous;delete n.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),n.first==r&&(n.first=o),n.last==r&&(n.last=i),p?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=g(this),r=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!b(this,e)}}),i(d,n?{get:function(e){var t=b(this,e);return t&&t.value},set:function(e,t){return y(this,0===e?0:e,t)}}:{add:function(e){return y(this,e=0===e?0:e,e)}}),p&&o(d,"size",{configurable:!0,get:function(){return g(this).size}}),f},setStrong:function(e,t,n){var r=t+" Iterator",o=m(t),i=m(r);c(e,t,(function(e,t){v(this,{type:r,target:e,state:o(e),kind:t,last:void 0})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?f("keys"==t?n.key:"values"==t?n.value:[n.key,n.value],!1):(e.target=void 0,f(void 0,!0))}),n?"entries":"values",!n,!0),d(t)}}},77710:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(1702),a=n(54705),s=n(98052),u=n(62423),l=n(20408),c=n(25787),f=n(60614),d=n(68554),p=n(70111),h=n(47293),g=n(17072),v=n(58003),m=n(79587);e.exports=function(e,t,n){var y=-1!==e.indexOf("Map"),b=-1!==e.indexOf("Weak"),w=y?"set":"add",x=o[e],_=x&&x.prototype,S=x,O={},C=function(e){var t=i(_[e]);s(_,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(b&&!p(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return b&&!p(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(b&&!p(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(a(e,!f(x)||!(b||_.forEach&&!h((function(){(new x).entries().next()})))))S=n.getConstructor(t,e,y,w),u.enable();else if(a(e,!0)){var E=new S,A=E[w](b?{}:-0,1)!=E,M=h((function(){E.has(1)})),k=g((function(e){new x(e)})),P=!b&&h((function(){for(var e=new x,t=5;t--;)e[w](t,t);return!e.has(-0)}));k||((S=t((function(e,t){c(e,_);var n=m(new x,e,S);return d(t)||l(t,n[w],{that:n,AS_ENTRIES:y}),n}))).prototype=_,_.constructor=S),(M||P)&&(C("delete"),C("has"),y&&C("get")),(P||A)&&C(w),b&&_.clear&&delete _.clear}return O[e]=S,r({global:!0,constructor:!0,forced:S!=x},O),v(S,e),b||n.setStrong(S,e,y),S}},99920:function(e,t,n){"use strict";var r=n(92597),o=n(53887),i=n(31236),a=n(3070);e.exports=function(e,t,n){for(var s=o(t),u=a.f,l=i.f,c=0;c<s.length;c++){var f=s[c];r(e,f)||n&&r(n,f)||u(e,f,l(t,f))}}},84964:function(e,t,n){"use strict";var r=n(5112)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(o){}}return!1}},49920:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},76178:function(e){"use strict";e.exports=function(e,t){return{value:e,done:t}}},68880:function(e,t,n){"use strict";var r=n(19781),o=n(3070),i=n(79114);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},79114:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},86135:function(e,t,n){"use strict";var r=n(34948),o=n(3070),i=n(79114);e.exports=function(e,t,n){var a=r(t);a in e?o.f(e,a,i(0,n)):e[a]=n}},47045:function(e,t,n){"use strict";var r=n(56339),o=n(3070);e.exports=function(e,t,n){return n.get&&r(n.get,t,{getter:!0}),n.set&&r(n.set,t,{setter:!0}),o.f(e,t,n)}},98052:function(e,t,n){"use strict";var r=n(60614),o=n(3070),i=n(56339),a=n(13072);e.exports=function(e,t,n,s){s||(s={});var u=s.enumerable,l=void 0!==s.name?s.name:t;if(r(n)&&i(n,l,s),s.global)u?e[t]=n:a(t,n);else{try{s.unsafe?e[t]&&(u=!0):delete e[t]}catch(c){}u?e[t]=n:o.f(e,t,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}},89190:function(e,t,n){"use strict";var r=n(98052);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},13072:function(e,t,n){"use strict";var r=n(17854),o=Object.defineProperty;e.exports=function(e,t){try{o(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},85117:function(e,t,n){"use strict";var r=n(66330),o=TypeError;e.exports=function(e,t){if(!delete e[t])throw o("Cannot delete property "+r(t)+" of "+r(e))}},19781:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4154:function(e){"use strict";var t="object"==typeof document&&document.all,n="undefined"==typeof t&&void 0!==t;e.exports={all:t,IS_HTMLDDA:n}},80317:function(e,t,n){"use strict";var r=n(17854),o=n(70111),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},7207:function(e){"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},48324:function(e){"use strict";e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},98509:function(e,t,n){"use strict";var r=n(80317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;e.exports=o===Object.prototype?void 0:o},68886:function(e,t,n){"use strict";var r=n(88113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},7871:function(e,t,n){"use strict";var r=n(83823),o=n(35268);e.exports=!r&&!o&&"object"==typeof window&&"object"==typeof document},83823:function(e){"use strict";e.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},30256:function(e,t,n){"use strict";var r=n(88113);e.exports=/MSIE|Trident/.test(r)},71528:function(e,t,n){"use strict";var r=n(88113);e.exports=/ipad|iphone|ipod/i.test(r)&&"undefined"!=typeof Pebble},6833:function(e,t,n){"use strict";var r=n(88113);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},35268:function(e,t,n){"use strict";var r=n(84326);e.exports="undefined"!=typeof process&&"process"==r(process)},71036:function(e,t,n){"use strict";var r=n(88113);e.exports=/web0s(?!.*chrome)/i.test(r)},88113:function(e){"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},7392:function(e,t,n){"use strict";var r,o,i=n(17854),a=n(88113),s=i.process,u=i.Deno,l=s&&s.versions||u&&u.version,c=l&&l.v8;c&&(o=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},98008:function(e,t,n){"use strict";var r=n(88113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},80748:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},82109:function(e,t,n){"use strict";var r=n(17854),o=n(31236).f,i=n(68880),a=n(98052),s=n(13072),u=n(99920),l=n(54705);e.exports=function(e,t){var n,c,f,d,p,h=e.target,g=e.global,v=e.stat;if(n=g?r:v?r[h]||s(h,{}):(r[h]||{}).prototype)for(c in t){if(d=t[c],f=e.dontCallGetSet?(p=o(n,c))&&p.value:n[c],!l(g?c:h+(v?".":"#")+c,e.forced)&&void 0!==f){if(typeof d==typeof f)continue;u(d,f)}(e.sham||f&&f.sham)&&i(d,"sham",!0),a(n,c,d,e)}}},47293:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},27007:function(e,t,n){"use strict";n(74916);var r=n(21470),o=n(98052),i=n(22261),a=n(47293),s=n(5112),u=n(68880),l=s("species"),c=RegExp.prototype;e.exports=function(e,t,n,f){var d=s(e),p=!a((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),h=p&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[d]=/./[d]),n.exec=function(){return t=!0,null},n[d](""),!t}));if(!p||!h||n){var g=r(/./[d]),v=t(d,""[e],(function(e,t,n,o,a){var s=r(e),u=t.exec;return u===i||u===c.exec?p&&!a?{done:!0,value:g(t,n,o)}:{done:!0,value:s(n,t,o)}:{done:!1}}));o(String.prototype,e,v[0]),o(c,d,v[1])}f&&u(c[d],"sham",!0)}},76677:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},22104:function(e,t,n){"use strict";var r=n(34374),o=Function.prototype,i=o.apply,a=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},49974:function(e,t,n){"use strict";var r=n(21470),o=n(19662),i=n(34374),a=r(r.bind);e.exports=function(e,t){return o(e),void 0===t?e:i?a(e,t):function(){return e.apply(t,arguments)}}},34374:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},27065:function(e,t,n){"use strict";var r=n(1702),o=n(19662),i=n(70111),a=n(92597),s=n(50206),u=n(34374),l=Function,c=r([].concat),f=r([].join),d={};e.exports=u?l.bind:function(e){var t=o(this),n=t.prototype,r=s(arguments,1),u=function(){var n=c(r,s(arguments));return this instanceof u?function(e,t,n){if(!a(d,t)){for(var r=[],o=0;o<t;o++)r[o]="a["+o+"]";d[t]=l("C,a","return new C("+f(r,",")+")")}return d[t](e,n)}(t,n.length,n):t.apply(e,n)};return i(n)&&(u.prototype=n),u}},46916:function(e,t,n){"use strict";var r=n(34374),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},76530:function(e,t,n){"use strict";var r=n(19781),o=n(92597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),u=s&&"something"===function(){}.name,l=s&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:u,CONFIGURABLE:l}},75668:function(e,t,n){"use strict";var r=n(1702),o=n(19662);e.exports=function(e,t,n){try{return r(o(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(i){}}},21470:function(e,t,n){"use strict";var r=n(84326),o=n(1702);e.exports=function(e){if("Function"===r(e))return o(e)}},1702:function(e,t,n){"use strict";var r=n(34374),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);e.exports=r?a:function(e){return function(){return i.apply(e,arguments)}}},35005:function(e,t,n){"use strict";var r=n(17854),o=n(60614);e.exports=function(e,t){return arguments.length<2?(n=r[e],o(n)?n:void 0):r[e]&&r[e][t];var n}},24942:function(e){"use strict";e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},71246:function(e,t,n){"use strict";var r=n(70648),o=n(58173),i=n(68554),a=n(97497),s=n(5112)("iterator");e.exports=function(e){if(!i(e))return o(e,s)||o(e,"@@iterator")||a[r(e)]}},18554:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(66330),s=n(71246),u=TypeError;e.exports=function(e,t){var n=arguments.length<2?s(e):t;if(o(n))return i(r(n,e));throw u(a(e)+" is not iterable")}},88044:function(e,t,n){"use strict";var r=n(1702),o=n(43157),i=n(60614),a=n(84326),s=n(41340),u=r([].push);e.exports=function(e){if(i(e))return e;if(o(e)){for(var t=e.length,n=[],r=0;r<t;r++){var l=e[r];"string"==typeof l?u(n,l):"number"!=typeof l&&"Number"!=a(l)&&"String"!=a(l)||u(n,s(l))}var c=n.length,f=!0;return function(e,t){if(f)return f=!1,t;if(o(this))return t;for(var r=0;r<c;r++)if(n[r]===e)return t}}}},58173:function(e,t,n){"use strict";var r=n(19662),o=n(68554);e.exports=function(e,t){var n=e[t];return o(n)?void 0:r(n)}},738:function(e,t,n){"use strict";var r=n(19662),o=n(19670),i=n(46916),a=n(19303),s=n(24942),u="Invalid size",l=RangeError,c=TypeError,f=Math.max,d=function(e,t,n,r){this.set=e,this.size=t,this.has=n,this.keys=r};d.prototype={getIterator:function(){return s(o(i(this.keys,this.set)))},includes:function(e){return i(this.has,this.set,e)}},e.exports=function(e){o(e);var t=+e.size;if(t!=t)throw c(u);var n=a(t);if(n<0)throw l(u);return new d(e,f(n,0),r(e.has),r(e.keys))}},10647:function(e,t,n){"use strict";var r=n(1702),o=n(47908),i=Math.floor,a=r("".charAt),s=r("".replace),u=r("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,f,d){var p=n+e.length,h=r.length,g=c;return void 0!==f&&(f=o(f),g=l),s(d,g,(function(o,s){var l;switch(a(s,0)){case"$":return"$";case"&":return e;case"`":return u(t,0,n);case"'":return u(t,p);case"<":l=f[u(s,1,-1)];break;default:var c=+s;if(0===c)return o;if(c>h){var d=i(c/10);return 0===d?o:d<=h?void 0===r[d-1]?a(s,1):r[d-1]+a(s,1):o}l=r[c-1]}return void 0===l?"":l}))}},17854:function(e,t,n){"use strict";var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||this||Function("return this")()},92597:function(e,t,n){"use strict";var r=n(1702),o=n(47908),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},3501:function(e){"use strict";e.exports={}},842:function(e){"use strict";e.exports=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(n){}}},60490:function(e,t,n){"use strict";var r=n(35005);e.exports=r("document","documentElement")},64664:function(e,t,n){"use strict";var r=n(19781),o=n(47293),i=n(80317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},68361:function(e,t,n){"use strict";var r=n(1702),o=n(47293),i=n(84326),a=Object,s=r("".split);e.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?s(e,""):a(e)}:a},79587:function(e,t,n){"use strict";var r=n(60614),o=n(70111),i=n(27674);e.exports=function(e,t,n){var a,s;return i&&r(a=t.constructor)&&a!==n&&o(s=a.prototype)&&s!==n.prototype&&i(e,s),e}},42788:function(e,t,n){"use strict";var r=n(1702),o=n(60614),i=n(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},62423:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(3501),a=n(70111),s=n(92597),u=n(3070).f,l=n(8006),c=n(1156),f=n(52050),d=n(69711),p=n(76677),h=!1,g=d("meta"),v=0,m=function(e){u(e,g,{value:{objectID:"O"+v++,weakData:{}}})},y=e.exports={enable:function(){y.enable=function(){},h=!0;var e=l.f,t=o([].splice),n={};n[g]=1,e(n).length&&(l.f=function(n){for(var r=e(n),o=0,i=r.length;o<i;o++)if(r[o]===g){t(r,o,1);break}return r},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:c.f}))},fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,g)){if(!f(e))return"F";if(!t)return"E";m(e)}return e[g].objectID},getWeakData:function(e,t){if(!s(e,g)){if(!f(e))return!0;if(!t)return!1;m(e)}return e[g].weakData},onFreeze:function(e){return p&&h&&f(e)&&!s(e,g)&&m(e),e}};i[g]=!0},29909:function(e,t,n){"use strict";var r,o,i,a=n(94811),s=n(17854),u=n(70111),l=n(68880),c=n(92597),f=n(5465),d=n(6200),p=n(3501),h="Object already initialized",g=s.TypeError,v=s.WeakMap;if(a||f.state){var m=f.state||(f.state=new v);m.get=m.get,m.has=m.has,m.set=m.set,r=function(e,t){if(m.has(e))throw g(h);return t.facade=e,m.set(e,t),t},o=function(e){return m.get(e)||{}},i=function(e){return m.has(e)}}else{var y=d("state");p[y]=!0,r=function(e,t){if(c(e,y))throw g(h);return t.facade=e,l(e,y,t),t},o=function(e){return c(e,y)?e[y]:{}},i=function(e){return c(e,y)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!u(t)||(n=o(t)).type!==e)throw g("Incompatible receiver, "+e+" required");return n}}}},97659:function(e,t,n){"use strict";var r=n(5112),o=n(97497),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},43157:function(e,t,n){"use strict";var r=n(84326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},60614:function(e,t,n){"use strict";var r=n(4154),o=r.all;e.exports=r.IS_HTMLDDA?function(e){return"function"==typeof e||e===o}:function(e){return"function"==typeof e}},4411:function(e,t,n){"use strict";var r=n(1702),o=n(47293),i=n(60614),a=n(70648),s=n(35005),u=n(42788),l=function(){},c=[],f=s("Reflect","construct"),d=/^\s*(?:class|function)\b/,p=r(d.exec),h=!d.exec(l),g=function(e){if(!i(e))return!1;try{return f(l,c,e),!0}catch(t){return!1}},v=function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return h||!!p(d,u(e))}catch(t){return!0}};v.sham=!0,e.exports=!f||o((function(){var e;return g(g.call)||!g(Object)||!g((function(){e=!0}))||e}))?v:g},54705:function(e,t,n){"use strict";var r=n(47293),o=n(60614),i=/#|\.prototype\./,a=function(e,t){var n=u[s(e)];return n==c||n!=l&&(o(t)?r(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=a.data={},l=a.NATIVE="N",c=a.POLYFILL="P";e.exports=a},25615:function(e,t,n){"use strict";var r=n(70648),o=n(92597),i=n(68554),a=n(5112),s=n(97497),u=a("iterator"),l=Object;e.exports=function(e){if(i(e))return!1;var t=l(e);return void 0!==t[u]||"@@iterator"in t||o(s,r(t))}},68554:function(e){"use strict";e.exports=function(e){return null===e||void 0===e}},70111:function(e,t,n){"use strict";var r=n(60614),o=n(4154),i=o.all;e.exports=o.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:r(e)||e===i}:function(e){return"object"==typeof e?null!==e:r(e)}},31913:function(e){"use strict";e.exports=!1},47850:function(e,t,n){"use strict";var r=n(70111),o=n(84326),i=n(5112)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},52190:function(e,t,n){"use strict";var r=n(35005),o=n(60614),i=n(47976),a=n(43307),s=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return o(t)&&i(t.prototype,s(e))}},6333:function(e,t,n){"use strict";var r=n(46916);e.exports=function(e,t,n){for(var o,i,a=n?e:e.iterator,s=e.next;!(o=r(s,a)).done;)if(void 0!==(i=t(o.value)))return i}},20408:function(e,t,n){"use strict";var r=n(49974),o=n(46916),i=n(19670),a=n(66330),s=n(97659),u=n(26244),l=n(47976),c=n(18554),f=n(71246),d=n(99212),p=TypeError,h=function(e,t){this.stopped=e,this.result=t},g=h.prototype;e.exports=function(e,t,n){var v,m,y,b,w,x,_,S=n&&n.that,O=!(!n||!n.AS_ENTRIES),C=!(!n||!n.IS_RECORD),E=!(!n||!n.IS_ITERATOR),A=!(!n||!n.INTERRUPTED),M=r(t,S),k=function(e){return v&&d(v,"normal",e),new h(!0,e)},P=function(e){return O?(i(e),A?M(e[0],e[1],k):M(e[0],e[1])):A?M(e,k):M(e)};if(C)v=e.iterator;else if(E)v=e;else{if(!(m=f(e)))throw p(a(e)+" is not iterable");if(s(m)){for(y=0,b=u(e);b>y;y++)if((w=P(e[y]))&&l(g,w))return w;return new h(!1)}v=c(e,m)}for(x=C?e.next:v.next;!(_=o(x,v)).done;){try{w=P(_.value)}catch(R){d(v,"throw",R)}if("object"==typeof w&&w&&l(g,w))return w}return new h(!1)}},99212:function(e,t,n){"use strict";var r=n(46916),o=n(19670),i=n(58173);e.exports=function(e,t,n){var a,s;o(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(u){s=!0,a=u}if("throw"===t)throw n;if(s)throw a;return o(a),n}},63061:function(e,t,n){"use strict";var r=n(13383).IteratorPrototype,o=n(70030),i=n(79114),a=n(58003),s=n(97497),u=function(){return this};e.exports=function(e,t,n,l){var c=t+" Iterator";return e.prototype=o(r,{next:i(+!l,n)}),a(e,c,!1,!0),s[c]=u,e}},54956:function(e,t,n){"use strict";var r=n(46916),o=n(70030),i=n(68880),a=n(89190),s=n(5112),u=n(29909),l=n(58173),c=n(13383).IteratorPrototype,f=n(76178),d=n(99212),p=s("toStringTag"),h="IteratorHelper",g="WrapForValidIterator",v=u.set,m=function(e){var t=u.getterFor(e?g:h);return a(o(c),{next:function(){var n=t(this);if(e)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return f(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=t(this),o=n.iterator;if(n.done=!0,e){var i=l(o,"return");return i?r(i,o):f(void 0,!0)}if(n.inner)try{d(n.inner.iterator,"normal")}catch(a){return d(o,"throw",a)}return d(o,"normal"),f(void 0,!0)}})},y=m(!0),b=m(!1);i(b,p,"Iterator Helper"),e.exports=function(e,t){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=t?g:h,r.nextHandler=e,r.counter=0,r.done=!1,v(this,r)};return n.prototype=t?y:b,n}},51656:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(31913),a=n(76530),s=n(60614),u=n(63061),l=n(79518),c=n(27674),f=n(58003),d=n(68880),p=n(98052),h=n(5112),g=n(97497),v=n(13383),m=a.PROPER,y=a.CONFIGURABLE,b=v.IteratorPrototype,w=v.BUGGY_SAFARI_ITERATORS,x=h("iterator"),_="keys",S="values",O="entries",C=function(){return this};e.exports=function(e,t,n,a,h,v,E){u(n,t,a);var A,M,k,P=function(e){if(e===h&&D)return D;if(!w&&e in I)return I[e];switch(e){case _:case S:case O:return function(){return new n(this,e)}}return function(){return new n(this)}},R=t+" Iterator",T=!1,I=e.prototype,B=I[x]||I["@@iterator"]||h&&I[h],D=!w&&B||P(h),j="Array"==t&&I.entries||B;if(j&&(A=l(j.call(new e)))!==Object.prototype&&A.next&&(i||l(A)===b||(c?c(A,b):s(A[x])||p(A,x,C)),f(A,R,!0,!0),i&&(g[R]=C)),m&&h==S&&B&&B.name!==S&&(!i&&y?d(I,"name",S):(T=!0,D=function(){return o(B,this)})),h)if(M={values:P(S),keys:v?D:P(_),entries:P(O)},E)for(k in M)(w||T||!(k in I))&&p(I,k,M[k]);else r({target:t,proto:!0,forced:w||T},M);return i&&!E||I[x]===D||p(I,x,D,{name:h}),g[t]=D,M}},20487:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(24942),s=n(54956),u=n(53411),l=s((function(){var e=this.iterator,t=i(r(this.next,e));if(!(this.done=!!t.done))return u(e,this.mapper,[t.value,this.counter++],!0)}));e.exports=function(e){return i(this),o(e),new l(a(this),{mapper:e})}},13383:function(e,t,n){"use strict";var r,o,i,a=n(47293),s=n(60614),u=n(70111),l=n(70030),c=n(79518),f=n(98052),d=n(5112),p=n(31913),h=d("iterator"),g=!1;[].keys&&("next"in(i=[].keys())?(o=c(c(i)))!==Object.prototype&&(r=o):g=!0),!u(r)||a((function(){var e={};return r[h].call(e)!==e}))?r={}:p&&(r=l(r)),s(r[h])||f(r,h,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:g}},97497:function(e){"use strict";e.exports={}},26244:function(e,t,n){"use strict";var r=n(17466);e.exports=function(e){return r(e.length)}},56339:function(e,t,n){"use strict";var r=n(1702),o=n(47293),i=n(60614),a=n(92597),s=n(19781),u=n(76530).CONFIGURABLE,l=n(42788),c=n(29909),f=c.enforce,d=c.get,p=String,h=Object.defineProperty,g=r("".slice),v=r("".replace),m=r([].join),y=s&&!o((function(){return 8!==h((function(){}),"length",{value:8}).length})),b=String(String).split("String"),w=e.exports=function(e,t,n){"Symbol("===g(p(t),0,7)&&(t="["+v(p(t),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||u&&e.name!==t)&&(s?h(e,"name",{value:t,configurable:!0}):e.name=t),y&&n&&a(n,"arity")&&e.length!==n.arity&&h(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&h(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(o){}var r=f(e);return a(r,"source")||(r.source=m(b,"string"==typeof t?t:"")),e};Function.prototype.toString=w((function(){return i(this)&&d(this).source||l(this)}),"toString")},75706:function(e,t,n){"use strict";var r=n(1702),o=Map.prototype;e.exports={Map:Map,set:r(o.set),get:r(o.get),has:r(o.has),remove:r(o.delete),proto:o}},14995:function(e,t,n){"use strict";var r=n(1702),o=n(6333),i=n(75706),a=i.Map,s=i.proto,u=r(s.forEach),l=r(s.entries),c=l(new a).next;e.exports=function(e,t,n){return n?o({iterator:l(e),next:c},(function(e){return t(e[1],e[0])})):u(e,t)}},74758:function(e){"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},95948:function(e,t,n){"use strict";var r,o,i,a,s,u=n(17854),l=n(49974),c=n(31236).f,f=n(20261).set,d=n(18572),p=n(6833),h=n(71528),g=n(71036),v=n(35268),m=u.MutationObserver||u.WebKitMutationObserver,y=u.document,b=u.process,w=u.Promise,x=c(u,"queueMicrotask"),_=x&&x.value;if(!_){var S=new d,O=function(){var e,t;for(v&&(e=b.domain)&&e.exit();t=S.get();)try{t()}catch(n){throw S.head&&r(),n}e&&e.enter()};p||v||g||!m||!y?!h&&w&&w.resolve?((a=w.resolve(void 0)).constructor=w,s=l(a.then,a),r=function(){s(O)}):v?r=function(){b.nextTick(O)}:(f=l(f,u),r=function(){f(O)}):(o=!0,i=y.createTextNode(""),new m(O).observe(i,{characterData:!0}),r=function(){i.data=o=!o}),_=function(e){S.head||r(),S.add(e)}}e.exports=_},78523:function(e,t,n){"use strict";var r=n(19662),o=TypeError,i=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw o("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new i(e)}},3929:function(e,t,n){"use strict";var r=n(47850),o=TypeError;e.exports=function(e){if(r(e))throw o("The method doesn't accept regular expressions");return e}},83009:function(e,t,n){"use strict";var r=n(17854),o=n(47293),i=n(1702),a=n(41340),s=n(53111).trim,u=n(81361),l=r.parseInt,c=r.Symbol,f=c&&c.iterator,d=/^[+-]?0x/i,p=i(d.exec),h=8!==l(u+"08")||22!==l(u+"0x16")||f&&!o((function(){l(Object(f))}));e.exports=h?function(e,t){var n=s(a(e));return l(n,t>>>0||(p(d,n)?16:10))}:l},21574:function(e,t,n){"use strict";var r=n(19781),o=n(1702),i=n(46916),a=n(47293),s=n(81956),u=n(25181),l=n(55296),c=n(47908),f=n(68361),d=Object.assign,p=Object.defineProperty,h=o([].concat);e.exports=!d||a((function(){if(r&&1!==d({b:1},d(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach((function(e){t[e]=e})),7!=d({},e)[n]||s(d({},t)).join("")!=o}))?function(e,t){for(var n=c(e),o=arguments.length,a=1,d=u.f,p=l.f;o>a;)for(var g,v=f(arguments[a++]),m=d?h(s(v),d(v)):s(v),y=m.length,b=0;y>b;)g=m[b++],r&&!i(p,v,g)||(n[g]=v[g]);return n}:d},70030:function(e,t,n){"use strict";var r,o=n(19670),i=n(36048),a=n(80748),s=n(3501),u=n(60490),l=n(80317),c=n(6200),f="prototype",d="script",p=c("IE_PROTO"),h=function(){},g=function(e){return"<"+d+">"+e+"</"+d+">"},v=function(e){e.write(g("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}m="undefined"!=typeof document?document.domain&&r?v(r):function(){var e,t=l("iframe"),n="java"+d+":";return t.style.display="none",u.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F}():v(r);for(var e=a.length;e--;)delete m[f][a[e]];return m()};s[p]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(h[f]=o(e),n=new h,h[f]=null,n[p]=e):n=m(),void 0===t?n:i.f(n,t)}},36048:function(e,t,n){"use strict";var r=n(19781),o=n(3353),i=n(3070),a=n(19670),s=n(45656),u=n(81956);t.f=r&&!o?Object.defineProperties:function(e,t){a(e);for(var n,r=s(t),o=u(t),l=o.length,c=0;l>c;)i.f(e,n=o[c++],r[n]);return e}},3070:function(e,t,n){"use strict";var r=n(19781),o=n(64664),i=n(3353),a=n(19670),s=n(34948),u=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,f="enumerable",d="configurable",p="writable";t.f=r?i?function(e,t,n){if(a(e),t=s(t),a(n),"function"===typeof e&&"prototype"===t&&"value"in n&&p in n&&!n[p]){var r=c(e,t);r&&r[p]&&(e[t]=n.value,n={configurable:d in n?n[d]:r[d],enumerable:f in n?n[f]:r[f],writable:!1})}return l(e,t,n)}:l:function(e,t,n){if(a(e),t=s(t),a(n),o)try{return l(e,t,n)}catch(r){}if("get"in n||"set"in n)throw u("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},31236:function(e,t,n){"use strict";var r=n(19781),o=n(46916),i=n(55296),a=n(79114),s=n(45656),u=n(34948),l=n(92597),c=n(64664),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=s(e),t=u(t),c)try{return f(e,t)}catch(n){}if(l(e,t))return a(!o(i.f,e,t),e[t])}},1156:function(e,t,n){"use strict";var r=n(84326),o=n(45656),i=n(8006).f,a=n(41589),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return s&&"Window"==r(e)?function(e){try{return i(e)}catch(t){return a(s)}}(e):i(o(e))}},8006:function(e,t,n){"use strict";var r=n(16324),o=n(80748).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},25181:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},79518:function(e,t,n){"use strict";var r=n(92597),o=n(60614),i=n(47908),a=n(6200),s=n(49920),u=a("IE_PROTO"),l=Object,c=l.prototype;e.exports=s?l.getPrototypeOf:function(e){var t=i(e);if(r(t,u))return t[u];var n=t.constructor;return o(n)&&t instanceof n?n.prototype:t instanceof l?c:null}},52050:function(e,t,n){"use strict";var r=n(47293),o=n(70111),i=n(84326),a=n(7556),s=Object.isExtensible,u=r((function(){s(1)}));e.exports=u||a?function(e){return!!o(e)&&((!a||"ArrayBuffer"!=i(e))&&(!s||s(e)))}:s},47976:function(e,t,n){"use strict";var r=n(1702);e.exports=r({}.isPrototypeOf)},16324:function(e,t,n){"use strict";var r=n(1702),o=n(92597),i=n(45656),a=n(41318).indexOf,s=n(3501),u=r([].push);e.exports=function(e,t){var n,r=i(e),l=0,c=[];for(n in r)!o(s,n)&&o(r,n)&&u(c,n);for(;t.length>l;)o(r,n=t[l++])&&(~a(c,n)||u(c,n));return c}},81956:function(e,t,n){"use strict";var r=n(16324),o=n(80748);e.exports=Object.keys||function(e){return r(e,o)}},55296:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},27674:function(e,t,n){"use strict";var r=n(75668),o=n(19670),i=n(96077);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=r(Object.prototype,"__proto__","set"))(n,[]),t=n instanceof Array}catch(a){}return function(n,r){return o(n),i(r),t?e(n,r):n.__proto__=r,n}}():void 0)},44699:function(e,t,n){"use strict";var r=n(19781),o=n(47293),i=n(1702),a=n(79518),s=n(81956),u=n(45656),l=i(n(55296).f),c=i([].push),f=r&&o((function(){var e=Object.create(null);return e[2]=2,!l(e,2)})),d=function(e){return function(t){for(var n,o=u(t),i=s(o),d=f&&null===a(o),p=i.length,h=0,g=[];p>h;)n=i[h++],r&&!(d?n in o:l(o,n))||c(g,e?[n,o[n]]:o[n]);return g}};e.exports={entries:d(!0),values:d(!1)}},90288:function(e,t,n){"use strict";var r=n(51694),o=n(70648);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},92140:function(e,t,n){"use strict";var r=n(46916),o=n(60614),i=n(70111),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&o(n=e.toString)&&!i(s=r(n,e)))return s;if(o(n=e.valueOf)&&!i(s=r(n,e)))return s;if("string"!==t&&o(n=e.toString)&&!i(s=r(n,e)))return s;throw a("Can't convert object to primitive value")}},53887:function(e,t,n){"use strict";var r=n(35005),o=n(1702),i=n(8006),a=n(25181),s=n(19670),u=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(s(e)),n=a.f;return n?u(t,n(e)):t}},40857:function(e,t,n){"use strict";var r=n(17854);e.exports=r},12534:function(e){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},63702:function(e,t,n){"use strict";var r=n(17854),o=n(2492),i=n(60614),a=n(54705),s=n(42788),u=n(5112),l=n(7871),c=n(83823),f=n(31913),d=n(7392),p=o&&o.prototype,h=u("species"),g=!1,v=i(r.PromiseRejectionEvent),m=a("Promise",(function(){var e=s(o),t=e!==String(o);if(!t&&66===d)return!0;if(f&&(!p.catch||!p.finally))return!0;if(!d||d<51||!/native code/.test(e)){var n=new o((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((n.constructor={})[h]=r,!(g=n.then((function(){}))instanceof r))return!0}return!t&&(l||c)&&!v}));e.exports={CONSTRUCTOR:m,REJECTION_EVENT:v,SUBCLASSING:g}},2492:function(e,t,n){"use strict";var r=n(17854);e.exports=r.Promise},69478:function(e,t,n){"use strict";var r=n(19670),o=n(70111),i=n(78523);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},80612:function(e,t,n){"use strict";var r=n(2492),o=n(17072),i=n(63702).CONSTRUCTOR;e.exports=i||!o((function(e){r.all(e).then(void 0,(function(){}))}))},2626:function(e,t,n){"use strict";var r=n(3070).f;e.exports=function(e,t,n){n in e||r(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}},18572:function(e){"use strict";var t=function(){this.head=null,this.tail=null};t.prototype={add:function(e){var t={item:e,next:null},n=this.tail;n?n.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}},e.exports=t},97651:function(e,t,n){"use strict";var r=n(46916),o=n(19670),i=n(60614),a=n(84326),s=n(22261),u=TypeError;e.exports=function(e,t){var n=e.exec;if(i(n)){var l=r(n,e,t);return null!==l&&o(l),l}if("RegExp"===a(e))return r(s,e,t);throw u("RegExp#exec called on incompatible receiver")}},22261:function(e,t,n){"use strict";var r=n(46916),o=n(1702),i=n(41340),a=n(67066),s=n(52999),u=n(72309),l=n(70030),c=n(29909).get,f=n(9441),d=n(38173),p=u("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,g=h,v=o("".charAt),m=o("".indexOf),y=o("".replace),b=o("".slice),w=function(){var e=/a/,t=/b*/g;return r(h,e,"a"),r(h,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),x=s.BROKEN_CARET,_=void 0!==/()??/.exec("")[1];(w||_||x||f||d)&&(g=function(e){var t,n,o,s,u,f,d,S=this,O=c(S),C=i(e),E=O.raw;if(E)return E.lastIndex=S.lastIndex,t=r(g,E,C),S.lastIndex=E.lastIndex,t;var A=O.groups,M=x&&S.sticky,k=r(a,S),P=S.source,R=0,T=C;if(M&&(k=y(k,"y",""),-1===m(k,"g")&&(k+="g"),T=b(C,S.lastIndex),S.lastIndex>0&&(!S.multiline||S.multiline&&"\n"!==v(C,S.lastIndex-1))&&(P="(?: "+P+")",T=" "+T,R++),n=new RegExp("^(?:"+P+")",k)),_&&(n=new RegExp("^"+P+"$(?!\\s)",k)),w&&(o=S.lastIndex),s=r(h,M?n:S,T),M?s?(s.input=b(s.input,R),s[0]=b(s[0],R),s.index=S.lastIndex,S.lastIndex+=s[0].length):S.lastIndex=0:w&&s&&(S.lastIndex=S.global?s.index+s[0].length:o),_&&s&&s.length>1&&r(p,s[0],n,(function(){for(u=1;u<arguments.length-2;u++)void 0===arguments[u]&&(s[u]=void 0)})),s&&A)for(s.groups=f=l(null),u=0;u<A.length;u++)f[(d=A[u])[0]]=s[d[1]];return s}),e.exports=g},67066:function(e,t,n){"use strict";var r=n(19670);e.exports=function(){var e=r(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}},34706:function(e,t,n){"use strict";var r=n(46916),o=n(92597),i=n(47976),a=n(67066),s=RegExp.prototype;e.exports=function(e){var t=e.flags;return void 0!==t||"flags"in s||o(e,"flags")||!i(s,e)?t:r(a,e)}},52999:function(e,t,n){"use strict";var r=n(47293),o=n(17854).RegExp,i=r((function(){var e=o("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),a=i||r((function(){return!o("a","y").sticky})),s=i||r((function(){var e=o("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));e.exports={BROKEN_CARET:s,MISSED_STICKY:a,UNSUPPORTED_Y:i}},9441:function(e,t,n){"use strict";var r=n(47293),o=n(17854).RegExp;e.exports=r((function(){var e=o(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))},38173:function(e,t,n){"use strict";var r=n(47293),o=n(17854).RegExp;e.exports=r((function(){var e=o("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")}))},84488:function(e,t,n){"use strict";var r=n(68554),o=TypeError;e.exports=function(e){if(r(e))throw o("Can't call method on "+e);return e}},46465:function(e){"use strict";e.exports=function(e,t){return e===t||e!=e&&t!=t}},81150:function(e){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},26283:function(e,t,n){"use strict";var r=n(79405),o=n(87758),i=r.Set,a=r.add;e.exports=function(e){var t=new i;return o(e,(function(e){a(t,e)})),t}},37075:function(e,t,n){"use strict";var r=n(88999),o=n(79405),i=n(26283),a=n(60366),s=n(738),u=n(87758),l=n(6333),c=o.has,f=o.remove;e.exports=function(e){var t=r(this),n=s(e),o=i(t);return a(t)<=n.size?u(t,(function(e){n.includes(e)&&f(o,e)})):l(n.getIterator(),(function(e){c(t,e)&&f(o,e)})),o}},79405:function(e,t,n){"use strict";var r=n(1702),o=Set.prototype;e.exports={Set:Set,add:r(o.add),has:r(o.has),remove:r(o.delete),proto:o}},81920:function(e,t,n){"use strict";var r=n(88999),o=n(79405),i=n(60366),a=n(738),s=n(87758),u=n(6333),l=o.Set,c=o.add,f=o.has;e.exports=function(e){var t=r(this),n=a(e),o=new l;return i(t)>n.size?u(n.getIterator(),(function(e){f(t,e)&&c(o,e)})):s(t,(function(e){n.includes(e)&&c(o,e)})),o}},78239:function(e,t,n){"use strict";var r=n(88999),o=n(79405).has,i=n(60366),a=n(738),s=n(87758),u=n(6333),l=n(99212);e.exports=function(e){var t=r(this),n=a(e);if(i(t)<=n.size)return!1!==s(t,(function(e){if(n.includes(e))return!1}),!0);var c=n.getIterator();return!1!==u(c,(function(e){if(o(t,e))return l(c,"normal",!1)}))}},49180:function(e,t,n){"use strict";var r=n(88999),o=n(60366),i=n(87758),a=n(738);e.exports=function(e){var t=r(this),n=a(e);return!(o(t)>n.size)&&!1!==i(t,(function(e){if(!n.includes(e))return!1}),!0)}},10107:function(e,t,n){"use strict";var r=n(88999),o=n(79405).has,i=n(60366),a=n(738),s=n(6333),u=n(99212);e.exports=function(e){var t=r(this),n=a(e);if(i(t)<n.size)return!1;var l=n.getIterator();return!1!==s(l,(function(e){if(!o(t,e))return u(l,"normal",!1)}))}},87758:function(e,t,n){"use strict";var r=n(1702),o=n(6333),i=n(79405),a=i.Set,s=i.proto,u=r(s.forEach),l=r(s.keys),c=l(new a).next;e.exports=function(e,t,n){return n?o({iterator:l(e),next:c},t):u(e,t)}},60366:function(e,t,n){"use strict";var r=n(75668),o=n(79405);e.exports=r(o.proto,"size","get")||function(e){return e.size}},96340:function(e,t,n){"use strict";var r=n(35005),o=n(47045),i=n(5112),a=n(19781),s=i("species");e.exports=function(e){var t=r(e);a&&t&&!t[s]&&o(t,s,{configurable:!0,get:function(){return this}})}},98506:function(e,t,n){"use strict";var r=n(88999),o=n(79405),i=n(26283),a=n(738),s=n(6333),u=o.add,l=o.has,c=o.remove;e.exports=function(e){var t=r(this),n=a(e).getIterator(),o=i(t);return s(n,(function(e){l(t,e)?c(o,e):u(o,e)})),o}},58003:function(e,t,n){"use strict";var r=n(3070).f,o=n(92597),i=n(5112)("toStringTag");e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!o(e,i)&&r(e,i,{configurable:!0,value:t})}},39391:function(e,t,n){"use strict";var r=n(88999),o=n(79405).add,i=n(26283),a=n(738),s=n(6333);e.exports=function(e){var t=r(this),n=a(e).getIterator(),u=i(t);return s(n,(function(e){o(u,e)})),u}},6200:function(e,t,n){"use strict";var r=n(72309),o=n(69711),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},5465:function(e,t,n){"use strict";var r=n(17854),o=n(13072),i="__core-js_shared__",a=r[i]||o(i,{});e.exports=a},72309:function(e,t,n){"use strict";var r=n(31913),o=n(5465);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.32.0",mode:r?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.0/LICENSE",source:"https://github.com/zloirock/core-js"})},36707:function(e,t,n){"use strict";var r=n(19670),o=n(39483),i=n(68554),a=n(5112)("species");e.exports=function(e,t){var n,s=r(e).constructor;return void 0===s||i(n=r(s)[a])?t:o(n)}},28710:function(e,t,n){"use strict";var r=n(1702),o=n(19303),i=n(41340),a=n(84488),s=r("".charAt),u=r("".charCodeAt),l=r("".slice),c=function(e){return function(t,n){var r,c,f=i(a(t)),d=o(n),p=f.length;return d<0||d>=p?e?"":void 0:(r=u(f,d))<55296||r>56319||d+1===p||(c=u(f,d+1))<56320||c>57343?e?s(f,d):r:e?l(f,d,d+2):c-56320+(r-55296<<10)+65536}};e.exports={codeAt:c(!1),charAt:c(!0)}},76091:function(e,t,n){"use strict";var r=n(76530).PROPER,o=n(47293),i=n(81361);e.exports=function(e){return o((function(){return!!i[e]()||"\u200b\x85\u180e"!=="\u200b\x85\u180e"[e]()||r&&i[e].name!==e}))}},53111:function(e,t,n){"use strict";var r=n(1702),o=n(84488),i=n(41340),a=n(81361),s=r("".replace),u=RegExp("^["+a+"]+"),l=RegExp("(^|[^"+a+"])["+a+"]+$"),c=function(e){return function(t){var n=i(o(t));return 1&e&&(n=s(n,u,"")),2&e&&(n=s(n,l,"$1")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},36293:function(e,t,n){"use strict";var r=n(7392),o=n(47293),i=n(17854).String;e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},56532:function(e,t,n){"use strict";var r=n(46916),o=n(35005),i=n(5112),a=n(98052);e.exports=function(){var e=o("Symbol"),t=e&&e.prototype,n=t&&t.valueOf,s=i("toPrimitive");t&&!t[s]&&a(t,s,(function(e){return r(n,this)}),{arity:1})}},2015:function(e,t,n){"use strict";var r=n(36293);e.exports=r&&!!Symbol.for&&!!Symbol.keyFor},20261:function(e,t,n){"use strict";var r,o,i,a,s=n(17854),u=n(22104),l=n(49974),c=n(60614),f=n(92597),d=n(47293),p=n(60490),h=n(50206),g=n(80317),v=n(48053),m=n(6833),y=n(35268),b=s.setImmediate,w=s.clearImmediate,x=s.process,_=s.Dispatch,S=s.Function,O=s.MessageChannel,C=s.String,E=0,A={},M="onreadystatechange";d((function(){r=s.location}));var k=function(e){if(f(A,e)){var t=A[e];delete A[e],t()}},P=function(e){return function(){k(e)}},R=function(e){k(e.data)},T=function(e){s.postMessage(C(e),r.protocol+"//"+r.host)};b&&w||(b=function(e){v(arguments.length,1);var t=c(e)?e:S(e),n=h(arguments,1);return A[++E]=function(){u(t,void 0,n)},o(E),E},w=function(e){delete A[e]},y?o=function(e){x.nextTick(P(e))}:_&&_.now?o=function(e){_.now(P(e))}:O&&!m?(a=(i=new O).port2,i.port1.onmessage=R,o=l(a.postMessage,a)):s.addEventListener&&c(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!d(T)?(o=T,s.addEventListener("message",R,!1)):o=M in g("script")?function(e){p.appendChild(g("script"))[M]=function(){p.removeChild(this),k(e)}}:function(e){setTimeout(P(e),0)}),e.exports={set:b,clear:w}},50863:function(e,t,n){"use strict";var r=n(1702);e.exports=r(1..valueOf)},51400:function(e,t,n){"use strict";var r=n(19303),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},45656:function(e,t,n){"use strict";var r=n(68361),o=n(84488);e.exports=function(e){return r(o(e))}},19303:function(e,t,n){"use strict";var r=n(74758);e.exports=function(e){var t=+e;return t!==t||0===t?0:r(t)}},17466:function(e,t,n){"use strict";var r=n(19303),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},47908:function(e,t,n){"use strict";var r=n(84488),o=Object;e.exports=function(e){return o(r(e))}},57593:function(e,t,n){"use strict";var r=n(46916),o=n(70111),i=n(52190),a=n(58173),s=n(92140),u=n(5112),l=TypeError,c=u("toPrimitive");e.exports=function(e,t){if(!o(e)||i(e))return e;var n,u=a(e,c);if(u){if(void 0===t&&(t="default"),n=r(u,e,t),!o(n)||i(n))return n;throw l("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},34948:function(e,t,n){"use strict";var r=n(57593),o=n(52190);e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},45965:function(e,t,n){"use strict";var r=n(35005),o=n(60614),i=n(25615),a=n(70111),s=r("Set");e.exports=function(e){return function(e){return a(e)&&"number"==typeof e.size&&o(e.has)&&o(e.keys)}(e)?e:i(e)?new s(e):e}},51694:function(e,t,n){"use strict";var r={};r[n(5112)("toStringTag")]="z",e.exports="[object z]"===String(r)},41340:function(e,t,n){"use strict";var r=n(70648),o=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return o(e)}},66330:function(e){"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(n){return"Object"}}},69711:function(e,t,n){"use strict";var r=n(1702),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},85143:function(e,t,n){"use strict";var r=n(47293),o=n(5112),i=n(19781),a=n(31913),s=o("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n=new URLSearchParams("a=1&a=2&b=3"),r="";return e.pathname="c%20d",t.forEach((function(e,n){t.delete("b"),r+=n+e})),n.delete("a",2),n.delete("b",void 0),a&&(!e.toJSON||!n.has("a",1)||n.has("a",2)||!n.has("a",void 0)||n.has("b"))||!t.size&&(a||!i)||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://\u0442\u0435\u0441\u0442").host||"#%D0%B1"!==new URL("http://a#\u0431").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host}))},43307:function(e,t,n){"use strict";var r=n(36293);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(e,t,n){"use strict";var r=n(19781),o=n(47293);e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},48053:function(e){"use strict";var t=TypeError;e.exports=function(e,n){if(e<n)throw t("Not enough arguments");return e}},94811:function(e,t,n){"use strict";var r=n(17854),o=n(60614),i=r.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},26800:function(e,t,n){"use strict";var r=n(40857),o=n(92597),i=n(6061),a=n(3070).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},6061:function(e,t,n){"use strict";var r=n(5112);t.f=r},5112:function(e,t,n){"use strict";var r=n(17854),o=n(72309),i=n(92597),a=n(69711),s=n(36293),u=n(43307),l=r.Symbol,c=o("wks"),f=u?l.for||l:l&&l.withoutSetter||a;e.exports=function(e){return i(c,e)||(c[e]=s&&i(l,e)?l[e]:f("Symbol."+e)),c[e]}},81361:function(e){"use strict";e.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},92222:function(e,t,n){"use strict";var r=n(82109),o=n(47293),i=n(43157),a=n(70111),s=n(47908),u=n(26244),l=n(7207),c=n(86135),f=n(65417),d=n(81194),p=n(5112),h=n(7392),g=p("isConcatSpreadable"),v=h>=51||!o((function(){var e=[];return e[g]=!1,e.concat()[0]!==e})),m=function(e){if(!a(e))return!1;var t=e[g];return void 0!==t?!!t:i(e)};r({target:"Array",proto:!0,arity:1,forced:!v||!d("concat")},{concat:function(e){var t,n,r,o,i,a=s(this),d=f(a,0),p=0;for(t=-1,r=arguments.length;t<r;t++)if(m(i=-1===t?a:arguments[t]))for(o=u(i),l(p+o),n=0;n<o;n++,p++)n in i&&c(d,p,i[n]);else l(p+1),c(d,p++,i);return d.length=p,d}})},57327:function(e,t,n){"use strict";var r=n(82109),o=n(42092).filter;r({target:"Array",proto:!0,forced:!n(81194)("filter")},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},69826:function(e,t,n){"use strict";var r=n(82109),o=n(42092).find,i=n(51223),a="find",s=!0;a in[]&&Array(1)[a]((function(){s=!1})),r({target:"Array",proto:!0,forced:s},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i(a)},91038:function(e,t,n){"use strict";var r=n(82109),o=n(48457);r({target:"Array",stat:!0,forced:!n(17072)((function(e){Array.from(e)}))},{from:o})},26699:function(e,t,n){"use strict";var r=n(82109),o=n(41318).includes,i=n(47293),a=n(51223);r({target:"Array",proto:!0,forced:i((function(){return!Array(1).includes()}))},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),a("includes")},82772:function(e,t,n){"use strict";var r=n(82109),o=n(21470),i=n(41318).indexOf,a=n(9341),s=o([].indexOf),u=!!s&&1/s([1],1,-0)<0;r({target:"Array",proto:!0,forced:u||!a("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return u?s(this,e,t)||0:i(this,e,t)}})},66992:function(e,t,n){"use strict";var r=n(45656),o=n(51223),i=n(97497),a=n(29909),s=n(3070).f,u=n(51656),l=n(76178),c=n(31913),f=n(19781),d="Array Iterator",p=a.set,h=a.getterFor(d);e.exports=u(Array,"Array",(function(e,t){p(this,{type:d,target:r(e),index:0,kind:t})}),(function(){var e=h(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,l(void 0,!0)):l("keys"==n?r:"values"==n?t[r]:[r,t[r]],!1)}),"values");var g=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!c&&f&&"values"!==g.name)try{s(g,"name",{value:"values"})}catch(v){}},21249:function(e,t,n){"use strict";var r=n(82109),o=n(42092).map;r({target:"Array",proto:!0,forced:!n(81194)("map")},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},85827:function(e,t,n){"use strict";var r=n(82109),o=n(53671).left,i=n(9341),a=n(7392);r({target:"Array",proto:!0,forced:!n(35268)&&a>79&&a<83||!i("reduce")},{reduce:function(e){var t=arguments.length;return o(this,e,t,t>1?arguments[1]:void 0)}})},47042:function(e,t,n){"use strict";var r=n(82109),o=n(43157),i=n(4411),a=n(70111),s=n(51400),u=n(26244),l=n(45656),c=n(86135),f=n(5112),d=n(81194),p=n(50206),h=d("slice"),g=f("species"),v=Array,m=Math.max;r({target:"Array",proto:!0,forced:!h},{slice:function(e,t){var n,r,f,d=l(this),h=u(d),y=s(e,h),b=s(void 0===t?h:t,h);if(o(d)&&(n=d.constructor,(i(n)&&(n===v||o(n.prototype))||a(n)&&null===(n=n[g]))&&(n=void 0),n===v||void 0===n))return p(d,y,b);for(r=new(void 0===n?v:n)(m(b-y,0)),f=0;y<b;y++,f++)y in d&&c(r,f,d[y]);return r.length=f,r}})},2707:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(19662),a=n(47908),s=n(26244),u=n(85117),l=n(41340),c=n(47293),f=n(94362),d=n(9341),p=n(68886),h=n(30256),g=n(7392),v=n(98008),m=[],y=o(m.sort),b=o(m.push),w=c((function(){m.sort(void 0)})),x=c((function(){m.sort(null)})),_=d("sort"),S=!c((function(){if(g)return g<70;if(!(p&&p>3)){if(h)return!0;if(v)return v<603;var e,t,n,r,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)m.push({k:t+r,v:n})}for(m.sort((function(e,t){return t.v-e.v})),r=0;r<m.length;r++)t=m[r].k.charAt(0),o.charAt(o.length-1)!==t&&(o+=t);return"DGBEFHACIJK"!==o}}));r({target:"Array",proto:!0,forced:w||!x||!_||!S},{sort:function(e){void 0!==e&&i(e);var t=a(this);if(S)return void 0===e?y(t):y(t,e);var n,r,o=[],c=s(t);for(r=0;r<c;r++)r in t&&b(o,t[r]);for(f(o,function(e){return function(t,n){return void 0===n?-1:void 0===t?1:void 0!==e?+e(t,n)||0:l(t)>l(n)?1:-1}}(e)),n=s(o),r=0;r<n;)t[r]=o[r++];for(;r<c;)u(t,r++);return t}})},40561:function(e,t,n){"use strict";var r=n(82109),o=n(47908),i=n(51400),a=n(19303),s=n(26244),u=n(83658),l=n(7207),c=n(65417),f=n(86135),d=n(85117),p=n(81194)("splice"),h=Math.max,g=Math.min;r({target:"Array",proto:!0,forced:!p},{splice:function(e,t){var n,r,p,v,m,y,b=o(this),w=s(b),x=i(e,w),_=arguments.length;for(0===_?n=r=0:1===_?(n=0,r=w-x):(n=_-2,r=g(h(a(t),0),w-x)),l(w+n-r),p=c(b,r),v=0;v<r;v++)(m=x+v)in b&&f(p,v,b[m]);if(p.length=r,n<r){for(v=x;v<w-r;v++)y=v+n,(m=v+r)in b?b[y]=b[m]:d(b,y);for(v=w;v>w-r+n;v--)d(b,v-1)}else if(n>r)for(v=w-r;v>x;v--)y=v+n-1,(m=v+r-1)in b?b[y]=b[m]:d(b,y);for(v=0;v<n;v++)b[v+x]=arguments[v+2];return u(b,w-r+n),p}})},38862:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(22104),a=n(46916),s=n(1702),u=n(47293),l=n(60614),c=n(52190),f=n(50206),d=n(88044),p=n(36293),h=String,g=o("JSON","stringify"),v=s(/./.exec),m=s("".charAt),y=s("".charCodeAt),b=s("".replace),w=s(1..toString),x=/[\uD800-\uDFFF]/g,_=/^[\uD800-\uDBFF]$/,S=/^[\uDC00-\uDFFF]$/,O=!p||u((function(){var e=o("Symbol")();return"[null]"!=g([e])||"{}"!=g({a:e})||"{}"!=g(Object(e))})),C=u((function(){return'"\\udf06\\ud834"'!==g("\udf06\ud834")||'"\\udead"'!==g("\udead")})),E=function(e,t){var n=f(arguments),r=d(t);if(l(r)||void 0!==e&&!c(e))return n[1]=function(e,t){if(l(r)&&(t=a(r,this,h(e),t)),!c(t))return t},i(g,null,n)},A=function(e,t,n){var r=m(n,t-1),o=m(n,t+1);return v(_,e)&&!v(S,o)||v(S,e)&&!v(_,r)?"\\u"+w(y(e,0),16):e};g&&r({target:"JSON",stat:!0,arity:3,forced:O||C},{stringify:function(e,t,n){var r=f(arguments),o=i(O?E:g,null,r);return C&&"string"==typeof o?b(o,x,A):o}})},69098:function(e,t,n){"use strict";n(77710)("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(95631))},51532:function(e,t,n){"use strict";n(69098)},9653:function(e,t,n){"use strict";var r=n(82109),o=n(31913),i=n(19781),a=n(17854),s=n(40857),u=n(1702),l=n(54705),c=n(92597),f=n(79587),d=n(47976),p=n(52190),h=n(57593),g=n(47293),v=n(8006).f,m=n(31236).f,y=n(3070).f,b=n(50863),w=n(53111).trim,x="Number",_=a[x],S=s[x],O=_.prototype,C=a.TypeError,E=u("".slice),A=u("".charCodeAt),M=function(e){var t,n,r,o,i,a,s,u,l=h(e,"number");if(p(l))throw C("Cannot convert a Symbol value to a number");if("string"==typeof l&&l.length>2)if(l=w(l),43===(t=A(l,0))||45===t){if(88===(n=A(l,2))||120===n)return NaN}else if(48===t){switch(A(l,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(a=(i=E(l,2)).length,s=0;s<a;s++)if((u=A(i,s))<48||u>o)return NaN;return parseInt(i,r)}return+l},k=l(x,!_(" 0o1")||!_("0b1")||_("+0x1")),P=function(e){var t,n=arguments.length<1?0:_(function(e){var t=h(e,"number");return"bigint"==typeof t?t:M(t)}(e));return d(O,t=this)&&g((function(){b(t)}))?f(Object(n),this,P):n};P.prototype=O,k&&!o&&(O.constructor=P),r({global:!0,constructor:!0,wrap:!0,forced:k},{Number:P});var R=function(e,t){for(var n,r=i?v(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)c(t,n=r[o])&&!c(e,n)&&y(e,n,m(t,n))};o&&S&&R(s[x],S),(k||o)&&R(s[x],_)},19601:function(e,t,n){"use strict";var r=n(82109),o=n(21574);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},33321:function(e,t,n){"use strict";var r=n(82109),o=n(19781),i=n(36048).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==i,sham:!o},{defineProperties:i})},69070:function(e,t,n){"use strict";var r=n(82109),o=n(19781),i=n(3070).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==i,sham:!o},{defineProperty:i})},69720:function(e,t,n){"use strict";var r=n(82109),o=n(44699).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},38880:function(e,t,n){"use strict";var r=n(82109),o=n(47293),i=n(45656),a=n(31236).f,s=n(19781);r({target:"Object",stat:!0,forced:!s||o((function(){a(1)})),sham:!s},{getOwnPropertyDescriptor:function(e,t){return a(i(e),t)}})},49337:function(e,t,n){"use strict";var r=n(82109),o=n(19781),i=n(53887),a=n(45656),s=n(31236),u=n(86135);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),o=s.f,l=i(r),c={},f=0;l.length>f;)void 0!==(n=o(r,t=l[f++]))&&u(c,t,n);return c}})},29660:function(e,t,n){"use strict";var r=n(82109),o=n(36293),i=n(47293),a=n(25181),s=n(47908);r({target:"Object",stat:!0,forced:!o||i((function(){a.f(1)}))},{getOwnPropertySymbols:function(e){var t=a.f;return t?t(s(e)):[]}})},47941:function(e,t,n){"use strict";var r=n(82109),o=n(47908),i=n(81956);r({target:"Object",stat:!0,forced:n(47293)((function(){i(1)}))},{keys:function(e){return i(o(e))}})},41539:function(e,t,n){"use strict";var r=n(51694),o=n(98052),i=n(90288);r||o(Object.prototype,"toString",i,{unsafe:!0})},26833:function(e,t,n){"use strict";var r=n(82109),o=n(44699).values;r({target:"Object",stat:!0},{values:function(e){return o(e)}})},91058:function(e,t,n){"use strict";var r=n(82109),o=n(83009);r({global:!0,forced:parseInt!=o},{parseInt:o})},70821:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(78523),s=n(12534),u=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{all:function(e){var t=this,n=a.f(t),r=n.resolve,l=n.reject,c=s((function(){var n=i(t.resolve),a=[],s=0,c=1;u(e,(function(e){var i=s++,u=!1;c++,o(n,t,e).then((function(e){u||(u=!0,a[i]=e,--c||r(a))}),l)})),--c||r(a)}));return c.error&&l(c.value),n.promise}})},94164:function(e,t,n){"use strict";var r=n(82109),o=n(31913),i=n(63702).CONSTRUCTOR,a=n(2492),s=n(35005),u=n(60614),l=n(98052),c=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(e){return this.then(void 0,e)}}),!o&&u(a)){var f=s("Promise").prototype.catch;c.catch!==f&&l(c,"catch",f,{unsafe:!0})}},43401:function(e,t,n){"use strict";var r,o,i,a=n(82109),s=n(31913),u=n(35268),l=n(17854),c=n(46916),f=n(98052),d=n(27674),p=n(58003),h=n(96340),g=n(19662),v=n(60614),m=n(70111),y=n(25787),b=n(36707),w=n(20261).set,x=n(95948),_=n(842),S=n(12534),O=n(18572),C=n(29909),E=n(2492),A=n(63702),M=n(78523),k="Promise",P=A.CONSTRUCTOR,R=A.REJECTION_EVENT,T=A.SUBCLASSING,I=C.getterFor(k),B=C.set,D=E&&E.prototype,j=E,L=D,Z=l.TypeError,N=l.document,F=l.process,H=M.f,V=H,z=!!(N&&N.createEvent&&l.dispatchEvent),U="unhandledrejection",G=function(e){var t;return!(!m(e)||!v(t=e.then))&&t},W=function(e,t){var n,r,o,i=t.value,a=1==t.state,s=a?e.ok:e.fail,u=e.resolve,l=e.reject,f=e.domain;try{s?(a||(2===t.rejection&&K(t),t.rejection=1),!0===s?n=i:(f&&f.enter(),n=s(i),f&&(f.exit(),o=!0)),n===e.promise?l(Z("Promise-chain cycle")):(r=G(n))?c(r,n,u,l):u(n)):l(i)}catch(d){f&&!o&&f.exit(),l(d)}},$=function(e,t){e.notified||(e.notified=!0,x((function(){for(var n,r=e.reactions;n=r.get();)W(n,e);e.notified=!1,t&&!e.rejection&&Y(e)})))},q=function(e,t,n){var r,o;z?((r=N.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),l.dispatchEvent(r)):r={promise:t,reason:n},!R&&(o=l["on"+e])?o(r):e===U&&_("Unhandled promise rejection",n)},Y=function(e){c(w,l,(function(){var t,n=e.facade,r=e.value;if(X(e)&&(t=S((function(){u?F.emit("unhandledRejection",r,n):q(U,n,r)})),e.rejection=u||X(e)?2:1,t.error))throw t.value}))},X=function(e){return 1!==e.rejection&&!e.parent},K=function(e){c(w,l,(function(){var t=e.facade;u?F.emit("rejectionHandled",t):q("rejectionhandled",t,e.value)}))},J=function(e,t,n){return function(r){e(t,r,n)}},Q=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,$(e,!0))},ee=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Z("Promise can't be resolved itself");var r=G(t);r?x((function(){var n={done:!1};try{c(r,t,J(ee,n,e),J(Q,n,e))}catch(o){Q(n,o,e)}})):(e.value=t,e.state=1,$(e,!1))}catch(o){Q({done:!1},o,e)}}};if(P&&(L=(j=function(e){y(this,L),g(e),c(r,this);var t=I(this);try{e(J(ee,t),J(Q,t))}catch(n){Q(t,n)}}).prototype,(r=function(e){B(this,{type:k,done:!1,notified:!1,parent:!1,reactions:new O,rejection:!1,state:0,value:void 0})}).prototype=f(L,"then",(function(e,t){var n=I(this),r=H(b(this,j));return n.parent=!0,r.ok=!v(e)||e,r.fail=v(t)&&t,r.domain=u?F.domain:void 0,0==n.state?n.reactions.add(r):x((function(){W(r,n)})),r.promise})),o=function(){var e=new r,t=I(e);this.promise=e,this.resolve=J(ee,t),this.reject=J(Q,t)},M.f=H=function(e){return e===j||undefined===e?new o(e):V(e)},!s&&v(E)&&D!==Object.prototype)){i=D.then,T||f(D,"then",(function(e,t){var n=this;return new j((function(e,t){c(i,n,e,t)})).then(e,t)}),{unsafe:!0});try{delete D.constructor}catch(te){}d&&d(D,L)}a({global:!0,constructor:!0,wrap:!0,forced:P},{Promise:j}),p(j,k,!1,!0),h(k)},17727:function(e,t,n){"use strict";var r=n(82109),o=n(31913),i=n(2492),a=n(47293),s=n(35005),u=n(60614),l=n(36707),c=n(69478),f=n(98052),d=i&&i.prototype;if(r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){d.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=l(this,s("Promise")),n=u(e);return this.then(n?function(n){return c(t,e()).then((function(){return n}))}:e,n?function(n){return c(t,e()).then((function(){throw n}))}:e)}}),!o&&u(i)){var p=s("Promise").prototype.finally;d.finally!==p&&f(d,"finally",p,{unsafe:!0})}},88674:function(e,t,n){"use strict";n(43401),n(70821),n(94164),n(6027),n(60683),n(96294)},6027:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(78523),s=n(12534),u=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{race:function(e){var t=this,n=a.f(t),r=n.reject,l=s((function(){var a=i(t.resolve);u(e,(function(e){o(a,t,e).then(n.resolve,r)}))}));return l.error&&r(l.value),n.promise}})},60683:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(78523);r({target:"Promise",stat:!0,forced:n(63702).CONSTRUCTOR},{reject:function(e){var t=i.f(this);return o(t.reject,void 0,e),t.promise}})},96294:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(31913),a=n(2492),s=n(63702).CONSTRUCTOR,u=n(69478),l=o("Promise"),c=i&&!s;r({target:"Promise",stat:!0,forced:i||s},{resolve:function(e){return u(c&&this===l?a:this,e)}})},12419:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(22104),a=n(27065),s=n(39483),u=n(19670),l=n(70111),c=n(70030),f=n(47293),d=o("Reflect","construct"),p=Object.prototype,h=[].push,g=f((function(){function e(){}return!(d((function(){}),[],e)instanceof e)})),v=!f((function(){d((function(){}))})),m=g||v;r({target:"Reflect",stat:!0,forced:m,sham:m},{construct:function(e,t){s(e),u(t);var n=arguments.length<3?e:s(arguments[2]);if(v&&!g)return d(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return i(h,r,t),new(i(a,e,r))}var o=n.prototype,f=c(l(o)?o:p),m=i(e,f,t);return l(m)?m:f}})},81299:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(58003);r({global:!0},{Reflect:{}}),i(o.Reflect,"Reflect",!0)},24603:function(e,t,n){"use strict";var r=n(19781),o=n(17854),i=n(1702),a=n(54705),s=n(79587),u=n(68880),l=n(8006).f,c=n(47976),f=n(47850),d=n(41340),p=n(34706),h=n(52999),g=n(2626),v=n(98052),m=n(47293),y=n(92597),b=n(29909).enforce,w=n(96340),x=n(5112),_=n(9441),S=n(38173),O=x("match"),C=o.RegExp,E=C.prototype,A=o.SyntaxError,M=i(E.exec),k=i("".charAt),P=i("".replace),R=i("".indexOf),T=i("".slice),I=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,B=/a/g,D=/a/g,j=new C(B)!==B,L=h.MISSED_STICKY,Z=h.UNSUPPORTED_Y,N=r&&(!j||L||_||S||m((function(){return D[O]=!1,C(B)!=B||C(D)==D||"/a/i"!=C(B,"i")})));if(a("RegExp",N)){for(var F=function(e,t){var n,r,o,i,a,l,h=c(E,this),g=f(e),v=void 0===t,m=[],w=e;if(!h&&g&&v&&e.constructor===F)return e;if((g||c(E,e))&&(e=e.source,v&&(t=p(w))),e=void 0===e?"":d(e),t=void 0===t?"":d(t),w=e,_&&"dotAll"in B&&(r=!!t&&R(t,"s")>-1)&&(t=P(t,/s/g,"")),n=t,L&&"sticky"in B&&(o=!!t&&R(t,"y")>-1)&&Z&&(t=P(t,/y/g,"")),S&&(i=function(e){for(var t,n=e.length,r=0,o="",i=[],a={},s=!1,u=!1,l=0,c="";r<=n;r++){if("\\"===(t=k(e,r)))t+=k(e,++r);else if("]"===t)s=!1;else if(!s)switch(!0){case"["===t:s=!0;break;case"("===t:M(I,T(e,r+1))&&(r+=2,u=!0),o+=t,l++;continue;case">"===t&&u:if(""===c||y(a,c))throw new A("Invalid capture group name");a[c]=!0,i[i.length]=[c,l],u=!1,c="";continue}u?c+=t:o+=t}return[o,i]}(e),e=i[0],m=i[1]),a=s(C(e,t),h?this:E,F),(r||o||m.length)&&(l=b(a),r&&(l.dotAll=!0,l.raw=F(function(e){for(var t,n=e.length,r=0,o="",i=!1;r<=n;r++)"\\"!==(t=k(e,r))?i||"."!==t?("["===t?i=!0:"]"===t&&(i=!1),o+=t):o+="[\\s\\S]":o+=t+k(e,++r);return o}(e),n)),o&&(l.sticky=!0),m.length&&(l.groups=m)),e!==w)try{u(a,"source",""===w?"(?:)":w)}catch(x){}return a},H=l(C),V=0;H.length>V;)g(F,C,H[V++]);E.constructor=F,F.prototype=E,v(o,"RegExp",F,{constructor:!0})}w("RegExp")},74916:function(e,t,n){"use strict";var r=n(82109),o=n(22261);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},88386:function(e,t,n){"use strict";var r=n(19781),o=n(52999).MISSED_STICKY,i=n(84326),a=n(47045),s=n(29909).get,u=RegExp.prototype,l=TypeError;r&&o&&a(u,"sticky",{configurable:!0,get:function(){if(this!==u){if("RegExp"===i(this))return!!s(this).sticky;throw l("Incompatible receiver, RegExp required")}}})},77601:function(e,t,n){"use strict";n(74916);var r=n(82109),o=n(46916),i=n(60614),a=n(19670),s=n(41340),u=function(){var e=!1,t=/[ac]/;return t.exec=function(){return e=!0,/./.exec.apply(this,arguments)},!0===t.test("abc")&&e}(),l=/./.test;r({target:"RegExp",proto:!0,forced:!u},{test:function(e){var t=a(this),n=s(e),r=t.exec;if(!i(r))return o(l,t,n);var u=o(r,t,n);return null!==u&&(a(u),!0)}})},39714:function(e,t,n){"use strict";var r=n(76530).PROPER,o=n(98052),i=n(19670),a=n(41340),s=n(47293),u=n(34706),l="toString",c=RegExp.prototype[l],f=s((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),d=r&&c.name!=l;(f||d)&&o(RegExp.prototype,l,(function(){var e=i(this);return"/"+a(e.source)+"/"+a(u(e))}),{unsafe:!0})},37227:function(e,t,n){"use strict";n(77710)("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(95631))},70189:function(e,t,n){"use strict";n(37227)},32023:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(3929),a=n(84488),s=n(41340),u=n(84964),l=o("".indexOf);r({target:"String",proto:!0,forced:!u("includes")},{includes:function(e){return!!~l(s(a(this)),s(i(e)),arguments.length>1?arguments[1]:void 0)}})},78783:function(e,t,n){"use strict";var r=n(28710).charAt,o=n(41340),i=n(29909),a=n(51656),s=n(76178),u="String Iterator",l=i.set,c=i.getterFor(u);a(String,"String",(function(e){l(this,{type:u,string:o(e),index:0})}),(function(){var e,t=c(this),n=t.string,o=t.index;return o>=n.length?s(void 0,!0):(e=r(n,o),t.index+=e.length,s(e,!1))}))},4723:function(e,t,n){"use strict";var r=n(46916),o=n(27007),i=n(19670),a=n(68554),s=n(17466),u=n(41340),l=n(84488),c=n(58173),f=n(31530),d=n(97651);o("match",(function(e,t,n){return[function(t){var n=l(this),o=a(t)?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](u(n))},function(e){var r=i(this),o=u(e),a=n(t,r,o);if(a.done)return a.value;if(!r.global)return d(r,o);var l=r.unicode;r.lastIndex=0;for(var c,p=[],h=0;null!==(c=d(r,o));){var g=u(c[0]);p[h]=g,""===g&&(r.lastIndex=f(o,s(r.lastIndex),l)),h++}return 0===h?null:p}]}))},15306:function(e,t,n){"use strict";var r=n(22104),o=n(46916),i=n(1702),a=n(27007),s=n(47293),u=n(19670),l=n(60614),c=n(68554),f=n(19303),d=n(17466),p=n(41340),h=n(84488),g=n(31530),v=n(58173),m=n(10647),y=n(97651),b=n(5112)("replace"),w=Math.max,x=Math.min,_=i([].concat),S=i([].push),O=i("".indexOf),C=i("".slice),E="$0"==="a".replace(/./,"$0"),A=!!/./[b]&&""===/./[b]("a","$0");a("replace",(function(e,t,n){var i=A?"$":"$0";return[function(e,n){var r=h(this),i=c(e)?void 0:v(e,b);return i?o(i,e,r,n):o(t,p(r),e,n)},function(e,o){var a=u(this),s=p(e);if("string"==typeof o&&-1===O(o,i)&&-1===O(o,"$<")){var c=n(t,a,s,o);if(c.done)return c.value}var h=l(o);h||(o=p(o));var v=a.global;if(v){var b=a.unicode;a.lastIndex=0}for(var E=[];;){var A=y(a,s);if(null===A)break;if(S(E,A),!v)break;""===p(A[0])&&(a.lastIndex=g(s,d(a.lastIndex),b))}for(var M,k="",P=0,R=0;R<E.length;R++){for(var T=p((A=E[R])[0]),I=w(x(f(A.index),s.length),0),B=[],D=1;D<A.length;D++)S(B,void 0===(M=A[D])?M:String(M));var j=A.groups;if(h){var L=_([T],B,I,s);void 0!==j&&S(L,j);var Z=p(r(o,void 0,L))}else Z=m(T,s,I,B,j,o);I>=P&&(k+=C(s,P,I)+Z,P=I+T.length)}return k+C(s,P)}]}),!!s((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}))||!E||A)},64765:function(e,t,n){"use strict";var r=n(46916),o=n(27007),i=n(19670),a=n(68554),s=n(84488),u=n(81150),l=n(41340),c=n(58173),f=n(97651);o("search",(function(e,t,n){return[function(t){var n=s(this),o=a(t)?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](l(n))},function(e){var r=i(this),o=l(e),a=n(t,r,o);if(a.done)return a.value;var s=r.lastIndex;u(s,0)||(r.lastIndex=0);var c=f(r,o);return u(r.lastIndex,s)||(r.lastIndex=s),null===c?-1:c.index}]}))},23123:function(e,t,n){"use strict";var r=n(22104),o=n(46916),i=n(1702),a=n(27007),s=n(19670),u=n(68554),l=n(47850),c=n(84488),f=n(36707),d=n(31530),p=n(17466),h=n(41340),g=n(58173),v=n(41589),m=n(97651),y=n(22261),b=n(52999),w=n(47293),x=b.UNSUPPORTED_Y,_=4294967295,S=Math.min,O=[].push,C=i(/./.exec),E=i(O),A=i("".slice),M=!w((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));a("split",(function(e,t,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var i=h(c(this)),a=void 0===n?_:n>>>0;if(0===a)return[];if(void 0===e)return[i];if(!l(e))return o(t,i,e,a);for(var s,u,f,d=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),g=0,m=new RegExp(e.source,p+"g");(s=o(y,m,i))&&!((u=m.lastIndex)>g&&(E(d,A(i,g,s.index)),s.length>1&&s.index<i.length&&r(O,d,v(s,1)),f=s[0].length,g=u,d.length>=a));)m.lastIndex===s.index&&m.lastIndex++;return g===i.length?!f&&C(m,"")||E(d,""):E(d,A(i,g)),d.length>a?v(d,0,a):d}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:o(t,this,e,n)}:t,[function(t,n){var r=c(this),a=u(t)?void 0:g(t,e);return a?o(a,t,r,n):o(i,h(r),t,n)},function(e,r){var o=s(this),a=h(e),u=n(i,o,a,r,i!==t);if(u.done)return u.value;var l=f(o,RegExp),c=o.unicode,g=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(x?"g":"y"),v=new l(x?"^(?:"+o.source+")":o,g),y=void 0===r?_:r>>>0;if(0===y)return[];if(0===a.length)return null===m(v,a)?[a]:[];for(var b=0,w=0,O=[];w<a.length;){v.lastIndex=x?0:w;var C,M=m(v,x?A(a,w):a);if(null===M||(C=S(p(v.lastIndex+(x?w:0)),a.length))===b)w=d(a,w,c);else{if(E(O,A(a,b,w)),O.length===y)return O;for(var k=1;k<=M.length-1;k++)if(E(O,M[k]),O.length===y)return O;w=b=C}}return E(O,A(a,b)),O}]}),!M,x)},23157:function(e,t,n){"use strict";var r=n(82109),o=n(21470),i=n(31236).f,a=n(17466),s=n(41340),u=n(3929),l=n(84488),c=n(84964),f=n(31913),d=o("".startsWith),p=o("".slice),h=Math.min,g=c("startsWith");r({target:"String",proto:!0,forced:!(!f&&!g&&!!function(){var e=i(String.prototype,"startsWith");return e&&!e.writable}())&&!g},{startsWith:function(e){var t=s(l(this));u(e);var n=a(h(arguments.length>1?arguments[1]:void 0,t.length)),r=s(e);return d?d(t,r,n):p(t,n,n+r.length)===r}})},73210:function(e,t,n){"use strict";var r=n(82109),o=n(53111).trim;r({target:"String",proto:!0,forced:n(76091)("trim")},{trim:function(){return o(this)}})},4032:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(46916),a=n(1702),s=n(31913),u=n(19781),l=n(36293),c=n(47293),f=n(92597),d=n(47976),p=n(19670),h=n(45656),g=n(34948),v=n(41340),m=n(79114),y=n(70030),b=n(81956),w=n(8006),x=n(1156),_=n(25181),S=n(31236),O=n(3070),C=n(36048),E=n(55296),A=n(98052),M=n(47045),k=n(72309),P=n(6200),R=n(3501),T=n(69711),I=n(5112),B=n(6061),D=n(26800),j=n(56532),L=n(58003),Z=n(29909),N=n(42092).forEach,F=P("hidden"),H="Symbol",V="prototype",z=Z.set,U=Z.getterFor(H),G=Object[V],W=o.Symbol,$=W&&W[V],q=o.TypeError,Y=o.QObject,X=S.f,K=O.f,J=x.f,Q=E.f,ee=a([].push),te=k("symbols"),ne=k("op-symbols"),re=k("wks"),oe=!Y||!Y[V]||!Y[V].findChild,ie=u&&c((function(){return 7!=y(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=X(G,t);r&&delete G[t],K(e,t,n),r&&e!==G&&K(G,t,r)}:K,ae=function(e,t){var n=te[e]=y($);return z(n,{type:H,tag:e,description:t}),u||(n.description=t),n},se=function(e,t,n){e===G&&se(ne,t,n),p(e);var r=g(t);return p(n),f(te,r)?(n.enumerable?(f(e,F)&&e[F][r]&&(e[F][r]=!1),n=y(n,{enumerable:m(0,!1)})):(f(e,F)||K(e,F,m(1,{})),e[F][r]=!0),ie(e,r,n)):K(e,r,n)},ue=function(e,t){p(e);var n=h(t),r=b(n).concat(de(n));return N(r,(function(t){u&&!i(le,n,t)||se(e,t,n[t])})),e},le=function(e){var t=g(e),n=i(Q,this,t);return!(this===G&&f(te,t)&&!f(ne,t))&&(!(n||!f(this,t)||!f(te,t)||f(this,F)&&this[F][t])||n)},ce=function(e,t){var n=h(e),r=g(t);if(n!==G||!f(te,r)||f(ne,r)){var o=X(n,r);return!o||!f(te,r)||f(n,F)&&n[F][r]||(o.enumerable=!0),o}},fe=function(e){var t=J(h(e)),n=[];return N(t,(function(e){f(te,e)||f(R,e)||ee(n,e)})),n},de=function(e){var t=e===G,n=J(t?ne:h(e)),r=[];return N(n,(function(e){!f(te,e)||t&&!f(G,e)||ee(r,te[e])})),r};l||(W=function(){if(d($,this))throw q("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?v(arguments[0]):void 0,t=T(e),n=function(e){this===G&&i(n,ne,e),f(this,F)&&f(this[F],t)&&(this[F][t]=!1),ie(this,t,m(1,e))};return u&&oe&&ie(G,t,{configurable:!0,set:n}),ae(t,e)},A($=W[V],"toString",(function(){return U(this).tag})),A(W,"withoutSetter",(function(e){return ae(T(e),e)})),E.f=le,O.f=se,C.f=ue,S.f=ce,w.f=x.f=fe,_.f=de,B.f=function(e){return ae(I(e),e)},u&&(M($,"description",{configurable:!0,get:function(){return U(this).description}}),s||A(G,"propertyIsEnumerable",le,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!l,sham:!l},{Symbol:W}),N(b(re),(function(e){D(e)})),r({target:H,stat:!0,forced:!l},{useSetter:function(){oe=!0},useSimple:function(){oe=!1}}),r({target:"Object",stat:!0,forced:!l,sham:!u},{create:function(e,t){return void 0===t?y(e):ue(y(e),t)},defineProperty:se,defineProperties:ue,getOwnPropertyDescriptor:ce}),r({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:fe}),j(),L(W,H),R[F]=!0},40763:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(92597),a=n(41340),s=n(72309),u=n(2015),l=s("string-to-symbol-registry"),c=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{for:function(e){var t=a(e);if(i(l,t))return l[t];var n=o("Symbol")(t);return l[t]=n,c[n]=t,n}})},82526:function(e,t,n){"use strict";n(4032),n(40763),n(26620),n(38862),n(29660)},26620:function(e,t,n){"use strict";var r=n(82109),o=n(92597),i=n(52190),a=n(66330),s=n(72309),u=n(2015),l=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!u},{keyFor:function(e){if(!i(e))throw TypeError(a(e)+" is not a symbol");if(o(l,e))return l[e]}})},68216:function(e,t,n){"use strict";var r=n(82109),o=n(12269).every;r({target:"AsyncIterator",proto:!0,real:!0},{every:function(e){return o(this,e)}})},88449:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(19670),s=n(70111),u=n(24942),l=n(45348),c=n(76178),f=n(21753),d=n(31913),p=l((function(e){var t=this,n=t.iterator,r=t.predicate;return new e((function(i,u){var l=function(e){t.done=!0,u(e)},d=function(e){f(n,l,e,l)},p=function(){try{e.resolve(a(o(t.next,n))).then((function(n){try{if(a(n).done)t.done=!0,i(c(void 0,!0));else{var o=n.value;try{var u=r(o,t.counter++),f=function(e){e?i(c(o,!1)):p()};s(u)?e.resolve(u).then(f,d):f(u)}catch(h){d(h)}}}catch(g){l(g)}}),l)}catch(u){l(u)}};p()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:d},{filter:function(e){return a(this),i(e),new p(u(this),{predicate:e})}})},31672:function(e,t,n){"use strict";var r=n(82109),o=n(12269).find;r({target:"AsyncIterator",proto:!0,real:!0},{find:function(e){return o(this,e)}})},15581:function(e,t,n){"use strict";var r=n(82109),o=n(12269).forEach;r({target:"AsyncIterator",proto:!0,real:!0},{forEach:function(e){return o(this,e)}})},57640:function(e,t,n){"use strict";var r=n(82109),o=n(13232);r({target:"AsyncIterator",proto:!0,real:!0,forced:n(31913)},{map:o})},25387:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(19670),s=n(70111),u=n(35005),l=n(24942),c=n(21753),f=u("Promise"),d=TypeError;r({target:"AsyncIterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var t=l(this),n=t.iterator,r=t.next,u=arguments.length<2,p=u?void 0:arguments[1],h=0;return new f((function(t,i){var l=function(e){c(n,i,e,i)},g=function(){try{f.resolve(a(o(r,n))).then((function(n){try{if(a(n).done)u?i(d("Reduce of empty iterator with no initial value")):t(p);else{var r=n.value;if(u)u=!1,p=r,g();else try{var o=e(p,r,h),c=function(e){p=e,g()};s(o)?f.resolve(o).then(c,l):c(o)}catch(v){l(v)}}h++}catch(m){i(m)}}),i)}catch(c){i(c)}};g()}))}})},64211:function(e,t,n){"use strict";var r=n(82109),o=n(12269).some;r({target:"AsyncIterator",proto:!0,real:!0},{some:function(e){return o(this,e)}})},2490:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(25787),a=n(60614),s=n(79518),u=n(68880),l=n(47293),c=n(92597),f=n(5112),d=n(13383).IteratorPrototype,p=n(31913),h=f("toStringTag"),g=TypeError,v=o.Iterator,m=p||!a(v)||v.prototype!==d||!l((function(){v({})})),y=function(){if(i(this,d),s(this)===d)throw g("Abstract class Iterator not directly constructable")};c(d,h)||u(d,h,"Iterator"),!m&&c(d,"constructor")&&d.constructor!==Object||u(d,"constructor",y),y.prototype=d,r({global:!0,constructor:!0,forced:m},{Iterator:y})},79433:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{every:function(e){a(this),i(e);var t=s(this),n=0;return!o(t,(function(t,r){if(!e(t,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},59849:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(19670),s=n(24942),u=n(54956),l=n(53411),c=n(31913),f=u((function(){for(var e,t,n=this.iterator,r=this.predicate,i=this.next;;){if(e=a(o(i,n)),this.done=!!e.done)return;if(t=e.value,l(n,r,[t,this.counter++],!0))return t}}));r({target:"Iterator",proto:!0,real:!0,forced:c},{filter:function(e){return a(this),i(e),new f(s(this),{predicate:e})}})},59461:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{find:function(e){a(this),i(e);var t=s(this),n=0;return o(t,(function(t,r){if(e(t,n++))return r(t)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},34514:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{forEach:function(e){a(this),i(e);var t=s(this),n=0;o(t,(function(t){e(t,n++)}),{IS_RECORD:!0})}})},9924:function(e,t,n){"use strict";var r=n(82109),o=n(20487);r({target:"Iterator",proto:!0,real:!0,forced:n(31913)},{map:o})},72608:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942),u=TypeError;r({target:"Iterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var t=s(this),n=arguments.length<2,r=n?void 0:arguments[1],l=0;if(o(t,(function(t){n?(n=!1,r=t):r=e(r,t,l),l++}),{IS_RECORD:!0}),n)throw u("Reduce of empty iterator with no initial value");return r}})},41874:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{some:function(e){a(this),i(e);var t=s(this),n=0;return o(t,(function(t,r){if(e(t,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},10072:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(75706).remove;r({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,t=o(this),n=!0,r=0,a=arguments.length;r<a;r++)e=i(t,arguments[r]),n=n&&e;return!!n}})},23042:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(75706),a=i.get,s=i.has,u=i.set;r({target:"Map",proto:!0,real:!0,forced:!0},{emplace:function(e,t){var n,r,i=o(this);return s(i,e)?(n=a(i,e),"update"in t&&(n=t.update(n,e,i),u(i,e,n)),n):(r=t.insert(e,i),u(i,e,r),r)}})},99137:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{every:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!1!==a(t,(function(e,r){if(!n(e,r,t))return!1}),!0)}})},71957:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(75706),s=n(14995),u=a.Map,l=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e,o){n(e,o,t)&&l(r,o,e)})),r}})},103:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e,r){if(n(e,r,t))return{key:r}}),!0);return r&&r.key}})},96306:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e,r){if(n(e,r,t))return{value:e}}),!0);return r&&r.value}})},74592:function(e,t,n){"use strict";var r=n(82109),o=n(46465),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===a(i(this),(function(t){if(o(t,e))return!0}),!0)}})},58276:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var t=i(o(this),(function(t,n){if(t===e)return{key:n}}),!0);return t&&t.key}})},35082:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(75706),s=n(14995),u=a.Map,l=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e,o){l(r,n(e,o,t),e)})),r}})},12813:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(75706),s=n(14995),u=a.Map,l=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e,o){l(r,o,n(e,o,t))})),r}})},18222:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(20408),a=n(75706).set;r({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var t=o(this),n=arguments.length,r=0;r<n;)i(arguments[r++],(function(e,n){a(t,e,n)}),{AS_ENTRIES:!0});return t}})},38563:function(e,t,n){"use strict";var r=n(82109),o=n(19662),i=n(40027),a=n(14995),s=TypeError;r({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=i(this),n=arguments.length<2,r=n?void 0:arguments[1];if(o(e),a(t,(function(o,i){n?(n=!1,r=o):r=e(r,o,i,t)})),n)throw s("Reduce of empty map with no initial value");return r}})},50336:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{some:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!0===a(t,(function(e,r){if(n(e,r,t))return!0}),!0)}})},7512:function(e,t,n){"use strict";var r=n(82109),o=n(19662),i=n(40027),a=n(75706),s=TypeError,u=a.get,l=a.has,c=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,t){var n=i(this),r=arguments.length;o(t);var a=l(n,e);if(!a&&r<3)throw s("Updating absent value");var f=a?u(n,e):o(r>2?arguments[2]:void 0)(e,n);return c(n,e,t(f,e,n)),n}})},88921:function(e,t,n){"use strict";var r=n(82109),o=n(88999),i=n(79405).add;r({target:"Set",proto:!0,real:!0,forced:!0},{addAll:function(){for(var e=o(this),t=0,n=arguments.length;t<n;t++)i(e,arguments[t]);return e}})},96248:function(e,t,n){"use strict";var r=n(82109),o=n(88999),i=n(79405).remove;r({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,t=o(this),n=!0,r=0,a=arguments.length;r<a;r++)e=i(t,arguments[r]),n=n&&e;return!!n}})},13599:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(37075);r({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(e){return o(a,this,i(e))}})},11477:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(87758);r({target:"Set",proto:!0,real:!0,forced:!0},{every:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!1!==a(t,(function(e){if(!n(e,e,t))return!1}),!0)}})},64362:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(79405),s=n(87758),u=a.Set,l=a.add;r({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e){n(e,e,t)&&l(r,e)})),r}})},15389:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(87758);r({target:"Set",proto:!0,real:!0,forced:!0},{find:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e){if(n(e,e,t))return{value:e}}),!0);return r&&r.value}})},90401:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(81920);r({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(e){return o(a,this,i(e))}})},45164:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(78239);r({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(e){return o(a,this,i(e))}})},91238:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(49180);r({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(e){return o(a,this,i(e))}})},54837:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(10107);r({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(e){return o(a,this,i(e))}})},87485:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(88999),a=n(87758),s=n(41340),u=o([].join),l=o([].push);r({target:"Set",proto:!0,real:!0,forced:!0},{join:function(e){var t=i(this),n=void 0===e?",":s(e),r=[];return a(t,(function(e){l(r,e)})),u(r,n)}})},56767:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(79405),s=n(87758),u=a.Set,l=a.add;r({target:"Set",proto:!0,real:!0,forced:!0},{map:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new u;return s(t,(function(e){l(r,n(e,e,t))})),r}})},76651:function(e,t,n){"use strict";var r=n(82109),o=n(19662),i=n(88999),a=n(87758),s=TypeError;r({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=i(this),n=arguments.length<2,r=n?void 0:arguments[1];if(o(e),a(t,(function(o){n?(n=!1,r=o):r=e(r,o,o,t)})),n)throw s("Reduce of empty set with no initial value");return r}})},61437:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(87758);r({target:"Set",proto:!0,real:!0,forced:!0},{some:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!0===a(t,(function(e){if(n(e,e,t))return!0}),!0)}})},35285:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(98506);r({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(e){return o(a,this,i(e))}})},39865:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(39391);r({target:"Set",proto:!0,real:!0,forced:!0},{union:function(e){return o(a,this,i(e))}})},54747:function(e,t,n){"use strict";var r=n(17854),o=n(48324),i=n(98509),a=n(18533),s=n(68880),u=function(e){if(e&&e.forEach!==a)try{s(e,"forEach",a)}catch(t){e.forEach=a}};for(var l in o)o[l]&&u(r[l]&&r[l].prototype);u(i)},33948:function(e,t,n){"use strict";var r=n(17854),o=n(48324),i=n(98509),a=n(66992),s=n(68880),u=n(5112),l=u("iterator"),c=u("toStringTag"),f=a.values,d=function(e,t){if(e){if(e[l]!==f)try{s(e,l,f)}catch(r){e[l]=f}if(e[c]||s(e,c,t),o[t])for(var n in a)if(e[n]!==a[n])try{s(e,n,a[n])}catch(r){e[n]=a[n]}}};for(var p in o)d(r[p]&&r[p].prototype,p);d(i,"DOMTokenList")},65556:function(e,t,n){"use strict";n(66992);var r=n(82109),o=n(17854),i=n(46916),a=n(1702),s=n(19781),u=n(85143),l=n(98052),c=n(47045),f=n(89190),d=n(58003),p=n(63061),h=n(29909),g=n(25787),v=n(60614),m=n(92597),y=n(49974),b=n(70648),w=n(19670),x=n(70111),_=n(41340),S=n(70030),O=n(79114),C=n(18554),E=n(71246),A=n(48053),M=n(5112),k=n(94362),P=M("iterator"),R="URLSearchParams",T=R+"Iterator",I=h.set,B=h.getterFor(R),D=h.getterFor(T),j=Object.getOwnPropertyDescriptor,L=function(e){if(!s)return o[e];var t=j(o,e);return t&&t.value},Z=L("fetch"),N=L("Request"),F=L("Headers"),H=N&&N.prototype,V=F&&F.prototype,z=o.RegExp,U=o.TypeError,G=o.decodeURIComponent,W=o.encodeURIComponent,$=a("".charAt),q=a([].join),Y=a([].push),X=a("".replace),K=a([].shift),J=a([].splice),Q=a("".split),ee=a("".slice),te=/\+/g,ne=Array(4),re=function(e){return ne[e-1]||(ne[e-1]=z("((?:%[\\da-f]{2}){"+e+"})","gi"))},oe=function(e){try{return G(e)}catch(t){return e}},ie=function(e){var t=X(e,te," "),n=4;try{return G(t)}catch(r){for(;n;)t=X(t,re(n--),oe);return t}},ae=/[!'()~]|%20/g,se={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},ue=function(e){return se[e]},le=function(e){return X(W(e),ae,ue)},ce=p((function(e,t){I(this,{type:T,iterator:C(B(e).entries),kind:t})}),"Iterator",(function(){var e=D(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n}),!0),fe=function(e){this.entries=[],this.url=null,void 0!==e&&(x(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===$(e,0)?ee(e,1):e:_(e)))};fe.prototype={type:R,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,o,a,s,u,l=E(e);if(l)for(n=(t=C(e,l)).next;!(r=i(n,t)).done;){if(a=(o=C(w(r.value))).next,(s=i(a,o)).done||(u=i(a,o)).done||!i(a,o).done)throw U("Expected sequence with length 2");Y(this.entries,{key:_(s.value),value:_(u.value)})}else for(var c in e)m(e,c)&&Y(this.entries,{key:c,value:_(e[c])})},parseQuery:function(e){if(e)for(var t,n,r=Q(e,"&"),o=0;o<r.length;)(t=r[o++]).length&&(n=Q(t,"="),Y(this.entries,{key:ie(K(n)),value:ie(q(n,"="))}))},serialize:function(){for(var e,t=this.entries,n=[],r=0;r<t.length;)e=t[r++],Y(n,le(e.key)+"="+le(e.value));return q(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var de=function(){g(this,pe);var e=I(this,new fe(arguments.length>0?arguments[0]:void 0));s||(this.size=e.entries.length)},pe=de.prototype;if(f(pe,{append:function(e,t){var n=B(this);A(arguments.length,2),Y(n.entries,{key:_(e),value:_(t)}),s||this.length++,n.updateURL()},delete:function(e){for(var t=B(this),n=A(arguments.length,1),r=t.entries,o=_(e),i=n<2?void 0:arguments[1],a=void 0===i?i:_(i),u=0;u<r.length;){var l=r[u];if(l.key!==o||void 0!==a&&l.value!==a)u++;else if(J(r,u,1),void 0!==a)break}s||(this.size=r.length),t.updateURL()},get:function(e){var t=B(this).entries;A(arguments.length,1);for(var n=_(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){var t=B(this).entries;A(arguments.length,1);for(var n=_(e),r=[],o=0;o<t.length;o++)t[o].key===n&&Y(r,t[o].value);return r},has:function(e){for(var t=B(this).entries,n=A(arguments.length,1),r=_(e),o=n<2?void 0:arguments[1],i=void 0===o?o:_(o),a=0;a<t.length;){var s=t[a++];if(s.key===r&&(void 0===i||s.value===i))return!0}return!1},set:function(e,t){var n=B(this);A(arguments.length,1);for(var r,o=n.entries,i=!1,a=_(e),u=_(t),l=0;l<o.length;l++)(r=o[l]).key===a&&(i?J(o,l--,1):(i=!0,r.value=u));i||Y(o,{key:a,value:u}),s||(this.size=o.length),n.updateURL()},sort:function(){var e=B(this);k(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=B(this).entries,r=y(e,arguments.length>1?arguments[1]:void 0),o=0;o<n.length;)r((t=n[o++]).value,t.key,this)},keys:function(){return new ce(this,"keys")},values:function(){return new ce(this,"values")},entries:function(){return new ce(this,"entries")}},{enumerable:!0}),l(pe,P,pe.entries,{name:"entries"}),l(pe,"toString",(function(){return B(this).serialize()}),{enumerable:!0}),s&&c(pe,"size",{get:function(){return B(this).entries.length},configurable:!0,enumerable:!0}),d(de,R),r({global:!0,constructor:!0,forced:!u},{URLSearchParams:de}),!u&&v(F)){var he=a(V.has),ge=a(V.set),ve=function(e){if(x(e)){var t,n=e.body;if(b(n)===R)return t=e.headers?new F(e.headers):new F,he(t,"content-type")||ge(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),S(e,{body:O(0,_(n)),headers:O(0,t)})}return e};if(v(Z)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return Z(e,arguments.length>1?ve(arguments[1]):{})}}),v(N)){var me=function(e){return g(this,H),new N(e,arguments.length>1?ve(arguments[1]):{})};H.constructor=me,me.prototype=H,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:me})}}e.exports={URLSearchParams:de,getState:B}},41637:function(e,t,n){"use strict";n(65556)},71012:function(e){!function(){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=n.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var n=[],r=0;r<e.length;r+=3)for(var o=e[r]<<16|e[r+1]<<8|e[r+2],i=0;i<4;i++)8*r+6*i<=8*e.length?n.push(t.charAt(o>>>6*(3-i)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],r=0,o=0;r<e.length;o=++r%4)0!=o&&n.push((t.indexOf(e.charAt(r-1))&Math.pow(2,-2*o+8)-1)<<2*o|t.indexOf(e.charAt(r))>>>6-2*o);return n}};e.exports=n}()},44020:function(e){"use strict";var t="%[a-f0-9]{2}",n=new RegExp("("+t+")|([^%]+?)","gi"),r=new RegExp("("+t+")+","gi");function o(e,t){try{return[decodeURIComponent(e.join(""))]}catch(i){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],o(n),o(r))}function i(e){try{return decodeURIComponent(e)}catch(i){for(var t=e.match(n)||[],r=1;r<t.length;r++)t=(e=o(t,r).join("")).match(n)||[];return e}}e.exports=function(e){if("string"!==typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var n={"%FE%FF":"\ufffd\ufffd","%FF%FE":"\ufffd\ufffd"},o=r.exec(e);o;){try{n[o[0]]=decodeURIComponent(o[0])}catch(t){var a=i(o[0]);a!==o[0]&&(n[o[0]]=a)}o=r.exec(e)}n["%C2"]="\ufffd";for(var s=Object.keys(n),u=0;u<s.length;u++){var l=s[u];e=e.replace(new RegExp(l,"g"),n[l])}return e}(e)}}},7494:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return r.default}});var r=n(95984)},74321:function(e,t,n){"use strict";n.d(t,{Dv:function(){return i},He:function(){return s},JL:function(){return o},XX:function(){return w},cc:function(){return a}});var r=n(72247),o=function(e,t,n,r,o,a){return i(e,t,n,(function(e){return"logscale"!==e&&r(e)}),o,a)},i=function(e,t,n,o,i,a){var s,u,l,c,f=o("pixelsPerLabel"),d=[];if(a)for(s=0;s<a.length;s++)d.push({v:a[s]});else{if(o("logscale")){c=Math.floor(n/f);var p=r.binarySearch(e,m,1),h=r.binarySearch(t,m,-1);-1==p&&(p=0),-1==h&&(h=m.length-1);var g=null;if(h-p>=c/4){for(var v=h;v>=p;v--){var y=m[v],b=Math.log(y/e)/Math.log(t/e)*n,w={v:y};null===g||Math.abs(b-g.pixel_coord)>=f?g={tickValue:y,pixel_coord:b}:w.label="",d.push(w)}d.reverse()}}if(0===d.length){var x,_;o("labelsKMG2")?(x=[1,2,4,8,16,32,64,128,256],_=16):(x=[1,2,5,10,20,50,100],_=10);var S,O,C,E=Math.ceil(n/f),A=Math.abs(t-e)/E,M=Math.floor(Math.log(A)/Math.log(_)),k=Math.pow(_,M);for(u=0;u<x.length&&(S=k*x[u],O=Math.floor(e/S)*S,C=Math.ceil(t/S)*S,!(n/(c=Math.abs(C-O)/S)>f));u++);for(O>C&&(S*=-1),s=0;s<=c;s++)l=O+s*S,d.push({v:l})}}var P=o("axisLabelFormatter");for(s=0;s<d.length;s++)void 0===d[s].label&&(d[s].label=P.call(i,d[s].v,0,o,i));return d},a=function(e,t,n,r,o,i){var a=y(e,t,n,r);return a>=0?w(e,t,a,r,o):[]},s={MILLISECONDLY:0,TWO_MILLISECONDLY:1,FIVE_MILLISECONDLY:2,TEN_MILLISECONDLY:3,FIFTY_MILLISECONDLY:4,HUNDRED_MILLISECONDLY:5,FIVE_HUNDRED_MILLISECONDLY:6,SECONDLY:7,TWO_SECONDLY:8,FIVE_SECONDLY:9,TEN_SECONDLY:10,THIRTY_SECONDLY:11,MINUTELY:12,TWO_MINUTELY:13,FIVE_MINUTELY:14,TEN_MINUTELY:15,THIRTY_MINUTELY:16,HOURLY:17,TWO_HOURLY:18,SIX_HOURLY:19,DAILY:20,TWO_DAILY:21,WEEKLY:22,MONTHLY:23,QUARTERLY:24,BIANNUAL:25,ANNUAL:26,DECADAL:27,CENTENNIAL:28,NUM_GRANULARITIES:29},u=0,l=1,c=2,f=3,d=4,p=5,h=6,g=7,v=[];v[s.MILLISECONDLY]={datefield:h,step:1,spacing:1},v[s.TWO_MILLISECONDLY]={datefield:h,step:2,spacing:2},v[s.FIVE_MILLISECONDLY]={datefield:h,step:5,spacing:5},v[s.TEN_MILLISECONDLY]={datefield:h,step:10,spacing:10},v[s.FIFTY_MILLISECONDLY]={datefield:h,step:50,spacing:50},v[s.HUNDRED_MILLISECONDLY]={datefield:h,step:100,spacing:100},v[s.FIVE_HUNDRED_MILLISECONDLY]={datefield:h,step:500,spacing:500},v[s.SECONDLY]={datefield:p,step:1,spacing:1e3},v[s.TWO_SECONDLY]={datefield:p,step:2,spacing:2e3},v[s.FIVE_SECONDLY]={datefield:p,step:5,spacing:5e3},v[s.TEN_SECONDLY]={datefield:p,step:10,spacing:1e4},v[s.THIRTY_SECONDLY]={datefield:p,step:30,spacing:3e4},v[s.MINUTELY]={datefield:d,step:1,spacing:6e4},v[s.TWO_MINUTELY]={datefield:d,step:2,spacing:12e4},v[s.FIVE_MINUTELY]={datefield:d,step:5,spacing:3e5},v[s.TEN_MINUTELY]={datefield:d,step:10,spacing:6e5},v[s.THIRTY_MINUTELY]={datefield:d,step:30,spacing:18e5},v[s.HOURLY]={datefield:f,step:1,spacing:36e5},v[s.TWO_HOURLY]={datefield:f,step:2,spacing:72e5},v[s.SIX_HOURLY]={datefield:f,step:6,spacing:216e5},v[s.DAILY]={datefield:c,step:1,spacing:864e5},v[s.TWO_DAILY]={datefield:c,step:2,spacing:1728e5},v[s.WEEKLY]={datefield:c,step:7,spacing:6048e5},v[s.MONTHLY]={datefield:l,step:1,spacing:2629746e3},v[s.QUARTERLY]={datefield:l,step:3,spacing:7889238e3},v[s.BIANNUAL]={datefield:l,step:6,spacing:15778476e3},v[s.ANNUAL]={datefield:u,step:1,spacing:31556952e3},v[s.DECADAL]={datefield:u,step:10,spacing:31556952e4},v[s.CENTENNIAL]={datefield:u,step:100,spacing:31556952e5};var m=function(){for(var e=[],t=-39;t<=39;t++)for(var n=Math.pow(10,t),r=1;r<=9;r++){var o=n*r;e.push(o)}return e}(),y=function(e,t,n,r){for(var o=r("pixelsPerLabel"),i=0;i<s.NUM_GRANULARITIES;i++){if(n/b(e,t,i)>=o)return i}return-1},b=function(e,t,n){var r=v[n].spacing;return Math.round(1*(t-e)/r)},w=function(e,t,n,o,i){var a=o("axisLabelFormatter"),m=o("labelsUTC")?r.DateAccessorsUTC:r.DateAccessorsLocal,y=v[n].datefield,b=v[n].step,w=v[n].spacing,x=new Date(e),_=[];_[u]=m.getFullYear(x),_[l]=m.getMonth(x),_[c]=m.getDate(x),_[f]=m.getHours(x),_[d]=m.getMinutes(x),_[p]=m.getSeconds(x),_[h]=m.getMilliseconds(x);var S=_[y]%b;n==s.WEEKLY&&(S=m.getDay(x)),_[y]-=S;for(var O=y+1;O<g;O++)_[O]=O===c?1:0;var C=[],E=m.makeDate.apply(null,_),A=E.getTime();if(n<=s.HOURLY)for(A<e&&(A+=w,E=new Date(A));A<=t;)C.push({v:A,label:a.call(i,E,n,o,i)}),A+=w,E=new Date(A);else for(A<e&&(_[y]+=b,A=(E=m.makeDate.apply(null,_)).getTime());A<=t;)(n>=s.DAILY||m.getHours(E)%b===0)&&C.push({v:A,label:a.call(i,E,n,o,i)}),_[y]+=b,A=(E=m.makeDate.apply(null,_)).getTime();return C}},72247:function(e,t,n){"use strict";n.r(t),n.d(t,{Circles:function(){return K},DASHED_LINE:function(){return c},DOTTED_LINE:function(){return l},DOT_DASH_LINE:function(){return f},DateAccessorsLocal:function(){return M},DateAccessorsUTC:function(){return k},HORIZONTAL:function(){return d},Iterator:function(){return G},LN_TEN:function(){return a},LOG_SCALE:function(){return i},VERTICAL:function(){return p},addEvent:function(){return g},binarySearch:function(){return I},cancelEvent:function(){return m},clone:function(){return V},createCanvas:function(){return z},createIterator:function(){return W},dateAxisLabelFormatter:function(){return ve},dateParser:function(){return B},dateStrToMillis:function(){return D},dateString_:function(){return R},dateValueFormatter:function(){return me},detectLineDelimiter:function(){return J},dragGetX_:function(){return _},dragGetY_:function(){return S},findPos:function(){return b},floatFormat:function(){return E},getContext:function(){return h},getContextPixelRatio:function(){return U},hmsString_:function(){return P},hsvToRGB:function(){return y},isArrayLike:function(){return F},isCanvasSupported:function(){return ie},isDateLike:function(){return H},isNodeContainedBy:function(){return Q},isOK:function(){return O},isPixelChangingOptionList:function(){return X},isValidPoint:function(){return C},log10:function(){return s},logRangeFraction:function(){return u},numberAxisLabelFormatter:function(){return he},numberValueFormatter:function(){return pe},pageX:function(){return w},pageY:function(){return x},parseFloat_:function(){return ae},pow:function(){return ee},removeEvent:function(){return v},repeatAndCleanup:function(){return q},requestAnimFrame:function(){return $},round_:function(){return T},setupDOMready_:function(){return xe},toRGB_:function(){return oe},type:function(){return o},typeArrayLike:function(){return N},update:function(){return j},updateDeep:function(){return Z},zeropad:function(){return A}});var r=n(74321);function o(e){return null===e?"null":typeof e}var i=10,a=Math.log(i),s=function(e){return Math.log(e)/a},u=function(e,t,n){var r=s(e),o=r+n*(s(t)-r);return Math.pow(i,o)},l=[2,2],c=[7,3],f=[7,2,2,2],d=1,p=2,h=function(e){return e.getContext("2d")},g=function(e,t,n){e.addEventListener(t,n,!1)};function v(e,t,n){e.removeEventListener(t,n,!1)}function m(e){return(e=e||window.event).stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1,!1}function y(e,t,n){var r,o,i;if(0===t)r=n,o=n,i=n;else{var a=Math.floor(6*e),s=6*e-a,u=n*(1-t),l=n*(1-t*s),c=n*(1-t*(1-s));switch(a){case 1:r=l,o=n,i=u;break;case 2:r=u,o=n,i=c;break;case 3:r=u,o=l,i=n;break;case 4:r=c,o=u,i=n;break;case 5:r=n,o=u,i=l;break;case 6:case 0:r=n,o=c,i=u}}return"rgb("+(r=Math.floor(255*r+.5))+","+(o=Math.floor(255*o+.5))+","+(i=Math.floor(255*i+.5))+")"}function b(e){var t=e.getBoundingClientRect(),n=window,r=document.documentElement;return{x:t.left+(n.pageXOffset||r.scrollLeft),y:t.top+(n.pageYOffset||r.scrollTop)}}function w(e){return!e.pageX||e.pageX<0?0:e.pageX}function x(e){return!e.pageY||e.pageY<0?0:e.pageY}function _(e,t){return w(e)-t.px}function S(e,t){return x(e)-t.py}function O(e){return!!e&&!isNaN(e)}function C(e,t){return!!e&&(null!==e.yval&&(null!==e.x&&void 0!==e.x&&(null!==e.y&&void 0!==e.y&&!(isNaN(e.x)||!t&&isNaN(e.y)))))}function E(e,t){var n=Math.min(Math.max(1,t||2),21);return Math.abs(e)<.001&&0!==e?e.toExponential(n-1):e.toPrecision(n)}function A(e){return e<10?"0"+e:""+e}var M={getFullYear:e=>e.getFullYear(),getMonth:e=>e.getMonth(),getDate:e=>e.getDate(),getHours:e=>e.getHours(),getMinutes:e=>e.getMinutes(),getSeconds:e=>e.getSeconds(),getMilliseconds:e=>e.getMilliseconds(),getDay:e=>e.getDay(),makeDate:function(e,t,n,r,o,i,a){return new Date(e,t,n,r,o,i,a)}},k={getFullYear:e=>e.getUTCFullYear(),getMonth:e=>e.getUTCMonth(),getDate:e=>e.getUTCDate(),getHours:e=>e.getUTCHours(),getMinutes:e=>e.getUTCMinutes(),getSeconds:e=>e.getUTCSeconds(),getMilliseconds:e=>e.getUTCMilliseconds(),getDay:e=>e.getUTCDay(),makeDate:function(e,t,n,r,o,i,a){return new Date(Date.UTC(e,t,n,r,o,i,a))}};function P(e,t,n,r){var o=A(e)+":"+A(t);if(n&&(o+=":"+A(n),r)){var i=""+r;o+="."+("000"+i).substring(i.length)}return o}function R(e,t){var n=t?k:M,r=new Date(e),o=n.getFullYear(r),i=n.getMonth(r),a=n.getDate(r),s=n.getHours(r),u=n.getMinutes(r),l=n.getSeconds(r),c=n.getMilliseconds(r),f=""+o+"/"+A(i+1)+"/"+A(a);return 3600*s+60*u+l+.001*c&&(f+=" "+P(s,u,l,c)),f}function T(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}function I(e,t,n,r,o){if(null!==r&&void 0!==r&&null!==o&&void 0!==o||(r=0,o=t.length-1),r>o)return-1;null!==n&&void 0!==n||(n=0);var i,a=function(e){return e>=0&&e<t.length},s=parseInt((r+o)/2,10),u=t[s];return u==e?s:u>e?n>0&&a(i=s-1)&&t[i]<e?s:I(e,t,n,r,s-1):u<e?n<0&&a(i=s+1)&&t[i]>e?s:I(e,t,n,s+1,o):-1}function B(e){var t,n;if((-1==e.search("-")||-1!=e.search("T")||-1!=e.search("Z"))&&(n=D(e))&&!isNaN(n))return n;if(-1!=e.search("-")){for(t=e.replace("-","/","g");-1!=t.search("-");)t=t.replace("-","/");n=D(t)}else n=D(e);return n&&!isNaN(n)||console.error("Couldn't parse "+e+" as a date"),n}function D(e){return new Date(e).getTime()}function j(e,t){if("undefined"!=typeof t&&null!==t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var L="undefined"!==typeof Node&&null!==Node&&"object"===typeof Node?function(e){return e instanceof Node}:function(e){return"object"===typeof e&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName};function Z(e,t){if("undefined"!=typeof t&&null!==t)for(var n in t)if(t.hasOwnProperty(n)){const r=t[n];null===r?e[n]=null:F(r)?e[n]=r.slice():L(r)?e[n]=r:"object"==typeof r?("object"==typeof e[n]&&null!==e[n]||(e[n]={}),Z(e[n],r)):e[n]=r}return e}function N(e){if(null===e)return"null";const t=typeof e;return("object"===t||"function"===t&&"function"===typeof e.item)&&"number"===typeof e.length&&3!==e.nodeType&&4!==e.nodeType?"array":t}function F(e){const t=typeof e;return null!==e&&("object"===t||"function"===t&&"function"===typeof e.item)&&"number"===typeof e.length&&3!==e.nodeType&&4!==e.nodeType}function H(e){return null!==e&&"object"===typeof e&&"function"===typeof e.getTime}function V(e){for(var t=[],n=0;n<e.length;n++)F(e[n])?t.push(V(e[n])):t.push(e[n]);return t}function z(){return document.createElement("canvas")}function U(e){try{var t=window.devicePixelRatio,n=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return void 0!==t?t/n:1}catch(r){return 1}}function G(e,t,n,r){t=t||0,n=n||e.length,this.hasNext=!0,this.peek=null,this.start_=t,this.array_=e,this.predicate_=r,this.end_=Math.min(e.length,t+n),this.nextIdx_=t-1,this.next()}function W(e,t,n,r){return new G(e,t,n,r)}G.prototype.next=function(){if(!this.hasNext)return null;for(var e=this.peek,t=this.nextIdx_+1,n=!1;t<this.end_;){if(!this.predicate_||this.predicate_(this.array_,t)){this.peek=this.array_[t],n=!0;break}t++}return this.nextIdx_=t,n||(this.hasNext=!1,this.peek=null),e};var $=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)};function q(e,t,n,r){var o,i=0,a=(new Date).getTime();if(e(i),1!=t){var s=t-1;!function u(){i>=t||$.call(window,(function(){var t=(new Date).getTime()-a;o=i;var l=(i=Math.floor(t/n))-o;i+l>s||i>=s?(e(s),r()):(0!==l&&e(i),u())}))}()}else r()}var Y={annotationClickHandler:!0,annotationDblClickHandler:!0,annotationMouseOutHandler:!0,annotationMouseOverHandler:!0,axisLineColor:!0,axisLineWidth:!0,clickCallback:!0,drawCallback:!0,drawHighlightPointCallback:!0,drawPoints:!0,drawPointCallback:!0,drawGrid:!0,fillAlpha:!0,gridLineColor:!0,gridLineWidth:!0,hideOverlayOnMouseOut:!0,highlightCallback:!0,highlightCircleSize:!0,interactionModel:!0,labelsDiv:!0,labelsKMB:!0,labelsKMG2:!0,labelsSeparateLines:!0,labelsShowZeroValues:!0,legend:!0,panEdgeFraction:!0,pixelsPerYLabel:!0,pointClickCallback:!0,pointSize:!0,rangeSelectorPlotFillColor:!0,rangeSelectorPlotFillGradientColor:!0,rangeSelectorPlotStrokeColor:!0,rangeSelectorBackgroundStrokeColor:!0,rangeSelectorBackgroundLineWidth:!0,rangeSelectorPlotLineWidth:!0,rangeSelectorForegroundStrokeColor:!0,rangeSelectorForegroundLineWidth:!0,rangeSelectorAlpha:!0,showLabelsOnHighlight:!0,showRoller:!0,strokeWidth:!0,underlayCallback:!0,unhighlightCallback:!0,zoomCallback:!0};function X(e,t){var n={};if(e)for(var r=1;r<e.length;r++)n[e[r]]=!0;var o=function(e){for(var t in e)if(e.hasOwnProperty(t)&&!Y[t])return!0;return!1};for(var i in t)if(t.hasOwnProperty(i))if("highlightSeriesOpts"==i||n[i]&&!t.series){if(o(t[i]))return!0}else if("series"==i||"axes"==i){var a=t[i];for(var s in a)if(a.hasOwnProperty(s)&&o(a[s]))return!0}else if(!Y[i])return!0;return!1}var K={DEFAULT:function(e,t,n,r,o,i,a){n.beginPath(),n.fillStyle=i,n.arc(r,o,a,0,2*Math.PI,!1),n.fill()}};function J(e){for(var t=0;t<e.length;t++){var n=e.charAt(t);if("\r"===n)return t+1<e.length&&"\n"===e.charAt(t+1)?"\r\n":n;if("\n"===n)return t+1<e.length&&"\r"===e.charAt(t+1)?"\n\r":n}return null}function Q(e,t){if(null===t||null===e)return!1;for(var n=e;n&&n!==t;)n=n.parentNode;return n===t}function ee(e,t){return t<0?1/Math.pow(e,-t):Math.pow(e,t)}var te=/^#([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})?$/,ne=/^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*([01](?:\.\d+)?))?\)$/;function re(e){var t,n,r,o,i=null;if(t=te.exec(e))n=parseInt(t[1],16),r=parseInt(t[2],16),o=parseInt(t[3],16),t[4]&&(i=parseInt(t[4],16));else{if(!(t=ne.exec(e)))return null;n=parseInt(t[1],10),r=parseInt(t[2],10),o=parseInt(t[3],10),t[4]&&(i=parseFloat(t[4]))}return null!==i?{r:n,g:r,b:o,a:i}:{r:n,g:r,b:o}}function oe(e){var t=re(e);if(t)return t;var n=document.createElement("div");n.style.backgroundColor=e,n.style.visibility="hidden",document.body.appendChild(n);var r=window.getComputedStyle(n,null).backgroundColor;return document.body.removeChild(n),re(r)}function ie(e){try{(e||document.createElement("canvas")).getContext("2d")}catch(t){return!1}return!0}function ae(e,t,n){var r=parseFloat(e);if(!isNaN(r))return r;if(/^ *$/.test(e))return null;if(/^ *nan *$/i.test(e))return NaN;var o="Unable to parse '"+e+"' as a number";return void 0!==n&&void 0!==t&&(o+=" on line "+(1+(t||0))+" ('"+n+"') of CSV."),console.error(o),null}var se=["k","M","G","T","P","E","Z","Y"],ue=["m","\xb5","n","p","f","a","z","y"],le=["Ki","Mi","Gi","Ti","Pi","Ei","Zi","Yi"],ce=["p-10","p-20","p-30","p-40","p-50","p-60","p-70","p-80"],fe=["K","M","G","T","P","E","Z","Y"],de=ue;function pe(e,t){var n=t("sigFigs");if(null!==n)return E(e,n);if(0===e)return"0";var r=t("digitsAfterDecimal"),o=t("maxNumberWidth"),i=t("labelsKMB"),a=t("labelsKMG2"),s=Math.abs(e);if(i||a){var u,l,c,f=[],d=[];if(i&&(u=1e3,f=se,d=ue),a&&(u=1024,f=le,d=ce,i&&(f=fe,d=de)),s>=u){for(c=f.length;c>0;)if(l=ee(u,c),--c,s>=l)return s/l>=Math.pow(10,o)?e.toExponential(r):T(e/l,r)+f[c]}else if(s<1){for(c=0;c<d.length&&!(s*(l=ee(u,++c))>=1););return s*l<Math.pow(10,-r)?e.toExponential(r):T(e*l,r)+d[c-1]}}return s>=Math.pow(10,o)||s<Math.pow(10,-r)?e.toExponential(r):""+T(e,r)}function he(e,t,n){return pe.call(this,e,n)}var ge=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ve(e,t,n){var o=n("labelsUTC")?k:M,i=o.getFullYear(e),a=o.getMonth(e),s=o.getDate(e),u=o.getHours(e),l=o.getMinutes(e),c=o.getSeconds(e),f=o.getMilliseconds(e);if(t>=r.He.DECADAL)return""+i;if(t>=r.He.MONTHLY)return ge[a]+"&#160;"+i;if(0===3600*u+60*l+c+.001*f||t>=r.He.DAILY)return A(s)+"&#160;"+ge[a];if(t<r.He.SECONDLY){var d=""+f;return A(c)+"."+("000"+d).substring(d.length)}return t>r.He.MINUTELY?P(u,l,c,0):P(u,l,c,f)}function me(e,t){return R(e,t("labelsUTC"))}var ye=[],be=!1;function we(e){return"function"===typeof e&&e(),!0}function xe(e){if("undefined"!==typeof document){const t=function(){if(!be){be=!0,e.onDOMready=we,document.removeEventListener("DOMContentLoaded",t,!1),window.removeEventListener("load",t,!1);for(let e=0;e<ye.length;++e)ye[e]();ye=null}};e.onDOMready=function(n){if("complete"===document.readyState)return e.onDOMready=we,we(n);const r=function(e){return"function"===typeof e&&ye.push(e),!1};return e.onDOMready=r,document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1),"complete"===document.readyState?(t(),e.onDOMready=we,we(n)):r(n)}}}},95984:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return K}});var r=n(72247),o=function(e){this.dygraph_=e,this.points=[],this.setNames=[],this.annotations=[],this.yAxes_=null,this.xTicks_=null,this.yTicks_=null};o.prototype.addDataset=function(e,t){this.points.push(t),this.setNames.push(e)},o.prototype.getPlotArea=function(){return this.area_},o.prototype.computePlotArea=function(){var e={x:0,y:0};e.w=this.dygraph_.width_-e.x-this.dygraph_.getOption("rightGap"),e.h=this.dygraph_.height_;var t={chart_div:this.dygraph_.graphDiv,reserveSpaceLeft:function(t){var n={x:e.x,y:e.y,w:t,h:e.h};return e.x+=t,e.w-=t,n},reserveSpaceRight:function(t){var n={x:e.x+e.w-t,y:e.y,w:t,h:e.h};return e.w-=t,n},reserveSpaceTop:function(t){var n={x:e.x,y:e.y,w:e.w,h:t};return e.y+=t,e.h-=t,n},reserveSpaceBottom:function(t){var n={x:e.x,y:e.y+e.h-t,w:e.w,h:t};return e.h-=t,n},chartRect:function(){return{x:e.x,y:e.y,w:e.w,h:e.h}}};this.dygraph_.cascadeEvents_("layout",t),this.area_=e},o.prototype.setAnnotations=function(e){this.annotations=[];for(var t=this.dygraph_.getOption("xValueParser")||function(e){return e},n=0;n<e.length;n++){var o={};if(!e[n].xval&&void 0===e[n].x)return void console.error("Annotations must have an 'x' property");if(e[n].icon&&(!e[n].hasOwnProperty("width")||!e[n].hasOwnProperty("height")))return void console.error("Must set width and height when setting annotation.icon property");r.update(o,e[n]),o.xval||(o.xval=t(o.x)),this.annotations.push(o)}},o.prototype.setXTicks=function(e){this.xTicks_=e},o.prototype.setYAxes=function(e){this.yAxes_=e},o.prototype.evaluate=function(){this._xAxis={},this._evaluateLimits(),this._evaluateLineCharts(),this._evaluateLineTicks(),this._evaluateAnnotations()},o.prototype._evaluateLimits=function(){var e=this.dygraph_.xAxisRange();this._xAxis.minval=e[0],this._xAxis.maxval=e[1];var t=e[1]-e[0];this._xAxis.scale=0!==t?1/t:1,this.dygraph_.getOptionForAxis("logscale","x")&&(this._xAxis.xlogrange=r.log10(this._xAxis.maxval)-r.log10(this._xAxis.minval),this._xAxis.xlogscale=0!==this._xAxis.xlogrange?1/this._xAxis.xlogrange:1);for(var n=0;n<this.yAxes_.length;n++){var o=this.yAxes_[n];o.minyval=o.computedValueRange[0],o.maxyval=o.computedValueRange[1],o.yrange=o.maxyval-o.minyval,o.yscale=0!==o.yrange?1/o.yrange:1,(this.dygraph_.getOption("logscale")||o.logscale)&&(o.ylogrange=r.log10(o.maxyval)-r.log10(o.minyval),o.ylogscale=0!==o.ylogrange?1/o.ylogrange:1,isFinite(o.ylogrange)&&!isNaN(o.ylogrange)||console.error("axis "+n+" of graph at "+o.g+" can't be displayed in log scale for range ["+o.minyval+" - "+o.maxyval+"]"))}},o.calcXNormal_=function(e,t,n){return n?(r.log10(e)-r.log10(t.minval))*t.xlogscale:(e-t.minval)*t.scale},o.calcYNormal_=function(e,t,n){if(n){var o=1-(r.log10(t)-r.log10(e.minyval))*e.ylogscale;return isFinite(o)?o:NaN}return 1-(t-e.minyval)*e.yscale},o.prototype._evaluateLineCharts=function(){for(var e=this.dygraph_.getOption("stackedGraph"),t=this.dygraph_.getOptionForAxis("logscale","x"),n=0;n<this.points.length;n++){for(var r=this.points[n],i=this.setNames[n],a=this.dygraph_.getOption("connectSeparatedPoints",i),s=this.dygraph_.axisPropertiesForSeries(i),u=this.dygraph_.attributes_.getForSeries("logscale",i),l=0;l<r.length;l++){var c=r[l];c.x=o.calcXNormal_(c.xval,this._xAxis,t);var f=c.yval;e&&(c.y_stacked=o.calcYNormal_(s,c.yval_stacked,u),null===f||isNaN(f)||(f=c.yval_stacked)),null===f&&(f=NaN,a||(c.yval=NaN)),c.y=o.calcYNormal_(s,f,u)}this.dygraph_.dataHandler_.onLineEvaluated(r,s,u)}},o.prototype._evaluateLineTicks=function(){var e,t,n,r,o,i;for(this.xticks=[],e=0;e<this.xTicks_.length;e++)n=(t=this.xTicks_[e]).label,o=(i=!("label_v"in t))?t.v:t.label_v,(r=this.dygraph_.toPercentXCoord(o))>=0&&r<1&&this.xticks.push({pos:r,label:n,has_tick:i});for(this.yticks=[],e=0;e<this.yAxes_.length;e++)for(var a=this.yAxes_[e],s=0;s<a.ticks.length;s++)n=(t=a.ticks[s]).label,o=(i=!("label_v"in t))?t.v:t.label_v,(r=this.dygraph_.toPercentYCoord(o,e))>0&&r<=1&&this.yticks.push({axis:e,pos:r,label:n,has_tick:i})},o.prototype._evaluateAnnotations=function(){var e,t={};for(e=0;e<this.annotations.length;e++){var n=this.annotations[e];t[n.xval+","+n.series]=n}if(this.annotated_points=[],this.annotations&&this.annotations.length)for(var r=0;r<this.points.length;r++){var o=this.points[r];for(e=0;e<o.length;e++){var i=o[e],a=i.xval+","+i.name;a in t&&(i.annotation=t[a],this.annotated_points.push(i),delete t[a])}}},o.prototype.removeAllDatasets=function(){delete this.points,delete this.setNames,delete this.setPointsLengths,delete this.setPointsOffsets,this.points=[],this.setNames=[],this.setPointsLengths=[],this.setPointsOffsets=[]};var i=o,a=function(e,t,n,o){if(this.dygraph_=e,this.layout=o,this.element=t,this.elementContext=n,this.height=e.height_,this.width=e.width_,!r.isCanvasSupported(this.element))throw"Canvas is not supported.";this.area=o.getPlotArea();var i=this.dygraph_.canvas_ctx_;i.beginPath(),i.rect(this.area.x,this.area.y,this.area.w,this.area.h),i.clip(),(i=this.dygraph_.hidden_ctx_).beginPath(),i.rect(this.area.x,this.area.y,this.area.w,this.area.h),i.clip()};a.prototype.clear=function(){this.elementContext.clearRect(0,0,this.width,this.height)},a.prototype.render=function(){this._updatePoints(),this._renderLineChart()},a._getIteratorPredicate=function(e){return e?a._predicateThatSkipsEmptyPoints:null},a._predicateThatSkipsEmptyPoints=function(e,t){return null!==e[t].yval},a._drawStyledLine=function(e,t,n,o,i,s,u){var l=e.dygraph,c=l.getBooleanOption("stepPlot",e.setName);r.isArrayLike(o)||(o=null);var f=l.getBooleanOption("drawGapEdgePoints",e.setName),d=e.points,p=e.setName,h=r.createIterator(d,0,d.length,a._getIteratorPredicate(l.getBooleanOption("connectSeparatedPoints",p))),g=o&&o.length>=2,v=e.drawingContext;v.save(),g&&v.setLineDash&&v.setLineDash(o);var m=a._drawSeries(e,h,n,u,i,f,c,t);a._drawPointsOnLine(e,m,s,t,u),g&&v.setLineDash&&v.setLineDash([]),v.restore()},a._drawSeries=function(e,t,n,r,o,i,a,s){var u,l,c=null,f=null,d=null,p=[],h=!0,g=e.drawingContext;g.beginPath(),g.strokeStyle=s,g.lineWidth=n;for(var v=t.array_,m=t.end_,y=t.predicate_,b=t.start_;b<m;b++){if(l=v[b],y){for(;b<m&&!y(v,b);)b++;if(b==m)break;l=v[b]}if(null===l.canvasy||l.canvasy!=l.canvasy)a&&null!==c&&(g.moveTo(c,f),g.lineTo(l.canvasx,f)),c=f=null;else{if(u=!1,i||null===c){t.nextIdx_=b,t.next();var w=null===(d=t.hasNext?t.peek.canvasy:null)||d!=d;u=null===c&&w,i&&(!h&&null===c||t.hasNext&&w)&&(u=!0)}null!==c?n&&(a&&(g.moveTo(c,f),g.lineTo(l.canvasx,f)),g.lineTo(l.canvasx,l.canvasy)):g.moveTo(l.canvasx,l.canvasy),(o||u)&&p.push([l.canvasx,l.canvasy,l.idx]),c=l.canvasx,f=l.canvasy}h=!1}return g.stroke(),p},a._drawPointsOnLine=function(e,t,n,r,o){for(var i=e.drawingContext,a=0;a<t.length;a++){var s=t[a];i.save(),n.call(e.dygraph,e.dygraph,e.setName,i,s[0],s[1],r,o,s[2]),i.restore()}},a.prototype._updatePoints=function(){for(var e=this.layout.points,t=e.length;t--;)for(var n=e[t],r=n.length;r--;){var o=n[r];o.canvasx=this.area.w*o.x+this.area.x,o.canvasy=this.area.h*o.y+this.area.y}},a.prototype._renderLineChart=function(e,t){var n,o,i=t||this.elementContext,a=this.layout.points,s=this.layout.setNames;this.colors=this.dygraph_.colorsMap_;var u=this.dygraph_.getOption("plotter"),l=u;r.isArrayLike(l)||(l=[l]);var c={};for(n=0;n<s.length;n++){o=s[n];var f=this.dygraph_.getOption("plotter",o);f!=u&&(c[o]=f)}for(n=0;n<l.length;n++)for(var d=l[n],p=n==l.length-1,h=0;h<a.length;h++)if(o=s[h],!e||o==e){var g=a[h],v=d;if(o in c){if(!p)continue;v=c[o]}var m=this.colors[o],y=this.dygraph_.getOption("strokeWidth",o);i.save(),i.strokeStyle=m,i.lineWidth=y,v({points:g,setName:o,drawingContext:i,color:m,strokeWidth:y,dygraph:this.dygraph_,axis:this.dygraph_.axisPropertiesForSeries(o),plotArea:this.area,seriesIndex:h,seriesCount:a.length,singleSeriesName:e,allSeriesPoints:a}),i.restore()}},a._Plotters={linePlotter:function(e){a._linePlotter(e)},fillPlotter:function(e){a._fillPlotter(e)},errorPlotter:function(e){a._errorPlotter(e)}},a._linePlotter=function(e){var t=e.dygraph,n=e.setName,o=e.strokeWidth,i=t.getNumericOption("strokeBorderWidth",n),s=t.getOption("drawPointCallback",n)||r.Circles.DEFAULT,u=t.getOption("strokePattern",n),l=t.getBooleanOption("drawPoints",n),c=t.getNumericOption("pointSize",n);i&&o&&a._drawStyledLine(e,t.getOption("strokeBorderColor",n),o+2*i,u,l,s,c),a._drawStyledLine(e,e.color,o,u,l,s,c)},a._errorPlotter=function(e){var t=e.dygraph,n=e.setName;if(t.getBooleanOption("errorBars")||t.getBooleanOption("customBars")){t.getBooleanOption("fillGraph",n)&&console.warn("Can't use fillGraph option with customBars or errorBars option");var o,i=e.drawingContext,s=e.color,u=t.getNumericOption("fillAlpha",n),l=t.getBooleanOption("stepPlot",n),c=e.points,f=r.createIterator(c,0,c.length,a._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",n))),d=NaN,p=NaN,h=[-1,-1],g=r.toRGB_(s),v="rgba("+g.r+","+g.g+","+g.b+","+u+")";i.fillStyle=v,i.beginPath();for(var m=function(e){return null===e||void 0===e||isNaN(e)};f.hasNext;){var y=f.next();!l&&m(y.y)||l&&!isNaN(p)&&m(p)?d=NaN:(o=[y.y_bottom,y.y_top],l&&(p=y.y),isNaN(o[0])&&(o[0]=y.y),isNaN(o[1])&&(o[1]=y.y),o[0]=e.plotArea.h*o[0]+e.plotArea.y,o[1]=e.plotArea.h*o[1]+e.plotArea.y,isNaN(d)||(l?(i.moveTo(d,h[0]),i.lineTo(y.canvasx,h[0]),i.lineTo(y.canvasx,h[1])):(i.moveTo(d,h[0]),i.lineTo(y.canvasx,o[0]),i.lineTo(y.canvasx,o[1])),i.lineTo(d,h[1]),i.closePath()),h=o,d=y.canvasx)}i.fill()}},a._fastCanvasProxy=function(e){var t=[],n=null,r=null,o=0,i=function(n){!function(e){if(!(t.length<=1)){for(var n=t.length-1;n>0;n--)if(2==(s=t[n])[0]){var r=t[n-1];r[1]==s[1]&&r[2]==s[2]&&t.splice(n,1)}for(n=0;n<t.length-1;)2==(s=t[n])[0]&&2==t[n+1][0]?t.splice(n,1):n++;if(t.length>2&&!e){var o=0;2==t[0][0]&&o++;var i=null,a=null;for(n=o;n<t.length;n++){var s;if(1==(s=t[n])[0])if(null===i&&null===a)i=n,a=n;else{var u=s[2];u<t[i][2]?i=n:u>t[a][2]&&(a=n)}}var l=t[i],c=t[a];t.splice(o,t.length-o),i<a?(t.push(l),t.push(c)):i>a?(t.push(c),t.push(l)):t.push(l)}}}(n);for(var i=0,a=t.length;i<a;i++){var s=t[i];1==s[0]?e.lineTo(s[1],s[2]):2==s[0]&&e.moveTo(s[1],s[2])}t.length&&(r=t[t.length-1][1]),o+=t.length,t=[]},a=function(e,o,a){var s=Math.round(o);null!==n&&s==n||(i(n-r>1||s-n>1),n=s);t.push([e,o,a])};return{moveTo:function(e,t){a(2,e,t)},lineTo:function(e,t){a(1,e,t)},stroke:function(){i(!0),e.stroke()},fill:function(){i(!0),e.fill()},beginPath:function(){i(!0),e.beginPath()},closePath:function(){i(!0),e.closePath()},_count:function(){return o}}},a._fillPlotter=function(e){if(!e.singleSeriesName&&0===e.seriesIndex){for(var t=e.dygraph,n=t.getLabels().slice(1),o=n.length;o>=0;o--)t.visibility()[o]||n.splice(o,1);var i=function(){for(var e=0;e<n.length;e++)if(t.getBooleanOption("fillGraph",n[e]))return!0;return!1}();if(i)for(var s,u,l=e.plotArea,c=e.allSeriesPoints,f=c.length,d=t.getBooleanOption("stackedGraph"),p=t.getColors(),h={},g=function(e,t,n,r){if(e.lineTo(t,n),d)for(var o=r.length-1;o>=0;o--){var i=r[o];e.lineTo(i[0],i[1])}},v=f-1;v>=0;v--){var m=e.drawingContext,y=n[v];if(t.getBooleanOption("fillGraph",y)){var b=t.getNumericOption("fillAlpha",y),w=t.getBooleanOption("stepPlot",y),x=p[v],_=t.axisPropertiesForSeries(y),S=1+_.minyval*_.yscale;S<0?S=0:S>1&&(S=1),S=l.h*S+l.y;var O,C=c[v],E=r.createIterator(C,0,C.length,a._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",y))),A=NaN,M=[-1,-1],k=r.toRGB_(x),P="rgba("+k.r+","+k.g+","+k.b+","+b+")";m.fillStyle=P,m.beginPath();var R,T=!0;(C.length>2*t.width_||K.FORCE_FAST_PROXY)&&(m=a._fastCanvasProxy(m));for(var I,B=[];E.hasNext;)if(I=E.next(),r.isOK(I.y)||w){if(d){if(!T&&R==I.xval)continue;var D;T=!1,R=I.xval,D=void 0===(s=h[I.canvasx])?S:u?s[0]:s,O=[I.canvasy,D],w?-1===M[0]?h[I.canvasx]=[I.canvasy,S]:h[I.canvasx]=[I.canvasy,M[0]]:h[I.canvasx]=I.canvasy}else O=isNaN(I.canvasy)&&w?[l.y+l.h,S]:[I.canvasy,S];isNaN(A)?(m.moveTo(I.canvasx,O[1]),m.lineTo(I.canvasx,O[0])):(w?(m.lineTo(I.canvasx,M[0]),m.lineTo(I.canvasx,O[0])):m.lineTo(I.canvasx,O[0]),d&&(B.push([A,M[1]]),u&&s?B.push([I.canvasx,s[1]]):B.push([I.canvasx,O[1]]))),M=O,A=I.canvasx}else g(m,A,M[1],B),B=[],A=NaN,null===I.y_stacked||isNaN(I.y_stacked)||(h[I.canvasx]=l.h*I.y_stacked+l.y);u=w,O&&I&&(g(m,I.canvasx,O[1],B),B=[]),m.fill()}}}};var s=a,u=n(74321),l={maybeTreatMouseOpAsClick:function(e,t,n){n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=Math.abs(n.dragEndX-n.dragStartX),i=Math.abs(n.dragEndY-n.dragStartY);o<2&&i<2&&void 0!==t.lastx_&&null!==t.lastx_&&l.treatMouseOpAsClick(t,e,n),n.regionWidth=o,n.regionHeight=i},startPan:function(e,t,n){var o,i;n.isPanning=!0;var a=t.xAxisRange();if(t.getOptionForAxis("logscale","x")?(n.initialLeftmostDate=r.log10(a[0]),n.dateRange=r.log10(a[1])-r.log10(a[0])):(n.initialLeftmostDate=a[0],n.dateRange=a[1]-a[0]),n.xUnitsPerPixel=n.dateRange/(t.plotter_.area.w-1),t.getNumericOption("panEdgeFraction")){var s=t.width_*t.getNumericOption("panEdgeFraction"),u=t.xAxisExtremes(),l=t.toDomXCoord(u[0])-s,c=t.toDomXCoord(u[1])+s,f=t.toDataXCoord(l),d=t.toDataXCoord(c);n.boundedDates=[f,d];var p=[],h=t.height_*t.getNumericOption("panEdgeFraction");for(o=0;o<t.axes_.length;o++){var g=(i=t.axes_[o]).extremeRange,v=t.toDomYCoord(g[0],o)+h,m=t.toDomYCoord(g[1],o)-h,y=t.toDataYCoord(v,o),b=t.toDataYCoord(m,o);p[o]=[y,b]}n.boundedValues=p}else n.boundedDates=null,n.boundedValues=null;for(n.is2DPan=!1,n.axes=[],o=0;o<t.axes_.length;o++){i=t.axes_[o];var w={},x=t.yAxisRange(o);t.attributes_.getForAxis("logscale",o)?(w.initialTopValue=r.log10(x[1]),w.dragValueRange=r.log10(x[1])-r.log10(x[0])):(w.initialTopValue=x[1],w.dragValueRange=x[1]-x[0]),w.unitsPerPixel=w.dragValueRange/(t.plotter_.area.h-1),n.axes.push(w),i.valueRange&&(n.is2DPan=!0)}},movePan:function(e,t,n){n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=n.initialLeftmostDate-(n.dragEndX-n.dragStartX)*n.xUnitsPerPixel;n.boundedDates&&(o=Math.max(o,n.boundedDates[0]));var i=o+n.dateRange;if(n.boundedDates&&i>n.boundedDates[1]&&(i=(o-=i-n.boundedDates[1])+n.dateRange),t.getOptionForAxis("logscale","x")?t.dateWindow_=[Math.pow(r.LOG_SCALE,o),Math.pow(r.LOG_SCALE,i)]:t.dateWindow_=[o,i],n.is2DPan)for(var a=n.dragEndY-n.dragStartY,s=0;s<t.axes_.length;s++){var u=t.axes_[s],l=n.axes[s],c=a*l.unitsPerPixel,f=n.boundedValues?n.boundedValues[s]:null,d=l.initialTopValue+c;f&&(d=Math.min(d,f[1]));var p=d-l.dragValueRange;f&&p<f[0]&&(p=(d-=p-f[0])-l.dragValueRange),t.attributes_.getForAxis("logscale",s)?u.valueRange=[Math.pow(r.LOG_SCALE,p),Math.pow(r.LOG_SCALE,d)]:u.valueRange=[p,d]}t.drawGraph_(!1)}};l.endPan=l.maybeTreatMouseOpAsClick,l.startZoom=function(e,t,n){n.isZooming=!0,n.zoomMoved=!1},l.moveZoom=function(e,t,n){n.zoomMoved=!0,n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=Math.abs(n.dragStartX-n.dragEndX),i=Math.abs(n.dragStartY-n.dragEndY);n.dragDirection=o<i/2?r.VERTICAL:r.HORIZONTAL,t.drawZoomRect_(n.dragDirection,n.dragStartX,n.dragEndX,n.dragStartY,n.dragEndY,n.prevDragDirection,n.prevEndX,n.prevEndY),n.prevEndX=n.dragEndX,n.prevEndY=n.dragEndY,n.prevDragDirection=n.dragDirection},l.treatMouseOpAsClick=function(e,t,n){for(var r=e.getFunctionOption("clickCallback"),o=e.getFunctionOption("pointClickCallback"),i=null,a=-1,s=Number.MAX_VALUE,u=0;u<e.selPoints_.length;u++){var l=e.selPoints_[u],c=Math.pow(l.canvasx-n.dragEndX,2)+Math.pow(l.canvasy-n.dragEndY,2);!isNaN(c)&&(-1==a||c<s)&&(s=c,a=u)}var f=e.getNumericOption("highlightCircleSize")+2;if(s<=f*f&&(i=e.selPoints_[a]),i){var d={cancelable:!0,point:i,canvasx:n.dragEndX,canvasy:n.dragEndY};if(e.cascadeEvents_("pointClick",d))return;o&&o.call(e,t,i)}d={cancelable:!0,xval:e.lastx_,pts:e.selPoints_,canvasx:n.dragEndX,canvasy:n.dragEndY};e.cascadeEvents_("click",d)||r&&r.call(e,t,e.lastx_,e.selPoints_)},l.endZoom=function(e,t,n){t.clearZoomRect_(),n.isZooming=!1,l.maybeTreatMouseOpAsClick(e,t,n);var o=t.getArea();if(n.regionWidth>=10&&n.dragDirection==r.HORIZONTAL){var i=Math.min(n.dragStartX,n.dragEndX),a=Math.max(n.dragStartX,n.dragEndX);(i=Math.max(i,o.x))<(a=Math.min(a,o.x+o.w))&&t.doZoomX_(i,a),n.cancelNextDblclick=!0}else if(n.regionHeight>=10&&n.dragDirection==r.VERTICAL){var s=Math.min(n.dragStartY,n.dragEndY),u=Math.max(n.dragStartY,n.dragEndY);(s=Math.max(s,o.y))<(u=Math.min(u,o.y+o.h))&&t.doZoomY_(s,u),n.cancelNextDblclick=!0}n.dragStartX=null,n.dragStartY=null},l.startTouch=function(e,t,n){e.preventDefault(),e.touches.length>1&&(n.startTimeForDoubleTapMs=null);for(var r=[],o=0;o<e.touches.length;o++){var i=e.touches[o],a=i.target.getBoundingClientRect();r.push({pageX:i.pageX,pageY:i.pageY,dataX:t.toDataXCoord(i.clientX-a.left),dataY:t.toDataYCoord(i.clientY-a.top)})}if(n.initialTouches=r,1==r.length)n.initialPinchCenter=r[0],n.touchDirections={x:!0,y:!0};else if(r.length>=2){n.initialPinchCenter={pageX:.5*(r[0].pageX+r[1].pageX),pageY:.5*(r[0].pageY+r[1].pageY),dataX:.5*(r[0].dataX+r[1].dataX),dataY:.5*(r[0].dataY+r[1].dataY)};var s=180/Math.PI*Math.atan2(n.initialPinchCenter.pageY-r[0].pageY,r[0].pageX-n.initialPinchCenter.pageX);(s=Math.abs(s))>90&&(s=90-s),n.touchDirections={x:s<67.5,y:s>22.5}}n.initialRange={x:t.xAxisRange(),y:t.yAxisRange()}},l.moveTouch=function(e,t,n){n.startTimeForDoubleTapMs=null;var r,o=[];for(r=0;r<e.touches.length;r++){var i=e.touches[r];o.push({pageX:i.pageX,pageY:i.pageY})}var a,s,u,l=n.initialTouches,c=n.initialPinchCenter,f={pageX:(a=1==o.length?o[0]:{pageX:.5*(o[0].pageX+o[1].pageX),pageY:.5*(o[0].pageY+o[1].pageY)}).pageX-c.pageX,pageY:a.pageY-c.pageY},d=n.initialRange.x[1]-n.initialRange.x[0],p=n.initialRange.y[0]-n.initialRange.y[1];if(f.dataX=f.pageX/t.plotter_.area.w*d,f.dataY=f.pageY/t.plotter_.area.h*p,1==o.length)s=1,u=1;else if(o.length>=2){var h=l[1].pageX-c.pageX;s=(o[1].pageX-a.pageX)/h;var g=l[1].pageY-c.pageY;u=(o[1].pageY-a.pageY)/g}s=Math.min(8,Math.max(.125,s)),u=Math.min(8,Math.max(.125,u));var v=!1;if(n.touchDirections.x){var m=c.dataX-f.dataX/s;t.dateWindow_=[m+(n.initialRange.x[0]-c.dataX)/s,m+(n.initialRange.x[1]-c.dataX)/s],v=!0}if(n.touchDirections.y)for(r=0;r<1;r++){var y=t.axes_[r];if(t.attributes_.getForAxis("logscale",r));else{m=c.dataY-f.dataY/u;y.valueRange=[m+(n.initialRange.y[0]-c.dataY)/u,m+(n.initialRange.y[1]-c.dataY)/u],v=!0}}if(t.drawGraph_(!1),v&&o.length>1&&t.getFunctionOption("zoomCallback")){var b=t.xAxisRange();t.getFunctionOption("zoomCallback").call(t,b[0],b[1],t.yAxisRanges())}},l.endTouch=function(e,t,n){if(0!==e.touches.length)l.startTouch(e,t,n);else if(1==e.changedTouches.length){var r=(new Date).getTime(),o=e.changedTouches[0];n.startTimeForDoubleTapMs&&r-n.startTimeForDoubleTapMs<500&&n.doubleTapX&&Math.abs(n.doubleTapX-o.screenX)<50&&n.doubleTapY&&Math.abs(n.doubleTapY-o.screenY)<50?t.resetZoom():(n.startTimeForDoubleTapMs=r,n.doubleTapX=o.screenX,n.doubleTapY=o.screenY)}};var c=function(e,t,n){return e<t?t-e:e>n?e-n:0};l.defaultModel={mousedown:function(e,t,n){if(!e.button||2!=e.button){n.initializeMouseDown(e,t,n),e.altKey||e.shiftKey?l.startPan(e,t,n):l.startZoom(e,t,n);var o=function(e){if(n.isZooming){var o=function(e,t){var n=r.findPos(t.canvas_),o={left:n.x,right:n.x+t.canvas_.offsetWidth,top:n.y,bottom:n.y+t.canvas_.offsetHeight},i={x:r.pageX(e),y:r.pageY(e)},a=c(i.x,o.left,o.right),s=c(i.y,o.top,o.bottom);return Math.max(a,s)}(e,t);o<100?l.moveZoom(e,t,n):null!==n.dragEndX&&(n.dragEndX=null,n.dragEndY=null,t.clearZoomRect_())}else n.isPanning&&l.movePan(e,t,n)},i=function(e){n.isZooming?null!==n.dragEndX?l.endZoom(e,t,n):l.maybeTreatMouseOpAsClick(e,t,n):n.isPanning&&l.endPan(e,t,n),r.removeEvent(document,"mousemove",o),r.removeEvent(document,"mouseup",i),n.destroy()};t.addAndTrackEvent(document,"mousemove",o),t.addAndTrackEvent(document,"mouseup",i)}},willDestroyContextMyself:!0,touchstart:function(e,t,n){l.startTouch(e,t,n)},touchmove:function(e,t,n){l.moveTouch(e,t,n)},touchend:function(e,t,n){l.endTouch(e,t,n)},dblclick:function(e,t,n){if(n.cancelNextDblclick)n.cancelNextDblclick=!1;else{var r={canvasx:n.dragEndX,canvasy:n.dragEndY,cancelable:!0};t.cascadeEvents_("dblclick",r)||e.altKey||e.shiftKey||t.resetZoom()}}},l.nonInteractiveModel_={mousedown:function(e,t,n){n.initializeMouseDown(e,t,n)},mouseup:l.maybeTreatMouseOpAsClick},l.dragIsPanInteractionModel={mousedown:function(e,t,n){n.initializeMouseDown(e,t,n),l.startPan(e,t,n)},mousemove:function(e,t,n){n.isPanning&&l.movePan(e,t,n)},mouseup:function(e,t,n){n.isPanning&&l.endPan(e,t,n)}};var f=l,d={highlightCircleSize:3,highlightSeriesOpts:null,highlightSeriesBackgroundAlpha:.5,highlightSeriesBackgroundColor:"rgb(255, 255, 255)",labelsSeparateLines:!1,labelsShowZeroValues:!0,labelsKMB:!1,labelsKMG2:!1,showLabelsOnHighlight:!0,digitsAfterDecimal:2,maxNumberWidth:6,sigFigs:null,strokeWidth:1,strokeBorderWidth:0,strokeBorderColor:"white",axisTickSize:3,axisLabelFontSize:14,rightGap:5,showRoller:!1,xValueParser:void 0,delimiter:",",sigma:2,errorBars:!1,fractions:!1,wilsonInterval:!0,customBars:!1,fillGraph:!1,fillAlpha:.15,connectSeparatedPoints:!1,stackedGraph:!1,stackedGraphNaNFill:"all",hideOverlayOnMouseOut:!0,resizable:"no",legend:"onmouseover",legendFollowOffsetX:50,legendFollowOffsetY:-50,stepPlot:!1,xRangePad:0,yRangePad:null,drawAxesAtZero:!1,titleHeight:28,xLabelHeight:18,yLabelWidth:18,axisLineColor:"black",axisLineWidth:.3,gridLineWidth:.3,axisLabelWidth:50,gridLineColor:"rgb(128,128,128)",interactionModel:f.defaultModel,animatedZooms:!1,animateBackgroundFade:!0,showRangeSelector:!1,rangeSelectorHeight:40,rangeSelectorPlotStrokeColor:"#808FAB",rangeSelectorPlotFillGradientColor:"white",rangeSelectorPlotFillColor:"#A7B1C4",rangeSelectorBackgroundStrokeColor:"gray",rangeSelectorBackgroundLineWidth:1,rangeSelectorPlotLineWidth:1.5,rangeSelectorForegroundStrokeColor:"black",rangeSelectorForegroundLineWidth:1,rangeSelectorAlpha:.6,showInRangeSelector:null,plotter:[s._fillPlotter,s._errorPlotter,s._linePlotter],plugins:[],axes:{x:{pixelsPerLabel:70,axisLabelWidth:60,axisLabelFormatter:r.dateAxisLabelFormatter,valueFormatter:r.dateValueFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:u.cc},y:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:r.numberValueFormatter,axisLabelFormatter:r.numberAxisLabelFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:u.Dv},y2:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:r.numberValueFormatter,axisLabelFormatter:r.numberAxisLabelFormatter,drawAxis:!0,drawGrid:!1,independentTicks:!1,ticker:u.Dv}}},p=function(e){this.dygraph_=e,this.yAxes_=[],this.xAxis_={},this.series_={},this.global_=this.dygraph_.attrs_,this.user_=this.dygraph_.user_attrs_||{},this.labels_=[],this.highlightSeries_=this.get("highlightSeriesOpts")||{},this.reparseSeries()};p.AXIS_STRING_MAPPINGS_={y:0,Y:0,y1:0,Y1:0,y2:1,Y2:1},p.axisToIndex_=function(e){if("string"==typeof e){if(p.AXIS_STRING_MAPPINGS_.hasOwnProperty(e))return p.AXIS_STRING_MAPPINGS_[e];throw"Unknown axis : "+e}if("number"==typeof e){if(0===e||1===e)return e;throw"Dygraphs only supports two y-axes, indexed from 0-1."}if(e)throw"Unknown axis : "+e;return 0},p.prototype.reparseSeries=function(){var e=this.get("labels");if(e){this.labels_=e.slice(1),this.yAxes_=[{series:[],options:{}}],this.xAxis_={options:{}},this.series_={};for(var t=this.user_.series||{},n=0;n<this.labels_.length;n++){var o=this.labels_[n],i=t[o]||{},a=p.axisToIndex_(i.axis);this.series_[o]={idx:n,yAxis:a,options:i},this.yAxes_[a]?this.yAxes_[a].series.push(o):this.yAxes_[a]={series:[o],options:{}}}var s=this.user_.axes||{};r.update(this.yAxes_[0].options,s.y||{}),this.yAxes_.length>1&&r.update(this.yAxes_[1].options,s.y2||{}),r.update(this.xAxis_.options,s.x||{})}},p.prototype.get=function(e){var t=this.getGlobalUser_(e);return null!==t?t:this.getGlobalDefault_(e)},p.prototype.getGlobalUser_=function(e){return this.user_.hasOwnProperty(e)?this.user_[e]:null},p.prototype.getGlobalDefault_=function(e){return this.global_.hasOwnProperty(e)?this.global_[e]:d.hasOwnProperty(e)?d[e]:null},p.prototype.getForAxis=function(e,t){var n,r;if("number"==typeof t)r=0===(n=t)?"y":"y2";else{if("y1"==t&&(t="y"),"y"==t)n=0;else if("y2"==t)n=1;else{if("x"!=t)throw"Unknown axis "+t;n=-1}r=t}var o=-1==n?this.xAxis_:this.yAxes_[n];if(o){var i=o.options;if(i.hasOwnProperty(e))return i[e]}if("x"!==t||"logscale"!==e){var a=this.getGlobalUser_(e);if(null!==a)return a}var s=d.axes[r];return s.hasOwnProperty(e)?s[e]:this.getGlobalDefault_(e)},p.prototype.getForSeries=function(e,t){if(t===this.dygraph_.getHighlightSeries()&&this.highlightSeries_.hasOwnProperty(e))return this.highlightSeries_[e];if(!this.series_.hasOwnProperty(t))throw"Unknown series: "+t;var n=this.series_[t],r=n.options;return r.hasOwnProperty(e)?r[e]:this.getForAxis(e,n.yAxis)},p.prototype.numAxes=function(){return this.yAxes_.length},p.prototype.axisForSeries=function(e){return this.series_[e].yAxis},p.prototype.axisOptions=function(e){return this.yAxes_[e].options},p.prototype.seriesForAxis=function(e){return this.yAxes_[e].series},p.prototype.seriesNames=function(){return this.labels_};var h=p;function g(){this.tarps=[]}g.prototype.cover=function(){for(var e=document.getElementsByTagName("iframe"),t=0;t<e.length;t++){var n=e[t],o=r.findPos(n),i=o.x,a=o.y,s=n.offsetWidth,u=n.offsetHeight,l=document.createElement("div");l.style.position="absolute",l.style.left=i+"px",l.style.top=a+"px",l.style.width=s+"px",l.style.height=u+"px",l.style.zIndex=999,document.body.appendChild(l),this.tarps.push(l)}},g.prototype.uncover=function(){for(var e=0;e<this.tarps.length;e++)this.tarps[e].parentNode.removeChild(this.tarps[e]);this.tarps=[]};var v=g,m=function(){},y=m;y.X=0,y.Y=1,y.EXTRAS=2,y.prototype.extractSeries=function(e,t,n){},y.prototype.seriesToPoints=function(e,t,n){for(var r=[],o=0;o<e.length;++o){var i=e[o],a=i[1],s=null===a?null:y.parseFloat(a),u={x:NaN,y:NaN,xval:y.parseFloat(i[0]),yval:s,name:t,idx:o+n,canvasx:NaN,canvasy:NaN};r.push(u)}return this.onPointsCreated_(e,r),r},y.prototype.onPointsCreated_=function(e,t){},y.prototype.rollingAverage=function(e,t,n,r){},y.prototype.getExtremeYValues=function(e,t,n){},y.prototype.onLineEvaluated=function(e,t,n){},y.parseFloat=function(e){return null===e?NaN:e};var b=m,w=function(){};(w.prototype=new b).extractSeries=function(e,t,n){var r=[];const o=n.get("labels")[t],i=n.getForSeries("logscale",o);for(var a=0;a<e.length;a++){var s=e[a][0],u=e[a][t];i&&u<=0&&(u=null),r.push([s,u])}return r},w.prototype.rollingAverage=function(e,t,n,r){var o,i,a,s,u=[];if(1==(t=Math.min(t,e.length)))return e;for(r=0;r<e.length;r++){for(a=0,s=0,o=Math.max(0,r-t+1);o<r+1;o++)null===(i=e[o][1])||isNaN(i)||(s++,a+=e[o][1]);u[r]=s?[e[r][0],a/s]:[e[r][0],null]}return u},w.prototype.getExtremeYValues=function(e,t,n){for(var r,o=null,i=null,a=e.length-1,s=0;s<=a;s++)null===(r=e[s][1])||isNaN(r)||((null===i||r>i)&&(i=r),(null===o||r<o)&&(o=r));return[o,i]};var x=w,_=function(){b.call(this)};(_.prototype=new b).extractSeries=function(e,t,n){},_.prototype.rollingAverage=function(e,t,n,r){},_.prototype.onPointsCreated_=function(e,t){for(var n=0;n<e.length;++n){var r=e[n],o=t[n];o.y_top=NaN,o.y_bottom=NaN,o.yval_minus=b.parseFloat(r[2][0]),o.yval_plus=b.parseFloat(r[2][1])}},_.prototype.getExtremeYValues=function(e,t,n){for(var r,o=null,i=null,a=e.length-1,s=0;s<=a;s++)if(null!==(r=e[s][1])&&!isNaN(r)){var u=e[s][2][0],l=e[s][2][1];u>r&&(u=r),l<r&&(l=r),(null===i||l>i)&&(i=l),(null===o||u<o)&&(o=u)}return[o,i]},_.prototype.onLineEvaluated=function(e,t,n){for(var r,o=0;o<e.length;o++)(r=e[o]).y_top=i.calcYNormal_(t,r.yval_minus,n),r.y_bottom=i.calcYNormal_(t,r.yval_plus,n)};var S=_,O=function(){};(O.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a,s=[];const u=n.get("labels")[t],l=n.getForSeries("logscale",u),c=n.getForSeries("sigma",u);for(var f=0;f<e.length;f++)r=e[f][0],a=e[f][t],l&&null!==a&&(a[0]<=0||a[0]-c*a[1]<=0)&&(a=null),null!==a?null===(o=a[0])||isNaN(o)?s.push([r,o,[o,o,o]]):(i=c*a[1],s.push([r,o,[o-i,o+i,a[1]]])):s.push([r,null,[null,null,null]]);return s},O.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[];const i=n.get("labels")[r],a=n.getForSeries("sigma",i);var s,u,l,c,f,d,p,h;for(r=0;r<e.length;r++){for(c=0,p=0,f=0,s=Math.max(0,r-t+1);s<r+1;s++)null===(u=e[s][1])||isNaN(u)||(f++,c+=u,p+=Math.pow(e[s][2][2],2));f?(d=Math.sqrt(p)/f,h=c/f,o[r]=[e[r][0],h,[h-a*d,h+a*d]]):(l=1==t?e[r][1]:null,o[r]=[e[r][0],l,[l,l]])}return o};var C=O,E=function(){};(E.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a=[];const s=n.get("labels")[t],u=n.getForSeries("logscale",s);for(var l=0;l<e.length;l++)r=e[l][0],i=e[l][t],u&&null!==i&&(i[0]<=0||i[1]<=0||i[2]<=0)&&(i=null),null!==i?null===(o=i[1])||isNaN(o)?a.push([r,o,[o,o]]):a.push([r,o,[i[0],i[2]]]):a.push([r,null,[null,null]]);return a},E.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o,i,a,s,u,l,c=[];for(i=0,s=0,a=0,u=0,r=0;r<e.length;r++){if(o=e[r][1],l=e[r][2],c[r]=e[r],null===o||isNaN(o)||(i+=l[0],s+=o,a+=l[1],u+=1),r-t>=0){var f=e[r-t];null===f[1]||isNaN(f[1])||(i-=f[2][0],s-=f[1],a-=f[2][1],u-=1)}c[r]=u?[e[r][0],1*s/u,[1*i/u,1*a/u]]:[e[r][0],null,[null,null]]}return c};var A=E,M=function(){};(M.prototype=new x).extractSeries=function(e,t,n){var r,o,i,a,s,u=[];const l=n.get("labels")[t],c=n.getForSeries("logscale",l);for(var f=0;f<e.length;f++)r=e[f][0],i=e[f][t],c&&null!==i&&(i[0]<=0||i[1]<=0)&&(i=null),null!==i?(a=i[0],s=i[1],null===a||isNaN(a)?u.push([r,a,[a,s]]):(o=100*(s?a/s:0),u.push([r,o,[a,s]]))):u.push([r,null,[null,null]]);return u},M.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[],i=0,a=0;for(r=0;r<e.length;r++){i+=e[r][2][0],a+=e[r][2][1],r-t>=0&&(i-=e[r-t][2][0],a-=e[r-t][2][1]);var s=e[r][0],u=a?i/a:0;o[r]=[s,100*u]}return o};var k=M,P=function(){};(P.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a,s,u,l,c=[];const f=n.get("labels")[t],d=n.getForSeries("logscale",f),p=n.getForSeries("sigma",f);for(var h=0;h<e.length;h++)r=e[h][0],i=e[h][t],d&&null!==i&&(i[0]<=0||i[1]<=0)&&(i=null),null!==i?(a=i[0],s=i[1],null===a||isNaN(a)?c.push([r,a,[a,a,a,s]]):(u=s?a/s:0,l=100*(s?p*Math.sqrt(u*(1-u)/s):1),o=100*u,c.push([r,o,[o-l,o+l,a,s]]))):c.push([r,null,[null,null,null,null]]);return c},P.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[];const i=n.get("labels")[r],a=n.getForSeries("sigma",i),s=n.getForSeries("wilsonInterval",i);var u,l,c,f=0,d=0,p=100;for(r=0;r<e.length;r++){f+=e[r][2][2],d+=e[r][2][3],r-t>=0&&(f-=e[r-t][2][2],d-=e[r-t][2][3]);var h=e[r][0],g=d?f/d:0;if(s)if(d){var v=g<0?0:g,m=d,y=a*Math.sqrt(v*(1-v)/m+a*a/(4*m*m)),b=1+a*a/d;u=(v+a*a/(2*d)-y)/b,l=(v+a*a/(2*d)+y)/b,o[r]=[h,v*p,[u*p,l*p]]}else o[r]=[h,0,[0,0]];else c=d?a*Math.sqrt(g*(1-g)/d):1,o[r]=[h,p*g,[p*(g-c),p*(g+c)]]}return o};var R=P,T=function(){this.annotations_=[]};T.prototype.toString=function(){return"Annotations Plugin"},T.prototype.activate=function(e){return{clearChart:this.clearChart,didDrawChart:this.didDrawChart}},T.prototype.detachLabels=function(){for(var e=0;e<this.annotations_.length;e++){var t=this.annotations_[e];t.parentNode&&t.parentNode.removeChild(t),this.annotations_[e]=null}this.annotations_=[]},T.prototype.clearChart=function(e){this.detachLabels()},T.prototype.didDrawChart=function(e){var t=e.dygraph,n=t.layout_.annotated_points;if(n&&0!==n.length)for(var r=e.canvas.parentNode,o=function(e,n,r){return function(o){var i=r.annotation;i.hasOwnProperty(e)?i[e](i,r,t,o):t.getOption(n)&&t.getOption(n)(i,r,t,o)}},i=e.dygraph.getArea(),a={},s=0;s<n.length;s++){var u=n[s];if(!(u.canvasx<i.x||u.canvasx>i.x+i.w||u.canvasy<i.y||u.canvasy>i.y+i.h)){var l=u.annotation,c=6;l.hasOwnProperty("tickHeight")&&(c=l.tickHeight);var f=document.createElement("div");f.style.fontSize=t.getOption("axisLabelFontSize")+"px";var d="dygraph-annotation";l.hasOwnProperty("icon")||(d+=" dygraphDefaultAnnotation dygraph-default-annotation"),l.hasOwnProperty("cssClass")&&(d+=" "+l.cssClass),f.className=d;var p=l.hasOwnProperty("width")?l.width:16,h=l.hasOwnProperty("height")?l.height:16;if(l.hasOwnProperty("icon")){var g=document.createElement("img");g.src=l.icon,g.width=p,g.height=h,f.appendChild(g)}else u.annotation.hasOwnProperty("shortText")&&f.appendChild(document.createTextNode(u.annotation.shortText));var v=u.canvasx-p/2;f.style.left=v+"px";var m=0;if(l.attachAtBottom){var y=i.y+i.h-h-c;a[v]?y-=a[v]:a[v]=0,a[v]+=c+h,m=y}else m=u.canvasy-h-c;f.style.top=m+"px",f.style.width=p+"px",f.style.height=h+"px",f.title=u.annotation.text,f.style.color=t.colorsMap_[u.name],f.style.borderColor=t.colorsMap_[u.name],l.div=f,t.addAndTrackEvent(f,"click",o("clickHandler","annotationClickHandler",u)),t.addAndTrackEvent(f,"mouseover",o("mouseOverHandler","annotationMouseOverHandler",u)),t.addAndTrackEvent(f,"mouseout",o("mouseOutHandler","annotationMouseOutHandler",u)),t.addAndTrackEvent(f,"dblclick",o("dblClickHandler","annotationDblClickHandler",u)),r.appendChild(f),this.annotations_.push(f);var b=e.drawingContext;if(b.save(),b.strokeStyle=l.hasOwnProperty("tickColor")?l.tickColor:t.colorsMap_[u.name],b.lineWidth=l.hasOwnProperty("tickWidth")?l.tickWidth:t.getOption("strokeWidth"),b.beginPath(),l.attachAtBottom){y=m+h;b.moveTo(u.canvasx,y),b.lineTo(u.canvasx,y+c)}else b.moveTo(u.canvasx,u.canvasy),b.lineTo(u.canvasx,u.canvasy-2-c);b.closePath(),b.stroke(),b.restore()}}},T.prototype.destroy=function(){this.detachLabels()};var I=T,B=function(){this.xlabels_=[],this.ylabels_=[]};B.prototype.toString=function(){return"Axes Plugin"},B.prototype.activate=function(e){return{layout:this.layout,clearChart:this.clearChart,willDrawChart:this.willDrawChart}},B.prototype.layout=function(e){var t,n=e.dygraph;if(n.getOptionForAxis("drawAxis","y")){var r=n.getOptionForAxis("axisLabelWidth","y")+2*n.getOptionForAxis("axisTickSize","y");e.reserveSpaceLeft(r)}n.getOptionForAxis("drawAxis","x")&&(t=n.getOption("xAxisHeight")?n.getOption("xAxisHeight"):n.getOptionForAxis("axisLabelFontSize","x")+2*n.getOptionForAxis("axisTickSize","x"),e.reserveSpaceBottom(t));if(2==n.numAxes()){if(n.getOptionForAxis("drawAxis","y2")){r=n.getOptionForAxis("axisLabelWidth","y2")+2*n.getOptionForAxis("axisTickSize","y2");e.reserveSpaceRight(r)}}else n.numAxes()>2&&n.error("Only two y-axes are supported at this time. (Trying to use "+n.numAxes()+")")},B.prototype.detachLabels=function(){function e(e){for(var t=0;t<e.length;t++){var n=e[t];n.parentNode&&n.parentNode.removeChild(n)}}e(this.xlabels_),e(this.ylabels_),this.xlabels_=[],this.ylabels_=[]},B.prototype.clearChart=function(e){this.detachLabels()},B.prototype.willDrawChart=function(e){var t=e.dygraph;if(!t.getOptionForAxis("drawAxis","x")&&!t.getOptionForAxis("drawAxis","y")&&!t.getOptionForAxis("drawAxis","y2"))return;function n(e){return Math.round(e)+.5}function o(e){return Math.round(e)-.5}var i,a,s,u=e.drawingContext,l=e.canvas.parentNode,c=t.width_,f=t.height_,d=function(e){return{position:"absolute",fontSize:t.getOptionForAxis("axisLabelFontSize",e)+"px",width:t.getOptionForAxis("axisLabelWidth",e)+"px"}},p={x:d("x"),y:d("y"),y2:d("y2")},h=function(e,t,n){var o=document.createElement("div"),i=p["y2"==n?"y2":t];r.update(o.style,i);var a=document.createElement("div");return a.className="dygraph-axis-label dygraph-axis-label-"+t+(n?" dygraph-axis-label-"+n:""),a.innerHTML=e,o.appendChild(a),o};u.save();var g=t.layout_,v=e.dygraph.plotter_.area,m=function(e){return function(n){return t.getOptionForAxis(n,e)}};const y=this;if(t.getOptionForAxis("drawAxis","y")||2==t.numAxes()&&t.getOptionForAxis("drawAxis","y2")){if(g.yticks&&g.yticks.length>0){var b=t.numAxes(),w=[m("y"),m("y2")];g.yticks.forEach((function(e){if(void 0!==e.label){a=v.x;var t="y1",n=w[0];if(1==e.axis&&(a=v.x+v.w,-1,t="y2",n=w[1]),n("drawAxis")){var r=n("axisLabelFontSize");s=v.y+e.pos*v.h,i=h(e.label,"y",2==b?t:null);var o=s-r/2;o<0&&(o=0),o+r+3>f?i.style.bottom="0":i.style.top=Math.min(o,f-2*r)+"px",0===e.axis?(i.style.left=v.x-n("axisLabelWidth")-n("axisTickSize")+"px",i.style.textAlign="right"):1==e.axis&&(i.style.left=v.x+v.w+n("axisTickSize")+"px",i.style.textAlign="left"),i.style.width=n("axisLabelWidth")+"px",l.appendChild(i),y.ylabels_.push(i)}}}))}var x;if(t.getOption("drawAxesAtZero"))((O=t.toPercentXCoord(0))>1||O<0||isNaN(O))&&(O=0),x=n(v.x+O*v.w);else x=n(v.x);u.strokeStyle=t.getOptionForAxis("axisLineColor","y"),u.lineWidth=t.getOptionForAxis("axisLineWidth","y"),u.beginPath(),u.moveTo(x,o(v.y)),u.lineTo(x,o(v.y+v.h)),u.closePath(),u.stroke(),2==t.numAxes()&&t.getOptionForAxis("drawAxis","y2")&&(u.strokeStyle=t.getOptionForAxis("axisLineColor","y2"),u.lineWidth=t.getOptionForAxis("axisLineWidth","y2"),u.beginPath(),u.moveTo(o(v.x+v.w),o(v.y)),u.lineTo(o(v.x+v.w),o(v.y+v.h)),u.closePath(),u.stroke())}if(t.getOptionForAxis("drawAxis","x")){if(g.xticks){var _=m("x");g.xticks.forEach((function(e){if(void 0!==e.label){a=v.x+e.pos*v.w,s=v.y+v.h,(i=h(e.label,"x")).style.textAlign="center",i.style.top=s+_("axisTickSize")+"px";var t=a-_("axisLabelWidth")/2;t+_("axisLabelWidth")>c&&(t=c-_("axisLabelWidth"),i.style.textAlign="right"),t<0&&(t=0,i.style.textAlign="left"),i.style.left=t+"px",i.style.width=_("axisLabelWidth")+"px",l.appendChild(i),y.xlabels_.push(i)}}))}var S,O;if(u.strokeStyle=t.getOptionForAxis("axisLineColor","x"),u.lineWidth=t.getOptionForAxis("axisLineWidth","x"),u.beginPath(),t.getOption("drawAxesAtZero"))((O=t.toPercentYCoord(0,0))>1||O<0)&&(O=1),S=o(v.y+O*v.h);else S=o(v.y+v.h);u.moveTo(n(v.x),S),u.lineTo(n(v.x+v.w),S),u.closePath(),u.stroke()}u.restore()};var D=B,j=function(){this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};j.prototype.toString=function(){return"ChartLabels Plugin"},j.prototype.activate=function(e){return{layout:this.layout,didDrawChart:this.didDrawChart}};var L=function(e){var t=document.createElement("div");return t.style.position="absolute",t.style.left=e.x+"px",t.style.top=e.y+"px",t.style.width=e.w+"px",t.style.height=e.h+"px",t};j.prototype.detachLabels_=function(){for(var e=[this.title_div_,this.xlabel_div_,this.ylabel_div_,this.y2label_div_],t=0;t<e.length;t++){var n=e[t];n&&(n.parentNode&&n.parentNode.removeChild(n))}this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};var Z=function(e,t,n,r,o){var i=document.createElement("div");i.style.position="absolute",i.style.left=1==n?"0px":t.x+"px",i.style.top=t.y+"px",i.style.width=t.w+"px",i.style.height=t.h+"px",i.style.fontSize=e.getOption("yLabelWidth")-2+"px";var a=document.createElement("div");a.style.position="absolute",a.style.width=t.h+"px",a.style.height=t.w+"px",a.style.top=t.h/2-t.w/2+"px",a.style.left=t.w/2-t.h/2+"px",a.className="dygraph-label-rotate-"+(1==n?"right":"left");var s=document.createElement("div");return s.className=r,s.innerHTML=o,a.appendChild(s),i.appendChild(a),i};j.prototype.layout=function(e){this.detachLabels_();var t=e.dygraph,n=e.chart_div;if(t.getOption("title")){var r=e.reserveSpaceTop(t.getOption("titleHeight"));this.title_div_=L(r),this.title_div_.style.fontSize=t.getOption("titleHeight")-8+"px",(o=document.createElement("div")).className="dygraph-label dygraph-title",o.innerHTML=t.getOption("title"),this.title_div_.appendChild(o),n.appendChild(this.title_div_)}if(t.getOption("xlabel")){var o,i=e.reserveSpaceBottom(t.getOption("xLabelHeight"));this.xlabel_div_=L(i),this.xlabel_div_.style.fontSize=t.getOption("xLabelHeight")-2+"px",(o=document.createElement("div")).className="dygraph-label dygraph-xlabel",o.innerHTML=t.getOption("xlabel"),this.xlabel_div_.appendChild(o),n.appendChild(this.xlabel_div_)}if(t.getOption("ylabel")){var a=e.reserveSpaceLeft(0);this.ylabel_div_=Z(t,a,1,"dygraph-label dygraph-ylabel",t.getOption("ylabel")),n.appendChild(this.ylabel_div_)}if(t.getOption("y2label")&&2==t.numAxes()){var s=e.reserveSpaceRight(0);this.y2label_div_=Z(t,s,2,"dygraph-label dygraph-y2label",t.getOption("y2label")),n.appendChild(this.y2label_div_)}},j.prototype.didDrawChart=function(e){var t=e.dygraph;this.title_div_&&(this.title_div_.children[0].innerHTML=t.getOption("title")),this.xlabel_div_&&(this.xlabel_div_.children[0].innerHTML=t.getOption("xlabel")),this.ylabel_div_&&(this.ylabel_div_.children[0].children[0].innerHTML=t.getOption("ylabel")),this.y2label_div_&&(this.y2label_div_.children[0].children[0].innerHTML=t.getOption("y2label"))},j.prototype.clearChart=function(){},j.prototype.destroy=function(){this.detachLabels_()};var N=j,F=function(){};F.prototype.toString=function(){return"Gridline Plugin"},F.prototype.activate=function(e){return{willDrawChart:this.willDrawChart}},F.prototype.willDrawChart=function(e){var t,n,r,o=e.dygraph,i=e.drawingContext,a=o.layout_,s=e.dygraph.plotter_.area;function u(e){return Math.round(e)+.5}function l(e){return Math.round(e)-.5}if(o.getOptionForAxis("drawGrid","y")){for(var c=["y","y2"],f=[],d=[],p=[],h=[],g=[],v=0;v<c.length;v++)p[v]=o.getOptionForAxis("drawGrid",c[v]),p[v]&&(f[v]=o.getOptionForAxis("gridLineColor",c[v]),d[v]=o.getOptionForAxis("gridLineWidth",c[v]),g[v]=o.getOptionForAxis("gridLinePattern",c[v]),h[v]=g[v]&&g[v].length>=2);r=a.yticks,i.save(),r.forEach((e=>{if(e.has_tick){var r=e.axis;p[r]&&(i.save(),h[r]&&i.setLineDash&&i.setLineDash(g[r]),i.strokeStyle=f[r],i.lineWidth=d[r],t=u(s.x),n=l(s.y+e.pos*s.h),i.beginPath(),i.moveTo(t,n),i.lineTo(t+s.w,n),i.stroke(),i.restore())}})),i.restore()}if(o.getOptionForAxis("drawGrid","x")){r=a.xticks,i.save();g=o.getOptionForAxis("gridLinePattern","x");(h=g&&g.length>=2)&&i.setLineDash&&i.setLineDash(g),i.strokeStyle=o.getOptionForAxis("gridLineColor","x"),i.lineWidth=o.getOptionForAxis("gridLineWidth","x"),r.forEach((e=>{e.has_tick&&(t=u(s.x+e.pos*s.w),n=l(s.y+s.h),i.beginPath(),i.moveTo(t,n),i.lineTo(t,s.y),i.stroke())})),h&&i.setLineDash&&i.setLineDash([]),i.restore()}},F.prototype.destroy=function(){};var H=F,V=function(){this.legend_div_=null,this.is_generated_div_=!1};V.prototype.toString=function(){return"Legend Plugin"},V.prototype.activate=function(e){var t,n=e.getOption("labelsDiv");return n&&null!==n?t="string"==typeof n||n instanceof String?document.getElementById(n):n:((t=document.createElement("div")).className="dygraph-legend",e.graphDiv.appendChild(t),this.is_generated_div_=!0),this.legend_div_=t,this.one_em_width_=10,{select:this.select,deselect:this.deselect,predraw:this.predraw,didDrawChart:this.didDrawChart}};function z(e,t,n){if(!e||e.length<=1)return`<div class="dygraph-legend-line" style="border-bottom-color: ${t};"></div>`;var r,o,i,a,s=0,u=0,l=[];for(r=0;r<=e.length;r++)s+=e[r%e.length];if((a=Math.floor(n/(s-e[0])))>1){for(r=0;r<e.length;r++)l[r]=e[r]/n;u=l.length}else{for(a=1,r=0;r<e.length;r++)l[r]=e[r]/s;u=l.length+1}var c="";for(o=0;o<a;o++)for(r=0;r<u;r+=2)i=l[r%l.length],c+=`<div class="dygraph-legend-dash" style="margin-right: ${r<e.length?l[(r+1)%l.length]:0}em; padding-left: ${i}em;"></div>`;return c}V.prototype.select=function(e){var t=e.selectedX,n=e.selectedPoints,r=e.selectedRow,o=e.dygraph.getOption("legend");if("never"!==o){var i=V.generateLegendHTML(e.dygraph,t,n,this.one_em_width_,r);if(i instanceof Node&&i.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(this.legend_div_.innerHTML="",this.legend_div_.appendChild(i)):this.legend_div_.innerHTML=i,this.legend_div_.style.display="","follow"===o){var a,s=e.dygraph.plotter_.area,u=this.legend_div_.offsetWidth,l=e.dygraph.getOptionForAxis("axisLabelWidth","y"),c=e.dygraph.getHighlightSeries();c&&(a=n.find((e=>e.name===c)))||(a=n[0]);const t=e.dygraph.getNumericOption("legendFollowOffsetX"),r=e.dygraph.getNumericOption("legendFollowOffsetY");var f=a.x*s.w+t,d=a.y*s.h+r;f+u+1>s.w&&(f=f-2*t-u-(l-s.x)),this.legend_div_.style.left=l+f+"px",this.legend_div_.style.top=d+"px"}else if("onmouseover"===o&&this.is_generated_div_){s=e.dygraph.plotter_.area,u=this.legend_div_.offsetWidth;this.legend_div_.style.left=s.x+s.w-u-1+"px",this.legend_div_.style.top=s.y+"px"}}else this.legend_div_.style.display="none"},V.prototype.deselect=function(e){"always"!==e.dygraph.getOption("legend")&&(this.legend_div_.style.display="none");var t=function(e){var t=document.createElement("span");t.setAttribute("style","margin: 0; padding: 0 0 0 1em; border: 0;"),e.appendChild(t);var n=t.offsetWidth;return e.removeChild(t),n}(this.legend_div_);this.one_em_width_=t;var n=V.generateLegendHTML(e.dygraph,void 0,void 0,t,null);n instanceof Node&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(this.legend_div_.innerHTML="",this.legend_div_.appendChild(n)):this.legend_div_.innerHTML=n},V.prototype.didDrawChart=function(e){this.deselect(e)},V.prototype.predraw=function(e){if(this.is_generated_div_){e.dygraph.graphDiv.appendChild(this.legend_div_);var t=e.dygraph.plotter_.area,n=this.legend_div_.offsetWidth;this.legend_div_.style.left=t.x+t.w-n-1+"px",this.legend_div_.style.top=t.y+"px"}},V.prototype.destroy=function(){this.legend_div_=null},V.generateLegendHTML=function(e,t,n,o,i){var a,s={dygraph:e,x:t,i:i,series:[]},u={},l=e.getLabels();if(l)for(var c=1;c<l.length;c++){var f=e.getPropertiesForSeries(l[c]),d={dashHTML:z(e.getOption("strokePattern",l[c]),f.color,o),label:l[c],labelHTML:(a=l[c],a.replace(/&/g,"&amp;").replace(/"/g,"&#34;").replace(/</g,"&lt;").replace(/>/g,"&gt;")),isVisible:f.visible,color:f.color};s.series.push(d),u[l[c]]=d}if("undefined"!==typeof t){var p=e.optionsViewForAxis_("x"),h=p("valueFormatter");s.xHTML=h.call(e,t,p,l[0],e,i,0);var g=[],v=e.numAxes();for(c=0;c<v;c++)g[c]=e.optionsViewForAxis_("y"+(c?1+c:""));var m=e.getOption("labelsShowZeroValues"),y=e.getHighlightSeries();for(c=0;c<n.length;c++){var b=n[c];if((d=u[b.name]).y=b.yval,0===b.yval&&!m||isNaN(b.canvasy))d.isVisible=!1;else{var w=g[(f=e.getPropertiesForSeries(b.name)).axis-1],x=w("valueFormatter").call(e,b.yval,w,b.name,e,i,l.indexOf(b.name));r.update(d,{yHTML:x}),b.name==y&&(d.isHighlighted=!0)}}}return(e.getOption("legendFormatter")||V.defaultFormatter).call(e,s)},V.defaultFormatter=function(e){var t=e.dygraph;if(!0!==t.getOption("showLabelsOnHighlight"))return"";var n,r=t.getOption("labelsSeparateLines");if("undefined"===typeof e.x){if("always"!=t.getOption("legend"))return"";n="";for(var o=0;o<e.series.length;o++){(i=e.series[o]).isVisible&&(""!==n&&(n+=r?"<br />":" "),n+=`<span style='font-weight: bold; color: ${i.color};'>${i.dashHTML} ${i.labelHTML}</span>`)}return n}n=e.xHTML+":";for(o=0;o<e.series.length;o++){var i;if((i=e.series[o]).y||i.yHTML)if(i.isVisible)r&&(n+="<br>"),n+=`<span${i.isHighlighted?' class="highlight"':""}> <b><span style='color: ${i.color};'>${i.labelHTML}</span></b>:&#160;${i.yHTML}</span>`}return n};var U=V,G=function(){this.hasTouchInterface_="undefined"!=typeof TouchEvent,this.isMobileDevice_=/mobile|android/gi.test(navigator.appVersion),this.interfaceCreated_=!1};G.prototype.toString=function(){return"RangeSelector Plugin"},G.prototype.activate=function(e){return this.dygraph_=e,this.getOption_("showRangeSelector")&&this.createInterface_(),{layout:this.reserveSpace_,predraw:this.renderStaticLayer_,didDrawChart:this.renderInteractiveLayer_}},G.prototype.destroy=function(){this.bgcanvas_=null,this.fgcanvas_=null,this.leftZoomHandle_=null,this.rightZoomHandle_=null},G.prototype.getOption_=function(e,t){return this.dygraph_.getOption(e,t)},G.prototype.setDefaultOption_=function(e,t){this.dygraph_.attrs_[e]=t},G.prototype.createInterface_=function(){this.createCanvases_(),this.createZoomHandles_(),this.initInteraction_(),this.getOption_("animatedZooms")&&(console.warn("Animated zooms and range selector are not compatible; disabling animatedZooms."),this.dygraph_.updateOptions({animatedZooms:!1},!0)),this.interfaceCreated_=!0,this.addToGraph_()},G.prototype.addToGraph_=function(){var e=this.graphDiv_=this.dygraph_.graphDiv;e.appendChild(this.bgcanvas_),e.appendChild(this.fgcanvas_),e.appendChild(this.leftZoomHandle_),e.appendChild(this.rightZoomHandle_)},G.prototype.removeFromGraph_=function(){var e=this.graphDiv_;e.removeChild(this.bgcanvas_),e.removeChild(this.fgcanvas_),e.removeChild(this.leftZoomHandle_),e.removeChild(this.rightZoomHandle_),this.graphDiv_=null},G.prototype.reserveSpace_=function(e){this.getOption_("showRangeSelector")&&e.reserveSpaceBottom(this.getOption_("rangeSelectorHeight")+4)},G.prototype.renderStaticLayer_=function(){this.updateVisibility_()&&(this.resize_(),this.drawStaticLayer_())},G.prototype.renderInteractiveLayer_=function(){this.updateVisibility_()&&!this.isChangingRange_&&(this.placeZoomHandles_(),this.drawInteractiveLayer_())},G.prototype.updateVisibility_=function(){var e=this.getOption_("showRangeSelector");if(e)this.interfaceCreated_?this.graphDiv_&&this.graphDiv_.parentNode||this.addToGraph_():this.createInterface_();else if(this.graphDiv_){this.removeFromGraph_();var t=this.dygraph_;setTimeout((function(){t.width_=0,t.resize()}),1)}return e},G.prototype.resize_=function(){function e(e,t,n,o){var i=o||r.getContextPixelRatio(t);e.style.top=n.y+"px",e.style.left=n.x+"px",e.width=n.w*i,e.height=n.h*i,e.style.width=n.w+"px",e.style.height=n.h+"px",1!=i&&t.scale(i,i)}var t=this.dygraph_.layout_.getPlotArea(),n=0;this.dygraph_.getOptionForAxis("drawAxis","x")&&(n=this.getOption_("xAxisHeight")||this.getOption_("axisLabelFontSize")+2*this.getOption_("axisTickSize")),this.canvasRect_={x:t.x,y:t.y+t.h+n+4,w:t.w,h:this.getOption_("rangeSelectorHeight")};var o=this.dygraph_.getNumericOption("pixelRatio");e(this.bgcanvas_,this.bgcanvas_ctx_,this.canvasRect_,o),e(this.fgcanvas_,this.fgcanvas_ctx_,this.canvasRect_,o)},G.prototype.createCanvases_=function(){this.bgcanvas_=r.createCanvas(),this.bgcanvas_.className="dygraph-rangesel-bgcanvas",this.bgcanvas_.style.position="absolute",this.bgcanvas_.style.zIndex=9,this.bgcanvas_ctx_=r.getContext(this.bgcanvas_),this.fgcanvas_=r.createCanvas(),this.fgcanvas_.className="dygraph-rangesel-fgcanvas",this.fgcanvas_.style.position="absolute",this.fgcanvas_.style.zIndex=9,this.fgcanvas_.style.cursor="default",this.fgcanvas_ctx_=r.getContext(this.fgcanvas_)},G.prototype.createZoomHandles_=function(){var e=new Image;e.className="dygraph-rangesel-zoomhandle",e.style.position="absolute",e.style.zIndex=10,e.style.visibility="hidden",e.style.cursor="col-resize",e.width=9,e.height=16,e.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQCAYAAADESFVDAAAAAXNSR0IArs4c6QAAAAZiS0dEANAAzwDP4Z7KegAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sHGw0cMqdt1UwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAaElEQVQoz+3SsRFAQBCF4Z9WJM8KCDVwownl6YXsTmCUsyKGkZzcl7zkz3YLkypgAnreFmDEpHkIwVOMfpdi9CEEN2nGpFdwD03yEqDtOgCaun7sqSTDH32I1pQA2Pb9sZecAxc5r3IAb21d6878xsAAAAAASUVORK5CYII=",this.isMobileDevice_&&(e.width*=2,e.height*=2),this.leftZoomHandle_=e,this.rightZoomHandle_=e.cloneNode(!1)},G.prototype.initInteraction_=function(){var e,t,n,o,i,a,s,u,l,c,d,p,h,g,m=this,y=document,b=0,w=null,x=!1,_=!1,S=!this.isMobileDevice_,O=new v;e=function(e){var t=m.dygraph_.xAxisExtremes(),n=(t[1]-t[0])/m.canvasRect_.w;return[t[0]+(e.leftHandlePos-m.canvasRect_.x)*n,t[0]+(e.rightHandlePos-m.canvasRect_.x)*n]},t=function(e){return r.cancelEvent(e),x=!0,b=e.clientX,w=e.target?e.target:e.srcElement,"mousedown"!==e.type&&"dragstart"!==e.type||(r.addEvent(y,"mousemove",n),r.addEvent(y,"mouseup",o)),m.fgcanvas_.style.cursor="col-resize",O.cover(),!0},n=function(e){if(!x)return!1;r.cancelEvent(e);var t=e.clientX-b;if(Math.abs(t)<4)return!0;b=e.clientX;var n,o=m.getZoomHandleStatus_();w==m.leftZoomHandle_?(n=o.leftHandlePos+t,n=Math.min(n,o.rightHandlePos-w.width-3),n=Math.max(n,m.canvasRect_.x)):(n=o.rightHandlePos+t,n=Math.min(n,m.canvasRect_.x+m.canvasRect_.w),n=Math.max(n,o.leftHandlePos+w.width+3));var a=w.width/2;return w.style.left=n-a+"px",m.drawInteractiveLayer_(),S&&i(),!0},o=function(e){return!!x&&(x=!1,O.uncover(),r.removeEvent(y,"mousemove",n),r.removeEvent(y,"mouseup",o),m.fgcanvas_.style.cursor="default",S||i(),!0)},i=function(){try{var t=m.getZoomHandleStatus_();if(m.isChangingRange_=!0,t.isZoomed){var n=e(t);m.dygraph_.doZoomXDates_(n[0],n[1])}else m.dygraph_.resetZoom()}finally{m.isChangingRange_=!1}},a=function(e){var t=m.leftZoomHandle_.getBoundingClientRect(),n=t.left+t.width/2,r=(t=m.rightZoomHandle_.getBoundingClientRect()).left+t.width/2;return e.clientX>n&&e.clientX<r},s=function(e){return!(_||!a(e)||!m.getZoomHandleStatus_().isZoomed)&&(r.cancelEvent(e),_=!0,b=e.clientX,"mousedown"===e.type&&(r.addEvent(y,"mousemove",u),r.addEvent(y,"mouseup",l)),!0)},u=function(e){if(!_)return!1;r.cancelEvent(e);var t=e.clientX-b;if(Math.abs(t)<4)return!0;b=e.clientX;var n=m.getZoomHandleStatus_(),o=n.leftHandlePos,i=n.rightHandlePos,a=i-o;o+t<=m.canvasRect_.x?i=(o=m.canvasRect_.x)+a:i+t>=m.canvasRect_.x+m.canvasRect_.w?o=(i=m.canvasRect_.x+m.canvasRect_.w)-a:(o+=t,i+=t);var s=m.leftZoomHandle_.width/2;return m.leftZoomHandle_.style.left=o-s+"px",m.rightZoomHandle_.style.left=i-s+"px",m.drawInteractiveLayer_(),S&&c(),!0},l=function(e){return!!_&&(_=!1,r.removeEvent(y,"mousemove",u),r.removeEvent(y,"mouseup",l),S||c(),!0)},c=function(){try{m.isChangingRange_=!0,m.dygraph_.dateWindow_=e(m.getZoomHandleStatus_()),m.dygraph_.drawGraph_(!1)}finally{m.isChangingRange_=!1}},d=function(e){if(!x&&!_){var t=a(e)?"move":"default";t!=m.fgcanvas_.style.cursor&&(m.fgcanvas_.style.cursor=t)}},p=function(e){"touchstart"==e.type&&1==e.targetTouches.length?t(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?n(e.targetTouches[0])&&r.cancelEvent(e):o(e)},h=function(e){"touchstart"==e.type&&1==e.targetTouches.length?s(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?u(e.targetTouches[0])&&r.cancelEvent(e):l(e)},g=function(e,t){for(var n=["touchstart","touchend","touchmove","touchcancel"],r=0;r<n.length;r++)m.dygraph_.addAndTrackEvent(e,n[r],t)},this.setDefaultOption_("interactionModel",f.dragIsPanInteractionModel),this.setDefaultOption_("panEdgeFraction",1e-4);var C=window.opera?"mousedown":"dragstart";this.dygraph_.addAndTrackEvent(this.leftZoomHandle_,C,t),this.dygraph_.addAndTrackEvent(this.rightZoomHandle_,C,t),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousedown",s),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousemove",d),this.hasTouchInterface_&&(g(this.leftZoomHandle_,p),g(this.rightZoomHandle_,p),g(this.fgcanvas_,h))},G.prototype.drawStaticLayer_=function(){var e=this.bgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);try{this.drawMiniPlot_()}catch(n){console.warn(n)}var t=.5;this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorBackgroundLineWidth"),e.strokeStyle=this.getOption_("rangeSelectorBackgroundStrokeColor"),e.beginPath(),e.moveTo(t,t),e.lineTo(t,this.canvasRect_.h-t),e.lineTo(this.canvasRect_.w-t,this.canvasRect_.h-t),e.lineTo(this.canvasRect_.w-t,t),e.stroke()},G.prototype.drawMiniPlot_=function(){var e=this.getOption_("rangeSelectorPlotFillColor"),t=this.getOption_("rangeSelectorPlotFillGradientColor"),n=this.getOption_("rangeSelectorPlotStrokeColor");if(e||n){var r=this.getOption_("stepPlot"),o=this.computeCombinedSeriesAndLimits_(),i=o.yMax-o.yMin,a=this.bgcanvas_ctx_,s=.5,u=this.dygraph_.xAxisExtremes(),l=Math.max(u[1]-u[0],1e-30),c=(this.canvasRect_.w-s)/l,f=(this.canvasRect_.h-s)/i,d=this.canvasRect_.w-s,p=this.canvasRect_.h-s,h=null,g=null;a.beginPath(),a.moveTo(s,p);for(var v=0;v<o.data.length;v++){var m=o.data[v],y=null!==m[0]?(m[0]-u[0])*c:NaN,b=null!==m[1]?p-(m[1]-o.yMin)*f:NaN;(r||null===h||Math.round(y)!=Math.round(h))&&(isFinite(y)&&isFinite(b)?(null===h?a.lineTo(y,p):r&&a.lineTo(y,g),a.lineTo(y,b),h=y,g=b):(null!==h&&(r?(a.lineTo(y,g),a.lineTo(y,p)):a.lineTo(h,p)),h=g=null))}if(a.lineTo(d,p),a.closePath(),e){var w=this.bgcanvas_ctx_.createLinearGradient(0,0,0,p);t&&w.addColorStop(0,t),w.addColorStop(1,e),this.bgcanvas_ctx_.fillStyle=w,a.fill()}n&&(this.bgcanvas_ctx_.strokeStyle=n,this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorPlotLineWidth"),a.stroke())}},G.prototype.computeCombinedSeriesAndLimits_=function(){var e,t=this.dygraph_,n=this.getOption_("logscale"),o=t.numColumns(),i=t.getLabels(),a=new Array(o),s=!1,u=t.visibility(),l=[];for(e=1;e<o;e++){var c=this.getOption_("showInRangeSelector",i[e]);l.push(c),null!==c&&(s=!0)}if(s)for(e=1;e<o;e++)a[e]=l[e-1];else for(e=1;e<o;e++)a[e]=u[e-1];var f=[],d=t.dataHandler_,p=t.attributes_;for(e=1;e<t.numColumns();e++)if(a[e]){var h=d.extractSeries(t.rawData_,e,p);t.rollPeriod()>1&&(h=d.rollingAverage(h,t.rollPeriod(),p,e)),f.push(h)}var g=[];for(e=0;e<f[0].length;e++){for(var v=0,m=0,y=0;y<f.length;y++){var b=f[y][e][1];null===b||isNaN(b)||(m++,v+=b)}g.push([f[0][e][0],v/m])}var w=Number.MAX_VALUE,x=-Number.MAX_VALUE;for(e=0;e<g.length;e++){var _=g[e][1];null!==_&&isFinite(_)&&(!n||_>0)&&(w=Math.min(w,_),x=Math.max(x,_))}var S=.25;if(n)for(x=r.log10(x),x+=x*S,w=r.log10(w),e=0;e<g.length;e++)g[e][1]=r.log10(g[e][1]);else{var O,C=x-w;x+=O=C<=Number.MIN_VALUE?x*S:C*S,w-=O}return{data:g,yMin:w,yMax:x}},G.prototype.placeZoomHandles_=function(){var e=this.dygraph_.xAxisExtremes(),t=this.dygraph_.xAxisRange(),n=e[1]-e[0],r=Math.max(0,(t[0]-e[0])/n),o=Math.max(0,(e[1]-t[1])/n),i=this.canvasRect_.x+this.canvasRect_.w*r,a=this.canvasRect_.x+this.canvasRect_.w*(1-o),s=Math.max(this.canvasRect_.y,this.canvasRect_.y+(this.canvasRect_.h-this.leftZoomHandle_.height)/2),u=this.leftZoomHandle_.width/2;this.leftZoomHandle_.style.left=i-u+"px",this.leftZoomHandle_.style.top=s+"px",this.rightZoomHandle_.style.left=a-u+"px",this.rightZoomHandle_.style.top=this.leftZoomHandle_.style.top,this.leftZoomHandle_.style.visibility="visible",this.rightZoomHandle_.style.visibility="visible"},G.prototype.drawInteractiveLayer_=function(){var e=this.fgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);var t=this.canvasRect_.w-1,n=this.canvasRect_.h-1,r=this.getZoomHandleStatus_();if(e.strokeStyle=this.getOption_("rangeSelectorForegroundStrokeColor"),e.lineWidth=this.getOption_("rangeSelectorForegroundLineWidth"),r.isZoomed){var o=Math.max(1,r.leftHandlePos-this.canvasRect_.x),i=Math.min(t,r.rightHandlePos-this.canvasRect_.x);const a=this.getOption_("rangeSelectorVeilColour");e.fillStyle=a||"rgba(240, 240, 240, "+this.getOption_("rangeSelectorAlpha").toString()+")",e.fillRect(0,0,o,this.canvasRect_.h),e.fillRect(i,0,this.canvasRect_.w-i,this.canvasRect_.h),e.beginPath(),e.moveTo(1,1),e.lineTo(o,1),e.lineTo(o,n),e.lineTo(i,n),e.lineTo(i,1),e.lineTo(t,1),e.stroke()}else e.beginPath(),e.moveTo(1,1),e.lineTo(1,n),e.lineTo(t,n),e.lineTo(t,1),e.stroke()},G.prototype.getZoomHandleStatus_=function(){var e=this.leftZoomHandle_.width/2,t=parseFloat(this.leftZoomHandle_.style.left)+e,n=parseFloat(this.rightZoomHandle_.style.left)+e;return{leftHandlePos:t,rightHandlePos:n,isZoomed:t-1>this.canvasRect_.x||n+1<this.canvasRect_.x+this.canvasRect_.w}};var W=G,$=function(e){this.container=e};$.prototype.draw=function(e,t){this.container.innerHTML="","undefined"!=typeof this.date_graph&&this.date_graph.destroy(),this.date_graph=new K(this.container,e,t)},$.prototype.setSelection=function(e){var t=!1;e.length&&(t=e[0].row),this.date_graph.setSelection(t)},$.prototype.getSelection=function(){var e=[],t=this.date_graph.getSelection();if(t<0)return e;for(var n=this.date_graph.layout_.points,r=0;r<n.length;++r)e.push({row:t,column:r+1});return e};var q=$,Y=function(e,t,n){this.__init__(e,t,n)};Y.NAME="Dygraph",Y.VERSION="2.2.1";var X={};(Y._require=function(e){return e in X?X[e]:Y._require._b(e)})._b=null,Y._require.add=function(e,t){X[e]=t},Y.DEFAULT_ROLL_PERIOD=1,Y.DEFAULT_WIDTH=480,Y.DEFAULT_HEIGHT=320,Y.ANIMATION_STEPS=12,Y.ANIMATION_DURATION=200,Y.Plotters=s._Plotters,Y.addedAnnotationCSS=!1,Y.prototype.__init__=function(e,t,n){if(this.is_initial_draw_=!0,this.readyFns_=[],null!==n&&void 0!==n||(n={}),n=Y.copyUserAttrs_(n),"string"==typeof e&&(e=document.getElementById(e)),!e)throw new Error("Constructing dygraph with a non-existent div!");this.maindiv_=e,this.file_=t,this.rollPeriod_=n.rollPeriod||Y.DEFAULT_ROLL_PERIOD,this.previousVerticalX_=-1,this.fractions_=n.fractions||!1,this.dateWindow_=n.dateWindow||null,this.annotations_=[],e.innerHTML="";const o=window.getComputedStyle(e,null);"0px"===o.paddingLeft&&"0px"===o.paddingRight&&"0px"===o.paddingTop&&"0px"===o.paddingBottom||console.error("Main div contains padding; graph will misbehave"),""===e.style.width&&n.width&&(e.style.width=n.width+"px"),""===e.style.height&&n.height&&(e.style.height=n.height+"px"),""===e.style.height&&0===e.clientHeight&&(e.style.height=Y.DEFAULT_HEIGHT+"px",""===e.style.width&&(e.style.width=Y.DEFAULT_WIDTH+"px")),this.width_=e.clientWidth||n.width||0,this.height_=e.clientHeight||n.height||0,n.stackedGraph&&(n.fillGraph=!0),this.user_attrs_={},r.update(this.user_attrs_,n),this.attrs_={},r.updateDeep(this.attrs_,d),this.boundaryIds_=[],this.setIndexByName_={},this.datasetIndex_=[],this.registeredEvents_=[],this.eventListeners_={},this.attributes_=new h(this),this.createInterface_(),this.plugins_=[];for(var i=Y.PLUGINS.concat(this.getOption("plugins")),a=0;a<i.length;a++){var s,u=i[a],l={plugin:s="undefined"!==typeof u.activate?u:new u,events:{},options:{},pluginOptions:{}},c=s.activate(this);for(var f in c)c.hasOwnProperty(f)&&(l.events[f]=c[f]);this.plugins_.push(l)}for(a=0;a<this.plugins_.length;a++){var p=this.plugins_[a];for(var f in p.events)if(p.events.hasOwnProperty(f)){var g=p.events[f],v=[p.plugin,g];f in this.eventListeners_?this.eventListeners_[f].push(v):this.eventListeners_[f]=[v]}}this.createDragInterface_(),this.start_()},Y.prototype.cascadeEvents_=function(e,t){if(!(e in this.eventListeners_))return!1;var n={dygraph:this,cancelable:!1,defaultPrevented:!1,preventDefault:function(){if(!n.cancelable)throw"Cannot call preventDefault on non-cancelable event.";n.defaultPrevented=!0},propagationStopped:!1,stopPropagation:function(){n.propagationStopped=!0}};r.update(n,t);var o=this.eventListeners_[e];if(o)for(var i=o.length-1;i>=0;i--){var a=o[i][0];if(o[i][1].call(a,n),n.propagationStopped)break}return n.defaultPrevented},Y.prototype.getPluginInstance_=function(e){for(var t=0;t<this.plugins_.length;t++){var n=this.plugins_[t];if(n.plugin instanceof e)return n.plugin}return null},Y.prototype.isZoomed=function(e){const t=!!this.dateWindow_;if("x"===e)return t;const n=this.axes_.map((e=>!!e.valueRange)).indexOf(!0)>=0;if(null===e||void 0===e)return t||n;if("y"===e)return n;throw new Error(`axis parameter is [${e}] must be null, 'x' or 'y'.`)},Y.prototype.toString=function(){var e=this.maindiv_;return"[Dygraph "+(e&&e.id?e.id:e)+"]"},Y.prototype.attr_=function(e,t){return t?this.attributes_.getForSeries(e,t):this.attributes_.get(e)},Y.prototype.getOption=function(e,t){return this.attr_(e,t)},Y.prototype.getNumericOption=function(e,t){return this.getOption(e,t)},Y.prototype.getStringOption=function(e,t){return this.getOption(e,t)},Y.prototype.getBooleanOption=function(e,t){return this.getOption(e,t)},Y.prototype.getFunctionOption=function(e,t){return this.getOption(e,t)},Y.prototype.getOptionForAxis=function(e,t){return this.attributes_.getForAxis(e,t)},Y.prototype.optionsViewForAxis_=function(e){var t=this;return function(n){var r=t.user_attrs_.axes;return r&&r[e]&&r[e].hasOwnProperty(n)?r[e][n]:("x"!==e||"logscale"!==n)&&("undefined"!=typeof t.user_attrs_[n]?t.user_attrs_[n]:(r=t.attrs_.axes)&&r[e]&&r[e].hasOwnProperty(n)?r[e][n]:"y"==e&&t.axes_[0].hasOwnProperty(n)?t.axes_[0][n]:"y2"==e&&t.axes_[1].hasOwnProperty(n)?t.axes_[1][n]:t.attr_(n))}},Y.prototype.rollPeriod=function(){return this.rollPeriod_},Y.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},Y.prototype.xAxisExtremes=function(){var e=this.getNumericOption("xRangePad")/this.plotter_.area.w;if(0===this.numRows())return[0-e,1+e];var t=this.rawData_[0][0],n=this.rawData_[this.rawData_.length-1][0];if(e){var r=n-t;t-=r*e,n+=r*e}return[t,n]},Y.prototype.yAxisExtremes=function(){const e=this.gatherDatasets_(this.rolledSeries_,null),{extremes:t}=e,n=this.axes_;this.computeYAxisRanges_(t);const r=this.axes_;return this.axes_=n,r.map((e=>e.extremeRange))},Y.prototype.yAxisRange=function(e){if("undefined"==typeof e&&(e=0),e<0||e>=this.axes_.length)return null;var t=this.axes_[e];return[t.computedValueRange[0],t.computedValueRange[1]]},Y.prototype.yAxisRanges=function(){for(var e=[],t=0;t<this.axes_.length;t++)e.push(this.yAxisRange(t));return e},Y.prototype.toDomCoords=function(e,t,n){return[this.toDomXCoord(e),this.toDomYCoord(t,n)]},Y.prototype.toDomXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,n=this.xAxisRange();return t.x+(e-n[0])/(n[1]-n[0])*t.w},Y.prototype.toDomYCoord=function(e,t){var n=this.toPercentYCoord(e,t);if(null===n)return null;var r=this.plotter_.area;return r.y+n*r.h},Y.prototype.toDataCoords=function(e,t,n){return[this.toDataXCoord(e),this.toDataYCoord(t,n)]},Y.prototype.toDataXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,n=this.xAxisRange();if(this.attributes_.getForAxis("logscale","x")){var o=(e-t.x)/t.w;return r.logRangeFraction(n[0],n[1],o)}return n[0]+(e-t.x)/t.w*(n[1]-n[0])},Y.prototype.toDataYCoord=function(e,t){if(null===e)return null;var n=this.plotter_.area,o=this.yAxisRange(t);if("undefined"==typeof t&&(t=0),this.attributes_.getForAxis("logscale",t)){var i=(e-n.y)/n.h;return r.logRangeFraction(o[1],o[0],i)}return o[0]+(n.y+n.h-e)/n.h*(o[1]-o[0])},Y.prototype.toPercentYCoord=function(e,t){if(null===e)return null;"undefined"==typeof t&&(t=0);var n,o=this.yAxisRange(t);if(this.attributes_.getForAxis("logscale",t)){var i=r.log10(o[0]),a=r.log10(o[1]);n=(a-r.log10(e))/(a-i)}else n=(o[1]-e)/(o[1]-o[0]);return n},Y.prototype.toPercentXCoord=function(e){if(null===e)return null;var t,n=this.xAxisRange();if(!0===this.attributes_.getForAxis("logscale","x")){var o=r.log10(n[0]),i=r.log10(n[1]);t=(r.log10(e)-o)/(i-o)}else t=(e-n[0])/(n[1]-n[0]);return t},Y.prototype.numColumns=function(){return this.rawData_?this.rawData_[0]?this.rawData_[0].length:this.attr_("labels").length:0},Y.prototype.numRows=function(){return this.rawData_?this.rawData_.length:0},Y.prototype.getValue=function(e,t){return e<0||e>=this.rawData_.length||t<0||t>=this.rawData_[e].length?null:this.rawData_[e][t]},Y.prototype.createInterface_=function(){var e=this.maindiv_;this.graphDiv=document.createElement("div"),this.graphDiv.style.textAlign="left",this.graphDiv.style.position="relative",e.appendChild(this.graphDiv),this.canvas_=r.createCanvas(),this.canvas_.style.position="absolute",this.canvas_.style.top=0,this.canvas_.style.left=0,this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.canvas_ctx_=r.getContext(this.canvas_),this.hidden_ctx_=r.getContext(this.hidden_),this.resizeElements_(),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new i(this);var t=this;if(this.mouseMoveHandler_=function(e){t.mouseMove_(e)},this.mouseOutHandler_=function(e){var n=e.target||e.fromElement,o=e.relatedTarget||e.toElement;r.isNodeContainedBy(n,t.graphDiv)&&!r.isNodeContainedBy(o,t.graphDiv)&&t.mouseOut_(e)},this.addAndTrackEvent(window,"mouseout",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),!this.resizeHandler_){this.resizeHandler_=function(e){t.resize()},this.addAndTrackEvent(window,"resize",this.resizeHandler_),this.resizeObserver_=null;var n=this.getStringOption("resizable");if("undefined"===typeof ResizeObserver&&"no"!==n&&(console.error("ResizeObserver unavailable; ignoring resizable property"),n="no"),"horizontal"===n||"vertical"===n||"both"===n?e.style.resize=n:"passive"!==n&&(n="no"),"no"!==n){window.getComputedStyle(e).overflow;"visible"===window.getComputedStyle(e).overflow&&(e.style.overflow="hidden"),this.resizeObserver_=new ResizeObserver(this.resizeHandler_),this.resizeObserver_.observe(e)}}},Y.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+"px",this.graphDiv.style.height=this.height_+"px";var e=this.getNumericOption("pixelRatio"),t=e||r.getContextPixelRatio(this.canvas_ctx_);this.canvas_.width=this.width_*t,this.canvas_.height=this.height_*t,this.canvas_.style.width=this.width_+"px",this.canvas_.style.height=this.height_+"px",1!==t&&this.canvas_ctx_.scale(t,t);var n=e||r.getContextPixelRatio(this.hidden_ctx_);this.hidden_.width=this.width_*n,this.hidden_.height=this.height_*n,this.hidden_.style.width=this.width_+"px",this.hidden_.style.height=this.height_+"px",1!==n&&this.hidden_ctx_.scale(n,n)},Y.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();for(var e=this.plugins_.length-1;e>=0;e--){var t=this.plugins_.pop();t.plugin.destroy&&t.plugin.destroy()}var n=function(e){for(;e.hasChildNodes();)n(e.firstChild),e.removeChild(e.firstChild)};this.removeTrackedEvents_(),r.removeEvent(window,"mouseout",this.mouseOutHandler_),r.removeEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null),r.removeEvent(window,"resize",this.resizeHandler_),this.resizeHandler_=null,n(this.maindiv_);var o=function(e){for(var t in e)"object"===typeof e[t]&&(e[t]=null)};o(this.layout_),o(this.plotter_),o(this)},Y.prototype.createPlotKitCanvas_=function(e){var t=r.createCanvas();return t.style.position="absolute",t.style.top=e.style.top,t.style.left=e.style.left,t.width=this.width_,t.height=this.height_,t.style.width=this.width_+"px",t.style.height=this.height_+"px",t},Y.prototype.createMouseEventElement_=function(){return this.canvas_},Y.prototype.setColors_=function(){var e=this.getLabels(),t=e.length-1;this.colors_=[],this.colorsMap_={};for(var n=this.getNumericOption("colorSaturation")||1,o=this.getNumericOption("colorValue")||.5,i=Math.ceil(t/2),a=this.getOption("colors"),s=this.visibility(),u=0;u<t;u++)if(s[u]){var l=e[u+1],c=this.attributes_.getForSeries("color",l);if(!c)if(a)c=a[u%a.length];else{var f=1*(u%2?i+(u+1)/2:Math.ceil((u+1)/2))/(1+t);c=r.hsvToRGB(f,n,o)}this.colors_.push(c),this.colorsMap_[l]=c}},Y.prototype.getColors=function(){return this.colors_},Y.prototype.getPropertiesForSeries=function(e){for(var t=-1,n=this.getLabels(),r=1;r<n.length;r++)if(n[r]==e){t=r;break}return-1==t?null:{name:e,column:t,visible:this.visibility()[t-1],color:this.colorsMap_[e],axis:1+this.attributes_.axisForSeries(e)}},Y.prototype.createRollInterface_=function(){var e=this.roller_;e||(this.roller_=e=document.createElement("input"),e.type="text",e.style.display="none",e.className="dygraph-roller",this.graphDiv.appendChild(e));var t=this.getBooleanOption("showRoller")?"block":"none",n=this.getArea(),o={top:n.y+n.h-25+"px",left:n.x+1+"px",display:t};e.size="2",e.value=this.rollPeriod_,r.update(e.style,o);const i=this;e.onchange=function(){return i.adjustRoll(e.value)}},Y.prototype.createDragInterface_=function(){var e={isZooming:!1,isPanning:!1,is2DPan:!1,dragStartX:null,dragStartY:null,dragEndX:null,dragEndY:null,dragDirection:null,prevEndX:null,prevEndY:null,prevDragDirection:null,cancelNextDblclick:!1,initialLeftmostDate:null,xUnitsPerPixel:null,dateRange:null,px:0,py:0,boundedDates:null,boundedValues:null,tarp:new v,initializeMouseDown:function(e,t,n){e.preventDefault?e.preventDefault():(e.returnValue=!1,e.cancelBubble=!0);var o=r.findPos(t.canvas_);n.px=o.x,n.py=o.y,n.dragStartX=r.dragGetX_(e,n),n.dragStartY=r.dragGetY_(e,n),n.cancelNextDblclick=!1,n.tarp.cover()},destroy:function(){var e=this;if((e.isZooming||e.isPanning)&&(e.isZooming=!1,e.dragStartX=null,e.dragStartY=null),e.isPanning){e.isPanning=!1,e.draggingDate=null,e.dateRange=null;for(var t=0;t<n.axes_.length;t++)delete n.axes_[t].draggingValue,delete n.axes_[t].dragValueRange}e.tarp.uncover()}},t=this.getOption("interactionModel"),n=this,o=function(t){return function(r){t(r,n,e)}};for(var i in t)t.hasOwnProperty(i)&&this.addAndTrackEvent(this.mouseEventElement_,i,o(t[i]));if(!t.willDestroyContextMyself){this.addAndTrackEvent(document,"mouseup",(function(t){e.destroy()}))}},Y.prototype.drawZoomRect_=function(e,t,n,o,i,a,s,u){var l=this.canvas_ctx_;a==r.HORIZONTAL?l.clearRect(Math.min(t,s),this.layout_.getPlotArea().y,Math.abs(t-s),this.layout_.getPlotArea().h):a==r.VERTICAL&&l.clearRect(this.layout_.getPlotArea().x,Math.min(o,u),this.layout_.getPlotArea().w,Math.abs(o-u)),e==r.HORIZONTAL?n&&t&&(l.fillStyle="rgba(128,128,128,0.33)",l.fillRect(Math.min(t,n),this.layout_.getPlotArea().y,Math.abs(n-t),this.layout_.getPlotArea().h)):e==r.VERTICAL&&i&&o&&(l.fillStyle="rgba(128,128,128,0.33)",l.fillRect(this.layout_.getPlotArea().x,Math.min(o,i),this.layout_.getPlotArea().w,Math.abs(i-o)))},Y.prototype.clearZoomRect_=function(){this.currentZoomRectArgs_=null,this.canvas_ctx_.clearRect(0,0,this.width_,this.height_)},Y.prototype.doZoomX_=function(e,t){this.currentZoomRectArgs_=null;var n=this.toDataXCoord(e),r=this.toDataXCoord(t);this.doZoomXDates_(n,r)},Y.prototype.doZoomXDates_=function(e,t){var n=this.xAxisRange(),r=[e,t];const o=this.getFunctionOption("zoomCallback"),i=this;this.doAnimatedZoom(n,r,null,null,(function(){o&&o.call(i,e,t,i.yAxisRanges())}))},Y.prototype.doZoomY_=function(e,t){this.currentZoomRectArgs_=null;for(var n=this.yAxisRanges(),r=[],o=0;o<this.axes_.length;o++){var i=this.toDataYCoord(e,o),a=this.toDataYCoord(t,o);r.push([a,i])}const s=this.getFunctionOption("zoomCallback"),u=this;this.doAnimatedZoom(null,null,n,r,(function(){if(s){const[e,t]=u.xAxisRange();s.call(u,e,t,u.yAxisRanges())}}))},Y.zoomAnimationFunction=function(e,t){return(1-Math.pow(1.5,-e))/(1-Math.pow(1.5,-t))},Y.prototype.resetZoom=function(){const e=this.isZoomed("x"),t=this.isZoomed("y"),n=e||t;if(this.clearSelection(),!n)return;const[r,o]=this.xAxisExtremes(),i=this.getBooleanOption("animatedZooms"),a=this.getFunctionOption("zoomCallback");if(!i)return this.dateWindow_=null,this.axes_.forEach((e=>{e.valueRange&&delete e.valueRange})),this.drawGraph_(),void(a&&a.call(this,r,o,this.yAxisRanges()));var s=null,u=null,l=null,c=null;e&&(s=this.xAxisRange(),u=[r,o]),t&&(l=this.yAxisRanges(),c=this.yAxisExtremes());const f=this;this.doAnimatedZoom(s,u,l,c,(function(){f.dateWindow_=null,f.axes_.forEach((e=>{e.valueRange&&delete e.valueRange})),a&&a.call(f,r,o,f.yAxisRanges())}))},Y.prototype.doAnimatedZoom=function(e,t,n,o,i){var a,s,u=this.getBooleanOption("animatedZooms")?Y.ANIMATION_STEPS:1,l=[],c=[];if(null!==e&&null!==t)for(a=1;a<=u;a++)s=Y.zoomAnimationFunction(a,u),l[a-1]=[e[0]*(1-s)+s*t[0],e[1]*(1-s)+s*t[1]];if(null!==n&&null!==o)for(a=1;a<=u;a++){s=Y.zoomAnimationFunction(a,u);for(var f=[],d=0;d<this.axes_.length;d++)f.push([n[d][0]*(1-s)+s*o[d][0],n[d][1]*(1-s)+s*o[d][1]]);c[a-1]=f}const p=this;r.repeatAndCleanup((function(e){if(c.length)for(var t=0;t<p.axes_.length;t++){var n=c[e][t];p.axes_[t].valueRange=[n[0],n[1]]}l.length&&(p.dateWindow_=l[e]),p.drawGraph_()}),u,Y.ANIMATION_DURATION/u,i)},Y.prototype.getArea=function(){return this.plotter_.area},Y.prototype.eventToDomCoords=function(e){if(e.offsetX&&e.offsetY)return[e.offsetX,e.offsetY];var t=r.findPos(this.mouseEventElement_);return[r.pageX(e)-t.x,r.pageY(e)-t.y]},Y.prototype.findClosestRow=function(e){for(var t=1/0,n=-1,o=this.layout_.points,i=0;i<o.length;i++)for(var a=o[i],s=a.length,u=0;u<s;u++){var l=a[u];if(r.isValidPoint(l,!0)){var c=Math.abs(l.canvasx-e);c<t&&(t=c,n=l.idx)}}return n},Y.prototype.findClosestPoint=function(e,t){for(var n,o,i,a,s,u,l,c=1/0,f=this.layout_.points.length-1;f>=0;--f)for(var d=this.layout_.points[f],p=0;p<d.length;++p)a=d[p],r.isValidPoint(a)&&(n=(o=a.canvasx-e)*o+(i=a.canvasy-t)*i)<c&&(c=n,s=a,u=f,l=a.idx);return{row:l,seriesName:this.layout_.setNames[u],point:s}},Y.prototype.findStackedPoint=function(e,t){for(var n,o,i=this.findClosestRow(e),a=0;a<this.layout_.points.length;++a){var s=i-this.getLeftBoundary_(a),u=this.layout_.points[a];if(!(s>=u.length)){var l=u[s];if(r.isValidPoint(l)){var c=l.canvasy;if(e>l.canvasx&&s+1<u.length){var f=u[s+1];if(r.isValidPoint(f))if((d=f.canvasx-l.canvasx)>0)c+=(e-l.canvasx)/d*(f.canvasy-l.canvasy)}else if(e<l.canvasx&&s>0){var d,p=u[s-1];if(r.isValidPoint(p))if((d=l.canvasx-p.canvasx)>0)c+=(l.canvasx-e)/d*(p.canvasy-l.canvasy)}(0===a||c<t)&&(n=l,o=a)}}}return{row:i,seriesName:this.layout_.setNames[o],point:n}},Y.prototype.mouseMove_=function(e){var t=this.layout_.points;if(void 0!==t&&null!==t){var n=this.eventToDomCoords(e),r=n[0],o=n[1],i=!1;if(this.getOption("highlightSeriesOpts")&&!this.isSeriesLocked()){var a;a=this.getBooleanOption("stackedGraph")?this.findStackedPoint(r,o):this.findClosestPoint(r,o),i=this.setSelection(a.row,a.seriesName)}else{var s=this.findClosestRow(r);i=this.setSelection(s)}var u=this.getFunctionOption("highlightCallback");u&&i&&u.call(this,e,this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}},Y.prototype.getLeftBoundary_=function(e){if(this.boundaryIds_[e])return this.boundaryIds_[e][0];for(var t=0;t<this.boundaryIds_.length;t++)if(void 0!==this.boundaryIds_[t])return this.boundaryIds_[t][0];return 0},Y.prototype.animateSelection_=function(e){void 0===this.fadeLevel&&(this.fadeLevel=0),void 0===this.animateId&&(this.animateId=0);var t=this.fadeLevel,n=e<0?t:10-t;if(n<=0)this.fadeLevel&&this.updateSelection_(1);else{var o=++this.animateId,i=this;r.repeatAndCleanup((function(t){i.animateId==o&&(i.fadeLevel+=e,0===i.fadeLevel?i.clearSelection():i.updateSelection_(i.fadeLevel/10))}),n,30,(function(){0!==i.fadeLevel&&e<0&&(i.fadeLevel=0,i.clearSelection())}))}},Y.prototype.updateSelection_=function(e){var t;this.cascadeEvents_("select",{selectedRow:-1===this.lastRow_?void 0:this.lastRow_,selectedX:null===this.lastx_?void 0:this.lastx_,selectedPoints:this.selPoints_});var n=this.canvas_ctx_;if(this.getOption("highlightSeriesOpts")){n.clearRect(0,0,this.width_,this.height_);var o=1-this.getNumericOption("highlightSeriesBackgroundAlpha"),i=r.toRGB_(this.getOption("highlightSeriesBackgroundColor"));if(o){if(this.getBooleanOption("animateBackgroundFade")){if(void 0===e)return void this.animateSelection_(1);o*=e}n.fillStyle="rgba("+i.r+","+i.g+","+i.b+","+o+")",n.fillRect(0,0,this.width_,this.height_)}this.plotter_._renderLineChart(this.highlightSet_,n)}else if(this.previousVerticalX_>=0){var a=0,s=this.attr_("labels");for(t=1;t<s.length;t++){var u=this.getNumericOption("highlightCircleSize",s[t]);u>a&&(a=u)}var l=this.previousVerticalX_;n.clearRect(l-a-1,0,2*a+2,this.height_)}if(this.selPoints_.length>0){var c=this.selPoints_[0].canvasx;for(n.save(),t=0;t<this.selPoints_.length;t++){var f=this.selPoints_[t];if(!isNaN(f.canvasy)){var d=this.getNumericOption("highlightCircleSize",f.name),p=this.getFunctionOption("drawHighlightPointCallback",f.name),h=this.plotter_.colors[f.name];p||(p=r.Circles.DEFAULT),n.lineWidth=this.getNumericOption("strokeWidth",f.name),n.strokeStyle=h,n.fillStyle=h,p.call(this,this,f.name,n,c,f.canvasy,h,d,f.idx)}}n.restore(),this.previousVerticalX_=c}},Y.prototype.setSelection=function(e,t,n,r){this.selPoints_=[];var o=!1;if(!1!==e&&e>=0){e!=this.lastRow_&&(o=!0),this.lastRow_=e;for(var i=0;i<this.layout_.points.length;++i){var a=this.layout_.points[i],s=e-this.getLeftBoundary_(i);if(s>=0&&s<a.length&&a[s].idx==e)null!==(l=a[s]).yval&&this.selPoints_.push(l);else for(var u=0;u<a.length;++u){var l;if((l=a[u]).idx==e){null!==l.yval&&this.selPoints_.push(l);break}}}}else this.lastRow_>=0&&(o=!0),this.lastRow_=-1;if(this.selPoints_.length?this.lastx_=this.selPoints_[0].xval:this.lastx_=null,void 0!==t&&(this.highlightSet_!==t&&(o=!0),this.highlightSet_=t),void 0!==n&&(this.lockedSet_=n),o&&(this.updateSelection_(void 0),r)){var c=this.getFunctionOption("highlightCallback");if(c){c.call(this,{},this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}}return o},Y.prototype.mouseOut_=function(e){this.getFunctionOption("unhighlightCallback")&&this.getFunctionOption("unhighlightCallback").call(this,e),this.getBooleanOption("hideOverlayOnMouseOut")&&!this.lockedSet_&&this.clearSelection()},Y.prototype.clearSelection=function(){this.cascadeEvents_("deselect",{}),this.lockedSet_=!1,this.fadeLevel?this.animateSelection_(-1):(this.canvas_ctx_.clearRect(0,0,this.width_,this.height_),this.fadeLevel=0,this.selPoints_=[],this.lastx_=null,this.lastRow_=-1,this.highlightSet_=null)},Y.prototype.getSelection=function(){if(!this.selPoints_||this.selPoints_.length<1)return-1;for(var e=0;e<this.layout_.points.length;e++)for(var t=this.layout_.points[e],n=0;n<t.length;n++)if(t[n].x==this.selPoints_[0].x)return t[n].idx;return-1},Y.prototype.getHighlightSeries=function(){return this.highlightSet_},Y.prototype.isSeriesLocked=function(){return this.lockedSet_},Y.prototype.loadedEvent_=function(e){this.rawData_=this.parseCSV_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_()},Y.prototype.addXTicks_=function(){var e;e=this.dateWindow_?[this.dateWindow_[0],this.dateWindow_[1]]:this.xAxisExtremes();var t=this.optionsViewForAxis_("x"),n=t("ticker")(e[0],e[1],this.plotter_.area.w,t,this);this.layout_.setXTicks(n)},Y.prototype.getHandlerClass_=function(){return this.attr_("dataHandler")?this.attr_("dataHandler"):this.fractions_?this.getBooleanOption("errorBars")?R:k:this.getBooleanOption("customBars")?A:this.getBooleanOption("errorBars")?C:x},Y.prototype.predraw_=function(){var e=new Date;this.dataHandler_=new(this.getHandlerClass_()),this.layout_.computePlotArea(),this.computeYAxes_(),this.is_initial_draw_||(this.canvas_ctx_.restore(),this.hidden_ctx_.restore()),this.canvas_ctx_.save(),this.hidden_ctx_.save(),this.plotter_=new s(this,this.hidden_,this.hidden_ctx_,this.layout_),this.createRollInterface_(),this.cascadeEvents_("predraw"),this.rolledSeries_=[null];for(var t=1;t<this.numColumns();t++){var n=this.dataHandler_.extractSeries(this.rawData_,t,this.attributes_);this.rollPeriod_>1&&(n=this.dataHandler_.rollingAverage(n,this.rollPeriod_,this.attributes_,t)),this.rolledSeries_.push(n)}this.drawGraph_();var r=new Date;this.drawingTimeMs_=r-e},Y.PointType=void 0,Y.stackPoints_=function(e,t,n,r){for(var o=null,i=null,a=null,s=-1,u=function(t){if(!(s>=t))for(var n=t;n<e.length;++n)if(a=null,!isNaN(e[n].yval)&&null!==e[n].yval){s=n,a=e[n];break}},l=0;l<e.length;++l){var c=e[l],f=c.xval;void 0===t[f]&&(t[f]=0);var d=c.yval;isNaN(d)||null===d?"none"==r?d=0:(u(l),d=i&&a&&"none"!=r?i.yval+(a.yval-i.yval)*((f-i.xval)/(a.xval-i.xval)):i&&"all"==r?i.yval:a&&"all"==r?a.yval:0):i=c;var p=t[f];o!=f&&(p+=d,t[f]=p),o=f,c.yval_stacked=p,p>n[1]&&(n[1]=p),p<n[0]&&(n[0]=p)}},Y.prototype.gatherDatasets_=function(e,t){var n,r,o,i,a,s,u=[],l=[],c=[],f={};for(n=e.length-1;n>=1;n--)if(this.visibility()[n-1]){if(t){s=e[n];var d=t[0],p=t[1];for(o=null,i=null,r=0;r<s.length;r++)s[r][0]>=d&&null===o&&(o=r),s[r][0]<=p&&(i=r);null===o&&(o=0);for(var h=o,g=!0;g&&h>0;)g=null===s[--h][1];null===i&&(i=s.length-1);var v=i;for(g=!0;g&&v<s.length-1;)g=null===s[++v][1];h!==o&&(o=h),v!==i&&(i=v),u[n-1]=[o,i],s=s.slice(o,i+1)}else s=e[n],u[n-1]=[0,s.length-1];var m=this.attr_("labels")[n],y=this.dataHandler_.getExtremeYValues(s,t,this.getBooleanOption("stepPlot",m)),b=this.dataHandler_.seriesToPoints(s,m,u[n-1][0]);this.getBooleanOption("stackedGraph")&&(void 0===c[a=this.attributes_.axisForSeries(m)]&&(c[a]=[]),Y.stackPoints_(b,c[a],y,this.getBooleanOption("stackedGraphNaNFill"))),f[m]=y,l[n]=b}return{points:l,extremes:f,boundaryIds:u}},Y.prototype.drawGraph_=function(){var e=new Date,t=this.is_initial_draw_;this.is_initial_draw_=!1,this.layout_.removeAllDatasets(),this.setColors_(),this.attrs_.pointSize=.5*this.getNumericOption("highlightCircleSize");var n=this.gatherDatasets_(this.rolledSeries_,this.dateWindow_),r=n.points,o=n.extremes;this.boundaryIds_=n.boundaryIds,this.setIndexByName_={};for(var i=this.attr_("labels"),a=0,s=1;s<r.length;s++)this.visibility()[s-1]&&(this.layout_.addDataset(i[s],r[s]),this.datasetIndex_[s]=a++);for(s=0;s<i.length;s++)this.setIndexByName_[i[s]]=s;if(this.computeYAxisRanges_(o),this.layout_.setYAxes(this.axes_),this.addXTicks_(),this.layout_.evaluate(),this.renderGraph_(t),this.getStringOption("timingName")){var u=new Date;console.log(this.getStringOption("timingName")+" - drawGraph: "+(u-e)+"ms")}},Y.prototype.renderGraph_=function(e){this.cascadeEvents_("clearChart"),this.plotter_.clear();const t=this.getFunctionOption("underlayCallback");t&&t.call(this,this.hidden_ctx_,this.layout_.getPlotArea(),this,this);var n={canvas:this.hidden_,drawingContext:this.hidden_ctx_};this.cascadeEvents_("willDrawChart",n),this.plotter_.render(),this.cascadeEvents_("didDrawChart",n),this.lastRow_=-1,this.canvas_.getContext("2d").clearRect(0,0,this.width_,this.height_);const r=this.getFunctionOption("drawCallback");if(null!==r&&r.call(this,this,e),e)for(this.readyFired_=!0;this.readyFns_.length>0;){this.readyFns_.pop()(this)}},Y.prototype.computeYAxes_=function(){var e,t,n;for(this.axes_=[],e=0;e<this.attributes_.numAxes();e++)t={g:this},r.update(t,this.attributes_.axisOptions(e)),this.axes_[e]=t;for(e=0;e<this.axes_.length;e++)if(0===e)(n=(t=this.optionsViewForAxis_("y"+(e?"2":"")))("valueRange"))&&(this.axes_[e].valueRange=n);else{var o=this.user_attrs_.axes;o&&o.y2&&(n=o.y2.valueRange)&&(this.axes_[e].valueRange=n)}},Y.prototype.numAxes=function(){return this.attributes_.numAxes()},Y.prototype.axisPropertiesForSeries=function(e){return this.axes_[this.attributes_.axisForSeries(e)]},Y.prototype.computeYAxisRanges_=function(e){for(var t,n,o,i,a,s=function(e){return isNaN(parseFloat(e))},u=this.attributes_.numAxes(),l=0;l<u;l++){var c=this.axes_[l],f=this.attributes_.getForAxis("logscale",l),d=this.attributes_.getForAxis("includeZero",l),p=this.attributes_.getForAxis("independentTicks",l);o=this.attributes_.seriesForAxis(l),t=!0,i=.1;const u=this.getNumericOption("yRangePad");if(null!==u&&(t=!1,i=u/this.plotter_.area.h),0===o.length)c.extremeRange=[0,1];else{for(var h,g,v=1/0,m=-1/0,y=0;y<o.length;y++)e.hasOwnProperty(o[y])&&(null!==(h=e[o[y]][0])&&(v=Math.min(h,v)),null!==(g=e[o[y]][1])&&(m=Math.max(g,m)));d&&!f&&(v>0&&(v=0),m<0&&(m=0)),v==1/0&&(v=0),m==-1/0&&(m=1),0===(n=m-v)&&(0!==m?n=Math.abs(m):(m=1,n=1));var b=m,w=v;t&&(f?(b=m+i*n,w=v):((w=v-i*n)<0&&v>=0&&(w=0),(b=m+i*n)>0&&m<=0&&(b=0))),c.extremeRange=[w,b]}if(c.valueRange){var x=s(c.valueRange[0])?c.extremeRange[0]:c.valueRange[0],_=s(c.valueRange[1])?c.extremeRange[1]:c.valueRange[1];c.computedValueRange=[x,_]}else c.computedValueRange=c.extremeRange;if(!t){if((x=c.computedValueRange[0])===(_=c.computedValueRange[1]))if(0===x)_=1;else{var S=Math.abs(x/10);x-=S,_+=S}if(f){var O=i/(2*i-1),C=(i-1)/(2*i-1);c.computedValueRange[0]=r.logRangeFraction(x,_,O),c.computedValueRange[1]=r.logRangeFraction(x,_,C)}else n=_-x,c.computedValueRange[0]=x-n*i,c.computedValueRange[1]=_+n*i}if(p){c.independentTicks=p;var E=(A=this.optionsViewForAxis_("y"+(l?"2":"")))("ticker");c.ticks=E(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,A,this),a||(a=c)}}if(void 0===a)throw'Configuration Error: At least one axis has to have the "independentTicks" option activated.';for(l=0;l<u;l++){if(!(c=this.axes_[l]).independentTicks){E=(A=this.optionsViewForAxis_("y"+(l?"2":"")))("ticker");for(var A,M=a.ticks,k=a.computedValueRange[1]-a.computedValueRange[0],P=c.computedValueRange[1]-c.computedValueRange[0],R=[],T=0;T<M.length;T++){var I=(M[T].v-a.computedValueRange[0])/k,B=c.computedValueRange[0]+I*P;R.push(B)}c.ticks=E(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,A,this,R)}}},Y.prototype.detectTypeFromString_=function(e){var t=!1,n=e.indexOf("-");(n>0&&"e"!=e[n-1]&&"E"!=e[n-1]||e.indexOf("/")>=0||isNaN(parseFloat(e)))&&(t=!0),this.setXAxisOptions_(t)},Y.prototype.setXAxisOptions_=function(e){e?(this.attrs_.xValueParser=r.dateParser,this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=u.cc,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter):(this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=u.Dv,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter)},Y.prototype.parseCSV_=function(e){var t,n,o=[],i=r.detectLineDelimiter(e),a=e.split(i||"\n"),s=this.getStringOption("delimiter");-1==a[0].indexOf(s)&&a[0].indexOf("\t")>=0&&(s="\t");var u=0;"labels"in this.user_attrs_||(u=1,this.attrs_.labels=a[0].split(s),this.attributes_.reparseSeries());for(var l,c=!1,f=this.attr_("labels").length,d=!1,p=u;p<a.length;p++){var h=a[p];if(p,0!==h.length&&"#"!=h[0]){var g=h.split(s);if(!(g.length<2)){var v=[];if(c||(this.detectTypeFromString_(g[0]),l=this.getFunctionOption("xValueParser"),c=!0),v[0]=l(g[0],this),this.fractions_)for(n=1;n<g.length;n++)2!=(t=g[n].split("/")).length?(console.error('Expected fractional "num/den" values in CSV data but found a value \''+g[n]+"' on line "+(1+p)+" ('"+h+"') which is not of this form."),v[n]=[0,0]):v[n]=[r.parseFloat_(t[0],p,h),r.parseFloat_(t[1],p,h)];else if(this.getBooleanOption("errorBars"))for(g.length%2!=1&&console.error("Expected alternating (value, stdev.) pairs in CSV data but line "+(1+p)+" has an odd number of values ("+(g.length-1)+"): '"+h+"'"),n=1;n<g.length;n+=2)v[(n+1)/2]=[r.parseFloat_(g[n],p,h),r.parseFloat_(g[n+1],p,h)];else if(this.getBooleanOption("customBars"))for(n=1;n<g.length;n++){var m=g[n];/^ *$/.test(m)?v[n]=[null,null,null]:3==(t=m.split(";")).length?v[n]=[r.parseFloat_(t[0],p,h),r.parseFloat_(t[1],p,h),r.parseFloat_(t[2],p,h)]:console.warn('When using customBars, values must be either blank or "low;center;high" tuples (got "'+m+'" on line '+(1+p)+")")}else for(n=1;n<g.length;n++)v[n]=r.parseFloat_(g[n],p,h);if(o.length>0&&v[0]<o[o.length-1][0]&&(d=!0),v.length!=f&&console.error("Number of columns in line "+p+" ("+v.length+") does not agree with number of labels ("+f+") "+h),0===p&&this.attr_("labels")){var y=!0;for(n=0;y&&n<v.length;n++)v[n]&&(y=!1);if(y){console.warn("The dygraphs 'labels' option is set, but the first row of CSV data ('"+h+"') appears to also contain labels. Will drop the CSV labels and use the option labels.");continue}}o.push(v)}}}return d&&(console.warn("CSV is out of order; order it correctly to speed loading."),o.sort((function(e,t){return e[0]-t[0]}))),o},Y.prototype.parseArray_=function(e){if(0===e.length&&(e=[[0]]),0===e[0].length)return console.error("Data set cannot contain an empty row"),null;var t;if(function(e){const t=e[0],n=t[0];if("number"!==typeof n&&!r.isDateLike(n))throw new Error(`Expected number or date but got ${typeof n}: ${n}.`);for(let o=1;o<t.length;o++){const e=t[o];if(null!==e&&void 0!==e&&"number"!==typeof e&&!r.isArrayLike(e))throw new Error(`Expected number or array but got ${typeof e}: ${e}.`)}}(e),null===this.attr_("labels")){for(console.warn("Using default labels. Set labels explicitly via 'labels' in the options parameter"),this.attrs_.labels=["X"],t=1;t<e[0].length;t++)this.attrs_.labels.push("Y"+t);this.attributes_.reparseSeries()}else{var n=this.attr_("labels");if(n.length!=e[0].length)return console.error("Mismatch between number of labels ("+n+") and number of columns in array ("+e[0].length+")"),null}if(r.isDateLike(e[0][0])){this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=u.cc,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter;var o=r.clone(e);for(t=0;t<e.length;t++){if(0===o[t].length)return console.error("Row "+(1+t)+" of data is empty"),null;if(null===o[t][0]||"function"!=typeof o[t][0].getTime||isNaN(o[t][0].getTime()))return console.error("x value in row "+(1+t)+" is not a Date"),null;o[t][0]=o[t][0].getTime()}return o}return this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=u.Dv,this.attrs_.axes.x.axisLabelFormatter=r.numberAxisLabelFormatter,e},Y.prototype.parseDataTable_=function(e){var t=function(e){var t=String.fromCharCode(65+e%26);for(e=Math.floor(e/26);e>0;)t=String.fromCharCode(65+(e-1)%26)+t.toLowerCase(),e=Math.floor((e-1)/26);return t},n=e.getNumberOfColumns(),o=e.getNumberOfRows(),i=e.getColumnType(0);if("date"==i||"datetime"==i)this.attrs_.xValueParser=r.dateParser,this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=u.cc,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter;else{if("number"!=i)throw new Error("only 'date', 'datetime' and 'number' types are supported for column 1 of DataTable input (Got '"+i+"')");this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=u.Dv,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter}var a,s,l=[],c={},f=!1;for(a=1;a<n;a++){var d=e.getColumnType(a);if("number"==d)l.push(a);else{if("string"!=d||!this.getBooleanOption("displayAnnotations"))throw new Error("Only 'number' is supported as a dependent type with Gviz. 'string' is only supported if displayAnnotations is true");var p=l[l.length-1];c.hasOwnProperty(p)?c[p].push(a):c[p]=[a],f=!0}}var h=[e.getColumnLabel(0)];for(a=0;a<l.length;a++)h.push(e.getColumnLabel(l[a])),this.getBooleanOption("errorBars")&&(a+=1);this.attrs_.labels=h,n=h.length;var g=[],v=!1,m=[];for(a=0;a<o;a++){var y=[];if("undefined"!==typeof e.getValue(a,0)&&null!==e.getValue(a,0)){if("date"==i||"datetime"==i?y.push(e.getValue(a,0).getTime()):y.push(e.getValue(a,0)),this.getBooleanOption("errorBars"))for(s=0;s<n-1;s++)y.push([e.getValue(a,1+2*s),e.getValue(a,2+2*s)]);else{for(s=0;s<l.length;s++){var b=l[s];if(y.push(e.getValue(a,b)),f&&c.hasOwnProperty(b)&&null!==e.getValue(a,c[b][0])){var w={};w.series=e.getColumnLabel(b),w.xval=y[0],w.shortText=t(m.length),w.text="";for(var x=0;x<c[b].length;x++)x&&(w.text+="\n"),w.text+=e.getValue(a,c[b][x]);m.push(w)}}for(s=0;s<y.length;s++)isFinite(y[s])||(y[s]=null)}g.length>0&&y[0]<g[g.length-1][0]&&(v=!0),g.push(y)}else console.warn("Ignoring row "+a+" of DataTable because of undefined or null first column.")}v&&(console.warn("DataTable is out of order; order it correctly to speed loading."),g.sort((function(e,t){return e[0]-t[0]}))),this.rawData_=g,m.length>0&&this.setAnnotations(m,!0),this.attributes_.reparseSeries()},Y.prototype.cascadeDataDidUpdateEvent_=function(){this.cascadeEvents_("dataDidUpdate",{})},Y.prototype.start_=function(){var e=this.file_;"function"==typeof e&&(e=e());const t=r.typeArrayLike(e);if("array"==t)this.rawData_=this.parseArray_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("object"==t&&"function"==typeof e.getColumnRange)this.parseDataTable_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("string"==t){if(r.detectLineDelimiter(e))this.loadedEvent_(e);else{var n;n=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var o=this;n.onreadystatechange=function(){4==n.readyState&&(200!==n.status&&0!==n.status||o.loadedEvent_(n.responseText))},n.open("GET",e,!0),n.send(null)}}else console.error("Unknown data format: "+t)},Y.prototype.updateOptions=function(e,t){"undefined"==typeof t&&(t=!1);var n=e.file,o=Y.copyUserAttrs_(e),i=this.attributes_.numAxes();"rollPeriod"in o&&(this.rollPeriod_=o.rollPeriod),"dateWindow"in o&&(this.dateWindow_=o.dateWindow);var a=r.isPixelChangingOptionList(this.attr_("labels"),o);r.updateDeep(this.user_attrs_,o),this.attributes_.reparseSeries(),i<this.attributes_.numAxes()&&this.plotter_.clear(),n?(this.cascadeEvents_("dataWillUpdate",{}),this.file_=n,t||this.start_()):t||(a?this.predraw_():this.renderGraph_(!1))},Y.copyUserAttrs_=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&"file"!=n&&e.hasOwnProperty(n)&&(t[n]=e[n]);return t},Y.prototype.resize=function(e,t){if(!this.resize_lock){this.resize_lock=!0,null===e!=(null===t)&&(console.warn("Dygraph.resize() should be called with zero parameters or two non-NULL parameters. Pretending it was zero."),e=t=null);var n=this.width_,r=this.height_;e?(this.maindiv_.style.width=e+"px",this.maindiv_.style.height=t+"px",this.width_=e,this.height_=t):(this.width_=this.maindiv_.clientWidth,this.height_=this.maindiv_.clientHeight),n==this.width_&&r==this.height_||(this.resizeElements_(),this.predraw_()),this.resize_lock=!1}},Y.prototype.adjustRoll=function(e){this.rollPeriod_=e,this.predraw_()},Y.prototype.visibility=function(){for(this.getOption("visibility")||(this.attrs_.visibility=[]);this.getOption("visibility").length<this.numColumns()-1;)this.attrs_.visibility.push(!0);return this.getOption("visibility")},Y.prototype.setVisibility=function(e,t){var n=this.visibility(),r=!1;if(Array.isArray(e)||(null!==e&&"object"===typeof e?r=!0:e=[e]),r)for(var o in e)e.hasOwnProperty(o)&&(o<0||o>=n.length?console.warn("Invalid series number in setVisibility: "+o):n[o]=e[o]);else for(o=0;o<e.length;o++)"boolean"===typeof e[o]?o>=n.length?console.warn("Invalid series number in setVisibility: "+o):n[o]=e[o]:e[o]<0||e[o]>=n.length?console.warn("Invalid series number in setVisibility: "+e[o]):n[e[o]]=t;this.predraw_()},Y.prototype.size=function(){return{width:this.width_,height:this.height_}},Y.prototype.setAnnotations=function(e,t){this.annotations_=e,this.layout_?(this.layout_.setAnnotations(this.annotations_),t||this.predraw_()):console.warn("Tried to setAnnotations before dygraph was ready. Try setting them in a ready() block. See dygraphs.com/tests/annotation.html")},Y.prototype.annotations=function(){return this.annotations_},Y.prototype.getLabels=function(){var e=this.attr_("labels");return e?e.slice():null},Y.prototype.indexFromSetName=function(e){return this.setIndexByName_[e]},Y.prototype.getRowForX=function(e){for(var t=0,n=this.numRows()-1;t<=n;){var r=n+t>>1,o=this.getValue(r,0);if(o<e)t=r+1;else if(o>e)n=r-1;else{if(t==r)return r;n=r}}return null},Y.prototype.ready=function(e){this.is_initial_draw_?this.readyFns_.push(e):e.call(this,this)},Y.prototype.addAndTrackEvent=function(e,t,n){r.addEvent(e,t,n),this.registeredEvents_.push({elem:e,type:t,fn:n})},Y.prototype.removeTrackedEvents_=function(){if(this.registeredEvents_)for(var e=0;e<this.registeredEvents_.length;e++){var t=this.registeredEvents_[e];r.removeEvent(t.elem,t.type,t.fn)}this.registeredEvents_=[]},Y.PLUGINS=[U,D,W,N,I,H],Y.GVizChart=q,Y.DASHED_LINE=r.DASHED_LINE,Y.DOT_DASH_LINE=r.DOT_DASH_LINE,Y.dateAxisLabelFormatter=r.dateAxisLabelFormatter,Y.toRGB_=r.toRGB_,Y.findPos=r.findPos,Y.pageX=r.pageX,Y.pageY=r.pageY,Y.dateString_=r.dateString_,Y.defaultInteractionModel=f.defaultModel,Y.nonInteractiveModel=Y.nonInteractiveModel_=f.nonInteractiveModel_,Y.Circles=r.Circles,Y.Plugins={Legend:U,Axes:D,Annotations:I,ChartLabels:N,Grid:H,RangeSelector:W},Y.DataHandlers={DefaultHandler:x,BarsHandler:S,CustomBarsHandler:A,DefaultFractionHandler:k,ErrorBarsHandler:C,FractionsBarsHandler:R},Y.startPan=f.startPan,Y.startZoom=f.startZoom,Y.movePan=f.movePan,Y.moveZoom=f.moveZoom,Y.endPan=f.endPan,Y.endZoom=f.endZoom,Y.numericLinearTicks=u.JL,Y.numericTicks=u.Dv,Y.dateTicker=u.cc,Y.Granularity=u.He,Y.getDateAxis=u.XX,Y.floatFormat=r.floatFormat,r.setupDOMready_(Y);var K=Y},86929:function(e,t,n){!function(){"use strict";var e;function t(e,t,n,r,o){var i=void 0!==r?r:1/3,a=o||!1;if(!n)return[t.x,t.y,null,null];var s=(1-i)*t.x+i*e.x,u=(1-i)*t.y+i*e.y,l=(1-i)*t.x+i*n.x,c=(1-i)*t.y+i*n.y;if(s!=l){var f=t.y-c-(t.x-l)*(u-c)/(s-l);u+=f,c+=f}return a||(u>e.y&&u>t.y?(u=Math.max(e.y,t.y),c=2*t.y-u):u<e.y&&u<t.y&&(u=Math.min(e.y,t.y),c=2*t.y-u),c>t.y&&c>n.y?(c=Math.max(t.y,n.y),u=2*t.y-c):c<t.y&&c<n.y&&(c=Math.min(t.y,n.y),u=2*t.y-c)),[s,u,l,c]}function r(e){return!!e&&!isNaN(e)}function o(e){var n=e.drawingContext,i=e.points;n.beginPath(),n.moveTo(i[0].canvasx,i[0].canvasy);for(var a=i[0].canvasx,s=i[0].canvasy,u=1;u<i.length;u++){var l=i[u-1],c=i[u],f=i[u+1];if(l=l&&r(l.canvasy)?l:null,c=c&&r(c.canvasy)?c:null,f=f&&r(f.canvasy)?f:null,l&&c){var d=t({x:l.canvasx,y:l.canvasy},{x:c.canvasx,y:c.canvasy},f&&{x:f.canvasx,y:f.canvasy},o.smoothing);a=null!==a?a:l.canvasx,s=null!==s?s:l.canvasy,n.bezierCurveTo(a,s,d[0],d[1],c.canvasx,c.canvasy),a=d[2],s=d[3]}else c?(n.moveTo(c.canvasx,c.canvasy),a=c.canvasx,s=c.canvasy):a=s=null}n.stroke()}window.Dygraph?e=window.Dygraph:"undefined"===typeof(e=n(95984)).NAME&&"undefined"!==typeof e.default&&(e=e.default),o.smoothing=1/3,o._getControlPoints=t,window.smoothPlotter=o,e.smoothPlotter=o,e._require.add("dygraphs/src/extras/smooth-plotter.js",{})}()},26712:function(e,t){var n,r;r=this,void 0===(n=function(){return r.EasyPieChart=function(){var e=function(e,t){var n,r=document.createElement("canvas");e.appendChild(r),"object"===typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(r);var o=r.getContext("2d");r.width=r.height=t.size;var i=1;window.devicePixelRatio>1&&(i=window.devicePixelRatio,r.style.width=r.style.height=[t.size,"px"].join(""),r.width=r.height=t.size*i,o.scale(i,i)),o.translate(t.size/2,t.size/2),o.rotate((t.rotate/180-.5)*Math.PI);var a=(t.size-t.lineWidth)/2;t.scaleColor&&t.scaleLength&&(a-=t.scaleLength+2),Date.now=Date.now||function(){return+new Date};var s=function(e,t,n){var r=(n=Math.min(Math.max(-1,n||0),1))<=0;o.beginPath(),o.arc(0,0,a,0,2*Math.PI*n,r),o.strokeStyle=e,o.lineWidth=t,o.stroke()},u=function(){var e,n;o.lineWidth=1,o.fillStyle=t.scaleColor,o.save();for(var r=24;r>0;--r)r%6===0?(n=t.scaleLength,e=0):(n=.6*t.scaleLength,e=t.scaleLength-n),o.fillRect(-t.size/2+e,0,n,1),o.rotate(Math.PI/12);o.restore()},l=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)},c=function(){t.scaleColor&&u(),t.trackColor&&s(t.trackColor,t.trackWidth||t.lineWidth,1)};this.getCanvas=function(){return r},this.getCtx=function(){return o},this.clear=function(){o.clearRect(t.size/-2,t.size/-2,t.size,t.size)},this.draw=function(e){var r;t.scaleColor||t.trackColor?o.getImageData&&o.putImageData?n?o.putImageData(n,0,0):(c(),n=o.getImageData(0,0,t.size*i,t.size*i)):(this.clear(),c()):this.clear(),o.lineCap=t.lineCap,r="function"===typeof t.barColor?t.barColor(e):t.barColor,s(r,t.lineWidth,e/100)}.bind(this),this.animate=function(e,n){var r=Date.now();t.onStart(e,n);var o=function(){var i=Math.min(Date.now()-r,t.animate.duration),a=t.easing(this,i,e,n-e,t.animate.duration);this.draw(a),t.onStep(e,n,a),i>=t.animate.duration?t.onStop(e,n):l(o)}.bind(this);l(o)}.bind(this)};return function(t,n){var r={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(e,t,n,r,o){return(t/=o/2)<1?r/2*t*t+n:-r/2*(--t*(t-2)-1)+n},onStart:function(e,t){},onStep:function(e,t,n){},onStop:function(e,t){}};if("undefined"!==typeof e)r.renderer=e;else{if("undefined"===typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");r.renderer=SVGRenderer}var o={},i=0,a=function(){for(var e in this.el=t,this.options=o,r)r.hasOwnProperty(e)&&(o[e]=n&&"undefined"!==typeof n[e]?n[e]:r[e],"function"===typeof o[e]&&(o[e]=o[e].bind(this)));"string"===typeof o.easing&&"undefined"!==typeof jQuery&&jQuery.isFunction(jQuery.easing[o.easing])?o.easing=jQuery.easing[o.easing]:o.easing=r.easing,"number"===typeof o.animate&&(o.animate={duration:o.animate,enabled:!0}),"boolean"!==typeof o.animate||o.animate||(o.animate={duration:1e3,enabled:o.animate}),this.renderer=new o.renderer(t,o),this.renderer.draw(i),t.dataset&&t.dataset.percent?this.update(parseFloat(t.dataset.percent)):t.getAttribute&&t.getAttribute("data-percent")&&this.update(parseFloat(t.getAttribute("data-percent")))}.bind(this);this.update=function(e){return e=parseFloat(e),o.animate.enabled?this.renderer.animate(i,e):this.renderer.draw(e),i=e,this}.bind(this),this.disableAnimation=function(){return o.animate.enabled=!1,this},this.enableAnimation=function(){return o.animate.enabled=!0,this},a()}}()}.apply(t,[]))||(e.exports=n)},92806:function(e){"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),o=Array.isArray(t),i=0;i<r.length;i++){var a=r[i],s=e[a];(o?-1!==t.indexOf(a):t(a,s,e))&&(n[a]=s)}return n}},17648:function(e){"use strict";var t=Array.prototype.slice,n=Object.prototype.toString;e.exports=function(e){var r=this;if("function"!==typeof r||"[object Function]"!==n.call(r))throw new TypeError("Function.prototype.bind called on incompatible "+r);for(var o,i=t.call(arguments,1),a=Math.max(0,r.length-i.length),s=[],u=0;u<a;u++)s.push("$"+u);if(o=Function("binder","return function ("+s.join(",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof o){var n=r.apply(this,i.concat(t.call(arguments)));return Object(n)===n?n:this}return r.apply(e,i.concat(t.call(arguments)))})),r.prototype){var l=function(){};l.prototype=r.prototype,o.prototype=new l,l.prototype=null}return o}},58612:function(e,t,n){"use strict";var r=n(17648);e.exports=Function.prototype.bind||r},25972:function(e){"use strict";var t=function(){return"string"===typeof function(){}.name},n=Object.getOwnPropertyDescriptor;if(n)try{n([],"length")}catch(o){n=null}t.functionsHaveConfigurableNames=function(){if(!t()||!n)return!1;var e=n((function(){}),"name");return!!e&&!!e.configurable};var r=Function.prototype.bind;t.boundFunctionsHaveNames=function(){return t()&&"function"===typeof r&&""!==function(){}.bind().name},e.exports=t},31044:function(e,t,n){"use strict";var r=n(56181)("%Object.defineProperty%",!0),o=function(){if(r)try{return r({},"a",{value:1}),!0}catch(e){return!1}return!1};o.hasArrayLengthDefineBug=function(){if(!o())return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=o},56181:function(e,t,n){"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(t){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(P){u=null}var l=function(){throw new a},c=u?function(){try{return l}catch(e){try{return u(arguments,"callee").get}catch(t){return l}}}():l,f=n(41405)(),d=n(28185)(),p=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),h={},g="undefined"!==typeof Uint8Array&&p?p(Uint8Array):r,v={"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f&&p?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":h,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f&&p?p(p([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&f&&p?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&f&&p?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f&&p?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(p)try{null.error}catch(P){var m=p(p(P));v["%Error.prototype%"]=m}var y=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&p&&(n=p(o.prototype))}return v[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(58612),x=n(17642),_=w.call(Function.call,Array.prototype.concat),S=w.call(Function.apply,Array.prototype.splice),O=w.call(Function.call,String.prototype.replace),C=w.call(Function.call,String.prototype.slice),E=w.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,M=/\\(\\)?/g,k=function(e,t){var n,r=e;if(x(b,r)&&(r="%"+(n=b[r])[0]+"%"),x(v,r)){var i=v[r];if(i===h&&(i=y(r)),"undefined"===typeof i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===E(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=C(e,0,1),n=C(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return O(e,A,(function(e,t,n,o){r[r.length]=n?O(o,M,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=k("%"+r+"%",t),s=i.name,l=i.value,c=!1,f=i.alias;f&&(r=f[0],S(n,_([0,1],f)));for(var d=1,p=!0;d<n.length;d+=1){var h=n[d],g=C(h,0,1),m=C(h,-1);if(('"'===g||"'"===g||"`"===g||'"'===m||"'"===m||"`"===m)&&g!==m)throw new o("property names with quotes must have matching quotes");if("constructor"!==h&&p||(c=!0),x(v,s="%"+(r+="."+h)+"%"))l=v[s];else if(null!=l){if(!(h in l)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(u&&d+1>=n.length){var y=u(l,h);l=(p=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:l[h]}else p=x(l,h),l=l[h];p&&!c&&(v[s]=l)}}return l}},28185:function(e){"use strict";var t={foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof n)}},41405:function(e,t,n){"use strict";var r="undefined"!==typeof Symbol&&Symbol,o=n(55419);e.exports=function(){return"function"===typeof r&&("function"===typeof Symbol&&("symbol"===typeof r("foo")&&("symbol"===typeof Symbol("bar")&&o())))}},55419:function(e){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},96410:function(e,t,n){"use strict";var r=n(55419);e.exports=function(){return r()&&!!Symbol.toStringTag}},17642:function(e,t,n){"use strict";var r=n(58612);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},47323:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}var o;n.d(t,{lX:function(){return u}}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(o||(o={}));var i=function(e){return e};var a="beforeunload",s="popstate";function u(e){void 0===e&&(e={});var t=e.window,n=void 0===t?document.defaultView:t,u=n.history;function h(){var e=n.location,t=e.pathname,r=e.search,o=e.hash,a=u.state||{};return[a.idx,i({pathname:t,search:r,hash:o,state:a.usr||null,key:a.key||"default"})]}var g=null;n.addEventListener(s,(function(){if(g)x.call(g),g=null;else{var e=o.Pop,t=h(),n=t[0],r=t[1];if(x.length){if(null!=n){var i=y-n;i&&(g={action:e,location:r,retry:function(){A(-1*i)}},A(i))}}else E(e)}}));var v=o.Pop,m=h(),y=m[0],b=m[1],w=c(),x=c();function _(e){return"string"===typeof e?e:d(e)}function S(e,t){return void 0===t&&(t=null),i(r({pathname:b.pathname,hash:"",search:""},"string"===typeof e?p(e):e,{state:t,key:f()}))}function O(e,t){return[{usr:e.state,key:e.key,idx:t},_(e)]}function C(e,t,n){return!x.length||(x.call({action:e,location:t,retry:n}),!1)}function E(e){v=e;var t=h();y=t[0],b=t[1],w.call({action:v,location:b})}function A(e){u.go(e)}null==y&&(y=0,u.replaceState(r({},u.state,{idx:y}),""));var M={get action(){return v},get location(){return b},createHref:_,push:function e(t,r){var i=o.Push,a=S(t,r);if(C(i,a,(function(){e(t,r)}))){var s=O(a,y+1),l=s[0],c=s[1];try{u.pushState(l,"",c)}catch(f){n.location.assign(c)}E(i)}},replace:function e(t,n){var r=o.Replace,i=S(t,n);if(C(r,i,(function(){e(t,n)}))){var a=O(i,y),s=a[0],l=a[1];u.replaceState(s,"",l),E(r)}},go:A,back:function(){A(-1)},forward:function(){A(1)},listen:function(e){return w.push(e)},block:function(e){var t=x.push(e);return 1===x.length&&n.addEventListener(a,l),function(){t(),x.length||n.removeEventListener(a,l)}}};return M}function l(e){e.preventDefault(),e.returnValue=""}function c(){var e=[];return{get length(){return e.length},push:function(t){return e.push(t),function(){e=e.filter((function(e){return e!==t}))}},call:function(t){e.forEach((function(e){return e&&e(t)}))}}}function f(){return Math.random().toString(36).substr(2,8)}function d(e){var t=e.pathname,n=void 0===t?"/":t,r=e.search,o=void 0===r?"":r,i=e.hash,a=void 0===i?"":i;return o&&"?"!==o&&(n+="?"===o.charAt(0)?o:"?"+o),a&&"#"!==a&&(n+="#"===a.charAt(0)?a:"#"+a),n}function p(e){var t={};if(e){var n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}},8679:function(e,t,n){"use strict";var r=n(21296),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var l=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var s=u(t),g=u(n),v=0;v<a.length;++v){var m=a[v];if(!i[m]&&(!r||!r[m])&&(!g||!g[m])&&(!s||!s[m])){var y=d(n,m);try{l(t,m,y)}catch(b){}}}}return t}},96103:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case i:case s:case a:case p:return e;default:switch(e=e&&e.$$typeof){case l:case d:case v:case g:case u:return e;default:return t}}case o:return t}}}function _(e){return x(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=l,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=i,t.Lazy=v,t.Memo=g,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=p,t.isAsyncMode=function(e){return _(e)||x(e)===c},t.isConcurrentMode=_,t.isContextConsumer=function(e){return x(e)===l},t.isContextProvider=function(e){return x(e)===u},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===d},t.isFragment=function(e){return x(e)===i},t.isLazy=function(e){return x(e)===v},t.isMemo=function(e){return x(e)===g},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===s},t.isStrictMode=function(e){return x(e)===a},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===f||e===s||e===a||e===p||e===h||"object"===typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===g||e.$$typeof===u||e.$$typeof===l||e.$$typeof===d||e.$$typeof===y||e.$$typeof===b||e.$$typeof===w||e.$$typeof===m)},t.typeOf=x},21296:function(e,t,n){"use strict";e.exports=n(96103)},82584:function(e,t,n){"use strict";var r=n(96410)(),o=n(21924)("Object.prototype.toString"),i=function(e){return!(r&&e&&"object"===typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},a=function(e){return!!i(e)||null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"[object Function]"===o(e.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,e.exports=s?i:a},48738:function(e){function t(e){return!!e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"===typeof e.readFloatLE&&"function"===typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},18923:function(e,t,n){"use strict";var r=Date.prototype.getDay,o=Object.prototype.toString,i=n(96410)();e.exports=function(e){return"object"===typeof e&&null!==e&&(i?function(e){try{return r.call(e),!0}catch(t){return!1}}(e):"[object Date]"===o.call(e))}},98420:function(e,t,n){"use strict";var r,o,i,a,s=n(21924),u=n(96410)();if(u){r=s("Object.prototype.hasOwnProperty"),o=s("RegExp.prototype.exec"),i={};var l=function(){throw i};a={toString:l,valueOf:l},"symbol"===typeof Symbol.toPrimitive&&(a[Symbol.toPrimitive]=l)}var c=s("Object.prototype.toString"),f=Object.getOwnPropertyDescriptor;e.exports=u?function(e){if(!e||"object"!==typeof e)return!1;var t=f(e,"lastIndex");if(!(t&&r(t,"value")))return!1;try{o(e,a)}catch(n){return n===i}}:function(e){return!(!e||"object"!==typeof e&&"function"!==typeof e)&&"[object RegExp]"===c(e)}},18552:function(e,t,n){var r=n(10852)(n(55639),"DataView");e.exports=r},1989:function(e,t,n){var r=n(51789),o=n(80401),i=n(57667),a=n(21327),s=n(81866);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},96425:function(e,t,n){var r=n(3118),o=n(9435);function i(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},38407:function(e,t,n){var r=n(27040),o=n(14125),i=n(82117),a=n(67518),s=n(13399);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},7548:function(e,t,n){var r=n(3118),o=n(9435);function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},57071:function(e,t,n){var r=n(10852)(n(55639),"Map");e.exports=r},83369:function(e,t,n){var r=n(24785),o=n(11285),i=n(96e3),a=n(49916),s=n(95265);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},53818:function(e,t,n){var r=n(10852)(n(55639),"Promise");e.exports=r},58525:function(e,t,n){var r=n(10852)(n(55639),"Set");e.exports=r},88668:function(e,t,n){var r=n(83369),o=n(90619),i=n(72385);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},46384:function(e,t,n){var r=n(38407),o=n(37465),i=n(63779),a=n(67599),s=n(44758),u=n(34309);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=s,l.prototype.set=u,e.exports=l},62705:function(e,t,n){var r=n(55639).Symbol;e.exports=r},11149:function(e,t,n){var r=n(55639).Uint8Array;e.exports=r},70577:function(e,t,n){var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:function(e){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},77412:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},47443:function(e,t,n){var r=n(42118);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},1196:function(e){e.exports=function(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}},14636:function(e,t,n){var r=n(22545),o=n(35694),i=n(1469),a=n(44144),s=n(65776),u=n(36719),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),c=!n&&o(e),f=!n&&!c&&a(e),d=!n&&!c&&!f&&u(e),p=n||c||f||d,h=p?r(e.length,String):[],g=h.length;for(var v in e)!t&&!l.call(e,v)||p&&("length"==v||f&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,g))||h.push(v);return h}},29932:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},62488:function(e){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},86556:function(e,t,n){var r=n(89465),o=n(77813);e.exports=function(e,t,n){(void 0!==n&&!o(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},34865:function(e,t,n){var r=n(89465),o=n(77813),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:function(e,t,n){var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},44037:function(e,t,n){var r=n(98363),o=n(3674);e.exports=function(e,t){return e&&r(t,o(t),e)}},63886:function(e,t,n){var r=n(98363),o=n(81704);e.exports=function(e,t){return e&&r(t,o(t),e)}},89465:function(e,t,n){var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},85990:function(e,t,n){var r=n(46384),o=n(77412),i=n(34865),a=n(44037),s=n(63886),u=n(64626),l=n(278),c=n(18805),f=n(1911),d=n(58234),p=n(46904),h=n(64160),g=n(43824),v=n(29148),m=n(38517),y=n(1469),b=n(44144),w=n(56688),x=n(13218),_=n(72928),S=n(3674),O=n(81704),C="[object Arguments]",E="[object Function]",A="[object Object]",M={};M[C]=M["[object Array]"]=M["[object ArrayBuffer]"]=M["[object DataView]"]=M["[object Boolean]"]=M["[object Date]"]=M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Map]"]=M["[object Number]"]=M[A]=M["[object RegExp]"]=M["[object Set]"]=M["[object String]"]=M["[object Symbol]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M["[object Error]"]=M[E]=M["[object WeakMap]"]=!1,e.exports=function e(t,n,k,P,R,T){var I,B=1&n,D=2&n,j=4&n;if(k&&(I=R?k(t,P,R,T):k(t)),void 0!==I)return I;if(!x(t))return t;var L=y(t);if(L){if(I=g(t),!B)return l(t,I)}else{var Z=h(t),N=Z==E||"[object GeneratorFunction]"==Z;if(b(t))return u(t,B);if(Z==A||Z==C||N&&!R){if(I=D||N?{}:m(t),!B)return D?f(t,s(I,t)):c(t,a(I,t))}else{if(!M[Z])return R?t:{};I=v(t,Z,B)}}T||(T=new r);var F=T.get(t);if(F)return F;T.set(t,I),_(t)?t.forEach((function(r){I.add(e(r,n,k,r,t,T))})):w(t)&&t.forEach((function(r,o){I.set(o,e(r,n,k,o,t,T))}));var H=L?void 0:(j?D?p:d:D?O:S)(t);return o(H||t,(function(r,o){H&&(r=t[o=r]),i(I,o,e(r,n,k,o,t,T))})),I}},3118:function(e,t,n){var r=n(13218),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},20731:function(e,t,n){var r=n(88668),o=n(47443),i=n(1196),a=n(29932),s=n(7518),u=n(74757);e.exports=function(e,t,n,l){var c=-1,f=o,d=!0,p=e.length,h=[],g=t.length;if(!p)return h;n&&(t=a(t,s(n))),l?(f=i,d=!1):t.length>=200&&(f=u,d=!1,t=new r(t));e:for(;++c<p;){var v=e[c],m=null==n?v:n(v);if(v=l||0!==v?v:0,d&&m===m){for(var y=g;y--;)if(t[y]===m)continue e;h.push(v)}else f(t,m,l)||h.push(v)}return h}},41848:function(e){e.exports=function(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}},21078:function(e,t,n){var r=n(62488),o=n(37285);e.exports=function e(t,n,i,a,s){var u=-1,l=t.length;for(i||(i=o),s||(s=[]);++u<l;){var c=t[u];n>0&&i(c)?n>1?e(c,n-1,i,a,s):r(s,c):a||(s[s.length]=c)}return s}},28483:function(e,t,n){var r=n(25063)();e.exports=r},97786:function(e,t,n){var r=n(71811),o=n(40327);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},68866:function(e,t,n){var r=n(62488),o=n(1469);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},44239:function(e,t,n){var r=n(62705),o=n(89607),i=n(2333),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},42118:function(e,t,n){var r=n(41848),o=n(62722),i=n(42351);e.exports=function(e,t,n){return t===t?i(e,t,n):r(e,o,n)}},9454:function(e,t,n){var r=n(44239),o=n(37005);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},25588:function(e,t,n){var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Map]"==r(e)}},62722:function(e){e.exports=function(e){return e!==e}},28458:function(e,t,n){var r=n(23560),o=n(15346),i=n(13218),a=n(80346),s=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,f=l.hasOwnProperty,d=RegExp("^"+c.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?d:s).test(a(e))}},29221:function(e,t,n){var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Set]"==r(e)}},38749:function(e,t,n){var r=n(44239),o=n(41780),i=n(37005),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},280:function(e,t,n){var r=n(25726),o=n(86916),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:function(e,t,n){var r=n(13218),o=n(25726),i=n(33498),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=o(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},9435:function(e){e.exports=function(){}},42980:function(e,t,n){var r=n(46384),o=n(86556),i=n(28483),a=n(59783),s=n(13218),u=n(81704),l=n(36390);e.exports=function e(t,n,c,f,d){t!==n&&i(n,(function(i,u){if(d||(d=new r),s(i))a(t,n,u,c,e,f,d);else{var p=f?f(l(t,u),i,u+"",t,n,d):void 0;void 0===p&&(p=i),o(t,u,p)}}),u)}},59783:function(e,t,n){var r=n(86556),o=n(64626),i=n(77133),a=n(278),s=n(38517),u=n(35694),l=n(1469),c=n(29246),f=n(44144),d=n(23560),p=n(13218),h=n(68630),g=n(36719),v=n(36390),m=n(59881);e.exports=function(e,t,n,y,b,w,x){var _=v(e,n),S=v(t,n),O=x.get(S);if(O)r(e,n,O);else{var C=w?w(_,S,n+"",e,t,x):void 0,E=void 0===C;if(E){var A=l(S),M=!A&&f(S),k=!A&&!M&&g(S);C=S,A||M||k?l(_)?C=_:c(_)?C=a(_):M?(E=!1,C=o(S,!0)):k?(E=!1,C=i(S,!0)):C=[]:h(S)||u(S)?(C=_,u(_)?C=m(_):p(_)&&!d(_)||(C=s(S))):E=!1}E&&(x.set(S,C),b(C,S,y,w,x),x.delete(S)),r(e,n,C)}}},5976:function(e,t,n){var r=n(6557),o=n(45357),i=n(30061);e.exports=function(e,t){return i(o(e,t,r),e+"")}},56560:function(e,t,n){var r=n(75703),o=n(38777),i=n(6557),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},14259:function(e){e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}},22545:function(e){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:function(e,t,n){var r=n(62705),o=n(29932),i=n(1469),a=n(33448),s=r?r.prototype:void 0,u=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return u?u.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7518:function(e){e.exports=function(e){return function(t){return e(t)}}},57406:function(e,t,n){var r=n(71811),o=n(10928),i=n(40292),a=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=i(e,t))||delete e[a(o(t))]}},74757:function(e){e.exports=function(e,t){return e.has(t)}},71811:function(e,t,n){var r=n(1469),o=n(15403),i=n(55514),a=n(79833);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},74318:function(e,t,n){var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:function(e,t,n){e=n.nmd(e);var r=n(55639),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,a=i&&i.exports===o?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},57157:function(e,t,n){var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:function(e){var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:function(e,t,n){var r=n(62705),o=r?r.prototype:void 0,i=o?o.valueOf:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},77133:function(e,t,n){var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:function(e){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:function(e,t,n){var r=n(34865),o=n(89465);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var l=t[s],c=i?i(n[l],e[l],l,n,e):void 0;void 0===c&&(c=e[l]),a?o(n,l,c):r(n,l,c)}return n}},18805:function(e,t,n){var r=n(98363),o=n(99551);e.exports=function(e,t){return r(e,o(e),t)}},1911:function(e,t,n){var r=n(98363),o=n(51442);e.exports=function(e,t){return r(e,o(e),t)}},14429:function(e,t,n){var r=n(55639)["__core-js_shared__"];e.exports=r},21463:function(e,t,n){var r=n(5976),o=n(16612);e.exports=function(e){return r((function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var u=n[r];u&&e(t,u,r,a)}return t}))}},25063:function(e){e.exports=function(e){return function(t,n,r){for(var o=-1,i=Object(t),a=r(t),s=a.length;s--;){var u=a[e?s:++o];if(!1===n(i[u],u,i))break}return t}}},23468:function(e,t,n){var r=n(7548),o=n(99021),i=n(66833),a=n(97658),s=n(1469),u=n(86528);e.exports=function(e){return o((function(t){var n=t.length,o=n,l=r.prototype.thru;for(e&&t.reverse();o--;){var c=t[o];if("function"!=typeof c)throw new TypeError("Expected a function");if(l&&!f&&"wrapper"==a(c))var f=new r([],!0)}for(o=f?o:n;++o<n;){c=t[o];var d=a(c),p="wrapper"==d?i(c):void 0;f=p&&u(p[0])&&424==p[1]&&!p[4].length&&1==p[9]?f[a(p[0])].apply(f,p[3]):1==c.length&&u(c)?f[d]():f.thru(c)}return function(){var e=arguments,r=e[0];if(f&&1==e.length&&s(r))return f.plant(r).value();for(var o=0,i=n?t[o].apply(this,e):r;++o<n;)i=t[o].call(this,i);return i}}))}},60696:function(e,t,n){var r=n(68630);e.exports=function(e){return r(e)?void 0:e}},38777:function(e,t,n){var r=n(10852),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=o},99021:function(e,t,n){var r=n(85564),o=n(45357),i=n(30061);e.exports=function(e){return i(o(e,void 0,r),e+"")}},31957:function(e,t,n){var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:function(e,t,n){var r=n(68866),o=n(99551),i=n(3674);e.exports=function(e){return r(e,i,o)}},46904:function(e,t,n){var r=n(68866),o=n(51442),i=n(81704);e.exports=function(e){return r(e,i,o)}},66833:function(e,t,n){var r=n(20546),o=n(50308),i=r?function(e){return r.get(e)}:o;e.exports=i},97658:function(e,t,n){var r=n(52060),o=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t=e.name+"",n=r[t],i=o.call(r,t)?n.length:0;i--;){var a=n[i],s=a.func;if(null==s||s==e)return a.name}return t}},45050:function(e,t,n){var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},10852:function(e,t,n){var r=n(28458),o=n(47801);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},85924:function(e,t,n){var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:function(e,t,n){var r=n(62705),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(u){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},99551:function(e,t,n){var r=n(34963),o=n(70479),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return i.call(e,t)})))}:o;e.exports=s},51442:function(e,t,n){var r=n(62488),o=n(85924),i=n(99551),a=n(70479),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},64160:function(e,t,n){var r=n(18552),o=n(57071),i=n(53818),a=n(58525),s=n(70577),u=n(44239),l=n(80346),c="[object Map]",f="[object Promise]",d="[object Set]",p="[object WeakMap]",h="[object DataView]",g=l(r),v=l(o),m=l(i),y=l(a),b=l(s),w=u;(r&&w(new r(new ArrayBuffer(1)))!=h||o&&w(new o)!=c||i&&w(i.resolve())!=f||a&&w(new a)!=d||s&&w(new s)!=p)&&(w=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case g:return h;case v:return c;case m:return f;case y:return d;case b:return p}return t}),e.exports=w},47801:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},51789:function(e,t,n){var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:function(e,t,n){var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},21327:function(e,t,n){var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},81866:function(e,t,n){var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:function(e){var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:function(e,t,n){var r=n(74318),o=n(57157),i=n(93147),a=n(40419),s=n(77133);e.exports=function(e,t,n){var u=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new u(+e);case"[object DataView]":return o(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":case"[object Set]":return new u;case"[object Number]":case"[object String]":return new u(e);case"[object RegExp]":return i(e);case"[object Symbol]":return a(e)}}},38517:function(e,t,n){var r=n(3118),o=n(85924),i=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:r(o(e))}},37285:function(e,t,n){var r=n(62705),o=n(35694),i=n(1469),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},65776:function(e){var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},16612:function(e,t,n){var r=n(77813),o=n(98612),i=n(65776),a=n(13218);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&i(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},15403:function(e,t,n){var r=n(1469),o=n(33448),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},37019:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},86528:function(e,t,n){var r=n(96425),o=n(66833),i=n(97658),a=n(8111);e.exports=function(e){var t=i(e),n=a[t];if("function"!=typeof n||!(t in r.prototype))return!1;if(e===n)return!0;var s=o(n);return!!s&&e===s[0]}},15346:function(e,t,n){var r=n(14429),o=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!o&&o in e}},25726:function(e){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},27040:function(e){e.exports=function(){this.__data__=[],this.size=0}},14125:function(e,t,n){var r=n(18470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},82117:function(e,t,n){var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:function(e,t,n){var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},13399:function(e,t,n){var r=n(18470);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},24785:function(e,t,n){var r=n(1989),o=n(38407),i=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},11285:function(e,t,n){var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:function(e,t,n){var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:function(e,t,n){var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:function(e,t,n){var r=n(45050);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},24523:function(e,t,n){var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},20546:function(e,t,n){var r=n(70577),o=r&&new r;e.exports=o},94536:function(e,t,n){var r=n(10852)(Object,"create");e.exports=r},86916:function(e,t,n){var r=n(5569)(Object.keys,Object);e.exports=r},33498:function(e){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:function(e,t,n){e=n.nmd(e);var r=n(31957),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},2333:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},45357:function(e,t,n){var r=n(96874),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),u=Array(s);++a<s;)u[a]=i[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=i[a];return l[t]=n(u),r(e,this,l)}}},40292:function(e,t,n){var r=n(97786),o=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},52060:function(e){e.exports={}},55639:function(e,t,n){var r=n(31957),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},36390:function(e){e.exports=function(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}},90619:function(e){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:function(e){e.exports=function(e){return this.__data__.has(e)}},30061:function(e,t,n){var r=n(56560),o=n(21275)(r);e.exports=o},21275:function(e){var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),i=16-(o-r);if(r=o,i>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},37465:function(e,t,n){var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:function(e){e.exports=function(e){return this.__data__.get(e)}},44758:function(e){e.exports=function(e){return this.__data__.has(e)}},34309:function(e,t,n){var r=n(38407),o=n(57071),i=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},42351:function(e){e.exports=function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}},55514:function(e,t,n){var r=n(24523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)})),t}));e.exports=a},40327:function(e,t,n){var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},80346:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},21913:function(e,t,n){var r=n(96425),o=n(7548),i=n(278);e.exports=function(e){if(e instanceof r)return e.clone();var t=new o(e.__wrapped__,e.__chain__);return t.__actions__=i(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}},75703:function(e){e.exports=function(e){return function(){return e}}},91966:function(e,t,n){var r=n(20731),o=n(21078),i=n(5976),a=n(29246),s=i((function(e,t){return a(e)?r(e,o(t,1,a,!0)):[]}));e.exports=s},77813:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},85564:function(e,t,n){var r=n(21078);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},59242:function(e,t,n){var r=n(23468)();e.exports=r},6557:function(e){e.exports=function(e){return e}},35694:function(e,t,n){var r=n(9454),o=n(37005),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},1469:function(e){var t=Array.isArray;e.exports=t},98612:function(e,t,n){var r=n(23560),o=n(41780);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},29246:function(e,t,n){var r=n(98612),o=n(37005);e.exports=function(e){return o(e)&&r(e)}},44144:function(e,t,n){e=n.nmd(e);var r=n(55639),o=n(95062),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u},23560:function(e,t,n){var r=n(44239),o=n(13218);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:function(e,t,n){var r=n(25588),o=n(7518),i=n(31167),a=i&&i.isMap,s=a?o(a):r;e.exports=s},13218:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},68630:function(e,t,n){var r=n(44239),o=n(85924),i=n(37005),a=Function.prototype,s=Object.prototype,u=a.toString,l=s.hasOwnProperty,c=u.call(Object);e.exports=function(e){if(!i(e)||"[object Object]"!=r(e))return!1;var t=o(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==c}},72928:function(e,t,n){var r=n(29221),o=n(7518),i=n(31167),a=i&&i.isSet,s=a?o(a):r;e.exports=s},33448:function(e,t,n){var r=n(44239),o=n(37005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},36719:function(e,t,n){var r=n(38749),o=n(7518),i=n(31167),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},3674:function(e,t,n){var r=n(14636),o=n(280),i=n(98612);e.exports=function(e){return i(e)?r(e):o(e)}},81704:function(e,t,n){var r=n(14636),o=n(10313),i=n(98612);e.exports=function(e){return i(e)?r(e,!0):o(e)}},10928:function(e){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},88306:function(e,t,n){var r=n(83369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},82492:function(e,t,n){var r=n(42980),o=n(21463)((function(e,t,n){r(e,t,n)}));e.exports=o},50308:function(e){e.exports=function(){}},57557:function(e,t,n){var r=n(29932),o=n(85990),i=n(57406),a=n(71811),s=n(98363),u=n(60696),l=n(99021),c=n(46904),f=l((function(e,t){var n={};if(null==e)return n;var l=!1;t=r(t,(function(t){return t=a(t,e),l||(l=t.length>1),t})),s(e,c(e),n),l&&(n=o(n,7,u));for(var f=t.length;f--;)i(n,t[f]);return n}));e.exports=f},70479:function(e){e.exports=function(){return[]}},95062:function(e){e.exports=function(){return!1}},59881:function(e,t,n){var r=n(98363),o=n(81704);e.exports=function(e){return r(e,o(e))}},79833:function(e,t,n){var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},8111:function(e,t,n){var r=n(96425),o=n(7548),i=n(9435),a=n(1469),s=n(37005),u=n(21913),l=Object.prototype.hasOwnProperty;function c(e){if(s(e)&&!a(e)&&!(e instanceof r)){if(e instanceof o)return e;if(l.call(e,"__wrapped__"))return u(e)}return new o(e)}c.prototype=i.prototype,c.prototype.constructor=c,e.exports=c},2568:function(e,t,n){!function(){var t=n(71012),r=n(40487).utf8,o=n(48738),i=n(40487).bin,a=function(e,n){e.constructor==String?e=n&&"binary"===n.encoding?i.stringToBytes(e):r.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var s=t.bytesToWords(e),u=8*e.length,l=1732584193,c=-271733879,f=-1732584194,d=271733878,p=0;p<s.length;p++)s[p]=16711935&(s[p]<<8|s[p]>>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[u>>>5]|=128<<u%32,s[14+(u+64>>>9<<4)]=u;var h=a._ff,g=a._gg,v=a._hh,m=a._ii;for(p=0;p<s.length;p+=16){var y=l,b=c,w=f,x=d;l=h(l,c,f,d,s[p+0],7,-680876936),d=h(d,l,c,f,s[p+1],12,-389564586),f=h(f,d,l,c,s[p+2],17,606105819),c=h(c,f,d,l,s[p+3],22,-1044525330),l=h(l,c,f,d,s[p+4],7,-176418897),d=h(d,l,c,f,s[p+5],12,1200080426),f=h(f,d,l,c,s[p+6],17,-1473231341),c=h(c,f,d,l,s[p+7],22,-45705983),l=h(l,c,f,d,s[p+8],7,1770035416),d=h(d,l,c,f,s[p+9],12,-1958414417),f=h(f,d,l,c,s[p+10],17,-42063),c=h(c,f,d,l,s[p+11],22,-1990404162),l=h(l,c,f,d,s[p+12],7,1804603682),d=h(d,l,c,f,s[p+13],12,-40341101),f=h(f,d,l,c,s[p+14],17,-1502002290),l=g(l,c=h(c,f,d,l,s[p+15],22,1236535329),f,d,s[p+1],5,-165796510),d=g(d,l,c,f,s[p+6],9,-1069501632),f=g(f,d,l,c,s[p+11],14,643717713),c=g(c,f,d,l,s[p+0],20,-373897302),l=g(l,c,f,d,s[p+5],5,-701558691),d=g(d,l,c,f,s[p+10],9,38016083),f=g(f,d,l,c,s[p+15],14,-660478335),c=g(c,f,d,l,s[p+4],20,-405537848),l=g(l,c,f,d,s[p+9],5,568446438),d=g(d,l,c,f,s[p+14],9,-1019803690),f=g(f,d,l,c,s[p+3],14,-187363961),c=g(c,f,d,l,s[p+8],20,1163531501),l=g(l,c,f,d,s[p+13],5,-1444681467),d=g(d,l,c,f,s[p+2],9,-51403784),f=g(f,d,l,c,s[p+7],14,1735328473),l=v(l,c=g(c,f,d,l,s[p+12],20,-1926607734),f,d,s[p+5],4,-378558),d=v(d,l,c,f,s[p+8],11,-2022574463),f=v(f,d,l,c,s[p+11],16,1839030562),c=v(c,f,d,l,s[p+14],23,-35309556),l=v(l,c,f,d,s[p+1],4,-1530992060),d=v(d,l,c,f,s[p+4],11,1272893353),f=v(f,d,l,c,s[p+7],16,-155497632),c=v(c,f,d,l,s[p+10],23,-1094730640),l=v(l,c,f,d,s[p+13],4,681279174),d=v(d,l,c,f,s[p+0],11,-358537222),f=v(f,d,l,c,s[p+3],16,-722521979),c=v(c,f,d,l,s[p+6],23,76029189),l=v(l,c,f,d,s[p+9],4,-640364487),d=v(d,l,c,f,s[p+12],11,-421815835),f=v(f,d,l,c,s[p+15],16,530742520),l=m(l,c=v(c,f,d,l,s[p+2],23,-995338651),f,d,s[p+0],6,-198630844),d=m(d,l,c,f,s[p+7],10,1126891415),f=m(f,d,l,c,s[p+14],15,-1416354905),c=m(c,f,d,l,s[p+5],21,-57434055),l=m(l,c,f,d,s[p+12],6,1700485571),d=m(d,l,c,f,s[p+3],10,-1894986606),f=m(f,d,l,c,s[p+10],15,-1051523),c=m(c,f,d,l,s[p+1],21,-2054922799),l=m(l,c,f,d,s[p+8],6,1873313359),d=m(d,l,c,f,s[p+15],10,-30611744),f=m(f,d,l,c,s[p+6],15,-1560198380),c=m(c,f,d,l,s[p+13],21,1309151649),l=m(l,c,f,d,s[p+4],6,-145523070),d=m(d,l,c,f,s[p+11],10,-1120210379),f=m(f,d,l,c,s[p+2],15,718787259),c=m(c,f,d,l,s[p+9],21,-343485551),l=l+y>>>0,c=c+b>>>0,f=f+w>>>0,d=d+x>>>0}return t.endian([l,c,f,d])};a._ff=function(e,t,n,r,o,i,a){var s=e+(t&n|~t&r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._gg=function(e,t,n,r,o,i,a){var s=e+(t&r|n&~r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._hh=function(e,t,n,r,o,i,a){var s=e+(t^n^r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._ii=function(e,t,n,r,o,i,a){var s=e+(n^(t|~r))+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._blocksize=16,a._digestsize=16,e.exports=function(e,n){if(void 0===e||null===e)throw new Error("Illegal argument "+e);var r=t.wordsToBytes(a(e,n));return n&&n.asBytes?r:n&&n.asString?i.bytesToString(r):t.bytesToHex(r)}}()},27418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var i,a,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in i=Object(arguments[u]))n.call(i,l)&&(s[l]=i[l]);if(t){a=t(i);for(var c=0;c<a.length;c++)r.call(i,a[c])&&(s[a[c]]=i[a[c]])}}return s}},24244:function(e){"use strict";var t=function(e){return e!==e};e.exports=function(e,n){return 0===e&&0===n?1/e===1/n:e===n||!(!t(e)||!t(n))}},20609:function(e,t,n){"use strict";var r=n(17446),o=n(55559),i=n(24244),a=n(75624),s=n(52281),u=o(a(),Object);r(u,{getPolyfill:a,implementation:i,shim:s}),e.exports=u},17446:function(e,t,n){"use strict";var r=n(82215),o="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,u=n(31044)(),l=s&&u,c=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if("function"!==typeof(o=r)||"[object Function]"!==i.call(o)||!r())return;var o;l?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n},f=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s<i.length;s+=1)c(e,i[s],t[i[s]],n[i[s]])};f.supportsDescriptors=!!l,e.exports=f},75624:function(e,t,n){"use strict";var r=n(24244);e.exports=function(){return"function"===typeof Object.is?Object.is:r}},52281:function(e,t,n){"use strict";var r=n(75624),o=n(17446);e.exports=function(){var e=r();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},18987:function(e,t,n){"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=n(21414),s=Object.prototype.propertyIsEnumerable,u=!s.call({toString:null},"toString"),l=s.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],f=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},p=function(){if("undefined"===typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"===typeof window[e])try{f(window[e])}catch(t){return!0}}catch(t){return!0}return!1}();r=function(e){var t=null!==e&&"object"===typeof e,n="[object Function]"===i.call(e),r=a(e),s=t&&"[object String]"===i.call(e),d=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var h=l&&n;if(s&&e.length>0&&!o.call(e,0))for(var g=0;g<e.length;++g)d.push(String(g));if(r&&e.length>0)for(var v=0;v<e.length;++v)d.push(String(v));else for(var m in e)h&&"prototype"===m||!o.call(e,m)||d.push(String(m));if(u)for(var y=function(e){if("undefined"===typeof window||!p)return f(e);try{return f(e)}catch(t){return!1}}(e),b=0;b<c.length;++b)y&&"constructor"===c[b]||!o.call(e,c[b])||d.push(c[b]);return d}}e.exports=r},82215:function(e,t,n){"use strict";var r=Array.prototype.slice,o=n(21414),i=Object.keys,a=i?function(e){return i(e)}:n(18987),s=Object.keys;a.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?s(r.call(e)):s(e)})}else Object.keys=a;return Object.keys||a},e.exports=a},21414:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},5598:function(e,t){"use strict";function n(e){var t="function"===typeof Map?new Map:void 0;return n=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,a)}function a(){return r(e,arguments,i(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),o(a,e)},n(e)}function r(e,t,n){return r=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&o(i,n.prototype),i},r.apply(null,arguments)}function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}t.__esModule=!0,t.default=void 0;var a=function(e){var t,n;function r(t){return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this)}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,o(t,n),r}(n(Error));t.default=a,e.exports=t.default},65583:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n=l(e),i=n.match(s);if(i&&!i.every((function(e){return e===i[0]})))throw new o.default(41);return""+function(e,t){var n,i=function(e){var t={};return t.symbols=e?a({},r.default.symbols,e.symbols):a({},r.default.symbols),t}(t),s=[i.symbols["("].prefix],l=[],c=new RegExp("\\d+(?:\\.\\d+)?|"+Object.keys(i.symbols).map((function(e){return i.symbols[e]})).sort((function(e,t){return t.symbol.length-e.symbol.length})).map((function(e){return e.regSymbol})).join("|")+"|(\\S)","g");c.lastIndex=0;var f=!1;do{var d=(n=c.exec(e))||[")",void 0],p=d[0],h=d[1],g=i.symbols[p],v=g&&!g.prefix&&!g.func,m=!g||!g.postfix&&!g.infix;if(h||(f?m:v))throw new o.default(37,n?n.index:e.length,e);if(f){var y=g.postfix||g.infix;do{var b=s[s.length-1];if((y.precedence-b.precedence||b.rightToLeft)>0)break}while(u(s,l));f="postfix"===y.notation,")"!==y.symbol&&(s.push(y),f&&u(s,l))}else if(g){if(s.push(g.prefix||g.func),g.func&&(!(n=c.exec(e))||"("!==n[0]))throw new o.default(38,n?n.index:e.length,e)}else l.push(+p),f=!0}while(n&&s.length);if(s.length)throw new o.default(39,n?n.index:e.length,e);if(n)throw new o.default(40,n?n.index:e.length,e);return l.pop()}(l(n.replace(s,"")),t)+(i?l(i[0]):"")};var r=i(n(43975)),o=i(n(5598));function i(e){return e&&e.__esModule?e:{default:e}}function a(){return a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}var s=/((?!\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\D|$)|ged|darg?|nrut)/g;function u(e,t){var n,r=e.pop();return t.push(r.f.apply(r,(n=[]).concat.apply(n,t.splice(-r.argCount)))),r.precedence}function l(e){return e.split("").reverse().join("")}e.exports=t.default},43975:function(e,t){"use strict";function n(){var e;return(e=arguments.length-1)<0||arguments.length<=e?void 0:arguments[e]}t.__esModule=!0,t.default=void 0;var r={symbols:{"*":{infix:{symbol:"*",f:function(e,t){return e*t},notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"*",regSymbol:"\\*"},"/":{infix:{symbol:"/",f:function(e,t){return e/t},notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"/",regSymbol:"/"},"+":{infix:{symbol:"+",f:function(e,t){return e+t},notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"+",f:n,notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"+",regSymbol:"\\+"},"-":{infix:{symbol:"-",f:function(e,t){return e-t},notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"-",f:function(e){return-e},notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"-",regSymbol:"-"},",":{infix:{symbol:",",f:function(){return Array.of.apply(Array,arguments)},notation:"infix",precedence:1,rightToLeft:0,argCount:2},symbol:",",regSymbol:","},"(":{prefix:{symbol:"(",f:n,notation:"prefix",precedence:0,rightToLeft:0,argCount:1},symbol:"(",regSymbol:"\\("},")":{postfix:{symbol:")",f:void 0,notation:"postfix",precedence:0,rightToLeft:0,argCount:1},symbol:")",regSymbol:"\\)"},min:{func:{symbol:"min",f:function(){return Math.min.apply(Math,arguments)},notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"min",regSymbol:"min\\b"},max:{func:{symbol:"max",f:function(){return Math.max.apply(Math,arguments)},notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"max",regSymbol:"max\\b"}}},o=r;t.default=o,e.exports=t.default},92703:function(e,t,n){"use strict";var r=n(50414);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},45697:function(e,t,n){e.exports=n(92703)()},50414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},17563:function(e,t,n){"use strict";const r=n(70610),o=n(44020),i=n(80500),a=n(92806),s=Symbol("encodeFragmentIdentifier");function u(e){if("string"!==typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e,t){return t.decode?o(e):e}function f(e){return Array.isArray(e)?e.sort():"object"===typeof e?f(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function p(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function h(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"===typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function g(e,t){u((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const o="string"===typeof n&&n.includes(e.arrayFormatSeparator),i="string"===typeof n&&!o&&c(n,e).includes(e.arrayFormatSeparator);n=i?c(n,e):n;const a=o||i?n.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===n?n:c(n,e);r[t]=a};case"bracket-separator":return(t,n,r)=>{const o=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!o)return void(r[t]=n?c(n,e):n);const i=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],i):r[t]=i};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!==typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const o of e.split("&")){if(""===o)continue;let[e,a]=i(t.decode?o.replace(/\+/g," "):o,"=");a=void 0===a?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:c(a,t),n(c(e,t),a,r)}for(const o of Object.keys(r)){const e=r[o];if("object"===typeof e&&null!==e)for(const n of Object.keys(e))e[n]=h(e[n],t);else r[o]=h(e,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"===typeof n&&!Array.isArray(n)?e[t]=f(n):e[t]=n,e}),Object.create(null))}t.extract=p,t.parse=g,t.stringify=(e,t)=>{if(!e)return"";u((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>{return t.skipNull&&(null===(r=e[n])||void 0===r)||t.skipEmptyString&&""===e[n];var r},r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const o=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",o,"]"].join("")]:[...n,[l(t,e),"[",l(o,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"colon-list-separator":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),":list="].join("")]:[...n,[l(t,e),":list=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,o)=>void 0===o||e.skipNull&&null===o||e.skipEmptyString&&""===o?r:(o=null===o?"":o,0===r.length?[[l(n,e),t,l(o,e)].join("")]:[[r,l(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),o={};for(const a of Object.keys(e))n(a)||(o[a]=e[a]);const i=Object.keys(o);return!1!==t.sort&&i.sort(t.sort),i.map((n=>{const o=e[n];return void 0===o?"":null===o?l(n,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":o.reduce(r(n),[]).join("&"):l(n,t)+"="+l(o,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=i(e,"#");return Object.assign({url:n.split("?")[0]||"",query:g(p(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:c(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0,[s]:!0},n);const r=d(e.url).split("?")[0]||"",o=t.extract(e.url),i=t.parse(o,{sort:!1}),a=Object.assign(i,e.query);let u=t.stringify(a,n);u&&(u=`?${u}`);let c=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(c=`#${n[s]?l(e.fragmentIdentifier,n):e.fragmentIdentifier}`),`${r}${u}${c}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0,[s]:!1},r);const{url:o,query:i,fragmentIdentifier:u}=t.parseUrl(e,r);return t.stringifyUrl({url:o,query:a(i,n),fragmentIdentifier:u},r)},t.exclude=(e,n,r)=>{const o=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,o,r)}},69921:function(e,t){"use strict";var n,r=Symbol.for("react.element"),o=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.server_context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen");function m(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case i:case s:case a:case d:case p:return e;default:switch(e=e&&e.$$typeof){case c:case l:case f:case g:case h:case u:return e;default:return t}}case o:return t}}}n=Symbol.for("react.module.reference"),t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===s||e===a||e===d||e===p||e===v||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===u||e.$$typeof===l||e.$$typeof===f||e.$$typeof===n||void 0!==e.getModuleId)},t.typeOf=m},59864:function(e,t,n){"use strict";e.exports=n(69921)},88359:function(e,t){"use strict";var n=60103,r=60106,o=60107,i=60108,a=60114,s=60109,u=60110,l=60112,c=60113,f=60120,d=60115,p=60116,h=60121,g=60122,v=60117,m=60129,y=60131;if("function"===typeof Symbol&&Symbol.for){var b=Symbol.for;n=b("react.element"),r=b("react.portal"),o=b("react.fragment"),i=b("react.strict_mode"),a=b("react.profiler"),s=b("react.provider"),u=b("react.context"),l=b("react.forward_ref"),c=b("react.suspense"),f=b("react.suspense_list"),d=b("react.memo"),p=b("react.lazy"),h=b("react.block"),g=b("react.server.block"),v=b("react.fundamental"),m=b("react.debug_trace_mode"),y=b("react.legacy_hidden")}function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case o:case a:case i:case c:case f:return e;default:switch(e=e&&e.$$typeof){case u:case l:case p:case d:case s:return e;default:return t}}case r:return t}}}t.isContextConsumer=function(e){return w(e)===u}},72973:function(e,t,n){"use strict";e.exports=n(88359)},79655:function(e,t,n){"use strict";n.d(t,{M:function(){return c},lr:function(){return v},rU:function(){return p}});var r=n(67294),o=n(89250),i=n(12599);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}function s(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function u(e){return void 0===e&&(e=""),new URLSearchParams("string"===typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}const l=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset"];function c(e){let{basename:t,children:n,future:i,history:a}=e,[s,u]=r.useState({action:a.action,location:a.location}),{v7_startTransition:l}=i||{},c=r.useCallback((e=>{l&&o.XS?(0,o.XS)((()=>u(e))):u(e)}),[u,l]);return r.useLayoutEffect((()=>a.listen(c)),[a,c]),r.createElement(o.F0,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a})}const f="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,d=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,p=r.forwardRef((function(e,t){let n,{onClick:u,relative:c,reloadDocument:p,replace:h,state:g,target:v,to:m,preventScrollReset:y}=e,b=s(e,l),{basename:w}=r.useContext(o.Us),x=!1;if("string"===typeof m&&d.test(m)&&(n=m,f))try{let e=new URL(window.location.href),t=m.startsWith("//")?new URL(e.protocol+m):new URL(m),n=(0,i.Zn)(t.pathname,w);t.origin===e.origin&&null!=n?m=n+t.search+t.hash:x=!0}catch(O){}let _=(0,o.oQ)(m,{relative:c}),S=function(e,t){let{target:n,replace:a,state:s,preventScrollReset:u,relative:l}=void 0===t?{}:t,c=(0,o.s0)(),f=(0,o.TH)(),d=(0,o.WU)(e,{relative:l});return r.useCallback((t=>{if(function(e,t){return 0===e.button&&(!t||"_self"===t)&&!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)}(t,n)){t.preventDefault();let n=void 0!==a?a:(0,i.Ep)(f)===(0,i.Ep)(d);c(e,{replace:n,state:s,preventScrollReset:u,relative:l})}}),[f,c,d,a,s,n,e,u,l])}(m,{replace:h,state:g,target:v,preventScrollReset:y,relative:c});return r.createElement("a",a({},b,{href:n||_,onClick:x||p?u:function(e){u&&u(e),e.defaultPrevented||S(e)},ref:t,target:v}))}));var h,g;function v(e){let t=r.useRef(u(e)),n=r.useRef(!1),i=(0,o.TH)(),a=r.useMemo((()=>function(e,t){let n=u(e);if(t)for(let r of t.keys())n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}));return n}(i.search,n.current?null:t.current)),[i.search]),s=(0,o.s0)(),l=r.useCallback(((e,t)=>{const r=u("function"===typeof e?e(a):e);n.current=!0,s("?"+r,t)}),[s,a]);return[a,l]}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmitImpl="useSubmitImpl",e.UseFetcher="useFetcher"})(h||(h={})),function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(g||(g={}))},89250:function(e,t,n){"use strict";var r;n.d(t,{AW:function(){return B},F0:function(){return D},Fg:function(){return I},TH:function(){return v},UO:function(){return w},Us:function(){return c},WU:function(){return x},XS:function(){return s},Z5:function(){return j},bS:function(){return m},oQ:function(){return h},s0:function(){return b}});var o=n(67294),i=n(12599);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}var s=(r||(r=n.t(o,2))).startTransition;const u=o.createContext(null);const l=o.createContext(null);const c=o.createContext(null);const f=o.createContext(null);const d=o.createContext({outlet:null,matches:[],isDataRoute:!1});const p=o.createContext(null);function h(e,t){let{relative:n}=void 0===t?{}:t;g()||(0,i.J0)(!1);let{basename:r,navigator:a}=o.useContext(c),{hash:s,pathname:u,search:l}=x(e,{relative:n}),f=u;return"/"!==r&&(f="/"===u?r:(0,i.RQ)([r,u])),a.createHref({pathname:f,search:l,hash:s})}function g(){return null!=o.useContext(f)}function v(){return g()||(0,i.J0)(!1),o.useContext(f).location}function m(e){g()||(0,i.J0)(!1);let{pathname:t}=v();return o.useMemo((()=>(0,i.LX)(e,t)),[t,e])}function y(e){o.useContext(c).static||o.useLayoutEffect(e)}function b(){let{isDataRoute:e}=o.useContext(d);return e?function(){let{router:e}=P(M.UseNavigateStable),t=T(k.UseNavigateStable),n=o.useRef(!1);return y((()=>{n.current=!0})),o.useCallback((function(r,o){void 0===o&&(o={}),n.current&&("number"===typeof r?e.navigate(r):e.navigate(r,a({fromRouteId:t},o)))}),[e,t])}():function(){g()||(0,i.J0)(!1);let e=o.useContext(u),{basename:t,navigator:n}=o.useContext(c),{matches:r}=o.useContext(d),{pathname:a}=v(),s=JSON.stringify((0,i.Zq)(r).map((e=>e.pathnameBase))),l=o.useRef(!1);return y((()=>{l.current=!0})),o.useCallback((function(r,o){if(void 0===o&&(o={}),!l.current)return;if("number"===typeof r)return void n.go(r);let u=(0,i.pC)(r,JSON.parse(s),a,"path"===o.relative);null==e&&"/"!==t&&(u.pathname="/"===u.pathname?t:(0,i.RQ)([t,u.pathname])),(o.replace?n.replace:n.push)(u,o.state,o)}),[t,n,s,a,e])}()}function w(){let{matches:e}=o.useContext(d),t=e[e.length-1];return t?t.params:{}}function x(e,t){let{relative:n}=void 0===t?{}:t,{matches:r}=o.useContext(d),{pathname:a}=v(),s=JSON.stringify((0,i.Zq)(r).map((e=>e.pathnameBase)));return o.useMemo((()=>(0,i.pC)(e,JSON.parse(s),a,"path"===n)),[e,s,a,n])}function _(e,t,n){g()||(0,i.J0)(!1);let{navigator:r}=o.useContext(c),{matches:s}=o.useContext(d),u=s[s.length-1],l=u?u.params:{},p=(u&&u.pathname,u?u.pathnameBase:"/");u&&u.route;let h,m=v();if(t){var y;let e="string"===typeof t?(0,i.cP)(t):t;"/"===p||(null==(y=e.pathname)?void 0:y.startsWith(p))||(0,i.J0)(!1),h=e}else h=m;let b=h.pathname||"/",w="/"===p?b:b.slice(p.length)||"/",x=(0,i.fp)(e,{pathname:w});let _=A(x&&x.map((e=>Object.assign({},e,{params:Object.assign({},l,e.params),pathname:(0,i.RQ)([p,r.encodeLocation?r.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?p:(0,i.RQ)([p,r.encodeLocation?r.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),s,n);return t&&_?o.createElement(f.Provider,{value:{location:a({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:i.aU.Pop}},_):_}function S(){let e=function(){var e;let t=o.useContext(p),n=R(k.UseRouteError),r=T(k.UseRouteError);if(t)return t;return null==(e=n.errors)?void 0:e[r]}(),t=(0,i.WK)(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:r};return o.createElement(o.Fragment,null,o.createElement("h2",null,"Unexpected Application Error!"),o.createElement("h3",{style:{fontStyle:"italic"}},t),n?o.createElement("pre",{style:a},n):null,null)}const O=o.createElement(S,null);class C extends o.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error||t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error?o.createElement(d.Provider,{value:this.props.routeContext},o.createElement(p.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function E(e){let{routeContext:t,match:n,children:r}=e,i=o.useContext(u);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),o.createElement(d.Provider,{value:t},r)}function A(e,t,n){var r;if(void 0===t&&(t=[]),void 0===n&&(n=null),null==e){var a;if(null==(a=n)||!a.errors)return null;e=n.matches}let s=e,u=null==(r=n)?void 0:r.errors;if(null!=u){let e=s.findIndex((e=>e.route.id&&(null==u?void 0:u[e.route.id])));e>=0||(0,i.J0)(!1),s=s.slice(0,Math.min(s.length,e+1))}return s.reduceRight(((e,r,i)=>{let a=r.route.id?null==u?void 0:u[r.route.id]:null,l=null;n&&(l=r.route.errorElement||O);let c=t.concat(s.slice(0,i+1)),f=()=>{let t;return t=a?l:r.route.Component?o.createElement(r.route.Component,null):r.route.element?r.route.element:e,o.createElement(E,{match:r,routeContext:{outlet:e,matches:c,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===i)?o.createElement(C,{location:n.location,revalidation:n.revalidation,component:l,error:a,children:f(),routeContext:{outlet:null,matches:c,isDataRoute:!0}}):f()}),null)}var M,k;function P(e){let t=o.useContext(u);return t||(0,i.J0)(!1),t}function R(e){let t=o.useContext(l);return t||(0,i.J0)(!1),t}function T(e){let t=function(e){let t=o.useContext(d);return t||(0,i.J0)(!1),t}(),n=t.matches[t.matches.length-1];return n.route.id||(0,i.J0)(!1),n.route.id}!function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"}(M||(M={})),function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"}(k||(k={}));function I(e){let{to:t,replace:n,state:r,relative:a}=e;g()||(0,i.J0)(!1);let{matches:s}=o.useContext(d),{pathname:u}=v(),l=b(),c=(0,i.pC)(t,(0,i.Zq)(s).map((e=>e.pathnameBase)),u,"path"===a),f=JSON.stringify(c);return o.useEffect((()=>l(JSON.parse(f),{replace:n,state:r,relative:a})),[l,f,a,n,r]),null}function B(e){(0,i.J0)(!1)}function D(e){let{basename:t="/",children:n=null,location:r,navigationType:a=i.aU.Pop,navigator:s,static:u=!1}=e;g()&&(0,i.J0)(!1);let l=t.replace(/^\/*/,"/"),d=o.useMemo((()=>({basename:l,navigator:s,static:u})),[l,s,u]);"string"===typeof r&&(r=(0,i.cP)(r));let{pathname:p="/",search:h="",hash:v="",state:m=null,key:y="default"}=r,b=o.useMemo((()=>{let e=(0,i.Zn)(p,l);return null==e?null:{location:{pathname:e,search:h,hash:v,state:m,key:y},navigationType:a}}),[l,p,h,v,m,y,a]);return null==b?null:o.createElement(c.Provider,{value:d},o.createElement(f.Provider,{children:n,value:b}))}function j(e){let{children:t,location:n}=e;return _(N(t),n)}var L;!function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(L||(L={}));new Promise((()=>{}));class Z extends o.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:n}=this.props,r=null,a=L.pending;if(n instanceof Promise)if(this.state.error){L.error;let e=this.state.error;Promise.reject().catch((()=>{})),Object.defineProperty(r,"_tracked",{get:()=>!0}),Object.defineProperty(r,"_error",{get:()=>e})}else n._tracked?(n,void 0!==r._error?L.error:void 0!==r._data?L.success:L.pending):(L.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),n.then((e=>Object.defineProperty(n,"_data",{get:()=>e})),(e=>Object.defineProperty(n,"_error",{get:()=>e}))));else L.success,Promise.resolve(),Object.defineProperty(r,"_tracked",{get:()=>!0}),Object.defineProperty(r,"_data",{get:()=>n});if(a===L.error&&r._error instanceof i.X3)throw neverSettledPromise;if(a===L.error&&!t)throw r._error;if(a===L.error)return o.createElement(AwaitContext.Provider,{value:r,children:t});if(a===L.success)return o.createElement(AwaitContext.Provider,{value:r,children:e});throw r}}function N(e,t){void 0===t&&(t=[]);let n=[];return o.Children.forEach(e,((e,r)=>{if(!o.isValidElement(e))return;let a=[...t,r];if(e.type===o.Fragment)return void n.push.apply(n,N(e.props.children,a));e.type!==B&&(0,i.J0)(!1),e.props.index&&e.props.children&&(0,i.J0)(!1);let s={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(s.children=N(e.props.children,a)),n.push(s)})),n}},40217:function(e,t,n){!function(e,t){"use strict";function n(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,o)}function r(e){return function(){var t=this,r=arguments;return new Promise((function(o,i){var a=e.apply(t,r);function s(e){n(a,o,i,s,u,"next",e)}function u(e){n(a,o,i,s,u,"throw",e)}s(void 0)}))}}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function a(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var s={init:"init"},u=function(e){var t=e.value;return void 0===t?"":t},l=function(){return t.createElement(t.Fragment,null,"\xa0")},c={Cell:u,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function f(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){var n=t.style,r=t.className;return e=o({},e,{},i(t,["style","className"])),n&&(e.style=e.style?o({},e.style||{},{},n||{}):n),r&&(e.className=e.className?e.className+" "+r:r),""===e.className&&delete e.className,e}),{})}var d=function(e,t){return void 0===t&&(t={}),function(n){return void 0===n&&(n={}),[].concat(e,[n]).reduce((function(e,r){return function e(t,n,r){return"function"==typeof n?e({},n(t,r)):Array.isArray(n)?f.apply(void 0,[t].concat(n)):f(t,n)}(e,r,o({},t,{userProps:n}))}),{})}},p=function(e,t,n,r){return void 0===n&&(n={}),e.reduce((function(e,t){return t(e,n)}),t)},h=function(e,t,n){return void 0===n&&(n={}),e.forEach((function(e){e(t,n)}))};function g(e,t,n,r){e.findIndex((function(e){return e.pluginName===n})),t.forEach((function(t){e.findIndex((function(e){return e.pluginName===t}))}))}function v(e,t){return"function"==typeof e?e(t):e}function m(e){var n=t.useRef();return n.current=e,t.useCallback((function(){return n.current}),[])}var y="undefined"!=typeof document?t.useLayoutEffect:t.useEffect;function b(e,n){var r=t.useRef(!1);y((function(){r.current&&e(),r.current=!0}),n)}function w(e,t,n){return void 0===n&&(n={}),function(r,i){void 0===i&&(i={});var a="string"==typeof r?t[r]:r;if(void 0===a)throw console.info(t),new Error("Renderer Error \u261d\ufe0f");return x(a,o({},e,{column:t},n,{},i))}}function x(e,n){return function(e){return"function"==typeof e&&(t=Object.getPrototypeOf(e)).prototype&&t.prototype.isReactComponent;var t}(r=e)||"function"==typeof r||function(e){return"object"==typeof e&&"symbol"==typeof e.$$typeof&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}(r)?t.createElement(e,n):e;var r}function _(e,t,n){return void 0===n&&(n=0),e.map((function(e){return O(e=o({},e,{parent:t,depth:n})),e.columns&&(e.columns=_(e.columns,e,n+1)),e}))}function S(e){return P(e,"columns")}function O(e){var t=e.id,n=e.accessor,r=e.Header;if("string"==typeof n){t=t||n;var o=n.split(".");n=function(e){return function(e,t,n){if(!t)return e;var r,o="function"==typeof t?t:JSON.stringify(t),i=A.get(o)||function(){var e=function(e){return function e(t,n){if(void 0===n&&(n=[]),Array.isArray(t))for(var r=0;r<t.length;r+=1)e(t[r],n);else n.push(t);return n}(e).map((function(e){return String(e).replace(".","_")})).join(".").replace(j,".").replace(L,"").split(".")}(t);return A.set(o,e),e}();try{r=i.reduce((function(e,t){return e[t]}),e)}catch(e){}return void 0!==r?r:n}(e,o)}}if(!t&&"string"==typeof r&&r&&(t=r),!t&&e.columns)throw console.error(e),new Error('A column ID (or unique "Header" value) is required!');if(!t)throw console.error(e),new Error("A column ID (or string accessor) is required!");return Object.assign(e,{id:t,accessor:n}),e}function C(e,t){if(!t)throw new Error;return Object.assign(e,o({Header:l,Footer:l},c,{},t,{},e)),Object.assign(e,{originalWidth:e.width}),e}function E(e,t,n){void 0===n&&(n=function(){return{}});for(var r=[],i=e,a=0,s=function(){return a++},u=function(){var e={headers:[]},a=[],u=i.some((function(e){return e.parent}));i.forEach((function(r){var i,l=[].concat(a).reverse()[0];u&&(i=r.parent?o({},r.parent,{originalId:r.parent.id,id:r.parent.id+"_"+s(),headers:[r]},n(r)):C(o({originalId:r.id+"_placeholder",id:r.id+"_placeholder_"+s(),placeholderOf:r,headers:[r]},n(r)),t),l&&l.originalId===i.originalId?l.headers.push(r):a.push(i)),e.headers.push(r)})),r.push(e),i=a};i.length;)u();return r.reverse()}var A=new Map;function M(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<t.length;r+=1)if(void 0!==t[r])return t[r]}function k(e){if("function"==typeof e)return e}function P(e,t){var n=[];return function e(r){r.forEach((function(r){r[t]?e(r[t]):n.push(r)}))}(e),n}function R(e,t){var n=t.manualExpandedKey,r=t.expanded,o=t.expandSubRows,i=void 0===o||o,a=[];return e.forEach((function(e){return function e(t,o){void 0===o&&(o=!0),t.isExpanded=t.original&&t.original[n]||r[t.id],t.canExpand=t.subRows&&!!t.subRows.length,o&&a.push(t),t.subRows&&t.subRows.length&&t.isExpanded&&t.subRows.forEach((function(t){return e(t,i)}))}(e)})),a}function T(e,t,n){return k(e)||t[e]||n[e]||n.text}function I(e,t,n){return e?e(t,n):void 0===t}function B(){throw new Error("React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.")}var D=null,j=/\[/g,L=/\]/g,Z=function(e){return o({role:"table"},e)},N=function(e){return o({role:"rowgroup"},e)},F=function(e,t){var n=t.column;return o({key:"header_"+n.id,colSpan:n.totalVisibleHeaderCount,role:"columnheader"},e)},H=function(e,t){var n=t.column;return o({key:"footer_"+n.id,colSpan:n.totalVisibleHeaderCount},e)},V=function(e,t){return o({key:"headerGroup_"+t.index,role:"row"},e)},z=function(e,t){return o({key:"footerGroup_"+t.index},e)},U=function(e,t){return o({key:"row_"+t.row.id,role:"row"},e)},G=function(e,t){var n=t.cell;return o({key:"cell_"+n.row.id+"_"+n.column.id,role:"cell"},e)};function W(){return{useOptions:[],stateReducers:[],useControlledState:[],columns:[],columnsDeps:[],allColumns:[],allColumnsDeps:[],accessValue:[],materializedColumns:[],materializedColumnsDeps:[],useInstanceAfterData:[],visibleColumns:[],visibleColumnsDeps:[],headerGroups:[],headerGroupsDeps:[],useInstanceBeforeDimensions:[],useInstance:[],prepareRow:[],getTableProps:[Z],getTableBodyProps:[N],getHeaderGroupProps:[V],getFooterGroupProps:[z],getHeaderProps:[F],getFooterProps:[H],getRowProps:[U],getCellProps:[G],useFinalInstance:[]}}s.resetHiddenColumns="resetHiddenColumns",s.toggleHideColumn="toggleHideColumn",s.setHiddenColumns="setHiddenColumns",s.toggleHideAllColumns="toggleHideAllColumns";var $=function(e){e.getToggleHiddenProps=[q],e.getToggleHideAllColumnsProps=[Y],e.stateReducers.push(X),e.useInstanceBeforeDimensions.push(K),e.headerGroupsDeps.push((function(e,t){var n=t.instance;return[].concat(e,[n.state.hiddenColumns])})),e.useInstance.push(J)};$.pluginName="useColumnVisibility";var q=function(e,t){var n=t.column;return[e,{onChange:function(e){n.toggleHidden(!e.target.checked)},style:{cursor:"pointer"},checked:n.isVisible,title:"Toggle Column Visible"}]},Y=function(e,t){var n=t.instance;return[e,{onChange:function(e){n.toggleHideAllColumns(!e.target.checked)},style:{cursor:"pointer"},checked:!n.allColumnsHidden&&!n.state.hiddenColumns.length,title:"Toggle All Columns Hidden",indeterminate:!n.allColumnsHidden&&n.state.hiddenColumns.length}]};function X(e,t,n,r){if(t.type===s.init)return o({hiddenColumns:[]},e);if(t.type===s.resetHiddenColumns)return o({},e,{hiddenColumns:r.initialState.hiddenColumns||[]});if(t.type===s.toggleHideColumn){var i=(void 0!==t.value?t.value:!e.hiddenColumns.includes(t.columnId))?[].concat(e.hiddenColumns,[t.columnId]):e.hiddenColumns.filter((function(e){return e!==t.columnId}));return o({},e,{hiddenColumns:i})}return t.type===s.setHiddenColumns?o({},e,{hiddenColumns:v(t.value,e.hiddenColumns)}):t.type===s.toggleHideAllColumns?o({},e,{hiddenColumns:(void 0!==t.value?t.value:!e.hiddenColumns.length)?r.allColumns.map((function(e){return e.id})):[]}):void 0}function K(e){var n=e.headers,r=e.state.hiddenColumns;t.useRef(!1).current;var o=0;n.forEach((function(e){return o+=function e(t,n){t.isVisible=n&&!r.includes(t.id);var o=0;return t.headers&&t.headers.length?t.headers.forEach((function(n){return o+=e(n,t.isVisible)})):o=t.isVisible?1:0,t.totalVisibleHeaderCount=o,o}(e,!0)}))}function J(e){var n=e.columns,r=e.flatHeaders,o=e.dispatch,i=e.allColumns,a=e.getHooks,u=e.state.hiddenColumns,l=e.autoResetHiddenColumns,c=void 0===l||l,f=m(e),p=i.length===u.length,h=t.useCallback((function(e,t){return o({type:s.toggleHideColumn,columnId:e,value:t})}),[o]),g=t.useCallback((function(e){return o({type:s.setHiddenColumns,value:e})}),[o]),v=t.useCallback((function(e){return o({type:s.toggleHideAllColumns,value:e})}),[o]),y=d(a().getToggleHideAllColumnsProps,{instance:f()});r.forEach((function(e){e.toggleHidden=function(t){o({type:s.toggleHideColumn,columnId:e.id,value:t})},e.getToggleHiddenProps=d(a().getToggleHiddenProps,{instance:f(),column:e})}));var w=m(c);b((function(){w()&&o({type:s.resetHiddenColumns})}),[o,n]),Object.assign(e,{allColumnsHidden:p,toggleHideColumn:h,setHiddenColumns:g,toggleHideAllColumns:v,getToggleHideAllColumnsProps:y})}var Q={},ee={},te=function(e,t,n){return e},ne=function(e,t){return e.subRows||[]},re=function(e,t,n){return""+(n?[n.id,t].join("."):t)},oe=function(e){return e};function ie(e){var t=e.initialState,n=void 0===t?Q:t,r=e.defaultColumn,a=void 0===r?ee:r,s=e.getSubRows,u=void 0===s?ne:s,l=e.getRowId,c=void 0===l?re:l,f=e.stateReducer,d=void 0===f?te:f,p=e.useControlledState,h=void 0===p?oe:p;return o({},i(e,["initialState","defaultColumn","getSubRows","getRowId","stateReducer","useControlledState"]),{initialState:n,defaultColumn:a,getSubRows:u,getRowId:c,stateReducer:d,useControlledState:h})}function ae(e,t){void 0===t&&(t=0);var n=0,r=0,o=0,i=0;return e.forEach((function(e){var a=e.headers;if(e.totalLeft=t,a&&a.length){var s=ae(a,t),u=s[0],l=s[1],c=s[2],f=s[3];e.totalMinWidth=u,e.totalWidth=l,e.totalMaxWidth=c,e.totalFlexWidth=f}else e.totalMinWidth=e.minWidth,e.totalWidth=Math.min(Math.max(e.minWidth,e.width),e.maxWidth),e.totalMaxWidth=e.maxWidth,e.totalFlexWidth=e.canResize?e.totalWidth:0;e.isVisible&&(t+=e.totalWidth,n+=e.totalMinWidth,r+=e.totalWidth,o+=e.totalMaxWidth,i+=e.totalFlexWidth)})),[n,r,o,i]}function se(e){var t=e.data,n=e.rows,r=e.flatRows,o=e.rowsById,i=e.column,a=e.getRowId,s=e.getSubRows,u=e.accessValueHooks,l=e.getInstance;t.forEach((function(e,c){return function e(n,c,f,d,h){void 0===f&&(f=0);var g=n,v=a(n,c,d),m=o[v];if(m)m.subRows&&m.originalSubRows.forEach((function(t,n){return e(t,n,f+1,m)}));else if((m={id:v,original:g,index:c,depth:f,cells:[{}]}).cells.map=B,m.cells.filter=B,m.cells.forEach=B,m.cells[0].getCellProps=B,m.values={},h.push(m),r.push(m),o[v]=m,m.originalSubRows=s(n,c),m.originalSubRows){var y=[];m.originalSubRows.forEach((function(t,n){return e(t,n,f+1,m,y)})),m.subRows=y}i.accessor&&(m.values[i.id]=i.accessor(n,c,m,h,t)),m.values[i.id]=p(u,m.values[i.id],{row:m,column:i,instance:l()})}(e,c,0,void 0,n)}))}s.resetExpanded="resetExpanded",s.toggleRowExpanded="toggleRowExpanded",s.toggleAllRowsExpanded="toggleAllRowsExpanded";var ue=function(e){e.getToggleAllRowsExpandedProps=[le],e.getToggleRowExpandedProps=[ce],e.stateReducers.push(fe),e.useInstance.push(de),e.prepareRow.push(pe)};ue.pluginName="useExpanded";var le=function(e,t){var n=t.instance;return[e,{onClick:function(e){n.toggleAllRowsExpanded()},style:{cursor:"pointer"},title:"Toggle All Rows Expanded"}]},ce=function(e,t){var n=t.row;return[e,{onClick:function(){n.toggleRowExpanded()},style:{cursor:"pointer"},title:"Toggle Row Expanded"}]};function fe(e,t,n,r){if(t.type===s.init)return o({expanded:{}},e);if(t.type===s.resetExpanded)return o({},e,{expanded:r.initialState.expanded||{}});if(t.type===s.toggleAllRowsExpanded){var u=t.value,l=r.rowsById,c=Object.keys(l).length===Object.keys(e.expanded).length;if(void 0!==u?u:!c){var f={};return Object.keys(l).forEach((function(e){f[e]=!0})),o({},e,{expanded:f})}return o({},e,{expanded:{}})}if(t.type===s.toggleRowExpanded){var d,p=t.id,h=t.value,g=e.expanded[p],v=void 0!==h?h:!g;if(!g&&v)return o({},e,{expanded:o({},e.expanded,(d={},d[p]=!0,d))});if(g&&!v){var m=e.expanded;return m[p],o({},e,{expanded:i(m,[p].map(a))})}return e}}function de(e){var n=e.data,r=e.rows,o=e.rowsById,i=e.manualExpandedKey,a=void 0===i?"expanded":i,u=e.paginateExpandedRows,l=void 0===u||u,c=e.expandSubRows,f=void 0===c||c,p=e.autoResetExpanded,h=void 0===p||p,v=e.getHooks,y=e.plugins,w=e.state.expanded,x=e.dispatch;g(y,["useSortBy","useGroupBy","usePivotColumns","useGlobalFilter"],"useExpanded");var _=m(h),S=Boolean(Object.keys(o).length&&Object.keys(w).length);S&&Object.keys(o).some((function(e){return!w[e]}))&&(S=!1),b((function(){_()&&x({type:s.resetExpanded})}),[x,n]);var O=t.useCallback((function(e,t){x({type:s.toggleRowExpanded,id:e,value:t})}),[x]),C=t.useCallback((function(e){return x({type:s.toggleAllRowsExpanded,value:e})}),[x]),E=t.useMemo((function(){return l?R(r,{manualExpandedKey:a,expanded:w,expandSubRows:f}):r}),[l,r,a,w,f]),A=t.useMemo((function(){return function(e){var t=0;return Object.keys(e).forEach((function(e){var n=e.split(".");t=Math.max(t,n.length)})),t}(w)}),[w]),M=m(e),k=d(v().getToggleAllRowsExpandedProps,{instance:M()});Object.assign(e,{preExpandedRows:r,expandedRows:E,rows:E,expandedDepth:A,isAllRowsExpanded:S,toggleRowExpanded:O,toggleAllRowsExpanded:C,getToggleAllRowsExpandedProps:k})}function pe(e,t){var n=t.instance.getHooks,r=t.instance;e.toggleRowExpanded=function(t){return r.toggleRowExpanded(e.id,t)},e.getToggleRowExpandedProps=d(n().getToggleRowExpandedProps,{instance:r,row:e})}var he=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return String(r).toLowerCase().includes(String(n).toLowerCase())}))}))};he.autoRemove=function(e){return!e};var ge=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return void 0===r||String(r).toLowerCase()===String(n).toLowerCase()}))}))};ge.autoRemove=function(e){return!e};var ve=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return void 0===r||String(r)===String(n)}))}))};ve.autoRemove=function(e){return!e};var me=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t].includes(n)}))}))};me.autoRemove=function(e){return!e||!e.length};var ye=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return r&&r.length&&n.every((function(e){return r.includes(e)}))}))}))};ye.autoRemove=function(e){return!e||!e.length};var be=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return r&&r.length&&n.some((function(e){return r.includes(e)}))}))}))};be.autoRemove=function(e){return!e||!e.length};var we=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return n.includes(r)}))}))};we.autoRemove=function(e){return!e||!e.length};var xe=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t]===n}))}))};xe.autoRemove=function(e){return void 0===e};var _e=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t]==n}))}))};_e.autoRemove=function(e){return null==e};var Se=function(e,t,n){var r=n||[],o=r[0],i=r[1];if((o="number"==typeof o?o:-1/0)>(i="number"==typeof i?i:1/0)){var a=o;o=i,i=a}return e.filter((function(e){return t.some((function(t){var n=e.values[t];return n>=o&&n<=i}))}))};Se.autoRemove=function(e){return!e||"number"!=typeof e[0]&&"number"!=typeof e[1]};var Oe=Object.freeze({__proto__:null,text:he,exactText:ge,exactTextCase:ve,includes:me,includesAll:ye,includesSome:be,includesValue:we,exact:xe,equals:_e,between:Se});s.resetFilters="resetFilters",s.setFilter="setFilter",s.setAllFilters="setAllFilters";var Ce=function(e){e.stateReducers.push(Ee),e.useInstance.push(Ae)};function Ee(e,t,n,r){if(t.type===s.init)return o({filters:[]},e);if(t.type===s.resetFilters)return o({},e,{filters:r.initialState.filters||[]});if(t.type===s.setFilter){var i=t.columnId,a=t.filterValue,u=r.allColumns,l=r.filterTypes,c=u.find((function(e){return e.id===i}));if(!c)throw new Error("React-Table: Could not find a column with id: "+i);var f=T(c.filter,l||{},Oe),d=e.filters.find((function(e){return e.id===i})),p=v(a,d&&d.value);return I(f.autoRemove,p,c)?o({},e,{filters:e.filters.filter((function(e){return e.id!==i}))}):o({},e,d?{filters:e.filters.map((function(e){return e.id===i?{id:i,value:p}:e}))}:{filters:[].concat(e.filters,[{id:i,value:p}])})}if(t.type===s.setAllFilters){var h=t.filters,g=r.allColumns,m=r.filterTypes;return o({},e,{filters:v(h,e.filters).filter((function(e){var t=g.find((function(t){return t.id===e.id}));return!I(T(t.filter,m||{},Oe).autoRemove,e.value,t)}))})}}function Ae(e){var n=e.data,r=e.rows,o=e.flatRows,i=e.rowsById,a=e.allColumns,u=e.filterTypes,l=e.manualFilters,c=e.defaultCanFilter,f=void 0!==c&&c,d=e.disableFilters,p=e.state.filters,h=e.dispatch,g=e.autoResetFilters,v=void 0===g||g,y=t.useCallback((function(e,t){h({type:s.setFilter,columnId:e,filterValue:t})}),[h]),w=t.useCallback((function(e){h({type:s.setAllFilters,filters:e})}),[h]);a.forEach((function(e){var t=e.id,n=e.accessor,r=e.defaultCanFilter,o=e.disableFilters;e.canFilter=n?M(!0!==o&&void 0,!0!==d&&void 0,!0):M(r,f,!1),e.setFilter=function(t){return y(e.id,t)};var i=p.find((function(e){return e.id===t}));e.filterValue=i&&i.value}));var x=t.useMemo((function(){if(l||!p.length)return[r,o,i];var e=[],t={};return[function n(r,o){void 0===o&&(o=0);var i=r;return(i=p.reduce((function(e,t){var n=t.id,r=t.value,i=a.find((function(e){return e.id===n}));if(!i)return e;0===o&&(i.preFilteredRows=e);var s=T(i.filter,u||{},Oe);return s?(i.filteredRows=s(e,[n],r),i.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+i.id+"."),e)}),r)).forEach((function(r){e.push(r),t[r.id]=r,r.subRows&&(r.subRows=r.subRows&&r.subRows.length>0?n(r.subRows,o+1):r.subRows)})),i}(r),e,t]}),[l,p,r,o,i,a,u]),_=x[0],S=x[1],O=x[2];t.useMemo((function(){a.filter((function(e){return!p.find((function(t){return t.id===e.id}))})).forEach((function(e){e.preFilteredRows=_,e.filteredRows=_}))}),[_,p,a]);var C=m(v);b((function(){C()&&h({type:s.resetFilters})}),[h,l?null:n]),Object.assign(e,{preFilteredRows:r,preFilteredFlatRows:o,preFilteredRowsById:i,filteredRows:_,filteredFlatRows:S,filteredRowsById:O,rows:_,flatRows:S,rowsById:O,setFilter:y,setAllFilters:w})}Ce.pluginName="useFilters",s.resetGlobalFilter="resetGlobalFilter",s.setGlobalFilter="setGlobalFilter";var Me=function(e){e.stateReducers.push(ke),e.useInstance.push(Pe)};function ke(e,t,n,r){if(t.type===s.resetGlobalFilter)return o({},e,{globalFilter:r.initialState.globalFilter||void 0});if(t.type===s.setGlobalFilter){var a=t.filterValue,u=r.userFilterTypes,l=T(r.globalFilter,u||{},Oe),c=v(a,e.globalFilter);return I(l.autoRemove,c)?(e.globalFilter,i(e,["globalFilter"])):o({},e,{globalFilter:c})}}function Pe(e){var n=e.data,r=e.rows,o=e.flatRows,i=e.rowsById,a=e.allColumns,u=e.filterTypes,l=e.globalFilter,c=e.manualGlobalFilter,f=e.state.globalFilter,d=e.dispatch,p=e.autoResetGlobalFilter,h=void 0===p||p,g=e.disableGlobalFilter,v=t.useCallback((function(e){d({type:s.setGlobalFilter,filterValue:e})}),[d]),y=t.useMemo((function(){if(c||void 0===f)return[r,o,i];var e=[],t={},n=T(l,u||{},Oe);if(!n)return console.warn("Could not find a valid 'globalFilter' option."),r;a.forEach((function(e){var t=e.disableGlobalFilter;e.canFilter=M(!0!==t&&void 0,!0!==g&&void 0,!0)}));var s=a.filter((function(e){return!0===e.canFilter}));return[function r(o){return(o=n(o,s.map((function(e){return e.id})),f)).forEach((function(n){e.push(n),t[n.id]=n,n.subRows=n.subRows&&n.subRows.length?r(n.subRows):n.subRows})),o}(r),e,t]}),[c,f,l,u,a,r,o,i,g]),w=y[0],x=y[1],_=y[2],S=m(h);b((function(){S()&&d({type:s.resetGlobalFilter})}),[d,c?null:n]),Object.assign(e,{preGlobalFilteredRows:r,preGlobalFilteredFlatRows:o,preGlobalFilteredRowsById:i,globalFilteredRows:w,globalFilteredFlatRows:x,globalFilteredRowsById:_,rows:w,flatRows:x,rowsById:_,setGlobalFilter:v,disableGlobalFilter:g})}function Re(e,t){return t.reduce((function(e,t){return e+("number"==typeof t?t:0)}),0)}Me.pluginName="useGlobalFilter";var Te=Object.freeze({__proto__:null,sum:Re,min:function(e){var t=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.min(t,e))})),t},max:function(e){var t=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.max(t,e))})),t},minMax:function(e){var t=e[0]||0,n=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.min(t,e),n=Math.max(n,e))})),t+".."+n},average:function(e){return Re(0,e)/e.length},median:function(e){if(!e.length)return null;var t=Math.floor(e.length/2),n=[].concat(e).sort((function(e,t){return e-t}));return e.length%2!=0?n[t]:(n[t-1]+n[t])/2},unique:function(e){return Array.from(new Set(e).values())},uniqueCount:function(e){return new Set(e).size},count:function(e){return e.length}}),Ie=[],Be={};s.resetGroupBy="resetGroupBy",s.setGroupBy="setGroupBy",s.toggleGroupBy="toggleGroupBy";var De=function(e){e.getGroupByToggleProps=[je],e.stateReducers.push(Le),e.visibleColumnsDeps.push((function(e,t){var n=t.instance;return[].concat(e,[n.state.groupBy])})),e.visibleColumns.push(Ze),e.useInstance.push(Fe),e.prepareRow.push(He)};De.pluginName="useGroupBy";var je=function(e,t){var n=t.header;return[e,{onClick:n.canGroupBy?function(e){e.persist(),n.toggleGroupBy()}:void 0,style:{cursor:n.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function Le(e,t,n,r){if(t.type===s.init)return o({groupBy:[]},e);if(t.type===s.resetGroupBy)return o({},e,{groupBy:r.initialState.groupBy||[]});if(t.type===s.setGroupBy)return o({},e,{groupBy:t.value});if(t.type===s.toggleGroupBy){var i=t.columnId,a=t.value,u=void 0!==a?a:!e.groupBy.includes(i);return o({},e,u?{groupBy:[].concat(e.groupBy,[i])}:{groupBy:e.groupBy.filter((function(e){return e!==i}))})}}function Ze(e,t){var n=t.instance.state.groupBy,r=n.map((function(t){return e.find((function(e){return e.id===t}))})).filter(Boolean),o=e.filter((function(e){return!n.includes(e.id)}));return(e=[].concat(r,o)).forEach((function(e){e.isGrouped=n.includes(e.id),e.groupedIndex=n.indexOf(e.id)})),e}var Ne={};function Fe(e){var n=e.data,r=e.rows,i=e.flatRows,a=e.rowsById,u=e.allColumns,l=e.flatHeaders,c=e.groupByFn,f=void 0===c?Ve:c,p=e.manualGroupBy,h=e.aggregations,v=void 0===h?Ne:h,y=e.plugins,w=e.state.groupBy,x=e.dispatch,_=e.autoResetGroupBy,S=void 0===_||_,O=e.disableGroupBy,C=e.defaultCanGroupBy,E=e.getHooks;g(y,["useColumnOrder","useFilters"],"useGroupBy");var A=m(e);u.forEach((function(t){var n=t.accessor,r=t.defaultGroupBy,o=t.disableGroupBy;t.canGroupBy=n?M(t.canGroupBy,!0!==o&&void 0,!0!==O&&void 0,!0):M(t.canGroupBy,r,C,!1),t.canGroupBy&&(t.toggleGroupBy=function(){return e.toggleGroupBy(t.id)}),t.Aggregated=t.Aggregated||t.Cell}));var k=t.useCallback((function(e,t){x({type:s.toggleGroupBy,columnId:e,value:t})}),[x]),R=t.useCallback((function(e){x({type:s.setGroupBy,value:e})}),[x]);l.forEach((function(e){e.getGroupByToggleProps=d(E().getGroupByToggleProps,{instance:A(),header:e})}));var T=t.useMemo((function(){if(p||!w.length)return[r,i,a,Ie,Be,i,a];var e=w.filter((function(e){return u.find((function(t){return t.id===e}))})),t=[],n={},s=[],l={},c=[],d={},h=function r(i,a,p){if(void 0===a&&(a=0),a===e.length)return i.map((function(e){return o({},e,{depth:a})}));var h=e[a],g=f(i,h);return Object.entries(g).map((function(o,i){var f=o[0],g=o[1],m=h+":"+f,y=r(g,a+1,m=p?p+">"+m:m),b=a?P(g,"leafRows"):g,w=function(t,n,r){var o={};return u.forEach((function(i){if(e.includes(i.id))o[i.id]=n[0]?n[0].values[i.id]:null;else{var a="function"==typeof i.aggregate?i.aggregate:v[i.aggregate]||Te[i.aggregate];if(a){var s=n.map((function(e){return e.values[i.id]})),u=t.map((function(e){var t=e.values[i.id];if(!r&&i.aggregateValue){var n="function"==typeof i.aggregateValue?i.aggregateValue:v[i.aggregateValue]||Te[i.aggregateValue];if(!n)throw console.info({column:i}),new Error("React Table: Invalid column.aggregateValue option for column listed above");t=n(t,e,i)}return t}));o[i.id]=a(u,s)}else{if(i.aggregate)throw console.info({column:i}),new Error("React Table: Invalid column.aggregate option for column listed above");o[i.id]=null}}})),o}(b,g,a),x={id:m,isGrouped:!0,groupByID:h,groupByVal:f,values:w,subRows:y,leafRows:b,depth:a,index:i};return y.forEach((function(e){t.push(e),n[e.id]=e,e.isGrouped?(s.push(e),l[e.id]=e):(c.push(e),d[e.id]=e)})),x}))}(r);return h.forEach((function(e){t.push(e),n[e.id]=e,e.isGrouped?(s.push(e),l[e.id]=e):(c.push(e),d[e.id]=e)})),[h,t,n,s,l,c,d]}),[p,w,r,i,a,u,v,f]),I=T[0],B=T[1],D=T[2],j=T[3],L=T[4],Z=T[5],N=T[6],F=m(S);b((function(){F()&&x({type:s.resetGroupBy})}),[x,p?null:n]),Object.assign(e,{preGroupedRows:r,preGroupedFlatRow:i,preGroupedRowsById:a,groupedRows:I,groupedFlatRows:B,groupedRowsById:D,onlyGroupedFlatRows:j,onlyGroupedRowsById:L,nonGroupedFlatRows:Z,nonGroupedRowsById:N,rows:I,flatRows:B,rowsById:D,toggleGroupBy:k,setGroupBy:R})}function He(e){e.allCells.forEach((function(t){var n;t.isGrouped=t.column.isGrouped&&t.column.id===e.groupByID,t.isPlaceholder=!t.isGrouped&&t.column.isGrouped,t.isAggregated=!t.isGrouped&&!t.isPlaceholder&&(null==(n=e.subRows)?void 0:n.length)}))}function Ve(e,t){return e.reduce((function(e,n,r){var o=""+n.values[t];return e[o]=Array.isArray(e[o])?e[o]:[],e[o].push(n),e}),{})}var ze=/([0-9]+)/gm;function Ue(e,t){return e===t?0:e>t?1:-1}function Ge(e,t,n){return[e.values[n],t.values[n]]}function We(e){return"number"==typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"==typeof e?e:""}var $e=Object.freeze({__proto__:null,alphanumeric:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1];for(o=We(o),i=We(i),o=o.split(ze).filter(Boolean),i=i.split(ze).filter(Boolean);o.length&&i.length;){var a=o.shift(),s=i.shift(),u=parseInt(a,10),l=parseInt(s,10),c=[u,l].sort();if(isNaN(c[0])){if(a>s)return 1;if(s>a)return-1}else{if(isNaN(c[1]))return isNaN(u)?-1:1;if(u>l)return 1;if(l>u)return-1}}return o.length-i.length},datetime:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1];return Ue(o=o.getTime(),i=i.getTime())},basic:function(e,t,n){var r=Ge(e,t,n);return Ue(r[0],r[1])},string:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1];for(o=o.split("").filter(Boolean),i=i.split("").filter(Boolean);o.length&&i.length;){var a=o.shift(),s=i.shift(),u=a.toLowerCase(),l=s.toLowerCase();if(u>l)return 1;if(l>u)return-1;if(a>s)return 1;if(s>a)return-1}return o.length-i.length},number:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1],a=/[^0-9.]/gi;return Ue(o=Number(String(o).replace(a,"")),i=Number(String(i).replace(a,"")))}});s.resetSortBy="resetSortBy",s.setSortBy="setSortBy",s.toggleSortBy="toggleSortBy",s.clearSortBy="clearSortBy",c.sortType="alphanumeric",c.sortDescFirst=!1;var qe=function(e){e.getSortByToggleProps=[Ye],e.stateReducers.push(Xe),e.useInstance.push(Ke)};qe.pluginName="useSortBy";var Ye=function(e,t){var n=t.instance,r=t.column,o=n.isMultiSortEvent,i=void 0===o?function(e){return e.shiftKey}:o;return[e,{onClick:r.canSort?function(e){e.persist(),r.toggleSortBy(void 0,!n.disableMultiSort&&i(e))}:void 0,style:{cursor:r.canSort?"pointer":void 0},title:r.canSort?"Toggle SortBy":void 0}]};function Xe(e,t,n,r){if(t.type===s.init)return o({sortBy:[]},e);if(t.type===s.resetSortBy)return o({},e,{sortBy:r.initialState.sortBy||[]});if(t.type===s.clearSortBy)return o({},e,{sortBy:e.sortBy.filter((function(e){return e.id!==t.columnId}))});if(t.type===s.setSortBy)return o({},e,{sortBy:t.sortBy});if(t.type===s.toggleSortBy){var i,a=t.columnId,u=t.desc,l=t.multi,c=r.allColumns,f=r.disableMultiSort,d=r.disableSortRemove,p=r.disableMultiRemove,h=r.maxMultiSortColCount,g=void 0===h?Number.MAX_SAFE_INTEGER:h,v=e.sortBy,m=c.find((function(e){return e.id===a})).sortDescFirst,y=v.find((function(e){return e.id===a})),b=v.findIndex((function(e){return e.id===a})),w=null!=u,x=[];return"toggle"!==(i=!f&&l?y?"toggle":"add":b!==v.length-1||1!==v.length?"replace":y?"toggle":"replace")||d||w||l&&p||!(y&&y.desc&&!m||!y.desc&&m)||(i="remove"),"replace"===i?x=[{id:a,desc:w?u:m}]:"add"===i?(x=[].concat(v,[{id:a,desc:w?u:m}])).splice(0,x.length-g):"toggle"===i?x=v.map((function(e){return e.id===a?o({},e,{desc:w?u:!y.desc}):e})):"remove"===i&&(x=v.filter((function(e){return e.id!==a}))),o({},e,{sortBy:x})}}function Ke(e){var n=e.data,r=e.rows,o=e.flatRows,i=e.allColumns,a=e.orderByFn,u=void 0===a?Je:a,l=e.sortTypes,c=e.manualSortBy,f=e.defaultCanSort,p=e.disableSortBy,h=e.flatHeaders,v=e.state.sortBy,y=e.dispatch,w=e.plugins,x=e.getHooks,_=e.autoResetSortBy,S=void 0===_||_;g(w,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var O=t.useCallback((function(e){y({type:s.setSortBy,sortBy:e})}),[y]),C=t.useCallback((function(e,t,n){y({type:s.toggleSortBy,columnId:e,desc:t,multi:n})}),[y]),E=m(e);h.forEach((function(e){var t=e.accessor,n=e.canSort,r=e.disableSortBy,o=e.id,i=t?M(!0!==r&&void 0,!0!==p&&void 0,!0):M(f,n,!1);e.canSort=i,e.canSort&&(e.toggleSortBy=function(t,n){return C(e.id,t,n)},e.clearSortBy=function(){y({type:s.clearSortBy,columnId:e.id})}),e.getSortByToggleProps=d(x().getSortByToggleProps,{instance:E(),column:e});var a=v.find((function(e){return e.id===o}));e.isSorted=!!a,e.sortedIndex=v.findIndex((function(e){return e.id===o})),e.isSortedDesc=e.isSorted?a.desc:void 0}));var A=t.useMemo((function(){if(c||!v.length)return[r,o];var e=[],t=v.filter((function(e){return i.find((function(t){return t.id===e.id}))}));return[function n(r){var o=u(r,t.map((function(e){var t=i.find((function(t){return t.id===e.id}));if(!t)throw new Error("React-Table: Could not find a column with id: "+e.id+" while sorting");var n=t.sortType,r=k(n)||(l||{})[n]||$e[n];if(!r)throw new Error("React-Table: Could not find a valid sortType of '"+n+"' for column '"+e.id+"'.");return function(t,n){return r(t,n,e.id,e.desc)}})),t.map((function(e){var t=i.find((function(t){return t.id===e.id}));return t&&t.sortInverted?e.desc:!e.desc})));return o.forEach((function(t){e.push(t),t.subRows&&0!==t.subRows.length&&(t.subRows=n(t.subRows))})),o}(r),e]}),[c,v,r,o,i,u,l]),P=A[0],R=A[1],T=m(S);b((function(){T()&&y({type:s.resetSortBy})}),[c?null:n]),Object.assign(e,{preSortedRows:r,preSortedFlatRows:o,sortedRows:P,sortedFlatRows:R,rows:P,flatRows:R,setSortBy:O,toggleSortBy:C})}function Je(e,t,n){return[].concat(e).sort((function(e,r){for(var o=0;o<t.length;o+=1){var i=t[o],a=!1===n[o]||"desc"===n[o],s=i(e,r);if(0!==s)return a?-s:s}return n[0]?e.index-r.index:r.index-e.index}))}s.resetPage="resetPage",s.gotoPage="gotoPage",s.setPageSize="setPageSize";var Qe=function(e){e.stateReducers.push(et),e.useInstance.push(tt)};function et(e,t,n,r){if(t.type===s.init)return o({pageSize:10,pageIndex:0},e);if(t.type===s.resetPage)return o({},e,{pageIndex:r.initialState.pageIndex||0});if(t.type===s.gotoPage){var i=r.pageCount,a=r.page,u=v(t.pageIndex,e.pageIndex),l=!1;return u>e.pageIndex?l=-1===i?a.length>=e.pageSize:u<i:u<e.pageIndex&&(l=u>-1),l?o({},e,{pageIndex:u}):e}if(t.type===s.setPageSize){var c=t.pageSize,f=e.pageSize*e.pageIndex;return o({},e,{pageIndex:Math.floor(f/c),pageSize:c})}}function tt(e){var n=e.rows,r=e.autoResetPage,o=void 0===r||r,i=e.manualExpandedKey,a=void 0===i?"expanded":i,u=e.plugins,l=e.pageCount,c=e.paginateExpandedRows,f=void 0===c||c,d=e.expandSubRows,p=void 0===d||d,h=e.state,v=h.pageSize,y=h.pageIndex,w=h.expanded,x=h.globalFilter,_=h.filters,S=h.groupBy,O=h.sortBy,C=e.dispatch,E=e.data,A=e.manualPagination;g(u,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var M=m(o);b((function(){M()&&C({type:s.resetPage})}),[C,A?null:E,x,_,S,O]);var k=A?l:Math.ceil(n.length/v),P=t.useMemo((function(){return k>0?[].concat(new Array(k)).fill(null).map((function(e,t){return t})):[]}),[k]),T=t.useMemo((function(){var e;if(A)e=n;else{var t=v*y,r=t+v;e=n.slice(t,r)}return f?e:R(e,{manualExpandedKey:a,expanded:w,expandSubRows:p})}),[p,w,a,A,y,v,f,n]),I=y>0,B=-1===k?T.length>=v:y<k-1,D=t.useCallback((function(e){C({type:s.gotoPage,pageIndex:e})}),[C]),j=t.useCallback((function(){return D((function(e){return e-1}))}),[D]),L=t.useCallback((function(){return D((function(e){return e+1}))}),[D]),Z=t.useCallback((function(e){C({type:s.setPageSize,pageSize:e})}),[C]);Object.assign(e,{pageOptions:P,pageCount:k,page:T,canPreviousPage:I,canNextPage:B,gotoPage:D,previousPage:j,nextPage:L,setPageSize:Z})}Qe.pluginName="usePagination",s.resetPivot="resetPivot",s.togglePivot="togglePivot";var nt=function(e){e.getPivotToggleProps=[ot],e.stateReducers.push(it),e.useInstanceAfterData.push(at),e.allColumns.push(st),e.accessValue.push(ut),e.materializedColumns.push(lt),e.materializedColumnsDeps.push(ct),e.visibleColumns.push(ft),e.visibleColumnsDeps.push(dt),e.useInstance.push(pt),e.prepareRow.push(ht)};nt.pluginName="usePivotColumns";var rt=[],ot=function(e,t){var n=t.header;return[e,{onClick:n.canPivot?function(e){e.persist(),n.togglePivot()}:void 0,style:{cursor:n.canPivot?"pointer":void 0},title:"Toggle Pivot"}]};function it(e,t,n,r){if(t.type===s.init)return o({pivotColumns:rt},e);if(t.type===s.resetPivot)return o({},e,{pivotColumns:r.initialState.pivotColumns||rt});if(t.type===s.togglePivot){var i=t.columnId,a=t.value,u=void 0!==a?a:!e.pivotColumns.includes(i);return o({},e,u?{pivotColumns:[].concat(e.pivotColumns,[i])}:{pivotColumns:e.pivotColumns.filter((function(e){return e!==i}))})}}function at(e){e.allColumns.forEach((function(t){t.isPivotSource=e.state.pivotColumns.includes(t.id)}))}function st(e,t){var n=t.instance;return e.forEach((function(e){e.isPivotSource=n.state.pivotColumns.includes(e.id),e.uniqueValues=new Set})),e}function ut(e,t){var n=t.column;return n.uniqueValues&&void 0!==e&&n.uniqueValues.add(e),e}function lt(e,t){var n=t.instance,r=n.allColumns,i=n.state;if(!i.pivotColumns.length||!i.groupBy||!i.groupBy.length)return e;var a=i.pivotColumns.map((function(e){return r.find((function(t){return t.id===e}))})).filter(Boolean),s=r.filter((function(e){return!e.isPivotSource&&!i.groupBy.includes(e.id)&&!i.pivotColumns.includes(e.id)})),u=S(function e(t,n,r){void 0===t&&(t=0),void 0===r&&(r=[]);var i=a[t];return i?Array.from(i.uniqueValues).sort().map((function(a){var s=o({},i,{Header:i.PivotHeader||"string"==typeof i.header?i.Header+": "+a:a,isPivotGroup:!0,parent:n,depth:t,id:n?n.id+"."+i.id+"."+a:i.id+"."+a,pivotValue:a});return s.columns=e(t+1,s,[].concat(r,[function(e){return e.values[i.id]===a}])),s})):s.map((function(e){return o({},e,{canPivot:!1,isPivoted:!0,parent:n,depth:t,id:""+(n?n.id+"."+e.id:e.id),accessor:function(t,n,o){if(r.every((function(e){return e(o)})))return o.values[e.id]}})}))}());return[].concat(e,u)}function ct(e,t){var n=t.instance.state,r=n.pivotColumns,o=n.groupBy;return[].concat(e,[r,o])}function ft(e,t){var n=t.instance.state;return e=e.filter((function(e){return!e.isPivotSource})),n.pivotColumns.length&&n.groupBy&&n.groupBy.length&&(e=e.filter((function(e){return e.isGrouped||e.isPivoted}))),e}function dt(e,t){var n=t.instance;return[].concat(e,[n.state.pivotColumns,n.state.groupBy])}function pt(e){var t=e.columns,n=e.allColumns,r=e.flatHeaders,o=e.getHooks,i=e.plugins,a=e.dispatch,u=e.autoResetPivot,l=void 0===u||u,c=e.manaulPivot,f=e.disablePivot,p=e.defaultCanPivot;g(i,["useGroupBy"],"usePivotColumns");var h=m(e);n.forEach((function(t){var n=t.accessor,r=t.defaultPivot,o=t.disablePivot;t.canPivot=n?M(t.canPivot,!0!==o&&void 0,!0!==f&&void 0,!0):M(t.canPivot,r,p,!1),t.canPivot&&(t.togglePivot=function(){return e.togglePivot(t.id)}),t.Aggregated=t.Aggregated||t.Cell})),r.forEach((function(e){e.getPivotToggleProps=d(o().getPivotToggleProps,{instance:h(),header:e})}));var v=m(l);b((function(){v()&&a({type:s.resetPivot})}),[a,c?null:t]),Object.assign(e,{togglePivot:function(e,t){a({type:s.togglePivot,columnId:e,value:t})}})}function ht(e){e.allCells.forEach((function(e){e.isPivoted=e.column.isPivoted}))}s.resetSelectedRows="resetSelectedRows",s.toggleAllRowsSelected="toggleAllRowsSelected",s.toggleRowSelected="toggleRowSelected",s.toggleAllPageRowsSelected="toggleAllPageRowsSelected";var gt=function(e){e.getToggleRowSelectedProps=[vt],e.getToggleAllRowsSelectedProps=[mt],e.getToggleAllPageRowsSelectedProps=[yt],e.stateReducers.push(bt),e.useInstance.push(wt),e.prepareRow.push(xt)};gt.pluginName="useRowSelect";var vt=function(e,t){var n=t.instance,r=t.row,o=n.manualRowSelectedKey,i=void 0===o?"isSelected":o;return[e,{onChange:function(e){r.toggleRowSelected(e.target.checked)},style:{cursor:"pointer"},checked:!(!r.original||!r.original[i])||r.isSelected,title:"Toggle Row Selected",indeterminate:r.isSomeSelected}]},mt=function(e,t){var n=t.instance;return[e,{onChange:function(e){n.toggleAllRowsSelected(e.target.checked)},style:{cursor:"pointer"},checked:n.isAllRowsSelected,title:"Toggle All Rows Selected",indeterminate:Boolean(!n.isAllRowsSelected&&Object.keys(n.state.selectedRowIds).length)}]},yt=function(e,t){var n=t.instance;return[e,{onChange:function(e){n.toggleAllPageRowsSelected(e.target.checked)},style:{cursor:"pointer"},checked:n.isAllPageRowsSelected,title:"Toggle All Current Page Rows Selected",indeterminate:Boolean(!n.isAllPageRowsSelected&&n.page.some((function(e){var t=e.id;return n.state.selectedRowIds[t]})))}]};function bt(e,t,n,r){if(t.type===s.init)return o({selectedRowIds:{}},e);if(t.type===s.resetSelectedRows)return o({},e,{selectedRowIds:r.initialState.selectedRowIds||{}});if(t.type===s.toggleAllRowsSelected){var i=t.value,a=r.isAllRowsSelected,u=r.rowsById,l=r.nonGroupedRowsById,c=void 0===l?u:l,f=void 0!==i?i:!a,d=Object.assign({},e.selectedRowIds);return f?Object.keys(c).forEach((function(e){d[e]=!0})):Object.keys(c).forEach((function(e){delete d[e]})),o({},e,{selectedRowIds:d})}if(t.type===s.toggleRowSelected){var p=t.id,h=t.value,g=r.rowsById,v=r.selectSubRows,m=void 0===v||v,y=r.getSubRows,b=e.selectedRowIds[p],w=void 0!==h?h:!b;if(b===w)return e;var x=o({},e.selectedRowIds);return function e(t){var n=g[t];if(n&&(n.isGrouped||(w?x[t]=!0:delete x[t]),m&&y(n)))return y(n).forEach((function(t){return e(t.id)}))}(p),o({},e,{selectedRowIds:x})}if(t.type===s.toggleAllPageRowsSelected){var _=t.value,S=r.page,O=r.rowsById,C=r.selectSubRows,E=void 0===C||C,A=r.isAllPageRowsSelected,M=r.getSubRows,k=void 0!==_?_:!A,P=o({},e.selectedRowIds);return S.forEach((function(e){return function e(t){var n=O[t];if(n.isGrouped||(k?P[t]=!0:delete P[t]),E&&M(n))return M(n).forEach((function(t){return e(t.id)}))}(e.id)})),o({},e,{selectedRowIds:P})}return e}function wt(e){var n=e.data,r=e.rows,o=e.getHooks,i=e.plugins,a=e.rowsById,u=e.nonGroupedRowsById,l=void 0===u?a:u,c=e.autoResetSelectedRows,f=void 0===c||c,p=e.state.selectedRowIds,h=e.selectSubRows,v=void 0===h||h,y=e.dispatch,w=e.page,x=e.getSubRows;g(i,["useFilters","useGroupBy","useSortBy","useExpanded","usePagination"],"useRowSelect");var _=t.useMemo((function(){var e=[];return r.forEach((function(t){var n=v?function e(t,n,r){if(n[t.id])return!0;var o=r(t);if(o&&o.length){var i=!0,a=!1;return o.forEach((function(t){a&&!i||(e(t,n,r)?a=!0:i=!1)})),!!i||!!a&&null}return!1}(t,p,x):!!p[t.id];t.isSelected=!!n,t.isSomeSelected=null===n,n&&e.push(t)})),e}),[r,v,p,x]),S=Boolean(Object.keys(l).length&&Object.keys(p).length),O=S;S&&Object.keys(l).some((function(e){return!p[e]}))&&(S=!1),S||w&&w.length&&w.some((function(e){var t=e.id;return!p[t]}))&&(O=!1);var C=m(f);b((function(){C()&&y({type:s.resetSelectedRows})}),[y,n]);var E=t.useCallback((function(e){return y({type:s.toggleAllRowsSelected,value:e})}),[y]),A=t.useCallback((function(e){return y({type:s.toggleAllPageRowsSelected,value:e})}),[y]),M=t.useCallback((function(e,t){return y({type:s.toggleRowSelected,id:e,value:t})}),[y]),k=m(e),P=d(o().getToggleAllRowsSelectedProps,{instance:k()}),R=d(o().getToggleAllPageRowsSelectedProps,{instance:k()});Object.assign(e,{selectedFlatRows:_,isAllRowsSelected:S,isAllPageRowsSelected:O,toggleRowSelected:M,toggleAllRowsSelected:E,getToggleAllRowsSelectedProps:P,getToggleAllPageRowsSelectedProps:R,toggleAllPageRowsSelected:A})}function xt(e,t){var n=t.instance;e.toggleRowSelected=function(t){return n.toggleRowSelected(e.id,t)},e.getToggleRowSelectedProps=d(n.getHooks().getToggleRowSelectedProps,{instance:n,row:e})}var _t=function(e){return{}},St=function(e){return{}};s.setRowState="setRowState",s.setCellState="setCellState",s.resetRowState="resetRowState";var Ot=function(e){e.stateReducers.push(Ct),e.useInstance.push(Et),e.prepareRow.push(At)};function Ct(e,t,n,r){var i=r.initialRowStateAccessor,a=void 0===i?_t:i,u=r.initialCellStateAccessor,l=void 0===u?St:u,c=r.rowsById;if(t.type===s.init)return o({rowState:{}},e);if(t.type===s.resetRowState)return o({},e,{rowState:r.initialState.rowState||{}});if(t.type===s.setRowState){var f,d=t.rowId,p=t.value,h=void 0!==e.rowState[d]?e.rowState[d]:a(c[d]);return o({},e,{rowState:o({},e.rowState,(f={},f[d]=v(p,h),f))})}if(t.type===s.setCellState){var g,m,y,b,w,x=t.rowId,_=t.columnId,S=t.value,O=void 0!==e.rowState[x]?e.rowState[x]:a(c[x]),C=void 0!==(null==O||null==(g=O.cellState)?void 0:g[_])?O.cellState[_]:l(null==(m=c[x])||null==(y=m.cells)?void 0:y.find((function(e){return e.column.id===_})));return o({},e,{rowState:o({},e.rowState,(w={},w[x]=o({},O,{cellState:o({},O.cellState||{},(b={},b[_]=v(S,C),b))}),w))})}}function Et(e){var n=e.autoResetRowState,r=void 0===n||n,o=e.data,i=e.dispatch,a=t.useCallback((function(e,t){return i({type:s.setRowState,rowId:e,value:t})}),[i]),u=t.useCallback((function(e,t,n){return i({type:s.setCellState,rowId:e,columnId:t,value:n})}),[i]),l=m(r);b((function(){l()&&i({type:s.resetRowState})}),[o]),Object.assign(e,{setRowState:a,setCellState:u})}function At(e,t){var n=t.instance,r=n.initialRowStateAccessor,o=void 0===r?_t:r,i=n.initialCellStateAccessor,a=void 0===i?St:i,s=n.state.rowState;e&&(e.state=void 0!==s[e.id]?s[e.id]:o(e),e.setState=function(t){return n.setRowState(e.id,t)},e.cells.forEach((function(t){e.state.cellState||(e.state.cellState={}),t.state=void 0!==e.state.cellState[t.column.id]?e.state.cellState[t.column.id]:a(t),t.setState=function(r){return n.setCellState(e.id,t.column.id,r)}})))}Ot.pluginName="useRowState",s.resetColumnOrder="resetColumnOrder",s.setColumnOrder="setColumnOrder";var Mt=function(e){e.stateReducers.push(kt),e.visibleColumnsDeps.push((function(e,t){var n=t.instance;return[].concat(e,[n.state.columnOrder])})),e.visibleColumns.push(Pt),e.useInstance.push(Rt)};function kt(e,t,n,r){return t.type===s.init?o({columnOrder:[]},e):t.type===s.resetColumnOrder?o({},e,{columnOrder:r.initialState.columnOrder||[]}):t.type===s.setColumnOrder?o({},e,{columnOrder:v(t.columnOrder,e.columnOrder)}):void 0}function Pt(e,t){var n=t.instance.state.columnOrder;if(!n||!n.length)return e;for(var r=[].concat(n),o=[].concat(e),i=[],a=function(){var e=r.shift(),t=o.findIndex((function(t){return t.id===e}));t>-1&&i.push(o.splice(t,1)[0])};o.length&&r.length;)a();return[].concat(i,o)}function Rt(e){var n=e.dispatch;e.setColumnOrder=t.useCallback((function(e){return n({type:s.setColumnOrder,columnOrder:e})}),[n])}Mt.pluginName="useColumnOrder",c.canResize=!0,s.columnStartResizing="columnStartResizing",s.columnResizing="columnResizing",s.columnDoneResizing="columnDoneResizing",s.resetResize="resetResize";var Tt=function(e){e.getResizerProps=[It],e.getHeaderProps.push({style:{position:"relative"}}),e.stateReducers.push(Bt),e.useInstance.push(jt),e.useInstanceBeforeDimensions.push(Dt)},It=function(e,t){var n=t.instance,r=t.header,o=n.dispatch,i=function(e,t){var n=!1;if("touchstart"===e.type){if(e.touches&&e.touches.length>1)return;n=!0}var r,i,a=function(e){var t=[];return function e(n){n.columns&&n.columns.length&&n.columns.map(e),t.push(n)}(e),t}(t).map((function(e){return[e.id,e.totalWidth]})),u=n?Math.round(e.touches[0].clientX):e.clientX,l=function(){window.cancelAnimationFrame(r),r=null,o({type:s.columnDoneResizing})},c=function(){window.cancelAnimationFrame(r),r=null,o({type:s.columnResizing,clientX:i})},f=function(e){i=e,r||(r=window.requestAnimationFrame(c))},d={mouse:{moveEvent:"mousemove",moveHandler:function(e){return f(e.clientX)},upEvent:"mouseup",upHandler:function(e){document.removeEventListener("mousemove",d.mouse.moveHandler),document.removeEventListener("mouseup",d.mouse.upHandler),l()}},touch:{moveEvent:"touchmove",moveHandler:function(e){return e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(e.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(e){document.removeEventListener(d.touch.moveEvent,d.touch.moveHandler),document.removeEventListener(d.touch.upEvent,d.touch.moveHandler),l()}}},p=n?d.touch:d.mouse,h=!!function(){if("boolean"==typeof D)return D;var e=!1;try{var t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(t){e=!1}return D=e}()&&{passive:!1};document.addEventListener(p.moveEvent,p.moveHandler,h),document.addEventListener(p.upEvent,p.upHandler,h),o({type:s.columnStartResizing,columnId:t.id,columnWidth:t.totalWidth,headerIdWidths:a,clientX:u})};return[e,{onMouseDown:function(e){return e.persist()||i(e,r)},onTouchStart:function(e){return e.persist()||i(e,r)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function Bt(e,t){if(t.type===s.init)return o({columnResizing:{columnWidths:{}}},e);if(t.type===s.resetResize)return o({},e,{columnResizing:{columnWidths:{}}});if(t.type===s.columnStartResizing){var n=t.clientX,r=t.columnId,i=t.columnWidth,a=t.headerIdWidths;return o({},e,{columnResizing:o({},e.columnResizing,{startX:n,headerIdWidths:a,columnWidth:i,isResizingColumn:r})})}if(t.type===s.columnResizing){var u=t.clientX,l=e.columnResizing,c=l.startX,f=l.columnWidth,d=l.headerIdWidths,p=(u-c)/f,h={};return(void 0===d?[]:d).forEach((function(e){var t=e[0],n=e[1];h[t]=Math.max(n+n*p,0)})),o({},e,{columnResizing:o({},e.columnResizing,{columnWidths:o({},e.columnResizing.columnWidths,{},h)})})}return t.type===s.columnDoneResizing?o({},e,{columnResizing:o({},e.columnResizing,{startX:null,isResizingColumn:null})}):void 0}Tt.pluginName="useResizeColumns";var Dt=function(e){var t=e.flatHeaders,n=e.disableResizing,r=e.getHooks,o=e.state.columnResizing,i=m(e);t.forEach((function(e){var t=M(!0!==e.disableResizing&&void 0,!0!==n&&void 0,!0);e.canResize=t,e.width=o.columnWidths[e.id]||e.originalWidth||e.width,e.isResizing=o.isResizingColumn===e.id,t&&(e.getResizerProps=d(r().getResizerProps,{instance:i(),header:e}))}))};function jt(e){var n=e.plugins,r=e.dispatch,o=e.autoResetResize,i=void 0===o||o,a=e.columns;g(n,["useAbsoluteLayout"],"useResizeColumns");var u=m(i);b((function(){u()&&r({type:s.resetResize})}),[a]);var l=t.useCallback((function(){return r({type:s.resetResize})}),[r]);Object.assign(e,{resetResizing:l})}var Lt={position:"absolute",top:0},Zt=function(e){e.getTableBodyProps.push(Nt),e.getRowProps.push(Nt),e.getHeaderGroupProps.push(Nt),e.getFooterGroupProps.push(Nt),e.getHeaderProps.push((function(e,t){var n=t.column;return[e,{style:o({},Lt,{left:n.totalLeft+"px",width:n.totalWidth+"px"})}]})),e.getCellProps.push((function(e,t){var n=t.cell;return[e,{style:o({},Lt,{left:n.column.totalLeft+"px",width:n.column.totalWidth+"px"})}]})),e.getFooterProps.push((function(e,t){var n=t.column;return[e,{style:o({},Lt,{left:n.totalLeft+"px",width:n.totalWidth+"px"})}]}))};Zt.pluginName="useAbsoluteLayout";var Nt=function(e,t){return[e,{style:{position:"relative",width:t.instance.totalColumnsWidth+"px"}}]},Ft={display:"inline-block",boxSizing:"border-box"},Ht=function(e,t){return[e,{style:{display:"flex",width:t.instance.totalColumnsWidth+"px"}}]},Vt=function(e){e.getRowProps.push(Ht),e.getHeaderGroupProps.push(Ht),e.getFooterGroupProps.push(Ht),e.getHeaderProps.push((function(e,t){var n=t.column;return[e,{style:o({},Ft,{width:n.totalWidth+"px"})}]})),e.getCellProps.push((function(e,t){var n=t.cell;return[e,{style:o({},Ft,{width:n.column.totalWidth+"px"})}]})),e.getFooterProps.push((function(e,t){var n=t.column;return[e,{style:o({},Ft,{width:n.totalWidth+"px"})}]}))};function zt(e){e.getTableProps.push(Ut),e.getRowProps.push(Gt),e.getHeaderGroupProps.push(Gt),e.getFooterGroupProps.push(Gt),e.getHeaderProps.push(Wt),e.getCellProps.push($t),e.getFooterProps.push(qt)}Vt.pluginName="useBlockLayout",zt.pluginName="useFlexLayout";var Ut=function(e,t){return[e,{style:{minWidth:t.instance.totalColumnsMinWidth+"px"}}]},Gt=function(e,t){return[e,{style:{display:"flex",flex:"1 0 auto",minWidth:t.instance.totalColumnsMinWidth+"px"}}]},Wt=function(e,t){var n=t.column;return[e,{style:{boxSizing:"border-box",flex:n.totalFlexWidth?n.totalFlexWidth+" 0 auto":void 0,minWidth:n.totalMinWidth+"px",width:n.totalWidth+"px"}}]},$t=function(e,t){var n=t.cell;return[e,{style:{boxSizing:"border-box",flex:n.column.totalFlexWidth+" 0 auto",minWidth:n.column.totalMinWidth+"px",width:n.column.totalWidth+"px"}}]},qt=function(e,t){var n=t.column;return[e,{style:{boxSizing:"border-box",flex:n.totalFlexWidth?n.totalFlexWidth+" 0 auto":void 0,minWidth:n.totalMinWidth+"px",width:n.totalWidth+"px"}}]};function Yt(e){e.stateReducers.push(Qt),e.getTableProps.push(Xt),e.getHeaderProps.push(Kt),e.getRowProps.push(Jt)}s.columnStartResizing="columnStartResizing",s.columnResizing="columnResizing",s.columnDoneResizing="columnDoneResizing",s.resetResize="resetResize",Yt.pluginName="useGridLayout";var Xt=function(e,t){var n=t.instance;return[e,{style:{display:"grid",gridTemplateColumns:n.visibleColumns.map((function(e){var t;return n.state.gridLayout.columnWidths[e.id]?n.state.gridLayout.columnWidths[e.id]+"px":(null==(t=n.state.columnResizing)?void 0:t.isResizingColumn)?n.state.gridLayout.startWidths[e.id]+"px":"number"==typeof e.width?e.width+"px":e.width})).join(" ")}}]},Kt=function(e,t){var n=t.column;return[e,{id:"header-cell-"+n.id,style:{position:"sticky",gridColumn:"span "+n.totalVisibleHeaderCount}}]},Jt=function(e,t){var n=t.row;return n.isExpanded?[e,{style:{gridColumn:"1 / "+(n.cells.length+1)}}]:[e,{}]};function Qt(e,t,n,r){if(t.type===s.init)return o({gridLayout:{columnWidths:{}}},e);if(t.type===s.resetResize)return o({},e,{gridLayout:{columnWidths:{}}});if(t.type===s.columnStartResizing){var i=t.columnId,a=t.headerIdWidths,u=en(i);if(void 0!==u){var l=r.visibleColumns.reduce((function(e,t){var n;return o({},e,((n={})[t.id]=en(t.id),n))}),{}),c=r.visibleColumns.reduce((function(e,t){var n;return o({},e,((n={})[t.id]=t.minWidth,n))}),{}),f=r.visibleColumns.reduce((function(e,t){var n;return o({},e,((n={})[t.id]=t.maxWidth,n))}),{}),d=a.map((function(e){var t=e[0];return[t,en(t)]}));return o({},e,{gridLayout:o({},e.gridLayout,{startWidths:l,minWidths:c,maxWidths:f,headerIdGridWidths:d,columnWidth:u})})}return e}if(t.type===s.columnResizing){var p=t.clientX,h=e.columnResizing.startX,g=e.gridLayout,v=g.columnWidth,m=g.minWidths,y=g.maxWidths,b=g.headerIdGridWidths,w=(p-h)/v,x={};return(void 0===b?[]:b).forEach((function(e){var t=e[0],n=e[1];x[t]=Math.min(Math.max(m[t],n+n*w),y[t])})),o({},e,{gridLayout:o({},e.gridLayout,{columnWidths:o({},e.gridLayout.columnWidths,{},x)})})}return t.type===s.columnDoneResizing?o({},e,{gridLayout:o({},e.gridLayout,{startWidths:{},minWidths:{},maxWidths:{}})}):void 0}function en(e){var t,n=null==(t=document.getElementById("header-cell-"+e))?void 0:t.offsetWidth;if(void 0!==n)return n}e._UNSTABLE_usePivotColumns=nt,e.actions=s,e.defaultColumn=c,e.defaultGroupByFn=Ve,e.defaultOrderByFn=Je,e.defaultRenderer=u,e.emptyRenderer=l,e.ensurePluginOrder=g,e.flexRender=x,e.functionalUpdate=v,e.loopHooks=h,e.makePropGetter=d,e.makeRenderer=w,e.reduceHooks=p,e.safeUseLayoutEffect=y,e.useAbsoluteLayout=Zt,e.useAsyncDebounce=function(e,n){void 0===n&&(n=0);var o=t.useRef({}),i=m(e),a=m(n);return t.useCallback(function(){var e=r(regeneratorRuntime.mark((function e(){var t,n,s,u=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(t=u.length,n=new Array(t),s=0;s<t;s++)n[s]=u[s];return o.current.promise||(o.current.promise=new Promise((function(e,t){o.current.resolve=e,o.current.reject=t}))),o.current.timeout&&clearTimeout(o.current.timeout),o.current.timeout=setTimeout(r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return delete o.current.timeout,e.prev=1,e.t0=o.current,e.next=5,i().apply(void 0,n);case 5:e.t1=e.sent,e.t0.resolve.call(e.t0,e.t1),e.next=12;break;case 9:e.prev=9,e.t2=e.catch(1),o.current.reject(e.t2);case 12:return e.prev=12,delete o.current.promise,e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[1,9,12,15]])}))),a()),e.abrupt("return",o.current.promise);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),[i,a])},e.useBlockLayout=Vt,e.useColumnOrder=Mt,e.useExpanded=ue,e.useFilters=Ce,e.useFlexLayout=zt,e.useGetLatest=m,e.useGlobalFilter=Me,e.useGridLayout=Yt,e.useGroupBy=De,e.useMountedLayoutEffect=b,e.usePagination=Qe,e.useResizeColumns=Tt,e.useRowSelect=gt,e.useRowState=Ot,e.useSortBy=qe,e.useTable=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];e=ie(e),r=[$].concat(r);var a=m(t.useRef({}).current);Object.assign(a(),o({},e,{plugins:r,hooks:W()})),r.filter(Boolean).forEach((function(e){e(a().hooks)}));var u=m(a().hooks);a().getHooks=u,delete a().hooks,Object.assign(a(),p(u().useOptions,ie(e)));var l=a(),c=l.data,f=l.columns,g=l.initialState,v=l.defaultColumn,y=l.getSubRows,b=l.getRowId,x=l.stateReducer,A=l.useControlledState,M=m(x),k=t.useCallback((function(e,t){if(!t.type)throw console.info({action:t}),new Error("Unknown Action \ud83d\udc46");return[].concat(u().stateReducers,Array.isArray(M())?M():[M()]).reduce((function(n,r){return r(n,t,e,a())||n}),e)}),[u,M,a]),P=t.useReducer(k,void 0,(function(){return k(g,{type:s.init})})),R=P[0],T=P[1],I=p([].concat(u().useControlledState,[A]),R,{instance:a()});Object.assign(a(),{state:I,dispatch:T});var B=t.useMemo((function(){return _(p(u().columns,f,{instance:a()}))}),[u,a,f].concat(p(u().columnsDeps,[],{instance:a()})));a().columns=B;var D=t.useMemo((function(){return p(u().allColumns,S(B),{instance:a()}).map(O)}),[B,u,a].concat(p(u().allColumnsDeps,[],{instance:a()})));a().allColumns=D;var j=t.useMemo((function(){for(var e=[],t=[],n={},r=[].concat(D);r.length;){var o=r.shift();se({data:c,rows:e,flatRows:t,rowsById:n,column:o,getRowId:b,getSubRows:y,accessValueHooks:u().accessValue,getInstance:a})}return[e,t,n]}),[D,c,b,y,u,a]),L=j[0],Z=j[1],N=j[2];Object.assign(a(),{rows:L,initialRows:[].concat(L),flatRows:Z,rowsById:N}),h(u().useInstanceAfterData,a());var F=t.useMemo((function(){return p(u().visibleColumns,D,{instance:a()}).map((function(e){return C(e,v)}))}),[u,D,a,v].concat(p(u().visibleColumnsDeps,[],{instance:a()})));D=t.useMemo((function(){var e=[].concat(F);return D.forEach((function(t){e.find((function(e){return e.id===t.id}))||e.push(t)})),e}),[D,F]),a().allColumns=D;var H=t.useMemo((function(){return p(u().headerGroups,E(F,v),a())}),[u,F,v,a].concat(p(u().headerGroupsDeps,[],{instance:a()})));a().headerGroups=H;var V=t.useMemo((function(){return H.length?H[0].headers:[]}),[H]);a().headers=V,a().flatHeaders=H.reduce((function(e,t){return[].concat(e,t.headers)}),[]),h(u().useInstanceBeforeDimensions,a());var z=F.filter((function(e){return e.isVisible})).map((function(e){return e.id})).sort().join("_");F=t.useMemo((function(){return F.filter((function(e){return e.isVisible}))}),[F,z]),a().visibleColumns=F;var U=ae(V),G=U[0],q=U[1],Y=U[2];return a().totalColumnsMinWidth=G,a().totalColumnsWidth=q,a().totalColumnsMaxWidth=Y,h(u().useInstance,a()),[].concat(a().flatHeaders,a().allColumns).forEach((function(e){e.render=w(a(),e),e.getHeaderProps=d(u().getHeaderProps,{instance:a(),column:e}),e.getFooterProps=d(u().getFooterProps,{instance:a(),column:e})})),a().headerGroups=t.useMemo((function(){return H.filter((function(e,t){return e.headers=e.headers.filter((function(e){return e.headers?function e(t){return t.filter((function(t){return t.headers?e(t.headers):t.isVisible})).length}(e.headers):e.isVisible})),!!e.headers.length&&(e.getHeaderGroupProps=d(u().getHeaderGroupProps,{instance:a(),headerGroup:e,index:t}),e.getFooterGroupProps=d(u().getFooterGroupProps,{instance:a(),headerGroup:e,index:t}),!0)}))}),[H,a,u]),a().footerGroups=[].concat(a().headerGroups).reverse(),a().prepareRow=t.useCallback((function(e){e.getRowProps=d(u().getRowProps,{instance:a(),row:e}),e.allCells=D.map((function(t){var n=e.values[t.id],r={column:t,row:e,value:n};return r.getCellProps=d(u().getCellProps,{instance:a(),cell:r}),r.render=w(a(),t,{row:e,cell:r,value:n}),r})),e.cells=F.map((function(t){return e.allCells.find((function(e){return e.column.id===t.id}))})),h(u().prepareRow,e,{instance:a()})}),[u,a,D,F]),a().getTableProps=d(u().getTableProps,{instance:a()}),a().getTableBodyProps=d(u().getTableBodyProps,{instance:a()}),h(u().useFinalInstance,a()),a()},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(67294))},79521:function(e,t,n){e.exports=n(40217)},30644:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(67294);function o(){var e=(0,r.useRef)(!0);return e.current?(e.current=!1,!0):e.current}},48286:function(e,t,n){"use strict";var r=n(67294),o=n(30644);t.Z=function(e,t){var n=(0,o.Z)();(0,r.useEffect)((function(){if(!n)return e()}),t)}},88387:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNavigator=t.isBrowser=t.off=t.on=t.noop=void 0;t.noop=function(){},t.on=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)},t.off=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)},t.isBrowser="undefined"!==typeof window,t.isNavigator="undefined"!==typeof navigator},21337:function(e,t,n){"use strict";var r=n(70655),o=n(67294),i=r.__importDefault(n(82370));t.Z=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=[]);var r=i.default(e,t),a=r[0],s=r[1],u=r[2];return o.useEffect(u,n),[a,s]}},91784:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useFirstMountState=void 0;var r=n(67294);t.useFirstMountState=function(){var e=r.useRef(!0);return e.current?(e.current=!1,!0):e.current}},27539:function(e,t,n){"use strict";var r=n(67294),o=n(88387);t.Z=function(e,t,n){if(!o.isBrowser)return[t,o.noop,o.noop];if(!e)throw new Error("useLocalStorage key may not be falsy");var i=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,a=r.useRef((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,o=localStorage.getItem(e);return null!==o?i(o):(t&&localStorage.setItem(e,r(t)),t)}catch(s){return t}})),s=r.useState((function(){return a.current(e)})),u=s[0],l=s[1];r.useLayoutEffect((function(){return l(a.current(e))}),[e]);var c=r.useCallback((function(t){try{var r="function"===typeof t?t(u):t;if("undefined"===typeof r)return;var o=void 0;o=n?n.raw?"string"===typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,o),l(i(o))}catch(s){}}),[e,l]),f=r.useCallback((function(){try{localStorage.removeItem(e),l(void 0)}catch(s){}}),[e,l]);return[u,c,f]}},68434:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e){var t=r.useRef();return r.useEffect((function(){t.current=e})),t.current}},78382:function(e,t,n){"use strict";var r=n(67294),o=n(91784),i=function(e,t){return e===t};t.Z=function(e,t){void 0===t&&(t=i);var n=r.useRef(),a=r.useRef(e);return o.useFirstMountState()||t(a.current,e)||(n.current=a.current,a.current=e),n.current}},82370:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(67294);t.default=function(e,t){void 0===t&&(t=0);var n=r.useRef(!1),o=r.useRef(),i=r.useRef(e),a=r.useCallback((function(){return n.current}),[]),s=r.useCallback((function(){n.current=!1,o.current&&clearTimeout(o.current),o.current=setTimeout((function(){n.current=!0,i.current()}),t)}),[t]),u=r.useCallback((function(){n.current=null,o.current&&clearTimeout(o.current)}),[]);return r.useEffect((function(){i.current=e}),[e]),r.useEffect((function(){return s(),u}),[t]),[a,u,s]}},73809:function(e,t,n){"use strict";var r=n(67294),o=function(e,t){return"boolean"===typeof t?t:!e};t.Z=function(e){return r.useReducer(o,e)}},21794:function(e,t,n){"use strict";var r=n(67294),o=n(91784);t.Z=function(e,t){var n=o.useFirstMountState();r.useEffect((function(){if(!n)return e()}),t)}},72408:function(e,t){"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),u=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,v={};function m(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||h}function y(){}function b(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||h}m.prototype.isReactComponent={},m.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},m.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=m.prototype;var w=b.prototype=new y;w.constructor=b,g(w,m.prototype),w.isPureReactComponent=!0;var x=Array.isArray,_=Object.prototype.hasOwnProperty,S={current:null},O={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,r){var o,i={},a=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)_.call(t,o)&&!O.hasOwnProperty(o)&&(i[o]=t[o]);var u=arguments.length-2;if(1===u)i.children=r;else if(1<u){for(var l=Array(u),c=0;c<u;c++)l[c]=arguments[c+2];i.children=l}if(e&&e.defaultProps)for(o in u=e.defaultProps)void 0===i[o]&&(i[o]=u[o]);return{$$typeof:n,type:e,key:a,ref:s,props:i,_owner:S.current}}function E(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function M(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function k(e,t,o,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var u=!1;if(null===e)u=!0;else switch(s){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case n:case r:u=!0}}if(u)return a=a(u=e),e=""===i?"."+M(u,0):i,x(a)?(o="",null!=e&&(o=e.replace(A,"$&/")+"/"),k(a,t,o,"",(function(e){return e}))):null!=a&&(E(a)&&(a=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,o+(!a.key||u&&u.key===a.key?"":(""+a.key).replace(A,"$&/")+"/")+e)),t.push(a)),1;if(u=0,i=""===i?".":i+":",x(e))for(var l=0;l<e.length;l++){var c=i+M(s=e[l],l);u+=k(s,t,o,c,a)}else if(c=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"===typeof c)for(e=c.call(e),l=0;!(s=e.next()).done;)u+=k(s=s.value,t,o,c=i+M(s,l++),a);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return u}function P(e,t,n){if(null==e)return e;var r=[],o=0;return k(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function R(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var T={current:null},I={transition:null},B={ReactCurrentDispatcher:T,ReactCurrentBatchConfig:I,ReactCurrentOwner:S};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=m,t.Fragment=o,t.Profiler=a,t.PureComponent=b,t.StrictMode=i,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=g({},e.props),i=e.key,a=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,s=S.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(l in t)_.call(t,l)&&!O.hasOwnProperty(l)&&(o[l]=void 0===t[l]&&void 0!==u?u[l]:t[l])}var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){u=Array(l);for(var c=0;c<l;c++)u[c]=arguments[c+2];o.children=u}return{$$typeof:n,type:e.type,key:i,ref:a,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:u,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:l,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:R}},t.memo=function(e,t){return{$$typeof:f,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=I.transition;I.transition={};try{e()}finally{I.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return T.current.useCallback(e,t)},t.useContext=function(e){return T.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return T.current.useDeferredValue(e)},t.useEffect=function(e,t){return T.current.useEffect(e,t)},t.useId=function(){return T.current.useId()},t.useImperativeHandle=function(e,t,n){return T.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return T.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return T.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return T.current.useMemo(e,t)},t.useReducer=function(e,t,n){return T.current.useReducer(e,t,n)},t.useRef=function(e){return T.current.useRef(e)},t.useState=function(e){return T.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return T.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return T.current.useTransition()},t.version="18.2.0"},67294:function(e,t,n){"use strict";e.exports=n(72408)},4480:function(e,t,n){"use strict";n.d(t,{$P:function(){return vs},C:function(){return ws},CG:function(){return hs},FV:function(){return ms},Wh:function(){return cs},Zl:function(){return ys},_8:function(){return xs},cn:function(){return fs},nZ:function(){return ds},rb:function(){return bs},sJ:function(){return gs},xu:function(){return ps}});var r=n(67294),o=n(73935);var i=function(e){const t=new Error(e);if(void 0===t.stack)try{throw t}catch(n){}return t};var a=function(e){return!!e&&"function"===typeof e.then};var s=function(e,t){if(null!=e)return e;throw i(null!==t&&void 0!==t?t:"Got unexpected null or undefined")};function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class l{getValue(){throw i("BaseLoadable")}toPromise(){throw i("BaseLoadable")}valueMaybe(){throw i("BaseLoadable")}valueOrThrow(){throw i(`Loadable expected value, but in "${this.state}" state`)}promiseMaybe(){throw i("BaseLoadable")}promiseOrThrow(){throw i(`Loadable expected promise, but in "${this.state}" state`)}errorMaybe(){throw i("BaseLoadable")}errorOrThrow(){throw i(`Loadable expected error, but in "${this.state}" state`)}is(e){return e.state===this.state&&e.contents===this.contents}map(e){throw i("BaseLoadable")}}class c extends l{constructor(e){super(),u(this,"state","hasValue"),u(this,"contents",void 0),this.contents=e}getValue(){return this.contents}toPromise(){return Promise.resolve(this.contents)}valueMaybe(){return this.contents}valueOrThrow(){return this.contents}promiseMaybe(){}errorMaybe(){}map(e){try{const t=e(this.contents);return a(t)?g(t):y(t)?t:p(t)}catch(t){return a(t)?g(t.next((()=>this.map(e)))):h(t)}}}class f extends l{constructor(e){super(),u(this,"state","hasError"),u(this,"contents",void 0),this.contents=e}getValue(){throw this.contents}toPromise(){return Promise.reject(this.contents)}valueMaybe(){}promiseMaybe(){}errorMaybe(){return this.contents}errorOrThrow(){return this.contents}map(e){return this}}class d extends l{constructor(e){super(),u(this,"state","loading"),u(this,"contents",void 0),this.contents=e}getValue(){throw this.contents}toPromise(){return this.contents}valueMaybe(){}promiseMaybe(){return this.contents}promiseOrThrow(){return this.contents}errorMaybe(){}map(e){return g(this.contents.then((t=>{const n=e(t);if(y(n)){const e=n;switch(e.state){case"hasValue":case"loading":return e.contents;case"hasError":throw e.contents}}return n})).catch((t=>{if(a(t))return t.then((()=>this.map(e).contents));throw t})))}}function p(e){return Object.freeze(new c(e))}function h(e){return Object.freeze(new f(e))}function g(e){return Object.freeze(new d(e))}function v(){return Object.freeze(new d(new Promise((()=>{}))))}function m(e){const t=function(e){return e.every((e=>"hasValue"===e.state))?p(e.map((e=>e.contents))):e.some((e=>"hasError"===e.state))?h(s(e.find((e=>"hasError"===e.state)),"Invalid loadable passed to loadableAll").contents):g(Promise.all(e.map((e=>e.contents))))}((Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((t=>e[t]))).map((e=>y(e)?e:a(e)?g(e):p(e))));return Array.isArray(e)?t:t.map((t=>Object.getOwnPropertyNames(e).reduce(((e,n,r)=>({...e,[n]:t[r]})),{})))}function y(e){return e instanceof l}const b={of:e=>a(e)?g(e):y(e)?e:p(e),error:e=>h(e),loading:()=>v(),all:m,isLoadable:y};var w={loadableWithValue:p,loadableWithError:h,loadableWithPromise:g,loadableLoading:v,loadableAll:m,isLoadable:y,RecoilLoadable:b},x=w.loadableWithValue,_=w.loadableWithError,S=w.loadableWithPromise,O=w.loadableLoading,C=w.loadableAll,E=w.isLoadable,A=w.RecoilLoadable,M=Object.freeze({__proto__:null,loadableWithValue:x,loadableWithError:_,loadableWithPromise:S,loadableLoading:O,loadableAll:C,isLoadable:E,RecoilLoadable:A});const k={RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED:!0,RECOIL_GKS_ENABLED:new Set(["recoil_hamt_2020","recoil_sync_external_store","recoil_suppress_rerender_in_callback","recoil_memory_managament_2020"])};!function(){var e;"undefined"!==typeof process&&null!=(null===(e=process)||void 0===e?void 0:e.env)&&(function(e,t){var n,r;const o=null===(n=process.env[e])||void 0===n||null===(r=n.toLowerCase())||void 0===r?void 0:r.trim();if(null==o||""===o)return;if(!["true","false"].includes(o))throw i(`process.env.${e} value must be 'true', 'false', or empty: ${o}`);t("true"===o)}("RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED",(e=>{k.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=e})),function(e,t){var n;const r=null===(n=process.env[e])||void 0===n?void 0:n.trim();null!=r&&""!==r&&t(r.split(/\s*,\s*|\s+/))}("RECOIL_GKS_ENABLED",(e=>{e.forEach((e=>{k.RECOIL_GKS_ENABLED.add(e)}))})))}();var P=k;function R(e){return P.RECOIL_GKS_ENABLED.has(e)}R.setPass=e=>{P.RECOIL_GKS_ENABLED.add(e)},R.setFail=e=>{P.RECOIL_GKS_ENABLED.delete(e)},R.clear=()=>{P.RECOIL_GKS_ENABLED.clear()};var T=R;var I,B,D,j=function(e,t,{error:n}={}){return null};const L=null!==(I=r.createMutableSource)&&void 0!==I?I:r.unstable_createMutableSource,Z=null!==(B=r.useMutableSource)&&void 0!==B?B:r.unstable_useMutableSource,N=null!==(D=r.useSyncExternalStore)&&void 0!==D?D:r.unstable_useSyncExternalStore;let F=!1;var H={createMutableSource:L,useMutableSource:Z,useSyncExternalStore:N,currentRendererSupportsUseSyncExternalStore:function(){var e;const{ReactCurrentDispatcher:t,ReactCurrentOwner:n}=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,o=null!=(null!==(e=null===t||void 0===t?void 0:t.current)&&void 0!==e?e:n.currentDispatcher).useSyncExternalStore;return!N||o||F||(F=!0,j("A React renderer without React 18+ API support is being used with React 18+.")),o},reactMode:function(){return T("recoil_transition_support")?{mode:"TRANSITION_SUPPORT",early:!0,concurrent:!0}:T("recoil_sync_external_store")&&null!=N?{mode:"SYNC_EXTERNAL_STORE",early:!0,concurrent:!1}:T("recoil_mutable_source")&&null!=Z&&"undefined"!==typeof window&&!window.$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE?T("recoil_suppress_rerender_in_callback")?{mode:"MUTABLE_SOURCE",early:!0,concurrent:!0}:{mode:"MUTABLE_SOURCE",early:!1,concurrent:!1}:T("recoil_suppress_rerender_in_callback")?{mode:"LEGACY",early:!0,concurrent:!1}:{mode:"LEGACY",early:!1,concurrent:!1}},isFastRefreshEnabled:function(){return!1}};class V{constructor(e){u(this,"key",void 0),this.key=e}toJSON(){return{key:this.key}}}class z extends V{}class U extends V{}var G={AbstractRecoilValue:V,RecoilState:z,RecoilValueReadOnly:U,isRecoilValue:function(e){return e instanceof z||e instanceof U}},W=G.AbstractRecoilValue,$=G.RecoilState,q=G.RecoilValueReadOnly,Y=G.isRecoilValue,X=Object.freeze({__proto__:null,AbstractRecoilValue:W,RecoilState:$,RecoilValueReadOnly:q,isRecoilValue:Y});var K=function(e,...t){0};var J=function(e,t){return function*(){let n=0;for(const r of e)yield t(r,n++)}()};const{isFastRefreshEnabled:Q}=H;class ee{}const te=new ee,ne=new Map,re=new Map;class oe extends Error{}const ie=new Map;function ae(e){return ie.get(e)}var se={nodes:ne,recoilValues:re,registerNode:function(e){P.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED&&function(e){if(ne.has(e)){const t=`Duplicate atom key "${e}". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.`;console.warn(t)}}(e.key),ne.set(e.key,e);const t=null==e.set?new X.RecoilValueReadOnly(e.key):new X.RecoilState(e.key);return re.set(e.key,t),t},getNode:function(e){const t=ne.get(e);if(null==t)throw new oe(`Missing definition for RecoilValue: "${e}""`);return t},getNodeMaybe:function(e){return ne.get(e)},deleteNodeConfigIfPossible:function(e){var t;if(!T("recoil_memory_managament_2020"))return;const n=ne.get(e);var r;null!==n&&void 0!==n&&null!==(t=n.shouldDeleteConfigOnRelease)&&void 0!==t&&t.call(n)&&(ne.delete(e),null===(r=ae(e))||void 0===r||r(),ie.delete(e))},setConfigDeletionHandler:function(e,t){T("recoil_memory_managament_2020")&&(void 0===t?ie.delete(e):ie.set(e,t))},getConfigDeletionHandler:ae,recoilValuesForKeys:function(e){return J(e,(e=>s(re.get(e))))},NodeMissingError:oe,DefaultValue:ee,DEFAULT_VALUE:te};var ue={enqueueExecution:function(e,t){t()}};var le,ce,fe=(le=function(e){var t="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n={},r=Math.pow(2,5),o=r-1,i=r/2,a=r/4,s={},u=function(e){return function(){return e}},l=n.hash=function(e){var n="undefined"===typeof e?"undefined":t(e);if("number"===n)return e;"string"!==n&&(e+="");for(var r=0,o=0,i=e.length;o<i;++o)r=(r<<5)-r+e.charCodeAt(o)|0;return r},c=function(e,t){return t>>>e&o},f=function(e){return 1<<e},d=function(e,t){return n=e&t-1,n=(n=(858993459&(n-=n>>1&1431655765))+(n>>2&858993459))+(n>>4)&252645135,127&(n+=n>>8)+(n>>16);var n},p=function(e,t,n,r){var o=r;if(!e){var i=r.length;o=new Array(i);for(var a=0;a<i;++a)o[a]=r[a]}return o[t]=n,o},h=function(e,t,n){var r=n.length-1,o=0,i=0,a=n;if(e)o=i=t;else for(a=new Array(r);o<t;)a[i++]=n[o++];for(++o;o<=r;)a[i++]=n[o++];return e&&(a.length=r),a},g={__hamt_isEmpty:!0},v=function(e){return e===g||e&&e.__hamt_isEmpty},m=function(e,t,n,r){return{type:1,edit:e,hash:t,key:n,value:r,_modify:S}},y=function(e,t,n){return{type:2,edit:e,hash:t,children:n,_modify:O}},b=function(e,t,n){return{type:3,edit:e,mask:t,children:n,_modify:C}},w=function(e,t,n){return{type:4,edit:e,size:t,children:n,_modify:E}},x=function e(t,n,r,o,i,a){if(r===i)return y(t,r,[a,o]);var s=c(n,r),u=c(n,i);return b(t,f(s)|f(u),s===u?[e(t,n+5,r,o,i,a)]:s<u?[o,a]:[a,o])},_=function(e,t){return e===t.edit},S=function(e,t,n,r,o,i,a){if(t(i,this.key)){var u=r(this.value);return u===this.value?this:u===s?(--a.value,g):_(e,this)?(this.value=u,this):m(e,o,i,u)}var l=r();return l===s?this:(++a.value,x(e,n,this.hash,this,o,m(e,o,i,l)))},O=function(e,t,n,r,o,i,a){if(o===this.hash){var u=function(e,t,n,r,o,i,a,u){for(var l=o.length,c=0;c<l;++c){var f=o[c];if(n(a,f.key)){var d=f.value,g=i(d);return g===d?o:g===s?(--u.value,h(e,c,o)):p(e,c,m(t,r,a,g),o)}}var v=i();return v===s?o:(++u.value,p(e,l,m(t,r,a,v),o))}(_(e,this),e,t,this.hash,this.children,r,i,a);return u===this.children?this:u.length>1?y(e,this.hash,u):u[0]}var l=r();return l===s?this:(++a.value,x(e,n,this.hash,this,o,m(e,o,i,l)))},C=function(e,t,n,r,o,a,s){var u=this.mask,l=this.children,m=c(n,o),y=f(m),x=d(u,y),S=u&y,O=S?l[x]:g,C=O._modify(e,t,n+5,r,o,a,s);if(O===C)return this;var E=_(e,this),A=u,M=void 0;if(S&&v(C)){if(!(A&=~y))return g;if(l.length<=2&&function(e){return e===g||1===e.type||2===e.type}(l[1^x]))return l[1^x];M=h(E,x,l)}else if(S||v(C))M=p(E,x,C,l);else{if(l.length>=i)return function(e,t,n,r,o){for(var i=[],a=r,s=0,u=0;a;++u)1&a&&(i[u]=o[s++]),a>>>=1;return i[t]=n,w(e,s+1,i)}(e,m,C,u,l);A|=y,M=function(e,t,n,r){var o=r.length;if(e){for(var i=o;i>=t;)r[i--]=r[i];return r[t]=n,r}for(var a=0,s=0,u=new Array(o+1);a<t;)u[s++]=r[a++];for(u[t]=n;a<o;)u[++s]=r[a++];return u}(E,x,C,l)}return E?(this.mask=A,this.children=M,this):b(e,A,M)},E=function(e,t,n,r,o,i,s){var u=this.size,l=this.children,f=c(n,o),d=l[f],h=(d||g)._modify(e,t,n+5,r,o,i,s);if(d===h)return this;var m=_(e,this),y=void 0;if(v(d)&&!v(h))++u,y=p(m,f,h,l);else if(!v(d)&&v(h)){if(--u<=a)return function(e,t,n,r){for(var o=new Array(t-1),i=0,a=0,s=0,u=r.length;s<u;++s)if(s!==n){var l=r[s];l&&!v(l)&&(o[i++]=l,a|=1<<s)}return b(e,a,o)}(e,u,f,l);y=p(m,f,g,l)}else y=p(m,f,h,l);return m?(this.size=u,this.children=y,this):w(e,u,y)};function A(e,t,n,r,o){this._editable=e,this._edit=t,this._config=n,this._root=r,this._size=o}g._modify=function(e,t,n,r,o,i,a){var u=r();return u===s?g:(++a.value,m(e,o,i,u))},A.prototype.setTree=function(e,t){return this._editable?(this._root=e,this._size=t,this):e===this._root?this:new A(this._editable,this._edit,this._config,e,t)};var M=n.tryGetHash=function(e,t,n,r){for(var o=r._root,i=0,a=r._config.keyEq;;)switch(o.type){case 1:return a(n,o.key)?o.value:e;case 2:if(t===o.hash)for(var s=o.children,u=0,l=s.length;u<l;++u){var p=s[u];if(a(n,p.key))return p.value}return e;case 3:var h=c(i,t),g=f(h);if(o.mask&g){o=o.children[d(o.mask,g)],i+=5;break}return e;case 4:if(o=o.children[c(i,t)]){i+=5;break}return e;default:return e}};A.prototype.tryGetHash=function(e,t,n){return M(e,t,n,this)};var k=n.tryGet=function(e,t,n){return M(e,n._config.hash(t),t,n)};A.prototype.tryGet=function(e,t){return k(e,t,this)};var P=n.getHash=function(e,t,n){return M(void 0,e,t,n)};A.prototype.getHash=function(e,t){return P(e,t,this)},n.get=function(e,t){return M(void 0,t._config.hash(e),e,t)},A.prototype.get=function(e,t){return k(t,e,this)};var R=n.has=function(e,t,n){return M(s,e,t,n)!==s};A.prototype.hasHash=function(e,t){return R(e,t,this)};var T=n.has=function(e,t){return R(t._config.hash(e),e,t)};A.prototype.has=function(e){return T(e,this)};var I=function(e,t){return e===t};n.make=function(e){return new A(0,0,{keyEq:e&&e.keyEq||I,hash:e&&e.hash||l},g,0)},n.empty=n.make();var B=n.isEmpty=function(e){return e&&!!v(e._root)};A.prototype.isEmpty=function(){return B(this)};var D=n.modifyHash=function(e,t,n,r){var o={value:r._size},i=r._root._modify(r._editable?r._edit:NaN,r._config.keyEq,0,e,t,n,o);return r.setTree(i,o.value)};A.prototype.modifyHash=function(e,t,n){return D(n,e,t,this)};var j=n.modify=function(e,t,n){return D(e,n._config.hash(t),t,n)};A.prototype.modify=function(e,t){return j(t,e,this)};var L=n.setHash=function(e,t,n,r){return D(u(n),e,t,r)};A.prototype.setHash=function(e,t,n){return L(e,t,n,this)};var Z=n.set=function(e,t,n){return L(n._config.hash(e),e,t,n)};A.prototype.set=function(e,t){return Z(e,t,this)};var N=u(s),F=n.removeHash=function(e,t,n){return D(N,e,t,n)};A.prototype.removeHash=A.prototype.deleteHash=function(e,t){return F(e,t,this)};var H=n.remove=function(e,t){return F(t._config.hash(e),e,t)};A.prototype.remove=A.prototype.delete=function(e){return H(e,this)};var V=n.beginMutation=function(e){return new A(e._editable+1,e._edit+1,e._config,e._root,e._size)};A.prototype.beginMutation=function(){return V(this)};var z=n.endMutation=function(e){return e._editable=e._editable&&e._editable-1,e};A.prototype.endMutation=function(){return z(this)};var U=n.mutate=function(e,t){var n=V(t);return e(n),z(n)};A.prototype.mutate=function(e){return U(e,this)};var G=function(e){return e&&W(e[0],e[1],e[2],e[3],e[4])},W=function(e,t,n,r,o){for(;n<e;){var i=t[n++];if(i&&!v(i))return $(i,r,[e,t,n,r,o])}return G(o)},$=function(e,t,n){switch(e.type){case 1:return{value:t(e),rest:n};case 2:case 4:case 3:var r=e.children;return W(r.length,r,0,t,n);default:return G(n)}},q={done:!0};function Y(e){this.v=e}Y.prototype.next=function(){if(!this.v)return q;var e=this.v;return this.v=G(e.rest),e},Y.prototype[Symbol.iterator]=function(){return this};var X=function(e,t){return new Y($(e._root,t))},K=function(e){return[e.key,e.value]},J=n.entries=function(e){return X(e,K)};A.prototype.entries=A.prototype[Symbol.iterator]=function(){return J(this)};var Q=function(e){return e.key},ee=n.keys=function(e){return X(e,Q)};A.prototype.keys=function(){return ee(this)};var te=function(e){return e.value},ne=n.values=A.prototype.values=function(e){return X(e,te)};A.prototype.values=function(){return ne(this)};var re=n.fold=function(e,t,n){var r=n._root;if(1===r.type)return e(t,r.value,r.key);for(var o=[r.children],i=void 0;i=o.pop();)for(var a=0,s=i.length;a<s;){var u=i[a++];u&&u.type&&(1===u.type?t=e(t,u.value,u.key):o.push(u.children))}return t};A.prototype.fold=function(e,t){return re(e,t,this)};var oe=n.forEach=function(e,t){return re((function(n,r,o){return e(r,o,t)}),null,t)};A.prototype.forEach=function(e){return oe(e,this)};var ie=n.count=function(e){return e._size};A.prototype.count=function(){return ie(this)},Object.defineProperty(A.prototype,"size",{get:A.prototype.count}),e.exports?e.exports=n:(void 0).hamt=n},le(ce={exports:{}},ce.exports),ce.exports);class de{constructor(e){u(this,"_map",void 0),this._map=new Map(null===e||void 0===e?void 0:e.entries())}keys(){return this._map.keys()}entries(){return this._map.entries()}get(e){return this._map.get(e)}has(e){return this._map.has(e)}set(e,t){return this._map.set(e,t),this}delete(e){return this._map.delete(e),this}clone(){return he(this)}toMap(){return new Map(this._map)}}class pe{constructor(e){if(u(this,"_hamt",fe.empty.beginMutation()),e instanceof pe){const t=e._hamt.endMutation();e._hamt=t.beginMutation(),this._hamt=t.beginMutation()}else if(e)for(const[t,n]of e.entries())this._hamt.set(t,n)}keys(){return this._hamt.keys()}entries(){return this._hamt.entries()}get(e){return this._hamt.get(e)}has(e){return this._hamt.has(e)}set(e,t){return this._hamt.set(e,t),this}delete(e){return this._hamt.delete(e),this}clone(){return he(this)}toMap(){return new Map(this._hamt)}}function he(e){return T("recoil_hamt_2020")?new pe(e):new de(e)}var ge=he,ve=Object.freeze({__proto__:null,persistentMap:ge});var me=function(e,...t){const n=new Set;e:for(const r of e){for(const e of t)if(e.has(r))continue e;n.add(r)}return n};var ye=function(e,t){const n=new Map;return e.forEach(((e,r)=>{n.set(r,t(e,r))})),n};function be(e,t,n,r){const{nodeDeps:o,nodeToNodeSubscriptions:i}=n,a=o.get(e);if(a&&r&&a!==r.nodeDeps.get(e))return;o.set(e,t);const u=null==a?t:me(t,a);for(const l of u){i.has(l)||i.set(l,new Set);s(i.get(l)).add(e)}if(a){const n=me(a,t);for(const t of n){if(!i.has(t))return;const n=s(i.get(t));n.delete(e),0===n.size&&i.delete(t)}}}var we={cloneGraph:function(e){return{nodeDeps:ye(e.nodeDeps,(e=>new Set(e))),nodeToNodeSubscriptions:ye(e.nodeToNodeSubscriptions,(e=>new Set(e)))}},graph:function(){return{nodeDeps:new Map,nodeToNodeSubscriptions:new Map}},saveDepsToStore:function(e,t,n,r){var o,i,a,s;const u=n.getState();r!==u.currentTree.version&&r!==(null===(o=u.nextTree)||void 0===o?void 0:o.version)&&r!==(null===(i=u.previousTree)||void 0===i?void 0:i.version)&&j("Tried to save dependencies to a discarded tree");const l=n.getGraph(r);if(be(e,t,l),r===(null===(a=u.previousTree)||void 0===a?void 0:a.version)){be(e,t,n.getGraph(u.currentTree.version),l)}if(r===(null===(s=u.previousTree)||void 0===s?void 0:s.version)||r===u.currentTree.version){var c;const r=null===(c=u.nextTree)||void 0===c?void 0:c.version;if(void 0!==r){be(e,t,n.getGraph(r),l)}}}};let xe=0;let _e=0;let Se=0;var Oe={getNextTreeStateVersion:()=>xe++,getNextStoreID:()=>_e++,getNextComponentID:()=>Se++};const{persistentMap:Ce}=ve,{graph:Ee}=we,{getNextTreeStateVersion:Ae}=Oe;function Me(){const e=Ae();return{version:e,stateID:e,transactionMetadata:{},dirtyAtoms:new Set,atomValues:Ce(),nonvalidatedAtoms:Ce()}}var ke={makeEmptyTreeState:Me,makeEmptyStoreState:function(){const e=Me();return{currentTree:e,nextTree:null,previousTree:null,commitDepth:0,knownAtoms:new Set,knownSelectors:new Set,transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(e.version,Ee()),retention:{referenceCounts:new Map,nodesRetainedByZone:new Map,retainablesToCheckForRelease:new Set},nodeCleanupFunctions:new Map}},getNextTreeStateVersion:Ae};class Pe{}var Re={RetentionZone:Pe,retentionZone:function(){return new Pe}};var Te={setByAddingToSet:function(e,t){const n=new Set(e);return n.add(t),n},setByDeletingFromSet:function(e,t){const n=new Set(e);return n.delete(t),n},mapBySettingInMap:function(e,t,n){const r=new Map(e);return r.set(t,n),r},mapByUpdatingInMap:function(e,t,n){const r=new Map(e);return r.set(t,n(r.get(t))),r},mapByDeletingFromMap:function(e,t){const n=new Map(e);return n.delete(t),n},mapByDeletingMultipleFromMap:function(e,t){const n=new Map(e);return t.forEach((e=>n.delete(e))),n}};var Ie=function*(e,t){let n=0;for(const r of e)t(r,n++)&&(yield r)};var Be=function(e,t){return new Proxy(e,{get:(e,n)=>(!(n in e)&&n in t&&(e[n]=t[n]()),e[n]),ownKeys:e=>Object.keys(e)})};const{getNode:De,getNodeMaybe:je,recoilValuesForKeys:Le}=se,{RetentionZone:Ze}=Re,{setByAddingToSet:Ne}=Te,Fe=Object.freeze(new Set);class He extends Error{}function Ve(e,t,n,r){const o=e.getState();if(o.nodeCleanupFunctions.has(n))return;const i=De(n),a=function(e,t,n){if(!T("recoil_memory_managament_2020"))return()=>{};const{nodesRetainedByZone:r}=e.getState().retention;function o(e){let n=r.get(e);n||r.set(e,n=new Set),n.add(t)}if(n instanceof Ze)o(n);else if(Array.isArray(n))for(const i of n)o(i);return()=>{if(!T("recoil_memory_managament_2020"))return;const{retention:r}=e.getState();function o(e){const n=r.nodesRetainedByZone.get(e);null===n||void 0===n||n.delete(t),n&&0===n.size&&r.nodesRetainedByZone.delete(e)}if(n instanceof Ze)o(n);else if(Array.isArray(n))for(const e of n)o(e)}}(e,n,i.retainedBy),s=i.init(e,t,r);o.nodeCleanupFunctions.set(n,(()=>{s(),a()}))}function ze(e,t,n){return De(n).peek(e,t)}function Ue(e,t,n){const r=new Set,o=Array.from(n),i=e.getGraph(t.version);for(let s=o.pop();s;s=o.pop()){var a;r.add(s);const e=null!==(a=i.nodeToNodeSubscriptions.get(s))&&void 0!==a?a:Fe;for(const t of e)r.has(t)||o.push(t)}return r}var Ge={getNodeLoadable:function(e,t,n){return Ve(e,t,n,"get"),De(n).get(e,t)},peekNodeLoadable:ze,setNodeValue:function(e,t,n,r){const o=De(n);if(null==o.set)throw new He(`Attempt to set read-only RecoilValue: ${n}`);const i=o.set;return Ve(e,t,n,"set"),i(e,t,r)},initializeNode:function(e,t,n){Ve(e,e.getState().currentTree,t,n)},cleanUpNode:function(e,t){var n;const r=e.getState();null===(n=r.nodeCleanupFunctions.get(t))||void 0===n||n(),r.nodeCleanupFunctions.delete(t)},setUnvalidatedAtomValue_DEPRECATED:function(e,t,n){var r;const o=je(t);return null===o||void 0===o||null===(r=o.invalidate)||void 0===r||r.call(o,e),{...e,atomValues:e.atomValues.clone().delete(t),nonvalidatedAtoms:e.nonvalidatedAtoms.clone().set(t,n),dirtyAtoms:Ne(e.dirtyAtoms,t)}},peekNodeInfo:function(e,t,n){const r=e.getState(),o=e.getGraph(t.version),i=De(n).nodeType;return Be({type:i},{loadable:()=>ze(e,t,n),isActive:()=>r.knownAtoms.has(n)||r.knownSelectors.has(n),isSet:()=>"selector"!==i&&t.atomValues.has(n),isModified:()=>t.dirtyAtoms.has(n),deps:()=>{var e;return Le(null!==(e=o.nodeDeps.get(n))&&void 0!==e?e:[])},subscribers:()=>{var o,i;return{nodes:Le(Ie(Ue(e,t,new Set([n])),(e=>e!==n))),components:J(null!==(o=null===(i=r.nodeToComponentSubscriptions.get(n))||void 0===i?void 0:i.values())&&void 0!==o?o:[],(([e])=>({name:e})))}}})},getDownstreamNodes:Ue};let We=null;var $e={setInvalidateMemoizedSnapshot:function(e){We=e},invalidateMemoizedSnapshot:function(){var e;null===(e=We)||void 0===e||e()}};const{getDownstreamNodes:qe,getNodeLoadable:Ye,setNodeValue:Xe}=Ge,{getNextComponentID:Ke}=Oe,{getNode:Je,getNodeMaybe:Qe}=se,{DefaultValue:et}=se,{reactMode:tt}=H,{AbstractRecoilValue:nt,RecoilState:rt,RecoilValueReadOnly:ot,isRecoilValue:it}=X,{invalidateMemoizedSnapshot:at}=$e;function st(e,t,n){if("set"===n.type){const{recoilValue:r,valueOrUpdater:o}=n,a=function(e,t,{key:n},r){if("function"===typeof r){const o=Ye(e,t,n);if("loading"===o.state){const e=`Tried to set atom or selector "${n}" using an updater function while the current state is pending, this is not currently supported.`;throw j(e),i(e)}if("hasError"===o.state)throw o.contents;return r(o.contents)}return r}(e,t,r,o),s=Xe(e,t,r.key,a);for(const[e,n]of s.entries())ut(t,e,n)}else if("setLoadable"===n.type){const{recoilValue:{key:e},loadable:r}=n;ut(t,e,r)}else if("markModified"===n.type){const{recoilValue:{key:e}}=n;t.dirtyAtoms.add(e)}else if("setUnvalidated"===n.type){var r;const{recoilValue:{key:e},unvalidatedValue:o}=n,i=Qe(e);null===i||void 0===i||null===(r=i.invalidate)||void 0===r||r.call(i,t),t.atomValues.delete(e),t.nonvalidatedAtoms.set(e,o),t.dirtyAtoms.add(e)}else j(`Unknown action ${n.type}`)}function ut(e,t,n){"hasValue"===n.state&&n.contents instanceof et?e.atomValues.delete(t):e.atomValues.set(t,n),e.dirtyAtoms.add(t),e.nonvalidatedAtoms.delete(t)}function lt(e,t){e.replaceState((n=>{const r=dt(n);for(const o of t)st(e,r,o);return pt(e,r),at(),r}))}function ct(e,t){if(ft.length){const n=ft[ft.length-1];let r=n.get(e);r||n.set(e,r=[]),r.push(t)}else lt(e,[t])}const ft=[];function dt(e){return{...e,atomValues:e.atomValues.clone(),nonvalidatedAtoms:e.nonvalidatedAtoms.clone(),dirtyAtoms:new Set(e.dirtyAtoms)}}function pt(e,t){const n=qe(e,t,t.dirtyAtoms);for(const i of n){var r,o;null===(r=Qe(i))||void 0===r||null===(o=r.invalidate)||void 0===o||o.call(r,t)}}function ht(e,t,n){ct(e,{type:"set",recoilValue:t,valueOrUpdater:n})}var gt={RecoilValueReadOnly:ot,AbstractRecoilValue:nt,RecoilState:rt,getRecoilValueAsLoadable:function(e,{key:t},n=e.getState().currentTree){var r,o;const i=e.getState();n.version!==i.currentTree.version&&n.version!==(null===(r=i.nextTree)||void 0===r?void 0:r.version)&&n.version!==(null===(o=i.previousTree)||void 0===o?void 0:o.version)&&j("Tried to read from a discarded tree");const a=Ye(e,n,t);return"loading"===a.state&&a.contents.catch((()=>{})),a},setRecoilValue:ht,setRecoilValueLoadable:function(e,t,n){if(n instanceof et)return ht(e,t,n);ct(e,{type:"setLoadable",recoilValue:t,loadable:n})},markRecoilValueModified:function(e,t){ct(e,{type:"markModified",recoilValue:t})},setUnvalidatedRecoilValue:function(e,t,n){ct(e,{type:"setUnvalidated",recoilValue:t,unvalidatedValue:n})},subscribeToRecoilValue:function(e,{key:t},n,r=null){const o=Ke(),i=e.getState();i.nodeToComponentSubscriptions.has(t)||i.nodeToComponentSubscriptions.set(t,new Map),s(i.nodeToComponentSubscriptions.get(t)).set(o,[null!==r&&void 0!==r?r:"<not captured>",n]);const a=tt();if(a.early&&("LEGACY"===a.mode||"MUTABLE_SOURCE"===a.mode)){const r=e.getState().nextTree;r&&r.dirtyAtoms.has(t)&&n(r)}return{release:()=>{const n=e.getState(),r=n.nodeToComponentSubscriptions.get(t);void 0!==r&&r.has(o)?(r.delete(o),0===r.size&&n.nodeToComponentSubscriptions.delete(t)):j(`Subscription missing at release time for atom ${t}. This is a bug in Recoil.`)}}},isRecoilValue:it,applyAtomValueWrites:function(e,t){const n=e.clone();return t.forEach(((e,t)=>{"hasValue"===e.state&&e.contents instanceof et?n.delete(t):n.set(t,e)})),n},batchStart:function(){const e=new Map;return ft.push(e),()=>{for(const[t,n]of e)lt(t,n);ft.pop()!==e&&j("Incorrect order of batch popping")}},writeLoadableToTreeState:ut,invalidateDownstreams:pt,copyTreeState:dt,refreshRecoilValue:function(e,t){var n;const{currentTree:r}=e.getState(),o=Je(t.key);null===(n=o.clearCache)||void 0===n||n.call(o,e,r)}};var vt=function(e,t,n){const r=e.entries();let o=r.next();for(;!o.done;){const i=o.value;if(t.call(n,i[1],i[0],e))return!0;o=r.next()}return!1};const{cleanUpNode:mt}=Ge,{deleteNodeConfigIfPossible:yt,getNode:bt}=se,{RetentionZone:wt}=Re,xt=new Set;function _t(e,t){const n=e.getState(),r=n.currentTree;if(n.nextTree)return void j("releaseNodesNowOnCurrentTree should only be called at the end of a batch");const o=new Set;for(const a of t)if(a instanceof wt)for(const e of Ot(n,a))o.add(e);else o.add(a);const i=function(e,t){const n=e.getState(),r=n.currentTree,o=e.getGraph(r.version),i=new Set,a=new Set;return u(t),i;function u(t){const l=new Set,c=function(e,t,n,r,o){const i=e.getGraph(t.version),a=[],u=new Set;for(;n.size>0;)l(s(n.values().next().value));return a;function l(e){if(r.has(e)||o.has(e))return void n.delete(e);if(u.has(e))return;const t=i.nodeToNodeSubscriptions.get(e);if(t)for(const n of t)l(n);u.add(e),n.delete(e),a.push(e)}}(e,r,t,i,a);for(const e of c){var f;if("recoilRoot"===bt(e).retainedBy){a.add(e);continue}if((null!==(f=n.retention.referenceCounts.get(e))&&void 0!==f?f:0)>0){a.add(e);continue}if(Ct(e).some((e=>n.retention.referenceCounts.get(e)))){a.add(e);continue}const t=o.nodeToNodeSubscriptions.get(e);t&&vt(t,(e=>a.has(e)))?a.add(e):(i.add(e),l.add(e))}const d=new Set;for(const e of l)for(const t of null!==(p=o.nodeDeps.get(e))&&void 0!==p?p:xt){var p;i.has(t)||d.add(t)}d.size&&u(d)}}(e,o);for(const a of i)St(e,r,a)}function St(e,t,n){if(!T("recoil_memory_managament_2020"))return;mt(e,n);const r=e.getState();r.knownAtoms.delete(n),r.knownSelectors.delete(n),r.nodeTransactionSubscriptions.delete(n),r.retention.referenceCounts.delete(n);const o=Ct(n);for(const u of o){var i;null===(i=r.retention.nodesRetainedByZone.get(u))||void 0===i||i.delete(n)}t.atomValues.delete(n),t.dirtyAtoms.delete(n),t.nonvalidatedAtoms.delete(n);const a=r.graphsByVersion.get(t.version);if(a){const e=a.nodeDeps.get(n);if(void 0!==e){a.nodeDeps.delete(n);for(const t of e){var s;null===(s=a.nodeToNodeSubscriptions.get(t))||void 0===s||s.delete(n)}}a.nodeToNodeSubscriptions.delete(n)}yt(n)}function Ot(e,t){var n;return null!==(n=e.retention.nodesRetainedByZone.get(t))&&void 0!==n?n:xt}function Ct(e){const t=bt(e).retainedBy;return void 0===t||"components"===t||"recoilRoot"===t?[]:t instanceof wt?[t]:t}function Et(e,t){if(!T("recoil_memory_managament_2020"))return;e.getState().retention.referenceCounts.delete(t),function(e,t){const n=e.getState();n.nextTree?n.retention.retainablesToCheckForRelease.add(t):_t(e,new Set([t]))}(e,t)}var At={SUSPENSE_TIMEOUT_MS:12e4,updateRetainCount:function(e,t,n){var r;if(!T("recoil_memory_managament_2020"))return;const o=e.getState().retention.referenceCounts,i=(null!==(r=o.get(t))&&void 0!==r?r:0)+n;0===i?Et(e,t):o.set(t,i)},updateRetainCountToZero:Et,releaseScheduledRetainablesNow:function(e){if(!T("recoil_memory_managament_2020"))return;const t=e.getState();_t(e,t.retention.retainablesToCheckForRelease),t.retention.retainablesToCheckForRelease.clear()},retainedByOptionWithDefault:function(e){return void 0===e?"recoilRoot":e}};const{unstable_batchedUpdates:Mt}=o;var kt={unstable_batchedUpdates:Mt};const{unstable_batchedUpdates:Pt}=kt;var Rt={unstable_batchedUpdates:Pt};const{batchStart:Tt}=gt,{unstable_batchedUpdates:It}=Rt;let Bt=It||(e=>e());var Dt={getBatcher:()=>Bt,setBatcher:e=>{Bt=e},batchUpdates:e=>{Bt((()=>{let t=()=>{};try{t=Tt(),e()}finally{t()}}))}};var jt=function*(e){for(const t of e)for(const e of t)yield e};const Lt="undefined"===typeof Window||"undefined"===typeof window,Zt="undefined"!==typeof navigator&&"ReactNative"===navigator.product;var Nt={isSSR:Lt,isReactNative:Zt,isWindow:e=>!Lt&&(e===window||e instanceof Window)};var Ft={memoizeWithArgsHash:function(e,t){let n;return(...r)=>{n||(n={});const o=t(...r);return Object.hasOwnProperty.call(n,o)||(n[o]=e(...r)),n[o]}},memoizeOneWithArgsHash:function(e,t){let n,r;return(...o)=>{const i=t(...o);return n===i||(n=i,r=e(...o)),r}},memoizeOneWithArgsHashAndInvalidation:function(e,t){let n,r;return[(...o)=>{const i=t(...o);return n===i||(n=i,r=e(...o)),r},()=>{n=null}]}};const{batchUpdates:Ht}=Dt,{initializeNode:Vt,peekNodeInfo:zt}=Ge,{graph:Ut}=we,{getNextStoreID:Gt}=Oe,{DEFAULT_VALUE:Wt,recoilValues:$t,recoilValuesForKeys:qt}=se,{AbstractRecoilValue:Yt,getRecoilValueAsLoadable:Xt,setRecoilValue:Kt,setUnvalidatedRecoilValue:Jt}=gt,{updateRetainCount:Qt}=At,{setInvalidateMemoizedSnapshot:en}=$e,{getNextTreeStateVersion:tn,makeEmptyStoreState:nn}=ke,{isSSR:rn}=Nt,{memoizeOneWithArgsHashAndInvalidation:on}=Ft;class an{constructor(e,t){u(this,"_store",void 0),u(this,"_refCount",1),u(this,"getLoadable",(e=>(this.checkRefCount_INTERNAL(),Xt(this._store,e)))),u(this,"getPromise",(e=>(this.checkRefCount_INTERNAL(),this.getLoadable(e).toPromise()))),u(this,"getNodes_UNSTABLE",(e=>{if(this.checkRefCount_INTERNAL(),!0===(null===e||void 0===e?void 0:e.isModified)){if(!1===(null===e||void 0===e?void 0:e.isInitialized))return[];const t=this._store.getState().currentTree;return qt(t.dirtyAtoms)}const t=this._store.getState().knownAtoms,n=this._store.getState().knownSelectors;return null==(null===e||void 0===e?void 0:e.isInitialized)?$t.values():!0===e.isInitialized?qt(jt([t,n])):Ie($t.values(),(({key:e})=>!t.has(e)&&!n.has(e)))})),u(this,"getInfo_UNSTABLE",(({key:e})=>(this.checkRefCount_INTERNAL(),zt(this._store,this._store.getState().currentTree,e)))),u(this,"map",(e=>{this.checkRefCount_INTERNAL();const t=new cn(this,Ht);return e(t),t})),u(this,"asyncMap",(async e=>{this.checkRefCount_INTERNAL();const t=new cn(this,Ht);return t.retain(),await e(t),t.autoRelease_INTERNAL(),t})),this._store={storeID:Gt(),parentStoreID:t,getState:()=>e,replaceState:t=>{e.currentTree=t(e.currentTree)},getGraph:t=>{const n=e.graphsByVersion;if(n.has(t))return s(n.get(t));const r=Ut();return n.set(t,r),r},subscribeToTransactions:()=>({release:()=>{}}),addTransactionMetadata:()=>{throw i("Cannot subscribe to Snapshots")}};for(const n of this._store.getState().knownAtoms)Vt(this._store,n,"get"),Qt(this._store,n,1);this.autoRelease_INTERNAL()}retain(){this._refCount<=0&&j("Attempt to retain() Snapshot that was already released."),this._refCount++;let e=!1;return()=>{e||(e=!0,this._release())}}autoRelease_INTERNAL(){rn||window.setTimeout((()=>this._release()),10)}_release(){if(this._refCount--,0===this._refCount){if(this._store.getState().nodeCleanupFunctions.forEach((e=>e())),this._store.getState().nodeCleanupFunctions.clear(),!T("recoil_memory_managament_2020"))return}else this._refCount}isRetained(){return this._refCount>0}checkRefCount_INTERNAL(){T("recoil_memory_managament_2020")&&this._refCount}getStore_INTERNAL(){return this.checkRefCount_INTERNAL(),this._store}getID(){return this.checkRefCount_INTERNAL(),this._store.getState().currentTree.stateID}getStoreID(){return this.checkRefCount_INTERNAL(),this._store.storeID}}function sn(e,t,n=!1){const r=e.getState(),o=n?tn():t.version;return{currentTree:{version:n?o:t.version,stateID:n?o:t.stateID,transactionMetadata:{...t.transactionMetadata},dirtyAtoms:new Set(t.dirtyAtoms),atomValues:t.atomValues.clone(),nonvalidatedAtoms:t.nonvalidatedAtoms.clone()},commitDepth:0,nextTree:null,previousTree:null,knownAtoms:new Set(r.knownAtoms),knownSelectors:new Set(r.knownSelectors),transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(o,e.getGraph(t.version)),retention:{referenceCounts:new Map,nodesRetainedByZone:new Map,retainablesToCheckForRelease:new Set},nodeCleanupFunctions:new Map(J(r.nodeCleanupFunctions.entries(),(([e])=>[e,()=>{}])))}}const[un,ln]=on(((e,t)=>{var n;const r=e.getState(),o="latest"===t?null!==(n=r.nextTree)&&void 0!==n?n:r.currentTree:s(r.previousTree);return new an(sn(e,o),e.storeID)}),((e,t)=>{var n,r;return String(t)+String(e.storeID)+String(null===(n=e.getState().nextTree)||void 0===n?void 0:n.version)+String(e.getState().currentTree.version)+String(null===(r=e.getState().previousTree)||void 0===r?void 0:r.version)}));en(ln);class cn extends an{constructor(e,t){super(sn(e.getStore_INTERNAL(),e.getStore_INTERNAL().getState().currentTree,!0),e.getStoreID()),u(this,"_batch",void 0),u(this,"set",((e,t)=>{this.checkRefCount_INTERNAL();const n=this.getStore_INTERNAL();this._batch((()=>{Qt(n,e.key,1),Kt(this.getStore_INTERNAL(),e,t)}))})),u(this,"reset",(e=>{this.checkRefCount_INTERNAL();const t=this.getStore_INTERNAL();this._batch((()=>{Qt(t,e.key,1),Kt(this.getStore_INTERNAL(),e,Wt)}))})),u(this,"setUnvalidatedAtomValues_DEPRECATED",(e=>{this.checkRefCount_INTERNAL();const t=this.getStore_INTERNAL();Ht((()=>{for(const[n,r]of e.entries())Qt(t,n,1),Jt(t,new Yt(n),r)}))})),this._batch=t}}var fn={Snapshot:an,MutableSnapshot:cn,freshSnapshot:function(e){const t=new an(nn());return null!=e?t.map(e):t},cloneSnapshot:function(e,t="latest"){const n=un(e,t);return n.isRetained()?n:(ln(),un(e,t))}},dn=fn.Snapshot,pn=fn.MutableSnapshot,hn=fn.freshSnapshot,gn=fn.cloneSnapshot,vn=Object.freeze({__proto__:null,Snapshot:dn,MutableSnapshot:pn,freshSnapshot:hn,cloneSnapshot:gn});var mn=function(...e){const t=new Set;for(const n of e)for(const e of n)t.add(e);return t};const{useRef:yn}=r;var bn=function(e){const t=yn(e);return t.current===e&&"function"===typeof e&&(t.current=e()),t};const{getNextTreeStateVersion:wn,makeEmptyStoreState:xn}=ke,{cleanUpNode:_n,getDownstreamNodes:Sn,initializeNode:On,setNodeValue:Cn,setUnvalidatedAtomValue_DEPRECATED:En}=Ge,{graph:An}=we,{cloneGraph:Mn}=we,{getNextStoreID:kn}=Oe,{createMutableSource:Pn,reactMode:Rn}=H,{applyAtomValueWrites:Tn}=gt,{releaseScheduledRetainablesNow:In}=At,{freshSnapshot:Bn}=vn,{useCallback:Dn,useContext:jn,useEffect:Ln,useMemo:Zn,useRef:Nn,useState:Fn}=r;function Hn(){throw i("This component must be used inside a <RecoilRoot> component.")}const Vn=Object.freeze({storeID:kn(),getState:Hn,replaceState:Hn,getGraph:Hn,subscribeToTransactions:Hn,addTransactionMetadata:Hn});let zn=!1;function Un(e){if(zn)throw i("An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.");const t=e.getState();if(null===t.nextTree){T("recoil_memory_managament_2020")&&T("recoil_release_on_cascading_update_killswitch_2021")&&t.commitDepth>0&&In(e);const n=t.currentTree.version,r=wn();t.nextTree={...t.currentTree,version:r,stateID:r,dirtyAtoms:new Set,transactionMetadata:{}},t.graphsByVersion.set(r,Mn(s(t.graphsByVersion.get(n))))}}const Gn=r.createContext({current:Vn}),Wn=()=>jn(Gn),$n=r.createContext(null);function qn(e,t,n){const r=Sn(e,n,n.dirtyAtoms);for(const o of r){const e=t.nodeToComponentSubscriptions.get(o);if(e)for(const[t,[r,o]]of e)o(n)}}function Yn(e){const t=e.getState(),n=t.currentTree,r=n.dirtyAtoms;if(r.size){for(const[n,o]of t.nodeTransactionSubscriptions)if(r.has(n))for(const[t,r]of o)r(e);for(const[n,r]of t.transactionSubscriptions)r(e);(!Rn().early||t.suspendedComponentResolvers.size>0)&&(qn(e,t,n),t.suspendedComponentResolvers.forEach((e=>e())),t.suspendedComponentResolvers.clear())}t.queuedComponentCallbacks_DEPRECATED.forEach((e=>e(n))),t.queuedComponentCallbacks_DEPRECATED.splice(0,t.queuedComponentCallbacks_DEPRECATED.length)}function Xn({setNotifyBatcherOfChange:e}){const t=Wn(),[,n]=Fn([]);return e((()=>n({}))),Ln((()=>(e((()=>n({}))),()=>{e((()=>{}))})),[e]),Ln((()=>{ue.enqueueExecution("Batcher",(()=>{!function(e){const t=e.getState();t.commitDepth++;try{const{nextTree:n}=t;if(null==n)return;t.previousTree=t.currentTree,t.currentTree=n,t.nextTree=null,Yn(e),null!=t.previousTree?t.graphsByVersion.delete(t.previousTree.version):j("Ended batch with no previous state, which is unexpected","recoil"),t.previousTree=null,T("recoil_memory_managament_2020")&&null==n&&In(e)}finally{t.commitDepth--}}(t.current)}))})),null}let Kn=0;function Jn({initializeState_DEPRECATED:e,initializeState:t,store_INTERNAL:n,children:o}){let i;const a=e=>{const t=i.current.graphsByVersion;if(t.has(e))return s(t.get(e));const n=An();return t.set(e,n),n},u=(e,t)=>{if(null==t){const{transactionSubscriptions:t}=p.current.getState(),n=Kn++;return t.set(n,e),{release:()=>{t.delete(n)}}}{const{nodeTransactionSubscriptions:n}=p.current.getState();n.has(t)||n.set(t,new Map);const r=Kn++;return s(n.get(t)).set(r,e),{release:()=>{const e=n.get(t);e&&(e.delete(r),0===e.size&&n.delete(t))}}}},l=e=>{Un(p.current);for(const t of Object.keys(e))s(p.current.getState().nextTree).transactionMetadata[t]=e[t]},c=e=>{Un(p.current);const t=s(i.current.nextTree);let n;try{zn=!0,n=e(t)}finally{zn=!1}n!==t&&(i.current.nextTree=n,Rn().early&&qn(p.current,i.current,n),s(f.current)())},f=Nn(null),d=Dn((e=>{f.current=e}),[f]),p=bn((()=>null!==n&&void 0!==n?n:{storeID:kn(),getState:()=>i.current,replaceState:c,getGraph:a,subscribeToTransactions:u,addTransactionMetadata:l}));null!=n&&(p.current=n),i=bn((()=>null!=e?function(e,t){const n=xn();return t({set:(t,r)=>{const o=n.currentTree,i=Cn(e,o,t.key,r),a=new Set(i.keys()),s=o.nonvalidatedAtoms.clone();for(const e of a)s.delete(e);n.currentTree={...o,dirtyAtoms:mn(o.dirtyAtoms,a),atomValues:Tn(o.atomValues,i),nonvalidatedAtoms:s}},setUnvalidatedAtomValues:e=>{e.forEach(((e,t)=>{n.currentTree=En(n.currentTree,t,e)}))}}),n}(p.current,e):null!=t?function(e){const t=Bn(e),n=t.getStore_INTERNAL().getState();return t.retain(),n.nodeCleanupFunctions.forEach((e=>e())),n.nodeCleanupFunctions.clear(),n}(t):xn()));const h=Zn((()=>null===Pn||void 0===Pn?void 0:Pn(i,(()=>i.current.currentTree.version))),[i]);return Ln((()=>{const e=p.current;for(const t of new Set(e.getState().knownAtoms))On(e,t,"get");return()=>{for(const t of e.getState().knownAtoms)_n(e,t)}}),[p]),r.createElement(Gn.Provider,{value:p},r.createElement($n.Provider,{value:h},r.createElement(Xn,{setNotifyBatcherOfChange:d}),o))}var Qn={RecoilRoot:function(e){const{override:t,...n}=e,o=Wn();return!1===t&&o.current!==Vn?e.children:r.createElement(Jn,n)},useStoreRef:Wn,useRecoilMutableSource:function(){const e=jn($n);return null==e&&K("Attempted to use a Recoil hook outside of a <RecoilRoot>. <RecoilRoot> must be an ancestor of any component that uses Recoil hooks."),e},useRecoilStoreID:function(){return Wn().current.storeID},notifyComponents_FOR_TESTING:qn,sendEndOfBatchNotifications_FOR_TESTING:Yn};var er=function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return!1;return!0};const{useEffect:tr,useRef:nr}=r;var rr=function(e){const t=nr();return tr((()=>{t.current=e})),t.current};const{useStoreRef:or}=Qn,{SUSPENSE_TIMEOUT_MS:ir}=At,{updateRetainCount:ar}=At,{RetentionZone:sr}=Re,{useEffect:ur,useRef:lr}=r,{isSSR:cr}=Nt;var fr=function(e){if(T("recoil_memory_managament_2020"))return function(e){const t=Array.isArray(e)?e:[e],n=t.map((e=>e instanceof sr?e:e.key)),r=or();ur((()=>{if(!T("recoil_memory_managament_2020"))return;const e=r.current;if(o.current&&!cr)window.clearTimeout(o.current),o.current=null;else for(const t of n)ar(e,t,1);return()=>{for(const t of n)ar(e,t,-1)}}),[r,...n]);const o=lr(),i=rr(n);if(!cr&&(void 0===i||!er(i,n))){const e=r.current;for(const t of n)ar(e,t,1);if(i)for(const t of i)ar(e,t,-1);o.current&&window.clearTimeout(o.current),o.current=window.setTimeout((()=>{o.current=null;for(const t of n)ar(e,t,-1)}),ir)}}(e)};var dr=function(){return"<component name not available>"};const{batchUpdates:pr}=Dt,{DEFAULT_VALUE:hr}=se,{currentRendererSupportsUseSyncExternalStore:gr,reactMode:vr,useMutableSource:mr,useSyncExternalStore:yr}=H,{useRecoilMutableSource:br,useStoreRef:wr}=Qn,{isRecoilValue:xr}=X,{AbstractRecoilValue:_r,getRecoilValueAsLoadable:Sr,setRecoilValue:Or,setUnvalidatedRecoilValue:Cr,subscribeToRecoilValue:Er}=gt,{useCallback:Ar,useEffect:Mr,useMemo:kr,useRef:Pr,useState:Rr}=r,{setByAddingToSet:Tr}=Te,{isSSR:Ir}=Nt;function Br(e,t,n){if("hasValue"===e.state)return e.contents;if("loading"===e.state){throw new Promise((t=>{const r=n.current.getState().suspendedComponentResolvers;r.add(t),Ir&&a(e.contents)&&e.contents.finally((()=>{r.delete(t)}))}))}throw"hasError"===e.state?e.contents:i(`Invalid value of loadable atom "${t.key}"`)}function Dr(e){const t=wr(),n=dr(),r=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return{loadable:Sr(r,e,i),key:e.key}}),[t,e]),o=Ar((e=>{let t;return()=>{var n,r;const o=e();return null!==(n=t)&&void 0!==n&&n.loadable.is(o.loadable)&&(null===(r=t)||void 0===r?void 0:r.key)===o.key?t:(t=o,o)}}),[]),i=kr((()=>o(r)),[r,o]),a=Ar((r=>{const o=t.current;return Er(o,e,r,n).release}),[t,e,n]);return yr(a,i,i).loadable}function jr(e){const t=wr(),n=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),r=Ar((()=>n()),[n]),o=dr(),a=Ar(((r,i)=>{const a=t.current;return Er(a,e,(()=>{if(!T("recoil_suppress_rerender_in_callback"))return i();const e=n();l.current.is(e)||i(),l.current=e}),o).release}),[t,e,o,n]),s=br();if(null==s)throw i("Recoil hooks must be used in components contained within a <RecoilRoot> component.");const u=mr(s,r,a),l=Pr(u);return Mr((()=>{l.current=u})),u}function Lr(e){const t=wr(),n=dr(),r=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),o=Ar((()=>({loadable:r(),key:e.key})),[r,e.key]),i=Ar((e=>{const t=o();return e.loadable.is(t.loadable)&&e.key===t.key?e:t}),[o]);Mr((()=>{const r=Er(t.current,e,(e=>{s(i)}),n);return s(i),r.release}),[n,e,t,i]);const[a,s]=Rr(o);return a.key!==e.key?o().loadable:a.loadable}function Zr(e){const t=wr(),[,n]=Rr([]),r=dr(),o=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),i=o(),a=Pr(i);return Mr((()=>{a.current=i})),Mr((()=>{const i=t.current,s=i.getState(),u=Er(i,e,(e=>{var t;if(!T("recoil_suppress_rerender_in_callback"))return n([]);const r=o();null!==(t=a.current)&&void 0!==t&&t.is(r)||n(r),a.current=r}),r);if(s.nextTree)i.getState().queuedComponentCallbacks_DEPRECATED.push((()=>{a.current=null,n([])}));else{var l;if(!T("recoil_suppress_rerender_in_callback"))return n([]);const e=o();null!==(l=a.current)&&void 0!==l&&l.is(e)||n(e),a.current=e}return u.release}),[r,o,e,t]),i}function Nr(e){return T("recoil_memory_managament_2020")&&fr(e),{TRANSITION_SUPPORT:Lr,SYNC_EXTERNAL_STORE:gr()?Dr:Lr,MUTABLE_SOURCE:jr,LEGACY:Zr}[vr().mode](e)}function Fr(e){const t=wr();return Br(Nr(e),e,t)}function Hr(e){const t=wr();return Ar((n=>{Or(t.current,e,n)}),[t,e])}function Vr(e){return T("recoil_memory_managament_2020")&&fr(e),Lr(e)}function zr(e){const t=wr();return Br(Vr(e),e,t)}var Ur={recoilComponentGetRecoilValueCount_FOR_TESTING:{current:0},useRecoilInterface:function(){const e=dr(),t=wr(),[,n]=Rr([]),r=Pr(new Set);r.current=new Set;const o=Pr(new Set),i=Pr(new Map),a=Ar((e=>{const t=i.current.get(e);t&&(t.release(),i.current.delete(e))}),[i]),s=Ar(((e,t)=>{i.current.has(t)&&n([])}),[]);return Mr((()=>{const n=t.current;me(r.current,o.current).forEach((t=>{if(i.current.has(t))return void K(`Double subscription to RecoilValue "${t}"`);const r=Er(n,new _r(t),(e=>s(e,t)),e);i.current.set(t,r);n.getState().nextTree?n.getState().queuedComponentCallbacks_DEPRECATED.push((()=>{s(n.getState(),t)})):s(n.getState(),t)})),me(o.current,r.current).forEach((e=>{a(e)})),o.current=r.current})),Mr((()=>{const n=i.current;return me(r.current,new Set(n.keys())).forEach((r=>{const o=Er(t.current,new _r(r),(e=>s(e,r)),e);n.set(r,o)})),()=>n.forEach(((e,t)=>a(t)))}),[e,t,a,s]),kr((()=>{function e(e){return n=>{Or(t.current,e,n)}}function n(e){var n;r.current.has(e.key)||(r.current=Tr(r.current,e.key));const o=t.current.getState();return Sr(t.current,e,vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree)}function o(e){return Br(n(e),e,t)}return{getRecoilValue:o,getRecoilValueLoadable:n,getRecoilState:function(t){return[o(t),e(t)]},getRecoilStateLoadable:function(t){return[n(t),e(t)]},getSetRecoilState:e,getResetRecoilState:function(e){return()=>Or(t.current,e,hr)}}}),[r,t])},useRecoilState:function(e){return[Fr(e),Hr(e)]},useRecoilStateLoadable:function(e){return[Nr(e),Hr(e)]},useRecoilValue:Fr,useRecoilValueLoadable:Nr,useResetRecoilState:function(e){const t=wr();return Ar((()=>{Or(t.current,e,hr)}),[t,e])},useSetRecoilState:Hr,useSetUnvalidatedAtomValues:function(){const e=wr();return(t,n={})=>{pr((()=>{e.current.addTransactionMetadata(n),t.forEach(((t,n)=>Cr(e.current,new _r(n),t)))}))}},useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Vr,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:zr,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:function(e){return[zr(e),Hr(e)]}};var Gr=function(e,t){const n=new Map;for(const[r,o]of e)t(o,r)&&n.set(r,o);return n};var Wr=function(e,t){const n=new Set;for(const r of e)t(r)&&n.add(r);return n};var $r=function(...e){const t=new Map;for(let n=0;n<e.length;n++){const r=e[n].keys();let o;for(;!(o=r.next()).done;)t.set(o.value,e[n].get(o.value))}return t};const{batchUpdates:qr}=Dt,{DEFAULT_VALUE:Yr,getNode:Xr,nodes:Kr}=se,{useStoreRef:Jr}=Qn,{AbstractRecoilValue:Qr,setRecoilValueLoadable:eo}=gt,{SUSPENSE_TIMEOUT_MS:to}=At,{cloneSnapshot:no}=vn,{useCallback:ro,useEffect:oo,useRef:io,useState:ao}=r,{isSSR:so}=Nt;function uo(e){const t=Jr();oo((()=>t.current.subscribeToTransactions(e).release),[e,t])}function lo(e){const t=e.atomValues.toMap(),n=ye(Gr(t,((e,t)=>{const n=Xr(t).persistence_UNSTABLE;return null!=n&&"none"!==n.type&&"hasValue"===e.state})),(e=>e.contents));return $r(e.nonvalidatedAtoms.toMap(),n)}function co(e,t){var n;const r=e.getState(),o=null!==(n=r.nextTree)&&void 0!==n?n:r.currentTree,i=t.getStore_INTERNAL().getState().currentTree;qr((()=>{const n=new Set;for(const e of[o.atomValues.keys(),i.atomValues.keys()])for(const t of e){var r,a;(null===(r=o.atomValues.get(t))||void 0===r?void 0:r.contents)!==(null===(a=i.atomValues.get(t))||void 0===a?void 0:a.contents)&&Xr(t).shouldRestoreFromSnapshots&&n.add(t)}n.forEach((t=>{eo(e,new Qr(t),i.atomValues.has(t)?s(i.atomValues.get(t)):Yr)})),e.replaceState((e=>({...e,stateID:t.getID()})))}))}var fo={useRecoilSnapshot:function(){const e=Jr(),[t,n]=ao((()=>no(e.current))),r=rr(t),o=io(),i=io();if(uo(ro((e=>n(no(e))),[])),oo((()=>{const e=t.retain();var n;o.current&&!so&&(window.clearTimeout(o.current),o.current=null,null===(n=i.current)||void 0===n||n.call(i),i.current=null);return()=>{window.setTimeout(e,10)}}),[t]),r!==t&&!so){var a;if(o.current)window.clearTimeout(o.current),o.current=null,null===(a=i.current)||void 0===a||a.call(i),i.current=null;i.current=t.retain(),o.current=window.setTimeout((()=>{var e;o.current=null,null===(e=i.current)||void 0===e||e.call(i),i.current=null}),to)}return t},gotoSnapshot:co,useGotoRecoilSnapshot:function(){const e=Jr();return ro((t=>co(e.current,t)),[e])},useRecoilTransactionObserver:function(e){uo(ro((t=>{const n=no(t,"latest"),r=no(t,"previous");e({snapshot:n,previousSnapshot:r})}),[e]))},useTransactionObservation_DEPRECATED:function(e){uo(ro((t=>{let n=t.getState().previousTree;const r=t.getState().currentTree;n||(j("Transaction subscribers notified without a previous tree being present -- this is a bug in Recoil"),n=t.getState().currentTree);const o=lo(r),i=lo(n),a=ye(Kr,(e=>{var t,n,r,o;return{persistence_UNSTABLE:{type:null!==(t=null===(n=e.persistence_UNSTABLE)||void 0===n?void 0:n.type)&&void 0!==t?t:"none",backButton:null!==(r=null===(o=e.persistence_UNSTABLE)||void 0===o?void 0:o.backButton)&&void 0!==r&&r}}})),s=Wr(r.dirtyAtoms,(e=>o.has(e)||i.has(e)));e({atomValues:o,previousAtomValues:i,atomInfo:a,modifiedAtoms:s,transactionMetadata:{...r.transactionMetadata}})}),[e]))},useTransactionSubscription_DEPRECATED:uo};const{peekNodeInfo:po}=Ge,{useStoreRef:ho}=Qn;var go=function(){const e=ho();return({key:t})=>po(e.current,e.current.getState().currentTree,t)};const{reactMode:vo}=H,{RecoilRoot:mo,useStoreRef:yo}=Qn,{useMemo:bo}=r;var wo=function(){"MUTABLE_SOURCE"===vo().mode&&console.warn("Warning: There are known issues using useRecoilBridgeAcrossReactRoots() in recoil_mutable_source rendering mode. Please consider upgrading to recoil_sync_external_store mode.");const e=yo().current;return bo((()=>function({children:t}){return r.createElement(mo,{store_INTERNAL:e},t)}),[e])};const{loadableWithValue:xo}=M,{initializeNode:_o}=Ge,{DEFAULT_VALUE:So,getNode:Oo}=se,{copyTreeState:Co,getRecoilValueAsLoadable:Eo,invalidateDownstreams:Ao,writeLoadableToTreeState:Mo}=gt;function ko(e){return"atom"===Oo(e.key).nodeType}class Po{constructor(e,t){u(this,"_store",void 0),u(this,"_treeState",void 0),u(this,"_changes",void 0),u(this,"get",(e=>{if(this._changes.has(e.key))return this._changes.get(e.key);if(!ko(e))throw i("Reading selectors within atomicUpdate is not supported");const t=Eo(this._store,e,this._treeState);if("hasValue"===t.state)return t.contents;throw"hasError"===t.state?t.contents:i(`Expected Recoil atom ${e.key} to have a value, but it is in a loading state.`)})),u(this,"set",((e,t)=>{if(!ko(e))throw i("Setting selectors within atomicUpdate is not supported");if("function"===typeof t){const n=this.get(e);this._changes.set(e.key,t(n))}else _o(this._store,e.key,"set"),this._changes.set(e.key,t)})),u(this,"reset",(e=>{this.set(e,So)})),this._store=e,this._treeState=t,this._changes=new Map}newTreeState_INTERNAL(){if(0===this._changes.size)return this._treeState;const e=Co(this._treeState);for(const[t,n]of this._changes)Mo(e,t,xo(n));return Ao(this._store,e),e}}var Ro=function(e){return t=>{e.replaceState((n=>{const r=new Po(e,n);return t(r),r.newTreeState_INTERNAL()}))}},To=Ro,Io=Object.freeze({__proto__:null,atomicUpdater:To});var Bo=function(e,t){if(!e)throw new Error(t)};const{atomicUpdater:Do}=Io,{batchUpdates:jo}=Dt,{DEFAULT_VALUE:Lo}=se,{useStoreRef:Zo}=Qn,{refreshRecoilValue:No,setRecoilValue:Fo}=gt,{cloneSnapshot:Ho}=vn,{gotoSnapshot:Vo}=fo,{useCallback:zo}=r;class Uo{}const Go=new Uo;function Wo(e,t,n,r){let o,s=Go;var u;(jo((()=>{const a="useRecoilCallback() expects a function that returns a function: it accepts a function of the type (RecoilInterface) => (Args) => ReturnType and returns a callback function (Args) => ReturnType, where RecoilInterface is an object {snapshot, set, ...} and Args and ReturnType are the argument and return types of the callback you want to create. Please see the docs at recoiljs.org for details.";if("function"!==typeof t)throw i(a);const u=Be({...null!==r&&void 0!==r?r:{},set:(t,n)=>Fo(e,t,n),reset:t=>Fo(e,t,Lo),refresh:t=>No(e,t),gotoSnapshot:t=>Vo(e,t),transact_UNSTABLE:t=>Do(e)(t)},{snapshot:()=>{const t=Ho(e);return o=t.retain(),t}}),l=t(u);if("function"!==typeof l)throw i(a);s=l(...n)})),s instanceof Uo&&Bo(!1),a(s))?s=s.finally((()=>{var e;null===(e=o)||void 0===e||e()})):null===(u=o)||void 0===u||u();return s}var $o={recoilCallback:Wo,useRecoilCallback:function(e,t){const n=Zo();return zo(((...t)=>Wo(n.current,e,t)),null!=t?[...t,n]:void 0)}};const{useStoreRef:qo}=Qn,{refreshRecoilValue:Yo}=gt,{useCallback:Xo}=r;var Ko=function(e){const t=qo();return Xo((()=>{const n=t.current;Yo(n,e)}),[e,t])};const{atomicUpdater:Jo}=Io,{useStoreRef:Qo}=Qn,{useMemo:ei}=r;var ti=function(e,t){const n=Qo();return ei((()=>(...t)=>{Jo(n.current)((n=>{e(n)(...t)}))}),null!=t?[...t,n]:void 0)};var ni=class{constructor(e){u(this,"value",void 0),this.value=e}},ri=Object.freeze({__proto__:null,WrappedValue:ni});const{isFastRefreshEnabled:oi}=H;class ii extends Error{}var ai=class{constructor(e){var t,n,r;u(this,"_name",void 0),u(this,"_numLeafs",void 0),u(this,"_root",void 0),u(this,"_onHit",void 0),u(this,"_onSet",void 0),u(this,"_mapNodeValue",void 0),this._name=null===e||void 0===e?void 0:e.name,this._numLeafs=0,this._root=null,this._onHit=null!==(t=null===e||void 0===e?void 0:e.onHit)&&void 0!==t?t:()=>{},this._onSet=null!==(n=null===e||void 0===e?void 0:e.onSet)&&void 0!==n?n:()=>{},this._mapNodeValue=null!==(r=null===e||void 0===e?void 0:e.mapNodeValue)&&void 0!==r?r:e=>e}size(){return this._numLeafs}root(){return this._root}get(e,t){var n;return null===(n=this.getLeafNode(e,t))||void 0===n?void 0:n.value}getLeafNode(e,t){if(null==this._root)return;let n=this._root;for(;n;){if(null===t||void 0===t||t.onNodeVisit(n),"leaf"===n.type)return this._onHit(n),n;const r=this._mapNodeValue(e(n.nodeKey));n=n.branches.get(r)}}set(e,t,n){const r=()=>{var r,o,i,a;let s,u;for(const[t,h]of e){var l,c,f;const e=this._root;if("leaf"===(null===e||void 0===e?void 0:e.type))throw this.invalidCacheError();const r=s;if(s=r?r.branches.get(u):e,s=null!==(l=s)&&void 0!==l?l:{type:"branch",nodeKey:t,parent:r,branches:new Map,branchKey:u},"branch"!==s.type||s.nodeKey!==t)throw this.invalidCacheError();null===r||void 0===r||r.branches.set(u,s),null===n||void 0===n||null===(c=n.onNodeVisit)||void 0===c||c.call(n,s),u=this._mapNodeValue(h),this._root=null!==(f=this._root)&&void 0!==f?f:s}const d=s?null===(r=s)||void 0===r?void 0:r.branches.get(u):this._root;if(null!=d&&("leaf"!==d.type||d.branchKey!==u))throw this.invalidCacheError();const p={type:"leaf",value:t,parent:s,branchKey:u};null===(o=s)||void 0===o||o.branches.set(u,p),this._root=null!==(i=this._root)&&void 0!==i?i:p,this._numLeafs++,this._onSet(p),null===n||void 0===n||null===(a=n.onNodeVisit)||void 0===a||a.call(n,p)};try{r()}catch(o){if(!(o instanceof ii))throw o;this.clear(),r()}}delete(e){const t=this.root();if(!t)return!1;if(e===t)return this._root=null,this._numLeafs=0,!0;let n=e.parent,r=e.branchKey;for(;n;){var o;if(n.branches.delete(r),n===t)return 0===n.branches.size?(this._root=null,this._numLeafs=0):this._numLeafs--,!0;if(n.branches.size>0)break;r=null===(o=n)||void 0===o?void 0:o.branchKey,n=n.parent}for(;n!==t;n=n.parent)if(null==n)return!1;return this._numLeafs--,!0}clear(){this._numLeafs=0,this._root=null}invalidCacheError(){const e=oi()?"Possible Fast Refresh module reload detected. This may also be caused by an selector returning inconsistent values. Resetting cache.":"Invalid cache values. This happens when selectors do not return consistent values for the same input dependency values. That may also be caused when using Fast Refresh to change a selector implementation. Resetting cache.";throw j(e+(null!=this._name?` - ${this._name}`:"")),new ii}},si=Object.freeze({__proto__:null,TreeCache:ai});var ui=class{constructor(e){var t;u(this,"_maxSize",void 0),u(this,"_size",void 0),u(this,"_head",void 0),u(this,"_tail",void 0),u(this,"_map",void 0),u(this,"_keyMapper",void 0),this._maxSize=e.maxSize,this._size=0,this._head=null,this._tail=null,this._map=new Map,this._keyMapper=null!==(t=e.mapKey)&&void 0!==t?t:e=>e}head(){return this._head}tail(){return this._tail}size(){return this._size}maxSize(){return this._maxSize}has(e){return this._map.has(this._keyMapper(e))}get(e){const t=this._keyMapper(e),n=this._map.get(t);if(n)return this.set(e,n.value),n.value}set(e,t){const n=this._keyMapper(e);this._map.get(n)&&this.delete(e);const r=this.head(),o={key:e,right:r,left:null,value:t};r?r.left=o:this._tail=o,this._map.set(n,o),this._head=o,this._size++,this._maybeDeleteLRU()}_maybeDeleteLRU(){this.size()>this.maxSize()&&this.deleteLru()}deleteLru(){const e=this.tail();e&&this.delete(e.key)}delete(e){const t=this._keyMapper(e);if(!this._size||!this._map.has(t))return;const n=s(this._map.get(t)),r=n.right,o=n.left;r&&(r.left=n.left),o&&(o.right=n.right),n===this.head()&&(this._head=r),n===this.tail()&&(this._tail=o),this._map.delete(t),this._size--}clear(){this._size=0,this._head=null,this._tail=null,this._map=new Map}},li=Object.freeze({__proto__:null,LRUCache:ui});const{LRUCache:ci}=li,{TreeCache:fi}=si;var di=function({name:e,maxSize:t,mapNodeValue:n=(e=>e)}){const r=new ci({maxSize:t}),o=new fi({name:e,mapNodeValue:n,onHit:e=>{r.set(e,!0)},onSet:e=>{const n=r.tail();r.set(e,!0),n&&o.size()>t&&o.delete(n.key)}});return o};function pi(e,t,n){if("string"===typeof e&&!e.includes('"')&&!e.includes("\\"))return`"${e}"`;switch(typeof e){case"undefined":return"";case"boolean":return e?"true":"false";case"number":case"symbol":return String(e);case"string":return JSON.stringify(e);case"function":if(!0!==(null===t||void 0===t?void 0:t.allowFunctions))throw i("Attempt to serialize function in a Recoil cache key");return`__FUNCTION(${e.name})__`}if(null===e)return"null";var r;if("object"!==typeof e)return null!==(r=JSON.stringify(e))&&void 0!==r?r:"";if(a(e))return"__PROMISE__";if(Array.isArray(e))return`[${e.map(((e,n)=>pi(e,t,n.toString())))}]`;if("function"===typeof e.toJSON)return pi(e.toJSON(n),t,n);if(e instanceof Map){const r={};for(const[n,o]of e)r["string"===typeof n?n:pi(n,t)]=o;return pi(r,t,n)}return e instanceof Set?pi(Array.from(e).sort(((e,n)=>pi(e,t).localeCompare(pi(n,t)))),t,n):void 0!==Symbol&&null!=e[Symbol.iterator]&&"function"===typeof e[Symbol.iterator]?pi(Array.from(e),t,n):`{${Object.keys(e).filter((t=>void 0!==e[t])).sort().map((n=>`${pi(n,t)}:${pi(e[n],t,n)}`)).join(",")}}`}var hi=function(e,t={allowFunctions:!1}){return pi(e,t)};const{TreeCache:gi}=si,vi={equality:"reference",eviction:"keep-all",maxSize:1/0};var mi=function({equality:e=vi.equality,eviction:t=vi.eviction,maxSize:n=vi.maxSize}=vi,r){const o=function(e){switch(e){case"reference":return e=>e;case"value":return e=>hi(e)}throw i(`Unrecognized equality policy ${e}`)}(e);return function(e,t,n,r){switch(e){case"keep-all":return new gi({name:r,mapNodeValue:n});case"lru":return di({name:r,maxSize:s(t),mapNodeValue:n});case"most-recent":return di({name:r,maxSize:1,mapNodeValue:n})}throw i(`Unrecognized eviction policy ${e}`)}(t,n,o,r)};const{isReactNative:yi,isWindow:bi}=Nt;var wi={startPerfBlock:function(e){return()=>null}};const{isLoadable:xi,loadableWithError:_i,loadableWithPromise:Si,loadableWithValue:Oi}=M,{WrappedValue:Ci}=ri,{getNodeLoadable:Ei,peekNodeLoadable:Ai,setNodeValue:Mi}=Ge,{saveDepsToStore:ki}=we,{DEFAULT_VALUE:Pi,getConfigDeletionHandler:Ri,getNode:Ti,registerNode:Ii}=se,{isRecoilValue:Bi}=X,{markRecoilValueModified:Di}=gt,{retainedByOptionWithDefault:ji}=At,{recoilCallback:Li}=$o,{startPerfBlock:Zi}=wi;class Ni{}const Fi=new Ni,Hi=[],Vi=new Map,zi=(()=>{let e=0;return()=>e++})();function Ui(e){let t=null;const{key:n,get:r,cachePolicy_UNSTABLE:o}=e,u=null!=e.set?e.set:void 0;const l=new Set,c=mi(null!==o&&void 0!==o?o:{equality:"reference",eviction:"keep-all"},n),f=ji(e.retainedBy_UNSTABLE),d=new Map;let p=0;function h(){return!T("recoil_memory_managament_2020")||p>0}function g(e){return e.getState().knownSelectors.add(n),p++,()=>{p--}}function v(){return void 0!==Ri(n)&&!h()}function m(e,t,n,r,o){P(t,r,o),y(e,n)}function y(e,t){k(e,t)&&M(e),b(t,!0)}function b(e,n){const r=Vi.get(e);if(null!=r){for(const e of r)Di(e,s(t));n&&Vi.delete(e)}}function w(e,t){let n=Vi.get(t);null==n&&Vi.set(t,n=new Set),n.add(e)}function x(e,t,n,r,o,i){return t.then((r=>{if(!h())throw M(e),Fi;null!=i.loadingDepKey&&i.loadingDepPromise===t?n.atomValues.set(i.loadingDepKey,Oi(r)):e.getState().knownSelectors.forEach((e=>{n.atomValues.delete(e)}));const a=O(e,n);if(a&&"loading"!==a.state){if((k(e,o)||null==A(e))&&y(e,o),"hasValue"===a.state)return a.contents;throw a.contents}if(!k(e,o)){const t=E(e,n);if(null!=t)return t.loadingLoadable.contents}const[s,u]=S(e,n,o);if("loading"!==s.state&&m(e,n,o,s,u),"hasError"===s.state)throw s.contents;return s.contents})).catch((t=>{if(t instanceof Ni)throw Fi;if(!h())throw M(e),Fi;const i=_i(t);throw m(e,n,o,i,r),t}))}function _(e,t,r,o){var i,a,s,u,c,f,d;(k(e,o)||t.version===(null===(i=e.getState())||void 0===i||null===(a=i.currentTree)||void 0===a?void 0:a.version)||t.version===(null===(s=e.getState())||void 0===s||null===(u=s.nextTree)||void 0===u?void 0:u.version))&&ki(n,r,e,null!==(c=null===(f=e.getState())||void 0===f||null===(d=f.nextTree)||void 0===d?void 0:d.version)&&void 0!==c?c:e.getState().currentTree.version);for(const n of r)l.add(n)}function S(e,o,u){const l=Zi(n);let c=!0,f=!0;const d=()=>{l(),f=!1};let p,g,v=!1;const y={loadingDepKey:null,loadingDepPromise:null},w=new Map;function S({key:t}){const n=Ei(e,o,t);switch(w.set(t,n),c||(_(e,o,new Set(w.keys()),u),function(e,t){k(e,t)&&(s(A(e)).stateVersions.clear(),b(t,!1))}(e,u)),n.state){case"hasValue":return n.contents;case"hasError":throw n.contents;case"loading":throw y.loadingDepKey=t,y.loadingDepPromise=n.contents,n.contents}throw i("Invalid Loadable state")}const O=n=>(...r)=>{if(f)throw i("Callbacks from getCallback() should only be called asynchronously after the selector is evalutated. It can be used for selectors to return objects with callbacks that can work with Recoil state without a subscription.");return null==t&&Bo(!1),Li(e,n,r,{node:t})};try{p=r({get:S,getCallback:O}),p=Bi(p)?S(p):p,xi(p)&&("hasError"===p.state&&(v=!0),p=p.contents),a(p)?p=function(e,t,n,r,o,i){return t.then((t=>{if(!h())throw M(e),Fi;const i=Oi(t);return m(e,n,o,i,r),t})).catch((t=>{if(!h())throw M(e),Fi;if(a(t))return x(e,t,n,r,o,i);const s=_i(t);throw m(e,n,o,s,r),t}))}(e,p,o,w,u,y).finally(d):d(),p=p instanceof Ci?p.value:p}catch(C){p=C,a(p)?p=x(e,p,o,w,u,y).finally(d):(v=!0,d())}return g=v?_i(p):a(p)?Si(p):Oi(p),c=!1,function(e,t,n){if(k(e,t)){const t=A(e);null!=t&&(t.depValuesDiscoveredSoFarDuringAsyncWork=n)}}(e,u,w),_(e,o,new Set(w.keys()),u),[g,w]}function O(e,t){let r=t.atomValues.get(n);if(null!=r)return r;const o=new Set;try{r=c.get((n=>("string"!==typeof n&&Bo(!1),Ei(e,t,n).contents)),{onNodeVisit:e=>{"branch"===e.type&&e.nodeKey!==n&&o.add(e.nodeKey)}})}catch(s){throw i(`Problem with cache lookup for selector "${n}": ${s.message}`)}var a;r&&(t.atomValues.set(n,r),_(e,t,o,null===(a=A(e))||void 0===a?void 0:a.executionID));return r}function C(e,t){const n=O(e,t);if(null!=n)return M(e),n;const r=E(e,t);var o;if(null!=r)return"loading"===(null===(o=r.loadingLoadable)||void 0===o?void 0:o.state)&&w(e,r.executionID),r.loadingLoadable;const i=zi(),[a,s]=S(e,t,i);return"loading"===a.state?(!function(e,t,n,r,o){d.set(e,{depValuesDiscoveredSoFarDuringAsyncWork:r,executionID:t,loadingLoadable:n,stateVersions:new Map([[o.version,!0]])})}(e,i,a,s,t),w(e,i)):(M(e),P(t,a,s)),a}function E(e,t){const n=jt([d.has(e)?[s(d.get(e))]:[],J(Ie(d,(([t])=>t!==e)),(([,e])=>e))]);function r(n){for(const[r,o]of n)if(!Ei(e,t,r).is(o))return!0;return!1}for(const o of n){if(o.stateVersions.get(t.version)||!r(o.depValuesDiscoveredSoFarDuringAsyncWork))return o.stateVersions.set(t.version,!0),o;o.stateVersions.set(t.version,!1)}}function A(e){return d.get(e)}function M(e){d.delete(e)}function k(e,t){var n;return t===(null===(n=A(e))||void 0===n?void 0:n.executionID)}function P(e,t,r){e.atomValues.set(n,t);try{c.set(function(e){return Array.from(e.entries()).map((([e,t])=>[e,t.contents]))}(r),t)}catch(o){throw i(`Problem with setting cache for selector "${n}": ${o.message}`)}}function R(e,t){const r=t.atomValues.get(n);return null!=r?r:c.get((n=>{var r;return"string"!==typeof n&&Bo(!1),null===(r=Ai(e,t,n))||void 0===r?void 0:r.contents}))}function I(e,t){return function(e){if(Hi.includes(n)){const e=`Recoil selector has circular dependencies: ${Hi.slice(Hi.indexOf(n)).join(" \u2192 ")}`;return _i(i(e))}Hi.push(n);try{return e()}finally{Hi.pop()}}((()=>C(e,t)))}function B(e){e.atomValues.delete(n)}function D(e,n){null==t&&Bo(!1);for(const t of l){var r;const o=Ti(t);null===(r=o.clearCache)||void 0===r||r.call(o,e,n)}l.clear(),B(n),c.clear(),Di(e,t)}if(null!=u){return t=Ii({key:n,nodeType:"selector",peek:R,get:I,set:(e,t,r)=>{let o=!1;const s=new Map;function l({key:r}){if(o)throw i("Recoil: Async selector sets are not currently supported.");const a=Ei(e,t,r);if("hasValue"===a.state)return a.contents;if("loading"===a.state){const e=`Getting value of asynchronous atom or selector "${r}" in a pending state while setting selector "${n}" is not yet supported.`;throw j(e),i(e)}throw a.contents}function c(n,r){if(o){const e="Recoil: Async selector sets are not currently supported.";throw j(e),i(e)}const a="function"===typeof r?r(l(n)):r;Mi(e,t,n.key,a).forEach(((e,t)=>s.set(t,e)))}const f=u({set:c,get:l,reset:function(e){c(e,Pi)}},r);if(void 0!==f)throw a(f)?i("Recoil: Async selector sets are not currently supported."):i("Recoil: selector set should be a void function.");return o=!0,s},init:g,invalidate:B,clearCache:D,shouldDeleteConfigOnRelease:v,dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1,retainedBy:f})}return t=Ii({key:n,nodeType:"selector",peek:R,get:I,init:g,invalidate:B,clearCache:D,shouldDeleteConfigOnRelease:v,dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1,retainedBy:f})}Ui.value=e=>new Ci(e);var Gi=Ui;const{isLoadable:Wi,loadableWithError:$i,loadableWithPromise:qi,loadableWithValue:Yi}=M,{WrappedValue:Xi}=ri,{peekNodeInfo:Ki}=Ge,{DEFAULT_VALUE:Ji,DefaultValue:Qi,getConfigDeletionHandler:ea,registerNode:ta,setConfigDeletionHandler:na}=se,{isRecoilValue:ra}=X,{getRecoilValueAsLoadable:oa,markRecoilValueModified:ia,setRecoilValue:aa,setRecoilValueLoadable:sa}=gt,{retainedByOptionWithDefault:ua}=At,la=e=>e instanceof Xi?e.value:e;function ca(e){const{key:t,persistence_UNSTABLE:n}=e,r=ua(e.retainedBy_UNSTABLE);let o=0;function u(e){return qi(e.then((e=>(c=Yi(e),e))).catch((e=>{throw c=$i(e),e})))}let l,c=a(e.default)?u(e.default):Wi(e.default)?"loading"===e.default.state?u(e.default.contents):e.default:Yi(la(e.default));d(c.contents);const f=new Map;function d(e){return e}function p(e,n){var r,o;return null!==(r=null!==(o=n.atomValues.get(t))&&void 0!==o?o:l)&&void 0!==r?r:c}const h=ta({key:t,nodeType:"atom",peek:p,get:function(e,r){if(r.atomValues.has(t))return s(r.atomValues.get(t));if(r.nonvalidatedAtoms.has(t)){if(null!=l)return l;if(null==n)return K(`Tried to restore a persisted value for atom ${t} but it has no persistence settings.`),c;const e=r.nonvalidatedAtoms.get(t),o=n.validator(e,Ji),i=o instanceof Qi?c:Yi(o);return l=i,l}return c},set:function(e,n,r){if(n.atomValues.has(t)){const e=s(n.atomValues.get(t));if("hasValue"===e.state&&r===e.contents)return new Map}else if(!n.nonvalidatedAtoms.has(t)&&r instanceof Qi)return new Map;return l=void 0,(new Map).set(t,Yi(r))},init:function(n,r,s){var u;if(o++,n.getState().knownAtoms.add(t),"loading"===c.state){const m=()=>{var e;(null!==(e=n.getState().nextTree)&&void 0!==e?e:n.getState().currentTree).atomValues.has(t)||ia(n,h)};c.contents.finally(m)}const l=null!==(u=e.effects)&&void 0!==u?u:e.effects_UNSTABLE;if(null!=l){let y=Ji,b=!0,w=!1,x=null;function _(e){if(b&&e.key===t){const e=y;return e instanceof Qi?p(n,r):a(e)?qi(e.then((e=>e instanceof Qi?c.toPromise():e))):Yi(e)}return oa(n,e)}function S(e){return _(e).toPromise()}function O(e){var r;const o=Ki(n,null!==(r=n.getState().nextTree)&&void 0!==r?r:n.getState().currentTree,e.key);return!b||e.key!==t||y instanceof Qi?o:{...o,isSet:!0,loadable:_(e)}}const C=e=>t=>{if(b){const n=_(h),r="hasValue"===n.state?n.contents:Ji;y="function"===typeof t?t(r):t,a(y)&&(y=y.then((t=>(x={effect:e,value:t},t))))}else{if(a(t))throw i("Setting atoms to async values is not implemented.");"function"!==typeof t&&(x={effect:e,value:la(t)}),aa(n,h,"function"===typeof t?n=>{const r=la(t(n));return x={effect:e,value:r},r}:la(t))}},E=e=>()=>C(e)(Ji),A=e=>r=>{var o;const{release:i}=n.subscribeToTransactions((n=>{var o;let{currentTree:i,previousTree:a}=n.getState();a||(j("Transaction subscribers notified without a next tree being present -- this is a bug in Recoil"),a=i);const s=null!==(o=i.atomValues.get(t))&&void 0!==o?o:c;if("hasValue"===s.state){var u,l,f,d;const n=s.contents,o=null!==(u=a.atomValues.get(t))&&void 0!==u?u:c,p="hasValue"===o.state?o.contents:Ji;(null===(l=x)||void 0===l?void 0:l.effect)!==e||(null===(f=x)||void 0===f?void 0:f.value)!==n?r(n,p,!i.atomValues.has(t)):(null===(d=x)||void 0===d?void 0:d.effect)===e&&(x=null)}}),t);f.set(n,[...null!==(o=f.get(n))&&void 0!==o?o:[],i])};for(const M of l)try{const k=M({node:h,storeID:n.storeID,parentStoreID_UNSTABLE:n.parentStoreID,trigger:s,setSelf:C(M),resetSelf:E(M),onSet:A(M),getPromise:S,getLoadable:_,getInfo_UNSTABLE:O});var d;if(null!=k)f.set(n,[...null!==(d=f.get(n))&&void 0!==d?d:[],k])}catch(v){y=v,w=!0}if(b=!1,!(y instanceof Qi)){var g;const P=w?$i(y):a(y)?qi(function(e,n){const r=n.then((n=>{var o,i;return(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&aa(e,h,n),n})).catch((n=>{var o,i;throw(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&sa(e,h,$i(n)),n}));return r}(n,y)):Yi(la(y));P.contents,r.atomValues.set(t,P),null===(g=n.getState().nextTree)||void 0===g||g.atomValues.set(t,P)}}return()=>{var e;o--,null===(e=f.get(n))||void 0===e||e.forEach((e=>e())),f.delete(n)}},invalidate:function(){l=void 0},shouldDeleteConfigOnRelease:function(){return void 0!==ea(t)&&o<=0},dangerouslyAllowMutability:e.dangerouslyAllowMutability,persistence_UNSTABLE:e.persistence_UNSTABLE?{type:e.persistence_UNSTABLE.type,backButton:e.persistence_UNSTABLE.backButton}:void 0,shouldRestoreFromSnapshots:!0,retainedBy:r});return h}function fa(e){const{...t}=e,n="default"in e?e.default:new Promise((()=>{}));return ra(n)?function(e){const t=fa({...e,default:Ji,persistence_UNSTABLE:void 0===e.persistence_UNSTABLE?void 0:{...e.persistence_UNSTABLE,validator:t=>t instanceof Qi?t:s(e.persistence_UNSTABLE).validator(t,Ji)},effects:e.effects,effects_UNSTABLE:e.effects_UNSTABLE}),n=Gi({key:`${e.key}__withFallback`,get:({get:n})=>{const r=n(t);return r instanceof Qi?e.default:r},set:({set:e},n)=>e(t,n),cachePolicy_UNSTABLE:{eviction:"most-recent"},dangerouslyAllowMutability:e.dangerouslyAllowMutability});return na(n.key,ea(e.key)),n}({...t,default:n}):ca({...t,default:n})}fa.value=e=>new Xi(e);var da=fa;var pa=class{constructor(e){var t;u(this,"_map",void 0),u(this,"_keyMapper",void 0),this._map=new Map,this._keyMapper=null!==(t=null===e||void 0===e?void 0:e.mapKey)&&void 0!==t?t:e=>e}size(){return this._map.size}has(e){return this._map.has(this._keyMapper(e))}get(e){return this._map.get(this._keyMapper(e))}set(e,t){this._map.set(this._keyMapper(e),t)}delete(e){this._map.delete(this._keyMapper(e))}clear(){this._map.clear()}},ha=Object.freeze({__proto__:null,MapCache:pa});const{LRUCache:ga}=li,{MapCache:va}=ha,ma={equality:"reference",eviction:"none",maxSize:1/0};var ya=function({equality:e=ma.equality,eviction:t=ma.eviction,maxSize:n=ma.maxSize}=ma){const r=function(e){switch(e){case"reference":return e=>e;case"value":return e=>hi(e)}throw i(`Unrecognized equality policy ${e}`)}(e);return function(e,t,n){switch(e){case"keep-all":return new va({mapKey:n});case"lru":return new ga({mapKey:n,maxSize:s(t)});case"most-recent":return new ga({mapKey:n,maxSize:1})}throw i(`Unrecognized eviction policy ${e}`)}(t,n,r)};const{setConfigDeletionHandler:ba}=se;var wa=function(e){var t,n;const r=ya({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return t=>{var n,o;const i=r.get(t);if(null!=i)return i;const{cachePolicyForParams_UNSTABLE:a,...s}=e,u="default"in e?e.default:new Promise((()=>{})),l=da({...s,key:`${e.key}__${null!==(n=hi(t))&&void 0!==n?n:"void"}`,default:"function"===typeof u?u(t):u,retainedBy_UNSTABLE:"function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE,effects:"function"===typeof e.effects?e.effects(t):"function"===typeof e.effects_UNSTABLE?e.effects_UNSTABLE(t):null!==(o=e.effects)&&void 0!==o?o:e.effects_UNSTABLE});return r.set(t,l),ba(l.key,(()=>{r.delete(t)})),l}};const{setConfigDeletionHandler:xa}=se;let _a=0;var Sa=function(e){var t,n;const r=ya({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return t=>{var n;let o;try{o=r.get(t)}catch(f){throw i(`Problem with cache lookup for selector ${e.key}: ${f.message}`)}if(null!=o)return o;const a=`${e.key}__selectorFamily/${null!==(n=hi(t,{allowFunctions:!0}))&&void 0!==n?n:"void"}/${_a++}`,s=n=>e.get(t)(n),u=e.cachePolicy_UNSTABLE,l="function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE;let c;if(null!=e.set){const n=e.set;c=Gi({key:a,get:s,set:(e,r)=>n(t)(e,r),cachePolicy_UNSTABLE:u,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:l})}else c=Gi({key:a,get:s,cachePolicy_UNSTABLE:u,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:l});return r.set(t,c),xa(c.key,(()=>{r.delete(t)})),c}};const Oa=Sa({key:"__constant",get:e=>()=>e,cachePolicyForParams_UNSTABLE:{equality:"reference"}});var Ca=function(e){return Oa(e)};const Ea=Sa({key:"__error",get:e=>()=>{throw i(e)},cachePolicyForParams_UNSTABLE:{equality:"reference"}});var Aa=function(e){return Ea(e)};var Ma=function(e){return e};const{loadableWithError:ka,loadableWithPromise:Pa,loadableWithValue:Ra}=M;function Ta(e,t){const n=Array(t.length).fill(void 0),r=Array(t.length).fill(void 0);for(const[i,a]of t.entries())try{n[i]=e(a)}catch(o){r[i]=o}return[n,r]}function Ia(e){return null!=e&&!a(e)}function Ba(e){return Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((t=>e[t]))}function Da(e,t){return Array.isArray(e)?t:Object.getOwnPropertyNames(e).reduce(((e,n,r)=>({...e,[n]:t[r]})),{})}function ja(e,t,n){return Da(e,n.map(((e,n)=>null==e?Ra(t[n]):a(e)?Pa(e):ka(e))))}var La={waitForNone:Sa({key:"__waitForNone",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);return ja(e,r,o)},dangerouslyAllowMutability:!0}),waitForAny:Sa({key:"__waitForAny",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);return o.some((e=>!a(e)))?ja(e,r,o):new Promise((t=>{for(const[n,i]of o.entries())a(i)&&i.then((i=>{r[n]=i,o[n]=void 0,t(ja(e,r,o))})).catch((i=>{o[n]=i,t(ja(e,r,o))}))}))},dangerouslyAllowMutability:!0}),waitForAll:Sa({key:"__waitForAll",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);if(o.every((e=>null==e)))return Da(e,r);const i=o.find(Ia);if(null!=i)throw i;return Promise.all(o).then((t=>{return Da(e,(n=r,t.map(((e,t)=>void 0===e?n[t]:e))));var n}))},dangerouslyAllowMutability:!0}),waitForAllSettled:Sa({key:"__waitForAllSettled",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);return o.every((e=>!a(e)))?ja(e,r,o):Promise.all(o.map(((e,t)=>a(e)?e.then((e=>{r[t]=e,o[t]=void 0})).catch((e=>{r[t]=void 0,o[t]=e})):null))).then((()=>ja(e,r,o)))},dangerouslyAllowMutability:!0}),noWait:Sa({key:"__noWait",get:e=>({get:t})=>{try{return Gi.value(Ra(t(e)))}catch(n){return Gi.value(a(n)?Pa(n):ka(n))}},dangerouslyAllowMutability:!0})};const{RecoilLoadable:Za}=M,{DefaultValue:Na}=se,{RecoilRoot:Fa,useRecoilStoreID:Ha}=Qn,{isRecoilValue:Va}=X,{retentionZone:za}=Re,{freshSnapshot:Ua}=vn,{useRecoilState:Ga,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:Wa,useRecoilStateLoadable:$a,useRecoilValue:qa,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:Ya,useRecoilValueLoadable:Xa,useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Ka,useResetRecoilState:Ja,useSetRecoilState:Qa}=Ur,{useGotoRecoilSnapshot:es,useRecoilSnapshot:ts,useRecoilTransactionObserver:ns}=fo,{useRecoilCallback:rs}=$o,{noWait:os,waitForAll:is,waitForAllSettled:as,waitForAny:ss,waitForNone:us}=La;var ls={DefaultValue:Na,isRecoilValue:Va,RecoilLoadable:Za,RecoilEnv:P,RecoilRoot:Fa,useRecoilStoreID:Ha,useRecoilBridgeAcrossReactRoots_UNSTABLE:wo,atom:da,selector:Gi,atomFamily:wa,selectorFamily:Sa,constSelector:Ca,errorSelector:Aa,readOnlySelector:Ma,noWait:os,waitForNone:us,waitForAny:ss,waitForAll:is,waitForAllSettled:as,useRecoilValue:qa,useRecoilValueLoadable:Xa,useRecoilState:Ga,useRecoilStateLoadable:$a,useSetRecoilState:Qa,useResetRecoilState:Ja,useGetRecoilValueInfo_UNSTABLE:go,useRecoilRefresher_UNSTABLE:Ko,useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Ka,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:Ya,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:Wa,useRecoilCallback:rs,useRecoilTransaction_UNSTABLE:ti,useGotoRecoilSnapshot:es,useRecoilSnapshot:ts,useRecoilTransactionObserver_UNSTABLE:ns,snapshot_UNSTABLE:Ua,useRetain:fr,retentionZone:za},cs=ls.RecoilRoot,fs=ls.atom,ds=ls.selector,ps=ls.atomFamily,hs=ls.selectorFamily,gs=ls.useRecoilValue,vs=ls.useRecoilValueLoadable,ms=ls.useRecoilState,ys=ls.useSetRecoilState,bs=ls.useResetRecoilState,ws=ls.useRecoilRefresher_UNSTABLE,xs=ls.useRecoilCallback},60053:function(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<i(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,a=o>>>1;r<a;){var s=2*(r+1)-1,u=e[s],l=s+1,c=e[l];if(0>i(u,n))l<o&&0>i(c,u)?(e[r]=c,e[l]=n,r=l):(e[r]=u,e[s]=n,r=s);else{if(!(l<o&&0>i(c,n)))break e;e[r]=c,e[l]=n,r=l}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}var l=[],c=[],f=1,d=null,p=3,h=!1,g=!1,v=!1,m="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)o(c);else{if(!(t.startTime<=e))break;o(c),t.sortIndex=t.expirationTime,n(l,t)}t=r(c)}}function x(e){if(v=!1,w(e),!g)if(null!==r(l))g=!0,I(_);else{var t=r(c);null!==t&&B(x,t.startTime-e)}}function _(e,n){g=!1,v&&(v=!1,y(E),E=-1),h=!0;var i=p;try{for(w(n),d=r(l);null!==d&&(!(d.expirationTime>n)||e&&!k());){var a=d.callback;if("function"===typeof a){d.callback=null,p=d.priorityLevel;var s=a(d.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?d.callback=s:d===r(l)&&o(l),w(n)}else o(l);d=r(l)}if(null!==d)var u=!0;else{var f=r(c);null!==f&&B(x,f.startTime-n),u=!1}return u}finally{d=null,p=i,h=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,O=!1,C=null,E=-1,A=5,M=-1;function k(){return!(t.unstable_now()-M<A)}function P(){if(null!==C){var e=t.unstable_now();M=e;var n=!0;try{n=C(!0,e)}finally{n?S():(O=!1,C=null)}}else O=!1}if("function"===typeof b)S=function(){b(P)};else if("undefined"!==typeof MessageChannel){var R=new MessageChannel,T=R.port2;R.port1.onmessage=P,S=function(){T.postMessage(null)}}else S=function(){m(P,0)};function I(e){C=e,O||(O=!0,S())}function B(e,n){E=m((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||h||(g=!0,I(_))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(l)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,o,i){var a=t.unstable_now();switch("object"===typeof i&&null!==i?i="number"===typeof(i=i.delay)&&0<i?a+i:a:i=a,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:f++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>a?(e.sortIndex=i,n(c,e),null===r(l)&&e===r(c)&&(v?(y(E),E=-1):v=!0,B(x,i-a))):(e.sortIndex=s,n(l,e),g||h||(g=!0,I(_))),e},t.unstable_shouldYield=k,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},63840:function(e,t,n){"use strict";e.exports=n(60053)},96774:function(e){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),u=0;u<i.length;u++){var l=i[u];if(!s(l))return!1;var c=e[l],f=t[l];if(!1===(o=n?n.call(r,c,f,l):void 0)||void 0===o&&c!==f)return!1}return!0}},37478:function(e,t,n){"use strict";var r=n(45388),o=n(21924),i=n(27470),a=r("%TypeError%"),s=r("%WeakMap%",!0),u=r("%Map%",!0),l=o("WeakMap.prototype.get",!0),c=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),d=o("Map.prototype.get",!0),p=o("Map.prototype.set",!0),h=o("Map.prototype.has",!0),g=function(e,t){for(var n,r=e;null!==(n=r.next);r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,r={assert:function(e){if(!r.has(e))throw new a("Side channel does not contain "+i(e))},get:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return l(e,r)}else if(u){if(t)return d(t,r)}else if(n)return function(e,t){var n=g(e,t);return n&&n.value}(n,r)},has:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return f(e,r)}else if(u){if(t)return h(t,r)}else if(n)return function(e,t){return!!g(e,t)}(n,r);return!1},set:function(r,o){s&&r&&("object"===typeof r||"function"===typeof r)?(e||(e=new s),c(e,r,o)):u?(t||(t=new u),p(t,r,o)):(n||(n={key:{},next:null}),function(e,t,n){var r=g(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}}(n,r,o))}};return r}},45388:function(e,t,n){"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(t){}},u=Object.getOwnPropertyDescriptor;if(u)try{u({},"")}catch(P){u=null}var l=function(){throw new a},c=u?function(){try{return l}catch(e){try{return u(arguments,"callee").get}catch(t){return l}}}():l,f=n(41405)(),d=n(28185)(),p=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),h={},g="undefined"!==typeof Uint8Array&&p?p(Uint8Array):r,v={"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f&&p?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":h,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f&&p?p(p([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&f&&p?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&f&&p?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f&&p?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(p)try{null.error}catch(P){var m=p(p(P));v["%Error.prototype%"]=m}var y=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&p&&(n=p(o.prototype))}return v[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(58612),x=n(17642),_=w.call(Function.call,Array.prototype.concat),S=w.call(Function.apply,Array.prototype.splice),O=w.call(Function.call,String.prototype.replace),C=w.call(Function.call,String.prototype.slice),E=w.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,M=/\\(\\)?/g,k=function(e,t){var n,r=e;if(x(b,r)&&(r="%"+(n=b[r])[0]+"%"),x(v,r)){var i=v[r];if(i===h&&(i=y(r)),"undefined"===typeof i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===E(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=C(e,0,1),n=C(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return O(e,A,(function(e,t,n,o){r[r.length]=n?O(o,M,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=k("%"+r+"%",t),s=i.name,l=i.value,c=!1,f=i.alias;f&&(r=f[0],S(n,_([0,1],f)));for(var d=1,p=!0;d<n.length;d+=1){var h=n[d],g=C(h,0,1),m=C(h,-1);if(('"'===g||"'"===g||"`"===g||'"'===m||"'"===m||"`"===m)&&g!==m)throw new o("property names with quotes must have matching quotes");if("constructor"!==h&&p||(c=!0),x(v,s="%"+(r+="."+h)+"%"))l=v[s];else if(null!=l){if(!(h in l)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(u&&d+1>=n.length){var y=u(l,h);l=(p=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:l[h]}else p=x(l,h),l=l[h];p&&!c&&(v[s]=l)}}return l}},27470:function(e,t,n){var r="function"===typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=r&&o&&"function"===typeof o.get?o.get:null,a=r&&Map.prototype.forEach,s="function"===typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&u&&"function"===typeof u.get?u.get:null,c=s&&Set.prototype.forEach,f="function"===typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,d="function"===typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,p="function"===typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,h=Boolean.prototype.valueOf,g=Object.prototype.toString,v=Function.prototype.toString,m=String.prototype.match,y=String.prototype.slice,b=String.prototype.replace,w=String.prototype.toUpperCase,x=String.prototype.toLowerCase,_=RegExp.prototype.test,S=Array.prototype.concat,O=Array.prototype.join,C=Array.prototype.slice,E=Math.floor,A="function"===typeof BigInt?BigInt.prototype.valueOf:null,M=Object.getOwnPropertySymbols,k="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?Symbol.prototype.toString:null,P="function"===typeof Symbol&&"object"===typeof Symbol.iterator,R="function"===typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===P||"symbol")?Symbol.toStringTag:null,T=Object.prototype.propertyIsEnumerable,I=("function"===typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function B(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||_.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var r=e<0?-E(-e):E(e);if(r!==e){var o=String(r),i=y.call(t,o.length+1);return b.call(o,n,"$&_")+"."+b.call(b.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return b.call(t,n,"$&_")}var D=n(47165),j=D.custom,L=V(j)?j:null;function Z(e,t,n){var r="double"===(n.quoteStyle||t)?'"':"'";return r+e+r}function N(e){return b.call(String(e),/"/g,"&quot;")}function F(e){return"[object Array]"===G(e)&&(!R||!("object"===typeof e&&R in e))}function H(e){return"[object RegExp]"===G(e)&&(!R||!("object"===typeof e&&R in e))}function V(e){if(P)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!k)return!1;try{return k.call(e),!0}catch(t){}return!1}e.exports=function e(t,n,r,o){var s=n||{};if(U(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(U(s,"maxStringLength")&&("number"===typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var u=!U(s,"customInspect")||s.customInspect;if("boolean"!==typeof u&&"symbol"!==u)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(U(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(U(s,"numericSeparator")&&"boolean"!==typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var g=s.numericSeparator;if("undefined"===typeof t)return"undefined";if(null===t)return"null";if("boolean"===typeof t)return t?"true":"false";if("string"===typeof t)return $(t,s);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var w=String(t);return g?B(t,w):w}if("bigint"===typeof t){var _=String(t)+"n";return g?B(t,_):_}var E="undefined"===typeof s.depth?5:s.depth;if("undefined"===typeof r&&(r=0),r>=E&&E>0&&"object"===typeof t)return F(t)?"[Array]":"[Object]";var M=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=O.call(Array(e.indent+1)," ")}return{base:n,prev:O.call(Array(t+1),n)}}(s,r);if("undefined"===typeof o)o=[];else if(W(o,t)>=0)return"[Circular]";function j(t,n,i){if(n&&(o=C.call(o)).push(n),i){var a={depth:s.depth};return U(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,r+1,o)}return e(t,s,r+1,o)}if("function"===typeof t&&!H(t)){var z=function(e){if(e.name)return e.name;var t=m.call(v.call(e),/^function\s*([\w$]+)/);if(t)return t[1];return null}(t),q=Q(t,j);return"[Function"+(z?": "+z:" (anonymous)")+"]"+(q.length>0?" { "+O.call(q,", ")+" }":"")}if(V(t)){var ee=P?b.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):k.call(t);return"object"!==typeof t||P?ee:Y(ee)}if(function(e){if(!e||"object"!==typeof e)return!1;if("undefined"!==typeof HTMLElement&&e instanceof HTMLElement)return!0;return"string"===typeof e.nodeName&&"function"===typeof e.getAttribute}(t)){for(var te="<"+x.call(String(t.nodeName)),ne=t.attributes||[],re=0;re<ne.length;re++)te+=" "+ne[re].name+"="+Z(N(ne[re].value),"double",s);return te+=">",t.childNodes&&t.childNodes.length&&(te+="..."),te+="</"+x.call(String(t.nodeName))+">"}if(F(t)){if(0===t.length)return"[]";var oe=Q(t,j);return M&&!function(e){for(var t=0;t<e.length;t++)if(W(e[t],"\n")>=0)return!1;return!0}(oe)?"["+J(oe,M)+"]":"[ "+O.call(oe,", ")+" ]"}if(function(e){return"[object Error]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t)){var ie=Q(t,j);return"cause"in Error.prototype||!("cause"in t)||T.call(t,"cause")?0===ie.length?"["+String(t)+"]":"{ ["+String(t)+"] "+O.call(ie,", ")+" }":"{ ["+String(t)+"] "+O.call(S.call("[cause]: "+j(t.cause),ie),", ")+" }"}if("object"===typeof t&&u){if(L&&"function"===typeof t[L]&&D)return D(t,{depth:E-r});if("symbol"!==u&&"function"===typeof t.inspect)return t.inspect()}if(function(e){if(!i||!e||"object"!==typeof e)return!1;try{i.call(e);try{l.call(e)}catch(te){return!0}return e instanceof Map}catch(t){}return!1}(t)){var ae=[];return a&&a.call(t,(function(e,n){ae.push(j(n,t,!0)+" => "+j(e,t))})),K("Map",i.call(t),ae,M)}if(function(e){if(!l||!e||"object"!==typeof e)return!1;try{l.call(e);try{i.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}(t)){var se=[];return c&&c.call(t,(function(e){se.push(j(e,t))})),K("Set",l.call(t),se,M)}if(function(e){if(!f||!e||"object"!==typeof e)return!1;try{f.call(e,f);try{d.call(e,d)}catch(te){return!0}return e instanceof WeakMap}catch(t){}return!1}(t))return X("WeakMap");if(function(e){if(!d||!e||"object"!==typeof e)return!1;try{d.call(e,d);try{f.call(e,f)}catch(te){return!0}return e instanceof WeakSet}catch(t){}return!1}(t))return X("WeakSet");if(function(e){if(!p||!e||"object"!==typeof e)return!1;try{return p.call(e),!0}catch(t){}return!1}(t))return X("WeakRef");if(function(e){return"[object Number]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t))return Y(j(Number(t)));if(function(e){if(!e||"object"!==typeof e||!A)return!1;try{return A.call(e),!0}catch(t){}return!1}(t))return Y(j(A.call(t)));if(function(e){return"[object Boolean]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t))return Y(h.call(t));if(function(e){return"[object String]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t))return Y(j(String(t)));if(!function(e){return"[object Date]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t)&&!H(t)){var ue=Q(t,j),le=I?I(t)===Object.prototype:t instanceof Object||t.constructor===Object,ce=t instanceof Object?"":"null prototype",fe=!le&&R&&Object(t)===t&&R in t?y.call(G(t),8,-1):ce?"Object":"",de=(le||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(fe||ce?"["+O.call(S.call([],fe||[],ce||[]),": ")+"] ":"");return 0===ue.length?de+"{}":M?de+"{"+J(ue,M)+"}":de+"{ "+O.call(ue,", ")+" }"}return String(t)};var z=Object.prototype.hasOwnProperty||function(e){return e in this};function U(e,t){return z.call(e,t)}function G(e){return g.call(e)}function W(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function $(e,t){if(e.length>t.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return $(y.call(e,0,t.maxStringLength),t)+r}return Z(b.call(b.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,q),"single",t)}function q(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+w.call(t.toString(16))}function Y(e){return"Object("+e+")"}function X(e){return e+" { ? }"}function K(e,t,n,r){return e+" ("+t+") {"+(r?J(n,r):O.call(n,", "))+"}"}function J(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+O.call(e,","+n)+"\n"+t.prev}function Q(e,t){var n=F(e),r=[];if(n){r.length=e.length;for(var o=0;o<e.length;o++)r[o]=U(e,o)?t(e[o],e):""}var i,a="function"===typeof M?M(e):[];if(P){i={};for(var s=0;s<a.length;s++)i["$"+a[s]]=a[s]}for(var u in e)U(e,u)&&(n&&String(Number(u))===u&&u<e.length||P&&i["$"+u]instanceof Symbol||(_.call(/[^\w$]/,u)?r.push(t(u,e)+": "+t(e[u],e)):r.push(u+": "+t(e[u],e))));if("function"===typeof M)for(var l=0;l<a.length;l++)T.call(e,a[l])&&r.push("["+t(a[l])+"]: "+t(e[a[l]],e));return r}},80500:function(e){"use strict";e.exports=(e,t)=>{if("string"!==typeof e||"string"!==typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},70610:function(e){"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},60677:function(e,t,n){"use strict";n.r(t),n.d(t,{ServerStyleSheet:function(){return He},StyleSheetConsumer:function(){return ie},StyleSheetContext:function(){return oe},StyleSheetManager:function(){return fe},ThemeConsumer:function(){return Ie},ThemeContext:function(){return Te},ThemeProvider:function(){return Be},__PRIVATE__:function(){return Ue},createGlobalStyle:function(){return Ne},css:function(){return xe},default:function(){return Ge},isStyledComponent:function(){return x},keyframes:function(){return Fe},useTheme:function(){return ze},version:function(){return S},withTheme:function(){return Ve}});var r=n(59864),o=n(67294),i=n(96774),a=n.n(i);var s=function(e){function t(e,r,u,l,d){for(var p,h,g,v,w,_=0,S=0,O=0,C=0,E=0,T=0,B=g=p=0,j=0,L=0,Z=0,N=0,F=u.length,H=F-1,V="",z="",U="",G="";j<F;){if(h=u.charCodeAt(j),j===H&&0!==S+C+O+_&&(0!==S&&(h=47===S?10:47),C=O=_=0,F++,H++),0===S+C+O+_){if(j===H&&(0<L&&(V=V.replace(f,"")),0<V.trim().length)){switch(h){case 32:case 9:case 59:case 13:case 10:break;default:V+=u.charAt(j)}h=59}switch(h){case 123:for(p=(V=V.trim()).charCodeAt(0),g=1,N=++j;j<F;){switch(h=u.charCodeAt(j)){case 123:g++;break;case 125:g--;break;case 47:switch(h=u.charCodeAt(j+1)){case 42:case 47:e:{for(B=j+1;B<H;++B)switch(u.charCodeAt(B)){case 47:if(42===h&&42===u.charCodeAt(B-1)&&j+2!==B){j=B+1;break e}break;case 10:if(47===h){j=B+1;break e}}j=B}}break;case 91:h++;case 40:h++;case 34:case 39:for(;j++<H&&u.charCodeAt(j)!==h;);}if(0===g)break;j++}if(g=u.substring(N,j),0===p&&(p=(V=V.replace(c,"").trim()).charCodeAt(0)),64===p){switch(0<L&&(V=V.replace(f,"")),h=V.charCodeAt(1)){case 100:case 109:case 115:case 45:L=r;break;default:L=R}if(N=(g=t(r,L,g,h,d+1)).length,0<I&&(w=s(3,g,L=n(R,V,Z),r,M,A,N,h,d,l),V=L.join(""),void 0!==w&&0===(N=(g=w.trim()).length)&&(h=0,g="")),0<N)switch(h){case 115:V=V.replace(x,a);case 100:case 109:case 45:g=V+"{"+g+"}";break;case 107:g=(V=V.replace(m,"$1 $2"))+"{"+g+"}",g=1===P||2===P&&i("@"+g,3)?"@-webkit-"+g+"@"+g:"@"+g;break;default:g=V+g,112===l&&(z+=g,g="")}else g=""}else g=t(r,n(r,V,Z),g,l,d+1);U+=g,g=Z=L=B=p=0,V="",h=u.charCodeAt(++j);break;case 125:case 59:if(1<(N=(V=(0<L?V.replace(f,""):V).trim()).length))switch(0===B&&(p=V.charCodeAt(0),45===p||96<p&&123>p)&&(N=(V=V.replace(" ",":")).length),0<I&&void 0!==(w=s(1,V,r,e,M,A,z.length,l,d,l))&&0===(N=(V=w.trim()).length)&&(V="\0\0"),p=V.charCodeAt(0),h=V.charCodeAt(1),p){case 0:break;case 64:if(105===h||99===h){G+=V+u.charAt(j);break}default:58!==V.charCodeAt(N-1)&&(z+=o(V,p,h,V.charCodeAt(2)))}Z=L=B=p=0,V="",h=u.charCodeAt(++j)}}switch(h){case 13:case 10:47===S?S=0:0===1+p&&107!==l&&0<V.length&&(L=1,V+="\0"),0<I*D&&s(0,V,r,e,M,A,z.length,l,d,l),A=1,M++;break;case 59:case 125:if(0===S+C+O+_){A++;break}default:switch(A++,v=u.charAt(j),h){case 9:case 32:if(0===C+_+S)switch(E){case 44:case 58:case 9:case 32:v="";break;default:32!==h&&(v=" ")}break;case 0:v="\\0";break;case 12:v="\\f";break;case 11:v="\\v";break;case 38:0===C+S+_&&(L=Z=1,v="\f"+v);break;case 108:if(0===C+S+_+k&&0<B)switch(j-B){case 2:112===E&&58===u.charCodeAt(j-3)&&(k=E);case 8:111===T&&(k=T)}break;case 58:0===C+S+_&&(B=j);break;case 44:0===S+O+C+_&&(L=1,v+="\r");break;case 34:case 39:0===S&&(C=C===h?0:0===C?h:C);break;case 91:0===C+S+O&&_++;break;case 93:0===C+S+O&&_--;break;case 41:0===C+S+_&&O--;break;case 40:if(0===C+S+_){if(0===p)if(2*E+3*T===533);else p=1;O++}break;case 64:0===S+O+C+_+B+g&&(g=1);break;case 42:case 47:if(!(0<C+_+O))switch(S){case 0:switch(2*h+3*u.charCodeAt(j+1)){case 235:S=47;break;case 220:N=j,S=42}break;case 42:47===h&&42===E&&N+2!==j&&(33===u.charCodeAt(N+2)&&(z+=u.substring(N,j+1)),v="",S=0)}}0===S&&(V+=v)}T=E,E=h,j++}if(0<(N=z.length)){if(L=r,0<I&&(void 0!==(w=s(2,z,L,e,M,A,N,l,d,l))&&0===(z=w).length))return G+z+U;if(z=L.join(",")+"{"+z+"}",0!==P*k){switch(2!==P||i(z,2)||(k=0),k){case 111:z=z.replace(b,":-moz-$1")+z;break;case 112:z=z.replace(y,"::-webkit-input-$1")+z.replace(y,"::-moz-$1")+z.replace(y,":-ms-input-$1")+z}k=0}}return G+z+U}function n(e,t,n){var o=t.trim().split(g);t=o;var i=o.length,a=e.length;switch(a){case 0:case 1:var s=0;for(e=0===a?"":e[0]+" ";s<i;++s)t[s]=r(e,t[s],n).trim();break;default:var u=s=0;for(t=[];s<i;++s)for(var l=0;l<a;++l)t[u++]=r(e[l]+" ",o[s],n).trim()}return t}function r(e,t,n){var r=t.charCodeAt(0);switch(33>r&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(v,"$1"+e.trim());case 58:return e.trim()+t.replace(v,"$1"+e.trim());default:if(0<1*n&&0<t.indexOf("\f"))return t.replace(v,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function o(e,t,n,r){var a=e+";",s=2*t+3*n+4*r;if(944===s){e=a.indexOf(":",9)+1;var u=a.substring(e,a.length-1).trim();return u=a.substring(0,e).trim()+u+";",1===P||2===P&&i(u,1)?"-webkit-"+u+u:u}if(0===P||2===P&&!i(a,1))return a;switch(s){case 1015:return 97===a.charCodeAt(10)?"-webkit-"+a+a:a;case 951:return 116===a.charCodeAt(3)?"-webkit-"+a+a:a;case 963:return 110===a.charCodeAt(5)?"-webkit-"+a+a:a;case 1009:if(100!==a.charCodeAt(4))break;case 969:case 942:return"-webkit-"+a+a;case 978:return"-webkit-"+a+"-moz-"+a+a;case 1019:case 983:return"-webkit-"+a+"-moz-"+a+"-ms-"+a+a;case 883:if(45===a.charCodeAt(8))return"-webkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(E,"$1-webkit-$2")+a;break;case 932:if(45===a.charCodeAt(4))switch(a.charCodeAt(5)){case 103:return"-webkit-box-"+a.replace("-grow","")+"-webkit-"+a+"-ms-"+a.replace("grow","positive")+a;case 115:return"-webkit-"+a+"-ms-"+a.replace("shrink","negative")+a;case 98:return"-webkit-"+a+"-ms-"+a.replace("basis","preferred-size")+a}return"-webkit-"+a+"-ms-"+a+a;case 964:return"-webkit-"+a+"-ms-flex-"+a+a;case 1023:if(99!==a.charCodeAt(8))break;return"-webkit-box-pack"+(u=a.substring(a.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+a+"-ms-flex-pack"+u+a;case 1005:return p.test(a)?a.replace(d,":-webkit-")+a.replace(d,":-moz-")+a:a;case 1e3:switch(t=(u=a.substring(13).trim()).indexOf("-")+1,u.charCodeAt(0)+u.charCodeAt(t)){case 226:u=a.replace(w,"tb");break;case 232:u=a.replace(w,"tb-rl");break;case 220:u=a.replace(w,"lr");break;default:return a}return"-webkit-"+a+"-ms-"+u+a;case 1017:if(-1===a.indexOf("sticky",9))break;case 975:switch(t=(a=e).length-10,s=(u=(33===a.charCodeAt(t)?a.substring(0,t):a).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|u.charCodeAt(7))){case 203:if(111>u.charCodeAt(8))break;case 115:a=a.replace(u,"-webkit-"+u)+";"+a;break;case 207:case 102:a=a.replace(u,"-webkit-"+(102<s?"inline-":"")+"box")+";"+a.replace(u,"-webkit-"+u)+";"+a.replace(u,"-ms-"+u+"box")+";"+a}return a+";";case 938:if(45===a.charCodeAt(5))switch(a.charCodeAt(6)){case 105:return u=a.replace("-items",""),"-webkit-"+a+"-webkit-box-"+u+"-ms-flex-"+u+a;case 115:return"-webkit-"+a+"-ms-flex-item-"+a.replace(S,"")+a;default:return"-webkit-"+a+"-ms-flex-line-pack"+a.replace("align-content","").replace(S,"")+a}break;case 973:case 989:if(45!==a.charCodeAt(3)||122===a.charCodeAt(4))break;case 931:case 953:if(!0===C.test(e))return 115===(u=e.substring(e.indexOf(":")+1)).charCodeAt(0)?o(e.replace("stretch","fill-available"),t,n,r).replace(":fill-available",":stretch"):a.replace(u,"-webkit-"+u)+a.replace(u,"-moz-"+u.replace("fill-",""))+a;break;case 962:if(a="-webkit-"+a+(102===a.charCodeAt(5)?"-ms-"+a:"")+a,211===n+r&&105===a.charCodeAt(13)&&0<a.indexOf("transform",10))return a.substring(0,a.indexOf(";",27)+1).replace(h,"$1-webkit-$2")+a}return a}function i(e,t){var n=e.indexOf(1===t?":":"{"),r=e.substring(0,3!==t?n:10);return n=e.substring(n+1,e.length-1),B(2!==t?r:r.replace(O,"$1"),n,t)}function a(e,t){var n=o(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(_," or ($1)").substring(4):"("+t+")"}function s(e,t,n,r,o,i,a,s,u,c){for(var f,d=0,p=t;d<I;++d)switch(f=T[d].call(l,e,p,n,r,o,i,a,s,u,c)){case void 0:case!1:case!0:case null:break;default:p=f}if(p!==t)return p}function u(e){return void 0!==(e=e.prefix)&&(B=null,e?"function"!==typeof e?P=1:(P=2,B=e):P=0),u}function l(e,n){var r=e;if(33>r.charCodeAt(0)&&(r=r.trim()),r=[r],0<I){var o=s(-1,n,r,r,M,A,0,0,0,0);void 0!==o&&"string"===typeof o&&(n=o)}var i=t(R,r,n,0,0);return 0<I&&(void 0!==(o=s(-2,i,r,r,M,A,i.length,0,0,0))&&(i=o)),"",k=0,A=M=1,i}var c=/^\0+/g,f=/[\0\r\f]/g,d=/: */g,p=/zoo|gra/,h=/([,: ])(transform)/g,g=/,\r+?/g,v=/([\t\r\n ])*\f?&/g,m=/@(k\w+)\s*(\S*)\s*/,y=/::(place)/g,b=/:(read-only)/g,w=/[svh]\w+-[tblr]{2}/,x=/\(\s*(.*)\s*\)/g,_=/([\s\S]*?);/g,S=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,C=/stretch|:\s*\w+\-(?:conte|avail)/,E=/([^-])(image-set\()/,A=1,M=1,k=0,P=1,R=[],T=[],I=0,B=null,D=0;return l.use=function e(t){switch(t){case void 0:case null:I=T.length=0;break;default:if("function"===typeof t)T[I++]=t;else if("object"===typeof t)for(var n=0,r=t.length;n<r;++n)e(t[n]);else D=0|!!t}return e},l.set=u,void 0!==e&&u(e),l},u={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},l=n(45042),c=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,f=(0,l.Z)((function(e){return c.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),d=n(8679),p=n.n(d);function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var g=function(e,t){for(var n=[e[0]],r=0,o=t.length;r<o;r+=1)n.push(t[r],e[r+1]);return n},v=function(e){return null!==e&&"object"==typeof e&&"[object Object]"===(e.toString?e.toString():Object.prototype.toString.call(e))&&!(0,r.typeOf)(e)},m=Object.freeze([]),y=Object.freeze({});function b(e){return"function"==typeof e}function w(e){return e.displayName||e.name||"Component"}function x(e){return e&&"string"==typeof e.styledComponentId}var _="undefined"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",S="5.3.10",O="undefined"!=typeof window&&"HTMLElement"in window,C=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env&&(void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==process.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:void 0!==process.env.SC_DISABLE_SPEEDY&&""!==process.env.SC_DISABLE_SPEEDY&&("false"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY))),E={};function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw new Error("An error occurred. See https://git.io/JUIaE#"+e+" for more information."+(n.length>0?" Args: "+n.join(", "):""))}var M=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&A(16,""+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var i=r;i<o;i++)this.groupSizes[i]=0}for(var a=this.indexOfGroup(e+1),s=0,u=t.length;s<u;s++)this.tag.insertRule(a,t[s])&&(this.groupSizes[e]++,a++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),r=n+t;this.groupSizes[e]=0;for(var o=n;o<r;o++)this.tag.deleteRule(n)}},t.getGroup=function(e){var t="";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,i=r;i<o;i++)t+=this.tag.getRule(i)+"/*!sc*/\n";return t},e}(),k=new Map,P=new Map,R=1,T=function(e){if(k.has(e))return k.get(e);for(;P.has(R);)R++;var t=R++;return k.set(e,t),P.set(t,e),t},I=function(e){return P.get(e)},B=function(e,t){t>=R&&(R=t+1),k.set(e,t),P.set(t,e)},D="style["+_+'][data-styled-version="5.3.10"]',j=new RegExp("^"+_+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),L=function(e,t,n){for(var r,o=n.split(","),i=0,a=o.length;i<a;i++)(r=o[i])&&e.registerName(t,r)},Z=function(e,t){for(var n=(t.textContent||"").split("/*!sc*/\n"),r=[],o=0,i=n.length;o<i;o++){var a=n[o].trim();if(a){var s=a.match(j);if(s){var u=0|parseInt(s[1],10),l=s[2];0!==u&&(B(l,u),L(e,l,s[3]),e.getTag().insertRules(u,r)),r.length=0}else r.push(a)}}},N=function(){return n.nc},F=function(e){var t=document.head,n=e||t,r=document.createElement("style"),o=function(e){for(var t=e.childNodes,n=t.length;n>=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(_))return r}}(n),i=void 0!==o?o.nextSibling:null;r.setAttribute(_,"active"),r.setAttribute("data-styled-version","5.3.10");var a=N();return a&&r.setAttribute("nonce",a),n.insertBefore(r,i),r},H=function(){function e(e){var t=this.element=F(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n<r;n++){var o=t[n];if(o.ownerNode===e)return o}A(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&"string"==typeof t.cssText?t.cssText:""},e}(),V=function(){function e(e){var t=this.element=F(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:""},e}(),z=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:""},e}(),U=O,G={isServer:!O,useCSSOMInjection:!C},W=function(){function e(e,t,n){void 0===e&&(e=y),void 0===t&&(t={}),this.options=h({},G,{},e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&O&&U&&(U=!1,function(e){for(var t=document.querySelectorAll(D),n=0,r=t.length;n<r;n++){var o=t[n];o&&"active"!==o.getAttribute(_)&&(Z(e,o),o.parentNode&&o.parentNode.removeChild(o))}}(this))}e.registerId=function(e){return T(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(h({},this.options,{},t),this.gs,n&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(n=(t=this.options).isServer,r=t.useCSSOMInjection,o=t.target,e=n?new z(o):r?new H(o):new V(o),new M(e)));var e,t,n,r,o},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(T(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},t.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(T(e),n)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(T(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),n=t.length,r="",o=0;o<n;o++){var i=I(o);if(void 0!==i){var a=e.names.get(i),s=t.getGroup(o);if(a&&s&&a.size){var u=_+".g"+o+'[id="'+i+'"]',l="";void 0!==a&&a.forEach((function(e){e.length>0&&(l+=e+",")})),r+=""+s+u+'{content:"'+l+'"}/*!sc*/\n'}}}return r}(this)},e}(),$=/(a)(d)/gi,q=function(e){return String.fromCharCode(e+(e>25?39:97))};function Y(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=q(t%52)+n;return(q(t%52)+n).replace($,"$1-$2")}var X=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},K=function(e){return X(5381,e)};function J(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(b(n)&&!x(n))return!1}return!0}var Q=K("5.3.10"),ee=function(){function e(e,t,n){this.rules=e,this.staticRulesId="",this.isStatic=(void 0===n||n.isStatic)&&J(e),this.componentId=t,this.baseHash=X(Q,t),this.baseStyle=n,W.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var r=this.componentId,o=[];if(this.baseStyle&&o.push(this.baseStyle.generateAndInjectStyles(e,t,n)),this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(r,this.staticRulesId))o.push(this.staticRulesId);else{var i=be(this.rules,e,t,n).join(""),a=Y(X(this.baseHash,i)>>>0);if(!t.hasNameForId(r,a)){var s=n(i,"."+a,void 0,r);t.insertRules(r,a,s)}o.push(a),this.staticRulesId=a}else{for(var u=this.rules.length,l=X(this.baseHash,n.hash),c="",f=0;f<u;f++){var d=this.rules[f];if("string"==typeof d)c+=d;else if(d){var p=be(d,e,t,n),h=Array.isArray(p)?p.join(""):p;l=X(l,h+f),c+=h}}if(c){var g=Y(l>>>0);if(!t.hasNameForId(r,g)){var v=n(c,"."+g,void 0,r);t.insertRules(r,g,v)}o.push(g)}}return o.join(" ")},e}(),te=/^\s*\/\/.*$/gm,ne=[":","[",".","#"];function re(e){var t,n,r,o,i=void 0===e?y:e,a=i.options,u=void 0===a?y:a,l=i.plugins,c=void 0===l?m:l,f=new s(u),d=[],p=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(n,r,o,i,a,s,u,l,c,f){switch(n){case 1:if(0===c&&64===r.charCodeAt(0))return e(r+";"),"";break;case 2:if(0===l)return r+"/*|*/";break;case 3:switch(l){case 102:case 112:return e(o[0]+r),"";default:return r+(0===f?"/*|*/":"")}case-2:r.split("/*|*/}").forEach(t)}}}((function(e){d.push(e)})),h=function(e,r,i){return 0===r&&-1!==ne.indexOf(i[n.length])||i.match(o)?e:"."+t};function g(e,i,a,s){void 0===s&&(s="&");var u=e.replace(te,""),l=i&&a?a+" "+i+" { "+u+" }":u;return t=s,n=i,r=new RegExp("\\"+n+"\\b","g"),o=new RegExp("(\\"+n+"\\b){2,}"),f(a||!i?"":i,l)}return f.use([].concat(c,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,h))},p,function(e){if(-2===e){var t=d;return d=[],t}}])),g.hash=c.length?c.reduce((function(e,t){return t.name||A(15),X(e,t.name)}),5381).toString():"",g}var oe=o.createContext(),ie=oe.Consumer,ae=o.createContext(),se=(ae.Consumer,new W),ue=re();function le(){return(0,o.useContext)(oe)||se}function ce(){return(0,o.useContext)(ae)||ue}function fe(e){var t=(0,o.useState)(e.stylisPlugins),n=t[0],r=t[1],i=le(),s=(0,o.useMemo)((function(){var t=i;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),u=(0,o.useMemo)((function(){return re({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return(0,o.useEffect)((function(){a()(n,e.stylisPlugins)||r(e.stylisPlugins)}),[e.stylisPlugins]),o.createElement(oe.Provider,{value:s},o.createElement(ae.Provider,{value:u},e.children))}var de=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=ue);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,"@keyframes"))},this.toString=function(){return A(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=ue),this.name+e.hash},e}(),pe=/([A-Z])/,he=/([A-Z])/g,ge=/^ms-/,ve=function(e){return"-"+e.toLowerCase()};function me(e){return pe.test(e)?e.replace(he,ve).replace(ge,"-ms-"):e}var ye=function(e){return null==e||!1===e||""===e};function be(e,t,n,r){if(Array.isArray(e)){for(var o,i=[],a=0,s=e.length;a<s;a+=1)""!==(o=be(e[a],t,n,r))&&(Array.isArray(o)?i.push.apply(i,o):i.push(o));return i}return ye(e)?"":x(e)?"."+e.styledComponentId:b(e)?"function"!=typeof(l=e)||l.prototype&&l.prototype.isReactComponent||!t?e:be(e(t),t,n,r):e instanceof de?n?(e.inject(n,r),e.getName(r)):e:v(e)?function e(t,n){var r,o,i=[];for(var a in t)t.hasOwnProperty(a)&&!ye(t[a])&&(Array.isArray(t[a])&&t[a].isCss||b(t[a])?i.push(me(a)+":",t[a],";"):v(t[a])?i.push.apply(i,e(t[a],a)):i.push(me(a)+": "+(r=a,(null==(o=t[a])||"boolean"==typeof o||""===o?"":"number"!=typeof o||0===o||r in u||r.startsWith("--")?String(o).trim():o+"px")+";")));return n?[n+" {"].concat(i,["}"]):i}(e):e.toString();var l}var we=function(e){return Array.isArray(e)&&(e.isCss=!0),e};function xe(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return b(e)||v(e)?we(be(g(m,[e].concat(n)))):0===n.length&&1===e.length&&"string"==typeof e[0]?e:we(be(g(e,n)))}new Set;var _e=function(e,t,n){return void 0===n&&(n=y),e.theme!==n.theme&&e.theme||t||n.theme},Se=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,Oe=/(^-|-$)/g;function Ce(e){return e.replace(Se,"-").replace(Oe,"")}var Ee=function(e){return Y(K(e)>>>0)};function Ae(e){return"string"==typeof e&&!0}var Me=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},ke=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Pe(e,t,n){var r=e[n];Me(t)&&Me(r)?Re(r,t):e[n]=t}function Re(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var o=0,i=n;o<i.length;o++){var a=i[o];if(Me(a))for(var s in a)ke(s)&&Pe(e,a[s],s)}return e}var Te=o.createContext(),Ie=Te.Consumer;function Be(e){var t=(0,o.useContext)(Te),n=(0,o.useMemo)((function(){return function(e,t){return e?b(e)?e(t):Array.isArray(e)||"object"!=typeof e?A(8):t?h({},t,{},e):e:A(14)}(e.theme,t)}),[e.theme,t]);return e.children?o.createElement(Te.Provider,{value:n},e.children):null}var De={};function je(e,t,n){var r=x(e),i=!Ae(e),a=t.attrs,s=void 0===a?m:a,u=t.componentId,l=void 0===u?function(e,t){var n="string"!=typeof e?"sc":Ce(e);De[n]=(De[n]||0)+1;var r=n+"-"+Ee("5.3.10"+n+De[n]);return t?t+"-"+r:r}(t.displayName,t.parentComponentId):u,c=t.displayName,d=void 0===c?function(e){return Ae(e)?"styled."+e:"Styled("+w(e)+")"}(e):c,g=t.displayName&&t.componentId?Ce(t.displayName)+"-"+t.componentId:t.componentId||l,v=r&&e.attrs?Array.prototype.concat(e.attrs,s).filter(Boolean):s,_=t.shouldForwardProp;r&&e.shouldForwardProp&&(_=t.shouldForwardProp?function(n,r,o){return e.shouldForwardProp(n,r,o)&&t.shouldForwardProp(n,r,o)}:e.shouldForwardProp);var S,O=new ee(n,g,r?e.componentStyle:void 0),C=O.isStatic&&0===s.length,E=function(e,t){return function(e,t,n,r){var i=e.attrs,a=e.componentStyle,s=e.defaultProps,u=e.foldedComponentIds,l=e.shouldForwardProp,c=e.styledComponentId,d=e.target,p=function(e,t,n){void 0===e&&(e=y);var r=h({},t,{theme:e}),o={};return n.forEach((function(e){var t,n,i,a=e;for(t in b(a)&&(a=a(r)),a)r[t]=o[t]="className"===t?(n=o[t],i=a[t],n&&i?n+" "+i:n||i):a[t]})),[r,o]}(_e(t,(0,o.useContext)(Te),s)||y,t,i),g=p[0],v=p[1],m=function(e,t,n,r){var o=le(),i=ce();return t?e.generateAndInjectStyles(y,o,i):e.generateAndInjectStyles(n,o,i)}(a,r,g),w=n,x=v.$as||t.$as||v.as||t.as||d,_=Ae(x),S=v!==t?h({},t,{},v):t,O={};for(var C in S)"$"!==C[0]&&"as"!==C&&("forwardedAs"===C?O.as=S[C]:(l?l(C,f,x):!_||f(C))&&(O[C]=S[C]));return t.style&&v.style!==t.style&&(O.style=h({},t.style,{},v.style)),O.className=Array.prototype.concat(u,c,m!==c?m:null,t.className,v.className).filter(Boolean).join(" "),O.ref=w,(0,o.createElement)(x,O)}(S,e,t,C)};return E.displayName=d,(S=o.forwardRef(E)).attrs=v,S.componentStyle=O,S.displayName=d,S.shouldForwardProp=_,S.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):m,S.styledComponentId=g,S.target=r?e.target:e,S.withComponent=function(e){var r=t.componentId,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,["componentId"]),i=r&&r+"-"+(Ae(e)?e:Ce(w(e)));return je(e,h({},o,{attrs:v,componentId:i}),n)},Object.defineProperty(S,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Re({},e.defaultProps,t):t}}),Object.defineProperty(S,"toString",{value:function(){return"."+S.styledComponentId}}),i&&p()(S,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),S}var Le=function(e){return function e(t,n,o){if(void 0===o&&(o=y),!(0,r.isValidElementType)(n))return A(1,String(n));var i=function(){return t(n,o,xe.apply(void 0,arguments))};return i.withConfig=function(r){return e(t,n,h({},o,{},r))},i.attrs=function(r){return e(t,n,h({},o,{attrs:Array.prototype.concat(o.attrs,r).filter(Boolean)}))},i}(je,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Le[e]=Le(e)}));var Ze=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=J(e),W.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(be(this.rules,t,n,r).join(""),""),i=this.componentId+e;n.insertRules(i,i,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&W.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function Ne(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=xe.apply(void 0,[e].concat(n)),a="sc-global-"+Ee(JSON.stringify(i)),s=new Ze(i,a);function u(e){var t=le(),n=ce(),r=(0,o.useContext)(Te),i=(0,o.useRef)(t.allocateGSInstance(a)).current;return t.server&&l(i,e,t,r,n),(0,o.useLayoutEffect)((function(){if(!t.server)return l(i,e,t,r,n),function(){return s.removeStyles(i,t)}}),[i,e,t,r,n]),null}function l(e,t,n,r,o){if(s.isStatic)s.renderStyles(e,E,n,o);else{var i=h({},t,{theme:_e(t,r,u.defaultProps)});s.renderStyles(e,i,n,o)}}return o.memo(u)}function Fe(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=xe.apply(void 0,[e].concat(n)).join(""),i=Ee(o);return new de(i,o)}var He=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var n=N();return"<style "+[n&&'nonce="'+n+'"',_+'="true"','data-styled-version="5.3.10"'].filter(Boolean).join(" ")+">"+t+"</style>"},this.getStyleTags=function(){return e.sealed?A(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return A(2);var n=((t={})[_]="",t["data-styled-version"]="5.3.10",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),r=N();return r&&(n.nonce=r),[o.createElement("style",h({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new W({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?A(2):o.createElement(fe,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return A(3)},e}(),Ve=function(e){var t=o.forwardRef((function(t,n){var r=(0,o.useContext)(Te),i=e.defaultProps,a=_e(t,r,i);return o.createElement(e,h({},t,{theme:a,ref:n}))}));return p()(t,e),t.displayName="WithTheme("+w(e)+")",t},ze=function(){return(0,o.useContext)(Te)},Ue={StyleSheet:W,masterSheet:se},Ge=Le},75980:function(e,t,n){"use strict";n.d(t,{FK:function(){return A}});var r=n(27418),o=n.n(r),i=function(e,t){var n=o()({},e,t);for(var r in e){var i;e[r]&&"object"===typeof t[r]&&o()(n,((i={})[r]=o()(e[r],t[r]),i))}return n},a={breakpoints:[40,52,64].map((function(e){return e+"em"}))},s=function(e){return"@media screen and (min-width: "+e+")"},u=function(e,t){return l(t,e,e)},l=function(e,t,n,r,o){for(t=t&&t.split?t.split("."):[t],r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e},c=function e(t){var n={},r=function(e){var r={},u=!1,c=e.theme&&e.theme.disableStyledSystemCache;for(var p in e)if(t[p]){var h=t[p],g=e[p],v=l(e.theme,h.scale,h.defaults);if("object"!==typeof g)o()(r,h(g,v,e));else{if(n.breakpoints=!c&&n.breakpoints||l(e.theme,"breakpoints",a.breakpoints),Array.isArray(g)){n.media=!c&&n.media||[null].concat(n.breakpoints.map(s)),r=i(r,f(n.media,h,v,g,e));continue}null!==g&&(r=i(r,d(n.breakpoints,h,v,g,e)),u=!0)}}return u&&(r=function(e){var t={};return Object.keys(e).sort((function(e,t){return e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})})).forEach((function(n){t[n]=e[n]})),t}(r)),r};r.config=t,r.propNames=Object.keys(t),r.cache=n;var u=Object.keys(t).filter((function(e){return"config"!==e}));return u.length>1&&u.forEach((function(n){var o;r[n]=e(((o={})[n]=t[n],o))})),r},f=function(e,t,n,r,i){var a={};return r.slice(0,e.length).forEach((function(r,s){var u,l=e[s],c=t(r,n,i);l?o()(a,((u={})[l]=o()({},a[l],c),u)):o()(a,c)})),a},d=function(e,t,n,r,i){var a={};for(var u in r){var l=e[u],c=t(r[u],n,i);if(l){var f,d=s(l);o()(a,((f={})[d]=o()({},a[d],c),f))}else o()(a,c)}return a},p=function(e){var t=e.properties,n=e.property,r=e.scale,o=e.transform,i=void 0===o?u:o,a=e.defaultScale;t=t||[n];var s=function(e,n,r){var o={},a=i(e,n,r);if(null!==a)return t.forEach((function(e){o[e]=a})),o};return s.scale=r,s.defaults=a,s},h=function(e){void 0===e&&(e={});var t={};return Object.keys(e).forEach((function(n){var r=e[n];t[n]=!0!==r?"function"!==typeof r?p(r):r:p({property:n,scale:n})})),c(t)},g=h({width:{property:"width",scale:"sizes",transform:function(e,t){return l(t,e,!function(e){return"number"===typeof e&&!isNaN(e)}(e)||e>1?e:100*e+"%")}},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},size:{properties:["width","height"],scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0}),v={color:{property:"color",scale:"colors"},backgroundColor:{property:"backgroundColor",scale:"colors"},opacity:!0};v.bg=v.backgroundColor;var m=h(v),y=h({fontFamily:{property:"fontFamily",scale:"fonts"},fontSize:{property:"fontSize",scale:"fontSizes",defaultScale:[12,14,16,20,24,32,48,64,72]},fontWeight:{property:"fontWeight",scale:"fontWeights"},lineHeight:{property:"lineHeight",scale:"lineHeights"},letterSpacing:{property:"letterSpacing",scale:"letterSpacings"},textAlign:!0,fontStyle:!0}),b=h({alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:!0,flex:!0,flexGrow:!0,flexShrink:!0,flexBasis:!0,justifySelf:!0,alignSelf:!0,order:!0}),w={space:[0,4,8,16,32,64,128,256,512]},x=h({gridGap:{property:"gridGap",scale:"space",defaultScale:w.space},gridColumnGap:{property:"gridColumnGap",scale:"space",defaultScale:w.space},gridRowGap:{property:"gridRowGap",scale:"space",defaultScale:w.space},gridColumn:!0,gridRow:!0,gridAutoFlow:!0,gridAutoColumns:!0,gridAutoRows:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridArea:!0}),_={border:{property:"border",scale:"borders"},borderWidth:{property:"borderWidth",scale:"borderWidths"},borderStyle:{property:"borderStyle",scale:"borderStyles"},borderColor:{property:"borderColor",scale:"colors"},borderRadius:{property:"borderRadius",scale:"radii"},borderTop:{property:"borderTop",scale:"borders"},borderTopLeftRadius:{property:"borderTopLeftRadius",scale:"radii"},borderTopRightRadius:{property:"borderTopRightRadius",scale:"radii"},borderRight:{property:"borderRight",scale:"borders"},borderBottom:{property:"borderBottom",scale:"borders"},borderBottomLeftRadius:{property:"borderBottomLeftRadius",scale:"radii"},borderBottomRightRadius:{property:"borderBottomRightRadius",scale:"radii"},borderLeft:{property:"borderLeft",scale:"borders"},borderX:{properties:["borderLeft","borderRight"],scale:"borders"},borderY:{properties:["borderTop","borderBottom"],scale:"borders"},borderTopWidth:{property:"borderTopWidth",scale:"borderWidths"},borderTopColor:{property:"borderTopColor",scale:"colors"},borderTopStyle:{property:"borderTopStyle",scale:"borderStyles"}};_.borderTopLeftRadius={property:"borderTopLeftRadius",scale:"radii"},_.borderTopRightRadius={property:"borderTopRightRadius",scale:"radii"},_.borderBottomWidth={property:"borderBottomWidth",scale:"borderWidths"},_.borderBottomColor={property:"borderBottomColor",scale:"colors"},_.borderBottomStyle={property:"borderBottomStyle",scale:"borderStyles"},_.borderBottomLeftRadius={property:"borderBottomLeftRadius",scale:"radii"},_.borderBottomRightRadius={property:"borderBottomRightRadius",scale:"radii"},_.borderLeftWidth={property:"borderLeftWidth",scale:"borderWidths"},_.borderLeftColor={property:"borderLeftColor",scale:"colors"},_.borderLeftStyle={property:"borderLeftStyle",scale:"borderStyles"},_.borderRightWidth={property:"borderRightWidth",scale:"borderWidths"},_.borderRightColor={property:"borderRightColor",scale:"colors"},_.borderRightStyle={property:"borderRightStyle",scale:"borderStyles"};var S=h(_),O={background:!0,backgroundImage:!0,backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0};O.bgImage=O.backgroundImage,O.bgSize=O.backgroundSize,O.bgPosition=O.backgroundPosition,O.bgRepeat=O.backgroundRepeat;var C=h(O),E={space:[0,4,8,16,32,64,128,256,512]},A=h({position:!0,zIndex:{property:"zIndex",scale:"zIndices"},top:{property:"top",scale:"space",defaultScale:E.space},right:{property:"right",scale:"space",defaultScale:E.space},bottom:{property:"bottom",scale:"space",defaultScale:E.space},left:{property:"left",scale:"space",defaultScale:E.space}}),M=A,k={space:[0,4,8,16,32,64,128,256,512]},P=function(e){return"number"===typeof e&&!isNaN(e)},R=function(e,t){if(!P(e))return l(t,e,e);var n=e<0,r=Math.abs(e),o=l(t,r,r);return P(o)?o*(n?-1:1):n?"-"+o:o},T={};T.margin={margin:{property:"margin",scale:"space",transform:R,defaultScale:k.space},marginTop:{property:"marginTop",scale:"space",transform:R,defaultScale:k.space},marginRight:{property:"marginRight",scale:"space",transform:R,defaultScale:k.space},marginBottom:{property:"marginBottom",scale:"space",transform:R,defaultScale:k.space},marginLeft:{property:"marginLeft",scale:"space",transform:R,defaultScale:k.space},marginX:{properties:["marginLeft","marginRight"],scale:"space",transform:R,defaultScale:k.space},marginY:{properties:["marginTop","marginBottom"],scale:"space",transform:R,defaultScale:k.space}},T.margin.m=T.margin.margin,T.margin.mt=T.margin.marginTop,T.margin.mr=T.margin.marginRight,T.margin.mb=T.margin.marginBottom,T.margin.ml=T.margin.marginLeft,T.margin.mx=T.margin.marginX,T.margin.my=T.margin.marginY,T.padding={padding:{property:"padding",scale:"space",defaultScale:k.space},paddingTop:{property:"paddingTop",scale:"space",defaultScale:k.space},paddingRight:{property:"paddingRight",scale:"space",defaultScale:k.space},paddingBottom:{property:"paddingBottom",scale:"space",defaultScale:k.space},paddingLeft:{property:"paddingLeft",scale:"space",defaultScale:k.space},paddingX:{properties:["paddingLeft","paddingRight"],scale:"space",defaultScale:k.space},paddingY:{properties:["paddingTop","paddingBottom"],scale:"space",defaultScale:k.space}},T.padding.p=T.padding.padding,T.padding.pt=T.padding.paddingTop,T.padding.pr=T.padding.paddingRight,T.padding.pb=T.padding.paddingBottom,T.padding.pl=T.padding.paddingLeft,T.padding.px=T.padding.paddingX,T.padding.py=T.padding.paddingY;(function(){for(var e={},t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.forEach((function(t){t&&t.config&&o()(e,t.config)})),c(e)})(h(T.margin),h(T.padding)),h({boxShadow:{property:"boxShadow",scale:"shadows"},textShadow:{property:"textShadow",scale:"shadows"}});var I=n(37947),B=function(e){var t,n,r=e.scale,o=e.prop,i=void 0===o?"variant":o,a=e.variants,s=void 0===a?{}:a,u=e.key;n=Object.keys(s).length?function(e,t,n){return(0,I.ZP)(l(t,e,null))(n.theme)}:function(e,t){return l(t,e,null)},n.scale=r||u,n.defaults=s;var f=((t={})[i]=n,t);return c(f)};B({key:"buttons"}),B({key:"textStyles",prop:"textStyle"}),B({key:"colorStyles",prop:"colors"}),g.width,g.height,g.minWidth,g.minHeight,g.maxWidth,g.maxHeight,g.size,g.verticalAlign,g.display,g.overflow,g.overflowX,g.overflowY,m.opacity,y.fontSize,y.fontFamily,y.fontWeight,y.lineHeight,y.textAlign,y.fontStyle,y.letterSpacing,b.alignItems,b.alignContent,b.justifyItems,b.justifyContent,b.flexWrap,b.flexDirection,b.flex,b.flexGrow,b.flexShrink,b.flexBasis,b.justifySelf,b.alignSelf,b.order,x.gridGap,x.gridColumnGap,x.gridRowGap,x.gridColumn,x.gridRow,x.gridAutoFlow,x.gridAutoColumns,x.gridAutoRows,x.gridTemplateColumns,x.gridTemplateRows,x.gridTemplateAreas,x.gridArea,S.borderWidth,S.borderStyle,S.borderColor,S.borderTop,S.borderRight,S.borderBottom,S.borderLeft,S.borderRadius,C.backgroundImage,C.backgroundSize,C.backgroundPosition,C.backgroundRepeat,M.zIndex,M.top,M.right,M.bottom,M.left},87854:function(e,t,n){e.exports=function(){"use strict";var e=function(e){var t=e.id,n=e.viewBox,r=e.content;this.id=t,this.viewBox=n,this.content=r};e.prototype.stringify=function(){return this.content},e.prototype.toString=function(){return this.stringify()},e.prototype.destroy=function(){var e=this;["id","viewBox","content"].forEach((function(t){return delete e[t]}))};var t=function(e){var t=!!document.importNode,n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement;return t?document.importNode(n,!0):n};function r(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self&&self;var o=r((function(e,t){!function(t,n){e.exports=n()}(0,(function(){function e(e){return e&&"object"===typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)}function t(e){return Array.isArray(e)?[]:{}}function n(n,r){return r&&!0===r.clone&&e(n)?i(t(n),n,r):n}function r(t,r,o){var a=t.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,o):e(r)?a[s]=i(t[s],r,o):-1===t.indexOf(r)&&a.push(n(r,o))})),a}function o(t,r,o){var a={};return e(t)&&Object.keys(t).forEach((function(e){a[e]=n(t[e],o)})),Object.keys(r).forEach((function(s){e(r[s])&&t[s]?a[s]=i(t[s],r[s],o):a[s]=n(r[s],o)})),a}function i(e,t,i){var a=Array.isArray(t),s=(i||{arrayMerge:r}).arrayMerge||r;return a?Array.isArray(e)?s(e,t,i):n(t,i):o(e,t,i)}return i.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,n){return i(e,n,t)}))},i}))})),i=r((function(e,t){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};t.default=n,e.exports=t.default})),a=function(e){return Object.keys(e).map((function(t){return t+'="'+e[t].toString().replace(/"/g,"&quot;")+'"'})).join(" ")},s=i.svg,u=i.xlink,l={};l[s.name]=s.uri,l[u.name]=u.uri;var c=function(e,t){void 0===e&&(e="");var n=o(l,t||{});return"<svg "+a(n)+">"+e+"</svg>"},f=function(e){function n(){e.apply(this,arguments)}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={isMounted:{}};return r.isMounted.get=function(){return!!this.node},n.createFromExistingNode=function(e){return new n({id:e.getAttribute("id"),viewBox:e.getAttribute("viewBox"),content:e.outerHTML})},n.prototype.destroy=function(){this.isMounted&&this.unmount(),e.prototype.destroy.call(this)},n.prototype.mount=function(e){if(this.isMounted)return this.node;var t="string"===typeof e?document.querySelector(e):e,n=this.render();return this.node=n,t.appendChild(n),n},n.prototype.render=function(){var e=this.stringify();return t(c(e)).childNodes[0]},n.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(n.prototype,r),n}(e);return f}()},11182:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"D",use:"D-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="D"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M5.81 10.299v-4.7c-.253-.003-.44-.06-.562-.17a.568.568 0 0 1-.182-.433c0-.18.061-.324.182-.434.125-.113.332-.17.621-.17l2.514.006c.39 0 .771.073 1.142.217.375.145.676.328.903.551.172.168.35.398.533.691.187.293.328.584.422.873.094.29.14.643.14 1.061v.574c0 .508-.085.96-.257 1.354-.172.39-.399.71-.68.96a3.45 3.45 0 0 1-.785.546c-.39.183-.897.275-1.518.275H5.87c-.289 0-.496-.055-.62-.164a.574.574 0 0 1-.183-.44c0-.175.061-.32.182-.433.125-.113.313-.168.563-.164Zm1.202 0h1.277c.477 0 .836-.069 1.078-.205.317-.18.555-.408.715-.686.16-.277.24-.637.24-1.078v-.568c0-.38-.072-.711-.216-.996-.227-.446-.483-.75-.768-.914-.281-.168-.635-.252-1.06-.252H7.011v4.699Z" /></symbol>'});a().add(s);t.default=s},18567:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"I",use:"I-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="I"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M8.598 5.6v4.699H9.81c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H6.184c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.55.55 0 0 1 .181-.427c.125-.114.333-.17.622-.17h1.212v-4.7H6.184c-.29 0-.497-.054-.622-.163a.575.575 0 0 1-.181-.44c0-.18.06-.324.181-.434.125-.113.333-.17.622-.17l3.627.006c.289 0 .494.055.615.165.125.109.187.253.187.433s-.062.326-.187.44c-.121.109-.326.164-.615.164H8.598Z" /></symbol>'});a().add(s);t.default=s},69790:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"L",use:"L-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="L"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M7.496 5.6v4.699h2.59V9.162c0-.289.055-.494.164-.615a.566.566 0 0 1 .44-.188c.175 0 .318.063.427.188.113.121.17.326.17.615V11.5h-5.69c-.288 0-.495-.055-.62-.164a.574.574 0 0 1-.182-.44.55.55 0 0 1 .182-.427c.125-.114.332-.17.62-.17h.698v-4.7h-.697c-.29 0-.496-.054-.621-.163a.575.575 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l2.602.006c.29 0 .494.055.615.165.125.109.188.253.188.433s-.063.326-.188.44c-.12.109-.326.164-.615.164h-.703Z" /></symbol>'});a().add(s);t.default=s},13249:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"N",use:"N-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="N"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M6.494 6.666v3.633h.434c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H5.352c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.56.56 0 0 1 .181-.427c.122-.114.31-.17.563-.17v-4.7h-.188c-.289 0-.496-.054-.62-.163a.574.574 0 0 1-.182-.44c0-.18.06-.324.181-.434.125-.113.332-.17.621-.17l1.39.006 3.07 4.817V5.6H9.13c-.29 0-.496-.055-.621-.164a.574.574 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l1.577.006c.29 0 .494.055.615.165.125.109.188.253.188.433 0 .176-.06.32-.182.434-.121.113-.306.17-.556.17v5.9h-1.19L6.494 6.666Z" /></symbol>'});a().add(s);t.default=s},88055:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"anomaly_badge",use:"anomaly_badge-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="anomaly_badge"><path fill-rule="evenodd" d="M13.228 3.296 8.522.579a2.292 2.292 0 0 0-2.294 0L1.522 3.296A2.294 2.294 0 0 0 .375 5.283v5.435c0 .819.437 1.577 1.147 1.986l4.706 2.717a2.292 2.292 0 0 0 2.294 0l4.706-2.717a2.293 2.293 0 0 0 1.147-1.986V5.283c0-.82-.437-1.577-1.147-1.987ZM7.979 4.761l-.604-1.528-.604 1.528-1.838 4.646H1.375v1.3h4.442l.162-.411 1.396-3.529 1.396 3.529.495 1.253.672-1.168.437-.758.437.758.187.326h2.376v-1.3h-1.624l-.813-1.412-.563-.978-.563.978-.328.57L7.979 4.76Z" clip-rule="evenodd" /></symbol>'});a().add(s);t.default=s},92662:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"area_chart",use:"area_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="area_chart"><path d="M19.1 22H4.9C3.3 22 2 20.7 2 19.1v-5.5l5-5 2.5 2.5 9-9L22 5.6v13.5c0 1.6-1.3 2.9-2.9 2.9ZM4 14.4V19c0 .6.4 1 .9 1H19c.5 0 .9-.4.9-.9V6.4l-1.5-1.5-9 9L7 11.4l-3 3Z" /></symbol>'});a().add(s);t.default=s},84156:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"bar_chart",use:"bar_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="bar_chart"><path d="M12 5V2H6v5H2v6.619A2.381 2.381 0 0 0 4.381 16h9.238A2.381 2.381 0 0 0 16 13.619V5h-4Zm-6 9.5H4.381a.882.882 0 0 1-.881-.881V8.5H6v6Zm4.5 0h-3v-11h3v11Zm4-.881a.882.882 0 0 1-.881.881H12v-8h2.5v7.119Z" /></symbol>'});a().add(s);t.default=s},13563:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"checkmark_s",use:"checkmark_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_s"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154Z" clip-rule="evenodd" /><mask id="checkmark_s_a" width="10" height="10" x="3" y="3" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154Z" clip-rule="evenodd" /></mask></symbol>'});a().add(s);t.default=s},3728:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_down",use:"chevron_down-usage",viewBox:"0 0 12 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" id="chevron_down"><path d="M3 5c0-.3.1-.5.3-.7.4-.4 1-.4 1.4 0L6 5.6l1.3-1.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4L6 8.4 3.3 5.7C3.1 5.5 3 5.3 3 5Z" /></symbol>'});a().add(s);t.default=s},54194:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_down_thin",use:"chevron_down_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_down_thin"><path d="M6.979 13.813 10.792 10l.541.542-4.083 4.083h-.542l-4.083-4.083.541-.542 3.813 3.813Z" /></symbol>'});a().add(s);t.default=s},51289:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_expand",use:"chevron_expand-usage",viewBox:"0 0 8 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 6" id="chevron_expand"><path d="M.632 1.577 4 3.264l3.368-1.687A.593.593 0 0 0 7.632.79a.59.59 0 0 0-.785-.264L4 1.957 1.146.535A.586.586 0 0 0 .36.8a.578.578 0 0 0 .272.778Zm6.222 1.29L4 4.292 1.146 2.868a.586.586 0 0 0-.786.264.58.58 0 0 0 .264.786L4 5.598 7.368 3.91a.593.593 0 0 0 .264-.786.572.572 0 0 0-.778-.256Z" /></symbol>'});a().add(s);t.default=s},22874:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_up_thin",use:"chevron_up_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_up_thin"><path d="m7 9.427 3.33 3.331a.58.58 0 1 1-.822.823L7 11.073l-2.503 2.502a.58.58 0 1 1-.822-.822L7 9.426Z" /></symbol>'});a().add(s);t.default=s},53685:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"collapse",use:"collapse-usage",viewBox:"0 0 16 2",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 2" id="collapse"><rect width="16" height="2" rx="1" /></symbol>'});a().add(s);t.default=s},94631:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"database",use:"database-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="database"><path d="M12 14c5.607 0 10-2.636 10-6s-4.393-6-10-6S2 4.636 2 8s4.393 6 10 6Zm0-10c4.714 0 8 2.108 8 4s-3.286 4-8 4-8-2.108-8-4 3.286-4 8-4Zm7.627 13.126C18.644 18.641 15.785 20 12 20c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 16c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98Zm0-4C18.644 14.641 15.785 16 12 16c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 12c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98Z" /></symbol>'});a().add(s);t.default=s},7775:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"dot",use:"dot-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="dot"><rect width="10" height="10" rx="5" /></symbol>'});a().add(s);t.default=s},69999:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"drag_horizontal",use:"drag_horizontal-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="drag_horizontal"><path d="M9 3v8.25H4.372l1.936-1.943L5.25 8.25 1.5 12l3.75 3.75 1.058-1.057-1.936-1.943H9V21h1.5V3H9ZM18.75 8.25l-1.058 1.057 1.936 1.943H15V3h-1.5v18H15v-8.25h4.628l-1.936 1.943 1.058 1.057L22.5 12l-3.75-3.75Z" /></symbol>'});a().add(s);t.default=s},25271:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"expand",use:"expand-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="expand"><path fill-rule="evenodd" d="M5.3 6.7 3 9V3h6L6.7 5.3l2.89 2.87-1.42 1.42L5.3 6.7Zm12-1.4L15 3h6v6l-2.3-2.3-2.87 2.89-1.42-1.42L17.3 5.3ZM9 21l-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6Zm9.7-3.7L21 15v6h-6l2.3-2.3-2.89-2.87 1.42-1.42 2.87 2.89Z" clip-rule="evenodd" /></symbol>'});a().add(s);t.default=s},21219:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"heatmap_chart",use:"heatmap_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="heatmap_chart"><path d="M6 16h2v-2H6v2Zm0-8h2V6H6v2ZM2 4h2V2H2v2Zm4 0h2V2H6v2ZM2 16h2v-2H2v2Zm0-4h2v-2H2v2Zm0-4h2V6H2v2Zm4 4h2v-2H6v2Zm4 4h2v-2h-2v2Zm4-8h2V6h-2v2Zm0 8h2v-2h-2v2Zm0-14v2h2V2h-2Zm0 10h2v-2h-2v2Zm-4 0h2v-2h-2v2Zm0-8h2V2h-2v2Zm0 4h2V6h-2v2Z" /></symbol>'});a().add(s);t.default=s},25312:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"information",use:"information-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information"><path d="M9 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm.75 1H8.5A1.5 1.5 0 0 0 7 9.5h1.25v1.758A1.284 1.284 0 0 0 7 12.538v.212h2.753c.688 0 1.247-.558 1.247-1.247v-.253H9.75V8ZM9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714ZM9 15A6 6 0 1 1 9 3a6 6 0 1 1 0 12Z" /></symbol>'});a().add(s);t.default=s},39161:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"line_chart2",use:"line_chart2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="line_chart2"><path d="M17.413 2.667 10.747 8 8.08 5.333l-5.413 4.32v2.56L7.92 8l2.667 2.667 6.666-5.334 4.08 4.08V6.587l-3.92-3.92Zm-2.68 15.986L9.44 13.36 2.667 18.2v2.467l6.56-4.694 5.373 5.374.013-.014 6.72-5.586v-2.614l-6.6 5.52Z" /><path d="m14.587 21.333.013.014.014-.014h-.027Z" /></symbol>'});a().add(s);t.default=s},79962:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"loading",use:"loading-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="loading"><path d="M14.303 18.727h-3.436L3.67 5.273h10.066c4.043.008 7.262 3.172 7.265 7.007-.007 3.536-2.972 6.447-6.697 6.447Z" /></symbol>'});a().add(s);t.default=s},28524:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"metrics",use:"metrics-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="metrics"><path d="M21.83 5.64C21.29 3.55 19.41 2 17.16 2H6.84C4.17 2 2 4.17 2 6.84v6.94c-.61.55-1 1.34-1 2.22 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.46-.11-.89-.3-1.29l1.01-1.01c.39.19.82.3 1.29.3.87 0 1.65-.38 2.2-.97l1.82.78c0 .06-.02.12-.02.19 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.67-.23-1.29-.61-1.79l.88-1.31c.24.06.48.1.73.1 1.65 0 3-1.35 3-3 0-.96-.46-1.81-1.17-2.36ZM4 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm5-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm7 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm1-7c0 .67.23 1.29.61 1.79l-.87 1.31c-.24-.06-.48-.1-.73-.1-.87 0-1.65.38-2.2.97l-1.82-.78c0-.06.02-.12.02-.19 0-1.65-1.35-3-3-3s-3 1.35-3 3c0 .46.11.89.3 1.29L5.29 13.3C4.9 13.11 4.47 13 4 13V6.84C4 5.27 5.28 4 6.84 4h10.31c.89 0 1.68.42 2.2 1.07C18.01 5.37 17 6.57 17 8Zm3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm0 8.16c0 1.57-1.28 2.84-2.84 2.84H6.84c-.46 0-.89-.12-1.28-.32-.48.2-1.01.32-1.56.32-.42 0-.83-.08-1.21-.21A4.84 4.84 0 0 0 6.84 22h10.31c2.67 0 4.84-2.17 4.84-4.84v-5.72c-.59.35-1.27.56-2 .56v5.16H20Z" /></symbol>'});a().add(s);t.default=s},64036:function(e,t,n){"use strict";var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"nav_dots",use:"nav_dots-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="nav_dots"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2Zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Z" /></symbol>'});a().add(s);t.Z=s},67679:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"nav_left",use:"nav_left-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_left"><path d="M4.17 8.67 2.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .745.745 0 0 0-1.01.34L.66 5l2.17 4.33c.19.37.64.52 1.01.34s.52-.63.33-1Zm1.66-8L3.66 5l2.17 4.33c.19.37.64.52 1.01.34.37-.19.52-.64.34-1.01L5.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .74.74 0 0 0-1.01.34Z" /></symbol>'});a().add(s);t.default=s},36179:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"nav_right",use:"nav_right-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_right"><path d="M3.83 1.33 5.66 5 3.83 8.67a.742.742 0 0 0 .33 1c.37.19.82.04 1.01-.34L7.34 5 5.17.67A.763.763 0 0 0 4.16.33c-.37.18-.52.63-.33 1Zm-1.66 8L4.34 5 2.17.67A.763.763 0 0 0 1.16.33C.79.52.64.97.82 1.34L2.66 5 .83 8.67a.742.742 0 0 0 .33 1c.38.19.83.04 1.01-.34Z" /></symbol>'});a().add(s);t.default=s},57138:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"pan_tool",use:"pan_tool-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pan_tool"><path d="m9.893 3.579.42.157.202-.399a1.497 1.497 0 0 1 1.329-.837c.574 0 1.073.337 1.327.85l.202.406.424-.162c.141-.054.303-.083.48-.083a1.48 1.48 0 0 1 1.471 1.35l.05.572.561-.13a1.576 1.576 0 0 1 1.4.38c.284.296.428.653.428 1.044v8.256c0 3.6-2.851 6.517-6.343 6.517-1.69 0-3.283-.67-4.474-1.91l-.005-.006C6.155 18.36 5.5 16.724 5.5 14.983v-4.706c0-.806.65-1.461 1.477-1.461.112 0 .232.012.347.038l.61.137V4.972c0-.81.655-1.481 1.476-1.481.164 0 .327.029.483.088Zm1.035.418v7.415c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-6.42c0-.522-.442-.933-.956-.933-.515 0-.957.411-.957.934v9.804c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-4.5c0-.22-.09-.459-.265-.638l-.352.343.352-.343a.966.966 0 0 0-.692-.275c-.504 0-.956.382-.956.913v4.706c0 1.584.613 3.082 1.712 4.21 1.1 1.127 2.561 1.76 4.11 1.76 3.129 0 5.667-2.538 5.817-5.676h.047v-8.57a.894.894 0 0 0-.265-.619.966.966 0 0 0-.691-.274c-.495 0-.957.372-.957.872v4.706c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-6.42c0-.522-.443-.933-.957-.933s-.956.411-.956.934v6.419c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-7.43c0-.523-.442-.934-.956-.934-.508 0-.967.41-.916.949Z" /></symbol>'});a().add(s);t.default=s},16071:function(e,t,n){"use strict";var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"rearrange",use:"rearrange-usage",viewBox:"0 0 8 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 14" id="rearrange"><path d="M1.5 3.5C2.3 3.5 3 2.8 3 2S2.3.5 1.5.5 0 1.2 0 2s.7 1.5 1.5 1.5Zm0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S3 12.8 3 12s-.7-1.5-1.5-1.5Zm0-5C.7 5.5 0 6.2 0 7s.7 1.5 1.5 1.5S3 7.8 3 7s-.7-1.5-1.5-1.5ZM6.5 3.5C7.3 3.5 8 2.8 8 2S7.3.5 6.5.5 5 1.2 5 2s.7 1.5 1.5 1.5Zm0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S8 12.8 8 12s-.7-1.5-1.5-1.5Zm0-5C5.7 5.5 5 6.2 5 7s.7 1.5 1.5 1.5S8 7.8 8 7s-.7-1.5-1.5-1.5Z" /></symbol>'});a().add(s);t.Z=s},20172:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"reload2",use:"reload2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="reload2"><path d="M16.795 5.889h2.15a.834.834 0 0 0 0-1.667H13.11v5.833a.834.834 0 0 0 1.666 0v-3.47c1.972 1.014 3.334 3.05 3.334 5.415A6.118 6.118 0 0 1 12 18.11 6.118 6.118 0 0 1 5.889 12c0-2.99 2.16-5.48 5-6.005V4.311C7.12 4.851 4.222 8.082 4.222 12a7.778 7.778 0 1 0 15.555 0 7.741 7.741 0 0 0-2.982-6.111Z" /></symbol>'});a().add(s);t.default=s},259:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"resize_handler",use:"resize_handler-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="resize_handler"><path d="M4 11c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm8-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1Zm-4 6c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Z" /></symbol>'});a().add(s);t.default=s},30871:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"sort_ascending",use:"sort_ascending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_ascending"><path d="M4.97 6.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l2.22-2.22V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l2.22 2.22c.29.29.77.29 1.06 0 .15-.15.22-.34.22-.53s-.07-.38-.22-.53L9 2.44 4.97 6.47Z" /></symbol>'});a().add(s);t.default=s},35211:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"sort_descending",use:"sort_descending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_descending"><path d="M13.03 11.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.22 2.22V3c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-2.22-2.22a.754.754 0 0 0-1.06 0c-.15.15-.22.34-.22.53s.07.38.22.53L9 15.56l4.03-4.03Z" /></symbol>'});a().add(s);t.default=s},72457:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"stacked_bar_chart",use:"stacked_bar_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="stacked_bar_chart"><path d="M6.75 3a1 1 0 0 1 1-1h2.5a1 1 0 0 1 1 1v7.75h-4.5V3Zm1.125.5a.5.5 0 0 1 .5-.5h1.25a.5.5 0 0 1 .5.5v6h-2.25v-6ZM2 6a1 1 0 0 1 1-1h3.5v4.75H2V6Zm1.125.688a.5.5 0 0 1 .5-.5h1.75v2.638h-2.25V6.687ZM2 10h4.5v6H4.3A2.3 2.3 0 0 1 2 13.7V10Zm1.125 1h2.25v4h-.75a1.5 1.5 0 0 1-1.5-1.5V11Zm8.125 0h-4.5v5h4.5v-5Zm-1.125 1h-2.25v3h2.25v-3ZM16 9h-4.5v7h2.2a2.3 2.3 0 0 0 2.3-2.3V9Zm-1.125 1h-2.25v5h.75a1.5 1.5 0 0 0 1.5-1.5V10ZM11.5 4H15a1 1 0 0 1 1 1v3.75h-4.5V4Zm1.125 1.125h2.25v2.5h-2.25v-2.5Z" clip-rule="evenodd" /></symbol>'});a().add(s);t.default=s},51349:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"stacked_chart",use:"stacked_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="stacked_chart"><path d="m18.116 6.783-4.735-4.06-4.8 3.53-2.936-.698-2.978 3.402v8.45a3.928 3.928 0 0 0 3.924 3.926h10.817a3.928 3.928 0 0 0 3.924-3.924V4.944l-3.216 1.839Zm1.217 10.626a1.926 1.926 0 0 1-1.924 1.924H6.591a1.926 1.926 0 0 1-1.924-1.924v-2.938l1.91 1.358 2.686-1.343 4.042 2.697 6.028-3.618v3.844Zm0-6.176-5.972 3.584-3.956-2.637-2.648 1.324-2.09-1.487V9.71l1.689-1.93 2.663.636 4.266-3.138 4.599 3.942 1.45-.83v2.844Z" /></symbol>'});a().add(s);t.default=s},45724:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"warning_triangle_hollow",use:"warning_triangle_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning_triangle_hollow"><path d="M12 15.8c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2Zm-.37-6.69c-.84.2-1.36 1.05-1.15 1.89l.73 3c.07.29.29.53.6.6.44.11.88-.16.99-.6l.73-3c.06-.23.06-.49 0-.74a1.58 1.58 0 0 0-1.9-1.15Zm10.96 9.19L13.86 3.22A2.137 2.137 0 0 0 12 2.15c-.77 0-1.47.4-1.86 1.07L1.41 18.3c-.45.77-.45 1.69 0 2.47.45.77 1.24 1.23 2.14 1.23h16.91a2.456 2.456 0 0 0 2.13-3.7Zm-1.73 1.47c-.05.09-.17.23-.4.23H3.54c-.23 0-.35-.15-.4-.23a.451.451 0 0 1 0-.47l8.73-15.08c.01-.02.04-.08.13-.08s.12.06.13.08l8.73 15.08c.12.2.05.38 0 .47Z" /></symbol>'});a().add(s);t.default=s},69666:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"zoom_in",use:"zoom_in-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_in"><path d="M13.5 9h-3V6H9v3H6v1.5h3v3h1.5v-3h3V9Z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06L16.086 15ZM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75Z" /></symbol>'});a().add(s);t.default=s},65828:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"zoom_out",use:"zoom_out-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_out"><path d="M13.5 9H6v1.5h7.5V9Z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06L16.086 15ZM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75Z" /></symbol>'});a().add(s);t.default=s},44636:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"zoom_reset",use:"zoom_reset-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_reset"><path d="M16.836 15.75a8.141 8.141 0 0 0 1.914-5.25A8.242 8.242 0 0 0 4.5 4.85V1.5H3v6h6V6H5.499a6.733 6.733 0 1 1-1.575 6h-1.53a8.259 8.259 0 0 0 8.106 6.75 8.141 8.141 0 0 0 5.25-1.914l5.69 5.664 1.06-1.06-5.664-5.69Z" /></symbol>'});a().add(s);t.default=s},95348:function(e,t,n){e.exports=function(){"use strict";function e(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self&&self;var t=e((function(e,t){!function(t,n){e.exports=n()}(0,(function(){function e(e){return e&&"object"===typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)}function t(e){return Array.isArray(e)?[]:{}}function n(n,r){return r&&!0===r.clone&&e(n)?i(t(n),n,r):n}function r(t,r,o){var a=t.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,o):e(r)?a[s]=i(t[s],r,o):-1===t.indexOf(r)&&a.push(n(r,o))})),a}function o(t,r,o){var a={};return e(t)&&Object.keys(t).forEach((function(e){a[e]=n(t[e],o)})),Object.keys(r).forEach((function(s){e(r[s])&&t[s]?a[s]=i(t[s],r[s],o):a[s]=n(r[s],o)})),a}function i(e,t,i){var a=Array.isArray(t),s=(i||{arrayMerge:r}).arrayMerge||r;return a?Array.isArray(e)?s(e,t,i):n(t,i):o(e,t,i)}return i.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,n){return i(e,n,t)}))},i}))}));function r(e){return e=e||Object.create(null),{on:function(t,n){(e[t]||(e[t]=[])).push(n)},off:function(t,n){e[t]&&e[t].splice(e[t].indexOf(n)>>>0,1)},emit:function(t,n){(e[t]||[]).map((function(e){e(n)})),(e["*"]||[]).map((function(e){e(t,n)}))}}}var o=e((function(e,t){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};t.default=n,e.exports=t.default})),i=function(e){return Object.keys(e).map((function(t){return t+'="'+e[t].toString().replace(/"/g,"&quot;")+'"'})).join(" ")},a=o.svg,s=o.xlink,u={};u[a.name]=a.uri,u[s.name]=s.uri;var l,c=function(e,n){void 0===e&&(e="");var r=t(u,n||{});return"<svg "+i(r)+">"+e+"</svg>"},f=o.svg,d=o.xlink,p={attrs:(l={style:["position: absolute","width: 0","height: 0"].join("; "),"aria-hidden":"true"},l[f.name]=f.uri,l[d.name]=d.uri,l)},h=function(e){this.config=t(p,e||{}),this.symbols=[]};h.prototype.add=function(e){var t=this.symbols,n=this.find(e.id);return n?(t[t.indexOf(n)]=e,!1):(t.push(e),!0)},h.prototype.remove=function(e){var t=this.symbols,n=this.find(e);return!!n&&(t.splice(t.indexOf(n),1),n.destroy(),!0)},h.prototype.find=function(e){return this.symbols.filter((function(t){return t.id===e}))[0]||null},h.prototype.has=function(e){return null!==this.find(e)},h.prototype.stringify=function(){var e=this.config.attrs,t=this.symbols.map((function(e){return e.stringify()})).join("");return c(t,e)},h.prototype.toString=function(){return this.stringify()},h.prototype.destroy=function(){this.symbols.forEach((function(e){return e.destroy()}))};var g=function(e){var t=e.id,n=e.viewBox,r=e.content;this.id=t,this.viewBox=n,this.content=r};g.prototype.stringify=function(){return this.content},g.prototype.toString=function(){return this.stringify()},g.prototype.destroy=function(){var e=this;["id","viewBox","content"].forEach((function(t){return delete e[t]}))};var v=function(e){var t=!!document.importNode,n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement;return t?document.importNode(n,!0):n},m=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={isMounted:{}};return n.isMounted.get=function(){return!!this.node},t.createFromExistingNode=function(e){return new t({id:e.getAttribute("id"),viewBox:e.getAttribute("viewBox"),content:e.outerHTML})},t.prototype.destroy=function(){this.isMounted&&this.unmount(),e.prototype.destroy.call(this)},t.prototype.mount=function(e){if(this.isMounted)return this.node;var t="string"===typeof e?document.querySelector(e):e,n=this.render();return this.node=n,t.appendChild(n),n},t.prototype.render=function(){var e=this.stringify();return v(c(e)).childNodes[0]},t.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(t.prototype,n),t}(g),y={autoConfigure:!0,mountTo:"body",syncUrlsWithBaseTag:!1,listenLocationChangeEvent:!0,locationChangeEvent:"locationChange",locationChangeAngularEmitter:!1,usagesToUpdate:"use[*|href]",moveGradientsOutsideSymbol:!1},b=function(e){return Array.prototype.slice.call(e,0)},w={isChrome:function(){return/chrome/i.test(navigator.userAgent)},isFirefox:function(){return/firefox/i.test(navigator.userAgent)},isIE:function(){return/msie/i.test(navigator.userAgent)||/trident/i.test(navigator.userAgent)},isEdge:function(){return/edge/i.test(navigator.userAgent)}},x=function(e,t){var n=document.createEvent("CustomEvent");n.initCustomEvent(e,!1,!1,t),window.dispatchEvent(n)},_=function(e){var t=[];return b(e.querySelectorAll("style")).forEach((function(e){e.textContent+="",t.push(e)})),t},S=function(e){return(e||window.location.href).split("#")[0]},O=function(e){angular.module("ng").run(["$rootScope",function(t){t.$on("$locationChangeSuccess",(function(t,n,r){x(e,{oldUrl:r,newUrl:n})}))}])},C="linearGradient, radialGradient, pattern, mask, clipPath",E=function(e,t){return void 0===t&&(t=C),b(e.querySelectorAll("symbol")).forEach((function(e){b(e.querySelectorAll(t)).forEach((function(t){e.parentNode.insertBefore(t,e)}))})),e};function A(e,t){return b(e).reduce((function(e,n){if(!n.attributes)return e;var r=b(n.attributes),o=t?r.filter(t):r;return e.concat(o)}),[])}var M=o.xlink.uri,k="xlink:href",P=/[{}|\\\^\[\]`"<>]/g;function R(e){return e.replace(P,(function(e){return"%"+e[0].charCodeAt(0).toString(16).toUpperCase()}))}function T(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function I(e,t,n){return b(e).forEach((function(e){var r=e.getAttribute(k);if(r&&0===r.indexOf(t)){var o=r.replace(t,n);e.setAttributeNS(M,k,o)}})),e}var B,D=["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke","style"],j=D.map((function(e){return"["+e+"]"})).join(","),L=function(e,t,n,r){var o=R(n),i=R(r);A(e.querySelectorAll(j),(function(e){var t=e.localName,n=e.value;return-1!==D.indexOf(t)&&-1!==n.indexOf("url("+o)})).forEach((function(e){return e.value=e.value.replace(new RegExp(T(o),"g"),i)})),I(t,o,i)},Z={MOUNT:"mount",SYMBOL_MOUNT:"symbol_mount"},N=function(e){function n(n){var o=this;void 0===n&&(n={}),e.call(this,t(y,n));var i=r();this._emitter=i,this.node=null;var a=this.config;if(a.autoConfigure&&this._autoConfigure(n),a.syncUrlsWithBaseTag){var s=document.getElementsByTagName("base")[0].getAttribute("href");i.on(Z.MOUNT,(function(){return o.updateUrls("#",s)}))}var u=this._handleLocationChange.bind(this);this._handleLocationChange=u,a.listenLocationChangeEvent&&window.addEventListener(a.locationChangeEvent,u),a.locationChangeAngularEmitter&&O(a.locationChangeEvent),i.on(Z.MOUNT,(function(e){a.moveGradientsOutsideSymbol&&E(e)})),i.on(Z.SYMBOL_MOUNT,(function(e){a.moveGradientsOutsideSymbol&&E(e.parentNode),(w.isIE()||w.isEdge())&&_(e)}))}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var o={isMounted:{}};return o.isMounted.get=function(){return!!this.node},n.prototype._autoConfigure=function(e){var t=this.config;"undefined"===typeof e.syncUrlsWithBaseTag&&(t.syncUrlsWithBaseTag="undefined"!==typeof document.getElementsByTagName("base")[0]),"undefined"===typeof e.locationChangeAngularEmitter&&(t.locationChangeAngularEmitter="undefined"!==typeof window.angular),"undefined"===typeof e.moveGradientsOutsideSymbol&&(t.moveGradientsOutsideSymbol=w.isFirefox())},n.prototype._handleLocationChange=function(e){var t=e.detail,n=t.oldUrl,r=t.newUrl;this.updateUrls(n,r)},n.prototype.add=function(t){var n=this,r=e.prototype.add.call(this,t);return this.isMounted&&r&&(t.mount(n.node),this._emitter.emit(Z.SYMBOL_MOUNT,t.node)),r},n.prototype.attach=function(e){var t=this,n=this;if(n.isMounted)return n.node;var r="string"===typeof e?document.querySelector(e):e;return n.node=r,this.symbols.forEach((function(e){e.mount(n.node),t._emitter.emit(Z.SYMBOL_MOUNT,e.node)})),b(r.querySelectorAll("symbol")).forEach((function(e){var t=m.createFromExistingNode(e);t.node=e,n.add(t)})),this._emitter.emit(Z.MOUNT,r),r},n.prototype.destroy=function(){var e=this,t=e.config,n=e.symbols,r=e._emitter;n.forEach((function(e){return e.destroy()})),r.off("*"),window.removeEventListener(t.locationChangeEvent,this._handleLocationChange),this.isMounted&&this.unmount()},n.prototype.mount=function(e,t){void 0===e&&(e=this.config.mountTo),void 0===t&&(t=!1);var n=this;if(n.isMounted)return n.node;var r="string"===typeof e?document.querySelector(e):e,o=n.render();return this.node=o,t&&r.childNodes[0]?r.insertBefore(o,r.childNodes[0]):r.appendChild(o),this._emitter.emit(Z.MOUNT,o),o},n.prototype.render=function(){return v(this.stringify())},n.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},n.prototype.updateUrls=function(e,t){if(!this.isMounted)return!1;var n=document.querySelectorAll(this.config.usagesToUpdate);return L(this.node,n,S(e)+"#",S(t)+"#"),!0},Object.defineProperties(n.prototype,o),n}(h),F=e((function(e){var t;t=function(){var e,t=[],n=document,r=n.documentElement.doScroll,o="DOMContentLoaded",i=(r?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return i||n.addEventListener(o,e=function(){for(n.removeEventListener(o,e),i=1;e=t.shift();)e()}),function(e){i?setTimeout(e,0):t.push(e)}},e.exports=t()})),H="__SVG_SPRITE_NODE__",V="__SVG_SPRITE__";window[V]?B=window[V]:(B=new N({attrs:{id:H,"aria-hidden":"true"}}),window[V]=B);var z=function(){var e=document.getElementById(H);e?B.attach(e):B.mount(document.body,!0)};return document.body?z():F(z),B}()},70655:function(e,t,n){"use strict";n.r(t),n.d(t,{__assign:function(){return i},__asyncDelegator:function(){return x},__asyncGenerator:function(){return w},__asyncValues:function(){return _},__await:function(){return b},__awaiter:function(){return c},__classPrivateFieldGet:function(){return A},__classPrivateFieldIn:function(){return k},__classPrivateFieldSet:function(){return M},__createBinding:function(){return d},__decorate:function(){return s},__exportStar:function(){return p},__extends:function(){return o},__generator:function(){return f},__importDefault:function(){return E},__importStar:function(){return C},__makeTemplateObject:function(){return S},__metadata:function(){return l},__param:function(){return u},__read:function(){return g},__rest:function(){return a},__spread:function(){return v},__spreadArray:function(){return y},__spreadArrays:function(){return m},__values:function(){return h}});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)};function a(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function s(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function u(e,t){return function(n,r){t(n,r,e)}}function l(e,t){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(t){i(t)}}function s(e){try{u(r.throw(e))}catch(t){i(t)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))}function f(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(s){i=[6,s],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}var d=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function p(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||d(t,e,n)}function h(e){var t="function"===typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"===typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var n="function"===typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function v(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}function m(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var i=arguments[t],a=0,s=i.length;a<s;a++,o++)r[o]=i[a];return r}function y(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function b(e){return this instanceof b?(this.v=e,this):new b(e)}function w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},a("next"),a("throw"),a("return"),r[Symbol.asyncIterator]=function(){return this},r;function a(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||s(e,t)}))})}function s(e,t){try{(n=o[e](t)).value instanceof b?Promise.resolve(n.value.v).then(u,l):c(i[0][2],n)}catch(r){c(i[0][3],r)}var n}function u(e){s("next",e)}function l(e){s("throw",e)}function c(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function x(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:b(e[r](t)),done:"return"===r}:o?o(t):t}:o}}function _(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=h(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var O=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function C(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&d(t,e,n);return O(t,e),t}function E(e){return e&&e.__esModule?e:{default:e}}function A(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function M(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function k(e,t){if(null===t||"object"!==typeof t&&"function"!==typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"===typeof e?t===e:e.has(t)}},67429:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NIL",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"v1",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"v3",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"v4",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"v5",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"version",{enumerable:!0,get:function(){return u.default}});var r=d(n(63990)),o=d(n(8237)),i=d(n(75355)),a=d(n(83764)),s=d(n(86314)),u=d(n(88421)),l=d(n(46435)),c=d(n(73990)),f=d(n(38627));function d(e){return e&&e.__esModule?e:{default:e}}},94163:function(e,t){"use strict";function n(e){return 14+(e+64>>>9<<4)+1}function r(e,t){const n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,t,n,o,i,a){return r((s=r(r(t,e),r(o,a)))<<(u=i)|s>>>32-u,n);var s,u}function i(e,t,n,r,i,a,s){return o(t&n|~t&r,e,t,i,a,s)}function a(e,t,n,r,i,a,s){return o(t&r|n&~r,e,t,i,a,s)}function s(e,t,n,r,i,a,s){return o(t^n^r,e,t,i,a,s)}function u(e,t,n,r,i,a,s){return o(n^(t|~r),e,t,i,a,s)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var l=function(e){if("string"===typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){const t=[],n=32*e.length,r="0123456789abcdef";for(let o=0;o<n;o+=8){const n=e[o>>5]>>>o%32&255,i=parseInt(r.charAt(n>>>4&15)+r.charAt(15&n),16);t.push(i)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[n(t)-1]=t;let o=1732584193,l=-271733879,c=-1732584194,f=271733878;for(let n=0;n<e.length;n+=16){const t=o,d=l,p=c,h=f;o=i(o,l,c,f,e[n],7,-680876936),f=i(f,o,l,c,e[n+1],12,-389564586),c=i(c,f,o,l,e[n+2],17,606105819),l=i(l,c,f,o,e[n+3],22,-1044525330),o=i(o,l,c,f,e[n+4],7,-176418897),f=i(f,o,l,c,e[n+5],12,1200080426),c=i(c,f,o,l,e[n+6],17,-1473231341),l=i(l,c,f,o,e[n+7],22,-45705983),o=i(o,l,c,f,e[n+8],7,1770035416),f=i(f,o,l,c,e[n+9],12,-1958414417),c=i(c,f,o,l,e[n+10],17,-42063),l=i(l,c,f,o,e[n+11],22,-1990404162),o=i(o,l,c,f,e[n+12],7,1804603682),f=i(f,o,l,c,e[n+13],12,-40341101),c=i(c,f,o,l,e[n+14],17,-1502002290),l=i(l,c,f,o,e[n+15],22,1236535329),o=a(o,l,c,f,e[n+1],5,-165796510),f=a(f,o,l,c,e[n+6],9,-1069501632),c=a(c,f,o,l,e[n+11],14,643717713),l=a(l,c,f,o,e[n],20,-373897302),o=a(o,l,c,f,e[n+5],5,-701558691),f=a(f,o,l,c,e[n+10],9,38016083),c=a(c,f,o,l,e[n+15],14,-660478335),l=a(l,c,f,o,e[n+4],20,-405537848),o=a(o,l,c,f,e[n+9],5,568446438),f=a(f,o,l,c,e[n+14],9,-1019803690),c=a(c,f,o,l,e[n+3],14,-187363961),l=a(l,c,f,o,e[n+8],20,1163531501),o=a(o,l,c,f,e[n+13],5,-1444681467),f=a(f,o,l,c,e[n+2],9,-51403784),c=a(c,f,o,l,e[n+7],14,1735328473),l=a(l,c,f,o,e[n+12],20,-1926607734),o=s(o,l,c,f,e[n+5],4,-378558),f=s(f,o,l,c,e[n+8],11,-2022574463),c=s(c,f,o,l,e[n+11],16,1839030562),l=s(l,c,f,o,e[n+14],23,-35309556),o=s(o,l,c,f,e[n+1],4,-1530992060),f=s(f,o,l,c,e[n+4],11,1272893353),c=s(c,f,o,l,e[n+7],16,-155497632),l=s(l,c,f,o,e[n+10],23,-1094730640),o=s(o,l,c,f,e[n+13],4,681279174),f=s(f,o,l,c,e[n],11,-358537222),c=s(c,f,o,l,e[n+3],16,-722521979),l=s(l,c,f,o,e[n+6],23,76029189),o=s(o,l,c,f,e[n+9],4,-640364487),f=s(f,o,l,c,e[n+12],11,-421815835),c=s(c,f,o,l,e[n+15],16,530742520),l=s(l,c,f,o,e[n+2],23,-995338651),o=u(o,l,c,f,e[n],6,-198630844),f=u(f,o,l,c,e[n+7],10,1126891415),c=u(c,f,o,l,e[n+14],15,-1416354905),l=u(l,c,f,o,e[n+5],21,-57434055),o=u(o,l,c,f,e[n+12],6,1700485571),f=u(f,o,l,c,e[n+3],10,-1894986606),c=u(c,f,o,l,e[n+10],15,-1051523),l=u(l,c,f,o,e[n+1],21,-2054922799),o=u(o,l,c,f,e[n+8],6,1873313359),f=u(f,o,l,c,e[n+15],10,-30611744),c=u(c,f,o,l,e[n+6],15,-1560198380),l=u(l,c,f,o,e[n+13],21,1309151649),o=u(o,l,c,f,e[n+4],6,-145523070),f=u(f,o,l,c,e[n+11],10,-1120210379),c=u(c,f,o,l,e[n+2],15,718787259),l=u(l,c,f,o,e[n+9],21,-343485551),o=r(o,t),l=r(l,d),c=r(c,p),f=r(f,h)}return[o,l,c,f]}(function(e){if(0===e.length)return[];const t=8*e.length,r=new Uint32Array(n(t));for(let n=0;n<t;n+=8)r[n>>5]|=(255&e[n/8])<<n%32;return r}(e),8*e.length))};t.default=l},54790:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={randomUUID:"undefined"!==typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};t.default=n},86314:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default="00000000-0000-0000-0000-000000000000"},38627:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(46435))&&r.__esModule?r:{default:r};var i=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");let t;const n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n};t.default=i},70058:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},33319:function(e,t){"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!n&&(n="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!n))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(r)};const r=new Uint8Array(16)},93757:function(e,t){"use strict";function n(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:case 3:return t^n^r;case 2:return t&n^t&r^n&r}}function r(e,t){return e<<t|e>>>32-t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){const t=[1518500249,1859775393,2400959708,3395469782],o=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"===typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const i=e.length/4+2,a=Math.ceil(i/16),s=new Array(a);for(let n=0;n<a;++n){const t=new Uint32Array(16);for(let r=0;r<16;++r)t[r]=e[64*n+4*r]<<24|e[64*n+4*r+1]<<16|e[64*n+4*r+2]<<8|e[64*n+4*r+3];s[n]=t}s[a-1][14]=8*(e.length-1)/Math.pow(2,32),s[a-1][14]=Math.floor(s[a-1][14]),s[a-1][15]=8*(e.length-1)&4294967295;for(let u=0;u<a;++u){const e=new Uint32Array(80);for(let t=0;t<16;++t)e[t]=s[u][t];for(let t=16;t<80;++t)e[t]=r(e[t-3]^e[t-8]^e[t-14]^e[t-16],1);let i=o[0],a=o[1],l=o[2],c=o[3],f=o[4];for(let o=0;o<80;++o){const s=Math.floor(o/20),u=r(i,5)+n(s,a,l,c)+f+t[s]+e[o]>>>0;f=c,c=l,l=r(a,30)>>>0,a=i,i=u}o[0]=o[0]+i>>>0,o[1]=o[1]+a>>>0,o[2]=o[2]+l>>>0,o[3]=o[3]+c>>>0,o[4]=o[4]+f>>>0}return[o[0]>>24&255,o[0]>>16&255,o[0]>>8&255,255&o[0],o[1]>>24&255,o[1]>>16&255,o[1]>>8&255,255&o[1],o[2]>>24&255,o[2]>>16&255,o[2]>>8&255,255&o[2],o[3]>>24&255,o[3]>>16&255,o[3]>>8&255,255&o[3],o[4]>>24&255,o[4]>>16&255,o[4]>>8&255,255&o[4]]};t.default=o},73990:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.unsafeStringify=a;var r,o=(r=n(46435))&&r.__esModule?r:{default:r};const i=[];for(let u=0;u<256;++u)i.push((u+256).toString(16).slice(1));function a(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}var s=function(e,t=0){const n=a(e,t);if(!(0,o.default)(n))throw TypeError("Stringified UUID is invalid");return n};t.default=s},63990:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(33319))&&r.__esModule?r:{default:r},i=n(73990);let a,s,u=0,l=0;var c=function(e,t,n){let r=t&&n||0;const c=t||new Array(16);let f=(e=e||{}).node||a,d=void 0!==e.clockseq?e.clockseq:s;if(null==f||null==d){const t=e.random||(e.rng||o.default)();null==f&&(f=a=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==d&&(d=s=16383&(t[6]<<8|t[7]))}let p=void 0!==e.msecs?e.msecs:Date.now(),h=void 0!==e.nsecs?e.nsecs:l+1;const g=p-u+(h-l)/1e4;if(g<0&&void 0===e.clockseq&&(d=d+1&16383),(g<0||p>u)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");u=p,l=h,s=d,p+=122192928e5;const v=(1e4*(268435455&p)+h)%4294967296;c[r++]=v>>>24&255,c[r++]=v>>>16&255,c[r++]=v>>>8&255,c[r++]=255&v;const m=p/4294967296*1e4&268435455;c[r++]=m>>>8&255,c[r++]=255&m,c[r++]=m>>>24&15|16,c[r++]=m>>>16&255,c[r++]=d>>>8|128,c[r++]=255&d;for(let o=0;o<6;++o)c[r+o]=f[o];return t||(0,i.unsafeStringify)(c)};t.default=c},8237:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(17925)),o=i(n(94163));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v3",48,o.default);t.default=a},17925:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.URL=t.DNS=void 0,t.default=function(e,t,n){function r(e,r,a,s){var u;if("string"===typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"===typeof r&&(r=(0,i.default)(r)),16!==(null===(u=r)||void 0===u?void 0:u.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+e.length);if(l.set(r),l.set(e,r.length),l=n(l),l[6]=15&l[6]|t,l[8]=63&l[8]|128,a){s=s||0;for(let e=0;e<16;++e)a[s+e]=l[e];return a}return(0,o.unsafeStringify)(l)}try{r.name=e}catch(u){}return r.DNS=a,r.URL=s,r};var r,o=n(73990),i=(r=n(38627))&&r.__esModule?r:{default:r};const a="6ba7b810-9dad-11d1-80b4-00c04fd430c8";t.DNS=a;const s="6ba7b811-9dad-11d1-80b4-00c04fd430c8";t.URL=s},75355:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(54790)),o=a(n(33319)),i=n(73990);function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e,t,n){if(r.default.randomUUID&&!t&&!e)return r.default.randomUUID();const a=(e=e||{}).random||(e.rng||o.default)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=a[e];return t}return(0,i.unsafeStringify)(a)};t.default=s},83764:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(17925)),o=i(n(93757));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v5",80,o.default);t.default=a},46435:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(70058))&&r.__esModule?r:{default:r};var i=function(e){return"string"===typeof e&&o.default.test(e)};t.default=i},88421:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(46435))&&r.__esModule?r:{default:r};var i=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)};t.default=i},2375:function(e,t){"use strict";t.Z="00000000-0000-0000-0000-000000000000"},28721:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r={randomUUID:"undefined"!==typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let o;const i=new Uint8Array(16);function a(){if(!o&&(o="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!o))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return o(i)}const s=[];for(let c=0;c<256;++c)s.push((c+256).toString(16).slice(1));function u(e,t=0){return(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase()}var l=function(e,t,n){if(r.randomUUID&&!t&&!e)return r.randomUUID();const o=(e=e||{}).random||(e.rng||a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return u(o)}},17061:function(e,t,n){var r=n(18698).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,i=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",l=s.asyncIterator||"@@asyncIterator",c=s.toStringTag||"@@toStringTag";function f(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(R){f=function(e,t,n){return e[t]=n}}function d(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),s=new M(r||[]);return a(i,"_invoke",{value:O(e,n,s)}),i}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(R){return{type:"throw",arg:R}}}t.wrap=d;var h={};function g(){}function v(){}function m(){}var y={};f(y,u,(function(){return this}));var b=Object.getPrototypeOf,w=b&&b(b(k([])));w&&w!==n&&i.call(w,u)&&(y=w);var x=m.prototype=g.prototype=Object.create(y);function _(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(o,a,s,u){var l=p(e[o],e,a);if("throw"!==l.type){var c=l.arg,f=c.value;return f&&"object"==r(f)&&i.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,s,u)}),(function(e){n("throw",e,s,u)})):t.resolve(f).then((function(e){c.value=e,s(c)}),(function(e){return n("throw",e,s,u)}))}u(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}})}function O(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return P()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=C(a,n);if(s){if(s===h)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=p(e,t,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===h)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function C(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var o=p(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function M(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function k(e){if(e){var t=e[u];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(i.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return r.next=r}}return{next:P}}function P(){return{value:void 0,done:!0}}return v.prototype=m,a(x,"constructor",{value:m,configurable:!0}),a(m,"constructor",{value:v,configurable:!0}),v.displayName=f(m,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,f(e,c,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},_(S.prototype),f(S.prototype,l,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new S(d(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(x),f(x,c,"Generator"),f(x,u,(function(){return this})),f(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=k,M.prototype={constructor:M,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(A),!e)for(var t in this)"t"===t.charAt(0)&&i.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var s=i.call(o,"catchLoc"),u=i.call(o,"finallyLoc");if(s&&u){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;A(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:k(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},18698:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},64687:function(e,t,n){var r=n(17061)();e.exports=r;try{regeneratorRuntime=r}catch(o){"object"===typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},42189:function(e,t){"use strict";function n(e,t,n){var r,o=n||{},i=o.noTrailing,a=void 0!==i&&i,s=o.noLeading,u=void 0!==s&&s,l=o.debounceMode,c=void 0===l?void 0:l,f=!1,d=0;function p(){r&&clearTimeout(r)}function h(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var s=this,l=Date.now()-d;function h(){d=Date.now(),t.apply(s,o)}function g(){r=void 0}f||(u||!c||r||h(),p(),void 0===c&&l>e?u?(d=Date.now(),a||(r=setTimeout(c?g:h,e))):h():!0!==a&&(r=setTimeout(c?g:h,void 0===c?e-l:e)))}return h.cancel=function(e){var t=(e||{}).upcomingOnly,n=void 0!==t&&t;p(),f=!n},h}Object.defineProperty(t,"__esModule",{value:!0}),t.debounce=function(e,t,r){var o=(r||{}).atBegin;return n(e,t,{debounceMode:!1!==(void 0!==o&&o)})},t.throttle=n},30907:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},83878:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97326:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},15861:function(e,t,n){"use strict";function r(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(l){return void n(l)}s.done?t(u):Promise.resolve(u).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function s(e){r(a,o,i,s,u,"next",e)}function u(e){r(a,o,i,s,u,"throw",e)}s(void 0)}))}}n.d(t,{Z:function(){return o}})},15671:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},43144:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(49142);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(0,r.Z)(o.key),o)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}},29388:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(61120),o=n(78814),i=n(82963);function a(e){var t=(0,o.Z)();return function(){var n,o=(0,r.Z)(e);if(t){var a=(0,r.Z)(this).constructor;n=Reflect.construct(o,arguments,a)}else n=o.apply(this,arguments);return(0,i.Z)(this,n)}}},4942:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(49142);function o(e,t,n){return(t=(0,r.Z)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},87462:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},61120:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},60136:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(89611);function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,r.Z)(e,t)}},78814:function(e,t,n){"use strict";function r(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},59199:function(e,t,n){"use strict";function r(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},25267:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},36459:function(e,t,n){"use strict";function r(e){if(null==e)throw new TypeError("Cannot destructure "+e)}n.d(t,{Z:function(){return r}})},45987:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(63366);function o(e,t){if(null==e)return{};var n,o,i=(0,r.Z)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},63366:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:function(){return r}})},82963:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(71002),o=n(97326);function i(e,t){if(t&&("object"===(0,r.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,o.Z)(e)}},89611:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},29439:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(83878);var o=n(40181),i=n(25267);function a(e,t){return(0,r.Z)(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],u=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);u=!0);}catch(c){l=!0,o=c}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||(0,o.Z)(e,t)||(0,i.Z)()}},84506:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(83878),o=n(59199),i=n(40181),a=n(25267);function s(e){return(0,r.Z)(e)||(0,o.Z)(e)||(0,i.Z)(e)||(0,a.Z)()}},93433:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(30907);var o=n(59199),i=n(40181);function a(e){return function(e){if(Array.isArray(e))return(0,r.Z)(e)}(e)||(0,o.Z)(e)||(0,i.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},49142:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(71002);function o(e){var t=function(e,t){if("object"!==(0,r.Z)(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==(0,r.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,r.Z)(t)?t:String(t)}},71002:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:function(){return r}})},40181:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(30907);function o(e,t){if(e){if("string"===typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},71059:function(e,t,n){"use strict";n.d(t,{MG:function(){return m}});var r=n(67294);function o(e,t,n){let r,o=[];return()=>{let i;n.key&&null!=n.debug&&n.debug()&&(i=Date.now());const a=e();if(!(a.length!==o.length||a.some(((e,t)=>o[t]!==e))))return r;let s;if(o=a,n.key&&null!=n.debug&&n.debug()&&(s=Date.now()),r=t(...a),null==n||null==n.onChange||n.onChange(r),n.key&&null!=n.debug&&n.debug()){const e=Math.round(100*(Date.now()-i))/100,t=Math.round(100*(Date.now()-s))/100,r=t/16,o=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${o(t,5)} /${o(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,null==n?void 0:n.key)}return r}}const i=e=>e,a=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let o=t;o<=n;o++)r.push(o);return r},s=(e,t)=>{const n=new ResizeObserver((e=>{var n,r;t({width:null==(n=e[0])?void 0:n.contentRect.width,height:null==(r=e[0])?void 0:r.contentRect.height})}));if(e.scrollElement)return t(e.scrollElement.getBoundingClientRect()),n.observe(e.scrollElement),()=>{n.unobserve(e.scrollElement)}},u={element:["scrollLeft","scrollTop"],window:["scrollX","scrollY"]},l=e=>(t,n)=>{if(!t.scrollElement)return;const r=u[e][0],o=u[e][1];let i=t.scrollElement[r],a=t.scrollElement[o];const s=()=>{const e=t.scrollElement[t.options.horizontal?r:o];n(Math.max(0,e-t.options.scrollMargin))};s();const l=e=>{const n=e.currentTarget,u=n[r],l=n[o];(t.options.horizontal?i-u:a-l)&&s(),i=u,a=l};return t.scrollElement.addEventListener("scroll",l,{capture:!1,passive:!0}),()=>{t.scrollElement.removeEventListener("scroll",l)}},c=l("element"),f=(l("window"),(e,t)=>Math.round(e.getBoundingClientRect()[t.options.horizontal?"width":"height"])),d=(e,t,n)=>{var r;let{adjustments:o,behavior:i,sync:a}=t;const s=(a?e:e+n.options.scrollMargin)+(o??0);null==(r=n.scrollElement)||null==r.scrollTo||r.scrollTo({[n.options.horizontal?"left":"top"]:s,behavior:i})};class p{constructor(e){var t=this;this.unsubs=[],this.scrollElement=null,this.isScrolling=!1,this.isScrollingTimeoutId=null,this.measurementsCache=[],this.itemMeasurementsCache={},this.pendingMeasuredCacheIndexes=[],this.scrollAdjustments=0,this.measureElementCache={},this.pendingScrollToIndexCallback=null,this.getResizeObserver=(()=>{let e=null;return()=>e||("undefined"!==typeof ResizeObserver?e=new ResizeObserver((e=>{e.forEach((e=>{this._measureElement(e.target,!1)}))})):null)})(),this.range={startIndex:0,endIndex:0},this.setOptions=e=>{Object.entries(e).forEach((t=>{let[n,r]=t;"undefined"===typeof r&&delete e[n]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:i,rangeExtractor:a,onChange:()=>{},measureElement:f,initialRect:{width:0,height:0},scrollMargin:0,scrollingDelay:150,indexAttribute:"data-index",...e}},this.notify=()=>{var e,t;null==(e=(t=this.options).onChange)||e.call(t,this)},this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((e=>e())),this.unsubs=[],this.scrollElement=null},this._didMount=()=>{const e=this.getResizeObserver();return Object.values(this.measureElementCache).forEach((t=>null==e?void 0:e.observe(t))),()=>{null==e||e.disconnect(),this.cleanup()}},this._willUpdate=()=>{var e;null==(e=this.pendingScrollToIndexCallback)||e.call(this);const t=this.options.getScrollElement();this.scrollElement!==t?(this.cleanup(),this.scrollElement=t,this._scrollToOffset(this.scrollOffset,{adjustments:void 0,behavior:void 0,sync:!0}),this.unsubs.push(this.options.observeElementRect(this,(e=>{this.scrollRect=e,this.calculateRange()}))),this.unsubs.push(this.options.observeElementOffset(this,(e=>{null!==this.isScrollingTimeoutId&&(clearTimeout(this.isScrollingTimeoutId),this.isScrollingTimeoutId=null),this.scrollOffset!==e?(this.scrollOffset=e,this.isScrolling=!0,this.scrollAdjustments=0,this.isScrollingTimeoutId=setTimeout((()=>{this.isScrollingTimeoutId=null,this.isScrolling=!1,this.notify()}),this.options.scrollingDelay)):(this.isScrolling=!1,this.scrollAdjustments=0),this.calculateRange()})))):this.isScrolling||this.calculateRange()},this.getSize=()=>this.scrollRect[this.options.horizontal?"width":"height"],this.getMeasurements=o((()=>[this.options.count,this.options.paddingStart,this.options.getItemKey,this.itemMeasurementsCache]),((e,t,n,r)=>{const o=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const i=this.measurementsCache.slice(0,o);for(let a=o;a<e;a++){const e=n(a),o=r[e],s=i[a-1]?i[a-1].end:t,u="number"===typeof o?o:this.options.estimateSize(a),l=s+u;i[a]={index:a,start:s,size:u,end:l,key:e}}return this.measurementsCache=i,i}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=o((()=>[this.getMeasurements(),this.getSize(),this.scrollOffset]),((e,t,n)=>{const r=function(e){let{measurements:t,outerSize:n,scrollOffset:r}=e;const o=t.length-1,i=e=>t[e].start,a=h(0,o,i,r);let s=a;for(;s<o&&t[s].end<r+n;)s++;return{startIndex:a,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:n});return r.startIndex===this.range.startIndex&&r.endIndex===this.range.endIndex||(this.range=r,this.notify()),this.range}),{key:!1,debug:()=>this.options.debug}),this.getIndexes=o((()=>[this.options.rangeExtractor,this.range,this.options.overscan,this.options.count]),((e,t,n,r)=>e({...t,overscan:n,count:r})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;const o=this.measureElementCache[r.key],i=this.getResizeObserver();if(!e.isConnected)return void(o&&(null==i||i.unobserve(o),delete this.measureElementCache[r.key]));o&&o===e||(o&&(null==i||i.unobserve(o)),this.measureElementCache[r.key]=e,null==i||i.observe(e));const a=this.options.measureElement(e,this),s=a-(this.itemMeasurementsCache[r.key]??r.size);0!==s&&(r.start<this.scrollOffset&&this.isScrolling&&this._scrollToOffset(this.scrollOffset,{adjustments:this.scrollAdjustments+=s,behavior:void 0,sync:!1}),this.pendingMeasuredCacheIndexes.push(n),this.itemMeasurementsCache={...this.itemMeasurementsCache,[r.key]:a},this.notify())},this.measureElement=e=>{e&&this._measureElement(e,!0)},this.getVirtualItems=o((()=>[this.getIndexes(),this.getMeasurements()]),((e,t)=>{const n=[];for(let r=0,o=e.length;r<o;r++){const o=t[e[r]];n.push(o)}return n}),{key:!1,debug:()=>this.options.debug}),this.scrollToOffset=function(e,n){let{align:r="start",behavior:o}=void 0===n?{}:n;const i=t.scrollOffset,a=t.getSize();"auto"===r&&(r=e<=i?"start":e>=i+a?"end":"start");const s={adjustments:void 0,behavior:o,sync:!1};"start"===r?t._scrollToOffset(e,s):"end"===r?t._scrollToOffset(e-a,s):"center"===r&&t._scrollToOffset(e-a/2,s)},this.scrollToIndex=function(e,n){let{align:r="auto",...o}=void 0===n?{}:n;t.pendingScrollToIndexCallback=null;const i=t.getMeasurements(),a=t.scrollOffset,s=t.getSize(),{count:u}=t.options,l=i[Math.max(0,Math.min(e,u-1))];if(!l)return;if("auto"===r)if(l.end>=a+s-t.options.scrollPaddingEnd)r="end";else{if(!(l.start<=a+t.options.scrollPaddingStart))return;r="start"}const c="end"===r?l.end+t.options.scrollPaddingEnd:l.start-t.options.scrollPaddingStart;t.scrollToOffset(c,{align:r,...o});if(Object.keys(t.measureElementCache).length>0){const n=()=>"number"===typeof t.itemMeasurementsCache[t.options.getItemKey(e)];n()||(t.pendingScrollToIndexCallback=()=>{n()&&(t.pendingScrollToIndexCallback=null,t.scrollToIndex(e,{align:r,...o}))})}},this.getTotalSize=()=>{var e;return((null==(e=this.getMeasurements()[this.options.count-1])?void 0:e.end)||this.options.paddingStart)+this.options.paddingEnd},this._scrollToOffset=(e,t)=>{let{adjustments:n,behavior:r,sync:o}=t;this.options.scrollToFn(e,{behavior:r,sync:o,adjustments:n},this)},this.measure=()=>{this.itemMeasurementsCache={},this.notify()},this.setOptions(e),this.scrollRect=this.options.initialRect,this.scrollOffset=this.options.initialOffset,this.calculateRange()}}const h=(e,t,n,r)=>{for(;e<=t;){const o=(e+t)/2|0,i=n(o);if(i<r)e=o+1;else{if(!(i>r))return o;t=o-1}}return e>0?e-1:0};const g="undefined"!==typeof window?r.useLayoutEffect:r.useEffect;function v(e){const t=r.useReducer((()=>({})),{})[1],n={...e,onChange:n=>{t(),null==e.onChange||e.onChange(n)}},[o]=r.useState((()=>new p(n)));return o.setOptions(n),r.useEffect((()=>o._didMount()),[]),g((()=>o._willUpdate())),o}function m(e){return v({observeElementRect:s,observeElementOffset:c,scrollToFn:d,...e})}},52861:function(e,t,n){"use strict";function r(e,t){return function(){return e.apply(t,arguments)}}n.d(t,{Z:function(){return Ve}});const{toString:o}=Object.prototype,{getPrototypeOf:i}=Object,a=(s=Object.create(null),e=>{const t=o.call(e);return s[t]||(s[t]=t.slice(8,-1).toLowerCase())});var s;const u=e=>(e=e.toLowerCase(),t=>a(t)===e),l=e=>t=>typeof t===e,{isArray:c}=Array,f=l("undefined");const d=u("ArrayBuffer");const p=l("string"),h=l("function"),g=l("number"),v=e=>null!==e&&"object"===typeof e,m=e=>{if("object"!==a(e))return!1;const t=i(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},y=u("Date"),b=u("File"),w=u("Blob"),x=u("FileList"),_=u("URLSearchParams");function S(e,t,{allOwnKeys:n=!1}={}){if(null===e||"undefined"===typeof e)return;let r,o;if("object"!==typeof e&&(e=[e]),c(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let a;for(r=0;r<i;r++)a=o[r],t.call(null,e[a],a,e)}}function O(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,o=n.length;for(;o-- >0;)if(r=n[o],t===r.toLowerCase())return r;return null}const C="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global,E=e=>!f(e)&&e!==C;const A=(M="undefined"!==typeof Uint8Array&&i(Uint8Array),e=>M&&e instanceof M);var M;const k=u("HTMLFormElement"),P=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),R=u("RegExp"),T=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};S(n,((n,o)=>{!1!==t(n,o,e)&&(r[o]=n)})),Object.defineProperties(e,r)},I="abcdefghijklmnopqrstuvwxyz",B="0123456789",D={DIGIT:B,ALPHA:I,ALPHA_DIGIT:I+I.toUpperCase()+B};const j=u("AsyncFunction");var L={isArray:c,isArrayBuffer:d,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&h(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||h(e.append)&&("formdata"===(t=a(e))||"object"===t&&h(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer),t},isString:p,isNumber:g,isBoolean:e=>!0===e||!1===e,isObject:v,isPlainObject:m,isUndefined:f,isDate:y,isFile:b,isBlob:w,isRegExp:R,isFunction:h,isStream:e=>v(e)&&h(e.pipe),isURLSearchParams:_,isTypedArray:A,isFileList:x,forEach:S,merge:function e(){const{caseless:t}=E(this)&&this||{},n={},r=(r,o)=>{const i=t&&O(n,o)||o;m(n[i])&&m(r)?n[i]=e(n[i],r):m(r)?n[i]=e({},r):c(r)?n[i]=r.slice():n[i]=r};for(let o=0,i=arguments.length;o<i;o++)arguments[o]&&S(arguments[o],r);return n},extend:(e,t,n,{allOwnKeys:o}={})=>(S(t,((t,o)=>{n&&h(t)?e[o]=r(t,n):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,a,s;const u={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)s=o[a],r&&!r(s,e,t)||u[s]||(t[s]=e[s],u[s]=!0);e=!1!==n&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:u,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(c(e))return e;let t=e.length;if(!g(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:k,hasOwnProperty:P,hasOwnProp:P,reduceDescriptors:T,freezeMethods:e=>{T(e,((t,n)=>{if(h(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];h(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return c(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:O,global:C,isContextDefined:E,ALPHABET:D,generateString:(e=16,t=D.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&h(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=c(e)?[]:{};return S(e,((e,t)=>{const i=n(e,r+1);!f(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:j,isThenable:e=>e&&(v(e)||h(e))&&h(e.then)&&h(e.catch)};function Z(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}L.inherits(Z,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:L.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const N=Z.prototype,F={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{F[e]={value:e}})),Object.defineProperties(Z,F),Object.defineProperty(N,"isAxiosError",{value:!0}),Z.from=(e,t,n,r,o,i)=>{const a=Object.create(N);return L.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),Z.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};var H=Z,V=null;function z(e){return L.isPlainObject(e)||L.isArray(e)}function U(e){return L.endsWith(e,"[]")?e.slice(0,-2):e}function G(e,t,n){return e?e.concat(t).map((function(e,t){return e=U(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const W=L.toFlatObject(L,{},null,(function(e){return/^is[A-Z]/.test(e)}));var $=function(e,t,n){if(!L.isObject(e))throw new TypeError("target must be an object");t=t||new(V||FormData);const r=(n=L.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!L.isUndefined(t[e])}))).metaTokens,o=n.visitor||l,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!==typeof Blob&&Blob)&&L.isSpecCompliantForm(t);if(!L.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(L.isDate(e))return e.toISOString();if(!s&&L.isBlob(e))throw new H("Blob is not supported. Use a Buffer instead.");return L.isArrayBuffer(e)||L.isTypedArray(e)?s&&"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}function l(e,n,o){let s=e;if(e&&!o&&"object"===typeof e)if(L.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(L.isArray(e)&&function(e){return L.isArray(e)&&!e.some(z)}(e)||(L.isFileList(e)||L.endsWith(n,"[]"))&&(s=L.toArray(e)))return n=U(n),s.forEach((function(e,r){!L.isUndefined(e)&&null!==e&&t.append(!0===a?G([n],r,i):null===a?n:n+"[]",u(e))})),!1;return!!z(e)||(t.append(G(o,n,i),u(e)),!1)}const c=[],f=Object.assign(W,{defaultVisitor:l,convertValue:u,isVisitable:z});if(!L.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!L.isUndefined(n)){if(-1!==c.indexOf(n))throw Error("Circular reference detected in "+r.join("."));c.push(n),L.forEach(n,(function(n,i){!0===(!(L.isUndefined(n)||null===n)&&o.call(t,n,L.isString(i)?i.trim():i,r,f))&&e(n,r?r.concat(i):[i])})),c.pop()}}(e),t};function q(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Y(e,t){this._pairs=[],e&&$(e,this,t)}const X=Y.prototype;X.append=function(e,t){this._pairs.push([e,t])},X.toString=function(e){const t=e?function(t){return e.call(this,t,q)}:q;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var K=Y;function J(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Q(e,t,n){if(!t)return e;const r=n&&n.encode||J,o=n&&n.serialize;let i;if(i=o?o(t,n):L.isURLSearchParams(t)?t.toString():new K(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}var ee=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){L.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},te={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var ne={isBrowser:!0,classes:{URLSearchParams:"undefined"!==typeof URLSearchParams?URLSearchParams:K,FormData:"undefined"!==typeof FormData?FormData:null,Blob:"undefined"!==typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let e;return("undefined"===typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&("undefined"!==typeof window&&"undefined"!==typeof document)})(),isStandardBrowserWebWorkerEnv:"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};var re=function(e){function t(e,n,r,o){let i=e[o++];const a=Number.isFinite(+i),s=o>=e.length;if(i=!i&&L.isArray(r)?r.length:i,s)return L.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&L.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],o)&&L.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r<o;r++)i=n[r],t[i]=e[i];return t}(r[i])),!a}if(L.isFormData(e)&&L.isFunction(e.entries)){const n={};return L.forEachEntry(e,((e,r)=>{t(function(e){return L.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null};const oe={"Content-Type":void 0};const ie={transitional:te,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=L.isObject(e);o&&L.isHTMLForm(e)&&(e=new FormData(e));if(L.isFormData(e))return r&&r?JSON.stringify(re(e)):e;if(L.isArrayBuffer(e)||L.isBuffer(e)||L.isStream(e)||L.isFile(e)||L.isBlob(e))return e;if(L.isArrayBufferView(e))return e.buffer;if(L.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return $(e,new ne.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return ne.isNode&&L.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=L.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return $(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(L.isString(e))try{return(t||JSON.parse)(e),L.trim(e)}catch(r){if("SyntaxError"!==r.name)throw r}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ie.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&L.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(o){if(n){if("SyntaxError"===o.name)throw H.from(o,H.ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ne.classes.FormData,Blob:ne.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};L.forEach(["delete","get","head"],(function(e){ie.headers[e]={}})),L.forEach(["post","put","patch"],(function(e){ie.headers[e]=L.merge(oe)}));var ae=ie;const se=L.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const ue=Symbol("internals");function le(e){return e&&String(e).trim().toLowerCase()}function ce(e){return!1===e||null==e?e:L.isArray(e)?e.map(ce):String(e)}function fe(e,t,n,r,o){return L.isFunction(r)?r.call(this,t,n):(o&&(t=n),L.isString(t)?L.isString(r)?-1!==t.indexOf(r):L.isRegExp(r)?r.test(t):void 0:void 0)}class de{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=le(t);if(!o)throw new Error("header name must be a non-empty string");const i=L.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=ce(e))}const i=(e,t)=>L.forEach(e,((e,n)=>o(e,n,t)));return L.isPlainObject(e)||e instanceof this.constructor?i(e,t):L.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&se[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&o(t,e,n),this}get(e,t){if(e=le(e)){const n=L.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(L.isFunction(t))return t.call(this,e,n);if(L.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=le(e)){const n=L.findKey(this,e);return!(!n||void 0===this[n]||t&&!fe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=le(e)){const o=L.findKey(n,e);!o||t&&!fe(0,n[o],o,t)||(delete n[o],r=!0)}}return L.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!fe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return L.forEach(this,((r,o)=>{const i=L.findKey(n,o);if(i)return t[i]=ce(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=ce(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return L.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&L.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[ue]=this[ue]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=le(e);t[r]||(!function(e,t){const n=L.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return L.isArray(e)?e.forEach(r):r(e),this}}de.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),L.freezeMethods(de.prototype),L.freezeMethods(de);var pe=de;function he(e,t){const n=this||ae,r=t||n,o=pe.from(r.headers);let i=r.data;return L.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function ge(e){return!(!e||!e.__CANCEL__)}function ve(e,t,n){H.call(this,null==e?"canceled":e,H.ERR_CANCELED,t,n),this.name="CanceledError"}L.inherits(ve,H,{__CANCEL__:!0});var me=ve;var ye=ne.isStandardBrowserEnv?{write:function(e,t,n,r,o,i){const a=[];a.push(e+"="+encodeURIComponent(t)),L.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),L.isString(r)&&a.push("path="+r),L.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function be(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var we=ne.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=L.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};var xe=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),l=r[a];o||(o=u),n[i]=s,r[i]=u;let c=a,f=0;for(;c!==i;)f+=n[c++],c%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),u-o<t)return;const d=l&&u-l;return d?Math.round(1e3*f/d):void 0}};function _e(e,t){let n=0;const r=xe(50,250);return o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-n,u=r(s);n=i;const l={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:o};l[t?"download":"upload"]=!0,e(l)}}const Se="undefined"!==typeof XMLHttpRequest;const Oe={http:V,xhr:Se&&function(e){return new Promise((function(t,n){let r=e.data;const o=pe.from(e.headers).normalize(),i=e.responseType;let a;function s(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}L.isFormData(r)&&(ne.isStandardBrowserEnv||ne.isStandardBrowserWebWorkerEnv?o.setContentType(!1):o.setContentType("multipart/form-data;",!1));let u=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+n))}const l=be(e.baseURL,e.url);function c(){if(!u)return;const r=pe.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new H("Request failed with status code "+n.status,[H.ERR_BAD_REQUEST,H.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),s()}),(function(e){n(e),s()}),{data:i&&"text"!==i&&"json"!==i?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:r,config:e,request:u}),u=null}if(u.open(e.method.toUpperCase(),Q(l,e.params,e.paramsSerializer),!0),u.timeout=e.timeout,"onloadend"in u?u.onloadend=c:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(c)},u.onabort=function(){u&&(n(new H("Request aborted",H.ECONNABORTED,e,u)),u=null)},u.onerror=function(){n(new H("Network Error",H.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||te;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new H(t,r.clarifyTimeoutError?H.ETIMEDOUT:H.ECONNABORTED,e,u)),u=null},ne.isStandardBrowserEnv){const t=(e.withCredentials||we(l))&&e.xsrfCookieName&&ye.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===r&&o.setContentType(null),"setRequestHeader"in u&&L.forEach(o.toJSON(),(function(e,t){u.setRequestHeader(t,e)})),L.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),i&&"json"!==i&&(u.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&u.addEventListener("progress",_e(e.onDownloadProgress,!0)),"function"===typeof e.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",_e(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{u&&(n(!t||t.type?new me(null,e,u):t),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const f=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(l);f&&-1===ne.protocols.indexOf(f)?n(new H("Unsupported protocol "+f+":",H.ERR_BAD_REQUEST,e)):u.send(r||null)}))}};L.forEach(Oe,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(n){}Object.defineProperty(e,"adapterName",{value:t})}}));var Ce=e=>{e=L.isArray(e)?e:[e];const{length:t}=e;let n,r;for(let o=0;o<t&&(n=e[o],!(r=L.isString(n)?Oe[n.toLowerCase()]:n));o++);if(!r){if(!1===r)throw new H(`Adapter ${n} is not supported by the environment`,"ERR_NOT_SUPPORT");throw new Error(L.hasOwnProp(Oe,n)?`Adapter '${n}' is not available in the build`:`Unknown adapter '${n}'`)}if(!L.isFunction(r))throw new TypeError("adapter is not a function");return r};function Ee(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new me(null,e)}function Ae(e){Ee(e),e.headers=pe.from(e.headers),e.data=he.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Ce(e.adapter||ae.adapter)(e).then((function(t){return Ee(e),t.data=he.call(e,e.transformResponse,t),t.headers=pe.from(t.headers),t}),(function(t){return ge(t)||(Ee(e),t&&t.response&&(t.response.data=he.call(e,e.transformResponse,t.response),t.response.headers=pe.from(t.response.headers))),Promise.reject(t)}))}const Me=e=>e instanceof pe?e.toJSON():e;function ke(e,t){t=t||{};const n={};function r(e,t,n){return L.isPlainObject(e)&&L.isPlainObject(t)?L.merge.call({caseless:n},e,t):L.isPlainObject(t)?L.merge({},t):L.isArray(t)?t.slice():t}function o(e,t,n){return L.isUndefined(t)?L.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function i(e,t){if(!L.isUndefined(t))return r(void 0,t)}function a(e,t){return L.isUndefined(t)?L.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(Me(e),Me(t),!0)};return L.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=u[r]||o,a=i(e[r],t[r],r);L.isUndefined(a)&&i!==s||(n[r]=a)})),n}const Pe="1.4.0",Re={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Re[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Te={};Re.transitional=function(e,t,n){function r(e,t){return"[Axios v1.4.0] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new H(r(o," has been removed"+(t?" in "+t:"")),H.ERR_DEPRECATED);return t&&!Te[o]&&(Te[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}};var Ie={assertOptions:function(e,t,n){if("object"!==typeof e)throw new H("options must be an object",H.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new H("option "+i+" must be "+n,H.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new H("Unknown option "+i,H.ERR_BAD_OPTION)}},validators:Re};const Be=Ie.validators;class De{constructor(e){this.defaults=e,this.interceptors={request:new ee,response:new ee}}request(e,t){"string"===typeof e?(t=t||{}).url=e:t=e||{},t=ke(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;let i;void 0!==n&&Ie.assertOptions(n,{silentJSONParsing:Be.transitional(Be.boolean),forcedJSONParsing:Be.transitional(Be.boolean),clarifyTimeoutError:Be.transitional(Be.boolean)},!1),null!=r&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:Ie.assertOptions(r,{encode:Be.function,serialize:Be.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase(),i=o&&L.merge(o.common,o[t.method]),i&&L.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=pe.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const u=[];let l;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let c,f=0;if(!s){const e=[Ae.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,u),c=e.length,l=Promise.resolve(t);f<c;)l=l.then(e[f++],e[f++]);return l}c=a.length;let d=t;for(f=0;f<c;){const e=a[f++],t=a[f++];try{d=e(d)}catch(p){t.call(this,p);break}}try{l=Ae.call(this,d)}catch(p){return Promise.reject(p)}for(f=0,c=u.length;f<c;)l=l.then(u[f++],u[f++]);return l}getUri(e){return Q(be((e=ke(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}L.forEach(["delete","get","head","options"],(function(e){De.prototype[e]=function(t,n){return this.request(ke(n||{},{method:e,url:t,data:(n||{}).data}))}})),L.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(ke(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}De.prototype[e]=t(),De.prototype[e+"Form"]=t(!0)}));var je=De;class Le{constructor(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new me(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Le((function(t){e=t})),cancel:e}}}var Ze=Le;const Ne={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ne).forEach((([e,t])=>{Ne[t]=e}));var Fe=Ne;const He=function e(t){const n=new je(t),o=r(je.prototype.request,n);return L.extend(o,je.prototype,n,{allOwnKeys:!0}),L.extend(o,n,null,{allOwnKeys:!0}),o.create=function(n){return e(ke(t,n))},o}(ae);He.Axios=je,He.CanceledError=me,He.CancelToken=Ze,He.isCancel=ge,He.VERSION=Pe,He.toFormData=$,He.AxiosError=H,He.Cancel=He.CanceledError,He.all=function(e){return Promise.all(e)},He.spread=function(e){return function(t){return e.apply(null,t)}},He.isAxiosError=function(e){return L.isObject(e)&&!0===e.isAxiosError},He.mergeConfig=ke,He.AxiosHeaders=pe,He.formToJSON=e=>re(L.isHTMLForm(e)?new FormData(e):e),He.HttpStatusCode=Fe,He.default=He;var Ve=He},4447:function(e,t,n){"use strict";n.d(t,{B8:function(){return O},Il:function(){return o},J5:function(){return a},SU:function(){return S},Ss:function(){return C},Ym:function(){return I},ZP:function(){return w},xV:function(){return i}});var r=n(49531);function o(){}var i=.7,a=1/i,s="\\s*([+-]?\\d+)\\s*",u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",l="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",c=/^#([0-9a-f]{3,8})$/,f=new RegExp(`^rgb\\(${s},${s},${s}\\)$`),d=new RegExp(`^rgb\\(${l},${l},${l}\\)$`),p=new RegExp(`^rgba\\(${s},${s},${s},${u}\\)$`),h=new RegExp(`^rgba\\(${l},${l},${l},${u}\\)$`),g=new RegExp(`^hsl\\(${u},${l},${l}\\)$`),v=new RegExp(`^hsla\\(${u},${l},${l},${u}\\)$`),m={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function y(){return this.rgb().formatHex()}function b(){return this.rgb().formatRgb()}function w(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=c.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?x(t):3===n?new C(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?_(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?_(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=f.exec(e))?new C(t[1],t[2],t[3],1):(t=d.exec(e))?new C(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=p.exec(e))?_(t[1],t[2],t[3],t[4]):(t=h.exec(e))?_(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=g.exec(e))?R(t[1],t[2]/100,t[3]/100,1):(t=v.exec(e))?R(t[1],t[2]/100,t[3]/100,t[4]):m.hasOwnProperty(e)?x(m[e]):"transparent"===e?new C(NaN,NaN,NaN,0):null}function x(e){return new C(e>>16&255,e>>8&255,255&e,1)}function _(e,t,n,r){return r<=0&&(e=t=n=NaN),new C(e,t,n,r)}function S(e){return e instanceof o||(e=w(e)),e?new C((e=e.rgb()).r,e.g,e.b,e.opacity):new C}function O(e,t,n,r){return 1===arguments.length?S(e):new C(e,t,n,null==r?1:r)}function C(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function E(){return`#${P(this.r)}${P(this.g)}${P(this.b)}`}function A(){const e=M(this.opacity);return`${1===e?"rgb(":"rgba("}${k(this.r)}, ${k(this.g)}, ${k(this.b)}${1===e?")":`, ${e})`}`}function M(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function k(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function P(e){return((e=k(e))<16?"0":"")+e.toString(16)}function R(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new B(e,t,n,r)}function T(e){if(e instanceof B)return new B(e.h,e.s,e.l,e.opacity);if(e instanceof o||(e=w(e)),!e)return new B;if(e instanceof B)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),s=NaN,u=a-i,l=(a+i)/2;return u?(s=t===a?(n-r)/u+6*(n<r):n===a?(r-t)/u+2:(t-n)/u+4,u/=l<.5?a+i:2-a-i,s*=60):u=l>0&&l<1?0:s,new B(s,u,l,e.opacity)}function I(e,t,n,r){return 1===arguments.length?T(e):new B(e,t,n,null==r?1:r)}function B(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function D(e){return(e=(e||0)%360)<0?e+360:e}function j(e){return Math.max(0,Math.min(1,e||0))}function L(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}(0,r.Z)(o,w,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:y,formatHex:y,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return T(this).formatHsl()},formatRgb:b,toString:b}),(0,r.Z)(C,O,(0,r.l)(o,{brighter(e){return e=null==e?a:Math.pow(a,e),new C(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new C(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new C(k(this.r),k(this.g),k(this.b),M(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:E,formatHex:E,formatHex8:function(){return`#${P(this.r)}${P(this.g)}${P(this.b)}${P(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:A,toString:A})),(0,r.Z)(B,I,(0,r.l)(o,{brighter(e){return e=null==e?a:Math.pow(a,e),new B(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new B(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new C(L(e>=240?e-240:e+120,o,r),L(e,o,r),L(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new B(D(this.h),j(this.s),j(this.l),M(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=M(this.opacity);return`${1===e?"hsl(":"hsla("}${D(this.h)}, ${100*j(this.s)}%, ${100*j(this.l)}%${1===e?")":`, ${e})`}`}}))},49531:function(e,t,n){"use strict";function r(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function o(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}n.d(t,{Z:function(){return r},l:function(){return o}})},65386:function(e,t,n){"use strict";n.d(t,{WU:function(){return o},ZP:function(){return s},jH:function(){return i}});var r,o,i,a=n(80028);function s(e){return r=(0,a.Z)(e),o=r.format,i=r.formatPrefix,r}s({thousands:",",grouping:[3],currency:["$",""]})},65368:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(78613);function o(e){return(e=(0,r.V)(Math.abs(e)))?e[1]:NaN}},78613:function(e,t,n){"use strict";function r(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function o(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}n.d(t,{V:function(){return o},Z:function(){return r}})},42035:function(e,t,n){"use strict";n.d(t,{Z:function(){return o},v:function(){return i}});var r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(e){if(!(t=r.exec(e)))throw new Error("invalid format: "+e);var t;return new i({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function i(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}o.prototype=i.prototype,i.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type}},80028:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(65368);var o=n(42035);var i,a=n(78613);function s(e,t){var n=(0,a.V)(e,t);if(!n)return e+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}var u={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:a.Z,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>s(100*e,t),r:s,s:function(e,t){var n=(0,a.V)(e,t);if(!n)return e+"";var r=n[0],o=n[1],s=o-(i=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,u=r.length;return s===u?r:s>u?r+new Array(s-u+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+(0,a.V)(e,Math.max(0,t+s-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function l(e){return e}var c=Array.prototype.map,f=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function d(e){var t,n,a=void 0===e.grouping||void 0===e.thousands?l:(t=c.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var o=e.length,i=[],a=0,s=t[0],u=0;o>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),i.push(e.substring(o-=s,o+s)),!((u+=s+1)>r));)s=t[a=(a+1)%t.length];return i.reverse().join(n)}),s=void 0===e.currency?"":e.currency[0]+"",d=void 0===e.currency?"":e.currency[1]+"",p=void 0===e.decimal?".":e.decimal+"",h=void 0===e.numerals?l:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(c.call(e.numerals,String)),g=void 0===e.percent?"%":e.percent+"",v=void 0===e.minus?"\u2212":e.minus+"",m=void 0===e.nan?"NaN":e.nan+"";function y(e){var t=(e=(0,o.Z)(e)).fill,n=e.align,r=e.sign,l=e.symbol,c=e.zero,y=e.width,b=e.comma,w=e.precision,x=e.trim,_=e.type;"n"===_?(b=!0,_="g"):u[_]||(void 0===w&&(w=12),x=!0,_="g"),(c||"0"===t&&"="===n)&&(c=!0,t="0",n="=");var S="$"===l?s:"#"===l&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",O="$"===l?d:/[%p]/.test(_)?g:"",C=u[_],E=/[defgprs%]/.test(_);function A(e){var o,s,u,l=S,d=O;if("c"===_)d=C(e)+d,e="";else{var g=(e=+e)<0||1/e<0;if(e=isNaN(e)?m:C(Math.abs(e),w),x&&(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r<n;++r)switch(e[r]){case".":o=t=r;break;case"0":0===o&&(o=r),t=r;break;default:if(!+e[r])break e;o>0&&(o=0)}return o>0?e.slice(0,o)+e.slice(t+1):e}(e)),g&&0===+e&&"+"!==r&&(g=!1),l=(g?"("===r?r:v:"-"===r||"("===r?"":r)+l,d=("s"===_?f[8+i/3]:"")+d+(g&&"("===r?")":""),E)for(o=-1,s=e.length;++o<s;)if(48>(u=e.charCodeAt(o))||u>57){d=(46===u?p+e.slice(o+1):e.slice(o))+d,e=e.slice(0,o);break}}b&&!c&&(e=a(e,1/0));var A=l.length+e.length+d.length,M=A<y?new Array(y-A+1).join(t):"";switch(b&&c&&(e=a(M+e,M.length?y-d.length:1/0),M=""),n){case"<":e=l+e+d+M;break;case"=":e=l+M+e+d;break;case"^":e=M.slice(0,A=M.length>>1)+l+e+d+M.slice(A);break;default:e=M+l+e+d}return h(e)}return w=void 0===w?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w)),A.toString=function(){return e+""},A}return{format:y,formatPrefix:function(e,t){var n=y(((e=(0,o.Z)(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(t)/3))),a=Math.pow(10,-i),s=f[8+i/3];return function(e){return n(a*e)+s}}}}},96909:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(65368);function o(e){return Math.max(0,-(0,r.Z)(Math.abs(e)))}},87017:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(65368);function o(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(t)/3)))-(0,r.Z)(Math.abs(e)))}},63482:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(65368);function o(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,(0,r.Z)(t)-(0,r.Z)(e))+1}},51606:function(e,t,n){"use strict";n.d(t,{M:function(){return a},Z:function(){return i}});var r=n(45326),o=n(45401);function i(e,t){return((0,o.v)(t)?o.Z:a)(e,t)}function a(e,t){var n,o=t?t.length:0,i=e?Math.min(o,e.length):0,a=new Array(i),s=new Array(o);for(n=0;n<i;++n)a[n]=(0,r.Z)(e[n],t[n]);for(;n<o;++n)s[n]=t[n];return function(e){for(n=0;n<i;++n)s[n]=a[n](e);return s}}},27265:function(e,t,n){"use strict";function r(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}function o(e){var t=e.length-1;return function(n){var o=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[o],a=e[o+1],s=o>0?e[o-1]:2*i-a,u=o<t-1?e[o+2]:2*a-i;return r((n-o/t)*t,s,i,a,u)}}n.d(t,{Z:function(){return o},t:function(){return r}})},76068:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(27265);function o(e){var t=e.length;return function(n){var o=Math.floor(((n%=1)<0?++n:n)*t),i=e[(o+t-1)%t],a=e[o%t],s=e[(o+1)%t],u=e[(o+2)%t];return(0,r.t)((n-o/t)*t,i,a,s,u)}}},98280:function(e,t,n){"use strict";n.d(t,{ZP:function(){return s},wx:function(){return i},yi:function(){return a}});var r=n(22954);function o(e,t){return function(n){return e+n*t}}function i(e,t){var n=t-e;return n?o(e,n>180||n<-180?n-360*Math.round(n/360):n):(0,r.Z)(isNaN(e)?t:e)}function a(e){return 1===(e=+e)?s:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):(0,r.Z)(isNaN(t)?n:t)}}function s(e,t){var n=t-e;return n?o(e,n):(0,r.Z)(isNaN(e)?t:e)}},22954:function(e,t){"use strict";t.Z=e=>()=>e},56246:function(e,t,n){"use strict";function r(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}n.d(t,{Z:function(){return r}})},68063:function(e,t,n){"use strict";function r(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}n.d(t,{Z:function(){return r}})},45401:function(e,t,n){"use strict";function r(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(i){for(n=0;n<r;++n)o[n]=e[n]*(1-i)+t[n]*i;return o}}function o(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}n.d(t,{Z:function(){return r},v:function(){return o}})},58296:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(45326);function o(e,t){var n,o={},i={};for(n in null!==e&&"object"===typeof e||(e={}),null!==t&&"object"===typeof t||(t={}),t)n in e?o[n]=(0,r.Z)(e[n],t[n]):i[n]=t[n];return function(e){for(n in o)i[n]=o[n](e);return i}}},19640:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(45326);function o(e,t){void 0===t&&(t=e,e=r.Z);for(var n=0,o=t.length-1,i=t[0],a=new Array(o<0?0:o);n<o;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(o-1,Math.floor(e*=o)));return a[t](e-t)}}},6354:function(e,t,n){"use strict";n.d(t,{YD:function(){return l},hD:function(){return u}});var r=n(4447),o=n(27265),i=n(76068),a=n(98280);function s(e){return function(t){var n,o,i=t.length,a=new Array(i),s=new Array(i),u=new Array(i);for(n=0;n<i;++n)o=(0,r.B8)(t[n]),a[n]=o.r||0,s[n]=o.g||0,u[n]=o.b||0;return a=e(a),s=e(s),u=e(u),o.opacity=1,function(e){return o.r=a(e),o.g=s(e),o.b=u(e),o+""}}}t.ZP=function e(t){var n=(0,a.yi)(t);function o(e,t){var o=n((e=(0,r.B8)(e)).r,(t=(0,r.B8)(t)).r),i=n(e.g,t.g),s=n(e.b,t.b),u=(0,a.ZP)(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=i(t),e.b=s(t),e.opacity=u(t),e+""}}return o.gamma=e,o}(1);var u=s(o.Z),l=s(i.Z)},64635:function(e,t,n){"use strict";function r(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}n.d(t,{Z:function(){return r}})},16773:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(68063),o=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,i=new RegExp(o.source,"g");function a(e,t){var n,a,s,u=o.lastIndex=i.lastIndex=0,l=-1,c=[],f=[];for(e+="",t+="";(n=o.exec(e))&&(a=i.exec(t));)(s=a.index)>u&&(s=t.slice(u,s),c[l]?c[l]+=s:c[++l]=s),(n=n[0])===(a=a[0])?c[l]?c[l]+=a:c[++l]=a:(c[++l]=null,f.push({i:l,x:(0,r.Z)(n,a)})),u=i.lastIndex;return u<t.length&&(s=t.slice(u),c[l]?c[l]+=s:c[++l]=s),c.length<2?f[0]?function(e){return function(t){return e(t)+""}}(f[0].x):function(e){return function(){return e}}(t):(t=f.length,function(e){for(var n,r=0;r<t;++r)c[(n=f[r]).i]=n.x(e);return c.join("")})}},45326:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(4447),o=n(6354),i=n(51606),a=n(56246),s=n(68063),u=n(58296),l=n(16773),c=n(22954),f=n(45401);function d(e,t){var n,d=typeof t;return null==t||"boolean"===d?(0,c.Z)(t):("number"===d?s.Z:"string"===d?(n=(0,r.ZP)(t))?(t=n,o.ZP):l.Z:t instanceof r.ZP?o.ZP:t instanceof Date?a.Z:(0,f.v)(t)?f.Z:Array.isArray(t)?i.M:"function"!==typeof t.valueOf&&"function"!==typeof t.toString||isNaN(t)?u.Z:s.Z)(e,t)}},69032:function(e,t,n){"use strict";function r(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function o(e,t){switch(arguments.length){case 0:break;case 1:"function"===typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"===typeof t?this.interpolator(t):this.range(t)}return this}n.r(t),n.d(t,{scaleBand:function(){return u},scaleDiverging:function(){return gt},scaleDivergingLog:function(){return vt},scaleDivergingPow:function(){return yt},scaleDivergingSqrt:function(){return bt},scaleDivergingSymlog:function(){return mt},scaleIdentity:function(){return G},scaleImplicit:function(){return a},scaleLinear:function(){return U},scaleLog:function(){return ee},scaleOrdinal:function(){return s},scalePoint:function(){return c},scalePow:function(){return le},scaleQuantile:function(){return xe},scaleQuantize:function(){return _e},scaleRadial:function(){return de},scaleSequential:function(){return st},scaleSequentialLog:function(){return ut},scaleSequentialPow:function(){return ct},scaleSequentialQuantile:function(){return dt},scaleSequentialSqrt:function(){return ft},scaleSequentialSymlog:function(){return lt},scaleSqrt:function(){return ce},scaleSymlog:function(){return oe},scaleThreshold:function(){return Se},scaleTime:function(){return rt},scaleUtc:function(){return ot},tickFormat:function(){return V}});var i=n(909);const a=Symbol("implicit");function s(){var e=new i.L,t=[],n=[],o=a;function u(r){let i=e.get(r);if(void 0===i){if(o!==a)return o;e.set(r,i=t.push(r)-1)}return n[i%n.length]}return u.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new i.L;for(const r of n)e.has(r)||e.set(r,t.push(r)-1);return u},u.range=function(e){return arguments.length?(n=Array.from(e),u):n.slice()},u.unknown=function(e){return arguments.length?(o=e,u):o},u.copy=function(){return s(t,n).unknown(o)},r.apply(u,arguments),u}function u(){var e,t,n=s().unknown(void 0),o=n.domain,i=n.range,a=0,l=1,c=!1,f=0,d=0,p=.5;function h(){var n=o().length,r=l<a,s=r?l:a,u=r?a:l;e=(u-s)/Math.max(1,n-f+2*d),c&&(e=Math.floor(e)),s+=(u-s-e*(n-f))*p,t=e*(1-f),c&&(s=Math.round(s),t=Math.round(t));var h=function(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(o);++r<o;)i[r]=e+r*n;return i}(n).map((function(t){return s+e*t}));return i(r?h.reverse():h)}return delete n.unknown,n.domain=function(e){return arguments.length?(o(e),h()):o()},n.range=function(e){return arguments.length?([a,l]=e,a=+a,l=+l,h()):[a,l]},n.rangeRound=function(e){return[a,l]=e,a=+a,l=+l,c=!0,h()},n.bandwidth=function(){return t},n.step=function(){return e},n.round=function(e){return arguments.length?(c=!!e,h()):c},n.padding=function(e){return arguments.length?(f=Math.min(1,d=+e),h()):f},n.paddingInner=function(e){return arguments.length?(f=Math.min(1,e),h()):f},n.paddingOuter=function(e){return arguments.length?(d=+e,h()):d},n.align=function(e){return arguments.length?(p=Math.max(0,Math.min(1,e)),h()):p},n.copy=function(){return u(o(),[a,l]).round(c).paddingInner(f).paddingOuter(d).align(p)},r.apply(h(),arguments)}function l(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return l(t())},e}function c(){return l(u.apply(null,arguments).paddingInner(1))}var f=Math.sqrt(50),d=Math.sqrt(10),p=Math.sqrt(2);function h(e,t,n){var r,o,i,a,s=-1;if(n=+n,(e=+e)===(t=+t)&&n>0)return[e];if((r=t<e)&&(o=e,e=t,t=o),0===(a=g(e,t,n))||!isFinite(a))return[];if(a>0){let n=Math.round(e/a),r=Math.round(t/a);for(n*a<e&&++n,r*a>t&&--r,i=new Array(o=r-n+1);++s<o;)i[s]=(n+s)*a}else{a=-a;let n=Math.round(e*a),r=Math.round(t*a);for(n/a<e&&++n,r/a>t&&--r,i=new Array(o=r-n+1);++s<o;)i[s]=(n+s)/a}return r&&i.reverse(),i}function g(e,t,n){var r=(t-e)/Math.max(0,n),o=Math.floor(Math.log(r)/Math.LN10),i=r/Math.pow(10,o);return o>=0?(i>=f?10:i>=d?5:i>=p?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(i>=f?10:i>=d?5:i>=p?2:1)}function v(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/o;return i>=f?o*=10:i>=d?o*=5:i>=p&&(o*=2),t<e?-o:o}function m(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function y(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function b(e){let t,n,r;function o(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<0?o=t+1:i=t}while(o<i)}return o}return 2!==e.length?(t=m,n=(t,n)=>m(e(t),n),r=(t,n)=>e(t)-n):(t=e===m||e===y?e:w,n=e,r=e),{left:o,center:function(e,t,n=0,i=e.length){const a=o(e,t,n,i-1);return a>n&&r(e[a-1],t)>-r(e[a],t)?a-1:a},right:function(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<=0?o=t+1:i=t}while(o<i)}return o}}}function w(){return 0}function x(e){return null===e?NaN:+e}const _=b(m),S=_.right;_.left,b(x).center;var O=S,C=n(45326),E=n(68063),A=n(64635);function M(e){return+e}var k=[0,1];function P(e){return e}function R(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:(n=isNaN(t)?NaN:.5,function(){return n});var n}function T(e,t,n){var r=e[0],o=e[1],i=t[0],a=t[1];return o<r?(r=R(o,r),i=n(a,i)):(r=R(r,o),i=n(i,a)),function(e){return i(r(e))}}function I(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),i=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)o[a]=R(e[a],e[a+1]),i[a]=n(t[a],t[a+1]);return function(t){var n=O(e,t,1,r)-1;return i[n](o[n](t))}}function B(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function D(){var e,t,n,r,o,i,a=k,s=k,u=C.Z,l=P;function c(){var e=Math.min(a.length,s.length);return l!==P&&(l=function(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(a[0],a[e-1])),r=e>2?I:T,o=i=null,f}function f(t){return null==t||isNaN(t=+t)?n:(o||(o=r(a.map(e),s,u)))(e(l(t)))}return f.invert=function(n){return l(t((i||(i=r(s,a.map(e),E.Z)))(n)))},f.domain=function(e){return arguments.length?(a=Array.from(e,M),c()):a.slice()},f.range=function(e){return arguments.length?(s=Array.from(e),c()):s.slice()},f.rangeRound=function(e){return s=Array.from(e),u=A.Z,c()},f.clamp=function(e){return arguments.length?(l=!!e||P,c()):l!==P},f.interpolate=function(e){return arguments.length?(u=e,c()):u},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,r){return e=n,t=r,c()}}function j(){return D()(P,P)}var L=n(42035),Z=n(87017),N=n(65386),F=n(63482),H=n(96909);function V(e,t,n,r){var o,i=v(e,t,n);switch((r=(0,L.Z)(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(o=(0,Z.Z)(i,a))||(r.precision=o),(0,N.jH)(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=(0,F.Z)(i,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=(0,H.Z)(i))||(r.precision=o-2*("%"===r.type))}return(0,N.WU)(r)}function z(e){var t=e.domain;return e.ticks=function(e){var n=t();return h(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return V(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,o,i=t(),a=0,s=i.length-1,u=i[a],l=i[s],c=10;for(l<u&&(o=u,u=l,l=o,o=a,a=s,s=o);c-- >0;){if((o=g(u,l,n))===r)return i[a]=u,i[s]=l,t(i);if(o>0)u=Math.floor(u/o)*o,l=Math.ceil(l/o)*o;else{if(!(o<0))break;u=Math.ceil(u*o)/o,l=Math.floor(l*o)/o}r=o}return e},e}function U(){var e=j();return e.copy=function(){return B(e,U())},r.apply(e,arguments),z(e)}function G(e){var t;function n(e){return null==e||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,M),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return G(e).unknown(t)},e=arguments.length?Array.from(e,M):[0,1],z(n)}function W(e,t){var n,r=0,o=(e=e.slice()).length-1,i=e[r],a=e[o];return a<i&&(n=r,r=o,o=n,n=i,i=a,a=n),e[r]=t.floor(i),e[o]=t.ceil(a),e}function $(e){return Math.log(e)}function q(e){return Math.exp(e)}function Y(e){return-Math.log(-e)}function X(e){return-Math.exp(-e)}function K(e){return isFinite(e)?+("1e"+e):e<0?0:e}function J(e){return(t,n)=>-e(-t,n)}function Q(e){const t=e($,q),n=t.domain;let r,o,i=10;function a(){return r=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(i),o=function(e){return 10===e?K:e===Math.E?Math.exp:t=>Math.pow(e,t)}(i),n()[0]<0?(r=J(r),o=J(o),e(Y,X)):e($,q),t}return t.base=function(e){return arguments.length?(i=+e,a()):i},t.domain=function(e){return arguments.length?(n(e),a()):n()},t.ticks=e=>{const t=n();let a=t[0],s=t[t.length-1];const u=s<a;u&&([a,s]=[s,a]);let l,c,f=r(a),d=r(s);const p=null==e?10:+e;let g=[];if(!(i%1)&&d-f<p){if(f=Math.floor(f),d=Math.ceil(d),a>0){for(;f<=d;++f)for(l=1;l<i;++l)if(c=f<0?l/o(-f):l*o(f),!(c<a)){if(c>s)break;g.push(c)}}else for(;f<=d;++f)for(l=i-1;l>=1;--l)if(c=f>0?l/o(-f):l*o(f),!(c<a)){if(c>s)break;g.push(c)}2*g.length<p&&(g=h(a,s,p))}else g=h(f,d,Math.min(d-f,p)).map(o);return u?g.reverse():g},t.tickFormat=(e,n)=>{if(null==e&&(e=10),null==n&&(n=10===i?"s":","),"function"!==typeof n&&(i%1||null!=(n=(0,L.Z)(n)).precision||(n.trim=!0),n=(0,N.WU)(n)),e===1/0)return n;const a=Math.max(1,i*e/t.ticks().length);return e=>{let t=e/o(Math.round(r(e)));return t*i<i-.5&&(t*=i),t<=a?n(e):""}},t.nice=()=>n(W(n(),{floor:e=>o(Math.floor(r(e))),ceil:e=>o(Math.ceil(r(e)))})),t}function ee(){const e=Q(D()).domain([1,10]);return e.copy=()=>B(e,ee()).base(e.base()),r.apply(e,arguments),e}function te(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function ne(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function re(e){var t=1,n=e(te(t),ne(t));return n.constant=function(n){return arguments.length?e(te(t=+n),ne(t)):t},z(n)}function oe(){var e=re(D());return e.copy=function(){return B(e,oe()).constant(e.constant())},r.apply(e,arguments)}function ie(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function ae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function se(e){return e<0?-e*e:e*e}function ue(e){var t=e(P,P),n=1;return t.exponent=function(t){return arguments.length?1===(n=+t)?e(P,P):.5===n?e(ae,se):e(ie(n),ie(1/n)):n},z(t)}function le(){var e=ue(D());return e.copy=function(){return B(e,le()).exponent(e.exponent())},r.apply(e,arguments),e}function ce(){return le.apply(null,arguments).exponent(.5)}function fe(e){return Math.sign(e)*e*e}function de(){var e,t=j(),n=[0,1],o=!1;function i(n){var r=function(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}(t(n));return isNaN(r)?e:o?Math.round(r):r}return i.invert=function(e){return t.invert(fe(e))},i.domain=function(e){return arguments.length?(t.domain(e),i):t.domain()},i.range=function(e){return arguments.length?(t.range((n=Array.from(e,M)).map(fe)),i):n.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(o=!!e,i):o},i.clamp=function(e){return arguments.length?(t.clamp(e),i):t.clamp()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return de(t.domain(),n).round(o).clamp(t.clamp()).unknown(e)},r.apply(i,arguments),z(i)}function pe(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n<r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}function he(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n>r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}function ge(e=m){if(e===m)return ve;if("function"!==typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}function ve(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function me(e,t,n=0,r=e.length-1,o){for(o=void 0===o?ve:ge(o);r>n;){if(r-n>600){const i=r-n+1,a=t-n+1,s=Math.log(i),u=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*u*(i-u)/i)*(a-i/2<0?-1:1);me(e,t,Math.max(n,Math.floor(t-a*u/i+l)),Math.min(r,Math.floor(t+(i-a)*u/i+l)),o)}const i=e[t];let a=n,s=r;for(ye(e,n,t),o(e[r],i)>0&&ye(e,n,r);a<s;){for(ye(e,a,s),++a,--s;o(e[a],i)<0;)++a;for(;o(e[s],i)>0;)--s}0===o(e[n],i)?ye(e,n,s):(++s,ye(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function ye(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function be(e,t,n){if(e=Float64Array.from(function*(e,t){if(void 0===t)for(let n of e)null!=n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r=+r)>=r&&(yield r)}}(e,n)),r=e.length){if((t=+t)<=0||r<2)return he(e);if(t>=1)return pe(e);var r,o=(r-1)*t,i=Math.floor(o),a=pe(me(e,i).subarray(0,i+1));return a+(he(e.subarray(i+1))-a)*(o-i)}}function we(e,t,n=x){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,o=(r-1)*t,i=Math.floor(o),a=+n(e[i],i,e);return a+(+n(e[i+1],i+1,e)-a)*(o-i)}}function xe(){var e,t=[],n=[],o=[];function i(){var e=0,r=Math.max(1,n.length);for(o=new Array(r-1);++e<r;)o[e-1]=we(t,e/r);return a}function a(t){return null==t||isNaN(t=+t)?e:n[O(o,t)]}return a.invertExtent=function(e){var r=n.indexOf(e);return r<0?[NaN,NaN]:[r>0?o[r-1]:t[0],r<o.length?o[r]:t[t.length-1]]},a.domain=function(e){if(!arguments.length)return t.slice();t=[];for(let n of e)null==n||isNaN(n=+n)||t.push(n);return t.sort(m),i()},a.range=function(e){return arguments.length?(n=Array.from(e),i()):n.slice()},a.unknown=function(t){return arguments.length?(e=t,a):e},a.quantiles=function(){return o.slice()},a.copy=function(){return xe().domain(t).range(n).unknown(e)},r.apply(a,arguments)}function _e(){var e,t=0,n=1,o=1,i=[.5],a=[0,1];function s(t){return null!=t&&t<=t?a[O(i,t,0,o)]:e}function u(){var e=-1;for(i=new Array(o);++e<o;)i[e]=((e+1)*n-(e-o)*t)/(o+1);return s}return s.domain=function(e){return arguments.length?([t,n]=e,t=+t,n=+n,u()):[t,n]},s.range=function(e){return arguments.length?(o=(a=Array.from(e)).length-1,u()):a.slice()},s.invertExtent=function(e){var r=a.indexOf(e);return r<0?[NaN,NaN]:r<1?[t,i[0]]:r>=o?[i[o-1],n]:[i[r-1],i[r]]},s.unknown=function(t){return arguments.length?(e=t,s):s},s.thresholds=function(){return i.slice()},s.copy=function(){return _e().domain([t,n]).range(a).unknown(e)},r.apply(z(s),arguments)}function Se(){var e,t=[.5],n=[0,1],o=1;function i(r){return null!=r&&r<=r?n[O(t,r,0,o)]:e}return i.domain=function(e){return arguments.length?(t=Array.from(e),o=Math.min(t.length,n.length-1),i):t.slice()},i.range=function(e){return arguments.length?(n=Array.from(e),o=Math.min(t.length,n.length-1),i):n.slice()},i.invertExtent=function(e){var r=n.indexOf(e);return[t[r-1],t[r]]},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return Se().domain(t).range(n).unknown(e)},r.apply(i,arguments)}var Oe=n(11262),Ce=n(52576),Ee=(0,Ce.Z)((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));Ee.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?(0,Ce.Z)((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,n){t.setTime(+t+n*e)}),(function(t,n){return(n-t)/e})):Ee:null};var Ae=Ee,Me=(Ee.range,(0,Ce.Z)((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+t*Oe.Ym)}),(function(e,t){return(t-e)/Oe.Ym}),(function(e){return e.getUTCSeconds()}))),ke=Me,Pe=(Me.range,(0,Ce.Z)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Oe.Ym)}),(function(e,t){e.setTime(+e+t*Oe.yB)}),(function(e,t){return(t-e)/Oe.yB}),(function(e){return e.getMinutes()}))),Re=Pe,Te=(Pe.range,(0,Ce.Z)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Oe.Ym-e.getMinutes()*Oe.yB)}),(function(e,t){e.setTime(+e+t*Oe.Y2)}),(function(e,t){return(t-e)/Oe.Y2}),(function(e){return e.getHours()}))),Ie=Te,Be=(Te.range,n(96199)),De=n(85235),je=(0,Ce.Z)((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()})),Le=je,Ze=(je.range,n(38887)),Ne=(0,Ce.Z)((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+t*Oe.yB)}),(function(e,t){return(t-e)/Oe.yB}),(function(e){return e.getUTCMinutes()})),Fe=Ne,He=(Ne.range,(0,Ce.Z)((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+t*Oe.Y2)}),(function(e,t){return(t-e)/Oe.Y2}),(function(e){return e.getUTCHours()}))),Ve=He,ze=(He.range,n(74834)),Ue=n(81416),Ge=(0,Ce.Z)((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()})),We=Ge,$e=(Ge.range,n(69935));function qe(e,t,n,r,o,i){const a=[[ke,1,Oe.Ym],[ke,5,5*Oe.Ym],[ke,15,15*Oe.Ym],[ke,30,30*Oe.Ym],[i,1,Oe.yB],[i,5,5*Oe.yB],[i,15,15*Oe.yB],[i,30,30*Oe.yB],[o,1,Oe.Y2],[o,3,3*Oe.Y2],[o,6,6*Oe.Y2],[o,12,12*Oe.Y2],[r,1,Oe.UD],[r,2,2*Oe.UD],[n,1,Oe.iM],[t,1,Oe.jz],[t,3,3*Oe.jz],[e,1,Oe.qz]];function s(t,n,r){const o=Math.abs(n-t)/r,i=b((([,,e])=>e)).right(a,o);if(i===a.length)return e.every(v(t/Oe.qz,n/Oe.qz,r));if(0===i)return Ae.every(Math.max(v(t,n,r),1));const[s,u]=a[o/a[i-1][2]<a[i][2]/o?i-1:i];return s.every(u)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const o=n&&"function"===typeof n.range?n:s(e,t,n),i=o?o.range(e,+t+1):[];return r?i.reverse():i},s]}const[Ye,Xe]=qe($e.Z,We,Ue.Ox,ze.Z,Ve,Fe),[Ke,Je]=qe(Ze.Z,Le,De.OM,Be.Z,Ie,Re);var Qe=n(82138);function et(e){return new Date(e)}function tt(e){return e instanceof Date?+e:+new Date(+e)}function nt(e,t,n,r,o,i,a,s,u,l){var c=j(),f=c.invert,d=c.domain,p=l(".%L"),h=l(":%S"),g=l("%I:%M"),v=l("%I %p"),m=l("%a %d"),y=l("%b %d"),b=l("%B"),w=l("%Y");function x(e){return(u(e)<e?p:s(e)<e?h:a(e)<e?g:i(e)<e?v:r(e)<e?o(e)<e?m:y:n(e)<e?b:w)(e)}return c.invert=function(e){return new Date(f(e))},c.domain=function(e){return arguments.length?d(Array.from(e,tt)):d().map(et)},c.ticks=function(t){var n=d();return e(n[0],n[n.length-1],null==t?10:t)},c.tickFormat=function(e,t){return null==t?x:l(t)},c.nice=function(e){var n=d();return e&&"function"===typeof e.range||(e=t(n[0],n[n.length-1],null==e?10:e)),e?d(W(n,e)):c},c.copy=function(){return B(c,nt(e,t,n,r,o,i,a,s,u,l))},c}function rt(){return r.apply(nt(Ke,Je,Ze.Z,Le,De.OM,Be.Z,Ie,Re,ke,Qe.i$).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ot(){return r.apply(nt(Ye,Xe,$e.Z,We,Ue.Ox,ze.Z,Ve,Fe,ke,Qe.g0).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function it(){var e,t,n,r,o,i=0,a=1,s=P,u=!1;function l(t){return null==t||isNaN(t=+t)?o:s(0===n?.5:(t=(r(t)-e)*n,u?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,r;return arguments.length?([n,r]=t,s=e(n,r),l):[s(0),s(1)]}}return l.domain=function(o){return arguments.length?([i,a]=o,e=r(i=+i),t=r(a=+a),n=e===t?0:1/(t-e),l):[i,a]},l.clamp=function(e){return arguments.length?(u=!!e,l):u},l.interpolator=function(e){return arguments.length?(s=e,l):s},l.range=c(C.Z),l.rangeRound=c(A.Z),l.unknown=function(e){return arguments.length?(o=e,l):o},function(o){return r=o,e=o(i),t=o(a),n=e===t?0:1/(t-e),l}}function at(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function st(){var e=z(it()(P));return e.copy=function(){return at(e,st())},o.apply(e,arguments)}function ut(){var e=Q(it()).domain([1,10]);return e.copy=function(){return at(e,ut()).base(e.base())},o.apply(e,arguments)}function lt(){var e=re(it());return e.copy=function(){return at(e,lt()).constant(e.constant())},o.apply(e,arguments)}function ct(){var e=ue(it());return e.copy=function(){return at(e,ct()).exponent(e.exponent())},o.apply(e,arguments)}function ft(){return ct.apply(null,arguments).exponent(.5)}function dt(){var e=[],t=P;function n(n){if(null!=n&&!isNaN(n=+n))return t((O(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(m),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map(((n,r)=>t(r/(e.length-1))))},n.quantiles=function(t){return Array.from({length:t+1},((n,r)=>be(e,r/t)))},n.copy=function(){return dt(t).domain(e)},o.apply(n,arguments)}var pt=n(19640);function ht(){var e,t,n,r,o,i,a,s=0,u=.5,l=1,c=1,f=P,d=!1;function p(e){return isNaN(e=+e)?a:(e=.5+((e=+i(e))-t)*(c*e<c*t?r:o),f(d?Math.max(0,Math.min(1,e)):e))}function h(e){return function(t){var n,r,o;return arguments.length?([n,r,o]=t,f=(0,pt.Z)(e,[n,r,o]),p):[f(0),f(.5),f(1)]}}return p.domain=function(a){return arguments.length?([s,u,l]=a,e=i(s=+s),t=i(u=+u),n=i(l=+l),r=e===t?0:.5/(t-e),o=t===n?0:.5/(n-t),c=t<e?-1:1,p):[s,u,l]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(f=e,p):f},p.range=h(C.Z),p.rangeRound=h(A.Z),p.unknown=function(e){return arguments.length?(a=e,p):a},function(a){return i=a,e=a(s),t=a(u),n=a(l),r=e===t?0:.5/(t-e),o=t===n?0:.5/(n-t),c=t<e?-1:1,p}}function gt(){var e=z(ht()(P));return e.copy=function(){return at(e,gt())},o.apply(e,arguments)}function vt(){var e=Q(ht()).domain([.1,1,10]);return e.copy=function(){return at(e,vt()).base(e.base())},o.apply(e,arguments)}function mt(){var e=re(ht());return e.copy=function(){return at(e,mt()).constant(e.constant())},o.apply(e,arguments)}function yt(){var e=ue(ht());return e.copy=function(){return at(e,yt()).exponent(e.exponent())},o.apply(e,arguments)}function bt(){return yt.apply(null,arguments).exponent(.5)}},82138:function(e,t,n){"use strict";n.d(t,{Z1:function(){return i},ZP:function(){return l},g0:function(){return a},i$:function(){return o},wp:function(){return s}});var r,o,i,a,s,u=n(47238);function l(e){return r=(0,u.Z)(e),o=r.format,i=r.parse,a=r.utcFormat,s=r.utcParse,r}l({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})},47238:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(81416),o=n(74834),i=n(85235),a=n(96199),s=n(38887),u=n(69935);function l(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function c(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function f(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function d(e){var t=e.dateTime,n=e.date,s=e.time,u=e.periods,d=e.days,h=e.shortDays,g=e.months,v=e.shortMonths,m=b(u),y=w(u),J=b(d),ye=w(d),Pe=b(h),Re=w(h),Te=b(g),Ie=w(g),Be=b(v),De=w(v),je={a:function(e){return h[e.getDay()]},A:function(e){return d[e.getDay()]},b:function(e){return v[e.getMonth()]},B:function(e){return g[e.getMonth()]},c:null,d:H,e:H,f:W,g:re,G:ie,H:V,I:z,j:U,L:G,m:$,M:q,p:function(e){return u[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:Me,s:ke,S:Y,u:X,U:K,V:Q,w:ee,W:te,x:null,X:null,y:ne,Y:oe,Z:ae,"%":Ae},Le={a:function(e){return h[e.getUTCDay()]},A:function(e){return d[e.getUTCDay()]},b:function(e){return v[e.getUTCMonth()]},B:function(e){return g[e.getUTCMonth()]},c:null,d:se,e:se,f:de,g:Se,G:Ce,H:ue,I:le,j:ce,L:fe,m:pe,M:he,p:function(e){return u[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:Me,s:ke,S:ge,u:ve,U:me,V:be,w:we,W:xe,x:null,X:null,y:_e,Y:Oe,Z:Ee,"%":Ae},Ze={a:function(e,t,n){var r=Pe.exec(t.slice(n));return r?(e.w=Re.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=J.exec(t.slice(n));return r?(e.w=ye.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=Be.exec(t.slice(n));return r?(e.m=De.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=Te.exec(t.slice(n));return r?(e.m=Ie.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return He(e,t,n,r)},d:R,e:R,f:L,g:A,G:E,H:I,I:I,j:T,L:j,m:P,M:B,p:function(e,t,n){var r=m.exec(t.slice(n));return r?(e.p=y.get(r[0].toLowerCase()),n+r[0].length):-1},q:k,Q:N,s:F,S:D,u:_,U:S,V:O,w:x,W:C,x:function(e,t,r){return He(e,n,t,r)},X:function(e,t,n){return He(e,s,t,n)},y:A,Y:E,Z:M,"%":Z};function Ne(e,t){return function(n){var r,o,i,a=[],s=-1,u=0,l=e.length;for(n instanceof Date||(n=new Date(+n));++s<l;)37===e.charCodeAt(s)&&(a.push(e.slice(u,s)),null!=(o=p[r=e.charAt(++s)])?r=e.charAt(++s):o="e"===r?" ":"0",(i=t[r])&&(r=i(n,o)),a.push(r),u=s+1);return a.push(e.slice(u,s)),a.join("")}}function Fe(e,t){return function(n){var s,u,d=f(1900,void 0,1);if(He(d,e,n+="",0)!=n.length)return null;if("Q"in d)return new Date(d.Q);if("s"in d)return new Date(1e3*d.s+("L"in d?d.L:0));if(t&&!("Z"in d)&&(d.Z=0),"p"in d&&(d.H=d.H%12+12*d.p),void 0===d.m&&(d.m="q"in d?d.q:0),"V"in d){if(d.V<1||d.V>53)return null;"w"in d||(d.w=1),"Z"in d?(u=(s=c(f(d.y,0,1))).getUTCDay(),s=u>4||0===u?r.l6.ceil(s):(0,r.l6)(s),s=o.Z.offset(s,7*(d.V-1)),d.y=s.getUTCFullYear(),d.m=s.getUTCMonth(),d.d=s.getUTCDate()+(d.w+6)%7):(u=(s=l(f(d.y,0,1))).getDay(),s=u>4||0===u?i.wA.ceil(s):(0,i.wA)(s),s=a.Z.offset(s,7*(d.V-1)),d.y=s.getFullYear(),d.m=s.getMonth(),d.d=s.getDate()+(d.w+6)%7)}else("W"in d||"U"in d)&&("w"in d||(d.w="u"in d?d.u%7:"W"in d?1:0),u="Z"in d?c(f(d.y,0,1)).getUTCDay():l(f(d.y,0,1)).getDay(),d.m=0,d.d="W"in d?(d.w+6)%7+7*d.W-(u+5)%7:d.w+7*d.U-(u+6)%7);return"Z"in d?(d.H+=d.Z/100|0,d.M+=d.Z%100,c(d)):l(d)}}function He(e,t,n,r){for(var o,i,a=0,s=t.length,u=n.length;a<s;){if(r>=u)return-1;if(37===(o=t.charCodeAt(a++))){if(o=t.charAt(a++),!(i=Ze[o in p?t.charAt(a++):o])||(r=i(e,n,r))<0)return-1}else if(o!=n.charCodeAt(r++))return-1}return r}return je.x=Ne(n,je),je.X=Ne(s,je),je.c=Ne(t,je),Le.x=Ne(n,Le),Le.X=Ne(s,Le),Le.c=Ne(t,Le),{format:function(e){var t=Ne(e+="",je);return t.toString=function(){return e},t},parse:function(e){var t=Fe(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=Ne(e+="",Le);return t.toString=function(){return e},t},utcParse:function(e){var t=Fe(e+="",!0);return t.toString=function(){return e},t}}}var p={"-":"",_:" ",0:"0"},h=/^\s*\d+/,g=/^%/,v=/[\\^$*+?|[\]().{}]/g;function m(e,t,n){var r=e<0?"-":"",o=(r?-e:e)+"",i=o.length;return r+(i<n?new Array(n-i+1).join(t)+o:o)}function y(e){return e.replace(v,"\\$&")}function b(e){return new RegExp("^(?:"+e.map(y).join("|")+")","i")}function w(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function x(e,t,n){var r=h.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function _(e,t,n){var r=h.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function S(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function O(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function C(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function E(e,t,n){var r=h.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function A(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function M(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function k(e,t,n){var r=h.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function P(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function R(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function T(e,t,n){var r=h.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function I(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function B(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function D(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function j(e,t,n){var r=h.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function L(e,t,n){var r=h.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Z(e,t,n){var r=g.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function N(e,t,n){var r=h.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function F(e,t,n){var r=h.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function H(e,t){return m(e.getDate(),t,2)}function V(e,t){return m(e.getHours(),t,2)}function z(e,t){return m(e.getHours()%12||12,t,2)}function U(e,t){return m(1+a.Z.count((0,s.Z)(e),e),t,3)}function G(e,t){return m(e.getMilliseconds(),t,3)}function W(e,t){return G(e,t)+"000"}function $(e,t){return m(e.getMonth()+1,t,2)}function q(e,t){return m(e.getMinutes(),t,2)}function Y(e,t){return m(e.getSeconds(),t,2)}function X(e){var t=e.getDay();return 0===t?7:t}function K(e,t){return m(i.OM.count((0,s.Z)(e)-1,e),t,2)}function J(e){var t=e.getDay();return t>=4||0===t?(0,i.bL)(e):i.bL.ceil(e)}function Q(e,t){return e=J(e),m(i.bL.count((0,s.Z)(e),e)+(4===(0,s.Z)(e).getDay()),t,2)}function ee(e){return e.getDay()}function te(e,t){return m(i.wA.count((0,s.Z)(e)-1,e),t,2)}function ne(e,t){return m(e.getFullYear()%100,t,2)}function re(e,t){return m((e=J(e)).getFullYear()%100,t,2)}function oe(e,t){return m(e.getFullYear()%1e4,t,4)}function ie(e,t){var n=e.getDay();return m((e=n>=4||0===n?(0,i.bL)(e):i.bL.ceil(e)).getFullYear()%1e4,t,4)}function ae(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+m(t/60|0,"0",2)+m(t%60,"0",2)}function se(e,t){return m(e.getUTCDate(),t,2)}function ue(e,t){return m(e.getUTCHours(),t,2)}function le(e,t){return m(e.getUTCHours()%12||12,t,2)}function ce(e,t){return m(1+o.Z.count((0,u.Z)(e),e),t,3)}function fe(e,t){return m(e.getUTCMilliseconds(),t,3)}function de(e,t){return fe(e,t)+"000"}function pe(e,t){return m(e.getUTCMonth()+1,t,2)}function he(e,t){return m(e.getUTCMinutes(),t,2)}function ge(e,t){return m(e.getUTCSeconds(),t,2)}function ve(e){var t=e.getUTCDay();return 0===t?7:t}function me(e,t){return m(r.Ox.count((0,u.Z)(e)-1,e),t,2)}function ye(e){var t=e.getUTCDay();return t>=4||0===t?(0,r.hB)(e):r.hB.ceil(e)}function be(e,t){return e=ye(e),m(r.hB.count((0,u.Z)(e),e)+(4===(0,u.Z)(e).getUTCDay()),t,2)}function we(e){return e.getUTCDay()}function xe(e,t){return m(r.l6.count((0,u.Z)(e)-1,e),t,2)}function _e(e,t){return m(e.getUTCFullYear()%100,t,2)}function Se(e,t){return m((e=ye(e)).getUTCFullYear()%100,t,2)}function Oe(e,t){return m(e.getUTCFullYear()%1e4,t,4)}function Ce(e,t){var n=e.getUTCDay();return m((e=n>=4||0===n?(0,r.hB)(e):r.hB.ceil(e)).getUTCFullYear()%1e4,t,4)}function Ee(){return"+0000"}function Ae(){return"%"}function Me(e){return+e}function ke(e){return Math.floor(+e/1e3)}},96199:function(e,t,n){"use strict";var r=n(52576),o=n(11262),i=(0,r.Z)((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.yB)/o.UD),(e=>e.getDate()-1));t.Z=i;i.range},11262:function(e,t,n){"use strict";n.d(t,{UD:function(){return a},Y2:function(){return i},Ym:function(){return r},iM:function(){return s},jz:function(){return u},qz:function(){return l},yB:function(){return o}});const r=1e3,o=60*r,i=60*o,a=24*i,s=7*a,u=30*a,l=365*a},52576:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=new Date,o=new Date;function i(e,t,n,a){function s(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return s.floor=function(t){return e(t=new Date(+t)),t},s.ceil=function(n){return e(n=new Date(n-1)),t(n,1),e(n),n},s.round=function(e){var t=s(e),n=s.ceil(e);return e-t<n-e?t:n},s.offset=function(e,n){return t(e=new Date(+e),null==n?1:Math.floor(n)),e},s.range=function(n,r,o){var i,a=[];if(n=s.ceil(n),o=null==o?1:Math.floor(o),!(n<r)||!(o>0))return a;do{a.push(i=new Date(+n)),t(n,o),e(n)}while(i<n&&n<r);return a},s.filter=function(n){return i((function(t){if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),(function(e,r){if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}))},n&&(s.count=function(t,i){return r.setTime(+t),o.setTime(+i),e(r),e(o),Math.floor(n(r,o))},s.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?s.filter(a?function(t){return a(t)%e===0}:function(t){return s.count(0,t)%e===0}):s:null}),s}},74834:function(e,t,n){"use strict";var r=n(52576),o=n(11262),i=(0,r.Z)((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/o.UD}),(function(e){return e.getUTCDate()-1}));t.Z=i;i.range},81416:function(e,t,n){"use strict";n.d(t,{Ox:function(){return a},hB:function(){return c},l6:function(){return s}});var r=n(52576),o=n(11262);function i(e){return(0,r.Z)((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/o.iM}))}var a=i(0),s=i(1),u=i(2),l=i(3),c=i(4),f=i(5),d=i(6);a.range,s.range,u.range,l.range,c.range,f.range,d.range},69935:function(e,t,n){"use strict";var r=n(52576),o=(0,r.Z)((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));o.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,r.Z)((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null},t.Z=o;o.range},85235:function(e,t,n){"use strict";n.d(t,{OM:function(){return a},bL:function(){return c},wA:function(){return s}});var r=n(52576),o=n(11262);function i(e){return(0,r.Z)((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.yB)/o.iM}))}var a=i(0),s=i(1),u=i(2),l=i(3),c=i(4),f=i(5),d=i(6);a.range,s.range,u.range,l.range,c.range,f.range,d.range},38887:function(e,t,n){"use strict";var r=n(52576),o=(0,r.Z)((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));o.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,r.Z)((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n*e)})):null},t.Z=o;o.range},85169:function(e,t,n){"use strict";function r(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function o(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function i(e){let t,n,i;function s(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<0?o=t+1:i=t}while(o<i)}return o}return 2!==e.length?(t=r,n=(t,n)=>r(e(t),n),i=(t,n)=>e(t)-n):(t=e===r||e===o?e:a,n=e,i=e),{left:s,center:function(e,t,n=0,r=e.length){const o=s(e,t,n,r-1);return o>n&&i(e[o-1],t)>-i(e[o],t)?o-1:o},right:function(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<=0?o=t+1:i=t}while(o<i)}return o}}}function a(){return 0}function s(e){return null===e?NaN:+e}function*u(e,t){if(void 0===t)for(let n of e)null!=n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r=+r)>=r&&(yield r)}}n.r(t),n.d(t,{Adder:function(){return P},Delaunay:function(){return cs},FormatSpecifier:function(){return El.v},InternMap:function(){return I.L},InternSet:function(){return I.H},Node:function(){return Uh},Path:function(){return li},Voronoi:function(){return os},ZoomTransform:function(){return B_},active:function(){return ho},arc:function(){return Wy},area:function(){return eb},areaRadial:function(){return lb},ascending:function(){return r},autoType:function(){return Us},axisBottom:function(){return gt},axisLeft:function(){return vt},axisRight:function(){return ht},axisTop:function(){return pt},bin:function(){return le},bisect:function(){return p},bisectCenter:function(){return d},bisectLeft:function(){return f},bisectRight:function(){return c},bisector:function(){return i},blob:function(){return Iu},blur:function(){return h},blur2:function(){return g},blurImage:function(){return v},brush:function(){return zo},brushSelection:function(){return Fo},brushX:function(){return Ho},brushY:function(){return Vo},buffer:function(){return Du},chord:function(){return ei},chordDirected:function(){return ni},chordTranspose:function(){return ti},cluster:function(){return Lh},color:function(){return Zr.ZP},contourDensity:function(){return Ta},contours:function(){return ya},count:function(){return x},create:function(){return wy},creator:function(){return Sn},cross:function(){return C},csv:function(){return Fu},csvFormat:function(){return Rs},csvFormatBody:function(){return Ts},csvFormatRow:function(){return Bs},csvFormatRows:function(){return Is},csvFormatValue:function(){return Ds},csvParse:function(){return ks},csvParseRows:function(){return Ps},cubehelix:function(){return ta},cumsum:function(){return E},curveBasis:function(){return Qb},curveBasisClosed:function(){return tw},curveBasisOpen:function(){return rw},curveBumpX:function(){return pb},curveBumpY:function(){return hb},curveBundle:function(){return iw},curveCardinal:function(){return uw},curveCardinalClosed:function(){return cw},curveCardinalOpen:function(){return dw},curveCatmullRom:function(){return gw},curveCatmullRomClosed:function(){return mw},curveCatmullRomOpen:function(){return bw},curveLinear:function(){return Xy},curveLinearClosed:function(){return xw},curveMonotoneX:function(){return kw},curveMonotoneY:function(){return Pw},curveNatural:function(){return Iw},curveStep:function(){return Dw},curveStepAfter:function(){return Lw},curveStepBefore:function(){return jw},descending:function(){return o},deviation:function(){return M},difference:function(){return $e},disjoint:function(){return qe},dispatch:function(){return _t},drag:function(){return ms},dragDisable:function(){return Vn},dragEnable:function(){return zn},dsv:function(){return Nu},dsvFormat:function(){return As},easeBack:function(){return Au},easeBackIn:function(){return Cu},easeBackInOut:function(){return Au},easeBackOut:function(){return Eu},easeBounce:function(){return _u},easeBounceIn:function(){return xu},easeBounceInOut:function(){return Su},easeBounceOut:function(){return _u},easeCircle:function(){return cu},easeCircleIn:function(){return uu},easeCircleInOut:function(){return cu},easeCircleOut:function(){return lu},easeCubic:function(){return lo},easeCubicIn:function(){return so},easeCubicInOut:function(){return lo},easeCubicOut:function(){return uo},easeElastic:function(){return Pu},easeElasticIn:function(){return ku},easeElasticInOut:function(){return Ru},easeElasticOut:function(){return Pu},easeExp:function(){return su},easeExpIn:function(){return iu},easeExpInOut:function(){return su},easeExpOut:function(){return au},easeLinear:function(){return Ws},easePoly:function(){return Js},easePolyIn:function(){return Xs},easePolyInOut:function(){return Js},easePolyOut:function(){return Ks},easeQuad:function(){return Ys},easeQuadIn:function(){return $s},easeQuadInOut:function(){return Ys},easeQuadOut:function(){return qs},easeSin:function(){return ru},easeSinIn:function(){return tu},easeSinInOut:function(){return ru},easeSinOut:function(){return nu},every:function(){return He},extent:function(){return k},fcumsum:function(){return T},filter:function(){return ze},flatGroup:function(){return Z},flatRollup:function(){return N},forceCenter:function(){return Yu},forceCollide:function(){return ul},forceLink:function(){return fl},forceManyBody:function(){return wl},forceRadial:function(){return xl},forceSimulation:function(){return bl},forceX:function(){return _l},forceY:function(){return Sl},format:function(){return Ol.WU},formatDefaultLocale:function(){return Ol.ZP},formatLocale:function(){return Cl.Z},formatPrefix:function(){return Ol.jH},formatSpecifier:function(){return El.Z},fsum:function(){return R},geoAlbers:function(){return Jp},geoAlbersUsa:function(){return Qp},geoArea:function(){return Rc},geoAzimuthalEqualArea:function(){return rh},geoAzimuthalEqualAreaRaw:function(){return nh},geoAzimuthalEquidistant:function(){return ih},geoAzimuthalEquidistantRaw:function(){return oh},geoBounds:function(){return pf},geoCentroid:function(){return Cf},geoCircle:function(){return jf},geoClipAntimeridian:function(){return qf},geoClipCircle:function(){return Yf},geoClipExtent:function(){return rd},geoClipRectangle:function(){return nd},geoConicConformal:function(){return fh},geoConicConformalRaw:function(){return ch},geoConicEqualArea:function(){return Kp},geoConicEqualAreaRaw:function(){return Xp},geoConicEquidistant:function(){return gh},geoConicEquidistantRaw:function(){return hh},geoContains:function(){return wd},geoDistance:function(){return fd},geoEqualEarth:function(){return _h},geoEqualEarthRaw:function(){return xh},geoEquirectangular:function(){return ph},geoEquirectangularRaw:function(){return dh},geoGnomonic:function(){return Oh},geoGnomonicRaw:function(){return Sh},geoGraticule:function(){return Od},geoGraticule10:function(){return Cd},geoIdentity:function(){return Ch},geoInterpolate:function(){return Ed},geoLength:function(){return ud},geoMercator:function(){return sh},geoMercatorRaw:function(){return ah},geoNaturalEarth1:function(){return Ah},geoNaturalEarth1Raw:function(){return Eh},geoOrthographic:function(){return kh},geoOrthographicRaw:function(){return Mh},geoPath:function(){return Ip},geoProjection:function(){return $p},geoProjectionMutator:function(){return qp},geoRotation:function(){return If},geoStereographic:function(){return Rh},geoStereographicRaw:function(){return Ph},geoStream:function(){return sc},geoTransform:function(){return Bp},geoTransverseMercator:function(){return Ih},geoTransverseMercatorRaw:function(){return Th},gray:function(){return Di},greatest:function(){return ve},greatestIndex:function(){return Ie},group:function(){return D},groupSort:function(){return X},groups:function(){return j},hcl:function(){return Ui},hierarchy:function(){return Nh},histogram:function(){return le},hsl:function(){return Zr.Ym},html:function(){return $u},image:function(){return Vu},index:function(){return V},indexes:function(){return z},interpolate:function(){return Un.Z},interpolateArray:function(){return Gg.Z},interpolateBasis:function(){return Wg.Z},interpolateBasisClosed:function(){return $g.Z},interpolateBlues:function(){return $m},interpolateBrBG:function(){return im},interpolateBuGn:function(){return Sm},interpolateBuPu:function(){return Cm},interpolateCividis:function(){return oy},interpolateCool:function(){return sy},interpolateCubehelix:function(){return fv},interpolateCubehelixDefault:function(){return iy},interpolateCubehelixLong:function(){return dv},interpolateDate:function(){return qg.Z},interpolateDiscrete:function(){return Yg},interpolateGnBu:function(){return Am},interpolateGreens:function(){return Ym},interpolateGreys:function(){return Km},interpolateHcl:function(){return uv},interpolateHclLong:function(){return lv},interpolateHsl:function(){return ov},interpolateHslLong:function(){return iv},interpolateHue:function(){return Kg},interpolateInferno:function(){return yy},interpolateLab:function(){return av},interpolateMagma:function(){return my},interpolateNumber:function(){return Mr.Z},interpolateNumberArray:function(){return Jg.Z},interpolateObject:function(){return Qg.Z},interpolateOrRd:function(){return km},interpolateOranges:function(){return ry},interpolatePRGn:function(){return sm},interpolatePiYG:function(){return lm},interpolatePlasma:function(){return by},interpolatePuBu:function(){return Im},interpolatePuBuGn:function(){return Rm},interpolatePuOr:function(){return fm},interpolatePuRd:function(){return Dm},interpolatePurples:function(){return Qm},interpolateRainbow:function(){return ly},interpolateRdBu:function(){return pm},interpolateRdGy:function(){return gm},interpolateRdPu:function(){return Lm},interpolateRdYlBu:function(){return mm},interpolateRdYlGn:function(){return bm},interpolateReds:function(){return ty},interpolateRgb:function(){return Nr.ZP},interpolateRgbBasis:function(){return Nr.hD},interpolateRgbBasisClosed:function(){return Nr.YD},interpolateRound:function(){return ev.Z},interpolateSinebow:function(){return py},interpolateSpectral:function(){return xm},interpolateString:function(){return Fr.Z},interpolateTransformCss:function(){return Ir},interpolateTransformSvg:function(){return Br},interpolateTurbo:function(){return hy},interpolateViridis:function(){return vy},interpolateWarm:function(){return ay},interpolateYlGn:function(){return Hm},interpolateYlGnBu:function(){return Nm},interpolateYlOrBr:function(){return zm},interpolateYlOrRd:function(){return Gm},interpolateZoom:function(){return nv},interrupt:function(){return Er},intersection:function(){return Ye},interval:function(){return R_},isoFormat:function(){return M_},isoParse:function(){return P_},json:function(){return Uu},lab:function(){return ji},lch:function(){return zi},least:function(){return Re},leastIndex:function(){return Te},line:function(){return Qy},lineRadial:function(){return ub},link:function(){return yb},linkHorizontal:function(){return bb},linkRadial:function(){return xb},linkVertical:function(){return wb},local:function(){return _y},map:function(){return Ue},matcher:function(){return Mt},max:function(){return ce},maxIndex:function(){return fe},mean:function(){return _e},median:function(){return Se},medianIndex:function(){return Oe},merge:function(){return Ce},min:function(){return de},minIndex:function(){return pe},mode:function(){return Ee},namespace:function(){return zt},namespaces:function(){return Vt},nice:function(){return se},now:function(){return or},pack:function(){return gg},packEnclose:function(){return Qh},packSiblings:function(){return pg},pairs:function(){return Ae},partition:function(){return xg},path:function(){return ci},pathRound:function(){return fi},permute:function(){return W},pie:function(){return rb},piecewise:function(){return pv.Z},pointRadial:function(){return cb},pointer:function(){return Wn},pointers:function(){return Oy},polygonArea:function(){return gv},polygonCentroid:function(){return vv},polygonContains:function(){return xv},polygonHull:function(){return wv},polygonLength:function(){return _v},precisionFixed:function(){return Al.Z},precisionPrefix:function(){return Ml.Z},precisionRound:function(){return kl.Z},quadtree:function(){return el},quantile:function(){return me},quantileIndex:function(){return be},quantileSorted:function(){return ye},quantize:function(){return hv},quickselect:function(){return he},radialArea:function(){return lb},radialLine:function(){return ub},randomBates:function(){return kv},randomBernoulli:function(){return Tv},randomBeta:function(){return Dv},randomBinomial:function(){return jv},randomCauchy:function(){return Zv},randomExponential:function(){return Pv},randomGamma:function(){return Bv},randomGeometric:function(){return Iv},randomInt:function(){return Cv},randomIrwinHall:function(){return Mv},randomLcg:function(){return Uv},randomLogNormal:function(){return Av},randomLogistic:function(){return Nv},randomNormal:function(){return Ev},randomPareto:function(){return Rv},randomPoisson:function(){return Fv},randomUniform:function(){return Ov},randomWeibull:function(){return Lv},range:function(){return ke},rank:function(){return Pe},reduce:function(){return Ge},reverse:function(){return We},rgb:function(){return Zr.B8},ribbon:function(){return _i},ribbonArrow:function(){return Si},rollup:function(){return F},rollups:function(){return H},scaleBand:function(){return Gv.scaleBand},scaleDiverging:function(){return Gv.scaleDiverging},scaleDivergingLog:function(){return Gv.scaleDivergingLog},scaleDivergingPow:function(){return Gv.scaleDivergingPow},scaleDivergingSqrt:function(){return Gv.scaleDivergingSqrt},scaleDivergingSymlog:function(){return Gv.scaleDivergingSymlog},scaleIdentity:function(){return Gv.scaleIdentity},scaleImplicit:function(){return Gv.scaleImplicit},scaleLinear:function(){return Gv.scaleLinear},scaleLog:function(){return Gv.scaleLog},scaleOrdinal:function(){return Gv.scaleOrdinal},scalePoint:function(){return Gv.scalePoint},scalePow:function(){return Gv.scalePow},scaleQuantile:function(){return Gv.scaleQuantile},scaleQuantize:function(){return Gv.scaleQuantize},scaleRadial:function(){return Gv.scaleRadial},scaleSequential:function(){return Gv.scaleSequential},scaleSequentialLog:function(){return Gv.scaleSequentialLog},scaleSequentialPow:function(){return Gv.scaleSequentialPow},scaleSequentialQuantile:function(){return Gv.scaleSequentialQuantile},scaleSequentialSqrt:function(){return Gv.scaleSequentialSqrt},scaleSequentialSymlog:function(){return Gv.scaleSequentialSymlog},scaleSqrt:function(){return Gv.scaleSqrt},scaleSymlog:function(){return Gv.scaleSymlog},scaleThreshold:function(){return Gv.scaleThreshold},scaleTime:function(){return Gv.scaleTime},scaleUtc:function(){return Gv.scaleUtc},scan:function(){return Be},schemeAccent:function(){return qv},schemeBlues:function(){return Wm},schemeBrBG:function(){return om},schemeBuGn:function(){return _m},schemeBuPu:function(){return Om},schemeCategory10:function(){return $v},schemeDark2:function(){return Yv},schemeGnBu:function(){return Em},schemeGreens:function(){return qm},schemeGreys:function(){return Xm},schemeOrRd:function(){return Mm},schemeOranges:function(){return ny},schemePRGn:function(){return am},schemePaired:function(){return Xv},schemePastel1:function(){return Kv},schemePastel2:function(){return Jv},schemePiYG:function(){return um},schemePuBu:function(){return Tm},schemePuBuGn:function(){return Pm},schemePuOr:function(){return cm},schemePuRd:function(){return Bm},schemePurples:function(){return Jm},schemeRdBu:function(){return dm},schemeRdGy:function(){return hm},schemeRdPu:function(){return jm},schemeRdYlBu:function(){return vm},schemeRdYlGn:function(){return ym},schemeReds:function(){return ey},schemeSet1:function(){return Qv},schemeSet2:function(){return em},schemeSet3:function(){return tm},schemeSpectral:function(){return wm},schemeTableau10:function(){return nm},schemeYlGn:function(){return Fm},schemeYlGnBu:function(){return Zm},schemeYlOrBr:function(){return Vm},schemeYlOrRd:function(){return Um},select:function(){return Ln},selectAll:function(){return Cy},selection:function(){return jn},selector:function(){return Ot},selectorAll:function(){return At},shuffle:function(){return De},shuffler:function(){return je},some:function(){return Ve},sort:function(){return $},stack:function(){return Vw},stackOffsetDiverging:function(){return Uw},stackOffsetExpand:function(){return zw},stackOffsetNone:function(){return Zw},stackOffsetSilhouette:function(){return Gw},stackOffsetWiggle:function(){return Ww},stackOrderAppearance:function(){return $w},stackOrderAscending:function(){return Yw},stackOrderDescending:function(){return Kw},stackOrderInsideOut:function(){return Jw},stackOrderNone:function(){return Nw},stackOrderReverse:function(){return Qw},stratify:function(){return Ag},style:function(){return en},subset:function(){return Qe},sum:function(){return Le},superset:function(){return Ke},svg:function(){return qu},symbol:function(){return Yb},symbolAsterisk:function(){return Sb},symbolCircle:function(){return Ob},symbolCross:function(){return Cb},symbolDiamond:function(){return Mb},symbolDiamond2:function(){return kb},symbolPlus:function(){return Pb},symbolSquare:function(){return Rb},symbolSquare2:function(){return Tb},symbolStar:function(){return jb},symbolTimes:function(){return Wb},symbolTriangle:function(){return Zb},symbolTriangle2:function(){return Fb},symbolWye:function(){return Gb},symbolX:function(){return Wb},symbols:function(){return $b},symbolsFill:function(){return $b},symbolsStroke:function(){return qb},text:function(){return Lu},thresholdFreedmanDiaconis:function(){return we},thresholdScott:function(){return xe},thresholdSturges:function(){return ue},tickFormat:function(){return Gv.tickFormat},tickIncrement:function(){return ie},tickStep:function(){return ae},ticks:function(){return oe},timeDay:function(){return _x},timeDays:function(){return Sx},timeFormat:function(){return O_.i$},timeFormatDefaultLocale:function(){return O_.ZP},timeFormatLocale:function(){return C_.Z},timeFriday:function(){return Bx},timeFridays:function(){return Hx},timeHour:function(){return yx},timeHours:function(){return bx},timeInterval:function(){return nx},timeMillisecond:function(){return rx},timeMilliseconds:function(){return ox},timeMinute:function(){return hx},timeMinutes:function(){return gx},timeMonday:function(){return Px},timeMondays:function(){return Lx},timeMonth:function(){return o_},timeMonths:function(){return i_},timeParse:function(){return O_.Z1},timeSaturday:function(){return Dx},timeSaturdays:function(){return Vx},timeSecond:function(){return dx},timeSeconds:function(){return px},timeSunday:function(){return kx},timeSundays:function(){return jx},timeThursday:function(){return Ix},timeThursdays:function(){return Fx},timeTickInterval:function(){return S_},timeTicks:function(){return __},timeTuesday:function(){return Rx},timeTuesdays:function(){return Zx},timeWednesday:function(){return Tx},timeWednesdays:function(){return Nx},timeWeek:function(){return kx},timeWeeks:function(){return jx},timeYear:function(){return u_},timeYears:function(){return l_},timeout:function(){return dr},timer:function(){return sr},timerFlush:function(){return ur},transition:function(){return oo},transpose:function(){return Ze},tree:function(){return jg},treemap:function(){return Hg},treemapBinary:function(){return Vg},treemapDice:function(){return wg},treemapResquarify:function(){return Ug},treemapSlice:function(){return Lg},treemapSliceDice:function(){return zg},treemapSquarify:function(){return Fg},tsv:function(){return Hu},tsvFormat:function(){return Ns},tsvFormatBody:function(){return Fs},tsvFormatRow:function(){return Vs},tsvFormatRows:function(){return Hs},tsvFormatValue:function(){return zs},tsvParse:function(){return Ls},tsvParseRows:function(){return Zs},union:function(){return et},unixDay:function(){return Ex},unixDays:function(){return Ax},utcDay:function(){return Ox},utcDays:function(){return Cx},utcFormat:function(){return O_.g0},utcFriday:function(){return Yx},utcFridays:function(){return n_},utcHour:function(){return wx},utcHours:function(){return xx},utcMillisecond:function(){return rx},utcMilliseconds:function(){return ox},utcMinute:function(){return vx},utcMinutes:function(){return mx},utcMonday:function(){return Gx},utcMondays:function(){return Jx},utcMonth:function(){return a_},utcMonths:function(){return s_},utcParse:function(){return O_.wp},utcSaturday:function(){return Xx},utcSaturdays:function(){return r_},utcSecond:function(){return dx},utcSeconds:function(){return px},utcSunday:function(){return Ux},utcSundays:function(){return Kx},utcThursday:function(){return qx},utcThursdays:function(){return t_},utcTickInterval:function(){return x_},utcTicks:function(){return w_},utcTuesday:function(){return Wx},utcTuesdays:function(){return Qx},utcWednesday:function(){return $x},utcWednesdays:function(){return e_},utcWeek:function(){return Ux},utcWeeks:function(){return Kx},utcYear:function(){return c_},utcYears:function(){return f_},variance:function(){return A},window:function(){return Xt},xml:function(){return Wu},zip:function(){return Fe},zoom:function(){return G_},zoomIdentity:function(){return D_},zoomTransform:function(){return j_}});const l=i(r),c=l.right,f=l.left,d=i(s).center;var p=c;function h(e,t){if(!((t=+t)>=0))throw new RangeError("invalid r");let n=e.length;if(!((n=Math.floor(n))>=0))throw new RangeError("invalid length");if(!n||!t)return e;const r=w(t),o=e.slice();return r(e,o,0,n,1),r(o,e,0,n,1),r(e,o,0,n,1),e}const g=m(w),v=m((function(e){const t=w(e);return(e,n,r,o,i)=>{t(e,n,(r<<=2)+0,(o<<=2)+0,i<<=2),t(e,n,r+1,o+1,i),t(e,n,r+2,o+2,i),t(e,n,r+3,o+3,i)}}));function m(e){return function(t,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:a}=t;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!a||!n&&!r)return t;const s=n&&e(n),u=r&&e(r),l=o.slice();return s&&u?(y(s,l,o,i,a),y(s,o,l,i,a),y(s,l,o,i,a),b(u,o,l,i,a),b(u,l,o,i,a),b(u,o,l,i,a)):s?(y(s,o,l,i,a),y(s,l,o,i,a),y(s,o,l,i,a)):u&&(b(u,o,l,i,a),b(u,l,o,i,a),b(u,o,l,i,a)),t}}function y(e,t,n,r,o){for(let i=0,a=r*o;i<a;)e(t,n,i,i+=r,1)}function b(e,t,n,r,o){for(let i=0,a=r*o;i<r;++i)e(t,n,i,i+a,r)}function w(e){const t=Math.floor(e);if(t===e)return function(e){const t=2*e+1;return(n,r,o,i,a)=>{if(!((i-=a)>=o))return;let s=e*r[o];const u=a*e;for(let e=o,t=o+u;e<t;e+=a)s+=r[Math.min(i,e)];for(let e=o,l=i;e<=l;e+=a)s+=r[Math.min(i,e+u)],n[e]=s/t,s-=r[Math.max(o,e-u)]}}(e);const n=e-t,r=2*e+1;return(e,o,i,a,s)=>{if(!((a-=s)>=i))return;let u=t*o[i];const l=s*t,c=l+s;for(let t=i,n=i+l;t<n;t+=s)u+=o[Math.min(a,t)];for(let t=i,f=a;t<=f;t+=s)u+=o[Math.min(a,t+l)],e[t]=(u+n*(o[Math.max(i,t-c)]+o[Math.min(a,t+c)]))/r,u-=o[Math.max(i,t-l)]}}function x(e,t){let n=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&++n;else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&++n}return n}function _(e){return 0|e.length}function S(e){return!(e>0)}function O(e){return"object"!==typeof e||"length"in e?e:Array.from(e)}function C(...e){const t="function"===typeof e[e.length-1]&&function(e){return t=>e(...t)}(e.pop()),n=(e=e.map(O)).map(_),r=e.length-1,o=new Array(r+1).fill(0),i=[];if(r<0||n.some(S))return i;for(;;){i.push(o.map(((t,n)=>e[n][t])));let a=r;for(;++o[a]===n[a];){if(0===a)return t?i.map(t):i;o[a--]=0}}}function E(e,t){var n=0,r=0;return Float64Array.from(e,void 0===t?e=>n+=+e||0:o=>n+=+t(o,r++,e)||0)}function A(e,t){let n,r=0,o=0,i=0;if(void 0===t)for(let a of e)null!=a&&(a=+a)>=a&&(n=a-o,o+=n/++r,i+=n*(a-o));else{let a=-1;for(let s of e)null!=(s=t(s,++a,e))&&(s=+s)>=s&&(n=s-o,o+=n/++r,i+=n*(s-o))}if(r>1)return i/(r-1)}function M(e,t){const n=A(e,t);return n?Math.sqrt(n):n}function k(e,t){let n,r;if(void 0===t)for(const o of e)null!=o&&(void 0===n?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)));else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(void 0===n?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)))}return[n,r]}class P{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let r=0;r<this._n&&r<32;r++){const o=t[r],i=e+o,a=Math.abs(e)<Math.abs(o)?e-(i-o):o-(i-e);a&&(t[n++]=a),e=i}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,r,o=this._n,i=0;if(o>0){for(i=e[--o];o>0&&(t=i,n=e[--o],i=t+n,r=n-(i-t),!r););o>0&&(r<0&&e[o-1]<0||r>0&&e[o-1]>0)&&(n=2*r,t=i+n,n==t-i&&(i=t))}return i}}function R(e,t){const n=new P;if(void 0===t)for(let r of e)(r=+r)&&n.add(r);else{let r=-1;for(let o of e)(o=+t(o,++r,e))&&n.add(o)}return+n}function T(e,t){const n=new P;let r=-1;return Float64Array.from(e,void 0===t?e=>n.add(+e||0):o=>n.add(+t(o,++r,e)||0))}var I=n(909);function B(e){return e}function D(e,...t){return G(e,B,B,t)}function j(e,...t){return G(e,Array.from,B,t)}function L(e,t){for(let n=1,r=t.length;n<r;++n)e=e.flatMap((e=>e.pop().map((([t,n])=>[...e,t,n]))));return e}function Z(e,...t){return L(j(e,...t),t)}function N(e,t,...n){return L(H(e,t,...n),n)}function F(e,t,...n){return G(e,B,t,n)}function H(e,t,...n){return G(e,Array.from,t,n)}function V(e,...t){return G(e,B,U,t)}function z(e,...t){return G(e,Array.from,U,t)}function U(e){if(1!==e.length)throw new Error("duplicate key");return e[0]}function G(e,t,n,r){return function e(o,i){if(i>=r.length)return n(o);const a=new I.L,s=r[i++];let u=-1;for(const t of o){const e=s(t,++u,o),n=a.get(e);n?n.push(t):a.set(e,[t])}for(const[t,n]of a)a.set(t,e(n,i));return t(a)}(e,0)}function W(e,t){return Array.from(t,(t=>e[t]))}function $(e,...t){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");e=Array.from(e);let[n]=t;if(n&&2!==n.length||t.length>1){const r=Uint32Array.from(e,((e,t)=>t));return t.length>1?(t=t.map((t=>e.map(t))),r.sort(((e,n)=>{for(const r of t){const t=Y(r[e],r[n]);if(t)return t}}))):(n=e.map(n),r.sort(((e,t)=>Y(n[e],n[t])))),W(e,r)}return e.sort(q(n))}function q(e=r){if(e===r)return Y;if("function"!==typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}function Y(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function X(e,t,n){return(2!==t.length?$(F(e,t,n),(([e,t],[n,o])=>r(t,o)||r(e,n))):$(D(e,n),(([e,n],[o,i])=>t(n,i)||r(e,o)))).map((([e])=>e))}var K=Array.prototype,J=K.slice;K.map;function Q(e){return()=>e}const ee=Math.sqrt(50),te=Math.sqrt(10),ne=Math.sqrt(2);function re(e,t,n){const r=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),a=i>=ee?10:i>=te?5:i>=ne?2:1;let s,u,l;return o<0?(l=Math.pow(10,-o)/a,s=Math.round(e*l),u=Math.round(t*l),s/l<e&&++s,u/l>t&&--u,l=-l):(l=Math.pow(10,o)*a,s=Math.round(e/l),u=Math.round(t/l),s*l<e&&++s,u*l>t&&--u),u<s&&.5<=n&&n<2?re(e,t,2*n):[s,u,l]}function oe(e,t,n){if(!((n=+n)>0))return[];if((e=+e)===(t=+t))return[e];const r=t<e,[o,i,a]=r?re(t,e,n):re(e,t,n);if(!(i>=o))return[];const s=i-o+1,u=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)u[l]=(i-l)/-a;else for(let l=0;l<s;++l)u[l]=(i-l)*a;else if(a<0)for(let l=0;l<s;++l)u[l]=(o+l)/-a;else for(let l=0;l<s;++l)u[l]=(o+l)*a;return u}function ie(e,t,n){return re(e=+e,t=+t,n=+n)[2]}function ae(e,t,n){n=+n;const r=(t=+t)<(e=+e),o=r?ie(t,e,n):ie(e,t,n);return(r?-1:1)*(o<0?1/-o:o)}function se(e,t,n){let r;for(;;){const o=ie(e,t,n);if(o===r||0===o||!isFinite(o))return[e,t];o>0?(e=Math.floor(e/o)*o,t=Math.ceil(t/o)*o):o<0&&(e=Math.ceil(e*o)/o,t=Math.floor(t*o)/o),r=o}}function ue(e){return Math.max(1,Math.ceil(Math.log(x(e))/Math.LN2)+1)}function le(){var e=B,t=k,n=ue;function r(r){Array.isArray(r)||(r=Array.from(r));var o,i,a,s=r.length,u=new Array(s);for(o=0;o<s;++o)u[o]=e(r[o],o,r);var l=t(u),c=l[0],f=l[1],d=n(u,c,f);if(!Array.isArray(d)){const e=f,n=+d;if(t===k&&([c,f]=se(c,f,n)),(d=oe(c,f,n))[0]<=c&&(a=ie(c,f,n)),d[d.length-1]>=f)if(e>=f&&t===k){const e=ie(c,f,n);isFinite(e)&&(e>0?f=(Math.floor(f/e)+1)*e:e<0&&(f=(Math.ceil(f*-e)+1)/-e))}else d.pop()}for(var h=d.length,g=0,v=h;d[g]<=c;)++g;for(;d[v-1]>f;)--v;(g||v<h)&&(d=d.slice(g,v),h=v-g);var m,y=new Array(h+1);for(o=0;o<=h;++o)(m=y[o]=[]).x0=o>0?d[o-1]:c,m.x1=o<h?d[o]:f;if(isFinite(a)){if(a>0)for(o=0;o<s;++o)null!=(i=u[o])&&c<=i&&i<=f&&y[Math.min(h,Math.floor((i-c)/a))].push(r[o]);else if(a<0)for(o=0;o<s;++o)if(null!=(i=u[o])&&c<=i&&i<=f){const e=Math.floor((c-i)*a);y[Math.min(h,e+(d[e]<=i))].push(r[o])}}else for(o=0;o<s;++o)null!=(i=u[o])&&c<=i&&i<=f&&y[p(d,i,0,h)].push(r[o]);return y}return r.value=function(t){return arguments.length?(e="function"===typeof t?t:Q(t),r):e},r.domain=function(e){return arguments.length?(t="function"===typeof e?e:Q([e[0],e[1]]),r):t},r.thresholds=function(e){return arguments.length?(n="function"===typeof e?e:Q(Array.isArray(e)?J.call(e):e),r):n},r}function ce(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n<r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}function fe(e,t){let n,r=-1,o=-1;if(void 0===t)for(const i of e)++o,null!=i&&(n<i||void 0===n&&i>=i)&&(n=i,r=o);else for(let i of e)null!=(i=t(i,++o,e))&&(n<i||void 0===n&&i>=i)&&(n=i,r=o);return r}function de(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n>r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}function pe(e,t){let n,r=-1,o=-1;if(void 0===t)for(const i of e)++o,null!=i&&(n>i||void 0===n&&i>=i)&&(n=i,r=o);else for(let i of e)null!=(i=t(i,++o,e))&&(n>i||void 0===n&&i>=i)&&(n=i,r=o);return r}function he(e,t,n=0,r=1/0,o){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(o=void 0===o?Y:q(o);r>n;){if(r-n>600){const i=r-n+1,a=t-n+1,s=Math.log(i),u=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*u*(i-u)/i)*(a-i/2<0?-1:1);he(e,t,Math.max(n,Math.floor(t-a*u/i+l)),Math.min(r,Math.floor(t+(i-a)*u/i+l)),o)}const i=e[t];let a=n,s=r;for(ge(e,n,t),o(e[r],i)>0&&ge(e,n,r);a<s;){for(ge(e,a,s),++a,--s;o(e[a],i)<0;)++a;for(;o(e[s],i)>0;)--s}0===o(e[n],i)?ge(e,n,s):(++s,ge(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function ge(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function ve(e,t=r){let n,o=!1;if(1===t.length){let i;for(const a of e){const e=t(a);(o?r(e,i)>0:0===r(e,e))&&(n=a,i=e,o=!0)}}else for(const r of e)(o?t(r,n)>0:0===t(r,r))&&(n=r,o=!0);return n}function me(e,t,n){if((r=(e=Float64Array.from(u(e,n))).length)&&!isNaN(t=+t)){if(t<=0||r<2)return de(e);if(t>=1)return ce(e);var r,o=(r-1)*t,i=Math.floor(o),a=ce(he(e,i).subarray(0,i+1));return a+(de(e.subarray(i+1))-a)*(o-i)}}function ye(e,t,n=s){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,o=(r-1)*t,i=Math.floor(o),a=+n(e[i],i,e);return a+(+n(e[i+1],i+1,e)-a)*(o-i)}}function be(e,t,n){if((r=(e=Float64Array.from(u(e,n))).length)&&!isNaN(t=+t)){if(t<=0||r<2)return pe(e);if(t>=1)return fe(e);var r,o=Math.floor((r-1)*t),i=he(Uint32Array.from(e,((e,t)=>t)),o,0,r-1,((t,n)=>Y(e[t],e[n])));return ve(i.subarray(0,o+1),(t=>e[t]))}}function we(e,t,n){const r=x(e),o=me(e,.75)-me(e,.25);return r&&o?Math.ceil((n-t)/(2*o*Math.pow(r,-1/3))):1}function xe(e,t,n){const r=x(e),o=M(e);return r&&o?Math.ceil((n-t)*Math.cbrt(r)/(3.49*o)):1}function _e(e,t){let n=0,r=0;if(void 0===t)for(let o of e)null!=o&&(o=+o)>=o&&(++n,r+=o);else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(i=+i)>=i&&(++n,r+=i)}if(n)return r/n}function Se(e,t){return me(e,.5,t)}function Oe(e,t){return be(e,.5,t)}function Ce(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function Ee(e,t){const n=new I.L;if(void 0===t)for(let i of e)null!=i&&i>=i&&n.set(i,(n.get(i)||0)+1);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&o>=o&&n.set(o,(n.get(o)||0)+1)}let r,o=0;for(const[i,a]of n)a>o&&(o=a,r=i);return r}function Ae(e,t=Me){const n=[];let r,o=!1;for(const i of e)o&&n.push(t(r,i)),r=i,o=!0;return n}function Me(e,t){return[e,t]}function ke(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(o);++r<o;)i[r]=e+r*n;return i}function Pe(e,t=r){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");let n=Array.from(e);const o=new Float64Array(n.length);2!==t.length&&(n=n.map(t),t=r);const i=(e,r)=>t(n[e],n[r]);let a,s;return(e=Uint32Array.from(n,((e,t)=>t))).sort(t===r?(e,t)=>Y(n[e],n[t]):q(i)),e.forEach(((e,t)=>{const n=i(e,void 0===a?e:a);n>=0?((void 0===a||n>0)&&(a=e,s=t),o[e]=s):o[e]=NaN})),o}function Re(e,t=r){let n,o=!1;if(1===t.length){let i;for(const a of e){const e=t(a);(o?r(e,i)<0:0===r(e,e))&&(n=a,i=e,o=!0)}}else for(const r of e)(o?t(r,n)<0:0===t(r,r))&&(n=r,o=!0);return n}function Te(e,t=r){if(1===t.length)return pe(e,t);let n,o=-1,i=-1;for(const r of e)++i,(o<0?0===t(r,r):t(r,n)<0)&&(n=r,o=i);return o}function Ie(e,t=r){if(1===t.length)return fe(e,t);let n,o=-1,i=-1;for(const r of e)++i,(o<0?0===t(r,r):t(r,n)>0)&&(n=r,o=i);return o}function Be(e,t){const n=Te(e,t);return n<0?void 0:n}var De=je(Math.random);function je(e){return function(t,n=0,r=t.length){let o=r-(n=+n);for(;o;){const r=e()*o--|0,i=t[o+n];t[o+n]=t[r+n],t[r+n]=i}return t}}function Le(e,t){let n=0;if(void 0===t)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let o of e)(o=+t(o,++r,e))&&(n+=o)}return n}function Ze(e){if(!(o=e.length))return[];for(var t=-1,n=de(e,Ne),r=new Array(n);++t<n;)for(var o,i=-1,a=r[t]=new Array(o);++i<o;)a[i]=e[i][t];return r}function Ne(e){return e.length}function Fe(){return Ze(arguments)}function He(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");let n=-1;for(const r of e)if(!t(r,++n,e))return!1;return!0}function Ve(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");let n=-1;for(const r of e)if(t(r,++n,e))return!0;return!1}function ze(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");const n=[];let r=-1;for(const o of e)t(o,++r,e)&&n.push(o);return n}function Ue(e,t){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!==typeof t)throw new TypeError("mapper is not a function");return Array.from(e,((n,r)=>t(n,r,e)))}function Ge(e,t,n){if("function"!==typeof t)throw new TypeError("reducer is not a function");const r=e[Symbol.iterator]();let o,i,a=-1;if(arguments.length<3){if(({done:o,value:n}=r.next()),o)return;++a}for(;({done:o,value:i}=r.next()),!o;)n=t(n,i,++a,e);return n}function We(e){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(e).reverse()}function $e(e,...t){e=new I.H(e);for(const n of t)for(const t of n)e.delete(t);return e}function qe(e,t){const n=t[Symbol.iterator](),r=new I.H;for(const o of e){if(r.has(o))return!1;let e,t;for(;({value:e,done:t}=n.next())&&!t;){if(Object.is(o,e))return!1;r.add(e)}}return!0}function Ye(e,...t){e=new I.H(e),t=t.map(Xe);e:for(const n of e)for(const r of t)if(!r.has(n)){e.delete(n);continue e}return e}function Xe(e){return e instanceof I.H?e:new I.H(e)}function Ke(e,t){const n=e[Symbol.iterator](),r=new Set;for(const o of t){const e=Je(o);if(r.has(e))continue;let t,i;for(;({value:t,done:i}=n.next());){if(i)return!1;const n=Je(t);if(r.add(n),Object.is(e,n))break}}return!0}function Je(e){return null!==e&&"object"===typeof e?e.valueOf():e}function Qe(e,t){return Ke(t,e)}function et(...e){const t=new I.H;for(const n of e)for(const e of n)t.add(e);return t}function tt(e){return e}var nt=1,rt=2,ot=3,it=4,at=1e-6;function st(e){return"translate("+e+",0)"}function ut(e){return"translate(0,"+e+")"}function lt(e){return t=>+e(t)}function ct(e,t){return t=Math.max(0,e.bandwidth()-2*t)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function ft(){return!this.__axis}function dt(e,t){var n=[],r=null,o=null,i=6,a=6,s=3,u="undefined"!==typeof window&&window.devicePixelRatio>1?0:.5,l=e===nt||e===it?-1:1,c=e===it||e===rt?"x":"y",f=e===nt||e===ot?st:ut;function d(d){var p=null==r?t.ticks?t.ticks.apply(t,n):t.domain():r,h=null==o?t.tickFormat?t.tickFormat.apply(t,n):tt:o,g=Math.max(i,0)+s,v=t.range(),m=+v[0]+u,y=+v[v.length-1]+u,b=(t.bandwidth?ct:lt)(t.copy(),u),w=d.selection?d.selection():d,x=w.selectAll(".domain").data([null]),_=w.selectAll(".tick").data(p,t).order(),S=_.exit(),O=_.enter().append("g").attr("class","tick"),C=_.select("line"),E=_.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),_=_.merge(O),C=C.merge(O.append("line").attr("stroke","currentColor").attr(c+"2",l*i)),E=E.merge(O.append("text").attr("fill","currentColor").attr(c,l*g).attr("dy",e===nt?"0em":e===ot?"0.71em":"0.32em")),d!==w&&(x=x.transition(d),_=_.transition(d),C=C.transition(d),E=E.transition(d),S=S.transition(d).attr("opacity",at).attr("transform",(function(e){return isFinite(e=b(e))?f(e+u):this.getAttribute("transform")})),O.attr("opacity",at).attr("transform",(function(e){var t=this.parentNode.__axis;return f((t&&isFinite(t=t(e))?t:b(e))+u)}))),S.remove(),x.attr("d",e===it||e===rt?a?"M"+l*a+","+m+"H"+u+"V"+y+"H"+l*a:"M"+u+","+m+"V"+y:a?"M"+m+","+l*a+"V"+u+"H"+y+"V"+l*a:"M"+m+","+u+"H"+y),_.attr("opacity",1).attr("transform",(function(e){return f(b(e)+u)})),C.attr(c+"2",l*i),E.attr(c,l*g).text(h),w.filter(ft).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",e===rt?"start":e===it?"end":"middle"),w.each((function(){this.__axis=b}))}return d.scale=function(e){return arguments.length?(t=e,d):t},d.ticks=function(){return n=Array.from(arguments),d},d.tickArguments=function(e){return arguments.length?(n=null==e?[]:Array.from(e),d):n.slice()},d.tickValues=function(e){return arguments.length?(r=null==e?null:Array.from(e),d):r&&r.slice()},d.tickFormat=function(e){return arguments.length?(o=e,d):o},d.tickSize=function(e){return arguments.length?(i=a=+e,d):i},d.tickSizeInner=function(e){return arguments.length?(i=+e,d):i},d.tickSizeOuter=function(e){return arguments.length?(a=+e,d):a},d.tickPadding=function(e){return arguments.length?(s=+e,d):s},d.offset=function(e){return arguments.length?(u=+e,d):u},d}function pt(e){return dt(nt,e)}function ht(e){return dt(rt,e)}function gt(e){return dt(ot,e)}function vt(e){return dt(it,e)}var mt={value:()=>{}};function yt(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new bt(r)}function bt(e){this._=e}function wt(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}function xt(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=mt,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}bt.prototype=yt.prototype={constructor:bt,on:function(e,t){var n,r,o=this._,i=(r=o,(e+"").trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!==typeof t)throw new Error("invalid callback: "+t);for(;++a<s;)if(n=(e=i[a]).type)o[n]=xt(o[n],e.name,t);else if(null==t)for(n in o)o[n]=xt(o[n],e.name,null);return this}for(;++a<s;)if((n=(e=i[a]).type)&&(n=wt(o[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new bt(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,o=new Array(n),i=0;i<n;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(r=this._[e]).length;i<n;++i)r[i].value.apply(t,o)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};var _t=yt;function St(){}function Ot(e){return null==e?St:function(){return this.querySelector(e)}}function Ct(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function Et(){return[]}function At(e){return null==e?Et:function(){return this.querySelectorAll(e)}}function Mt(e){return function(){return this.matches(e)}}function kt(e){return function(t){return t.matches(e)}}var Pt=Array.prototype.find;function Rt(){return this.firstElementChild}var Tt=Array.prototype.filter;function It(){return Array.from(this.children)}function Bt(e){return new Array(e.length)}function Dt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function jt(e,t,n,r,o,i){for(var a,s=0,u=t.length,l=i.length;s<l;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new Dt(e,i[s]);for(;s<u;++s)(a=t[s])&&(o[s]=a)}function Lt(e,t,n,r,o,i,a){var s,u,l,c=new Map,f=t.length,d=i.length,p=new Array(f);for(s=0;s<f;++s)(u=t[s])&&(p[s]=l=a.call(u,u.__data__,s,t)+"",c.has(l)?o[s]=u:c.set(l,u));for(s=0;s<d;++s)l=a.call(e,i[s],s,i)+"",(u=c.get(l))?(r[s]=u,u.__data__=i[s],c.delete(l)):n[s]=new Dt(e,i[s]);for(s=0;s<f;++s)(u=t[s])&&c.get(p[s])===u&&(o[s]=u)}function Zt(e){return e.__data__}function Nt(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function Ft(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}Dt.prototype={constructor:Dt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var Ht="http://www.w3.org/1999/xhtml",Vt={svg:"http://www.w3.org/2000/svg",xhtml:Ht,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function zt(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),Vt.hasOwnProperty(t)?{space:Vt[t],local:e}:e}function Ut(e){return function(){this.removeAttribute(e)}}function Gt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Wt(e,t){return function(){this.setAttribute(e,t)}}function $t(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function qt(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function Yt(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Xt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Kt(e){return function(){this.style.removeProperty(e)}}function Jt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Qt(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function en(e,t){return e.style.getPropertyValue(t)||Xt(e).getComputedStyle(e,null).getPropertyValue(t)}function tn(e){return function(){delete this[e]}}function nn(e,t){return function(){this[e]=t}}function rn(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function on(e){return e.trim().split(/^|\s+/)}function an(e){return e.classList||new sn(e)}function sn(e){this._node=e,this._names=on(e.getAttribute("class")||"")}function un(e,t){for(var n=an(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function ln(e,t){for(var n=an(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function cn(e){return function(){un(this,e)}}function fn(e){return function(){ln(this,e)}}function dn(e,t){return function(){(t.apply(this,arguments)?un:ln)(this,e)}}function pn(){this.textContent=""}function hn(e){return function(){this.textContent=e}}function gn(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function vn(){this.innerHTML=""}function mn(e){return function(){this.innerHTML=e}}function yn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function bn(){this.nextSibling&&this.parentNode.appendChild(this)}function wn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function xn(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Ht&&t.documentElement.namespaceURI===Ht?t.createElement(e):t.createElementNS(n,e)}}function _n(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Sn(e){var t=zt(e);return(t.local?_n:xn)(t)}function On(){return null}function Cn(){var e=this.parentNode;e&&e.removeChild(this)}function En(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function An(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Mn(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r<i;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++o]=n:this.removeEventListener(n.type,n.listener,n.options);++o?t.length=o:delete this.__on}}}function kn(e,t,n){return function(){var r,o=this.__on,i=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(o)for(var a=0,s=o.length;a<s;++a)if((r=o[a]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=t);this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function Pn(e,t,n){var r=Xt(e),o=r.CustomEvent;"function"===typeof o?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function Rn(e,t){return function(){return Pn(this,e,t)}}function Tn(e,t){return function(){return Pn(this,e,t.apply(this,arguments))}}sn.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var In=[null];function Bn(e,t){this._groups=e,this._parents=t}function Dn(){return new Bn([[document.documentElement]],In)}Bn.prototype=Dn.prototype={constructor:Bn,select:function(e){"function"!==typeof e&&(e=Ot(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a,s=t[o],u=s.length,l=r[o]=new Array(u),c=0;c<u;++c)(i=s[c])&&(a=e.call(i,i.__data__,c,s))&&("__data__"in i&&(a.__data__=i.__data__),l[c]=a);return new Bn(r,this._parents)},selectAll:function(e){e="function"===typeof e?function(e){return function(){return Ct(e.apply(this,arguments))}}(e):At(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var a,s=t[i],u=s.length,l=0;l<u;++l)(a=s[l])&&(r.push(e.call(a,a.__data__,l,s)),o.push(a));return new Bn(r,o)},selectChild:function(e){return this.select(null==e?Rt:function(e){return function(){return Pt.call(this.children,e)}}("function"===typeof e?e:kt(e)))},selectChildren:function(e){return this.selectAll(null==e?It:function(e){return function(){return Tt.call(this.children,e)}}("function"===typeof e?e:kt(e)))},filter:function(e){"function"!==typeof e&&(e=Mt(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,u=r[o]=[],l=0;l<s;++l)(i=a[l])&&e.call(i,i.__data__,l,a)&&u.push(i);return new Bn(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,Zt);var n=t?Lt:jt,r=this._parents,o=this._groups;"function"!==typeof e&&(e=function(e){return function(){return e}}(e));for(var i=o.length,a=new Array(i),s=new Array(i),u=new Array(i),l=0;l<i;++l){var c=r[l],f=o[l],d=f.length,p=Nt(e.call(c,c&&c.__data__,l,r)),h=p.length,g=s[l]=new Array(h),v=a[l]=new Array(h);n(c,f,g,v,u[l]=new Array(d),p,t);for(var m,y,b=0,w=0;b<h;++b)if(m=g[b]){for(b>=w&&(w=b+1);!(y=v[w])&&++w<h;);m._next=y||null}}return(a=new Bn(a,r))._enter=s,a._exit=u,a},enter:function(){return new Bn(this._enter||this._groups.map(Bt),this._parents)},exit:function(){return new Bn(this._exit||this._groups.map(Bt),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"===typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),u=0;u<a;++u)for(var l,c=n[u],f=r[u],d=c.length,p=s[u]=new Array(d),h=0;h<d;++h)(l=c[h]||f[h])&&(p[h]=l);for(;u<o;++u)s[u]=n[u];return new Bn(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,o=e[t],i=o.length-1,a=o[i];--i>=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=Ft);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var a,s=n[i],u=s.length,l=o[i]=new Array(u),c=0;c<u;++c)(a=s[c])&&(l[c]=a);l.sort(t)}return new Bn(o,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null},size:function(){let e=0;for(const t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o,i=t[n],a=0,s=i.length;a<s;++a)(o=i[a])&&e.call(o,o.__data__,a,i);return this},attr:function(e,t){var n=zt(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?Gt:Ut:"function"===typeof t?n.local?Yt:qt:n.local?$t:Wt)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Kt:"function"===typeof t?Qt:Jt)(e,t,null==n?"":n)):en(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?tn:"function"===typeof t?rn:nn)(e,t)):this.node()[e]},classed:function(e,t){var n=on(e+"");if(arguments.length<2){for(var r=an(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"===typeof t?dn:t?cn:fn)(n,t))},text:function(e){return arguments.length?this.each(null==e?pn:("function"===typeof e?gn:hn)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?vn:("function"===typeof e?yn:mn)(e)):this.node().innerHTML},raise:function(){return this.each(bn)},lower:function(){return this.each(wn)},append:function(e){var t="function"===typeof e?e:Sn(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"===typeof e?e:Sn(e),r=null==t?On:"function"===typeof t?t:Ot(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(Cn)},clone:function(e){return this.select(e?An:En)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,o,i=function(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?kn:Mn,r=0;r<a;++r)this.each(s(i[r],t,n));return this}var s=this.node().__on;if(s)for(var u,l=0,c=s.length;l<c;++l)for(r=0,u=s[l];r<a;++r)if((o=i[r]).type===u.type&&o.name===u.name)return u.value},dispatch:function(e,t){return this.each(("function"===typeof t?Tn:Rn)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,o=e[t],i=0,a=o.length;i<a;++i)(r=o[i])&&(yield r)}};var jn=Dn;function Ln(e){return"string"===typeof e?new Bn([[document.querySelector(e)]],[document.documentElement]):new Bn([[e]],In)}const Zn={passive:!1},Nn={capture:!0,passive:!1};function Fn(e){e.stopImmediatePropagation()}function Hn(e){e.preventDefault(),e.stopImmediatePropagation()}function Vn(e){var t=e.document.documentElement,n=Ln(e).on("dragstart.drag",Hn,Nn);"onselectstart"in t?n.on("selectstart.drag",Hn,Nn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function zn(e,t){var n=e.document.documentElement,r=Ln(e).on("dragstart.drag",null);t&&(r.on("click.drag",Hn,Nn),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Un=n(45326);function Gn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Wn(e,t){if(e=Gn(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}var $n,qn,Yn=0,Xn=0,Kn=0,Jn=1e3,Qn=0,er=0,tr=0,nr="object"===typeof performance&&performance.now?performance:Date,rr="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function or(){return er||(rr(ir),er=nr.now()+tr)}function ir(){er=0}function ar(){this._call=this._time=this._next=null}function sr(e,t,n){var r=new ar;return r.restart(e,t,n),r}function ur(){or(),++Yn;for(var e,t=$n;t;)(e=er-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Yn}function lr(){er=(Qn=nr.now())+tr,Yn=Xn=0;try{ur()}finally{Yn=0,function(){var e,t,n=$n,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:$n=t);qn=e,fr(r)}(),er=0}}function cr(){var e=nr.now(),t=e-Qn;t>Jn&&(tr-=t,Qn=e)}function fr(e){Yn||(Xn&&(Xn=clearTimeout(Xn)),e-er>24?(e<1/0&&(Xn=setTimeout(lr,e-nr.now()-tr)),Kn&&(Kn=clearInterval(Kn))):(Kn||(Qn=nr.now(),Kn=setInterval(cr,Jn)),Yn=1,rr(lr)))}function dr(e,t,n){var r=new ar;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}ar.prototype=sr.prototype={constructor:ar,restart:function(e,t,n){if("function"!==typeof e)throw new TypeError("callback is not a function");n=(null==n?or():+n)+(null==t?0:+t),this._next||qn===this||(qn?qn._next=this:$n=this,qn=this),this._call=e,this._time=n,fr()},stop:function(){this._call&&(this._call=null,this._time=1/0,fr())}};var pr=_t("start","end","cancel","interrupt"),hr=[],gr=0,vr=1,mr=2,yr=3,br=4,wr=5,xr=6;function _r(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(e){n.state=vr,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(i){var l,c,f,d;if(n.state!==vr)return u();for(l in o)if((d=o[l]).name===n.name){if(d.state===yr)return dr(a);d.state===br?(d.state=xr,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete o[l]):+l<t&&(d.state=xr,d.timer.stop(),d.on.call("cancel",e,e.__data__,d.index,d.group),delete o[l])}if(dr((function(){n.state===yr&&(n.state=br,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=mr,n.on.call("start",e,e.__data__,n.index,n.group),n.state===mr){for(n.state=yr,r=new Array(f=n.tween.length),l=0,c=-1;l<f;++l)(d=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(r[++c]=d);r.length=c+1}}function s(t){for(var o=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(u),n.state=wr,1),i=-1,a=r.length;++i<a;)r[i].call(e,o);n.state===wr&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){for(var r in n.state=xr,n.timer.stop(),delete o[t],o)return;delete e.__transition}o[t]=n,n.timer=sr(i,0,n.time)}(e,n,{name:t,index:r,group:o,on:pr,tween:hr,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:gr})}function Sr(e,t){var n=Cr(e,t);if(n.state>gr)throw new Error("too late; already scheduled");return n}function Or(e,t){var n=Cr(e,t);if(n.state>yr)throw new Error("too late; already running");return n}function Cr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Er(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>mr&&n.state<wr,n.state=xr,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[o]):a=!1;a&&delete e.__transition}}var Ar,Mr=n(68063),kr=180/Math.PI,Pr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Rr(e,t,n,r,o,i){var a,s,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,u/=s),e*r<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*kr,skewX:Math.atan(u)*kr,scaleX:a,scaleY:s}}function Tr(e,t,n,r){function o(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],u=[];return i=e(i),a=e(a),function(e,r,o,i,a,s){if(e!==o||r!==i){var u=a.push("translate(",null,t,null,n);s.push({i:u-4,x:(0,Mr.Z)(e,o)},{i:u-2,x:(0,Mr.Z)(r,i)})}else(o||i)&&a.push("translate("+o+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,u),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:(0,Mr.Z)(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,u),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:(0,Mr.Z)(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,u),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:(0,Mr.Z)(e,n)},{i:s-2,x:(0,Mr.Z)(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,u),i=a=null,function(e){for(var t,n=-1,r=u.length;++n<r;)s[(t=u[n]).i]=t.x(e);return s.join("")}}}var Ir=Tr((function(e){const t=new("function"===typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Pr:Rr(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),Br=Tr((function(e){return null==e?Pr:(Ar||(Ar=document.createElementNS("http://www.w3.org/2000/svg","g")),Ar.setAttribute("transform",e),(e=Ar.transform.baseVal.consolidate())?Rr((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Pr)}),", ",")",")");function Dr(e,t){var n,r;return function(){var o=Or(this,e),i=o.tween;if(i!==n)for(var a=0,s=(r=n=i).length;a<s;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}o.tween=r}}function jr(e,t,n){var r,o;if("function"!==typeof n)throw new Error;return function(){var i=Or(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var s={name:t,value:n},u=0,l=o.length;u<l;++u)if(o[u].name===t){o[u]=s;break}u===l&&o.push(s)}i.tween=o}}function Lr(e,t,n){var r=e._id;return e.each((function(){var e=Or(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return Cr(e,r).value[t]}}var Zr=n(4447),Nr=n(6354),Fr=n(16773);function Hr(e,t){var n;return("number"===typeof t?Mr.Z:t instanceof Zr.ZP?Nr.ZP:(n=(0,Zr.ZP)(t))?(t=n,Nr.ZP):Fr.Z)(e,t)}function Vr(e){return function(){this.removeAttribute(e)}}function zr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ur(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===r?o:o=t(r=a,n)}}function Gr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===r?o:o=t(r=a,n)}}function Wr(e,t,n){var r,o,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(e))===(s=u+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,u));this.removeAttribute(e)}}function $r(e,t,n){var r,o,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(e.space,e.local))===(s=u+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,u));this.removeAttributeNS(e.space,e.local)}}function qr(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Yr(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Xr(e,t){return function(){Sr(this,e).delay=+t.apply(this,arguments)}}function Kr(e,t){return t=+t,function(){Sr(this,e).delay=t}}function Jr(e,t){return function(){Or(this,e).duration=+t.apply(this,arguments)}}function Qr(e,t){return t=+t,function(){Or(this,e).duration=t}}var eo=jn.prototype.constructor;function to(e){return function(){this.style.removeProperty(e)}}var no=0;function ro(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function oo(e){return jn().transition(e)}function io(){return++no}var ao=jn.prototype;function so(e){return e*e*e}function uo(e){return--e*e*e+1}function lo(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}ro.prototype=oo.prototype={constructor:ro,select:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=Ot(e));for(var r=this._groups,o=r.length,i=new Array(o),a=0;a<o;++a)for(var s,u,l=r[a],c=l.length,f=i[a]=new Array(c),d=0;d<c;++d)(s=l[d])&&(u=e.call(s,s.__data__,d,l))&&("__data__"in s&&(u.__data__=s.__data__),f[d]=u,_r(f[d],t,n,d,f,Cr(s,n)));return new ro(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=At(e));for(var r=this._groups,o=r.length,i=[],a=[],s=0;s<o;++s)for(var u,l=r[s],c=l.length,f=0;f<c;++f)if(u=l[f]){for(var d,p=e.call(u,u.__data__,f,l),h=Cr(u,n),g=0,v=p.length;g<v;++g)(d=p[g])&&_r(d,t,n,g,p,h);i.push(p),a.push(u)}return new ro(i,a,t,n)},selectChild:ao.selectChild,selectChildren:ao.selectChildren,filter:function(e){"function"!==typeof e&&(e=Mt(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,u=r[o]=[],l=0;l<s;++l)(i=a[l])&&e.call(i,i.__data__,l,a)&&u.push(i);return new ro(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s<i;++s)for(var u,l=t[s],c=n[s],f=l.length,d=a[s]=new Array(f),p=0;p<f;++p)(u=l[p]||c[p])&&(d[p]=u);for(;s<r;++s)a[s]=t[s];return new ro(a,this._parents,this._name,this._id)},selection:function(){return new eo(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=io(),r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],u=s.length,l=0;l<u;++l)if(a=s[l]){var c=Cr(a,t);_r(a,e,n,l,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new ro(r,this._parents,e,n)},call:ao.call,nodes:ao.nodes,node:ao.node,size:ao.size,empty:ao.empty,each:ao.each,on:function(e,t){var n=this._id;return arguments.length<2?Cr(this.node(),n).on.on(e):this.each(function(e,t,n){var r,o,i=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?Sr:Or;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=zt(e),r="transform"===n?Br:Hr;return this.attrTween(e,"function"===typeof t?(n.local?$r:Wr)(n,r,Lr(this,"attr."+e,t)):null==t?(n.local?zr:Vr)(n):(n.local?Gr:Ur)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!==typeof t)throw new Error;var r=zt(e);return this.tween(n,(r.local?qr:Yr)(r,t))},style:function(e,t,n){var r="transform"===(e+="")?Ir:Hr;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=en(this,e),a=(this.style.removeProperty(e),en(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,to(e)):"function"===typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=en(this,e),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(e),u=s=en(this,e)),a===u?null:a===r&&u===o?i:(o=u,i=t(r=a,s))}}(e,r,Lr(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var u=Or(this,e),l=u.on,c=null==u.value[a]?i||(i=to(t)):void 0;l===n&&o===c||(r=(n=l).copy()).on(s,o=c),u.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=en(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!==typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"===typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(Lr(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!==typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=Cr(this.node(),n).tween,i=0,a=o.length;i<a;++i)if((r=o[i]).name===e)return r.value;return null}return this.each((null==t?Dr:jr)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Xr:Kr)(t,e)):Cr(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Jr:Qr)(t,e)):Cr(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!==typeof t)throw new Error;return function(){Or(this,e).ease=t}}(t,e)):Cr(this.node(),t).ease},easeVarying:function(e){if("function"!==typeof e)throw new Error;return this.each(function(e,t){return function(){var n=t.apply(this,arguments);if("function"!==typeof n)throw new Error;Or(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,r=n._id,o=n.size();return new Promise((function(i,a){var s={value:a},u={value:function(){0===--o&&i()}};n.each((function(){var n=Or(this,r),o=n.on;o!==e&&((t=(e=o).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(u)),n.on=t})),0===o&&i()}))},[Symbol.iterator]:ao[Symbol.iterator]};var co={time:null,delay:0,duration:250,ease:lo};function fo(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}jn.prototype.interrupt=function(e){return this.each((function(){Er(this,e)}))},jn.prototype.transition=function(e){var t,n;e instanceof ro?(t=e._id,e=e._name):(t=io(),(n=co).time=or(),e=null==e?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],u=s.length,l=0;l<u;++l)(a=s[l])&&_r(a,e,t,l,s,n||fo(a,t));return new ro(r,this._parents,e,t)};var po=[null];function ho(e,t){var n,r,o=e.__transition;if(o)for(r in t=null==t?null:t+"",o)if((n=o[r]).state>vr&&n.name===t)return new ro([[e]],po,t,+r);return null}var go=e=>()=>e;function vo(e,{sourceEvent:t,target:n,selection:r,mode:o,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:o,enumerable:!0,configurable:!0},_:{value:i}})}function mo(e){e.preventDefault(),e.stopImmediatePropagation()}var yo={name:"drag"},bo={name:"space"},wo={name:"handle"},xo={name:"center"};const{abs:_o,max:So,min:Oo}=Math;function Co(e){return[+e[0],+e[1]]}function Eo(e){return[Co(e[0]),Co(e[1])]}var Ao={name:"x",handles:["w","e"].map(Do),input:function(e,t){return null==e?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}},Mo={name:"y",handles:["n","s"].map(Do),input:function(e,t){return null==e?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}},ko={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(Do),input:function(e){return null==e?null:Eo(e)},output:function(e){return e}},Po={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ro={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},To={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Io={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Bo={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function Do(e){return{type:e}}function jo(e){return!e.ctrlKey&&!e.button}function Lo(){var e=this.ownerSVGElement||this;return e.hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function Zo(){return navigator.maxTouchPoints||"ontouchstart"in this}function No(e){for(;!e.__brush;)if(!(e=e.parentNode))return;return e.__brush}function Fo(e){var t=e.__brush;return t?t.dim.output(t.selection):null}function Ho(){return Uo(Ao)}function Vo(){return Uo(Mo)}function zo(){return Uo(ko)}function Uo(e){var t,n=Lo,r=jo,o=Zo,i=!0,a=_t("start","brush","end"),s=6;function u(t){var n=t.property("__brush",g).selectAll(".overlay").data([Do("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Po.overlay).merge(n).each((function(){var e=No(this).extent;Ln(this).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1])})),t.selectAll(".selection").data([Do("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Po.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=t.selectAll(".handle").data(e.handles,(function(e){return e.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(e){return"handle handle--"+e.type})).attr("cursor",(function(e){return Po[e.type]})),t.each(l).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",d).filter(o).on("touchstart.brush",d).on("touchmove.brush",p).on("touchend.brush touchcancel.brush",h).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function l(){var e=Ln(this),t=No(this).selection;t?(e.selectAll(".selection").style("display",null).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1]),e.selectAll(".handle").style("display",null).attr("x",(function(e){return"e"===e.type[e.type.length-1]?t[1][0]-s/2:t[0][0]-s/2})).attr("y",(function(e){return"s"===e.type[0]?t[1][1]-s/2:t[0][1]-s/2})).attr("width",(function(e){return"n"===e.type||"s"===e.type?t[1][0]-t[0][0]+s:s})).attr("height",(function(e){return"e"===e.type||"w"===e.type?t[1][1]-t[0][1]+s:s}))):e.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function c(e,t,n){var r=e.__brush.emitter;return!r||n&&r.clean?new f(e,t,n):r}function f(e,t,n){this.that=e,this.args=t,this.state=e.__brush,this.active=0,this.clean=n}function d(n){if((!t||n.touches)&&r.apply(this,arguments)){var o,a,s,u,f,d,p,h,g,v,m,y=this,b=n.target.__data__.type,w="selection"===(i&&n.metaKey?b="overlay":b)?yo:i&&n.altKey?xo:wo,x=e===Mo?null:Io[b],_=e===Ao?null:Bo[b],S=No(y),O=S.extent,C=S.selection,E=O[0][0],A=O[0][1],M=O[1][0],k=O[1][1],P=0,R=0,T=x&&_&&i&&n.shiftKey,I=Array.from(n.touches||[n],(e=>{const t=e.identifier;return(e=Wn(e,y)).point0=e.slice(),e.identifier=t,e}));Er(y);var B=c(y,arguments,!0).beforestart();if("overlay"===b){C&&(g=!0);const t=[I[0],I[1]||I[0]];S.selection=C=[[o=e===Mo?E:Oo(t[0][0],t[1][0]),s=e===Ao?A:Oo(t[0][1],t[1][1])],[f=e===Mo?M:So(t[0][0],t[1][0]),p=e===Ao?k:So(t[0][1],t[1][1])]],I.length>1&&N(n)}else o=C[0][0],s=C[0][1],f=C[1][0],p=C[1][1];a=o,u=s,d=f,h=p;var D=Ln(y).attr("pointer-events","none"),j=D.selectAll(".overlay").attr("cursor",Po[b]);if(n.touches)B.moved=Z,B.ended=F;else{var L=Ln(n.view).on("mousemove.brush",Z,!0).on("mouseup.brush",F,!0);i&&L.on("keydown.brush",(function(e){switch(e.keyCode){case 16:T=x&&_;break;case 18:w===wo&&(x&&(f=d-P*x,o=a+P*x),_&&(p=h-R*_,s=u+R*_),w=xo,N(e));break;case 32:w!==wo&&w!==xo||(x<0?f=d-P:x>0&&(o=a-P),_<0?p=h-R:_>0&&(s=u-R),w=bo,j.attr("cursor",Po.selection),N(e));break;default:return}mo(e)}),!0).on("keyup.brush",(function(e){switch(e.keyCode){case 16:T&&(v=m=T=!1,N(e));break;case 18:w===xo&&(x<0?f=d:x>0&&(o=a),_<0?p=h:_>0&&(s=u),w=wo,N(e));break;case 32:w===bo&&(e.altKey?(x&&(f=d-P*x,o=a+P*x),_&&(p=h-R*_,s=u+R*_),w=xo):(x<0?f=d:x>0&&(o=a),_<0?p=h:_>0&&(s=u),w=wo),j.attr("cursor",Po[b]),N(e));break;default:return}mo(e)}),!0),Vn(n.view)}l.call(y),B.start(n,w.name)}function Z(e){for(const t of e.changedTouches||[e])for(const e of I)e.identifier===t.identifier&&(e.cur=Wn(t,y));if(T&&!v&&!m&&1===I.length){const e=I[0];_o(e.cur[0]-e[0])>_o(e.cur[1]-e[1])?m=!0:v=!0}for(const t of I)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,mo(e),N(e)}function N(e){const t=I[0],n=t.point0;var r;switch(P=t[0]-n[0],R=t[1]-n[1],w){case bo:case yo:x&&(P=So(E-o,Oo(M-f,P)),a=o+P,d=f+P),_&&(R=So(A-s,Oo(k-p,R)),u=s+R,h=p+R);break;case wo:I[1]?(x&&(a=So(E,Oo(M,I[0][0])),d=So(E,Oo(M,I[1][0])),x=1),_&&(u=So(A,Oo(k,I[0][1])),h=So(A,Oo(k,I[1][1])),_=1)):(x<0?(P=So(E-o,Oo(M-o,P)),a=o+P,d=f):x>0&&(P=So(E-f,Oo(M-f,P)),a=o,d=f+P),_<0?(R=So(A-s,Oo(k-s,R)),u=s+R,h=p):_>0&&(R=So(A-p,Oo(k-p,R)),u=s,h=p+R));break;case xo:x&&(a=So(E,Oo(M,o-P*x)),d=So(E,Oo(M,f+P*x))),_&&(u=So(A,Oo(k,s-R*_)),h=So(A,Oo(k,p+R*_)))}d<a&&(x*=-1,r=o,o=f,f=r,r=a,a=d,d=r,b in Ro&&j.attr("cursor",Po[b=Ro[b]])),h<u&&(_*=-1,r=s,s=p,p=r,r=u,u=h,h=r,b in To&&j.attr("cursor",Po[b=To[b]])),S.selection&&(C=S.selection),v&&(a=C[0][0],d=C[1][0]),m&&(u=C[0][1],h=C[1][1]),C[0][0]===a&&C[0][1]===u&&C[1][0]===d&&C[1][1]===h||(S.selection=[[a,u],[d,h]],l.call(y),B.brush(e,w.name))}function F(e){if(function(e){e.stopImmediatePropagation()}(e),e.touches){if(e.touches.length)return;t&&clearTimeout(t),t=setTimeout((function(){t=null}),500)}else zn(e.view,g),L.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);D.attr("pointer-events","all"),j.attr("cursor",Po.overlay),S.selection&&(C=S.selection),function(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}(C)&&(S.selection=null,l.call(y)),B.end(e,w.name)}}function p(e){c(this,arguments).moved(e)}function h(e){c(this,arguments).ended(e)}function g(){var t=this.__brush||{selection:null};return t.extent=Eo(n.apply(this,arguments)),t.dim=e,t}return u.move=function(t,n,r){t.tween?t.on("start.brush",(function(e){c(this,arguments).beforestart().start(e)})).on("interrupt.brush end.brush",(function(e){c(this,arguments).end(e)})).tween("brush",(function(){var t=this,r=t.__brush,o=c(t,arguments),i=r.selection,a=e.input("function"===typeof n?n.apply(this,arguments):n,r.extent),s=(0,Un.Z)(i,a);function u(e){r.selection=1===e&&null===a?null:s(e),l.call(t),o.brush()}return null!==i&&null!==a?u:u(1)})):t.each((function(){var t=this,o=arguments,i=t.__brush,a=e.input("function"===typeof n?n.apply(t,o):n,i.extent),s=c(t,o).beforestart();Er(t),i.selection=null===a?null:a,l.call(t),s.start(r).brush(r).end(r)}))},u.clear=function(e,t){u.move(e,null,t)},f.prototype={beforestart:function(){return 1===++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(e,t){return this.starting?(this.starting=!1,this.emit("start",e,t)):this.emit("brush",e),this},brush:function(e,t){return this.emit("brush",e,t),this},end:function(e,t){return 0===--this.active&&(delete this.state.emitter,this.emit("end",e,t)),this},emit:function(t,n,r){var o=Ln(this.that).datum();a.call(t,this.that,new vo(t,{sourceEvent:n,target:u,selection:e.output(this.state.selection),mode:r,dispatch:a}),o)}},u.extent=function(e){return arguments.length?(n="function"===typeof e?e:go(Eo(e)),u):n},u.filter=function(e){return arguments.length?(r="function"===typeof e?e:go(!!e),u):r},u.touchable=function(e){return arguments.length?(o="function"===typeof e?e:go(!!e),u):o},u.handleSize=function(e){return arguments.length?(s=+e,u):s},u.keyModifiers=function(e){return arguments.length?(i=!!e,u):i},u.on=function(){var e=a.on.apply(a,arguments);return e===a?u:e},u}var Go=Math.abs,Wo=Math.cos,$o=Math.sin,qo=Math.PI,Yo=qo/2,Xo=2*qo,Ko=Math.max,Jo=1e-12;function Qo(e,t){return Array.from({length:t-e},((t,n)=>e+n))}function ei(){return ri(!1,!1)}function ti(){return ri(!1,!0)}function ni(){return ri(!0,!1)}function ri(e,t){var n=0,r=null,o=null,i=null;function a(a){var s,u=a.length,l=new Array(u),c=Qo(0,u),f=new Array(u*u),d=new Array(u),p=0;a=Float64Array.from({length:u*u},t?(e,t)=>a[t%u][t/u|0]:(e,t)=>a[t/u|0][t%u]);for(let t=0;t<u;++t){let n=0;for(let r=0;r<u;++r)n+=a[t*u+r]+e*a[r*u+t];p+=l[t]=n}s=(p=Ko(0,Xo-n*u)/p)?n:Xo/u;{let t=0;r&&c.sort(((e,t)=>r(l[e],l[t])));for(const n of c){const r=t;if(e){const e=Qo(1+~u,u).filter((e=>e<0?a[~e*u+n]:a[n*u+e]));o&&e.sort(((e,t)=>o(e<0?-a[~e*u+n]:a[n*u+e],t<0?-a[~t*u+n]:a[n*u+t])));for(const r of e)if(r<0){(f[~r*u+n]||(f[~r*u+n]={source:null,target:null})).target={index:n,startAngle:t,endAngle:t+=a[~r*u+n]*p,value:a[~r*u+n]}}else{(f[n*u+r]||(f[n*u+r]={source:null,target:null})).source={index:n,startAngle:t,endAngle:t+=a[n*u+r]*p,value:a[n*u+r]}}d[n]={index:n,startAngle:r,endAngle:t,value:l[n]}}else{const e=Qo(0,u).filter((e=>a[n*u+e]||a[e*u+n]));o&&e.sort(((e,t)=>o(a[n*u+e],a[n*u+t])));for(const r of e){let e;if(n<r?(e=f[n*u+r]||(f[n*u+r]={source:null,target:null}),e.source={index:n,startAngle:t,endAngle:t+=a[n*u+r]*p,value:a[n*u+r]}):(e=f[r*u+n]||(f[r*u+n]={source:null,target:null}),e.target={index:n,startAngle:t,endAngle:t+=a[n*u+r]*p,value:a[n*u+r]},n===r&&(e.source=e.target)),e.source&&e.target&&e.source.value<e.target.value){const t=e.source;e.source=e.target,e.target=t}}d[n]={index:n,startAngle:r,endAngle:t,value:l[n]}}t+=s}}return(f=Object.values(f)).groups=d,i?f.sort(i):f}return a.padAngle=function(e){return arguments.length?(n=Ko(0,e),a):n},a.sortGroups=function(e){return arguments.length?(r=e,a):r},a.sortSubgroups=function(e){return arguments.length?(o=e,a):o},a.sortChords=function(e){return arguments.length?(null==e?i=null:(t=e,i=function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)})._=e,a):i&&i._;var t},a}const oi=Math.PI,ii=2*oi,ai=1e-6,si=ii-ai;function ui(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class li{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?ui:function(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ui;const n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,o,i){this._append`C${+e},${+t},${+n},${+r},${this._x1=+o},${this._y1=+i}`}arcTo(e,t,n,r,o){if(e=+e,t=+t,n=+n,r=+r,(o=+o)<0)throw new Error(`negative radius: ${o}`);let i=this._x1,a=this._y1,s=n-e,u=r-t,l=i-e,c=a-t,f=l*l+c*c;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(f>ai)if(Math.abs(c*s-u*l)>ai&&o){let d=n-i,p=r-a,h=s*s+u*u,g=d*d+p*p,v=Math.sqrt(h),m=Math.sqrt(f),y=o*Math.tan((oi-Math.acos((h+f-g)/(2*v*m)))/2),b=y/m,w=y/v;Math.abs(b-1)>ai&&this._append`L${e+b*l},${t+b*c}`,this._append`A${o},${o},0,0,${+(c*d>l*p)},${this._x1=e+w*s},${this._y1=t+w*u}`}else this._append`L${this._x1=e},${this._y1=t}`;else;}arc(e,t,n,r,o,i){if(e=+e,t=+t,i=!!i,(n=+n)<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),u=e+a,l=t+s,c=1^i,f=i?r-o:o-r;null===this._x1?this._append`M${u},${l}`:(Math.abs(this._x1-u)>ai||Math.abs(this._y1-l)>ai)&&this._append`L${u},${l}`,n&&(f<0&&(f=f%ii+ii),f>si?this._append`A${n},${n},0,1,${c},${e-a},${t-s}A${n},${n},0,1,${c},${this._x1=u},${this._y1=l}`:f>ai&&this._append`A${n},${n},0,${+(f>=oi)},${c},${this._x1=e+n*Math.cos(o)},${this._y1=t+n*Math.sin(o)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function ci(){return new li}function fi(e=3){return new li(+e)}ci.prototype=li.prototype;var di=Array.prototype.slice;function pi(e){return function(){return e}}function hi(e){return e.source}function gi(e){return e.target}function vi(e){return e.radius}function mi(e){return e.startAngle}function yi(e){return e.endAngle}function bi(){return 0}function wi(){return 10}function xi(e){var t=hi,n=gi,r=vi,o=vi,i=mi,a=yi,s=bi,u=null;function l(){var l,c=t.apply(this,arguments),f=n.apply(this,arguments),d=s.apply(this,arguments)/2,p=di.call(arguments),h=+r.apply(this,(p[0]=c,p)),g=i.apply(this,p)-Yo,v=a.apply(this,p)-Yo,m=+o.apply(this,(p[0]=f,p)),y=i.apply(this,p)-Yo,b=a.apply(this,p)-Yo;if(u||(u=l=ci()),d>Jo&&(Go(v-g)>2*d+Jo?v>g?(g+=d,v-=d):(g-=d,v+=d):g=v=(g+v)/2,Go(b-y)>2*d+Jo?b>y?(y+=d,b-=d):(y-=d,b+=d):y=b=(y+b)/2),u.moveTo(h*Wo(g),h*$o(g)),u.arc(0,0,h,g,v),g!==y||v!==b)if(e){var w=m-+e.apply(this,arguments),x=(y+b)/2;u.quadraticCurveTo(0,0,w*Wo(y),w*$o(y)),u.lineTo(m*Wo(x),m*$o(x)),u.lineTo(w*Wo(b),w*$o(b))}else u.quadraticCurveTo(0,0,m*Wo(y),m*$o(y)),u.arc(0,0,m,y,b);if(u.quadraticCurveTo(0,0,h*Wo(g),h*$o(g)),u.closePath(),l)return u=null,l+""||null}return e&&(l.headRadius=function(t){return arguments.length?(e="function"===typeof t?t:pi(+t),l):e}),l.radius=function(e){return arguments.length?(r=o="function"===typeof e?e:pi(+e),l):r},l.sourceRadius=function(e){return arguments.length?(r="function"===typeof e?e:pi(+e),l):r},l.targetRadius=function(e){return arguments.length?(o="function"===typeof e?e:pi(+e),l):o},l.startAngle=function(e){return arguments.length?(i="function"===typeof e?e:pi(+e),l):i},l.endAngle=function(e){return arguments.length?(a="function"===typeof e?e:pi(+e),l):a},l.padAngle=function(e){return arguments.length?(s="function"===typeof e?e:pi(+e),l):s},l.source=function(e){return arguments.length?(t=e,l):t},l.target=function(e){return arguments.length?(n=e,l):n},l.context=function(e){return arguments.length?(u=null==e?null:e,l):u},l}function _i(){return xi()}function Si(){return xi(wi)}var Oi=n(49531);const Ci=Math.PI/180,Ei=180/Math.PI,Ai=.96422,Mi=1,ki=.82521,Pi=4/29,Ri=6/29,Ti=3*Ri*Ri,Ii=Ri*Ri*Ri;function Bi(e){if(e instanceof Li)return new Li(e.l,e.a,e.b,e.opacity);if(e instanceof Gi)return Wi(e);e instanceof Zr.Ss||(e=(0,Zr.SU)(e));var t,n,r=Hi(e.r),o=Hi(e.g),i=Hi(e.b),a=Zi((.2225045*r+.7168786*o+.0606169*i)/Mi);return r===o&&o===i?t=n=a:(t=Zi((.4360747*r+.3850649*o+.1430804*i)/Ai),n=Zi((.0139322*r+.0971045*o+.7141733*i)/ki)),new Li(116*a-16,500*(t-a),200*(a-n),e.opacity)}function Di(e,t){return new Li(e,0,0,null==t?1:t)}function ji(e,t,n,r){return 1===arguments.length?Bi(e):new Li(e,t,n,null==r?1:r)}function Li(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function Zi(e){return e>Ii?Math.pow(e,1/3):e/Ti+Pi}function Ni(e){return e>Ri?e*e*e:Ti*(e-Pi)}function Fi(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Hi(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Vi(e){if(e instanceof Gi)return new Gi(e.h,e.c,e.l,e.opacity);if(e instanceof Li||(e=Bi(e)),0===e.a&&0===e.b)return new Gi(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Ei;return new Gi(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function zi(e,t,n,r){return 1===arguments.length?Vi(e):new Gi(n,t,e,null==r?1:r)}function Ui(e,t,n,r){return 1===arguments.length?Vi(e):new Gi(e,t,n,null==r?1:r)}function Gi(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Wi(e){if(isNaN(e.h))return new Li(e.l,0,0,e.opacity);var t=e.h*Ci;return new Li(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}(0,Oi.Z)(Li,ji,(0,Oi.l)(Zr.Il,{brighter(e){return new Li(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new Li(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=Ai*Ni(t),e=Mi*Ni(e),n=ki*Ni(n),new Zr.Ss(Fi(3.1338561*t-1.6168667*e-.4906146*n),Fi(-.9787684*t+1.9161415*e+.033454*n),Fi(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),(0,Oi.Z)(Gi,Ui,(0,Oi.l)(Zr.Il,{brighter(e){return new Gi(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new Gi(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return Wi(this).rgb()}}));var $i=-.14861,qi=1.78277,Yi=-.29227,Xi=-.90649,Ki=1.97294,Ji=Ki*Xi,Qi=Ki*qi,ea=qi*Yi-Xi*$i;function ta(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof na)return new na(e.h,e.s,e.l,e.opacity);e instanceof Zr.Ss||(e=(0,Zr.SU)(e));var t=e.r/255,n=e.g/255,r=e.b/255,o=(ea*r+Ji*t-Qi*n)/(ea+Ji-Qi),i=r-o,a=(Ki*(n-o)-Yi*i)/Xi,s=Math.sqrt(a*a+i*i)/(Ki*o*(1-o)),u=s?Math.atan2(a,i)*Ei-120:NaN;return new na(u<0?u+360:u,s,o,e.opacity)}(e):new na(e,t,n,null==r?1:r)}function na(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ra(e){return Math.max(1,Math.ceil(Math.log(function(e,t){let n=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&++n;else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&++n}return n}(e))/Math.LN2)+1)}(0,Oi.Z)(na,ta,(0,Oi.l)(Zr.Il,{brighter(e){return e=null==e?Zr.J5:Math.pow(Zr.J5,e),new na(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Zr.xV:Math.pow(Zr.xV,e),new na(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Ci,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),o=Math.sin(e);return new Zr.Ss(255*(t+n*($i*r+qi*o)),255*(t+n*(Yi*r+Xi*o)),255*(t+n*(Ki*r)),this.opacity)}}));const oa=Math.sqrt(50),ia=Math.sqrt(10),aa=Math.sqrt(2);function sa(e,t,n){const r=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),a=i>=oa?10:i>=ia?5:i>=aa?2:1;let s,u,l;return o<0?(l=Math.pow(10,-o)/a,s=Math.round(e*l),u=Math.round(t*l),s/l<e&&++s,u/l>t&&--u,l=-l):(l=Math.pow(10,o)*a,s=Math.round(e/l),u=Math.round(t/l),s*l<e&&++s,u*l>t&&--u),u<s&&.5<=n&&n<2?sa(e,t,2*n):[s,u,l]}function ua(e,t,n){if(!((n=+n)>0))return[];if((e=+e)===(t=+t))return[e];const r=t<e,[o,i,a]=r?sa(t,e,n):sa(e,t,n);if(!(i>=o))return[];const s=i-o+1,u=new Array(s);if(r)if(a<0)for(let l=0;l<s;++l)u[l]=(i-l)/-a;else for(let l=0;l<s;++l)u[l]=(i-l)*a;else if(a<0)for(let l=0;l<s;++l)u[l]=(o+l)/-a;else for(let l=0;l<s;++l)u[l]=(o+l)*a;return u}function la(e,t,n){return sa(e=+e,t=+t,n=+n)[2]}var ca=Array.prototype.slice;function fa(e,t){return e-t}var da=e=>()=>e;function pa(e,t){for(var n,r=-1,o=t.length;++r<o;)if(n=ha(e,t[r]))return n;return 0}function ha(e,t){for(var n=t[0],r=t[1],o=-1,i=0,a=e.length,s=a-1;i<a;s=i++){var u=e[i],l=u[0],c=u[1],f=e[s],d=f[0],p=f[1];if(ga(u,f,t))return 0;c>r!==p>r&&n<(d-l)*(r-c)/(p-c)+l&&(o=-o)}return o}function ga(e,t,n){var r,o,i,a;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])===(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&(o=e[r=+(e[0]===t[0])],i=n[r],a=t[r],o<=i&&i<=a||a<=i&&i<=o)}function va(){}var ma=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ya(){var e=1,t=1,n=ra,r=s;function o(e){var t=n(e);if(Array.isArray(t))t=t.slice().sort(fa);else{const n=function(e,t){let n,r;if(void 0===t)for(const o of e)null!=o&&(void 0===n?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)));else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(void 0===n?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)))}return[n,r]}(e,ba);for(t=ua(...function(e,t,n){let r;for(;;){const o=la(e,t,n);if(o===r||0===o||!isFinite(o))return[e,t];o>0?(e=Math.floor(e/o)*o,t=Math.ceil(t/o)*o):o<0&&(e=Math.ceil(e*o)/o,t=Math.floor(t*o)/o),r=o}}(n[0],n[1],t),t);t[t.length-1]>=n[1];)t.pop();for(;t[1]<n[0];)t.shift()}return t.map((t=>i(e,t)))}function i(n,o){const i=null==o?NaN:+o;if(isNaN(i))throw new Error(`invalid value: ${o}`);var s=[],u=[];return function(n,r,o){var i,s,u,l,c,f,d=new Array,p=new Array;i=s=-1,l=wa(n[0],r),ma[l<<1].forEach(h);for(;++i<e-1;)u=l,l=wa(n[i+1],r),ma[u|l<<1].forEach(h);ma[l<<0].forEach(h);for(;++s<t-1;){for(i=-1,l=wa(n[s*e+e],r),c=wa(n[s*e],r),ma[l<<1|c<<2].forEach(h);++i<e-1;)u=l,l=wa(n[s*e+e+i+1],r),f=c,c=wa(n[s*e+i+1],r),ma[u|l<<1|c<<2|f<<3].forEach(h);ma[l|c<<3].forEach(h)}i=-1,c=n[s*e]>=r,ma[c<<2].forEach(h);for(;++i<e-1;)f=c,c=wa(n[s*e+i+1],r),ma[c<<2|f<<3].forEach(h);function h(e){var t,n,r=[e[0][0]+i,e[0][1]+s],u=[e[1][0]+i,e[1][1]+s],l=a(r),c=a(u);(t=p[l])?(n=d[c])?(delete p[t.end],delete d[n.start],t===n?(t.ring.push(u),o(t.ring)):d[t.start]=p[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete p[t.end],t.ring.push(u),p[t.end=c]=t):(t=d[c])?(n=p[l])?(delete d[t.start],delete p[n.end],t===n?(t.ring.push(u),o(t.ring)):d[n.start]=p[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete d[t.start],t.ring.unshift(r),d[t.start=l]=t):d[l]=p[c]={start:l,end:c,ring:[r,u]}}ma[c<<3].forEach(h)}(n,i,(function(e){r(e,n,i),function(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)r+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return r}(e)>0?s.push([e]):u.push(e)})),u.forEach((function(e){for(var t,n=0,r=s.length;n<r;++n)if(-1!==pa((t=s[n])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:o,coordinates:s}}function a(t){return 2*t[0]+t[1]*(e+1)*4}function s(n,r,o){n.forEach((function(n){var i=n[0],a=n[1],s=0|i,u=0|a,l=xa(r[u*e+s]);i>0&&i<e&&s===i&&(n[0]=_a(i,xa(r[u*e+s-1]),l,o)),a>0&&a<t&&u===a&&(n[1]=_a(a,xa(r[(u-1)*e+s]),l,o))}))}return o.contour=i,o.size=function(n){if(!arguments.length)return[e,t];var r=Math.floor(n[0]),i=Math.floor(n[1]);if(!(r>=0&&i>=0))throw new Error("invalid size");return e=r,t=i,o},o.thresholds=function(e){return arguments.length?(n="function"===typeof e?e:Array.isArray(e)?da(ca.call(e)):da(e),o):n},o.smooth=function(e){return arguments.length?(r=e?s:va,o):r===s},o}function ba(e){return isFinite(e)?e:NaN}function wa(e,t){return null!=e&&+e>=t}function xa(e){return null==e||isNaN(e=+e)?-1/0:e}function _a(e,t,n,r){const o=r-t,i=n-t,a=isFinite(o)||isFinite(i)?o/i:Math.sign(o)/Math.sign(i);return isNaN(a)?e:e+a-.5}const Sa=Oa(Aa);Oa((function(e){const t=Aa(e);return(e,n,r,o,i)=>{t(e,n,(r<<=2)+0,(o<<=2)+0,i<<=2),t(e,n,r+1,o+1,i),t(e,n,r+2,o+2,i),t(e,n,r+3,o+3,i)}}));function Oa(e){return function(t,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:a}=t;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!a||!n&&!r)return t;const s=n&&e(n),u=r&&e(r),l=o.slice();return s&&u?(Ca(s,l,o,i,a),Ca(s,o,l,i,a),Ca(s,l,o,i,a),Ea(u,o,l,i,a),Ea(u,l,o,i,a),Ea(u,o,l,i,a)):s?(Ca(s,o,l,i,a),Ca(s,l,o,i,a),Ca(s,o,l,i,a)):u&&(Ea(u,o,l,i,a),Ea(u,l,o,i,a),Ea(u,o,l,i,a)),t}}function Ca(e,t,n,r,o){for(let i=0,a=r*o;i<a;)e(t,n,i,i+=r,1)}function Ea(e,t,n,r,o){for(let i=0,a=r*o;i<r;++i)e(t,n,i,i+a,r)}function Aa(e){const t=Math.floor(e);if(t===e)return function(e){const t=2*e+1;return(n,r,o,i,a)=>{if(!((i-=a)>=o))return;let s=e*r[o];const u=a*e;for(let e=o,t=o+u;e<t;e+=a)s+=r[Math.min(i,e)];for(let e=o,l=i;e<=l;e+=a)s+=r[Math.min(i,e+u)],n[e]=s/t,s-=r[Math.max(o,e-u)]}}(e);const n=e-t,r=2*e+1;return(e,o,i,a,s)=>{if(!((a-=s)>=i))return;let u=t*o[i];const l=s*t,c=l+s;for(let t=i,n=i+l;t<n;t+=s)u+=o[Math.min(a,t)];for(let t=i,f=a;t<=f;t+=s)u+=o[Math.min(a,t+l)],e[t]=(u+n*(o[Math.max(i,t-c)]+o[Math.min(a,t+c)]))/r,u-=o[Math.max(i,t-l)]}}function Ma(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n<r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}function ka(e){return e[0]}function Pa(e){return e[1]}function Ra(){return 1}function Ta(){var e=ka,t=Pa,n=Ra,r=960,o=500,i=20,a=2,s=3*i,u=r+2*s>>a,l=o+2*s>>a,c=da(20);function f(r){var o=new Float32Array(u*l),c=Math.pow(2,-a),f=-1;for(const i of r){var d=(e(i,++f,r)+s)*c,p=(t(i,f,r)+s)*c,h=+n(i,f,r);if(h&&d>=0&&d<u&&p>=0&&p<l){var g=Math.floor(d),v=Math.floor(p),m=d-g-.5,y=p-v-.5;o[g+v*u]+=(1-m)*(1-y)*h,o[g+1+v*u]+=m*(1-y)*h,o[g+1+(v+1)*u]+=m*y*h,o[g+(v+1)*u]+=(1-m)*y*h}}return Sa({data:o,width:u,height:l},i*c),o}function d(e){var t=f(e),n=c(t),r=Math.pow(2,2*a);return Array.isArray(n)||(n=ua(Number.MIN_VALUE,Ma(t)/r,n)),ya().size([u,l]).thresholds(n.map((e=>e*r)))(t).map(((e,t)=>(e.value=+n[t],p(e))))}function p(e){return e.coordinates.forEach(h),e}function h(e){e.forEach(g)}function g(e){e.forEach(v)}function v(e){e[0]=e[0]*Math.pow(2,a)-s,e[1]=e[1]*Math.pow(2,a)-s}function m(){return u=r+2*(s=3*i)>>a,l=o+2*s>>a,d}return d.contours=function(e){var t=f(e),n=ya().size([u,l]),r=Math.pow(2,2*a),o=e=>{e=+e;var o=p(n.contour(t,e*r));return o.value=e,o};return Object.defineProperty(o,"max",{get:()=>Ma(t)/r}),o},d.x=function(t){return arguments.length?(e="function"===typeof t?t:da(+t),d):e},d.y=function(e){return arguments.length?(t="function"===typeof e?e:da(+e),d):t},d.weight=function(e){return arguments.length?(n="function"===typeof e?e:da(+e),d):n},d.size=function(e){if(!arguments.length)return[r,o];var t=+e[0],n=+e[1];if(!(t>=0&&n>=0))throw new Error("invalid size");return r=t,o=n,m()},d.cellSize=function(e){if(!arguments.length)return 1<<a;if(!((e=+e)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(e)/Math.LN2),m()},d.thresholds=function(e){return arguments.length?(c="function"===typeof e?e:Array.isArray(e)?da(ca.call(e)):da(e),d):c},d.bandwidth=function(e){if(!arguments.length)return Math.sqrt(i*(i+1));if(!((e=+e)>=0))throw new Error("invalid bandwidth");return i=(Math.sqrt(4*e*e+1)-1)/2,m()},d}const Ia=134217729,Ba=33306690738754706e-32;function Da(e,t,n,r,o){let i,a,s,u,l=t[0],c=r[0],f=0,d=0;c>l===c>-l?(i=l,l=t[++f]):(i=c,c=r[++d]);let p=0;if(f<e&&d<n)for(c>l===c>-l?(a=l+i,s=i-(a-l),l=t[++f]):(a=c+i,s=i-(a-c),c=r[++d]),i=a,0!==s&&(o[p++]=s);f<e&&d<n;)c>l===c>-l?(a=i+l,u=a-i,s=i-(a-u)+(l-u),l=t[++f]):(a=i+c,u=a-i,s=i-(a-u)+(c-u),c=r[++d]),i=a,0!==s&&(o[p++]=s);for(;f<e;)a=i+l,u=a-i,s=i-(a-u)+(l-u),l=t[++f],i=a,0!==s&&(o[p++]=s);for(;d<n;)a=i+c,u=a-i,s=i-(a-u)+(c-u),c=r[++d],i=a,0!==s&&(o[p++]=s);return 0===i&&0!==p||(o[p++]=i),p}function ja(e){return new Float64Array(e)}const La=22204460492503146e-32,Za=11093356479670487e-47,Na=ja(4),Fa=ja(8),Ha=ja(12),Va=ja(16),za=ja(4);function Ua(e,t,n,r,o,i){const a=(t-i)*(n-o),s=(e-o)*(r-i),u=a-s;if(0===a||0===s||a>0!==s>0)return u;const l=Math.abs(a+s);return Math.abs(u)>=33306690738754716e-32*l?u:-function(e,t,n,r,o,i,a){let s,u,l,c,f,d,p,h,g,v,m,y,b,w,x,_,S,O;const C=e-o,E=n-o,A=t-i,M=r-i;w=C*M,d=Ia*C,p=d-(d-C),h=C-p,d=Ia*M,g=d-(d-M),v=M-g,x=h*v-(w-p*g-h*g-p*v),_=A*E,d=Ia*A,p=d-(d-A),h=A-p,d=Ia*E,g=d-(d-E),v=E-g,S=h*v-(_-p*g-h*g-p*v),m=x-S,f=x-m,Na[0]=x-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-_,f=b-m,Na[1]=b-(m+f)+(f-_),O=y+m,f=O-y,Na[2]=y-(O-f)+(m-f),Na[3]=O;let k=function(e,t){let n=t[0];for(let r=1;r<e;r++)n+=t[r];return n}(4,Na),P=La*a;if(k>=P||-k>=P)return k;if(f=e-C,s=e-(C+f)+(f-o),f=n-E,l=n-(E+f)+(f-o),f=t-A,u=t-(A+f)+(f-i),f=r-M,c=r-(M+f)+(f-i),0===s&&0===u&&0===l&&0===c)return k;if(P=Za*a+Ba*Math.abs(k),k+=C*c+M*s-(A*l+E*u),k>=P||-k>=P)return k;w=s*M,d=Ia*s,p=d-(d-s),h=s-p,d=Ia*M,g=d-(d-M),v=M-g,x=h*v-(w-p*g-h*g-p*v),_=u*E,d=Ia*u,p=d-(d-u),h=u-p,d=Ia*E,g=d-(d-E),v=E-g,S=h*v-(_-p*g-h*g-p*v),m=x-S,f=x-m,za[0]=x-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-_,f=b-m,za[1]=b-(m+f)+(f-_),O=y+m,f=O-y,za[2]=y-(O-f)+(m-f),za[3]=O;const R=Da(4,Na,4,za,Fa);w=C*c,d=Ia*C,p=d-(d-C),h=C-p,d=Ia*c,g=d-(d-c),v=c-g,x=h*v-(w-p*g-h*g-p*v),_=A*l,d=Ia*A,p=d-(d-A),h=A-p,d=Ia*l,g=d-(d-l),v=l-g,S=h*v-(_-p*g-h*g-p*v),m=x-S,f=x-m,za[0]=x-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-_,f=b-m,za[1]=b-(m+f)+(f-_),O=y+m,f=O-y,za[2]=y-(O-f)+(m-f),za[3]=O;const T=Da(R,Fa,4,za,Ha);w=s*c,d=Ia*s,p=d-(d-s),h=s-p,d=Ia*c,g=d-(d-c),v=c-g,x=h*v-(w-p*g-h*g-p*v),_=u*l,d=Ia*u,p=d-(d-u),h=u-p,d=Ia*l,g=d-(d-l),v=l-g,S=h*v-(_-p*g-h*g-p*v),m=x-S,f=x-m,za[0]=x-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-_,f=b-m,za[1]=b-(m+f)+(f-_),O=y+m,f=O-y,za[2]=y-(O-f)+(m-f),za[3]=O;const I=Da(T,Ha,4,za,Va);return Va[I-1]}(e,t,n,r,o,i,l)}ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(8),ja(8),ja(8),ja(4),ja(8),ja(8),ja(8),ja(12);ja(192),ja(192);ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(8),ja(8),ja(8),ja(8),ja(8),ja(8),ja(8),ja(8),ja(8),ja(4),ja(4),ja(4),ja(8),ja(16),ja(16),ja(16),ja(32),ja(32),ja(48),ja(64);ja(1152),ja(1152);ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(4),ja(24),ja(24),ja(24),ja(24),ja(24),ja(24),ja(24),ja(24),ja(24),ja(24),ja(1152),ja(1152),ja(1152),ja(1152),ja(1152),ja(2304),ja(2304),ja(3456),ja(5760),ja(8),ja(8),ja(8),ja(16),ja(24),ja(48),ja(48),ja(96),ja(192),ja(384),ja(384),ja(384),ja(768);ja(96),ja(96),ja(96),ja(1152);const Ga=Math.pow(2,-52),Wa=new Uint32Array(512);class $a{static from(e,t=Qa,n=es){const r=e.length,o=new Float64Array(2*r);for(let i=0;i<r;i++){const r=e[i];o[2*i]=t(r),o[2*i+1]=n(r)}return new $a(o)}constructor(e){const t=e.length>>1;if(t>0&&"number"!==typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:r,_hullHash:o}=this,i=e.length>>1;let a=1/0,s=1/0,u=-1/0,l=-1/0;for(let C=0;C<i;C++){const t=e[2*C],n=e[2*C+1];t<a&&(a=t),n<s&&(s=n),t>u&&(u=t),n>l&&(l=n),this._ids[C]=C}const c=(a+u)/2,f=(s+l)/2;let d,p,h,g=1/0;for(let C=0;C<i;C++){const t=qa(c,f,e[2*C],e[2*C+1]);t<g&&(d=C,g=t)}const v=e[2*d],m=e[2*d+1];g=1/0;for(let C=0;C<i;C++){if(C===d)continue;const t=qa(v,m,e[2*C],e[2*C+1]);t<g&&t>0&&(p=C,g=t)}let y=e[2*p],b=e[2*p+1],w=1/0;for(let C=0;C<i;C++){if(C===d||C===p)continue;const t=Xa(v,m,y,b,e[2*C],e[2*C+1]);t<w&&(h=C,w=t)}let x=e[2*h],_=e[2*h+1];if(w===1/0){for(let r=0;r<i;r++)this._dists[r]=e[2*r]-e[0]||e[2*r+1]-e[1];Ka(this._ids,this._dists,0,i-1);const t=new Uint32Array(i);let n=0;for(let e=0,r=-1/0;e<i;e++){const o=this._ids[e];this._dists[o]>r&&(t[n++]=o,r=this._dists[o])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Ua(v,m,y,b,x,_)<0){const e=p,t=y,n=b;p=h,y=x,b=_,h=e,x=t,_=n}const S=function(e,t,n,r,o,i){const a=n-e,s=r-t,u=o-e,l=i-t,c=a*a+s*s,f=u*u+l*l,d=.5/(a*l-s*u),p=e+(l*c-s*f)*d,h=t+(a*f-u*c)*d;return{x:p,y:h}}(v,m,y,b,x,_);this._cx=S.x,this._cy=S.y;for(let C=0;C<i;C++)this._dists[C]=qa(e[2*C],e[2*C+1],S.x,S.y);Ka(this._ids,this._dists,0,i-1),this._hullStart=d;let O=3;n[d]=t[h]=p,n[p]=t[d]=h,n[h]=t[p]=d,r[d]=0,r[p]=1,r[h]=2,o.fill(-1),o[this._hashKey(v,m)]=d,o[this._hashKey(y,b)]=p,o[this._hashKey(x,_)]=h,this.trianglesLen=0,this._addTriangle(d,p,h,-1,-1,-1);for(let C,E,A=0;A<this._ids.length;A++){const i=this._ids[A],a=e[2*i],s=e[2*i+1];if(A>0&&Math.abs(a-C)<=Ga&&Math.abs(s-E)<=Ga)continue;if(C=a,E=s,i===d||i===p||i===h)continue;let u=0;for(let e=0,t=this._hashKey(a,s);e<this._hashSize&&(u=o[(t+e)%this._hashSize],-1===u||u===n[u]);e++);u=t[u];let l,c=u;for(;l=n[c],Ua(a,s,e[2*c],e[2*c+1],e[2*l],e[2*l+1])>=0;)if(c=l,c===u){c=-1;break}if(-1===c)continue;let f=this._addTriangle(c,i,n[c],-1,-1,r[c]);r[i]=this._legalize(f+2),r[c]=f,O++;let g=n[c];for(;l=n[g],Ua(a,s,e[2*g],e[2*g+1],e[2*l],e[2*l+1])<0;)f=this._addTriangle(g,i,l,r[i],-1,r[g]),r[i]=this._legalize(f+2),n[g]=g,O--,g=l;if(c===u)for(;l=t[c],Ua(a,s,e[2*l],e[2*l+1],e[2*c],e[2*c+1])<0;)f=this._addTriangle(l,i,c,-1,r[c],r[l]),this._legalize(f+2),r[l]=f,n[c]=c,O--,c=l;this._hullStart=t[i]=c,n[c]=t[g]=i,n[i]=g,o[this._hashKey(a,s)]=i,o[this._hashKey(e[2*c],e[2*c+1])]=c}this.hull=new Uint32Array(O);for(let C=0,E=this._hullStart;C<O;C++)this.hull[C]=E,E=n[E];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:r}=this;let o=0,i=0;for(;;){const a=n[e],s=e-e%3;if(i=s+(e+2)%3,-1===a){if(0===o)break;e=Wa[--o];continue}const u=a-a%3,l=s+(e+1)%3,c=u+(a+2)%3,f=t[i],d=t[e],p=t[l],h=t[c];if(Ya(r[2*f],r[2*f+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1],r[2*h],r[2*h+1])){t[e]=h,t[a]=f;const r=n[c];if(-1===r){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,r),this._link(a,n[i]),this._link(i,c);const s=u+(a+1)%3;o<Wa.length&&(Wa[o++]=s)}else{if(0===o)break;e=Wa[--o]}}return i}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,r,o,i){const a=this.trianglesLen;return this._triangles[a]=e,this._triangles[a+1]=t,this._triangles[a+2]=n,this._link(a,r),this._link(a+1,o),this._link(a+2,i),this.trianglesLen+=3,a}}function qa(e,t,n,r){const o=e-n,i=t-r;return o*o+i*i}function Ya(e,t,n,r,o,i,a,s){const u=e-a,l=t-s,c=n-a,f=r-s,d=o-a,p=i-s,h=c*c+f*f,g=d*d+p*p;return u*(f*g-h*p)-l*(c*g-h*d)+(u*u+l*l)*(c*p-f*d)<0}function Xa(e,t,n,r,o,i){const a=n-e,s=r-t,u=o-e,l=i-t,c=a*a+s*s,f=u*u+l*l,d=.5/(a*l-s*u),p=(l*c-s*f)*d,h=(a*f-u*c)*d;return p*p+h*h}function Ka(e,t,n,r){if(r-n<=20)for(let o=n+1;o<=r;o++){const r=e[o],i=t[r];let a=o-1;for(;a>=n&&t[e[a]]>i;)e[a+1]=e[a--];e[a+1]=r}else{let o=n+1,i=r;Ja(e,n+r>>1,o),t[e[n]]>t[e[r]]&&Ja(e,n,r),t[e[o]]>t[e[r]]&&Ja(e,o,r),t[e[n]]>t[e[o]]&&Ja(e,n,o);const a=e[o],s=t[a];for(;;){do{o++}while(t[e[o]]<s);do{i--}while(t[e[i]]>s);if(i<o)break;Ja(e,o,i)}e[n+1]=e[i],e[i]=a,r-o+1>=i-n?(Ka(e,t,o,r),Ka(e,t,n,i-1)):(Ka(e,t,n,i-1),Ka(e,t,o,r))}}function Ja(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Qa(e){return e[0]}function es(e){return e[1]}const ts=1e-6;class ns{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const r=(e=+e)+(n=+n),o=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${o}`:(Math.abs(this._x1-r)>ts||Math.abs(this._y1-o)>ts)&&(this._+="L"+r+","+o),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=r},${this._y1=o}`)}rect(e,t,n,r){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+r}h${-n}Z`}value(){return this._||null}}class rs{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}class os{constructor(e,[t,n,r,o]=[0,0,960,500]){if(!((r=+r)>=(t=+t))||!((o=+o)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=r,this.xmin=t,this.ymax=o,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:r}=this,o=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let d,p,h=0,g=0,v=n.length;h<v;h+=3,g+=2){const t=2*n[h],r=2*n[h+1],i=2*n[h+2],a=e[t],s=e[t+1],u=e[r],l=e[r+1],c=e[i],f=e[i+1],v=u-a,m=l-s,y=c-a,b=f-s,w=2*(v*b-m*y);if(Math.abs(w)<1e-9){let t=1e9;const r=2*n[0];t*=Math.sign((e[r]-a)*b-(e[r+1]-s)*y),d=(a+c)/2-t*b,p=(s+f)/2+t*y}else{const e=1/w,t=v*v+m*m,n=y*y+b*b;d=a+(b*t-m*n)*e,p=s+(v*n-y*t)*e}o[g]=d,o[g+1]=p}let i,a,s,u=t[t.length-1],l=4*u,c=e[2*u],f=e[2*u+1];r.fill(0);for(let d=0;d<t.length;++d)u=t[d],i=l,a=c,s=f,l=4*u,c=e[2*u],f=e[2*u+1],r[i+2]=r[l]=s-f,r[i+3]=r[l+1]=c-a}render(e){const t=null==e?e=new ns:void 0,{delaunay:{halfedges:n,inedges:r,hull:o},circumcenters:i,vectors:a}=this;if(o.length<=1)return null;for(let l=0,c=n.length;l<c;++l){const t=n[l];if(t<l)continue;const r=2*Math.floor(l/3),o=2*Math.floor(t/3),a=i[r],s=i[r+1],u=i[o],c=i[o+1];this._renderSegment(a,s,u,c,e)}let s,u=o[o.length-1];for(let l=0;l<o.length;++l){s=u,u=o[l];const t=2*Math.floor(r[u]/3),n=i[t],c=i[t+1],f=4*s,d=this._project(n,c,a[f+2],a[f+3]);d&&this._renderSegment(n,c,d[0],d[1],e)}return t&&t.value()}renderBounds(e){const t=null==e?e=new ns:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){const n=null==t?t=new ns:void 0,r=this._clip(e);if(null===r||!r.length)return;t.moveTo(r[0],r[1]);let o=r.length;for(;r[0]===r[o-2]&&r[1]===r[o-1]&&o>1;)o-=2;for(let i=2;i<o;i+=2)r[i]===r[i-2]&&r[i+1]===r[i-1]||t.lineTo(r[i],r[i+1]);return t.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let t=0,n=e.length/2;t<n;++t){const e=this.cellPolygon(t);e&&(e.index=t,yield e)}}cellPolygon(e){const t=new rs;return this.renderCell(e,t),t.value()}_renderSegment(e,t,n,r,o){let i;const a=this._regioncode(e,t),s=this._regioncode(n,r);0===a&&0===s?(o.moveTo(e,t),o.lineTo(n,r)):(i=this._clipSegment(e,t,n,r,a,s))&&(o.moveTo(i[0],i[1]),o.lineTo(i[2],i[3]))}contains(e,t,n){return(t=+t)===t&&(n=+n)===n&&this.delaunay._step(e,t,n)===e}*neighbors(e){const t=this._clip(e);if(t)for(const n of this.delaunay.neighbors(e)){const e=this._clip(n);if(e)e:for(let r=0,o=t.length;r<o;r+=2)for(let i=0,a=e.length;i<a;i+=2)if(t[r]===e[i]&&t[r+1]===e[i+1]&&t[(r+2)%o]===e[(i+a-2)%a]&&t[(r+3)%o]===e[(i+a-1)%a]){yield n;break e}}}_cell(e){const{circumcenters:t,delaunay:{inedges:n,halfedges:r,triangles:o}}=this,i=n[e];if(-1===i)return null;const a=[];let s=i;do{const n=Math.floor(s/3);if(a.push(t[2*n],t[2*n+1]),s=s%3===2?s-2:s+1,o[s]!==e)break;s=r[s]}while(s!==i&&-1!==s);return a}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const t=this._cell(e);if(null===t)return null;const{vectors:n}=this,r=4*e;return this._simplify(n[r]||n[r+1]?this._clipInfinite(e,t,n[r],n[r+1],n[r+2],n[r+3]):this._clipFinite(e,t))}_clipFinite(e,t){const n=t.length;let r,o,i,a,s=null,u=t[n-2],l=t[n-1],c=this._regioncode(u,l),f=0;for(let d=0;d<n;d+=2)if(r=u,o=l,u=t[d],l=t[d+1],i=c,c=this._regioncode(u,l),0===i&&0===c)a=f,f=0,s?s.push(u,l):s=[u,l];else{let t,n,d,p,h;if(0===i){if(null===(t=this._clipSegment(r,o,u,l,i,c)))continue;[n,d,p,h]=t}else{if(null===(t=this._clipSegment(u,l,r,o,c,i)))continue;[p,h,n,d]=t,a=f,f=this._edgecode(n,d),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(n,d):s=[n,d]}a=f,f=this._edgecode(p,h),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(p,h):s=[p,h]}if(s)a=f,f=this._edgecode(s[0],s[1]),a&&f&&this._edge(e,a,f,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(e,t,n,r,o,i){const a=o<i;for(a&&([e,t,n,r,o,i]=[n,r,e,t,i,o]);;){if(0===o&&0===i)return a?[n,r,e,t]:[e,t,n,r];if(o&i)return null;let s,u,l=o||i;8&l?(s=e+(n-e)*(this.ymax-t)/(r-t),u=this.ymax):4&l?(s=e+(n-e)*(this.ymin-t)/(r-t),u=this.ymin):2&l?(u=t+(r-t)*(this.xmax-e)/(n-e),s=this.xmax):(u=t+(r-t)*(this.xmin-e)/(n-e),s=this.xmin),o?(e=s,t=u,o=this._regioncode(e,t)):(n=s,r=u,i=this._regioncode(n,r))}}_clipInfinite(e,t,n,r,o,i){let a,s=Array.from(t);if((a=this._project(s[0],s[1],n,r))&&s.unshift(a[0],a[1]),(a=this._project(s[s.length-2],s[s.length-1],o,i))&&s.push(a[0],a[1]),s=this._clipFinite(e,s))for(let u,l=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);l<c;l+=2)u=f,f=this._edgecode(s[l],s[l+1]),u&&f&&(l=this._edge(e,u,f,s,l),c=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,n,r,o){for(;t!==n;){let n,i;switch(t){case 5:t=4;continue;case 4:t=6,n=this.xmax,i=this.ymin;break;case 6:t=2;continue;case 2:t=10,n=this.xmax,i=this.ymax;break;case 10:t=8;continue;case 8:t=9,n=this.xmin,i=this.ymax;break;case 9:t=1;continue;case 1:t=5,n=this.xmin,i=this.ymin}r[o]===n&&r[o+1]===i||!this.contains(e,n,i)||(r.splice(o,0,n,i),o+=2)}return o}_project(e,t,n,r){let o,i,a,s=1/0;if(r<0){if(t<=this.ymin)return null;(o=(this.ymin-t)/r)<s&&(a=this.ymin,i=e+(s=o)*n)}else if(r>0){if(t>=this.ymax)return null;(o=(this.ymax-t)/r)<s&&(a=this.ymax,i=e+(s=o)*n)}if(n>0){if(e>=this.xmax)return null;(o=(this.xmax-e)/n)<s&&(i=this.xmax,a=t+(s=o)*r)}else if(n<0){if(e<=this.xmin)return null;(o=(this.xmin-e)/n)<s&&(i=this.xmin,a=t+(s=o)*r)}return[i,a]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){const n=(t+2)%e.length,r=(t+4)%e.length;(e[t]===e[n]&&e[n]===e[r]||e[t+1]===e[n+1]&&e[n+1]===e[r+1])&&(e.splice(n,2),t-=2)}e.length||(e=null)}return e}}const is=2*Math.PI,as=Math.pow;function ss(e){return e[0]}function us(e){return e[1]}function ls(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class cs{static from(e,t=ss,n=us,r){return new cs("length"in e?function(e,t,n,r){const o=e.length,i=new Float64Array(2*o);for(let a=0;a<o;++a){const o=e[a];i[2*a]=t.call(r,o,a,e),i[2*a+1]=n.call(r,o,a,e)}return i}(e,t,n,r):Float64Array.from(function*(e,t,n,r){let o=0;for(const i of e)yield t.call(r,i,o,e),yield n.call(r,i,o,e),++o}(e,t,n,r)))}constructor(e){this._delaunator=new $a(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:t,coords:n}=e;for(let r=0;r<t.length;r+=3){const e=2*t[r],o=2*t[r+1],i=2*t[r+2];if((n[i]-n[e])*(n[o+1]-n[e+1])-(n[o]-n[e])*(n[i+1]-n[e+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],r=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],o=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let i=0,a=t.length/2;i<a;++i){const e=ls(t[2*i],t[2*i+1],o);t[2*i]=e[0],t[2*i+1]=e[1]}this._delaunator=new $a(t)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let s=0,u=n.length;s<u;++s){const e=o[s%3===2?s-2:s+1];-1!==n[s]&&-1!==i[e]||(i[e]=s)}for(let s=0,u=r.length;s<u;++s)a[r[s]]=s;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],i[r[0]]=1,2===r.length&&(i[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(e){return new os(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:r,halfedges:o,triangles:i,collinear:a}=this;if(a){const t=a.indexOf(e);return t>0&&(yield a[t-1]),void(t<a.length-1&&(yield a[t+1]))}const s=t[e];if(-1===s)return;let u=s,l=-1;do{if(yield l=i[u],u=u%3===2?u-2:u+1,i[u]!==e)return;if(u=o[u],-1===u){const t=n[(r[e]+1)%n.length];return void(t!==l&&(yield t))}}while(u!==s)}find(e,t,n=0){if((e=+e)!==e||(t=+t)!==t)return-1;const r=n;let o;for(;(o=this._step(n,e,t))>=0&&o!==n&&o!==r;)n=o;return o}_step(e,t,n){const{inedges:r,hull:o,_hullIndex:i,halfedges:a,triangles:s,points:u}=this;if(-1===r[e]||!u.length)return(e+1)%(u.length>>1);let l=e,c=as(t-u[2*e],2)+as(n-u[2*e+1],2);const f=r[e];let d=f;do{let r=s[d];const f=as(t-u[2*r],2)+as(n-u[2*r+1],2);if(f<c&&(c=f,l=r),d=d%3===2?d-2:d+1,s[d]!==e)break;if(d=a[d],-1===d){if(d=o[(i[e]+1)%o.length],d!==r&&as(t-u[2*d],2)+as(n-u[2*d+1],2)<c)return d;break}}while(d!==f);return l}render(e){const t=null==e?e=new ns:void 0,{points:n,halfedges:r,triangles:o}=this;for(let i=0,a=r.length;i<a;++i){const t=r[i];if(t<i)continue;const a=2*o[i],s=2*o[t];e.moveTo(n[a],n[a+1]),e.lineTo(n[s],n[s+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){void 0!==t||e&&"function"===typeof e.moveTo||(t=e,e=null),t=void 0==t?2:+t;const n=null==e?e=new ns:void 0,{points:r}=this;for(let o=0,i=r.length;o<i;o+=2){const n=r[o],i=r[o+1];e.moveTo(n+t,i),e.arc(n,i,t,0,is)}return n&&n.value()}renderHull(e){const t=null==e?e=new ns:void 0,{hull:n,points:r}=this,o=2*n[0],i=n.length;e.moveTo(r[o],r[o+1]);for(let a=1;a<i;++a){const t=2*n[a];e.lineTo(r[t],r[t+1])}return e.closePath(),t&&t.value()}hullPolygon(){const e=new rs;return this.renderHull(e),e.value()}renderTriangle(e,t){const n=null==t?t=new ns:void 0,{points:r,triangles:o}=this,i=2*o[e*=3],a=2*o[e+1],s=2*o[e+2];return t.moveTo(r[i],r[i+1]),t.lineTo(r[a],r[a+1]),t.lineTo(r[s],r[s+1]),t.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:e}=this;for(let t=0,n=e.length/3;t<n;++t)yield this.trianglePolygon(t)}trianglePolygon(e){const t=new rs;return this.renderTriangle(e,t),t.value()}}var fs=e=>()=>e;function ds(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:s,dx:u,dy:l,dispatch:c}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:c}})}function ps(e){return!e.ctrlKey&&!e.button}function hs(){return this.parentNode}function gs(e,t){return null==t?{x:e.x,y:e.y}:t}function vs(){return navigator.maxTouchPoints||"ontouchstart"in this}function ms(){var e,t,n,r,o=ps,i=hs,a=gs,s=vs,u={},l=_t("start","drag","end"),c=0,f=0;function d(e){e.on("mousedown.drag",p).filter(s).on("touchstart.drag",v).on("touchmove.drag",m,Zn).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,s){if(!r&&o.call(this,a,s)){var u=b(this,i.call(this,a,s),a,s,"mouse");u&&(Ln(a.view).on("mousemove.drag",h,Nn).on("mouseup.drag",g,Nn),Vn(a.view),Fn(a),n=!1,e=a.clientX,t=a.clientY,u("start",a))}}function h(r){if(Hn(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>f}u.mouse("drag",r)}function g(e){Ln(e.view).on("mousemove.drag mouseup.drag",null),zn(e.view,n),Hn(e),u.mouse("end",e)}function v(e,t){if(o.call(this,e,t)){var n,r,a=e.changedTouches,s=i.call(this,e,t),u=a.length;for(n=0;n<u;++n)(r=b(this,s,e,t,a[n].identifier,a[n]))&&(Fn(e),r("start",e,a[n]))}}function m(e){var t,n,r=e.changedTouches,o=r.length;for(t=0;t<o;++t)(n=u[r[t].identifier])&&(Hn(e),n("drag",e,r[t]))}function y(e){var t,n,o=e.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<i;++t)(n=u[o[t].identifier])&&(Fn(e),n("end",e,o[t]))}function b(e,t,n,r,o,i){var s,f,p,h=l.copy(),g=Wn(i||n,t);if(null!=(p=a.call(e,new ds("beforestart",{sourceEvent:n,target:d,identifier:o,active:c,x:g[0],y:g[1],dx:0,dy:0,dispatch:h}),r)))return s=p.x-g[0]||0,f=p.y-g[1]||0,function n(i,a,l){var v,m=g;switch(i){case"start":u[o]=n,v=c++;break;case"end":delete u[o],--c;case"drag":g=Wn(l||a,t),v=c}h.call(i,e,new ds(i,{sourceEvent:a,subject:p,target:d,identifier:o,active:v,x:g[0]+s,y:g[1]+f,dx:g[0]-m[0],dy:g[1]-m[1],dispatch:h}),r)}}return d.filter=function(e){return arguments.length?(o="function"===typeof e?e:fs(!!e),d):o},d.container=function(e){return arguments.length?(i="function"===typeof e?e:fs(e),d):i},d.subject=function(e){return arguments.length?(a="function"===typeof e?e:fs(e),d):a},d.touchable=function(e){return arguments.length?(s="function"===typeof e?e:fs(!!e),d):s},d.on=function(){var e=l.on.apply(l,arguments);return e===l?d:e},d.clickDistance=function(e){return arguments.length?(f=(e=+e)*e,d):Math.sqrt(f)},d}ds.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var ys={},bs={},ws=34,xs=10,_s=13;function Ss(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function Os(e){var t=Object.create(null),n=[];return e.forEach((function(e){for(var r in e)r in t||n.push(t[r]=r)})),n}function Cs(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function Es(e){var t,n=e.getUTCHours(),r=e.getUTCMinutes(),o=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":((t=e.getUTCFullYear())<0?"-"+Cs(-t,6):t>9999?"+"+Cs(t,6):Cs(t,4))+"-"+Cs(e.getUTCMonth()+1,2)+"-"+Cs(e.getUTCDate(),2)+(i?"T"+Cs(n,2)+":"+Cs(r,2)+":"+Cs(o,2)+"."+Cs(i,3)+"Z":o?"T"+Cs(n,2)+":"+Cs(r,2)+":"+Cs(o,2)+"Z":r||n?"T"+Cs(n,2)+":"+Cs(r,2)+"Z":"")}function As(e){var t=new RegExp('["'+e+"\n\r]"),n=e.charCodeAt(0);function r(e,t){var r,o=[],i=e.length,a=0,s=0,u=i<=0,l=!1;function c(){if(u)return bs;if(l)return l=!1,ys;var t,r,o=a;if(e.charCodeAt(o)===ws){for(;a++<i&&e.charCodeAt(a)!==ws||e.charCodeAt(++a)===ws;);return(t=a)>=i?u=!0:(r=e.charCodeAt(a++))===xs?l=!0:r===_s&&(l=!0,e.charCodeAt(a)===xs&&++a),e.slice(o+1,t-1).replace(/""/g,'"')}for(;a<i;){if((r=e.charCodeAt(t=a++))===xs)l=!0;else if(r===_s)l=!0,e.charCodeAt(a)===xs&&++a;else if(r!==n)continue;return e.slice(o,t)}return u=!0,e.slice(o,i)}for(e.charCodeAt(i-1)===xs&&--i,e.charCodeAt(i-1)===_s&&--i;(r=c())!==bs;){for(var f=[];r!==ys&&r!==bs;)f.push(r),r=c();t&&null==(f=t(f,s++))||o.push(f)}return o}function o(t,n){return t.map((function(t){return n.map((function(e){return a(t[e])})).join(e)}))}function i(t){return t.map(a).join(e)}function a(e){return null==e?"":e instanceof Date?Es(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var n,o,i=r(e,(function(e,r){if(n)return n(e,r-1);o=e,n=t?function(e,t){var n=Ss(e);return function(r,o){return t(n(r),o,e)}}(e,t):Ss(e)}));return i.columns=o||[],i},parseRows:r,format:function(t,n){return null==n&&(n=Os(t)),[n.map(a).join(e)].concat(o(t,n)).join("\n")},formatBody:function(e,t){return null==t&&(t=Os(e)),o(e,t).join("\n")},formatRows:function(e){return e.map(i).join("\n")},formatRow:i,formatValue:a}}var Ms=As(","),ks=Ms.parse,Ps=Ms.parseRows,Rs=Ms.format,Ts=Ms.formatBody,Is=Ms.formatRows,Bs=Ms.formatRow,Ds=Ms.formatValue,js=As("\t"),Ls=js.parse,Zs=js.parseRows,Ns=js.format,Fs=js.formatBody,Hs=js.formatRows,Vs=js.formatRow,zs=js.formatValue;function Us(e){for(var t in e){var n,r,o=e[t].trim();if(o)if("true"===o)o=!0;else if("false"===o)o=!1;else if("NaN"===o)o=NaN;else if(isNaN(n=+o)){if(!(r=o.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;Gs&&r[4]&&!r[7]&&(o=o.replace(/-/g,"/").replace(/T/," ")),o=new Date(o)}else o=n;else o=null;e[t]=o}return e}const Gs=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours(),Ws=e=>+e;function $s(e){return e*e}function qs(e){return e*(2-e)}function Ys(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}var Xs=function e(t){function n(e){return Math.pow(e,t)}return t=+t,n.exponent=e,n}(3),Ks=function e(t){function n(e){return 1-Math.pow(1-e,t)}return t=+t,n.exponent=e,n}(3),Js=function e(t){function n(e){return((e*=2)<=1?Math.pow(e,t):2-Math.pow(2-e,t))/2}return t=+t,n.exponent=e,n}(3),Qs=Math.PI,eu=Qs/2;function tu(e){return 1===+e?1:1-Math.cos(e*eu)}function nu(e){return Math.sin(e*eu)}function ru(e){return(1-Math.cos(Qs*e))/2}function ou(e){return 1.0009775171065494*(Math.pow(2,-10*e)-.0009765625)}function iu(e){return ou(1-+e)}function au(e){return 1-ou(e)}function su(e){return((e*=2)<=1?ou(1-e):2-ou(e-1))/2}function uu(e){return 1-Math.sqrt(1-e*e)}function lu(e){return Math.sqrt(1- --e*e)}function cu(e){return((e*=2)<=1?1-Math.sqrt(1-e*e):Math.sqrt(1-(e-=2)*e)+1)/2}var fu=4/11,du=6/11,pu=8/11,hu=3/4,gu=9/11,vu=10/11,mu=15/16,yu=21/22,bu=63/64,wu=1/fu/fu;function xu(e){return 1-_u(1-e)}function _u(e){return(e=+e)<fu?wu*e*e:e<pu?wu*(e-=du)*e+hu:e<vu?wu*(e-=gu)*e+mu:wu*(e-=yu)*e+bu}function Su(e){return((e*=2)<=1?1-_u(1-e):_u(e-1)+1)/2}var Ou=1.70158,Cu=function e(t){function n(e){return(e=+e)*e*(t*(e-1)+e)}return t=+t,n.overshoot=e,n}(Ou),Eu=function e(t){function n(e){return--e*e*((e+1)*t+e)+1}return t=+t,n.overshoot=e,n}(Ou),Au=function e(t){function n(e){return((e*=2)<1?e*e*((t+1)*e-t):(e-=2)*e*((t+1)*e+t)+2)/2}return t=+t,n.overshoot=e,n}(Ou),Mu=2*Math.PI,ku=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=Mu);function o(e){return t*ou(- --e)*Math.sin((r-e)/n)}return o.amplitude=function(t){return e(t,n*Mu)},o.period=function(n){return e(t,n)},o}(1,.3),Pu=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=Mu);function o(e){return 1-t*ou(e=+e)*Math.sin((e+r)/n)}return o.amplitude=function(t){return e(t,n*Mu)},o.period=function(n){return e(t,n)},o}(1,.3),Ru=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=Mu);function o(e){return((e=2*e-1)<0?t*ou(-e)*Math.sin((r-e)/n):2-t*ou(e)*Math.sin((r+e)/n))/2}return o.amplitude=function(t){return e(t,n*Mu)},o.period=function(n){return e(t,n)},o}(1,.3);function Tu(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.blob()}function Iu(e,t){return fetch(e,t).then(Tu)}function Bu(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.arrayBuffer()}function Du(e,t){return fetch(e,t).then(Bu)}function ju(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.text()}function Lu(e,t){return fetch(e,t).then(ju)}function Zu(e){return function(t,n,r){return 2===arguments.length&&"function"===typeof n&&(r=n,n=void 0),Lu(t,n).then((function(t){return e(t,r)}))}}function Nu(e,t,n,r){3===arguments.length&&"function"===typeof n&&(r=n,n=void 0);var o=As(e);return Lu(t,n).then((function(e){return o.parse(e,r)}))}var Fu=Zu(ks),Hu=Zu(Ls);function Vu(e,t){return new Promise((function(n,r){var o=new Image;for(var i in t)o[i]=t[i];o.onerror=r,o.onload=function(){n(o)},o.src=e}))}function zu(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);if(204!==e.status&&205!==e.status)return e.json()}function Uu(e,t){return fetch(e,t).then(zu)}function Gu(e){return(t,n)=>Lu(t,n).then((t=>(new DOMParser).parseFromString(t,e)))}var Wu=Gu("application/xml"),$u=Gu("text/html"),qu=Gu("image/svg+xml");function Yu(e,t){var n,r=1;function o(){var o,i,a=n.length,s=0,u=0;for(o=0;o<a;++o)s+=(i=n[o]).x,u+=i.y;for(s=(s/a-e)*r,u=(u/a-t)*r,o=0;o<a;++o)(i=n[o]).x-=s,i.y-=u}return null==e&&(e=0),null==t&&(t=0),o.initialize=function(e){n=e},o.x=function(t){return arguments.length?(e=+t,o):e},o.y=function(e){return arguments.length?(t=+e,o):t},o.strength=function(e){return arguments.length?(r=+e,o):r},o}function Xu(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var o,i,a,s,u,l,c,f,d,p=e._root,h={data:r},g=e._x0,v=e._y0,m=e._x1,y=e._y1;if(!p)return e._root=h,e;for(;p.length;)if((l=t>=(i=(g+m)/2))?g=i:m=i,(c=n>=(a=(v+y)/2))?v=a:y=a,o=p,!(p=p[f=c<<1|l]))return o[f]=h,e;if(s=+e._x.call(null,p.data),u=+e._y.call(null,p.data),t===s&&n===u)return h.next=p,o?o[f]=h:e._root=h,e;do{o=o?o[f]=new Array(4):e._root=new Array(4),(l=t>=(i=(g+m)/2))?g=i:m=i,(c=n>=(a=(v+y)/2))?v=a:y=a}while((f=c<<1|l)===(d=(u>=a)<<1|s>=i));return o[d]=p,o[f]=h,e}function Ku(e,t,n,r,o){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=o}function Ju(e){return e[0]}function Qu(e){return e[1]}function el(e,t,n){var r=new tl(null==t?Ju:t,null==n?Qu:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function tl(e,t,n,r,o,i){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=o,this._y1=i,this._root=void 0}function nl(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var rl=el.prototype=tl.prototype;function ol(e){return function(){return e}}function il(e){return 1e-6*(e()-.5)}function al(e){return e.x+e.vx}function sl(e){return e.y+e.vy}function ul(e){var t,n,r,o=1,i=1;function a(){for(var e,a,u,l,c,f,d,p=t.length,h=0;h<i;++h)for(a=el(t,al,sl).visitAfter(s),e=0;e<p;++e)u=t[e],f=n[u.index],d=f*f,l=u.x+u.vx,c=u.y+u.vy,a.visit(g);function g(e,t,n,i,a){var s=e.data,p=e.r,h=f+p;if(!s)return t>l+h||i<l-h||n>c+h||a<c-h;if(s.index>u.index){var g=l-s.x-s.vx,v=c-s.y-s.vy,m=g*g+v*v;m<h*h&&(0===g&&(m+=(g=il(r))*g),0===v&&(m+=(v=il(r))*v),m=(h-(m=Math.sqrt(m)))/m*o,u.vx+=(g*=m)*(h=(p*=p)/(d+p)),u.vy+=(v*=m)*h,s.vx-=g*(h=1-h),s.vy-=v*h)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function u(){if(t){var r,o,i=t.length;for(n=new Array(i),r=0;r<i;++r)o=t[r],n[o.index]=+e(o,r,t)}}return"function"!==typeof e&&(e=ol(null==e?1:+e)),a.initialize=function(e,n){t=e,r=n,u()},a.iterations=function(e){return arguments.length?(i=+e,a):i},a.strength=function(e){return arguments.length?(o=+e,a):o},a.radius=function(t){return arguments.length?(e="function"===typeof t?t:ol(+t),u(),a):e},a}function ll(e){return e.index}function cl(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function fl(e){var t,n,r,o,i,a,s=ll,u=function(e){return 1/Math.min(o[e.source.index],o[e.target.index])},l=ol(30),c=1;function f(r){for(var o=0,s=e.length;o<c;++o)for(var u,l,f,d,p,h,g,v=0;v<s;++v)l=(u=e[v]).source,d=(f=u.target).x+f.vx-l.x-l.vx||il(a),p=f.y+f.vy-l.y-l.vy||il(a),d*=h=((h=Math.sqrt(d*d+p*p))-n[v])/h*r*t[v],p*=h,f.vx-=d*(g=i[v]),f.vy-=p*g,l.vx+=d*(g=1-g),l.vy+=p*g}function d(){if(r){var a,u,l=r.length,c=e.length,f=new Map(r.map(((e,t)=>[s(e,t,r),e])));for(a=0,o=new Array(l);a<c;++a)(u=e[a]).index=a,"object"!==typeof u.source&&(u.source=cl(f,u.source)),"object"!==typeof u.target&&(u.target=cl(f,u.target)),o[u.source.index]=(o[u.source.index]||0)+1,o[u.target.index]=(o[u.target.index]||0)+1;for(a=0,i=new Array(c);a<c;++a)u=e[a],i[a]=o[u.source.index]/(o[u.source.index]+o[u.target.index]);t=new Array(c),p(),n=new Array(c),h()}}function p(){if(r)for(var n=0,o=e.length;n<o;++n)t[n]=+u(e[n],n,e)}function h(){if(r)for(var t=0,o=e.length;t<o;++t)n[t]=+l(e[t],t,e)}return null==e&&(e=[]),f.initialize=function(e,t){r=e,a=t,d()},f.links=function(t){return arguments.length?(e=t,d(),f):e},f.id=function(e){return arguments.length?(s=e,f):s},f.iterations=function(e){return arguments.length?(c=+e,f):c},f.strength=function(e){return arguments.length?(u="function"===typeof e?e:ol(+e),p(),f):u},f.distance=function(e){return arguments.length?(l="function"===typeof e?e:ol(+e),h(),f):l},f}rl.copy=function(){var e,t,n=new tl(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=nl(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var o=0;o<4;++o)(t=r.source[o])&&(t.length?e.push({source:t,target:r.target[o]=new Array(4)}):r.target[o]=nl(t));return n},rl.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return Xu(this.cover(t,n),t,n,e)},rl.addAll=function(e){var t,n,r,o,i=e.length,a=new Array(i),s=new Array(i),u=1/0,l=1/0,c=-1/0,f=-1/0;for(n=0;n<i;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(a[n]=r,s[n]=o,r<u&&(u=r),r>c&&(c=r),o<l&&(l=o),o>f&&(f=o));if(u>c||l>f)return this;for(this.cover(u,l).cover(c,f),n=0;n<i;++n)Xu(this,a[n],s[n],e[n]);return this},rl.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,o=this._x1,i=this._y1;if(isNaN(n))o=(n=Math.floor(e))+1,i=(r=Math.floor(t))+1;else{for(var a,s,u=o-n||1,l=this._root;n>e||e>=o||r>t||t>=i;)switch(s=(t<r)<<1|e<n,(a=new Array(4))[s]=l,l=a,u*=2,s){case 0:o=n+u,i=r+u;break;case 1:n=o-u,i=r+u;break;case 2:o=n+u,r=i-u;break;case 3:n=o-u,r=i-u}this._root&&this._root.length&&(this._root=l)}return this._x0=n,this._y0=r,this._x1=o,this._y1=i,this},rl.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},rl.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},rl.find=function(e,t,n){var r,o,i,a,s,u,l,c=this._x0,f=this._y0,d=this._x1,p=this._y1,h=[],g=this._root;for(g&&h.push(new Ku(g,c,f,d,p)),null==n?n=1/0:(c=e-n,f=t-n,d=e+n,p=t+n,n*=n);u=h.pop();)if(!(!(g=u.node)||(o=u.x0)>d||(i=u.y0)>p||(a=u.x1)<c||(s=u.y1)<f))if(g.length){var v=(o+a)/2,m=(i+s)/2;h.push(new Ku(g[3],v,m,a,s),new Ku(g[2],o,m,v,s),new Ku(g[1],v,i,a,m),new Ku(g[0],o,i,v,m)),(l=(t>=m)<<1|e>=v)&&(u=h[h.length-1],h[h.length-1]=h[h.length-1-l],h[h.length-1-l]=u)}else{var y=e-+this._x.call(null,g.data),b=t-+this._y.call(null,g.data),w=y*y+b*b;if(w<n){var x=Math.sqrt(n=w);c=e-x,f=t-x,d=e+x,p=t+x,r=g.data}}return r},rl.remove=function(e){if(isNaN(i=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,r,o,i,a,s,u,l,c,f,d,p=this._root,h=this._x0,g=this._y0,v=this._x1,m=this._y1;if(!p)return this;if(p.length)for(;;){if((l=i>=(s=(h+v)/2))?h=s:v=s,(c=a>=(u=(g+m)/2))?g=u:m=u,t=p,!(p=p[f=c<<1|l]))return this;if(!p.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;p.data!==e;)if(r=p,!(p=p.next))return this;return(o=p.next)&&delete p.next,r?(o?r.next=o:delete r.next,this):t?(o?t[f]=o:delete t[f],(p=t[0]||t[1]||t[2]||t[3])&&p===(t[3]||t[2]||t[1]||t[0])&&!p.length&&(n?n[d]=p:this._root=p),this):(this._root=o,this)},rl.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},rl.root=function(){return this._root},rl.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},rl.visit=function(e){var t,n,r,o,i,a,s=[],u=this._root;for(u&&s.push(new Ku(u,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(u=t.node,r=t.x0,o=t.y0,i=t.x1,a=t.y1)&&u.length){var l=(r+i)/2,c=(o+a)/2;(n=u[3])&&s.push(new Ku(n,l,c,i,a)),(n=u[2])&&s.push(new Ku(n,r,c,l,a)),(n=u[1])&&s.push(new Ku(n,l,o,i,c)),(n=u[0])&&s.push(new Ku(n,r,o,l,c))}return this},rl.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new Ku(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var o=t.node;if(o.length){var i,a=t.x0,s=t.y0,u=t.x1,l=t.y1,c=(a+u)/2,f=(s+l)/2;(i=o[0])&&n.push(new Ku(i,a,s,c,f)),(i=o[1])&&n.push(new Ku(i,c,s,u,f)),(i=o[2])&&n.push(new Ku(i,a,f,c,l)),(i=o[3])&&n.push(new Ku(i,c,f,u,l))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},rl.x=function(e){return arguments.length?(this._x=e,this):this._x},rl.y=function(e){return arguments.length?(this._y=e,this):this._y};const dl=1664525,pl=1013904223,hl=4294967296;function gl(e){return e.x}function vl(e){return e.y}var ml=10,yl=Math.PI*(3-Math.sqrt(5));function bl(e){var t,n=1,r=.001,o=1-Math.pow(r,1/300),i=0,a=.6,s=new Map,u=sr(f),l=_t("tick","end"),c=function(){let e=1;return()=>(e=(dl*e+pl)%hl)/hl}();function f(){d(),l.call("tick",t),n<r&&(u.stop(),l.call("end",t))}function d(r){var u,l,c=e.length;void 0===r&&(r=1);for(var f=0;f<r;++f)for(n+=(i-n)*o,s.forEach((function(e){e(n)})),u=0;u<c;++u)null==(l=e[u]).fx?l.x+=l.vx*=a:(l.x=l.fx,l.vx=0),null==l.fy?l.y+=l.vy*=a:(l.y=l.fy,l.vy=0);return t}function p(){for(var t,n=0,r=e.length;n<r;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var o=ml*Math.sqrt(.5+n),i=n*yl;t.x=o*Math.cos(i),t.y=o*Math.sin(i)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function h(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),p(),t={tick:d,restart:function(){return u.restart(f),t},stop:function(){return u.stop(),t},nodes:function(n){return arguments.length?(e=n,p(),s.forEach(h),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(o=+e,t):+o},alphaTarget:function(e){return arguments.length?(i=+e,t):i},velocityDecay:function(e){return arguments.length?(a=1-e,t):1-a},randomSource:function(e){return arguments.length?(c=e,s.forEach(h),t):c},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,h(n)),t):s.get(e)},find:function(t,n,r){var o,i,a,s,u,l=0,c=e.length;for(null==r?r=1/0:r*=r,l=0;l<c;++l)(a=(o=t-(s=e[l]).x)*o+(i=n-s.y)*i)<r&&(u=s,r=a);return u},on:function(e,n){return arguments.length>1?(l.on(e,n),t):l.on(e)}}}function wl(){var e,t,n,r,o,i=ol(-30),a=1,s=1/0,u=.81;function l(n){var o,i=e.length,a=el(e,gl,vl).visitAfter(f);for(r=n,o=0;o<i;++o)t=e[o],a.visit(d)}function c(){if(e){var t,n,r=e.length;for(o=new Array(r),t=0;t<r;++t)n=e[t],o[n.index]=+i(n,t,e)}}function f(e){var t,n,r,i,a,s=0,u=0;if(e.length){for(r=i=a=0;a<4;++a)(t=e[a])&&(n=Math.abs(t.value))&&(s+=t.value,u+=n,r+=n*t.x,i+=n*t.y);e.x=r/u,e.y=i/u}else{(t=e).x=t.data.x,t.y=t.data.y;do{s+=o[t.data.index]}while(t=t.next)}e.value=s}function d(e,i,l,c){if(!e.value)return!0;var f=e.x-t.x,d=e.y-t.y,p=c-i,h=f*f+d*d;if(p*p/u<h)return h<s&&(0===f&&(h+=(f=il(n))*f),0===d&&(h+=(d=il(n))*d),h<a&&(h=Math.sqrt(a*h)),t.vx+=f*e.value*r/h,t.vy+=d*e.value*r/h),!0;if(!(e.length||h>=s)){(e.data!==t||e.next)&&(0===f&&(h+=(f=il(n))*f),0===d&&(h+=(d=il(n))*d),h<a&&(h=Math.sqrt(a*h)));do{e.data!==t&&(p=o[e.data.index]*r/h,t.vx+=f*p,t.vy+=d*p)}while(e=e.next)}}return l.initialize=function(t,r){e=t,n=r,c()},l.strength=function(e){return arguments.length?(i="function"===typeof e?e:ol(+e),c(),l):i},l.distanceMin=function(e){return arguments.length?(a=e*e,l):Math.sqrt(a)},l.distanceMax=function(e){return arguments.length?(s=e*e,l):Math.sqrt(s)},l.theta=function(e){return arguments.length?(u=e*e,l):Math.sqrt(u)},l}function xl(e,t,n){var r,o,i,a=ol(.1);function s(e){for(var a=0,s=r.length;a<s;++a){var u=r[a],l=u.x-t||1e-6,c=u.y-n||1e-6,f=Math.sqrt(l*l+c*c),d=(i[a]-f)*o[a]*e/f;u.vx+=l*d,u.vy+=c*d}}function u(){if(r){var t,n=r.length;for(o=new Array(n),i=new Array(n),t=0;t<n;++t)i[t]=+e(r[t],t,r),o[t]=isNaN(i[t])?0:+a(r[t],t,r)}}return"function"!==typeof e&&(e=ol(+e)),null==t&&(t=0),null==n&&(n=0),s.initialize=function(e){r=e,u()},s.strength=function(e){return arguments.length?(a="function"===typeof e?e:ol(+e),u(),s):a},s.radius=function(t){return arguments.length?(e="function"===typeof t?t:ol(+t),u(),s):e},s.x=function(e){return arguments.length?(t=+e,s):t},s.y=function(e){return arguments.length?(n=+e,s):n},s}function _l(e){var t,n,r,o=ol(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vx+=(r[i]-o.x)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!==typeof e&&(e=ol(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"===typeof e?e:ol(+e),a(),i):o},i.x=function(t){return arguments.length?(e="function"===typeof t?t:ol(+t),a(),i):e},i}function Sl(e){var t,n,r,o=ol(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vy+=(r[i]-o.y)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!==typeof e&&(e=ol(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"===typeof e?e:ol(+e),a(),i):o},i.y=function(t){return arguments.length?(e="function"===typeof t?t:ol(+t),a(),i):e},i}var Ol=n(65386),Cl=n(80028),El=n(42035),Al=n(96909),Ml=n(87017),kl=n(63482);class Pl{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let r=0;r<this._n&&r<32;r++){const o=t[r],i=e+o,a=Math.abs(e)<Math.abs(o)?e-(i-o):o-(i-e);a&&(t[n++]=a),e=i}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,r,o=this._n,i=0;if(o>0){for(i=e[--o];o>0&&(t=i,n=e[--o],i=t+n,r=n-(i-t),!r););o>0&&(r<0&&e[o-1]<0||r>0&&e[o-1]>0)&&(n=2*r,t=i+n,n==t-i&&(i=t))}return i}}var Rl=1e-6,Tl=1e-12,Il=Math.PI,Bl=Il/2,Dl=Il/4,jl=2*Il,Ll=180/Il,Zl=Il/180,Nl=Math.abs,Fl=Math.atan,Hl=Math.atan2,Vl=Math.cos,zl=Math.ceil,Ul=Math.exp,Gl=(Math.floor,Math.hypot),Wl=Math.log,$l=Math.pow,ql=Math.sin,Yl=Math.sign||function(e){return e>0?1:e<0?-1:0},Xl=Math.sqrt,Kl=Math.tan;function Jl(e){return e>1?0:e<-1?Il:Math.acos(e)}function Ql(e){return e>1?Bl:e<-1?-Bl:Math.asin(e)}function ec(e){return(e=ql(e/2))*e}function tc(){}function nc(e,t){e&&oc.hasOwnProperty(e.type)&&oc[e.type](e,t)}var rc={Feature:function(e,t){nc(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r<o;)nc(n[r].geometry,t)}},oc={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){ic(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)ic(n[r],t,0)},Polygon:function(e,t){ac(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)ac(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,o=n.length;++r<o;)nc(n[r],t)}};function ic(e,t,n){var r,o=-1,i=e.length-n;for(t.lineStart();++o<i;)r=e[o],t.point(r[0],r[1],r[2]);t.lineEnd()}function ac(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)ic(e[n],t,1);t.polygonEnd()}function sc(e,t){e&&rc.hasOwnProperty(e.type)?rc[e.type](e,t):nc(e,t)}var uc,lc,cc,fc,dc,pc,hc,gc,vc,mc,yc,bc,wc,xc,_c,Sc,Oc=new Pl,Cc=new Pl,Ec={point:tc,lineStart:tc,lineEnd:tc,polygonStart:function(){Oc=new Pl,Ec.lineStart=Ac,Ec.lineEnd=Mc},polygonEnd:function(){var e=+Oc;Cc.add(e<0?jl+e:e),this.lineStart=this.lineEnd=this.point=tc},sphere:function(){Cc.add(jl)}};function Ac(){Ec.point=kc}function Mc(){Pc(uc,lc)}function kc(e,t){Ec.point=Pc,uc=e,lc=t,cc=e*=Zl,fc=Vl(t=(t*=Zl)/2+Dl),dc=ql(t)}function Pc(e,t){var n=(e*=Zl)-cc,r=n>=0?1:-1,o=r*n,i=Vl(t=(t*=Zl)/2+Dl),a=ql(t),s=dc*a,u=fc*i+s*Vl(o),l=s*r*ql(o);Oc.add(Hl(l,u)),cc=e,fc=i,dc=a}function Rc(e){return Cc=new Pl,sc(e,Ec),2*Cc}function Tc(e){return[Hl(e[1],e[0]),Ql(e[2])]}function Ic(e){var t=e[0],n=e[1],r=Vl(n);return[r*Vl(t),r*ql(t),ql(n)]}function Bc(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Dc(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function jc(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function Lc(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function Zc(e){var t=Xl(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var Nc,Fc,Hc,Vc,zc,Uc,Gc,Wc,$c,qc,Yc,Xc,Kc,Jc,Qc,ef,tf={point:nf,lineStart:of,lineEnd:af,polygonStart:function(){tf.point=sf,tf.lineStart=uf,tf.lineEnd=lf,xc=new Pl,Ec.polygonStart()},polygonEnd:function(){Ec.polygonEnd(),tf.point=nf,tf.lineStart=of,tf.lineEnd=af,Oc<0?(pc=-(gc=180),hc=-(vc=90)):xc>Rl?vc=90:xc<-Rl&&(hc=-90),Sc[0]=pc,Sc[1]=gc},sphere:function(){pc=-(gc=180),hc=-(vc=90)}};function nf(e,t){_c.push(Sc=[pc=e,gc=e]),t<hc&&(hc=t),t>vc&&(vc=t)}function rf(e,t){var n=Ic([e*Zl,t*Zl]);if(wc){var r=Dc(wc,n),o=Dc([r[1],-r[0],0],r);Zc(o),o=Tc(o);var i,a=e-mc,s=a>0?1:-1,u=o[0]*Ll*s,l=Nl(a)>180;l^(s*mc<u&&u<s*e)?(i=o[1]*Ll)>vc&&(vc=i):l^(s*mc<(u=(u+360)%360-180)&&u<s*e)?(i=-o[1]*Ll)<hc&&(hc=i):(t<hc&&(hc=t),t>vc&&(vc=t)),l?e<mc?cf(pc,e)>cf(pc,gc)&&(gc=e):cf(e,gc)>cf(pc,gc)&&(pc=e):gc>=pc?(e<pc&&(pc=e),e>gc&&(gc=e)):e>mc?cf(pc,e)>cf(pc,gc)&&(gc=e):cf(e,gc)>cf(pc,gc)&&(pc=e)}else _c.push(Sc=[pc=e,gc=e]);t<hc&&(hc=t),t>vc&&(vc=t),wc=n,mc=e}function of(){tf.point=rf}function af(){Sc[0]=pc,Sc[1]=gc,tf.point=nf,wc=null}function sf(e,t){if(wc){var n=e-mc;xc.add(Nl(n)>180?n+(n>0?360:-360):n)}else yc=e,bc=t;Ec.point(e,t),rf(e,t)}function uf(){Ec.lineStart()}function lf(){sf(yc,bc),Ec.lineEnd(),Nl(xc)>Rl&&(pc=-(gc=180)),Sc[0]=pc,Sc[1]=gc,wc=null}function cf(e,t){return(t-=e)<0?t+360:t}function ff(e,t){return e[0]-t[0]}function df(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}function pf(e){var t,n,r,o,i,a,s;if(vc=gc=-(pc=hc=1/0),_c=[],sc(e,tf),n=_c.length){for(_c.sort(ff),t=1,i=[r=_c[0]];t<n;++t)df(r,(o=_c[t])[0])||df(r,o[1])?(cf(r[0],o[1])>cf(r[0],r[1])&&(r[1]=o[1]),cf(o[0],r[1])>cf(r[0],r[1])&&(r[0]=o[0])):i.push(r=o);for(a=-1/0,t=0,r=i[n=i.length-1];t<=n;r=o,++t)o=i[t],(s=cf(r[1],o[0]))>a&&(a=s,pc=o[0],gc=r[1])}return _c=Sc=null,pc===1/0||hc===1/0?[[NaN,NaN],[NaN,NaN]]:[[pc,hc],[gc,vc]]}var hf={sphere:tc,point:gf,lineStart:mf,lineEnd:wf,polygonStart:function(){hf.lineStart=xf,hf.lineEnd=_f},polygonEnd:function(){hf.lineStart=mf,hf.lineEnd=wf}};function gf(e,t){e*=Zl;var n=Vl(t*=Zl);vf(n*Vl(e),n*ql(e),ql(t))}function vf(e,t,n){++Nc,Hc+=(e-Hc)/Nc,Vc+=(t-Vc)/Nc,zc+=(n-zc)/Nc}function mf(){hf.point=yf}function yf(e,t){e*=Zl;var n=Vl(t*=Zl);Jc=n*Vl(e),Qc=n*ql(e),ef=ql(t),hf.point=bf,vf(Jc,Qc,ef)}function bf(e,t){e*=Zl;var n=Vl(t*=Zl),r=n*Vl(e),o=n*ql(e),i=ql(t),a=Hl(Xl((a=Qc*i-ef*o)*a+(a=ef*r-Jc*i)*a+(a=Jc*o-Qc*r)*a),Jc*r+Qc*o+ef*i);Fc+=a,Uc+=a*(Jc+(Jc=r)),Gc+=a*(Qc+(Qc=o)),Wc+=a*(ef+(ef=i)),vf(Jc,Qc,ef)}function wf(){hf.point=gf}function xf(){hf.point=Sf}function _f(){Of(Xc,Kc),hf.point=gf}function Sf(e,t){Xc=e,Kc=t,e*=Zl,t*=Zl,hf.point=Of;var n=Vl(t);Jc=n*Vl(e),Qc=n*ql(e),ef=ql(t),vf(Jc,Qc,ef)}function Of(e,t){e*=Zl;var n=Vl(t*=Zl),r=n*Vl(e),o=n*ql(e),i=ql(t),a=Qc*i-ef*o,s=ef*r-Jc*i,u=Jc*o-Qc*r,l=Gl(a,s,u),c=Ql(l),f=l&&-c/l;$c.add(f*a),qc.add(f*s),Yc.add(f*u),Fc+=c,Uc+=c*(Jc+(Jc=r)),Gc+=c*(Qc+(Qc=o)),Wc+=c*(ef+(ef=i)),vf(Jc,Qc,ef)}function Cf(e){Nc=Fc=Hc=Vc=zc=Uc=Gc=Wc=0,$c=new Pl,qc=new Pl,Yc=new Pl,sc(e,hf);var t=+$c,n=+qc,r=+Yc,o=Gl(t,n,r);return o<Tl&&(t=Uc,n=Gc,r=Wc,Fc<Rl&&(t=Hc,n=Vc,r=zc),(o=Gl(t,n,r))<Tl)?[NaN,NaN]:[Hl(n,t)*Ll,Ql(r/o)*Ll]}function Ef(e){return function(){return e}}function Af(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}function Mf(e,t){return Nl(e)>Il&&(e-=Math.round(e/jl)*jl),[e,t]}function kf(e,t,n){return(e%=jl)?t||n?Af(Rf(e),Tf(t,n)):Rf(e):t||n?Tf(t,n):Mf}function Pf(e){return function(t,n){return Nl(t+=e)>Il&&(t-=Math.round(t/jl)*jl),[t,n]}}function Rf(e){var t=Pf(e);return t.invert=Pf(-e),t}function Tf(e,t){var n=Vl(e),r=ql(e),o=Vl(t),i=ql(t);function a(e,t){var a=Vl(t),s=Vl(e)*a,u=ql(e)*a,l=ql(t),c=l*n+s*r;return[Hl(u*o-c*i,s*n-l*r),Ql(c*o+u*i)]}return a.invert=function(e,t){var a=Vl(t),s=Vl(e)*a,u=ql(e)*a,l=ql(t),c=l*o-u*i;return[Hl(u*o+l*i,s*n+c*r),Ql(c*n-s*r)]},a}function If(e){function t(t){return(t=e(t[0]*Zl,t[1]*Zl))[0]*=Ll,t[1]*=Ll,t}return e=kf(e[0]*Zl,e[1]*Zl,e.length>2?e[2]*Zl:0),t.invert=function(t){return(t=e.invert(t[0]*Zl,t[1]*Zl))[0]*=Ll,t[1]*=Ll,t},t}function Bf(e,t,n,r,o,i){if(n){var a=Vl(t),s=ql(t),u=r*n;null==o?(o=t+r*jl,i=t-u/2):(o=Df(a,o),i=Df(a,i),(r>0?o<i:o>i)&&(o+=r*jl));for(var l,c=o;r>0?c>i:c<i;c-=u)l=Tc([a,-s*Vl(c),-s*ql(c)]),e.point(l[0],l[1])}}function Df(e,t){(t=Ic(t))[0]-=e,Zc(t);var n=Jl(-t[1]);return((-t[2]<0?-n:n)+jl-Rl)%jl}function jf(){var e,t,n=Ef([0,0]),r=Ef(90),o=Ef(6),i={point:function(n,r){e.push(n=t(n,r)),n[0]*=Ll,n[1]*=Ll}};function a(){var a=n.apply(this,arguments),s=r.apply(this,arguments)*Zl,u=o.apply(this,arguments)*Zl;return e=[],t=kf(-a[0]*Zl,-a[1]*Zl,0).invert,Bf(i,s,u,1),a={type:"Polygon",coordinates:[e]},e=t=null,a}return a.center=function(e){return arguments.length?(n="function"===typeof e?e:Ef([+e[0],+e[1]]),a):n},a.radius=function(e){return arguments.length?(r="function"===typeof e?e:Ef(+e),a):r},a.precision=function(e){return arguments.length?(o="function"===typeof e?e:Ef(+e),a):o},a}function Lf(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:tc,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Zf(e,t){return Nl(e[0]-t[0])<Rl&&Nl(e[1]-t[1])<Rl}function Nf(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Ff(e,t,n,r,o){var i,a,s=[],u=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,r=e[0],a=e[t];if(Zf(r,a)){if(!r[2]&&!a[2]){for(o.lineStart(),i=0;i<t;++i)o.point((r=e[i])[0],r[1]);return void o.lineEnd()}a[0]+=2*Rl}s.push(n=new Nf(r,e,null,!0)),u.push(n.o=new Nf(r,null,n,!1)),s.push(n=new Nf(a,e,null,!1)),u.push(n.o=new Nf(a,null,n,!0))}})),s.length){for(u.sort(t),Hf(s),Hf(u),i=0,a=u.length;i<a;++i)u[i].e=n=!n;for(var l,c,f=s[0];;){for(var d=f,p=!0;d.v;)if((d=d.n)===f)return;l=d.z,o.lineStart();do{if(d.v=d.o.v=!0,d.e){if(p)for(i=0,a=l.length;i<a;++i)o.point((c=l[i])[0],c[1]);else r(d.x,d.n.x,1,o);d=d.n}else{if(p)for(l=d.p.z,i=l.length-1;i>=0;--i)o.point((c=l[i])[0],c[1]);else r(d.x,d.p.x,-1,o);d=d.p}l=(d=d.o).z,p=!p}while(!d.v);o.lineEnd()}}}function Hf(e){if(t=e.length){for(var t,n,r=0,o=e[0];++r<t;)o.n=n=e[r],n.p=o,o=n;o.n=n=e[0],n.p=o}}function Vf(e){return Nl(e[0])<=Il?e[0]:Yl(e[0])*((Nl(e[0])+Il)%jl-Il)}function zf(e,t){var n=Vf(t),r=t[1],o=ql(r),i=[ql(n),-Vl(n),0],a=0,s=0,u=new Pl;1===o?r=Bl+Rl:-1===o&&(r=-Bl-Rl);for(var l=0,c=e.length;l<c;++l)if(d=(f=e[l]).length)for(var f,d,p=f[d-1],h=Vf(p),g=p[1]/2+Dl,v=ql(g),m=Vl(g),y=0;y<d;++y,h=w,v=_,m=S,p=b){var b=f[y],w=Vf(b),x=b[1]/2+Dl,_=ql(x),S=Vl(x),O=w-h,C=O>=0?1:-1,E=C*O,A=E>Il,M=v*_;if(u.add(Hl(M*C*ql(E),m*S+M*Vl(E))),a+=A?O+C*jl:O,A^h>=n^w>=n){var k=Dc(Ic(p),Ic(b));Zc(k);var P=Dc(i,k);Zc(P);var R=(A^O>=0?-1:1)*Ql(P[2]);(r>R||r===R&&(k[0]||k[1]))&&(s+=A^O>=0?1:-1)}}return(a<-Rl||a<Rl&&u<-Tl)^1&s}function Uf(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function Gf(e,t,n,r){return function(o){var i,a,s,u=t(o),l=Lf(),c=t(l),f=!1,d={point:p,lineStart:g,lineEnd:v,polygonStart:function(){d.point=m,d.lineStart=y,d.lineEnd=b,a=[],i=[]},polygonEnd:function(){d.point=p,d.lineStart=g,d.lineEnd=v,a=Uf(a);var e=zf(i,r);a.length?(f||(o.polygonStart(),f=!0),Ff(a,$f,e,n,o)):e&&(f||(o.polygonStart(),f=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),f&&(o.polygonEnd(),f=!1),a=i=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}};function p(t,n){e(t,n)&&o.point(t,n)}function h(e,t){u.point(e,t)}function g(){d.point=h,u.lineStart()}function v(){d.point=p,u.lineEnd()}function m(e,t){s.push([e,t]),c.point(e,t)}function y(){c.lineStart(),s=[]}function b(){m(s[0][0],s[0][1]),c.lineEnd();var e,t,n,r,u=c.clean(),d=l.result(),p=d.length;if(s.pop(),i.push(s),s=null,p)if(1&u){if((t=(n=d[0]).length-1)>0){for(f||(o.polygonStart(),f=!0),o.lineStart(),e=0;e<t;++e)o.point((r=n[e])[0],r[1]);o.lineEnd()}}else p>1&&2&u&&d.push(d.pop().concat(d.shift())),a.push(d.filter(Wf))}return d}}function Wf(e){return e.length>1}function $f(e,t){return((e=e.x)[0]<0?e[1]-Bl-Rl:Bl-e[1])-((t=t.x)[0]<0?t[1]-Bl-Rl:Bl-t[1])}Mf.invert=Mf;var qf=Gf((function(){return!0}),(function(e){var t,n=NaN,r=NaN,o=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(i,a){var s=i>0?Il:-Il,u=Nl(i-n);Nl(u-Il)<Rl?(e.point(n,r=(r+a)/2>0?Bl:-Bl),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(i,r),t=0):o!==s&&u>=Il&&(Nl(n-o)<Rl&&(n-=o*Rl),Nl(i-s)<Rl&&(i-=s*Rl),r=function(e,t,n,r){var o,i,a=ql(e-n);return Nl(a)>Rl?Fl((ql(t)*(i=Vl(r))*ql(n)-ql(r)*(o=Vl(t))*ql(e))/(o*i*a)):(t+r)/2}(n,r,i,a),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=i,r=a),o=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var o;if(null==e)o=n*Bl,r.point(-Il,o),r.point(0,o),r.point(Il,o),r.point(Il,0),r.point(Il,-o),r.point(0,-o),r.point(-Il,-o),r.point(-Il,0),r.point(-Il,o);else if(Nl(e[0]-t[0])>Rl){var i=e[0]<t[0]?Il:-Il;o=n*i/2,r.point(-i,o),r.point(0,o),r.point(i,o)}else r.point(t[0],t[1])}),[-Il,-Bl]);function Yf(e){var t=Vl(e),n=6*Zl,r=t>0,o=Nl(t)>Rl;function i(e,n){return Vl(e)*Vl(n)>t}function a(e,n,r){var o=[1,0,0],i=Dc(Ic(e),Ic(n)),a=Bc(i,i),s=i[0],u=a-s*s;if(!u)return!r&&e;var l=t*a/u,c=-t*s/u,f=Dc(o,i),d=Lc(o,l);jc(d,Lc(i,c));var p=f,h=Bc(d,p),g=Bc(p,p),v=h*h-g*(Bc(d,d)-1);if(!(v<0)){var m=Xl(v),y=Lc(p,(-h-m)/g);if(jc(y,d),y=Tc(y),!r)return y;var b,w=e[0],x=n[0],_=e[1],S=n[1];x<w&&(b=w,w=x,x=b);var O=x-w,C=Nl(O-Il)<Rl;if(!C&&S<_&&(b=_,_=S,S=b),C||O<Rl?C?_+S>0^y[1]<(Nl(y[0]-w)<Rl?_:S):_<=y[1]&&y[1]<=S:O>Il^(w<=y[0]&&y[0]<=x)){var E=Lc(p,(-h+m)/g);return jc(E,d),[y,Tc(E)]}}}function s(t,n){var o=r?e:Il-e,i=0;return t<-o?i|=1:t>o&&(i|=2),n<-o?i|=4:n>o&&(i|=8),i}return Gf(i,(function(e){var t,n,u,l,c;return{lineStart:function(){l=u=!1,c=1},point:function(f,d){var p,h=[f,d],g=i(f,d),v=r?g?0:s(f,d):g?s(f+(f<0?Il:-Il),d):0;if(!t&&(l=u=g)&&e.lineStart(),g!==u&&(!(p=a(t,h))||Zf(t,p)||Zf(h,p))&&(h[2]=1),g!==u)c=0,g?(e.lineStart(),p=a(h,t),e.point(p[0],p[1])):(p=a(t,h),e.point(p[0],p[1],2),e.lineEnd()),t=p;else if(o&&t&&r^g){var m;v&n||!(m=a(h,t,!0))||(c=0,r?(e.lineStart(),e.point(m[0][0],m[0][1]),e.point(m[1][0],m[1][1]),e.lineEnd()):(e.point(m[1][0],m[1][1]),e.lineEnd(),e.lineStart(),e.point(m[0][0],m[0][1],3)))}!g||t&&Zf(t,h)||e.point(h[0],h[1]),t=h,u=g,n=v},lineEnd:function(){u&&e.lineEnd(),t=null},clean:function(){return c|(l&&u)<<1}}}),(function(t,r,o,i){Bf(i,e,n,o,t,r)}),r?[0,-e]:[-Il,e-Il])}var Xf,Kf,Jf,Qf,ed=1e9,td=-ed;function nd(e,t,n,r){function o(o,i){return e<=o&&o<=n&&t<=i&&i<=r}function i(o,i,s,l){var c=0,f=0;if(null==o||(c=a(o,s))!==(f=a(i,s))||u(o,i)<0^s>0)do{l.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+s+4)%4)!==f);else l.point(i[0],i[1])}function a(r,o){return Nl(r[0]-e)<Rl?o>0?0:3:Nl(r[0]-n)<Rl?o>0?2:1:Nl(r[1]-t)<Rl?o>0?1:0:o>0?3:2}function s(e,t){return u(e.x,t.x)}function u(e,t){var n=a(e,1),r=a(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(a){var u,l,c,f,d,p,h,g,v,m,y,b=a,w=Lf(),x={point:_,lineStart:function(){x.point=S,l&&l.push(c=[]);m=!0,v=!1,h=g=NaN},lineEnd:function(){u&&(S(f,d),p&&v&&w.rejoin(),u.push(w.result()));x.point=_,v&&b.lineEnd()},polygonStart:function(){b=w,u=[],l=[],y=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,o=l.length;n<o;++n)for(var i,a,s=l[n],u=1,c=s.length,f=s[0],d=f[0],p=f[1];u<c;++u)i=d,a=p,d=(f=s[u])[0],p=f[1],a<=r?p>r&&(d-i)*(r-a)>(p-a)*(e-i)&&++t:p<=r&&(d-i)*(r-a)<(p-a)*(e-i)&&--t;return t}(),n=y&&t,o=(u=Uf(u)).length;(n||o)&&(a.polygonStart(),n&&(a.lineStart(),i(null,null,1,a),a.lineEnd()),o&&Ff(u,s,t,i,a),a.polygonEnd());b=a,u=l=c=null}};function _(e,t){o(e,t)&&b.point(e,t)}function S(i,a){var s=o(i,a);if(l&&c.push([i,a]),m)f=i,d=a,p=s,m=!1,s&&(b.lineStart(),b.point(i,a));else if(s&&v)b.point(i,a);else{var u=[h=Math.max(td,Math.min(ed,h)),g=Math.max(td,Math.min(ed,g))],w=[i=Math.max(td,Math.min(ed,i)),a=Math.max(td,Math.min(ed,a))];!function(e,t,n,r,o,i){var a,s=e[0],u=e[1],l=0,c=1,f=t[0]-s,d=t[1]-u;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a<l)return;a<c&&(c=a)}else if(f>0){if(a>c)return;a>l&&(l=a)}if(a=o-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>l&&(l=a)}else if(f>0){if(a<l)return;a<c&&(c=a)}if(a=r-u,d||!(a>0)){if(a/=d,d<0){if(a<l)return;a<c&&(c=a)}else if(d>0){if(a>c)return;a>l&&(l=a)}if(a=i-u,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>l&&(l=a)}else if(d>0){if(a<l)return;a<c&&(c=a)}return l>0&&(e[0]=s+l*f,e[1]=u+l*d),c<1&&(t[0]=s+c*f,t[1]=u+c*d),!0}}}}}(u,w,e,t,n,r)?s&&(b.lineStart(),b.point(i,a),y=!1):(v||(b.lineStart(),b.point(u[0],u[1])),b.point(w[0],w[1]),s||b.lineEnd(),y=!1)}h=i,g=a,v=s}return x}}function rd(){var e,t,n,r=0,o=0,i=960,a=500;return n={stream:function(n){return e&&t===n?e:e=nd(r,o,i,a)(t=n)},extent:function(s){return arguments.length?(r=+s[0][0],o=+s[0][1],i=+s[1][0],a=+s[1][1],e=t=null,n):[[r,o],[i,a]]}}}var od={sphere:tc,point:tc,lineStart:function(){od.point=ad,od.lineEnd=id},lineEnd:tc,polygonStart:tc,polygonEnd:tc};function id(){od.point=od.lineEnd=tc}function ad(e,t){Kf=e*=Zl,Jf=ql(t*=Zl),Qf=Vl(t),od.point=sd}function sd(e,t){e*=Zl;var n=ql(t*=Zl),r=Vl(t),o=Nl(e-Kf),i=Vl(o),a=r*ql(o),s=Qf*n-Jf*r*i,u=Jf*n+Qf*r*i;Xf.add(Hl(Xl(a*a+s*s),u)),Kf=e,Jf=n,Qf=r}function ud(e){return Xf=new Pl,sc(e,od),+Xf}var ld=[null,null],cd={type:"LineString",coordinates:ld};function fd(e,t){return ld[0]=e,ld[1]=t,ud(cd)}var dd={Feature:function(e,t){return hd(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r<o;)if(hd(n[r].geometry,t))return!0;return!1}},pd={Sphere:function(){return!0},Point:function(e,t){return gd(e.coordinates,t)},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(gd(n[r],t))return!0;return!1},LineString:function(e,t){return vd(e.coordinates,t)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(vd(n[r],t))return!0;return!1},Polygon:function(e,t){return md(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(md(n[r],t))return!0;return!1},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,o=n.length;++r<o;)if(hd(n[r],t))return!0;return!1}};function hd(e,t){return!(!e||!pd.hasOwnProperty(e.type))&&pd[e.type](e,t)}function gd(e,t){return 0===fd(e,t)}function vd(e,t){for(var n,r,o,i=0,a=e.length;i<a;i++){if(0===(r=fd(e[i],t)))return!0;if(i>0&&(o=fd(e[i],e[i-1]))>0&&n<=o&&r<=o&&(n+r-o)*(1-Math.pow((n-r)/o,2))<Tl*o)return!0;n=r}return!1}function md(e,t){return!!zf(e.map(yd),bd(t))}function yd(e){return(e=e.map(bd)).pop(),e}function bd(e){return[e[0]*Zl,e[1]*Zl]}function wd(e,t){return(e&&dd.hasOwnProperty(e.type)?dd[e.type]:hd)(e,t)}function xd(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(o);++r<o;)i[r]=e+r*n;return i}function _d(e,t,n){var r=xd(e,t-Rl,n).concat(t);return function(e){return r.map((function(t){return[e,t]}))}}function Sd(e,t,n){var r=xd(e,t-Rl,n).concat(t);return function(e){return r.map((function(t){return[t,e]}))}}function Od(){var e,t,n,r,o,i,a,s,u,l,c,f,d=10,p=d,h=90,g=360,v=2.5;function m(){return{type:"MultiLineString",coordinates:y()}}function y(){return xd(zl(r/h)*h,n,h).map(c).concat(xd(zl(s/g)*g,a,g).map(f)).concat(xd(zl(t/d)*d,e,d).filter((function(e){return Nl(e%h)>Rl})).map(u)).concat(xd(zl(i/p)*p,o,p).filter((function(e){return Nl(e%g)>Rl})).map(l))}return m.lines=function(){return y().map((function(e){return{type:"LineString",coordinates:e}}))},m.outline=function(){return{type:"Polygon",coordinates:[c(r).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},m.extent=function(e){return arguments.length?m.extentMajor(e).extentMinor(e):m.extentMinor()},m.extentMajor=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],s=+e[0][1],a=+e[1][1],r>n&&(e=r,r=n,n=e),s>a&&(e=s,s=a,a=e),m.precision(v)):[[r,s],[n,a]]},m.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],i=+n[0][1],o=+n[1][1],t>e&&(n=t,t=e,e=n),i>o&&(n=i,i=o,o=n),m.precision(v)):[[t,i],[e,o]]},m.step=function(e){return arguments.length?m.stepMajor(e).stepMinor(e):m.stepMinor()},m.stepMajor=function(e){return arguments.length?(h=+e[0],g=+e[1],m):[h,g]},m.stepMinor=function(e){return arguments.length?(d=+e[0],p=+e[1],m):[d,p]},m.precision=function(d){return arguments.length?(v=+d,u=_d(i,o,90),l=Sd(t,e,v),c=_d(s,a,90),f=Sd(r,n,v),m):v},m.extentMajor([[-180,-90+Rl],[180,90-Rl]]).extentMinor([[-180,-80-Rl],[180,80+Rl]])}function Cd(){return Od()()}function Ed(e,t){var n=e[0]*Zl,r=e[1]*Zl,o=t[0]*Zl,i=t[1]*Zl,a=Vl(r),s=ql(r),u=Vl(i),l=ql(i),c=a*Vl(n),f=a*ql(n),d=u*Vl(o),p=u*ql(o),h=2*Ql(Xl(ec(i-r)+a*u*ec(o-n))),g=ql(h),v=h?function(e){var t=ql(e*=h)/g,n=ql(h-e)/g,r=n*c+t*d,o=n*f+t*p,i=n*s+t*l;return[Hl(o,r)*Ll,Hl(i,Xl(r*r+o*o))*Ll]}:function(){return[n*Ll,r*Ll]};return v.distance=h,v}var Ad,Md,kd,Pd,Rd=e=>e,Td=new Pl,Id=new Pl,Bd={point:tc,lineStart:tc,lineEnd:tc,polygonStart:function(){Bd.lineStart=Dd,Bd.lineEnd=Zd},polygonEnd:function(){Bd.lineStart=Bd.lineEnd=Bd.point=tc,Td.add(Nl(Id)),Id=new Pl},result:function(){var e=Td/2;return Td=new Pl,e}};function Dd(){Bd.point=jd}function jd(e,t){Bd.point=Ld,Ad=kd=e,Md=Pd=t}function Ld(e,t){Id.add(Pd*e-kd*t),kd=e,Pd=t}function Zd(){Ld(Ad,Md)}var Nd=Bd,Fd=1/0,Hd=Fd,Vd=-Fd,zd=Vd,Ud={point:function(e,t){e<Fd&&(Fd=e);e>Vd&&(Vd=e);t<Hd&&(Hd=t);t>zd&&(zd=t)},lineStart:tc,lineEnd:tc,polygonStart:tc,polygonEnd:tc,result:function(){var e=[[Fd,Hd],[Vd,zd]];return Vd=zd=-(Hd=Fd=1/0),e}};var Gd,Wd,$d,qd,Yd=Ud,Xd=0,Kd=0,Jd=0,Qd=0,ep=0,tp=0,np=0,rp=0,op=0,ip={point:ap,lineStart:sp,lineEnd:cp,polygonStart:function(){ip.lineStart=fp,ip.lineEnd=dp},polygonEnd:function(){ip.point=ap,ip.lineStart=sp,ip.lineEnd=cp},result:function(){var e=op?[np/op,rp/op]:tp?[Qd/tp,ep/tp]:Jd?[Xd/Jd,Kd/Jd]:[NaN,NaN];return Xd=Kd=Jd=Qd=ep=tp=np=rp=op=0,e}};function ap(e,t){Xd+=e,Kd+=t,++Jd}function sp(){ip.point=up}function up(e,t){ip.point=lp,ap($d=e,qd=t)}function lp(e,t){var n=e-$d,r=t-qd,o=Xl(n*n+r*r);Qd+=o*($d+e)/2,ep+=o*(qd+t)/2,tp+=o,ap($d=e,qd=t)}function cp(){ip.point=ap}function fp(){ip.point=pp}function dp(){hp(Gd,Wd)}function pp(e,t){ip.point=hp,ap(Gd=$d=e,Wd=qd=t)}function hp(e,t){var n=e-$d,r=t-qd,o=Xl(n*n+r*r);Qd+=o*($d+e)/2,ep+=o*(qd+t)/2,tp+=o,np+=(o=qd*e-$d*t)*($d+e),rp+=o*(qd+t),op+=3*o,ap($d=e,qd=t)}var gp=ip;function vp(e){this._context=e}vp.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,jl)}},result:tc};var mp,yp,bp,wp,xp,_p=new Pl,Sp={point:tc,lineStart:function(){Sp.point=Op},lineEnd:function(){mp&&Cp(yp,bp),Sp.point=tc},polygonStart:function(){mp=!0},polygonEnd:function(){mp=null},result:function(){var e=+_p;return _p=new Pl,e}};function Op(e,t){Sp.point=Cp,yp=wp=e,bp=xp=t}function Cp(e,t){wp-=e,xp-=t,_p.add(Xl(wp*wp+xp*xp)),wp=e,xp=t}var Ep=Sp;let Ap,Mp,kp,Pp;class Rp{constructor(e){this._append=null==e?Tp:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return Tp;if(t!==Ap){const e=10**t;Ap=t,Mp=function(t){let n=1;this._+=t[0];for(const r=t.length;n<r;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}return Mp}(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(e,t){switch(this._point){case 0:this._append`M${e},${t}`,this._point=1;break;case 1:this._append`L${e},${t}`;break;default:if(this._append`M${e},${t}`,this._radius!==kp||this._append!==Mp){const e=this._radius,t=this._;this._="",this._append`m0,${e}a${e},${e} 0 1,1 0,${-2*e}a${e},${e} 0 1,1 0,${2*e}z`,kp=e,Mp=this._append,Pp=this._,this._=t}this._+=Pp}}result(){const e=this._;return this._="",e.length?e:null}}function Tp(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Ip(e,t){let n,r,o=3,i=4.5;function a(e){return e&&("function"===typeof i&&r.pointRadius(+i.apply(this,arguments)),sc(e,n(r))),r.result()}return a.area=function(e){return sc(e,n(Nd)),Nd.result()},a.measure=function(e){return sc(e,n(Ep)),Ep.result()},a.bounds=function(e){return sc(e,n(Yd)),Yd.result()},a.centroid=function(e){return sc(e,n(gp)),gp.result()},a.projection=function(t){return arguments.length?(n=null==t?(e=null,Rd):(e=t).stream,a):e},a.context=function(e){return arguments.length?(r=null==e?(t=null,new Rp(o)):new vp(t=e),"function"!==typeof i&&r.pointRadius(i),a):t},a.pointRadius=function(e){return arguments.length?(i="function"===typeof e?e:(r.pointRadius(+e),+e),a):i},a.digits=function(e){if(!arguments.length)return o;if(null==e)o=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);o=t}return null===t&&(r=new Rp(o)),a},a.projection(e).digits(o).context(t)}function Bp(e){return{stream:Dp(e)}}function Dp(e){return function(t){var n=new jp;for(var r in e)n[r]=e[r];return n.stream=t,n}}function jp(){}function Lp(e,t,n){var r=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=r&&e.clipExtent(null),sc(n,e.stream(Yd)),t(Yd.result()),null!=r&&e.clipExtent(r),e}function Zp(e,t,n){return Lp(e,(function(n){var r=t[1][0]-t[0][0],o=t[1][1]-t[0][1],i=Math.min(r/(n[1][0]-n[0][0]),o/(n[1][1]-n[0][1])),a=+t[0][0]+(r-i*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(o-i*(n[1][1]+n[0][1]))/2;e.scale(150*i).translate([a,s])}),n)}function Np(e,t,n){return Zp(e,[[0,0],t],n)}function Fp(e,t,n){return Lp(e,(function(n){var r=+t,o=r/(n[1][0]-n[0][0]),i=(r-o*(n[1][0]+n[0][0]))/2,a=-o*n[0][1];e.scale(150*o).translate([i,a])}),n)}function Hp(e,t,n){return Lp(e,(function(n){var r=+t,o=r/(n[1][1]-n[0][1]),i=-o*n[0][0],a=(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([i,a])}),n)}jp.prototype={constructor:jp,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Vp=16,zp=Vl(30*Zl);function Up(e,t){return+t?function(e,t){function n(r,o,i,a,s,u,l,c,f,d,p,h,g,v){var m=l-r,y=c-o,b=m*m+y*y;if(b>4*t&&g--){var w=a+d,x=s+p,_=u+h,S=Xl(w*w+x*x+_*_),O=Ql(_/=S),C=Nl(Nl(_)-1)<Rl||Nl(i-f)<Rl?(i+f)/2:Hl(x,w),E=e(C,O),A=E[0],M=E[1],k=A-r,P=M-o,R=y*k-m*P;(R*R/b>t||Nl((m*k+y*P)/b-.5)>.3||a*d+s*p+u*h<zp)&&(n(r,o,i,a,s,u,A,M,C,w/=S,x/=S,_,g,v),v.point(A,M),n(A,M,C,w,x,_,l,c,f,d,p,h,g,v))}}return function(t){var r,o,i,a,s,u,l,c,f,d,p,h,g={point:v,lineStart:m,lineEnd:b,polygonStart:function(){t.polygonStart(),g.lineStart=w},polygonEnd:function(){t.polygonEnd(),g.lineStart=m}};function v(n,r){n=e(n,r),t.point(n[0],n[1])}function m(){c=NaN,g.point=y,t.lineStart()}function y(r,o){var i=Ic([r,o]),a=e(r,o);n(c,f,l,d,p,h,c=a[0],f=a[1],l=r,d=i[0],p=i[1],h=i[2],Vp,t),t.point(c,f)}function b(){g.point=v,t.lineEnd()}function w(){m(),g.point=x,g.lineEnd=_}function x(e,t){y(r=e,t),o=c,i=f,a=d,s=p,u=h,g.point=y}function _(){n(c,f,l,d,p,h,o,i,r,a,s,u,Vp,t),g.lineEnd=b,b()}return g}}(e,t):function(e){return Dp({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var Gp=Dp({point:function(e,t){this.stream.point(e*Zl,t*Zl)}});function Wp(e,t,n,r,o,i){if(!i)return function(e,t,n,r,o){function i(i,a){return[t+e*(i*=r),n-e*(a*=o)]}return i.invert=function(i,a){return[(i-t)/e*r,(n-a)/e*o]},i}(e,t,n,r,o);var a=Vl(i),s=ql(i),u=a*e,l=s*e,c=a/e,f=s/e,d=(s*n-a*t)/e,p=(s*t+a*n)/e;function h(e,i){return[u*(e*=r)-l*(i*=o)+t,n-l*e-u*i]}return h.invert=function(e,t){return[r*(c*e-f*t+d),o*(p-f*e-c*t)]},h}function $p(e){return qp((function(){return e}))()}function qp(e){var t,n,r,o,i,a,s,u,l,c,f=150,d=480,p=250,h=0,g=0,v=0,m=0,y=0,b=0,w=1,x=1,_=null,S=qf,O=null,C=Rd,E=.5;function A(e){return u(e[0]*Zl,e[1]*Zl)}function M(e){return(e=u.invert(e[0],e[1]))&&[e[0]*Ll,e[1]*Ll]}function k(){var e=Wp(f,0,0,w,x,b).apply(null,t(h,g)),r=Wp(f,d-e[0],p-e[1],w,x,b);return n=kf(v,m,y),s=Af(t,r),u=Af(n,s),a=Up(s,E),P()}function P(){return l=c=null,A}return A.stream=function(e){return l&&c===e?l:l=Gp(function(e){return Dp({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(S(a(C(c=e)))))},A.preclip=function(e){return arguments.length?(S=e,_=void 0,P()):S},A.postclip=function(e){return arguments.length?(C=e,O=r=o=i=null,P()):C},A.clipAngle=function(e){return arguments.length?(S=+e?Yf(_=e*Zl):(_=null,qf),P()):_*Ll},A.clipExtent=function(e){return arguments.length?(C=null==e?(O=r=o=i=null,Rd):nd(O=+e[0][0],r=+e[0][1],o=+e[1][0],i=+e[1][1]),P()):null==O?null:[[O,r],[o,i]]},A.scale=function(e){return arguments.length?(f=+e,k()):f},A.translate=function(e){return arguments.length?(d=+e[0],p=+e[1],k()):[d,p]},A.center=function(e){return arguments.length?(h=e[0]%360*Zl,g=e[1]%360*Zl,k()):[h*Ll,g*Ll]},A.rotate=function(e){return arguments.length?(v=e[0]%360*Zl,m=e[1]%360*Zl,y=e.length>2?e[2]%360*Zl:0,k()):[v*Ll,m*Ll,y*Ll]},A.angle=function(e){return arguments.length?(b=e%360*Zl,k()):b*Ll},A.reflectX=function(e){return arguments.length?(w=e?-1:1,k()):w<0},A.reflectY=function(e){return arguments.length?(x=e?-1:1,k()):x<0},A.precision=function(e){return arguments.length?(a=Up(s,E=e*e),P()):Xl(E)},A.fitExtent=function(e,t){return Zp(A,e,t)},A.fitSize=function(e,t){return Np(A,e,t)},A.fitWidth=function(e,t){return Fp(A,e,t)},A.fitHeight=function(e,t){return Hp(A,e,t)},function(){return t=e.apply(this,arguments),A.invert=t.invert&&M,k()}}function Yp(e){var t=0,n=Il/3,r=qp(e),o=r(t,n);return o.parallels=function(e){return arguments.length?r(t=e[0]*Zl,n=e[1]*Zl):[t*Ll,n*Ll]},o}function Xp(e,t){var n=ql(e),r=(n+ql(t))/2;if(Nl(r)<Rl)return function(e){var t=Vl(e);function n(e,n){return[e*t,ql(n)/t]}return n.invert=function(e,n){return[e/t,Ql(n*t)]},n}(e);var o=1+n*(2*r-n),i=Xl(o)/r;function a(e,t){var n=Xl(o-2*r*ql(t))/r;return[n*ql(e*=r),i-n*Vl(e)]}return a.invert=function(e,t){var n=i-t,a=Hl(e,Nl(n))*Yl(n);return n*r<0&&(a-=Il*Yl(e)*Yl(n)),[a/r,Ql((o-(e*e+n*n)*r*r)/(2*r))]},a}function Kp(){return Yp(Xp).scale(155.424).center([0,33.6442])}function Jp(){return Kp().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Qp(){var e,t,n,r,o,i,a=Jp(),s=Kp().rotate([154,0]).center([-2,58.5]).parallels([55,65]),u=Kp().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(e,t){i=[e,t]}};function c(e){var t=e[0],a=e[1];return i=null,n.point(t,a),i||(r.point(t,a),i)||(o.point(t,a),i)}function f(){return e=t=null,c}return c.invert=function(e){var t=a.scale(),n=a.translate(),r=(e[0]-n[0])/t,o=(e[1]-n[1])/t;return(o>=.12&&o<.234&&r>=-.425&&r<-.214?s:o>=.166&&o<.234&&r>=-.214&&r<-.115?u:a).invert(e)},c.stream=function(n){return e&&t===n?e:e=function(e){var t=e.length;return{point:function(n,r){for(var o=-1;++o<t;)e[o].point(n,r)},sphere:function(){for(var n=-1;++n<t;)e[n].sphere()},lineStart:function(){for(var n=-1;++n<t;)e[n].lineStart()},lineEnd:function(){for(var n=-1;++n<t;)e[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<t;)e[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<t;)e[n].polygonEnd()}}}([a.stream(t=n),s.stream(n),u.stream(n)])},c.precision=function(e){return arguments.length?(a.precision(e),s.precision(e),u.precision(e),f()):a.precision()},c.scale=function(e){return arguments.length?(a.scale(e),s.scale(.35*e),u.scale(e),c.translate(a.translate())):a.scale()},c.translate=function(e){if(!arguments.length)return a.translate();var t=a.scale(),i=+e[0],c=+e[1];return n=a.translate(e).clipExtent([[i-.455*t,c-.238*t],[i+.455*t,c+.238*t]]).stream(l),r=s.translate([i-.307*t,c+.201*t]).clipExtent([[i-.425*t+Rl,c+.12*t+Rl],[i-.214*t-Rl,c+.234*t-Rl]]).stream(l),o=u.translate([i-.205*t,c+.212*t]).clipExtent([[i-.214*t+Rl,c+.166*t+Rl],[i-.115*t-Rl,c+.234*t-Rl]]).stream(l),f()},c.fitExtent=function(e,t){return Zp(c,e,t)},c.fitSize=function(e,t){return Np(c,e,t)},c.fitWidth=function(e,t){return Fp(c,e,t)},c.fitHeight=function(e,t){return Hp(c,e,t)},c.scale(1070)}function eh(e){return function(t,n){var r=Vl(t),o=Vl(n),i=e(r*o);return i===1/0?[2,0]:[i*o*ql(t),i*ql(n)]}}function th(e){return function(t,n){var r=Xl(t*t+n*n),o=e(r),i=ql(o),a=Vl(o);return[Hl(t*i,r*a),Ql(r&&n*i/r)]}}var nh=eh((function(e){return Xl(2/(1+e))}));function rh(){return $p(nh).scale(124.75).clipAngle(179.999)}nh.invert=th((function(e){return 2*Ql(e/2)}));var oh=eh((function(e){return(e=Jl(e))&&e/ql(e)}));function ih(){return $p(oh).scale(79.4188).clipAngle(179.999)}function ah(e,t){return[e,Wl(Kl((Bl+t)/2))]}function sh(){return uh(ah).scale(961/jl)}function uh(e){var t,n,r,o=$p(e),i=o.center,a=o.scale,s=o.translate,u=o.clipExtent,l=null;function c(){var i=Il*a(),s=o(If(o.rotate()).invert([0,0]));return u(null==l?[[s[0]-i,s[1]-i],[s[0]+i,s[1]+i]]:e===ah?[[Math.max(s[0]-i,l),t],[Math.min(s[0]+i,n),r]]:[[l,Math.max(s[1]-i,t)],[n,Math.min(s[1]+i,r)]])}return o.scale=function(e){return arguments.length?(a(e),c()):a()},o.translate=function(e){return arguments.length?(s(e),c()):s()},o.center=function(e){return arguments.length?(i(e),c()):i()},o.clipExtent=function(e){return arguments.length?(null==e?l=t=n=r=null:(l=+e[0][0],t=+e[0][1],n=+e[1][0],r=+e[1][1]),c()):null==l?null:[[l,t],[n,r]]},c()}function lh(e){return Kl((Bl+e)/2)}function ch(e,t){var n=Vl(e),r=e===t?ql(e):Wl(n/Vl(t))/Wl(lh(t)/lh(e)),o=n*$l(lh(e),r)/r;if(!r)return ah;function i(e,t){o>0?t<-Bl+Rl&&(t=-Bl+Rl):t>Bl-Rl&&(t=Bl-Rl);var n=o/$l(lh(t),r);return[n*ql(r*e),o-n*Vl(r*e)]}return i.invert=function(e,t){var n=o-t,i=Yl(r)*Xl(e*e+n*n),a=Hl(e,Nl(n))*Yl(n);return n*r<0&&(a-=Il*Yl(e)*Yl(n)),[a/r,2*Fl($l(o/i,1/r))-Bl]},i}function fh(){return Yp(ch).scale(109.5).parallels([30,30])}function dh(e,t){return[e,t]}function ph(){return $p(dh).scale(152.63)}function hh(e,t){var n=Vl(e),r=e===t?ql(e):(n-Vl(t))/(t-e),o=n/r+e;if(Nl(r)<Rl)return dh;function i(e,t){var n=o-t,i=r*e;return[n*ql(i),o-n*Vl(i)]}return i.invert=function(e,t){var n=o-t,i=Hl(e,Nl(n))*Yl(n);return n*r<0&&(i-=Il*Yl(e)*Yl(n)),[i/r,o-Yl(r)*Xl(e*e+n*n)]},i}function gh(){return Yp(hh).scale(131.154).center([0,13.9389])}oh.invert=th((function(e){return e})),ah.invert=function(e,t){return[e,2*Fl(Ul(t))-Bl]},dh.invert=dh;var vh=1.340264,mh=-.081106,yh=893e-6,bh=.003796,wh=Xl(3)/2;function xh(e,t){var n=Ql(wh*ql(t)),r=n*n,o=r*r*r;return[e*Vl(n)/(wh*(vh+3*mh*r+o*(7*yh+9*bh*r))),n*(vh+mh*r+o*(yh+bh*r))]}function _h(){return $p(xh).scale(177.158)}function Sh(e,t){var n=Vl(t),r=Vl(e)*n;return[n*ql(e)/r,ql(t)/r]}function Oh(){return $p(Sh).scale(144.049).clipAngle(60)}function Ch(){var e,t,n,r,o,i,a,s=1,u=0,l=0,c=1,f=1,d=0,p=null,h=1,g=1,v=Dp({point:function(e,t){var n=b([e,t]);this.stream.point(n[0],n[1])}}),m=Rd;function y(){return h=s*c,g=s*f,i=a=null,b}function b(n){var r=n[0]*h,o=n[1]*g;if(d){var i=o*e-r*t;r=r*e+o*t,o=i}return[r+u,o+l]}return b.invert=function(n){var r=n[0]-u,o=n[1]-l;if(d){var i=o*e+r*t;r=r*e-o*t,o=i}return[r/h,o/g]},b.stream=function(e){return i&&a===e?i:i=v(m(a=e))},b.postclip=function(e){return arguments.length?(m=e,p=n=r=o=null,y()):m},b.clipExtent=function(e){return arguments.length?(m=null==e?(p=n=r=o=null,Rd):nd(p=+e[0][0],n=+e[0][1],r=+e[1][0],o=+e[1][1]),y()):null==p?null:[[p,n],[r,o]]},b.scale=function(e){return arguments.length?(s=+e,y()):s},b.translate=function(e){return arguments.length?(u=+e[0],l=+e[1],y()):[u,l]},b.angle=function(n){return arguments.length?(t=ql(d=n%360*Zl),e=Vl(d),y()):d*Ll},b.reflectX=function(e){return arguments.length?(c=e?-1:1,y()):c<0},b.reflectY=function(e){return arguments.length?(f=e?-1:1,y()):f<0},b.fitExtent=function(e,t){return Zp(b,e,t)},b.fitSize=function(e,t){return Np(b,e,t)},b.fitWidth=function(e,t){return Fp(b,e,t)},b.fitHeight=function(e,t){return Hp(b,e,t)},b}function Eh(e,t){var n=t*t,r=n*n;return[e*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),t*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}function Ah(){return $p(Eh).scale(175.295)}function Mh(e,t){return[Vl(t)*ql(e),ql(t)]}function kh(){return $p(Mh).scale(249.5).clipAngle(90+Rl)}function Ph(e,t){var n=Vl(t),r=1+Vl(e)*n;return[n*ql(e)/r,ql(t)/r]}function Rh(){return $p(Ph).scale(250).clipAngle(142)}function Th(e,t){return[Wl(Kl((Bl+t)/2)),-e]}function Ih(){var e=uh(Th),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}function Bh(e,t){return e.parent===t.parent?1:2}function Dh(e,t){return e+t.x}function jh(e,t){return Math.max(e,t.y)}function Lh(){var e=Bh,t=1,n=1,r=!1;function o(o){var i,a=0;o.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(Dh,0)/e.length}(n),t.y=function(e){return 1+e.reduce(jh,0)}(n)):(t.x=i?a+=e(t,i):0,t.y=0,i=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(o),u=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(o),l=s.x-e(s,u)/2,c=u.x+e(u,s)/2;return o.eachAfter(r?function(e){e.x=(e.x-o.x)*t,e.y=(o.y-e.y)*n}:function(e){e.x=(e.x-l)/(c-l)*t,e.y=(1-(o.y?e.y/o.y:1))*n})}return o.separation=function(t){return arguments.length?(e=t,o):e},o.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],o):r?null:[t,n]},o.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],o):r?[t,n]:null},o}function Zh(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Nh(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Hh)):void 0===t&&(t=Fh);for(var n,r,o,i,a,s=new Uh(e),u=[s];n=u.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)u.push(r=o[i]=new Uh(o[i])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(zh)}function Fh(e){return e.children}function Hh(e){return Array.isArray(e)?e[1]:null}function Vh(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function zh(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function Uh(e){this.data=e,this.depth=this.height=0,this.parent=null}function Gh(e){return null==e?null:Wh(e)}function Wh(e){if("function"!==typeof e)throw new Error;return e}function $h(){return 0}function qh(e){return function(){return e}}xh.invert=function(e,t){for(var n,r=t,o=r*r,i=o*o*o,a=0;a<12&&(i=(o=(r-=n=(r*(vh+mh*o+i*(yh+bh*o))-t)/(vh+3*mh*o+i*(7*yh+9*bh*o)))*r)*o*o,!(Nl(n)<Tl));++a);return[wh*e*(vh+3*mh*o+i*(7*yh+9*bh*o))/Vl(r),Ql(ql(r)/wh)]},Sh.invert=th(Fl),Eh.invert=function(e,t){var n,r=t,o=25;do{var i=r*r,a=i*i;r-=n=(r*(1.007226+i*(.015085+a*(.028874*i-.044475-.005916*a)))-t)/(1.007226+i*(.045255+a*(.259866*i-.311325-.005916*11*a)))}while(Nl(n)>Rl&&--o>0);return[e/(.8707+(i=r*r)*(i*(i*i*i*(.003971-.001529*i)-.013791)-.131979)),r]},Mh.invert=th(Ql),Ph.invert=th((function(e){return 2*Fl(e)})),Th.invert=function(e,t){return[-t,2*Fl(Ul(e))-Bl]},Uh.prototype=Nh.prototype={constructor:Uh,count:function(){return this.eachAfter(Zh)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],s=[],u=-1;i=a.pop();)if(s.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=s.pop();)e.call(t,i,++u,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Nh(this).eachBefore(Vh)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};const Yh=1664525,Xh=1013904223,Kh=4294967296;function Jh(){let e=1;return()=>(e=(Yh*e+Xh)%Kh)/Kh}function Qh(e){return eg(e,Jh())}function eg(e,t){for(var n,r,o=0,i=(e=function(e,t){let n,r,o=e.length;for(;o;)r=t()*o--|0,n=e[o],e[o]=e[r],e[r]=n;return e}(Array.from(e),t)).length,a=[];o<i;)n=e[o],r&&rg(r,n)?++o:(r=ig(a=tg(a,n)),o=0);return r}function tg(e,t){var n,r;if(og(t,e))return[t];for(n=0;n<e.length;++n)if(ng(t,e[n])&&og(ag(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(r=n+1;r<e.length;++r)if(ng(ag(e[n],e[r]),t)&&ng(ag(e[n],t),e[r])&&ng(ag(e[r],t),e[n])&&og(sg(e[n],e[r],t),e))return[e[n],e[r],t];throw new Error}function ng(e,t){var n=e.r-t.r,r=t.x-e.x,o=t.y-e.y;return n<0||n*n<r*r+o*o}function rg(e,t){var n=e.r-t.r+1e-9*Math.max(e.r,t.r,1),r=t.x-e.x,o=t.y-e.y;return n>0&&n*n>r*r+o*o}function og(e,t){for(var n=0;n<t.length;++n)if(!rg(e,t[n]))return!1;return!0}function ig(e){switch(e.length){case 1:return function(e){return{x:e.x,y:e.y,r:e.r}}(e[0]);case 2:return ag(e[0],e[1]);case 3:return sg(e[0],e[1],e[2])}}function ag(e,t){var n=e.x,r=e.y,o=e.r,i=t.x,a=t.y,s=t.r,u=i-n,l=a-r,c=s-o,f=Math.sqrt(u*u+l*l);return{x:(n+i+u/f*c)/2,y:(r+a+l/f*c)/2,r:(f+o+s)/2}}function sg(e,t,n){var r=e.x,o=e.y,i=e.r,a=t.x,s=t.y,u=t.r,l=n.x,c=n.y,f=n.r,d=r-a,p=r-l,h=o-s,g=o-c,v=u-i,m=f-i,y=r*r+o*o-i*i,b=y-a*a-s*s+u*u,w=y-l*l-c*c+f*f,x=p*h-d*g,_=(h*w-g*b)/(2*x)-r,S=(g*v-h*m)/x,O=(p*b-d*w)/(2*x)-o,C=(d*m-p*v)/x,E=S*S+C*C-1,A=2*(i+_*S+O*C),M=_*_+O*O-i*i,k=-(Math.abs(E)>1e-6?(A+Math.sqrt(A*A-4*E*M))/(2*E):M/A);return{x:r+_+S*k,y:o+O+C*k,r:k}}function ug(e,t,n){var r,o,i,a,s=e.x-t.x,u=e.y-t.y,l=s*s+u*u;l?(o=t.r+n.r,o*=o,a=e.r+n.r,o>(a*=a)?(r=(l+a-o)/(2*l),i=Math.sqrt(Math.max(0,a/l-r*r)),n.x=e.x-r*s-i*u,n.y=e.y-r*u+i*s):(r=(l+o-a)/(2*l),i=Math.sqrt(Math.max(0,o/l-r*r)),n.x=t.x+r*s-i*u,n.y=t.y+r*u+i*s)):(n.x=t.x+n.r,n.y=t.y)}function lg(e,t){var n=e.r+t.r-1e-6,r=t.x-e.x,o=t.y-e.y;return n>0&&n*n>r*r+o*o}function cg(e){var t=e._,n=e.next._,r=t.r+n.r,o=(t.x*n.r+n.x*t.r)/r,i=(t.y*n.r+n.y*t.r)/r;return o*o+i*i}function fg(e){this._=e,this.next=null,this.previous=null}function dg(e,t){if(!(i=(e=function(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,r,o,i,a,s,u,l,c,f,d;if((n=e[0]).x=0,n.y=0,!(i>1))return n.r;if(r=e[1],n.x=-r.r,r.x=n.r,r.y=0,!(i>2))return n.r+r.r;ug(r,n,o=e[2]),n=new fg(n),r=new fg(r),o=new fg(o),n.next=o.previous=r,r.next=n.previous=o,o.next=r.previous=n;e:for(u=3;u<i;++u){ug(n._,r._,o=e[u]),o=new fg(o),l=r.next,c=n.previous,f=r._.r,d=n._.r;do{if(f<=d){if(lg(l._,o._)){r=l,n.next=r,r.previous=n,--u;continue e}f+=l._.r,l=l.next}else{if(lg(c._,o._)){(n=c).next=r,r.previous=n,--u;continue e}d+=c._.r,c=c.previous}}while(l!==c.next);for(o.previous=n,o.next=r,n.next=r.previous=r=o,a=cg(n);(o=o.next)!==r;)(s=cg(o))<a&&(n=o,a=s);r=n.next}for(n=[r._],o=r;(o=o.next)!==r;)n.push(o._);for(o=eg(n,t),u=0;u<i;++u)(n=e[u]).x-=o.x,n.y-=o.y;return o.r}function pg(e){return dg(e,Jh()),e}function hg(e){return Math.sqrt(e.value)}function gg(){var e=null,t=1,n=1,r=$h;function o(o){const i=Jh();return o.x=t/2,o.y=n/2,e?o.eachBefore(vg(e)).eachAfter(mg(r,.5,i)).eachBefore(yg(1)):o.eachBefore(vg(hg)).eachAfter(mg($h,1,i)).eachAfter(mg(r,o.r/Math.min(t,n),i)).eachBefore(yg(Math.min(t,n)/(2*o.r))),o}return o.radius=function(t){return arguments.length?(e=Gh(t),o):e},o.size=function(e){return arguments.length?(t=+e[0],n=+e[1],o):[t,n]},o.padding=function(e){return arguments.length?(r="function"===typeof e?e:qh(+e),o):r},o}function vg(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function mg(e,t,n){return function(r){if(o=r.children){var o,i,a,s=o.length,u=e(r)*t||0;if(u)for(i=0;i<s;++i)o[i].r+=u;if(a=dg(o,n),u)for(i=0;i<s;++i)o[i].r-=u;r.r=a+u}}}function yg(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function bg(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function wg(e,t,n,r,o){for(var i,a=e.children,s=-1,u=a.length,l=e.value&&(r-t)/e.value;++s<u;)(i=a[s]).y0=n,i.y1=o,i.x0=t,i.x1=t+=i.value*l}function xg(){var e=1,t=1,n=0,r=!1;function o(o){var i=o.height+1;return o.x0=o.y0=n,o.x1=e,o.y1=t/i,o.eachBefore(function(e,t){return function(r){r.children&&wg(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var o=r.x0,i=r.y0,a=r.x1-n,s=r.y1-n;a<o&&(o=a=(o+a)/2),s<i&&(i=s=(i+s)/2),r.x0=o,r.y0=i,r.x1=a,r.y1=s}}(t,i)),r&&o.eachBefore(bg),o}return o.round=function(e){return arguments.length?(r=!!e,o):r},o.size=function(n){return arguments.length?(e=+n[0],t=+n[1],o):[e,t]},o.padding=function(e){return arguments.length?(n=+e,o):n},o}var _g={depth:-1},Sg={},Og={};function Cg(e){return e.id}function Eg(e){return e.parentId}function Ag(){var e,t=Cg,n=Eg;function r(r){var o,i,a,s,u,l,c,f,d=Array.from(r),p=t,h=n,g=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){e=`${e}`;let t=e.length;kg(e,t-1)&&!kg(e,t-2)&&(e=e.slice(0,-1));return"/"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(Mg),o=new Set(t).add("");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(Mg(e)),d.push(Og));p=(e,n)=>t[n],h=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],l=d[a]=new Uh(i),null!=(c=p(i,a,r))&&(c+="")&&(f=l.id=c,g.set(f,g.has(f)?Sg:l)),null!=(c=h(i,a,r))&&(c+="")&&(l.parent=c);for(a=0;a<o;++a)if(c=(l=d[a]).parent){if(!(u=g.get(c)))throw new Error("missing: "+c);if(u===Sg)throw new Error("ambiguous: "+c);u.children?u.children.push(l):u.children=[l],l.parent=u}else{if(s)throw new Error("multiple roots");s=l}if(!s)throw new Error("no root");if(null!=e){for(;s.data===Og&&1===s.children.length;)s=s.children[0],--o;for(let e=d.length-1;e>=0&&(l=d[e]).data===Og;--e)l.data=null}if(s.parent=_g,s.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(zh),s.parent=null,o>0)throw new Error("cycle");return s}return r.id=function(e){return arguments.length?(t=Gh(e),r):t},r.parentId=function(e){return arguments.length?(n=Gh(e),r):n},r.path=function(t){return arguments.length?(e=Gh(t),r):e},r}function Mg(e){let t=e.length;if(t<2)return"";for(;--t>1&&!kg(e,t););return e.slice(0,t)}function kg(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(0===(1&n))return!0}return!1}function Pg(e,t){return e.parent===t.parent?1:2}function Rg(e){var t=e.children;return t?t[0]:e.t}function Tg(e){var t=e.children;return t?t[t.length-1]:e.t}function Ig(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function Bg(e,t,n){return e.a.parent===t.parent?e.a:n}function Dg(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function jg(){var e=Pg,t=1,n=1,r=null;function o(o){var u=function(e){for(var t,n,r,o,i,a=new Dg(e,0),s=[a];t=s.pop();)if(r=t._.children)for(t.children=new Array(i=r.length),o=i-1;o>=0;--o)s.push(n=t.children[o]=new Dg(r[o],o)),n.parent=t;return(a.parent=new Dg(null,0)).children=[a],a}(o);if(u.eachAfter(i),u.parent.m=-u.z,u.eachBefore(a),r)o.eachBefore(s);else{var l=o,c=o,f=o;o.eachBefore((function(e){e.x<l.x&&(l=e),e.x>c.x&&(c=e),e.depth>f.depth&&(f=e)}));var d=l===c?1:e(l,c)/2,p=d-l.x,h=t/(c.x+d+p),g=n/(f.depth||1);o.eachBefore((function(e){e.x=(e.x+p)*h,e.y=e.depth*g}))}return o}function i(t){var n=t.children,r=t.parent.children,o=t.i?r[t.i-1]:null;if(n){!function(e){for(var t,n=0,r=0,o=e.children,i=o.length;--i>=0;)(t=o[i]).z+=n,t.m+=n,n+=t.s+(r+=t.c)}(t);var i=(n[0].z+n[n.length-1].z)/2;o?(t.z=o.z+e(t._,o._),t.m=t.z-i):t.z=i}else o&&(t.z=o.z+e(t._,o._));t.parent.A=function(t,n,r){if(n){for(var o,i=t,a=t,s=n,u=i.parent.children[0],l=i.m,c=a.m,f=s.m,d=u.m;s=Tg(s),i=Rg(i),s&&i;)u=Rg(u),(a=Tg(a)).a=t,(o=s.z+f-i.z-l+e(s._,i._))>0&&(Ig(Bg(s,t,r),t,o),l+=o,c+=o),f+=s.m,l+=i.m,d+=u.m,c+=a.m;s&&!Tg(a)&&(a.t=s,a.m+=f-c),i&&!Rg(u)&&(u.t=i,u.m+=l-d,r=t)}return r}(t,o,t.parent.A||r[0])}function a(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return o.separation=function(t){return arguments.length?(e=t,o):e},o.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],o):r?null:[t,n]},o.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],o):r?[t,n]:null},o}function Lg(e,t,n,r,o){for(var i,a=e.children,s=-1,u=a.length,l=e.value&&(o-n)/e.value;++s<u;)(i=a[s]).x0=t,i.x1=r,i.y0=n,i.y1=n+=i.value*l}Dg.prototype=Object.create(Uh.prototype);var Zg=(1+Math.sqrt(5))/2;function Ng(e,t,n,r,o,i){for(var a,s,u,l,c,f,d,p,h,g,v,m=[],y=t.children,b=0,w=0,x=y.length,_=t.value;b<x;){u=o-n,l=i-r;do{c=y[w++].value}while(!c&&w<x);for(f=d=c,v=c*c*(g=Math.max(l/u,u/l)/(_*e)),h=Math.max(d/v,v/f);w<x;++w){if(c+=s=y[w].value,s<f&&(f=s),s>d&&(d=s),v=c*c*g,(p=Math.max(d/v,v/f))>h){c-=s;break}h=p}m.push(a={value:c,dice:u<l,children:y.slice(b,w)}),a.dice?wg(a,n,r,o,_?r+=l*c/_:i):Lg(a,n,r,_?n+=u*c/_:o,i),_-=c,b=w}return m}var Fg=function e(t){function n(e,n,r,o,i){Ng(t,e,n,r,o,i)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(Zg);function Hg(){var e=Fg,t=!1,n=1,r=1,o=[0],i=$h,a=$h,s=$h,u=$h,l=$h;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(f),o=[0],t&&e.eachBefore(bg),e}function f(t){var n=o[t.depth],r=t.x0+n,c=t.y0+n,f=t.x1-n,d=t.y1-n;f<r&&(r=f=(r+f)/2),d<c&&(c=d=(c+d)/2),t.x0=r,t.y0=c,t.x1=f,t.y1=d,t.children&&(n=o[t.depth+1]=i(t)/2,r+=l(t)-n,c+=a(t)-n,(f-=s(t)-n)<r&&(r=f=(r+f)/2),(d-=u(t)-n)<c&&(c=d=(c+d)/2),e(t,r,c,f,d))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(n=+e[0],r=+e[1],c):[n,r]},c.tile=function(t){return arguments.length?(e=Wh(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(i="function"===typeof e?e:qh(+e),c):i},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(a="function"===typeof e?e:qh(+e),c):a},c.paddingRight=function(e){return arguments.length?(s="function"===typeof e?e:qh(+e),c):s},c.paddingBottom=function(e){return arguments.length?(u="function"===typeof e?e:qh(+e),c):u},c.paddingLeft=function(e){return arguments.length?(l="function"===typeof e?e:qh(+e),c):l},c}function Vg(e,t,n,r,o){var i,a,s=e.children,u=s.length,l=new Array(u+1);for(l[0]=a=i=0;i<u;++i)l[i+1]=a+=s[i].value;!function e(t,n,r,o,i,a,u){if(t>=n-1){var c=s[t];return c.x0=o,c.y0=i,c.x1=a,void(c.y1=u)}var f=l[t],d=r/2+f,p=t+1,h=n-1;for(;p<h;){var g=p+h>>>1;l[g]<d?p=g+1:h=g}d-l[p-1]<l[p]-d&&t+1<p&&--p;var v=l[p]-f,m=r-v;if(a-o>u-i){var y=r?(o*m+a*v)/r:a;e(t,p,v,o,i,y,u),e(p,n,m,y,i,a,u)}else{var b=r?(i*m+u*v)/r:u;e(t,p,v,o,i,a,b),e(p,n,m,o,b,a,u)}}(0,u,e.value,t,n,r,o)}function zg(e,t,n,r,o){(1&e.depth?Lg:wg)(e,t,n,r,o)}var Ug=function e(t){function n(e,n,r,o,i){if((a=e._squarify)&&a.ratio===t)for(var a,s,u,l,c,f=-1,d=a.length,p=e.value;++f<d;){for(u=(s=a[f]).children,l=s.value=0,c=u.length;l<c;++l)s.value+=u[l].value;s.dice?wg(s,n,r,o,p?r+=(i-r)*s.value/p:i):Lg(s,n,r,p?n+=(o-n)*s.value/p:o,i),p-=s.value}else e._squarify=a=Ng(t,e,n,r,o,i),a.ratio=t}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(Zg),Gg=n(51606),Wg=n(27265),$g=n(76068),qg=n(56246);function Yg(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}var Xg=n(98280);function Kg(e,t){var n=(0,Xg.wx)(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}}var Jg=n(45401),Qg=n(58296),ev=n(64635);function tv(e){return((e=Math.exp(e))+1/e)/2}var nv=function e(t,n,r){function o(e,o){var i,a,s=e[0],u=e[1],l=e[2],c=o[0],f=o[1],d=o[2],p=c-s,h=f-u,g=p*p+h*h;if(g<1e-12)a=Math.log(d/l)/t,i=function(e){return[s+e*p,u+e*h,l*Math.exp(t*e*a)]};else{var v=Math.sqrt(g),m=(d*d-l*l+r*g)/(2*l*n*v),y=(d*d-l*l-r*g)/(2*d*n*v),b=Math.log(Math.sqrt(m*m+1)-m),w=Math.log(Math.sqrt(y*y+1)-y);a=(w-b)/t,i=function(e){var r=e*a,o=tv(b),i=l/(n*v)*(o*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(t*r+b)-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+i*p,u+i*h,l*o/tv(t*r+b)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return o.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},o}(Math.SQRT2,2,4);function rv(e){return function(t,n){var r=e((t=(0,Zr.Ym)(t)).h,(n=(0,Zr.Ym)(n)).h),o=(0,Xg.ZP)(t.s,n.s),i=(0,Xg.ZP)(t.l,n.l),a=(0,Xg.ZP)(t.opacity,n.opacity);return function(e){return t.h=r(e),t.s=o(e),t.l=i(e),t.opacity=a(e),t+""}}}var ov=rv(Xg.wx),iv=rv(Xg.ZP);function av(e,t){var n=(0,Xg.ZP)((e=ji(e)).l,(t=ji(t)).l),r=(0,Xg.ZP)(e.a,t.a),o=(0,Xg.ZP)(e.b,t.b),i=(0,Xg.ZP)(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=r(t),e.b=o(t),e.opacity=i(t),e+""}}function sv(e){return function(t,n){var r=e((t=Ui(t)).h,(n=Ui(n)).h),o=(0,Xg.ZP)(t.c,n.c),i=(0,Xg.ZP)(t.l,n.l),a=(0,Xg.ZP)(t.opacity,n.opacity);return function(e){return t.h=r(e),t.c=o(e),t.l=i(e),t.opacity=a(e),t+""}}}var uv=sv(Xg.wx),lv=sv(Xg.ZP);function cv(e){return function t(n){function r(t,r){var o=e((t=ta(t)).h,(r=ta(r)).h),i=(0,Xg.ZP)(t.s,r.s),a=(0,Xg.ZP)(t.l,r.l),s=(0,Xg.ZP)(t.opacity,r.opacity);return function(e){return t.h=o(e),t.s=i(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,r.gamma=t,r}(1)}var fv=cv(Xg.wx),dv=cv(Xg.ZP),pv=n(19640);function hv(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function gv(e){for(var t,n=-1,r=e.length,o=e[r-1],i=0;++n<r;)t=o,o=e[n],i+=t[1]*o[0]-t[0]*o[1];return i/2}function vv(e){for(var t,n,r=-1,o=e.length,i=0,a=0,s=e[o-1],u=0;++r<o;)t=s,s=e[r],u+=n=t[0]*s[1]-s[0]*t[1],i+=(t[0]+s[0])*n,a+=(t[1]+s[1])*n;return[i/(u*=3),a/u]}function mv(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}function yv(e,t){return e[0]-t[0]||e[1]-t[1]}function bv(e){const t=e.length,n=[0,1];let r,o=2;for(r=2;r<t;++r){for(;o>1&&mv(e[n[o-2]],e[n[o-1]],e[r])<=0;)--o;n[o++]=r}return n.slice(0,o)}function wv(e){if((n=e.length)<3)return null;var t,n,r=new Array(n),o=new Array(n);for(t=0;t<n;++t)r[t]=[+e[t][0],+e[t][1],t];for(r.sort(yv),t=0;t<n;++t)o[t]=[r[t][0],-r[t][1]];var i=bv(r),a=bv(o),s=a[0]===i[0],u=a[a.length-1]===i[i.length-1],l=[];for(t=i.length-1;t>=0;--t)l.push(e[r[i[t]][2]]);for(t=+s;t<a.length-u;++t)l.push(e[r[a[t]][2]]);return l}function xv(e,t){for(var n,r,o=e.length,i=e[o-1],a=t[0],s=t[1],u=i[0],l=i[1],c=!1,f=0;f<o;++f)n=(i=e[f])[0],(r=i[1])>s!==l>s&&a<(u-n)*(s-r)/(l-r)+n&&(c=!c),u=n,l=r;return c}function _v(e){for(var t,n,r=-1,o=e.length,i=e[o-1],a=i[0],s=i[1],u=0;++r<o;)t=a,n=s,t-=a=(i=e[r])[0],n-=s=i[1],u+=Math.hypot(t,n);return u}var Sv=Math.random,Ov=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,1===arguments.length?(n=e,e=0):n-=e,function(){return t()*n+e}}return n.source=e,n}(Sv),Cv=function e(t){function n(e,n){return arguments.length<2&&(n=e,e=0),e=Math.floor(e),n=Math.floor(n)-e,function(){return Math.floor(t()*n+e)}}return n.source=e,n}(Sv),Ev=function e(t){function n(e,n){var r,o;return e=null==e?0:+e,n=null==n?1:+n,function(){var i;if(null!=r)i=r,r=null;else do{r=2*t()-1,i=2*t()-1,o=r*r+i*i}while(!o||o>1);return e+n*i*Math.sqrt(-2*Math.log(o)/o)}}return n.source=e,n}(Sv),Av=function e(t){var n=Ev.source(t);function r(){var e=n.apply(this,arguments);return function(){return Math.exp(e())}}return r.source=e,r}(Sv),Mv=function e(t){function n(e){return(e=+e)<=0?()=>0:function(){for(var n=0,r=e;r>1;--r)n+=t();return n+r*t()}}return n.source=e,n}(Sv),kv=function e(t){var n=Mv.source(t);function r(e){if(0===(e=+e))return t;var r=n(e);return function(){return r()/e}}return r.source=e,r}(Sv),Pv=function e(t){function n(e){return function(){return-Math.log1p(-t())/e}}return n.source=e,n}(Sv),Rv=function e(t){function n(e){if((e=+e)<0)throw new RangeError("invalid alpha");return e=1/-e,function(){return Math.pow(1-t(),e)}}return n.source=e,n}(Sv),Tv=function e(t){function n(e){if((e=+e)<0||e>1)throw new RangeError("invalid p");return function(){return Math.floor(t()+e)}}return n.source=e,n}(Sv),Iv=function e(t){function n(e){if((e=+e)<0||e>1)throw new RangeError("invalid p");return 0===e?()=>1/0:1===e?()=>1:(e=Math.log1p(-e),function(){return 1+Math.floor(Math.log1p(-t())/e)})}return n.source=e,n}(Sv),Bv=function e(t){var n=Ev.source(t)();function r(e,r){if((e=+e)<0)throw new RangeError("invalid k");if(0===e)return()=>0;if(r=null==r?1:+r,1===e)return()=>-Math.log1p(-t())*r;var o=(e<1?e+1:e)-1/3,i=1/(3*Math.sqrt(o)),a=e<1?()=>Math.pow(t(),1/e):()=>1;return function(){do{do{var e=n(),s=1+i*e}while(s<=0);s*=s*s;var u=1-t()}while(u>=1-.0331*e*e*e*e&&Math.log(u)>=.5*e*e+o*(1-s+Math.log(s)));return o*s*a()*r}}return r.source=e,r}(Sv),Dv=function e(t){var n=Bv.source(t);function r(e,t){var r=n(e),o=n(t);return function(){var e=r();return 0===e?0:e/(e+o())}}return r.source=e,r}(Sv),jv=function e(t){var n=Iv.source(t),r=Dv.source(t);function o(e,t){return e=+e,(t=+t)>=1?()=>e:t<=0?()=>0:function(){for(var o=0,i=e,a=t;i*a>16&&i*(1-a)>16;){var s=Math.floor((i+1)*a),u=r(s,i-s+1)();u<=a?(o+=s,i-=s,a=(a-u)/(1-u)):(i=s-1,a/=u)}for(var l=a<.5,c=n(l?a:1-a),f=c(),d=0;f<=i;++d)f+=c();return o+(l?d:i-d)}}return o.source=e,o}(Sv),Lv=function e(t){function n(e,n,r){var o;return 0===(e=+e)?o=e=>-Math.log(e):(e=1/e,o=t=>Math.pow(t,e)),n=null==n?0:+n,r=null==r?1:+r,function(){return n+r*o(-Math.log1p(-t()))}}return n.source=e,n}(Sv),Zv=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,function(){return e+n*Math.tan(Math.PI*t())}}return n.source=e,n}(Sv),Nv=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,function(){var r=t();return e+n*Math.log(r/(1-r))}}return n.source=e,n}(Sv),Fv=function e(t){var n=Bv.source(t),r=jv.source(t);function o(e){return function(){for(var o=0,i=e;i>16;){var a=Math.floor(.875*i),s=n(a)();if(s>i)return o+r(a-1,i/s)();o+=a,i-=s}for(var u=-Math.log1p(-t()),l=0;u<=i;++l)u-=Math.log1p(-t());return o+l}}return o.source=e,o}(Sv);const Hv=1664525,Vv=1013904223,zv=1/4294967296;function Uv(e=Math.random()){let t=0|(0<=e&&e<1?e/zv:Math.abs(e));return()=>(t=Hv*t+Vv|0,zv*(t>>>0))}var Gv=n(69032);function Wv(e){for(var t=e.length/6|0,n=new Array(t),r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}var $v=Wv("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),qv=Wv("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Yv=Wv("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Xv=Wv("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),Kv=Wv("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Jv=Wv("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Qv=Wv("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),em=Wv("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),tm=Wv("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),nm=Wv("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),rm=e=>(0,Nr.hD)(e[e.length-1]),om=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Wv),im=rm(om),am=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Wv),sm=rm(am),um=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Wv),lm=rm(um),cm=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Wv),fm=rm(cm),dm=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Wv),pm=rm(dm),hm=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Wv),gm=rm(hm),vm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Wv),mm=rm(vm),ym=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Wv),bm=rm(ym),wm=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Wv),xm=rm(wm),_m=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Wv),Sm=rm(_m),Om=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Wv),Cm=rm(Om),Em=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Wv),Am=rm(Em),Mm=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Wv),km=rm(Mm),Pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Wv),Rm=rm(Pm),Tm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Wv),Im=rm(Tm),Bm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Wv),Dm=rm(Bm),jm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Wv),Lm=rm(jm),Zm=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Wv),Nm=rm(Zm),Fm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Wv),Hm=rm(Fm),Vm=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Wv),zm=rm(Vm),Um=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Wv),Gm=rm(Um),Wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Wv),$m=rm(Wm),qm=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Wv),Ym=rm(qm),Xm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Wv),Km=rm(Xm),Jm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Wv),Qm=rm(Jm),ey=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Wv),ty=rm(ey),ny=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Wv),ry=rm(ny);function oy(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-2710.57*e)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-67.37*e)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-2475.67*e)))))))+")"}var iy=dv(ta(300,.5,0),ta(-240,.5,1)),ay=dv(ta(-100,.75,.35),ta(80,1.5,.8)),sy=dv(ta(260,.75,.35),ta(80,1.5,.8)),uy=ta();function ly(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return uy.h=360*e-100,uy.s=1.5-1.5*t,uy.l=.8-.9*t,uy+""}var cy=(0,Zr.B8)(),fy=Math.PI/3,dy=2*Math.PI/3;function py(e){var t;return e=(.5-e)*Math.PI,cy.r=255*(t=Math.sin(e))*t,cy.g=255*(t=Math.sin(e+fy))*t,cy.b=255*(t=Math.sin(e+dy))*t,cy+""}function hy(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-14825.05*e)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+707.56*e)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-6838.66*e)))))))+")"}function gy(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}var vy=gy(Wv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),my=gy(Wv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),yy=gy(Wv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),by=gy(Wv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function wy(e){return Ln(Sn(e).call(document.documentElement))}var xy=0;function _y(){return new Sy}function Sy(){this._="@"+(++xy).toString(36)}function Oy(e,t){return e.target&&(e=Gn(e),void 0===t&&(t=e.currentTarget),e=e.touches||[e]),Array.from(e,(e=>Wn(e,t)))}function Cy(e){return"string"===typeof e?new Bn([document.querySelectorAll(e)],[document.documentElement]):new Bn([Ct(e)],In)}function Ey(e){return function(){return e}}Sy.prototype=_y.prototype={constructor:Sy,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};const Ay=Math.abs,My=Math.atan2,ky=Math.cos,Py=Math.max,Ry=Math.min,Ty=Math.sin,Iy=Math.sqrt,By=1e-12,Dy=Math.PI,jy=Dy/2,Ly=2*Dy;function Zy(e){return e>=1?jy:e<=-1?-jy:Math.asin(e)}function Ny(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new li(t)}function Fy(e){return e.innerRadius}function Hy(e){return e.outerRadius}function Vy(e){return e.startAngle}function zy(e){return e.endAngle}function Uy(e){return e&&e.padAngle}function Gy(e,t,n,r,o,i,a){var s=e-n,u=t-r,l=(a?i:-i)/Iy(s*s+u*u),c=l*u,f=-l*s,d=e+c,p=t+f,h=n+c,g=r+f,v=(d+h)/2,m=(p+g)/2,y=h-d,b=g-p,w=y*y+b*b,x=o-i,_=d*g-h*p,S=(b<0?-1:1)*Iy(Py(0,x*x*w-_*_)),O=(_*b-y*S)/w,C=(-_*y-b*S)/w,E=(_*b+y*S)/w,A=(-_*y+b*S)/w,M=O-v,k=C-m,P=E-v,R=A-m;return M*M+k*k>P*P+R*R&&(O=E,C=A),{cx:O,cy:C,x01:-c,y01:-f,x11:O*(o/x-1),y11:C*(o/x-1)}}function Wy(){var e=Fy,t=Hy,n=Ey(0),r=null,o=Vy,i=zy,a=Uy,s=null,u=Ny(l);function l(){var l,c,f=+e.apply(this,arguments),d=+t.apply(this,arguments),p=o.apply(this,arguments)-jy,h=i.apply(this,arguments)-jy,g=Ay(h-p),v=h>p;if(s||(s=l=u()),d<f&&(c=d,d=f,f=c),d>By)if(g>Ly-By)s.moveTo(d*ky(p),d*Ty(p)),s.arc(0,0,d,p,h,!v),f>By&&(s.moveTo(f*ky(h),f*Ty(h)),s.arc(0,0,f,h,p,v));else{var m,y,b=p,w=h,x=p,_=h,S=g,O=g,C=a.apply(this,arguments)/2,E=C>By&&(r?+r.apply(this,arguments):Iy(f*f+d*d)),A=Ry(Ay(d-f)/2,+n.apply(this,arguments)),M=A,k=A;if(E>By){var P=Zy(E/f*Ty(C)),R=Zy(E/d*Ty(C));(S-=2*P)>By?(x+=P*=v?1:-1,_-=P):(S=0,x=_=(p+h)/2),(O-=2*R)>By?(b+=R*=v?1:-1,w-=R):(O=0,b=w=(p+h)/2)}var T=d*ky(b),I=d*Ty(b),B=f*ky(_),D=f*Ty(_);if(A>By){var j,L=d*ky(w),Z=d*Ty(w),N=f*ky(x),F=f*Ty(x);if(g<Dy)if(j=function(e,t,n,r,o,i,a,s){var u=n-e,l=r-t,c=a-o,f=s-i,d=f*u-c*l;if(!(d*d<By))return[e+(d=(c*(t-i)-f*(e-o))/d)*u,t+d*l]}(T,I,N,F,L,Z,B,D)){var H=T-j[0],V=I-j[1],z=L-j[0],U=Z-j[1],G=1/Ty(function(e){return e>1?0:e<-1?Dy:Math.acos(e)}((H*z+V*U)/(Iy(H*H+V*V)*Iy(z*z+U*U)))/2),W=Iy(j[0]*j[0]+j[1]*j[1]);M=Ry(A,(f-W)/(G-1)),k=Ry(A,(d-W)/(G+1))}else M=k=0}O>By?k>By?(m=Gy(N,F,T,I,d,k,v),y=Gy(L,Z,B,D,d,k,v),s.moveTo(m.cx+m.x01,m.cy+m.y01),k<A?s.arc(m.cx,m.cy,k,My(m.y01,m.x01),My(y.y01,y.x01),!v):(s.arc(m.cx,m.cy,k,My(m.y01,m.x01),My(m.y11,m.x11),!v),s.arc(0,0,d,My(m.cy+m.y11,m.cx+m.x11),My(y.cy+y.y11,y.cx+y.x11),!v),s.arc(y.cx,y.cy,k,My(y.y11,y.x11),My(y.y01,y.x01),!v))):(s.moveTo(T,I),s.arc(0,0,d,b,w,!v)):s.moveTo(T,I),f>By&&S>By?M>By?(m=Gy(B,D,L,Z,f,-M,v),y=Gy(T,I,N,F,f,-M,v),s.lineTo(m.cx+m.x01,m.cy+m.y01),M<A?s.arc(m.cx,m.cy,M,My(m.y01,m.x01),My(y.y01,y.x01),!v):(s.arc(m.cx,m.cy,M,My(m.y01,m.x01),My(m.y11,m.x11),!v),s.arc(0,0,f,My(m.cy+m.y11,m.cx+m.x11),My(y.cy+y.y11,y.cx+y.x11),v),s.arc(y.cx,y.cy,M,My(y.y11,y.x11),My(y.y01,y.x01),!v))):s.arc(0,0,f,_,x,v):s.lineTo(B,D)}else s.moveTo(0,0);if(s.closePath(),l)return s=null,l+""||null}return l.centroid=function(){var n=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +i.apply(this,arguments))/2-Dy/2;return[ky(r)*n,Ty(r)*n]},l.innerRadius=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),l):e},l.outerRadius=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),l):t},l.cornerRadius=function(e){return arguments.length?(n="function"===typeof e?e:Ey(+e),l):n},l.padRadius=function(e){return arguments.length?(r=null==e?null:"function"===typeof e?e:Ey(+e),l):r},l.startAngle=function(e){return arguments.length?(o="function"===typeof e?e:Ey(+e),l):o},l.endAngle=function(e){return arguments.length?(i="function"===typeof e?e:Ey(+e),l):i},l.padAngle=function(e){return arguments.length?(a="function"===typeof e?e:Ey(+e),l):a},l.context=function(e){return arguments.length?(s=null==e?null:e,l):s},l}var $y=Array.prototype.slice;function qy(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function Yy(e){this._context=e}function Xy(e){return new Yy(e)}function Ky(e){return e[0]}function Jy(e){return e[1]}function Qy(e,t){var n=Ey(!0),r=null,o=Xy,i=null,a=Ny(s);function s(s){var u,l,c,f=(s=qy(s)).length,d=!1;for(null==r&&(i=o(c=a())),u=0;u<=f;++u)!(u<f&&n(l=s[u],u,s))===d&&((d=!d)?i.lineStart():i.lineEnd()),d&&i.point(+e(l,u,s),+t(l,u,s));if(c)return i=null,c+""||null}return e="function"===typeof e?e:void 0===e?Ky:Ey(e),t="function"===typeof t?t:void 0===t?Jy:Ey(t),s.x=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),s):e},s.y=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),s):t},s.defined=function(e){return arguments.length?(n="function"===typeof e?e:Ey(!!e),s):n},s.curve=function(e){return arguments.length?(o=e,null!=r&&(i=o(r)),s):o},s.context=function(e){return arguments.length?(null==e?r=i=null:i=o(r=e),s):r},s}function eb(e,t,n){var r=null,o=Ey(!0),i=null,a=Xy,s=null,u=Ny(l);function l(l){var c,f,d,p,h,g=(l=qy(l)).length,v=!1,m=new Array(g),y=new Array(g);for(null==i&&(s=a(h=u())),c=0;c<=g;++c){if(!(c<g&&o(p=l[c],c,l))===v)if(v=!v)f=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),d=c-1;d>=f;--d)s.point(m[d],y[d]);s.lineEnd(),s.areaEnd()}v&&(m[c]=+e(p,c,l),y[c]=+t(p,c,l),s.point(r?+r(p,c,l):m[c],n?+n(p,c,l):y[c]))}if(h)return s=null,h+""||null}function c(){return Qy().defined(o).curve(a).context(i)}return e="function"===typeof e?e:void 0===e?Ky:Ey(+e),t="function"===typeof t?t:Ey(void 0===t?0:+t),n="function"===typeof n?n:void 0===n?Jy:Ey(+n),l.x=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),l):e},l.x1=function(e){return arguments.length?(r=null==e?null:"function"===typeof e?e:Ey(+e),l):r},l.y=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),l):t},l.y1=function(e){return arguments.length?(n=null==e?null:"function"===typeof e?e:Ey(+e),l):n},l.lineX0=l.lineY0=function(){return c().x(e).y(t)},l.lineY1=function(){return c().x(e).y(n)},l.lineX1=function(){return c().x(r).y(t)},l.defined=function(e){return arguments.length?(o="function"===typeof e?e:Ey(!!e),l):o},l.curve=function(e){return arguments.length?(a=e,null!=i&&(s=a(i)),l):a},l.context=function(e){return arguments.length?(null==e?i=s=null:s=a(i=e),l):i},l}function tb(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}function nb(e){return e}function rb(){var e=nb,t=tb,n=null,r=Ey(0),o=Ey(Ly),i=Ey(0);function a(a){var s,u,l,c,f,d=(a=qy(a)).length,p=0,h=new Array(d),g=new Array(d),v=+r.apply(this,arguments),m=Math.min(Ly,Math.max(-Ly,o.apply(this,arguments)-v)),y=Math.min(Math.abs(m)/d,i.apply(this,arguments)),b=y*(m<0?-1:1);for(s=0;s<d;++s)(f=g[h[s]=s]=+e(a[s],s,a))>0&&(p+=f);for(null!=t?h.sort((function(e,n){return t(g[e],g[n])})):null!=n&&h.sort((function(e,t){return n(a[e],a[t])})),s=0,l=p?(m-d*b)/p:0;s<d;++s,v=c)u=h[s],c=v+((f=g[u])>0?f*l:0)+b,g[u]={data:a[u],index:s,value:f,startAngle:v,endAngle:c,padAngle:y};return g}return a.value=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),a):e},a.sortValues=function(e){return arguments.length?(t=e,n=null,a):t},a.sort=function(e){return arguments.length?(n=e,t=null,a):n},a.startAngle=function(e){return arguments.length?(r="function"===typeof e?e:Ey(+e),a):r},a.endAngle=function(e){return arguments.length?(o="function"===typeof e?e:Ey(+e),a):o},a.padAngle=function(e){return arguments.length?(i="function"===typeof e?e:Ey(+e),a):i},a}Yy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};var ob=ab(Xy);function ib(e){this._curve=e}function ab(e){function t(t){return new ib(e(t))}return t._curve=e,t}function sb(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(e){return arguments.length?t(ab(e)):t()._curve},e}function ub(){return sb(Qy().curve(ob))}function lb(){var e=eb().curve(ob),t=e.curve,n=e.lineX0,r=e.lineX1,o=e.lineY0,i=e.lineY1;return e.angle=e.x,delete e.x,e.startAngle=e.x0,delete e.x0,e.endAngle=e.x1,delete e.x1,e.radius=e.y,delete e.y,e.innerRadius=e.y0,delete e.y0,e.outerRadius=e.y1,delete e.y1,e.lineStartAngle=function(){return sb(n())},delete e.lineX0,e.lineEndAngle=function(){return sb(r())},delete e.lineX1,e.lineInnerRadius=function(){return sb(o())},delete e.lineY0,e.lineOuterRadius=function(){return sb(i())},delete e.lineY1,e.curve=function(e){return arguments.length?t(ab(e)):t()._curve},e}function cb(e,t){return[(t=+t)*Math.cos(e-=Math.PI/2),t*Math.sin(e)]}ib.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),t*-Math.cos(e))}};class fb{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}}class db{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,t){if(e=+e,t=+t,0===this._point)this._point=1;else{const n=cb(this._x0,this._y0),r=cb(this._x0,this._y0=(this._y0+t)/2),o=cb(e,this._y0),i=cb(e,t);this._context.moveTo(...n),this._context.bezierCurveTo(...r,...o,...i)}this._x0=e,this._y0=t}}function pb(e){return new fb(e,!0)}function hb(e){return new fb(e,!1)}function gb(e){return new db(e)}function vb(e){return e.source}function mb(e){return e.target}function yb(e){let t=vb,n=mb,r=Ky,o=Jy,i=null,a=null,s=Ny(u);function u(){let u;const l=$y.call(arguments),c=t.apply(this,l),f=n.apply(this,l);if(null==i&&(a=e(u=s())),a.lineStart(),l[0]=c,a.point(+r.apply(this,l),+o.apply(this,l)),l[0]=f,a.point(+r.apply(this,l),+o.apply(this,l)),a.lineEnd(),u)return a=null,u+""||null}return u.source=function(e){return arguments.length?(t=e,u):t},u.target=function(e){return arguments.length?(n=e,u):n},u.x=function(e){return arguments.length?(r="function"===typeof e?e:Ey(+e),u):r},u.y=function(e){return arguments.length?(o="function"===typeof e?e:Ey(+e),u):o},u.context=function(t){return arguments.length?(null==t?i=a=null:a=e(i=t),u):i},u}function bb(){return yb(pb)}function wb(){return yb(hb)}function xb(){const e=yb(gb);return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e}const _b=Iy(3);var Sb={draw(e,t){const n=.59436*Iy(t+Ry(t/28,.75)),r=n/2,o=r*_b;e.moveTo(0,n),e.lineTo(0,-n),e.moveTo(-o,-r),e.lineTo(o,r),e.moveTo(-o,r),e.lineTo(o,-r)}},Ob={draw(e,t){const n=Iy(t/Dy);e.moveTo(n,0),e.arc(0,0,n,0,Ly)}},Cb={draw(e,t){const n=Iy(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}};const Eb=Iy(1/3),Ab=2*Eb;var Mb={draw(e,t){const n=Iy(t/Ab),r=n*Eb;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},kb={draw(e,t){const n=.62625*Iy(t);e.moveTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.lineTo(-n,0),e.closePath()}},Pb={draw(e,t){const n=.87559*Iy(t-Ry(t/7,2));e.moveTo(-n,0),e.lineTo(n,0),e.moveTo(0,n),e.lineTo(0,-n)}},Rb={draw(e,t){const n=Iy(t),r=-n/2;e.rect(r,r,n,n)}},Tb={draw(e,t){const n=.4431*Iy(t);e.moveTo(n,n),e.lineTo(n,-n),e.lineTo(-n,-n),e.lineTo(-n,n),e.closePath()}};const Ib=Ty(Dy/10)/Ty(7*Dy/10),Bb=Ty(Ly/10)*Ib,Db=-ky(Ly/10)*Ib;var jb={draw(e,t){const n=Iy(.8908130915292852*t),r=Bb*n,o=Db*n;e.moveTo(0,-n),e.lineTo(r,o);for(let i=1;i<5;++i){const t=Ly*i/5,a=ky(t),s=Ty(t);e.lineTo(s*n,-a*n),e.lineTo(a*r-s*o,s*r+a*o)}e.closePath()}};const Lb=Iy(3);var Zb={draw(e,t){const n=-Iy(t/(3*Lb));e.moveTo(0,2*n),e.lineTo(-Lb*n,-n),e.lineTo(Lb*n,-n),e.closePath()}};const Nb=Iy(3);var Fb={draw(e,t){const n=.6824*Iy(t),r=n/2,o=n*Nb/2;e.moveTo(0,-n),e.lineTo(o,r),e.lineTo(-o,r),e.closePath()}};const Hb=-.5,Vb=Iy(3)/2,zb=1/Iy(12),Ub=3*(zb/2+1);var Gb={draw(e,t){const n=Iy(t/Ub),r=n/2,o=n*zb,i=r,a=n*zb+n,s=-i,u=a;e.moveTo(r,o),e.lineTo(i,a),e.lineTo(s,u),e.lineTo(Hb*r-Vb*o,Vb*r+Hb*o),e.lineTo(Hb*i-Vb*a,Vb*i+Hb*a),e.lineTo(Hb*s-Vb*u,Vb*s+Hb*u),e.lineTo(Hb*r+Vb*o,Hb*o-Vb*r),e.lineTo(Hb*i+Vb*a,Hb*a-Vb*i),e.lineTo(Hb*s+Vb*u,Hb*u-Vb*s),e.closePath()}},Wb={draw(e,t){const n=.6189*Iy(t-Ry(t/6,1.7));e.moveTo(-n,-n),e.lineTo(n,n),e.moveTo(-n,n),e.lineTo(n,-n)}};const $b=[Ob,Cb,Mb,Rb,jb,Zb,Gb],qb=[Ob,Pb,Wb,Fb,Sb,Tb,kb];function Yb(e,t){let n=null,r=Ny(o);function o(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return e="function"===typeof e?e:Ey(e||Ob),t="function"===typeof t?t:Ey(void 0===t?64:+t),o.type=function(t){return arguments.length?(e="function"===typeof t?t:Ey(t),o):e},o.size=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),o):t},o.context=function(e){return arguments.length?(n=null==e?null:e,o):n},o}function Xb(){}function Kb(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function Jb(e){this._context=e}function Qb(e){return new Jb(e)}function ew(e){this._context=e}function tw(e){return new ew(e)}function nw(e){this._context=e}function rw(e){return new nw(e)}function ow(e,t){this._basis=new Jb(e),this._beta=t}Jb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Kb(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Kb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},ew.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Kb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},nw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Kb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},ow.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,o=e[0],i=t[0],a=e[n]-o,s=t[n]-i,u=-1;++u<=n;)r=u/n,this._basis.point(this._beta*e[u]+(1-this._beta)*(o+r*a),this._beta*t[u]+(1-this._beta)*(i+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};var iw=function e(t){function n(e){return 1===t?new Jb(e):new ow(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function aw(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function sw(e,t){this._context=e,this._k=(1-t)/6}sw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:aw(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:aw(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var uw=function e(t){function n(e){return new sw(e,t)}return n.tension=function(t){return e(+t)},n}(0);function lw(e,t){this._context=e,this._k=(1-t)/6}lw.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:aw(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var cw=function e(t){function n(e){return new lw(e,t)}return n.tension=function(t){return e(+t)},n}(0);function fw(e,t){this._context=e,this._k=(1-t)/6}fw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:aw(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var dw=function e(t){function n(e){return new fw(e,t)}return n.tension=function(t){return e(+t)},n}(0);function pw(e,t,n){var r=e._x1,o=e._y1,i=e._x2,a=e._y2;if(e._l01_a>By){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,u=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/u,o=(o*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/u}if(e._l23_a>By){var l=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);i=(i*l+e._x1*e._l23_2a-t*e._l12_2a)/c,a=(a*l+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(r,o,i,a,e._x2,e._y2)}function hw(e,t){this._context=e,this._alpha=t}hw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:pw(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var gw=function e(t){function n(e){return t?new hw(e,t):new sw(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function vw(e,t){this._context=e,this._alpha=t}vw.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:pw(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var mw=function e(t){function n(e){return t?new vw(e,t):new lw(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function yw(e,t){this._context=e,this._alpha=t}yw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:pw(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var bw=function e(t){function n(e){return t?new yw(e,t):new fw(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function ww(e){this._context=e}function xw(e){return new ww(e)}function _w(e){return e<0?-1:1}function Sw(e,t,n){var r=e._x1-e._x0,o=t-e._x1,i=(e._y1-e._y0)/(r||o<0&&-0),a=(n-e._y1)/(o||r<0&&-0),s=(i*o+a*r)/(r+o);return(_w(i)+_w(a))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs(s))||0}function Ow(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Cw(e,t,n){var r=e._x0,o=e._y0,i=e._x1,a=e._y1,s=(i-r)/3;e._context.bezierCurveTo(r+s,o+s*t,i-s,a-s*n,i,a)}function Ew(e){this._context=e}function Aw(e){this._context=new Mw(e)}function Mw(e){this._context=e}function kw(e){return new Ew(e)}function Pw(e){return new Aw(e)}function Rw(e){this._context=e}function Tw(e){var t,n,r=e.length-1,o=new Array(r),i=new Array(r),a=new Array(r);for(o[0]=0,i[0]=2,a[0]=e[0]+2*e[1],t=1;t<r-1;++t)o[t]=1,i[t]=4,a[t]=4*e[t]+2*e[t+1];for(o[r-1]=2,i[r-1]=7,a[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=o[t]/i[t-1],i[t]-=n,a[t]-=n*a[t-1];for(o[r-1]=a[r-1]/i[r-1],t=r-2;t>=0;--t)o[t]=(a[t]-o[t+1])/i[t];for(i[r-1]=(e[r]+o[r-1])/2,t=0;t<r-1;++t)i[t]=2*e[t+1]-o[t+1];return[o,i]}function Iw(e){return new Rw(e)}function Bw(e,t){this._context=e,this._t=t}function Dw(e){return new Bw(e,.5)}function jw(e){return new Bw(e,0)}function Lw(e){return new Bw(e,1)}function Zw(e,t){if((o=e.length)>1)for(var n,r,o,i=1,a=e[t[0]],s=a.length;i<o;++i)for(r=a,a=e[t[i]],n=0;n<s;++n)a[n][1]+=a[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]}function Nw(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function Fw(e,t){return e[t]}function Hw(e){const t=[];return t.key=e,t}function Vw(){var e=Ey([]),t=Nw,n=Zw,r=Fw;function o(o){var i,a,s=Array.from(e.apply(this,arguments),Hw),u=s.length,l=-1;for(const e of o)for(i=0,++l;i<u;++i)(s[i][l]=[0,+r(e,s[i].key,l,o)]).data=e;for(i=0,a=qy(t(s));i<u;++i)s[a[i]].index=i;return n(s,a),s}return o.keys=function(t){return arguments.length?(e="function"===typeof t?t:Ey(Array.from(t)),o):e},o.value=function(e){return arguments.length?(r="function"===typeof e?e:Ey(+e),o):r},o.order=function(e){return arguments.length?(t=null==e?Nw:"function"===typeof e?e:Ey(Array.from(e)),o):t},o.offset=function(e){return arguments.length?(n=null==e?Zw:e,o):n},o}function zw(e,t){if((r=e.length)>0){for(var n,r,o,i=0,a=e[0].length;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}Zw(e,t)}}function Uw(e,t){if((s=e.length)>0)for(var n,r,o,i,a,s,u=0,l=e[t[0]].length;u<l;++u)for(i=a=0,n=0;n<s;++n)(o=(r=e[t[n]][u])[1]-r[0])>0?(r[0]=i,r[1]=i+=o):o<0?(r[1]=a,r[0]=a+=o):(r[0]=0,r[1]=o)}function Gw(e,t){if((n=e.length)>0){for(var n,r=0,o=e[t[0]],i=o.length;r<i;++r){for(var a=0,s=0;a<n;++a)s+=e[a][r][1]||0;o[r][1]+=o[r][0]=-s/2}Zw(e,t)}}function Ww(e,t){if((o=e.length)>0&&(r=(n=e[t[0]]).length)>0){for(var n,r,o,i=0,a=1;a<r;++a){for(var s=0,u=0,l=0;s<o;++s){for(var c=e[t[s]],f=c[a][1]||0,d=(f-(c[a-1][1]||0))/2,p=0;p<s;++p){var h=e[t[p]];d+=(h[a][1]||0)-(h[a-1][1]||0)}u+=f,l+=d*f}n[a-1][1]+=n[a-1][0]=i,u&&(i-=l/u)}n[a-1][1]+=n[a-1][0]=i,Zw(e,t)}}function $w(e){var t=e.map(qw);return Nw(e).sort((function(e,n){return t[e]-t[n]}))}function qw(e){for(var t,n=-1,r=0,o=e.length,i=-1/0;++n<o;)(t=+e[n][1])>i&&(i=t,r=n);return r}function Yw(e){var t=e.map(Xw);return Nw(e).sort((function(e,n){return t[e]-t[n]}))}function Xw(e){for(var t,n=0,r=-1,o=e.length;++r<o;)(t=+e[r][1])&&(n+=t);return n}function Kw(e){return Yw(e).reverse()}function Jw(e){var t,n,r=e.length,o=e.map(Xw),i=$w(e),a=0,s=0,u=[],l=[];for(t=0;t<r;++t)n=i[t],a<s?(a+=o[n],u.push(n)):(s+=o[n],l.push(n));return l.reverse().concat(u)}function Qw(e){return Nw(e).reverse()}ww.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}},Ew.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Cw(this,this._t0,Ow(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Cw(this,Ow(this,n=Sw(this,e,t)),n);break;default:Cw(this,this._t0,n=Sw(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},(Aw.prototype=Object.create(Ew.prototype)).point=function(e,t){Ew.prototype.point.call(this,t,e)},Mw.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,o,i){this._context.bezierCurveTo(t,e,r,n,i,o)}},Rw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===n)this._context.lineTo(e[1],t[1]);else for(var r=Tw(e),o=Tw(t),i=0,a=1;a<n;++i,++a)this._context.bezierCurveTo(r[0][i],o[0][i],r[1][i],o[1][i],e[a],t[a]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}},Bw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};const ex=new Date,tx=new Date;function nx(e,t,n,r){function o(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return o.floor=t=>(e(t=new Date(+t)),t),o.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),o.round=e=>{const t=o(e),n=o.ceil(e);return e-t<n-e?t:n},o.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),o.range=(n,r,i)=>{const a=[];if(n=o.ceil(n),i=null==i?1:Math.floor(i),!(n<r)||!(i>0))return a;let s;do{a.push(s=new Date(+n)),t(n,i),e(n)}while(s<n&&n<r);return a},o.filter=n=>nx((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(o.count=(t,r)=>(ex.setTime(+t),tx.setTime(+r),e(ex),e(tx),Math.floor(n(ex,tx))),o.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?o.filter(r?t=>r(t)%e===0:t=>o.count(0,t)%e===0):o:null)),o}const rx=nx((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));rx.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?nx((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):rx:null);const ox=rx.range,ix=1e3,ax=6e4,sx=60*ax,ux=24*sx,lx=7*ux,cx=30*ux,fx=365*ux,dx=nx((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*ix)}),((e,t)=>(t-e)/ix),(e=>e.getUTCSeconds())),px=dx.range,hx=nx((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ix)}),((e,t)=>{e.setTime(+e+t*ax)}),((e,t)=>(t-e)/ax),(e=>e.getMinutes())),gx=hx.range,vx=nx((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*ax)}),((e,t)=>(t-e)/ax),(e=>e.getUTCMinutes())),mx=vx.range,yx=nx((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*ix-e.getMinutes()*ax)}),((e,t)=>{e.setTime(+e+t*sx)}),((e,t)=>(t-e)/sx),(e=>e.getHours())),bx=yx.range,wx=nx((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*sx)}),((e,t)=>(t-e)/sx),(e=>e.getUTCHours())),xx=wx.range,_x=nx((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*ax)/ux),(e=>e.getDate()-1)),Sx=_x.range,Ox=nx((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/ux),(e=>e.getUTCDate()-1)),Cx=Ox.range,Ex=nx((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/ux),(e=>Math.floor(e/ux))),Ax=Ex.range;function Mx(e){return nx((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*ax)/lx))}const kx=Mx(0),Px=Mx(1),Rx=Mx(2),Tx=Mx(3),Ix=Mx(4),Bx=Mx(5),Dx=Mx(6),jx=kx.range,Lx=Px.range,Zx=Rx.range,Nx=Tx.range,Fx=Ix.range,Hx=Bx.range,Vx=Dx.range;function zx(e){return nx((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/lx))}const Ux=zx(0),Gx=zx(1),Wx=zx(2),$x=zx(3),qx=zx(4),Yx=zx(5),Xx=zx(6),Kx=Ux.range,Jx=Gx.range,Qx=Wx.range,e_=$x.range,t_=qx.range,n_=Yx.range,r_=Xx.range,o_=nx((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth())),i_=o_.range,a_=nx((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth())),s_=a_.range,u_=nx((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear()));u_.every=e=>isFinite(e=Math.floor(e))&&e>0?nx((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null;const l_=u_.range,c_=nx((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));c_.every=e=>isFinite(e=Math.floor(e))&&e>0?nx((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null;const f_=c_.range;function d_(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function p_(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function h_(){return 0}var g_=Math.sqrt(50),v_=Math.sqrt(10),m_=Math.sqrt(2);function y_(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/o;return i>=g_?o*=10:i>=v_?o*=5:i>=m_&&(o*=2),t<e?-o:o}function b_(e,t,n,r,o,i){const a=[[dx,1,ix],[dx,5,5e3],[dx,15,15e3],[dx,30,3e4],[i,1,ax],[i,5,5*ax],[i,15,15*ax],[i,30,30*ax],[o,1,sx],[o,3,3*sx],[o,6,6*sx],[o,12,12*sx],[r,1,ux],[r,2,2*ux],[n,1,lx],[t,1,cx],[t,3,3*cx],[e,1,fx]];function s(t,n,r){const o=Math.abs(n-t)/r,i=function(e){let t,n,r;function o(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<0?o=t+1:i=t}while(o<i)}return o}return 2!==e.length?(t=d_,n=(t,n)=>d_(e(t),n),r=(t,n)=>e(t)-n):(t=e===d_||e===p_?e:h_,n=e,r=e),{left:o,center:function(e,t,n=0,i=e.length){const a=o(e,t,n,i-1);return a>n&&r(e[a-1],t)>-r(e[a],t)?a-1:a},right:function(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<=0?o=t+1:i=t}while(o<i)}return o}}}((([,,e])=>e)).right(a,o);if(i===a.length)return e.every(y_(t/fx,n/fx,r));if(0===i)return rx.every(Math.max(y_(t,n,r),1));const[s,u]=a[o/a[i-1][2]<a[i][2]/o?i-1:i];return s.every(u)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const o=n&&"function"===typeof n.range?n:s(e,t,n),i=o?o.range(e,+t+1):[];return r?i.reverse():i},s]}const[w_,x_]=b_(c_,a_,Ux,Ex,wx,vx),[__,S_]=b_(u_,o_,kx,_x,yx,hx);var O_=n(82138),C_=n(47238),E_="%Y-%m-%dT%H:%M:%S.%LZ";var A_=Date.prototype.toISOString?function(e){return e.toISOString()}:(0,O_.g0)(E_),M_=A_;var k_=+new Date("2000-01-01T00:00:00.000Z")?function(e){var t=new Date(e);return isNaN(t)?null:t}:(0,O_.wp)(E_),P_=k_;function R_(e,t,n){var r=new ar,o=t;return null==t?(r.restart(e,t,n),r):(r._restart=r.restart,r.restart=function(e,t,n){t=+t,n=null==n?or():+n,r._restart((function i(a){a+=o,r._restart(i,o+=t,n),e(a)}),t,n)},r.restart(e,t,n),r)}var T_=e=>()=>e;function I_(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function B_(e,t,n){this.k=e,this.x=t,this.y=n}B_.prototype={constructor:B_,scale:function(e){return 1===e?this:new B_(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new B_(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var D_=new B_(1,0,0);function j_(e){for(;!e.__zoom;)if(!(e=e.parentNode))return D_;return e.__zoom}function L_(e){e.stopImmediatePropagation()}function Z_(e){e.preventDefault(),e.stopImmediatePropagation()}function N_(e){return(!e.ctrlKey||"wheel"===e.type)&&!e.button}function F_(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function H_(){return this.__zoom||D_}function V_(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function z_(){return navigator.maxTouchPoints||"ontouchstart"in this}function U_(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function G_(){var e,t,n,r=N_,o=F_,i=U_,a=V_,s=z_,u=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,f=nv,d=_t("start","zoom","end"),p=500,h=150,g=0,v=10;function m(e){e.property("__zoom",H_).on("wheel.zoom",O,{passive:!1}).on("mousedown.zoom",C).on("dblclick.zoom",E).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(e,t){return(t=Math.max(u[0],Math.min(u[1],t)))===e.k?e:new B_(t,e.x,e.y)}function b(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new B_(e.k,r,o)}function w(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,t,n,r){e.on("start.zoom",(function(){_(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){_(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,i=arguments,a=_(e,i).event(r),s=o.apply(e,i),u=null==n?w(s):"function"===typeof n?n.apply(e,i):n,l=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),c=e.__zoom,d="function"===typeof t?t.apply(e,i):t,p=f(c.invert(u).concat(l/c.k),d.invert(u).concat(l/d.k));return function(e){if(1===e)e=d;else{var t=p(e),n=l/t[2];e=new B_(n,u[0]-t[0]*n,u[1]-t[1]*n)}a.zoom(null,e)}}))}function _(e,t,n){return!n&&e.__zooming||new S(e,t)}function S(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=o.apply(e,t),this.taps=0}function O(e,...t){if(r.apply(this,arguments)){var n=_(this,t).event(e),o=this.__zoom,s=Math.max(u[0],Math.min(u[1],o.k*Math.pow(2,a.apply(this,arguments)))),c=Wn(e);if(n.wheel)n.mouse[0][0]===c[0]&&n.mouse[0][1]===c[1]||(n.mouse[1]=o.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(o.k===s)return;n.mouse=[c,o.invert(c)],Er(this),n.start()}Z_(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),h),n.zoom("mouse",i(b(y(o,s),n.mouse[0],n.mouse[1]),n.extent,l))}}function C(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=_(this,t,!0).event(e),s=Ln(e.view).on("mousemove.zoom",(function(e){if(Z_(e),!a.moved){var t=e.clientX-c,n=e.clientY-f;a.moved=t*t+n*n>g}a.event(e).zoom("mouse",i(b(a.that.__zoom,a.mouse[0]=Wn(e,o),a.mouse[1]),a.extent,l))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),zn(e.view,a.moved),Z_(e),a.event(e).end()}),!0),u=Wn(e,o),c=e.clientX,f=e.clientY;Vn(e.view),L_(e),a.mouse=[u,this.__zoom.invert(u)],Er(this),a.start()}}function E(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=Wn(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),u=n.k*(e.shiftKey?.5:2),f=i(b(y(n,u),a,s),o.apply(this,t),l);Z_(e),c>0?Ln(this).transition().duration(c).call(x,f,a,e):Ln(this).call(m.transform,f,a,e)}}function A(n,...o){if(r.apply(this,arguments)){var i,a,s,u,l=n.touches,c=l.length,f=_(this,o,n.changedTouches.length===c).event(n);for(L_(n),a=0;a<c;++a)u=[u=Wn(s=l[a],this),this.__zoom.invert(u),s.identifier],f.touch0?f.touch1||f.touch0[2]===u[2]||(f.touch1=u,f.taps=0):(f.touch0=u,i=!0,f.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(f.taps<2&&(t=u[0],e=setTimeout((function(){e=null}),p)),Er(this),f.start())}}function M(e,...t){if(this.__zooming){var n,r,o,a,s=_(this,t).event(e),u=e.changedTouches,c=u.length;for(Z_(e),n=0;n<c;++n)o=Wn(r=u[n],this),s.touch0&&s.touch0[2]===r.identifier?s.touch0[0]=o:s.touch1&&s.touch1[2]===r.identifier&&(s.touch1[0]=o);if(r=s.that.__zoom,s.touch1){var f=s.touch0[0],d=s.touch0[1],p=s.touch1[0],h=s.touch1[1],g=(g=p[0]-f[0])*g+(g=p[1]-f[1])*g,v=(v=h[0]-d[0])*v+(v=h[1]-d[1])*v;r=y(r,Math.sqrt(g/v)),o=[(f[0]+p[0])/2,(f[1]+p[1])/2],a=[(d[0]+h[0])/2,(d[1]+h[1])/2]}else{if(!s.touch0)return;o=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(b(r,o,a),s.extent,l))}}function k(e,...r){if(this.__zooming){var o,i,a=_(this,r).event(e),s=e.changedTouches,u=s.length;for(L_(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),p),o=0;o<u;++o)i=s[o],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=Wn(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<v)){var l=Ln(this).on("dblclick.zoom");l&&l.apply(this,arguments)}}}return m.transform=function(e,t,n,r){var o=e.selection?e.selection():e;o.property("__zoom",H_),e!==o?x(e,t,n,r):o.interrupt().each((function(){_(this,arguments).event(r).start().zoom(null,"function"===typeof t?t.apply(this,arguments):t).end()}))},m.scaleBy=function(e,t,n,r){m.scaleTo(e,(function(){return this.__zoom.k*("function"===typeof t?t.apply(this,arguments):t)}),n,r)},m.scaleTo=function(e,t,n,r){m.transform(e,(function(){var e=o.apply(this,arguments),r=this.__zoom,a=null==n?w(e):"function"===typeof n?n.apply(this,arguments):n,s=r.invert(a),u="function"===typeof t?t.apply(this,arguments):t;return i(b(y(r,u),a,s),e,l)}),n,r)},m.translateBy=function(e,t,n,r){m.transform(e,(function(){return i(this.__zoom.translate("function"===typeof t?t.apply(this,arguments):t,"function"===typeof n?n.apply(this,arguments):n),o.apply(this,arguments),l)}),null,r)},m.translateTo=function(e,t,n,r,a){m.transform(e,(function(){var e=o.apply(this,arguments),a=this.__zoom,s=null==r?w(e):"function"===typeof r?r.apply(this,arguments):r;return i(D_.translate(s[0],s[1]).scale(a.k).translate("function"===typeof t?-t.apply(this,arguments):-t,"function"===typeof n?-n.apply(this,arguments):-n),e,l)}),r,a)},S.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1===++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0===--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=Ln(this.that).datum();d.call(e,this.that,new I_(e,{sourceEvent:this.sourceEvent,target:m,type:e,transform:this.that.__zoom,dispatch:d}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"===typeof e?e:T_(+e),m):a},m.filter=function(e){return arguments.length?(r="function"===typeof e?e:T_(!!e),m):r},m.touchable=function(e){return arguments.length?(s="function"===typeof e?e:T_(!!e),m):s},m.extent=function(e){return arguments.length?(o="function"===typeof e?e:T_([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),m):o},m.scaleExtent=function(e){return arguments.length?(u[0]=+e[0],u[1]=+e[1],m):[u[0],u[1]]},m.translateExtent=function(e){return arguments.length?(l[0][0]=+e[0][0],l[1][0]=+e[1][0],l[0][1]=+e[0][1],l[1][1]=+e[1][1],m):[[l[0][0],l[0][1]],[l[1][0],l[1][1]]]},m.constrain=function(e){return arguments.length?(i=e,m):i},m.duration=function(e){return arguments.length?(c=+e,m):c},m.interpolate=function(e){return arguments.length?(f=e,m):f},m.on=function(){var e=d.on.apply(d,arguments);return e===d?m:e},m.clickDistance=function(e){return arguments.length?(g=(e=+e)*e,m):Math.sqrt(g)},m.tapDistance=function(e){return arguments.length?(v=+e,m):v},m}j_.prototype=B_.prototype},24678:function(e,t,n){"use strict";function r(e){return new Promise(((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}function o(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const o=r(n);return(e,n)=>o.then((r=>n(r.transaction(t,e).objectStore(t))))}let i;function a(){return i||(i=o("keyval-store","keyval")),i}function s(e,t=a()){return t("readonly",(t=>r(t.get(e))))}function u(e,t,n=a()){return n("readwrite",(n=>(n.put(t,e),r(n.transaction))))}function l(e,t=a()){return t("readwrite",(t=>(t.delete(e),r(t.transaction))))}function c(e=a()){return e("readwrite",(e=>(e.clear(),r(e.transaction))))}n.d(t,{IV:function(){return l},MT:function(){return o},U2:function(){return s},ZH:function(){return c},t8:function(){return u}})},909:function(e,t,n){"use strict";n.d(t,{H:function(){return o},L:function(){return r}});class r extends Map{constructor(e,t=u){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[n,r]of e)this.set(n,r)}get(e){return super.get(i(this,e))}has(e){return super.has(i(this,e))}set(e,t){return super.set(a(this,e),t)}delete(e){return super.delete(s(this,e))}}class o extends Set{constructor(e,t=u){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const n of e)this.add(n)}has(e){return super.has(i(this,e))}add(e){return super.add(a(this,e))}delete(e){return super.delete(s(this,e))}}function i({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function a({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function s({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function u(e){return null!==e&&"object"===typeof e?e.valueOf():e}},55101:function(e,t,n){"use strict";n.d(t,{zoF:function(){return le},UID:function(){return D},BPw:function(){return he},ETc:function(){return fe},pMU:function(){return ve},zGw:function(){return z},DYV:function(){return me}});var r=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function o(e,t,n){return function(){if(0===arguments.length)return n();var o=arguments[arguments.length-1];if(!r(o)){for(var i=0;i<e.length;){if("function"===typeof o[e[i]])return o[e[i]].apply(o,Array.prototype.slice.call(arguments,0,-1));i+=1}if(function(e){return null!=e&&"function"===typeof e["@@transducer/step"]}(o))return t.apply(null,Array.prototype.slice.call(arguments,0,-1))(o)}return n.apply(this,arguments)}}var i=function(){return this.xf["@@transducer/init"]()},a=function(e){return this.xf["@@transducer/result"](e)};function s(e){return null!=e&&"object"===typeof e&&!0===e["@@functional/placeholder"]}function u(e){return function t(n){return 0===arguments.length||s(n)?t:e.apply(this,arguments)}}function l(e){return function t(n,r){switch(arguments.length){case 0:return t;case 1:return s(n)?t:u((function(t){return e(n,t)}));default:return s(n)&&s(r)?t:s(n)?u((function(t){return e(t,r)})):s(r)?u((function(t){return e(n,t)})):e(n,r)}}}function c(e,t){for(var n=0,r=t.length,o=Array(r);n<r;)o[n]=e(t[n]),n+=1;return o}function f(e){return"[object String]"===Object.prototype.toString.call(e)}var d=u((function(e){return!!r(e)||!!e&&("object"===typeof e&&(!f(e)&&(0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))})),p=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();function h(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,n){return t.apply(this,arguments)};case 3:return function(e,n,r){return t.apply(this,arguments)};case 4:return function(e,n,r,o){return t.apply(this,arguments)};case 5:return function(e,n,r,o,i){return t.apply(this,arguments)};case 6:return function(e,n,r,o,i,a){return t.apply(this,arguments)};case 7:return function(e,n,r,o,i,a,s){return t.apply(this,arguments)};case 8:return function(e,n,r,o,i,a,s,u){return t.apply(this,arguments)};case 9:return function(e,n,r,o,i,a,s,u,l){return t.apply(this,arguments)};case 10:return function(e,n,r,o,i,a,s,u,l,c){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}var g=l((function(e,t){return h(e.length,(function(){return e.apply(t,arguments)}))})),v=g;function m(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function y(e,t,n,r){return e["@@transducer/result"](n[r](v(e["@@transducer/step"],e),t))}var b="undefined"!==typeof Symbol?Symbol.iterator:"@@iterator";function w(e,t,n){if("function"===typeof e&&(e=function(e){return new p(e)}(e)),d(n))return function(e,t,n){for(var r=0,o=n.length;r<o;){if((t=e["@@transducer/step"](t,n[r]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r+=1}return e["@@transducer/result"](t)}(e,t,n);if("function"===typeof n["fantasy-land/reduce"])return y(e,t,n,"fantasy-land/reduce");if(null!=n[b])return m(e,t,n[b]());if("function"===typeof n.next)return m(e,t,n);if("function"===typeof n.reduce)return y(e,t,n,"reduce");throw new TypeError("reduce: list must be array or iterable")}var x=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=i,e.prototype["@@transducer/result"]=a,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),_=l((function(e,t){return new x(e,t)}));function S(e,t,n){return function(){for(var r=[],o=0,i=e,a=0;a<t.length||o<arguments.length;){var u;a<t.length&&(!s(t[a])||o>=arguments.length)?u=t[a]:(u=arguments[o],o+=1),r[a]=u,s(u)||(i-=1),a+=1}return i<=0?n.apply(this,r):h(i,S(e,r,n))}}var O=l((function(e,t){return 1===e?u(t):h(e,S(e,[],t))}));function C(e,t){return Object.prototype.hasOwnProperty.call(t,e)}var E=Object.prototype.toString,A=function(){return"[object Arguments]"===E.call(arguments)?function(e){return"[object Arguments]"===E.call(e)}:function(e){return C("callee",e)}}(),M=A,k=!{toString:null}.propertyIsEnumerable("toString"),P=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],R=function(){return arguments.propertyIsEnumerable("length")}(),T=function(e,t){for(var n=0;n<e.length;){if(e[n]===t)return!0;n+=1}return!1},I="function"!==typeof Object.keys||R?u((function(e){if(Object(e)!==e)return[];var t,n,r=[],o=R&&M(e);for(t in e)!C(t,e)||o&&"length"===t||(r[r.length]=t);if(k)for(n=P.length-1;n>=0;)C(t=P[n],e)&&!T(r,t)&&(r[r.length]=t),n-=1;return r})):u((function(e){return Object(e)!==e?[]:Object.keys(e)})),B=l(o(["fantasy-land/map","map"],_,(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return O(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return w((function(n,r){return n[r]=e(t[r]),n}),{},I(t));default:return c(e,t)}}))),D=B,j=Number.isInteger||function(e){return e<<0===e},L=l((function(e,t){var n=e<0?t.length+e:e;return f(t)?t.charAt(n):t[n]}));function Z(e){return function t(n,r,o){switch(arguments.length){case 0:return t;case 1:return s(n)?t:l((function(t,r){return e(n,t,r)}));case 2:return s(n)&&s(r)?t:s(n)?l((function(t,n){return e(t,r,n)})):s(r)?l((function(t,r){return e(n,t,r)})):u((function(t){return e(n,r,t)}));default:return s(n)&&s(r)&&s(o)?t:s(n)&&s(r)?l((function(t,n){return e(t,n,o)})):s(n)&&s(o)?l((function(t,n){return e(t,r,n)})):s(r)&&s(o)?l((function(t,r){return e(n,t,r)})):s(n)?u((function(t){return e(t,r,o)})):s(r)?u((function(t){return e(n,t,o)})):s(o)?u((function(t){return e(n,r,t)})):e(n,r,o)}}}var N=Z(w);function F(e,t){return function(){return t.call(this,e.apply(this,arguments))}}function H(e,t){return function(){var n=arguments.length;if(0===n)return t();var o=arguments[n-1];return r(o)||"function"!==typeof o[e]?t.apply(this,arguments):o[e].apply(o,Array.prototype.slice.call(arguments,0,n-1))}}var V=u(H("tail",Z(H("slice",(function(e,t,n){return Array.prototype.slice.call(n,e,t)})))(1,1/0)));function z(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return h(arguments[0].length,N(F,arguments[0],V(arguments)))}function U(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t}function G(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function W(e,t,n){for(var r=0,o=n.length;r<o;){if(e(t,n[r]))return!0;r+=1}return!1}var $="function"===typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t},q=u((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));function Y(e,t,n,r){var o=G(e);function i(e,t){return X(e,t,n.slice(),r.slice())}return!W((function(e,t){return!W(i,t,e)}),G(t),o)}function X(e,t,n,r){if($(e,t))return!0;var o=q(e);if(o!==q(t))return!1;if("function"===typeof e["fantasy-land/equals"]||"function"===typeof t["fantasy-land/equals"])return"function"===typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"===typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"===typeof e.equals||"function"===typeof t.equals)return"function"===typeof e.equals&&e.equals(t)&&"function"===typeof t.equals&&t.equals(e);switch(o){case"Arguments":case"Array":case"Object":if("function"===typeof e.constructor&&"Promise"===function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!==typeof t||!$(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!$(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var i=n.length-1;i>=0;){if(n[i]===e)return r[i]===t;i-=1}switch(o){case"Map":return e.size===t.size&&Y(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&Y(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var a=I(e);if(a.length!==I(t).length)return!1;var s=n.concat([e]),u=r.concat([t]);for(i=a.length-1;i>=0;){var l=a[i];if(!C(l,t)||!X(t[l],e[l],s,u))return!1;i-=1}return!0}var K=l((function(e,t){return X(e,t,[],[])}));function J(e,t){return function(e,t,n){var r,o;if("function"===typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n<e.length;){if(0===(o=e[n])&&1/o===r)return n;n+=1}return-1}if(t!==t){for(;n<e.length;){if("number"===typeof(o=e[n])&&o!==o)return n;n+=1}return-1}return e.indexOf(t,n);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,n);case"object":if(null===t)return e.indexOf(t,n)}for(;n<e.length;){if(K(e[n],t))return n;n+=1}return-1}(t,e,0)>=0}function Q(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var ee=function(e){return(e<10?"0":"")+e},te="function"===typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+ee(e.getUTCMonth()+1)+"-"+ee(e.getUTCDate())+"T"+ee(e.getUTCHours())+":"+ee(e.getUTCMinutes())+":"+ee(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function ne(e){return"[object Object]"===Object.prototype.toString.call(e)}var re=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=i,e.prototype["@@transducer/result"]=a,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}(),oe=l(o(["fantasy-land/filter","filter"],l((function(e,t){return new re(e,t)})),(function(e,t){return ne(t)?w((function(n,r){return e(t[r])&&(n[r]=t[r]),n}),{},I(t)):function(e,t){for(var n=0,r=t.length,o=[];n<r;)e(t[n])&&(o[o.length]=t[n]),n+=1;return o}(e,t)}))),ie=l((function(e,t){return oe((n=e,function(){return!n.apply(this,arguments)}),t);var n})),ae=ie;function se(e,t){var n=function(n){var r=t.concat([e]);return J(n,r)?"<Circular>":se(n,r)},r=function(e,t){return c((function(t){return Q(t)+": "+n(e[t])}),t.slice().sort())};switch(Object.prototype.toString.call(e)){case"[object Arguments]":return"(function() { return arguments; }("+c(n,e).join(", ")+"))";case"[object Array]":return"["+c(n,e).concat(r(e,ae((function(e){return/^\d+$/.test(e)}),I(e)))).join(", ")+"]";case"[object Boolean]":return"object"===typeof e?"new Boolean("+n(e.valueOf())+")":e.toString();case"[object Date]":return"new Date("+(isNaN(e.valueOf())?n(NaN):Q(te(e)))+")";case"[object Null]":return"null";case"[object Number]":return"object"===typeof e?"new Number("+n(e.valueOf())+")":1/e===-1/0?"-0":e.toString(10);case"[object String]":return"object"===typeof e?"new String("+n(e.valueOf())+")":Q(e);case"[object Undefined]":return"undefined";default:if("function"===typeof e.toString){var o=e.toString();if("[object Object]"!==o)return o}return"{"+r(e,I(e)).join(", ")+"}"}}var ue=u((function(e){return se(e,[])})),le=l((function(e,t){if(r(e)){if(r(t))return e.concat(t);throw new TypeError(ue(t)+" is not an array")}if(f(e)){if(f(t))return e+t;throw new TypeError(ue(t)+" is not a string")}if(null!=e&&U(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&U(e.concat))return e.concat(t);throw new TypeError(ue(e)+' does not have a method named "concat" or "fantasy-land/concat"')}));"function"===typeof Object.assign&&Object.assign;var ce=l((function(e,t){return e.map((function(e){for(var n,r=t,o=0;o<e.length;){if(null==r)return;n=e[o],r=j(n)?L(n,r):r[n],o+=1}return r}))})),fe=l((function(e,t){return ce([e],t)[0]})),de=Z((function(e,t,n){var r,o={};for(r in t)C(r,t)&&(o[r]=C(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)C(r,n)&&!C(r,o)&&(o[r]=n[r]);return o})),pe=Z((function e(t,n,r){return de((function(n,r,o){return ne(r)&&ne(o)?e(t,r,o):t(n,r,o)}),n,r)})),he=l((function(e,t){return pe((function(e,t,n){return n}),e,t)}));var ge=l((function(e,t){return null==t||t!==t?e:t})),ve=Z((function(e,t,n){return ge(e,fe(t,n))})),me=l((function(e,t){return Array.prototype.slice.call(t,0).sort(e)})),ye="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";String.prototype.trim},55678:function(e,t,n){"use strict";n.d(t,{Am:function(){return B},Ix:function(){return O}});var r=n(67294),o=n(86010);const i=e=>"number"==typeof e&&!isNaN(e),a=e=>"string"==typeof e,s=e=>"function"==typeof e,u=e=>a(e)||s(e)?e:null,l=e=>(0,r.isValidElement)(e)||a(e)||s(e)||i(e);function c(e){let{enter:t,exit:n,appendPosition:o=!1,collapse:i=!0,collapseDuration:a=300}=e;return function(e){let{children:s,position:u,preventExitTransition:l,done:c,nodeRef:f,isIn:d}=e;const p=o?`${t}--${u}`:t,h=o?`${n}--${u}`:n,g=(0,r.useRef)(0);return(0,r.useLayoutEffect)((()=>{const e=f.current,t=p.split(" "),n=r=>{r.target===f.current&&(e.dispatchEvent(new Event("d")),e.removeEventListener("animationend",n),e.removeEventListener("animationcancel",n),0===g.current&&"animationcancel"!==r.type&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener("animationend",n),e.addEventListener("animationcancel",n)}),[]),(0,r.useEffect)((()=>{const e=f.current,t=()=>{e.removeEventListener("animationend",t),i?function(e,t,n){void 0===n&&(n=300);const{scrollHeight:r,style:o}=e;requestAnimationFrame((()=>{o.minHeight="initial",o.height=r+"px",o.transition=`all ${n}ms`,requestAnimationFrame((()=>{o.height="0",o.padding="0",o.margin="0",setTimeout(t,n)}))}))}(e,c,a):c()};d||(l?t():(g.current=1,e.className+=` ${h}`,e.addEventListener("animationend",t)))}),[d]),r.createElement(r.Fragment,null,s)}}function f(e,t){return null!=e?{content:e.content,containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,status:t}:{}}const d={list:new Map,emitQueue:new Map,on(e,t){return this.list.has(e)||this.list.set(e,[]),this.list.get(e).push(t),this},off(e,t){if(t){const n=this.list.get(e).filter((e=>e!==t));return this.list.set(e,n),this}return this.list.delete(e),this},cancelEmit(e){const t=this.emitQueue.get(e);return t&&(t.forEach(clearTimeout),this.emitQueue.delete(e)),this},emit(e){this.list.has(e)&&this.list.get(e).forEach((t=>{const n=setTimeout((()=>{t(...[].slice.call(arguments,1))}),0);this.emitQueue.has(e)||this.emitQueue.set(e,[]),this.emitQueue.get(e).push(n)}))}},p=e=>{let{theme:t,type:n,...o}=e;return r.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:"colored"===t?"currentColor":`var(--toastify-icon-color-${n})`,...o})},h={info:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return r.createElement("div",{className:"Toastify__spinner"})}};function g(e){const[,t]=(0,r.useReducer)((e=>e+1),0),[n,o]=(0,r.useState)([]),c=(0,r.useRef)(null),p=(0,r.useRef)(new Map).current,g=e=>-1!==n.indexOf(e),v=(0,r.useRef)({toastKey:1,displayedToast:0,count:0,queue:[],props:e,containerId:null,isToastActive:g,getToast:e=>p.get(e)}).current;function m(e){let{containerId:t}=e;const{limit:n}=v.props;!n||t&&v.containerId!==t||(v.count-=v.queue.length,v.queue=[])}function y(e){o((t=>null==e?[]:t.filter((t=>t!==e))))}function b(){const{toastContent:e,toastProps:t,staleId:n}=v.queue.shift();x(e,t,n)}function w(e,n){let{delay:o,staleId:g,...m}=n;if(!l(e)||function(e){return!c.current||v.props.enableMultiContainer&&e.containerId!==v.props.containerId||p.has(e.toastId)&&null==e.updateId}(m))return;const{toastId:w,updateId:_,data:S}=m,{props:O}=v,C=()=>y(w),E=null==_;E&&v.count++;const A={...O,style:O.toastStyle,key:v.toastKey++,...Object.fromEntries(Object.entries(m).filter((e=>{let[t,n]=e;return null!=n}))),toastId:w,updateId:_,data:S,closeToast:C,isIn:!1,className:u(m.className||O.toastClassName),bodyClassName:u(m.bodyClassName||O.bodyClassName),progressClassName:u(m.progressClassName||O.progressClassName),autoClose:!m.isLoading&&(M=m.autoClose,k=O.autoClose,!1===M||i(M)&&M>0?M:k),deleteToast(){const e=f(p.get(w),"removed");p.delete(w),d.emit(4,e);const n=v.queue.length;if(v.count=null==w?v.count-v.displayedToast:v.count-1,v.count<0&&(v.count=0),n>0){const e=null==w?v.props.limit:1;if(1===n||1===e)v.displayedToast++,b();else{const t=e>n?n:e;v.displayedToast=t;for(let e=0;e<t;e++)b()}}else t()}};var M,k;A.iconOut=function(e){let{theme:t,type:n,isLoading:o,icon:u}=e,l=null;const c={theme:t,type:n};return!1===u||(s(u)?l=u(c):(0,r.isValidElement)(u)?l=(0,r.cloneElement)(u,c):a(u)||i(u)?l=u:o?l=h.spinner():(e=>e in h)(n)&&(l=h[n](c))),l}(A),s(m.onOpen)&&(A.onOpen=m.onOpen),s(m.onClose)&&(A.onClose=m.onClose),A.closeButton=O.closeButton,!1===m.closeButton||l(m.closeButton)?A.closeButton=m.closeButton:!0===m.closeButton&&(A.closeButton=!l(O.closeButton)||O.closeButton);let P=e;(0,r.isValidElement)(e)&&!a(e.type)?P=(0,r.cloneElement)(e,{closeToast:C,toastProps:A,data:S}):s(e)&&(P=e({closeToast:C,toastProps:A,data:S})),O.limit&&O.limit>0&&v.count>O.limit&&E?v.queue.push({toastContent:P,toastProps:A,staleId:g}):i(o)?setTimeout((()=>{x(P,A,g)}),o):x(P,A,g)}function x(e,t,n){const{toastId:r}=t;n&&p.delete(n);const i={content:e,props:t};p.set(r,i),o((e=>[...e,r].filter((e=>e!==n)))),d.emit(4,f(i,null==i.props.updateId?"added":"updated"))}return(0,r.useEffect)((()=>(v.containerId=e.containerId,d.cancelEmit(3).on(0,w).on(1,(e=>c.current&&y(e))).on(5,m).emit(2,v),()=>{p.clear(),d.emit(3,v)})),[]),(0,r.useEffect)((()=>{v.props=e,v.isToastActive=g,v.displayedToast=n.length})),{getToastToRender:function(t){const n=new Map,r=Array.from(p.values());return e.newestOnTop&&r.reverse(),r.forEach((e=>{const{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)})),Array.from(n,(e=>t(e[0],e[1])))},containerRef:c,isToastActive:g}}function v(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientX:e.clientX}function m(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientY:e.clientY}function y(e){const[t,n]=(0,r.useState)(!1),[o,i]=(0,r.useState)(!1),a=(0,r.useRef)(null),u=(0,r.useRef)({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,l=(0,r.useRef)(e),{autoClose:c,pauseOnHover:f,closeToast:d,onClick:p,closeOnClick:h}=e;function g(t){if(e.draggable){"touchstart"===t.nativeEvent.type&&t.nativeEvent.preventDefault(),u.didMove=!1,document.addEventListener("mousemove",x),document.addEventListener("mouseup",_),document.addEventListener("touchmove",x),document.addEventListener("touchend",_);const n=a.current;u.canCloseOnClick=!0,u.canDrag=!0,u.boundingRect=n.getBoundingClientRect(),n.style.transition="",u.x=v(t.nativeEvent),u.y=m(t.nativeEvent),"x"===e.draggableDirection?(u.start=u.x,u.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(u.start=u.y,u.removalDistance=n.offsetHeight*(80===e.draggablePercent?1.5*e.draggablePercent:e.draggablePercent/100))}}function y(t){if(u.boundingRect){const{top:n,bottom:r,left:o,right:i}=u.boundingRect;"touchend"!==t.nativeEvent.type&&e.pauseOnHover&&u.x>=o&&u.x<=i&&u.y>=n&&u.y<=r?w():b()}}function b(){n(!0)}function w(){n(!1)}function x(n){const r=a.current;u.canDrag&&r&&(u.didMove=!0,t&&w(),u.x=v(n),u.y=m(n),u.delta="x"===e.draggableDirection?u.x-u.start:u.y-u.start,u.start!==u.x&&(u.canCloseOnClick=!1),r.style.transform=`translate${e.draggableDirection}(${u.delta}px)`,r.style.opacity=""+(1-Math.abs(u.delta/u.removalDistance)))}function _(){document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",_),document.removeEventListener("touchmove",x),document.removeEventListener("touchend",_);const t=a.current;if(u.canDrag&&u.didMove&&t){if(u.canDrag=!1,Math.abs(u.delta)>u.removalDistance)return i(!0),void e.closeToast();t.style.transition="transform 0.2s, opacity 0.2s",t.style.transform=`translate${e.draggableDirection}(0)`,t.style.opacity="1"}}(0,r.useEffect)((()=>{l.current=e})),(0,r.useEffect)((()=>(a.current&&a.current.addEventListener("d",b,{once:!0}),s(e.onOpen)&&e.onOpen((0,r.isValidElement)(e.children)&&e.children.props),()=>{const e=l.current;s(e.onClose)&&e.onClose((0,r.isValidElement)(e.children)&&e.children.props)})),[]),(0,r.useEffect)((()=>(e.pauseOnFocusLoss&&(document.hasFocus()||w(),window.addEventListener("focus",b),window.addEventListener("blur",w)),()=>{e.pauseOnFocusLoss&&(window.removeEventListener("focus",b),window.removeEventListener("blur",w))})),[e.pauseOnFocusLoss]);const S={onMouseDown:g,onTouchStart:g,onMouseUp:y,onTouchEnd:y};return c&&f&&(S.onMouseEnter=w,S.onMouseLeave=b),h&&(S.onClick=e=>{p&&p(e),u.canCloseOnClick&&d()}),{playToast:b,pauseToast:w,isRunning:t,preventExitTransition:o,toastRef:a,eventHandlers:S}}function b(e){let{closeToast:t,theme:n,ariaLabel:o="close"}=e;return r.createElement("button",{className:`Toastify__close-button Toastify__close-button--${n}`,type:"button",onClick:e=>{e.stopPropagation(),t(e)},"aria-label":o},r.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},r.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function w(e){let{delay:t,isRunning:n,closeToast:i,type:a="default",hide:u,className:l,style:c,controlledProgress:f,progress:d,rtl:p,isIn:h,theme:g}=e;const v=u||f&&0===d,m={...c,animationDuration:`${t}ms`,animationPlayState:n?"running":"paused",opacity:v?0:1};f&&(m.transform=`scaleX(${d})`);const y=(0,o.default)("Toastify__progress-bar",f?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${g}`,`Toastify__progress-bar--${a}`,{"Toastify__progress-bar--rtl":p}),b=s(l)?l({rtl:p,type:a,defaultClassName:y}):(0,o.default)(y,l);return r.createElement("div",{role:"progressbar","aria-hidden":v?"true":"false","aria-label":"notification timer",className:b,style:m,[f&&d>=1?"onTransitionEnd":"onAnimationEnd"]:f&&d<1?null:()=>{h&&i()}})}const x=e=>{const{isRunning:t,preventExitTransition:n,toastRef:i,eventHandlers:a}=y(e),{closeButton:u,children:l,autoClose:c,onClick:f,type:d,hideProgressBar:p,closeToast:h,transition:g,position:v,className:m,style:x,bodyClassName:_,bodyStyle:S,progressClassName:O,progressStyle:C,updateId:E,role:A,progress:M,rtl:k,toastId:P,deleteToast:R,isIn:T,isLoading:I,iconOut:B,closeOnClick:D,theme:j}=e,L=(0,o.default)("Toastify__toast",`Toastify__toast-theme--${j}`,`Toastify__toast--${d}`,{"Toastify__toast--rtl":k},{"Toastify__toast--close-on-click":D}),Z=s(m)?m({rtl:k,position:v,type:d,defaultClassName:L}):(0,o.default)(L,m),N=!!M||!c,F={closeToast:h,type:d,theme:j};let H=null;return!1===u||(H=s(u)?u(F):(0,r.isValidElement)(u)?(0,r.cloneElement)(u,F):b(F)),r.createElement(g,{isIn:T,done:R,position:v,preventExitTransition:n,nodeRef:i},r.createElement("div",{id:P,onClick:f,className:Z,...a,style:x,ref:i},r.createElement("div",{...T&&{role:A},className:s(_)?_({type:d}):(0,o.default)("Toastify__toast-body",_),style:S},null!=B&&r.createElement("div",{className:(0,o.default)("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!I})},B),r.createElement("div",null,l)),H,r.createElement(w,{...E&&!N?{key:`pb-${E}`}:{},rtl:k,theme:j,delay:c,isRunning:t,isIn:T,closeToast:h,hide:p,type:d,style:C,className:O,controlledProgress:N,progress:M||0})))},_=function(e,t){return void 0===t&&(t=!1),{enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}},S=c(_("bounce",!0)),O=(c(_("slide",!0)),c(_("zoom")),c(_("flip")),(0,r.forwardRef)(((e,t)=>{const{getToastToRender:n,containerRef:i,isToastActive:a}=g(e),{className:l,style:c,rtl:f,containerId:d}=e;function p(e){const t=(0,o.default)("Toastify__toast-container",`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":f});return s(l)?l({position:e,rtl:f,defaultClassName:t}):(0,o.default)(t,u(l))}return(0,r.useEffect)((()=>{t&&(t.current=i.current)}),[]),r.createElement("div",{ref:i,className:"Toastify",id:d},n(((e,t)=>{const n=t.length?{...c}:{...c,pointerEvents:"none"};return r.createElement("div",{className:p(e),style:n,key:`container-${e}`},t.map(((e,n)=>{let{content:o,props:i}=e;return r.createElement(x,{...i,isIn:a(i.toastId),style:{...i.style,"--nth":n+1,"--len":t.length},key:`toast-${i.key}`},o)})))})))})));O.displayName="ToastContainer",O.defaultProps={position:"top-right",transition:S,autoClose:5e3,closeButton:b,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};let C,E=new Map,A=[],M=1;function k(){return""+M++}function P(e){return e&&(a(e.toastId)||i(e.toastId))?e.toastId:k()}function R(e,t){return E.size>0?d.emit(0,e,t):A.push({content:e,options:t}),t.toastId}function T(e,t){return{...t,type:t&&t.type||e,toastId:P(t)}}function I(e){return(t,n)=>R(t,T(e,n))}function B(e,t){return R(e,T("default",t))}B.loading=(e,t)=>R(e,T("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),B.promise=function(e,t,n){let r,{pending:o,error:i,success:u}=t;o&&(r=a(o)?B.loading(o,n):B.loading(o.render,{...n,...o}));const l={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},c=(e,t,o)=>{if(null==t)return void B.dismiss(r);const i={type:e,...l,...n,data:o},s=a(t)?{render:t}:t;return r?B.update(r,{...i,...s}):B(s.render,{...i,...s}),o},f=s(e)?e():e;return f.then((e=>c("success",u,e))).catch((e=>c("error",i,e))),f},B.success=I("success"),B.info=I("info"),B.error=I("error"),B.warning=I("warning"),B.warn=B.warning,B.dark=(e,t)=>R(e,T("default",{theme:"dark",...t})),B.dismiss=e=>{E.size>0?d.emit(1,e):A=A.filter((t=>null!=e&&t.options.toastId!==e))},B.clearWaitingQueue=function(e){return void 0===e&&(e={}),d.emit(5,e)},B.isActive=e=>{let t=!1;return E.forEach((n=>{n.isToastActive&&n.isToastActive(e)&&(t=!0)})),t},B.update=function(e,t){void 0===t&&(t={}),setTimeout((()=>{const n=function(e,t){let{containerId:n}=t;const r=E.get(n||C);return r&&r.getToast(e)}(e,t);if(n){const{props:r,content:o}=n,i={delay:100,...r,...t,toastId:t.toastId||e,updateId:k()};i.toastId!==e&&(i.staleId=e);const a=i.render||o;delete i.render,R(a,i)}}),0)},B.done=e=>{B.update(e,{progress:1})},B.onChange=e=>(d.on(4,e),()=>{d.off(4,e)}),B.POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},B.TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"},d.on(2,(e=>{C=e.containerId||e,E.set(C,e),A.forEach((e=>{d.emit(0,e.content,e.options)})),A=[]})).on(3,(e=>{E.delete(e.containerId||e),0===E.size&&d.off(0).off(1).off(5)}))},27856:function(e,t,n){"use strict";function r(e,t,n){var r=(n||{}).atBegin;return function(e,t,n){var r,o=n||{},i=o.noTrailing,a=void 0!==i&&i,s=o.noLeading,u=void 0!==s&&s,l=o.debounceMode,c=void 0===l?void 0:l,f=!1,d=0;function p(){r&&clearTimeout(r)}function h(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var s=this,l=Date.now()-d;function h(){d=Date.now(),t.apply(s,o)}function g(){r=void 0}f||(u||!c||r||h(),p(),void 0===c&&l>e?u?(d=Date.now(),a||(r=setTimeout(c?g:h,e))):h():!0!==a&&(r=setTimeout(c?g:h,void 0===c?e-l:e)))}return h.cancel=function(e){var t=(e||{}).upcomingOnly,n=void 0!==t&&t;p(),f=!n},h}(e,t,{debounceMode:!1!==(void 0!==r&&r)})}n.d(t,{D:function(){return r}})}}]); \ No newline at end of file
diff --git a/web/gui/v2/376.e533843d1907d4e8dafa.js b/web/gui/v2/376.e533843d1907d4e8dafa.js
new file mode 100644
index 00000000..692fab97
--- /dev/null
+++ b/web/gui/v2/376.e533843d1907d4e8dafa.js
@@ -0,0 +1,2 @@
+/*! For license information please see 376.e533843d1907d4e8dafa.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d7e798be-44d2-4afd-9ee2-04ef3312c66a",e._sentryDebugIdIdentifier="sentry-dbid-d7e798be-44d2-4afd-9ee2-04ef3312c66a")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[376],{78081:function(e,t,n){var r=n(82215),o=n(82584),i=n(20609),a=n(98420),s=n(20738),l=n(18923),u=Date.prototype.getTime;function c(e,t,n){var p=n||{};return!!(p.strict?i(e,t):e===t)||(!e||!t||"object"!==typeof e&&"object"!==typeof t?p.strict?i(e,t):e==t:function(e,t,n){var i,p;if(typeof e!==typeof t)return!1;if(f(e)||f(t))return!1;if(e.prototype!==t.prototype)return!1;if(o(e)!==o(t))return!1;var h=a(e),g=a(t);if(h!==g)return!1;if(h||g)return e.source===t.source&&s(e)===s(t);if(l(e)&&l(t))return u.call(e)===u.call(t);var v=d(e),m=d(t);if(v!==m)return!1;if(v||m){if(e.length!==t.length)return!1;for(i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}if(typeof e!==typeof t)return!1;try{var y=r(e),b=r(t)}catch(w){return!1}if(y.length!==b.length)return!1;for(y.sort(),b.sort(),i=y.length-1;i>=0;i--)if(y[i]!=b[i])return!1;for(i=y.length-1;i>=0;i--)if(!c(e[p=y[i]],t[p],n))return!1;return!0}(e,t,p))}function f(e){return null===e||void 0===e}function d(e){return!(!e||"object"!==typeof e||"number"!==typeof e.length)&&("function"===typeof e.copy&&"function"===typeof e.slice&&!(e.length>0&&"number"!==typeof e[0]))}e.exports=c},21782:function(e,t,n){"use strict";var r=n(82215),o="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,l=n(31044)(),u=s&&l,c=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if("function"!==typeof(o=r)||"[object Function]"!==i.call(o)||!r())return;var o;u?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n},f=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s<i.length;s+=1)c(e,i[s],t[i[s]],n[i[s]])};f.supportsDescriptors=!!u,e.exports=f},34474:function(e){"use strict";var t=String.prototype.replace,n=/%20/g,r="RFC1738",o="RFC3986";e.exports={default:o,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:r,RFC3986:o}},33644:function(e,t,n){"use strict";var r=n(62267),o=n(25048),i=n(34474);e.exports={formats:i,parse:o,stringify:r}},25048:function(e,t,n){"use strict";var r=n(74872),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},l=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},u=function(e,t,n,r){if(e){var i=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(i),u=s?i.slice(0,s.index):i,c=[];if(u){if(!n.plainObjects&&o.call(Object.prototype,u)&&!n.allowPrototypes)return;c.push(u)}for(var f=0;n.depth>0&&null!==(s=a.exec(i))&&f<n.depth;){if(f+=1,!n.plainObjects&&o.call(Object.prototype,s[1].slice(1,-1))&&!n.allowPrototypes)return;c.push(s[1])}return s&&c.push("["+i.slice(s.index)+"]"),function(e,t,n,r){for(var o=r?t:l(t,n),i=e.length-1;i>=0;--i){var a,s=e[i];if("[]"===s&&n.parseArrays)a=[].concat(o);else{a=n.plainObjects?Object.create(null):{};var u="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,c=parseInt(u,10);n.parseArrays||""!==u?!isNaN(c)&&s!==u&&String(c)===u&&c>=0&&n.parseArrays&&c<=n.arrayLimit?(a=[])[c]=o:"__proto__"!==u&&(a[u]=o):a={0:o}}o=a}return o}(c,t,n,r)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!==typeof e.decoder)throw new TypeError("Decoder has to be a function.");if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t="undefined"===typeof e.charset?a.charset:e.charset;return{allowDots:"undefined"===typeof e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"===typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"===typeof e.allowSparse?e.allowSparse:a.allowSparse,arrayLimit:"number"===typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"===typeof e.comma?e.comma:a.comma,decoder:"function"===typeof e.decoder?e.decoder:a.decoder,delimiter:"string"===typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"===typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"===typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"===typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"===typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null===e||"undefined"===typeof e)return n.plainObjects?Object.create(null):{};for(var c="string"===typeof e?function(e,t){var n,u={__proto__:null},c=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,f=t.parameterLimit===1/0?void 0:t.parameterLimit,d=c.split(t.delimiter,f),p=-1,h=t.charset;if(t.charsetSentinel)for(n=0;n<d.length;++n)0===d[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===d[n]?h="utf-8":"utf8=%26%2310003%3B"===d[n]&&(h="iso-8859-1"),p=n,n=d.length);for(n=0;n<d.length;++n)if(n!==p){var g,v,m=d[n],y=m.indexOf("]="),b=-1===y?m.indexOf("="):y+1;-1===b?(g=t.decoder(m,a.decoder,h,"key"),v=t.strictNullHandling?null:""):(g=t.decoder(m.slice(0,b),a.decoder,h,"key"),v=r.maybeMap(l(m.slice(b+1),t),(function(e){return t.decoder(e,a.decoder,h,"value")}))),v&&t.interpretNumericEntities&&"iso-8859-1"===h&&(v=s(v)),m.indexOf("[]=")>-1&&(v=i(v)?[v]:v),o.call(u,g)?u[g]=r.combine(u[g],v):u[g]=v}return u}(e,n):e,f=n.plainObjects?Object.create(null):{},d=Object.keys(c),p=0;p<d.length;++p){var h=d[p],g=u(h,c[h],n,"string"===typeof e);f=r.merge(f,g,n)}return!0===n.allowSparse?f:r.compact(f)}},62267:function(e,t,n){"use strict";var r=n(37478),o=n(74872),i=n(34474),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},l=Array.isArray,u=Array.prototype.push,c=function(e,t){u.apply(e,l(t)?t:[t])},f=Date.prototype.toISOString,d=i.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:o.encode,encodeValuesOnly:!1,format:d,formatter:i.formatters[d],indices:!1,serializeDate:function(e){return f.call(e)},skipNulls:!1,strictNullHandling:!1},h={},g=function e(t,n,i,a,s,u,f,d,g,v,m,y,b,w,_,x){for(var S,O=t,C=x,E=0,A=!1;void 0!==(C=C.get(h))&&!A;){var k=C.get(t);if(E+=1,"undefined"!==typeof k){if(k===E)throw new RangeError("Cyclic object value");A=!0}"undefined"===typeof C.get(h)&&(E=0)}if("function"===typeof d?O=d(n,O):O instanceof Date?O=m(O):"comma"===i&&l(O)&&(O=o.maybeMap(O,(function(e){return e instanceof Date?m(e):e}))),null===O){if(s)return f&&!w?f(n,p.encoder,_,"key",y):n;O=""}if("string"===typeof(S=O)||"number"===typeof S||"boolean"===typeof S||"symbol"===typeof S||"bigint"===typeof S||o.isBuffer(O))return f?[b(w?n:f(n,p.encoder,_,"key",y))+"="+b(f(O,p.encoder,_,"value",y))]:[b(n)+"="+b(String(O))];var M,P=[];if("undefined"===typeof O)return P;if("comma"===i&&l(O))w&&f&&(O=o.maybeMap(O,f)),M=[{value:O.length>0?O.join(",")||null:void 0}];else if(l(d))M=d;else{var R=Object.keys(O);M=g?R.sort(g):R}for(var T=a&&l(O)&&1===O.length?n+"[]":n,I=0;I<M.length;++I){var B=M[I],j="object"===typeof B&&"undefined"!==typeof B.value?B.value:O[B];if(!u||null!==j){var D=l(O)?"function"===typeof i?i(T,B):T:T+(v?"."+B:"["+B+"]");x.set(t,E);var L=r();L.set(h,x),c(P,e(j,D,i,a,s,u,"comma"===i&&w&&l(O)?null:f,d,g,v,m,y,b,w,_,L))}}return P};e.exports=function(e,t){var n,o=e,u=function(e){if(!e)return p;if(null!==e.encoder&&"undefined"!==typeof e.encoder&&"function"!==typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if("undefined"!==typeof e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=i.default;if("undefined"!==typeof e.format){if(!a.call(i.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var r=i.formatters[n],o=p.filter;return("function"===typeof e.filter||l(e.filter))&&(o=e.filter),{addQueryPrefix:"boolean"===typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:"undefined"===typeof e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:"undefined"===typeof e.delimiter?p.delimiter:e.delimiter,encode:"boolean"===typeof e.encode?e.encode:p.encode,encoder:"function"===typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"===typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:o,format:n,formatter:r,serializeDate:"function"===typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"===typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"===typeof e.sort?e.sort:null,strictNullHandling:"boolean"===typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"===typeof u.filter?o=(0,u.filter)("",o):l(u.filter)&&(n=u.filter);var f,d=[];if("object"!==typeof o||null===o)return"";f=t&&t.arrayFormat in s?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var h=s[f];if(t&&"commaRoundTrip"in t&&"boolean"!==typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var v="comma"===h&&t&&t.commaRoundTrip;n||(n=Object.keys(o)),u.sort&&n.sort(u.sort);for(var m=r(),y=0;y<n.length;++y){var b=n[y];u.skipNulls&&null===o[b]||c(d,g(o[b],b,h,v,u.strictNullHandling,u.skipNulls,u.encode?u.encoder:null,u.filter,u.sort,u.allowDots,u.serializeDate,u.format,u.formatter,u.encodeValuesOnly,u.charset,m))}var w=d.join(u.delimiter),_=!0===u.addQueryPrefix?"?":"";return u.charsetSentinel&&("iso-8859-1"===u.charset?_+="utf8=%26%2310003%3B&":_+="utf8=%E2%9C%93&"),w.length>0?_+w:""}},74872:function(e,t,n){"use strict";var r=n(34474),o=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)"undefined"!==typeof e[r]&&(n[r]=e[r]);return n};e.exports={arrayToObject:s,assign:function(e,t){return Object.keys(t).reduce((function(e,n){return e[n]=t[n],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],r=0;r<t.length;++r)for(var o=t[r],a=o.obj[o.prop],s=Object.keys(a),l=0;l<s.length;++l){var u=s[l],c=a[u];"object"===typeof c&&null!==c&&-1===n.indexOf(c)&&(t.push({obj:a,prop:u}),n.push(c))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],o=0;o<n.length;++o)"undefined"!==typeof n[o]&&r.push(n[o]);t.obj[t.prop]=r}}}(t),e},decode:function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(o){return r}},encode:function(e,t,n,o,i){if(0===e.length)return e;var s=e;if("symbol"===typeof e?s=Symbol.prototype.toString.call(e):"string"!==typeof e&&(s=String(e)),"iso-8859-1"===n)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var l="",u=0;u<s.length;++u){var c=s.charCodeAt(u);45===c||46===c||95===c||126===c||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===r.RFC1738&&(40===c||41===c)?l+=s.charAt(u):c<128?l+=a[c]:c<2048?l+=a[192|c>>6]+a[128|63&c]:c<55296||c>=57344?l+=a[224|c>>12]+a[128|c>>6&63]+a[128|63&c]:(u+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(u)),l+=a[240|c>>18]+a[128|c>>12&63]+a[128|c>>6&63]+a[128|63&c])}return l},isBuffer:function(e){return!(!e||"object"!==typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var n=[],r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)},merge:function e(t,n,r){if(!n)return t;if("object"!==typeof n){if(i(t))t.push(n);else{if(!t||"object"!==typeof t)return[t,n];(r&&(r.plainObjects||r.allowPrototypes)||!o.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!==typeof t)return[t].concat(n);var a=t;return i(t)&&!i(n)&&(a=s(t,r)),i(t)&&i(n)?(n.forEach((function(n,i){if(o.call(t,i)){var a=t[i];a&&"object"===typeof a&&n&&"object"===typeof n?t[i]=e(a,n,r):t.push(n)}else t[i]=n})),t):Object.keys(n).reduce((function(t,i){var a=n[i];return o.call(t,i)?t[i]=e(t[i],a,r):t[i]=a,t}),a)}}},25663:function(e,t,n){"use strict";var r=n(25972).functionsHaveConfigurableNames(),o=Object,i=TypeError;e.exports=function(){if(null!=this&&this!==o(this))throw new i("RegExp.prototype.flags getter called on non-object");var e="";return this.hasIndices&&(e+="d"),this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.unicodeSets&&(e+="v"),this.sticky&&(e+="y"),e},r&&Object.defineProperty&&Object.defineProperty(e.exports,"name",{value:"get flags"})},20738:function(e,t,n){"use strict";var r=n(21782),o=n(55559),i=n(25663),a=n(64879),s=n(5353),l=o(a());r(l,{getPolyfill:a,implementation:i,shim:s}),e.exports=l},64879:function(e,t,n){"use strict";var r=n(25663),o=n(21782).supportsDescriptors,i=Object.getOwnPropertyDescriptor;e.exports=function(){if(o&&"gim"===/a/gim.flags){var e=i(RegExp.prototype,"flags");if(e&&"function"===typeof e.get&&"boolean"===typeof RegExp.prototype.dotAll&&"boolean"===typeof RegExp.prototype.hasIndices){var t="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){t+="d"}}),Object.defineProperty(n,"sticky",{get:function(){t+="y"}}),"dy"===t)return e.get}}return r}},5353:function(e,t,n){"use strict";var r=n(21782).supportsDescriptors,o=n(64879),i=Object.getOwnPropertyDescriptor,a=Object.defineProperty,s=TypeError,l=Object.getPrototypeOf,u=/a/;e.exports=function(){if(!r||!l)throw new s("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=o(),t=l(u),n=i(t,"flags");return n&&n.get===e||a(t,"flags",{configurable:!0,enumerable:!1,get:e}),e}},45042:function(e,t,n){"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{Z:function(){return r}})},90026:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=a(n(58960)),o=n(24298),i=a(n(93492));function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,a,s,u,c=(0,r.default)(e,t),f=function(){c.render();var e=t.getAttributes(),n=e.hoverX;if(e.loaded){var r=t.getPayload().data,o=r[n?t.getClosestRow(n[0]):r.length-1];if(Array.isArray(o)){c.render();var i=t.getAttribute("getValueRange")(t),a=i[0],l=i[1];a===s&&l===u||c.sdk.trigger("yAxisChange",t,a,l),s=a,u=l,c.trigger("rendered")}}};return l(l({},c),{},{mount:function(e){c.mount(e),a=(0,i.default)(e,(function(){return c.trigger("resize")}));var r=t.getAttributes().loaded;n=(0,o.unregister)(t.onAttributeChange("hoverX",f),!r&&t.onceAttributeChange("loaded",f)),c.trigger("resize"),f()},unmount:function(){n&&n(),a&&a(),c.unmount(),s=null,u=null},render:f})}},62369:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.default=void 0;t.default=function(e,t){void 0===t&&(t={});var n=e.getElement(),o=n.clientWidth,i=n.clientHeight;return{header:{title:{text:"",color:"",fontSize:"",fontWeight:""},subtitle:{text:"",color:"",fontSize:"",fontWeight:""},titleSubtitlePadding:1},footer:{text:"",color:"",fontSize:"",fontWeight:"",location:""},data:r({sortOrder:"label-asc",smallSegmentGrouping:{enabled:!0,value:5,valueType:"count",label:"smaller",caption:"rest of dimensions",color:e.chart.getThemeAttribute("themeD3pieSmallColor")},content:[]},t),labels:{outer:{format:"label-value2",hideWhenLessThanPercentage:null,pieDistance:10},inner:{format:"percentage",hideWhenLessThanPercentage:101},mainLabel:{color:"segment",fontSize:"0.9em",fontWeight:"normal",font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},percentage:{color:e.chart.getThemeAttribute("themeInnerLabelColor"),fontSize:"1em",fontWeight:"strong",decimalPlaces:0,font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},value:{color:e.chart.getThemeAttribute("themeD3pieSmallColor"),fontSize:"1.2em",fontWeight:"strong",font:'-apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif'},lines:{enabled:!0,style:"curved",color:"segment"},truncation:{enabled:!1,truncateLength:30},formatter:function(t){return"value"===t.part?("No data"===t.realLabel?"-":e.chart.getConvertedValue(t.value))+" "+e.chart.getUnitSign():"percentage"===t.part?t.label+"%":t.label}},effects:{load:{effect:"none",speed:0},pullOutSegmentOnClick:{effect:"bounce",speed:400,size:5},highlightSegmentOnMouseover:!0,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"caption",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:"#000000",backgroundOpacity:.5,color:"#ffffff",borderRadius:2,fontSize:"11px",padding:4}},misc:{colors:{background:"transparent",segments:[],segmentStroke:e.chart.getThemeAttribute("themeD3pieStroke")},gradient:{enabled:!1},canvasPadding:{top:0,right:0,bottom:0,left:0},pieCenterOffset:{x:0,y:0},cssPrefix:null},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null},size:{canvasHeight:Math.floor(i),canvasWidth:Math.floor(o),pieInnerRadius:"50%",pieOuterRadius:"75%"}}}},16469:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(58960)),o=n(24298),i=c(n(93492)),a=c(n(81220)),s=c(n(53087)),l=c(n(94015)),u=c(n(62369));function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,c,f,p,h=(0,r.default)(e,t),g=null,v=(0,a.default)(),m=function(){g&&(g.destroy(),g.recreate())},y=function(){h.render();var e=t.getAttributes(),n=e.hoverX,r=e.loaded;if(g&&r){var o=t.getPayload().data,i=n?t.getClosestRow(n[0]):-1;i=-1===i?o.length-1:i;var a=t.getVisibleDimensionIds().map((function(e){return{label:(0,s.default)(e,30),value:t.getDimensionValue(e,i),color:t.selectDimensionColor(e),caption:e}})).filter((function(e){return!!e.value})),l=t.getAttribute("getValueRange")(t),c=l[0],d=l[1];c===f&&d===p||h.sdk.trigger("yAxisChange",t,c,d),f=c,p=d,h.render(),g.options.data.content=a.length?a:[{label:"No data",value:1,color:h.chart.getThemeAttribute("themeD3pieSmallColor")}],g.options.labels=(0,u.default)(h).labels,window.requestAnimationFrame((function(){m()})),h.trigger("rendered")}};return d(d({},h),{},{mount:function(e){if(!g){h.mount(e);var r=t.getAttribute("theme");e.classList.add(r);var a=t.getAttributes().loaded;g=new l.default(e,(0,u.default)(h)),c=(0,i.default)(e.parentNode,(function(){g.options=d(d({},g.options),{},{size:(0,u.default)(h).size}),m(),h.trigger("resize")}));var s=v.add(y);n=(0,o.unregister)(t.onAttributeChange("hoverX",s),!a&&t.onceAttributeChange("loaded",s),t.onAttributeChange("theme",s),t.on("visibleDimensionsChanged",s)),h.trigger("resize"),y()}},unmount:function(){n&&n(),c&&c(),g&&(g.destroy(),g=null),f=null,p=null,h.unmount()},render:y})}},94015:function(e,t,n){"use strict";var r,o,i,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(85169));function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}o=[],r=function(){var e="d3pie",t="0.2.1",n=0,r={header:{title:{text:"",color:"#333333",fontSize:"18px",fontWeight:"bold",font:"arial"},subtitle:{text:"",color:"#666666",fontSize:"14px",fontWeight:"bold",font:"arial"},location:"top-center",titleSubtitlePadding:8},footer:{text:"",color:"#666666",fontSize:"14px",fontWeight:"bold",font:"arial",location:"left"},size:{canvasHeight:500,canvasWidth:500,pieInnerRadius:"0%",pieOuterRadius:null},data:{sortOrder:"none",ignoreSmallSegments:{enabled:!1,valueType:"percentage",value:null},smallSegmentGrouping:{enabled:!1,value:1,valueType:"percentage",label:"Other",color:"#cccccc"},content:[]},labels:{outer:{format:"label",hideWhenLessThanPercentage:null,pieDistance:30},inner:{format:"percentage",hideWhenLessThanPercentage:null},mainLabel:{color:"#333333",font:"arial",fontWeight:"normal",fontSize:"10px"},percentage:{color:"#dddddd",font:"arial",fontWeight:"bold",fontSize:"10px",decimalPlaces:0},value:{color:"#cccc44",fontWeight:"bold",font:"arial",fontSize:"10px"},lines:{enabled:!0,style:"curved",color:"segment"},truncation:{enabled:!1,truncateLength:30},formatter:null},effects:{load:{effect:"none",speed:1e3},pullOutSegmentOnClick:{effect:"none",speed:300,size:10},highlightSegmentOnMouseover:!1,highlightLuminosity:-.2},tooltips:{enabled:!1,type:"placeholder",string:"",placeholderParser:null,styles:{fadeInSpeed:250,backgroundColor:"#000000",backgroundOpacity:.5,color:"#efefef",borderRadius:2,font:"arial",fontWeight:"bold",fontSize:"10px",padding:4}},misc:{colors:{background:null,segments:["#2484c1","#65a620","#7b6888","#a05d56","#961a1a","#d8d23a","#e98125","#d0743c","#635222","#6ada6a","#0c6197","#7d9058","#207f33","#44b9b0","#bca44a","#e4a14b","#a3acb2","#8cc3e9","#69a6f9","#5b388f","#546e91","#8bde95","#d2ab58","#273c71","#98bf6e","#4daa4b","#98abc5","#cc1010","#31383b","#006391","#c2643f","#b0a474","#a5a39c","#a9c2bc","#22af8c","#7fcecf","#987ac6","#3d3b87","#b77b1c","#c9c2b6","#807ece","#8db27c","#be66a2","#9ed3c6","#00644b","#005064","#77979f","#77e079","#9c73ab","#1f79a7"],segmentStroke:"#ffffff"},gradient:{enabled:!1,percentage:95,color:"#000000"},canvasPadding:{top:5,right:5,bottom:5,left:5},pieCenterOffset:{x:0,y:0},cssPrefix:null},callbacks:{onload:null,onMouseoverSegment:null,onMouseoutSegment:null,onClickSegment:null}},o={initialCheck:function(e){var t=e.cssPrefix,n=e.element,r=e.options;if(!(n instanceof HTMLElement||n instanceof SVGElement))return!1;if(!/[a-zA-Z][a-zA-Z0-9_-]*$/.test(t))return!1;if(!i.isArray(r.data.content))return!1;for(var o=[],a=0;a<r.data.content.length;a++)"number"!==typeof r.data.content[a].value||isNaN(r.data.content[a].value)||r.data.content[a].value<=0||o.push(r.data.content[a]);return e.options.data.content=o,!0}},i={addSVGSpace:function(e){var t=e.element,n=e.options.size.canvasWidth,r=e.options.size.canvasHeight,o=e.options.misc.colors.background,i=a.select(t).append("svg:svg").attr("width",n).attr("height",r);return"transparent"!==o&&i.style("background-color",(function(){return o})),i},shuffleArray:function(e){for(var t,n,r=e.length;0!==r;)n=Math.floor(Math.random()*r),t=e[r-=1],e[r]=e[n],e[n]=t;return e},processObj:function(e,t,n){return"string"===typeof t?i.processObj(e,t.split("."),n):1===t.length&&void 0!==n?(e[t[0]]=n,e[t[0]]):0===t.length?e:i.processObj(e[t[0]],t.slice(1),n)},getDimensions:function(e){"string"===typeof e&&(e=document.getElementById(e));var t=0,n=0;if(e){var r=e.getBBox();t=r.width,n=r.height}return{w:t,h:n}},rectIntersect:function(e,t){return!(t.x>e.x+e.w||t.x+t.w<e.x||t.y+t.h<e.y||t.y>e.y+e.h)},getColorShade:function(e,t){(e=String(e).replace(/[^0-9a-f]/gi,"")).length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;for(var n="#",r=0;r<3;r++){var o=parseInt(e.substr(2*r,2),16);n+=("00"+(o=Math.round(Math.min(Math.max(0,o+o*t),255)).toString(16))).substr(o.length)}return n},initSegmentColors:function(e){for(var t=e.options.data.content,n=e.options.misc.colors.segments,r=[],o=0;o<t.length;o++)t[o].hasOwnProperty("color")?r.push(t[o].color):r.push(n[o]);return r},applySmallSegmentGrouping:function(e,t){var n=[],r=[],o=0,i=0;if("count"===t.valueType){for(var a=[],s=0,c=0;c<e.length;c++)a[s++]={idx:c,value:e[c].value};for(a.sort((function(e,t){return e.value<t.value?1:-1})),s=0;s<a.length;s++)e[a[s].idx].smallSegmentPriority=s;for(c=0;c<e.length;c++)e[c].smallSegmentPriority>=t.value?(r.push(e[c]),o+=e[c].value,i++):(e[c].isGrouped=!1,n.push(e[c]))}else if("percentage"===t.valueType){var f=l.getTotalPieSize(e);for(c=0;c<e.length;c++)if("percentage"===t.valueType){if(e[c].value/f*100<=t.value){r.push(e[c]),o+=e[c].value,i++;continue}e[c].isGrouped=!1,n.push(e[c])}}else for(c=0;c<e.length;c++)e[c].value<=t.value?(r.push(e[c]),o+=e[c].value,i++):(e[c].isGrouped=!1,n.push(e[c]));return r.length&&n.push(u(u({},t),{},{color:t.color,label:"["+t.label+" "+i+"]",value:o,isGrouped:!0,groupedData:r})),n},showPoint:function(e,t,n){e.append("circle").attr("cx",t).attr("cy",n).attr("r",2).style("fill","black")},isFunction:function(e){return e&&"[object Function]"==={}.toString.call(e)},isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)}},s=function e(){var t,n,r,o,i,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1,f=Object.prototype.toString,d=Object.prototype.hasOwnProperty,p={"[object Boolean]":"boolean","[object Number]":"number","[object String]":"string","[object Function]":"function","[object Array]":"array","[object Date]":"date","[object RegExp]":"regexp","[object Object]":"object"},h={isFunction:function(e){return"function"===h.type(e)},isArray:Array.isArray||function(e){return"array"===h.type(e)},isWindow:function(e){return null!==e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null===e?String(e):p[f.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==h.type(e)||e.nodeType)return!1;try{if(e.constructor&&!d.call(e,"constructor")&&!d.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var t;for(t in e);return void 0===t||d.call(e,t)}};for("boolean"===typeof s&&(c=s,s=arguments[1]||{},l=2),"object"===typeof s||h.isFunction(s)||(s={}),u===l&&(s=this,--l);l<u;l++)if(null!==(t=arguments[l]))for(n in t)r=s[n],s!==(o=t[n])&&(c&&o&&(h.isPlainObject(o)||(i=h.isArray(o)))?(i?(i=!1,a=r&&h.isArray(r)?r:[]):a=r&&h.isPlainObject(r)?r:{},s[n]=e(c,a,o)):void 0!==o&&(s[n]=o));return s},l={toRadians:function(e){return e*(Math.PI/180)},toDegrees:function(e){return e*(180/Math.PI)},computePieRadius:function(e){var t=e.options.size,n=e.options.misc.canvasPadding,r=t.canvasWidth-n.left-n.right,o=t.canvasHeight-n.top-n.bottom;"pie-center"!==e.options.header.location&&(o-=e.textComponents.headerHeight),e.textComponents.footer.exists&&(o-=e.textComponents.footer.h);var i,a,s=(r<(o=o<0?0:o)?r:o)/3;if(null!==t.pieOuterRadius)if(/%/.test(t.pieOuterRadius)){a=(a=(a=parseInt(t.pieOuterRadius.replace(/[\D]/,""),10))>99?99:a)<0?0:a;var l=r<o?r:o;if("none"!==e.options.labels.outer.format){var u=2*parseInt(e.options.labels.outer.pieDistance,10);l-u>0&&(l-=u)}s=Math.floor(l/100*a)/2}else s=parseInt(t.pieOuterRadius,10);/%/.test(t.pieInnerRadius)?(a=(a=(a=parseInt(t.pieInnerRadius.replace(/[\D]/,""),10))>99?99:a)<0?0:a,i=Math.floor(s/100*a)):i=parseInt(t.pieInnerRadius,10),e.innerRadius=i,e.outerRadius=s},getTotalPieSize:function(e){for(var t=0,n=0;n<e.length;n++)t+=e[n].value;return t},sortPieData:function(e){var t=e.options.data.content;switch(e.options.data.sortOrder){case"none":break;case"random":t=i.shuffleArray(t);break;case"value-asc":t.sort((function(e,t){return e.value<t.value?-1:1}));break;case"value-desc":t.sort((function(e,t){return e.value<t.value?1:-1}));break;case"label-asc":t.sort((function(e,t){return e.label.toLowerCase()>t.label.toLowerCase()?1:-1}));break;case"label-desc":t.sort((function(e,t){return e.label.toLowerCase()<t.label.toLowerCase()?1:-1}))}return t},getPieTranslateCenter:function(e){return"translate("+e.x+","+e.y+")"},calculatePieCenter:function(e){var t=e.options.misc.pieCenterOffset,n=e.textComponents.title.exists&&"pie-center"!==e.options.header.location,r=e.textComponents.subtitle.exists&&"pie-center"!==e.options.header.location,o=e.options.misc.canvasPadding.top;n&&r?o+=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h:n?o+=e.textComponents.title.h:r&&(o+=e.textComponents.subtitle.h);var i=0;e.textComponents.footer.exists&&(i=e.textComponents.footer.h+e.options.misc.canvasPadding.bottom);var a=(e.options.size.canvasWidth-e.options.misc.canvasPadding.left-e.options.misc.canvasPadding.right)/2+e.options.misc.canvasPadding.left,s=(e.options.size.canvasHeight-i-o)/2+o;a+=t.x,s+=t.y,e.pieCenter={x:a,y:s}},rotate:function(e,t,n,r,o){o=o*Math.PI/180;var i=Math.cos,a=Math.sin;return{x:(e-n)*i(o)-(t-r)*a(o)+n,y:(e-n)*a(o)+(t-r)*i(o)+r}},translate:function(e,t,n,r){var o=l.toRadians(r);return{x:e+n*Math.sin(o),y:t-n*Math.cos(o)}},pointIsInArc:function(e,t,n){var r=n.innerRadius()(t),o=n.outerRadius()(t),i=n.startAngle()(t),a=n.endAngle()(t),s=e.x*e.x+e.y*e.y,l=Math.atan2(e.x,-e.y);return l=l<0?l+2*Math.PI:l,r*r<=s&&s<=o*o&&i<=l&&l<=a}},c={add:function(e,t,n){var r=c.getIncludes(n),o=e.options.labels,i=e.svg.insert("g","."+e.cssPrefix+"labels-"+t).attr("class",e.cssPrefix+"labels-"+t),a=e.__labels[t]=i.selectAll("."+e.cssPrefix+"labelGroup-"+t).data(e.options.data.content).enter().append("g").attr("id",(function(n,r){return e.cssPrefix+"labelGroup"+r+"-"+t})).attr("data-index",(function(e,t){return t})).attr("class",e.cssPrefix+"labelGroup-"+t).style("opacity",0),s={section:t,sectionDisplayType:n};r.mainLabel&&a.append("text").attr("id",(function(n,r){return e.cssPrefix+"segmentMainLabel"+r+"-"+t})).attr("class",e.cssPrefix+"segmentMainLabel-"+t).text((function(e,t){var n=e.label;return o.formatter?(s.index=t,s.part="mainLabel",s.value=e.value,s.label=n,n=o.formatter(s)):o.truncation.enabled&&e.label.length>o.truncation.truncateLength&&(n=e.label.substring(0,o.truncation.truncateLength)+"..."),n})).style("font-size",o.mainLabel.fontSize).style("font-family",o.mainLabel.font).style("font-weight",o.mainLabel.fontWeight).style("fill",(function(t,n){return"segment"===o.mainLabel.color?e.options.colors[n]:o.mainLabel.color})),r.percentage&&a.append("text").attr("id",(function(n,r){return e.cssPrefix+"segmentPercentage"+r+"-"+t})).attr("class",e.cssPrefix+"segmentPercentage-"+t).text((function(e,t){var n=e.percentage;return o.formatter?(s.index=t,s.part="percentage",s.value=e.value,s.label=e.percentage,n=o.formatter(s)):n+="%",n})).style("font-size",o.percentage.fontSize).style("font-family",o.percentage.font).style("font-weight",o.percentage.fontWeight).style("fill",o.percentage.color),r.value&&a.append("text").attr("id",(function(n,r){return e.cssPrefix+"segmentValue"+r+"-"+t})).attr("class",e.cssPrefix+"segmentValue-"+t).text((function(e,t){return s.index=t,s.part="value",s.value=e.value,s.label=e.value,s.realLabel=e.label,o.formatter?o.formatter(s,e.value):e.value})).style("font-size",o.value.fontSize).style("font-family",o.value.font).style("font-weight",o.value.fontWeight).style("fill",o.value.color)},positionLabelElements:function(e,t,n){c["dimensions-"+t]=[],e.__labels[t].each((function(n,r){var o=a.select(this).selectAll("."+e.cssPrefix+"segmentMainLabel-"+t),i=a.select(this).selectAll("."+e.cssPrefix+"segmentPercentage-"+t),s=a.select(this).selectAll("."+e.cssPrefix+"segmentValue-"+t);c["dimensions-"+t].push({mainLabel:null!==o.node()?o.node().getBBox():null,percentage:null!==i.node()?i.node().getBBox():null,value:null!==s.node()?s.node().getBBox():null})}));var r=5,o=c["dimensions-"+t];switch(n){case"label-value1":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dx",(function(e,t){return o[t].mainLabel.width+r}));break;case"label-value2":e.svg.selectAll("."+e.cssPrefix+"segmentValue-"+t).attr("dy",(function(e,t){return o[t].mainLabel.height}));break;case"label-percentage1":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return o[t].mainLabel.width+r}));break;case"label-percentage2":e.svg.selectAll("."+e.cssPrefix+"segmentPercentage-"+t).attr("dx",(function(e,t){return o[t].mainLabel.width/2-o[t].percentage.width/2})).attr("dy",(function(e,t){return o[t].mainLabel.height}))}},computeLabelLinePositions:function(e){e.lineCoordGroups=[],e.__labels.outer.each((function(t,n){return c.computeLinePosition(e,n)}))},computeLinePosition:function(e,t){var n,r,o,i,a=f.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),s=l.rotate(e.pieCenter.x,e.pieCenter.y-e.outerRadius,e.pieCenter.x,e.pieCenter.y,a),u=e.outerLabelGroupData[t].h/5,c=6,d=Math.floor(a/90),p=4;switch(2===d&&180===a&&(d=1),d){case 0:n=e.outerLabelGroupData[t].x-c-(e.outerLabelGroupData[t].x-c-s.x)/2,r=e.outerLabelGroupData[t].y+(s.y-e.outerLabelGroupData[t].y)/p,o=e.outerLabelGroupData[t].x-c,i=e.outerLabelGroupData[t].y-u;break;case 1:n=s.x+(e.outerLabelGroupData[t].x-s.x)/p,r=s.y+(e.outerLabelGroupData[t].y-s.y)/p,o=e.outerLabelGroupData[t].x-c,i=e.outerLabelGroupData[t].y-u;break;case 2:var h=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c;n=s.x-(s.x-h)/p,r=s.y+(e.outerLabelGroupData[t].y-s.y)/p,o=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c,i=e.outerLabelGroupData[t].y-u;break;case 3:var g=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c;n=g+(s.x-g)/p,r=e.outerLabelGroupData[t].y+(s.y-e.outerLabelGroupData[t].y)/p,o=e.outerLabelGroupData[t].x+e.outerLabelGroupData[t].w+c,i=e.outerLabelGroupData[t].y-u}"straight"===e.options.labels.lines.style?e.lineCoordGroups[t]=[{x:s.x,y:s.y},{x:o,y:i}]:e.lineCoordGroups[t]=[{x:s.x,y:s.y},{x:n,y:r},{x:o,y:i}]},addLabelLines:function(e){var t=e.svg.insert("g","."+e.cssPrefix+"pieChart").attr("class",e.cssPrefix+"lineGroups").style("opacity",1).selectAll("."+e.cssPrefix+"lineGroup").data(e.lineCoordGroups).enter().append("g").attr("class",e.cssPrefix+"lineGroup"),n=a.line().curve(a.curveBasis).x((function(e){return e.x})).y((function(e){return e.y}));t.append("path").attr("d",n).attr("stroke",(function(t,n){return"segment"===e.options.labels.lines.color?e.options.colors[n]:e.options.labels.lines.color})).attr("stroke-width",1).attr("fill","none").style("opacity",(function(t,n){var r=e.options.labels.outer.hideWhenLessThanPercentage;return null!==r&&t.percentage<r||""===e.options.data.content[n].label?0:1}))},positionLabelGroups:function(e,t){"none"!==e.options.labels[t].format&&e.__labels[t].style("opacity",(function(n,r){var o=e.options.labels[t].hideWhenLessThanPercentage;return null!==o&&n.percentage<o?0:1})).attr("transform",(function(n,r){var o,a;if("outer"===t)o=e.outerLabelGroupData[r].x,a=e.outerLabelGroupData[r].y;else{var u=s(!0,{},e.pieCenter);if(e.innerRadius>0){var c=f.getSegmentAngle(r,e.options.data.content,e.totalSize,{midpoint:!0}),d=l.translate(e.pieCenter.x,e.pieCenter.y,e.innerRadius,c);u.x=d.x,u.y=d.y}var p=i.getDimensions(e.cssPrefix+"labelGroup"+r+"-inner"),h=p.w/2,g=p.h/4;o=u.x+(e.lineCoordGroups[r][0].x-u.x)/1.8,a=u.y+(e.lineCoordGroups[r][0].y-u.y)/1.8,o-=h,a+=g}return"translate("+o+","+a+")"}))},getIncludes:function(e){var t=!1,n=!1,r=!1;switch(e){case"label":t=!0;break;case"value":n=!0;break;case"percentage":r=!0;break;case"label-value1":case"label-value2":t=!0,n=!0;break;case"label-percentage1":case"label-percentage2":t=!0,r=!0}return{mainLabel:t,value:n,percentage:r}},computeOuterLabelCoords:function(e){e.__labels.outer.each((function(t,n){return c.getIdealOuterLabelPositions(e,n)})),c.resolveOuterLabelCollisions(e)},resolveOuterLabelCollisions:function(e){if("none"!==e.options.labels.outer.format){var t=e.options.data.content.length;c.checkConflict(e,0,"clockwise",t),c.checkConflict(e,t-1,"anticlockwise",t)}},checkConflict:function(e,t,n,r){var o,a;if(!(r<=1)){var s=e.outerLabelGroupData[t].hs;if(("clockwise"!==n||"right"===s)&&("anticlockwise"!==n||"left"===s)){var l="clockwise"===n?t+1:t-1,u=e.outerLabelGroupData[t],f=e.outerLabelGroupData[l],d={labelHeights:e.outerLabelGroupData[0].h,center:e.pieCenter,lineLength:e.outerRadius+e.options.labels.outer.pieDistance,heightChange:e.outerLabelGroupData[0].h+1};if("clockwise"===n){for(o=0;o<=t;o++)if(a=e.outerLabelGroupData[o],!c.isLabelHidden(e,o)&&i.rectIntersect(a,f)){c.adjustLabelPos(e,l,u,d);break}}else for(o=r-1;o>=t;o--)if(a=e.outerLabelGroupData[o],!c.isLabelHidden(e,o)&&i.rectIntersect(a,f)){c.adjustLabelPos(e,l,u,d);break}c.checkConflict(e,l,n,r)}}},isLabelHidden:function(e,t){var n=e.options.labels.outer.hideWhenLessThanPercentage;return null!==n&&d.percentage<n||""===e.options.data.content[t].label},adjustLabelPos:function(e,t,n,r){var o,i,a,s;s=n.y+r.heightChange,i=r.center.y-s,o=Math.abs(r.lineLength)>Math.abs(i)?Math.sqrt(r.lineLength*r.lineLength-i*i):Math.sqrt(i*i-r.lineLength*r.lineLength),a="right"===n.hs?r.center.x+o:r.center.x-o-e.outerLabelGroupData[t].w,e.outerLabelGroupData[t].x=a,e.outerLabelGroupData[t].y=s},getIdealOuterLabelPositions:function(e,t){var n=e.svg.select("#"+e.cssPrefix+"labelGroup"+t+"-outer").node();if(n){var r=n.getBBox(),o=f.getSegmentAngle(t,e.options.data.content,e.totalSize,{midpoint:!0}),i=e.pieCenter.x,a=e.pieCenter.y-(e.outerRadius+e.options.labels.outer.pieDistance),s=l.rotate(i,a,e.pieCenter.x,e.pieCenter.y,o),u="right";o>180?(s.x-=r.width+8,u="left"):s.x+=8,e.outerLabelGroupData[t]={x:s.x,y:s.y,w:r.width,h:r.height,hs:u}}}},f={effectMap:{none:a.easeLinear,bounce:a.easeBounce,linear:a.easeLinear,sin:a.easeSin,elastic:a.easeElastic,back:a.easeBack,quad:a.easeQuad,circle:a.easeCircle,exp:a.easeExp},create:function(e){var t=e.pieCenter,n=e.options.colors,r=(e.options.effects.load,e.options.misc.colors.segmentStroke),o=e.svg.insert("g","#"+e.cssPrefix+"title").attr("transform",(function(){return l.getPieTranslateCenter(t)})).attr("class",e.cssPrefix+"pieChart"),i=a.arc().innerRadius(e.innerRadius).outerRadius(e.outerRadius).startAngle(0).endAngle((function(t){return t.value/e.totalSize*2*Math.PI}));o.selectAll("."+e.cssPrefix+"arc").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"arc").append("path").attr("id",(function(t,n){return e.cssPrefix+"segment"+n})).attr("fill",(function(t,r){var o=n[r];return e.options.misc.gradient.enabled&&(o="url(#"+e.cssPrefix+"grad"+r+")"),o})).style("stroke",r).style("stroke-width",1).attr("data-index",(function(e,t){return t})).attr("d",i),e.svg.selectAll("g."+e.cssPrefix+"arc").attr("transform",(function(t,n){var r=0;return n>0&&(r=f.getSegmentAngle(n-1,e.options.data.content,e.totalSize)),"rotate("+r+")"})),e.arc=i},addGradients:function(e){var t=e.svg.append("defs").selectAll("radialGradient").data(e.options.data.content).enter().append("radialGradient").attr("gradientUnits","userSpaceOnUse").attr("cx",0).attr("cy",0).attr("r","120%").attr("id",(function(t,n){return e.cssPrefix+"grad"+n}));t.append("stop").attr("offset","0%").style("stop-color",(function(t,n){return e.options.colors[n]})),t.append("stop").attr("offset",e.options.misc.gradient.percentage+"%").style("stop-color",e.options.misc.gradient.color)},addSegmentEventHandlers:function(e){var t=e.svg.selectAll("."+e.cssPrefix+"arc");(t=t.merge(e.__labels.inner.merge(e.__labels.outer))).on("click",(function(){var t,n=a.select(this);if(n.attr("class")===e.cssPrefix+"arc")t=n.select("path");else{var r=n.attr("data-index");t=a.select("#"+e.cssPrefix+"segment"+r)}var o=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onClickSegment,t,o),"none"!==e.options.effects.pullOutSegmentOnClick.effect&&(o?f.closeSegment(e,t.node()):f.openSegment(e,t.node()))})),t.on("mouseover",(function(){var t,n,r=a.select(this);if(r.attr("class")===e.cssPrefix+"arc"?t=r.select("path"):(n=r.attr("data-index"),t=a.select("#"+e.cssPrefix+"segment"+n)),e.options.effects.highlightSegmentOnMouseover){n=t.attr("data-index");var o=e.options.colors[n];t.style("fill",i.getColorShade(o,e.options.effects.highlightLuminosity))}e.options.tooltips.enabled&&(n=t.attr("data-index"),h.showTooltip(e,n));var s=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onMouseoverSegment,t,s)})),t.on("mousemove",(function(){h.moveTooltip(e)})),t.on("mouseout",(function(){var t,n,r=a.select(this);if(r.attr("class")===e.cssPrefix+"arc"?t=r.select("path"):(n=r.attr("data-index"),t=a.select("#"+e.cssPrefix+"segment"+n)),e.options.effects.highlightSegmentOnMouseover){n=t.attr("data-index");var o=e.options.colors[n];e.options.misc.gradient.enabled&&(o="url(#"+e.cssPrefix+"grad"+n+")"),t.style("fill",o)}e.options.tooltips.enabled&&(n=t.attr("data-index"),h.hideTooltip(e,n));var i=t.attr("class")===e.cssPrefix+"expanded";f.onSegmentEvent(e,e.options.callbacks.onMouseoutSegment,t,i)}))},onSegmentEvent:function(e,t,n,r){if(i.isFunction(t)){var o=parseInt(n.attr("data-index"),10);t({segment:n.node(),index:o,expanded:r,data:e.options.data.content[o]})}},openSegment:function(e,t){e.isOpeningSegment||(e.isOpeningSegment=!0,f.maybeCloseOpenSegment(e),a.select(t).transition().ease(f.effectMap[e.options.effects.pullOutSegmentOnClick.effect]).duration(e.options.effects.pullOutSegmentOnClick.speed).attr("transform",(function(t,n){var r=e.arc.centroid(t),o=r[0],i=r[1],a=Math.sqrt(o*o+i*i),s=parseInt(e.options.effects.pullOutSegmentOnClick.size,10);return"translate("+o/a*s+","+i/a*s+")"})).on("end",(function(n,r){e.currentlyOpenSegment=t,e.isOpeningSegment=!1,a.select(t).attr("class",e.cssPrefix+"expanded")})))},maybeCloseOpenSegment:function(e){"undefined"!==typeof e&&e.svg.selectAll("."+e.cssPrefix+"expanded").size()>0&&f.closeSegment(e,e.svg.select("."+e.cssPrefix+"expanded").node())},closeSegment:function(e,t){a.select(t).transition().duration(400).attr("transform","translate(0,0)").on("end",(function(n,r){a.select(t).attr("class",""),e.currentlyOpenSegment=null}))},getCentroid:function(e){var t=e.getBBox();return{x:t.x+t.width/2,y:t.y+t.height/2}},getSegmentAngle:function(e,t,n,r){var o,i=s({compounded:!0,midpoint:!1},r),a=t[e].value;if(i.compounded){o=0;for(var l=0;l<=e;l++)o+=t[l].value}"undefined"===typeof o&&(o=a);var u=o/n*360;return i.midpoint&&(u-=a/n*360/2),u}},p={offscreenCoord:-1e4,addTitle:function(e){e.__title=e.svg.selectAll("."+e.cssPrefix+"title").data([e.options.header.title]).enter().append("text").text((function(e){return e.text})).attr("id",e.cssPrefix+"title").attr("class",e.cssPrefix+"title").attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("text-anchor",(function(){return"top-center"===e.options.header.location||"pie-center"===e.options.header.location?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionTitle:function(e){var t,n=e.textComponents,r=e.options.header.location,o=e.options.misc.canvasPadding,i=e.options.size.canvasWidth,a=e.options.header.titleSubtitlePadding;t="top-left"===r?o.left:(i-o.right)/2+o.left,t+=e.options.misc.pieCenterOffset.x;var s=o.top+n.title.h;"pie-center"===r&&(s=e.pieCenter.y,n.subtitle.exists?s=s-(n.title.h+a+n.subtitle.h)/2+n.title.h:s+=n.title.h/4),e.__title.attr("x",t).attr("y",s)},addSubtitle:function(e){var t=e.options.header.location;e.__subtitle=e.svg.selectAll("."+e.cssPrefix+"subtitle").data([e.options.header.subtitle]).enter().append("text").text((function(e){return e.text})).attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("id",e.cssPrefix+"subtitle").attr("class",e.cssPrefix+"subtitle").attr("text-anchor",(function(){return"top-center"===t||"pie-center"===t?"middle":"left"})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionSubtitle:function(e){var t,n=e.options.misc.canvasPadding,r=e.options.size.canvasWidth;t="top-left"===e.options.header.location?n.left:(r-n.right)/2+n.left,t+=e.options.misc.pieCenterOffset.x;var o=p.getHeaderHeight(e);e.__subtitle.attr("x",t).attr("y",o)},addFooter:function(e){e.__footer=e.svg.selectAll("."+e.cssPrefix+"footer").data([e.options.footer]).enter().append("text").text((function(e){return e.text})).attr("x",p.offscreenCoord).attr("y",p.offscreenCoord).attr("id",e.cssPrefix+"footer").attr("class",e.cssPrefix+"footer").attr("text-anchor",(function(){var t="left";return"bottom-center"===e.options.footer.location?t="middle":"bottom-right"===e.options.footer.location&&(t="left"),t})).attr("fill",(function(e){return e.color})).style("font-size",(function(e){return e.fontSize})).style("font-weight",(function(e){return e.fontWeight})).style("font-family",(function(e){return e.font}))},positionFooter:function(e){var t,n=e.options.footer.location,r=e.textComponents.footer.w,o=e.options.size.canvasWidth,i=e.options.size.canvasHeight,a=e.options.misc.canvasPadding;t="bottom-left"===n?a.left:"bottom-right"===n?o-r-a.right:o/2,e.__footer.attr("x",t).attr("y",i-a.bottom)},getHeaderHeight:function(e){var t;if(e.textComponents.title.exists){var n=e.textComponents.title.h+e.options.header.titleSubtitlePadding+e.textComponents.subtitle.h;t="pie-center"===e.options.header.location?e.pieCenter.y-n/2+n:n+e.options.misc.canvasPadding.top}else if("pie-center"===e.options.header.location){var r=e.options.misc.canvasPadding.bottom+e.textComponents.footer.h;t=(e.options.size.canvasHeight-r)/2+e.options.misc.canvasPadding.top+e.textComponents.subtitle.h/2}else t=e.options.misc.canvasPadding.top+e.textComponents.subtitle.h;return t}},h={addTooltips:function(e){var t=e.svg.insert("g").attr("class",e.cssPrefix+"tooltips");t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).enter().append("g").attr("class",e.cssPrefix+"tooltip").attr("id",(function(t,n){return e.cssPrefix+"tooltip"+n})).style("opacity",0).append("rect").attr("rx",e.options.tooltips.styles.borderRadius).attr("ry",e.options.tooltips.styles.borderRadius).attr("x",-e.options.tooltips.styles.padding).attr("opacity",e.options.tooltips.styles.backgroundOpacity).style("fill",e.options.tooltips.styles.backgroundColor),t.selectAll("."+e.cssPrefix+"tooltip").data(e.options.data.content).append("text").attr("fill",(function(t){return e.options.tooltips.styles.color})).style("font-size",(function(t){return e.options.tooltips.styles.fontSize})).style("font-weight",(function(t){return e.options.tooltips.styles.fontWeight})).style("font-family",(function(t){return e.options.tooltips.styles.font})).text((function(t,n){var r=e.options.tooltips.string;return"caption"===e.options.tooltips.type&&(r=t.caption),h.replacePlaceholders(e,r,n,{label:t.label,value:t.value,percentage:t.percentage})})),t.selectAll("."+e.cssPrefix+"tooltip rect").attr("width",(function(t,n){return i.getDimensions(e.cssPrefix+"tooltip"+n).w+2*e.options.tooltips.styles.padding})).attr("height",(function(t,n){return i.getDimensions(e.cssPrefix+"tooltip"+n).h+2*e.options.tooltips.styles.padding})).attr("y",(function(t,n){return-i.getDimensions(e.cssPrefix+"tooltip"+n).h/2+1}))},showTooltip:function(e,t){var n=e.options.tooltips.styles.fadeInSpeed;h.currentTooltip===t&&(n=1),h.currentTooltip=t,a.select("#"+e.cssPrefix+"tooltip"+t).transition().duration(n).style("opacity",(function(){return 1})),h.moveTooltip(e)},moveTooltip:function(e){a.selectAll("#"+e.cssPrefix+"tooltip"+h.currentTooltip).attr("transform",(function(t){var n=a.pointer(this.parentNode);return"translate("+(n[0]+e.options.tooltips.styles.padding+2)+","+(n[1]-2*e.options.tooltips.styles.padding-2)+")"}))},hideTooltip:function(e,t){a.select("#"+e.cssPrefix+"tooltip"+t).style("opacity",(function(){return 0})),a.select("#"+e.cssPrefix+"tooltip"+h.currentTooltip).attr("transform",(function(t,n){return"translate("+(e.options.size.canvasWidth+1e3)+","+(e.options.size.canvasHeight+1e3)+")"}))},replacePlaceholders:function(e,t,n,r){i.isFunction(e.options.tooltips.placeholderParser)&&e.options.tooltips.placeholderParser(n,r);var o=function(){return function(e){var t=arguments[1];return r.hasOwnProperty(t)?r[arguments[1]]:arguments[0]}};return t.replace(/\{(\w+)\}/g,o(r))}},g=function(i,l){if(this.element=i,"string"===typeof i){var u=i.replace(/^#/,"");this.element=document.getElementById(u)}var c={};s(!0,c,r,l),this.options=c,null!==this.options.misc.cssPrefix?this.cssPrefix=this.options.misc.cssPrefix:(this.cssPrefix="p"+n+"_",n++),o.initialCheck(this)&&(a.select(this.element).attr(e,t),v.call(this),m.call(this))};g.prototype.recreate=function(){o.initialCheck(this)&&(v.call(this),m.call(this))},g.prototype.redraw=function(){this.element.innerHTML="",m.call(this)},g.prototype.destroy=function(){this.element.innerHTML="",a.select(this.element).attr(e,null)},g.prototype.getOpenSegment=function(){var e=this.currentlyOpenSegment;if(null!==e&&"undefined"!==typeof e){var t=parseInt(a.select(e).attr("data-index"),10);return{element:e,index:t,data:this.options.data.content[t]}}return null},g.prototype.openSegment=function(e){(e=parseInt(e,10))<0||e>this.options.data.content.length-1||f.openSegment(this,a.select("#"+this.cssPrefix+"segment"+e).node())},g.prototype.closeSegment=function(){f.maybeCloseOpenSegment(this)},g.prototype.updateProp=function(e,t){switch(e){case"header.title.text":var n=i.processObj(this.options,e);i.processObj(this.options,e,t),a.select("#"+this.cssPrefix+"title").html(t),(""===n&&""!==t||""!==n&&""===t)&&this.redraw();break;case"header.subtitle.text":var r=i.processObj(this.options,e);i.processObj(this.options,e,t),a.select("#"+this.cssPrefix+"subtitle").html(t),(""===r&&""!==t||""!==r&&""===t)&&this.redraw();break;case"callbacks.onload":case"callbacks.onMouseoverSegment":case"callbacks.onMouseoutSegment":case"callbacks.onClickSegment":case"effects.pullOutSegmentOnClick.effect":case"effects.pullOutSegmentOnClick.speed":case"effects.pullOutSegmentOnClick.size":case"effects.highlightSegmentOnMouseover":case"effects.highlightLuminosity":i.processObj(this.options,e,t);break;default:i.processObj(this.options,e,t),this.destroy(),this.recreate()}};var v=function(){this.options.data.content=l.sortPieData(this),this.options.data.smallSegmentGrouping.enabled&&(this.options.data.content=i.applySmallSegmentGrouping(this.options.data.content,this.options.data.smallSegmentGrouping)),this.options.colors=i.initSegmentColors(this),this.totalSize=l.getTotalPieSize(this.options.data.content);for(var e=this.options.labels.percentage.decimalPlaces,t=0;t<this.options.data.content.length;t++)this.options.data.content[t].percentage=y(this.options.data.content[t].value,this.totalSize,e);for(var n=0,r=0;r<this.options.data.content.length;r++)r===this.options.data.content.length-1&&(this.options.data.content[r].percentage=(100-n).toFixed(e)),n+=parseFloat(this.options.data.content[r].percentage)},m=function(){this.svg=i.addSVGSpace(this),this.textComponents={headerHeight:0,title:{exists:""!==this.options.header.title.text,h:0,w:0},subtitle:{exists:""!==this.options.header.subtitle.text,h:0,w:0},footer:{exists:""!==this.options.footer.text,h:0,w:0}},this.outerLabelGroupData=[],p.addTitle(this),p.addSubtitle(this),p.addFooter(this);var e=this;p.positionFooter(e);var t=i.getDimensions(e.__footer.node());if(e.textComponents.footer.h=t.h,e.textComponents.footer.w=t.w,e.textComponents.title.exists){var n=i.getDimensions(e.__title.node());e.textComponents.title.h=n.h,e.textComponents.title.w=n.w}if(e.textComponents.subtitle.exists){var r=i.getDimensions(e.__subtitle.node());e.textComponents.subtitle.h=r.h,e.textComponents.subtitle.w=r.w}if(e.textComponents.title.exists||e.textComponents.subtitle.exists){var o=0;e.textComponents.title.exists&&(o+=e.textComponents.title.h,e.textComponents.subtitle.exists&&(o+=e.options.header.titleSubtitlePadding)),e.textComponents.subtitle.exists&&(o+=e.textComponents.subtitle.h),e.textComponents.headerHeight=o}if(l.computePieRadius(e),l.calculatePieCenter(e),p.positionTitle(e),p.positionSubtitle(e),e.options.misc.gradient.enabled&&f.addGradients(e),f.create(e),e.__labels={},c.add(e,"inner",e.options.labels.inner.format),c.add(e,"outer",e.options.labels.outer.format),c.positionLabelElements(e,"inner",e.options.labels.inner.format),c.positionLabelElements(e,"outer",e.options.labels.outer.format),c.computeOuterLabelCoords(e),c.positionLabelGroups(e,"outer"),c.computeLabelLinePositions(e),e.options.labels.lines.enabled&&"none"!==e.options.labels.outer.format&&c.addLabelLines(e),c.positionLabelGroups(e,"inner"),i.isFunction(e.options.callbacks.onload))try{e.options.callbacks.onload()}catch(a){}e.options.tooltips.enabled&&h.addTooltips(e),f.addSegmentEventHandlers(e)},y=function(e,t,n){var r=e/t;return n<=0?Math.round(100*r):(100*r).toFixed(n)};return g},void 0===(i="function"===typeof r?r.apply(t,o):r)||(e.exports=i)},49021:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e,t){var n=e.getDygraph(),r=n.getArea().h,o=n.canvas_ctx_,i=e.chart.getPayload().data[t];if(Array.isArray(i)){var a=n.toDomXCoord(i[0]),s=e.chart.getThemeAttribute("themeCrosshair");n.setSelection(t),o.save(),o.beginPath(),o.setLineDash([5,5]),o.strokeStyle=s,o.moveTo(a,0),o.lineTo(a,r),o.stroke(),o.closePath(),o.restore()}}},60579:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t,n,r,o,i=function(t,n,r){var o=r&&function(t,n){if(Array.isArray(n)){var r=t.offsetY;if(r>e.getDygraph().getArea().h-10)return"ANNOTATIONS";if(r<15)return"ANOMALY_RATE";for(var o=n[0],i=Math.abs(n[0].canvasy-r),a=1;a<n.length;a++){var s=Math.abs(n[a].canvasy-r);s<i&&(i=s,o=n[a])}return o.name}}(t,r);if(o){var i=e.getDygraph().getPropertiesForSeries(o);if(i){var a=e.chart.getPayloadDimensionIds();if(null!=a&&a.length){var s=a[i.column-1]||i.name;e.sdk.trigger("highlightHover",e.chart,n,s),e.chart.trigger("highlightHover",n,s)}}}},a=function(e,a,s){o!==a&&(r=s,o=a,t=e.offsetX,n=e.offsetY,i(e,a,s))},s=function(e){Math.abs(e.offsetX-t)<5&&Math.abs(e.offsetY-n)<5||(t=e.offsetX,n=e.offsetY,i(e,o,r))},l=function(){e.sdk.trigger("highlightBlur",e.chart),e.chart.trigger("highlightBlur")},u=function(){n=null,r=null,o=null,e.off("highlightCallback",a),e.off("mousemove",s)};return{toggle:function(t){return t?e.on("highlightCallback",a).on("mousemove",s).on("mouseout",l):u()},destroy:u}}},67514:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(7494)),o=h(n(58960)),i=h(n(81220)),a=h(n(93492)),s=n(93501),l=n(79635),u=n(56778),c=h(n(97962)),f=h(n(60579)),d=h(n(34613)),p=h(n(49021));function h(e){return e&&e.__esModule?e:{default:e}}function g(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,h,v,m=(0,o.default)(e,t),b=null,w=[],_=null,x=null,S=null,O=null,C={line:(0,l.makeLinePlotter)(m),stackedBar:(0,l.makeStackedBarPlotter)(m),multiBar:(0,l.makeMultiColumnBarPlotter)(m),heatmap:(0,l.makeHeatmapPlotter)(m),default:null},E={yRangePad:30,strokeWidth:.7,fillAlpha:.2,fillGraph:!1,stackedGraph:!1,forceIncludeZero:!1,errorBars:!1,makeYAxisLabelFormatter:function(){return function(e,n,r,o){var i=o.axes_[0].extremeRange,a=o.axes_[0].valueRange||[null,null],s=a[0],l=a[1];return s=null===s?i[0]:s,l=null===l?i[1]:l,s===h&&l===v||(h=s,v=l,m.sdk.trigger("yAxisChange",t,s,l)),t.getConvertedValue(e)}},makeYTicker:function(){return u.numericTicker},highlightCircleSize:4},A={line:y(y({},E),{},{strokeWidth:1.5,fillAlpha:.2}),stacked:y(y({},E),{},{strokeWidth:.1,fillAlpha:.8,fillGraph:!0,stackedGraph:!0,forceIncludeZero:!0}),area:y(y({},E),{},{fillGraph:!0,forceIncludeZero:!0}),stackedBar:y(y({},E),{},{stackedGraph:!0,forceIncludeZero:!0}),heatmap:y(y({},E),{},{makeYAxisLabelFormatter:function(){return function(e){var n=t.getAttribute("min"),r=t.getAttribute("max");n===h&&r===v||(h=n,v=r,m.sdk.trigger("yAxisChange",t,n,r));var o=parseFloat(parseFloat(e).toFixed(5));return isNaN(o)?e:o}},makeYTicker:function(e){return function(t,n,r,o,i){return(0,u.heatmapTicker)(t,n,r,o,i,e)}},highlightCircleSize:0}),default:y({},E)},k=function(){var e=t.getPayload().labels,n=t.getAttributes(),o=n.chartType,i=n.includeZero,a=n.enabledXAxis,l=n.enabledYAxis,u=n.yAxisLabelWidth,c=C[o]||C.default,f=A[o]||A.default,d=f.strokeWidth,p=f.fillAlpha,h=f.fillGraph,g=f.stackedGraph,v=f.forceIncludeZero,m=f.makeYAxisLabelFormatter,b=f.errorBars,w=f.makeYTicker,_=f.highlightCircleSize,x=f.yRangePad,S=m(e),O=w?w(t.getVisibleDimensionIds()):null,E=t.getAttributes().selectedLegendDimensions,k=t.getPayloadDimensionIds();return{yRangePad:x,stackedGraph:g,fillGraph:h,fillAlpha:p,highlightCircleSize:_,strokeWidth:d,includeZero:i||v&&k.length>1&&E.length>1,stackedGraphNaNFill:"none",plotter:c,errorBars:b,axes:{x:a?{ticker:r.default.dateTicker,axisLabelFormatter:t.formatXAxis,axisLabelWidth:60}:{drawAxis:!1},y:l?y(y(y({},O&&{ticker:O}),{},{axisLabelFormatter:S},u&&{axisLabelWidth:u}),{},{pixelsPerLabel:15}):{drawAxis:!1}},ylabel:t.getAttribute("hasYlabel")&&t.getUnitSign({long:!0,withoutConversion:(0,s.isHeatmap)(o)})}},M=function(){var e=m.chart.getThemeAttribute("themeGridColor");return{axisLineColor:e,gridLineColor:e}},P=function(){var e=t.getPayloadDimensionIds(),n=t.getPayload().labels;if(null==e||!e.length||null==n||!n.length)return{visibility:!1};var r=n.length-e.length,o=Array(r>0?r:0).fill(!0),i=t.getAttribute("selectedLegendDimensions");return{visibility:[].concat(g(e.map(i.length?t.isDimensionVisible:function(){return!0})),g(o))}},R=function(){var e=t.getAttributes(),n=e.outOfLimits,r=e.getValueRange,o=e.staticValueRange,i=e.chartType,a=t.getPayload(),l=a.data,u=a.labels,c=t.getDateWindow(),f=n||0===l.length;return{file:f?[[0]]:l,labels:f?["X"]:u,dateWindow:c,valueRange:o||((0,s.isHeatmap)(i)?[0,t.getVisibleDimensionIds().length]:r(t,{dygraph:!0}))}},T=function(){return t.isSparkline()?{drawGrid:!1,drawAxis:!1,ylabel:void 0,yLabelWidth:0,highlightCircleSize:3,fillAlpha:1,strokeWidth:0}:null},I=function(){var e=t.getPayloadDimensionIds();return e.length?{colors:e.map(t.selectDimensionColor)}:{}},B=y(y({},m),{},{getChartWidth:function(){return b?b.getArea().w:m.getChartWidth()},getChartHeight:function(){return b?b.getArea().h:100},getPreceded:function(){if(!b)return-1;if(1e3*t.getFirstEntry()<b.xAxisRange()[0])return-1;var e=b.xAxisExtremes()[0];return b.toDomXCoord(e)},mount:function(e){if(!b){m.mount(e);var o=t.getAttribute("theme");e.classList.add(o);var u=t.getAttributes(),c=t.getPayload(),f=c.data,d=c.labels;n=(0,i.default)();var h=u.outOfLimits||0===f.length;b=new r.default(e,h?[[0]]:f,y(y(y(y(y(y({legend:"never",showLabelsOnHighlight:!1,labels:h?["X"]:d,dateWindow:t.getDateWindow(),highlightCallback:n.add((function(e,t,n,r,o){return m.trigger("highlightCallback",e,t,n,r,o)})),unhighlightCallback:n.add((function(){return m.trigger("unhighlightCallback")})),drawCallback:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["drawCallback"].concat(t))},underlayCallback:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["underlayCallback"].concat(t))})),interactionModel:{willDestroyContextMyself:!0,mouseout:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mouseout"].concat(t))})),mousedown:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mousedown"].concat(t))})),mousemove:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mousemove"].concat(t))})),mouseover:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mouseover"].concat(t))})),mouseup:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["mouseup"].concat(t))})),touchstart:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["touchstart"].concat(t))})),touchmove:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["touchmove"].concat(t))})),touchend:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["touchend"].concat(t))})),dblclick:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["dblclick"].concat(t))})),wheel:n.add((function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.trigger.apply(m,["wheel"].concat(t))}))},series:{ANOMALY_RATE:{plotter:(0,l.makeAnomalyPlotter)(m),drawPoints:!1,pointSize:0,highlightCircleSize:0},ANNOTATIONS:{plotter:(0,l.makeAnnotationsPlotter)(m),drawPoints:!1,pointSize:0,highlightCircleSize:0}},strokeBorderWidth:0,axisLabelFontSize:u.axisLabelFontSize,axisLineWidth:1,gridLineWidth:1,maxNumberWidth:8,highlightSeriesBackgroundAlpha:1,drawGapEdgePoints:!0,ylabel:t.getAttribute("hasYlabel")&&t.getUnitSign({long:!0}),digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits"),yLabelWidth:12,yRangePad:30,labelsSeparateLines:!0,rightGap:-5},k()),M()),P()),R()),T()),I())),S=(0,a.default)(e,(function(){m.trigger("resize")})),x.toggle(u.enabledHover),_.toggle(u.enabledNavigation,u.navigation),w=[m.on("resize",n.add((function(){return b.resize()}))),t.onAttributeChange("hoverX",n.add((function(e){var n=e?t.getClosestRow(e[0]):-1;if(-1===n)return b.setSelection();(0,p.default)(B,n)}))),t.onAttributeChange("enabledHover",x.toggle),t.onAttributeChange("enabledNavigation",_.toggle),t.onAttributeChange("navigation",_.set),t.onAttributeChange("overlays",O.toggle),t.onAttributeChange("theme",(function(t,n){e.classList.remove(n),e.classList.add(t),b.updateOptions(M())})),t.onAttributeChange("chartType",(function(){t.getAttribute("processing")||b.updateOptions(k())})),t.onAttributeChange("selectedLegendDimensions",(function(){t.getAttribute("processing")||b.updateOptions(y(y(y(y({},P()),I()),k()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")}))})),t.onAttributeChange("unitsConversion",(function(){return b.updateOptions(y(y({},k()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")}))})),t.onAttributeChange("staticValueRange",(function(e){var n=e[0],r=e[1];b.updateOptions({valueRange:(0,s.isHeatmap)(u.chartType)?[Math.ceil(n),Math.ceil(r)]:u.getValueRange(t,{dygraph:!0})})})),t.onAttributeChange("timezone",(function(){return b.updateOptions({})}))].filter(Boolean),O.toggle(),m.trigger("resize"),m.render()}},unmount:function(){b&&(S(),n&&n.clear(),w.forEach((function(e){return e()})),w=[],m.unmount(),x.destroy(),_.destroy(),b.destroy(),b=null,O.destroy())},getDygraph:function(){return b},getXAxisRange:function(){var e;return null==(e=b)?void 0:e.xAxisRange()},render:function(){if(b){var e=t.getAttributes(),n=e.highlighting,r=e.panning,o=e.processing;e.chartType;n||r||o||(m.render(),b.updateOptions(y(y(y(y(y({},R()),P()),I()),k()),{},{digitsAfterDecimal:t.getAttribute("unitsConversionFractionDigits")<0?0:t.getAttribute("unitsConversionFractionDigits")},T())),m.trigger("rendered"))}}});return _=(0,c.default)(B),x=(0,f.default)(B),O=(0,d.default)(B),B}},25436:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=n(42189),i=(r=n(18774))&&r.__esModule?r:{default:r};t.default=function(e){var t=function(t,n){return void 0===n&&(n=e.chart.getAttribute("navigation")),e.chart.updateAttributes({navigation:t,prevNavigation:n})},n=(0,o.debounce)(500,(function(e,t,n){e.moveX(t,n)})),r=e.on("mousedown",(function(e){e.shiftKey&&e.altKey?t("selectVertical"):e.altKey?t("highlight"):e.shiftKey&&t("select")})).on("mouseup",(function(){setTimeout((function(){var n=e.chart.getAttribute("prevNavigation");n&&t(n,null)}))})).on("wheel",(function(t,r){if(t.shiftKey||t.altKey){t.preventDefault(),t.stopPropagation();var o="number"!==typeof t.wheelDelta||Number.isNaN(t.wheelDelta)?-1.2*t.deltaY:t.wheelDelta/40,a=(t.detail?-1*t.detail:o)/50,s=t.offsetX||t.layerX-t.target.offsetLeft,l=function(e,t){var n=e.toDomCoords(e.xAxisRange()[0],null)[0],r=t-n,o=e.toDomCoords(e.xAxisRange()[1],null)[0]-n;return 0===o?0:r/o}(r,s);!function(t,o,a){a=a||.5;var s=t.xAxisRange(),l=s[0],u=s[1],c=(u-l)*o,f=c*a,d=c*(1-a),p=Math.round((l+f)/1e3),h=Math.round((u-d)/1e3),g=(0,i.default)({after:p,before:h}),v=g.fixedAfter,m=g.fixedBefore;v===l&&m===u||(n(e.chart,v,m),r.updateOptions({dateWindow:[1e3*v,1e3*m]}))}(r,a,l)}})).on("dblclick",e.chart.resetNavigation);return function(){return r()}}},97962:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(25436)),o=s(n(47883)),i=s(n(36012)),a=s(n(37108));function s(e){return e&&e.__esModule?e:{default:e}}var l={highlight:o.default,select:o.default,selectVertical:a.default,pan:i.default};t.default=function(e){var t,n,o=function(){null==t||t(),t=null},i=function(){o(),null==n||n(),n=null},a=function(r){var i;n&&(o(),t=null==(i=l[r])?void 0:i.call(l,e))};return{toggle:function(t,o){if(!t)return i();n=(0,r.default)(e),o&&a(o)},set:a,destroy:i}}},36012:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r};t.default=function(e){var t=function(e,t,n){n.isPanning&&o.default.movePan(e,t,n)},n=function n(r,i,a){a.isPanning&&(o.default.endPan(r,i,a),a.destroy(),e.sdk.trigger("panEnd",e.chart,i.dateWindow_)),e.off("mousemove",t),e.off("mouseup",n),e.off("mouseout",n)};return e.on("mousedown",(function(r,i,a){e.sdk.trigger("panStart",e.chart),a.initializeMouseDown(r,i,a),o.default.startPan(r,i,a),a.is2DPan=!1,e.on("mousemove",t).on("mouseout",n).on("mouseup",n)}))}},47883:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r},i=n(72247);t.default=function(e){var t,n,r=function(e,t,r){if(r.isZooming){var o=t.canvas_ctx_,a=t.canvas_,s=t.getArea(),l=a.getBoundingClientRect(),u=l.left+s.x,c=(l.top,s.y,s.w);s.h;if(!(e.pageX<u||e.pageX>u+c)){r.zoomMoved=!0,r.dragEndX=(0,i.dragGetX_)(e,r);var f=r.dragStartX,d=r.dragEndX;o.clearRect(0,0,a.width,a.height),o.fillStyle="rgba(128,128,128,0.3)",o.fillRect(Math.min(f,d),s.y,Math.abs(d-f),s.h),r.prevEndX=d,n=d}}},a=function o(i,a,s){if(s.isZooming){a.clearZoomRect_(),s.destroy();var l=function(e){return-1===n||Math.abs(t-n)<5?null:[Math.round(e.toDataXCoord(t)/1e3),Math.round(e.toDataXCoord(n)/1e3)].sort((function(e,t){return e-t}))}(a);e.sdk.trigger("highlightEnd",e.chart,l)}e.off("mousemove",r),e.off("mouseup",o)};return e.on("mousedown",(function(i,s,l){e.sdk.trigger("highlightStart",e.chart),l.initializeMouseDown(i,s,l),o.default.startZoom(i,s,l),t=l.dragStartX,n=-1,e.on("mousemove",r).on("mouseup",a)}))}},37108:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r},i=n(72247);t.default=function(e){var t,n,r=function(e,t,r){if(r.isZooming){var o=t.canvas_ctx_,a=t.canvas_,s=a.getBoundingClientRect();if(!(e.pageY<s.top||e.pageY>s.bottom)){r.zoomMoved=!0,r.dragEndY=(0,i.dragGetY_)(e,r);var l=r.dragStartY,u=r.dragEndY,c=t.getArea();o.clearRect(0,0,a.width,a.height),o.fillStyle="rgba(128,128,128,0.3)",o.fillRect(c.x,Math.min(l,u),c.w,Math.abs(u-l)),r.prevEndY=u,n=u}}},a=function o(i,a,s){if(s.isZooming){a.clearZoomRect_(),s.destroy();var l=-1===n||Math.abs(t-n)<5?null:[a.toDataYCoord(t),a.toDataYCoord(n)].sort((function(e,t){return e-t}));e.sdk.trigger("highlightVerticalEnd",e.chart,l)}e.off("mousemove",r),e.off("mouseup",o)};return e.on("mousedown",(function(i,s,l){e.sdk.trigger("highlightVerticalStart",e.chart),l.initializeMouseDown(i,s,l),o.default.startZoom(i,s,l),t=l.dragStartY,n=-1,e.on("mousemove",r).on("mouseup",a)}))}},1991:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062),o={warning:"#F9A825",critical:"#FF4136",clear:"#00AB44"};t.default=function(e,t){var n=e.chart.getAttribute("overlays")[t],i=n.when,a=n.status,s=e.getDygraph(),l=s.getArea().h,u=s.hidden_ctx_,c=(0,r.getArea)(s,[i,i]);if(!c)return(0,r.trigger)(e,t);var f=c.from;(0,r.trigger)(e,t,c),u.save(),u.beginPath(),u.moveTo(f-1,0),u.lineTo(f-1,l),u.globalAlpha=1,u.lineWidth=2,u.setLineDash([4,4]),u.strokeStyle=o[a],u.stroke(),u.closePath(),u.restore()}},3288:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062),o={warning:"#FFF8E1",critical:"#FFEBEF",clear:"#E5F5E8"},i={warning:"#FFC300",critical:"#F59B9B",clear:"#68C47D"},a={warning:"#F9A825",critical:"#FF4136",clear:"#00AB44"};t.default=function(e,t){var n=e.chart.getAttribute("overlays")[t],s=n.whenTriggered,l=n.whenLast,u=void 0===l?Math.floor((new Date).getTime()/1e3):l,c=n.status,f=e.getDygraph(),d=f.getArea().h,p=f.hidden_ctx_,h=(0,r.getArea)(f,[s,u]);if(!h)return(0,r.trigger)(e,t);var g=h.from,v=h.width,m=h.to;(0,r.trigger)(e,t,h),p.save(),p.beginPath(),p.rect(g,0,v,d-1),p.fillStyle=i[c],p.globalAlpha=.1,p.fill();p.beginPath(),p.moveTo(g,0),p.lineTo(g,d),p.globalAlpha=1,p.lineWidth=2,p.setLineDash([4,4]),p.strokeStyle=o[c],p.stroke(),p.beginPath(),p.moveTo(m-2,0),p.lineTo(m-2,d),p.strokeStyle=a[c],p.stroke(),p.closePath(),p.restore()}},41062:function(e,t){"use strict";t.__esModule=!0,t.trigger=t.getArea=void 0;t.getArea=function(e,t){var n=e.xAxisRange(),r=n[0],o=n[1],i=1e3*t[0],a=1e3*t[1];if(a<r||i>o)return null;var s=Math.max(r,i),l=Math.min(o,a),u=e.toDomXCoord(s),c=e.toDomXCoord(l);return{from:u,to:c,width:c-u}};t.trigger=function(e,t,n){return requestAnimationFrame((function(){return e.trigger("overlayedAreaChanged:"+t,n)}))}},4241:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062);t.default=function(e,t){var n=e.chart.getAttribute("overlays")[t].range;if(n){var o=e.getDygraph(),i=o.getArea().h,a=o.hidden_ctx_,s=(0,r.getArea)(o,n);if(!s)return(0,r.trigger)(e,t);var l=s.from,u=s.width;(0,r.trigger)(e,t,s),a.save(),a.beginPath(),a.rect(l,0,u,i-1),a.fillStyle="rgba(207, 213, 218, 0.12)",a.fill(),a.beginPath(),a.rect(l,0,0,i-1),a.rect(l+u,0,0,i-1),a.fill(),a.setLineDash([2,7]),a.lineWidth=1,a.strokeStyle="#CFD5DA",a.stroke(),a.stroke(),a.closePath(),a.restore()}}},34613:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(82415))&&r.__esModule?r:{default:r};t.default=function(e){var t=null,n=function(t){var n=e.chart.getAttribute("overlays")[t].type,r=o.default[n];r&&r(e,t)},r=function(){var t=e.chart.getAttribute("overlays");Object.keys(t).forEach(n)},i=function(){var t=e.getDygraph();t&&t.renderGraph_(!1)},a=function(){t&&(i(),t(),t=null)};return{toggle:function(){var n=e.chart.getAttribute("overlays");if(!Object.keys(n).length)return a();t?i():t=e.on("underlayCallback",r)},destroy:a}}},85362:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(41062);t.default=function(e,t){var n=e.getDygraph(),o=n.xAxisRange()[1],i=o/1e3,a=e.chart.getFirstEntry(),s=e.chart.getAttributes(),l=s.outOfLimits,u=s.error;if(l||a&&!(a>i)||u){var c=l||u?[o,o]:[a,a],f=(0,r.getArea)(n,c);(0,r.trigger)(e,t,f)}}},82415:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(1991)),o=s(n(3288)),i=s(n(4241)),a=s(n(85362));function s(e){return e&&e.__esModule?e:{default:e}}var l={alarm:r.default,alarmRange:o.default,highlight:i.default,proceeded:a.default};t.default=l},9806:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(35890);function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.default=function(e){return function(t){if(e&&"ANNOTATIONS"===t.setName){var n=t.drawingContext,i=t.points,a=i[1].canvasx-i[0].canvasx+1,s=Math.floor(a),l=e.chart.getPayloadDimensionIds(),u=e.chart.getAttribute("selectedLegendDimensions"),c=l.reduce((function(t,n,r){return u.length?e.chart.isDimensionVisible(n)&&t.add(r):t.add(r),t}),new Set),f=e.chart.getPayload().all;i.forEach((function(i){var a=i.canvasx,l=e.chart.getClosestRow(i.xval),u=o(f[l].slice(1).reduce((function(e,t,n){var o=t.pa;return c.has(n)&&o&&r.parts.forEach((function(t){return(0,r.check)(o,r.enums[t])&&e.add(t)})),e}),new Set)).sort((function(e,t){return r.priorities[e]<r.priorities[t]})),d=t.dygraph.getArea().h;n.strokeStyle=n.fillStyle="transparent",n.fillRect(a-s/2,d-4,s,d),n.strokeRect(a-s/2,d-4,s,d),u.forEach((function(e){n.strokeStyle=n.fillStyle=r.colors[e]||"transparent",n.fillRect(a-s/2,d-4,s,d),n.strokeRect(a-s/2,d-4,s,d)}))}))}}}},56950:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(69032);t.default=function(e){return function(t){if(e&&"ANOMALY_RATE"===t.setName){var n=t.drawingContext,o=t.points;if(!o.length)return;var i=o[1].canvasx-o[0].canvasx+1,a=Math.floor(i),s=(0,r.scaleLinear)().domain([0,100]).range(["transparent",e.chart.getThemeAttribute("themeAnomalyScaleColor")]),l=e.chart.getPayloadDimensionIds(),u=e.chart.getAttribute("selectedLegendDimensions"),c=l.reduce((function(t,n,r){return u.length?e.chart.isDimensionVisible(n)&&t.add(r):t.add(r),t}),new Set),f=e.chart.getPayload().all;o.forEach((function(t){var r=t.canvasx,o=e.chart.getClosestRow(t.xval),i=f[o].slice(1).reduce((function(e,t,n){var r=t.arp;return c.has(n)?e>(r||0)?e:r||0:e}),0);n.strokeStyle=n.fillStyle=s(i),n.fillRect(r-a/2,0,a,15),n.strokeRect(r-a/2,0,a,15)}))}}}},43492:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(93501);t.default=function(e){return function(t){if(e&&0===t.seriesIndex){var n=e.chart.getVisibleDimensionIds(),o=e.chart.getVisibleDimensionIndexesById(),i=t.dygraph,a=t.drawingContext,s=t.allSeriesPoints,l=i.layout_.setNames,u=1/0;s.forEach((function(e){var t=e[1].canvasx-e[0].canvasx;t<u&&(u=t)}));var c=Math.floor(u),f=(0,r.makeGetColor)(e.chart);l.forEach((function(t,r){var l=o[t];if(-1!==l){var u=Math.abs(0===l?i.toDomYCoord(l+1)-i.toDomYCoord(l):i.toDomYCoord(l)-i.toDomYCoord(l-1));s[r].forEach((function(t,r){var o=e.chart.getDimensionValue(n[l],r)||0;a.fillStyle=f(o),a.fillRect(t.canvasx-c/2,i.toDomYCoord(l)-u/2,c,u),a.strokeStyle="transparent",a.strokeRect(t.canvasx-c/2,i.toDomYCoord(l)-u/2,c,u)}))}}))}}}},96556:function(e,t,n){"use strict";t.__esModule=!0,t.darkenColor=void 0;var r,o=(r=n(7494))&&r.__esModule?r:{default:r};t.darkenColor=function(e){var t=o.default.toRGB_(e);return t.r=Math.floor((255+t.r)/2),t.g=Math.floor((255+t.g)/2),t.b=Math.floor((255+t.b)/2),"rgb("+t.r+","+t.g+","+t.b+")"}},79635:function(e,t,n){"use strict";t.__esModule=!0,t.makeStackedBarPlotter=t.makeMultiColumnBarPlotter=t.makeLinePlotter=t.makeHeatmapPlotter=t.makeAnomalyPlotter=t.makeAnnotationsPlotter=void 0;var r=u(n(98972));t.makeLinePlotter=r.default;var o=u(n(60810));t.makeStackedBarPlotter=o.default;var i=u(n(82921));t.makeMultiColumnBarPlotter=i.default;var a=u(n(43492));t.makeHeatmapPlotter=a.default;var s=u(n(56950));t.makeAnomalyPlotter=s.default;var l=u(n(9806));function u(e){return e&&e.__esModule?e:{default:e}}t.makeAnnotationsPlotter=l.default},98972:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0,n(86929);t.default=function(){return function(e){window.smoothPlotter(e)}}},82921:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(96556);t.default=function(){return function(e){if(0===e.seriesIndex){var t=e.dygraph,n=e.drawingContext,o=e.allSeriesPoints,i=t.toDomYCoord(0),a=1/0;o.forEach((function(e){var t=e[1].canvasx-e[0].canvasx;t<a&&(a=t)}));var s=Math.floor(2/3*a),l=t.getColors(),u=t.getColors().map((function(e){return(0,r.darkenColor)(e)}));o.forEach((function(e,t){n.fillStyle=l[t],n.strokeStyle=u[t],e.forEach((function(e){var r=e.canvasx-s/2*(1-t/(o.length>1?o.length-1:1));n.fillRect(r,e.canvasy,s/o.length,i-e.canvasy),n.strokeRect(r,e.canvasy,s/o.length,i-e.canvasy)}))}))}}}},60810:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(96556);t.default=function(){return function(e){var t=e.drawingContext,n=e.points,o=e.dygraph.toDomYCoord(0);t.fillStyle=(0,r.darkenColor)(e.color);var i=n[1].canvasx-n[0].canvasx,a=Math.floor(2/3*i);n.forEach((function(e){var n=e.canvasx;t.fillRect(n-a/2,e.canvasy,a,o-e.canvasy),t.strokeRect(n-a/2,e.canvasy,a,o-e.canvasy)}))}}},35484:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(93501);function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.default=function(e,t,n,i,a,s){var l=s.map(r.withoutPrefix),u=i("pixelsPerLabel"),c=Math.floor(n/u),f=i("axisLabelFormatter"),d=Math.ceil(s.length/(c-1)),p=l.map((function(e,t){return{v:t,label:t%d===0?f(l[t],0,i,a):null}})),h=a.yAxisRange(0),g=h[0],v=h[1],m=(v-g)/15/a.getArea().h;return[{label_v:v-m}].concat(o(p),[{label_v:g+m}])}},56778:function(e,t,n){"use strict";t.__esModule=!0,t.numericTicker=t.heatmapTicker=void 0;var r=i(n(65581));t.numericTicker=r.default;var o=i(n(35484));function i(e){return e&&e.__esModule?e:{default:e}}t.heatmapTicker=o.default},65581:function(e,t){"use strict";function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.__esModule=!0,t.default=void 0;t.default=function(e,t,r,o,i,a){var s,l,u,c,f=o("pixelsPerLabel"),d=[];if(a)for(s=0;s<a.length;s++)d.push({v:a[s]});else if(0===d.length){var p,h,g,v=[1,2,5,10,20,50,100],m=Math.ceil(r/f),y=Math.abs(t-e)/m,b=Math.floor(Math.log(y)/Math.log(10)),w=Math.pow(10,b);for(l=0;l<v.length&&(p=w*v[l],h=Math.floor(e/p)*p,g=Math.ceil(t/p)*p,!(r/(c=Math.abs(g-h)/p)>f));l++);for(h>g&&(p*=-1),s=0;s<=c;s++)u=h+s*p,d.push({v:u})}var _=o("axisLabelFormatter");for(s=0;s<d.length;s++)void 0===d[s].label&&(d[s].label=_(d[s].v,0,o,i));var x=i.yAxisRange(0),S=x[0],O=x[1],C=(O-S)/15/i.getArea().h;return[{label_v:O-C,label:"AR"}].concat(n(d.filter((function(e){return i.toPercentYCoord(e.v,0)<.92&&i.toPercentYCoord(e.v,0)>.08}))),[{label_v:S+C,label:"i"}])}},76081:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(26712)),o=s(n(58960)),i=n(24298),a=s(n(93492));function s(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,s,l,c,f=(0,o.default)(e,t),d=null,p=function(){return{trackColor:t.getThemeAttribute("themeEasyPieTrackColor"),scaleColor:t.getThemeAttribute("themeEasyPieScaleColor")}},h=function(){var e=f.getElement(),t=e.clientWidth,n=e.clientHeight,r=t<n?t:n,o=r/22;return{lineWidth:o<4?2:Math.floor(o),size:r<20?20:r,scaleLength:o<4?2:Math.floor(o)}},g=function(){f.render();var e=t.getAttributes(),n=e.hoverX,r=e.loaded;if(d&&r){var o=t.getPayload().data;if(void 0!==(null==o?void 0:o.length)){var i=o[n?t.getClosestRow(n[0]):o.length-1];if(Array.isArray(i)){var a=i.slice(1).reduce((function(e,t){return void 0===t&&(t=0),e+t}),0),s=t.getAttribute("getValueRange")(t),u=s[0],p=s[1];f.render();var h=(a-u)/(p-u)*100;d.update(h),u===l&&p===c||f.sdk.trigger("yAxisChange",t,u,p),l=u,c=p,f.trigger("rendered")}}}};return u(u({},f),{},{mount:function(e){if(!d){f.mount(e);var o=t.getAttribute("theme");e.classList.add(o);var l=t.getAttributes().loaded,c=function(){d=new r.default(e,u(u({barColor:t.selectDimensionColor(),animate:!1},p()),h()))};c();var v=function(){var t=d.renderer.getCanvas();d.renderer.clear(),e.removeChild(t),c()};s=(0,a.default)(e,(function(){v(),f.trigger("resize")})),n=(0,i.unregister)(t.onAttributeChange("hoverX",(function(e,t){Boolean(t)!==Boolean(e)&&(e?d.disableAnimation():d.enableAnimation()),g()})),!l&&t.onceAttributeChange("loaded",g),t.onAttributeChange("theme",v)),f.trigger("resize"),g()}},unmount:function(){n&&n(),s&&s(),d&&(d.renderer.clear(),d=null),l=null,c=null,f.unmount()},render:g})}},69187:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(63902)),o=s(n(58960)),i=n(24298),a=s(n(93492));function s(e){return e&&e.__esModule?e:{default:e}}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,s,u,c,d=(0,o.default)(e,t),p=null,h=function(){return{color:d.chart.getThemeAttribute("themeGaugePointer"),strokeColor:d.chart.getThemeAttribute("themeGaugeStroke")}},g=function(){return t.getAttribute("getValueRange")(t)},v=function(){d.render();var e=t.getAttributes(),n=e.hoverX,r=e.loaded;if(p&&r){var o=t.getPayload().data;if(void 0!==(null==o?void 0:o.length)){var i=o[n?t.getClosestRow(n[0]):o.length-1];if(Array.isArray(i)){var a=i.slice(1).reduce((function(e,t){return void 0===t&&(t=0),e+t}),0),l=g(),c=l[0],f=l[1];c===s&&f===u||d.sdk.trigger("yAxisChange",t,c,f),s=c,u=f,d.render();var h=Math.max(Math.min((a-c)/(f-c)*100,99.999),.001);p.set(h),d.trigger("rendered")}}}};return f(f({},d),{},{mount:function(e){if(!p){d.mount(e);var o=h(),s=o.color,u=o.strokeColor,g=t.getAttributes().staticZones;(p=new r.default(e.firstChild).setOptions(f({angle:-.2,lineWidth:.2,radiusScale:1,pointer:{length:.6,strokeWidth:.035,color:s},strokeColor:u,limitMax:!1,limitMin:!1,colorStart:t.selectDimensionColor(),generateGradient:!0,highDpiSupport:!0},g&&{staticZones:[{strokeStyle:u,min:0,max:100,height:1}].concat(l(g))}))).maxValue=100,p.animationSpeed=Number.MAX_VALUE,p.setMinValue(0),c=(0,a.default)(e,(function(){var t=e.clientWidth,n=.9*(e.clientHeight>t?t:e.clientHeight);e.firstChild.G__height=n,e.firstChild.style.height=n+"px";var r=t;e.firstChild.G__width=r,e.firstChild.style.width=r+"px",p.setOptions({}),p.update(!0),d.trigger("resize")}));var m=t.getAttributes().loaded;n=(0,i.unregister)(t.onAttributeChange("hoverX",v),!m&&t.onceAttributeChange("loaded",v),t.onAttributeChange("theme",(function(){var e=h(),t=e.color,n=e.strokeColor;p.setOptions({strokeColor:n,pointer:{color:t}})})));var y=e.clientWidth,b=.9*(e.clientHeight>y?y:e.clientHeight);e.firstChild.G__height=b,e.firstChild.style.height=b+"px";var w=y;e.firstChild.G__width=w,e.firstChild.style.width=w+"px",p.setOptions({}),d.trigger("resize"),v()}},unmount:function(){n&&n(),c&&c(),p=null,s=null,u=null,d.unmount()},render:v,getMinMax:g})}},63902:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e,t){for(var n in t.prototype)t.hasOwnProperty(n)&&(e[n]=t[n]);function r(){this.constructor=e}return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},r=function(e,t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);for(var o in t)t.hasOwnProperty(o)&&(n[o]=t[o]);return n},o=function(e){return"#"===e.charAt(0)?e.substring(1,7):e};function i(e,t){null==e&&(e=!0),this.clear=null==t||t,e&&u.add(this)}function a(){return a.__super__.constructor.apply(this,arguments)}function s(e){if(this.gauge=e,void 0===this.gauge)throw new Error("The element isn't defined.");this.ctx=this.gauge.ctx,this.canvas=this.gauge.canvas,s.__super__.constructor.call(this,!1,!1),this.setOptions()}function l(e){var t,n;this.canvas=e,l.__super__.constructor.call(this),this.percentColors=null,"undefined"!==typeof G_vmlCanvasManager&&(this.canvas=window.G_vmlCanvasManager.initElement(this.canvas)),this.ctx=this.canvas.getContext("2d"),t=this.canvas.clientHeight,n=this.canvas.clientWidth,this.canvas.height=t,this.canvas.width=n,this.gp=[new s(this)],this.setOptions()}i.prototype.animationSpeed=32,i.prototype.update=function(e){var t;return null==e&&(e=!1),!(!e&&this.displayedValue===this.value)&&(this.ctx&&this.clear&&this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),t=this.value-this.displayedValue,Math.abs(t/this.animationSpeed)<=.001?this.displayedValue=this.value:this.displayedValue=this.displayedValue+t/this.animationSpeed,this.render(),!0)},n(a,i),a.prototype.displayScale=1,a.prototype.forceUpdate=!0,a.prototype.setMinValue=function(e,t){var n,r,o,i,a;if(this.minValue=e,null==t&&(t=!0),t){for(this.displayedValue=this.minValue,a=[],r=0,o=(i=this.gp||[]).length;r<o;r++)n=i[r],a.push(n.displayedValue=this.minValue);return a}},a.prototype.setOptions=function(e){return null==e&&(e=null),this.options=r(this.options,e),this.options.angle>.5&&(this.options.angle=.5),this.configDisplayScale(),this},a.prototype.configDisplayScale=function(){var e,t,n,r;return!1===this.options.highDpiSupport?delete this.displayScale:(t=window.devicePixelRatio||1,e=this.ctx.webkitBackingStorePixelRatio||this.ctx.mozBackingStorePixelRatio||this.ctx.msBackingStorePixelRatio||this.ctx.oBackingStorePixelRatio||this.ctx.backingStorePixelRatio||1,this.displayScale=t/e),r=this.canvas.G__width||this.canvas.width,n=this.canvas.G__height||this.canvas.height,this.canvas.width=r*this.displayScale,this.canvas.height=n*this.displayScale,this.canvas.style.width=r+"px",this.canvas.style.height=n+"px",this.canvas.G__width=r,this.canvas.G__height=n,this},a.prototype.parseValue=function(e){return e=parseFloat(e)||Number(e),isFinite(e)?e:0},n(s,i),s.prototype.displayedValue=0,s.prototype.value=0,s.prototype.options={strokeWidth:.035,length:.1,color:"#000000",iconPath:null,iconScale:1,iconAngle:0},s.prototype.img=null,s.prototype.setOptions=function(e){if(null==e&&(e=null),this.options=r(this.options,e),this.length=2*this.gauge.radius*this.gauge.options.radiusScale*this.options.length,this.strokeWidth=this.canvas.height*this.options.strokeWidth,this.maxValue=this.gauge.maxValue,this.minValue=this.gauge.minValue,this.animationSpeed=this.gauge.animationSpeed,this.options.angle=this.gauge.options.angle,this.options.iconPath)return this.img=new Image,this.img.src=this.options.iconPath},s.prototype.render=function(){var e,t,n,r,o,i,a,s,l;if(e=this.gauge.getAngle.call(this,this.displayedValue),s=Math.round(this.length*Math.cos(e)),l=Math.round(this.length*Math.sin(e)),i=Math.round(this.strokeWidth*Math.cos(e-Math.PI/2)),a=Math.round(this.strokeWidth*Math.sin(e-Math.PI/2)),t=Math.round(this.strokeWidth*Math.cos(e+Math.PI/2)),n=Math.round(this.strokeWidth*Math.sin(e+Math.PI/2)),this.ctx.beginPath(),this.ctx.fillStyle=this.options.color,this.ctx.arc(0,0,this.strokeWidth,0,2*Math.PI,!1),this.ctx.fill(),this.ctx.beginPath(),this.ctx.moveTo(i,a),this.ctx.lineTo(s,l),this.ctx.lineTo(t,n),this.ctx.fill(),this.img)return r=Math.round(this.img.width*this.options.iconScale),o=Math.round(this.img.height*this.options.iconScale),this.ctx.save(),this.ctx.translate(s,l),this.ctx.rotate(e+Math.PI/180*(90+this.options.iconAngle)),this.ctx.drawImage(this.img,-r/2,-o/2,r,o),this.ctx.restore()},n(l,a),l.prototype.elem=null,l.prototype.value=[20],l.prototype.maxValue=80,l.prototype.minValue=0,l.prototype.displayedAngle=0,l.prototype.displayedValue=0,l.prototype.lineWidth=40,l.prototype.paddingTop=.1,l.prototype.paddingBottom=.1,l.prototype.percentColors=null,l.prototype.options={colorStart:"#6fadcf",colorStop:void 0,gradientType:0,strokeColor:"#e0e0e0",pointer:{length:.8,strokeWidth:.035,iconScale:1},angle:.15,lineWidth:.44,radiusScale:1,limitMax:!1,limitMin:!1},l.prototype.setOptions=function(e){var t,n,r,o,i;for(null==e&&(e=null),l.__super__.setOptions.call(this,e),this.configPercentColors(),this.extraPadding=0,this.options.angle<0&&(o=Math.PI*(1+this.options.angle),this.extraPadding=Math.sin(o)),this.availableHeight=this.canvas.height*(1-this.paddingTop-this.paddingBottom),this.lineWidth=this.availableHeight*this.options.lineWidth,this.radius=(this.availableHeight-this.lineWidth/2)/(1+this.extraPadding),this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),n=0,r=(i=this.gp).length;n<r;n++)(t=i[n]).setOptions(this.options.pointer),t.render();return this.render(),this},l.prototype.configPercentColors=function(){var e,t,n,r,i,a,s;if(this.percentColors=null,void 0!==this.options.percentColors){for(this.percentColors=new Array,a=[],n=r=0,i=this.options.percentColors.length-1;0<=i?r<=i:r>=i;n=0<=i?++r:--r)s=parseInt(o(this.options.percentColors[n][1]).substring(0,2),16),t=parseInt(o(this.options.percentColors[n][1]).substring(2,4),16),e=parseInt(o(this.options.percentColors[n][1]).substring(4,6),16),a.push(this.percentColors[n]={pct:this.options.percentColors[n][0],color:{r:s,g:t,b:e}});return a}},l.prototype.set=function(e){var t,n,r,o,i,a,l,c,f;for(e instanceof Array||(e=[e]),n=r=0,l=e.length-1;0<=l?r<=l:r>=l;n=0<=l?++r:--r)e[n]=this.parseValue(e[n]);if(e.length>this.gp.length)for(n=o=0,c=e.length-this.gp.length;0<=c?o<c:o>c;n=0<=c?++o:--o)(t=new s(this)).setOptions(this.options.pointer),this.gp.push(t);else e.length<this.gp.length&&(this.gp=this.gp.slice(this.gp.length-e.length));for(n=0,a=0,i=e.length;a<i;a++)(f=e[a])>this.maxValue?this.options.limitMax?f=this.maxValue:this.maxValue=f+1:f<this.minValue&&(this.options.limitMin?f=this.minValue:this.minValue=f-1),this.gp[n].value=f,this.gp[n++].setOptions({minValue:this.minValue,maxValue:this.maxValue,angle:this.options.angle});return this.value=Math.max(Math.min(e[e.length-1],this.maxValue),this.minValue),u.add(this),u.run(this.forceUpdate),this.forceUpdate=!1},l.prototype.getAngle=function(e){return(1+this.options.angle)*Math.PI+(e-this.minValue)/(this.maxValue-this.minValue)*(1-2*this.options.angle)*Math.PI},l.prototype.getColorForPercentage=function(e,t){var n,r,o,i,a,s,l;if(0===e)n=this.percentColors[0].color;else for(n=this.percentColors[this.percentColors.length-1].color,o=i=0,s=this.percentColors.length-1;0<=s?i<=s:i>=s;o=0<=s?++i:--i)if(e<=this.percentColors[o].pct){!0===t?(l=this.percentColors[o-1]||this.percentColors[0],r=this.percentColors[o],a=(e-l.pct)/(r.pct-l.pct),n={r:Math.floor(l.color.r*(1-a)+r.color.r*a),g:Math.floor(l.color.g*(1-a)+r.color.g*a),b:Math.floor(l.color.b*(1-a)+r.color.b*a)}):n=this.percentColors[o].color;break}return"rgb("+[n.r,n.g,n.b].join(",")+")"},l.prototype.getColorForValue=function(e,t){var n;return n=(e-this.minValue)/(this.maxValue-this.minValue),this.getColorForPercentage(n,t)},l.prototype.renderTicks=function(e,t,n,r){var o,i,a,s,l,u,c,f,d,p,h,g,v,m,y,b,w,_,x,S;if(e!=={}){for(u=e.divisions||0,_=e.subDivisions||0,a=e.divColor||"#fff",m=e.subColor||"#fff",s=e.divLength||.7,b=e.subLength||.2,d=parseFloat(this.maxValue)-parseFloat(this.minValue),p=parseFloat(d)/parseFloat(e.divisions),y=parseFloat(p)/parseFloat(e.subDivisions),o=parseFloat(this.minValue),i=0+y,l=(f=d/400)*(e.divWidth||1),w=f*(e.subWidth||1),g=[],x=c=0,h=u+1;c<h;x=c+=1)this.ctx.lineWidth=this.lineWidth*s,v=this.lineWidth/2*(1-s),S=this.radius*this.options.radiusScale+v,this.ctx.strokeStyle=a,this.ctx.beginPath(),this.ctx.arc(0,0,S,this.getAngle(o-l),this.getAngle(o+l),!1),this.ctx.stroke(),i=o+y,o+=p,x!==e.divisions&&_>0?g.push(function(){var e,t,n;for(n=[],e=0,t=_-1;e<t;e+=1)this.ctx.lineWidth=this.lineWidth*b,v=this.lineWidth/2*(1-b),S=this.radius*this.options.radiusScale+v,this.ctx.strokeStyle=m,this.ctx.beginPath(),this.ctx.arc(0,0,S,this.getAngle(i-w),this.getAngle(i+w),!1),this.ctx.stroke(),n.push(i+=y);return n}.call(this)):g.push(void 0);return g}},l.prototype.render=function(){var e,t,n,r,o,i,a,s,l,u,c,f,d,p,h,g;if(h=this.canvas.width/2,n=this.canvas.height*this.paddingTop+this.availableHeight-(this.radius+this.lineWidth/2)*this.extraPadding,e=this.getAngle(this.displayedValue),this.ctx.lineCap="butt",u=this.radius*this.options.radiusScale,this.options.staticZones)for(this.ctx.save(),this.ctx.translate(h,n),this.ctx.lineWidth=this.lineWidth,r=0,i=(c=this.options.staticZones).length;r<i;r++)l=(g=c[r]).min,this.options.limitMin&&l<this.minValue&&(l=this.minValue),s=g.max,this.options.limitMax&&s>this.maxValue&&(s=this.maxValue),p=this.radius*this.options.radiusScale,g.height&&(this.ctx.lineWidth=this.lineWidth*g.height,d=this.lineWidth/2*(g.offset||1-g.height),p=this.radius*this.options.radiusScale+d),this.ctx.strokeStyle=g.strokeStyle,this.ctx.beginPath(),this.ctx.arc(0,0,p,this.getAngle(l),this.getAngle(s),!1),this.ctx.stroke();else void 0!==this.options.customFillStyle?t=this.options.customFillStyle(this):null!==this.percentColors?t=this.getColorForValue(this.displayedValue,this.options.generateGradient):void 0!==this.options.colorStop?((t=0===this.options.gradientType?this.ctx.createRadialGradient(h,n,9,h,n,70):this.ctx.createLinearGradient(0,0,h,0)).addColorStop(0,this.options.colorStart),t.addColorStop(1,this.options.colorStop)):t=this.options.colorStart,this.ctx.strokeStyle=t,this.ctx.beginPath(),this.ctx.arc(h,n,u,(1+this.options.angle)*Math.PI,e,!1),this.ctx.lineWidth=this.lineWidth,this.ctx.stroke(),this.ctx.strokeStyle=this.options.strokeColor,this.ctx.beginPath(),this.ctx.arc(h,n,u,e,(2-this.options.angle)*Math.PI,!1),this.ctx.stroke(),this.ctx.save(),this.ctx.translate(h,n);for(this.options.renderTicks&&this.renderTicks(this.options.renderTicks,h,n,u),this.ctx.restore(),this.ctx.translate(h,n),o=0,a=(f=this.gp).length;o<a;o++)f[o].update(!0);return this.ctx.translate(-h,-n)};var u={elements:[],animId:null,addAll:function(e){var t,n,r,o;for(o=[],n=0,r=e.length;n<r;n++)t=e[n],o.push(u.elements.push(t));return o},add:function(e){if(u.elements.indexOf(e)<0)return u.elements.push(e)},run:function(e){var t,n,r,o,i,a,s;if(null==e&&(e=!1),isFinite(parseFloat(e))||!0===e){for(t=!0,s=[],r=n=0,i=(a=u.elements).length;n<i;r=++n)a[r].update(!0===e)?t=!1:s.push(r);for(o=s.length-1;o>=0;o+=-1)r=s[o],u.elements.splice(r,1);return u.animId=t?null:requestAnimationFrame(u.run)}if(!1===e)return!0===u.animId&&cancelAnimationFrame(u.animId),u.animId=requestAnimationFrame(u.run)}},c=l;t.default=c},1271:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=n(24298),i=(r=n(58960))&&r.__esModule?r:{default:r};function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u={labels:[],data:[],values:{},tree:{}};t.default=function(e,t){var n,r=(0,i.default)(e,t),a=u,l=null,c=!1,f=function(e){var n=(void 0===e?{}:e).force;if(!c||void 0!==n&&n||t.consumePayload()){var o=t.getPayload();o.data.length&&(a=o,d(),c=!0,r.trigger("groupBoxChanged",a))}},d=function(){var e=t.getPayload().all;if(0!==e.length){var n=t.getAttribute("hoverX"),o=n?t.getClosestRow(n[0]):-1;a&&(l=-1===o?e[e.length-1]:e[o],-1===o||Array.isArray(l)?r.trigger("groupBoxRowDataChanged",l):l=null)}};return s(s({},r),{},{mount:function(){f(),r.trigger("resize"),n=(0,o.unregister)(t.onAttributeChange("hoverX",d),t.on("finishFetch",(function(){return f({force:!0})})),t.on("visibleDimensionsChanged",(function(){return f({force:!0})})),t.onAttributeChange("theme",(function(){return f({force:!0})})))},unmount:function(){n&&n(),n=null},render:function(){r.render(),r.trigger("rendered")},getGroupBox:function(){return a},getGroupBoxRowData:function(){return l}})}},1630:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=a(n(58960)),o=n(24298),i=a(n(93492));function a(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n,a,s,u,c=(0,r.default)(e,t),f=function(){c.render();var e=t.getAttributes(),n=e.hoverX;if(e.loaded){var r=t.getPayload().data,o=r[n?t.getClosestRow(n[0]):r.length-1];if(Array.isArray(o)){c.render();var i=t.getAttribute("getValueRange")(t),a=i[0],l=i[1];a===s&&l===u||c.sdk.trigger("yAxisChange",t,a,l),s=a,u=l,c.trigger("rendered")}}};return l(l({},c),{},{mount:function(e){c.mount(e),a=(0,i.default)(e,(function(){return c.trigger("resize")}));var r=t.getAttributes().loaded;n=(0,o.unregister)(t.onAttributeChange("hoverX",f),!r&&t.onceAttributeChange("loaded",f)),c.trigger("resize"),f()},unmount:function(){n&&n(),a&&a(),c.unmount(),s=null,u=null},render:f})}},65777:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default={"fping.latency":"FPing Latency","fping.packets":"FPing Packets","fping.quality":"FPing Quality"}},71896:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(60677))&&r.__esModule?r:{default:r},i=n(90509),a=n(81743),s=["icon","hoverIndicator","padding"];function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=function(e){var t=e.active,n=e.disabled,r=e.defaultColor;return t?"text":n?"disabled":void 0===r?"textLite":r},d=o.default.button.attrs((function(e){var t=e.icon,n=e.hoverIndicator,r=void 0===n||n,o=e.padding,i=void 0===o?0:o,a=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,s);return u(u({},a),{},{children:t,active:a.active||a["aria-expanded"],hoverIndicator:r,padding:i})})).withConfig({displayName:"button__Button",componentId:"sc-oqiqxn-0"})(["border:initial;padding:",";height:fit-content;line-height:0;background:",";cursor:pointer;svg{fill:",";stroke:",";}"," &:hover{",";svg{fill:",";stroke:",";}}"],(function(e){return e.padding}),(function(e){var t=e.theme;return e.active?(0,i.getColor)("borderSecondary")({theme:t}):"initial"}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?"none":(0,i.getColor)(f({active:t,disabled:n}))({theme:r})}),(function(e){var t=e.active,n=e.disabled,r=e.theme;return e.stroked?(0,i.getColor)(f({active:t,disabled:n}))({theme:r}):"none"}),(function(e){var t=e.active,n=e.hoverIndicator;return(t||n)&&"\n border-radius: 4px;\n "}),(function(e){var t=e.theme,n=e.hoverIndicator,r=e.disabled;return n&&!r&&"background: "+(0,i.getColor)("mainChartTboxHover")({theme:t})+";"}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?"none":(0,i.getColor)(f({defaultColor:"text",disabled:r}))({theme:t})}),(function(e){var t=e.theme,n=e.stroked,r=e.disabled;return n?(0,i.getColor)(f({defaultColor:"text",disabled:r}))({theme:t}):"none"})),p=(0,a.withTooltip)(d);t.default=p},3701:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Button=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=l(n(2568)),i=n(10114),a=l(n(71896));t.Button=a.default;var s=["svg","size","width","height"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var f="netdata-sdk-svg",d='<svg\n id="'+f+'"\n aria-hidden="true"\n style="position: absolute; width: 0; height: 0; overflow: hidden;"\n >\n <defs />\n </svg>',p=(0,r.forwardRef)((function(e,t){var n=e.svg,a=e.size,l=void 0===a?"24px":a,u=e.width,p=void 0===u?l:u,h=e.height,g=void 0===h?l:h,v=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,s),m=(null==n?void 0:n.content)||n,y=(0,r.useMemo)((function(){return(0,o.default)(m)}),[m]);return(0,r.useEffect)((function(){if(!document.getElementById(y)){!function(){if(!document.querySelector("#"+f)){var e=document.createElement("div");e.innerHTML=d,document.body.insertBefore(e.firstChild.cloneNode(!0),document.body.firstChild)}}();var e=document.querySelector("#"+f+" defs"),t=function(e,t){var n=document.createElement("div");if(!(e=e.trim().replace(/^<symbol /i,"<svg ").replace(/<\/symbol>$/i,"</svg>")))return console.error("Couldn't find SVG: "+t+" - "+e),"";if(n.innerHTML=e,!n.firstChild)return"";var r=n.firstChild.getAttribute("viewBox"),o=n.firstChild.getAttribute("xmlns"),i=n.firstChild.getAttribute("preserveAspectRatio")||"";return n.innerHTML='<svg viewbox="'+r+'" id="'+t+'" xmlns="'+o+'" preserveAspectRatio="'+i+'">'+n.firstChild.innerHTML+"</svg>",n.firstChild}(m,y);e.appendChild(t)}}),[m]),r.default.createElement(i.StyledIcon,c({ref:t,width:p,height:g},v),r.default.createElement("use",{xlinkHref:"#"+y}))}));t.default=p},213:function(e,t,n){"use strict";t.__esModule=!0,t.getColors=t.default=void 0;var r=s(n(67294)),o=s(n(32855)),i=n(90833),a=["type","children","noBorder","title"];function s(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var u={error:{background:"errorBackground",color:"errorText"},warning:{background:"warningBackground",color:"warningText"},success:{background:["green","frostee"],color:"success"},neutral:{background:"elementBackground",color:"textLite"}},c=function(e){var t;return null!=(t=u[e])?t:u.error};t.getColors=c;var f=function(e){var t=e.type,n=e.children,s=e.noBorder,u=(e.title,function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,a)),f=c(t),d=f.background,p=f.color;return r.default.createElement(o.default,l({padding:[.2,1],background:d,round:3,border:s?void 0:{color:p,size:"1px",side:"all"},alignItems:"center","data-testid":"badge"},u),"object"===typeof n?n:r.default.createElement(i.TextMicro,{color:p,whiteSpace:"nowrap"},n))};t.default=f},40673:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=(0,n(67294).createContext)(null);t.default=r},54576:function(e,t,n){"use strict";t.__esModule=!0;var r={withChartProvider:!0};t.withChartProvider=t.default=void 0;var o=l(n(67294)),i=l(n(40673)),a=n(41145);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===a[e]||(t[e]=a[e]))}));var s=["chart"];function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e){var t=e.chart,n=e.children;return o.default.createElement(i.default.Provider,{value:t},n)};t.withChartProvider=function(e){return function(t){var n=t.chart,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,s);return o.default.createElement(u,{chart:n},o.default.createElement(e,r))}};var c=u;t.default=c},41145:function(e,t,n){"use strict";t.__esModule=!0,t.useVisibleDimensionId=t.useValue=t.useUnits=t.useUnitSign=t.useTitle=t.usePayload=t.useOnResize=t.useName=t.useLoadingColor=t.useLatestValue=t.useLatestRowValue=t.useLatestConvertedValue=t.useIsFetching=t.useInitialLoading=t.useImmediateListener=t.useFormatTime=t.useFormatDate=t.useForceUpdate=t.useEmpty=t.useDimensionIds=t.useConvertedValue=t.useConverted=t.useColor=t.useChartError=t.useChart=t.useAttributeValue=t.useAttribute=void 0;var r=n(67294),o=n(69032),i=n(24298),a=n(35890),s=c(n(65777)),l=c(n(40673)),u=["chart","id"];function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=function(){return(0,r.useContext)(l.default)};t.useChart=h;var g=function(e){return e+1},v=function(){return(0,r.useReducer)(g,0)[1]};t.useForceUpdate=v;var m=function(e,t){var n=(0,r.useMemo)(e,t);(0,r.useLayoutEffect)((function(){return n}),[n])};t.useImmediateListener=m;var y=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange(e,n)}),[t]),t.getAttribute(e)};t.useAttributeValue=y;t.useInitialLoading=function(){var e=h(),t=v();return m((function(){return e.onAttributeChange("loaded",t)}),[e]),!e.getAttribute("loaded")};t.useLoadingColor=function(e){void 0===e&&(e="themeNeutralBackground");var t=h(),n=(0,r.useState)(e),i=n[0],a=n[1],s=y("fetchStartedAt"),l=y("loading");return(0,r.useLayoutEffect)((function(){if(l){var n=(0,o.scaleLinear)().domain([0,1e3,2e3,3e3,1e5]).range([t.getThemeAttribute(e),t.getThemeAttribute(e),t.getThemeAttribute("themeLoadingStart"),t.getThemeAttribute("themeNetdata"),t.getThemeAttribute("themeNetdata")]),r=setInterval((function(){a(n(Date.now()-s))}),500);return function(){return clearInterval(r)}}a(e)}),[l,s,t]),i};t.useColor=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange("theme",n)}),[t]),t.getThemeAttribute(e)};t.useIsFetching=function(){var e=h(),t=v();return m((function(){return e.onAttributeChange("loading",t)}),[e]),e.getAttribute("loading")};t.useEmpty=function(){var e=h(),t=v();return m((function(){return e.on("finishFetch",t)}),[e]),0===e.getPayload().data.length};t.useAttribute=function(e){var t=h(),n=v(),o=function(){return t.getAttribute(e)};m((function(){return t.onAttributeChange(e,n)}),[t]);var i=(0,r.useCallback)((function(n){return t.updateAttribute(e,"function"===typeof n?n(o()):n)}),[t]);return[o(),i]};t.useTitle=function(){var e=y("title"),t=y("contextScope"),n=1===t.length&&s.default[t[0]];return n||e};t.useName=function(){var e=y("name"),t=y("contextScope");return e||t.join(", ")};t.useVisibleDimensionId=function(e){var t=h(),n=v();return m((function(){t.onAttributeChange("selectedDimensions",n),t.on("visibleDimensionsChanged",n)}),[t]),t.isDimensionVisible(e)};t.usePayload=function(){var e=h(),t=v();return m((function(){return e.on("payloadChanged",t)}),[e]),e.getPayload()};t.useChartError=function(){var e=(0,r.useState)(null),t=e[0],n=e[1],o=h(),i=v();return m((function(){var e=function(e){n(e),i()};return o.on("successFetch",(function(){return e(o.getAttribute("error"))})).on("failFetch",(function(){return e(o.getAttribute("error"))}))}),[o]),t};t.useFormatTime=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange("timezone",n)}),[t]),(0,r.useMemo)((function(){return t.formatTime(e)}),[e,t.getAttribute("timezone")])};t.useFormatDate=function(e){var t=h(),n=v();return m((function(){return t.onAttributeChange("timezone",n)}),[t]),(0,r.useMemo)((function(){return t.formatDate(e)}),[e,t.getAttribute("timezone")])};t.useOnResize=function(e){var t=h(),n=v();return m((function(){return t.getUI(e).on("resize",n)}),[e,t]),{width:t.getUI(e).getChartWidth(),height:t.getUI(e).getChartHeight(),parentWidth:t.getAttribute("width")}};t.useDimensionIds=function(){var e=h(),t=v();return m((function(){return e.on("dimensionChanged",t)}),[e]),e.getDimensionIds()};t.useUnitSign=function(e){var t=void 0===e?{}:e,n=t.long,r=t.key,o=void 0===r?"units":r,i=h(),a=v();return m((function(){return i.onAttributeChange(o+"Conversion",a)}),[i,o]),i.getUnitSign({long:n,key:o})};t.useUnits=function(e){void 0===e&&(e="units");var t=h(),n=v();return m((function(){return t.onAttributeChange(e+"Conversion",n)}),[t,e]),t.getUnits(e)};var b=function(e,t){var n=void 0===t?{}:t,o=n.valueKey,i=n.fractionDigits,s=n.unitsKey,l=void 0===s?"units":s,u=h(),c=y(l+"Conversion");return(0,r.useMemo)((function(){return null===e||"-"===e?"-":"arp"===o||"percent"===o?0===e?"-":(Math.round(100*(e+Number.EPSILON))/100).toFixed(i||2):"pa"===o?a.parts.reduce((function(t,n){var r;return(0,a.check)(e,a.enums[n])?d(d({},t),{},((r={})[n]=a.colors[n],r)):t}),{}):u.getConvertedValue(e,{fractionDigits:i,key:l})}),[u,e,o,c])};t.useConverted=b;t.useLatestRowValue=function(e){void 0===e&&(e={});var t=h(),n=(0,r.useState)(null),o=n[0],a=n[1];return(0,r.useLayoutEffect)((function(){var n=function(){var n=t.getAttribute("hoverX"),r=t.getPayload().all;if(0===r.length)return"";var o=n?t.getClosestRow(n[0]):-1;return o=-1===o?r.length-1:o,t.getVisibleDimensionIds().map((function(n){return{label:n,value:t.getDimensionValue(n,o,e),color:t.selectDimensionColor(n)}}))};return(0,i.unregister)(t.onAttributeChange("hoverX",(function(){return a(n())})),t.on("dimensionChanged",(function(){return a(n())})),t.on("render",(function(){return a(n())})))}),[t]),o};var w={latest:function(e){var t=e.chart,n=e.id,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,u),o=t.getAttribute("hoverX"),i=t.getPayload().all;if(!i.length)return null;var a=o?t.getClosestRow(o[0]):-1;a=-1===a?i.length-1:a;var s=t.getPayloadDimensionIds();return n=n||s[0],t.getDimensionValue(n,a,r)},window:function(e){var t=e.chart,n=e.id,r=e.valueKey,o=e.objKey,i=t.getAttribute(o).sts[r];if(null==i||!i.length)return null;var a=t.getPayloadDimensionIds();return n=n||a[0],i[t.getDimensionIndex(n)]},highlight:function(e){var t,n=e.chart,r=(e.id,e.valueKey,e.objKey,n.getAttribute("overlays").highlight);if(null==r||!r.range)return null;null==r||r.range;var o=null!=(t=null==r?void 0:r.moveX)?t:{};o.after,o.before}},_=function(e,t,n){void 0===t&&(t="latest");var o=void 0===n?{}:n,a=o.valueKey,s=void 0===a?"value":a,l=o.objKey,u=void 0===l?"viewDimensions":l,c=o.abs,f=o.unitsKey,d=void 0===f?"units":f,p=o.allowNull,g=h(),v=(0,r.useState)(null),m=v[0],y=v[1];return(0,r.useLayoutEffect)((function(){var n=function(){return(w[t]||w.latest)({chart:g,id:e,valueKey:s,objKey:u,abs:c,allowNull:p})};return y(n()),(0,i.unregister)(g.onAttributeChange("hoverX",(function(){return y(n())})),g.on("dimensionChanged",(function(){return y(n())})),g.onAttributeChange(d+"Conversion",(function(){return y(n())})),g.on("render",(function(){return y(n())})))}),[g,e,s,t,u,d]),m};t.useValue=_;t.useLatestValue=function(e,t){return void 0===t&&(t={}),_(e,"latest",t)};var x=function(e,t,n){void 0===t&&(t="latest"),void 0===n&&(n={});var r=_(e,t,n);return b(r,n)};t.useConvertedValue=x;t.useLatestConvertedValue=function(e,t){return void 0===t&&(t={}),x(e,"latest",d({allowNull:!0},t))}},34675:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=d(n(32855)),i=n(54576),a=d(n(213)),s=n(36657),l=d(n(30017)),u=d(n(53281)),c=["type","status"],f=["plain"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}function g(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function y(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function(){var e=(0,s.useHovered)(),t=e[0],n=e[1];return r.default.createElement(o.default,{ref:t},n?r.default.createElement(u.default,null):r.default.createElement(l.default,null))},w={type:"error",children:"Error",status:"error"},_={type:"neutral",children:"Loading",status:"loading"},x=function(e){var t=e.type,n=e.status,o=g(e,c);return t?r.default.createElement(a.default,h({type:t,"data-testid":"chartHeaderStatus-"+n},o)):null},S=function(e){var t=e.plain,n=g(e,f),a=(0,i.useInitialLoading)(),s=(0,i.useEmpty)(),l=function(e){var t=e.initialLoading,n=e.error;return(0,r.useMemo)((function(){return n?m(m({},w),{},{children:w.children+": "+n}):t?_:null}),[t,n])}({initialLoading:a,error:(0,i.useChartError)()});return r.default.createElement(o.default,h({gap:2,"data-testid":"chartHeaderStatus",basis:"0"},n),r.default.createElement(b,null),!t&&r.default.createElement(x,l),!t&&!a&&s&&!l&&r.default.createElement(x,{type:"neutral",status:"empty"},"No data"))};t.default=S},30017:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(60677)),i=n(90509),a=c(n(79962)),s=n(54576),l=c(n(3701));function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function c(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=(0,o.keyframes)(["0%{stroke-dashoffset:100;}100%{stroke-dashoffset:0;}"]),p=(0,o.css)(["stroke-dasharray:100;stroke-dashoffset:100;animation:"," 1000ms linear forwards;animation-delay:0s;animation-iteration-count:infinite;-webkit-backface-visibility:hidden;opacity:1;visibility:visible;"],d),h=(0,o.default)(l.default).withConfig({displayName:"logo__StyledIcon",componentId:"sc-1pruasp-0"})(["stroke:",";stroke-width:2;",""],(function(e){var t=e.strokeColor,n=e.theme;return(0,i.getColor)(t)({theme:n})}),(function(e){return e.isFetching&&p})),g=function(e){var t=(0,s.useIsFetching)(),n=(0,s.useLoadingColor)("border");return r.default.createElement(h,f({svg:a.default,color:"mainBackground",strokeColor:n,isFetching:t,title:t?"Playing":"Paused","data-testid":"chartHeaderStatus-logo",size:"16px"},e))};t.default=g},53281:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=c(n(67294)),i=c(n(60677)),a=(r=n(20172))&&r.__esModule?r:{default:r},s=c(n(3701)),l=n(54576);function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=(0,i.keyframes)(["from{transform:rotate(360deg);}to{transform:rotate(0);}"]),p=(0,i.css)(["animation:"," 1.6s ease-in infinite;"],d),h=(0,i.default)(s.default).withConfig({displayName:"reload__StyledIcon",componentId:"sc-hdwdmt-0"})(["",""],(function(e){return e.isLoading&&p})),g=function(e){var t=(0,l.useChart)(),n=(0,o.useState)(!1),r=n[0],i=n[1];return o.default.createElement(s.Button,f({icon:o.default.createElement(h,{svg:a.default,isLoading:r,size:"16px"}),disabled:r,onClick:function(){i(!0),t.fetch().finally((function(){return i(!1)}))},title:"Refresh","data-testid":"chartHeaderStatus-reload",tooltipProps:{open:!0},"data-track":t.track("refresh"),small:!0},e))};t.default=g},96415:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=g(n(67294)),o=p(n(47817)),i=p(n(39161)),a=p(n(51349)),s=p(n(92662)),l=p(n(84156)),u=p(n(72457)),c=p(n(21219)),f=g(n(3701)),d=n(54576);function p(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v.apply(this,arguments)}var m={color:"text",margin:[0,2,0,0],size:"16px"},y=function(e){var t=e.disabled,n=(0,d.useChart)(),p=(0,d.useAttributeValue)("chartType")||"line",h=function(e){return(0,r.useMemo)((function(){return[{value:"line",label:"Line",icon:r.default.createElement(f.default,v({svg:i.default},m)),svg:i.default,"data-track":e.track("chartType-line")},{value:"stacked",label:"Stacked",icon:r.default.createElement(f.default,v({svg:a.default},m)),svg:a.default,"data-track":e.track("chartType-stacked")},{value:"area",label:"Area",icon:r.default.createElement(f.default,v({svg:s.default},m)),svg:s.default,"data-track":e.track("chartType-area")},{value:"stackedBar",label:"Stacked Bar",icon:r.default.createElement(f.default,v({svg:u.default},m)),svg:u.default,"data-track":e.track("chartType-stackedBar")},{value:"multiBar",label:"Multi Bar",icon:r.default.createElement(f.default,v({svg:l.default},m)),svg:l.default,"data-track":e.track("chartType-multiBar")},{value:"heatmap",label:"Heatmap",icon:r.default.createElement(f.default,v({svg:c.default},m)),svg:c.default,"data-track":e.track("chartType-heatmap"),disabled:"disabled"===e.getHeatmapType()}]}),[e,e.getHeatmapType()])}(n),g=h.find((function(e){return e.value===p})),y=g.label,b=g.svg;return r.default.createElement(o.default,{value:p,items:h,dropProps:{align:{top:"bottom",right:"right"},"data-toolbox":!0},dropdownProps:{width:"130px"},onChange:n.updateChartTypeAttribute,"data-track":n.track("chartType")},r.default.createElement(f.Button,{icon:r.default.createElement(f.default,{svg:b,size:"16px"}),title:y,disabled:t,"data-testid":"chartHeaderToolbox-chartType"}))},b=(0,r.memo)(y);t.default=b},70873:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),o=u(n(25271)),i=u(n(53685)),a=n(54576),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(3701));function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function u(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var f=function(e){var t=(0,a.useChart)(),n=(0,a.useAttributeValue)("fullscreen");return r.default.createElement(s.Button,c({icon:r.default.createElement(s.default,{svg:n?i.default:o.default,size:"16px"}),onClick:t.toggleFullscreen,title:n?"Minimize":"Full screen","data-testid":"chartHeaderToolbox-fullscreen","data-track":t.track("fullscreen")},e))};t.default=f},43460:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),o=l(n(25312)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(3701)),a=n(54576);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function l(e){return e&&e.__esModule?e:{default:e}}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(this,arguments)}var c=function(e){var t=(0,a.useChart)(),n=(0,a.useAttribute)("showingInfo"),s=n[0],l=n[1];return r.default.createElement(i.Button,u({icon:r.default.createElement(i.default,{svg:o.default,size:"16px"}),title:"Information","data-testid":"chartHeaderToolbox-information",active:s,onClick:function(){return l((function(e){return!e}))},"data-track":t.track("information")},e))};t.default=c},81743:function(e,t,n){"use strict";t.__esModule=!0,t.withTooltip=t.tooltipStyleProps=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(57509),i=["children"],a=["content","Content"],s=["title"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(this,arguments)}function c(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var f={padding:[1,2],margin:[2],round:1,width:{max:"300px",base:"fit-content"},"data-toolbox":!0,background:"tooltip"};t.tooltipStyleProps=f;var d=function(e){var t=e.children,n=c(e,i);return r.default.createElement(o.Flex,u({},f,n),r.default.createElement(o.TextSmall,{color:"bright",wordBreak:"break-word"},t))},p=(0,r.forwardRef)((function(e,t){var n=e.content,i=e.Content,s=void 0===i?d:i,l=c(e,a);return r.default.createElement(o.Tooltip,u({ref:t,plain:!0,content:r.default.createElement(s,l,n)},l,{dropProps:{"data-toolbox":!0}}))}));p.defaultProps={align:"bottom"};t.withTooltip=function(e,t){return void 0===t&&(t={}),(0,r.forwardRef)((function(n,o){var i=n.title,a=c(n,s);return i?r.default.createElement(p,u({content:i,disabled:a.open},t,a.tooltipProps),r.default.createElement(e,u({ref:o},a))):r.default.createElement(e,u({ref:o},a))}))};var h=p;t.default=h},36657:function(e,t,n){"use strict";t.__esModule=!0,t.useHovered=t.default=void 0;var r=n(67294),o=function(){return!0},i=function(e,t){var n=e.onHover,i=e.onBlur,a=e.isOut,s=void 0===a?o:a,l=(0,r.useRef)();return(0,r.useLayoutEffect)((function(){if(l.current){var e=function(e){for(var t=e.relatedTarget;t&&t!==l.current&&s(t);)t=t.parentElement;t!==l.current&&s(t)&&i()};return l.current.addEventListener("mouseover",n),l.current.addEventListener("mouseout",e),function(){l.current&&(l.current.removeEventListener("mouseover",n),l.current.removeEventListener("mouseout",e))}}}),t),l};t.useHovered=function(e,t){var n=(void 0===e?{}:e).isOut;void 0===t&&(t=[]);var o=(0,r.useState)(!1),a=o[0],s=o[1];return[i({onHover:function(){return s(!0)},onBlur:function(){return s(!1)},isOut:n},t),a]};var a=i;t.default=a},35890:function(e,t){"use strict";t.__esModule=!0,t.priorities=t.parts=t.labels=t.enums=t.colors=t.check=void 0;var n={E:1,O:2,P:4};t.enums=n;var r=Object.keys(n);t.parts=r;t.check=function(e,t){return e&t};t.colors={P:"RGB(126, 189, 194)",O:"RGB(243, 223, 162)",E:"RGB(232, 185, 219)"};t.priorities={E:0,P:1,O:2};t.labels={E:"Empty data",P:"Partial data",O:"Overflow"}},91211:function(e,t){"use strict";t.__esModule=!0,t.setsAreEqual=t.filter=t.default=void 0;t.setsAreEqual=function(e,t){return e.size===t.size&&Array.from(e).every((function(e){return t.has(e)}))};var n=function(e,t){var n=t.omit,r=void 0===n?[]:n,o=t.keep,i=void 0===o?[]:o;return r.length&&i.length?e.filter((function(e){return i.length?i.includes(e):!r.includes(e)})):e};t.filter=n;var r=function e(t,r,o){if(void 0===o&&(o={}),t===r)return!0;if("object"!==typeof t||null===t||"object"!==typeof r||null===r)return!1;var i=n(Object.keys(t),o),a=n(Object.keys(r),o);if(i.length!==a.length)return!1;var s=Object.prototype.hasOwnProperty.bind(r);return!i.some((function(n){return!s(n)||t[n]!==r[n]&&!e(t[n],r[n],o)}))};t.default=r},93501:function(e,t,n){"use strict";t.__esModule=!0,t.withoutPrefix=t.useIsHeatmap=t.useGetColor=t.makeGetColor=t.isIncremental=t.isHeatmap=t.heatmapTypes=t.heatmapOrChartType=void 0;var r=n(67294),o=n(69032),i=n(54576),a={default:"default",disabled:"disabled",incremental:"incremental"};t.heatmapTypes=a;var s=function(e){return"heatmap"===(e&&"string"!==typeof e?e.getAttribute("chartType"):e)};t.isHeatmap=s;t.useIsHeatmap=function(){return"heatmap"===(0,i.useAttributeValue)("chartType")};t.isIncremental=function(e){return s(e)&&e.getAttribute("heatmapType")===a.incremental};var l=/(.+)_(\d+?\.?(\d+)?|\+[Ii]nf)$/;t.heatmapOrChartType=function(e,t){return Array.isArray(e)&&e.every((function(e){return e.match(l)}))?"heatmap":t};var u=function(e,t){void 0===t&&(t=1);var n=e.getAttribute("max"),r=function(e){return["rgba(62, 73, 137, "+e+")","rgba(49, 104, 142, "+e+")","rgba(38, 130, 142, "+e+")","rgba(31, 158, 137, "+e+")","rgba(53, 183, 121, "+e+")","rgba(110, 206, 88, "+e+")","rgba(181, 222, 43, "+e+")","rgba(253, 231, 37, "+e+")"]}(t),i=n/(r.length-1),a=(0,o.scaleLinear)().domain(Array.from({length:r.length-1},(function(e,t){return t*i}))).range(r);return function(e){return e?a(e):"transparent"}};t.makeGetColor=u;t.useGetColor=function(e){void 0===e&&(e=1);var t=(0,i.useChart)();return(0,r.useMemo)((function(){return u(t,e)}),[e])};t.withoutPrefix=function(e){return e?e.replace(/.+_(\d+?\.?(\d+)?|\+[Ii]nf)$/,"$1"):e}},18774:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e){var t=e.after,n=e.before,r=void 0===n?0:n,o=r-t;if(o<=60){var i=60-o,a=i/2;return{fixedAfter:t-a-i%2,fixedBefore:r+a}}return{fixedAfter:t,fixedBefore:r}};t.default=n},81220:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(){var e=new Set;return{add:function(t){var n;return function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];e.delete(n),clearTimeout(n),n=setTimeout((function(){return t.apply(void 0,o)})),e.add(n)}},clear:function(){return Array.from(e).forEach((function(e){return clearTimeout(e)}))}}}},10387:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(26399));function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var s="keydown",l="keyup",u={default:function(e,t){return e.size===t.size&&i(t).every((function(t){return e.has(t)||e.has(r.aliasByCode[t])}))?"all":"none"},intersection:function(e,t){if(0===t.size)return"none";var n=i(t).filter((function(t){return e.has(t)||e.has(r.aliasByCode[t])}));return e.size<=t.size&&n.length===e.size?"all":n}};t.default=function(){var e=[],t=new Set,n=function(n){var o=n.code||r.default[n.keyCode||n.which],i=n.type;if(i===s){if(t.has(o))return;t.add(o)}e.some((function(e){return e(i)})),i===l&&t.has(o)&&t.delete(o)};return{onKeyChange:function(n,r,o){var i=void 0===o?{}:o,a=i.fireOn,l=void 0===a?s:a,c=i.policy,f=i.allPressed,d=void 0===f||f,p=new Set(Array.isArray(n)?n:[n]),h=u[c]||u.intersection;e.push((function(e){if(e!==l)return!1;var n=h(p,t);return!(d&&"all"!==n||"none"===n)&&(r(),!0)}));var g=e.length-1;return function(){return e.splice(g,1)}},initKeyboardListener:function(){window.addEventListener("keydown",n),window.addEventListener("keyup",n)},clearKeyboardListener:function(){window.removeEventListener("keydown",n),window.removeEventListener("keyup",n),t=new Set},eventListener:n}}},26399:function(e,t){"use strict";t.__esModule=!0,t.default=t.codesByAlias=t.aliasByCode=void 0;t.aliasByCode={ShiftLeft:"Shift",ShiftRight:"Shift",ControlLeft:"Control",ControlRight:"Control",AltLeft:"Alt",AltRight:"Alt",MetaLeft:"Meta",MetaRight:"Meta"};t.codesByAlias={Shift:["ShiftLeft","ShiftRight"],Alt:["AltLeft","AltRight"],Control:["ControlLeft","ControlRight"],Meta:["MetaLeft","MetaRight"]};t.default={8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",48:"Digit0",49:"Digit1",50:"Digit2",51:"Digit3",52:"Digit4",53:"Digit5",54:"Digit6",55:"Digit7",56:"Digit8",57:"Digit9",65:"KeyA",66:"KeyB",67:"KeyC",68:"KeyD",69:"KeyE",70:"KeyF",71:"KeyG",72:"KeyH",73:"KeyI",74:"KeyJ",75:"KeyK",76:"KeyL",77:"KeyM",78:"KeyN",79:"KeyO",80:"KeyP",81:"KeyQ",82:"KeyR",83:"KeyS",84:"KeyT",85:"KeyU",86:"KeyV",87:"KeyW",88:"KeyX",89:"KeyY",90:"KeyZ",91:"Meta",92:"Meta",93:"ContextMenu",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",106:"NumpadMultiply",107:"NumpadAdd",109:"NumpadSubtract",110:"NumpadDecimal",111:"NumpadDivide",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",181:"VolumeMute",182:"VolumeDown",183:"VolumeUp",186:"Semicolon",187:"Equal",188:"Comma",190:"Period",191:"Slash",192:"Backquote",219:"BracketLeft",220:"Backslash",221:"BracketRight",222:"Quote"}},24298:function(e,t){"use strict";t.__esModule=!0,t.unregister=t.default=void 0;t.unregister=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(){return t.forEach((function(e){return e&&e()}))}};t.default=function(){var e={},t={},n=function(n,r){var o,i;null==(o=t[n])||o.delete(r),null==(i=e[n])||i.delete(r)},r=function e(r,o,i){void 0===i&&(i=[]),t[r]=t[r]||new Set,t[r].add(o),i.unshift((function(){return n(r,o)}));var a=function(){return i.forEach((function(e){return e()}))};return a.on=function(t,n){return e(t,n,i)},a};return{off:n,on:r,once:function(t,o){return r(t,o),e[t]=e[t]||new Set,e[t].add(o),function(){return n(t,o)}},trigger:function(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];var a=t[n];null==a||a.forEach((function(e){return e.apply(void 0,o)}));var s=e[n];null!=s&&s.size&&(t[n]=s.forEach((function(e){s.delete(e),a.delete(e)})))},offAll:function(){t={},e={}}}}},93877:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(91211))&&r.__esModule?r:{default:r};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=function(e,t){return Object.assign(t,e)};t.default=function(e,t,n){void 0===n&&(n=l);var r=new Set(t);return{updatePristine:function(t,i,s){if(r.has(i)){if(!(i in t[e])&&!(0,o.default)(t[i],s)){var l,u,c=t[e];return n(((u={})[e]=a(a({},t[e]),{},((l={})[i]=t[i],l)),u),t),c}if((0,o.default)(t[e][i],s)){var f,d=t[e],p=a({},t[e]);return delete p[i],n(((f={})[e]=p,f),t),d}}},resetPristine:function(t){var r;n(a(a({},t[e]),{},((r={})[e]={},r)),t)}}}},93492:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e,t){var n,r=!0,o=new ResizeObserver((function(){r?r=!1:(clearTimeout(n),n=setTimeout(t,200))}));return o.observe(e),function(){clearTimeout(n),o&&o.disconnect(),o=null}}},53087:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=function(e){if(/\d/.test(e))return e;var t=e.substring(1,e.length-1);return[e.charAt(0),t.replace(/([aeiou])/gi,""),e.charAt(e.length-1)].join("")},r=function(e){return e.replace(/(\w)\1+/g,"$1")},o=function(e,t){var n=Math.floor((t-3)/2);return e.substring(0,n)+"..."+e.substring(e.length-n)},i=function(e,t,n){return e.length<=n?e:e.replace(/(\w.+?|\d.+)([\s-_.@]+?)/g,(function(e,r,o){return""+(r=t(r,n))+o}))};t.default=function(e,t){if(void 0===t&&(t=60),!e)return e;if(e.length<=t)return e;var a=e.trim().match(/(.+[\s-_.@])(.+)$/);if(!a)return function(e,t){return(e=r(n(e))).length<=t?e:o(e,t)}(e,t);var s=a[1],l=a[2];return s.match(/[\s-_.@]/)?(s=i(s,n,t-l.length),s=i(s,r,t-l.length)):s=r(n(l)),(s+l).length<=t||(s+(l=r(n(l)))).length<=t?s+l:o(s+=l,t)}},97574:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e>-10&&e<10?"0"+e:""+e}},25382:function(e,t,n){"use strict";t.Z=void 0;var r=w(n(67514)),o=w(n(76081)),i=w(n(69187)),a=w(n(1630)),s=w(n(16469)),l=w(n(90026)),u=w(n(1271)),c=w(n(91213)),f=w(n(24553)),d=w(n(57799)),p=w(n(24667)),h=w(n(60518)),g=w(n(86534)),v=w(n(75211)),m=w(n(33792)),y=w(n(41578)),b=["attributes"];function w(e){return e&&e.__esModule?e:{default:e}}function _(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_(Object(n),!0).forEach((function(t){S(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function S(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.Z=function(e){void 0===e&&(e={});var t=e,n=t.attributes,w=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,b);return(0,c.default)(x({ui:{dygraph:r.default,easypiechart:o.default,gauge:i.default,groupBoxes:u.default,number:a.default,d3pie:s.default,bars:l.default},plugins:{move:h.default,unitConversion:f.default,hover:d.default,pan:p.default,highlight:g.default,select:v.default,selectVertical:m.default,play:y.default},attributes:x({_v:"v3",chartLibrary:"dygraph",navigation:"pan",after:-900,overlays:{proceeded:{type:"proceeded"}}},n)},w))}},91213:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(24298)),o=l(n(84725)),i=l(n(97966)),a=l(n(211)),s=["ui"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t,n=e.ui,l=e.plugins,u=void 0===l?{}:l,f=e.attributes,d=e.on,p=void 0===d?{}:d,h=(0,r.default)(),g={ui:n},v={},m=function(e,t){v[e]=t(_)},y=function(e){return(0,i.default)(c({sdk:_},e))},b=function(e){var t=e.getAttribute("chartLibrary")||f.chartLibrary;return t in g.ui||console.error('Chart library "'+t+'" does not exist in '+Object.keys(g.ui).join(", ")),(0,g.ui[t])(_,e)},w=function(e){return(0,o.default)(c({sdk:_},e))},_=c(c({},h),{},{getRoot:function(){return t},register:m,unregister:function(e){v[e](),delete v[e]},addUI:function(e,t){g.ui[e]=t},makeChartCore:y,makeChartUI:b,makeChart:function(e){var t=e.ui,n=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,s),r=y(n),o=b(r);return r.setUI(c(c({},o),t),"default"),r},makeContainer:w,getNode:function(e,n){return t.getNode(e,n)},getNodes:function(e,n){return t.getNodes(e,n)},appendChild:function(e,n){var r=(void 0===n?{}:n).inherit,o=void 0===r||r;return t.appendChild(e,{inherit:o})},removeChild:function(e){return t.removeChild(e)},version:function(){return g._v},ui:n});return t=w({attributes:c(c({id:"root"},a.default),f)}),Object.keys(p).forEach((function(e){return h.on(e,p[e])})),Object.keys(u).forEach((function(e){return m(e,u[e])})),_}},211:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(96415)),o=s(n(70873)),i=s(n(43460)),a=s(n(34675));function s(e){return e&&e.__esModule?e:{default:e}}var l={id:"",name:"",chartLibrary:"",theme:"default",host:"",description:"",before:0,after:0,title:"",min:0,max:0,pristineStaticValueRange:void 0,valueRange:null,staticValueRange:null,getValueRange:function(e,t){var n=(void 0===t?{}:t).dygraph,r=void 0!==n&&n;if(!e)return[null,null];var o=e.getAttributes(),i=o.min,a=void 0===i?null:i,s=o.max,l=void 0===s?null:s,u=o.valueRange,c=void 0===u?[null,null]:u,f=o.staticValueRange;if(f)return f;if(!c||null===c[0]&&null===c[1])return r?[null,null]:[a,l];var d=c[0],p=c[1];if(r){var h=e.getAttributes(),g=h.groupBy,v=h.aggregationMethod;if(g.length>1||"dimension"!==g[0]||"avg"!==v)return[null,null]}return[null===d||d>a?a:d,null===p||p<l?l:p]},loaded:!1,loading:!1,processing:!1,updatedAt:0,fetchStartedAt:0,focused:!1,active:!1,sparkline:!1,chartType:"",selectedLegendDimensions:[],contextItems:[],contextScope:[],nodesScope:[],selectedContexts:[],selectedDimensions:[],selectedLabels:[],selectedNodes:[],selectedInstances:[],dimensionIds:[],versions:{},enabledHover:!0,syncHover:!0,hoverX:null,navigation:"",enabledNavigation:!0,enabledResetRange:!0,syncPanning:!0,panning:!1,hovering:!1,syncHighlight:!0,highlighting:!1,desiredUnits:"auto",syncUnits:!1,unitsConversionMethod:"",unitsConversionDivider:-1,unitsConversionFractionDigits:0,unitsConversion:"",dbUnitsConversionMethod:"",dbUnitsConversionDivider:-1,dbUnitsConversionFractionDigits:0,dbUnitsConversion:"",temperature:"celsius",secondsAsTime:!0,timezone:void 0,syncTimezone:!0,dimensionsSort:"default",autofetch:!1,autofetchOnWindowBlur:!1,paused:!1,pixelsPerPoint:3,legend:!0,groupingMethod:"average",groupingTime:0,urlOptions:[],eliminateZeroDimensions:!0,fullscreen:!1,overlays:{},themeGridColor:["#E4E8E8","#212727"],themeCrosshair:["#536775","#536775"],showingInfo:!1,colors:[],height:"",enabledHeightResize:!0,pristineEnabledHeightResize:{},enabledXAxis:!0,enabledYAxis:!0,hasToolbox:!0,expandable:!0,hasYlabel:!0,yAxisLabelWidth:60,axisLabelFontSize:10,outOfLimits:!1,aggregationMethod:"sum",groupBy:["dimension"],groupByLabel:[],dimensionsSortBy:[{id:"contribution",desc:!0}],instancesSortBy:[{id:"contribution",desc:!0}],nodesSortBy:[{id:"contribution",desc:!0}],groupBySortBy:[],labelsSortBy:[{id:"contribution",desc:!0}],nodesExpanded:{},groupByExpanded:{},labelsExpanded:{},pristine:{},themeTrackColor:["#DBE1E1","#353F3F"],themeScaleColor:["#F7F8F8","#2B3136"],themeEasyPieTrackColor:["#DBE1E1","#353F3F"],themeEasyPieScaleColor:["#B7C2C2","#424E4E"],themeGaugePointer:["#8F9EAA","#536775"],themeGaugeStroke:["#DBE1E1","#353F3F"],themeD3pieSmallColor:["#536775","#CFD5DA"],themeD3pieStroke:["#DBE1E1","#353F3F"],themeInnerLabelColor:["#F7F8F8","#282827"],themeLabelColor:["#35414a","#ffffff"],themeBackground:["#ffffff","#282C34"],themeNeutralBackground:["#DBE1E1","#353F3F"],themeWarningBackground:["#FFCC26","#FFCC26"],themeErrorBackground:["#F95251","#F95251"],themeAnomalyScaleColor:["#9F75F9","#9F75F9"],themeGroupBoxesMin:["#E4F1FF","#000C18"],themeGroupBoxesMax:["#0075F2","#0075F2"],themeLoadingStart:["#BFE5C6","#2f5446"],themeNetdata:["#00AB44","#00AB44"],legendScroll:0,initializedFilters:!1,error:null,agent:!0,toolboxElements:[i.default,r.default,o.default],leftHeaderElements:[a.default],expanded:!1,expandedHeight:300,viewDimensions:{ids:[],names:[],count:0,priorities:[],grouped:[],algorithm:"absolute"},units:"",viewUpdateEvery:0,updateEvery:0,firstEntry:0,lastEntry:0,dimensions:[],labels:[],nodes:[],instances:[],alerts:[],weightsAction:"values",weightsTab:"window",renderedAt:null,fetchAt:null,dimensionsOnNonDimensionGrouping:null,en:{instance:{one:"instance",other:"instances"}},bearer:null,xNetdataBearer:null};t.default=l},3533:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s="*";t.default=function(e,t){var n=e.getAttributes().host,o=function(e){var t=e.getAttributes(),n=t.selectedContexts,o=t.context,a=t.nodesScope,l=t.contextScope,u=t.selectedNodes,c=t.selectedInstances,f=t.selectedDimensions,d=t.selectedLabels,p=t.aggregationMethod,h=(0,r.getChartURLOptions)(e),g=(0,r.getChartPayload)(e);return i(i({},g),{},{options:h.join("|"),contexts:(Array.isArray(n)?n.join("|"):"")||o||s,scope_contexts:(Array.isArray(l)?l.join("|"):"")||s,scope_nodes:(Array.isArray(a)?a.join("|"):"")||s,nodes:(Array.isArray(u)?u.join("|"):"")||s,instances:(Array.isArray(c)?c.join("|"):"")||s,dimensions:(Array.isArray(f)?f.join("|"):"")||s,labels:(Array.isArray(d)?d.join("|"):"")||s,"group_by[0]":(g["group_by[0]"]||e.getAttribute("groupBy")).join("|"),"group_by_label[0]":(g["group_by_label[0]"]||e.getAttribute("groupByLabel")).join("|"),"aggregation[0]":g["aggregation[0]"]||p},!!g["group_by[1]"]&&{"group_by[1]":g["group_by[1]"].join("|"),"group_by_label[1]":(g["group_by_label[1]"]||[]).join("|"),"aggregation[1]":g["aggregation[1]"]})}(e),a=new URLSearchParams(o).toString();return fetch(n+"/data?"+a,t).then((function(e){return e.json()}))}},70152:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s="*";t.default=function(e,t){var n=e.getAttributes().host,o=function(e){var t=e.getAttributes(),n=t.selectedContexts,o=t.context,a=t.nodesScope,l=t.contextScope,u=t.selectedNodes,c=t.selectedInstances,f=t.selectedDimensions,d=t.selectedLabels,p=t.aggregationMethod,h=(0,r.getChartURLOptions)(e),g=e.getAttribute("groupByLabel").join("|");return i(i({format:"json",options:h.join("|"),contexts:n.join("|")||o||s,scope_contexts:l.join("|")||s,scope_nodes:a.join("|")||s,nodes:u.join("|")||s,instances:c.join("|")||s,dimensions:f.join("|")||s,labels:d.join("|")||s,group_by:e.getAttribute("groupBy").join("|")},!!g&&{group_by_label:g}),{},{aggregation:p},(0,r.getChartPayload)(e))}(e),a=new URLSearchParams(o).toString();return fetch(n+"/weights?"+a,t).then((function(e){return e.json()}))}},41321:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111),o=["after","before","points","time_group","time_resampling","format"];function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=["*"],u=function(e){var t=e.getAttributes(),n=t.selectedContexts,i=t.context,s=t.nodesScope,u=t.contextScope,c=t.selectedNodes,f=t.selectedInstances,d=t.selectedDimensions,p=t.selectedLabels,h=t.aggregationMethod,g=(0,r.getChartURLOptions)(e),v=(0,r.getChartPayload)(e),m=v.after,y=v.before,b=v.points,w=v.time_group,_=v.time_resampling,x=v.format,S=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(v,o);return{format:x,options:g,scope:{contexts:Array.isArray(u)&&u.length?u:l,nodes:Array.isArray(s)&&s.length?s:[]},selectors:{contexts:Array.isArray(n)&&n.length?n:i?[i]:l,nodes:Array.isArray(c)&&c.length?c:l,instances:Array.isArray(f)&&f.length?f:l,dimensions:Array.isArray(d)&&d.length?d:l,labels:Array.isArray(p)&&p.length?p:l},aggregations:{metrics:[{group_by:S["group_by[0]"]||e.getAttribute("groupBy"),group_by_label:S["group_by_label[0]"]||e.getAttribute("groupByLabel"),aggregation:S["aggregation[0]"]||h},!!S["group_by[1]"]&&{group_by:S["group_by[1]"],group_by_label:S["group_by_label[1]"]||[],aggregation:S["aggregation[1]"]||"avg"}].filter(Boolean),time:{time_group:w,time_resampling:_}},window:a(a({after:m},m>0&&{before:y}),{},{points:b})}};t.default=function(e,t){var n=e.getAttributes().host,r=u(e);return fetch(n+"/data",a({method:"POST",body:JSON.stringify(r)},t)).then((function(e){return e.json()}))}},79738:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54111);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s="*";t.default=function(e,t){var n=e.getAttributes().host,o=function(e){var t=e.getAttributes(),n=t.selectedContexts,o=t.context,a=t.nodesScope,l=t.contextScope,u=t.selectedNodes,c=t.selectedInstances,f=t.selectedDimensions,d=t.selectedLabels,p=t.aggregationMethod,h=(0,r.getChartURLOptions)(e),g=e.getAttribute("groupByLabel").join("|");return i(i({format:"json",options:h.join("|"),contexts:n.join("|")||o||s,scope_contexts:l.join("|")||s,scope_nodes:a.join("|")||s,nodes:u.join("|")||s,instances:c.join("|")||s,dimensions:f.join("|")||s,labels:d.join("|")||s,group_by:e.getAttribute("groupBy").join("|")},!!g&&{group_by_label:g}),{},{aggregation:p},(0,r.getChartPayload)(e))}(e),a=new URLSearchParams(o).toString();return fetch(n+"/weights?"+a,t).then((function(e){return e.json()}))}},54111:function(e,t){"use strict";t.__esModule=!0,t.pointMultiplierByChartType=t.getChartURLOptions=t.getChartPayload=t.errorCodesToMessage=void 0;var n=["after","before","groupingMethod","groupingTime","chartLibrary","renderedAt","hovering","fetchStartedAt","chartType","pixelsPerPoint"];function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var l={groupBoxes:["group-by-labels"],default:[]};t.getChartURLOptions=function(e){var t=e.getAttributes(),n=t.eliminateZeroDimensions,r=t.urlOptions,o=void 0===r?[]:r,i=t.chartLibrary,s=l[i]||l.default;return[].concat(a(o),["jsonwrap",n&&"nonzero","flip","ms","jw-anomaly-rates","minify"],a(s)).filter(Boolean)};var u=function(e){return{"group_by[0]":e["group_by[0]"]||["instance"],"group_by_label[0]":e["group_by_label[0]"]||[],"aggregation[0]":e["aggregation[0]"]||"sum"}},c={gauge:u,easypiechart:u,number:u,default:function(e){return{"group_by[0]":e["group_by[0]"],"group_by_label[0]":e["group_by_label[0]"],"aggregation[0]":e["aggregation[0]"]}}},f={multiBar:.1,stackedBar:.1,heatmap:.7,default:.7};t.pointMultiplierByChartType=f;t.getChartPayload=function(e){var t=e.getUI(),r=e.getAttribute("width")||t.getChartWidth(),i=e.getAttributes(),a=i.after,s=i.before,l=i.groupingMethod,u=i.groupingTime,d=i.chartLibrary,p=i.renderedAt,h=i.hovering,g=i.fetchStartedAt,v=i.chartType,m=i.pixelsPerPoint,y=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(i,n),b=f[v]||f.default,w=h&&p?Math.ceil(p/1e3):Math.ceil(g/1e3),_=a>0?{after:a,before:s}:{after:w+a,before:w};return o(o(o({points:Math.round(r/m*b),format:"json2",time_group:l,time_resampling:u},_),(c[d]||c.default)(y)),!!y["group_by[1]"]&&{"group_by[1]":y["group_by[1]"],"group_by_label[1]":y["group_by_label[1]"],"aggregation[1]":y["aggregation[1]"]})};t.errorCodesToMessage={ErrAllNodesFailed:"All agents failed to return data"}},39360:function(e,t,n){"use strict";t.__esModule=!0;var r={fetchChartData:!0,fetchChartWeights:!0};t.fetchChartWeights=t.fetchChartData=void 0;var o=u(n(3533)),i=u(n(70152)),a=u(n(41321)),s=u(n(79738)),l=n(54111);function u(e){return e&&e.__esModule?e:{default:e}}Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(r,e)||e in t&&t[e]===l[e]||(t[e]=l[e]))}));t.fetchChartData=function(e,t){return e.getAttributes().agent?(0,o.default)(e,t):(0,a.default)(e,t)};t.fetchChartWeights=function(e,t){return e.getAttributes().agent?(0,i.default)(e,t):(0,s.default)(e,t)}},19285:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=n(93501),i=((r=n(72488))&&r.__esModule,["summary","functions","details","totals","db","view","result"]);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f=function e(t,n,r){var o=n[0],i=n.slice(1);return t[o]||i.length?(t[o]||(t[o]={}),t[o]=e(t[o],i,r),t):(t[o]=r,t)},d=function(e){var t=e.data.reduce((function(t,n){var r=function(e,t){return e.reduce((function(n,r,o){return n.values.push(0===o?r:r[t.value]),n.all.push(0===o?{value:r}:Object.keys(t).reduce((function(e,n){return e[n]=r[t[n]],e}),{})),o===e.length-1&&(n.values=[].concat(u(n.values),[null,null]),n.all=[].concat(u(n.all),[{},{}])),n}),{values:[],all:[]})}(n,e.point);return t.data.push(r.values),t.all.push(r.all),t}),{data:[],all:[]}),n=e.labels.reduce((function(e,t,n){if(0===n)return e;var r=t.split(",");return f(e,r,t)}),{});return s(s({labels:[].concat(u(e.labels),["ANOMALY_RATE","ANNOTATIONS"])},t),{},{tree:n})};t.default=function(e){var t=e.summary,n=t.nodes,r=void 0===n?[]:n,a=t.instances,l=void 0===a?[]:a,u=t.dimensions,c=void 0===u?[]:u,f=t.labels,p=void 0===f?[]:f,h=t.alerts,g=void 0===h?[]:h,v=e.functions,m=void 0===v?[]:v,y=e.details,b=void 0===y?{}:y,w=e.totals,_=w.contexts,x=void 0===_?{}:_,S=w.dimensions,O=void 0===S?{}:S,C=w.instances,E=void 0===C?{}:C,A=w.label_key_values,k=void 0===A?{}:A,M=w.nodes,P=void 0===M?{}:M,R=e.db,T=R.update_every,I=R.first_entry,B=R.last_entry,j=R.tiers,D=R.per_tier,L=R.dimensions,Z=R.units,N=e.view,F=N.title,H=N.update_every,V=N.units,z=N.dimensions,U=N.chart_type,G=N.min,W=N.max,q=e.result,$=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,i),Y={},X={};r.forEach((function(e){Y[e.nd||e.mg]=e,X[e.ni]=e.nd||e.mg}));var K=[],J={};c.forEach((function(e){J[e.id]=e,K.push(e.id)}));var Q=null,ee=l.reduce((function(e,t){return e[Q=t.id+"@"+(Y[X[t.ni]].nd||Y[X[t.ni]].mg)]=t,e[Q].nm=(t.nm||t.id)+"@"+Y[X[t.ni]].nm,e}),{});return s(s({},$),{},{result:d(q),updateEvery:T,viewUpdateEvery:H,firstEntry:I,lastEntry:B,units:V,chartType:(0,o.heatmapOrChartType)(z.ids,U),title:F,tiers:j,perTier:D,nodes:Y,nodesIndexes:X,instances:ee,dimensions:J,dimensionIds:K,labels:p.reduce((function(e,t){return e[t.id]=t,e}),{}),alerts:g.reduce((function(e,t){return e[t.name]=t,e}),{}),viewDimensions:z,dbDimensions:L,dbUnits:Z,details:b,functions:m,contextsTotals:x,dimensionsTotals:O,instancesTotals:E,labelsTotals:k,nodesTotals:P,min:G,max:W})}},6576:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;var n=new Set(["%","percentage","percent","rotations/min","ratio","seconds","seconds ago","milliseconds","millisec","c[CPU]","{rotation}/min","1","s","ms","log2 s","minutes","hours","interval","ticks","celsius","c","mhz","hz","volts","kwh","ampere","amps","dbm","value","stratum","units","watt","temperature","random number","rpm","quadro","adv/item","multiplier","geforce","min","h","{tick}","Cel","Hz","MHz","V","A","W","dB[mW]","1","{stratum}","Cel","[degF]","{rotation}/min"]),r=/(%|\/operation|\/run| run|\/request)/;t.default=function(e){var t=e.getUnits();if(!t)return"avg";var o=t.toLowerCase();if(n.has(t)||r.test(o))return"avg";var i=e.getUnitSign();return o=i.toLowerCase(),n.has(i)||r.test(o)?"avg":"sum"}},68735:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.getAttributes(),n=t.selectedDimensions,r=t.groupBy,o=t.dimensionsOnNonDimensionGrouping;return n.length||r.includes("dimension")?n:o||n}},24584:function(e,t,n){"use strict";t.__esModule=!0,t.stackedAggregations=t.default=void 0;var r=i(n(6576)),o=i(n(68735));function i(e){return e&&e.__esModule?e:{default:e}}t.stackedAggregations={avg:!0,sum:!0};t.default=function(e){var t=e.getAttribute("dimensionIds");return{aggregationMethod:e.getAttribute("aggregationMethod")||(0,r.default)(e),selectedDimensions:(0,o.default)(e),initializedFilters:!!t.length}}},95433:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(91211))&&r.__esModule?r:{default:r},i=u(n(54417)),a=u(n(24584)),s=n(93501);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t=e.getAttribute("chartType"),n=t,r={node:!0,instance:!0,dimension:!0},l=function(i){var s=i.filter((function(e){return e.isLabel})),l=s.map((function(e){return e.value})),u=i.reduce((function(e,t){return r[t.value]?(e.push(t.value),e):e}),[]);s.length&&u.push("label"),u.length||(u=["dimension"]),(0,o.default)(u,e.getAttribute("groupBy"))&&(0,o.default)(l,e.getAttribute("groupByLabel"))||(e.updateAttributes({groupByLabel:l,groupBy:u,processing:!0}),e.updateAttributes((0,a.default)(e)),e.fetch({processing:!0}).then((function(){return function(r){if(e.updateAttribute("selectedLegendDimensions",[]),!e.getAttribute("selectedChartType")){if(r.length>1||"dimension"!==r[0]){n=n||e.getAttribute("chartType");var o=e.getAttribute("aggregationMethod");return e.updateAttribute("chartType",a.stackedAggregations[o]?"stacked":t)}e.updateAttributes({chartType:n,processing:!0}),n=t}}(e.getAttribute("groupBy"))})))};return{updateGroupByAttribute:l,updateChartTypeAttribute:function(t){var n=e.getAttribute("groupBy");e.updateAttributes({selectedChartType:t,chartType:t,processing:!0}),(0,s.isHeatmap)(t)&&(l(["dimension"]),!(0,o.default)(n,e.getAttribute("groupBy")))||e.trigger("fetch",{processing:!0})},updateNodesAttribute:function(t){var n=t.reduce((function(e,t){return t.isInstance?e.selectedInstances.push(t.value):e.selectedNodes.push(t.value),e}),{selectedNodes:[],selectedInstances:[]}),r=n.selectedNodes,i=n.selectedInstances,a=!(0,o.default)(r,e.getAttribute("selectedNodes"));a&&e.updateAttributes({selectedNodes:r,processing:!0});var s=!(0,o.default)(i,e.getAttribute("selectedInstances"));s&&e.updateAttributes({selectedInstances:i,processing:!0}),(s||a)&&e.trigger("fetch",{processing:!0})},updateInstancesAttribute:function(t){var n=t.map((function(e){return e.value}));(0,o.default)(n,e.getAttribute("selectedInstances"))||(e.updateAttributes({selectedInstances:n,processing:!0}),e.trigger("fetch",{processing:!0}))},updateDimensionsAttribute:function(t){var n=t.map((function(e){return e.value}));(0,o.default)(n,e.getAttribute("selectedDimensions"))||(e.updateAttributes({selectedDimensions:n,processing:!0}),e.trigger("fetch",{processing:!0}))},updateLabelsAttribute:function(t){var n=t.map((function(e){return e.value}));(0,o.default)(n,e.getAttribute("selectedLabels"))||(e.updateAttributes({selectedLabels:n,processing:!0}),e.trigger("fetch",{processing:!0}))},updateAggregationMethodAttribute:function(t){e.getAttribute("aggregationMethod")!==t&&(e.updateAttributes({aggregationMethod:t,processing:!0}),e.trigger("fetch",{processing:!0}))},updateTimeAggregationMethodAttribute:function(t){var n=t.alias,r=t.method,o=n?""+r+n:r;e.getAttribute("groupingMethod")!==o&&(e.updateAttributes({groupingMethod:o,processing:!0}),e.trigger("fetch",{processing:!0}))},updateContextScopeAttribute:function(t){e.getAttribute("contextScope")[0]!==t&&(e.updateAttributes({contextScope:[t],processing:!0}),e.updateAttributes((0,a.default)(e)),e.trigger("fetch",{processing:!0}))},resetPristine:function(){var t=e.getAttributes(),n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t[i.pristineKey]);i.default.reset(t),e.attributeListeners.trigger(i.pristineKey,t[i.pristineKey],n),e.sdk.trigger("pristineChanged",e,i.pristineKey,t[i.pristineKey],n),Object.keys(n).forEach((function(r){return e.attributeListeners.trigger(r,t[r],n[r])})),e.trigger("fetch",{processing:!0})},removePristine:function(){var t=e.getAttribute(i.pristineKey),n={};e.updateAttribute(i.pristineKey,n),e.sdk.trigger("pristineChanged",e,i.pristineKey,n,t)}}}},97966:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=p(n(10387)),o=p(n(81220)),i=p(n(37876)),a=p(n(16286)),s=n(39360),l=p(n(55689)),u=p(n(95433)),c=p(n(73370)),f=p(n(34142)),d=p(n(44255));function p(e){return e&&e.__esModule?e:{default:e}}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){v(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m={default:0,dark:1},y=function(){return function(e){return e}};t.default=function(e){var t=void 0===e?{}:e,n=t.sdk,p=t.parent,h=t.getChart,v=void 0===h?s.fetchChartData:h,b=t.attributes,w=t.makeTrack,_=void 0===w?y:w,x=(0,o.default)(),S=(0,i.default)({sdk:n,parent:p,attributes:b});S.getChart=v;var O=null;S.getRoot=function(){return n.getRoot()},S.backoffMs=null,S.backoff=function(e){if(S)if(e)S.backoffMs=e;else{var t=S.backoffMs?2*S.backoffMs:S.getUpdateEvery();S.backoffMs=t>3e4?3e4:t}};var C={};S.getUpdateEvery=function(){if(S){var e=S.getAttributes(),t=e.loaded,n=e.viewUpdateEvery,r=e.updateEvery;return n?1e3*n:t?1e3*r||1e3:0}};var E=null,A=null,k=null,M=null;S.getDateWindow=function(){var e=S.getAttributes(),t=e.after,r=e.before,o=e.renderedAt,i=n.getRoot().getAttribute("fetchAt")||Date.now();return A===t&&k===o&&M===i?E:(A=t,k=o,M=i,E=t>0?[1e3*t,1e3*r]:[(o||i)+1e3*t,o||i])},S.startAutofetch=function(){if(S){var e=S.getAttributes(),t=e.fetchStartedAt,n=e.loading,r=e.autofetch,o=e.active;if(r&&!n&&o&&!S.getRoot().getAttribute("paused"))if(0!==t){var i=Date.now()-t,a=S.getUpdateEvery(),s=i/a;if(Math.floor(s)>=1)return S.lastFetch=S.getDateWindow(),void S.trigger("fetch");var l=S.backoffMs||a-Math.round((s-Math.floor(s))*a);clearTimeout(O),O=setTimeout((function(){S.startAutofetch()}),l)}else S.trigger("fetch")}},S.getUI=function(e){return void 0===e&&(e="default"),C[e]},S.setUI=function(e,t){void 0===t&&(t="default"),C[t]=e};var P=x.add((function(){return Object.keys(C).forEach((function(e){return C[e].render()}))}));S.on("render",P),S.getConvertedValue=function(e,t){var n=void 0===t?{}:t,r=n.fractionDigits,o=n.key,i=void 0===o?"units":o;if(S){if(null===e)return"-";var s=S.getAttribute(i+"ConversionMethod"),l=S.getAttribute(i+"ConversionDivider"),u=S.getAttribute(i+"ConversionFractionDigits"),c=(0,a.default)(S,s,e,l);return-1===u?c:Intl.NumberFormat(void 0,{useGrouping:!0,minimumFractionDigits:isNaN(r)?u:r,maximumFractionDigits:isNaN(r)?u:r}).format(c)}},S.focus=function(e){S&&(S.getAttribute("focused")&&S.getAttribute("hovering")||(S.updateAttributes({focused:!0}),n.trigger("hoverChart",S,e),S.trigger("hoverChart",e)))},S.blur=function(e){S&&(S.getAttribute("focused")||S.getAttribute("hovering"))&&(S.updateAttributes({focused:!1}),n.trigger("blurChart",S,e),S.trigger("blurChart",e))},S.activate=function(){S&&(S.updateAttribute("active",!0),n.trigger("active",S,!0))},S.deactivate=function(){S&&(S.updateAttribute("active",!1),n.trigger("active",S,!1))},S.getFirstEntry=function(){return S.getAttribute("firstEntry")},S.getUnits=function(){if(S)return S.getAttributes().units},S.getApplicableNodes=function(e,t){if(!S)return[];if(!S.match(e))return[S];var n=S.getAncestor(e);return n?n.getNodes(e,t):[S]},S.stopAutofetch=function(e){void 0===e&&(e=!0),clearTimeout(O),S&&e&&!S.getAttribute("active")&&S.getAttribute("loaded")&&S.getAttribute("loading")&&S.cancelFetch()},(0,l.default)(S,n),(0,c.default)(S,n),(0,d.default)(S,n),S.type="chart",(0,f.default)(S),S.track=_(S);var R=(0,r.default)(),T=R.onKeyChange,I=R.initKeyboardListener,B=R.clearKeyboardListener;T(["Alt","Shift","KeyF"],(function(){S&&S.updateAttribute("fullscreen",!S.getAttribute("fullscreen"))})),T(["Alt","Shift","KeyR"],(function(){S&&S.resetNavigation()})),S.onAttributeChange("autofetch",(function(e){S&&(e?S.startAutofetch():S.stopAutofetch(!1))})),S.onAttributeChange("active",(function(e){if(S)return e?S.getAttribute("autofetch")?S.startAutofetch():void 0:S.stopAutofetch()})),S.onAttributeChange("focused",(function(e){S&&(e?I():B(),S.invalidateClosestRowCache())})),S.makeChartUI=function(e,t){void 0===t&&(t=S.getAttribute("chartLibrary")),t in n.ui||console.error('Chart library "'+t+'" does not exist in '+Object.keys(n.ui).join(", "));var r=(0,n.ui[t])(n,S);S.setUI(r,e)},S.makeSubChart=function(e){void 0===e&&(e={});var t=n.makeChartCore(e),r=n.makeChartUI(t);return t.setUI(r,"default"),t},S.getThemeIndex=function(){if(S)return m[S.getAttribute("theme")]||m.default},S.getThemeAttribute=function(e){var t;if(S){var n=S.getAttributes(),r=S.getThemeIndex();return(null==(t=n[e])?void 0:t[r])||e}};return S.intl=function(e,t){var n,r;if(void 0===t&&(t=1),!S)return e;var o=S.getAttribute("en");return null!=o&&o[e]?1===t?(null==(n=o[e])?void 0:n.one)||e:(null==(r=o[e])?void 0:r.other)||e+"s":1===t?e:e+"s"},g(g(g({},S),(0,u.default)(S)),{},{destroy:function(){S&&(x&&x.clear(),S.destroy(),S.stopAutofetch(),B(),Object.keys(C).forEach((function(e){return C[e].unmount()})),setTimeout((function(){C=null,S=null}),2e3),S.destroy())},onKeyChange:T})}},73370:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(39360),o=l(n(14933)),i=l(n(24584)),a=l(n(19285)),s=["result","chartType","versions"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d={labels:[],data:[],all:[],tree:{}};t.default=function(e){var t=null,n=d,l=null;e.lastFetch=[null,null],e.getPayload=function(){return n},(0,o.default)(e),e.cancelFetch=function(){return t&&t.abort()};var u=function(){e&&(e.startAutofetch(),e.trigger("finishFetch"),e.trigger("render"))};e.doneFetch=function(t){e.backoffMs=0,setTimeout((function(){var n=(0,a.default)(t),r=n.result,o=n.chartType,p=n.versions,h=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(n,s),g=l,v=function(e){var t=(e||d).data;return(null==t?void 0:t.length)||0}(l=r);e.consumePayload(),e.invalidateClosestRowCache(),!e.getAttribute("loaded")&&e.getParent()&&e.getParent().trigger("chartLoaded",e);var m=e.getAttributes();e.updateAttributes(c(c({loaded:!0,loading:!1,processing:!1,updatedAt:Date.now(),outOfLimits:!v,chartType:m.selectedChartType||m.chartType||o},h),{},{versions:p,title:m.title||h.title,error:null})),e.updateDimensions(),e.getAttribute("initializedFilters")||e.setAttributes((0,i.default)(e)),e.trigger("successFetch",l,g),f(p),u()}))};var f=function(t){var n=t.alerts_hard_hash,r=t.alerts_soft_hash,o=t.contexts_hard_hash,i=t.contexts_soft_hash,a=t.nodes_hard_hash;if(e){var s=e.getParent();s&&s.updateAttribute("versions",{alertsHardHash:n,alertsSoftHash:r,contextsHardHash:o,contextsSoftHash:i,nodesHardHash:a})}},p=function(t){e&&("AbortError"!==(null==t?void 0:t.name)?(e.backoff(),e.trigger("failFetch",t),!e.getAttribute("loaded")&&e.getParent()&&e.getParent().trigger("chartLoaded",e),e.updateAttributes({loaded:!0,loading:!1,processing:!1,updatedAt:Date.now(),error:r.errorCodesToMessage[null==t?void 0:t.errorMessage]||(null==t?void 0:t.errorMessage)||(null==t?void 0:t.message)||"Something went wrong"}),u()):e.updateAttribute("loading",!1))};e.fetch=function(n){var r=(void 0===n?{}:n).processing,o=void 0!==r&&r;if(e){if(e.cancelFetch(),e.updateAttributes({processing:o,loading:!0,fetchStartedAt:Date.now()}),e.trigger("startFetch"),!function(){if(!e)return!1;var t=e.getAttributes(),n=t.firstEntry,r=t.after,o=t.before;return!n||n<=(r>=0?o:Date.now()/1e3)}())return Promise.resolve().then((function(){return p({message:"Exceeds agent data retention settings"})}));var i=c({signal:(t=new AbortController).signal},(e.getAttribute("bearer")||e.getAttribute("xNetdataBearer"))&&{headers:c({},e.getAttribute("bearer")?{Authorization:"Bearer "+e.getAttribute("bearer")}:{"X-Netdata-Auth":"Bearer "+e.getAttribute("xNetdataBearer")})});return e.getChart(e,i).then((function(t){var n;return null!=t&&t.errorMsgKey?p(t):Array.isArray(null==t?void 0:t.result)||Array.isArray(null==t||null==(n=t.result)?void 0:n.data)?e.doneFetch(t):p()})).catch(p)}},e.consumePayload=function(){if(n===l||null===l)return!1;var t=n;return n=l,e&&e.trigger("payloadChanged",l,t),!0},e.on("fetch",e.fetch)}},55689:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(88577))&&r.__esModule?r:{default:r},i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(91211)),a=n(93501);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.default=function(e,t){var n=[],r={},s=[],u=[],c={},f=new Set,d=0,p=["sum"];e.isSparkline=function(){return e.getAttribute("sparkline")},e.getHeatmapType=function(){return e.getAttribute("heatmapType")},e.getPayloadDimensionIds=function(){if(e.isSparkline())return p;var t=e.getAttribute("viewDimensions");return l((null==t?void 0:t.ids)||[])};var h={default:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort((function(t,n){return e.getDimensionPriority(t)-e.getDimensionPriority(n)}))},nameAsc:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort((function(t,n){return e.getDimensionName(t).localeCompare(e.getDimensionName(n))}))},nameDesc:function(t){return void 0===t&&(t=e.getPayloadDimensionIds),t().sort((function(t,n){return e.getDimensionName(n).localeCompare(e.getDimensionName(t))}))},valueDesc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().data;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(r,n)-e.getDimensionValue(t,n)}))},valueAsc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().data;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(t,n)-e.getDimensionValue(r,n)}))},anomalyDesc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(r,n,{valueKey:"arp"})-e.getDimensionValue(t,n,{valueKey:"arp"})}))},anomalyAsc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(t,n,{valueKey:"arp"})-e.getDimensionValue(r,n,{valueKey:"arp"})}))},annotationsDesc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(r,n,{valueKey:"pa"})-e.getDimensionValue(t,n,{valueKey:"pa"})}))},annotationsAsc:function(t,n){void 0===t&&(t=e.getPayloadDimensionIds);var r=e.getPayload().all;return n=n||r.length-1,t().sort((function(t,r){return e.getDimensionValue(t,n,{valueKey:"pa"})-e.getDimensionValue(r,n,{valueKey:"pa"})}))}},g=function(){var t=e.getAttribute("selectedLegendDimensions");u=t.length?s.filter((function(n){return t.includes(n)||t.includes(e.getDimensionName(n))})):s,c=u.reduce((function(e,t,n){return e[t]=n,e}),{});var n=f;f=new Set(u),(0,i.setsAreEqual)(f,n)||e.trigger("visibleDimensionsChanged")};e.sortDimensions=function(){var t=e.getAttribute("dimensionsSort");s=(h[t]||h.default)(),g(),s&&e.trigger("dimensionChanged")},e.onHoverSortDimensions=function(t,n){return void 0===n&&(n=e.getAttribute("dimensionsSort")),((0,a.isHeatmap)(e)?h.default:h[n]||h.default)((function(){return l(e.getVisibleDimensionIds())}),t)};var v=function(){var t=e.getAttribute("colors"),n=d++%(t.length+o.default.length);return n<t.length?"number"===typeof t[n]?o.default[t[n]]:t[n]:o.default[n-t.length]};e.updateDimensions=function(){var t=e.getPayloadDimensionIds();if(!(0,i.default)(n,t)){n=t;var o=1===e.getAttribute("groupBy").length&&"dimension"===e.getAttribute("groupBy")[0],s=null;r=t.reduce((function(t,n,r){if(o&&!e.getHeatmapType()){var i,l=null==(i=n.match(/(.+)_(\d+?\.?(\d+)?|\+[Ii]nf)$/))?void 0:i[1];e.setAttribute("heatmapType",s&&l!==s||!l?a.heatmapTypes.disabled:null),s===l&&e.setAttribute("heatmapType",a.heatmapTypes[s]||a.heatmapTypes.incremental),s=l}return t[n]=r,t}),{}),o?/latency/.test(e.getAttribute("context"))&&e.setAttribute("heatmapType",a.heatmapTypes.default):e.setAttribute("heatmapType",null),e.sortDimensions(),e.updateColors()}},e.getDimensionIndex=function(e){return r[e]},e.getDimensionIds=function(){return s},e.getVisibleDimensionIds=function(){return u},e.getVisibleDimensionIndexesById=function(){return c},e.isDimensionVisible=function(e){return f.has(e)};var m=null;e.selectDimensionColor=function(n){void 0===n&&(n="selected");var r=function(){if(m)return m;var t=e.getAttributes(),n=t.colors,r=t.contextScope,o=t.id;return m=n.length?e.getAttribute("id"):(r[0]||o).split(".")[0]}(),o=e.getAttribute("colors");if(e.isSparkline()&&o&&1===o.length)return o[0];var i="selected"===n;n=!n||i?e.getAttribute("selectedDimensions")[0]:n;var a=i&&null!=o&&o.length?o[0]:t.getRoot().getNextColor(v,r,n),s=e.getThemeIndex();return"string"===typeof a?a:a[s]},e.getDimensionName=function(t){var n=e.getAttribute("viewDimensions");return null!=n&&n.names?(0,a.isHeatmap)(e)?(0,a.withoutPrefix)(n.names[r[t]]):n.names[r[t]]:""},e.getDimensionPriority=function(t){var n=e.getAttribute("viewDimensions");return null!=n&&n.priorities?n.priorities[r[t]]:0},e.getRowDimensionValue=function(t,n,o){var i=void 0===o?{}:o,s=i.valueKey,l=void 0===s?"value":s,u=i.abs,c=void 0===u||u,f=i.incrementable,d=void 0===f||f,p=i.allowNull,h=void 0!==p&&p,g=null==n?void 0:n[r[t]+1];if("undefined"===typeof g)return null;if(g=null!==g&&"object"===typeof g?g[l]:g,g=h&&null===g?g:c?Math.abs(g):g,d&&(0,a.isIncremental)(e)){var v=e.getVisibleDimensionIndexesById()[t],m=e.getVisibleDimensionIds()[v-1];g-=e.getRowDimensionValue(m,n,{valueKey:l,abs:c,incrementable:!1,allowNull:h})||0}return g},e.getDimensionValue=function(t,n,r){void 0===r&&(r={});var o=e.getPayload().all[n];return e.getRowDimensionValue(t,o,r)},e.toggleDimensionId=function(t,n){var r=(void 0===n?{}:n).merge,o=void 0!==r&&r,i=e.getAttribute("selectedLegendDimensions");if(i.length)if(e.isDimensionVisible(t)){var a=i.filter((function(e){return e!==t}));e.updateAttribute("selectedLegendDimensions",a.length?o?a:[t]:[])}else{var s=o?[].concat(l(i),[t]):[t];e.updateAttribute("selectedLegendDimensions",s)}else e.updateAttribute("selectedLegendDimensions",o?e.getDimensionIds().filter((function(e){return e!==t})):[t])},e.onAttributeChange("dimensionsSort",e.sortDimensions),e.onAttributeChange("selectedLegendDimensions",g),e.updateColors=function(){var t=e.getAttribute("dimensionIds");t.length&&(e.isSparkline()?p:t).forEach(e.selectDimensionColor)}}},14933:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=-1,n=-1;e.invalidateClosestRowCache=function(){t=-1,n=-1};e.getClosestRow=function(r){return t===r||(t=r,n=function(t){var n=e.getPayload().data;if(0===n.length)return-1;if(t<n[0][0])return 0;if(t>n[n.length-1][0])return n.length-1;for(var r=0,o=n.length-1;r<o;){var i=Math.floor((r+o)/2);if(n[i][0]===t)return i;n[i][0]<t?r=i+1:o=i-1}return r}(r)),n}}},34142:function(e,t,n){"use strict";t.__esModule=!0,t.unitMap=t.default=void 0;var r;(r=n(72488))&&r.__esModule;var o={"active connections":"a-con",arrays:"arrays","calls/s":"c/s",Celsius:"cels",charts:"charts","connected clients":"con-c","connections/s":"c/s",containers:"cont","context switches/s":"co-sw",dBm:"dBm",descriptors:"descr",difference:"dif","drops/s":"d/s",entropy:"entr","errors/s":"err/s",events:"events","events/s":"e/s","faults/s":"f/s","files/s":"f/s","frames/s":"f/s",GiB:"GiB","gigabits/s":"gb/s",inodes:"inodes","interrupts/s":"i/s",KiB:"KiB","KiB/operation":"Kib/op","KiB/s":"KiB/s","kilobits/s":"kb/s",load:"load","merged operations/s":"m-o/s","messages/s":"m/s",metrics:"metrics",MHz:"MHz",MiB:"MiB","MiB/s":"MiB/s","megabits/s":"mb/s","microseconds lost/s":"\xb5s l/s","milliseconds/operation":"ms/o","milliseconds/request":"ms/r","milliseconds/run":"ms/run","milliseconds/s":"ms/s",nanoseconds:"ns",microseconds:"\xb5s",milliseconds:"ms",ms:"ms","% of time working":"%time","open files":"o-f","open pipes":"o-p","open sockets":"o-s","operations/s":"ops/s","packets/s":"p/s","page faults/s":"p-f/s",pages:"pages",percentage:"%",pcent:"%",percent:"%",processes:"prc","processes/s":"prc/s","reads/s":"read/s","reports/s":"rep/s","requests/s":"req/s","Rotations/min":"rot/min",seconds:"secs",minutes:"mins",hours:"hrs",days:"d","duration (minutes, seconds)":"mins:secs","duration (hours, minutes)":"hrs:mins","duration (days, hours)":"d:hrs","duration (months, days)":"m-d","duration (years, months)":"Y-m",segments:"segm",semaphores:"semph",sockets:"socket","softirqs/s":"s-irq/s",state:"state",status:"status",threads:"thr",value:"value",Volts:"V",Watt:"W",bits:"b",bytes:"B",kilobytes:"KB",megabytes:"MB",gigabytes:"GB",terabytes:"TB",petabytes:"PB",exabytes:"EB",zettabytes:"ZB",yottabytes:"YB","bits/s":"b/s","bytes/s":"B/s","kilobytes/s":"KB/s","megabytes/s":"MB/s","gigabytes/s":"GB/s","terabytes/s":"TB/s","petabytes/s":"PB/s","exabytes/s":"EB/s","zettabytes/s":"ZB/s","yottabytes/s":"YB/s"};t.unitMap=o;var i=/num\s\(([fpn\u03bcmcAhkMGTPE])\)?\s(.+)?/;t.default=function(e){return e.getUnitSign=function(t){var n=void 0===t?{}:t,r=n.long,a=void 0!==r&&r,s=n.key,l=void 0===s?"units":s,u=n.withoutConversion,c=void 0!==u&&u;if(c)return e.getAttribute("units");var f=c?e.getAttribute(l):e.getAttribute(l+"Conversion"),d="";if(i.test(f)){var p=f.match(i);d=p[1]&&"A"!==p[1]?p[1]+" ":"",f=p[2]}return f&&"undefined"!==f&&"null"!==f?""+d+(a?f:o[f]||f):""}}},44255:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;(r=n(88577))&&r.__esModule,function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=a(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=o?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=e[i]}r.default=e,n&&n.set(e,r)}(n(91211));var r,o=n(39360),i=["result"];function a(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:t})(e)}var s=function(e){var t=e.nodes;e.point;return Object.keys(t).reduce((function(e,t){var n=transformDataRow(t,result.point,stats);return e.push(n),e}),{})};t.default=function(e,t){var n=null,r=function(t){var n=s(t);n.result,function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n])}(n,i);e.updateAttributes({weightsLoading:!1,error:null}),e.trigger("weights:finishFetch")},a=function(t){e&&("AbortError"!==(null==t?void 0:t.name)?(e.updateAttributes({weightsLoading:!1,weightsError:(null==t?void 0:t.errorMessage)||(null==t?void 0:t.message)||"Something went wrong"}),e.trigger("weights:finishFetch")):e.updateAttribute("weightsLoading",!1))};return{weights:{},fetchWeights:function(){if(e){return n&&n.abort(),e.trigger("weights:startFetch"),e.updateAttributes({weightsLoading:!0}),function(){var t={signal:(n=new AbortController).signal};return(0,o.fetchChartWeights)(e,t).then((function(e){return r(e)})).catch(a)}()}}}}},88577:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=[["#3366CC","#66AA00"],["#DC3912","#FE3912"],["#109618","#3366CC"],["#FF9900","#D66300"],["#990099","#0099C6"],["#DD4477","#DDDD00"],["#3B3EAC","#5054e6"],["#66AA00","#EE9911"],["#0099C6","#BB44CC"],["#B82E2E","#e45757"],["#AAAA11","#ef0aef"],["#5574A6","#CC7700"],["#994499","#22AA99"],["#22AA99","#109618"],["#6633CC","#905bfd"],["#E67300","#f54882"],["#316395","#4381bf"],["#8B0707","#ff3737"],["#329262","#329262"],["#3B3EAC","#3B3EFF"]]},58960:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=i(n(24298)),o=i(n(81220));function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e,t){var n=(0,r.default)(),i=(0,o.default)(),a=null,l=t.getDateWindow()[1],u=function(){return l=t.getDateWindow()[1]};t.on("visibleDimensionsChanged",i.add(u));return s(s({},n),{},{sdk:e,chart:t,mount:function(n){a=n,e.trigger("mountChartUI",t)},unmount:function(){e.trigger("unmountChartUI",t),n.offAll(),a=null,i&&i.clear()},render:u,getRenderedAt:function(){return l},getElement:function(){return a},getChartWidth:function(){return a?a.offsetWidth:800},getChartHeight:function(){return a?a.offsetHeight:300}})}},84725:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(37876))&&r.__esModule?r:{default:r};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t=void 0===e?{}:e,n=t.sdk,r=t.parent,i=t.attributes,s=(0,o.default)({sdk:n,parent:r,attributes:i}),l=[],u=function(e,t,n){void 0===n&&(n=null);var r=n?l:[f];return n=n||[],r.forEach((function(r){var o=r.match(e);!o&&null!=t&&t.inherit||(o&&n.push(r),"container"===r.type&&r.getNodes(e,t,n))})),n},c={};s.type="container",s.getApplicableNodes=function(e,t){if(!s.match(e))return[f];var n=s.getAncestor(e);return n?n.getNodes(e,t):u(e,t)};var f=a(a({},s),{},{destroy:function(){s&&(s.destroy(),l.forEach((function(e){return e.destroy()})),l=[],c={},setTimeout((function(){return s=null}),2e3))},appendChild:function(e,t){var r=(void 0===t?{}:t).inherit,o=void 0===r||r;e.setParent(f,{inherit:o}),l.push(e),f.trigger("nodeAdded",e),n.trigger("nodeAdded",f,e),f.trigger(e.type+"Added",e),n.trigger(e.type+"Added",f,e)},removeChild:function(e){l=l.filter((function(t){return t.getId()!==e})),f.trigger("nodeRemoved",s),n.trigger("nodeRemoved",f,s),f.trigger(s.type+"Removed",s),n.trigger(s.type+"Removed",f,s)},getNode:function(e,t,n){var r;return void 0===n&&(n=[f]),n.some((function(n){var o=n.match(e);if(o||null==t||!t.inherit)return o?(r=n,!0):!("container"!==n.type||!(r=n.getNode(e,t,l)))||void 0})),r},getNodes:u,getChildren:function(){return l},getNextColor:function(e,t,n){t in c||(c[t]={});var r=c[t];if(n in r)return r[n];var o=e();return r[n]=o,o},getRoot:function(){return n.getRoot()}});return f}},78647:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.default=void 0;var i={hourCycle:"h23",weekday:"short",year:"numeric",month:"short",day:"2-digit"},a={hourCycle:"h23",month:"2-digit",day:"2-digit"},s={hourCycle:"h23",timeStyle:"medium"},l=function(e){return e>-10&&e<10?"0"+e.toString():e.toString()};t.default=function(){var e,t,n,o=function(t){return e.format(t)};return{update:function(o){try{!function(o){e=new Intl.DateTimeFormat(navigator.language,r(r({},s),{},{timeZone:o})),n=new Intl.DateTimeFormat(navigator.language,r(r({},i),{},{timeZone:o})),t=new Intl.DateTimeFormat(navigator.language,r(r({},a),{},{timeZone:o}))}(o)}catch(u){n={format:function(e){return new Date(e).toLocaleDateString()}},e={format:function(e){return new Date(e).toLocaleTimeString()}},t={format:function(e){var t=new Date(e);return[t.getHours(),t.getMinutes(),t.getSeconds()].map(l).join(":")}}}},formatTime:o,formatDate:function(e){return n.format(e)},formatXAxis:function(e){return 0===e.getHours()&&0===e.getMinutes()&&0===e.getSeconds()?t.format(e):o(e)},destroy:function(){e=null,t=null,n=null}}}},37876:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(67429),o=c(n(24298)),i=c(n(93877)),a=c(n(18774)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(54417)),l=c(n(78647));function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.default=function(e){var t=e.sdk,n=e.parent,u=void 0===n?null:n,c=e.attributes,f=(0,o.default)(),p=(0,o.default)(),h=d({id:(null==c?void 0:c.id)||(0,r.v4)()},c),g=function(e,t){h[e]=t},v=function(e){return h[e]},m=function(){return h.id},y=function(e,t,n){return p.trigger(e,t,n)},b=function(e,n){if(h){var r=h[e];if(r!==n){var o=s.default.update(h,e,n);g(e,n),y(e,n,r),o&&(y(s.pristineKey,h[s.pristineKey],o),t.trigger("pristineChanged",s.pristineKey,j,n,r))}}},w=function(){return h},_=function(e){var n=null,r=Object.keys(e).reduce((function(t,r){var o=e[r],i=h[r];if(i===o)return t;var a=s.default.update(h,r,o);return a&&!n&&(n=a),g(r,o),t[r]=i,t}),{});Object.keys(r).forEach((function(t){return y(t,e[t],r[t])})),n&&(y(s.pristineKey,h[s.pristineKey],n),t.trigger("pristineChanged",s.pristineKey,j,h[s.pristineKey],n))},x=function(e,t){return p.on(e,t)},S=function(e,t){var n=(void 0===t?{}:t).inherit;u=e,(void 0===n||n)&&e&&P()},O=(0,l.default)(),C=O.update,E=O.formatTime,A=O.formatDate,k=O.formatXAxis,M=O.destroy,P=function(){var e=u.getAttributes();h=d(d(d({},e),h),{},{overlays:d(d({},e.overlays),h.overlays)}),C(h.timezone)},R=function(e,n){void 0===n&&(n=0);var r=(0,a.default)({after:e,before:n}),o=r.fixedAfter,i=r.fixedBefore;t.trigger("moveX",j,Math.floor(o),Math.floor(i))},T=function(e){var t=w(),n=t.after,r=t.before;if(n<0){var o=Date.now()/1e3;n=o+n,r=o}var i=e*Math.round((r-n)/4);R(n+i,r-i)},I=function(){var e=v("pristineStaticValueRange");void 0!==e&&(b("pristineStaticValueRange",void 0),b("staticValueRange",e))},B=(0,i.default)("pristineEnabledHeightResize",["enabledHeightResize"],_);C(v("timezone")),x("timezone",C);S(u);var j=d(d({attributeListeners:p},f),{},{sdk:t,setAttribute:g,getAttribute:v,updateAttribute:b,setAttributes:function(e){return Object.keys(e).forEach((function(t){return g(t,e[t])}))},getAttributes:w,updateAttributes:_,onAttributeChange:x,onAttributesChange:function(e,t){return e.reduce((function(e,n){return e?e.on(n,t):p.on(n,t)}),null)},onceAttributeChange:function(e,t){return p.once(e,t)},match:function(e){return"function"===typeof e?e(j,h):!e||!h||!Object.keys(e).some((function(t){return e[t]!==h[t]}))},setParent:S,getParent:function(){return u},getId:m,getAncestor:function(e){for(var t=j,n=null;null!=(r=t.getParent())&&r.match(e);){var r;n=t.getParent(),t=n}return n},inherit:P,updateHeight:function(e){b("height",e),t.trigger("heightChanged",j,e)},updateStaticValueRange:function(e){if(void 0===v("pristineStaticValueRange")){var t=v("staticValueRange");b("pristineStaticValueRange",t)}b("staticValueRange",e)},resetStaticValueRange:I,toggleFullscreen:function(){var e=v("fullscreen");if(!e)return B.updatePristine(h,"enabledHeightResize",!1),b("enabledHeightResize",!1),void b("fullscreen",!e);B.resetPristine(h),b("fullscreen",!e)},moveY:function(e,n){t.trigger("moveY",j,e,n)},moveX:R,zoomIn:function(){return T(1)},zoomOut:function(){return T(-1)},resetNavigation:function(){var e=v("pristineStaticValueRange");if(v("enabledResetRange"))return void 0!==e?I():void R(-900)},destroy:function(){u&&u.removeChild(m()),f.offAll(),p.offAll(),setTimeout((function(){return u=null}),2e3),M()},formatTime:E,formatDate:A,formatXAxis:k});return j}},86534:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightStart",(function(e){"highlight"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),n=e.on("highlightEnd",(function(e,t){if("highlight"===e.getAttribute("navigation")){var n=function(e){var t=(e.getAncestor({syncHighlight:!0})||e).getAttribute("after");if(t>0)return null;var n=Math.floor(Date.now()/1e3);return{after:n+t,before:n}}(e);e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){var o=function(e,t){var n=e.getAttributes(),o=n.overlays,i=n.after,a=n.before;if(t)return r(r({},o),{},{highlight:{range:t,type:"highlight",moveX:{after:i,before:a}}});var s=r({},o);return delete s.highlight,s}(e,t);e.updateAttributes(r({enabledHover:!0,highlighting:!1,overlays:o},n))}))}}));return function(){t(),n()}}},57799:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){return e.on("highlightHover",(function(e,t,n){e.getApplicableNodes({syncHover:!0}).forEach((function(e){return e.updateAttribute("hoverX",[t,n])}))})).on("highlightBlur",(function(e){e.getApplicableNodes({syncHover:!0}).forEach((function(e){return e.updateAttribute("hoverX",null)}))})).on("hoverChart",(function(t){t.getApplicableNodes({syncHover:!0}).forEach((function(e){e.getAttribute("hovering")||t.getRoot().getAttribute("paused")||e.updateAttributes({hovering:!0,renderedAt:t.getAttribute("after")<0?t.getUI().getRenderedAt():t.getAttribute("before")})})),e.trigger("play:hoverChart",t)})).on("blurChart",(function(t){t.getApplicableNodes({syncHover:!0}).forEach((function(e){t.getRoot().getAttribute("paused")||e.updateAttributes({hovering:!1,renderedAt:null})})),e.trigger("play:blurChart",t)}))}},60518:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t;return e.on("moveX",(function(e,t,n){var r=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=!0),e<0?{after:e,before:t}:n&&t>Math.ceil(Date.now()/1e3)?{after:Math.floor(e-t+1),before:0}:{after:Math.floor(e),before:Math.ceil(t)}}(t,n,e.getAttribute("autoPlay"));e.getApplicableNodes({syncPanning:!0}).forEach((function(e){e.updateAttributes(r),e.getAttribute("active")||e.updateAttribute("loaded",!1)}))})).on("moveY",(function(e,n,r){e.updateStaticValueRange([n,r]);var o=e.getAttribute("after");if(o<0){var i=Date.now()/1e3-1;e.moveX(i+o,i)}t&&t(),t=e.onAttributeChange("after",(function(n){n>0||(e.resetStaticValueRange(),t())}))}))}},24667:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("panStart",(function(e){e.getApplicableNodes({syncPanning:!0}).forEach((function(e){return e.updateAttributes({enabledHover:!1,panning:!0})}))})),n=e.on("panEnd",(function(e,t){var n=t[0],r=t[1];e.moveX(n/1e3,r/1e3),e.getApplicableNodes({syncPanning:!0}).forEach((function(e){return e.updateAttributes({enabledHover:!0,panning:!1})}))}));return function(){t(),n()}}},41578:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t,n=function n(){!e.getRoot().getAttribute("paused")&&e.getRoot().getAttribute("after")<0&&e.getRoot().setAttribute("fetchAt",Date.now()),e.getNodes((function(t,n){var r=n.loaded,o=n.active;return"chart"===t.type&&r&&o&&!e.getRoot().getAttribute("paused")})).forEach((function(e){return e.trigger("render")})),t=setTimeout(n,1e3)},r=function(e){clearTimeout(t),t=null,e&&n()},o=function(e,t){var n=void 0===t?{}:t,r=n.now,o=void 0===r?new Date:r,i=n.force,a=void 0!==i&&i,s=e.getAttributes(),l=s.after,u=s.hovering,c=s.active,f=s.loaded,d=s.fetchStartedAt,p=l<0&&!u&&!e.getRoot().getAttribute("paused");if("container"===e.type)return e.updateAttribute("autofetch",p);p=p&&c,e.updateAttribute("autofetch",p);var h=e.lastFetch,g=h[0],v=h[1],m=e.getDateWindow(),y=m[0],b=m[1];if(c&&!p&&(a||f&&(g!==y||v!==b))){if(d&&o-e.getUpdateEvery()<=d)return;e.lastFetch=[y,b],e.trigger("fetch")}},i=function(){e.getRoot().updateAttribute("paused",!e.getRoot().getAttribute("autofetchOnWindowBlur")),r(e.getRoot().getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),e.getNodes().forEach((function(e){return o(e)}))},a=function(){e.getRoot().updateAttribute("paused",!1),r(e.getRoot().getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),e.getNodes().forEach((function(e){return o(e)}))};window.addEventListener("blur",i),window.addEventListener("focus",a);var s=e.on("active",(function(t){r(t.getAttribute("after")<0&&!t.getAttribute("hovering")&&!e.getRoot().getAttribute("paused")),o(t,{force:!0})})).on("play:hoverChart",(function(t){r(!1),e.getRoot().getAttribute("paused")||t.getApplicableNodes({syncHover:!0}).forEach((function(e){return o(e,{now:t.getAttribute("renderedAt")})}))})).on("play:blurChart",(function(t){t.getRoot().getAttribute("paused")||(r(t.getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),t.getApplicableNodes({syncHover:!0}).forEach((function(e){return o(e)})))})).on("moveX",(function(t){r(t.getAttribute("after")<0&&!e.getRoot().getAttribute("paused")),t.getApplicableNodes({syncPanning:!0}).forEach((function(e){e.setAttributes({viewUpdateEvery:0,updateEvery:0}),o(e)}))}));return e.getRoot().onAttributeChange("paused",(function(){return e.getNodes().forEach((function(e){return o(e)}))})),function(){s(),window.removeEventListener("blur",i),window.removeEventListener("focus",a)}}},75211:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightStart",(function(e){"select"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),n=e.on("highlightEnd",(function(e,t){if("select"===e.getAttribute("navigation")&&(e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!0,highlighting:!1})})),null!==t)){var n=t[0],r=t[1];e.moveX(n,r)}}));return function(){t(),n()}}},33792:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.on("highlightVerticalStart",(function(e){"selectVertical"===e.getAttribute("navigation")&&e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!1,highlighting:!0})}))})),n=e.on("highlightVerticalEnd",(function(e,t){if("selectVertical"===e.getAttribute("navigation")&&(e.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttributes({enabledHover:!0,highlighting:!1})})),null!==t)){var n=t[0],r=t[1];e.moveY(n,r)}}));return function(){t(),n()}}},21666:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(78775)),o=a(n(99980)),i=a(n(16286));a(n(72488));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var l=function(e,t,n,r){var i=o.default[e];if("auto"!==r&&r in i)return["divide",i[r],r];var a=Math.abs(t),s=Math.abs(n),l=a>s?a:s,u=Object.keys(i).reverse().find((function(e){return l>=i[e]}));return u?["divide",i[u],"num"===e?u+" "+r:u]:["original"]},u=function(e,t,n,i){var a=e.getAttributes().desiredUnits;return"original"===a?["original"]:r.default[t]?function(e,t,n,o){var i=r.default[t];if("auto"!==o)return o in i?[(0,r.makeConversableKey)(t,o),void 0,o]:["original"];var a=Object.keys(i),s=a.findIndex((function(t){return i[t].check(e,n)}));if(-1===s)return["original"];var l=a[s];return[(0,r.makeConversableKey)(t,l),void 0,l]}(e,t,i,a):o.default[t]?l(t,n,i,a):"percentage"===t||"percent"===t||"pcent"===t||/%/.test(t||"")?["original"]:l("num",n,i,t)},c=[1e3,100,10,1,.1,.01,.001],f=function(e,t,n,r,o){void 0===o&&(o=5);var a=e.getAttribute(t),s=u(e,a,n,r),l=s[0],f=s[1],d=s[2],p=void 0===d?a:d,h=(0,i.default)(e,l,n,f),g=(0,i.default)(e,l,r,f),v=Math.abs(h===g?h:g-h),m="original"===l||"divide"===l?function(e){var t=c.findIndex((function(t){return e>t})),n=-1===t?c.length-1:t;return 3===n?4:n}(v):-1;return{method:l,divider:f,units:p,fractionDigits:m>o?o:m}};t.default=f},24553:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,o=(r=n(21666))&&r.__esModule?r:{default:r};var i=function(e,t,n,r){void 0===t&&(t="units");var i,a=(0,o.default)(e,t,n,r),s=a.method,l=a.divider,u=a.units,c=a.fractionDigits,f=e.getAncestor({syncUnits:!0});if(!f||"original"===s)return e.updateAttributes(((i={})[t+"ConversionMethod"]=s,i[t+"ConversionDivider"]=l,i[t+"Conversion"]=u,i[t+"ConversionFractionDigits"]=c,i));var d=f.getAttribute(t+"ConversionDivider"),p=function(){var n;e.updateAttributes(((n={})[t+"ConversionMethod"]=s,n[t+"ConversionDivider"]=l,n[t+"Conversion"]=u,n[t+"ConversionFractionDigits"]=c,n))};if(l>d)return e.getApplicableNodes({syncUnits:!0}).forEach((function(n){var r;if(n===e)return p();n.updateAttributes(((r={})[t+"ConversionMethod"]=s,r[t+"ConversionDivider"]=l,r[t+"Conversion"]=u,r))}));p()};t.default=function(e){return e.on("yAxisChange",(function(e,t,n){i(e,"units",t,n),i(e,"dbUnits",t,n),e.updateAttributes({min:t,max:n})}))}},54417:function(e,t,n){"use strict";t.__esModule=!0,t.pristineKey=t.default=void 0;var r,o=(r=n(93877))&&r.__esModule?r:{default:r};var i="pristine";t.pristineKey=i;var a=(0,o.default)(i,["aggregationMethod","groupBy","groupByLabel","groupingMethod","groupingTime","chartType","selectedDimensions","selectedLabels","selectedNodes","selectedInstances"]),s={update:a.updatePristine,reset:a.resetPristine};t.default=s},78775:function(e,t,n){"use strict";t.__esModule=!0,t.makeConversableKey=t.default=void 0;var r,o=(r=n(97574))&&r.__esModule?r:{default:r};t.makeConversableKey=function(e,t){return e+"-"+t};var i={check:function(e){return"fahrenheit"===e.getAttribute("temperature")},convert:function(e){return 9*e/5+32}},a=function(e,t,n){void 0===n&&(n="MS");var r=Math.abs(e),i=Math.floor(r/86400),a="DAYS"===t?i+"d":"";r-=86400*i;var s=Math.floor(r/3600),l=(0,o.default)(s);if("DAYS"===t)return a+":"+l;r-=3600*s;var u=Math.floor(r/60),c=(0,o.default)(u);return"HOURS"===t?l+":"+c:(r-=60*u,c+":"+(0,o.default)("MS"===n?r.toFixed(2):Math.round(r)))},s=function(e){return void 0===e&&(e=1),function(t){return(t*e).toFixed(2)}},l={Celsius:{Fahrenheit:i},celsius:{fahrenheit:i},milliseconds:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1},convert:s(1e3)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<1e3},convert:s()},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<6e4},convert:s(.001)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=6e4&&t<36e5},convert:function(e){return a(e/1e3,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=36e5&&t<864e5},convert:function(e){return a(e/1e3,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=864e5},convert:function(e){return a(e/1e3,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e6},convert:function(e){return a(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e6},convert:function(e){return a(e,"DAYS")}}},ms:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1},convert:s(1e3)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<1e3},convert:s()},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<6e4},convert:s(.001)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=6e4&&t<36e5},convert:function(e){return a(e/1e3,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=36e5&&t<864e5},convert:function(e){return a(e/1e3,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=864e5},convert:function(e){return a(e/1e3,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e6},convert:function(e){return a(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e6},convert:function(e){return a(e,"DAYS")}}},seconds:{microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<.001},convert:s(1e6)},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=.001&&t<1},convert:s(1e3)},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1&&t<60},convert:s(1)},"duration (minutes, seconds)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=60&&t<3600},convert:function(e){return a(e,"MINUTES")}},"duration (hours, minutes)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=3600&&t<86400},convert:function(e){return a(e,"HOURS")}},"duration (days, hours)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=86400},convert:function(e){return a(e,"DAYS")}},"duration (months, days)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=2592e3},convert:function(e){return a(e,"DAYS")}},"duration (years, months)":{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=31104e3},convert:function(e){return a(e,"DAYS")}},"dHH:MM:ss":{check:function(){return!1},convert:function(e){return a(e,"DAYS","SECONDS")}}},nanoseconds:{nanoseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t<1e3},convert:function(e){var t=Math.round(10*e);return t-=10*(e=Math.floor(t/10)),e+"."+(0,o.default)(t)}},microseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e3&&t<1e6},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3);return e-=1e3*t,e=Math.round(e/10),t+"."+(0,o.default)(e)}},milliseconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e6&&t<1e9},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3/1e3);return e-=1e3*t*1e3,e=Math.round(e/1e3/10),t+"."+(0,o.default)(e)}},seconds:{check:function(e,t){return e.getAttribute("secondsAsTime")&&t>=1e9},convert:function(e){e=Math.round(e);var t=Math.floor(e/1e3/1e3/1e3);return e-=1e3*t*1e3*1e3,e=Math.round(e/1e3/1e3/10),t+"."+(0,o.default)(e)}}}};t.default=l},16286:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(78775));function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=a(a({},Object.keys(r.default).reduce((function(e,t){return Object.keys(r.default[t]).forEach((function(n){e[(0,r.makeConversableKey)(t,n)]=function(e,o){return r.default[t][n].convert(o,e)}})),e}),{})),{},{original:function(e,t){return t},divide:function(e,t,n){return t/n}});t.default=function(e,t,n,r){return(l[t]||l.original)(e,n,r)}},99980:function(e,t){"use strict";t.__esModule=!0,t.default=void 0;t.default={"packets/s":{pps:1,Kpps:1e3,Mpps:1e6,Gpps:1e9,Tpps:1e12,Ppps:1e15,Epps:1e18},pps:{pps:1,Kpps:1e3,Mpps:1e6,Gpps:1e9,Tpps:1e12,Ppps:1e15,Epps:1e18},"kilobits/s":{"bits/s":.001,"kilobits/s":1,"megabits/s":1e3,"gigabits/s":1e6,"terabits/s":1e9,"petabits/s":1e12,"exabits/s":1e12},"bytes/s":{"bytes/s":1,"kilobytes/s":1024,"megabytes/s":1048576,"gigabytes/s":1073741824,"terabytes/s":1099511627776,"petabits/s":0x4000000000000,"exabits/s":0x1000000000000000},"kilobytes/s":{"bytes/s":1/1024,"kilobytes/s":1,"megabytes/s":1024,"gigabytes/s":1048576,"terabytes/s":1073741824,"petabits/s":1099511627776,"exabits/s":0x4000000000000},"B/s":{"B/s":1,"KiB/s":1024,"MiB/s":1048576,"GiB/s":1073741824,"TiB/s":1099511627776,"PiB/s":0x4000000000000,"EiB/s":0x1000000000000000},"KB/s":{"B/s":1/1024,"KB/s":1,"MB/s":1024,"GB/s":1048576,"TB/s":1073741824,"PB/s":1099511627776,"EB/s":0x4000000000000},"KiB/s":{"B/s":1/1024,"KiB/s":1,"MiB/s":1024,"GiB/s":1048576,"TiB/s":1073741824,"PiB/s":1099511627776,"EiB/s":0x4000000000000},bytes:{bytes:1,kilobytes:1024,megabytes:1048576,gigabytes:1073741824,terabytes:1099511627776,petabytes:0x4000000000000,exabytes:0x1000000000000000},B:{B:1,KiB:1024,MiB:1048576,GiB:1073741824,TiB:1099511627776,PiB:0x4000000000000,EiB:0x1000000000000000},KB:{B:1/1024,KB:1,MB:1024,GB:1048576,TB:1073741824,PB:1099511627776,EB:0x4000000000000},KiB:{B:1/1024,KiB:1,MiB:1024,GiB:1048576,TiB:1073741824,PiB:1099511627776,EiB:0x4000000000000},MB:{B:1/1048576,KB:1/1024,MB:1,GB:1024,TB:1048576,PB:1073741824,EB:1099511627776},MiB:{B:1/1048576,KiB:1/1024,MiB:1,GiB:1024,TiB:1048576,PiB:1073741824,EiB:1099511627776},GB:{B:1/1073741824,KB:1/1048576,MB:1/1024,GB:1},GiB:{B:1/1073741824,KiB:1/1048576,MiB:1/1024,GiB:1,TiB:1024,PiB:1048576,EiB:1073741824},"[CPU]":{"m[CPU]":.001,"c[CPU]":.01,"[CPU]":1},"c[CPU]":{"m[CPU]":.1,"c[CPU]":1,"[CPU]":100},"m[CPU]":{"m[CPU]":1,"c[CPU]":10,"[CPU]":1e3},HZ:{HZ:1,MHz:1e3,GHz:1e6},MHz:{HZ:.001,MHz:1,GHz:1e3},GHz:{HZ:1e-6,MHz:.001,GHz:1},"By/s":{"By/s":1,"KiBy/s":1024,"MiBy/s":1048576,"GiBy/s":1073741824},"KiBy/s":{"By/s":1/1024,"KiBy/s":1,"MiBy/s":1024,"GiBy/s":1048576},By:{By:1,KiBy:1024,MiBy:1048576,GiBy:1073741824},KiBy:{By:1/1024,KiBy:1,MiBy:1024,GiBy:1048576},MiBy:{By:1/1048576,KiBy:1/1024,MiBy:1,GiBy:1024},GiBy:{By:1/1073741824,KiBy:1/1048576,MiBy:1/1024,GiBy:1,TB:1024,PB:1048576,EB:1073741824},num:{"num (f)":1e-15,"num (p)":1e-12,"num (n)":1e-9,"num (\u03bc)":1e-6,"num (m)":.001,"num (A)":1,"num (k)":1e3,"num (M)":1e6,"num (G)":1e9,"num (T)":1e12,"num (P)":1e15,"num (E)":1e18,"num (Z)":1e21,"num (Y)":1e24}}},82633:function(e,t,n){"use strict";n.r(t);var r,o,i,a=n(60677),s=n(32855),l=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},u=function(){return u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},u.apply(this,arguments)},c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},f=(0,a.keyframes)(r||(r=l(["\n 0% {\n opacity: 0.5;\n transform: scale(0.8);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n"],["\n 0% {\n opacity: 0.5;\n transform: scale(0.8);\n }\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n"]))),d=(0,a.css)(o||(o=l(["\n opacity: 0;\n animation: "," 0.1s forwards;\n animation-delay: 0.01s;\n"],["\n opacity: 0;\n animation: "," 0.1s forwards;\n animation-delay: 0.01s;\n"])),f),p=(0,a.default)(s.default).attrs((function(e){var t=e.zIndex,n=void 0===t?6e4:t,r=c(e,["zIndex"]);return u({zIndex:n,position:"fixed"},r)}))(i||(i=l(["\n left: -99999px;\n\n ","\n ","\n ","\n\n backface-visibility: hidden;\n perspective: 1000;\n transform: translate3d(0, 0, 0);\n will-change: left, top, transform;\n"],["\n left: -99999px;\n\n ","\n ","\n ","\n\n backface-visibility: hidden;\n perspective: 1000;\n transform: translate3d(0, 0, 0);\n will-change: left, top, transform;\n"])),(function(e){return e.animation&&d}),(function(e){return!e.hideShadow&&"box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);"}),(function(e){return!!e.noEvents&&"pointer-events: none;"}));t.default=p},24724:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var r,o=n(67294),i=n(73935),a=n(91183),s=n(86321),l=n(44175),u=n(11557),c=n(88006),f=n(86518),d=n(82633),p=n(54113),h=n(60677),g=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},v=function(){return v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},v.apply(this,arguments)},m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},y=h.default.div(r||(r=g(["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n z-index: 50000;\n ",";\n}\n"],["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n z-index: 50000;\n ",";\n}\n"])),p.Z),b={top:"bottom",left:"left"},w=(0,o.forwardRef)((function(e,t){var n=e.backdrop,r=void 0!==n&&n,p=e.target,h=e.align,g=void 0===h?b:h,w=e.stretch,_=void 0===w?"width":w,x=e.onClickOutside,S=e.onEsc,O=e.children,C=e.canHideTarget,E=void 0===C||C,A=e.keepHorizontal,k=m(e,["backdrop","target","align","stretch","onClickOutside","onEsc","children","canHideTarget","keepHorizontal"]),M=(0,u.default)(t),P=M[0],R=M[1],T=(0,f.default)(p,P,g,_,E,A);(0,o.useLayoutEffect)((function(){T()}),[T]),function(e,t){(0,o.useEffect)((function(){var n,r=function(){var n=(0,c.Z)(e).filter((function(e){return e.scrollHeight>e.clientHeight}));return n.forEach((function(e){return e.addEventListener("scroll",t,{capture:!1,passive:!0})})),function(){return n.forEach((function(e){return e.removeEventListener("scroll",t)}))}};n=r();var o=function(){n(),n=r(),t()};return window.addEventListener("resize",o),function(){n(),window.removeEventListener("resize",o)}}),[e,t])}(p,T),(0,l.Z)(P,x,p),(0,s.Z)(S);var I=(0,a.default)();return i.createPortal(r?o.createElement(o.Fragment,null,o.createElement(d.default,v({ref:R,width:{max:"100%"},column:!0,"data-testid":"drop"},k),O),o.createElement(y,null)):o.createElement(d.default,v({ref:R,width:{max:"100%"},column:!0,"data-testid":"drop"},k),O),I)}))},86518:function(e,t,n){"use strict";n.r(t);var r=n(67294),o=function(e,t,n,r){void 0===r&&(r=!0);var i=function(e,t,n){return"left"===e.left?t.left:"right"===e.left?t.right:"right"===e.right?t.right-n.width:"left"===e.right?t.left-n.width:t.left+t.width/2-n.width/2}(e,t,n),a=Math.max(0,i);return i=Math.min(window.innerWidth-n.width,a),r||a===i?i:o(function(e){return"left"===e.left?{right:"right"}:"right"===e.left?{right:"left"}:"right"===e.right?{left:"left"}:"left"===e.right?{left:"right"}:void 0}(e),t,n)},i=function(e,t,n,r){void 0===r&&(r=!0);var o=function(e,t,n){if("top"===e.top)return t.top;if("bottom"===e.top)return t.bottom;if("bottom"===e.bottom)return t.bottom-n.height;if("top"===e.bottom){var r=t.top-n.height;return r<0&&t.bottom+n.height<window.innerHeight?t.bottom:r}return t.top+t.height/2-n.height/2}(e,t,n),a=Math.max(0,o);return o=Math.min(window.innerHeight-n.height,a),r||a===o?o:i(function(e){return"top"===e.top?{bottom:"bottom"}:"bottom"===e.top?{bottom:"top"}:"bottom"===e.bottom?{top:"top"}:"top"===e.bottom?{top:"bottom"}:void 0}(e),t,n)},a=["top","right","bottom","right","width"];t.default=function(e,t,n,s,l,u){return(0,r.useCallback)((function(){if(t.current){a.forEach((function(e){return t.current.style[e]=""}));var r=e.getBoundingClientRect(),c=t.current.getBoundingClientRect(),f=function(e,t,n){return"align"===e?Math.min(t.width,n.width):"width"===e?Math.max(t.width,n.width):Math.min(n.width,window.innerWidth)}(s,r,c);c.width=f;requestAnimationFrame((function(){var e=o(n,r,c,l),a=i(n,r,c,l);t.current&&(u&&t.current.style.left||(t.current.style.left="".concat(e,"px")),t.current.style.top="".concat(a,"px"),s&&(t.current.style.width="".concat(f,"px")))}))}}),[e,n,s])}},51586:function(e,t,n){"use strict";var r,o=n(67294),i=n(60677),a=n(71059),s=n(32855),l=n(37807),u=n(65588),c=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},f=function(){return f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},f.apply(this,arguments)},d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},p=(0,i.default)(s.default)(r||(r=c(["\n ","\n list-style-type: none;\n"],["\n ","\n list-style-type: none;\n"])),(function(e){return!e.hideShadow&&"box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);"})),h=function(){return 28};t.Z=function(e){var t=e.hideShadow,n=e.itemProps,r=e.items,i=e.onItemClick,c=e.dropTitle,g=e.dropTitlePadding,v=void 0===g?[3,3,0]:g,m=e.Item,y=e.Footer,b=e.value,w=e.hasSearch,_=e.searchMargin,x=void 0===_?[4]:_,S=e.gap,O=void 0===S?0:S,C=e.estimateSize,E=void 0===C?h:C,A=e.close,k=d(e,["hideShadow","itemProps","items","onItemClick","dropTitle","dropTitlePadding","Item","Footer","value","hasSearch","searchMargin","gap","estimateSize","close"]),M=(0,o.useState)(""),P=M[0],R=M[1],T=(0,o.useMemo)((function(){if(!P)return r;var e=P.toLowerCase();return r.filter((function(t){var n=t.label,r=t.value;return!("string"!==typeof n||!n.toLowerCase().includes(e))||!("string"!==typeof r||!r.toLowerCase().includes(e))}))}),[r,P]),I=(0,o.useCallback)((function(e){R(e.target.value)}),[R]),B=(0,o.useRef)(),j=(0,a.MG)({count:T.length,getScrollElement:function(){return B.current},scrollOffsetFn:function(e){return e?e.target.scrollTop-B.current.offsetTop:0},overscan:3,enableSmoothScroll:!1,estimateSize:E});return o.createElement(p,f({as:"ul",role:"listbox",background:"dropdown",hideShadow:t,padding:[0],margin:[1,0],column:!0,tabindex:"-1",width:"auto"},k),c&&o.createElement(s.default,{padding:v},c),w&&o.createElement(u.Z,{margin:x},o.createElement(l.Z,{"data-testid":"dropdown-search",defaultValue:P,placeholder:"Search",onChange:I,size:"tiny"})),o.createElement("div",{ref:B,style:{height:"100%",overflow:"auto"}},o.createElement("div",{style:{minHeight:"".concat(j.getTotalSize(),"px"),width:"100%",position:"relative"}},j.getVirtualItems().map((function(e){return o.createElement("div",{key:e.key,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),padding:2*O,overflow:"hidden"},"data-index":e.index,ref:j.measureElement},o.createElement(m,{item:T[e.index],index:e.index,itemProps:n,value:b,onItemClick:i,close:A}))})))),y&&o.createElement(y,{close:A}))}},91970:function(e,t,n){"use strict";n.r(t),n.d(t,{ItemContainer:function(){return d}});var r,o=n(67294),i=n(60677),a=n(50757),s=n(32855),l=n(90833),u=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},c=function(){return c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c.apply(this,arguments)},f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=(0,i.default)(s.default).attrs({as:"li",role:"option",padding:[1,4]})(r||(r=u(["\n cursor: ",";\n opacity: ",";\n alignitems: ",";\n pointer-events: ",";\n\n &:hover {\n background-color: ",";\n }\n"],["\n cursor: ",";\n opacity: ",";\n alignitems: ",";\n pointer-events: ",";\n\n &:hover {\n background-color: ",";\n }\n"])),(function(e){var t=e.cursor;return null!==t&&void 0!==t?t:"pointer"}),(function(e){return e.disabled?.4:1}),(function(e){var t=e.alignItems;return null!==t&&void 0!==t?t:"center"}),(function(e){return e.disabled?"none":"auto"}),(function(e){return(0,a.Lq)("borderSecondary")(e)}));t.default=function(e){var t=e.item,n=t.value,r=t.label,i=t.icon,a=t.reverse,s=t.disabled,u=t.onClick,p=f(t,["value","label","icon","reverse","disabled","onClick"]),h=e.value,g=e.onItemClick,v=e.index,m=e.style,y=f(e,["item","value","onItemClick","index","style"]),b=h===n;return o.createElement(d,c({"data-index":v,"aria-selected":b,disabled:s||b,onClick:function(e){u&&u(e),g(n)}},p,y,{style:m}),a&&o.createElement(l.TextSmall,null,r),i,!a&&o.createElement(l.TextSmall,null,r))}},47817:function(e,t,n){"use strict";n.r(t);var r=n(67294),o=n(24724),i=n(88719),a=n(88006),s=n(11557),l=n(62928),u=n(84309),c=n(51586),f=n(91970),d=function(){return d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},d.apply(this,arguments)},p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},h=(0,r.forwardRef)((function(e,t){var n=e.value,h=e.onChange,g=e.onOpen,v=e.onClose,m=e.closeOnClick,y=void 0===m||m,b=e.open,w=void 0!==b&&b,_=e.icon,x=void 0===_?null:_,S=e.label,O=e.caret,C=void 0===O||O,E=e.children,A=e.dropProps,k=e.dropdownProps,M=e.itemProps,P=e.items,R=e.Item,T=void 0===R?f.default:R,I=e.Footer,B=e.Dropdown,j=void 0===B?c.Z:B,D=e.animation,L=e.dropTitle,Z=e.dropTitlePadding,N=e.hasSearch,F=void 0!==N&&N,H=p(e,["value","onChange","onOpen","onClose","closeOnClick","open","icon","label","caret","children","dropProps","dropdownProps","itemProps","items","Item","Footer","Dropdown","animation","dropTitle","dropTitlePadding","hasSearch"]),V=(0,l.Z)(w,{on:g,off:v}),z=V[0],U=V[1],G=V[3],W=(0,s.default)(t),q=W[0],$=W[1],Y=(0,r.useCallback)((function(e){h&&h(e),y&&G()}),[h]),X=(0,r.useCallback)((function(e){q.current===e.target||(0,a.Z)(e.target).some((function(e){return e===q.current}))||G()}),[G]),K=(0,i.Z)(E,$,d({onClick:U,"aria-haspopup":"listbox","aria-expanded":z,open:z},H)),J=(0,r.useMemo)((function(){if(S)return S;if(K)return K;var e=P.find((function(e){return e.value===n}));return null===e||void 0===e?void 0:e.label}),[S,K,P,n]);return r.createElement(r.Fragment,null,K||r.createElement(u.Z,d({ref:$,icon:x,label:J,caret:C,onClick:U,open:z},H)),z&&q.current&&r.createElement(o.Z,d({animation:D,onEsc:G,onClickOutside:X,hideShadow:!0,target:q.current},A),r.createElement(j,d({dropTitle:L,dropTitlePadding:Z,value:n,onItemClick:Y,items:P,itemProps:M,Item:T,Footer:I,hasSearch:F,close:G},k))))}));t.default=h},84309:function(e,t,n){"use strict";var r,o=n(67294),i=n(60677),a=n(32855),s=n(11597),l=n(90833),u=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},c=function(){return c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c.apply(this,arguments)},f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=(0,i.default)(a.default)(r||(r=u(["\n cursor: pointer;\n"],["\n cursor: pointer;\n"]))),p=(0,o.forwardRef)((function(e,t){var n=e.open,r=e.icon,i=e.label,u=e.caret,p=f(e,["open","icon","label","caret"]);return o.createElement(d,c({gap:2,padding:[2,4],justifyContent:"between",alignItems:"center",role:"button",tabindex:"0","aria-haspopup":"listbox","aria-expanded":n,ref:t},p),o.createElement(a.default,{alignItems:"center",gap:2},r,"string"===typeof i?o.createElement(l.Text,null,i):i),!0===u?o.createElement(s.JO,{name:"chevron_down",color:"text",width:"12px",height:"12px",rotate:n?2:null}):u)}));t.Z=p},88006:function(e,t){"use strict";t.Z=function(e){var t=[];for(e=e.parentNode;e;)t.push(e),e=e.parentNode;return t}},88719:function(e,t,n){"use strict";var r=n(67294),o=n(13692),i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)};t.Z=function(e,t,n){return(0,r.useMemo)((function(){if(void 0===e||null===e)return e;if("function"===typeof e)return e(i({ref:function(e){return(0,o.Z)(t,e)}},n));var a=function(e){return 1!==r.Children.count(e)?r.Children.only(e):(0,r.isValidElement)(e)?e:r.createElement("span",null,e)}(e);return(0,r.cloneElement)(a,i(i({},n),{ref:function(e){(0,o.Z)(t,e),(0,o.Z)(a.ref,e)}}))}),[e,n.open])}},54922:function(e,t,n){"use strict";n.r(t),n.d(t,{LoaderIcon:function(){return u}});var r,o=n(67294),i=n(60677),a=n(50757),s=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},l=i.default.svg(r||(r=s(["\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n"],["\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n"])),(0,a.Lq)("bright"),(0,a.Lq)("bright")),u=function(e){var t=e.className;return o.createElement(l,{className:t,viewBox:"0 0 21 17",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{className:"path",stroke:"none",strokeWidth:"1",fill:"none",fillRule:"evenodd"},o.createElement("path",{d:"M2,1 C8.25086152,1 11.9367136,1 13.0575562,1 C14.73882,1 19.6834591,2 19.9614325,7.72050108 C20.239406,13.4410022 15.7459591,15.1224845 13.6463763,15.1224845 C12.2466545,15.1224845 10.0279195,15.1224845 6.9901715,15.1224845 L2,1 Z",id:"Path-2",strokeWidth:"2"})))}},46345:function(e,t,n){"use strict";n.d(t,{J:function(){return l}});var r=n(67294),o=n(33981),i=n(10114),a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)},s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},l=(0,r.forwardRef)((function(e,t){var n=e.name,l=e.className,u=e.size,c=e.disabled,f=void 0!==c&&c,d=s(e,["name","className","size","disabled"]),p=o.e[n];if(!p)return null;var h,g=u||((h=n).endsWith("_s")?"small":h.endsWith("_l")?"large":"medium");return r.createElement(i.StyledIcon,a({viewBox:p.viewBox},d,{size:g,className:l,disabled:f,ref:t}),r.createElement("use",{xlinkHref:"#".concat(p.id)}))}))},33981:function(e,t,n){"use strict";n.d(t,{e:function(){return Tf}});var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"add_node",use:"add_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="add_node"><path d="M4.25 6.25h1v-1h-1v1ZM3.375 8.5h11c.759 0 1.375-.616 1.375-1.375v-3.75c0-.759-.616-1.375-1.375-1.375h-11C2.616 2 2 2.616 2 3.375v3.75C2 7.884 2.616 8.5 3.375 8.5Zm.125-5h10.75V7H3.5V3.5Zm1.75 10v-1h-1v1h1ZM3.5 10.75h12.25v-.125c0-.759-.616-1.375-1.375-1.375h-11C2.616 9.25 2 9.866 2 10.625v3.75c0 .759.616 1.375 1.375 1.375H10.5v-1.5h-7v-3.5Zm12.25 3.5V12h-1.5v2.25H12v1.5h2.25V18h1.5v-2.25H18v-1.5h-2.25Z" /></symbol>'}),l=(a().add(s),s),u=new(o())({id:"add_user",use:"add_user-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="add_user"><path d="M11.5 5C11.5 2.519 9.481.5 7 .5A4.505 4.505 0 0 0 2.5 5c0 1.217.49 2.32 1.278 3.13C1.902 8.584.5 10.266.5 12.279V15.5H2v-3.221A2.779 2.779 0 0 1 4.779 9.5H7c2.481 0 4.5-2.019 4.5-4.5ZM7 8a3 3 0 1 1 0-6 3 3 0 0 1 0 6Zm5.75 4.25V10h-1.5v2.25H9v1.5h2.25V16h1.5v-2.25H15v-1.5h-2.25Z" /></symbol>'}),c=(a().add(u),u),f=new(o())({id:"aggregation_avg",use:"aggregation_avg-usage",viewBox:"0 0 16 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 12" id="aggregation_avg"><path d="M15.75 4c0-.41-.34-.75-.75-.75H3.81l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L.19 4.75H15c.41 0 .75-.34.75-.75ZM1 7.25c-.41 0-.75.34-.75.75s.34.75.75.75h11.19l-1.72 1.72c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l4.28-4.28H1Z" /></symbol>'}),d=(a().add(f),f),p=new(o())({id:"aggregation_max",use:"aggregation_max-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_max"><path d="M10.03.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06L10.94 4H4.71C2.11 4 0 6.11 0 8.71V16h1.5V8.71c0-1.77 1.44-3.21 3.21-3.21h6.73L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 5 10.03.97Z" /></symbol>'}),h=(a().add(p),p),g=new(o())({id:"aggregation_med",use:"aggregation_med-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_med"><path d="M.75 0H0v1.5h.75V0ZM0 14h.75v-1.5H0V14ZM3.53 0H2.14v1.5h1.39V0ZM2.14 14h1.39v-1.5H2.14V14ZM6.31 0H4.92v1.5h1.39V0Zm5.55 0h-1.39v1.5h1.39V0ZM9.08 0H7.69v1.5h1.39V0ZM0 5.75h14v-1.5H0v1.5ZM4.92 14h1.39v-1.5H4.92V14Zm8.33-14v1.5H14V0h-.75ZM0 9.75h14v-1.5H0v1.5ZM7.69 14h1.39v-1.5H7.69V14Zm5.56 0H14v-1.5h-.75V14Zm-2.78 0h1.39v-1.5h-1.39V14Z" /></symbol>'}),v=(a().add(g),g),m=new(o())({id:"aggregation_min",use:"aggregation_min-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="aggregation_min"><path d="M10.03 6.97a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.47 2.47H4.71c-1.77 0-3.21-1.44-3.21-3.21V0H0v7.29C0 9.89 2.11 12 4.71 12h6.23l-1.97 1.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L14.06 11l-4.03-4.03Z" /></symbol>'}),y=(a().add(m),m),b=new(o())({id:"aggregation_sum",use:"aggregation_sum-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="aggregation_sum"><path d="M12 3V0H0v3l5 4-5 4v3h12v-3h-1.5v1.5h-9v-.78l4.44-3.55L7.4 7 5.94 5.83 1.5 2.28V1.5h9V3H12Z" /></symbol>'}),w=(a().add(b),b),_=new(o())({id:"aggregation_sum_abs",use:"aggregation_sum_abs-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="aggregation_sum_abs"><path d="M0 0v6h14V0H0Zm12.5 4.5h-11v-3h11v3ZM0 14h14V8H0v6Zm1.5-4.5h11v3h-11v-3Z" /></symbol>'}),x=(a().add(_),_),S=new(o())({id:"alarm",use:"alarm-usage",viewBox:"0 0 18 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 21" id="alarm"><path d="M17 13.6c-.6-.6-1-1.5-1-2.4V8c0-3.5-2.6-6.4-6-6.9V1c0-.6-.4-1-1-1S8 .4 8 1v.1C4.6 1.6 2 4.5 2 8v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C0 18.9 1.1 20 2.5 20h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9l-1-1Zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H8a2 2 0 0 0 2-2H3.7c.2-.6.3-1.2.3-1.8V8c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4v2.1Z" /></symbol>'}),O=(a().add(S),S),C=new(o())({id:"alarm_c",use:"alarm_c-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_c"><circle cx="21.5" cy="2.5" r="2.5" fill="#FF4136" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9l-1-1Zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4v2.1Z" clip-rule="evenodd" /></symbol>'}),E=(a().add(C),C),A=new(o())({id:"alarm_cw",use:"alarm_cw-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_cw"><circle cx="15.5" cy="2.5" r="2.5" fill="#FF4136" /><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path d="M12.317 1.042A3.487 3.487 0 0 0 12 2.5c0 .541.123 1.054.342 1.511A5.29 5.29 0 0 0 12 4C9.2 4 7 6.2 7 9v3.2c0 .6-.1 1.2-.3 1.8H13a2 2 0 0 1-2 2H5.4l-.4.4v2.1c0 .3.2.5.5.5h13c.3 0 .5-.2.5-.5v-2.1l-.4-.4c-1-1-1.6-2.4-1.6-3.8V9c0-1.134-.36-2.17-.976-3h2.294c.437.909.682 1.926.682 3v3.2c0 .9.4 1.8 1 2.4l1 1v2.9c0 1.4-1.1 2.5-2.5 2.5h-4.8c-.3.6-1 1-1.7 1s-1.4-.4-1.7-1H5.5C4.1 21 3 19.9 3 18.5v-2.9l1-1c.7-.7 1-1.5 1-2.4V9c0-3.5 2.6-6.4 6-6.9V2c0-.6.4-1 1-1 .113 0 .22.014.317.042Z" /></symbol>'}),k=(a().add(A),A),M=new(o())({id:"alarmFilled",use:"alarmFilled-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alarmFilled"><path d="M15.22 9.84A1.988 1.988 0 0 1 14 8V7c0-1.73-.87-3.25-2.2-4.15a5.17 5.17 0 0 0-1.82-.76c0-.03.02-.06.02-.1 0-.55-.45-1-1-1s-1 .45-1 1c0 .04.02.06.02.1-.66.13-1.28.39-1.82.76C4.87 3.75 4 5.27 4 7v1a1.988 1.988 0 0 1-1.22 1.84c-.24.1-.02.16-.02.16H11c0 .83-.67 1.5-1.5 1.5H2v2.35c0 .15.02.29.04.43A2.154 2.154 0 0 0 4.15 16H8c0 .55.45 1 1 1s1-.45 1-1h3.85a2.154 2.154 0 0 0 2.11-1.72c.03-.14.04-.29.04-.43V10c-.28 0-.54-.06-.78-.16Z" /></symbol>'}),P=(a().add(M),M),R=new(o())({id:"alarm_w",use:"alarm_w-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="alarm_w"><circle cx="21.5" cy="2.5" r="2.5" fill="#FFC300" /><path fill-rule="evenodd" d="M20 14.6c-.6-.6-1-1.5-1-2.4V9c0-3.5-2.6-6.4-6-6.9V2c0-.6-.4-1-1-1s-1 .4-1 1v.1C7.6 2.6 5 5.5 5 9v3.2c0 .9-.3 1.7-1 2.4l-1 1v2.9C3 19.9 4.1 21 5.5 21h4.8c.3.6 1 1 1.7 1s1.4-.4 1.7-1h4.8c1.4 0 2.5-1.1 2.5-2.5v-2.9l-1-1Zm-1 3.9c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-2.1l.4-.4H11a2 2 0 0 0 2-2H6.7c.2-.6.3-1.2.3-1.8V9c0-2.8 2.2-5 5-5s5 2.2 5 5v3.2c0 1.4.6 2.8 1.6 3.8l.4.4v2.1Z" clip-rule="evenodd" /></symbol>'}),T=(a().add(R),R),I=new(o())({id:"alarm_bell",use:"alarm_bell-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="alarm_bell"><path d="M11.45 8.11A2.61 2.61 0 0 1 10 5.77V5c0-1.97-1.44-3.6-3.31-3.93 0-.02.01-.04.01-.07 0-.39-.31-.7-.7-.7-.39 0-.7.31-.7.7 0 .02.01.05.01.07C3.44 1.4 2 3.03 2 5v.76c0 1-.55 1.9-1.45 2.34L0 8.38v2.82c0 .99.81 1.8 1.8 1.8H5c0 .55.45 1 1 1s1-.45 1-1h3.2c.99 0 1.8-.81 1.8-1.8V8.38l-.55-.27ZM11 11.2c0 .44-.36.8-.8.8H1.8c-.44 0-.8-.36-.8-.8V10h5.5c.55 0 1-.45 1-1H1c1.23-.61 2-1.87 2-3.24V5c0-1.66 1.34-3 3-3s3 1.34 3 3v.76c0 1.37.77 2.62 2 3.24v2.2Z" /></symbol>'}),B=(a().add(I),I),j=new(o())({id:"alarms_new",use:"alarms_new-usage",viewBox:"0 0 22 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 20" id="alarms_new"><path d="m17.5 12 4.4-5-4.4-5H11V0H9v2H0v10h9v6H5v2h10v-2h-4v-6h6.5ZM2 10V4h14.5l2.6 3-2.6 3H2Z" /></symbol>'}),D=(a().add(j),j),L=new(o())({id:"alarm_off",use:"alarm_off-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="alarm_off"><path d="M12.2 7V6c0-.272-.029-.537-.07-.797l-1.412 2.046a3.504 3.504 0 0 0 1.982 2.914v2.688c0 .358-.292.65-.65.65H6.407l-1.035 1.5H6.2a1 1 0 0 0 2 0h3.85a2.15 2.15 0 0 0 2.15-2.15V9a2 2 0 0 1-2-2Zm.426-6.867a.75.75 0 0 0-1.043.191L10.34 2.128A4.913 4.913 0 0 0 8.18 1.099c.004-.034.02-.063.02-.099a1 1 0 0 0-2 0c0 .035.016.064.02.099A4.999 4.999 0 0 0 2.2 6v1a2 2 0 0 1-2 2v3.85c0 .912.57 1.687 1.372 2a.746.746 0 0 0 1.245.827l10-14.5a.75.75 0 0 0-.19-1.044ZM2.496 13.5H2.35a.65.65 0 0 1-.65-.65V10.5h2.865l-2.069 3ZM5.6 9H3.063A3.472 3.472 0 0 0 3.7 7V6c0-1.93 1.57-3.5 3.5-3.5.877 0 1.672.331 2.284.867L5.6 9Z" /></symbol>'}),Z=(a().add(L),L),N=new(o())({id:"anomalies_brain",use:"anomalies_brain-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_brain"><path d="M17 8.99c0-1.008-.31-1.915-.929-2.621v-.101a4.44 4.44 0 0 0-4.439-4.436h-.103a3.97 3.97 0 0 0-1.755-.706c-.826-.202-1.548-.1-1.548-.1-.723.2-1.342.503-1.858.907-2.374 0-4.439 2.016-4.439 4.436v.1A3.818 3.818 0 0 0 1 8.99c0 1.008.31 1.916.929 2.622v.1c0 2.42 1.961 4.437 4.336 4.437h.103a4.352 4.352 0 0 0 1.858.806s.722.101 1.548 0a3.868 3.868 0 0 0 1.858-.806c2.375 0 4.439-2.017 4.439-4.437v-.1c.62-.706.929-1.614.929-2.622Zm-8.774 1.815c-.207-.1-.413-.202-.62-.303l-.825 1.311a6.06 6.06 0 0 0 1.445.504v3.126a2.479 2.479 0 0 1-1.136-.605c-.619-.605-.929-1.31-.929-2.218H4.613c0 .605.103 1.109.31 1.613-.93-.504-1.446-1.412-1.446-2.52v-.303c0-.605.413-1.31.93-1.815.206-.202.412-.302.722-.403.206.403.62.907 1.239 1.21L7.09 9.09c-1.032-.504-.722-1.411-.516-1.714L5.13 6.671c-.103.303-.206.605-.31 1.008-.516.101-1.032.404-1.445.807-.31.303-.516.605-.826.907V8.99c0-.706.31-1.411.723-1.915.516-.605 1.342-.908 2.064-.908V4.655c-.516 0-1.135.1-1.548.302.516-.907 1.445-1.512 2.478-1.512h.206l.413.1.31-.302c.206-.302.619-.504 1.032-.605v8.167Zm6.503.1c-.516.606-1.342.908-2.064.908v1.513c.516 0 1.135-.101 1.548-.303-.516.908-1.445 1.512-2.477 1.512h-.207l-.413-.1-.31.302c-.31.303-.722.504-1.135.605V7.276c.206.101.413.101.62.303l.825-1.311c-.31-.302-.826-.504-1.342-.504V2.638c.413.101.826.303 1.136.605.619.504.929 1.311.929 2.118h1.548c0-.605-.103-1.11-.31-1.614.93.505 1.446 1.412 1.446 2.521v.302c-.104.706-.413 1.412-.93 1.916-.206.202-.412.303-.722.403-.207-.504-.62-.907-1.239-1.21L10.91 8.99c1.032.504.722 1.412.516 1.714l1.445.605c.103-.302.206-.605.31-1.008a6.624 6.624 0 0 0 1.445-.807c.31-.302.62-.605.826-1.008v.403a3.2 3.2 0 0 1-.723 2.017Z" /></symbol>'}),F=(a().add(N),N),H=new(o())({id:"anomalies_lens",use:"anomalies_lens-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="anomalies_lens"><path fill-rule="evenodd" d="m12.74 11.68 2.79 2.79c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22l-2.79-2.79A5.976 5.976 0 0 1 8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6c0 1.39-.47 2.66-1.26 3.68ZM3.814 9.65A4.51 4.51 0 0 0 8 12.5a4.51 4.51 0 0 0 4.186-2.85h-.456l-.19-.19-.54-.54-.54.54-.561.56-.44-.66L8 7.173 6.54 9.36l-.192.289H3.814Zm-.3-1.3A4.507 4.507 0 0 1 8 3.5a4.507 4.507 0 0 1 4.486 4.85h-.217l-.81-.81L11 7.08l-.46.46-.439.44-1.56-2.34L8 4.827l-.54.811L5.651 8.35H3.514Z" clip-rule="evenodd" /></symbol>'}),V=(a().add(H),H),z=n(88055),U=new(o())({id:"applications_hollow",use:"applications_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="applications_hollow"><path d="M13.75 3.75h-1.99c-.37 0-.72.09-1.04.23a2.578 2.578 0 0 0-2.55-2.23H4.34a2.59 2.59 0 0 0-2.59 2.59v3.83c0 1.13.74 2.09 1.76 2.44-.16.32-.26.68-.26 1.07v1.16c0 1.33 1.08 2.42 2.42 2.42h1.16c.4 0 .77-.11 1.1-.28a2.14 2.14 0 0 0 1.96 1.28h2.71c1.18 0 2.15-.96 2.15-2.15V11.4c0-.28-.06-.55-.16-.8.96-.35 1.66-1.26 1.66-2.35v-2a2.5 2.5 0 0 0-2.5-2.5Zm-6 9.08c0 .51-.41.92-.92.92H5.67c-.51 0-.92-.41-.92-.92v-1.16c0-.51.41-.92.92-.92h1.16c.51 0 .92.41.92.92v1.16Zm.41-3.58H4.34c-.6 0-1.09-.49-1.09-1.09V4.34c0-.6.49-1.09 1.09-1.09h3.83c.6 0 1.09.49 1.09 1.09v3.83c-.01.59-.5 1.08-1.1 1.08Zm5.09 4.85c0 .36-.29.65-.65.65H9.9c-.36 0-.65-.29-.65-.65v-2.7c0-.36.29-.65.65-.65h2.7c.36 0 .65.29.65.65v2.7Zm1.5-5.85c0 .55-.45 1-1 1h-1.99c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1h1.99c.55 0 1 .45 1 1v2Z" /></symbol>'}),G=(a().add(U),U),W=new(o())({id:"around_clock",use:"around_clock-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="around_clock"><path d="M8 3.25c-.41 0-.75.34-.75.75v4c0 .2.08.39.22.53l2 2c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L8.75 7.69V4c0-.41-.34-.75-.75-.75Z" /><path d="M8 0C3.58 0 0 3.58 0 8c0 .17.01.33.03.5h1.5c-.01-.17-.03-.33-.03-.5 0-3.58 2.92-6.5 6.5-6.5s6.5 2.92 6.5 6.5-2.92 6.5-6.5 6.5c-2.29 0-4.29-1.2-5.45-3h2.7c.41 0 .75-.34.75-.75S5.66 10 5.25 10H0v5.25c0 .41.34.75.75.75s.75-.34.75-.75v-2.61C2.95 14.67 5.31 16 8 16c4.42 0 8-3.58 8-8s-3.58-8-8-8Z" /></symbol>'}),q=(a().add(W),W),$=new(o())({id:"arrow_down",use:"arrow_down-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="arrow_down"><path d="M9 3v5h2l-3 4-3-4h2V3h2Z" /></symbol>'}),Y=(a().add($),$),X=new(o())({id:"arrow_w_line_left",use:"arrow_w_line_left-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_w_line_left"><path d="M20.314 19.334V5H22v14.334h-1.686ZM8.488 7.36c-.31-.336-.773-.336-1.082 0L3 12.168l4.406 4.806a.801.801 0 0 0 .54.253.801.801 0 0 0 .542-.253.867.867 0 0 0 0-1.18l-2.55-2.783h12.057c.464 0 .773-.337.773-.843s-.31-.843-.773-.843H5.937l2.55-2.783a.867.867 0 0 0 0-1.18Z" /></symbol>'}),K=(a().add(X),X),J=new(o())({id:"arrow_w_line_right",use:"arrow_w_line_right-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_w_line_right"><path d="M4.686 5v14.334H3V5h1.686ZM16.512 16.973c.31.338.773.338 1.082 0L22 12.167l-4.406-4.806a.801.801 0 0 0-.54-.253.801.801 0 0 0-.542.253.867.867 0 0 0 0 1.18l2.55 2.783H7.006c-.464 0-.773.337-.773.843s.31.843.773.843h12.058l-2.55 2.783a.867.867 0 0 0 0 1.18Z" /></symbol>'}),Q=(a().add(J),J),ee=new(o())({id:"arrow_left",use:"arrow_left-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="arrow_left"><path d="M7.3 17.7c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L5.4 13H21c.6 0 1-.4 1-1s-.4-1-1-1H5.4l3.3-3.3c.4-.4.4-1 0-1.4-.2-.2-.5-.3-.7-.3-.2 0-.5.1-.7.3L1.6 12l5.7 5.7Z" /></symbol>'}),te=(a().add(ee),ee),ne=new(o())({id:"arrow-s_down",use:"arrow-s_down-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_down"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4Z" /></symbol>'}),re=(a().add(ne),ne),oe=new(o())({id:"arrow-s_left",use:"arrow-s_left-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="arrow-s_left"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4Z" /></symbol>'}),ie=(a().add(oe),oe),ae=new(o())({id:"arrows_vertical",use:"arrows_vertical-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="arrows_vertical"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0Zm1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0Z" /></symbol>'}),se=(a().add(ae),ae),le=new(o())({id:"bookmark",use:"bookmark-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="bookmark"><path d="M9.77 1.5c.4 0 .73.33.73.73V12.5L6.9 9.8 6 9.13l-.9.67-3.6 2.7V2.23c0-.4.33-.73.73-.73h7.54Zm0-1.5H2.23C1 0 0 1 0 2.23V12.5a1.498 1.498 0 0 0 2.4 1.2L6 11l3.6 2.7a1.498 1.498 0 0 0 2.4-1.2V2.23C12 1 11 0 9.77 0Z" /></symbol>'}),ue=(a().add(le),le),ce=new(o())({id:"bullet_one",use:"bullet_one-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_one"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5Zm1.5 7.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1v-3H4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5.22.5.5v3.5h1c.28 0 .5.22.5.5s-.22.5-.5.5Z" /></symbol>'}),fe=(a().add(ce),ce),de=new(o())({id:"bullet_three",use:"bullet_three-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_three"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5Zm2 6c0 .83-.67 1.5-1.5 1.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-1c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h1c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4c0 .39-.15.73-.39 1 .24.27.39.61.39 1Z" /></symbol>'}),pe=(a().add(de),de),he=new(o())({id:"bullet_two",use:"bullet_two-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="bullet_two"><path d="M5 0C2.24 0 0 2.24 0 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5Zm1.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5v-.99c0-.83.67-1.5 1.49-1.51H5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h2C6.33 2.5 7 3.17 7 4s-.67 1.5-1.5 1.5h-.99c-.28 0-.51.23-.51.51v.49h2.5Z" /></symbol>'}),ge=(a().add(he),he),ve=new(o())({id:"calendar_full",use:"calendar_full-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full"><path d="M13.747 3.518c0-.006.003-.011.003-.018v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1h-2.5v-1a.75.75 0 0 0-1.5 0v1c0 .006.003.011.003.018A2.922 2.922 0 0 0 1.5 6.428v6.644A2.931 2.931 0 0 0 4.428 16h9.144a2.931 2.931 0 0 0 2.928-2.928V6.428a2.922 2.922 0 0 0-2.753-2.91ZM15 13.072c0 .789-.639 1.428-1.428 1.428H4.428A1.428 1.428 0 0 1 3 13.072V8.75h8.5a1.5 1.5 0 0 0 1.5-1.5H3v-.822C3 5.639 3.639 5 4.428 5h9.144C14.361 5 15 5.639 15 6.428v6.644Z" /></symbol>'}),me=(a().add(ve),ve),ye=new(o())({id:"calendar_full_press",use:"calendar_full_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="calendar_full_press"><path d="M14.07 3h-.32V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-2.5V2c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1h-.32C2.86 3 2 3.86 2 4.93V6h11c0 .83-.67 1.5-1.5 1.5H2v6.57C2 15.13 2.86 16 3.93 16h10.15c1.06 0 1.93-.86 1.93-1.93V4.93A1.94 1.94 0 0 0 14.07 3Z" /></symbol>'}),be=(a().add(ye),ye),we=new(o())({id:"chart_added",use:"chart_added-usage",viewBox:"0 0 17 17",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" id="chart_added"><path d="M15.5 10.56V4.38L12 .88l-6 6-2-2-3.5 3.5v3.06c0 2.24 1.82 4.06 4.06 4.06h4.7c-.3-.46-.53-.96-.65-1.5H4.56C3.15 14 2 12.85 2 11.44V9l2-2 2 2 6-6 2 2v4.66c-.32-.1-.65-.16-1-.16-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5c0-.95-.38-1.81-1-2.44Zm-.5 3.19h-1.25V15h-1.5v-1.25H11v-1.5h1.25V11h1.5v1.25H15v1.5Z" /></symbol>'}),_e=(a().add(we),we),xe=new(o())({id:"charts",use:"charts-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="charts"><path d="m15 12.59-6-6-3 3-1.5-1.5-4.5 4.5v2.58C0 17.84 2.17 20 4.83 20h10.33c2.67 0 4.83-2.17 4.83-4.83V7.59l-4.99 5Zm3 2.58c0 1.56-1.27 2.83-2.83 2.83H4.83C3.27 18 2 16.73 2 15.17v-1.75l2.5-2.5 1.5 1.5 3-3 6 6 3-3v2.75ZM2 6.41l2-2 2 2 3.5-3.5 5.5 5.5 2-2 .67.67 1.41-1.41L17 3.59l-2 2L9.5.09 6 3.59l-2-2-4 4v4.17l2-2V6.41Z" /></symbol>'}),Se=(a().add(xe),xe),Oe=new(o())({id:"check",use:"check-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="check"><path fill-rule="evenodd" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2Z" clip-rule="evenodd" /></symbol>'}),Ce=(a().add(Oe),Oe),Ee=new(o())({id:"checkmark_partial_s",use:"checkmark_partial_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_partial_s"><path d="M1 7h14v3H1z" /></symbol>'}),Ae=(a().add(Ee),Ee),ke=n(13563),Me=new(o())({id:"checkmark",use:"checkmark-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="checkmark"><circle cx="8" cy="8" r="8" fill="#42B861" /><path fill="#fff" d="M6.913 11.727 3.718 8.532a.747.747 0 1 1 1.057-1.057L6.83 9.53l4.35-5.018a.749.749 0 1 1 1.133.983l-5.4 6.232Z" /></symbol>'}),Pe=(a().add(Me),Me),Re=new(o())({id:"chevron_double",use:"chevron_double-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="chevron_double"><path d="m2.2 4.2.8-.8.8.8c.2.2.4.3.7.3.3 0 .5-.1.7-.3.4-.4.4-1 0-1.4L3 .6.8 2.8c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0Zm1.6 1.6-.8.8-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L3 9.4l2.2-2.2c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0Z" /></symbol>'}),Te=(a().add(Re),Re),Ie=n(3728),Be=n(54194),je=n(51289),De=new(o())({id:"chevron_left",use:"chevron_left-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left"><path d="m4.59 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L7.41 9l4.29 4.29a.996.996 0 1 1-1.41 1.41L4.59 9Z" /></symbol>'}),Le=(a().add(De),De),Ze=new(o())({id:"chevron_left_start",use:"chevron_left_start-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_left_start"><path d="m8 9 5.71-5.71a.996.996 0 1 1 1.41 1.41L10.82 9l4.29 4.29a.996.996 0 1 1-1.41 1.41L8 9Z" /><path fill-rule="evenodd" d="M4 3a1 1 0 0 1 1 1v10a1 1 0 1 1-2 0V4a1 1 0 0 1 1-1Z" clip-rule="evenodd" /></symbol>'}),Ne=(a().add(Ze),Ze),Fe=new(o())({id:"chevron_left_small",use:"chevron_left_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_left_small"><path d="M4 0c.3 0 .5.1.7.3.4.4.4 1 0 1.4L3.4 3l1.3 1.3c.4.4.4 1 0 1.4-.4.4-1 .4-1.4 0L.6 3 3.3.3c.2-.2.4-.3.7-.3Z" /></symbol>'}),He=(a().add(Fe),Fe),Ve=new(o())({id:"chevron_right",use:"chevron_right-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right"><path d="M13.41 9 7.7 14.71a.996.996 0 1 1-1.41-1.41l4.29-4.29-4.29-4.3A.996.996 0 1 1 7.7 3.3L13.41 9Z" /></symbol>'}),ze=(a().add(Ve),Ve),Ue=new(o())({id:"chevron_right_s",use:"chevron_right_s-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_s"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3Z" /></symbol>'}),Ge=(a().add(Ue),Ue),We=new(o())({id:"chevron_right_end",use:"chevron_right_end-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="chevron_right_end"><path d="m10 9-5.71 5.71a.996.996 0 1 1-1.41-1.41L7.18 9 2.89 4.71A.996.996 0 1 1 4.3 3.3L10 9Z" /><path fill-rule="evenodd" d="M14 15a1 1 0 0 1-1-1V4a1 1 0 1 1 2 0v10a1 1 0 0 1-1 1Z" clip-rule="evenodd" /></symbol>'}),qe=(a().add(We),We),$e=new(o())({id:"chevron_right_small",use:"chevron_right_small-usage",viewBox:"0 0 5 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5 6" id="chevron_right_small"><path d="M1 6c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4L1.6 3 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L4.4 3 1.7 5.7c-.2.2-.4.3-.7.3Z" /></symbol>'}),Ye=(a().add($e),$e),Xe=n(22874),Ke=new(o())({id:"class_error",use:"class_error-usage",viewBox:"0 0 21 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 22" id="class_error"><path d="M10.357 12.95a1.7 1.7 0 1 0 0 3.4 1.7 1.7 0 0 0 0-3.4ZM9.88 5.728a1.83 1.83 0 0 0-1.24 2.272l.88 3a.913.913 0 0 0 1.752 0l.88-3A1.828 1.828 0 0 0 9.88 5.727Zm8.172-1.855L12.741.806a4.7 4.7 0 0 0-4.689 0L2.74 3.872a4.702 4.702 0 0 0-2.344 4.06v6.134c0 1.67.898 3.226 2.344 4.06l5.312 3.067a4.682 4.682 0 0 0 2.345.626c.81 0 1.62-.208 2.344-.626l5.311-3.066a4.702 4.702 0 0 0 2.345-4.061V7.933c0-1.67-.898-3.226-2.345-4.061Zm.345 10.193c0 .958-.515 1.85-1.345 2.329l-5.311 3.067a2.694 2.694 0 0 1-2.689 0L3.74 16.394a2.697 2.697 0 0 1-1.344-2.33V7.934c0-.958.515-1.85 1.344-2.33l5.312-3.066a2.69 2.69 0 0 1 1.345-.358c.464 0 .93.119 1.344.358l5.311 3.067a2.697 2.697 0 0 1 1.345 2.329v6.132Z" /></symbol>'}),Je=(a().add(Ke),Ke),Qe=new(o())({id:"class_latency",use:"class_latency-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="class_latency"><path d="M7.736.36c-.36.1-.72.22-1.06.36l.75 1.85c.27-.11.55-.2.84-.28L7.736.36Zm-2.58 3.59-1.31-1.5c-.28.24-.54.5-.79.77l1.46 1.35c-.1.11-.2.22-.29.34.33-.4.69-.76 1.09-1.08-.05.03-.11.08-.16.12Zm-3.92 2.04c-.15.33-.28.68-.39 1.04l1.91.59c.09-.28.2-.56.31-.83l-1.83-.8ZM2.396 10v.25l-1.99.07c.01.38.04.74.1 1.1l1.97-.28c-.05-.37-.08-.75-.08-1.14Zm.89 3.66-1.78.92c.17.33.36.65.57.96l1.66-1.11c.08.12.16.24.25.35-.26-.35-.49-.73-.7-1.12Zm17.09-4.29c-.02-.38-.07-.74-.13-1.1-.01-.04-.01-.08-.02-.12l-.06-.29c-.02-.12-.05-.24-.09-.36-.02-.11-.05-.21-.09-.32-.1-.36-.22-.7-.37-1.04 0-.01 0-.02-.01-.03-.11-.28-.24-.55-.38-.81-.03-.06-.06-.11-.09-.16-.18-.32-.38-.63-.6-.93-.02-.03-.04-.07-.06-.1-.02-.03-.04-.06-.07-.09-.06-.09-.13-.18-.2-.26-.09-.11-.17-.22-.27-.32-.03-.04-.06-.07-.09-.11-.25-.27-.51-.53-.78-.78-.04-.03-.07-.06-.11-.09-.1-.1-.21-.18-.32-.27-.14-.11-.29-.23-.44-.33-.3-.22-.62-.42-.94-.6-.05-.03-.1-.06-.16-.09-.27-.14-.55-.27-.83-.39-.34-.15-.69-.271-1.05-.37-.11-.04-.21-.07-.32-.09-.2-.06-.4-.1-.61-.14-.05-.01-.1-.02-.15-.02-.36-.07-.73-.12-1.11-.14-.2-.01-.42-.02-.63-.02-.16 0-.32 0-.47.01-.38.021-.75.06-1.11.12l.32 1.97c.29-.05.58-.08.88-.09.12-.01.25-.01.38-.01.17 0 .34.01.51.02a7.71 7.71 0 0 1 1.74.3c.29.09.57.19.84.3.01 0 .01.01.02.01.24.09.47.21.7.34.03.01.05.021.08.04.31.18.61.37.89.58.1.08.2.15.3.24.32.26.61.53.88.84.16.18.31.36.45.55.21.28.4.58.58.89.15.26.28.53.39.8.11.27.21.55.3.84.04.14.08.28.11.43.03.13.06.26.08.39.01.01.01.03.01.04.05.29.08.58.1.88.01.17.02.34.02.51a8.714 8.714 0 0 1-.19 1.76c-.02.08-.04.16-.06.23-.03.13-.07.26-.11.38-.15.48-.35.95-.59 1.39 0 .01 0 .01-.01.021 0 0 0 .01-.01.02-.02.03-.04.07-.06.11-.24.41-.51.81-.8 1.17-.07.1-.16.2-.25.29a7.786 7.786 0 0 1-1.6 1.36c-.24.15-.5.3-.77.44-.03.01-.06.03-.09.04-.11.06-.23.11-.35.16-.46.19-.93.34-1.42.45-.22.05-.45.09-.68.12-.29.03-.58.05-.88.06h-.13c-.26 0-.51-.01-.76-.04-.3-.02-.59-.07-.88-.13-.29-.06-.58-.14-.86-.23-.28-.1-.56-.2-.82-.32-.05-.021-.1-.04-.14-.07-.12-.05-.24-.11-.35-.18-.1-.05-.2-.11-.3-.17-.45-.28-.87-.59-1.26-.94.16.16.34.31.52.45l-1.2 1.58c.29.23.59.44.91.63.26.16.54.3.81.43.05.03.11.06.17.08.33.16.68.3 1.04.41.35.12.71.21 1.07.29.36.07.72.13 1.1.17.31.02.63.04.95.04h.16c.37-.01.74-.03 1.1-.08.09-.01.18-.02.26-.04.15-.02.31-.05.45-.07l.39-.09v-.01c.36-.08.71-.18 1.06-.31.01 0 .01-.01.02-.01.3-.11.6-.24.89-.38.04-.01.07-.03.11-.05.34-.17.66-.35.97-.55.07-.05.14-.09.21-.14.12-.08.24-.17.36-.26.11-.07.22-.16.33-.25.28-.24.56-.49.81-.75.1-.09.19-.19.28-.29l.24-.27c.07-.09.15-.18.22-.27.23-.29.44-.59.63-.91.1-.15.2-.31.29-.47.08-.16.16-.31.23-.47.01-.01.01-.02.01-.03h.01a9.82 9.82 0 0 0 .65-1.8c.03-.1.05-.2.07-.3.09-.35.15-.72.19-1.09 0-.03.01-.06.01-.09.03-.34.05-.68.05-1.02 0-.211-.01-.421-.02-.631Zm-16.11 5.77-1.53 1.29c.24.28.5.55.76.8l1.38-1.44c.05.05.1.09.15.13-.29-.26-.56-.54-.8-.84.01.02.02.04.04.06Zm-1.62-3.13-1.93.5c.09.36.2.71.34 1.06l1.86-.72c.03.09.07.18.11.26-.15-.36-.27-.72-.38-1.1Zm-.11-3.53-1.96-.37c-.07.36-.12.72-.15 1.1l1.99.15c0 .06-.01.11-.01.17.02-.36.07-.71.13-1.05Zm1.42-3.22-1.61-1.19c-.22.3-.42.61-.61.93l1.73 1c-.04.06-.07.13-.1.19.18-.32.38-.63.59-.93Zm2.66-2.31-.94-1.77c-.33.18-.65.37-.95.58l1.13 1.65c-.06.04-.12.09-.18.14.3-.22.61-.42.94-.6Z" /></symbol>'}),et=(a().add(Qe),Qe),tt=new(o())({id:"class_utilization",use:"class_utilization-usage",viewBox:"0 0 25 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 19" id="class_utilization"><path d="m5.357 7.55-2.12-2.12c2.22-1.94 5.05-3.17 8.16-3.39v3.01c.33-.03.663-.05 1-.05.337 0 .67.021 1 .05V2.04c3.11.22 5.94 1.45 8.16 3.39l-2.12 2.12c.51.43.98.9 1.41 1.41l2.12-2.12 1.42-1.41c-.44-.51-.91-.98-1.42-1.42A15.925 15.925 0 0 0 12.397 0c-4.05 0-7.75 1.52-10.57 4.01-.51.44-.98.91-1.42 1.42l1.42 1.41 2.12 2.12c.43-.51.9-.98 1.41-1.41Zm9.56 8.57 2.394-9.714a1.017 1.017 0 0 0-1.827-.812L9.878 13.88a2.8 2.8 0 1 0 5.039 2.24Z" /></symbol>'}),nt=(a().add(tt),tt),rt=new(o())({id:"class_workload",use:"class_workload-usage",viewBox:"0 0 22 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21" id="class_workload"><path d="M2.336 21h1v-2h-1v2Zm-1.94 0h.94v-2h-.94v2Zm3.94 0h1v-2h-1v2ZM21.104 5.293 16.397.586 11.69 5.293a.999.999 0 1 0 1.414 1.414l2.293-2.293v9.626c0 .13-.01.26-.02.38-.01.16-.03.32-.06.47-.01.1-.03.2-.06.3 0 .02-.01.03-.01.05a4.894 4.894 0 0 1-.45 1.16c-.06.12-.14.24-.21.36-.16.23-.33.45-.52.65a.8.8 0 0 1-.13.13c-.11.11-.23.22-.35.32-.26.21-.54.4-.83.56-.24.13-.5.24-.76.33-.26.08-.53.15-.81.19l-.25.03c-.17.02-.36.03-.6.03h-2v2h2.1c.23 0 .46-.01.68-.04.03 0 .06 0 .08-.01.06 0 .12-.01.17-.01l.12-.03c.39-.05.77-.14 1.14-.26a6.764 6.764 0 0 0 2.05-1.1.55.55 0 0 0 .09-.07c.08-.06.16-.12.24-.2.19-.15.37-.33.53-.51.26-.28.5-.58.72-.91.1-.16.2-.33.3-.5.05-.11.11-.21.15-.31.04-.07.07-.15.1-.22.16-.35.29-.72.38-1.1.01-.03.01-.05.02-.08.03-.12.05-.24.07-.35.04-.17.06-.35.08-.53v-.03c.01-.03.01-.07.01-.11v-.05c.02-.18.03-.36.03-.54V4.414l2.293 2.293a.997.997 0 0 0 1.413 0 .999.999 0 0 0 0-1.414ZM6.336 21h1v-2h-1v2Zm6.82-20h-5.8C3.516 1 .396 4.12.396 7.96V17h2V7.96c0-2.73 2.23-4.96 4.96-4.96h3.8l2-2Z" /></symbol>'}),ot=(a().add(rt),rt),it=new(o())({id:"clock_hollow",use:"clock_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="clock_hollow"><path d="M12 4c-4.96 0-9 4.04-9 9 0 2.07.71 3.97 1.89 5.5l-1.64 1.84a.998.998 0 0 0 .08 1.41c.19.17.43.25.66.25.28 0 .55-.11.75-.34l1.53-1.72A8.965 8.965 0 0 0 12 22c4.96 0 9-4.04 9-9s-4.04-9-9-9Zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7ZM4.17 6.79C4.06 6.55 4 6.28 4 6c0-1.1.9-2 2-2 .39 0 .75.12 1.06.31.63-.36 1.29-.65 1.99-.87A3.978 3.978 0 0 0 6 2C3.79 2 2 3.79 2 6c0 1.01.39 1.93 1.01 2.63.32-.65.71-1.27 1.16-1.84ZM18 4c1.1 0 2 .9 2 2 0 .28-.06.55-.17.79.45.57.83 1.18 1.15 1.84C21.61 7.93 22 7.01 22 6c0-2.21-1.79-4-4-4-1.23 0-2.32.57-3.05 1.44.7.22 1.36.51 1.99.87.31-.19.67-.31 1.06-.31Zm1.79 15.26c-.42.52-.89 1-1.4 1.43l.86.97c.2.22.47.34.75.34.24 0 .47-.08.66-.25.41-.37.45-1 .08-1.41l-.95-1.08ZM13 12.46V9c0-.55-.45-1-1-1s-1 .45-1 1v4.54l3.45 2.3c.17.11.36.17.55.17.32 0 .64-.16.83-.45.31-.46.18-1.08-.28-1.39L13 12.46Z" /></symbol>'}),at=(a().add(it),it),st=new(o())({id:"clock_5_min",use:"clock_5_min-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2ZM2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76ZM9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7Zm0 12.5A5.51 5.51 0 0 1 3.5 9c0-3.03 2.47-5.5 5.5-5.5s5.5 2.47 5.5 5.5-2.47 5.5-5.5 5.5Zm5.24-.14c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06l-.35-.4ZM9 5v4l1.8-3.57A3.959 3.959 0 0 0 9 5Z" /></symbol>'}),lt=(a().add(st),st),ut=new(o())({id:"clock_5_min_press",use:"clock_5_min_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="clock_5_min_press"><path d="M14.25 3c.41 0 .75.34.75.75 0 .19-.08.37-.2.5.32.39.6.81.83 1.26.52-.41.87-1.04.87-1.76 0-1.24-1.01-2.25-2.25-2.25-.72 0-1.35.34-1.76.87.45.24.87.52 1.26.83.13-.12.31-.2.5-.2ZM2.37 5.51c.24-.45.52-.87.83-1.26a.748.748 0 0 1-.2-.5c0-.41.34-.75.75-.75.19 0 .37.08.5.2.39-.32.81-.6 1.26-.83-.41-.53-1.04-.87-1.76-.87-1.24 0-2.25 1.01-2.25 2.25 0 .72.34 1.35.87 1.76ZM9 2C5.13 2 2 5.13 2 9c0 1.95.8 3.71 2.08 4.98l-.66.79A.75.75 0 0 0 4 16c.21 0 .43-.09.58-.27l.68-.82A6.995 6.995 0 0 0 16 9c0-3.87-3.13-7-7-7Zm0 7V5c.31 0 .62.04.92.11.3.07.6.18.87.32L9 9Zm5.24 5.36c-.36.35-.75.66-1.17.93l.36.43c.15.18.36.27.58.27.17 0 .34-.06.48-.17.32-.27.36-.74.1-1.06l-.35-.4Z" /></symbol>'}),ct=(a().add(ut),ut),ft=new(o())({id:"close_circle",use:"close_circle-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="close_circle"><path d="M5 0a5 5 0 1 0 .001 10.001A5 5 0 0 0 5 0Zm2.03 5.97a.75.75 0 0 1-1.06 1.061L5 6.061l-.97.97a.748.748 0 0 1-1.06 0 .75.75 0 0 1 0-1.061L3.94 5l-.97-.97a.75.75 0 1 1 1.061-1.061l.97.97.97-.97A.75.75 0 1 1 7.032 4.03l-.97.97.968.97Z" /></symbol>'}),dt=(a().add(ft),ft),pt=new(o())({id:"cluster",use:"cluster-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster"><path d="M11 3.494 4.5 7.247v7.506l6.5 3.753 6.5-3.753V7.247L11 3.494Zm0 1.732 4.227 2.44-1.99 1.161L11 7.537 8.736 8.842l-2.01-1.148L11 5.226Zm-.75 11.115L6 13.887v-4.88l2 1.143v2.582l2.25 1.3v2.31Zm-.75-4.475v-1.732l1.5-.866 1.5.866v1.731l-1.5.866-1.5-.865Zm6.5 2.021-4.227 2.44-.01-2.304-.013.008L14 12.732V10.12l2-1.167v4.935Z" /></symbol>'}),ht=(a().add(pt),pt),gt=new(o())({id:"cluster_spaces",use:"cluster_spaces-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="cluster_spaces"><path d="M12 4v6h6V4h-6Zm4.5 4.5h-3v-3h3v3ZM4 18h6v-6H4v6Zm1.5-4.5h3v3h-3v-3ZM4 10h6V4H4v6Zm8 8h6v-6h-6v6Zm1.5-4.5h3v3h-3v-3Z" /></symbol>'}),vt=(a().add(gt),gt),mt=new(o())({id:"code",use:"code-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="code"><path d="M9.24 4.29a.753.753 0 0 0-.95.47l-2 6a.753.753 0 0 0 .71.99c.31 0 .61-.2.71-.51l2-6c.13-.4-.08-.82-.47-.95ZM5.32 5c-.3 0-.56.17-.69.45L3.5 8l1.14 2.55c.12.27.39.45.69.45.54 0 .91-.56.69-1.05L5.14 8 6 6.05C6.23 5.56 5.86 5 5.32 5Zm5.36 0c-.54 0-.91.56-.69 1.05L10.85 8l-.86 1.95c-.22.5.14 1.05.69 1.05.3 0 .56-.17.69-.45L12.5 8l-1.14-2.55a.728.728 0 0 0-.68-.45Zm1.67-3h-8.7C2.19 2 1 3.19 1 4.65v6.69c0 1.47 1.19 2.65 2.65 2.65h8.69c1.47 0 2.65-1.19 2.65-2.65V4.65A2.64 2.64 0 0 0 12.35 2Zm1.15 9.35c0 .64-.52 1.15-1.15 1.15h-8.7c-.64 0-1.15-.52-1.15-1.15v-6.7c0-.63.52-1.15 1.15-1.15h8.69c.64 0 1.15.52 1.15 1.15v6.7h.01Z" /></symbol>'}),yt=(a().add(mt),mt),bt=n(53685),wt=new(o())({id:"collect",use:"collect-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="collect"><path d="M7.79 11.79a.996.996 0 0 0 0 1.41L12 17.41l4.21-4.21a.996.996 0 1 0-1.41-1.41l-1.8 1.8V2h-2v11.59L9.21 11.8a.999.999 0 0 0-1.42-.01ZM19.64 8H14v3.17l.09-.09a1.983 1.983 0 0 1 2.82 0 1.983 1.983 0 0 1 0 2.82L12 18.83l-4.91-4.91a1.983 1.983 0 0 1 0-2.82 1.983 1.983 0 0 1 2.82 0l.09.09V8H4V6.36c0-.2.16-.36.36-.36H10V4H4.36C3.06 4 2 5.06 2 6.36v12.09A3.55 3.55 0 0 0 5.55 22h12.89a3.55 3.55 0 0 0 3.55-3.55v-8.09A2.35 2.35 0 0 0 19.64 8Z" /></symbol>'}),_t=(a().add(wt),wt),xt=new(o())({id:"community",use:"community-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="community"><path d="M10 5.25H6v1.5h4v-1.5Zm-1.5 3H6v1.5h2.5v-1.5Zm6.48-1.09c.01.11.02.22.02.34 0 .94-.19 1.84-.53 2.66.01.11.03.22.03.34V15H10c-1.33 0-2.5-.59-3.32-1.5H8c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6v6h2.83c1.04 1.79 2.96 3 5.17 3h6v-6c0-1.23-.38-2.38-1.02-3.34ZM3.5 12V7.5C3.5 5.01 5.51 3 8 3c1.42 0 2.67.67 3.49 1.7.08.1.17.2.25.3.48.72.76 1.57.76 2.5 0 2.49-2.01 4.5-4.5 4.5H3.5Z" /></symbol>'}),St=(a().add(xt),xt),Ot=new(o())({id:"connection_to_cloud",use:"connection_to_cloud-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="connection_to_cloud"><path d="M15.05 5.07A4.956 4.956 0 0 1 17 9c0 2.58-1.96 4.68-4.47 4.95l.21-.21c.33-.33.51-.77.51-1.24 0-.072-.008-.136-.017-.206a5.176 5.176 0 0 1-.003-.024c1.32-.5 2.27-1.77 2.27-3.27 0-.9-.35-1.71-.9-2.32-.31-.35-.69-.63-1.11-.83l-.025-.015-.025-.015c-.18-.09-.38-.15-.58-.2l-.037-.014c-.023-.01-.048-.02-.073-.026-.24-.05-.49-.08-.74-.08a.506.506 0 0 1-.065.01c-.023.003-.045.005-.065.01l-.22.03-.41.04c-.72.16-1.36.55-1.84 1.08l-1.11-1c.42-.48.94-.87 1.51-1.15A4.43 4.43 0 0 0 7 3.5C4.52 3.5 2.5 5.52 2.5 8c0 1.7.96 3.16 2.35 3.92a1.739 1.739 0 0 0 .41 1.81l.01.01A5.994 5.994 0 0 1 1 8c0-3.31 2.69-6 6-6 1.79 0 3.39.79 4.48 2.04a4.731 4.731 0 0 1 1.44.06c.02.005.04.008.06.01a3.832 3.832 0 0 1 .81.24 4.322 4.322 0 0 1 1.158.644l.102.076Z" /><path d="m7.119 13.09 1.22-1.22v3.19h1.5v-3.19l1.22 1.22c.29.29 1.06 0 1.06 0s.29-.77 0-1.06L9.089 9l-3.03 3.03c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0Z" /></symbol>'}),Ct=(a().add(Ot),Ot),Et=new(o())({id:"connectivity_status_live",use:"connectivity_status_live-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_live"><circle cx="9" cy="9" r="9" fill="#BFE5C6" /><path fill="#00AB44" d="M6.903 7.351c0-.538.2-1.024.51-1.396l-.73-.645a3.169 3.169 0 0 0-.748 2.041A3.2 3.2 0 0 0 6.684 9.4l.729-.652a2.18 2.18 0 0 1-.51-1.396Zm-.961-2.7L5.206 4A5.246 5.246 0 0 0 4 7.351c0 1.277.458 2.447 1.206 3.351l.736-.652a4.196 4.196 0 0 1-.974-2.699c0-1.03.367-1.975.974-2.7ZM9 8.516c.62 0 1.129-.526 1.129-1.164 0-.638-.51-1.163-1.129-1.163-.62 0-1.129.525-1.129 1.163S8.381 8.515 9 8.515Zm0-1.33c.09 0 .161.073.161.166 0 .186-.322.186-.322 0 0-.093.07-.166.161-.166ZM12.793 4c-.2.173-.412.366-.735.652.607.724.974 1.668.974 2.7 0 1.03-.367 1.974-.974 2.698.323.286.536.473.736.652A5.233 5.233 0 0 0 14 7.352 5.233 5.233 0 0 0 12.793 4Zm-1.477 1.303-.729.645c.316.38.51.864.51 1.396 0 .532-.2 1.024-.51 1.397.336.292.368.325.73.645a3.2 3.2 0 0 0 .748-2.048c0-.785-.29-1.483-.749-2.035Zm-1.348 7.7h-.484V9.844A.495.495 0 0 0 9 9.346a.495.495 0 0 0-.484.498v3.159h-.484c-.535 0-.967.445-.967.997h3.87c0-.552-.432-.997-.967-.997Z" /></symbol>'}),At=(a().add(Et),Et),kt=new(o())({id:"connectivity_status_offline",use:"connectivity_status_offline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_offline"><circle cx="9" cy="9" r="9" fill="#FFEBEF" /><path fill="#ED7374" d="M9 2.778A6.218 6.218 0 0 0 2.778 9 6.218 6.218 0 0 0 9 15.222 6.218 6.218 0 0 0 15.222 9 6.218 6.218 0 0 0 9 2.778ZM4.111 9A4.898 4.898 0 0 1 9 4.111c1.111 0 2.124.373 2.951.996l-6.835 6.835A4.784 4.784 0 0 1 4.11 9ZM9 13.89a4.878 4.878 0 0 1-2.951-.996l6.835-6.835c.623.818.996 1.84.996 2.95.009 2.685-2.187 4.88-4.88 4.88Z" /></symbol>'}),Mt=(a().add(kt),kt),Pt=new(o())({id:"connectivity_status_stale",use:"connectivity_status_stale-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="connectivity_status_stale"><circle cx="9" cy="9" r="9" fill="#ECEEEF" /><path fill="#8F9EAA" d="M7.03 4H5.47C4.66 4 4 4.66 4 5.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C8.5 4.66 7.84 4 7.03 4ZM5.5 12.53 5.47 5.5H7l.03 7-1.53.03ZM12.53 4h-1.56c-.81 0-1.47.66-1.47 1.47v7.06c0 .81.66 1.47 1.47 1.47h1.56c.81 0 1.47-.66 1.47-1.47V5.47C14 4.66 13.34 4 12.53 4ZM11 12.53l-.03-7.03h1.53l.03 7-1.53.03Z" /></symbol>'}),Rt=(a().add(Pt),Pt),Tt=new(o())({id:"container",use:"container-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="container"><path d="M15.613 5H6.387A2.386 2.386 0 0 0 4 7.387v7.227A2.386 2.386 0 0 0 6.387 17h9.227a2.387 2.387 0 0 0 2.387-2.387V7.387A2.388 2.388 0 0 0 15.613 5Zm.887 9.613a.888.888 0 0 1-.887.887H6.387a.888.888 0 0 1-.887-.887V7.387c0-.489.398-.887.887-.887h9.227c.489 0 .887.398.887.887v7.226H16.5ZM10.249 14h1.5V8.002h-1.5V14Zm-3 0h1.5V8.002h-1.5V14Zm6 0h1.5V8.002h-1.5V14Z" /></symbol>'}),It=(a().add(Tt),Tt),Bt=new(o())({id:"controller_kind",use:"controller_kind-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_kind"><path d="M10.25 15h1.5v-1.5h-1.5V15Zm3.189-11H8.561A4.561 4.561 0 0 0 4 8.561v4.879A4.56 4.56 0 0 0 8.561 18h4.879a4.561 4.561 0 0 0 4.561-4.561V8.561A4.562 4.562 0 0 0 13.439 4Zm3.061 9.439a3.064 3.064 0 0 1-3.061 3.061H8.561A3.064 3.064 0 0 1 5.5 13.439V8.561A3.064 3.064 0 0 1 8.561 5.5h4.879a3.064 3.064 0 0 1 3.06 3.061v4.878ZM13 9.25h-1.25V7h-1.5v2.25H9c-.965 0-1.75.785-1.75 1.75s.785 1.75 1.75 1.75h4c.965 0 1.75-.785 1.75-1.75S13.965 9.25 13 9.25Zm0 2H9a.25.25 0 0 1 0-.5h4a.25.25 0 0 1 0 .5Z" /></symbol>'}),jt=(a().add(Bt),Bt),Dt=new(o())({id:"controller_name",use:"controller_name-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="controller_name"><path d="m12.227 8.228-3.354 3.21a1.622 1.622 0 1 0 2.667 1.666l1.415-4.422a.443.443 0 0 0-.728-.454Zm2.482-3.166A6.996 6.996 0 0 0 5.063 7.29 7.001 7.001 0 0 0 10.993 18 7 7 0 0 0 14.71 5.062Zm.956 8.852a5.473 5.473 0 0 1-4.67 2.586 5.496 5.496 0 0 1-2.909-.836 5.507 5.507 0 0 1-1.75-7.579A5.477 5.477 0 0 1 11.008 5.5c1.026 0 2.031.29 2.907.836a5.508 5.508 0 0 1 1.75 7.579Z" /></symbol>'}),Lt=(a().add(Dt),Dt),Zt=new(o())({id:"copy",use:"copy-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="copy"><path d="M10.146 14h1.412v-1.5h-1.412V14Zm-2.352 0h1.412v-1.5H7.794V14ZM11 0H0v11h3v.559h1.5V11H11V4.5h.559V3H11V0ZM9.5 9.5h-8v-8h8v8ZM3 14h1.5v-1.5H3V14Zm2.441 0h1.411v-1.5H5.441V14Zm7.059 0H14v-1.5h-1.5V14Zm0-11v1.5H14V3h-1.5Zm0 3.853H14V5.441h-1.5v1.412Zm0 2.353H14V7.794h-1.5v1.412Zm0 2.353H14v-1.412h-1.5v1.412Z" /></symbol>'}),Nt=(a().add(Zt),Zt),Ft=new(o())({id:"correlation",use:"correlation-usage",viewBox:"0 0 28 28",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 28 28" id="correlation"><path fill="#00AB44" d="M21.56 2.333H6.79A4.456 4.456 0 0 0 2.333 6.79v14.77a4.113 4.113 0 0 0 4.107 4.107h15.12a4.113 4.113 0 0 0 4.107-4.107V6.44a4.113 4.113 0 0 0-4.107-4.107ZM19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21h-.012Zm1.995-9.672a1.146 1.146 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645Z" /><path fill="#fff" d="M21.828 11.328a1.145 1.145 0 0 1-.828.339c-.303 0-.595-.117-.828-.339l-.339-.338v2.567L10.5 18.223V21H8.167v-4.223l3.22-1.61-3.22-1.61V10.99l-.339.338a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.161 3.162 3.161a1.162 1.162 0 0 1-.828 1.984c-.304 0-.595-.117-.829-.339l-.338-.35v1.132l3.5 1.75 3.5-1.75v-1.132l-.338.339a1.162 1.162 0 0 1-1.645 0 1.162 1.162 0 0 1 0-1.645l3.15-3.15 3.161 3.161c.455.444.455 1.19 0 1.645Z" /><path fill="#fff" d="M19.833 21H17.5v-2.777l-2.193-1.096 2.613-1.307 1.925.957V21h-.012Z" /></symbol>'}),Ht=(a().add(Ft),Ft),Vt=new(o())({id:"correlation_inv",use:"correlation_inv-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="correlation_inv"><path d="M12.99 15.24 17 17.58V22h2v-5.57l-4.02-2.35-1.99 1.16Zm9.22-9.45L18 1.59 13.79 5.8a.996.996 0 1 0 1.41 1.41l1.8-1.8v4.01l-5 2.92-5-2.91V5.41L8.79 7.2c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L6 1.59l-4.21 4.2A.996.996 0 1 0 3.2 7.2L5 5.41v5.16l5.02 2.93L5 16.43V22h2v-4.43l12-7V5.41l1.79 1.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41Z" /></symbol>'}),zt=(a().add(Vt),Vt),Ut=new(o())({id:"cpu",use:"cpu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="cpu"><path d="M11 2 9.22 8H14l-7 8 1.78-6H4l7-8Zm0-1.5c-.42 0-.84.18-1.13.51l-7 8c-.39.44-.48 1.07-.24 1.61s.78.88 1.37.88h2.77l-1.21 4.07a1.505 1.505 0 0 0 1.43 1.93c.42 0 .84-.18 1.13-.51l6.96-7.96a1.498 1.498 0 0 0-1.09-2.53H14h-2.77l1.21-4.07A1.505 1.505 0 0 0 11 .5Z" /></symbol>'}),Gt=(a().add(Ut),Ut),Wt=new(o())({id:"cross_s",use:"cross_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="cross_s"><path fill-rule="evenodd" d="M13 4.538 11.461 3 8 6.462 4.538 3 3 4.538 6.462 8 3 11.461 4.538 13 8 9.538 11.461 13 13 11.461 9.538 8 13 4.538Z" clip-rule="evenodd" /></symbol>'}),qt=(a().add(Wt),Wt),$t=new(o())({id:"data_retention",use:"data_retention-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="data_retention"><path d="m13.78 4.83-.93-3.46a.75.75 0 1 0-1.45.39l.2.76C10.8 2.2 9.93 2 9 2a6.98 6.98 0 0 0-6.04 3.48l1.11 1.11A5.477 5.477 0 0 1 9 3.5c.78 0 1.52.18 2.2.48l-1.26.34c-.2.05-.36.18-.46.35-.1.17-.13.37-.07.57.11.4.52.64.92.53l3.45-.94ZM3.53 9.59l.94.94c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L3 6.94.47 9.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.55-.55c.48 3.39 3.38 6 6.9 6.02l.41-1.52c-.13.01-.25.02-.38.02-2.84 0-5.18-2.15-5.48-4.91Zm10.53 5.11-.75-.2A6.992 6.992 0 0 0 16 9c0-1.27-.34-2.45-.93-3.48l-1.51.4c.59.88.94 1.93.94 3.07 0 1.81-.89 3.41-2.24 4.41l.33-1.25c.05-.2.02-.4-.07-.57-.1-.17-.26-.3-.46-.35a.75.75 0 0 0-.92.53l-.93 3.46 3.46.93a.75.75 0 1 0 .39-1.45Z" /></symbol>'}),Yt=(a().add($t),$t),Xt=n(94631),Kt=new(o())({id:"dashboard",use:"dashboard-usage",viewBox:"0 0 22 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 18" id="dashboard"><path d="M11.98 11.29 4.27 8.53a.551.551 0 0 0-.54.94l6.29 5.24a1.994 1.994 0 0 0 3.16-.86 2 2 0 0 0-1.2-2.56ZM11 0C4.93 0 0 4.93 0 11c0 2.39.77 4.68 2.22 6.6l.3.4h16.96l.3-.4C21.23 15.67 22 13.39 22 11c0-6.07-4.93-11-11-11Zm7.47 16H3.53C2.53 14.51 2 12.79 2 11c0-4.62 3.51-8.44 8-8.94V3c0 .55.45 1 1 1s1-.45 1-1v-.94c3.21.36 5.9 2.4 7.19 5.23l-.89.29c-.53.17-.81.73-.64 1.26.14.42.53.69.95.69.1 0 .21-.02.31-.05l.9-.29c.12.59.18 1.19.18 1.81 0 1.79-.53 3.51-1.53 5Z" /></symbol>'}),Jt=(a().add(Kt),Kt),Qt=new(o())({id:"dashboard_add",use:"dashboard_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dashboard_add"><path fill-rule="evenodd" d="M8.594 9.357 3.921 7.721a.342.342 0 0 0-.37.101.322.322 0 0 0 .043.456l3.812 3.106a1.233 1.233 0 0 0 1.268.174 3.318 3.318 0 0 1 .423-1.865 1.19 1.19 0 0 0-.503-.336Zm-5.121 2.791h5.294c.11.436.304.837.566 1.185H2.861l-.182-.237a6.36 6.36 0 0 1-1.346-3.91c0-3.598 2.988-6.52 6.667-6.52s6.667 2.922 6.667 6.52c0 .048 0 .096-.002.145a3.347 3.347 0 0 0-1.284-1.033 5.11 5.11 0 0 0-.036-.185l-.239.075A3.325 3.325 0 0 0 12.08 8a.586.586 0 0 1 .346-.842l.539-.172a5.454 5.454 0 0 0-4.358-3.1v.557A.601.601 0 0 1 8 5.037a.601.601 0 0 1-.606-.593v-.557c-2.721.297-4.849 2.56-4.849 5.298 0 1.06.322 2.08.928 2.963Zm5.86-.815a2.666 2.666 0 1 1 5.334 0 2.666 2.666 0 1 1-5.334 0Zm3.334 2V12H14v-1.333h-1.333V9.333h-1.334v1.334H10V12h1.333v1.333h1.334Z" clip-rule="evenodd" /></symbol>'}),en=(a().add(Qt),Qt),tn=new(o())({id:"dashboards",use:"dashboards-usage",viewBox:"0 0 16 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 10" id="dashboards"><path d="M6.27 5.18 3.13 4.6a.436.436 0 0 0-.46.23c-.1.21-.02.47.19.57l2.86 1.42c.07.03.15.06.23.08.47.09.93-.22 1.02-.7a.868.868 0 0 0-.7-1.02ZM10 0c-.7 0-1.37.13-1.99.35C7.38.13 6.71 0 6 0 2.69 0 0 2.69 0 6c0 1.3.42 2.54 1.22 3.6l.3.4h8.95l.3-.4c.8-1.06 1.22-2.31 1.22-3.6 0-1.51-.57-2.89-1.49-3.95C12.47 2.3 14 3.97 14 6c0 .7-.19 1.39-.55 2h-.76c-.21.71-.54 1.38-.98 2h2.77l.3-.4C15.58 8.54 16 7.29 16 6c0-3.31-2.69-6-6-6Zm-.55 8h-6.9C2.19 7.39 2 6.7 2 6c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .7-.19 1.39-.55 2Z" /></symbol>'}),nn=(a().add(tn),tn),rn=new(o())({id:"disk",use:"disk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="disk"><path d="M4 13.5h2V12H4v1.5Zm12.44-3.91-1.82-6.37a2.376 2.376 0 0 0-2.27-1.72h-6.7c-1.05 0-1.98.71-2.27 1.72L1.56 9.59l-.06.2v3.58C1.5 14.82 2.68 16 4.13 16h9.74c1.45 0 2.63-1.18 2.63-2.63V9.79l-.06-.2ZM15 13.37c0 .62-.51 1.13-1.13 1.13H4.13c-.62 0-1.13-.51-1.13-1.13v-2.62h8.5c.83 0 1.5-.67 1.5-1.5H3.21l1.61-5.62c.11-.37.45-.63.83-.63h6.69c.39 0 .73.26.83.63L15 10v3.37Z" /></symbol>'}),on=(a().add(rn),rn),an=new(o())({id:"documentation",use:"documentation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="documentation"><path d="M19.5 16h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5Zm0 2h-13c-.28 0-.5.22-.5.5s.22.5.5.5h13c.28 0 .5-.22.5-.5s-.22-.5-.5-.5Zm2.5-5.7V5.63c0-2-1.63-3.63-3.63-3.63H7C4.24 2 2 4.24 2 7v11c0 .15.03.3.1.43A4.503 4.503 0 0 0 6.5 22H21c.55 0 1-.45 1-1s-.45-1-1-1H6.5a2.5 2.5 0 0 1 0-5h12.8c1.49 0 2.7-1.21 2.7-2.7Zm-2 0c0 .39-.31.7-.7.7H6.5c-.92 0-1.78.28-2.5.76V7c0-1.65 1.35-3 3-3h11.37c.9 0 1.63.73 1.63 1.63v6.67Z" /></symbol>'}),sn=(a().add(an),an),ln=n(7775),un=new(o())({id:"dots_2x3",use:"dots_2x3-usage",viewBox:"0 0 6 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 10" id="dots_2x3"><path d="M1 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Zm0-4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Zm4-2c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1Zm0 6c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1ZM1 0C.4 0 0 .4 0 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Zm4 4c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1Z" /></symbol>'}),cn=(a().add(un),un),fn=new(o())({id:"download",use:"download-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="download"><path d="M18 13v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 16.1V13H0v3.1C0 18.25 1.75 20 3.9 20h12.2c2.15 0 3.9-1.75 3.9-3.9V13h-2Zm-8 1.41 5.21-5.21a.996.996 0 1 0-1.41-1.41l-2.8 2.8V1c0-.55-.45-1-1-1S9 .45 9 1v9.59l-2.79-2.8A.996.996 0 1 0 4.8 9.2l5.2 5.21Z" /></symbol>'}),dn=(a().add(fn),fn),pn=n(69999),hn=new(o())({id:"edit",use:"edit-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="edit"><circle cx="8" cy="8" r="8" fill="#536775" /><path fill="#fff" d="M12.23 3.765a2.638 2.638 0 0 0-2.555-.67c-.455.12-.86.38-1.19.715L7.295 5 9.19 6.895c.39.39 1.025.39 1.415 0L8.705 5l.525-.525c.605-.605 1.68-.605 2.29 0 .305.31.475.72.475 1.15 0 .425-.175.845-.475 1.145l-4.76 4.76-.91.13a2.492 2.492 0 0 0-1.505-1.505l.13-.915L7.65 6.065l-.71-.71-3.41 3.41-.47 3.285c-.04.245.04.495.215.67.145.145.345.23.545.23a.82.82 0 0 0 .115-.01l3.295-.47 4.965-4.965c.33-.33.59-.735.71-1.19.25-.935-.01-1.88-.675-2.55ZM4.09 11.91l.105-.735c.27.14.49.36.63.63l-.735.105Z" /></symbol>'}),gn=(a().add(hn),hn),vn=new(o())({id:"error",use:"error-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="error"><path fill-rule="evenodd" d="M1 21h22L12 2 1 21Zm12-3h-2v-2h2v2Zm0-4h-2v-4h2v4Z" clip-rule="evenodd" /><mask id="error_a" width="22" height="19" x="1" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M1 21h22L12 2 1 21Zm12-3h-2v-2h2v2Zm0-4h-2v-4h2v4Z" clip-rule="evenodd" /></mask></symbol>'}),mn=(a().add(vn),vn),yn=new(o())({id:"exclamation",use:"exclamation-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="exclamation"><path d="m11.865 14.354-.656-4.656V6.546h2.176v3.152l-.624 4.656h-.896Zm.432 3.552c-.459 0-.79-.106-.992-.32-.203-.213-.304-.485-.304-.816v-.32c0-.33.101-.602.304-.816.203-.213.533-.32.992-.32.448 0 .773.107.976.32.203.214.304.486.304.816v.32c0 .331-.101.603-.304.816-.203.214-.528.32-.976.32Z" /></symbol>'}),bn=(a().add(yn),yn),wn=n(25271),_n=new(o())({id:"favorites",use:"favorites-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="favorites"><path d="M3 2v11.5l6 3 6-3V2H3Zm7.4 8.43L9 9.69l-1.4.74.27-1.56-1.14-1.11 1.57-.22.7-1.42.7 1.42 1.57.23-1.13 1.11.26 1.55Z" /></symbol>'}),xn=(a().add(_n),_n),Sn=new(o())({id:"feed",use:"feed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="feed"><g clip-path="url(#feed_a)"><path d="M12.12 8C13.16 8 14 7.16 14 6.12V2.88C14 1.84 13.16 1 12.12 1H3.88C2.84 1 2 1.84 2 2.88V10l2-2h8.12ZM3.5 2.88c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.25c0 .21-.17.38-.38.38H3.5V2.88Zm1.79.93a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38Zm2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38ZM14.12 9H5.88C4.84 9 4 9.84 4 10.88v3.25c0 1.04.84 1.88 1.88 1.88H14l2 2v-7.12C16 9.84 15.16 9 14.12 9Zm.38 5.5H5.88a.38.38 0 0 1-.38-.38v-3.25c0-.21.17-.38.38-.38h8.25c.21 0 .38.17.38.38v3.63h-.01Zm-3.21-2.69a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38Zm2 0a.717.717 0 0 0-.58 0 .746.746 0 0 0 0 1.38.717.717 0 0 0 .58 0 .746.746 0 0 0 0-1.38Z" /></g><defs><clipPath id="feed_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'}),On=(a().add(Sn),Sn),Cn=new(o())({id:"filter",use:"filter-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="filter"><path d="M18.467 4.222H5.533c-.722 0-1.31.59-1.31 1.311v3.134l4.444 4.444v6.667h2.222l4.444-3.334v-3.333l4.445-4.444V5.533c0-.722-.59-1.31-1.311-1.31Zm-.356 3.756-3.956 3.955-.488.49v3.188l-3.334 2.5v-5.689l-.489-.489-3.266-3.266h6.533c.611 0 1.111-.5 1.111-1.111H5.89V5.889H18.11v2.089Z" /></symbol>'}),En=(a().add(Cn),Cn),An=new(o())({id:"filterList",use:"filterList-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="filterList"><path d="m3 5 .5 2h11l.5-2H3Zm4.5 8h3l.5-2H7l.5 2Zm-2-3h7l.5-2H5l.5 2Z" /></symbol>'}),kn=(a().add(An),An),Mn=new(o())({id:"force_play",use:"force_play-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play"><path d="M15.55 7.95 7.5 2.09a.942.942 0 0 0-1.5.77v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .77.88 1.22 1.5.77l8.05-5.85a1.3 1.3 0 0 0 0-2.11Z" /></symbol>'}),Pn=(a().add(Mn),Mn),Rn=new(o())({id:"force_play_outline",use:"force_play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="force_play_outline"><path d="M15.55 7.95 7.5 2.09a.904.904 0 0 0-.55-.18.95.95 0 0 0-.95.95v5.39H3.5V2H2v14h1.5V9.75H6v5.39c0 .56.46.95.95.95.19 0 .38-.06.55-.18l8.05-5.85a1.3 1.3 0 0 0 0-2.11Zm-8.05 6.1V3.95L14.45 9 7.5 14.05Z" /></symbol>'}),Tn=(a().add(Rn),Rn),In=new(o())({id:"functions",use:"functions-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="functions"><path d="m7.381 2.268.008-.046-.627-.16c-.623-.16-1.274-.005-1.798.43-.539.445-.893 1.144-.976 1.92l-.079.735h-.473l-.414 1.292h.75L3.497 9l-.412 3.649c-.041.368-.15.72-.316 1.033a2.418 2.418 0 0 1-.604.745L2 15.929l.032.071.474-.309a3.545 3.545 0 0 0 1.176-1.315c.25-.47.412-1 .474-1.554L4.57 9.17l.291-2.73h.95l.385-1.204v-.088H4.998l.061-.57c.044-.414.233-.786.52-1.023a1.07 1.07 0 0 1 .957-.23l.34.088.505-1.144ZM9.186 8.598l1.276 2.144-1.276 2.145.88.75 1.058-1.78 1.06 1.78.88-.75-1.277-2.145 1.276-2.144-.88-.75-1.059 1.78-1.059-1.78-.88.75ZM6.234 9.733c.258-1.79 1.133-3.25 1.863-4.062l.153.198v1.53a6.684 6.684 0 0 0-.952 2.554c-.171 1.187-.004 2.576.952 4.01v1.5l-.16.2c-1.724-1.989-2.121-4.095-1.856-5.93ZM14.062 15.665c.73-.81 1.605-2.272 1.863-4.061.265-1.835-.132-3.941-1.856-5.93l-.16.2v1.5c.955 1.433 1.123 2.823.952 4.01a6.685 6.685 0 0 1-.953 2.554v1.53l.154.197Z" /></symbol>'}),Bn=(a().add(In),In),jn=new(o())({id:"full_screen",use:"full_screen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="full_screen"><path d="m11.53 7.53 2.97-2.97v2.19a.75.75 0 0 0 1.5 0V3.06l.03-.03L16 3V2h-1l-.03-.03-.03.03h-3.69a.75.75 0 0 0 0 1.5h2.189l-2.97 2.97 1.061 1.06Zm-5.06 2.94L3.5 13.439v-2.19a.75.75 0 0 0-1.5 0v3.69l-.03.03.03.03v1h1l.03.03.03-.03h3.69a.75.75 0 0 0 0-1.5H4.561l2.97-2.97-1.061-1.06Zm.28-6.97a.75.75 0 0 0 0-1.5H3.061l-.03-.03L3 2H2v1l-.03.03.03.03v3.69a.75.75 0 0 0 1.5 0V4.56l2.97 2.97 1.06-1.06L4.561 3.5H6.75ZM16 11.25a.75.75 0 0 0-1.5 0v2.189l-2.97-2.97-1.06 1.06 2.97 2.97h-2.19a.75.75 0 0 0 0 1.5h3.689l.03.03.03-.03h1v-1l.03-.03-.03-.03v-3.69H16Z" /></symbol>'}),Dn=(a().add(jn),jn),Ln=new(o())({id:"gear",use:"gear-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="gear"><path d="M7.17 7.17a4.004 4.004 0 0 0 0 5.66C7.95 13.61 8.97 14 10 14s2.05-.39 2.83-1.17C13.59 12.07 14 11.07 14 10s-.42-2.07-1.17-2.83a4.008 4.008 0 0 0-5.66 0Zm4.24 4.24c-.78.78-2.05.78-2.83 0a1.983 1.983 0 0 1 0-2.82c.39-.39.9-.58 1.41-.58.51 0 1.02.19 1.41.58.38.38.59.88.59 1.41 0 .53-.2 1.04-.58 1.41Zm8.5-2.71-.13-.99-.86-.49-.45-.26c-.1-.27-.21-.54-.33-.8l.14-.5.26-.96-.6-.79c-.3-.39-.57-.7-.85-.98-.29-.29-.6-.56-.99-.86l-.79-.6-.96.26-.5.14c-.26-.12-.53-.23-.8-.33l-.26-.45-.49-.86-.99-.13c-.48-.06-.9-.09-1.3-.09s-.82.03-1.3.09l-.99.13-.49.86-.26.45c-.27.1-.54.21-.8.33l-.5-.14-.97-.26-.79.6c-.39.3-.7.57-.98.85-.29.29-.56.6-.86.99l-.6.79.26.96.14.5c-.12.26-.23.53-.33.8l-.45.26-.86.49-.13.99c-.06.48-.09.9-.09 1.3s.03.82.09 1.3l.13.99.86.49.45.26c.1.27.21.54.33.8l-.14.5-.26.96.6.79c.3.39.57.7.85.98.29.29.6.56.99.86l.79.6.96-.26.5-.14c.26.12.53.23.8.33l.26.45.49.86.99.13c.48.06.9.09 1.3.09s.82-.03 1.3-.09l.99-.13.49-.86.26-.45c.27-.1.54-.21.8-.33l.5.14.96.26.79-.6c.39-.3.7-.57.98-.85.29-.29.56-.6.86-.99l.6-.79-.26-.96-.14-.5c.12-.26.23-.53.33-.8l.45-.26.86-.49.13-.99c.06-.48.09-.9.09-1.3s-.02-.82-.08-1.3Zm-1.99 2.34-1.14.65c-.17.66-.43 1.3-.79 1.91l.35 1.27c-.21.28-.44.54-.68.79-.25.25-.51.47-.79.68L13.6 16c-.6.36-1.24.62-1.91.79l-.65 1.14c-.34.04-.69.08-1.04.08-.35 0-.7-.03-1.04-.08l-.65-1.14A7.35 7.35 0 0 1 6.4 16l-1.27.35c-.28-.21-.54-.44-.79-.68-.25-.25-.47-.51-.68-.79L4 13.6c-.36-.6-.62-1.24-.79-1.91l-1.14-.65C2.03 10.7 2 10.35 2 10c0-.35.03-.7.08-1.04l1.14-.65c.17-.66.43-1.3.79-1.91l-.35-1.27c.21-.28.44-.54.68-.79.25-.25.51-.47.79-.68L6.4 4c.6-.36 1.24-.62 1.91-.79l.65-1.14c.34-.04.69-.08 1.04-.08.35 0 .7.03 1.04.08l.65 1.14c.66.17 1.3.43 1.91.79l1.27-.35c.28.21.54.44.79.68.25.25.47.51.68.79L16 6.4c.36.6.62 1.24.79 1.91l1.14.65c.04.34.08.69.08 1.04 0 .35-.04.7-.09 1.04Z" /></symbol>'}),Zn=(a().add(Ln),Ln),Nn=new(o())({id:"github",use:"github-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="github"><path fill-rule="evenodd" d="M12 3a9 9 0 0 0-2.845 17.54c.45.083.614-.195.614-.434 0-.213-.007-.78-.012-1.53-2.503.543-3.031-1.207-3.031-1.207-.41-1.04-1-1.317-1-1.317-.817-.558.062-.547.062-.547.903.064 1.378.928 1.378.928.803 1.375 2.107.978 2.62.747.082-.58.314-.977.571-1.202-1.998-.227-4.1-1-4.1-4.448 0-.983.351-1.787.927-2.415-.093-.228-.402-1.144.089-2.382 0 0 .755-.242 2.474.922.718-.2 1.488-.3 2.253-.303a8.63 8.63 0 0 1 2.253.303c1.719-1.164 2.473-.922 2.473-.922.491 1.238.182 2.154.09 2.382.577.628.925 1.432.925 2.415 0 3.457-2.105 4.218-4.11 4.44.323.278.611.828.611 1.667 0 1.203-.01 2.174-.01 2.47 0 .24.162.52.618.432A9 9 0 0 0 12 3Z" clip-rule="evenodd" /></symbol>'}),Fn=(a().add(Nn),Nn),Hn=new(o())({id:"go_to_node",use:"go_to_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="go_to_node"><path d="M13.5 11.57c0 1.07-.86 1.93-1.93 1.93H6.43c-1.07 0-1.93-.86-1.93-1.93V6.43c0-1.07.86-1.93 1.93-1.93h.07C7.33 4.5 8 3.83 8 3H6.43C4.54 3 3 4.54 3 6.43v5.14C3 13.47 4.54 15 6.43 15h5.14c1.9 0 3.43-1.54 3.43-3.43V10c-.83 0-1.5.67-1.5 1.5v.07ZM10 3c-.41 0-.75.34-.75.75s.34.75.75.75h2.44L8.97 7.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l3.47-3.47V8c0 .41.34.75.75.75S15 8.41 15 8V3h-5Z" /></symbol>'}),Vn=(a().add(Hn),Hn),zn=new(o())({id:"google",use:"google-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="google"><path fill-rule="evenodd" d="M20.64 12.205c0-.639-.057-1.252-.164-1.841H12v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.875 2.684-6.615Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 21c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H3.957v2.332A8.997 8.997 0 0 0 12 21Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M6.964 13.71A5.41 5.41 0 0 1 6.682 12c0-.593.102-1.17.282-1.71V7.958H3.957A8.997 8.997 0 0 0 3 12c0 1.452.348 2.827.957 4.042l3.007-2.332Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M12 6.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C16.463 3.891 14.426 3 12 3a8.997 8.997 0 0 0-8.043 4.958l3.007 2.332C7.672 8.163 9.656 6.58 12 6.58Z" clip-rule="evenodd" /></symbol>'}),Un=(a().add(zn),zn),Gn=new(o())({id:"group_by",use:"group_by-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="group_by"><path d="M3.5 12H2v4h4v-1.5H3.5V12ZM6 12h2v-2H6v2ZM3.5 3.5H6V2H2v4h1.5V3.5ZM12 6h-2v2h2V6Zm2.5 8.5H12V16h4v-4h-1.5v2.5ZM12 2v1.5h2.5V6H16V2h-4Zm0 8h-2v2h2v-2ZM6 8h2V6H6v2Z" /></symbol>'}),Wn=(a().add(Gn),Gn),qn=new(o())({id:"hamburger",use:"hamburger-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="hamburger"><path d="M3 13h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2ZM3 7h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2ZM3 19h18a1 1 0 1 0 0-2H3a1 1 0 1 0 0 2Z" /></symbol>'}),$n=(a().add(qn),qn),Yn=new(o())({id:"help",use:"help-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="help"><path d="M10 12.2c-.72 0-1.3.58-1.3 1.3 0 .72.58 1.3 1.3 1.3.72 0 1.3-.58 1.3-1.3 0-.72-.58-1.3-1.3-1.3ZM13 0c-1.2 0-2.27.54-3 1.38C9.27.54 8.2 0 7 0H0v19h7c1.1 0 2 .9 2 2h2c0-1.1.9-2 2-2h7V0h-7Zm5 17h-5c-1.2 0-2.27.54-3 1.38C9.27 17.54 8.2 17 7 17H2V2h5a2 2 0 0 1 1.72 1h2.56A2 2 0 0 1 13 2h5v15ZM10.88 5.13C8.85 4.54 7 6.06 7 8h2c0-.55.45-1 1-1s1 .45 1 1c0 .37-.21.71-.54.89-.9.47-1.46 1.45-1.46 2.55h2c0-.34.16-.65.39-.77 1.3-.68 1.96-2.21 1.43-3.72a2.915 2.915 0 0 0-1.94-1.82Z" /></symbol>'}),Xn=(a().add(Yn),Yn),Kn=new(o())({id:"hide",use:"hide-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="hide"><path d="M12 11c1.1 0 2-.9 2-2 0-.86-.54-1.58-1.3-1.87l-1.4 3.73c.22.09.45.14.7.14Zm-.47-8.73a.94.94 0 1 0-1.76-.66L9.25 3H6C2.69 3 0 5.69 0 9c0 2.9 2.06 5.32 4.8 5.88l-.32.86a.94.94 0 1 0 1.76.66L11.25 3l.28-.73ZM7.49 7.68A1.98 1.98 0 0 0 6 7c-1.1 0-2 .9-2 2s.9 2 2 2c.09 0 .17-.01.26-.03l-.92 2.46C3.17 13.11 1.5 11.25 1.5 9c0-2.48 2.02-4.5 4.5-4.5h2.69l-1.2 3.18Zm6.61-4.29-.52 1.41A4.49 4.49 0 0 1 16.5 9c0 2.48-2.02 4.5-4.5 4.5h-1.69L9.75 15H12c3.31 0 6-2.69 6-6 0-2.57-1.62-4.76-3.9-5.61Z" /></symbol>'}),Jn=(a().add(Kn),Kn),Qn=new(o())({id:"highlight_area",use:"highlight_area-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="highlight_area"><g clip-path="url(#highlight_area_a)"><path d="M10 13h2v2h1v-2h2v-1h-2v-2h-1v2h-2v1ZM6 13h2v-1H6v1ZM4 13v-1H2v-2H1v2a1 1 0 0 0 1 1h2ZM12 8h1V6h-1v2ZM12 2v2h1V2a1 1 0 0 0-1-1h-2v1h2ZM1 8h1V6H1v2ZM6 2h2V1H6v1ZM2 4V2h2V1H2a1 1 0 0 0-1 1v2h1Z" /></g><defs><clipPath id="highlight_area_a"><path d="M0 0h16v16H0z" /></clipPath></defs></symbol>'}),er=(a().add(Qn),Qn),tr=new(o())({id:"holder",use:"holder-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="holder"><path d="m12 10 3 4H9l3-4Z" /></symbol>'}),nr=(a().add(tr),tr),rr=new(o())({id:"importExport",use:"importExport-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="importExport"><path d="m10.5 7.06 2.03-2.03c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.22.22V2h-1.5v2.19l-.22-.22a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.03 2.03ZM4.53 5.03l.22-.22V7h1.5V4.81l.22.22c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L5.5 1.94 3.47 3.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0ZM12.65 8h-9.3C2.6 8 2 8.6 2 9.35v3.3C2 13.4 2.6 14 3.35 14h9.3c.75 0 1.35-.6 1.35-1.35v-3.3C14 8.6 13.4 8 12.65 8ZM5.5 12H4v-1.5h1.5V12Z" /></symbol>'}),or=(a().add(rr),rr),ir=new(o())({id:"incident_manager",use:"incident_manager-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="incident_manager"><path d="M9 10.3c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2Zm-.13-.68c.41.07.81-.2.88-.62l.36-2c.02-.12.02-.26 0-.39C10 6 9.41 5.59 8.8 5.7c-.61.11-1.02.69-.91 1.3l.36 2c.05.31.29.56.62.62Zm5.95-5.48L10.3 1.53A2.56 2.56 0 0 0 9 1.18c-.46 0-.91.12-1.3.35L3.18 4.14c-.8.46-1.3 1.33-1.3 2.25v5.22c0 .93.5 1.79 1.3 2.25l4.52 2.61c.39.23.84.35 1.3.35.46 0 .91-.12 1.3-.35l4.52-2.61c.8-.46 1.3-1.33 1.3-2.25V6.39c0-.92-.5-1.79-1.3-2.25Zm-.2 7.47c0 .39-.21.76-.55.95l-4.52 2.61a1.084 1.084 0 0 1-1.1 0l-4.52-2.61c-.34-.2-.55-.56-.55-.95V6.39c0-.39.21-.76.55-.95l4.52-2.61a1.084 1.084 0 0 1 1.1 0l4.52 2.61c.34.2.55.56.55.95v5.22Z" /></symbol>'}),ar=(a().add(ir),ir),sr=n(25312),lr=new(o())({id:"information_press",use:"information_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information_press"><path d="M9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714ZM9 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Zm2 6.503c0 .688-.558 1.247-1.247 1.247H7v-.211c0-.698.557-1.26 1.25-1.281V9.5H7A1.5 1.5 0 0 1 8.5 8h1.25v3.25H11v.253Z" /></symbol>'}),ur=(a().add(lr),lr),cr=new(o())({id:"insights",use:"insights-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="insights"><path d="M.5 6.25h1.559a7.037 7.037 0 0 0-.011 1.5H2a1.5 1.5 0 0 1-1.5-1.5ZM1.541 11.145l-.001-.001 1.293-.875c.235.443.511.862.836 1.246l-.046.031a1.5 1.5 0 0 1-2.082-.401ZM2.382 1.614l1.284.869a7.025 7.025 0 0 0-.85 1.236l-.033-.022a1.5 1.5 0 0 1-.401-2.083ZM14.337 2.481l1.281-.867a1.5 1.5 0 0 1-.401 2.083l-.036.025a7.03 7.03 0 0 0-.844-1.241ZM6.119 6.163C5.893 6.969 5 7 5 7a4 4 0 0 1 4-4v1a2.99 2.99 0 0 0-2.881 2.163Z" /><path d="M7.615.645A6.508 6.508 0 0 1 15.5 7c0 2.236-1.15 4.29-3 5.472v1.122A2.91 2.91 0 0 1 9.594 16.5H8.406A2.91 2.91 0 0 1 5.5 13.594v-1.121a6.521 6.521 0 0 1-2.902-6.611c.444-2.586 2.46-4.683 5.017-5.217ZM11 13.594v-2.016A4.998 4.998 0 0 0 9 2c-.353 0-.713.036-1.079.113-1.955.408-3.507 2.033-3.845 4.002-.405 2.358.85 4.463 2.779 5.385H10A1.5 1.5 0 0 1 8.5 13H7v.594C7 14.371 7.63 15 8.406 15h1.188C10.37 15 11 14.371 11 13.594ZM14.377 11.546l-.042-.029a7.01 7.01 0 0 0 .846-1.239l1.279.866-.001.001a1.499 1.499 0 0 1-2.082.401ZM16 7c0-.253-.016-.503-.042-.75H17.5a1.5 1.5 0 0 1-1.5 1.5h-.046A6.91 6.91 0 0 0 16 7Z" /></symbol>'}),fr=(a().add(cr),cr),dr=new(o())({id:"discord",use:"discord-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="discord"><path d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22ZM8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22Z" /><path fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2Zm10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31Z" clip-rule="evenodd" /></symbol>'}),pr=(a().add(dr),dr),hr=new(o())({id:"discord_colored",use:"discord_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="discord_colored"><path fill="#7289DA" d="M12.93 12.45c0-.676.515-1.22 1.166-1.22.64 0 1.165.544 1.165 1.22 0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22ZM8.762 12.45c0-.676.514-1.22 1.165-1.22s1.176.544 1.165 1.22c0 .678-.514 1.22-1.165 1.22-.64 0-1.165-.543-1.165-1.22Z" /><path fill="#7289DA" fill-rule="evenodd" d="M4.342 2h15.305C20.937 2 21.99 3.02 22 4.274V24l-2.467-2.075-1.382-1.231-1.462-1.31.605 2.031H4.342C3.05 21.415 2 20.395 2 19.141V4.273C2 3.021 3.05 2 4.342 2Zm10.142 13.48c.343.41.754.887.754.887 2.391-.074 3.378-1.51 3.476-1.653l.008-.011c0-3.54-1.645-6.413-1.645-6.413-1.633-1.187-3.198-1.153-3.198-1.153l-.16.177c1.942.566 2.844 1.398 2.844 1.398a9.7 9.7 0 0 0-3.438-1.054 9.964 9.964 0 0 0-2.307.022c-.06 0-.111.009-.169.019l-.025.004c-.4.044-1.37.177-2.593.698-.423.178-.674.311-.674.311s.937-.877 2.993-1.442l-.115-.133S8.682 7.103 7.037 8.29c0 0-1.645 2.874-1.645 6.413 0 0 .96 1.598 3.484 1.675 0 0 .423-.488.765-.91-1.45-.421-1.999-1.298-1.999-1.298s.031.022.09.058c.054.032.132.078.23.131.007 0 .014.004.024.01a.266.266 0 0 0 .022.012c.017.012.035.02.052.028a5.974 5.974 0 0 0 .47.234c.142.064.281.12.415.17a8.866 8.866 0 0 0 1.679.478 8.225 8.225 0 0 0 2.958.01 8.364 8.364 0 0 0 1.656-.476c.4-.144.845-.355 1.314-.655 0 0-.571.899-2.068 1.31Z" clip-rule="evenodd" /></symbol>'}),gr=(a().add(hr),hr),vr=new(o())({id:"email",use:"email-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="email"><path d="M18.177 9.974c-1.233.83-2.487 1.624-3.748 2.407L18.5 16.5l-5.341-3.335c-.258.158-.514.32-.773.478l-.385.235-.386-.235c-.259-.157-.515-.319-.774-.478L5.5 16.5l4.07-4.119a119.756 119.756 0 0 1-3.748-2.406l-1.421-.962A3.167 3.167 0 0 1 4 8.699v7.12A2.18 2.18 0 0 0 6.181 18H17.82A2.18 2.18 0 0 0 20 15.82V8.696a3.03 3.03 0 0 1-.402.315l-1.421.963ZM4.907 8.171l1.517.801c1.889 1.003 3.737 2.074 5.576 3.161 1.84-1.085 3.688-2.156 5.577-3.159l1.517-.801c.4-.17.636-.43.749-.794A2.177 2.177 0 0 0 17.819 6H6.18c-.919 0-1.702.57-2.023 1.375.113.366.349.625.75.796ZM17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3ZM21.5 15.82a3.684 3.684 0 0 1-3.68 3.68H6.181A3.685 3.685 0 0 1 2.5 15.819V8.18A3.684 3.684 0 0 1 6.18 4.5h11.639A3.685 3.685 0 0 1 21.5 8.181v7.639Z" /></symbol>'}),mr=(a().add(vr),vr),yr=new(o())({id:"email_colored",use:"email_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="email_colored"><path fill="#49B5E6" d="M17.891 3H6.108A5.108 5.108 0 0 0 1 8.108v7.783A5.109 5.109 0 0 0 6.109 21h11.783A5.108 5.108 0 0 0 23 15.892V8.108A5.108 5.108 0 0 0 17.891 3Z" /><path fill="#fff" d="M17.819 4.5H6.18A3.684 3.684 0 0 0 2.5 8.18v7.639A3.685 3.685 0 0 0 6.181 19.5H17.82a3.684 3.684 0 0 0 3.68-3.68V8.181A3.685 3.685 0 0 0 17.819 4.5ZM6.18 6h11.639c.92 0 1.704.572 2.024 1.378-.113.365-.349.624-.749.794l-1.517.801C15.688 9.976 13.84 11.047 12 12.132c-1.839-1.087-3.687-2.158-5.576-3.161L4.907 8.17c-.4-.17-.637-.43-.749-.796A2.177 2.177 0 0 1 6.18 6ZM20 15.82A2.18 2.18 0 0 1 17.82 18H6.181A2.18 2.18 0 0 1 4 15.819v-7.12c.138.129.284.238.401.314l1.421.962c1.233.83 2.487 1.623 3.748 2.406L5.5 16.5l5.341-3.335c.259.158.515.32.774.478l.386.235.385-.235c.259-.158.515-.319.773-.478L18.5 16.5l-4.071-4.119a122.86 122.86 0 0 0 3.748-2.407l1.421-.962c.118-.077.264-.187.402-.315v7.123Z" /></symbol>'}),br=(a().add(yr),yr),wr=new(o())({id:"mattermost",use:"mattermost-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 700" id="mattermost"><path fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292Z" clip-rule="evenodd" /></symbol>'}),_r=(a().add(wr),wr),xr=new(o())({id:"mattermost_colored",use:"mattermost_colored-usage",viewBox:"0 0 700 700",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 700 700" id="mattermost_colored"><path fill="#0058CC" fill-rule="evenodd" d="m496.909 147.716 2.631 53.063c43.019 47.524 59.999 114.83 38.585 178.086-31.966 94.427-137.372 144.065-235.431 110.87-98.059-33.195-151.637-136.654-119.671-231.082 21.485-63.467 76.148-106.7 139.457-118.148l34.205-40.414c-106.716-2.89-207.397 63.351-243.42 169.762-44.26 130.745 25.849 272.615 156.594 316.876 130.745 44.261 272.615-25.849 316.876-156.594 35.965-106.24-3.587-219.827-89.826-282.419Z" clip-rule="evenodd" /><path fill="#0058CC" fill-rule="evenodd" d="m435.623 304.289-1.811-74.18-1.453-42.685-.983-36.98s.205-17.832-.417-22.022a6.832 6.832 0 0 0-.738-2.226c-.041-.088-.08-.176-.125-.262a5.584 5.584 0 0 0-.142-.229c-.684-1.177-1.759-2.133-3.15-2.604-1.423-.482-2.895-.363-4.173.189l-.079.03a5.765 5.765 0 0 0-.443.226 6.856 6.856 0 0 0-1.825 1.262c-3.04 2.95-13.709 17.24-13.709 17.24l-23.244 28.778-27.083 33.025-46.499 57.826s-21.338 26.631-16.623 59.411 29.085 48.749 47.991 55.15c18.906 6.4 47.965 8.518 71.623-14.657 23.656-23.176 22.883-57.292 22.883-57.292Z" clip-rule="evenodd" /></symbol>'}),Sr=(a().add(xr),xr),Or=new(o())({id:"mobile_app_colored",use:"mobile_app_colored-usage",viewBox:"0 0 25 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 25 24" id="mobile_app_colored"><path fill="#00CD51" d="m22.84 7.67-.09-.09V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H6.68a3.93 3.93 0 0 0-3.93 3.93v14.14A3.93 3.93 0 0 0 6.68 23h7.14a3.93 3.93 0 0 0 3.93-3.93V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22ZM12.25 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h4Zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09h2.58c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06 1.92-.37 3.6 1.09 3.6 2.94v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),Cr=(a().add(Or),Or),Er=new(o())({id:"opsgenie",use:"opsgenie-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="opsgenie"><path d="M7.97 7.825a3.12 3.12 0 1 0 0-6.242 3.12 3.12 0 0 0 0 6.242Z" /><path d="M10.858 12.258a14.347 14.347 0 0 0 2.48-3.266.174.174 0 0 0-.021-.22.175.175 0 0 0-.067-.043l-2.567-1.341c-.116-.059-.233-.03-.262.058a10.441 10.441 0 0 1-2.45 2.887A10.88 10.88 0 0 1 5.55 7.446a.204.204 0 0 0-.262-.058L2.72 8.729a.175.175 0 0 0-.088.263 15.167 15.167 0 0 0 2.45 3.266h.059a13.04 13.04 0 0 0 2.829 2.159 12.482 12.482 0 0 0 2.858-2.13h.03v-.029Z" /></symbol>'}),Ar=(a().add(Er),Er),kr=new(o())({id:"opsgenie_colored",use:"opsgenie_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="opsgenie_colored"><path fill="url(#opsgenie_colored_a)" d="M8 7.982A3.491 3.491 0 1 0 8 1a3.491 3.491 0 0 0 0 6.982Z" /><path fill="url(#opsgenie_colored_b)" d="M7.702 14.906a16.84 16.84 0 0 1-5.528-5.779.391.391 0 0 1 .17-.542l2.644-1.297a.391.391 0 0 1 .51.156 13.07 13.07 0 0 0 5.676 5.137 16.925 16.925 0 0 1-2.877 2.325.561.561 0 0 1-.595 0Z" /><path fill="#2684FF" d="M8.297 14.906a16.83 16.83 0 0 0 5.529-5.779.391.391 0 0 0-.169-.542l-2.645-1.297a.391.391 0 0 0-.511.156 13.064 13.064 0 0 1-5.675 5.137c.87.879 1.835 1.658 2.876 2.325a.561.561 0 0 0 .595 0Z" /><defs><linearGradient id="opsgenie_colored_a" x1="589.669" x2="589.669" y1="233.534" y2="1669.91" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".82" stop-color="#0052CC" /></linearGradient><linearGradient id="opsgenie_colored_b" x1="486.022" x2="888.127" y1="436.972" y2="1041.77" gradientUnits="userSpaceOnUse"><stop stop-color="#2684FF" /><stop offset=".62" stop-color="#0052CC" /></linearGradient></defs></symbol>'}),Mr=(a().add(kr),kr),Pr=new(o())({id:"pagerduty",use:"pagerduty-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pagerduty"><path d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2ZM9.821 18.667H7.897v-3.59H9.82v3.59h.001Zm3.269-5.257H7.897V5.333h5.192a4.038 4.038 0 0 1 .001 8.077ZM12.577 7H9.821v4.744h2.756a2.372 2.372 0 0 0 0-4.744Z" /></symbol>'}),Rr=(a().add(Pr),Pr),Tr=new(o())({id:"pagerduty_colored",use:"pagerduty_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="pagerduty_colored"><path fill="#04AC38" d="M17.668 2H6.332A4.331 4.331 0 0 0 2 6.332v11.336A4.331 4.331 0 0 0 6.332 22h11.336A4.332 4.332 0 0 0 22 17.668V6.332A4.331 4.331 0 0 0 17.668 2Z" /><path fill="#fff" d="M13.09 5.333H7.897v8.077h5.192a4.038 4.038 0 0 0 .001-8.077Zm-.513 6.41H9.821V7h2.756a2.372 2.372 0 0 1 0 4.744Zm-4.68 6.924H9.82v-3.59H7.897v3.59Z" /></symbol>'}),Ir=(a().add(Tr),Tr),Br=new(o())({id:"rocketChat",use:"rocketChat-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="rocketChat"><path d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817Zm-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81Zm9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667ZM12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68Zm-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799Z" /></symbol>'}),jr=(a().add(Br),Br),Dr=new(o())({id:"rocketChat_colored",use:"rocketChat_colored-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" id="rocketChat_colored"><path fill="#fff" d="M1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.432.375.822.2 1.293-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.073-.975 1.617-2.184 1.35-3.668-.248-1.367-1.093-2.312-2.224-3.02C10.935 3.218 8.98 2.94 6.938 3.17c-.372.041-.64 0-.946-.255C4.566 1.718 2.535 1.498 1 2.338Z" /><path fill="#DC2928" d="M8.119 7.205a.824.824 0 0 0-.844.827.85.85 0 0 0 .808.83c.455.011.832-.37.83-.84-.002-.465-.337-.81-.794-.817Zm-2.654 0a.824.824 0 0 0-.836.834.85.85 0 0 0 .814.822.823.823 0 0 0 .824-.846.791.791 0 0 0-.802-.81Zm9.467.136c-.247-1.367-1.092-2.312-2.223-3.019C10.935 3.217 8.98 2.94 6.937 3.17c-.371.041-.64 0-.945-.255C4.566 1.718 2.535 1.498 1 2.338c.179.189.358.37.528.561.356.398.657.83.844 1.337.174.473.153.863-.21 1.292C.906 7.018.908 8.97 2.169 10.48c.36.431.375.822.2 1.294-.175.478-.454.888-.785 1.267-.184.21-.38.41-.583.628.095.052.158.095.226.121 1.765.684 3.387.436 4.855-.762.178-.145.33-.304.6-.232.444.118.904.106 1.358.107 2.063.003 3.978-.472 5.543-1.895 1.074-.974 1.618-2.183 1.35-3.667ZM12.917 9.88c-.897.937-2.048 1.389-3.293 1.609-1.1.194-2.205.193-3.298-.076-.276-.067-.446.022-.63.212-.614.632-1.316 1.107-2.326 1.183.327-.684.584-1.31.53-2.018-.022-.288-.11-.507-.333-.71-1.386-1.258-1.376-2.941.022-4.185 1-.89 2.212-1.295 3.516-1.447 1.6-.186 3.146.009 4.592.764a4.39 4.39 0 0 1 1.295.988c1.017 1.162.993 2.564-.075 3.68Zm-2.17-2.674a.826.826 0 0 0-.826.845.85.85 0 0 0 .825.811c.455.001.822-.385.812-.857a.79.79 0 0 0-.811-.799Z" /></symbol>'}),Lr=(a().add(Dr),Dr),Zr=new(o())({id:"integrations",use:"integrations-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="integrations"><path d="M15.03 3.97a.754.754 0 0 0-1.06 0l-1.94 1.94-1.94-1.94 1.94-1.94c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0L9.03 2.91 7.5 1.38 4.75 4.13c-.81.8-1.25 1.88-1.25 3.02v.23l-.27.27C2.04 8.83 1.96 10.7 2.94 12l-1.47 1.47c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L4 13.06c.57.44 1.27.68 2 .68.89 0 1.72-.35 2.35-.97l.27-.27h.23c1.14 0 2.21-.44 3.02-1.25l2.75-2.75-1.53-1.53 1.94-1.94c.29-.29.29-.77 0-1.06Zm-4.22 6.22c-.52.52-1.22.81-1.96.81H8l-.71.71a1.8 1.8 0 0 1-1.29.53c-.47 0-.93-.18-1.29-.53l-.42-.42c-.71-.71-.71-1.87 0-2.58l.18-.18.94.94c.59.59 1.54.59 2.12 0L5.02 6.96c.05-.66.32-1.29.79-1.77L7.5 3.5l5 5-1.69 1.69Z" /></symbol>'}),Nr=(a().add(Zr),Zr),Fr=new(o())({id:"slack",use:"slack-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="slack"><path d="M22.483 9.243a2.203 2.203 0 0 0-2.205-2.205 2.203 2.203 0 0 0-2.205 2.205v2.206h2.205c1.22 0 2.205-.986 2.205-2.206Zm-20.966 5.53c0 1.219.986 2.205 2.205 2.205a2.203 2.203 0 0 0 2.205-2.205v-2.206H3.722a2.204 2.204 0 0 0-2.205 2.206Zm7.718-2.205a2.204 2.204 0 0 0-2.205 2.206v5.513c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206v-5.513c0-1.22-.985-2.206-2.205-2.206Zm5.53-1.12a2.204 2.204 0 0 0 2.205-2.205v-5.53c0-1.22-.986-2.205-2.205-2.205a2.204 2.204 0 0 0-2.205 2.206v5.529c0 1.22.985 2.206 2.205 2.206Zm-5.53-4.41h-5.53A2.203 2.203 0 0 0 1.5 9.243c0 1.22.986 2.206 2.205 2.206h5.53a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205Zm11.06 5.53h-5.53a2.204 2.204 0 0 0-2.205 2.206c0 1.219.986 2.205 2.205 2.205h5.53a2.203 2.203 0 0 0 2.205-2.205c0-1.22-.986-2.206-2.205-2.206Zm-5.53 5.513H12.56v2.205c0 1.22.986 2.206 2.205 2.206a2.204 2.204 0 0 0 2.205-2.206 2.203 2.203 0 0 0-2.205-2.205ZM9.235 1.508A2.204 2.204 0 0 0 7.03 3.714c0 1.219.986 2.205 2.205 2.205h2.205V3.714c0-1.22-.985-2.206-2.205-2.206Z" /></symbol>'}),Hr=(a().add(Fr),Fr),Vr=new(o())({id:"slack_colored",use:"slack_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="slack_colored"><path fill="#E0225B" d="M5.927 14.773c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h2.205v2.205Zm1.103 0c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205v5.513c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205v-5.513Z" /><path fill="#39C5EF" d="M9.235 5.919A2.203 2.203 0 0 1 7.03 3.714c0-1.22.986-2.205 2.205-2.205s2.205.986 2.205 2.205v2.205H9.235Zm0 1.119c1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-5.53A2.203 2.203 0 0 1 1.5 9.243c0-1.22.986-2.205 2.205-2.205h5.53Z" /><path fill="#2FB77E" d="M18.073 9.243c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205a2.203 2.203 0 0 1-2.205 2.205h-2.205V9.243Zm-1.103 0c0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205v-5.53c0-1.22.986-2.205 2.205-2.205 1.22 0 2.205.986 2.205 2.205v5.53Z" /><path fill="#EBB22D" d="M14.765 18.08c1.22 0 2.205.987 2.205 2.206 0 1.22-.986 2.205-2.205 2.205a2.203 2.203 0 0 1-2.205-2.205V18.08h2.205Zm0-1.101a2.203 2.203 0 0 1-2.205-2.205c0-1.22.986-2.205 2.205-2.205h5.53c1.22 0 2.205.986 2.205 2.205 0 1.22-.986 2.205-2.205 2.205h-5.53Z" /></symbol>'}),zr=(a().add(Vr),Vr),Ur=new(o())({id:"webhook",use:"webhook-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="webhook"><path d="M4.34 17.025c.247 1.325 1.453 2.139 2.69 1.815 1.314-.344 2.012-1.611 1.517-2.912-.18-.472-.068-.773.156-1.144.874-1.444 1.73-2.9 2.624-4.401-2.082-1.044-2.843-2.43-2.34-4.124.443-1.494 1.938-2.472 3.46-2.242.759.114 1.427.426 1.947 1.018.788.898.965 1.947.725 3.115.639.173 1.22.33 1.798.488.766-2.101-.133-4.555-2.094-5.814a5.148 5.148 0 0 0-6.422.674C7.495 4.39 7 5.478 6.885 6.738c-.163 1.782.573 3.22 1.81 4.45l-1.966 3.3c-.182.013-.293.015-.401.03-1.294.184-2.204 1.334-1.987 2.507Zm17.924-2.384c-.866-1.898-3.281-3.67-6.483-2.68l-1.902-3.355c.098-.246.189-.447.259-.655.252-.745.1-1.424-.378-2.028a2.185 2.185 0 0 0-2.474-.675 2.195 2.195 0 0 0-1.401 2.15c.039.964.685 1.824 1.687 1.998.6.104.894.388 1.16.879.789 1.456 1.619 2.89 2.434 4.337 1.965-1.31 3.59-1.268 4.804.096a3.21 3.21 0 0 1 .052 4.19c-1.198 1.415-2.813 1.47-4.658.276L13.898 20.4c1.868 1.865 4.536 2.113 6.645.66 2.052-1.412 2.767-4.127 1.72-6.42ZM15.85 18.3a2.18 2.18 0 0 0 3.068.106c.904-.84.945-2.25.09-3.127-.835-.858-2.265-.94-3.041-.031-.472.552-.955.617-1.581.607-1.603-.025-3.208-.008-4.811-.008.104 2.256-.748 3.662-2.44 3.995-1.656.327-3.181-.518-3.718-2.06-.61-1.752.144-3.153 2.324-4.265l-.494-1.791c-2.375.518-4.157 2.822-3.973 5.415.163 2.289 2.009 4.32 4.267 4.686a5.146 5.146 0 0 0 3.448-.614c1.375-.78 2.173-2.007 2.543-3.527h3.855c.163.22.295.435.463.614Z" /></symbol>'}),Gr=(a().add(Ur),Ur),Wr=new(o())({id:"webhook_colored",use:"webhook_colored-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="webhook_colored"><path fill="#C73A63" d="M11.327 10.383c-.894 1.502-1.75 2.957-2.624 4.4-.224.372-.336.674-.156 1.145.495 1.302-.203 2.568-1.516 2.912-1.238.324-2.444-.49-2.69-1.814-.217-1.173.694-2.323 1.987-2.506.108-.015.219-.017.4-.031l1.968-3.3C7.458 9.96 6.722 8.52 6.885 6.739 7 5.478 7.495 4.39 8.4 3.498a5.148 5.148 0 0 1 6.422-.674c1.96 1.26 2.859 3.714 2.094 5.814l-1.798-.488c.24-1.168.063-2.216-.725-3.115-.52-.593-1.188-.904-1.947-1.02-1.522-.23-3.017.749-3.46 2.243-.504 1.696.258 3.08 2.34 4.125Z" /><path fill="#4B4B4B" d="m13.879 8.606 1.902 3.355c3.202-.991 5.617.782 6.483 2.68 1.046 2.293.33 5.008-1.724 6.422-2.11 1.452-4.776 1.204-6.645-.661l1.466-1.227c1.846 1.195 3.46 1.139 4.658-.276a3.21 3.21 0 0 0-.052-4.19c-1.214-1.364-2.84-1.406-4.804-.096-.815-1.446-1.644-2.88-2.434-4.337-.266-.491-.56-.776-1.16-.88-1.002-.174-1.648-1.034-1.687-1.998a2.194 2.194 0 0 1 1.4-2.15 2.184 2.184 0 0 1 2.475.675c.478.604.63 1.284.378 2.028-.068.208-.158.409-.256.655Z" /><path fill="#4A4A4A" d="M15.383 17.686h-3.855c-.37 1.52-1.168 2.747-2.543 3.527a5.144 5.144 0 0 1-3.448.614c-2.258-.364-4.104-2.397-4.267-4.685-.184-2.593 1.598-4.897 3.974-5.415l.494 1.79c-2.18 1.113-2.934 2.514-2.324 4.266.537 1.542 2.062 2.387 3.718 2.06 1.69-.334 2.544-1.74 2.44-3.995 1.603 0 3.208-.017 4.81.008.627.01 1.11-.055 1.582-.607.777-.908 2.206-.826 3.042.032a2.183 2.183 0 0 1-.091 3.127 2.181 2.181 0 0 1-3.068-.106c-.165-.181-.298-.395-.464-.616Z" /></symbol>'}),qr=(a().add(Wr),Wr),$r=new(o())({id:"ipNetworking",use:"ipNetworking-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworking"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.3-.6-.4h-.1c-.2-.1-.4-.2-.6-.2h-.1c-.2-.1-.4-.1-.7-.1h-.3C9.4 3.8 8 3 6.5 3 4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3ZM10.5 11h-4C4.6 11 3 9.4 3 7.5S4.6 4 6.5 4c1.1 0 2 .5 2.7 1.3-.7.2-1.3.8-1.7 1.4l.9.5c.3-.5.8-.9 1.4-1.1.1 0 .2 0 .2-.1h.5c.2 0 .4 0 .5.1h.1c.1 0 .3.1.4.1h.1c.1.1.3.2.4.3.1.1.3.2.4.4.4.4.6 1 .6 1.6 0 1.4-1.1 2.5-2.5 2.5Z" /></symbol>'}),Yr=(a().add($r),$r),Xr=new(o())({id:"ipNetworkingPress",use:"ipNetworkingPress-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="ipNetworkingPress"><path d="M13.1 6.2c-.1-.2-.3-.3-.5-.5-.2-.1-.4-.2-.5-.3 0 0-.1 0-.1-.1-.2-.1-.4-.1-.6-.2h-.1c-.3-.1-.5-.1-.8-.1h-.2c-1.2.1-2.2.7-2.7 1.7l-.9-.5c.6-1 1.6-1.8 2.8-2.1-.8-.7-1.8-1.1-3-1.1C4 3 2 5 2 7.5S4 12 6.5 12h4c1.9 0 3.5-1.6 3.5-3.5 0-.9-.3-1.7-.9-2.3Z" /></symbol>'}),Kr=(a().add(Xr),Xr),Jr=new(o())({id:"last_week",use:"last_week-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="last_week"><path d="M10.75 11.083 9 8.75l-1.75 2.333V5.5h-1.5v7.25h2.125L9 11.25l1.125 1.5h2.125V5.5h-1.5v5.583ZM11.562 2H6.438A4.438 4.438 0 0 0 2 6.438v5.124A4.438 4.438 0 0 0 6.438 16h5.124A4.438 4.438 0 0 0 16 11.562V6.438A4.438 4.438 0 0 0 11.562 2Zm2.938 9.562a2.941 2.941 0 0 1-2.938 2.938H6.438A2.941 2.941 0 0 1 3.5 11.562V6.438A2.941 2.941 0 0 1 6.438 3.5h5.124A2.941 2.941 0 0 1 14.5 6.438v5.124Z" /></symbol>'}),Qr=(a().add(Jr),Jr),eo=new(o())({id:"line_chart",use:"line_chart-usage",viewBox:"0 0 15 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" id="line_chart"><path d="M14 3.24A3.24 3.24 0 0 0 10.76 0H3.24A3.24 3.24 0 0 0 0 3.24v7.53a3.24 3.24 0 0 0 3.24 3.24h7.53a3.24 3.24 0 0 0 3.24-3.24V6.48c-.42.32-.94.52-1.5.52v3.76c0 .96-.78 1.74-1.74 1.74H3.24c-.96 0-1.74-.78-1.74-1.74V10C2.33 10 3 9.33 3 8.5c0-.23-.06-.45-.15-.64l1.01-1.01c.2.09.41.15.64.15.36 0 .69-.13.95-.35L8.03 8.2A1.498 1.498 0 0 0 9.5 10a1.498 1.498 0 0 0 1.25-2.33l1.31-1.74c.14.04.29.07.44.07.83 0 1.5-.67 1.5-1.5V3.24Zm-2.75 2.09L9.94 7.07C9.8 7.03 9.65 7 9.5 7c-.36 0-.69.13-.95.35L5.97 5.8A1.498 1.498 0 0 0 4.5 4C3.67 4 3 4.67 3 5.5c0 .23.06.45.15.64L2.14 7.15C1.94 7.06 1.73 7 1.5 7V3.24c0-.96.78-1.74 1.74-1.74h7.53c.88 0 1.6.66 1.71 1.5a1.5 1.5 0 0 0-1.23 2.33Z" /></symbol>'}),to=(a().add(eo),eo),no=new(o())({id:"logo_s",use:"logo_s-usage",viewBox:"0 0 14 13",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 13" id="logo_s"><path fill-rule="evenodd" d="M8.393 12.804H5.64L0 .882h8.007c3.113.007 5.636 2.77 5.637 6.177-.005 3.176-2.353 5.745-5.251 5.745Z" clip-rule="evenodd" /></symbol>'}),ro=(a().add(no),no),oo=n(79962),io=new(o())({id:"magnify",use:"magnify-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="magnify"><path fill-rule="evenodd" d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5Zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14Z" clip-rule="evenodd" /></symbol>'}),ao=(a().add(io),io),so=n(28524),lo=new(o())({id:"metrics_explorer",use:"metrics_explorer-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="metrics_explorer"><path d="M11.5 7.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88Zm.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H4.38c-.48 0-.88-.39-.88-.88V8.14l1.67 1.11 1.02.68 1.5-1.5c.99.96 2.32 1.57 3.81 1.57 2.7 0 4.93-1.94 5.4-4.5A5.497 5.497 0 0 0 11.5 1C8.81 1 6.57 2.94 6.1 5.5c.12.63.34 1.22.65 1.75L6 8 3 6H2v7.62A2.38 2.38 0 0 0 4.38 16h9.24A2.38 2.38 0 0 0 16 13.62V11l-1.17-.73c-.87.24-1.81.27-2.74.06ZM11.5 2.5c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3Z" /></symbol>'}),uo=(a().add(lo),lo),co=new(o())({id:"minimize_s",use:"minimize_s-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="minimize_s"><path d="M14 14H4c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1Z" /></symbol>'}),fo=(a().add(co),co),po=new(o())({id:"mobile_push_notifications",use:"mobile_push_notifications-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications"><path d="M22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2.69c-2.25 0-4.23-1.72-4.31-3.97-.04-1.05.32-2.05 1-2.84V6c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22ZM11.5 19c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h4Zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),ho=(a().add(po),po),go=new(o())({id:"mobile_push_notifications_hollow",use:"mobile_push_notifications_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="mobile_push_notifications_hollow"><path d="M11.5 19h-4c-.28 0-.5.22-.5.5s.22.5.5.5h4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5ZM22.09 7.67 22 7.58V6c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48-.55-.29-1.17-.48-1.83-.48H5.93A3.93 3.93 0 0 0 2 4.93v14.14A3.93 3.93 0 0 0 5.93 23h7.14A3.93 3.93 0 0 0 17 19.07V14h-2v5.07c0 1.06-.87 1.93-1.93 1.93H5.93C4.87 21 4 20.13 4 19.07V4.93C4 3.87 4.87 3 5.93 3h7.09c-.63.84-1.03 1.87-1.03 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12.01-.84-.31-1.63-.9-2.22ZM19.88 11h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),vo=(a().add(go),go),mo=new(o())({id:"monitoring",use:"monitoring-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="monitoring"><path d="m13.5 9.38-2 4-.69-1.38H4v1h6.19l1.31 2.62 2-4 .69 1.38H16v-1h-1.19L13.5 9.38ZM15.87 0H4.13C1.85 0 0 1.85 0 4.13v11.74C0 18.15 1.85 20 4.13 20h11.74c2.28 0 4.13-1.85 4.13-4.13V4.13C20 1.85 18.15 0 15.87 0ZM18 15.87c0 1.17-.96 2.13-2.13 2.13H4.13C2.96 18 2 17.04 2 15.87V4.13C2 2.96 2.96 2 4.13 2h11.74C17.04 2 18 2.96 18 4.13v11.74ZM9.5 4.38l-2 4L6.81 7H4v1h2.19l1.31 2.62 2-4L10.19 8H16V7h-5.19L9.5 4.38Z" /></symbol>'}),yo=(a().add(mo),mo),bo=new(o())({id:"more",use:"more-usage",viewBox:"0 0 18 4",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 4" id="more"><path d="M14 2a2 2 0 1 0 4.001-.001A2 2 0 0 0 14 2Zm-3 0a2 2 0 1 0-4.001.001A2 2 0 0 0 11 2ZM4 2a2 2 0 1 0-4.001.001A2 2 0 0 0 4 2Z" /></symbol>'}),wo=(a().add(bo),bo),_o=n(67679),xo=n(36179),So=new(o())({id:"nav_arrow_goto",use:"nav_arrow_goto-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="nav_arrow_goto"><path d="M8.5 7.6c0 .5-.4.9-.9.9H2.4c-.5 0-.9-.4-.9-.9V2.4c0-.5.4-.9.9-.9h.1C3.33 1.5 4 .83 4 0H2.4A2.4 2.4 0 0 0 0 2.4v5.2A2.4 2.4 0 0 0 2.4 10h5.2A2.4 2.4 0 0 0 10 7.6V6c-.83 0-1.5.67-1.5 1.5v.1ZM5.75 0C5.34 0 5 .34 5 .75s.34.75.75.75h1.69L3.97 4.97c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22L8.5 2.56v1.69c0 .41.34.75.75.75s.75-.34.75-.75V0H5.75Z" /></symbol>'}),Oo=(a().add(So),So),Co=n(64036),Eo=new(o())({id:"netdata",use:"netdata-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="netdata"><g clip-path="url(#netdata_a)"><path d="M13.645 4.5H2.526l7.833 15h3.822c4.025 0 7.286-3.232 7.293-7.228-.002-4.288-3.505-7.764-7.83-7.772Zm.536 13.125h-2.685L5.62 6.375h8.021c3.283.006 5.956 2.652 5.957 5.894-.004 2.954-2.435 5.356-5.417 5.356Z" /></g><defs><clipPath id="netdata_a"><path d="M2 5.2c0-1.12 0-1.68.218-2.108a2 2 0 0 1 .874-.874C3.52 2 4.08 2 5.2 2h13.6c1.12 0 1.68 0 2.108.218a2 2 0 0 1 .874.874C22 3.52 22 4.08 22 5.2v13.6c0 1.12 0 1.68-.218 2.108a2 2 0 0 1-.874.874C20.48 22 19.92 22 18.8 22H5.2c-1.12 0-1.68 0-2.108-.218a2 2 0 0 1-.874-.874C2 20.48 2 19.92 2 18.8V5.2Z" /></clipPath></defs></symbol>'}),Ao=(a().add(Eo),Eo),ko=new(o())({id:"netdataAssistant",use:"netdataAssistant-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="netdataAssistant"><path fill-rule="evenodd" d="M8.302 2.5H1l5.788 11.1h2.8L6.2 6.3h2.102V2.5Zm1.902 11.068L9.45 8.85h1.85L9.06 2.5h.155c3.195.006 5.783 2.578 5.785 5.751-.005 2.758-2.101 5.024-4.796 5.317Z" clip-rule="evenodd" /></symbol>'}),Mo=(a().add(ko),ko),Po=new(o())({id:"netdata-press",use:"netdata-press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="netdata-press"><path fill-rule="evenodd" d="M10.535 2H.158l7.311 14h3.567c3.756 0 6.8-3.017 6.806-6.746C17.84 5.251 14.571 2.007 10.535 2Z" clip-rule="evenodd" /></symbol>'}),Ro=(a().add(Po),Po),To=new(o())({id:"node",use:"node-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node"><path fill-rule="evenodd" d="M19.111 9H4.89A.885.885 0 0 0 4 9.875v5.25c0 .481.4.875.889.875H19.11a.885.885 0 0 0 .889-.875v-5.25c0-.481-.4-.875-.889-.875ZM7.556 14.25c-.978 0-1.778-.787-1.778-1.75 0-.962.8-1.75 1.778-1.75.977 0 1.777.788 1.777 1.75 0 .963-.8 1.75-1.777 1.75Z" clip-rule="evenodd" /></symbol>'}),Io=(a().add(To),To),Bo=new(o())({id:"node_child",use:"node_child-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_child"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35ZM5 13.5H3.5V12H5v1.5Z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9Zm-.01 5.49 12.99.01v-3.99l-.01-.01H2.51l-.01 3.99Z" /></symbol>'}),jo=(a().add(Bo),Bo),Do=new(o())({id:"node_default_l",use:"node_default_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_default_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#979797" rx="7.5" /><path fill="#35414A" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088Zm1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549Zm-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3l1.276 2.123Zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09Zm10.765 2.254c.37 0 .717.09 1.023.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034Zm-.176 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088Z" clip-rule="evenodd" /></symbol>'}),Lo=(a().add(Do),Do),Zo=new(o())({id:"node_hollow",use:"node_hollow-usage",viewBox:"0 0 22 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 12" id="node_hollow"><path d="M5 7H3v2h2V7Zm14.97-7H2.03C.91 0 0 .91 0 2.03v7.94C0 11.09.91 12 2.03 12h17.94c1.12 0 2.03-.91 2.03-2.03V2.03C22 .91 21.09 0 19.97 0ZM20 9.97c0 .02-.01.03-.03.03L2 9.97 2.03 2 20 2.03v7.94Z" /></symbol>'}),No=(a().add(Zo),Zo),Fo=new(o())({id:"node_import_export",use:"node_import_export-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="node_import_export"><path d="m7 11.41 3.71-3.71A.996.996 0 1 0 9.3 6.29L8 7.59V2H6v5.59l-1.29-1.3A.996.996 0 1 0 3.3 7.7L7 11.41Zm7.71-4.7L16 5.41V11h2V5.41l1.29 1.29c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L17 1.59 13.29 5.3a.996.996 0 0 0 0 1.41c.39.39 1.03.39 1.42 0ZM7 17H5v2h2v-2Zm13.61-4H3.39C2.62 13 2 13.62 2 14.39v6.22c0 .77.62 1.39 1.39 1.39h17.22c.77 0 1.39-.62 1.39-1.39v-6.22c0-.77-.62-1.39-1.39-1.39ZM20 20H4v-5h16v5Z" /></symbol>'}),Ho=(a().add(Fo),Fo),Vo=new(o())({id:"node_notification_l",use:"node_notification_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_notification_l"><rect width="39" height="39" x=".5" y=".5" fill="#00AB44" stroke="#00AB4E" rx="7.5" /><path fill="#fff" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088Zm1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549Zm-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3l1.276 2.123Zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09Zm10.765 2.254c.37 0 .717.09 1.023.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034Zm-.176 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088Z" clip-rule="evenodd" /></symbol>'}),zo=(a().add(Vo),Vo),Uo=new(o())({id:"node_parent",use:"node_parent-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="node_parent"><path d="M9.5 3.35V5H17v2.5h-1V6H2v1.5H1V5h7.5V3.35c-.15-.09-.26-.21-.35-.35H4c-.28 0-.5-.22-.5-.5S3.72 2 4 2h4.15c.18-.29.48-.5.85-.5s.68.21.85.5H14c.28 0 .5.22.5.5s-.22.5-.5.5H9.85c-.09.15-.21.26-.35.35ZM5 13.5H3.5V12H5v1.5Z" /><path d="M2.51 9h12.98c.83 0 1.51.68 1.5 1.51v3.97c0 .83-.67 1.51-1.51 1.51H2.51c-.83 0-1.51-.67-1.51-1.51v-3.97C1 9.68 1.68 9 2.51 9Zm-.01 5.49 12.99.01v-3.99l-.01-.01H2.51l-.01 3.99Z" /></symbol>'}),Go=(a().add(Uo),Uo),Wo=new(o())({id:"node_selected_l",use:"node_selected_l-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="node_selected_l"><rect width="39" height="39" x=".5" y=".5" fill="#F9F4F4" stroke="#00AB4E" rx="7.5" /><path fill="#00AB44" fill-rule="evenodd" d="M24.633 15.588a1.543 1.543 0 1 0 0-3.088 1.545 1.545 0 1 0 0 3.088Zm1.377.346a2.182 2.182 0 0 1-1.272.407 2.21 2.21 0 0 1-2.195-2.41 6.064 6.064 0 0 0-3.867.535l1.217 2.158c.46-.209.97-.326 1.507-.326 1.879 0 3.427 1.425 3.639 3.26l2.461-.075a6.16 6.16 0 0 0-1.49-3.549Zm-6.892 1.338a3.775 3.775 0 0 0-1.37 2.93 3.77 3.77 0 0 0 1.333 2.897l-1.187 2.195a6.211 6.211 0 0 1-2.24-3.124 2.26 2.26 0 0 0 .923-1.838 2.26 2.26 0 0 0-.989-1.884 6.228 6.228 0 0 1 2.254-3.3l1.276 2.123Zm-5.074 4.493a1.545 1.545 0 1 0-.001-3.09 1.545 1.545 0 0 0 .001 3.09Zm10.765 2.254c.37 0 .717.09 1.023.25a6.084 6.084 0 0 0 1.668-3.78l-2.466-.048a3.666 3.666 0 0 1-3.652 3.28c-.525 0-1.027-.11-1.48-.309l-1.226 2.138a6.152 6.152 0 0 0 3.932.503 2.204 2.204 0 0 1 2.201-2.034Zm-.176 3.922a1.544 1.544 0 1 0 0-3.088 1.544 1.544 0 0 0 0 3.088Z" clip-rule="evenodd" /></symbol>'}),qo=(a().add(Wo),Wo),$o=new(o())({id:"nodes",use:"nodes-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="nodes"><path d="M15.111 8.889H.89c-.489 0-.889.4-.889.889v5.333C0 15.6.4 16 .889 16H15.11c.489 0 .889-.4.889-.889V9.778c0-.49-.4-.89-.889-.89ZM3.556 14.222c-.978 0-1.778-.8-1.778-1.778 0-.977.8-1.777 1.778-1.777.977 0 1.777.8 1.777 1.777 0 .978-.8 1.778-1.777 1.778ZM15.11 0H.89C.4 0 0 .4 0 .889v5.333c0 .49.4.89.889.89H15.11c.489 0 .889-.4.889-.89V.89C16 .4 15.6 0 15.111 0ZM3.556 5.333c-.978 0-1.778-.8-1.778-1.777 0-.978.8-1.778 1.778-1.778.977 0 1.777.8 1.777 1.778 0 .977-.8 1.777-1.777 1.777Z" /></symbol>'}),Yo=(a().add($o),$o),Xo=new(o())({id:"nodes_hollow",use:"nodes_hollow-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nodes_hollow"><path d="M2.5 15.5H4V14H2.5v1.5ZM15.88 0H2.12C.95 0 0 .95 0 2.12v4.26C0 7.55.95 8.5 2.12 8.5h13.76c1.17 0 2.12-.95 2.12-2.12V2.12C18 .95 17.05 0 15.88 0Zm.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62V2.12c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62v4.26ZM2.5 6H4V4.5H2.5V6Zm13.38 3.5H2.12C.95 9.5 0 10.45 0 11.62v4.26C0 17.05.95 18 2.12 18h13.76c1.17 0 2.12-.95 2.12-2.12v-4.26c0-1.17-.95-2.12-2.12-2.12Zm.62 6.38c0 .34-.28.62-.62.62H2.12c-.34 0-.62-.28-.62-.62v-4.26c0-.34.28-.62.62-.62h13.76c.34 0 .62.28.62.62v4.26Z" /></symbol>'}),Ko=(a().add(Xo),Xo),Jo=new(o())({id:"none_selected",use:"none_selected-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="none_selected"><path d="M8 .5C3.86.5.5 3.86.5 8c0 4.14 3.36 7.5 7.5 7.5 4.14 0 7.5-3.36 7.5-7.5C15.5 3.86 12.14.5 8 .5ZM2 8c0-3.31 2.69-6 6-6 1.39 0 2.66.47 3.67 1.26l-8.41 8.41A5.926 5.926 0 0 1 2 8Zm6 6c-1.39 0-2.66-.47-3.67-1.26l8.41-8.41A5.926 5.926 0 0 1 14 8c0 3.31-2.69 6-6 6Z" /></symbol>'}),Qo=(a().add(Jo),Jo),ei=new(o())({id:"notification_shortcut_enabled",use:"notification_shortcut_enabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_enabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8l7 4.38Zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78ZM5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7Z" /><path fill="#96D4A2" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5V7Z" /></symbol>'}),ti=(a().add(ei),ei),ni=new(o())({id:"notification_shortcut_disabled",use:"notification_shortcut_disabled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="notification_shortcut_disabled"><path d="M11 15.18 14.49 13h5.39a3.124 3.124 0 0 0 2.21-5.33L22 7.58V6c0-2.76-2.24-5-5-5-2.41 0-4.43 1.72-4.9 4H5.86C3.73 5 2 6.73 2 8.86v9.29c0 2.13 1.73 3.86 3.86 3.86h10.29c2.13 0 3.86-1.73 3.86-3.86v-4.16c-.04 0-.08.01-.12.01H18v4.14c0 1.02-.83 1.86-1.86 1.86H5.86C4.84 20 4 19.17 4 18.14V10.8l7 4.38Zm2.33-6.09.09-.09H16c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C18.32 2.69 20 4.15 20 6v2.41l.67.67a1.118 1.118 0 0 1-.79 1.91h-5.76c-.62 0-1.12-.5-1.12-1.12 0-.29.12-.58.33-.78ZM5.86 7H12v.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 .91.4 1.73 1.03 2.3l-1.03.64-6.96-4.36C4.22 7.63 4.97 7 5.86 7Z" /><path fill="#F59B9B" d="M20 7c.5-2.5-1.281-4-3-4-2.4 0-3.5 2.5-3 4h4l-.5 1-.5.5-.418.418L15.5 9h-2s-.5 0-.5 1 .5 1 1 1h5.5c.5 0 1.5 0 1.5-1 0-.8-1-2.5-1-2.5V7Z" /></symbol>'}),ri=(a().add(ni),ni),oi=new(o())({id:"os",use:"os-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os"><path d="M6.75 6C5.78 6 5 6.78 5 7.75v2.5c0 .97.78 1.75 1.75 1.75s1.75-.78 1.75-1.75v-2.5C8.5 6.78 7.72 6 6.75 6ZM7 10.25c0 .14-.11.25-.25.25s-.25-.11-.25-.25v-2.5c0-.14.11-.25.25-.25s.25.11.25.25v2.5ZM11.25 6c-.96 0-1.75.79-1.75 1.75v.03c0 .57.28 1.11.75 1.43l1.15.8c.07.05.11.12.11.21v.03c0 .14-.11.25-.25.25s-.25-.11-.25-.25V9.9H9.5v.35c0 .96.79 1.75 1.75 1.75S13 11.21 13 10.25v-.03c0-.57-.28-1.11-.75-1.43l-1.15-.8a.248.248 0 0 1-.11-.21v-.03c0-.14.11-.25.25-.25s.25.11.25.25v.35h1.5v-.35C13 6.79 12.21 6 11.25 6Zm.52-4H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2Zm2.73 9.77c0 1.5-1.22 2.73-2.73 2.73H6.23c-1.5 0-2.73-1.22-2.73-2.73V6.23c0-1.51 1.22-2.73 2.73-2.73h5.54c1.5 0 2.73 1.22 2.73 2.73v5.54Z" /></symbol>'}),ii=(a().add(oi),oi),ai=new(o())({id:"alpine_linux",use:"alpine_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="alpine_linux"><path d="M13.04 2H4.96L.92 9l4.04 7h8.08l4.04-7-4.04-7Zm-6.41 8.78c-.44-.02-.84-.21-1.13-.5l1.13-1.1v1.6Zm3.32-.49L7.52 7.93l-2.44 2.36c-.62.6-1.61.6-2.23 0l4.67-4.52 4.67 4.52c-.62.6-1.61.6-2.24 0Zm2.85.04-2.02-1.96-.17.17-1.13-1.08 1.29-1.25 4.26 4.12c-.62.61-1.61.61-2.23 0Z" /></symbol>'}),si=(a().add(ai),ai),li=new(o())({id:"amazon_linux",use:"amazon_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="amazon_linux"><path d="m15.95 11.99-.01.01c-.23.19-.53.34-.83.46-.31.12-.63.21-.95.3-.65.16-1.33.28-2 .36-1.35.17-2.72.22-4.08.16-1.36-.06-2.71-.24-4.02-.6-1.3-.35-2.55-.89-3.65-1.71a.242.242 0 0 0-.31.01c-.1.09-.12.25-.03.35.48.56 1.06 1.03 1.68 1.42.62.4 1.29.71 1.98.96 1.38.5 2.83.76 4.28.84 1.45.08 2.91-.01 4.34-.31.71-.15 1.42-.35 2.1-.64.34-.14.67-.31.99-.51.16-.1.31-.22.46-.34.14-.13.28-.27.4-.45.05-.08.05-.19-.02-.27-.09-.11-.24-.12-.33-.04Zm-.84-4.81c.68.15 1.28.33 1.28.85 0 .45-.39.75-1.14.75-.63 0-1.24-.28-1.63-.62a.162.162 0 0 0-.25.04l-.28.43c-.05.07-.03.16.03.22.53.48 1.26.72 2.09.72 1.39 0 2.13-.71 2.13-1.62 0-1.21-1.09-1.46-2.01-1.67-.66-.15-1.22-.31-1.22-.76 0-.43.41-.69 1.08-.69.58 0 1.09.2 1.42.5.08.07.2.05.26-.04l.24-.38c.05-.07.03-.17-.03-.22-.44-.38-1.06-.65-1.9-.65-1.29 0-2.01.72-2.01 1.56 0 1.13 1.05 1.37 1.94 1.58ZM6.93 9.32c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.1-3.43c.05-.16.27-.16.32 0l1.1 3.43c.02.07.09.12.16.12h.77c.07 0 .14-.05.16-.12l1.55-4.93c.03-.11-.05-.22-.16-.22h-.67c-.08 0-.14.05-.16.12l-1.01 3.38c-.05.16-.27.16-.32 0L9.74 4.28a.171.171 0 0 0-.16-.12h-.61c-.07 0-.14.05-.16.12L7.7 7.67c-.05.16-.28.16-.32 0L6.37 4.28a.171.171 0 0 0-.16-.12h-.67c-.11 0-.2.11-.16.22l1.55 4.94Zm11.03 1.65-.01-.04a.35.35 0 0 0-.3-.23c-.14-.01-.26-.02-.38-.02h-.37c-.25.01-.49.02-.74.06-.25.04-.49.08-.73.16s-.47.18-.68.33c-.06.04-.08.11-.05.18.03.07.12.11.19.08h.01c.2-.09.41-.14.63-.17.22-.03.44-.03.66-.02.22.01.45.04.67.07l.33.06c.02 0 .04.01.06.01v.03c.01.1.01.2.01.31-.01.21-.04.44-.1.65-.11.44-.29.86-.55 1.25-.04.07-.04.15.02.21.07.06.17.06.23-.01.35-.37.63-.8.83-1.27a3.651 3.651 0 0 0 .3-1.16c.01-.15.01-.3-.03-.48ZM3.83 6.54c-.39-.3-.89-.44-1.45-.44-.88 0-1.83.52-1.83 1.73 0 1.16.96 1.75 1.83 1.75.57 0 1.06-.16 1.45-.46.11-.09.27-.01.27.13v.02c0 .09.08.17.17.17h.64c.09 0 .17-.08.17-.17V5.88c0-1.34-.97-1.85-2.12-1.85-.8 0-1.49.25-2.06.76-.06.06-.08.15-.03.22l.24.38c.06.09.18.11.26.04.43-.38.9-.56 1.44-.56.75 0 1.29.39 1.29 1.05v.48c0 .14-.16.22-.27.14Zm.27 1.68c0 .04-.01.08-.04.11-.3.36-.79.55-1.32.55-.71 0-1.21-.43-1.21-1.05 0-.62.5-1.05 1.21-1.05.52 0 1.02.19 1.32.55.02.03.04.07.04.11v.78Z" /></symbol>'}),ui=(a().add(li),li),ci=new(o())({id:"arch_linux",use:"arch_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="arch_linux"><path d="M15.46 14.32c-.21-.19-.43-.38-.66-.56-.53-.42-1.08-.81-1.69-1.1-.03-.02-.05-.06-.03-.09.01-.03.05-.04.08-.04.57.13 1.12.36 1.65.61C12.57 9.09 10.6 5.04 9 1c-.6 1.5-1.25 3.01-1.94 4.52.07.08.14.16.22.24.26.27.53.53.82.78.29.24.6.47.93.67.03.02.04.06.02.09s-.05.04-.08.03c-.37-.13-.73-.29-1.08-.47-.35-.19-.69-.39-1.02-.62-.04-.02-.07-.05-.11-.08C5.08 9.76 3.13 13.38 1 17h.1c1.43-1.31 3.6-2.25 6.1-2.56-.04-.27-.06-.55-.06-.84 0-1.8.84-3.27 1.87-3.27 1.03 0 1.87 1.46 1.87 3.27 0 .29-.02.57-.06.84 2.5.31 4.67 1.25 6.1 2.56h.1c-.55-.89-1.06-1.79-1.56-2.68Z" /></symbol>'}),fi=(a().add(ci),ci),di=new(o())({id:"celarOS",use:"celarOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="celarOS"><path d="M9 2.02c-3.87 0-7 3.13-7 7 0 2.44 1.25 4.59 3.15 5.85v-2.54l-2.21-2.21a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.69 2.69v3.99c.46.15.94.26 1.43.32V10.9L4.97 7.67a.815.815 0 0 1 0-1.14c.31-.31.82-.31 1.14 0l2.9 2.9 2.9-2.9c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14L9.81 10.9v5.08c.5-.06.98-.16 1.43-.32v-3.99l2.69-2.69c.31-.31.82-.31 1.14 0 .31.31.31.82 0 1.14l-2.21 2.21v2.54c1.9-1.25 3.15-3.4 3.15-5.85-.01-3.86-3.14-7-7.01-7Zm0 5.46c-.66 0-1.19-.53-1.19-1.19 0-.66.53-1.19 1.19-1.19.66 0 1.19.53 1.19 1.19 0 .66-.53 1.19-1.19 1.19Z" /></symbol>'}),pi=(a().add(di),di),hi=new(o())({id:"centos",use:"centos-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos"><path d="M7.76 8.27h.51v-.52L5.14 4.62l1.08-1.08H3.54v2.68l1.08-1.08 3.14 3.13Zm.21.73-.36-.36H3.17V7.1L1.27 9l1.9 1.9V9.36H7.6L7.97 9Zm.67-1.39.36.36.36-.36V3.17h1.54L9 1.27l-1.9 1.9h1.53v4.44h.01ZM4.62 5.65 3.54 6.74v1.53h3.7L4.62 5.65Zm3.65 1.59v-3.7H6.74L5.65 4.62l2.62 2.62Zm1.46 0 2.62-2.62-1.08-1.08H9.73v3.7Zm0 .52v.52h.51l3.13-3.13 1.08 1.08V3.54h-2.68l1.08 1.08-3.12 3.14Zm1.03.51h3.7V6.74l-1.08-1.08-2.62 2.61Zm2.62 4.08 1.08-1.08V9.73h-3.7l2.62 2.62Zm-8.76 0 2.62-2.62h-3.7v1.53l1.08 1.09Zm5.62-2.62h-.51v.52l3.13 3.13-1.08 1.08h2.69v-2.68l-1.08 1.08-3.15-3.13ZM16.73 9l-1.9-1.9v1.53H10.4l-.36.36.36.36h4.43v1.55l1.9-1.9Zm-7 1.76v3.7h1.53l1.08-1.08-2.61-2.62Zm-.37-.37L9 10.03l-.36.36v4.43H7.1l1.9 1.9 1.9-1.9H9.36v-4.43Zm-1.09-.15v-.51h-.51l-3.13 3.13-1.08-1.09v2.69h2.68l-1.08-1.08 3.12-3.14Zm0 .52-2.62 2.62 1.08 1.08h1.53v-3.7h.01Z" /></symbol>'}),gi=(a().add(hi),hi),vi=new(o())({id:"centos_colored",use:"centos_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="centos_colored"><path fill="#942579" d="m7.7 8.4.6.59-.6.59H3.5v1.97L.95 8.99l2.56-2.52V8.4H7.7Z" /><path fill="#EEA724" d="m9.6 7.7-.59.6-.59-.6V3.5H6.44L9.01.95l2.52 2.56H9.6V7.7Z" /><path fill="#2E2C74" d="m10.3 9.6-.6-.59.6-.59h4.2V6.44l2.56 2.57-2.56 2.52V9.6h-4.2Z" /><path fill="#9DCB3B" d="m8.4 10.3.59-.6.59.6v4.2h1.97l-2.57 2.56-2.52-2.56H8.4v-4.2ZM3.36 3.36h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M3.17 3.17h5.46v5.46H3.17V3.17Zm.37 5.1h4.73V3.54H3.54v4.73Z" /><path fill="#942579" d="M9.55 3.36h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M9.36 3.17h5.46v5.46H9.36V3.17Zm.37 5.1h4.73V3.54H9.73v4.73Z" /><path fill="#EEA724" d="M9.55 9.55h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M9.36 9.36h5.46v5.46H9.36V9.36Zm.37 5.1h4.73V9.73H9.73v4.73Z" /><path fill="#2E2C74" d="M3.36 9.55h5.1v5.1h-5.1v-5.1Z" /><path fill="#fff" d="M3.17 9.36h5.46v5.46H3.17V9.36Zm.37 5.1h4.73V9.73H3.54v4.73Z" /><path fill="#fff" d="M4.62 12.86.76 9l3.86-3.86L8.49 9l-3.87 3.86ZM1.28 9l3.35 3.35L7.97 9 4.62 5.65 1.28 9ZM9 8.49 5.14 4.62 9 .76l3.86 3.86L9 8.49ZM5.65 4.62 9 7.97l3.35-3.35L9 1.28 5.65 4.62Zm7.73 8.24L9.52 9l3.86-3.86L17.24 9l-3.86 3.86ZM10.03 9l3.35 3.35L16.72 9l-3.35-3.35L10.03 9ZM9 17.24l-3.86-3.86L9 9.52l3.86 3.86L9 17.24Zm-3.35-3.86L9 16.72l3.35-3.35L9 10.03l-3.35 3.35Z" /></symbol>'}),mi=(a().add(vi),vi),yi=new(o())({id:"coreOS",use:"coreOS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="coreOS"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7Zm-2.1 9.1c0-4.9.7-7 2.1-8.4A6.3 6.3 0 0 1 15.3 9c-1.4 1.4-3.5 2.1-8.4 2.1Zm1.96-5.42c-.28.92-.48 2.18-.54 4 1.82-.06 3.08-.25 4-.54a4.88 4.88 0 0 0-3.46-3.46Z" /></symbol>'}),bi=(a().add(yi),yi),wi=new(o())({id:"debian",use:"debian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian"><path d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15ZM7.56 7.56c.01 0 .01 0 0 0Zm6.97-2.63-.03.12.03-.12Zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16Zm1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01Zm-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18Z" /></symbol>'}),_i=(a().add(wi),wi),xi=new(o())({id:"debian_colored",use:"debian_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="debian_colored"><path fill="#D61C53" d="m15.52 5.98-.23-.75v-.12c.08-.06.12-.17.09-.27-.15-.54-.49-1.14-.95-1.68-.39-.46-1.18-1.13-1.51-1.23-.05-.02-.1-.01-.15 0-.01-.01-.01-.02-.02-.04a.386.386 0 0 0-.2-.2.784.784 0 0 0-.6-.02c-.06.02-.1.02-.16-.01-.13-.08-.27-.15-.43-.2-.26-.09-.51-.18-.77-.26l-.26-.09c-.03-.01-.09-.01-.13-.01-.07 0-.13.03-.17.08-.06-.01-.12-.01-.19-.01-.01-.02-.02-.03-.03-.04a.223.223 0 0 0-.17-.09l-.21-.02c-.1-.01-.17.04-.22.11-.05 0-.1-.01-.15-.02h-.02a.262.262 0 0 0-.18-.16.375.375 0 0 0-.21 0l-.45.08c-.01-.01-.02-.01-.02-.02A.244.244 0 0 0 7.96 1c-.14.06-.29.12-.43.19-.63.27-1.28.54-1.85.98a.296.296 0 0 0-.25.07l-.5.47c-.17.16-.34.32-.51.49-.12.12-.27.29-.36.52-.03.02-.09.07-.12.14l-.15.33c-.06.13-.11.25-.17.38-.02.05-.05.1-.09.12l-.02.01c-.01 0-.03.01-.04.01.05-.1.05-.21.02-.32-.04-.12-.14-.19-.28-.18l-.09.01c-.1.01-.19.12-.22.22l-.07.27c-.03.1.01.2.09.26s.19.07.28.01c.02-.01.04-.02.06-.04-.09.19-.17.38-.25.57-.02-.02-.04-.04-.07-.05a.258.258 0 0 0-.29.03.58.58 0 0 0-.15.65c.03.1.12.17.22.17-.06.17-.11.34-.15.5-.02.07-.02.14-.01.17l.02.13c.01.07.02.13.02.2 0 .16 0 .32-.01.48l-.01.36V8.81c-.03.79.07 1.57.27 2.3.42 1.49 1.2 2.81 2.33 3.91.93.92 1.99 1.54 3.14 1.86.39.11.79.12 1.17.14H9.85c.14 0 .25-.09.25-.23a.247.247 0 0 0-.2-.28l-.64-.12c-.23-.04-.49-.09-.7-.21-.16-.09-.3-.23-.43-.37-.05-.05-.09-.1-.14-.15l-.05-.06a.257.257 0 0 0-.33-.02c-.04-.02-.08-.04-.11-.07a1.74 1.74 0 0 0-.18-.11.33.33 0 0 0 0-.14.217.217 0 0 0-.16-.16c-.17-.06-.3-.17-.44-.36-.12-.16-.26-.2-.37-.19l-.02-.03c-.12-.17-.23-.31-.26-.49-.02-.1-.11-.16-.21-.18h-.03c-.14-.19-.27-.38-.41-.57a.219.219 0 0 0-.03-.05c.03-.09.01-.19-.05-.25l-.04-.05a.647.647 0 0 1-.08-.09c.01-.02.02-.05.02-.06.02-.07 0-.15-.04-.21-.06-.08-.12-.16-.17-.24.01-.01.03-.02.04-.04.06-.07.07-.17.04-.25-.09-.23-.18-.42-.3-.59a.684.684 0 0 0-.5-.3c-.07-.1-.12-.22-.17-.35 0-.01.01-.02.01-.03.03-.07.02-.14-.01-.2l-.03-.07c-.03-.06-.05-.11-.08-.16-.01-.02-.01-.03-.01-.07l.03-.25c0-.06-.01-.12-.04-.19l-.06-.12c-.03-.06-.05-.12-.07-.17-.09-.38-.05-.77-.02-1.19.01-.15.03-.31.05-.46.02-.19.04-.38.05-.57.02-.25.08-.46.18-.65.08-.15.16-.3.23-.45l.07-.14c.02-.05.04-.1.09-.2.03-.07.03-.14 0-.21l.07-.09c.12-.16.25-.31.38-.46.35-.38.64-.63.94-.82.12-.08.21-.12.3-.12.22-.01.32-.16.38-.26.03-.05.04-.11.04-.17.19-.14.38-.2.59-.21.08 0 .31-.01.49-.21.03-.03.05-.08.06-.12.05-.02.1-.05.15-.08.24-.16.52-.25.84-.28.04.01.13.03.16.03l.19-.02.26-.03c.33-.02.68 0 1.02.06.51.09.87.21 1.19.4.55.33 1 .79 1.39 1.4.35.55.53 1.06.56 1.59 0 .05.03.11.06.16v.45c0 .25 0 .5-.01.76 0 .06-.01.11-.02.18l-.02.13c-.01.07.01.13.05.19-.02.08-.05.15-.07.23-.03.09-.06.18-.12.3-.24.1-.36.35-.32.64l-.17.15c-.15.14-.31.27-.47.4-.02.02-.04.04-.06.05a.277.277 0 0 0-.25.03c-.1.08-.2.16-.29.25-.09.09-.22.15-.41.19-.04 0-.11 0-.19.03-.29.12-.6.15-.95.09-.44-.07-.84-.27-1.2-.58-.46-.4-.73-.87-.83-1.44l-.03-.24-.01-.12a.263.263 0 0 0-.07-.15c.02-.7.28-1.22.77-1.59.82-.62 1.65-.64 2.53-.05.1.07.25.05.33-.05.08-.1.08-.24-.01-.33-.5-.53-1.04-.8-1.67-.83-.73-.04-1.34.2-1.85.71-.11.11-.2.23-.29.36-.07.1-.14.19-.22.28-.07.07-.1.15-.13.21l-.13.41c-.02.06-.05.12-.08.18l-.06.14c-.02.04-.05.09-.06.22-.02.16-.03.31-.03.47-.01.46.07.89.23 1.28-.04.04-.07.1-.07.16h-.07c-.12.02-.21.17-.2.29 0 .06-.01.16.05.25.09.14.19.28.3.43.04.05.08.1.12.14l.04.05c.08.09.24.1.34.03.4.4.9.7 1.5.92.48.17.91.24 1.31.2.09-.01.17-.03.26-.05l.1-.02c.13-.03.21-.17.2-.3 0-.02-.01-.03-.01-.05.8-.13 1.52-.5 2.14-1.09l.16-.15c.01 0 .02.01.04.01.11.02.24-.05.28-.15.04-.08.09-.21.04-.35.01-.01.01-.03.02-.04.04.01.08.02.12.01.09-.02.17-.08.2-.17l.04-.12c.02-.08.05-.15.08-.22s.06-.13.09-.2l.06-.11c.09-.2.19-.43.21-.69h.02c.12-.03.2-.14.19-.26-.01-.17.05-.33.12-.52.03-.09.07-.18.09-.27.02-.08-.02-.17-.08-.24a.238.238 0 0 0-.11-.06.43.43 0 0 1 0-.16c0-.01.03-.07.03-.07a.28.28 0 0 0-.03-.25c-.01-.01-.02-.02-.02-.04.01-.02.03-.04.03-.06.05.06.12.1.21.09.11-.01.21-.09.23-.2.02-.03.01-.11 0-.15ZM7.56 7.56c.01 0 .01 0 0 0Zm6.97-2.63-.03.12.03-.12Zm-3.66 4.21h-.7c-.09 0-.16.06-.21.14-.05.08-.03.19.02.27.03.05.09.1.15.12h.01c.15.04.29.09.44.13.02 0 .04.01.06.01.07 0 .16-.03.21-.07l.19-.16c.08-.07.11-.18.07-.28-.05-.09-.14-.16-.24-.16Zm1.35-1.15c.09-.02.17-.09.19-.19.04-.18.04-.34-.01-.5a.243.243 0 0 0-.17-.17.27.27 0 0 0-.24.06c-.1.09-.3.35-.02.71.05.06.12.1.2.1.01 0 .03 0 .05-.01Zm-.86 1.12c.02.02.05.04.08.05l.14.07c.04.02.07.03.11.03.09 0 .18-.05.22-.13l.22-.42c.03-.06.03-.13.01-.2a.273.273 0 0 0-.13-.15c-.05-.03-.11-.03-.17-.02l-.01-.01c-.06-.04-.13-.05-.2-.04-.07.02-.13.06-.16.12l-.05.08c-.05.08-.09.16-.14.24-.05.1-.02.19-.01.19v.01c.01.06.04.13.09.18Z" /></symbol>'}),Si=(a().add(xi),xi),Oi=new(o())({id:"fedora",use:"fedora-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="fedora"><path d="M8.98 2C5.11 2 2 5.15 2 8.98v5.45c0 .85.68 1.57 1.57 1.57h5.4c3.87 0 7.02-3.15 7.02-7.02C16 5.15 12.85 2 8.98 2ZM4.19 14.69a3.261 3.261 0 0 1-1.47-2.73c0-1.6 1.15-2.91 2.63-3.21-.14.2-.24.44-.24.7 0 .34.14.64.35.86-.69.24-1.21.9-1.21 1.65 0 .53.24 1 .61 1.31-.44.19-.73.59-.73 1.11.01.11.04.21.06.31Zm6.49-4.48H9.32v1.74c0 1.83-1.49 3.28-3.32 3.28-.26 0-.47 0-.72-.08-.34-.08-.64-.38-.64-.77 0-.43.3-.72.77-.72.21 0 .3.04.6.04.98 0 1.74-.77 1.74-1.74v-1.49c0-.13-.08-.26-.26-.26H6.38c-.43 0-.77-.34-.77-.77s.34-.77.77-.77h1.36V6.94c0-1.79 1.49-3.28 3.28-3.28.3 0 .47.04.72.08.38.13.68.43.68.77 0 .43-.3.72-.77.72-.21 0-.3-.04-.64-.04-.94 0-1.7.81-1.7 1.74v1.49c0 .17.09.25.21.25h1.15c.43 0 .77.34.77.77s-.33.77-.76.77Zm1.03-.06c.14-.2.24-.44.24-.7 0-.33-.14-.63-.35-.86a1.739 1.739 0 0 0 .58-2.95c.45-.18.75-.6.75-1.13 0-.1-.03-.2-.06-.29.88.59 1.47 1.6 1.47 2.72 0 1.6-1.15 2.91-2.63 3.21Z" /></symbol>'}),Ci=(a().add(Oi),Oi),Ei=new(o())({id:"freeBSD",use:"freeBSD-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeBSD"><path d="M3.1 5.51c.59-.98 1.42-1.81 2.4-2.4-.3-.2-.59-.38-.77-.46-.42-.21-1.96-.98-2.59-.49-.49.63.28 2.17.49 2.59.1.17.27.46.47.76Zm11 1.19c.35-.35 1.05-1.4 1.26-1.82.21-.42.98-1.96.49-2.59-.63-.49-2.17.28-2.59.49-.42.21-1.46.92-1.81 1.27-.28.98 1.25 2.93 2.65 2.65Zm.64-.21c.18.55.06.93-.39.96-.7.04-1.94-.81-2.77-1.91-.83-1.1-.93-2.02-.22-2.07.1-.01.2.01.31.03l.52-.43a6.822 6.822 0 0 0-9.83 6.12c0 3.77 3.05 6.81 6.81 6.81a6.822 6.822 0 0 0 5.95-10.16l-.38.65Z" /></symbol>'}),Ai=(a().add(Ei),Ei),ki=new(o())({id:"gentoo",use:"gentoo-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="gentoo"><path d="M8.77 5.34c-.1-.02-.2-.04-.29-.04-.4 0-.71.23-.71.53 0 .19.1.42.26.63a.537.537 0 0 1-.05-.21c0-.2.19-.34.44-.34.06 0 .12.01.18.02.4.1.7.49.7.77 0 .16-.12.29-.31.33.06.01.12.02.18.02.4 0 .71-.23.71-.53.01-.42-.47-1.02-1.11-1.18ZM16 8.06c0-.18-.03-.38-.11-.6-.17-.45-.5-.89-.8-1.27-.62-.79-3.19-2.67-3.5-2.89C11.46 3.2 9.81 2 7.78 2h-.17c-2.33.01-4.14 1.36-4.98 2.52-.32.45-.47.9-.48 1.31-.01.18-.01.93.01 1.13.04.49.27.9.57 1.18.31.29 1.37.8 2.26 1.19-.72.57-1.84 1.48-2.31 2.01-.57.64-.78 1.33-.63 2.03-.11.5-.03 1.02.25 1.53.39.72 1.18 1.09 2.33 1.09.39 0 .83-.04 1.37-.12 1.47-.23 4.06-1.64 5.35-2.47 1.26-.82 3.5-2.81 4.19-3.44.19-.18.45-.5.47-.97-.01-.16-.01-.78-.01-.93Zm-.73.79c-.68.63-2.9 2.6-4.14 3.41-1.26.82-3.78 2.2-5.19 2.42-.51.08-.94.12-1.31.12-1.02 0-1.68-.3-2.01-.91-.43-.79-.31-1.59.34-2.32.66-.75 2.74-2.35 2.89-2.47.18-.15.37-.34.47-.46-.12-.06-.31-.13-.48-.18-.02 0-.03-.01-.05-.02-.4-.17-2.42-1.05-2.81-1.41-.5-.46-.72-1.38-.05-2.31.79-1.09 2.49-2.37 4.68-2.37h.16c1.94 0 3.52 1.17 3.59 1.22.11.08 2.82 2.06 3.43 2.83.5.61 1.33 1.66.48 2.45Zm-4.13-5.03S9.53 2.61 7.63 2.67c-2.27 0-3.8 1.42-4.39 2.22-.59.8-.37 1.55 0 1.89.37.34 2.7 1.35 2.7 1.35s.73.2.8.4c.07.2-.66.81-.66.81s-2.18 1.69-2.84 2.44c-.66.74-.58 1.42-.29 1.95.44.81 1.61.81 2.92.61 1.31-.2 3.8-1.55 5.04-2.36 1.24-.81 3.51-2.83 4.09-3.37.58-.54.07-1.28-.51-2.02-.58-.75-3.35-2.77-3.35-2.77ZM8.98 7.49c-1.07-.15-1.93-.86-1.9-1.59.02-.73.91-1.19 1.99-1.04 1.07.15 1.93.86 1.9 1.59-.03.72-.92 1.19-1.99 1.04Z" /></symbol>'}),Mi=(a().add(ki),ki),Pi=new(o())({id:"linux",use:"linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux"><path d="M6.71 15.07c-.13-.17-.27-.32-.4-.49-.19-.25-.34-.54-.49-.81-.2-.37-.42-.73-.64-1.09-.09-.15-.19-.3-.32-.4a.696.696 0 0 0-.23-.11.39.39 0 0 0-.26.02.41.41 0 0 0-.21.18c-.05.08-.09.16-.12.25s-.07.17-.11.26a.52.52 0 0 1-.18.21c-.08.06-.19.08-.29.09-.1.01-.21-.01-.31-.01-.1-.01-.21-.02-.31 0a.6.6 0 0 0-.28.13c-.07.07-.11.16-.13.25-.02.09-.02.19-.01.28.01.21.05.42.06.63.01.21 0 .43-.07.63-.05.13-.13.25-.18.38-.02.07-.04.13-.05.2 0 .07.01.14.05.2.05.08.13.14.22.18.09.04.18.06.27.08.21.05.41.13.61.18.57.16 1.18.19 1.74.39.29.11.58.26.89.27.19.01.39-.04.56-.14.17-.1.31-.24.4-.42.13-.24.16-.53.08-.79-.04-.2-.16-.38-.29-.55Zm9.05-.49a.4.4 0 0 0-.14-.15c-.05-.04-.11-.08-.17-.12-.12-.08-.23-.17-.34-.27-.11-.09-.22-.19-.32-.3a.93.93 0 0 1-.2-.38c-.02-.09-.02-.18-.02-.26-.01-.1-.03-.2-.06-.29a.585.585 0 0 0-.1-.17.576.576 0 0 0-.23-.13h-.02c.11-.19.2-.4.24-.61.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.11-.15-.21-.3-.32-.45-.06-.12-.12-.23-.17-.35-.15-.32-.28-.65-.46-.95-.03-.04-.05-.09-.08-.13-.02-.3-.05-.6-.07-.89-.03-.59.01-1.19-.15-1.76-.08-.28-.2-.54-.35-.79-.18-.29-.41-.54-.68-.74C9.93.94 9.39.78 8.85.78c-.4-.01-.8.07-1.15.26-.37.2-.68.52-.87.9-.19.37-.26.8-.27 1.23-.01.41.02.83.04 1.24.01.43.01.87.04 1.29.01.14.03.28.03.42 0 .07 0 .14-.01.21v-.02c0 .01-.01.01-.01.02-.06.14-.13.28-.21.41-.14.17-.27.34-.41.51l-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.02.07.05.12.07.19.04-.07.09-.14.14-.2.06-.07.14-.13.22-.16.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.08.11.14.23.2.36.06.11.11.22.14.33.06.23.04.47-.04.7l.12-.03c.25-.05.5-.1.76-.1.05 0 .1-.01.15-.01.18.02.37.03.56.02.03 0 .06-.01.09-.01.04 0 .07.01.1.02.31.02.61.05.91.09.27.04.53.09.79.16.1.02.2.05.3.08a1.87 1.87 0 0 1-.03-.34c.01-.34.09-.67.16-1 .02-.1.04-.19.05-.29.04-.21.07-.41.09-.62-.03.28-.08.56-.13.83-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.07-.08.12-.17.16-.26.09-.1.07-.2.03-.28ZM8.78 3.65c.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.12.04.26.03.39-.01.15-.04.29-.1.43-.04.09-.11.17-.19.24l-.09-.03c-.13-.03-.24-.09-.36-.13.08 0 .16-.02.23-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25.297.297 0 0 0-.16-.02c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.03.26.03.07.07.14.13.19-.08-.04-.16-.08-.23-.12a.3.3 0 0 1-.08-.04c-.05-.06-.08-.14-.11-.21-.02-.04-.05-.07-.08-.11a.75.75 0 0 1 .01-.49Zm.12 2.22c.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.01-.01c.05 0 .09-.01.14-.01-.05.02-.1.05-.15.08-.08.05-.15.12-.23.19-.17.14-.36.26-.56.33-.13.05-.27.08-.41.11-.18.04-.36.08-.54.07-.18-.01-.37-.05-.51-.16-.05-.04-.1-.09-.15-.14a.585.585 0 0 0-.17-.1c-.01-.01-.02-.01-.04-.01s-.03-.01-.04-.02c-.01-.01-.01-.01-.01-.02.08.01.15.05.21.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.15-.03.29-.06.42-.11ZM6.96 3.6c.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.1.11.18.25.23.4.05.13.07.27.07.41-.07.09-.13.19-.2.28-.03.02-.07.03-.1.05 0-.01.01-.01.01-.02.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.03.05-.04.11-.05.16-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.02.01.05.01.08.01-.05.05-.11.09-.16.14-.04.03-.08.07-.12.11-.02-.02-.05-.03-.06-.05-.07-.06-.11-.14-.15-.22-.07-.17-.08-.35-.09-.53-.01-.19-.02-.39.04-.57Zm7.05 9.22c-.19.27-.48.48-.8.59-.19.07-.4.07-.6.01a.622.622 0 0 1-.3-.18c-.1-.11-.13-.26-.14-.41-.01-.15.01-.31.05-.45-.13-.03-.26-.05-.39-.07-.08-.01-.16-.02-.24-.02a.35.35 0 0 0-.22.08c-.06.06-.1.14-.11.22-.01.08-.01.17 0 .26.02.33.02.65.01.98a1.06 1.06 0 0 0-.43-.05c-.26.03-.51.12-.74.24-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.07.08-.16.13-.24.2-.07.01-.15.03-.22.03-.06-.08-.12-.15-.18-.23-.15-.2-.22-.45-.35-.67-.17-.3-.45-.52-.75-.69a.95.95 0 0 0-.09-.21c-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07l-.12-.12c-.01-.23-.01-.47.01-.7.06-.6.23-1.19.47-1.74.07-.16.15-.32.23-.47.12-.12.24-.24.38-.35.24-.17.55-.31.9-.43.23-.05.46-.08.46-.08-1.31.19-1.22-.11-1.28-.19a.342.342 0 0 1-.04-.18c.1-.32.29-.6.49-.87.05-.07.1-.14.14-.21.04.03.08.07.12.1.15.08.31.12.47.14.03 0 .06 0 .08.01-.2-.18-.38-.39-.46-.64-.07-.2-.09-.42-.16-.61-.02-.05-.05-.11-.06-.16-.01-.03-.01-.06-.01-.09.01.02.03.04.06.06.02.02.05.03.07.05.13.08.24.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.04-.18 0-.03.01-.05.02-.08l.01.01c.03.06.04.14.03.21 0 .07-.01.15.02.22.03.08.08.14.12.21.02.04.03.08.03.12 0 .04-.01.08-.04.11-.02.02-.06.04-.09.04-.03.01-.07 0-.1-.01-.07-.01-.13-.04-.19-.05a.375.375 0 0 0-.25.08c-.07.05-.13.12-.2.18-.14.13-.31.24-.48.33-.14.08-.29.15-.42.23-.02.01-.04.03-.06.04.21.01.42 0 .62-.03.35-.06.67-.18 1.01-.21.24-.02.48 0 .71-.04-.09.01-.18.02-.27.02.02.05.05.09.07.14.18.4.31.82.37 1.25.24.25.44.53.59.84.43.9.43 1.94.31 2.93l-.03.24.2.03.03-.12c.04-.1.11-.2.19-.27.09-.07.18-.13.29-.15.12-.03.26-.01.38 0 .12.02.24.05.36.07.13.02.26.04.38.1.06.02.12.06.17.1.04.04.09.1.11.16.03.07.03.16.01.25.01.1-.05.2-.11.3ZM11.04 8.3c-.09-.28-.13-.84-.13-.84s-.06.45-.32.64c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78ZM7.72 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.03-.35.03-.69 0-1.04Zm.53-1.4a.472.472 0 0 1-.18-.49c-.01.08-.02.16-.04.24L8 8.06c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.631.631 0 0 1-.38-.12Z" /></symbol>'}),Ri=(a().add(Pi),Pi),Ti=new(o())({id:"linux_colored",use:"linux_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="linux_colored"><path fill="#050507" d="M12.29 6.52c.18.39.38.78.56 1.17.34.76.61 1.56.72 2.38.11.82.06 1.68-.2 2.47-.29.89-.85 1.69-1.52 2.34-.8.77-1.83 1.36-2.94 1.41-.72.03-1.45-.18-2.09-.52a4.58 4.58 0 0 1-1.42-1.13c-.39-.47-.68-1.02-.82-1.61-.17-.73-.09-1.51.16-2.21.18-.51.45-.98.64-1.48.21-.55.32-1.13.6-1.65.25-.47.62-.87.82-1.36.12-.29.17-.61.25-.92.08-.31.18-.62.39-.86.25-.29.63-.44 1.01-.49.38-.04.76.02 1.14.1.3.07.59.15.88.25.24.09.49.19.7.34.29.21.51.49.68.8.16.32.29.65.44.97Z" /><path fill="#050507" d="M9.1 16.3c.31.02.61.05.91.09.27.04.53.09.79.16.41.1.82.23 1.24.24.11 0 .22 0 .33-.03a.69.69 0 0 0 .3-.14c.13-.1.21-.26.24-.42.03-.16.01-.33-.04-.49-.1-.32-.3-.59-.47-.87-.1-.16-.18-.33-.29-.49-.1-.16-.23-.31-.39-.41-.22-.14-.49-.19-.75-.16s-.51.12-.74.24c-.33.17-.63.4-.81.72-.06.11-.11.23-.16.35-.05.12-.11.23-.2.32-.1.1-.23.17-.33.27-.05.05-.1.11-.12.17-.03.07-.03.14-.01.21.02.05.05.09.08.12.04.03.08.05.13.07.09.04.19.04.29.05Z" /><path fill="#050507" d="M8.19 16.28c-.25.01-.51.05-.76.1-.24.05-.48.1-.71.17-.4.1-.79.23-1.2.24-.11 0-.22 0-.32-.03a.606.606 0 0 1-.29-.14.69.69 0 0 1-.24-.42c-.03-.16-.01-.33.04-.49.09-.32.3-.59.46-.87.09-.16.18-.33.28-.49.1-.16.22-.31.38-.41.21-.14.48-.19.73-.16s.5.12.72.24c.32.17.61.41.79.72.13.22.2.47.35.67.08.11.18.2.25.32.03.06.06.12.06.19a.25.25 0 0 1-.05.19c-.03.04-.06.07-.1.09-.04.02-.08.04-.13.05-.08.03-.17.03-.26.03ZM6.77 5.69c-.04-.43-.03-.86-.04-1.29-.02-.41-.05-.83-.04-1.24.01-.42.08-.85.27-1.23s.49-.7.86-.9c.35-.19.75-.27 1.15-.26.54.01 1.08.17 1.52.49.27.2.5.45.69.74.15.24.28.51.35.79.15.57.12 1.17.15 1.76.03.56.12 1.12.09 1.68-.01.12-.02.25-.07.35a.55.55 0 0 1-.25.25.97.97 0 0 1-.34.11c-.23.04-.47.01-.71.03-.34.03-.67.16-1.01.21-.41.06-.82.02-1.23 0-.16-.01-.33-.01-.49-.03a1.28 1.28 0 0 1-.47-.14.876.876 0 0 1-.24-.19.604.604 0 0 1-.14-.26c-.04-.15-.02-.3-.02-.45 0-.14-.02-.28-.03-.42Z" /><path fill="#FDFEFC" d="M7.42 5.52c-.06.07-.1.16-.12.25-.02.09-.03.18-.03.28-.01.19 0 .38-.04.56-.05.19-.17.36-.29.52-.2.28-.4.57-.5.9-.06.2-.08.41-.06.62-.22.33-.42.68-.58 1.04-.24.55-.41 1.14-.47 1.74-.07.73.02 1.49.31 2.17.21.49.52.94.93 1.29.21.18.43.33.68.45.84.41 1.89.42 2.72-.03.43-.23.8-.57 1.15-.91.21-.21.42-.42.59-.66.31-.48.42-1.06.49-1.62.12-.99.12-2.03-.31-2.93-.15-.31-.35-.59-.59-.84-.06-.43-.19-.85-.37-1.25-.13-.29-.29-.56-.41-.85-.05-.12-.09-.24-.15-.36s-.12-.23-.22-.32a.9.9 0 0 0-.34-.2c-.13-.04-.26-.06-.39-.07-.26-.01-.53.02-.79.01-.21-.01-.42-.05-.63-.03-.11.01-.21.02-.31.06-.12.04-.21.1-.27.18Z" /><path fill="#010101" fill-opacity=".259" d="M7.29 6.51c.09.27.28.51.51.69.07.06.15.12.24.16.09.04.18.06.28.05.09-.01.18-.04.27-.09l.24-.15c.14-.09.28-.16.42-.23.17-.09.34-.2.48-.33.07-.06.13-.13.2-.18.07-.05.16-.09.25-.08.07 0 .13.03.19.05.03.01.07.01.1.01.03-.01.07-.02.09-.04a.15.15 0 0 0 .04-.11c0-.04-.02-.08-.03-.12-.04-.07-.1-.14-.12-.21-.02-.07-.02-.14-.02-.22 0-.07 0-.15-.03-.21a.254.254 0 0 0-.12-.11.293.293 0 0 0-.16-.04c-.11-.01-.22.01-.33.02-.15.01-.3-.01-.44 0-.18.01-.36.06-.55.06-.21 0-.42-.07-.63-.04-.09.01-.17.05-.26.08s-.17.05-.26.05c-.1 0-.2-.04-.3-.04-.05 0-.1 0-.15.02-.05.02-.09.05-.11.1a.31.31 0 0 0-.02.08c0 .03 0 .06.01.09.01.06.04.11.06.16.06.16.08.38.15.58Z" /><path fill="#010101" d="M7.02 5.73c.18.11.35.25.49.41.13.15.24.31.4.42.12.08.26.12.4.13.17.02.34-.01.5-.05.15-.04.3-.1.43-.17.26-.14.47-.36.75-.45.06-.02.13-.04.18-.06.06-.03.11-.06.14-.12.03-.05.03-.11.03-.17.01-.06.03-.12.04-.18.01-.06.01-.13-.02-.18-.02-.05-.07-.08-.12-.11-.05-.02-.11-.03-.16-.04-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.04-.55.05-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.01-.18.04-.25.09-.07.04-.13.11-.2.16-.03.03-.07.05-.11.07-.04.02-.08.03-.13.03H7.1c-.04.01-.07.03-.09.05.01.04.01.08.01.11Z" opacity=".3" /><path fill="url(#linux_colored_a)" d="M8.2 4.25c0 .12-.01.25-.04.37-.04.12-.1.23-.18.32-.06.06-.13.1-.21.12-.08.03-.17.03-.25.01a.512.512 0 0 1-.23-.14.636.636 0 0 1-.14-.22c-.07-.17-.08-.35-.1-.53-.01-.2-.03-.4.04-.59.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.21.04.07.03.12.08.18.13.11.11.18.25.24.4.04.15.06.3.07.46Z" /><path fill="url(#linux_colored_b)" d="M10.41 4.25c-.01.15-.04.29-.1.43-.06.13-.16.25-.29.32-.1.06-.23.08-.35.07a.74.74 0 0 1-.33-.13c-.2-.14-.33-.35-.41-.58-.07-.23-.11-.48-.03-.7.01-.01.01-.02.01-.03.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.01.05.03.1.04.16.03.13.04.27.03.4Z" /><path fill="#010101" fill-opacity=".259" d="M7.47 4.82c-.1.08-.19.17-.28.26-.05.05-.1.1-.12.17-.02.06-.02.12-.03.19 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.07.05.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33a2.11 2.11 0 0 0 .3-.26c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.09-.48.25-.65.45Z" /><path fill="#050507" d="M7.96 4.53c.1-.11.17-.24.26-.36.05-.06.1-.11.17-.15.06-.04.14-.06.21-.05.08.01.16.05.22.1.06.06.1.13.14.2.03.07.06.15.11.21.05.07.13.11.19.16.03.03.06.05.09.09.03.03.05.07.05.11.01.04 0 .09-.01.13-.01.04-.04.08-.07.11-.06.06-.14.09-.23.1-.17.02-.34-.03-.51-.02-.17 0-.34.07-.51.06-.09 0-.17-.02-.24-.07a.258.258 0 0 1-.09-.09.284.284 0 0 1-.04-.12c0-.04.01-.08.02-.12a.36.36 0 0 1 .07-.1c.06-.08.12-.13.17-.19ZM9.6 3.69c-.06 0-.11.02-.16.05-.05.03-.09.07-.12.12-.07.1-.09.21-.1.33 0 .09.01.18.04.26.03.08.08.16.14.21.07.06.16.09.25.1.09 0 .18-.02.25-.07.06-.04.11-.1.14-.16.03-.06.05-.13.06-.2.02-.12 0-.25-.06-.37a.593.593 0 0 0-.27-.25c-.06-.01-.11-.02-.17-.02Z" /><path fill="#161615" d="M9.74 4.07c-.05.02-.12.01-.15.05-.01.03.01.07.03.09.06.02.15-.02.17-.08.01-.02-.01-.06-.03-.07 0 0-.01.01-.02.01Z" /><path fill="#fff" d="M9.96 4.2c.06-.06-.05-.24-.13-.31-.06-.05-.24-.1-.24-.05.01.06.09.13.14.18.08.07.2.21.23.18Z" opacity=".5" /><path fill="gray" d="M10.38 3.86c-.08-.07-.16-.13-.25-.19-.29-.19-.68-.23-1.01-.13-.07.02-.14.05-.21.08.07-.16.18-.3.33-.4.05-.04.1-.07.15-.09.1-.04.2-.04.3-.03.1.01.2.05.29.1.17.11.29.29.36.48.02.07.04.12.04.18ZM9.78 2.77c-.03.03-.05.07-.07.11.12.03.23.07.33.14.2.13.35.32.45.53.02-.03.05-.06.07-.09-.11-.22-.26-.42-.46-.56a.831.831 0 0 0-.32-.13ZM7.49 2.88h-.07c.08.01.16.03.23.06.1.04.18.11.26.18.14.13.24.29.31.46-.02-.13-.06-.26-.11-.37l-.09-.09a1 1 0 0 0-.26-.18.626.626 0 0 0-.27-.06Z" /><path fill="#050507" d="M7.26 4.04c-.02.12-.02.26.02.37.03.08.07.15.13.21.04.04.08.08.13.1.05.02.11.03.16.02a.2.2 0 0 0 .12-.08c.03-.04.05-.09.07-.13.04-.14.04-.3-.01-.44a.52.52 0 0 0-.17-.27.37.37 0 0 0-.14-.07.257.257 0 0 0-.15.01c-.05.02-.09.07-.12.12-.01.05-.03.11-.04.16Z" /><path fill="#fff" d="M7.53 3.95c.01.04.06.05.08.08.02.03.05.06.06.09.03.07-.02.16.03.21.02.01.05.01.07 0 .06-.06.05-.17.02-.26a.298.298 0 0 0-.15-.18c-.03-.02-.08-.03-.11-.01-.01.02-.01.05 0 .07Z" opacity=".5" /><path fill="#BA9319" d="M7.03 5.59c0 .02.01.03.02.05.01.02.04.04.06.06.02.02.05.03.07.05.13.08.23.2.33.32.13.16.24.34.4.46.12.08.26.13.4.15.17.02.34-.01.5-.06.15-.04.3-.11.43-.19.26-.16.47-.39.75-.49.06-.02.13-.04.18-.07.06-.03.11-.07.14-.13.03-.06.03-.12.03-.18.01-.07.03-.13.04-.2.01-.07.01-.14-.02-.2a.278.278 0 0 0-.12-.12.317.317 0 0 0-.16-.04c-.11-.01-.22.02-.33.03-.15.01-.3-.01-.44 0-.18.01-.36.05-.55.06-.21.01-.42-.02-.63-.03-.09 0-.18 0-.27.01-.09.02-.18.05-.25.1s-.13.12-.2.18c-.03.03-.07.06-.11.07-.04.02-.08.03-.13.03H7.1c-.01 0-.03.01-.04.02l-.03.03c.03.03.01.06 0 .09Z" /><path fill="#5F461B" d="M7.49 5.13c-.07.04-.15.09-.22.14-.04.03-.07.05-.09.09-.01.03-.02.06-.02.09v.09c0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.02.02.04.02.01 0 .03.01.04.01.07.02.12.06.17.1.05.04.09.1.15.14.14.11.33.16.51.16s.36-.03.54-.07c.14-.03.28-.06.41-.11.21-.08.4-.19.56-.33.07-.07.15-.14.23-.19.07-.05.16-.08.23-.12.01 0 .01-.01.02-.01.01-.01.01-.01.01-.02a.03.03 0 0 0 0-.04c0-.01-.01-.02-.02-.04l-.03-.03a.508.508 0 0 0-.29-.1c-.1-.01-.21 0-.31-.02s-.19-.05-.28-.08c-.1-.03-.2-.06-.3-.07a1.94 1.94 0 0 0-.72.02c-.22.05-.44.13-.64.25Z" /><path fill="#F4C021" d="M7.47 4.88c-.11.07-.2.16-.28.26-.05.06-.09.12-.11.19-.02.06-.02.11-.04.17 0 .02-.01.04-.01.06v.03c0 .01.01.02.02.03.01.01.03.02.05.02.02 0 .04 0 .05.01.08.01.16.05.22.09.06.04.13.1.2.14.15.1.33.14.51.15.18.01.36-.02.53-.06.14-.03.28-.06.41-.11.2-.08.39-.2.56-.33.08-.06.16-.12.23-.19l.07-.07c.03-.02.05-.04.09-.05.05-.02.1-.01.15 0 .04.01.08.01.11.01.02 0 .04 0 .06-.01.02-.01.03-.02.05-.03.02-.02.02-.05.02-.07 0-.03-.01-.05-.02-.07a.273.273 0 0 0-.12-.09c-.06-.03-.13-.04-.2-.06a2.54 2.54 0 0 1-.6-.22c-.1-.05-.19-.1-.28-.15-.1-.05-.19-.1-.3-.13-.23-.07-.49-.05-.72.03-.24.08-.48.24-.65.45Z" /><path fill="#F6DA4A" d="M9.11 4.93a.055.055 0 0 0-.05-.03c-.02 0-.04-.01-.06 0a.37.37 0 0 0-.11.05c-.09.07-.18.15-.25.23a.8.8 0 0 0-.2.4c0 .03-.01.05 0 .08s.01.05.03.07c.02.02.04.03.06.03.02 0 .05 0 .07-.01.04-.01.08-.04.11-.07.19-.17.35-.36.42-.6.01-.02.01-.05.01-.07-.01-.04-.01-.06-.03-.08Z" /><path fill="#5F461B" d="M8.67 4.59c.01.04.08.03.12.05.03.02.06.06.1.06.04 0 .09-.01.1-.05.01-.05-.06-.08-.11-.09-.06-.02-.13-.03-.18 0-.02 0-.04.01-.03.03ZM8.03 4.56c-.05-.02-.13.07-.1.12.01.01.03.03.04.02.02-.01.04-.06.07-.07.02-.02.01-.06-.01-.07Z" /><path fill="#F4C021" d="M10.39 5.21c-.01.11-.09.2-.18.2s-.15-.09-.14-.2c.01-.11.09-.2.18-.2.09.01.15.09.14.2Z" /><path fill="gray" d="M8.02 3.57c-.08-.01-.15-.03-.23-.04a.902.902 0 0 0-.51.1c-.1.06-.17.14-.24.23 0-.09.01-.18.04-.26.03-.1.08-.18.15-.25.07-.07.17-.12.26-.12.07-.01.15.01.22.04s.12.08.18.13c.05.06.09.11.13.17Z" /><path fill="#050507" d="M12.54 8.94c.34.27.55.68.62 1.11.05.33.02.68-.06 1.01-.08.33-.19.65-.31.97-.05.13-.09.25-.11.39a.59.59 0 0 0 .06.39c.07.14.21.23.36.27.15.04.3.04.45.01.15-.04.29-.11.41-.2.31-.24.49-.61.56-.99.07-.38.04-.77-.03-1.16-.09-.52-.24-1.03-.44-1.52a4.4 4.4 0 0 0-.54-1.03c-.23-.3-.52-.56-.74-.87-.16-.21-.28-.45-.47-.64a.955.955 0 0 0-.33-.22.654.654 0 0 0-.39-.03c-.17.05-.3.18-.38.34-.07.16-.09.34-.06.51.04.22.14.43.25.62.13.22.28.43.47.59.23.18.48.29.68.45Z" /><path fill="#838385" d="M13.23 11.05c-.12.4-.27.79-.41 1.19-.05.14-.1.28-.12.42-.01-.07-.01-.16-.01-.24.02-.14.07-.26.11-.39.23-.64.47-1.31.37-1.98-.07-.43-.28-.84-.62-1.11-.18-.15-.4-.26-.59-.4.21.12.43.21.62.36.36.26.62.67.69 1.11.05.34.07.64-.04 1.04Z" /><path fill="#010101" fill-opacity=".259" d="M6.48 8.17c.06.08-.04.38 1.28.19 0 0-.23.03-.46.08-.35.12-.66.25-.9.43-.24.17-.41.4-.62.59 0 0 .35-.64.44-.83.09-.19-.01-.18.05-.47.07-.28.24-.56.24-.56s-.14.41-.03.57ZM10.71 8.1c-.27.19-.42.16-.75.2-.32.04-1.2.02-1.2.02s.13 0 .41.05c.28.05.86.1 1.18.23.32.12.44.16.64.28.28.18.49.45.75.65 0 0 .01-.26-.1-.45s-.4-.5-.48-.78c-.09-.28-.13-.84-.13-.84s-.05.45-.32.64Z" /><path fill="#010101" fill-opacity=".259" d="M8.19 7.7c-.01.08-.02.16-.04.24l-.03.12c-.01.04-.04.07-.07.1a1.086 1.086 0 0 1-.48.16c.05 0 .11.01.16.01.03 0 .07.01.1.02s.07.02.09.04c.03.02.05.05.07.09.04.07.05.14.05.22.01.1.01.19 0 .29.01-.06.02-.13.04-.19.04-.11.09-.21.17-.3.03-.03.07-.06.1-.09.12-.08.26-.12.4-.1a.63.63 0 0 1-.4-.12.428.428 0 0 1-.14-.16.613.613 0 0 1-.02-.33ZM7.85 9.59c-.07.26-.12.52-.14.79-.04.38-.03.76-.05 1.14-.02.32-.05.65 0 .96.03.15.07.3.14.44.01-.05.02-.11.02-.16.02-.26-.02-.52-.03-.77-.03-.45.04-.9.06-1.36.02-.35.02-.69 0-1.04Z" /><path fill="#050507" d="M15.88 14.83c-.03-.06-.08-.11-.13-.16-.05-.04-.11-.08-.16-.12-.12-.09-.22-.18-.33-.28-.11-.1-.22-.2-.3-.31a.868.868 0 0 1-.18-.39c-.01-.04 0-.07-.01-.11-.01-.03-.03-.07-.04-.1-.02-.09-.02-.18-.02-.26 0-.05-.02-.09-.03-.13-.02-.04-.04-.09-.07-.13a.636.636 0 0 0-.22-.14.742.742 0 0 0-.25-.05c-.21-.01-.42.06-.63.07-.2.02-.39-.02-.58-.07-.11-.03-.22-.08-.33-.11-.18-.05-.36-.08-.54-.12-.08-.01-.16-.03-.23-.03a.34.34 0 0 0-.22.07c-.07.05-.1.14-.12.22-.02.08-.01.17-.01.26.02.51 0 1.02-.07 1.52-.03.18-.07.36-.1.54l-.03.21c-.06.33-.12.67-.12 1 0 .19.02.39.12.55.1.16.27.27.44.35.25.11.53.16.79.12.22-.03.43-.13.61-.26s.33-.29.49-.44c.19-.18.39-.34.6-.49.32-.21.68-.36 1.02-.54.2-.1.4-.22.55-.39.06-.07.1-.14.13-.22-.02-.02-.02-.04-.03-.06Z" /><path fill="#F4C021" d="M15.75 14.67c-.03.09-.08.17-.14.24-.13.16-.32.26-.5.35-.31.16-.64.29-.93.48-.2.13-.38.28-.55.44-.15.14-.28.28-.45.4-.17.12-.36.2-.56.23-.24.04-.5-.01-.72-.11-.16-.07-.31-.16-.4-.31-.09-.15-.11-.32-.11-.49 0-.3.06-.6.11-.9.04-.25.09-.5.11-.75.05-.46.05-.92.02-1.37a.885.885 0 0 1 0-.23.288.288 0 0 1 .3-.27c.07 0 .14.01.21.02.17.02.34.04.5.09.1.03.2.06.31.09.17.05.35.07.53.05.19-.02.38-.09.57-.09.08 0 .16.02.23.04.08.02.15.06.21.11.04.04.07.1.1.15.03.08.06.17.06.26s-.02.19-.01.28c.01.08.04.15.08.21s.09.12.14.18c.1.11.19.23.31.31.14.1.3.16.44.25.04.03.08.06.11.1.04.07.06.16.03.24Z" /><path fill="#7D7D7D" d="M12.37 9.21c.07-.01.47.34.42.46-.06.13-.16.05-.23.05s-.28.09-.31.04c-.03-.05.09-.2.16-.31.04-.09-.11-.23-.04-.24Z" opacity=".75" /><path fill="#7D7D7D" d="M6.63 7.03c-.01-.08-.12-.09-.17-.05-.04.03-.08.15-.05.19.07.08.23-.03.22-.14Z" opacity=".25" /><path fill="#BA9319" d="M14.01 12.84a.273.273 0 0 0-.15-.13c-.06-.03-.13-.03-.2-.03-.14 0-.27.04-.41.02-.12-.01-.23-.05-.34-.08a.732.732 0 0 0-.36-.01c-.12.03-.23.12-.3.22-.06.1-.09.21-.1.32-.01.11 0 .23.01.34.01.08.02.16.04.24a.561.561 0 0 0 .38.42c.18.07.38.06.56-.01.31-.14.58-.38.74-.68.06-.11.1-.22.13-.34.01-.05.02-.1.02-.14.01-.05 0-.1-.02-.14Z" /><path fill="#BA9319" d="M14.01 12.77a.33.33 0 0 0-.15-.1c-.06-.02-.13-.03-.2-.02-.14 0-.27.03-.41.02-.12-.01-.23-.04-.34-.06-.12-.02-.24-.03-.36-.01-.12.02-.23.08-.3.16a.43.43 0 0 0-.1.23c-.01.08 0 .16.01.24.01.06.02.12.04.17.02.06.05.11.1.16.07.07.17.12.28.15.18.05.38.05.56-.01.31-.1.58-.28.74-.49.06-.08.1-.16.13-.25.01-.03.02-.07.02-.1.01-.02 0-.06-.02-.09Z" /><path fill="#050507" d="M14.26 12.27c.03.07.03.16.01.25-.03.1-.08.21-.15.29-.19.28-.47.49-.79.6-.19.07-.4.07-.6.01a.71.71 0 0 1-.3-.18c-.1-.11-.13-.26-.15-.41-.01-.19.01-.4.1-.57a.736.736 0 0 1 .48-.43c.12-.02.26-.01.38.01s.24.05.36.07c.12.02.26.04.38.1.06.02.12.06.16.1.07.04.1.09.12.16Z" /><path fill="#838385" d="M12.94 11.77c-.03 0-.06.01-.09.01-.19.03-.37.16-.47.32-.07.12-.1.26-.09.4 0-.1.03-.19.08-.28.08-.14.22-.25.38-.28.1-.02.2-.01.3.01.1.01.19.02.29.05.15.03.29.08.41.17.03.02.06.04.08.07.02.03.04.06.05.09.01.05 0 .1-.03.15a1.06 1.06 0 0 1-.19.2c.14-.03.29-.07.4-.15a.3.3 0 0 0 .12-.13c.03-.05.04-.12.03-.18a.238.238 0 0 0-.06-.11c-.03-.03-.06-.06-.09-.08-.15-.1-.32-.17-.5-.19-.12-.02-.23-.04-.35-.05-.09-.01-.18-.02-.27-.02Z" /><path fill="#050507" d="m6.63 6.67-.46.58-.48.6c-.2.24-.4.49-.52.77-.11.24-.16.51-.24.77-.09.29-.2.58-.33.85-.12.25-.25.5-.38.75-.1.18-.19.37-.23.57-.03.16-.01.32.03.48.04.16.11.31.18.45.31.61.79 1.14 1.34 1.55.25.18.53.34.81.47.15.07.32.13.49.14.08 0 .17-.01.25-.05.08-.03.15-.09.19-.16.06-.09.08-.2.06-.3-.01-.1-.05-.2-.11-.29-.13-.22-.34-.38-.54-.53-.43-.34-.86-.69-1.26-1.07-.11-.11-.23-.22-.31-.35-.08-.13-.12-.28-.15-.43-.08-.41-.06-.84.08-1.23.05-.15.13-.3.2-.45.12-.25.23-.51.39-.75.2-.29.46-.54.62-.85.14-.26.19-.56.24-.85.05-.22.09-.44.13-.67Z" /><path fill="#838385" d="M5.06 10.24c-.14.39-.16.82-.08 1.23.03.15.07.3.15.43.08.13.19.24.31.35.01.01.04.03.05.04h-.02a.523.523 0 0 1-.23-.1.58.58 0 0 1-.16-.19c-.06-.09-.1-.18-.16-.26a.548.548 0 0 0-.29-.21c.09-.04.16-.1.21-.18a.6.6 0 0 0 .07-.32c-.01-.11-.02-.22-.01-.33.01-.21.1-.41.18-.61.1-.27.19-.55.34-.79.1-.15.21-.29.33-.41a.12.12 0 0 1 .07-.07c.02-.01.04-.03.07-.03-.07.09-.15.18-.21.28-.16.23-.27.49-.39.74-.11.13-.18.28-.23.43Z" /><path fill="#050507" d="M4.46 11.86c.09-.03.19-.04.28-.02.09.02.18.06.26.12.15.11.27.28.37.43.25.37.48.74.69 1.13.17.31.33.64.53.93.13.19.28.37.41.57.13.19.25.4.3.63.07.3.03.62-.12.88a1.146 1.146 0 0 1-1.07.59c-.34-.03-.64-.21-.95-.34-.63-.28-1.33-.39-1.98-.61-.2-.07-.4-.15-.6-.21-.09-.03-.18-.05-.27-.1a.478.478 0 0 1-.21-.19.378.378 0 0 1-.04-.21c.01-.07.02-.14.05-.21.05-.14.14-.26.2-.39.1-.22.12-.46.12-.7 0-.24-.03-.48-.04-.71 0-.11 0-.21.02-.32.02-.1.07-.2.15-.28.07-.07.17-.1.27-.12.1-.02.2-.01.29-.01.1.01.2.01.29.01.1 0 .2-.02.28-.07.08-.04.15-.11.21-.18.06-.07.1-.15.15-.23.05-.08.1-.16.16-.23s.16-.13.25-.16Z" /><path fill="#F4C021" d="M4.5 12.18c.08-.03.17-.04.26-.02.08.02.16.06.23.11.14.11.23.26.32.4.22.36.44.72.64 1.09.15.28.3.56.49.81.13.17.27.32.4.49.13.17.24.35.3.55.07.26.04.55-.08.79-.09.17-.23.32-.4.42-.17.1-.36.15-.56.14-.31-.01-.59-.17-.89-.27-.56-.2-1.17-.23-1.74-.39-.21-.06-.41-.13-.61-.18-.09-.02-.18-.04-.27-.08a.433.433 0 0 1-.22-.18.351.351 0 0 1-.05-.2c0-.07.02-.14.04-.2.05-.13.13-.25.18-.38.08-.2.09-.42.07-.63-.01-.21-.05-.42-.06-.63a.878.878 0 0 1 .01-.28c.02-.09.06-.18.13-.25s.17-.11.28-.13c.1-.02.21-.01.31 0s.21.02.31.01.21-.03.29-.09a.52.52 0 0 0 .18-.21c.04-.08.08-.17.11-.26s.07-.17.12-.25a.41.41 0 0 1 .21-.18Z" /><defs><radialGradient id="linux_colored_a" cx="0" cy="0" r="1" gradientTransform="matrix(.65895 -.02773 .04242 1.00798 7.632 4.069)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient><radialGradient id="linux_colored_b" cx="0" cy="0" r="1" gradientTransform="matrix(.9544 0 0 .9544 9.662 4.1)" gradientUnits="userSpaceOnUse"><stop stop-color="#FFFFFD" /><stop offset=".757" stop-color="#FFFFFD" /><stop offset="1" stop-color="#D4D4D4" /></radialGradient></defs></symbol>'}),Ii=(a().add(Ti),Ti),Bi=new(o())({id:"linux_manjaro",use:"linux_manjaro-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="linux_manjaro"><path d="M9.049 0H0v14h4.084V4.097h4.965V0ZM14 0H9.903v14H14V0Z" /><path d="M9.049 4.951H4.95V14H9.05V4.951Z" /></symbol>'}),ji=(a().add(Bi),Bi),Di=new(o())({id:"macOSX",use:"macOSX-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="macOSX"><path d="M9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7Zm3.55 11.48h-.85L9 9.61l-2.7 3.87h-.85L8.57 9 5.45 4.52h.85L9 8.39l2.7-3.87h.85L9.43 9l3.12 4.48Z" /></symbol>'}),Li=(a().add(Di),Di),Zi=new(o())({id:"oracle",use:"oracle-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle"><path d="M12 14H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h6c2.76 0 5 2.24 5 5s-2.24 5-5 5ZM6 6C4.35 6 3 7.35 3 9s1.35 3 3 3h6c1.65 0 3-1.35 3-3s-1.35-3-3-3H6Z" /></symbol>'}),Ni=(a().add(Zi),Zi),Fi=new(o())({id:"oracle_colored",use:"oracle_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="oracle_colored"><path fill="#ED1C24" d="M12 4H6C3.24 4 1 6.24 1 9s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5Z" /></symbol>'}),Hi=(a().add(Fi),Fi),Vi=new(o())({id:"os_press",use:"os_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="os_press"><path d="M6.75 7.5c-.14 0-.25.11-.25.25v2.5c0 .14.11.25.25.25s.25-.11.25-.25v-2.5c0-.14-.11-.25-.25-.25ZM11.77 2H6.23C3.89 2 2 3.89 2 6.23v5.54C2 14.1 3.89 16 6.23 16h5.54c2.34 0 4.23-1.89 4.23-4.23V6.23C16 3.89 14.11 2 11.77 2ZM8.5 10.25c0 .97-.78 1.75-1.75 1.75S5 11.22 5 10.25v-2.5C5 6.78 5.78 6 6.75 6s1.75.78 1.75 1.75v2.5ZM13 8.1h-1.5v-.35c0-.14-.11-.25-.25-.25s-.25.11-.25.25v.03c0 .08.04.16.11.21l1.15.8c.47.33.75.86.75 1.43v.03c0 .96-.79 1.75-1.75 1.75s-1.76-.79-1.76-1.75V9.9H11v.35c0 .14.11.25.25.25s.25-.11.25-.25v-.03a.26.26 0 0 0-.11-.21l-1.15-.8c-.47-.33-.75-.86-.75-1.43v-.03c0-.96.79-1.75 1.75-1.75S13 6.79 13 7.75v.35Z" /></symbol>'}),zi=(a().add(Vi),Vi),Ui=new(o())({id:"raspbian",use:"raspbian-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="raspbian"><path d="M13.96 8.09c.32-1.85-1.36-2.49-1.36-2.49 1.36-.32 2.4-2.57 2-3.86 0 0 .16-.24-1.76-.64S9 1.58 9 2.86C9 1.58 7.08.7 5.16 1.1c-1.92.4-1.76.64-1.76.64-.4 1.29.64 3.53 2 3.86 0 0-1.68.64-1.36 2.49 0 0-2.24 1.45-.64 3.86 0 0 .08.8.4 1.2 0 0 .24 1.69 1.68 2.01 0 0 .48.8 1.44.88 0 0 .72.96 2.08.96s2.08-.96 2.08-.96c.96-.08 1.44-.88 1.44-.88 1.44-.32 1.68-2.01 1.68-2.01.32-.4.4-1.2.4-1.2 1.6-2.42-.64-3.86-.64-3.86Zm-1.1-1.77c.59.53.84 1.25.66 1.77-.45-.17-.94-.47-1.41-.89a4.49 4.49 0 0 1-1.06-1.33c.49-.24 1.23-.07 1.81.45ZM9.72 2.3c.64-.64 1.44-.8 2.16-.72.72.08 1.92.48 2.4.4-.24.4-.4.88-.4 1.37 0 .49-.8 1.69-1.76 1.93-.84.21-1.67-.01-2.03-.71 0-.01.01-.01.01-.02.1-.12.21-.23.32-.34.23-.22.48-.43.74-.62.52-.39 1.09-.72 1.69-1l-.03-.07c-.63.21-1.24.49-1.82.83-.29.17-.57.35-.84.56-.11.09-.21.17-.32.27-.48-.34-.71-1.28-.12-1.88Zm.93 4.14c-.13.57-.82 1-1.65 1s-1.52-.43-1.65-1c.13-.57.82-1 1.65-1s1.52.43 1.65 1Zm.03 6.22c0 .93-.75 1.69-1.68 1.69-.93 0-1.68-.76-1.68-1.69 0-.93.75-1.69 1.68-1.69.93 0 1.68.76 1.68 1.69ZM4.12 3.35c0-.48-.16-.96-.4-1.37.48.08 1.68-.32 2.4-.4.72-.08 1.52.08 2.16.72.59.6.36 1.54-.12 1.86-.1-.09-.21-.18-.32-.27-.27-.21-.55-.39-.84-.56-.58-.33-1.2-.61-1.83-.82l-.03.07c.6.28 1.16.61 1.69 1 .26.19.51.4.74.62.12.11.22.23.32.34 0 .01.01.01.01.02-.36.7-1.2.92-2.03.71-.95-.24-1.75-1.44-1.75-1.92Zm1.02 2.97c.59-.52 1.33-.69 1.81-.45-.22.43-.58.9-1.06 1.33-.47.41-.96.72-1.41.89-.19-.52.06-1.24.66-1.77Zm-1.12 5.36h-.05c-.44-.04-.73-.78-.64-1.64.09-.86.51-1.52.95-1.48.06.01.12.03.18.06.19.33.28.88.22 1.5-.07.73-.34 1.34-.66 1.56Zm2.44 3.15c-.57.11-1.43-.47-1.92-1.29-.49-.83-.43-1.58.13-1.7.57-.11 1.43.47 1.92 1.29.49.83.43 1.59-.13 1.7Zm.08-3.59c-.91-.04-1.48-.9-1.26-1.92.22-1.02 1.13-1.81 2.04-1.76.91.04 1.48.9 1.26 1.92-.22 1.01-1.13 1.8-2.04 1.76ZM9 16.52c-.83 0-1.53-.5-1.76-1.19.45-.31 1.07-.5 1.76-.5s1.31.19 1.76.5c-.23.69-.93 1.19-1.76 1.19Zm.42-7.05c-.22-1.01.35-1.87 1.26-1.91.91-.04 1.83.75 2.04 1.76.22 1.02-.35 1.88-1.26 1.92-.91.04-1.82-.75-2.04-1.77Zm4.04 4.07c-.49.83-1.35 1.4-1.92 1.29-.57-.11-.63-.87-.13-1.7.49-.83 1.35-1.4 1.92-1.29.57.11.63.87.13 1.7Zm.57-1.86h-.05c-.32-.23-.59-.83-.66-1.56-.06-.61.03-1.17.22-1.5.06-.03.12-.05.18-.06.44-.04.87.62.95 1.48.09.87-.2 1.6-.64 1.64Z" /></symbol>'}),Gi=(a().add(Ui),Ui),Wi=new(o())({id:"red_hat",use:"red_hat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="red_hat"><path d="m14.41 8.96-.19-.8a1.153 1.153 0 0 1 0 .01l-.63-2.72c-.14-.6-.27-.87-1.32-1.4-.81-.42-2.59-1.11-3.12-1.11-.49 0-.63.63-1.21.63-.56 0-.98-.47-1.5-.47-.5 0-.83.34-1.09 1.05 0 0-.71 1.99-.8 2.28v.01l-.31.76C2.83 7.28 1 7.53 1 9.14c0 2.65 6.27 5.91 11.23 5.91 3.81 0 4.77-1.72 4.77-3.08 0-1.07-.92-2.28-2.59-3.01ZM4.54 6.54v.08-.02a.064.064 0 0 1 0-.06Zm6.95 5.11c-3.93 0-7.37-2.3-7.37-3.82v-.04c.13-.31.3-.71.45-1.03v-.02c0 .01.01.02.01.03l.03.06c0 .01.01.02.01.03.01.02.02.04.04.07.01.01.01.02.02.03.01.02.03.05.05.07.01.01.02.03.03.04.02.02.03.05.05.07.01.01.02.03.03.04.02.02.03.04.05.06.02.02.04.04.05.06.02.02.03.04.05.05.02.02.04.05.07.07l.05.05.07.07.06.06c.02.02.05.04.08.07.02.02.05.04.07.06.02.02.04.04.06.05.03.03.07.05.1.08.02.02.04.04.07.05l.11.08c.02.02.05.03.07.05.04.03.08.06.12.08.02.02.05.03.07.05.04.03.08.05.12.08.03.02.06.04.08.05.04.02.08.05.11.07.03.02.06.04.1.06.04.02.08.05.12.07.03.02.06.04.1.06.04.03.09.05.13.08.03.01.05.03.08.04.05.03.11.06.16.08.02.01.05.02.07.04l.18.09c.02.01.05.02.07.03.06.03.13.06.19.09.02.01.05.02.07.03.07.03.13.06.2.09.02.01.05.02.07.03.07.03.14.06.22.08.02.01.04.02.06.02.08.03.15.06.23.08.02.01.04.01.05.02.08.03.16.05.24.08.01 0 .03.01.04.01.08.03.17.05.25.07.01 0 .02.01.04.01.09.02.18.05.27.07.02 0 .03.01.05.01l.27.06c.02 0 .03.01.05.01.09.02.18.04.28.05.02 0 .04.01.05.01.09.02.19.03.28.04.02 0 .03 0 .05.01.1.01.19.03.29.04h.05l.3.03h.04c.11.01.21.01.32.02h.02c.11 0 .23.01.34.01.98 0 2.37-.19 2.55-1.23.1.44.22.94.3 1.41-.15 1.03-1.4 1.58-2.99 1.58Z" /></symbol>'}),qi=(a().add(Wi),Wi),$i=new(o())({id:"suse_linux",use:"suse_linux-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="suse_linux"><path d="M16.83 8.24c.01 0 .02-.01.03-.01.13-.04.77-.2.68-.45l-.47-1.26s-.16-.55-.87-.79-2.52-.79-3.07-.79v.63s-1.89-.79-4.88-.79-5.59 1.5-6.85 3.07c-1.26 1.57-1.01 3-.7 3.63.31.63 1.1 1.73 2.6 1.73s2.28-1.02 2.28-1.65c0-.7-.23-1.51-.84-1.92-.65-.42-1.58-.46-2.15.11-.68.68-.3 2.01.76 1.98.28-.01.73-.14.73-.48 0-.31-.16-.39-.39-.31-.24.08-.31.08-.47 0-.25-.13-.3-.5-.1-.69.26-.24.69-.2.96-.01.42.28.74.66.57 1.18-.16.49-.53.88-1.08.89-.56.01-1.17-.08-1.52-.57-.43-.61-.69-1.46-.26-2.13.55-.87 1.26-1.02 2.05-.94.79.08 2.2.87 2.44 1.57.24.71.31.87.31 1.1l1.1.55s-.47-1.26.24-1.89c.71-.63 1.65-.31 1.97-.08.32.23 1.34 1.18 1.5 1.5l1.5.71s-.47-.71-.71-1.34c-.24-.63 0-1.26.39-1.26s1.5.16 2.05.16c.55 0 2.52-.08 2.83-1.34-.02.08-.41.22-.49.25-.19.08-.39.15-.6.18-.38.07-.74.02-1.1-.11-.49-.16-.97-.39-1.43-.64l-.31-.71c.57.32 1.11.71 1.73.93.5.17 1.05.13 1.57-.01Zm-2.12-1.29c0-.59.48-1.06 1.06-1.06.58 0 1.06.48 1.06 1.06a1.06 1.06 0 0 1-2.12 0Zm1.81 0c0-.41-.33-.75-.75-.75s-.75.33-.75.75c0 .41.33.75.75.75s.75-.33.75-.75Zm-.93-.25c.03-.1.19-.14.36-.09.17.05.27.18.24.28-.03.1-.19.14-.36.09-.17-.05-.27-.18-.24-.28Z" /></symbol>'}),Yi=(a().add($i),$i),Xi=new(o())({id:"ubuntu",use:"ubuntu-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu"><path d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46Zm6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26Zm3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46ZM6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9Zm3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1Zm3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46Z" /></symbol>'}),Ki=(a().add(Xi),Xi),Ji=new(o())({id:"ubuntu_colored",use:"ubuntu_colored-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ubuntu_colored"><path fill="#F26422" d="M2.95 7.54c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.8-.65-1.46-1.46-1.46Zm6.98-2.15a3.61 3.61 0 0 1 3.57 3.1H16a6.009 6.009 0 0 0-1.64-3.67c-.61.31-1.36.32-2-.05a2.07 2.07 0 0 1-1.04-1.71c-.46-.11-.93-.16-1.4-.16-.91 0-1.79.2-2.6.58l1.25 2.17c.44-.17.9-.26 1.36-.26Zm3.48-.97c.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46-.81 0-1.46.65-1.46 1.46 0 .81.66 1.46 1.46 1.46ZM6.32 9c0-1.15.54-2.18 1.38-2.84L6.44 4c-.3.21-.57.44-.83.7-.72.72-1.24 1.6-1.53 2.55a2.093 2.093 0 0 1 0 3.52c.29.95.81 1.83 1.53 2.55.26.26.53.49.83.7l1.26-2.18A3.608 3.608 0 0 1 6.32 9Zm3.61 3.61c-.47 0-.93-.09-1.34-.26l-1.25 2.17c.8.38 1.68.58 2.6.58.48 0 .95-.05 1.4-.16.03-.69.4-1.34 1.04-1.71.64-.37 1.39-.36 2-.05a6.028 6.028 0 0 0 1.63-3.67h-2.5c-.26 1.75-1.77 3.1-3.58 3.1Zm3.48.97c-.81 0-1.46.65-1.46 1.46 0 .81.65 1.46 1.46 1.46.81 0 1.46-.65 1.46-1.46 0-.81-.65-1.46-1.46-1.46Z" /></symbol>'}),Qi=(a().add(Ji),Ji),ea=new(o())({id:"notification",use:"notification-usage",viewBox:"0 0 40 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 24" id="notification"><path fill-rule="evenodd" d="M28 24c6.627 0 12-5.373 12-12S34.627 0 28 0 16 5.373 16 12s5.373 12 12 12Z" clip-rule="evenodd" /><path stroke="#fff" d="M23.5 12c0 6.351-5.149 11.5-11.5 11.5S.5 18.351.5 12 5.649.5 12 .5 23.5 5.649 23.5 12Z" /><path d="M14.718 15H9.459v-.897l2.606-2.841c.375-.42.642-.768.8-1.048.16-.283.241-.565.241-.848 0-.373-.105-.673-.316-.903-.208-.229-.49-.343-.844-.343-.422 0-.75.129-.983.386-.232.258-.349.61-.349 1.058H9.31c0-.476.107-.904.322-1.283.219-.383.528-.68.93-.892.404-.211.87-.317 1.396-.317.76 0 1.357.192 1.794.575.44.38.66.906.66 1.58 0 .39-.11.8-.332 1.23-.219.425-.579.91-1.08 1.455l-1.912 2.046h3.63V15ZM26.969 10.494h.795c.4-.004.718-.108.95-.312.237-.204.355-.5.355-.886 0-.372-.099-.66-.296-.865-.193-.208-.49-.311-.891-.311-.351 0-.64.102-.865.306-.226.2-.338.463-.338.79h-1.305c0-.402.105-.767.316-1.096.215-.33.512-.586.892-.768.383-.187.811-.28 1.284-.28.78 0 1.393.197 1.837.591.447.39.671.935.671 1.633 0 .35-.113.682-.338.994-.222.308-.51.54-.865.698.43.147.755.378.977.693.226.315.339.69.339 1.128 0 .701-.242 1.26-.725 1.675-.48.416-1.112.623-1.896.623-.752 0-1.368-.2-1.848-.601-.48-.401-.72-.935-.72-1.6h1.306c0 .343.114.622.343.837.233.215.544.322.935.322.404 0 .723-.107.956-.322.233-.215.349-.526.349-.934 0-.412-.122-.73-.365-.951-.244-.222-.605-.333-1.085-.333h-.768v-1.031Z" /></symbol>'}),ta=(a().add(ea),ea),na=new(o())({id:"padlock",use:"padlock-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="padlock"><path d="M13 7.5v-2c0-2.21-1.79-4-4-4s-4 1.79-4 4v2H3.5V11c0 3.03 2.47 5.5 5.5 5.5s5.5-2.47 5.5-5.5V7.5H13Zm-6.5-2a2.5 2.5 0 0 1 5 0v2h-5v-2ZM13 11c0 2.21-1.79 4-4 4s-4-1.79-4-4V9h8v2Zm-4.75 1.75c0 .41.34.75.75.75s.75-.34.75-.75v-.95A1.097 1.097 0 0 0 9 9.9a1.097 1.097 0 0 0-.75 1.9v.95Z" /></symbol>'}),ra=(a().add(na),na),oa=n(57138),ia=new(o())({id:"pause_outline",use:"pause_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pause_outline"><path d="M6.43 3H5.07C3.93 3 3 3.93 3 5.07v7.86C3 14.07 3.93 15 5.07 15h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C8.5 3.93 7.57 3 6.43 3ZM7 12.93c0 .31-.26.57-.57.57H5.07a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57v7.86ZM12.93 3h-1.36c-1.14 0-2.07.93-2.07 2.07v7.86c0 1.14.93 2.07 2.07 2.07h1.36c1.14 0 2.07-.93 2.07-2.07V5.07C15 3.93 14.07 3 12.93 3Zm.57 9.93c0 .31-.26.57-.57.57h-1.36a.57.57 0 0 1-.57-.57V5.07c0-.31.26-.57.57-.57h1.36c.32 0 .57.26.57.57v7.86Z" /></symbol>'}),aa=(a().add(ia),ia),sa=new(o())({id:"pause_solid",use:"pause_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pause_solid"><path d="M9.1 5H6.8c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9C11 5.8 10.2 5 9.1 5Zm8 0h-2.3c-1 0-1.9.8-1.9 1.9v10.3c0 1 .8 1.9 1.9 1.9h2.3c1 0 1.9-.8 1.9-1.9V6.9c0-1.1-.8-1.9-1.9-1.9Z" /></symbol>'}),la=(a().add(sa),sa),ua=new(o())({id:"pencil_outline",use:"pencil_outline-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pencil_outline"><path d="M9.76 0c-1.13 0-2.2.45-3 1.24L6 2 4.94 3.06.5 7.5 0 14l6.5-.5 6.26-6.26a4.242 4.242 0 0 0-3-7.24Zm1.94 6.18-5.86 5.86-2.26.17c-.21-.43-.49-.82-.84-1.15-.28-.26-.6-.48-.95-.65l.17-2.25L6 4.12 8.38 6.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44L7.06 3.06l.76-.76a2.744 2.744 0 0 1 3.88 3.88Z" /></symbol>'}),ca=(a().add(ua),ua),fa=new(o())({id:"pencil_solid",use:"pencil_solid-usage",viewBox:"0 0 19 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 19" id="pencil_solid"><path d="M17.71 4.043c.39-.39.39-1.04 0-1.41L15.37.292c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75 1.84-1.83ZM0 14.253v3.75h3.75l11.06-11.07-3.75-3.75L0 14.253Z" /></symbol>'}),da=(a().add(fa),fa),pa=new(o())({id:"pie_chart_skeleton",use:"pie_chart_skeleton-usage",viewBox:"0 0 100 100",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" id="pie_chart_skeleton"><path fill-rule="evenodd" d="m68.254 96.563-1.544-8.756A41.654 41.654 0 0 1 50 91.282c-23.083 0-41.795-18.712-41.795-41.795C8.205 26.404 26.917 7.692 50 7.692c.872 0 1.739.027 2.598.08L51.23.015A50.96 50.96 0 0 0 50 0C22.386 0 0 22.386 0 50s22.386 50 50 50c6.442 0 12.6-1.219 18.254-3.437Zm31.092-54.669a50.02 50.02 0 0 0-.224-1.27l.224 1.27Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="m95.04 28.262 1.687 4.637-7.31 2.66a41.73 41.73 0 0 1 2.377 13.928c0 23.083-18.712 41.795-41.794 41.795-.225 0-.45-.002-.674-.005l3.153 8.662C78.941 98.647 100 76.784 100 50a49.8 49.8 0 0 0-4.96-21.738Z" clip-rule="evenodd" /><path fill-rule="evenodd" d="M99.514 57c.32-2.287.486-4.624.486-7 0-27.614-22.385-50-50-50h-.256v7.693H50c23.083 0 41.795 18.711 41.795 41.794 0 2.565-.23 5.076-.673 7.513h8.392Z" clip-rule="evenodd" /></symbol>'}),ha=(a().add(pa),pa),ga=new(o())({id:"pin_element",use:"pin_element-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="pin_element"><path d="M3.75 0h6.5A3.75 3.75 0 0 1 14 3.75C14 4.44 13.44 5 12.75 5h-.25V3.75a2.25 2.25 0 0 0-2.25-2.25h-6.5A2.25 2.25 0 0 0 1.5 3.75v6.5a2.25 2.25 0 0 0 2.25 2.25H5v.25C5 13.44 4.44 14 3.75 14A3.75 3.75 0 0 1 0 10.25v-6.5A3.75 3.75 0 0 1 3.75 0Z" /><path d="M12.5 7.25a.75.75 0 0 1 1.5 0V14H7.25a.75.75 0 0 1 0-1.5h4.19L6.47 7.53l1.06-1.06 4.97 4.969V7.25Z" /></symbol>'}),va=(a().add(ga),ga),ma=new(o())({id:"play_outline",use:"play_outline-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="play_outline"><path d="M13.73 7.24 5.94 3.05c-.2-.11-.42-.16-.62-.16C4.63 2.89 4 3.44 4 4.2v9.6c0 .77.63 1.32 1.32 1.32.21 0 .42-.05.62-.16l7.79-4.19c1.4-.76 1.4-2.78 0-3.53Zm-.71 2.2L5.5 13.49V4.51l7.52 4.05c.23.12.26.33.26.44 0 .11-.03.32-.26.44Z" /></symbol>'}),ya=(a().add(ma),ma),ba=new(o())({id:"play_solid",use:"play_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="play_solid"><path d="M21.728 10.702 5.619 1.5a1.738 1.738 0 0 0-.868-.234c-.917 0-1.759.734-1.759 1.759v17.95a1.76 1.76 0 0 0 1.759 1.759c.29 0 .587-.073.868-.234l16.109-9.201a1.496 1.496 0 0 0 0-2.597Z" /></symbol>'}),wa=(a().add(ba),ba),_a=new(o())({id:"plus",use:"plus-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus"><path fill-rule="evenodd" d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2Z" clip-rule="evenodd" /></symbol>'}),xa=(a().add(_a),_a),Sa=new(o())({id:"plus_mini_s",use:"plus_mini_s-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plus_mini_s"><path fill-rule="evenodd" d="M15.889 7H8.11C7.5 7 7 7.5 7 8.111v7.778C7 16.5 7.5 17 8.111 17h7.778C16.5 17 17 16.5 17 15.889V8.11C17 7.5 16.5 7 15.889 7ZM15 12.6h-2.4V15h-1.2v-2.4H9v-1.2h2.4V9h1.2v2.4H15v1.2Z" clip-rule="evenodd" /></symbol>'}),Oa=(a().add(Sa),Sa),Ca=new(o())({id:"pod",use:"pod-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="pod"><path d="M7 15h3v-3H7v3Zm4-11-7 6v8h7l7-6V4h-7Zm5.5 7.31-6.055 5.19H5.5v-5.81l6.055-5.19H16.5v5.81ZM15 7h-3v3h3V7Z" /></symbol>'}),Ea=(a().add(Ca),Ca),Aa=new(o())({id:"pricing",use:"pricing-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="pricing"><path d="M9.75 5.751 7.556 7.947l-.862-.862a.67.67 0 0 0-.942 0 .67.67 0 0 0 0 .942L7.555 9.83l3.138-3.138a.67.67 0 0 0 0-.942.67.67 0 0 0-.942 0ZM8 1.778c-2.596.026-4.64.649-6.222 1.778V7.11C1.75 9.618 4.426 12.97 8 14.222c3.573-1.253 6.249-4.604 6.222-7.11V3.555C12.64 2.426 10.595 1.804 8 1.778ZM8 12.79c-2.845-1.182-4.907-3.893-4.89-5.68V4.285C4.419 3.529 6.054 3.138 8 3.11c1.946.018 3.582.418 4.889 1.165V7.12c.017 1.778-2.045 4.489-4.89 5.671Z" /></symbol>'}),ka=(a().add(Aa),Aa),Ma=new(o())({id:"print",use:"print-usage",viewBox:"0 0 21 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20" id="print"><path d="M18 8.2v6.4l-1 1v2.3c0 .1-.1.2-.2.2H3.2c-.1-.1-.2-.2-.2-.3V16h10c1.1 0 2-.9 2-2H2v-3c0-.6.5-1 1-1h13V0H4v8H3c-1.7 0-3 1.4-3 3v4.4l1 1v1.4C1 19 2 20 3.2 20h13.7c1.2 0 2.2-1 2.2-2.2v-1.4l1-1V11c-.1-1.3-.9-2.4-2.1-2.8ZM6 2h8v6H6V2Z" /></symbol>'}),Pa=(a().add(Ma),Ma),Ra=new(o())({id:"privacy",use:"privacy-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="privacy"><path d="M11.556 6.667V4.889A3.555 3.555 0 0 0 8 1.333 3.555 3.555 0 0 0 4.445 4.89v1.778H3.11v3.11a4.897 4.897 0 0 0 4.89 4.89 4.897 4.897 0 0 0 4.888-4.89v-3.11h-1.333ZM5.778 4.889a2.223 2.223 0 0 1 4.444 0v1.778H5.778V4.889Zm5.778 4.889A3.555 3.555 0 0 1 8 13.333a3.555 3.555 0 0 1-3.555-3.555V8h7.11v1.778Zm-4.222 1.555c0 .365.302.667.666.667a.671.671 0 0 0 .667-.667v-.844A.975.975 0 0 0 8 8.8a.975.975 0 0 0-.666 1.689v.844Z" /></symbol>'}),Ta=(a().add(Ra),Ra),Ia=new(o())({id:"push_notifications",use:"push_notifications-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="push_notifications"><path d="M20.09 6.67 20 6.58V5c0-2.76-2.24-5-5-5-.75 0-1.46.18-2.1.48C12.35.19 11.73 0 11.07 0H3.93A3.93 3.93 0 0 0 0 3.93v14.14A3.93 3.93 0 0 0 3.93 22h7.14A3.93 3.93 0 0 0 15 18.07V13h-2.69C10.06 13 8.08 11.28 8 9.03c-.04-1.05.32-2.05 1-2.84V5c0-.56.08-1.11.23-1.63.23-.8.96-1.36 1.8-1.37a4.98 4.98 0 0 0-1.02 3v1.59l-.09.09c-.59.59-.91 1.37-.91 2.21 0 1.72 1.4 3.12 3.12 3.12h5.76c1.72 0 3.12-1.4 3.12-3.12-.01-.84-.33-1.63-.92-2.22ZM9.5 18c.28 0 .5.22.5.5s-.22.5-.5.5h-4c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h4Zm8.38-8h-5.76a1.118 1.118 0 0 1-.79-1.91l.09-.09H14c1.1 0 2-.9 2-2h-4v-.88c0-1.45.98-2.78 2.4-3.06C16.32 1.69 18 3.15 18 5v2.41l.67.67c.21.21.33.5.33.79 0 .63-.5 1.13-1.12 1.13Z" /></symbol>'}),Ba=(a().add(Ia),Ia),ja=new(o())({id:"qr_code",use:"qr_code-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="qr_code"><path d="M11.323 16.226c0-.428.346-.774.774-.774a3.355 3.355 0 0 0 3.355-3.355v-1.032a.774.774 0 0 1 1.548 0v1.032A4.903 4.903 0 0 1 12.097 17a.774.774 0 0 1-.774-.774ZM6.677 16.226a.774.774 0 0 1-.774.774A4.903 4.903 0 0 1 1 12.097v-1.032a.774.774 0 0 1 1.548 0v1.032a3.355 3.355 0 0 0 3.355 3.355c.428 0 .774.346.774.774ZM6.677 1.774a.774.774 0 0 1-.774.774 3.355 3.355 0 0 0-3.355 3.355v1.032a.774.774 0 0 1-1.548 0V5.903A4.903 4.903 0 0 1 5.903 1c.428 0 .774.347.774.774ZM11.323 1.774c0-.427.346-.774.774-.774A4.903 4.903 0 0 1 17 5.903v1.032a.774.774 0 1 1-1.548 0V5.903a3.355 3.355 0 0 0-3.355-3.355.774.774 0 0 1-.774-.774ZM3.684 8.071a.774.774 0 0 0 0 1.548h10.322a.774.774 0 0 0 0-1.548H3.685Z" /></symbol>'}),Da=(a().add(ja),ja),La=new(o())({id:"question",use:"question-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="question"><path d="M10 12.6c-.77 0-1.4.63-1.4 1.4 0 .77.63 1.4 1.4 1.4.77 0 1.4-.63 1.4-1.4 0-.77-.63-1.4-1.4-1.4ZM10 0C4.49 0 0 4.49 0 10s4.49 10 10 10 10-4.49 10-10S15.51 0 10 0Zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8Zm.06-13h-.11C8.32 5 7 6.32 7 7.94V8l2-.06c0-.52.42-.94.94-.94h.11c.52 0 .94.42.94.94 0 .25-.15.49-.38.6l-.12.05a2.87 2.87 0 0 0-1.65 2.59v.61h2v-.61c0-.33.19-.64.49-.78l.12-.05c.93-.44 1.53-1.38 1.53-2.41C13 6.32 11.68 5 10.06 5Z" /></symbol>'}),Za=(a().add(La),La),Na=new(o())({id:"questionFilled",use:"questionFilled-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="questionFilled"><path d="M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2Zm0 15.4c-.77 0-1.4-.63-1.4-1.4 0-.77.63-1.4 1.4-1.4.77 0 1.4.63 1.4 1.4 0 .77-.63 1.4-1.4 1.4Zm1.55-5.06c-.48.22-.55.47-.55.76v.65h-2v-.96c0-.87.48-1.65 1.26-2.04l.4-.2c.21-.11.34-.32.34-.55 0-.55-.45-1-1-1s-1 .45-1 1H9c0-1.65 1.35-3 3-3s3 1.35 3 3c0 1-.55 1.9-1.45 2.34Z" /></symbol>'}),Fa=(a().add(Na),Na),Ha=new(o())({id:"ram",use:"ram-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ram"><path d="m7.5 8.5 2 2 1-1-2-2-1 1ZM5 11l2 2 1-1-2-2-1 1Zm5-5 2 2 1-1-2-2-1 1Zm7 1-6-6L1 11l6 6 1-1 1 1 8-8-1-1 1-1Zm-2.12 2L9 14.88l-1-1-1 1L3.12 11 11 3.12 14.88 7l-1 1 1 1Z" /></symbol>'}),Va=(a().add(Ha),Ha),za=n(16071),Ua=new(o())({id:"reduce_size",use:"reduce_size-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="reduce_size"><path d="M2 6.75A.75.75 0 0 1 2.75 6h2.189L1.97 3.03l1.06-1.061L6 4.939v-2.19a.75.75 0 0 1 1.5 0v3.69l.03.03-.03.03v1h-1l-.031.03-.03-.03H2.75A.75.75 0 0 1 2 6.75ZM11.31 2a.75.75 0 0 1 .75.75v2.189l2.97-2.97 1.061 1.06L13.121 6h2.189a.75.75 0 0 1 0 1.5h-3.69l-.03.03-.03-.03h-1v-1l-.03-.03.03-.03v-3.69a.75.75 0 0 1 .75-.75ZM2 11.31c0 .414.336.75.75.75h2.189L1.97 15.03l1.06 1.06L6 13.12v2.19a.75.75 0 0 0 1.5 0v-3.69l.03-.03-.03-.03v-1h-1l-.031-.03-.03.03H2.75a.75.75 0 0 0-.75.75ZM11.31 16.06a.75.75 0 0 0 .75-.75v-2.19l2.97 2.97 1.061-1.06-2.97-2.97h2.189a.75.75 0 0 0 0-1.5h-3.69l-.03-.03-.03.03h-1v1l-.03.03.03.03v3.69c0 .414.336.75.75.75Z" /></symbol>'}),Ga=(a().add(Ua),Ua),Wa=new(o())({id:"refresh",use:"refresh-usage",viewBox:"0 0 18 19",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 19" id="refresh"><path d="M9 14.524c-1.867 0-3.487-1.023-4.365-2.531h2.947a.85.85 0 0 0 .844-.844.85.85 0 0 0-.844-.843H2.25v5.343a.85.85 0 0 0 .844.844.85.85 0 0 0 .844-.844v-1.755C5.175 15.312 6.974 16.212 9 16.212a6.741 6.741 0 0 0 6.716-6.188h-1.721c-.27 2.52-2.396 4.5-4.995 4.5Zm5.906-12.093a.85.85 0 0 0-.844.843V5.03C12.825 3.612 11.026 2.712 9 2.712a6.741 6.741 0 0 0-6.716 6.187h1.721C4.275 6.38 6.401 4.4 9 4.4c1.867 0 3.488 1.024 4.365 2.532h-2.959a.85.85 0 0 0-.844.843.85.85 0 0 0 .844.844h5.344V3.274a.85.85 0 0 0-.844-.843Z" /></symbol>'}),qa=(a().add(Wa),Wa),$a=new(o())({id:"reload",use:"reload-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="reload"><path fill-rule="evenodd" d="M12.77 20.047c3.228-.362 5.814-2.942 6.183-6.17.483-4.221-2.798-7.814-6.91-7.86V4.124c0-.106-.131-.161-.22-.096L7.924 6.891a.12.12 0 0 0 0 .194l3.899 2.863c.088.066.22.007.22-.095v-1.89c2.89.046 5.204 2.505 5.006 5.444-.167 2.527-2.228 4.579-4.756 4.74a5.105 5.105 0 0 1-5.365-4.274.971.971 0 0 0-.96-.812.963.963 0 0 0-.956 1.105 7.048 7.048 0 0 0 7.758 5.88Z" clip-rule="evenodd" /></symbol>'}),Ya=(a().add($a),$a),Xa=new(o())({id:"remove_node",use:"remove_node-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="remove_node"><path d="M3.5 6.55c0-1.68 1.37-3.05 3.05-3.05H8V2H6.55C4.04 2 2 4.04 2 6.55V8h1.5V6.55Zm7.71-5.27c-.4-.12-.81.12-.93.52l-.06.21-.22.77-1.21 4.24C7.78 7.13 7 7.97 7 9c0 .64.31 1.2.77 1.56L6.65 14.5h-.1c-1.68 0-3.05-1.37-3.05-3.05V10H2v1.45c0 2.41 1.89 4.37 4.27 4.52a.742.742 0 0 0 .74.78c.33 0 .63-.21.72-.54l4-14c.1-.4-.13-.82-.52-.93Zm2.6 1.39-.44 1.53c.68.56 1.13 1.4 1.13 2.35V8H16V6.55c0-1.65-.88-3.08-2.19-3.88Zm.69 8.78c0 1.68-1.37 3.05-3.05 3.05h-1.03L9.99 16h1.45c2.51 0 4.55-2.04 4.55-4.55V10h-1.5v1.45h.01Z" /></symbol>'}),Ka=(a().add(Xa),Xa),Ja=n(259),Qa=new(o())({id:"rocket",use:"rocket-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rocket"><path d="m15.788 11.25-2.862-1.717c-.038.94-.172 1.807-.326 2.53H16v-.438a.437.437 0 0 0-.212-.375ZM12.26 13.375h3.303a.438.438 0 0 0 .437-.438V12.5h-3.5a15.72 15.72 0 0 1-.24.875ZM5.074 9.533 2.212 11.25a.436.436 0 0 0-.212.375v.438h3.4a15.12 15.12 0 0 1-.326-2.53ZM2 12.5v.438c0 .241.196.437.438.437H5.74a15.496 15.496 0 0 1-.24-.875H2ZM9 16c.45 0 .927-.512 1.058-1.313H7.942C8.073 15.488 8.55 16 9 16ZM9.243 2.074a.437.437 0 0 0-.486 0C7.183 3.123 5.5 5.494 5.5 9c0 .962.113 1.861.258 2.625h6.484A14.14 14.14 0 0 0 12.5 9c0-3.506-1.683-5.877-3.257-6.926ZM9 8.563a1.313 1.313 0 1 1 0-2.626 1.313 1.313 0 0 1 0 2.625Z" /><path d="M9 8.125a.875.875 0 1 0 0-1.75.875.875 0 0 0 0 1.75ZM6.406 13.975a.438.438 0 0 0 .407.275h4.375c.178 0 .34-.109.406-.275.02-.053.312-.792.558-1.912H5.848c.246 1.12.537 1.86.558 1.912Z" /></symbol>'}),es=(a().add(Qa),Qa),ts=new(o())({id:"room",use:"room-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="room"><path fill-rule="evenodd" d="M9 6a1 1 0 0 0-1 1v1H7a1 1 0 1 0 0 2h1v4H7a1 1 0 1 0 0 2h1v1a1 1 0 1 0 2 0v-1h4v1a1 1 0 1 0 2 0v-1h1a1 1 0 1 0 0-2h-1v-4h1a1 1 0 1 0 0-2h-1V7a1 1 0 1 0-2 0v1h-4V7a1 1 0 0 0-1-1Zm5 8v-4h-4v4h4Z" clip-rule="evenodd" /></symbol>'}),ns=(a().add(ts),ts),rs=new(o())({id:"room_home",use:"room_home-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="room_home"><path d="M11.93 0H2.07C.93 0 0 .93 0 2.07v5.85c0 1.14.93 2.07 2.07 2.07H6.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.14 0 2.07-.93 2.07-2.07V2.07C14 .93 13.07 0 11.93 0Zm0 9H2.07c-.57 0-1.02-.44-1.06-1h11.97c-.03.56-.49 1-1.05 1ZM13 7H1V2.07C1 1.48 1.48 1 2.07 1h9.85c.59 0 1.07.48 1.07 1.07V7H13Z" /></symbol>'}),os=(a().add(rs),rs),is=new(o())({id:"room_new",use:"room_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="room_new"><path d="M2.567 10h6.866A2.57 2.57 0 0 0 12 7.433V2.567A2.57 2.57 0 0 0 9.433 0H2.567A2.57 2.57 0 0 0 0 2.567v4.866A2.57 2.57 0 0 0 2.567 10ZM2 2.567C2 2.255 2.254 2 2.567 2h6.866c.312 0 .567.254.567.567v4.866A.568.568 0 0 1 9.433 8H2.567A.568.568 0 0 1 2 7.433V2.567ZM15.14 0h-1.933c.398.583.644 1.267.736 2h1.197A2.863 2.863 0 0 1 18 4.86v10.28A2.863 2.863 0 0 1 15.14 18H4.86A2.863 2.863 0 0 1 2 15.14v-3.197a4.541 4.541 0 0 1-2-.736v3.933C0 17.82 2.18 20 4.86 20h10.28c2.68 0 4.86-2.18 4.86-4.86V4.86C20 2.18 17.82 0 15.14 0Z" /></symbol>'}),as=(a().add(is),is),ss=new(o())({id:"room_overview",use:"room_overview-usage",viewBox:"0 0 24 25",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 25" id="room_overview"><path d="m16 8.5 2.667-2.666L21.334 8.5v.16l-2 1.507v-.84l-.667-.667L16 11.327l-5.333-5.333L8 8.66 6.667 7.327l-2 2v1.013l-2 2V8.5l4-4L8 5.834l2.667-2.667L16 8.5Z" /><path fill-rule="evenodd" d="m8 12.5 2.667-2.666L16 15.167l5.334-4v6.107c0 2.52-2.04 4.56-4.56 4.56H7.227c-2.52 0-4.56-2.04-4.56-4.56v-2.107l4-4L8 12.5Zm11.334 4.774v-2.107l-3.52 2.64-5.147-5.147L8 15.327l-1.333-1.333-2 2v1.28a2.56 2.56 0 0 0 2.56 2.56h9.547a2.56 2.56 0 0 0 2.56-2.56Z" clip-rule="evenodd" /></symbol>'}),ls=(a().add(ss),ss),us=new(o())({id:"sad",use:"sad-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="sad"><path fill-rule="evenodd" d="M17.93 20.666A10.453 10.453 0 0 1 12 22.5C6.201 22.5 1.5 17.799 1.5 12S6.201 1.5 12 1.5 22.5 6.201 22.5 12c0 1.482-.308 2.922-.895 4.248l1.34 2.476a1.5 1.5 0 0 1 .165.934 1.506 1.506 0 0 1-1.56 1.278l-.144-.014-3.174-.47-.302.214ZM8.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm7.514 5.832c-2.81-1.774-5.406-1.774-7.889-.014a.5.5 0 1 1-.578-.816c2.822-2 5.856-2 9-.015a.5.5 0 1 1-.533.845ZM15.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm-13 1a9.5 9.5 0 1 1 19 0 9.461 9.461 0 0 1-.905 4.053l-.108.229 1.578 2.918a.5.5 0 0 1-.454.738l-.087-.009-3.563-.529-.168.13A9.455 9.455 0 0 1 12 21.5 9.5 9.5 0 0 1 2.5 12Z" clip-rule="evenodd" /></symbol>'}),cs=(a().add(us),us),fs=new(o())({id:"save",use:"save-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="save"><path d="m7 11.061 4.03-4.03A.75.75 0 1 0 9.969 5.97l-2.22 2.22V0h-1.5v8.189L4.03 5.97a.75.75 0 1 0-1.061 1.061L7 11.061ZM0 12.5V14h14v-1.5H0Z" /></symbol>'}),ds=(a().add(fs),fs),ps=new(o())({id:"search",use:"search-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search"><path d="M5 8h1c0-1.1.9-2 2-2V5C6.34 5 5 6.34 5 8Zm10.53 6.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06ZM8 12.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 3.5 8 3.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5Z" /></symbol>'}),hs=(a().add(ps),ps),gs=new(o())({id:"search_s",use:"search_s-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="search_s"><path fill-rule="evenodd" d="m10.122 9.143 3.673 3.66A.701.701 0 0 1 13.296 14a.703.703 0 0 1-.497-.204L9.12 10.128a5.648 5.648 0 0 1-3.45 1.178C2.543 11.306 0 8.77 0 5.653 0 2.536 2.544 0 5.67 0c3.127 0 5.67 2.536 5.67 5.653a5.61 5.61 0 0 1-1.218 3.49Zm-4.45-7.74c-2.351 0-4.265 1.906-4.265 4.25 0 2.343 1.914 4.25 4.264 4.25 2.351 0 4.264-1.907 4.264-4.25 0-2.344-1.913-4.25-4.264-4.25Z" clip-rule="evenodd" /></symbol>'}),vs=(a().add(gs),gs),ms=new(o())({id:"search_press",use:"search_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="search_press"><path d="m15.53 14.47-2.79-2.79A5.976 5.976 0 0 0 14 8c0-3.31-2.69-6-6-6S2 4.69 2 8s2.69 6 6 6c1.39 0 2.66-.47 3.68-1.26l2.79 2.79c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06ZM8 6c-1.1 0-2 .9-2 2H5c0-1.66 1.34-3 3-3v1Z" /></symbol>'}),ys=(a().add(ms),ms),bs=new(o())({id:"apache",use:"apache-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache"><path d="M4.91 16.7c.18-.5.35-1 .54-1.5.21.07.42.14.64.22-.16.53-.31 1.06-.48 1.59l-.7-.31Zm8.95-10.95c-.3.3-.8.48-1.37.42 0 0 .53.22 1.16.38-.14.47-.29.96-.46 1.47-.39.17-.79.29-1.13.26.35.15.65.25.93.33-.03.1-.07.19-.11.29-.42.06-.96.09-1.64.02.39.27.86.47 1.32.62-1.43 2.55-4.21 3.39-4.21 3.39 1.21.84 2.02.21 2.02.21-.62 1.37-1.83.53-1.83.53.19.74 1.21.84 1.21.84-.82.63-3.04-.31-3.04-.31 1.21.84.39 1.48.39 1.48-.13-.49-.6-.69-.92-.77.1-.34.2-.68.3-1.03.16-.55.33-1.1.5-1.64.17-.55.34-1.09.52-1.64.43-1.29.87-2.58 1.36-3.84.52-1.26 1.02-2.53 1.84-3.65-.87 1.09-1.43 2.34-2 3.57-.55 1.24-1.05 2.51-1.54 3.78-.09.24-.18.48-.27.71-.2.54-.39 1.07-.59 1.61l-.57 1.62c-.03.09-.06.19-.09.28-.4-.21-1.18-.52-1.77-.06-.19-.74.82-.63.82-.63-1.21-.84-.19-.74-.19-.74.19.74 1.21.84 1.21.84-.19-.74-1.59-2.32-1.59-2.32 1.01.1 1.21.84 1.21.84-.97-3.69 1.91-7.71 2.54-9.08.62-1.37 2.85-2.95 4.28-2.43 2.16.78 2.27 2.4 1.71 4.65Z" /></symbol>'}),ws=(a().add(bs),bs),_s=new(o())({id:"apache_tomcat",use:"apache_tomcat-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="apache_tomcat"><path d="M16.58 9.12v-.23h-.92c-.04.08-.09.15-.13.23h1.05Zm0-.54v-.23h-.64c-.04.08-.07.15-.11.23h.75Zm1.15 6.04c-.34-.38-1.01-.57-1.57-.55-.36-.43-2.26-2.43-2.63-2.83.79-.55 1.47-1.27 2-2.13h-.77v-.23h.9c.06-.1.11-.21.17-.31h-1.07v-.23h1.18c.47-1.02.74-2.19.71-3.47 0-.35-.11-1.84-.31-2.24-.54.21-1.54.88-1.76 1.57-1.07-.16-2.29-.14-3.35.04-.18-.74-1.07-1.31-1.74-1.62-.29.48-.41 1.59-.38 2.37H9.1c.03.71.12 1.37.28 1.97-2.32.58-4.84 2.1-6.26 3.56-.66-.89-.93-1.63-1-2.18-.1-.7.07-1.34.49-1.86.65-.81 1.58-.86 2.53-.71-.02.15 0 .29.06.38.25.37 1.6.5 2.41.14-.59-.84-1.8-1.24-2.14-1.08-.11.06-.19.15-.25.27-.33-.06-.66-.1-.89-.1-.84.01-1.48.3-1.96.89-.47.59-.66 1.31-.55 2.1.11.75.47 1.54 1.1 2.37l-.3.33C1.1 12.77 0 14.58 0 14.88v.16h1.99l-.03-.19c-.11-.59.11-1.34.57-1.89.29-.35.77-.75 1.52-.93.67.66 1.52 1.34 2.47 2.02H8v-.16c0-.18-.08-.33-.24-.44-.23-.15-.59-.18-.93-.06-.32-.35-.49-.82-.53-1.41 3.21.28 6.29 1.58 9.76 3.4h1.91l.02-.12c.03-.18-.06-.42-.26-.64Zm-1.4-8.06-.14.41-.62-.1.76-.31Zm-.31.92-.11.34-.47-.17.58-.17Zm-1.16-3.23c-.01 0-.02-.01-.02-.01s.01.01.02.01Zm-1.43.06-.38 1.3-.58-1.28.96-.02Zm-2.99 2.38-.84.05-.09-.55.93.5Zm-.13.73-.47.13-.09-.36.56.23ZM4.67 9.51l.53-.4.26.94-.79-.54Zm1.17-.77.6-.36.54.94-1.14-.58Zm1.06-.55 1.03-.47.51 1.51L6.9 8.19Zm4.13.93H9.21v-.23h1.82v.23Zm0-.54H9.21v-.23h1.82v.23Zm1.2.77-.11-.17.65-.43-1.15-.72.05-.08c.15-.26.28-.59.37-.92h-.88v-.2h.92c.11-.49.14-.95 0-1.19-.06-.1-.14-.15-.25-.15-.53 0-.75.56-.75.58L10.89 6c.01-.03.28-.71.94-.71.19 0 .33.08.43.25.17.29.15.78.03 1.29h1.61c.21-.63.66-.93 1.41-.93v.2c-.81 0-1.04.34-1.2.73h.88v.2l-.88-.01h-.08c-.1.34-.02.64.21 1-.06.03-1.14.74-1.13.74l.72.45-.11.17-.79-.51-.7.48Zm1.39 2.29.37.36-.86.4.49-.76Zm-.02 1.46.79-.6.31.32-1.1.28Zm-1.51-5.01.85.54.81-.54h-1.66Zm1.74-1.07h-1.59c-.08.32-.2.62-.33.87h2.06c-.18-.3-.21-.64-.14-.87Z" /></symbol>'}),xs=(a().add(_s),_s),Ss=new(o())({id:"beanstalk",use:"beanstalk-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="beanstalk"><path d="M8.37 8.56c-.29 0-.54.11-.76.32-.22.21-.33.57-.33 1.06 0 .36.04.65.13.87.17.42.48.63.94.63.34 0 .6-.14.77-.41.17-.27.26-.64.26-1.08 0-.4-.09-.73-.26-.99-.16-.27-.41-.4-.75-.4ZM6.99 5.64c-1.61-.73-4.05-.68-4.56-.71-.52-.03-1.27-.15-1.41-.57.08 1.24.58 4 1.57 5.94.99 1.94 3.11 2.79 4.15 3.08 1.04.29 2.7.28 3.11.3.41.02.55.43.65.9.11.53.05 1.72-.27 2.42h.72c.13-2.14-.14-4.86-.58-7.23-.44-2.36-1.77-3.4-3.38-4.13Zm2.61 5.77c-.29.4-.69.59-1.21.59-.29 0-.53-.07-.73-.21-.12-.08-.24-.21-.38-.4v.49H6.7V6.66h.62v1.89c.14-.18.31-.32.5-.42.19-.1.4-.14.63-.14.47 0 .86.16 1.15.49.29.32.44.8.44 1.44 0 .6-.15 1.09-.44 1.49ZM16.98 1c-.3.29-1.48.42-1.92.44-.44.02-2.03.07-3.47 1.17-1.44 1.1-1.55 4.67-1.2 6.37-.13-.92.28-1.36.51-1.47.34-.16.68-.08 1.45-.13 1.25-.08 2.46-.92 3.3-2C16.49 4.29 17 1.71 16.98 1Z" /></symbol>'}),Os=(a().add(Ss),Ss),Cs=new(o())({id:"bind",use:"bind-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="bind"><path fill-rule="evenodd" d="M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm.02-1.128a5.892 5.892 0 1 0-5.206-3.131c.123.206.25.394.38.581.215.312.456.604.762.866.355.305.759.597 1.223.657.185.024.334.024.334.024h.314l.815-.084.188-.02c.15-.018.453-.091.585-.126.773-.23 1.525-.982 1.63-1.087.083-.083.3-.369.397-.501.054-.07.03-.17.006-.27l-.005-.021a3.113 3.113 0 1 1 1.65-3.131c.122.655.227 1.762-.084 2.586-.48 1.275-.773 1.65-1.484 2.382-.535.551-1.248.886-1.591 1.004a.087.087 0 0 0-.06.083.194.194 0 0 1-.12.182c.09.004.178.006.267.006Zm-1.368-.16a8.949 8.949 0 0 1-1.012-.341c.323.143.661.257 1.012.34ZM10.069 8A2.069 2.069 0 1 1 5.93 8a2.069 2.069 0 0 1 4.138 0Z" clip-rule="evenodd" /></symbol>'}),Es=(a().add(Cs),Cs),As=new(o())({id:"containerTech",use:"containerTech-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="containerTech"><path d="M10.42 1.81c-.46-.34-1.02-.53-1.59-.53-.41 0-.82.1-1.19.28L2.61 4.08l4.45 3.34 6.5-3.25-3.14-2.36Zm-1.79.5c.07-.01.13-.02.2-.02.02 0 .04.01.06.01a.758.758 0 0 0-.26.01ZM2 9.47c0 .65.31 1.26.83 1.65L6.4 13.8l.1.08V8.25L2 4.88v4.59Zm5.5-1.16v5.56l1.5-.75V9.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l1-.5V8.5c0-.28.22-.5.5-.5s.5.22.5.5v3.12l.86-.43c.7-.35 1.14-1.06 1.14-1.85V5.06L7.5 8.31Z" /></symbol>'}),ks=(a().add(As),As),Ms=new(o())({id:"coreDNS",use:"coreDNS-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="coreDNS"><path d="m7.508 7.097-.074-.074L5.48 8.977l-.013.014a.661.661 0 0 0-.11.15l-.003.004-.029.06a.697.697 0 0 0 .151.753l.394.394 1.635-1.636a1.142 1.142 0 0 0 .003-1.62Z" /><path d="m14.405 5.14-.84-.841a1.143 1.143 0 0 0-1.536-.074c-.03.022-.055.048-.084.074l-.64.64 2.005 2.007c.05.051.098.106.142.164l.003.005c.03.173.052.35.068.526l-.003.003a5.812 5.812 0 0 0-.071-.528 1.365 1.365 0 0 0-.142-.164l-2.003-2.01L9.112 2.75a1.632 1.632 0 0 0-2.3 0l-4.53 4.527a1.63 1.63 0 0 0-.24 1.987l.002.004-.434.427a1.145 1.145 0 0 0 0 1.62l.84.84a1.148 1.148 0 0 0 1.62 0l.394-.394 2.014 2.014a1.632 1.632 0 0 0 2.299 0l4.533-4.527a1.623 1.623 0 0 0 .358-1.752l-.073.073.076-.076-.002-.005.733-.732a1.144 1.144 0 0 0 .003-1.617Zm-3.493 2.55a1.25 1.25 0 0 1 0 0ZM7.623 11.12a1.304 1.304 0 0 1-1.841 0l-.342-.34-.977.976-1.091-1.091 1.09 1.09.978-.979-.39-.39a1.316 1.316 0 0 1-.232-1.526c.061-.116.14-.223.233-.315l1.952-1.953.002.002 1.046-1.047a1.302 1.302 0 0 1 1.842 0l.4.4-.429.428.002.001-.002.002-.402-.403a.68.68 0 0 0-.622-.193.693.693 0 0 0-.357.19L7.437 7.02l.075.074a1.145 1.145 0 0 1 0 1.62l-1.64 1.638.342.341a.691.691 0 0 0 .753.152l.062-.03c.003 0 .003-.003.006-.003a.72.72 0 0 0 .161-.119l1.32-1.32-.013-.013a1.145 1.145 0 0 1 0-1.62l.003-.002a1.144 1.144 0 0 0 0 1.62l.012.01-.002.002.428.428 1.681-1.68a.867.867 0 0 0 0 .003l-3 3Z" /></symbol>'}),Ps=(a().add(Ms),Ms),Rs=new(o())({id:"couchDB",use:"couchDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="couchDB"><path d="M14 10.75c0 .66-.35.99-1 1H5c-.65-.01-1-.34-1-1 0-.66.35-.99 1-1h8c.65.01 1 .34 1 1Zm-1 1.5H5c-.65.01-1 .34-1 1 0 .66.35.99 1 1h8c.65-.01 1-.34 1-1 0-.66-.35-.99-1-1Zm2.5-5.5c-.65.01-1 .34-1 1v5.5c0 .66.35.99 1 1 .98-.03 1.5-1.01 1.5-3v-2.5c0-1.33-.52-1.98-1.5-2Zm-13 0c-.98.02-1.5.67-1.5 2v2.5c0 1.99.52 2.96 1.5 3 .65-.01 1-.34 1-1v-5.5c0-.66-.35-.99-1-1Zm13-.5c0-1.66-.87-2.47-2.5-2.5H5c-1.63.03-2.5.84-2.5 2.5.98.02 1.5.5 1.5 1.5 0 .99.52 1.48 1.5 1.5h7c.98-.02 1.5-.5 1.5-1.5 0-.99.52-1.48 1.5-1.5Z" /></symbol>'}),Ts=(a().add(Rs),Rs),Is=new(o())({id:"database",use:"database-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="database"><path d="M9 10c5.153 0 7.5-2.073 7.5-4S14.153 2 9 2C3.847 2 1.5 4.073 1.5 6s2.347 4 7.5 4Zm0-6.5c3.313 0 6 1.119 6 2.5s-2.687 2.5-6 2.5S3 7.381 3 6s2.687-2.5 6-2.5Zm5.566 9.431C13.68 13.85 11.523 14.5 9 14.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 12c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369Zm0-3C13.68 10.85 11.523 11.5 9 11.5c-2.523 0-4.68-.65-5.566-1.569-.795-.384-1.424-.85-1.889-1.368A2.391 2.391 0 0 0 1.5 9c0 1.927 2.347 4 7.5 4 5.153 0 7.5-2.073 7.5-4 0-.146-.018-.292-.045-.438-.465.519-1.094.984-1.889 1.369Z" /></symbol>'}),Bs=(a().add(Is),Is),js=new(o())({id:"dns",use:"dns-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dns"><path d="M12.233 9.344c-.564 0-1.174-.151-1.19-.745l-.552.002c0 .907.865 1.172 1.7 1.172.743 0 1.588-.246 1.588-1.084 0-.68-.822-.796-1.112-.848l-.906-.14c-.456-.07-.604-.232-.604-.435 0-.389.46-.54.858-.54.885 0 1.058.354 1.099.61h.549c-.056-.796-.828-1.037-1.575-1.037-.947 0-1.48.398-1.48 1.005 0 .643.658.805 1.098.865l.84.124c.428.07.687.19.687.49-.002.357-.42.561-1 .561ZM3.154 3.801a6.836 6.836 0 0 1 1.888-1.216c-.512.616-.933 1.385-1.24 2.264h1.112c.176-.449.388-.86.631-1.234.355-.535.775-.967 1.212-1.247.234-.148.47-.256.713-.319v2.8h1.053v-2.8c.242.063.479.17.713.32.438.277.856.71 1.21 1.246.245.372.457.785.634 1.232h1.109c-.306-.878-.729-1.648-1.24-2.264a6.82 6.82 0 0 1 1.89 1.217c.355.319.664.672.931 1.047h1.213c-1.325-2.274-3.954-3.825-6.986-3.825-3.032 0-5.662 1.551-6.988 3.825H2.22c.268-.375.579-.727.934-1.046ZM9.446 9.012h-.012L7.059 6.38H6.42v3.306h.549V7.055h.01l2.377 2.632h.638V6.381h-.55v2.63ZM4.155 6.38H2.28v3.306h1.907c1.133 0 1.584-.778 1.584-1.699.001-.959-.507-1.607-1.616-1.607Zm.007 2.88-1.33-.002V6.806h1.227c.952 0 1.166.61 1.166 1.189-.002.589-.162 1.266-1.063 1.266ZM12.84 12.22a6.859 6.859 0 0 1-1.89 1.216c.514-.615.935-1.386 1.24-2.264h-1.11c-.176.448-.389.86-.635 1.233-.353.536-.774.968-1.211 1.249a2.542 2.542 0 0 1-.711.317V11.17H7.472v2.8c-.24-.064-.48-.171-.714-.318-.438-.28-.854-.711-1.21-1.249a6.986 6.986 0 0 1-.635-1.233H3.802c.305.879.728 1.648 1.24 2.264a6.836 6.836 0 0 1-1.888-1.217 6.42 6.42 0 0 1-.934-1.047H1.01c1.327 2.276 3.956 3.827 6.988 3.827 3.032 0 5.662-1.551 6.988-3.827h-1.213c-.268.377-.577.73-.931 1.05Z" /></symbol>'}),Ds=(a().add(js),js),Ls=new(o())({id:"docker_hub_press",use:"docker_hub_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub_press"><path d="M7.9 3.77H6.42v1.47H7.9V3.77Zm2.21 2.21H8.63v1.47h1.47V5.98h.01Zm0-2.21H8.63v1.47h1.47V3.77h.01Zm4.87 3.49c-.13-.02.16-2.05-1.5-1.99 0 0-.84 1.12-.5 1.99.41 1.04-1.5 1-1.5 1h-9.6C.81 8.26.16 9.45.75 10.34c1.15 1.73 2.76 3.9 5.75 3.9h1c1.34 0 2.46-.34 3.35-.79 1.35-.68 2.33-1.89 2.96-3.26.25-.53.67-1.08 1.34-1.14 1.33-.11 2.33-.66 2.32-1.8 0 .01-1.35-.52-2.49.01ZM5.69 5.98H4.21v1.47h1.47V5.98h.01Zm2.21 0H6.42v1.47H7.9V5.98Z" /></symbol>'}),Zs=(a().add(Ls),Ls),Ns=new(o())({id:"docker_hub",use:"docker_hub-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="docker_hub"><g clip-path="url(#docker_hub_a)"><path d="M9.98 4.37v1.3h-1.3v-1.3h1.3Zm-1.96 0v1.3h-1.3v-1.3h1.3Zm5.01 1.32c1.4 0 1.15 1.75 1.26 1.77.34-.15.7-.21 1.02-.21.65 0 1.18.21 1.18.21.01 1-.87 1.49-2.05 1.59-.6.05-.97.53-1.19 1.01-.56 1.21-1.43 2.28-2.62 2.89-.79.4-1.77.7-2.96.7h-.88c-2.65 0-4.07-1.92-5.09-3.45-.52-.79.05-1.84 1-1.84h8.53c.21 0 1.63-.03 1.3-.88-.3-.77.44-1.77.44-1.77.02-.02.04-.02.06-.02Zm-3.05.63v1.3h-1.3v-1.3h1.3Zm-1.96 0v1.3h-1.3v-1.3h1.3Zm-1.95 0v1.3h-1.3v-1.3h1.3Zm5.41-3.45H5.22v1.96H3.26v2.02H2.7c-1 0-1.91.55-2.38 1.42-.47.87-.42 1.93.13 2.75.89 1.34 2.74 4.12 6.34 4.12h.88c1.29 0 2.51-.29 3.64-.86 1.4-.71 2.55-1.95 3.31-3.59.03-.07.06-.12.09-.16 2.44-.25 3.3-1.75 3.29-3.08l-.01-1.02-.95-.37c-.13-.05-.78-.29-1.61-.31-.59-1.38-1.81-1.56-2.4-1.56h-.11l-.72.03-.43.58c-.06.07-.17.23-.29.45V2.87Z" /></g><defs><clipPath id="docker_hub_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'}),Fs=(a().add(Ns),Ns),Hs=new(o())({id:"dotnet",use:"dotnet-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="dotnet"><path d="M2.389 9.991c0 .127-.054.24-.14.32a.488.488 0 0 1-.672 0 .44.44 0 0 1 .001-.64.49.49 0 0 1 .672 0c.085.08.139.194.139.32Zm4.758.379h-.852L4.053 6.83c-.052-.08-.1-.171-.138-.268l-.003-.01h-.02a4.874 4.874 0 0 1 .026.668v-.007 3.156h-.753V5.556h.907L6.24 9.011c.091.143.15.242.177.296h.013a4.205 4.205 0 0 1-.033-.653v.005-3.103h.75v4.814Zm3.667 0H8.178V5.556h2.532v.678H8.958v1.364h1.614v.675H8.958v1.423h1.856v.674Zm3.747-4.136h-1.35v4.136h-.779V6.234h-1.346v-.678h3.474v.678Z" /></symbol>'}),Vs=(a().add(Hs),Hs),zs=new(o())({id:"eBPF",use:"eBPF-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="eBPF"><path d="M16.291 4.293a.445.445 0 0 0-.629.029c-.315.345-1.152.89-2.217 1.093a3.968 3.968 0 0 0-1.848-1.306c-.132-1.01.002-1.838.419-2.663a.444.444 0 1 0-.795-.4c-.455.901-.63 1.822-.538 2.885-.901-.052-1.749.269-2.279.953a2.373 2.373 0 0 0-.278.458C7.3 5.05 6.365 4.913 5.47 4.913c-1.586 0-3.049.426-3.574 1.161-1.119 1.564.86 3.292 2.061 3.802a3.694 3.694 0 0 0-.344 1.501c-.007.745.227 1.493.677 2.163.131.195.28.38.443.553l-.384 1.778 1.75-.79c.41.19.843.312 1.275.356.12.012.248.02.385.02.699 0 1.593-.197 2.489-.935.713 1.02 1.738 1.678 2.751 1.678h.074c1.467-.048 3.18-1.955.372-6.939a2.32 2.32 0 0 0 .249-.273c.597-.77.648-1.816.235-2.767 1.068-.267 1.948-.812 2.392-1.298a.449.449 0 0 0-.03-.63ZM9.735 9.41a5.275 5.275 0 0 0-.431 2.292c-.68 0-1.291-.232-1.719-.664-.316-.319-.497-.718-.495-1.072a4.242 4.242 0 0 0 1.946-1.087 4.05 4.05 0 0 0 .699.531Zm-4.049-.079a5.11 5.11 0 0 1-.246-.006c-.003-.71.155-1.312.951-1.952.95.03 1.868.167 2.588.307a3.323 3.323 0 0 1-.404.518c-.698.752-1.67 1.133-2.889 1.133Zm-.217-3.614c.963 0 1.904.172 2.653.485.829.413 1.002.739 1.031.897a.511.511 0 0 1-.009.204c-1.687-.337-3.169-.426-4.404-.263-.03.004-.059.01-.088.013-.376-.13-.803-.427-1.049-1.091.534-.158 1.193-.245 1.866-.245ZM2.453 7.453c-.138-.345-.108-.626.096-.911.139-.195.43-.347.675-.447.137.366.374.783.787 1.08a5.139 5.139 0 0 0-1.422.546 1.991 1.991 0 0 1-.136-.268Zm.98 1.173a4.029 4.029 0 0 1-.608-.58c.519-.297 1.126-.478 1.769-.578.008 0 .116-.017.116-.017.356-.05.721-.075 1.087-.082-.616.63-.755 1.26-.757 1.926a6.278 6.278 0 0 1-.52-.078c-.175-.033-.608-.218-1.087-.591Zm4.024 6.011c-.967-.1-1.925-.692-2.499-1.546-.644-.957-.71-2.037-.202-3.019.145.02.303.037.469.048.041.797.406 1.601 1.032 2.233.783.791 1.866 1.218 3.043 1.218.137 0 .275-.007.414-.018.038.09.078.178.12.265-.713.623-1.53.906-2.377.82Zm2.658-2.827a4.486 4.486 0 0 1 .482-2.348c.064-.118.176-.253.317-.373.464.883.81 1.666 1.05 2.384-.331.79-.891 1.311-1.608 1.51a4.542 4.542 0 0 1-.241-1.173Zm2.177 3.434a2.554 2.554 0 0 1-.445-.24 3.76 3.76 0 0 1-1.078-1.152 4.387 4.387 0 0 1-.262-.493c.686-.199 1.244-.652 1.627-1.323.079.294.14.577.182.852.141.903.072 1.623-.024 2.356Zm1.619-.404c-.273.484-.695.55-.864.554l-.048.001c-.104 0-.209-.01-.316-.032.065-.495.122-.988.116-1.535.368.241.887.41 1.304.454-.039.212-.103.4-.192.558Zm.183-1.71c.041.27.057.523.049.755a2.794 2.794 0 0 1-.619-.149c-.362-.13-.652-.31-.755-.469-.101-1.099-.486-2.446-1.515-4.398a.98.98 0 0 1 .414-.1c.158 0 .308.049.458.151.217.147.425.394.617.736.748 1.328 1.203 2.496 1.351 3.473Z" /></symbol>'}),Us=(a().add(zs),zs),Gs=new(o())({id:"elasticSearch",use:"elasticSearch-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="elasticSearch"><path d="m6.21 6.83-2.52-.59c-1.03.33-1.73 1.32-1.73 2.39 0 1.05.65 1.99 1.62 2.36L6.8 8.08l-.59-1.25Zm4.49 2.63 3.37-2.96c.05-.25.07-.5.07-.75 0-2.08-1.69-3.76-3.76-3.76-1.25 0-2.41.61-3.1 1.64l-.56 2.91.65 1.39 3.33 1.53ZM6.17 6.23l.51-2.6c-.32-.24-.7-.37-1.1-.37-.99 0-1.81.81-1.81 1.81 0 .21.04.43.11.62l2.29.54Zm8.25.75-3.3 2.88.67 1.28 2.52.59a2.535 2.535 0 0 0 1.73-2.39c0-1.05-.64-1.98-1.62-2.36Zm-2.59 4.77-.5 2.59c.32.24.7.38 1.09.38.99 0 1.81-.81 1.81-1.81 0-.22-.04-.43-.11-.62l-2.29-.54ZM7.2 8.5l-3.29 2.97c-.05.24-.07.5-.07.76 0 2.08 1.7 3.77 3.77 3.77 1.26 0 2.42-.62 3.13-1.65l.55-2.91-.75-1.42L7.2 8.5Z" /></symbol>'}),Ws=(a().add(Gs),Gs),qs=new(o())({id:"freeNAS",use:"freeNAS-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="freeNAS"><path d="M17.33 7.17c-.43.86-2.22 1.51-2.94 1.43l-.43.79-.43-.72c-1.08.22-2.44.07-2.58-.14-.14-.22-.14-.43-.14-.43l.93-1.15-2.37-.5 3.01-.57c.43-.86 1.08-2.51 1-3.37-.65 0-5.45.57-6.88 1.86-1.79-1.43-4.01-1.64-4.94-1.64.79.72.79 1.22.79 1.79v1.29s-.72 1.29-.93 2.44c-.21 1.15.14 2.72.72 3.66.18.29.44.76.84 1.25-.45.76-1.07 1.83-.98 1.83.09 0 .97-.7 1.58-1.18.94.88 2.4 1.69 4.73 1.69 4.23 0 6.31-3.44 6.38-4.66 2.28-.66 2.78-2.74 2.64-3.67Zm-5.23 5.59c-.57.29-1.72.5-2.51 0-.73-.46-.72-1.51-.57-2.01.15-.5.93-1.65.93-1.65.36 1 1.79 1.86 3.08 1.86 0 .8-.36 1.52-.93 1.8Z" /></symbol>'}),$s=(a().add(qs),qs),Ys=new(o())({id:"haProxy",use:"haProxy-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="haProxy"><path d="m15.93 8.98.53-.52v.01h.48V8h-.48v.2l-1.29-.26v-.31l1.06-.72V7h.48v-.47h-.48v.06l-.71-.4.26-.61h.31v-.47h-.48v.24l-.95.07v-.38h-.17l.4-.72h.37v-.47h-.48v.16l-.69-.11-.07-.65h.18v-.47h-.48v.29l-.75.38v-.2h-.38l.07-.83h.26v-.47h-.48v.27l-.67.18-.37-.62h.08v-.47H11v.47h.05l-.51.62h-.45l-.26-.93h.16V1h-.48v.43l-.55.44-.5-.39V1h-.47v.48h.15l-.26.92h-.45l-.49-.6h.03v-.47h-.48v.47h.07l-.36.6-.65-.18v-.29h-.47v.48h.25l.06.87H5v.19l-.73-.34v-.34h-.48v.47H4l-.08.7-.68.13v-.24h-.48v.47h.31l.42.73h-.18v.39l-.92-.07v-.24h-.48v.47h.32l.27.6-.69.4v-.07h-.48V7h.48v-.08l.99.68v.35l-1.27.24v-.17h-.48v.47h.46l.54.51-.54.51h-.46v.47h.48v-.17l1.28.22v.33l-1.01.69v-.02h-.48v.47h.48v-.07l.69.38-.26.62H1.9v.47h.48v-.24l.94-.09v.37h.19l-.44.79h-.32v.47h.48v-.21l.69.1.07.68h-.18v.47h.48v-.3l.73-.4v.18h.39l-.07.95h-.22v.47h.48v-.31l.66-.2.36.6h-.11v.47h.48v-.47h-.02l.51-.66h.42l.26.97h-.12v.47h.48v-.46l.5-.4.55.45v.41h.47v-.48h-.17l.27-.94h.45l.51.65h-.07v.47h.48v-.47h-.09l.38-.64.65.19v.32h.47v-.48h-.25l-.06-.91h.4v-.21l.74.37v.35h.48v-.47h-.21l.08-.69.7-.1v.23h.48v-.47h-.34l-.42-.78h.16v-.39l.95.1v.28h.48v-.47h-.32l-.29-.66.74-.42v.13h.48v-.47h-.48v.07l-1.07-.71v-.33l1.3-.24v.17h.48v-.47h-.46l-.56-.56Zm.54-.75v.2l-.55.53-.74-.72v-.27l1.29.26Zm-.24-1.61v.26l-1.06.72v-.15h-.19l.53-1.24.72.41Zm-.62-1.24v.2h.14l-.25.59-.83-.47v-.25l.94-.07Zm-.94.53v-.18l.82.47-.54 1.25h-.65v.3l-.67-.18.01-.83h-.25l.56-.82.72-.01Zm-1.25 4.11.6-.93.38.58h-.1v.6l-.69.23v-.49l-.19.01Zm-2.68 2.27.11-1.34 1.43-.12v.49h.57l-.15 1.34-1.4.16v-.54l-.56.01Zm-2.79 0 .23-.26 1.64.01.21.24h-.06l-.01 1.14-.98.75-1.01-.77.01-1.11h-.03ZM4.6 8.03l-.63.95-.43-.67h.13v-.52l.72-.2v.44h.21Zm2.63-2.34-.14 1.44-1.38.16v-.56h-.57l.14-1.4 1.39-.17v.53h.56Zm2.8 0-.25.29-1.6-.01-.25-.27H8l.01-1.14.97-.75 1.02.78-.01 1.1h.04Zm2.81 1.04-.52-.01-.01.56-1.47-.17-.12-1.43h.59v-.55l1.38.17.15 1.43Zm-.12-1.41 1.07.13v.46h.12l-.56.82-.48-.01-.15-1.4Zm-1.79 2.73-.07-.86 1.46.17-.01.52-.29.25v-.06l-1.09-.02Zm-2.89 2.09-.01.81-.89-.09-.09-.89.81.01.01-1.9-.82-.01.09-.88.88-.1-.01.78 1.9.01.01-.8.85.1.07.87-.75-.01-.01 1.9.77.01-.08.94-.85.07.01-.81-1.89-.01ZM5.98 8.25l-.01 1.58-.25.22v-.01l-1.07-.01-.67-1.02.65-.98 1.07.01v-.03l.28.24Zm-.27-.33v-.57l1.37-.16-.09.88-1.01-.01v.1l-.27-.24Zm.01 2.22.25-.22v.04l1.02.01.09.88-1.37-.14.01-.57Zm5.22-.19 1.04.01.32.28v.54l-1.43.12.07-.95Zm-.16-2.84-.85-.1.01-1.03h-.08l.25-.29h.54l.13 1.42ZM8.09 5.97h-.05l-.01 1.05-.88.1.15-1.43h.55l.24.28Zm-2.98.75H4.6l-.55-.8h.11v-.46l1.08-.13-.13 1.39Zm-.5 3.32h-.22v.43l-.71-.22v-.58h-.12l.41-.62.64.99Zm.5 1.32.14 1.31-1.06-.12v-.5h-.08l.5-.71.5.02Zm.03 0 .57.01.01-.59 1.38.14.14 1.37h-.56v.55l-1.39-.15-.15-1.33Zm2.02-.44.88.09-.01 1.03h.06l-.23.26H7.3l-.14-1.38Zm2.75 1.13h.02l.01-1.02.85-.07-.11 1.33h-.55l-.22-.24Zm2.97-.72h.46l.54.73h-.09v.47l-1.06.12.15-1.32Zm-.59-1.32v.14L12 9.9l.01-1.69.29-.25v.09l1.04.01.65 1-.62.96-1.08-.01Zm1.73-.99-.63-.96h.24V7.6l.67.18v.53h.17l-.45.71Zm.76-4.98v.29h.08l-.4.72h-.25l-.12-1.11.69.1Zm-1.06-.94v.15h.27l.07.65-1.09-.17v-.26l.75-.37Zm-.74 1.02v-.35l1.09.17.12 1.12h-.39v.37l-1.08-.14-.13-1.17h.39Zm-.29 1.16-1.37-.17v-.53l.79-.56v.1h.45l.13 1.16Zm-.24-3.04v.17h.19l-.07.84h-.27l-.5-.84.65-.17Zm-1.36-.46h.29l.37.62-1.12.3v-.31h-.05l.51-.61Zm-.45 1.49v-.53l1.13-.31.5.83h-.16v.73l-.79.55v-.16l-.81-.01-.21-1.1h.34Zm-.38 0 .21 1.1h-.48v.18L9 3.8l.77-.59v.07l.49-.01Zm-.75-1.81v.01h.3l.26.93h-.31v.08l-.78-.6.53-.42Zm-.55.44.8.61v.65l-.79.61-.78-.6V2.5l.77-.6Zm-.79-.41h.26l.52.4-.75.59v-.07h-.3l.27-.92Zm.03 1.78v-.06l.76.58-.94.72v-.14h-.54l.21-1.1h.51ZM6.59 1.8h.31l.49.6h-.06v.3l-1.11-.3.37-.6Zm-.37.62 1.12.31v.54h.32l-.21 1.1-.75-.01v.22L5.87 4v-.72H5.7l.52-.86Zm-.86-.01h.2v-.16l.63.17-.52.86h-.25l-.06-.87Zm.05 1.74h.46v-.11l.82.58v.5l-1.39.17.11-1.14Zm-1.38-.9h.24v-.1L5 3.5v.26l-1.05.19.08-.7Zm-.08.72L5 3.78v.36h.37l-.12 1.15-1.08.13v-.38h-.36l.14-1.07Zm-.85.34h.14V4.1l.68-.12-.12 1.06h-.28l-.42-.73Zm.92 1.61.55.8h-.18l-.01.85-.72.2v-.31h-.59l-.55-1.23.78-.46v.15h.72Zm-1.77-.34h.14v-.2l.92.07v.27l-.79.46-.27-.6ZM1.8 6.9v-.27l.7-.41.54 1.22H2.8v.13l-1-.67Zm-.27 1.58v-.26l1.27-.24v.32l-.73.69-.54-.51Zm0 1.31v-.25l.54-.51.73.69v.3l-1.27-.23Zm1.28-.12v.01l-.71-.67.73-.7h.67l.45.7-.43.65-.71.01ZM1.8 11.4v-.32l1.01-.68v.13h.23l-.54 1.26-.7-.39Zm.57 1.23v-.2h-.12l.26-.6.8.45v.27l-.94.08Zm.94-.56v.18l-.79-.44.55-1.27h.61v-.25l.71.22-.01.86h.17l-.5.71-.74-.01Zm-.09 1.89v-.24h-.13l.44-.79h.25l.12 1.12-.68-.09Zm1.06.94v-.14h-.27l-.07-.68 1.07.15v.27l-.73.4ZM5 13.84v.36l-1.07-.15-.12-1.13h.37v-.34l1.06.12.12 1.13-.36.01Zm.28-1.13 1.39.15v.52l-.79.57v-.12H5.4l-.12-1.12Zm.29 3.08v-.14h-.23l.07-.95h.26l.53.89-.63.2Zm1.33.43h-.29l-.36-.61 1.07-.33v.28h.09l-.51.66Zm.42-1.53v.56l-1.09.34-.53-.88h.17V14l.79-.57v.18l.79.01.21 1.08-.34-.01Zm.37 0-.21-1.08h.5v-.17l.98.75-.77.59v-.1l-.5.01Zm.77 1.84h-.31l-.26-.97h.3v-.07l.77.63-.5.41Zm-.27-1.07v-.62l.8-.61.8.61v.63l-.8.64-.8-.65Zm1.62 1.06h-.27v.04l-.53-.44.78-.63v.08h.3l-.28.95Zm-.02-1.81v.09l-.77-.59.95-.73v.14h.53l-.21 1.1-.5-.01Zm1.58 1.53h-.26l-.51-.66h.05v-.31l1.1.33-.38.64Zm.39-.67-1.11-.33v-.53h-.34l.21-1.1.76.01v-.21l.83.6v.71h.15l-.5.85Zm.86.06h-.2v.13l-.64-.19.51-.86h.26l.07.92Zm-.05-1.78h-.44v.12l-.83-.6v-.5l1.39-.16-.12 1.14Zm1.4.91h-.24v.1l-.74-.37v-.26l1.06-.16-.08.69Zm.08-.72-1.06.16v-.34h-.39l.13-1.16 1.07-.12v.36h.39l-.14 1.1Zm.83-.32h-.11v.22l-.7.1.13-1.1h.26l.42.78Zm-.95-1.65-.54-.73h.22l.01-.8.69-.23v.23h.61l.54 1.25-.79.45v-.16l-.74-.01Zm1.82.38h-.13v.17l-.95-.1v-.26l.8-.46.28.65Zm.48-1.32v.21l-.75.43-.54-1.23h.23v-.12l1.06.71Zm-1.78-1.47-.4-.61.47-.74h.66v-.03l.72.7-.73.71v-.02l-.72-.01Zm2.02.13-1.3.24v-.31l.74-.72.55.54.01.25Z" /></symbol>'}),Xs=(a().add(Ys),Ys),Ks=new(o())({id:"httpCheck",use:"httpCheck-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="httpCheck"><path d="M7.16 7.35c0 .47.16.76.79.76.16 0 .42-.02.56-.06v-.59H8.4c-.18 0-.22-.05-.22-.18v-.93h.39V5.7h-.39v-.6h-1v.6h-.33v.65h.32v1h-.01ZM12.6 6.3c-.22 0-.28.16-.28.6 0 .39.06.58.27.58.21 0 .29-.16.29-.61.01-.46-.1-.57-.28-.57ZM9 2c-3.08.26-4.98.86-6.39 1.6v5.11c0 3.26 2.62 6.78 6.39 7.29 3.77-.51 6.39-4.03 6.39-7.29V3.6C13.98 2.86 12.08 2.26 9 2Zm.31 3.69h.33v-.6h1v.6h.39v.65h-.39v.93c0 .13.04.18.22.18h.11v.59c-.14.04-.4.06-.56.06-.62 0-.79-.29-.79-.76v-1H9.3v-.65h.01ZM9 13.52v1.84c-1.58-.24-3.04-1.08-4.12-2.38-1.04-1.24-1.63-2.8-1.63-4.27V3.99C4.73 3.28 6.58 2.85 9 2.64v9.07l2.36-2.36.9.9L9 13.52Zm3.88-5.39c-.27 0-.43-.09-.53-.21v.99h-1.02V5.7h.99c.01.06.02.19.02.25.09-.13.27-.31.66-.31.48 0 .92.39.92 1.19.01.91-.51 1.3-1.04 1.3ZM7.69 10.4l-.9.9L9 13.52v-1.81L7.69 10.4ZM5.86 5.63c-.34 0-.54.15-.67.29v-1.1H4.17v3.24h1.02V6.75c0-.25.03-.41.23-.41.14 0 .2.09.2.29v1.44h1.02V6.52c-.01-.55-.26-.89-.78-.89Z" /></symbol>'}),Js=(a().add(Ks),Ks),Qs=new(o())({id:"iceCast",use:"iceCast-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="iceCast"><path d="m14.94 12.17-.22-.39c-.01-.02-.02-.03-.04-.03l-.31-.12L16.3 9.7l-5.34-5.34-1.65 1.77a.09.09 0 0 1-.07.03c-.02 0-.05-.01-.06-.02-.04-.03-.04-.09 0-.13l1.65-1.77L9 2.41 6.66 4.75l1.28 1.31c.04.04.04.1 0 .13-.02.02-.04.03-.06.03-.02 0-.05-.01-.07-.03L6.53 4.88 1.7 9.7l1.73 1.73-.03.1a.79.79 0 0 0-.23.14c-.18.17-.28.76-.26 1.19.01.28.07.46.17.54.09.07.15.1.23.04.02-.02.04-.03.14-.02.16.03.2.08.2.1 0 .04.03.08.07.08l1.18.07c.25-.01.46-.05.65-.12L9 17l3.48-3.48.32-.21.03.06c.01.02.03.03.04.04.27.09.55.12.81.12.21 0 .42-.02.61-.04.01 0 .02 0 .03-.01l.48-.27c.01-.01.03-.02.03-.04.1-.24.14-.56.13-.97-.01-.01-.01-.02-.02-.03Zm-1.61-2.03c.24-.04.44-.02.55.08.09.08.14.19.13.35 0 .02 0 .03.01.04.17.25.19.41.07.69-.08.05-.23.1-.7.1h-.01l-.34.06h-.52l-.18-.26c-.01-.09-.03-.19-.08-.32 0-.12 0-.29-.05-.44l.05-.25c.06 0 .12-.01.17-.02l.5-.04h.38c.01.01.02.01.02.01Zm-.56-1 .28.2.12.48c-.28.12-.51.21-.63.18h-.04c-.02.01-.04.01-.07.02l-.22.02H10.8c-.3-.04-.52-.13-.63-.27l-.01-.01c-.14-.11-.21-.27-.2-.49 0-.01 0-.03-.01-.04-.02-.03-.06-.11.1-.24l.67-.06h1.81l.24.21Zm-.59 2.2c-.01.02-.04.03-.07.03h-.05c-.06-.03-.13-.05-.2-.08s-.14-.05-.21-.08c-.2-.08-.4-.18-.54-.3a.489.489 0 0 1-.14-.18c-.01-.01-.01-.02-.02-.03-.03-.02-.06-.04-.08-.07-.18-.16-.14-.25-.04-.39l1.02.02c.23.08.28.31.27.64v.03c.11.29.08.38.06.41Zm-.72-3.51c.02-.01.12-.08.69.02.21.15.28.31.24.48v.03c.01.09-.05.2-.17.33H10.84c-.28.09-.52.12-.72.09h-.01a.868.868 0 0 1-.46-.1c-.01 0-.02-.01-.03-.02l-.07-.19.04-.27.03-.24 1.11-.08.7-.02c0-.01.02-.02.03-.03Zm-2.08.67.04.12c-.06.03-.12.05-.19.06-.06-.01-.11-.02-.17-.04h-.03l-.47.09-.83.02H7.7c-.18.07-.48.02-.86-.05l.02-.7.12-.06c.13-.06.24-.09.33-.08h.01c.37-.06.78-.11 1.05-.05h.03c.28-.04.51 0 .72.04h.01c.11.1.2.22.26.36l-.03.25c.01.01.01.03.02.04Zm-1.34.48.53-.1.47-.09c.07.01.13.03.19.04.33.08.5.16.5.32v.42c-.06.1-.43.13-.57.14l-.66.1a.57.57 0 0 0-.26 0c-.2-.05-.32-.13-.38-.27-.08-.24-.02-.42.18-.56Zm1.41-2.25c.26-.1.68-.01.98.06l.09.02h.03c.2-.04.35.01.46.15l.01.01c.12.11.26.38.18.47-.01.02-.02.04-.02.06.01.13-.02.18-.03.19-.01 0-.02.02-.07.01h-.77l-.84.06c-.25-.04-.38-.17-.4-.4 0-.01 0-.02-.01-.03-.08-.16-.14-.29-.18-.48.16-.05.34-.09.55-.11.01-.01.01-.01.02-.01Zm-1.41-.51c.01 0 .01 0 .02-.01.29-.17.94-.21 1.1-.07l.15.22c-.01.08-.03.14-.07.17-.04.03-.1.04-.19.02h-.03l-1 .12c-.12.02-.2.01-.24-.03-.04-.04-.07-.11-.07-.22.06-.11.17-.16.33-.2ZM5.99 7.49l.54-.26.61-.36h1.29c.19.05.29.21.29.5 0 .01 0 .02.01.03.03.07.05.12.03.15-.02.03-.08.06-.16.07l-.21.03c-.26-.06-.61-.02-1.07.05-.11 0-.23.03-.36.08h-.55c-.19.05-.31.05-.37 0-.07-.05-.07-.18-.05-.29Zm-.28.76.64-.16c.06 0 .14 0 .17.05.04.04.03.12.02.18v.04c.06.15.03.25-.09.33l-.81.13c-.13.02-.24-.03-.33-.15-.01-.07 0-.22.4-.42ZM4.68 9.43c.1-.13.2-.21.32-.24.01 0 .02-.01.03-.01.18-.14.37-.16.62-.16h.65l.6-.05.43.15.22.2-.03.64-.29.08c-.13-.05-.28-.02-.47.09l-1.45-.05H5.3c-.22.04-.42-.01-.63-.14-.06-.2-.06-.36.01-.51Zm2.38 1.73a.24.24 0 0 1-.15.06c-.07 0-.14-.03-.21-.09-.15-.59-.06-.72-.01-.75.04-.03.08-.06.12-.08h.11l.29-.08c.07.06.12.19.14.39l-.31.49s0 .03.02.06Zm-3.43.16v-.01c.04-.44.13-.77.24-.91.32-.17.61-.21.85-.11.01 0 .01 0 .02.01l.76.06h.74c.06 0 .11.01.14.04.05.05.08.16.08.31l-.05.7c-.04.03-.08.06-.11.1-.06.06-.1.13-.14.2-.1 0-.23 0-.42.06-.55.17-1.17.07-1.77-.03-.15-.02-.29-.05-.43-.06l.09-.36Zm2.32 1.34v.25l-.07.31c-.25.19-.56.29-.97.31l-1.12-.07c-.03-.06-.11-.14-.31-.18-.15-.03-.21.01-.26.04-.01-.01-.02-.01-.04-.03-.05-.04-.1-.17-.11-.42-.02-.43.09-.95.22-1.08.02-.02.04-.04.07-.05 0 .02 0 .04.01.05.01.02.03.03.05.03.16.02.33.05.51.07.36.06.74.12 1.12.12.24 0 .48-.03.7-.09.1.07.19.16.28.31l-.08.43Zm1.26-.4-.03.08-.26.78c-.21.28-.36.41-.47.41-.1 0-.21-.1-.34-.3v-.55l.11-.56v-.02c-.01-.07.01-.16.04-.24.12-.01.2-.06.29-.24 0-.01.01-.02.01-.03l.01-.09c.06-.03.12-.05.19-.04h.01l.41-.04.18.09c.06.21-.03.44-.15.75Zm1.58-1.84-.23.26c-.52.48-.88.73-1.05.73l-.23-.25c.02-.02.03-.04.05-.05 0-.01.01-.01.01-.02l.18-.43c0-.01.01-.02.01-.03l.06-.09c.11-.1.24-.2.35-.29.14-.11.26-.2.32-.27.03.01.05.01.08.01h.02l.13-.02c.1.03.19.08.27.15.01.01.02.03.04.04v.26h-.01Zm1.4.61-.71-.36c-.18-.1-.36-.16-.53-.17V10l.54-.12.68.2.3.22.03.47c-.19.1-.29.18-.31.26Zm.66.54-.43-.43.22-.26c.06-.02.12-.05.2-.08l.01.01c.18.32.61.49.97.62.07.03.14.05.2.08.01 0 .01 0 .02.01.09.14.05.25 0 .33l-.01.01c-.08.02-.16.07-.22.15l-.18.14-.13.1-.65-.68Zm1.5 1.85c-.23 0-.31-.12-.4-.26-.01-.02-.03-.04-.04-.06-.02-.03-.05-.06-.07-.09-.13-.16-.3-.37-.31-.58l.18-.14.38-.28c.06 0 .12.02.19.06 0 .03.01.07.02.1l.22.61v.01l.12.23.04.18-.33.22Zm2.34-.33-.44.25c-.4.04-.86.07-1.31-.06l-.28-.55-.21-.6c-.02-.09-.04-.22.02-.28.05-.05.15-.06.3-.04h.02l.86-.12.59.04.36.14.19.35c.02.37-.02.66-.1.87ZM3.02 1.03c-.04-.04-.09-.04-.13 0-.04.04-.04.09 0 .13l3.64 3.72.13-.13-3.64-3.72Zm10.88.19c.03-.04.03-.1 0-.13-.04-.03-.1-.03-.13 0l-2.94 3.15.13.13 2.94-3.15Z" /></symbol>'}),el=(a().add(Qs),Qs),tl=new(o())({id:"influxDB",use:"influxDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="influxDB"><path d="M16.68 10.76 14.9 3.78a.76.76 0 0 0-.53-.54L7.43 1.28a.78.78 0 0 0-.74.19L1.53 6.5a.79.79 0 0 0-.21.73l1.78 6.99c.07.26.27.47.53.54l6.94 1.95a.75.75 0 0 0 .74-.19l5.16-5.03c.19-.18.27-.46.21-.73Zm-4.02-6.42-2.39.8-1.46-1.89 3.85 1.09Zm-1.54 6.71-4.79-1.8 3.6-3 1.19 4.8ZM7.44 2.87l.14.04 2.04 2.62L5.56 8.9 3.1 7.1l4.34-4.23ZM3.1 8.04l2.03 1.49-.94 2.81-1.09-4.3Zm7.48 7.07-.02.02-5.94-1.67 1.2-3.59 5.41 2.03-.65 3.21Zm.97-.94.44-2.18 2.17-.36-2.61 2.54Zm.4-2.94-1.35-5.4 3-1 1.5 5.88-3.15.52Z" /></symbol>'}),nl=(a().add(tl),tl),rl=new(o())({id:"ipfs",use:"ipfs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipfs"><path d="M2.05 13.09 8.81 17V9.19L2.05 5.28v7.81Zm.47-6.74c.08-.04.16-.08.23-.13l4.91 2.83c-.06.51.22 1 .7 1.21v5.67c-.08.04-.16.08-.23.13l-4.91-2.83c.06-.51-.22-1-.7-1.21V6.35Zm1.07 6.66 4.39 2.53v-5.06c-.42-.27-.68-.72-.7-1.22L2.89 6.73v5.07c.41.27.67.72.7 1.21ZM9 2.54c-.25 0-.49-.06-.7-.17L3.91 4.91 8.3 7.44c.22-.11.45-.17.7-.17.25 0 .49.06.7.17l4.39-2.53L9.7 2.37c-.22.11-.46.17-.7.17Zm1.02 7.94v5.03l4.39-2.53c.02-.5.28-.95.7-1.22V6.7l-4.39 2.56c-.02.5-.28.95-.7 1.22ZM9 1 2.23 4.91 9 8.81l6.77-3.91L9 1Zm-.7 6.87L3.39 5.04c.01-.09.01-.18 0-.26L8.3 1.94c.41.31.98.31 1.39 0l4.91 2.83c-.01.09-.01.18 0 .26L9.69 7.87c-.41-.31-.97-.31-1.39 0Zm.89 1.32V17l6.77-3.91V5.28L9.19 9.19Zm6.29 2.8c-.47.21-.75.69-.7 1.21l-4.91 2.83c-.07-.05-.15-.1-.23-.13l-.01-5.63c.47-.21.75-.69.7-1.21l4.91-2.86c.07.05.15.1.23.13v5.66h.01Z" /></symbol>'}),ol=(a().add(rl),rl),il=new(o())({id:"ipvs",use:"ipvs-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ipvs"><path d="M1.63 13.18 8.24 17V9.41L1.63 5.59v7.59Zm2.3-5 .6 2.6c.18.8.31 1.39.41 2l.02.01c.09-.45.23-.91.42-1.51L6 9.37l1.17.68-1.57 4.17-1.36-.78L2.7 7.47l1.23.71ZM9.02 1 2.45 4.8l6.61 3.82 6.57-3.8L9.02 1ZM5.05 4.47 8.46 2.5l1.17.68-3.41 1.97-1.17-.68Zm7.15 1.48c-.77.45-1.74.31-2.5-.13l-.53-.31L8 6.18l-1.14-.66 3.41-1.97 1.71.99c.8.46.9 1.02.22 1.41ZM9.76 9.41V17l6.61-3.82V5.59L9.76 9.41Zm3.32 4.5c-1.17.67-1.8.4-1.9-.5l1.14-.66c.09.42.38.44.84.18.44-.25.63-.55.63-.87 0-.37-.21-.39-.92-.17-1.27.39-1.54.01-1.54-.67 0-.89.58-1.87 1.71-2.52 1.24-.71 1.73-.26 1.79.48l-1.13.66c-.04-.26-.16-.49-.68-.2-.33.19-.53.46-.53.76s.17.33.86.12c1.32-.4 1.61-.01 1.61.72-.01.94-.64 1.95-1.88 2.67Zm-2.1-9.08-.32-.18-.74.42.33.19c.26.15.55.18.8.04.25-.15.2-.32-.07-.47Z" /></symbol>'}),al=(a().add(il),il),sl=new(o())({id:"kubernetes",use:"kubernetes-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="kubernetes"><path d="M8.18 8.14c.15 0 .28-.12.28-.27l.08-1.66-.33.07c-.58.13-1.11.43-1.54.84l1.37.98c.06.03.09.04.14.04Zm1.31-.11c.08.12.25.13.36.07l1.36-.96c-.5-.5-1.14-.81-1.87-.89l.1 1.67c0 .04.02.08.05.11ZM7.46 9.22a.27.27 0 0 0-.03-.38L6.2 7.75a3.52 3.52 0 0 0-.48 2.02l1.6-.47c.07-.01.1-.03.14-.08Zm1.06.58.45.22.45-.22.12-.48-.31-.4h-.5l-.31.4.1.48Zm1.68.48c-.12.05-.18.18-.15.31l.65 1.56c.4-.25.75-.6.99-.99.13-.18.23-.4.31-.63l-1.66-.28c-.04 0-.09.01-.14.03Zm-2.65-.02-1.64.28c.23.66.7 1.24 1.28 1.62l.63-1.52c.03-.05.03-.12.02-.17-.02-.12-.15-.21-.29-.21Zm7.42-5.15a1.03 1.03 0 0 0-.53-.61L9.39 2.08A.859.859 0 0 0 8.98 2c-.13 0-.28 0-.41.03L3.51 4.47c-.25.12-.43.33-.5.61l-1.24 5.45c-.05.28.02.56.18.79l3.49 4.32c.2.2.48.33.76.35h5.56c.3.03.58-.1.76-.35l3.49-4.32c.17-.23.23-.51.2-.79l-1.24-5.42Zm-.81 5.78c-.03 0-.05 0-.08-.02-.02-.02-.02-.02-.03-.02-.03 0-.05-.02-.07-.02-.07-.02-.12-.05-.18-.08-.03 0-.07-.02-.1-.03h-.02c-.17-.07-.35-.12-.53-.15h-.02c-.05 0-.1.02-.13.05 0 0 0 .02-.02.02l-.13-.02c-.3.94-.94 1.74-1.79 2.25l.05.13s-.02 0-.02.02c-.03.05-.03.12-.02.17.07.17.15.33.26.48v.03c.03.03.05.05.07.08.05.05.08.1.12.17.02.02.03.03.03.05 0 0 .02 0 .02.02.03.08.03.17.02.25-.01.08-.08.15-.15.18-.05.02-.08.03-.13.03-.13 0-.25-.08-.31-.2-.02 0-.02-.02-.02-.02-.02-.02-.02-.03-.03-.05-.03-.05-.05-.12-.07-.18l-.03-.1v-.02c-.05-.18-.13-.35-.22-.51a.256.256 0 0 0-.13-.1c0-.02 0-.02-.02-.02l-.07-.12c-.17.05-.35.12-.53.15-.3.08-.6.12-.89.12-.5 0-.98-.08-1.44-.26l-.07.13c0 .02 0 .02-.02.02-.05.02-.1.05-.13.1-.08.17-.17.33-.22.51l-.03.1c-.02.07-.05.12-.07.18-.02.02-.03.03-.03.05-.02 0-.02.02-.02.02-.07.12-.18.2-.31.2-.03 0-.08-.02-.12-.03A.334.334 0 0 1 6.4 14c.02 0 .02-.02.02-.02.02-.02.02-.03.03-.05.05-.07.08-.13.12-.17a.5.5 0 0 0 .07-.08v-.02c.1-.15.2-.31.26-.48.02-.05.02-.12-.02-.17 0 0-.02 0-.02-.02l.08-.12c-.17-.08-.3-.18-.45-.3-.65-.5-1.11-1.18-1.36-1.94l-.15.02s0-.02-.02-.02a.19.19 0 0 0-.13-.05h-.02c-.2.03-.36.08-.55.15h-.02c-.03 0-.07.02-.1.03-.05.02-.12.05-.18.07-.02 0-.07-.02-.07 0s0 .02-.02.02c-.03.02-.05.02-.08.02-.15.02-.3-.08-.33-.23-.03-.18.08-.35.26-.38.02-.02.02-.02.03-.02.03 0 .05-.02.07-.02.07 0 .13-.02.2-.02.03-.02.07-.02.1-.02.2-.02.38-.05.56-.1.05-.03.1-.07.12-.12 0 0 .02 0 .02-.02l.13-.03c-.15-.94.07-1.9.58-2.72.02-.03.03-.05.05-.08l-.1-.1v.02c.02-.05-.02-.12-.05-.15-.13-.13-.3-.23-.46-.33-.03-.02-.07-.03-.1-.05-.07-.03-.13-.07-.18-.1-.02 0-.05-.03-.05-.03s0-.02-.02-.02c-.13-.12-.17-.31-.07-.46.05-.08.13-.12.23-.12.08 0 .17.03.23.08l.02.02c.02.02.03.02.05.03.05.05.08.1.13.15.02.02.05.03.07.07.12.13.27.26.41.38.03.02.07.03.1.03s.05-.02.07-.02h.02l.1.07c.55-.58 1.26-.99 2.04-1.16.2-.03.38-.07.56-.08l.02-.13v-.03c.05-.03.07-.08.08-.13 0-.2 0-.38-.03-.56v.01c0-.03 0-.07-.02-.1a.693.693 0 0 1-.03-.2v-.08c0-.08.03-.17.1-.23.08-.08.18-.13.28-.12.17.02.3.18.28.35v.1c-.02.07-.02.13-.03.2 0 .03-.02.07-.02.1v.02c-.03.2-.03.38-.03.56.02.05.03.1.08.13v-.02l.02.13c.78.08 1.54.38 2.15.86.13.13.28.26.41.4l.13-.08h.02c.02.02.05.02.07.02.03 0 .07-.02.1-.03.15-.1.3-.23.41-.36.02-.02.05-.03.07-.07.03-.05.08-.1.13-.15.02 0 .03-.02.05-.03l.02-.02a.4.4 0 0 1 .23-.08c.08 0 .18.05.23.12.12.15.08.35-.07.46 0 .02.02.02 0 .03-.02.02-.03.02-.05.03-.07.03-.12.07-.18.1-.03.02-.07.03-.1.05-.17.1-.31.2-.46.33-.03.03-.05.1-.05.15v.02l-.1.1c.26.41.46.88.58 1.36.1.48.13.98.07 1.46l.13.03c.02.05.07.1.12.12.18.05.38.08.56.1h.02c.03.02.07.02.1.02.07 0 .13 0 .2.02.03 0 .07 0 .07.02s.02.02.03.02c.15.03.28.17.3.35-.03.1-.16.2-.31.2Zm-2.45-3.14-1.24 1.13c-.03.03-.05.07-.07.12-.03.15.05.3.2.33l1.57.45c.03-.35.02-.7-.07-1.04-.07-.36-.21-.7-.39-.99Zm-2.65 3.23c-.12-.07-.25-.03-.33.07l-.81 1.47c.33.1.7.17 1.04.17.25 0 .48-.03.71-.08.12-.03.22-.05.31-.07l-.79-1.44a.474.474 0 0 0-.13-.12Z" /></symbol>'}),ll=(a().add(sl),sl),ul=new(o())({id:"lighthttpd",use:"lighthttpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd"><path d="M3.67 14.86v.01l1.02-.92-.48-.32-.54 1.23ZM17.49 2 .51 10.14l1.89 1.65 14.92-9.67-14.63 9.92.98 2.83.36-1.82L17.49 2 4.38 13.25l-.01.03L8.43 16l9.06-14Z" /></symbol>'}),cl=(a().add(ul),ul),fl=new(o())({id:"lighthttpd2",use:"lighthttpd2-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lighthttpd2"><path d="M16.97 2 1.03 6.92l3.5 3.76L16.8 2.11 4.82 10.93l.97 2.81.36-1.81L16.97 2 6.5 12.13l-.01.03 6.8 3.84 3.68-14Zm-4.03 10.71v.71h-2.43v-.8c0-.7.57-1.27 1.27-1.27h.2c.18 0 .32-.14.32-.32s-.14-.32-.32-.32h-.61c-.08 0-.14.06-.14.14v.07h-.71v-.07c0-.47.39-.86.86-.86h.61a1.04 1.04 0 1 1 0 2.08h-.2c-.31 0-.55.25-.55.55v.09h1.7ZM5.8 13.73v.01l1.01-.92-.47-.32-.54 1.23Z" /></symbol>'}),dl=(a().add(fl),fl),pl=new(o())({id:"liteSpeed",use:"liteSpeed-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="liteSpeed"><path d="M8.2 10.92 6.5 9.23a.398.398 0 0 1 0-.57l.49-.49-.33-.47a.532.532 0 0 1 .11-.72l3.84-2.95V1L2.95 8.67c-.16.16-.16.41 0 .57l3.68 3.68 1.57-2Zm2.78-.51L9.13 7.75c-.08-.11-.07-.29.01-.4l3.37-4.28c.05-.06.06-.1.05-.1-.01 0-.04.02-.09.05L7.05 7.19c-.11.08-.13.24-.06.36l1.88 2.7c.08.11.07.29-.01.4l-3.37 4.27c-.05.06-.06.1-.04.1.01 0 .04-.02.09-.05l5.42-4.16c.1-.08.06-.33.02-.4Zm4.07-1.64-3.68-3.68L9.8 7.08l1.69 1.69c.16.16.16.41 0 .57l-.49.49s.33.49.34.52c.08.15.09.51-.12.67l-3.84 2.95V17l7.67-7.66c.16-.16.16-.41 0-.57Z" /></symbol>'}),hl=(a().add(pl),pl),gl=new(o())({id:"lxc",use:"lxc-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="lxc"><path d="M8.69 6.35 4.96 4.26l-3.58 2 3.74 2.09 3.57-2ZM5.26 9.59l3.59-2.01V6.6L5.26 8.61v.98Zm7.48 0v-.98l-3.59-2v.98l3.59 2Zm-7.78.17V8.61L1.22 6.52v1.19l3.7 2.07.04-.02Zm11.66-3.5L9 2 5.26 4.09l7.62 4.26 3.74-2.09Zm-3.58 5.21h-.07l-3.84 2.15V16l7.65-4.28V9.34l-3.74 2.09v.04Zm-.3-.22v-.94l-3.61 2.02v.94l3.61-2.02Zm.3-2.64v2.47l3.74-2.09V6.52l-3.74 2.09ZM1.22 11.72 8.87 16v-2.39L1.22 9.34v2.38Zm11.52-1.79L9 7.84 5.26 9.93v.04L9 12.06l3.74-2.09v-.04ZM1.22 8.99l7.65 4.28v-.94L1.22 8.06v.93Z" /></symbol>'}),vl=(a().add(gl),gl),ml=new(o())({id:"mariaDB",use:"mariaDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mariaDB"><path d="M16.82 3.09c-.9.3-1.21-.3-2.41 0-1.21.3-1.51 2.98-3.02 3.87-1.51.89-3.92.6-5.43 1.79-1.51 1.19-1.81 3.28-2.41 3.28-.6 0-1.21-.3-2.11-.3-.9 0-.9 0-.9.3s1.21.89 1.21 1.19c0 .3-.91.89-.91 1.49s1.51 0 2.11-.3c.6-.3 1.81-1.49 2.71-1.49.9 0 2.41.6 3.32.6.41 0 .57-.06.63-.13.07-.08.88-.77.88-1.36 0 0 0 1.19-.6 1.79-.6.6-1.21 1.19-.9 1.19.3 0 3.02 0 3.32-2.98.15-1.51.3 0 .3 0l-.3.6s2.41-1.49 2.71-2.68c.3-1.19-.3-2.68.6-3.28.9-.6 1.81-1.49 1.81-1.79-.01-.3.29-1.2-.61-1.79ZM15.39 4.3c-.04.07-.11.13-.17.17-.13.08-.25.1-.4.07-.05-.02-.06-.05-.06-.07 0-.02 0-.04.01-.06.02-.07.03-.11.06-.15.03-.03.07-.06.13-.08.11-.04.24-.04.35-.03.05 0 .09-.01.1.05.01.02-.01.07-.02.1Z" /></symbol>'}),yl=(a().add(ml),ml),bl=new(o())({id:"memCached",use:"memCached-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="memCached"><path d="M11.46 2H6.54C2.57 2 2 2.57 2 6.54v4.92C2 15.43 2.57 16 6.54 16h4.93c3.97 0 4.54-.57 4.54-4.54V6.54C16 2.57 15.43 2 11.46 2ZM8.07 13.08c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51Zm1.86 0c-.28 0-.51-.23-.51-.51s.23-.51.51-.51.51.23.51.51c0 .29-.23.51-.51.51Zm3.38 0h-2.15c.2-1.09.94-6.06.33-6.08-.33.05-1.82 4.22-1.82 4.22s-.33-.04-.66-.04-.66.04-.66.04S6.84 7.06 6.52 7c-.61.02.12 4.99.33 6.08H4.69S4.33 9 5.02 4.64h1.99c.38 0 1.82 2.53 1.99 2.53.17 0 1.61-2.53 1.99-2.53h1.99c.69 4.36.33 8.44.33 8.44Z" /></symbol>'}),wl=(a().add(bl),bl),_l=new(o())({id:"mongoDB",use:"mongoDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mongoDB"><g clip-path="url(#mongoDB_a)"><path d="M8.9.07c-.04.27-.12.47-.38.7-.64.57-3.35 2.78-3.58 7.57-.2 4.29 3.01 7 3.67 7.45.22-.63.34-1.3.42-2.33.11-4.19.11-10.81-.13-13.39Zm.16 14.6c-.07.45-.17.82-.29 1.18l-.06.17c.05.35.15 1.15.23 1.99h.36c.08-.76.21-1.51.38-2.25l-.02-.01c-.27-.14-.48-.52-.6-1.08Zm3.86-7.58C11.97 2.88 9.97 1.76 9.47.96 9.28.65 9.12.33 8.97 0c0 .04.01.09.01.13.04.29.07.79.09 1.4.09 2.02.12 4.96.1 7.74.02.88.01 1.75-.03 2.63-.01.64-.02 1.26-.04 1.82.05 1.05.29 1.71.62 1.87l.04.02c1.69-1.2 3.9-4.24 3.16-8.52Z" /></g><defs><clipPath id="mongoDB_a"><path d="M0 0h18v18H0z" /></clipPath></defs></symbol>'}),xl=(a().add(_l),_l),Sl=new(o())({id:"mySQL",use:"mySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL"><path d="M16.06 14.8c-.14-.14-.3-.27-.46-.39-.05-.04-.08-.06-.12-.09.13-.02.26-.05.39-.07.17-.02.36-.03.5-.04l1.27-.02-.6-1.08c-.5-.9-1.21-1.46-1.92-1.94-.36-.24-.72-.45-1.1-.64-.31-.16-.61-.3-.93-.43-.51-.67-.79-1.54-1.2-2.53a10.57 10.57 0 0 0-1.79-2.89c-.75-.85-1.58-1.6-2.53-2.23-.47-.31-1.01-.61-1.59-.79-.5-.16-.97-.26-1.54-.28-.41-.32-.85-.61-1.38-.81C2.72.47 2.38.39 1.98.4 1.62.41 1.19.51.81.82c-.27.18-.46.49-.52.76-.07.28-.05.53-.01.75.09.44.28.8.6 1.12.2.19.25.21.36.31.09.08.16.15.21.21.09.11.12.2.15.4.09.68.3 1.24.52 1.8.12.29.23.55.44.89.05.06.07.1.14.18.04.04.09.09.14.12-.26.65-.29 1.25-.32 1.83-.01.36 0 .71.04 1.06.04.37.06.67.2 1.14.16.44.36.76.64 1.09.14.16.3.32.52.46.22.14.52.28.92.26.4-.04.7-.19.96-.51.18.22.37.44.56.65.64.62 1.33 1.17 2.06 1.65 1.46.95 3.02 1.67 4.67 2.15l.22-.62c-1.46-.71-2.85-1.61-4.09-2.61-.62-.51-1.18-1.07-1.69-1.65-.52-.58-.93-1.21-1.37-1.83l-.93-1.29-.44 1.38-.02.05c-.14.44-.13.8-.15 1.03-.03-.03-.07-.06-.09-.1-.15-.16-.29-.41-.35-.58-.05-.16-.1-.51-.13-.79-.03-.3-.04-.6-.03-.9.01-.58.1-1.2.3-1.52l.2-.33-.15-.34c-.09-.21-.17-.35-.31-.54-.07-.09-.15-.19-.27-.28-.08-.13-.2-.38-.29-.61-.19-.48-.37-.99-.43-1.44-.04-.36-.2-.82-.48-1.15-.25-.31-.57-.54-.67-.63a.801.801 0 0 1-.19-.35c0-.02-.01-.04-.01-.06l.04-.03s.08-.05.23-.05c.15 0 .34.03.53.1.39.14.77.39 1.13.7l.23.2.33-.01a4 4 0 0 1 1.26.21c.43.14.83.35 1.24.63.81.54 1.58 1.21 2.22 1.96.65.74 1.15 1.57 1.54 2.5.39.89.71 2.05 1.51 3.01l.13.15.19.07c.32.12.68.29 1 .46.33.17.65.35.96.56.22.15.43.31.63.48-.4.1-.81.23-1.21.46l-.61.35.31.64.01.01c.17.32.3.44.47.6.16.15.33.27.51.37.17.1.38.2.52.25.14.05.27.11.4.18.26.14.51.31.72.5.22.23.5.49.75.72l.42-.29c-.14-.33-.26-.63-.43-.96-.16-.37-.4-.68-.69-.95ZM.73.89C.76.86.79.85.82.82L.84.8.73.89ZM5.2 5.51c.47-.39.16-1.1-.63-1.02.4.24.63.87.63 1.02Z" /></symbol>'}),Ol=(a().add(Sl),Sl),Cl=new(o())({id:"mySQL_press",use:"mySQL_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="mySQL_press"><path d="M16.45 16.06s-.39-.63-1.26-1.1c-.87-.47-1.1-.94-1.1-.94.94-.55 2.28-.55 2.28-.55-.87-1.65-3.78-2.75-3.78-2.75-1.02-1.26-1.02-2.44-2.13-4.25C9.36 4.65 7.48 3.15 6.3 2.6c-1.18-.55-2.13-.47-2.13-.47-1.26-1.1-2.44-1.18-2.91-.71-.47.32-.24 1.18.23 1.58.47.4.79.63.87 1.34.08.71.71 2.28.94 2.44.24.16.39.55.39.55-.63 1.02-.39 3.23-.24 3.78.16.55.87 1.57 1.5 1.34.63-.24.31-1.02.55-1.65 2.13 4.09 7.71 6.06 7.71 6.06H17l-.55-.8ZM4.8 4.81c0-.16-.24-.79-.63-1.02.79-.08 1.1.62.63 1.02Z" /></symbol>'}),El=(a().add(Cl),Cl),Al=new(o())({id:"nginx",use:"nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx"><path d="M10.75 6c-.41 0-.75.34-.75.75v2.31L7.84 6.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V8.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75Zm4.19-1.78-4.77-2.76c-.35-.2-.76-.31-1.16-.31-.4 0-.81.11-1.16.31L3.06 4.23c-.72.41-1.16 1.19-1.16 2.02v5.51c0 .83.45 1.6 1.17 2.02l4.77 2.76c.35.2.76.31 1.16.31.41 0 .81-.11 1.16-.31l4.78-2.76c.72-.41 1.16-1.19 1.16-2.02V6.24c.01-.83-.44-1.6-1.16-2.02Zm-.33 7.54c0 .3-.16.57-.41.72l-4.78 2.76c-.13.07-.27.11-.41.11-.14 0-.29-.04-.41-.11l-4.78-2.76a.819.819 0 0 1-.41-.72V6.24c0-.3.16-.57.41-.72L8.6 2.76c.13-.07.27-.11.41-.11.14 0 .29.04.41.11l4.78 2.76c.26.15.41.42.41.72v5.52Z" /></symbol>'}),kl=(a().add(Al),Al),Ml=new(o())({id:"nginx_local",use:"nginx_local-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_local"><path d="m9 17 2-2H7l2 2Zm1.75-12c-.41 0-.75.34-.75.75v2.31L7.84 5.29a.756.756 0 0 0-.83-.25c-.3.1-.51.39-.51.71v4.5c0 .41.34.75.75.75s.75-.34.75-.75V7.94l2.16 2.77a.738.738 0 0 0 .83.25c.3-.1.51-.39.51-.71v-4.5c0-.41-.34-.75-.75-.75Zm2.77-1.21-3.13-1.81c-.42-.24-.9-.37-1.39-.37-.49 0-.97.13-1.39.37L4.48 3.79c-.86.49-1.39 1.41-1.39 2.4V9.8c0 .99.53 1.91 1.39 2.41l3.13 1.81c.42.24.9.37 1.39.37.49 0 .97-.13 1.39-.37l3.13-1.81a2.78 2.78 0 0 0 1.39-2.41V6.19c0-.99-.53-1.91-1.39-2.4Zm-.11 6.02c0 .46-.24.88-.64 1.11l-3.13 1.81c-.2.11-.42.17-.64.17-.22 0-.44-.06-.64-.17l-3.13-1.81c-.4-.23-.64-.65-.64-1.11V6.19c0-.46.24-.88.64-1.11l3.13-1.81c.2-.11.42-.17.64-.17.22 0 .44.06.64.17l3.13 1.81c.4.23.64.65.64 1.11v3.62Z" /></symbol>'}),Pl=(a().add(Ml),Ml),Rl=new(o())({id:"nginx_plus",use:"nginx_plus-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="nginx_plus"><path d="M15.55 4.62 9.52 1.14a1.02 1.02 0 0 0-1.04 0L2.45 4.62c-.32.19-.52.53-.52.9v6.96c0 .37.2.71.52.9l6.03 3.48c.32.19.72.19 1.04 0l6.03-3.48c.32-.19.52-.53.52-.9V5.52c0-.37-.2-.71-.52-.9Zm-6.43 6.49c0 .24-.14.46-.37.55-.07.03-.15.05-.23.05-.15 0-.31-.06-.42-.17L4.6 8.03v3.09a.591.591 0 0 1-1.18 0V6.6c0-.24.14-.46.37-.55.22-.09.48-.04.65.13l3.51 3.51V6.6a.591.591 0 0 1 1.18 0v4.51h-.01Zm5.23-1.75h-1.53v1.53a.56.56 0 1 1-1.12 0V9.36h-1.53a.56.56 0 1 1 0-1.12h1.53V6.7a.56.56 0 1 1 1.12 0v1.53h1.53c.31 0 .56.25.56.56 0 .31-.25.57-.56.57Z" /></symbol>'}),Tl=(a().add(Rl),Rl),Il=new(o())({id:"ntpd",use:"ntpd-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76ZM4.5 7c0-2.48 2.02-4.5 4.5-4.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5S4.5 9.48 4.5 7Zm5.25-.31V4.5c0-.41-.34-.75-.75-.75s-.75.34-.75.75v2.81l1.24 1.24c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-.8-.8Z" /></symbol>'}),Bl=(a().add(Il),Il),jl=new(o())({id:"ntpd_press",use:"ntpd_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="ntpd_press"><path d="M15.25 14.5h-4.74c-.13-.39-.4-.71-.76-.91v-.65A5.998 5.998 0 0 0 9 .99C5.69.99 3 3.69 3 7c0 3.06 2.29 5.58 5.25 5.95v.65c-.36.19-.63.51-.76.91H2.75c-.41 0-.75.34-.75.75s.34.75.75.75h5.01c.29.36.74.6 1.24.6s.95-.24 1.24-.6h5.01c.41 0 .75-.34.75-.75s-.34-.76-.75-.76Zm-7-7.19V4.5c0-.41.34-.75.75-.75s.75.34.75.75v2.19l.8.8c.29.29.29.77 0 1.06-.15.15-.34.22-.53.22s-.38-.07-.53-.22L8.25 7.31Z" /></symbol>'}),Dl=(a().add(jl),jl),Ll=new(o())({id:"openStack",use:"openStack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openStack"><path d="M12.5 12.01c0 .27-.22.49-.49.49H5.99a.49.49 0 0 1-.49-.49v-.21H2v3.38c0 .45.37.82.82.82h12.36c.45 0 .82-.37.82-.82V11.8h-3.5v.21Zm-7-4.41H2v2.8h3.5V7.6ZM15.18 2H2.82c-.45 0-.82.37-.82.82V6.2h3.5v-.21c0-.27.22-.49.49-.49h6.03c.27 0 .49.22.49.49v.21h3.5V2.82a.839.839 0 0 0-.83-.82Zm-2.68 8.4H16V7.6h-3.5v2.8Z" /></symbol>'}),Zl=(a().add(Ll),Ll),Nl=new(o())({id:"openWrt",use:"openWrt-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="openWrt"><path d="M3.69 8.36c-.12 0-.22.04-.29.13-.07.08-.11.22-.11.42 0 .19.04.33.11.41.07.08.17.13.29.13.13 0 .23-.04.3-.12.07-.08.1-.23.1-.44 0-.18-.04-.31-.11-.39-.07-.1-.16-.14-.29-.14ZM9 2C5.13 2 2 5.13 2 9s3.13 7 7 7 7-3.13 7-7-3.13-7-7-7ZM4.58 9.43c-.08.14-.18.25-.33.33-.14.08-.32.12-.53.12-.22 0-.4-.03-.54-.1a.773.773 0 0 1-.34-.33c-.1-.14-.14-.33-.14-.55 0-.31.09-.55.26-.73.17-.17.42-.26.73-.26.32 0 .57.09.74.26.17.17.26.41.26.72 0 .22-.04.4-.11.54Zm1.76.27c-.11.12-.25.18-.42.18-.08 0-.16-.01-.22-.04a.567.567 0 0 1-.18-.12v.66h-.54V8.47h.5v.2c.07-.09.13-.14.19-.17.08-.04.16-.06.26-.06.19 0 .33.07.43.21.1.14.15.32.15.53 0 .23-.06.4-.17.52Zm1.97-.41H7.24c.01.08.03.15.07.19.05.06.12.09.2.09.05 0 .1-.01.15-.04.03-.02.06-.05.09-.09l.53.05c-.08.14-.18.24-.29.3-.11.06-.28.09-.49.09-.18 0-.33-.03-.44-.08a.568.568 0 0 1-.26-.25.744.744 0 0 1-.1-.4c0-.22.07-.39.21-.52.14-.13.33-.2.58-.2.2 0 .36.03.47.09.12.06.2.15.26.26.06.11.09.26.09.44v.07Zm1.71.56h-.54v-.76c0-.09-.02-.15-.05-.18-.03-.04-.08-.05-.14-.05-.06 0-.12.02-.16.07-.04.05-.06.14-.06.26v.66h-.53V8.47h.5v.23c.07-.09.15-.16.22-.2.08-.04.17-.06.28-.06.15 0 .26.04.35.13.08.09.12.22.12.4v.88h.01Zm2.42 0h-.58l-.34-1.2-.33 1.2h-.59l-.43-1.91h.56l.2 1.06.3-1.06h.56l.3 1.07.2-1.07h.56l-.41 1.91Zm1.52-.96a.336.336 0 0 0-.15-.04.18.18 0 0 0-.16.09c-.06.08-.08.23-.08.45v.46h-.54V8.47h.5v.23c.05-.1.1-.17.15-.2.05-.04.11-.06.19-.06s.17.02.26.07l-.17.38Zm.68.94a.339.339 0 0 1-.14-.15.875.875 0 0 1-.05-.33v-.49h-.2v-.39h.2v-.25l.53-.27v.52h.29v.39h-.29v.49c0 .06.01.1.02.12.02.03.05.04.09.04.04 0 .09-.01.17-.03l.04.37c-.13.03-.25.04-.37.04-.13 0-.23-.02-.29-.06ZM7.5 8.75c-.08 0-.15.03-.2.1-.03.04-.05.1-.06.19h.53c-.01-.1-.04-.18-.08-.22a.294.294 0 0 0-.19-.07Zm-1.75.08c-.07 0-.12.03-.17.08-.05.05-.07.14-.07.26 0 .11.02.19.07.24.05.05.1.08.18.08.06 0 .11-.02.16-.08.04-.05.06-.14.06-.26 0-.11-.02-.2-.07-.25a.213.213 0 0 0-.16-.07Z" /></symbol>'}),Fl=(a().add(Nl),Nl),Hl=new(o())({id:"pan",use:"pan-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pan"><path d="M9 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm6.624-2.416a.75.75 0 1 0-1.248.832l1.223 1.834h-1.674C13.56 5.847 11.504 4 9 4S4.44 5.847 4.076 8.25H2.401l1.223-1.834a.75.75 0 0 0-1.248-.832L.099 9l2.277 3.416a.75.75 0 0 0 1.248-.832L2.401 9.75h1.674C4.44 12.153 6.496 14 9 14s4.56-1.847 4.924-4.25h1.674l-1.223 1.834a.75.75 0 0 0 1.248.832L17.901 9l-2.277-3.416ZM9 12.5c-1.93 0-3.5-1.57-3.5-3.5S7.07 5.5 9 5.5s3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5Z" /></symbol>'}),Vl=(a().add(Hl),Hl),zl=new(o())({id:"percona",use:"percona-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="percona"><path d="M9 2C5.13 2 2 5.13 2 9c0 2.38 1.19 4.48 3 5.74V9c0-2.21 1.79-4 4-4s4 1.79 4 4-1.79 4-4 4c-.95 0-1.81-.35-2.5-.9v3.44c.78.3 1.62.47 2.5.47 3.87 0 7-3.13 7-7S12.87 2 9 2Zm2.5 7a2.5 2.5 0 0 0-5 0 2.5 2.5 0 0 0 5 0Z" /></symbol>'}),Ul=(a().add(zl),zl),Gl=new(o())({id:"pfSense",use:"pfSense-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="pfSense"><path d="m11.86 6.83.53-1.8c.38-1.3 1.57-2.19 2.92-2.19H16c0-.46-.38-.84-.84-.84H2.84c-.46 0-.84.38-.84.84V13.5l1.68-6.67h2.1l-.21.85c.86-.76 1.9-1.19 2.87-1.1 1.7.17 2.5 1.92 1.78 3.92s-2.68 3.48-4.38 3.31c-.69-.07-1.23-.4-1.58-.9L3.47 16h11.69c.46 0 .84-.38.84-.84V4.8h-.69c-.48 0-.91.32-1.04.78l-.37 1.25h1.26l.35.84-.84.84h-1.26l-1.5 5.11H9.87l1.5-5.11h-.75l.49-1.68h.75Zm-3.75 3.56c.36-1.02-.05-1.92-.93-2.01-.82-.09-1.76.57-2.17 1.5l-.19.77c-.05.75.36 1.34 1.05 1.41.87.1 1.87-.65 2.24-1.67Z" /></symbol>'}),Wl=(a().add(Gl),Gl),ql=new(o())({id:"php_fpm",use:"php_fpm-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="php_fpm"><path d="M2.32 8.49h-.37l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12Zm10.11.04h-.38l-.21 1.19h.34c.22 0 .39-.05.51-.14.11-.09.18-.24.22-.47.02-.07.02-.14.02-.2 0-.11-.02-.18-.07-.24-.07-.1-.22-.14-.43-.14ZM.82 6.67 0 11.33h8.32l.82-4.65H.82v-.01Zm2.53 2.42c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.13.05-.3.07-.52.07h-.47l-.13.72H.98l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49 0 .08-.02.17-.03.27Zm2.27-.31-.23 1.26h-.55l.22-1.2c.01-.06.02-.11.02-.14 0-.06-.01-.11-.04-.13-.05-.05-.14-.07-.27-.07h-.44l-.29 1.55H3.5L4 7.33h.54l-.13.72h.48c.3 0 .51.06.63.17.09.08.12.2.12.35 0 .07 0 .14-.02.21Zm2.48.31c-.03.13-.06.26-.12.37-.06.11-.13.21-.22.29-.11.11-.23.19-.37.23-.14.04-.3.07-.52.07H6.4l-.13.72h-.54l.51-2.71h1.05c.31 0 .54.09.69.27.1.13.15.29.15.49-.01.08-.02.17-.03.27Zm1.47-2.42-.82 4.65h8.43L18 6.67H9.57Zm.83 3.49h-.58l.3-1.67h-.39l.07-.41h.39l.04-.21c.04-.21.11-.36.2-.43.09-.07.25-.11.47-.11h.52l-.07.4h-.26c-.09 0-.16.02-.21.04-.05.03-.07.08-.09.14l-.03.17h.52l-.07.41h-.51l-.3 1.67Zm3.06-1.01c-.03.14-.07.27-.13.38-.06.11-.13.21-.22.3-.11.12-.23.2-.37.24-.14.05-.31.07-.52.07h-.47l-.13.75h-.55l.52-2.82h1.06c.32 0 .55.1.7.28.11.13.15.3.15.51-.01.1-.02.19-.04.29Zm3.41-.31-.24 1.32h-.56l.22-1.25c.01-.03.01-.05.02-.07 0-.02.01-.05.01-.08 0-.06-.01-.11-.03-.15-.05-.05-.14-.07-.28-.07h-.31l-.3 1.62h-.57l.29-1.62h-.64l-.3 1.62h-.56L14 8.09h2.12c.3 0 .52.06.64.18.08.09.12.21.12.37.01.06 0 .13-.01.2Zm-9.8-.35H6.7l-.21 1.14h.33c.22 0 .39-.05.5-.14.11-.09.18-.23.22-.45.01-.07.02-.14.02-.2 0-.1-.02-.18-.07-.23-.07-.08-.21-.12-.42-.12Z" /></symbol>'}),$l=(a().add(ql),ql),Yl=new(o())({id:"postgreSQL",use:"postgreSQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="postgreSQL"><path d="M6.05 10.28c-.55-.58-.8-1.37-.69-2.19.12-.88.08-1.65.05-2.07-.01-.1-.01-.19-.01-.24 0-.12-.05-2.62 1.4-4.07.01-.01.03-.02.04-.04-.87-.28-3.05-.85-4.37.09-.81.58-1.19 1.65-1.11 3.19.02.49.33 2.22.86 3.95.61 1.99 1.3 3.25 1.89 3.45.09.03.37.12.77-.36.57-.68 1.1-1.27 1.35-1.53-.07-.06-.12-.12-.18-.18Zm8.17-5.06c-.59-.07-1.27-.06-1.54.33-.52.75.5 2.58.93 3.36.11.2.19.35.23.44.04.1.09.19.13.27.3-.64.22-1.28.15-1.91-.04-.31-.08-.63-.07-.94.01-.32.05-.58.09-.83.04-.25.07-.47.08-.72Zm-.58.56c-.05.05-.15.14-.29.16h-.05c-.21 0-.38-.17-.4-.26-.02-.13.19-.22.4-.25.21-.03.43.01.45.13.01.06-.03.14-.11.22Zm-.14-3.17c.8.93 1.19 1.96 1.22 2.3.01.05 0 .1-.01.13.01.36-.03.66-.08.96-.04.24-.07.49-.08.77-.01.27.03.56.06.87.09.74.19 1.59-.32 2.43l.03.03c.02.03.04.05.06.08 1.99-3.13 2.68-6.76 2.05-7.56C14.94.71 12.65.91 11.55 1.14c.87.39 1.51.96 1.95 1.47Zm-5 8.54c-.14-.06-.21-.09-.38.1-.11.12-.19.22-.26.31-.31.39-.45.52-1.36.71-.19.04-.3.08-.36.11.07.05.2.11.34.14.67.17 1.6.18 2.24-.72.08-.11.05-.24.03-.31-.04-.16-.14-.29-.25-.34Zm5.91-.06c-.03-.02-.05-.04-.07-.05-.04.02-.08.03-.1.03-.23.07-.45.13-.42.72.19.18 1.4.16 2.07-.15.34-.16.58-.33.71-.46h-.01c-1.04.21-1.77.18-2.18-.09Zm-8-1.15c.35.36.81.57 1.28.57.05-.22.14-.46.24-.71l.04-.1c.05-.13.1-.25.16-.39.29-.64.65-1.44.23-3.35-.08-.37-.27-.58-.59-.66-.69-.16-1.66.36-1.87.55 0 .04.01.1.01.16.03.43.07 1.24-.06 2.17-.09.65.12 1.29.56 1.76Zm.79-4.22c0-.03.02-.07.07-.11.08-.06.25-.09.43-.06.11.02.22.05.29.09.14.08.15.16.14.21-.02.13-.22.3-.44.3h-.06a.578.578 0 0 1-.36-.22c-.02-.05-.08-.13-.07-.21Zm6.86 4.88c-.04-.05-.08-.11-.13-.17-.16-.2-.38-.48-.55-.89-.03-.06-.11-.21-.2-.38-.52-.94-1.61-2.89-.91-3.89.32-.46.96-.65 1.9-.55-.3-.87-1.64-3.46-4.72-3.51-.94-.02-1.71.27-2.29.86C6.24 3 6 4.46 5.93 5.24c.04-.02.09-.05.14-.07.23-.12.7-.32 1.21-.38.85-.09 1.41.29 1.58 1.07.45 2.08.04 3-.27 3.67-.06.12-.11.24-.15.35l-.04.1c-.09.24-.17.46-.22.65.22-.06.41.02.51.06.25.11.47.36.55.66l.03.15c.01.03.01.05.01.08-.06 2.08.02 3.97.19 4.39.26.65.65 1.22 1.76.98 1.07-.23 1.45-.62 1.63-1.65.14-.79.4-3.02.44-3.48-.03-.95.48-1.14.76-1.22Z" /></symbol>'}),Xl=(a().add(Yl),Yl),Kl=new(o())({id:"prometheus",use:"prometheus-usage",viewBox:"0 0 256 257",content:'<symbol xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" viewBox="0 0 256 257" id="prometheus"><path d="M128.001.667C57.311.667 0 57.971 0 128.664c0 70.69 57.311 127.998 128.001 127.998S256 199.354 256 128.664C256 57.97 198.689.667 128.001.667zm0 239.56c-20.112 0-36.419-13.435-36.419-30.004h72.838c0 16.566-16.306 30.004-36.419 30.004zm60.153-39.94H67.842V178.47h120.314v21.816h-.002zm-.432-33.045H68.185c-.398-.458-.804-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.716-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722-7.673-8.994-12.23-20.428-12.23-32.116 0-25.658 19.68-48.079 12.58-66.201 6.91.562 14.3 14.583 14.8 36.505 7.346-10.152 10.42-28.69 10.42-40.056 0-11.769 7.755-25.44 15.512-25.907-6.915 11.396 1.79 21.165 9.53 45.4 2.902 9.103 2.532 24.423 4.772 34.138.744-20.178 4.213-49.62 17.014-59.784-5.647 12.8.836 28.818 5.27 36.518 7.154 12.424 11.49 21.836 11.49 39.638 0 11.936-4.407 23.173-11.84 31.958 8.452-1.586 14.289-3.016 14.289-3.016l27.45-5.355c.002-.002-3.987 16.401-19.314 32.197z" /></symbol>'}),Jl=(a().add(Kl),Kl),Ql=new(o())({id:"proxySQL",use:"proxySQL-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="proxySQL"><path d="m3.26 8.13-.89-.75-.37.53.18.62 1.08-.4Zm-1.27-.21L2 7.91v-.02l-.01.03Zm1.97 4.15H2.8l.05.64.54.36.57-1Zm2.64 3.77-.01-.01h-.02l.03.01Zm-3.75-3.12v-.02l-.01-.01.01.03Zm10.72-9.05.01.01h.02l-.03-.01ZM7.03 14.63l-.89.74.45.46.64-.07-.2-1.13Zm5.72-9.96 1.09-.39-.26-.59-.63-.16-.2 1.14ZM9 3.29l.58-1L9 2.01l-.58.28.58 1ZM8.99 2l.01.01.01-.01h-.02ZM4.41 3.69h.02l.01-.01-.03.01Zm.84.98-.2-1.14-.63.16-.26.59 1.09.39Zm-2.39 5.49a.09.09 0 0 0-.07-.03l-.09.02c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.26-.05-.02-.12c0-.03-.02-.06-.04-.08Zm11.88-2.03 1.09.4.18-.62-.38-.52-.89.74ZM3.82 6.23c.03-.01.05-.03.07-.07.02-.03.03-.06.03-.09A.09.09 0 0 0 3.89 6l-.22-.14a.085.085 0 0 0-.07 0c-.03.01-.05.03-.07.07-.02.03-.03.06-.03.09s.01.05.03.07l.22.14c.02.01.04.01.07 0Zm10.79 1.93 1.02-.86a6.962 6.962 0 0 0-1.72-2.98l-1.24.45.23-1.3A6.85 6.85 0 0 0 9.66 2.3L9 3.42 8.35 2.3c-1.2.12-2.3.54-3.24 1.19l.22 1.28-1.22-.44c-.81.82-1.41 1.84-1.72 2.98l1 .84-1.22.45a6.911 6.911 0 0 0 .6 3.4h1.31l-.65 1.13c.68.94 1.59 1.71 2.65 2.21l1-.84.23 1.28c.55.14 1.12.21 1.71.21.58 0 1.14-.07 1.68-.21l.23-1.29 1.01.85c1.06-.5 1.97-1.26 2.65-2.2l-.66-1.15h1.33a6.843 6.843 0 0 0 .6-3.39l-1.25-.44Zm-3.57-5.05.12-.23.24.12-.12.23c-.01.02-.01.05.01.07.01.03.04.05.07.07.03.02.06.02.09.02s.05-.02.06-.04l.12-.23.23.12-.12.23c-.05.09-.15.1-.32.03l-.16.31-.23-.12.16-.31c-.15-.08-.2-.17-.15-.27Zm-4.48-.06.1.24c.01.02.03.04.06.04.03.01.06 0 .1-.01.03-.01.06-.03.08-.06.02-.03.02-.05.01-.07l-.1-.24.24-.1.09.2c.04.1-.02.18-.17.27.17-.06.27-.04.31.06l.09.2-.24.1-.1-.24a.068.068 0 0 0-.06-.04c-.03-.01-.06 0-.1.01-.03.01-.06.03-.08.06-.02.03-.02.05-.01.07l.1.24-.24.1-.09-.2c-.04-.1.02-.18.17-.27-.17.06-.27.04-.31-.06l-.09-.2.24-.1ZM3.38 6.31c-.04-.03-.06-.07-.06-.13s.02-.12.05-.18l.14-.22c.04-.06.09-.1.14-.13.06-.03.11-.03.15 0l.22.14c.04.03.06.07.06.13s-.02.12-.05.19l-.13.21c-.04.06-.09.1-.14.13-.06.03-.11.03-.15 0l-.23-.14Zm-.75 4.38-.1-.5a.306.306 0 0 1 .02-.19.14.14 0 0 1 .11-.1l.05-.01c.04-.01.08 0 .12.04.04.03.07.09.09.18l-.02-.12c-.01-.03 0-.07.01-.09.01-.03.03-.04.05-.05l.31-.06.05.25-.26.05c-.02 0-.04.02-.05.05-.01.03-.01.06-.01.09l.02.12.35-.07.05.25-.79.16Zm2.34 3.62-.38-.37a.335.335 0 0 1-.1-.17c-.01-.06 0-.11.03-.14l.06-.06c.03-.03.08-.05.14-.04.06.01.12.04.17.09l.19.18.24-.26.19.18-.54.59Zm8.26-.03-.45-.54-.3.25-.06-.07.51-.42.51.61-.21.17Zm-4.22.34c-3.03 0-5.49-2.46-5.49-5.49 0-3.03 2.46-5.49 5.49-5.49 3.03 0 5.49 2.46 5.49 5.49 0 3.03-2.45 5.49-5.49 5.49ZM14.56 6c-.02.01-.03.03-.03.06l-.04.35c-.01.06-.03.11-.07.13l-.04.02c-.04.02-.09.02-.15 0a.348.348 0 0 1-.14-.13l-.07-.11a.45.45 0 0 1-.06-.19c0-.05.03-.09.08-.12l.07.11c-.01 0-.01 0-.01.01-.02.01-.03.03-.03.06s.01.06.03.09c.02.04.05.07.07.08.02.01.05.01.07-.01.02-.01.03-.03.03-.06l.04-.35c.01-.06.03-.11.07-.13l.04-.02c.04-.02.09-.02.15 0 .06.03.1.07.14.13l.07.11c.08.14.08.25-.02.32l-.07-.11c.05-.04.05-.09.01-.15a.19.19 0 0 0-.07-.08c-.02-.01-.05-.02-.07-.01Zm1.05 4.28-.06.26c-.02.07-.05.13-.09.17-.05.04-.09.06-.14.05l-.43-.1c-.1-.02-.14-.12-.11-.3l-.06.26-.09-.02.05-.19c.02-.08.06-.11.12-.11l.05-.19c.02-.07.05-.13.09-.17.05-.04.09-.06.14-.05l.43.1c.05.01.08.05.1.1.02.05.02.12 0 .19ZM4.84 13.73c-.03-.01-.05 0-.07.02l-.06.06c-.02.02-.02.04-.01.07.01.03.02.06.05.08l.1.09.18-.19-.1-.09c-.03-.02-.06-.03-.09-.04Zm10.6-3.49-.43-.1c-.02-.01-.05 0-.07.02-.02.02-.04.05-.05.09a.17.17 0 0 0 0 .1c.01.03.03.05.05.05l.43.1c.02.01.05 0 .07-.02.02-.02.04-.05.05-.08a.17.17 0 0 0 0-.1c-.01-.04-.02-.06-.05-.06Zm-1.4 1.83.58 1 .54-.36.05-.64h-1.17Zm1.12.63-.01.01v.02l.01-.03Zm-4.19 1.93-.2 1.14.64.07.45-.46-.89-.75Zm.45 1.2h-.02l-.01.01.03-.01Zm4.59-7.94v.02l.01.01-.01-.03Zm-7-3.88c-2.83 0-5.12 2.29-5.12 5.12s2.29 5.12 5.12 5.12 5.12-2.29 5.12-5.12-2.29-5.12-5.12-5.12Zm-1.7 3.61c.6-.86 1.43-1.32 2.47-1.37h.09c.32 0 .64.08.88.15-.29-.07-.56-.1-.83-.1-.67 0-1.12.22-1.45.42-.54.32-.43.78-.4.87 0 0-.01 0-.01.01-.42.27-.78.84-.66 1.41.11.53.58 1.14 1.36 1.25-.04.07-.16.23-.39.23-.08 0-.16-.02-.25-.05-.31-.12-.79-.7-.99-1.34-.12-.37-.18-.95.18-1.48Zm1.24 3.91c-.67 0-1.36-.28-1.86-.75-.49-.45-.79-1.12-.88-1.84.27 1.6 1.77 2.15 1.79 2.16.16.06.32.09.49.09.32 0 .6-.11.77-.32 1.05-.23 1.66-.93 1.63-1.89.18.18.65.78 0 1.57-.53.64-1.2.98-1.94.98Zm2.35-1.99c0-.15-.18-.58-.43-.68l-.05-.02v.05c.03 1.28-1.03 1.71-1.15 1.76l-.02.01c-.12.04-.36.14-.68.14-.44 0-.87-.16-1.3-.49-.48-.36-.68-.83-.73-1.29.03.18.09.35.18.51.3.57.88.94 1.29 1.04.09.02.17.03.25.03.44 0 .58-.34.58-.34l.02-.04-.04-.01c-.6-.08-1.08-.59-1.27-1.04-.09-.2-.06-.52.06-.81.15-.35.41-.65.75-.85.34-.19.73-.3 1.13-.3.16 0 .31.02.46.05-.1-.01-.21-.02-.32-.02-.16 0-.3.01-.43.02-.03 0-.07.01-.1.01-.35.03-.88.39-.91.62-.03.23.07.27.08.27l.02.01.01-.01c.1-.08.41-.26 1.07-.26.64 0 1.24.38 1.56.98.32.61.01 1.46-.32 1.87-.17.21-.36.36-.51.46.73-.57.8-1.4.8-1.67Zm-.47 2.72c.78-.62 1.21-1.29 1.26-1.97.07-.92-.56-1.55-.57-1.56l-.07-.07.01.09c.01.09.01.18 0 .25-.18-.62-1.06-1.18-1.92-1.18-.34 0-.64.09-.87.26-.02-.12.02-.24.1-.34.2-.26.67-.42 1.23-.42.77 0 2.13.43 2.29 2.02.12 1.19-.42 2.26-1.46 2.92Z" /></symbol>'}),eu=(a().add(Ql),Ql),tu=new(o())({id:"rabbitMQ",use:"rabbitMQ-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rabbitMQ"><path d="M10.26 6.96V2.71c0-.39-.32-.71-.71-.71H8.17c-.39 0-.71.32-.71.71v4.25c0 .39-.32.71-.71.71h-.82c-.39 0-.71-.32-.71-.71V2.71c0-.39-.32-.71-.71-.71H3.2c-.39 0-.71.32-.71.71v12.58c0 .39.32.71.71.71h11.6c.39 0 .71-.32.71-.71V8.38c0-.39-.32-.71-.71-.71h-3.83c-.39 0-.71-.32-.71-.71Zm2.66 5.54c0 .38-.31.7-.7.7h-1.27c-.38 0-.7-.31-.7-.7v-1.27c0-.38.31-.7.7-.7h1.27c.38 0 .7.31.7.7v1.27Z" /></symbol>'}),nu=(a().add(tu),tu),ru=new(o())({id:"redis",use:"redis-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="redis"><path d="M1.49 5.89c.87.41 5.67 2.35 6.43 2.71.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.42-.22.63-.39.64-.55.01-.17-.21-.31-.65-.47-.85-.31-5.34-2.1-6.2-2.41-.86-.32-1.21-.3-2.22.06-1.01.36-5.78 2.23-6.63 2.57-.43.17-.63.32-.63.49.01.16.23.33.66.54Zm7.85 1.92L6.55 6.66l4-.61-1.21 1.76Zm5.81-2.65-2.33.92-.26.1-2.34-.92 2.58-1.02 2.35.92ZM8.04 2.79l1.22.48 1.14-.37-.31.74 1.06.4-.01.07-1.39.14-.34.81-.54-.9-1.62-.14-.01-.07 1.18-.43-.38-.73ZM5.66 4.46c1.16 0 2.06.36 2.06.82 0 .46-.9.82-2.06.82-1.16 0-2.06-.36-2.06-.82 0-.46.91-.82 2.06-.82Zm10.87 6.68c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57v-1.63c-.01.16-.22.33-.64.55ZM1.49 7.54c.87.41 5.67 2.35 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V5.31c-.01.02-.02.03-.04.05v.01c-.03.03-.06.06-.11.1l-.01.01c-.02.01-.04.03-.06.04l-.01.01c-.05.03-.1.07-.16.1-.01 0-.01.01-.02.01-.02.01-.05.03-.07.04-.01 0-.02.01-.03.01-.03.02-.07.04-.1.05-.01.01-.03.01-.04.02-.24.12-.7.33-1.26.57-.08.04-.17.07-.26.11-.02.01-.04.02-.07.03-.43.19-.91.39-1.4.6-.34.14-.68.29-1 .43l-.06.03-.15.06c-.58.25-1.12.49-1.53.67-.25.11-.44.21-.57.27-.4.21-.73.33-1.02.38-.1.02-.2.02-.29.02h-.12c-.05 0-.09-.01-.14-.02-.23-.03-.47-.11-.75-.25-.35-.17-1.58-.68-2.9-1.23a.694.694 0 0 0-.13-.05c-.82-.34-1.65-.68-2.3-.96-.14-.06-.28-.12-.41-.17-.31-.13-.56-.24-.7-.31-.04-.02-.07-.03-.1-.05-.01 0-.02-.01-.03-.01-.03-.01-.05-.03-.07-.04-.01 0-.01-.01-.02-.01-.03-.02-.06-.03-.09-.05h-.01c-.03-.02-.05-.03-.07-.05-.01 0-.01-.01-.02-.01-.02-.01-.04-.03-.06-.04 0 0-.01 0-.01-.01-.02-.02-.04-.03-.06-.05-.02-.01-.03-.03-.05-.04l-.01-.01c-.01-.02-.03-.03-.04-.05v1.46c.02.18.25.35.68.56Zm15.04.91c-.87.45-5.39 2.31-6.35 2.81s-1.5.5-2.25.13c-.76-.36-5.56-2.3-6.43-2.72-.43-.21-.65-.38-.66-.55v1.65c0 .16.23.34.66.55.87.41 5.67 2.36 6.43 2.72.76.36 1.29.37 2.25-.13s5.48-2.36 6.35-2.81c.44-.23.64-.41.64-.57V7.9c-.01.16-.22.33-.64.55Z" /></symbol>'}),ou=(a().add(ru),ru),iu=new(o())({id:"rethinkDB",use:"rethinkDB-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="rethinkDB"><path d="M4.08 8.83c-.13 0-.22.04-.27.12-.05.08-.08.17-.08.27h.67c0-.26-.11-.39-.32-.39ZM2.1 8.27h-.12v.74h.07c.17 0 .31-.03.4-.1.1-.07.14-.16.14-.3.02-.22-.15-.34-.49-.34ZM0 4.91v8.18h18V4.91H0Zm8.2 3.1c.04-.04.1-.06.17-.06s.12.02.17.06c.04.04.06.1.06.16s-.02.12-.06.16c-.04.04-.1.06-.17.06s-.12-.02-.16-.06a.211.211 0 0 1-.06-.16c0-.07.01-.11.05-.16Zm-4.99 2.08c0 .03-.02.05-.05.05h-.42c-.03 0-.06-.01-.07-.04l-.44-.83h-.06c-.07 0-.13 0-.18-.01v.64h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.28h-.17c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05.27-.01.5-.02.68-.02.56 0 .83.19.83.57a.635.635 0 0 1-.39.58l.37.71h.2c.03 0 .05.02.05.05v.17h.01Zm1.51-.66c-.01.01-.02.01-.05.01h-.94c.01.15.05.26.11.34.07.08.18.12.34.12.12 0 .24-.03.36-.08.03-.01.05-.01.06.02l.06.14c.01.02 0 .05-.03.06-.14.07-.32.11-.53.11-.25 0-.44-.07-.56-.21-.12-.14-.18-.33-.18-.57 0-.24.06-.43.19-.59.13-.16.31-.23.54-.23.12 0 .22.02.3.06.08.04.15.1.19.17.09.14.13.3.13.48.02.12.01.16.01.17Zm1.21.67c-.1.05-.22.07-.36.07-.19 0-.31-.05-.37-.14a.34.34 0 0 1-.07-.18c-.02-.08-.03-.17-.03-.25v-.74h-.18c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.18v-.42c0-.03.02-.05.05-.05h.26c.03 0 .05.02.05.05v.42h.32c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.32v.78c0 .1.01.17.04.21.03.04.07.06.14.06s.14-.01.2-.04c.02-.01.04 0 .05.02l.06.14v.03c.01.01 0 .02-.02.04Zm1.95-.01c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.73c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.49c.03 0 .05.02.05.05v.95c.12-.17.29-.26.5-.26.33 0 .5.17.5.52v.79h.19c.03 0 .05.02.05.05v.17h-.01Zm.95 0c0 .03-.02.05-.05.05h-.76c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.2V8.86h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05v1.24h.2c.03 0 .05.02.05.05v.15Zm1.92 0c0 .03-.02.05-.05.05H10c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.15v-.64c0-.13-.02-.22-.05-.28-.03-.06-.1-.09-.21-.09a.4.4 0 0 0-.27.09c-.07.06-.11.13-.11.21v.71h.2c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05H9c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.86H9c-.03 0-.05-.01-.05-.04v-.16c0-.03.02-.05.05-.05h.44c.03 0 .04.02.05.05l.03.18c.11-.16.27-.25.48-.26h.07c.31.01.46.19.46.52v.79h.19c.03 0 .05.02.05.05v.15h-.02Zm1.83 0c0 .03-.02.05-.05.05h-.41c-.03 0-.05-.01-.07-.04l-.48-.75h-.11v.54h.17c.03 0 .05.02.05.05v.15c0 .03-.02.05-.05.05h-.7c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17V8.08h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05h.48c.03 0 .05.02.05.05V9.1h.16l.5-.47c.02-.02.05-.03.08-.03h.25c.03 0 .05.02.05.05v.16c0 .03-.02.05-.05.05h-.2l-.35.33.44.7h.19c.03 0 .05.02.05.05v.15Zm1.75-.23c-.21.18-.5.27-.87.27h-.67c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.27-.01.48-.02.61-.02s.23 0 .3.01l.22.03c.08.02.16.04.22.07.07.03.13.07.2.12.07.05.12.11.17.18.1.16.15.36.15.61-.01.38-.12.66-.33.84Zm2.05.08c-.13.11-.31.17-.53.18-.09.01-.24.01-.44.01h-.45c-.03 0-.05-.02-.05-.05v-.15c0-.03.02-.05.05-.05h.17v-1.6h-.17c-.03 0-.05-.02-.05-.05v-.16c0-.03.02-.05.05-.05.26-.01.5-.02.73-.02.23 0 .41.04.55.13.14.09.21.21.21.37 0 .12-.04.22-.11.3-.07.09-.16.15-.26.19.16.02.29.08.38.18.09.09.13.21.13.34 0 .18-.07.32-.21.43Zm-2.86-1.67h-.2v1.62h.21c.23 0 .42-.07.55-.22.13-.15.19-.35.19-.61s-.06-.45-.18-.59c-.13-.13-.32-.2-.57-.2Zm2.2.89h-.23v.74h.14c.19 0 .33-.03.44-.09.1-.06.16-.16.16-.3-.01-.23-.17-.35-.51-.35Zm.36-.57c0-.12-.04-.2-.12-.25a.623.623 0 0 0-.33-.07h-.15v.63h.12c.33 0 .48-.1.48-.31Z" /></symbol>'}),au=(a().add(iu),iu),su=new(o())({id:"retroShare",use:"retroShare-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="retroShare"><path d="M15.31 5.69a2.428 2.428 0 0 0-2.99-2.99c-.89-.45-1.9-.7-2.96-.7-2.31 0-4.34 1.18-5.53 2.96-.22.05-.43.14-.62.25-.56.32-.96.84-1.13 1.47-.17.62-.08 1.28.24 1.84.11.19.25.37.41.52.2 3.34 2.87 6.01 6.2 6.22.15.16.33.3.53.41.37.21.79.32 1.21.32a2.427 2.427 0 0 0 2.35-1.82A6.64 6.64 0 0 0 16 8.63c0-1.05-.25-2.05-.69-2.94ZM5.34 9.35c-1.03.46-2.27.08-2.85-.92-.62-1.07-.25-2.44.82-3.05 1.07-.62 2.44-.25 3.05.82.38.65.39 1.42.09 2.06l3.02 3.06-.12.06c-.44.25-.78.62-1 1.04L5.34 9.35Zm6.65 2.42c.92.66 1.2 1.93.63 2.93a2.23 2.23 0 0 1-3.05.82 2.23 2.23 0 0 1-.82-3.05c.38-.65 1.04-1.05 1.74-1.11l1.14-4.14c.04.02.08.05.11.07.44.25.92.36 1.39.35l-1.14 4.13Zm.99-4.51c-.76 0-1.42-.38-1.83-.95L7 7.4v-.13c0-.51-.15-.98-.4-1.38l4.16-1.09a2.235 2.235 0 0 1 4.46.23c0 1.23-1 2.23-2.24 2.23Z" /></symbol>'}),lu=(a().add(su),su),uu=new(o())({id:"selected_area",use:"selected_area-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="selected_area"><path d="M3.5 5.85H2v2.1h1.5v-2.1Zm0-2.35h.25V2H2v1.75h1.5V3.5ZM7.949 2h-2.1v1.5h2.1V2ZM2 16h6.75V9.25H2V16Zm1.5-5.25h3.75v3.75H3.5v-3.75ZM14.25 2v1.5h.25v.25H16V2h-1.75Zm.25 5.95H16v-2.1h-1.5v2.1Zm0 4.2H16v-2.1h-1.5v2.1ZM10.051 16h2.1v-1.5h-2.1V16Zm4.449-1.5h-.25V16H16v-1.75h-1.5v.25ZM12.149 2h-2.1v1.5h2.1V2Z" /></symbol>'}),cu=(a().add(uu),uu),fu=new(o())({id:"sendgrid",use:"sendgrid-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="sendgrid"><path d="M2 10.16h3.84V14H2v-3.84Zm7.92 0H6.08V14h3.84v-3.84ZM2 9.92h3.84V6.08H2v3.84Zm4.08 0h3.84V6.08H6.08v3.84Zm4.08-4.08H14V2h-3.84v3.84Zm3.84.24h-3.84v3.84H14V6.08Zm-7.92-.24h3.84V2H6.08v3.84Z" /></symbol>'}),du=(a().add(fu),fu),pu=new(o())({id:"services",use:"services-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="services"><path d="M14.5 6c-1.39 0-2.57.96-2.9 2.25H9.52c.47-.53.84-1.12 1.11-1.78.12.02.24.03.37.03 1.65 0 3-1.35 3-3s-1.35-3-3-3-3 1.35-3 3c0 1 .49 1.88 1.24 2.43a5.11 5.11 0 0 1-1.97 2.32H6.4A3.003 3.003 0 0 0 3.5 6c-1.65 0-3 1.35-3 3s1.35 3 3 3c1.39 0 2.57-.96 2.9-2.25h.87c.9.58 1.55 1.35 1.97 2.32C8.49 12.62 8 13.5 8 14.5c0 1.65 1.35 3 3 3s3-1.35 3-3-1.35-3-3-3c-.13 0-.25.01-.37.03-.27-.66-.64-1.25-1.11-1.78h2.08A3.003 3.003 0 0 0 14.5 12c1.65 0 3-1.35 3-3s-1.35-3-3-3Zm-4.97 8.22c.01-.08.04-.16.07-.23.02-.07.06-.14.1-.21v-.01c.02-.04.05-.09.08-.13a.53.53 0 0 1 .1-.12c.01-.02.03-.04.05-.06.02-.03.04-.05.07-.06a.7.7 0 0 1 .16-.14c.08-.05.16-.1.25-.14.1-.04.2-.07.31-.09.09-.02.19-.03.28-.03.03 0 .07 0 .1.01.1 0 .19.02.28.05.08.02.16.04.23.08.07.03.14.06.21.11.01 0 .01.01.02.01.06.04.13.09.18.15.06.05.11.11.15.17.21.25.33.56.33.92 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5c0-.1.01-.19.03-.28ZM9.5 3.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5c0 .8-.62 1.44-1.4 1.49-.03.01-.07.01-.1.01-.56 0-1.06-.31-1.3-.77-.13-.22-.2-.46-.2-.73Zm5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5S16 8.17 16 9s-.67 1.5-1.5 1.5Z" /></symbol>'}),hu=(a().add(pu),pu),gu=new(o())({id:"smartdlog",use:"smartdlog-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="smartdlog"><path d="M15 14.022H1V2h14v12.022Zm-13.48-.52h12.96V2.52H1.52v10.982Z" /><path d="M15 2.52H1v.99h14v-.99ZM9.848 4.602h-4.25v.52h4.25v-.52ZM12.103 5.947H5.597v.52h6.506v-.52ZM11.123 7.335H5.597v.52h5.526v-.52ZM12.97 8.809H5.597v.52h7.373v-.52ZM10.715 10.327H5.597v.52h5.118v-.52ZM12.016 11.671H5.684v.52h6.332v-.52ZM4.816 4.602H2.561v.52h2.255v-.52ZM4.816 5.947H2.561v.52h2.255v-.52Z" /><path d="M4.816 5.947H2.561v.52h2.255v-.52ZM4.816 7.291H2.561v.52h2.255v-.52ZM4.816 8.636H2.561v.52h2.255v-.52ZM4.816 10.327H2.561v.52h2.255v-.52ZM4.816 11.671H2.561v.52h2.255v-.52Z" /></symbol>'}),vu=(a().add(gu),gu),mu=new(o())({id:"solr",use:"solr-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="solr"><path d="M8.99 2c-.95 0-1.86.19-2.69.54l-.92 7.79L10 2.07A8.57 8.57 0 0 0 8.99 2ZM3.21 5.03l1.02 5.12 1.45-7.32c-.99.52-1.83 1.28-2.47 2.2Zm7.2-2.88-4.02 8.71 7.45-6.89a6.857 6.857 0 0 0-3.43-1.82ZM2 8.38l1.09 1.95-.5-4.2c-.31.7-.52 1.46-.59 2.25Zm13.94-.28-8.21 4.59 7.7-.91c.37-.85.57-1.78.57-2.77 0-.31-.02-.61-.06-.91Zm-3.03 6.73c.92-.62 1.68-1.45 2.22-2.43l-7.22 1.43 5 1ZM9.57 16c.78-.06 1.52-.25 2.2-.55l-4.04-.48L9.57 16ZM14.1 4.22l-6.89 7.45 8.66-4a6.965 6.965 0 0 0-1.77-3.45Z" /></symbol>'}),yu=(a().add(mu),mu),bu=new(o())({id:"squid",use:"squid-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="squid"><path d="M17 3.1c-.03-.43-.36-.65-.54-.81-.18-.16-.41-.47.03-.7-1.9-.15-5.12-.31-8.95 1.79C4.36 5.13 3.3 7.43 3.03 8.15c-.79.2-1.37.92-1.37 1.77 0 .16.02.32.06.48-.85.67-.88 2.89-.5 3.52.4.66 1.15 1.35 2.59 1.24 1.44-.11 2.27.58 2.39 1.33 0 0 .19-.72.04-1.29-.15-.16-.4-.34-.75-.48.04.03.07.08.07.14 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.02c-.09-.03-.18-.06-.28-.09-.13-.04-.27-.08-.41-.13.05.03.09.08.09.15 0 .09-.08.17-.17.17-.09 0-.17-.08-.17-.17 0-.09.08-.17.17-.17h.03c-.44-.16-.9-.4-1.19-.75-.39-.33-.44-.8-.32-1 .02.18.23.56.47.88.2.24.64.58 1.56.84.11.03.41.12.71.29.14.08.26.16.36.24.11.03.29.06.55.06.5-.01 2.03.03 2.57.95-.18-1.26-.9-1.8-1.69-2.06-.11.04-.23.07-.35.09.05.04.09.11.09.18 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.06 0-.12.01-.18.01-.12 0-.25-.01-.39-.02.01.03.02.06.02.1 0 .13-.1.23-.23.23s-.23-.1-.23-.23c0-.05.02-.1.05-.14-.02 0-.04-.01-.06-.01a2.17 2.17 0 0 1-.42-.11c-.02.13-.13.23-.26.23-.15 0-.26-.12-.26-.26 0-.07.03-.14.08-.19-.17-.11-.34-.25-.49-.4a.32.32 0 0 1-.29.19c-.18 0-.32-.14-.32-.32 0-.16.11-.29.26-.32-.13-.2-.24-.42-.33-.65a.29.29 0 0 1-.24.14.28.28 0 1 1 0-.56c.05 0 .11.02.15.04l.14-.03c.1.41.27.78.5 1.1.08.04.14.11.16.2.19.22.42.41.66.55.09 0 .17.04.22.11.16.07.32.12.49.14.89.14 1.4.09 1.96-.19.14-.12.25-.25.34-.36.17-.22.91-1.02 1.49-.99-.09-.31-.41-.52-.77-.55-.36-.03-.7.17-.95.38s-.82.61-1.31.41c-.49-.2-1.08-.69-1.14-1.4-.06-.71.56-1.19.56-1.19.68.31 1.88.24 2.89-.08 1.01-.32 2.93-1.31 3.54-1.9.61-.59 1.03-1.23 1.2-1.87.16-.64.48-.72.56-.67.09.05.28.31.52.31s.91-.27.88-1.12c-.03-.59-.14-.67.14-.83.19-.11.42-.09.58-.07.11-.01.49-.18.46-.61ZM6.03 15.39c.08 0 .15.07.15.15 0 .08-.07.15-.15.15-.08 0-.15-.07-.15-.15 0-.08.07-.15.15-.15Zm-2.29-1.2c.13 0 .24.11.24.24s-.11.24-.24.24-.24-.11-.24-.24.1-.24.24-.24Zm4.88.48c.1 0 .18.08.18.18 0 .1-.08.18-.18.18a.18.18 0 0 1-.18-.18c0-.1.08-.18.18-.18Zm-.6-.44c.11 0 .2.09.2.2a.2.2 0 0 1-.2.2.2.2 0 0 1-.2-.2c0-.11.09-.2.2-.2Zm1.2-2.25c.07 0 .12.05.12.12 0 .07-.05.12-.12.12-.07 0-.12-.05-.12-.12 0-.07.05-.12.12-.12Zm-.46.08c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16c0-.08.08-.16.16-.16Zm-.61.29c.09 0 .16.07.16.16s-.07.16-.16.16-.16-.07-.16-.16.07-.16.16-.16Zm-.81.32c.12 0 .21.1.21.21 0 .12-.1.21-.21.21-.12 0-.21-.1-.21-.21-.01-.11.09-.21.21-.21Zm-.85 0a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58Zm6.53-10.88c.18 0 .33.15.33.33 0 .18-.15.33-.33.33-.18 0-.33-.15-.33-.33 0-.18.14-.33.33-.33Zm-2.65.57c.25 0 .46.21.46.46s-.21.46-.46.46-.46-.21-.46-.46.21-.46.46-.46Zm-1.63.7a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12Zm-1.48.86a.56.56 0 1 1 0 1.12.56.56 0 1 1 0-1.12Zm-2.4 2.05c.17 0 .31.14.31.31 0 .17-.14.32-.31.32-.17 0-.31-.14-.31-.31 0-.17.13-.32.31-.32Zm-2.53 7.28c-.17 0-.3-.13-.3-.3 0-.17.13-.3.3-.3.17 0 .3.13.3.3a.3.3 0 0 1-.3.3Zm-.3-1.34c0-.18.14-.32.32-.32s.32.14.32.32-.14.32-.32.32a.329.329 0 0 1-.32-.32Zm1.12 1.99c0 .15-.12.27-.27.27-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27Zm.35-2.43c-.86 0-1.55-.69-1.55-1.55 0-.86.69-1.55 1.55-1.55.86 0 1.55.69 1.55 1.55 0 .86-.7 1.55-1.55 1.55Zm1.56.25c-.17 0-.31-.14-.31-.31 0-.17.14-.31.31-.31.17 0 .31.14.31.31 0 .17-.14.31-.31.31Zm.57.34a.29.29 0 1 1 0 .58.29.29 0 0 1 0-.58Zm.15-3.61c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27Zm.14-2.55c-.25 0-.46-.21-.46-.46s.21-.46.46-.46.46.21.46.46-.21.46-.46.46Zm.61 3.82c-.15 0-.27-.12-.27-.27 0-.15.12-.27.27-.27.15 0 .27.12.27.27 0 .15-.12.27-.27.27Zm.38-1.81c-.23 0-.42-.19-.42-.42 0-.23.19-.42.42-.42.23 0 .42.19.42.42 0 .23-.19.42-.42.42Zm.78 1.9c-.22 0-.41-.18-.41-.41 0-.22.18-.41.41-.41.22 0 .41.18.41.41 0 .23-.18.41-.41.41Zm.2-3.17a.58.58 0 1 1 1.16.001.58.58 0 0 1-1.16 0ZM9.2 9.4a.49.49 0 1 1 .002-.981.49.49 0 0 1-.002.981Zm.4-3.77c0-.36.29-.65.65-.65.36 0 .65.29.65.65 0 .36-.29.65-.65.65-.36 0-.65-.29-.65-.65Zm1.1 3.14c-.31 0-.55-.25-.55-.55 0-.3.25-.55.55-.55.31 0 .55.25.55.55 0 .3-.25.55-.55.55Zm.63-6.32a.37.37 0 1 1 .738-.002.37.37 0 0 1-.738.002Zm.7 1.76c.3 0 .53.24.53.53 0 .3-.24.53-.53.53-.3 0-.53-.24-.53-.53 0-.29.24-.53.53-.53Zm.1 3.49c-.29 0-.52-.23-.52-.52 0-.29.23-.52.52-.52.29 0 .52.23.52.52 0 .29-.23.52-.52.52Zm1.02-1.1a.47.47 0 1 1-.001-.939.47.47 0 0 1 .001.94Zm.28-2.25a.39.39 0 1 1 .39-.39c0 .22-.17.39-.39.39Zm.59 1.06c-.13 0-.23-.1-.23-.23s.1-.23.23-.23.23.1.23.23-.1.23-.23.23Zm.39-1.75c-.14 0-.26-.11-.26-.26 0-.14.11-.26.26-.26.15 0 .26.11.26.26 0 .14-.12.26-.26.26ZM3.66 8.68c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Z" /></symbol>'}),wu=(a().add(bu),bu),_u=new(o())({id:"summary_statistic",use:"summary_statistic-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="summary_statistic"><path d="M3.5 11.666V6.334A2.837 2.837 0 0 1 6.334 3.5h5.332A2.837 2.837 0 0 1 14.5 6.334V11H16V6.334A4.333 4.333 0 0 0 11.666 2H6.334A4.333 4.333 0 0 0 2 6.334v5.332A4.333 4.333 0 0 0 6.334 16H11v-1.5H6.334A2.837 2.837 0 0 1 3.5 11.666ZM9.75 12V8h-1.5v4h1.5ZM16 14.5V12h-1.5v2.5H12V16h2.5v2H16v-2h2v-1.5h-2ZM5.25 12h1.5V9h-1.5v3Zm7.5-6h-1.5v6h1.5V6Z" /></symbol>'}),xu=(a().add(_u),_u),Su=new(o())({id:"systemd",use:"systemd-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="systemd"><path d="M2 6v3.628h1.395V9.07h-.837V6.558h.837V6H2Zm10.605 0v.558h.837V9.07h-.837v.558H14V6h-1.395ZM8.28 7.814l2.511-1.396V9.21L8.28 7.814ZM6.187 9.07a1.256 1.256 0 1 0 0-2.512 1.256 1.256 0 0 0 0 2.512Z" /></symbol>'}),Ou=(a().add(Su),Su),Cu=new(o())({id:"traefik",use:"traefik-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="traefik"><path d="M4.93 5.87c-.07.12-.21.2-.35.2-.07 0-.14-.02-.21-.05-.03.39-.03.78-.01 1.18l4.38 1.07.02.1c.01.03.11.64.16 1.41.05-.77.16-1.38.16-1.41l.02-.1 4.17-1.07c-.01-.39-.04-.78-.08-1.16-.06.03-.12.04-.19.04-.15 0-.28-.07-.35-.19-.01-.02-.16-.21-.35-.52-.06.46-.24.88-.57 1.03l-1.76-.2c.09.14.11.29-.04.45-.13.14-.25.14-.39.11.01.19.04.38 0 .6-.06.11-.17.12-.27.16a.388.388 0 0 1-.3-.24c-.03-.24 0-.47.02-.7h-.02c-.01.25-.05.5-.02.75-.46.61-.74-.15-.6-.6-.17.04-.34.03-.44-.16a.425.425 0 0 1-.04-.31l-1.95.12c-.36-.06-.58-.47-.66-.97-.17.26-.29.41-.33.46Zm.67-.98c.39 1.51 2.81 1.13 2.72-.39-.03-.43-.21-.74-.48-.93H9.4c-.26.25-.43.6-.41 1.04.28 1.63 2.81 1.32 2.77-.18-.21-.41-.41-.88-.57-1.39-.03-.1-.03-.2-.01-.29-.73-.31-1.59-.38-2.48-.38-.79.06-1.55.18-2.22.44.02.08.01.17-.02.26-.24.71-.57 1.34-.86 1.82Zm4.09-.79c.22 0 .4.2.4.44s-.18.44-.4.44c-.22 0-.4-.2-.4-.44s.18-.44.4-.44Zm-3.02.55c0 .24-.18.44-.41.44-.23 0-.41-.2-.41-.44s.18-.44.41-.44c.23 0 .41.2.41.44Zm3.2.1c.05 0 .09-.05.09-.11s-.04-.11-.09-.11c-.05 0-.1.05-.1.11.01.06.05.11.1.11Zm-3.42.11c.05 0 .1-.05.1-.11s-.04-.11-.1-.11c-.05 0-.1.05-.1.11s.05.11.1.11Zm-2.27.81h.01c.02.05.06.09.11.12l.14.08c.13.07.28.03.35-.09 0 0 .98-1.22 1.51-2.74.05-.14.02-.27-.11-.34l-.14-.08a.25.25 0 0 0-.17-.03h-.01c-.5-.27-1.11-.16-1.59.22.2-.31.47-.64.8-.96.99-.94 6.99-.7 7.6 0 .23.26.45.62.63.95-.47-.37-1.06-.48-1.55-.23h-.01a.27.27 0 0 0-.17.03l-.15.08c-.13.07-.16.19-.12.34.48 1.54 1.43 2.79 1.43 2.79.06.12.22.17.35.1l.15-.08c.05-.03.09-.07.12-.12h.01c.58-.3.83-1.02.67-1.74.1-.06.07-.3-.05-.54-.11-.21-.26-.36-.36-.36-.19-.45-.51-1.09-.97-1.51-.76-.7-6.68-.73-7.59 0-.53.43-.9 1.04-1.12 1.48-.1.03-.24.16-.34.35-.13.24-.16.48-.07.54-.17.7.07 1.42.64 1.74Zm4.48-.39c-.02.02-.05.07-.1.14.2-.1.47-.11.67-.03a.63.63 0 0 0-.08-.11c-.11-.08-.4-.07-.49 0Zm5.2 6.79c-.01-.12-.03-.25-.04-.37-.05.01-2.53.66-4.68.42.02.19.04.37.05.53v-.06s2.42.17 4.67-.52Zm-4.45 1.37c-.01-.02-.02-.03-.03-.05.1.17.25.35.35.41.13.09.66.24 1.4.27.74.03 1.59-.13 2.12-.43s.7-.63.7-.63v-.02c-.09.03-2.41.69-4.54.45Zm-.07-.1c-.03-.06-.06-.13-.08-.21.01.05.02.09.03.11.02.03.04.06.05.1Zm6.6-7.15-.08-.04c-.1-.05-.23.01-.3.14l-1.47 2.78-.05.09v.01l-.25.46c-.17-.05-.35-.07-.52-.06l.02.5c.01.19.05.18.15.22l-.11.2c-.08-.11-.14-.27-.13-.61.03-.77.32-.46.31-.95l.01-1.63-4.3 1.1s-.17.92-.18 1.91c0 .3.01.66.03 1.03 0-.02 0-.04.01-.06 0 0 2.27.22 4.53-.47.06 0 .12-.02.14-.07l.12-.24c.16.04.31 0 .32-.25.17-.08.1-.24 0-.36l.26-.5v-.01l1.52-2.86c.09-.14.07-.28-.03-.33ZM4.29 10.86l.07-.03c2.2.65 4.38.44 4.38.44v.02c.02-.35.03-.7.03-.99-.01-1-.17-1.91-.17-1.91l-4.51-1.1.1 1.63c-.01.49.46.18.49.95.01.45-.08.59-.2.7l-.11-.23c.1-.04.14-.02.15-.22l.02-.5c-.16-.01-.33 0-.49.05l-.21-.44s0-.01-.01-.01L2.44 6.28c-.06-.13-.19-.2-.29-.15l-.08.04c-.1.05-.13.19-.07.32l1.39 2.93c0 .01.01.02.02.03l.22.46c-.11.12-.2.3-.02.39.01.25.16.29.32.25l.12.26c.03.07.14.1.24.05Zm8.94 2.97c-.5.25-1.22.41-1.92.41h-.19c-.71-.03-1.29-.18-1.48-.3-.17-.11-.4-.42-.49-.64-.08-.2-.19-1.26-.23-2.18-.04.92-.15 1.98-.23 2.18-.09.23-.32.53-.49.64-.18.12-.76.27-1.46.3h-.19c-.73 0-1.49-.18-1.99-.46-.05-.03-.09-.06-.14-.08.07.51.21 1 .48 1.42.15.24.34.45.55.63-.02 0-.04 0-.06.01-.3.22-.89.55-.6 1 .07.07.07.03.12.05.03.05.15.29.45.11.33-.18.55-.53.94-.59-.02-.02-.04-.05-.06-.07.69.33 1.5.47 2.21.49 1.02.04 2.17-.1 3.09-.6.42.14.69 1.05 1.17.61.5-.3-.1-.92-.44-1.13.24-.22.44-.49.59-.8.17-.31.28-.65.37-1Zm-4.55-1.71c-2.13.23-4.6-.42-4.62-.42-.01.12-.03.25-.04.37 2.22.69 4.6.52 4.61.52.02-.14.04-.3.05-.47Zm-.13 1.07c-.01.02-.02.05-.02.07 0-.01.01-.02.01-.02 0-.02 0-.03.01-.05Zm-1.82.89c.73-.03 1.25-.19 1.38-.27.09-.06.22-.21.32-.36-2.14.24-4.46-.44-4.48-.45v.02s.17.33.69.63c.52.3 1.36.46 2.09.43Z" /></symbol>'}),Eu=(a().add(Cu),Cu),Au=new(o())({id:"varnish",use:"varnish-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="varnish"><path d="M13.165 8.533a3.766 3.766 0 1 0 0-7.531 3.766 3.766 0 0 0 0 7.531ZM7.197 17.001a2.72 2.72 0 1 0 0-5.44 2.72 2.72 0 0 0 0 5.44ZM2.638 9.656a1.564 1.564 0 1 0 0-3.127 1.564 1.564 0 0 0 0 3.127Z" /></symbol>'}),ku=(a().add(Au),Au),Mu=new(o())({id:"webLog",use:"webLog-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog"><path d="M8.26 15.96c.24.03.49.04.74.04s.5-.01.74-.04l1.34-1.36H6.92l1.34 1.36ZM6.22 13.9h5.55l1.38-1.4H4.84l1.38 1.4Zm-2.07-2.1h9.71l1.38-1.4H2.76l1.39 1.4ZM16 8.82v-.18c0-.03 0-.06-.01-.09 0-.03 0-.06-.01-.09 0-.06-.01-.11-.01-.17a7.03 7.03 0 0 0-2.16-4.39A7.046 7.046 0 0 0 9 2c-1.79 0-3.5.68-4.8 1.91A6.93 6.93 0 0 0 2.04 8.3c-.01.06-.01.11-.01.17 0 .03 0 .06-.01.08 0 .03 0 .06-.01.09V9c0 .24.01.47.04.7h13.93c.02-.23.04-.46.04-.7-.02-.06-.02-.12-.02-.18ZM8.3 8.3H3.44c.13-1.05.54-2.02 1.21-2.84a7.19 7.19 0 0 0 3.64 1.4V8.3h.01Zm0-2.84c-.94-.11-1.83-.45-2.61-.97.77-.56 1.66-.92 2.61-1.04v2.01Zm1.4-2.02c.95.12 1.84.47 2.61 1.04-.78.53-1.67.86-2.61.97V3.44Zm0 4.86V6.87a7.28 7.28 0 0 0 3.64-1.4c.67.82 1.08 1.79 1.21 2.84H9.7V8.3Z" /></symbol>'}),Pu=(a().add(Mu),Mu),Ru=new(o())({id:"webLog_nginx",use:"webLog_nginx-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="webLog_nginx"><path d="m11.06 1.94-.44-.44H3.5v15h11V5.38l-3.44-3.44Zm-.31 1.81 1.5 1.5h-1.5v-1.5ZM13 15H5V3h4.25v3.75H13V15ZM6.97 7.93c-.29.11-.47.39-.47.7v3.75c0 .41.34.75.75.75s.75-.34.75-.75v-1.85l2.2 2.36c.14.16.34.24.55.24.09 0 .19-.02.28-.05.29-.11.47-.39.47-.7V8.62c0-.41-.34-.75-.75-.75s-.75.34-.75.75v1.85L7.8 8.11a.754.754 0 0 0-.83-.18Z" /></symbol>'}),Tu=(a().add(Ru),Ru),Iu=new(o())({id:"x509_check",use:"x509_check-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="x509_check"><path d="M12.79 9.42c-.02.46-.07.85-.16 1.18h1.23c.04.22.13.45.45.45.5 0 .53-.88.54-1.49-.21.27-.56.36-.91.36-.48 0-.88-.17-1.15-.5Zm1.45 2.64c-1.2 0-1.59-.65-1.71-1.15-.31.81-.88 1.15-1.71 1.15-.77 0-1.33-.31-1.65-1.06-.27.67-.86 1.06-1.82 1.06-1.29 0-1.82-.71-1.87-1.67h1.38c.03.41.16.66.51.66.42 0 .53-.34.53-.97 0-.63-.13-.93-.55-.93-.32 0-.46.19-.54.51l-1.25-.13c.1-.66.29-2.5.35-3.22h3.27L9 7.44H7.06c-.02.25-.08.74-.1.95.18-.16.47-.27.9-.27.45 0 .79.15 1.04.4.13-1.72.89-2.31 1.96-2.31.77 0 1.37.3 1.69 1.12.26-.7.88-1.12 1.77-1.12.72 0 1.22.24 1.54.71C14.96 4.07 12.3 2 9.16 2 5.83 2 3.04 4.33 2.33 7.45h.81c.23.56.39 1.09.47 1.35h.03c.11-.33.3-.88.5-1.35h1.51L4.49 9.57l1.16 2.4H4.08c-.24-.63-.39-1.13-.48-1.4h-.03c-.08.25-.3.92-.49 1.4h-.27A7.013 7.013 0 0 0 9.16 16a7 7 0 0 0 6.56-4.56c-.32.41-.79.62-1.48.62ZM2.16 9c0 .5.05.98.15 1.45l.36-.72-.5-1.04c-.01.1-.01.21-.01.31Zm12.18-.11c.31 0 .5-.2.5-.77 0-.59-.11-.91-.51-.91-.34 0-.5.27-.5.84 0 .59.18.84.51.84Zm-3.85.6-.63-.63-.49.49 1.12 1.12 1.68-1.68-.49-.49-1.19 1.19Z" /></symbol>'}),Bu=(a().add(Iu),Iu),ju=new(o())({id:"xen",use:"xen-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="xen"><path d="M10.22 6.47H7.17L5.4 7.82 4.37 6.47H1.92l1.94 2.54L0 11.97h3.06l1.93-1.48 1.13 1.48h2.45L6.53 9.3l3.69-2.83Zm-5.24 5.94a3.3 3.3 0 0 1-1.65-.43l-.21.16H1.58c.85.91 2.05 1.49 3.4 1.49s2.55-.57 3.4-1.49H6.29c-.4.17-.84.27-1.31.27Zm5.72-4.84c-1.78 0-2.57.97-2.57 1.85 0 .73.52 1.42 2.06 1.42 1.42 0 2.1-.51 2.36-1.05h-1.56c-.12.16-.29.26-.66.26-.43 0-.61-.2-.61-.48 0-.03 0-.07.01-.1h2.96c.07-.18.1-.34.1-.56-.01-.74-.63-1.34-2.09-1.34Zm.56 1.25H9.91c.09-.3.35-.5.77-.5.39 0 .59.14.59.4.01.02 0 .06-.01.1Zm-9.42 1.51a3.406 3.406 0 0 1 .32-3.25l-.6-.79H2.9a3.419 3.419 0 0 1 4.17.02l.03-.02h1.63a4.634 4.634 0 0 0-3.76-1.92C2.42 4.37.35 6.44.35 9c0 .75.18 1.47.5 2.1l.99-.77Zm6.49-1.97c.24-.31.59-.58 1.07-.76-.02-.08-.05-.15-.08-.23l-1.03.79c.01.08.03.14.04.2Zm8.44-.79c-.71 0-1.11.22-1.36.42.02-.09.05-.28.06-.34h-1.58c-.05.21-.11.45-.22.85l-.61 2.25h1.62l.43-1.6c.13-.5.4-.72.81-.72.42 0 .46.22.38.52l-.49 1.8h1.62l.51-1.89c.23-.85-.24-1.29-1.17-1.29Zm-8.6 2.62c-.08.21-.18.41-.29.59l.78 1.02c.21-.28.4-.59.54-.91-.29-.08-.53-.2-.72-.36a1.26 1.26 0 0 1-.31-.34Z" /></symbol>'}),Du=(a().add(ju),ju),Lu=new(o())({id:"settings",use:"settings-usage",viewBox:"0 0 17 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 15" id="settings"><path d="M14.514 7.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v5.86c-1.29.34-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89Zm-.17 4.27c-.18.08-.38.12-.58.12-.2 0-.4-.04-.58-.12-.54-.23-.92-.76-.92-1.38a1.36 1.36 0 0 1 .08-.45c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36-.02.62-.4 1.15-.94 1.38ZM4.014 5.41V1.55c0-.41-.34-.75-.75-.75s-.75.34-.75.75v3.86c-1.29.33-2.25 1.5-2.25 2.89 0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.39-.96-2.56-2.25-2.89Zm.7 3.25-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52-.22.13-.48.21-.75.21s-.53-.08-.75-.21c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.03-.12-.05-.24-.05-.36s.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.02.25-.05.36Zm4.52-7.26a.739.739 0 0 0-.72-.6c-.36 0-.65.26-.72.6a2.982 2.982 0 0 0-2.28 2.9c0 1.65 1.35 3 3 3s3-1.35 3-3c0-1.41-.97-2.58-2.28-2.9Zm.73 3.26-.03.09c-.03.1-.07.19-.12.27-.01.02-.02.03-.03.05-.13.22-.31.39-.53.52a1.42 1.42 0 0 1-1.49 0c-.22-.13-.4-.3-.53-.52-.01-.02-.02-.03-.03-.05-.05-.09-.09-.18-.12-.27l-.03-.09c-.02-.11-.04-.23-.04-.36 0-.13.02-.25.05-.36l.03-.09c.03-.1.07-.19.12-.27.01-.02.02-.03.03-.05.13-.22.31-.39.53-.52.22-.13.48-.21.75-.21s.53.08.75.21c.22.13.4.3.53.52.01.02.02.03.03.05a1.595 1.595 0 0 1 .15.36c.03.12.05.24.05.36s-.04.25-.07.36Zm-7.45 7.05v2.34c0 .41.34.75.75.75s.75-.34.75-.75v-2.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09Zm5.25-4v6.34c0 .41.34.75.75.75s.75-.34.75-.75V7.71c-.24.05-.49.09-.75.09s-.51-.04-.75-.09Zm5.25 6v.34c0 .41.34.75.75.75s.75-.34.75-.75v-.34c-.24.06-.49.09-.75.09s-.51-.04-.75-.09Z" /></symbol>'}),Zu=(a().add(Lu),Lu),Nu=new(o())({id:"settings_h",use:"settings_h-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="settings_h"><path d="M.75 4.5h5.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3C8.11.75 6.94 1.71 6.61 3H.75C.34 3 0 3.34 0 3.75s.34.75.75.75ZM8.21 3c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.15-.92 1.38-.18.08-.38.12-.58.12a1.361 1.361 0 0 1-.45-.08c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53C8.08 4.26 8 4 8 3.73s.08-.51.21-.73Zm5.04 1.5c.41 0 .75-.34.75-.75S13.66 3 13.25 3h-.34c.05.24.09.49.09.75s-.04.51-.09.75h.34ZM4.5 7.25c-1.39 0-2.56.96-2.89 2.25H.75c-.41 0-.75.34-.75.75s.34.75.75.75h.86c.34 1.29 1.5 2.25 2.89 2.25 1.65 0 3-1.35 3-3s-1.35-3-3-3Zm.58 4.38c-.18.08-.38.12-.58.12-.13 0-.25-.02-.36-.05l-.09-.03c-.1-.03-.19-.07-.27-.12-.02-.01-.03-.02-.05-.03-.22-.13-.39-.31-.52-.53-.13-.22-.21-.48-.21-.75s.08-.53.21-.75c.13-.22.3-.4.52-.53.02-.01.03-.02.05-.03.09-.05.18-.09.27-.12l.09-.03a1.4 1.4 0 0 1 .94.07c.54.23.92.76.92 1.38 0 .62-.38 1.17-.92 1.4Zm8.17-2.13H7.91c.05.24.09.49.09.75s-.04.51-.09.75h5.34c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z" /></symbol>'}),Fu=(a().add(Nu),Nu),Hu=new(o())({id:"sign_in",use:"sign_in-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sign_in"><g clip-path="url(#sign_in_a)"><path d="M6.76 4.231c.38-.308.994-.308 1.374 0L14 9.001l-5.867 4.768c-.19.154-.438.231-.687.231-.248 0-.497-.078-.686-.232-.38-.308-.38-.808 0-1.116l3.523-2.863H.97C.435 9.79 0 9.436 0 9c0-.435.435-.788.971-.788h9.312L6.76 5.348c-.38-.308-.38-.808 0-1.117Z" /><path d="M2.6 3.88a.759.759 0 0 1-.07-1.12A8.944 8.944 0 0 1 9 0c4.97 0 8.99 4.03 8.99 9S13.97 18 9 18c-2.54 0-4.84-1.06-6.47-2.76a.759.759 0 0 1 .07-1.12c.3-.23.73-.22.99.05 1.69 1.78 4.25 2.73 7 2.16 2.89-.59 5.2-2.93 5.77-5.82.1-.51.14-1.02.14-1.51s-.04-1-.14-1.51c-.57-2.89-2.89-5.22-5.77-5.82-2.74-.57-5.3.38-7 2.16-.26.28-.7.29-.99.05Z" /></g><defs><clipPath id="sign_in_a"><path d="M0 18V0h18v18z" /></clipPath></defs></symbol>'}),Vu=(a().add(Hu),Hu),zu=new(o())({id:"sorting_vertical",use:"sorting_vertical-usage",viewBox:"0 0 19 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 18" id="sorting_vertical"><path d="M16.736 0H2.908C1.822 0 .933.9.933 2v14c0 1.1.889 2 1.975 2h13.828c1.086 0 1.975-.9 1.975-2V2c0-1.1-.889-2-1.975-2ZM6.859 14H4.883V7H6.86v7Zm3.95 0H8.835V4h1.976v10Zm3.951 0h-1.975v-4h1.975v4Z" /></symbol>'}),Uu=(a().add(zu),zu),Gu=new(o())({id:"sorting_asc",use:"sorting_asc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_asc"><path d="M.8 5.2c.4.4 1 .4 1.4 0l.8-.8V8c0 .6.4 1 1 1s1-.4 1-1V4.4l.8.8c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4L4 .6.8 3.8c-.4.4-.4 1 0 1.4Z" /></symbol>'}),Wu=(a().add(Gu),Gu),qu=n(30871),$u=new(o())({id:"sorting_desc",use:"sorting_desc-usage",viewBox:"0 0 8 9",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 9" id="sorting_desc"><path d="M7.2 3.8c-.4-.4-1-.4-1.4 0l-.8.8V1c0-.6-.4-1-1-1S3 .4 3 1v3.6l-.8-.8c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L4 8.4l3.2-3.2c.4-.4.4-1 0-1.4Z" /></symbol>'}),Yu=(a().add($u),$u),Xu=n(35211),Ku=new(o())({id:"sort_indicator",use:"sort_indicator-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_indicator"><path d="M6 2.44 3.47 4.97c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l.72-.72V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l.72.72c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06L6 2.44ZM12 15.75l2.53-2.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-.72.72V3.19c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-.72-.72a.742.742 0 0 0-.53-.22c-.19 0-.38.07-.53.22-.29.29-.29.77 0 1.06L12 15.75Z" /></symbol>'}),Ju=(a().add(Ku),Ku),Qu=new(o())({id:"space",use:"space-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="space"><path fill-rule="evenodd" d="M11.985 2a9.92 9.92 0 0 1 7.06 2.925 9.92 9.92 0 0 1 2.925 7.06 9.92 9.92 0 0 1-2.924 7.06 9.92 9.92 0 0 1-7.06 2.925 9.92 9.92 0 0 1-7.061-2.924A9.92 9.92 0 0 1 2 11.986c0-1.346.263-2.652.782-3.881a.58.58 0 0 1 1.068.45 8.771 8.771 0 0 0-.691 3.43c0 4.867 3.96 8.826 8.826 8.826 4.867 0 8.826-3.959 8.826-8.826 0-4.867-3.959-8.826-8.826-8.826a8.788 8.788 0 0 0-3.179.59.58.58 0 0 1-.417-1.082A9.942 9.942 0 0 1 11.985 2Zm.195 13.963c.895 0 1.623.727 1.623 1.622 0 .894-.728 1.622-1.623 1.622a1.624 1.624 0 0 1-1.622-1.622c0-.895.728-1.622 1.622-1.622Zm0 1.158a.464.464 0 1 0 .002.928.464.464 0 0 0-.002-.928Zm-.195-11.315a6.186 6.186 0 0 1 6.18 6.18 6.176 6.176 0 0 1-2.725 5.122.58.58 0 0 1-.648-.96 5.02 5.02 0 1 0-5.332.177.58.58 0 0 1-.584 1 6.175 6.175 0 0 1-3.07-5.34 6.186 6.186 0 0 1 6.18-6.179Zm0 2.698c1.92 0 3.481 1.562 3.481 3.481 0 1.92-1.561 3.481-3.48 3.481a3.485 3.485 0 0 1-3.482-3.48c0-1.92 1.562-3.482 3.481-3.482Zm0 1.16a2.325 2.325 0 0 0-2.322 2.321 2.325 2.325 0 0 0 2.322 2.322 2.325 2.325 0 0 0 2.322-2.322 2.325 2.325 0 0 0-2.322-2.322ZM5.228 2.946A2.284 2.284 0 0 1 7.51 5.228 2.284 2.284 0 0 1 5.23 7.51a2.284 2.284 0 0 1-2.282-2.28 2.284 2.284 0 0 1 2.281-2.282Zm0 1.16c-.618 0-1.122.503-1.122 1.121 0 .619.504 1.122 1.122 1.122.62 0 1.122-.503 1.122-1.122 0-.618-.503-1.122-1.122-1.122Z" clip-rule="evenodd" /></symbol>'}),ec=(a().add(Qu),Qu),tc=new(o())({id:"space_new",use:"space_new-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="space_new"><path d="M2 13.77V11H0v2.77C0 17.2 2.79 20 6.23 20H9v-2H6.23C3.9 18 2 16.1 2 13.77Zm0-7.54C2 3.9 3.9 2 6.23 2H9V0H6.23A6.23 6.23 0 0 0 0 6.23V9h2V6.23ZM12 10c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2Zm6 3.77C18 16.1 16.1 18 13.77 18H11v2h2.77C17.2 20 20 17.21 20 13.77V11h-2v2.77ZM13.77 0H11v2h2.77C16.1 2 18 3.9 18 6.23V9h2V6.23A6.23 6.23 0 0 0 13.77 0Z" /></symbol>'}),nc=(a().add(tc),tc),rc=new(o())({id:"spaces_v2",use:"spaces_v2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="spaces_v2"><path d="M22.27 4.22c-.17-.85-.65-1.49-1.38-1.85-.89-.45-2.11-.43-3.58.02.82.46 1.58 1.02 2.25 1.66.18.02.32.05.43.11.12.06.25.16.31.47.08.4.01.94-.19 1.56A9.926 9.926 0 0 0 12 2C6.49 2 2 6.49 2 12c0 1.25.25 2.43.67 3.54-.85 1.7-1.17 3.13-.94 4.25.2.96.8 1.67 1.7 1.99.36.13.76.19 1.2.19 2.25 0 5.54-1.59 8.98-4.4 4.73-3.87 9.37-9.86 8.66-13.35ZM4.1 19.89c-.2-.07-.34-.18-.41-.51-.08-.39 0-.94.2-1.58.54.75 1.17 1.41 1.89 1.99-.72.19-1.3.23-1.68.1Zm3.91-.99C5.62 17.52 4 14.95 4 12c0-4.41 3.59-8 8-8 3.1 0 5.79 1.78 7.11 4.36-1.33 2.31-3.69 5.14-6.77 7.65-1.58 1.3-3.05 2.24-4.33 2.89Zm12.56-5.35c-.34.4-.69.78-1.06 1.16-1.04 2.89-3.69 5-6.87 5.26 0 0-.01 0-.01.01-1.07.6-2.15 1.18-3.32 1.65.85.24 1.75.37 2.67.37 5.51 0 10-4.49 10-10 0-.1-.01-.2-.01-.29-.42.65-.89 1.26-1.4 1.84Z" /></symbol>'}),oc=(a().add(rc),rc),ic=new(o())({id:"switch_off",use:"switch_off-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="switch_off"><path d="M11.58 2.712a.75.75 0 0 0-.981 1.136A5.479 5.479 0 0 1 12.499 8c0 3.033-2.468 5.5-5.5 5.5a5.506 5.506 0 0 1-5.5-5.5 5.48 5.48 0 0 1 1.9-4.152.75.75 0 1 0-.981-1.136A6.985 6.985 0 0 0 0 8c0 3.86 3.141 7 7 7s7-3.14 7-7a6.98 6.98 0 0 0-2.42-5.288ZM7 8.75A.75.75 0 0 0 7.75 8V1a.75.75 0 0 0-1.5 0v7c0 .414.336.75.75.75Z" /></symbol>'}),ac=(a().add(ic),ic),sc=new(o())({id:"system_overview",use:"system_overview-usage",viewBox:"0 0 32 32",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="system_overview"><path d="M16 14c.51 0 .98.2 1.33.52l2.68-2.98A5.99 5.99 0 0 0 16 10.01c-3.29 0-6 2.71-6 6s2.71 6 6 6 6-2.71 6-6a6 6 0 0 0-.48-2.36l-3.68 1.57A2.006 2.006 0 0 1 16 18.01c-1.1 0-2-.9-2-2S14.9 14 16 14ZM3.47 16C4.84 10.25 10.06 6.11 16 6.11c2.41 0 4.69.69 6.65 1.89H21.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5H28V4.5c0-.83-.67-1.5-1.5-1.5S25 3.67 25 4.5v1.19c-2.6-1.76-5.7-2.8-9-2.8C8.43 2.89 1.8 8.26.24 15.67L.17 16l.07.33c.19.92.47 1.81.81 2.67H4.6c-.5-.94-.88-1.94-1.13-3Zm28.29-.33c-.19-.92-.47-1.81-.81-2.67H27.4c.5.94.88 1.94 1.13 3-1.37 5.75-6.59 9.89-12.53 9.89-2.41 0-4.69-.69-6.65-1.89h1.15c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H4v6.5c0 .83.67 1.5 1.5 1.5S7 28.33 7 27.5v-1.19c2.6 1.76 5.7 2.8 9 2.8 7.57 0 14.2-5.37 15.76-12.78l.07-.33-.07-.33Z" /></symbol>'}),lc=(a().add(sc),sc),uc=new(o())({id:"system_overview_press",use:"system_overview_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="system_overview_press"><path d="M3.07 12H7.5v1h-2c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2v-1h4.43c1.12 0 2.03-.89 2.07-2H1.01c.04 1.11.94 2 2.06 2Zm9.86-10H3.07C1.93 2 1 2.93 1 4.07V9h14V4.07C15 2.93 14.07 2 12.93 2Z" /></symbol>'}),cc=(a().add(uc),uc),fc=new(o())({id:"text_add",use:"text_add-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="text_add"><path d="M12 8.5c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5 3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5Zm2 4.25h-1.25V14h-1.5v-1.25H10v-1.5h1.25V10h1.5v1.25H14v1.5ZM12.5 1.54V5H14V1.54C14 .69 13.31 0 12.46 0H1.54C.69 0 0 .69 0 1.54V5h1.5V1.54c0-.02.02-.04.04-.04h4.71v11H3V14h4.75V1.5h4.71c.02 0 .04.02.04.04Z" /></symbol>'}),dc=(a().add(fc),fc),pc=new(o())({id:"thumb_down",use:"thumb_down-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_down"><path d="M20.4 4h-3l-2-2H5.6L2 5.6v8.8L4.6 17H9v3.4l1.6 1.6h3.8l1.6-1.6v-3l1.4-1.4H22V5.6L20.4 4ZM16 14.6l-2 2v3l-.4.4h-2.2l-.4-.4V15H5.4L4 13.6V12h5v-1H4V8h5V7H4v-.6L6.4 4h8.2L16 5.4v9.2Zm4-.6h-2V6h1.6l.4.4V14Z" /></symbol>'}),hc=(a().add(pc),pc),gc=new(o())({id:"thumb_up",use:"thumb_up-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="thumb_up"><path d="M19.4 7H15V3.6L13.4 2H9.6L8 3.6v3L6.6 8H2v10.4L3.6 20h3l2 2h9.8l3.6-3.6V9.6L19.4 7ZM6 18H4.4l-.4-.4V10h2v8Zm14-6h-5v1h5v3h-5v1h5v.6L17.6 20H9.4L8 18.6V9.4l2-2v-3l.4-.4h2.2l.4.4V9h5.6l1.4 1.4V12Z" /></symbol>'}),vc=(a().add(gc),gc),mc=new(o())({id:"tiny_buttons",use:"tiny_buttons-usage",viewBox:"0 0 22 22",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" id="tiny_buttons"><path d="M14.525 18.5h1.65V17h-1.65v1.5Zm.225-15H3.5v11.25h3.75v1.425h1.5V14.75h6v-6h1.425v-1.5H14.75V3.5Zm-1.5 9.75H5V5h8.25v8.25Zm-1.2 5.25h1.65V17h-1.65v1.5Zm-2.475 0h1.65V17h-1.65v1.5Zm-2.325 0h1.5V17h-1.5v1.5ZM17 7.25v1.5h1.5v-1.5H17Zm0 3.975h1.5v-1.65H17v1.65Zm0 7.275h1.5V17H17v1.5Zm0-2.325h1.5v-1.65H17v1.65Zm0-2.475h1.5v-1.65H17v1.65ZM4 1h14v-2H4v2Zm17 3v14h2V4h-2Zm-3 17H4v2h14v-2ZM1 18V4h-2v14h2Zm3 3a3 3 0 0 1-3-3h-2a5 5 0 0 0 5 5v-2Zm17-3a3 3 0 0 1-3 3v2a5 5 0 0 0 5-5h-2ZM18 1a3 3 0 0 1 3 3h2a5 5 0 0 0-5-5v2ZM4-1a5 5 0 0 0-5 5h2a3 3 0 0 1 3-3v-2Z" /></symbol>'}),yc=(a().add(mc),mc),bc=new(o())({id:"training",use:"training-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="training"><path fill="#8F9EAA" fill-rule="evenodd" d="M1.3 6.661 3.507 7.8v2.976c.016.276.1.544.243.777.142.23.337.42.568.552.87.6 2.314.896 3.681.896s2.81-.296 3.68-.896a1.6 1.6 0 0 0 .569-.552c.143-.233.227-.5.243-.777V7.796l.337-.183v3.35l.01.031a.589.589 0 0 0 .208.294.554.554 0 0 0 .662 0 .59.59 0 0 0 .208-.294l.01-.03V7.058l.772-.397h.002a.558.558 0 0 0 .225-.222.588.588 0 0 0-.031-.623.552.552 0 0 0-.246-.195l-.033-.013h-.037l-6.4-2.57a.508.508 0 0 0-.395 0L1.35 5.623a.552.552 0 0 0-.246.196.584.584 0 0 0 .194.843Zm10.07 1.701-.013 1.246v1.17c0 .048-.034.146-.181.279-.141.127-.36.262-.658.385-.592.245-1.464.43-2.556.43s-1.963-.19-2.555-.438a2.324 2.324 0 0 1-.658-.39c-.147-.134-.182-.233-.182-.281V8.357l1.454.751 1.101.573.577.298a.514.514 0 0 0 .495.001l.605-.298 1.119-.57 1.451-.75Zm-3.917.234L2.866 6.22l5.096-2.045 5.096 2.042-4.586 2.378-.51.245-.51-.245Z" clip-rule="evenodd" /></symbol>'}),wc=(a().add(bc),bc),_c=new(o())({id:"trashcan",use:"trashcan-usage",viewBox:"0 0 14 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 15" id="trashcan"><path d="M4.75 5.188v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.563v-6.75a.557.557 0 0 0-.562-.562.557.557 0 0 0-.563.563Zm3.375 0v6.75c0 .314.248.562.563.562a.557.557 0 0 0 .562-.563v-6.75a.557.557 0 0 0-.562-.562.557.557 0 0 0-.563.563Zm4.669.73-.259.26.09-1.474v-.068H11.5l-.495 7.92a1.147 1.147 0 0 1-1.147 1.08H4.143a1.147 1.147 0 0 1-1.148-1.08L2.568 5.75 2.433 3.5h10.755a.557.557 0 0 0 .562-.563.557.557 0 0 0-.563-.562H9.25A2.257 2.257 0 0 0 7 .125a2.257 2.257 0 0 0-2.25 2.25H.813a.557.557 0 0 0-.563.563c0 .314.248.562.563.562h.495l.067 1.192.09 1.474-.259-.259a.557.557 0 0 0-.798 0 .557.557 0 0 0 0 .8L1.533 7.83c.01.011.022.011.033.023l.293 4.759A2.286 2.286 0 0 0 4.13 14.75h5.704a2.27 2.27 0 0 0 2.272-2.137l.293-4.748c.011-.011.022-.011.034-.022l1.125-1.125a.557.557 0 0 0 0-.8c-.225-.224-.551-.224-.765 0ZM7 1.25c.619 0 1.125.506 1.125 1.125h-2.25c0-.619.506-1.125 1.125-1.125Z" /></symbol>'}),xc=(a().add(_c),_c),Sc=new(o())({id:"triangle",use:"triangle-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="triangle"><path d="M24 0 12 16 0 0z" /></symbol>'}),Oc=(a().add(Sc),Sc),Cc=new(o())({id:"triangle_down",use:"triangle_down-usage",viewBox:"0 0 10 5",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 5" id="triangle_down"><path d="m0 0 5 5 5-5H0Z" /></symbol>'}),Ec=(a().add(Cc),Cc),Ac=new(o())({id:"unknownError",use:"unknownError-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="unknownError"><path d="M11.17 2H4.83C2.26 2 .68 4.8 2 7l3.35 5.59c.6 1 1.62 1.5 2.65 1.5 1.03 0 2.05-.5 2.65-1.5L14 7c1.32-2.2-.26-5-2.83-5Zm1.55 4.23-3.35 5.59c-.42.7-1.09.77-1.36.77s-.94-.07-1.36-.77L3.28 6.23c-.49-.81-.18-1.54-.02-1.81s.62-.92 1.57-.92h6.34c.95 0 1.41.64 1.57.91.16.27.46 1-.02 1.82ZM8 8.35c-.41 0-.75.34-.75.75s.34.75.75.75.75-.34.75-.75-.34-.75-.75-.75Zm-.18-3.31c-.43.1-.71.53-.61.96l.36 1.6a.434.434 0 0 0 .85 0L8.78 6c.02-.11.03-.24 0-.35a.79.79 0 0 0-.96-.61Z" /></symbol>'}),kc=(a().add(Ac),Ac),Mc=new(o())({id:"universe",use:"universe-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="universe"><path d="M9 13.35c.75 0 1.35-.6 1.35-1.35 0-.75-.6-1.35-1.35-1.35-.75 0-1.35.6-1.35 1.35 0 .75.6 1.35 1.35 1.35Zm2.23-2.12c.35.35.93.26 1.19-.16.37-.6.58-1.31.58-2.07 0-2.21-1.79-3.97-4-3.98a3.982 3.982 0 0 0-3.42 6.05c.26.43.84.51 1.19.16.25-.25.28-.63.1-.93-.23-.37-.37-.82-.37-1.3 0-1.38 1.12-2.49 2.5-2.49S11.5 7.63 11.5 9c0 .48-.14.93-.37 1.31-.18.29-.15.67.1.92ZM5.71 5.71c.53-.53.53-1.38 0-1.91s-1.38-.53-1.91 0-.53 1.38 0 1.91 1.38.53 1.91 0ZM9 10c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1Zm.42-7.99c-.81-.05-1.58.04-2.31.25-.43.12-.66.59-.49 1.01l.01.01c.14.34.51.53.86.43.89-.26 1.87-.3 2.88-.05 1.98.48 3.57 2.11 4.01 4.1a5.514 5.514 0 0 1-6.6 6.6c-1.99-.44-3.62-2.02-4.1-4-.25-1.01-.21-2 .05-2.89.1-.35-.1-.72-.43-.86 0 0-.01 0-.01-.01a.759.759 0 0 0-1.01.49c-.2.73-.3 1.5-.25 2.3.2 3.59 3.24 6.52 6.84 6.6 3.98.08 7.22-3.15 7.15-7.12-.08-3.59-3.01-6.65-6.6-6.86Z" /></symbol>'}),Pc=(a().add(Mc),Mc),Rc=new(o())({id:"unreachable",use:"unreachable-usage",viewBox:"0 0 12 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 14" id="unreachable"><path d="M10 8.5H8V10H5.62l-1.38 1.5h.96v2h1.62v-2H9.5V10h2V3.62L10 5.24V8.5ZM11.5.45a.746.746 0 0 0-1.06.05l-.46.5H.5v9h1.3L.44 11.5c-.28.31-.26.78.05 1.06.14.13.32.2.5.2.2 0 .41-.08.55-.25l10-11c.29-.31.27-.79-.04-1.06ZM3.17 8.5H2v-6h1.25V4h1.5V2.5h3.87l-5.45 6Z" /></symbol>'}),Tc=(a().add(Rc),Rc),Ic=new(o())({id:"unreachableNode",use:"unreachableNode-usage",viewBox:"0 0 231 230",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 231 230" id="unreachableNode"><path fill="#EDF2F6" d="M115.5 226c61.304 0 111-49.696 111-111S176.804 4 115.5 4 4.5 53.696 4.5 115s49.696 111 111 111Z" /><path fill="#E2E6EC" d="M212.149 115a96.657 96.657 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432 96.653 96.653 0 0 1-60.974-64.43 96.65 96.65 0 0 1 17.25-87.015l3.303-4.037A96.649 96.649 0 0 1 212.149 115Z" /><mask id="unreachableNode_a" width="206" height="194" x="6" y="18" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#E2E6EC" d="M211.798 114.743a96.645 96.645 0 0 1-40.698 78.821 96.654 96.654 0 0 1-87.833 12.432C68.697 200.905 26.108 203.209 15.5 192c-10.608-11.209.281-35.172-4-50-4.281-14.828-6-31.361-3-46.5 3.001-15.139-.614-35.927 9-48H40c13.017-14.675 33.037-22.027 52.086-26.708a96.648 96.648 0 0 1 119.712 93.951Z" /></mask><g mask="url(#unreachableNode_a)"><g clip-path="url(#unreachableNode_b)"><path fill="#45535C" d="M217.255 50H19.142a2.641 2.641 0 0 0-2.642 2.642v134.716A2.642 2.642 0 0 0 19.142 190h198.113a2.641 2.641 0 0 0 2.641-2.642V52.642A2.641 2.641 0 0 0 217.255 50Z" /><path fill="#546C82" d="M19.142 50h198.113a2.644 2.644 0 0 1 2.641 2.642v3.962H16.5v-3.962A2.641 2.641 0 0 1 19.142 50Z" /><path fill="#0F0" d="M21.123 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963Z" opacity=".5" /><path fill="#FF0" d="M27.727 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963Z" opacity=".5" /><path fill="red" d="M34.33 55.283a1.981 1.981 0 1 0 0-3.963 1.981 1.981 0 0 0 0 3.963Z" opacity=".5" /><path stroke="#fff" stroke-miterlimit="10" stroke-width="2" d="m34.33 88.962 6.604-6.603-6.604-6.604M44.236 88.302h11.887" /></g><path fill="#7698B0" d="M145.374 81.989a2.328 2.328 0 0 0-4.656 0v19.552a2.327 2.327 0 0 0 4.656 0V81.989Z" /><path fill="#6D8CA3" d="M145.373 83.386h7.821a2.421 2.421 0 0 1 2.421 2.42v11.918a2.42 2.42 0 0 1-2.421 2.421h-7.821v-16.76Z" /><path fill="#658196" d="M155.615 88.972h2.979a2.607 2.607 0 0 1 2.607 2.607v.372a2.61 2.61 0 0 1-2.607 2.607h-2.979v-5.586Z" /><path fill="#7698B0" d="M219.897 143.904v1.862h-36.35a9.31 9.31 0 0 1-9.311-9.31v-36.312c0-4.096-2.7-7.448-6.052-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.19 7.914 9.31v36.312a7.447 7.447 0 0 0 7.449 7.448h36.35Z" /><path fill="#80A4BF" d="M124.89 85.247h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM124.89 94.558h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724Z" /><path fill="#6D8CA3" d="M127.777 81.523h12.941v20.484h-12.941a3.818 3.818 0 0 1-3.818-3.818V85.341a3.815 3.815 0 0 1 2.357-3.527c.463-.192.959-.29 1.461-.29Z" /><path fill="#19B357" d="M106.269 107.127a2.327 2.327 0 0 0-4.655 0v19.553a2.327 2.327 0 0 0 4.655 0v-19.553Z" /><path fill="#00AB44" d="M106.269 108.523h7.821a2.419 2.419 0 0 1 2.42 2.421v11.918a2.419 2.419 0 0 1-2.42 2.42h-7.821v-16.759Z" /><path fill="#00993D" d="M116.51 114.11h2.98a2.607 2.607 0 0 1 2.607 2.607v.373a2.607 2.607 0 0 1-2.607 2.607h-2.98v-5.587Z" /><path fill="#00AB44" d="M219.896 132.732c-.016.624 0 1.136 0 1.862h-75.454a9.312 9.312 0 0 1-9.311-9.311c0-4.096-2.7-7.448-6.051-7.448h-6.983v-1.862h6.983c4.376 0 7.914 4.189 7.914 9.31a7.447 7.447 0 0 0 7.448 7.449h75.454Z" /><path fill="#00CB51" d="M85.786 110.386h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724ZM85.786 119.696h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724Z" /><path fill="#00AB44" d="M88.672 106.662h12.942v20.483H88.672a3.817 3.817 0 0 1-3.817-3.817v-12.849a3.818 3.818 0 0 1 3.817-3.817Z" /><path fill="#7698B0" d="M124.89 149.025a2.328 2.328 0 1 0-4.655 0v19.552a2.328 2.328 0 0 0 4.655 0v-19.552Z" /><path fill="#6D8CA3" d="M124.89 150.421h7.821a2.421 2.421 0 0 1 2.421 2.421v11.824a2.421 2.421 0 0 1-2.421 2.421h-7.821v-16.666Z" /><path fill="#658196" d="M135.131 156.008h2.98a2.606 2.606 0 0 1 2.607 2.607v.372a2.608 2.608 0 0 1-2.607 2.607h-2.98v-5.586Z" /><path fill="#7698B0" d="M219.896 122.49h-56.833a7.447 7.447 0 0 0-7.448 7.448v20.484c0 5.12-3.538 9.31-7.914 9.31h-6.983v-1.862h6.983c3.352 0 6.052-3.352 6.052-7.448v-20.484a9.31 9.31 0 0 1 9.31-9.31h56.833v1.862Z" /><path fill="#80A4BF" d="M104.407 152.283h-9.31a1.862 1.862 0 0 0 0 3.724h9.31a1.862 1.862 0 1 0 0-3.724ZM104.407 161.594h-9.31a1.862 1.862 0 1 0 0 3.724h9.31a1.862 1.862 0 0 0 0-3.724Z" /><path fill="#6D8CA3" d="M107.293 148.559h12.942v20.483h-12.942a3.817 3.817 0 0 1-3.817-3.818v-12.848a3.815 3.815 0 0 1 3.817-3.817Z" /></g><defs><clipPath id="unreachableNode_b"><path fill="#fff" d="M16.5 50h203.396v140H16.5z" /></clipPath></defs></symbol>'}),Bc=(a().add(Ic),Ic),jc=new(o())({id:"update",use:"update-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update"><path d="M12.29 7.29 9 10.59 7.71 9.3a.996.996 0 1 0-1.41 1.41l2.71 2.71 4.71-4.71a.996.996 0 0 0 0-1.41 1.02 1.02 0 0 0-1.43-.01ZM2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1Zm17.95-1h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1Z" /></symbol>'}),Dc=(a().add(jc),jc),Lc=new(o())({id:"update_pending",use:"update_pending-usage",viewBox:"0 0 20 20",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" id="update_pending"><path d="M2 10c0-4.41 3.59-8 8-8 2.02 0 3.85.76 5.26 2H13v2h6V0h-2v2.89A9.93 9.93 0 0 0 10 0C4.49 0 0 4.49 0 10c0 .34.02.67.05 1h2.02c-.04-.33-.07-.66-.07-1Zm9.5-3.21a1.54 1.54 0 0 0-1.86-1.14A1.53 1.53 0 0 0 8.5 7.5l.59 2.5a.93.93 0 0 0 1.81 0l.59-2.5c.06-.23.07-.47.01-.71ZM10 11.24c-.7 0-1.26.56-1.26 1.26s.56 1.26 1.26 1.26 1.26-.56 1.26-1.26-.56-1.26-1.26-1.26ZM19.95 9h-2.02c.04.33.07.66.07 1 0 4.41-3.59 8-8 8-2.02 0-3.85-.76-5.26-2H7v-2H1v6h2v-2.89A9.93 9.93 0 0 0 10 20c5.51 0 10-4.49 10-10 0-.34-.02-.67-.05-1Z" /></symbol>'}),Zc=(a().add(Lc),Lc),Nc=new(o())({id:"upload",use:"upload-usage",viewBox:"0 0 20 21",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 21" id="upload"><path d="M6.21 7.21 9 4.41V14c0 .55.45 1 1 1s1-.45 1-1V4.41l2.79 2.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L10 .59l-5.21 5.2a.996.996 0 0 0 0 1.41c.39.39 1.03.4 1.42.01ZM18 14v3.1a1.9 1.9 0 0 1-1.9 1.9H3.9A1.9 1.9 0 0 1 2 17.1V14H0v3.1C0 19.25 1.75 21 3.9 21h12.2c2.15 0 3.9-1.75 3.9-3.9V14h-2Z" /></symbol>'}),Fc=(a().add(Nc),Nc),Hc=new(o())({id:"user",use:"user-usage",viewBox:"0 0 16 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 18" id="user"><path d="M13.72 11.59c-.02.02-.04.05-.06.07-.35.35-.74.66-1.14.94 1.18.71 1.98 2 1.98 3.48V18H16v-1.92c0-1.85-.9-3.48-2.28-4.49ZM8 0C4.69 0 2 2.69 2 6c0 1.89.87 3.57 2.24 4.67-2.43.6-4.24 2.79-4.24 5.41V18h1.5v-1.92C1.5 13.83 3.33 12 5.58 12H8c3.31 0 6-2.69 6-6s-2.69-6-6-6Zm0 10.5c-2.48 0-4.5-2.02-4.5-4.5S5.52 1.5 8 1.5s4.5 2.02 4.5 4.5-2.02 4.5-4.5 4.5Z" /></symbol>'}),Vc=(a().add(Hc),Hc),zc=new(o())({id:"user_press",use:"user_press-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="user_press"><path d="M10 7.2c.6-.5 1-1.3 1-2.2 0-1.7-1.3-3-3-3S5 3.3 5 5c0 .9.4 1.7 1 2.2-1.7.5-3 2.1-3 4V14h10v-2.8c0-1.9-1.3-3.5-3-4Z" /></symbol>'}),Uc=(a().add(zc),zc),Gc=new(o())({id:"users",use:"users-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="users"><path d="M11.71 6.92C12.5 6.19 13 5.16 13 4c0-2.21-1.79-4-4-4-1.11 0-2.1.46-2.82 1.2C5.81 1.08 5.42 1 5 1 2.79 1 1 2.79 1 5c0 1.16.5 2.19 1.29 2.92A4.059 4.059 0 0 0 0 11.56V14h1.5v-2.44C1.5 10.15 2.65 9 4.06 9h1.88c1.41 0 2.56 1.15 2.56 2.56V14H10v-2.44c0-1.6-.94-2.98-2.29-3.64C8.5 7.19 9 6.16 9 5c0-1.22-.56-2.3-1.42-3.03.41-.29.89-.47 1.42-.47a2.494 2.494 0 0 1 .8 4.86c-.09.32-.23.63-.38.92l.24.72h.27c1.41 0 2.56 1.15 2.56 2.56V14h1.5v-3.44c.01-1.6-.93-2.98-2.28-3.64ZM5 7.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5Z" /></symbol>'}),Wc=(a().add(Gc),Gc),qc=new(o())({id:"view_list",use:"view_list-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="view_list"><path d="M10 17h6c1.1 0 2-.9 2-2h-8v2Zm0-8h6c1.1 0 2-.9 2-2h-8v2Zm8.48-7H5.52C3.58 2 2 3.58 2 5.52v12.97c0 1.94 1.58 3.52 3.52 3.52h12.97c1.94 0 3.52-1.58 3.52-3.52V5.52A3.54 3.54 0 0 0 18.48 2ZM6 20h-.48C4.68 20 4 19.32 4 18.48V5.52C4 4.68 4.68 4 5.52 4H6v16Zm14-1.52c0 .84-.68 1.52-1.52 1.52H8V4h10.48c.84 0 1.52.68 1.52 1.52v12.96ZM10 13h6c1.1 0 2-.9 2-2h-8v2Z" /></symbol>'}),$c=(a().add(qc),qc),Yc=new(o())({id:"single_node_view",use:"single_node_view-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view"><path d="m7.22 2.75-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58Zm2.53-.2V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05ZM4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05Zm-1.06 9.12-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06ZM12.75 1.9l-1.39-.57-.59 1.43c.49.14.95.33 1.39.57l.59-1.43Zm1.34 3.07 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06Zm-1.06 9.12 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06ZM5 8.5H3.5V10H5V8.5Zm10.5-3h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5Zm0 5.5h-13V7h13v4Zm-7.25 4.45V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05Zm2.53-.2.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57Zm-5.53.85 1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57l-.59 1.43Z" /></symbol>'}),Xc=(a().add(Yc),Yc),Kc=new(o())({id:"single_node_view_press",use:"single_node_view_press-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="single_node_view_press"><path d="M9.75 2.55V1h-1.5v1.55c.25-.03.5-.05.75-.05s.5.02.75.05Zm-2.53.2-.59-1.43-1.38.58.59 1.43c.43-.25.9-.44 1.38-.58Zm5.53-.85-1.39-.57-.59 1.43c.49.14.95.33 1.39.57l.59-1.43ZM4.97 3.91l-1.1-1.1-1.06 1.06L3.9 4.96c.32-.38.67-.74 1.07-1.05Zm9.12 1.06 1.09-1.09-1.06-1.06-1.09 1.09c.4.31.75.67 1.06 1.06ZM5.25 16.1l1.39.57.59-1.43c-.49-.14-.95-.33-1.39-.57l-.59 1.43Zm7.78-2.01 1.09 1.09 1.06-1.06-1.09-1.09c-.31.39-.66.75-1.06 1.06ZM15.5 5.5h-13C1.67 5.5 1 6.17 1 7v4c0 .83.67 1.5 1.5 1.5h13c.83 0 1.5-.67 1.5-1.5V7c0-.83-.67-1.5-1.5-1.5ZM5 10H3.5V8.5H5V10Zm-1.09 3.03-1.09 1.09 1.06 1.06 1.09-1.09c-.4-.31-.75-.67-1.06-1.06Zm6.87 2.22.59 1.43 1.39-.57-.59-1.43c-.44.24-.91.43-1.39.57Zm-2.53.2V17h1.5v-1.55c-.25.03-.5.05-.75.05s-.5-.02-.75-.05Z" /></symbol>'}),Jc=(a().add(Kc),Kc),Qc=new(o())({id:"virtualization",use:"virtualization-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="virtualization"><path d="M11.69 3H6.31C5.59 3 5 3.59 5 4.31V5h-.69C3.59 5 3 5.59 3 6.31v5.38c0 .72.59 1.31 1.31 1.31h5.38c.72 0 1.31-.59 1.31-1.31V11h.69c.72 0 1.31-.59 1.31-1.31V4.31C13 3.59 12.41 3 11.69 3ZM10 11.69c0 .17-.14.31-.31.31H4.31c-.17 0-.31-.14-.31-.31V6.31c0-.17.14-.31.31-.31H5v3.69c0 .72.59 1.31 1.31 1.31H10v.69ZM10 10H6.31C6.14 10 6 9.86 6 9.69V6h3.69c.17 0 .31.14.31.31V10Zm2-.31c0 .17-.14.31-.31.31H11V6.31C11 5.59 10.41 5 9.69 5H6v-.69c0-.17.14-.31.31-.31h5.38c.17 0 .31.14.31.31v5.38Z" /></symbol>'}),ef=(a().add(Qc),Qc),tf=new(o())({id:"warning",use:"warning-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.065C22.129 6.51 17.62 2 12.064 2Zm1.006 15.097h-2.013v-2.013h2.013v2.013Zm0-4.026h-2.013V7.032h2.013v6.039Z" clip-rule="evenodd" /><mask id="warning_a" width="21" height="21" x="2" y="2" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="M12.065 2C6.509 2 2 6.509 2 12.065c0 5.555 4.509 10.064 10.065 10.064 5.555 0 10.064-4.509 10.064-10.065C22.129 6.51 17.62 2 12.064 2Zm1.006 15.097h-2.013v-2.013h2.013v2.013Zm0-4.026h-2.013V7.032h2.013v6.039Z" clip-rule="evenodd" /></mask></symbol>'}),nf=(a().add(tf),tf),rf=new(o())({id:"warning_triangle",use:"warning_triangle-usage",viewBox:"0 0 12 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 10" id="warning_triangle"><path d="M11.027 7.94 6.84.493a.887.887 0 0 0-.153-.2C6.68.287 6.68.28 6.674.28A.932.932 0 0 0 6 0a.953.953 0 0 0-.673.273C5.32.28 5.32.287 5.314.287c-.054.06-.107.12-.154.2L.974 7.94a1.23 1.23 0 0 0-.154.593c.014.394.227.767.567.967.173.1.373.16.593.16h8.04a1.158 1.158 0 0 0 1.16-1.127c.007-.193-.04-.4-.153-.593ZM6 7.667A.669.669 0 0 1 5.334 7c0-.367.3-.667.666-.667.367 0 .667.3.667.667 0 .367-.3.667-.667.667Zm.667-3.334-.32 1.334a.365.365 0 0 1-.433.266.372.372 0 0 1-.267-.266l-.313-1.334a.688.688 0 0 1 .506-.826.688.688 0 0 1 .827.826Z" /></symbol>'}),of=(a().add(rf),rf),af=n(45724),sf=new(o())({id:"weights_compare",use:"weights_compare-usage",viewBox:"0 0 14 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 12" id="weights_compare"><path d="M2.111 11.778v-.89H.778v.89H2.11ZM13.222 10v-.889H11.89V10h1.333ZM.778 9.111V10H2.11v-.889H.778Zm12.444 2.667v-.89H11.89v.89h1.333Zm0-8.89V2H11.89v.889h1.333Zm-3.529-.47-.942.942 1.974 1.973H3.277L5.25 3.36l-.943-.942L2.11 4.612v-.834H.778v.889h1.279L.724 6l1.333 1.333H.777v.89h1.334v-.835l2.196 2.194.942-.942-1.973-1.973h7.448L8.75 8.64l.943.942 2.196-2.195v.835h1.333v-.889h-1.279L13.277 6l-1.334-1.333h1.28v-.89h-1.334v.835L9.693 2.418Zm3.53-1.307V.222h-1.334v.89h1.333Zm-12.445 0H2.11V.222H.778v.89ZM2.11 2.89V2H.778v.889H2.11Z" /></symbol>'}),lf=(a().add(sf),sf),uf=new(o())({id:"weights_drill_down",use:"weights_drill_down-usage",viewBox:"0 0 14 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" id="weights_drill_down"><path d="M13.222 8.333V3.89H7.89v1.555H4.11v-.666h2V.333H.778v4.445h2v7.333h5.11v1.556h5.334V9.222H7.89v1.556H4.11v-4H7.89v1.555h5.333Zm-4-3.11h2.667V7H9.222V5.222Zm0 5.333h2.667v1.777H9.222v-1.777Zm-7.11-7.112V1.667h2.666v1.777H2.11Z" /></symbol>'}),cf=(a().add(uf),uf),ff=new(o())({id:"x",use:"x-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="x"><path d="m13.4 12 5.3-5.3c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4.2.2.4.3.7.3.3 0 .5-.1.7-.3l5.3-5.3 5.3 5.3c.2.2.5.3.7.3.2 0 .5-.1.7-.3.4-.4.4-1 0-1.4L13.4 12Z" /></symbol>'}),df=(a().add(ff),ff),pf=new(o())({id:"firewall_solid",use:"firewall_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="firewall_solid"><path d="M20 3c-3.71 0-7.52-1.88-7.55-1.89L12 .88l-.45.22C11.52 1.12 7.72 3 4 3H3v7.03c0 5.29 2.94 10.05 7.68 12.42l1.32.66 1-.5V3.51c1.39.55 3.62 1.27 6 1.44v5.07c0 4.3-2.27 8.19-5.97 10.3.12.72.64 1.31 1.32 1.54C18.48 19.35 21 14.91 21 10.01V3h-1Z" /></symbol>'}),hf=(a().add(pf),pf),gf=new(o())({id:"qualityOfService_solid",use:"qualityOfService_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="qualityOfService_solid"><path d="m22.28 8.88-1.99-1.67-.45-2.56c-.17-.96-1-1.65-1.97-1.65h-2.6l-1.99-1.67c-.37-.31-.83-.47-1.29-.47-.46 0-.91.16-1.29.47L8.72 3h-2.6c-.97 0-1.8.7-1.97 1.65L3.7 7.21 1.72 8.88c-.74.62-.93 1.69-.45 2.53l1.3 2.25-.45 2.56a2 2 0 0 0 1.29 2.23l2.44.89 1.3 2.25c.37.63 1.03 1 1.73 1 .23 0 .46-.04.68-.12l2.44-.89 2.44.89a1.994 1.994 0 0 0 2.41-.88l1.3-2.25 2.44-.89c.91-.33 1.45-1.27 1.29-2.23l-.45-2.56 1.3-2.25c.49-.84.3-1.91-.45-2.53Zm-5.57 1.83L11 16.41 7.29 12.7a.996.996 0 1 1 1.41-1.41l2.29 2.29 4.29-4.29a.996.996 0 0 1 1.41 0c.39.39.41 1.03.02 1.42Z" /></symbol>'}),vf=(a().add(gf),gf),mf=new(o())({id:"applications_solid",use:"applications_solid-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="applications_solid"><path d="M15.87 16c-1.19 0-2.24-.55-2.95-1.39C14.15 14 15 12.75 15 11.3V5.71C15 3.67 13.34 2 11.29 2H5.71C3.66 2 2 3.66 2 5.71v5.59c0 2.04 1.66 3.71 3.71 3.71h.4c-.06.23-.11.47-.11.72v1.57c0 1.5 1.22 2.72 2.72 2.72h1.37a3.68 3.68 0 0 1-.09-.82V18H8.72c-.4 0-.72-.32-.72-.72v-1.57c0-.4.32-.72.72-.72h2.42c-.08.26-.13.53-.13.82v3.37c0 1.55 1.26 2.82 2.82 2.82h3.37c1.55 0 2.82-1.26 2.82-2.82V15.9c-.28.07-.57.1-.87.1h-3.28Zm3.26-10H16v2h3.13c.48 0 .87.39.87.87v3.27c0 .48-.39.87-.87.87h-3.27c-.06 0-.12-.02-.18-.04-.25.65-.64 1.23-1.14 1.7.4.21.84.34 1.32.34h3.27c1.58 0 2.87-1.29 2.87-2.87V8.87C22 7.29 20.71 6 19.13 6Z" /></symbol>'}),yf=(a().add(mf),mf),bf=new(o())({id:"networking_stack",use:"networking_stack-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="networking_stack"><path d="m2.94 9.26 3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.82-.47 1.31-1.32 1.31-2.27s-.49-1.8-1.31-2.27l-3.73-2.15c-.71-.41-1.53-.63-2.35-.63-.82 0-1.64.22-2.35.63L2.94 4.72c-.82.47-1.31 1.32-1.31 2.27s.49 1.79 1.31 2.27Zm.75-3.24 3.69-2.13c.5-.29 1.05-.43 1.6-.43s1.11.14 1.6.43l3.73 2.15c.75.43.75 1.51 0 1.94l-3.69 2.13c-.5.29-1.05.43-1.6.43s-1.11-.14-1.6-.43L3.69 7.96c-.75-.43-.75-1.51 0-1.94Zm3.46 1.8c.72.41 1.88.42 2.59 0 .27-.15 1.06-.61 1.29-.75.48-.27.47-.72-.01-1s-1.25-.28-1.73 0c-.42.24-.45.62-.12.89-.11-.04-.21-.09-.31-.14-.38-.22-.56-.51-.53-.8-.44.01-.87.11-1.2.3-.7.41-.7 1.08.02 1.5Zm8.26 4.07-3.69 2.13a5.43 5.43 0 0 1-5.4 0l-3.73-2.15c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.33-.56.61-.94.83Zm0-2-3.69 2.13a5.43 5.43 0 0 1-5.4 0L2.59 9.86c-.38-.22-.7-.5-.96-.83.02.93.5 1.75 1.3 2.22l3.73 2.15c.71.41 1.53.63 2.35.63.82 0 1.64-.22 2.35-.63l3.69-2.13c.81-.46 1.29-1.29 1.3-2.22-.24.34-.56.62-.94.84Z" /></symbol>'}),wf=(a().add(bf),bf),_f=new(o())({id:"charts_view",use:"charts_view-usage",viewBox:"0 0 16 15",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 15" id="charts_view"><path d="M10.25 6.38c1.03 0 1.88-.85 1.88-1.88 0-.34-.09-.67-.26-.96l-1.62.96.59-1.78c-.19-.06-.39-.1-.59-.1-1.03 0-1.88.85-1.88 1.88 0 1.03.85 1.88 1.88 1.88Zm.59 2.95 2.41 1.5v1.79c0 .48-.39.88-.88.88H3.13c-.48 0-.88-.39-.88-.88V7.14l1.67 1.11 1.02.68 1.5-1.5C7.43 8.39 8.76 9 10.25 9c2.7 0 4.93-1.94 5.4-4.5a5.497 5.497 0 0 0-5.4-4.5c-2.69 0-4.93 1.94-5.4 4.5.12.63.34 1.22.65 1.75L4.75 7l-3-2h-1v7.62A2.38 2.38 0 0 0 3.13 15h9.24a2.38 2.38 0 0 0 2.38-2.38V10l-1.17-.73c-.87.24-1.81.27-2.74.06Zm-.59-7.83c1.83 0 3.42 1.25 3.87 3-.45 1.75-2.04 3-3.87 3s-3.42-1.25-3.87-3c.45-1.75 2.04-3 3.87-3Z" /></symbol>'}),xf=(a().add(_f),_f),Sf=new(o())({id:"nodes_update",use:"nodes_update-usage",viewBox:"0 0 40 40",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 40 40" id="nodes_update"><rect width="40" height="40" fill="#F9A825" rx="20" /><path fill="#FFF8E1" d="M20 10.285c-5.356 0-9.715 4.358-9.715 9.715s4.359 9.715 9.715 9.715 9.715-4.358 9.715-9.715-4.36-9.715-9.715-9.715Zm0 4.382a1.334 1.334 0 1 1-.001 2.668 1.334 1.334 0 0 1 0-2.668Zm2.666 8.67c0 .918-.744 1.663-1.662 1.663h-3.67v-.281c0-.93.742-1.679 1.666-1.708v-2.344h-1.667a2 2 0 0 1 2-2H21V23h1.666v.337Z" /></symbol>'}),Of=(a().add(Sf),Sf),Cf=n(69666),Ef=n(65828),Af=n(44636),kf=n(13249),Mf=n(18567),Pf=n(11182),Rf=n(69790),Tf={add_node:l,add_user:c,aggregation_avg:d,aggregation_max:h,aggregation_med:v,aggregation_min:y,aggregation_sum:w,aggregation_sum_abs:x,alarm:O,alarmCritical:E,alarmCriticalWarning:k,alarmFilled:P,alarmWarning:T,alarm_bell:B,alarms_new:D,alarm_off:Z,anomaliesBrain:F,anomaliesLens:V,anomalyBadge:z.default,applications_hollow:G,applicationsSolid:yf,around_clock:q,arrow_down:Y,arrow_w_line_left:K,arrow_w_line_right:Q,arrow_left:te,arrow_s_down:re,arrow_s_left:ie,arrows_vertical:se,bookmark:ue,bullet_one:fe,bullet_three:pe,bullet_two:ge,calendarFull:me,calendarFullPress:be,chart_added:_e,charts:Se,charts_view:xf,check:Ce,checkmark_partial_s:Ae,checkmark_s:ke.default,checkmark:Pe,chevron_double:Te,chevron_down:Ie.default,chevron_down_thin:Be.default,chevron_expand:je.default,chevron_left:Le,chevron_left_small:He,chevron_left_start:Ne,chevron_right:ze,chevron_right_end:qe,chevron_right_s:Ge,chevron_right_small:Ye,chevron_up_thin:Xe.default,classError:Je,classLatency:et,classUtilization:nt,classWorkload:ot,clock_hollow:at,clock5Min:lt,clock5MinPress:ct,close_circle:dt,cluster:ht,cluster_spaces:vt,code:yt,collapse:bt.default,collect:_t,community:St,connection_to_cloud:Ct,connectivityStatusLive:At,connectivityStatusOffline:Mt,connectivityStatusStale:Rt,container:It,controller_kind:jt,controller_name:Lt,copy:Nt,correlation:Ht,correlation_inv:zt,cpu:Gt,cross_s:qt,data_retention:Yt,database:Xt.default,dashboard:Jt,dashboard_add:en,dashboards:nn,disk:on,documentation:sn,dot:ln.default,dots_2x3:cn,download:dn,dragHorizontal:pn.default,edit:gn,error:mn,exclamation:bn,expand:wn.default,favorites:xn,feed:On,filter:En,filterList:kn,firewallSolid:hf,forcePlay:Pn,forcePlayOutline:Tn,functions:Bn,fullScreen:Dn,gear:Zn,github:Fn,google:Un,goToNode:Vn,group_by:Wn,hamburger:$n,help:Xn,hide:Jn,highlightArea:er,holder:nr,importExport:or,incident_manager:ar,information:sr.default,informationPress:ur,insights:fr,integrationDiscord:pr,integrationDiscordColored:gr,integrationEmail:mr,integrationEmailColored:br,integrationMattermost:_r,integrationMattermostColored:Sr,integrationMobileAppColored:Cr,integrationOpsgenie:Ar,integrationOpsgenieColored:Mr,integrationPagerduty:Rr,integrationPagerdutyColored:Ir,integrationRocketChat:jr,integrationRocketChatColored:Lr,integrations:Nr,integrationSlack:Hr,integrationSlackColored:zr,integrationWebhook:Gr,integrationWebhookColored:qr,ipNetworking:Yr,ipNetworkingPress:Kr,last_week:Qr,line_chart:to,logo_s:ro,loading:oo.default,magnify:ao,metrics:so.default,metrics_explorer:uo,minimize_s:fo,mobilePushNotifications:ho,mobilePushNotificationsHollow:vo,monitoring:yo,more:wo,navLeft:_o.default,navRight:xo.default,nav_arrow_goto:Oo,nav_dots:Co.Z,networkingStack:wf,netdata:Ao,netdataAssistant:Mo,netdataPress:Ro,node:Io,node_child:jo,node_default_l:Lo,node_hollow:No,node_import_export:Ho,node_notification_l:zo,node_parent:Go,node_selected_l:qo,nodes:Yo,nodes_hollow:Ko,none_selected:Qo,nodes_update:Of,notification:ta,notification_shortcut_enabled:ti,notification_shortcut_disabled:ri,os:ii,osAlpineLinux:si,osAmazonLinux:ui,osArchLinux:fi,osCelarOS:pi,osCentos:gi,osCentosColored:mi,osCoreOS:bi,osDebian:_i,osDebianColored:Si,osFedora:Ci,osFreeBSD:Ai,osGentoo:Mi,osLinux:Ri,osLinuxColored:Ii,osLinuxManjaro:ji,osMacOSX:Li,osOracle:Ni,osOracleColored:Hi,osPress:zi,osRaspbian:Gi,osRedHat:qi,osSuseLinux:Yi,osUbuntu:Ki,osUbuntuColored:Qi,padlock:ra,panTool:oa.default,pauseOutline:aa,pauseSolid:la,pencilSolid:da,pencilOutline:ca,pie_chart_skeleton:ha,pin_element:va,playOutline:ya,playSolid:wa,plus:xa,plus_mini_s:Oa,pod:Ea,pricing:ka,print:Pa,privacy:Ta,pushNotifications:Ba,qrCode:Da,ram:Va,qualityOfServiceSolid:vf,question:Za,questionFilled:Fa,rearrange:za.Z,reduceSize:Ga,refresh:qa,reload:Ya,removeNode:Ka,resize_handler:Ja.default,rocket:es,room:ns,room_home:os,room_new:as,room_overview:ls,sad:cs,save:ds,search:hs,search_s:vs,searchPress:ys,serviceApache:ws,serviceApacheTomcat:xs,serviceBeanstalk:Os,serviceBind:Es,serviceContainer:ks,serviceCoreDns:Ps,serviceCouchDB:Ts,serviceDatabase:Bs,serviceDNS:Ds,serviceDockerHubPress:Zs,serviceDockerHub:Fs,serviceDotNet:Vs,serviceEBPF:Us,serviceElasticSearch:Ws,serviceFreeNAS:$s,serviceHAProxy:Xs,serviceHTTPCheck:Js,serviceIceCast:el,serviceInfluxDB:nl,serviceIPFS:ol,serviceIPVS:al,serviceKubernetes:ll,serviceLighthttpd:cl,serviceLighthttpd2:dl,serviceLiteSpeed:hl,serviceLxc:vl,serviceMariaDB:yl,serviceMemCached:wl,serviceMongoDB:xl,serviceMySQL:Ol,serviceMySQLPress:El,serviceNginx:kl,serviceNginxLocal:Pl,serviceNginxPlus:Tl,serviceNtpd:Bl,serviceNtpdPress:Dl,serviceOpenStack:Zl,serviceOpenWrt:Fl,servicePan:Vl,servicePercona:Ul,servicePfSense:Wl,servicePhpFpm:$l,servicePostgreSQL:Xl,servicePrometheus:Jl,serviceProxySQL:eu,serviceRabbitMQ:nu,serviceRedis:ou,serviceRethinkDB:au,serviceRetroShare:lu,serviceSelectedArea:cu,serviceSendgrid:du,services:hu,servicesSmartdlog:vu,serviceSolr:yu,serviceSquid:wu,serviceSummaryStatistic:xu,serviceSystemd:Ou,serviceTraefik:Eu,serviceVarnish:ku,serviceWebLog:Pu,serviceWebLogNginx:Tu,serviceX509Check:Bu,serviceXen:Du,settings:Zu,settings_h:Fu,sign_in:Vu,sorting_vertical:Uu,sort_ascending:qu.default,sorting_asc:Wu,sort_descending:Xu.default,sorting_desc:Yu,sort_indicator:Ju,space:ec,space_new:nc,spaces_v2:oc,switch_off:ac,system_overview:lc,systemOverviewPress:cc,text_add:dc,thumb_down:hc,thumb_up:vc,tiny_buttons:yc,training:wc,trashcan:xc,triangle:Oc,triangle_down:Ec,unknownError:kc,universe:Pc,unreachable:Tc,unreachableNode:Bc,update:Dc,update_pending:Zc,upload:Fc,user:Vc,userPress:Uc,users:Wc,view_list:$c,viewSingleNode:Xc,viewSingleNodePress:Jc,virtualization:ef,warning:nf,warning_triangle:of,warning_triangle_hollow:af.default,weights_compare:lf,weights_drill_down:cf,x:df,zoomIn:Cf.default,zoomOut:Ef.default,zoomReset:Af.default,N:kf.default,I:Mf.default,D:Pf.default,L:Rf.default}},11597:function(e,t,n){"use strict";n.d(t,{JO:function(){return i.J},NZ:function(){return r},eS:function(){return o.e}});var r=n(54922),o=n(33981),i=n(46345)},10114:function(e,t,n){"use strict";n.r(t),n.d(t,{StyledIcon:function(){return c}});var r,o=n(60677),i=n(50757),a=n(69498),s=n(21352),l=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},u={small:"16px",medium:"24px",large:"40px"},c=o.default.svg(r||(r=l(["\n height: ",";\n width: ",";\n opacity: ",";\n pointer-events: ",";\n ","\n ","\n ","\n ","\n ","\n"],["\n height: ",";\n width: ",";\n opacity: ",";\n pointer-events: ",";\n ","\n ","\n ","\n ","\n ","\n"])),(function(e){var t=e.size;return e.height||u[t]}),(function(e){var t=e.size;return e.width||u[t]}),(function(e){return e.disabled?.3:1}),(function(e){return e.disabled?"none":"unset"}),(function(e){var t=e.rotate;return!isNaN(t)&&"transform: rotate(".concat(90*t,"deg);")}),(function(e){var t=e.theme,n=e.color;return n&&"fill: ".concat((0,i.Lq)(n)({theme:t}),";")}),(function(e){var t=e.theme,n=e.hoverColor;return n&&"&:hover { fill: ".concat((0,i.Lq)(n)({theme:t}),"; }")}),a.Z,s.Z)},49713:function(e,t,n){"use strict";n.d(t,{oi:function(){return $},di:function(){return H},a6:function(){return U},fC:function(){return X},mz:function(){return Y}});var r,o,i,a,s,l,u,c,f,d,p,h,g,v=n(67294),m=n(78382),y=n(60677),b=n(11597),w=n(90509),_=n(11275),x=n(69498),S=n(21352),O=n(1605),C=n(88292),E=n(32855),A=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},k=(0,y.css)(r||(r=A(["\n cursor: ",";\n pointer-events: ",";\n"],["\n cursor: ",";\n pointer-events: ",";\n"])),(function(e){return e.disabled?"not-allowed":""}),(function(e){return e.disabled?"none":"auto"})),M=y.default.div(o||(o=A(["\n ","\n ","\n position: relative;\n ","\n"],["\n ","\n ","\n position: relative;\n ","\n"])),x.Z,S.Z,C.Z),P=y.default.input.attrs({round:!0})(i||(i=A(["\n ","\n ","\n height: 100%;\n width: 100%;\n font-weight: normal;\n flex-grow: 0;\n ",";\n ",";\n font-size: ",";\n line-height: 18px;\n color: ",";\n background: ",";\n opacity: ",";\n &::placeholder {\n font-size: ",";\n line-height: 18px;\n color: ",";\n opacity: 1;\n font-weight: normal;\n }\n ",";\n"],["\n ","\n ","\n height: 100%;\n width: 100%;\n font-weight: normal;\n flex-grow: 0;\n ",";\n ",";\n font-size: ",";\n line-height: 18px;\n color: ",";\n background: ",";\n opacity: ",";\n &::placeholder {\n font-size: ",";\n line-height: 18px;\n color: ",";\n opacity: 1;\n font-weight: normal;\n }\n ",";\n"])),_.aY,O.Z,(function(e){return e.iconLeft&&"padding-left: 0"}),(function(e){return e.iconRight&&"padding-right: 0"}),(function(e){return"tiny"===e.size?"12px":"14px"}),(function(e){return e.disabled?(0,w.getColor)("placeholder"):(0,w.getColor)("textDescription")}),(0,w.getColor)("mainBackground"),(function(e){return e.disabled?"0.4":"1"}),(function(e){return"tiny"===e.size?"12px":"14px"}),(0,w.getColor)("placeholder"),k),R=y.default.label(a||(a=A(["\n width: 100%;\n display: block;\n ",";\n"],["\n width: 100%;\n display: block;\n ",";\n"])),k),T=(0,y.default)(E.default).attrs({alignItems:"center",color:"text",flex:!1,width:"100%"})(s||(s=A(["\n font-style: normal;\n font-weight: bold;\n font-size: ",";\n line-height: 18px;\n margin-bottom: 4px;\n"],["\n font-style: normal;\n font-weight: bold;\n font-size: ",";\n line-height: 18px;\n margin-bottom: 4px;\n"])),(function(e){return"tiny"===e.size?"12px":"14px"})),I=(0,y.default)(E.default)(l||(l=A(["\n ",";\n"],["\n ",";\n"])),k),B=(0,y.default)(b.JO)(u||(u=A(["\n flex-grow: 0;\n flex-shrink: 0;\n"],["\n flex-grow: 0;\n flex-shrink: 0;\n"]))),j=(0,y.default)(B)(c||(c=A(["\n fill: ",";\n"],["\n fill: ",";\n"])),(0,w.getColor)("error")),D=(0,y.default)(B)(f||(f=A(["\n fill: ",";\n"],["\n fill: ",";\n"])),(0,w.getColor)("success")),L=(0,y.default)(E.default)(d||(d=A([""],[""]))),Z=(0,y.default)(E.default)(p||(p=A(["\n flex-flow: row nowrap;\n"],["\n flex-flow: row nowrap;\n"]))),N=y.default.span(h||(h=A(["\n font-size: 12px;\n line-height: 16px;\n overflow: hidden;\n flex-grow: 0;\n flex-shrink: 0;\n color: ",";\n"],["\n font-size: 12px;\n line-height: 16px;\n overflow: hidden;\n flex-grow: 0;\n flex-shrink: 0;\n color: ",";\n"])),(0,w.getColor)("placeholder")),F=(0,y.default)(N)(g||(g=A(["\n color: ",";\n flex-shrink: 1;\n"],["\n color: ",";\n flex-shrink: 1;\n"])),(0,w.getValidatedControlColor)("text")),H=function(e){var t=e.defaultState,n=void 0!==t&&t,r=e.onBlur,o=e.onFocus,i=(0,v.useState)(n),a=i[0],s=i[1],l=(0,v.useCallback)((function(e){a||s(!0),o&&o(e)}),[o,a]),u=(0,v.useCallback)((function(e){s(!1),r&&r(e)}),[r]);return[a,l,u]},V=function(){return V=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},V.apply(this,arguments)},z=function(e){var t=e.defaultColor,n=void 0===t?"inputBorder":t,r=e.success,o=void 0===r?"success":r,i=e.error,a=void 0===i?"error":i,s=e.disabled;return{success:o,error:a,disabled:void 0===s?"inputBorder":s,default:n}},U=function(e){var t=e.size,n=void 0===t?"large":t,r=e.disabled,o=e.success,i=e.error,a=e.focused,s=o?"success":i?"error":r?"disabled":"default",l=(0,v.useMemo)((function(){switch(n){case"tiny":return{height:"28px",padding:[1,2]};case"small":return{height:"34px",padding:[2,3]};default:return{height:"42px",padding:[2.5,4]}}}),[n]),u=(0,v.useMemo)((function(){return V(V({},l),{background:r?"mainBackgroundDisabled":"mainBackground",border:{size:"1px",type:"solid",color:a?z({defaultColor:"inputBorderFocus"})[s]:z({})[s],side:"all"},round:"2px",_hover:{border:{size:"1px",type:"solid",color:z({defaultColor:"inputBorderHover"})[s],side:"all"}}})}),[s,l,a]),c=(0,v.useCallback)((function(e){var t=e.iconRight,n=void 0!==t&&t,r=e.iconLeft;return{height:"100%",alignItems:"center",round:!0,margin:[0,n?0:2,0,void 0!==r&&r?0:2]}}),[r]);return{styles:{inputContainer:u,iconContainer:c}}},G=function(){return G=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},G.apply(this,arguments)},W=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},q=function(e){var t=e.isDirty,n=e.instantFeedback,r=e.value,o=e.prevValue,i=e.error,a=e.success;return e.touched||Boolean("all"===n&&t)||Boolean("positiveFirst"===n&&t&&a)||Boolean("positiveFirst"===n&&t&&i&&o&&r.length<o.length)},$=function(e){var t=e.error,n=e.success,r=e.touched,o=e.disabled,i=e.instantFeedback,a=e.iconLeft,s=e.iconRight,l=e.name,u=e.onFocus,c=e.onBlur,f=e.className,d=e.fieldMessage,p=e.fieldIndicator,h=e.metaShrinked,g=e.placeholder,y=void 0===g?"":g,b=e.label,w=e.isDirty,_=e.value,x=e.inputRef,S=e.size,O=void 0===S?"large":S,C=e.handleMetaDisplay,E=void 0===C?q:C,A=e.containerStyles,k=e.inputContainerStyles,B=W(e,["error","success","touched","disabled","instantFeedback","iconLeft","iconRight","name","onFocus","onBlur","className","fieldMessage","fieldIndicator","metaShrinked","placeholder","label","isDirty","value","inputRef","size","handleMetaDisplay","containerStyles","inputContainerStyles"]),V=H({onBlur:c,onFocus:u}),z=V[0],$=V[1],Y=V[2],X=E({isDirty:w,instantFeedback:i,value:_,prevValue:(0,m.Z)(_),error:t,success:n,touched:r,focused:z}),K=X&&n,J=X&&t,Q=J&&!0!==t&&t,ee=K&&!0!==n&&n,te=U({size:O,error:J,success:K,disabled:o,focused:z}).styles,ne=v.useCallback((function(e){var t=e.icon;return v.createElement(L,G({},te.iconContainer({iconLeft:!0})),t)}),[]),re=v.useCallback((function(e){var t=e.icon;return v.createElement(L,G({},te.iconContainer({iconRight:!0})),t)}),[]);return v.createElement(M,G({className:f},A),v.createElement(R,{disabled:o},b&&v.createElement(T,{size:O},v.createElement("span",null,b)),v.createElement(I,G({},te.inputContainer,{focused:z,success:K,error:J,disabled:o},k),a&&v.createElement(ne,{icon:a}),v.createElement(P,G({disabled:o,placeholder:y,onBlur:Y,onFocus:$,name:l,"aria-label":l,iconLeft:a,iconRight:s,type:"text",value:_,size:O,ref:x},B)),s&&v.createElement(re,{icon:s}),X&&t&&v.createElement(re,{icon:v.createElement(j,{name:"cross_s"})}),X&&n&&v.createElement(re,{icon:v.createElement(D,{name:"checkmark_s"})}))),!h&&v.createElement(Z,{margin:[1,0,0,0],width:"100%",justifyContent:"between",alignItems:"center"},v.createElement(F,{success:K,error:J},J&&Q||K&&ee||d),v.createElement(N,null,p)))},Y=(n(65390),function(e){var t=e.onBlur,n=e.defaultState,r=void 0!==n&&n,o=(0,v.useState)(r),i=o[0],a=o[1],s=(0,v.useCallback)((function(e){i||a(!0),t&&t(e)}),[t,i]);return[i,s,a]}),X=function(e){var t=e.value,n=void 0===t?"":t,r=e.onChange,o=e.maxChars,i=(0,v.useState)(n),a=i[0],s=i[1],l=(0,v.useState)(!1),u=l[0],c=l[1],f=(0,v.useCallback)((function(e){var t=e.target.value;if(o&&t.length>o)return e.preventDefault(),void e.stopPropagation();s(t),u||c(!0),r&&r(e)}),[u,o,r]),d=o?"".concat(a.length,"/").concat(o):"",p=(0,v.useCallback)((function(e){void 0===e&&(e=""),s(e),c(!1)}),[]);return[a,f,d,u,{setIsDirty:c,setValue:s,resetValue:p}]}},65390:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r,o,i,a=n(67294),s=n(32855),l=n(90833),u=n(60677),c=n(65588),f=n(66243),d=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},p=(0,u.default)(c.Z)(r||(r=d([""],[""]))),h=(0,u.default)(c.Z)(o||(o=d(["\n background-position: ",";\n background-color: ","40;\n background-image: linear-gradient(\n ",",\n ","\n );\n background-repeat: no-repeat;\n background-size: ",";\n height: 2px;\n width: ",";\n"],["\n background-position: ",";\n background-color: ","40;\n background-image: linear-gradient(\n ",",\n ","\n );\n background-repeat: no-repeat;\n background-size: ",";\n height: 2px;\n width: ",";\n"])),(function(e){var t=e.max,n=e.min,r=e.minValue,o=e.width;return"".concat(o*((r-n)/(t-n))*100/100,"px 100%")}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){return e.theme.colors.primary}),(function(e){var t=e.max,n=e.maxValue,r=e.min,o=e.minValue;return"".concat(100*(n-o)/(t-r),"% 100%")}),(function(e){var t=e.width;return"".concat(t,"px")||0})),g=(0,u.default)(f.Z)(i||(i=d(["\n pointer-events: none;\n position: absolute;\n height: 0;\n outline: none;\n width: 100%;\n\n &::-webkit-slider-thumb {\n pointer-events: all;\n }\n"],["\n pointer-events: none;\n position: absolute;\n height: 0;\n outline: none;\n width: 100%;\n\n &::-webkit-slider-thumb {\n pointer-events: all;\n }\n"]))),v=function(){return v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},v.apply(this,arguments)},m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},y=function(e){var t=e.initMax,n=e.initMin,r=e.max,o=void 0===r?100:r,i=e.min,u=void 0===i?0:i,c=e.onChange,f=e.onInput,d=e.step,y=void 0===d?1:d,b=e.TextComponent,w=void 0===b?l.TextSmall:b,_=m(e,["initMax","initMin","max","min","onChange","onInput","step","TextComponent"]),x=(0,a.useState)(t||o),S=x[0],O=x[1],C=(0,a.useState)(n||u),E=C[0],A=C[1],k=(0,a.useState)(0),M=k[0],P=k[1],R=(0,a.useRef)(null),T=(0,a.useRef)(null);(0,a.useEffect)((function(){R.current&&P(R.current.getBoundingClientRect().width)}),[E]),(0,a.useEffect)((function(){O(t||o),A(n||u)}),[o,u]);return a.createElement(s.default,{column:!0,gap:1},a.createElement(s.default,{alignItems:"center","data-testid":"multiRangeInput",justifyContent:"center",position:"relative",width:"100%"},a.createElement(g,v({"data-testid":"minRangeInput",max:o,min:u,onChange:function(e){c&&c({max:S,min:e.target.value})},onInput:function(e){var t=Math.min(+e.target.value,S-y);A(t),e.target.value=t.toString(),f&&f({max:S,min:e.target.value})},position:"relative",ref:T,step:y,value:E,zIndex:3},_)),a.createElement(g,v({"data-testid":"maxRangeInput",max:o,min:u,onChange:function(e){c&&c({max:e.target.value,min:E})},onInput:function(e){var t=Math.max(+e.target.value,E+y);O(t),e.target.value=t.toString(),f&&f({max:e.target.value,min:E})},ref:R,step:y,value:S,zIndex:5},_)),a.createElement(p,{"data-testid":"multiRange-slider"},a.createElement(h,{"data-testid":"multiRange-sliderTrack",max:o,maxValue:S,min:u,minValue:E,width:M}))),a.createElement(s.default,{"data-testid":"multiRange-values",justifyContent:"between"},a.createElement(w,{"data-testid":"multiRange-minValue"},E),a.createElement(w,{"data-testid":"multiRange-maxValue"},S)))}},66243:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r,o=n(67294),i=n(60677),a=n(50757),s=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},l=i.default.input.attrs({type:"range"})(r||(r=s(["\n -webkit-appearance: none;\n height: 2px;\n background-color: ","40;\n background-image: linear-gradient(",", ",");\n background-repeat: no-repeat;\n background-size: ",";\n cursor: pointer;\n width: 100%;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background: ",";\n transition: all 0.3s ease-in-out;\n\n &:active {\n height: 16px;\n width: 16px;\n }\n }\n"],["\n -webkit-appearance: none;\n height: 2px;\n background-color: ","40;\n background-image: linear-gradient(",", ",");\n background-repeat: no-repeat;\n background-size: ",";\n cursor: pointer;\n width: 100%;\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background: ",";\n transition: all 0.3s ease-in-out;\n\n &:active {\n height: 16px;\n width: 16px;\n }\n }\n"])),(0,a.Lq)("primary"),(0,a.Lq)("primary"),(0,a.Lq)("primary"),(function(e){var t=e.max,n=e.value;return"".concat(100*n/t,"% 100%")}),(0,a.Lq)("primary")),u=function(){return u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},u.apply(this,arguments)},c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},f=(0,o.forwardRef)((function(e,t){var n=e.max,r=void 0===n?100:n,i=e.min,a=void 0===i?0:i,s=e.step,f=void 0===s?1:s,d=e.value,p=void 0===d?0:d,h=c(e,["max","min","step","value"]);return o.createElement(l,u({"data-testid":"rangeInput",max:r,min:a,step:f,type:"range",value:p,ref:t},h))}))},11307:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r,o,i,a,s=n(67294),l=n(90833),u=n(60677),c=n(90509),f=n(69498),d=n(955),p=n(21352),h=n(11597),g=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},v=u.default.input(r||(r=g(["\n && {\n height: 0;\n width: 0;\n opacity: 0;\n -moz-appearance: none;\n margin: 0;\n border: none;\n }\n"],["\n && {\n height: 0;\n width: 0;\n opacity: 0;\n -moz-appearance: none;\n margin: 0;\n border: none;\n }\n"]))),m=u.default.label(o||(o=g(["\n display: flex;\n flex-direction: row;\n align-items: center;\n ","\n ","\n\n ","\n ","\n"],["\n display: flex;\n flex-direction: row;\n align-items: center;\n ","\n ","\n\n ","\n ","\n"])),d.Z,p.Z,f.Z,(function(e){var t=e.disabled;return"\n pointer-events: ".concat(t?"none":"auto",";\n cursor: ").concat(t?"default":"pointer",";\n")})),y=u.default.div(i||(i=g(["\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n flex: 0 0 auto;\n\n height: 16px;\n width: 16px;\n\n box-sizing: border-box;\n border: 1px solid ",";\n border-radius: 100%;\n background: ",";\n\n ","\n"],["\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n flex: 0 0 auto;\n\n height: 16px;\n width: 16px;\n\n box-sizing: border-box;\n border: 1px solid ",";\n border-radius: 100%;\n background: ",";\n\n ","\n"])),(function(e){return(0,c.getColor)(e.borderColor)(e)}),(function(e){return(0,c.getColor)(e.background)(e)}),f.Z),b=(0,u.default)(h.JO)(a||(a=g(["\n fill: ",";\n height: 8px;\n width: 8px;\n"],["\n fill: ",";\n height: 8px;\n width: 8px;\n"])),(function(e){return(0,c.getColor)(e.color)(e)})),w=function(){return w=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},w.apply(this,arguments)},_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},x={disabled:{containerColor:"disabledBackground",dotColor:"disabledBackground",borderColor:"disabledBackground"},checked:{containerColor:"inputBg",dotColor:"primary",borderColor:"inputBorder"},checkedDisabled:{containerColor:"inputBg",dotColor:"disabled",borderColor:"inputBorder"},default:{containerColor:"inputBg",dotColor:"bright",borderColor:"inputBorder"}},S=function(e){var t=e.alignItems,n=void 0===t?"center":t,r=e.alignSelf,o=e.checked,i=e.children,a=e.disabled,u=e.iconProps,c=e.label,f=e.margin,d=_(e,["alignItems","alignSelf","checked","children","disabled","iconProps","label","margin"]),p=a&&!o?"disabled":o&&a?"checkedDisabled":o?"checked":"default",h=s.useMemo((function(){return x[p]}),[p]),g="checkedDisabled"===p||"checked"===p;return s.createElement(m,{alignItems:n,alignSelf:r,disabled:a,margin:f},s.createElement(v,w({type:"radio",disabled:a,checked:o},d)),s.createElement(y,{background:h.containerColor,borderColor:h.borderColor,margin:i||c?[.5,2,0,0]:null},g&&s.createElement(b,w({name:"dot",color:h.dotColor},u))),i,c&&!i&&s.createElement(l.Text,null,c))}},37807:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r,o=n(67294),i=n(60677),a=n(49713),s=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},l=(0,i.default)(a.oi)(r||(r=s(["\n & input {\n background: transparent;\n }\n\n & > label {\n margin-bottom: 0;\n }\n\n & > div {\n margin-top: 0;\n }\n"],["\n & input {\n background: transparent;\n }\n\n & > label {\n margin-bottom: 0;\n }\n\n & > div {\n margin-top: 0;\n }\n"]))),u=function(){return u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},u.apply(this,arguments)},c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},f=(0,o.forwardRef)((function(e,t){var n=e.value,r=e.onChange,i=e.placeholder,a=c(e,["value","onChange","placeholder"]);return o.createElement(l,u({inputRef:t,value:n,onChange:r,placeholder:i,size:"tiny"},a))}))},51559:function(e,t,n){"use strict";var r,o=n(60677),i=n(21352),a=n(69498),s=n(96069),l=n(1605),u=n(33778),c=n(94932),f=n(69838),d=n(55199),p=n(51702),h=n(88292),g=n(77857),v=n(77606),m=n(13557),y=n(4667),b=n(88489),w=n(87331),_=n(73052),x=n(75980),S=n(37947),O=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},C=function(e){return(0,S.ZP)(e.sx)(e)};t.Z=function(e){return(0,o.default)(e)(r||(r=O(["\n box-sizing: border-box;\n\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"],["\n box-sizing: border-box;\n\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"])),m.Z,i.Z,c.Z,a.Z,s.Z,y.Z,h.Z,p.Z,v.Z,u.Z,b.Z,l.Z,g.Z,f.Z,d.Z,w.Z,_.ZP,x.FK,C)}},65588:function(e,t,n){"use strict";var r=(0,n(51559).Z)("div");t.Z=r},4528:function(e,t,n){"use strict";n.d(t,{Z:function(){return I}});var r,o=n(60677),i=n(21352),a=n(69498),s=n(96069),l=n(1605),u=n(33778),c=n(94932),f=n(69838),d=n(55199),p=n(51702),h=n(88292),g=n(77857),v=n(77606),m=function(e){var t=e.flex,n=e.basis;if(void 0===t&&void 0===n)return"";if(n&&void 0===t)return"flex-basis: ".concat(n,";");var r=function(e,t){if(void 0===t&&(t="auto"),!0===e)return"1 1 ".concat(t);if(!1===e)return"0 0 ".concat(t);if("grow"===e)return"1 0 ".concat(t);if("shrink"===e)return"0 1 ".concat(t);if("number"===typeof e)return"".concat(e," 0 ").concat(t);if("object"!==typeof e)return"";var n=e.grow,r=e.shrink;return"".concat(n," ").concat(r," ").concat(t)}(t,n);return r?"flex: ".concat(r,";"):""},y=function(e){var t=function(e){return!0===e?"wrap":!1===e?"nowrap":"reverse"===e?e:""}(e.flexWrap);return t&&"flex-wrap: ".concat(t,";")},b=n(955),w=n(13557),_={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly",stretch:"stretch"},x=function(e){var t=e.justifyContent;return t in _?"justify-content: ".concat(_[t],";"):""},S=n(4667),O=function(e){var t=function(e,t,n){return e?"column":t?"column-reverse":n?"row-reverse":"row"}(e.column,e.columnReverse,e.rowReverse);return"flex-direction: ".concat(t,";")},C=n(88489),E=n(87331),A=n(73052),k=n(60702),M=n(75980),P=n(37947),R=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},T=function(e){return(0,P.ZP)(e.sx)(e)},I=function(e){return(0,o.default)(e)(r||(r=R(["\n display: flex;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"],["\n display: flex;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n"])),m,O,y,b.Z,w.Z,x,i.Z,c.Z,a.Z,s.Z,S.Z,h.Z,p.Z,k.B3,v.Z,u.Z,C.Z,l.Z,g.Z,f.Z,d.Z,E.Z,A.ZP,M.FK,T)}},32855:function(e,t,n){"use strict";n.r(t);var r=(0,n(4528).Z)("div");t.default=r},24018:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return v}});var r,o=n(60677),i=n(13947),a={top:"0",right:"0",bottom:"0",left:"0"},s=function(e,t){if(!Array.isArray(t)||t.length<1||t.length>4)return a;var n=t.map((function(t){return(0,i.F)(e,t)}));return 1===n.length?{top:n[0],right:n[0],bottom:n[0],left:n[0]}:2===n.length?{top:n[0],right:n[1],bottom:n[0],left:n[1]}:3===n.length?{top:n[0],right:n[1],bottom:n[2],left:n[1]}:{top:n[0],right:n[1],bottom:n[2],left:n[3]}},l=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},u=function(e,t){return"0"!==e&&"0"!==t?"calc((100% - ".concat(e,") - ").concat(t,")"):"0"===e&&"0"===t?"100%":"calc(100% - ".concat("0"===e?t:e,")")},c=new Set(["top","center","bottom"]),f=new Set(["bottom-left","left","top-left"]),d=new Set(["right","center","left"]),p=new Set(["top-left","top","top-right"]),h=new Set(["top-right","right","bottom-right"]),g=new Set(["bottom-right","bottom","bottom-left"]),v=o.default.div.attrs((function(e){var t=e.theme,n=e.margin;return{marginDimensions:s(t,n)}}))(r||(r=l(["\n position: ",";\n display: flex;\n outline: none;\n pointer-events: all;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n"],["\n position: ",";\n display: flex;\n outline: none;\n pointer-events: all;\n\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n\n ","\n ","\n"])),(function(e){return e.isAbsolute?"absolute":"fixed"}),(function(e){var t=e.marginDimensions,n=t.top,r=t.bottom;return"max-height: ".concat(u(n,r),";")}),(function(e){var t=e.marginDimensions,n=t.right,r=t.left;return"max-width: ".concat(u(r,n),";")}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"vertical"===n||!0===n||p.has(t)?"top: ".concat(r.top,";"):d.has(t)?"top: 50%;":""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"horizontal"===n||!0===n||h.has(t)?"right: ".concat(r.right,";"):""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"vertical"===n||!0===n||g.has(t)?"bottom: ".concat(r.bottom,";"):""}),(function(e){var t=e.position,n=e.full,r=e.marginDimensions;return"horizontal"===n||!0===n||f.has(t)?"left: ".concat(r.left,";"):c.has(t)?"left: 50%;":""}),(function(e){var t=e.full,n=e.position,r=function(){var e=!0!==t&&"horizontal"!==t&&c.has(n),r=!0!==t&&"vertical"!==t&&d.has(n);return e||r?e&&!r?"translateX(-50%)":!e&&r?"translateY(-50%)":"translate(-50%, -50%)":""}();return r&&"transform: ".concat(r,";")}),(function(e){return e.borderShadow&&"box-shadow: 0px 2px 68px rgba(0, 0, 0, 0.288);"}),(function(e){var t=e.zIndex;return"z-index: ".concat(void 0===t?35:t,";")}))},56872:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var r,o,i=n(67294),a=n(73935),s=n(91183),l=n(44175),u=n(86321),c=n(24018),f=n(60677),d=n(54113),p=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},h=function(){return h=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},h.apply(this,arguments)},g=f.default.div(r||(r=p(["\n position: fixed;\n inset: 0;\n z-index: 35;\n pointer-events: none;\n outline: none;\n"],["\n position: fixed;\n inset: 0;\n z-index: 35;\n pointer-events: none;\n outline: none;\n"]))),v=f.default.div(o||(o=p(["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n ",";\n}\n"],["\n position: absolute;\n inset: 0;\n pointer-events: all;\n background-color: rgba(0, 0, 0, 0.3);\n ",";\n}\n"])),d.Z),m=function(e){var t=e.children,n=e.backdropProps;return i.createElement(g,{"data-testid":"layer-backdropContainer"},i.createElement(v,h({"data-testid":"layer-backdrop"},n)),t)},y=function(){return y=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},y.apply(this,arguments)},b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},w=[],_=function(e){var t=e.position,n=void 0===t?"center":t,r=e.full,o=void 0!==r&&r,f=e.backdrop,d=void 0===f||f,p=e.margin,h=void 0===p?w:p,g=e.onClickOutside,v=e.onEsc,_=e.borderShadow,x=e.children,S=e.backdropProps,O=b(e,["position","full","backdrop","margin","onClickOutside","onEsc","borderShadow","children","backdropProps"]),C=(0,i.useRef)();(0,l.Z)(C,g),(0,u.Z)(v);var E=(0,s.default)(),A=i.createElement(c.default,y({isAbsolute:d,ref:C,full:o,position:n,margin:h,borderShadow:_,"data-testid":"layer-container"},d?{}:y({},O)),x);return a.createPortal(d?i.createElement(m,y({backdropProps:S},O),A):A,E)}},54113:function(e,t){"use strict";t.Z=function(e){var t=e.backdropBlur;return t?"boolean"===typeof t?"backdrop-filter: blur(10px);":"backdrop-filter: blur(".concat(t,"number"===typeof t?"px);":");"):""}},13557:function(e,t){"use strict";var n={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",stretch:"stretch"};t.Z=function(e){var t=e.alignContent;return t in n?"align-content: ".concat(n[t],";"):""}},955:function(e,t){"use strict";var n={start:"flex-start",center:"center",end:"flex-end",baseline:"baseline",stretch:"stretch"};t.Z=function(e){var t=e.alignItems;return t in n?"align-items: ".concat(n[t],";"):""}},77606:function(e,t,n){"use strict";var r=n(50757);t.Z=function(e){var t=e.theme,n=e.background,o=e.backgroundOpacity;if(!n)return"";var i=o?(0,r.zt)(n,o)({theme:t}):(0,r.Lq)(n)({theme:t});return i&&"background-color: ".concat(i,";")}},88489:function(e,t,n){"use strict";var r=n(50757),o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)},i={all:function(e){var t=e.size,n=e.type,r=e.color;return"\n border: ".concat(t," ").concat(n," ").concat(r,";\n ")},horizontal:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-top: ".concat(t," ").concat(n," ").concat(r,";\n border-bottom: ").concat(t," ").concat(n," ").concat(r,";\n ")},vertical:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-left: ".concat(t," ").concat(n," ").concat(r,";\n border-right: ").concat(t," ").concat(n," ").concat(r,";\n ")},top:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-top: ".concat(t," ").concat(n," ").concat(r,";\n ")},right:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-right: ".concat(t," ").concat(n," ").concat(r,";\n ")},bottom:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-bottom: ".concat(t," ").concat(n," ").concat(r,";\n ")},left:function(e){var t=e.size,n=e.type,r=e.color;return"\n border-left: ".concat(t," ").concat(n," ").concat(r,";\n ")}},a=function(e){return{color:(0,r.Lq)("border")({theme:e}),size:"1px",side:"all",type:"solid"}};t.Z=function(e){var t=e.theme,n=e.border;if(void 0===n)return"";if(!0===n)return i.all(a(t));if(n in i)return i[n](a(t));if("object"!==typeof n)return"";var s=n.side,l=n.color;return s in i&&i[s](o(o(o({},a(t)),n),{color:(0,r.Lq)(l||"border")({theme:t})}))}},4667:function(e,t){"use strict";t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.gap,r=e.column,o=e.columnReverse,i=e.rowReverse;if("number"!==typeof n)return"";var a=function(e){var t=e.column,n=e.columnReverse,r=e.rowReverse;return t||n?"bottom":r?"left":"right"}({column:r,columnReverse:o,rowReverse:i});return"\n &> *:not(:last-child) {\n margin-".concat(a,": ").concat(t*n,"px;\n }\n ")}},51702:function(e,t){"use strict";t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.height;if("object"===typeof n){var r=n.min,o=void 0===r?"":r,i=n.max,a=void 0===i?"":i;return"\n ".concat(o&&"min-height: ".concat("number"===typeof o?"".concat(t*o,"px"):o,";"),"\n ").concat(a&&"max-height: ".concat("number"===typeof a?"".concat(t*a,"px"):a,";"),"\n ")}return n&&"height: ".concat("number"===typeof n?"".concat(t*n,"px"):n,";")}},77857:function(e,t){"use strict";t.Z=function(e){var t=e.overflow;if(!t)return"";if("string"===typeof t)return"overflow: ".concat(t,";");var n=t.vertical,r=void 0===n?"":n,o=t.horizontal,i=void 0===o?"":o;return"\n ".concat(r&&"overflow-y: ".concat(r,";"),"\n ").concat(i&&"overflow-x: ".concat(i,";"),"\n ")}},73052:function(e,t,n){"use strict";var r=n(77606),o=n(88489),i=n(87331),a=n(50757),s=n(955),l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)},u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},c={boxShadow:i.Z,border:o.Z,background:r.Z,color:function(e){var t=e.theme,n=e.color;return n?"color: ".concat((0,a.Lq)(n)({theme:t}),";"):""},alignItems:s.Z},f=function(e){var t=e.theme,n=u(e,["theme"]),r="";for(var o in n)if(void 0===c[o]){var i=n[o];r+="".concat(o,":").concat(i,";")}else{var a=c[o];r+=a&&"function"===typeof a?a(l({theme:t},n)):""}return r},d={_before:"&::before",_after:"&::after",_hover:"&:hover, &[data-hover]",_active:"&:active, &[data-active]",_focus:"&:focus, &[data-focus]",_focusWithin:"&:focus-within",_visited:"&:visited",_empty:"&:empty",_even:"&:nth-of-type(even)",_odd:"&:nth-of-type(odd)",_disabled:"&[disabled], &[aria-disabled=true], &[data-disabled]",_checked:"&[aria-checked=true]",_mixed:"&[aria-checked=mixed]",_selected:"&[aria-selected=true], [data-selected] > &",_invalid:"&[aria-invalid=true]",_pressed:"&[aria-pressed=true]",_readOnly:"&[aria-readonly=true], &[readonly]",_first:"&:first-of-type",_last:"&:last-of-type",_expanded:"&[aria-expanded=true]",_grabbed:"&[aria-grabbed=true]",_notFirst:"&:not(:first-of-type)",_notLast:"&:not(:last-of-type)",_groupHover:"[role=group]:hover &",_autofill:"&:-webkit-autofill",_placeholder:"&::placeholder"};t.ZP=function(e){var t=e.theme,n=u(e,["theme"]),r="";for(var o in n)if(o in d){var i=o,a=n[i],s=f(l({theme:t},a));r+="\n ".concat(d[i],"{ \n ").concat(s," \n }")}return r.replace(/^(?=\n)$|^\s*|\s*$|\n\n+/gm,"")}},87331:function(e,t,n){"use strict";var r=n(50757);t.Z=function(e){var t=e.boxShadow,n=e.theme;if(!t)return"";var o=t.color?(0,r.Lq)(t.color)({theme:n}):"",i=t.size?t.size:"";return i?"box-shadow:".concat(i," ").concat(o,";"):""}},88292:function(e,t){"use strict";t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,n=e.width;if("object"===typeof n){var r=n.min,o=void 0===r?"":r,i=n.max,a=void 0===i?"":i,s=n.base,l=void 0===s?"":s;return"\n ".concat(o&&"min-width: ".concat("number"===typeof o?"".concat(t*o,"px"):o,";"),"\n ").concat(a&&"max-width: ".concat("number"===typeof a?"".concat(t*a,"px"):a,";"),"\n ").concat(l&&"width: ".concat("number"===typeof l?"".concat(t*l,"px"):l,";"),"\n ")}return n&&"width: ".concat("number"===typeof n?"".concat(t*n,"px"):n,";")}},90833:function(e,t,n){"use strict";n.r(t),n.d(t,{H0:function(){return g},H1:function(){return v},H2:function(){return m},H3:function(){return y},H4:function(){return b},H5:function(){return w},H6:function(){return _},List:function(){return p},ListItem:function(){return h},Text:function(){return E},TextBig:function(){return A},TextBigger:function(){return k},TextFemto:function(){return x},TextHuge:function(){return M},TextMicro:function(){return O},TextNano:function(){return S},TextSmall:function(){return C},makeBig:function(){return a.fl},makeBigger:function(){return a.L5},makeFemto:function(){return a.zs},makeH0:function(){return a.XZ},makeH1:function(){return a.Q2},makeH2:function(){return a.gg},makeH3:function(){return a.UY},makeH4:function(){return a.lU},makeH5:function(){return a.Pp},makeH6:function(){return a.QL},makeHuge:function(){return a.u$},makeMicro:function(){return a.Ly},makeNano:function(){return a.Uw},makeSmall:function(){return a.Y2},makeText:function(){return a.fh},makeTypography:function(){return a.eq}});var r,o,i,a=n(60702),s=n(60677),l=n(21352),u=n(69498),c=n(96069),f=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},d=(0,s.css)(r||(r=f(["\n ","\n ","\n ","\n"],["\n ","\n ","\n ","\n"])),l.Z,u.Z,c.Z),p=s.default.ul(o||(o=f(["\n list-style-type: disc;\n list-style-position: outside;\n padding-left: 28px;\n ","\n"],["\n list-style-type: disc;\n list-style-position: outside;\n padding-left: 28px;\n ","\n"])),d),h=s.default.li(i||(i=f(["\n line-height: 22px;\n padding-left: 9px;\n ","\n"],["\n line-height: 22px;\n padding-left: 9px;\n ","\n"])),d),g=(0,a.XZ)("h1"),v=(0,a.Q2)("h1"),m=(0,a.gg)("h2"),y=(0,a.UY)("h3"),b=(0,a.lU)("h4"),w=(0,a.Pp)("h5"),_=(0,a.QL)("h6"),x=(0,a.zs)("span"),S=(0,a.Uw)("span"),O=(0,a.Ly)("span"),C=(0,a.Y2)("span"),E=(0,a.fh)("span"),A=(0,a.fl)("span"),k=(0,a.L5)("span"),M=(0,a.u$)("span")},60702:function(e,t,n){"use strict";n.d(t,{B3:function(){return y},fl:function(){return I},L5:function(){return B},zs:function(){return k},XZ:function(){return _},Q2:function(){return x},gg:function(){return S},UY:function(){return O},lU:function(){return C},Pp:function(){return E},QL:function(){return A},u$:function(){return j},Ly:function(){return P},Uw:function(){return M},Y2:function(){return R},fh:function(){return T},eq:function(){return w}});var r,o,i=n(60677),a=n(50757),s=n(21352),l=n(69498),u=n(96069),c=n(98625),f=new Set(["left","center","right"]),d=new Set(["underline","none","line-through"]),p=new Set(["normal","nowrap","pre-line"]),h=new Set(["normal","break-all","keep-all","break-word"]),g=n(33778),v=n(55199),m=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},y=function(e){var t=e.theme,n=e.color,r=void 0===n?"text":n;return"color: ".concat((0,a.Lq)(r)({theme:t}),";")},b=(0,i.css)(r||(r=m(["\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n "," \n ","\n ","\n ","\n ","\n ","\n ","\n"],["\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n ","\n "," \n ","\n ","\n ","\n ","\n ","\n ","\n"])),y,(function(e){var t=e.background,n=void 0===t?"text":t,r=e.code,o=e.color,i=void 0===o?"elementBackground":o,s=e.theme;return r&&"\n background-color: ".concat((0,a.Lq)(n)({theme:s}),";\n border-radius: 4px;\n color: ").concat((0,a.Lq)(i)({theme:s}),";\n padding: 0 6px;\n ")}),s.Z,(function(e){var t=e.textAlign;return f.has(t)&&"text-align: ".concat(t,";")}),(function(e){var t=e.textDecoration;return d.has(t)&&"text-decoration: ".concat(t,";")}),c.Z,(function(e){return e.truncate&&"\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"}),(function(e){var t=e.whiteSpace;return p.has(t)&&"white-space: ".concat(t,";")}),(function(e){var t=e.wordBreak;return h.has(t)&&"word-break: ".concat(t,";")}),l.Z,u.Z,g.Z,v.Z,(function(e){var t=e.fontSize;return t&&"\n font-size: ".concat(t,";\n line-height: ").concat(t,";\n ")}),(function(e){var t=e.lineHeight;return t&&"\n line-height: ".concat(t,";\n ")})),w=function(e,t){var n,r,a=t.fontSize,s=t.lineHeight,l=t.strong;return(0,i.default)(e)(o||(o=m(['\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif;\n font-style: normal;\n ',"\n ","\n ","\n ","\n"],['\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Ubuntu, "Helvetica Neue", sans-serif;\n font-style: normal;\n ',"\n ","\n ","\n ","\n"])),(r=a,function(){return"font-size: ".concat(r,";")}),function(e){return function(){return"line-height: ".concat(e,";")}}(s),(n=l,function(e){var t=e.strong;return"font-weight: ".concat((void 0===t?n:t)?"bold":"normal",";")}),b)},_=function(e){return w(e,{fontSize:"26px",lineHeight:"32px",strong:!0})},x=function(e){return w(e,{fontSize:"24px",lineHeight:"28px",strong:!0})},S=function(e){return w(e,{fontSize:"22px",lineHeight:"24px",strong:!0})},O=function(e){return w(e,{fontSize:"20px",lineHeight:"24px",strong:!0})},C=function(e){return w(e,{fontSize:"16px",lineHeight:"21px",strong:!0})},E=function(e){return w(e,{fontSize:"14px",lineHeight:"18px",strong:!0})},A=function(e){return w(e,{fontSize:"12px",lineHeight:"14px",strong:!0})},k=function(e){return w(e,{fontSize:"8px",lineHeight:"10px"})},M=function(e){return w(e,{fontSize:"10px",lineHeight:"13px"})},P=function(e){return w(e,{fontSize:"11px",lineHeight:"14px"})},R=function(e){return w(e,{fontSize:"12px",lineHeight:"16px"})},T=function(e){return w(e,{fontSize:"14px",lineHeight:"20px"})},I=function(e){return w(e,{fontSize:"16px",lineHeight:"18px"})},B=function(e){return w(e,{fontSize:"24px",lineHeight:"32px"})},j=function(e){return w(e,{fontSize:"36px",lineHeight:"44px"})}},91183:function(e,t,n){"use strict";n.r(t);var r=n(67294);t.default=function(){var e=(0,r.useMemo)((function(){var e=document.createElement("div");return document.body.append(e),e}),[]);return(0,r.useLayoutEffect)((function(){return function(){return document.body.removeChild(e)}}),[]),e}},11557:function(e,t,n){"use strict";n.r(t);var r=n(67294),o=n(13692);t.default=function(e){var t=(0,r.useRef)(),n=(0,r.useCallback)((function(n){t.current=n,(0,o.Z)(e,n)}),[]);return[t,n]}},86321:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e){return(0,r.useEffect)((function(){if(e){var t=function(t){27===t.keyCode&&e(t)};return document.addEventListener("keydown",t),function(){return document.removeEventListener("keydown",t)}}}),[e])}},44175:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(67294),o=n(88006),i=function(e,t){return(0,o.Z)(t).some((function(t){return t===e}))},a=function(e,t,n){(0,r.useEffect)((function(){if(t){var r=function(r){r.target===e.current||i(e.current,r.target)||i(n,r.target)||t(r)};return document.addEventListener("mousedown",r),function(){return document.removeEventListener("mousedown",r)}}}),[t])}},62928:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e,t){void 0===e&&(e=!1);var n=void 0===t?{}:t,o=n.on,i=n.off,a=n.toggle,s=(0,r.useState)(!!e),l=s[0],u=s[1];return[l,(0,r.useCallback)((function(){u((function(e){var t=!e;return a&&a(t),o&&t&&o(),i&&!t&&i(),t}))}),[o,i,a]),(0,r.useCallback)((function(){u(!0),o&&o()}),[o]),(0,r.useCallback)((function(){u(!1),i&&i()}),[i])]}},57509:function(e,t,n){"use strict";n.r(t),n.d(t,{AlertMasterCard:function(){return Kv},Animation:function(){return bi},Box:function(){return Te.Z},Button:function(){return Ee},ButtonGroup:function(){return lt},Checkbox:function(){return tn},Collapsible:function(){return Ai},ConfirmationDialog:function(){return Om},DarkTheme:function(){return ee.Cs},DefaultTheme:function(){return ee.XU},Documentation:function(){return dl},DraggableTabs:function(){return ov},Drop:function(){return Ie.Z},DropContainer:function(){return Ge},Flex:function(){return Se.default},H0:function(){return He.H0},H1:function(){return He.H1},H2:function(){return He.H2},H3:function(){return He.H3},H4:function(){return He.H4},H5:function(){return He.H5},H6:function(){return He.H6},Icon:function(){return _e.JO},IconButton:function(){return nt},IconComponents:function(){return _e.NZ},InputRange:function(){return Lo.Z},Intersection:function(){return mv},Layer:function(){return Xo.default},List:function(){return He.List},ListItem:function(){return He.ListItem},MasterCard:function(){return nm},Menu:function(){return Uo.default},MenuButton:function(){return qo.Z},MenuDropdown:function(){return Go.Z},MenuDropdownItem:function(){return Wo.default},MenuItemContainer:function(){return Wo.ItemContainer},Modal:function(){return fm},ModalBody:function(){return sm},ModalButton:function(){return um},ModalCloseButton:function(){return cm},ModalContent:function(){return im},ModalFooter:function(){return lm},ModalHeader:function(){return am},MultiRangeInput:function(){return Zo.Z},NavigationTab:function(){return pu},NavigationTabs:function(){return ou},NetdataTable:function(){return rO},News:function(){return nu},Pill:function(){return Nv},Popover:function(){return zo},PortalSidebar:function(){return Pt},ProgressBar:function(){return zv},RadioButton:function(){return So.default},Select:function(){return SS},Sidebar:function(){return vt},Tab:function(){return To},TabSeparator:function(){return hu},Table:function(){return _r},Tabs:function(){return Do},Text:function(){return He.Text},TextBig:function(){return He.TextBig},TextBigger:function(){return He.TextBigger},TextFemto:function(){return He.TextFemto},TextHuge:function(){return He.TextHuge},TextInput:function(){return an.oi},TextMicro:function(){return He.TextMicro},TextNano:function(){return He.TextNano},TextSmall:function(){return He.TextSmall},Toggle:function(){return yo},Tooltip:function(){return Xe},VirtualizedTable:function(){return no},breakpoints:function(){return Tt},calcSize:function(){return ee.nF},devices:function(){return Rt},extendTheme:function(){return ee.B1},getColor:function(){return ee.Lq},getGutterHeight:function(){return ee.j2},getOrElse:function(){return ee.fS},getRgbColor:function(){return ee.zt},getSizeBy:function(){return ee.sq},getSizeUnit:function(){return ee.T2},iconsList:function(){return _e.eS},makeBig:function(){return He.makeBig},makeBigger:function(){return He.makeBigger},makeBox:function(){return Yo.Z},makeFemto:function(){return He.makeFemto},makeFlex:function(){return $o.Z},makeH0:function(){return He.makeH0},makeH1:function(){return He.makeH1},makeH2:function(){return He.makeH2},makeH3:function(){return He.makeH3},makeH4:function(){return He.makeH4},makeH5:function(){return He.makeH5},makeH6:function(){return He.makeH6},makeHuge:function(){return He.makeHuge},makeMicro:function(){return He.makeMicro},makeNano:function(){return He.makeNano},makeSmall:function(){return He.makeSmall},makeText:function(){return He.makeText},makeTypography:function(){return He.makeTypography},propOrElse:function(){return ee.yw},useCheckboxesList:function(){return on},useFocusedState:function(){return an.di},useInputStyles:function(){return an.a6},useInputValue:function(){return an.fC},useIntersection:function(){return dv},useNavigationArrow:function(){return Dg.default},useTouchedState:function(){return an.mz},webkitVisibleScrollbar:function(){return sn.f1}});var r={};n.r(r),n.d(r,{doFilterValuesMatch:function(){return Ki},findFilterValues:function(){return $i},isFilterValueRange:function(){return Qi},markSelectedFacetValuesFromFilters:function(){return Xi},mergeFilters:function(){return Ji},removeSingleFilterValue:function(){return Yi},serialiseFilter:function(){return ea}});var o={};n.r(o),n.d(o,{a11yNotify:function(){return cs},addFilter:function(){return $a},clearFilters:function(){return Xa},removeFilter:function(){return Ka},reset:function(){return Ja},setCurrent:function(){return Qa},setFilter:function(){return es},setResultsPerPage:function(){return ts},setSearchTerm:function(){return ns},setSort:function(){return rs},trackAutocompleteClickThrough:function(){return Ya},trackAutocompleteSuggestionClickThrough:function(){return fs},trackClickThrough:function(){return os}});var i=n(67294),a=n.t(i,2),s=n(60677),l=n(87462),u=n(97326),c=n(89611);function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,c.Z)(e,t)}var d=n(61120);var p=n(78814);function h(e,t,n){return h=(0,p.Z)()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&(0,c.Z)(o,n.prototype),o},h.apply(null,arguments)}function g(e){var t="function"===typeof Map?new Map:void 0;return g=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return h(e,arguments,(0,d.Z)(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,c.Z)(r,e)},g(e)}var v=function(e){function t(t){var n;return n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this,(0,u.Z)(n)}return f(t,e),t}(g(Error));function m(e){return Math.round(255*e)}function y(e,t,n){return m(e)+","+m(t)+","+m(n)}function b(e,t,n,r){if(void 0===r&&(r=y),0===t)return r(n,n,n);var o=(e%360+360)%360/60,i=(1-Math.abs(2*n-1))*t,a=i*(1-Math.abs(o%2-1)),s=0,l=0,u=0;o>=0&&o<1?(s=i,l=a):o>=1&&o<2?(s=a,l=i):o>=2&&o<3?(l=i,u=a):o>=3&&o<4?(l=a,u=i):o>=4&&o<5?(s=a,u=i):o>=5&&o<6&&(s=i,u=a);var c=n-i/2;return r(s+c,l+c,u+c)}var w={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var _=/^#[a-fA-F0-9]{6}$/,x=/^#[a-fA-F0-9]{8}$/,S=/^#[a-fA-F0-9]{3}$/,O=/^#[a-fA-F0-9]{4}$/,C=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,E=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,A=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,k=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;function M(e){if("string"!==typeof e)throw new v(3);var t=function(e){if("string"!==typeof e)return e;var t=e.toLowerCase();return w[t]?"#"+w[t]:e}(e);if(t.match(_))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(x)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(S))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(O)){var r=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:r}}var o=C.exec(t);if(o)return{red:parseInt(""+o[1],10),green:parseInt(""+o[2],10),blue:parseInt(""+o[3],10)};var i=E.exec(t.substring(0,50));if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])>1?parseFloat(""+i[4])/100:parseFloat(""+i[4])};var a=A.exec(t);if(a){var s="rgb("+b(parseInt(""+a[1],10),parseInt(""+a[2],10)/100,parseInt(""+a[3],10)/100)+")",l=C.exec(s);if(!l)throw new v(4,t,s);return{red:parseInt(""+l[1],10),green:parseInt(""+l[2],10),blue:parseInt(""+l[3],10)}}var u=k.exec(t.substring(0,50));if(u){var c="rgb("+b(parseInt(""+u[1],10),parseInt(""+u[2],10)/100,parseInt(""+u[3],10)/100)+")",f=C.exec(c);if(!f)throw new v(4,t,c);return{red:parseInt(""+f[1],10),green:parseInt(""+f[2],10),blue:parseInt(""+f[3],10),alpha:parseFloat(""+u[4])>1?parseFloat(""+u[4])/100:parseFloat(""+u[4])}}throw new v(5)}function P(e){return function(e){var t,n=e.red/255,r=e.green/255,o=e.blue/255,i=Math.max(n,r,o),a=Math.min(n,r,o),s=(i+a)/2;if(i===a)return void 0!==e.alpha?{hue:0,saturation:0,lightness:s,alpha:e.alpha}:{hue:0,saturation:0,lightness:s};var l=i-a,u=s>.5?l/(2-i-a):l/(i+a);switch(i){case n:t=(r-o)/l+(r<o?6:0);break;case r:t=(o-n)/l+2;break;default:t=(n-r)/l+4}return t*=60,void 0!==e.alpha?{hue:t,saturation:u,lightness:s,alpha:e.alpha}:{hue:t,saturation:u,lightness:s}}(M(e))}var R=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function T(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function I(e){return T(Math.round(255*e))}function B(e,t,n){return R("#"+I(e)+I(t)+I(n))}function j(e,t,n){return b(e,t,n,B)}function D(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return j(e,t,n);if("object"===typeof e&&void 0===t&&void 0===n)return j(e.hue,e.saturation,e.lightness);throw new v(1)}function L(e,t,n,r){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?j(e,t,n):"rgba("+b(e,t,n)+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?j(e.hue,e.saturation,e.lightness):"rgba("+b(e.hue,e.saturation,e.lightness)+","+e.alpha+")";throw new v(2)}function Z(e,t,n){if("number"===typeof e&&"number"===typeof t&&"number"===typeof n)return R("#"+T(e)+T(t)+T(n));if("object"===typeof e&&void 0===t&&void 0===n)return R("#"+T(e.red)+T(e.green)+T(e.blue));throw new v(6)}function N(e,t,n,r){if("string"===typeof e&&"number"===typeof t){var o=M(e);return"rgba("+o.red+","+o.green+","+o.blue+","+t+")"}if("number"===typeof e&&"number"===typeof t&&"number"===typeof n&&"number"===typeof r)return r>=1?Z(e,t,n):"rgba("+e+","+t+","+n+","+r+")";if("object"===typeof e&&void 0===t&&void 0===n&&void 0===r)return e.alpha>=1?Z(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new v(7)}var F=function(e){return"number"===typeof e.red&&"number"===typeof e.green&&"number"===typeof e.blue&&("number"!==typeof e.alpha||"undefined"===typeof e.alpha)},H=function(e){return"number"===typeof e.red&&"number"===typeof e.green&&"number"===typeof e.blue&&"number"===typeof e.alpha},V=function(e){return"number"===typeof e.hue&&"number"===typeof e.saturation&&"number"===typeof e.lightness&&("number"!==typeof e.alpha||"undefined"===typeof e.alpha)},z=function(e){return"number"===typeof e.hue&&"number"===typeof e.saturation&&"number"===typeof e.lightness&&"number"===typeof e.alpha};function U(e){if("object"!==typeof e)throw new v(8);if(H(e))return N(e);if(F(e))return Z(e);if(z(e))return L(e);if(V(e))return D(e);throw new v(8)}function G(e,t,n){return function(){var r=n.concat(Array.prototype.slice.call(arguments));return r.length>=t?e.apply(this,r):G(e,t,r)}}function W(e){return G(e,e.length,[])}function q(e,t,n){return Math.max(e,Math.min(t,n))}function $(e,t){if("transparent"===t)return t;var n=P(t);return U((0,l.Z)({},n,{lightness:q(0,1,n.lightness-parseFloat(e))}))}var Y=W($);function X(e,t){if("transparent"===t)return t;var n=P(t);return U((0,l.Z)({},n,{lightness:q(0,1,n.lightness+parseFloat(e))}))}var K=W(X);var J,Q,ee=n(50757),te=n(69498),ne=n(96069),re=n(1605),oe=n(21352),ie=n(98625),ae="default",se="hollow",le=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},ue=function(){return ue=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ue.apply(this,arguments)},ce=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},fe={light:ee.XU,dark:ee.Cs},de=(0,s.css)(J||(J=le(["\n border-color: ",";\n background-color: ",";\n color: ",";\n box-shadow: inset 0 4px 4px rgba(0, 0, 0, 0.25);\n"],["\n border-color: ",";\n background-color: ",";\n color: ",";\n box-shadow: inset 0 4px 4px rgba(0, 0, 0, 0.25);\n"])),(function(e){return e.colors.borderActive(e)}),(function(e){return e.colors.bgActive(e)}),(function(e){return e.colors.colorActive(e)})),pe=function(e){return e.neutral?(0,ee.Lq)(e.flavour===se?"textFocus":"text")(e):(0,ee.Lq)("primary")(e)},he=function(e){return e.neutral?(0,ee.Lq)("generic")(e):(0,ee.Lq)("primary")(e)},ge=function(e){return e.neutral?(0,ee.Lq)(e.flavour===se?"textFocus":"mainBackground")(e):(0,ee.Lq)(e.flavour===se?"secondaryColor":"mainBackground")(e)},ve=function(e){return e.neutral?(0,ee.Lq)("generic")(e):(0,ee.Lq)("accent")(e)},me=function(e){return e.neutral?(0,ee.Lq)("neutralHighlight")(e):(0,ee.Lq)(e.flavour===se?"secondaryHighlight":"primaryHighlight")(e)},ye=(0,ee.Lq)(["transparent","full"]),be=function(e){var t,n=e.flavour,r=void 0===n?ae:n,o=e.danger,i=e.warning,a=e.iconColor,s=o?(0,ee.Lq)("error"):void 0,l=i?(0,ee.Lq)("warning"):void 0,u=s||l,c=u?function(e){return K(.2,u(e))}:void 0,f=u?function(e){return Y(.2,u(e))}:void 0,d=a?(0,ee.Lq)(a):void 0,p=((t={})[ae]={color:ge,colorHover:ge,colorActive:ge,bg:u||pe,bgHover:c||ve,bgActive:f||me,border:u||pe,borderHover:c||ve,borderActive:f||me,iconColor:d||ge},t[se]={color:u||ge,colorHover:c||ge,colorActive:f||ge,bg:ye,bgHover:me,bgActive:me,border:u||he,borderHover:c||pe,borderActive:f||pe,iconColor:d||u||pe},t.borderless={color:u||pe,colorHover:c||me,colorActive:f||me,bg:ye,bgHover:ye,bgActive:ye,border:ye,borderHover:ye,borderActive:ye,iconColor:d||u||pe},t);return p[r]||p[ae]},we=s.default.button.attrs((function(e){var t=e.groupFirst,n=e.groupLast,r=e.groupMiddle,o=ce(e,["groupFirst","groupLast","groupMiddle"]);return ue({padding:o.padding||o.tiny?[.5]:o.small?[1,3]:[2],colors:be(o),round:t?{side:"left"}:n?{side:"right"}:!r},function(e){return e.themeType?ue(ue({},e),{theme:fe[e.themeType]}):ue(ue({},e),{theme:e.theme})}(o))}))(Q||(Q=le(["\n && {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n ",";\n\n font-weight: ",";\n font-size: ",";\n line-height: ",";\n white-space: nowrap;\n word-break: keep-all;\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n ","\n ","\n transition: all 150ms;\n\n background-color: ",";\n color: ",";\n\n border-width: 1px;\n border-style: solid;\n border-color: ",";\n ","\n box-sizing: border-box;\n\n text-decoration: none;\n & > span {\n ",";\n margin-left: ",";\n }\n\n &:hover {\n border-color: ",";\n background-color: ",";\n color: ",";\n text-decoration: none;\n\n .button-icon {\n fill: ",";\n }\n }\n\n &:active {\n ","\n }\n ","\n\n &:focus {\n outline: none;\n }\n\n .button-icon {\n height: ",";\n width: ",";\n fill: ",";\n }\n\n .button-icon__color {\n fill: ",";\n }\n .ntd-spinner {\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n }\n\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n }\n"],["\n && {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n ",";\n\n font-weight: ",";\n font-size: ",";\n line-height: ",";\n white-space: nowrap;\n word-break: keep-all;\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n ","\n ","\n transition: all 150ms;\n\n background-color: ",";\n color: ",";\n\n border-width: 1px;\n border-style: solid;\n border-color: ",";\n ","\n box-sizing: border-box;\n\n text-decoration: none;\n & > span {\n ",";\n margin-left: ",";\n }\n\n &:hover {\n border-color: ",";\n background-color: ",";\n color: ",";\n text-decoration: none;\n\n .button-icon {\n fill: ",";\n }\n }\n\n &:active {\n ","\n }\n ","\n\n &:focus {\n outline: none;\n }\n\n .button-icon {\n height: ",";\n width: ",";\n fill: ",";\n }\n\n .button-icon__color {\n fill: ",";\n }\n .ntd-spinner {\n fill: none;\n stroke-width: 17px;\n stroke-dasharray: 100;\n stroke-dashoffset: 100;\n animation: ntd-draw 1s linear infinite;\n stroke: ",";\n width: 24px;\n }\n\n .path {\n stroke: ",";\n }\n\n @keyframes ntd-draw {\n to {\n stroke-dashoffset: 0;\n }\n }\n }\n"])),oe.Z,(function(e){return e.strong?700:500}),(function(e){var t=e.small;return e.tiny?"10px":t?"12px":"14px"}),(0,ee.sq)(2.5),(function(e){return e.disabled?.4:1}),(function(e){return e.disabled?"none":"auto"}),te.Z,ne.Z,(function(e){return e.colors.bg(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.border(e)}),re.Z,ie.Z,(function(e){return e.hasIcon?"4px":"0px"}),(function(e){return e.colors.borderHover(e)}),(function(e){return e.colors.bgHover(e)}),(function(e){return e.colors.colorHover(e)}),(function(e){return e.colors.colorHover(e)}),de,(function(e){return e.active&&"\n ".concat(de,"\n ")}),(0,ee.sq)(2),(0,ee.sq)(2),(function(e){return e.colors.color(e)}),(function(e){return e.colors.iconColor(e)}),(function(e){return e.colors.color(e)}),(function(e){return e.colors.color(e)})),_e=n(11597),xe=n(54922),Se=n(32855),Oe=function(){return Oe=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Oe.apply(this,arguments)},Ce=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ee=(0,i.forwardRef)((function(e,t){var n=e.label,r=e.icon,o=e.flavour,a=e.isLoading,s=e.loadingLabel,l=e.onClick,u=e.textTransform,c=void 0===u?"firstLetter":u,f=e.iconColor,d=e.iconSize,p=e.iconWidth,h=e.iconHeight,g=e.children,v=void 0===g?n:g,m=Ce(e,["label","icon","flavour","isLoading","loadingLabel","onClick","textTransform","iconColor","iconSize","iconWidth","iconHeight","children"]);return i.createElement(we,Oe({flavour:o,textTransform:c,hasIcon:!!r||a,onClick:a?void 0:l,ref:t,iconColor:f},m),a&&i.createElement(xe.LoaderIcon,{className:"button-icon"}),r&&!a&&i.createElement(Se.default,{justifyContent:"center",alignItems:"center",width:"auto",height:"100%"},i.createElement(_e.JO,{size:d,className:f?"button-icon__color":"button-icon",title:r,name:r,width:p,height:h})),!!v&&i.createElement("span",null,a&&s||v))}));Ee.defaultProps={onClick:function(){},icon:null};var Ae,ke,Me,Pe,Re,Te=n(65588),Ie=n(24724),Be=n(11557),je=n(62928),De=n(88719),Le=0,Ze=function(){return--Le},Ne=function(e){return(0,i.useMemo)((function(){return e||Ze()}),[])},Fe={top:{bottom:"top"},left:{right:"left"},right:{left:"right"},bottom:{top:"bottom"}},He=n(90833),Ve=function(){return Ve=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ve.apply(this,arguments)},ze=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ue={right:1,bottom:2,left:3},Ge=function(e){var t=e.children,n=e.align,r=e.margin,o=void 0===r?[1]:r,a=e.background,s=void 0===a?"tooltip":a,l=ze(e,["children","align","margin","background"]);return i.createElement(Se.default,{column:"top"===n,columnReverse:"bottom"===n,rowReverse:"right"===n,margin:o},i.createElement(Se.default,Ve({background:s,padding:[1,2],round:!0,column:!0},l),"string"===typeof t?i.createElement(He.Text,{color:"bright"},t):t),n&&i.createElement(_e.JO,{name:"triangle",alignSelf:"center",color:s,rotate:Ue[n],height:"8px",width:"8px","data-testid":"drop-arrow"}))},We=function(){return We=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},We.apply(this,arguments)},qe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},$e=function(e){return"function"===typeof e?e():e},Ye=(0,i.forwardRef)((function(e,t){var n=e.plain,r=e.open,o=void 0!==r&&r,a=e.align,s=void 0===a?"top":a,l=e.dropProps,u=e.content,c=e.animation,f=e.disabled,d=e.zIndex,p=void 0===d?80:d,h=e.children,g=e.allowHoverOnTooltip,v=qe(e,["plain","open","align","dropProps","content","animation","disabled","zIndex","children","allowHoverOnTooltip"]),m=Ne(v["aria-describedby"]),y=(0,je.Z)(!1),b=y[0],w=y[2],_=y[3],x=(0,Be.default)(t),S=x[0],O=x[1],C=(0,De.Z)(h,O,We(We({onMouseEnter:w,onMouseLeave:g?function(){return setTimeout((function(){E.current||_()}),300)}:_,onFocus:w,onBlur:_},b&&{"aria-describedby":m}),v)),E=(0,i.useRef)(!1);return(0,i.useLayoutEffect)((function(){S.current&&o&&w()}),[]),u?i.createElement(i.Fragment,null,C,b&&S.current&&!f&&i.createElement(Ie.Z,We({noEvents:!g,align:(null===l||void 0===l?void 0:l.align)||Fe[s],hideShadow:!0,id:m,onClickOutside:_,onMouseEnter:function(){return E.current=!0},onMouseLeave:function(){E.current=!1,_()},target:S.current},l,{animation:c,onEsc:_,zIndex:p}),n?$e(u):i.createElement(Ge,{align:s},$e(u)))):h})),Xe=Ye,Ke=function(){return Ke=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ke.apply(this,arguments)},Je=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Qe=["neutral","black"],et=function(e){var t=e.content;return i.createElement(Se.default,{padding:[1.5,2],margin:[2],background:Qe,round:1,alignSelf:"start"},i.createElement(He.TextSmall,{color:"bright"},t))},tt=(0,i.forwardRef)((function(e,t){var n=e.iconColor,r=void 0===n?"nodeBadgeColor":n,o=e.flavour,a=void 0===o?"borderless":o,s=e.icon,l=e.disabled,u=e.onClick,c=e.width,f=void 0===c?"20px":c,d=e.height,p=void 0===d?"20px":d,h=e.iconSize,g=e.tooltip,v=void 0===g?"":g,m=Je(e,["iconColor","flavour","icon","disabled","onClick","width","height","iconSize","tooltip"]),y="default"===a;return i.createElement(Xe,{plain:!0,animation:!0,content:v&&i.createElement(et,{content:v})},i.createElement(Te.Z,Ke({cursor:"pointer",iconWidth:f,iconHeight:p,onClick:u,as:Ee,flavour:a,disabled:l,icon:s,iconColor:y?"white":r,iconSize:h,neutral:!y,ref:t},m)))})),nt=tt,rt=function(){return rt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},rt.apply(this,arguments)},ot=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},it=function(e,t){var n=0==e,r=e==t-1;return{groupFirst:n,groupLast:r,groupMiddle:!n&&!r}},at=function(e){var t=e.children,n=i.Children.toArray(t).length;return i.createElement(i.Fragment,null,i.Children.map(t,(function(e,t){if((0,i.isValidElement)(e)){var r=it(t,n);return(0,i.cloneElement)(e,r)}return e})))},st=function(e){var t=e.items,n=e.checked,r=e.onChange;return i.createElement(i.Fragment,null,t.map((function(e,o){var a=e.label,s=e.value,l=it(o,t.length);return i.createElement(Ee,rt({key:s,label:a,onClick:function(){return r(s)}},n!=s?{flavour:"hollow"}:{},l))})))},lt=function(e){var t=e.items,n=e.checked,r=e.onChange,o=e.children,a=ot(e,["items","checked","onChange","children"]);return i.createElement(Se.default,rt({alignItems:"center"},a),(null===t||void 0===t?void 0:t.length)?i.createElement(st,{items:t,checked:n,onChange:r}):i.createElement(at,null,o))},ut=n(90509),ct=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},ft=s.default.div(Ae||(Ae=ct(["\n display: flex;\n flex-direction: ",";\n top: 0;\n bottom: 0;\n height: 100vh;\n width: 100vw;\n"],["\n display: flex;\n flex-direction: ",";\n top: 0;\n bottom: 0;\n height: 100vh;\n width: 100vw;\n"])),(function(e){return e.isRight?"row-reverse":"row"})),dt=s.default.aside(ke||(ke=ct(["\n overflow: hidden;\n top: 0;\n bottom: 0;\n height: 100%;\n width: 50%;\n"],["\n overflow: hidden;\n top: 0;\n bottom: 0;\n height: 100%;\n width: 50%;\n"]))),pt=s.default.aside(Me||(Me=ct(["\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0; // needed for dashboard where body has some left-padding\n height: 100vh;\n width: 100vw;\n min-width: 100vw;\n max-width: 100vw;\n background-color: black;\n opacity: 0.3;\n z-index: 15;\n"],["\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0; // needed for dashboard where body has some left-padding\n height: 100vh;\n width: 100vw;\n min-width: 100vw;\n max-width: 100vw;\n background-color: black;\n opacity: 0.3;\n z-index: 15;\n"]))),ht=s.default.aside(Pe||(Pe=ct(["\n position: fixed;\n overflow: hidden;\n top: 0;\n ",": 0;\n bottom: 0;\n height: 100vh;\n width: 50vw;\n box-shadow: 0px ","px 68px rgba(0, 0, 0, 0.288);\n"],["\n position: fixed;\n overflow: hidden;\n top: 0;\n ",": 0;\n bottom: 0;\n height: 100vh;\n width: 50vw;\n box-shadow: 0px ","px 68px rgba(0, 0, 0, 0.288);\n"])),(0,ut.propOrElse)(["side"],"left"),(0,ut.propOrElse)(["shadowSide"],!0)?2:-2),gt=s.default.div(Re||(Re=ct(["\n display: flex;\n width: 50%;\n background-color: ",";\n box-shadow: inset 0px ","px 68px\n rgba(0, 0, 0, 0.288);\n"],["\n display: flex;\n width: 50%;\n background-color: ",";\n box-shadow: inset 0px ","px 68px\n rgba(0, 0, 0, 0.288);\n"])),(0,ut.getColor)("primary"),(0,ut.propOrElse)(["shadowSide"],!0)?2:-2),vt=function(e){var t=e.info,n=e.children,r=e.className,o=e.right,a=void 0!==o&&o;return i.createElement(ft,{isRight:a},i.createElement(dt,{className:r,shadowSide:a},n),i.createElement(gt,null,t))},mt=n(73935),yt=n(45697),bt=n.n(yt),wt=!("undefined"===typeof window||!window.document||!window.document.createElement),_t=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var xt=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),_t(t,[{key:"componentWillUnmount",value:function(){this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null}},{key:"render",value:function(){return wt?(this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode)),mt.createPortal(this.props.children,this.props.node||this.defaultNode)):null}}]),t}(i.Component);xt.propTypes={children:bt().node.isRequired,node:bt().any};var St=xt,Ot=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var Ct=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),Ot(t,[{key:"componentDidMount",value:function(){this.renderPortal()}},{key:"componentDidUpdate",value:function(e){this.renderPortal()}},{key:"componentWillUnmount",value:function(){mt.unmountComponentAtNode(this.defaultNode||this.props.node),this.defaultNode&&document.body.removeChild(this.defaultNode),this.defaultNode=null,this.portal=null}},{key:"renderPortal",value:function(e){this.props.node||this.defaultNode||(this.defaultNode=document.createElement("div"),document.body.appendChild(this.defaultNode));var t=this.props.children;"function"===typeof this.props.children.type&&(t=i.cloneElement(this.props.children)),this.portal=mt.unstable_renderSubtreeIntoContainer(this,t,this.props.node||this.defaultNode)}},{key:"render",value:function(){return null}}]),t}(i.Component),Et=Ct;Ct.propTypes={children:bt().node.isRequired,node:bt().any};var At=mt.createPortal?St:Et,kt=function(){return kt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},kt.apply(this,arguments)},Mt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Pt=function(e){var t=e.children,n=e.className,r=e.closeOnEsc,o=void 0!==r&&r,a=e.closeOnOverlayClick,s=void 0!==a&&a,l=e.onClose,u=void 0===l?function(){}:l,c=e.right,f=void 0!==c&&c,d=e.Wrapper,p=void 0===d?i.Fragment:d,h=Mt(e,["children","className","closeOnEsc","closeOnOverlayClick","onClose","right","Wrapper"]);(0,i.useEffect)((function(){var e=function(e){27===e.keyCode&&o&&u()};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[o,u]);return i.createElement(At,null,i.createElement(pt,{onClick:function(){s&&u()}}),i.createElement(p,null,i.createElement(ht,kt({className:n,shadowSide:f,side:f?"right":"left"},h),t)))},Rt={mobileSmall:"320px",mobile:"425px",tablet:"768px",laptop:"1024px",laptopLarge:"1200px",desktop:"1440px",desktopLarge:"2560px"},Tt={mobileSmall:"(min-width: ".concat(Rt.mobileSmall,")"),mobile:"(min-width: ".concat(Rt.mobile,")"),tablet:"(min-width: ".concat(Rt.tablet,")"),laptop:"(min-width: ".concat(Rt.laptop,")"),laptopLarge:"(min-width: ".concat(Rt.laptopLarge,")"),desktop:"(min-width: ".concat(Rt.desktop,")"),desktopLarge:"(min-width: ".concat(Rt.desktopLarge,")")},It=function(e){var t=e.defaultColor,n=void 0===t?"inputBorder":t,r=e.disabled,o=void 0===r?"inputBorder":r,i=e.error,a=void 0===i?"error":i,s=e.success;return{default:n,disabled:o,error:a,success:void 0===s?"success":s}},Bt=function(e){var t=e.disabled,n=e.success,r=e.error,o=e.focused,a=n?"success":r?"error":t?"disabled":"default";return{styles:{styledCheckbox:(0,i.useMemo)((function(){return{alignItems:"center",background:t?"mainBackgroundDisabled":"mainBackground",border:{size:"1px",type:"solid",color:o?It({defaultColor:"inputBorderFocus"})[a]:It({})[a],side:"all"},height:"inherit",justifyContent:"center",round:!0,width:"inherit",_focus:{border:{color:It({defaultColor:"controlFocused"})[a],side:"all",size:"1px",type:"solid"},boxShadow:{color:It({defaultColor:"controlFocused"})[a],size:"0 0 0 1px"}}}}),[a,o])}}};function jt(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){e.forEach((function(e){return function(e,t){if(null!=e)if(function(e){return"function"===typeof e}(e))e(t);else try{e.current=t}catch(n){throw new Error("Cannot assign value '".concat(t,"' to ref '").concat(e,"'"))}}(e,t)}))}}var Dt,Lt,Zt,Nt,Ft,Ht,Vt=function(){return Vt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Vt.apply(this,arguments)},zt=function(e){var t=e.onChange,n=e.indeterminate,r=e.disabled,o=e.checked,a=(0,je.Z)(),s=a[0],l=a[2],u=a[3],c=(0,i.useRef)(null),f=(0,i.useCallback)((function(e){r?e.preventDefault():null===t||void 0===t||t(e)}),[r,t]);return(0,i.useEffect)((function(){c.current&&(c.current.indeterminate=Boolean(n))}),[n]),{getCheckBoxProps:(0,i.useCallback)((function(){return{"data-focus":s?"":void 0,"data-disabled":r?"":void 0,indeterminate:n,checked:o}}),[s,r,o,n]),getInputProps:(0,i.useCallback)((function(e,t){return void 0===e&&(e=null),Vt(Vt({},t),{type:"checkbox",ref:jt(c,e),onChange:f,onFocus:l,onBlur:u,checked:o,disabled:r})}),[u,l,f,o,r]),state:{disabled:r,indeterminate:n,checked:o,isFocused:s}}},Ut=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Gt=function(){return Gt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Gt.apply(this,arguments)},Wt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},qt=(0,s.default)(Te.Z).attrs({height:"16px",width:"16px"})(Dt||(Dt=Ut(["\n box-sizing: border-box;\n"],["\n box-sizing: border-box;\n"]))),$t=(0,s.default)(_e.JO).attrs({height:"16px",width:"16px"})(Lt||(Lt=Ut(["\n flex-grow: 0;\n flex-shrink: 0;\n fill: ",";\n"],["\n flex-grow: 0;\n flex-shrink: 0;\n fill: ",";\n"])),(0,ut.getValidatedControlColor)("primary","accent")),Yt=s.default.input.attrs({type:"checkbox"})(Zt||(Zt=Ut(["\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n"],["\n border: 0;\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n"]))),Xt=(0,s.default)(Se.default)(Nt||(Nt=Ut(["\n box-sizing: border-box;\n transition: all 150ms;\n\n "," {\n visibility: ",";\n"],["\n box-sizing: border-box;\n transition: all 150ms;\n\n "," {\n visibility: ",";\n"])),$t,(function(e){return e.indeterminate||e.checked?"visible":"hidden"})),Kt=(0,s.default)(Se.default).attrs((function(e){return Gt({as:"label",position:"relative",alignItems:"center"},e)}))(Ft||(Ft=Ut(["\n cursor: ",";\n"],["\n cursor: ",";\n"])),(function(e){return e.disabled?"auto":"pointer"})),Jt=s.default.span(Ht||(Ht=Ut(["\n ",";\n ",";\n"],["\n ",";\n ",";\n"])),(function(e){var t=e.right,n=Wt(e,["right"]);return t?"margin-left: ".concat((0,ut.getSizeUnit)(n),"px;"):"margin-right: ".concat((0,ut.getSizeUnit)(n),"px;")}),(function(e){return e.disabled&&"opacity: 0.4;"})),Qt=function(){return Qt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Qt.apply(this,arguments)},en=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},tn=(0,i.forwardRef)((function(e,t){var n=e.alignSelf,r=e.checked,o=e.className,a=e["data-testid"],s=e.disabled,l=e.iconProps,u=e.indeterminate,c=e.Label,f=e.label,d=e.labelProps,p=e.labelPosition,h=e.margin,g=en(e,["alignSelf","checked","className","data-testid","disabled","iconProps","indeterminate","Label","label","labelProps","labelPosition","margin"]),v=Bt({disabled:s}).styles,m=zt(Qt({checked:r,disabled:s,indeterminate:u},g)),y=m.getInputProps,b=m.getCheckBoxProps;return i.createElement(Kt,Qt({alignSelf:n,className:o,"data-testid":a,disabled:s,margin:h},d),f&&"left"===p&&i.createElement(Jt,{as:c,disabled:s,left:!0},f),i.createElement(qt,null,i.createElement(Yt,Qt({"data-testid":"checkbox-input"},y(t,g))),i.createElement(Xt,Qt({"data-testid":"styled-checkbox"},v.styledCheckbox,b()),i.createElement($t,Qt({disabled:s,name:u?"checkmark_partial_s":"checkmark_s"},l)))),f&&"right"===p&&i.createElement(Jt,{as:c,disabled:s,right:!0},f))}));tn.defaultProps={Label:He.Text,labelPosition:"right"};var nn,rn,on=function(e,t){var n=e.every((function(e){return e})),r=!n&&e.includes(!1)&&e.includes(!0),o=(0,i.useCallback)((function(){n?t.forEach((function(e){return e(!1)})):t.forEach((function(e){return e(!0)}))}),[n,t]);return[n,r,o]},an=n(49713),sn=n(11275),ln=n(79521),un=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},cn=s.default.table(nn||(nn=un(["\n width: 100%;\n height: 100%;\n border-collapse: ",";\n position: ",";\n"],["\n width: 100%;\n height: 100%;\n border-collapse: ",";\n position: ",";\n"])),(function(e){return e.hasStickyHeader?"separate":"collapse"}),(function(e){return e.hasStickyHeader&&"relative"})),fn=s.default.div(rn||(rn=un(["\n display: ",";\n border-spacing: 0;\n"],["\n display: ",";\n border-spacing: 0;\n"])),(function(e){return e.hideHeader?"block":"inline-block"})),dn=function(){return dn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},dn.apply(this,arguments)},pn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},hn={mainContainer:{block:function(e){var t=e.children,n=e.className,r=e.callbackRef,o=pn(e,["children","className","callbackRef"]);return i.createElement(fn,dn({ref:r,className:"table-container ".concat(n||"")},o),t)},table:function(e){var t=e.children,n=e.callbackRef,r=pn(e,["children","callbackRef"]);return i.createElement(cn,dn({ref:n},r),t)}},tbody:{block:function(e){var t=e.children,n=pn(e,["children"]);return i.createElement("div",dn({className:"table-body"},n),t)},table:function(e){var t=e.children,n=pn(e,["children"]);return i.createElement("tbody",dn({},n),t)}}},gn=function(e){var t=e.children,n=e.layoutType,r=pn(e,["children","layoutType"]);return(0,hn.mainContainer[n])(dn({children:t},r))},vn=function(e){var t=e.children,n=e.layoutType,r=pn(e,["children","layoutType"]);return(0,hn.tbody[n])(dn({children:t},r))},mn=(0,i.createContext)({}),yn=(0,i.createContext)({});yn.displayName="StickyListContext";var bn,wn,_n,xn,Sn,On,Cn=mn.Provider,En=(mn.Consumer,yn.Provider),An=yn.Consumer,kn=n(99416),Mn=function(){return Mn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Mn.apply(this,arguments)},Pn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Rn=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},Tn=function(e,t){var n=e.reduce((function(e,n){var r="".concat(n.values[t]);return e[r]=Array.isArray(e[r])?e[r]:[],e[r].push(n),e}),{});return n},In=function(e,t){return e.priority-t.priority},Bn=function(e,t,n){return(0,kn.ETc)(["groupsOrder",t,n],e)||(0,kn.ETc)(["prioritySettings","unprioritizedGroupsPlacement"],e)||999999},jn=function(e,t){return(0,kn.zGw)((function(e){return e.filter((function(e){return e.subRows.length}))}),(0,kn.UID)((function(e){return Mn(Mn({},e),{priority:e.priority||Bn(t,e.groupByID,e.groupByVal)})})),(0,kn.DYV)(In))(e)},Dn=function(e){return e.reduce((function(e,t){var n=t.subRows,r=Pn(t,["subRows"]);return n.length>0?(e.push(Mn({subRows:[],isVirtualGroupHeader:!0},r)),(0,kn.zoF)(e,n)):(e.push(t),e)}),[])},Ln=function(e){var t=e.index,n=e.style,r=e.rows,o=e.verticalGutter,i=0!==t?r[t-1]:{},a=r[t].isVirtualGroupHeader||i.isVirtualGroupHeader,s=a?n.top:n.top+o,l=a?n.height:n.height-o;return Mn(Mn({},n),{top:s,height:l})},Zn=function(e){var t=e.selectedFlatRows,n=e.isGrouped,r=e.itemIsDisabled;return t.reduce((function(e,t){return n&&t.isGrouped||r(t.original)||e.push(t.original),e}),[])},Nn=function(e){return e.reduce((function(e,t){return t.column.InnerRow?function(e,t){var n;return Mn(Mn({},e),((n={})[t.column.id]=Mn(Mn({},Object.prototype.hasOwnProperty.call(e,t.column.id)&&e[t.column.id]),{parentRow:t}),n))}(e,t):t.column.parentRow?function(e,t){var n;return Mn(Mn({},e),((n={})[t.column.parentRow]=Mn(Mn({},Object.prototype.hasOwnProperty.call(e,t.column.parentRow)&&e[t.column.parentRow]),{children:Object.prototype.hasOwnProperty.call(e[t.column.parentRow],"children")?Rn(Rn([],e[t.column.parentRow].children,!0),[t],!1):[t]}),n))}(e,t):e}),{})},Fn=function(){return Fn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Fn.apply(this,arguments)},Hn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Vn=function(e){var t=e.cell,n=e.selectedRowIds,r=e.customProps,o=Hn(e,["cell","selectedRowIds","customProps"]);return"table"===(0,i.useContext)(mn)?i.createElement("td",Fn({},o),t.render("Cell",Fn({selectedRowIds:n},r))):i.createElement("div",Fn({className:"table-cell"},o),t.render("Cell",Fn({selectedRowIds:n},r)))},zn=function(){return zn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},zn.apply(this,arguments)},Un=function(e){var t=e.row,n=e.children,r=e.selectedRowIds,o=e.customProps;return t.render("InnerRow",zn({selectedRowIds:r,children:n},o))},Gn=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Wn=s.default.tr(bn||(bn=Gn(["\n cursor: ",";\n position: ",";\n"],["\n cursor: ",";\n position: ",";\n"])),(function(e){return e.onClick?"pointer":"auto"}),(function(e){return e.hasStickyHeader?"static":"relative"})),qn=s.default.div(wn||(wn=Gn(["\n position: relative;\n"],["\n position: relative;\n"]))),$n=function(){return $n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},$n.apply(this,arguments)},Yn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Xn={row:{block:function(e){var t=e.children,n=Yn(e,["children"]);return i.createElement(qn,$n({className:"table-row"},n),t)},table:function(e){var t=e.children,n=Yn(e,["children"]);return i.createElement(Wn,$n({},n),t)}},group:{}},Kn=function(e){var t=e.children,n=e.layoutType,r=Yn(e,["children","layoutType"]);return(0,Xn.row[n])($n({children:t},r))},Jn=function(e){var t=e.row,n=e.layoutType,r=e.style,o=t.getRowProps();return"table"===n?i.createElement("tr",$n({title:"group-head"},o,{style:r}),i.createElement("td",{colSpan:t.cells.length},t.groupByVal)):i.createElement("div",$n({className:"group-head"},o,{style:r}),t.groupByVal)},Qn=function(e){var t=e.row,n=e.prepareRow,r=e.selectedRowIds,o=e.onRowClick,a=e.renderGroupHead,s=e.canToggleExpand,l=e.customProps,u=e.style,c=(0,i.useContext)(mn),f=t.subRows,d=t.isVirtualGroupHeader,p=(0,i.useMemo)((function(){return Nn(t.cells)}),[t.cells]),h=(0,i.useMemo)((function(){return o?function(e){o(t,e)}:o}),[o,t]),g=function(e){return e.map((function(e){var t=e.getCellProps(),n=t.key,o=Yn(t,["key"]);return i.createElement(Vn,$n({key:n,cell:e,selectedRowIds:r},o,{customProps:l}))}))};if(d||f.length>0)return a?i.createElement(i.Fragment,null,a({row:t,layoutType:c,prepareRow:n,selectedRowIds:r,customProps:l,style:u})):i.createElement(Jn,{row:t,layoutType:c,style:u});var v,m=l.hasStickyHeader;return i.createElement(Kn,$n({layoutType:c,hasStickyHeader:m},h&&{onClick:h},t.getRowProps({style:u}),s&&t.getToggleRowExpandedProps()),Object.keys(p).length?(v=p,Object.values(v).map((function(e){return i.createElement(Un,{row:e.parentRow,customProps:l,key:e.parentRow,selectedRowIds:r},g(e.children||[]))}))):g(t.cells))},er=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},tr=s.default.thead(_n||(_n=er(["\n & > tr th {\n border-spacing: 0;\n border-bottom: 1px solid #aeb3b7;\n padding-bottom: 5px;\n text-align: left;\n }\n"],["\n & > tr th {\n border-spacing: 0;\n border-bottom: 1px solid #aeb3b7;\n padding-bottom: 5px;\n text-align: left;\n }\n"]))),nr=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},rr=function(){return rr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},rr.apply(this,arguments)},or=(0,s.default)(Se.default)(xn||(xn=nr(["\n &:hover {\n opacity: 0.7;\n }\n"],["\n &:hover {\n opacity: 0.7;\n }\n"]))),ir=s.default.th(On||(On=nr(["\n position: ",";\n ",";\n"],["\n position: ",";\n ",";\n"])),(function(e){return e.hasStickyHeader&&"relative"}),(function(e){var t=e.background,n=void 0===t?"mainBackground":t,r=e.hasStickyHeader,o=e.stickyTop,i=void 0===o?0:o;return r&&(0,s.css)(Sn||(Sn=nr(["\n position: sticky;\n top: ",";\n background: ",";\n z-index: 1;\n "],["\n position: sticky;\n top: ",";\n background: ",";\n z-index: 1;\n "])),i,(0,ee.Lq)(n))})),ar=function(e){var t=e.column,n=e.sortableBy,r=e.customProps,o=(0,i.useState)(!1),a=o[0],s=o[1],l=(0,i.useContext)(mn),u=t.id,c=t.getSortByToggleProps,f=t.getHeaderProps,d=t.render,p=t.isSorted,h=t.isSortedDesc,g=n.includes(u),v=g&&a,m=(0,i.useMemo)((function(){return g?c():{}}),[g]),y=r.hasStickyHeader,b=r.stickyTop;return"table"===l?i.createElement(ir,rr({hasStickyHeader:y,stickyTop:b},m,f(),{onMouseEnter:function(){return s(!0)},onMouseLeave:function(){return s(!1)}}),g?i.createElement(or,{alignItems:"center",justifyContent:"start",height:{min:6},gap:2},d("Header",rr({},r)),p?i.createElement(_e.JO,{name:"arrow_s_down",color:"text",width:"10",height:"10",rotate:h?null:2,"data-testid":"columnHhead-sortingIcon"}):v&&i.createElement(_e.JO,{name:"arrow_s_down",color:"text",width:"10",height:"10",rotate:2})):d("Header",rr({},r))):i.createElement("div",rr({},m,f(),{className:"column-head"}),d("Header",rr({},r)))},sr=function(){return sr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},sr.apply(this,arguments)},lr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},ur={thead:{block:function(e){var t=e.children;return i.createElement("div",{className:"table-head"},t)},table:function(e){var t=e.children;return i.createElement(tr,null,t)}},headerGroup:{block:function(e){var t=e.children,n=lr(e,["children"]);return i.createElement("div",sr({className:"header-group"},n),t)},table:function(e){var t=e.children,n=lr(e,["children"]);return i.createElement("tr",sr({},n),t)}}},cr=function(e){var t=e.children,n=e.layoutType;return(0,ur.thead[n])({children:t})},fr=function(e){var t=e.children,n=e.layoutType,r=lr(e,["children","layoutType"]);return(0,ur.headerGroup[n])(sr({children:t},r))},dr=function(e){var t=e.headerGroups,n=e.sortableBy,r=e.customProps,o=(0,i.useContext)(mn);return i.createElement(cr,{layoutType:o},t.map((function(e){var t=e.getHeaderGroupProps(),a=t.key,s=lr(t,["key"]);return i.createElement(fr,sr({key:a},s,{layoutType:o}),e.headers.map((function(e){var t=e.getHeaderProps().key;return i.createElement(ar,{key:t,column:e,sortableBy:n,customProps:r})})))})))},pr=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},hr=[ln.useGlobalFilter,ln.useColumnOrder,ln.useGroupBy,ln.useSortBy,ln.useExpanded,ln.usePagination,ln.useRowSelect],gr=pr(pr([],hr,!0),[ln.useBlockLayout],!1),vr=function(){return vr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},vr.apply(this,arguments)},mr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},yr=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},br=function(){return!1},wr=function(e){var t=e.layoutType,n=e.dataTestId,r=e.getTableProps,o=e.getTableBodyProps,a=e.prepareRow,s=e.renderRowSubComponent,l=e.className,u=e.callbackRef,c=e.customProps,f=void 0===c?{}:c,d=e.headerGroups,p=e.sortableBy,h=e.tableRows,g=e.onRowClick,v=e.selectedRowIds,m=e.renderGroupHead,y=e.visibleColumns;return i.createElement(Cn,{value:t},i.createElement(gn,vr({"data-testid":n,layoutType:t},r(),{className:l,callbackRef:u,hasStickyHeader:f.hasStickyHeader,stickyTop:f.stickyTop}),i.createElement(dr,{headerGroups:d,sortableBy:p,customProps:f}),i.createElement(vn,vr({layoutType:t},o()),h.map((function(e){return a(e),i.createElement(i.Fragment,{key:e.id},i.createElement(Qn,{canToggleExpand:!!s,customProps:f,row:e,prepareRow:a,onRowClick:g,selectedRowIds:v,renderGroupHead:m}),e.isExpanded&&s?i.createElement("tr",null,i.createElement("td",{colSpan:y.length},s({row:e}))):null)})))))};function _r(e){var t=e.groupsOrderSettings,n=e.layoutType,r=void 0===n?"table":n,o=e.columns,a=e.data,s=e["data-testid"],l=e.sortableBy,u=void 0===l?[]:l,c=e.selectedItemsClb,f=e.toggleSelectedItemClb,d=e.itemIsDisabled,p=void 0===d?br:d,h=e.autoResetSelectedRows,g=void 0!==h&&h,v=e.autoResetSortBy,m=void 0!==v&&v,y=e.autoResetGroupBy,b=void 0!==y&&y,w=e.autoResetFilters,_=void 0!==w&&w,x=e.autoResetExpanded,S=void 0!==x&&x,O=e.withPagination,C=void 0!==O&&O,E=e.showTotalPages,A=void 0!==E&&E,k=e.controlledState,M=void 0===k?{}:k,P=e.renderGroupHead,R=e.initialState,T=void 0===R?{}:R,I=e.className,B=e.paginationContainerStyles,j=void 0===B?{}:B,D=e.callbackRef,L=e.groupByFn,Z=void 0===L?Tn:L,N=e.disableGlobalFilter,F=void 0!==N&&N,H=e.globalFilter,V=e.filterTypes,z=e.dataResultsCallback,U=e.renderRowSubComponent,G=e.onRowClick,W=e.onGoToPrevious,q=void 0===W?function(){}:W,$=e.onGoToNext,Y=void 0===$?function(){}:$,X=mr(e,["groupsOrderSettings","layoutType","columns","data","data-testid","sortableBy","selectedItemsClb","toggleSelectedItemClb","itemIsDisabled","autoResetSelectedRows","autoResetSortBy","autoResetGroupBy","autoResetFilters","autoResetExpanded","withPagination","showTotalPages","controlledState","renderGroupHead","initialState","className","paginationContainerStyles","callbackRef","groupByFn","disableGlobalFilter","globalFilter","filterTypes","dataResultsCallback","renderRowSubComponent","onRowClick","onGoToPrevious","onGoToNext"]),K=(0,i.useMemo)((function(){return M.columnOrder||o.map((function(e){return e.id}))}),[o,M.columnOrder]),J="block"===r?gr:hr,Q=ln.useTable.apply(void 0,yr([{columns:o,data:a,initialState:T,autoResetSelectedRows:g,autoResetSortBy:m,autoResetGroupBy:b,autoResetFilters:_,autoResetExpanded:S,disableGlobalFilter:F,globalFilter:H,filterTypes:V,groupByFn:Z,useControlledState:function(e){return i.useMemo((function(){return vr(vr(vr({},e),M),{columnOrder:K})}),[e,M])},toggleSelectedItemClb:f,itemIsDisabled:p}],J,!1)),ee=Q.getTableProps,te=Q.getTableBodyProps,ne=Q.headerGroups,re=Q.rows,oe=Q.prepareRow,ie=Q.selectedFlatRows,ae=Q.isAllRowsSelected,se=Q.state,le=se.selectedRowIds,ue=se.groupBy,ce=se.pageIndex,fe=Q.toggleAllRowsExpanded,de=Q.isAllRowsExpanded,pe=Q.visibleColumns,he=Q.page,ge=Q.canPreviousPage,ve=Q.canNextPage,me=Q.nextPage,ye=Q.previousPage,be=Q.pageCount;(0,i.useEffect)((function(){if((0===ie.length||ae)&&c){var e=ue.length>0,t=Zn({selectedFlatRows:ie,isGrouped:e,itemIsDisabled:p});c(t)}}),[ie,ae,c,ue,p]),(0,i.useEffect)((function(){de||U||fe()}),[de,fe]);var we=(0,i.useMemo)((function(){return ue.length>0&&t&&t.groupsOrder[ue[0]]?jn(re,t):re}),[ue,t,re]),xe=(0,i.useMemo)((function(){return C?he:we}),[C,he,we]),Oe=C&&be>1,Ce=(0,i.useCallback)((function(){q(),ye()}),[ye,q]),Ee=(0,i.useCallback)((function(){Y(),me()}),[me,Y]);return(0,i.useEffect)((function(){if(z){var e=Dn(we).filter((function(e){return!e.isVirtualGroupHeader}));z(e)}}),[we,z]),Oe?i.createElement(Se.default,vr({column:!0,justifyContent:"between",alignItems:"center",gap:1},j),i.createElement(wr,{layoutType:r,dataTestId:s,getTableProps:ee,getTableBodyProps:te,prepareRow:oe,renderRowSubComponent:U,className:I,callbackRef:D,customProps:X,headerGroups:ne,sortableBy:u,tableRows:xe,onRowClick:G,selectedRowIds:le,renderGroupHead:P,visibleColumns:pe}),i.createElement(Se.default,{justifyContent:"between",alignItems:"center",gap:6,"data-testid":"table-pagination"},i.createElement(_e.JO,{name:"chevron_left",color:"text",cursor:"pointer",disabled:!ge,onClick:Ce}),i.createElement(He.Text,{color:"textDescription"},ce+1,A&&" / ".concat(be)),i.createElement(_e.JO,{name:"chevron_left",color:"text",cursor:"pointer",disabled:!ve,onClick:Ee,rotate:2}))):i.createElement(wr,{layoutType:r,dataTestId:s,getTableProps:ee,getTableBodyProps:te,prepareRow:oe,renderRowSubComponent:U,className:I,callbackRef:D,customProps:X,headerGroups:ne,sortableBy:u,tableRows:xe,onRowClick:G,selectedRowIds:le,renderGroupHead:P,visibleColumns:pe})}var xr=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function Sr(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],o=t[n],!(r===o||xr(r)&&xr(o)))return!1;var r,o;return!0}var Or=function(e,t){var n;void 0===t&&(t=Sr);var r,o=[],i=!1;return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return i&&n===this&&t(a,o)||(r=e.apply(this,a),i=!0,n=this,o=a),r}},Cr="object"===typeof performance&&"function"===typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function Er(e){cancelAnimationFrame(e.id)}function Ar(e,t){var n=Cr();var r={id:requestAnimationFrame((function o(){Cr()-n>=t?e.call(null):r.id=requestAnimationFrame(o)}))};return r}var kr=-1;function Mr(e){if(void 0===e&&(e=!1),-1===kr||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),kr=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return kr}var Pr=null;function Rr(e){if(void 0===e&&(e=!1),null===Pr||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?Pr="positive-descending":(t.scrollLeft=1,Pr=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),Pr}return Pr}var Tr=function(e,t){return e};function Ir(e){var t,n=e.getItemOffset,r=e.getEstimatedTotalSize,o=e.getItemSize,a=e.getOffsetForIndexAndAlignment,s=e.getStartIndexForOffset,c=e.getStopIndexForStartIndex,d=e.initInstanceProps,p=e.shouldResetStyleCacheOnItemSizeChange,h=e.validateProps;return t=function(e){function t(t){var r;return(r=e.call(this,t)||this)._instanceProps=d(r.props,(0,u.Z)(r)),r._outerRef=void 0,r._resetIsScrollingTimeoutId=null,r.state={instance:(0,u.Z)(r),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof r.props.initialScrollOffset?r.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},r._callOnItemsRendered=void 0,r._callOnItemsRendered=Or((function(e,t,n,o){return r.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:o})})),r._callOnScroll=void 0,r._callOnScroll=Or((function(e,t,n){return r.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})})),r._getItemStyle=void 0,r._getItemStyle=function(e){var t,i=r.props,a=i.direction,s=i.itemSize,l=i.layout,u=r._getItemStyleCache(p&&s,p&&l,p&&a);if(u.hasOwnProperty(e))t=u[e];else{var c=n(r.props,e,r._instanceProps),f=o(r.props,e,r._instanceProps),d="horizontal"===a||"horizontal"===l,h="rtl"===a,g=d?c:0;u[e]=t={position:"absolute",left:h?void 0:g,right:h?g:void 0,top:d?0:c,height:d?"100%":f,width:d?f:"100%"}}return t},r._getItemStyleCache=void 0,r._getItemStyleCache=Or((function(e,t,n){return{}})),r._onScrollHorizontal=function(e){var t=e.currentTarget,n=t.clientWidth,o=t.scrollLeft,i=t.scrollWidth;r.setState((function(e){if(e.scrollOffset===o)return null;var t=r.props.direction,a=o;if("rtl"===t)switch(Rr()){case"negative":a=-o;break;case"positive-descending":a=i-n-o}return a=Math.max(0,Math.min(a,i-n)),{isScrolling:!0,scrollDirection:e.scrollOffset<o?"forward":"backward",scrollOffset:a,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._onScrollVertical=function(e){var t=e.currentTarget,n=t.clientHeight,o=t.scrollHeight,i=t.scrollTop;r.setState((function(e){if(e.scrollOffset===i)return null;var t=Math.max(0,Math.min(i,o-n));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._outerRefSetter=function(e){var t=r.props.outerRef;r._outerRef=e,"function"===typeof t?t(e):null!=t&&"object"===typeof t&&t.hasOwnProperty("current")&&(t.current=e)},r._resetIsScrollingDebounced=function(){null!==r._resetIsScrollingTimeoutId&&Er(r._resetIsScrollingTimeoutId),r._resetIsScrollingTimeoutId=Ar(r._resetIsScrolling,150)},r._resetIsScrolling=function(){r._resetIsScrollingTimeoutId=null,r.setState({isScrolling:!1},(function(){r._getItemStyleCache(-1,null)}))},r}f(t,e),t.getDerivedStateFromProps=function(e,t){return Br(e,t),h(e),null};var g=t.prototype;return g.scrollTo=function(e){e=Math.max(0,e),this.setState((function(t){return t.scrollOffset===e?null:{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}}),this._resetIsScrollingDebounced)},g.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props,r=n.itemCount,o=n.layout,i=this.state.scrollOffset;e=Math.max(0,Math.min(e,r-1));var s=0;if(this._outerRef){var l=this._outerRef;s="vertical"===o?l.scrollWidth>l.clientWidth?Mr():0:l.scrollHeight>l.clientHeight?Mr():0}this.scrollTo(a(this.props,e,t,i,this._instanceProps,s))},g.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,r=e.layout;if("number"===typeof n&&null!=this._outerRef){var o=this._outerRef;"horizontal"===t||"horizontal"===r?o.scrollLeft=n:o.scrollTop=n}this._callPropsCallbacks()},g.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,r=this.state,o=r.scrollOffset;if(r.scrollUpdateWasRequested&&null!=this._outerRef){var i=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(Rr()){case"negative":i.scrollLeft=-o;break;case"positive-ascending":i.scrollLeft=o;break;default:var a=i.clientWidth,s=i.scrollWidth;i.scrollLeft=s-a-o}else i.scrollLeft=o;else i.scrollTop=o}this._callPropsCallbacks()},g.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&Er(this._resetIsScrollingTimeoutId)},g.render=function(){var e=this.props,t=e.children,n=e.className,o=e.direction,a=e.height,s=e.innerRef,u=e.innerElementType,c=e.innerTagName,f=e.itemCount,d=e.itemData,p=e.itemKey,h=void 0===p?Tr:p,g=e.layout,v=e.outerElementType,m=e.outerTagName,y=e.style,b=e.useIsScrolling,w=e.width,_=this.state.isScrolling,x="horizontal"===o||"horizontal"===g,S=x?this._onScrollHorizontal:this._onScrollVertical,O=this._getRangeToRender(),C=O[0],E=O[1],A=[];if(f>0)for(var k=C;k<=E;k++)A.push((0,i.createElement)(t,{data:d,key:h(k,d),index:k,isScrolling:b?_:void 0,style:this._getItemStyle(k)}));var M=r(this.props,this._instanceProps);return(0,i.createElement)(v||m||"div",{className:n,onScroll:S,ref:this._outerRefSetter,style:(0,l.Z)({position:"relative",height:a,width:w,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},y)},(0,i.createElement)(u||c||"div",{children:A,ref:s,style:{height:x?"100%":M,pointerEvents:_?"none":void 0,width:x?M:"100%"}}))},g._callPropsCallbacks=function(){if("function"===typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],r=e[2],o=e[3];this._callOnItemsRendered(t,n,r,o)}if("function"===typeof this.props.onScroll){var i=this.state,a=i.scrollDirection,s=i.scrollOffset,l=i.scrollUpdateWasRequested;this._callOnScroll(a,s,l)}},g._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,r=this.state,o=r.isScrolling,i=r.scrollDirection,a=r.scrollOffset;if(0===t)return[0,0,0,0];var l=s(this.props,a,this._instanceProps),u=c(this.props,l,a,this._instanceProps),f=o&&"backward"!==i?1:Math.max(1,n),d=o&&"forward"!==i?1:Math.max(1,n);return[Math.max(0,l-f),Math.max(0,Math.min(t-1,u+d)),l,u]},t}(i.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var Br=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},jr=function(e,t,n){var r=e.itemSize,o=n.itemMetadataMap,i=n.lastMeasuredIndex;if(t>i){var a=0;if(i>=0){var s=o[i];a=s.offset+s.size}for(var l=i+1;l<=t;l++){var u=r(l);o[l]={offset:a,size:u},a+=u}n.lastMeasuredIndex=t}return o[t]},Dr=function(e,t,n,r,o){for(;r<=n;){var i=r+Math.floor((n-r)/2),a=jr(e,i,t).offset;if(a===o)return i;a<o?r=i+1:a>o&&(n=i-1)}return r>0?r-1:0},Lr=function(e,t,n,r){for(var o=e.itemCount,i=1;n<o&&jr(e,n,t).offset<r;)n+=i,i*=2;return Dr(e,t,Math.min(n,o-1),Math.floor(n/2),r)},Zr=function(e,t){var n=e.itemCount,r=t.itemMetadataMap,o=t.estimatedItemSize,i=t.lastMeasuredIndex,a=0;if(i>=n&&(i=n-1),i>=0){var s=r[i];a=s.offset+s.size}return a+(n-i-1)*o},Nr=Ir({getItemOffset:function(e,t,n){return jr(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:Zr,getOffsetForIndexAndAlignment:function(e,t,n,r,o,i){var a=e.direction,s=e.height,l=e.layout,u=e.width,c="horizontal"===a||"horizontal"===l?u:s,f=jr(e,t,o),d=Zr(e,o),p=Math.max(0,Math.min(d-c,f.offset)),h=Math.max(0,f.offset-c+f.size+i);switch("smart"===n&&(n=r>=h-c&&r<=p+c?"auto":"center"),n){case"start":return p;case"end":return h;case"center":return Math.round(h+(p-h)/2);default:return r>=h&&r<=p?r:r<h?h:p}},getStartIndexForOffset:function(e,t,n){return function(e,t,n){var r=t.itemMetadataMap,o=t.lastMeasuredIndex;return(o>0?r[o].offset:0)>=n?Dr(e,t,o,0,n):Lr(e,t,Math.max(0,o),n)}(e,n,t)},getStopIndexForStartIndex:function(e,t,n,r){for(var o=e.direction,i=e.height,a=e.itemCount,s=e.layout,l=e.width,u="horizontal"===o||"horizontal"===s?l:i,c=jr(e,t,r),f=n+u,d=c.offset+c.size,p=t;p<a-1&&d<f;)p++,d+=jr(e,p,r).size;return p},initInstanceProps:function(e,t){var n={itemMetadataMap:{},estimatedItemSize:e.estimatedItemSize||50,lastMeasuredIndex:-1};return t.resetAfterIndex=function(e,r){void 0===r&&(r=!0),n.lastMeasuredIndex=Math.min(n.lastMeasuredIndex,e-1),t._getItemStyleCache(-1),r&&t.forceUpdate()},n},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){e.itemSize}}),Fr=Ir({getItemOffset:function(e,t){return t*e.itemSize},getItemSize:function(e,t){return e.itemSize},getEstimatedTotalSize:function(e){var t=e.itemCount;return e.itemSize*t},getOffsetForIndexAndAlignment:function(e,t,n,r,o,i){var a=e.direction,s=e.height,l=e.itemCount,u=e.itemSize,c=e.layout,f=e.width,d="horizontal"===a||"horizontal"===c?f:s,p=Math.max(0,l*u-d),h=Math.min(p,t*u),g=Math.max(0,t*u-d+u+i);switch("smart"===n&&(n=r>=g-d&&r<=h+d?"auto":"center"),n){case"start":return h;case"end":return g;case"center":var v=Math.round(g+(h-g)/2);return v<Math.ceil(d/2)?0:v>p+Math.floor(d/2)?p:v;default:return r>=g&&r<=h?r:r<g?g:h}},getStartIndexForOffset:function(e,t){var n=e.itemCount,r=e.itemSize;return Math.max(0,Math.min(n-1,Math.floor(t/r)))},getStopIndexForStartIndex:function(e,t,n){var r=e.direction,o=e.height,i=e.itemCount,a=e.itemSize,s=e.layout,l=e.width,u=t*a,c="horizontal"===r||"horizontal"===s?l:o,f=Math.ceil((c+n-u)/a);return Math.max(0,Math.min(i-1,t+f-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){e.itemSize}});var Hr,Vr,zr=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Ur=(0,s.default)(Fr)(Hr||(Hr=zr(["\n ","\n"],["\n ","\n"])),sn.f1),Gr=(0,s.default)(Nr)(Vr||(Vr=zr(["\n ","\n"],["\n ","\n"])),sn.f1),Wr=function(){return Wr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Wr.apply(this,arguments)},qr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},$r=function(e){var t=e.data,n=e.index,r=e.style,o=t.ItemRenderer;return i.createElement(o,{index:n,style:r,data:t})},Yr=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.style,o=(r.width,qr(r,["width"]));qr(e,["children","style"]);return i.createElement(An,null,(function(e){var r=e.getTableProps,a=e.getTableBodyProps,s=e.headerGroups,l=e.hideHeader,u=e.sortableBy,c=e.className,f=e.customProps,d=e.layoutType;return i.createElement(gn,Wr({style:o,layoutType:d,hideHeader:l},r(),{className:c,callbackRef:t}),!l&&i.createElement(dr,{headerGroups:s,sortableBy:u,customProps:f}),i.createElement(vn,Wr({layoutType:d},a()),n))}))})),Xr=function(e){var t=e.children,n=e.getTableProps,r=e.getTableBodyProps,o=e.headerGroups,a=e.hideHeader,s=e.sortableBy,l=e.className,u=e.customProps,c=e.layoutType,f=e.variableSize,d=e.callbackRef,p=e.itemKey,h=e.orderedRows,g=qr(e,["children","getTableProps","getTableBodyProps","headerGroups","hideHeader","sortableBy","className","customProps","layoutType","variableSize","callbackRef","itemKey","orderedRows"]);return i.createElement(En,{value:{ItemRenderer:t,getTableProps:n,getTableBodyProps:r,headerGroups:o,hideHeader:a,sortableBy:s,className:l,customProps:u,layoutType:c}},f?i.createElement(Gr,Wr({itemData:{ItemRenderer:t,orderedRows:h},ref:d,itemKey:p},g),$r):i.createElement(Ur,Wr({itemData:{ItemRenderer:t,orderedRows:h},ref:d,itemKey:p},g),$r))};Xr.defaultProps={innerElementType:Yr};var Kr=function(){return Kr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Kr.apply(this,arguments)},Jr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Qr=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},eo=function(e){return String(e)},to=function(){return!1};function no(e){var t=e.groupsOrderSettings,n=e.layoutType,r=void 0===n?"table":n,o=e.columns,a=e.data,s=e.sortableBy,l=void 0===s?[]:s,u=e.selectedItemsClb,c=e.toggleSelectedItemClb,f=e.itemIsDisabled,d=void 0===f?to:f,p=e.autoResetSelectedRows,h=void 0!==p&&p,g=e.autoResetSortBy,v=void 0!==g&&g,m=e.autoResetGroupBy,y=void 0!==m&&m,b=e.autoResetFilters,w=void 0!==b&&b,_=e.autoResetExpanded,x=void 0!==_&&_,S=e.controlledState,O=void 0===S?{}:S,C=e.renderGroupHead,E=e.initialState,A=void 0===E?{}:E,k=e.className,M=e.hideHeader,P=void 0!==M&&M,R=e.groupByFn,T=void 0===R?Tn:R,I=e.disableGlobalFilter,B=void 0!==I&&I,j=e.globalFilter,D=e.filterTypes,L=e.virtualizedSettings,Z=L.width,N=L.height,F=L.variableSize,H=void 0!==F&&F,V=L.overscanCount,z=L.itemSize,U=L.verticalGutter,G=void 0===U?0:U,W=L.itemKey,q=void 0===W?eo:W,$=L.rendererHash,Y=L.innerRef,X=L.outerRef,K=L.onItemsRendered,J=L.onScroll,Q=L.useIsScrolling,ee=e.callbackRef,te=e.dataResultsCallback,ne=Jr(e,["groupsOrderSettings","layoutType","columns","data","sortableBy","selectedItemsClb","toggleSelectedItemClb","itemIsDisabled","autoResetSelectedRows","autoResetSortBy","autoResetGroupBy","autoResetFilters","autoResetExpanded","controlledState","renderGroupHead","initialState","className","hideHeader","groupByFn","disableGlobalFilter","globalFilter","filterTypes","virtualizedSettings","callbackRef","dataResultsCallback"]),re=(0,i.useMemo)((function(){return O.columnOrder||o.map((function(e){return e.id}))}),[o,O.columnOrder]),oe=(0,i.useMemo)((function(){return $||"stableFallback"}),[$]),ie="block"===r?gr:hr,ae=ln.useTable.apply(void 0,Qr([{columns:o,data:a,initialState:A,autoResetSelectedRows:h,autoResetSortBy:v,autoResetGroupBy:y,autoResetFilters:w,disableGlobalFilter:B,globalFilter:j,filterTypes:D,autoResetExpanded:x,useControlledState:function(e){return i.useMemo((function(){return Kr(Kr(Kr({},e),O),{columnOrder:re})}),[e,O])},groupByFn:T,toggleSelectedItemClb:c,itemIsDisabled:d}],ie,!1)),se=ae.getTableProps,le=ae.getTableBodyProps,ue=ae.headerGroups,ce=ae.rows,fe=ae.prepareRow,de=ae.selectedFlatRows,pe=ae.isAllRowsSelected,he=ae.state,ge=he.selectedRowIds,ve=he.groupBy,me=ae.toggleAllRowsExpanded,ye=ae.isAllRowsExpanded;(0,i.useEffect)((function(){if((0===de.length||pe)&&u){var e=ve.length>0,t=Zn({selectedFlatRows:de,isGrouped:e,itemIsDisabled:d});u(t)}}),[de,pe,u,ve,d]),(0,i.useEffect)((function(){ye||me()}),[ye,me]);var be=(0,i.useMemo)((function(){return ve.length>0&&t&&t.groupsOrder[ve[0]]?Dn(jn(ce,t)):ce}),[ve,t,ce]),we=(0,i.useCallback)((function(e){return z(e,be)}),[z,be]),_e=H?we:z,xe=(0,i.useCallback)((function(e){var t=e.index,n=e.style,r=e.data,o=r.orderedRows[t];return fe(o),i.createElement(Qn,{key:o.id,style:Ln({index:t,style:n,verticalGutter:G,rows:r.orderedRows}),customProps:ne,row:o,prepareRow:fe,selectedRowIds:ge,renderGroupHead:C})}),[O,C,G,oe]),Se=(0,i.useCallback)((function(e){K&&K(e,be)}),[K,be]);return(0,i.useEffect)((function(){if(te){var e=be.filter((function(e){return!e.isVirtualGroupHeader}));te(e)}}),[be,te]),i.createElement(Cn,{value:r},i.createElement(Xr,{height:N,itemCount:be.length,itemSize:_e,width:Z,getTableProps:se,getTableBodyProps:le,headerGroups:ue,hideHeader:P,sortableBy:l,className:k,customProps:ne,layoutType:r,variableSize:H,overscanCount:V,callbackRef:ee,itemKey:q,orderedRows:be,innerRef:Y,outerRef:X,onItemsRendered:Se,onScroll:J,useIsScrolling:Q},xe))}var ro,oo,io,ao,so,lo=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},uo=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},co=s.default.div(ro||(ro=lo(["\n display: block;\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n"],["\n display: block;\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n"]))),fo=s.default.input.attrs({type:"checkbox"})(oo||(oo=lo(["\n display: none;\n"],["\n display: none;\n"]))),po=s.default.div(io||(io=lo(["\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n background: ",";\n border: 1px solid ",";\n border-radius: 100px;\n transition: all 150ms;\n\n display: block;\n position: relative;\n\n -webkit-tap-highlight-color: transparent;\n flex-shrink: 0;\n align-self: flex-start;\n cursor: pointer;\n pointer-events: ",';\n &:after {\n display: block;\n position: absolute;\n content: "";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n left: 5%;\n top: 50%;\n transform: translateY(-50%);\n transition: left 0.2s ease;\n opacity: ',";\n background-color: ",";\n }\n\n ","\n\n ",":focus + & {\n ","\n }\n"],["\n box-sizing: border-box;\n width: 40px;\n height: 20px;\n background: ",";\n border: 1px solid ",";\n border-radius: 100px;\n transition: all 150ms;\n\n display: block;\n position: relative;\n\n -webkit-tap-highlight-color: transparent;\n flex-shrink: 0;\n align-self: flex-start;\n cursor: pointer;\n pointer-events: ",';\n &:after {\n display: block;\n position: absolute;\n content: "";\n width: 16px;\n height: 16px;\n border-radius: 50%;\n left: 5%;\n top: 50%;\n transform: translateY(-50%);\n transition: left 0.2s ease;\n opacity: ',";\n background-color: ",";\n }\n\n ","\n\n ",":focus + & {\n ","\n }\n"])),(function(e){return e.disabled?(0,ut.getColor)("mainBackgroundDisabled"):(0,ut.getColor)("mainBackground")}),(0,ut.getColor)("border"),(function(e){return e.disabled?"none":"auto"}),(function(e){return e.disabled?"0.4":"1"}),(function(e){e.disabled;var t=e.colored,n=e.checked;return t?n?(0,ut.getColor)("primary"):(0,ut.getColor)("error"):(0,ut.getColor)("controlFocused")}),(function(e){return e.checked&&"\n &:after {\n left: 55%;\n }\n "}),fo,sn._Y),ho=s.default.label(ao||(ao=lo(["\n ","\n ","\n position: relative;\n cursor: pointer;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n"],["\n ","\n ","\n position: relative;\n cursor: pointer;\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n"])),te.Z,oe.Z),go=s.default.span(so||(so=lo(["\n ","\n"],["\n ","\n"])),(function(e){var t=e.right,n=uo(e,["right"]);return t?"margin-left: ".concat((0,ut.getSizeUnit)(n),"px;"):"margin-right: ".concat((0,ut.getSizeUnit)(n),"px;")})),vo=function(){return vo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},vo.apply(this,arguments)},mo=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},yo=function(e){var t=e.checked,n=e.disabled,r=e.className,o=e.labelLeft,a=e.labelRight,s=e.Label,l=e.colored,u=e.margin,c=e.alignSelf,f=mo(e,["checked","disabled","className","labelLeft","labelRight","Label","colored","margin","alignSelf"]);return i.createElement(ho,{className:r,margin:u,alignSelf:c},o&&i.createElement(go,{as:s,left:!0},o),i.createElement(co,null,i.createElement(fo,vo({disabled:n,checked:t},f)),i.createElement(po,{checked:t,disabled:n,colored:l,role:"switch"})),a&&i.createElement(go,{as:s,right:!0},a))};yo.defaultProps={colored:!1,Label:He.Text};var bo,wo,_o,xo,So=n(11307),Oo=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Co=function(){return Co=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Co.apply(this,arguments)},Eo=(0,s.default)(Se.default).attrs((function(e){return Co({column:!0,flexWrap:!1},e)}))(bo||(bo=Oo([""],[""]))),Ao=(0,s.default)(Se.default).attrs((function(e){return Co({as:"nav",row:!0,flexWrap:!1,justifyContent:"start",alignItems:"center",padding:[0,.5],flex:!1,border:e.noDefaultBorder&&{side:"bottom",size:"1px",type:"solid",color:"borderSecondary"}},e)}))(wo||(wo=Oo([""],[""]))),ko=(0,s.default)(Se.default)(_o||(_o=Oo(["\n white-space: nowrap;\n border-bottom: "," solid\n ",";\n box-sizing: border-box;\n\n min-width: ",";\n max-width: ",";\n height: ",";\n color: ",";\n font-weight: ",";\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n &:hover {\n border-bottom: "," solid ",";\n }\n\n & > span {\n font-weight: ",";\n }\n"],["\n white-space: nowrap;\n border-bottom: "," solid\n ",";\n box-sizing: border-box;\n\n min-width: ",";\n max-width: ",";\n height: ",";\n color: ",";\n font-weight: ",";\n\n cursor: pointer;\n opacity: ",";\n pointer-events: ",";\n\n &:hover {\n border-bottom: "," solid ",";\n }\n\n & > span {\n font-weight: ",";\n }\n"])),(function(e){return e.small?"2px":"4px"}),(function(e){return e.active?(0,ut.getColor)("accent"):(0,ut.getColor)(["transparent","full"])}),(function(e){var t=e.minWidth;return null!==t&&void 0!==t?t:(0,ut.getSizeBy)(10)}),(function(e){var t=e.maxWidth;return null!==t&&void 0!==t?t:(0,ut.getSizeBy)(26)}),(function(e){return e.small?(0,ut.getSizeBy)(4):(0,ut.getSizeBy)(6)}),(0,ut.getColor)("text"),(function(e){return e.active?"bold":"normal"}),(function(e){return e.disabled?.4:1}),(function(e){return e.disabled?"none":"auto"}),(function(e){return e.small?"2px":"4px"}),(0,ut.getColor)("primary"),(function(e){return e.active?"bold":"normal"})),Mo=(0,s.default)(Se.default)(xo||(xo=Oo(["\n white-space: nowrap;\n color: ",";\n padding: 4px 8px;\n background: ",";\n width: 100%;\n border-radius: 4px;\n cursor: ",";\n justify-content: flex-start;\n &:hover {\n background: ",";\n }\n"],["\n white-space: nowrap;\n color: ",";\n padding: 4px 8px;\n background: ",";\n width: 100%;\n border-radius: 4px;\n cursor: ",";\n justify-content: flex-start;\n &:hover {\n background: ",";\n }\n"])),(0,ut.getColor)("text"),(function(e){return e.active?(0,ut.getColor)("menuItemSelected"):(0,ut.getColor)(["transparent","full"])}),(function(e){return e.active?"default":"pointer"}),(function(e){return e.active?(0,ut.getColor)("menuItemSelected"):(0,ut.getColor)("menuItemHover")})),Po=function(){return Po=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Po.apply(this,arguments)},Ro=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},To=function(e){var t=e.index,n=e.isMenuItem,r=e.onChange,o=Ro(e,["index","isMenuItem","onChange"]),a=(0,i.useCallback)((function(){return r&&r(t||0)}),[t,r]),s=n?Mo:ko;return i.createElement(s,Po({justifyContent:"center",alignItems:"center",basis:"100%",onClick:o.disabled?void 0:a},o),o.label)},Io=function(){return Io=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Io.apply(this,arguments)},Bo=function(){return Bo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Bo.apply(this,arguments)},jo=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Do=(0,i.forwardRef)((function(e,t){var n=e.className,r=e.onChange,o=e.selected,a=e.children,s=e.TabsHeader,l=void 0===s?i.Fragment:s,u=e.TabContent,c=void 0===u?i.Fragment:u,f=e.noDefaultBorder,d=e.tabsProps,p=jo(e,["className","onChange","selected","children","TabsHeader","TabContent","noDefaultBorder","tabsProps"]),h=function(e,t){void 0===e&&(e=0);var n=(0,i.useState)(t?e:0),r=n[0],o=n[1],a=(0,i.useCallback)((function(e){t?t(e):o(e)}),[t]);return(0,i.useEffect)((function(){o(e||0)}),[e]),[r,a]}(o,r),g=h[0],v=h[1],m=function(e,t,n){return(0,i.useMemo)((function(){var r=[],o=[],a=null,s=-1,l=!1;return i.Children.forEach(e,(function(e,u){var c=(null===e||void 0===e?void 0:e.props)||{};s<0&&!c.disabled&&(s=u);var f=t===r.length,d="".concat(u,"-").concat(c.label);e&&o.push(i.createElement(To,Io({key:d},c,{onChange:n,index:u,active:f}))),f&&(l=!!c.disabled,a=c.children),r.push(u)})),[o,a,s,l]}),[e,t,n])}(a,g,v),y=m[0],b=m[1],w=m[2],_=m[3];return(0,i.useEffect)((function(){_&&g!==w&&v(w)}),[g,w,_,v]),i.createElement(Eo,Bo({className:n},p),i.createElement(l,{ref:t},i.createElement(Ao,Bo({className:"tabs",noDefaultBorder:f},d),y)),i.createElement(c,null,b))})),Lo=n(66243),Zo=n(65390),No=function(){return No=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},No.apply(this,arguments)},Fo=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ho=function(e){return"function"===typeof e?e():e},Vo=(0,i.forwardRef)((function(e,t){var n=e.plain,r=e.open,o=void 0!==r&&r,a=e.align,s=void 0===a?"top":a,l=e.dropProps,u=e.content,c=e.animation,f=e.children,d=e.zIndex,p=void 0===d?70:d,h=Fo(e,["plain","open","align","dropProps","content","animation","children","zIndex"]),g=Ne(h["aria-describedby"]),v=(0,je.Z)(o),m=v[0],y=v[2],b=v[3],w=(0,i.useRef)(!1),_=(0,i.useRef)(!1),x=(0,i.useCallback)((function(){return requestAnimationFrame((function(){return!w.current&&!_.current&&b()}))}),[]),S=(0,Be.default)(t),O=S[0],C=S[1],E=(0,De.Z)(f,C,No(No({isOpen:m,onMouseOver:y,onMouseLeave:x,onFocus:y,onBlur:x},m&&{"aria-describedby":g}),h)),A=(0,i.useCallback)((function(){w.current=!0}),[]),k=(0,i.useCallback)((function(){w.current=!1,x()}),[]);return i.createElement(i.Fragment,null,E,m&&O.current&&i.createElement(Ie.Z,No({id:g,hideShadow:!0},l,{align:(null===l||void 0===l?void 0:l.align)||Fe[s],animation:c,onEsc:b,onMouseEnter:A,onMouseLeave:k,target:O.current,zIndex:p}),n?Ho(u):i.createElement(Ge,{align:s,background:["transparent","popover"],padding:[2,4]},Ho(u))))})),zo=Vo,Uo=n(47817),Go=n(51586),Wo=n(91970),qo=n(84309),$o=n(4528),Yo=n(51559),Xo=n(56872),Ko=n(63366),Jo=!1,Qo=i.createContext(null),ei="unmounted",ti="exited",ni="entering",ri="entered",oi="exiting",ii=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o=ti,r.appearStatus=ni):o=ri:o=t.unmountOnExit||t.mountOnEnter?ei:ti,r.state={status:o},r.nextCallback=null,r}f(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===ei?{status:ti}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==ni&&n!==ri&&(t=ni):n!==ni&&n!==ri||(t=oi)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===ni){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:mt.findDOMNode(this);n&&function(e){e.scrollTop}(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===ti&&this.setState({status:ei})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[mt.findDOMNode(this),r],i=o[0],a=o[1],s=this.getTimeouts(),l=r?s.appear:s.enter;!e&&!n||Jo?this.safeSetState({status:ri},(function(){t.props.onEntered(i)})):(this.props.onEnter(i,a),this.safeSetState({status:ni},(function(){t.props.onEntering(i,a),t.onTransitionEnd(l,(function(){t.safeSetState({status:ri},(function(){t.props.onEntered(i,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:mt.findDOMNode(this);t&&!Jo?(this.props.onExit(r),this.safeSetState({status:oi},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:ti},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:ti},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:mt.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],a=o[1];this.props.addEndListener(i,a)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===ei)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,Ko.Z)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return i.createElement(Qo.Provider,{value:null},"function"===typeof n?n(e,r):i.cloneElement(i.Children.only(n),r))},t}(i.Component);function ai(){}ii.contextType=Qo,ii.propTypes={},ii.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:ai,onEntering:ai,onEntered:ai,onExit:ai,onExiting:ai,onExited:ai},ii.UNMOUNTED=ei,ii.EXITED=ti,ii.ENTERING=ni,ii.ENTERED=ri,ii.EXITING=oi;var si,li,ui,ci,fi,di,pi,hi=ii,gi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},vi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},mi=function(){return mi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},mi.apply(this,arguments)},yi=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},bi=function(e){var t=e.in,n=e.as,r=e.toggle,o=e.speed,a=void 0===o?200:o,l=e.timing,u=void 0===l?"":l,c=e.transformOrigin,f=e.mount,d=e.children,p=yi(e,["in","as","toggle","speed","timing","transformOrigin","mount","children"]),h=(0,i.useMemo)((function(){return function(e){var t=e.toggle,n=e.timing,r=void 0===n?"":n,o=e.speed,i=void 0===o?200:o,a=e.transformOrigin,l=function(e){return(0,s.css)(si||(si=gi(["\n ","\n animation: "," ","ms ",";\n "],["\n ","\n animation: "," ","ms ",";\n "])),a&&"transform-origin: ".concat(a,";"),e,i,r)};return{entering:l((0,s.keyframes)(li||(li=gi(["from { "," }"],["from { "," }"])),t)),exiting:l((0,s.keyframes)(ui||(ui=gi(["to { "," }"],["to { "," }"])),t))}}({toggle:r,timing:u,speed:a,transformOrigin:c})}),[]),g=(0,i.useMemo)((function(){return n&&(0,s.default)(n)(ci||(ci=vi(["\n ","\n "],["\n ","\n "])),(function(e){return e.transitionStyling}))}),[]);return i.createElement(hi,{in:t,timeout:a,mountOnEnter:!f,unmountOnExit:!f},(function(e){var t=h[e];return g?i.createElement(g,mi({transitionStyling:t},p),d({transition:e,transitionStyling:t})):d({transition:e,transitionStyling:t})}))},wi=n(21794),_i=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},xi=function(){return xi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},xi.apply(this,arguments)},Si=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Oi={vertical:"height",horizontal:"width"},Ci=(0,s.default)(Se.default).attrs({column:!0})(fi||(fi=_i(["\n transition: ",";\n ",";\n"],["\n transition: ",";\n ",";\n"])),(function(e){var t=e.duration,n=e.measurement;return"max-".concat(n," ").concat(t,"ms ease-out, opacity ").concat(t,"ms ease")}),(function(e){var t=e.measurement,n=e.maxDimension;return"max-".concat(t,": ").concat(n)})),Ei=(0,i.forwardRef)((function(e,t){var n=e.open,r=void 0!==n&&n,o=e.duration,a=void 0===o?150:o,s=e.children,l=e.direction,u=e.persist,c=void 0!==u&&u,f=Si(e,["open","duration","children","direction","persist"]),d=(0,i.useState)(r?"initial":0),p=d[0],h=d[1],g=(0,i.useState)(r),v=g[0],m=g[1],y=(0,Be.default)(t),b=y[0],w=y[1];(0,wi.Z)((function(){var e,t=requestAnimationFrame((function(){h(r?0:"".concat(b.current.scrollHeight,"px")),e=requestAnimationFrame((function(){h(r?"".concat(b.current.scrollHeight,"px"):0)}))}));r&&m(!0);var n=setTimeout((function(){return r?h("initial"):m(!1)}),a);return function(){cancelAnimationFrame(t),cancelAnimationFrame(e),clearTimeout(n)}}),[r]);var _=(0,i.useMemo)((function(){return(v||c)&&("function"===typeof s?s():s)}),[v,c,s]);return i.createElement(Ci,xi({open:r,maxDimension:p,measurement:Oi[l]||Oi.vertical,duration:a,ref:w,"data-testid":"collapsible",overflow:"initial"===p?"visible":"hidden"},f),_)})),Ai=(0,i.memo)(Ei),ki=n(73809),Mi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Pi=function(){return Pi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Pi.apply(this,arguments)},Ri=(0,s.default)(He.Text).attrs({as:"a",target:"_blank"})(di||(di=Mi(["\n &&& {\n text-decoration: none;\n color: ",";\n\n &:hover {\n color: ",";\n text-decoration: none;\n }\n }\n"],["\n &&& {\n text-decoration: none;\n color: ",";\n\n &:hover {\n color: ",";\n text-decoration: none;\n }\n }\n"])),(0,ee.Lq)("primary"),(0,ee.Lq)("accent")),Ti=function(e){var t=e.icon,n=e.title,r=e.content,o=e.url,a=e.children,s=e.testid,l=e.label,u=e.labelTransform,c=e.onClick;return i.createElement(Se.default,{width:"100%",column:!0,gap:2},i.createElement(Se.default,{gap:2,alignItems:"center"},i.createElement(_e.JO,{color:"text",name:t,width:"18px",height:"18px"}),i.createElement(He.H5,{margin:[0]},n)),i.createElement(Se.default,{column:!0,gap:4,padding:[0,2]},i.createElement(He.Text,null,r),i.createElement(Ee,Pi({width:"100%",onClick:c,label:l,"data-testid":s},u&&{textTransform:u},o&&{as:"a",target:"_blank",href:o})),a))},Ii={cloud:{documentationUrl:"https://learn.netdata.cloud/",issuesUrl:"https://github.com/netdata/netdata-cloud/issues/new?labels=bug&template=submig-a-bug-for-netdata-cloud.md&title=%5BBUG%5D",issuesLabel:"Let us know about any bugs you\u2019ve encountered in Netdata Cloud.",otherIssuesUrl:"https://github.com/netdata/netdata/issues/new?assignees=&labels=bug%2Cneeds+triage&template=BUG_REPORT.yml&title=%5BBug%5D%3A+",otherIssuesLabel:"Agent",communitySupportUrl:"https://www.netdata.cloud/community/"},agent:{documentationUrl:"https://learn.netdata.cloud/",issuesUrl:"https://github.com/netdata/netdata/issues/new?assignees=&labels=bug%2Cneeds+triage&template=BUG_REPORT.yml&title=%5BBug%5D%3A+",issuesLabel:"Let us know about any bugs you\u2019ve encountered in Netdata Agent.",otherIssuesUrl:"https://github.com/netdata/netdata-cloud/issues/new?labels=bug&template=submig-a-bug-for-netdata-cloud.md&title=%5BBUG%5D",otherIssuesLabel:"Cloud",communitySupportUrl:"https://www.netdata.cloud/community/"}},Bi=function(e){var t=e.app,n=e.onDashboardClick,r=e.onVisitDocumentClick,o=e.onOpenIssueClick,a=e.onOpenBugClick,s=e.onSupportClick,l=e.onGoToDemoClick,u=e.demoUrl,c=void 0===u?"https://app.netdata.cloud/spaces/netdata-demor":u,f=Ii[t]||Ii.cloud,d=f.documentationUrl,p=f.issuesUrl,h=f.issuesLabel,g=f.communitySupportUrl,v=f.otherIssuesUrl,m=f.otherIssuesLabel;return i.createElement(i.Fragment,null,"agent"===t&&i.createElement(i.Fragment,null,i.createElement(Ti,{icon:"dashboard",title:"Dashboard",content:"Learn how to interact with graphs using your mouse or touch interface.",testid:"dashboard-info",label:"Learn to use the Dashboard",onClick:n}),i.createElement(Se.default,{width:"100%",height:{min:"1px"},background:"disabled"})),i.createElement(Ti,{icon:"documentation",title:"Documentation",content:"View how-tos, reference docs, and tutorials to help you get the most out of Netdata Cloud.\n ",url:d,testid:"documentation-link",label:"Visit the docs",onClick:r}),i.createElement(Ti,{icon:"unknownError",title:"Report a Bug",content:h,url:p,testid:"documentation-report-bug-link",label:"Open a new Issue in GitHub",labelTransform:"none",onClick:o},i.createElement(He.Text,null,"Found a bug with the Netdata ",m,"?",i.createElement(Ri,{href:v,onClick:a},"Open an issue")," ","on GitHub")),i.createElement(Ti,{icon:"community",title:"Community",content:"If you need help or would like to contribute to Netdata, join our Community and ask questions, discuss topics, or propose feature requests.",url:g,testid:"documentation-community-support-link",label:"Join the Community",onClick:s}),i.createElement(Ti,{icon:"spaces_v2",title:"Public demo space",content:"Netdata has a public demo space where you can explore different monitoring use-cases. Jump into any that might interest you and put your hands-on our monitoring solution!",url:c,testid:"demo-link",label:"Go to demo",onClick:l}))},ji=function(){return ji=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ji.apply(this,arguments)},Di=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Li={border:{side:"top",color:"disabled"},padding:[6,0,0]},Zi=function(e){return i.createElement(Se.default,ji({overflow:{vertical:"auto"},padding:[6,4],gap:6,column:!0},e))},Ni=function(e){var t=e.title,n=e.children,r=e.topBorder,o=void 0===r||r,a=Di(e,["title","children","topBorder"]);return i.createElement(Se.default,ji({column:!0},o&&Li,a),i.createElement(Se.default,{margin:[0,0,2],gap:2},i.createElement(_e.JO,{name:"insights",color:"text",width:"18px",height:"18px"}),i.createElement(He.Text,{strong:!0},t)),"string"===typeof n?i.createElement(He.Text,null,n):n)},Fi=function(){return i.createElement(Zi,null,i.createElement(Ni,{title:"Mouse Over / Hover",topBorder:!1},i.createElement(He.Text,null,"Mouse over on a chart to show, at its legend, the values for the timestamp under the mouse (the chart will also highlight the point at the chart)."),i.createElement(He.Text,null,"All the other visible charts will also show and highlight their values for the same timestamp.")),i.createElement(Ni,{title:"Drag Chart Contents"},i.createElement(He.Text,null,"Drag the contents of a chart, by pressing the left mouse button and moving the mouse,"),i.createElement(He.Text,null,"All the charts will follow soon after you let the chart alone (this little delay is by design: it speeds up your browser and lets you focus on what you are exploring)."),i.createElement(He.Text,null,"Once a chart is panned, auto refreshing stops for all charts. To enable it again, double click a panned chart.")),i.createElement(Ni,{title:"Double Click"},"Double Click a chart to reset all the charts to their default auto-refreshing state."),i.createElement(Ni,{title:"SHIFT + Drag"},i.createElement(He.Text,null,"While pressing the ",i.createElement("b",null,"SHIFT")," key, press the left mouse button on the contents of a chart and move the mouse to select an area, to zoom in. The other charts will follow too. Zooming is performed in two phases:"),i.createElement(He.Text,{margin:[4,0,0]},"- The already loaded chart contents are zoomed (low resolution)"),i.createElement(He.Text,null,"- New data are transferred from the netdata server, to refresh the chart with possibly more detail."),i.createElement(He.Text,{margin:[4,0,0]},"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Ni,{title:"Highlight Timeframe"},i.createElement(He.Text,null,"While pressing the ",i.createElement("b",null,"ALT")," key, press the left mouse button on the contents of a chart and move the mouse to select an area. The selected are will be highlighted on all charts.")),i.createElement(Ni,{title:"SHIFT + Mouse Wheel"},i.createElement(He.Text,null,"While pressing the ",i.createElement("b",null,"SHIFT")," key and the mouse pointer is over the contents of a chart, scroll the mouse wheel to zoom in or out. This kind of zooming is aligned to center below the mouse pointer. The other charts will follow too."),i.createElement(He.Text,null,"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Ni,{title:"Legend Operations"},i.createElement(He.Text,null,"Click on the label or value of a dimension, will select / un-select this dimension."),i.createElement(He.Text,null,"You can press any of the ",i.createElement("b",null,"SHIFT")," or ",i.createElement("b",null,"CONTROL")," keys and then click on legend labels or values, to select / un-select multiple dimensions.")))},Hi=function(){return i.createElement(Zi,null,i.createElement(Ni,{title:"Single tap",topBorder:!1},i.createElement(He.Text,null,"Single Tap on the contents of a chart to show, at its legend, the values for the timestamp tapped (the chart will also highlight the point at the chart)."),i.createElement(He.Text,null,"All the other visible charts will also show and highlight their values for the same timestamp.")),i.createElement(Ni,{title:"Drag Chart Contents"},i.createElement(He.Text,null,"Touch and Drag the contents of a chart to pan it horizontally."),i.createElement(He.Text,null,"All the charts will follow soon after you let the chart alone (this little delay is by design: it speeds up your browser and lets you focus on what you are exploring)."),i.createElement(He.Text,null,"Once a chart is panned, auto refreshing stops for all charts. To enable it again, double tap a panned chart.")),i.createElement(Ni,{title:i.createElement(i.Fragment,null,i.createElement(He.Text,{strong:!0},"Zoom"),i.createElement(He.Text,{margin:[0,0,0,1]},"(does not work on firefox and IE/Edge)"))},i.createElement(He.Text,null,"With two fingers, zoom in or out."),i.createElement(He.Text,null,"Once a chart is zoomed, auto refreshing stops for all charts. To enable it again, double click a zoomed chart.")),i.createElement(Ni,{title:"Double Tap"},"Tap on the label or value of a dimension, will select / un-select this dimension."))},Vi=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},zi=(0,s.default)(Do)(pi||(pi=Vi(["\n width: 100%;\n\n .tabs > * {\n min-width: initial;\n max-width: initial;\n }\n"],["\n width: 100%;\n\n .tabs > * {\n min-width: initial;\n max-width: initial;\n }\n"]))),Ui=function(){return i.createElement(Se.default,{overflow:{vertical:"auto"},"data-testid":"dashboard"},i.createElement(zi,null,i.createElement(To,{label:"Using a Mouse"},i.createElement(Fi,null)),i.createElement(To,{label:"Using Touch"},i.createElement(Hi,null))))},Gi=n(78081),Wi=n.n(Gi),qi=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function $i(e,t,n){const r=e.find((e=>e.field===t&&e.type===n));return r?r.values:[]}function Yi(e,t,n,r){return e.reduce(((e,o)=>{const{field:i,values:a,type:s}=o,l=qi(o,["field","values","type"]);if(i===t&&(!r||s===r)){const t=a.filter((e=>!Ki(e,n)));return t.length>0?e.concat(Object.assign({field:i,values:t,type:s},l)):e}return e.concat(o)}),[])}function Xi(e,t,n,r){const o=e.data,i=$i(t,n,r)||[];return Object.assign(Object.assign({},e),{data:o.map((e=>Object.assign(Object.assign({},e),{selected:i.some((t=>Ki(t,e.value)))})))})}function Ki(e,t){return!!(e&&e.name&&t&&t.name&&e.name===t.name)||Wi()(e,t,{strict:!0})}function Ji(e,t){return t?t.reduce(((e,t)=>e.find((e=>e.type===t.type&&e.field===t.field))?e:[...e,t]),e):e}function Qi(e){return"object"===typeof e&&void 0!==e.name}const ea=e=>e.reduce(((e,t)=>(Qi(t)?e.push(t.name):e.push(t.toString()),e)),[]).join(","),ta=Object.assign({},r);var na=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function ra(e,t,n){const{disjunctiveFacets:r,disjunctiveFacetsAnalyticsTags:o}=t;r&&console.warn("search-ui-site-search-connector: disjunctiveFacets is not supported by Site Search"),o&&console.warn("search-ui-site-search-connector: disjunctiveFacetsAnalyticsTags is not supported by Site Search");const i=function(e){if(!e)return;const t=Object.entries(e).map((([e,t])=>{if("value"==t.type)return t.sort&&console.warn("search-ui-site-search-connector: Site Search does not support 'sort' on facets"),t.size&&console.warn("search-ui-site-search-connector: Site Search does not support 'size' on facets"),[e,t];console.warn(`search-ui-site-search-connector: Dropping ${e} facet, only value facets are supported in Site Search`)})).filter((e=>e)).map((([e])=>e));return t.length?t:void 0}(t.facets),a=function(e){if(e&&0!==Object.keys(e).length)return e.reduce(((e,t)=>{const n=t.field,r=t.values;if(e[n])return console.warn("search-ui-site-search-connector: More than one filter found for a single field"),e;if(t.type&&"all"!==t.type&&"any"!==t.type)return console.warn(`search-ui-site-search-connector: Unsupported filter type "${t.type}" found, only "all" and "any" are currently supported`),e;if(void 0!==r.find((e=>"object"===typeof e))){if(r.length>1)return console.warn("search-ui-site-search-connector: Cannot apply more than 1 none-value filters to a single field"),e;const t=r[0];if(ta.isFilterValueRange(t)){const{name:r}=t,o=na(t,["name"]);return e[n]=Object.assign({type:"range"},o),e}return e}return e[n]=Object.assign(Object.assign({},"any"===t.type?{}:{type:"and"}),{values:r}),e}),{})}(void 0!==t.filters?t.filters:e.filters),s=void 0!==t.current?t.current:e.current,l=void 0!==t.resultsPerPage?t.resultsPerPage:e.resultsPerPage,u=void 0!==t.sortDirection?t.sortDirection:e.sortDirection,c=void 0!==t.sortField?t.sortField:e.sortField,f=void 0!==t.sortList?t.sortList:e.sortList,[d,p]=(h=t.result_fields)?[Object.keys(h),Object.entries(h).reduce(((e,[t,n])=>n.snippet?Object.assign(Object.assign({},e),{[t]:n.snippet}):e),{})]:[];var h;const g=(v=t.search_fields)?Object.keys(v):[];var v;const m=e.searchTerm;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},l&&{per_page:l}),s&&{page:s}),u&&{sort_direction:{[n]:u}}),c&&{sort_field:{[n]:c}}),f&&{sort_list:{[n]:f}}),a&&{filters:{[n]:a}}),i&&{facets:{[n]:i}}),d&&{fetch_fields:{[n]:d}}),p&&{highlight_fields:{[n]:p}}),g&&!!g.length&&{search_fields:{[n]:g}}),{q:m})}var oa=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};const ia=(e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n});function aa(e,t){const n=function(e,t){return e[t].map((e=>{const{highlight:t,sort:n}=e,r=oa(e,["highlight","sort"]),o=Object.entries(r).filter((([e])=>!e.startsWith("_"))).map((([e,t])=>{return[e,(n=t,{raw:n})];var n})).reduce(ia,{});return Object.entries(t).forEach((([e,t])=>{o[e].snippet=t})),o}))}(e.records,t),r=e.info[t].num_pages,o=e.info[t].total_result_count,i=(a=e.info[t]).facets?Object.entries(a.facets).map((([e,t])=>[e,[{field:e,data:Object.entries(t).map((([e,t])=>({value:e,count:t}))),type:"value"}]])).reduce(ia,{}):{};var a;return Object.assign({rawResponse:e,results:n,totalPages:r,totalResults:o,requestId:""},Object.keys(i).length>0&&{facets:i})}var sa=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function s(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};function la(e,t,n,r){return sa(this,void 0,void 0,(function*(){const o=new Headers({"Content-Type":"application/json"}),i=yield fetch(`https://search-api.swiftype.com/api/v1/public/${n}`,{method:t,headers:o,body:JSON.stringify(Object.assign({engine_key:e},r)),credentials:"include"});let a;try{a=yield i.json()}catch(s){}if(i.status>=200&&i.status<300)return a;{const e=a&&a.errors&&Object.entries(a.errors).length>0?JSON.stringify(a.errors):i.status;throw new Error(`${e}`)}}))}var ua=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function s(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};function ca(e,t,n){const r=Object.entries(Object.assign({engine_key:e},n)).map((([e,t])=>`${e}=${encodeURIComponent(t)}`)).join("&");return fetch(`https://search-api.swiftype.com/api/v1/public/${t}?${r}`,{method:"GET",credentials:"include"})}var fa=class{constructor({documentType:e,engineKey:t,beforeSearchCall:n=((e,t)=>t(e)),beforeAutocompleteResultsCall:r=((e,t)=>t(e))}){this.documentType=e,this.engineKey=t,this.beforeSearchCall=n,this.beforeAutocompleteResultsCall=r,this.request=la.bind(this,t),this._get=ca.bind(this,t)}onResultClick({query:e,documentId:t,tags:n}){n&&n.length>0&&console.warn("search-ui-site-search-connector: Site Search does not support tags on click"),this._get("analytics/pc",{t:(new Date).getTime(),q:e,doc_id:t})}onAutocompleteResultClick({query:e,documentId:t,tags:n}){n&&console.warn("search-ui-site-search-connector: Site Search does not support tags on autocompleteClick"),this._get("analytics/pas",{t:(new Date).getTime(),q:e,doc_id:t})}onSearch(e,t){const n=ra(e,t,this.documentType);return this.beforeSearchCall(n,(e=>this.request("POST","engines/search.json",e).then((e=>aa(e,this.documentType)))))}onAutocomplete({searchTerm:e},t){return ua(this,void 0,void 0,(function*(){if(t.results){const n=ra({searchTerm:e},t.results,this.documentType);return this.beforeAutocompleteResultsCall(n,(e=>this.request("POST","engines/suggest.json",e).then((e=>({autocompletedResults:aa(e,this.documentType).results})))))}t.suggestions&&console.warn("search-ui-site-search-connector: Site Search does support query suggestions on autocomplete")}))}};function da(e){return"/"===e.charAt(0)}function pa(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}var ha=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],o=t&&t.split("/")||[],i=e&&da(e),a=t&&da(t),s=i||a;if(e&&da(e)?o=r:r.length&&(o.pop(),o=o.concat(r)),!o.length)return"/";if(o.length){var l=o[o.length-1];n="."===l||".."===l||""===l}else n=!1;for(var u=0,c=o.length;c>=0;c--){var f=o[c];"."===f?pa(o,c):".."===f?(pa(o,c),u++):u&&(pa(o,c),u--)}if(!s)for(;u--;u)o.unshift("..");!s||""===o[0]||o[0]&&da(o[0])||o.unshift("");var d=o.join("/");return n&&"/"!==d.substr(-1)&&(d+="/"),d},ga=!0,va="Invariant failed";function ma(e,t){if(!e){if(ga)throw new Error(va);var n="function"===typeof t?t():t,r=n?"".concat(va,": ").concat(n):va;throw new Error(r)}}function ya(e){return"/"===e.charAt(0)?e:"/"+e}function ba(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function wa(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function _a(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function xa(e,t,n,r){var o;"string"===typeof e?(o=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,l.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=ha(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function Sa(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var Oa=!("undefined"===typeof window||!window.document||!window.document.createElement);function Ca(e,t){t(window.confirm(e))}var Ea="popstate",Aa="hashchange";function ka(){try{return window.history.state||{}}catch(e){return{}}}function Ma(e){void 0===e&&(e={}),Oa||ma(!1);var t=window.history,n=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history}(),r=!(-1===window.navigator.userAgent.indexOf("Trident")),o=e,i=o.forceRefresh,a=void 0!==i&&i,s=o.getUserConfirmation,u=void 0===s?Ca:s,c=o.keyLength,f=void 0===c?6:c,d=e.basename?wa(ya(e.basename)):"";function p(e){var t=e||{},n=t.key,r=t.state,o=window.location,i=o.pathname+o.search+o.hash;return d&&(i=ba(i,d)),xa(i,r,n)}function h(){return Math.random().toString(36).substr(2,f)}var g=Sa();function v(e){(0,l.Z)(k,e),k.length=t.length,g.notifyListeners(k.location,k.action)}function m(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||w(p(e.state))}function y(){w(p(ka()))}var b=!1;function w(e){if(b)b=!1,v();else{g.confirmTransitionTo(e,"POP",u,(function(t){t?v({action:"POP",location:e}):function(e){var t=k.location,n=x.indexOf(t.key);-1===n&&(n=0);var r=x.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(b=!0,O(o))}(e)}))}}var _=p(ka()),x=[_.key];function S(e){return d+_a(e)}function O(e){t.go(e)}var C=0;function E(e){1===(C+=e)&&1===e?(window.addEventListener(Ea,m),r&&window.addEventListener(Aa,y)):0===C&&(window.removeEventListener(Ea,m),r&&window.removeEventListener(Aa,y))}var A=!1;var k={length:t.length,action:"POP",location:_,createHref:S,push:function(e,r){var o="PUSH",i=xa(e,r,h(),k.location);g.confirmTransitionTo(i,o,u,(function(e){if(e){var r=S(i),s=i.key,l=i.state;if(n)if(t.pushState({key:s,state:l},null,r),a)window.location.href=r;else{var u=x.indexOf(k.location.key),c=x.slice(0,u+1);c.push(i.key),x=c,v({action:o,location:i})}else window.location.href=r}}))},replace:function(e,r){var o="REPLACE",i=xa(e,r,h(),k.location);g.confirmTransitionTo(i,o,u,(function(e){if(e){var r=S(i),s=i.key,l=i.state;if(n)if(t.replaceState({key:s,state:l},null,r),a)window.location.replace(r);else{var u=x.indexOf(k.location.key);-1!==u&&(x[u]=i.key),v({action:o,location:i})}else window.location.replace(r)}}))},go:O,goBack:function(){O(-1)},goForward:function(){O(1)},block:function(e){void 0===e&&(e=!1);var t=g.setPrompt(e);return A||(E(1),A=!0),function(){return A&&(A=!1,E(-1)),t()}},listen:function(e){var t=g.appendListener(e);return E(1),function(){E(-1),t()}}};return k}function Pa(e,t,n){return Math.min(Math.max(e,t),n)}var Ra=n(33644),Ta=n.n(Ra);var Ia={encode(e,t){return function(e){return void 0!==e&&null!==e&&"number"===typeof e}(e)?`n_${e}_n`:function(e){return e&&"boolean"===typeof e}(e)?`b_${e}_b`:t(e)},decode(e,t){if(/n_-?[\d\.]*_n/.test(e)){const t=e.substring(2,e.length-2);return Number(t)}if(/^b_(true|false)*_b$/.test(e)){return function(e){if("true"===e)return!0;if("false"===e)return!1;throw"Invalid type parsed as Boolean value"}(e.substring(2,e.length-2))}return t(e)}},Ba={parse(e){return Ta().parse(e,{ignoreQueryPrefix:!0,decoder:Ia.decode,arrayLimit:1e3})},stringify(e){return Ta().stringify(e,{encoder:Ia.encode})}};function ja(e){return Array.isArray(e)?e[e.length-1]:e}function Da(e){return function(e){if(!function(e){return!isNaN(e)}(e))return;return parseInt(e,10)}(ja(e))}function La(e){return e.filters}function Za(e){return Da(e.current)}function Na(e){return ja(e.q)}function Fa(e){const t=ja(e["sort-field"]),n=ja(e["sort-direction"]);return t?[t,n]:[]}function Ha(e){return Da(e.size)}function Va(e){return e.sort}class za{constructor(e={}){this.routingOptions={readUrl:e.readUrl||this.readUrl.bind(this),writeUrl:e.writeUrl||this.writeUrl.bind(this),urlToState:e.urlToState||this.urlToState.bind(this),stateToUrl:e.stateToUrl||this.stateToUrl.bind(this),routeChangeHandler:e.routeChangeHandler||this.routeChangeHandler.bind(this)},this.history="undefined"!==typeof window?Ma():function(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,r=t.initialEntries,o=void 0===r?["/"]:r,i=t.initialIndex,a=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=Sa();function f(e){(0,l.Z)(m,e),m.length=m.entries.length,c.notifyListeners(m.location,m.action)}function d(){return Math.random().toString(36).substr(2,u)}var p=Pa(a,0,o.length-1),h=o.map((function(e){return xa(e,void 0,"string"===typeof e?d():e.key||d())})),g=_a;function v(e){var t=Pa(m.index+e,0,m.entries.length-1),r=m.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?f({action:"POP",location:r,index:t}):f()}))}var m={length:h.length,action:"POP",location:h[p],index:p,entries:h,createHref:g,push:function(e,t){var r="PUSH",o=xa(e,t,d(),m.location);c.confirmTransitionTo(o,r,n,(function(e){if(e){var t=m.index+1,n=m.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),f({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=xa(e,t,d(),m.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(m.entries[m.index]=o,f({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=m.index+e;return t>=0&&t<m.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return m}(),this.lastPushSearchString=""}readUrl(){return this.history?this.history.location.search:""}writeUrl(e,{replaceUrl:t=!1}={}){(t?this.history.replace:this.history.push)(`?${e}`)}urlToState(e){return function(e){const t={current:Za(e),filters:La(e),searchTerm:Na(e),resultsPerPage:Ha(e),sortField:Fa(e)[0],sortDirection:Fa(e)[1],sortList:Va(e)};return Object.keys(t).reduce(((e,n)=>{const r=t[n];return r&&(e[n]=r),e}),{})}(Ba.parse(e))}stateToUrl(e){return`${function(e){return Ba.stringify(function({searchTerm:e,current:t,filters:n,resultsPerPage:r,sortDirection:o,sortField:i,sortList:a}){const s={};return t>1&&(s.current=t),e&&(s.q=e),r&&(s.size=r),n&&n.length>0&&(s.filters=n),a&&a.length>0?s.sort=a:i&&(s["sort-field"]=i,s["sort-direction"]=o),s}(e))}(e)}`}getStateFromURL(){return this.routingOptions.urlToState(this.routingOptions.readUrl())}pushStateToURL(e,{replaceUrl:t=!1}={}){const n=this.routingOptions.stateToUrl(e);this.lastPushSearchString=n,this.routingOptions.writeUrl(n,{replaceUrl:t})}onURLStateChange(e){this.unlisten=this.routingOptions.routeChangeHandler((t=>{`?${this.lastPushSearchString}`!==t&&(this.lastPushSearchString="",e(this.routingOptions.urlToState(t)))}).bind(this))}routeChangeHandler(e){return this.history.listen((t=>{e(t.search)}))}tearDown(){this.unlisten()}}class Ua{constructor(){this.requestSequence=0,this.lastCompleted=0}next(){return++this.requestSequence}isOldRequest(e){return e<this.lastCompleted}completed(e){this.lastCompleted=e}}function Ga(e,t){let n;const r=function(){const r=arguments;clearTimeout(n),n=setTimeout((()=>{e.apply(null,r)}),t)};return r.cancel=()=>{n&&(clearTimeout(n),n=null)},r}class Wa{constructor(){this.debounceCache={}}runWithDebounce(e,t,n,...r){if(!e)return n(...r);const o=`${t}|${e.toString()}`;let i=this.debounceCache[o];i||(this.debounceCache[o]=Ga(n,e),i=this.debounceCache[o]),i(...r)}cancelByName(e){Object.entries(this.debounceCache).filter((([t])=>t.startsWith(`${e}|`))).forEach((([e,t])=>t.cancel()))}}Wa.debounce=(e,t)=>Ga(t,e);var qa=Wa;function $a(e,t,n="all"){this.debug&&console.log("Search UI: Action","addFilter",...arguments);const{filters:r}=this.state,o=r.find((t=>t.field===e&&t.type===n))||null,i=r.filter((t=>t.field!==e||t.type!==n))||[],a=(null===o||void 0===o?void 0:o.values)||[],s=a.find((e=>Ki(e,t)))?a:a.concat(t);this._updateSearchResults({current:1,filters:[...i,{field:e,values:s,type:n}]});this.events.emit({type:"FacetFilterSelected",field:e,value:ea(s),query:this.state.searchTerm})}function Ya(e,t=[]){this.debug&&console.log("Search UI: Action","trackAutocompleteClickThrough",...arguments);const{autocompletedResultsRequestId:n,searchTerm:r,autocompletedResults:o,current:i,resultsPerPage:a,totalResults:s,filters:l}=this.state,u=o.findIndex((t=>t._meta.id===e)),c=o[u],f=this.events;f.autocompleteResultClick({query:r,documentId:e,requestId:n,tags:t,result:c,resultIndex:u}),f.emit({type:"ResultSelected",documentId:e,query:r,position:u,origin:"autocomplete",tags:t,totalResults:s,filters:l,currentPage:i,resultsPerPage:a})}function Xa(e=[]){this.debug&&console.log("Search UI: Action","clearFilters",...arguments);const{filters:t}=this.state,n=t.filter((t=>{const n=t.field;return e.includes(n)}));this._updateSearchResults({current:1,filters:n})}function Ka(e,t,n){this.debug&&console.log("Search UI: Action","removeFilter",...arguments);const{filters:r}=this.state;let o=r;o=!t&&n?r.filter((t=>!(t.field===e&&t.type===n))):t?Yi(r,e,t,n):r.filter((t=>t.field!==e)),this._updateSearchResults({current:1,filters:o});this.events.emit({type:"FacetFilterRemoved",field:e,value:t&&ea([t]),query:this.state.searchTerm})}function Ja(){this.debug&&console.log("Search UI: Action","reset",...arguments),this._setState(this.startingState),this.trackUrlState&&this.URLManager.pushStateToURL(this.state)}function Qa(e){this.debug&&console.log("Search UI: Action","setCurrent",...arguments),this._updateSearchResults({current:e})}function es(e,t,n="all"){this.debug&&console.log("Search UI: Action","setFilter",...arguments);let{filters:r}=this.state;r=r.filter((t=>t.field!==e||t.type!==n)),this._updateSearchResults({current:1,filters:[...r,{field:e,values:[t],type:n}]});this.events.emit({type:"FacetFilterSelected",field:e,value:t&&ea([t]),query:this.state.searchTerm})}function ts(e){this.debug&&console.log("Search UI: Action","setResultsPerPage",...arguments),this._updateSearchResults({current:1,resultsPerPage:e})}function ns(e,{autocompleteMinimumCharacters:t=0,autocompleteResults:n=!1,autocompleteSuggestions:r=!1,shouldClearFilters:o=!0,refresh:i=!0,debounce:a=0}={}){this.debug&&console.log("Search UI: Action","setSearchTerm",...arguments),this._setState({searchTerm:e}),i&&this.debounceManager.runWithDebounce(a,"_updateSearchResults",this._updateSearchResults,Object.assign({current:1},o&&{filters:[]})),(n||r)&&e.length>=t&&this.debounceManager.runWithDebounce(a,"_updateAutocomplete",this._updateAutocomplete,e,{autocompleteResults:n,autocompleteSuggestions:r})}function rs(e,t){this.debug&&console.log("Search UI: Action","setSort",...arguments);const n={current:1,sortList:null,sortField:null,sortDirection:null};Array.isArray(e)?n.sortList=e:(n.sortField=e,n.sortDirection=t),this._updateSearchResults(n)}function os(e,t=[]){this.debug&&console.log("Search UI: Action","trackClickThrough",...arguments);const{requestId:n,searchTerm:r,results:o,current:i,resultsPerPage:a,totalResults:s,filters:l}=this.state,u=o.findIndex((t=>t._meta.id===e)),c=o[u],f=this.events;this.events.resultClick({query:r,documentId:e,requestId:n,tags:t,result:c,page:i,resultsPerPage:a,resultIndexOnPage:u}),f.emit({type:"ResultSelected",documentId:e,query:r,origin:"results",position:u,tags:t,totalResults:s,filters:l,currentPage:i,resultsPerPage:a})}const is="search-ui-screen-reader-notifications",as="undefined"!==typeof document,ss=()=>{if(!as)return null;let e=document.getElementById(is);return e||(e=document.createElement("div"),e.id=is,e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.margin="-1px",e.style.padding="0",e.style.border="0",e.style.overflow="hidden",e.style.clip="rect(0 0 0 0)",document.body.appendChild(e),e)},ls=e=>{const t=ss();t&&(t.textContent=e)},us={searchResults:({start:e,end:t,totalResults:n,searchTerm:r})=>{let o=`Showing ${e} to ${t} results out of ${n}`;return r&&(o+=`, searching for "${r}".`),o}};function cs(e,t){if(!this.hasA11yNotifications)return;const n=this.a11yNotificationMessages[e];if(!n){const t=`Could not find corresponding message function in a11yNotificationMessages: "${e}"`;return void console.warn("Action","a11yNotify",t)}const r=n(t);ls(r),this.debug&&console.log("Search UI: Action","a11yNotify",{messageFunc:e,messageArgs:t,message:r})}function fs(e,t,n=[]){this.debug&&console.log("Search UI: Action","trackAutocompleteSuggestionClickThrough",...arguments);const{searchTerm:r}=this.state;this.events.emit({type:"AutocompleteSuggestionSelected",position:t,query:r,tags:n,suggestion:e})}function ds(e,t,n){if(n){if(t){const r=t[e].bind(t);return(...e)=>n(...e,r)}return n}return t&&t[e]?t[e].bind(t):()=>{throw`No ${e} handler provided and no Connector provided. You must configure one or the other.`}}var ps=class{constructor({apiConnector:e,onSearch:t,onAutocomplete:n,onResultClick:r,onAutocompleteResultClick:o,plugins:i=[]}={}){this.search=ds("onSearch",e,t),this.autocomplete=ds("onAutocomplete",e,n),this.resultClick=ds("onResultClick",e,r),this.autocompleteResultClick=ds("onAutocompleteResultClick",e,o),this.plugins=i}emit(e){this.plugins.forEach((t=>{t.subscribe(e)}))}};var hs=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function gs({current:e,filters:t,resultsPerPage:n,searchTerm:r,sortDirection:o,sortField:i,sortList:a}){return{current:e,filters:t,resultsPerPage:n,searchTerm:r,sortDirection:o,sortField:i,sortList:a}}const vs={current:1,filters:[],resultsPerPage:20,searchTerm:"",sortDirection:"",sortField:"",sortList:[],autocompletedResults:[],autocompletedResultsRequestId:"",autocompletedSuggestions:{},autocompletedSuggestionsRequestId:"",error:"",isLoading:!1,facets:{},requestId:"",results:[],resultSearchTerm:"",totalPages:0,totalResults:0,pagingStart:0,pagingEnd:0,wasSearched:!1,rawResponse:{}};function ms(e={},t={},n=[]){return Object.entries(e).reduce(((e,[r,o])=>(t[r]&&"function"===typeof t[r]&&!t[r]({filters:n})||(e[r]=o),e)),{})}var ys=class{constructor({apiConnector:e,autocompleteQuery:t={},plugins:n=[],debug:r,initialState:i,onSearch:a,onAutocomplete:s,onResultClick:l,onAutocompleteResultClick:u,searchQuery:c={},trackUrlState:f=!0,routingOptions:d={},urlPushDebounceLength:p=500,hasA11yNotifications:h=!1,a11yNotificationMessages:g={},alwaysSearchOnInitialLoad:v=!1}){let m;this.state=vs,this._updateAutocomplete=(e,{autocompleteResults:t,autocompleteSuggestions:n}={})=>{const r=this.autocompleteRequestSequencer.next(),o=Object.assign(Object.assign({},t&&{results:this.autocompleteQuery.results||{}}),n&&{suggestions:this.autocompleteQuery.suggestions||{}});return this.events.autocomplete({searchTerm:e},o).then((e=>{this.autocompleteRequestSequencer.isOldRequest(r)||(this.autocompleteRequestSequencer.completed(r),this._setState(e))}))},this._updateSearchResults=(e,{skipPushToUrl:t=!1,replaceUrl:n=!1}={})=>{const{current:r,filters:o,resultsPerPage:i,searchTerm:a,sortDirection:s,sortField:l,sortList:u}=Object.assign(Object.assign({},this.state),e);this.debounceManager.cancelByName("_updateSearchResults"),this._setState({current:r,error:"",filters:o,resultsPerPage:i,searchTerm:a,sortDirection:s,sortField:l,sortList:u}),this._makeSearchRequest({skipPushToUrl:t,replaceUrl:n})},this._makeSearchRequest=qa.debounce(0,(({skipPushToUrl:e,replaceUrl:t})=>{const{current:n,filters:r,resultsPerPage:o,searchTerm:i,sortDirection:a,sortField:s,sortList:l}=this.state;this._setState({isLoading:!0});const u=this.searchRequestSequencer.next(),c=this.searchQuery,{conditionalFacets:f}=c,d=hs(c,["conditionalFacets"]),p=Object.assign(Object.assign({},d),{facets:ms(this.searchQuery.facets,f,r)}),h=Object.assign(Object.assign({},gs(this.state)),{filters:Ji(r,this.searchQuery.filters)});return this.events.search(h,p).then((c=>{if(this.searchRequestSequencer.isOldRequest(u))return;this.searchRequestSequencer.completed(u);const{totalResults:f}=c;this.events.emit({type:"SearchQuery",filters:this.state.filters,query:this.state.searchTerm,currentPage:h.current,resultsPerPage:h.resultsPerPage,totalResults:f});const d=0===f?0:(n-1)*o+1,p=f<d+o?f:d+o-1;if(this._setState(Object.assign(Object.assign({isLoading:!1,resultSearchTerm:i,pagingStart:d,pagingEnd:p},c),{wasSearched:!0})),this.hasA11yNotifications){const e={start:d,end:p,totalResults:f,searchTerm:i};this.actions.a11yNotify("searchResults",e)}!e&&this.trackUrlState&&this.debounceManager.runWithDebounce(this.urlPushDebounceLength,"pushStateToURL",this.URLManager.pushStateToURL.bind(this.URLManager),{current:n,filters:r,resultsPerPage:o,searchTerm:i,sortDirection:a,sortField:s,sortList:l},{replaceUrl:t})}),(e=>{var t;"Invalid credentials"!==e.message?this._setState({error:`An unexpected error occurred: ${e.message}`}):this._setState(Object.assign({},(null===(t=this.apiConnector)||void 0===t?void 0:t.state)&&Object.assign({},this.apiConnector.state)))}))})),this.actions=Object.entries(o).reduce(((e,[t,n])=>Object.assign(Object.assign({},e),{[t]:n.bind(this)})),{}),this.actions=Object.assign(Object.assign({},this.actions),(null===e||void 0===e?void 0:e.actions)&&Object.assign({},e.actions)),Object.assign(this,this.actions),this.events=new ps({apiConnector:e,onSearch:a,onAutocomplete:s,onResultClick:l,onAutocompleteResultClick:u,plugins:n}),this.debug=r,this.debug&&(console.warn("Search UI Debugging is enabled. This should be turned off in production deployments."),"undefined"!==typeof window&&(window.searchUI=this)),this.autocompleteRequestSequencer=new Ua,this.searchRequestSequencer=new Ua,this.debounceManager=new qa,this.autocompleteQuery=t,this.searchQuery=c,this.subscriptions=[],this.trackUrlState=f,this.urlPushDebounceLength=p,this.alwaysSearchOnInitialLoad=v,this.apiConnector=e,f?(this.URLManager=new za(d),m=this.URLManager.getStateFromURL(),this.URLManager.onURLStateChange((e=>{this._updateSearchResults(Object.assign(Object.assign({},vs),e),{skipPushToUrl:!0})}))):m={},this.hasA11yNotifications=h,this.hasA11yNotifications&&ss(),this.a11yNotificationMessages=Object.assign(Object.assign({},us),g),this.startingState=Object.assign(Object.assign({},this.state),i);const y=gs(Object.assign(Object.assign({},this.startingState),m));this.state=Object.assign(Object.assign(Object.assign({},this.state),(null===e||void 0===e?void 0:e.state)&&Object.assign({},e.state)),y),(y.searchTerm||y.filters.length>0||this.alwaysSearchOnInitialLoad)&&this._updateSearchResults(y,{replaceUrl:!0})}_setState(e){const t=Object.assign(Object.assign({},this.state),e);this.debug&&console.log("Search UI: State Update",e,t),this.state=t,this.subscriptions.forEach((e=>e(t)))}setSearchQuery(e){this.searchQuery=e,this._updateSearchResults({})}setAutocompleteQuery(e){this.autocompleteQuery=e}subscribeToStateChanges(e){this.subscriptions.push(e)}unsubscribeToStateChanges(e){this.subscriptions=this.subscriptions.filter((t=>t!==e))}tearDown(){this.subscriptions=[],this.URLManager&&this.URLManager.tearDown(),this.debounceManager.cancelByName("pushStateToURL")}getActions(){return this.actions}getState(){return Object.assign({},this.state)}};var bs=i.createContext(null);var ws={moreFilters:({visibleOptionsCount:e,showingAll:t})=>{let n=t?"All ":"";return n+=`${e} options shown.`,n}};var _s=({children:e,config:t,driver:n})=>{const[r,o]=(0,i.useState)(null);if((0,i.useEffect)((()=>{const e=n||new ys(Object.assign(Object.assign({},t),{a11yNotificationMessages:Object.assign(Object.assign({},ws),t.a11yNotificationMessages)}));return o(e),()=>{e.tearDown()}}),[]),(0,i.useEffect)((()=>{r&&r.setSearchQuery(t.searchQuery)}),[t.searchQuery]),(0,i.useEffect)((()=>{r&&r.setAutocompleteQuery(t.autocompleteQuery)}),[t.autocompleteQuery]),!r)return null;const a={driver:r};return i.createElement(bs.Provider,{value:a},e)},xs=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function Ss(e,t,n){return(n.mapContextToProps||t)(e,n)||{}}var Os=function(e){if(!e)throw"withSearch requires a function to be provided which returns an object with at least one value.";return function(t){class n extends i.PureComponent{constructor(t,n){super(t),this.subscription=t=>{this.mounted&&this.setState((n=>Ss(Object.assign(Object.assign({},n),t),e,this.props)))},this.mounted=!1,this.state=Object.assign({},Ss(function(e){return Object.assign(Object.assign({},e.driver.getState()),e.driver.getActions())}(n),e,t))}componentDidMount(){this.mounted=!0,this.context.driver.subscribeToStateChanges(this.subscription)}componentWillUnmount(){this.mounted=!1,this.context.driver.unsubscribeToStateChanges(this.subscription)}render(){const e=xs(this.props,[]);return i.createElement(t,Object.assign({},this.state,e))}}return n.contextType=bs,n}};function Cs({mapContextToProps:e,children:t}){const n=Os(e)((e=>t(e)));return i.createElement(n,null)}Cs.propTypes={mapContextToProps:bt().func,children:bt().func.isRequired};var Es,As,ks,Ms,Ps,Rs,Ts=Cs,Is=n(52861),Bs=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function s(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},js=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(l){s=[6,l],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}},Ds={headers:{"Content-Type":"application/json"},transformResponse:function(e){try{var t=JSON.parse(e).topics;return(void 0===t?[]:t).map((function(e){var t=e.id,n=e.title,r=e.fancy_title,o=e.slug;return{id:{raw:t},title:{raw:n},description:{raw:r},url:{raw:"https://community.netdata.cloud/t/".concat(o)}}}))}catch(n){return n}}},Ls=function(e,t){return Bs(void 0,void 0,void 0,(function(){var n;return js(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,(0,Is.Z)("https://community.netdata.cloud/search.json?q=".concat(e),Ds)];case 1:return(n=r.sent()).data?(t&&t(n),[3,3]):[2];case 2:return r.sent(),[2];case 3:return[2]}}))}))},Zs=function(){return Zs=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Zs.apply(this,arguments)},Ns=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Fs=function(e){var t=e.children,n=Ns(e,["children"]),r=(0,i.useState)([]),o=r[0],a=r[1],s=n.searchTerm,l=n.results;return(0,i.useEffect)((function(){if(s){var e=!0;return Ls(s,(function(t){var n=t.data;return e&&a(n)})),function(){return e=!1}}}),[s]),t(Zs(Zs({},n),{results:Zs(Zs({},l),{discourse:o})}))},Hs=/^https:\/\/((learn.netdata).cloud|www.(netdata.cloud)|github.com\/netdata\/(netdata-cloud)|github.com\/netdata\/(netdata))/,Vs=function(e){return e.reduce((function(e,t){var n=t.url.raw.match(Hs).find((function(e,t){return t>1&&e}));return e[n]=e[n]||[],e[n].push(t),e}),{})},zs=function(){return zs=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},zs.apply(this,arguments)},Us={apiConnector:new fa({engineKey:"BZL_aEiLAebVKkcm3eFr",documentType:"page"}),initialState:{resultsPerPage:100},searchQuery:{result_fields:{title:{snippet:{size:100,fallback:!0}},url:{raw:{}},description:{snippet:{size:100,fallback:!0}}}},alwaysSearchOnInitialLoad:!1},Gs=function(e){var t=e.searchTerm,n=e.setSearchTerm,r=e.results,o=e.reset;return{searchTerm:t,setSearchTerm:n,results:zs(zs({},Vs(r)),{discourse:[]}),reset:o}},Ws=function(e){var t=e.children;return i.createElement(_s,{config:Us},i.createElement(Ts,{mapContextToProps:Gs},(function(e){return i.createElement(Fs,zs({},e),t)})))},qs=n(21337),$s=function(e){var t=e.defaultValue,n=e.setSearchTerm,r=e.setSearchView,o=(0,i.useState)(t),a=o[0],s=o[1];(0,qs.Z)((function(){n(a),a.length<3||r()}),300,[a]);var l=(0,i.useCallback)((function(e){return s(e.target.value)}),[]);return i.createElement(an.oi,{value:a,onChange:l,placeholder:"Search Netdata\u2019s docs & community",autoFocus:!0,iconLeft:i.createElement(_e.JO,{name:"search_s",size:"small",color:a?"text":"border"})})},Ys=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Xs=function(){return Xs=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Xs.apply(this,arguments)},Ks=s.default.a(Es||(Es=Ys(["\n text-decoration: none;\n\n &:hover,\n &:visited {\n color: ",";\n }\n"],["\n text-decoration: none;\n\n &:hover,\n &:visited {\n color: ",";\n }\n"])),(0,ee.Lq)("primary")),Js=function(e){var t=e.title,n=e.description,r=e.url;return i.createElement(Se.default,{gap:2,column:!0},i.createElement(He.Text,{strong:!0,dangerouslySetInnerHTML:{__html:(null===t||void 0===t?void 0:t.snippet)||(null===t||void 0===t?void 0:t.raw)||"Untitled"}}),!!n&&i.createElement(He.Text,{dangerouslySetInnerHTML:{__html:"".concat((null===n||void 0===n?void 0:n.snippet)||(null===n||void 0===n?void 0:n.raw)||"No description","&hellip;")}}),i.createElement(Se.default,{alignSelf:"end"},i.createElement(He.Text,{as:Ks,color:"primary",href:r,target:"_blank"},"Read \u2192")))},Qs=function(e){return i.createElement(Se.default,Xs({overflow:{vertical:"auto"},padding:[6,4],gap:6,column:!0},e))},el=(0,s.default)(Do)(As||(As=Ys(["\n width: 100%;\n\n .tabs > * {\n min-width: 160px;\n max-width: 100%;\n }\n"],["\n width: 100%;\n\n .tabs > * {\n min-width: 160px;\n max-width: 100%;\n }\n"]))),tl=["learn","community"],nl={learn:"learn.netdata",community:"discourse","github-cloud":"netdata-cloud","github-agent":"netdata"},rl={learn:"Documentation",community:"Community","github-cloud":"Github / Cloud","github-agent":"Github / Agent"},ol=function(e){var t=e.results;return i.createElement(Se.default,{overflow:{vertical:"auto"},"data-testid":"searchResults",flex:!0,width:"1000px",height:"60vh"},i.createElement(el,null,tl.map((function(e){var n=t[nl[e]],r=null===n||void 0===n?void 0:n.length;return i.createElement(To,{key:e,label:"".concat(rl[e]).concat(r?" (".concat(r,")"):"")},i.createElement(Qs,null,r?n.map((function(e){var t=e.id,n=e.url,r=e.title,o=e.description;return i.createElement(Js,{key:t.raw,url:n.raw,title:r,description:o})})):i.createElement(Se.default,{padding:[4]},i.createElement(He.Text,{strong:!0},"No results"))))}))))},il=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},al=(0,s.default)(Se.default).attrs({padding:[6],background:"dropdown",gap:6,column:!0,round:!0,overflow:{vertical:"auto"}})(ks||(ks=il(["\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n"],["\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n"]))),sl=function(e){var t=e.children,n=e.onClose;return i.createElement(Se.default,{width:"100%",alignItems:"center",justifyContent:"between",padding:[0,0,4],border:{side:"bottom",color:"disabled"}},i.createElement(Se.default,{gap:2,alignItems:"center"},t),i.createElement(Ee,{icon:"x",neutral:!0,small:!0,onClick:n,flavour:"borderless","data-testid":"documentation-help-close"}))},ll="general",ul="dashboard",cl="search",fl={general:"Need help?",dashboard:"Need help?"},dl=function(e){var t=e.app,n=void 0===t?"cloud":t,r=e.onCloseClick,o=e.onVisitDocumentClick,a=e.onOpenIssueClick,s=e.onOpenBugClick,l=e.onContributeClick,u=e.onSupportClick,c=e.onGoToDemoClick,f=e.children,d=e.demoUrl,p=(0,ki.Z)(),h=p[0],g=p[1],v=(0,i.useState)(ll),m=v[0],y=v[1],b=m===ll,w=(0,i.useCallback)((function(){return y(ul)}),[]),_=(0,i.useCallback)((function(){return y(ll)}),[]),x=(0,i.useCallback)((function(){return y(cl)}),[]),S=(0,i.useCallback)((function(){g(),r&&r()}),[]);return i.createElement(i.Fragment,null,f(g,h),h&&i.createElement(Xo.default,{position:"bottom-left",backdrop:!0,margin:[5,17],onClickOutside:g,onEsc:g},i.createElement(Ws,null,(function(e){var t=e.searchTerm,r=e.setSearchTerm,f=e.results,p=e.reset;return i.createElement(i.Fragment,null,i.createElement(al,{width:{max:b?"325px":m===ul?"600px":"100%"},"data-testid":"documentation-layer"},i.createElement(sl,{onClose:S},b&&i.createElement(_e.JO,{color:"text",name:"questionFilled",width:"18px",height:"18px"}),!b&&i.createElement(Ee,{icon:"arrow_left",neutral:!0,small:!0,onClick:function(){_(),p()},flavour:"borderless","data-testid":"dashboard-back"}),i.createElement(He.H5,{margin:[0]},fl[m]||fl.general)),m!==ul&&i.createElement($s,{defaultValue:t,setSearchTerm:r,setSearchView:x}),b&&i.createElement(Se.default,{gap:6,overflow:{vertical:"auto"},column:!0,padding:[1]},i.createElement(Bi,{app:n,onDashboardClick:w,onVisitDocumentClick:o,onOpenIssueClick:a,onOpenBugClick:s,onContributeClick:l,onSupportClick:u,onGoToDemoClick:c,demoUrl:d})),m===ul&&i.createElement(Ui,null),m===cl&&i.createElement(ol,{results:f})))}))))},pl=n(27539),hl=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},gl=(0,s.default)(Se.default).attrs({overflow:{vertical:"auto"},padding:[0,4,0,0]})(Ms||(Ms=hl(["\n ","\n"],["\n ","\n"])),sn.f1),vl=function(e){var t=e.onClose;return i.createElement(Se.default,{border:{side:"bottom",color:"selected"},justifyContent:"between",alignItems:"center",padding:[0,0,4,0]},i.createElement(Se.default,{gap:2},i.createElement(_e.JO,{color:"text",name:"insights"}),i.createElement(He.TextBig,{strong:!0},"Netdata News")),i.createElement(Ee,{flavour:"borderless",neutral:!0,icon:"x",title:"close news",onClick:t}))},ml=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},yl=(0,s.default)(Se.default).attrs({as:"img"})(Ps||(Ps=ml(["\n object-fit: cover;\n"],["\n object-fit: cover;\n"]))),bl=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},wl=(0,s.default)(Se.default).attrs({as:"a"})(Rs||(Rs=bl(["\n text-decoration: none;\n & :hover {\n text-decoration: none;\n }\n"],["\n text-decoration: none;\n & :hover {\n text-decoration: none;\n }\n"]))),_l=function(e){var t=e.item,n=t.last_publication_date,r=t.data,o=r.title,a=r.description,s=r.url,l=r.image,u=r.label,c=l&&l.url,f=new Date(n);return i.createElement(Se.default,{column:!0,gap:2},i.createElement(Se.default,{gap:4},c&&i.createElement(yl,{src:c,width:"160px"}),i.createElement(Se.default,{column:!0,gap:2},i.createElement(He.Text,{strong:!0},o),i.createElement(He.Text,null,a))),i.createElement(Se.default,{justifyContent:"between",alignItems:"center"},i.createElement(He.TextSmall,null,f.toLocaleDateString()),i.createElement(wl,{href:s,target:"_blank",rel:"noopener noreferrer",gap:1,alignItems:"center"},i.createElement(He.Text,{color:"success",strong:!0},u),i.createElement(_e.JO,{color:"success",rotate:2,name:"arrow_left"}))))};const xl=e=>Array.isArray(e)?e:[e],Sl=(e={},t)=>({...e,filters:[...e.filters||[],...xl(t)]}),Ol=e=>Array.isArray(e)?`[${e.map(Ol).join(", ")}]`:"string"===typeof e?`"${e}"`:e instanceof Date?`${e.getTime()}`:`${e}`,Cl=e=>(t,...n)=>{const r=n.map(Ol).join(", "),o=t&&n.length?", ":"";return`[${e}(${t}${o}${r})]`},El=e=>{const t=Cl(e);return e=>t(e)},Al={at:Cl("at"),not:Cl("not"),any:Cl("any"),in:Cl("in"),fulltext:Cl("fulltext"),has:El("has"),missing:El("missing"),similar:(e=>{const t=Cl(e);return(...e)=>t("",...e)})("similar"),geopointNear:Cl("geopoint.near"),numberLessThan:Cl("number.lt"),numberGreaterThan:Cl("number.gt"),numberInRange:Cl("number.inRange"),dateAfter:Cl("date.after"),dateBefore:Cl("date.before"),dateBetween:Cl("date.between"),dateDayOfMonth:Cl("date.day-of-month"),dateDayOfMonthAfter:Cl("date.day-of-month-after"),dateDayOfMonthBefore:Cl("date.day-of-month-before"),dateDayOfWeek:Cl("date.day-of-week"),dateDayOfWeekAfter:Cl("date.day-of-week-after"),dateDayOfWeekBefore:Cl("date.day-of-week-before"),dateMonth:Cl("date.month"),dateMonthAfter:Cl("date.month-after"),dateMonthBefore:Cl("date.month-before"),dateYear:Cl("date.year"),dateHour:Cl("date.hour"),dateHourAfter:Cl("date.hour-after"),dateHourBefore:Cl("date.hour-before")},kl=e=>Al.at("document.tags",xl(e));var Ml=Object.defineProperty,Pl=(e,t,n)=>(((e,t,n)=>{t in e?Ml(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!==typeof t?t+"":t,n),n);class Rl extends Error{constructor(e="An invalid API response was returned",t,n){super(e),Pl(this,"url"),Pl(this,"response"),this.url=t,this.response=n}}const Tl=(e,t)=>{const n=e.find((e=>t(e)));if(!n)throw new Rl("Ref could not be found.",void 0,void 0);return n},Il=e=>Tl(e,(e=>e.isMasterRef)),Bl=(e,t)=>Tl(e,(e=>e.id===t)),jl=(e,t)=>Tl(e,(e=>e.label===t)),Dl=e=>e.replace(/%3B/g,";"),Ll=e=>Al.any("document.tags",xl(e)),Zl=e=>Al.at("document.type",e);class Nl extends Rl{}class Fl extends Rl{}class Hl extends Rl{}const Vl="Document",zl="Media",Ul="Web",Gl=(e,...t)=>{if(!e)return null;const n="link_type"in e?e:(e=>{var t;return{link_type:Vl,id:e.id,uid:e.uid||void 0,type:e.type,tags:e.tags,lang:e.lang,url:null==e.url?void 0:e.url,slug:null==(t=e.slugs)?void 0:t[0],...e.data&&Object.keys(e.data).length>0?{data:e.data}:{}}})(e),[r]=t;let o;switch(o="function"===typeof r||null==r?{linkResolver:r}:{...r},n.link_type){case zl:case Ul:return"url"in n?n.url:null;case Vl:if("id"in n&&o.linkResolver){const e=o.linkResolver(n);if(null!=e)return e}return"url"in n&&n.url?n.url:null;default:return null}},Wl={accessToken:"access_token"},ql=e=>"string"===typeof e?e:"desc"===e.direction?`${e.field} desc`:e.field;var $l=Object.defineProperty,Yl=(e,t,n)=>(((e,t,n)=>{t in e?$l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!==typeof t?t+"":t,n),n);var Xl,Kl;(Kl=Xl||(Xl={})).Master="Master",Kl.ReleaseID="ReleaseID",Kl.ReleaseLabel="ReleaseLabel",Kl.Manual="Manual";class Jl{constructor(e,t={}){if(Yl(this,"endpoint"),Yl(this,"accessToken"),Yl(this,"routes"),Yl(this,"brokenRoute"),Yl(this,"fetchFn"),Yl(this,"fetchOptions"),Yl(this,"defaultParams"),Yl(this,"refState",{mode:Xl.Master,autoPreviewsEnabled:!0}),Yl(this,"cachedRepository"),Yl(this,"cachedRepositoryExpiration",0),Yl(this,"fetchJobs",{}),(e=>{try{return new URL(e),!0}catch{return!1}})(e)?this.endpoint=e:this.endpoint=(e=>{if((e=>/^[a-zA-Z0-9][-a-zA-Z0-9]{2,}[a-zA-Z0-9]$/.test(e))(e))return`https://${e}.cdn.prismic.io/api/v2`;throw new Rl(`An invalid Prismic repository name was given: ${e}`,void 0,void 0)})(e),this.accessToken=t.accessToken,this.routes=t.routes,this.brokenRoute=t.brokenRoute,this.fetchOptions=t.fetchOptions,this.defaultParams=t.defaultParams,t.ref&&this.queryContentFromRef(t.ref),"function"===typeof t.fetch)this.fetchFn=t.fetch;else{if("function"!==typeof globalThis.fetch)throw new Rl("A valid fetch implementation was not provided. In environments where fetch is not available (including Node.js), a fetch implementation must be provided via a polyfill or the `fetch` option.",void 0,void 0);this.fetchFn=globalThis.fetch}this.fetchFn===globalThis.fetch&&(this.fetchFn=this.fetchFn.bind(globalThis)),this.graphQLFetch=this.graphQLFetch.bind(this)}enableAutoPreviews(){this.refState.autoPreviewsEnabled=!0}enableAutoPreviewsFromReq(e){this.refState.httpRequest=e,this.refState.autoPreviewsEnabled=!0}disableAutoPreviews(){this.refState.autoPreviewsEnabled=!1}async get(e){const t=await this.buildQueryURL(e);return await this.fetch(t,e)}async getFirst(e){var t;const n={...e};e&&e.page||(null==e?void 0:e.pageSize)||(n.pageSize=(null==(t=this.defaultParams)?void 0:t.pageSize)??1);const r=await this.buildQueryURL(n),o=(await this.fetch(r,e)).results[0];if(o)return o;throw new Rl("No documents were returned",r,void 0)}async dangerouslyGetAll(e={}){var t;const{limit:n=1/0,...r}=e,o={...r,pageSize:Math.min(n,r.pageSize||(null==(t=this.defaultParams)?void 0:t.pageSize)||100)},i=[];let a;for(;(!a||a.next_page)&&i.length<n;){const e=a?a.page+1:void 0;a=await this.get({...o,page:e}),i.push(...a.results),a.next_page&&await new Promise((e=>setTimeout(e,500)))}return i.slice(0,n)}async getByID(e,t){return await this.getFirst(Sl(t,Al.at("document.id",e)))}async getByIDs(e,t){return await this.get(Sl(t,Al.in("document.id",e)))}async getAllByIDs(e,t){return await this.dangerouslyGetAll(Sl(t,Al.in("document.id",e)))}async getByUID(e,t,n){return await this.getFirst(Sl(n,[Zl(e),Al.at(`my.${e}.uid`,t)]))}async getByUIDs(e,t,n){return await this.get(Sl(n,[Zl(e),Al.in(`my.${e}.uid`,t)]))}async getAllByUIDs(e,t,n){return await this.dangerouslyGetAll(Sl(n,[Zl(e),Al.in(`my.${e}.uid`,t)]))}async getSingle(e,t){return await this.getFirst(Sl(t,Zl(e)))}async getByType(e,t){return await this.get(Sl(t,Zl(e)))}async getAllByType(e,t){return await this.dangerouslyGetAll(Sl(t,Zl(e)))}async getByTag(e,t){return await this.get(Sl(t,Ll(e)))}async getAllByTag(e,t){return await this.dangerouslyGetAll(Sl(t,Ll(e)))}async getByEveryTag(e,t){return await this.get(Sl(t,kl(e)))}async getAllByEveryTag(e,t){return await this.dangerouslyGetAll(Sl(t,kl(e)))}async getBySomeTags(e,t){return await this.get(Sl(t,Ll(e)))}async getAllBySomeTags(e,t){return await this.dangerouslyGetAll(Sl(t,Ll(e)))}async getRepository(e){const t=new URL(this.endpoint);return this.accessToken&&t.searchParams.set("access_token",this.accessToken),await this.fetch(t.toString(),e)}async getRefs(e){return(await this.getRepository(e)).refs}async getRefByID(e,t){const n=await this.getRefs(t);return Bl(n,e)}async getRefByLabel(e,t){const n=await this.getRefs(t);return jl(n,e)}async getMasterRef(e){const t=await this.getRefs(e);return Il(t)}async getReleases(e){return(await this.getRefs(e)).filter((e=>!e.isMasterRef))}async getReleaseByID(e,t){const n=await this.getReleases(t);return Bl(n,e)}async getReleaseByLabel(e,t){const n=await this.getReleases(t);return jl(n,e)}async getTags(e){try{const t=await this.getCachedRepositoryForm("tags",e),n=new URL(t.action);return this.accessToken&&n.searchParams.set("access_token",this.accessToken),await this.fetch(n.toString(),e)}catch{return(await this.getRepository(e)).tags}}async buildQueryURL({signal:e,fetchOptions:t,...n}={}){const r=n.ref||await this.getResolvedRefString({signal:e,fetchOptions:t}),o=n.integrationFieldsRef||(await this.getCachedRepository({signal:e,fetchOptions:t})).integrationFieldsRef||void 0;return((e,t)=>{const{filters:n,predicates:r,...o}=t,i=new URL("documents/search",`${e}/`);if(n)for(const a of xl(n))i.searchParams.append("q",`[${a}]`);if(r)for(const a of xl(r))i.searchParams.append("q",`[${a}]`);for(const a in o){const e=Wl[a]||a;let t=o[a];if("orderings"===e){const n=o[e];null!=n&&(t=`[${xl(n).map((e=>ql(e))).join(",")}]`)}else"routes"===e&&"object"===typeof o[e]&&(t=JSON.stringify(xl(o[e])));null!=t&&i.searchParams.set(e,xl(t).join(","))}return i.toString()})(this.endpoint,{...this.defaultParams,...n,ref:r,integrationFieldsRef:o,routes:n.routes||this.routes,brokenRoute:n.brokenRoute||this.brokenRoute,accessToken:n.accessToken||this.accessToken})}async resolvePreviewURL(e){var t,n;let r=e.documentID,o=e.previewToken;if("undefined"!==typeof globalThis.location){const e=new URLSearchParams(globalThis.location.search);r=r||e.get("documentId"),o=o||e.get("token")}else if(this.refState.httpRequest)if("query"in this.refState.httpRequest)r=r||(null==(t=this.refState.httpRequest.query)?void 0:t.documentId),o=o||(null==(n=this.refState.httpRequest.query)?void 0:n.token);else if("url"in this.refState.httpRequest&&this.refState.httpRequest.url){const e=new URL(this.refState.httpRequest.url,"missing-host://").searchParams;r=r||e.get("documentId"),o=o||e.get("token")}if(null!=r&&null!=o){const t=await this.getByID(r,{ref:o,lang:"*",signal:e.signal,fetchOptions:e.fetchOptions}),n=Gl(t,{linkResolver:e.linkResolver});if("string"===typeof n)return n}return e.defaultURL}queryLatestContent(){this.refState.mode=Xl.Master}queryContentFromReleaseByID(e){this.refState={...this.refState,mode:Xl.ReleaseID,releaseID:e}}queryContentFromReleaseByLabel(e){this.refState={...this.refState,mode:Xl.ReleaseLabel,releaseLabel:e}}queryContentFromRef(e){this.refState={...this.refState,mode:Xl.Manual,ref:e}}async graphQLFetch(e,t){const n=await this.getCachedRepository(),r=await this.getResolvedRefString(),o={"Prismic-ref":r,Authorization:this.accessToken?`Token ${this.accessToken}`:"",...t?t.headers:{}};n.integrationFieldsRef&&(o["Prismic-integration-field-ref"]=n.integrationFieldsRef);const i={};for(const l in o)o[l]&&(i[l.toLowerCase()]=o[l]);const a=new URL(e);a.searchParams.set("ref",r);const s=a.searchParams.get("query");return s&&a.searchParams.set("query",(e=>e.replace(/(\n| )*( |{|})(\n| )*/gm,((e,t,n)=>n)))(s)),await this.fetchFn(a.toString(),{...t,headers:i})}async getCachedRepository(e){return(!this.cachedRepository||Date.now()>=this.cachedRepositoryExpiration)&&(this.cachedRepositoryExpiration=Date.now()+5e3,this.cachedRepository=await this.getRepository(e)),this.cachedRepository}async getCachedRepositoryForm(e,t){const n=(await this.getCachedRepository(t)).forms[e];if(!n)throw new Rl(`Form with name "${e}" could not be found`,void 0,void 0);return n}async getResolvedRefString(e){var t,n;if(this.refState.autoPreviewsEnabled){let e,r;if((null==(t=this.refState.httpRequest)?void 0:t.headers)?"get"in this.refState.httpRequest.headers&&"function"===typeof this.refState.httpRequest.headers.get?r=this.refState.httpRequest.headers.get("cookie"):"cookie"in this.refState.httpRequest.headers&&(r=this.refState.httpRequest.headers.cookie):(null==(n=globalThis.document)?void 0:n.cookie)&&(r=globalThis.document.cookie),r&&(e=(e=>{const t=e.split("; ");let n;for(const r of t){const e=r.split("=");if("io.prismic.preview"===Dl(e[0]).replace(/%3D/g,"=")){n=Dl(e.slice(1).join("="));break}}return n})(r)),e)return e}const r=await this.getCachedRepository(e),o=this.refState.mode;if(o===Xl.ReleaseID)return Bl(r.refs,this.refState.releaseID).ref;if(o===Xl.ReleaseLabel)return jl(r.refs,this.refState.releaseLabel).ref;if(o===Xl.Manual){const e=await(e=>"function"===typeof e?e:()=>e)(this.refState.ref)();if("string"===typeof e)return e}return Il(r.refs).ref}async fetch(e,t={}){var n,r,o,i;const a={...this.fetchOptions,...t.fetchOptions,headers:{...null==(n=this.fetchOptions)?void 0:n.headers,...null==(r=t.fetchOptions)?void 0:r.headers},signal:(null==(o=t.fetchOptions)?void 0:o.signal)||t.signal||(null==(i=this.fetchOptions)?void 0:i.signal)};let s;this.fetchJobs[e]&&this.fetchJobs[e].has(a.signal)?s=this.fetchJobs[e].get(a.signal):(this.fetchJobs[e]=this.fetchJobs[e]||new Map,s=this.fetchFn(e,a).then((async e=>{let t;try{t=await e.json()}catch{}return{status:e.status,json:t}})).finally((()=>{this.fetchJobs[e].delete(a.signal),0===this.fetchJobs[e].size&&delete this.fetchJobs[e]})),this.fetchJobs[e].set(a.signal,s));const l=await s;if(404!==l.status&&null==l.json)throw new Rl(void 0,e,l.json);switch(l.status){case 200:return l.json;case 400:throw new Hl(l.json.message,e,l.json);case 401:case 403:throw new Nl("error"in l.json?l.json.error:l.json.message,e,l.json);case 404:throw new Fl(`Prismic repository not found. Check that "${this.endpoint}" is pointing to the correct repository.`,e,void 0)}throw new Rl(void 0,e,l.json)}}var Ql=n(83300),eu=((e,t)=>new Jl(e,t))("https://netdata-news.cdn.prismic.io/api/v2",{fetch:n.n(Ql)()}),tu=[],nu=function(e){var t=e.app,n=void 0===t?"cloud":t,r=e.onCloseClick,o=e.children,a=(0,pl.Z)("news_last_seen"),s=a[0],l=a[1],u=(0,i.useState)(tu),c=u[0],f=u[1],d=(0,i.useState)(),p=d[0],h=d[1],g=(0,ki.Z)(),v=g[0],m=g[1];(0,i.useEffect)((function(){!function(e,t,n){eu.get({filters:[Al.any("document.tags",Array.isArray(e)?e:[e])],pageSize:100,orderings:[{field:"document.last_publication_date",direction:"desc"}]}).then(t).catch(n)}(n,(function(e){var t=e.results;return f(t)}),(function(){return h(!0)}))}),[]);var y=(0,i.useMemo)((function(){if(!c.length)return!0;var e=c[0].last_publication_date;return new Date(s)>=new Date(e)}),[s,c]),b=(0,i.useCallback)((function(){m(),l(new Date),r&&r()}),[r]);return i.createElement(i.Fragment,null,o({toggle:m,isOpen:v,upToDate:y}),v&&i.createElement(Xo.default,{backdrop:!0,onClickOutside:b,onEsc:b},i.createElement(Se.default,{background:"dropdown",round:!0,padding:[6],width:"640px",height:{max:"640px"},gap:4,column:!0},i.createElement(vl,{onClose:b}),i.createElement(gl,{column:!0,gap:6},p&&i.createElement(He.TextSmall,{textAlign:"center"},"Something went wrong \ud83d\ude14"),!p&&!c.length&&i.createElement(He.TextSmall,{textAlign:"center"},"There are no latest news"),!p&&c.length>0&&c.map((function(e){return i.createElement(_l,{key:e.id,item:e})}))))))},ru=function(){return ru=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ru.apply(this,arguments)},ou=function(e){var t=e.children,n=(0,i.useState)(!1),r=n[0],o=n[1],a=(0,i.useRef)(),s=(0,i.useMemo)((function(){return i.Children.map(t,(function(e){var t="DraggableTabs"===e.type.displayName;return i.cloneElement(e,ru({collapsed:r},t&&{onResize:o,ref:a}))}))}),[r,t]);return i.createElement(Se.default,{column:!0,width:"100%",position:"relative",ref:a},i.createElement(Se.default,{height:"1px",background:"border",width:"100%",position:"absolute",style:{top:0},zIndex:3}),i.createElement(Se.default,{justifyContent:"start",alignSelf:"start",alignItems:"end",width:"100%",height:"100%",overflow:"hidden",background:"topBarBg"},s),i.createElement(Se.default,{height:"1px",background:"border",width:"100%",position:"absolute",style:{bottom:0},zIndex:1}))},iu=n(46345),au=function(){var e=(0,i.useContext)(s.ThemeContext);return function(t){return(0,ee.Lq)(t)({theme:e})}},su=function(){return su=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},su.apply(this,arguments)},lu=function(e){var t=e.borderSideColor,n=e.borderTopColor,r=e.showBorderLeft;return su({borderRight:"1px solid ".concat(t),borderTop:"2px solid ".concat(n)},r?{borderLeft:"1px solid ".concat(t)}:{})},uu=function(e){var t=e.active,n=void 0!==t&&t,r=e.showBorderLeft,o=void 0!==r&&r,a=au(),s=a("border"),l=n?a("primary"):"transparent";return{rootStyles:(0,i.useMemo)((function(){return{cursor:"pointer",gap:1,alignItems:"center",justifyContent:"start",position:"relative",padding:[2,3],background:n?"mainBackground":"topBarBg",zIndex:n?2:1,height:8,sx:su({},lu({borderSideColor:s,borderTopColor:l,showBorderLeft:o}))}}),[l,s,n])}},cu=function(){return cu=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},cu.apply(this,arguments)},fu=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},du=function(e){var t=e.active,n=e.onActivate,r=e.tabIndex,o=e.onMouseOver,a=e.onMouseOut,s=e.onClose,l=e.fixed,u=e.collapsed,c=e.icon,f=e.children,d=e.draggableRef,p=e.dragHandleProps,h=e.tabRef,g=e.showBorderLeft,v=e.tooltip,m=fu(e,["active","onActivate","tabIndex","onMouseOver","onMouseOut","onClose","fixed","collapsed","icon","children","draggableRef","dragHandleProps","tabRef","showBorderLeft","tooltip"]),y=(0,i.useState)(),b=y[0],w=y[1],_=uu({active:t,showBorderLeft:g}).rootStyles,x=(0,i.useCallback)((function(e){e&&e.preventDefault(),n&&n()}),[n]),S=(0,i.useCallback)((function(e){w(!0),o&&o(e)}),[o]),O=(0,i.useCallback)((function(e){w(!1),a&&a(e)}),[a]),C=(0,i.useCallback)((function(e){e.preventDefault(),e.stopPropagation(),s&&s(r,t)}),[s,r,t]),E=(0,i.useCallback)((function(e){d&&d(e),h&&h(e)}),[d,h]),A=(0,i.useCallback)((function(e){return i.cloneElement(e,{color:t?"text":"textLite"})}),[t]),k=b&&!l;return i.createElement(Se.default,cu({},_,{ref:E,onClick:x,onMouseOver:S,onMouseLeave:O},m),i.createElement(Se.default,null,k&&i.createElement(iu.J,{name:"x",size:"small",color:t?"text":"textLite",onClick:C}),i.createElement(Xe,{content:v,align:v?"bottom":"top"},!k&&c&&A(c))),!u&&i.createElement(Se.default,cu({},p),f))};du.displayName="Tab";var pu=du,hu=function(){return i.createElement(Se.default,{padding:[1,2],height:"100%"},i.createElement(Se.default,{width:"1px",background:"selected",height:"100%"}))},gu=n(4942);function vu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vu(Object(n),!0).forEach((function(t){(0,gu.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function yu(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var bu="function"===typeof Symbol&&Symbol.observable||"@@observable",wu=function(){return Math.random().toString(36).substring(7).split("").join(".")},_u={INIT:"@@redux/INIT"+wu(),REPLACE:"@@redux/REPLACE"+wu(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+wu()}};function xu(e){if("object"!==typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Su(e,t,n){var r;if("function"===typeof t&&"function"===typeof n||"function"===typeof n&&"function"===typeof arguments[3])throw new Error(yu(0));if("function"===typeof t&&"undefined"===typeof n&&(n=t,t=void 0),"undefined"!==typeof n){if("function"!==typeof n)throw new Error(yu(1));return n(Su)(e,t)}if("function"!==typeof e)throw new Error(yu(2));var o=e,i=t,a=[],s=a,l=!1;function u(){s===a&&(s=a.slice())}function c(){if(l)throw new Error(yu(3));return i}function f(e){if("function"!==typeof e)throw new Error(yu(4));if(l)throw new Error(yu(5));var t=!0;return u(),s.push(e),function(){if(t){if(l)throw new Error(yu(6));t=!1,u();var n=s.indexOf(e);s.splice(n,1),a=null}}}function d(e){if(!xu(e))throw new Error(yu(7));if("undefined"===typeof e.type)throw new Error(yu(8));if(l)throw new Error(yu(9));try{l=!0,i=o(i,e)}finally{l=!1}for(var t=a=s,n=0;n<t.length;n++){(0,t[n])()}return e}return d({type:_u.INIT}),(r={dispatch:d,subscribe:f,getState:c,replaceReducer:function(e){if("function"!==typeof e)throw new Error(yu(10));o=e,d({type:_u.REPLACE})}})[bu]=function(){var e,t=f;return(e={subscribe:function(e){if("object"!==typeof e||null===e)throw new Error(yu(11));function n(){e.next&&e.next(c())}return n(),{unsubscribe:t(n)}}})[bu]=function(){return this},e},r}function Ou(e,t){return function(){return t(e.apply(this,arguments))}}function Cu(e,t){if("function"===typeof e)return Ou(e,t);if("object"!==typeof e||null===e)throw new Error(yu(16));var n={};for(var r in e){var o=e[r];"function"===typeof o&&(n[r]=Ou(o,t))}return n}function Eu(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}var Au=i.createContext(null);var ku=function(e){e()},Mu=function(){return ku};var Pu={notify:function(){},get:function(){return[]}};function Ru(e,t){var n,r=Pu;function o(){a.onStateChange&&a.onStateChange()}function i(){n||(n=t?t.addNestedSub(o):e.subscribe(o),r=function(){var e=Mu(),t=null,n=null;return{clear:function(){t=null,n=null},notify:function(){e((function(){for(var e=t;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],n=t;n;)e.push(n),n=n.next;return e},subscribe:function(e){var r=!0,o=n={callback:e,next:null,prev:n};return o.prev?o.prev.next=o:t=o,function(){r&&null!==t&&(r=!1,o.next?o.next.prev=o.prev:n=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}var a={addNestedSub:function(e){return i(),r.subscribe(e)},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:o,isSubscribed:function(){return Boolean(n)},trySubscribe:i,tryUnsubscribe:function(){n&&(n(),n=void 0,r.clear(),r=Pu)},getListeners:function(){return r}};return a}var Tu="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?i.useLayoutEffect:i.useEffect;var Iu=function(e){var t=e.store,n=e.context,r=e.children,o=(0,i.useMemo)((function(){var e=Ru(t);return{store:t,subscription:e}}),[t]),a=(0,i.useMemo)((function(){return t.getState()}),[t]);Tu((function(){var e=o.subscription;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),a!==t.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[o,a]);var s=n||Au;return i.createElement(s.Provider,{value:o},r)},Bu=n(8679),ju=n.n(Bu),Du=n(72973),Lu=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],Zu=["reactReduxForwardedRef"],Nu=[],Fu=[null,null];function Hu(e,t){var n=e[1];return[t.payload,n+1]}function Vu(e,t,n){Tu((function(){return e.apply(void 0,t)}),n)}function zu(e,t,n,r,o,i,a){e.current=r,t.current=o,n.current=!1,i.current&&(i.current=null,a())}function Uu(e,t,n,r,o,i,a,s,l,u){if(e){var c=!1,f=null,d=function(){if(!c){var e,n,d=t.getState();try{e=r(d,o.current)}catch(p){n=p,f=p}n||(f=null),e===i.current?a.current||l():(i.current=e,s.current=e,a.current=!0,u({type:"STORE_UPDATED",payload:{error:n}}))}};n.onStateChange=d,n.trySubscribe(),d();return function(){if(c=!0,n.tryUnsubscribe(),n.onStateChange=null,f)throw f}}}var Gu=function(){return[null,0]};function Wu(e,t){void 0===t&&(t={});var n=t,r=n.getDisplayName,o=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,a=n.methodName,s=void 0===a?"connectAdvanced":a,u=n.renderCountProp,c=void 0===u?void 0:u,f=n.shouldHandleStateChanges,d=void 0===f||f,p=n.storeKey,h=void 0===p?"store":p,g=(n.withRef,n.forwardRef),v=void 0!==g&&g,m=n.context,y=void 0===m?Au:m,b=(0,Ko.Z)(n,Lu),w=y;return function(t){var n=t.displayName||t.name||"Component",r=o(n),a=(0,l.Z)({},b,{getDisplayName:o,methodName:s,renderCountProp:c,shouldHandleStateChanges:d,storeKey:h,displayName:r,wrappedComponentName:n,WrappedComponent:t}),u=b.pure;var f=u?i.useMemo:function(e){return e()};function p(n){var r=(0,i.useMemo)((function(){var e=n.reactReduxForwardedRef,t=(0,Ko.Z)(n,Zu);return[n.context,e,t]}),[n]),o=r[0],s=r[1],u=r[2],c=(0,i.useMemo)((function(){return o&&o.Consumer&&(0,Du.isContextConsumer)(i.createElement(o.Consumer,null))?o:w}),[o,w]),p=(0,i.useContext)(c),h=Boolean(n.store)&&Boolean(n.store.getState)&&Boolean(n.store.dispatch);Boolean(p)&&Boolean(p.store);var g=h?n.store:p.store,v=(0,i.useMemo)((function(){return function(t){return e(t.dispatch,a)}(g)}),[g]),m=(0,i.useMemo)((function(){if(!d)return Fu;var e=Ru(g,h?null:p.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[g,h,p]),y=m[0],b=m[1],_=(0,i.useMemo)((function(){return h?p:(0,l.Z)({},p,{subscription:y})}),[h,p,y]),x=(0,i.useReducer)(Hu,Nu,Gu),S=x[0][0],O=x[1];if(S&&S.error)throw S.error;var C=(0,i.useRef)(),E=(0,i.useRef)(u),A=(0,i.useRef)(),k=(0,i.useRef)(!1),M=f((function(){return A.current&&u===E.current?A.current:v(g.getState(),u)}),[g,S,u]);Vu(zu,[E,C,k,u,M,A,b]),Vu(Uu,[d,g,y,v,E,C,k,A,b,O],[g,y,v]);var P=(0,i.useMemo)((function(){return i.createElement(t,(0,l.Z)({},M,{ref:s}))}),[s,t,M]);return(0,i.useMemo)((function(){return d?i.createElement(c.Provider,{value:_},P):P}),[c,P,_])}var g=u?i.memo(p):p;if(g.WrappedComponent=t,g.displayName=p.displayName=r,v){var m=i.forwardRef((function(e,t){return i.createElement(g,(0,l.Z)({},e,{reactReduxForwardedRef:t}))}));return m.displayName=r,m.WrappedComponent=t,ju()(m,t)}return ju()(g,t)}}function qu(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function $u(e,t){if(qu(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(t,n[o])||!qu(e[n[o]],t[n[o]]))return!1;return!0}function Yu(e){return function(t,n){var r=e(t,n);function o(){return r}return o.dependsOnOwnProps=!1,o}}function Xu(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function Ku(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=Xu(e);var o=r(t,n);return"function"===typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=Xu(o),o=r(t,n)),o},r}}var Ju=[function(e){return"function"===typeof e?Ku(e):void 0},function(e){return e?void 0:Yu((function(e){return{dispatch:e}}))},function(e){return e&&"object"===typeof e?Yu((function(t){return function(e,t){var n={},r=function(r){var o=e[r];"function"===typeof o&&(n[r]=function(){return t(o.apply(void 0,arguments))})};for(var o in e)r(o);return n}(e,t)})):void 0}];var Qu=[function(e){return"function"===typeof e?Ku(e):void 0},function(e){return e?void 0:Yu((function(){return{}}))}];function ec(e,t,n){return(0,l.Z)({},n,e,t)}var tc=[function(e){return"function"===typeof e?function(e){return function(t,n){n.displayName;var r,o=n.pure,i=n.areMergedPropsEqual,a=!1;return function(t,n,s){var l=e(t,n,s);return a?o&&i(l,r)||(r=l):(a=!0,r=l),r}}}(e):void 0},function(e){return e?void 0:function(){return ec}}],nc=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function rc(e,t,n,r){return function(o,i){return n(e(o,i),t(r,i),i)}}function oc(e,t,n,r,o){var i,a,s,l,u,c=o.areStatesEqual,f=o.areOwnPropsEqual,d=o.areStatePropsEqual,p=!1;function h(o,p){var h=!f(p,a),g=!c(o,i,p,a);return i=o,a=p,h&&g?(s=e(i,a),t.dependsOnOwnProps&&(l=t(r,a)),u=n(s,l,a)):h?(e.dependsOnOwnProps&&(s=e(i,a)),t.dependsOnOwnProps&&(l=t(r,a)),u=n(s,l,a)):g?function(){var t=e(i,a),r=!d(t,s);return s=t,r&&(u=n(s,l,a)),u}():u}return function(o,c){return p?h(o,c):(s=e(i=o,a=c),l=t(r,a),u=n(s,l,a),p=!0,u)}}function ic(e,t){var n=t.initMapStateToProps,r=t.initMapDispatchToProps,o=t.initMergeProps,i=(0,Ko.Z)(t,nc),a=n(e,i),s=r(e,i),l=o(e,i);return(i.pure?oc:rc)(a,s,l,e,i)}var ac=["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"];function sc(e,t,n){for(var r=t.length-1;r>=0;r--){var o=t[r](e);if(o)return o}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function lc(e,t){return e===t}function uc(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?Wu:n,o=t.mapStateToPropsFactories,i=void 0===o?Qu:o,a=t.mapDispatchToPropsFactories,s=void 0===a?Ju:a,u=t.mergePropsFactories,c=void 0===u?tc:u,f=t.selectorFactory,d=void 0===f?ic:f;return function(e,t,n,o){void 0===o&&(o={});var a=o,u=a.pure,f=void 0===u||u,p=a.areStatesEqual,h=void 0===p?lc:p,g=a.areOwnPropsEqual,v=void 0===g?$u:g,m=a.areStatePropsEqual,y=void 0===m?$u:m,b=a.areMergedPropsEqual,w=void 0===b?$u:b,_=(0,Ko.Z)(a,ac),x=sc(e,i,"mapStateToProps"),S=sc(t,s,"mapDispatchToProps"),O=sc(n,c,"mergeProps");return r(d,(0,l.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:x,initMapDispatchToProps:S,initMergeProps:O,pure:f,areStatesEqual:h,areOwnPropsEqual:v,areStatePropsEqual:y,areMergedPropsEqual:w},_))}}var cc=uc();var fc;function dc(e,t){var n=(0,i.useState)((function(){return{inputs:t,result:e()}}))[0],r=(0,i.useRef)(!0),o=(0,i.useRef)(n),a=r.current||Boolean(t&&o.current.inputs&&function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(t,o.current.inputs)),s=a?o.current:{inputs:t,result:e()};return(0,i.useEffect)((function(){r.current=!1,o.current=s}),[s]),s.result}fc=mt.unstable_batchedUpdates,ku=fc;var pc=dc,hc=function(e,t){return dc((function(){return e}),t)},gc=function(e){var t=e.top,n=e.right,r=e.bottom,o=e.left;return{top:t,right:n,bottom:r,left:o,width:n-o,height:r-t,x:o,y:t,center:{x:(n+o)/2,y:(r+t)/2}}},vc=function(e,t){return{top:e.top-t.top,left:e.left-t.left,bottom:e.bottom+t.bottom,right:e.right+t.right}},mc=function(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}},yc={top:0,right:0,bottom:0,left:0},bc=function(e){var t=e.borderBox,n=e.margin,r=void 0===n?yc:n,o=e.border,i=void 0===o?yc:o,a=e.padding,s=void 0===a?yc:a,l=gc(vc(t,r)),u=gc(mc(t,i)),c=gc(mc(u,s));return{marginBox:l,borderBox:gc(t),paddingBox:u,contentBox:c,margin:r,border:i,padding:s}},wc=function(e){var t=e.slice(0,-2);if("px"!==e.slice(-2))return 0;var n=Number(t);return isNaN(n)&&ma(!1),n},_c=function(e,t){var n,r,o=e.borderBox,i=e.border,a=e.margin,s=e.padding,l=(r=t,{top:(n=o).top+r.y,left:n.left+r.x,bottom:n.bottom+r.y,right:n.right+r.x});return bc({borderBox:l,border:i,margin:a,padding:s})},xc=function(e,t){return void 0===t&&(t={x:window.pageXOffset,y:window.pageYOffset}),_c(e,t)},Sc=function(e,t){var n={top:wc(t.marginTop),right:wc(t.marginRight),bottom:wc(t.marginBottom),left:wc(t.marginLeft)},r={top:wc(t.paddingTop),right:wc(t.paddingRight),bottom:wc(t.paddingBottom),left:wc(t.paddingLeft)},o={top:wc(t.borderTopWidth),right:wc(t.borderRightWidth),bottom:wc(t.borderBottomWidth),left:wc(t.borderLeftWidth)};return bc({borderBox:e,margin:n,padding:r,border:o})},Oc=function(e){var t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return Sc(t,n)},Cc=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];t=o,n||(n=requestAnimationFrame((function(){n=null,e.apply(void 0,t)})))};return r.cancel=function(){n&&(cancelAnimationFrame(n),n=null)},r};function Ec(e,t){}Ec.bind(null,"warn"),Ec.bind(null,"error");function Ac(){}function kc(e,t,n){var r=t.map((function(t){var r=function(e,t){return(0,l.Z)({},e,{},t)}(n,t.options);return e.addEventListener(t.eventName,t.fn,r),function(){e.removeEventListener(t.eventName,t.fn,r)}}));return function(){r.forEach((function(e){e()}))}}var Mc=!0,Pc="Invariant failed";function Rc(e){this.message=e}function Tc(e,t){if(!e)throw new Rc(Mc?Pc:Pc+": "+(t||""))}Rc.prototype.toString=function(){return this.message};var Ic=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).callbacks=null,t.unbind=Ac,t.onWindowError=function(e){var n=t.getCallbacks();n.isDragging()&&n.tryAbort(),e.error instanceof Rc&&e.preventDefault()},t.getCallbacks=function(){if(!t.callbacks)throw new Error("Unable to find AppCallbacks in <ErrorBoundary/>");return t.callbacks},t.setCallbacks=function(e){t.callbacks=e},t}f(t,e);var n=t.prototype;return n.componentDidMount=function(){this.unbind=kc(window,[{eventName:"error",fn:this.onWindowError}])},n.componentDidCatch=function(e){if(!(e instanceof Rc))throw e;this.setState({})},n.componentWillUnmount=function(){this.unbind()},n.render=function(){return this.props.children(this.setCallbacks)},t}(i.Component),Bc=function(e){return e+1},jc=function(e,t){var n=e.droppableId===t.droppableId,r=Bc(e.index),o=Bc(t.index);return n?"\n You have moved the item from position "+r+"\n to position "+o+"\n ":"\n You have moved the item from position "+r+"\n in list "+e.droppableId+"\n to list "+t.droppableId+"\n in position "+o+"\n "},Dc=function(e,t,n){return t.droppableId===n.droppableId?"\n The item "+e+"\n has been combined with "+n.draggableId:"\n The item "+e+"\n in list "+t.droppableId+"\n has been combined with "+n.draggableId+"\n in list "+n.droppableId+"\n "},Lc=function(e){return"\n The item has returned to its starting position\n of "+Bc(e.index)+"\n"},Zc="\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n",Nc=function(e){return"\n You have lifted an item in position "+Bc(e.source.index)+"\n"},Fc=function(e){var t=e.destination;if(t)return jc(e.source,t);var n=e.combine;return n?Dc(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},Hc=function(e){if("CANCEL"===e.reason)return"\n Movement cancelled.\n "+Lc(e.source)+"\n ";var t=e.destination,n=e.combine;return t?"\n You have dropped the item.\n "+jc(e.source,t)+"\n ":n?"\n You have dropped the item.\n "+Dc(e.draggableId,e.source,n)+"\n ":"\n The item has been dropped while not over a drop area.\n "+Lc(e.source)+"\n "},Vc={x:0,y:0},zc=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},Uc=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},Gc=function(e,t){return e.x===t.x&&e.y===t.y},Wc=function(e){return{x:0!==e.x?-e.x:0,y:0!==e.y?-e.y:0}},qc=function(e,t,n){var r;return void 0===n&&(n=0),(r={})[e]=t,r["x"===e?"y":"x"]=n,r},$c=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},Yc=function(e,t){return Math.min.apply(Math,t.map((function(t){return $c(e,t)})))},Xc=function(e){return function(t){return{x:e(t.x),y:e(t.y)}}},Kc=function(e,t){return{top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}},Jc=function(e){return[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}]},Qc=function(e,t){return t&&t.shouldClipSubject?function(e,t){var n=gc({top:Math.max(t.top,e.top),right:Math.min(t.right,e.right),bottom:Math.min(t.bottom,e.bottom),left:Math.max(t.left,e.left)});return n.width<=0||n.height<=0?null:n}(t.pageMarginBox,e):gc(e)},ef=function(e){var t=e.page,n=e.withPlaceholder,r=e.axis,o=e.frame,i=function(e,t){return t?Kc(e,t.scroll.diff.displacement):e}(t.marginBox,o),a=function(e,t,n){var r;return n&&n.increasedBy?(0,l.Z)({},e,((r={})[t.end]=e[t.end]+n.increasedBy[t.line],r)):e}(i,r,n);return{page:t,withPlaceholder:n,active:Qc(a,o)}},tf=function(e,t){e.frame||Tc(!1);var n=e.frame,r=Uc(t,n.scroll.initial),o=Wc(r),i=(0,l.Z)({},n,{scroll:{initial:n.scroll.initial,current:t,diff:{value:r,displacement:o},max:n.scroll.max}}),a=ef({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:i});return(0,l.Z)({},e,{frame:i,subject:a})};function nf(e){return Object.values?Object.values(e):Object.keys(e).map((function(t){return e[t]}))}function rf(e,t){if(e.findIndex)return e.findIndex(t);for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}function of(e,t){if(e.find)return e.find(t);var n=rf(e,t);return-1!==n?e[n]:void 0}function af(e){return Array.prototype.slice.call(e)}var sf=Or((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),lf=Or((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),uf=Or((function(e){return nf(e)})),cf=Or((function(e){return nf(e)})),ff=Or((function(e,t){var n=cf(t).filter((function(t){return e===t.descriptor.droppableId})).sort((function(e,t){return e.descriptor.index-t.descriptor.index}));return n}));function df(e){return e.at&&"REORDER"===e.at.type?e.at.destination:null}function pf(e){return e.at&&"COMBINE"===e.at.type?e.at.combine:null}var hf=Or((function(e,t){return t.filter((function(t){return t.descriptor.id!==e.descriptor.id}))})),gf=function(e,t){return e.descriptor.droppableId===t.descriptor.id},vf={point:Vc,value:0},mf={invisible:{},visible:{},all:[]},yf={displaced:mf,displacedBy:vf,at:null},bf=function(e,t){return function(n){return e<=n&&n<=t}},wf=function(e){var t=bf(e.top,e.bottom),n=bf(e.left,e.right);return function(r){if(t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right))return!0;var o=t(r.top)||t(r.bottom),i=n(r.left)||n(r.right);if(o&&i)return!0;var a=r.top<e.top&&r.bottom>e.bottom,s=r.left<e.left&&r.right>e.right;return!(!a||!s)||(a&&i||s&&o)}},_f=function(e){var t=bf(e.top,e.bottom),n=bf(e.left,e.right);return function(e){return t(e.top)&&t(e.bottom)&&n(e.left)&&n(e.right)}},xf={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},Sf={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},Of=function(e){var t=e.target,n=e.destination,r=e.viewport,o=e.withDroppableDisplacement,i=e.isVisibleThroughFrameFn,a=o?function(e,t){var n=t.frame?t.frame.scroll.diff.displacement:Vc;return Kc(e,n)}(t,n):t;return function(e,t,n){return!!t.subject.active&&n(t.subject.active)(e)}(a,n,i)&&function(e,t,n){return n(t)(e)}(a,r,i)},Cf=function(e){return Of((0,l.Z)({},e,{isVisibleThroughFrameFn:wf}))},Ef=function(e){return Of((0,l.Z)({},e,{isVisibleThroughFrameFn:_f}))},Af=function(e,t,n){if("boolean"===typeof n)return n;if(!t)return!0;var r=t.invisible,o=t.visible;if(r[e])return!1;var i=o[e];return!i||i.shouldAnimate};function kf(e){var t=e.afterDragging,n=e.destination,r=e.displacedBy,o=e.viewport,i=e.forceShouldAnimate,a=e.last;return t.reduce((function(e,t){var s=function(e,t){var n=e.page.marginBox,r={top:t.point.y,right:0,bottom:0,left:t.point.x};return gc(vc(n,r))}(t,r),l=t.descriptor.id;if(e.all.push(l),!Cf({target:s,destination:n,viewport:o,withDroppableDisplacement:!0}))return e.invisible[t.descriptor.id]=!0,e;var u={draggableId:l,shouldAnimate:Af(l,a,i)};return e.visible[l]=u,e}),{all:[],visible:{},invisible:{}})}function Mf(e){var t=e.insideDestination,n=e.inHomeList,r=e.displacedBy,o=e.destination,i=function(e,t){if(!e.length)return 0;var n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}(t,{inHomeList:n});return{displaced:mf,displacedBy:r,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:i}}}}function Pf(e){var t=e.draggable,n=e.insideDestination,r=e.destination,o=e.viewport,i=e.displacedBy,a=e.last,s=e.index,l=e.forceShouldAnimate,u=gf(t,r);if(null==s)return Mf({insideDestination:n,inHomeList:u,displacedBy:i,destination:r});var c=of(n,(function(e){return e.descriptor.index===s}));if(!c)return Mf({insideDestination:n,inHomeList:u,displacedBy:i,destination:r});var f=hf(t,n),d=n.indexOf(c);return{displaced:kf({afterDragging:f.slice(d),destination:r,displacedBy:i,last:a,viewport:o.frame,forceShouldAnimate:l}),displacedBy:i,at:{type:"REORDER",destination:{droppableId:r.descriptor.id,index:s}}}}function Rf(e,t){return Boolean(t.effected[e])}var Tf=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.draggable,o=e.draggables,i=e.destination,a=e.insideDestination,s=e.previousImpact,l=e.viewport,u=e.afterCritical,c=s.at;if(c||Tc(!1),"REORDER"===c.type){var f=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.insideDestination,o=e.location;if(!r.length)return null;var i=o.index,a=t?i+1:i-1,s=r[0].descriptor.index,l=r[r.length-1].descriptor.index;return a<s||a>(n?l:l+1)?null:a}({isMovingForward:t,isInHomeList:n,location:c.destination,insideDestination:a});return null==f?null:Pf({draggable:r,insideDestination:a,destination:i,viewport:l,last:s.displaced,displacedBy:s.displacedBy,index:f})}var d=function(e){var t=e.isMovingForward,n=e.destination,r=e.draggables,o=e.combine,i=e.afterCritical;if(!n.isCombineEnabled)return null;var a=o.draggableId,s=r[a].descriptor.index;return Rf(a,i)?t?s:s-1:t?s+1:s}({isMovingForward:t,destination:i,displaced:s.displaced,draggables:o,combine:c.combine,afterCritical:u});return null==d?null:Pf({draggable:r,insideDestination:a,destination:i,viewport:l,last:s.displaced,displacedBy:s.displacedBy,index:d})},If=function(e){var t=e.afterCritical,n=e.impact,r=e.draggables,o=pf(n);o||Tc(!1);var i=o.draggableId,a=r[i].page.borderBox.center,s=function(e){var t=e.displaced,n=e.afterCritical,r=e.combineWith,o=e.displacedBy,i=Boolean(t.visible[r]||t.invisible[r]);return Rf(r,n)?i?Vc:Wc(o.point):i?o.point:Vc}({displaced:n.displaced,afterCritical:t,combineWith:i,displacedBy:n.displacedBy});return zc(a,s)},Bf=function(e,t){return t.margin[e.start]+t.borderBox[e.size]/2},jf=function(e,t,n){return t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2},Df=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return qc(t.line,n.marginBox[t.end]+Bf(t,r),jf(t,n.marginBox,r))},Lf=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return qc(t.line,n.marginBox[t.start]-function(e,t){return t.margin[e.end]+t.borderBox[e.size]/2}(t,r),jf(t,n.marginBox,r))},Zf=function(e){var t=e.impact,n=e.draggable,r=e.draggables,o=e.droppable,i=e.afterCritical,a=ff(o.descriptor.id,r),s=n.page,l=o.axis;if(!a.length)return function(e){var t=e.axis,n=e.moveInto,r=e.isMoving;return qc(t.line,n.contentBox[t.start]+Bf(t,r),jf(t,n.contentBox,r))}({axis:l,moveInto:o.page,isMoving:s});var u=t.displaced,c=t.displacedBy,f=u.all[0];if(f){var d=r[f];if(Rf(f,i))return Lf({axis:l,moveRelativeTo:d.page,isMoving:s});var p=_c(d.page,c.point);return Lf({axis:l,moveRelativeTo:p,isMoving:s})}var h=a[a.length-1];if(h.descriptor.id===n.descriptor.id)return s.borderBox.center;if(Rf(h.descriptor.id,i)){var g=_c(h.page,Wc(i.displacedBy.point));return Df({axis:l,moveRelativeTo:g,isMoving:s})}return Df({axis:l,moveRelativeTo:h.page,isMoving:s})},Nf=function(e,t){var n=e.frame;return n?zc(t,n.scroll.diff.displacement):t},Ff=function(e){var t=function(e){var t=e.impact,n=e.draggable,r=e.droppable,o=e.draggables,i=e.afterCritical,a=n.page.borderBox.center,s=t.at;return r&&s?"REORDER"===s.type?Zf({impact:t,draggable:n,draggables:o,droppable:r,afterCritical:i}):If({impact:t,draggables:o,afterCritical:i}):a}(e),n=e.droppable;return n?Nf(n,t):t},Hf=function(e,t){var n=Uc(t,e.scroll.initial),r=Wc(n);return{frame:gc({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:r}}}};function Vf(e,t){return e.map((function(e){return t[e]}))}var zf=function(e){var t=e.pageBorderBoxCenter,n=e.draggable,r=function(e,t){return zc(e.scroll.diff.displacement,t)}(e.viewport,t),o=Uc(r,n.page.borderBox.center);return zc(n.client.borderBox.center,o)},Uf=function(e){var t=e.draggable,n=e.destination,r=e.newPageBorderBoxCenter,o=e.viewport,i=e.withDroppableDisplacement,a=e.onlyOnMainAxis,s=void 0!==a&&a,u=Uc(r,t.page.borderBox.center),c={target:Kc(t.page.borderBox,u),destination:n,withDroppableDisplacement:i,viewport:o};return s?function(e){return Of((0,l.Z)({},e,{isVisibleThroughFrameFn:(t=e.destination.axis,function(e){var n=bf(e.top,e.bottom),r=bf(e.left,e.right);return function(e){return t===xf?n(e.top)&&n(e.bottom):r(e.left)&&r(e.right)}})}));var t}(c):Ef(c)},Gf=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,o=e.draggables,i=e.previousImpact,a=e.viewport,s=e.previousPageBorderBoxCenter,u=e.previousClientSelection,c=e.afterCritical;if(!r.isEnabled)return null;var f=ff(r.descriptor.id,o),d=gf(n,r),p=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,o=e.insideDestination,i=e.previousImpact;if(!r.isCombineEnabled)return null;if(!df(i))return null;function a(e){var t={type:"COMBINE",combine:{draggableId:e,droppableId:r.descriptor.id}};return(0,l.Z)({},i,{at:t})}var s=i.displaced.all,u=s.length?s[0]:null;if(t)return u?a(u):null;var c=hf(n,o);if(!u)return c.length?a(c[c.length-1].descriptor.id):null;var f=rf(c,(function(e){return e.descriptor.id===u}));-1===f&&Tc(!1);var d=f-1;return d<0?null:a(c[d].descriptor.id)}({isMovingForward:t,draggable:n,destination:r,insideDestination:f,previousImpact:i})||Tf({isMovingForward:t,isInHomeList:d,draggable:n,draggables:o,destination:r,insideDestination:f,previousImpact:i,viewport:a,afterCritical:c});if(!p)return null;var h=Ff({impact:p,draggable:n,droppable:r,draggables:o,afterCritical:c});if(Uf({draggable:n,destination:r,newPageBorderBoxCenter:h,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:zf({pageBorderBoxCenter:h,draggable:n,viewport:a}),impact:p,scrollJumpRequest:null};var g=Uc(h,s),v=function(e){var t=e.impact,n=e.viewport,r=e.destination,o=e.draggables,i=e.maxScrollChange,a=Hf(n,zc(n.scroll.current,i)),s=r.frame?tf(r,zc(r.frame.scroll.current,i)):r,u=t.displaced,c=kf({afterDragging:Vf(u.all,o),destination:r,displacedBy:t.displacedBy,viewport:a.frame,last:u,forceShouldAnimate:!1}),f=kf({afterDragging:Vf(u.all,o),destination:s,displacedBy:t.displacedBy,viewport:n.frame,last:u,forceShouldAnimate:!1}),d={},p={},h=[u,c,f];return u.all.forEach((function(e){var t=function(e,t){for(var n=0;n<t.length;n++){var r=t[n].visible[e];if(r)return r}return null}(e,h);t?p[e]=t:d[e]=!0})),(0,l.Z)({},t,{displaced:{all:u.all,invisible:d,visible:p}})}({impact:p,viewport:a,destination:r,draggables:o,maxScrollChange:g});return{clientSelection:u,impact:v,scrollJumpRequest:g}},Wf=function(e){var t=e.subject.active;return t||Tc(!1),t},qf=function(e,t){var n=e.page.borderBox.center;return Rf(e.descriptor.id,t)?Uc(n,t.displacedBy.point):n},$f=function(e,t){var n=e.page.borderBox;return Rf(e.descriptor.id,t)?Kc(n,Wc(t.displacedBy.point)):n},Yf=Or((function(e,t){var n=t[e.line];return{value:n,point:qc(e.line,n)}})),Xf=function(e,t){return(0,l.Z)({},e,{scroll:(0,l.Z)({},e.scroll,{max:t})})},Kf=function(e,t,n){var r=e.frame;gf(t,e)&&Tc(!1),e.subject.withPlaceholder&&Tc(!1);var o=Yf(e.axis,t.displaceBy).point,i=function(e,t,n){var r=e.axis;if("virtual"===e.descriptor.mode)return qc(r.line,t[r.line]);var o=e.subject.page.contentBox[r.size],i=ff(e.descriptor.id,n).reduce((function(e,t){return e+t.client.marginBox[r.size]}),0),a=i+t[r.line]-o;return a<=0?null:qc(r.line,a)}(e,o,n),a={placeholderSize:o,increasedBy:i,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!r){var s=ef({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return(0,l.Z)({},e,{subject:s})}var u=i?zc(r.scroll.max,i):r.scroll.max,c=Xf(r,u),f=ef({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:c});return(0,l.Z)({},e,{subject:f,frame:c})},Jf=function(e){var t=e.isMovingForward,n=e.previousPageBorderBoxCenter,r=e.draggable,o=e.isOver,i=e.draggables,a=e.droppables,s=e.viewport,l=e.afterCritical,u=function(e){var t=e.isMovingForward,n=e.pageBorderBoxCenter,r=e.source,o=e.droppables,i=e.viewport,a=r.subject.active;if(!a)return null;var s=r.axis,l=bf(a[s.start],a[s.end]),u=uf(o).filter((function(e){return e!==r})).filter((function(e){return e.isEnabled})).filter((function(e){return Boolean(e.subject.active)})).filter((function(e){return wf(i.frame)(Wf(e))})).filter((function(e){var n=Wf(e);return t?a[s.crossAxisEnd]<n[s.crossAxisEnd]:n[s.crossAxisStart]<a[s.crossAxisStart]})).filter((function(e){var t=Wf(e),n=bf(t[s.start],t[s.end]);return l(t[s.start])||l(t[s.end])||n(a[s.start])||n(a[s.end])})).sort((function(e,n){var r=Wf(e)[s.crossAxisStart],o=Wf(n)[s.crossAxisStart];return t?r-o:o-r})).filter((function(e,t,n){return Wf(e)[s.crossAxisStart]===Wf(n[0])[s.crossAxisStart]}));if(!u.length)return null;if(1===u.length)return u[0];var c=u.filter((function(e){return bf(Wf(e)[s.start],Wf(e)[s.end])(n[s.line])}));return 1===c.length?c[0]:c.length>1?c.sort((function(e,t){return Wf(e)[s.start]-Wf(t)[s.start]}))[0]:u.sort((function(e,t){var r=Yc(n,Jc(Wf(e))),o=Yc(n,Jc(Wf(t)));return r!==o?r-o:Wf(e)[s.start]-Wf(t)[s.start]}))[0]}({isMovingForward:t,pageBorderBoxCenter:n,source:o,droppables:a,viewport:s});if(!u)return null;var c=ff(u.descriptor.id,i),f=function(e){var t=e.pageBorderBoxCenter,n=e.viewport,r=e.destination,o=e.insideDestination,i=e.afterCritical,a=o.filter((function(e){return Ef({target:$f(e,i),destination:r,viewport:n.frame,withDroppableDisplacement:!0})})).sort((function(e,n){var o=$c(t,Nf(r,qf(e,i))),a=$c(t,Nf(r,qf(n,i)));return o<a?-1:a<o?1:e.descriptor.index-n.descriptor.index}));return a[0]||null}({pageBorderBoxCenter:n,viewport:s,destination:u,insideDestination:c,afterCritical:l}),d=function(e){var t=e.previousPageBorderBoxCenter,n=e.moveRelativeTo,r=e.insideDestination,o=e.draggable,i=e.draggables,a=e.destination,s=e.viewport,l=e.afterCritical;if(!n){if(r.length)return null;var u={displaced:mf,displacedBy:vf,at:{type:"REORDER",destination:{droppableId:a.descriptor.id,index:0}}},c=Ff({impact:u,draggable:o,droppable:a,draggables:i,afterCritical:l}),f=gf(o,a)?a:Kf(a,o,i);return Uf({draggable:o,destination:f,newPageBorderBoxCenter:c,viewport:s.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?u:null}var d=Boolean(t[a.axis.line]<=n.page.borderBox.center[a.axis.line]),p=function(){var e=n.descriptor.index;return n.descriptor.id===o.descriptor.id||d?e:e+1}(),h=Yf(a.axis,o.displaceBy);return Pf({draggable:o,insideDestination:r,destination:a,viewport:s,displacedBy:h,last:mf,index:p})}({previousPageBorderBoxCenter:n,destination:u,draggable:r,draggables:i,moveRelativeTo:f,insideDestination:c,viewport:s,afterCritical:l});if(!d)return null;var p=Ff({impact:d,draggable:r,droppable:u,draggables:i,afterCritical:l});return{clientSelection:zf({pageBorderBoxCenter:p,draggable:r,viewport:s}),impact:d,scrollJumpRequest:null}},Qf=function(e){var t=e.at;return t?"REORDER"===t.type?t.destination.droppableId:t.combine.droppableId:null},ed=function(e){var t=e.state,n=e.type,r=function(e,t){var n=Qf(e);return n?t[n]:null}(t.impact,t.dimensions.droppables),o=Boolean(r),i=t.dimensions.droppables[t.critical.droppable.id],a=r||i,s=a.axis.direction,l="vertical"===s&&("MOVE_UP"===n||"MOVE_DOWN"===n)||"horizontal"===s&&("MOVE_LEFT"===n||"MOVE_RIGHT"===n);if(l&&!o)return null;var u="MOVE_DOWN"===n||"MOVE_RIGHT"===n,c=t.dimensions.draggables[t.critical.draggable.id],f=t.current.page.borderBoxCenter,d=t.dimensions,p=d.draggables,h=d.droppables;return l?Gf({isMovingForward:u,previousPageBorderBoxCenter:f,draggable:c,destination:a,draggables:p,viewport:t.viewport,previousClientSelection:t.current.client.selection,previousImpact:t.impact,afterCritical:t.afterCritical}):Jf({isMovingForward:u,previousPageBorderBoxCenter:f,draggable:c,isOver:a,draggables:p,droppables:h,viewport:t.viewport,afterCritical:t.afterCritical})};function td(e){return"DRAGGING"===e.phase||"COLLECTING"===e.phase}function nd(e){var t=bf(e.top,e.bottom),n=bf(e.left,e.right);return function(e){return t(e.y)&&n(e.x)}}function rd(e){var t=e.pageBorderBox,n=e.draggable,r=e.droppables,o=uf(r).filter((function(e){if(!e.isEnabled)return!1;var n,r,o=e.subject.active;if(!o)return!1;if(r=o,!((n=t).left<r.right&&n.right>r.left&&n.top<r.bottom&&n.bottom>r.top))return!1;if(nd(o)(t.center))return!0;var i=e.axis,a=o.center[i.crossAxisLine],s=t[i.crossAxisStart],l=t[i.crossAxisEnd],u=bf(o[i.crossAxisStart],o[i.crossAxisEnd]),c=u(s),f=u(l);return!c&&!f||(c?s<a:l>a)}));return o.length?1===o.length?o[0].descriptor.id:function(e){var t=e.pageBorderBox,n=e.draggable,r=e.candidates,o=n.page.borderBox.center,i=r.map((function(e){var n=e.axis,r=qc(e.axis.line,t.center[n.line],e.page.borderBox.center[n.crossAxisLine]);return{id:e.descriptor.id,distance:$c(o,r)}})).sort((function(e,t){return t.distance-e.distance}));return i[0]?i[0].id:null}({pageBorderBox:t,draggable:n,candidates:o}):null}var od=function(e,t){return gc(Kc(e,t))};function id(e){var t=e.displaced,n=e.id;return Boolean(t.visible[n]||t.invisible[n])}var ad=function(e){var t=e.pageOffset,n=e.draggable,r=e.draggables,o=e.droppables,i=e.previousImpact,a=e.viewport,s=e.afterCritical,l=od(n.page.borderBox,t),u=rd({pageBorderBox:l,draggable:n,droppables:o});if(!u)return yf;var c=o[u],f=ff(c.descriptor.id,r),d=function(e,t){var n=e.frame;return n?od(t,n.scroll.diff.value):t}(c,l);return function(e){var t=e.draggable,n=e.pageBorderBoxWithDroppableScroll,r=e.previousImpact,o=e.destination,i=e.insideDestination,a=e.afterCritical;if(!o.isCombineEnabled)return null;var s=o.axis,l=Yf(o.axis,t.displaceBy),u=l.value,c=n[s.start],f=n[s.end],d=of(hf(t,i),(function(e){var t=e.descriptor.id,n=e.page.borderBox,o=n[s.size]/4,i=Rf(t,a),l=id({displaced:r.displaced,id:t});return i?l?f>n[s.start]+o&&f<n[s.end]-o:c>n[s.start]-u+o&&c<n[s.end]-u-o:l?f>n[s.start]+u+o&&f<n[s.end]+u-o:c>n[s.start]+o&&c<n[s.end]-o}));return d?{displacedBy:l,displaced:r.displaced,at:{type:"COMBINE",combine:{draggableId:d.descriptor.id,droppableId:o.descriptor.id}}}:null}({pageBorderBoxWithDroppableScroll:d,draggable:n,previousImpact:i,destination:c,insideDestination:f,afterCritical:s})||function(e){var t=e.pageBorderBoxWithDroppableScroll,n=e.draggable,r=e.destination,o=e.insideDestination,i=e.last,a=e.viewport,s=e.afterCritical,l=r.axis,u=Yf(r.axis,n.displaceBy),c=u.value,f=t[l.start],d=t[l.end],p=function(e){var t=e.draggable,n=e.closest,r=e.inHomeList;return n?r&&n.descriptor.index>t.descriptor.index?n.descriptor.index-1:n.descriptor.index:null}({draggable:n,closest:of(hf(n,o),(function(e){var t=e.descriptor.id,n=e.page.borderBox.center[l.line],r=Rf(t,s),o=id({displaced:i,id:t});return r?o?d<=n:f<n-c:o?d<=n+c:f<n})),inHomeList:gf(n,r)});return Pf({draggable:n,insideDestination:o,destination:r,viewport:a,last:i,displacedBy:u,index:p})}({pageBorderBoxWithDroppableScroll:d,draggable:n,destination:c,insideDestination:f,last:i.displaced,viewport:a,afterCritical:s})},sd=function(e,t){var n;return(0,l.Z)({},e,((n={})[t.descriptor.id]=t,n))},ld=function(e){var t=e.previousImpact,n=e.impact,r=e.droppables,o=Qf(t),i=Qf(n);if(!o)return r;if(o===i)return r;var a=r[o];if(!a.subject.withPlaceholder)return r;var s=function(e){var t=e.subject.withPlaceholder;t||Tc(!1);var n=e.frame;if(!n){var r=ef({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return(0,l.Z)({},e,{subject:r})}var o=t.oldFrameMaxScroll;o||Tc(!1);var i=Xf(n,o),a=ef({page:e.subject.page,axis:e.axis,frame:i,withPlaceholder:null});return(0,l.Z)({},e,{subject:a,frame:i})}(a);return sd(r,s)},ud=function(e){var t=e.state,n=e.clientSelection,r=e.dimensions,o=e.viewport,i=e.impact,a=e.scrollJumpRequest,s=o||t.viewport,u=r||t.dimensions,c=n||t.current.client.selection,f=Uc(c,t.initial.client.selection),d={offset:f,selection:c,borderBoxCenter:zc(t.initial.client.borderBoxCenter,f)},p={selection:zc(d.selection,s.scroll.current),borderBoxCenter:zc(d.borderBoxCenter,s.scroll.current),offset:zc(d.offset,s.scroll.diff.value)},h={client:d,page:p};if("COLLECTING"===t.phase)return(0,l.Z)({phase:"COLLECTING"},t,{dimensions:u,viewport:s,current:h});var g=u.draggables[t.critical.draggable.id],v=i||ad({pageOffset:p.offset,draggable:g,draggables:u.draggables,droppables:u.droppables,previousImpact:t.impact,viewport:s,afterCritical:t.afterCritical}),m=function(e){var t=e.draggable,n=e.draggables,r=e.droppables,o=e.previousImpact,i=e.impact,a=ld({previousImpact:o,impact:i,droppables:r}),s=Qf(i);if(!s)return a;var l=r[s];if(gf(t,l))return a;if(l.subject.withPlaceholder)return a;var u=Kf(l,t,n);return sd(a,u)}({draggable:g,impact:v,previousImpact:t.impact,draggables:u.draggables,droppables:u.droppables});return(0,l.Z)({},t,{current:h,dimensions:{draggables:u.draggables,droppables:m},impact:v,viewport:s,scrollJumpRequest:a||null,forceShouldAnimate:!a&&null})};var cd=function(e){var t=e.impact,n=e.viewport,r=e.draggables,o=e.destination,i=e.forceShouldAnimate,a=t.displaced,s=function(e,t){return e.map((function(e){return t[e]}))}(a.all,r),u=kf({afterDragging:s,destination:o,displacedBy:t.displacedBy,viewport:n.frame,forceShouldAnimate:i,last:a});return(0,l.Z)({},t,{displaced:u})},fd=function(e){var t=e.impact,n=e.draggable,r=e.droppable,o=e.draggables,i=e.viewport,a=e.afterCritical,s=Ff({impact:t,draggable:n,draggables:o,droppable:r,afterCritical:a});return zf({pageBorderBoxCenter:s,draggable:n,viewport:i})},dd=function(e){var t=e.state,n=e.dimensions,r=e.viewport;"SNAP"!==t.movementMode&&Tc(!1);var o=t.impact,i=r||t.viewport,a=n||t.dimensions,s=a.draggables,l=a.droppables,u=s[t.critical.draggable.id],c=Qf(o);c||Tc(!1);var f=l[c],d=cd({impact:o,viewport:i,destination:f,draggables:s}),p=fd({impact:d,draggable:u,droppable:f,draggables:s,viewport:i,afterCritical:t.afterCritical});return ud({impact:d,clientSelection:p,state:t,dimensions:a,viewport:i})},pd=function(e){var t=e.draggable,n=e.home,r=e.draggables,o=e.viewport,i=Yf(n.axis,t.displaceBy),a=ff(n.descriptor.id,r),s=a.indexOf(t);-1===s&&Tc(!1);var l,u=a.slice(s+1),c=u.reduce((function(e,t){return e[t.descriptor.id]=!0,e}),{}),f={inVirtualList:"virtual"===n.descriptor.mode,displacedBy:i,effected:c};return{impact:{displaced:kf({afterDragging:u,destination:n,displacedBy:i,last:null,viewport:o.frame,forceShouldAnimate:!1}),displacedBy:i,at:{type:"REORDER",destination:(l=t.descriptor,{index:l.index,droppableId:l.droppableId})}},afterCritical:f}},hd=function(e){0},gd=function(e){0},vd=function(e){var t=e.additions,n=e.updatedDroppables,r=e.viewport,o=r.scroll.diff.value;return t.map((function(e){var t=e.descriptor.droppableId,i=function(e){var t=e.frame;return t||Tc(!1),t}(n[t]),a=i.scroll.diff.value,s=function(e){var t=e.draggable,n=e.offset,r=e.initialWindowScroll,o=_c(t.client,n),i=xc(o,r);return(0,l.Z)({},t,{placeholder:(0,l.Z)({},t.placeholder,{client:o}),client:o,page:i})}({draggable:e,offset:zc(o,a),initialWindowScroll:r.scroll.initial});return s}))},md=function(e){return"SNAP"===e.movementMode},yd=function(e,t,n){var r=function(e,t){return{draggables:e.draggables,droppables:sd(e.droppables,t)}}(e.dimensions,t);return!md(e)||n?ud({state:e,dimensions:r}):dd({state:e,dimensions:r})};function bd(e){return e.isDragging&&"SNAP"===e.movementMode?(0,l.Z)({phase:"DRAGGING"},e,{scrollJumpRequest:null}):e}var wd={phase:"IDLE",completed:null,shouldFlush:!1},_d=function(e,t){if(void 0===e&&(e=wd),"FLUSH"===t.type)return(0,l.Z)({},wd,{shouldFlush:!0});if("INITIAL_PUBLISH"===t.type){"IDLE"!==e.phase&&Tc(!1);var n=t.payload,r=n.critical,o=n.clientSelection,i=n.viewport,a=n.dimensions,s=n.movementMode,u=a.draggables[r.draggable.id],c=a.droppables[r.droppable.id],f={selection:o,borderBoxCenter:u.client.borderBox.center,offset:Vc},d={client:f,page:{selection:zc(f.selection,i.scroll.initial),borderBoxCenter:zc(f.selection,i.scroll.initial),offset:zc(f.selection,i.scroll.diff.value)}},p=uf(a.droppables).every((function(e){return!e.isFixedOnPage})),h=pd({draggable:u,home:c,draggables:a.draggables,viewport:i}),g=h.impact;return{phase:"DRAGGING",isDragging:!0,critical:r,movementMode:s,dimensions:a,initial:d,current:d,isWindowScrollAllowed:p,impact:g,afterCritical:h.afterCritical,onLiftImpact:g,viewport:i,scrollJumpRequest:null,forceShouldAnimate:null}}if("COLLECTION_STARTING"===t.type)return"COLLECTING"===e.phase||"DROP_PENDING"===e.phase?e:("DRAGGING"!==e.phase&&Tc(!1),(0,l.Z)({phase:"COLLECTING"},e,{phase:"COLLECTING"}));if("PUBLISH_WHILE_DRAGGING"===t.type)return"COLLECTING"!==e.phase&&"DROP_PENDING"!==e.phase&&Tc(!1),function(e){var t=e.state,n=e.published;hd();var r=n.modified.map((function(e){var n=t.dimensions.droppables[e.droppableId];return tf(n,e.scroll)})),o=(0,l.Z)({},t.dimensions.droppables,{},sf(r)),i=lf(vd({additions:n.additions,updatedDroppables:o,viewport:t.viewport})),a=(0,l.Z)({},t.dimensions.draggables,{},i);n.removals.forEach((function(e){delete a[e]}));var s={droppables:o,draggables:a},u=Qf(t.impact),c=u?s.droppables[u]:null,f=s.draggables[t.critical.draggable.id],d=s.droppables[t.critical.droppable.id],p=pd({draggable:f,home:d,draggables:a,viewport:t.viewport}),h=p.impact,g=p.afterCritical,v=c&&c.isCombineEnabled?t.impact:h,m=ad({pageOffset:t.current.page.offset,draggable:s.draggables[t.critical.draggable.id],draggables:s.draggables,droppables:s.droppables,previousImpact:v,viewport:t.viewport,afterCritical:g});gd();var y=(0,l.Z)({phase:"DRAGGING"},t,{phase:"DRAGGING",impact:m,onLiftImpact:h,dimensions:s,afterCritical:g,forceShouldAnimate:!1});return"COLLECTING"===t.phase?y:(0,l.Z)({phase:"DROP_PENDING"},y,{phase:"DROP_PENDING",reason:t.reason,isWaiting:!1})}({state:e,published:t.payload});if("MOVE"===t.type){if("DROP_PENDING"===e.phase)return e;td(e)||Tc(!1);var v=t.payload.client;return Gc(v,e.current.client.selection)?e:ud({state:e,clientSelection:v,impact:md(e)?e.impact:null})}if("UPDATE_DROPPABLE_SCROLL"===t.type){if("DROP_PENDING"===e.phase)return bd(e);if("COLLECTING"===e.phase)return bd(e);td(e)||Tc(!1);var m=t.payload,y=m.id,b=m.newScroll,w=e.dimensions.droppables[y];if(!w)return e;var _=tf(w,b);return yd(e,_,!1)}if("UPDATE_DROPPABLE_IS_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;td(e)||Tc(!1);var x=t.payload,S=x.id,O=x.isEnabled,C=e.dimensions.droppables[S];C||Tc(!1),C.isEnabled===O&&Tc(!1);var E=(0,l.Z)({},C,{isEnabled:O});return yd(e,E,!0)}if("UPDATE_DROPPABLE_IS_COMBINE_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;td(e)||Tc(!1);var A=t.payload,k=A.id,M=A.isCombineEnabled,P=e.dimensions.droppables[k];P||Tc(!1),P.isCombineEnabled===M&&Tc(!1);var R=(0,l.Z)({},P,{isCombineEnabled:M});return yd(e,R,!0)}if("MOVE_BY_WINDOW_SCROLL"===t.type){if("DROP_PENDING"===e.phase||"DROP_ANIMATING"===e.phase)return e;td(e)||Tc(!1),e.isWindowScrollAllowed||Tc(!1);var T=t.payload.newScroll;if(Gc(e.viewport.scroll.current,T))return bd(e);var I=Hf(e.viewport,T);return md(e)?dd({state:e,viewport:I}):ud({state:e,viewport:I})}if("UPDATE_VIEWPORT_MAX_SCROLL"===t.type){if(!td(e))return e;var B=t.payload.maxScroll;if(Gc(B,e.viewport.scroll.max))return e;var j=(0,l.Z)({},e.viewport,{scroll:(0,l.Z)({},e.viewport.scroll,{max:B})});return(0,l.Z)({phase:"DRAGGING"},e,{viewport:j})}if("MOVE_UP"===t.type||"MOVE_DOWN"===t.type||"MOVE_LEFT"===t.type||"MOVE_RIGHT"===t.type){if("COLLECTING"===e.phase||"DROP_PENDING"===e.phase)return e;"DRAGGING"!==e.phase&&Tc(!1);var D=ed({state:e,type:t.type});return D?ud({state:e,impact:D.impact,clientSelection:D.clientSelection,scrollJumpRequest:D.scrollJumpRequest}):e}if("DROP_PENDING"===t.type){var L=t.payload.reason;return"COLLECTING"!==e.phase&&Tc(!1),(0,l.Z)({phase:"DROP_PENDING"},e,{phase:"DROP_PENDING",isWaiting:!0,reason:L})}if("DROP_ANIMATE"===t.type){var Z=t.payload,N=Z.completed,F=Z.dropDuration,H=Z.newHomeClientOffset;return"DRAGGING"!==e.phase&&"DROP_PENDING"!==e.phase&&Tc(!1),{phase:"DROP_ANIMATING",completed:N,dropDuration:F,newHomeClientOffset:H,dimensions:e.dimensions}}return"DROP_COMPLETE"===t.type?{phase:"IDLE",completed:t.payload.completed,shouldFlush:!1}:e},xd=function(e){return{type:"LIFT",payload:e}},Sd=function(e){return{type:"PUBLISH_WHILE_DRAGGING",payload:e}},Od=function(){return{type:"COLLECTION_STARTING",payload:null}},Cd=function(e){return{type:"UPDATE_DROPPABLE_SCROLL",payload:e}},Ed=function(e){return{type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}},Ad=function(e){return{type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}},kd=function(e){return{type:"MOVE",payload:e}},Md=function(){return{type:"MOVE_UP",payload:null}},Pd=function(){return{type:"MOVE_DOWN",payload:null}},Rd=function(){return{type:"MOVE_RIGHT",payload:null}},Td=function(){return{type:"MOVE_LEFT",payload:null}},Id=function(){return{type:"FLUSH",payload:null}},Bd=function(e){return{type:"DROP_COMPLETE",payload:e}},jd=function(e){return{type:"DROP",payload:e}},Dd=function(){return{type:"DROP_ANIMATION_FINISHED",payload:null}};var Ld="cubic-bezier(.2,1,.1,1)",Zd={drop:0,combining:.7},Nd={drop:.75},Fd=.2+"s "+"cubic-bezier(0.2, 0, 0, 1)",Hd={fluid:"opacity "+Fd,snap:"transform "+Fd+", opacity "+Fd,drop:function(e){var t=e+"s "+Ld;return"transform "+t+", opacity "+t},outOfTheWay:"transform "+Fd,placeholder:"height "+Fd+", width "+Fd+", margin "+Fd},Vd=function(e){return Gc(e,Vc)?null:"translate("+e.x+"px, "+e.y+"px)"},zd={moveTo:Vd,drop:function(e,t){var n=Vd(e);return n?t?n+" scale("+Nd.drop+")":n:null}},Ud=.33,Gd=.55,Wd=Gd-Ud,qd=function(e){var t=e.getState,n=e.dispatch;return function(e){return function(r){if("DROP"===r.type){var o=t(),i=r.payload.reason;if("COLLECTING"!==o.phase){if("IDLE"!==o.phase){"DROP_PENDING"===o.phase&&o.isWaiting&&Tc(!1),"DRAGGING"!==o.phase&&"DROP_PENDING"!==o.phase&&Tc(!1);var a=o.critical,s=o.dimensions,u=s.draggables[o.critical.draggable.id],c=function(e){var t=e.draggables,n=e.reason,r=e.lastImpact,o=e.home,i=e.viewport,a=e.onLiftImpact;return r.at&&"DROP"===n?"REORDER"===r.at.type?{impact:r,didDropInsideDroppable:!0}:{impact:(0,l.Z)({},r,{displaced:mf}),didDropInsideDroppable:!0}:{impact:cd({draggables:t,impact:a,destination:o,viewport:i,forceShouldAnimate:!0}),didDropInsideDroppable:!1}}({reason:i,lastImpact:o.impact,afterCritical:o.afterCritical,onLiftImpact:o.onLiftImpact,home:o.dimensions.droppables[o.critical.droppable.id],viewport:o.viewport,draggables:o.dimensions.draggables}),f=c.impact,d=c.didDropInsideDroppable,p=d?df(f):null,h=d?pf(f):null,g={index:a.draggable.index,droppableId:a.droppable.id},v={draggableId:u.descriptor.id,type:u.descriptor.type,source:g,reason:i,mode:o.movementMode,destination:p,combine:h},m=function(e){var t=e.impact,n=e.draggable,r=e.dimensions,o=e.viewport,i=e.afterCritical,a=r.draggables,s=r.droppables,l=Qf(t),u=l?s[l]:null,c=s[n.descriptor.droppableId],f=fd({impact:t,draggable:n,draggables:a,afterCritical:i,droppable:u||c,viewport:o});return Uc(f,n.client.borderBox.center)}({impact:f,draggable:u,dimensions:s,viewport:o.viewport,afterCritical:o.afterCritical}),y={critical:o.critical,afterCritical:o.afterCritical,result:v,impact:f};if(!Gc(o.current.client.offset,m)||Boolean(v.combine)){var b=function(e){var t=e.current,n=e.destination,r=e.reason,o=$c(t,n);if(o<=0)return Ud;if(o>=1500)return Gd;var i=Ud+Wd*(o/1500);return Number(("CANCEL"===r?.6*i:i).toFixed(2))}({current:o.current.client.offset,destination:m,reason:i});n(function(e){return{type:"DROP_ANIMATE",payload:e}}({newHomeClientOffset:m,dropDuration:b,completed:y}))}else n(Bd({completed:y}))}}else n(function(e){return{type:"DROP_PENDING",payload:e}}({reason:i}))}else e(r)}}},$d=function(){return{x:window.pageXOffset,y:window.pageYOffset}};function Yd(e){var t=e.onWindowScroll;var n=Cc((function(){t($d())})),r=function(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(t){t.target!==window&&t.target!==window.document||e()}}}(n),o=Ac;function i(){return o!==Ac}return{start:function(){i()&&Tc(!1),o=kc(window,[r])},stop:function(){i()||Tc(!1),n.cancel(),o(),o=Ac},isActive:i}}var Xd=function(e){var t=Yd({onWindowScroll:function(t){e.dispatch({type:"MOVE_BY_WINDOW_SCROLL",payload:{newScroll:t}})}});return function(e){return function(n){t.isActive()||"INITIAL_PUBLISH"!==n.type||t.start(),t.isActive()&&function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(n)&&t.stop(),e(n)}}},Kd=function(){var e=[];return{add:function(t){var n=setTimeout((function(){return function(t){var n=rf(e,(function(e){return e.timerId===t}));-1===n&&Tc(!1),e.splice(n,1)[0].callback()}(n)})),r={timerId:n,callback:t};e.push(r)},flush:function(){if(e.length){var t=[].concat(e);e.length=0,t.forEach((function(e){clearTimeout(e.timerId),e.callback()}))}}}},Jd=function(e,t){hd(),t(),gd()},Qd=function(e,t){return{draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t}},ep=function(e,t,n,r){if(e){var o=function(e){var t=!1,n=!1,r=setTimeout((function(){n=!0})),o=function(o){t||n||(t=!0,e(o),clearTimeout(r))};return o.wasCalled=function(){return t},o}(n);e(t,{announce:o}),o.wasCalled()||n(r(t))}else n(r(t))},tp=function(e,t){var n=function(e,t){var n=Kd(),r=null,o=function(n){r||Tc(!1),r=null,Jd(0,(function(){return ep(e().onDragEnd,n,t,Hc)}))};return{beforeCapture:function(t,n){r&&Tc(!1),Jd(0,(function(){var r=e().onBeforeCapture;r&&r({draggableId:t,mode:n})}))},beforeStart:function(t,n){r&&Tc(!1),Jd(0,(function(){var r=e().onBeforeDragStart;r&&r(Qd(t,n))}))},start:function(o,i){r&&Tc(!1);var a=Qd(o,i);r={mode:i,lastCritical:o,lastLocation:a.source,lastCombine:null},n.add((function(){Jd(0,(function(){return ep(e().onDragStart,a,t,Nc)}))}))},update:function(o,i){var a=df(i),s=pf(i);r||Tc(!1);var u=!function(e,t){if(e===t)return!0;var n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,r=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&r}(o,r.lastCritical);u&&(r.lastCritical=o);var c,f,d=(f=a,!(null==(c=r.lastLocation)&&null==f||null!=c&&null!=f&&c.droppableId===f.droppableId&&c.index===f.index));d&&(r.lastLocation=a);var p=!function(e,t){return null==e&&null==t||null!=e&&null!=t&&e.draggableId===t.draggableId&&e.droppableId===t.droppableId}(r.lastCombine,s);if(p&&(r.lastCombine=s),u||d||p){var h=(0,l.Z)({},Qd(o,r.mode),{combine:s,destination:a});n.add((function(){Jd(0,(function(){return ep(e().onDragUpdate,h,t,Fc)}))}))}},flush:function(){r||Tc(!1),n.flush()},drop:o,abort:function(){if(r){var e=(0,l.Z)({},Qd(r.lastCritical,r.mode),{combine:null,destination:null,reason:"CANCEL"});o(e)}}}}(e,t);return function(e){return function(t){return function(r){if("BEFORE_INITIAL_CAPTURE"!==r.type){if("INITIAL_PUBLISH"===r.type){var o=r.payload.critical;return n.beforeStart(o,r.payload.movementMode),t(r),void n.start(o,r.payload.movementMode)}if("DROP_COMPLETE"===r.type){var i=r.payload.completed.result;return n.flush(),t(r),void n.drop(i)}if(t(r),"FLUSH"!==r.type){var a=e.getState();"DRAGGING"===a.phase&&n.update(a.critical,a.impact)}else n.abort()}else n.beforeCapture(r.payload.draggableId,r.payload.movementMode)}}}},np=function(e){return function(t){return function(n){if("DROP_ANIMATION_FINISHED"===n.type){var r=e.getState();"DROP_ANIMATING"!==r.phase&&Tc(!1),e.dispatch(Bd({completed:r.completed}))}else t(n)}}},rp=function(e){var t=null,n=null;return function(r){return function(o){if("FLUSH"!==o.type&&"DROP_COMPLETE"!==o.type&&"DROP_ANIMATION_FINISHED"!==o.type||(n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)),r(o),"DROP_ANIMATE"===o.type){var i={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){"DROP_ANIMATING"===e.getState().phase&&e.dispatch({type:"DROP_ANIMATION_FINISHED",payload:null})}};n=requestAnimationFrame((function(){n=null,t=kc(window,[i])}))}}}},op=function(e){return function(t){return function(n){if(t(n),"PUBLISH_WHILE_DRAGGING"===n.type){var r=e.getState();"DROP_PENDING"===r.phase&&(r.isWaiting||e.dispatch(jd({reason:r.reason})))}}}},ip=Eu,ap=function(e){var t,n=e.dimensionMarshal,r=e.focusMarshal,o=e.styleMarshal,i=e.getResponders,a=e.announce,s=e.autoScroller;return Su(_d,ip(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error(yu(15))},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return r=Eu.apply(void 0,i)(n.dispatch),mu(mu({},n),{},{dispatch:r})}}}((t=o,function(){return function(e){return function(n){"INITIAL_PUBLISH"===n.type&&t.dragging(),"DROP_ANIMATE"===n.type&&t.dropping(n.payload.completed.result.reason),"FLUSH"!==n.type&&"DROP_COMPLETE"!==n.type||t.resting(),e(n)}}}),function(e){return function(){return function(t){return function(n){"DROP_COMPLETE"!==n.type&&"FLUSH"!==n.type&&"DROP_ANIMATE"!==n.type||e.stopPublishing(),t(n)}}}}(n),function(e){return function(t){var n=t.getState,r=t.dispatch;return function(t){return function(o){if("LIFT"===o.type){var i=o.payload,a=i.id,s=i.clientSelection,l=i.movementMode,u=n();"DROP_ANIMATING"===u.phase&&r(Bd({completed:u.completed})),"IDLE"!==n().phase&&Tc(!1),r(Id()),r({type:"BEFORE_INITIAL_CAPTURE",payload:{draggableId:a,movementMode:l}});var c={draggableId:a,scrollOptions:{shouldPublishImmediately:"SNAP"===l}},f=e.startPublishing(c),d=f.critical,p=f.dimensions,h=f.viewport;r({type:"INITIAL_PUBLISH",payload:{critical:d,dimensions:p,clientSelection:s,movementMode:l,viewport:h}})}else t(o)}}}}(n),qd,np,rp,op,function(e){return function(t){return function(n){return function(r){if(function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(r))return e.stop(),void n(r);if("INITIAL_PUBLISH"===r.type){n(r);var o=t.getState();return"DRAGGING"!==o.phase&&Tc(!1),void e.start(o)}n(r),e.scroll(t.getState())}}}}(s),Xd,function(e){var t=!1;return function(){return function(n){return function(r){if("INITIAL_PUBLISH"===r.type)return t=!0,e.tryRecordFocus(r.payload.critical.draggable.id),n(r),void e.tryRestoreFocusRecorded();if(n(r),t){if("FLUSH"===r.type)return t=!1,void e.tryRestoreFocusRecorded();if("DROP_COMPLETE"===r.type){t=!1;var o=r.payload.completed.result;o.combine&&e.tryShiftRecord(o.draggableId,o.combine.draggableId),e.tryRestoreFocusRecorded()}}}}}}(r),tp(i,a))))};var sp=function(e){var t=e.scrollHeight,n=e.scrollWidth,r=e.height,o=e.width,i=Uc({x:n,y:t},{x:o,y:r});return{x:Math.max(0,i.x),y:Math.max(0,i.y)}},lp=function(){var e=document.documentElement;return e||Tc(!1),e},up=function(){var e=lp();return sp({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},cp=function(e){var t=e.critical,n=e.scrollOptions,r=e.registry;hd();var o=function(){var e=$d(),t=up(),n=e.y,r=e.x,o=lp(),i=o.clientWidth,a=o.clientHeight;return{frame:gc({top:n,left:r,right:r+i,bottom:n+a}),scroll:{initial:e,current:e,max:t,diff:{value:Vc,displacement:Vc}}}}(),i=o.scroll.current,a=t.droppable,s=r.droppable.getAllByType(a.type).map((function(e){return e.callbacks.getDimensionAndWatchScroll(i,n)})),l=r.draggable.getAllByType(t.draggable.type).map((function(e){return e.getDimension(i)})),u={draggables:lf(l),droppables:sf(s)};return gd(),{dimensions:u,critical:t,viewport:o}};function fp(e,t,n){return n.descriptor.id!==t.id&&(n.descriptor.type===t.type&&"virtual"===e.droppable.getById(n.descriptor.droppableId).descriptor.mode)}var dp=function(e,t){var n=null,r=function(e){var t=e.registry,n=e.callbacks,r={additions:{},removals:{},modified:{}},o=null,i=function(){o||(n.collectionStarting(),o=requestAnimationFrame((function(){o=null,hd();var e=r,i=e.additions,a=e.removals,s=e.modified,l=Object.keys(i).map((function(e){return t.draggable.getById(e).getDimension(Vc)})).sort((function(e,t){return e.descriptor.index-t.descriptor.index})),u=Object.keys(s).map((function(e){return{droppableId:e,scroll:t.droppable.getById(e).callbacks.getScrollWhileDragging()}})),c={additions:l,removals:Object.keys(a),modified:u};r={additions:{},removals:{},modified:{}},gd(),n.publish(c)})))};return{add:function(e){var t=e.descriptor.id;r.additions[t]=e,r.modified[e.descriptor.droppableId]=!0,r.removals[t]&&delete r.removals[t],i()},remove:function(e){var t=e.descriptor;r.removals[t.id]=!0,r.modified[t.droppableId]=!0,r.additions[t.id]&&delete r.additions[t.id],i()},stop:function(){o&&(cancelAnimationFrame(o),o=null,r={additions:{},removals:{},modified:{}})}}}({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),o=function(t){n||Tc(!1);var o=n.critical.draggable;"ADDITION"===t.type&&fp(e,o,t.value)&&r.add(t.value),"REMOVAL"===t.type&&fp(e,o,t.value)&&r.remove(t.value)},i={updateDroppableIsEnabled:function(r,o){e.droppable.exists(r)||Tc(!1),n&&t.updateDroppableIsEnabled({id:r,isEnabled:o})},updateDroppableIsCombineEnabled:function(r,o){n&&(e.droppable.exists(r)||Tc(!1),t.updateDroppableIsCombineEnabled({id:r,isCombineEnabled:o}))},scrollDroppable:function(t,r){n&&e.droppable.getById(t).callbacks.scroll(r)},updateDroppableScroll:function(r,o){n&&(e.droppable.exists(r)||Tc(!1),t.updateDroppableScroll({id:r,newScroll:o}))},startPublishing:function(t){n&&Tc(!1);var r=e.draggable.getById(t.draggableId),i=e.droppable.getById(r.descriptor.droppableId),a={draggable:r.descriptor,droppable:i.descriptor},s=e.subscribe(o);return n={critical:a,unsubscribe:s},cp({critical:a,registry:e,scrollOptions:t.scrollOptions})},stopPublishing:function(){if(n){r.stop();var t=n.critical.droppable;e.droppable.getAllByType(t.type).forEach((function(e){return e.callbacks.dragStopped()})),n.unsubscribe(),n=null}}};return i},pp=function(e,t){return"IDLE"===e.phase||"DROP_ANIMATING"===e.phase&&(e.completed.result.draggableId!==t&&"DROP"===e.completed.result.reason)},hp=function(e){window.scrollBy(e.x,e.y)},gp=Or((function(e){return uf(e).filter((function(e){return!!e.isEnabled&&!!e.frame}))})),vp=function(e){var t=e.center,n=e.destination,r=e.droppables;if(n){var o=r[n];return o.frame?o:null}var i=function(e,t){var n=of(gp(t),(function(t){return t.frame||Tc(!1),nd(t.frame.pageMarginBox)(e)}));return n}(t,r);return i},mp=.25,yp=.05,bp=28,wp=function(e){return Math.pow(e,2)},_p={stopDampeningAt:1200,accelerateAt:360},xp=function(e){var t=e.startOfRange,n=e.endOfRange,r=e.current,o=n-t;return 0===o?0:(r-t)/o},Sp=_p.accelerateAt,Op=_p.stopDampeningAt,Cp=function(e){var t=e.distanceToEdge,n=e.thresholds,r=e.dragStartTime,o=e.shouldUseTimeDampening,i=function(e,t){if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return bp;if(e===t.startScrollingFrom)return 1;var n=xp({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),r=bp*wp(1-n);return Math.ceil(r)}(t,n);return 0===i?0:o?Math.max(function(e,t){var n=t,r=Op,o=Date.now()-n;if(o>=Op)return e;if(o<Sp)return 1;var i=xp({startOfRange:Sp,endOfRange:r,current:o}),a=e*wp(i);return Math.ceil(a)}(i,r),1):i},Ep=function(e){var t=e.container,n=e.distanceToEdges,r=e.dragStartTime,o=e.axis,i=e.shouldUseTimeDampening,a=function(e,t){return{startScrollingFrom:e[t.size]*mp,maxScrollValueAt:e[t.size]*yp}}(t,o);return n[o.end]<n[o.start]?Cp({distanceToEdge:n[o.end],thresholds:a,dragStartTime:r,shouldUseTimeDampening:i}):-1*Cp({distanceToEdge:n[o.start],thresholds:a,dragStartTime:r,shouldUseTimeDampening:i})},Ap=Xc((function(e){return 0===e?0:e})),kp=function(e){var t=e.dragStartTime,n=e.container,r=e.subject,o=e.center,i=e.shouldUseTimeDampening,a={top:o.y-n.top,right:n.right-o.x,bottom:n.bottom-o.y,left:o.x-n.left},s=Ep({container:n,distanceToEdges:a,dragStartTime:t,axis:xf,shouldUseTimeDampening:i}),l=Ep({container:n,distanceToEdges:a,dragStartTime:t,axis:Sf,shouldUseTimeDampening:i}),u=Ap({x:l,y:s});if(Gc(u,Vc))return null;var c=function(e){var t=e.container,n=e.subject,r=e.proposedScroll,o=n.height>t.height,i=n.width>t.width;return i||o?i&&o?null:{x:i?0:r.x,y:o?0:r.y}:r}({container:n,subject:r,proposedScroll:u});return c?Gc(c,Vc)?null:c:null},Mp=Xc((function(e){return 0===e?0:e>0?1:-1})),Pp=function(){var e=function(e,t){return e<0?e:e>t?e-t:0};return function(t){var n=t.current,r=t.max,o=t.change,i=zc(n,o),a={x:e(i.x,r.x),y:e(i.y,r.y)};return Gc(a,Vc)?null:a}}(),Rp=function(e){var t=e.max,n=e.current,r=e.change,o={x:Math.max(n.x,t.x),y:Math.max(n.y,t.y)},i=Mp(r),a=Pp({max:o,current:n,change:i});return!a||(0!==i.x&&0===a.x||0!==i.y&&0===a.y)},Tp=function(e,t){return Rp({current:e.scroll.current,max:e.scroll.max,change:t})},Ip=function(e,t){var n=e.frame;return!!n&&Rp({current:n.scroll.current,max:n.scroll.max,change:t})},Bp=function(e){var t=e.state,n=e.dragStartTime,r=e.shouldUseTimeDampening,o=e.scrollWindow,i=e.scrollDroppable,a=t.current.page.borderBoxCenter,s=t.dimensions.draggables[t.critical.draggable.id].page.marginBox;if(t.isWindowScrollAllowed){var l=function(e){var t=e.viewport,n=e.subject,r=e.center,o=e.dragStartTime,i=e.shouldUseTimeDampening,a=kp({dragStartTime:o,container:t.frame,subject:n,center:r,shouldUseTimeDampening:i});return a&&Tp(t,a)?a:null}({dragStartTime:n,viewport:t.viewport,subject:s,center:a,shouldUseTimeDampening:r});if(l)return void o(l)}var u=vp({center:a,destination:Qf(t.impact),droppables:t.dimensions.droppables});if(u){var c=function(e){var t=e.droppable,n=e.subject,r=e.center,o=e.dragStartTime,i=e.shouldUseTimeDampening,a=t.frame;if(!a)return null;var s=kp({dragStartTime:o,container:a.pageMarginBox,subject:n,center:r,shouldUseTimeDampening:i});return s&&Ip(t,s)?s:null}({dragStartTime:n,droppable:u,subject:s,center:a,shouldUseTimeDampening:r});c&&i(u.descriptor.id,c)}},jp=function(e){var t=e.move,n=e.scrollDroppable,r=e.scrollWindow,o=function(e,t){if(!Ip(e,t))return t;var r=function(e,t){var n=e.frame;return n&&Ip(e,t)?Pp({current:n.scroll.current,max:n.scroll.max,change:t}):null}(e,t);if(!r)return n(e.descriptor.id,t),null;var o=Uc(t,r);return n(e.descriptor.id,o),Uc(t,o)},i=function(e,t,n){if(!e)return n;if(!Tp(t,n))return n;var o=function(e,t){if(!Tp(e,t))return null;var n=e.scroll.max,r=e.scroll.current;return Pp({current:r,max:n,change:t})}(t,n);if(!o)return r(n),null;var i=Uc(n,o);return r(i),Uc(n,i)};return function(e){var n=e.scrollJumpRequest;if(n){var r=Qf(e.impact);r||Tc(!1);var a=o(e.dimensions.droppables[r],n);if(a){var s=e.viewport,l=i(e.isWindowScrollAllowed,s,a);l&&function(e,n){var r=zc(e.current.client.selection,n);t({client:r})}(e,l)}}}},Dp=function(e){var t=e.scrollDroppable,n=e.scrollWindow,r=e.move,o=function(e){var t=e.scrollWindow,n=e.scrollDroppable,r=Cc(t),o=Cc(n),i=null,a=function(e){i||Tc(!1);var t=i,n=t.shouldUseTimeDampening,a=t.dragStartTime;Bp({state:e,scrollWindow:r,scrollDroppable:o,dragStartTime:a,shouldUseTimeDampening:n})};return{start:function(e){hd(),i&&Tc(!1);var t=Date.now(),n=!1,r=function(){n=!0};Bp({state:e,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:r,scrollDroppable:r}),i={dragStartTime:t,shouldUseTimeDampening:n},gd(),n&&a(e)},stop:function(){i&&(r.cancel(),o.cancel(),i=null)},scroll:a}}({scrollWindow:n,scrollDroppable:t}),i=jp({move:r,scrollWindow:n,scrollDroppable:t});return{scroll:function(e){"DRAGGING"===e.phase&&("FLUID"!==e.movementMode?e.scrollJumpRequest&&i(e):o.scroll(e))},start:o.start,stop:o.stop}},Lp="data-rbd",Zp=function(){var e=Lp+"-drag-handle";return{base:e,draggableId:e+"-draggable-id",contextId:e+"-context-id"}}(),Np=function(){var e=Lp+"-draggable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),Fp=function(){var e=Lp+"-droppable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),Hp={contextId:Lp+"-scroll-container-context-id"},Vp=function(e,t){return e.map((function(e){var n=e.styles[t];return n?e.selector+" { "+n+" }":""})).join(" ")},zp=function(e){var t,n=(t=e,function(e){return"["+e+'="'+t+'"]'}),r=function(){var e="\n cursor: -webkit-grab;\n cursor: grab;\n ";return{selector:n(Zp.contextId),styles:{always:"\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ",resting:e,dragging:"pointer-events: none;",dropAnimating:e}}}(),o=[function(){var e="\n transition: "+Hd.outOfTheWay+";\n ";return{selector:n(Np.contextId),styles:{dragging:e,dropAnimating:e,userCancel:e}}}(),r,{selector:n(Fp.contextId),styles:{always:"overflow-anchor: none;"}},{selector:"body",styles:{dragging:"\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n "}}];return{always:Vp(o,"always"),resting:Vp(o,"resting"),dragging:Vp(o,"dragging"),dropAnimating:Vp(o,"dropAnimating"),userCancel:Vp(o,"userCancel")}},Up="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?i.useLayoutEffect:i.useEffect,Gp=function(){var e=document.querySelector("head");return e||Tc(!1),e},Wp=function(e){var t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};var qp=function(e){return e&&e.ownerDocument?e.ownerDocument.defaultView:window};function $p(e){return e instanceof qp(e).HTMLElement}function Yp(e,t){var n="["+Zp.contextId+'="'+e+'"]',r=af(document.querySelectorAll(n));if(!r.length)return null;var o=of(r,(function(e){return e.getAttribute(Zp.draggableId)===t}));return o&&$p(o)?o:null}function Xp(){var e={draggables:{},droppables:{}},t=[];function n(e){t.length&&t.forEach((function(t){return t(e)}))}function r(t){return e.draggables[t]||null}var o={register:function(t){e.draggables[t.descriptor.id]=t,n({type:"ADDITION",value:t})},update:function(t,n){var r=e.draggables[n.descriptor.id];r&&r.uniqueId===t.uniqueId&&(delete e.draggables[n.descriptor.id],e.draggables[t.descriptor.id]=t)},unregister:function(t){var o=t.descriptor.id,i=r(o);i&&t.uniqueId===i.uniqueId&&(delete e.draggables[o],n({type:"REMOVAL",value:t}))},getById:function(e){var t=r(e);return t||Tc(!1),t},findById:r,exists:function(e){return Boolean(r(e))},getAllByType:function(t){return nf(e.draggables).filter((function(e){return e.descriptor.type===t}))}};function i(t){return e.droppables[t]||null}return{draggable:o,droppable:{register:function(t){e.droppables[t.descriptor.id]=t},unregister:function(t){var n=i(t.descriptor.id);n&&t.uniqueId===n.uniqueId&&delete e.droppables[t.descriptor.id]},getById:function(e){var t=i(e);return t||Tc(!1),t},findById:i,exists:function(e){return Boolean(i(e))},getAllByType:function(t){return nf(e.droppables).filter((function(e){return e.descriptor.type===t}))}},subscribe:function(e){return t.push(e),function(){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},clean:function(){e.draggables={},e.droppables={},t.length=0}}}var Kp=i.createContext(null),Jp=function(){var e=document.body;return e||Tc(!1),e},Qp={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},eh=function(e){return"rbd-announcement-"+e};var th=0,nh={separator:"::"};function rh(e,t){return void 0===t&&(t=nh),pc((function(){return""+e+t.separator+th++}),[t.separator,e])}var oh=i.createContext(null);function ih(e){0}function ah(e,t){ih()}function sh(e){var t=(0,i.useRef)(e);return(0,i.useEffect)((function(){t.current=e})),t}var lh,uh=27,ch=32,fh=37,dh=38,ph=39,hh=40,gh=((lh={})[13]=!0,lh[9]=!0,lh),vh=function(e){gh[e.keyCode]&&e.preventDefault()},mh=function(){var e="visibilitychange";return"undefined"===typeof document?e:of([e,"ms"+e,"webkit"+e,"moz"+e,"o"+e],(function(e){return"on"+e in document}))||e}(),yh=0,bh=5;var wh,_h={type:"IDLE"};function xh(e){var t=e.cancel,n=e.completed,r=e.getPhase,o=e.setPhase;return[{eventName:"mousemove",fn:function(e){var t=e.button,n=e.clientX,i=e.clientY;if(t===yh){var a={x:n,y:i},s=r();if("DRAGGING"===s.type)return e.preventDefault(),void s.actions.move(a);"PENDING"!==s.type&&Tc(!1);var l=s.point;if(u=l,c=a,Math.abs(c.x-u.x)>=bh||Math.abs(c.y-u.y)>=bh){var u,c;e.preventDefault();var f=s.actions.fluidLift(a);o({type:"DRAGGING",actions:f})}}}},{eventName:"mouseup",fn:function(e){var o=r();"DRAGGING"===o.type?(e.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"mousedown",fn:function(e){"DRAGGING"===r().type&&e.preventDefault(),t()}},{eventName:"keydown",fn:function(e){if("PENDING"!==r().type)return e.keyCode===uh?(e.preventDefault(),void t()):void vh(e);t()}},{eventName:"resize",fn:t},{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(){"PENDING"===r().type&&t()}},{eventName:"webkitmouseforcedown",fn:function(e){var n=r();"IDLE"===n.type&&Tc(!1),n.actions.shouldRespectForcePress()?t():e.preventDefault()}},{eventName:mh,fn:t}]}function Sh(){}var Oh=((wh={})[34]=!0,wh[33]=!0,wh[36]=!0,wh[35]=!0,wh);function Ch(e,t){function n(){t(),e.cancel()}return[{eventName:"keydown",fn:function(r){return r.keyCode===uh?(r.preventDefault(),void n()):r.keyCode===ch?(r.preventDefault(),t(),void e.drop()):r.keyCode===hh?(r.preventDefault(),void e.moveDown()):r.keyCode===dh?(r.preventDefault(),void e.moveUp()):r.keyCode===ph?(r.preventDefault(),void e.moveRight()):r.keyCode===fh?(r.preventDefault(),void e.moveLeft()):void(Oh[r.keyCode]?r.preventDefault():vh(r))}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:mh,fn:n}]}var Eh={type:"IDLE"},Ah=.15;var kh={input:!0,button:!0,textarea:!0,select:!0,option:!0,optgroup:!0,video:!0,audio:!0};function Mh(e,t){if(null==t)return!1;if(Boolean(kh[t.tagName.toLowerCase()]))return!0;var n=t.getAttribute("contenteditable");return"true"===n||""===n||t!==e&&Mh(e,t.parentElement)}function Ph(e,t){var n=t.target;return!!$p(n)&&Mh(e,n)}var Rh=function(e){return gc(e.getBoundingClientRect()).center};var Th=function(){var e="matches";return"undefined"===typeof document?e:of([e,"msMatchesSelector","webkitMatchesSelector"],(function(e){return e in Element.prototype}))||e}();function Ih(e,t){return null==e?null:e[Th](t)?e:Ih(e.parentElement,t)}function Bh(e,t){return e.closest?e.closest(t):Ih(e,t)}function jh(e,t){var n,r=t.target;if(!((n=r)instanceof qp(n).Element))return null;var o=function(e){return"["+Zp.contextId+'="'+e+'"]'}(e),i=Bh(r,o);return i&&$p(i)?i:null}function Dh(e){e.preventDefault()}function Lh(e){var t=e.expected,n=e.phase,r=e.isLockActive;e.shouldWarn;return!!r()&&t===n}function Zh(e){var t=e.lockAPI,n=e.store,r=e.registry,o=e.draggableId;if(t.isClaimed())return!1;var i=r.draggable.findById(o);return!!i&&(!!i.options.isEnabled&&!!pp(n.getState(),o))}function Nh(e){var t=e.lockAPI,n=e.contextId,r=e.store,o=e.registry,i=e.draggableId,a=e.forceSensorStop,s=e.sourceEvent;if(!Zh({lockAPI:t,store:r,registry:o,draggableId:i}))return null;var u=o.draggable.getById(i),c=function(e,t){var n="["+Np.contextId+'="'+e+'"]',r=of(af(document.querySelectorAll(n)),(function(e){return e.getAttribute(Np.id)===t}));return r&&$p(r)?r:null}(n,u.descriptor.id);if(!c)return null;if(s&&!u.options.canDragInteractiveElements&&Ph(c,s))return null;var f=t.claim(a||Ac),d="PRE_DRAG";function p(){return u.options.shouldRespectForcePress}function h(){return t.isActive(f)}var g=function(e,t){Lh({expected:e,phase:d,isLockActive:h,shouldWarn:!0})&&r.dispatch(t())}.bind(null,"DRAGGING");function v(e){function n(){t.release(),d="COMPLETED"}function o(t,o){if(void 0===o&&(o={shouldBlockNextClick:!1}),e.cleanup(),o.shouldBlockNextClick){var i=kc(window,[{eventName:"click",fn:Dh,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(i)}n(),r.dispatch(jd({reason:t}))}return"PRE_DRAG"!==d&&(n(),"PRE_DRAG"!==d&&Tc(!1)),r.dispatch(xd(e.liftActionArgs)),d="DRAGGING",(0,l.Z)({isActive:function(){return Lh({expected:"DRAGGING",phase:d,isLockActive:h,shouldWarn:!1})},shouldRespectForcePress:p,drop:function(e){return o("DROP",e)},cancel:function(e){return o("CANCEL",e)}},e.actions)}var m={isActive:function(){return Lh({expected:"PRE_DRAG",phase:d,isLockActive:h,shouldWarn:!1})},shouldRespectForcePress:p,fluidLift:function(e){var t=Cc((function(e){g((function(){return kd({client:e})}))})),n=v({liftActionArgs:{id:i,clientSelection:e,movementMode:"FLUID"},cleanup:function(){return t.cancel()},actions:{move:t}});return(0,l.Z)({},n,{move:t})},snapLift:function(){var e={moveUp:function(){return g(Md)},moveRight:function(){return g(Rd)},moveDown:function(){return g(Pd)},moveLeft:function(){return g(Td)}};return v({liftActionArgs:{id:i,clientSelection:Rh(c),movementMode:"SNAP"},cleanup:Ac,actions:e})},abort:function(){Lh({expected:"PRE_DRAG",phase:d,isLockActive:h,shouldWarn:!0})&&t.release()}};return m}var Fh=[function(e){var t=(0,i.useRef)(_h),n=(0,i.useRef)(Ac),r=pc((function(){return{eventName:"mousedown",fn:function(t){if(!t.defaultPrevented&&t.button===yh&&!(t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)){var r=e.findClosestDraggableId(t);if(r){var o=e.tryGetLock(r,s,{sourceEvent:t});if(o){t.preventDefault();var i={x:t.clientX,y:t.clientY};n.current(),c(o,i)}}}}}}),[e]),o=pc((function(){return{eventName:"webkitmouseforcewillbegin",fn:function(t){if(!t.defaultPrevented){var n=e.findClosestDraggableId(t);if(n){var r=e.findOptionsForDraggable(n);r&&(r.shouldRespectForcePress||e.canGetLock(n)&&t.preventDefault())}}}}}),[e]),a=hc((function(){n.current=kc(window,[o,r],{passive:!1,capture:!0})}),[o,r]),s=hc((function(){"IDLE"!==t.current.type&&(t.current=_h,n.current(),a())}),[a]),l=hc((function(){var e=t.current;s(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[s]),u=hc((function(){var e=xh({cancel:l,completed:s,getPhase:function(){return t.current},setPhase:function(e){t.current=e}});n.current=kc(window,e,{capture:!0,passive:!1})}),[l,s]),c=hc((function(e,n){"IDLE"!==t.current.type&&Tc(!1),t.current={type:"PENDING",point:n,actions:e},u()}),[u]);Up((function(){return a(),function(){n.current()}}),[a])},function(e){var t=(0,i.useRef)(Sh),n=pc((function(){return{eventName:"keydown",fn:function(n){if(!n.defaultPrevented&&n.keyCode===ch){var o=e.findClosestDraggableId(n);if(o){var i=e.tryGetLock(o,l,{sourceEvent:n});if(i){n.preventDefault();var a=!0,s=i.snapLift();t.current(),t.current=kc(window,Ch(s,l),{capture:!0,passive:!1})}}}function l(){a||Tc(!1),a=!1,t.current(),r()}}}}),[e]),r=hc((function(){t.current=kc(window,[n],{passive:!1,capture:!0})}),[n]);Up((function(){return r(),function(){t.current()}}),[r])},function(e){var t=(0,i.useRef)(Eh),n=(0,i.useRef)(Ac),r=hc((function(){return t.current}),[]),o=hc((function(e){t.current=e}),[]),a=pc((function(){return{eventName:"touchstart",fn:function(t){if(!t.defaultPrevented){var r=e.findClosestDraggableId(t);if(r){var o=e.tryGetLock(r,l,{sourceEvent:t});if(o){var i=t.touches[0],a={x:i.clientX,y:i.clientY};n.current(),d(o,a)}}}}}}),[e]),s=hc((function(){n.current=kc(window,[a],{capture:!0,passive:!1})}),[a]),l=hc((function(){var e=t.current;"IDLE"!==e.type&&("PENDING"===e.type&&clearTimeout(e.longPressTimerId),o(Eh),n.current(),s())}),[s,o]),u=hc((function(){var e=t.current;l(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[l]),c=hc((function(){var e={capture:!0,passive:!1},t={cancel:u,completed:l,getPhase:r},o=kc(window,function(e){var t=e.cancel,n=e.completed,r=e.getPhase;return[{eventName:"touchmove",options:{capture:!1},fn:function(e){var n=r();if("DRAGGING"===n.type){n.hasMoved=!0;var o=e.touches[0],i={x:o.clientX,y:o.clientY};e.preventDefault(),n.actions.move(i)}else t()}},{eventName:"touchend",fn:function(e){var o=r();"DRAGGING"===o.type?(e.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"touchcancel",fn:function(e){"DRAGGING"===r().type?(e.preventDefault(),t()):t()}},{eventName:"touchforcechange",fn:function(e){var n=r();"IDLE"===n.type&&Tc(!1);var o=e.touches[0];if(o&&o.force>=Ah){var i=n.actions.shouldRespectForcePress();if("PENDING"!==n.type)return i?n.hasMoved?void e.preventDefault():void t():void e.preventDefault();i&&t()}}},{eventName:mh,fn:t}]}(t),e),i=kc(window,function(e){var t=e.cancel,n=e.getPhase;return[{eventName:"orientationchange",fn:t},{eventName:"resize",fn:t},{eventName:"contextmenu",fn:function(e){e.preventDefault()}},{eventName:"keydown",fn:function(e){"DRAGGING"===n().type?(e.keyCode===uh&&e.preventDefault(),t()):t()}},{eventName:mh,fn:t}]}(t),e);n.current=function(){o(),i()}}),[u,r,l]),f=hc((function(){var e=r();"PENDING"!==e.type&&Tc(!1);var t=e.actions.fluidLift(e.point);o({type:"DRAGGING",actions:t,hasMoved:!1})}),[r,o]),d=hc((function(e,t){"IDLE"!==r().type&&Tc(!1);var n=setTimeout(f,120);o({type:"PENDING",point:t,actions:e,longPressTimerId:n}),c()}),[c,r,o,f]);Up((function(){return s(),function(){n.current();var e=r();"PENDING"===e.type&&(clearTimeout(e.longPressTimerId),o(Eh))}}),[r,s,o]),Up((function(){return kc(window,[{eventName:"touchmove",fn:function(){},options:{capture:!1,passive:!1}}])}),[])}];function Hh(e){var t=e.contextId,n=e.store,r=e.registry,o=e.customSensors,a=e.enableDefaultSensors,s=[].concat(a?Fh:[],o||[]),l=(0,i.useState)((function(){return function(){var e=null;function t(){e||Tc(!1),e=null}return{isClaimed:function(){return Boolean(e)},isActive:function(t){return t===e},claim:function(t){e&&Tc(!1);var n={abandon:t};return e=n,n},release:t,tryAbandon:function(){e&&(e.abandon(),t())}}}()}))[0],u=hc((function(e,t){e.isDragging&&!t.isDragging&&l.tryAbandon()}),[l]);Up((function(){var e=n.getState();return n.subscribe((function(){var t=n.getState();u(e,t),e=t}))}),[l,n,u]),Up((function(){return l.tryAbandon}),[l.tryAbandon]);var c=hc((function(e){return Zh({lockAPI:l,registry:r,store:n,draggableId:e})}),[l,r,n]),f=hc((function(e,o,i){return Nh({lockAPI:l,registry:r,contextId:t,store:n,draggableId:e,forceSensorStop:o,sourceEvent:i&&i.sourceEvent?i.sourceEvent:null})}),[t,l,r,n]),d=hc((function(e){return function(e,t){var n=jh(e,t);return n?n.getAttribute(Zp.draggableId):null}(t,e)}),[t]),p=hc((function(e){var t=r.draggable.findById(e);return t?t.options:null}),[r.draggable]),h=hc((function(){l.isClaimed()&&(l.tryAbandon(),"IDLE"!==n.getState().phase&&n.dispatch(Id()))}),[l,n]),g=hc(l.isClaimed,[l]),v=pc((function(){return{canGetLock:c,tryGetLock:f,findClosestDraggableId:d,findOptionsForDraggable:p,tryReleaseLock:h,isLockClaimed:g}}),[c,f,d,p,h,g]);ih();for(var m=0;m<s.length;m++)s[m](v)}var Vh=function(e){return{onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}};function zh(e){return e.current||Tc(!1),e.current}function Uh(e){var t=e.contextId,n=e.setCallbacks,r=e.sensors,o=e.nonce,a=e.dragHandleUsageInstructions,s=(0,i.useRef)(null);ah();var u=sh(e),c=hc((function(){return Vh(u.current)}),[u]),f=function(e){var t=pc((function(){return eh(e)}),[e]),n=(0,i.useRef)(null);return(0,i.useEffect)((function(){var e=document.createElement("div");return n.current=e,e.id=t,e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),(0,l.Z)(e.style,Qp),Jp().appendChild(e),function(){setTimeout((function(){var t=Jp();t.contains(e)&&t.removeChild(e),e===n.current&&(n.current=null)}))}}),[t]),hc((function(e){var t=n.current;t&&(t.textContent=e)}),[])}(t),d=function(e){var t=e.contextId,n=e.text,r=rh("hidden-text",{separator:"-"}),o=pc((function(){return function(e){return"rbd-hidden-text-"+e.contextId+"-"+e.uniqueId}({contextId:t,uniqueId:r})}),[r,t]);return(0,i.useEffect)((function(){var e=document.createElement("div");return e.id=o,e.textContent=n,e.style.display="none",Jp().appendChild(e),function(){var t=Jp();t.contains(e)&&t.removeChild(e)}}),[o,n]),o}({contextId:t,text:a}),p=function(e,t){var n=pc((function(){return zp(e)}),[e]),r=(0,i.useRef)(null),o=(0,i.useRef)(null),a=hc(Or((function(e){var t=o.current;t||Tc(!1),t.textContent=e})),[]),s=hc((function(e){var t=r.current;t||Tc(!1),t.textContent=e}),[]);Up((function(){(r.current||o.current)&&Tc(!1);var i=Wp(t),l=Wp(t);return r.current=i,o.current=l,i.setAttribute(Lp+"-always",e),l.setAttribute(Lp+"-dynamic",e),Gp().appendChild(i),Gp().appendChild(l),s(n.always),a(n.resting),function(){var e=function(e){var t=e.current;t||Tc(!1),Gp().removeChild(t),e.current=null};e(r),e(o)}}),[t,s,a,n.always,n.resting,e]);var l=hc((function(){return a(n.dragging)}),[a,n.dragging]),u=hc((function(e){a("DROP"!==e?n.userCancel:n.dropAnimating)}),[a,n.dropAnimating,n.userCancel]),c=hc((function(){o.current&&a(n.resting)}),[a,n.resting]);return pc((function(){return{dragging:l,dropping:u,resting:c}}),[l,u,c])}(t,o),h=hc((function(e){zh(s).dispatch(e)}),[]),g=pc((function(){return Cu({publishWhileDragging:Sd,updateDroppableScroll:Cd,updateDroppableIsEnabled:Ed,updateDroppableIsCombineEnabled:Ad,collectionStarting:Od},h)}),[h]),v=function(){var e=pc(Xp,[]);return(0,i.useEffect)((function(){return function(){requestAnimationFrame(e.clean)}}),[e]),e}(),m=pc((function(){return dp(v,g)}),[v,g]),y=pc((function(){return Dp((0,l.Z)({scrollWindow:hp,scrollDroppable:m.scrollDroppable},Cu({move:kd},h)))}),[m.scrollDroppable,h]),b=function(e){var t=(0,i.useRef)({}),n=(0,i.useRef)(null),r=(0,i.useRef)(null),o=(0,i.useRef)(!1),a=hc((function(e,n){var r={id:e,focus:n};return t.current[e]=r,function(){var n=t.current;n[e]!==r&&delete n[e]}}),[]),s=hc((function(t){var n=Yp(e,t);n&&n!==document.activeElement&&n.focus()}),[e]),l=hc((function(e,t){n.current===e&&(n.current=t)}),[]),u=hc((function(){r.current||o.current&&(r.current=requestAnimationFrame((function(){r.current=null;var e=n.current;e&&s(e)})))}),[s]),c=hc((function(e){n.current=null;var t=document.activeElement;t&&t.getAttribute(Zp.draggableId)===e&&(n.current=e)}),[]);return Up((function(){return o.current=!0,function(){o.current=!1;var e=r.current;e&&cancelAnimationFrame(e)}}),[]),pc((function(){return{register:a,tryRecordFocus:c,tryRestoreFocusRecorded:u,tryShiftRecord:l}}),[a,c,u,l])}(t),w=pc((function(){return ap({announce:f,autoScroller:y,dimensionMarshal:m,focusMarshal:b,getResponders:c,styleMarshal:p})}),[f,y,m,b,c,p]);s.current=w;var _=hc((function(){var e=zh(s);"IDLE"!==e.getState().phase&&e.dispatch(Id())}),[]),x=hc((function(){var e=zh(s).getState();return e.isDragging||"DROP_ANIMATING"===e.phase}),[]);n(pc((function(){return{isDragging:x,tryAbort:_}}),[x,_]));var S=hc((function(e){return pp(zh(s).getState(),e)}),[]),O=hc((function(){return td(zh(s).getState())}),[]),C=pc((function(){return{marshal:m,focus:b,contextId:t,canLift:S,isMovementAllowed:O,dragHandleUsageInstructionsId:d,registry:v}}),[t,m,d,b,S,O,v]);return Hh({contextId:t,store:w,registry:v,customSensors:r,enableDefaultSensors:!1!==e.enableDefaultSensors}),(0,i.useEffect)((function(){return _}),[_]),i.createElement(oh.Provider,{value:C},i.createElement(Iu,{context:Kp,store:w},e.children))}var Gh=0;function Wh(e){var t=pc((function(){return""+Gh++}),[]),n=e.dragHandleUsageInstructions||Zc;return i.createElement(Ic,null,(function(r){return i.createElement(Uh,{nonce:e.nonce,contextId:t,setCallbacks:r,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd},e.children)}))}var qh=function(e){return function(t){return e===t}},$h=qh("scroll"),Yh=qh("auto"),Xh=(qh("visible"),function(e,t){return t(e.overflowX)||t(e.overflowY)}),Kh=function(e){var t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return Xh(n,$h)||Xh(n,Yh)},Jh=function e(t){return null==t||t===document.body||t===document.documentElement?null:Kh(t)?t:e(t.parentElement)},Qh=function(e){return{x:e.scrollLeft,y:e.scrollTop}},eg=function e(t){return!!t&&("fixed"===window.getComputedStyle(t).position||e(t.parentElement))},tg=function(e){return{closestScrollable:Jh(e),isFixedOnPage:eg(e)}},ng=function(e){var t=e.ref,n=e.descriptor,r=e.env,o=e.windowScroll,i=e.direction,a=e.isDropDisabled,s=e.isCombineEnabled,l=e.shouldClipSubject,u=r.closestScrollable,c=function(e,t){var n=Oc(e);if(!t)return n;if(e!==t)return n;var r=n.paddingBox.top-t.scrollTop,o=n.paddingBox.left-t.scrollLeft,i=r+t.scrollHeight,a=o+t.scrollWidth,s=vc({top:r,right:a,bottom:i,left:o},n.border);return bc({borderBox:s,margin:n.margin,border:n.border,padding:n.padding})}(t,u),f=xc(c,o),d=function(){if(!u)return null;var e=Oc(u),t={scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth};return{client:e,page:xc(e,o),scroll:Qh(u),scrollSize:t,shouldClipSubject:l}}(),p=function(e){var t=e.descriptor,n=e.isEnabled,r=e.isCombineEnabled,o=e.isFixedOnPage,i=e.direction,a=e.client,s=e.page,l=e.closest,u=function(){if(!l)return null;var e=l.scrollSize,t=l.client,n=sp({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,height:t.paddingBox.height,width:t.paddingBox.width});return{pageMarginBox:l.page.marginBox,frameClient:t,scrollSize:e,shouldClipSubject:l.shouldClipSubject,scroll:{initial:l.scroll,current:l.scroll,max:n,diff:{value:Vc,displacement:Vc}}}}(),c="vertical"===i?xf:Sf;return{descriptor:t,isCombineEnabled:r,isFixedOnPage:o,axis:c,isEnabled:n,client:a,page:s,frame:u,subject:ef({page:s,withPlaceholder:null,axis:c,frame:u})}}({descriptor:n,isEnabled:!a,isCombineEnabled:s,isFixedOnPage:r.isFixedOnPage,direction:i,client:c,page:f,closest:d});return p},rg={passive:!1},og={passive:!0},ig=function(e){return e.shouldPublishImmediately?rg:og};function ag(e){var t=(0,i.useContext)(e);return t||Tc(!1),t}var sg=function(e){return e&&e.env.closestScrollable||null};function lg(){}var ug={width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},cg=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate,o=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate;return t||"close"===r?ug:{height:n.client.borderBox.height,width:n.client.borderBox.width,margin:n.client.margin}}({isAnimatingOpenOnMount:t,placeholder:n,animate:r});return{display:n.display,boxSizing:"border-box",width:o.width,height:o.height,marginTop:o.margin.top,marginRight:o.margin.right,marginBottom:o.margin.bottom,marginLeft:o.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:"none"!==r?Hd.placeholder:null}};var fg=i.memo((function(e){var t=(0,i.useRef)(null),n=hc((function(){t.current&&(clearTimeout(t.current),t.current=null)}),[]),r=e.animate,o=e.onTransitionEnd,a=e.onClose,s=e.contextId,l=(0,i.useState)("open"===e.animate),u=l[0],c=l[1];(0,i.useEffect)((function(){return u?"open"!==r?(n(),c(!1),lg):t.current?lg:(t.current=setTimeout((function(){t.current=null,c(!1)})),n):lg}),[r,u,n]);var f=hc((function(e){"height"===e.propertyName&&(o(),"close"===r&&a())}),[r,a,o]),d=cg({isAnimatingOpenOnMount:u,animate:e.animate,placeholder:e.placeholder});return i.createElement(e.placeholder.tagName,{style:d,"data-rbd-placeholder-context-id":s,onTransitionEnd:f,ref:e.innerRef})})),dg=i.createContext(null);var pg=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).state={isVisible:Boolean(t.props.on),data:t.props.on,animate:t.props.shouldAnimate&&t.props.on?"open":"none"},t.onClose=function(){"close"===t.state.animate&&t.setState({isVisible:!1})},t}return f(t,e),t.getDerivedStateFromProps=function(e,t){return e.shouldAnimate?e.on?{isVisible:!0,data:e.on,animate:"open"}:t.isVisible?{isVisible:!0,data:t.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:Boolean(e.on),data:e.on,animate:"none"}},t.prototype.render=function(){if(!this.state.isVisible)return null;var e={onClose:this.onClose,data:this.state.data,animate:this.state.animate};return this.props.children(e)},t}(i.PureComponent),hg={dragging:5e3,dropAnimating:4500},gg=function(e,t){return t?Hd.drop(t.duration):e?Hd.snap:Hd.fluid},vg=function(e,t){return e?t?Zd.drop:Zd.combining:null},mg=function(e){return null!=e.forceShouldAnimate?e.forceShouldAnimate:"SNAP"===e.mode};function yg(e){return"DRAGGING"===e.type?function(e){var t=e.dimension.client,n=e.offset,r=e.combineWith,o=e.dropping,i=Boolean(r),a=mg(e),s=Boolean(o),l=s?zd.drop(n,i):zd.moveTo(n);return{position:"fixed",top:t.marginBox.top,left:t.marginBox.left,boxSizing:"border-box",width:t.borderBox.width,height:t.borderBox.height,transition:gg(a,o),transform:l,opacity:vg(i,s),zIndex:s?hg.dropAnimating:hg.dragging,pointerEvents:"none"}}(e):(t=e,{transform:zd.moveTo(t.offset),transition:t.shouldAnimateDisplacement?null:"none"});var t}function bg(e){var t=rh("draggable"),n=e.descriptor,r=e.registry,o=e.getDraggableRef,a=e.canDragInteractiveElements,s=e.shouldRespectForcePress,l=e.isEnabled,u=pc((function(){return{canDragInteractiveElements:a,shouldRespectForcePress:s,isEnabled:l}}),[a,l,s]),c=hc((function(e){var t=o();return t||Tc(!1),function(e,t,n){void 0===n&&(n=Vc);var r=window.getComputedStyle(t),o=t.getBoundingClientRect(),i=Sc(o,r),a=xc(i,n);return{descriptor:e,placeholder:{client:i,tagName:t.tagName.toLowerCase(),display:r.display},displaceBy:{x:i.marginBox.width,y:i.marginBox.height},client:i,page:a}}(n,t,e)}),[n,o]),f=pc((function(){return{uniqueId:t,descriptor:n,options:u,getDimension:c}}),[n,c,u,t]),d=(0,i.useRef)(f),p=(0,i.useRef)(!0);Up((function(){return r.draggable.register(d.current),function(){return r.draggable.unregister(d.current)}}),[r.draggable]),Up((function(){if(p.current)p.current=!1;else{var e=d.current;d.current=f,r.draggable.update(f,e)}}),[f,r.draggable])}function wg(e,t,n){ah()}function _g(e){e.preventDefault()}var xg=function(e,t){return e===t},Sg=function(e){var t=e.combine,n=e.destination;return n?n.droppableId:t?t.droppableId:null};function Og(e){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}var Cg={mapped:{type:"SECONDARY",offset:Vc,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:Og(null)}};var Eg=cc((function(){var e=function(){var e=Or((function(e,t){return{x:e,y:t}})),t=Or((function(e,t,n,r,o){return{isDragging:!0,isClone:t,isDropAnimating:Boolean(o),dropAnimation:o,mode:e,draggingOver:n,combineWith:r,combineTargetFor:null}})),n=Or((function(e,n,r,o,i,a,s){return{mapped:{type:"DRAGGING",dropping:null,draggingOver:i,combineWith:a,mode:n,offset:e,dimension:r,forceShouldAnimate:s,snapshot:t(n,o,i,a,null)}}}));return function(r,o){if(r.isDragging){if(r.critical.draggable.id!==o.draggableId)return null;var i=r.current.client.offset,a=r.dimensions.draggables[o.draggableId],s=Qf(r.impact),l=(c=r.impact).at&&"COMBINE"===c.at.type?c.at.combine.draggableId:null,u=r.forceShouldAnimate;return n(e(i.x,i.y),r.movementMode,a,o.isClone,s,l,u)}var c;if("DROP_ANIMATING"===r.phase){var f=r.completed;if(f.result.draggableId!==o.draggableId)return null;var d=o.isClone,p=r.dimensions.draggables[o.draggableId],h=f.result,g=h.mode,v=Sg(h),m=function(e){return e.combine?e.combine.draggableId:null}(h),y={duration:r.dropDuration,curve:Ld,moveTo:r.newHomeClientOffset,opacity:m?Zd.drop:null,scale:m?Nd.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:p,dropping:y,draggingOver:v,combineWith:m,mode:g,forceShouldAnimate:null,snapshot:t(g,d,v,m,y)}}}return null}}(),t=function(){var e=Or((function(e,t){return{x:e,y:t}})),t=Or(Og),n=Or((function(e,n,r){return void 0===n&&(n=null),{mapped:{type:"SECONDARY",offset:e,combineTargetFor:n,shouldAnimateDisplacement:r,snapshot:t(n)}}})),r=function(e){return e?n(Vc,e,!0):null},o=function(t,o,i,a){var s=i.displaced.visible[t],l=Boolean(a.inVirtualList&&a.effected[t]),u=pf(i),c=u&&u.draggableId===t?o:null;if(!s){if(!l)return r(c);if(i.displaced.invisible[t])return null;var f=Wc(a.displacedBy.point),d=e(f.x,f.y);return n(d,c,!0)}if(l)return r(c);var p=i.displacedBy.point,h=e(p.x,p.y);return n(h,c,s.shouldAnimate)};return function(e,t){if(e.isDragging)return e.critical.draggable.id===t.draggableId?null:o(t.draggableId,e.critical.draggable.id,e.impact,e.afterCritical);if("DROP_ANIMATING"===e.phase){var n=e.completed;return n.result.draggableId===t.draggableId?null:o(t.draggableId,n.result.draggableId,n.impact,n.afterCritical)}return null}}();return function(n,r){return e(n,r)||t(n,r)||Cg}}),{dropAnimationFinished:Dd},null,{context:Kp,pure:!0,areStatePropsEqual:xg})((function(e){var t=(0,i.useRef)(null),n=hc((function(e){t.current=e}),[]),r=hc((function(){return t.current}),[]),o=ag(oh),a=o.contextId,s=o.dragHandleUsageInstructionsId,l=o.registry,u=ag(dg),c=u.type,f=u.droppableId,d=pc((function(){return{id:e.draggableId,index:e.index,type:c,droppableId:f}}),[e.draggableId,e.index,c,f]),p=e.children,h=e.draggableId,g=e.isEnabled,v=e.shouldRespectForcePress,m=e.canDragInteractiveElements,y=e.isClone,b=e.mapped,w=e.dropAnimationFinished;wg(),ih(),y||bg(pc((function(){return{descriptor:d,registry:l,getDraggableRef:r,canDragInteractiveElements:m,shouldRespectForcePress:v,isEnabled:g}}),[d,l,r,m,v,g]));var _=pc((function(){return g?{tabIndex:0,role:"button","aria-describedby":s,"data-rbd-drag-handle-draggable-id":h,"data-rbd-drag-handle-context-id":a,draggable:!1,onDragStart:_g}:null}),[a,s,h,g]),x=hc((function(e){"DRAGGING"===b.type&&b.dropping&&"transform"===e.propertyName&&w()}),[w,b]),S=pc((function(){var e=yg(b),t="DRAGGING"===b.type&&b.dropping?x:null;return{innerRef:n,draggableProps:{"data-rbd-draggable-context-id":a,"data-rbd-draggable-id":h,style:e,onTransitionEnd:t},dragHandleProps:_}}),[a,_,h,b,x,n]),O=pc((function(){return{draggableId:d.id,type:d.type,source:{index:d.index,droppableId:d.droppableId}}}),[d.droppableId,d.id,d.index,d.type]);return p(S,b.snapshot,O)}));function Ag(e){return ag(dg).isUsingCloneFor!==e.draggableId||e.isClone?i.createElement(Eg,e):null}function kg(e){var t="boolean"!==typeof e.isDragDisabled||!e.isDragDisabled,n=Boolean(e.disableInteractiveElementBlocking),r=Boolean(e.shouldRespectForcePress);return i.createElement(Ag,(0,l.Z)({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:r}))}var Mg=function(e,t){return e===t.droppable.type},Pg=function(e,t){return t.draggables[e.draggable.id]};var Rg={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:function(){return document.body||Tc(!1),document.body}},Tg=cc((function(){var e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t=(0,l.Z)({},e,{shouldAnimatePlaceholder:!1}),n=Or((function(e){return{draggableId:e.id,type:e.type,source:{index:e.index,droppableId:e.droppableId}}})),r=Or((function(r,o,i,a,s,l){var u=s.descriptor.id;if(s.descriptor.droppableId===r){var c=l?{render:l,dragging:n(s.descriptor)}:null,f={isDraggingOver:i,draggingOverWith:i?u:null,draggingFromThisWith:u,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!1,snapshot:f,useClone:c}}if(!o)return t;if(!a)return e;var d={isDraggingOver:i,draggingOverWith:u,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!0,snapshot:d,useClone:null}}));return function(n,o){var i=o.droppableId,a=o.type,s=!o.isDropDisabled,l=o.renderClone;if(n.isDragging){var u=n.critical;if(!Mg(a,u))return t;var c=Pg(u,n.dimensions),f=Qf(n.impact)===i;return r(i,s,f,f,c,l)}if("DROP_ANIMATING"===n.phase){var d=n.completed;if(!Mg(a,d.critical))return t;var p=Pg(d.critical,n.dimensions);return r(i,s,Sg(d.result)===i,Qf(d.impact)===i,p,l)}if("IDLE"===n.phase&&n.completed&&!n.shouldFlush){var h=n.completed;if(!Mg(a,h.critical))return t;var g=Qf(h.impact)===i,v=Boolean(h.impact.at&&"COMBINE"===h.impact.at.type),m=h.critical.droppable.id===i;return g?v?e:t:m?e:t}return t}}),{updateViewportMaxScroll:function(e){return{type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}}},null,{context:Kp,pure:!0,areStatePropsEqual:xg})((function(e){var t=(0,i.useContext)(oh);t||Tc(!1);var n=t.contextId,r=t.isMovementAllowed,o=(0,i.useRef)(null),a=(0,i.useRef)(null),s=e.children,l=e.droppableId,u=e.type,c=e.mode,f=e.direction,d=e.ignoreContainerClipping,p=e.isDropDisabled,h=e.isCombineEnabled,g=e.snapshot,v=e.useClone,m=e.updateViewportMaxScroll,y=e.getContainerForClone,b=hc((function(){return o.current}),[]),w=hc((function(e){o.current=e}),[]),_=(hc((function(){return a.current}),[]),hc((function(e){a.current=e}),[]));ah();var x=hc((function(){r()&&m({maxScroll:up()})}),[r,m]);!function(e){var t=(0,i.useRef)(null),n=ag(oh),r=rh("droppable"),o=n.registry,a=n.marshal,s=sh(e),l=pc((function(){return{id:e.droppableId,type:e.type,mode:e.mode}}),[e.droppableId,e.mode,e.type]),u=(0,i.useRef)(l),c=pc((function(){return Or((function(e,n){t.current||Tc(!1);var r={x:e,y:n};a.updateDroppableScroll(l.id,r)}))}),[l.id,a]),f=hc((function(){var e=t.current;return e&&e.env.closestScrollable?Qh(e.env.closestScrollable):Vc}),[]),d=hc((function(){var e=f();c(e.x,e.y)}),[f,c]),p=pc((function(){return Cc(d)}),[d]),h=hc((function(){var e=t.current,n=sg(e);e&&n||Tc(!1),e.scrollOptions.shouldPublishImmediately?d():p()}),[p,d]),g=hc((function(e,r){t.current&&Tc(!1);var o=s.current,i=o.getDroppableRef();i||Tc(!1);var a=tg(i),u={ref:i,descriptor:l,env:a,scrollOptions:r};t.current=u;var c=ng({ref:i,descriptor:l,env:a,windowScroll:e,direction:o.direction,isDropDisabled:o.isDropDisabled,isCombineEnabled:o.isCombineEnabled,shouldClipSubject:!o.ignoreContainerClipping}),f=a.closestScrollable;return f&&(f.setAttribute(Hp.contextId,n.contextId),f.addEventListener("scroll",h,ig(u.scrollOptions))),c}),[n.contextId,l,h,s]),v=hc((function(){var e=t.current,n=sg(e);return e&&n||Tc(!1),Qh(n)}),[]),m=hc((function(){var e=t.current;e||Tc(!1);var n=sg(e);t.current=null,n&&(p.cancel(),n.removeAttribute(Hp.contextId),n.removeEventListener("scroll",h,ig(e.scrollOptions)))}),[h,p]),y=hc((function(e){var n=t.current;n||Tc(!1);var r=sg(n);r||Tc(!1),r.scrollTop+=e.y,r.scrollLeft+=e.x}),[]),b=pc((function(){return{getDimensionAndWatchScroll:g,getScrollWhileDragging:v,dragStopped:m,scroll:y}}),[m,g,v,y]),w=pc((function(){return{uniqueId:r,descriptor:l,callbacks:b}}),[b,l,r]);Up((function(){return u.current=w.descriptor,o.droppable.register(w),function(){t.current&&m(),o.droppable.unregister(w)}}),[b,l,m,w,a,o.droppable]),Up((function(){t.current&&a.updateDroppableIsEnabled(u.current.id,!e.isDropDisabled)}),[e.isDropDisabled,a]),Up((function(){t.current&&a.updateDroppableIsCombineEnabled(u.current.id,e.isCombineEnabled)}),[e.isCombineEnabled,a])}({droppableId:l,type:u,mode:c,direction:f,isDropDisabled:p,isCombineEnabled:h,ignoreContainerClipping:d,getDroppableRef:b});var S=i.createElement(pg,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},(function(e){var t=e.onClose,r=e.data,o=e.animate;return i.createElement(fg,{placeholder:r,onClose:t,innerRef:_,animate:o,contextId:n,onTransitionEnd:x})})),O=pc((function(){return{innerRef:w,placeholder:S,droppableProps:{"data-rbd-droppable-id":l,"data-rbd-droppable-context-id":n}}}),[n,l,S,w]),C=v?v.dragging.draggableId:null,E=pc((function(){return{droppableId:l,type:u,isUsingCloneFor:C}}),[l,C,u]);return i.createElement(dg.Provider,{value:E},s(O,g),function(){if(!v)return null;var e=v.dragging,t=v.render,n=i.createElement(Ag,{draggableId:e.draggableId,index:e.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(function(n,r){return t(n,r,e)}));return mt.createPortal(n,y())}())}));Tg.defaultProps=Rg;var Ig,Bg,jg=n(27856),Dg=n(84436),Lg=function(){return Lg=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Lg.apply(this,arguments)},Zg={width:-1,tabRight:-1},Ng=function(e,t,n,r,o){var a=(0,i.useRef)(Zg);return(0,i.useCallback)((function(){if(t.current&&n.current.length){var o=document.body.clientWidth,i=t.current.getBoundingClientRect().left,s=e.current.getBoundingClientRect(),l=s.right,u=s.left;a.current.expandedStaticWidth||(a.current.expandedStaticWidth=i-u);var c=n.current[n.current.length-1].getBoundingClientRect(),f=c.right,d=c.width;if(function(e,t){return e.width===Zg.width||e.width===t.width&&e.tabRight!==t.tabRight||e.width!==t.width}(a.current,{width:o,tabRight:f})){var p=o-l;if(!(f<o-p&&u+a.current.expandedStaticWidth+(f-i)+p>o))return a.current=Lg(Lg({},a.current),{width:o,tabRight:f,containerRight:l}),f>=l&&!a.current.collapse?(a.current.collapse=!0,r(!0)):f+d<l&&(a.current.collapse||"undefined"===typeof a.current.collapse)?(a.current.collapse=!1,r(!1)):void 0}}}),o)},Fg=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Hg=(0,s.default)(Se.default).attrs({width:"100%",height:"100%",flex:!0,basis:"0%",position:"relative",overflow:{vertical:"hidden",horizontal:"auto"}})(Ig||(Ig=Fg(["\n -ms-overflow-style: none;\n overflow: -moz-scrollbars-none;\n\n &::-webkit-scrollbar {\n height: 0px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ",";\n }\n"],["\n -ms-overflow-style: none;\n overflow: -moz-scrollbars-none;\n\n &::-webkit-scrollbar {\n height: 0px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ",";\n }\n"])),(0,ee.Lq)("selected")),Vg=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},zg=(0,s.default)(Se.default).attrs({padding:[2]})(Bg||(Bg=Vg(["\n cursor: pointer;\n"],["\n cursor: pointer;\n"]))),Ug=function(e){var t=e.onClick,n=e.name;return i.createElement(zg,{onClick:t},i.createElement(iu.J,{name:n,color:"text",width:8,height:8}))},Gg=function(){return Gg=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Gg.apply(this,arguments)},Wg=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},qg=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.onDragEnd,o=e.onTabClose,a=e.onResize,s=e.collapsed,l=(0,i.useRef)(),u=(0,i.useRef)([]);!function(e){var t=(0,i.useCallback)((function(t){var n=e.current;n.scrollLeft=n.scrollLeft+.1*t.deltaY}));(0,i.useEffect)((function(){if(e.current){var n=e.current;return n.addEventListener("wheel",t),function(){return n.remove("wheel",t)}}}),[])}(l);var c=Ng(t,l,u,a,[n]),f=(0,Dg.default)(l,u,n,s),d=f[0],p=f[1],h=f[2];(0,i.useEffect)((function(){if(l.current){var e=l.current,t=(0,jg.D)(300,(function(){c(),h()}));return t(),e.addEventListener("scroll",h),window.addEventListener("resize",t),function(){e.removeEventListener("scroll",h),window.removeEventListener("resize",t)}}}),[n]);var g=(0,i.useCallback)((function(e){if(e){var t=u.current;n.length>=t.length&&(u.current=Wg(Wg([],t,!0),[e],!1)),n.length<t.length&&(u.current=t.filter((function(t){return t.getAttribute("data-rbd-draggable-id")===e.getAttribute("data-rbd-draggable-id")})))}}),[n]),v=(0,i.useMemo)((function(){return i.Children.map(n,(function(e,t){var n="tab-".concat(t);return i.createElement(kg,{key:n,draggableId:n,index:t},(function(n){var r=n.innerRef,a=n.draggableProps,s=n.dragHandleProps;return i.cloneElement(e,Gg(Gg(Gg({},a),{dragHandleProps:s,draggableRef:r,tabRef:g,tabIndex:t,onClose:o}),e.props))}))}))}),[n,o]),m=(0,i.useCallback)((function(e){if(r)return r(e)}),[r]);return i.createElement(Wh,{onDragEnd:m},i.createElement(Se.default,{flex:"grow",basis:"0%",height:"100%",width:"100%",alignItems:"center",overflow:"hidden"},d&&i.createElement(Ug,{onClick:function(e){e.preventDefault();var t=l.current;t.scrollTo({left:t.scrollLeft-100,behavior:"smooth"})},name:"navLeft"}),i.createElement(Tg,{droppableId:"tabList",direction:"horizontal"},(function(e){var t=e.innerRef,n=e.placeholder,r=e.droppableProps;return i.createElement(Hg,Gg({ref:function(e){l.current=e,t(e)}},r,{flex:"grow",basis:"0%",position:"relative"}),v,n)})),p&&i.createElement(Ug,{onClick:function(e){e.preventDefault();var t=l.current;t.scrollTo({left:t.scrollLeft+100,behavior:"smooth"})},name:"navRight"})))}));qg.displayName="DraggableTabs";var $g,Yg,Xg,Kg,Jg,Qg,ev,tv,nv,rv,ov=qg,iv=n(68434),av=new Map,sv={},lv={},uv=new Map,cv=function(e){var t=e.root,n=e.rootMargin,r=e.threshold;return"".concat(function(e){if(av.has(e))return av.get(e);var t=Ze();return av.set(e,t),t}(t),"|").concat(n,"|").concat(r)},fv=function(e){e.forEach((function(e){var t=e.target,n=e.isIntersecting,r=uv.get(t);null===r||void 0===r||r(n)}))},dv=function(e){var t=e.root,n=e.rootMargin,r=e.threshold,o=e.onVisibility,a=(0,i.useRef)(),s=(0,i.useRef)(),l=(0,i.useState)(!1),u=l[0],c=l[1],f=(0,i.useCallback)((function(e){var i;if(a.current=e,null===(i=s.current)||void 0===i||i.call(s),s.current=null,e){var l={root:t,rootMargin:n,threshold:r};s.current=function(e,t,n){var r=cv(n);r in sv||(sv[r]=new IntersectionObserver(fv,n),lv[r]=0);var o=sv[r];return o.observe(t),uv.set(t,e),lv[r]=lv[r]+1,function(){uv.delete(t),o.unobserve(t),lv[r]=lv[r]-1,lv[r]>0||(o.disconnect(),uv.delete(e),delete sv[r],delete lv[r])}}((function(e){o&&o(e),c(e)}),e,l)}}),[t,n,r,o]);return(0,i.useEffect)((function(){return function(){var e;null===(e=s.current)||void 0===e||e.call(s),s.current=null}}),[]),[f,a,u]},pv=n(13692),hv=function(){return hv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},hv.apply(this,arguments)},gv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},vv=(0,i.forwardRef)((function(e,t){var n,r=e.height,o=void 0===r?"100%":r,a=e.width,s=void 0===a?"100%":a,l=e.fallback,u=void 0===l?null:l,c=e.root,f=e.rootMargin,d=void 0===f?"0px":f,p=e.threshold,h=void 0===p?0:p,g=e.onVisibility,v=e.children,m=gv(e,["height","width","fallback","root","rootMargin","threshold","onVisibility","children"]),y=dv({root:c,rootMargin:d,threshold:h,onVisibility:g}),b=y[0],w=y[1],_=y[2],x=(0,iv.Z)(_),S=(0,i.useRef)(o);return _!==x&&!_&&w.current&&(S.current="".concat(w.current.clientHeight,"px")),i.createElement(Se.default,hv({ref:function(e){b(e),(0,pv.Z)(t,e)},width:s},{height:_?o:{min:S.current}},m),"function"===typeof(n=_?v:u)?n():n)})),mv=vv,yv={background:{neutral:"nodeBadgeBackground",success:["green","green100"],clear:["green","green100"],warning:["yellow","yellow80"],error:["red","red100"]},hollow:{neutral:"generic",success:"successSemi",warning:"warningSemi",error:"errorSemi"},border:{neutral:"neutralPillBorder",success:["green","green100"],clear:["green","green100"],warning:["yellow","yellow80"],error:["red","error100"]},color:{neutral:"neutralPillColor",success:["green","green100"],clear:["green","green100"],warning:["yellow","warning80"],error:["red","red100"]}},bv={alert:"alertIcon",disabledClear:"idleClear",disabledError:"idleError",disabledWarning:"idleWarning",clear:"success",error:"error",warning:"warning"},wv=function(e,t){return yv[e][t]},_v=function(){return _v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},_v.apply(this,arguments)},xv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Sv=function(e){var t=e.icon,n=e.color,r=e.hollow,o=e.flavour,a=e.size,s=xv(e,["icon","color","hollow","flavour","size"]);return t?"string"!==typeof t?t:i.createElement(_e.JO,_v({color:n||(r?wv("color",o):"bright"),"data-testid":"pill-icon",height:a||"14px",width:a||"14px",name:t},s)):null},Ov=function(e,t){return e||function(e){return bv[e]}(t)},Cv=function(e){var t=e.theme,n=e.background,r=e.flavour,o=void 0===r?"neutral":r,i=e.hollow;if(n){var a=(0,ee.Lq)(n)({theme:t});return"background-color: ".concat(a,";")}var s=i?"hollow":"background",l=(0,ee.Lq)(wv(s,o))({theme:t});return"background-color: ".concat(l,";")},Ev={default:"18px",large:"22px"},Av=function(e,t,n){return e||(n?"8px":Ev[t]||Ev.default)},kv={default:[1,2],large:[1,3]},Mv=function(e,t,n){return e||(n?[0]:kv[t]||kv.default)},Pv=function(e,t){return e||t&&"8px"},Rv=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},Tv=function(){return Tv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Tv.apply(this,arguments)},Iv=(0,s.default)(Se.default).attrs((function(e){var t=e.background,n=(e.height,e.onClick),r=e.round,o=void 0===r?999:r,i=e.size;return Tv(Tv({background:t},n&&{cursor:"pointer"}),{position:"relative",round:o,size:i,border:{side:"all",color:"border"}})}))($g||($g=Rv(["\n * {\n cursor: ",";\n }\n"],["\n * {\n cursor: ",";\n }\n"])),(function(e){return e.onClick?"pointer":"inherit"})),Bv=(0,s.default)(Se.default).attrs((function(e){var t=e.round,n=void 0===t?999:t,r=e.hollow,o=e.flavour,i=e.borderColor,a=e.onClick,s=e.padding,l=e.size,u=e.tiny,c=e.width,f=e.height,d=e.position,p=e.zIndex,h=e.justifyContent,g=void 0===h?"center":h,v=e.alignItems,m=void 0===v?"center":v;return Tv(Tv({padding:Mv(s,l,u),round:n,border:{side:"all",color:i||wv(r?"border":"background",o),size:"1px"}},a&&{cursor:"pointer"}),{height:Av(f,l,u),width:Pv(c,u),justifyContent:g,alignItems:m,position:d,zIndex:p})}))(Yg||(Yg=Rv(["\n ",";\n"],["\n ",";\n"])),Cv),jv=function(){return jv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},jv.apply(this,arguments)},Dv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Lv={default:He.TextMicro,large:He.Text,normal:He.Text,small:He.TextSmall},Zv=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.background,o=e.color,a=e["data-testid"],s=void 0===a?"pill":a,l=e.flavour,u=e.hollow,c=e.icon,f=e.iconSize,d=e.normal,p=e.reverse,h=e.size,g=e.textSize,v=e.tiny,m=Dv(e,["children","background","color","data-testid","flavour","hollow","icon","iconSize","normal","reverse","size","textSize","tiny"]),y={color:o,flavour:l,hollow:u,icon:c,size:f};if(v)return i.createElement(Bv,jv({background:r,"data-testid":"".concat(s,"-tiny"),flavour:l,hollow:u,ref:t,tiny:!0},m));var b=g?Lv[g]:Lv[h]||Lv.default;return i.createElement(Bv,jv({background:r,"data-testid":s,flavour:l,gap:1,hollow:u,ref:t,size:h},m),!p&&i.createElement(Sv,jv({"data-testid":"".concat(s,"-icon-left")},y)),n&&i.createElement(b,{color:o||(u?wv("color",l):"bright"),"data-testid":"".concat(s,"-text"),strong:!d,whiteSpace:"nowrap"},n),p&&i.createElement(Sv,jv({"data-testid":"".concat(s,"-icon-right")},y)))})),Nv=Zv,Fv=function(){return Fv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Fv.apply(this,arguments)},Hv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Vv=(0,i.forwardRef)((function(e,t){var n=e.background,r=void 0===n?"nodeBadgeBackground":n,o=e.className,a=e.color,s=void 0===a?"text":a,l=e.containerWidth,u=void 0===l?"100%":l,c=e.height,f=void 0===c?2:c,d=e.value,p=e.width,h=Hv(e,["background","className","color","containerWidth","height","value","width"]);return d=Array.isArray(d)?d:[d||{width:p,color:s}],i.createElement(Se.default,Fv({background:r,border:{side:"all",color:r},className:o,"data-testid":"progressBar",height:f,ref:t,round:"2px",width:u},h),d.map((function(e,t){var n=e.color,r=e.width;return"0%"===r?null:i.createElement(Te.Z,{background:n,border:{side:"all",color:n},"data-testid":"progressBar-progress".concat(r),height:"100%",key:"".concat(r,"-").concat(t),position:"relative",round:"2px",width:r})})))})),zv=Vv,Uv=function(){return Uv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Uv.apply(this,arguments)},Gv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Wv=(0,i.forwardRef)((function(e,t){var n=e.background,r=e.icon,o=e.text,a=Gv(e,["background","icon","text"]);return i.createElement(Nv,Uv({background:n,borderColor:n,"data-testid":"mastercard-pill",icon:r,ref:t},a),!r&&(o||"-"))})),qv=Wv,$v=function(){return $v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},$v.apply(this,arguments)},Yv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Xv=(0,i.forwardRef)((function(e,t){var n=e["data-testid"],r=void 0===n?"alert-mastercard":n,o=e.height,a=e.normal,s=e.onClick,l=e.labelProps,u=void 0===l?{}:l,c=e.pillLeft,f=void 0===c?{}:c,d=e.pillRight,p=void 0===d?{}:d,h=e.pillEnd,g=e.round,v=e.size,m=Yv(e,["data-testid","height","normal","onClick","labelProps","pillLeft","pillRight","pillEnd","round","size"]),y={height:o,round:g,size:v},b=$v($v({background:bv.alert,color:"text",icon:"alarm_bell",zIndex:4},u),y),w=$v($v({normal:a},y),m),_=Ov(f.background,f.flavour||"disabledError"),x=Ov(p.background,p.flavour||"disabledWarning"),S=h&&Ov(h.background,h.flavour||"disabledClear"),O=$v($v($v({background:_,position:"relative",margin:[0,0,0,-3],padding:[1,2,1,4],zIndex:3},w),f),{round:u.hidden?g:"0 12px 12px 0"}),C=$v($v($v({background:x,margin:[0,0,0,-3],padding:[1,2,1,4],zIndex:2},w),p),{round:"0 12px 12px 0"}),E=h&&$v($v({background:S,margin:[0,0,0,-3],padding:[1,2,1,4],zIndex:1,round:"0 12px 12px 0"},w),h);return i.createElement(Iv,$v({"data-testid":r,onClick:s,ref:t},y),!u.hidden&&i.createElement(qv,$v({"data-testid":"".concat(r,"-icon-pill")},b)),i.createElement(qv,$v({"data-testid":"".concat(r,"-left-pill")},O)),i.createElement(qv,$v({"data-testid":"".concat(r,"-right-pill")},C)),E&&i.createElement(qv,$v({"data-testid":"".concat(r,"-end-pill")},E)))})),Kv=Xv,Jv=function(){return Jv=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Jv.apply(this,arguments)},Qv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},em={default:"22px",large:"37px"},tm=(0,i.forwardRef)((function(e,t){var n=e.children,r=e["data-testid"],o=void 0===r?"mastercard":r,a=e.height,s=e.normal,l=e.onClick,u=e.pillLeft,c=void 0===u?{}:u,f=e.pillRight,d=void 0===f?{}:f,p=e.pillEnd,h=e.round,g=e.size,v=(e.zIndex,Qv(e,["children","data-testid","height","normal","onClick","pillLeft","pillRight","pillEnd","round","size","zIndex"])),m={height:a,round:h,size:g},y=Jv(Jv({normal:s},m),v),b=Ov(d.background,d.flavour||"disabledWarning"),w=p&&Ov(p.background,p.flavour||"disabledClear"),_=Jv(Jv(Jv({background:Ov(c.background,c.flavour||"disabledError"),padding:[0,3],position:"relative",width:{min:em[v.size]||em.default}},y),c),{round:"12px",zIndex:3}),x=Jv(Jv(Jv({background:b,margin:[0,0,0,-1.5],padding:[0,2],width:{min:em[v.size]||em.default}},y),d),{round:"0 12px 12px 0",zIndex:2}),S=p&&Jv(Jv(Jv({background:w,margin:[0,0,0,-1.5],padding:[0,2],width:{min:em[v.size]||em.default}},y),p),{round:"0 12px 12px 0",zIndex:1});return i.createElement(Iv,Jv({"data-testid":o,onClick:l,ref:t},m),n||i.createElement(i.Fragment,null,i.createElement(qv,Jv({"data-testid":"".concat(o,"-left-pill")},_)),i.createElement(qv,Jv({"data-testid":"".concat(o,"-right-pill")},x)),S&&i.createElement(qv,Jv({"data-testid":"".concat(o,"-end-pill")},S))))})),nm=tm,rm=function(){return rm=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},rm.apply(this,arguments)},om=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},im=function(e){var t=e.background,n=void 0===t?"mainBackground":t,r=e.children,o=e.testId,a=om(e,["background","children","testId"]);return i.createElement(Se.default,rm({background:n,column:!0,"data-testid":o,round:!0},a),r)},am=function(e){var t=e.children,n=e.testId,r=om(e,["children","testId"]);return i.createElement(Se.default,rm({background:"modalHeaderBackground","data-testid":n,padding:[2,4]},r),t)},sm=function(e){var t=e.children,n=e.testId,r=om(e,["children","testId"]);return i.createElement(Se.default,rm({"data-testid":n,padding:[2,4],column:!0},r),t)},lm=function(e){var t=e.children,n=e.hasBorder,r=void 0===n||n,o=e.parentPadding,a=e.testId,s=om(e,["children","hasBorder","parentPadding","testId"]);return i.createElement(Se.default,{column:!0,padding:o||[0,4],flex:1},i.createElement(Se.default,rm({"data-testid":a,flex:1,padding:[2,0],alignItems:"center",justifyContent:"end",border:r?{size:"1px",type:"solid",side:"top",color:"borderSecondary"}:{}},s),t))},um=function(e){var t=e.iconName,n=e.onClick,r=e.testId,o=om(e,["iconName","onClick","testId"]);return i.createElement(Te.Z,rm({"data-testid":r,sx:{marginLeft:"auto"},as:_e.JO,name:t,color:"text",onClick:n,cursor:"pointer"},o))},cm=function(e){var t=e.onClose,n=e.testId,r=om(e,["onClose","testId"]);return i.createElement(um,rm({iconName:"x",onClick:t,testId:n},r))},fm=function(e){var t=e.children,n=om(e,["children"]);return i.createElement(Xo.default,rm({},n),t)},dm=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},pm=(0,s.default)(lm).attrs({gap:6,hasBorder:!1,parentPadding:[0],padding:[0]})(Xg||(Xg=dm([""],[""]))),hm=(0,s.default)(cm).attrs({color:"text",height:"14px",width:"14px"})(Kg||(Kg=dm(["\n &:hover {\n fill: ",";\n }\n"],["\n &:hover {\n fill: ",";\n }\n"])),(0,ee.Lq)("selected")),gm=(0,s.default)(He.Text).attrs({as:im,background:"dropdown",gap:6,height:{max:"calc(100vh - 32px)",min:45},padding:[6],width:{base:128,max:140,min:70}})(Jg||(Jg=dm([""],[""]))),vm=(0,s.default)(sm).attrs({column:!1,padding:[0]})(Qg||(Qg=dm(["\n display: block;\n\n strong {\n font-weight: bold;\n }\n"],["\n display: block;\n\n strong {\n font-weight: bold;\n }\n"]))),mm=(0,s.default)(fm).attrs({backdropProps:{backdropBlur:8}})(ev||(ev=dm(["\n box-shadow: 0 11px 15px -7px rgb(0 0 0 / 20%), 0px 24px 38px 3px rgb(0 0 0 / 14%),\n 0px 9px 46px 8px rgb(0 0 0 / 12%);\n"],["\n box-shadow: 0 11px 15px -7px rgb(0 0 0 / 20%), 0px 24px 38px 3px rgb(0 0 0 / 14%),\n 0px 9px 46px 8px rgb(0 0 0 / 12%);\n"]))),ym=(0,s.default)(am).attrs({alignItems:"center",padding:[0],background:""})(tv||(tv=dm([""],[""]))),bm=(0,s.default)(He.H3).attrs({margin:[0]})(nv||(nv=dm([""],[""]))),wm=(0,s.default)(_e.JO).attrs({color:"main",height:"24px",width:"24px"})(rv||(rv=dm([""],[""]))),_m=function(){return _m=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},_m.apply(this,arguments)},xm=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Sm=function(e){var t=e.children,n=xm(e,["children"]);return"object"===typeof t?t:i.createElement(He.Text,_m({},n),t)},Om=function(e){var t=e.confirmLabel,n=void 0===t?"Yes, remove":t,r=e.confirmWidth,o=void 0===r?"128px":r,a=e["data-ga"],s=void 0===a?"confirmation-dialog":a,l=e["data-testid"],u=void 0===l?"confirmationDialog":l,c=e.declineLabel,f=void 0===c?"Cancel":c,d=e.declineWidth,p=void 0===d?"128px":d,h=e.handleConfirm,g=e.handleDecline,v=e.hideIcon,m=e.iconName,y=void 0===m?"warning_triangle_hollow":m,b=e.isConfirmDisabled,w=e.isConfirmLoading,_=e.isDeclineDisabled,x=e.isConfirmPositive,S=e.message,O=e.title;return i.createElement(mm,{onEsc:g},i.createElement(gm,{"data-testid":u},i.createElement(ym,{"data-testid":"".concat(u,"-headerContainer")},i.createElement(Se.default,{"data-testid":"".concat(u,"-header"),gap:4},!v&&i.createElement(wm,{"data-testid":"".concat(u,"-headerIcon"),name:y}),i.createElement(bm,{"data-testid":"".concat(u,"-headerText")},O)),g&&i.createElement(hm,{"data-testid":"".concat(u,"-headerClose"),onClose:g})),i.createElement(vm,{"data-testid":"".concat(u,"-body")},i.createElement(Sm,{"data-testid":"".concat(u,"-bodyMessage")},S)),i.createElement(pm,{"data-testid":"".concat(u,"-actions")},g&&i.createElement(Ee,{"data-ga":"".concat(s,"-::click-cancel::global-view"),"data-testid":"".concat(u,"-cancelAction"),flavour:"hollow",disabled:_,label:f,onClick:g,width:p}),i.createElement(Ee,{"data-ga":"".concat(s,"-::click-confirm::global-view"),"data-testid":"".concat(u,"-confirmAction"),danger:!x&&!0,disabled:b,label:n,onClick:h,width:o,isLoading:w}))))};function Cm(e,t){return"function"===typeof e?e(t):e}function Em(e,t){return n=>{t.setState((t=>({...t,[e]:Cm(n,t[e])})))}}function Am(e){return e instanceof Function}function km(e,t){const n=[],r=e=>{e.forEach((e=>{n.push(e);const o=t(e);null!=o&&o.length&&r(o)}))};return r(e),n}function Mm(e,t,n){let r,o=[];return()=>{let i;n.key&&n.debug&&(i=Date.now());const a=e(),s=a.length!==o.length||a.some(((e,t)=>o[t]!==e));if(!s)return r;let l;if(o=a,n.key&&n.debug&&(l=Date.now()),r=t(...a),null==n||null==n.onChange||n.onChange(r),n.key&&n.debug&&null!=n&&n.debug()){const e=Math.round(100*(Date.now()-i))/100,t=Math.round(100*(Date.now()-l))/100,r=t/16,o=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${o(t,5)} /${o(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,null==n?void 0:n.key)}return r}}function Pm(e,t,n){var r;let o={id:null!=(r=n.id)?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const e=[],t=n=>{n.subHeaders&&n.subHeaders.length&&n.subHeaders.map(t),e.push(n)};return t(o),e},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach((t=>{Object.assign(o,null==t.createHeader?void 0:t.createHeader(o,e))})),o}const Rm={createTable:e=>({getHeaderGroups:Mm((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((t,n,r,o)=>{var i,a;const s=null!=(i=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?i:[],l=null!=(a=null==o?void 0:o.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?a:[],u=n.filter((e=>!(null!=r&&r.includes(e.id))&&!(null!=o&&o.includes(e.id))));return Tm(t,[...s,...u,...l],e)}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterHeaderGroups:Mm((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((t,n,r,o)=>(n=n.filter((e=>!(null!=r&&r.includes(e.id))&&!(null!=o&&o.includes(e.id)))),Tm(t,n,e,"center"))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftHeaderGroups:Mm((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left]),((t,n,r)=>{var o;const i=null!=(o=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?o:[];return Tm(t,i,e,"left")}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightHeaderGroups:Mm((()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right]),((t,n,r)=>{var o;const i=null!=(o=null==r?void 0:r.map((e=>n.find((t=>t.id===e)))).filter(Boolean))?o:[];return Tm(t,i,e,"right")}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getFooterGroups:Mm((()=>[e.getHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftFooterGroups:Mm((()=>[e.getLeftHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterFooterGroups:Mm((()=>[e.getCenterHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightFooterGroups:Mm((()=>[e.getRightHeaderGroups()]),(e=>[...e].reverse()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getFlatHeaders:Mm((()=>[e.getHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftFlatHeaders:Mm((()=>[e.getLeftHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterFlatHeaders:Mm((()=>[e.getCenterHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightFlatHeaders:Mm((()=>[e.getRightHeaderGroups()]),(e=>e.map((e=>e.headers)).flat()),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getCenterLeafHeaders:Mm((()=>[e.getCenterFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeftLeafHeaders:Mm((()=>[e.getLeftFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getRightLeafHeaders:Mm((()=>[e.getRightFlatHeaders()]),(e=>e.filter((e=>{var t;return!(null!=(t=e.subHeaders)&&t.length)}))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}}),getLeafHeaders:Mm((()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()]),((e,t,n)=>{var r,o,i,a,s,l;return[...null!=(r=null==(o=e[0])?void 0:o.headers)?r:[],...null!=(i=null==(a=t[0])?void 0:a.headers)?i:[],...null!=(s=null==(l=n[0])?void 0:l.headers)?s:[]].map((e=>e.getLeafHeaders())).flat()}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugHeaders}})})};function Tm(e,t,n,r){var o,i;let a=0;const s=function(e,t){void 0===t&&(t=1),a=Math.max(a,t),e.filter((e=>e.getIsVisible())).forEach((e=>{var n;null!=(n=e.columns)&&n.length&&s(e.columns,t+1)}),0)};s(e);let l=[];const u=(e,t)=>{const o={depth:t,id:[r,`${t}`].filter(Boolean).join("_"),headers:[]},i=[];e.forEach((e=>{const a=[...i].reverse()[0];let s,l=!1;if(e.column.depth===o.depth&&e.column.parent?s=e.column.parent:(s=e.column,l=!0),a&&(null==a?void 0:a.column)===s)a.subHeaders.push(e);else{const o=Pm(n,s,{id:[r,t,s.id,null==e?void 0:e.id].filter(Boolean).join("_"),isPlaceholder:l,placeholderId:l?`${i.filter((e=>e.column===s)).length}`:void 0,depth:t,index:i.length});o.subHeaders.push(e),i.push(o)}o.headers.push(e),e.headerGroup=o})),l.push(o),t>0&&u(i,t-1)},c=t.map(((e,t)=>Pm(n,e,{depth:a,index:t})));u(c,a-1),l.reverse();const f=e=>{const t=e.filter((e=>e.column.getIsVisible()));return t.map((e=>{let t=0,n=0,r=[0];e.subHeaders&&e.subHeaders.length?(r=[],f(e.subHeaders).forEach((e=>{let{colSpan:n,rowSpan:o}=e;t+=n,r.push(o)}))):t=1;return n+=Math.min(...r),e.colSpan=t,e.rowSpan=n,{colSpan:t,rowSpan:n}}))};return f(null!=(o=null==(i=l[0])?void 0:i.headers)?o:[]),l}const Im={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Bm={getDefaultColumnDef:()=>Im,getInitialState:e=>({columnSizing:{},columnSizingInfo:{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]},...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:Em("columnSizing",e),onColumnSizingInfoChange:Em("columnSizingInfo",e)}),createColumn:(e,t)=>({getSize:()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max(null!=(n=e.columnDef.minSize)?n:Im.minSize,null!=(r=null!=i?i:e.columnDef.size)?r:Im.size),null!=(o=e.columnDef.maxSize)?o:Im.maxSize)},getStart:n=>{const r=n?"left"===n?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),o=r.findIndex((t=>t.id===e.id));if(o>0){const e=r[o-1];return e.getStart(n)+e.getSize()}return 0},resetSize:()=>{t.setColumnSizing((t=>{let{[e.id]:n,...r}=t;return r}))},getCanResize:()=>{var n,r;return(null==(n=e.columnDef.enableResizing)||n)&&(null==(r=t.options.enableColumnResizing)||r)},getIsResizing:()=>t.getState().columnSizingInfo.isResizingColumn===e.id}),createHeader:(e,t)=>({getSize:()=>{let t=0;const n=e=>{var r;e.subHeaders.length?e.subHeaders.forEach(n):t+=null!=(r=e.column.getSize())?r:0};return n(e),t},getStart:()=>{if(e.index>0){const t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},getResizeHandler:()=>{const n=t.getColumn(e.column.id),r=null==n?void 0:n.getCanResize();return o=>{if(!n||!r)return;if(null==o.persist||o.persist(),Dm(o)&&o.touches&&o.touches.length>1)return;const i=e.getSize(),a=e?e.getLeafHeaders().map((e=>[e.column.id,e.column.getSize()])):[[n.id,n.getSize()]],s=Dm(o)?Math.round(o.touches[0].clientX):o.clientX,l={},u=(e,n)=>{"number"===typeof n&&(t.setColumnSizingInfo((e=>{var t,r;const o=n-(null!=(t=null==e?void 0:e.startOffset)?t:0),i=Math.max(o/(null!=(r=null==e?void 0:e.startSize)?r:0),-.999999);return e.columnSizingStart.forEach((e=>{let[t,n]=e;l[t]=Math.round(100*Math.max(n+n*i,0))/100})),{...e,deltaOffset:o,deltaPercentage:i}})),"onChange"!==t.options.columnResizeMode&&"end"!==e||t.setColumnSizing((e=>({...e,...l}))))},c=e=>u("move",e),f=e=>{u("end",e),t.setColumnSizingInfo((e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]})))},d={moveHandler:e=>c(e.clientX),upHandler:e=>{document.removeEventListener("mousemove",d.moveHandler),document.removeEventListener("mouseup",d.upHandler),f(e.clientX)}},p={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),c(e.touches[0].clientX),!1),upHandler:e=>{var t;document.removeEventListener("touchmove",p.moveHandler),document.removeEventListener("touchend",p.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(null==(t=e.touches[0])?void 0:t.clientX)}},h=!!function(){if("boolean"===typeof jm)return jm;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch(t){e=!1}return jm=e,jm}()&&{passive:!1};Dm(o)?(document.addEventListener("touchmove",p.moveHandler,h),document.addEventListener("touchend",p.upHandler,h)):(document.addEventListener("mousemove",d.moveHandler,h),document.addEventListener("mouseup",d.upHandler,h)),t.setColumnSizingInfo((e=>({...e,startOffset:s,startSize:i,deltaOffset:0,deltaPercentage:0,columnSizingStart:a,isResizingColumn:n.id})))}}}),createTable:e=>({setColumnSizing:t=>null==e.options.onColumnSizingChange?void 0:e.options.onColumnSizingChange(t),setColumnSizingInfo:t=>null==e.options.onColumnSizingInfoChange?void 0:e.options.onColumnSizingInfoChange(t),resetColumnSizing:t=>{var n;e.setColumnSizing(t?{}:null!=(n=e.initialState.columnSizing)?n:{})},resetHeaderSizeInfo:t=>{var n;e.setColumnSizingInfo(t?{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}:null!=(n=e.initialState.columnSizingInfo)?n:{startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]})},getTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},getLeftTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getLeftHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},getCenterTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getCenterHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0},getRightTotalSize:()=>{var t,n;return null!=(t=null==(n=e.getRightHeaderGroups()[0])?void 0:n.headers.reduce(((e,t)=>e+t.getSize()),0))?t:0}})};let jm=null;function Dm(e){return"touchstart"===e.type}const Lm={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:Em("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;return{_autoResetExpanded:()=>{var r,o;if(t){if(null!=(r=null!=(o=e.options.autoResetAll)?o:e.options.autoResetExpanded)?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue((()=>{e.resetExpanded(),n=!1}))}}else e._queue((()=>{t=!0}))},setExpanded:t=>null==e.options.onExpandedChange?void 0:e.options.onExpandedChange(t),toggleAllRowsExpanded:t=>{(null!=t?t:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},resetExpanded:t=>{var n,r;e.setExpanded(t?{}:null!=(n=null==(r=e.initialState)?void 0:r.expanded)?n:{})},getCanSomeRowsExpand:()=>e.getPrePaginationRowModel().flatRows.some((e=>e.getCanExpand())),getToggleAllRowsExpandedHandler:()=>t=>{null==t.persist||t.persist(),e.toggleAllRowsExpanded()},getIsSomeRowsExpanded:()=>{const t=e.getState().expanded;return!0===t||Object.values(t).some(Boolean)},getIsAllRowsExpanded:()=>{const t=e.getState().expanded;return"boolean"===typeof t?!0===t:!!Object.keys(t).length&&!e.getRowModel().flatRows.some((e=>!e.getIsExpanded()))},getExpandedDepth:()=>{let t=0;return(!0===e.getState().expanded?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach((e=>{const n=e.split(".");t=Math.max(t,n.length)})),t},getPreExpandedRowModel:()=>e.getSortedRowModel(),getExpandedRowModel:()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())}},createRow:(e,t)=>({toggleExpanded:n=>{t.setExpanded((r=>{var o;const i=!0===r||!(null==r||!r[e.id]);let a={};if(!0===r?Object.keys(t.getRowModel().rowsById).forEach((e=>{a[e]=!0})):a=r,n=null!=(o=n)?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:t,...n}=a;return n}return r}))},getIsExpanded:()=>{var n;const r=t.getState().expanded;return!!(null!=(n=null==t.options.getIsRowExpanded?void 0:t.options.getIsRowExpanded(e))?n:!0===r||(null==r?void 0:r[e.id]))},getCanExpand:()=>{var n,r,o;return null!=(n=null==t.options.getRowCanExpand?void 0:t.options.getRowCanExpand(e))?n:(null==(r=t.options.enableExpanding)||r)&&!(null==(o=e.subRows)||!o.length)},getToggleExpandedHandler:()=>{const t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}})},Zm=(e,t,n)=>{var r,o,i;const a=n.toLowerCase();return Boolean(null==(r=e.getValue(t))||null==(o=r.toString())||null==(i=o.toLowerCase())?void 0:i.includes(a))};Zm.autoRemove=e=>$m(e);const Nm=(e,t,n)=>{var r,o;return Boolean(null==(r=e.getValue(t))||null==(o=r.toString())?void 0:o.includes(n))};Nm.autoRemove=e=>$m(e);const Fm=(e,t,n)=>{var r,o;return(null==(r=e.getValue(t))||null==(o=r.toString())?void 0:o.toLowerCase())===(null==n?void 0:n.toLowerCase())};Fm.autoRemove=e=>$m(e);const Hm=(e,t,n)=>{var r;return null==(r=e.getValue(t))?void 0:r.includes(n)};Hm.autoRemove=e=>$m(e)||!(null!=e&&e.length);const Vm=(e,t,n)=>!n.some((n=>{var r;return!(null!=(r=e.getValue(t))&&r.includes(n))}));Vm.autoRemove=e=>$m(e)||!(null!=e&&e.length);const zm=(e,t,n)=>n.some((n=>{var r;return null==(r=e.getValue(t))?void 0:r.includes(n)}));zm.autoRemove=e=>$m(e)||!(null!=e&&e.length);const Um=(e,t,n)=>e.getValue(t)===n;Um.autoRemove=e=>$m(e);const Gm=(e,t,n)=>e.getValue(t)==n;Gm.autoRemove=e=>$m(e);const Wm=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};Wm.resolveFilterValue=e=>{let[t,n]=e,r="number"!==typeof t?parseFloat(t):t,o="number"!==typeof n?parseFloat(n):n,i=null===t||Number.isNaN(r)?-1/0:r,a=null===n||Number.isNaN(o)?1/0:o;if(i>a){const e=i;i=a,a=e}return[i,a]},Wm.autoRemove=e=>$m(e)||$m(e[0])&&$m(e[1]);const qm={includesString:Zm,includesStringSensitive:Nm,equalsString:Fm,arrIncludes:Hm,arrIncludesAll:Vm,arrIncludesSome:zm,equals:Um,weakEquals:Gm,inNumberRange:Wm};function $m(e){return void 0===e||null===e||""===e}const Ym={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:Em("columnFilters",e),onGlobalFilterChange:Em("globalFilter",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n,r;const o=null==(n=e.getCoreRowModel().flatRows[0])||null==(r=n._getAllCellsByColumnId()[t.id])?void 0:r.getValue();return"string"===typeof o||"number"===typeof o}}),createColumn:(e,t)=>({getAutoFilterFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=null==n?void 0:n.getValue(e.id);return"string"===typeof r?qm.includesString:"number"===typeof r?qm.inNumberRange:"boolean"===typeof r||null!==r&&"object"===typeof r?qm.equals:Array.isArray(r)?qm.arrIncludes:qm.weakEquals},getFilterFn:()=>{var n,r;return Am(e.columnDef.filterFn)?e.columnDef.filterFn:"auto"===e.columnDef.filterFn?e.getAutoFilterFn():null!=(n=null==(r=t.options.filterFns)?void 0:r[e.columnDef.filterFn])?n:qm[e.columnDef.filterFn]},getCanFilter:()=>{var n,r,o;return(null==(n=e.columnDef.enableColumnFilter)||n)&&(null==(r=t.options.enableColumnFilters)||r)&&(null==(o=t.options.enableFilters)||o)&&!!e.accessorFn},getCanGlobalFilter:()=>{var n,r,o,i;return(null==(n=e.columnDef.enableGlobalFilter)||n)&&(null==(r=t.options.enableGlobalFilter)||r)&&(null==(o=t.options.enableFilters)||o)&&(null==(i=null==t.options.getColumnCanGlobalFilter?void 0:t.options.getColumnCanGlobalFilter(e))||i)&&!!e.accessorFn},getIsFiltered:()=>e.getFilterIndex()>-1,getFilterValue:()=>{var n,r;return null==(n=t.getState().columnFilters)||null==(r=n.find((t=>t.id===e.id)))?void 0:r.value},getFilterIndex:()=>{var n,r;return null!=(n=null==(r=t.getState().columnFilters)?void 0:r.findIndex((t=>t.id===e.id)))?n:-1},setFilterValue:n=>{t.setColumnFilters((t=>{const r=e.getFilterFn(),o=null==t?void 0:t.find((t=>t.id===e.id)),i=Cm(n,o?o.value:void 0);var a;if(Xm(r,i,e))return null!=(a=null==t?void 0:t.filter((t=>t.id!==e.id)))?a:[];const s={id:e.id,value:i};var l;return o?null!=(l=null==t?void 0:t.map((t=>t.id===e.id?s:t)))?l:[]:null!=t&&t.length?[...t,s]:[s]}))},_getFacetedRowModel:t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),getFacetedRowModel:()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),_getFacetedUniqueValues:t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),getFacetedUniqueValues:()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,_getFacetedMinMaxValues:t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),getFacetedMinMaxValues:()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}),createRow:(e,t)=>({columnFilters:{},columnFiltersMeta:{}}),createTable:e=>({getGlobalAutoFilterFn:()=>qm.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return Am(r)?r:"auto"===r?e.getGlobalAutoFilterFn():null!=(t=null==(n=e.options.filterFns)?void 0:n[r])?t:qm[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns();null==e.options.onColumnFiltersChange||e.options.onColumnFiltersChange((e=>{var r;return null==(r=Cm(t,e))?void 0:r.filter((e=>{const t=n.find((t=>t.id===e.id));if(t){if(Xm(t.getFilterFn(),e.value,t))return!1}return!0}))}))},setGlobalFilter:t=>{null==e.options.onGlobalFilterChange||e.options.onGlobalFilterChange(t)},resetGlobalFilter:t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)},resetColumnFilters:t=>{var n,r;e.setColumnFilters(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.columnFilters)?n:[])},getPreFilteredRowModel:()=>e.getCoreRowModel(),getFilteredRowModel:()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel()),_getGlobalFacetedRowModel:e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),getGlobalFacetedRowModel:()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),_getGlobalFacetedUniqueValues:e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),getGlobalFacetedUniqueValues:()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,_getGlobalFacetedMinMaxValues:e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),getGlobalFacetedMinMaxValues:()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}})};function Xm(e,t,n){return!(!e||!e.autoRemove)&&e.autoRemove(t,n)||"undefined"===typeof t||"string"===typeof t&&!t}const Km={sum:(e,t,n)=>n.reduce(((t,n)=>{const r=n.getValue(e);return t+("number"===typeof r?r:0)}),0),min:(e,t,n)=>{let r;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(r>n||void 0===r&&n>=n)&&(r=n)})),r},max:(e,t,n)=>{let r;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(r<n||void 0===r&&n>=n)&&(r=n)})),r},extent:(e,t,n)=>{let r,o;return n.forEach((t=>{const n=t.getValue(e);null!=n&&(void 0===r?n>=n&&(r=o=n):(r>n&&(r=n),o<n&&(o=n)))})),[r,o]},mean:(e,t)=>{let n=0,r=0;if(t.forEach((t=>{let o=t.getValue(e);null!=o&&(o=+o)>=o&&(++n,r+=o)})),n)return r/n},median:(e,t)=>{if(!t.length)return;const n=t.map((t=>t.getValue(e)));if(!function(e){return Array.isArray(e)&&e.every((e=>"number"===typeof e))}(n))return;if(1===n.length)return n[0];const r=Math.floor(n.length/2),o=n.sort(((e,t)=>e-t));return n.length%2!==0?o[r]:(o[r-1]+o[r])/2},unique:(e,t)=>Array.from(new Set(t.map((t=>t.getValue(e)))).values()),uniqueCount:(e,t)=>new Set(t.map((t=>t.getValue(e)))).size,count:(e,t)=>t.length},Jm={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return null!=(t=null==(n=e.getValue())||null==n.toString?void 0:n.toString())?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:Em("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>({toggleGrouping:()=>{t.setGrouping((t=>null!=t&&t.includes(e.id)?t.filter((t=>t!==e.id)):[...null!=t?t:[],e.id]))},getCanGroup:()=>{var n,r,o,i;return null!=(n=null==(r=null!=(o=null==(i=e.columnDef.enableGrouping)||i)?o:t.options.enableGrouping)||r)?n:!!e.accessorFn},getIsGrouped:()=>{var n;return null==(n=t.getState().grouping)?void 0:n.includes(e.id)},getGroupedIndex:()=>{var n;return null==(n=t.getState().grouping)?void 0:n.indexOf(e.id)},getToggleGroupingHandler:()=>{const t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},getAutoAggregationFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=null==n?void 0:n.getValue(e.id);return"number"===typeof r?Km.sum:"[object Date]"===Object.prototype.toString.call(r)?Km.extent:void 0},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return Am(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:"auto"===e.columnDef.aggregationFn?e.getAutoAggregationFn():null!=(n=null==(r=t.options.aggregationFns)?void 0:r[e.columnDef.aggregationFn])?n:Km[e.columnDef.aggregationFn]}}),createTable:e=>({setGrouping:t=>null==e.options.onGroupingChange?void 0:e.options.onGroupingChange(t),resetGrouping:t=>{var n,r;e.setGrouping(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.grouping)?n:[])},getPreGroupedRowModel:()=>e.getFilteredRowModel(),getGroupedRowModel:()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())}),createRow:(e,t)=>({getIsGrouped:()=>!!e.groupingColumnId,getGroupingValue:n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return null!=r&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},_groupingValuesCache:{}}),createCell:(e,t,n,r)=>({getIsGrouped:()=>t.getIsGrouped()&&t.id===n.groupingColumnId,getIsPlaceholder:()=>!e.getIsGrouped()&&t.getIsGrouped(),getIsAggregated:()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!(null==(t=n.subRows)||!t.length)}})};const Qm={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:Em("columnOrder",e)}),createTable:e=>({setColumnOrder:t=>null==e.options.onColumnOrderChange?void 0:e.options.onColumnOrderChange(t),resetColumnOrder:t=>{var n;e.setColumnOrder(t?[]:null!=(n=e.initialState.columnOrder)?n:[])},_getOrderColumnsFn:Mm((()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode]),((e,t,n)=>r=>{let o=[];if(null!=e&&e.length){const t=[...e],n=[...r];for(;n.length&&t.length;){const e=t.shift(),r=n.findIndex((t=>t.id===e));r>-1&&o.push(n.splice(r,1)[0])}o=[...o,...n]}else o=r;return function(e,t,n){if(null==t||!t.length||!n)return e;const r=e.filter((e=>!t.includes(e.id)));if("remove"===n)return r;const o=t.map((t=>e.find((e=>e.id===t)))).filter(Boolean);return[...o,...r]}(o,t,n)}),{key:!1})})},ey={getInitialState:e=>({...e,pagination:{pageIndex:0,pageSize:10,...null==e?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:Em("pagination",e)}),createTable:e=>{let t=!1,n=!1;return{_autoResetPageIndex:()=>{var r,o;if(t){if(null!=(r=null!=(o=e.options.autoResetAll)?o:e.options.autoResetPageIndex)?r:!e.options.manualPagination){if(n)return;n=!0,e._queue((()=>{e.resetPageIndex(),n=!1}))}}else e._queue((()=>{t=!0}))},setPagination:t=>null==e.options.onPaginationChange?void 0:e.options.onPaginationChange((e=>Cm(t,e))),resetPagination:t=>{var n;e.setPagination(t?{pageIndex:0,pageSize:10}:null!=(n=e.initialState.pagination)?n:{pageIndex:0,pageSize:10})},setPageIndex:t=>{e.setPagination((n=>{let r=Cm(t,n.pageIndex);const o="undefined"===typeof e.options.pageCount||-1===e.options.pageCount?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return r=Math.max(0,Math.min(r,o)),{...n,pageIndex:r}}))},resetPageIndex:t=>{var n,r,o;e.setPageIndex(t?0:null!=(n=null==(r=e.initialState)||null==(o=r.pagination)?void 0:o.pageIndex)?n:0)},resetPageSize:t=>{var n,r,o;e.setPageSize(t?10:null!=(n=null==(r=e.initialState)||null==(o=r.pagination)?void 0:o.pageSize)?n:10)},setPageSize:t=>{e.setPagination((e=>{const n=Math.max(1,Cm(t,e.pageSize)),r=e.pageSize*e.pageIndex,o=Math.floor(r/n);return{...e,pageIndex:o,pageSize:n}}))},setPageCount:t=>e.setPagination((n=>{var r;let o=Cm(t,null!=(r=e.options.pageCount)?r:-1);return"number"===typeof o&&(o=Math.max(-1,o)),{...n,pageCount:o}})),getPageOptions:Mm((()=>[e.getPageCount()]),(e=>{let t=[];return e&&e>0&&(t=[...new Array(e)].fill(null).map(((e,t)=>t))),t}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getCanPreviousPage:()=>e.getState().pagination.pageIndex>0,getCanNextPage:()=>{const{pageIndex:t}=e.getState().pagination,n=e.getPageCount();return-1===n||0!==n&&t<n-1},previousPage:()=>e.setPageIndex((e=>e-1)),nextPage:()=>e.setPageIndex((e=>e+1)),getPrePaginationRowModel:()=>e.getExpandedRowModel(),getPaginationRowModel:()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),getPageCount:()=>{var t;return null!=(t=e.options.pageCount)?t:Math.ceil(e.getPrePaginationRowModel().rows.length/e.getState().pagination.pageSize)}}}},ty={getInitialState:e=>({columnPinning:{left:[],right:[]},...e}),getDefaultOptions:e=>({onColumnPinningChange:Em("columnPinning",e)}),createColumn:(e,t)=>({pin:n=>{const r=e.getLeafColumns().map((e=>e.id)).filter(Boolean);t.setColumnPinning((e=>{var t,o,i,a,s,l;return"right"===n?{left:(null!=(i=null==e?void 0:e.left)?i:[]).filter((e=>!(null!=r&&r.includes(e)))),right:[...(null!=(a=null==e?void 0:e.right)?a:[]).filter((e=>!(null!=r&&r.includes(e)))),...r]}:"left"===n?{left:[...(null!=(s=null==e?void 0:e.left)?s:[]).filter((e=>!(null!=r&&r.includes(e)))),...r],right:(null!=(l=null==e?void 0:e.right)?l:[]).filter((e=>!(null!=r&&r.includes(e))))}:{left:(null!=(t=null==e?void 0:e.left)?t:[]).filter((e=>!(null!=r&&r.includes(e)))),right:(null!=(o=null==e?void 0:e.right)?o:[]).filter((e=>!(null!=r&&r.includes(e))))}}))},getCanPin:()=>e.getLeafColumns().some((e=>{var n,r;return(null==(n=e.columnDef.enablePinning)||n)&&(null==(r=t.options.enablePinning)||r)})),getIsPinned:()=>{const n=e.getLeafColumns().map((e=>e.id)),{left:r,right:o}=t.getState().columnPinning,i=n.some((e=>null==r?void 0:r.includes(e))),a=n.some((e=>null==o?void 0:o.includes(e)));return i?"left":!!a&&"right"},getPinnedIndex:()=>{var n,r,o;const i=e.getIsPinned();return i?null!=(n=null==(r=t.getState().columnPinning)||null==(o=r[i])?void 0:o.indexOf(e.id))?n:-1:0}}),createRow:(e,t)=>({getCenterVisibleCells:Mm((()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right]),((e,t,n)=>{const r=[...null!=t?t:[],...null!=n?n:[]];return e.filter((e=>!r.includes(e.column.id)))}),{key:"row.getCenterVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),getLeftVisibleCells:Mm((()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,]),((e,t)=>{const n=(null!=t?t:[]).map((t=>e.find((e=>e.column.id===t)))).filter(Boolean).map((e=>({...e,position:"left"})));return n}),{key:"row.getLeftVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),getRightVisibleCells:Mm((()=>[e._getAllVisibleCells(),t.getState().columnPinning.right]),((e,t)=>{const n=(null!=t?t:[]).map((t=>e.find((e=>e.column.id===t)))).filter(Boolean).map((e=>({...e,position:"right"})));return n}),{key:"row.getRightVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}})}),createTable:e=>({setColumnPinning:t=>null==e.options.onColumnPinningChange?void 0:e.options.onColumnPinningChange(t),resetColumnPinning:t=>{var n,r;return e.setColumnPinning(t?{left:[],right:[]}:null!=(n=null==(r=e.initialState)?void 0:r.columnPinning)?n:{left:[],right:[]})},getIsSomeColumnsPinned:t=>{var n;const r=e.getState().columnPinning;var o,i;return t?Boolean(null==(n=r[t])?void 0:n.length):Boolean((null==(o=r.left)?void 0:o.length)||(null==(i=r.right)?void 0:i.length))},getLeftLeafColumns:Mm((()=>[e.getAllLeafColumns(),e.getState().columnPinning.left]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.id===t)))).filter(Boolean)),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),getRightLeafColumns:Mm((()=>[e.getAllLeafColumns(),e.getState().columnPinning.right]),((e,t)=>(null!=t?t:[]).map((t=>e.find((e=>e.id===t)))).filter(Boolean)),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),getCenterLeafColumns:Mm((()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right]),((e,t,n)=>{const r=[...null!=t?t:[],...null!=n?n:[]];return e.filter((e=>!r.includes(e.id)))}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}})})},ny={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:Em("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>({setRowSelection:t=>null==e.options.onRowSelectionChange?void 0:e.options.onRowSelectionChange(t),resetRowSelection:t=>{var n;return e.setRowSelection(t?{}:null!=(n=e.initialState.rowSelection)?n:{})},toggleAllRowsSelected:t=>{e.setRowSelection((n=>{t="undefined"!==typeof t?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach((e=>{e.getCanSelect()&&(r[e.id]=!0)})):o.forEach((e=>{delete r[e.id]})),r}))},toggleAllPageRowsSelected:t=>e.setRowSelection((n=>{const r="undefined"!==typeof t?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach((t=>{ry(o,t.id,r,e)})),o})),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:Mm((()=>[e.getState().rowSelection,e.getCoreRowModel()]),((t,n)=>Object.keys(t).length?oy(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getFilteredSelectedRowModel:Mm((()=>[e.getState().rowSelection,e.getFilteredRowModel()]),((t,n)=>Object.keys(t).length?oy(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:"getFilteredSelectedRowModel",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getGroupedSelectedRowModel:Mm((()=>[e.getState().rowSelection,e.getSortedRowModel()]),((t,n)=>Object.keys(t).length?oy(e,n):{rows:[],flatRows:[],rowsById:{}}),{key:"getGroupedSelectedRowModel",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getIsAllRowsSelected:()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=Boolean(t.length&&Object.keys(n).length);return r&&t.some((e=>e.getCanSelect()&&!n[e.id]))&&(r=!1),r},getIsAllPageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows.filter((e=>e.getCanSelect())),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some((e=>!n[e.id]))&&(r=!1),r},getIsSomeRowsSelected:()=>{var t;const n=Object.keys(null!=(t=e.getState().rowSelection)?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},getIsSomePageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows;return!e.getIsAllPageRowsSelected()&&t.filter((e=>e.getCanSelect())).some((e=>e.getIsSelected()||e.getIsSomeSelected()))},getToggleAllRowsSelectedHandler:()=>t=>{e.toggleAllRowsSelected(t.target.checked)},getToggleAllPageRowsSelectedHandler:()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}}),createRow:(e,t)=>({toggleSelected:n=>{const r=e.getIsSelected();t.setRowSelection((o=>{if(r===(n="undefined"!==typeof n?n:!r))return o;const i={...o};return ry(i,e.id,n,t),i}))},getIsSelected:()=>{const{rowSelection:n}=t.getState();return iy(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return"some"===ay(e,n)},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return"all"===ay(e,n)},getCanSelect:()=>{var n;return"function"===typeof t.options.enableRowSelection?t.options.enableRowSelection(e):null==(n=t.options.enableRowSelection)||n},getCanSelectSubRows:()=>{var n;return"function"===typeof t.options.enableSubRowSelection?t.options.enableSubRowSelection(e):null==(n=t.options.enableSubRowSelection)||n},getCanMultiSelect:()=>{var n;return"function"===typeof t.options.enableMultiRowSelection?t.options.enableMultiRowSelection(e):null==(n=t.options.enableMultiRowSelection)||n},getToggleSelectedHandler:()=>{const t=e.getCanSelect();return n=>{var r;t&&e.toggleSelected(null==(r=n.target)?void 0:r.checked)}}})},ry=(e,t,n,r)=>{var o;const i=r.getRow(t);n?(i.getCanMultiSelect()||Object.keys(e).forEach((t=>delete e[t])),i.getCanSelect()&&(e[t]=!0)):delete e[t],null!=(o=i.subRows)&&o.length&&i.getCanSelectSubRows()&&i.subRows.forEach((t=>ry(e,t.id,n,r)))};function oy(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(e,t){return e.map((e=>{var t;const a=iy(e,n);if(a&&(r.push(e),o[e.id]=e),null!=(t=e.subRows)&&t.length&&(e={...e,subRows:i(e.subRows)}),a)return e})).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function iy(e,t){var n;return null!=(n=t[e.id])&&n}function ay(e,t,n){if(e.subRows&&e.subRows.length){let n=!0,r=!1;return e.subRows.forEach((e=>{r&&!n||(iy(e,t)?r=!0:n=!1)})),n?"all":!!r&&"some"}return!1}const sy=/([0-9]+)/gm;function ly(e,t){return e===t?0:e>t?1:-1}function uy(e){return"number"===typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"===typeof e?e:""}function cy(e,t){const n=e.split(sy).filter(Boolean),r=t.split(sy).filter(Boolean);for(;n.length&&r.length;){const e=n.shift(),t=r.shift(),o=parseInt(e,10),i=parseInt(t,10),a=[o,i].sort();if(isNaN(a[0])){if(e>t)return 1;if(t>e)return-1}else{if(isNaN(a[1]))return isNaN(o)?-1:1;if(o>i)return 1;if(i>o)return-1}}return n.length-r.length}const fy={alphanumeric:(e,t,n)=>cy(uy(e.getValue(n)).toLowerCase(),uy(t.getValue(n)).toLowerCase()),alphanumericCaseSensitive:(e,t,n)=>cy(uy(e.getValue(n)),uy(t.getValue(n))),text:(e,t,n)=>ly(uy(e.getValue(n)).toLowerCase(),uy(t.getValue(n)).toLowerCase()),textCaseSensitive:(e,t,n)=>ly(uy(e.getValue(n)),uy(t.getValue(n))),datetime:(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:r<o?-1:0},basic:(e,t,n)=>ly(e.getValue(n),t.getValue(n))},dy={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:Em("sorting",e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>({getAutoSortingFn:()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const t of n){const n=null==t?void 0:t.getValue(e.id);if("[object Date]"===Object.prototype.toString.call(n))return fy.datetime;if("string"===typeof n&&(r=!0,n.split(sy).length>1))return fy.alphanumeric}return r?fy.text:fy.basic},getAutoSortDir:()=>{const n=t.getFilteredRowModel().flatRows[0];return"string"===typeof(null==n?void 0:n.getValue(e.id))?"asc":"desc"},getSortingFn:()=>{var n,r;if(!e)throw new Error;return Am(e.columnDef.sortingFn)?e.columnDef.sortingFn:"auto"===e.columnDef.sortingFn?e.getAutoSortingFn():null!=(n=null==(r=t.options.sortingFns)?void 0:r[e.columnDef.sortingFn])?n:fy[e.columnDef.sortingFn]},toggleSorting:(n,r)=>{const o=e.getNextSortingOrder(),i="undefined"!==typeof n&&null!==n;t.setSorting((a=>{const s=null==a?void 0:a.find((t=>t.id===e.id)),l=null==a?void 0:a.findIndex((t=>t.id===e.id));let u,c=[],f=i?n:"desc"===o;var d;(u=null!=a&&a.length&&e.getCanMultiSort()&&r?s?"toggle":"add":null!=a&&a.length&&l!==a.length-1?"replace":s?"toggle":"replace","toggle"===u&&(i||o||(u="remove")),"add"===u)?(c=[...a,{id:e.id,desc:f}],c.splice(0,c.length-(null!=(d=t.options.maxMultiSortColCount)?d:Number.MAX_SAFE_INTEGER))):c="toggle"===u?a.map((t=>t.id===e.id?{...t,desc:f}:t)):"remove"===u?a.filter((t=>t.id!==e.id)):[{id:e.id,desc:f}];return c}))},getFirstSortDir:()=>{var n,r;return(null!=(n=null!=(r=e.columnDef.sortDescFirst)?r:t.options.sortDescFirst)?n:"desc"===e.getAutoSortDir())?"desc":"asc"},getNextSortingOrder:n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?!!(a===i||null!=(r=t.options.enableSortingRemoval)&&!r||n&&null!=(o=t.options.enableMultiRemove)&&!o)&&("desc"===a?"asc":"desc"):i},getCanSort:()=>{var n,r;return(null==(n=e.columnDef.enableSorting)||n)&&(null==(r=t.options.enableSorting)||r)&&!!e.accessorFn},getCanMultiSort:()=>{var n,r;return null!=(n=null!=(r=e.columnDef.enableMultiSort)?r:t.options.enableMultiSort)?n:!!e.accessorFn},getIsSorted:()=>{var n;const r=null==(n=t.getState().sorting)?void 0:n.find((t=>t.id===e.id));return!!r&&(r.desc?"desc":"asc")},getSortIndex:()=>{var n,r;return null!=(n=null==(r=t.getState().sorting)?void 0:r.findIndex((t=>t.id===e.id)))?n:-1},clearSorting:()=>{t.setSorting((t=>null!=t&&t.length?t.filter((t=>t.id!==e.id)):[]))},getToggleSortingHandler:()=>{const n=e.getCanSort();return r=>{n&&(null==r.persist||r.persist(),null==e.toggleSorting||e.toggleSorting(void 0,!!e.getCanMultiSort()&&(null==t.options.isMultiSortEvent?void 0:t.options.isMultiSortEvent(r))))}}}),createTable:e=>({setSorting:t=>null==e.options.onSortingChange?void 0:e.options.onSortingChange(t),resetSorting:t=>{var n,r;e.setSorting(t?[]:null!=(n=null==(r=e.initialState)?void 0:r.sorting)?n:[])},getPreSortedRowModel:()=>e.getGroupedRowModel(),getSortedRowModel:()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())})},py={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:Em("columnVisibility",e)}),createColumn:(e,t)=>({toggleVisibility:n=>{e.getCanHide()&&t.setColumnVisibility((t=>({...t,[e.id]:null!=n?n:!e.getIsVisible()})))},getIsVisible:()=>{var n,r;return null==(n=null==(r=t.getState().columnVisibility)?void 0:r[e.id])||n},getCanHide:()=>{var n,r;return(null==(n=e.columnDef.enableHiding)||n)&&(null==(r=t.options.enableHiding)||r)},getToggleVisibilityHandler:()=>t=>{null==e.toggleVisibility||e.toggleVisibility(t.target.checked)}}),createRow:(e,t)=>({_getAllVisibleCells:Mm((()=>[e.getAllCells(),t.getState().columnVisibility]),(e=>e.filter((e=>e.column.getIsVisible()))),{key:"row._getAllVisibleCells",debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}}),getVisibleCells:Mm((()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()]),((e,t,n)=>[...e,...t,...n]),{key:!1,debug:()=>{var e;return null!=(e=t.options.debugAll)?e:t.options.debugRows}})}),createTable:e=>{const t=(t,n)=>Mm((()=>[n(),n().filter((e=>e.getIsVisible())).map((e=>e.id)).join("_")]),(e=>e.filter((e=>null==e.getIsVisible?void 0:e.getIsVisible()))),{key:t,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}});return{getVisibleFlatColumns:t("getVisibleFlatColumns",(()=>e.getAllFlatColumns())),getVisibleLeafColumns:t("getVisibleLeafColumns",(()=>e.getAllLeafColumns())),getLeftVisibleLeafColumns:t("getLeftVisibleLeafColumns",(()=>e.getLeftLeafColumns())),getRightVisibleLeafColumns:t("getRightVisibleLeafColumns",(()=>e.getRightLeafColumns())),getCenterVisibleLeafColumns:t("getCenterVisibleLeafColumns",(()=>e.getCenterLeafColumns())),setColumnVisibility:t=>null==e.options.onColumnVisibilityChange?void 0:e.options.onColumnVisibilityChange(t),resetColumnVisibility:t=>{var n;e.setColumnVisibility(t?{}:null!=(n=e.initialState.columnVisibility)?n:{})},toggleAllColumnsVisible:t=>{var n;t=null!=(n=t)?n:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce(((e,n)=>({...e,[n.id]:t||!(null!=n.getCanHide&&n.getCanHide())})),{}))},getIsAllColumnsVisible:()=>!e.getAllLeafColumns().some((e=>!(null!=e.getIsVisible&&e.getIsVisible()))),getIsSomeColumnsVisible:()=>e.getAllLeafColumns().some((e=>null==e.getIsVisible?void 0:e.getIsVisible())),getToggleAllColumnsVisibilityHandler:()=>t=>{var n;e.toggleAllColumnsVisible(null==(n=t.target)?void 0:n.checked)}}}},hy=[Rm,py,Qm,ty,Ym,dy,Jm,Lm,ey,ny,Bm];function gy(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:hy};const r=n._features.reduce(((e,t)=>Object.assign(e,null==t.getDefaultOptions?void 0:t.getDefaultOptions(n))),{});let o={...null!=(t=e.initialState)?t:{}};n._features.forEach((e=>{var t;o=null!=(t=null==e.getInitialState?void 0:e.getInitialState(o))?t:o}));const i=[];let a=!1;const s={_features:hy,options:{...r,...e},initialState:o,_queue:e=>{i.push(e),a||(a=!0,Promise.resolve().then((()=>{for(;i.length;)i.shift()();a=!1})).catch((e=>setTimeout((()=>{throw e})))))},reset:()=>{n.setState(n.initialState)},setOptions:e=>{const t=Cm(e,n.options);n.options=(e=>n.options.mergeOptions?n.options.mergeOptions(r,e):{...r,...e})(t)},getState:()=>n.options.state,setState:e=>{null==n.options.onStateChange||n.options.onStateChange(e)},_getRowId:(e,t,r)=>{var o;return null!=(o=null==n.options.getRowId?void 0:n.options.getRowId(e,t,r))?o:`${r?[r.id,t].join("."):t}`},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:e=>{const t=n.getRowModel().rowsById[e];if(!t)throw new Error;return t},_getDefaultColumnDef:Mm((()=>[n.options.defaultColumn]),(e=>{var t;return e=null!=(t=e)?t:{},{header:e=>{const t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t,n;return null!=(t=null==(n=e.renderValue())||null==n.toString?void 0:n.toString())?t:null},...n._features.reduce(((e,t)=>Object.assign(e,null==t.getDefaultColumnDef?void 0:t.getDefaultColumnDef())),{}),...e}}),{debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns},key:!1}),_getColumnDefs:()=>n.options.columns,getAllColumns:Mm((()=>[n._getColumnDefs()]),(e=>{const t=function(e,r,o){return void 0===o&&(o=0),e.map((e=>{const i=function(e,t,n,r){var o,i;const a={...e._getDefaultColumnDef(),...t},s=a.accessorKey;let l,u=null!=(o=null!=(i=a.id)?i:s?s.replace(".","_"):void 0)?o:"string"===typeof a.header?a.header:void 0;if(a.accessorFn?l=a.accessorFn:s&&(l=s.includes(".")?e=>{let t=e;for(const r of s.split(".")){var n;t=null==(n=t)?void 0:n[r]}return t}:e=>e[a.accessorKey]),!u)throw new Error;let c={id:`${String(u)}`,accessorFn:l,parent:r,depth:n,columnDef:a,columns:[],getFlatColumns:Mm((()=>[!0]),(()=>{var e;return[c,...null==(e=c.columns)?void 0:e.flatMap((e=>e.getFlatColumns()))]}),{key:"column.getFlatColumns",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}}),getLeafColumns:Mm((()=>[e._getOrderColumnsFn()]),(e=>{var t;if(null!=(t=c.columns)&&t.length){let t=c.columns.flatMap((e=>e.getLeafColumns()));return e(t)}return[c]}),{key:"column.getLeafColumns",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugColumns}})};return c=e._features.reduce(((t,n)=>Object.assign(t,null==n.createColumn?void 0:n.createColumn(c,e))),c),c}(n,e,o,r),a=e;return i.columns=a.columns?t(a.columns,i,o+1):[],i}))};return t(e)}),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getAllFlatColumns:Mm((()=>[n.getAllColumns()]),(e=>e.flatMap((e=>e.getFlatColumns()))),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),_getAllFlatColumnsById:Mm((()=>[n.getAllFlatColumns()]),(e=>e.reduce(((e,t)=>(e[t.id]=t,e)),{})),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getAllLeafColumns:Mm((()=>[n.getAllColumns(),n._getOrderColumnsFn()]),((e,t)=>{let n=e.flatMap((e=>e.getLeafColumns()));return t(n)}),{key:!1,debug:()=>{var e;return null!=(e=n.options.debugAll)?e:n.options.debugColumns}}),getColumn:e=>n._getAllFlatColumnsById()[e]};return Object.assign(n,s),n._features.forEach((e=>Object.assign(n,null==e.createTable?void 0:e.createTable(n)))),n}const vy=(e,t,n,r,o,i,a)=>{let s={id:t,index:r,original:n,depth:o,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(s._valuesCache.hasOwnProperty(t))return s._valuesCache[t];const n=e.getColumn(t);return null!=n&&n.accessorFn?(s._valuesCache[t]=n.accessorFn(s.original,r),s._valuesCache[t]):void 0},getUniqueValues:t=>{if(s._uniqueValuesCache.hasOwnProperty(t))return s._uniqueValuesCache[t];const n=e.getColumn(t);return null!=n&&n.accessorFn?n.columnDef.getUniqueValues?(s._uniqueValuesCache[t]=n.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[t]):(s._uniqueValuesCache[t]=[s.getValue(t)],s._uniqueValuesCache[t]):void 0},renderValue:t=>{var n;return null!=(n=s.getValue(t))?n:e.options.renderFallbackValue},subRows:null!=i?i:[],getLeafRows:()=>km(s.subRows,(e=>e.subRows)),getParentRow:()=>s.parentId?e.getRow(s.parentId):void 0,getParentRows:()=>{let e=[],t=s;for(;;){const n=t.getParentRow();if(!n)break;e.push(n),t=n}return e.reverse()},getAllCells:Mm((()=>[e.getAllLeafColumns()]),(t=>t.map((t=>function(e,t,n,r){const o={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:()=>{var t;return null!=(t=o.getValue())?t:e.options.renderFallbackValue},getContext:Mm((()=>[e,n,t,o]),((e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue})),{key:!1,debug:()=>e.options.debugAll})};return e._features.forEach((r=>{Object.assign(o,null==r.createCell?void 0:r.createCell(o,n,t,e))}),{}),o}(e,s,t,t.id)))),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}}),_getAllCellsByColumnId:Mm((()=>[s.getAllCells()]),(e=>e.reduce(((e,t)=>(e[t.column.id]=t,e)),{})),{key:"row.getAllCellsByColumnId",debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugRows}})};for(let l=0;l<e._features.length;l++){const t=e._features[l];Object.assign(s,null==t||null==t.createRow?void 0:t.createRow(s,e))}return s};function my(e,t,n){return n.options.filterFromLeafRows?function(e,t,n){var r;const o=[],i={},a=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,s=function(e,r){void 0===r&&(r=0);const o=[];for(let u=0;u<e.length;u++){var l;let c=e[u];const f=vy(n,c.id,c.original,c.index,c.depth,void 0,c.parentId);if(f.columnFilters=c.columnFilters,null!=(l=c.subRows)&&l.length&&r<a){if(f.subRows=s(c.subRows,r+1),c=f,t(c)&&!f.subRows.length){o.push(c),i[c.id]=c,i[u]=c;continue}if(t(c)||f.subRows.length){o.push(c),i[c.id]=c,i[u]=c;continue}}else c=f,t(c)&&(o.push(c),i[c.id]=c,i[u]=c)}return o};return{rows:s(e),flatRows:o,rowsById:i}}(e,t,n):function(e,t,n){var r;const o=[],i={},a=null!=(r=n.options.maxLeafRowFilterDepth)?r:100,s=function(e,r){void 0===r&&(r=0);const l=[];for(let c=0;c<e.length;c++){let f=e[c];if(t(f)){var u;if(null!=(u=f.subRows)&&u.length&&r<a){const e=vy(n,f.id,f.original,f.index,f.depth,void 0,f.parentId);e.subRows=s(f.subRows,r+1),f=e}l.push(f),o.push(f),i[f.id]=f}}return l};return{rows:s(e),flatRows:o,rowsById:i}}(e,t,n)}function yy(){return e=>Mm((()=>[e.getState().grouping,e.getPreGroupedRowModel()]),((t,n)=>{if(!n.rows.length||!t.length)return n;const r=t.filter((t=>e.getColumn(t))),o=[],i={},a=function(t,n,s){if(void 0===n&&(n=0),n>=r.length)return t.map((e=>(e.depth=n,o.push(e),i[e.id]=e,e.subRows&&(e.subRows=a(e.subRows,n+1,e.id)),e)));const l=r[n],u=function(e,t){const n=new Map;return e.reduce(((e,n)=>{const r=`${n.getGroupingValue(t)}`,o=e.get(r);return o?o.push(n):e.set(r,[n]),e}),n)}(t,l),c=Array.from(u.entries()).map(((t,u)=>{let[c,f]=t,d=`${l}:${c}`;d=s?`${s}>${d}`:d;const p=a(f,n+1,d),h=n?km(f,(e=>e.subRows)):f,g=vy(e,d,h[0].original,u,n,void 0,s);return Object.assign(g,{groupingColumnId:l,groupingValue:c,subRows:p,leafRows:h,getValue:t=>{if(r.includes(t)){if(g._valuesCache.hasOwnProperty(t))return g._valuesCache[t];var n;if(f[0])g._valuesCache[t]=null!=(n=f[0].getValue(t))?n:void 0;return g._valuesCache[t]}if(g._groupingValuesCache.hasOwnProperty(t))return g._groupingValuesCache[t];const o=e.getColumn(t),i=null==o?void 0:o.getAggregationFn();return i?(g._groupingValuesCache[t]=i(t,h,f),g._groupingValuesCache[t]):void 0}}),p.forEach((e=>{o.push(e),i[e.id]=e})),g}));return c},s=a(n.rows,0);return s.forEach((e=>{o.push(e),i[e.id]=e})),{rows:s,flatRows:o,rowsById:i}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._queue((()=>{e._autoResetExpanded(),e._autoResetPageIndex()}))}})}function by(e){const t=[],n=e=>{var r;t.push(e),null!=(r=e.subRows)&&r.length&&e.getIsExpanded()&&e.subRows.forEach(n)};return e.rows.forEach(n),{rows:t,flatRows:e.flatRows,rowsById:e.rowsById}}function wy(e,t){return e?function(e){return"function"===typeof e&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}(n=e)||"function"===typeof n||function(e){return"object"===typeof e&&"symbol"===typeof e.$$typeof&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}(n)?i.createElement(e,t):e:null;var n}var _y={gt:function(e,t){return e>t},eq:function(e,t){return e===t},lt:function(e,t){return e<t},all:function(){return!0}},xy=function(e,t,n){var r=n[0],o=n[1],i=r.value,a=e.getValue(t);if(isNaN(o)||""===o)return!0;var s=_y[i](Number(a),Number(o));return!s&&e.subRows.length?e.subRows.some((function(e){return xy(e,t,n)})):s},Sy=function(e,t,n){var r=e.getValue(t);return n.length<1||n.some((function(e){var t,n,o=e.value;return"all"===o||(null===(t=null===o||void 0===o?void 0:o.toLowerCase)||void 0===t?void 0:t.call(o))===(null===(n=null===r||void 0===r?void 0:r.toLowerCase)||void 0===n?void 0:n.call(r))}))},Oy=function(e,t,n){var r,o,i=e.getValue(t),a=n.value;return"all"===a||(null===(r=null===a||void 0===a?void 0:a.toLowerCase)||void 0===r?void 0:r.call(a))===(null===(o=null===i||void 0===i?void 0:i.toLowerCase)||void 0===o?void 0:o.call(i))},Cy=function(e,t,n){var r,o,i=null===(o=null===(r=e.getValue(t))||void 0===r?void 0:r.toString)||void 0===o?void 0:o.call(r);if("string"!==typeof i)return!1;var a=n?n.toLowerCase():"",s=i.toLowerCase().includes(a);return!s&&e.subRows.length?e.subRows.some((function(e){return Cy(e,t,n)})):s},Ey=function(){return Ey=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ey.apply(this,arguments)},Ay=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},ky=(0,i.forwardRef)((function(e,t){var n=e.id,r=e.icon,o=e.background,a=e.handleAction,s=e.tooltipText,l=e.confirmation,u=e.confirmationTitle,c=e.confirmationMessage,f=e.handleDecline,d=e.confirmLabel,p=e.declineLabel,h=e.actionButtonDirection,g=e.testPrefix,v=e.dataGa,m=e.disabled,y=e.visible,b=e.currentRow,w=e.selectedRows,_=e.disabledTooltipText,x=e.iconColor,S=e.flavour,O=void 0===S?"borderless":S,C=e.CustomUIAction,E=e.label,A=e.TooltipComponent,k=void 0===A?Xe:A,M=Ay(e,["id","icon","background","handleAction","tooltipText","confirmation","confirmationTitle","confirmationMessage","handleDecline","confirmLabel","declineLabel","actionButtonDirection","testPrefix","dataGa","disabled","visible","currentRow","selectedRows","disabledTooltipText","iconColor","flavour","CustomUIAction","label","TooltipComponent"]),P=(0,i.useState)(!1),R=P[0],T=P[1];if(!1===y)return null;var I=E?Ee:nt;return i.createElement(i.Fragment,null,R&&C&&i.createElement(C,{handleAction:a(),onClose:function(){return T(!1)},data:(null===b||void 0===b?void 0:b.original)||w}),R&&!C&&i.createElement(Om,{actionButtonDirection:h,declineLabel:p,confirmLabel:d,title:"function"===typeof u?u(null===b||void 0===b?void 0:b.original,w):u,message:"function"===typeof c?c(null===b||void 0===b?void 0:b.original,w):c,handleDecline:function(){T(!1),null===f||void 0===f||f()},handleConfirm:function(){T(!1),null===a||void 0===a||a()}}),i.createElement(k,{content:m?_:s},i.createElement(Se.default,{ref:t,alignItems:"center",justifyContent:"center",_hover:{background:m||E?null:"borderSecondary"},cursor:m?"auto":"pointer",key:n,round:!0,background:E?null:o},i.createElement(I,Ey({iconSize:"small","data-testid":"netdata-table-action-".concat(n).concat(g),"data-ga":v,disabled:m,onClick:function(){l||C?T(!0):a()},icon:r,flavour:O,iconColor:x,label:E},M)))))})),My=ky,Py=function(){return Py=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Py.apply(this,arguments)},Ry=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ty={delete:{icon:"trashcan",confirmation:!0,tooltipText:"Delete",confirmationTitle:"Delete Row",confirmationMessage:"You are about to delete a row, are you sure?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse",disabledTooltipText:"Delete is disabled"},edit:{icon:"pencilOutline",confirmation:!1,tooltipText:"Edit"},replace:{icon:"refresh",confirmation:!0,tooltipText:"Replace",confirmationTitle:"Replace Row",confirmationMessage:"You are about to replace a row, are you sure you want to continue?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse"},info:{icon:"information",confirmation:!1,tooltipText:"Information"},toggleAlarm:{icon:"alarm_off",confirmation:!1,tooltipText:"Turn of Alarms"},userSettings:{icon:"user",confirmation:!1,tooltipText:"User Settings"},remove:{icon:"removeNode",confirmation:!0,actionButtonDirection:"reverse",confirmLabel:"Yes",declineLabel:"No"},goto:{icon:"nav_arrow_goto",confirmation:!1,tooltipText:"Go to"}},Iy=function(){return Iy=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Iy.apply(this,arguments)},By=function(e,t){var n=t.rowActions,r=t.enableSelection,o=t.testPrefix,a=t.tableMeta,s=function(e,t){var n=void 0===t?{}:t,r=n.testPrefix,o=n.tableMeta,a=(0,i.useMemo)((function(){return Object.keys(e).reduce((function(t,n){var r=Ty[n]||Ty.delete,o=e[n];return t.push(Py(Py({id:n},r),o)),t}),[])}),[e]);return a.length<1?null:{id:"actions",enableHiding:!1,enableResizing:!1,header:"Actions",cell:function(e){var t=e.row,n=e.table;return i.createElement(Se.default,{"data-testid":"action-cell",height:"100%",gap:2},a.map((function(e){var o=e.id,a=e.handleAction,s=e.isDisabled,l=e.isVisible,u=void 0===l||l,c=e.dataGa,f=Ry(e,["id","handleAction","isDisabled","isVisible","dataGa"]);return i.createElement(My,Py({},f,{disabled:"function"===typeof s?s(t.original):s,visible:"function"===typeof u?u(t.original):u,dataGa:"function"===typeof c?c(t.original):c,key:o,id:o,handleAction:function(){return a(t.original,n)},testPrefix:r,currentRow:t}))})))},enableColumnFilter:!1,enableSorting:!1,meta:{stopPropagation:!0},tableMeta:o}}(n,{testPrefix:o,tableMeta:a}),l=function(e,t){var n=t.testPrefix,r=t.tableMeta;return(0,i.useMemo)((function(){return e?{id:"checkbox",enableHiding:!1,enableResizing:!1,header:function(e){var t=e.table;return i.createElement(tn,{"data-testid":"netdata-table-header-checkbox".concat(n),checked:t.getIsAllRowsSelected(),indeterminate:t.getIsSomeRowsSelected(),onChange:t.getToggleAllRowsSelectedHandler()})},cell:function(e){var t,r,o,a=e.row;return"hidden"!==(null===(t=a.original)||void 0===t?void 0:t.disabled)&&i.createElement(tn,{"data-testid":"netdata-table-cell-checkbox".concat(n),checked:!(null===(r=a.original)||void 0===r?void 0:r.disabled)&&a.getIsSelected(),indeterminate:a.getIsSomeSelected(),onChange:a.getToggleSelectedHandler(),disabled:(null===(o=a.original)||void 0===o?void 0:o.disabled)||!1})},enableColumnFilter:!1,enableSorting:!1,size:30,maxSize:30,minSize:30,meta:{stopPropagation:!0},tableMeta:r}:null}),[e])}(r,{testPrefix:o,tableMeta:a});return(0,i.useMemo)((function(){if(!e||e.length<1)return[];var t=!1;return e=e.map((function(e,n){if(Array.isArray(e.columns))return t=!0,Iy(Iy({id:n},e),{columns:e.columns.map((function(e,t){if(!e.id)throw new Error("Please provide id at ".concat(t));return Iy(Iy({enableColumnFilter:!1,enableGlobalFilter:!0,enableSorting:!0,size:150,maxSize:5e3,minSize:150,enableHiding:!0,enableResize:!0,footer:function(e){return e.column.id},tableMeta:a},e),{accessorKey:e.accessorKey||e.id})}))});if(!e.id)throw new Error("Please provide id at ".concat(n));return Iy(Iy({enableColumnFilter:!1,enableGlobalFilter:!0,enableSorting:!0,size:150,maxSize:5e3,minSize:150,enableHiding:!0,enableResize:!0,footer:function(e){return e.column.id},tableMeta:a},e),{accessorKey:e.accessorKey||e.id})})),l&&e.unshift(t?{id:"selectionColumn",columns:l}:l),s&&e.push(t?{id:"rowActionsColumn",columns:s}:s),e}),[e,s,l])},jy=function(){return jy=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},jy.apply(this,arguments)},Dy=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ly=(0,i.forwardRef)((function(e,t){var n=e.isDisabled,r=e.isVisible,o=e.testPrefix,a=e.id,s=e.icon,l=e.handleAction,u=e.selectedRows,c=e.table,f=e.tooltipText,d=e.alwaysEnabled,p=Dy(e,["isDisabled","isVisible","testPrefix","id","icon","handleAction","selectedRows","table","tooltipText","alwaysEnabled"]),h=(0,i.useRef)(),g="function"===typeof n?n():n,v="function"===typeof r?r():r;return i.createElement(My,jy({ref:jt(h,t),testPrefix:"-bulk".concat(o),key:a,visible:v,id:a,icon:s,handleAction:function(){return l(u,c)},tooltipText:f,disabled:!d&&(null===u||void 0===u?void 0:u.length)<1||g,background:"elementBackground",selectedRows:u},p))})),Zy=Ly,Ny=function(e){var t=e.column,n=e.dataGa,r=e.disabled,o=t.getIsVisible();return i.createElement(Se.default,{alignItems:"center",as:He.ListItem,justifyContent:"between",padding:[1]},i.createElement(tn,{checked:o,disabled:r,label:t.columnDef.name||t.id,onChange:t.getToggleVisibilityHandler(),"data-ga":"columns-menu::click-".concat(o?"disable":"enable","-").concat(t.id,"-::").concat(n)}))},Fy=function(e){var t=e.dataGa,n=e.parentRef,r=e.isOpen,o=e.columns,a=e.onClose,s=e.pinnedColumns;return n.current&&r?i.createElement(Ie.Z,{background:"dropdown",height:{max:"400px"},onClickOutside:a,overflow:{vertical:"auto"},round:1,target:n.current,width:50,align:{top:"bottom",right:"right"}},i.createElement(Se.default,{border:{size:"1px",type:"solid",side:"bottom",color:"borderSecondary"},padding:[3,3,1]},i.createElement(He.Text,{color:"textLite"},"Edit columns")),i.createElement(Se.default,{column:!0,padding:[1,3]},s.length?i.createElement(Se.default,{border:{size:"1px",type:"solid",side:"bottom",color:"borderSecondary"},column:!0},s.map((function(e){return i.createElement(Ny,{column:e,dataGa:t,disabled:!0,key:e.id})}))):null,o.map((function(e){return i.createElement(Ny,{column:e,dataGa:t,key:e.id})})))):null},Hy=function(){return Hy=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Hy.apply(this,arguments)},Vy=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},zy=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},Uy=function(e){var t=e.alwaysEnabled,n=e.columnPinning,r=void 0===n?{}:n,o=e.dataGa,a=e.enableColumnPinning,s=e.handleAction,l=e.id,u=e.icon,c=e.isDisabled,f=e.isOpen,d=e.isVisible,p=e.onClose,h=e.selectedRows,g=e.table,v=e.testPrefix,m=e.tooltipText,y=Vy(e,["alwaysEnabled","columnPinning","dataGa","enableColumnPinning","handleAction","id","icon","isDisabled","isOpen","isVisible","onClose","selectedRows","table","testPrefix","tooltipText"]),b=(0,i.useRef)(),w="function"===typeof c?c():c,_="function"===typeof d?d():d,x=g.getAllLeafColumns(),S=a?zy(zy([],(null===r||void 0===r?void 0:r.left)||[],!0),(null===r||void 0===r?void 0:r.right)||[],!0):[],O=a?x.reduce((function(e,t){var n;if(!t.getCanHide())return e;var r="columns";return S.includes(t.id)&&(r="pinnedColumns"),Hy(Hy({},e),((n={})[r]=zy(zy([],e[r],!0),[t],!1),n))}),{columns:[],pinnedColumns:[]}):{columns:x,pinnedColumns:[]},C=O.columns,E=O.pinnedColumns;return i.createElement(i.Fragment,null,i.createElement(Zy,Hy({ref:b,testPrefix:"-bulk".concat(v),visible:_,id:l,icon:u,handleAction:function(){return s(h,g)},tooltipText:m,disabled:!t&&(null===h||void 0===h?void 0:h.length)<1||w,background:"elementBackground",selectedRows:h,dataGa:o},y)),i.createElement(Fy,{columns:C,dataGa:o,isOpen:f,onClose:p,parentRef:b,pinnedColumns:E}))},Gy=function(){return Gy=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Gy.apply(this,arguments)},Wy=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},qy={delete:{icon:"trashcan",confirmation:!0,tooltipText:"Delete",confirmationTitle:"Delete Row",confirmationMessage:"You are about to delete a row, are you sure you want to continue?",confirmLabel:"Yes",declineLabel:"No",actionButtonDirection:"reverse"},download:{icon:"download",confirmation:!1,tooltipText:"Download"},toggleAlarm:{icon:"alarm_off",confirmation:!1,tooltipText:"Turn of Alarms"},userSettings:{icon:"user",confirmation:!1,tooltipText:"User Settings"},addEntry:{icon:"plus",alwaysEnabled:!0,flavour:"default",iconColor:"white"},remove:{icon:"removeNode",confirmation:!0,confirmLabel:"Yes",declineLabel:"No"},columnVisibility:{icon:"gear",alwaysEnabled:!0}},$y=function(e,t){void 0===t&&(t={});var n=(0,je.Z)(!1),r=n[0],o=n[1],a=n[3];return(0,i.useMemo)((function(){return i.createElement(Uy,Gy({key:"columnVisibility"},qy.columnVisibility,{handleAction:o,isOpen:r,isVisible:e,id:"columnVisibility",onClose:a},t))}),[e,r,t.table.getVisibleFlatColumns()])},Yy=function(){return Yy=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Yy.apply(this,arguments)},Xy=(0,i.createContext)({}),Ky=function(){return(0,i.useContext)(Xy)},Jy={hoveredRow:null,hoveredColumn:null,rowsHeight:{}},Qy=function(e){var t=e.onHoverCell,n=e.children,r=(0,i.useState)(Jy),o=r[0],a=r[1],s=(0,i.useCallback)((function(e){a((function(t){return Yy(Yy({},t),e)}))}),[]),l=(0,i.useCallback)((function(e){var n=void 0===e?{}:e,r=n.row,o=n.column;s({hoveredRow:r,hoveredColumn:o}),null===t||void 0===t||t({row:r,column:o})}),[t]),u=(0,i.useCallback)((function(e){var t=e.index,n=e.height;a((function(e){var r;return Yy(Yy({},e),{rowsHeight:Yy(Yy({},e.rowsHeight),(r={},r[t]=Math.max(e.rowsHeight[t]||0,n),r))})}))}),[]),c=(0,i.useMemo)((function(){return Yy(Yy({},o),{dispatch:s,onHover:l,setRowHeight:u})}),[o,l]);return i.createElement(Xy.Provider,{value:c},n)},eb=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},tb=function(){return tb=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},tb.apply(this,arguments)},nb=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},rb=(0,s.default)(He.Text).attrs((function(e){return tb({as:"tr",width:"fit-content"},e)}))(sb||(sb=eb([""],[""]))),ob=(0,s.default)(Te.Z)(lb||(lb=eb(["\n border-bottom: 1px solid ",";\n &:not(:last-child) {\n border-right: 1px solid\n ",";\n }\n"],["\n border-bottom: 1px solid ",";\n &:not(:last-child) {\n border-right: 1px solid\n ",";\n }\n"])),(0,ut.getColor)("border"),(function(e){var t=e.background,n=e.theme;return(0,ut.getColor)(t||"border")({theme:n})})),ib=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.width,o=nb(e,["children","width"]);return i.createElement(Te.Z,tb({sx:{borderCollapse:"separate","table-layout":"fixed",borderSpacing:"0"},ref:t,as:"table",width:r},o),n)}));ib.Head=(0,i.forwardRef)((function(e,t){var n=e.children,r=nb(e,["children"]);return i.createElement(Te.Z,tb({ref:t,sx:{zIndex:10,position:"sticky",top:0},as:"thead"},r),n)})),ib.HeadRow=(0,i.forwardRef)((function(e,t){var n=e.children,r=nb(e,["children"]);return i.createElement(Te.Z,tb({as:"tr",ref:t,background:"tableRowBg",color:"text"},r),n)})),ib.Resizer=function(e){var t=e.onMouseDown,n=e.onTouchStart,r=e.deltaOffset,o=e.getIsResizing,a=e.background;if(t){var s=o()?{transform:"translateX(".concat(r,"px)")}:{};return i.createElement(Te.Z,{_hover:{background:"resizerLine",color:"resizerLine"},_active:{background:"resizerLine",color:"resizerLine"},_before:{content:'":"',position:"absolute",top:"0",bottom:"0",display:"flex",alignItems:"center",left:"-8px",width:"8px"},sx:tb({width:"2px",userSelect:"none",touchAction:"none",cursor:"col-resize",color:"border"},s),onMouseDown:t,onTouchStart:n,background:a||"borderSecondary",position:"absolute",top:0,right:0,bottom:0})}},ib.HeadCell=(0,i.forwardRef)((function(e,t){var n=e.id,r=e.children,o=e.align,a=void 0===o?"left":o,s=e.width,l=e.tooltipText,u=e.filter,c=e.onMouseDown,f=e.onTouchStart,d=e.getIsResizing,p=e.deltaOffset,h=e.styles,g=void 0===h?{}:h,v=e.headStyles,m=void 0===v?{}:v,y=nb(e,["id","children","align","width","tooltipText","filter","onMouseDown","onTouchStart","getIsResizing","deltaOffset","styles","headStyles"]),b=Ky().onHover;return i.createElement(ob,tb({as:"th",ref:t,sx:{textAlign:a,fontSize:"14px"},position:"relative",padding:[1,2],width:"".concat(s,"px"),onMouseEnter:function(){return b({row:null,column:n})},onMouseLeave:function(){return b()},height:"60px"},y,g,m,{background:y.background}),i.createElement(Se.default,null,r,l&&i.createElement(Te.Z,{position:"absolute",top:1,right:"12px",width:4,height:4},i.createElement(Xe,{align:"bottom",content:l},i.createElement(_e.JO,{color:"nodeBadgeColor",size:"small",name:"information"})))),i.createElement(Te.Z,{sx:{fontWeight:"normal"}},u),i.createElement(ib.Resizer,{onMouseDown:c,onTouchStart:f,getIsResizing:d,deltaOffset:p,background:y.background}))}));var ab={asc:"sort_ascending",desc:"sort_descending",indicator:"sort_indicator"};ib.SortingHeadCell=(0,i.forwardRef)((function(e,t){var n,r=e.children,o=e.onSortClicked,a=e.setSortDirection,s=e.width,l=e.sortDirection,u=e.filter,c=e.align,f=void 0===c?"left":c,d=e.dataGa,p=e["data-testid"],h=e["sortby-testid"],g=e.styles,v=void 0===g?{}:g,m=e.headStyles,y=void 0===m?{}:m,b=e.tooltipText,w=e.coloredSortedColumn,_=nb(e,["children","onSortClicked","setSortDirection","width","sortDirection","filter","align","dataGa","data-testid","sortby-testid","styles","headStyles","tooltipText","coloredSortedColumn"]),x=(0,je.Z)(!1),S=x[0],O=x[2],C=x[3],E=S&&!l,A=(0,i.useCallback)((function(e){e.preventDefault(),null===o||void 0===o||o(e)}),[l,a,o]);return i.createElement(ib.HeadCell,tb({styles:v,align:f,ref:t,"data-testid":p,width:s,tooltipText:b,headStyles:y},_,{filter:u},w&&!!l&&{background:"columnHighlight"}),i.createElement(Te.Z,{onMouseEnter:O,onMouseLeave:C,onClick:A,position:"relative",cursor:"pointer","data-testid":h,"data-ga":"".concat(d,"::click-").concat(l?"ascending":"descending","-column-").concat(_.id)},i.createElement(Se.default,{position:"relative","data-testid":"sorting-cell-children-sorting-arrows-wrapper",gap:1},r,i.createElement(Te.Z,{position:"absolute",top:.5,right:"-16px"},i.createElement(_e.JO,{height:"16px",width:"16px",color:E?"textLite":"text",name:null!==(n=ab[E?"indicator":l])&&void 0!==n?n:null})))))})),ib.Body=(0,i.forwardRef)((function(e,t){var n=e.children,r=nb(e,["children"]);return i.createElement(Te.Z,tb({ref:t,as:"tbody"},r),n)})),ib.Cell=(0,i.forwardRef)((function(e,t){var n=e.align,r=void 0===n?"left":n,o=e.cellHeight,a=void 0===o?"65px":o,s=e.children,l=e.index,u=e.isRowHovering,c=e.meta,f=e.onClick,d=e.tableMeta,p=e.width,h=e.row,g=e.cell,v=nb(e,["align","cellHeight","children","index","isRowHovering","meta","onClick","tableMeta","width","row","cell"]);return i.createElement(Te.Z,tb({as:"td",onClick:function(e){e.persist(),v.stopPropagation&&e.stopPropagation(),null===f||void 0===f||f()},padding:[1,2],ref:t,sx:{textAlign:r},width:"".concat(p,"px")},v,{background:!v.background&&u?"tableRowBgHover":v.background||(l%2===0?"mainBackground":"tableRowBg"),backgroundOpacity:u?v.backgroundOpacity?.8:1:v.backgroundOpacity||.7,height:a},null===d||void 0===d?void 0:d.cellStyles,null===d||void 0===d?void 0:d.pinnedStyles,null===d||void 0===d?void 0:d.styles,null===c||void 0===c?void 0:c.cellStyles,null===c||void 0===c?void 0:c.pinnedStyles,null===c||void 0===c?void 0:c.styles),s,g.getIsGrouped()&&h.getCanExpand()&&i.createElement(Se.default,{cursor:"pointer",role:"button",padding:[1],gap:1,onClick:function(e){h.getToggleExpandedHandler()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))}},i.createElement(He.Text,{fontSize:"10px",color:"textLite"},"Expand"),i.createElement(_e.JO,{name:"chevron_down",width:"12px",height:"12px",color:"selected",rotate:h.getIsExpanded()?2:null})))})),ib.Row=(0,i.forwardRef)((function(e,t){var n=e.children,r=e.onClick,o=e.disableClickRow,a=e.onMouseEnter,s=e.onMouseLeave,l=nb(e,["children","onClick","disableClickRow","onMouseEnter","onMouseLeave"]),u=o&&o(),c=!u&&void 0!==r?"pointer":"intial";return i.createElement(Te.Z,tb({onMouseEnter:function(e){null===a||void 0===a||a(e)},onMouseLeave:function(e){null===s||void 0===s||s(e)},as:rb,cursor:c,isClickable:!!r,onClick:function(e){u||(e.persist(),e.stopPropagation(),null===r||void 0===r||r())},ref:t},l),n)}));var sb,lb,ub=ib;var cb=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(r){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),fb=Math.abs,db=String.fromCharCode,pb=Object.assign;function hb(e){return e.trim()}function gb(e,t,n){return e.replace(t,n)}function vb(e,t){return e.indexOf(t)}function mb(e,t){return 0|e.charCodeAt(t)}function yb(e,t,n){return e.slice(t,n)}function bb(e){return e.length}function wb(e){return e.length}function _b(e,t){return t.push(e),e}var xb=1,Sb=1,Ob=0,Cb=0,Eb=0,Ab="";function kb(e,t,n,r,o,i,a){return{value:e,root:t,parent:n,type:r,props:o,children:i,line:xb,column:Sb,length:a,return:""}}function Mb(e,t){return pb(kb("",null,null,"",null,null,0),e,{length:-e.length},t)}function Pb(){return Eb=Cb>0?mb(Ab,--Cb):0,Sb--,10===Eb&&(Sb=1,xb--),Eb}function Rb(){return Eb=Cb<Ob?mb(Ab,Cb++):0,Sb++,10===Eb&&(Sb=1,xb++),Eb}function Tb(){return mb(Ab,Cb)}function Ib(){return Cb}function Bb(e,t){return yb(Ab,e,t)}function jb(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Db(e){return xb=Sb=1,Ob=bb(Ab=e),Cb=0,[]}function Lb(e){return Ab="",e}function Zb(e){return hb(Bb(Cb-1,Hb(91===e?e+2:40===e?e+1:e)))}function Nb(e){for(;(Eb=Tb())&&Eb<33;)Rb();return jb(e)>2||jb(Eb)>3?"":" "}function Fb(e,t){for(;--t&&Rb()&&!(Eb<48||Eb>102||Eb>57&&Eb<65||Eb>70&&Eb<97););return Bb(e,Ib()+(t<6&&32==Tb()&&32==Rb()))}function Hb(e){for(;Rb();)switch(Eb){case e:return Cb;case 34:case 39:34!==e&&39!==e&&Hb(Eb);break;case 40:41===e&&Hb(e);break;case 92:Rb()}return Cb}function Vb(e,t){for(;Rb()&&e+Eb!==57&&(e+Eb!==84||47!==Tb()););return"/*"+Bb(t,Cb-1)+"*"+db(47===e?e:Rb())}function zb(e){for(;!jb(Tb());)Rb();return Bb(e,Cb)}var Ub="-ms-",Gb="-moz-",Wb="-webkit-",qb="comm",$b="rule",Yb="decl",Xb="@keyframes";function Kb(e,t){for(var n="",r=wb(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function Jb(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Yb:return e.return=e.return||e.value;case qb:return"";case Xb:return e.return=e.value+"{"+Kb(e.children,r)+"}";case $b:e.value=e.props.join(",")}return bb(n=Kb(e.children,r))?e.return=e.value+"{"+n+"}":""}function Qb(e){return Lb(ew("",null,null,null,[""],e=Db(e),0,[0],e))}function ew(e,t,n,r,o,i,a,s,l){for(var u=0,c=0,f=a,d=0,p=0,h=0,g=1,v=1,m=1,y=0,b="",w=o,_=i,x=r,S=b;v;)switch(h=y,y=Rb()){case 40:if(108!=h&&58==mb(S,f-1)){-1!=vb(S+=gb(Zb(y),"&","&\f"),"&\f")&&(m=-1);break}case 34:case 39:case 91:S+=Zb(y);break;case 9:case 10:case 13:case 32:S+=Nb(h);break;case 92:S+=Fb(Ib()-1,7);continue;case 47:switch(Tb()){case 42:case 47:_b(nw(Vb(Rb(),Ib()),t,n),l);break;default:S+="/"}break;case 123*g:s[u++]=bb(S)*m;case 125*g:case 59:case 0:switch(y){case 0:case 125:v=0;case 59+c:-1==m&&(S=gb(S,/\f/g,"")),p>0&&bb(S)-f&&_b(p>32?rw(S+";",r,n,f-1):rw(gb(S," ","")+";",r,n,f-2),l);break;case 59:S+=";";default:if(_b(x=tw(S,t,n,u,c,o,s,b,w=[],_=[],f),i),123===y)if(0===c)ew(S,t,x,x,w,i,f,s,_);else switch(99===d&&110===mb(S,3)?100:d){case 100:case 108:case 109:case 115:ew(e,x,x,r&&_b(tw(e,x,x,0,0,o,s,b,o,w=[],f),_),o,_,f,s,r?w:_);break;default:ew(S,x,x,x,[""],_,0,s,_)}}u=c=p=0,g=m=1,b=S="",f=a;break;case 58:f=1+bb(S),p=h;default:if(g<1)if(123==y)--g;else if(125==y&&0==g++&&125==Pb())continue;switch(S+=db(y),y*g){case 38:m=c>0?1:(S+="\f",-1);break;case 44:s[u++]=(bb(S)-1)*m,m=1;break;case 64:45===Tb()&&(S+=Zb(Rb())),d=Tb(),c=f=bb(b=S+=zb(Ib())),y++;break;case 45:45===h&&2==bb(S)&&(g=0)}}return i}function tw(e,t,n,r,o,i,a,s,l,u,c){for(var f=o-1,d=0===o?i:[""],p=wb(d),h=0,g=0,v=0;h<r;++h)for(var m=0,y=yb(e,f+1,f=fb(g=a[h])),b=e;m<p;++m)(b=hb(g>0?d[m]+" "+y:gb(y,/&\f/g,d[m])))&&(l[v++]=b);return kb(e,t,n,0===o?$b:s,l,u,c)}function nw(e,t,n){return kb(e,t,n,qb,db(Eb),yb(e,2,-2),0)}function rw(e,t,n,r){return kb(e,t,n,Yb,yb(e,0,r),yb(e,r+1,-1),r)}var ow=function(e,t,n){for(var r=0,o=0;r=o,o=Tb(),38===r&&12===o&&(t[n]=1),!jb(o);)Rb();return Bb(e,Cb)},iw=function(e,t){return Lb(function(e,t){var n=-1,r=44;do{switch(jb(r)){case 0:38===r&&12===Tb()&&(t[n]=1),e[n]+=ow(Cb-1,t,n);break;case 2:e[n]+=Zb(r);break;case 4:if(44===r){e[++n]=58===Tb()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=db(r)}}while(r=Rb());return e}(Db(e),t))},aw=new WeakMap,sw=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||aw.get(n))&&!r){aw.set(e,!0);for(var o=[],i=iw(t,o),a=n.props,s=0,l=0;s<i.length;s++)for(var u=0;u<a.length;u++,l++)e.props[l]=o[s]?i[s].replace(/&\f/g,a[u]):a[u]+" "+i[s]}}},lw=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function uw(e,t){switch(function(e,t){return 45^mb(e,0)?(((t<<2^mb(e,0))<<2^mb(e,1))<<2^mb(e,2))<<2^mb(e,3):0}(e,t)){case 5103:return Wb+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Wb+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Wb+e+Gb+e+Ub+e+e;case 6828:case 4268:return Wb+e+Ub+e+e;case 6165:return Wb+e+Ub+"flex-"+e+e;case 5187:return Wb+e+gb(e,/(\w+).+(:[^]+)/,Wb+"box-$1$2"+Ub+"flex-$1$2")+e;case 5443:return Wb+e+Ub+"flex-item-"+gb(e,/flex-|-self/,"")+e;case 4675:return Wb+e+Ub+"flex-line-pack"+gb(e,/align-content|flex-|-self/,"")+e;case 5548:return Wb+e+Ub+gb(e,"shrink","negative")+e;case 5292:return Wb+e+Ub+gb(e,"basis","preferred-size")+e;case 6060:return Wb+"box-"+gb(e,"-grow","")+Wb+e+Ub+gb(e,"grow","positive")+e;case 4554:return Wb+gb(e,/([^-])(transform)/g,"$1"+Wb+"$2")+e;case 6187:return gb(gb(gb(e,/(zoom-|grab)/,Wb+"$1"),/(image-set)/,Wb+"$1"),e,"")+e;case 5495:case 3959:return gb(e,/(image-set\([^]*)/,Wb+"$1$`$1");case 4968:return gb(gb(e,/(.+:)(flex-)?(.*)/,Wb+"box-pack:$3"+Ub+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Wb+e+e;case 4095:case 3583:case 4068:case 2532:return gb(e,/(.+)-inline(.+)/,Wb+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(bb(e)-1-t>6)switch(mb(e,t+1)){case 109:if(45!==mb(e,t+4))break;case 102:return gb(e,/(.+:)(.+)-([^]+)/,"$1"+Wb+"$2-$3$1"+Gb+(108==mb(e,t+3)?"$3":"$2-$3"))+e;case 115:return~vb(e,"stretch")?uw(gb(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==mb(e,t+1))break;case 6444:switch(mb(e,bb(e)-3-(~vb(e,"!important")&&10))){case 107:return gb(e,":",":"+Wb)+e;case 101:return gb(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Wb+(45===mb(e,14)?"inline-":"")+"box$3$1"+Wb+"$2$3$1"+Ub+"$2box$3")+e}break;case 5936:switch(mb(e,t+11)){case 114:return Wb+e+Ub+gb(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Wb+e+Ub+gb(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Wb+e+Ub+gb(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Wb+e+Ub+e+e}return e}var cw=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Yb:e.return=uw(e.value,e.length);break;case Xb:return Kb([Mb(e,{value:gb(e.value,"@","@"+Wb)})],r);case $b:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return Kb([Mb(e,{props:[gb(t,/:(read-\w+)/,":"+Gb+"$1")]})],r);case"::placeholder":return Kb([Mb(e,{props:[gb(t,/:(plac\w+)/,":"+Wb+"input-$1")]}),Mb(e,{props:[gb(t,/:(plac\w+)/,":"+Gb+"$1")]}),Mb(e,{props:[gb(t,/:(plac\w+)/,Ub+"input-$1")]})],r)}return""}))}}],fw=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||cw;var o,i,a={},s=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)a[t[n]]=!0;s.push(e)}));var l,u,c=[Jb,(u=function(e){l.insert(e)},function(e){e.root||(e=e.return)&&u(e)})],f=function(e){var t=wb(e);return function(n,r,o,i){for(var a="",s=0;s<t;s++)a+=e[s](n,r,o,i)||"";return a}}([sw,lw].concat(r,c));i=function(e,t,n,r){l=n,Kb(Qb(e?e+"{"+t.styles+"}":t.styles),f),r&&(d.inserted[t.name]=!0)};var d={key:t,sheet:new cb({key:t,container:o,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:a,registered:{},insert:i};return d.sheet.hydrate(s),d};var dw=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)};var pw={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},hw=n(45042),gw=/[A-Z]|^ms/g,vw=/_EMO_([^_]+?)_([^]*?)_EMO_/g,mw=function(e){return 45===e.charCodeAt(1)},yw=function(e){return null!=e&&"boolean"!==typeof e},bw=(0,hw.Z)((function(e){return mw(e)?e:e.replace(gw,"-$&").toLowerCase()})),ww=function(e,t){switch(e){case"animation":case"animationName":if("string"===typeof t)return t.replace(vw,(function(e,t,n){return xw={name:t,styles:n,next:xw},t}))}return 1===pw[e]||mw(e)||"number"!==typeof t||0===t?t:t+"px"};function _w(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return xw={name:n.name,styles:n.styles,next:xw},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)xw={name:r.name,styles:r.styles,next:xw},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=_w(e,t,n[o])+";";else for(var i in n){var a=n[i];if("object"!==typeof a)null!=t&&void 0!==t[a]?r+=i+"{"+t[a]+"}":yw(a)&&(r+=bw(i)+":"+ww(i,a)+";");else if(!Array.isArray(a)||"string"!==typeof a[0]||null!=t&&void 0!==t[a[0]]){var s=_w(e,t,a);switch(i){case"animation":case"animationName":r+=bw(i)+":"+s+";";break;default:r+=i+"{"+s+"}"}}else for(var l=0;l<a.length;l++)yw(a[l])&&(r+=bw(i)+":"+ww(i,a[l])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=xw,i=n(e);return xw=o,_w(e,t,i)}}if(null==t)return n;var a=t[n];return void 0!==a?a:n}var xw,Sw=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var Ow=function(e,t,n){if(1===e.length&&"object"===typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";xw=void 0;var i=e[0];null==i||void 0===i.raw?(r=!1,o+=_w(n,t,i)):o+=i[0];for(var a=1;a<e.length;a++)o+=_w(n,t,e[a]),r&&(o+=i[a]);Sw.lastIndex=0;for(var s,l="";null!==(s=Sw.exec(o));)l+="-"+s[1];var u=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+l;return{name:u,styles:o,next:xw}},Cw=!!a.useInsertionEffect&&a.useInsertionEffect,Ew=Cw||function(e){return e()},Aw=(Cw||i.useLayoutEffect,{}.hasOwnProperty),kw=i.createContext("undefined"!==typeof HTMLElement?fw({key:"css"}):null);kw.Provider;var Mw=function(e){return(0,i.forwardRef)((function(t,n){var r=(0,i.useContext)(kw);return e(t,r,n)}))};var Pw=i.createContext({});var Rw="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Tw=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return dw(t,n,r),Ew((function(){return function(e,t,n){dw(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}(t,n,r)})),null},Iw=Mw((function(e,t,n){var r=e.css;"string"===typeof r&&void 0!==t.registered[r]&&(r=t.registered[r]);var o=e[Rw],a=[r],s="";"string"===typeof e.className?s=function(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}(t.registered,a,e.className):null!=e.className&&(s=e.className+" ");var l=Ow(a,void 0,i.useContext(Pw));s+=t.key+"-"+l.name;var u={};for(var c in e)Aw.call(e,c)&&"css"!==c&&c!==Rw&&(u[c]=e[c]);return u.ref=n,u.className=s,i.createElement(i.Fragment,null,i.createElement(Tw,{cache:t,serialized:l,isStringTag:"string"===typeof o}),i.createElement(o,u))}));var Bw=Iw,jw=function(e,t){var n=arguments;if(null==t||!Aw.call(t,"css"))return i.createElement.apply(void 0,n);var r=n.length,o=new Array(r);o[0]=Bw,o[1]=function(e,t){var n={};for(var r in t)Aw.call(t,r)&&(n[r]=t[r]);return n[Rw]=e,n}(e,t);for(var a=2;a<r;a++)o[a]=n[a];return i.createElement.apply(null,o)};function Dw(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return Ow(t)}var Lw=n(29439),Zw=n(45987),Nw=n(71002);function Fw(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}Math.min,Math.max;const Hw=["top","right","bottom","left"];Hw.reduce(((e,t)=>e.concat(t,t+"-start",t+"-end")),[]);function Vw(e){var t;return(null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function zw(e){return Vw(e).getComputedStyle(e)}function Uw(e){return e instanceof Vw(e).Node}function Gw(e){return Uw(e)?(e.nodeName||"").toLowerCase():""}let Ww;function qw(){if(Ww)return Ww;const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?(Ww=e.brands.map((e=>e.brand+"/"+e.version)).join(" "),Ww):navigator.userAgent}function $w(e){return e instanceof Vw(e).HTMLElement}function Yw(e){return e instanceof Vw(e).Element}function Xw(e){return"undefined"!=typeof ShadowRoot&&(e instanceof Vw(e).ShadowRoot||e instanceof ShadowRoot)}function Kw(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=zw(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function Jw(){return/^((?!chrome|android).)*safari/i.test(qw())}function Qw(e){return["html","body","#document"].includes(Gw(e))}Math.min,Math.max;const e_=Math.round;function t_(e){const t=zw(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=$w(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=e_(n)!==i||e_(r)!==a;return s&&(n=i,r=a),{width:n,height:r,fallback:s}}function n_(e){return Yw(e)?e:e.contextElement}const r_={x:1,y:1};function o_(e){const t=n_(e);if(!$w(t))return r_;const n=t.getBoundingClientRect(),{width:r,height:o,fallback:i}=t_(t);let a=(i?e_(n.width):n.width)/r,s=(i?e_(n.height):n.height)/o;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}function i_(e,t,n,r){var o,i;void 0===t&&(t=!1),void 0===n&&(n=!1);const a=e.getBoundingClientRect(),s=n_(e);let l=r_;t&&(r?Yw(r)&&(l=o_(r)):l=o_(e));const u=s?Vw(s):window,c=Jw()&&n;let f=(a.left+(c&&(null==(o=u.visualViewport)?void 0:o.offsetLeft)||0))/l.x,d=(a.top+(c&&(null==(i=u.visualViewport)?void 0:i.offsetTop)||0))/l.y,p=a.width/l.x,h=a.height/l.y;if(s){const e=Vw(s),t=r&&Yw(r)?Vw(r):r;let n=e.frameElement;for(;n&&r&&t!==e;){const e=o_(n),t=n.getBoundingClientRect(),r=getComputedStyle(n);t.x+=(n.clientLeft+parseFloat(r.paddingLeft))*e.x,t.y+=(n.clientTop+parseFloat(r.paddingTop))*e.y,f*=e.x,d*=e.y,p*=e.x,h*=e.y,f+=t.x,d+=t.y,n=Vw(n).frameElement}}return Fw({width:p,height:h,x:f,y:d})}function a_(e){return((Uw(e)?e.ownerDocument:e.document)||window.document).documentElement}function s_(e){if("html"===Gw(e))return e;const t=e.assignedSlot||e.parentNode||Xw(e)&&e.host||a_(e);return Xw(t)?t.host:t}function l_(e){const t=s_(e);return Qw(t)?t.ownerDocument.body:$w(t)&&Kw(t)?t:l_(t)}function u_(e,t){var n;void 0===t&&(t=[]);const r=l_(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=Vw(r);return o?t.concat(i,i.visualViewport||[],Kw(r)?r:[]):t.concat(r,u_(r))}var c_=i.useLayoutEffect,f_=["className","clearValue","cx","getStyles","getClassNames","getValue","hasValue","isMulti","isRtl","options","selectOption","selectProps","setValue","theme"],d_=function(){};function p_(e,t){return t?"-"===t[0]?e+t:e+"__"+t:e}function h_(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];var i=[].concat(r);if(t&&e)for(var a in t)t.hasOwnProperty(a)&&t[a]&&i.push("".concat(p_(e,a)));return i.filter((function(e){return e})).map((function(e){return String(e).trim()})).join(" ")}var g_=function(e){return t=e,Array.isArray(t)?e.filter(Boolean):"object"===(0,Nw.Z)(e)&&null!==e?[e]:[];var t},v_=function(e){return e.className,e.clearValue,e.cx,e.getStyles,e.getClassNames,e.getValue,e.hasValue,e.isMulti,e.isRtl,e.options,e.selectOption,e.selectProps,e.setValue,e.theme,mu({},(0,Zw.Z)(e,f_))},m_=function(e,t,n){var r=e.cx,o=e.getStyles,i=e.getClassNames,a=e.className;return{css:o(t,e),className:r(null!==n&&void 0!==n?n:{},i(t,e),a)}};function y_(e){return[document.documentElement,document.body,window].indexOf(e)>-1}function b_(e){return y_(e)?window.pageYOffset:e.scrollTop}function w_(e,t){y_(e)?window.scrollTo(0,t):e.scrollTop=t}function __(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:d_,o=b_(e),i=t-o,a=0;!function t(){var s=function(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}(a+=10,o,i,n);w_(e,s),a<n?window.requestAnimationFrame(t):r(e)}()}function x_(e,t){var n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=t.offsetHeight/3;r.bottom+o>n.bottom?w_(e,Math.min(t.offsetTop+t.clientHeight-e.offsetHeight+o,e.scrollHeight)):r.top-o<n.top&&w_(e,Math.max(t.offsetTop-o,0))}function S_(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}}var O_=!1,C_={get passive(){return O_=!0}},E_="undefined"!==typeof window?window:{};E_.addEventListener&&E_.removeEventListener&&(E_.addEventListener("p",d_,C_),E_.removeEventListener("p",d_,!1));var A_=O_;function k_(e){return null!=e}function M_(e,t,n){return e?t:n}var P_=["children","innerProps"],R_=["children","innerProps"];function T_(e){var t=e.maxHeight,n=e.menuEl,r=e.minHeight,o=e.placement,i=e.shouldScroll,a=e.isFixedPosition,s=e.controlHeight,l=function(e){var t=getComputedStyle(e),n="absolute"===t.position,r=/(auto|scroll)/;if("fixed"===t.position)return document.documentElement;for(var o=e;o=o.parentElement;)if(t=getComputedStyle(o),(!n||"static"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return o;return document.documentElement}(n),u={placement:"bottom",maxHeight:t};if(!n||!n.offsetParent)return u;var c,f=l.getBoundingClientRect().height,d=n.getBoundingClientRect(),p=d.bottom,h=d.height,g=d.top,v=n.offsetParent.getBoundingClientRect().top,m=a?window.innerHeight:y_(c=l)?window.innerHeight:c.clientHeight,y=b_(l),b=parseInt(getComputedStyle(n).marginBottom,10),w=parseInt(getComputedStyle(n).marginTop,10),_=v-w,x=m-g,S=_+y,O=f-y-g,C=p-m+y+b,E=y+g-w,A=160;switch(o){case"auto":case"bottom":if(x>=h)return{placement:"bottom",maxHeight:t};if(O>=h&&!a)return i&&__(l,C,A),{placement:"bottom",maxHeight:t};if(!a&&O>=r||a&&x>=r)return i&&__(l,C,A),{placement:"bottom",maxHeight:a?x-b:O-b};if("auto"===o||a){var k=t,M=a?_:S;return M>=r&&(k=Math.min(M-b-s,t)),{placement:"top",maxHeight:k}}if("bottom"===o)return i&&w_(l,C),{placement:"bottom",maxHeight:t};break;case"top":if(_>=h)return{placement:"top",maxHeight:t};if(S>=h&&!a)return i&&__(l,E,A),{placement:"top",maxHeight:t};if(!a&&S>=r||a&&_>=r){var P=t;return(!a&&S>=r||a&&_>=r)&&(P=a?_-w:S-w),i&&__(l,E,A),{placement:"top",maxHeight:P}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return u}var I_,B_=function(e){return"auto"===e?"bottom":e},j_=(0,i.createContext)(null),D_=function(e){var t=e.children,n=e.minMenuHeight,r=e.maxMenuHeight,o=e.menuPlacement,a=e.menuPosition,s=e.menuShouldScrollIntoView,l=e.theme,u=((0,i.useContext)(j_)||{}).setPortalPlacement,c=(0,i.useRef)(null),f=(0,i.useState)(r),d=(0,Lw.Z)(f,2),p=d[0],h=d[1],g=(0,i.useState)(null),v=(0,Lw.Z)(g,2),m=v[0],y=v[1],b=l.spacing.controlHeight;return c_((function(){var e=c.current;if(e){var t="fixed"===a,i=T_({maxHeight:r,menuEl:e,minHeight:n,placement:o,shouldScroll:s&&!t,isFixedPosition:t,controlHeight:b});h(i.maxHeight),y(i.placement),null===u||void 0===u||u(i.placement)}}),[r,o,a,s,n,u,b]),t({ref:c,placerProps:mu(mu({},e),{},{placement:m||B_(o),maxHeight:p})})},L_=function(e){var t=e.children,n=e.innerRef,r=e.innerProps;return jw("div",(0,l.Z)({},m_(e,"menu",{menu:!0}),{ref:n},r),t)},Z_=function(e,t){var n=e.theme,r=n.spacing.baseUnit,o=n.colors;return mu({textAlign:"center"},t?{}:{color:o.neutral40,padding:"".concat(2*r,"px ").concat(3*r,"px")})},N_=Z_,F_=Z_,H_=["size"],V_=["innerProps","isRtl","size"];var z_,U_,G_={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},W_=function(e){var t=e.size,n=(0,Zw.Z)(e,H_);return jw("svg",(0,l.Z)({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:G_},n))},q_=function(e){return jw(W_,(0,l.Z)({size:20},e),jw("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},$_=function(e){return jw(W_,(0,l.Z)({size:20},e),jw("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},Y_=function(e,t){var n=e.isFocused,r=e.theme,o=r.spacing.baseUnit,i=r.colors;return mu({label:"indicatorContainer",display:"flex",transition:"color 150ms"},t?{}:{color:n?i.neutral60:i.neutral20,padding:2*o,":hover":{color:n?i.neutral80:i.neutral40}})},X_=Y_,K_=Y_,J_=function(){var e=Dw.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}(I_||(z_=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],U_||(U_=z_.slice(0)),I_=Object.freeze(Object.defineProperties(z_,{raw:{value:Object.freeze(U_)}})))),Q_=function(e){var t=e.delay,n=e.offset;return jw("span",{css:Dw({animation:"".concat(J_," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":void 0,height:"1em",verticalAlign:"top",width:"1em"},"","")})},ex=function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,o=e.innerRef,i=e.innerProps,a=e.menuIsOpen;return jw("div",(0,l.Z)({ref:o},m_(e,"control",{control:!0,"control--is-disabled":n,"control--is-focused":r,"control--menu-is-open":a}),i),t)},tx=["data"],nx=function(e){var t=e.children,n=e.cx,r=e.getStyles,o=e.getClassNames,i=e.Heading,a=e.headingProps,s=e.innerProps,u=e.label,c=e.theme,f=e.selectProps;return jw("div",(0,l.Z)({},m_(e,"group",{group:!0}),s),jw(i,(0,l.Z)({},a,{selectProps:f,theme:c,getStyles:r,getClassNames:o,cx:n}),u),jw("div",null,t))},rx=["innerRef","isDisabled","isHidden","inputClassName"],ox={gridArea:"1 / 2",font:"inherit",minWidth:"2px",border:0,margin:0,outline:0,padding:0},ix={flex:"1 1 auto",display:"inline-grid",gridArea:"1 / 1 / 2 / 3",gridTemplateColumns:"0 min-content","&:after":mu({content:'attr(data-value) " "',visibility:"hidden",whiteSpace:"pre"},ox)},ax=function(e){return mu({label:"input",color:"inherit",background:0,opacity:e?0:1,width:"100%"},ox)},sx=function(e){var t=e.children,n=e.innerProps;return jw("div",n,t)};var lx=function(e){var t=e.children,n=e.components,r=e.data,o=e.innerProps,i=e.isDisabled,a=e.removeProps,s=e.selectProps,l=n.Container,u=n.Label,c=n.Remove;return jw(l,{data:r,innerProps:mu(mu({},m_(e,"multiValue",{"multi-value":!0,"multi-value--is-disabled":i})),o),selectProps:s},jw(u,{data:r,innerProps:mu({},m_(e,"multiValueLabel",{"multi-value__label":!0})),selectProps:s},t),jw(c,{data:r,innerProps:mu(mu({},m_(e,"multiValueRemove",{"multi-value__remove":!0})),{},{"aria-label":"Remove ".concat(t||"option")},a),selectProps:s}))},ux={ClearIndicator:function(e){var t=e.children,n=e.innerProps;return jw("div",(0,l.Z)({},m_(e,"clearIndicator",{indicator:!0,"clear-indicator":!0}),n),t||jw(q_,null))},Control:ex,DropdownIndicator:function(e){var t=e.children,n=e.innerProps;return jw("div",(0,l.Z)({},m_(e,"dropdownIndicator",{indicator:!0,"dropdown-indicator":!0}),n),t||jw($_,null))},DownChevron:$_,CrossIcon:q_,Group:nx,GroupHeading:function(e){var t=v_(e);t.data;var n=(0,Zw.Z)(t,tx);return jw("div",(0,l.Z)({},m_(e,"groupHeading",{"group-heading":!0}),n))},IndicatorsContainer:function(e){var t=e.children,n=e.innerProps;return jw("div",(0,l.Z)({},m_(e,"indicatorsContainer",{indicators:!0}),n),t)},IndicatorSeparator:function(e){var t=e.innerProps;return jw("span",(0,l.Z)({},t,m_(e,"indicatorSeparator",{"indicator-separator":!0})))},Input:function(e){var t=e.cx,n=e.value,r=v_(e),o=r.innerRef,i=r.isDisabled,a=r.isHidden,s=r.inputClassName,u=(0,Zw.Z)(r,rx);return jw("div",(0,l.Z)({},m_(e,"input",{"input-container":!0}),{"data-value":n||""}),jw("input",(0,l.Z)({className:t({input:!0},s),ref:o,style:ax(a),disabled:i},u)))},LoadingIndicator:function(e){var t=e.innerProps,n=e.isRtl,r=e.size,o=void 0===r?4:r,i=(0,Zw.Z)(e,V_);return jw("div",(0,l.Z)({},m_(mu(mu({},i),{},{innerProps:t,isRtl:n,size:o}),"loadingIndicator",{indicator:!0,"loading-indicator":!0}),t),jw(Q_,{delay:0,offset:n}),jw(Q_,{delay:160,offset:!0}),jw(Q_,{delay:320,offset:!n}))},Menu:L_,MenuList:function(e){var t=e.children,n=e.innerProps,r=e.innerRef,o=e.isMulti;return jw("div",(0,l.Z)({},m_(e,"menuList",{"menu-list":!0,"menu-list--is-multi":o}),{ref:r},n),t)},MenuPortal:function(e){var t=e.appendTo,n=e.children,r=e.controlElement,o=e.innerProps,a=e.menuPlacement,s=e.menuPosition,u=(0,i.useRef)(null),c=(0,i.useRef)(null),f=(0,i.useState)(B_(a)),d=(0,Lw.Z)(f,2),p=d[0],h=d[1],g=(0,i.useMemo)((function(){return{setPortalPlacement:h}}),[]),v=(0,i.useState)(null),m=(0,Lw.Z)(v,2),y=m[0],b=m[1],w=(0,i.useCallback)((function(){if(r){var e=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(r),t="fixed"===s?0:window.pageYOffset,n=e[p]+t;n===(null===y||void 0===y?void 0:y.offset)&&e.left===(null===y||void 0===y?void 0:y.rect.left)&&e.width===(null===y||void 0===y?void 0:y.rect.width)||b({offset:n,rect:e})}}),[r,s,p,null===y||void 0===y?void 0:y.offset,null===y||void 0===y?void 0:y.rect.left,null===y||void 0===y?void 0:y.rect.width]);c_((function(){w()}),[w]);var _=(0,i.useCallback)((function(){"function"===typeof c.current&&(c.current(),c.current=null),r&&u.current&&(c.current=function(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:a=!0,animationFrame:s=!1}=r,l=o||i?[...Yw(e)?u_(e):e.contextElement?u_(e.contextElement):[],...u_(t)]:[];l.forEach((e=>{const t=!Yw(e)&&e.toString().includes("V");!o||s&&!t||e.addEventListener("scroll",n,{passive:!0}),i&&e.addEventListener("resize",n)}));let u,c=null;a&&(c=new ResizeObserver((()=>{n()})),Yw(e)&&!s&&c.observe(e),Yw(e)||!e.contextElement||s||c.observe(e.contextElement),c.observe(t));let f=s?i_(e):null;return s&&function t(){const r=i_(e);!f||r.x===f.x&&r.y===f.y&&r.width===f.width&&r.height===f.height||n(),f=r,u=requestAnimationFrame(t)}(),n(),()=>{var e;l.forEach((e=>{o&&e.removeEventListener("scroll",n),i&&e.removeEventListener("resize",n)})),null==(e=c)||e.disconnect(),c=null,s&&cancelAnimationFrame(u)}}(r,u.current,w,{elementResize:"ResizeObserver"in window}))}),[r,w]);c_((function(){_()}),[_]);var x=(0,i.useCallback)((function(e){u.current=e,_()}),[_]);if(!t&&"fixed"!==s||!y)return null;var S=jw("div",(0,l.Z)({ref:x},m_(mu(mu({},e),{},{offset:y.offset,position:s,rect:y.rect}),"menuPortal",{"menu-portal":!0}),o),n);return jw(j_.Provider,{value:g},t?(0,mt.createPortal)(S,t):S)},LoadingMessage:function(e){var t=e.children,n=void 0===t?"Loading...":t,r=e.innerProps,o=(0,Zw.Z)(e,R_);return jw("div",(0,l.Z)({},m_(mu(mu({},o),{},{children:n,innerProps:r}),"loadingMessage",{"menu-notice":!0,"menu-notice--loading":!0}),r),n)},NoOptionsMessage:function(e){var t=e.children,n=void 0===t?"No options":t,r=e.innerProps,o=(0,Zw.Z)(e,P_);return jw("div",(0,l.Z)({},m_(mu(mu({},o),{},{children:n,innerProps:r}),"noOptionsMessage",{"menu-notice":!0,"menu-notice--no-options":!0}),r),n)},MultiValue:lx,MultiValueContainer:sx,MultiValueLabel:sx,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return jw("div",(0,l.Z)({role:"button"},n),t||jw(q_,{size:14}))},Option:function(e){var t=e.children,n=e.isDisabled,r=e.isFocused,o=e.isSelected,i=e.innerRef,a=e.innerProps;return jw("div",(0,l.Z)({},m_(e,"option",{option:!0,"option--is-disabled":n,"option--is-focused":r,"option--is-selected":o}),{ref:i,"aria-disabled":n},a),t)},Placeholder:function(e){var t=e.children,n=e.innerProps;return jw("div",(0,l.Z)({},m_(e,"placeholder",{placeholder:!0}),n),t)},SelectContainer:function(e){var t=e.children,n=e.innerProps,r=e.isDisabled,o=e.isRtl;return jw("div",(0,l.Z)({},m_(e,"container",{"--is-disabled":r,"--is-rtl":o}),n),t)},SingleValue:function(e){var t=e.children,n=e.isDisabled,r=e.innerProps;return jw("div",(0,l.Z)({},m_(e,"singleValue",{"single-value":!0,"single-value--is-disabled":n}),r),t)},ValueContainer:function(e){var t=e.children,n=e.innerProps,r=e.isMulti,o=e.hasValue;return jw("div",(0,l.Z)({},m_(e,"valueContainer",{"value-container":!0,"value-container--is-multi":r,"value-container--has-value":o}),n),t)}},cx=["defaultInputValue","defaultMenuIsOpen","defaultValue","inputValue","menuIsOpen","onChange","onInputChange","onMenuClose","onMenuOpen","value"];var fx=n(15671),dx=n(43144),px=n(60136),hx=n(29388),gx=n(93433),vx=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function mx(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],o=t[n],!(r===o||vx(r)&&vx(o)))return!1;var r,o;return!0}for(var yx={name:"7pg0cj-a11yText",styles:"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap"},bx=function(e){return jw("span",(0,l.Z)({css:yx},e))},wx={guidance:function(e){var t=e.isSearchable,n=e.isMulti,r=e.isDisabled,o=e.tabSelectsValue;switch(e.context){case"menu":return"Use Up and Down to choose options".concat(r?"":", press Enter to select the currently focused option",", press Escape to exit the menu").concat(o?", press Tab to select the option and exit the menu":"",".");case"input":return"".concat(e["aria-label"]||"Select"," is focused ").concat(t?",type to refine list":"",", press Down to open the menu, ").concat(n?" press left to focus selected values":"");case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value";default:return""}},onChange:function(e){var t=e.action,n=e.label,r=void 0===n?"":n,o=e.labels,i=e.isDisabled;switch(t){case"deselect-option":case"pop-value":case"remove-value":return"option ".concat(r,", deselected.");case"clear":return"All selected options have been cleared.";case"initial-input-focus":return"option".concat(o.length>1?"s":""," ").concat(o.join(","),", selected.");case"select-option":return"option ".concat(r,i?" is disabled. Select another option.":", selected.");default:return""}},onFocus:function(e){var t=e.context,n=e.focused,r=e.options,o=e.label,i=void 0===o?"":o,a=e.selectValue,s=e.isDisabled,l=e.isSelected,u=function(e,t){return e&&e.length?"".concat(e.indexOf(t)+1," of ").concat(e.length):""};if("value"===t&&a)return"value ".concat(i," focused, ").concat(u(a,n),".");if("menu"===t){var c=s?" disabled":"",f="".concat(l?"selected":"focused").concat(c);return"option ".concat(i," ").concat(f,", ").concat(u(r,n),".")}return""},onFilter:function(e){var t=e.inputValue,n=e.resultsMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}},_x=function(e){var t=e.ariaSelection,n=e.focusedOption,r=e.focusedValue,o=e.focusableOptions,a=e.isFocused,s=e.selectValue,l=e.selectProps,u=e.id,c=l.ariaLiveMessages,f=l.getOptionLabel,d=l.inputValue,p=l.isMulti,h=l.isOptionDisabled,g=l.isSearchable,v=l.menuIsOpen,m=l.options,y=l.screenReaderStatus,b=l.tabSelectsValue,w=l["aria-label"],_=l["aria-live"],x=(0,i.useMemo)((function(){return mu(mu({},wx),c||{})}),[c]),S=(0,i.useMemo)((function(){var e,n="";if(t&&x.onChange){var r=t.option,o=t.options,i=t.removedValue,a=t.removedValues,l=t.value,u=i||r||(e=l,Array.isArray(e)?null:e),c=u?f(u):"",d=o||a||void 0,p=d?d.map(f):[],g=mu({isDisabled:u&&h(u,s),label:c,labels:p},t);n=x.onChange(g)}return n}),[t,x,h,s,f]),O=(0,i.useMemo)((function(){var e="",t=n||r,i=!!(n&&s&&s.includes(n));if(t&&x.onFocus){var a={focused:t,label:f(t),isDisabled:h(t,s),isSelected:i,options:o,context:t===n?"menu":"value",selectValue:s};e=x.onFocus(a)}return e}),[n,r,f,h,x,o,s]),C=(0,i.useMemo)((function(){var e="";if(v&&m.length&&x.onFilter){var t=y({count:o.length});e=x.onFilter({inputValue:d,resultsMessage:t})}return e}),[o,d,v,x,m,y]),E=(0,i.useMemo)((function(){var e="";if(x.guidance){var t=r?"value":v?"menu":"input";e=x.guidance({"aria-label":w,context:t,isDisabled:n&&h(n,s),isMulti:p,isSearchable:g,tabSelectsValue:b})}return e}),[w,n,r,p,h,g,v,x,s,b]),A="".concat(O," ").concat(C," ").concat(E),k=jw(i.Fragment,null,jw("span",{id:"aria-selection"},S),jw("span",{id:"aria-context"},A)),M="initial-input-focus"===(null===t||void 0===t?void 0:t.action);return jw(i.Fragment,null,jw(bx,{id:u},M&&k),jw(bx,{"aria-live":_,"aria-atomic":"false","aria-relevant":"additions text"},a&&!M&&k))},xx=[{base:"A",letters:"A\u24b6\uff21\xc0\xc1\xc2\u1ea6\u1ea4\u1eaa\u1ea8\xc3\u0100\u0102\u1eb0\u1eae\u1eb4\u1eb2\u0226\u01e0\xc4\u01de\u1ea2\xc5\u01fa\u01cd\u0200\u0202\u1ea0\u1eac\u1eb6\u1e00\u0104\u023a\u2c6f"},{base:"AA",letters:"\ua732"},{base:"AE",letters:"\xc6\u01fc\u01e2"},{base:"AO",letters:"\ua734"},{base:"AU",letters:"\ua736"},{base:"AV",letters:"\ua738\ua73a"},{base:"AY",letters:"\ua73c"},{base:"B",letters:"B\u24b7\uff22\u1e02\u1e04\u1e06\u0243\u0182\u0181"},{base:"C",letters:"C\u24b8\uff23\u0106\u0108\u010a\u010c\xc7\u1e08\u0187\u023b\ua73e"},{base:"D",letters:"D\u24b9\uff24\u1e0a\u010e\u1e0c\u1e10\u1e12\u1e0e\u0110\u018b\u018a\u0189\ua779"},{base:"DZ",letters:"\u01f1\u01c4"},{base:"Dz",letters:"\u01f2\u01c5"},{base:"E",letters:"E\u24ba\uff25\xc8\xc9\xca\u1ec0\u1ebe\u1ec4\u1ec2\u1ebc\u0112\u1e14\u1e16\u0114\u0116\xcb\u1eba\u011a\u0204\u0206\u1eb8\u1ec6\u0228\u1e1c\u0118\u1e18\u1e1a\u0190\u018e"},{base:"F",letters:"F\u24bb\uff26\u1e1e\u0191\ua77b"},{base:"G",letters:"G\u24bc\uff27\u01f4\u011c\u1e20\u011e\u0120\u01e6\u0122\u01e4\u0193\ua7a0\ua77d\ua77e"},{base:"H",letters:"H\u24bd\uff28\u0124\u1e22\u1e26\u021e\u1e24\u1e28\u1e2a\u0126\u2c67\u2c75\ua78d"},{base:"I",letters:"I\u24be\uff29\xcc\xcd\xce\u0128\u012a\u012c\u0130\xcf\u1e2e\u1ec8\u01cf\u0208\u020a\u1eca\u012e\u1e2c\u0197"},{base:"J",letters:"J\u24bf\uff2a\u0134\u0248"},{base:"K",letters:"K\u24c0\uff2b\u1e30\u01e8\u1e32\u0136\u1e34\u0198\u2c69\ua740\ua742\ua744\ua7a2"},{base:"L",letters:"L\u24c1\uff2c\u013f\u0139\u013d\u1e36\u1e38\u013b\u1e3c\u1e3a\u0141\u023d\u2c62\u2c60\ua748\ua746\ua780"},{base:"LJ",letters:"\u01c7"},{base:"Lj",letters:"\u01c8"},{base:"M",letters:"M\u24c2\uff2d\u1e3e\u1e40\u1e42\u2c6e\u019c"},{base:"N",letters:"N\u24c3\uff2e\u01f8\u0143\xd1\u1e44\u0147\u1e46\u0145\u1e4a\u1e48\u0220\u019d\ua790\ua7a4"},{base:"NJ",letters:"\u01ca"},{base:"Nj",letters:"\u01cb"},{base:"O",letters:"O\u24c4\uff2f\xd2\xd3\xd4\u1ed2\u1ed0\u1ed6\u1ed4\xd5\u1e4c\u022c\u1e4e\u014c\u1e50\u1e52\u014e\u022e\u0230\xd6\u022a\u1ece\u0150\u01d1\u020c\u020e\u01a0\u1edc\u1eda\u1ee0\u1ede\u1ee2\u1ecc\u1ed8\u01ea\u01ec\xd8\u01fe\u0186\u019f\ua74a\ua74c"},{base:"OI",letters:"\u01a2"},{base:"OO",letters:"\ua74e"},{base:"OU",letters:"\u0222"},{base:"P",letters:"P\u24c5\uff30\u1e54\u1e56\u01a4\u2c63\ua750\ua752\ua754"},{base:"Q",letters:"Q\u24c6\uff31\ua756\ua758\u024a"},{base:"R",letters:"R\u24c7\uff32\u0154\u1e58\u0158\u0210\u0212\u1e5a\u1e5c\u0156\u1e5e\u024c\u2c64\ua75a\ua7a6\ua782"},{base:"S",letters:"S\u24c8\uff33\u1e9e\u015a\u1e64\u015c\u1e60\u0160\u1e66\u1e62\u1e68\u0218\u015e\u2c7e\ua7a8\ua784"},{base:"T",letters:"T\u24c9\uff34\u1e6a\u0164\u1e6c\u021a\u0162\u1e70\u1e6e\u0166\u01ac\u01ae\u023e\ua786"},{base:"TZ",letters:"\ua728"},{base:"U",letters:"U\u24ca\uff35\xd9\xda\xdb\u0168\u1e78\u016a\u1e7a\u016c\xdc\u01db\u01d7\u01d5\u01d9\u1ee6\u016e\u0170\u01d3\u0214\u0216\u01af\u1eea\u1ee8\u1eee\u1eec\u1ef0\u1ee4\u1e72\u0172\u1e76\u1e74\u0244"},{base:"V",letters:"V\u24cb\uff36\u1e7c\u1e7e\u01b2\ua75e\u0245"},{base:"VY",letters:"\ua760"},{base:"W",letters:"W\u24cc\uff37\u1e80\u1e82\u0174\u1e86\u1e84\u1e88\u2c72"},{base:"X",letters:"X\u24cd\uff38\u1e8a\u1e8c"},{base:"Y",letters:"Y\u24ce\uff39\u1ef2\xdd\u0176\u1ef8\u0232\u1e8e\u0178\u1ef6\u1ef4\u01b3\u024e\u1efe"},{base:"Z",letters:"Z\u24cf\uff3a\u0179\u1e90\u017b\u017d\u1e92\u1e94\u01b5\u0224\u2c7f\u2c6b\ua762"},{base:"a",letters:"a\u24d0\uff41\u1e9a\xe0\xe1\xe2\u1ea7\u1ea5\u1eab\u1ea9\xe3\u0101\u0103\u1eb1\u1eaf\u1eb5\u1eb3\u0227\u01e1\xe4\u01df\u1ea3\xe5\u01fb\u01ce\u0201\u0203\u1ea1\u1ead\u1eb7\u1e01\u0105\u2c65\u0250"},{base:"aa",letters:"\ua733"},{base:"ae",letters:"\xe6\u01fd\u01e3"},{base:"ao",letters:"\ua735"},{base:"au",letters:"\ua737"},{base:"av",letters:"\ua739\ua73b"},{base:"ay",letters:"\ua73d"},{base:"b",letters:"b\u24d1\uff42\u1e03\u1e05\u1e07\u0180\u0183\u0253"},{base:"c",letters:"c\u24d2\uff43\u0107\u0109\u010b\u010d\xe7\u1e09\u0188\u023c\ua73f\u2184"},{base:"d",letters:"d\u24d3\uff44\u1e0b\u010f\u1e0d\u1e11\u1e13\u1e0f\u0111\u018c\u0256\u0257\ua77a"},{base:"dz",letters:"\u01f3\u01c6"},{base:"e",letters:"e\u24d4\uff45\xe8\xe9\xea\u1ec1\u1ebf\u1ec5\u1ec3\u1ebd\u0113\u1e15\u1e17\u0115\u0117\xeb\u1ebb\u011b\u0205\u0207\u1eb9\u1ec7\u0229\u1e1d\u0119\u1e19\u1e1b\u0247\u025b\u01dd"},{base:"f",letters:"f\u24d5\uff46\u1e1f\u0192\ua77c"},{base:"g",letters:"g\u24d6\uff47\u01f5\u011d\u1e21\u011f\u0121\u01e7\u0123\u01e5\u0260\ua7a1\u1d79\ua77f"},{base:"h",letters:"h\u24d7\uff48\u0125\u1e23\u1e27\u021f\u1e25\u1e29\u1e2b\u1e96\u0127\u2c68\u2c76\u0265"},{base:"hv",letters:"\u0195"},{base:"i",letters:"i\u24d8\uff49\xec\xed\xee\u0129\u012b\u012d\xef\u1e2f\u1ec9\u01d0\u0209\u020b\u1ecb\u012f\u1e2d\u0268\u0131"},{base:"j",letters:"j\u24d9\uff4a\u0135\u01f0\u0249"},{base:"k",letters:"k\u24da\uff4b\u1e31\u01e9\u1e33\u0137\u1e35\u0199\u2c6a\ua741\ua743\ua745\ua7a3"},{base:"l",letters:"l\u24db\uff4c\u0140\u013a\u013e\u1e37\u1e39\u013c\u1e3d\u1e3b\u017f\u0142\u019a\u026b\u2c61\ua749\ua781\ua747"},{base:"lj",letters:"\u01c9"},{base:"m",letters:"m\u24dc\uff4d\u1e3f\u1e41\u1e43\u0271\u026f"},{base:"n",letters:"n\u24dd\uff4e\u01f9\u0144\xf1\u1e45\u0148\u1e47\u0146\u1e4b\u1e49\u019e\u0272\u0149\ua791\ua7a5"},{base:"nj",letters:"\u01cc"},{base:"o",letters:"o\u24de\uff4f\xf2\xf3\xf4\u1ed3\u1ed1\u1ed7\u1ed5\xf5\u1e4d\u022d\u1e4f\u014d\u1e51\u1e53\u014f\u022f\u0231\xf6\u022b\u1ecf\u0151\u01d2\u020d\u020f\u01a1\u1edd\u1edb\u1ee1\u1edf\u1ee3\u1ecd\u1ed9\u01eb\u01ed\xf8\u01ff\u0254\ua74b\ua74d\u0275"},{base:"oi",letters:"\u01a3"},{base:"ou",letters:"\u0223"},{base:"oo",letters:"\ua74f"},{base:"p",letters:"p\u24df\uff50\u1e55\u1e57\u01a5\u1d7d\ua751\ua753\ua755"},{base:"q",letters:"q\u24e0\uff51\u024b\ua757\ua759"},{base:"r",letters:"r\u24e1\uff52\u0155\u1e59\u0159\u0211\u0213\u1e5b\u1e5d\u0157\u1e5f\u024d\u027d\ua75b\ua7a7\ua783"},{base:"s",letters:"s\u24e2\uff53\xdf\u015b\u1e65\u015d\u1e61\u0161\u1e67\u1e63\u1e69\u0219\u015f\u023f\ua7a9\ua785\u1e9b"},{base:"t",letters:"t\u24e3\uff54\u1e6b\u1e97\u0165\u1e6d\u021b\u0163\u1e71\u1e6f\u0167\u01ad\u0288\u2c66\ua787"},{base:"tz",letters:"\ua729"},{base:"u",letters:"u\u24e4\uff55\xf9\xfa\xfb\u0169\u1e79\u016b\u1e7b\u016d\xfc\u01dc\u01d8\u01d6\u01da\u1ee7\u016f\u0171\u01d4\u0215\u0217\u01b0\u1eeb\u1ee9\u1eef\u1eed\u1ef1\u1ee5\u1e73\u0173\u1e77\u1e75\u0289"},{base:"v",letters:"v\u24e5\uff56\u1e7d\u1e7f\u028b\ua75f\u028c"},{base:"vy",letters:"\ua761"},{base:"w",letters:"w\u24e6\uff57\u1e81\u1e83\u0175\u1e87\u1e85\u1e98\u1e89\u2c73"},{base:"x",letters:"x\u24e7\uff58\u1e8b\u1e8d"},{base:"y",letters:"y\u24e8\uff59\u1ef3\xfd\u0177\u1ef9\u0233\u1e8f\xff\u1ef7\u1e99\u1ef5\u01b4\u024f\u1eff"},{base:"z",letters:"z\u24e9\uff5a\u017a\u1e91\u017c\u017e\u1e93\u1e95\u01b6\u0225\u0240\u2c6c\ua763"}],Sx=new RegExp("["+xx.map((function(e){return e.letters})).join("")+"]","g"),Ox={},Cx=0;Cx<xx.length;Cx++)for(var Ex=xx[Cx],Ax=0;Ax<Ex.letters.length;Ax++)Ox[Ex.letters[Ax]]=Ex.base;var kx=function(e){return e.replace(Sx,(function(e){return Ox[e]}))},Mx=function(e,t){void 0===t&&(t=mx);var n=null;function r(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;var i=e.apply(this,r);return n={lastResult:i,lastArgs:r,lastThis:this},i}return r.clear=function(){n=null},r}(kx),Px=function(e){return e.replace(/^\s+|\s+$/g,"")},Rx=function(e){return"".concat(e.label," ").concat(e.value)},Tx=["innerRef"];function Ix(e){var t=e.innerRef,n=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=Object.entries(e).filter((function(e){var t=(0,Lw.Z)(e,1)[0];return!n.includes(t)}));return o.reduce((function(e,t){var n=(0,Lw.Z)(t,2),r=n[0],o=n[1];return e[r]=o,e}),{})}((0,Zw.Z)(e,Tx),"onExited","in","enter","exit","appear");return jw("input",(0,l.Z)({ref:t},n,{css:Dw({label:"dummyInput",background:0,border:0,caretColor:"transparent",fontSize:"inherit",gridArea:"1 / 1 / 2 / 3",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(.01)"},"","")}))}var Bx=function(e){e.preventDefault(),e.stopPropagation()};var jx=["boxSizing","height","overflow","paddingRight","position"],Dx={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function Lx(e){e.preventDefault()}function Zx(e){e.stopPropagation()}function Nx(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function Fx(){return"ontouchstart"in window||navigator.maxTouchPoints}var Hx=!("undefined"===typeof window||!window.document||!window.document.createElement),Vx=0,zx={capture:!1,passive:!1};var Ux=function(){return document.activeElement&&document.activeElement.blur()},Gx={name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"};function Wx(e){var t=e.children,n=e.lockEnabled,r=e.captureEnabled,o=function(e){var t=e.isEnabled,n=e.onBottomArrive,r=e.onBottomLeave,o=e.onTopArrive,a=e.onTopLeave,s=(0,i.useRef)(!1),l=(0,i.useRef)(!1),u=(0,i.useRef)(0),c=(0,i.useRef)(null),f=(0,i.useCallback)((function(e,t){if(null!==c.current){var i=c.current,u=i.scrollTop,f=i.scrollHeight,d=i.clientHeight,p=c.current,h=t>0,g=f-d-u,v=!1;g>t&&s.current&&(r&&r(e),s.current=!1),h&&l.current&&(a&&a(e),l.current=!1),h&&t>g?(n&&!s.current&&n(e),p.scrollTop=f,v=!0,s.current=!0):!h&&-t>u&&(o&&!l.current&&o(e),p.scrollTop=0,v=!0,l.current=!0),v&&Bx(e)}}),[n,r,o,a]),d=(0,i.useCallback)((function(e){f(e,e.deltaY)}),[f]),p=(0,i.useCallback)((function(e){u.current=e.changedTouches[0].clientY}),[]),h=(0,i.useCallback)((function(e){var t=u.current-e.changedTouches[0].clientY;f(e,t)}),[f]),g=(0,i.useCallback)((function(e){if(e){var t=!!A_&&{passive:!1};e.addEventListener("wheel",d,t),e.addEventListener("touchstart",p,t),e.addEventListener("touchmove",h,t)}}),[h,p,d]),v=(0,i.useCallback)((function(e){e&&(e.removeEventListener("wheel",d,!1),e.removeEventListener("touchstart",p,!1),e.removeEventListener("touchmove",h,!1))}),[h,p,d]);return(0,i.useEffect)((function(){if(t){var e=c.current;return g(e),function(){v(e)}}}),[t,g,v]),function(e){c.current=e}}({isEnabled:void 0===r||r,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),a=function(e){var t=e.isEnabled,n=e.accountForScrollbars,r=void 0===n||n,o=(0,i.useRef)({}),a=(0,i.useRef)(null),s=(0,i.useCallback)((function(e){if(Hx){var t=document.body,n=t&&t.style;if(r&&jx.forEach((function(e){var t=n&&n[e];o.current[e]=t})),r&&Vx<1){var i=parseInt(o.current.paddingRight,10)||0,a=document.body?document.body.clientWidth:0,s=window.innerWidth-a+i||0;Object.keys(Dx).forEach((function(e){var t=Dx[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(s,"px"))}t&&Fx()&&(t.addEventListener("touchmove",Lx,zx),e&&(e.addEventListener("touchstart",Nx,zx),e.addEventListener("touchmove",Zx,zx))),Vx+=1}}),[r]),l=(0,i.useCallback)((function(e){if(Hx){var t=document.body,n=t&&t.style;Vx=Math.max(Vx-1,0),r&&Vx<1&&jx.forEach((function(e){var t=o.current[e];n&&(n[e]=t)})),t&&Fx()&&(t.removeEventListener("touchmove",Lx,zx),e&&(e.removeEventListener("touchstart",Nx,zx),e.removeEventListener("touchmove",Zx,zx)))}}),[r]);return(0,i.useEffect)((function(){if(t){var e=a.current;return s(e),function(){l(e)}}}),[t,s,l]),function(e){a.current=e}}({isEnabled:n});return jw(i.Fragment,null,n&&jw("div",{onClick:Ux,css:Gx}),t((function(e){o(e),a(e)})))}var qx={name:"1a0ro4n-requiredInput",styles:"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%"},$x=function(e){var t=e.name,n=e.onFocus;return jw("input",{required:!0,name:t,tabIndex:-1,"aria-hidden":"true",onFocus:n,css:qx,value:"",onChange:function(){}})},Yx={clearIndicator:K_,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":void 0,pointerEvents:t?"none":void 0,position:"relative"}},control:function(e,t){var n=e.isDisabled,r=e.isFocused,o=e.theme,i=o.colors,a=o.borderRadius;return mu({label:"control",alignItems:"center",cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:o.spacing.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms"},t?{}:{backgroundColor:n?i.neutral5:i.neutral0,borderColor:n?i.neutral10:r?i.primary:i.neutral20,borderRadius:a,borderStyle:"solid",borderWidth:1,boxShadow:r?"0 0 0 1px ".concat(i.primary):void 0,"&:hover":{borderColor:r?i.primary:i.neutral30}})},dropdownIndicator:X_,group:function(e,t){var n=e.theme.spacing;return t?{}:{paddingBottom:2*n.baseUnit,paddingTop:2*n.baseUnit}},groupHeading:function(e,t){var n=e.theme,r=n.colors,o=n.spacing;return mu({label:"group",cursor:"default",display:"block"},t?{}:{color:r.neutral40,fontSize:"75%",fontWeight:500,marginBottom:"0.25em",paddingLeft:3*o.baseUnit,paddingRight:3*o.baseUnit,textTransform:"uppercase"})},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e,t){var n=e.isDisabled,r=e.theme,o=r.spacing.baseUnit,i=r.colors;return mu({label:"indicatorSeparator",alignSelf:"stretch",width:1},t?{}:{backgroundColor:n?i.neutral10:i.neutral20,marginBottom:2*o,marginTop:2*o})},input:function(e,t){var n=e.isDisabled,r=e.value,o=e.theme,i=o.spacing,a=o.colors;return mu(mu({visibility:n?"hidden":"visible",transform:r?"translateZ(0)":""},ix),t?{}:{margin:i.baseUnit/2,paddingBottom:i.baseUnit/2,paddingTop:i.baseUnit/2,color:a.neutral80})},loadingIndicator:function(e,t){var n=e.isFocused,r=e.size,o=e.theme,i=o.colors,a=o.spacing.baseUnit;return mu({label:"loadingIndicator",display:"flex",transition:"color 150ms",alignSelf:"center",fontSize:r,lineHeight:1,marginRight:r,textAlign:"center",verticalAlign:"middle"},t?{}:{color:n?i.neutral60:i.neutral20,padding:2*a})},loadingMessage:F_,menu:function(e,t){var n,r=e.placement,o=e.theme,i=o.borderRadius,a=o.spacing,s=o.colors;return mu((n={label:"menu"},(0,gu.Z)(n,function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(r),"100%"),(0,gu.Z)(n,"position","absolute"),(0,gu.Z)(n,"width","100%"),(0,gu.Z)(n,"zIndex",1),n),t?{}:{backgroundColor:s.neutral0,borderRadius:i,boxShadow:"0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)",marginBottom:a.menuGutter,marginTop:a.menuGutter})},menuList:function(e,t){var n=e.maxHeight,r=e.theme.spacing.baseUnit;return mu({maxHeight:n,overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},t?{}:{paddingBottom:r,paddingTop:r})},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e,t){var n=e.theme,r=n.spacing,o=n.borderRadius,i=n.colors;return mu({label:"multiValue",display:"flex",minWidth:0},t?{}:{backgroundColor:i.neutral10,borderRadius:o/2,margin:r.baseUnit/2})},multiValueLabel:function(e,t){var n=e.theme,r=n.borderRadius,o=n.colors,i=e.cropWithEllipsis;return mu({overflow:"hidden",textOverflow:i||void 0===i?"ellipsis":void 0,whiteSpace:"nowrap"},t?{}:{borderRadius:r/2,color:o.neutral80,fontSize:"85%",padding:3,paddingLeft:6})},multiValueRemove:function(e,t){var n=e.theme,r=n.spacing,o=n.borderRadius,i=n.colors,a=e.isFocused;return mu({alignItems:"center",display:"flex"},t?{}:{borderRadius:o/2,backgroundColor:a?i.dangerLight:void 0,paddingLeft:r.baseUnit,paddingRight:r.baseUnit,":hover":{backgroundColor:i.dangerLight,color:i.danger}})},noOptionsMessage:N_,option:function(e,t){var n=e.isDisabled,r=e.isFocused,o=e.isSelected,i=e.theme,a=i.spacing,s=i.colors;return mu({label:"option",cursor:"default",display:"block",fontSize:"inherit",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)"},t?{}:{backgroundColor:o?s.primary:r?s.primary25:"transparent",color:n?s.neutral20:o?s.neutral0:"inherit",padding:"".concat(2*a.baseUnit,"px ").concat(3*a.baseUnit,"px"),":active":{backgroundColor:n?void 0:o?s.primary:s.primary50}})},placeholder:function(e,t){var n=e.theme,r=n.spacing,o=n.colors;return mu({label:"placeholder",gridArea:"1 / 1 / 2 / 3"},t?{}:{color:o.neutral50,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2})},singleValue:function(e,t){var n=e.isDisabled,r=e.theme,o=r.spacing,i=r.colors;return mu({label:"singleValue",gridArea:"1 / 1 / 2 / 3",maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},t?{}:{color:n?i.neutral40:i.neutral80,marginLeft:o.baseUnit/2,marginRight:o.baseUnit/2})},valueContainer:function(e,t){var n=e.theme.spacing,r=e.isMulti,o=e.hasValue,i=e.selectProps.controlShouldRenderValue;return mu({alignItems:"center",display:r&&o&&i?"flex":"grid",flex:1,flexWrap:"wrap",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"},t?{}:{padding:"".concat(n.baseUnit/2,"px ").concat(2*n.baseUnit,"px")})}};var Xx={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},Kx={"aria-live":"polite",backspaceRemovesValue:!0,blurInputOnSelect:S_(),captureMenuScroll:!S_(),classNames:{},closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e){return function(t,n){if(t.data.__isNew__)return!0;var r=mu({ignoreCase:!0,ignoreAccents:!0,stringify:Rx,trim:!0,matchFrom:"any"},e),o=r.ignoreCase,i=r.ignoreAccents,a=r.stringify,s=r.trim,l=r.matchFrom,u=s?Px(n):n,c=s?Px(a(t)):a(t);return o&&(u=u.toLowerCase(),c=c.toLowerCase()),i&&(u=Mx(u),c=kx(c)),"start"===l?c.substr(0,u.length)===u:c.indexOf(u)>-1}}(),formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:0,tabSelectsValue:!0,unstyled:!1};function Jx(e,t,n,r){return{type:"option",data:t,isDisabled:oS(e,t,n),isSelected:iS(e,t,n),label:nS(e,t),value:rS(e,t),index:r}}function Qx(e,t){return e.options.map((function(n,r){if("options"in n){var o=n.options.map((function(n,r){return Jx(e,n,t,r)})).filter((function(t){return tS(e,t)}));return o.length>0?{type:"group",data:n,options:o,index:r}:void 0}var i=Jx(e,n,t,r);return tS(e,i)?i:void 0})).filter(k_)}function eS(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,(0,gx.Z)(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function tS(e,t){var n=e.inputValue,r=void 0===n?"":n,o=t.data,i=t.isSelected,a=t.label,s=t.value;return(!sS(e)||!i)&&aS(e,{label:a,value:s,data:o},r)}var nS=function(e,t){return e.getOptionLabel(t)},rS=function(e,t){return e.getOptionValue(t)};function oS(e,t,n){return"function"===typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function iS(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"===typeof e.isOptionSelected)return e.isOptionSelected(t,n);var r=rS(e,t);return n.some((function(t){return rS(e,t)===r}))}function aS(e,t,n){return!e.filterOption||e.filterOption(t,n)}var sS=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},lS=1,uS=function(e){(0,px.Z)(n,e);var t=(0,hx.Z)(n);function n(e){var r;if((0,fx.Z)(this,n),(r=t.call(this,e)).state={ariaSelection:null,focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,prevWasFocused:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},r.blockOptionHover=!1,r.isComposing=!1,r.commonProps=void 0,r.initialTouchX=0,r.initialTouchY=0,r.instancePrefix="",r.openAfterFocus=!1,r.scrollToFocusedOptionOnUpdate=!1,r.userIsDragging=void 0,r.controlRef=null,r.getControlRef=function(e){r.controlRef=e},r.focusedOptionRef=null,r.getFocusedOptionRef=function(e){r.focusedOptionRef=e},r.menuListRef=null,r.getMenuListRef=function(e){r.menuListRef=e},r.inputRef=null,r.getInputRef=function(e){r.inputRef=e},r.focus=r.focusInput,r.blur=r.blurInput,r.onChange=function(e,t){var n=r.props,o=n.onChange,i=n.name;t.name=i,r.ariaOnChange(e,t),o(e,t)},r.setValue=function(e,t,n){var o=r.props,i=o.closeMenuOnSelect,a=o.isMulti,s=o.inputValue;r.onInputChange("",{action:"set-value",prevInputValue:s}),i&&(r.setState({inputIsHiddenAfterUpdate:!a}),r.onMenuClose()),r.setState({clearFocusValueOnUpdate:!0}),r.onChange(e,{action:t,option:n})},r.selectOption=function(e){var t=r.props,n=t.blurInputOnSelect,o=t.isMulti,i=t.name,a=r.state.selectValue,s=o&&r.isOptionSelected(e,a),l=r.isOptionDisabled(e,a);if(s){var u=r.getOptionValue(e);r.setValue(a.filter((function(e){return r.getOptionValue(e)!==u})),"deselect-option",e)}else{if(l)return void r.ariaOnChange(e,{action:"select-option",option:e,name:i});o?r.setValue([].concat((0,gx.Z)(a),[e]),"select-option",e):r.setValue(e,"select-option")}n&&r.blurInput()},r.removeValue=function(e){var t=r.props.isMulti,n=r.state.selectValue,o=r.getOptionValue(e),i=n.filter((function(e){return r.getOptionValue(e)!==o})),a=M_(t,i,i[0]||null);r.onChange(a,{action:"remove-value",removedValue:e}),r.focusInput()},r.clearValue=function(){var e=r.state.selectValue;r.onChange(M_(r.props.isMulti,[],null),{action:"clear",removedValues:e})},r.popValue=function(){var e=r.props.isMulti,t=r.state.selectValue,n=t[t.length-1],o=t.slice(0,t.length-1),i=M_(e,o,o[0]||null);r.onChange(i,{action:"pop-value",removedValue:n})},r.getValue=function(){return r.state.selectValue},r.cx=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return h_.apply(void 0,[r.props.classNamePrefix].concat(t))},r.getOptionLabel=function(e){return nS(r.props,e)},r.getOptionValue=function(e){return rS(r.props,e)},r.getStyles=function(e,t){var n=r.props.unstyled,o=Yx[e](t,n);o.boxSizing="border-box";var i=r.props.styles[e];return i?i(o,t):o},r.getClassNames=function(e,t){var n,o;return null===(n=(o=r.props.classNames)[e])||void 0===n?void 0:n.call(o,t)},r.getElementId=function(e){return"".concat(r.instancePrefix,"-").concat(e)},r.getComponents=function(){return e=r.props,mu(mu({},ux),e.components);var e},r.buildCategorizedOptions=function(){return Qx(r.props,r.state.selectValue)},r.getCategorizedOptions=function(){return r.props.menuIsOpen?r.buildCategorizedOptions():[]},r.buildFocusableOptions=function(){return eS(r.buildCategorizedOptions())},r.getFocusableOptions=function(){return r.props.menuIsOpen?r.buildFocusableOptions():[]},r.ariaOnChange=function(e,t){r.setState({ariaSelection:mu({value:e},t)})},r.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),r.focusInput())},r.onMenuMouseMove=function(e){r.blockOptionHover=!1},r.onControlMouseDown=function(e){if(!e.defaultPrevented){var t=r.props.openMenuOnClick;r.state.isFocused?r.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&r.onMenuClose():t&&r.openMenu("first"):(t&&(r.openAfterFocus=!0),r.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()}},r.onDropdownIndicatorMouseDown=function(e){if((!e||"mousedown"!==e.type||0===e.button)&&!r.props.isDisabled){var t=r.props,n=t.isMulti,o=t.menuIsOpen;r.focusInput(),o?(r.setState({inputIsHiddenAfterUpdate:!n}),r.onMenuClose()):r.openMenu("first"),e.preventDefault()}},r.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(r.clearValue(),e.preventDefault(),r.openAfterFocus=!1,"touchend"===e.type?r.focusInput():setTimeout((function(){return r.focusInput()})))},r.onScroll=function(e){"boolean"===typeof r.props.closeMenuOnScroll?e.target instanceof HTMLElement&&y_(e.target)&&r.props.onMenuClose():"function"===typeof r.props.closeMenuOnScroll&&r.props.closeMenuOnScroll(e)&&r.props.onMenuClose()},r.onCompositionStart=function(){r.isComposing=!0},r.onCompositionEnd=function(){r.isComposing=!1},r.onTouchStart=function(e){var t=e.touches,n=t&&t.item(0);n&&(r.initialTouchX=n.clientX,r.initialTouchY=n.clientY,r.userIsDragging=!1)},r.onTouchMove=function(e){var t=e.touches,n=t&&t.item(0);if(n){var o=Math.abs(n.clientX-r.initialTouchX),i=Math.abs(n.clientY-r.initialTouchY);r.userIsDragging=o>5||i>5}},r.onTouchEnd=function(e){r.userIsDragging||(r.controlRef&&!r.controlRef.contains(e.target)&&r.menuListRef&&!r.menuListRef.contains(e.target)&&r.blurInput(),r.initialTouchX=0,r.initialTouchY=0)},r.onControlTouchEnd=function(e){r.userIsDragging||r.onControlMouseDown(e)},r.onClearIndicatorTouchEnd=function(e){r.userIsDragging||r.onClearIndicatorMouseDown(e)},r.onDropdownIndicatorTouchEnd=function(e){r.userIsDragging||r.onDropdownIndicatorMouseDown(e)},r.handleInputChange=function(e){var t=r.props.inputValue,n=e.currentTarget.value;r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange(n,{action:"input-change",prevInputValue:t}),r.props.menuIsOpen||r.onMenuOpen()},r.onInputFocus=function(e){r.props.onFocus&&r.props.onFocus(e),r.setState({inputIsHiddenAfterUpdate:!1,isFocused:!0}),(r.openAfterFocus||r.props.openMenuOnFocus)&&r.openMenu("first"),r.openAfterFocus=!1},r.onInputBlur=function(e){var t=r.props.inputValue;r.menuListRef&&r.menuListRef.contains(document.activeElement)?r.inputRef.focus():(r.props.onBlur&&r.props.onBlur(e),r.onInputChange("",{action:"input-blur",prevInputValue:t}),r.onMenuClose(),r.setState({focusedValue:null,isFocused:!1}))},r.onOptionHover=function(e){r.blockOptionHover||r.state.focusedOption===e||r.setState({focusedOption:e})},r.shouldHideSelectedOptions=function(){return sS(r.props)},r.onValueInputFocus=function(e){e.preventDefault(),e.stopPropagation(),r.focus()},r.onKeyDown=function(e){var t=r.props,n=t.isMulti,o=t.backspaceRemovesValue,i=t.escapeClearsValue,a=t.inputValue,s=t.isClearable,l=t.isDisabled,u=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,d=t.openMenuOnFocus,p=r.state,h=p.focusedOption,g=p.focusedValue,v=p.selectValue;if(!l&&("function"!==typeof c||(c(e),!e.defaultPrevented))){switch(r.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||a)return;r.focusValue("previous");break;case"ArrowRight":if(!n||a)return;r.focusValue("next");break;case"Delete":case"Backspace":if(a)return;if(g)r.removeValue(g);else{if(!o)return;n?r.popValue():s&&r.clearValue()}break;case"Tab":if(r.isComposing)return;if(e.shiftKey||!u||!f||!h||d&&r.isOptionSelected(h,v))return;r.selectOption(h);break;case"Enter":if(229===e.keyCode)break;if(u){if(!h)return;if(r.isComposing)return;r.selectOption(h);break}return;case"Escape":u?(r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange("",{action:"menu-close",prevInputValue:a}),r.onMenuClose()):s&&i&&r.clearValue();break;case" ":if(a)return;if(!u){r.openMenu("first");break}if(!h)return;r.selectOption(h);break;case"ArrowUp":u?r.focusOption("up"):r.openMenu("last");break;case"ArrowDown":u?r.focusOption("down"):r.openMenu("first");break;case"PageUp":if(!u)return;r.focusOption("pageup");break;case"PageDown":if(!u)return;r.focusOption("pagedown");break;case"Home":if(!u)return;r.focusOption("first");break;case"End":if(!u)return;r.focusOption("last");break;default:return}e.preventDefault()}},r.instancePrefix="react-select-"+(r.props.instanceId||++lS),r.state.selectValue=g_(e.value),e.menuIsOpen&&r.state.selectValue.length){var o=r.buildFocusableOptions(),i=o.indexOf(r.state.selectValue[0]);r.state.focusedOption=o[i]}return r}return(0,dx.Z)(n,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput(),this.props.menuIsOpen&&this.state.focusedOption&&this.menuListRef&&this.focusedOptionRef&&x_(this.menuListRef,this.focusedOptionRef)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.isDisabled,r=t.menuIsOpen,o=this.state.isFocused;(o&&!n&&e.isDisabled||o&&r&&!e.menuIsOpen)&&this.focusInput(),o&&n&&!e.isDisabled?this.setState({isFocused:!1},this.onMenuClose):o||n||!e.isDisabled||this.inputRef!==document.activeElement||this.setState({isFocused:!0}),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(x_(this.menuListRef,this.focusedOptionRef),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){this.onInputChange("",{action:"menu-close",prevInputValue:this.props.inputValue}),this.props.onMenuClose()}},{key:"onInputChange",value:function(e,t){this.props.onInputChange(e,t)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(e){var t=this,n=this.state,r=n.selectValue,o=n.isFocused,i=this.buildFocusableOptions(),a="first"===e?0:i.length-1;if(!this.props.isMulti){var s=i.indexOf(r[0]);s>-1&&(a=s)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:i[a]},(function(){return t.onMenuOpen()}))}},{key:"focusValue",value:function(e){var t=this.state,n=t.selectValue,r=t.focusedValue;if(this.props.isMulti){this.setState({focusedOption:null});var o=n.indexOf(r);r||(o=-1);var i=n.length-1,a=-1;if(n.length){switch(e){case"previous":a=0===o?0:-1===o?i:o-1;break;case"next":o>-1&&o<i&&(a=o+1)}this.setState({inputIsHidden:-1!==a,focusedValue:n[a]})}}}},{key:"focusOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state.focusedOption,r=this.getFocusableOptions();if(r.length){var o=0,i=r.indexOf(n);n||(i=-1),"up"===e?o=i>0?i-1:r.length-1:"down"===e?o=(i+1)%r.length:"pageup"===e?(o=i-t)<0&&(o=0):"pagedown"===e?(o=i+t)>r.length-1&&(o=r.length-1):"last"===e&&(o=r.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:r[o],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?"function"===typeof this.props.theme?this.props.theme(Xx):mu(mu({},Xx),this.props.theme):Xx}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getClassNames,o=this.getValue,i=this.selectOption,a=this.setValue,s=this.props,l=s.isMulti,u=s.isRtl,c=s.options;return{clearValue:e,cx:t,getStyles:n,getClassNames:r,getValue:o,hasValue:this.hasValue(),isMulti:l,isRtl:u,options:c,selectOption:i,selectProps:s,setValue:a,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return oS(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return iS(this.props,e,t)}},{key:"filterOption",value:function(e,t){return aS(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"===typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,o=e.inputValue,a=e.tabIndex,s=e.form,u=e.menuIsOpen,c=e.required,f=this.getComponents().Input,d=this.state,p=d.inputIsHidden,h=d.ariaSelection,g=this.commonProps,v=r||this.getElementId("input"),m=mu(mu(mu({"aria-autocomplete":"list","aria-expanded":u,"aria-haspopup":!0,"aria-errormessage":this.props["aria-errormessage"],"aria-invalid":this.props["aria-invalid"],"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-required":c,role:"combobox"},u&&{"aria-controls":this.getElementId("listbox"),"aria-owns":this.getElementId("listbox")}),!n&&{"aria-readonly":!0}),this.hasValue()?"initial-input-focus"===(null===h||void 0===h?void 0:h.action)&&{"aria-describedby":this.getElementId("live-region")}:{"aria-describedby":this.getElementId("placeholder")});return n?i.createElement(f,(0,l.Z)({},g,{autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",id:v,innerRef:this.getInputRef,isDisabled:t,isHidden:p,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:a,form:s,type:"text",value:o},m)):i.createElement(Ix,(0,l.Z)({id:v,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:d_,onFocus:this.onInputFocus,disabled:t,tabIndex:a,inputMode:"none",form:s,value:""},m))}},{key:"renderPlaceholderOrValue",value:function(){var e=this,t=this.getComponents(),n=t.MultiValue,r=t.MultiValueContainer,o=t.MultiValueLabel,a=t.MultiValueRemove,s=t.SingleValue,u=t.Placeholder,c=this.commonProps,f=this.props,d=f.controlShouldRenderValue,p=f.isDisabled,h=f.isMulti,g=f.inputValue,v=f.placeholder,m=this.state,y=m.selectValue,b=m.focusedValue,w=m.isFocused;if(!this.hasValue()||!d)return g?null:i.createElement(u,(0,l.Z)({},c,{key:"placeholder",isDisabled:p,isFocused:w,innerProps:{id:this.getElementId("placeholder")}}),v);if(h)return y.map((function(t,s){var u=t===b,f="".concat(e.getOptionLabel(t),"-").concat(e.getOptionValue(t));return i.createElement(n,(0,l.Z)({},c,{components:{Container:r,Label:o,Remove:a},isFocused:u,isDisabled:p,key:f,index:s,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault()}},data:t}),e.formatOptionLabel(t,"value"))}));if(g)return null;var _=y[0];return i.createElement(s,(0,l.Z)({},c,{data:_,isDisabled:p}),this.formatOptionLabel(_,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.getComponents().ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,a=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||o)return null;var s={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return i.createElement(e,(0,l.Z)({},t,{innerProps:s,isFocused:a}))}},{key:"renderLoadingIndicator",value:function(){var e=this.getComponents().LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,a=this.state.isFocused;if(!e||!o)return null;return i.createElement(e,(0,l.Z)({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:a}))}},{key:"renderIndicatorSeparator",value:function(){var e=this.getComponents(),t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,o=this.props.isDisabled,a=this.state.isFocused;return i.createElement(n,(0,l.Z)({},r,{isDisabled:o,isFocused:a}))}},{key:"renderDropdownIndicator",value:function(){var e=this.getComponents().DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,o={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return i.createElement(e,(0,l.Z)({},t,{innerProps:o,isDisabled:n,isFocused:r}))}},{key:"renderMenu",value:function(){var e=this,t=this.getComponents(),n=t.Group,r=t.GroupHeading,o=t.Menu,a=t.MenuList,s=t.MenuPortal,u=t.LoadingMessage,c=t.NoOptionsMessage,f=t.Option,d=this.commonProps,p=this.state.focusedOption,h=this.props,g=h.captureMenuScroll,v=h.inputValue,m=h.isLoading,y=h.loadingMessage,b=h.minMenuHeight,w=h.maxMenuHeight,_=h.menuIsOpen,x=h.menuPlacement,S=h.menuPosition,O=h.menuPortalTarget,C=h.menuShouldBlockScroll,E=h.menuShouldScrollIntoView,A=h.noOptionsMessage,k=h.onMenuScrollToTop,M=h.onMenuScrollToBottom;if(!_)return null;var P,R=function(t,n){var r=t.type,o=t.data,a=t.isDisabled,s=t.isSelected,u=t.label,c=t.value,h=p===o,g=a?void 0:function(){return e.onOptionHover(o)},v=a?void 0:function(){return e.selectOption(o)},m="".concat(e.getElementId("option"),"-").concat(n),y={id:m,onClick:v,onMouseMove:g,onMouseOver:g,tabIndex:-1};return i.createElement(f,(0,l.Z)({},d,{innerProps:y,data:o,isDisabled:a,isSelected:s,key:m,label:u,type:r,value:c,isFocused:h,innerRef:h?e.getFocusedOptionRef:void 0}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())P=this.getCategorizedOptions().map((function(t){if("group"===t.type){var o=t.data,a=t.options,s=t.index,u="".concat(e.getElementId("group"),"-").concat(s),c="".concat(u,"-heading");return i.createElement(n,(0,l.Z)({},d,{key:u,data:o,options:a,Heading:r,headingProps:{id:c,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return R(e,"".concat(s,"-").concat(e.index))})))}if("option"===t.type)return R(t,"".concat(t.index))}));else if(m){var T=y({inputValue:v});if(null===T)return null;P=i.createElement(u,d,T)}else{var I=A({inputValue:v});if(null===I)return null;P=i.createElement(c,d,I)}var B={minMenuHeight:b,maxMenuHeight:w,menuPlacement:x,menuPosition:S,menuShouldScrollIntoView:E},j=i.createElement(D_,(0,l.Z)({},d,B),(function(t){var n=t.ref,r=t.placerProps,s=r.placement,u=r.maxHeight;return i.createElement(o,(0,l.Z)({},d,B,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove,id:e.getElementId("listbox")},isLoading:m,placement:s}),i.createElement(Wx,{captureEnabled:g,onTopArrive:k,onBottomArrive:M,lockEnabled:C},(function(t){return i.createElement(a,(0,l.Z)({},d,{innerRef:function(n){e.getMenuListRef(n),t(n)},isLoading:m,maxHeight:u,focusedOption:p}),P)})))}));return O||"fixed"===S?i.createElement(s,(0,l.Z)({},d,{appendTo:O,controlElement:this.controlRef,menuPlacement:x,menuPosition:S}),j):j}},{key:"renderFormField",value:function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,o=t.isMulti,a=t.name,s=t.required,l=this.state.selectValue;if(s&&!this.hasValue()&&!r)return i.createElement($x,{name:a,onFocus:this.onValueInputFocus});if(a&&!r){if(o){if(n){var u=l.map((function(t){return e.getOptionValue(t)})).join(n);return i.createElement("input",{name:a,type:"hidden",value:u})}var c=l.length>0?l.map((function(t,n){return i.createElement("input",{key:"i-".concat(n),name:a,type:"hidden",value:e.getOptionValue(t)})})):i.createElement("input",{name:a,type:"hidden",value:""});return i.createElement("div",null,c)}var f=l[0]?this.getOptionValue(l[0]):"";return i.createElement("input",{name:a,type:"hidden",value:f})}}},{key:"renderLiveRegion",value:function(){var e=this.commonProps,t=this.state,n=t.ariaSelection,r=t.focusedOption,o=t.focusedValue,a=t.isFocused,s=t.selectValue,u=this.getFocusableOptions();return i.createElement(_x,(0,l.Z)({},e,{id:this.getElementId("live-region"),ariaSelection:n,focusedOption:r,focusedValue:o,isFocused:a,selectValue:s,focusableOptions:u}))}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,o=e.ValueContainer,a=this.props,s=a.className,u=a.id,c=a.isDisabled,f=a.menuIsOpen,d=this.state.isFocused,p=this.commonProps=this.getCommonProps();return i.createElement(r,(0,l.Z)({},p,{className:s,innerProps:{id:u,onKeyDown:this.onKeyDown},isDisabled:c,isFocused:d}),this.renderLiveRegion(),i.createElement(t,(0,l.Z)({},p,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:c,isFocused:d,menuIsOpen:f}),i.createElement(o,(0,l.Z)({},p,{isDisabled:c}),this.renderPlaceholderOrValue(),this.renderInput()),i.createElement(n,(0,l.Z)({},p,{isDisabled:c}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.clearFocusValueOnUpdate,o=t.inputIsHiddenAfterUpdate,i=t.ariaSelection,a=t.isFocused,s=t.prevWasFocused,l=e.options,u=e.value,c=e.menuIsOpen,f=e.inputValue,d=e.isMulti,p=g_(u),h={};if(n&&(u!==n.value||l!==n.options||c!==n.menuIsOpen||f!==n.inputValue)){var g=c?function(e,t){return eS(Qx(e,t))}(e,p):[],v=r?function(e,t){var n=e.focusedValue,r=e.selectValue.indexOf(n);if(r>-1){if(t.indexOf(n)>-1)return n;if(r<t.length)return t[r]}return null}(t,p):null,m=function(e,t){var n=e.focusedOption;return n&&t.indexOf(n)>-1?n:t[0]}(t,g);h={selectValue:p,focusedOption:m,focusedValue:v,clearFocusValueOnUpdate:!1}}var y=null!=o&&e!==n?{inputIsHidden:o,inputIsHiddenAfterUpdate:void 0}:{},b=i,w=a&&s;return a&&!w&&(b={value:M_(d,p,p[0]||null),options:p,action:"initial-input-focus"},w=!s),"initial-input-focus"===(null===i||void 0===i?void 0:i.action)&&(b=null),mu(mu(mu({},h),y),{},{prevProps:e,ariaSelection:b,prevWasFocused:w})}}]),n}(i.Component);uS.defaultProps=Kx;var cS,fS,dS,pS=(0,i.forwardRef)((function(e,t){var n=function(e){var t=e.defaultInputValue,n=void 0===t?"":t,r=e.defaultMenuIsOpen,o=void 0!==r&&r,a=e.defaultValue,s=void 0===a?null:a,l=e.inputValue,u=e.menuIsOpen,c=e.onChange,f=e.onInputChange,d=e.onMenuClose,p=e.onMenuOpen,h=e.value,g=(0,Zw.Z)(e,cx),v=(0,i.useState)(void 0!==l?l:n),m=(0,Lw.Z)(v,2),y=m[0],b=m[1],w=(0,i.useState)(void 0!==u?u:o),_=(0,Lw.Z)(w,2),x=_[0],S=_[1],O=(0,i.useState)(void 0!==h?h:s),C=(0,Lw.Z)(O,2),E=C[0],A=C[1],k=(0,i.useCallback)((function(e,t){"function"===typeof c&&c(e,t),A(e)}),[c]),M=(0,i.useCallback)((function(e,t){var n;"function"===typeof f&&(n=f(e,t)),b(void 0!==n?n:e)}),[f]),P=(0,i.useCallback)((function(){"function"===typeof p&&p(),S(!0)}),[p]),R=(0,i.useCallback)((function(){"function"===typeof d&&d(),S(!1)}),[d]),T=void 0!==l?l:y,I=void 0!==u?u:x,B=void 0!==h?h:E;return mu(mu({},g),{},{inputValue:T,menuIsOpen:I,onChange:k,onInputChange:M,onMenuClose:R,onMenuOpen:P,value:B})}(e);return i.createElement(uS,(0,l.Z)({ref:t},n))})),hS=pS,gS=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},vS=function(){return vS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},vS.apply(this,arguments)},mS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},yS=function(e,t){var n=e.selectProps,r=n["data-ga"],o=n["data-testid"];return{"data-ga":(0,i.useMemo)((function(){if(!r)return r;var e=r.split("::");return e[1]?(e[1]="".concat(e[1],"-").concat(t),e.join("::")):r}),[r]),"data-testid":"".concat(o||"").concat(t)}},bS=function(e,t){return function(n){var r=yS(n,t);return i.createElement(e,vS({},n,{innerProps:vS(vS({},n.innerProps||{}),r)}))}},wS=vS(vS({},ux),{ClearIndicator:bS(ux.ClearIndicator,"ClearIndicator"),Control:bS(ux.Control,"Control"),DropdownIndicator:bS(ux.DropdownIndicator,"DropdownIndicator"),DownChevron:bS(ux.DownChevron,"DownChevron"),CrossIcon:bS(ux.CrossIcon,"CrossIcon"),Group:bS(ux.Group,"Group"),GroupHeading:bS(ux.GroupHeading,"GroupHeading"),IndicatorsContainer:bS(ux.IndicatorsContainer,"IndicatorsContainer"),IndicatorSeparator:bS(ux.IndicatorSeparator,"IndicatorSeparator"),Input:(cS=ux.Input,fS="Input",function(e){var t=yS(e,fS);return i.createElement(cS,vS({},e,t))}),LoadingIndicator:bS(ux.LoadingIndicator,"LoadingIndicator"),Menu:bS(ux.Menu,"Menu"),MenuList:bS(ux.MenuList,"MenuList"),MenuPortal:bS(ux.MenuPortal,"MenuPortal"),LoadingMessage:bS(ux.LoadingMessage,"LoadingMessage"),MultiValue:bS(ux.MultiValue,"MultiValue"),MultiValueContainer:bS(ux.MultiValueContainer,"MultiValueContainer"),MultiValueLabel:bS(ux.MultiValueLabel,"MultiValueLabel"),MultiValueRemove:bS(ux.MultiValueRemove,"MultiValueRemove"),NoOptionsMessage:bS(ux.NoOptionsMessage,"NoOptionsMessage"),Option:bS(ux.Option,"Option"),Placeholder:bS(ux.Placeholder,"Placeholder"),SelectContainer:bS(ux.SelectContainer,"SelectContainer"),SingleValue:bS(ux.SingleValue,"SingleValue"),ValueContainer:bS(ux.ValueContainer,"ValueContainer")}),_S=function(e,t){return t.isDisabled?e.colors.placeholder:t.isSelected?e.colors.bright:e.colors.textDescription},xS=function(e,t){void 0===t&&(t={});var n=t.minWidth,r=t.size,o=mS(t,["minWidth","size"]);return vS(vS({control:function(t,r){return vS(vS({},t),{borderColor:r.isFocused?e.colors.inputBorderFocus:e.colors.inputBorder,boxShadow:"none",minHeight:18,minWidth:n||160,":hover":{borderColor:e.colors.inputBorderHover}})},input:function(t,n){return vS(vS(vS({},t),{color:n.isDisabled?e.colors.placeholder:e.colors.textDescription}),"tiny"===r?{lineHeight:"18px",paddingBottom:0,paddingTop:0}:{})},menu:function(e){return vS(vS({},e),{zIndex:100})},menuPortal:function(e){return vS(vS({},e),{zIndex:9999})},multiValue:function(e){return vS(vS(vS({},e),{fontSize:"tiny"===r?"12px":"14px",flexDirection:"row-reverse"}),"tiny"===r?{minHeight:18}:{})},multiValueLabel:function(t,n){return vS(vS(vS(vS({},t),{backgroundColor:e.colors.disabled,borderRadius:"0 2px 2px 0",color:n.isDisabled?e.colors.placeholder:e.colors.textDescription}),"tiny"===r?{padding:"1px"}:{}),{paddingRight:n.data.isDisabled?"8px":""})},multiValueRemove:function(t,n){return vS({color:n.isDisabled?e.colors.placeholder:e.colors.textDescription},n.data.isDisabled?vS(vS({},t),{display:"none"}):vS(vS({},t),{borderRadius:"2px 0 0 2px",background:e.colors.disabled,":hover":{background:e.colors.tabsBorder}}))},option:function(t,n){return vS(vS(vS({},t),{color:_S(e,n)}),"tiny"===r?{fontSize:"12px",minHeight:28,padding:"4px 8px"}:{})},placeholder:function(t){return vS(vS(vS({},t),{color:e.colors.placeholder}),"tiny"===r?{fontSize:"12px",lineHeight:"18px"}:{})},singleValue:function(t,n){return vS(vS({},t),{color:n.isDisabled?e.colors.placeholder:e.colors.textDescription,fontSize:"tiny"===r?"12px":"14px"})}},"tiny"===r?{dropdownIndicator:function(e){return vS(vS({},e),{padding:"3px"})},clearIndicator:function(e){return vS(vS({},e),{padding:"3px"})},indicatorsContainer:function(e){return vS(vS({},e),{minHeight:18})},valueContainer:function(e){return vS(vS({},e),{minHeight:18,padding:"1px 6px"})}}:{dropdownIndicator:function(e){return vS(vS({},e),{padding:"3px"})},clearIndicator:function(e){return vS(vS({},e),{padding:"3px"})},indicatorsContainer:function(e){return vS(vS({},e),{minHeight:28})},valueContainer:function(e){return vS(vS({},e),{minHeight:28,padding:"1px 6px"})}}),o)},SS=(0,s.default)(hS).attrs((function(e){return vS(vS({},e),{components:vS(vS({},wS),e.components),theme:(t=e.theme,function(e){return vS(vS({},e),{borderRadius:4,colors:vS(vS({},e.colors),{primary:t.colors.border,primary25:t.colors.selected,primary50:t.colors.border,primary75:t.colors.tooltip,danger:t.colors.text,dangerLight:t.colors.border,neutral0:t.colors.mainBackground,neutral5:t.colors.mainBackgroundDisabled,neutral30:t.colors.controlFocused,neutral60:t.colors.border,neutral80:t.colors.text,neutral10:t.colors.border,neutral20:t.colors.border})})}),styles:xS(e.theme,e.styles)});var t}))(dS||(dS=gS([""],[""]))),OS=function(){return OS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},OS.apply(this,arguments)},CS=function(e){var t=e["data-ga"],n=e["data-testid"],r=e.onChange,o=e.value,a=e.options,s=e.isMulti,l=e.styles;return i.createElement(SS,{"data-testid":n,"data-ga":t,isMulti:s,options:a,value:o,onChange:function(e){r(e)},styles:OS({size:"tiny"},l||{})})},ES=[{value:"all",label:"All"},{value:"gt",label:"Greater than"},{value:"eq",label:"Equal"},{value:"lt",label:"Less than"}],AS=function(e){var t=e.column,n=t.setFilterValue,r=(0,t.getFilterValue)();return(0,i.useEffect)((function(){n((function(e){return[ES[0],null===e||void 0===e?void 0:e[1]]}))}),[]),i.createElement(Se.default,{gap:2},i.createElement(CS,{value:r?r[0]:ES[0],options:ES,onChange:function(e){return n((function(t){return[e,null===t||void 0===t?void 0:t[1]]}))}}),i.createElement(Te.Z,{as:an.oi,width:{max:50},defaultValue:r?r[1]:null,onChange:(0,jg.D)(300,(function(e){e.persist(),n((function(t){return[null===t||void 0===t?void 0:t[0],e.target.value]}))})),pattern:"[0-9]*(.[0-9]+)?",inputMode:"decimal",size:"tiny"}))},kS=function(){return kS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},kS.apply(this,arguments)},MS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},PS=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},RS={value:"all",label:"All"},TS=function(e){var t=e.column,n=e.isMulti,r=void 0!==n&&n,o=e.options,a=void 0===o?[]:o,s=e.tiny,l=void 0===s||s,u=MS(e,["column","isMulti","options","tiny"]),c=t.setFilterValue,f=(0,t.getFilterValue)(),d=r?a:PS([RS],a,!0),p=r?f:d[0];return i.createElement(CS,kS({value:f||p,isMulti:r,options:d,onChange:function(e){return c(e)},styles:l&&{size:"tiny"}},u))},IS=n(37807),BS=function(){return BS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},BS.apply(this,arguments)},jS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},DS={comparison:AS,select:TS,default:function(e){var t=e.column,n=e.testPrefix,r=t.id,o=void 0===r?"":r,a=(0,jg.D)(300,(function(e){t.setFilterValue(e.target.value)}));return i.createElement(Te.Z,{"data-testid":"netdata-table-filter-".concat(o).concat(n),as:IS.Z,defaultValue:t.getFilterValue(),width:{max:50},placeholder:"Search...",iconRight:i.createElement(_e.JO,{color:"textLite",name:"magnify",height:"18px",width:"18px"}),onChange:a})}},LS=function(e){var t=e.enableResize,n=e.enableSorting,r=e.headers,o=e.pinnedStyles,a=void 0===o?{}:o,s=e.table,l=e.testPrefix,u=jS(e,["enableResize","enableSorting","headers","pinnedStyles","table","testPrefix"]);return r.map((function(e,r){var o,c,f=e.id,d=e.colSpan,p=e.getContext,h=e.isPlaceholder,g=e.column,v=e.getResizeHandler,m=e.getSize,y=g.getCanSort,b=g.columnDef,w=g.getCanResize,_=g.getIsResizing,x="function"===typeof b.tableMeta?b.tableMeta({},g,r):b.tableMeta,S="function"===typeof b.meta?b.meta({},g,r):b.meta,O=BS(BS(BS({verticalAlign:"baseline"},(null===x||void 0===x?void 0:x.headStyles)||{}),(null===S||void 0===S?void 0:S.headStyles)||{}),a),C=(null===S||void 0===S?void 0:S.styles)||{},E=S&&(null===(o=null===S||void 0===S?void 0:S.filter)||void 0===o?void 0:o.component)?null===(c=null===S||void 0===S?void 0:S.filter)||void 0===c?void 0:c.component:"default",A=S&&(null===S||void 0===S?void 0:S.filter)?null===S||void 0===S?void 0:S.filter:{},k=S&&(null===S||void 0===S?void 0:S.tooltip)?null===S||void 0===S?void 0:S.tooltip:"",M=DS[E],P=t&&w()?{onMouseDown:v(),onTouchStart:v(),getIsResizing:_,deltaOffset:s.getState().columnSizingInfo.deltaOffset}:{},R=m();return y()&&n?i.createElement(ub.SortingHeadCell,BS({colSpan:d,"data-testid":"netdata-table-head-cell".concat(l),filter:g.getCanFilter()&&i.createElement(M,BS({column:g,testPrefix:l},A)),headStyles:O,key:f,id:f,onSortClicked:g.getToggleSortingHandler(),"sortby-testid":"netdata-table-head-cell-sortyBy-".concat(f).concat(l),sortDirection:g.getIsSorted(),styles:C,tooltipText:k,width:R},P,u),h?null:wy(g.columnDef.header,p())," "):i.createElement(ub.HeadCell,BS({colSpan:d,"data-testid":"netdata-table-head-cell".concat(l),filter:g.getCanFilter()&&i.createElement(M,BS({column:g,testPrefix:l},A)),headStyles:O,key:f,id:f,styles:C,tooltipText:k,width:R},P,u),h?null:wy(g.columnDef.header,p()))}))},ZS=n(71059),NS=function(){return NS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},NS.apply(this,arguments)},FS=function(e){var t=e.coloredSortedColumn,n=e.disableClickRow,r=e.enableColumnPinning,o=e.getRowHandler,a=e.hoveredRow,s=e.onClickRow,l=e.onHover,u=e.pinnedStyles,c=e.row,f=e.side,d=e.table,p=e.testPrefix,h=e.testPrefixCallback,g=e.virtualRow,v=(0,i.useRef)(),m=c[o](),y=Ky(),b=y.rowsHeight,w=y.setRowHeight,_=b[g.index];return(0,i.useLayoutEffect)((function(){var e;if(r||["left","right"].includes(f)){var t=(null===(e=v.current)||void 0===e?void 0:e.clientHeight)||0;w({index:g.index,height:t})}}),[]),i.createElement(ub.Row,NS({key:g.key,"data-testid":"netdata-table-row".concat(p).concat(h?"-"+h(c.original):""),onClick:c.getCanExpand()&&!c.depth?void 0:s?function(){return s({data:c.original,table:d,fullRow:c})}:void 0,disableClickRow:function(){return null===n||void 0===n?void 0:n({data:c.original,table:d,fullRow:c})},ref:v},_?{height:"".concat(_,"px")}:{}),m.map((function(e,n){return i.createElement(ub.Cell,NS({"data-testid":"netdata-table-cell-".concat(e.column.columnDef.id).concat(p),key:e.column.columnDef.id,index:g.index,isRowExpandable:c.getCanExpand(),isRowHovering:c.id===a,meta:"function"===typeof e.column.columnDef.meta?e.column.columnDef.meta(c):e.column.columnDef.meta,onMouseEnter:function(){return l({row:c.id,column:e.column.id})},onMouseLeave:function(){return l()},pinnedStyles:n===m.length-1?u:{},row:c,cell:e,tableMeta:"function"===typeof e.column.columnDef.tableMeta?e.column.columnDef.tableMeta(c,e,n):e.column.columnDef.tableMeta,width:e.column.getSize()},e.column.getCanSort()&&t&&!!e.column.getIsSorted()&&{background:"columnHighlight",backgroundOpacity:g.index%2===0?"0.2":"0.4"},r?{cellHeight:"".concat(_,"px")}:{}),wy(e.column.columnDef.cell,e.getContext()))})))},HS=function(e){var t,n=e.disableClickRow,r=e.getRowHandler,o=void 0===r?"getCenterVisibleCells":r,a=e.onClickRow,s=e.pinnedStyles,l=e.table,u=e.testPrefix,c=e.testPrefixCallback,f=e.scrollParentRef,d=e.overscan,p=e.hasNextPage,h=e.loading,g=e.loadMore,v=e.coloredSortedColumn,m=e.meta,y=e.enableColumnPinning,b=e.side,w=Ky(),_=w.onHover,x=w.hoveredRow,S=l.getRowModel().rows,O=(0,ZS.MG)({count:S.length,getScrollElement:function(){return f.current},estimateSize:function(){var e,t;return!!(null===(e=m.styles)||void 0===e?void 0:e.height)&&parseInt(m.styles.height)||!!(null===(t=m.cellStyles)||void 0===t?void 0:t.height)&&parseInt(m.cellStyles.height)||35},overscan:d||10}),C=O.getVirtualItems();(0,i.useEffect)((function(){if(g){var e=C[C.length-1];e&&e.index===S.length-1&&p&&!h&&g()}}),[C,h]);var E=C.length>0&&(null===(t=null===C||void 0===C?void 0:C[0])||void 0===t?void 0:t.start)||0,A=O.getTotalSize(),k=(0,i.useMemo)((function(){var e;return C.length>0?A-((null===(e=null===C||void 0===C?void 0:C[C.length-1])||void 0===e?void 0:e.end)||0):0}),[C.length]);return i.createElement(i.Fragment,null,E>0&&i.createElement("tr",null,i.createElement("td",{style:{height:"".concat(E,"px")}})),C.map((function(e){var t=S[e.index];return i.createElement(FS,{key:e.key,table:l,pinnedStyles:s,row:t,virtualRow:e,onClickRow:a,disableClickRow:n,testPrefix:u,testPrefixCallback:c,getRowHandler:o,onHover:_,coloredSortedColumn:v,hoveredRow:x,enableColumnPinning:y,side:b})})),k>0&&i.createElement("tr",null,i.createElement("td",{style:{height:"".concat(k,"px")}})))},VS=function(){return VS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},VS.apply(this,arguments)},zS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},US=function(e){var t=e.dataGa,n=e.disableClickRow,r=e.enableResize,o=e.enableSorting,a=e.getRowHandler,s=e.headers,l=e.onClickRow,u=e.onHoverCell,c=e.pinnedStyles,f=void 0===c?{}:c,d=e.table,p=e.tableRef,h=e.testPrefix,g=e.testPrefixCallback,v=e.width,m=e.scrollParentRef,y=e.virtualizeOptions,b=void 0===y?{}:y,w=e.coloredSortedColumn,_=e.meta,x=e.side,S=zS(e,["dataGa","disableClickRow","enableResize","enableSorting","getRowHandler","headers","onClickRow","onHoverCell","pinnedStyles","table","tableRef","testPrefix","testPrefixCallback","width","scrollParentRef","virtualizeOptions","coloredSortedColumn","meta","side"]);return i.createElement(ub,VS({dataGa:t,"data-testid":"netdata-table".concat(h),ref:p,testPrefix:h,width:v},S),i.createElement(ub.Head,{"data-testid":"netdata-table-head".concat(h)},s.map((function(e,n){return i.createElement(ub.HeadRow,{key:n,id:e.id,"data-testid":"netdata-table-headRow".concat(h)},i.createElement(LS,{dataGa:t,enableResize:r,enableSorting:o,headers:e.headers,pinnedStyles:f,table:d,testPrefix:h,coloredSortedColumn:o&&w}))}))),i.createElement(ub.Body,{"data-testid":"netdata-table-body".concat(h)},i.createElement(HS,VS({scrollParentRef:m,disableClickRow:n,getRowHandler:a,onClickRow:l,onHoverCell:u,pinnedStyles:f,table:d,testPrefix:h,testPrefixCallback:g,coloredSortedColumn:o&&w,meta:_,enableColumnPinning:S.enableColumnPinning,side:x},b))))},GS=function(){return GS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},GS.apply(this,arguments)},WS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},qS=function(e){var t,n,r=e.dataGa,o=e.disableClickRow,a=e.enableResize,s=e.enableSorting,l=e.onClickRow,u=e.onHoverCell,c=e.table,f=e.testPrefix,d=e.testPrefixCallback,p=e.scrollParentRef,h=e.side,g=WS(e,["dataGa","disableClickRow","enableResize","enableSorting","onClickRow","onHoverCell","table","testPrefix","testPrefixCallback","scrollParentRef","side"]),v=au(),m="left"==h,y=m?"getLeftVisibleCells":"getRightVisibleCells",b=m?"borderRight":"borderLeft",w=m?"getLeftTotalSize":"getRightTotalSize";return i.createElement(Te.Z,{background:"mainBackground",sx:(t={position:"sticky"},t[h]=0,t.zIndex=11,t.height="fit-content",t)},i.createElement(US,GS({scrollParentRef:p,dataGa:"pin-".concat(r),disableClickRow:o,enableResize:a,enableSorting:s,getRowHandler:y,onClickRow:l,onHoverCell:u,pinnedStyles:(n={},n[b]="1px solid ".concat(v("borderSecondary")),n),table:c,testPrefix:"pin".concat(f),testPrefixCallback:d,width:a?"".concat(c[w](),"px"):"100%",side:h},g)))},$S=function(){return $S=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},$S.apply(this,arguments)},YS=(0,i.memo)((function(e){var t=e.bulkActions,n=e.dataGa,r=e.groupByOptions,o=e.groupValue,a=e.onGroupBy,s=e.onSearch,l=e.searchPlaceholder,u=void 0===l?"Search":l,c=e.searchValue,f=e.tableMeta,d=e.title,p=null===c||void 0===c?void 0:c.split(" ").filter((function(e){return!!e})).length;return f="function"===typeof f?f({},{},null):f,i.createElement(Se.default,$S({width:"100%",zIndex:10,background:"mainBackground",padding:[0,0,4],gap:3,alignItems:"center"},f.bulkActionsStyles),!!d&&i.createElement(He.TextBig,{margin:[0,0,0,3],strong:!0},d),s&&i.createElement(Se.default,$S({width:{max:57.5,base:"40%"}},f.searchContainerStyles),i.createElement(IS.Z,$S({"data-testid":"table-global-search-filter","data-ga":"".concat(n,"::search-").concat(p,"-words::table-filter"),defaultValue:c,iconLeft:i.createElement(_e.JO,{color:"textLite",name:"magnify",height:"18px",width:"18px"}),onChange:(0,jg.D)(300,(function(e){e.persist(),s(e.target.value)})),placeholder:u},f.searchStyles))),r&&i.createElement(Se.default,$S({alignItems:"center","data-testid":"tableGroupBy",gap:2},f.groupByContainerStyles),i.createElement(He.TextSmall,{"data-testid":"tableGroupByLabel",color:"textLite",whiteSpace:"nowrap"},"Group by"),i.createElement(SS,{"data-ga":"".concat(n,"::group-by-filter::table-filter"),"data-testid":"tableGroupByFilter",menuPortalTarget:document.body,onChange:function(e){var t=e.value;return a(t)},options:Object.values(r),styles:{size:"tiny",minWidth:120},value:r[o]||r.default})),!!t&&i.createElement(Se.default,{gap:1,"data-testid":"bulk-actions",width:"100%",justifyContent:"end"},t))})),XS=(0,i.memo)((function(e){var t=e.table,n=t.nextPage,r=t.previousPage,o=t.getCanPreviousPage,a=t.getCanNextPage,s=t.getPageCount,l=t.setPageIndex,u=t.resetPageIndex,c=t.getState().pagination.pageIndex;return i.createElement(Se.default,{alignItems:"center",justifyContent:"end",height:"45px",background:"mainBackground",border:{side:"top",color:"borderSecondary"}},i.createElement(nt,{title:"First","data-testid":"pagination-go-to-first",cursor:"pointer",onClick:u,icon:"chevron_left_start",iconSize:"small",tooltip:"test",disabled:!o()}),i.createElement(nt,{title:"Previous","data-testid":"pagination-go-to-previous",cursor:"pointer",onClick:r,icon:"chevron_left",iconSize:"small",tooltip:"Previous",disabled:!o()}),i.createElement(He.Text,{"data-testid":"pagination-counter"},"Page ",0===s()?0:c," of ",s()),i.createElement(nt,{title:"Next","data-testid":"pagination-go-to-next",cursor:"pointer",onClick:n,icon:"chevron_right",iconSize:"small",disabled:!a()}),i.createElement(nt,{title:"Last","data-testid":"pagination-go-to-last",cursor:"pointer",onClick:function(){return l(s()-1)},icon:"chevron_right_end",iconSize:"small",disabled:!a()}))})),KS=function(){return KS=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},KS.apply(this,arguments)},JS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},QS=function(){},eO={},tO={comparison:xy,select:function(e,t,n){var r=Array.isArray(n),o=r?Sy(e,t,n):Oy(e,t,n);return!o&&e.subRows.length?e.subRows.some((function(e){return r?Sy(e,t,n):Oy(e,t,n)})):o}},nO=(0,i.forwardRef)((function(e,t){var n=e.bulkActions,r=e.columnPinning,o=e.columnVisibility,a=e.expanded,s=e.rowSelection,l=e.data,u=e.dataColumns,c=e.dataGa,f=e.enableColumnPinning,d=e.enableColumnVisibility,p=e.enablePagination,h=e.enableResize,g=e.enableSelection,v=e.enableSubRowSelection,m=e.enableSorting,y=e.globalFilter,b=e.globalFilterFn,w=void 0===b?Cy:b,_=e.grouping,x=void 0===_?"":_,S=e.groupByColumns,O=e.onClickRow,C=e.onColumnVisibilityChange,E=e.onGlobalSearchChange,A=e.onGroupByChange,k=e.onHoverCell,M=e.onRowSelected,P=e.onSortingChange,R=e.onExpandedChange,T=e.paginationOptions,I=e.rowActions,B=e.sortBy,j=e.testPrefix,D=e.meta,L=e.title,Z=e.virtualizeOptions,N=JS(e,["bulkActions","columnPinning","columnVisibility","expanded","rowSelection","data","dataColumns","dataGa","enableColumnPinning","enableColumnVisibility","enablePagination","enableResize","enableSelection","enableSubRowSelection","enableSorting","globalFilter","globalFilterFn","grouping","groupByColumns","onClickRow","onColumnVisibilityChange","onGlobalSearchChange","onGroupByChange","onHoverCell","onRowSelected","onSortingChange","onExpandedChange","paginationOptions","rowActions","sortBy","testPrefix","meta","title","virtualizeOptions"]),F=(0,i.useState)(o),H=F[0],V=F[1];(0,i.useEffect)((function(){H!==o&&V(o)}),[o]);var z=(0,i.useState)((function(){return r||{}})),U=z[0],G=z[1];(0,i.useEffect)((function(){r&&H!==r&&G(r)}),[r]);var W=(0,i.useState)(s),q=W[0],$=W[1];(0,i.useEffect)((function(){q!==s&&$(s)}),[s]);var Y=(0,i.useState)((function(){return B||[]})),X=Y[0],K=Y[1];(0,i.useEffect)((function(){B&&X!==B&&K(B)}),[B]);var J=(0,i.useCallback)((function(e){P(e),K(e)}),[P]),Q=(0,i.useState)((function(){return{pageIndex:T.pageIndex,pageSize:T.pageSize}})),ee=Q[0],te=Q[1],ne=(0,i.useCallback)((function(e){C(e),V(e)}),[]),re=(0,i.useState)(y),oe=re[0],ie=re[1],ae=(0,i.useState)(x),se=ae[0],le=ae[1],ue=(0,i.useMemo)((function(){return S?KS({default:{label:"None",value:""}},Object.keys(S).reduce((function(e,t){var n,r=u.find((function(e){return e.id===t}));return KS(KS({},e),((n={})[t]={label:(null===r||void 0===r?void 0:r.name)||r.id,value:t},n))}),{})):null}),[S]);(0,i.useEffect)((function(){y&&oe!==y&&ie(y)}),[B]);var ce=(0,i.useCallback)((function(e){null===E||void 0===E||E(e),ie(String(e))}),[]),fe=(0,i.useCallback)((function(e){null===A||void 0===A||A(e),le(e)}),[A]),de=By(u,{testPrefix:j,enableSelection:g,rowActions:I,tableMeta:D}),pe=(0,i.useState)(a),he=pe[0],ge=pe[1],ve=(0,i.useCallback)((function(e){R(e),ge(e)}),[]),me=function(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=i.useState((()=>({current:gy(t)}))),[r,o]=i.useState((()=>n.current.initialState));return n.current.setOptions((t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{o(t),null==e.onStateChange||e.onStateChange(t)}}))),n.current}(KS(KS({columns:de,data:l,manualPagination:!p,columnResizeMode:h?"onEnd":"",filterFns:tO,state:{columnVisibility:H,rowSelection:q,globalFilter:oe,sorting:X,pagination:ee,columnPinning:U,expanded:he,grouping:(0,i.useMemo)((function(){var e;return Array.isArray(se)?[se].filter(Boolean):(null===(e=null===S||void 0===S?void 0:S[se])||void 0===e?void 0:e.columns)||[]}),[se]),columnOrder:[]},onExpandedChange:ve},w?{globalFilterFn:w}:{}),{getCoreRowModel:e=>Mm((()=>[e.options.data]),(t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(t,o,i){void 0===o&&(o=0);const a=[];for(let l=0;l<t.length;l++){const u=vy(e,e._getRowId(t[l],l,i),t[l],l,o,void 0,null==i?void 0:i.id);var s;n.flatRows.push(u),n.rowsById[u.id]=u,a.push(u),e.options.getSubRows&&(u.originalSubRows=e.options.getSubRows(t[l],l),null!=(s=u.originalSubRows)&&s.length&&(u.subRows=r(u.originalSubRows,o+1,u)))}return a};return n.rows=r(t),n}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}}),getFilteredRowModel:e=>Mm((()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter]),((t,n,r)=>{if(!t.rows.length||(null==n||!n.length)&&!r){for(let e=0;e<t.flatRows.length;e++)t.flatRows[e].columnFilters={},t.flatRows[e].columnFiltersMeta={};return t}const o=[],i=[];(null!=n?n:[]).forEach((t=>{var n;const r=e.getColumn(t.id);if(!r)return;const i=r.getFilterFn();i&&o.push({id:t.id,filterFn:i,resolvedValue:null!=(n=null==i.resolveFilterValue?void 0:i.resolveFilterValue(t.value))?n:t.value})}));const a=n.map((e=>e.id)),s=e.getGlobalFilterFn(),l=e.getAllLeafColumns().filter((e=>e.getCanGlobalFilter()));let u,c;r&&s&&l.length&&(a.push("__global__"),l.forEach((e=>{var t;i.push({id:e.id,filterFn:s,resolvedValue:null!=(t=null==s.resolveFilterValue?void 0:s.resolveFilterValue(r))?t:r})})));for(let e=0;e<t.flatRows.length;e++){const n=t.flatRows[e];if(n.columnFilters={},o.length)for(let e=0;e<o.length;e++){u=o[e];const t=u.id;n.columnFilters[t]=u.filterFn(n,t,u.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))}if(i.length){for(let e=0;e<i.length;e++){c=i[e];const t=c.id;if(c.filterFn(n,t,c.resolvedValue,(e=>{n.columnFiltersMeta[t]=e}))){n.columnFilters.__global__=!0;break}}!0!==n.columnFilters.__global__&&(n.columnFilters.__global__=!1)}}return my(t.rows,(e=>{for(let t=0;t<a.length;t++)if(!1===e.columnFilters[a[t]])return!1;return!0}),e)}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}}),onRowSelectionChange:$,onGlobalFilterChange:ce,onSortingChange:J,getSortedRowModel:e=>Mm((()=>[e.getState().sorting,e.getPreSortedRowModel()]),((t,n)=>{if(!n.rows.length||null==t||!t.length)return n;const r=e.getState().sorting,o=[],i=r.filter((t=>{var n;return null==(n=e.getColumn(t.id))?void 0:n.getCanSort()})),a={};i.forEach((t=>{const n=e.getColumn(t.id);n&&(a[t.id]={sortUndefined:n.columnDef.sortUndefined,invertSorting:n.columnDef.invertSorting,sortingFn:n.getSortingFn()})}));const s=e=>{const t=[...e];return t.sort(((e,t)=>{for(let r=0;r<i.length;r+=1){var n;const o=i[r],s=a[o.id],l=null!=(n=null==o?void 0:o.desc)&&n;let u=0;if(s.sortUndefined){const n=void 0===e.getValue(o.id),r=void 0===t.getValue(o.id);(n||r)&&(u=n&&r?0:n?s.sortUndefined:-s.sortUndefined)}if(0===u&&(u=s.sortingFn(e,t,o.id)),0!==u)return l&&(u*=-1),s.invertSorting&&(u*=-1),u}return e.index-t.index})),t.forEach((e=>{var t;o.push(e),null!=(t=e.subRows)&&t.length&&(e.subRows=s(e.subRows))})),t};return{rows:s(n.rows),flatRows:o,rowsById:n.rowsById}}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}}),getPaginationRowModel:e=>Mm((()=>[e.getState().pagination,e.getPrePaginationRowModel(),e.options.paginateExpandedRows?void 0:e.getState().expanded]),((t,n)=>{if(!n.rows.length)return n;const{pageSize:r,pageIndex:o}=t;let{rows:i,flatRows:a,rowsById:s}=n;const l=r*o,u=l+r;let c;i=i.slice(l,u),c=e.options.paginateExpandedRows?{rows:i,flatRows:a,rowsById:s}:by({rows:i,flatRows:a,rowsById:s}),c.flatRows=[];const f=e=>{c.flatRows.push(e),e.subRows.length&&e.subRows.forEach(f)};return c.rows.forEach(f),c}),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getExpandedRowModel:e=>Mm((()=>[e.getState().expanded,e.getPreExpandedRowModel(),e.options.paginateExpandedRows]),((e,t,n)=>!t.rows.length||!0!==e&&!Object.keys(null!=e?e:{}).length?t:n?by(t):t),{key:!1,debug:()=>{var t;return null!=(t=e.options.debugAll)?t:e.options.debugTable}}),getGroupedRowModel:yy(),getSubRows:function(e){return e.children},onPaginationChange:te,onColumnVisibilityChange:ne,onColumnPinningChange:G,enableSubRowSelection:v,columnGroupingMode:"reorder"})),ye=(0,i.useState)([]),be=ye[0],we=ye[1];(0,i.useEffect)((function(){var e=me.getSelectedRowModel().flatRows;if(e){var t=e.reduce((function(e,t){var n=t.original;return(null===n||void 0===n?void 0:n.disabled)||e.push(n),e}),[]);we(t),null===M||void 0===M||M(t)}}),[q,me]);var xe=f||d||!!n,Oe=(0,i.useRef)(),Ce=function(e){var t=e.bulkActions,n=e.enableColumnVisibility,r=Wy(e,["bulkActions","enableColumnVisibility"]),o=$y(n,r);return(0,i.useMemo)((function(){return t?Object.keys(t).map((function(e){var n=qy[e]||qy.delete,o=t[e];return i.createElement(Zy,Gy({key:e},r,n,{id:e},o))})).concat(o):o}),[t,o])}({bulkActions:n,columnPinning:U,dataGa:c,enableColumnVisibility:d,enableColumnPinning:f,selectedRows:be,table:me,testPrefix:j}),Ee=(0,i.useCallback)((function(e){return{side:e,enableResize:h,onClickRow:O,enableSorting:m,table:me,headers:"left"===e?me.getLeftHeaderGroups():me.getRightHeaderGroups(),testPrefix:j,dataGa:c,scrollParentRef:Oe,virtualizeOptions:Z,meta:D}}),[h,O,m,me,j,c,Oe,Z,D]),Ae=Z||{},ke=Ae.hasNextPage,Me=Ae.loading,Pe=Ae.warning;return i.createElement(Qy,{onHoverCell:k},i.createElement(Se.default,{height:"100%",overflow:"hidden",column:!0,ref:t},E||xe?i.createElement(YS,{bulkActions:xe?Ce:null,dataGa:c,groupByOptions:ue,groupValue:se,onGroupBy:fe,onSearch:E?ce:null,searchValue:oe,tableMeta:D,title:L}):null,i.createElement(Se.default,{row:!0,ref:Oe,overflow:"auto"},f&&U.left&&i.createElement(qS,KS({},Ee("left"))),i.createElement(US,KS({headers:U?me.getCenterHeaderGroups():me.getHeaderGroups(),width:"100%",getRowHandler:f?"getCenterVisibleCells":"getVisibleCells",scrollParentRef:Oe,enableResize:h,onClickRow:O,enableSorting:m,enableColumnPinning:f,table:me,dataGa:c,testPrefix:j,virtualizeOptions:Z,meta:D,side:"center"},N)),f&&U.right&&i.createElement(qS,KS({},Ee("right")))),!ke&&!Me&&!!Pe&&i.createElement(Se.default,{alignItems:"center",justifyContent:"center",gap:2,padding:[4],width:"100%"},i.createElement(_e.JO,{name:"warning_triangle_hollow",color:"warning"})," ",i.createElement(He.Text,{color:"warningText"},Pe)),ke&&Me&&i.createElement(Se.default,{alignItems:"center",justifyContent:"center",gap:2,padding:[4],width:"100%"},i.createElement(_e.NZ.LoaderIcon,null)," ",i.createElement(He.Text,null,"Loading more...")),p&&i.createElement(XS,{table:me})))}));nO.defaultProps={coloredSortedColumn:!0,enableColumnPinning:!1,enableColumnVisibility:!1,enableResize:!1,onColumnVisibilityChange:QS,onSortingChange:QS,onExpandedChange:QS,paginationOptions:{pageIndex:0,pageSize:100},expanded:eO,rowSelection:eO,rowActions:eO,meta:eO,globalFilter:"",testPrefix:""};var rO=nO},21352:function(e,t){"use strict";var n={end:"flex-end",start:"flex-start",center:"center",stretch:"stretch"};t.Z=function(e){var t=e.alignSelf;return t in n&&"align-self: ".concat(n[t],";")}},55199:function(e,t){"use strict";var n={pointer:"pointer",default:"default",grab:"grab",move:"move",none:"none",text:"text",wait:"wait",notAllowed:"not-allowed",initial:"initial",inherit:"inherit"};t.Z=function(e){var t=e.cursor;return t&&t in n?"cursor: ".concat(n[t],";"):""}},11275:function(e,t,n){"use strict";n.d(t,{_Y:function(){return u},aY:function(){return i},f1:function(){return d}});var r,o,i="\n font-family: inherit;\n border: none;\n outline: none;\n padding: 0;\n margin: 0;\n",a=n(60677),s=n(50757),l=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},u=(0,a.css)(r||(r=l(["\n border-color: ",";\n box-shadow: 0 0 0 1px ",";\n"],["\n border-color: ",";\n box-shadow: 0 0 0 1px ",";\n"])),(0,s.dI)("controlFocused"),(0,s.dI)("controlFocused")),c=n(90509),f=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},d=(0,a.css)(o||(o=f(["\n &::-webkit-scrollbar {\n width: ",";\n }\n &::-webkit-scrollbar-track {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb:hover {\n background-color: ",";\n }\n &::-webkit-scrollbar-track-piece {\n background-color: ",";\n }\n &::-webkit-scrollbar-corner {\n background-color: ",";\n }\n"],["\n &::-webkit-scrollbar {\n width: ",";\n }\n &::-webkit-scrollbar-track {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb {\n border-radius: ",";\n background-color: ",";\n }\n &::-webkit-scrollbar-thumb:hover {\n background-color: ",";\n }\n &::-webkit-scrollbar-track-piece {\n background-color: ",";\n }\n &::-webkit-scrollbar-corner {\n background-color: ",";\n }\n"])),(0,c.getSizeBy)(1),(0,c.getSizeBy)(.5),(0,c.getRgbColor)("border",.1),(0,c.getSizeBy)(1),(0,c.getRgbColor)("border",.3),(0,c.getRgbColor)("border",.5),(0,c.getRgbColor)("border",.3),(0,c.getRgbColor)("border",.3))},69498:function(e,t,n){"use strict";var r=n(13947);t.Z=function(e){var t=e.theme,n=e.margin;return n?Array.isArray(n)&&n.length>=1&&n.length<=4?"margin: ".concat((0,r.t)(t,n),";"):(console.error("Please provide an array (max 4 elements) for `margin` style helper."),""):""}},33778:function(e,t){"use strict";var n={weak:.3,medium:.4,strong:.8};t.Z=function(e){var t=e.opacity,r=t&&n[t];return r?"opacity: ".concat(r,";"):""}},96069:function(e,t,n){"use strict";var r=n(13947);t.Z=function(e){var t=e.theme,n=e.padding;return n?Array.isArray(n)&&n.length>=1&&n.length<=4?"padding: ".concat((0,r.t)(t,n),";"):(console.error("Please provide an array (max 4 elements) for `padding` style helper."),""):""}},94932:function(e,t){"use strict";var n={static:"static",absolute:"absolute",fixed:"fixed",relative:"relative",sticky:"sticky",initial:"initial",inherit:"inherit"};t.Z=function(e){var t=e.position;return t in n?"position: ".concat(t,";"):""}},1605:function(e,t){"use strict";var n=function(e,t){return!0===t?"".concat(e,"px"):"number"===typeof t?"".concat(e*t,"px"):"string"===typeof t?t:""},r=function(e,t){return"border-top-left-radius: ".concat(n(e,t),";")},o=function(e,t){return"border-top-right-radius: ".concat(n(e,t),";")},i=function(e,t){return"border-bottom-left-radius: ".concat(n(e,t),";")},a=function(e,t){return"border-bottom-right-radius: ".concat(n(e,t),";")},s={top:function(e,t){return"\n ".concat(r(e,t),"\n ").concat(o(e,t),"\n ")},left:function(e,t){return"\n ".concat(r(e,t),"\n ").concat(i(e,t),"\n ")},bottom:function(e,t){return"\n ".concat(i(e,t),"\n ").concat(a(e,t),"\n ")},right:function(e,t){return"\n ".concat(o(e,t),"\n ").concat(a(e,t),"\n ")},"top-left":r,"top-right":o,"bottom-left":i,"bottom-right":a};t.Z=function(e){var t=e.theme.constants.SIZE_SUB_UNIT,r=e.round;if(!r)return"";var o=n(t,r);if(o)return"border-radius: ".concat(o,";");var i=r.side,a=r.size,l=void 0===a?1:a;return i in s?"".concat(s[i](t,l)):""}},13692:function(e,t){"use strict";t.Z=function(e,t){"function"===typeof e?e(t):e&&(e.current=t)}},98625:function(e,t){"use strict";var n={none:"none",capitalize:"capitalize",uppercase:"uppercase",lowercase:"lowercase",firstLetter:"firstLetter",fullWidth:"full-width"};t.Z=function(e){var t=(void 0===e?{}:e).textTransform,r=void 0===t?n.none:t;return r===n.firstLetter?"text-transform: lowercase;\n &::first-letter {\n text-transform: uppercase;\n }\n":"text-transform: ".concat(r in n?n[r]:n.none,";")}},13947:function(e,t,n){"use strict";n.d(t,{F:function(){return r},t:function(){return o}});var r=function(e,t){return"number"===typeof t?0===(n=e.constants.SIZE_SUB_UNIT*t)?"0":"".concat(n,"px"):"auto";var n},o=function(e,t){return t.map((function(t){return r(e,t)})).join(" ")}},69838:function(e,t){"use strict";t.Z=function(e){var t=e.zIndex;if(t&&"number"===typeof t)return"z-index: ".concat(t,";")}},84436:function(e,t,n){"use strict";n.r(t);var r=n(67294);t.default=function(e,t,n,o){var i=(0,r.useState)(!1),a=i[0],s=i[1],l=(0,r.useState)(!1),u=l[0],c=l[1];return[a,u,(0,r.useCallback)((function(){if(e.current&&t.current&&o){var n=e.current,r=t.current;if(Array.isArray(r)&&r.length){var i=r[r.length-1],a=n.scrollLeft,l=n.getBoundingClientRect().right,u=i.getBoundingClientRect().right;u>l&&c(!0),u<=l&&c(!1),a>0&&s(!0),0===a&&s(!1)}}}),[o,n])]}},50757:function(e,t,n){"use strict";n.d(t,{Cs:function(){return m},XU:function(){return d},nF:function(){return y.calcSize},B1:function(){return y.extendTheme},Lq:function(){return y.getColor},j2:function(){return y.getGutterHeight},fS:function(){return y.getOrElse},zt:function(){return y.getRgbColor},sq:function(){return y.getSizeBy},T2:function(){return y.getSizeUnit},dI:function(){return y.getValidatedControlColor},yw:function(){return y.propOrElse}});var r={};n.r(r),n.d(r,{GUTTER_HEIGHT:function(){return c},SIZE_SUB_UNIT:function(){return l},SIZE_UNIT:function(){return u}});var o={transparent:{full:"rgba(255,255,255,0.0)",semi:"rgba(255, 255, 255, 0.5)",popover:"rgba(18, 36, 50, 0.9)"},green:{poker:"#2f5446",chateau:"#42B861",netdata:"#00AB44",deyork:"#68C47D",vista:"#96D4A2",fringyFlower:"#BFE5C6",frostee:"#E5F5E8",limeGreen:"#48E499",green10:"#001107",green20:"#00220E",green30:"#003314",green40:"#00441B",green50:"#005622",green60:"#006729",green70:"#00783",green80:"#008936",green90:"#009A3D",green100:"#00AB44",green110:"#00CD51",green120:"#00EF5F",green130:"#12FF70",green140:"#34FF84",green150:"#56FF99",green160:"#77FFAD",green170:"#99FFC2",green180:"#BBFFD6",green190:"#DDFFEB",green195:"#EEFFF5",green196:"#F1FFF7",green197:"#F5FFF9",green198:"#F8FFFB",green199:"#FCFFFD",green200:"#09AB49",green300:"#13A94F",green400:"#1DA754",green500:"#29A45A",green600:"#35A060",green700:"#439B66",green800:"#51966C",green900:"#608F73",green1000:"#6F8879"},red:{pomegranate:"#FF4136",carnation:"#F95251",apricot:"#ED7374",wewak:"#F59B9B",pastelpink:"#FFCED3",lavender:"#FFEBEF",red10:"#160205",red20:"#2C0409",red30:"#42070E",red40:"#580913",red50:"#6E0B18",red60:"#830D1C",red70:"#990F21",red80:"#AF1226",red90:"#C5142A",red100:"#DB162F",red110:"#E9233C",red120:"#EB3B52",red130:"#EE5467",red140:"#F06C7D",red150:"#F38593",red160:"#F59DA8",red170:"#F8B6BE",red180:"#FACED4",red190:"#FDE7E9",red200:"#D22037",red300:"#CA2A3E",red400:"#C13546",red500:"#B83F4E",red600:"#AF4956",red700:"#A6545F",red800:"#9D5F67",red900:"#936A6F",red1000:"#8A7577"},yellow:{amber:"#FFC300",sunglow:"#FFCC26",seaBuckthorn:"#F9A825",mustard:"#FFD74F",salomie:"#FFE182",buttermilk:"#FFEDB3",ginfizz:"#FFF8E1",yellow10:"#201300",yellow20:"#402600",yellow30:"#603900",yellow40:"#804B00",yellow50:"#A05E00",yellow60:"#BF7100",yellow70:"#DF8400",yellow80:"#FF9700",yellow90:"#FFA420",yellow100:"#FFB140",yellow110:"#FFB953",yellow120:"#FFC166",yellow130:"#FFC879",yellow140:"#FFD08C",yellow150:"#FFD8A0",yellow160:"#FFE0B3",yellow170:"#FFE8C6",yellow180:"#FFEFD9",yellow190:"#FFF7EC",yellow200:"#F5AD44",yellow300:"#EBA848",yellow400:"#E0A44D",yellow500:"#D49F52",yellow600:"#C79A58",yellow700:"#BA955F",yellow800:"#AD9066",yellow900:"#9E8B6E",yellow1000:"#908577"},neutral:{white:"#FFFFFF",black:"#000000",limedSpruce:"#35414A",regentgrey:"#8F9EAA",blackhaze:"#F7F8F8",brightGrey:"#E9ECEC",chineseWhite:"#DEE3E3",iron:"#CFD5DA",porcelain:"#ECEEEF",bluebayoux:"#536775",shark:"#1C1E22",tuna:"#383B40",outerSpace:"#2B3136",ratsbane:"#3E4551",arsenic:"#353B45",gunmetal:"#282C34",darkGunmetal:"#21252B",eerieBlack:"#181c20",grey05:"#040505",grey10:"#080A0A",grey15:"#0C0F0F",grey20:"#101313",grey25:"#151818",grey30:"#191D1D",grey35:"#1D2222",grey40:"#212727",grey45:"#252C2C",grey50:"#293030",grey55:"#2D3535",grey60:"#313A3A",grey65:"#353F3F",grey70:"#394444",grey75:"#3D4949",grey80:"#424E4E",grey85:"#465252",grey90:"#4A5757",grey95:"#4E5C5C",grey100:"#526161",grey105:"#5A6A6A",grey110:"#617373",grey115:"#697C7C",grey120:"#708585",grey125:"#788D8D",grey130:"#819595",grey135:"#8A9C9C",grey140:"#93A4A4",grey145:"#9CACAC",grey150:"#A5B3B3",grey155:"#AEBBBB",grey160:"#B7C2C2",grey165:"#C0CACA",grey170:"#C9D2D2",grey175:"#D2D9D9",grey180:"#DBE1E1",grey185:"#E4E8E8",grey190:"#EDF0F0",grey195:"#F6F7F7"},purple:{mauve:"#DB94F4",mauveDark:"#CB66EF",mauveFocus:"#EBC2F9",daisy:"#563D7C",lilac:"#B596F8",lilacLite:"#C6AEFA",lilacFocus:"#824EF3"},blue:{aquamarine:"#19C89E",indigo:"#5790FF",cyan:"#00BAE2"},shadows:{dropdownLight:"rgba(9, 30, 66, 0.15)",dropdownDark:"rgba(0, 0, 0, 0.4)"}},i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)},a={primary:o.green.green100,accent:o.green.chateau,main:o.neutral.limedSpruce,border:o.neutral.grey185,borderSecondary:o.neutral.grey180,disabled:o.neutral.porcelain,disabledBackground:o.neutral.porcelain,dropdown:o.neutral.white,dropdownShadow:o.shadows.dropdownLight,elementBackground:o.neutral.blackhaze,elementBackgroundHover:o.neutral.white,mainBackground:o.neutral.grey195,mainBackgroundDisabled:o.neutral.blackhaze,modalHeaderBackground:o.neutral.grey185,modalTabsBackground:o.neutral.grey190,modalBackground:o.neutral.grey195,modalInfoBackground:o.neutral.blackhaze,secondaryColor:o.green.green100,primaryHighlight:o.green.green110,secondaryHighlight:o.green.green190,neutralHighlight:o.green.grey50,success:o.green.green100,successLite:o.green.green190,successSemi:o.green.green190,successBackground:o.green.green50,successText:o.green.green100,warning:o.yellow.yellow80,warningLite:o.yellow.yellow190,warningSemi:o.yellow.yellow190,warningBackground:o.yellow.yellow160,warningBannerBg:o.yellow.yellow160,warningText:o.yellow.seaBuckthorn,error:o.red.red100,errorLite:o.red.red190,errorSemi:o.red.red190,errorBackground:o.red.red150,errorBannerBg:o.red.red170,errorText:o.red.pomegranate,generic:o.neutral.grey165,live:o.green.green100,stale:o.green.green900,unseen:o.yellow.yellow900,offline:o.neutral.grey145,attention:o.purple.mauve,attentionSecondary:o.purple.daisy,separator:o.neutral.grey185,controlFocused:o.neutral.limedSpruce,selected:o.neutral.grey180,tooltip:o.neutral.shark,bright:o.neutral.white,text:o.neutral.grey100,textLite:o.neutral.grey120,textFocus:o.neutral.grey90,textDescription:o.neutral.grey120,sectionHeaderBackground:o.neutral.limedSpruce,sectionTitle:o.neutral.grey100,sectionDescription:o.neutral.grey120,placeholder:o.neutral.grey120,key:o.neutral.regentgrey,panel:o.neutral.limedSpruce,panelBg:o.neutral.grey190,mainChartBg:o.transparent.full,mainChartHeaderBg:o.neutral.grey190,mainChartBorder:o.neutral.grey185,mainChartTboxHover:o.neutral.grey180,sideBar:o.neutral.grey190,sideBarMini:o.neutral.grey185,spaceSelected:o.neutral.grey175,spaceIdle:o.neutral.grey195,spaceHovered:o.neutral.grey180,menuItem:o.neutral.bluebayoux,nodesViewMiniCharts:o.neutral.iron,topBarBg:o.neutral.grey190,elevationLevelOne:o.neutral.grey185,inputBg:o.neutral.grey190,inputBorder:o.neutral.grey185,inputBorderHover:o.neutral.grey165,inputBorderFocus:o.neutral.grey165,nodeBadgeBackground:o.neutral.porcelain,nodeBadgeBorder:o.neutral.iron,nodeBadgeColor:o.neutral.bluebayoux,neutralPillBg:o.neutral.grey155,neutralPillBorder:o.neutral.grey155,neutralPillColor:o.neutral.grey100,alertIcon:o.neutral.grey180,idleError:o.red.red170,idleWarning:o.yellow.yellow170,idleClear:o.green.green190,dropdownTable:o.neutral.white,tableRowBg:o.neutral.grey190,tableRowBgHover:o.green.green195,columnHighlight:o.green.green190,iconColor:o.neutral.limedSpruce,progressBg:o.neutral.chineseWhite,resizerLine:o.green.vista,anomalyText:o.purple.lilac,anomalyTextLite:o.purple.lilacLite,anomalyTextFocus:o.purple.lilacFocus,terminalGreen:o.green.green197,terminalGreenBorder:o.green.green,darkBackground:o.neutral.grey195,integrationMenuItemHover:o.neutral.grey180},s=i(i({},a),o),l=4,u=8,c=8,f=function(){return f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},f.apply(this,arguments)},d=f(f({},{name:"Default",version:"0.0.1"}),{constants:r,colors:s}),p=function(){return p=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},p.apply(this,arguments)},h={primary:o.green.green100,accent:o.green.chateau,main:o.neutral.white,border:o.neutral.grey45,borderSecondary:o.neutral.grey35,disabled:o.neutral.tuna,disabledBackground:o.neutral.outerSpace,dropdown:o.neutral.grey40,dropdownShadow:o.shadows.dropdownDark,elementBackground:o.neutral.grey35,elementBackgroundHover:o.neutral.tuna,mainBackground:o.neutral.grey15,mainBackgroundDisabled:o.neutral.outerSpace,modalHeaderBackground:o.neutral.grey10,modalTabsBackground:o.neutral.grey20,modalBackground:o.neutral.grey30,modalInfoBackground:o.neutral.grey50,menuItemSelected:o.green.green20,menuItemHover:o.green.green10,primaryHighlight:o.green.green100,secondaryColor:o.green.green110,secondaryHighlight:o.green.green40,neutralHighlight:o.green.grey50,success:o.green.green100,successLite:o.green.green190,successSemi:o.green.green20,successBackground:o.green.green50,successText:o.green.green100,warning:o.yellow.yellow80,warningLite:o.yellow.yellow190,warningSemi:o.yellow.yellow20,warningBackground:o.yellow.yellow60,warningBannerBg:o.yellow.yellow60,warningText:o.yellow.seaBuckthorn,error:o.red.red100,errorLite:o.red.red190,errorSemi:o.red.red20,errorBackground:o.red.red50,errorBannerBg:o.red.red50,errorText:o.red.pomegranate,generic:o.neutral.grey60,live:o.green.green100,stale:o.green.green900,unseen:o.yellow.yellow900,offline:o.neutral.grey90,attention:o.purple.mauve,attentionSecondary:o.purple.daisy,separator:o.neutral.borderSecondary,controlFocused:o.neutral.white,selected:o.neutral.grey55,highlight:o.neutral.grey55,tooltip:o.neutral.outerSpace,bright:o.neutral.white,text:o.neutral.grey155,textLite:o.neutral.grey120,textFocus:o.neutral.grey160,textDescription:o.neutral.grey120,sectionHeaderBackground:o.neutral.white,sectionTitle:o.neutral.grey155,sectionDescription:o.neutral.grey150,menuItem:o.neutral.grey140,placeholder:o.neutral.grey140,key:o.neutral.iron,panel:o.neutral.limedSpruce,panelBg:o.neutral.grey25,mainChartBg:o.neutral.grey25,mainChartHeaderBg:o.neutral.grey35,mainChartBorder:o.neutral.grey25,mainChartTboxHover:o.neutral.grey50,sideBar:o.neutral.grey25,sideBarMini:o.neutral.grey05,spaceSelected:o.neutral.grey85,spaceIdle:o.neutral.grey50,spaceHovered:o.neutral.grey65,miniChartsContainer:o.neutral.grey40,topBarBg:o.neutral.grey35,elevationLevelOne:o.neutral.grey60,inputBg:o.neutral.grey55,inputBorder:o.neutral.grey65,inputBorderHover:o.neutral.grey85,inputBorderFocus:o.neutral.grey85,nodeBadgeBackground:o.neutral.grey35,nodeBadgeBorder:o.neutral.bluebayoux,nodeBadgeColor:o.neutral.white,neutralPillBg:o.neutral.grey90,neutralPillBorder:o.neutral.grey90,neutralPillColor:o.neutral.grey120,alertIcon:o.neutral.grey50,idleError:o.red.red20,idleWarning:o.yellow.yellow20,idleClear:o.green.green20,dropdownTable:o.neutral.eerieBlack,tableRowBgHover:o.neutral.grey50,tableRowBg:o.neutral.grey40,columnHighlight:o.green.green30,progressBg:o.neutral.bluebayoux,iconColor:o.neutral.grey160,resizerLine:o.green.vista,anomalyText:o.purple.mauve,anomalyTextLite:o.purple.mauveDark,anomalyTextFocus:o.purple.mauveFocus,terminalGreen:o.green.green20,terminalGreenBorder:o.green.green60,darkBackground:o.neutral.grey05,integrationMenuItemHover:o.green.green20},g=p(p({},o),h),v=function(){return v=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},v.apply(this,arguments)},m=v(v({},{name:"Dark",version:"0.0.1"}),{constants:r,colors:g}),y=n(90509)},90509:function(e,t,n){"use strict";n.r(t),n.d(t,{calcSize:function(){return f},extendTheme:function(){return s},getColor:function(){return d},getGutterHeight:function(){return g},getOrElse:function(){return u},getRgbColor:function(){return p},getSizeBy:function(){return h},getSizeUnit:function(){return c},getValidatedControlColor:function(){return v},propOrElse:function(){return l}});var r=n(65583),o=n.n(r),i=n(99416),a=function(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))},s=function(e,t){return(0,i.BPw)(e,t)},l=function(e,t){return function(n){return(0,i.pMU)(t,e,n)}},u=function(e,t){return function(n){var r=n.theme;return(0,i.pMU)(t,e,r)}},c=function(e){var t=e.theme;return(0,i.ETc)(["constants","SIZE_UNIT"],t)},f=function(e){return function(t){if(e){var n=e.replace("_","".concat(c(t)));return o()(n)}return c(t)}},d=function(e){var t=Array.isArray(e)?e:[e];return u(a(["colors"],t,!0),e||"#fff")},p=function(e,t){return void 0===t&&(t=1),function(n){var r=n.theme,o=d(e)({theme:r}),i=parseInt(o.substring(1),16),a=i>>8&255,s=255&i;return"rgba(".concat(i>>16&255,", ").concat(a,", ").concat(s,", ").concat(t,")")}},h=function(e){return void 0===e&&(e=1),function(t){return isNaN(e)?e:"".concat((c(t)||0)*e,"px")}},g=function(e){var t=e.theme,n=(0,i.ETc)(["constants","GUTTER_HEIGHT"],t)||0;return"".concat(n,"px")},v=function(e,t){return void 0===e&&(e="border"),void 0===t&&(t="disabled"),function(n){var r=n.theme,o=n.success,i=n.error,a=n.disabled;return o?d(["success"])({theme:r}):i?d(["error"])({theme:r}):a?d([t])({theme:r}):d([e])({theme:r})}}},12599:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}var o;n.d(t,{Ep:function(){return s},Gn:function(){return x},J0:function(){return i},LX:function(){return S},RQ:function(){return M},WK:function(){return B},X3:function(){return I},Zn:function(){return C},Zq:function(){return A},aU:function(){return o},cP:function(){return l},fp:function(){return c},pC:function(){return k}}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(o||(o={}));function i(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function a(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function s(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function l(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}var u;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(u||(u={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function c(e,t,n){void 0===n&&(n="/");let r=C(("string"===typeof t?l(t):t).pathname||"/",n);if(null==r)return null;let o=f(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let a=0;null==i&&a<o.length;++a)i=_(o[a],O(r));return i}function f(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=[]),void 0===r&&(r="");let o=(e,o,a)=>{let s={relativePath:void 0===a?e.path||"":a,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};s.relativePath.startsWith("/")&&(i(s.relativePath.startsWith(r),'Absolute route path "'+s.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),s.relativePath=s.relativePath.slice(r.length));let l=M([r,s.relativePath]),u=n.concat(s);e.children&&e.children.length>0&&(i(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+l+'".'),f(e.children,t,u,l)),(null!=e.path||e.index)&&t.push({path:l,score:w(l,e.index),routesMeta:u})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of d(e.path))o(e,t,r);else o(e,t)})),t}function d(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return o?[i,""]:[i];let a=d(r.join("/")),s=[];return s.push(...a.map((e=>""===e?i:[i,e].join("/")))),o&&s.push(...a),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const p=/^:\w+$/,h=3,g=2,v=1,m=10,y=-2,b=e=>"*"===e;function w(e,t){let n=e.split("/"),r=n.length;return n.some(b)&&(r+=y),t&&(r+=g),n.filter((e=>!b(e))).reduce(((e,t)=>e+(p.test(t)?h:""===t?v:m)),r)}function _(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let a=0;a<n.length;++a){let e=n[a],s=a===n.length-1,l="/"===o?t:t.slice(o.length)||"/",u=S({path:e.relativePath,caseSensitive:e.caseSensitive,end:s},l);if(!u)return null;Object.assign(r,u.params);let c=e.route;i.push({params:r,pathname:M([o,u.pathname]),pathnameBase:P(M([o,u.pathnameBase])),route:c}),"/"!==u.pathnameBase&&(o=M([o,u.pathnameBase]))}return i}function x(e,t){void 0===t&&(t={});let n=e;n.endsWith("*")&&"*"!==n&&!n.endsWith("/*")&&(a(!1,'Route path "'+n+'" will be treated as if it were "'+n.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+n.replace(/\*$/,"/*")+'".'),n=n.replace(/\*$/,"/*"));const r=n.startsWith("/")?"/":"",o=e=>null==e?"":"string"===typeof e?e:String(e);return r+n.split(/\/+/).map(((e,n,r)=>{if(n===r.length-1&&"*"===e){return o(t["*"])}const a=e.match(/^:(\w+)(\??)$/);if(a){const[,e,n]=a;let r=t[e];return i("?"===n||null!=r,'Missing ":'+e+'" param'),o(r)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")}function S(e,t){"string"===typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=!0);a("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were "'+e.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+e.replace(/\*$/,"/*")+'".');let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/\/:(\w+)/g,((e,t)=>(r.push(t),"/([^\\/]+)")));e.endsWith("*")?(r.push("*"),o+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":""!==e&&"/"!==e&&(o+="(?:(?=\\/|$))");let i=new RegExp(o,t?void 0:"i");return[i,r]}(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],s=i.replace(/(.)\/+$/,"$1"),l=o.slice(1);return{params:r.reduce(((e,t,n)=>{if("*"===t){let e=l[n]||"";s=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}return e[t]=function(e,t){try{return decodeURIComponent(e)}catch(n){return a(!1,'The value for the URL param "'+t+'" will not be decoded because the string "'+e+'" is a malformed URL segment. This is probably due to a bad percent encoding ('+n+")."),e}}(l[n]||"",t),e}),{}),pathname:i,pathnameBase:s,pattern:e}}function O(e){try{return decodeURI(e)}catch(t){return a(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function C(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function E(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}function A(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function k(e,t,n,o){let a;void 0===o&&(o=!1),"string"===typeof e?a=l(e):(a=r({},e),i(!a.pathname||!a.pathname.includes("?"),E("?","pathname","search",a)),i(!a.pathname||!a.pathname.includes("#"),E("#","pathname","hash",a)),i(!a.search||!a.search.includes("#"),E("#","search","hash",a)));let s,u=""===e||""===a.pathname,c=u?"/":a.pathname;if(o||null==c)s=n;else{let e=t.length-1;if(c.startsWith("..")){let t=c.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}s=e>=0?t[e]:"/"}let f=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:o=""}="string"===typeof e?l(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:R(r),hash:T(o)}}(a,s),d=c&&"/"!==c&&c.endsWith("/"),p=(u||"."===c)&&n.endsWith("/");return f.pathname.endsWith("/")||!d&&!p||(f.pathname+="/"),f}const M=e=>e.join("/").replace(/\/\/+/g,"/"),P=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),R=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",T=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";class I extends Error{}function B(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const j=["post","put","patch","delete"],D=(new Set(j),["get",...j]);new Set(D),new Set([301,302,303,307,308]),new Set([307,308]);Symbol("deferred")},7576:function(e,t,n){"use strict";n.d(t,{S1:function(){return Nt},jp:function(){return Ft}});var r=n(12343),o=n(62844),i=n(57321);const a=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/],s=[/^.*healthcheck.*$/,/^.*healthy.*$/,/^.*live.*$/,/^.*ready.*$/,/^.*heartbeat.*$/,/^.*\/health$/,/^.*\/healthz$/];class l{static __initStatic(){this.id="InboundFilters"}constructor(e={}){this.name=l.id,this._options=e}setupOnce(e,t){const n=e=>{const n=t();if(n){const t=n.getIntegration(l);if(t){const l=n.getClient(),c=l?l.getOptions():{},f=function(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:a],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[],...e.disableTransactionDefaults?[]:s],ignoreInternal:void 0===e.ignoreInternal||e.ignoreInternal}}(t._options,c);return function(e,t){if(t.ignoreInternal&&function(e){try{return"SentryError"===e.exception.values[0].type}catch(t){}return!1}(e))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being internal Sentry Error.\nEvent: ${(0,o.jH)(e)}`),!0;if(function(e,t){if(e.type||!t||!t.length)return!1;return function(e){if(e.message)return[e.message];if(e.exception){const{values:n}=e.exception;try{const{type:e="",value:t=""}=n&&n[n.length-1]||{};return[`${t}`,`${e}: ${t}`]}catch(t){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract message for event ${(0,o.jH)(e)}`),[]}}return[]}(e).some((e=>(0,i.U0)(e,t)))}(e,t.ignoreErrors))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${(0,o.jH)(e)}`),!0;if(function(e,t){if("transaction"!==e.type||!t||!t.length)return!1;const n=e.transaction;return!!n&&(0,i.U0)(n,t)}(e,t.ignoreTransactions))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${(0,o.jH)(e)}`),!0;if(function(e,t){if(!t||!t.length)return!1;const n=u(e);return!!n&&(0,i.U0)(n,t)}(e,t.denyUrls))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${(0,o.jH)(e)}.\nUrl: ${u(e)}`),!0;if(!function(e,t){if(!t||!t.length)return!0;const n=u(e);return!n||(0,i.U0)(n,t)}(e,t.allowUrls))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${(0,o.jH)(e)}.\nUrl: ${u(e)}`),!0;return!1}(e,f)?null:e}}return e};n.id=this.name,e(n)}}function u(e){try{let n;try{n=e.exception.values[0].stacktrace.frames}catch(t){}return n?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&"<anonymous>"!==n.filename&&"[native code]"!==n.filename)return n.filename||null}return null}(n):null}catch(n){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Cannot extract url for event ${(0,o.jH)(e)}`),null}}l.__initStatic();var c=n(20535);let f;class d{static __initStatic(){this.id="FunctionToString"}constructor(){this.name=d.id}setupOnce(){f=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=(0,c.HK)(this)||this;return f.apply(t,e)}}catch(e){}}}d.__initStatic();var p=n(95659),h=n(10350);const g=[];function v(e){const t=e.defaultIntegrations||[],n=e.integrations;let r;t.forEach((e=>{e.isDefaultInstance=!0})),r=Array.isArray(n)?[...t,...n]:"function"===typeof n?(0,o.lE)(n(t)):t;const i=function(e){const t={};return e.forEach((e=>{const{name:n}=e,r=t[n];r&&!r.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)})),Object.keys(t).map((e=>t[e]))}(r),a=function(e,t){for(let n=0;n<e.length;n++)if(!0===t(e[n]))return n;return-1}(i,(e=>"Debug"===e.name));if(-1!==a){const[e]=i.splice(a,1);i.push(e)}return i}function m(e,t){t[e.name]=e,-1===g.indexOf(e.name)&&(e.setupOnce(h.c,p.Gd),g.push(e.name),("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(`Integration installed: ${e.name}`))}const y=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function b(e,t=!1){const{host:n,path:r,pass:o,port:i,projectId:a,protocol:s,publicKey:l}=e;return`${s}://${l}${t&&o?`:${o}`:""}@${n}${i?`:${i}`:""}/${r?`${r}/`:r}${a}`}function w(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function _(e){const t="string"===typeof e?function(e){const t=y.exec(e);if(!t)return void console.error(`Invalid Sentry Dsn: ${e}`);const[n,r,o="",i,a="",s]=t.slice(1);let l="",u=s;const c=u.split("/");if(c.length>1&&(l=c.slice(0,-1).join("/"),u=c.pop()),u){const e=u.match(/^\d+/);e&&(u=e[0])}return w({host:i,pass:o,path:l,projectId:u,port:a,protocol:n,publicKey:r})}(e):w(e);if(t&&function(e){if("undefined"!==typeof __SENTRY_DEBUG__&&!__SENTRY_DEBUG__)return!0;const{port:t,projectId:n,protocol:o}=e;return!["protocol","publicKey","host","projectId"].find((t=>!e[t]&&(r.kg.error(`Invalid Sentry Dsn: ${t} missing`),!0)))&&(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(o)?!t||!isNaN(parseInt(t,10))||(r.kg.error(`Invalid Sentry Dsn: Invalid port ${t}`),!1):(r.kg.error(`Invalid Sentry Dsn: Invalid protocol ${o}`),!1):(r.kg.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1))}(t))return t}const x="7";function S(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function O(e,t={}){const n="string"===typeof t?t:t.tunnel,r="string"!==typeof t&&t._metadata?t._metadata.sdk:void 0;return n||`${function(e){return`${S(e)}${e.projectId}/envelope/`}(e)}?${function(e,t){return(0,c._j)({sentry_key:e.publicKey,sentry_version:x,...t&&{sentry_client:`${t.name}/${t.version}`}})}(e,r)}`}const C=50,E=/\(error: (.*)\)/,A=/captureMessage|captureException/;function k(...e){const t=e.sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));return(e,n=0)=>{const r=[],o=e.split("\n");for(let i=n;i<o.length;i++){const e=o[i];if(e.length>1024)continue;const n=E.test(e)?e.replace(E,"$1"):e;if(!n.match(/\S*Error: /)){for(const e of t){const t=e(n);if(t){r.push(t);break}}if(r.length>=C)break}}return function(e){if(!e.length)return[];const t=Array.from(e);/sentryWrapped/.test(t[t.length-1].function||"")&&t.pop();t.reverse(),A.test(t[t.length-1].function||"")&&(t.pop(),A.test(t[t.length-1].function||"")&&t.pop());return t.slice(0,C).map((e=>({...e,filename:e.filename||t[t.length-1].filename,function:e.function||"?"})))}(r)}}const M="<anonymous>";function P(e){try{return e&&"function"===typeof e&&e.name||M}catch(t){return M}}var R=n(71235);const T=(0,R.Rf)();function I(){if(!("fetch"in T))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch(e){return!1}}function B(e){return e&&/^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}var j=n(67597);const D=(0,R.Rf)();const L=(0,R.Rf)(),Z="__sentry_xhr_v2__",N={},F={};function H(e){if(!F[e])switch(F[e]=!0,e){case"console":!function(){if(!("console"in L))return;r.RU.forEach((function(e){e in L.console&&(0,c.hl)(L.console,e,(function(t){return function(...n){z("console",{args:n,level:e}),t&&t.apply(L.console,n)}}))}))}();break;case"dom":!function(){if(!("document"in L))return;const e=z.bind(null,"dom"),t=X(e,!0);L.document.addEventListener("click",t,!1),L.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach((t=>{const n=L[t]&&L[t].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,c.hl)(n,"addEventListener",(function(t){return function(n,r,o){if("click"===n||"keypress"==n)try{const r=this,i=r.__sentry_instrumentation_handlers__=r.__sentry_instrumentation_handlers__||{},a=i[n]=i[n]||{refCount:0};if(!a.handler){const r=X(e);a.handler=r,t.call(this,n,r,o)}a.refCount++}catch(i){}return t.call(this,n,r,o)}})),(0,c.hl)(n,"removeEventListener",(function(e){return function(t,n,r){if("click"===t||"keypress"==t)try{const n=this,o=n.__sentry_instrumentation_handlers__||{},i=o[t];i&&(i.refCount--,i.refCount<=0&&(e.call(this,t,i.handler,r),i.handler=void 0,delete o[t]),0===Object.keys(o).length&&delete n.__sentry_instrumentation_handlers__)}catch(o){}return e.call(this,t,n,r)}})))}))}();break;case"xhr":!function(){if(!("XMLHttpRequest"in L))return;const e=XMLHttpRequest.prototype;(0,c.hl)(e,"open",(function(e){return function(...t){const n=t[1],r=this[Z]={method:(0,j.HD)(t[0])?t[0].toUpperCase():t[0],url:t[1],request_headers:{}};(0,j.HD)(n)&&"POST"===r.method&&n.match(/sentry_key/)&&(this.__sentry_own_request__=!0);const o=()=>{const e=this[Z];if(e&&4===this.readyState){try{e.status_code=this.status}catch(n){}z("xhr",{args:t,endTimestamp:Date.now(),startTimestamp:Date.now(),xhr:this})}};return"onreadystatechange"in this&&"function"===typeof this.onreadystatechange?(0,c.hl)(this,"onreadystatechange",(function(e){return function(...t){return o(),e.apply(this,t)}})):this.addEventListener("readystatechange",o),(0,c.hl)(this,"setRequestHeader",(function(e){return function(...t){const[n,r]=t,o=this[Z];return o&&(o.request_headers[n.toLowerCase()]=r),e.apply(this,t)}})),e.apply(this,t)}})),(0,c.hl)(e,"send",(function(e){return function(...t){const n=this[Z];return n&&void 0!==t[0]&&(n.body=t[0]),z("xhr",{args:t,startTimestamp:Date.now(),xhr:this}),e.apply(this,t)}}))}();break;case"fetch":!function(){if(!function(){if(!I())return!1;if(B(T.fetch))return!0;let e=!1;const t=T.document;if(t&&"function"===typeof t.createElement)try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=B(n.contentWindow.fetch)),t.head.removeChild(n)}catch(n){("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return e}())return;(0,c.hl)(L,"fetch",(function(e){return function(...t){const{method:n,url:r}=function(e){if(0===e.length)return{method:"GET",url:""};if(2===e.length){const[t,n]=e;return{url:G(t),method:U(n,"method")?String(n.method).toUpperCase():"GET"}}const t=e[0];return{url:G(t),method:U(t,"method")?String(t.method).toUpperCase():"GET"}}(t),o={args:t,fetchData:{method:n,url:r},startTimestamp:Date.now()};return z("fetch",{...o}),e.apply(L,t).then((e=>(z("fetch",{...o,endTimestamp:Date.now(),response:e}),e)),(e=>{throw z("fetch",{...o,endTimestamp:Date.now(),error:e}),e}))}}))}();break;case"history":!function(){if(!function(){const e=D.chrome,t=e&&e.app&&e.app.runtime,n="history"in D&&!!D.history.pushState&&!!D.history.replaceState;return!t&&n}())return;const e=L.onpopstate;function t(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const e=W,t=String(n);W=t,z("history",{from:e,to:t})}return e.apply(this,t)}}L.onpopstate=function(...t){const n=L.location.href,r=W;if(W=n,z("history",{from:r,to:n}),e)try{return e.apply(this,t)}catch(o){}},(0,c.hl)(L.history,"pushState",t),(0,c.hl)(L.history,"replaceState",t)}();break;case"error":K=L.onerror,L.onerror=function(e,t,n,r,o){return z("error",{column:r,error:o,line:n,msg:e,url:t}),!(!K||K.__SENTRY_LOADER__)&&K.apply(this,arguments)},L.onerror.__SENTRY_INSTRUMENTED__=!0;break;case"unhandledrejection":J=L.onunhandledrejection,L.onunhandledrejection=function(e){return z("unhandledrejection",e),!(J&&!J.__SENTRY_LOADER__)||J.apply(this,arguments)},L.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0;break;default:return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("unknown instrumentation type:",e))}}function V(e,t){N[e]=N[e]||[],N[e].push(t),H(e)}function z(e,t){if(e&&N[e])for(const o of N[e]||[])try{o(t)}catch(n){("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${P(o)}\nError:`,n)}}function U(e,t){return!!e&&"object"===typeof e&&!!e[t]}function G(e){return"string"===typeof e?e:e?U(e,"url")?e.url:e.toString?e.toString():"":""}let W;const q=1e3;let $,Y;function X(e,t=!1){return n=>{if(!n||Y===n)return;if(function(e){if("keypress"!==e.type)return!1;try{const t=e.target;if(!t||!t.tagName)return!0;if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable)return!1}catch(t){}return!0}(n))return;const r="keypress"===n.type?"input":n.type;(void 0===$||function(e,t){if(!e)return!0;if(e.type!==t.type)return!0;try{if(e.target!==t.target)return!0}catch(n){}return!1}(Y,n))&&(e({event:n,name:r,global:t}),Y=n),clearTimeout($),$=L.setTimeout((()=>{$=void 0}),q)}}let K=null;let J=null;var Q=n(96893);function ee(e,t=100,n=1/0){try{return ne("",e,t,n)}catch(r){return{ERROR:`**non-serializable** (${r})`}}}function te(e,t=3,n=102400){const r=ee(e,t);return o=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(o))>n?te(e,t-1,n):r;var o}function ne(e,t,r=1/0,o=1/0,i=function(){const e="function"===typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;e<t.length;e++)if(t[e]===n)return!0;return t.push(n),!1},function(n){if(e)t.delete(n);else for(let e=0;e<t.length;e++)if(t[e]===n){t.splice(e,1);break}}]}()){const[a,s]=i;if(null==t||["number","boolean","string"].includes(typeof t)&&!(0,j.i2)(t))return t;const l=function(e,t){try{if("domain"===e&&t&&"object"===typeof t&&t._events)return"[Domain]";if("domainEmitter"===e)return"[DomainEmitter]";if("undefined"!==typeof n.g&&t===n.g)return"[Global]";if("undefined"!==typeof window&&t===window)return"[Window]";if("undefined"!==typeof document&&t===document)return"[Document]";if((0,j.Cy)(t))return"[SyntheticEvent]";if("number"===typeof t&&t!==t)return"[NaN]";if("function"===typeof t)return`[Function: ${P(t)}]`;if("symbol"===typeof t)return`[${String(t)}]`;if("bigint"===typeof t)return`[BigInt: ${String(t)}]`;const r=function(e){const t=Object.getPrototypeOf(e);return t?t.constructor.name:"null prototype"}(t);return/^HTML(\w*)Element$/.test(r)?`[HTMLElement: ${r}]`:`[object ${r}]`}catch(r){return`**non-serializable** (${r})`}}(e,t);if(!l.startsWith("[object "))return l;if(t.__sentry_skip_normalization__)return t;const u="number"===typeof t.__sentry_override_normalization_depth__?t.__sentry_override_normalization_depth__:r;if(0===u)return l.replace("object ","");if(a(t))return"[Circular ~]";const f=t;if(f&&"function"===typeof f.toJSON)try{return ne("",f.toJSON(),u-1,o,i)}catch(g){}const d=Array.isArray(t)?[]:{};let p=0;const h=(0,c.Sh)(t);for(const n in h){if(!Object.prototype.hasOwnProperty.call(h,n))continue;if(p>=o){d[n]="[MaxProperties ~]";break}const e=h[n];d[n]=ne(n,e,u-1,o,i),p++}return s(t),d}function re(e,t=[]){return[e,t]}function oe(e,t){const[n,r]=e;return[n,[...r,t]]}function ie(e,t){const n=e[1];for(const r of n){if(t(r,r[0].type))return!0}return!1}function ae(e,t){return(t||new TextEncoder).encode(e)}function se(e,t){const[n,r]=e;let o=JSON.stringify(n);function i(e){"string"===typeof o?o="string"===typeof e?o+e:[ae(o,t),e]:o.push("string"===typeof e?ae(e,t):e)}for(const s of r){const[e,t]=s;if(i(`\n${JSON.stringify(e)}\n`),"string"===typeof t||t instanceof Uint8Array)i(t);else{let e;try{e=JSON.stringify(t)}catch(a){e=JSON.stringify(ee(t))}i(e)}}return"string"===typeof o?o:function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);let r=0;for(const o of e)n.set(o,r),r+=o.length;return n}(o)}function le(e,t){const n="string"===typeof e.data?ae(e.data,t):e.data;return[(0,c.Jr)({type:"attachment",length:n.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),n]}const ue={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor"};function ce(e){return ue[e]}function fe(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}class de extends Error{constructor(e,t="warn"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=t}}function pe(e,t,n,r){const o=fe(n),i=e.type&&"replay_event"!==e.type?e.type:"event";!function(e,t){t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]])}(e,n&&n.sdk);const a=function(e,t,n,r){const o=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&{dsn:b(r)},...o&&{trace:(0,c.Jr)({...o})}}}(e,o,r,t);delete e.sdkProcessingMetadata;return re(a,[[{type:i},e]])}var he=n(9015),ge=n(51131);var ve=n(21170);function me(e,t,n,r){const{normalizeDepth:a=3,normalizeMaxBreadth:s=1e3}=e,l={...t,event_id:t.event_id||n.event_id||(0,o.DM)(),timestamp:t.timestamp||(0,ve.yW)()},u=n.integrations||e.integrations.map((e=>e.name));!function(e,t){const{environment:n,release:r,dist:o,maxValueLength:a=250}=t;"environment"in e||(e.environment="environment"in t?n:ge.J);void 0===e.release&&void 0!==r&&(e.release=r);void 0===e.dist&&void 0!==o&&(e.dist=o);e.message&&(e.message=(0,i.$G)(e.message,a));const s=e.exception&&e.exception.values&&e.exception.values[0];s&&s.value&&(s.value=(0,i.$G)(s.value,a));const l=e.request;l&&l.url&&(l.url=(0,i.$G)(l.url,a))}(l,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(l,u),void 0===t.type&&function(e,t){const n=R.n2._sentryDebugIds;if(!n)return;let r;const o=ye.get(t);o?r=o:(r=new Map,ye.set(t,r));const i=Object.keys(n).reduce(((e,o)=>{let i;const a=r.get(o);a?i=a:(i=t(o),r.set(o,i));for(let t=i.length-1;t>=0;t--){const r=i[t];if(r.filename){e[r.filename]=n[o];break}}return e}),{});try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.filename&&(e.debug_id=i[e.filename])}))}))}catch(a){}}(l,e.stackParser);let c=r;n.captureContext&&(c=h.s.clone(c).update(n.captureContext));let f=(0,Q.WD)(l);if(c){if(c.getAttachments){const e=[...n.attachments||[],...c.getAttachments()];e.length&&(n.attachments=e)}f=c.applyToEvent(l,n)}return f.then((e=>(e&&function(e){const t={};try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)}))}))}catch(r){}if(0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.keys(t).forEach((e=>{n.push({type:"sourcemap",code_file:e,debug_id:t[e]})}))}(e),"number"===typeof a&&a>0?function(e,t,n){if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((e=>({...e,...e.data&&{data:ee(e.data,t,n)}})))},...e.user&&{user:ee(e.user,t,n)},...e.contexts&&{contexts:ee(e.contexts,t,n)},...e.extra&&{extra:ee(e.extra,t,n)}};e.contexts&&e.contexts.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=ee(e.contexts.trace.data,t,n)));e.spans&&(r.spans=e.spans.map((e=>(e.data&&(e.data=ee(e.data,t,n)),e))));return r}(e,a,s):e)))}const ye=new WeakMap;const be="Not capturing exception because it's already been captured.";class we{constructor(e){if(this._options=e,this._integrations={},this._integrationsInitialized=!1,this._numProcessing=0,this._outcomes={},this._hooks={},e.dsn?this._dsn=_(e.dsn):("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("No DSN provided, client will not do anything."),this._dsn){const t=O(this._dsn,e);this._transport=e.transport({recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}}captureException(e,t,n){if((0,o.YO)(e))return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(be));let i=t&&t.event_id;return this._process(this.eventFromException(e,t).then((e=>this._captureEvent(e,t,n))).then((e=>{i=e}))),i}captureMessage(e,t,n,r){let o=n&&n.event_id;const i=(0,j.pt)(e)?this.eventFromMessage(String(e),t,n):this.eventFromException(e,n);return this._process(i.then((e=>this._captureEvent(e,n,r))).then((e=>{o=e}))),o}captureEvent(e,t,n){if(t&&t.originalException&&(0,o.YO)(t.originalException))return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(be));let i=t&&t.event_id;return this._process(this._captureEvent(e,t,n).then((e=>{i=e}))),i}captureSession(e){this._isEnabled()?"string"!==typeof e.release?("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Discarded session because of missing or non-string release"):(this.sendSession(e),(0,he.CT)(e,{init:!1})):("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("SDK not enabled, will not capture session.")}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?this._isClientDoneProcessing(e).then((n=>t.flush(e).then((e=>n&&e)))):(0,Q.WD)(!0)}close(e){return this.flush(e).then((e=>(this.getOptions().enabled=!1,e)))}setupIntegrations(){this._isEnabled()&&!this._integrationsInitialized&&(this._integrations=function(e){const t={};return e.forEach((e=>{e&&m(e,t)})),t}(this._options.integrations),this._integrationsInitialized=!0)}getIntegrationById(e){return this._integrations[e]}getIntegration(e){try{return this._integrations[e.id]||null}catch(t){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Cannot retrieve integration ${e.id} from the current Client`),null}}addIntegration(e){m(e,this._integrations)}sendEvent(e,t={}){if(this._dsn){let n=pe(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=oe(n,le(e,this._options.transportOptions&&this._options.transportOptions.textEncoder));const r=this._sendEnvelope(n);r&&r.then((t=>this.emit("afterSendEvent",e,t)),null)}}sendSession(e){if(this._dsn){const t=function(e,t,n,r){const o=fe(n);return re({sent_at:(new Date).toISOString(),...o&&{sdk:o},...!!r&&{dsn:b(t)}},["aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this._sendEnvelope(t)}}recordDroppedEvent(e,t,n){if(this._options.sendClientReports){const n=`${e}:${t}`;("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(`Adding outcome: "${n}"`),this._outcomes[n]=this._outcomes[n]+1||1}}on(e,t){this._hooks[e]||(this._hooks[e]=[]),this._hooks[e].push(t)}emit(e,...t){this._hooks[e]&&this._hooks[e].forEach((e=>e(...t)))}_updateSessionFromEvent(e,t){let n=!1,r=!1;const o=t.exception&&t.exception.values;if(o){r=!0;for(const e of o){const t=e.mechanism;if(t&&!1===t.handled){n=!0;break}}}const i="ok"===e.status;(i&&0===e.errors||i&&n)&&((0,he.CT)(e,{...n&&{status:"crashed"},errors:e.errors||Number(r||n)}),this.captureSession(e))}_isClientDoneProcessing(e){return new Q.cW((t=>{let n=0;const r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),t(!0)):(n+=1,e&&n>=e&&(clearInterval(r),t(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._dsn}_prepareEvent(e,t,n){const r=this.getOptions(),o=Object.keys(this._integrations);return!t.integrations&&o.length>0&&(t.integrations=o),me(r,e,t,n).then((e=>{if(null===e)return e;const{propagationContext:t}=e.sdkProcessingMetadata||{};if(!(e.contexts&&e.contexts.trace)&&t){const{traceId:r,spanId:o,parentSpanId:i,dsc:a}=t;e.contexts={trace:{trace_id:r,span_id:o,parent_span_id:i},...e.contexts};const s=a||function(e,t,n){const r=t.getOptions(),{publicKey:o}=t.getDsn()||{},{segment:i}=n&&n.getUser()||{},a=(0,c.Jr)({environment:r.environment||ge.J,release:r.release,user_segment:i,public_key:o,trace_id:e});return t.emit&&t.emit("createDsc",a),a}(r,this,n);e.sdkProcessingMetadata={dynamicSamplingContext:s,...e.sdkProcessingMetadata}}return e}))}_captureEvent(e,t={},n){return this._processEvent(e,t,n).then((e=>e.event_id),(e=>{if("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__){const t=e;"log"===t.logLevel?r.kg.log(t.message):r.kg.warn(t)}}))}_processEvent(e,t,n){const r=this.getOptions(),{sampleRate:o}=r;if(!this._isEnabled())return(0,Q.$2)(new de("SDK not enabled, will not capture event.","log"));const i=xe(e),a=_e(e),s=e.type||"error",l=`before send for type \`${s}\``;if(a&&"number"===typeof o&&Math.random()>o)return this.recordDroppedEvent("sample_rate","error",e),(0,Q.$2)(new de(`Discarding event because it's not included in the random sample (sampling rate = ${o})`,"log"));const u="replay_event"===s?"replay":s;return this._prepareEvent(e,t,n).then((n=>{if(null===n)throw this.recordDroppedEvent("event_processor",u,e),new de("An event processor returned `null`, will not send event.","log");if(t.data&&!0===t.data.__sentry__)return n;const o=function(e,t,n){const{beforeSend:r,beforeSendTransaction:o}=e;if(_e(t)&&r)return r(t,n);if(xe(t)&&o)return o(t,n);return t}(r,n,t);return function(e,t){const n=`${t} must return \`null\` or a valid event.`;if((0,j.J8)(e))return e.then((e=>{if(!(0,j.PO)(e)&&null!==e)throw new de(n);return e}),(e=>{throw new de(`${t} rejected with ${e}`)}));if(!(0,j.PO)(e)&&null!==e)throw new de(n);return e}(o,l)})).then((r=>{if(null===r)throw this.recordDroppedEvent("before_send",u,e),new de(`${l} returned \`null\`, will not send event.`,"log");const o=n&&n.getSession();!i&&o&&this._updateSessionFromEvent(o,r);const a=r.transaction_info;if(i&&a&&r.transaction!==e.transaction){const e="custom";r.transaction_info={...a,source:e}}return this.sendEvent(r,t),r})).then(null,(e=>{if(e instanceof de)throw e;throw this.captureException(e,{data:{__sentry__:!0},originalException:e}),new de(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`)}))}_process(e){this._numProcessing++,e.then((e=>(this._numProcessing--,e)),(e=>(this._numProcessing--,e)))}_sendEnvelope(e){if(this._transport&&this._dsn)return this.emit("beforeEnvelope",e),this._transport.send(e).then(null,(e=>{("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Error while sending event:",e)}));("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Transport disabled")}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.keys(e).map((t=>{const[n,r]=t.split(":");return{reason:n,category:r,quantity:e[t]}}))}}function _e(e){return void 0===e.type}function xe(e){return"transaction"===e.type}var Se=n(40105),Oe=n(68518);function Ce(e,t){const n=Ae(e,t),r={type:t&&t.name,value:Me(t)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&""===r.value&&(r.value="Unrecoverable error caught"),r}function Ee(e,t){return{exception:{values:[Ce(e,t)]}}}function Ae(e,t){const n=t.stacktrace||t.stack||"",r=function(e){if(e){if("number"===typeof e.framesToPop)return e.framesToPop;if(ke.test(e.message))return 1}return 0}(t);try{return e(n,r)}catch(o){}return[]}const ke=/Minified React error #\d+;/i;function Me(e){const t=e&&e.message;return t?t.error&&"string"===typeof t.error.message?t.error.message:t:"No error message"}function Pe(e,t,n,r,i){let a;if((0,j.VW)(t)&&t.error){return Ee(e,t.error)}if((0,j.TX)(t)||(0,j.fm)(t)){const i=t;if("stack"in t)a=Ee(e,t);else{const t=i.name||((0,j.TX)(i)?"DOMError":"DOMException"),s=i.message?`${t}: ${i.message}`:t;a=Re(e,s,n,r),(0,o.Db)(a,s)}return"code"in i&&(a.tags={...a.tags,"DOMException.code":`${i.code}`}),a}if((0,j.VZ)(t))return Ee(e,t);if((0,j.PO)(t)||(0,j.cO)(t)){return a=function(e,t,n,r){const o=(0,p.Gd)().getClient(),i=o&&o.getOptions().normalizeDepth,a={exception:{values:[{type:(0,j.cO)(t)?t.constructor.name:r?"UnhandledRejection":"Error",value:Te(t,{isUnhandledRejection:r})}]},extra:{__serialized__:te(t,i)}};if(n){const t=Ae(e,n);t.length&&(a.exception.values[0].stacktrace={frames:t})}return a}(e,t,n,i),(0,o.EG)(a,{synthetic:!0}),a}return a=Re(e,t,n,r),(0,o.Db)(a,`${t}`,void 0),(0,o.EG)(a,{synthetic:!0}),a}function Re(e,t,n,r){const o={message:t};if(r&&n){const r=Ae(e,n);r.length&&(o.exception={values:[{value:t,stacktrace:{frames:r}}]})}return o}function Te(e,{isUnhandledRejection:t}){const n=(0,c.zf)(e),r=t?"promise rejection":"exception";if((0,j.VW)(e))return`Event \`ErrorEvent\` captured as ${r} with message \`${e.message}\``;if((0,j.cO)(e)){return`Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(t){}}(e)}\` (type=${e.type}) captured as ${r}`}return`Object captured as ${r} with keys: ${n}`}var Ie=n(64487);const Be=R.n2;let je=0;function De(){return je>0}function Le(e,t={},n){if("function"!==typeof e)return e;try{const t=e.__sentry_wrapped__;if(t)return t;if((0,c.HK)(e))return e}catch(i){return e}const r=function(){const r=Array.prototype.slice.call(arguments);try{n&&"function"===typeof n&&n.apply(this,arguments);const o=r.map((e=>Le(e,t)));return e.apply(this,o)}catch(i){throw je++,setTimeout((()=>{je--})),(0,Ie.$e)((e=>{e.addEventProcessor((e=>(t.mechanism&&((0,o.Db)(e,void 0,void 0),(0,o.EG)(e,t.mechanism)),e.extra={...e.extra,arguments:r},e))),(0,Ie.Tb)(i)})),i}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch(a){}(0,c.$Q)(r,e),(0,c.xp)(e,"__sentry_wrapped__",r);try{Object.getOwnPropertyDescriptor(r,"name").configurable&&Object.defineProperty(r,"name",{get(){return e.name}})}catch(a){}return r}var Ze=n(58464);const Ne=["fatal","error","warning","log","info","debug"];function Fe(e){return"warn"===e?"warning":Ne.includes(e)?e:"log"}function He(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",r=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}const Ve=1024,ze="Breadcrumbs";class Ue{static __initStatic(){this.id=ze}constructor(e){this.name=Ue.id,this.options={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e}}setupOnce(){this.options.console&&V("console",Ge),this.options.dom&&V("dom",function(e){function t(t){let n,o="object"===typeof e?e.serializeAttribute:void 0,i="object"===typeof e&&"number"===typeof e.maxStringLength?e.maxStringLength:void 0;i&&i>Ve&&(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${i} was configured. Sentry will use 1024 instead.`),i=Ve),"string"===typeof o&&(o=[o]);try{const e=t.event;n=function(e){return!!e&&!!e.target}(e)?(0,Ze.Rt)(e.target,{keyAttrs:o,maxStringLength:i}):(0,Ze.Rt)(e,{keyAttrs:o,maxStringLength:i})}catch(a){n="<unknown>"}0!==n.length&&(0,p.Gd)().addBreadcrumb({category:`ui.${t.name}`,message:n},{event:t.event,name:t.name,global:t.global})}return t}(this.options.dom)),this.options.xhr&&V("xhr",We),this.options.fetch&&V("fetch",qe),this.options.history&&V("history",$e)}addSentryBreadcrumb(e){this.options.sentry&&(0,p.Gd)().addBreadcrumb({category:"sentry."+("transaction"===e.type?"transaction":"event"),event_id:e.event_id,level:e.level,message:(0,o.jH)(e)},{event:e})}}function Ge(e){for(let n=0;n<e.args.length;n++)if("ref=Ref<"===e.args[n]){e.args[n+1]="viewRef";break}const t={category:"console",data:{arguments:e.args,logger:"console"},level:Fe(e.level),message:(0,i.nK)(e.args," ")};if("assert"===e.level){if(!1!==e.args[0])return;t.message=`Assertion failed: ${(0,i.nK)(e.args.slice(1)," ")||"console.assert"}`,t.data.arguments=e.args.slice(1)}(0,p.Gd)().addBreadcrumb(t,{input:e.args,level:e.level})}function We(e){const{startTimestamp:t,endTimestamp:n}=e,r=e.xhr[Z];if(!t||!n||!r)return;const{method:o,url:i,status_code:a,body:s}=r,l={method:o,url:i,status_code:a},u={xhr:e.xhr,input:s,startTimestamp:t,endTimestamp:n};(0,p.Gd)().addBreadcrumb({category:"xhr",data:l,type:"http"},u)}function qe(e){const{startTimestamp:t,endTimestamp:n}=e;if(n&&(!e.fetchData.url.match(/sentry_key/)||"POST"!==e.fetchData.method))if(e.error){const r=e.fetchData,o={data:e.error,input:e.args,startTimestamp:t,endTimestamp:n};(0,p.Gd)().addBreadcrumb({category:"fetch",data:r,level:"error",type:"http"},o)}else{const r={...e.fetchData,status_code:e.response&&e.response.status},o={input:e.args,response:e.response,startTimestamp:t,endTimestamp:n};(0,p.Gd)().addBreadcrumb({category:"fetch",data:r,type:"http"},o)}}function $e(e){let t=e.from,n=e.to;const r=He(Be.location.href);let o=He(t);const i=He(n);o.path||(o=r),r.protocol===i.protocol&&r.host===i.host&&(n=i.relative),r.protocol===o.protocol&&r.host===o.host&&(t=o.relative),(0,p.Gd)().addBreadcrumb({category:"navigation",data:{from:t,to:n}})}Ue.__initStatic();class Ye extends we{constructor(e){const t=Be.SENTRY_SDK_SOURCE||(0,Oe.S)();e._metadata=e._metadata||{},e._metadata.sdk=e._metadata.sdk||{name:"sentry.javascript.browser",packages:[{name:`${t}:@sentry/browser`,version:Se.J}],version:Se.J},super(e),e.sendClientReports&&Be.document&&Be.document.addEventListener("visibilitychange",(()=>{"hidden"===Be.document.visibilityState&&this._flushOutcomes()}))}eventFromException(e,t){return function(e,t,n,r){const i=Pe(e,t,n&&n.syntheticException||void 0,r);return(0,o.EG)(i),i.level="error",n&&n.event_id&&(i.event_id=n.event_id),(0,Q.WD)(i)}(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",n){return function(e,t,n="info",r,o){const i=Re(e,t,r&&r.syntheticException||void 0,o);return i.level=n,r&&r.event_id&&(i.event_id=r.event_id),(0,Q.WD)(i)}(this._options.stackParser,e,t,n,this._options.attachStacktrace)}sendEvent(e,t){const n=this.getIntegrationById(ze);n&&n.addSentryBreadcrumb&&n.addSentryBreadcrumb(e),super.sendEvent(e,t)}captureUserFeedback(e){if(!this._isEnabled())return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("SDK not enabled, will not capture user feedback."));const t=function(e,{metadata:t,tunnel:n,dsn:r}){const o={event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&t.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!r&&{dsn:b(r)}},i=function(e){return[{type:"user_report"},e]}(e);return re(o,[i])}(e,{metadata:this.getSdkMetadata(),dsn:this.getDsn(),tunnel:this.getOptions().tunnel});this._sendEnvelope(t)}_prepareEvent(e,t,n){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,n)}_flushOutcomes(){const e=this._clearOutcomes();if(0===e.length)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log("No outcomes to send"));if(!this._dsn)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log("No dsn provided, will not send outcomes"));("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log("Sending outcomes:",e);const t=(n=e,re((o=this._options.tunnel&&b(this._dsn))?{dsn:o}:{},[[{type:"client_report"},{timestamp:i||(0,ve.yW)(),discarded_events:n}]]));var n,o,i;this._sendEnvelope(t)}}class Xe{static __initStatic(){this.id="GlobalHandlers"}constructor(e){this.name=Xe.id,this._options={onerror:!0,onunhandledrejection:!0,...e},this._installFunc={onerror:Ke,onunhandledrejection:Je}}setupOnce(){Error.stackTraceLimit=50;const e=this._options;for(const n in e){const o=this._installFunc[n];o&&e[n]&&(t=n,("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.log(`Global Handler attached: ${t}`),o(),this._installFunc[n]=void 0)}var t}}function Ke(){V("error",(e=>{const[t,n,r]=tt();if(!t.getIntegration(Xe))return;const{msg:o,url:i,line:a,column:s,error:l}=e;if(De()||l&&l.__sentry_own_request__)return;const u=void 0===l&&(0,j.HD)(o)?function(e,t,n,r){const o=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;let i=(0,j.VW)(e)?e.message:e,a="Error";const s=i.match(o);s&&(a=s[1],i=s[2]);const l={exception:{values:[{type:a,value:i}]}};return Qe(l,t,n,r)}(o,i,a,s):Qe(Pe(n,l||o,void 0,r,!1),i,a,s);u.level="error",et(t,l,u,"onerror")}))}function Je(){V("unhandledrejection",(e=>{const[t,n,r]=tt();if(!t.getIntegration(Xe))return;let o=e;try{"reason"in e?o=e.reason:"detail"in e&&"reason"in e.detail&&(o=e.detail.reason)}catch(a){}if(De()||o&&o.__sentry_own_request__)return!0;const i=(0,j.pt)(o)?{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(o)}`}]}}:Pe(n,o,void 0,r,!0);i.level="error",et(t,o,i,"onunhandledrejection")}))}function Qe(e,t,n,r){const o=e.exception=e.exception||{},i=o.values=o.values||[],a=i[0]=i[0]||{},s=a.stacktrace=a.stacktrace||{},l=s.frames=s.frames||[],u=isNaN(parseInt(r,10))?void 0:r,c=isNaN(parseInt(n,10))?void 0:n,f=(0,j.HD)(t)&&t.length>0?t:(0,Ze.l4)();return 0===l.length&&l.push({colno:u,filename:f,function:"?",in_app:!0,lineno:c}),e}function et(e,t,n,r){(0,o.EG)(n,{handled:!1,type:r}),e.captureEvent(n,{originalException:t})}function tt(){const e=(0,p.Gd)(),t=e.getClient(),n=t&&t.getOptions()||{stackParser:()=>[],attachStacktrace:!1};return[e,n.stackParser,n.attachStacktrace]}Xe.__initStatic();const nt=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"];class rt{static __initStatic(){this.id="TryCatch"}constructor(e){this.name=rt.id,this._options={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...e}}setupOnce(){this._options.setTimeout&&(0,c.hl)(Be,"setTimeout",ot),this._options.setInterval&&(0,c.hl)(Be,"setInterval",ot),this._options.requestAnimationFrame&&(0,c.hl)(Be,"requestAnimationFrame",it),this._options.XMLHttpRequest&&"XMLHttpRequest"in Be&&(0,c.hl)(XMLHttpRequest.prototype,"send",at);const e=this._options.eventTarget;if(e){(Array.isArray(e)?e:nt).forEach(st)}}}function ot(e){return function(...t){const n=t[0];return t[0]=Le(n,{mechanism:{data:{function:P(e)},handled:!0,type:"instrument"}}),e.apply(this,t)}}function it(e){return function(t){return e.apply(this,[Le(t,{mechanism:{data:{function:"requestAnimationFrame",handler:P(e)},handled:!0,type:"instrument"}})])}}function at(e){return function(...t){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach((e=>{e in n&&"function"===typeof n[e]&&(0,c.hl)(n,e,(function(t){const n={mechanism:{data:{function:e,handler:P(t)},handled:!0,type:"instrument"}},r=(0,c.HK)(t);return r&&(n.mechanism.data.handler=P(r)),Le(t,n)}))})),e.apply(this,t)}}function st(e){const t=Be,n=t[e]&&t[e].prototype;n&&n.hasOwnProperty&&n.hasOwnProperty("addEventListener")&&((0,c.hl)(n,"addEventListener",(function(t){return function(n,r,o){try{"function"===typeof r.handleEvent&&(r.handleEvent=Le(r.handleEvent,{mechanism:{data:{function:"handleEvent",handler:P(r),target:e},handled:!0,type:"instrument"}}))}catch(i){}return t.apply(this,[n,Le(r,{mechanism:{data:{function:"addEventListener",handler:P(r),target:e},handled:!0,type:"instrument"}}),o])}})),(0,c.hl)(n,"removeEventListener",(function(e){return function(t,n,r){const o=n;try{const n=o&&o.__sentry_wrapped__;n&&e.call(this,t,n,r)}catch(i){}return e.call(this,t,o,r)}})))}function lt(e,t,n=250,r,o,a,s){if(!a.exception||!a.exception.values||!s||!(0,j.V9)(s.originalException,Error))return;const l=a.exception.values.length>0?a.exception.values[a.exception.values.length-1]:void 0;var u,c;l&&(a.exception.values=(u=ut(e,t,o,s.originalException,r,a.exception.values,l,0),c=n,u.map((e=>(e.value&&(e.value=(0,i.$G)(e.value,c)),e)))))}function ut(e,t,n,r,o,i,a,s){if(i.length>=n+1)return i;let l=[...i];if((0,j.V9)(r[o],Error)){ct(a,s);const i=e(t,r[o]),u=l.length;ft(i,o,u,s),l=ut(e,t,n,r[o],o,[i,...l],i,u)}return Array.isArray(r.errors)&&r.errors.forEach(((r,i)=>{if((0,j.V9)(r,Error)){ct(a,s);const u=e(t,r),c=l.length;ft(u,`errors[${i}]`,c,s),l=ut(e,t,n,r,o,[u,...l],u,c)}})),l}function ct(e,t){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,is_exception_group:!0,exception_id:t}}function ft(e,t,n,r){e.mechanism=e.mechanism||{type:"generic",handled:!0},e.mechanism={...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:r}}rt.__initStatic();class dt{static __initStatic(){this.id="LinkedErrors"}constructor(e={}){this.name=dt.id,this._key=e.key||"cause",this._limit=e.limit||5}setupOnce(e,t){e(((e,n)=>{const r=t(),o=r.getClient(),i=r.getIntegration(dt);if(!o||!i)return e;const a=o.getOptions();return lt(Ce,a.stackParser,a.maxValueLength,i._key,i._limit,e,n),e}))}}dt.__initStatic();class pt{static __initStatic(){this.id="HttpContext"}constructor(){this.name=pt.id}setupOnce(){(0,h.c)((e=>{if((0,p.Gd)().getIntegration(pt)){if(!Be.navigator&&!Be.location&&!Be.document)return e;const t=e.request&&e.request.url||Be.location&&Be.location.href,{referrer:n}=Be.document||{},{userAgent:r}=Be.navigator||{},o={...e.request&&e.request.headers,...n&&{Referer:n},...r&&{"User-Agent":r}},i={...e.request,...t&&{url:t},headers:o};return{...e,request:i}}return e}))}}pt.__initStatic();class ht{static __initStatic(){this.id="Dedupe"}constructor(){this.name=ht.id}setupOnce(e,t){const n=e=>{if(e.type)return e;const n=t().getIntegration(ht);if(n){try{if(function(e,t){if(!t)return!1;if(function(e,t){const n=e.message,r=t.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!vt(e,t))return!1;if(!gt(e,t))return!1;return!0}(e,t))return!0;if(function(e,t){const n=mt(t),r=mt(e);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!vt(e,t))return!1;if(!gt(e,t))return!1;return!0}(e,t))return!0;return!1}(e,n._previousEvent))return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Event dropped due to being a duplicate of previously captured event."),null}catch(o){return n._previousEvent=e}return n._previousEvent=e}return e};n.id=this.name,e(n)}}function gt(e,t){let n=yt(e),r=yt(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){const e=r[o],t=n[o];if(e.filename!==t.filename||e.lineno!==t.lineno||e.colno!==t.colno||e.function!==t.function)return!1}return!0}function vt(e,t){let n=e.fingerprint,r=t.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;try{return!(n.join("")!==r.join(""))}catch(o){return!1}}function mt(e){return e.exception&&e.exception.values&&e.exception.values[0]}function yt(e){const t=e.exception;if(t)try{return t.values[0].stacktrace.frames}catch(n){return}}ht.__initStatic();const bt="?";function wt(e,t,n,r){const o={filename:e,function:t,in_app:!0};return void 0!==n&&(o.lineno=n),void 0!==r&&(o.colno=r),o}const _t=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,xt=/\((\S*)(?::(\d+))(?::(\d+))\)/,St=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,Ot=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,Ct=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,Et=k(...[[30,e=>{const t=_t.exec(e);if(t){if(t[2]&&0===t[2].indexOf("eval")){const e=xt.exec(t[2]);e&&(t[2]=e[1],t[3]=e[2],t[4]=e[3])}const[e,n]=At(t[1]||bt,t[2]);return wt(n,e,t[3]?+t[3]:void 0,t[4]?+t[4]:void 0)}}],[50,e=>{const t=St.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const e=Ot.exec(t[3]);e&&(t[1]=t[1]||"eval",t[3]=e[1],t[4]=e[2],t[5]="")}let e=t[3],n=t[1]||bt;return[n,e]=At(n,e),wt(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}],[40,e=>{const t=Ct.exec(e);return t?wt(t[2],t[1]||bt,+t[3],t[4]?+t[4]:void 0):void 0}]]),At=(e,t)=>{const n=-1!==e.indexOf("safari-extension"),r=-1!==e.indexOf("safari-web-extension");return n||r?[-1!==e.indexOf("@")?e.split("@")[0]:bt,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]};function kt(e){const t=[];function n(e){return t.splice(t.indexOf(e),1)[0]}return{$:t,add:function(r){if(!(void 0===e||t.length<e))return(0,Q.$2)(new de("Not adding Promise because buffer limit was reached."));const o=r();return-1===t.indexOf(o)&&t.push(o),o.then((()=>n(o))).then(null,(()=>n(o).then(null,(()=>{})))),o},drain:function(e){return new Q.cW(((n,r)=>{let o=t.length;if(!o)return n(!0);const i=setTimeout((()=>{e&&e>0&&n(!1)}),e);t.forEach((e=>{(0,Q.WD)(e).then((()=>{--o||(clearTimeout(i),n(!0))}),r)}))}))}}}const Mt=6e4;function Pt(e,{statusCode:t,headers:n},r=Date.now()){const o={...e},i=n&&n["x-sentry-rate-limits"],a=n&&n["retry-after"];if(i)for(const s of i.trim().split(",")){const[e,t]=s.split(":",2),n=parseInt(e,10),i=1e3*(isNaN(n)?60:n);if(t)for(const a of t.split(";"))o[a]=r+i;else o.all=r+i}else a?o.all=r+function(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const r=Date.parse(`${e}`);return isNaN(r)?Mt:r-t}(a,r):429===t&&(o.all=r+6e4);return o}const Rt=30;function Tt(e,t,n=kt(e.bufferSize||Rt)){let o={};function i(i){const a=[];if(ie(i,((t,n)=>{const r=ce(n);if(function(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}(o,r)){const o=It(t,n);e.recordDroppedEvent("ratelimit_backoff",r,o)}else a.push(t)})),0===a.length)return(0,Q.WD)();const s=re(i[0],a),l=t=>{ie(s,((n,r)=>{const o=It(n,r);e.recordDroppedEvent(t,ce(r),o)}))};return n.add((()=>t({body:se(s,e.textEncoder)}).then((e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),o=Pt(o,e),e)),(e=>{throw l("network_error"),e})))).then((e=>e),(e=>{if(e instanceof de)return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Skipped sending event because buffer is full."),l("queue_overflow"),(0,Q.WD)();throw e}))}return i.__sentry__baseTransport__=!0,{send:i,flush:e=>n.drain(e)}}function It(e,t){if("event"===t||"transaction"===t)return Array.isArray(e)?e[1]:void 0}let Bt;function jt(e,t=function(){if(Bt)return Bt;if(B(Be.fetch))return Bt=Be.fetch.bind(Be);const e=Be.document;let t=Be.fetch;if(e&&"function"===typeof e.createElement)try{const n=e.createElement("iframe");n.hidden=!0,e.head.appendChild(n);const r=n.contentWindow;r&&r.fetch&&(t=r.fetch),e.head.removeChild(n)}catch(n){("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return Bt=t.bind(Be)}()){let n=0,o=0;return Tt(e,(function(r){const i=r.body.length;n+=i,o++;const a={body:r.body,method:"POST",referrerPolicy:"origin",headers:e.headers,keepalive:n<=6e4&&o<15,...e.fetchOptions};try{return t(e.url,a).then((e=>(n-=i,o--,{statusCode:e.status,headers:{"x-sentry-rate-limits":e.headers.get("X-Sentry-Rate-Limits"),"retry-after":e.headers.get("Retry-After")}})))}catch(s){return Bt=void 0,n-=i,o--,(0,Q.$2)(s)}}))}const Dt=4;function Lt(e){return Tt(e,(function(t){return new Q.cW(((n,r)=>{const o=new XMLHttpRequest;o.onerror=r,o.onreadystatechange=()=>{o.readyState===Dt&&n({statusCode:o.status,headers:{"x-sentry-rate-limits":o.getResponseHeader("X-Sentry-Rate-Limits"),"retry-after":o.getResponseHeader("Retry-After")}})},o.open("POST",e.url);for(const t in e.headers)Object.prototype.hasOwnProperty.call(e.headers,t)&&o.setRequestHeader(t,e.headers[t]);o.send(t.body)}))}))}const Zt=[new l,new d,new rt,new Ue,new Xe,new dt,new ht,new pt];function Nt(e={}){void 0===e.defaultIntegrations&&(e.defaultIntegrations=Zt),void 0===e.release&&("string"===typeof __SENTRY_RELEASE__&&(e.release=__SENTRY_RELEASE__),Be.SENTRY_RELEASE&&Be.SENTRY_RELEASE.id&&(e.release=Be.SENTRY_RELEASE.id)),void 0===e.autoSessionTracking&&(e.autoSessionTracking=!0),void 0===e.sendClientReports&&(e.sendClientReports=!0);const t={...e,stackParser:(n=e.stackParser||Et,Array.isArray(n)?k(...n):n),integrations:v(e),transport:e.transport||(I()?jt:Lt)};var n;!function(e,t){!0===t.debug&&("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?r.kg.enable():console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle."));const n=(0,p.Gd)();n.getScope().update(t.initialScope);const o=new e(t);n.bindClient(o)}(Ye,t),e.autoSessionTracking&&function(){if("undefined"===typeof Be.document)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.warn("Session tracking in non-browser environment with @sentry/browser is not supported."));const e=(0,p.Gd)();if(!e.captureSession)return;Ht(e),V("history",(({from:e,to:t})=>{void 0!==e&&e!==t&&Ht((0,p.Gd)())}))}()}function Ft(e={},t=(0,p.Gd)()){if(!Be.document)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Global document not defined in showReportDialog call"));const{client:n,scope:o}=t.getStackTop(),i=e.dsn||n&&n.getDsn();if(!i)return void(("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("DSN not configured for showReportDialog call"));o&&(e.user={...o.getUser(),...e.user}),e.eventId||(e.eventId=t.lastEventId());const a=Be.document.createElement("script");a.async=!0,a.crossOrigin="anonymous",a.src=function(e,t){const n=_(e);if(!n)return"";const r=`${S(n)}embed/error-page/`;let o=`dsn=${b(n)}`;for(const i in t)if("dsn"!==i)if("user"===i){const e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`;return`${r}?${o}`}(i,e),e.onLoad&&(a.onload=e.onLoad);const s=Be.document.head||Be.document.body;s?s.appendChild(a):("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&r.kg.error("Not injecting report dialog. No injection point found in HTML")}function Ht(e){e.startSession({ignoreDuration:!0}),e.captureSession()}},51131:function(e,t,n){"use strict";n.d(t,{J:function(){return r}});const r="production"},64487:function(e,t,n){"use strict";n.d(t,{$e:function(){return a},Tb:function(){return o},av:function(){return i}});var r=n(95659);function o(e,t){return(0,r.Gd)().captureException(e,{captureContext:t})}function i(e){(0,r.Gd)().setUser(e)}function a(e){(0,r.Gd)().withScope(e)}},95659:function(e,t,n){"use strict";n.d(t,{Gd:function(){return g}});var r=n(62844),o=n(21170),i=n(12343),a=n(71235),s=n(51131),l=n(10350),u=n(9015);const c=4,f=100;class d{constructor(e,t=new l.s,n=c){this._version=n,this._stack=[{scope:t}],e&&this.bindClient(e)}isOlderThan(e){return this._version<e}bindClient(e){this.getStackTop().client=e,e&&e.setupIntegrations&&e.setupIntegrations()}pushScope(){const e=l.s.clone(this.getScope());return this.getStack().push({client:this.getClient(),scope:e}),e}popScope(){return!(this.getStack().length<=1)&&!!this.getStack().pop()}withScope(e){const t=this.pushScope();try{e(t)}finally{this.popScope()}}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getStack(){return this._stack}getStackTop(){return this._stack[this._stack.length-1]}captureException(e,t){const n=this._lastEventId=t&&t.event_id?t.event_id:(0,r.DM)(),o=new Error("Sentry syntheticException");return this._withClient(((r,i)=>{r.captureException(e,{originalException:e,syntheticException:o,...t,event_id:n},i)})),n}captureMessage(e,t,n){const o=this._lastEventId=n&&n.event_id?n.event_id:(0,r.DM)(),i=new Error(e);return this._withClient(((r,a)=>{r.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:o},a)})),o}captureEvent(e,t){const n=t&&t.event_id?t.event_id:(0,r.DM)();return e.type||(this._lastEventId=n),this._withClient(((r,o)=>{r.captureEvent(e,{...t,event_id:n},o)})),n}lastEventId(){return this._lastEventId}addBreadcrumb(e,t){const{scope:n,client:r}=this.getStackTop();if(!r)return;const{beforeBreadcrumb:a=null,maxBreadcrumbs:s=f}=r.getOptions&&r.getOptions()||{};if(s<=0)return;const l={timestamp:(0,o.yW)(),...e},u=a?(0,i.Cf)((()=>a(l,t))):l;null!==u&&(r.emit&&r.emit("beforeAddBreadcrumb",u,t),n.addBreadcrumb(u,s))}setUser(e){this.getScope().setUser(e)}setTags(e){this.getScope().setTags(e)}setExtras(e){this.getScope().setExtras(e)}setTag(e,t){this.getScope().setTag(e,t)}setExtra(e,t){this.getScope().setExtra(e,t)}setContext(e,t){this.getScope().setContext(e,t)}configureScope(e){const{scope:t,client:n}=this.getStackTop();n&&e(t)}run(e){const t=h(this);try{e(this)}finally{h(t)}}getIntegration(e){const t=this.getClient();if(!t)return null;try{return t.getIntegration(e)}catch(n){return("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.kg.warn(`Cannot retrieve integration ${e.id} from the current Hub`),null}}startTransaction(e,t){const n=this._callExtensionMethod("startTransaction",e,t);return"undefined"!==typeof __SENTRY_DEBUG__&&!__SENTRY_DEBUG__||n||console.warn("Tracing extension 'startTransaction' has not been added. Call 'addTracingExtensions' before calling 'init':\nSentry.addTracingExtensions();\nSentry.init({...});\n"),n}traceHeaders(){return this._callExtensionMethod("traceHeaders")}captureSession(e=!1){if(e)return this.endSession();this._sendSessionUpdate()}endSession(){const e=this.getStackTop().scope,t=e.getSession();t&&(0,u.RJ)(t),this._sendSessionUpdate(),e.setSession()}startSession(e){const{scope:t,client:n}=this.getStackTop(),{release:r,environment:o=s.J}=n&&n.getOptions()||{},{userAgent:i}=a.n2.navigator||{},l=(0,u.Hv)({release:r,environment:o,user:t.getUser(),...i&&{userAgent:i},...e}),c=t.getSession&&t.getSession();return c&&"ok"===c.status&&(0,u.CT)(c,{status:"exited"}),this.endSession(),t.setSession(l),l}shouldSendDefaultPii(){const e=this.getClient(),t=e&&e.getOptions();return Boolean(t&&t.sendDefaultPii)}_sendSessionUpdate(){const{scope:e,client:t}=this.getStackTop(),n=e.getSession();n&&t&&t.captureSession&&t.captureSession(n)}_withClient(e){const{scope:t,client:n}=this.getStackTop();n&&e(n,t)}_callExtensionMethod(e,...t){const n=p().__SENTRY__;if(n&&n.extensions&&"function"===typeof n.extensions[e])return n.extensions[e].apply(this,t);("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&i.kg.warn(`Extension method ${e} couldn't be found, doing nothing.`)}}function p(){return a.n2.__SENTRY__=a.n2.__SENTRY__||{extensions:{},hub:void 0},a.n2}function h(e){const t=p(),n=y(t);return b(t,e),n}function g(){const e=p();if(e.__SENTRY__&&e.__SENTRY__.acs){const t=e.__SENTRY__.acs.getCurrentHub();if(t)return t}return v(e)}function v(e=p()){return m(e)&&!y(e).isOlderThan(c)||b(e,new d),y(e)}function m(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function y(e){return(0,a.YO)("hub",(()=>new d),e)}function b(e,t){if(!e)return!1;return(e.__SENTRY__=e.__SENTRY__||{}).hub=t,!0}},10350:function(e,t,n){"use strict";n.d(t,{c:function(){return d},s:function(){return c}});var r=n(67597),o=n(21170),i=n(96893),a=n(12343),s=n(62844),l=n(71235),u=n(9015);class c{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext=p()}static clone(e){const t=new c;return e&&(t._breadcrumbs=[...e._breadcrumbs],t._tags={...e._tags},t._extra={...e._extra},t._contexts={...e._contexts},t._user=e._user,t._level=e._level,t._span=e._span,t._session=e._session,t._transactionName=e._transactionName,t._fingerprint=e._fingerprint,t._eventProcessors=[...e._eventProcessors],t._requestSession=e._requestSession,t._attachments=[...e._attachments],t._sdkProcessingMetadata={...e._sdkProcessingMetadata},t._propagationContext={...e._propagationContext}),t}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{},this._session&&(0,u.CT)(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSpan(e){return this._span=e,this._notifyScopeListeners(),this}getSpan(){return this._span}getTransaction(){const e=this.getSpan();return e&&e.transaction}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;if("function"===typeof e){const t=e(this);return t instanceof c?t:this}return e instanceof c?(this._tags={...this._tags,...e._tags},this._extra={...this._extra,...e._extra},this._contexts={...this._contexts,...e._contexts},e._user&&Object.keys(e._user).length&&(this._user=e._user),e._level&&(this._level=e._level),e._fingerprint&&(this._fingerprint=e._fingerprint),e._requestSession&&(this._requestSession=e._requestSession),e._propagationContext&&(this._propagationContext=e._propagationContext)):(0,r.PO)(e)&&(this._tags={...this._tags,...e.tags},this._extra={...this._extra,...e.extra},this._contexts={...this._contexts,...e.contexts},e.user&&(this._user=e.user),e.level&&(this._level=e.level),e.fingerprint&&(this._fingerprint=e.fingerprint),e.requestSession&&(this._requestSession=e.requestSession),e.propagationContext&&(this._propagationContext=e.propagationContext)),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._span=void 0,this._session=void 0,this._notifyScopeListeners(),this._attachments=[],this._propagationContext=p(),this}addBreadcrumb(e,t){const n="number"===typeof t?t:100;if(n<=0)return this;const r={timestamp:(0,o.yW)(),...e};return this._breadcrumbs=[...this._breadcrumbs,r].slice(-n),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}getAttachments(){return this._attachments}clearAttachments(){return this._attachments=[],this}applyToEvent(e,t={}){if(this._extra&&Object.keys(this._extra).length&&(e.extra={...this._extra,...e.extra}),this._tags&&Object.keys(this._tags).length&&(e.tags={...this._tags,...e.tags}),this._user&&Object.keys(this._user).length&&(e.user={...this._user,...e.user}),this._contexts&&Object.keys(this._contexts).length&&(e.contexts={...this._contexts,...e.contexts}),this._level&&(e.level=this._level),this._transactionName&&(e.transaction=this._transactionName),this._span){e.contexts={trace:this._span.getTraceContext(),...e.contexts};const t=this._span.transaction;if(t){e.sdkProcessingMetadata={dynamicSamplingContext:t.getDynamicSamplingContext(),...e.sdkProcessingMetadata};const n=t.name;n&&(e.tags={transaction:n,...e.tags})}}return this._applyFingerprint(e),e.breadcrumbs=[...e.breadcrumbs||[],...this._breadcrumbs],e.breadcrumbs=e.breadcrumbs.length>0?e.breadcrumbs:void 0,e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...this._sdkProcessingMetadata,propagationContext:this._propagationContext},this._notifyEventProcessors([...f(),...this._eventProcessors],e,t)}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata={...this._sdkProcessingMetadata,...e},this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}_notifyEventProcessors(e,t,n,o=0){return new i.cW(((i,s)=>{const l=e[o];if(null===t||"function"!==typeof l)i(t);else{const u=l({...t},n);("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&l.id&&null===u&&a.kg.log(`Event processor "${l.id}" dropped event`),(0,r.J8)(u)?u.then((t=>this._notifyEventProcessors(e,t,n,o+1).then(i))).then(null,s):this._notifyEventProcessors(e,u,n,o+1).then(i).then(null,s)}}))}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((e=>{e(this)})),this._notifyingListeners=!1)}_applyFingerprint(e){e.fingerprint=e.fingerprint?(0,s.lE)(e.fingerprint):[],this._fingerprint&&(e.fingerprint=e.fingerprint.concat(this._fingerprint)),e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}}function f(){return(0,l.YO)("globalEventProcessors",(()=>[]))}function d(e){f().push(e)}function p(){return{traceId:(0,s.DM)(),spanId:(0,s.DM)().substring(16),sampled:!1}}},9015:function(e,t,n){"use strict";n.d(t,{CT:function(){return s},Hv:function(){return a},RJ:function(){return l}});var r=n(21170),o=n(62844),i=n(20535);function a(e){const t=(0,r.ph)(),n={sid:(0,o.DM)(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return(0,i.Jr)({sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:"number"===typeof e.did||"string"===typeof e.did?`${e.did}`:void 0,duration:e.duration,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}(n)};return e&&s(n,e),n}function s(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||(0,r.ph)(),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:(0,o.DM)()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),"number"===typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if("number"===typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),"number"===typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function l(e,t){let n={};t?n={status:t}:"ok"===e.status&&(n={status:"exited"}),s(e,n)}},40105:function(e,t,n){"use strict";n.d(t,{J:function(){return r}});const r="7.64.0"},24975:function(e,t,n){"use strict";n.d(t,{SV:function(){return c}});var r=n(95659),o=n(7576),i=n(64487),a=n(67597),s=n(12343),l=(n(8679),n(67294));const u={componentStack:null,error:null,eventId:null};class c extends l.Component{constructor(e){super(e),c.prototype.__init.call(this),this.state=u,this._openFallbackReportDialog=!0;const t=(0,r.Gd)().getClient();t&&t.on&&e.showDialog&&(this._openFallbackReportDialog=!1,t.on("afterSendEvent",(t=>{t.type||t.event_id!==this._lastEventId||(0,o.jp)({...e.dialogOptions,eventId:this._lastEventId})})))}componentDidCatch(e,{componentStack:t}){const{beforeCapture:n,onError:r,showDialog:s,dialogOptions:u}=this.props;(0,i.$e)((c=>{if(function(e){const t=e.match(/^([^.]+)/);return null!==t&&parseInt(t[0])>=17}(l.version)&&(0,a.VZ)(e)){const n=new Error(e.message);n.name=`React ErrorBoundary ${n.name}`,n.stack=t,function(e,t){const n=new WeakMap;!function e(t,r){if(!n.has(t))return t.cause?(n.set(t,!0),e(t.cause,r)):void(t.cause=r)}(e,t)}(e,n)}n&&n(c,e,t);const f=(0,i.Tb)(e,{contexts:{react:{componentStack:t}}});r&&r(e,t,f),s&&(this._lastEventId=f,this._openFallbackReportDialog&&(0,o.jp)({...u,eventId:f})),this.setState({error:e,componentStack:t,eventId:f})}))}componentDidMount(){const{onMount:e}=this.props;e&&e()}componentWillUnmount(){const{error:e,componentStack:t,eventId:n}=this.state,{onUnmount:r}=this.props;r&&r(e,t,n)}__init(){this.resetErrorBoundary=()=>{const{onReset:e}=this.props,{error:t,componentStack:n,eventId:r}=this.state;e&&e(t,n,r),this.setState(u)}}render(){const{fallback:e,children:t}=this.props,n=this.state;if(n.error){let t;return t="function"===typeof e?e({error:n.error,componentStack:n.componentStack,resetError:this.resetErrorBoundary,eventId:n.eventId}):e,l.isValidElement(t)?t:(e&&("undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__)&&s.kg.warn("fallback did not produce a valid ReactElement"),null)}return"function"===typeof t?t():t}}},27923:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var r=n(40105),o=n(7576);function i(e){e._metadata=e._metadata||{},e._metadata.sdk=e._metadata.sdk||{name:"sentry.javascript.react",packages:[{name:"npm:@sentry/react",version:r.J}],version:r.J},(0,o.S1)(e)}},58464:function(e,t,n){"use strict";n.d(t,{Rt:function(){return a},l4:function(){return l}});var r=n(67597);const o=(0,n(71235).Rf)(),i=80;function a(e,t={}){try{let n=e;const r=5,o=[];let a=0,l=0;const u=" > ",c=u.length;let f;const d=Array.isArray(t)?t:t.keyAttrs,p=!Array.isArray(t)&&t.maxStringLength||i;for(;n&&a++<r&&(f=s(n,d),!("html"===f||a>1&&l+o.length*c+f.length>=p));)o.push(f),l+=f.length,n=n.parentNode;return o.reverse().join(u)}catch(n){return"<unknown>"}}function s(e,t){const n=e,o=[];let i,a,s,l,u;if(!n||!n.tagName)return"";o.push(n.tagName.toLowerCase());const c=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(c&&c.length)c.forEach((e=>{o.push(`[${e[0]}="${e[1]}"]`)}));else if(n.id&&o.push(`#${n.id}`),i=n.className,i&&(0,r.HD)(i))for(a=i.split(/\s+/),u=0;u<a.length;u++)o.push(`.${a[u]}`);const f=["aria-label","type","name","title","alt"];for(u=0;u<f.length;u++)s=f[u],l=n.getAttribute(s),l&&o.push(`[${s}="${l}"]`);return o.join("")}function l(){try{return o.document.location.href}catch(e){return""}}},68518:function(e,t,n){"use strict";function r(){return"undefined"!==typeof __SENTRY_BROWSER_BUNDLE__&&!!__SENTRY_BROWSER_BUNDLE__}function o(){return"npm"}n.d(t,{S:function(){return o},n:function(){return r}})},67597:function(e,t,n){"use strict";n.d(t,{Cy:function(){return v},HD:function(){return u},J8:function(){return g},Kj:function(){return h},PO:function(){return f},TX:function(){return s},V9:function(){return y},VW:function(){return a},VZ:function(){return o},cO:function(){return d},fm:function(){return l},i2:function(){return m},kK:function(){return p},pt:function(){return c}});const r=Object.prototype.toString;function o(e){switch(r.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return y(e,Error)}}function i(e,t){return r.call(e)===`[object ${t}]`}function a(e){return i(e,"ErrorEvent")}function s(e){return i(e,"DOMError")}function l(e){return i(e,"DOMException")}function u(e){return i(e,"String")}function c(e){return null===e||"object"!==typeof e&&"function"!==typeof e}function f(e){return i(e,"Object")}function d(e){return"undefined"!==typeof Event&&y(e,Event)}function p(e){return"undefined"!==typeof Element&&y(e,Element)}function h(e){return i(e,"RegExp")}function g(e){return Boolean(e&&e.then&&"function"===typeof e.then)}function v(e){return f(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e}function m(e){return"number"===typeof e&&e!==e}function y(e,t){try{return e instanceof t}catch(n){return!1}}},12343:function(e,t,n){"use strict";n.d(t,{Cf:function(){return i},RU:function(){return o},kg:function(){return s}});var r=n(71235);const o=["debug","info","warn","error","log","assert","trace"];function i(e){if(!("console"in r.n2))return e();const t=r.n2.console,n={};o.forEach((e=>{const r=t[e]&&t[e].__sentry_original__;e in t&&r&&(n[e]=t[e],t[e]=r)}));try{return e()}finally{Object.keys(n).forEach((e=>{t[e]=n[e]}))}}function a(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1}};return"undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?o.forEach((n=>{t[n]=(...t)=>{e&&i((()=>{r.n2.console[n](`Sentry Logger [${n}]:`,...t)}))}})):o.forEach((e=>{t[e]=()=>{}})),t}let s;s="undefined"===typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__?(0,r.YO)("logger",a):a()},62844:function(e,t,n){"use strict";n.d(t,{DM:function(){return i},Db:function(){return l},EG:function(){return u},YO:function(){return c},jH:function(){return s},lE:function(){return f}});var r=n(20535),o=n(71235);function i(){const e=o.n2,t=e.crypto||e.msCrypto;if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,"");const n=t&&t.getRandomValues?()=>t.getRandomValues(new Uint8Array(1))[0]:()=>16*Math.random();return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,(e=>(e^(15&n())>>e/4).toString(16)))}function a(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function s(e){const{message:t,event_id:n}=e;if(t)return t;const r=a(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||"<unknown>":n||"<unknown>"}function l(e,t,n){const r=e.exception=e.exception||{},o=r.values=r.values||[],i=o[0]=o[0]||{};i.value||(i.value=t||""),i.type||(i.type=n||"Error")}function u(e,t){const n=a(e);if(!n)return;const r=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...r,...t},t&&"data"in t){const e={...r&&r.data,...t.data};n.mechanism.data=e}}function c(e){if(e&&e.__sentry_captured__)return!0;try{(0,r.xp)(e,"__sentry_captured__",!0)}catch(t){}return!1}function f(e){return Array.isArray(e)?e:[e]}},61422:function(e,t,n){"use strict";n.d(t,{KV:function(){return o},l$:function(){return i}});var r=n(68518);function o(){return!(0,r.n)()&&"[object process]"===Object.prototype.toString.call("undefined"!==typeof process?process:0)}function i(e,t){return e.require(t)}e=n.hmd(e)},20535:function(e,t,n){"use strict";n.d(t,{$Q:function(){return l},HK:function(){return u},Jr:function(){return g},Sh:function(){return f},_j:function(){return c},hl:function(){return a},xp:function(){return s},zf:function(){return h}});var r=n(58464),o=n(67597),i=n(57321);function a(e,t,n){if(!(t in e))return;const r=e[t],o=n(r);if("function"===typeof o)try{l(o,r)}catch(i){}e[t]=o}function s(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}function l(e,t){const n=t.prototype||{};e.prototype=t.prototype=n,s(e,"__sentry_original__",t)}function u(e){return e.__sentry_original__}function c(e){return Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}function f(e){if((0,o.VZ)(e))return{message:e.message,name:e.name,stack:e.stack,...p(e)};if((0,o.cO)(e)){const t={type:e.type,target:d(e.target),currentTarget:d(e.currentTarget),...p(e)};return"undefined"!==typeof CustomEvent&&(0,o.V9)(e,CustomEvent)&&(t.detail=e.detail),t}return e}function d(e){try{return(0,o.kK)(e)?(0,r.Rt)(e):Object.prototype.toString.call(e)}catch(t){return"<unknown>"}}function p(e){if("object"===typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function h(e,t=40){const n=Object.keys(f(e));if(n.sort(),!n.length)return"[object has no keys]";if(n[0].length>=t)return(0,i.$G)(n[0],t);for(let r=n.length;r>0;r--){const e=n.slice(0,r).join(", ");if(!(e.length>t))return r===n.length?e:(0,i.$G)(e,t)}return""}function g(e){return v(e,new Map)}function v(e,t){if((0,o.PO)(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const o of Object.keys(e))"undefined"!==typeof e[o]&&(r[o]=v(e[o],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(v(e,t))})),r}return e}},57321:function(e,t,n){"use strict";n.d(t,{$G:function(){return o},U0:function(){return a},nK:function(){return i}});var r=n(67597);function o(e,t=0){return"string"!==typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function i(e,t){if(!Array.isArray(e))return"";const n=[];for(let o=0;o<e.length;o++){const t=e[o];try{n.push(String(t))}catch(r){n.push("[value cannot be serialized]")}}return n.join(t)}function a(e,t=[],n=!1){return t.some((t=>function(e,t,n=!1){return!!(0,r.HD)(e)&&((0,r.Kj)(t)?t.test(e):!!(0,r.HD)(t)&&(n?e===t:e.includes(t)))}(e,t,n)))}},96893:function(e,t,n){"use strict";n.d(t,{$2:function(){return a},WD:function(){return i},cW:function(){return s}});var r,o=n(67597);function i(e){return new s((t=>{t(e)}))}function a(e){return new s(((t,n)=>{n(e)}))}!function(e){e[e.PENDING=0]="PENDING";e[e.RESOLVED=1]="RESOLVED";e[e.REJECTED=2]="REJECTED"}(r||(r={}));class s{constructor(e){s.prototype.__init.call(this),s.prototype.__init2.call(this),s.prototype.__init3.call(this),s.prototype.__init4.call(this),this._state=r.PENDING,this._handlers=[];try{e(this._resolve,this._reject)}catch(t){this._reject(t)}}then(e,t){return new s(((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(o){r(o)}else n(t)},e=>{if(t)try{n(t(e))}catch(o){r(o)}else r(e)}]),this._executeHandlers()}))}catch(e){return this.then((e=>e),e)}finally(e){return new s(((t,n)=>{let r,o;return this.then((t=>{o=!1,r=t,e&&e()}),(t=>{o=!0,r=t,e&&e()})).then((()=>{o?n(r):t(r)}))}))}__init(){this._resolve=e=>{this._setResult(r.RESOLVED,e)}}__init2(){this._reject=e=>{this._setResult(r.REJECTED,e)}}__init3(){this._setResult=(e,t)=>{this._state===r.PENDING&&((0,o.J8)(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init4(){this._executeHandlers=()=>{if(this._state===r.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach((e=>{e[0]||(this._state===r.RESOLVED&&e[1](this._value),this._state===r.REJECTED&&e[2](this._value),e[0]=!0)}))}}}},21170:function(e,t,n){"use strict";n.d(t,{ph:function(){return c},yW:function(){return u}});var r=n(61422),o=n(71235);e=n.hmd(e);const i=(0,o.Rf)(),a={nowSeconds:()=>Date.now()/1e3};const s=(0,r.KV)()?function(){try{return(0,r.l$)(e,"perf_hooks").performance}catch(t){return}}():function(){const{performance:e}=i;if(!e||!e.now)return;return{now:()=>e.now(),timeOrigin:Date.now()-e.now()}}(),l=void 0===s?a:{nowSeconds:()=>(s.timeOrigin+s.now())/1e3},u=a.nowSeconds.bind(a),c=l.nowSeconds.bind(l);let f;(()=>{const{performance:e}=i;if(!e||!e.now)return void(f="none");const t=36e5,n=e.now(),r=Date.now(),o=e.timeOrigin?Math.abs(e.timeOrigin+n-r):t,a=o<t,s=e.timing&&e.timing.navigationStart,l="number"===typeof s?Math.abs(s+n-r):t;a||l<t?o<=l?(f="timeOrigin",e.timeOrigin):f="navigationStart":f="dateNow"})()},71235:function(e,t,n){"use strict";function r(e){return e&&e.Math==Math?e:void 0}n.d(t,{Rf:function(){return i},YO:function(){return a},n2:function(){return o}});const o="object"==typeof globalThis&&r(globalThis)||"object"==typeof window&&r(window)||"object"==typeof self&&r(self)||"object"==typeof n.g&&r(n.g)||function(){return this}()||{};function i(){return o}function a(e,t,n){const r=n||o,i=r.__SENTRY__=r.__SENTRY__||{};return i[e]||(i[e]=t())}},37947:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}var o=function(e,t,n,r,o){for(t=t&&t.split?t.split("."):[t],r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e},i=[40,52,64].map((function(e){return e+"em"})),a={space:[0,4,8,16,32,64,128,256,512],fontSizes:[12,14,16,20,24,32,48,64,72]},s={bg:"backgroundColor",m:"margin",mt:"marginTop",mr:"marginRight",mb:"marginBottom",ml:"marginLeft",mx:"marginX",my:"marginY",p:"padding",pt:"paddingTop",pr:"paddingRight",pb:"paddingBottom",pl:"paddingLeft",px:"paddingX",py:"paddingY"},l={marginX:["marginLeft","marginRight"],marginY:["marginTop","marginBottom"],paddingX:["paddingLeft","paddingRight"],paddingY:["paddingTop","paddingBottom"],size:["width","height"]},u={color:"colors",backgroundColor:"colors",borderColor:"colors",margin:"space",marginTop:"space",marginRight:"space",marginBottom:"space",marginLeft:"space",marginX:"space",marginY:"space",padding:"space",paddingTop:"space",paddingRight:"space",paddingBottom:"space",paddingLeft:"space",paddingX:"space",paddingY:"space",top:"space",right:"space",bottom:"space",left:"space",gridGap:"space",gridColumnGap:"space",gridRowGap:"space",gap:"space",columnGap:"space",rowGap:"space",fontFamily:"fonts",fontSize:"fontSizes",fontWeight:"fontWeights",lineHeight:"lineHeights",letterSpacing:"letterSpacings",border:"borders",borderTop:"borders",borderRight:"borders",borderBottom:"borders",borderLeft:"borders",borderWidth:"borderWidths",borderStyle:"borderStyles",borderRadius:"radii",borderTopRightRadius:"radii",borderTopLeftRadius:"radii",borderBottomRightRadius:"radii",borderBottomLeftRadius:"radii",borderTopWidth:"borderWidths",borderTopColor:"colors",borderTopStyle:"borderStyles",borderBottomWidth:"borderWidths",borderBottomColor:"colors",borderBottomStyle:"borderStyles",borderLeftWidth:"borderWidths",borderLeftColor:"colors",borderLeftStyle:"borderStyles",borderRightWidth:"borderWidths",borderRightColor:"colors",borderRightStyle:"borderStyles",outlineColor:"colors",boxShadow:"shadows",textShadow:"shadows",zIndex:"zIndices",width:"sizes",minWidth:"sizes",maxWidth:"sizes",height:"sizes",minHeight:"sizes",maxHeight:"sizes",flexBasis:"sizes",size:"sizes",fill:"colors",stroke:"colors"},c=function(e,t){if("number"!==typeof t||t>=0)return o(e,t,t);var n=Math.abs(t),r=o(e,n,n);return"string"===typeof r?"-"+r:-1*r},f=["margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","top","bottom","left","right"].reduce((function(e,t){var n;return r({},e,((n={})[t]=c,n))}),{});t.ZP=function e(t){return function(n){void 0===n&&(n={});var c=r({},a,{},n.theme||n),d={},p=function(e){return function(t){var n={},r=o(t,"breakpoints",i),a=[null].concat(r.map((function(e){return"@media screen and (min-width: "+e+")"})));for(var s in e){var l="function"===typeof e[s]?e[s](t):e[s];if(null!=l)if(Array.isArray(l))for(var u=0;u<l.slice(0,a.length).length;u++){var c=a[u];c?(n[c]=n[c]||{},null!=l[u]&&(n[c][s]=l[u])):n[s]=l[u]}else n[s]=l}return n}}("function"===typeof t?t(c):t)(c);for(var h in p){var g=p[h],v="function"===typeof g?g(c):g;if("variant"!==h)if(v&&"object"===typeof v)d[h]=e(v)(c);else{var m=o(s,h,h),y=o(u,m),b=o(c,y,o(c,m,{})),w=o(f,m,o)(b,v,v);if(l[m])for(var _=l[m],x=0;x<_.length;x++)d[_[x]]=w;else d[m]=w}else d=r({},d,{},e(o(c,v))(c))}return d}}},21924:function(e,t,n){"use strict";var r=n(10492),o=n(55559),i=o(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"===typeof n&&i(e,".prototype.")>-1?o(n):n}},55559:function(e,t,n){"use strict";var r=n(58612),o=n(10492),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),s=o("%Reflect.apply%",!0)||r.call(a,i),l=o("%Object.getOwnPropertyDescriptor%",!0),u=o("%Object.defineProperty%",!0),c=o("%Math.max%");if(u)try{u({},"a",{value:1})}catch(d){u=null}e.exports=function(e){var t=s(r,a,arguments);l&&u&&(l(t,"length").configurable&&u(t,"length",{value:1+c(0,e.length-(arguments.length-1))}));return t};var f=function(){return s(r,i,arguments)};u?u(e.exports,"apply",{value:f}):e.exports.apply=f},10492:function(e,t,n){"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(t){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(P){l=null}var u=function(){throw new a},c=l?function(){try{return u}catch(e){try{return l(arguments,"callee").get}catch(t){return u}}}():u,f=n(41405)(),d=n(28185)(),p=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),h={},g="undefined"!==typeof Uint8Array&&p?p(Uint8Array):r,v={"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f&&p?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":h,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f&&p?p(p([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&f&&p?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&f&&p?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f&&p?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(p)try{null.error}catch(P){var m=p(p(P));v["%Error.prototype%"]=m}var y=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&p&&(n=p(o.prototype))}return v[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(58612),_=n(17642),x=w.call(Function.call,Array.prototype.concat),S=w.call(Function.apply,Array.prototype.splice),O=w.call(Function.call,String.prototype.replace),C=w.call(Function.call,String.prototype.slice),E=w.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,k=/\\(\\)?/g,M=function(e,t){var n,r=e;if(_(b,r)&&(r="%"+(n=b[r])[0]+"%"),_(v,r)){var i=v[r];if(i===h&&(i=y(r)),"undefined"===typeof i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===E(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=C(e,0,1),n=C(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return O(e,A,(function(e,t,n,o){r[r.length]=n?O(o,k,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=M("%"+r+"%",t),s=i.name,u=i.value,c=!1,f=i.alias;f&&(r=f[0],S(n,x([0,1],f)));for(var d=1,p=!0;d<n.length;d+=1){var h=n[d],g=C(h,0,1),m=C(h,-1);if(('"'===g||"'"===g||"`"===g||'"'===m||"'"===m||"`"===m)&&g!==m)throw new o("property names with quotes must have matching quotes");if("constructor"!==h&&p||(c=!0),_(v,s="%"+(r+="."+h)+"%"))u=v[s];else if(null!=u){if(!(h in u)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(l&&d+1>=n.length){var y=l(u,h);u=(p=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:u[h]}else p=_(u,h),u=u[h];p&&!c&&(v[s]=u)}}return u}},40487:function(e){var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}};e.exports=t},86010:function(e,t,n){"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.r(t),n.d(t,{clsx:function(){return o}}),t.default=o},19662:function(e,t,n){"use strict";var r=n(60614),o=n(66330),i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not a function")}},39483:function(e,t,n){"use strict";var r=n(4411),o=n(66330),i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not a constructor")}},40027:function(e,t,n){"use strict";var r=n(75706).has;e.exports=function(e){return r(e),e}},96077:function(e,t,n){"use strict";var r=n(60614),o=String,i=TypeError;e.exports=function(e){if("object"==typeof e||r(e))return e;throw i("Can't set "+o(e)+" as a prototype")}},88999:function(e,t,n){"use strict";var r=n(79405).has;e.exports=function(e){return r(e),e}},51223:function(e,t,n){"use strict";var r=n(5112),o=n(70030),i=n(3070).f,a=r("unscopables"),s=Array.prototype;void 0==s[a]&&i(s,a,{configurable:!0,value:o(null)}),e.exports=function(e){s[a][e]=!0}},31530:function(e,t,n){"use strict";var r=n(28710).charAt;e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},25787:function(e,t,n){"use strict";var r=n(47976),o=TypeError;e.exports=function(e,t){if(r(t,e))return e;throw o("Incorrect invocation")}},19670:function(e,t,n){"use strict";var r=n(70111),o=String,i=TypeError;e.exports=function(e){if(r(e))return e;throw i(o(e)+" is not an object")}},7556:function(e,t,n){"use strict";var r=n(47293);e.exports=r((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}}))},18533:function(e,t,n){"use strict";var r=n(42092).forEach,o=n(9341)("forEach");e.exports=o?[].forEach:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}},48457:function(e,t,n){"use strict";var r=n(49974),o=n(46916),i=n(47908),a=n(53411),s=n(97659),l=n(4411),u=n(26244),c=n(86135),f=n(18554),d=n(71246),p=Array;e.exports=function(e){var t=i(e),n=l(this),h=arguments.length,g=h>1?arguments[1]:void 0,v=void 0!==g;v&&(g=r(g,h>2?arguments[2]:void 0));var m,y,b,w,_,x,S=d(t),O=0;if(!S||this===p&&s(S))for(m=u(t),y=n?new this(m):p(m);m>O;O++)x=v?g(t[O],O):t[O],c(y,O,x);else for(_=(w=f(t,S)).next,y=n?new this:[];!(b=o(_,w)).done;O++)x=v?a(w,g,[b.value,O],!0):b.value,c(y,O,x);return y.length=O,y}},41318:function(e,t,n){"use strict";var r=n(45656),o=n(51400),i=n(26244),a=function(e){return function(t,n,a){var s,l=r(t),u=i(l),c=o(a,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},42092:function(e,t,n){"use strict";var r=n(49974),o=n(1702),i=n(68361),a=n(47908),s=n(26244),l=n(65417),u=o([].push),c=function(e){var t=1==e,n=2==e,o=3==e,c=4==e,f=6==e,d=7==e,p=5==e||f;return function(h,g,v,m){for(var y,b,w=a(h),_=i(w),x=r(g,v),S=s(_),O=0,C=m||l,E=t?C(h,S):n||d?C(h,0):void 0;S>O;O++)if((p||O in _)&&(b=x(y=_[O],O,w),e))if(t)E[O]=b;else if(b)switch(e){case 3:return!0;case 5:return y;case 6:return O;case 2:u(E,y)}else switch(e){case 4:return!1;case 7:u(E,y)}return f?-1:o||c?c:E}};e.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},81194:function(e,t,n){"use strict";var r=n(47293),o=n(5112),i=n(7392),a=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},9341:function(e,t,n){"use strict";var r=n(47293);e.exports=function(e,t){var n=[][e];return!!n&&r((function(){n.call(null,t||function(){return 1},1)}))}},53671:function(e,t,n){"use strict";var r=n(19662),o=n(47908),i=n(68361),a=n(26244),s=TypeError,l=function(e){return function(t,n,l,u){r(n);var c=o(t),f=i(c),d=a(c),p=e?d-1:0,h=e?-1:1;if(l<2)for(;;){if(p in f){u=f[p],p+=h;break}if(p+=h,e?p<0:d<=p)throw s("Reduce of empty array with no initial value")}for(;e?p>=0:d>p;p+=h)p in f&&(u=n(u,f[p],p,c));return u}};e.exports={left:l(!1),right:l(!0)}},83658:function(e,t,n){"use strict";var r=n(19781),o=n(43157),i=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=s?function(e,t){if(o(e)&&!a(e,"length").writable)throw i("Cannot set read only .length");return e.length=t}:function(e,t){return e.length=t}},41589:function(e,t,n){"use strict";var r=n(51400),o=n(26244),i=n(86135),a=Array,s=Math.max;e.exports=function(e,t,n){for(var l=o(e),u=r(t,l),c=r(void 0===n?l:n,l),f=a(s(c-u,0)),d=0;u<c;u++,d++)i(f,d,e[u]);return f.length=d,f}},50206:function(e,t,n){"use strict";var r=n(1702);e.exports=r([].slice)},94362:function(e,t,n){"use strict";var r=n(41589),o=Math.floor,i=function(e,t){var n=e.length,l=o(n/2);return n<8?a(e,t):s(e,i(r(e,0,l),t),i(r(e,l),t),t)},a=function(e,t){for(var n,r,o=e.length,i=1;i<o;){for(r=i,n=e[i];r&&t(e[r-1],n)>0;)e[r]=e[--r];r!==i++&&(e[r]=n)}return e},s=function(e,t,n,r){for(var o=t.length,i=n.length,a=0,s=0;a<o||s<i;)e[a+s]=a<o&&s<i?r(t[a],n[s])<=0?t[a++]:n[s++]:a<o?t[a++]:n[s++];return e};e.exports=i},77475:function(e,t,n){"use strict";var r=n(43157),o=n(4411),i=n(70111),a=n(5112)("species"),s=Array;e.exports=function(e){var t;return r(e)&&(t=e.constructor,(o(t)&&(t===s||r(t.prototype))||i(t)&&null===(t=t[a]))&&(t=void 0)),void 0===t?s:t}},65417:function(e,t,n){"use strict";var r=n(77475);e.exports=function(e,t){return new(r(e))(0===t?0:t)}},21753:function(e,t,n){"use strict";var r=n(46916),o=n(35005),i=n(58173);e.exports=function(e,t,n,a){try{var s=i(e,"return");if(s)return o("Promise").resolve(r(s,e)).then((function(){t(n)}),(function(e){a(e)}))}catch(l){return a(l)}t(n)}},45348:function(e,t,n){"use strict";var r=n(46916),o=n(12534),i=n(19670),a=n(70030),s=n(68880),l=n(89190),u=n(5112),c=n(29909),f=n(35005),d=n(58173),p=n(66462),h=n(76178),g=n(99212),v=f("Promise"),m=u("toStringTag"),y="AsyncIteratorHelper",b="WrapForValidAsyncIterator",w=c.set,_=function(e){var t=!e,n=c.getterFor(e?b:y),s=function(e){var r=o((function(){return n(e)})),i=r.error,a=r.value;return i||t&&a.done?{exit:!0,value:i?v.reject(a):v.resolve(h(void 0,!0))}:{exit:!1,value:a}};return l(a(p),{next:function(){var e=s(this),t=e.value;if(e.exit)return t;var n=o((function(){return i(t.nextHandler(v))})),r=n.error,a=n.value;return r&&(t.done=!0),r?v.reject(a):v.resolve(a)},return:function(){var t=s(this),n=t.value;if(t.exit)return n;n.done=!0;var a,l,u=n.iterator,c=o((function(){if(n.inner)try{g(n.inner.iterator,"normal")}catch(e){return g(u,"throw",e)}return d(u,"return")}));return a=l=c.value,c.error?v.reject(l):void 0===a?v.resolve(h(void 0,!0)):(l=(c=o((function(){return r(a,u)}))).value,c.error?v.reject(l):e?v.resolve(l):v.resolve(l).then((function(e){return i(e),h(void 0,!0)})))}})},x=_(!0),S=_(!1);s(S,m,"Async Iterator Helper"),e.exports=function(e,t){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=t?b:y,r.nextHandler=e,r.counter=0,r.done=!1,w(this,r)};return n.prototype=t?x:S,n}},12269:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(70111),s=n(7207),l=n(35005),u=n(24942),c=n(21753),f=function(e){var t=0==e,n=1==e,f=2==e,d=3==e;return function(e,p,h){i(e);var g=void 0!==p;!g&&t||o(p);var v=u(e),m=l("Promise"),y=v.iterator,b=v.next,w=0;return new m((function(e,o){var l=function(e){c(y,o,e,o)},u=function(){try{if(g)try{s(w)}catch(v){l(v)}m.resolve(i(r(b,y))).then((function(r){try{if(i(r).done)t?(h.length=w,e(h)):e(!d&&(f||void 0));else{var s=r.value;try{if(g){var v=p(s,w),b=function(r){if(n)u();else if(f)r?u():c(y,e,!1,o);else if(t)try{h[w++]=r,u()}catch(i){l(i)}else r?c(y,e,d||s,o):u()};a(v)?m.resolve(v).then(b,l):b(v)}else h[w++]=s,u()}catch(_){l(_)}}}catch(x){o(x)}}),o)}catch(_){o(_)}};u()}))}};e.exports={toArray:f(0),forEach:f(1),every:f(2),some:f(3),find:f(4)}},13232:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(70111),s=n(24942),l=n(45348),u=n(76178),c=n(21753),f=l((function(e){var t=this,n=t.iterator,o=t.mapper;return new e((function(s,l){var f=function(e){t.done=!0,l(e)},d=function(e){c(n,f,e,f)};e.resolve(i(r(t.next,n))).then((function(n){try{if(i(n).done)t.done=!0,s(u(void 0,!0));else{var r=n.value;try{var l=o(r,t.counter++),c=function(e){s(u(e,!1))};a(l)?e.resolve(l).then(c,d):c(l)}catch(p){d(p)}}}catch(h){f(h)}}),f)}))}));e.exports=function(e){return i(this),o(e),new f(s(this),{mapper:e})}},66462:function(e,t,n){"use strict";var r,o,i=n(17854),a=n(5465),s=n(60614),l=n(70030),u=n(79518),c=n(98052),f=n(5112),d=n(31913),p="USE_FUNCTION_CONSTRUCTOR",h=f("asyncIterator"),g=i.AsyncIterator,v=a.AsyncIteratorPrototype;if(v)r=v;else if(s(g))r=g.prototype;else if(a[p]||i[p])try{o=u(u(u(Function("return async function*(){}()")()))),u(o)===Object.prototype&&(r=o)}catch(m){}r?d&&(r=l(r)):r={},s(r[h])||c(r,h,(function(){return this})),e.exports=r},53411:function(e,t,n){"use strict";var r=n(19670),o=n(99212);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(a){o(e,"throw",a)}}},17072:function(e,t,n){"use strict";var r=n(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(s){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(s){}return n}},84326:function(e,t,n){"use strict";var r=n(1702),o=r({}.toString),i=r("".slice);e.exports=function(e){return i(o(e),8,-1)}},70648:function(e,t,n){"use strict";var r=n(51694),o=n(60614),i=n(84326),a=n(5112)("toStringTag"),s=Object,l="Arguments"==i(function(){return arguments}());e.exports=r?i:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=s(e),a))?n:l?i(t):"Object"==(r=i(t))&&o(t.callee)?"Arguments":r}},95631:function(e,t,n){"use strict";var r=n(70030),o=n(47045),i=n(89190),a=n(49974),s=n(25787),l=n(68554),u=n(20408),c=n(51656),f=n(76178),d=n(96340),p=n(19781),h=n(62423).fastKey,g=n(29909),v=g.set,m=g.getterFor;e.exports={getConstructor:function(e,t,n,c){var f=e((function(e,o){s(e,d),v(e,{type:t,index:r(null),first:void 0,last:void 0,size:0}),p||(e.size=0),l(o)||u(o,e[c],{that:e,AS_ENTRIES:n})})),d=f.prototype,g=m(t),y=function(e,t,n){var r,o,i=g(e),a=b(e,t);return a?a.value=n:(i.last=a={index:o=h(t,!0),key:t,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=a),r&&(r.next=a),p?i.size++:e.size++,"F"!==o&&(i.index[o]=a)),e},b=function(e,t){var n,r=g(e),o=h(t);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==t)return n};return i(d,{clear:function(){for(var e=g(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,p?e.size=0:this.size=0},delete:function(e){var t=this,n=g(t),r=b(t,e);if(r){var o=r.next,i=r.previous;delete n.index[r.index],r.removed=!0,i&&(i.next=o),o&&(o.previous=i),n.first==r&&(n.first=o),n.last==r&&(n.last=i),p?n.size--:t.size--}return!!r},forEach:function(e){for(var t,n=g(this),r=a(e,arguments.length>1?arguments[1]:void 0);t=t?t.next:n.first;)for(r(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!b(this,e)}}),i(d,n?{get:function(e){var t=b(this,e);return t&&t.value},set:function(e,t){return y(this,0===e?0:e,t)}}:{add:function(e){return y(this,e=0===e?0:e,e)}}),p&&o(d,"size",{configurable:!0,get:function(){return g(this).size}}),f},setStrong:function(e,t,n){var r=t+" Iterator",o=m(t),i=m(r);c(e,t,(function(e,t){v(this,{type:r,target:e,state:o(e),kind:t,last:void 0})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?f("keys"==t?n.key:"values"==t?n.value:[n.key,n.value],!1):(e.target=void 0,f(void 0,!0))}),n?"entries":"values",!n,!0),d(t)}}},77710:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(1702),a=n(54705),s=n(98052),l=n(62423),u=n(20408),c=n(25787),f=n(60614),d=n(68554),p=n(70111),h=n(47293),g=n(17072),v=n(58003),m=n(79587);e.exports=function(e,t,n){var y=-1!==e.indexOf("Map"),b=-1!==e.indexOf("Weak"),w=y?"set":"add",_=o[e],x=_&&_.prototype,S=_,O={},C=function(e){var t=i(x[e]);s(x,e,"add"==e?function(e){return t(this,0===e?0:e),this}:"delete"==e?function(e){return!(b&&!p(e))&&t(this,0===e?0:e)}:"get"==e?function(e){return b&&!p(e)?void 0:t(this,0===e?0:e)}:"has"==e?function(e){return!(b&&!p(e))&&t(this,0===e?0:e)}:function(e,n){return t(this,0===e?0:e,n),this})};if(a(e,!f(_)||!(b||x.forEach&&!h((function(){(new _).entries().next()})))))S=n.getConstructor(t,e,y,w),l.enable();else if(a(e,!0)){var E=new S,A=E[w](b?{}:-0,1)!=E,k=h((function(){E.has(1)})),M=g((function(e){new _(e)})),P=!b&&h((function(){for(var e=new _,t=5;t--;)e[w](t,t);return!e.has(-0)}));M||((S=t((function(e,t){c(e,x);var n=m(new _,e,S);return d(t)||u(t,n[w],{that:n,AS_ENTRIES:y}),n}))).prototype=x,x.constructor=S),(k||P)&&(C("delete"),C("has"),y&&C("get")),(P||A)&&C(w),b&&x.clear&&delete x.clear}return O[e]=S,r({global:!0,constructor:!0,forced:S!=_},O),v(S,e),b||n.setStrong(S,e,y),S}},99920:function(e,t,n){"use strict";var r=n(92597),o=n(53887),i=n(31236),a=n(3070);e.exports=function(e,t,n){for(var s=o(t),l=a.f,u=i.f,c=0;c<s.length;c++){var f=s[c];r(e,f)||n&&r(n,f)||l(e,f,u(t,f))}}},84964:function(e,t,n){"use strict";var r=n(5112)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(o){}}return!1}},49920:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},76178:function(e){"use strict";e.exports=function(e,t){return{value:e,done:t}}},68880:function(e,t,n){"use strict";var r=n(19781),o=n(3070),i=n(79114);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},79114:function(e){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},86135:function(e,t,n){"use strict";var r=n(34948),o=n(3070),i=n(79114);e.exports=function(e,t,n){var a=r(t);a in e?o.f(e,a,i(0,n)):e[a]=n}},47045:function(e,t,n){"use strict";var r=n(56339),o=n(3070);e.exports=function(e,t,n){return n.get&&r(n.get,t,{getter:!0}),n.set&&r(n.set,t,{setter:!0}),o.f(e,t,n)}},98052:function(e,t,n){"use strict";var r=n(60614),o=n(3070),i=n(56339),a=n(13072);e.exports=function(e,t,n,s){s||(s={});var l=s.enumerable,u=void 0!==s.name?s.name:t;if(r(n)&&i(n,u,s),s.global)l?e[t]=n:a(t,n);else{try{s.unsafe?e[t]&&(l=!0):delete e[t]}catch(c){}l?e[t]=n:o.f(e,t,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}},89190:function(e,t,n){"use strict";var r=n(98052);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},13072:function(e,t,n){"use strict";var r=n(17854),o=Object.defineProperty;e.exports=function(e,t){try{o(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}},85117:function(e,t,n){"use strict";var r=n(66330),o=TypeError;e.exports=function(e,t){if(!delete e[t])throw o("Cannot delete property "+r(t)+" of "+r(e))}},19781:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4154:function(e){"use strict";var t="object"==typeof document&&document.all,n="undefined"==typeof t&&void 0!==t;e.exports={all:t,IS_HTMLDDA:n}},80317:function(e,t,n){"use strict";var r=n(17854),o=n(70111),i=r.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},7207:function(e){"use strict";var t=TypeError;e.exports=function(e){if(e>9007199254740991)throw t("Maximum allowed index exceeded");return e}},48324:function(e){"use strict";e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},98509:function(e,t,n){"use strict";var r=n(80317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;e.exports=o===Object.prototype?void 0:o},68886:function(e,t,n){"use strict";var r=n(88113).match(/firefox\/(\d+)/i);e.exports=!!r&&+r[1]},7871:function(e,t,n){"use strict";var r=n(83823),o=n(35268);e.exports=!r&&!o&&"object"==typeof window&&"object"==typeof document},83823:function(e){"use strict";e.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},30256:function(e,t,n){"use strict";var r=n(88113);e.exports=/MSIE|Trident/.test(r)},71528:function(e,t,n){"use strict";var r=n(88113);e.exports=/ipad|iphone|ipod/i.test(r)&&"undefined"!=typeof Pebble},6833:function(e,t,n){"use strict";var r=n(88113);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},35268:function(e,t,n){"use strict";var r=n(84326);e.exports="undefined"!=typeof process&&"process"==r(process)},71036:function(e,t,n){"use strict";var r=n(88113);e.exports=/web0s(?!.*chrome)/i.test(r)},88113:function(e){"use strict";e.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},7392:function(e,t,n){"use strict";var r,o,i=n(17854),a=n(88113),s=i.process,l=i.Deno,u=s&&s.versions||l&&l.version,c=u&&u.v8;c&&(o=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),e.exports=o},98008:function(e,t,n){"use strict";var r=n(88113).match(/AppleWebKit\/(\d+)\./);e.exports=!!r&&+r[1]},80748:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},82109:function(e,t,n){"use strict";var r=n(17854),o=n(31236).f,i=n(68880),a=n(98052),s=n(13072),l=n(99920),u=n(54705);e.exports=function(e,t){var n,c,f,d,p,h=e.target,g=e.global,v=e.stat;if(n=g?r:v?r[h]||s(h,{}):(r[h]||{}).prototype)for(c in t){if(d=t[c],f=e.dontCallGetSet?(p=o(n,c))&&p.value:n[c],!u(g?c:h+(v?".":"#")+c,e.forced)&&void 0!==f){if(typeof d==typeof f)continue;l(d,f)}(e.sham||f&&f.sham)&&i(d,"sham",!0),a(n,c,d,e)}}},47293:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},27007:function(e,t,n){"use strict";n(74916);var r=n(21470),o=n(98052),i=n(22261),a=n(47293),s=n(5112),l=n(68880),u=s("species"),c=RegExp.prototype;e.exports=function(e,t,n,f){var d=s(e),p=!a((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),h=p&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[d]=/./[d]),n.exec=function(){return t=!0,null},n[d](""),!t}));if(!p||!h||n){var g=r(/./[d]),v=t(d,""[e],(function(e,t,n,o,a){var s=r(e),l=t.exec;return l===i||l===c.exec?p&&!a?{done:!0,value:g(t,n,o)}:{done:!0,value:s(n,t,o)}:{done:!1}}));o(String.prototype,e,v[0]),o(c,d,v[1])}f&&l(c[d],"sham",!0)}},76677:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},22104:function(e,t,n){"use strict";var r=n(34374),o=Function.prototype,i=o.apply,a=o.call;e.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},49974:function(e,t,n){"use strict";var r=n(21470),o=n(19662),i=n(34374),a=r(r.bind);e.exports=function(e,t){return o(e),void 0===t?e:i?a(e,t):function(){return e.apply(t,arguments)}}},34374:function(e,t,n){"use strict";var r=n(47293);e.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},27065:function(e,t,n){"use strict";var r=n(1702),o=n(19662),i=n(70111),a=n(92597),s=n(50206),l=n(34374),u=Function,c=r([].concat),f=r([].join),d={};e.exports=l?u.bind:function(e){var t=o(this),n=t.prototype,r=s(arguments,1),l=function(){var n=c(r,s(arguments));return this instanceof l?function(e,t,n){if(!a(d,t)){for(var r=[],o=0;o<t;o++)r[o]="a["+o+"]";d[t]=u("C,a","return new C("+f(r,",")+")")}return d[t](e,n)}(t,n.length,n):t.apply(e,n)};return i(n)&&(l.prototype=n),l}},46916:function(e,t,n){"use strict";var r=n(34374),o=Function.prototype.call;e.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},76530:function(e,t,n){"use strict";var r=n(19781),o=n(92597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),l=s&&"something"===function(){}.name,u=s&&(!r||r&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:l,CONFIGURABLE:u}},75668:function(e,t,n){"use strict";var r=n(1702),o=n(19662);e.exports=function(e,t,n){try{return r(o(Object.getOwnPropertyDescriptor(e,t)[n]))}catch(i){}}},21470:function(e,t,n){"use strict";var r=n(84326),o=n(1702);e.exports=function(e){if("Function"===r(e))return o(e)}},1702:function(e,t,n){"use strict";var r=n(34374),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);e.exports=r?a:function(e){return function(){return i.apply(e,arguments)}}},35005:function(e,t,n){"use strict";var r=n(17854),o=n(60614);e.exports=function(e,t){return arguments.length<2?(n=r[e],o(n)?n:void 0):r[e]&&r[e][t];var n}},24942:function(e){"use strict";e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},71246:function(e,t,n){"use strict";var r=n(70648),o=n(58173),i=n(68554),a=n(97497),s=n(5112)("iterator");e.exports=function(e){if(!i(e))return o(e,s)||o(e,"@@iterator")||a[r(e)]}},18554:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(66330),s=n(71246),l=TypeError;e.exports=function(e,t){var n=arguments.length<2?s(e):t;if(o(n))return i(r(n,e));throw l(a(e)+" is not iterable")}},88044:function(e,t,n){"use strict";var r=n(1702),o=n(43157),i=n(60614),a=n(84326),s=n(41340),l=r([].push);e.exports=function(e){if(i(e))return e;if(o(e)){for(var t=e.length,n=[],r=0;r<t;r++){var u=e[r];"string"==typeof u?l(n,u):"number"!=typeof u&&"Number"!=a(u)&&"String"!=a(u)||l(n,s(u))}var c=n.length,f=!0;return function(e,t){if(f)return f=!1,t;if(o(this))return t;for(var r=0;r<c;r++)if(n[r]===e)return t}}}},58173:function(e,t,n){"use strict";var r=n(19662),o=n(68554);e.exports=function(e,t){var n=e[t];return o(n)?void 0:r(n)}},738:function(e,t,n){"use strict";var r=n(19662),o=n(19670),i=n(46916),a=n(19303),s=n(24942),l="Invalid size",u=RangeError,c=TypeError,f=Math.max,d=function(e,t,n,r){this.set=e,this.size=t,this.has=n,this.keys=r};d.prototype={getIterator:function(){return s(o(i(this.keys,this.set)))},includes:function(e){return i(this.has,this.set,e)}},e.exports=function(e){o(e);var t=+e.size;if(t!=t)throw c(l);var n=a(t);if(n<0)throw u(l);return new d(e,f(n,0),r(e.has),r(e.keys))}},10647:function(e,t,n){"use strict";var r=n(1702),o=n(47908),i=Math.floor,a=r("".charAt),s=r("".replace),l=r("".slice),u=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,c=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,n,r,f,d){var p=n+e.length,h=r.length,g=c;return void 0!==f&&(f=o(f),g=u),s(d,g,(function(o,s){var u;switch(a(s,0)){case"$":return"$";case"&":return e;case"`":return l(t,0,n);case"'":return l(t,p);case"<":u=f[l(s,1,-1)];break;default:var c=+s;if(0===c)return o;if(c>h){var d=i(c/10);return 0===d?o:d<=h?void 0===r[d-1]?a(s,1):r[d-1]+a(s,1):o}u=r[c-1]}return void 0===u?"":u}))}},17854:function(e,t,n){"use strict";var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||this||Function("return this")()},92597:function(e,t,n){"use strict";var r=n(1702),o=n(47908),i=r({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},3501:function(e){"use strict";e.exports={}},842:function(e){"use strict";e.exports=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(n){}}},60490:function(e,t,n){"use strict";var r=n(35005);e.exports=r("document","documentElement")},64664:function(e,t,n){"use strict";var r=n(19781),o=n(47293),i=n(80317);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},68361:function(e,t,n){"use strict";var r=n(1702),o=n(47293),i=n(84326),a=Object,s=r("".split);e.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?s(e,""):a(e)}:a},79587:function(e,t,n){"use strict";var r=n(60614),o=n(70111),i=n(27674);e.exports=function(e,t,n){var a,s;return i&&r(a=t.constructor)&&a!==n&&o(s=a.prototype)&&s!==n.prototype&&i(e,s),e}},42788:function(e,t,n){"use strict";var r=n(1702),o=n(60614),i=n(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},62423:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(3501),a=n(70111),s=n(92597),l=n(3070).f,u=n(8006),c=n(1156),f=n(52050),d=n(69711),p=n(76677),h=!1,g=d("meta"),v=0,m=function(e){l(e,g,{value:{objectID:"O"+v++,weakData:{}}})},y=e.exports={enable:function(){y.enable=function(){},h=!0;var e=u.f,t=o([].splice),n={};n[g]=1,e(n).length&&(u.f=function(n){for(var r=e(n),o=0,i=r.length;o<i;o++)if(r[o]===g){t(r,o,1);break}return r},r({target:"Object",stat:!0,forced:!0},{getOwnPropertyNames:c.f}))},fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,g)){if(!f(e))return"F";if(!t)return"E";m(e)}return e[g].objectID},getWeakData:function(e,t){if(!s(e,g)){if(!f(e))return!0;if(!t)return!1;m(e)}return e[g].weakData},onFreeze:function(e){return p&&h&&f(e)&&!s(e,g)&&m(e),e}};i[g]=!0},29909:function(e,t,n){"use strict";var r,o,i,a=n(94811),s=n(17854),l=n(70111),u=n(68880),c=n(92597),f=n(5465),d=n(6200),p=n(3501),h="Object already initialized",g=s.TypeError,v=s.WeakMap;if(a||f.state){var m=f.state||(f.state=new v);m.get=m.get,m.has=m.has,m.set=m.set,r=function(e,t){if(m.has(e))throw g(h);return t.facade=e,m.set(e,t),t},o=function(e){return m.get(e)||{}},i=function(e){return m.has(e)}}else{var y=d("state");p[y]=!0,r=function(e,t){if(c(e,y))throw g(h);return t.facade=e,u(e,y,t),t},o=function(e){return c(e,y)?e[y]:{}},i=function(e){return c(e,y)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=o(t)).type!==e)throw g("Incompatible receiver, "+e+" required");return n}}}},97659:function(e,t,n){"use strict";var r=n(5112),o=n(97497),i=r("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},43157:function(e,t,n){"use strict";var r=n(84326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},60614:function(e,t,n){"use strict";var r=n(4154),o=r.all;e.exports=r.IS_HTMLDDA?function(e){return"function"==typeof e||e===o}:function(e){return"function"==typeof e}},4411:function(e,t,n){"use strict";var r=n(1702),o=n(47293),i=n(60614),a=n(70648),s=n(35005),l=n(42788),u=function(){},c=[],f=s("Reflect","construct"),d=/^\s*(?:class|function)\b/,p=r(d.exec),h=!d.exec(u),g=function(e){if(!i(e))return!1;try{return f(u,c,e),!0}catch(t){return!1}},v=function(e){if(!i(e))return!1;switch(a(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return h||!!p(d,l(e))}catch(t){return!0}};v.sham=!0,e.exports=!f||o((function(){var e;return g(g.call)||!g(Object)||!g((function(){e=!0}))||e}))?v:g},54705:function(e,t,n){"use strict";var r=n(47293),o=n(60614),i=/#|\.prototype\./,a=function(e,t){var n=l[s(e)];return n==c||n!=u&&(o(t)?r(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},l=a.data={},u=a.NATIVE="N",c=a.POLYFILL="P";e.exports=a},25615:function(e,t,n){"use strict";var r=n(70648),o=n(92597),i=n(68554),a=n(5112),s=n(97497),l=a("iterator"),u=Object;e.exports=function(e){if(i(e))return!1;var t=u(e);return void 0!==t[l]||"@@iterator"in t||o(s,r(t))}},68554:function(e){"use strict";e.exports=function(e){return null===e||void 0===e}},70111:function(e,t,n){"use strict";var r=n(60614),o=n(4154),i=o.all;e.exports=o.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:r(e)||e===i}:function(e){return"object"==typeof e?null!==e:r(e)}},31913:function(e){"use strict";e.exports=!1},47850:function(e,t,n){"use strict";var r=n(70111),o=n(84326),i=n(5112)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},52190:function(e,t,n){"use strict";var r=n(35005),o=n(60614),i=n(47976),a=n(43307),s=Object;e.exports=a?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return o(t)&&i(t.prototype,s(e))}},6333:function(e,t,n){"use strict";var r=n(46916);e.exports=function(e,t,n){for(var o,i,a=n?e:e.iterator,s=e.next;!(o=r(s,a)).done;)if(void 0!==(i=t(o.value)))return i}},20408:function(e,t,n){"use strict";var r=n(49974),o=n(46916),i=n(19670),a=n(66330),s=n(97659),l=n(26244),u=n(47976),c=n(18554),f=n(71246),d=n(99212),p=TypeError,h=function(e,t){this.stopped=e,this.result=t},g=h.prototype;e.exports=function(e,t,n){var v,m,y,b,w,_,x,S=n&&n.that,O=!(!n||!n.AS_ENTRIES),C=!(!n||!n.IS_RECORD),E=!(!n||!n.IS_ITERATOR),A=!(!n||!n.INTERRUPTED),k=r(t,S),M=function(e){return v&&d(v,"normal",e),new h(!0,e)},P=function(e){return O?(i(e),A?k(e[0],e[1],M):k(e[0],e[1])):A?k(e,M):k(e)};if(C)v=e.iterator;else if(E)v=e;else{if(!(m=f(e)))throw p(a(e)+" is not iterable");if(s(m)){for(y=0,b=l(e);b>y;y++)if((w=P(e[y]))&&u(g,w))return w;return new h(!1)}v=c(e,m)}for(_=C?e.next:v.next;!(x=o(_,v)).done;){try{w=P(x.value)}catch(R){d(v,"throw",R)}if("object"==typeof w&&w&&u(g,w))return w}return new h(!1)}},99212:function(e,t,n){"use strict";var r=n(46916),o=n(19670),i=n(58173);e.exports=function(e,t,n){var a,s;o(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(l){s=!0,a=l}if("throw"===t)throw n;if(s)throw a;return o(a),n}},63061:function(e,t,n){"use strict";var r=n(13383).IteratorPrototype,o=n(70030),i=n(79114),a=n(58003),s=n(97497),l=function(){return this};e.exports=function(e,t,n,u){var c=t+" Iterator";return e.prototype=o(r,{next:i(+!u,n)}),a(e,c,!1,!0),s[c]=l,e}},54956:function(e,t,n){"use strict";var r=n(46916),o=n(70030),i=n(68880),a=n(89190),s=n(5112),l=n(29909),u=n(58173),c=n(13383).IteratorPrototype,f=n(76178),d=n(99212),p=s("toStringTag"),h="IteratorHelper",g="WrapForValidIterator",v=l.set,m=function(e){var t=l.getterFor(e?g:h);return a(o(c),{next:function(){var n=t(this);if(e)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return f(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=t(this),o=n.iterator;if(n.done=!0,e){var i=u(o,"return");return i?r(i,o):f(void 0,!0)}if(n.inner)try{d(n.inner.iterator,"normal")}catch(a){return d(o,"throw",a)}return d(o,"normal"),f(void 0,!0)}})},y=m(!0),b=m(!1);i(b,p,"Iterator Helper"),e.exports=function(e,t){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=t?g:h,r.nextHandler=e,r.counter=0,r.done=!1,v(this,r)};return n.prototype=t?y:b,n}},51656:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(31913),a=n(76530),s=n(60614),l=n(63061),u=n(79518),c=n(27674),f=n(58003),d=n(68880),p=n(98052),h=n(5112),g=n(97497),v=n(13383),m=a.PROPER,y=a.CONFIGURABLE,b=v.IteratorPrototype,w=v.BUGGY_SAFARI_ITERATORS,_=h("iterator"),x="keys",S="values",O="entries",C=function(){return this};e.exports=function(e,t,n,a,h,v,E){l(n,t,a);var A,k,M,P=function(e){if(e===h&&j)return j;if(!w&&e in I)return I[e];switch(e){case x:case S:case O:return function(){return new n(this,e)}}return function(){return new n(this)}},R=t+" Iterator",T=!1,I=e.prototype,B=I[_]||I["@@iterator"]||h&&I[h],j=!w&&B||P(h),D="Array"==t&&I.entries||B;if(D&&(A=u(D.call(new e)))!==Object.prototype&&A.next&&(i||u(A)===b||(c?c(A,b):s(A[_])||p(A,_,C)),f(A,R,!0,!0),i&&(g[R]=C)),m&&h==S&&B&&B.name!==S&&(!i&&y?d(I,"name",S):(T=!0,j=function(){return o(B,this)})),h)if(k={values:P(S),keys:v?j:P(x),entries:P(O)},E)for(M in k)(w||T||!(M in I))&&p(I,M,k[M]);else r({target:t,proto:!0,forced:w||T},k);return i&&!E||I[_]===j||p(I,_,j,{name:h}),g[t]=j,k}},20487:function(e,t,n){"use strict";var r=n(46916),o=n(19662),i=n(19670),a=n(24942),s=n(54956),l=n(53411),u=s((function(){var e=this.iterator,t=i(r(this.next,e));if(!(this.done=!!t.done))return l(e,this.mapper,[t.value,this.counter++],!0)}));e.exports=function(e){return i(this),o(e),new u(a(this),{mapper:e})}},13383:function(e,t,n){"use strict";var r,o,i,a=n(47293),s=n(60614),l=n(70111),u=n(70030),c=n(79518),f=n(98052),d=n(5112),p=n(31913),h=d("iterator"),g=!1;[].keys&&("next"in(i=[].keys())?(o=c(c(i)))!==Object.prototype&&(r=o):g=!0),!l(r)||a((function(){var e={};return r[h].call(e)!==e}))?r={}:p&&(r=u(r)),s(r[h])||f(r,h,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:g}},97497:function(e){"use strict";e.exports={}},26244:function(e,t,n){"use strict";var r=n(17466);e.exports=function(e){return r(e.length)}},56339:function(e,t,n){"use strict";var r=n(1702),o=n(47293),i=n(60614),a=n(92597),s=n(19781),l=n(76530).CONFIGURABLE,u=n(42788),c=n(29909),f=c.enforce,d=c.get,p=String,h=Object.defineProperty,g=r("".slice),v=r("".replace),m=r([].join),y=s&&!o((function(){return 8!==h((function(){}),"length",{value:8}).length})),b=String(String).split("String"),w=e.exports=function(e,t,n){"Symbol("===g(p(t),0,7)&&(t="["+v(p(t),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!a(e,"name")||l&&e.name!==t)&&(s?h(e,"name",{value:t,configurable:!0}):e.name=t),y&&n&&a(n,"arity")&&e.length!==n.arity&&h(e,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&h(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(o){}var r=f(e);return a(r,"source")||(r.source=m(b,"string"==typeof t?t:"")),e};Function.prototype.toString=w((function(){return i(this)&&d(this).source||u(this)}),"toString")},75706:function(e,t,n){"use strict";var r=n(1702),o=Map.prototype;e.exports={Map:Map,set:r(o.set),get:r(o.get),has:r(o.has),remove:r(o.delete),proto:o}},14995:function(e,t,n){"use strict";var r=n(1702),o=n(6333),i=n(75706),a=i.Map,s=i.proto,l=r(s.forEach),u=r(s.entries),c=u(new a).next;e.exports=function(e,t,n){return n?o({iterator:u(e),next:c},(function(e){return t(e[1],e[0])})):l(e,t)}},74758:function(e){"use strict";var t=Math.ceil,n=Math.floor;e.exports=Math.trunc||function(e){var r=+e;return(r>0?n:t)(r)}},95948:function(e,t,n){"use strict";var r,o,i,a,s,l=n(17854),u=n(49974),c=n(31236).f,f=n(20261).set,d=n(18572),p=n(6833),h=n(71528),g=n(71036),v=n(35268),m=l.MutationObserver||l.WebKitMutationObserver,y=l.document,b=l.process,w=l.Promise,_=c(l,"queueMicrotask"),x=_&&_.value;if(!x){var S=new d,O=function(){var e,t;for(v&&(e=b.domain)&&e.exit();t=S.get();)try{t()}catch(n){throw S.head&&r(),n}e&&e.enter()};p||v||g||!m||!y?!h&&w&&w.resolve?((a=w.resolve(void 0)).constructor=w,s=u(a.then,a),r=function(){s(O)}):v?r=function(){b.nextTick(O)}:(f=u(f,l),r=function(){f(O)}):(o=!0,i=y.createTextNode(""),new m(O).observe(i,{characterData:!0}),r=function(){i.data=o=!o}),x=function(e){S.head||r(),S.add(e)}}e.exports=x},78523:function(e,t,n){"use strict";var r=n(19662),o=TypeError,i=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw o("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new i(e)}},3929:function(e,t,n){"use strict";var r=n(47850),o=TypeError;e.exports=function(e){if(r(e))throw o("The method doesn't accept regular expressions");return e}},83009:function(e,t,n){"use strict";var r=n(17854),o=n(47293),i=n(1702),a=n(41340),s=n(53111).trim,l=n(81361),u=r.parseInt,c=r.Symbol,f=c&&c.iterator,d=/^[+-]?0x/i,p=i(d.exec),h=8!==u(l+"08")||22!==u(l+"0x16")||f&&!o((function(){u(Object(f))}));e.exports=h?function(e,t){var n=s(a(e));return u(n,t>>>0||(p(d,n)?16:10))}:u},21574:function(e,t,n){"use strict";var r=n(19781),o=n(1702),i=n(46916),a=n(47293),s=n(81956),l=n(25181),u=n(55296),c=n(47908),f=n(68361),d=Object.assign,p=Object.defineProperty,h=o([].concat);e.exports=!d||a((function(){if(r&&1!==d({b:1},d(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach((function(e){t[e]=e})),7!=d({},e)[n]||s(d({},t)).join("")!=o}))?function(e,t){for(var n=c(e),o=arguments.length,a=1,d=l.f,p=u.f;o>a;)for(var g,v=f(arguments[a++]),m=d?h(s(v),d(v)):s(v),y=m.length,b=0;y>b;)g=m[b++],r&&!i(p,v,g)||(n[g]=v[g]);return n}:d},70030:function(e,t,n){"use strict";var r,o=n(19670),i=n(36048),a=n(80748),s=n(3501),l=n(60490),u=n(80317),c=n(6200),f="prototype",d="script",p=c("IE_PROTO"),h=function(){},g=function(e){return"<"+d+">"+e+"</"+d+">"},v=function(e){e.write(g("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}m="undefined"!=typeof document?document.domain&&r?v(r):function(){var e,t=u("iframe"),n="java"+d+":";return t.style.display="none",l.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(g("document.F=Object")),e.close(),e.F}():v(r);for(var e=a.length;e--;)delete m[f][a[e]];return m()};s[p]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(h[f]=o(e),n=new h,h[f]=null,n[p]=e):n=m(),void 0===t?n:i.f(n,t)}},36048:function(e,t,n){"use strict";var r=n(19781),o=n(3353),i=n(3070),a=n(19670),s=n(45656),l=n(81956);t.f=r&&!o?Object.defineProperties:function(e,t){a(e);for(var n,r=s(t),o=l(t),u=o.length,c=0;u>c;)i.f(e,n=o[c++],r[n]);return e}},3070:function(e,t,n){"use strict";var r=n(19781),o=n(64664),i=n(3353),a=n(19670),s=n(34948),l=TypeError,u=Object.defineProperty,c=Object.getOwnPropertyDescriptor,f="enumerable",d="configurable",p="writable";t.f=r?i?function(e,t,n){if(a(e),t=s(t),a(n),"function"===typeof e&&"prototype"===t&&"value"in n&&p in n&&!n[p]){var r=c(e,t);r&&r[p]&&(e[t]=n.value,n={configurable:d in n?n[d]:r[d],enumerable:f in n?n[f]:r[f],writable:!1})}return u(e,t,n)}:u:function(e,t,n){if(a(e),t=s(t),a(n),o)try{return u(e,t,n)}catch(r){}if("get"in n||"set"in n)throw l("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},31236:function(e,t,n){"use strict";var r=n(19781),o=n(46916),i=n(55296),a=n(79114),s=n(45656),l=n(34948),u=n(92597),c=n(64664),f=Object.getOwnPropertyDescriptor;t.f=r?f:function(e,t){if(e=s(e),t=l(t),c)try{return f(e,t)}catch(n){}if(u(e,t))return a(!o(i.f,e,t),e[t])}},1156:function(e,t,n){"use strict";var r=n(84326),o=n(45656),i=n(8006).f,a=n(41589),s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return s&&"Window"==r(e)?function(e){try{return i(e)}catch(t){return a(s)}}(e):i(o(e))}},8006:function(e,t,n){"use strict";var r=n(16324),o=n(80748).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},25181:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},79518:function(e,t,n){"use strict";var r=n(92597),o=n(60614),i=n(47908),a=n(6200),s=n(49920),l=a("IE_PROTO"),u=Object,c=u.prototype;e.exports=s?u.getPrototypeOf:function(e){var t=i(e);if(r(t,l))return t[l];var n=t.constructor;return o(n)&&t instanceof n?n.prototype:t instanceof u?c:null}},52050:function(e,t,n){"use strict";var r=n(47293),o=n(70111),i=n(84326),a=n(7556),s=Object.isExtensible,l=r((function(){s(1)}));e.exports=l||a?function(e){return!!o(e)&&((!a||"ArrayBuffer"!=i(e))&&(!s||s(e)))}:s},47976:function(e,t,n){"use strict";var r=n(1702);e.exports=r({}.isPrototypeOf)},16324:function(e,t,n){"use strict";var r=n(1702),o=n(92597),i=n(45656),a=n(41318).indexOf,s=n(3501),l=r([].push);e.exports=function(e,t){var n,r=i(e),u=0,c=[];for(n in r)!o(s,n)&&o(r,n)&&l(c,n);for(;t.length>u;)o(r,n=t[u++])&&(~a(c,n)||l(c,n));return c}},81956:function(e,t,n){"use strict";var r=n(16324),o=n(80748);e.exports=Object.keys||function(e){return r(e,o)}},55296:function(e,t){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);t.f=o?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},27674:function(e,t,n){"use strict";var r=n(75668),o=n(19670),i=n(96077);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=r(Object.prototype,"__proto__","set"))(n,[]),t=n instanceof Array}catch(a){}return function(n,r){return o(n),i(r),t?e(n,r):n.__proto__=r,n}}():void 0)},44699:function(e,t,n){"use strict";var r=n(19781),o=n(47293),i=n(1702),a=n(79518),s=n(81956),l=n(45656),u=i(n(55296).f),c=i([].push),f=r&&o((function(){var e=Object.create(null);return e[2]=2,!u(e,2)})),d=function(e){return function(t){for(var n,o=l(t),i=s(o),d=f&&null===a(o),p=i.length,h=0,g=[];p>h;)n=i[h++],r&&!(d?n in o:u(o,n))||c(g,e?[n,o[n]]:o[n]);return g}};e.exports={entries:d(!0),values:d(!1)}},90288:function(e,t,n){"use strict";var r=n(51694),o=n(70648);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},92140:function(e,t,n){"use strict";var r=n(46916),o=n(60614),i=n(70111),a=TypeError;e.exports=function(e,t){var n,s;if("string"===t&&o(n=e.toString)&&!i(s=r(n,e)))return s;if(o(n=e.valueOf)&&!i(s=r(n,e)))return s;if("string"!==t&&o(n=e.toString)&&!i(s=r(n,e)))return s;throw a("Can't convert object to primitive value")}},53887:function(e,t,n){"use strict";var r=n(35005),o=n(1702),i=n(8006),a=n(25181),s=n(19670),l=o([].concat);e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(s(e)),n=a.f;return n?l(t,n(e)):t}},40857:function(e,t,n){"use strict";var r=n(17854);e.exports=r},12534:function(e){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},63702:function(e,t,n){"use strict";var r=n(17854),o=n(2492),i=n(60614),a=n(54705),s=n(42788),l=n(5112),u=n(7871),c=n(83823),f=n(31913),d=n(7392),p=o&&o.prototype,h=l("species"),g=!1,v=i(r.PromiseRejectionEvent),m=a("Promise",(function(){var e=s(o),t=e!==String(o);if(!t&&66===d)return!0;if(f&&(!p.catch||!p.finally))return!0;if(!d||d<51||!/native code/.test(e)){var n=new o((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((n.constructor={})[h]=r,!(g=n.then((function(){}))instanceof r))return!0}return!t&&(u||c)&&!v}));e.exports={CONSTRUCTOR:m,REJECTION_EVENT:v,SUBCLASSING:g}},2492:function(e,t,n){"use strict";var r=n(17854);e.exports=r.Promise},69478:function(e,t,n){"use strict";var r=n(19670),o=n(70111),i=n(78523);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},80612:function(e,t,n){"use strict";var r=n(2492),o=n(17072),i=n(63702).CONSTRUCTOR;e.exports=i||!o((function(e){r.all(e).then(void 0,(function(){}))}))},2626:function(e,t,n){"use strict";var r=n(3070).f;e.exports=function(e,t,n){n in e||r(e,n,{configurable:!0,get:function(){return t[n]},set:function(e){t[n]=e}})}},18572:function(e){"use strict";var t=function(){this.head=null,this.tail=null};t.prototype={add:function(e){var t={item:e,next:null},n=this.tail;n?n.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}},e.exports=t},97651:function(e,t,n){"use strict";var r=n(46916),o=n(19670),i=n(60614),a=n(84326),s=n(22261),l=TypeError;e.exports=function(e,t){var n=e.exec;if(i(n)){var u=r(n,e,t);return null!==u&&o(u),u}if("RegExp"===a(e))return r(s,e,t);throw l("RegExp#exec called on incompatible receiver")}},22261:function(e,t,n){"use strict";var r=n(46916),o=n(1702),i=n(41340),a=n(67066),s=n(52999),l=n(72309),u=n(70030),c=n(29909).get,f=n(9441),d=n(38173),p=l("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,g=h,v=o("".charAt),m=o("".indexOf),y=o("".replace),b=o("".slice),w=function(){var e=/a/,t=/b*/g;return r(h,e,"a"),r(h,t,"a"),0!==e.lastIndex||0!==t.lastIndex}(),_=s.BROKEN_CARET,x=void 0!==/()??/.exec("")[1];(w||x||_||f||d)&&(g=function(e){var t,n,o,s,l,f,d,S=this,O=c(S),C=i(e),E=O.raw;if(E)return E.lastIndex=S.lastIndex,t=r(g,E,C),S.lastIndex=E.lastIndex,t;var A=O.groups,k=_&&S.sticky,M=r(a,S),P=S.source,R=0,T=C;if(k&&(M=y(M,"y",""),-1===m(M,"g")&&(M+="g"),T=b(C,S.lastIndex),S.lastIndex>0&&(!S.multiline||S.multiline&&"\n"!==v(C,S.lastIndex-1))&&(P="(?: "+P+")",T=" "+T,R++),n=new RegExp("^(?:"+P+")",M)),x&&(n=new RegExp("^"+P+"$(?!\\s)",M)),w&&(o=S.lastIndex),s=r(h,k?n:S,T),k?s?(s.input=b(s.input,R),s[0]=b(s[0],R),s.index=S.lastIndex,S.lastIndex+=s[0].length):S.lastIndex=0:w&&s&&(S.lastIndex=S.global?s.index+s[0].length:o),x&&s&&s.length>1&&r(p,s[0],n,(function(){for(l=1;l<arguments.length-2;l++)void 0===arguments[l]&&(s[l]=void 0)})),s&&A)for(s.groups=f=u(null),l=0;l<A.length;l++)f[(d=A[l])[0]]=s[d[1]];return s}),e.exports=g},67066:function(e,t,n){"use strict";var r=n(19670);e.exports=function(){var e=r(this),t="";return e.hasIndices&&(t+="d"),e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.unicodeSets&&(t+="v"),e.sticky&&(t+="y"),t}},34706:function(e,t,n){"use strict";var r=n(46916),o=n(92597),i=n(47976),a=n(67066),s=RegExp.prototype;e.exports=function(e){var t=e.flags;return void 0!==t||"flags"in s||o(e,"flags")||!i(s,e)?t:r(a,e)}},52999:function(e,t,n){"use strict";var r=n(47293),o=n(17854).RegExp,i=r((function(){var e=o("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),a=i||r((function(){return!o("a","y").sticky})),s=i||r((function(){var e=o("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));e.exports={BROKEN_CARET:s,MISSED_STICKY:a,UNSUPPORTED_Y:i}},9441:function(e,t,n){"use strict";var r=n(47293),o=n(17854).RegExp;e.exports=r((function(){var e=o(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))},38173:function(e,t,n){"use strict";var r=n(47293),o=n(17854).RegExp;e.exports=r((function(){var e=o("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")}))},84488:function(e,t,n){"use strict";var r=n(68554),o=TypeError;e.exports=function(e){if(r(e))throw o("Can't call method on "+e);return e}},46465:function(e){"use strict";e.exports=function(e,t){return e===t||e!=e&&t!=t}},81150:function(e){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},26283:function(e,t,n){"use strict";var r=n(79405),o=n(87758),i=r.Set,a=r.add;e.exports=function(e){var t=new i;return o(e,(function(e){a(t,e)})),t}},37075:function(e,t,n){"use strict";var r=n(88999),o=n(79405),i=n(26283),a=n(60366),s=n(738),l=n(87758),u=n(6333),c=o.has,f=o.remove;e.exports=function(e){var t=r(this),n=s(e),o=i(t);return a(t)<=n.size?l(t,(function(e){n.includes(e)&&f(o,e)})):u(n.getIterator(),(function(e){c(t,e)&&f(o,e)})),o}},79405:function(e,t,n){"use strict";var r=n(1702),o=Set.prototype;e.exports={Set:Set,add:r(o.add),has:r(o.has),remove:r(o.delete),proto:o}},81920:function(e,t,n){"use strict";var r=n(88999),o=n(79405),i=n(60366),a=n(738),s=n(87758),l=n(6333),u=o.Set,c=o.add,f=o.has;e.exports=function(e){var t=r(this),n=a(e),o=new u;return i(t)>n.size?l(n.getIterator(),(function(e){f(t,e)&&c(o,e)})):s(t,(function(e){n.includes(e)&&c(o,e)})),o}},78239:function(e,t,n){"use strict";var r=n(88999),o=n(79405).has,i=n(60366),a=n(738),s=n(87758),l=n(6333),u=n(99212);e.exports=function(e){var t=r(this),n=a(e);if(i(t)<=n.size)return!1!==s(t,(function(e){if(n.includes(e))return!1}),!0);var c=n.getIterator();return!1!==l(c,(function(e){if(o(t,e))return u(c,"normal",!1)}))}},49180:function(e,t,n){"use strict";var r=n(88999),o=n(60366),i=n(87758),a=n(738);e.exports=function(e){var t=r(this),n=a(e);return!(o(t)>n.size)&&!1!==i(t,(function(e){if(!n.includes(e))return!1}),!0)}},10107:function(e,t,n){"use strict";var r=n(88999),o=n(79405).has,i=n(60366),a=n(738),s=n(6333),l=n(99212);e.exports=function(e){var t=r(this),n=a(e);if(i(t)<n.size)return!1;var u=n.getIterator();return!1!==s(u,(function(e){if(!o(t,e))return l(u,"normal",!1)}))}},87758:function(e,t,n){"use strict";var r=n(1702),o=n(6333),i=n(79405),a=i.Set,s=i.proto,l=r(s.forEach),u=r(s.keys),c=u(new a).next;e.exports=function(e,t,n){return n?o({iterator:u(e),next:c},t):l(e,t)}},60366:function(e,t,n){"use strict";var r=n(75668),o=n(79405);e.exports=r(o.proto,"size","get")||function(e){return e.size}},96340:function(e,t,n){"use strict";var r=n(35005),o=n(47045),i=n(5112),a=n(19781),s=i("species");e.exports=function(e){var t=r(e);a&&t&&!t[s]&&o(t,s,{configurable:!0,get:function(){return this}})}},98506:function(e,t,n){"use strict";var r=n(88999),o=n(79405),i=n(26283),a=n(738),s=n(6333),l=o.add,u=o.has,c=o.remove;e.exports=function(e){var t=r(this),n=a(e).getIterator(),o=i(t);return s(n,(function(e){u(t,e)?c(o,e):l(o,e)})),o}},58003:function(e,t,n){"use strict";var r=n(3070).f,o=n(92597),i=n(5112)("toStringTag");e.exports=function(e,t,n){e&&!n&&(e=e.prototype),e&&!o(e,i)&&r(e,i,{configurable:!0,value:t})}},39391:function(e,t,n){"use strict";var r=n(88999),o=n(79405).add,i=n(26283),a=n(738),s=n(6333);e.exports=function(e){var t=r(this),n=a(e).getIterator(),l=i(t);return s(n,(function(e){o(l,e)})),l}},6200:function(e,t,n){"use strict";var r=n(72309),o=n(69711),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},5465:function(e,t,n){"use strict";var r=n(17854),o=n(13072),i="__core-js_shared__",a=r[i]||o(i,{});e.exports=a},72309:function(e,t,n){"use strict";var r=n(31913),o=n(5465);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.32.0",mode:r?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.0/LICENSE",source:"https://github.com/zloirock/core-js"})},36707:function(e,t,n){"use strict";var r=n(19670),o=n(39483),i=n(68554),a=n(5112)("species");e.exports=function(e,t){var n,s=r(e).constructor;return void 0===s||i(n=r(s)[a])?t:o(n)}},28710:function(e,t,n){"use strict";var r=n(1702),o=n(19303),i=n(41340),a=n(84488),s=r("".charAt),l=r("".charCodeAt),u=r("".slice),c=function(e){return function(t,n){var r,c,f=i(a(t)),d=o(n),p=f.length;return d<0||d>=p?e?"":void 0:(r=l(f,d))<55296||r>56319||d+1===p||(c=l(f,d+1))<56320||c>57343?e?s(f,d):r:e?u(f,d,d+2):c-56320+(r-55296<<10)+65536}};e.exports={codeAt:c(!1),charAt:c(!0)}},76091:function(e,t,n){"use strict";var r=n(76530).PROPER,o=n(47293),i=n(81361);e.exports=function(e){return o((function(){return!!i[e]()||"\u200b\x85\u180e"!=="\u200b\x85\u180e"[e]()||r&&i[e].name!==e}))}},53111:function(e,t,n){"use strict";var r=n(1702),o=n(84488),i=n(41340),a=n(81361),s=r("".replace),l=RegExp("^["+a+"]+"),u=RegExp("(^|[^"+a+"])["+a+"]+$"),c=function(e){return function(t){var n=i(o(t));return 1&e&&(n=s(n,l,"")),2&e&&(n=s(n,u,"$1")),n}};e.exports={start:c(1),end:c(2),trim:c(3)}},36293:function(e,t,n){"use strict";var r=n(7392),o=n(47293),i=n(17854).String;e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},56532:function(e,t,n){"use strict";var r=n(46916),o=n(35005),i=n(5112),a=n(98052);e.exports=function(){var e=o("Symbol"),t=e&&e.prototype,n=t&&t.valueOf,s=i("toPrimitive");t&&!t[s]&&a(t,s,(function(e){return r(n,this)}),{arity:1})}},2015:function(e,t,n){"use strict";var r=n(36293);e.exports=r&&!!Symbol.for&&!!Symbol.keyFor},20261:function(e,t,n){"use strict";var r,o,i,a,s=n(17854),l=n(22104),u=n(49974),c=n(60614),f=n(92597),d=n(47293),p=n(60490),h=n(50206),g=n(80317),v=n(48053),m=n(6833),y=n(35268),b=s.setImmediate,w=s.clearImmediate,_=s.process,x=s.Dispatch,S=s.Function,O=s.MessageChannel,C=s.String,E=0,A={},k="onreadystatechange";d((function(){r=s.location}));var M=function(e){if(f(A,e)){var t=A[e];delete A[e],t()}},P=function(e){return function(){M(e)}},R=function(e){M(e.data)},T=function(e){s.postMessage(C(e),r.protocol+"//"+r.host)};b&&w||(b=function(e){v(arguments.length,1);var t=c(e)?e:S(e),n=h(arguments,1);return A[++E]=function(){l(t,void 0,n)},o(E),E},w=function(e){delete A[e]},y?o=function(e){_.nextTick(P(e))}:x&&x.now?o=function(e){x.now(P(e))}:O&&!m?(a=(i=new O).port2,i.port1.onmessage=R,o=u(a.postMessage,a)):s.addEventListener&&c(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!d(T)?(o=T,s.addEventListener("message",R,!1)):o=k in g("script")?function(e){p.appendChild(g("script"))[k]=function(){p.removeChild(this),M(e)}}:function(e){setTimeout(P(e),0)}),e.exports={set:b,clear:w}},50863:function(e,t,n){"use strict";var r=n(1702);e.exports=r(1..valueOf)},51400:function(e,t,n){"use strict";var r=n(19303),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},45656:function(e,t,n){"use strict";var r=n(68361),o=n(84488);e.exports=function(e){return r(o(e))}},19303:function(e,t,n){"use strict";var r=n(74758);e.exports=function(e){var t=+e;return t!==t||0===t?0:r(t)}},17466:function(e,t,n){"use strict";var r=n(19303),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},47908:function(e,t,n){"use strict";var r=n(84488),o=Object;e.exports=function(e){return o(r(e))}},57593:function(e,t,n){"use strict";var r=n(46916),o=n(70111),i=n(52190),a=n(58173),s=n(92140),l=n(5112),u=TypeError,c=l("toPrimitive");e.exports=function(e,t){if(!o(e)||i(e))return e;var n,l=a(e,c);if(l){if(void 0===t&&(t="default"),n=r(l,e,t),!o(n)||i(n))return n;throw u("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},34948:function(e,t,n){"use strict";var r=n(57593),o=n(52190);e.exports=function(e){var t=r(e,"string");return o(t)?t:t+""}},45965:function(e,t,n){"use strict";var r=n(35005),o=n(60614),i=n(25615),a=n(70111),s=r("Set");e.exports=function(e){return function(e){return a(e)&&"number"==typeof e.size&&o(e.has)&&o(e.keys)}(e)?e:i(e)?new s(e):e}},51694:function(e,t,n){"use strict";var r={};r[n(5112)("toStringTag")]="z",e.exports="[object z]"===String(r)},41340:function(e,t,n){"use strict";var r=n(70648),o=String;e.exports=function(e){if("Symbol"===r(e))throw TypeError("Cannot convert a Symbol value to a string");return o(e)}},66330:function(e){"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(n){return"Object"}}},69711:function(e,t,n){"use strict";var r=n(1702),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},85143:function(e,t,n){"use strict";var r=n(47293),o=n(5112),i=n(19781),a=n(31913),s=o("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,n=new URLSearchParams("a=1&a=2&b=3"),r="";return e.pathname="c%20d",t.forEach((function(e,n){t.delete("b"),r+=n+e})),n.delete("a",2),n.delete("b",void 0),a&&(!e.toJSON||!n.has("a",1)||n.has("a",2)||!n.has("a",void 0)||n.has("b"))||!t.size&&(a||!i)||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://\u0442\u0435\u0441\u0442").host||"#%D0%B1"!==new URL("http://a#\u0431").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host}))},43307:function(e,t,n){"use strict";var r=n(36293);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(e,t,n){"use strict";var r=n(19781),o=n(47293);e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},48053:function(e){"use strict";var t=TypeError;e.exports=function(e,n){if(e<n)throw t("Not enough arguments");return e}},94811:function(e,t,n){"use strict";var r=n(17854),o=n(60614),i=r.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},26800:function(e,t,n){"use strict";var r=n(40857),o=n(92597),i=n(6061),a=n(3070).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},6061:function(e,t,n){"use strict";var r=n(5112);t.f=r},5112:function(e,t,n){"use strict";var r=n(17854),o=n(72309),i=n(92597),a=n(69711),s=n(36293),l=n(43307),u=r.Symbol,c=o("wks"),f=l?u.for||u:u&&u.withoutSetter||a;e.exports=function(e){return i(c,e)||(c[e]=s&&i(u,e)?u[e]:f("Symbol."+e)),c[e]}},81361:function(e){"use strict";e.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},92222:function(e,t,n){"use strict";var r=n(82109),o=n(47293),i=n(43157),a=n(70111),s=n(47908),l=n(26244),u=n(7207),c=n(86135),f=n(65417),d=n(81194),p=n(5112),h=n(7392),g=p("isConcatSpreadable"),v=h>=51||!o((function(){var e=[];return e[g]=!1,e.concat()[0]!==e})),m=function(e){if(!a(e))return!1;var t=e[g];return void 0!==t?!!t:i(e)};r({target:"Array",proto:!0,arity:1,forced:!v||!d("concat")},{concat:function(e){var t,n,r,o,i,a=s(this),d=f(a,0),p=0;for(t=-1,r=arguments.length;t<r;t++)if(m(i=-1===t?a:arguments[t]))for(o=l(i),u(p+o),n=0;n<o;n++,p++)n in i&&c(d,p,i[n]);else u(p+1),c(d,p++,i);return d.length=p,d}})},57327:function(e,t,n){"use strict";var r=n(82109),o=n(42092).filter;r({target:"Array",proto:!0,forced:!n(81194)("filter")},{filter:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},69826:function(e,t,n){"use strict";var r=n(82109),o=n(42092).find,i=n(51223),a="find",s=!0;a in[]&&Array(1)[a]((function(){s=!1})),r({target:"Array",proto:!0,forced:s},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i(a)},91038:function(e,t,n){"use strict";var r=n(82109),o=n(48457);r({target:"Array",stat:!0,forced:!n(17072)((function(e){Array.from(e)}))},{from:o})},26699:function(e,t,n){"use strict";var r=n(82109),o=n(41318).includes,i=n(47293),a=n(51223);r({target:"Array",proto:!0,forced:i((function(){return!Array(1).includes()}))},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),a("includes")},82772:function(e,t,n){"use strict";var r=n(82109),o=n(21470),i=n(41318).indexOf,a=n(9341),s=o([].indexOf),l=!!s&&1/s([1],1,-0)<0;r({target:"Array",proto:!0,forced:l||!a("indexOf")},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return l?s(this,e,t)||0:i(this,e,t)}})},66992:function(e,t,n){"use strict";var r=n(45656),o=n(51223),i=n(97497),a=n(29909),s=n(3070).f,l=n(51656),u=n(76178),c=n(31913),f=n(19781),d="Array Iterator",p=a.set,h=a.getterFor(d);e.exports=l(Array,"Array",(function(e,t){p(this,{type:d,target:r(e),index:0,kind:t})}),(function(){var e=h(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,u(void 0,!0)):u("keys"==n?r:"values"==n?t[r]:[r,t[r]],!1)}),"values");var g=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!c&&f&&"values"!==g.name)try{s(g,"name",{value:"values"})}catch(v){}},21249:function(e,t,n){"use strict";var r=n(82109),o=n(42092).map;r({target:"Array",proto:!0,forced:!n(81194)("map")},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},85827:function(e,t,n){"use strict";var r=n(82109),o=n(53671).left,i=n(9341),a=n(7392);r({target:"Array",proto:!0,forced:!n(35268)&&a>79&&a<83||!i("reduce")},{reduce:function(e){var t=arguments.length;return o(this,e,t,t>1?arguments[1]:void 0)}})},47042:function(e,t,n){"use strict";var r=n(82109),o=n(43157),i=n(4411),a=n(70111),s=n(51400),l=n(26244),u=n(45656),c=n(86135),f=n(5112),d=n(81194),p=n(50206),h=d("slice"),g=f("species"),v=Array,m=Math.max;r({target:"Array",proto:!0,forced:!h},{slice:function(e,t){var n,r,f,d=u(this),h=l(d),y=s(e,h),b=s(void 0===t?h:t,h);if(o(d)&&(n=d.constructor,(i(n)&&(n===v||o(n.prototype))||a(n)&&null===(n=n[g]))&&(n=void 0),n===v||void 0===n))return p(d,y,b);for(r=new(void 0===n?v:n)(m(b-y,0)),f=0;y<b;y++,f++)y in d&&c(r,f,d[y]);return r.length=f,r}})},2707:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(19662),a=n(47908),s=n(26244),l=n(85117),u=n(41340),c=n(47293),f=n(94362),d=n(9341),p=n(68886),h=n(30256),g=n(7392),v=n(98008),m=[],y=o(m.sort),b=o(m.push),w=c((function(){m.sort(void 0)})),_=c((function(){m.sort(null)})),x=d("sort"),S=!c((function(){if(g)return g<70;if(!(p&&p>3)){if(h)return!0;if(v)return v<603;var e,t,n,r,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)m.push({k:t+r,v:n})}for(m.sort((function(e,t){return t.v-e.v})),r=0;r<m.length;r++)t=m[r].k.charAt(0),o.charAt(o.length-1)!==t&&(o+=t);return"DGBEFHACIJK"!==o}}));r({target:"Array",proto:!0,forced:w||!_||!x||!S},{sort:function(e){void 0!==e&&i(e);var t=a(this);if(S)return void 0===e?y(t):y(t,e);var n,r,o=[],c=s(t);for(r=0;r<c;r++)r in t&&b(o,t[r]);for(f(o,function(e){return function(t,n){return void 0===n?-1:void 0===t?1:void 0!==e?+e(t,n)||0:u(t)>u(n)?1:-1}}(e)),n=s(o),r=0;r<n;)t[r]=o[r++];for(;r<c;)l(t,r++);return t}})},40561:function(e,t,n){"use strict";var r=n(82109),o=n(47908),i=n(51400),a=n(19303),s=n(26244),l=n(83658),u=n(7207),c=n(65417),f=n(86135),d=n(85117),p=n(81194)("splice"),h=Math.max,g=Math.min;r({target:"Array",proto:!0,forced:!p},{splice:function(e,t){var n,r,p,v,m,y,b=o(this),w=s(b),_=i(e,w),x=arguments.length;for(0===x?n=r=0:1===x?(n=0,r=w-_):(n=x-2,r=g(h(a(t),0),w-_)),u(w+n-r),p=c(b,r),v=0;v<r;v++)(m=_+v)in b&&f(p,v,b[m]);if(p.length=r,n<r){for(v=_;v<w-r;v++)y=v+n,(m=v+r)in b?b[y]=b[m]:d(b,y);for(v=w;v>w-r+n;v--)d(b,v-1)}else if(n>r)for(v=w-r;v>_;v--)y=v+n-1,(m=v+r-1)in b?b[y]=b[m]:d(b,y);for(v=0;v<n;v++)b[v+_]=arguments[v+2];return l(b,w-r+n),p}})},38862:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(22104),a=n(46916),s=n(1702),l=n(47293),u=n(60614),c=n(52190),f=n(50206),d=n(88044),p=n(36293),h=String,g=o("JSON","stringify"),v=s(/./.exec),m=s("".charAt),y=s("".charCodeAt),b=s("".replace),w=s(1..toString),_=/[\uD800-\uDFFF]/g,x=/^[\uD800-\uDBFF]$/,S=/^[\uDC00-\uDFFF]$/,O=!p||l((function(){var e=o("Symbol")();return"[null]"!=g([e])||"{}"!=g({a:e})||"{}"!=g(Object(e))})),C=l((function(){return'"\\udf06\\ud834"'!==g("\udf06\ud834")||'"\\udead"'!==g("\udead")})),E=function(e,t){var n=f(arguments),r=d(t);if(u(r)||void 0!==e&&!c(e))return n[1]=function(e,t){if(u(r)&&(t=a(r,this,h(e),t)),!c(t))return t},i(g,null,n)},A=function(e,t,n){var r=m(n,t-1),o=m(n,t+1);return v(x,e)&&!v(S,o)||v(S,e)&&!v(x,r)?"\\u"+w(y(e,0),16):e};g&&r({target:"JSON",stat:!0,arity:3,forced:O||C},{stringify:function(e,t,n){var r=f(arguments),o=i(O?E:g,null,r);return C&&"string"==typeof o?b(o,_,A):o}})},69098:function(e,t,n){"use strict";n(77710)("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(95631))},51532:function(e,t,n){"use strict";n(69098)},9653:function(e,t,n){"use strict";var r=n(82109),o=n(31913),i=n(19781),a=n(17854),s=n(40857),l=n(1702),u=n(54705),c=n(92597),f=n(79587),d=n(47976),p=n(52190),h=n(57593),g=n(47293),v=n(8006).f,m=n(31236).f,y=n(3070).f,b=n(50863),w=n(53111).trim,_="Number",x=a[_],S=s[_],O=x.prototype,C=a.TypeError,E=l("".slice),A=l("".charCodeAt),k=function(e){var t,n,r,o,i,a,s,l,u=h(e,"number");if(p(u))throw C("Cannot convert a Symbol value to a number");if("string"==typeof u&&u.length>2)if(u=w(u),43===(t=A(u,0))||45===t){if(88===(n=A(u,2))||120===n)return NaN}else if(48===t){switch(A(u,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(a=(i=E(u,2)).length,s=0;s<a;s++)if((l=A(i,s))<48||l>o)return NaN;return parseInt(i,r)}return+u},M=u(_,!x(" 0o1")||!x("0b1")||x("+0x1")),P=function(e){var t,n=arguments.length<1?0:x(function(e){var t=h(e,"number");return"bigint"==typeof t?t:k(t)}(e));return d(O,t=this)&&g((function(){b(t)}))?f(Object(n),this,P):n};P.prototype=O,M&&!o&&(O.constructor=P),r({global:!0,constructor:!0,wrap:!0,forced:M},{Number:P});var R=function(e,t){for(var n,r=i?v(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)c(t,n=r[o])&&!c(e,n)&&y(e,n,m(t,n))};o&&S&&R(s[_],S),(M||o)&&R(s[_],x)},19601:function(e,t,n){"use strict";var r=n(82109),o=n(21574);r({target:"Object",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},33321:function(e,t,n){"use strict";var r=n(82109),o=n(19781),i=n(36048).f;r({target:"Object",stat:!0,forced:Object.defineProperties!==i,sham:!o},{defineProperties:i})},69070:function(e,t,n){"use strict";var r=n(82109),o=n(19781),i=n(3070).f;r({target:"Object",stat:!0,forced:Object.defineProperty!==i,sham:!o},{defineProperty:i})},69720:function(e,t,n){"use strict";var r=n(82109),o=n(44699).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},38880:function(e,t,n){"use strict";var r=n(82109),o=n(47293),i=n(45656),a=n(31236).f,s=n(19781);r({target:"Object",stat:!0,forced:!s||o((function(){a(1)})),sham:!s},{getOwnPropertyDescriptor:function(e,t){return a(i(e),t)}})},49337:function(e,t,n){"use strict";var r=n(82109),o=n(19781),i=n(53887),a=n(45656),s=n(31236),l=n(86135);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(e){for(var t,n,r=a(e),o=s.f,u=i(r),c={},f=0;u.length>f;)void 0!==(n=o(r,t=u[f++]))&&l(c,t,n);return c}})},29660:function(e,t,n){"use strict";var r=n(82109),o=n(36293),i=n(47293),a=n(25181),s=n(47908);r({target:"Object",stat:!0,forced:!o||i((function(){a.f(1)}))},{getOwnPropertySymbols:function(e){var t=a.f;return t?t(s(e)):[]}})},47941:function(e,t,n){"use strict";var r=n(82109),o=n(47908),i=n(81956);r({target:"Object",stat:!0,forced:n(47293)((function(){i(1)}))},{keys:function(e){return i(o(e))}})},41539:function(e,t,n){"use strict";var r=n(51694),o=n(98052),i=n(90288);r||o(Object.prototype,"toString",i,{unsafe:!0})},26833:function(e,t,n){"use strict";var r=n(82109),o=n(44699).values;r({target:"Object",stat:!0},{values:function(e){return o(e)}})},91058:function(e,t,n){"use strict";var r=n(82109),o=n(83009);r({global:!0,forced:parseInt!=o},{parseInt:o})},70821:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(78523),s=n(12534),l=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{all:function(e){var t=this,n=a.f(t),r=n.resolve,u=n.reject,c=s((function(){var n=i(t.resolve),a=[],s=0,c=1;l(e,(function(e){var i=s++,l=!1;c++,o(n,t,e).then((function(e){l||(l=!0,a[i]=e,--c||r(a))}),u)})),--c||r(a)}));return c.error&&u(c.value),n.promise}})},94164:function(e,t,n){"use strict";var r=n(82109),o=n(31913),i=n(63702).CONSTRUCTOR,a=n(2492),s=n(35005),l=n(60614),u=n(98052),c=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(e){return this.then(void 0,e)}}),!o&&l(a)){var f=s("Promise").prototype.catch;c.catch!==f&&u(c,"catch",f,{unsafe:!0})}},43401:function(e,t,n){"use strict";var r,o,i,a=n(82109),s=n(31913),l=n(35268),u=n(17854),c=n(46916),f=n(98052),d=n(27674),p=n(58003),h=n(96340),g=n(19662),v=n(60614),m=n(70111),y=n(25787),b=n(36707),w=n(20261).set,_=n(95948),x=n(842),S=n(12534),O=n(18572),C=n(29909),E=n(2492),A=n(63702),k=n(78523),M="Promise",P=A.CONSTRUCTOR,R=A.REJECTION_EVENT,T=A.SUBCLASSING,I=C.getterFor(M),B=C.set,j=E&&E.prototype,D=E,L=j,Z=u.TypeError,N=u.document,F=u.process,H=k.f,V=H,z=!!(N&&N.createEvent&&u.dispatchEvent),U="unhandledrejection",G=function(e){var t;return!(!m(e)||!v(t=e.then))&&t},W=function(e,t){var n,r,o,i=t.value,a=1==t.state,s=a?e.ok:e.fail,l=e.resolve,u=e.reject,f=e.domain;try{s?(a||(2===t.rejection&&K(t),t.rejection=1),!0===s?n=i:(f&&f.enter(),n=s(i),f&&(f.exit(),o=!0)),n===e.promise?u(Z("Promise-chain cycle")):(r=G(n))?c(r,n,l,u):l(n)):u(i)}catch(d){f&&!o&&f.exit(),u(d)}},q=function(e,t){e.notified||(e.notified=!0,_((function(){for(var n,r=e.reactions;n=r.get();)W(n,e);e.notified=!1,t&&!e.rejection&&Y(e)})))},$=function(e,t,n){var r,o;z?((r=N.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),u.dispatchEvent(r)):r={promise:t,reason:n},!R&&(o=u["on"+e])?o(r):e===U&&x("Unhandled promise rejection",n)},Y=function(e){c(w,u,(function(){var t,n=e.facade,r=e.value;if(X(e)&&(t=S((function(){l?F.emit("unhandledRejection",r,n):$(U,n,r)})),e.rejection=l||X(e)?2:1,t.error))throw t.value}))},X=function(e){return 1!==e.rejection&&!e.parent},K=function(e){c(w,u,(function(){var t=e.facade;l?F.emit("rejectionHandled",t):$("rejectionhandled",t,e.value)}))},J=function(e,t,n){return function(r){e(t,r,n)}},Q=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,q(e,!0))},ee=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Z("Promise can't be resolved itself");var r=G(t);r?_((function(){var n={done:!1};try{c(r,t,J(ee,n,e),J(Q,n,e))}catch(o){Q(n,o,e)}})):(e.value=t,e.state=1,q(e,!1))}catch(o){Q({done:!1},o,e)}}};if(P&&(L=(D=function(e){y(this,L),g(e),c(r,this);var t=I(this);try{e(J(ee,t),J(Q,t))}catch(n){Q(t,n)}}).prototype,(r=function(e){B(this,{type:M,done:!1,notified:!1,parent:!1,reactions:new O,rejection:!1,state:0,value:void 0})}).prototype=f(L,"then",(function(e,t){var n=I(this),r=H(b(this,D));return n.parent=!0,r.ok=!v(e)||e,r.fail=v(t)&&t,r.domain=l?F.domain:void 0,0==n.state?n.reactions.add(r):_((function(){W(r,n)})),r.promise})),o=function(){var e=new r,t=I(e);this.promise=e,this.resolve=J(ee,t),this.reject=J(Q,t)},k.f=H=function(e){return e===D||undefined===e?new o(e):V(e)},!s&&v(E)&&j!==Object.prototype)){i=j.then,T||f(j,"then",(function(e,t){var n=this;return new D((function(e,t){c(i,n,e,t)})).then(e,t)}),{unsafe:!0});try{delete j.constructor}catch(te){}d&&d(j,L)}a({global:!0,constructor:!0,wrap:!0,forced:P},{Promise:D}),p(D,M,!1,!0),h(M)},17727:function(e,t,n){"use strict";var r=n(82109),o=n(31913),i=n(2492),a=n(47293),s=n(35005),l=n(60614),u=n(36707),c=n(69478),f=n(98052),d=i&&i.prototype;if(r({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){d.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=u(this,s("Promise")),n=l(e);return this.then(n?function(n){return c(t,e()).then((function(){return n}))}:e,n?function(n){return c(t,e()).then((function(){throw n}))}:e)}}),!o&&l(i)){var p=s("Promise").prototype.finally;d.finally!==p&&f(d,"finally",p,{unsafe:!0})}},88674:function(e,t,n){"use strict";n(43401),n(70821),n(94164),n(6027),n(60683),n(96294)},6027:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(78523),s=n(12534),l=n(20408);r({target:"Promise",stat:!0,forced:n(80612)},{race:function(e){var t=this,n=a.f(t),r=n.reject,u=s((function(){var a=i(t.resolve);l(e,(function(e){o(a,t,e).then(n.resolve,r)}))}));return u.error&&r(u.value),n.promise}})},60683:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(78523);r({target:"Promise",stat:!0,forced:n(63702).CONSTRUCTOR},{reject:function(e){var t=i.f(this);return o(t.reject,void 0,e),t.promise}})},96294:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(31913),a=n(2492),s=n(63702).CONSTRUCTOR,l=n(69478),u=o("Promise"),c=i&&!s;r({target:"Promise",stat:!0,forced:i||s},{resolve:function(e){return l(c&&this===u?a:this,e)}})},12419:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(22104),a=n(27065),s=n(39483),l=n(19670),u=n(70111),c=n(70030),f=n(47293),d=o("Reflect","construct"),p=Object.prototype,h=[].push,g=f((function(){function e(){}return!(d((function(){}),[],e)instanceof e)})),v=!f((function(){d((function(){}))})),m=g||v;r({target:"Reflect",stat:!0,forced:m,sham:m},{construct:function(e,t){s(e),l(t);var n=arguments.length<3?e:s(arguments[2]);if(v&&!g)return d(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return i(h,r,t),new(i(a,e,r))}var o=n.prototype,f=c(u(o)?o:p),m=i(e,f,t);return u(m)?m:f}})},81299:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(58003);r({global:!0},{Reflect:{}}),i(o.Reflect,"Reflect",!0)},24603:function(e,t,n){"use strict";var r=n(19781),o=n(17854),i=n(1702),a=n(54705),s=n(79587),l=n(68880),u=n(8006).f,c=n(47976),f=n(47850),d=n(41340),p=n(34706),h=n(52999),g=n(2626),v=n(98052),m=n(47293),y=n(92597),b=n(29909).enforce,w=n(96340),_=n(5112),x=n(9441),S=n(38173),O=_("match"),C=o.RegExp,E=C.prototype,A=o.SyntaxError,k=i(E.exec),M=i("".charAt),P=i("".replace),R=i("".indexOf),T=i("".slice),I=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,B=/a/g,j=/a/g,D=new C(B)!==B,L=h.MISSED_STICKY,Z=h.UNSUPPORTED_Y,N=r&&(!D||L||x||S||m((function(){return j[O]=!1,C(B)!=B||C(j)==j||"/a/i"!=C(B,"i")})));if(a("RegExp",N)){for(var F=function(e,t){var n,r,o,i,a,u,h=c(E,this),g=f(e),v=void 0===t,m=[],w=e;if(!h&&g&&v&&e.constructor===F)return e;if((g||c(E,e))&&(e=e.source,v&&(t=p(w))),e=void 0===e?"":d(e),t=void 0===t?"":d(t),w=e,x&&"dotAll"in B&&(r=!!t&&R(t,"s")>-1)&&(t=P(t,/s/g,"")),n=t,L&&"sticky"in B&&(o=!!t&&R(t,"y")>-1)&&Z&&(t=P(t,/y/g,"")),S&&(i=function(e){for(var t,n=e.length,r=0,o="",i=[],a={},s=!1,l=!1,u=0,c="";r<=n;r++){if("\\"===(t=M(e,r)))t+=M(e,++r);else if("]"===t)s=!1;else if(!s)switch(!0){case"["===t:s=!0;break;case"("===t:k(I,T(e,r+1))&&(r+=2,l=!0),o+=t,u++;continue;case">"===t&&l:if(""===c||y(a,c))throw new A("Invalid capture group name");a[c]=!0,i[i.length]=[c,u],l=!1,c="";continue}l?c+=t:o+=t}return[o,i]}(e),e=i[0],m=i[1]),a=s(C(e,t),h?this:E,F),(r||o||m.length)&&(u=b(a),r&&(u.dotAll=!0,u.raw=F(function(e){for(var t,n=e.length,r=0,o="",i=!1;r<=n;r++)"\\"!==(t=M(e,r))?i||"."!==t?("["===t?i=!0:"]"===t&&(i=!1),o+=t):o+="[\\s\\S]":o+=t+M(e,++r);return o}(e),n)),o&&(u.sticky=!0),m.length&&(u.groups=m)),e!==w)try{l(a,"source",""===w?"(?:)":w)}catch(_){}return a},H=u(C),V=0;H.length>V;)g(F,C,H[V++]);E.constructor=F,F.prototype=E,v(o,"RegExp",F,{constructor:!0})}w("RegExp")},74916:function(e,t,n){"use strict";var r=n(82109),o=n(22261);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},88386:function(e,t,n){"use strict";var r=n(19781),o=n(52999).MISSED_STICKY,i=n(84326),a=n(47045),s=n(29909).get,l=RegExp.prototype,u=TypeError;r&&o&&a(l,"sticky",{configurable:!0,get:function(){if(this!==l){if("RegExp"===i(this))return!!s(this).sticky;throw u("Incompatible receiver, RegExp required")}}})},77601:function(e,t,n){"use strict";n(74916);var r=n(82109),o=n(46916),i=n(60614),a=n(19670),s=n(41340),l=function(){var e=!1,t=/[ac]/;return t.exec=function(){return e=!0,/./.exec.apply(this,arguments)},!0===t.test("abc")&&e}(),u=/./.test;r({target:"RegExp",proto:!0,forced:!l},{test:function(e){var t=a(this),n=s(e),r=t.exec;if(!i(r))return o(u,t,n);var l=o(r,t,n);return null!==l&&(a(l),!0)}})},39714:function(e,t,n){"use strict";var r=n(76530).PROPER,o=n(98052),i=n(19670),a=n(41340),s=n(47293),l=n(34706),u="toString",c=RegExp.prototype[u],f=s((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),d=r&&c.name!=u;(f||d)&&o(RegExp.prototype,u,(function(){var e=i(this);return"/"+a(e.source)+"/"+a(l(e))}),{unsafe:!0})},37227:function(e,t,n){"use strict";n(77710)("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n(95631))},70189:function(e,t,n){"use strict";n(37227)},32023:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(3929),a=n(84488),s=n(41340),l=n(84964),u=o("".indexOf);r({target:"String",proto:!0,forced:!l("includes")},{includes:function(e){return!!~u(s(a(this)),s(i(e)),arguments.length>1?arguments[1]:void 0)}})},78783:function(e,t,n){"use strict";var r=n(28710).charAt,o=n(41340),i=n(29909),a=n(51656),s=n(76178),l="String Iterator",u=i.set,c=i.getterFor(l);a(String,"String",(function(e){u(this,{type:l,string:o(e),index:0})}),(function(){var e,t=c(this),n=t.string,o=t.index;return o>=n.length?s(void 0,!0):(e=r(n,o),t.index+=e.length,s(e,!1))}))},4723:function(e,t,n){"use strict";var r=n(46916),o=n(27007),i=n(19670),a=n(68554),s=n(17466),l=n(41340),u=n(84488),c=n(58173),f=n(31530),d=n(97651);o("match",(function(e,t,n){return[function(t){var n=u(this),o=a(t)?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](l(n))},function(e){var r=i(this),o=l(e),a=n(t,r,o);if(a.done)return a.value;if(!r.global)return d(r,o);var u=r.unicode;r.lastIndex=0;for(var c,p=[],h=0;null!==(c=d(r,o));){var g=l(c[0]);p[h]=g,""===g&&(r.lastIndex=f(o,s(r.lastIndex),u)),h++}return 0===h?null:p}]}))},15306:function(e,t,n){"use strict";var r=n(22104),o=n(46916),i=n(1702),a=n(27007),s=n(47293),l=n(19670),u=n(60614),c=n(68554),f=n(19303),d=n(17466),p=n(41340),h=n(84488),g=n(31530),v=n(58173),m=n(10647),y=n(97651),b=n(5112)("replace"),w=Math.max,_=Math.min,x=i([].concat),S=i([].push),O=i("".indexOf),C=i("".slice),E="$0"==="a".replace(/./,"$0"),A=!!/./[b]&&""===/./[b]("a","$0");a("replace",(function(e,t,n){var i=A?"$":"$0";return[function(e,n){var r=h(this),i=c(e)?void 0:v(e,b);return i?o(i,e,r,n):o(t,p(r),e,n)},function(e,o){var a=l(this),s=p(e);if("string"==typeof o&&-1===O(o,i)&&-1===O(o,"$<")){var c=n(t,a,s,o);if(c.done)return c.value}var h=u(o);h||(o=p(o));var v=a.global;if(v){var b=a.unicode;a.lastIndex=0}for(var E=[];;){var A=y(a,s);if(null===A)break;if(S(E,A),!v)break;""===p(A[0])&&(a.lastIndex=g(s,d(a.lastIndex),b))}for(var k,M="",P=0,R=0;R<E.length;R++){for(var T=p((A=E[R])[0]),I=w(_(f(A.index),s.length),0),B=[],j=1;j<A.length;j++)S(B,void 0===(k=A[j])?k:String(k));var D=A.groups;if(h){var L=x([T],B,I,s);void 0!==D&&S(L,D);var Z=p(r(o,void 0,L))}else Z=m(T,s,I,B,D,o);I>=P&&(M+=C(s,P,I)+Z,P=I+T.length)}return M+C(s,P)}]}),!!s((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}))||!E||A)},64765:function(e,t,n){"use strict";var r=n(46916),o=n(27007),i=n(19670),a=n(68554),s=n(84488),l=n(81150),u=n(41340),c=n(58173),f=n(97651);o("search",(function(e,t,n){return[function(t){var n=s(this),o=a(t)?void 0:c(t,e);return o?r(o,t,n):new RegExp(t)[e](u(n))},function(e){var r=i(this),o=u(e),a=n(t,r,o);if(a.done)return a.value;var s=r.lastIndex;l(s,0)||(r.lastIndex=0);var c=f(r,o);return l(r.lastIndex,s)||(r.lastIndex=s),null===c?-1:c.index}]}))},23123:function(e,t,n){"use strict";var r=n(22104),o=n(46916),i=n(1702),a=n(27007),s=n(19670),l=n(68554),u=n(47850),c=n(84488),f=n(36707),d=n(31530),p=n(17466),h=n(41340),g=n(58173),v=n(41589),m=n(97651),y=n(22261),b=n(52999),w=n(47293),_=b.UNSUPPORTED_Y,x=4294967295,S=Math.min,O=[].push,C=i(/./.exec),E=i(O),A=i("".slice),k=!w((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));a("split",(function(e,t,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var i=h(c(this)),a=void 0===n?x:n>>>0;if(0===a)return[];if(void 0===e)return[i];if(!u(e))return o(t,i,e,a);for(var s,l,f,d=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),g=0,m=new RegExp(e.source,p+"g");(s=o(y,m,i))&&!((l=m.lastIndex)>g&&(E(d,A(i,g,s.index)),s.length>1&&s.index<i.length&&r(O,d,v(s,1)),f=s[0].length,g=l,d.length>=a));)m.lastIndex===s.index&&m.lastIndex++;return g===i.length?!f&&C(m,"")||E(d,""):E(d,A(i,g)),d.length>a?v(d,0,a):d}:"0".split(void 0,0).length?function(e,n){return void 0===e&&0===n?[]:o(t,this,e,n)}:t,[function(t,n){var r=c(this),a=l(t)?void 0:g(t,e);return a?o(a,t,r,n):o(i,h(r),t,n)},function(e,r){var o=s(this),a=h(e),l=n(i,o,a,r,i!==t);if(l.done)return l.value;var u=f(o,RegExp),c=o.unicode,g=(o.ignoreCase?"i":"")+(o.multiline?"m":"")+(o.unicode?"u":"")+(_?"g":"y"),v=new u(_?"^(?:"+o.source+")":o,g),y=void 0===r?x:r>>>0;if(0===y)return[];if(0===a.length)return null===m(v,a)?[a]:[];for(var b=0,w=0,O=[];w<a.length;){v.lastIndex=_?0:w;var C,k=m(v,_?A(a,w):a);if(null===k||(C=S(p(v.lastIndex+(_?w:0)),a.length))===b)w=d(a,w,c);else{if(E(O,A(a,b,w)),O.length===y)return O;for(var M=1;M<=k.length-1;M++)if(E(O,k[M]),O.length===y)return O;w=b=C}}return E(O,A(a,b)),O}]}),!k,_)},23157:function(e,t,n){"use strict";var r=n(82109),o=n(21470),i=n(31236).f,a=n(17466),s=n(41340),l=n(3929),u=n(84488),c=n(84964),f=n(31913),d=o("".startsWith),p=o("".slice),h=Math.min,g=c("startsWith");r({target:"String",proto:!0,forced:!(!f&&!g&&!!function(){var e=i(String.prototype,"startsWith");return e&&!e.writable}())&&!g},{startsWith:function(e){var t=s(u(this));l(e);var n=a(h(arguments.length>1?arguments[1]:void 0,t.length)),r=s(e);return d?d(t,r,n):p(t,n,n+r.length)===r}})},73210:function(e,t,n){"use strict";var r=n(82109),o=n(53111).trim;r({target:"String",proto:!0,forced:n(76091)("trim")},{trim:function(){return o(this)}})},4032:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(46916),a=n(1702),s=n(31913),l=n(19781),u=n(36293),c=n(47293),f=n(92597),d=n(47976),p=n(19670),h=n(45656),g=n(34948),v=n(41340),m=n(79114),y=n(70030),b=n(81956),w=n(8006),_=n(1156),x=n(25181),S=n(31236),O=n(3070),C=n(36048),E=n(55296),A=n(98052),k=n(47045),M=n(72309),P=n(6200),R=n(3501),T=n(69711),I=n(5112),B=n(6061),j=n(26800),D=n(56532),L=n(58003),Z=n(29909),N=n(42092).forEach,F=P("hidden"),H="Symbol",V="prototype",z=Z.set,U=Z.getterFor(H),G=Object[V],W=o.Symbol,q=W&&W[V],$=o.TypeError,Y=o.QObject,X=S.f,K=O.f,J=_.f,Q=E.f,ee=a([].push),te=M("symbols"),ne=M("op-symbols"),re=M("wks"),oe=!Y||!Y[V]||!Y[V].findChild,ie=l&&c((function(){return 7!=y(K({},"a",{get:function(){return K(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=X(G,t);r&&delete G[t],K(e,t,n),r&&e!==G&&K(G,t,r)}:K,ae=function(e,t){var n=te[e]=y(q);return z(n,{type:H,tag:e,description:t}),l||(n.description=t),n},se=function(e,t,n){e===G&&se(ne,t,n),p(e);var r=g(t);return p(n),f(te,r)?(n.enumerable?(f(e,F)&&e[F][r]&&(e[F][r]=!1),n=y(n,{enumerable:m(0,!1)})):(f(e,F)||K(e,F,m(1,{})),e[F][r]=!0),ie(e,r,n)):K(e,r,n)},le=function(e,t){p(e);var n=h(t),r=b(n).concat(de(n));return N(r,(function(t){l&&!i(ue,n,t)||se(e,t,n[t])})),e},ue=function(e){var t=g(e),n=i(Q,this,t);return!(this===G&&f(te,t)&&!f(ne,t))&&(!(n||!f(this,t)||!f(te,t)||f(this,F)&&this[F][t])||n)},ce=function(e,t){var n=h(e),r=g(t);if(n!==G||!f(te,r)||f(ne,r)){var o=X(n,r);return!o||!f(te,r)||f(n,F)&&n[F][r]||(o.enumerable=!0),o}},fe=function(e){var t=J(h(e)),n=[];return N(t,(function(e){f(te,e)||f(R,e)||ee(n,e)})),n},de=function(e){var t=e===G,n=J(t?ne:h(e)),r=[];return N(n,(function(e){!f(te,e)||t&&!f(G,e)||ee(r,te[e])})),r};u||(W=function(){if(d(q,this))throw $("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?v(arguments[0]):void 0,t=T(e),n=function(e){this===G&&i(n,ne,e),f(this,F)&&f(this[F],t)&&(this[F][t]=!1),ie(this,t,m(1,e))};return l&&oe&&ie(G,t,{configurable:!0,set:n}),ae(t,e)},A(q=W[V],"toString",(function(){return U(this).tag})),A(W,"withoutSetter",(function(e){return ae(T(e),e)})),E.f=ue,O.f=se,C.f=le,S.f=ce,w.f=_.f=fe,x.f=de,B.f=function(e){return ae(I(e),e)},l&&(k(q,"description",{configurable:!0,get:function(){return U(this).description}}),s||A(G,"propertyIsEnumerable",ue,{unsafe:!0}))),r({global:!0,constructor:!0,wrap:!0,forced:!u,sham:!u},{Symbol:W}),N(b(re),(function(e){j(e)})),r({target:H,stat:!0,forced:!u},{useSetter:function(){oe=!0},useSimple:function(){oe=!1}}),r({target:"Object",stat:!0,forced:!u,sham:!l},{create:function(e,t){return void 0===t?y(e):le(y(e),t)},defineProperty:se,defineProperties:le,getOwnPropertyDescriptor:ce}),r({target:"Object",stat:!0,forced:!u},{getOwnPropertyNames:fe}),D(),L(W,H),R[F]=!0},40763:function(e,t,n){"use strict";var r=n(82109),o=n(35005),i=n(92597),a=n(41340),s=n(72309),l=n(2015),u=s("string-to-symbol-registry"),c=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{for:function(e){var t=a(e);if(i(u,t))return u[t];var n=o("Symbol")(t);return u[t]=n,c[n]=t,n}})},82526:function(e,t,n){"use strict";n(4032),n(40763),n(26620),n(38862),n(29660)},26620:function(e,t,n){"use strict";var r=n(82109),o=n(92597),i=n(52190),a=n(66330),s=n(72309),l=n(2015),u=s("symbol-to-string-registry");r({target:"Symbol",stat:!0,forced:!l},{keyFor:function(e){if(!i(e))throw TypeError(a(e)+" is not a symbol");if(o(u,e))return u[e]}})},68216:function(e,t,n){"use strict";var r=n(82109),o=n(12269).every;r({target:"AsyncIterator",proto:!0,real:!0},{every:function(e){return o(this,e)}})},88449:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(19670),s=n(70111),l=n(24942),u=n(45348),c=n(76178),f=n(21753),d=n(31913),p=u((function(e){var t=this,n=t.iterator,r=t.predicate;return new e((function(i,l){var u=function(e){t.done=!0,l(e)},d=function(e){f(n,u,e,u)},p=function(){try{e.resolve(a(o(t.next,n))).then((function(n){try{if(a(n).done)t.done=!0,i(c(void 0,!0));else{var o=n.value;try{var l=r(o,t.counter++),f=function(e){e?i(c(o,!1)):p()};s(l)?e.resolve(l).then(f,d):f(l)}catch(h){d(h)}}}catch(g){u(g)}}),u)}catch(l){u(l)}};p()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:d},{filter:function(e){return a(this),i(e),new p(l(this),{predicate:e})}})},31672:function(e,t,n){"use strict";var r=n(82109),o=n(12269).find;r({target:"AsyncIterator",proto:!0,real:!0},{find:function(e){return o(this,e)}})},15581:function(e,t,n){"use strict";var r=n(82109),o=n(12269).forEach;r({target:"AsyncIterator",proto:!0,real:!0},{forEach:function(e){return o(this,e)}})},57640:function(e,t,n){"use strict";var r=n(82109),o=n(13232);r({target:"AsyncIterator",proto:!0,real:!0,forced:n(31913)},{map:o})},25387:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(19670),s=n(70111),l=n(35005),u=n(24942),c=n(21753),f=l("Promise"),d=TypeError;r({target:"AsyncIterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var t=u(this),n=t.iterator,r=t.next,l=arguments.length<2,p=l?void 0:arguments[1],h=0;return new f((function(t,i){var u=function(e){c(n,i,e,i)},g=function(){try{f.resolve(a(o(r,n))).then((function(n){try{if(a(n).done)l?i(d("Reduce of empty iterator with no initial value")):t(p);else{var r=n.value;if(l)l=!1,p=r,g();else try{var o=e(p,r,h),c=function(e){p=e,g()};s(o)?f.resolve(o).then(c,u):c(o)}catch(v){u(v)}}h++}catch(m){i(m)}}),i)}catch(c){i(c)}};g()}))}})},64211:function(e,t,n){"use strict";var r=n(82109),o=n(12269).some;r({target:"AsyncIterator",proto:!0,real:!0},{some:function(e){return o(this,e)}})},2490:function(e,t,n){"use strict";var r=n(82109),o=n(17854),i=n(25787),a=n(60614),s=n(79518),l=n(68880),u=n(47293),c=n(92597),f=n(5112),d=n(13383).IteratorPrototype,p=n(31913),h=f("toStringTag"),g=TypeError,v=o.Iterator,m=p||!a(v)||v.prototype!==d||!u((function(){v({})})),y=function(){if(i(this,d),s(this)===d)throw g("Abstract class Iterator not directly constructable")};c(d,h)||l(d,h,"Iterator"),!m&&c(d,"constructor")&&d.constructor!==Object||l(d,"constructor",y),y.prototype=d,r({global:!0,constructor:!0,forced:m},{Iterator:y})},79433:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{every:function(e){a(this),i(e);var t=s(this),n=0;return!o(t,(function(t,r){if(!e(t,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},59849:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(19662),a=n(19670),s=n(24942),l=n(54956),u=n(53411),c=n(31913),f=l((function(){for(var e,t,n=this.iterator,r=this.predicate,i=this.next;;){if(e=a(o(i,n)),this.done=!!e.done)return;if(t=e.value,u(n,r,[t,this.counter++],!0))return t}}));r({target:"Iterator",proto:!0,real:!0,forced:c},{filter:function(e){return a(this),i(e),new f(s(this),{predicate:e})}})},59461:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{find:function(e){a(this),i(e);var t=s(this),n=0;return o(t,(function(t,r){if(e(t,n++))return r(t)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},34514:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{forEach:function(e){a(this),i(e);var t=s(this),n=0;o(t,(function(t){e(t,n++)}),{IS_RECORD:!0})}})},9924:function(e,t,n){"use strict";var r=n(82109),o=n(20487);r({target:"Iterator",proto:!0,real:!0,forced:n(31913)},{map:o})},72608:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942),l=TypeError;r({target:"Iterator",proto:!0,real:!0},{reduce:function(e){a(this),i(e);var t=s(this),n=arguments.length<2,r=n?void 0:arguments[1],u=0;if(o(t,(function(t){n?(n=!1,r=t):r=e(r,t,u),u++}),{IS_RECORD:!0}),n)throw l("Reduce of empty iterator with no initial value");return r}})},41874:function(e,t,n){"use strict";var r=n(82109),o=n(20408),i=n(19662),a=n(19670),s=n(24942);r({target:"Iterator",proto:!0,real:!0},{some:function(e){a(this),i(e);var t=s(this),n=0;return o(t,(function(t,r){if(e(t,n++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},10072:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(75706).remove;r({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,t=o(this),n=!0,r=0,a=arguments.length;r<a;r++)e=i(t,arguments[r]),n=n&&e;return!!n}})},23042:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(75706),a=i.get,s=i.has,l=i.set;r({target:"Map",proto:!0,real:!0,forced:!0},{emplace:function(e,t){var n,r,i=o(this);return s(i,e)?(n=a(i,e),"update"in t&&(n=t.update(n,e,i),l(i,e,n)),n):(r=t.insert(e,i),l(i,e,r),r)}})},99137:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{every:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!1!==a(t,(function(e,r){if(!n(e,r,t))return!1}),!0)}})},71957:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(75706),s=n(14995),l=a.Map,u=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new l;return s(t,(function(e,o){n(e,o,t)&&u(r,o,e)})),r}})},103:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e,r){if(n(e,r,t))return{key:r}}),!0);return r&&r.key}})},96306:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e,r){if(n(e,r,t))return{value:e}}),!0);return r&&r.value}})},74592:function(e,t,n){"use strict";var r=n(82109),o=n(46465),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===a(i(this),(function(t){if(o(t,e))return!0}),!0)}})},58276:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var t=i(o(this),(function(t,n){if(t===e)return{key:n}}),!0);return t&&t.key}})},35082:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(75706),s=n(14995),l=a.Map,u=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new l;return s(t,(function(e,o){u(r,n(e,o,t),e)})),r}})},12813:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(75706),s=n(14995),l=a.Map,u=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new l;return s(t,(function(e,o){u(r,o,n(e,o,t))})),r}})},18222:function(e,t,n){"use strict";var r=n(82109),o=n(40027),i=n(20408),a=n(75706).set;r({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var t=o(this),n=arguments.length,r=0;r<n;)i(arguments[r++],(function(e,n){a(t,e,n)}),{AS_ENTRIES:!0});return t}})},38563:function(e,t,n){"use strict";var r=n(82109),o=n(19662),i=n(40027),a=n(14995),s=TypeError;r({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=i(this),n=arguments.length<2,r=n?void 0:arguments[1];if(o(e),a(t,(function(o,i){n?(n=!1,r=o):r=e(r,o,i,t)})),n)throw s("Reduce of empty map with no initial value");return r}})},50336:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(40027),a=n(14995);r({target:"Map",proto:!0,real:!0,forced:!0},{some:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!0===a(t,(function(e,r){if(n(e,r,t))return!0}),!0)}})},7512:function(e,t,n){"use strict";var r=n(82109),o=n(19662),i=n(40027),a=n(75706),s=TypeError,l=a.get,u=a.has,c=a.set;r({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,t){var n=i(this),r=arguments.length;o(t);var a=u(n,e);if(!a&&r<3)throw s("Updating absent value");var f=a?l(n,e):o(r>2?arguments[2]:void 0)(e,n);return c(n,e,t(f,e,n)),n}})},88921:function(e,t,n){"use strict";var r=n(82109),o=n(88999),i=n(79405).add;r({target:"Set",proto:!0,real:!0,forced:!0},{addAll:function(){for(var e=o(this),t=0,n=arguments.length;t<n;t++)i(e,arguments[t]);return e}})},96248:function(e,t,n){"use strict";var r=n(82109),o=n(88999),i=n(79405).remove;r({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,t=o(this),n=!0,r=0,a=arguments.length;r<a;r++)e=i(t,arguments[r]),n=n&&e;return!!n}})},13599:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(37075);r({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(e){return o(a,this,i(e))}})},11477:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(87758);r({target:"Set",proto:!0,real:!0,forced:!0},{every:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!1!==a(t,(function(e){if(!n(e,e,t))return!1}),!0)}})},64362:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(79405),s=n(87758),l=a.Set,u=a.add;r({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new l;return s(t,(function(e){n(e,e,t)&&u(r,e)})),r}})},15389:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(87758);r({target:"Set",proto:!0,real:!0,forced:!0},{find:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=a(t,(function(e){if(n(e,e,t))return{value:e}}),!0);return r&&r.value}})},90401:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(81920);r({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(e){return o(a,this,i(e))}})},45164:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(78239);r({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(e){return o(a,this,i(e))}})},91238:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(49180);r({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(e){return o(a,this,i(e))}})},54837:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(10107);r({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(e){return o(a,this,i(e))}})},87485:function(e,t,n){"use strict";var r=n(82109),o=n(1702),i=n(88999),a=n(87758),s=n(41340),l=o([].join),u=o([].push);r({target:"Set",proto:!0,real:!0,forced:!0},{join:function(e){var t=i(this),n=void 0===e?",":s(e),r=[];return a(t,(function(e){u(r,e)})),l(r,n)}})},56767:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(79405),s=n(87758),l=a.Set,u=a.add;r({target:"Set",proto:!0,real:!0,forced:!0},{map:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0),r=new l;return s(t,(function(e){u(r,n(e,e,t))})),r}})},76651:function(e,t,n){"use strict";var r=n(82109),o=n(19662),i=n(88999),a=n(87758),s=TypeError;r({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(e){var t=i(this),n=arguments.length<2,r=n?void 0:arguments[1];if(o(e),a(t,(function(o){n?(n=!1,r=o):r=e(r,o,o,t)})),n)throw s("Reduce of empty set with no initial value");return r}})},61437:function(e,t,n){"use strict";var r=n(82109),o=n(49974),i=n(88999),a=n(87758);r({target:"Set",proto:!0,real:!0,forced:!0},{some:function(e){var t=i(this),n=o(e,arguments.length>1?arguments[1]:void 0);return!0===a(t,(function(e){if(n(e,e,t))return!0}),!0)}})},35285:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(98506);r({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(e){return o(a,this,i(e))}})},39865:function(e,t,n){"use strict";var r=n(82109),o=n(46916),i=n(45965),a=n(39391);r({target:"Set",proto:!0,real:!0,forced:!0},{union:function(e){return o(a,this,i(e))}})},54747:function(e,t,n){"use strict";var r=n(17854),o=n(48324),i=n(98509),a=n(18533),s=n(68880),l=function(e){if(e&&e.forEach!==a)try{s(e,"forEach",a)}catch(t){e.forEach=a}};for(var u in o)o[u]&&l(r[u]&&r[u].prototype);l(i)},33948:function(e,t,n){"use strict";var r=n(17854),o=n(48324),i=n(98509),a=n(66992),s=n(68880),l=n(5112),u=l("iterator"),c=l("toStringTag"),f=a.values,d=function(e,t){if(e){if(e[u]!==f)try{s(e,u,f)}catch(r){e[u]=f}if(e[c]||s(e,c,t),o[t])for(var n in a)if(e[n]!==a[n])try{s(e,n,a[n])}catch(r){e[n]=a[n]}}};for(var p in o)d(r[p]&&r[p].prototype,p);d(i,"DOMTokenList")},65556:function(e,t,n){"use strict";n(66992);var r=n(82109),o=n(17854),i=n(46916),a=n(1702),s=n(19781),l=n(85143),u=n(98052),c=n(47045),f=n(89190),d=n(58003),p=n(63061),h=n(29909),g=n(25787),v=n(60614),m=n(92597),y=n(49974),b=n(70648),w=n(19670),_=n(70111),x=n(41340),S=n(70030),O=n(79114),C=n(18554),E=n(71246),A=n(48053),k=n(5112),M=n(94362),P=k("iterator"),R="URLSearchParams",T=R+"Iterator",I=h.set,B=h.getterFor(R),j=h.getterFor(T),D=Object.getOwnPropertyDescriptor,L=function(e){if(!s)return o[e];var t=D(o,e);return t&&t.value},Z=L("fetch"),N=L("Request"),F=L("Headers"),H=N&&N.prototype,V=F&&F.prototype,z=o.RegExp,U=o.TypeError,G=o.decodeURIComponent,W=o.encodeURIComponent,q=a("".charAt),$=a([].join),Y=a([].push),X=a("".replace),K=a([].shift),J=a([].splice),Q=a("".split),ee=a("".slice),te=/\+/g,ne=Array(4),re=function(e){return ne[e-1]||(ne[e-1]=z("((?:%[\\da-f]{2}){"+e+"})","gi"))},oe=function(e){try{return G(e)}catch(t){return e}},ie=function(e){var t=X(e,te," "),n=4;try{return G(t)}catch(r){for(;n;)t=X(t,re(n--),oe);return t}},ae=/[!'()~]|%20/g,se={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},le=function(e){return se[e]},ue=function(e){return X(W(e),ae,le)},ce=p((function(e,t){I(this,{type:T,iterator:C(B(e).entries),kind:t})}),"Iterator",(function(){var e=j(this),t=e.kind,n=e.iterator.next(),r=n.value;return n.done||(n.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),n}),!0),fe=function(e){this.entries=[],this.url=null,void 0!==e&&(_(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===q(e,0)?ee(e,1):e:x(e)))};fe.prototype={type:R,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,n,r,o,a,s,l,u=E(e);if(u)for(n=(t=C(e,u)).next;!(r=i(n,t)).done;){if(a=(o=C(w(r.value))).next,(s=i(a,o)).done||(l=i(a,o)).done||!i(a,o).done)throw U("Expected sequence with length 2");Y(this.entries,{key:x(s.value),value:x(l.value)})}else for(var c in e)m(e,c)&&Y(this.entries,{key:c,value:x(e[c])})},parseQuery:function(e){if(e)for(var t,n,r=Q(e,"&"),o=0;o<r.length;)(t=r[o++]).length&&(n=Q(t,"="),Y(this.entries,{key:ie(K(n)),value:ie($(n,"="))}))},serialize:function(){for(var e,t=this.entries,n=[],r=0;r<t.length;)e=t[r++],Y(n,ue(e.key)+"="+ue(e.value));return $(n,"&")},update:function(){this.entries.length=0,this.parseQuery(this.url.query)},updateURL:function(){this.url&&this.url.update()}};var de=function(){g(this,pe);var e=I(this,new fe(arguments.length>0?arguments[0]:void 0));s||(this.size=e.entries.length)},pe=de.prototype;if(f(pe,{append:function(e,t){var n=B(this);A(arguments.length,2),Y(n.entries,{key:x(e),value:x(t)}),s||this.length++,n.updateURL()},delete:function(e){for(var t=B(this),n=A(arguments.length,1),r=t.entries,o=x(e),i=n<2?void 0:arguments[1],a=void 0===i?i:x(i),l=0;l<r.length;){var u=r[l];if(u.key!==o||void 0!==a&&u.value!==a)l++;else if(J(r,l,1),void 0!==a)break}s||(this.size=r.length),t.updateURL()},get:function(e){var t=B(this).entries;A(arguments.length,1);for(var n=x(e),r=0;r<t.length;r++)if(t[r].key===n)return t[r].value;return null},getAll:function(e){var t=B(this).entries;A(arguments.length,1);for(var n=x(e),r=[],o=0;o<t.length;o++)t[o].key===n&&Y(r,t[o].value);return r},has:function(e){for(var t=B(this).entries,n=A(arguments.length,1),r=x(e),o=n<2?void 0:arguments[1],i=void 0===o?o:x(o),a=0;a<t.length;){var s=t[a++];if(s.key===r&&(void 0===i||s.value===i))return!0}return!1},set:function(e,t){var n=B(this);A(arguments.length,1);for(var r,o=n.entries,i=!1,a=x(e),l=x(t),u=0;u<o.length;u++)(r=o[u]).key===a&&(i?J(o,u--,1):(i=!0,r.value=l));i||Y(o,{key:a,value:l}),s||(this.size=o.length),n.updateURL()},sort:function(){var e=B(this);M(e.entries,(function(e,t){return e.key>t.key?1:-1})),e.updateURL()},forEach:function(e){for(var t,n=B(this).entries,r=y(e,arguments.length>1?arguments[1]:void 0),o=0;o<n.length;)r((t=n[o++]).value,t.key,this)},keys:function(){return new ce(this,"keys")},values:function(){return new ce(this,"values")},entries:function(){return new ce(this,"entries")}},{enumerable:!0}),u(pe,P,pe.entries,{name:"entries"}),u(pe,"toString",(function(){return B(this).serialize()}),{enumerable:!0}),s&&c(pe,"size",{get:function(){return B(this).entries.length},configurable:!0,enumerable:!0}),d(de,R),r({global:!0,constructor:!0,forced:!l},{URLSearchParams:de}),!l&&v(F)){var he=a(V.has),ge=a(V.set),ve=function(e){if(_(e)){var t,n=e.body;if(b(n)===R)return t=e.headers?new F(e.headers):new F,he(t,"content-type")||ge(t,"content-type","application/x-www-form-urlencoded;charset=UTF-8"),S(e,{body:O(0,x(n)),headers:O(0,t)})}return e};if(v(Z)&&r({global:!0,enumerable:!0,dontCallGetSet:!0,forced:!0},{fetch:function(e){return Z(e,arguments.length>1?ve(arguments[1]):{})}}),v(N)){var me=function(e){return g(this,H),new N(e,arguments.length>1?ve(arguments[1]):{})};H.constructor=me,me.prototype=H,r({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:me})}}e.exports={URLSearchParams:de,getState:B}},41637:function(e,t,n){"use strict";n(65556)},71012:function(e){!function(){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=n.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,r=0;n<e.length;n++,r+=8)t[r>>>5]|=e[n]<<24-r%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var n=[],r=0;r<e.length;r+=3)for(var o=e[r]<<16|e[r+1]<<8|e[r+2],i=0;i<4;i++)8*r+6*i<=8*e.length?n.push(t.charAt(o>>>6*(3-i)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],r=0,o=0;r<e.length;o=++r%4)0!=o&&n.push((t.indexOf(e.charAt(r-1))&Math.pow(2,-2*o+8)-1)<<2*o|t.indexOf(e.charAt(r))>>>6-2*o);return n}};e.exports=n}()},44020:function(e){"use strict";var t="%[a-f0-9]{2}",n=new RegExp("("+t+")|([^%]+?)","gi"),r=new RegExp("("+t+")+","gi");function o(e,t){try{return[decodeURIComponent(e.join(""))]}catch(i){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],o(n),o(r))}function i(e){try{return decodeURIComponent(e)}catch(i){for(var t=e.match(n)||[],r=1;r<t.length;r++)t=(e=o(t,r).join("")).match(n)||[];return e}}e.exports=function(e){if("string"!==typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var n={"%FE%FF":"\ufffd\ufffd","%FF%FE":"\ufffd\ufffd"},o=r.exec(e);o;){try{n[o[0]]=decodeURIComponent(o[0])}catch(t){var a=i(o[0]);a!==o[0]&&(n[o[0]]=a)}o=r.exec(e)}n["%C2"]="\ufffd";for(var s=Object.keys(n),l=0;l<s.length;l++){var u=s[l];e=e.replace(new RegExp(u,"g"),n[u])}return e}(e)}}},7494:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return r.default}});var r=n(95984)},74321:function(e,t,n){"use strict";n.d(t,{Dv:function(){return i},He:function(){return s},JL:function(){return o},XX:function(){return w},cc:function(){return a}});var r=n(72247),o=function(e,t,n,r,o,a){return i(e,t,n,(function(e){return"logscale"!==e&&r(e)}),o,a)},i=function(e,t,n,o,i,a){var s,l,u,c,f=o("pixelsPerLabel"),d=[];if(a)for(s=0;s<a.length;s++)d.push({v:a[s]});else{if(o("logscale")){c=Math.floor(n/f);var p=r.binarySearch(e,m,1),h=r.binarySearch(t,m,-1);-1==p&&(p=0),-1==h&&(h=m.length-1);var g=null;if(h-p>=c/4){for(var v=h;v>=p;v--){var y=m[v],b=Math.log(y/e)/Math.log(t/e)*n,w={v:y};null===g||Math.abs(b-g.pixel_coord)>=f?g={tickValue:y,pixel_coord:b}:w.label="",d.push(w)}d.reverse()}}if(0===d.length){var _,x;o("labelsKMG2")?(_=[1,2,4,8,16,32,64,128,256],x=16):(_=[1,2,5,10,20,50,100],x=10);var S,O,C,E=Math.ceil(n/f),A=Math.abs(t-e)/E,k=Math.floor(Math.log(A)/Math.log(x)),M=Math.pow(x,k);for(l=0;l<_.length&&(S=M*_[l],O=Math.floor(e/S)*S,C=Math.ceil(t/S)*S,!(n/(c=Math.abs(C-O)/S)>f));l++);for(O>C&&(S*=-1),s=0;s<=c;s++)u=O+s*S,d.push({v:u})}}var P=o("axisLabelFormatter");for(s=0;s<d.length;s++)void 0===d[s].label&&(d[s].label=P.call(i,d[s].v,0,o,i));return d},a=function(e,t,n,r,o,i){var a=y(e,t,n,r);return a>=0?w(e,t,a,r,o):[]},s={MILLISECONDLY:0,TWO_MILLISECONDLY:1,FIVE_MILLISECONDLY:2,TEN_MILLISECONDLY:3,FIFTY_MILLISECONDLY:4,HUNDRED_MILLISECONDLY:5,FIVE_HUNDRED_MILLISECONDLY:6,SECONDLY:7,TWO_SECONDLY:8,FIVE_SECONDLY:9,TEN_SECONDLY:10,THIRTY_SECONDLY:11,MINUTELY:12,TWO_MINUTELY:13,FIVE_MINUTELY:14,TEN_MINUTELY:15,THIRTY_MINUTELY:16,HOURLY:17,TWO_HOURLY:18,SIX_HOURLY:19,DAILY:20,TWO_DAILY:21,WEEKLY:22,MONTHLY:23,QUARTERLY:24,BIANNUAL:25,ANNUAL:26,DECADAL:27,CENTENNIAL:28,NUM_GRANULARITIES:29},l=0,u=1,c=2,f=3,d=4,p=5,h=6,g=7,v=[];v[s.MILLISECONDLY]={datefield:h,step:1,spacing:1},v[s.TWO_MILLISECONDLY]={datefield:h,step:2,spacing:2},v[s.FIVE_MILLISECONDLY]={datefield:h,step:5,spacing:5},v[s.TEN_MILLISECONDLY]={datefield:h,step:10,spacing:10},v[s.FIFTY_MILLISECONDLY]={datefield:h,step:50,spacing:50},v[s.HUNDRED_MILLISECONDLY]={datefield:h,step:100,spacing:100},v[s.FIVE_HUNDRED_MILLISECONDLY]={datefield:h,step:500,spacing:500},v[s.SECONDLY]={datefield:p,step:1,spacing:1e3},v[s.TWO_SECONDLY]={datefield:p,step:2,spacing:2e3},v[s.FIVE_SECONDLY]={datefield:p,step:5,spacing:5e3},v[s.TEN_SECONDLY]={datefield:p,step:10,spacing:1e4},v[s.THIRTY_SECONDLY]={datefield:p,step:30,spacing:3e4},v[s.MINUTELY]={datefield:d,step:1,spacing:6e4},v[s.TWO_MINUTELY]={datefield:d,step:2,spacing:12e4},v[s.FIVE_MINUTELY]={datefield:d,step:5,spacing:3e5},v[s.TEN_MINUTELY]={datefield:d,step:10,spacing:6e5},v[s.THIRTY_MINUTELY]={datefield:d,step:30,spacing:18e5},v[s.HOURLY]={datefield:f,step:1,spacing:36e5},v[s.TWO_HOURLY]={datefield:f,step:2,spacing:72e5},v[s.SIX_HOURLY]={datefield:f,step:6,spacing:216e5},v[s.DAILY]={datefield:c,step:1,spacing:864e5},v[s.TWO_DAILY]={datefield:c,step:2,spacing:1728e5},v[s.WEEKLY]={datefield:c,step:7,spacing:6048e5},v[s.MONTHLY]={datefield:u,step:1,spacing:2629746e3},v[s.QUARTERLY]={datefield:u,step:3,spacing:7889238e3},v[s.BIANNUAL]={datefield:u,step:6,spacing:15778476e3},v[s.ANNUAL]={datefield:l,step:1,spacing:31556952e3},v[s.DECADAL]={datefield:l,step:10,spacing:31556952e4},v[s.CENTENNIAL]={datefield:l,step:100,spacing:31556952e5};var m=function(){for(var e=[],t=-39;t<=39;t++)for(var n=Math.pow(10,t),r=1;r<=9;r++){var o=n*r;e.push(o)}return e}(),y=function(e,t,n,r){for(var o=r("pixelsPerLabel"),i=0;i<s.NUM_GRANULARITIES;i++){if(n/b(e,t,i)>=o)return i}return-1},b=function(e,t,n){var r=v[n].spacing;return Math.round(1*(t-e)/r)},w=function(e,t,n,o,i){var a=o("axisLabelFormatter"),m=o("labelsUTC")?r.DateAccessorsUTC:r.DateAccessorsLocal,y=v[n].datefield,b=v[n].step,w=v[n].spacing,_=new Date(e),x=[];x[l]=m.getFullYear(_),x[u]=m.getMonth(_),x[c]=m.getDate(_),x[f]=m.getHours(_),x[d]=m.getMinutes(_),x[p]=m.getSeconds(_),x[h]=m.getMilliseconds(_);var S=x[y]%b;n==s.WEEKLY&&(S=m.getDay(_)),x[y]-=S;for(var O=y+1;O<g;O++)x[O]=O===c?1:0;var C=[],E=m.makeDate.apply(null,x),A=E.getTime();if(n<=s.HOURLY)for(A<e&&(A+=w,E=new Date(A));A<=t;)C.push({v:A,label:a.call(i,E,n,o,i)}),A+=w,E=new Date(A);else for(A<e&&(x[y]+=b,A=(E=m.makeDate.apply(null,x)).getTime());A<=t;)(n>=s.DAILY||m.getHours(E)%b===0)&&C.push({v:A,label:a.call(i,E,n,o,i)}),x[y]+=b,A=(E=m.makeDate.apply(null,x)).getTime();return C}},72247:function(e,t,n){"use strict";n.r(t),n.d(t,{Circles:function(){return K},DASHED_LINE:function(){return c},DOTTED_LINE:function(){return u},DOT_DASH_LINE:function(){return f},DateAccessorsLocal:function(){return k},DateAccessorsUTC:function(){return M},HORIZONTAL:function(){return d},Iterator:function(){return G},LN_TEN:function(){return a},LOG_SCALE:function(){return i},VERTICAL:function(){return p},addEvent:function(){return g},binarySearch:function(){return I},cancelEvent:function(){return m},clone:function(){return V},createCanvas:function(){return z},createIterator:function(){return W},dateAxisLabelFormatter:function(){return ve},dateParser:function(){return B},dateStrToMillis:function(){return j},dateString_:function(){return R},dateValueFormatter:function(){return me},detectLineDelimiter:function(){return J},dragGetX_:function(){return x},dragGetY_:function(){return S},findPos:function(){return b},floatFormat:function(){return E},getContext:function(){return h},getContextPixelRatio:function(){return U},hmsString_:function(){return P},hsvToRGB:function(){return y},isArrayLike:function(){return F},isCanvasSupported:function(){return ie},isDateLike:function(){return H},isNodeContainedBy:function(){return Q},isOK:function(){return O},isPixelChangingOptionList:function(){return X},isValidPoint:function(){return C},log10:function(){return s},logRangeFraction:function(){return l},numberAxisLabelFormatter:function(){return he},numberValueFormatter:function(){return pe},pageX:function(){return w},pageY:function(){return _},parseFloat_:function(){return ae},pow:function(){return ee},removeEvent:function(){return v},repeatAndCleanup:function(){return $},requestAnimFrame:function(){return q},round_:function(){return T},setupDOMready_:function(){return _e},toRGB_:function(){return oe},type:function(){return o},typeArrayLike:function(){return N},update:function(){return D},updateDeep:function(){return Z},zeropad:function(){return A}});var r=n(74321);function o(e){return null===e?"null":typeof e}var i=10,a=Math.log(i),s=function(e){return Math.log(e)/a},l=function(e,t,n){var r=s(e),o=r+n*(s(t)-r);return Math.pow(i,o)},u=[2,2],c=[7,3],f=[7,2,2,2],d=1,p=2,h=function(e){return e.getContext("2d")},g=function(e,t,n){e.addEventListener(t,n,!1)};function v(e,t,n){e.removeEventListener(t,n,!1)}function m(e){return(e=e||window.event).stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.cancel=!0,e.returnValue=!1,!1}function y(e,t,n){var r,o,i;if(0===t)r=n,o=n,i=n;else{var a=Math.floor(6*e),s=6*e-a,l=n*(1-t),u=n*(1-t*s),c=n*(1-t*(1-s));switch(a){case 1:r=u,o=n,i=l;break;case 2:r=l,o=n,i=c;break;case 3:r=l,o=u,i=n;break;case 4:r=c,o=l,i=n;break;case 5:r=n,o=l,i=u;break;case 6:case 0:r=n,o=c,i=l}}return"rgb("+(r=Math.floor(255*r+.5))+","+(o=Math.floor(255*o+.5))+","+(i=Math.floor(255*i+.5))+")"}function b(e){var t=e.getBoundingClientRect(),n=window,r=document.documentElement;return{x:t.left+(n.pageXOffset||r.scrollLeft),y:t.top+(n.pageYOffset||r.scrollTop)}}function w(e){return!e.pageX||e.pageX<0?0:e.pageX}function _(e){return!e.pageY||e.pageY<0?0:e.pageY}function x(e,t){return w(e)-t.px}function S(e,t){return _(e)-t.py}function O(e){return!!e&&!isNaN(e)}function C(e,t){return!!e&&(null!==e.yval&&(null!==e.x&&void 0!==e.x&&(null!==e.y&&void 0!==e.y&&!(isNaN(e.x)||!t&&isNaN(e.y)))))}function E(e,t){var n=Math.min(Math.max(1,t||2),21);return Math.abs(e)<.001&&0!==e?e.toExponential(n-1):e.toPrecision(n)}function A(e){return e<10?"0"+e:""+e}var k={getFullYear:e=>e.getFullYear(),getMonth:e=>e.getMonth(),getDate:e=>e.getDate(),getHours:e=>e.getHours(),getMinutes:e=>e.getMinutes(),getSeconds:e=>e.getSeconds(),getMilliseconds:e=>e.getMilliseconds(),getDay:e=>e.getDay(),makeDate:function(e,t,n,r,o,i,a){return new Date(e,t,n,r,o,i,a)}},M={getFullYear:e=>e.getUTCFullYear(),getMonth:e=>e.getUTCMonth(),getDate:e=>e.getUTCDate(),getHours:e=>e.getUTCHours(),getMinutes:e=>e.getUTCMinutes(),getSeconds:e=>e.getUTCSeconds(),getMilliseconds:e=>e.getUTCMilliseconds(),getDay:e=>e.getUTCDay(),makeDate:function(e,t,n,r,o,i,a){return new Date(Date.UTC(e,t,n,r,o,i,a))}};function P(e,t,n,r){var o=A(e)+":"+A(t);if(n&&(o+=":"+A(n),r)){var i=""+r;o+="."+("000"+i).substring(i.length)}return o}function R(e,t){var n=t?M:k,r=new Date(e),o=n.getFullYear(r),i=n.getMonth(r),a=n.getDate(r),s=n.getHours(r),l=n.getMinutes(r),u=n.getSeconds(r),c=n.getMilliseconds(r),f=""+o+"/"+A(i+1)+"/"+A(a);return 3600*s+60*l+u+.001*c&&(f+=" "+P(s,l,u,c)),f}function T(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}function I(e,t,n,r,o){if(null!==r&&void 0!==r&&null!==o&&void 0!==o||(r=0,o=t.length-1),r>o)return-1;null!==n&&void 0!==n||(n=0);var i,a=function(e){return e>=0&&e<t.length},s=parseInt((r+o)/2,10),l=t[s];return l==e?s:l>e?n>0&&a(i=s-1)&&t[i]<e?s:I(e,t,n,r,s-1):l<e?n<0&&a(i=s+1)&&t[i]>e?s:I(e,t,n,s+1,o):-1}function B(e){var t,n;if((-1==e.search("-")||-1!=e.search("T")||-1!=e.search("Z"))&&(n=j(e))&&!isNaN(n))return n;if(-1!=e.search("-")){for(t=e.replace("-","/","g");-1!=t.search("-");)t=t.replace("-","/");n=j(t)}else n=j(e);return n&&!isNaN(n)||console.error("Couldn't parse "+e+" as a date"),n}function j(e){return new Date(e).getTime()}function D(e,t){if("undefined"!=typeof t&&null!==t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var L="undefined"!==typeof Node&&null!==Node&&"object"===typeof Node?function(e){return e instanceof Node}:function(e){return"object"===typeof e&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName};function Z(e,t){if("undefined"!=typeof t&&null!==t)for(var n in t)if(t.hasOwnProperty(n)){const r=t[n];null===r?e[n]=null:F(r)?e[n]=r.slice():L(r)?e[n]=r:"object"==typeof r?("object"==typeof e[n]&&null!==e[n]||(e[n]={}),Z(e[n],r)):e[n]=r}return e}function N(e){if(null===e)return"null";const t=typeof e;return("object"===t||"function"===t&&"function"===typeof e.item)&&"number"===typeof e.length&&3!==e.nodeType&&4!==e.nodeType?"array":t}function F(e){const t=typeof e;return null!==e&&("object"===t||"function"===t&&"function"===typeof e.item)&&"number"===typeof e.length&&3!==e.nodeType&&4!==e.nodeType}function H(e){return null!==e&&"object"===typeof e&&"function"===typeof e.getTime}function V(e){for(var t=[],n=0;n<e.length;n++)F(e[n])?t.push(V(e[n])):t.push(e[n]);return t}function z(){return document.createElement("canvas")}function U(e){try{var t=window.devicePixelRatio,n=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return void 0!==t?t/n:1}catch(r){return 1}}function G(e,t,n,r){t=t||0,n=n||e.length,this.hasNext=!0,this.peek=null,this.start_=t,this.array_=e,this.predicate_=r,this.end_=Math.min(e.length,t+n),this.nextIdx_=t-1,this.next()}function W(e,t,n,r){return new G(e,t,n,r)}G.prototype.next=function(){if(!this.hasNext)return null;for(var e=this.peek,t=this.nextIdx_+1,n=!1;t<this.end_;){if(!this.predicate_||this.predicate_(this.array_,t)){this.peek=this.array_[t],n=!0;break}t++}return this.nextIdx_=t,n||(this.hasNext=!1,this.peek=null),e};var q=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)};function $(e,t,n,r){var o,i=0,a=(new Date).getTime();if(e(i),1!=t){var s=t-1;!function l(){i>=t||q.call(window,(function(){var t=(new Date).getTime()-a;o=i;var u=(i=Math.floor(t/n))-o;i+u>s||i>=s?(e(s),r()):(0!==u&&e(i),l())}))}()}else r()}var Y={annotationClickHandler:!0,annotationDblClickHandler:!0,annotationMouseOutHandler:!0,annotationMouseOverHandler:!0,axisLineColor:!0,axisLineWidth:!0,clickCallback:!0,drawCallback:!0,drawHighlightPointCallback:!0,drawPoints:!0,drawPointCallback:!0,drawGrid:!0,fillAlpha:!0,gridLineColor:!0,gridLineWidth:!0,hideOverlayOnMouseOut:!0,highlightCallback:!0,highlightCircleSize:!0,interactionModel:!0,labelsDiv:!0,labelsKMB:!0,labelsKMG2:!0,labelsSeparateLines:!0,labelsShowZeroValues:!0,legend:!0,panEdgeFraction:!0,pixelsPerYLabel:!0,pointClickCallback:!0,pointSize:!0,rangeSelectorPlotFillColor:!0,rangeSelectorPlotFillGradientColor:!0,rangeSelectorPlotStrokeColor:!0,rangeSelectorBackgroundStrokeColor:!0,rangeSelectorBackgroundLineWidth:!0,rangeSelectorPlotLineWidth:!0,rangeSelectorForegroundStrokeColor:!0,rangeSelectorForegroundLineWidth:!0,rangeSelectorAlpha:!0,showLabelsOnHighlight:!0,showRoller:!0,strokeWidth:!0,underlayCallback:!0,unhighlightCallback:!0,zoomCallback:!0};function X(e,t){var n={};if(e)for(var r=1;r<e.length;r++)n[e[r]]=!0;var o=function(e){for(var t in e)if(e.hasOwnProperty(t)&&!Y[t])return!0;return!1};for(var i in t)if(t.hasOwnProperty(i))if("highlightSeriesOpts"==i||n[i]&&!t.series){if(o(t[i]))return!0}else if("series"==i||"axes"==i){var a=t[i];for(var s in a)if(a.hasOwnProperty(s)&&o(a[s]))return!0}else if(!Y[i])return!0;return!1}var K={DEFAULT:function(e,t,n,r,o,i,a){n.beginPath(),n.fillStyle=i,n.arc(r,o,a,0,2*Math.PI,!1),n.fill()}};function J(e){for(var t=0;t<e.length;t++){var n=e.charAt(t);if("\r"===n)return t+1<e.length&&"\n"===e.charAt(t+1)?"\r\n":n;if("\n"===n)return t+1<e.length&&"\r"===e.charAt(t+1)?"\n\r":n}return null}function Q(e,t){if(null===t||null===e)return!1;for(var n=e;n&&n!==t;)n=n.parentNode;return n===t}function ee(e,t){return t<0?1/Math.pow(e,-t):Math.pow(e,t)}var te=/^#([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})?$/,ne=/^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*([01](?:\.\d+)?))?\)$/;function re(e){var t,n,r,o,i=null;if(t=te.exec(e))n=parseInt(t[1],16),r=parseInt(t[2],16),o=parseInt(t[3],16),t[4]&&(i=parseInt(t[4],16));else{if(!(t=ne.exec(e)))return null;n=parseInt(t[1],10),r=parseInt(t[2],10),o=parseInt(t[3],10),t[4]&&(i=parseFloat(t[4]))}return null!==i?{r:n,g:r,b:o,a:i}:{r:n,g:r,b:o}}function oe(e){var t=re(e);if(t)return t;var n=document.createElement("div");n.style.backgroundColor=e,n.style.visibility="hidden",document.body.appendChild(n);var r=window.getComputedStyle(n,null).backgroundColor;return document.body.removeChild(n),re(r)}function ie(e){try{(e||document.createElement("canvas")).getContext("2d")}catch(t){return!1}return!0}function ae(e,t,n){var r=parseFloat(e);if(!isNaN(r))return r;if(/^ *$/.test(e))return null;if(/^ *nan *$/i.test(e))return NaN;var o="Unable to parse '"+e+"' as a number";return void 0!==n&&void 0!==t&&(o+=" on line "+(1+(t||0))+" ('"+n+"') of CSV."),console.error(o),null}var se=["k","M","G","T","P","E","Z","Y"],le=["m","\xb5","n","p","f","a","z","y"],ue=["Ki","Mi","Gi","Ti","Pi","Ei","Zi","Yi"],ce=["p-10","p-20","p-30","p-40","p-50","p-60","p-70","p-80"],fe=["K","M","G","T","P","E","Z","Y"],de=le;function pe(e,t){var n=t("sigFigs");if(null!==n)return E(e,n);if(0===e)return"0";var r=t("digitsAfterDecimal"),o=t("maxNumberWidth"),i=t("labelsKMB"),a=t("labelsKMG2"),s=Math.abs(e);if(i||a){var l,u,c,f=[],d=[];if(i&&(l=1e3,f=se,d=le),a&&(l=1024,f=ue,d=ce,i&&(f=fe,d=de)),s>=l){for(c=f.length;c>0;)if(u=ee(l,c),--c,s>=u)return s/u>=Math.pow(10,o)?e.toExponential(r):T(e/u,r)+f[c]}else if(s<1){for(c=0;c<d.length&&!(s*(u=ee(l,++c))>=1););return s*u<Math.pow(10,-r)?e.toExponential(r):T(e*u,r)+d[c-1]}}return s>=Math.pow(10,o)||s<Math.pow(10,-r)?e.toExponential(r):""+T(e,r)}function he(e,t,n){return pe.call(this,e,n)}var ge=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ve(e,t,n){var o=n("labelsUTC")?M:k,i=o.getFullYear(e),a=o.getMonth(e),s=o.getDate(e),l=o.getHours(e),u=o.getMinutes(e),c=o.getSeconds(e),f=o.getMilliseconds(e);if(t>=r.He.DECADAL)return""+i;if(t>=r.He.MONTHLY)return ge[a]+"&#160;"+i;if(0===3600*l+60*u+c+.001*f||t>=r.He.DAILY)return A(s)+"&#160;"+ge[a];if(t<r.He.SECONDLY){var d=""+f;return A(c)+"."+("000"+d).substring(d.length)}return t>r.He.MINUTELY?P(l,u,c,0):P(l,u,c,f)}function me(e,t){return R(e,t("labelsUTC"))}var ye=[],be=!1;function we(e){return"function"===typeof e&&e(),!0}function _e(e){if("undefined"!==typeof document){const t=function(){if(!be){be=!0,e.onDOMready=we,document.removeEventListener("DOMContentLoaded",t,!1),window.removeEventListener("load",t,!1);for(let e=0;e<ye.length;++e)ye[e]();ye=null}};e.onDOMready=function(n){if("complete"===document.readyState)return e.onDOMready=we,we(n);const r=function(e){return"function"===typeof e&&ye.push(e),!1};return e.onDOMready=r,document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1),"complete"===document.readyState?(t(),e.onDOMready=we,we(n)):r(n)}}}},95984:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return K}});var r=n(72247),o=function(e){this.dygraph_=e,this.points=[],this.setNames=[],this.annotations=[],this.yAxes_=null,this.xTicks_=null,this.yTicks_=null};o.prototype.addDataset=function(e,t){this.points.push(t),this.setNames.push(e)},o.prototype.getPlotArea=function(){return this.area_},o.prototype.computePlotArea=function(){var e={x:0,y:0};e.w=this.dygraph_.width_-e.x-this.dygraph_.getOption("rightGap"),e.h=this.dygraph_.height_;var t={chart_div:this.dygraph_.graphDiv,reserveSpaceLeft:function(t){var n={x:e.x,y:e.y,w:t,h:e.h};return e.x+=t,e.w-=t,n},reserveSpaceRight:function(t){var n={x:e.x+e.w-t,y:e.y,w:t,h:e.h};return e.w-=t,n},reserveSpaceTop:function(t){var n={x:e.x,y:e.y,w:e.w,h:t};return e.y+=t,e.h-=t,n},reserveSpaceBottom:function(t){var n={x:e.x,y:e.y+e.h-t,w:e.w,h:t};return e.h-=t,n},chartRect:function(){return{x:e.x,y:e.y,w:e.w,h:e.h}}};this.dygraph_.cascadeEvents_("layout",t),this.area_=e},o.prototype.setAnnotations=function(e){this.annotations=[];for(var t=this.dygraph_.getOption("xValueParser")||function(e){return e},n=0;n<e.length;n++){var o={};if(!e[n].xval&&void 0===e[n].x)return void console.error("Annotations must have an 'x' property");if(e[n].icon&&(!e[n].hasOwnProperty("width")||!e[n].hasOwnProperty("height")))return void console.error("Must set width and height when setting annotation.icon property");r.update(o,e[n]),o.xval||(o.xval=t(o.x)),this.annotations.push(o)}},o.prototype.setXTicks=function(e){this.xTicks_=e},o.prototype.setYAxes=function(e){this.yAxes_=e},o.prototype.evaluate=function(){this._xAxis={},this._evaluateLimits(),this._evaluateLineCharts(),this._evaluateLineTicks(),this._evaluateAnnotations()},o.prototype._evaluateLimits=function(){var e=this.dygraph_.xAxisRange();this._xAxis.minval=e[0],this._xAxis.maxval=e[1];var t=e[1]-e[0];this._xAxis.scale=0!==t?1/t:1,this.dygraph_.getOptionForAxis("logscale","x")&&(this._xAxis.xlogrange=r.log10(this._xAxis.maxval)-r.log10(this._xAxis.minval),this._xAxis.xlogscale=0!==this._xAxis.xlogrange?1/this._xAxis.xlogrange:1);for(var n=0;n<this.yAxes_.length;n++){var o=this.yAxes_[n];o.minyval=o.computedValueRange[0],o.maxyval=o.computedValueRange[1],o.yrange=o.maxyval-o.minyval,o.yscale=0!==o.yrange?1/o.yrange:1,(this.dygraph_.getOption("logscale")||o.logscale)&&(o.ylogrange=r.log10(o.maxyval)-r.log10(o.minyval),o.ylogscale=0!==o.ylogrange?1/o.ylogrange:1,isFinite(o.ylogrange)&&!isNaN(o.ylogrange)||console.error("axis "+n+" of graph at "+o.g+" can't be displayed in log scale for range ["+o.minyval+" - "+o.maxyval+"]"))}},o.calcXNormal_=function(e,t,n){return n?(r.log10(e)-r.log10(t.minval))*t.xlogscale:(e-t.minval)*t.scale},o.calcYNormal_=function(e,t,n){if(n){var o=1-(r.log10(t)-r.log10(e.minyval))*e.ylogscale;return isFinite(o)?o:NaN}return 1-(t-e.minyval)*e.yscale},o.prototype._evaluateLineCharts=function(){for(var e=this.dygraph_.getOption("stackedGraph"),t=this.dygraph_.getOptionForAxis("logscale","x"),n=0;n<this.points.length;n++){for(var r=this.points[n],i=this.setNames[n],a=this.dygraph_.getOption("connectSeparatedPoints",i),s=this.dygraph_.axisPropertiesForSeries(i),l=this.dygraph_.attributes_.getForSeries("logscale",i),u=0;u<r.length;u++){var c=r[u];c.x=o.calcXNormal_(c.xval,this._xAxis,t);var f=c.yval;e&&(c.y_stacked=o.calcYNormal_(s,c.yval_stacked,l),null===f||isNaN(f)||(f=c.yval_stacked)),null===f&&(f=NaN,a||(c.yval=NaN)),c.y=o.calcYNormal_(s,f,l)}this.dygraph_.dataHandler_.onLineEvaluated(r,s,l)}},o.prototype._evaluateLineTicks=function(){var e,t,n,r,o,i;for(this.xticks=[],e=0;e<this.xTicks_.length;e++)n=(t=this.xTicks_[e]).label,o=(i=!("label_v"in t))?t.v:t.label_v,(r=this.dygraph_.toPercentXCoord(o))>=0&&r<1&&this.xticks.push({pos:r,label:n,has_tick:i});for(this.yticks=[],e=0;e<this.yAxes_.length;e++)for(var a=this.yAxes_[e],s=0;s<a.ticks.length;s++)n=(t=a.ticks[s]).label,o=(i=!("label_v"in t))?t.v:t.label_v,(r=this.dygraph_.toPercentYCoord(o,e))>0&&r<=1&&this.yticks.push({axis:e,pos:r,label:n,has_tick:i})},o.prototype._evaluateAnnotations=function(){var e,t={};for(e=0;e<this.annotations.length;e++){var n=this.annotations[e];t[n.xval+","+n.series]=n}if(this.annotated_points=[],this.annotations&&this.annotations.length)for(var r=0;r<this.points.length;r++){var o=this.points[r];for(e=0;e<o.length;e++){var i=o[e],a=i.xval+","+i.name;a in t&&(i.annotation=t[a],this.annotated_points.push(i),delete t[a])}}},o.prototype.removeAllDatasets=function(){delete this.points,delete this.setNames,delete this.setPointsLengths,delete this.setPointsOffsets,this.points=[],this.setNames=[],this.setPointsLengths=[],this.setPointsOffsets=[]};var i=o,a=function(e,t,n,o){if(this.dygraph_=e,this.layout=o,this.element=t,this.elementContext=n,this.height=e.height_,this.width=e.width_,!r.isCanvasSupported(this.element))throw"Canvas is not supported.";this.area=o.getPlotArea();var i=this.dygraph_.canvas_ctx_;i.beginPath(),i.rect(this.area.x,this.area.y,this.area.w,this.area.h),i.clip(),(i=this.dygraph_.hidden_ctx_).beginPath(),i.rect(this.area.x,this.area.y,this.area.w,this.area.h),i.clip()};a.prototype.clear=function(){this.elementContext.clearRect(0,0,this.width,this.height)},a.prototype.render=function(){this._updatePoints(),this._renderLineChart()},a._getIteratorPredicate=function(e){return e?a._predicateThatSkipsEmptyPoints:null},a._predicateThatSkipsEmptyPoints=function(e,t){return null!==e[t].yval},a._drawStyledLine=function(e,t,n,o,i,s,l){var u=e.dygraph,c=u.getBooleanOption("stepPlot",e.setName);r.isArrayLike(o)||(o=null);var f=u.getBooleanOption("drawGapEdgePoints",e.setName),d=e.points,p=e.setName,h=r.createIterator(d,0,d.length,a._getIteratorPredicate(u.getBooleanOption("connectSeparatedPoints",p))),g=o&&o.length>=2,v=e.drawingContext;v.save(),g&&v.setLineDash&&v.setLineDash(o);var m=a._drawSeries(e,h,n,l,i,f,c,t);a._drawPointsOnLine(e,m,s,t,l),g&&v.setLineDash&&v.setLineDash([]),v.restore()},a._drawSeries=function(e,t,n,r,o,i,a,s){var l,u,c=null,f=null,d=null,p=[],h=!0,g=e.drawingContext;g.beginPath(),g.strokeStyle=s,g.lineWidth=n;for(var v=t.array_,m=t.end_,y=t.predicate_,b=t.start_;b<m;b++){if(u=v[b],y){for(;b<m&&!y(v,b);)b++;if(b==m)break;u=v[b]}if(null===u.canvasy||u.canvasy!=u.canvasy)a&&null!==c&&(g.moveTo(c,f),g.lineTo(u.canvasx,f)),c=f=null;else{if(l=!1,i||null===c){t.nextIdx_=b,t.next();var w=null===(d=t.hasNext?t.peek.canvasy:null)||d!=d;l=null===c&&w,i&&(!h&&null===c||t.hasNext&&w)&&(l=!0)}null!==c?n&&(a&&(g.moveTo(c,f),g.lineTo(u.canvasx,f)),g.lineTo(u.canvasx,u.canvasy)):g.moveTo(u.canvasx,u.canvasy),(o||l)&&p.push([u.canvasx,u.canvasy,u.idx]),c=u.canvasx,f=u.canvasy}h=!1}return g.stroke(),p},a._drawPointsOnLine=function(e,t,n,r,o){for(var i=e.drawingContext,a=0;a<t.length;a++){var s=t[a];i.save(),n.call(e.dygraph,e.dygraph,e.setName,i,s[0],s[1],r,o,s[2]),i.restore()}},a.prototype._updatePoints=function(){for(var e=this.layout.points,t=e.length;t--;)for(var n=e[t],r=n.length;r--;){var o=n[r];o.canvasx=this.area.w*o.x+this.area.x,o.canvasy=this.area.h*o.y+this.area.y}},a.prototype._renderLineChart=function(e,t){var n,o,i=t||this.elementContext,a=this.layout.points,s=this.layout.setNames;this.colors=this.dygraph_.colorsMap_;var l=this.dygraph_.getOption("plotter"),u=l;r.isArrayLike(u)||(u=[u]);var c={};for(n=0;n<s.length;n++){o=s[n];var f=this.dygraph_.getOption("plotter",o);f!=l&&(c[o]=f)}for(n=0;n<u.length;n++)for(var d=u[n],p=n==u.length-1,h=0;h<a.length;h++)if(o=s[h],!e||o==e){var g=a[h],v=d;if(o in c){if(!p)continue;v=c[o]}var m=this.colors[o],y=this.dygraph_.getOption("strokeWidth",o);i.save(),i.strokeStyle=m,i.lineWidth=y,v({points:g,setName:o,drawingContext:i,color:m,strokeWidth:y,dygraph:this.dygraph_,axis:this.dygraph_.axisPropertiesForSeries(o),plotArea:this.area,seriesIndex:h,seriesCount:a.length,singleSeriesName:e,allSeriesPoints:a}),i.restore()}},a._Plotters={linePlotter:function(e){a._linePlotter(e)},fillPlotter:function(e){a._fillPlotter(e)},errorPlotter:function(e){a._errorPlotter(e)}},a._linePlotter=function(e){var t=e.dygraph,n=e.setName,o=e.strokeWidth,i=t.getNumericOption("strokeBorderWidth",n),s=t.getOption("drawPointCallback",n)||r.Circles.DEFAULT,l=t.getOption("strokePattern",n),u=t.getBooleanOption("drawPoints",n),c=t.getNumericOption("pointSize",n);i&&o&&a._drawStyledLine(e,t.getOption("strokeBorderColor",n),o+2*i,l,u,s,c),a._drawStyledLine(e,e.color,o,l,u,s,c)},a._errorPlotter=function(e){var t=e.dygraph,n=e.setName;if(t.getBooleanOption("errorBars")||t.getBooleanOption("customBars")){t.getBooleanOption("fillGraph",n)&&console.warn("Can't use fillGraph option with customBars or errorBars option");var o,i=e.drawingContext,s=e.color,l=t.getNumericOption("fillAlpha",n),u=t.getBooleanOption("stepPlot",n),c=e.points,f=r.createIterator(c,0,c.length,a._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",n))),d=NaN,p=NaN,h=[-1,-1],g=r.toRGB_(s),v="rgba("+g.r+","+g.g+","+g.b+","+l+")";i.fillStyle=v,i.beginPath();for(var m=function(e){return null===e||void 0===e||isNaN(e)};f.hasNext;){var y=f.next();!u&&m(y.y)||u&&!isNaN(p)&&m(p)?d=NaN:(o=[y.y_bottom,y.y_top],u&&(p=y.y),isNaN(o[0])&&(o[0]=y.y),isNaN(o[1])&&(o[1]=y.y),o[0]=e.plotArea.h*o[0]+e.plotArea.y,o[1]=e.plotArea.h*o[1]+e.plotArea.y,isNaN(d)||(u?(i.moveTo(d,h[0]),i.lineTo(y.canvasx,h[0]),i.lineTo(y.canvasx,h[1])):(i.moveTo(d,h[0]),i.lineTo(y.canvasx,o[0]),i.lineTo(y.canvasx,o[1])),i.lineTo(d,h[1]),i.closePath()),h=o,d=y.canvasx)}i.fill()}},a._fastCanvasProxy=function(e){var t=[],n=null,r=null,o=0,i=function(n){!function(e){if(!(t.length<=1)){for(var n=t.length-1;n>0;n--)if(2==(s=t[n])[0]){var r=t[n-1];r[1]==s[1]&&r[2]==s[2]&&t.splice(n,1)}for(n=0;n<t.length-1;)2==(s=t[n])[0]&&2==t[n+1][0]?t.splice(n,1):n++;if(t.length>2&&!e){var o=0;2==t[0][0]&&o++;var i=null,a=null;for(n=o;n<t.length;n++){var s;if(1==(s=t[n])[0])if(null===i&&null===a)i=n,a=n;else{var l=s[2];l<t[i][2]?i=n:l>t[a][2]&&(a=n)}}var u=t[i],c=t[a];t.splice(o,t.length-o),i<a?(t.push(u),t.push(c)):i>a?(t.push(c),t.push(u)):t.push(u)}}}(n);for(var i=0,a=t.length;i<a;i++){var s=t[i];1==s[0]?e.lineTo(s[1],s[2]):2==s[0]&&e.moveTo(s[1],s[2])}t.length&&(r=t[t.length-1][1]),o+=t.length,t=[]},a=function(e,o,a){var s=Math.round(o);null!==n&&s==n||(i(n-r>1||s-n>1),n=s);t.push([e,o,a])};return{moveTo:function(e,t){a(2,e,t)},lineTo:function(e,t){a(1,e,t)},stroke:function(){i(!0),e.stroke()},fill:function(){i(!0),e.fill()},beginPath:function(){i(!0),e.beginPath()},closePath:function(){i(!0),e.closePath()},_count:function(){return o}}},a._fillPlotter=function(e){if(!e.singleSeriesName&&0===e.seriesIndex){for(var t=e.dygraph,n=t.getLabels().slice(1),o=n.length;o>=0;o--)t.visibility()[o]||n.splice(o,1);var i=function(){for(var e=0;e<n.length;e++)if(t.getBooleanOption("fillGraph",n[e]))return!0;return!1}();if(i)for(var s,l,u=e.plotArea,c=e.allSeriesPoints,f=c.length,d=t.getBooleanOption("stackedGraph"),p=t.getColors(),h={},g=function(e,t,n,r){if(e.lineTo(t,n),d)for(var o=r.length-1;o>=0;o--){var i=r[o];e.lineTo(i[0],i[1])}},v=f-1;v>=0;v--){var m=e.drawingContext,y=n[v];if(t.getBooleanOption("fillGraph",y)){var b=t.getNumericOption("fillAlpha",y),w=t.getBooleanOption("stepPlot",y),_=p[v],x=t.axisPropertiesForSeries(y),S=1+x.minyval*x.yscale;S<0?S=0:S>1&&(S=1),S=u.h*S+u.y;var O,C=c[v],E=r.createIterator(C,0,C.length,a._getIteratorPredicate(t.getBooleanOption("connectSeparatedPoints",y))),A=NaN,k=[-1,-1],M=r.toRGB_(_),P="rgba("+M.r+","+M.g+","+M.b+","+b+")";m.fillStyle=P,m.beginPath();var R,T=!0;(C.length>2*t.width_||K.FORCE_FAST_PROXY)&&(m=a._fastCanvasProxy(m));for(var I,B=[];E.hasNext;)if(I=E.next(),r.isOK(I.y)||w){if(d){if(!T&&R==I.xval)continue;var j;T=!1,R=I.xval,j=void 0===(s=h[I.canvasx])?S:l?s[0]:s,O=[I.canvasy,j],w?-1===k[0]?h[I.canvasx]=[I.canvasy,S]:h[I.canvasx]=[I.canvasy,k[0]]:h[I.canvasx]=I.canvasy}else O=isNaN(I.canvasy)&&w?[u.y+u.h,S]:[I.canvasy,S];isNaN(A)?(m.moveTo(I.canvasx,O[1]),m.lineTo(I.canvasx,O[0])):(w?(m.lineTo(I.canvasx,k[0]),m.lineTo(I.canvasx,O[0])):m.lineTo(I.canvasx,O[0]),d&&(B.push([A,k[1]]),l&&s?B.push([I.canvasx,s[1]]):B.push([I.canvasx,O[1]]))),k=O,A=I.canvasx}else g(m,A,k[1],B),B=[],A=NaN,null===I.y_stacked||isNaN(I.y_stacked)||(h[I.canvasx]=u.h*I.y_stacked+u.y);l=w,O&&I&&(g(m,I.canvasx,O[1],B),B=[]),m.fill()}}}};var s=a,l=n(74321),u={maybeTreatMouseOpAsClick:function(e,t,n){n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=Math.abs(n.dragEndX-n.dragStartX),i=Math.abs(n.dragEndY-n.dragStartY);o<2&&i<2&&void 0!==t.lastx_&&null!==t.lastx_&&u.treatMouseOpAsClick(t,e,n),n.regionWidth=o,n.regionHeight=i},startPan:function(e,t,n){var o,i;n.isPanning=!0;var a=t.xAxisRange();if(t.getOptionForAxis("logscale","x")?(n.initialLeftmostDate=r.log10(a[0]),n.dateRange=r.log10(a[1])-r.log10(a[0])):(n.initialLeftmostDate=a[0],n.dateRange=a[1]-a[0]),n.xUnitsPerPixel=n.dateRange/(t.plotter_.area.w-1),t.getNumericOption("panEdgeFraction")){var s=t.width_*t.getNumericOption("panEdgeFraction"),l=t.xAxisExtremes(),u=t.toDomXCoord(l[0])-s,c=t.toDomXCoord(l[1])+s,f=t.toDataXCoord(u),d=t.toDataXCoord(c);n.boundedDates=[f,d];var p=[],h=t.height_*t.getNumericOption("panEdgeFraction");for(o=0;o<t.axes_.length;o++){var g=(i=t.axes_[o]).extremeRange,v=t.toDomYCoord(g[0],o)+h,m=t.toDomYCoord(g[1],o)-h,y=t.toDataYCoord(v,o),b=t.toDataYCoord(m,o);p[o]=[y,b]}n.boundedValues=p}else n.boundedDates=null,n.boundedValues=null;for(n.is2DPan=!1,n.axes=[],o=0;o<t.axes_.length;o++){i=t.axes_[o];var w={},_=t.yAxisRange(o);t.attributes_.getForAxis("logscale",o)?(w.initialTopValue=r.log10(_[1]),w.dragValueRange=r.log10(_[1])-r.log10(_[0])):(w.initialTopValue=_[1],w.dragValueRange=_[1]-_[0]),w.unitsPerPixel=w.dragValueRange/(t.plotter_.area.h-1),n.axes.push(w),i.valueRange&&(n.is2DPan=!0)}},movePan:function(e,t,n){n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=n.initialLeftmostDate-(n.dragEndX-n.dragStartX)*n.xUnitsPerPixel;n.boundedDates&&(o=Math.max(o,n.boundedDates[0]));var i=o+n.dateRange;if(n.boundedDates&&i>n.boundedDates[1]&&(i=(o-=i-n.boundedDates[1])+n.dateRange),t.getOptionForAxis("logscale","x")?t.dateWindow_=[Math.pow(r.LOG_SCALE,o),Math.pow(r.LOG_SCALE,i)]:t.dateWindow_=[o,i],n.is2DPan)for(var a=n.dragEndY-n.dragStartY,s=0;s<t.axes_.length;s++){var l=t.axes_[s],u=n.axes[s],c=a*u.unitsPerPixel,f=n.boundedValues?n.boundedValues[s]:null,d=u.initialTopValue+c;f&&(d=Math.min(d,f[1]));var p=d-u.dragValueRange;f&&p<f[0]&&(p=(d-=p-f[0])-u.dragValueRange),t.attributes_.getForAxis("logscale",s)?l.valueRange=[Math.pow(r.LOG_SCALE,p),Math.pow(r.LOG_SCALE,d)]:l.valueRange=[p,d]}t.drawGraph_(!1)}};u.endPan=u.maybeTreatMouseOpAsClick,u.startZoom=function(e,t,n){n.isZooming=!0,n.zoomMoved=!1},u.moveZoom=function(e,t,n){n.zoomMoved=!0,n.dragEndX=r.dragGetX_(e,n),n.dragEndY=r.dragGetY_(e,n);var o=Math.abs(n.dragStartX-n.dragEndX),i=Math.abs(n.dragStartY-n.dragEndY);n.dragDirection=o<i/2?r.VERTICAL:r.HORIZONTAL,t.drawZoomRect_(n.dragDirection,n.dragStartX,n.dragEndX,n.dragStartY,n.dragEndY,n.prevDragDirection,n.prevEndX,n.prevEndY),n.prevEndX=n.dragEndX,n.prevEndY=n.dragEndY,n.prevDragDirection=n.dragDirection},u.treatMouseOpAsClick=function(e,t,n){for(var r=e.getFunctionOption("clickCallback"),o=e.getFunctionOption("pointClickCallback"),i=null,a=-1,s=Number.MAX_VALUE,l=0;l<e.selPoints_.length;l++){var u=e.selPoints_[l],c=Math.pow(u.canvasx-n.dragEndX,2)+Math.pow(u.canvasy-n.dragEndY,2);!isNaN(c)&&(-1==a||c<s)&&(s=c,a=l)}var f=e.getNumericOption("highlightCircleSize")+2;if(s<=f*f&&(i=e.selPoints_[a]),i){var d={cancelable:!0,point:i,canvasx:n.dragEndX,canvasy:n.dragEndY};if(e.cascadeEvents_("pointClick",d))return;o&&o.call(e,t,i)}d={cancelable:!0,xval:e.lastx_,pts:e.selPoints_,canvasx:n.dragEndX,canvasy:n.dragEndY};e.cascadeEvents_("click",d)||r&&r.call(e,t,e.lastx_,e.selPoints_)},u.endZoom=function(e,t,n){t.clearZoomRect_(),n.isZooming=!1,u.maybeTreatMouseOpAsClick(e,t,n);var o=t.getArea();if(n.regionWidth>=10&&n.dragDirection==r.HORIZONTAL){var i=Math.min(n.dragStartX,n.dragEndX),a=Math.max(n.dragStartX,n.dragEndX);(i=Math.max(i,o.x))<(a=Math.min(a,o.x+o.w))&&t.doZoomX_(i,a),n.cancelNextDblclick=!0}else if(n.regionHeight>=10&&n.dragDirection==r.VERTICAL){var s=Math.min(n.dragStartY,n.dragEndY),l=Math.max(n.dragStartY,n.dragEndY);(s=Math.max(s,o.y))<(l=Math.min(l,o.y+o.h))&&t.doZoomY_(s,l),n.cancelNextDblclick=!0}n.dragStartX=null,n.dragStartY=null},u.startTouch=function(e,t,n){e.preventDefault(),e.touches.length>1&&(n.startTimeForDoubleTapMs=null);for(var r=[],o=0;o<e.touches.length;o++){var i=e.touches[o],a=i.target.getBoundingClientRect();r.push({pageX:i.pageX,pageY:i.pageY,dataX:t.toDataXCoord(i.clientX-a.left),dataY:t.toDataYCoord(i.clientY-a.top)})}if(n.initialTouches=r,1==r.length)n.initialPinchCenter=r[0],n.touchDirections={x:!0,y:!0};else if(r.length>=2){n.initialPinchCenter={pageX:.5*(r[0].pageX+r[1].pageX),pageY:.5*(r[0].pageY+r[1].pageY),dataX:.5*(r[0].dataX+r[1].dataX),dataY:.5*(r[0].dataY+r[1].dataY)};var s=180/Math.PI*Math.atan2(n.initialPinchCenter.pageY-r[0].pageY,r[0].pageX-n.initialPinchCenter.pageX);(s=Math.abs(s))>90&&(s=90-s),n.touchDirections={x:s<67.5,y:s>22.5}}n.initialRange={x:t.xAxisRange(),y:t.yAxisRange()}},u.moveTouch=function(e,t,n){n.startTimeForDoubleTapMs=null;var r,o=[];for(r=0;r<e.touches.length;r++){var i=e.touches[r];o.push({pageX:i.pageX,pageY:i.pageY})}var a,s,l,u=n.initialTouches,c=n.initialPinchCenter,f={pageX:(a=1==o.length?o[0]:{pageX:.5*(o[0].pageX+o[1].pageX),pageY:.5*(o[0].pageY+o[1].pageY)}).pageX-c.pageX,pageY:a.pageY-c.pageY},d=n.initialRange.x[1]-n.initialRange.x[0],p=n.initialRange.y[0]-n.initialRange.y[1];if(f.dataX=f.pageX/t.plotter_.area.w*d,f.dataY=f.pageY/t.plotter_.area.h*p,1==o.length)s=1,l=1;else if(o.length>=2){var h=u[1].pageX-c.pageX;s=(o[1].pageX-a.pageX)/h;var g=u[1].pageY-c.pageY;l=(o[1].pageY-a.pageY)/g}s=Math.min(8,Math.max(.125,s)),l=Math.min(8,Math.max(.125,l));var v=!1;if(n.touchDirections.x){var m=c.dataX-f.dataX/s;t.dateWindow_=[m+(n.initialRange.x[0]-c.dataX)/s,m+(n.initialRange.x[1]-c.dataX)/s],v=!0}if(n.touchDirections.y)for(r=0;r<1;r++){var y=t.axes_[r];if(t.attributes_.getForAxis("logscale",r));else{m=c.dataY-f.dataY/l;y.valueRange=[m+(n.initialRange.y[0]-c.dataY)/l,m+(n.initialRange.y[1]-c.dataY)/l],v=!0}}if(t.drawGraph_(!1),v&&o.length>1&&t.getFunctionOption("zoomCallback")){var b=t.xAxisRange();t.getFunctionOption("zoomCallback").call(t,b[0],b[1],t.yAxisRanges())}},u.endTouch=function(e,t,n){if(0!==e.touches.length)u.startTouch(e,t,n);else if(1==e.changedTouches.length){var r=(new Date).getTime(),o=e.changedTouches[0];n.startTimeForDoubleTapMs&&r-n.startTimeForDoubleTapMs<500&&n.doubleTapX&&Math.abs(n.doubleTapX-o.screenX)<50&&n.doubleTapY&&Math.abs(n.doubleTapY-o.screenY)<50?t.resetZoom():(n.startTimeForDoubleTapMs=r,n.doubleTapX=o.screenX,n.doubleTapY=o.screenY)}};var c=function(e,t,n){return e<t?t-e:e>n?e-n:0};u.defaultModel={mousedown:function(e,t,n){if(!e.button||2!=e.button){n.initializeMouseDown(e,t,n),e.altKey||e.shiftKey?u.startPan(e,t,n):u.startZoom(e,t,n);var o=function(e){if(n.isZooming){var o=function(e,t){var n=r.findPos(t.canvas_),o={left:n.x,right:n.x+t.canvas_.offsetWidth,top:n.y,bottom:n.y+t.canvas_.offsetHeight},i={x:r.pageX(e),y:r.pageY(e)},a=c(i.x,o.left,o.right),s=c(i.y,o.top,o.bottom);return Math.max(a,s)}(e,t);o<100?u.moveZoom(e,t,n):null!==n.dragEndX&&(n.dragEndX=null,n.dragEndY=null,t.clearZoomRect_())}else n.isPanning&&u.movePan(e,t,n)},i=function(e){n.isZooming?null!==n.dragEndX?u.endZoom(e,t,n):u.maybeTreatMouseOpAsClick(e,t,n):n.isPanning&&u.endPan(e,t,n),r.removeEvent(document,"mousemove",o),r.removeEvent(document,"mouseup",i),n.destroy()};t.addAndTrackEvent(document,"mousemove",o),t.addAndTrackEvent(document,"mouseup",i)}},willDestroyContextMyself:!0,touchstart:function(e,t,n){u.startTouch(e,t,n)},touchmove:function(e,t,n){u.moveTouch(e,t,n)},touchend:function(e,t,n){u.endTouch(e,t,n)},dblclick:function(e,t,n){if(n.cancelNextDblclick)n.cancelNextDblclick=!1;else{var r={canvasx:n.dragEndX,canvasy:n.dragEndY,cancelable:!0};t.cascadeEvents_("dblclick",r)||e.altKey||e.shiftKey||t.resetZoom()}}},u.nonInteractiveModel_={mousedown:function(e,t,n){n.initializeMouseDown(e,t,n)},mouseup:u.maybeTreatMouseOpAsClick},u.dragIsPanInteractionModel={mousedown:function(e,t,n){n.initializeMouseDown(e,t,n),u.startPan(e,t,n)},mousemove:function(e,t,n){n.isPanning&&u.movePan(e,t,n)},mouseup:function(e,t,n){n.isPanning&&u.endPan(e,t,n)}};var f=u,d={highlightCircleSize:3,highlightSeriesOpts:null,highlightSeriesBackgroundAlpha:.5,highlightSeriesBackgroundColor:"rgb(255, 255, 255)",labelsSeparateLines:!1,labelsShowZeroValues:!0,labelsKMB:!1,labelsKMG2:!1,showLabelsOnHighlight:!0,digitsAfterDecimal:2,maxNumberWidth:6,sigFigs:null,strokeWidth:1,strokeBorderWidth:0,strokeBorderColor:"white",axisTickSize:3,axisLabelFontSize:14,rightGap:5,showRoller:!1,xValueParser:void 0,delimiter:",",sigma:2,errorBars:!1,fractions:!1,wilsonInterval:!0,customBars:!1,fillGraph:!1,fillAlpha:.15,connectSeparatedPoints:!1,stackedGraph:!1,stackedGraphNaNFill:"all",hideOverlayOnMouseOut:!0,resizable:"no",legend:"onmouseover",legendFollowOffsetX:50,legendFollowOffsetY:-50,stepPlot:!1,xRangePad:0,yRangePad:null,drawAxesAtZero:!1,titleHeight:28,xLabelHeight:18,yLabelWidth:18,axisLineColor:"black",axisLineWidth:.3,gridLineWidth:.3,axisLabelWidth:50,gridLineColor:"rgb(128,128,128)",interactionModel:f.defaultModel,animatedZooms:!1,animateBackgroundFade:!0,showRangeSelector:!1,rangeSelectorHeight:40,rangeSelectorPlotStrokeColor:"#808FAB",rangeSelectorPlotFillGradientColor:"white",rangeSelectorPlotFillColor:"#A7B1C4",rangeSelectorBackgroundStrokeColor:"gray",rangeSelectorBackgroundLineWidth:1,rangeSelectorPlotLineWidth:1.5,rangeSelectorForegroundStrokeColor:"black",rangeSelectorForegroundLineWidth:1,rangeSelectorAlpha:.6,showInRangeSelector:null,plotter:[s._fillPlotter,s._errorPlotter,s._linePlotter],plugins:[],axes:{x:{pixelsPerLabel:70,axisLabelWidth:60,axisLabelFormatter:r.dateAxisLabelFormatter,valueFormatter:r.dateValueFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:l.cc},y:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:r.numberValueFormatter,axisLabelFormatter:r.numberAxisLabelFormatter,drawGrid:!0,drawAxis:!0,independentTicks:!0,ticker:l.Dv},y2:{axisLabelWidth:50,pixelsPerLabel:30,valueFormatter:r.numberValueFormatter,axisLabelFormatter:r.numberAxisLabelFormatter,drawAxis:!0,drawGrid:!1,independentTicks:!1,ticker:l.Dv}}},p=function(e){this.dygraph_=e,this.yAxes_=[],this.xAxis_={},this.series_={},this.global_=this.dygraph_.attrs_,this.user_=this.dygraph_.user_attrs_||{},this.labels_=[],this.highlightSeries_=this.get("highlightSeriesOpts")||{},this.reparseSeries()};p.AXIS_STRING_MAPPINGS_={y:0,Y:0,y1:0,Y1:0,y2:1,Y2:1},p.axisToIndex_=function(e){if("string"==typeof e){if(p.AXIS_STRING_MAPPINGS_.hasOwnProperty(e))return p.AXIS_STRING_MAPPINGS_[e];throw"Unknown axis : "+e}if("number"==typeof e){if(0===e||1===e)return e;throw"Dygraphs only supports two y-axes, indexed from 0-1."}if(e)throw"Unknown axis : "+e;return 0},p.prototype.reparseSeries=function(){var e=this.get("labels");if(e){this.labels_=e.slice(1),this.yAxes_=[{series:[],options:{}}],this.xAxis_={options:{}},this.series_={};for(var t=this.user_.series||{},n=0;n<this.labels_.length;n++){var o=this.labels_[n],i=t[o]||{},a=p.axisToIndex_(i.axis);this.series_[o]={idx:n,yAxis:a,options:i},this.yAxes_[a]?this.yAxes_[a].series.push(o):this.yAxes_[a]={series:[o],options:{}}}var s=this.user_.axes||{};r.update(this.yAxes_[0].options,s.y||{}),this.yAxes_.length>1&&r.update(this.yAxes_[1].options,s.y2||{}),r.update(this.xAxis_.options,s.x||{})}},p.prototype.get=function(e){var t=this.getGlobalUser_(e);return null!==t?t:this.getGlobalDefault_(e)},p.prototype.getGlobalUser_=function(e){return this.user_.hasOwnProperty(e)?this.user_[e]:null},p.prototype.getGlobalDefault_=function(e){return this.global_.hasOwnProperty(e)?this.global_[e]:d.hasOwnProperty(e)?d[e]:null},p.prototype.getForAxis=function(e,t){var n,r;if("number"==typeof t)r=0===(n=t)?"y":"y2";else{if("y1"==t&&(t="y"),"y"==t)n=0;else if("y2"==t)n=1;else{if("x"!=t)throw"Unknown axis "+t;n=-1}r=t}var o=-1==n?this.xAxis_:this.yAxes_[n];if(o){var i=o.options;if(i.hasOwnProperty(e))return i[e]}if("x"!==t||"logscale"!==e){var a=this.getGlobalUser_(e);if(null!==a)return a}var s=d.axes[r];return s.hasOwnProperty(e)?s[e]:this.getGlobalDefault_(e)},p.prototype.getForSeries=function(e,t){if(t===this.dygraph_.getHighlightSeries()&&this.highlightSeries_.hasOwnProperty(e))return this.highlightSeries_[e];if(!this.series_.hasOwnProperty(t))throw"Unknown series: "+t;var n=this.series_[t],r=n.options;return r.hasOwnProperty(e)?r[e]:this.getForAxis(e,n.yAxis)},p.prototype.numAxes=function(){return this.yAxes_.length},p.prototype.axisForSeries=function(e){return this.series_[e].yAxis},p.prototype.axisOptions=function(e){return this.yAxes_[e].options},p.prototype.seriesForAxis=function(e){return this.yAxes_[e].series},p.prototype.seriesNames=function(){return this.labels_};var h=p;function g(){this.tarps=[]}g.prototype.cover=function(){for(var e=document.getElementsByTagName("iframe"),t=0;t<e.length;t++){var n=e[t],o=r.findPos(n),i=o.x,a=o.y,s=n.offsetWidth,l=n.offsetHeight,u=document.createElement("div");u.style.position="absolute",u.style.left=i+"px",u.style.top=a+"px",u.style.width=s+"px",u.style.height=l+"px",u.style.zIndex=999,document.body.appendChild(u),this.tarps.push(u)}},g.prototype.uncover=function(){for(var e=0;e<this.tarps.length;e++)this.tarps[e].parentNode.removeChild(this.tarps[e]);this.tarps=[]};var v=g,m=function(){},y=m;y.X=0,y.Y=1,y.EXTRAS=2,y.prototype.extractSeries=function(e,t,n){},y.prototype.seriesToPoints=function(e,t,n){for(var r=[],o=0;o<e.length;++o){var i=e[o],a=i[1],s=null===a?null:y.parseFloat(a),l={x:NaN,y:NaN,xval:y.parseFloat(i[0]),yval:s,name:t,idx:o+n,canvasx:NaN,canvasy:NaN};r.push(l)}return this.onPointsCreated_(e,r),r},y.prototype.onPointsCreated_=function(e,t){},y.prototype.rollingAverage=function(e,t,n,r){},y.prototype.getExtremeYValues=function(e,t,n){},y.prototype.onLineEvaluated=function(e,t,n){},y.parseFloat=function(e){return null===e?NaN:e};var b=m,w=function(){};(w.prototype=new b).extractSeries=function(e,t,n){var r=[];const o=n.get("labels")[t],i=n.getForSeries("logscale",o);for(var a=0;a<e.length;a++){var s=e[a][0],l=e[a][t];i&&l<=0&&(l=null),r.push([s,l])}return r},w.prototype.rollingAverage=function(e,t,n,r){var o,i,a,s,l=[];if(1==(t=Math.min(t,e.length)))return e;for(r=0;r<e.length;r++){for(a=0,s=0,o=Math.max(0,r-t+1);o<r+1;o++)null===(i=e[o][1])||isNaN(i)||(s++,a+=e[o][1]);l[r]=s?[e[r][0],a/s]:[e[r][0],null]}return l},w.prototype.getExtremeYValues=function(e,t,n){for(var r,o=null,i=null,a=e.length-1,s=0;s<=a;s++)null===(r=e[s][1])||isNaN(r)||((null===i||r>i)&&(i=r),(null===o||r<o)&&(o=r));return[o,i]};var _=w,x=function(){b.call(this)};(x.prototype=new b).extractSeries=function(e,t,n){},x.prototype.rollingAverage=function(e,t,n,r){},x.prototype.onPointsCreated_=function(e,t){for(var n=0;n<e.length;++n){var r=e[n],o=t[n];o.y_top=NaN,o.y_bottom=NaN,o.yval_minus=b.parseFloat(r[2][0]),o.yval_plus=b.parseFloat(r[2][1])}},x.prototype.getExtremeYValues=function(e,t,n){for(var r,o=null,i=null,a=e.length-1,s=0;s<=a;s++)if(null!==(r=e[s][1])&&!isNaN(r)){var l=e[s][2][0],u=e[s][2][1];l>r&&(l=r),u<r&&(u=r),(null===i||u>i)&&(i=u),(null===o||l<o)&&(o=l)}return[o,i]},x.prototype.onLineEvaluated=function(e,t,n){for(var r,o=0;o<e.length;o++)(r=e[o]).y_top=i.calcYNormal_(t,r.yval_minus,n),r.y_bottom=i.calcYNormal_(t,r.yval_plus,n)};var S=x,O=function(){};(O.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a,s=[];const l=n.get("labels")[t],u=n.getForSeries("logscale",l),c=n.getForSeries("sigma",l);for(var f=0;f<e.length;f++)r=e[f][0],a=e[f][t],u&&null!==a&&(a[0]<=0||a[0]-c*a[1]<=0)&&(a=null),null!==a?null===(o=a[0])||isNaN(o)?s.push([r,o,[o,o,o]]):(i=c*a[1],s.push([r,o,[o-i,o+i,a[1]]])):s.push([r,null,[null,null,null]]);return s},O.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[];const i=n.get("labels")[r],a=n.getForSeries("sigma",i);var s,l,u,c,f,d,p,h;for(r=0;r<e.length;r++){for(c=0,p=0,f=0,s=Math.max(0,r-t+1);s<r+1;s++)null===(l=e[s][1])||isNaN(l)||(f++,c+=l,p+=Math.pow(e[s][2][2],2));f?(d=Math.sqrt(p)/f,h=c/f,o[r]=[e[r][0],h,[h-a*d,h+a*d]]):(u=1==t?e[r][1]:null,o[r]=[e[r][0],u,[u,u]])}return o};var C=O,E=function(){};(E.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a=[];const s=n.get("labels")[t],l=n.getForSeries("logscale",s);for(var u=0;u<e.length;u++)r=e[u][0],i=e[u][t],l&&null!==i&&(i[0]<=0||i[1]<=0||i[2]<=0)&&(i=null),null!==i?null===(o=i[1])||isNaN(o)?a.push([r,o,[o,o]]):a.push([r,o,[i[0],i[2]]]):a.push([r,null,[null,null]]);return a},E.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o,i,a,s,l,u,c=[];for(i=0,s=0,a=0,l=0,r=0;r<e.length;r++){if(o=e[r][1],u=e[r][2],c[r]=e[r],null===o||isNaN(o)||(i+=u[0],s+=o,a+=u[1],l+=1),r-t>=0){var f=e[r-t];null===f[1]||isNaN(f[1])||(i-=f[2][0],s-=f[1],a-=f[2][1],l-=1)}c[r]=l?[e[r][0],1*s/l,[1*i/l,1*a/l]]:[e[r][0],null,[null,null]]}return c};var A=E,k=function(){};(k.prototype=new _).extractSeries=function(e,t,n){var r,o,i,a,s,l=[];const u=n.get("labels")[t],c=n.getForSeries("logscale",u);for(var f=0;f<e.length;f++)r=e[f][0],i=e[f][t],c&&null!==i&&(i[0]<=0||i[1]<=0)&&(i=null),null!==i?(a=i[0],s=i[1],null===a||isNaN(a)?l.push([r,a,[a,s]]):(o=100*(s?a/s:0),l.push([r,o,[a,s]]))):l.push([r,null,[null,null]]);return l},k.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[],i=0,a=0;for(r=0;r<e.length;r++){i+=e[r][2][0],a+=e[r][2][1],r-t>=0&&(i-=e[r-t][2][0],a-=e[r-t][2][1]);var s=e[r][0],l=a?i/a:0;o[r]=[s,100*l]}return o};var M=k,P=function(){};(P.prototype=new S).extractSeries=function(e,t,n){var r,o,i,a,s,l,u,c=[];const f=n.get("labels")[t],d=n.getForSeries("logscale",f),p=n.getForSeries("sigma",f);for(var h=0;h<e.length;h++)r=e[h][0],i=e[h][t],d&&null!==i&&(i[0]<=0||i[1]<=0)&&(i=null),null!==i?(a=i[0],s=i[1],null===a||isNaN(a)?c.push([r,a,[a,a,a,s]]):(l=s?a/s:0,u=100*(s?p*Math.sqrt(l*(1-l)/s):1),o=100*l,c.push([r,o,[o-u,o+u,a,s]]))):c.push([r,null,[null,null,null,null]]);return c},P.prototype.rollingAverage=function(e,t,n,r){t=Math.min(t,e.length);var o=[];const i=n.get("labels")[r],a=n.getForSeries("sigma",i),s=n.getForSeries("wilsonInterval",i);var l,u,c,f=0,d=0,p=100;for(r=0;r<e.length;r++){f+=e[r][2][2],d+=e[r][2][3],r-t>=0&&(f-=e[r-t][2][2],d-=e[r-t][2][3]);var h=e[r][0],g=d?f/d:0;if(s)if(d){var v=g<0?0:g,m=d,y=a*Math.sqrt(v*(1-v)/m+a*a/(4*m*m)),b=1+a*a/d;l=(v+a*a/(2*d)-y)/b,u=(v+a*a/(2*d)+y)/b,o[r]=[h,v*p,[l*p,u*p]]}else o[r]=[h,0,[0,0]];else c=d?a*Math.sqrt(g*(1-g)/d):1,o[r]=[h,p*g,[p*(g-c),p*(g+c)]]}return o};var R=P,T=function(){this.annotations_=[]};T.prototype.toString=function(){return"Annotations Plugin"},T.prototype.activate=function(e){return{clearChart:this.clearChart,didDrawChart:this.didDrawChart}},T.prototype.detachLabels=function(){for(var e=0;e<this.annotations_.length;e++){var t=this.annotations_[e];t.parentNode&&t.parentNode.removeChild(t),this.annotations_[e]=null}this.annotations_=[]},T.prototype.clearChart=function(e){this.detachLabels()},T.prototype.didDrawChart=function(e){var t=e.dygraph,n=t.layout_.annotated_points;if(n&&0!==n.length)for(var r=e.canvas.parentNode,o=function(e,n,r){return function(o){var i=r.annotation;i.hasOwnProperty(e)?i[e](i,r,t,o):t.getOption(n)&&t.getOption(n)(i,r,t,o)}},i=e.dygraph.getArea(),a={},s=0;s<n.length;s++){var l=n[s];if(!(l.canvasx<i.x||l.canvasx>i.x+i.w||l.canvasy<i.y||l.canvasy>i.y+i.h)){var u=l.annotation,c=6;u.hasOwnProperty("tickHeight")&&(c=u.tickHeight);var f=document.createElement("div");f.style.fontSize=t.getOption("axisLabelFontSize")+"px";var d="dygraph-annotation";u.hasOwnProperty("icon")||(d+=" dygraphDefaultAnnotation dygraph-default-annotation"),u.hasOwnProperty("cssClass")&&(d+=" "+u.cssClass),f.className=d;var p=u.hasOwnProperty("width")?u.width:16,h=u.hasOwnProperty("height")?u.height:16;if(u.hasOwnProperty("icon")){var g=document.createElement("img");g.src=u.icon,g.width=p,g.height=h,f.appendChild(g)}else l.annotation.hasOwnProperty("shortText")&&f.appendChild(document.createTextNode(l.annotation.shortText));var v=l.canvasx-p/2;f.style.left=v+"px";var m=0;if(u.attachAtBottom){var y=i.y+i.h-h-c;a[v]?y-=a[v]:a[v]=0,a[v]+=c+h,m=y}else m=l.canvasy-h-c;f.style.top=m+"px",f.style.width=p+"px",f.style.height=h+"px",f.title=l.annotation.text,f.style.color=t.colorsMap_[l.name],f.style.borderColor=t.colorsMap_[l.name],u.div=f,t.addAndTrackEvent(f,"click",o("clickHandler","annotationClickHandler",l)),t.addAndTrackEvent(f,"mouseover",o("mouseOverHandler","annotationMouseOverHandler",l)),t.addAndTrackEvent(f,"mouseout",o("mouseOutHandler","annotationMouseOutHandler",l)),t.addAndTrackEvent(f,"dblclick",o("dblClickHandler","annotationDblClickHandler",l)),r.appendChild(f),this.annotations_.push(f);var b=e.drawingContext;if(b.save(),b.strokeStyle=u.hasOwnProperty("tickColor")?u.tickColor:t.colorsMap_[l.name],b.lineWidth=u.hasOwnProperty("tickWidth")?u.tickWidth:t.getOption("strokeWidth"),b.beginPath(),u.attachAtBottom){y=m+h;b.moveTo(l.canvasx,y),b.lineTo(l.canvasx,y+c)}else b.moveTo(l.canvasx,l.canvasy),b.lineTo(l.canvasx,l.canvasy-2-c);b.closePath(),b.stroke(),b.restore()}}},T.prototype.destroy=function(){this.detachLabels()};var I=T,B=function(){this.xlabels_=[],this.ylabels_=[]};B.prototype.toString=function(){return"Axes Plugin"},B.prototype.activate=function(e){return{layout:this.layout,clearChart:this.clearChart,willDrawChart:this.willDrawChart}},B.prototype.layout=function(e){var t,n=e.dygraph;if(n.getOptionForAxis("drawAxis","y")){var r=n.getOptionForAxis("axisLabelWidth","y")+2*n.getOptionForAxis("axisTickSize","y");e.reserveSpaceLeft(r)}n.getOptionForAxis("drawAxis","x")&&(t=n.getOption("xAxisHeight")?n.getOption("xAxisHeight"):n.getOptionForAxis("axisLabelFontSize","x")+2*n.getOptionForAxis("axisTickSize","x"),e.reserveSpaceBottom(t));if(2==n.numAxes()){if(n.getOptionForAxis("drawAxis","y2")){r=n.getOptionForAxis("axisLabelWidth","y2")+2*n.getOptionForAxis("axisTickSize","y2");e.reserveSpaceRight(r)}}else n.numAxes()>2&&n.error("Only two y-axes are supported at this time. (Trying to use "+n.numAxes()+")")},B.prototype.detachLabels=function(){function e(e){for(var t=0;t<e.length;t++){var n=e[t];n.parentNode&&n.parentNode.removeChild(n)}}e(this.xlabels_),e(this.ylabels_),this.xlabels_=[],this.ylabels_=[]},B.prototype.clearChart=function(e){this.detachLabels()},B.prototype.willDrawChart=function(e){var t=e.dygraph;if(!t.getOptionForAxis("drawAxis","x")&&!t.getOptionForAxis("drawAxis","y")&&!t.getOptionForAxis("drawAxis","y2"))return;function n(e){return Math.round(e)+.5}function o(e){return Math.round(e)-.5}var i,a,s,l=e.drawingContext,u=e.canvas.parentNode,c=t.width_,f=t.height_,d=function(e){return{position:"absolute",fontSize:t.getOptionForAxis("axisLabelFontSize",e)+"px",width:t.getOptionForAxis("axisLabelWidth",e)+"px"}},p={x:d("x"),y:d("y"),y2:d("y2")},h=function(e,t,n){var o=document.createElement("div"),i=p["y2"==n?"y2":t];r.update(o.style,i);var a=document.createElement("div");return a.className="dygraph-axis-label dygraph-axis-label-"+t+(n?" dygraph-axis-label-"+n:""),a.innerHTML=e,o.appendChild(a),o};l.save();var g=t.layout_,v=e.dygraph.plotter_.area,m=function(e){return function(n){return t.getOptionForAxis(n,e)}};const y=this;if(t.getOptionForAxis("drawAxis","y")||2==t.numAxes()&&t.getOptionForAxis("drawAxis","y2")){if(g.yticks&&g.yticks.length>0){var b=t.numAxes(),w=[m("y"),m("y2")];g.yticks.forEach((function(e){if(void 0!==e.label){a=v.x;var t="y1",n=w[0];if(1==e.axis&&(a=v.x+v.w,-1,t="y2",n=w[1]),n("drawAxis")){var r=n("axisLabelFontSize");s=v.y+e.pos*v.h,i=h(e.label,"y",2==b?t:null);var o=s-r/2;o<0&&(o=0),o+r+3>f?i.style.bottom="0":i.style.top=Math.min(o,f-2*r)+"px",0===e.axis?(i.style.left=v.x-n("axisLabelWidth")-n("axisTickSize")+"px",i.style.textAlign="right"):1==e.axis&&(i.style.left=v.x+v.w+n("axisTickSize")+"px",i.style.textAlign="left"),i.style.width=n("axisLabelWidth")+"px",u.appendChild(i),y.ylabels_.push(i)}}}))}var _;if(t.getOption("drawAxesAtZero"))((O=t.toPercentXCoord(0))>1||O<0||isNaN(O))&&(O=0),_=n(v.x+O*v.w);else _=n(v.x);l.strokeStyle=t.getOptionForAxis("axisLineColor","y"),l.lineWidth=t.getOptionForAxis("axisLineWidth","y"),l.beginPath(),l.moveTo(_,o(v.y)),l.lineTo(_,o(v.y+v.h)),l.closePath(),l.stroke(),2==t.numAxes()&&t.getOptionForAxis("drawAxis","y2")&&(l.strokeStyle=t.getOptionForAxis("axisLineColor","y2"),l.lineWidth=t.getOptionForAxis("axisLineWidth","y2"),l.beginPath(),l.moveTo(o(v.x+v.w),o(v.y)),l.lineTo(o(v.x+v.w),o(v.y+v.h)),l.closePath(),l.stroke())}if(t.getOptionForAxis("drawAxis","x")){if(g.xticks){var x=m("x");g.xticks.forEach((function(e){if(void 0!==e.label){a=v.x+e.pos*v.w,s=v.y+v.h,(i=h(e.label,"x")).style.textAlign="center",i.style.top=s+x("axisTickSize")+"px";var t=a-x("axisLabelWidth")/2;t+x("axisLabelWidth")>c&&(t=c-x("axisLabelWidth"),i.style.textAlign="right"),t<0&&(t=0,i.style.textAlign="left"),i.style.left=t+"px",i.style.width=x("axisLabelWidth")+"px",u.appendChild(i),y.xlabels_.push(i)}}))}var S,O;if(l.strokeStyle=t.getOptionForAxis("axisLineColor","x"),l.lineWidth=t.getOptionForAxis("axisLineWidth","x"),l.beginPath(),t.getOption("drawAxesAtZero"))((O=t.toPercentYCoord(0,0))>1||O<0)&&(O=1),S=o(v.y+O*v.h);else S=o(v.y+v.h);l.moveTo(n(v.x),S),l.lineTo(n(v.x+v.w),S),l.closePath(),l.stroke()}l.restore()};var j=B,D=function(){this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};D.prototype.toString=function(){return"ChartLabels Plugin"},D.prototype.activate=function(e){return{layout:this.layout,didDrawChart:this.didDrawChart}};var L=function(e){var t=document.createElement("div");return t.style.position="absolute",t.style.left=e.x+"px",t.style.top=e.y+"px",t.style.width=e.w+"px",t.style.height=e.h+"px",t};D.prototype.detachLabels_=function(){for(var e=[this.title_div_,this.xlabel_div_,this.ylabel_div_,this.y2label_div_],t=0;t<e.length;t++){var n=e[t];n&&(n.parentNode&&n.parentNode.removeChild(n))}this.title_div_=null,this.xlabel_div_=null,this.ylabel_div_=null,this.y2label_div_=null};var Z=function(e,t,n,r,o){var i=document.createElement("div");i.style.position="absolute",i.style.left=1==n?"0px":t.x+"px",i.style.top=t.y+"px",i.style.width=t.w+"px",i.style.height=t.h+"px",i.style.fontSize=e.getOption("yLabelWidth")-2+"px";var a=document.createElement("div");a.style.position="absolute",a.style.width=t.h+"px",a.style.height=t.w+"px",a.style.top=t.h/2-t.w/2+"px",a.style.left=t.w/2-t.h/2+"px",a.className="dygraph-label-rotate-"+(1==n?"right":"left");var s=document.createElement("div");return s.className=r,s.innerHTML=o,a.appendChild(s),i.appendChild(a),i};D.prototype.layout=function(e){this.detachLabels_();var t=e.dygraph,n=e.chart_div;if(t.getOption("title")){var r=e.reserveSpaceTop(t.getOption("titleHeight"));this.title_div_=L(r),this.title_div_.style.fontSize=t.getOption("titleHeight")-8+"px",(o=document.createElement("div")).className="dygraph-label dygraph-title",o.innerHTML=t.getOption("title"),this.title_div_.appendChild(o),n.appendChild(this.title_div_)}if(t.getOption("xlabel")){var o,i=e.reserveSpaceBottom(t.getOption("xLabelHeight"));this.xlabel_div_=L(i),this.xlabel_div_.style.fontSize=t.getOption("xLabelHeight")-2+"px",(o=document.createElement("div")).className="dygraph-label dygraph-xlabel",o.innerHTML=t.getOption("xlabel"),this.xlabel_div_.appendChild(o),n.appendChild(this.xlabel_div_)}if(t.getOption("ylabel")){var a=e.reserveSpaceLeft(0);this.ylabel_div_=Z(t,a,1,"dygraph-label dygraph-ylabel",t.getOption("ylabel")),n.appendChild(this.ylabel_div_)}if(t.getOption("y2label")&&2==t.numAxes()){var s=e.reserveSpaceRight(0);this.y2label_div_=Z(t,s,2,"dygraph-label dygraph-y2label",t.getOption("y2label")),n.appendChild(this.y2label_div_)}},D.prototype.didDrawChart=function(e){var t=e.dygraph;this.title_div_&&(this.title_div_.children[0].innerHTML=t.getOption("title")),this.xlabel_div_&&(this.xlabel_div_.children[0].innerHTML=t.getOption("xlabel")),this.ylabel_div_&&(this.ylabel_div_.children[0].children[0].innerHTML=t.getOption("ylabel")),this.y2label_div_&&(this.y2label_div_.children[0].children[0].innerHTML=t.getOption("y2label"))},D.prototype.clearChart=function(){},D.prototype.destroy=function(){this.detachLabels_()};var N=D,F=function(){};F.prototype.toString=function(){return"Gridline Plugin"},F.prototype.activate=function(e){return{willDrawChart:this.willDrawChart}},F.prototype.willDrawChart=function(e){var t,n,r,o=e.dygraph,i=e.drawingContext,a=o.layout_,s=e.dygraph.plotter_.area;function l(e){return Math.round(e)+.5}function u(e){return Math.round(e)-.5}if(o.getOptionForAxis("drawGrid","y")){for(var c=["y","y2"],f=[],d=[],p=[],h=[],g=[],v=0;v<c.length;v++)p[v]=o.getOptionForAxis("drawGrid",c[v]),p[v]&&(f[v]=o.getOptionForAxis("gridLineColor",c[v]),d[v]=o.getOptionForAxis("gridLineWidth",c[v]),g[v]=o.getOptionForAxis("gridLinePattern",c[v]),h[v]=g[v]&&g[v].length>=2);r=a.yticks,i.save(),r.forEach((e=>{if(e.has_tick){var r=e.axis;p[r]&&(i.save(),h[r]&&i.setLineDash&&i.setLineDash(g[r]),i.strokeStyle=f[r],i.lineWidth=d[r],t=l(s.x),n=u(s.y+e.pos*s.h),i.beginPath(),i.moveTo(t,n),i.lineTo(t+s.w,n),i.stroke(),i.restore())}})),i.restore()}if(o.getOptionForAxis("drawGrid","x")){r=a.xticks,i.save();g=o.getOptionForAxis("gridLinePattern","x");(h=g&&g.length>=2)&&i.setLineDash&&i.setLineDash(g),i.strokeStyle=o.getOptionForAxis("gridLineColor","x"),i.lineWidth=o.getOptionForAxis("gridLineWidth","x"),r.forEach((e=>{e.has_tick&&(t=l(s.x+e.pos*s.w),n=u(s.y+s.h),i.beginPath(),i.moveTo(t,n),i.lineTo(t,s.y),i.stroke())})),h&&i.setLineDash&&i.setLineDash([]),i.restore()}},F.prototype.destroy=function(){};var H=F,V=function(){this.legend_div_=null,this.is_generated_div_=!1};V.prototype.toString=function(){return"Legend Plugin"},V.prototype.activate=function(e){var t,n=e.getOption("labelsDiv");return n&&null!==n?t="string"==typeof n||n instanceof String?document.getElementById(n):n:((t=document.createElement("div")).className="dygraph-legend",e.graphDiv.appendChild(t),this.is_generated_div_=!0),this.legend_div_=t,this.one_em_width_=10,{select:this.select,deselect:this.deselect,predraw:this.predraw,didDrawChart:this.didDrawChart}};function z(e,t,n){if(!e||e.length<=1)return`<div class="dygraph-legend-line" style="border-bottom-color: ${t};"></div>`;var r,o,i,a,s=0,l=0,u=[];for(r=0;r<=e.length;r++)s+=e[r%e.length];if((a=Math.floor(n/(s-e[0])))>1){for(r=0;r<e.length;r++)u[r]=e[r]/n;l=u.length}else{for(a=1,r=0;r<e.length;r++)u[r]=e[r]/s;l=u.length+1}var c="";for(o=0;o<a;o++)for(r=0;r<l;r+=2)i=u[r%u.length],c+=`<div class="dygraph-legend-dash" style="margin-right: ${r<e.length?u[(r+1)%u.length]:0}em; padding-left: ${i}em;"></div>`;return c}V.prototype.select=function(e){var t=e.selectedX,n=e.selectedPoints,r=e.selectedRow,o=e.dygraph.getOption("legend");if("never"!==o){var i=V.generateLegendHTML(e.dygraph,t,n,this.one_em_width_,r);if(i instanceof Node&&i.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(this.legend_div_.innerHTML="",this.legend_div_.appendChild(i)):this.legend_div_.innerHTML=i,this.legend_div_.style.display="","follow"===o){var a,s=e.dygraph.plotter_.area,l=this.legend_div_.offsetWidth,u=e.dygraph.getOptionForAxis("axisLabelWidth","y"),c=e.dygraph.getHighlightSeries();c&&(a=n.find((e=>e.name===c)))||(a=n[0]);const t=e.dygraph.getNumericOption("legendFollowOffsetX"),r=e.dygraph.getNumericOption("legendFollowOffsetY");var f=a.x*s.w+t,d=a.y*s.h+r;f+l+1>s.w&&(f=f-2*t-l-(u-s.x)),this.legend_div_.style.left=u+f+"px",this.legend_div_.style.top=d+"px"}else if("onmouseover"===o&&this.is_generated_div_){s=e.dygraph.plotter_.area,l=this.legend_div_.offsetWidth;this.legend_div_.style.left=s.x+s.w-l-1+"px",this.legend_div_.style.top=s.y+"px"}}else this.legend_div_.style.display="none"},V.prototype.deselect=function(e){"always"!==e.dygraph.getOption("legend")&&(this.legend_div_.style.display="none");var t=function(e){var t=document.createElement("span");t.setAttribute("style","margin: 0; padding: 0 0 0 1em; border: 0;"),e.appendChild(t);var n=t.offsetWidth;return e.removeChild(t),n}(this.legend_div_);this.one_em_width_=t;var n=V.generateLegendHTML(e.dygraph,void 0,void 0,t,null);n instanceof Node&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(this.legend_div_.innerHTML="",this.legend_div_.appendChild(n)):this.legend_div_.innerHTML=n},V.prototype.didDrawChart=function(e){this.deselect(e)},V.prototype.predraw=function(e){if(this.is_generated_div_){e.dygraph.graphDiv.appendChild(this.legend_div_);var t=e.dygraph.plotter_.area,n=this.legend_div_.offsetWidth;this.legend_div_.style.left=t.x+t.w-n-1+"px",this.legend_div_.style.top=t.y+"px"}},V.prototype.destroy=function(){this.legend_div_=null},V.generateLegendHTML=function(e,t,n,o,i){var a,s={dygraph:e,x:t,i:i,series:[]},l={},u=e.getLabels();if(u)for(var c=1;c<u.length;c++){var f=e.getPropertiesForSeries(u[c]),d={dashHTML:z(e.getOption("strokePattern",u[c]),f.color,o),label:u[c],labelHTML:(a=u[c],a.replace(/&/g,"&amp;").replace(/"/g,"&#34;").replace(/</g,"&lt;").replace(/>/g,"&gt;")),isVisible:f.visible,color:f.color};s.series.push(d),l[u[c]]=d}if("undefined"!==typeof t){var p=e.optionsViewForAxis_("x"),h=p("valueFormatter");s.xHTML=h.call(e,t,p,u[0],e,i,0);var g=[],v=e.numAxes();for(c=0;c<v;c++)g[c]=e.optionsViewForAxis_("y"+(c?1+c:""));var m=e.getOption("labelsShowZeroValues"),y=e.getHighlightSeries();for(c=0;c<n.length;c++){var b=n[c];if((d=l[b.name]).y=b.yval,0===b.yval&&!m||isNaN(b.canvasy))d.isVisible=!1;else{var w=g[(f=e.getPropertiesForSeries(b.name)).axis-1],_=w("valueFormatter").call(e,b.yval,w,b.name,e,i,u.indexOf(b.name));r.update(d,{yHTML:_}),b.name==y&&(d.isHighlighted=!0)}}}return(e.getOption("legendFormatter")||V.defaultFormatter).call(e,s)},V.defaultFormatter=function(e){var t=e.dygraph;if(!0!==t.getOption("showLabelsOnHighlight"))return"";var n,r=t.getOption("labelsSeparateLines");if("undefined"===typeof e.x){if("always"!=t.getOption("legend"))return"";n="";for(var o=0;o<e.series.length;o++){(i=e.series[o]).isVisible&&(""!==n&&(n+=r?"<br />":" "),n+=`<span style='font-weight: bold; color: ${i.color};'>${i.dashHTML} ${i.labelHTML}</span>`)}return n}n=e.xHTML+":";for(o=0;o<e.series.length;o++){var i;if((i=e.series[o]).y||i.yHTML)if(i.isVisible)r&&(n+="<br>"),n+=`<span${i.isHighlighted?' class="highlight"':""}> <b><span style='color: ${i.color};'>${i.labelHTML}</span></b>:&#160;${i.yHTML}</span>`}return n};var U=V,G=function(){this.hasTouchInterface_="undefined"!=typeof TouchEvent,this.isMobileDevice_=/mobile|android/gi.test(navigator.appVersion),this.interfaceCreated_=!1};G.prototype.toString=function(){return"RangeSelector Plugin"},G.prototype.activate=function(e){return this.dygraph_=e,this.getOption_("showRangeSelector")&&this.createInterface_(),{layout:this.reserveSpace_,predraw:this.renderStaticLayer_,didDrawChart:this.renderInteractiveLayer_}},G.prototype.destroy=function(){this.bgcanvas_=null,this.fgcanvas_=null,this.leftZoomHandle_=null,this.rightZoomHandle_=null},G.prototype.getOption_=function(e,t){return this.dygraph_.getOption(e,t)},G.prototype.setDefaultOption_=function(e,t){this.dygraph_.attrs_[e]=t},G.prototype.createInterface_=function(){this.createCanvases_(),this.createZoomHandles_(),this.initInteraction_(),this.getOption_("animatedZooms")&&(console.warn("Animated zooms and range selector are not compatible; disabling animatedZooms."),this.dygraph_.updateOptions({animatedZooms:!1},!0)),this.interfaceCreated_=!0,this.addToGraph_()},G.prototype.addToGraph_=function(){var e=this.graphDiv_=this.dygraph_.graphDiv;e.appendChild(this.bgcanvas_),e.appendChild(this.fgcanvas_),e.appendChild(this.leftZoomHandle_),e.appendChild(this.rightZoomHandle_)},G.prototype.removeFromGraph_=function(){var e=this.graphDiv_;e.removeChild(this.bgcanvas_),e.removeChild(this.fgcanvas_),e.removeChild(this.leftZoomHandle_),e.removeChild(this.rightZoomHandle_),this.graphDiv_=null},G.prototype.reserveSpace_=function(e){this.getOption_("showRangeSelector")&&e.reserveSpaceBottom(this.getOption_("rangeSelectorHeight")+4)},G.prototype.renderStaticLayer_=function(){this.updateVisibility_()&&(this.resize_(),this.drawStaticLayer_())},G.prototype.renderInteractiveLayer_=function(){this.updateVisibility_()&&!this.isChangingRange_&&(this.placeZoomHandles_(),this.drawInteractiveLayer_())},G.prototype.updateVisibility_=function(){var e=this.getOption_("showRangeSelector");if(e)this.interfaceCreated_?this.graphDiv_&&this.graphDiv_.parentNode||this.addToGraph_():this.createInterface_();else if(this.graphDiv_){this.removeFromGraph_();var t=this.dygraph_;setTimeout((function(){t.width_=0,t.resize()}),1)}return e},G.prototype.resize_=function(){function e(e,t,n,o){var i=o||r.getContextPixelRatio(t);e.style.top=n.y+"px",e.style.left=n.x+"px",e.width=n.w*i,e.height=n.h*i,e.style.width=n.w+"px",e.style.height=n.h+"px",1!=i&&t.scale(i,i)}var t=this.dygraph_.layout_.getPlotArea(),n=0;this.dygraph_.getOptionForAxis("drawAxis","x")&&(n=this.getOption_("xAxisHeight")||this.getOption_("axisLabelFontSize")+2*this.getOption_("axisTickSize")),this.canvasRect_={x:t.x,y:t.y+t.h+n+4,w:t.w,h:this.getOption_("rangeSelectorHeight")};var o=this.dygraph_.getNumericOption("pixelRatio");e(this.bgcanvas_,this.bgcanvas_ctx_,this.canvasRect_,o),e(this.fgcanvas_,this.fgcanvas_ctx_,this.canvasRect_,o)},G.prototype.createCanvases_=function(){this.bgcanvas_=r.createCanvas(),this.bgcanvas_.className="dygraph-rangesel-bgcanvas",this.bgcanvas_.style.position="absolute",this.bgcanvas_.style.zIndex=9,this.bgcanvas_ctx_=r.getContext(this.bgcanvas_),this.fgcanvas_=r.createCanvas(),this.fgcanvas_.className="dygraph-rangesel-fgcanvas",this.fgcanvas_.style.position="absolute",this.fgcanvas_.style.zIndex=9,this.fgcanvas_.style.cursor="default",this.fgcanvas_ctx_=r.getContext(this.fgcanvas_)},G.prototype.createZoomHandles_=function(){var e=new Image;e.className="dygraph-rangesel-zoomhandle",e.style.position="absolute",e.style.zIndex=10,e.style.visibility="hidden",e.style.cursor="col-resize",e.width=9,e.height=16,e.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQCAYAAADESFVDAAAAAXNSR0IArs4c6QAAAAZiS0dEANAAzwDP4Z7KegAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sHGw0cMqdt1UwAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAaElEQVQoz+3SsRFAQBCF4Z9WJM8KCDVwownl6YXsTmCUsyKGkZzcl7zkz3YLkypgAnreFmDEpHkIwVOMfpdi9CEEN2nGpFdwD03yEqDtOgCaun7sqSTDH32I1pQA2Pb9sZecAxc5r3IAb21d6878xsAAAAAASUVORK5CYII=",this.isMobileDevice_&&(e.width*=2,e.height*=2),this.leftZoomHandle_=e,this.rightZoomHandle_=e.cloneNode(!1)},G.prototype.initInteraction_=function(){var e,t,n,o,i,a,s,l,u,c,d,p,h,g,m=this,y=document,b=0,w=null,_=!1,x=!1,S=!this.isMobileDevice_,O=new v;e=function(e){var t=m.dygraph_.xAxisExtremes(),n=(t[1]-t[0])/m.canvasRect_.w;return[t[0]+(e.leftHandlePos-m.canvasRect_.x)*n,t[0]+(e.rightHandlePos-m.canvasRect_.x)*n]},t=function(e){return r.cancelEvent(e),_=!0,b=e.clientX,w=e.target?e.target:e.srcElement,"mousedown"!==e.type&&"dragstart"!==e.type||(r.addEvent(y,"mousemove",n),r.addEvent(y,"mouseup",o)),m.fgcanvas_.style.cursor="col-resize",O.cover(),!0},n=function(e){if(!_)return!1;r.cancelEvent(e);var t=e.clientX-b;if(Math.abs(t)<4)return!0;b=e.clientX;var n,o=m.getZoomHandleStatus_();w==m.leftZoomHandle_?(n=o.leftHandlePos+t,n=Math.min(n,o.rightHandlePos-w.width-3),n=Math.max(n,m.canvasRect_.x)):(n=o.rightHandlePos+t,n=Math.min(n,m.canvasRect_.x+m.canvasRect_.w),n=Math.max(n,o.leftHandlePos+w.width+3));var a=w.width/2;return w.style.left=n-a+"px",m.drawInteractiveLayer_(),S&&i(),!0},o=function(e){return!!_&&(_=!1,O.uncover(),r.removeEvent(y,"mousemove",n),r.removeEvent(y,"mouseup",o),m.fgcanvas_.style.cursor="default",S||i(),!0)},i=function(){try{var t=m.getZoomHandleStatus_();if(m.isChangingRange_=!0,t.isZoomed){var n=e(t);m.dygraph_.doZoomXDates_(n[0],n[1])}else m.dygraph_.resetZoom()}finally{m.isChangingRange_=!1}},a=function(e){var t=m.leftZoomHandle_.getBoundingClientRect(),n=t.left+t.width/2,r=(t=m.rightZoomHandle_.getBoundingClientRect()).left+t.width/2;return e.clientX>n&&e.clientX<r},s=function(e){return!(x||!a(e)||!m.getZoomHandleStatus_().isZoomed)&&(r.cancelEvent(e),x=!0,b=e.clientX,"mousedown"===e.type&&(r.addEvent(y,"mousemove",l),r.addEvent(y,"mouseup",u)),!0)},l=function(e){if(!x)return!1;r.cancelEvent(e);var t=e.clientX-b;if(Math.abs(t)<4)return!0;b=e.clientX;var n=m.getZoomHandleStatus_(),o=n.leftHandlePos,i=n.rightHandlePos,a=i-o;o+t<=m.canvasRect_.x?i=(o=m.canvasRect_.x)+a:i+t>=m.canvasRect_.x+m.canvasRect_.w?o=(i=m.canvasRect_.x+m.canvasRect_.w)-a:(o+=t,i+=t);var s=m.leftZoomHandle_.width/2;return m.leftZoomHandle_.style.left=o-s+"px",m.rightZoomHandle_.style.left=i-s+"px",m.drawInteractiveLayer_(),S&&c(),!0},u=function(e){return!!x&&(x=!1,r.removeEvent(y,"mousemove",l),r.removeEvent(y,"mouseup",u),S||c(),!0)},c=function(){try{m.isChangingRange_=!0,m.dygraph_.dateWindow_=e(m.getZoomHandleStatus_()),m.dygraph_.drawGraph_(!1)}finally{m.isChangingRange_=!1}},d=function(e){if(!_&&!x){var t=a(e)?"move":"default";t!=m.fgcanvas_.style.cursor&&(m.fgcanvas_.style.cursor=t)}},p=function(e){"touchstart"==e.type&&1==e.targetTouches.length?t(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?n(e.targetTouches[0])&&r.cancelEvent(e):o(e)},h=function(e){"touchstart"==e.type&&1==e.targetTouches.length?s(e.targetTouches[0])&&r.cancelEvent(e):"touchmove"==e.type&&1==e.targetTouches.length?l(e.targetTouches[0])&&r.cancelEvent(e):u(e)},g=function(e,t){for(var n=["touchstart","touchend","touchmove","touchcancel"],r=0;r<n.length;r++)m.dygraph_.addAndTrackEvent(e,n[r],t)},this.setDefaultOption_("interactionModel",f.dragIsPanInteractionModel),this.setDefaultOption_("panEdgeFraction",1e-4);var C=window.opera?"mousedown":"dragstart";this.dygraph_.addAndTrackEvent(this.leftZoomHandle_,C,t),this.dygraph_.addAndTrackEvent(this.rightZoomHandle_,C,t),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousedown",s),this.dygraph_.addAndTrackEvent(this.fgcanvas_,"mousemove",d),this.hasTouchInterface_&&(g(this.leftZoomHandle_,p),g(this.rightZoomHandle_,p),g(this.fgcanvas_,h))},G.prototype.drawStaticLayer_=function(){var e=this.bgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);try{this.drawMiniPlot_()}catch(n){console.warn(n)}var t=.5;this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorBackgroundLineWidth"),e.strokeStyle=this.getOption_("rangeSelectorBackgroundStrokeColor"),e.beginPath(),e.moveTo(t,t),e.lineTo(t,this.canvasRect_.h-t),e.lineTo(this.canvasRect_.w-t,this.canvasRect_.h-t),e.lineTo(this.canvasRect_.w-t,t),e.stroke()},G.prototype.drawMiniPlot_=function(){var e=this.getOption_("rangeSelectorPlotFillColor"),t=this.getOption_("rangeSelectorPlotFillGradientColor"),n=this.getOption_("rangeSelectorPlotStrokeColor");if(e||n){var r=this.getOption_("stepPlot"),o=this.computeCombinedSeriesAndLimits_(),i=o.yMax-o.yMin,a=this.bgcanvas_ctx_,s=.5,l=this.dygraph_.xAxisExtremes(),u=Math.max(l[1]-l[0],1e-30),c=(this.canvasRect_.w-s)/u,f=(this.canvasRect_.h-s)/i,d=this.canvasRect_.w-s,p=this.canvasRect_.h-s,h=null,g=null;a.beginPath(),a.moveTo(s,p);for(var v=0;v<o.data.length;v++){var m=o.data[v],y=null!==m[0]?(m[0]-l[0])*c:NaN,b=null!==m[1]?p-(m[1]-o.yMin)*f:NaN;(r||null===h||Math.round(y)!=Math.round(h))&&(isFinite(y)&&isFinite(b)?(null===h?a.lineTo(y,p):r&&a.lineTo(y,g),a.lineTo(y,b),h=y,g=b):(null!==h&&(r?(a.lineTo(y,g),a.lineTo(y,p)):a.lineTo(h,p)),h=g=null))}if(a.lineTo(d,p),a.closePath(),e){var w=this.bgcanvas_ctx_.createLinearGradient(0,0,0,p);t&&w.addColorStop(0,t),w.addColorStop(1,e),this.bgcanvas_ctx_.fillStyle=w,a.fill()}n&&(this.bgcanvas_ctx_.strokeStyle=n,this.bgcanvas_ctx_.lineWidth=this.getOption_("rangeSelectorPlotLineWidth"),a.stroke())}},G.prototype.computeCombinedSeriesAndLimits_=function(){var e,t=this.dygraph_,n=this.getOption_("logscale"),o=t.numColumns(),i=t.getLabels(),a=new Array(o),s=!1,l=t.visibility(),u=[];for(e=1;e<o;e++){var c=this.getOption_("showInRangeSelector",i[e]);u.push(c),null!==c&&(s=!0)}if(s)for(e=1;e<o;e++)a[e]=u[e-1];else for(e=1;e<o;e++)a[e]=l[e-1];var f=[],d=t.dataHandler_,p=t.attributes_;for(e=1;e<t.numColumns();e++)if(a[e]){var h=d.extractSeries(t.rawData_,e,p);t.rollPeriod()>1&&(h=d.rollingAverage(h,t.rollPeriod(),p,e)),f.push(h)}var g=[];for(e=0;e<f[0].length;e++){for(var v=0,m=0,y=0;y<f.length;y++){var b=f[y][e][1];null===b||isNaN(b)||(m++,v+=b)}g.push([f[0][e][0],v/m])}var w=Number.MAX_VALUE,_=-Number.MAX_VALUE;for(e=0;e<g.length;e++){var x=g[e][1];null!==x&&isFinite(x)&&(!n||x>0)&&(w=Math.min(w,x),_=Math.max(_,x))}var S=.25;if(n)for(_=r.log10(_),_+=_*S,w=r.log10(w),e=0;e<g.length;e++)g[e][1]=r.log10(g[e][1]);else{var O,C=_-w;_+=O=C<=Number.MIN_VALUE?_*S:C*S,w-=O}return{data:g,yMin:w,yMax:_}},G.prototype.placeZoomHandles_=function(){var e=this.dygraph_.xAxisExtremes(),t=this.dygraph_.xAxisRange(),n=e[1]-e[0],r=Math.max(0,(t[0]-e[0])/n),o=Math.max(0,(e[1]-t[1])/n),i=this.canvasRect_.x+this.canvasRect_.w*r,a=this.canvasRect_.x+this.canvasRect_.w*(1-o),s=Math.max(this.canvasRect_.y,this.canvasRect_.y+(this.canvasRect_.h-this.leftZoomHandle_.height)/2),l=this.leftZoomHandle_.width/2;this.leftZoomHandle_.style.left=i-l+"px",this.leftZoomHandle_.style.top=s+"px",this.rightZoomHandle_.style.left=a-l+"px",this.rightZoomHandle_.style.top=this.leftZoomHandle_.style.top,this.leftZoomHandle_.style.visibility="visible",this.rightZoomHandle_.style.visibility="visible"},G.prototype.drawInteractiveLayer_=function(){var e=this.fgcanvas_ctx_;e.clearRect(0,0,this.canvasRect_.w,this.canvasRect_.h);var t=this.canvasRect_.w-1,n=this.canvasRect_.h-1,r=this.getZoomHandleStatus_();if(e.strokeStyle=this.getOption_("rangeSelectorForegroundStrokeColor"),e.lineWidth=this.getOption_("rangeSelectorForegroundLineWidth"),r.isZoomed){var o=Math.max(1,r.leftHandlePos-this.canvasRect_.x),i=Math.min(t,r.rightHandlePos-this.canvasRect_.x);const a=this.getOption_("rangeSelectorVeilColour");e.fillStyle=a||"rgba(240, 240, 240, "+this.getOption_("rangeSelectorAlpha").toString()+")",e.fillRect(0,0,o,this.canvasRect_.h),e.fillRect(i,0,this.canvasRect_.w-i,this.canvasRect_.h),e.beginPath(),e.moveTo(1,1),e.lineTo(o,1),e.lineTo(o,n),e.lineTo(i,n),e.lineTo(i,1),e.lineTo(t,1),e.stroke()}else e.beginPath(),e.moveTo(1,1),e.lineTo(1,n),e.lineTo(t,n),e.lineTo(t,1),e.stroke()},G.prototype.getZoomHandleStatus_=function(){var e=this.leftZoomHandle_.width/2,t=parseFloat(this.leftZoomHandle_.style.left)+e,n=parseFloat(this.rightZoomHandle_.style.left)+e;return{leftHandlePos:t,rightHandlePos:n,isZoomed:t-1>this.canvasRect_.x||n+1<this.canvasRect_.x+this.canvasRect_.w}};var W=G,q=function(e){this.container=e};q.prototype.draw=function(e,t){this.container.innerHTML="","undefined"!=typeof this.date_graph&&this.date_graph.destroy(),this.date_graph=new K(this.container,e,t)},q.prototype.setSelection=function(e){var t=!1;e.length&&(t=e[0].row),this.date_graph.setSelection(t)},q.prototype.getSelection=function(){var e=[],t=this.date_graph.getSelection();if(t<0)return e;for(var n=this.date_graph.layout_.points,r=0;r<n.length;++r)e.push({row:t,column:r+1});return e};var $=q,Y=function(e,t,n){this.__init__(e,t,n)};Y.NAME="Dygraph",Y.VERSION="2.2.1";var X={};(Y._require=function(e){return e in X?X[e]:Y._require._b(e)})._b=null,Y._require.add=function(e,t){X[e]=t},Y.DEFAULT_ROLL_PERIOD=1,Y.DEFAULT_WIDTH=480,Y.DEFAULT_HEIGHT=320,Y.ANIMATION_STEPS=12,Y.ANIMATION_DURATION=200,Y.Plotters=s._Plotters,Y.addedAnnotationCSS=!1,Y.prototype.__init__=function(e,t,n){if(this.is_initial_draw_=!0,this.readyFns_=[],null!==n&&void 0!==n||(n={}),n=Y.copyUserAttrs_(n),"string"==typeof e&&(e=document.getElementById(e)),!e)throw new Error("Constructing dygraph with a non-existent div!");this.maindiv_=e,this.file_=t,this.rollPeriod_=n.rollPeriod||Y.DEFAULT_ROLL_PERIOD,this.previousVerticalX_=-1,this.fractions_=n.fractions||!1,this.dateWindow_=n.dateWindow||null,this.annotations_=[],e.innerHTML="";const o=window.getComputedStyle(e,null);"0px"===o.paddingLeft&&"0px"===o.paddingRight&&"0px"===o.paddingTop&&"0px"===o.paddingBottom||console.error("Main div contains padding; graph will misbehave"),""===e.style.width&&n.width&&(e.style.width=n.width+"px"),""===e.style.height&&n.height&&(e.style.height=n.height+"px"),""===e.style.height&&0===e.clientHeight&&(e.style.height=Y.DEFAULT_HEIGHT+"px",""===e.style.width&&(e.style.width=Y.DEFAULT_WIDTH+"px")),this.width_=e.clientWidth||n.width||0,this.height_=e.clientHeight||n.height||0,n.stackedGraph&&(n.fillGraph=!0),this.user_attrs_={},r.update(this.user_attrs_,n),this.attrs_={},r.updateDeep(this.attrs_,d),this.boundaryIds_=[],this.setIndexByName_={},this.datasetIndex_=[],this.registeredEvents_=[],this.eventListeners_={},this.attributes_=new h(this),this.createInterface_(),this.plugins_=[];for(var i=Y.PLUGINS.concat(this.getOption("plugins")),a=0;a<i.length;a++){var s,l=i[a],u={plugin:s="undefined"!==typeof l.activate?l:new l,events:{},options:{},pluginOptions:{}},c=s.activate(this);for(var f in c)c.hasOwnProperty(f)&&(u.events[f]=c[f]);this.plugins_.push(u)}for(a=0;a<this.plugins_.length;a++){var p=this.plugins_[a];for(var f in p.events)if(p.events.hasOwnProperty(f)){var g=p.events[f],v=[p.plugin,g];f in this.eventListeners_?this.eventListeners_[f].push(v):this.eventListeners_[f]=[v]}}this.createDragInterface_(),this.start_()},Y.prototype.cascadeEvents_=function(e,t){if(!(e in this.eventListeners_))return!1;var n={dygraph:this,cancelable:!1,defaultPrevented:!1,preventDefault:function(){if(!n.cancelable)throw"Cannot call preventDefault on non-cancelable event.";n.defaultPrevented=!0},propagationStopped:!1,stopPropagation:function(){n.propagationStopped=!0}};r.update(n,t);var o=this.eventListeners_[e];if(o)for(var i=o.length-1;i>=0;i--){var a=o[i][0];if(o[i][1].call(a,n),n.propagationStopped)break}return n.defaultPrevented},Y.prototype.getPluginInstance_=function(e){for(var t=0;t<this.plugins_.length;t++){var n=this.plugins_[t];if(n.plugin instanceof e)return n.plugin}return null},Y.prototype.isZoomed=function(e){const t=!!this.dateWindow_;if("x"===e)return t;const n=this.axes_.map((e=>!!e.valueRange)).indexOf(!0)>=0;if(null===e||void 0===e)return t||n;if("y"===e)return n;throw new Error(`axis parameter is [${e}] must be null, 'x' or 'y'.`)},Y.prototype.toString=function(){var e=this.maindiv_;return"[Dygraph "+(e&&e.id?e.id:e)+"]"},Y.prototype.attr_=function(e,t){return t?this.attributes_.getForSeries(e,t):this.attributes_.get(e)},Y.prototype.getOption=function(e,t){return this.attr_(e,t)},Y.prototype.getNumericOption=function(e,t){return this.getOption(e,t)},Y.prototype.getStringOption=function(e,t){return this.getOption(e,t)},Y.prototype.getBooleanOption=function(e,t){return this.getOption(e,t)},Y.prototype.getFunctionOption=function(e,t){return this.getOption(e,t)},Y.prototype.getOptionForAxis=function(e,t){return this.attributes_.getForAxis(e,t)},Y.prototype.optionsViewForAxis_=function(e){var t=this;return function(n){var r=t.user_attrs_.axes;return r&&r[e]&&r[e].hasOwnProperty(n)?r[e][n]:("x"!==e||"logscale"!==n)&&("undefined"!=typeof t.user_attrs_[n]?t.user_attrs_[n]:(r=t.attrs_.axes)&&r[e]&&r[e].hasOwnProperty(n)?r[e][n]:"y"==e&&t.axes_[0].hasOwnProperty(n)?t.axes_[0][n]:"y2"==e&&t.axes_[1].hasOwnProperty(n)?t.axes_[1][n]:t.attr_(n))}},Y.prototype.rollPeriod=function(){return this.rollPeriod_},Y.prototype.xAxisRange=function(){return this.dateWindow_?this.dateWindow_:this.xAxisExtremes()},Y.prototype.xAxisExtremes=function(){var e=this.getNumericOption("xRangePad")/this.plotter_.area.w;if(0===this.numRows())return[0-e,1+e];var t=this.rawData_[0][0],n=this.rawData_[this.rawData_.length-1][0];if(e){var r=n-t;t-=r*e,n+=r*e}return[t,n]},Y.prototype.yAxisExtremes=function(){const e=this.gatherDatasets_(this.rolledSeries_,null),{extremes:t}=e,n=this.axes_;this.computeYAxisRanges_(t);const r=this.axes_;return this.axes_=n,r.map((e=>e.extremeRange))},Y.prototype.yAxisRange=function(e){if("undefined"==typeof e&&(e=0),e<0||e>=this.axes_.length)return null;var t=this.axes_[e];return[t.computedValueRange[0],t.computedValueRange[1]]},Y.prototype.yAxisRanges=function(){for(var e=[],t=0;t<this.axes_.length;t++)e.push(this.yAxisRange(t));return e},Y.prototype.toDomCoords=function(e,t,n){return[this.toDomXCoord(e),this.toDomYCoord(t,n)]},Y.prototype.toDomXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,n=this.xAxisRange();return t.x+(e-n[0])/(n[1]-n[0])*t.w},Y.prototype.toDomYCoord=function(e,t){var n=this.toPercentYCoord(e,t);if(null===n)return null;var r=this.plotter_.area;return r.y+n*r.h},Y.prototype.toDataCoords=function(e,t,n){return[this.toDataXCoord(e),this.toDataYCoord(t,n)]},Y.prototype.toDataXCoord=function(e){if(null===e)return null;var t=this.plotter_.area,n=this.xAxisRange();if(this.attributes_.getForAxis("logscale","x")){var o=(e-t.x)/t.w;return r.logRangeFraction(n[0],n[1],o)}return n[0]+(e-t.x)/t.w*(n[1]-n[0])},Y.prototype.toDataYCoord=function(e,t){if(null===e)return null;var n=this.plotter_.area,o=this.yAxisRange(t);if("undefined"==typeof t&&(t=0),this.attributes_.getForAxis("logscale",t)){var i=(e-n.y)/n.h;return r.logRangeFraction(o[1],o[0],i)}return o[0]+(n.y+n.h-e)/n.h*(o[1]-o[0])},Y.prototype.toPercentYCoord=function(e,t){if(null===e)return null;"undefined"==typeof t&&(t=0);var n,o=this.yAxisRange(t);if(this.attributes_.getForAxis("logscale",t)){var i=r.log10(o[0]),a=r.log10(o[1]);n=(a-r.log10(e))/(a-i)}else n=(o[1]-e)/(o[1]-o[0]);return n},Y.prototype.toPercentXCoord=function(e){if(null===e)return null;var t,n=this.xAxisRange();if(!0===this.attributes_.getForAxis("logscale","x")){var o=r.log10(n[0]),i=r.log10(n[1]);t=(r.log10(e)-o)/(i-o)}else t=(e-n[0])/(n[1]-n[0]);return t},Y.prototype.numColumns=function(){return this.rawData_?this.rawData_[0]?this.rawData_[0].length:this.attr_("labels").length:0},Y.prototype.numRows=function(){return this.rawData_?this.rawData_.length:0},Y.prototype.getValue=function(e,t){return e<0||e>=this.rawData_.length||t<0||t>=this.rawData_[e].length?null:this.rawData_[e][t]},Y.prototype.createInterface_=function(){var e=this.maindiv_;this.graphDiv=document.createElement("div"),this.graphDiv.style.textAlign="left",this.graphDiv.style.position="relative",e.appendChild(this.graphDiv),this.canvas_=r.createCanvas(),this.canvas_.style.position="absolute",this.canvas_.style.top=0,this.canvas_.style.left=0,this.hidden_=this.createPlotKitCanvas_(this.canvas_),this.canvas_ctx_=r.getContext(this.canvas_),this.hidden_ctx_=r.getContext(this.hidden_),this.resizeElements_(),this.graphDiv.appendChild(this.hidden_),this.graphDiv.appendChild(this.canvas_),this.mouseEventElement_=this.createMouseEventElement_(),this.layout_=new i(this);var t=this;if(this.mouseMoveHandler_=function(e){t.mouseMove_(e)},this.mouseOutHandler_=function(e){var n=e.target||e.fromElement,o=e.relatedTarget||e.toElement;r.isNodeContainedBy(n,t.graphDiv)&&!r.isNodeContainedBy(o,t.graphDiv)&&t.mouseOut_(e)},this.addAndTrackEvent(window,"mouseout",this.mouseOutHandler_),this.addAndTrackEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),!this.resizeHandler_){this.resizeHandler_=function(e){t.resize()},this.addAndTrackEvent(window,"resize",this.resizeHandler_),this.resizeObserver_=null;var n=this.getStringOption("resizable");if("undefined"===typeof ResizeObserver&&"no"!==n&&(console.error("ResizeObserver unavailable; ignoring resizable property"),n="no"),"horizontal"===n||"vertical"===n||"both"===n?e.style.resize=n:"passive"!==n&&(n="no"),"no"!==n){window.getComputedStyle(e).overflow;"visible"===window.getComputedStyle(e).overflow&&(e.style.overflow="hidden"),this.resizeObserver_=new ResizeObserver(this.resizeHandler_),this.resizeObserver_.observe(e)}}},Y.prototype.resizeElements_=function(){this.graphDiv.style.width=this.width_+"px",this.graphDiv.style.height=this.height_+"px";var e=this.getNumericOption("pixelRatio"),t=e||r.getContextPixelRatio(this.canvas_ctx_);this.canvas_.width=this.width_*t,this.canvas_.height=this.height_*t,this.canvas_.style.width=this.width_+"px",this.canvas_.style.height=this.height_+"px",1!==t&&this.canvas_ctx_.scale(t,t);var n=e||r.getContextPixelRatio(this.hidden_ctx_);this.hidden_.width=this.width_*n,this.hidden_.height=this.height_*n,this.hidden_.style.width=this.width_+"px",this.hidden_.style.height=this.height_+"px",1!==n&&this.hidden_ctx_.scale(n,n)},Y.prototype.destroy=function(){this.canvas_ctx_.restore(),this.hidden_ctx_.restore();for(var e=this.plugins_.length-1;e>=0;e--){var t=this.plugins_.pop();t.plugin.destroy&&t.plugin.destroy()}var n=function(e){for(;e.hasChildNodes();)n(e.firstChild),e.removeChild(e.firstChild)};this.removeTrackedEvents_(),r.removeEvent(window,"mouseout",this.mouseOutHandler_),r.removeEvent(this.mouseEventElement_,"mousemove",this.mouseMoveHandler_),this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null),r.removeEvent(window,"resize",this.resizeHandler_),this.resizeHandler_=null,n(this.maindiv_);var o=function(e){for(var t in e)"object"===typeof e[t]&&(e[t]=null)};o(this.layout_),o(this.plotter_),o(this)},Y.prototype.createPlotKitCanvas_=function(e){var t=r.createCanvas();return t.style.position="absolute",t.style.top=e.style.top,t.style.left=e.style.left,t.width=this.width_,t.height=this.height_,t.style.width=this.width_+"px",t.style.height=this.height_+"px",t},Y.prototype.createMouseEventElement_=function(){return this.canvas_},Y.prototype.setColors_=function(){var e=this.getLabels(),t=e.length-1;this.colors_=[],this.colorsMap_={};for(var n=this.getNumericOption("colorSaturation")||1,o=this.getNumericOption("colorValue")||.5,i=Math.ceil(t/2),a=this.getOption("colors"),s=this.visibility(),l=0;l<t;l++)if(s[l]){var u=e[l+1],c=this.attributes_.getForSeries("color",u);if(!c)if(a)c=a[l%a.length];else{var f=1*(l%2?i+(l+1)/2:Math.ceil((l+1)/2))/(1+t);c=r.hsvToRGB(f,n,o)}this.colors_.push(c),this.colorsMap_[u]=c}},Y.prototype.getColors=function(){return this.colors_},Y.prototype.getPropertiesForSeries=function(e){for(var t=-1,n=this.getLabels(),r=1;r<n.length;r++)if(n[r]==e){t=r;break}return-1==t?null:{name:e,column:t,visible:this.visibility()[t-1],color:this.colorsMap_[e],axis:1+this.attributes_.axisForSeries(e)}},Y.prototype.createRollInterface_=function(){var e=this.roller_;e||(this.roller_=e=document.createElement("input"),e.type="text",e.style.display="none",e.className="dygraph-roller",this.graphDiv.appendChild(e));var t=this.getBooleanOption("showRoller")?"block":"none",n=this.getArea(),o={top:n.y+n.h-25+"px",left:n.x+1+"px",display:t};e.size="2",e.value=this.rollPeriod_,r.update(e.style,o);const i=this;e.onchange=function(){return i.adjustRoll(e.value)}},Y.prototype.createDragInterface_=function(){var e={isZooming:!1,isPanning:!1,is2DPan:!1,dragStartX:null,dragStartY:null,dragEndX:null,dragEndY:null,dragDirection:null,prevEndX:null,prevEndY:null,prevDragDirection:null,cancelNextDblclick:!1,initialLeftmostDate:null,xUnitsPerPixel:null,dateRange:null,px:0,py:0,boundedDates:null,boundedValues:null,tarp:new v,initializeMouseDown:function(e,t,n){e.preventDefault?e.preventDefault():(e.returnValue=!1,e.cancelBubble=!0);var o=r.findPos(t.canvas_);n.px=o.x,n.py=o.y,n.dragStartX=r.dragGetX_(e,n),n.dragStartY=r.dragGetY_(e,n),n.cancelNextDblclick=!1,n.tarp.cover()},destroy:function(){var e=this;if((e.isZooming||e.isPanning)&&(e.isZooming=!1,e.dragStartX=null,e.dragStartY=null),e.isPanning){e.isPanning=!1,e.draggingDate=null,e.dateRange=null;for(var t=0;t<n.axes_.length;t++)delete n.axes_[t].draggingValue,delete n.axes_[t].dragValueRange}e.tarp.uncover()}},t=this.getOption("interactionModel"),n=this,o=function(t){return function(r){t(r,n,e)}};for(var i in t)t.hasOwnProperty(i)&&this.addAndTrackEvent(this.mouseEventElement_,i,o(t[i]));if(!t.willDestroyContextMyself){this.addAndTrackEvent(document,"mouseup",(function(t){e.destroy()}))}},Y.prototype.drawZoomRect_=function(e,t,n,o,i,a,s,l){var u=this.canvas_ctx_;a==r.HORIZONTAL?u.clearRect(Math.min(t,s),this.layout_.getPlotArea().y,Math.abs(t-s),this.layout_.getPlotArea().h):a==r.VERTICAL&&u.clearRect(this.layout_.getPlotArea().x,Math.min(o,l),this.layout_.getPlotArea().w,Math.abs(o-l)),e==r.HORIZONTAL?n&&t&&(u.fillStyle="rgba(128,128,128,0.33)",u.fillRect(Math.min(t,n),this.layout_.getPlotArea().y,Math.abs(n-t),this.layout_.getPlotArea().h)):e==r.VERTICAL&&i&&o&&(u.fillStyle="rgba(128,128,128,0.33)",u.fillRect(this.layout_.getPlotArea().x,Math.min(o,i),this.layout_.getPlotArea().w,Math.abs(i-o)))},Y.prototype.clearZoomRect_=function(){this.currentZoomRectArgs_=null,this.canvas_ctx_.clearRect(0,0,this.width_,this.height_)},Y.prototype.doZoomX_=function(e,t){this.currentZoomRectArgs_=null;var n=this.toDataXCoord(e),r=this.toDataXCoord(t);this.doZoomXDates_(n,r)},Y.prototype.doZoomXDates_=function(e,t){var n=this.xAxisRange(),r=[e,t];const o=this.getFunctionOption("zoomCallback"),i=this;this.doAnimatedZoom(n,r,null,null,(function(){o&&o.call(i,e,t,i.yAxisRanges())}))},Y.prototype.doZoomY_=function(e,t){this.currentZoomRectArgs_=null;for(var n=this.yAxisRanges(),r=[],o=0;o<this.axes_.length;o++){var i=this.toDataYCoord(e,o),a=this.toDataYCoord(t,o);r.push([a,i])}const s=this.getFunctionOption("zoomCallback"),l=this;this.doAnimatedZoom(null,null,n,r,(function(){if(s){const[e,t]=l.xAxisRange();s.call(l,e,t,l.yAxisRanges())}}))},Y.zoomAnimationFunction=function(e,t){return(1-Math.pow(1.5,-e))/(1-Math.pow(1.5,-t))},Y.prototype.resetZoom=function(){const e=this.isZoomed("x"),t=this.isZoomed("y"),n=e||t;if(this.clearSelection(),!n)return;const[r,o]=this.xAxisExtremes(),i=this.getBooleanOption("animatedZooms"),a=this.getFunctionOption("zoomCallback");if(!i)return this.dateWindow_=null,this.axes_.forEach((e=>{e.valueRange&&delete e.valueRange})),this.drawGraph_(),void(a&&a.call(this,r,o,this.yAxisRanges()));var s=null,l=null,u=null,c=null;e&&(s=this.xAxisRange(),l=[r,o]),t&&(u=this.yAxisRanges(),c=this.yAxisExtremes());const f=this;this.doAnimatedZoom(s,l,u,c,(function(){f.dateWindow_=null,f.axes_.forEach((e=>{e.valueRange&&delete e.valueRange})),a&&a.call(f,r,o,f.yAxisRanges())}))},Y.prototype.doAnimatedZoom=function(e,t,n,o,i){var a,s,l=this.getBooleanOption("animatedZooms")?Y.ANIMATION_STEPS:1,u=[],c=[];if(null!==e&&null!==t)for(a=1;a<=l;a++)s=Y.zoomAnimationFunction(a,l),u[a-1]=[e[0]*(1-s)+s*t[0],e[1]*(1-s)+s*t[1]];if(null!==n&&null!==o)for(a=1;a<=l;a++){s=Y.zoomAnimationFunction(a,l);for(var f=[],d=0;d<this.axes_.length;d++)f.push([n[d][0]*(1-s)+s*o[d][0],n[d][1]*(1-s)+s*o[d][1]]);c[a-1]=f}const p=this;r.repeatAndCleanup((function(e){if(c.length)for(var t=0;t<p.axes_.length;t++){var n=c[e][t];p.axes_[t].valueRange=[n[0],n[1]]}u.length&&(p.dateWindow_=u[e]),p.drawGraph_()}),l,Y.ANIMATION_DURATION/l,i)},Y.prototype.getArea=function(){return this.plotter_.area},Y.prototype.eventToDomCoords=function(e){if(e.offsetX&&e.offsetY)return[e.offsetX,e.offsetY];var t=r.findPos(this.mouseEventElement_);return[r.pageX(e)-t.x,r.pageY(e)-t.y]},Y.prototype.findClosestRow=function(e){for(var t=1/0,n=-1,o=this.layout_.points,i=0;i<o.length;i++)for(var a=o[i],s=a.length,l=0;l<s;l++){var u=a[l];if(r.isValidPoint(u,!0)){var c=Math.abs(u.canvasx-e);c<t&&(t=c,n=u.idx)}}return n},Y.prototype.findClosestPoint=function(e,t){for(var n,o,i,a,s,l,u,c=1/0,f=this.layout_.points.length-1;f>=0;--f)for(var d=this.layout_.points[f],p=0;p<d.length;++p)a=d[p],r.isValidPoint(a)&&(n=(o=a.canvasx-e)*o+(i=a.canvasy-t)*i)<c&&(c=n,s=a,l=f,u=a.idx);return{row:u,seriesName:this.layout_.setNames[l],point:s}},Y.prototype.findStackedPoint=function(e,t){for(var n,o,i=this.findClosestRow(e),a=0;a<this.layout_.points.length;++a){var s=i-this.getLeftBoundary_(a),l=this.layout_.points[a];if(!(s>=l.length)){var u=l[s];if(r.isValidPoint(u)){var c=u.canvasy;if(e>u.canvasx&&s+1<l.length){var f=l[s+1];if(r.isValidPoint(f))if((d=f.canvasx-u.canvasx)>0)c+=(e-u.canvasx)/d*(f.canvasy-u.canvasy)}else if(e<u.canvasx&&s>0){var d,p=l[s-1];if(r.isValidPoint(p))if((d=u.canvasx-p.canvasx)>0)c+=(u.canvasx-e)/d*(p.canvasy-u.canvasy)}(0===a||c<t)&&(n=u,o=a)}}}return{row:i,seriesName:this.layout_.setNames[o],point:n}},Y.prototype.mouseMove_=function(e){var t=this.layout_.points;if(void 0!==t&&null!==t){var n=this.eventToDomCoords(e),r=n[0],o=n[1],i=!1;if(this.getOption("highlightSeriesOpts")&&!this.isSeriesLocked()){var a;a=this.getBooleanOption("stackedGraph")?this.findStackedPoint(r,o):this.findClosestPoint(r,o),i=this.setSelection(a.row,a.seriesName)}else{var s=this.findClosestRow(r);i=this.setSelection(s)}var l=this.getFunctionOption("highlightCallback");l&&i&&l.call(this,e,this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}},Y.prototype.getLeftBoundary_=function(e){if(this.boundaryIds_[e])return this.boundaryIds_[e][0];for(var t=0;t<this.boundaryIds_.length;t++)if(void 0!==this.boundaryIds_[t])return this.boundaryIds_[t][0];return 0},Y.prototype.animateSelection_=function(e){void 0===this.fadeLevel&&(this.fadeLevel=0),void 0===this.animateId&&(this.animateId=0);var t=this.fadeLevel,n=e<0?t:10-t;if(n<=0)this.fadeLevel&&this.updateSelection_(1);else{var o=++this.animateId,i=this;r.repeatAndCleanup((function(t){i.animateId==o&&(i.fadeLevel+=e,0===i.fadeLevel?i.clearSelection():i.updateSelection_(i.fadeLevel/10))}),n,30,(function(){0!==i.fadeLevel&&e<0&&(i.fadeLevel=0,i.clearSelection())}))}},Y.prototype.updateSelection_=function(e){var t;this.cascadeEvents_("select",{selectedRow:-1===this.lastRow_?void 0:this.lastRow_,selectedX:null===this.lastx_?void 0:this.lastx_,selectedPoints:this.selPoints_});var n=this.canvas_ctx_;if(this.getOption("highlightSeriesOpts")){n.clearRect(0,0,this.width_,this.height_);var o=1-this.getNumericOption("highlightSeriesBackgroundAlpha"),i=r.toRGB_(this.getOption("highlightSeriesBackgroundColor"));if(o){if(this.getBooleanOption("animateBackgroundFade")){if(void 0===e)return void this.animateSelection_(1);o*=e}n.fillStyle="rgba("+i.r+","+i.g+","+i.b+","+o+")",n.fillRect(0,0,this.width_,this.height_)}this.plotter_._renderLineChart(this.highlightSet_,n)}else if(this.previousVerticalX_>=0){var a=0,s=this.attr_("labels");for(t=1;t<s.length;t++){var l=this.getNumericOption("highlightCircleSize",s[t]);l>a&&(a=l)}var u=this.previousVerticalX_;n.clearRect(u-a-1,0,2*a+2,this.height_)}if(this.selPoints_.length>0){var c=this.selPoints_[0].canvasx;for(n.save(),t=0;t<this.selPoints_.length;t++){var f=this.selPoints_[t];if(!isNaN(f.canvasy)){var d=this.getNumericOption("highlightCircleSize",f.name),p=this.getFunctionOption("drawHighlightPointCallback",f.name),h=this.plotter_.colors[f.name];p||(p=r.Circles.DEFAULT),n.lineWidth=this.getNumericOption("strokeWidth",f.name),n.strokeStyle=h,n.fillStyle=h,p.call(this,this,f.name,n,c,f.canvasy,h,d,f.idx)}}n.restore(),this.previousVerticalX_=c}},Y.prototype.setSelection=function(e,t,n,r){this.selPoints_=[];var o=!1;if(!1!==e&&e>=0){e!=this.lastRow_&&(o=!0),this.lastRow_=e;for(var i=0;i<this.layout_.points.length;++i){var a=this.layout_.points[i],s=e-this.getLeftBoundary_(i);if(s>=0&&s<a.length&&a[s].idx==e)null!==(u=a[s]).yval&&this.selPoints_.push(u);else for(var l=0;l<a.length;++l){var u;if((u=a[l]).idx==e){null!==u.yval&&this.selPoints_.push(u);break}}}}else this.lastRow_>=0&&(o=!0),this.lastRow_=-1;if(this.selPoints_.length?this.lastx_=this.selPoints_[0].xval:this.lastx_=null,void 0!==t&&(this.highlightSet_!==t&&(o=!0),this.highlightSet_=t),void 0!==n&&(this.lockedSet_=n),o&&(this.updateSelection_(void 0),r)){var c=this.getFunctionOption("highlightCallback");if(c){c.call(this,{},this.lastx_,this.selPoints_,this.lastRow_,this.highlightSet_)}}return o},Y.prototype.mouseOut_=function(e){this.getFunctionOption("unhighlightCallback")&&this.getFunctionOption("unhighlightCallback").call(this,e),this.getBooleanOption("hideOverlayOnMouseOut")&&!this.lockedSet_&&this.clearSelection()},Y.prototype.clearSelection=function(){this.cascadeEvents_("deselect",{}),this.lockedSet_=!1,this.fadeLevel?this.animateSelection_(-1):(this.canvas_ctx_.clearRect(0,0,this.width_,this.height_),this.fadeLevel=0,this.selPoints_=[],this.lastx_=null,this.lastRow_=-1,this.highlightSet_=null)},Y.prototype.getSelection=function(){if(!this.selPoints_||this.selPoints_.length<1)return-1;for(var e=0;e<this.layout_.points.length;e++)for(var t=this.layout_.points[e],n=0;n<t.length;n++)if(t[n].x==this.selPoints_[0].x)return t[n].idx;return-1},Y.prototype.getHighlightSeries=function(){return this.highlightSet_},Y.prototype.isSeriesLocked=function(){return this.lockedSet_},Y.prototype.loadedEvent_=function(e){this.rawData_=this.parseCSV_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_()},Y.prototype.addXTicks_=function(){var e;e=this.dateWindow_?[this.dateWindow_[0],this.dateWindow_[1]]:this.xAxisExtremes();var t=this.optionsViewForAxis_("x"),n=t("ticker")(e[0],e[1],this.plotter_.area.w,t,this);this.layout_.setXTicks(n)},Y.prototype.getHandlerClass_=function(){return this.attr_("dataHandler")?this.attr_("dataHandler"):this.fractions_?this.getBooleanOption("errorBars")?R:M:this.getBooleanOption("customBars")?A:this.getBooleanOption("errorBars")?C:_},Y.prototype.predraw_=function(){var e=new Date;this.dataHandler_=new(this.getHandlerClass_()),this.layout_.computePlotArea(),this.computeYAxes_(),this.is_initial_draw_||(this.canvas_ctx_.restore(),this.hidden_ctx_.restore()),this.canvas_ctx_.save(),this.hidden_ctx_.save(),this.plotter_=new s(this,this.hidden_,this.hidden_ctx_,this.layout_),this.createRollInterface_(),this.cascadeEvents_("predraw"),this.rolledSeries_=[null];for(var t=1;t<this.numColumns();t++){var n=this.dataHandler_.extractSeries(this.rawData_,t,this.attributes_);this.rollPeriod_>1&&(n=this.dataHandler_.rollingAverage(n,this.rollPeriod_,this.attributes_,t)),this.rolledSeries_.push(n)}this.drawGraph_();var r=new Date;this.drawingTimeMs_=r-e},Y.PointType=void 0,Y.stackPoints_=function(e,t,n,r){for(var o=null,i=null,a=null,s=-1,l=function(t){if(!(s>=t))for(var n=t;n<e.length;++n)if(a=null,!isNaN(e[n].yval)&&null!==e[n].yval){s=n,a=e[n];break}},u=0;u<e.length;++u){var c=e[u],f=c.xval;void 0===t[f]&&(t[f]=0);var d=c.yval;isNaN(d)||null===d?"none"==r?d=0:(l(u),d=i&&a&&"none"!=r?i.yval+(a.yval-i.yval)*((f-i.xval)/(a.xval-i.xval)):i&&"all"==r?i.yval:a&&"all"==r?a.yval:0):i=c;var p=t[f];o!=f&&(p+=d,t[f]=p),o=f,c.yval_stacked=p,p>n[1]&&(n[1]=p),p<n[0]&&(n[0]=p)}},Y.prototype.gatherDatasets_=function(e,t){var n,r,o,i,a,s,l=[],u=[],c=[],f={};for(n=e.length-1;n>=1;n--)if(this.visibility()[n-1]){if(t){s=e[n];var d=t[0],p=t[1];for(o=null,i=null,r=0;r<s.length;r++)s[r][0]>=d&&null===o&&(o=r),s[r][0]<=p&&(i=r);null===o&&(o=0);for(var h=o,g=!0;g&&h>0;)g=null===s[--h][1];null===i&&(i=s.length-1);var v=i;for(g=!0;g&&v<s.length-1;)g=null===s[++v][1];h!==o&&(o=h),v!==i&&(i=v),l[n-1]=[o,i],s=s.slice(o,i+1)}else s=e[n],l[n-1]=[0,s.length-1];var m=this.attr_("labels")[n],y=this.dataHandler_.getExtremeYValues(s,t,this.getBooleanOption("stepPlot",m)),b=this.dataHandler_.seriesToPoints(s,m,l[n-1][0]);this.getBooleanOption("stackedGraph")&&(void 0===c[a=this.attributes_.axisForSeries(m)]&&(c[a]=[]),Y.stackPoints_(b,c[a],y,this.getBooleanOption("stackedGraphNaNFill"))),f[m]=y,u[n]=b}return{points:u,extremes:f,boundaryIds:l}},Y.prototype.drawGraph_=function(){var e=new Date,t=this.is_initial_draw_;this.is_initial_draw_=!1,this.layout_.removeAllDatasets(),this.setColors_(),this.attrs_.pointSize=.5*this.getNumericOption("highlightCircleSize");var n=this.gatherDatasets_(this.rolledSeries_,this.dateWindow_),r=n.points,o=n.extremes;this.boundaryIds_=n.boundaryIds,this.setIndexByName_={};for(var i=this.attr_("labels"),a=0,s=1;s<r.length;s++)this.visibility()[s-1]&&(this.layout_.addDataset(i[s],r[s]),this.datasetIndex_[s]=a++);for(s=0;s<i.length;s++)this.setIndexByName_[i[s]]=s;if(this.computeYAxisRanges_(o),this.layout_.setYAxes(this.axes_),this.addXTicks_(),this.layout_.evaluate(),this.renderGraph_(t),this.getStringOption("timingName")){var l=new Date;console.log(this.getStringOption("timingName")+" - drawGraph: "+(l-e)+"ms")}},Y.prototype.renderGraph_=function(e){this.cascadeEvents_("clearChart"),this.plotter_.clear();const t=this.getFunctionOption("underlayCallback");t&&t.call(this,this.hidden_ctx_,this.layout_.getPlotArea(),this,this);var n={canvas:this.hidden_,drawingContext:this.hidden_ctx_};this.cascadeEvents_("willDrawChart",n),this.plotter_.render(),this.cascadeEvents_("didDrawChart",n),this.lastRow_=-1,this.canvas_.getContext("2d").clearRect(0,0,this.width_,this.height_);const r=this.getFunctionOption("drawCallback");if(null!==r&&r.call(this,this,e),e)for(this.readyFired_=!0;this.readyFns_.length>0;){this.readyFns_.pop()(this)}},Y.prototype.computeYAxes_=function(){var e,t,n;for(this.axes_=[],e=0;e<this.attributes_.numAxes();e++)t={g:this},r.update(t,this.attributes_.axisOptions(e)),this.axes_[e]=t;for(e=0;e<this.axes_.length;e++)if(0===e)(n=(t=this.optionsViewForAxis_("y"+(e?"2":"")))("valueRange"))&&(this.axes_[e].valueRange=n);else{var o=this.user_attrs_.axes;o&&o.y2&&(n=o.y2.valueRange)&&(this.axes_[e].valueRange=n)}},Y.prototype.numAxes=function(){return this.attributes_.numAxes()},Y.prototype.axisPropertiesForSeries=function(e){return this.axes_[this.attributes_.axisForSeries(e)]},Y.prototype.computeYAxisRanges_=function(e){for(var t,n,o,i,a,s=function(e){return isNaN(parseFloat(e))},l=this.attributes_.numAxes(),u=0;u<l;u++){var c=this.axes_[u],f=this.attributes_.getForAxis("logscale",u),d=this.attributes_.getForAxis("includeZero",u),p=this.attributes_.getForAxis("independentTicks",u);o=this.attributes_.seriesForAxis(u),t=!0,i=.1;const l=this.getNumericOption("yRangePad");if(null!==l&&(t=!1,i=l/this.plotter_.area.h),0===o.length)c.extremeRange=[0,1];else{for(var h,g,v=1/0,m=-1/0,y=0;y<o.length;y++)e.hasOwnProperty(o[y])&&(null!==(h=e[o[y]][0])&&(v=Math.min(h,v)),null!==(g=e[o[y]][1])&&(m=Math.max(g,m)));d&&!f&&(v>0&&(v=0),m<0&&(m=0)),v==1/0&&(v=0),m==-1/0&&(m=1),0===(n=m-v)&&(0!==m?n=Math.abs(m):(m=1,n=1));var b=m,w=v;t&&(f?(b=m+i*n,w=v):((w=v-i*n)<0&&v>=0&&(w=0),(b=m+i*n)>0&&m<=0&&(b=0))),c.extremeRange=[w,b]}if(c.valueRange){var _=s(c.valueRange[0])?c.extremeRange[0]:c.valueRange[0],x=s(c.valueRange[1])?c.extremeRange[1]:c.valueRange[1];c.computedValueRange=[_,x]}else c.computedValueRange=c.extremeRange;if(!t){if((_=c.computedValueRange[0])===(x=c.computedValueRange[1]))if(0===_)x=1;else{var S=Math.abs(_/10);_-=S,x+=S}if(f){var O=i/(2*i-1),C=(i-1)/(2*i-1);c.computedValueRange[0]=r.logRangeFraction(_,x,O),c.computedValueRange[1]=r.logRangeFraction(_,x,C)}else n=x-_,c.computedValueRange[0]=_-n*i,c.computedValueRange[1]=x+n*i}if(p){c.independentTicks=p;var E=(A=this.optionsViewForAxis_("y"+(u?"2":"")))("ticker");c.ticks=E(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,A,this),a||(a=c)}}if(void 0===a)throw'Configuration Error: At least one axis has to have the "independentTicks" option activated.';for(u=0;u<l;u++){if(!(c=this.axes_[u]).independentTicks){E=(A=this.optionsViewForAxis_("y"+(u?"2":"")))("ticker");for(var A,k=a.ticks,M=a.computedValueRange[1]-a.computedValueRange[0],P=c.computedValueRange[1]-c.computedValueRange[0],R=[],T=0;T<k.length;T++){var I=(k[T].v-a.computedValueRange[0])/M,B=c.computedValueRange[0]+I*P;R.push(B)}c.ticks=E(c.computedValueRange[0],c.computedValueRange[1],this.plotter_.area.h,A,this,R)}}},Y.prototype.detectTypeFromString_=function(e){var t=!1,n=e.indexOf("-");(n>0&&"e"!=e[n-1]&&"E"!=e[n-1]||e.indexOf("/")>=0||isNaN(parseFloat(e)))&&(t=!0),this.setXAxisOptions_(t)},Y.prototype.setXAxisOptions_=function(e){e?(this.attrs_.xValueParser=r.dateParser,this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=l.cc,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter):(this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=l.Dv,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter)},Y.prototype.parseCSV_=function(e){var t,n,o=[],i=r.detectLineDelimiter(e),a=e.split(i||"\n"),s=this.getStringOption("delimiter");-1==a[0].indexOf(s)&&a[0].indexOf("\t")>=0&&(s="\t");var l=0;"labels"in this.user_attrs_||(l=1,this.attrs_.labels=a[0].split(s),this.attributes_.reparseSeries());for(var u,c=!1,f=this.attr_("labels").length,d=!1,p=l;p<a.length;p++){var h=a[p];if(p,0!==h.length&&"#"!=h[0]){var g=h.split(s);if(!(g.length<2)){var v=[];if(c||(this.detectTypeFromString_(g[0]),u=this.getFunctionOption("xValueParser"),c=!0),v[0]=u(g[0],this),this.fractions_)for(n=1;n<g.length;n++)2!=(t=g[n].split("/")).length?(console.error('Expected fractional "num/den" values in CSV data but found a value \''+g[n]+"' on line "+(1+p)+" ('"+h+"') which is not of this form."),v[n]=[0,0]):v[n]=[r.parseFloat_(t[0],p,h),r.parseFloat_(t[1],p,h)];else if(this.getBooleanOption("errorBars"))for(g.length%2!=1&&console.error("Expected alternating (value, stdev.) pairs in CSV data but line "+(1+p)+" has an odd number of values ("+(g.length-1)+"): '"+h+"'"),n=1;n<g.length;n+=2)v[(n+1)/2]=[r.parseFloat_(g[n],p,h),r.parseFloat_(g[n+1],p,h)];else if(this.getBooleanOption("customBars"))for(n=1;n<g.length;n++){var m=g[n];/^ *$/.test(m)?v[n]=[null,null,null]:3==(t=m.split(";")).length?v[n]=[r.parseFloat_(t[0],p,h),r.parseFloat_(t[1],p,h),r.parseFloat_(t[2],p,h)]:console.warn('When using customBars, values must be either blank or "low;center;high" tuples (got "'+m+'" on line '+(1+p)+")")}else for(n=1;n<g.length;n++)v[n]=r.parseFloat_(g[n],p,h);if(o.length>0&&v[0]<o[o.length-1][0]&&(d=!0),v.length!=f&&console.error("Number of columns in line "+p+" ("+v.length+") does not agree with number of labels ("+f+") "+h),0===p&&this.attr_("labels")){var y=!0;for(n=0;y&&n<v.length;n++)v[n]&&(y=!1);if(y){console.warn("The dygraphs 'labels' option is set, but the first row of CSV data ('"+h+"') appears to also contain labels. Will drop the CSV labels and use the option labels.");continue}}o.push(v)}}}return d&&(console.warn("CSV is out of order; order it correctly to speed loading."),o.sort((function(e,t){return e[0]-t[0]}))),o},Y.prototype.parseArray_=function(e){if(0===e.length&&(e=[[0]]),0===e[0].length)return console.error("Data set cannot contain an empty row"),null;var t;if(function(e){const t=e[0],n=t[0];if("number"!==typeof n&&!r.isDateLike(n))throw new Error(`Expected number or date but got ${typeof n}: ${n}.`);for(let o=1;o<t.length;o++){const e=t[o];if(null!==e&&void 0!==e&&"number"!==typeof e&&!r.isArrayLike(e))throw new Error(`Expected number or array but got ${typeof e}: ${e}.`)}}(e),null===this.attr_("labels")){for(console.warn("Using default labels. Set labels explicitly via 'labels' in the options parameter"),this.attrs_.labels=["X"],t=1;t<e[0].length;t++)this.attrs_.labels.push("Y"+t);this.attributes_.reparseSeries()}else{var n=this.attr_("labels");if(n.length!=e[0].length)return console.error("Mismatch between number of labels ("+n+") and number of columns in array ("+e[0].length+")"),null}if(r.isDateLike(e[0][0])){this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=l.cc,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter;var o=r.clone(e);for(t=0;t<e.length;t++){if(0===o[t].length)return console.error("Row "+(1+t)+" of data is empty"),null;if(null===o[t][0]||"function"!=typeof o[t][0].getTime||isNaN(o[t][0].getTime()))return console.error("x value in row "+(1+t)+" is not a Date"),null;o[t][0]=o[t][0].getTime()}return o}return this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=l.Dv,this.attrs_.axes.x.axisLabelFormatter=r.numberAxisLabelFormatter,e},Y.prototype.parseDataTable_=function(e){var t=function(e){var t=String.fromCharCode(65+e%26);for(e=Math.floor(e/26);e>0;)t=String.fromCharCode(65+(e-1)%26)+t.toLowerCase(),e=Math.floor((e-1)/26);return t},n=e.getNumberOfColumns(),o=e.getNumberOfRows(),i=e.getColumnType(0);if("date"==i||"datetime"==i)this.attrs_.xValueParser=r.dateParser,this.attrs_.axes.x.valueFormatter=r.dateValueFormatter,this.attrs_.axes.x.ticker=l.cc,this.attrs_.axes.x.axisLabelFormatter=r.dateAxisLabelFormatter;else{if("number"!=i)throw new Error("only 'date', 'datetime' and 'number' types are supported for column 1 of DataTable input (Got '"+i+"')");this.attrs_.xValueParser=function(e){return parseFloat(e)},this.attrs_.axes.x.valueFormatter=function(e){return e},this.attrs_.axes.x.ticker=l.Dv,this.attrs_.axes.x.axisLabelFormatter=this.attrs_.axes.x.valueFormatter}var a,s,u=[],c={},f=!1;for(a=1;a<n;a++){var d=e.getColumnType(a);if("number"==d)u.push(a);else{if("string"!=d||!this.getBooleanOption("displayAnnotations"))throw new Error("Only 'number' is supported as a dependent type with Gviz. 'string' is only supported if displayAnnotations is true");var p=u[u.length-1];c.hasOwnProperty(p)?c[p].push(a):c[p]=[a],f=!0}}var h=[e.getColumnLabel(0)];for(a=0;a<u.length;a++)h.push(e.getColumnLabel(u[a])),this.getBooleanOption("errorBars")&&(a+=1);this.attrs_.labels=h,n=h.length;var g=[],v=!1,m=[];for(a=0;a<o;a++){var y=[];if("undefined"!==typeof e.getValue(a,0)&&null!==e.getValue(a,0)){if("date"==i||"datetime"==i?y.push(e.getValue(a,0).getTime()):y.push(e.getValue(a,0)),this.getBooleanOption("errorBars"))for(s=0;s<n-1;s++)y.push([e.getValue(a,1+2*s),e.getValue(a,2+2*s)]);else{for(s=0;s<u.length;s++){var b=u[s];if(y.push(e.getValue(a,b)),f&&c.hasOwnProperty(b)&&null!==e.getValue(a,c[b][0])){var w={};w.series=e.getColumnLabel(b),w.xval=y[0],w.shortText=t(m.length),w.text="";for(var _=0;_<c[b].length;_++)_&&(w.text+="\n"),w.text+=e.getValue(a,c[b][_]);m.push(w)}}for(s=0;s<y.length;s++)isFinite(y[s])||(y[s]=null)}g.length>0&&y[0]<g[g.length-1][0]&&(v=!0),g.push(y)}else console.warn("Ignoring row "+a+" of DataTable because of undefined or null first column.")}v&&(console.warn("DataTable is out of order; order it correctly to speed loading."),g.sort((function(e,t){return e[0]-t[0]}))),this.rawData_=g,m.length>0&&this.setAnnotations(m,!0),this.attributes_.reparseSeries()},Y.prototype.cascadeDataDidUpdateEvent_=function(){this.cascadeEvents_("dataDidUpdate",{})},Y.prototype.start_=function(){var e=this.file_;"function"==typeof e&&(e=e());const t=r.typeArrayLike(e);if("array"==t)this.rawData_=this.parseArray_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("object"==t&&"function"==typeof e.getColumnRange)this.parseDataTable_(e),this.cascadeDataDidUpdateEvent_(),this.predraw_();else if("string"==t){if(r.detectLineDelimiter(e))this.loadedEvent_(e);else{var n;n=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");var o=this;n.onreadystatechange=function(){4==n.readyState&&(200!==n.status&&0!==n.status||o.loadedEvent_(n.responseText))},n.open("GET",e,!0),n.send(null)}}else console.error("Unknown data format: "+t)},Y.prototype.updateOptions=function(e,t){"undefined"==typeof t&&(t=!1);var n=e.file,o=Y.copyUserAttrs_(e),i=this.attributes_.numAxes();"rollPeriod"in o&&(this.rollPeriod_=o.rollPeriod),"dateWindow"in o&&(this.dateWindow_=o.dateWindow);var a=r.isPixelChangingOptionList(this.attr_("labels"),o);r.updateDeep(this.user_attrs_,o),this.attributes_.reparseSeries(),i<this.attributes_.numAxes()&&this.plotter_.clear(),n?(this.cascadeEvents_("dataWillUpdate",{}),this.file_=n,t||this.start_()):t||(a?this.predraw_():this.renderGraph_(!1))},Y.copyUserAttrs_=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&"file"!=n&&e.hasOwnProperty(n)&&(t[n]=e[n]);return t},Y.prototype.resize=function(e,t){if(!this.resize_lock){this.resize_lock=!0,null===e!=(null===t)&&(console.warn("Dygraph.resize() should be called with zero parameters or two non-NULL parameters. Pretending it was zero."),e=t=null);var n=this.width_,r=this.height_;e?(this.maindiv_.style.width=e+"px",this.maindiv_.style.height=t+"px",this.width_=e,this.height_=t):(this.width_=this.maindiv_.clientWidth,this.height_=this.maindiv_.clientHeight),n==this.width_&&r==this.height_||(this.resizeElements_(),this.predraw_()),this.resize_lock=!1}},Y.prototype.adjustRoll=function(e){this.rollPeriod_=e,this.predraw_()},Y.prototype.visibility=function(){for(this.getOption("visibility")||(this.attrs_.visibility=[]);this.getOption("visibility").length<this.numColumns()-1;)this.attrs_.visibility.push(!0);return this.getOption("visibility")},Y.prototype.setVisibility=function(e,t){var n=this.visibility(),r=!1;if(Array.isArray(e)||(null!==e&&"object"===typeof e?r=!0:e=[e]),r)for(var o in e)e.hasOwnProperty(o)&&(o<0||o>=n.length?console.warn("Invalid series number in setVisibility: "+o):n[o]=e[o]);else for(o=0;o<e.length;o++)"boolean"===typeof e[o]?o>=n.length?console.warn("Invalid series number in setVisibility: "+o):n[o]=e[o]:e[o]<0||e[o]>=n.length?console.warn("Invalid series number in setVisibility: "+e[o]):n[e[o]]=t;this.predraw_()},Y.prototype.size=function(){return{width:this.width_,height:this.height_}},Y.prototype.setAnnotations=function(e,t){this.annotations_=e,this.layout_?(this.layout_.setAnnotations(this.annotations_),t||this.predraw_()):console.warn("Tried to setAnnotations before dygraph was ready. Try setting them in a ready() block. See dygraphs.com/tests/annotation.html")},Y.prototype.annotations=function(){return this.annotations_},Y.prototype.getLabels=function(){var e=this.attr_("labels");return e?e.slice():null},Y.prototype.indexFromSetName=function(e){return this.setIndexByName_[e]},Y.prototype.getRowForX=function(e){for(var t=0,n=this.numRows()-1;t<=n;){var r=n+t>>1,o=this.getValue(r,0);if(o<e)t=r+1;else if(o>e)n=r-1;else{if(t==r)return r;n=r}}return null},Y.prototype.ready=function(e){this.is_initial_draw_?this.readyFns_.push(e):e.call(this,this)},Y.prototype.addAndTrackEvent=function(e,t,n){r.addEvent(e,t,n),this.registeredEvents_.push({elem:e,type:t,fn:n})},Y.prototype.removeTrackedEvents_=function(){if(this.registeredEvents_)for(var e=0;e<this.registeredEvents_.length;e++){var t=this.registeredEvents_[e];r.removeEvent(t.elem,t.type,t.fn)}this.registeredEvents_=[]},Y.PLUGINS=[U,j,W,N,I,H],Y.GVizChart=$,Y.DASHED_LINE=r.DASHED_LINE,Y.DOT_DASH_LINE=r.DOT_DASH_LINE,Y.dateAxisLabelFormatter=r.dateAxisLabelFormatter,Y.toRGB_=r.toRGB_,Y.findPos=r.findPos,Y.pageX=r.pageX,Y.pageY=r.pageY,Y.dateString_=r.dateString_,Y.defaultInteractionModel=f.defaultModel,Y.nonInteractiveModel=Y.nonInteractiveModel_=f.nonInteractiveModel_,Y.Circles=r.Circles,Y.Plugins={Legend:U,Axes:j,Annotations:I,ChartLabels:N,Grid:H,RangeSelector:W},Y.DataHandlers={DefaultHandler:_,BarsHandler:S,CustomBarsHandler:A,DefaultFractionHandler:M,ErrorBarsHandler:C,FractionsBarsHandler:R},Y.startPan=f.startPan,Y.startZoom=f.startZoom,Y.movePan=f.movePan,Y.moveZoom=f.moveZoom,Y.endPan=f.endPan,Y.endZoom=f.endZoom,Y.numericLinearTicks=l.JL,Y.numericTicks=l.Dv,Y.dateTicker=l.cc,Y.Granularity=l.He,Y.getDateAxis=l.XX,Y.floatFormat=r.floatFormat,r.setupDOMready_(Y);var K=Y},86929:function(e,t,n){!function(){"use strict";var e;function t(e,t,n,r,o){var i=void 0!==r?r:1/3,a=o||!1;if(!n)return[t.x,t.y,null,null];var s=(1-i)*t.x+i*e.x,l=(1-i)*t.y+i*e.y,u=(1-i)*t.x+i*n.x,c=(1-i)*t.y+i*n.y;if(s!=u){var f=t.y-c-(t.x-u)*(l-c)/(s-u);l+=f,c+=f}return a||(l>e.y&&l>t.y?(l=Math.max(e.y,t.y),c=2*t.y-l):l<e.y&&l<t.y&&(l=Math.min(e.y,t.y),c=2*t.y-l),c>t.y&&c>n.y?(c=Math.max(t.y,n.y),l=2*t.y-c):c<t.y&&c<n.y&&(c=Math.min(t.y,n.y),l=2*t.y-c)),[s,l,u,c]}function r(e){return!!e&&!isNaN(e)}function o(e){var n=e.drawingContext,i=e.points;n.beginPath(),n.moveTo(i[0].canvasx,i[0].canvasy);for(var a=i[0].canvasx,s=i[0].canvasy,l=1;l<i.length;l++){var u=i[l-1],c=i[l],f=i[l+1];if(u=u&&r(u.canvasy)?u:null,c=c&&r(c.canvasy)?c:null,f=f&&r(f.canvasy)?f:null,u&&c){var d=t({x:u.canvasx,y:u.canvasy},{x:c.canvasx,y:c.canvasy},f&&{x:f.canvasx,y:f.canvasy},o.smoothing);a=null!==a?a:u.canvasx,s=null!==s?s:u.canvasy,n.bezierCurveTo(a,s,d[0],d[1],c.canvasx,c.canvasy),a=d[2],s=d[3]}else c?(n.moveTo(c.canvasx,c.canvasy),a=c.canvasx,s=c.canvasy):a=s=null}n.stroke()}window.Dygraph?e=window.Dygraph:"undefined"===typeof(e=n(95984)).NAME&&"undefined"!==typeof e.default&&(e=e.default),o.smoothing=1/3,o._getControlPoints=t,window.smoothPlotter=o,e.smoothPlotter=o,e._require.add("dygraphs/src/extras/smooth-plotter.js",{})}()},26712:function(e,t){var n,r;r=this,void 0===(n=function(){return r.EasyPieChart=function(){var e=function(e,t){var n,r=document.createElement("canvas");e.appendChild(r),"object"===typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(r);var o=r.getContext("2d");r.width=r.height=t.size;var i=1;window.devicePixelRatio>1&&(i=window.devicePixelRatio,r.style.width=r.style.height=[t.size,"px"].join(""),r.width=r.height=t.size*i,o.scale(i,i)),o.translate(t.size/2,t.size/2),o.rotate((t.rotate/180-.5)*Math.PI);var a=(t.size-t.lineWidth)/2;t.scaleColor&&t.scaleLength&&(a-=t.scaleLength+2),Date.now=Date.now||function(){return+new Date};var s=function(e,t,n){var r=(n=Math.min(Math.max(-1,n||0),1))<=0;o.beginPath(),o.arc(0,0,a,0,2*Math.PI*n,r),o.strokeStyle=e,o.lineWidth=t,o.stroke()},l=function(){var e,n;o.lineWidth=1,o.fillStyle=t.scaleColor,o.save();for(var r=24;r>0;--r)r%6===0?(n=t.scaleLength,e=0):(n=.6*t.scaleLength,e=t.scaleLength-n),o.fillRect(-t.size/2+e,0,n,1),o.rotate(Math.PI/12);o.restore()},u=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)},c=function(){t.scaleColor&&l(),t.trackColor&&s(t.trackColor,t.trackWidth||t.lineWidth,1)};this.getCanvas=function(){return r},this.getCtx=function(){return o},this.clear=function(){o.clearRect(t.size/-2,t.size/-2,t.size,t.size)},this.draw=function(e){var r;t.scaleColor||t.trackColor?o.getImageData&&o.putImageData?n?o.putImageData(n,0,0):(c(),n=o.getImageData(0,0,t.size*i,t.size*i)):(this.clear(),c()):this.clear(),o.lineCap=t.lineCap,r="function"===typeof t.barColor?t.barColor(e):t.barColor,s(r,t.lineWidth,e/100)}.bind(this),this.animate=function(e,n){var r=Date.now();t.onStart(e,n);var o=function(){var i=Math.min(Date.now()-r,t.animate.duration),a=t.easing(this,i,e,n-e,t.animate.duration);this.draw(a),t.onStep(e,n,a),i>=t.animate.duration?t.onStop(e,n):u(o)}.bind(this);u(o)}.bind(this)};return function(t,n){var r={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(e,t,n,r,o){return(t/=o/2)<1?r/2*t*t+n:-r/2*(--t*(t-2)-1)+n},onStart:function(e,t){},onStep:function(e,t,n){},onStop:function(e,t){}};if("undefined"!==typeof e)r.renderer=e;else{if("undefined"===typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");r.renderer=SVGRenderer}var o={},i=0,a=function(){for(var e in this.el=t,this.options=o,r)r.hasOwnProperty(e)&&(o[e]=n&&"undefined"!==typeof n[e]?n[e]:r[e],"function"===typeof o[e]&&(o[e]=o[e].bind(this)));"string"===typeof o.easing&&"undefined"!==typeof jQuery&&jQuery.isFunction(jQuery.easing[o.easing])?o.easing=jQuery.easing[o.easing]:o.easing=r.easing,"number"===typeof o.animate&&(o.animate={duration:o.animate,enabled:!0}),"boolean"!==typeof o.animate||o.animate||(o.animate={duration:1e3,enabled:o.animate}),this.renderer=new o.renderer(t,o),this.renderer.draw(i),t.dataset&&t.dataset.percent?this.update(parseFloat(t.dataset.percent)):t.getAttribute&&t.getAttribute("data-percent")&&this.update(parseFloat(t.getAttribute("data-percent")))}.bind(this);this.update=function(e){return e=parseFloat(e),o.animate.enabled?this.renderer.animate(i,e):this.renderer.draw(e),i=e,this}.bind(this),this.disableAnimation=function(){return o.animate.enabled=!1,this},this.enableAnimation=function(){return o.animate.enabled=!0,this},a()}}()}.apply(t,[]))||(e.exports=n)},92806:function(e){"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),o=Array.isArray(t),i=0;i<r.length;i++){var a=r[i],s=e[a];(o?-1!==t.indexOf(a):t(a,s,e))&&(n[a]=s)}return n}},17648:function(e){"use strict";var t=Array.prototype.slice,n=Object.prototype.toString;e.exports=function(e){var r=this;if("function"!==typeof r||"[object Function]"!==n.call(r))throw new TypeError("Function.prototype.bind called on incompatible "+r);for(var o,i=t.call(arguments,1),a=Math.max(0,r.length-i.length),s=[],l=0;l<a;l++)s.push("$"+l);if(o=Function("binder","return function ("+s.join(",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof o){var n=r.apply(this,i.concat(t.call(arguments)));return Object(n)===n?n:this}return r.apply(e,i.concat(t.call(arguments)))})),r.prototype){var u=function(){};u.prototype=r.prototype,o.prototype=new u,u.prototype=null}return o}},58612:function(e,t,n){"use strict";var r=n(17648);e.exports=Function.prototype.bind||r},25972:function(e){"use strict";var t=function(){return"string"===typeof function(){}.name},n=Object.getOwnPropertyDescriptor;if(n)try{n([],"length")}catch(o){n=null}t.functionsHaveConfigurableNames=function(){if(!t()||!n)return!1;var e=n((function(){}),"name");return!!e&&!!e.configurable};var r=Function.prototype.bind;t.boundFunctionsHaveNames=function(){return t()&&"function"===typeof r&&""!==function(){}.bind().name},e.exports=t},31044:function(e,t,n){"use strict";var r=n(56181)("%Object.defineProperty%",!0),o=function(){if(r)try{return r({},"a",{value:1}),!0}catch(e){return!1}return!1};o.hasArrayLengthDefineBug=function(){if(!o())return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=o},56181:function(e,t,n){"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(t){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(P){l=null}var u=function(){throw new a},c=l?function(){try{return u}catch(e){try{return l(arguments,"callee").get}catch(t){return u}}}():u,f=n(41405)(),d=n(28185)(),p=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),h={},g="undefined"!==typeof Uint8Array&&p?p(Uint8Array):r,v={"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f&&p?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":h,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f&&p?p(p([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&f&&p?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&f&&p?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f&&p?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(p)try{null.error}catch(P){var m=p(p(P));v["%Error.prototype%"]=m}var y=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&p&&(n=p(o.prototype))}return v[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(58612),_=n(17642),x=w.call(Function.call,Array.prototype.concat),S=w.call(Function.apply,Array.prototype.splice),O=w.call(Function.call,String.prototype.replace),C=w.call(Function.call,String.prototype.slice),E=w.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,k=/\\(\\)?/g,M=function(e,t){var n,r=e;if(_(b,r)&&(r="%"+(n=b[r])[0]+"%"),_(v,r)){var i=v[r];if(i===h&&(i=y(r)),"undefined"===typeof i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===E(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=C(e,0,1),n=C(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return O(e,A,(function(e,t,n,o){r[r.length]=n?O(o,k,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=M("%"+r+"%",t),s=i.name,u=i.value,c=!1,f=i.alias;f&&(r=f[0],S(n,x([0,1],f)));for(var d=1,p=!0;d<n.length;d+=1){var h=n[d],g=C(h,0,1),m=C(h,-1);if(('"'===g||"'"===g||"`"===g||'"'===m||"'"===m||"`"===m)&&g!==m)throw new o("property names with quotes must have matching quotes");if("constructor"!==h&&p||(c=!0),_(v,s="%"+(r+="."+h)+"%"))u=v[s];else if(null!=u){if(!(h in u)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(l&&d+1>=n.length){var y=l(u,h);u=(p=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:u[h]}else p=_(u,h),u=u[h];p&&!c&&(v[s]=u)}}return u}},28185:function(e){"use strict";var t={foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof n)}},41405:function(e,t,n){"use strict";var r="undefined"!==typeof Symbol&&Symbol,o=n(55419);e.exports=function(){return"function"===typeof r&&("function"===typeof Symbol&&("symbol"===typeof r("foo")&&("symbol"===typeof Symbol("bar")&&o())))}},55419:function(e){"use strict";e.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"===typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"===typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},96410:function(e,t,n){"use strict";var r=n(55419);e.exports=function(){return r()&&!!Symbol.toStringTag}},17642:function(e,t,n){"use strict";var r=n(58612);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},47323:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}var o;n.d(t,{lX:function(){return l}}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(o||(o={}));var i=function(e){return e};var a="beforeunload",s="popstate";function l(e){void 0===e&&(e={});var t=e.window,n=void 0===t?document.defaultView:t,l=n.history;function h(){var e=n.location,t=e.pathname,r=e.search,o=e.hash,a=l.state||{};return[a.idx,i({pathname:t,search:r,hash:o,state:a.usr||null,key:a.key||"default"})]}var g=null;n.addEventListener(s,(function(){if(g)_.call(g),g=null;else{var e=o.Pop,t=h(),n=t[0],r=t[1];if(_.length){if(null!=n){var i=y-n;i&&(g={action:e,location:r,retry:function(){A(-1*i)}},A(i))}}else E(e)}}));var v=o.Pop,m=h(),y=m[0],b=m[1],w=c(),_=c();function x(e){return"string"===typeof e?e:d(e)}function S(e,t){return void 0===t&&(t=null),i(r({pathname:b.pathname,hash:"",search:""},"string"===typeof e?p(e):e,{state:t,key:f()}))}function O(e,t){return[{usr:e.state,key:e.key,idx:t},x(e)]}function C(e,t,n){return!_.length||(_.call({action:e,location:t,retry:n}),!1)}function E(e){v=e;var t=h();y=t[0],b=t[1],w.call({action:v,location:b})}function A(e){l.go(e)}null==y&&(y=0,l.replaceState(r({},l.state,{idx:y}),""));var k={get action(){return v},get location(){return b},createHref:x,push:function e(t,r){var i=o.Push,a=S(t,r);if(C(i,a,(function(){e(t,r)}))){var s=O(a,y+1),u=s[0],c=s[1];try{l.pushState(u,"",c)}catch(f){n.location.assign(c)}E(i)}},replace:function e(t,n){var r=o.Replace,i=S(t,n);if(C(r,i,(function(){e(t,n)}))){var a=O(i,y),s=a[0],u=a[1];l.replaceState(s,"",u),E(r)}},go:A,back:function(){A(-1)},forward:function(){A(1)},listen:function(e){return w.push(e)},block:function(e){var t=_.push(e);return 1===_.length&&n.addEventListener(a,u),function(){t(),_.length||n.removeEventListener(a,u)}}};return k}function u(e){e.preventDefault(),e.returnValue=""}function c(){var e=[];return{get length(){return e.length},push:function(t){return e.push(t),function(){e=e.filter((function(e){return e!==t}))}},call:function(t){e.forEach((function(e){return e&&e(t)}))}}}function f(){return Math.random().toString(36).substr(2,8)}function d(e){var t=e.pathname,n=void 0===t?"/":t,r=e.search,o=void 0===r?"":r,i=e.hash,a=void 0===i?"":i;return o&&"?"!==o&&(n+="?"===o.charAt(0)?o:"?"+o),a&&"#"!==a&&(n+="#"===a.charAt(0)?a:"#"+a),n}function p(e){var t={};if(e){var n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}},8679:function(e,t,n){"use strict";var r=n(21296),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var u=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var s=l(t),g=l(n),v=0;v<a.length;++v){var m=a[v];if(!i[m]&&(!r||!r[m])&&(!g||!g[m])&&(!s||!s[m])){var y=d(n,m);try{u(t,m,y)}catch(b){}}}}return t}},96103:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function _(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case i:case s:case a:case p:return e;default:switch(e=e&&e.$$typeof){case u:case d:case v:case g:case l:return e;default:return t}}case o:return t}}}function x(e){return _(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=u,t.ContextProvider=l,t.Element=r,t.ForwardRef=d,t.Fragment=i,t.Lazy=v,t.Memo=g,t.Portal=o,t.Profiler=s,t.StrictMode=a,t.Suspense=p,t.isAsyncMode=function(e){return x(e)||_(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return _(e)===u},t.isContextProvider=function(e){return _(e)===l},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return _(e)===d},t.isFragment=function(e){return _(e)===i},t.isLazy=function(e){return _(e)===v},t.isMemo=function(e){return _(e)===g},t.isPortal=function(e){return _(e)===o},t.isProfiler=function(e){return _(e)===s},t.isStrictMode=function(e){return _(e)===a},t.isSuspense=function(e){return _(e)===p},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===f||e===s||e===a||e===p||e===h||"object"===typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===g||e.$$typeof===l||e.$$typeof===u||e.$$typeof===d||e.$$typeof===y||e.$$typeof===b||e.$$typeof===w||e.$$typeof===m)},t.typeOf=_},21296:function(e,t,n){"use strict";e.exports=n(96103)},82584:function(e,t,n){"use strict";var r=n(96410)(),o=n(21924)("Object.prototype.toString"),i=function(e){return!(r&&e&&"object"===typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},a=function(e){return!!i(e)||null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"[object Function]"===o(e.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,e.exports=s?i:a},48738:function(e){function t(e){return!!e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"===typeof e.readFloatLE&&"function"===typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},18923:function(e,t,n){"use strict";var r=Date.prototype.getDay,o=Object.prototype.toString,i=n(96410)();e.exports=function(e){return"object"===typeof e&&null!==e&&(i?function(e){try{return r.call(e),!0}catch(t){return!1}}(e):"[object Date]"===o.call(e))}},98420:function(e,t,n){"use strict";var r,o,i,a,s=n(21924),l=n(96410)();if(l){r=s("Object.prototype.hasOwnProperty"),o=s("RegExp.prototype.exec"),i={};var u=function(){throw i};a={toString:u,valueOf:u},"symbol"===typeof Symbol.toPrimitive&&(a[Symbol.toPrimitive]=u)}var c=s("Object.prototype.toString"),f=Object.getOwnPropertyDescriptor;e.exports=l?function(e){if(!e||"object"!==typeof e)return!1;var t=f(e,"lastIndex");if(!(t&&r(t,"value")))return!1;try{o(e,a)}catch(n){return n===i}}:function(e){return!(!e||"object"!==typeof e&&"function"!==typeof e)&&"[object RegExp]"===c(e)}},18552:function(e,t,n){var r=n(10852)(n(55639),"DataView");e.exports=r},1989:function(e,t,n){var r=n(51789),o=n(80401),i=n(57667),a=n(21327),s=n(81866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=i,l.prototype.has=a,l.prototype.set=s,e.exports=l},96425:function(e,t,n){var r=n(3118),o=n(9435);function i(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},38407:function(e,t,n){var r=n(27040),o=n(14125),i=n(82117),a=n(67518),s=n(13399);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=i,l.prototype.has=a,l.prototype.set=s,e.exports=l},7548:function(e,t,n){var r=n(3118),o=n(9435);function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}i.prototype=r(o.prototype),i.prototype.constructor=i,e.exports=i},57071:function(e,t,n){var r=n(10852)(n(55639),"Map");e.exports=r},83369:function(e,t,n){var r=n(24785),o=n(11285),i=n(96e3),a=n(49916),s=n(95265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=i,l.prototype.has=a,l.prototype.set=s,e.exports=l},53818:function(e,t,n){var r=n(10852)(n(55639),"Promise");e.exports=r},58525:function(e,t,n){var r=n(10852)(n(55639),"Set");e.exports=r},88668:function(e,t,n){var r=n(83369),o=n(90619),i=n(72385);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},46384:function(e,t,n){var r=n(38407),o=n(37465),i=n(63779),a=n(67599),s=n(44758),l=n(34309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=o,u.prototype.delete=i,u.prototype.get=a,u.prototype.has=s,u.prototype.set=l,e.exports=u},62705:function(e,t,n){var r=n(55639).Symbol;e.exports=r},11149:function(e,t,n){var r=n(55639).Uint8Array;e.exports=r},70577:function(e,t,n){var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:function(e){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},77412:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},47443:function(e,t,n){var r=n(42118);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},1196:function(e){e.exports=function(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}},14636:function(e,t,n){var r=n(22545),o=n(35694),i=n(1469),a=n(44144),s=n(65776),l=n(36719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),c=!n&&o(e),f=!n&&!c&&a(e),d=!n&&!c&&!f&&l(e),p=n||c||f||d,h=p?r(e.length,String):[],g=h.length;for(var v in e)!t&&!u.call(e,v)||p&&("length"==v||f&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,g))||h.push(v);return h}},29932:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},62488:function(e){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},86556:function(e,t,n){var r=n(89465),o=n(77813);e.exports=function(e,t,n){(void 0!==n&&!o(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},34865:function(e,t,n){var r=n(89465),o=n(77813),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:function(e,t,n){var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},44037:function(e,t,n){var r=n(98363),o=n(3674);e.exports=function(e,t){return e&&r(t,o(t),e)}},63886:function(e,t,n){var r=n(98363),o=n(81704);e.exports=function(e,t){return e&&r(t,o(t),e)}},89465:function(e,t,n){var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},85990:function(e,t,n){var r=n(46384),o=n(77412),i=n(34865),a=n(44037),s=n(63886),l=n(64626),u=n(278),c=n(18805),f=n(1911),d=n(58234),p=n(46904),h=n(64160),g=n(43824),v=n(29148),m=n(38517),y=n(1469),b=n(44144),w=n(56688),_=n(13218),x=n(72928),S=n(3674),O=n(81704),C="[object Arguments]",E="[object Function]",A="[object Object]",k={};k[C]=k["[object Array]"]=k["[object ArrayBuffer]"]=k["[object DataView]"]=k["[object Boolean]"]=k["[object Date]"]=k["[object Float32Array]"]=k["[object Float64Array]"]=k["[object Int8Array]"]=k["[object Int16Array]"]=k["[object Int32Array]"]=k["[object Map]"]=k["[object Number]"]=k[A]=k["[object RegExp]"]=k["[object Set]"]=k["[object String]"]=k["[object Symbol]"]=k["[object Uint8Array]"]=k["[object Uint8ClampedArray]"]=k["[object Uint16Array]"]=k["[object Uint32Array]"]=!0,k["[object Error]"]=k[E]=k["[object WeakMap]"]=!1,e.exports=function e(t,n,M,P,R,T){var I,B=1&n,j=2&n,D=4&n;if(M&&(I=R?M(t,P,R,T):M(t)),void 0!==I)return I;if(!_(t))return t;var L=y(t);if(L){if(I=g(t),!B)return u(t,I)}else{var Z=h(t),N=Z==E||"[object GeneratorFunction]"==Z;if(b(t))return l(t,B);if(Z==A||Z==C||N&&!R){if(I=j||N?{}:m(t),!B)return j?f(t,s(I,t)):c(t,a(I,t))}else{if(!k[Z])return R?t:{};I=v(t,Z,B)}}T||(T=new r);var F=T.get(t);if(F)return F;T.set(t,I),x(t)?t.forEach((function(r){I.add(e(r,n,M,r,t,T))})):w(t)&&t.forEach((function(r,o){I.set(o,e(r,n,M,o,t,T))}));var H=L?void 0:(D?j?p:d:j?O:S)(t);return o(H||t,(function(r,o){H&&(r=t[o=r]),i(I,o,e(r,n,M,o,t,T))})),I}},3118:function(e,t,n){var r=n(13218),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},20731:function(e,t,n){var r=n(88668),o=n(47443),i=n(1196),a=n(29932),s=n(7518),l=n(74757);e.exports=function(e,t,n,u){var c=-1,f=o,d=!0,p=e.length,h=[],g=t.length;if(!p)return h;n&&(t=a(t,s(n))),u?(f=i,d=!1):t.length>=200&&(f=l,d=!1,t=new r(t));e:for(;++c<p;){var v=e[c],m=null==n?v:n(v);if(v=u||0!==v?v:0,d&&m===m){for(var y=g;y--;)if(t[y]===m)continue e;h.push(v)}else f(t,m,u)||h.push(v)}return h}},41848:function(e){e.exports=function(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}},21078:function(e,t,n){var r=n(62488),o=n(37285);e.exports=function e(t,n,i,a,s){var l=-1,u=t.length;for(i||(i=o),s||(s=[]);++l<u;){var c=t[l];n>0&&i(c)?n>1?e(c,n-1,i,a,s):r(s,c):a||(s[s.length]=c)}return s}},28483:function(e,t,n){var r=n(25063)();e.exports=r},97786:function(e,t,n){var r=n(71811),o=n(40327);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},68866:function(e,t,n){var r=n(62488),o=n(1469);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},44239:function(e,t,n){var r=n(62705),o=n(89607),i=n(2333),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},42118:function(e,t,n){var r=n(41848),o=n(62722),i=n(42351);e.exports=function(e,t,n){return t===t?i(e,t,n):r(e,o,n)}},9454:function(e,t,n){var r=n(44239),o=n(37005);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},25588:function(e,t,n){var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Map]"==r(e)}},62722:function(e){e.exports=function(e){return e!==e}},28458:function(e,t,n){var r=n(23560),o=n(15346),i=n(13218),a=n(80346),s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,f=u.hasOwnProperty,d=RegExp("^"+c.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?d:s).test(a(e))}},29221:function(e,t,n){var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Set]"==r(e)}},38749:function(e,t,n){var r=n(44239),o=n(41780),i=n(37005),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},280:function(e,t,n){var r=n(25726),o=n(86916),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:function(e,t,n){var r=n(13218),o=n(25726),i=n(33498),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=o(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},9435:function(e){e.exports=function(){}},42980:function(e,t,n){var r=n(46384),o=n(86556),i=n(28483),a=n(59783),s=n(13218),l=n(81704),u=n(36390);e.exports=function e(t,n,c,f,d){t!==n&&i(n,(function(i,l){if(d||(d=new r),s(i))a(t,n,l,c,e,f,d);else{var p=f?f(u(t,l),i,l+"",t,n,d):void 0;void 0===p&&(p=i),o(t,l,p)}}),l)}},59783:function(e,t,n){var r=n(86556),o=n(64626),i=n(77133),a=n(278),s=n(38517),l=n(35694),u=n(1469),c=n(29246),f=n(44144),d=n(23560),p=n(13218),h=n(68630),g=n(36719),v=n(36390),m=n(59881);e.exports=function(e,t,n,y,b,w,_){var x=v(e,n),S=v(t,n),O=_.get(S);if(O)r(e,n,O);else{var C=w?w(x,S,n+"",e,t,_):void 0,E=void 0===C;if(E){var A=u(S),k=!A&&f(S),M=!A&&!k&&g(S);C=S,A||k||M?u(x)?C=x:c(x)?C=a(x):k?(E=!1,C=o(S,!0)):M?(E=!1,C=i(S,!0)):C=[]:h(S)||l(S)?(C=x,l(x)?C=m(x):p(x)&&!d(x)||(C=s(S))):E=!1}E&&(_.set(S,C),b(C,S,y,w,_),_.delete(S)),r(e,n,C)}}},5976:function(e,t,n){var r=n(6557),o=n(45357),i=n(30061);e.exports=function(e,t){return i(o(e,t,r),e+"")}},56560:function(e,t,n){var r=n(75703),o=n(38777),i=n(6557),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},14259:function(e){e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}},22545:function(e){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:function(e,t,n){var r=n(62705),o=n(29932),i=n(1469),a=n(33448),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7518:function(e){e.exports=function(e){return function(t){return e(t)}}},57406:function(e,t,n){var r=n(71811),o=n(10928),i=n(40292),a=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=i(e,t))||delete e[a(o(t))]}},74757:function(e){e.exports=function(e,t){return e.has(t)}},71811:function(e,t,n){var r=n(1469),o=n(15403),i=n(55514),a=n(79833);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},74318:function(e,t,n){var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:function(e,t,n){e=n.nmd(e);var r=n(55639),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,a=i&&i.exports===o?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},57157:function(e,t,n){var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:function(e){var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:function(e,t,n){var r=n(62705),o=r?r.prototype:void 0,i=o?o.valueOf:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},77133:function(e,t,n){var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:function(e){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:function(e,t,n){var r=n(34865),o=n(89465);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,l=t.length;++s<l;){var u=t[s],c=i?i(n[u],e[u],u,n,e):void 0;void 0===c&&(c=e[u]),a?o(n,u,c):r(n,u,c)}return n}},18805:function(e,t,n){var r=n(98363),o=n(99551);e.exports=function(e,t){return r(e,o(e),t)}},1911:function(e,t,n){var r=n(98363),o=n(51442);e.exports=function(e,t){return r(e,o(e),t)}},14429:function(e,t,n){var r=n(55639)["__core-js_shared__"];e.exports=r},21463:function(e,t,n){var r=n(5976),o=n(16612);e.exports=function(e){return r((function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var l=n[r];l&&e(t,l,r,a)}return t}))}},25063:function(e){e.exports=function(e){return function(t,n,r){for(var o=-1,i=Object(t),a=r(t),s=a.length;s--;){var l=a[e?s:++o];if(!1===n(i[l],l,i))break}return t}}},23468:function(e,t,n){var r=n(7548),o=n(99021),i=n(66833),a=n(97658),s=n(1469),l=n(86528);e.exports=function(e){return o((function(t){var n=t.length,o=n,u=r.prototype.thru;for(e&&t.reverse();o--;){var c=t[o];if("function"!=typeof c)throw new TypeError("Expected a function");if(u&&!f&&"wrapper"==a(c))var f=new r([],!0)}for(o=f?o:n;++o<n;){c=t[o];var d=a(c),p="wrapper"==d?i(c):void 0;f=p&&l(p[0])&&424==p[1]&&!p[4].length&&1==p[9]?f[a(p[0])].apply(f,p[3]):1==c.length&&l(c)?f[d]():f.thru(c)}return function(){var e=arguments,r=e[0];if(f&&1==e.length&&s(r))return f.plant(r).value();for(var o=0,i=n?t[o].apply(this,e):r;++o<n;)i=t[o].call(this,i);return i}}))}},60696:function(e,t,n){var r=n(68630);e.exports=function(e){return r(e)?void 0:e}},38777:function(e,t,n){var r=n(10852),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=o},99021:function(e,t,n){var r=n(85564),o=n(45357),i=n(30061);e.exports=function(e){return i(o(e,void 0,r),e+"")}},31957:function(e,t,n){var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:function(e,t,n){var r=n(68866),o=n(99551),i=n(3674);e.exports=function(e){return r(e,i,o)}},46904:function(e,t,n){var r=n(68866),o=n(51442),i=n(81704);e.exports=function(e){return r(e,i,o)}},66833:function(e,t,n){var r=n(20546),o=n(50308),i=r?function(e){return r.get(e)}:o;e.exports=i},97658:function(e,t,n){var r=n(52060),o=Object.prototype.hasOwnProperty;e.exports=function(e){for(var t=e.name+"",n=r[t],i=o.call(r,t)?n.length:0;i--;){var a=n[i],s=a.func;if(null==s||s==e)return a.name}return t}},45050:function(e,t,n){var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},10852:function(e,t,n){var r=n(28458),o=n(47801);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},85924:function(e,t,n){var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:function(e,t,n){var r=n(62705),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(l){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},99551:function(e,t,n){var r=n(34963),o=n(70479),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return i.call(e,t)})))}:o;e.exports=s},51442:function(e,t,n){var r=n(62488),o=n(85924),i=n(99551),a=n(70479),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},64160:function(e,t,n){var r=n(18552),o=n(57071),i=n(53818),a=n(58525),s=n(70577),l=n(44239),u=n(80346),c="[object Map]",f="[object Promise]",d="[object Set]",p="[object WeakMap]",h="[object DataView]",g=u(r),v=u(o),m=u(i),y=u(a),b=u(s),w=l;(r&&w(new r(new ArrayBuffer(1)))!=h||o&&w(new o)!=c||i&&w(i.resolve())!=f||a&&w(new a)!=d||s&&w(new s)!=p)&&(w=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case g:return h;case v:return c;case m:return f;case y:return d;case b:return p}return t}),e.exports=w},47801:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},51789:function(e,t,n){var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:function(e,t,n){var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},21327:function(e,t,n){var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},81866:function(e,t,n){var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:function(e){var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:function(e,t,n){var r=n(74318),o=n(57157),i=n(93147),a=n(40419),s=n(77133);e.exports=function(e,t,n){var l=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new l(+e);case"[object DataView]":return o(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(e,n);case"[object Map]":case"[object Set]":return new l;case"[object Number]":case"[object String]":return new l(e);case"[object RegExp]":return i(e);case"[object Symbol]":return a(e)}}},38517:function(e,t,n){var r=n(3118),o=n(85924),i=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:r(o(e))}},37285:function(e,t,n){var r=n(62705),o=n(35694),i=n(1469),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},65776:function(e){var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},16612:function(e,t,n){var r=n(77813),o=n(98612),i=n(65776),a=n(13218);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&i(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},15403:function(e,t,n){var r=n(1469),o=n(33448),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},37019:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},86528:function(e,t,n){var r=n(96425),o=n(66833),i=n(97658),a=n(8111);e.exports=function(e){var t=i(e),n=a[t];if("function"!=typeof n||!(t in r.prototype))return!1;if(e===n)return!0;var s=o(n);return!!s&&e===s[0]}},15346:function(e,t,n){var r=n(14429),o=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!o&&o in e}},25726:function(e){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},27040:function(e){e.exports=function(){this.__data__=[],this.size=0}},14125:function(e,t,n){var r=n(18470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},82117:function(e,t,n){var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:function(e,t,n){var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},13399:function(e,t,n){var r=n(18470);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},24785:function(e,t,n){var r=n(1989),o=n(38407),i=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},11285:function(e,t,n){var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:function(e,t,n){var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:function(e,t,n){var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:function(e,t,n){var r=n(45050);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},24523:function(e,t,n){var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},20546:function(e,t,n){var r=n(70577),o=r&&new r;e.exports=o},94536:function(e,t,n){var r=n(10852)(Object,"create");e.exports=r},86916:function(e,t,n){var r=n(5569)(Object.keys,Object);e.exports=r},33498:function(e){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:function(e,t,n){e=n.nmd(e);var r=n(31957),o=t&&!t.nodeType&&t,i=o&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},2333:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},45357:function(e,t,n){var r=n(96874),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),l=Array(s);++a<s;)l[a]=i[t+a];a=-1;for(var u=Array(t+1);++a<t;)u[a]=i[a];return u[t]=n(l),r(e,this,u)}}},40292:function(e,t,n){var r=n(97786),o=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},52060:function(e){e.exports={}},55639:function(e,t,n){var r=n(31957),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},36390:function(e){e.exports=function(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}},90619:function(e){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:function(e){e.exports=function(e){return this.__data__.has(e)}},30061:function(e,t,n){var r=n(56560),o=n(21275)(r);e.exports=o},21275:function(e){var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),i=16-(o-r);if(r=o,i>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},37465:function(e,t,n){var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:function(e){e.exports=function(e){return this.__data__.get(e)}},44758:function(e){e.exports=function(e){return this.__data__.has(e)}},34309:function(e,t,n){var r=n(38407),o=n(57071),i=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},42351:function(e){e.exports=function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}},55514:function(e,t,n){var r=n(24523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)})),t}));e.exports=a},40327:function(e,t,n){var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},80346:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},21913:function(e,t,n){var r=n(96425),o=n(7548),i=n(278);e.exports=function(e){if(e instanceof r)return e.clone();var t=new o(e.__wrapped__,e.__chain__);return t.__actions__=i(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}},75703:function(e){e.exports=function(e){return function(){return e}}},91966:function(e,t,n){var r=n(20731),o=n(21078),i=n(5976),a=n(29246),s=i((function(e,t){return a(e)?r(e,o(t,1,a,!0)):[]}));e.exports=s},77813:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},85564:function(e,t,n){var r=n(21078);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},59242:function(e,t,n){var r=n(23468)();e.exports=r},6557:function(e){e.exports=function(e){return e}},35694:function(e,t,n){var r=n(9454),o=n(37005),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},1469:function(e){var t=Array.isArray;e.exports=t},98612:function(e,t,n){var r=n(23560),o=n(41780);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},29246:function(e,t,n){var r=n(98612),o=n(37005);e.exports=function(e){return o(e)&&r(e)}},44144:function(e,t,n){e=n.nmd(e);var r=n(55639),o=n(95062),i=t&&!t.nodeType&&t,a=i&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,l=(s?s.isBuffer:void 0)||o;e.exports=l},23560:function(e,t,n){var r=n(44239),o=n(13218);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:function(e,t,n){var r=n(25588),o=n(7518),i=n(31167),a=i&&i.isMap,s=a?o(a):r;e.exports=s},13218:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},68630:function(e,t,n){var r=n(44239),o=n(85924),i=n(37005),a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,c=l.call(Object);e.exports=function(e){if(!i(e)||"[object Object]"!=r(e))return!1;var t=o(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==c}},72928:function(e,t,n){var r=n(29221),o=n(7518),i=n(31167),a=i&&i.isSet,s=a?o(a):r;e.exports=s},33448:function(e,t,n){var r=n(44239),o=n(37005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},36719:function(e,t,n){var r=n(38749),o=n(7518),i=n(31167),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},3674:function(e,t,n){var r=n(14636),o=n(280),i=n(98612);e.exports=function(e){return i(e)?r(e):o(e)}},81704:function(e,t,n){var r=n(14636),o=n(10313),i=n(98612);e.exports=function(e){return i(e)?r(e,!0):o(e)}},10928:function(e){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},88306:function(e,t,n){var r=n(83369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},82492:function(e,t,n){var r=n(42980),o=n(21463)((function(e,t,n){r(e,t,n)}));e.exports=o},50308:function(e){e.exports=function(){}},57557:function(e,t,n){var r=n(29932),o=n(85990),i=n(57406),a=n(71811),s=n(98363),l=n(60696),u=n(99021),c=n(46904),f=u((function(e,t){var n={};if(null==e)return n;var u=!1;t=r(t,(function(t){return t=a(t,e),u||(u=t.length>1),t})),s(e,c(e),n),u&&(n=o(n,7,l));for(var f=t.length;f--;)i(n,t[f]);return n}));e.exports=f},70479:function(e){e.exports=function(){return[]}},95062:function(e){e.exports=function(){return!1}},59881:function(e,t,n){var r=n(98363),o=n(81704);e.exports=function(e){return r(e,o(e))}},79833:function(e,t,n){var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},8111:function(e,t,n){var r=n(96425),o=n(7548),i=n(9435),a=n(1469),s=n(37005),l=n(21913),u=Object.prototype.hasOwnProperty;function c(e){if(s(e)&&!a(e)&&!(e instanceof r)){if(e instanceof o)return e;if(u.call(e,"__wrapped__"))return l(e)}return new o(e)}c.prototype=i.prototype,c.prototype.constructor=c,e.exports=c},2568:function(e,t,n){!function(){var t=n(71012),r=n(40487).utf8,o=n(48738),i=n(40487).bin,a=function(e,n){e.constructor==String?e=n&&"binary"===n.encoding?i.stringToBytes(e):r.stringToBytes(e):o(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var s=t.bytesToWords(e),l=8*e.length,u=1732584193,c=-271733879,f=-1732584194,d=271733878,p=0;p<s.length;p++)s[p]=16711935&(s[p]<<8|s[p]>>>24)|4278255360&(s[p]<<24|s[p]>>>8);s[l>>>5]|=128<<l%32,s[14+(l+64>>>9<<4)]=l;var h=a._ff,g=a._gg,v=a._hh,m=a._ii;for(p=0;p<s.length;p+=16){var y=u,b=c,w=f,_=d;u=h(u,c,f,d,s[p+0],7,-680876936),d=h(d,u,c,f,s[p+1],12,-389564586),f=h(f,d,u,c,s[p+2],17,606105819),c=h(c,f,d,u,s[p+3],22,-1044525330),u=h(u,c,f,d,s[p+4],7,-176418897),d=h(d,u,c,f,s[p+5],12,1200080426),f=h(f,d,u,c,s[p+6],17,-1473231341),c=h(c,f,d,u,s[p+7],22,-45705983),u=h(u,c,f,d,s[p+8],7,1770035416),d=h(d,u,c,f,s[p+9],12,-1958414417),f=h(f,d,u,c,s[p+10],17,-42063),c=h(c,f,d,u,s[p+11],22,-1990404162),u=h(u,c,f,d,s[p+12],7,1804603682),d=h(d,u,c,f,s[p+13],12,-40341101),f=h(f,d,u,c,s[p+14],17,-1502002290),u=g(u,c=h(c,f,d,u,s[p+15],22,1236535329),f,d,s[p+1],5,-165796510),d=g(d,u,c,f,s[p+6],9,-1069501632),f=g(f,d,u,c,s[p+11],14,643717713),c=g(c,f,d,u,s[p+0],20,-373897302),u=g(u,c,f,d,s[p+5],5,-701558691),d=g(d,u,c,f,s[p+10],9,38016083),f=g(f,d,u,c,s[p+15],14,-660478335),c=g(c,f,d,u,s[p+4],20,-405537848),u=g(u,c,f,d,s[p+9],5,568446438),d=g(d,u,c,f,s[p+14],9,-1019803690),f=g(f,d,u,c,s[p+3],14,-187363961),c=g(c,f,d,u,s[p+8],20,1163531501),u=g(u,c,f,d,s[p+13],5,-1444681467),d=g(d,u,c,f,s[p+2],9,-51403784),f=g(f,d,u,c,s[p+7],14,1735328473),u=v(u,c=g(c,f,d,u,s[p+12],20,-1926607734),f,d,s[p+5],4,-378558),d=v(d,u,c,f,s[p+8],11,-2022574463),f=v(f,d,u,c,s[p+11],16,1839030562),c=v(c,f,d,u,s[p+14],23,-35309556),u=v(u,c,f,d,s[p+1],4,-1530992060),d=v(d,u,c,f,s[p+4],11,1272893353),f=v(f,d,u,c,s[p+7],16,-155497632),c=v(c,f,d,u,s[p+10],23,-1094730640),u=v(u,c,f,d,s[p+13],4,681279174),d=v(d,u,c,f,s[p+0],11,-358537222),f=v(f,d,u,c,s[p+3],16,-722521979),c=v(c,f,d,u,s[p+6],23,76029189),u=v(u,c,f,d,s[p+9],4,-640364487),d=v(d,u,c,f,s[p+12],11,-421815835),f=v(f,d,u,c,s[p+15],16,530742520),u=m(u,c=v(c,f,d,u,s[p+2],23,-995338651),f,d,s[p+0],6,-198630844),d=m(d,u,c,f,s[p+7],10,1126891415),f=m(f,d,u,c,s[p+14],15,-1416354905),c=m(c,f,d,u,s[p+5],21,-57434055),u=m(u,c,f,d,s[p+12],6,1700485571),d=m(d,u,c,f,s[p+3],10,-1894986606),f=m(f,d,u,c,s[p+10],15,-1051523),c=m(c,f,d,u,s[p+1],21,-2054922799),u=m(u,c,f,d,s[p+8],6,1873313359),d=m(d,u,c,f,s[p+15],10,-30611744),f=m(f,d,u,c,s[p+6],15,-1560198380),c=m(c,f,d,u,s[p+13],21,1309151649),u=m(u,c,f,d,s[p+4],6,-145523070),d=m(d,u,c,f,s[p+11],10,-1120210379),f=m(f,d,u,c,s[p+2],15,718787259),c=m(c,f,d,u,s[p+9],21,-343485551),u=u+y>>>0,c=c+b>>>0,f=f+w>>>0,d=d+_>>>0}return t.endian([u,c,f,d])};a._ff=function(e,t,n,r,o,i,a){var s=e+(t&n|~t&r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._gg=function(e,t,n,r,o,i,a){var s=e+(t&r|n&~r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._hh=function(e,t,n,r,o,i,a){var s=e+(t^n^r)+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._ii=function(e,t,n,r,o,i,a){var s=e+(n^(t|~r))+(o>>>0)+a;return(s<<i|s>>>32-i)+t},a._blocksize=16,a._digestsize=16,e.exports=function(e,n){if(void 0===e||null===e)throw new Error("Illegal argument "+e);var r=t.wordsToBytes(a(e,n));return n&&n.asBytes?r:n&&n.asString?i.bytesToString(r):t.bytesToHex(r)}}()},83300:function(e,t){"use strict";var n=function(){if("undefined"!==typeof self)return self;if("undefined"!==typeof window)return window;if("undefined"!==typeof n)return n;throw new Error("unable to locate global object")}();e.exports=t=n.fetch,n.fetch&&(t.default=n.fetch.bind(n)),t.Headers=n.Headers,t.Request=n.Request,t.Response=n.Response},27418:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var i,a,s=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l<arguments.length;l++){for(var u in i=Object(arguments[l]))n.call(i,u)&&(s[u]=i[u]);if(t){a=t(i);for(var c=0;c<a.length;c++)r.call(i,a[c])&&(s[a[c]]=i[a[c]])}}return s}},24244:function(e){"use strict";var t=function(e){return e!==e};e.exports=function(e,n){return 0===e&&0===n?1/e===1/n:e===n||!(!t(e)||!t(n))}},20609:function(e,t,n){"use strict";var r=n(17446),o=n(55559),i=n(24244),a=n(75624),s=n(52281),l=o(a(),Object);r(l,{getPolyfill:a,implementation:i,shim:s}),e.exports=l},17446:function(e,t,n){"use strict";var r=n(82215),o="function"===typeof Symbol&&"symbol"===typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,l=n(31044)(),u=s&&l,c=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if("function"!==typeof(o=r)||"[object Function]"!==i.call(o)||!r())return;var o;u?s(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n},f=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s<i.length;s+=1)c(e,i[s],t[i[s]],n[i[s]])};f.supportsDescriptors=!!u,e.exports=f},75624:function(e,t,n){"use strict";var r=n(24244);e.exports=function(){return"function"===typeof Object.is?Object.is:r}},52281:function(e,t,n){"use strict";var r=n(75624),o=n(17446);e.exports=function(){var e=r();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},18987:function(e,t,n){"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=n(21414),s=Object.prototype.propertyIsEnumerable,l=!s.call({toString:null},"toString"),u=s.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],f=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},p=function(){if("undefined"===typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"===typeof window[e])try{f(window[e])}catch(t){return!0}}catch(t){return!0}return!1}();r=function(e){var t=null!==e&&"object"===typeof e,n="[object Function]"===i.call(e),r=a(e),s=t&&"[object String]"===i.call(e),d=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var h=u&&n;if(s&&e.length>0&&!o.call(e,0))for(var g=0;g<e.length;++g)d.push(String(g));if(r&&e.length>0)for(var v=0;v<e.length;++v)d.push(String(v));else for(var m in e)h&&"prototype"===m||!o.call(e,m)||d.push(String(m));if(l)for(var y=function(e){if("undefined"===typeof window||!p)return f(e);try{return f(e)}catch(t){return!1}}(e),b=0;b<c.length;++b)y&&"constructor"===c[b]||!o.call(e,c[b])||d.push(c[b]);return d}}e.exports=r},82215:function(e,t,n){"use strict";var r=Array.prototype.slice,o=n(21414),i=Object.keys,a=i?function(e){return i(e)}:n(18987),s=Object.keys;a.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?s(r.call(e)):s(e)})}else Object.keys=a;return Object.keys||a},e.exports=a},21414:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"===typeof e&&"number"===typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},5598:function(e,t){"use strict";function n(e){var t="function"===typeof Map?new Map:void 0;return n=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,a)}function a(){return r(e,arguments,i(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),o(a,e)},n(e)}function r(e,t,n){return r=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&o(i,n.prototype),i},r.apply(null,arguments)}function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}t.__esModule=!0,t.default=void 0;var a=function(e){var t,n;function r(t){return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this)}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,o(t,n),r}(n(Error));t.default=a,e.exports=t.default},65583:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n=u(e),i=n.match(s);if(i&&!i.every((function(e){return e===i[0]})))throw new o.default(41);return""+function(e,t){var n,i=function(e){var t={};return t.symbols=e?a({},r.default.symbols,e.symbols):a({},r.default.symbols),t}(t),s=[i.symbols["("].prefix],u=[],c=new RegExp("\\d+(?:\\.\\d+)?|"+Object.keys(i.symbols).map((function(e){return i.symbols[e]})).sort((function(e,t){return t.symbol.length-e.symbol.length})).map((function(e){return e.regSymbol})).join("|")+"|(\\S)","g");c.lastIndex=0;var f=!1;do{var d=(n=c.exec(e))||[")",void 0],p=d[0],h=d[1],g=i.symbols[p],v=g&&!g.prefix&&!g.func,m=!g||!g.postfix&&!g.infix;if(h||(f?m:v))throw new o.default(37,n?n.index:e.length,e);if(f){var y=g.postfix||g.infix;do{var b=s[s.length-1];if((y.precedence-b.precedence||b.rightToLeft)>0)break}while(l(s,u));f="postfix"===y.notation,")"!==y.symbol&&(s.push(y),f&&l(s,u))}else if(g){if(s.push(g.prefix||g.func),g.func&&(!(n=c.exec(e))||"("!==n[0]))throw new o.default(38,n?n.index:e.length,e)}else u.push(+p),f=!0}while(n&&s.length);if(s.length)throw new o.default(39,n?n.index:e.length,e);if(n)throw new o.default(40,n?n.index:e.length,e);return u.pop()}(u(n.replace(s,"")),t)+(i?u(i[0]):"")};var r=i(n(43975)),o=i(n(5598));function i(e){return e&&e.__esModule?e:{default:e}}function a(){return a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}var s=/((?!\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\D|$)|ged|darg?|nrut)/g;function l(e,t){var n,r=e.pop();return t.push(r.f.apply(r,(n=[]).concat.apply(n,t.splice(-r.argCount)))),r.precedence}function u(e){return e.split("").reverse().join("")}e.exports=t.default},43975:function(e,t){"use strict";function n(){var e;return(e=arguments.length-1)<0||arguments.length<=e?void 0:arguments[e]}t.__esModule=!0,t.default=void 0;var r={symbols:{"*":{infix:{symbol:"*",f:function(e,t){return e*t},notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"*",regSymbol:"\\*"},"/":{infix:{symbol:"/",f:function(e,t){return e/t},notation:"infix",precedence:4,rightToLeft:0,argCount:2},symbol:"/",regSymbol:"/"},"+":{infix:{symbol:"+",f:function(e,t){return e+t},notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"+",f:n,notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"+",regSymbol:"\\+"},"-":{infix:{symbol:"-",f:function(e,t){return e-t},notation:"infix",precedence:2,rightToLeft:0,argCount:2},prefix:{symbol:"-",f:function(e){return-e},notation:"prefix",precedence:3,rightToLeft:0,argCount:1},symbol:"-",regSymbol:"-"},",":{infix:{symbol:",",f:function(){return Array.of.apply(Array,arguments)},notation:"infix",precedence:1,rightToLeft:0,argCount:2},symbol:",",regSymbol:","},"(":{prefix:{symbol:"(",f:n,notation:"prefix",precedence:0,rightToLeft:0,argCount:1},symbol:"(",regSymbol:"\\("},")":{postfix:{symbol:")",f:void 0,notation:"postfix",precedence:0,rightToLeft:0,argCount:1},symbol:")",regSymbol:"\\)"},min:{func:{symbol:"min",f:function(){return Math.min.apply(Math,arguments)},notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"min",regSymbol:"min\\b"},max:{func:{symbol:"max",f:function(){return Math.max.apply(Math,arguments)},notation:"func",precedence:0,rightToLeft:0,argCount:1},symbol:"max",regSymbol:"max\\b"}}},o=r;t.default=o,e.exports=t.default},92703:function(e,t,n){"use strict";var r=n(50414);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},45697:function(e,t,n){e.exports=n(92703)()},50414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},17563:function(e,t,n){"use strict";const r=n(70610),o=n(44020),i=n(80500),a=n(92806),s=Symbol("encodeFragmentIdentifier");function l(e){if("string"!==typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function u(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e,t){return t.decode?o(e):e}function f(e){return Array.isArray(e)?e.sort():"object"===typeof e?f(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function p(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function h(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"===typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function g(e,t){l((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const o="string"===typeof n&&n.includes(e.arrayFormatSeparator),i="string"===typeof n&&!o&&c(n,e).includes(e.arrayFormatSeparator);n=i?c(n,e):n;const a=o||i?n.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===n?n:c(n,e);r[t]=a};case"bracket-separator":return(t,n,r)=>{const o=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!o)return void(r[t]=n?c(n,e):n);const i=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],i):r[t]=i};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!==typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const o of e.split("&")){if(""===o)continue;let[e,a]=i(t.decode?o.replace(/\+/g," "):o,"=");a=void 0===a?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?a:c(a,t),n(c(e,t),a,r)}for(const o of Object.keys(r)){const e=r[o];if("object"===typeof e&&null!==e)for(const n of Object.keys(e))e[n]=h(e[n],t);else r[o]=h(e,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"===typeof n&&!Array.isArray(n)?e[t]=f(n):e[t]=n,e}),Object.create(null))}t.extract=p,t.parse=g,t.stringify=(e,t)=>{if(!e)return"";l((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>{return t.skipNull&&(null===(r=e[n])||void 0===r)||t.skipEmptyString&&""===e[n];var r},r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const o=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[u(t,e),"[",o,"]"].join("")]:[...n,[u(t,e),"[",u(o,e),"]=",u(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[u(t,e),"[]"].join("")]:[...n,[u(t,e),"[]=",u(r,e)].join("")];case"colon-list-separator":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[u(t,e),":list="].join("")]:[...n,[u(t,e),":list=",u(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,o)=>void 0===o||e.skipNull&&null===o||e.skipEmptyString&&""===o?r:(o=null===o?"":o,0===r.length?[[u(n,e),t,u(o,e)].join("")]:[[r,u(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,u(t,e)]:[...n,[u(t,e),"=",u(r,e)].join("")]}}(t),o={};for(const a of Object.keys(e))n(a)||(o[a]=e[a]);const i=Object.keys(o);return!1!==t.sort&&i.sort(t.sort),i.map((n=>{const o=e[n];return void 0===o?"":null===o?u(n,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?u(n,t)+"[]":o.reduce(r(n),[]).join("&"):u(n,t)+"="+u(o,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=i(e,"#");return Object.assign({url:n.split("?")[0]||"",query:g(p(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:c(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0,[s]:!0},n);const r=d(e.url).split("?")[0]||"",o=t.extract(e.url),i=t.parse(o,{sort:!1}),a=Object.assign(i,e.query);let l=t.stringify(a,n);l&&(l=`?${l}`);let c=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(c=`#${n[s]?u(e.fragmentIdentifier,n):e.fragmentIdentifier}`),`${r}${l}${c}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0,[s]:!1},r);const{url:o,query:i,fragmentIdentifier:l}=t.parseUrl(e,r);return t.stringifyUrl({url:o,query:a(i,n),fragmentIdentifier:l},r)},t.exclude=(e,n,r)=>{const o=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,o,r)}},69921:function(e,t){"use strict";var n,r=Symbol.for("react.element"),o=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),u=Symbol.for("react.context"),c=Symbol.for("react.server_context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),h=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen");function m(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case i:case s:case a:case d:case p:return e;default:switch(e=e&&e.$$typeof){case c:case u:case f:case g:case h:case l:return e;default:return t}}case o:return t}}}n=Symbol.for("react.module.reference"),t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===s||e===a||e===d||e===p||e===v||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===l||e.$$typeof===u||e.$$typeof===f||e.$$typeof===n||void 0!==e.getModuleId)},t.typeOf=m},59864:function(e,t,n){"use strict";e.exports=n(69921)},88359:function(e,t){"use strict";var n=60103,r=60106,o=60107,i=60108,a=60114,s=60109,l=60110,u=60112,c=60113,f=60120,d=60115,p=60116,h=60121,g=60122,v=60117,m=60129,y=60131;if("function"===typeof Symbol&&Symbol.for){var b=Symbol.for;n=b("react.element"),r=b("react.portal"),o=b("react.fragment"),i=b("react.strict_mode"),a=b("react.profiler"),s=b("react.provider"),l=b("react.context"),u=b("react.forward_ref"),c=b("react.suspense"),f=b("react.suspense_list"),d=b("react.memo"),p=b("react.lazy"),h=b("react.block"),g=b("react.server.block"),v=b("react.fundamental"),m=b("react.debug_trace_mode"),y=b("react.legacy_hidden")}function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case o:case a:case i:case c:case f:return e;default:switch(e=e&&e.$$typeof){case l:case u:case p:case d:case s:return e;default:return t}}case r:return t}}}t.isContextConsumer=function(e){return w(e)===l}},72973:function(e,t,n){"use strict";e.exports=n(88359)},79655:function(e,t,n){"use strict";var r;n.d(t,{M:function(){return d},lr:function(){return y},rU:function(){return g}});var o=n(67294),i=n(89250),a=n(12599);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function l(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function u(e){return void 0===e&&(e=""),new URLSearchParams("string"===typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map((e=>[n,e])):[[n,r]])}),[]))}new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);const c=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset"];const f=(r||(r=n.t(o,2))).startTransition;function d(e){let{basename:t,children:n,future:r,history:a}=e,[s,l]=o.useState({action:a.action,location:a.location}),{v7_startTransition:u}=r||{},c=o.useCallback((e=>{u&&f?f((()=>l(e))):l(e)}),[l,u]);return o.useLayoutEffect((()=>a.listen(c)),[a,c]),o.createElement(i.F0,{basename:t,children:n,location:s.location,navigationType:s.action,navigator:a})}const p="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,h=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,g=o.forwardRef((function(e,t){let n,{onClick:r,relative:u,reloadDocument:f,replace:d,state:g,target:v,to:m,preventScrollReset:y}=e,b=l(e,c),{basename:w}=o.useContext(i.Us),_=!1;if("string"===typeof m&&h.test(m)&&(n=m,p))try{let e=new URL(window.location.href),t=m.startsWith("//")?new URL(e.protocol+m):new URL(m),n=(0,a.Zn)(t.pathname,w);t.origin===e.origin&&null!=n?m=n+t.search+t.hash:_=!0}catch(O){}let x=(0,i.oQ)(m,{relative:u}),S=function(e,t){let{target:n,replace:r,state:s,preventScrollReset:l,relative:u}=void 0===t?{}:t,c=(0,i.s0)(),f=(0,i.TH)(),d=(0,i.WU)(e,{relative:u});return o.useCallback((t=>{if(function(e,t){return 0===e.button&&(!t||"_self"===t)&&!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)}(t,n)){t.preventDefault();let n=void 0!==r?r:(0,a.Ep)(f)===(0,a.Ep)(d);c(e,{replace:n,state:s,preventScrollReset:l,relative:u})}}),[f,c,d,r,s,n,e,l,u])}(m,{replace:d,state:g,target:v,preventScrollReset:y,relative:u});return o.createElement("a",s({},b,{href:n||x,onClick:_||f?r:function(e){r&&r(e),e.defaultPrevented||S(e)},ref:t,target:v}))}));var v,m;function y(e){let t=o.useRef(u(e)),n=o.useRef(!1),r=(0,i.TH)(),a=o.useMemo((()=>function(e,t){let n=u(e);if(t)for(let r of t.keys())n.has(r)||t.getAll(r).forEach((e=>{n.append(r,e)}));return n}(r.search,n.current?null:t.current)),[r.search]),s=(0,i.s0)(),l=o.useCallback(((e,t)=>{const r=u("function"===typeof e?e(a):e);n.current=!0,s("?"+r,t)}),[s,a]);return[a,l]}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher"})(v||(v={})),function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(m||(m={}))},89250:function(e,t,n){"use strict";var r;n.d(t,{AW:function(){return I},F0:function(){return B},Fg:function(){return T},TH:function(){return g},UO:function(){return b},Us:function(){return u},WU:function(){return w},Z5:function(){return j},bS:function(){return v},oQ:function(){return p},s0:function(){return y}});var o=n(67294),i=n(12599);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const s=o.createContext(null);const l=o.createContext(null);const u=o.createContext(null);const c=o.createContext(null);const f=o.createContext({outlet:null,matches:[],isDataRoute:!1});const d=o.createContext(null);function p(e,t){let{relative:n}=void 0===t?{}:t;h()||(0,i.J0)(!1);let{basename:r,navigator:a}=o.useContext(u),{hash:s,pathname:l,search:c}=w(e,{relative:n}),f=l;return"/"!==r&&(f="/"===l?r:(0,i.RQ)([r,l])),a.createHref({pathname:f,search:c,hash:s})}function h(){return null!=o.useContext(c)}function g(){return h()||(0,i.J0)(!1),o.useContext(c).location}function v(e){h()||(0,i.J0)(!1);let{pathname:t}=g();return o.useMemo((()=>(0,i.LX)(e,t)),[t,e])}function m(e){o.useContext(u).static||o.useLayoutEffect(e)}function y(){let{isDataRoute:e}=o.useContext(f);return e?function(){let{router:e}=M(A.UseNavigateStable),t=R(k.UseNavigateStable),n=o.useRef(!1);return m((()=>{n.current=!0})),o.useCallback((function(r,o){void 0===o&&(o={}),n.current&&("number"===typeof r?e.navigate(r):e.navigate(r,a({fromRouteId:t},o)))}),[e,t])}():function(){h()||(0,i.J0)(!1);let e=o.useContext(s),{basename:t,navigator:n}=o.useContext(u),{matches:r}=o.useContext(f),{pathname:a}=g(),l=JSON.stringify((0,i.Zq)(r).map((e=>e.pathnameBase))),c=o.useRef(!1);return m((()=>{c.current=!0})),o.useCallback((function(r,o){if(void 0===o&&(o={}),!c.current)return;if("number"===typeof r)return void n.go(r);let s=(0,i.pC)(r,JSON.parse(l),a,"path"===o.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:(0,i.RQ)([t,s.pathname])),(o.replace?n.replace:n.push)(s,o.state,o)}),[t,n,l,a,e])}()}function b(){let{matches:e}=o.useContext(f),t=e[e.length-1];return t?t.params:{}}function w(e,t){let{relative:n}=void 0===t?{}:t,{matches:r}=o.useContext(f),{pathname:a}=g(),s=JSON.stringify((0,i.Zq)(r).map((e=>e.pathnameBase)));return o.useMemo((()=>(0,i.pC)(e,JSON.parse(s),a,"path"===n)),[e,s,a,n])}function _(e,t,n){h()||(0,i.J0)(!1);let{navigator:r}=o.useContext(u),{matches:s}=o.useContext(f),l=s[s.length-1],d=l?l.params:{},p=(l&&l.pathname,l?l.pathnameBase:"/");l&&l.route;let v,m=g();if(t){var y;let e="string"===typeof t?(0,i.cP)(t):t;"/"===p||(null==(y=e.pathname)?void 0:y.startsWith(p))||(0,i.J0)(!1),v=e}else v=m;let b=v.pathname||"/",w="/"===p?b:b.slice(p.length)||"/",_=(0,i.fp)(e,{pathname:w});let x=E(_&&_.map((e=>Object.assign({},e,{params:Object.assign({},d,e.params),pathname:(0,i.RQ)([p,r.encodeLocation?r.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?p:(0,i.RQ)([p,r.encodeLocation?r.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),s,n);return t&&x?o.createElement(c.Provider,{value:{location:a({pathname:"/",search:"",hash:"",state:null,key:"default"},v),navigationType:i.aU.Pop}},x):x}function x(){let e=function(){var e;let t=o.useContext(d),n=P(k.UseRouteError),r=R(k.UseRouteError);if(t)return t;return null==(e=n.errors)?void 0:e[r]}(),t=(0,i.WK)(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:r};return o.createElement(o.Fragment,null,o.createElement("h2",null,"Unexpected Application Error!"),o.createElement("h3",{style:{fontStyle:"italic"}},t),n?o.createElement("pre",{style:a},n):null,null)}const S=o.createElement(x,null);class O extends o.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error||t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error?o.createElement(f.Provider,{value:this.props.routeContext},o.createElement(d.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function C(e){let{routeContext:t,match:n,children:r}=e,i=o.useContext(s);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),o.createElement(f.Provider,{value:t},r)}function E(e,t,n){var r;if(void 0===t&&(t=[]),void 0===n&&(n=null),null==e){var a;if(null==(a=n)||!a.errors)return null;e=n.matches}let s=e,l=null==(r=n)?void 0:r.errors;if(null!=l){let e=s.findIndex((e=>e.route.id&&(null==l?void 0:l[e.route.id])));e>=0||(0,i.J0)(!1),s=s.slice(0,Math.min(s.length,e+1))}return s.reduceRight(((e,r,i)=>{let a=r.route.id?null==l?void 0:l[r.route.id]:null,u=null;n&&(u=r.route.errorElement||S);let c=t.concat(s.slice(0,i+1)),f=()=>{let t;return t=a?u:r.route.Component?o.createElement(r.route.Component,null):r.route.element?r.route.element:e,o.createElement(C,{match:r,routeContext:{outlet:e,matches:c,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===i)?o.createElement(O,{location:n.location,revalidation:n.revalidation,component:u,error:a,children:f(),routeContext:{outlet:null,matches:c,isDataRoute:!0}}):f()}),null)}var A,k;function M(e){let t=o.useContext(s);return t||(0,i.J0)(!1),t}function P(e){let t=o.useContext(l);return t||(0,i.J0)(!1),t}function R(e){let t=function(e){let t=o.useContext(f);return t||(0,i.J0)(!1),t}(),n=t.matches[t.matches.length-1];return n.route.id||(0,i.J0)(!1),n.route.id}!function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"}(A||(A={})),function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"}(k||(k={}));(r||(r=n.t(o,2))).startTransition;function T(e){let{to:t,replace:n,state:r,relative:a}=e;h()||(0,i.J0)(!1);let{matches:s}=o.useContext(f),{pathname:l}=g(),u=y(),c=(0,i.pC)(t,(0,i.Zq)(s).map((e=>e.pathnameBase)),l,"path"===a),d=JSON.stringify(c);return o.useEffect((()=>u(JSON.parse(d),{replace:n,state:r,relative:a})),[u,d,a,n,r]),null}function I(e){(0,i.J0)(!1)}function B(e){let{basename:t="/",children:n=null,location:r,navigationType:a=i.aU.Pop,navigator:s,static:l=!1}=e;h()&&(0,i.J0)(!1);let f=t.replace(/^\/*/,"/"),d=o.useMemo((()=>({basename:f,navigator:s,static:l})),[f,s,l]);"string"===typeof r&&(r=(0,i.cP)(r));let{pathname:p="/",search:g="",hash:v="",state:m=null,key:y="default"}=r,b=o.useMemo((()=>{let e=(0,i.Zn)(p,f);return null==e?null:{location:{pathname:e,search:g,hash:v,state:m,key:y},navigationType:a}}),[f,p,g,v,m,y,a]);return null==b?null:o.createElement(u.Provider,{value:d},o.createElement(c.Provider,{children:n,value:b}))}function j(e){let{children:t,location:n}=e;return _(Z(t),n)}var D;!function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(D||(D={}));new Promise((()=>{}));class L extends o.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:n}=this.props,r=null,a=D.pending;if(n instanceof Promise)if(this.state.error){D.error;let e=this.state.error;Promise.reject().catch((()=>{})),Object.defineProperty(r,"_tracked",{get:()=>!0}),Object.defineProperty(r,"_error",{get:()=>e})}else n._tracked?(n,void 0!==r._error?D.error:void 0!==r._data?D.success:D.pending):(D.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),n.then((e=>Object.defineProperty(n,"_data",{get:()=>e})),(e=>Object.defineProperty(n,"_error",{get:()=>e}))));else D.success,Promise.resolve(),Object.defineProperty(r,"_tracked",{get:()=>!0}),Object.defineProperty(r,"_data",{get:()=>n});if(a===D.error&&r._error instanceof i.X3)throw neverSettledPromise;if(a===D.error&&!t)throw r._error;if(a===D.error)return o.createElement(AwaitContext.Provider,{value:r,children:t});if(a===D.success)return o.createElement(AwaitContext.Provider,{value:r,children:e});throw r}}function Z(e,t){void 0===t&&(t=[]);let n=[];return o.Children.forEach(e,((e,r)=>{if(!o.isValidElement(e))return;let a=[...t,r];if(e.type===o.Fragment)return void n.push.apply(n,Z(e.props.children,a));e.type!==I&&(0,i.J0)(!1),e.props.index&&e.props.children&&(0,i.J0)(!1);let s={id:e.props.id||a.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(s.children=Z(e.props.children,a)),n.push(s)})),n}},40217:function(e,t,n){!function(e,t){"use strict";function n(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,o)}function r(e){return function(){var t=this,r=arguments;return new Promise((function(o,i){var a=e.apply(t,r);function s(e){n(a,o,i,s,l,"next",e)}function l(e){n(a,o,i,s,l,"throw",e)}s(void 0)}))}}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function i(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function a(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var s={init:"init"},l=function(e){var t=e.value;return void 0===t?"":t},u=function(){return t.createElement(t.Fragment,null,"\xa0")},c={Cell:l,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function f(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){var n=t.style,r=t.className;return e=o({},e,{},i(t,["style","className"])),n&&(e.style=e.style?o({},e.style||{},{},n||{}):n),r&&(e.className=e.className?e.className+" "+r:r),""===e.className&&delete e.className,e}),{})}var d=function(e,t){return void 0===t&&(t={}),function(n){return void 0===n&&(n={}),[].concat(e,[n]).reduce((function(e,r){return function e(t,n,r){return"function"==typeof n?e({},n(t,r)):Array.isArray(n)?f.apply(void 0,[t].concat(n)):f(t,n)}(e,r,o({},t,{userProps:n}))}),{})}},p=function(e,t,n,r){return void 0===n&&(n={}),e.reduce((function(e,t){return t(e,n)}),t)},h=function(e,t,n){return void 0===n&&(n={}),e.forEach((function(e){e(t,n)}))};function g(e,t,n,r){e.findIndex((function(e){return e.pluginName===n})),t.forEach((function(t){e.findIndex((function(e){return e.pluginName===t}))}))}function v(e,t){return"function"==typeof e?e(t):e}function m(e){var n=t.useRef();return n.current=e,t.useCallback((function(){return n.current}),[])}var y="undefined"!=typeof document?t.useLayoutEffect:t.useEffect;function b(e,n){var r=t.useRef(!1);y((function(){r.current&&e(),r.current=!0}),n)}function w(e,t,n){return void 0===n&&(n={}),function(r,i){void 0===i&&(i={});var a="string"==typeof r?t[r]:r;if(void 0===a)throw console.info(t),new Error("Renderer Error \u261d\ufe0f");return _(a,o({},e,{column:t},n,{},i))}}function _(e,n){return function(e){return"function"==typeof e&&(t=Object.getPrototypeOf(e)).prototype&&t.prototype.isReactComponent;var t}(r=e)||"function"==typeof r||function(e){return"object"==typeof e&&"symbol"==typeof e.$$typeof&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}(r)?t.createElement(e,n):e;var r}function x(e,t,n){return void 0===n&&(n=0),e.map((function(e){return O(e=o({},e,{parent:t,depth:n})),e.columns&&(e.columns=x(e.columns,e,n+1)),e}))}function S(e){return P(e,"columns")}function O(e){var t=e.id,n=e.accessor,r=e.Header;if("string"==typeof n){t=t||n;var o=n.split(".");n=function(e){return function(e,t,n){if(!t)return e;var r,o="function"==typeof t?t:JSON.stringify(t),i=A.get(o)||function(){var e=function(e){return function e(t,n){if(void 0===n&&(n=[]),Array.isArray(t))for(var r=0;r<t.length;r+=1)e(t[r],n);else n.push(t);return n}(e).map((function(e){return String(e).replace(".","_")})).join(".").replace(D,".").replace(L,"").split(".")}(t);return A.set(o,e),e}();try{r=i.reduce((function(e,t){return e[t]}),e)}catch(e){}return void 0!==r?r:n}(e,o)}}if(!t&&"string"==typeof r&&r&&(t=r),!t&&e.columns)throw console.error(e),new Error('A column ID (or unique "Header" value) is required!');if(!t)throw console.error(e),new Error("A column ID (or string accessor) is required!");return Object.assign(e,{id:t,accessor:n}),e}function C(e,t){if(!t)throw new Error;return Object.assign(e,o({Header:u,Footer:u},c,{},t,{},e)),Object.assign(e,{originalWidth:e.width}),e}function E(e,t,n){void 0===n&&(n=function(){return{}});for(var r=[],i=e,a=0,s=function(){return a++},l=function(){var e={headers:[]},a=[],l=i.some((function(e){return e.parent}));i.forEach((function(r){var i,u=[].concat(a).reverse()[0];l&&(i=r.parent?o({},r.parent,{originalId:r.parent.id,id:r.parent.id+"_"+s(),headers:[r]},n(r)):C(o({originalId:r.id+"_placeholder",id:r.id+"_placeholder_"+s(),placeholderOf:r,headers:[r]},n(r)),t),u&&u.originalId===i.originalId?u.headers.push(r):a.push(i)),e.headers.push(r)})),r.push(e),i=a};i.length;)l();return r.reverse()}var A=new Map;function k(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<t.length;r+=1)if(void 0!==t[r])return t[r]}function M(e){if("function"==typeof e)return e}function P(e,t){var n=[];return function e(r){r.forEach((function(r){r[t]?e(r[t]):n.push(r)}))}(e),n}function R(e,t){var n=t.manualExpandedKey,r=t.expanded,o=t.expandSubRows,i=void 0===o||o,a=[];return e.forEach((function(e){return function e(t,o){void 0===o&&(o=!0),t.isExpanded=t.original&&t.original[n]||r[t.id],t.canExpand=t.subRows&&!!t.subRows.length,o&&a.push(t),t.subRows&&t.subRows.length&&t.isExpanded&&t.subRows.forEach((function(t){return e(t,i)}))}(e)})),a}function T(e,t,n){return M(e)||t[e]||n[e]||n.text}function I(e,t,n){return e?e(t,n):void 0===t}function B(){throw new Error("React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.")}var j=null,D=/\[/g,L=/\]/g,Z=function(e){return o({role:"table"},e)},N=function(e){return o({role:"rowgroup"},e)},F=function(e,t){var n=t.column;return o({key:"header_"+n.id,colSpan:n.totalVisibleHeaderCount,role:"columnheader"},e)},H=function(e,t){var n=t.column;return o({key:"footer_"+n.id,colSpan:n.totalVisibleHeaderCount},e)},V=function(e,t){return o({key:"headerGroup_"+t.index,role:"row"},e)},z=function(e,t){return o({key:"footerGroup_"+t.index},e)},U=function(e,t){return o({key:"row_"+t.row.id,role:"row"},e)},G=function(e,t){var n=t.cell;return o({key:"cell_"+n.row.id+"_"+n.column.id,role:"cell"},e)};function W(){return{useOptions:[],stateReducers:[],useControlledState:[],columns:[],columnsDeps:[],allColumns:[],allColumnsDeps:[],accessValue:[],materializedColumns:[],materializedColumnsDeps:[],useInstanceAfterData:[],visibleColumns:[],visibleColumnsDeps:[],headerGroups:[],headerGroupsDeps:[],useInstanceBeforeDimensions:[],useInstance:[],prepareRow:[],getTableProps:[Z],getTableBodyProps:[N],getHeaderGroupProps:[V],getFooterGroupProps:[z],getHeaderProps:[F],getFooterProps:[H],getRowProps:[U],getCellProps:[G],useFinalInstance:[]}}s.resetHiddenColumns="resetHiddenColumns",s.toggleHideColumn="toggleHideColumn",s.setHiddenColumns="setHiddenColumns",s.toggleHideAllColumns="toggleHideAllColumns";var q=function(e){e.getToggleHiddenProps=[$],e.getToggleHideAllColumnsProps=[Y],e.stateReducers.push(X),e.useInstanceBeforeDimensions.push(K),e.headerGroupsDeps.push((function(e,t){var n=t.instance;return[].concat(e,[n.state.hiddenColumns])})),e.useInstance.push(J)};q.pluginName="useColumnVisibility";var $=function(e,t){var n=t.column;return[e,{onChange:function(e){n.toggleHidden(!e.target.checked)},style:{cursor:"pointer"},checked:n.isVisible,title:"Toggle Column Visible"}]},Y=function(e,t){var n=t.instance;return[e,{onChange:function(e){n.toggleHideAllColumns(!e.target.checked)},style:{cursor:"pointer"},checked:!n.allColumnsHidden&&!n.state.hiddenColumns.length,title:"Toggle All Columns Hidden",indeterminate:!n.allColumnsHidden&&n.state.hiddenColumns.length}]};function X(e,t,n,r){if(t.type===s.init)return o({hiddenColumns:[]},e);if(t.type===s.resetHiddenColumns)return o({},e,{hiddenColumns:r.initialState.hiddenColumns||[]});if(t.type===s.toggleHideColumn){var i=(void 0!==t.value?t.value:!e.hiddenColumns.includes(t.columnId))?[].concat(e.hiddenColumns,[t.columnId]):e.hiddenColumns.filter((function(e){return e!==t.columnId}));return o({},e,{hiddenColumns:i})}return t.type===s.setHiddenColumns?o({},e,{hiddenColumns:v(t.value,e.hiddenColumns)}):t.type===s.toggleHideAllColumns?o({},e,{hiddenColumns:(void 0!==t.value?t.value:!e.hiddenColumns.length)?r.allColumns.map((function(e){return e.id})):[]}):void 0}function K(e){var n=e.headers,r=e.state.hiddenColumns;t.useRef(!1).current;var o=0;n.forEach((function(e){return o+=function e(t,n){t.isVisible=n&&!r.includes(t.id);var o=0;return t.headers&&t.headers.length?t.headers.forEach((function(n){return o+=e(n,t.isVisible)})):o=t.isVisible?1:0,t.totalVisibleHeaderCount=o,o}(e,!0)}))}function J(e){var n=e.columns,r=e.flatHeaders,o=e.dispatch,i=e.allColumns,a=e.getHooks,l=e.state.hiddenColumns,u=e.autoResetHiddenColumns,c=void 0===u||u,f=m(e),p=i.length===l.length,h=t.useCallback((function(e,t){return o({type:s.toggleHideColumn,columnId:e,value:t})}),[o]),g=t.useCallback((function(e){return o({type:s.setHiddenColumns,value:e})}),[o]),v=t.useCallback((function(e){return o({type:s.toggleHideAllColumns,value:e})}),[o]),y=d(a().getToggleHideAllColumnsProps,{instance:f()});r.forEach((function(e){e.toggleHidden=function(t){o({type:s.toggleHideColumn,columnId:e.id,value:t})},e.getToggleHiddenProps=d(a().getToggleHiddenProps,{instance:f(),column:e})}));var w=m(c);b((function(){w()&&o({type:s.resetHiddenColumns})}),[o,n]),Object.assign(e,{allColumnsHidden:p,toggleHideColumn:h,setHiddenColumns:g,toggleHideAllColumns:v,getToggleHideAllColumnsProps:y})}var Q={},ee={},te=function(e,t,n){return e},ne=function(e,t){return e.subRows||[]},re=function(e,t,n){return""+(n?[n.id,t].join("."):t)},oe=function(e){return e};function ie(e){var t=e.initialState,n=void 0===t?Q:t,r=e.defaultColumn,a=void 0===r?ee:r,s=e.getSubRows,l=void 0===s?ne:s,u=e.getRowId,c=void 0===u?re:u,f=e.stateReducer,d=void 0===f?te:f,p=e.useControlledState,h=void 0===p?oe:p;return o({},i(e,["initialState","defaultColumn","getSubRows","getRowId","stateReducer","useControlledState"]),{initialState:n,defaultColumn:a,getSubRows:l,getRowId:c,stateReducer:d,useControlledState:h})}function ae(e,t){void 0===t&&(t=0);var n=0,r=0,o=0,i=0;return e.forEach((function(e){var a=e.headers;if(e.totalLeft=t,a&&a.length){var s=ae(a,t),l=s[0],u=s[1],c=s[2],f=s[3];e.totalMinWidth=l,e.totalWidth=u,e.totalMaxWidth=c,e.totalFlexWidth=f}else e.totalMinWidth=e.minWidth,e.totalWidth=Math.min(Math.max(e.minWidth,e.width),e.maxWidth),e.totalMaxWidth=e.maxWidth,e.totalFlexWidth=e.canResize?e.totalWidth:0;e.isVisible&&(t+=e.totalWidth,n+=e.totalMinWidth,r+=e.totalWidth,o+=e.totalMaxWidth,i+=e.totalFlexWidth)})),[n,r,o,i]}function se(e){var t=e.data,n=e.rows,r=e.flatRows,o=e.rowsById,i=e.column,a=e.getRowId,s=e.getSubRows,l=e.accessValueHooks,u=e.getInstance;t.forEach((function(e,c){return function e(n,c,f,d,h){void 0===f&&(f=0);var g=n,v=a(n,c,d),m=o[v];if(m)m.subRows&&m.originalSubRows.forEach((function(t,n){return e(t,n,f+1,m)}));else if((m={id:v,original:g,index:c,depth:f,cells:[{}]}).cells.map=B,m.cells.filter=B,m.cells.forEach=B,m.cells[0].getCellProps=B,m.values={},h.push(m),r.push(m),o[v]=m,m.originalSubRows=s(n,c),m.originalSubRows){var y=[];m.originalSubRows.forEach((function(t,n){return e(t,n,f+1,m,y)})),m.subRows=y}i.accessor&&(m.values[i.id]=i.accessor(n,c,m,h,t)),m.values[i.id]=p(l,m.values[i.id],{row:m,column:i,instance:u()})}(e,c,0,void 0,n)}))}s.resetExpanded="resetExpanded",s.toggleRowExpanded="toggleRowExpanded",s.toggleAllRowsExpanded="toggleAllRowsExpanded";var le=function(e){e.getToggleAllRowsExpandedProps=[ue],e.getToggleRowExpandedProps=[ce],e.stateReducers.push(fe),e.useInstance.push(de),e.prepareRow.push(pe)};le.pluginName="useExpanded";var ue=function(e,t){var n=t.instance;return[e,{onClick:function(e){n.toggleAllRowsExpanded()},style:{cursor:"pointer"},title:"Toggle All Rows Expanded"}]},ce=function(e,t){var n=t.row;return[e,{onClick:function(){n.toggleRowExpanded()},style:{cursor:"pointer"},title:"Toggle Row Expanded"}]};function fe(e,t,n,r){if(t.type===s.init)return o({expanded:{}},e);if(t.type===s.resetExpanded)return o({},e,{expanded:r.initialState.expanded||{}});if(t.type===s.toggleAllRowsExpanded){var l=t.value,u=r.rowsById,c=Object.keys(u).length===Object.keys(e.expanded).length;if(void 0!==l?l:!c){var f={};return Object.keys(u).forEach((function(e){f[e]=!0})),o({},e,{expanded:f})}return o({},e,{expanded:{}})}if(t.type===s.toggleRowExpanded){var d,p=t.id,h=t.value,g=e.expanded[p],v=void 0!==h?h:!g;if(!g&&v)return o({},e,{expanded:o({},e.expanded,(d={},d[p]=!0,d))});if(g&&!v){var m=e.expanded;return m[p],o({},e,{expanded:i(m,[p].map(a))})}return e}}function de(e){var n=e.data,r=e.rows,o=e.rowsById,i=e.manualExpandedKey,a=void 0===i?"expanded":i,l=e.paginateExpandedRows,u=void 0===l||l,c=e.expandSubRows,f=void 0===c||c,p=e.autoResetExpanded,h=void 0===p||p,v=e.getHooks,y=e.plugins,w=e.state.expanded,_=e.dispatch;g(y,["useSortBy","useGroupBy","usePivotColumns","useGlobalFilter"],"useExpanded");var x=m(h),S=Boolean(Object.keys(o).length&&Object.keys(w).length);S&&Object.keys(o).some((function(e){return!w[e]}))&&(S=!1),b((function(){x()&&_({type:s.resetExpanded})}),[_,n]);var O=t.useCallback((function(e,t){_({type:s.toggleRowExpanded,id:e,value:t})}),[_]),C=t.useCallback((function(e){return _({type:s.toggleAllRowsExpanded,value:e})}),[_]),E=t.useMemo((function(){return u?R(r,{manualExpandedKey:a,expanded:w,expandSubRows:f}):r}),[u,r,a,w,f]),A=t.useMemo((function(){return function(e){var t=0;return Object.keys(e).forEach((function(e){var n=e.split(".");t=Math.max(t,n.length)})),t}(w)}),[w]),k=m(e),M=d(v().getToggleAllRowsExpandedProps,{instance:k()});Object.assign(e,{preExpandedRows:r,expandedRows:E,rows:E,expandedDepth:A,isAllRowsExpanded:S,toggleRowExpanded:O,toggleAllRowsExpanded:C,getToggleAllRowsExpandedProps:M})}function pe(e,t){var n=t.instance.getHooks,r=t.instance;e.toggleRowExpanded=function(t){return r.toggleRowExpanded(e.id,t)},e.getToggleRowExpandedProps=d(n().getToggleRowExpandedProps,{instance:r,row:e})}var he=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return String(r).toLowerCase().includes(String(n).toLowerCase())}))}))};he.autoRemove=function(e){return!e};var ge=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return void 0===r||String(r).toLowerCase()===String(n).toLowerCase()}))}))};ge.autoRemove=function(e){return!e};var ve=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return void 0===r||String(r)===String(n)}))}))};ve.autoRemove=function(e){return!e};var me=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t].includes(n)}))}))};me.autoRemove=function(e){return!e||!e.length};var ye=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return r&&r.length&&n.every((function(e){return r.includes(e)}))}))}))};ye.autoRemove=function(e){return!e||!e.length};var be=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return r&&r.length&&n.some((function(e){return r.includes(e)}))}))}))};be.autoRemove=function(e){return!e||!e.length};var we=function(e,t,n){return e.filter((function(e){return t.some((function(t){var r=e.values[t];return n.includes(r)}))}))};we.autoRemove=function(e){return!e||!e.length};var _e=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t]===n}))}))};_e.autoRemove=function(e){return void 0===e};var xe=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t]==n}))}))};xe.autoRemove=function(e){return null==e};var Se=function(e,t,n){var r=n||[],o=r[0],i=r[1];if((o="number"==typeof o?o:-1/0)>(i="number"==typeof i?i:1/0)){var a=o;o=i,i=a}return e.filter((function(e){return t.some((function(t){var n=e.values[t];return n>=o&&n<=i}))}))};Se.autoRemove=function(e){return!e||"number"!=typeof e[0]&&"number"!=typeof e[1]};var Oe=Object.freeze({__proto__:null,text:he,exactText:ge,exactTextCase:ve,includes:me,includesAll:ye,includesSome:be,includesValue:we,exact:_e,equals:xe,between:Se});s.resetFilters="resetFilters",s.setFilter="setFilter",s.setAllFilters="setAllFilters";var Ce=function(e){e.stateReducers.push(Ee),e.useInstance.push(Ae)};function Ee(e,t,n,r){if(t.type===s.init)return o({filters:[]},e);if(t.type===s.resetFilters)return o({},e,{filters:r.initialState.filters||[]});if(t.type===s.setFilter){var i=t.columnId,a=t.filterValue,l=r.allColumns,u=r.filterTypes,c=l.find((function(e){return e.id===i}));if(!c)throw new Error("React-Table: Could not find a column with id: "+i);var f=T(c.filter,u||{},Oe),d=e.filters.find((function(e){return e.id===i})),p=v(a,d&&d.value);return I(f.autoRemove,p,c)?o({},e,{filters:e.filters.filter((function(e){return e.id!==i}))}):o({},e,d?{filters:e.filters.map((function(e){return e.id===i?{id:i,value:p}:e}))}:{filters:[].concat(e.filters,[{id:i,value:p}])})}if(t.type===s.setAllFilters){var h=t.filters,g=r.allColumns,m=r.filterTypes;return o({},e,{filters:v(h,e.filters).filter((function(e){var t=g.find((function(t){return t.id===e.id}));return!I(T(t.filter,m||{},Oe).autoRemove,e.value,t)}))})}}function Ae(e){var n=e.data,r=e.rows,o=e.flatRows,i=e.rowsById,a=e.allColumns,l=e.filterTypes,u=e.manualFilters,c=e.defaultCanFilter,f=void 0!==c&&c,d=e.disableFilters,p=e.state.filters,h=e.dispatch,g=e.autoResetFilters,v=void 0===g||g,y=t.useCallback((function(e,t){h({type:s.setFilter,columnId:e,filterValue:t})}),[h]),w=t.useCallback((function(e){h({type:s.setAllFilters,filters:e})}),[h]);a.forEach((function(e){var t=e.id,n=e.accessor,r=e.defaultCanFilter,o=e.disableFilters;e.canFilter=n?k(!0!==o&&void 0,!0!==d&&void 0,!0):k(r,f,!1),e.setFilter=function(t){return y(e.id,t)};var i=p.find((function(e){return e.id===t}));e.filterValue=i&&i.value}));var _=t.useMemo((function(){if(u||!p.length)return[r,o,i];var e=[],t={};return[function n(r,o){void 0===o&&(o=0);var i=r;return(i=p.reduce((function(e,t){var n=t.id,r=t.value,i=a.find((function(e){return e.id===n}));if(!i)return e;0===o&&(i.preFilteredRows=e);var s=T(i.filter,l||{},Oe);return s?(i.filteredRows=s(e,[n],r),i.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+i.id+"."),e)}),r)).forEach((function(r){e.push(r),t[r.id]=r,r.subRows&&(r.subRows=r.subRows&&r.subRows.length>0?n(r.subRows,o+1):r.subRows)})),i}(r),e,t]}),[u,p,r,o,i,a,l]),x=_[0],S=_[1],O=_[2];t.useMemo((function(){a.filter((function(e){return!p.find((function(t){return t.id===e.id}))})).forEach((function(e){e.preFilteredRows=x,e.filteredRows=x}))}),[x,p,a]);var C=m(v);b((function(){C()&&h({type:s.resetFilters})}),[h,u?null:n]),Object.assign(e,{preFilteredRows:r,preFilteredFlatRows:o,preFilteredRowsById:i,filteredRows:x,filteredFlatRows:S,filteredRowsById:O,rows:x,flatRows:S,rowsById:O,setFilter:y,setAllFilters:w})}Ce.pluginName="useFilters",s.resetGlobalFilter="resetGlobalFilter",s.setGlobalFilter="setGlobalFilter";var ke=function(e){e.stateReducers.push(Me),e.useInstance.push(Pe)};function Me(e,t,n,r){if(t.type===s.resetGlobalFilter)return o({},e,{globalFilter:r.initialState.globalFilter||void 0});if(t.type===s.setGlobalFilter){var a=t.filterValue,l=r.userFilterTypes,u=T(r.globalFilter,l||{},Oe),c=v(a,e.globalFilter);return I(u.autoRemove,c)?(e.globalFilter,i(e,["globalFilter"])):o({},e,{globalFilter:c})}}function Pe(e){var n=e.data,r=e.rows,o=e.flatRows,i=e.rowsById,a=e.allColumns,l=e.filterTypes,u=e.globalFilter,c=e.manualGlobalFilter,f=e.state.globalFilter,d=e.dispatch,p=e.autoResetGlobalFilter,h=void 0===p||p,g=e.disableGlobalFilter,v=t.useCallback((function(e){d({type:s.setGlobalFilter,filterValue:e})}),[d]),y=t.useMemo((function(){if(c||void 0===f)return[r,o,i];var e=[],t={},n=T(u,l||{},Oe);if(!n)return console.warn("Could not find a valid 'globalFilter' option."),r;a.forEach((function(e){var t=e.disableGlobalFilter;e.canFilter=k(!0!==t&&void 0,!0!==g&&void 0,!0)}));var s=a.filter((function(e){return!0===e.canFilter}));return[function r(o){return(o=n(o,s.map((function(e){return e.id})),f)).forEach((function(n){e.push(n),t[n.id]=n,n.subRows=n.subRows&&n.subRows.length?r(n.subRows):n.subRows})),o}(r),e,t]}),[c,f,u,l,a,r,o,i,g]),w=y[0],_=y[1],x=y[2],S=m(h);b((function(){S()&&d({type:s.resetGlobalFilter})}),[d,c?null:n]),Object.assign(e,{preGlobalFilteredRows:r,preGlobalFilteredFlatRows:o,preGlobalFilteredRowsById:i,globalFilteredRows:w,globalFilteredFlatRows:_,globalFilteredRowsById:x,rows:w,flatRows:_,rowsById:x,setGlobalFilter:v,disableGlobalFilter:g})}function Re(e,t){return t.reduce((function(e,t){return e+("number"==typeof t?t:0)}),0)}ke.pluginName="useGlobalFilter";var Te=Object.freeze({__proto__:null,sum:Re,min:function(e){var t=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.min(t,e))})),t},max:function(e){var t=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.max(t,e))})),t},minMax:function(e){var t=e[0]||0,n=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.min(t,e),n=Math.max(n,e))})),t+".."+n},average:function(e){return Re(0,e)/e.length},median:function(e){if(!e.length)return null;var t=Math.floor(e.length/2),n=[].concat(e).sort((function(e,t){return e-t}));return e.length%2!=0?n[t]:(n[t-1]+n[t])/2},unique:function(e){return Array.from(new Set(e).values())},uniqueCount:function(e){return new Set(e).size},count:function(e){return e.length}}),Ie=[],Be={};s.resetGroupBy="resetGroupBy",s.setGroupBy="setGroupBy",s.toggleGroupBy="toggleGroupBy";var je=function(e){e.getGroupByToggleProps=[De],e.stateReducers.push(Le),e.visibleColumnsDeps.push((function(e,t){var n=t.instance;return[].concat(e,[n.state.groupBy])})),e.visibleColumns.push(Ze),e.useInstance.push(Fe),e.prepareRow.push(He)};je.pluginName="useGroupBy";var De=function(e,t){var n=t.header;return[e,{onClick:n.canGroupBy?function(e){e.persist(),n.toggleGroupBy()}:void 0,style:{cursor:n.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function Le(e,t,n,r){if(t.type===s.init)return o({groupBy:[]},e);if(t.type===s.resetGroupBy)return o({},e,{groupBy:r.initialState.groupBy||[]});if(t.type===s.setGroupBy)return o({},e,{groupBy:t.value});if(t.type===s.toggleGroupBy){var i=t.columnId,a=t.value,l=void 0!==a?a:!e.groupBy.includes(i);return o({},e,l?{groupBy:[].concat(e.groupBy,[i])}:{groupBy:e.groupBy.filter((function(e){return e!==i}))})}}function Ze(e,t){var n=t.instance.state.groupBy,r=n.map((function(t){return e.find((function(e){return e.id===t}))})).filter(Boolean),o=e.filter((function(e){return!n.includes(e.id)}));return(e=[].concat(r,o)).forEach((function(e){e.isGrouped=n.includes(e.id),e.groupedIndex=n.indexOf(e.id)})),e}var Ne={};function Fe(e){var n=e.data,r=e.rows,i=e.flatRows,a=e.rowsById,l=e.allColumns,u=e.flatHeaders,c=e.groupByFn,f=void 0===c?Ve:c,p=e.manualGroupBy,h=e.aggregations,v=void 0===h?Ne:h,y=e.plugins,w=e.state.groupBy,_=e.dispatch,x=e.autoResetGroupBy,S=void 0===x||x,O=e.disableGroupBy,C=e.defaultCanGroupBy,E=e.getHooks;g(y,["useColumnOrder","useFilters"],"useGroupBy");var A=m(e);l.forEach((function(t){var n=t.accessor,r=t.defaultGroupBy,o=t.disableGroupBy;t.canGroupBy=n?k(t.canGroupBy,!0!==o&&void 0,!0!==O&&void 0,!0):k(t.canGroupBy,r,C,!1),t.canGroupBy&&(t.toggleGroupBy=function(){return e.toggleGroupBy(t.id)}),t.Aggregated=t.Aggregated||t.Cell}));var M=t.useCallback((function(e,t){_({type:s.toggleGroupBy,columnId:e,value:t})}),[_]),R=t.useCallback((function(e){_({type:s.setGroupBy,value:e})}),[_]);u.forEach((function(e){e.getGroupByToggleProps=d(E().getGroupByToggleProps,{instance:A(),header:e})}));var T=t.useMemo((function(){if(p||!w.length)return[r,i,a,Ie,Be,i,a];var e=w.filter((function(e){return l.find((function(t){return t.id===e}))})),t=[],n={},s=[],u={},c=[],d={},h=function r(i,a,p){if(void 0===a&&(a=0),a===e.length)return i.map((function(e){return o({},e,{depth:a})}));var h=e[a],g=f(i,h);return Object.entries(g).map((function(o,i){var f=o[0],g=o[1],m=h+":"+f,y=r(g,a+1,m=p?p+">"+m:m),b=a?P(g,"leafRows"):g,w=function(t,n,r){var o={};return l.forEach((function(i){if(e.includes(i.id))o[i.id]=n[0]?n[0].values[i.id]:null;else{var a="function"==typeof i.aggregate?i.aggregate:v[i.aggregate]||Te[i.aggregate];if(a){var s=n.map((function(e){return e.values[i.id]})),l=t.map((function(e){var t=e.values[i.id];if(!r&&i.aggregateValue){var n="function"==typeof i.aggregateValue?i.aggregateValue:v[i.aggregateValue]||Te[i.aggregateValue];if(!n)throw console.info({column:i}),new Error("React Table: Invalid column.aggregateValue option for column listed above");t=n(t,e,i)}return t}));o[i.id]=a(l,s)}else{if(i.aggregate)throw console.info({column:i}),new Error("React Table: Invalid column.aggregate option for column listed above");o[i.id]=null}}})),o}(b,g,a),_={id:m,isGrouped:!0,groupByID:h,groupByVal:f,values:w,subRows:y,leafRows:b,depth:a,index:i};return y.forEach((function(e){t.push(e),n[e.id]=e,e.isGrouped?(s.push(e),u[e.id]=e):(c.push(e),d[e.id]=e)})),_}))}(r);return h.forEach((function(e){t.push(e),n[e.id]=e,e.isGrouped?(s.push(e),u[e.id]=e):(c.push(e),d[e.id]=e)})),[h,t,n,s,u,c,d]}),[p,w,r,i,a,l,v,f]),I=T[0],B=T[1],j=T[2],D=T[3],L=T[4],Z=T[5],N=T[6],F=m(S);b((function(){F()&&_({type:s.resetGroupBy})}),[_,p?null:n]),Object.assign(e,{preGroupedRows:r,preGroupedFlatRow:i,preGroupedRowsById:a,groupedRows:I,groupedFlatRows:B,groupedRowsById:j,onlyGroupedFlatRows:D,onlyGroupedRowsById:L,nonGroupedFlatRows:Z,nonGroupedRowsById:N,rows:I,flatRows:B,rowsById:j,toggleGroupBy:M,setGroupBy:R})}function He(e){e.allCells.forEach((function(t){var n;t.isGrouped=t.column.isGrouped&&t.column.id===e.groupByID,t.isPlaceholder=!t.isGrouped&&t.column.isGrouped,t.isAggregated=!t.isGrouped&&!t.isPlaceholder&&(null==(n=e.subRows)?void 0:n.length)}))}function Ve(e,t){return e.reduce((function(e,n,r){var o=""+n.values[t];return e[o]=Array.isArray(e[o])?e[o]:[],e[o].push(n),e}),{})}var ze=/([0-9]+)/gm;function Ue(e,t){return e===t?0:e>t?1:-1}function Ge(e,t,n){return[e.values[n],t.values[n]]}function We(e){return"number"==typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"==typeof e?e:""}var qe=Object.freeze({__proto__:null,alphanumeric:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1];for(o=We(o),i=We(i),o=o.split(ze).filter(Boolean),i=i.split(ze).filter(Boolean);o.length&&i.length;){var a=o.shift(),s=i.shift(),l=parseInt(a,10),u=parseInt(s,10),c=[l,u].sort();if(isNaN(c[0])){if(a>s)return 1;if(s>a)return-1}else{if(isNaN(c[1]))return isNaN(l)?-1:1;if(l>u)return 1;if(u>l)return-1}}return o.length-i.length},datetime:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1];return Ue(o=o.getTime(),i=i.getTime())},basic:function(e,t,n){var r=Ge(e,t,n);return Ue(r[0],r[1])},string:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1];for(o=o.split("").filter(Boolean),i=i.split("").filter(Boolean);o.length&&i.length;){var a=o.shift(),s=i.shift(),l=a.toLowerCase(),u=s.toLowerCase();if(l>u)return 1;if(u>l)return-1;if(a>s)return 1;if(s>a)return-1}return o.length-i.length},number:function(e,t,n){var r=Ge(e,t,n),o=r[0],i=r[1],a=/[^0-9.]/gi;return Ue(o=Number(String(o).replace(a,"")),i=Number(String(i).replace(a,"")))}});s.resetSortBy="resetSortBy",s.setSortBy="setSortBy",s.toggleSortBy="toggleSortBy",s.clearSortBy="clearSortBy",c.sortType="alphanumeric",c.sortDescFirst=!1;var $e=function(e){e.getSortByToggleProps=[Ye],e.stateReducers.push(Xe),e.useInstance.push(Ke)};$e.pluginName="useSortBy";var Ye=function(e,t){var n=t.instance,r=t.column,o=n.isMultiSortEvent,i=void 0===o?function(e){return e.shiftKey}:o;return[e,{onClick:r.canSort?function(e){e.persist(),r.toggleSortBy(void 0,!n.disableMultiSort&&i(e))}:void 0,style:{cursor:r.canSort?"pointer":void 0},title:r.canSort?"Toggle SortBy":void 0}]};function Xe(e,t,n,r){if(t.type===s.init)return o({sortBy:[]},e);if(t.type===s.resetSortBy)return o({},e,{sortBy:r.initialState.sortBy||[]});if(t.type===s.clearSortBy)return o({},e,{sortBy:e.sortBy.filter((function(e){return e.id!==t.columnId}))});if(t.type===s.setSortBy)return o({},e,{sortBy:t.sortBy});if(t.type===s.toggleSortBy){var i,a=t.columnId,l=t.desc,u=t.multi,c=r.allColumns,f=r.disableMultiSort,d=r.disableSortRemove,p=r.disableMultiRemove,h=r.maxMultiSortColCount,g=void 0===h?Number.MAX_SAFE_INTEGER:h,v=e.sortBy,m=c.find((function(e){return e.id===a})).sortDescFirst,y=v.find((function(e){return e.id===a})),b=v.findIndex((function(e){return e.id===a})),w=null!=l,_=[];return"toggle"!==(i=!f&&u?y?"toggle":"add":b!==v.length-1||1!==v.length?"replace":y?"toggle":"replace")||d||w||u&&p||!(y&&y.desc&&!m||!y.desc&&m)||(i="remove"),"replace"===i?_=[{id:a,desc:w?l:m}]:"add"===i?(_=[].concat(v,[{id:a,desc:w?l:m}])).splice(0,_.length-g):"toggle"===i?_=v.map((function(e){return e.id===a?o({},e,{desc:w?l:!y.desc}):e})):"remove"===i&&(_=v.filter((function(e){return e.id!==a}))),o({},e,{sortBy:_})}}function Ke(e){var n=e.data,r=e.rows,o=e.flatRows,i=e.allColumns,a=e.orderByFn,l=void 0===a?Je:a,u=e.sortTypes,c=e.manualSortBy,f=e.defaultCanSort,p=e.disableSortBy,h=e.flatHeaders,v=e.state.sortBy,y=e.dispatch,w=e.plugins,_=e.getHooks,x=e.autoResetSortBy,S=void 0===x||x;g(w,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var O=t.useCallback((function(e){y({type:s.setSortBy,sortBy:e})}),[y]),C=t.useCallback((function(e,t,n){y({type:s.toggleSortBy,columnId:e,desc:t,multi:n})}),[y]),E=m(e);h.forEach((function(e){var t=e.accessor,n=e.canSort,r=e.disableSortBy,o=e.id,i=t?k(!0!==r&&void 0,!0!==p&&void 0,!0):k(f,n,!1);e.canSort=i,e.canSort&&(e.toggleSortBy=function(t,n){return C(e.id,t,n)},e.clearSortBy=function(){y({type:s.clearSortBy,columnId:e.id})}),e.getSortByToggleProps=d(_().getSortByToggleProps,{instance:E(),column:e});var a=v.find((function(e){return e.id===o}));e.isSorted=!!a,e.sortedIndex=v.findIndex((function(e){return e.id===o})),e.isSortedDesc=e.isSorted?a.desc:void 0}));var A=t.useMemo((function(){if(c||!v.length)return[r,o];var e=[],t=v.filter((function(e){return i.find((function(t){return t.id===e.id}))}));return[function n(r){var o=l(r,t.map((function(e){var t=i.find((function(t){return t.id===e.id}));if(!t)throw new Error("React-Table: Could not find a column with id: "+e.id+" while sorting");var n=t.sortType,r=M(n)||(u||{})[n]||qe[n];if(!r)throw new Error("React-Table: Could not find a valid sortType of '"+n+"' for column '"+e.id+"'.");return function(t,n){return r(t,n,e.id,e.desc)}})),t.map((function(e){var t=i.find((function(t){return t.id===e.id}));return t&&t.sortInverted?e.desc:!e.desc})));return o.forEach((function(t){e.push(t),t.subRows&&0!==t.subRows.length&&(t.subRows=n(t.subRows))})),o}(r),e]}),[c,v,r,o,i,l,u]),P=A[0],R=A[1],T=m(S);b((function(){T()&&y({type:s.resetSortBy})}),[c?null:n]),Object.assign(e,{preSortedRows:r,preSortedFlatRows:o,sortedRows:P,sortedFlatRows:R,rows:P,flatRows:R,setSortBy:O,toggleSortBy:C})}function Je(e,t,n){return[].concat(e).sort((function(e,r){for(var o=0;o<t.length;o+=1){var i=t[o],a=!1===n[o]||"desc"===n[o],s=i(e,r);if(0!==s)return a?-s:s}return n[0]?e.index-r.index:r.index-e.index}))}s.resetPage="resetPage",s.gotoPage="gotoPage",s.setPageSize="setPageSize";var Qe=function(e){e.stateReducers.push(et),e.useInstance.push(tt)};function et(e,t,n,r){if(t.type===s.init)return o({pageSize:10,pageIndex:0},e);if(t.type===s.resetPage)return o({},e,{pageIndex:r.initialState.pageIndex||0});if(t.type===s.gotoPage){var i=r.pageCount,a=r.page,l=v(t.pageIndex,e.pageIndex),u=!1;return l>e.pageIndex?u=-1===i?a.length>=e.pageSize:l<i:l<e.pageIndex&&(u=l>-1),u?o({},e,{pageIndex:l}):e}if(t.type===s.setPageSize){var c=t.pageSize,f=e.pageSize*e.pageIndex;return o({},e,{pageIndex:Math.floor(f/c),pageSize:c})}}function tt(e){var n=e.rows,r=e.autoResetPage,o=void 0===r||r,i=e.manualExpandedKey,a=void 0===i?"expanded":i,l=e.plugins,u=e.pageCount,c=e.paginateExpandedRows,f=void 0===c||c,d=e.expandSubRows,p=void 0===d||d,h=e.state,v=h.pageSize,y=h.pageIndex,w=h.expanded,_=h.globalFilter,x=h.filters,S=h.groupBy,O=h.sortBy,C=e.dispatch,E=e.data,A=e.manualPagination;g(l,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var k=m(o);b((function(){k()&&C({type:s.resetPage})}),[C,A?null:E,_,x,S,O]);var M=A?u:Math.ceil(n.length/v),P=t.useMemo((function(){return M>0?[].concat(new Array(M)).fill(null).map((function(e,t){return t})):[]}),[M]),T=t.useMemo((function(){var e;if(A)e=n;else{var t=v*y,r=t+v;e=n.slice(t,r)}return f?e:R(e,{manualExpandedKey:a,expanded:w,expandSubRows:p})}),[p,w,a,A,y,v,f,n]),I=y>0,B=-1===M?T.length>=v:y<M-1,j=t.useCallback((function(e){C({type:s.gotoPage,pageIndex:e})}),[C]),D=t.useCallback((function(){return j((function(e){return e-1}))}),[j]),L=t.useCallback((function(){return j((function(e){return e+1}))}),[j]),Z=t.useCallback((function(e){C({type:s.setPageSize,pageSize:e})}),[C]);Object.assign(e,{pageOptions:P,pageCount:M,page:T,canPreviousPage:I,canNextPage:B,gotoPage:j,previousPage:D,nextPage:L,setPageSize:Z})}Qe.pluginName="usePagination",s.resetPivot="resetPivot",s.togglePivot="togglePivot";var nt=function(e){e.getPivotToggleProps=[ot],e.stateReducers.push(it),e.useInstanceAfterData.push(at),e.allColumns.push(st),e.accessValue.push(lt),e.materializedColumns.push(ut),e.materializedColumnsDeps.push(ct),e.visibleColumns.push(ft),e.visibleColumnsDeps.push(dt),e.useInstance.push(pt),e.prepareRow.push(ht)};nt.pluginName="usePivotColumns";var rt=[],ot=function(e,t){var n=t.header;return[e,{onClick:n.canPivot?function(e){e.persist(),n.togglePivot()}:void 0,style:{cursor:n.canPivot?"pointer":void 0},title:"Toggle Pivot"}]};function it(e,t,n,r){if(t.type===s.init)return o({pivotColumns:rt},e);if(t.type===s.resetPivot)return o({},e,{pivotColumns:r.initialState.pivotColumns||rt});if(t.type===s.togglePivot){var i=t.columnId,a=t.value,l=void 0!==a?a:!e.pivotColumns.includes(i);return o({},e,l?{pivotColumns:[].concat(e.pivotColumns,[i])}:{pivotColumns:e.pivotColumns.filter((function(e){return e!==i}))})}}function at(e){e.allColumns.forEach((function(t){t.isPivotSource=e.state.pivotColumns.includes(t.id)}))}function st(e,t){var n=t.instance;return e.forEach((function(e){e.isPivotSource=n.state.pivotColumns.includes(e.id),e.uniqueValues=new Set})),e}function lt(e,t){var n=t.column;return n.uniqueValues&&void 0!==e&&n.uniqueValues.add(e),e}function ut(e,t){var n=t.instance,r=n.allColumns,i=n.state;if(!i.pivotColumns.length||!i.groupBy||!i.groupBy.length)return e;var a=i.pivotColumns.map((function(e){return r.find((function(t){return t.id===e}))})).filter(Boolean),s=r.filter((function(e){return!e.isPivotSource&&!i.groupBy.includes(e.id)&&!i.pivotColumns.includes(e.id)})),l=S(function e(t,n,r){void 0===t&&(t=0),void 0===r&&(r=[]);var i=a[t];return i?Array.from(i.uniqueValues).sort().map((function(a){var s=o({},i,{Header:i.PivotHeader||"string"==typeof i.header?i.Header+": "+a:a,isPivotGroup:!0,parent:n,depth:t,id:n?n.id+"."+i.id+"."+a:i.id+"."+a,pivotValue:a});return s.columns=e(t+1,s,[].concat(r,[function(e){return e.values[i.id]===a}])),s})):s.map((function(e){return o({},e,{canPivot:!1,isPivoted:!0,parent:n,depth:t,id:""+(n?n.id+"."+e.id:e.id),accessor:function(t,n,o){if(r.every((function(e){return e(o)})))return o.values[e.id]}})}))}());return[].concat(e,l)}function ct(e,t){var n=t.instance.state,r=n.pivotColumns,o=n.groupBy;return[].concat(e,[r,o])}function ft(e,t){var n=t.instance.state;return e=e.filter((function(e){return!e.isPivotSource})),n.pivotColumns.length&&n.groupBy&&n.groupBy.length&&(e=e.filter((function(e){return e.isGrouped||e.isPivoted}))),e}function dt(e,t){var n=t.instance;return[].concat(e,[n.state.pivotColumns,n.state.groupBy])}function pt(e){var t=e.columns,n=e.allColumns,r=e.flatHeaders,o=e.getHooks,i=e.plugins,a=e.dispatch,l=e.autoResetPivot,u=void 0===l||l,c=e.manaulPivot,f=e.disablePivot,p=e.defaultCanPivot;g(i,["useGroupBy"],"usePivotColumns");var h=m(e);n.forEach((function(t){var n=t.accessor,r=t.defaultPivot,o=t.disablePivot;t.canPivot=n?k(t.canPivot,!0!==o&&void 0,!0!==f&&void 0,!0):k(t.canPivot,r,p,!1),t.canPivot&&(t.togglePivot=function(){return e.togglePivot(t.id)}),t.Aggregated=t.Aggregated||t.Cell})),r.forEach((function(e){e.getPivotToggleProps=d(o().getPivotToggleProps,{instance:h(),header:e})}));var v=m(u);b((function(){v()&&a({type:s.resetPivot})}),[a,c?null:t]),Object.assign(e,{togglePivot:function(e,t){a({type:s.togglePivot,columnId:e,value:t})}})}function ht(e){e.allCells.forEach((function(e){e.isPivoted=e.column.isPivoted}))}s.resetSelectedRows="resetSelectedRows",s.toggleAllRowsSelected="toggleAllRowsSelected",s.toggleRowSelected="toggleRowSelected",s.toggleAllPageRowsSelected="toggleAllPageRowsSelected";var gt=function(e){e.getToggleRowSelectedProps=[vt],e.getToggleAllRowsSelectedProps=[mt],e.getToggleAllPageRowsSelectedProps=[yt],e.stateReducers.push(bt),e.useInstance.push(wt),e.prepareRow.push(_t)};gt.pluginName="useRowSelect";var vt=function(e,t){var n=t.instance,r=t.row,o=n.manualRowSelectedKey,i=void 0===o?"isSelected":o;return[e,{onChange:function(e){r.toggleRowSelected(e.target.checked)},style:{cursor:"pointer"},checked:!(!r.original||!r.original[i])||r.isSelected,title:"Toggle Row Selected",indeterminate:r.isSomeSelected}]},mt=function(e,t){var n=t.instance;return[e,{onChange:function(e){n.toggleAllRowsSelected(e.target.checked)},style:{cursor:"pointer"},checked:n.isAllRowsSelected,title:"Toggle All Rows Selected",indeterminate:Boolean(!n.isAllRowsSelected&&Object.keys(n.state.selectedRowIds).length)}]},yt=function(e,t){var n=t.instance;return[e,{onChange:function(e){n.toggleAllPageRowsSelected(e.target.checked)},style:{cursor:"pointer"},checked:n.isAllPageRowsSelected,title:"Toggle All Current Page Rows Selected",indeterminate:Boolean(!n.isAllPageRowsSelected&&n.page.some((function(e){var t=e.id;return n.state.selectedRowIds[t]})))}]};function bt(e,t,n,r){if(t.type===s.init)return o({selectedRowIds:{}},e);if(t.type===s.resetSelectedRows)return o({},e,{selectedRowIds:r.initialState.selectedRowIds||{}});if(t.type===s.toggleAllRowsSelected){var i=t.value,a=r.isAllRowsSelected,l=r.rowsById,u=r.nonGroupedRowsById,c=void 0===u?l:u,f=void 0!==i?i:!a,d=Object.assign({},e.selectedRowIds);return f?Object.keys(c).forEach((function(e){d[e]=!0})):Object.keys(c).forEach((function(e){delete d[e]})),o({},e,{selectedRowIds:d})}if(t.type===s.toggleRowSelected){var p=t.id,h=t.value,g=r.rowsById,v=r.selectSubRows,m=void 0===v||v,y=r.getSubRows,b=e.selectedRowIds[p],w=void 0!==h?h:!b;if(b===w)return e;var _=o({},e.selectedRowIds);return function e(t){var n=g[t];if(n&&(n.isGrouped||(w?_[t]=!0:delete _[t]),m&&y(n)))return y(n).forEach((function(t){return e(t.id)}))}(p),o({},e,{selectedRowIds:_})}if(t.type===s.toggleAllPageRowsSelected){var x=t.value,S=r.page,O=r.rowsById,C=r.selectSubRows,E=void 0===C||C,A=r.isAllPageRowsSelected,k=r.getSubRows,M=void 0!==x?x:!A,P=o({},e.selectedRowIds);return S.forEach((function(e){return function e(t){var n=O[t];if(n.isGrouped||(M?P[t]=!0:delete P[t]),E&&k(n))return k(n).forEach((function(t){return e(t.id)}))}(e.id)})),o({},e,{selectedRowIds:P})}return e}function wt(e){var n=e.data,r=e.rows,o=e.getHooks,i=e.plugins,a=e.rowsById,l=e.nonGroupedRowsById,u=void 0===l?a:l,c=e.autoResetSelectedRows,f=void 0===c||c,p=e.state.selectedRowIds,h=e.selectSubRows,v=void 0===h||h,y=e.dispatch,w=e.page,_=e.getSubRows;g(i,["useFilters","useGroupBy","useSortBy","useExpanded","usePagination"],"useRowSelect");var x=t.useMemo((function(){var e=[];return r.forEach((function(t){var n=v?function e(t,n,r){if(n[t.id])return!0;var o=r(t);if(o&&o.length){var i=!0,a=!1;return o.forEach((function(t){a&&!i||(e(t,n,r)?a=!0:i=!1)})),!!i||!!a&&null}return!1}(t,p,_):!!p[t.id];t.isSelected=!!n,t.isSomeSelected=null===n,n&&e.push(t)})),e}),[r,v,p,_]),S=Boolean(Object.keys(u).length&&Object.keys(p).length),O=S;S&&Object.keys(u).some((function(e){return!p[e]}))&&(S=!1),S||w&&w.length&&w.some((function(e){var t=e.id;return!p[t]}))&&(O=!1);var C=m(f);b((function(){C()&&y({type:s.resetSelectedRows})}),[y,n]);var E=t.useCallback((function(e){return y({type:s.toggleAllRowsSelected,value:e})}),[y]),A=t.useCallback((function(e){return y({type:s.toggleAllPageRowsSelected,value:e})}),[y]),k=t.useCallback((function(e,t){return y({type:s.toggleRowSelected,id:e,value:t})}),[y]),M=m(e),P=d(o().getToggleAllRowsSelectedProps,{instance:M()}),R=d(o().getToggleAllPageRowsSelectedProps,{instance:M()});Object.assign(e,{selectedFlatRows:x,isAllRowsSelected:S,isAllPageRowsSelected:O,toggleRowSelected:k,toggleAllRowsSelected:E,getToggleAllRowsSelectedProps:P,getToggleAllPageRowsSelectedProps:R,toggleAllPageRowsSelected:A})}function _t(e,t){var n=t.instance;e.toggleRowSelected=function(t){return n.toggleRowSelected(e.id,t)},e.getToggleRowSelectedProps=d(n.getHooks().getToggleRowSelectedProps,{instance:n,row:e})}var xt=function(e){return{}},St=function(e){return{}};s.setRowState="setRowState",s.setCellState="setCellState",s.resetRowState="resetRowState";var Ot=function(e){e.stateReducers.push(Ct),e.useInstance.push(Et),e.prepareRow.push(At)};function Ct(e,t,n,r){var i=r.initialRowStateAccessor,a=void 0===i?xt:i,l=r.initialCellStateAccessor,u=void 0===l?St:l,c=r.rowsById;if(t.type===s.init)return o({rowState:{}},e);if(t.type===s.resetRowState)return o({},e,{rowState:r.initialState.rowState||{}});if(t.type===s.setRowState){var f,d=t.rowId,p=t.value,h=void 0!==e.rowState[d]?e.rowState[d]:a(c[d]);return o({},e,{rowState:o({},e.rowState,(f={},f[d]=v(p,h),f))})}if(t.type===s.setCellState){var g,m,y,b,w,_=t.rowId,x=t.columnId,S=t.value,O=void 0!==e.rowState[_]?e.rowState[_]:a(c[_]),C=void 0!==(null==O||null==(g=O.cellState)?void 0:g[x])?O.cellState[x]:u(null==(m=c[_])||null==(y=m.cells)?void 0:y.find((function(e){return e.column.id===x})));return o({},e,{rowState:o({},e.rowState,(w={},w[_]=o({},O,{cellState:o({},O.cellState||{},(b={},b[x]=v(S,C),b))}),w))})}}function Et(e){var n=e.autoResetRowState,r=void 0===n||n,o=e.data,i=e.dispatch,a=t.useCallback((function(e,t){return i({type:s.setRowState,rowId:e,value:t})}),[i]),l=t.useCallback((function(e,t,n){return i({type:s.setCellState,rowId:e,columnId:t,value:n})}),[i]),u=m(r);b((function(){u()&&i({type:s.resetRowState})}),[o]),Object.assign(e,{setRowState:a,setCellState:l})}function At(e,t){var n=t.instance,r=n.initialRowStateAccessor,o=void 0===r?xt:r,i=n.initialCellStateAccessor,a=void 0===i?St:i,s=n.state.rowState;e&&(e.state=void 0!==s[e.id]?s[e.id]:o(e),e.setState=function(t){return n.setRowState(e.id,t)},e.cells.forEach((function(t){e.state.cellState||(e.state.cellState={}),t.state=void 0!==e.state.cellState[t.column.id]?e.state.cellState[t.column.id]:a(t),t.setState=function(r){return n.setCellState(e.id,t.column.id,r)}})))}Ot.pluginName="useRowState",s.resetColumnOrder="resetColumnOrder",s.setColumnOrder="setColumnOrder";var kt=function(e){e.stateReducers.push(Mt),e.visibleColumnsDeps.push((function(e,t){var n=t.instance;return[].concat(e,[n.state.columnOrder])})),e.visibleColumns.push(Pt),e.useInstance.push(Rt)};function Mt(e,t,n,r){return t.type===s.init?o({columnOrder:[]},e):t.type===s.resetColumnOrder?o({},e,{columnOrder:r.initialState.columnOrder||[]}):t.type===s.setColumnOrder?o({},e,{columnOrder:v(t.columnOrder,e.columnOrder)}):void 0}function Pt(e,t){var n=t.instance.state.columnOrder;if(!n||!n.length)return e;for(var r=[].concat(n),o=[].concat(e),i=[],a=function(){var e=r.shift(),t=o.findIndex((function(t){return t.id===e}));t>-1&&i.push(o.splice(t,1)[0])};o.length&&r.length;)a();return[].concat(i,o)}function Rt(e){var n=e.dispatch;e.setColumnOrder=t.useCallback((function(e){return n({type:s.setColumnOrder,columnOrder:e})}),[n])}kt.pluginName="useColumnOrder",c.canResize=!0,s.columnStartResizing="columnStartResizing",s.columnResizing="columnResizing",s.columnDoneResizing="columnDoneResizing",s.resetResize="resetResize";var Tt=function(e){e.getResizerProps=[It],e.getHeaderProps.push({style:{position:"relative"}}),e.stateReducers.push(Bt),e.useInstance.push(Dt),e.useInstanceBeforeDimensions.push(jt)},It=function(e,t){var n=t.instance,r=t.header,o=n.dispatch,i=function(e,t){var n=!1;if("touchstart"===e.type){if(e.touches&&e.touches.length>1)return;n=!0}var r,i,a=function(e){var t=[];return function e(n){n.columns&&n.columns.length&&n.columns.map(e),t.push(n)}(e),t}(t).map((function(e){return[e.id,e.totalWidth]})),l=n?Math.round(e.touches[0].clientX):e.clientX,u=function(){window.cancelAnimationFrame(r),r=null,o({type:s.columnDoneResizing})},c=function(){window.cancelAnimationFrame(r),r=null,o({type:s.columnResizing,clientX:i})},f=function(e){i=e,r||(r=window.requestAnimationFrame(c))},d={mouse:{moveEvent:"mousemove",moveHandler:function(e){return f(e.clientX)},upEvent:"mouseup",upHandler:function(e){document.removeEventListener("mousemove",d.mouse.moveHandler),document.removeEventListener("mouseup",d.mouse.upHandler),u()}},touch:{moveEvent:"touchmove",moveHandler:function(e){return e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(e.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(e){document.removeEventListener(d.touch.moveEvent,d.touch.moveHandler),document.removeEventListener(d.touch.upEvent,d.touch.moveHandler),u()}}},p=n?d.touch:d.mouse,h=!!function(){if("boolean"==typeof j)return j;var e=!1;try{var t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(t){e=!1}return j=e}()&&{passive:!1};document.addEventListener(p.moveEvent,p.moveHandler,h),document.addEventListener(p.upEvent,p.upHandler,h),o({type:s.columnStartResizing,columnId:t.id,columnWidth:t.totalWidth,headerIdWidths:a,clientX:l})};return[e,{onMouseDown:function(e){return e.persist()||i(e,r)},onTouchStart:function(e){return e.persist()||i(e,r)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function Bt(e,t){if(t.type===s.init)return o({columnResizing:{columnWidths:{}}},e);if(t.type===s.resetResize)return o({},e,{columnResizing:{columnWidths:{}}});if(t.type===s.columnStartResizing){var n=t.clientX,r=t.columnId,i=t.columnWidth,a=t.headerIdWidths;return o({},e,{columnResizing:o({},e.columnResizing,{startX:n,headerIdWidths:a,columnWidth:i,isResizingColumn:r})})}if(t.type===s.columnResizing){var l=t.clientX,u=e.columnResizing,c=u.startX,f=u.columnWidth,d=u.headerIdWidths,p=(l-c)/f,h={};return(void 0===d?[]:d).forEach((function(e){var t=e[0],n=e[1];h[t]=Math.max(n+n*p,0)})),o({},e,{columnResizing:o({},e.columnResizing,{columnWidths:o({},e.columnResizing.columnWidths,{},h)})})}return t.type===s.columnDoneResizing?o({},e,{columnResizing:o({},e.columnResizing,{startX:null,isResizingColumn:null})}):void 0}Tt.pluginName="useResizeColumns";var jt=function(e){var t=e.flatHeaders,n=e.disableResizing,r=e.getHooks,o=e.state.columnResizing,i=m(e);t.forEach((function(e){var t=k(!0!==e.disableResizing&&void 0,!0!==n&&void 0,!0);e.canResize=t,e.width=o.columnWidths[e.id]||e.originalWidth||e.width,e.isResizing=o.isResizingColumn===e.id,t&&(e.getResizerProps=d(r().getResizerProps,{instance:i(),header:e}))}))};function Dt(e){var n=e.plugins,r=e.dispatch,o=e.autoResetResize,i=void 0===o||o,a=e.columns;g(n,["useAbsoluteLayout"],"useResizeColumns");var l=m(i);b((function(){l()&&r({type:s.resetResize})}),[a]);var u=t.useCallback((function(){return r({type:s.resetResize})}),[r]);Object.assign(e,{resetResizing:u})}var Lt={position:"absolute",top:0},Zt=function(e){e.getTableBodyProps.push(Nt),e.getRowProps.push(Nt),e.getHeaderGroupProps.push(Nt),e.getFooterGroupProps.push(Nt),e.getHeaderProps.push((function(e,t){var n=t.column;return[e,{style:o({},Lt,{left:n.totalLeft+"px",width:n.totalWidth+"px"})}]})),e.getCellProps.push((function(e,t){var n=t.cell;return[e,{style:o({},Lt,{left:n.column.totalLeft+"px",width:n.column.totalWidth+"px"})}]})),e.getFooterProps.push((function(e,t){var n=t.column;return[e,{style:o({},Lt,{left:n.totalLeft+"px",width:n.totalWidth+"px"})}]}))};Zt.pluginName="useAbsoluteLayout";var Nt=function(e,t){return[e,{style:{position:"relative",width:t.instance.totalColumnsWidth+"px"}}]},Ft={display:"inline-block",boxSizing:"border-box"},Ht=function(e,t){return[e,{style:{display:"flex",width:t.instance.totalColumnsWidth+"px"}}]},Vt=function(e){e.getRowProps.push(Ht),e.getHeaderGroupProps.push(Ht),e.getFooterGroupProps.push(Ht),e.getHeaderProps.push((function(e,t){var n=t.column;return[e,{style:o({},Ft,{width:n.totalWidth+"px"})}]})),e.getCellProps.push((function(e,t){var n=t.cell;return[e,{style:o({},Ft,{width:n.column.totalWidth+"px"})}]})),e.getFooterProps.push((function(e,t){var n=t.column;return[e,{style:o({},Ft,{width:n.totalWidth+"px"})}]}))};function zt(e){e.getTableProps.push(Ut),e.getRowProps.push(Gt),e.getHeaderGroupProps.push(Gt),e.getFooterGroupProps.push(Gt),e.getHeaderProps.push(Wt),e.getCellProps.push(qt),e.getFooterProps.push($t)}Vt.pluginName="useBlockLayout",zt.pluginName="useFlexLayout";var Ut=function(e,t){return[e,{style:{minWidth:t.instance.totalColumnsMinWidth+"px"}}]},Gt=function(e,t){return[e,{style:{display:"flex",flex:"1 0 auto",minWidth:t.instance.totalColumnsMinWidth+"px"}}]},Wt=function(e,t){var n=t.column;return[e,{style:{boxSizing:"border-box",flex:n.totalFlexWidth?n.totalFlexWidth+" 0 auto":void 0,minWidth:n.totalMinWidth+"px",width:n.totalWidth+"px"}}]},qt=function(e,t){var n=t.cell;return[e,{style:{boxSizing:"border-box",flex:n.column.totalFlexWidth+" 0 auto",minWidth:n.column.totalMinWidth+"px",width:n.column.totalWidth+"px"}}]},$t=function(e,t){var n=t.column;return[e,{style:{boxSizing:"border-box",flex:n.totalFlexWidth?n.totalFlexWidth+" 0 auto":void 0,minWidth:n.totalMinWidth+"px",width:n.totalWidth+"px"}}]};function Yt(e){e.stateReducers.push(Qt),e.getTableProps.push(Xt),e.getHeaderProps.push(Kt),e.getRowProps.push(Jt)}s.columnStartResizing="columnStartResizing",s.columnResizing="columnResizing",s.columnDoneResizing="columnDoneResizing",s.resetResize="resetResize",Yt.pluginName="useGridLayout";var Xt=function(e,t){var n=t.instance;return[e,{style:{display:"grid",gridTemplateColumns:n.visibleColumns.map((function(e){var t;return n.state.gridLayout.columnWidths[e.id]?n.state.gridLayout.columnWidths[e.id]+"px":(null==(t=n.state.columnResizing)?void 0:t.isResizingColumn)?n.state.gridLayout.startWidths[e.id]+"px":"number"==typeof e.width?e.width+"px":e.width})).join(" ")}}]},Kt=function(e,t){var n=t.column;return[e,{id:"header-cell-"+n.id,style:{position:"sticky",gridColumn:"span "+n.totalVisibleHeaderCount}}]},Jt=function(e,t){var n=t.row;return n.isExpanded?[e,{style:{gridColumn:"1 / "+(n.cells.length+1)}}]:[e,{}]};function Qt(e,t,n,r){if(t.type===s.init)return o({gridLayout:{columnWidths:{}}},e);if(t.type===s.resetResize)return o({},e,{gridLayout:{columnWidths:{}}});if(t.type===s.columnStartResizing){var i=t.columnId,a=t.headerIdWidths,l=en(i);if(void 0!==l){var u=r.visibleColumns.reduce((function(e,t){var n;return o({},e,((n={})[t.id]=en(t.id),n))}),{}),c=r.visibleColumns.reduce((function(e,t){var n;return o({},e,((n={})[t.id]=t.minWidth,n))}),{}),f=r.visibleColumns.reduce((function(e,t){var n;return o({},e,((n={})[t.id]=t.maxWidth,n))}),{}),d=a.map((function(e){var t=e[0];return[t,en(t)]}));return o({},e,{gridLayout:o({},e.gridLayout,{startWidths:u,minWidths:c,maxWidths:f,headerIdGridWidths:d,columnWidth:l})})}return e}if(t.type===s.columnResizing){var p=t.clientX,h=e.columnResizing.startX,g=e.gridLayout,v=g.columnWidth,m=g.minWidths,y=g.maxWidths,b=g.headerIdGridWidths,w=(p-h)/v,_={};return(void 0===b?[]:b).forEach((function(e){var t=e[0],n=e[1];_[t]=Math.min(Math.max(m[t],n+n*w),y[t])})),o({},e,{gridLayout:o({},e.gridLayout,{columnWidths:o({},e.gridLayout.columnWidths,{},_)})})}return t.type===s.columnDoneResizing?o({},e,{gridLayout:o({},e.gridLayout,{startWidths:{},minWidths:{},maxWidths:{}})}):void 0}function en(e){var t,n=null==(t=document.getElementById("header-cell-"+e))?void 0:t.offsetWidth;if(void 0!==n)return n}e._UNSTABLE_usePivotColumns=nt,e.actions=s,e.defaultColumn=c,e.defaultGroupByFn=Ve,e.defaultOrderByFn=Je,e.defaultRenderer=l,e.emptyRenderer=u,e.ensurePluginOrder=g,e.flexRender=_,e.functionalUpdate=v,e.loopHooks=h,e.makePropGetter=d,e.makeRenderer=w,e.reduceHooks=p,e.safeUseLayoutEffect=y,e.useAbsoluteLayout=Zt,e.useAsyncDebounce=function(e,n){void 0===n&&(n=0);var o=t.useRef({}),i=m(e),a=m(n);return t.useCallback(function(){var e=r(regeneratorRuntime.mark((function e(){var t,n,s,l=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(t=l.length,n=new Array(t),s=0;s<t;s++)n[s]=l[s];return o.current.promise||(o.current.promise=new Promise((function(e,t){o.current.resolve=e,o.current.reject=t}))),o.current.timeout&&clearTimeout(o.current.timeout),o.current.timeout=setTimeout(r(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return delete o.current.timeout,e.prev=1,e.t0=o.current,e.next=5,i().apply(void 0,n);case 5:e.t1=e.sent,e.t0.resolve.call(e.t0,e.t1),e.next=12;break;case 9:e.prev=9,e.t2=e.catch(1),o.current.reject(e.t2);case 12:return e.prev=12,delete o.current.promise,e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[1,9,12,15]])}))),a()),e.abrupt("return",o.current.promise);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),[i,a])},e.useBlockLayout=Vt,e.useColumnOrder=kt,e.useExpanded=le,e.useFilters=Ce,e.useFlexLayout=zt,e.useGetLatest=m,e.useGlobalFilter=ke,e.useGridLayout=Yt,e.useGroupBy=je,e.useMountedLayoutEffect=b,e.usePagination=Qe,e.useResizeColumns=Tt,e.useRowSelect=gt,e.useRowState=Ot,e.useSortBy=$e,e.useTable=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];e=ie(e),r=[q].concat(r);var a=m(t.useRef({}).current);Object.assign(a(),o({},e,{plugins:r,hooks:W()})),r.filter(Boolean).forEach((function(e){e(a().hooks)}));var l=m(a().hooks);a().getHooks=l,delete a().hooks,Object.assign(a(),p(l().useOptions,ie(e)));var u=a(),c=u.data,f=u.columns,g=u.initialState,v=u.defaultColumn,y=u.getSubRows,b=u.getRowId,_=u.stateReducer,A=u.useControlledState,k=m(_),M=t.useCallback((function(e,t){if(!t.type)throw console.info({action:t}),new Error("Unknown Action \ud83d\udc46");return[].concat(l().stateReducers,Array.isArray(k())?k():[k()]).reduce((function(n,r){return r(n,t,e,a())||n}),e)}),[l,k,a]),P=t.useReducer(M,void 0,(function(){return M(g,{type:s.init})})),R=P[0],T=P[1],I=p([].concat(l().useControlledState,[A]),R,{instance:a()});Object.assign(a(),{state:I,dispatch:T});var B=t.useMemo((function(){return x(p(l().columns,f,{instance:a()}))}),[l,a,f].concat(p(l().columnsDeps,[],{instance:a()})));a().columns=B;var j=t.useMemo((function(){return p(l().allColumns,S(B),{instance:a()}).map(O)}),[B,l,a].concat(p(l().allColumnsDeps,[],{instance:a()})));a().allColumns=j;var D=t.useMemo((function(){for(var e=[],t=[],n={},r=[].concat(j);r.length;){var o=r.shift();se({data:c,rows:e,flatRows:t,rowsById:n,column:o,getRowId:b,getSubRows:y,accessValueHooks:l().accessValue,getInstance:a})}return[e,t,n]}),[j,c,b,y,l,a]),L=D[0],Z=D[1],N=D[2];Object.assign(a(),{rows:L,initialRows:[].concat(L),flatRows:Z,rowsById:N}),h(l().useInstanceAfterData,a());var F=t.useMemo((function(){return p(l().visibleColumns,j,{instance:a()}).map((function(e){return C(e,v)}))}),[l,j,a,v].concat(p(l().visibleColumnsDeps,[],{instance:a()})));j=t.useMemo((function(){var e=[].concat(F);return j.forEach((function(t){e.find((function(e){return e.id===t.id}))||e.push(t)})),e}),[j,F]),a().allColumns=j;var H=t.useMemo((function(){return p(l().headerGroups,E(F,v),a())}),[l,F,v,a].concat(p(l().headerGroupsDeps,[],{instance:a()})));a().headerGroups=H;var V=t.useMemo((function(){return H.length?H[0].headers:[]}),[H]);a().headers=V,a().flatHeaders=H.reduce((function(e,t){return[].concat(e,t.headers)}),[]),h(l().useInstanceBeforeDimensions,a());var z=F.filter((function(e){return e.isVisible})).map((function(e){return e.id})).sort().join("_");F=t.useMemo((function(){return F.filter((function(e){return e.isVisible}))}),[F,z]),a().visibleColumns=F;var U=ae(V),G=U[0],$=U[1],Y=U[2];return a().totalColumnsMinWidth=G,a().totalColumnsWidth=$,a().totalColumnsMaxWidth=Y,h(l().useInstance,a()),[].concat(a().flatHeaders,a().allColumns).forEach((function(e){e.render=w(a(),e),e.getHeaderProps=d(l().getHeaderProps,{instance:a(),column:e}),e.getFooterProps=d(l().getFooterProps,{instance:a(),column:e})})),a().headerGroups=t.useMemo((function(){return H.filter((function(e,t){return e.headers=e.headers.filter((function(e){return e.headers?function e(t){return t.filter((function(t){return t.headers?e(t.headers):t.isVisible})).length}(e.headers):e.isVisible})),!!e.headers.length&&(e.getHeaderGroupProps=d(l().getHeaderGroupProps,{instance:a(),headerGroup:e,index:t}),e.getFooterGroupProps=d(l().getFooterGroupProps,{instance:a(),headerGroup:e,index:t}),!0)}))}),[H,a,l]),a().footerGroups=[].concat(a().headerGroups).reverse(),a().prepareRow=t.useCallback((function(e){e.getRowProps=d(l().getRowProps,{instance:a(),row:e}),e.allCells=j.map((function(t){var n=e.values[t.id],r={column:t,row:e,value:n};return r.getCellProps=d(l().getCellProps,{instance:a(),cell:r}),r.render=w(a(),t,{row:e,cell:r,value:n}),r})),e.cells=F.map((function(t){return e.allCells.find((function(e){return e.column.id===t.id}))})),h(l().prepareRow,e,{instance:a()})}),[l,a,j,F]),a().getTableProps=d(l().getTableProps,{instance:a()}),a().getTableBodyProps=d(l().getTableBodyProps,{instance:a()}),h(l().useFinalInstance,a()),a()},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(67294))},79521:function(e,t,n){e.exports=n(40217)},30644:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(67294);function o(){var e=(0,r.useRef)(!0);return e.current?(e.current=!1,!0):e.current}},48286:function(e,t,n){"use strict";var r=n(67294),o=n(30644);t.Z=function(e,t){var n=(0,o.Z)();(0,r.useEffect)((function(){if(!n)return e()}),t)}},88387:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNavigator=t.isBrowser=t.off=t.on=t.noop=void 0;t.noop=function(){},t.on=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)},t.off=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)},t.isBrowser="undefined"!==typeof window,t.isNavigator="undefined"!==typeof navigator},21337:function(e,t,n){"use strict";var r=n(5272),o=n(67294),i=r.__importDefault(n(82370));t.Z=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=[]);var r=i.default(e,t),a=r[0],s=r[1],l=r[2];return o.useEffect(l,n),[a,s]}},91784:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useFirstMountState=void 0;var r=n(67294);t.useFirstMountState=function(){var e=r.useRef(!0);return e.current?(e.current=!1,!0):e.current}},27539:function(e,t,n){"use strict";var r=n(67294),o=n(88387);t.Z=function(e,t,n){if(!o.isBrowser)return[t,o.noop,o.noop];if(!e)throw new Error("useLocalStorage key may not be falsy");var i=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,a=r.useRef((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,o=localStorage.getItem(e);return null!==o?i(o):(t&&localStorage.setItem(e,r(t)),t)}catch(s){return t}})),s=r.useState((function(){return a.current(e)})),l=s[0],u=s[1];r.useLayoutEffect((function(){return u(a.current(e))}),[e]);var c=r.useCallback((function(t){try{var r="function"===typeof t?t(l):t;if("undefined"===typeof r)return;var o=void 0;o=n?n.raw?"string"===typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,o),u(i(o))}catch(s){}}),[e,u]),f=r.useCallback((function(){try{localStorage.removeItem(e),u(void 0)}catch(s){}}),[e,u]);return[l,c,f]}},68434:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e){var t=r.useRef();return r.useEffect((function(){t.current=e})),t.current}},78382:function(e,t,n){"use strict";var r=n(67294),o=n(91784),i=function(e,t){return e===t};t.Z=function(e,t){void 0===t&&(t=i);var n=r.useRef(),a=r.useRef(e);return o.useFirstMountState()||t(a.current,e)||(n.current=a.current,a.current=e),n.current}},82370:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(67294);t.default=function(e,t){void 0===t&&(t=0);var n=r.useRef(!1),o=r.useRef(),i=r.useRef(e),a=r.useCallback((function(){return n.current}),[]),s=r.useCallback((function(){n.current=!1,o.current&&clearTimeout(o.current),o.current=setTimeout((function(){n.current=!0,i.current()}),t)}),[t]),l=r.useCallback((function(){n.current=null,o.current&&clearTimeout(o.current)}),[]);return r.useEffect((function(){i.current=e}),[e]),r.useEffect((function(){return s(),l}),[t]),[a,l,s]}},73809:function(e,t,n){"use strict";var r=n(67294),o=function(e,t){return"boolean"===typeof t?t:!e};t.Z=function(e){return r.useReducer(o,e)}},21794:function(e,t,n){"use strict";var r=n(67294),o=n(91784);t.Z=function(e,t){var n=o.useFirstMountState();r.useEffect((function(){if(!n)return e()}),t)}},5272:function(e,t,n){"use strict";n.r(t),n.d(t,{__assign:function(){return i},__asyncDelegator:function(){return _},__asyncGenerator:function(){return w},__asyncValues:function(){return x},__await:function(){return b},__awaiter:function(){return c},__classPrivateFieldGet:function(){return A},__classPrivateFieldIn:function(){return M},__classPrivateFieldSet:function(){return k},__createBinding:function(){return d},__decorate:function(){return s},__exportStar:function(){return p},__extends:function(){return o},__generator:function(){return f},__importDefault:function(){return E},__importStar:function(){return C},__makeTemplateObject:function(){return S},__metadata:function(){return u},__param:function(){return l},__read:function(){return g},__rest:function(){return a},__spread:function(){return v},__spreadArray:function(){return y},__spreadArrays:function(){return m},__values:function(){return h}});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)};function a(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function s(e,t,n,r){var o,i=arguments.length,a=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function l(e,t){return function(n,r){t(n,r,e)}}function u(e,t){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function s(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))}function f(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(s){i=[6,s],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}var d=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function p(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||d(t,e,n)}function h(e){var t="function"===typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"===typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var n="function"===typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function v(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}function m(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var i=arguments[t],a=0,s=i.length;a<s;a++,o++)r[o]=i[a];return r}function y(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function b(e){return this instanceof b?(this.v=e,this):new b(e)}function w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),i=[];return r={},a("next"),a("throw"),a("return"),r[Symbol.asyncIterator]=function(){return this},r;function a(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){i.push([e,t,n,r])>1||s(e,t)}))})}function s(e,t){try{(n=o[e](t)).value instanceof b?Promise.resolve(n.value.v).then(l,u):c(i[0][2],n)}catch(r){c(i[0][3],r)}var n}function l(e){s("next",e)}function u(e){s("throw",e)}function c(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function _(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:b(e[r](t)),done:"return"===r}:o?o(t):t}:o}}function x(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=h(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var O=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function C(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&d(t,e,n);return O(t,e),t}function E(e){return e&&e.__esModule?e:{default:e}}function A(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function k(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function M(e,t){if(null===t||"object"!==typeof t&&"function"!==typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"===typeof e?t===e:e.has(t)}},72408:function(e,t){"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,v={};function m(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||h}function y(){}function b(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||h}m.prototype.isReactComponent={},m.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},m.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=m.prototype;var w=b.prototype=new y;w.constructor=b,g(w,m.prototype),w.isPureReactComponent=!0;var _=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},O={key:!0,ref:!0,__self:!0,__source:!0};function C(e,t,r){var o,i={},a=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)x.call(t,o)&&!O.hasOwnProperty(o)&&(i[o]=t[o]);var l=arguments.length-2;if(1===l)i.children=r;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];i.children=u}if(e&&e.defaultProps)for(o in l=e.defaultProps)void 0===i[o]&&(i[o]=l[o]);return{$$typeof:n,type:e,key:a,ref:s,props:i,_owner:S.current}}function E(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function k(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function M(e,t,o,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return a=a(l=e),e=""===i?"."+k(l,0):i,_(a)?(o="",null!=e&&(o=e.replace(A,"$&/")+"/"),M(a,t,o,"",(function(e){return e}))):null!=a&&(E(a)&&(a=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,o+(!a.key||l&&l.key===a.key?"":(""+a.key).replace(A,"$&/")+"/")+e)),t.push(a)),1;if(l=0,i=""===i?".":i+":",_(e))for(var u=0;u<e.length;u++){var c=i+k(s=e[u],u);l+=M(s,t,o,c,a)}else if(c=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"===typeof c)for(e=c.call(e),u=0;!(s=e.next()).done;)l+=M(s=s.value,t,o,c=i+k(s,u++),a);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function P(e,t,n){if(null==e)return e;var r=[],o=0;return M(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function R(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var T={current:null},I={transition:null},B={ReactCurrentDispatcher:T,ReactCurrentBatchConfig:I,ReactCurrentOwner:S};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=m,t.Fragment=o,t.Profiler=a,t.PureComponent=b,t.StrictMode=i,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=g({},e.props),i=e.key,a=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,s=S.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(u in t)x.call(t,u)&&!O.hasOwnProperty(u)&&(o[u]=void 0===t[u]&&void 0!==l?l[u]:t[u])}var u=arguments.length-2;if(1===u)o.children=r;else if(1<u){l=Array(u);for(var c=0;c<u;c++)l[c]=arguments[c+2];o.children=l}return{$$typeof:n,type:e.type,key:i,ref:a,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=C,t.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:R}},t.memo=function(e,t){return{$$typeof:f,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=I.transition;I.transition={};try{e()}finally{I.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return T.current.useCallback(e,t)},t.useContext=function(e){return T.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return T.current.useDeferredValue(e)},t.useEffect=function(e,t){return T.current.useEffect(e,t)},t.useId=function(){return T.current.useId()},t.useImperativeHandle=function(e,t,n){return T.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return T.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return T.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return T.current.useMemo(e,t)},t.useReducer=function(e,t,n){return T.current.useReducer(e,t,n)},t.useRef=function(e){return T.current.useRef(e)},t.useState=function(e){return T.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return T.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return T.current.useTransition()},t.version="18.2.0"},67294:function(e,t,n){"use strict";e.exports=n(72408)},4480:function(e,t,n){"use strict";n.d(t,{$P:function(){return vs},C:function(){return ws},CG:function(){return hs},FV:function(){return ms},Wh:function(){return cs},Zl:function(){return ys},_8:function(){return _s},cn:function(){return fs},nZ:function(){return ds},rb:function(){return bs},sJ:function(){return gs},xu:function(){return ps}});var r=n(67294),o=n(73935);var i=function(e){const t=new Error(e);if(void 0===t.stack)try{throw t}catch(n){}return t};var a=function(e){return!!e&&"function"===typeof e.then};var s=function(e,t){if(null!=e)return e;throw i(null!==t&&void 0!==t?t:"Got unexpected null or undefined")};function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class u{getValue(){throw i("BaseLoadable")}toPromise(){throw i("BaseLoadable")}valueMaybe(){throw i("BaseLoadable")}valueOrThrow(){throw i(`Loadable expected value, but in "${this.state}" state`)}promiseMaybe(){throw i("BaseLoadable")}promiseOrThrow(){throw i(`Loadable expected promise, but in "${this.state}" state`)}errorMaybe(){throw i("BaseLoadable")}errorOrThrow(){throw i(`Loadable expected error, but in "${this.state}" state`)}is(e){return e.state===this.state&&e.contents===this.contents}map(e){throw i("BaseLoadable")}}class c extends u{constructor(e){super(),l(this,"state","hasValue"),l(this,"contents",void 0),this.contents=e}getValue(){return this.contents}toPromise(){return Promise.resolve(this.contents)}valueMaybe(){return this.contents}valueOrThrow(){return this.contents}promiseMaybe(){}errorMaybe(){}map(e){try{const t=e(this.contents);return a(t)?g(t):y(t)?t:p(t)}catch(t){return a(t)?g(t.next((()=>this.map(e)))):h(t)}}}class f extends u{constructor(e){super(),l(this,"state","hasError"),l(this,"contents",void 0),this.contents=e}getValue(){throw this.contents}toPromise(){return Promise.reject(this.contents)}valueMaybe(){}promiseMaybe(){}errorMaybe(){return this.contents}errorOrThrow(){return this.contents}map(e){return this}}class d extends u{constructor(e){super(),l(this,"state","loading"),l(this,"contents",void 0),this.contents=e}getValue(){throw this.contents}toPromise(){return this.contents}valueMaybe(){}promiseMaybe(){return this.contents}promiseOrThrow(){return this.contents}errorMaybe(){}map(e){return g(this.contents.then((t=>{const n=e(t);if(y(n)){const e=n;switch(e.state){case"hasValue":case"loading":return e.contents;case"hasError":throw e.contents}}return n})).catch((t=>{if(a(t))return t.then((()=>this.map(e).contents));throw t})))}}function p(e){return Object.freeze(new c(e))}function h(e){return Object.freeze(new f(e))}function g(e){return Object.freeze(new d(e))}function v(){return Object.freeze(new d(new Promise((()=>{}))))}function m(e){const t=function(e){return e.every((e=>"hasValue"===e.state))?p(e.map((e=>e.contents))):e.some((e=>"hasError"===e.state))?h(s(e.find((e=>"hasError"===e.state)),"Invalid loadable passed to loadableAll").contents):g(Promise.all(e.map((e=>e.contents))))}((Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((t=>e[t]))).map((e=>y(e)?e:a(e)?g(e):p(e))));return Array.isArray(e)?t:t.map((t=>Object.getOwnPropertyNames(e).reduce(((e,n,r)=>({...e,[n]:t[r]})),{})))}function y(e){return e instanceof u}const b={of:e=>a(e)?g(e):y(e)?e:p(e),error:e=>h(e),loading:()=>v(),all:m,isLoadable:y};var w={loadableWithValue:p,loadableWithError:h,loadableWithPromise:g,loadableLoading:v,loadableAll:m,isLoadable:y,RecoilLoadable:b},_=w.loadableWithValue,x=w.loadableWithError,S=w.loadableWithPromise,O=w.loadableLoading,C=w.loadableAll,E=w.isLoadable,A=w.RecoilLoadable,k=Object.freeze({__proto__:null,loadableWithValue:_,loadableWithError:x,loadableWithPromise:S,loadableLoading:O,loadableAll:C,isLoadable:E,RecoilLoadable:A});const M={RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED:!0,RECOIL_GKS_ENABLED:new Set(["recoil_hamt_2020","recoil_sync_external_store","recoil_suppress_rerender_in_callback","recoil_memory_managament_2020"])};!function(){var e;"undefined"!==typeof process&&null!=(null===(e=process)||void 0===e?void 0:e.env)&&(function(e,t){var n,r;const o=null===(n=process.env[e])||void 0===n||null===(r=n.toLowerCase())||void 0===r?void 0:r.trim();if(null==o||""===o)return;if(!["true","false"].includes(o))throw i(`process.env.${e} value must be 'true', 'false', or empty: ${o}`);t("true"===o)}("RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED",(e=>{M.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=e})),function(e,t){var n;const r=null===(n=process.env[e])||void 0===n?void 0:n.trim();null!=r&&""!==r&&t(r.split(/\s*,\s*|\s+/))}("RECOIL_GKS_ENABLED",(e=>{e.forEach((e=>{M.RECOIL_GKS_ENABLED.add(e)}))})))}();var P=M;function R(e){return P.RECOIL_GKS_ENABLED.has(e)}R.setPass=e=>{P.RECOIL_GKS_ENABLED.add(e)},R.setFail=e=>{P.RECOIL_GKS_ENABLED.delete(e)},R.clear=()=>{P.RECOIL_GKS_ENABLED.clear()};var T=R;var I,B,j,D=function(e,t,{error:n}={}){return null};const L=null!==(I=r.createMutableSource)&&void 0!==I?I:r.unstable_createMutableSource,Z=null!==(B=r.useMutableSource)&&void 0!==B?B:r.unstable_useMutableSource,N=null!==(j=r.useSyncExternalStore)&&void 0!==j?j:r.unstable_useSyncExternalStore;let F=!1;var H={createMutableSource:L,useMutableSource:Z,useSyncExternalStore:N,currentRendererSupportsUseSyncExternalStore:function(){var e;const{ReactCurrentDispatcher:t,ReactCurrentOwner:n}=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,o=null!=(null!==(e=null===t||void 0===t?void 0:t.current)&&void 0!==e?e:n.currentDispatcher).useSyncExternalStore;return!N||o||F||(F=!0,D("A React renderer without React 18+ API support is being used with React 18+.")),o},reactMode:function(){return T("recoil_transition_support")?{mode:"TRANSITION_SUPPORT",early:!0,concurrent:!0}:T("recoil_sync_external_store")&&null!=N?{mode:"SYNC_EXTERNAL_STORE",early:!0,concurrent:!1}:T("recoil_mutable_source")&&null!=Z&&"undefined"!==typeof window&&!window.$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE?T("recoil_suppress_rerender_in_callback")?{mode:"MUTABLE_SOURCE",early:!0,concurrent:!0}:{mode:"MUTABLE_SOURCE",early:!1,concurrent:!1}:T("recoil_suppress_rerender_in_callback")?{mode:"LEGACY",early:!0,concurrent:!1}:{mode:"LEGACY",early:!1,concurrent:!1}},isFastRefreshEnabled:function(){return!1}};class V{constructor(e){l(this,"key",void 0),this.key=e}toJSON(){return{key:this.key}}}class z extends V{}class U extends V{}var G={AbstractRecoilValue:V,RecoilState:z,RecoilValueReadOnly:U,isRecoilValue:function(e){return e instanceof z||e instanceof U}},W=G.AbstractRecoilValue,q=G.RecoilState,$=G.RecoilValueReadOnly,Y=G.isRecoilValue,X=Object.freeze({__proto__:null,AbstractRecoilValue:W,RecoilState:q,RecoilValueReadOnly:$,isRecoilValue:Y});var K=function(e,...t){0};var J=function(e,t){return function*(){let n=0;for(const r of e)yield t(r,n++)}()};const{isFastRefreshEnabled:Q}=H;class ee{}const te=new ee,ne=new Map,re=new Map;class oe extends Error{}const ie=new Map;function ae(e){return ie.get(e)}var se={nodes:ne,recoilValues:re,registerNode:function(e){P.RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED&&function(e){if(ne.has(e)){const t=`Duplicate atom key "${e}". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.`;console.warn(t)}}(e.key),ne.set(e.key,e);const t=null==e.set?new X.RecoilValueReadOnly(e.key):new X.RecoilState(e.key);return re.set(e.key,t),t},getNode:function(e){const t=ne.get(e);if(null==t)throw new oe(`Missing definition for RecoilValue: "${e}""`);return t},getNodeMaybe:function(e){return ne.get(e)},deleteNodeConfigIfPossible:function(e){var t;if(!T("recoil_memory_managament_2020"))return;const n=ne.get(e);var r;null!==n&&void 0!==n&&null!==(t=n.shouldDeleteConfigOnRelease)&&void 0!==t&&t.call(n)&&(ne.delete(e),null===(r=ae(e))||void 0===r||r(),ie.delete(e))},setConfigDeletionHandler:function(e,t){T("recoil_memory_managament_2020")&&(void 0===t?ie.delete(e):ie.set(e,t))},getConfigDeletionHandler:ae,recoilValuesForKeys:function(e){return J(e,(e=>s(re.get(e))))},NodeMissingError:oe,DefaultValue:ee,DEFAULT_VALUE:te};var le={enqueueExecution:function(e,t){t()}};var ue,ce,fe=(ue=function(e){var t="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n={},r=Math.pow(2,5),o=r-1,i=r/2,a=r/4,s={},l=function(e){return function(){return e}},u=n.hash=function(e){var n="undefined"===typeof e?"undefined":t(e);if("number"===n)return e;"string"!==n&&(e+="");for(var r=0,o=0,i=e.length;o<i;++o)r=(r<<5)-r+e.charCodeAt(o)|0;return r},c=function(e,t){return t>>>e&o},f=function(e){return 1<<e},d=function(e,t){return n=e&t-1,n=(n=(858993459&(n-=n>>1&1431655765))+(n>>2&858993459))+(n>>4)&252645135,127&(n+=n>>8)+(n>>16);var n},p=function(e,t,n,r){var o=r;if(!e){var i=r.length;o=new Array(i);for(var a=0;a<i;++a)o[a]=r[a]}return o[t]=n,o},h=function(e,t,n){var r=n.length-1,o=0,i=0,a=n;if(e)o=i=t;else for(a=new Array(r);o<t;)a[i++]=n[o++];for(++o;o<=r;)a[i++]=n[o++];return e&&(a.length=r),a},g={__hamt_isEmpty:!0},v=function(e){return e===g||e&&e.__hamt_isEmpty},m=function(e,t,n,r){return{type:1,edit:e,hash:t,key:n,value:r,_modify:S}},y=function(e,t,n){return{type:2,edit:e,hash:t,children:n,_modify:O}},b=function(e,t,n){return{type:3,edit:e,mask:t,children:n,_modify:C}},w=function(e,t,n){return{type:4,edit:e,size:t,children:n,_modify:E}},_=function e(t,n,r,o,i,a){if(r===i)return y(t,r,[a,o]);var s=c(n,r),l=c(n,i);return b(t,f(s)|f(l),s===l?[e(t,n+5,r,o,i,a)]:s<l?[o,a]:[a,o])},x=function(e,t){return e===t.edit},S=function(e,t,n,r,o,i,a){if(t(i,this.key)){var l=r(this.value);return l===this.value?this:l===s?(--a.value,g):x(e,this)?(this.value=l,this):m(e,o,i,l)}var u=r();return u===s?this:(++a.value,_(e,n,this.hash,this,o,m(e,o,i,u)))},O=function(e,t,n,r,o,i,a){if(o===this.hash){var l=function(e,t,n,r,o,i,a,l){for(var u=o.length,c=0;c<u;++c){var f=o[c];if(n(a,f.key)){var d=f.value,g=i(d);return g===d?o:g===s?(--l.value,h(e,c,o)):p(e,c,m(t,r,a,g),o)}}var v=i();return v===s?o:(++l.value,p(e,u,m(t,r,a,v),o))}(x(e,this),e,t,this.hash,this.children,r,i,a);return l===this.children?this:l.length>1?y(e,this.hash,l):l[0]}var u=r();return u===s?this:(++a.value,_(e,n,this.hash,this,o,m(e,o,i,u)))},C=function(e,t,n,r,o,a,s){var l=this.mask,u=this.children,m=c(n,o),y=f(m),_=d(l,y),S=l&y,O=S?u[_]:g,C=O._modify(e,t,n+5,r,o,a,s);if(O===C)return this;var E=x(e,this),A=l,k=void 0;if(S&&v(C)){if(!(A&=~y))return g;if(u.length<=2&&function(e){return e===g||1===e.type||2===e.type}(u[1^_]))return u[1^_];k=h(E,_,u)}else if(S||v(C))k=p(E,_,C,u);else{if(u.length>=i)return function(e,t,n,r,o){for(var i=[],a=r,s=0,l=0;a;++l)1&a&&(i[l]=o[s++]),a>>>=1;return i[t]=n,w(e,s+1,i)}(e,m,C,l,u);A|=y,k=function(e,t,n,r){var o=r.length;if(e){for(var i=o;i>=t;)r[i--]=r[i];return r[t]=n,r}for(var a=0,s=0,l=new Array(o+1);a<t;)l[s++]=r[a++];for(l[t]=n;a<o;)l[++s]=r[a++];return l}(E,_,C,u)}return E?(this.mask=A,this.children=k,this):b(e,A,k)},E=function(e,t,n,r,o,i,s){var l=this.size,u=this.children,f=c(n,o),d=u[f],h=(d||g)._modify(e,t,n+5,r,o,i,s);if(d===h)return this;var m=x(e,this),y=void 0;if(v(d)&&!v(h))++l,y=p(m,f,h,u);else if(!v(d)&&v(h)){if(--l<=a)return function(e,t,n,r){for(var o=new Array(t-1),i=0,a=0,s=0,l=r.length;s<l;++s)if(s!==n){var u=r[s];u&&!v(u)&&(o[i++]=u,a|=1<<s)}return b(e,a,o)}(e,l,f,u);y=p(m,f,g,u)}else y=p(m,f,h,u);return m?(this.size=l,this.children=y,this):w(e,l,y)};function A(e,t,n,r,o){this._editable=e,this._edit=t,this._config=n,this._root=r,this._size=o}g._modify=function(e,t,n,r,o,i,a){var l=r();return l===s?g:(++a.value,m(e,o,i,l))},A.prototype.setTree=function(e,t){return this._editable?(this._root=e,this._size=t,this):e===this._root?this:new A(this._editable,this._edit,this._config,e,t)};var k=n.tryGetHash=function(e,t,n,r){for(var o=r._root,i=0,a=r._config.keyEq;;)switch(o.type){case 1:return a(n,o.key)?o.value:e;case 2:if(t===o.hash)for(var s=o.children,l=0,u=s.length;l<u;++l){var p=s[l];if(a(n,p.key))return p.value}return e;case 3:var h=c(i,t),g=f(h);if(o.mask&g){o=o.children[d(o.mask,g)],i+=5;break}return e;case 4:if(o=o.children[c(i,t)]){i+=5;break}return e;default:return e}};A.prototype.tryGetHash=function(e,t,n){return k(e,t,n,this)};var M=n.tryGet=function(e,t,n){return k(e,n._config.hash(t),t,n)};A.prototype.tryGet=function(e,t){return M(e,t,this)};var P=n.getHash=function(e,t,n){return k(void 0,e,t,n)};A.prototype.getHash=function(e,t){return P(e,t,this)},n.get=function(e,t){return k(void 0,t._config.hash(e),e,t)},A.prototype.get=function(e,t){return M(t,e,this)};var R=n.has=function(e,t,n){return k(s,e,t,n)!==s};A.prototype.hasHash=function(e,t){return R(e,t,this)};var T=n.has=function(e,t){return R(t._config.hash(e),e,t)};A.prototype.has=function(e){return T(e,this)};var I=function(e,t){return e===t};n.make=function(e){return new A(0,0,{keyEq:e&&e.keyEq||I,hash:e&&e.hash||u},g,0)},n.empty=n.make();var B=n.isEmpty=function(e){return e&&!!v(e._root)};A.prototype.isEmpty=function(){return B(this)};var j=n.modifyHash=function(e,t,n,r){var o={value:r._size},i=r._root._modify(r._editable?r._edit:NaN,r._config.keyEq,0,e,t,n,o);return r.setTree(i,o.value)};A.prototype.modifyHash=function(e,t,n){return j(n,e,t,this)};var D=n.modify=function(e,t,n){return j(e,n._config.hash(t),t,n)};A.prototype.modify=function(e,t){return D(t,e,this)};var L=n.setHash=function(e,t,n,r){return j(l(n),e,t,r)};A.prototype.setHash=function(e,t,n){return L(e,t,n,this)};var Z=n.set=function(e,t,n){return L(n._config.hash(e),e,t,n)};A.prototype.set=function(e,t){return Z(e,t,this)};var N=l(s),F=n.removeHash=function(e,t,n){return j(N,e,t,n)};A.prototype.removeHash=A.prototype.deleteHash=function(e,t){return F(e,t,this)};var H=n.remove=function(e,t){return F(t._config.hash(e),e,t)};A.prototype.remove=A.prototype.delete=function(e){return H(e,this)};var V=n.beginMutation=function(e){return new A(e._editable+1,e._edit+1,e._config,e._root,e._size)};A.prototype.beginMutation=function(){return V(this)};var z=n.endMutation=function(e){return e._editable=e._editable&&e._editable-1,e};A.prototype.endMutation=function(){return z(this)};var U=n.mutate=function(e,t){var n=V(t);return e(n),z(n)};A.prototype.mutate=function(e){return U(e,this)};var G=function(e){return e&&W(e[0],e[1],e[2],e[3],e[4])},W=function(e,t,n,r,o){for(;n<e;){var i=t[n++];if(i&&!v(i))return q(i,r,[e,t,n,r,o])}return G(o)},q=function(e,t,n){switch(e.type){case 1:return{value:t(e),rest:n};case 2:case 4:case 3:var r=e.children;return W(r.length,r,0,t,n);default:return G(n)}},$={done:!0};function Y(e){this.v=e}Y.prototype.next=function(){if(!this.v)return $;var e=this.v;return this.v=G(e.rest),e},Y.prototype[Symbol.iterator]=function(){return this};var X=function(e,t){return new Y(q(e._root,t))},K=function(e){return[e.key,e.value]},J=n.entries=function(e){return X(e,K)};A.prototype.entries=A.prototype[Symbol.iterator]=function(){return J(this)};var Q=function(e){return e.key},ee=n.keys=function(e){return X(e,Q)};A.prototype.keys=function(){return ee(this)};var te=function(e){return e.value},ne=n.values=A.prototype.values=function(e){return X(e,te)};A.prototype.values=function(){return ne(this)};var re=n.fold=function(e,t,n){var r=n._root;if(1===r.type)return e(t,r.value,r.key);for(var o=[r.children],i=void 0;i=o.pop();)for(var a=0,s=i.length;a<s;){var l=i[a++];l&&l.type&&(1===l.type?t=e(t,l.value,l.key):o.push(l.children))}return t};A.prototype.fold=function(e,t){return re(e,t,this)};var oe=n.forEach=function(e,t){return re((function(n,r,o){return e(r,o,t)}),null,t)};A.prototype.forEach=function(e){return oe(e,this)};var ie=n.count=function(e){return e._size};A.prototype.count=function(){return ie(this)},Object.defineProperty(A.prototype,"size",{get:A.prototype.count}),e.exports?e.exports=n:(void 0).hamt=n},ue(ce={exports:{}},ce.exports),ce.exports);class de{constructor(e){l(this,"_map",void 0),this._map=new Map(null===e||void 0===e?void 0:e.entries())}keys(){return this._map.keys()}entries(){return this._map.entries()}get(e){return this._map.get(e)}has(e){return this._map.has(e)}set(e,t){return this._map.set(e,t),this}delete(e){return this._map.delete(e),this}clone(){return he(this)}toMap(){return new Map(this._map)}}class pe{constructor(e){if(l(this,"_hamt",fe.empty.beginMutation()),e instanceof pe){const t=e._hamt.endMutation();e._hamt=t.beginMutation(),this._hamt=t.beginMutation()}else if(e)for(const[t,n]of e.entries())this._hamt.set(t,n)}keys(){return this._hamt.keys()}entries(){return this._hamt.entries()}get(e){return this._hamt.get(e)}has(e){return this._hamt.has(e)}set(e,t){return this._hamt.set(e,t),this}delete(e){return this._hamt.delete(e),this}clone(){return he(this)}toMap(){return new Map(this._hamt)}}function he(e){return T("recoil_hamt_2020")?new pe(e):new de(e)}var ge=he,ve=Object.freeze({__proto__:null,persistentMap:ge});var me=function(e,...t){const n=new Set;e:for(const r of e){for(const e of t)if(e.has(r))continue e;n.add(r)}return n};var ye=function(e,t){const n=new Map;return e.forEach(((e,r)=>{n.set(r,t(e,r))})),n};function be(e,t,n,r){const{nodeDeps:o,nodeToNodeSubscriptions:i}=n,a=o.get(e);if(a&&r&&a!==r.nodeDeps.get(e))return;o.set(e,t);const l=null==a?t:me(t,a);for(const u of l){i.has(u)||i.set(u,new Set);s(i.get(u)).add(e)}if(a){const n=me(a,t);for(const t of n){if(!i.has(t))return;const n=s(i.get(t));n.delete(e),0===n.size&&i.delete(t)}}}var we={cloneGraph:function(e){return{nodeDeps:ye(e.nodeDeps,(e=>new Set(e))),nodeToNodeSubscriptions:ye(e.nodeToNodeSubscriptions,(e=>new Set(e)))}},graph:function(){return{nodeDeps:new Map,nodeToNodeSubscriptions:new Map}},saveDepsToStore:function(e,t,n,r){var o,i,a,s;const l=n.getState();r!==l.currentTree.version&&r!==(null===(o=l.nextTree)||void 0===o?void 0:o.version)&&r!==(null===(i=l.previousTree)||void 0===i?void 0:i.version)&&D("Tried to save dependencies to a discarded tree");const u=n.getGraph(r);if(be(e,t,u),r===(null===(a=l.previousTree)||void 0===a?void 0:a.version)){be(e,t,n.getGraph(l.currentTree.version),u)}if(r===(null===(s=l.previousTree)||void 0===s?void 0:s.version)||r===l.currentTree.version){var c;const r=null===(c=l.nextTree)||void 0===c?void 0:c.version;if(void 0!==r){be(e,t,n.getGraph(r),u)}}}};let _e=0;let xe=0;let Se=0;var Oe={getNextTreeStateVersion:()=>_e++,getNextStoreID:()=>xe++,getNextComponentID:()=>Se++};const{persistentMap:Ce}=ve,{graph:Ee}=we,{getNextTreeStateVersion:Ae}=Oe;function ke(){const e=Ae();return{version:e,stateID:e,transactionMetadata:{},dirtyAtoms:new Set,atomValues:Ce(),nonvalidatedAtoms:Ce()}}var Me={makeEmptyTreeState:ke,makeEmptyStoreState:function(){const e=ke();return{currentTree:e,nextTree:null,previousTree:null,commitDepth:0,knownAtoms:new Set,knownSelectors:new Set,transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(e.version,Ee()),retention:{referenceCounts:new Map,nodesRetainedByZone:new Map,retainablesToCheckForRelease:new Set},nodeCleanupFunctions:new Map}},getNextTreeStateVersion:Ae};class Pe{}var Re={RetentionZone:Pe,retentionZone:function(){return new Pe}};var Te={setByAddingToSet:function(e,t){const n=new Set(e);return n.add(t),n},setByDeletingFromSet:function(e,t){const n=new Set(e);return n.delete(t),n},mapBySettingInMap:function(e,t,n){const r=new Map(e);return r.set(t,n),r},mapByUpdatingInMap:function(e,t,n){const r=new Map(e);return r.set(t,n(r.get(t))),r},mapByDeletingFromMap:function(e,t){const n=new Map(e);return n.delete(t),n},mapByDeletingMultipleFromMap:function(e,t){const n=new Map(e);return t.forEach((e=>n.delete(e))),n}};var Ie=function*(e,t){let n=0;for(const r of e)t(r,n++)&&(yield r)};var Be=function(e,t){return new Proxy(e,{get:(e,n)=>(!(n in e)&&n in t&&(e[n]=t[n]()),e[n]),ownKeys:e=>Object.keys(e)})};const{getNode:je,getNodeMaybe:De,recoilValuesForKeys:Le}=se,{RetentionZone:Ze}=Re,{setByAddingToSet:Ne}=Te,Fe=Object.freeze(new Set);class He extends Error{}function Ve(e,t,n,r){const o=e.getState();if(o.nodeCleanupFunctions.has(n))return;const i=je(n),a=function(e,t,n){if(!T("recoil_memory_managament_2020"))return()=>{};const{nodesRetainedByZone:r}=e.getState().retention;function o(e){let n=r.get(e);n||r.set(e,n=new Set),n.add(t)}if(n instanceof Ze)o(n);else if(Array.isArray(n))for(const i of n)o(i);return()=>{if(!T("recoil_memory_managament_2020"))return;const{retention:r}=e.getState();function o(e){const n=r.nodesRetainedByZone.get(e);null===n||void 0===n||n.delete(t),n&&0===n.size&&r.nodesRetainedByZone.delete(e)}if(n instanceof Ze)o(n);else if(Array.isArray(n))for(const e of n)o(e)}}(e,n,i.retainedBy),s=i.init(e,t,r);o.nodeCleanupFunctions.set(n,(()=>{s(),a()}))}function ze(e,t,n){return je(n).peek(e,t)}function Ue(e,t,n){const r=new Set,o=Array.from(n),i=e.getGraph(t.version);for(let s=o.pop();s;s=o.pop()){var a;r.add(s);const e=null!==(a=i.nodeToNodeSubscriptions.get(s))&&void 0!==a?a:Fe;for(const t of e)r.has(t)||o.push(t)}return r}var Ge={getNodeLoadable:function(e,t,n){return Ve(e,t,n,"get"),je(n).get(e,t)},peekNodeLoadable:ze,setNodeValue:function(e,t,n,r){const o=je(n);if(null==o.set)throw new He(`Attempt to set read-only RecoilValue: ${n}`);const i=o.set;return Ve(e,t,n,"set"),i(e,t,r)},initializeNode:function(e,t,n){Ve(e,e.getState().currentTree,t,n)},cleanUpNode:function(e,t){var n;const r=e.getState();null===(n=r.nodeCleanupFunctions.get(t))||void 0===n||n(),r.nodeCleanupFunctions.delete(t)},setUnvalidatedAtomValue_DEPRECATED:function(e,t,n){var r;const o=De(t);return null===o||void 0===o||null===(r=o.invalidate)||void 0===r||r.call(o,e),{...e,atomValues:e.atomValues.clone().delete(t),nonvalidatedAtoms:e.nonvalidatedAtoms.clone().set(t,n),dirtyAtoms:Ne(e.dirtyAtoms,t)}},peekNodeInfo:function(e,t,n){const r=e.getState(),o=e.getGraph(t.version),i=je(n).nodeType;return Be({type:i},{loadable:()=>ze(e,t,n),isActive:()=>r.knownAtoms.has(n)||r.knownSelectors.has(n),isSet:()=>"selector"!==i&&t.atomValues.has(n),isModified:()=>t.dirtyAtoms.has(n),deps:()=>{var e;return Le(null!==(e=o.nodeDeps.get(n))&&void 0!==e?e:[])},subscribers:()=>{var o,i;return{nodes:Le(Ie(Ue(e,t,new Set([n])),(e=>e!==n))),components:J(null!==(o=null===(i=r.nodeToComponentSubscriptions.get(n))||void 0===i?void 0:i.values())&&void 0!==o?o:[],(([e])=>({name:e})))}}})},getDownstreamNodes:Ue};let We=null;var qe={setInvalidateMemoizedSnapshot:function(e){We=e},invalidateMemoizedSnapshot:function(){var e;null===(e=We)||void 0===e||e()}};const{getDownstreamNodes:$e,getNodeLoadable:Ye,setNodeValue:Xe}=Ge,{getNextComponentID:Ke}=Oe,{getNode:Je,getNodeMaybe:Qe}=se,{DefaultValue:et}=se,{reactMode:tt}=H,{AbstractRecoilValue:nt,RecoilState:rt,RecoilValueReadOnly:ot,isRecoilValue:it}=X,{invalidateMemoizedSnapshot:at}=qe;function st(e,t,n){if("set"===n.type){const{recoilValue:r,valueOrUpdater:o}=n,a=function(e,t,{key:n},r){if("function"===typeof r){const o=Ye(e,t,n);if("loading"===o.state){const e=`Tried to set atom or selector "${n}" using an updater function while the current state is pending, this is not currently supported.`;throw D(e),i(e)}if("hasError"===o.state)throw o.contents;return r(o.contents)}return r}(e,t,r,o),s=Xe(e,t,r.key,a);for(const[e,n]of s.entries())lt(t,e,n)}else if("setLoadable"===n.type){const{recoilValue:{key:e},loadable:r}=n;lt(t,e,r)}else if("markModified"===n.type){const{recoilValue:{key:e}}=n;t.dirtyAtoms.add(e)}else if("setUnvalidated"===n.type){var r;const{recoilValue:{key:e},unvalidatedValue:o}=n,i=Qe(e);null===i||void 0===i||null===(r=i.invalidate)||void 0===r||r.call(i,t),t.atomValues.delete(e),t.nonvalidatedAtoms.set(e,o),t.dirtyAtoms.add(e)}else D(`Unknown action ${n.type}`)}function lt(e,t,n){"hasValue"===n.state&&n.contents instanceof et?e.atomValues.delete(t):e.atomValues.set(t,n),e.dirtyAtoms.add(t),e.nonvalidatedAtoms.delete(t)}function ut(e,t){e.replaceState((n=>{const r=dt(n);for(const o of t)st(e,r,o);return pt(e,r),at(),r}))}function ct(e,t){if(ft.length){const n=ft[ft.length-1];let r=n.get(e);r||n.set(e,r=[]),r.push(t)}else ut(e,[t])}const ft=[];function dt(e){return{...e,atomValues:e.atomValues.clone(),nonvalidatedAtoms:e.nonvalidatedAtoms.clone(),dirtyAtoms:new Set(e.dirtyAtoms)}}function pt(e,t){const n=$e(e,t,t.dirtyAtoms);for(const i of n){var r,o;null===(r=Qe(i))||void 0===r||null===(o=r.invalidate)||void 0===o||o.call(r,t)}}function ht(e,t,n){ct(e,{type:"set",recoilValue:t,valueOrUpdater:n})}var gt={RecoilValueReadOnly:ot,AbstractRecoilValue:nt,RecoilState:rt,getRecoilValueAsLoadable:function(e,{key:t},n=e.getState().currentTree){var r,o;const i=e.getState();n.version!==i.currentTree.version&&n.version!==(null===(r=i.nextTree)||void 0===r?void 0:r.version)&&n.version!==(null===(o=i.previousTree)||void 0===o?void 0:o.version)&&D("Tried to read from a discarded tree");const a=Ye(e,n,t);return"loading"===a.state&&a.contents.catch((()=>{})),a},setRecoilValue:ht,setRecoilValueLoadable:function(e,t,n){if(n instanceof et)return ht(e,t,n);ct(e,{type:"setLoadable",recoilValue:t,loadable:n})},markRecoilValueModified:function(e,t){ct(e,{type:"markModified",recoilValue:t})},setUnvalidatedRecoilValue:function(e,t,n){ct(e,{type:"setUnvalidated",recoilValue:t,unvalidatedValue:n})},subscribeToRecoilValue:function(e,{key:t},n,r=null){const o=Ke(),i=e.getState();i.nodeToComponentSubscriptions.has(t)||i.nodeToComponentSubscriptions.set(t,new Map),s(i.nodeToComponentSubscriptions.get(t)).set(o,[null!==r&&void 0!==r?r:"<not captured>",n]);const a=tt();if(a.early&&("LEGACY"===a.mode||"MUTABLE_SOURCE"===a.mode)){const r=e.getState().nextTree;r&&r.dirtyAtoms.has(t)&&n(r)}return{release:()=>{const n=e.getState(),r=n.nodeToComponentSubscriptions.get(t);void 0!==r&&r.has(o)?(r.delete(o),0===r.size&&n.nodeToComponentSubscriptions.delete(t)):D(`Subscription missing at release time for atom ${t}. This is a bug in Recoil.`)}}},isRecoilValue:it,applyAtomValueWrites:function(e,t){const n=e.clone();return t.forEach(((e,t)=>{"hasValue"===e.state&&e.contents instanceof et?n.delete(t):n.set(t,e)})),n},batchStart:function(){const e=new Map;return ft.push(e),()=>{for(const[t,n]of e)ut(t,n);ft.pop()!==e&&D("Incorrect order of batch popping")}},writeLoadableToTreeState:lt,invalidateDownstreams:pt,copyTreeState:dt,refreshRecoilValue:function(e,t){var n;const{currentTree:r}=e.getState(),o=Je(t.key);null===(n=o.clearCache)||void 0===n||n.call(o,e,r)}};var vt=function(e,t,n){const r=e.entries();let o=r.next();for(;!o.done;){const i=o.value;if(t.call(n,i[1],i[0],e))return!0;o=r.next()}return!1};const{cleanUpNode:mt}=Ge,{deleteNodeConfigIfPossible:yt,getNode:bt}=se,{RetentionZone:wt}=Re,_t=new Set;function xt(e,t){const n=e.getState(),r=n.currentTree;if(n.nextTree)return void D("releaseNodesNowOnCurrentTree should only be called at the end of a batch");const o=new Set;for(const a of t)if(a instanceof wt)for(const e of Ot(n,a))o.add(e);else o.add(a);const i=function(e,t){const n=e.getState(),r=n.currentTree,o=e.getGraph(r.version),i=new Set,a=new Set;return l(t),i;function l(t){const u=new Set,c=function(e,t,n,r,o){const i=e.getGraph(t.version),a=[],l=new Set;for(;n.size>0;)u(s(n.values().next().value));return a;function u(e){if(r.has(e)||o.has(e))return void n.delete(e);if(l.has(e))return;const t=i.nodeToNodeSubscriptions.get(e);if(t)for(const n of t)u(n);l.add(e),n.delete(e),a.push(e)}}(e,r,t,i,a);for(const e of c){var f;if("recoilRoot"===bt(e).retainedBy){a.add(e);continue}if((null!==(f=n.retention.referenceCounts.get(e))&&void 0!==f?f:0)>0){a.add(e);continue}if(Ct(e).some((e=>n.retention.referenceCounts.get(e)))){a.add(e);continue}const t=o.nodeToNodeSubscriptions.get(e);t&&vt(t,(e=>a.has(e)))?a.add(e):(i.add(e),u.add(e))}const d=new Set;for(const e of u)for(const t of null!==(p=o.nodeDeps.get(e))&&void 0!==p?p:_t){var p;i.has(t)||d.add(t)}d.size&&l(d)}}(e,o);for(const a of i)St(e,r,a)}function St(e,t,n){if(!T("recoil_memory_managament_2020"))return;mt(e,n);const r=e.getState();r.knownAtoms.delete(n),r.knownSelectors.delete(n),r.nodeTransactionSubscriptions.delete(n),r.retention.referenceCounts.delete(n);const o=Ct(n);for(const l of o){var i;null===(i=r.retention.nodesRetainedByZone.get(l))||void 0===i||i.delete(n)}t.atomValues.delete(n),t.dirtyAtoms.delete(n),t.nonvalidatedAtoms.delete(n);const a=r.graphsByVersion.get(t.version);if(a){const e=a.nodeDeps.get(n);if(void 0!==e){a.nodeDeps.delete(n);for(const t of e){var s;null===(s=a.nodeToNodeSubscriptions.get(t))||void 0===s||s.delete(n)}}a.nodeToNodeSubscriptions.delete(n)}yt(n)}function Ot(e,t){var n;return null!==(n=e.retention.nodesRetainedByZone.get(t))&&void 0!==n?n:_t}function Ct(e){const t=bt(e).retainedBy;return void 0===t||"components"===t||"recoilRoot"===t?[]:t instanceof wt?[t]:t}function Et(e,t){if(!T("recoil_memory_managament_2020"))return;e.getState().retention.referenceCounts.delete(t),function(e,t){const n=e.getState();n.nextTree?n.retention.retainablesToCheckForRelease.add(t):xt(e,new Set([t]))}(e,t)}var At={SUSPENSE_TIMEOUT_MS:12e4,updateRetainCount:function(e,t,n){var r;if(!T("recoil_memory_managament_2020"))return;const o=e.getState().retention.referenceCounts,i=(null!==(r=o.get(t))&&void 0!==r?r:0)+n;0===i?Et(e,t):o.set(t,i)},updateRetainCountToZero:Et,releaseScheduledRetainablesNow:function(e){if(!T("recoil_memory_managament_2020"))return;const t=e.getState();xt(e,t.retention.retainablesToCheckForRelease),t.retention.retainablesToCheckForRelease.clear()},retainedByOptionWithDefault:function(e){return void 0===e?"recoilRoot":e}};const{unstable_batchedUpdates:kt}=o;var Mt={unstable_batchedUpdates:kt};const{unstable_batchedUpdates:Pt}=Mt;var Rt={unstable_batchedUpdates:Pt};const{batchStart:Tt}=gt,{unstable_batchedUpdates:It}=Rt;let Bt=It||(e=>e());var jt={getBatcher:()=>Bt,setBatcher:e=>{Bt=e},batchUpdates:e=>{Bt((()=>{let t=()=>{};try{t=Tt(),e()}finally{t()}}))}};var Dt=function*(e){for(const t of e)for(const e of t)yield e};const Lt="undefined"===typeof Window||"undefined"===typeof window,Zt="undefined"!==typeof navigator&&"ReactNative"===navigator.product;var Nt={isSSR:Lt,isReactNative:Zt,isWindow:e=>!Lt&&(e===window||e instanceof Window)};var Ft={memoizeWithArgsHash:function(e,t){let n;return(...r)=>{n||(n={});const o=t(...r);return Object.hasOwnProperty.call(n,o)||(n[o]=e(...r)),n[o]}},memoizeOneWithArgsHash:function(e,t){let n,r;return(...o)=>{const i=t(...o);return n===i||(n=i,r=e(...o)),r}},memoizeOneWithArgsHashAndInvalidation:function(e,t){let n,r;return[(...o)=>{const i=t(...o);return n===i||(n=i,r=e(...o)),r},()=>{n=null}]}};const{batchUpdates:Ht}=jt,{initializeNode:Vt,peekNodeInfo:zt}=Ge,{graph:Ut}=we,{getNextStoreID:Gt}=Oe,{DEFAULT_VALUE:Wt,recoilValues:qt,recoilValuesForKeys:$t}=se,{AbstractRecoilValue:Yt,getRecoilValueAsLoadable:Xt,setRecoilValue:Kt,setUnvalidatedRecoilValue:Jt}=gt,{updateRetainCount:Qt}=At,{setInvalidateMemoizedSnapshot:en}=qe,{getNextTreeStateVersion:tn,makeEmptyStoreState:nn}=Me,{isSSR:rn}=Nt,{memoizeOneWithArgsHashAndInvalidation:on}=Ft;class an{constructor(e,t){l(this,"_store",void 0),l(this,"_refCount",1),l(this,"getLoadable",(e=>(this.checkRefCount_INTERNAL(),Xt(this._store,e)))),l(this,"getPromise",(e=>(this.checkRefCount_INTERNAL(),this.getLoadable(e).toPromise()))),l(this,"getNodes_UNSTABLE",(e=>{if(this.checkRefCount_INTERNAL(),!0===(null===e||void 0===e?void 0:e.isModified)){if(!1===(null===e||void 0===e?void 0:e.isInitialized))return[];const t=this._store.getState().currentTree;return $t(t.dirtyAtoms)}const t=this._store.getState().knownAtoms,n=this._store.getState().knownSelectors;return null==(null===e||void 0===e?void 0:e.isInitialized)?qt.values():!0===e.isInitialized?$t(Dt([t,n])):Ie(qt.values(),(({key:e})=>!t.has(e)&&!n.has(e)))})),l(this,"getInfo_UNSTABLE",(({key:e})=>(this.checkRefCount_INTERNAL(),zt(this._store,this._store.getState().currentTree,e)))),l(this,"map",(e=>{this.checkRefCount_INTERNAL();const t=new cn(this,Ht);return e(t),t})),l(this,"asyncMap",(async e=>{this.checkRefCount_INTERNAL();const t=new cn(this,Ht);return t.retain(),await e(t),t.autoRelease_INTERNAL(),t})),this._store={storeID:Gt(),parentStoreID:t,getState:()=>e,replaceState:t=>{e.currentTree=t(e.currentTree)},getGraph:t=>{const n=e.graphsByVersion;if(n.has(t))return s(n.get(t));const r=Ut();return n.set(t,r),r},subscribeToTransactions:()=>({release:()=>{}}),addTransactionMetadata:()=>{throw i("Cannot subscribe to Snapshots")}};for(const n of this._store.getState().knownAtoms)Vt(this._store,n,"get"),Qt(this._store,n,1);this.autoRelease_INTERNAL()}retain(){this._refCount<=0&&D("Attempt to retain() Snapshot that was already released."),this._refCount++;let e=!1;return()=>{e||(e=!0,this._release())}}autoRelease_INTERNAL(){rn||window.setTimeout((()=>this._release()),10)}_release(){if(this._refCount--,0===this._refCount){if(this._store.getState().nodeCleanupFunctions.forEach((e=>e())),this._store.getState().nodeCleanupFunctions.clear(),!T("recoil_memory_managament_2020"))return}else this._refCount}isRetained(){return this._refCount>0}checkRefCount_INTERNAL(){T("recoil_memory_managament_2020")&&this._refCount}getStore_INTERNAL(){return this.checkRefCount_INTERNAL(),this._store}getID(){return this.checkRefCount_INTERNAL(),this._store.getState().currentTree.stateID}getStoreID(){return this.checkRefCount_INTERNAL(),this._store.storeID}}function sn(e,t,n=!1){const r=e.getState(),o=n?tn():t.version;return{currentTree:{version:n?o:t.version,stateID:n?o:t.stateID,transactionMetadata:{...t.transactionMetadata},dirtyAtoms:new Set(t.dirtyAtoms),atomValues:t.atomValues.clone(),nonvalidatedAtoms:t.nonvalidatedAtoms.clone()},commitDepth:0,nextTree:null,previousTree:null,knownAtoms:new Set(r.knownAtoms),knownSelectors:new Set(r.knownSelectors),transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(o,e.getGraph(t.version)),retention:{referenceCounts:new Map,nodesRetainedByZone:new Map,retainablesToCheckForRelease:new Set},nodeCleanupFunctions:new Map(J(r.nodeCleanupFunctions.entries(),(([e])=>[e,()=>{}])))}}const[ln,un]=on(((e,t)=>{var n;const r=e.getState(),o="latest"===t?null!==(n=r.nextTree)&&void 0!==n?n:r.currentTree:s(r.previousTree);return new an(sn(e,o),e.storeID)}),((e,t)=>{var n,r;return String(t)+String(e.storeID)+String(null===(n=e.getState().nextTree)||void 0===n?void 0:n.version)+String(e.getState().currentTree.version)+String(null===(r=e.getState().previousTree)||void 0===r?void 0:r.version)}));en(un);class cn extends an{constructor(e,t){super(sn(e.getStore_INTERNAL(),e.getStore_INTERNAL().getState().currentTree,!0),e.getStoreID()),l(this,"_batch",void 0),l(this,"set",((e,t)=>{this.checkRefCount_INTERNAL();const n=this.getStore_INTERNAL();this._batch((()=>{Qt(n,e.key,1),Kt(this.getStore_INTERNAL(),e,t)}))})),l(this,"reset",(e=>{this.checkRefCount_INTERNAL();const t=this.getStore_INTERNAL();this._batch((()=>{Qt(t,e.key,1),Kt(this.getStore_INTERNAL(),e,Wt)}))})),l(this,"setUnvalidatedAtomValues_DEPRECATED",(e=>{this.checkRefCount_INTERNAL();const t=this.getStore_INTERNAL();Ht((()=>{for(const[n,r]of e.entries())Qt(t,n,1),Jt(t,new Yt(n),r)}))})),this._batch=t}}var fn={Snapshot:an,MutableSnapshot:cn,freshSnapshot:function(e){const t=new an(nn());return null!=e?t.map(e):t},cloneSnapshot:function(e,t="latest"){const n=ln(e,t);return n.isRetained()?n:(un(),ln(e,t))}},dn=fn.Snapshot,pn=fn.MutableSnapshot,hn=fn.freshSnapshot,gn=fn.cloneSnapshot,vn=Object.freeze({__proto__:null,Snapshot:dn,MutableSnapshot:pn,freshSnapshot:hn,cloneSnapshot:gn});var mn=function(...e){const t=new Set;for(const n of e)for(const e of n)t.add(e);return t};const{useRef:yn}=r;var bn=function(e){const t=yn(e);return t.current===e&&"function"===typeof e&&(t.current=e()),t};const{getNextTreeStateVersion:wn,makeEmptyStoreState:_n}=Me,{cleanUpNode:xn,getDownstreamNodes:Sn,initializeNode:On,setNodeValue:Cn,setUnvalidatedAtomValue_DEPRECATED:En}=Ge,{graph:An}=we,{cloneGraph:kn}=we,{getNextStoreID:Mn}=Oe,{createMutableSource:Pn,reactMode:Rn}=H,{applyAtomValueWrites:Tn}=gt,{releaseScheduledRetainablesNow:In}=At,{freshSnapshot:Bn}=vn,{useCallback:jn,useContext:Dn,useEffect:Ln,useMemo:Zn,useRef:Nn,useState:Fn}=r;function Hn(){throw i("This component must be used inside a <RecoilRoot> component.")}const Vn=Object.freeze({storeID:Mn(),getState:Hn,replaceState:Hn,getGraph:Hn,subscribeToTransactions:Hn,addTransactionMetadata:Hn});let zn=!1;function Un(e){if(zn)throw i("An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.");const t=e.getState();if(null===t.nextTree){T("recoil_memory_managament_2020")&&T("recoil_release_on_cascading_update_killswitch_2021")&&t.commitDepth>0&&In(e);const n=t.currentTree.version,r=wn();t.nextTree={...t.currentTree,version:r,stateID:r,dirtyAtoms:new Set,transactionMetadata:{}},t.graphsByVersion.set(r,kn(s(t.graphsByVersion.get(n))))}}const Gn=r.createContext({current:Vn}),Wn=()=>Dn(Gn),qn=r.createContext(null);function $n(e,t,n){const r=Sn(e,n,n.dirtyAtoms);for(const o of r){const e=t.nodeToComponentSubscriptions.get(o);if(e)for(const[t,[r,o]]of e)o(n)}}function Yn(e){const t=e.getState(),n=t.currentTree,r=n.dirtyAtoms;if(r.size){for(const[n,o]of t.nodeTransactionSubscriptions)if(r.has(n))for(const[t,r]of o)r(e);for(const[n,r]of t.transactionSubscriptions)r(e);(!Rn().early||t.suspendedComponentResolvers.size>0)&&($n(e,t,n),t.suspendedComponentResolvers.forEach((e=>e())),t.suspendedComponentResolvers.clear())}t.queuedComponentCallbacks_DEPRECATED.forEach((e=>e(n))),t.queuedComponentCallbacks_DEPRECATED.splice(0,t.queuedComponentCallbacks_DEPRECATED.length)}function Xn({setNotifyBatcherOfChange:e}){const t=Wn(),[,n]=Fn([]);return e((()=>n({}))),Ln((()=>(e((()=>n({}))),()=>{e((()=>{}))})),[e]),Ln((()=>{le.enqueueExecution("Batcher",(()=>{!function(e){const t=e.getState();t.commitDepth++;try{const{nextTree:n}=t;if(null==n)return;t.previousTree=t.currentTree,t.currentTree=n,t.nextTree=null,Yn(e),null!=t.previousTree?t.graphsByVersion.delete(t.previousTree.version):D("Ended batch with no previous state, which is unexpected","recoil"),t.previousTree=null,T("recoil_memory_managament_2020")&&null==n&&In(e)}finally{t.commitDepth--}}(t.current)}))})),null}let Kn=0;function Jn({initializeState_DEPRECATED:e,initializeState:t,store_INTERNAL:n,children:o}){let i;const a=e=>{const t=i.current.graphsByVersion;if(t.has(e))return s(t.get(e));const n=An();return t.set(e,n),n},l=(e,t)=>{if(null==t){const{transactionSubscriptions:t}=p.current.getState(),n=Kn++;return t.set(n,e),{release:()=>{t.delete(n)}}}{const{nodeTransactionSubscriptions:n}=p.current.getState();n.has(t)||n.set(t,new Map);const r=Kn++;return s(n.get(t)).set(r,e),{release:()=>{const e=n.get(t);e&&(e.delete(r),0===e.size&&n.delete(t))}}}},u=e=>{Un(p.current);for(const t of Object.keys(e))s(p.current.getState().nextTree).transactionMetadata[t]=e[t]},c=e=>{Un(p.current);const t=s(i.current.nextTree);let n;try{zn=!0,n=e(t)}finally{zn=!1}n!==t&&(i.current.nextTree=n,Rn().early&&$n(p.current,i.current,n),s(f.current)())},f=Nn(null),d=jn((e=>{f.current=e}),[f]),p=bn((()=>null!==n&&void 0!==n?n:{storeID:Mn(),getState:()=>i.current,replaceState:c,getGraph:a,subscribeToTransactions:l,addTransactionMetadata:u}));null!=n&&(p.current=n),i=bn((()=>null!=e?function(e,t){const n=_n();return t({set:(t,r)=>{const o=n.currentTree,i=Cn(e,o,t.key,r),a=new Set(i.keys()),s=o.nonvalidatedAtoms.clone();for(const e of a)s.delete(e);n.currentTree={...o,dirtyAtoms:mn(o.dirtyAtoms,a),atomValues:Tn(o.atomValues,i),nonvalidatedAtoms:s}},setUnvalidatedAtomValues:e=>{e.forEach(((e,t)=>{n.currentTree=En(n.currentTree,t,e)}))}}),n}(p.current,e):null!=t?function(e){const t=Bn(e),n=t.getStore_INTERNAL().getState();return t.retain(),n.nodeCleanupFunctions.forEach((e=>e())),n.nodeCleanupFunctions.clear(),n}(t):_n()));const h=Zn((()=>null===Pn||void 0===Pn?void 0:Pn(i,(()=>i.current.currentTree.version))),[i]);return Ln((()=>{const e=p.current;for(const t of new Set(e.getState().knownAtoms))On(e,t,"get");return()=>{for(const t of e.getState().knownAtoms)xn(e,t)}}),[p]),r.createElement(Gn.Provider,{value:p},r.createElement(qn.Provider,{value:h},r.createElement(Xn,{setNotifyBatcherOfChange:d}),o))}var Qn={RecoilRoot:function(e){const{override:t,...n}=e,o=Wn();return!1===t&&o.current!==Vn?e.children:r.createElement(Jn,n)},useStoreRef:Wn,useRecoilMutableSource:function(){const e=Dn(qn);return null==e&&K("Attempted to use a Recoil hook outside of a <RecoilRoot>. <RecoilRoot> must be an ancestor of any component that uses Recoil hooks."),e},useRecoilStoreID:function(){return Wn().current.storeID},notifyComponents_FOR_TESTING:$n,sendEndOfBatchNotifications_FOR_TESTING:Yn};var er=function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return!1;return!0};const{useEffect:tr,useRef:nr}=r;var rr=function(e){const t=nr();return tr((()=>{t.current=e})),t.current};const{useStoreRef:or}=Qn,{SUSPENSE_TIMEOUT_MS:ir}=At,{updateRetainCount:ar}=At,{RetentionZone:sr}=Re,{useEffect:lr,useRef:ur}=r,{isSSR:cr}=Nt;var fr=function(e){if(T("recoil_memory_managament_2020"))return function(e){const t=Array.isArray(e)?e:[e],n=t.map((e=>e instanceof sr?e:e.key)),r=or();lr((()=>{if(!T("recoil_memory_managament_2020"))return;const e=r.current;if(o.current&&!cr)window.clearTimeout(o.current),o.current=null;else for(const t of n)ar(e,t,1);return()=>{for(const t of n)ar(e,t,-1)}}),[r,...n]);const o=ur(),i=rr(n);if(!cr&&(void 0===i||!er(i,n))){const e=r.current;for(const t of n)ar(e,t,1);if(i)for(const t of i)ar(e,t,-1);o.current&&window.clearTimeout(o.current),o.current=window.setTimeout((()=>{o.current=null;for(const t of n)ar(e,t,-1)}),ir)}}(e)};var dr=function(){return"<component name not available>"};const{batchUpdates:pr}=jt,{DEFAULT_VALUE:hr}=se,{currentRendererSupportsUseSyncExternalStore:gr,reactMode:vr,useMutableSource:mr,useSyncExternalStore:yr}=H,{useRecoilMutableSource:br,useStoreRef:wr}=Qn,{isRecoilValue:_r}=X,{AbstractRecoilValue:xr,getRecoilValueAsLoadable:Sr,setRecoilValue:Or,setUnvalidatedRecoilValue:Cr,subscribeToRecoilValue:Er}=gt,{useCallback:Ar,useEffect:kr,useMemo:Mr,useRef:Pr,useState:Rr}=r,{setByAddingToSet:Tr}=Te,{isSSR:Ir}=Nt;function Br(e,t,n){if("hasValue"===e.state)return e.contents;if("loading"===e.state){throw new Promise((t=>{const r=n.current.getState().suspendedComponentResolvers;r.add(t),Ir&&a(e.contents)&&e.contents.finally((()=>{r.delete(t)}))}))}throw"hasError"===e.state?e.contents:i(`Invalid value of loadable atom "${t.key}"`)}function jr(e){const t=wr(),n=dr(),r=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return{loadable:Sr(r,e,i),key:e.key}}),[t,e]),o=Ar((e=>{let t;return()=>{var n,r;const o=e();return null!==(n=t)&&void 0!==n&&n.loadable.is(o.loadable)&&(null===(r=t)||void 0===r?void 0:r.key)===o.key?t:(t=o,o)}}),[]),i=Mr((()=>o(r)),[r,o]),a=Ar((r=>{const o=t.current;return Er(o,e,r,n).release}),[t,e,n]);return yr(a,i,i).loadable}function Dr(e){const t=wr(),n=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),r=Ar((()=>n()),[n]),o=dr(),a=Ar(((r,i)=>{const a=t.current;return Er(a,e,(()=>{if(!T("recoil_suppress_rerender_in_callback"))return i();const e=n();u.current.is(e)||i(),u.current=e}),o).release}),[t,e,o,n]),s=br();if(null==s)throw i("Recoil hooks must be used in components contained within a <RecoilRoot> component.");const l=mr(s,r,a),u=Pr(l);return kr((()=>{u.current=l})),l}function Lr(e){const t=wr(),n=dr(),r=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),o=Ar((()=>({loadable:r(),key:e.key})),[r,e.key]),i=Ar((e=>{const t=o();return e.loadable.is(t.loadable)&&e.key===t.key?e:t}),[o]);kr((()=>{const r=Er(t.current,e,(e=>{s(i)}),n);return s(i),r.release}),[n,e,t,i]);const[a,s]=Rr(o);return a.key!==e.key?o().loadable:a.loadable}function Zr(e){const t=wr(),[,n]=Rr([]),r=dr(),o=Ar((()=>{var n;const r=t.current,o=r.getState(),i=vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return Sr(r,e,i)}),[t,e]),i=o(),a=Pr(i);return kr((()=>{a.current=i})),kr((()=>{const i=t.current,s=i.getState(),l=Er(i,e,(e=>{var t;if(!T("recoil_suppress_rerender_in_callback"))return n([]);const r=o();null!==(t=a.current)&&void 0!==t&&t.is(r)||n(r),a.current=r}),r);if(s.nextTree)i.getState().queuedComponentCallbacks_DEPRECATED.push((()=>{a.current=null,n([])}));else{var u;if(!T("recoil_suppress_rerender_in_callback"))return n([]);const e=o();null!==(u=a.current)&&void 0!==u&&u.is(e)||n(e),a.current=e}return l.release}),[r,o,e,t]),i}function Nr(e){return T("recoil_memory_managament_2020")&&fr(e),{TRANSITION_SUPPORT:Lr,SYNC_EXTERNAL_STORE:gr()?jr:Lr,MUTABLE_SOURCE:Dr,LEGACY:Zr}[vr().mode](e)}function Fr(e){const t=wr();return Br(Nr(e),e,t)}function Hr(e){const t=wr();return Ar((n=>{Or(t.current,e,n)}),[t,e])}function Vr(e){return T("recoil_memory_managament_2020")&&fr(e),Lr(e)}function zr(e){const t=wr();return Br(Vr(e),e,t)}var Ur={recoilComponentGetRecoilValueCount_FOR_TESTING:{current:0},useRecoilInterface:function(){const e=dr(),t=wr(),[,n]=Rr([]),r=Pr(new Set);r.current=new Set;const o=Pr(new Set),i=Pr(new Map),a=Ar((e=>{const t=i.current.get(e);t&&(t.release(),i.current.delete(e))}),[i]),s=Ar(((e,t)=>{i.current.has(t)&&n([])}),[]);return kr((()=>{const n=t.current;me(r.current,o.current).forEach((t=>{if(i.current.has(t))return void K(`Double subscription to RecoilValue "${t}"`);const r=Er(n,new xr(t),(e=>s(e,t)),e);i.current.set(t,r);n.getState().nextTree?n.getState().queuedComponentCallbacks_DEPRECATED.push((()=>{s(n.getState(),t)})):s(n.getState(),t)})),me(o.current,r.current).forEach((e=>{a(e)})),o.current=r.current})),kr((()=>{const n=i.current;return me(r.current,new Set(n.keys())).forEach((r=>{const o=Er(t.current,new xr(r),(e=>s(e,r)),e);n.set(r,o)})),()=>n.forEach(((e,t)=>a(t)))}),[e,t,a,s]),Mr((()=>{function e(e){return n=>{Or(t.current,e,n)}}function n(e){var n;r.current.has(e.key)||(r.current=Tr(r.current,e.key));const o=t.current.getState();return Sr(t.current,e,vr().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree)}function o(e){return Br(n(e),e,t)}return{getRecoilValue:o,getRecoilValueLoadable:n,getRecoilState:function(t){return[o(t),e(t)]},getRecoilStateLoadable:function(t){return[n(t),e(t)]},getSetRecoilState:e,getResetRecoilState:function(e){return()=>Or(t.current,e,hr)}}}),[r,t])},useRecoilState:function(e){return[Fr(e),Hr(e)]},useRecoilStateLoadable:function(e){return[Nr(e),Hr(e)]},useRecoilValue:Fr,useRecoilValueLoadable:Nr,useResetRecoilState:function(e){const t=wr();return Ar((()=>{Or(t.current,e,hr)}),[t,e])},useSetRecoilState:Hr,useSetUnvalidatedAtomValues:function(){const e=wr();return(t,n={})=>{pr((()=>{e.current.addTransactionMetadata(n),t.forEach(((t,n)=>Cr(e.current,new xr(n),t)))}))}},useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Vr,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:zr,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:function(e){return[zr(e),Hr(e)]}};var Gr=function(e,t){const n=new Map;for(const[r,o]of e)t(o,r)&&n.set(r,o);return n};var Wr=function(e,t){const n=new Set;for(const r of e)t(r)&&n.add(r);return n};var qr=function(...e){const t=new Map;for(let n=0;n<e.length;n++){const r=e[n].keys();let o;for(;!(o=r.next()).done;)t.set(o.value,e[n].get(o.value))}return t};const{batchUpdates:$r}=jt,{DEFAULT_VALUE:Yr,getNode:Xr,nodes:Kr}=se,{useStoreRef:Jr}=Qn,{AbstractRecoilValue:Qr,setRecoilValueLoadable:eo}=gt,{SUSPENSE_TIMEOUT_MS:to}=At,{cloneSnapshot:no}=vn,{useCallback:ro,useEffect:oo,useRef:io,useState:ao}=r,{isSSR:so}=Nt;function lo(e){const t=Jr();oo((()=>t.current.subscribeToTransactions(e).release),[e,t])}function uo(e){const t=e.atomValues.toMap(),n=ye(Gr(t,((e,t)=>{const n=Xr(t).persistence_UNSTABLE;return null!=n&&"none"!==n.type&&"hasValue"===e.state})),(e=>e.contents));return qr(e.nonvalidatedAtoms.toMap(),n)}function co(e,t){var n;const r=e.getState(),o=null!==(n=r.nextTree)&&void 0!==n?n:r.currentTree,i=t.getStore_INTERNAL().getState().currentTree;$r((()=>{const n=new Set;for(const e of[o.atomValues.keys(),i.atomValues.keys()])for(const t of e){var r,a;(null===(r=o.atomValues.get(t))||void 0===r?void 0:r.contents)!==(null===(a=i.atomValues.get(t))||void 0===a?void 0:a.contents)&&Xr(t).shouldRestoreFromSnapshots&&n.add(t)}n.forEach((t=>{eo(e,new Qr(t),i.atomValues.has(t)?s(i.atomValues.get(t)):Yr)})),e.replaceState((e=>({...e,stateID:t.getID()})))}))}var fo={useRecoilSnapshot:function(){const e=Jr(),[t,n]=ao((()=>no(e.current))),r=rr(t),o=io(),i=io();if(lo(ro((e=>n(no(e))),[])),oo((()=>{const e=t.retain();var n;o.current&&!so&&(window.clearTimeout(o.current),o.current=null,null===(n=i.current)||void 0===n||n.call(i),i.current=null);return()=>{window.setTimeout(e,10)}}),[t]),r!==t&&!so){var a;if(o.current)window.clearTimeout(o.current),o.current=null,null===(a=i.current)||void 0===a||a.call(i),i.current=null;i.current=t.retain(),o.current=window.setTimeout((()=>{var e;o.current=null,null===(e=i.current)||void 0===e||e.call(i),i.current=null}),to)}return t},gotoSnapshot:co,useGotoRecoilSnapshot:function(){const e=Jr();return ro((t=>co(e.current,t)),[e])},useRecoilTransactionObserver:function(e){lo(ro((t=>{const n=no(t,"latest"),r=no(t,"previous");e({snapshot:n,previousSnapshot:r})}),[e]))},useTransactionObservation_DEPRECATED:function(e){lo(ro((t=>{let n=t.getState().previousTree;const r=t.getState().currentTree;n||(D("Transaction subscribers notified without a previous tree being present -- this is a bug in Recoil"),n=t.getState().currentTree);const o=uo(r),i=uo(n),a=ye(Kr,(e=>{var t,n,r,o;return{persistence_UNSTABLE:{type:null!==(t=null===(n=e.persistence_UNSTABLE)||void 0===n?void 0:n.type)&&void 0!==t?t:"none",backButton:null!==(r=null===(o=e.persistence_UNSTABLE)||void 0===o?void 0:o.backButton)&&void 0!==r&&r}}})),s=Wr(r.dirtyAtoms,(e=>o.has(e)||i.has(e)));e({atomValues:o,previousAtomValues:i,atomInfo:a,modifiedAtoms:s,transactionMetadata:{...r.transactionMetadata}})}),[e]))},useTransactionSubscription_DEPRECATED:lo};const{peekNodeInfo:po}=Ge,{useStoreRef:ho}=Qn;var go=function(){const e=ho();return({key:t})=>po(e.current,e.current.getState().currentTree,t)};const{reactMode:vo}=H,{RecoilRoot:mo,useStoreRef:yo}=Qn,{useMemo:bo}=r;var wo=function(){"MUTABLE_SOURCE"===vo().mode&&console.warn("Warning: There are known issues using useRecoilBridgeAcrossReactRoots() in recoil_mutable_source rendering mode. Please consider upgrading to recoil_sync_external_store mode.");const e=yo().current;return bo((()=>function({children:t}){return r.createElement(mo,{store_INTERNAL:e},t)}),[e])};const{loadableWithValue:_o}=k,{initializeNode:xo}=Ge,{DEFAULT_VALUE:So,getNode:Oo}=se,{copyTreeState:Co,getRecoilValueAsLoadable:Eo,invalidateDownstreams:Ao,writeLoadableToTreeState:ko}=gt;function Mo(e){return"atom"===Oo(e.key).nodeType}class Po{constructor(e,t){l(this,"_store",void 0),l(this,"_treeState",void 0),l(this,"_changes",void 0),l(this,"get",(e=>{if(this._changes.has(e.key))return this._changes.get(e.key);if(!Mo(e))throw i("Reading selectors within atomicUpdate is not supported");const t=Eo(this._store,e,this._treeState);if("hasValue"===t.state)return t.contents;throw"hasError"===t.state?t.contents:i(`Expected Recoil atom ${e.key} to have a value, but it is in a loading state.`)})),l(this,"set",((e,t)=>{if(!Mo(e))throw i("Setting selectors within atomicUpdate is not supported");if("function"===typeof t){const n=this.get(e);this._changes.set(e.key,t(n))}else xo(this._store,e.key,"set"),this._changes.set(e.key,t)})),l(this,"reset",(e=>{this.set(e,So)})),this._store=e,this._treeState=t,this._changes=new Map}newTreeState_INTERNAL(){if(0===this._changes.size)return this._treeState;const e=Co(this._treeState);for(const[t,n]of this._changes)ko(e,t,_o(n));return Ao(this._store,e),e}}var Ro=function(e){return t=>{e.replaceState((n=>{const r=new Po(e,n);return t(r),r.newTreeState_INTERNAL()}))}},To=Ro,Io=Object.freeze({__proto__:null,atomicUpdater:To});var Bo=function(e,t){if(!e)throw new Error(t)};const{atomicUpdater:jo}=Io,{batchUpdates:Do}=jt,{DEFAULT_VALUE:Lo}=se,{useStoreRef:Zo}=Qn,{refreshRecoilValue:No,setRecoilValue:Fo}=gt,{cloneSnapshot:Ho}=vn,{gotoSnapshot:Vo}=fo,{useCallback:zo}=r;class Uo{}const Go=new Uo;function Wo(e,t,n,r){let o,s=Go;var l;(Do((()=>{const a="useRecoilCallback() expects a function that returns a function: it accepts a function of the type (RecoilInterface) => (Args) => ReturnType and returns a callback function (Args) => ReturnType, where RecoilInterface is an object {snapshot, set, ...} and Args and ReturnType are the argument and return types of the callback you want to create. Please see the docs at recoiljs.org for details.";if("function"!==typeof t)throw i(a);const l=Be({...null!==r&&void 0!==r?r:{},set:(t,n)=>Fo(e,t,n),reset:t=>Fo(e,t,Lo),refresh:t=>No(e,t),gotoSnapshot:t=>Vo(e,t),transact_UNSTABLE:t=>jo(e)(t)},{snapshot:()=>{const t=Ho(e);return o=t.retain(),t}}),u=t(l);if("function"!==typeof u)throw i(a);s=u(...n)})),s instanceof Uo&&Bo(!1),a(s))?s=s.finally((()=>{var e;null===(e=o)||void 0===e||e()})):null===(l=o)||void 0===l||l();return s}var qo={recoilCallback:Wo,useRecoilCallback:function(e,t){const n=Zo();return zo(((...t)=>Wo(n.current,e,t)),null!=t?[...t,n]:void 0)}};const{useStoreRef:$o}=Qn,{refreshRecoilValue:Yo}=gt,{useCallback:Xo}=r;var Ko=function(e){const t=$o();return Xo((()=>{const n=t.current;Yo(n,e)}),[e,t])};const{atomicUpdater:Jo}=Io,{useStoreRef:Qo}=Qn,{useMemo:ei}=r;var ti=function(e,t){const n=Qo();return ei((()=>(...t)=>{Jo(n.current)((n=>{e(n)(...t)}))}),null!=t?[...t,n]:void 0)};var ni=class{constructor(e){l(this,"value",void 0),this.value=e}},ri=Object.freeze({__proto__:null,WrappedValue:ni});const{isFastRefreshEnabled:oi}=H;class ii extends Error{}var ai=class{constructor(e){var t,n,r;l(this,"_name",void 0),l(this,"_numLeafs",void 0),l(this,"_root",void 0),l(this,"_onHit",void 0),l(this,"_onSet",void 0),l(this,"_mapNodeValue",void 0),this._name=null===e||void 0===e?void 0:e.name,this._numLeafs=0,this._root=null,this._onHit=null!==(t=null===e||void 0===e?void 0:e.onHit)&&void 0!==t?t:()=>{},this._onSet=null!==(n=null===e||void 0===e?void 0:e.onSet)&&void 0!==n?n:()=>{},this._mapNodeValue=null!==(r=null===e||void 0===e?void 0:e.mapNodeValue)&&void 0!==r?r:e=>e}size(){return this._numLeafs}root(){return this._root}get(e,t){var n;return null===(n=this.getLeafNode(e,t))||void 0===n?void 0:n.value}getLeafNode(e,t){if(null==this._root)return;let n=this._root;for(;n;){if(null===t||void 0===t||t.onNodeVisit(n),"leaf"===n.type)return this._onHit(n),n;const r=this._mapNodeValue(e(n.nodeKey));n=n.branches.get(r)}}set(e,t,n){const r=()=>{var r,o,i,a;let s,l;for(const[t,h]of e){var u,c,f;const e=this._root;if("leaf"===(null===e||void 0===e?void 0:e.type))throw this.invalidCacheError();const r=s;if(s=r?r.branches.get(l):e,s=null!==(u=s)&&void 0!==u?u:{type:"branch",nodeKey:t,parent:r,branches:new Map,branchKey:l},"branch"!==s.type||s.nodeKey!==t)throw this.invalidCacheError();null===r||void 0===r||r.branches.set(l,s),null===n||void 0===n||null===(c=n.onNodeVisit)||void 0===c||c.call(n,s),l=this._mapNodeValue(h),this._root=null!==(f=this._root)&&void 0!==f?f:s}const d=s?null===(r=s)||void 0===r?void 0:r.branches.get(l):this._root;if(null!=d&&("leaf"!==d.type||d.branchKey!==l))throw this.invalidCacheError();const p={type:"leaf",value:t,parent:s,branchKey:l};null===(o=s)||void 0===o||o.branches.set(l,p),this._root=null!==(i=this._root)&&void 0!==i?i:p,this._numLeafs++,this._onSet(p),null===n||void 0===n||null===(a=n.onNodeVisit)||void 0===a||a.call(n,p)};try{r()}catch(o){if(!(o instanceof ii))throw o;this.clear(),r()}}delete(e){const t=this.root();if(!t)return!1;if(e===t)return this._root=null,this._numLeafs=0,!0;let n=e.parent,r=e.branchKey;for(;n;){var o;if(n.branches.delete(r),n===t)return 0===n.branches.size?(this._root=null,this._numLeafs=0):this._numLeafs--,!0;if(n.branches.size>0)break;r=null===(o=n)||void 0===o?void 0:o.branchKey,n=n.parent}for(;n!==t;n=n.parent)if(null==n)return!1;return this._numLeafs--,!0}clear(){this._numLeafs=0,this._root=null}invalidCacheError(){const e=oi()?"Possible Fast Refresh module reload detected. This may also be caused by an selector returning inconsistent values. Resetting cache.":"Invalid cache values. This happens when selectors do not return consistent values for the same input dependency values. That may also be caused when using Fast Refresh to change a selector implementation. Resetting cache.";throw D(e+(null!=this._name?` - ${this._name}`:"")),new ii}},si=Object.freeze({__proto__:null,TreeCache:ai});var li=class{constructor(e){var t;l(this,"_maxSize",void 0),l(this,"_size",void 0),l(this,"_head",void 0),l(this,"_tail",void 0),l(this,"_map",void 0),l(this,"_keyMapper",void 0),this._maxSize=e.maxSize,this._size=0,this._head=null,this._tail=null,this._map=new Map,this._keyMapper=null!==(t=e.mapKey)&&void 0!==t?t:e=>e}head(){return this._head}tail(){return this._tail}size(){return this._size}maxSize(){return this._maxSize}has(e){return this._map.has(this._keyMapper(e))}get(e){const t=this._keyMapper(e),n=this._map.get(t);if(n)return this.set(e,n.value),n.value}set(e,t){const n=this._keyMapper(e);this._map.get(n)&&this.delete(e);const r=this.head(),o={key:e,right:r,left:null,value:t};r?r.left=o:this._tail=o,this._map.set(n,o),this._head=o,this._size++,this._maybeDeleteLRU()}_maybeDeleteLRU(){this.size()>this.maxSize()&&this.deleteLru()}deleteLru(){const e=this.tail();e&&this.delete(e.key)}delete(e){const t=this._keyMapper(e);if(!this._size||!this._map.has(t))return;const n=s(this._map.get(t)),r=n.right,o=n.left;r&&(r.left=n.left),o&&(o.right=n.right),n===this.head()&&(this._head=r),n===this.tail()&&(this._tail=o),this._map.delete(t),this._size--}clear(){this._size=0,this._head=null,this._tail=null,this._map=new Map}},ui=Object.freeze({__proto__:null,LRUCache:li});const{LRUCache:ci}=ui,{TreeCache:fi}=si;var di=function({name:e,maxSize:t,mapNodeValue:n=(e=>e)}){const r=new ci({maxSize:t}),o=new fi({name:e,mapNodeValue:n,onHit:e=>{r.set(e,!0)},onSet:e=>{const n=r.tail();r.set(e,!0),n&&o.size()>t&&o.delete(n.key)}});return o};function pi(e,t,n){if("string"===typeof e&&!e.includes('"')&&!e.includes("\\"))return`"${e}"`;switch(typeof e){case"undefined":return"";case"boolean":return e?"true":"false";case"number":case"symbol":return String(e);case"string":return JSON.stringify(e);case"function":if(!0!==(null===t||void 0===t?void 0:t.allowFunctions))throw i("Attempt to serialize function in a Recoil cache key");return`__FUNCTION(${e.name})__`}if(null===e)return"null";var r;if("object"!==typeof e)return null!==(r=JSON.stringify(e))&&void 0!==r?r:"";if(a(e))return"__PROMISE__";if(Array.isArray(e))return`[${e.map(((e,n)=>pi(e,t,n.toString())))}]`;if("function"===typeof e.toJSON)return pi(e.toJSON(n),t,n);if(e instanceof Map){const r={};for(const[n,o]of e)r["string"===typeof n?n:pi(n,t)]=o;return pi(r,t,n)}return e instanceof Set?pi(Array.from(e).sort(((e,n)=>pi(e,t).localeCompare(pi(n,t)))),t,n):void 0!==Symbol&&null!=e[Symbol.iterator]&&"function"===typeof e[Symbol.iterator]?pi(Array.from(e),t,n):`{${Object.keys(e).filter((t=>void 0!==e[t])).sort().map((n=>`${pi(n,t)}:${pi(e[n],t,n)}`)).join(",")}}`}var hi=function(e,t={allowFunctions:!1}){return pi(e,t)};const{TreeCache:gi}=si,vi={equality:"reference",eviction:"keep-all",maxSize:1/0};var mi=function({equality:e=vi.equality,eviction:t=vi.eviction,maxSize:n=vi.maxSize}=vi,r){const o=function(e){switch(e){case"reference":return e=>e;case"value":return e=>hi(e)}throw i(`Unrecognized equality policy ${e}`)}(e);return function(e,t,n,r){switch(e){case"keep-all":return new gi({name:r,mapNodeValue:n});case"lru":return di({name:r,maxSize:s(t),mapNodeValue:n});case"most-recent":return di({name:r,maxSize:1,mapNodeValue:n})}throw i(`Unrecognized eviction policy ${e}`)}(t,n,o,r)};const{isReactNative:yi,isWindow:bi}=Nt;var wi={startPerfBlock:function(e){return()=>null}};const{isLoadable:_i,loadableWithError:xi,loadableWithPromise:Si,loadableWithValue:Oi}=k,{WrappedValue:Ci}=ri,{getNodeLoadable:Ei,peekNodeLoadable:Ai,setNodeValue:ki}=Ge,{saveDepsToStore:Mi}=we,{DEFAULT_VALUE:Pi,getConfigDeletionHandler:Ri,getNode:Ti,registerNode:Ii}=se,{isRecoilValue:Bi}=X,{markRecoilValueModified:ji}=gt,{retainedByOptionWithDefault:Di}=At,{recoilCallback:Li}=qo,{startPerfBlock:Zi}=wi;class Ni{}const Fi=new Ni,Hi=[],Vi=new Map,zi=(()=>{let e=0;return()=>e++})();function Ui(e){let t=null;const{key:n,get:r,cachePolicy_UNSTABLE:o}=e,l=null!=e.set?e.set:void 0;const u=new Set,c=mi(null!==o&&void 0!==o?o:{equality:"reference",eviction:"keep-all"},n),f=Di(e.retainedBy_UNSTABLE),d=new Map;let p=0;function h(){return!T("recoil_memory_managament_2020")||p>0}function g(e){return e.getState().knownSelectors.add(n),p++,()=>{p--}}function v(){return void 0!==Ri(n)&&!h()}function m(e,t,n,r,o){P(t,r,o),y(e,n)}function y(e,t){M(e,t)&&k(e),b(t,!0)}function b(e,n){const r=Vi.get(e);if(null!=r){for(const e of r)ji(e,s(t));n&&Vi.delete(e)}}function w(e,t){let n=Vi.get(t);null==n&&Vi.set(t,n=new Set),n.add(e)}function _(e,t,n,r,o,i){return t.then((r=>{if(!h())throw k(e),Fi;null!=i.loadingDepKey&&i.loadingDepPromise===t?n.atomValues.set(i.loadingDepKey,Oi(r)):e.getState().knownSelectors.forEach((e=>{n.atomValues.delete(e)}));const a=O(e,n);if(a&&"loading"!==a.state){if((M(e,o)||null==A(e))&&y(e,o),"hasValue"===a.state)return a.contents;throw a.contents}if(!M(e,o)){const t=E(e,n);if(null!=t)return t.loadingLoadable.contents}const[s,l]=S(e,n,o);if("loading"!==s.state&&m(e,n,o,s,l),"hasError"===s.state)throw s.contents;return s.contents})).catch((t=>{if(t instanceof Ni)throw Fi;if(!h())throw k(e),Fi;const i=xi(t);throw m(e,n,o,i,r),t}))}function x(e,t,r,o){var i,a,s,l,c,f,d;(M(e,o)||t.version===(null===(i=e.getState())||void 0===i||null===(a=i.currentTree)||void 0===a?void 0:a.version)||t.version===(null===(s=e.getState())||void 0===s||null===(l=s.nextTree)||void 0===l?void 0:l.version))&&Mi(n,r,e,null!==(c=null===(f=e.getState())||void 0===f||null===(d=f.nextTree)||void 0===d?void 0:d.version)&&void 0!==c?c:e.getState().currentTree.version);for(const n of r)u.add(n)}function S(e,o,l){const u=Zi(n);let c=!0,f=!0;const d=()=>{u(),f=!1};let p,g,v=!1;const y={loadingDepKey:null,loadingDepPromise:null},w=new Map;function S({key:t}){const n=Ei(e,o,t);switch(w.set(t,n),c||(x(e,o,new Set(w.keys()),l),function(e,t){M(e,t)&&(s(A(e)).stateVersions.clear(),b(t,!1))}(e,l)),n.state){case"hasValue":return n.contents;case"hasError":throw n.contents;case"loading":throw y.loadingDepKey=t,y.loadingDepPromise=n.contents,n.contents}throw i("Invalid Loadable state")}const O=n=>(...r)=>{if(f)throw i("Callbacks from getCallback() should only be called asynchronously after the selector is evalutated. It can be used for selectors to return objects with callbacks that can work with Recoil state without a subscription.");return null==t&&Bo(!1),Li(e,n,r,{node:t})};try{p=r({get:S,getCallback:O}),p=Bi(p)?S(p):p,_i(p)&&("hasError"===p.state&&(v=!0),p=p.contents),a(p)?p=function(e,t,n,r,o,i){return t.then((t=>{if(!h())throw k(e),Fi;const i=Oi(t);return m(e,n,o,i,r),t})).catch((t=>{if(!h())throw k(e),Fi;if(a(t))return _(e,t,n,r,o,i);const s=xi(t);throw m(e,n,o,s,r),t}))}(e,p,o,w,l,y).finally(d):d(),p=p instanceof Ci?p.value:p}catch(C){p=C,a(p)?p=_(e,p,o,w,l,y).finally(d):(v=!0,d())}return g=v?xi(p):a(p)?Si(p):Oi(p),c=!1,function(e,t,n){if(M(e,t)){const t=A(e);null!=t&&(t.depValuesDiscoveredSoFarDuringAsyncWork=n)}}(e,l,w),x(e,o,new Set(w.keys()),l),[g,w]}function O(e,t){let r=t.atomValues.get(n);if(null!=r)return r;const o=new Set;try{r=c.get((n=>("string"!==typeof n&&Bo(!1),Ei(e,t,n).contents)),{onNodeVisit:e=>{"branch"===e.type&&e.nodeKey!==n&&o.add(e.nodeKey)}})}catch(s){throw i(`Problem with cache lookup for selector "${n}": ${s.message}`)}var a;r&&(t.atomValues.set(n,r),x(e,t,o,null===(a=A(e))||void 0===a?void 0:a.executionID));return r}function C(e,t){const n=O(e,t);if(null!=n)return k(e),n;const r=E(e,t);var o;if(null!=r)return"loading"===(null===(o=r.loadingLoadable)||void 0===o?void 0:o.state)&&w(e,r.executionID),r.loadingLoadable;const i=zi(),[a,s]=S(e,t,i);return"loading"===a.state?(!function(e,t,n,r,o){d.set(e,{depValuesDiscoveredSoFarDuringAsyncWork:r,executionID:t,loadingLoadable:n,stateVersions:new Map([[o.version,!0]])})}(e,i,a,s,t),w(e,i)):(k(e),P(t,a,s)),a}function E(e,t){const n=Dt([d.has(e)?[s(d.get(e))]:[],J(Ie(d,(([t])=>t!==e)),(([,e])=>e))]);function r(n){for(const[r,o]of n)if(!Ei(e,t,r).is(o))return!0;return!1}for(const o of n){if(o.stateVersions.get(t.version)||!r(o.depValuesDiscoveredSoFarDuringAsyncWork))return o.stateVersions.set(t.version,!0),o;o.stateVersions.set(t.version,!1)}}function A(e){return d.get(e)}function k(e){d.delete(e)}function M(e,t){var n;return t===(null===(n=A(e))||void 0===n?void 0:n.executionID)}function P(e,t,r){e.atomValues.set(n,t);try{c.set(function(e){return Array.from(e.entries()).map((([e,t])=>[e,t.contents]))}(r),t)}catch(o){throw i(`Problem with setting cache for selector "${n}": ${o.message}`)}}function R(e,t){const r=t.atomValues.get(n);return null!=r?r:c.get((n=>{var r;return"string"!==typeof n&&Bo(!1),null===(r=Ai(e,t,n))||void 0===r?void 0:r.contents}))}function I(e,t){return function(e){if(Hi.includes(n)){const e=`Recoil selector has circular dependencies: ${Hi.slice(Hi.indexOf(n)).join(" \u2192 ")}`;return xi(i(e))}Hi.push(n);try{return e()}finally{Hi.pop()}}((()=>C(e,t)))}function B(e){e.atomValues.delete(n)}function j(e,n){null==t&&Bo(!1);for(const t of u){var r;const o=Ti(t);null===(r=o.clearCache)||void 0===r||r.call(o,e,n)}u.clear(),B(n),c.clear(),ji(e,t)}if(null!=l){return t=Ii({key:n,nodeType:"selector",peek:R,get:I,set:(e,t,r)=>{let o=!1;const s=new Map;function u({key:r}){if(o)throw i("Recoil: Async selector sets are not currently supported.");const a=Ei(e,t,r);if("hasValue"===a.state)return a.contents;if("loading"===a.state){const e=`Getting value of asynchronous atom or selector "${r}" in a pending state while setting selector "${n}" is not yet supported.`;throw D(e),i(e)}throw a.contents}function c(n,r){if(o){const e="Recoil: Async selector sets are not currently supported.";throw D(e),i(e)}const a="function"===typeof r?r(u(n)):r;ki(e,t,n.key,a).forEach(((e,t)=>s.set(t,e)))}const f=l({set:c,get:u,reset:function(e){c(e,Pi)}},r);if(void 0!==f)throw a(f)?i("Recoil: Async selector sets are not currently supported."):i("Recoil: selector set should be a void function.");return o=!0,s},init:g,invalidate:B,clearCache:j,shouldDeleteConfigOnRelease:v,dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1,retainedBy:f})}return t=Ii({key:n,nodeType:"selector",peek:R,get:I,init:g,invalidate:B,clearCache:j,shouldDeleteConfigOnRelease:v,dangerouslyAllowMutability:e.dangerouslyAllowMutability,shouldRestoreFromSnapshots:!1,retainedBy:f})}Ui.value=e=>new Ci(e);var Gi=Ui;const{isLoadable:Wi,loadableWithError:qi,loadableWithPromise:$i,loadableWithValue:Yi}=k,{WrappedValue:Xi}=ri,{peekNodeInfo:Ki}=Ge,{DEFAULT_VALUE:Ji,DefaultValue:Qi,getConfigDeletionHandler:ea,registerNode:ta,setConfigDeletionHandler:na}=se,{isRecoilValue:ra}=X,{getRecoilValueAsLoadable:oa,markRecoilValueModified:ia,setRecoilValue:aa,setRecoilValueLoadable:sa}=gt,{retainedByOptionWithDefault:la}=At,ua=e=>e instanceof Xi?e.value:e;function ca(e){const{key:t,persistence_UNSTABLE:n}=e,r=la(e.retainedBy_UNSTABLE);let o=0;function l(e){return $i(e.then((e=>(c=Yi(e),e))).catch((e=>{throw c=qi(e),e})))}let u,c=a(e.default)?l(e.default):Wi(e.default)?"loading"===e.default.state?l(e.default.contents):e.default:Yi(ua(e.default));d(c.contents);const f=new Map;function d(e){return e}function p(e,n){var r,o;return null!==(r=null!==(o=n.atomValues.get(t))&&void 0!==o?o:u)&&void 0!==r?r:c}const h=ta({key:t,nodeType:"atom",peek:p,get:function(e,r){if(r.atomValues.has(t))return s(r.atomValues.get(t));if(r.nonvalidatedAtoms.has(t)){if(null!=u)return u;if(null==n)return K(`Tried to restore a persisted value for atom ${t} but it has no persistence settings.`),c;const e=r.nonvalidatedAtoms.get(t),o=n.validator(e,Ji),i=o instanceof Qi?c:Yi(o);return u=i,u}return c},set:function(e,n,r){if(n.atomValues.has(t)){const e=s(n.atomValues.get(t));if("hasValue"===e.state&&r===e.contents)return new Map}else if(!n.nonvalidatedAtoms.has(t)&&r instanceof Qi)return new Map;return u=void 0,(new Map).set(t,Yi(r))},init:function(n,r,s){var l;if(o++,n.getState().knownAtoms.add(t),"loading"===c.state){const m=()=>{var e;(null!==(e=n.getState().nextTree)&&void 0!==e?e:n.getState().currentTree).atomValues.has(t)||ia(n,h)};c.contents.finally(m)}const u=null!==(l=e.effects)&&void 0!==l?l:e.effects_UNSTABLE;if(null!=u){let y=Ji,b=!0,w=!1,_=null;function x(e){if(b&&e.key===t){const e=y;return e instanceof Qi?p(n,r):a(e)?$i(e.then((e=>e instanceof Qi?c.toPromise():e))):Yi(e)}return oa(n,e)}function S(e){return x(e).toPromise()}function O(e){var r;const o=Ki(n,null!==(r=n.getState().nextTree)&&void 0!==r?r:n.getState().currentTree,e.key);return!b||e.key!==t||y instanceof Qi?o:{...o,isSet:!0,loadable:x(e)}}const C=e=>t=>{if(b){const n=x(h),r="hasValue"===n.state?n.contents:Ji;y="function"===typeof t?t(r):t,a(y)&&(y=y.then((t=>(_={effect:e,value:t},t))))}else{if(a(t))throw i("Setting atoms to async values is not implemented.");"function"!==typeof t&&(_={effect:e,value:ua(t)}),aa(n,h,"function"===typeof t?n=>{const r=ua(t(n));return _={effect:e,value:r},r}:ua(t))}},E=e=>()=>C(e)(Ji),A=e=>r=>{var o;const{release:i}=n.subscribeToTransactions((n=>{var o;let{currentTree:i,previousTree:a}=n.getState();a||(D("Transaction subscribers notified without a next tree being present -- this is a bug in Recoil"),a=i);const s=null!==(o=i.atomValues.get(t))&&void 0!==o?o:c;if("hasValue"===s.state){var l,u,f,d;const n=s.contents,o=null!==(l=a.atomValues.get(t))&&void 0!==l?l:c,p="hasValue"===o.state?o.contents:Ji;(null===(u=_)||void 0===u?void 0:u.effect)!==e||(null===(f=_)||void 0===f?void 0:f.value)!==n?r(n,p,!i.atomValues.has(t)):(null===(d=_)||void 0===d?void 0:d.effect)===e&&(_=null)}}),t);f.set(n,[...null!==(o=f.get(n))&&void 0!==o?o:[],i])};for(const k of u)try{const M=k({node:h,storeID:n.storeID,parentStoreID_UNSTABLE:n.parentStoreID,trigger:s,setSelf:C(k),resetSelf:E(k),onSet:A(k),getPromise:S,getLoadable:x,getInfo_UNSTABLE:O});var d;if(null!=M)f.set(n,[...null!==(d=f.get(n))&&void 0!==d?d:[],M])}catch(v){y=v,w=!0}if(b=!1,!(y instanceof Qi)){var g;const P=w?qi(y):a(y)?$i(function(e,n){const r=n.then((n=>{var o,i;return(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&aa(e,h,n),n})).catch((n=>{var o,i;throw(null===(i=(null!==(o=e.getState().nextTree)&&void 0!==o?o:e.getState().currentTree).atomValues.get(t))||void 0===i?void 0:i.contents)===r&&sa(e,h,qi(n)),n}));return r}(n,y)):Yi(ua(y));P.contents,r.atomValues.set(t,P),null===(g=n.getState().nextTree)||void 0===g||g.atomValues.set(t,P)}}return()=>{var e;o--,null===(e=f.get(n))||void 0===e||e.forEach((e=>e())),f.delete(n)}},invalidate:function(){u=void 0},shouldDeleteConfigOnRelease:function(){return void 0!==ea(t)&&o<=0},dangerouslyAllowMutability:e.dangerouslyAllowMutability,persistence_UNSTABLE:e.persistence_UNSTABLE?{type:e.persistence_UNSTABLE.type,backButton:e.persistence_UNSTABLE.backButton}:void 0,shouldRestoreFromSnapshots:!0,retainedBy:r});return h}function fa(e){const{...t}=e,n="default"in e?e.default:new Promise((()=>{}));return ra(n)?function(e){const t=fa({...e,default:Ji,persistence_UNSTABLE:void 0===e.persistence_UNSTABLE?void 0:{...e.persistence_UNSTABLE,validator:t=>t instanceof Qi?t:s(e.persistence_UNSTABLE).validator(t,Ji)},effects:e.effects,effects_UNSTABLE:e.effects_UNSTABLE}),n=Gi({key:`${e.key}__withFallback`,get:({get:n})=>{const r=n(t);return r instanceof Qi?e.default:r},set:({set:e},n)=>e(t,n),cachePolicy_UNSTABLE:{eviction:"most-recent"},dangerouslyAllowMutability:e.dangerouslyAllowMutability});return na(n.key,ea(e.key)),n}({...t,default:n}):ca({...t,default:n})}fa.value=e=>new Xi(e);var da=fa;var pa=class{constructor(e){var t;l(this,"_map",void 0),l(this,"_keyMapper",void 0),this._map=new Map,this._keyMapper=null!==(t=null===e||void 0===e?void 0:e.mapKey)&&void 0!==t?t:e=>e}size(){return this._map.size}has(e){return this._map.has(this._keyMapper(e))}get(e){return this._map.get(this._keyMapper(e))}set(e,t){this._map.set(this._keyMapper(e),t)}delete(e){this._map.delete(this._keyMapper(e))}clear(){this._map.clear()}},ha=Object.freeze({__proto__:null,MapCache:pa});const{LRUCache:ga}=ui,{MapCache:va}=ha,ma={equality:"reference",eviction:"none",maxSize:1/0};var ya=function({equality:e=ma.equality,eviction:t=ma.eviction,maxSize:n=ma.maxSize}=ma){const r=function(e){switch(e){case"reference":return e=>e;case"value":return e=>hi(e)}throw i(`Unrecognized equality policy ${e}`)}(e);return function(e,t,n){switch(e){case"keep-all":return new va({mapKey:n});case"lru":return new ga({mapKey:n,maxSize:s(t)});case"most-recent":return new ga({mapKey:n,maxSize:1})}throw i(`Unrecognized eviction policy ${e}`)}(t,n,r)};const{setConfigDeletionHandler:ba}=se;var wa=function(e){var t,n;const r=ya({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return t=>{var n,o;const i=r.get(t);if(null!=i)return i;const{cachePolicyForParams_UNSTABLE:a,...s}=e,l="default"in e?e.default:new Promise((()=>{})),u=da({...s,key:`${e.key}__${null!==(n=hi(t))&&void 0!==n?n:"void"}`,default:"function"===typeof l?l(t):l,retainedBy_UNSTABLE:"function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE,effects:"function"===typeof e.effects?e.effects(t):"function"===typeof e.effects_UNSTABLE?e.effects_UNSTABLE(t):null!==(o=e.effects)&&void 0!==o?o:e.effects_UNSTABLE});return r.set(t,u),ba(u.key,(()=>{r.delete(t)})),u}};const{setConfigDeletionHandler:_a}=se;let xa=0;var Sa=function(e){var t,n;const r=ya({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return t=>{var n;let o;try{o=r.get(t)}catch(f){throw i(`Problem with cache lookup for selector ${e.key}: ${f.message}`)}if(null!=o)return o;const a=`${e.key}__selectorFamily/${null!==(n=hi(t,{allowFunctions:!0}))&&void 0!==n?n:"void"}/${xa++}`,s=n=>e.get(t)(n),l=e.cachePolicy_UNSTABLE,u="function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE;let c;if(null!=e.set){const n=e.set;c=Gi({key:a,get:s,set:(e,r)=>n(t)(e,r),cachePolicy_UNSTABLE:l,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:u})}else c=Gi({key:a,get:s,cachePolicy_UNSTABLE:l,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:u});return r.set(t,c),_a(c.key,(()=>{r.delete(t)})),c}};const Oa=Sa({key:"__constant",get:e=>()=>e,cachePolicyForParams_UNSTABLE:{equality:"reference"}});var Ca=function(e){return Oa(e)};const Ea=Sa({key:"__error",get:e=>()=>{throw i(e)},cachePolicyForParams_UNSTABLE:{equality:"reference"}});var Aa=function(e){return Ea(e)};var ka=function(e){return e};const{loadableWithError:Ma,loadableWithPromise:Pa,loadableWithValue:Ra}=k;function Ta(e,t){const n=Array(t.length).fill(void 0),r=Array(t.length).fill(void 0);for(const[i,a]of t.entries())try{n[i]=e(a)}catch(o){r[i]=o}return[n,r]}function Ia(e){return null!=e&&!a(e)}function Ba(e){return Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((t=>e[t]))}function ja(e,t){return Array.isArray(e)?t:Object.getOwnPropertyNames(e).reduce(((e,n,r)=>({...e,[n]:t[r]})),{})}function Da(e,t,n){return ja(e,n.map(((e,n)=>null==e?Ra(t[n]):a(e)?Pa(e):Ma(e))))}var La={waitForNone:Sa({key:"__waitForNone",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);return Da(e,r,o)},dangerouslyAllowMutability:!0}),waitForAny:Sa({key:"__waitForAny",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);return o.some((e=>!a(e)))?Da(e,r,o):new Promise((t=>{for(const[n,i]of o.entries())a(i)&&i.then((i=>{r[n]=i,o[n]=void 0,t(Da(e,r,o))})).catch((i=>{o[n]=i,t(Da(e,r,o))}))}))},dangerouslyAllowMutability:!0}),waitForAll:Sa({key:"__waitForAll",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);if(o.every((e=>null==e)))return ja(e,r);const i=o.find(Ia);if(null!=i)throw i;return Promise.all(o).then((t=>{return ja(e,(n=r,t.map(((e,t)=>void 0===e?n[t]:e))));var n}))},dangerouslyAllowMutability:!0}),waitForAllSettled:Sa({key:"__waitForAllSettled",get:e=>({get:t})=>{const n=Ba(e),[r,o]=Ta(t,n);return o.every((e=>!a(e)))?Da(e,r,o):Promise.all(o.map(((e,t)=>a(e)?e.then((e=>{r[t]=e,o[t]=void 0})).catch((e=>{r[t]=void 0,o[t]=e})):null))).then((()=>Da(e,r,o)))},dangerouslyAllowMutability:!0}),noWait:Sa({key:"__noWait",get:e=>({get:t})=>{try{return Gi.value(Ra(t(e)))}catch(n){return Gi.value(a(n)?Pa(n):Ma(n))}},dangerouslyAllowMutability:!0})};const{RecoilLoadable:Za}=k,{DefaultValue:Na}=se,{RecoilRoot:Fa,useRecoilStoreID:Ha}=Qn,{isRecoilValue:Va}=X,{retentionZone:za}=Re,{freshSnapshot:Ua}=vn,{useRecoilState:Ga,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:Wa,useRecoilStateLoadable:qa,useRecoilValue:$a,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:Ya,useRecoilValueLoadable:Xa,useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Ka,useResetRecoilState:Ja,useSetRecoilState:Qa}=Ur,{useGotoRecoilSnapshot:es,useRecoilSnapshot:ts,useRecoilTransactionObserver:ns}=fo,{useRecoilCallback:rs}=qo,{noWait:os,waitForAll:is,waitForAllSettled:as,waitForAny:ss,waitForNone:ls}=La;var us={DefaultValue:Na,isRecoilValue:Va,RecoilLoadable:Za,RecoilEnv:P,RecoilRoot:Fa,useRecoilStoreID:Ha,useRecoilBridgeAcrossReactRoots_UNSTABLE:wo,atom:da,selector:Gi,atomFamily:wa,selectorFamily:Sa,constSelector:Ca,errorSelector:Aa,readOnlySelector:ka,noWait:os,waitForNone:ls,waitForAny:ss,waitForAll:is,waitForAllSettled:as,useRecoilValue:$a,useRecoilValueLoadable:Xa,useRecoilState:Ga,useRecoilStateLoadable:qa,useSetRecoilState:Qa,useResetRecoilState:Ja,useGetRecoilValueInfo_UNSTABLE:go,useRecoilRefresher_UNSTABLE:Ko,useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Ka,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:Ya,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:Wa,useRecoilCallback:rs,useRecoilTransaction_UNSTABLE:ti,useGotoRecoilSnapshot:es,useRecoilSnapshot:ts,useRecoilTransactionObserver_UNSTABLE:ns,snapshot_UNSTABLE:Ua,useRetain:fr,retentionZone:za},cs=us.RecoilRoot,fs=us.atom,ds=us.selector,ps=us.atomFamily,hs=us.selectorFamily,gs=us.useRecoilValue,vs=us.useRecoilValueLoadable,ms=us.useRecoilState,ys=us.useSetRecoilState,bs=us.useResetRecoilState,ws=us.useRecoilRefresher_UNSTABLE,_s=us.useRecoilCallback},60053:function(e,t){"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<i(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,a=o>>>1;r<a;){var s=2*(r+1)-1,l=e[s],u=s+1,c=e[u];if(0>i(l,n))u<o&&0>i(c,l)?(e[r]=c,e[u]=n,r=u):(e[r]=l,e[s]=n,r=s);else{if(!(u<o&&0>i(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var u=[],c=[],f=1,d=null,p=3,h=!1,g=!1,v=!1,m="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)o(c);else{if(!(t.startTime<=e))break;o(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function _(e){if(v=!1,w(e),!g)if(null!==r(u))g=!0,I(x);else{var t=r(c);null!==t&&B(_,t.startTime-e)}}function x(e,n){g=!1,v&&(v=!1,y(E),E=-1),h=!0;var i=p;try{for(w(n),d=r(u);null!==d&&(!(d.expirationTime>n)||e&&!M());){var a=d.callback;if("function"===typeof a){d.callback=null,p=d.priorityLevel;var s=a(d.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?d.callback=s:d===r(u)&&o(u),w(n)}else o(u);d=r(u)}if(null!==d)var l=!0;else{var f=r(c);null!==f&&B(_,f.startTime-n),l=!1}return l}finally{d=null,p=i,h=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,O=!1,C=null,E=-1,A=5,k=-1;function M(){return!(t.unstable_now()-k<A)}function P(){if(null!==C){var e=t.unstable_now();k=e;var n=!0;try{n=C(!0,e)}finally{n?S():(O=!1,C=null)}}else O=!1}if("function"===typeof b)S=function(){b(P)};else if("undefined"!==typeof MessageChannel){var R=new MessageChannel,T=R.port2;R.port1.onmessage=P,S=function(){T.postMessage(null)}}else S=function(){m(P,0)};function I(e){C=e,O||(O=!0,S())}function B(e,n){E=m((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||h||(g=!0,I(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,o,i){var a=t.unstable_now();switch("object"===typeof i&&null!==i?i="number"===typeof(i=i.delay)&&0<i?a+i:a:i=a,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:f++,callback:o,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>a?(e.sortIndex=i,n(c,e),null===r(u)&&e===r(c)&&(v?(y(E),E=-1):v=!0,B(_,i-a))):(e.sortIndex=s,n(u,e),g||h||(g=!0,I(x))),e},t.unstable_shouldYield=M,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},63840:function(e,t,n){"use strict";e.exports=n(60053)},96774:function(e){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<i.length;l++){var u=i[l];if(!s(u))return!1;var c=e[u],f=t[u];if(!1===(o=n?n.call(r,c,f,u):void 0)||void 0===o&&c!==f)return!1}return!0}},37478:function(e,t,n){"use strict";var r=n(45388),o=n(21924),i=n(27470),a=r("%TypeError%"),s=r("%WeakMap%",!0),l=r("%Map%",!0),u=o("WeakMap.prototype.get",!0),c=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),d=o("Map.prototype.get",!0),p=o("Map.prototype.set",!0),h=o("Map.prototype.has",!0),g=function(e,t){for(var n,r=e;null!==(n=r.next);r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,r={assert:function(e){if(!r.has(e))throw new a("Side channel does not contain "+i(e))},get:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return u(e,r)}else if(l){if(t)return d(t,r)}else if(n)return function(e,t){var n=g(e,t);return n&&n.value}(n,r)},has:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return f(e,r)}else if(l){if(t)return h(t,r)}else if(n)return function(e,t){return!!g(e,t)}(n,r);return!1},set:function(r,o){s&&r&&("object"===typeof r||"function"===typeof r)?(e||(e=new s),c(e,r,o)):l?(t||(t=new l),p(t,r,o)):(n||(n={key:{},next:null}),function(e,t,n){var r=g(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}}(n,r,o))}};return r}},45388:function(e,t,n){"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(t){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(P){l=null}var u=function(){throw new a},c=l?function(){try{return u}catch(e){try{return l(arguments,"callee").get}catch(t){return u}}}():u,f=n(41405)(),d=n(28185)(),p=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),h={},g="undefined"!==typeof Uint8Array&&p?p(Uint8Array):r,v={"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f&&p?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":h,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f&&p?p(p([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&f&&p?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&f&&p?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f&&p?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":c,"%TypedArray%":g,"%TypeError%":a,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(p)try{null.error}catch(P){var m=p(p(P));v["%Error.prototype%"]=m}var y=function e(t){var n;if("%AsyncFunction%"===t)n=s("async function () {}");else if("%GeneratorFunction%"===t)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=s("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&p&&(n=p(o.prototype))}return v[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(58612),_=n(17642),x=w.call(Function.call,Array.prototype.concat),S=w.call(Function.apply,Array.prototype.splice),O=w.call(Function.call,String.prototype.replace),C=w.call(Function.call,String.prototype.slice),E=w.call(Function.call,RegExp.prototype.exec),A=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,k=/\\(\\)?/g,M=function(e,t){var n,r=e;if(_(b,r)&&(r="%"+(n=b[r])[0]+"%"),_(v,r)){var i=v[r];if(i===h&&(i=y(r)),"undefined"===typeof i&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new a('"allowMissing" argument must be a boolean');if(null===E(/^%?[^%]*%?$/,e))throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=C(e,0,1),n=C(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return O(e,A,(function(e,t,n,o){r[r.length]=n?O(o,k,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",i=M("%"+r+"%",t),s=i.name,u=i.value,c=!1,f=i.alias;f&&(r=f[0],S(n,x([0,1],f)));for(var d=1,p=!0;d<n.length;d+=1){var h=n[d],g=C(h,0,1),m=C(h,-1);if(('"'===g||"'"===g||"`"===g||'"'===m||"'"===m||"`"===m)&&g!==m)throw new o("property names with quotes must have matching quotes");if("constructor"!==h&&p||(c=!0),_(v,s="%"+(r+="."+h)+"%"))u=v[s];else if(null!=u){if(!(h in u)){if(!t)throw new a("base intrinsic for "+e+" exists, but the property is not available.");return}if(l&&d+1>=n.length){var y=l(u,h);u=(p=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:u[h]}else p=_(u,h),u=u[h];p&&!c&&(v[s]=u)}}return u}},27470:function(e,t,n){var r="function"===typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=r&&o&&"function"===typeof o.get?o.get:null,a=r&&Map.prototype.forEach,s="function"===typeof Set&&Set.prototype,l=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,u=s&&l&&"function"===typeof l.get?l.get:null,c=s&&Set.prototype.forEach,f="function"===typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,d="function"===typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,p="function"===typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,h=Boolean.prototype.valueOf,g=Object.prototype.toString,v=Function.prototype.toString,m=String.prototype.match,y=String.prototype.slice,b=String.prototype.replace,w=String.prototype.toUpperCase,_=String.prototype.toLowerCase,x=RegExp.prototype.test,S=Array.prototype.concat,O=Array.prototype.join,C=Array.prototype.slice,E=Math.floor,A="function"===typeof BigInt?BigInt.prototype.valueOf:null,k=Object.getOwnPropertySymbols,M="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?Symbol.prototype.toString:null,P="function"===typeof Symbol&&"object"===typeof Symbol.iterator,R="function"===typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===P||"symbol")?Symbol.toStringTag:null,T=Object.prototype.propertyIsEnumerable,I=("function"===typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(e){return e.__proto__}:null);function B(e,t){if(e===1/0||e===-1/0||e!==e||e&&e>-1e3&&e<1e3||x.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var r=e<0?-E(-e):E(e);if(r!==e){var o=String(r),i=y.call(t,o.length+1);return b.call(o,n,"$&_")+"."+b.call(b.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return b.call(t,n,"$&_")}var j=n(47165),D=j.custom,L=V(D)?D:null;function Z(e,t,n){var r="double"===(n.quoteStyle||t)?'"':"'";return r+e+r}function N(e){return b.call(String(e),/"/g,"&quot;")}function F(e){return"[object Array]"===G(e)&&(!R||!("object"===typeof e&&R in e))}function H(e){return"[object RegExp]"===G(e)&&(!R||!("object"===typeof e&&R in e))}function V(e){if(P)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!M)return!1;try{return M.call(e),!0}catch(t){}return!1}e.exports=function e(t,n,r,o){var s=n||{};if(U(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(U(s,"maxStringLength")&&("number"===typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var l=!U(s,"customInspect")||s.customInspect;if("boolean"!==typeof l&&"symbol"!==l)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(U(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(U(s,"numericSeparator")&&"boolean"!==typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var g=s.numericSeparator;if("undefined"===typeof t)return"undefined";if(null===t)return"null";if("boolean"===typeof t)return t?"true":"false";if("string"===typeof t)return q(t,s);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var w=String(t);return g?B(t,w):w}if("bigint"===typeof t){var x=String(t)+"n";return g?B(t,x):x}var E="undefined"===typeof s.depth?5:s.depth;if("undefined"===typeof r&&(r=0),r>=E&&E>0&&"object"===typeof t)return F(t)?"[Array]":"[Object]";var k=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=O.call(Array(e.indent+1)," ")}return{base:n,prev:O.call(Array(t+1),n)}}(s,r);if("undefined"===typeof o)o=[];else if(W(o,t)>=0)return"[Circular]";function D(t,n,i){if(n&&(o=C.call(o)).push(n),i){var a={depth:s.depth};return U(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),e(t,a,r+1,o)}return e(t,s,r+1,o)}if("function"===typeof t&&!H(t)){var z=function(e){if(e.name)return e.name;var t=m.call(v.call(e),/^function\s*([\w$]+)/);if(t)return t[1];return null}(t),$=Q(t,D);return"[Function"+(z?": "+z:" (anonymous)")+"]"+($.length>0?" { "+O.call($,", ")+" }":"")}if(V(t)){var ee=P?b.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):M.call(t);return"object"!==typeof t||P?ee:Y(ee)}if(function(e){if(!e||"object"!==typeof e)return!1;if("undefined"!==typeof HTMLElement&&e instanceof HTMLElement)return!0;return"string"===typeof e.nodeName&&"function"===typeof e.getAttribute}(t)){for(var te="<"+_.call(String(t.nodeName)),ne=t.attributes||[],re=0;re<ne.length;re++)te+=" "+ne[re].name+"="+Z(N(ne[re].value),"double",s);return te+=">",t.childNodes&&t.childNodes.length&&(te+="..."),te+="</"+_.call(String(t.nodeName))+">"}if(F(t)){if(0===t.length)return"[]";var oe=Q(t,D);return k&&!function(e){for(var t=0;t<e.length;t++)if(W(e[t],"\n")>=0)return!1;return!0}(oe)?"["+J(oe,k)+"]":"[ "+O.call(oe,", ")+" ]"}if(function(e){return"[object Error]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t)){var ie=Q(t,D);return"cause"in Error.prototype||!("cause"in t)||T.call(t,"cause")?0===ie.length?"["+String(t)+"]":"{ ["+String(t)+"] "+O.call(ie,", ")+" }":"{ ["+String(t)+"] "+O.call(S.call("[cause]: "+D(t.cause),ie),", ")+" }"}if("object"===typeof t&&l){if(L&&"function"===typeof t[L]&&j)return j(t,{depth:E-r});if("symbol"!==l&&"function"===typeof t.inspect)return t.inspect()}if(function(e){if(!i||!e||"object"!==typeof e)return!1;try{i.call(e);try{u.call(e)}catch(te){return!0}return e instanceof Map}catch(t){}return!1}(t)){var ae=[];return a&&a.call(t,(function(e,n){ae.push(D(n,t,!0)+" => "+D(e,t))})),K("Map",i.call(t),ae,k)}if(function(e){if(!u||!e||"object"!==typeof e)return!1;try{u.call(e);try{i.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}(t)){var se=[];return c&&c.call(t,(function(e){se.push(D(e,t))})),K("Set",u.call(t),se,k)}if(function(e){if(!f||!e||"object"!==typeof e)return!1;try{f.call(e,f);try{d.call(e,d)}catch(te){return!0}return e instanceof WeakMap}catch(t){}return!1}(t))return X("WeakMap");if(function(e){if(!d||!e||"object"!==typeof e)return!1;try{d.call(e,d);try{f.call(e,f)}catch(te){return!0}return e instanceof WeakSet}catch(t){}return!1}(t))return X("WeakSet");if(function(e){if(!p||!e||"object"!==typeof e)return!1;try{return p.call(e),!0}catch(t){}return!1}(t))return X("WeakRef");if(function(e){return"[object Number]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t))return Y(D(Number(t)));if(function(e){if(!e||"object"!==typeof e||!A)return!1;try{return A.call(e),!0}catch(t){}return!1}(t))return Y(D(A.call(t)));if(function(e){return"[object Boolean]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t))return Y(h.call(t));if(function(e){return"[object String]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t))return Y(D(String(t)));if(!function(e){return"[object Date]"===G(e)&&(!R||!("object"===typeof e&&R in e))}(t)&&!H(t)){var le=Q(t,D),ue=I?I(t)===Object.prototype:t instanceof Object||t.constructor===Object,ce=t instanceof Object?"":"null prototype",fe=!ue&&R&&Object(t)===t&&R in t?y.call(G(t),8,-1):ce?"Object":"",de=(ue||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(fe||ce?"["+O.call(S.call([],fe||[],ce||[]),": ")+"] ":"");return 0===le.length?de+"{}":k?de+"{"+J(le,k)+"}":de+"{ "+O.call(le,", ")+" }"}return String(t)};var z=Object.prototype.hasOwnProperty||function(e){return e in this};function U(e,t){return z.call(e,t)}function G(e){return g.call(e)}function W(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function q(e,t){if(e.length>t.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return q(y.call(e,0,t.maxStringLength),t)+r}return Z(b.call(b.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,$),"single",t)}function $(e){var t=e.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[t];return n?"\\"+n:"\\x"+(t<16?"0":"")+w.call(t.toString(16))}function Y(e){return"Object("+e+")"}function X(e){return e+" { ? }"}function K(e,t,n,r){return e+" ("+t+") {"+(r?J(n,r):O.call(n,", "))+"}"}function J(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+O.call(e,","+n)+"\n"+t.prev}function Q(e,t){var n=F(e),r=[];if(n){r.length=e.length;for(var o=0;o<e.length;o++)r[o]=U(e,o)?t(e[o],e):""}var i,a="function"===typeof k?k(e):[];if(P){i={};for(var s=0;s<a.length;s++)i["$"+a[s]]=a[s]}for(var l in e)U(e,l)&&(n&&String(Number(l))===l&&l<e.length||P&&i["$"+l]instanceof Symbol||(x.call(/[^\w$]/,l)?r.push(t(l,e)+": "+t(e[l],e)):r.push(l+": "+t(e[l],e))));if("function"===typeof k)for(var u=0;u<a.length;u++)T.call(e,a[u])&&r.push("["+t(a[u])+"]: "+t(e[a[u]],e));return r}},80500:function(e){"use strict";e.exports=(e,t)=>{if("string"!==typeof e||"string"!==typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},70610:function(e){"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},60677:function(e,t,n){"use strict";n.r(t),n.d(t,{ServerStyleSheet:function(){return He},StyleSheetConsumer:function(){return ie},StyleSheetContext:function(){return oe},StyleSheetManager:function(){return fe},ThemeConsumer:function(){return Ie},ThemeContext:function(){return Te},ThemeProvider:function(){return Be},__PRIVATE__:function(){return Ue},createGlobalStyle:function(){return Ne},css:function(){return _e},default:function(){return Ge},isStyledComponent:function(){return _},keyframes:function(){return Fe},useTheme:function(){return ze},version:function(){return S},withTheme:function(){return Ve}});var r=n(59864),o=n(67294),i=n(96774),a=n.n(i);var s=function(e){function t(e,r,l,u,d){for(var p,h,g,v,w,x=0,S=0,O=0,C=0,E=0,T=0,B=g=p=0,D=0,L=0,Z=0,N=0,F=l.length,H=F-1,V="",z="",U="",G="";D<F;){if(h=l.charCodeAt(D),D===H&&0!==S+C+O+x&&(0!==S&&(h=47===S?10:47),C=O=x=0,F++,H++),0===S+C+O+x){if(D===H&&(0<L&&(V=V.replace(f,"")),0<V.trim().length)){switch(h){case 32:case 9:case 59:case 13:case 10:break;default:V+=l.charAt(D)}h=59}switch(h){case 123:for(p=(V=V.trim()).charCodeAt(0),g=1,N=++D;D<F;){switch(h=l.charCodeAt(D)){case 123:g++;break;case 125:g--;break;case 47:switch(h=l.charCodeAt(D+1)){case 42:case 47:e:{for(B=D+1;B<H;++B)switch(l.charCodeAt(B)){case 47:if(42===h&&42===l.charCodeAt(B-1)&&D+2!==B){D=B+1;break e}break;case 10:if(47===h){D=B+1;break e}}D=B}}break;case 91:h++;case 40:h++;case 34:case 39:for(;D++<H&&l.charCodeAt(D)!==h;);}if(0===g)break;D++}if(g=l.substring(N,D),0===p&&(p=(V=V.replace(c,"").trim()).charCodeAt(0)),64===p){switch(0<L&&(V=V.replace(f,"")),h=V.charCodeAt(1)){case 100:case 109:case 115:case 45:L=r;break;default:L=R}if(N=(g=t(r,L,g,h,d+1)).length,0<I&&(w=s(3,g,L=n(R,V,Z),r,k,A,N,h,d,u),V=L.join(""),void 0!==w&&0===(N=(g=w.trim()).length)&&(h=0,g="")),0<N)switch(h){case 115:V=V.replace(_,a);case 100:case 109:case 45:g=V+"{"+g+"}";break;case 107:g=(V=V.replace(m,"$1 $2"))+"{"+g+"}",g=1===P||2===P&&i("@"+g,3)?"@-webkit-"+g+"@"+g:"@"+g;break;default:g=V+g,112===u&&(z+=g,g="")}else g=""}else g=t(r,n(r,V,Z),g,u,d+1);U+=g,g=Z=L=B=p=0,V="",h=l.charCodeAt(++D);break;case 125:case 59:if(1<(N=(V=(0<L?V.replace(f,""):V).trim()).length))switch(0===B&&(p=V.charCodeAt(0),45===p||96<p&&123>p)&&(N=(V=V.replace(" ",":")).length),0<I&&void 0!==(w=s(1,V,r,e,k,A,z.length,u,d,u))&&0===(N=(V=w.trim()).length)&&(V="\0\0"),p=V.charCodeAt(0),h=V.charCodeAt(1),p){case 0:break;case 64:if(105===h||99===h){G+=V+l.charAt(D);break}default:58!==V.charCodeAt(N-1)&&(z+=o(V,p,h,V.charCodeAt(2)))}Z=L=B=p=0,V="",h=l.charCodeAt(++D)}}switch(h){case 13:case 10:47===S?S=0:0===1+p&&107!==u&&0<V.length&&(L=1,V+="\0"),0<I*j&&s(0,V,r,e,k,A,z.length,u,d,u),A=1,k++;break;case 59:case 125:if(0===S+C+O+x){A++;break}default:switch(A++,v=l.charAt(D),h){case 9:case 32:if(0===C+x+S)switch(E){case 44:case 58:case 9:case 32:v="";break;default:32!==h&&(v=" ")}break;case 0:v="\\0";break;case 12:v="\\f";break;case 11:v="\\v";break;case 38:0===C+S+x&&(L=Z=1,v="\f"+v);break;case 108:if(0===C+S+x+M&&0<B)switch(D-B){case 2:112===E&&58===l.charCodeAt(D-3)&&(M=E);case 8:111===T&&(M=T)}break;case 58:0===C+S+x&&(B=D);break;case 44:0===S+O+C+x&&(L=1,v+="\r");break;case 34:case 39:0===S&&(C=C===h?0:0===C?h:C);break;case 91:0===C+S+O&&x++;break;case 93:0===C+S+O&&x--;break;case 41:0===C+S+x&&O--;break;case 40:if(0===C+S+x){if(0===p)if(2*E+3*T===533);else p=1;O++}break;case 64:0===S+O+C+x+B+g&&(g=1);break;case 42:case 47:if(!(0<C+x+O))switch(S){case 0:switch(2*h+3*l.charCodeAt(D+1)){case 235:S=47;break;case 220:N=D,S=42}break;case 42:47===h&&42===E&&N+2!==D&&(33===l.charCodeAt(N+2)&&(z+=l.substring(N,D+1)),v="",S=0)}}0===S&&(V+=v)}T=E,E=h,D++}if(0<(N=z.length)){if(L=r,0<I&&(void 0!==(w=s(2,z,L,e,k,A,N,u,d,u))&&0===(z=w).length))return G+z+U;if(z=L.join(",")+"{"+z+"}",0!==P*M){switch(2!==P||i(z,2)||(M=0),M){case 111:z=z.replace(b,":-moz-$1")+z;break;case 112:z=z.replace(y,"::-webkit-input-$1")+z.replace(y,"::-moz-$1")+z.replace(y,":-ms-input-$1")+z}M=0}}return G+z+U}function n(e,t,n){var o=t.trim().split(g);t=o;var i=o.length,a=e.length;switch(a){case 0:case 1:var s=0;for(e=0===a?"":e[0]+" ";s<i;++s)t[s]=r(e,t[s],n).trim();break;default:var l=s=0;for(t=[];s<i;++s)for(var u=0;u<a;++u)t[l++]=r(e[u]+" ",o[s],n).trim()}return t}function r(e,t,n){var r=t.charCodeAt(0);switch(33>r&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(v,"$1"+e.trim());case 58:return e.trim()+t.replace(v,"$1"+e.trim());default:if(0<1*n&&0<t.indexOf("\f"))return t.replace(v,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function o(e,t,n,r){var a=e+";",s=2*t+3*n+4*r;if(944===s){e=a.indexOf(":",9)+1;var l=a.substring(e,a.length-1).trim();return l=a.substring(0,e).trim()+l+";",1===P||2===P&&i(l,1)?"-webkit-"+l+l:l}if(0===P||2===P&&!i(a,1))return a;switch(s){case 1015:return 97===a.charCodeAt(10)?"-webkit-"+a+a:a;case 951:return 116===a.charCodeAt(3)?"-webkit-"+a+a:a;case 963:return 110===a.charCodeAt(5)?"-webkit-"+a+a:a;case 1009:if(100!==a.charCodeAt(4))break;case 969:case 942:return"-webkit-"+a+a;case 978:return"-webkit-"+a+"-moz-"+a+a;case 1019:case 983:return"-webkit-"+a+"-moz-"+a+"-ms-"+a+a;case 883:if(45===a.charCodeAt(8))return"-webkit-"+a+a;if(0<a.indexOf("image-set(",11))return a.replace(E,"$1-webkit-$2")+a;break;case 932:if(45===a.charCodeAt(4))switch(a.charCodeAt(5)){case 103:return"-webkit-box-"+a.replace("-grow","")+"-webkit-"+a+"-ms-"+a.replace("grow","positive")+a;case 115:return"-webkit-"+a+"-ms-"+a.replace("shrink","negative")+a;case 98:return"-webkit-"+a+"-ms-"+a.replace("basis","preferred-size")+a}return"-webkit-"+a+"-ms-"+a+a;case 964:return"-webkit-"+a+"-ms-flex-"+a+a;case 1023:if(99!==a.charCodeAt(8))break;return"-webkit-box-pack"+(l=a.substring(a.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+a+"-ms-flex-pack"+l+a;case 1005:return p.test(a)?a.replace(d,":-webkit-")+a.replace(d,":-moz-")+a:a;case 1e3:switch(t=(l=a.substring(13).trim()).indexOf("-")+1,l.charCodeAt(0)+l.charCodeAt(t)){case 226:l=a.replace(w,"tb");break;case 232:l=a.replace(w,"tb-rl");break;case 220:l=a.replace(w,"lr");break;default:return a}return"-webkit-"+a+"-ms-"+l+a;case 1017:if(-1===a.indexOf("sticky",9))break;case 975:switch(t=(a=e).length-10,s=(l=(33===a.charCodeAt(t)?a.substring(0,t):a).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|l.charCodeAt(7))){case 203:if(111>l.charCodeAt(8))break;case 115:a=a.replace(l,"-webkit-"+l)+";"+a;break;case 207:case 102:a=a.replace(l,"-webkit-"+(102<s?"inline-":"")+"box")+";"+a.replace(l,"-webkit-"+l)+";"+a.replace(l,"-ms-"+l+"box")+";"+a}return a+";";case 938:if(45===a.charCodeAt(5))switch(a.charCodeAt(6)){case 105:return l=a.replace("-items",""),"-webkit-"+a+"-webkit-box-"+l+"-ms-flex-"+l+a;case 115:return"-webkit-"+a+"-ms-flex-item-"+a.replace(S,"")+a;default:return"-webkit-"+a+"-ms-flex-line-pack"+a.replace("align-content","").replace(S,"")+a}break;case 973:case 989:if(45!==a.charCodeAt(3)||122===a.charCodeAt(4))break;case 931:case 953:if(!0===C.test(e))return 115===(l=e.substring(e.indexOf(":")+1)).charCodeAt(0)?o(e.replace("stretch","fill-available"),t,n,r).replace(":fill-available",":stretch"):a.replace(l,"-webkit-"+l)+a.replace(l,"-moz-"+l.replace("fill-",""))+a;break;case 962:if(a="-webkit-"+a+(102===a.charCodeAt(5)?"-ms-"+a:"")+a,211===n+r&&105===a.charCodeAt(13)&&0<a.indexOf("transform",10))return a.substring(0,a.indexOf(";",27)+1).replace(h,"$1-webkit-$2")+a}return a}function i(e,t){var n=e.indexOf(1===t?":":"{"),r=e.substring(0,3!==t?n:10);return n=e.substring(n+1,e.length-1),B(2!==t?r:r.replace(O,"$1"),n,t)}function a(e,t){var n=o(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(x," or ($1)").substring(4):"("+t+")"}function s(e,t,n,r,o,i,a,s,l,c){for(var f,d=0,p=t;d<I;++d)switch(f=T[d].call(u,e,p,n,r,o,i,a,s,l,c)){case void 0:case!1:case!0:case null:break;default:p=f}if(p!==t)return p}function l(e){return void 0!==(e=e.prefix)&&(B=null,e?"function"!==typeof e?P=1:(P=2,B=e):P=0),l}function u(e,n){var r=e;if(33>r.charCodeAt(0)&&(r=r.trim()),r=[r],0<I){var o=s(-1,n,r,r,k,A,0,0,0,0);void 0!==o&&"string"===typeof o&&(n=o)}var i=t(R,r,n,0,0);return 0<I&&(void 0!==(o=s(-2,i,r,r,k,A,i.length,0,0,0))&&(i=o)),"",M=0,A=k=1,i}var c=/^\0+/g,f=/[\0\r\f]/g,d=/: */g,p=/zoo|gra/,h=/([,: ])(transform)/g,g=/,\r+?/g,v=/([\t\r\n ])*\f?&/g,m=/@(k\w+)\s*(\S*)\s*/,y=/::(place)/g,b=/:(read-only)/g,w=/[svh]\w+-[tblr]{2}/,_=/\(\s*(.*)\s*\)/g,x=/([\s\S]*?);/g,S=/-self|flex-/g,O=/[^]*?(:[rp][el]a[\w-]+)[^]*/,C=/stretch|:\s*\w+\-(?:conte|avail)/,E=/([^-])(image-set\()/,A=1,k=1,M=0,P=1,R=[],T=[],I=0,B=null,j=0;return u.use=function e(t){switch(t){case void 0:case null:I=T.length=0;break;default:if("function"===typeof t)T[I++]=t;else if("object"===typeof t)for(var n=0,r=t.length;n<r;++n)e(t[n]);else j=0|!!t}return e},u.set=l,void 0!==e&&l(e),u},l={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},u=n(45042),c=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,f=(0,u.Z)((function(e){return c.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),d=n(8679),p=n.n(d);function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var g=function(e,t){for(var n=[e[0]],r=0,o=t.length;r<o;r+=1)n.push(t[r],e[r+1]);return n},v=function(e){return null!==e&&"object"==typeof e&&"[object Object]"===(e.toString?e.toString():Object.prototype.toString.call(e))&&!(0,r.typeOf)(e)},m=Object.freeze([]),y=Object.freeze({});function b(e){return"function"==typeof e}function w(e){return e.displayName||e.name||"Component"}function _(e){return e&&"string"==typeof e.styledComponentId}var x="undefined"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",S="5.3.11",O="undefined"!=typeof window&&"HTMLElement"in window,C=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!==process.env&&(void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&""!==process.env.REACT_APP_SC_DISABLE_SPEEDY?"false"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:void 0!==process.env.SC_DISABLE_SPEEDY&&""!==process.env.SC_DISABLE_SPEEDY&&("false"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY))),E={};function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw new Error("An error occurred. See https://git.io/JUIaE#"+e+" for more information."+(n.length>0?" Args: "+n.join(", "):""))}var k=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},t.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&A(16,""+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var i=r;i<o;i++)this.groupSizes[i]=0}for(var a=this.indexOfGroup(e+1),s=0,l=t.length;s<l;s++)this.tag.insertRule(a,t[s])&&(this.groupSizes[e]++,a++)},t.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),r=n+t;this.groupSizes[e]=0;for(var o=n;o<r;o++)this.tag.deleteRule(n)}},t.getGroup=function(e){var t="";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,i=r;i<o;i++)t+=this.tag.getRule(i)+"/*!sc*/\n";return t},e}(),M=new Map,P=new Map,R=1,T=function(e){if(M.has(e))return M.get(e);for(;P.has(R);)R++;var t=R++;return M.set(e,t),P.set(t,e),t},I=function(e){return P.get(e)},B=function(e,t){t>=R&&(R=t+1),M.set(e,t),P.set(t,e)},j="style["+x+'][data-styled-version="5.3.11"]',D=new RegExp("^"+x+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),L=function(e,t,n){for(var r,o=n.split(","),i=0,a=o.length;i<a;i++)(r=o[i])&&e.registerName(t,r)},Z=function(e,t){for(var n=(t.textContent||"").split("/*!sc*/\n"),r=[],o=0,i=n.length;o<i;o++){var a=n[o].trim();if(a){var s=a.match(D);if(s){var l=0|parseInt(s[1],10),u=s[2];0!==l&&(B(u,l),L(e,u,s[3]),e.getTag().insertRules(l,r)),r.length=0}else r.push(a)}}},N=function(){return n.nc},F=function(e){var t=document.head,n=e||t,r=document.createElement("style"),o=function(e){for(var t=e.childNodes,n=t.length;n>=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(x))return r}}(n),i=void 0!==o?o.nextSibling:null;r.setAttribute(x,"active"),r.setAttribute("data-styled-version","5.3.11");var a=N();return a&&r.setAttribute("nonce",a),n.insertBefore(r,i),r},H=function(){function e(e){var t=this.element=F(e);t.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n<r;n++){var o=t[n];if(o.ownerNode===e)return o}A(17)}(t),this.length=0}var t=e.prototype;return t.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},t.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},t.getRule=function(e){var t=this.sheet.cssRules[e];return void 0!==t&&"string"==typeof t.cssText?t.cssText:""},e}(),V=function(){function e(e){var t=this.element=F(e);this.nodes=t.childNodes,this.length=0}var t=e.prototype;return t.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e<this.length?this.nodes[e].textContent:""},e}(),z=function(){function e(e){this.rules=[],this.length=0}var t=e.prototype;return t.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},t.deleteRule=function(e){this.rules.splice(e,1),this.length--},t.getRule=function(e){return e<this.length?this.rules[e]:""},e}(),U=O,G={isServer:!O,useCSSOMInjection:!C},W=function(){function e(e,t,n){void 0===e&&(e=y),void 0===t&&(t={}),this.options=h({},G,{},e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&O&&U&&(U=!1,function(e){for(var t=document.querySelectorAll(j),n=0,r=t.length;n<r;n++){var o=t[n];o&&"active"!==o.getAttribute(x)&&(Z(e,o),o.parentNode&&o.parentNode.removeChild(o))}}(this))}e.registerId=function(e){return T(e)};var t=e.prototype;return t.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(h({},this.options,{},t),this.gs,n&&this.names||void 0)},t.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},t.getTag=function(){return this.tag||(this.tag=(n=(t=this.options).isServer,r=t.useCSSOMInjection,o=t.target,e=n?new z(o):r?new H(o):new V(o),new k(e)));var e,t,n,r,o},t.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},t.registerName=function(e,t){if(T(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},t.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(T(e),n)},t.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},t.clearRules=function(e){this.getTag().clearGroup(T(e)),this.clearNames(e)},t.clearTag=function(){this.tag=void 0},t.toString=function(){return function(e){for(var t=e.getTag(),n=t.length,r="",o=0;o<n;o++){var i=I(o);if(void 0!==i){var a=e.names.get(i),s=t.getGroup(o);if(a&&s&&a.size){var l=x+".g"+o+'[id="'+i+'"]',u="";void 0!==a&&a.forEach((function(e){e.length>0&&(u+=e+",")})),r+=""+s+l+'{content:"'+u+'"}/*!sc*/\n'}}}return r}(this)},e}(),q=/(a)(d)/gi,$=function(e){return String.fromCharCode(e+(e>25?39:97))};function Y(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=$(t%52)+n;return($(t%52)+n).replace(q,"$1-$2")}var X=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},K=function(e){return X(5381,e)};function J(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(b(n)&&!_(n))return!1}return!0}var Q=K("5.3.11"),ee=function(){function e(e,t,n){this.rules=e,this.staticRulesId="",this.isStatic=(void 0===n||n.isStatic)&&J(e),this.componentId=t,this.baseHash=X(Q,t),this.baseStyle=n,W.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var r=this.componentId,o=[];if(this.baseStyle&&o.push(this.baseStyle.generateAndInjectStyles(e,t,n)),this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(r,this.staticRulesId))o.push(this.staticRulesId);else{var i=be(this.rules,e,t,n).join(""),a=Y(X(this.baseHash,i)>>>0);if(!t.hasNameForId(r,a)){var s=n(i,"."+a,void 0,r);t.insertRules(r,a,s)}o.push(a),this.staticRulesId=a}else{for(var l=this.rules.length,u=X(this.baseHash,n.hash),c="",f=0;f<l;f++){var d=this.rules[f];if("string"==typeof d)c+=d;else if(d){var p=be(d,e,t,n),h=Array.isArray(p)?p.join(""):p;u=X(u,h+f),c+=h}}if(c){var g=Y(u>>>0);if(!t.hasNameForId(r,g)){var v=n(c,"."+g,void 0,r);t.insertRules(r,g,v)}o.push(g)}}return o.join(" ")},e}(),te=/^\s*\/\/.*$/gm,ne=[":","[",".","#"];function re(e){var t,n,r,o,i=void 0===e?y:e,a=i.options,l=void 0===a?y:a,u=i.plugins,c=void 0===u?m:u,f=new s(l),d=[],p=function(e){function t(t){if(t)try{e(t+"}")}catch(e){}}return function(n,r,o,i,a,s,l,u,c,f){switch(n){case 1:if(0===c&&64===r.charCodeAt(0))return e(r+";"),"";break;case 2:if(0===u)return r+"/*|*/";break;case 3:switch(u){case 102:case 112:return e(o[0]+r),"";default:return r+(0===f?"/*|*/":"")}case-2:r.split("/*|*/}").forEach(t)}}}((function(e){d.push(e)})),h=function(e,r,i){return 0===r&&-1!==ne.indexOf(i[n.length])||i.match(o)?e:"."+t};function g(e,i,a,s){void 0===s&&(s="&");var l=e.replace(te,""),u=i&&a?a+" "+i+" { "+l+" }":l;return t=s,n=i,r=new RegExp("\\"+n+"\\b","g"),o=new RegExp("(\\"+n+"\\b){2,}"),f(a||!i?"":i,u)}return f.use([].concat(c,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,h))},p,function(e){if(-2===e){var t=d;return d=[],t}}])),g.hash=c.length?c.reduce((function(e,t){return t.name||A(15),X(e,t.name)}),5381).toString():"",g}var oe=o.createContext(),ie=oe.Consumer,ae=o.createContext(),se=(ae.Consumer,new W),le=re();function ue(){return(0,o.useContext)(oe)||se}function ce(){return(0,o.useContext)(ae)||le}function fe(e){var t=(0,o.useState)(e.stylisPlugins),n=t[0],r=t[1],i=ue(),s=(0,o.useMemo)((function(){var t=i;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=(0,o.useMemo)((function(){return re({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return(0,o.useEffect)((function(){a()(n,e.stylisPlugins)||r(e.stylisPlugins)}),[e.stylisPlugins]),o.createElement(oe.Provider,{value:s},o.createElement(ae.Provider,{value:l},e.children))}var de=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=le);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,"@keyframes"))},this.toString=function(){return A(12,String(n.name))},this.name=e,this.id="sc-keyframes-"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=le),this.name+e.hash},e}(),pe=/([A-Z])/,he=/([A-Z])/g,ge=/^ms-/,ve=function(e){return"-"+e.toLowerCase()};function me(e){return pe.test(e)?e.replace(he,ve).replace(ge,"-ms-"):e}var ye=function(e){return null==e||!1===e||""===e};function be(e,t,n,r){if(Array.isArray(e)){for(var o,i=[],a=0,s=e.length;a<s;a+=1)""!==(o=be(e[a],t,n,r))&&(Array.isArray(o)?i.push.apply(i,o):i.push(o));return i}return ye(e)?"":_(e)?"."+e.styledComponentId:b(e)?"function"!=typeof(u=e)||u.prototype&&u.prototype.isReactComponent||!t?e:be(e(t),t,n,r):e instanceof de?n?(e.inject(n,r),e.getName(r)):e:v(e)?function e(t,n){var r,o,i=[];for(var a in t)t.hasOwnProperty(a)&&!ye(t[a])&&(Array.isArray(t[a])&&t[a].isCss||b(t[a])?i.push(me(a)+":",t[a],";"):v(t[a])?i.push.apply(i,e(t[a],a)):i.push(me(a)+": "+(r=a,(null==(o=t[a])||"boolean"==typeof o||""===o?"":"number"!=typeof o||0===o||r in l||r.startsWith("--")?String(o).trim():o+"px")+";")));return n?[n+" {"].concat(i,["}"]):i}(e):e.toString();var u}var we=function(e){return Array.isArray(e)&&(e.isCss=!0),e};function _e(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return b(e)||v(e)?we(be(g(m,[e].concat(n)))):0===n.length&&1===e.length&&"string"==typeof e[0]?e:we(be(g(e,n)))}new Set;var xe=function(e,t,n){return void 0===n&&(n=y),e.theme!==n.theme&&e.theme||t||n.theme},Se=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,Oe=/(^-|-$)/g;function Ce(e){return e.replace(Se,"-").replace(Oe,"")}var Ee=function(e){return Y(K(e)>>>0)};function Ae(e){return"string"==typeof e&&!0}var ke=function(e){return"function"==typeof e||"object"==typeof e&&null!==e&&!Array.isArray(e)},Me=function(e){return"__proto__"!==e&&"constructor"!==e&&"prototype"!==e};function Pe(e,t,n){var r=e[n];ke(t)&&ke(r)?Re(r,t):e[n]=t}function Re(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var o=0,i=n;o<i.length;o++){var a=i[o];if(ke(a))for(var s in a)Me(s)&&Pe(e,a[s],s)}return e}var Te=o.createContext(),Ie=Te.Consumer;function Be(e){var t=(0,o.useContext)(Te),n=(0,o.useMemo)((function(){return function(e,t){return e?b(e)?e(t):Array.isArray(e)||"object"!=typeof e?A(8):t?h({},t,{},e):e:A(14)}(e.theme,t)}),[e.theme,t]);return e.children?o.createElement(Te.Provider,{value:n},e.children):null}var je={};function De(e,t,n){var r=_(e),i=!Ae(e),a=t.attrs,s=void 0===a?m:a,l=t.componentId,u=void 0===l?function(e,t){var n="string"!=typeof e?"sc":Ce(e);je[n]=(je[n]||0)+1;var r=n+"-"+Ee("5.3.11"+n+je[n]);return t?t+"-"+r:r}(t.displayName,t.parentComponentId):l,c=t.displayName,d=void 0===c?function(e){return Ae(e)?"styled."+e:"Styled("+w(e)+")"}(e):c,g=t.displayName&&t.componentId?Ce(t.displayName)+"-"+t.componentId:t.componentId||u,v=r&&e.attrs?Array.prototype.concat(e.attrs,s).filter(Boolean):s,x=t.shouldForwardProp;r&&e.shouldForwardProp&&(x=t.shouldForwardProp?function(n,r,o){return e.shouldForwardProp(n,r,o)&&t.shouldForwardProp(n,r,o)}:e.shouldForwardProp);var S,O=new ee(n,g,r?e.componentStyle:void 0),C=O.isStatic&&0===s.length,E=function(e,t){return function(e,t,n,r){var i=e.attrs,a=e.componentStyle,s=e.defaultProps,l=e.foldedComponentIds,u=e.shouldForwardProp,c=e.styledComponentId,d=e.target,p=function(e,t,n){void 0===e&&(e=y);var r=h({},t,{theme:e}),o={};return n.forEach((function(e){var t,n,i,a=e;for(t in b(a)&&(a=a(r)),a)r[t]=o[t]="className"===t?(n=o[t],i=a[t],n&&i?n+" "+i:n||i):a[t]})),[r,o]}(xe(t,(0,o.useContext)(Te),s)||y,t,i),g=p[0],v=p[1],m=function(e,t,n,r){var o=ue(),i=ce();return t?e.generateAndInjectStyles(y,o,i):e.generateAndInjectStyles(n,o,i)}(a,r,g),w=n,_=v.$as||t.$as||v.as||t.as||d,x=Ae(_),S=v!==t?h({},t,{},v):t,O={};for(var C in S)"$"!==C[0]&&"as"!==C&&("forwardedAs"===C?O.as=S[C]:(u?u(C,f,_):!x||f(C))&&(O[C]=S[C]));return t.style&&v.style!==t.style&&(O.style=h({},t.style,{},v.style)),O.className=Array.prototype.concat(l,c,m!==c?m:null,t.className,v.className).filter(Boolean).join(" "),O.ref=w,(0,o.createElement)(_,O)}(S,e,t,C)};return E.displayName=d,(S=o.forwardRef(E)).attrs=v,S.componentStyle=O,S.displayName=d,S.shouldForwardProp=x,S.foldedComponentIds=r?Array.prototype.concat(e.foldedComponentIds,e.styledComponentId):m,S.styledComponentId=g,S.target=r?e.target:e,S.withComponent=function(e){var r=t.componentId,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(t,["componentId"]),i=r&&r+"-"+(Ae(e)?e:Ce(w(e)));return De(e,h({},o,{attrs:v,componentId:i}),n)},Object.defineProperty(S,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=r?Re({},e.defaultProps,t):t}}),Object.defineProperty(S,"toString",{value:function(){return"."+S.styledComponentId}}),i&&p()(S,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),S}var Le=function(e){return function e(t,n,o){if(void 0===o&&(o=y),!(0,r.isValidElementType)(n))return A(1,String(n));var i=function(){return t(n,o,_e.apply(void 0,arguments))};return i.withConfig=function(r){return e(t,n,h({},o,{},r))},i.attrs=function(r){return e(t,n,h({},o,{attrs:Array.prototype.concat(o.attrs,r).filter(Boolean)}))},i}(De,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach((function(e){Le[e]=Le(e)}));var Ze=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=J(e),W.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(be(this.rules,t,n,r).join(""),""),i=this.componentId+e;n.insertRules(i,i,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&W.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function Ne(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=_e.apply(void 0,[e].concat(n)),a="sc-global-"+Ee(JSON.stringify(i)),s=new Ze(i,a);function l(e){var t=ue(),n=ce(),r=(0,o.useContext)(Te),i=(0,o.useRef)(t.allocateGSInstance(a)).current;return t.server&&u(i,e,t,r,n),(0,o.useLayoutEffect)((function(){if(!t.server)return u(i,e,t,r,n),function(){return s.removeStyles(i,t)}}),[i,e,t,r,n]),null}function u(e,t,n,r,o){if(s.isStatic)s.renderStyles(e,E,n,o);else{var i=h({},t,{theme:xe(t,r,l.defaultProps)});s.renderStyles(e,i,n,o)}}return o.memo(l)}function Fe(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=_e.apply(void 0,[e].concat(n)).join(""),i=Ee(o);return new de(i,o)}var He=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var n=N();return"<style "+[n&&'nonce="'+n+'"',x+'="true"','data-styled-version="5.3.11"'].filter(Boolean).join(" ")+">"+t+"</style>"},this.getStyleTags=function(){return e.sealed?A(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return A(2);var n=((t={})[x]="",t["data-styled-version"]="5.3.11",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),r=N();return r&&(n.nonce=r),[o.createElement("style",h({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new W({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?A(2):o.createElement(fe,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return A(3)},e}(),Ve=function(e){var t=o.forwardRef((function(t,n){var r=(0,o.useContext)(Te),i=e.defaultProps,a=xe(t,r,i);return o.createElement(e,h({},t,{theme:a,ref:n}))}));return p()(t,e),t.displayName="WithTheme("+w(e)+")",t},ze=function(){return(0,o.useContext)(Te)},Ue={StyleSheet:W,masterSheet:se},Ge=Le},75980:function(e,t,n){"use strict";n.d(t,{FK:function(){return A}});var r=n(27418),o=n.n(r),i=function(e,t){var n=o()({},e,t);for(var r in e){var i;e[r]&&"object"===typeof t[r]&&o()(n,((i={})[r]=o()(e[r],t[r]),i))}return n},a={breakpoints:[40,52,64].map((function(e){return e+"em"}))},s=function(e){return"@media screen and (min-width: "+e+")"},l=function(e,t){return u(t,e,e)},u=function(e,t,n,r,o){for(t=t&&t.split?t.split("."):[t],r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e},c=function e(t){var n={},r=function(e){var r={},l=!1,c=e.theme&&e.theme.disableStyledSystemCache;for(var p in e)if(t[p]){var h=t[p],g=e[p],v=u(e.theme,h.scale,h.defaults);if("object"!==typeof g)o()(r,h(g,v,e));else{if(n.breakpoints=!c&&n.breakpoints||u(e.theme,"breakpoints",a.breakpoints),Array.isArray(g)){n.media=!c&&n.media||[null].concat(n.breakpoints.map(s)),r=i(r,f(n.media,h,v,g,e));continue}null!==g&&(r=i(r,d(n.breakpoints,h,v,g,e)),l=!0)}}return l&&(r=function(e){var t={};return Object.keys(e).sort((function(e,t){return e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})})).forEach((function(n){t[n]=e[n]})),t}(r)),r};r.config=t,r.propNames=Object.keys(t),r.cache=n;var l=Object.keys(t).filter((function(e){return"config"!==e}));return l.length>1&&l.forEach((function(n){var o;r[n]=e(((o={})[n]=t[n],o))})),r},f=function(e,t,n,r,i){var a={};return r.slice(0,e.length).forEach((function(r,s){var l,u=e[s],c=t(r,n,i);u?o()(a,((l={})[u]=o()({},a[u],c),l)):o()(a,c)})),a},d=function(e,t,n,r,i){var a={};for(var l in r){var u=e[l],c=t(r[l],n,i);if(u){var f,d=s(u);o()(a,((f={})[d]=o()({},a[d],c),f))}else o()(a,c)}return a},p=function(e){var t=e.properties,n=e.property,r=e.scale,o=e.transform,i=void 0===o?l:o,a=e.defaultScale;t=t||[n];var s=function(e,n,r){var o={},a=i(e,n,r);if(null!==a)return t.forEach((function(e){o[e]=a})),o};return s.scale=r,s.defaults=a,s},h=function(e){void 0===e&&(e={});var t={};return Object.keys(e).forEach((function(n){var r=e[n];t[n]=!0!==r?"function"!==typeof r?p(r):r:p({property:n,scale:n})})),c(t)},g=h({width:{property:"width",scale:"sizes",transform:function(e,t){return u(t,e,!function(e){return"number"===typeof e&&!isNaN(e)}(e)||e>1?e:100*e+"%")}},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},size:{properties:["width","height"],scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0}),v={color:{property:"color",scale:"colors"},backgroundColor:{property:"backgroundColor",scale:"colors"},opacity:!0};v.bg=v.backgroundColor;var m=h(v),y=h({fontFamily:{property:"fontFamily",scale:"fonts"},fontSize:{property:"fontSize",scale:"fontSizes",defaultScale:[12,14,16,20,24,32,48,64,72]},fontWeight:{property:"fontWeight",scale:"fontWeights"},lineHeight:{property:"lineHeight",scale:"lineHeights"},letterSpacing:{property:"letterSpacing",scale:"letterSpacings"},textAlign:!0,fontStyle:!0}),b=h({alignItems:!0,alignContent:!0,justifyItems:!0,justifyContent:!0,flexWrap:!0,flexDirection:!0,flex:!0,flexGrow:!0,flexShrink:!0,flexBasis:!0,justifySelf:!0,alignSelf:!0,order:!0}),w={space:[0,4,8,16,32,64,128,256,512]},_=h({gridGap:{property:"gridGap",scale:"space",defaultScale:w.space},gridColumnGap:{property:"gridColumnGap",scale:"space",defaultScale:w.space},gridRowGap:{property:"gridRowGap",scale:"space",defaultScale:w.space},gridColumn:!0,gridRow:!0,gridAutoFlow:!0,gridAutoColumns:!0,gridAutoRows:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridArea:!0}),x={border:{property:"border",scale:"borders"},borderWidth:{property:"borderWidth",scale:"borderWidths"},borderStyle:{property:"borderStyle",scale:"borderStyles"},borderColor:{property:"borderColor",scale:"colors"},borderRadius:{property:"borderRadius",scale:"radii"},borderTop:{property:"borderTop",scale:"borders"},borderTopLeftRadius:{property:"borderTopLeftRadius",scale:"radii"},borderTopRightRadius:{property:"borderTopRightRadius",scale:"radii"},borderRight:{property:"borderRight",scale:"borders"},borderBottom:{property:"borderBottom",scale:"borders"},borderBottomLeftRadius:{property:"borderBottomLeftRadius",scale:"radii"},borderBottomRightRadius:{property:"borderBottomRightRadius",scale:"radii"},borderLeft:{property:"borderLeft",scale:"borders"},borderX:{properties:["borderLeft","borderRight"],scale:"borders"},borderY:{properties:["borderTop","borderBottom"],scale:"borders"},borderTopWidth:{property:"borderTopWidth",scale:"borderWidths"},borderTopColor:{property:"borderTopColor",scale:"colors"},borderTopStyle:{property:"borderTopStyle",scale:"borderStyles"}};x.borderTopLeftRadius={property:"borderTopLeftRadius",scale:"radii"},x.borderTopRightRadius={property:"borderTopRightRadius",scale:"radii"},x.borderBottomWidth={property:"borderBottomWidth",scale:"borderWidths"},x.borderBottomColor={property:"borderBottomColor",scale:"colors"},x.borderBottomStyle={property:"borderBottomStyle",scale:"borderStyles"},x.borderBottomLeftRadius={property:"borderBottomLeftRadius",scale:"radii"},x.borderBottomRightRadius={property:"borderBottomRightRadius",scale:"radii"},x.borderLeftWidth={property:"borderLeftWidth",scale:"borderWidths"},x.borderLeftColor={property:"borderLeftColor",scale:"colors"},x.borderLeftStyle={property:"borderLeftStyle",scale:"borderStyles"},x.borderRightWidth={property:"borderRightWidth",scale:"borderWidths"},x.borderRightColor={property:"borderRightColor",scale:"colors"},x.borderRightStyle={property:"borderRightStyle",scale:"borderStyles"};var S=h(x),O={background:!0,backgroundImage:!0,backgroundSize:!0,backgroundPosition:!0,backgroundRepeat:!0};O.bgImage=O.backgroundImage,O.bgSize=O.backgroundSize,O.bgPosition=O.backgroundPosition,O.bgRepeat=O.backgroundRepeat;var C=h(O),E={space:[0,4,8,16,32,64,128,256,512]},A=h({position:!0,zIndex:{property:"zIndex",scale:"zIndices"},top:{property:"top",scale:"space",defaultScale:E.space},right:{property:"right",scale:"space",defaultScale:E.space},bottom:{property:"bottom",scale:"space",defaultScale:E.space},left:{property:"left",scale:"space",defaultScale:E.space}}),k=A,M={space:[0,4,8,16,32,64,128,256,512]},P=function(e){return"number"===typeof e&&!isNaN(e)},R=function(e,t){if(!P(e))return u(t,e,e);var n=e<0,r=Math.abs(e),o=u(t,r,r);return P(o)?o*(n?-1:1):n?"-"+o:o},T={};T.margin={margin:{property:"margin",scale:"space",transform:R,defaultScale:M.space},marginTop:{property:"marginTop",scale:"space",transform:R,defaultScale:M.space},marginRight:{property:"marginRight",scale:"space",transform:R,defaultScale:M.space},marginBottom:{property:"marginBottom",scale:"space",transform:R,defaultScale:M.space},marginLeft:{property:"marginLeft",scale:"space",transform:R,defaultScale:M.space},marginX:{properties:["marginLeft","marginRight"],scale:"space",transform:R,defaultScale:M.space},marginY:{properties:["marginTop","marginBottom"],scale:"space",transform:R,defaultScale:M.space}},T.margin.m=T.margin.margin,T.margin.mt=T.margin.marginTop,T.margin.mr=T.margin.marginRight,T.margin.mb=T.margin.marginBottom,T.margin.ml=T.margin.marginLeft,T.margin.mx=T.margin.marginX,T.margin.my=T.margin.marginY,T.padding={padding:{property:"padding",scale:"space",defaultScale:M.space},paddingTop:{property:"paddingTop",scale:"space",defaultScale:M.space},paddingRight:{property:"paddingRight",scale:"space",defaultScale:M.space},paddingBottom:{property:"paddingBottom",scale:"space",defaultScale:M.space},paddingLeft:{property:"paddingLeft",scale:"space",defaultScale:M.space},paddingX:{properties:["paddingLeft","paddingRight"],scale:"space",defaultScale:M.space},paddingY:{properties:["paddingTop","paddingBottom"],scale:"space",defaultScale:M.space}},T.padding.p=T.padding.padding,T.padding.pt=T.padding.paddingTop,T.padding.pr=T.padding.paddingRight,T.padding.pb=T.padding.paddingBottom,T.padding.pl=T.padding.paddingLeft,T.padding.px=T.padding.paddingX,T.padding.py=T.padding.paddingY;(function(){for(var e={},t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];n.forEach((function(t){t&&t.config&&o()(e,t.config)})),c(e)})(h(T.margin),h(T.padding)),h({boxShadow:{property:"boxShadow",scale:"shadows"},textShadow:{property:"textShadow",scale:"shadows"}});var I=n(37947),B=function(e){var t,n,r=e.scale,o=e.prop,i=void 0===o?"variant":o,a=e.variants,s=void 0===a?{}:a,l=e.key;n=Object.keys(s).length?function(e,t,n){return(0,I.ZP)(u(t,e,null))(n.theme)}:function(e,t){return u(t,e,null)},n.scale=r||l,n.defaults=s;var f=((t={})[i]=n,t);return c(f)};B({key:"buttons"}),B({key:"textStyles",prop:"textStyle"}),B({key:"colorStyles",prop:"colors"}),g.width,g.height,g.minWidth,g.minHeight,g.maxWidth,g.maxHeight,g.size,g.verticalAlign,g.display,g.overflow,g.overflowX,g.overflowY,m.opacity,y.fontSize,y.fontFamily,y.fontWeight,y.lineHeight,y.textAlign,y.fontStyle,y.letterSpacing,b.alignItems,b.alignContent,b.justifyItems,b.justifyContent,b.flexWrap,b.flexDirection,b.flex,b.flexGrow,b.flexShrink,b.flexBasis,b.justifySelf,b.alignSelf,b.order,_.gridGap,_.gridColumnGap,_.gridRowGap,_.gridColumn,_.gridRow,_.gridAutoFlow,_.gridAutoColumns,_.gridAutoRows,_.gridTemplateColumns,_.gridTemplateRows,_.gridTemplateAreas,_.gridArea,S.borderWidth,S.borderStyle,S.borderColor,S.borderTop,S.borderRight,S.borderBottom,S.borderLeft,S.borderRadius,C.backgroundImage,C.backgroundSize,C.backgroundPosition,C.backgroundRepeat,k.zIndex,k.top,k.right,k.bottom,k.left},87854:function(e,t,n){e.exports=function(){"use strict";var e=function(e){var t=e.id,n=e.viewBox,r=e.content;this.id=t,this.viewBox=n,this.content=r};e.prototype.stringify=function(){return this.content},e.prototype.toString=function(){return this.stringify()},e.prototype.destroy=function(){var e=this;["id","viewBox","content"].forEach((function(t){return delete e[t]}))};var t=function(e){var t=!!document.importNode,n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement;return t?document.importNode(n,!0):n};function r(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self&&self;var o=r((function(e,t){!function(t,n){e.exports=n()}(0,(function(){function e(e){return e&&"object"===typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)}function t(e){return Array.isArray(e)?[]:{}}function n(n,r){return r&&!0===r.clone&&e(n)?i(t(n),n,r):n}function r(t,r,o){var a=t.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,o):e(r)?a[s]=i(t[s],r,o):-1===t.indexOf(r)&&a.push(n(r,o))})),a}function o(t,r,o){var a={};return e(t)&&Object.keys(t).forEach((function(e){a[e]=n(t[e],o)})),Object.keys(r).forEach((function(s){e(r[s])&&t[s]?a[s]=i(t[s],r[s],o):a[s]=n(r[s],o)})),a}function i(e,t,i){var a=Array.isArray(t),s=(i||{arrayMerge:r}).arrayMerge||r;return a?Array.isArray(e)?s(e,t,i):n(t,i):o(e,t,i)}return i.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,n){return i(e,n,t)}))},i}))})),i=r((function(e,t){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};t.default=n,e.exports=t.default})),a=function(e){return Object.keys(e).map((function(t){return t+'="'+e[t].toString().replace(/"/g,"&quot;")+'"'})).join(" ")},s=i.svg,l=i.xlink,u={};u[s.name]=s.uri,u[l.name]=l.uri;var c=function(e,t){void 0===e&&(e="");var n=o(u,t||{});return"<svg "+a(n)+">"+e+"</svg>"},f=function(e){function n(){e.apply(this,arguments)}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={isMounted:{}};return r.isMounted.get=function(){return!!this.node},n.createFromExistingNode=function(e){return new n({id:e.getAttribute("id"),viewBox:e.getAttribute("viewBox"),content:e.outerHTML})},n.prototype.destroy=function(){this.isMounted&&this.unmount(),e.prototype.destroy.call(this)},n.prototype.mount=function(e){if(this.isMounted)return this.node;var t="string"===typeof e?document.querySelector(e):e,n=this.render();return this.node=n,t.appendChild(n),n},n.prototype.render=function(){var e=this.stringify();return t(c(e)).childNodes[0]},n.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(n.prototype,r),n}(e);return f}()},11182:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"D",use:"D-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="D"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M5.81 10.299v-4.7c-.253-.003-.44-.06-.562-.17a.568.568 0 0 1-.182-.433c0-.18.061-.324.182-.434.125-.113.332-.17.621-.17l2.514.006c.39 0 .771.073 1.142.217.375.145.676.328.903.551.172.168.35.398.533.691.187.293.328.584.422.873.094.29.14.643.14 1.061v.574c0 .508-.085.96-.257 1.354-.172.39-.399.71-.68.96a3.45 3.45 0 0 1-.785.546c-.39.183-.897.275-1.518.275H5.87c-.289 0-.496-.055-.62-.164a.574.574 0 0 1-.183-.44c0-.175.061-.32.182-.433.125-.113.313-.168.563-.164Zm1.202 0h1.277c.477 0 .836-.069 1.078-.205.317-.18.555-.408.715-.686.16-.277.24-.637.24-1.078v-.568c0-.38-.072-.711-.216-.996-.227-.446-.483-.75-.768-.914-.281-.168-.635-.252-1.06-.252H7.011v4.699Z" /></symbol>'});a().add(s);t.default=s},18567:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"I",use:"I-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="I"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M8.598 5.6v4.699H9.81c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H6.184c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.55.55 0 0 1 .181-.427c.125-.114.333-.17.622-.17h1.212v-4.7H6.184c-.29 0-.497-.054-.622-.163a.575.575 0 0 1-.181-.44c0-.18.06-.324.181-.434.125-.113.333-.17.622-.17l3.627.006c.289 0 .494.055.615.165.125.109.187.253.187.433s-.062.326-.187.44c-.121.109-.326.164-.615.164H8.598Z" /></symbol>'});a().add(s);t.default=s},69790:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"L",use:"L-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="L"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M7.496 5.6v4.699h2.59V9.162c0-.289.055-.494.164-.615a.566.566 0 0 1 .44-.188c.175 0 .318.063.427.188.113.121.17.326.17.615V11.5h-5.69c-.288 0-.495-.055-.62-.164a.574.574 0 0 1-.182-.44.55.55 0 0 1 .182-.427c.125-.114.332-.17.62-.17h.698v-4.7h-.697c-.29 0-.496-.054-.621-.163a.575.575 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l2.602.006c.29 0 .494.055.615.165.125.109.188.253.188.433s-.063.326-.188.44c-.12.109-.326.164-.615.164h-.703Z" /></symbol>'});a().add(s);t.default=s},13249:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"N",use:"N-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="N"><path d="M10.4 2H5.6C3.6 2 2 3.6 2 5.6v4.8c0 2 1.6 3.6 3.6 3.6h4.8c2 0 3.6-1.6 3.6-3.6V5.6c0-2-1.6-3.6-3.6-3.6Zm2.6 8.4c0 1.4-1.2 2.6-2.6 2.6H5.6C4.2 13 3 11.8 3 10.4V5.6C3 4.2 4.2 3 5.6 3h4.8C11.8 3 13 4.2 13 5.6v4.8Z" /><path d="M6.494 6.666v3.633h.434c.289 0 .494.056.615.17.125.11.187.254.187.433 0 .176-.062.32-.187.434-.121.11-.326.164-.615.164H5.352c-.29 0-.497-.055-.622-.164a.574.574 0 0 1-.181-.44.56.56 0 0 1 .181-.427c.122-.114.31-.17.563-.17v-4.7h-.188c-.289 0-.496-.054-.62-.163a.574.574 0 0 1-.182-.44c0-.18.06-.324.181-.434.125-.113.332-.17.621-.17l1.39.006 3.07 4.817V5.6H9.13c-.29 0-.496-.055-.621-.164a.574.574 0 0 1-.182-.44c0-.18.06-.324.182-.434.125-.113.332-.17.62-.17l1.577.006c.29 0 .494.055.615.165.125.109.188.253.188.433 0 .176-.06.32-.182.434-.121.113-.306.17-.556.17v5.9h-1.19L6.494 6.666Z" /></symbol>'});a().add(s);t.default=s},88055:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"anomaly_badge",use:"anomaly_badge-usage",viewBox:"0 0 15 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16" id="anomaly_badge"><path fill-rule="evenodd" d="M13.228 3.296 8.522.579a2.292 2.292 0 0 0-2.294 0L1.522 3.296A2.294 2.294 0 0 0 .375 5.283v5.435c0 .819.437 1.577 1.147 1.986l4.706 2.717a2.292 2.292 0 0 0 2.294 0l4.706-2.717a2.293 2.293 0 0 0 1.147-1.986V5.283c0-.82-.437-1.577-1.147-1.987ZM7.979 4.761l-.604-1.528-.604 1.528-1.838 4.646H1.375v1.3h4.442l.162-.411 1.396-3.529 1.396 3.529.495 1.253.672-1.168.437-.758.437.758.187.326h2.376v-1.3h-1.624l-.813-1.412-.563-.978-.563.978-.328.57L7.979 4.76Z" clip-rule="evenodd" /></symbol>'});a().add(s);t.default=s},92662:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"area_chart",use:"area_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="area_chart"><path d="M19.1 22H4.9C3.3 22 2 20.7 2 19.1v-5.5l5-5 2.5 2.5 9-9L22 5.6v13.5c0 1.6-1.3 2.9-2.9 2.9ZM4 14.4V19c0 .6.4 1 .9 1H19c.5 0 .9-.4.9-.9V6.4l-1.5-1.5-9 9L7 11.4l-3 3Z" /></symbol>'});a().add(s);t.default=s},84156:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"bar_chart",use:"bar_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="bar_chart"><path d="M12 5V2H6v5H2v6.619A2.381 2.381 0 0 0 4.381 16h9.238A2.381 2.381 0 0 0 16 13.619V5h-4Zm-6 9.5H4.381a.882.882 0 0 1-.881-.881V8.5H6v6Zm4.5 0h-3v-11h3v11Zm4-.881a.882.882 0 0 1-.881.881H12v-8h2.5v7.119Z" /></symbol>'});a().add(s);t.default=s},13563:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"checkmark_s",use:"checkmark_s-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="checkmark_s"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154Z" clip-rule="evenodd" /><mask id="checkmark_s_a" width="10" height="10" x="3" y="3" mask-type="alpha" maskUnits="userSpaceOnUse"><path fill-rule="evenodd" d="m12.956 4.503-6 8.334c-.048.051-.125.163-.22.163-.1 0-.164-.075-.22-.135A5013.1 5013.1 0 0 0 3.112 9.32l-.065-.07A.289.289 0 0 1 3 9.101c0-.055.022-.107.047-.149a378.83 378.83 0 0 1 1.096-1.247c.056-.06.104-.14.207-.14.108 0 .177.099.229.155C4.63 7.776 6.52 9.74 6.52 9.74l4.801-6.676A.236.236 0 0 1 11.472 3a.23.23 0 0 1 .151.06l1.32 1.126a.274.274 0 0 1 .056.163.255.255 0 0 1-.043.154Z" clip-rule="evenodd" /></mask></symbol>'});a().add(s);t.default=s},3728:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_down",use:"chevron_down-usage",viewBox:"0 0 12 12",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" id="chevron_down"><path d="M3 5c0-.3.1-.5.3-.7.4-.4 1-.4 1.4 0L6 5.6l1.3-1.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4L6 8.4 3.3 5.7C3.1 5.5 3 5.3 3 5Z" /></symbol>'});a().add(s);t.default=s},54194:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_down_thin",use:"chevron_down_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_down_thin"><path d="M6.979 13.813 10.792 10l.541.542-4.083 4.083h-.542l-4.083-4.083.541-.542 3.813 3.813Z" /></symbol>'});a().add(s);t.default=s},51289:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_expand",use:"chevron_expand-usage",viewBox:"0 0 8 6",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 6" id="chevron_expand"><path d="M.632 1.577 4 3.264l3.368-1.687A.593.593 0 0 0 7.632.79a.59.59 0 0 0-.785-.264L4 1.957 1.146.535A.586.586 0 0 0 .36.8a.578.578 0 0 0 .272.778Zm6.222 1.29L4 4.292 1.146 2.868a.586.586 0 0 0-.786.264.58.58 0 0 0 .264.786L4 5.598 7.368 3.91a.593.593 0 0 0 .264-.786.572.572 0 0 0-.778-.256Z" /></symbol>'});a().add(s);t.default=s},22874:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"chevron_up_thin",use:"chevron_up_thin-usage",viewBox:"0 0 16 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 24" id="chevron_up_thin"><path d="m7 9.427 3.33 3.331a.58.58 0 1 1-.822.823L7 11.073l-2.503 2.502a.58.58 0 1 1-.822-.822L7 9.426Z" /></symbol>'});a().add(s);t.default=s},53685:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"collapse",use:"collapse-usage",viewBox:"0 0 16 2",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 2" id="collapse"><rect width="16" height="2" rx="1" /></symbol>'});a().add(s);t.default=s},94631:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"database",use:"database-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="database"><path d="M12 14c5.607 0 10-2.636 10-6s-4.393-6-10-6S2 4.636 2 8s4.393 6 10 6Zm0-10c4.714 0 8 2.108 8 4s-3.286 4-8 4-8-2.108-8-4 3.286-4 8-4Zm7.627 13.126C18.644 18.641 15.785 20 12 20c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 16c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98Zm0-4C18.644 14.641 15.785 16 12 16c-3.785 0-6.644-1.359-7.627-2.874-.933-.56-1.699-1.228-2.265-1.979A3.803 3.803 0 0 0 2 12c0 3.364 4.393 6 10 6s10-2.636 10-6a3.82 3.82 0 0 0-.108-.854c-.567.752-1.332 1.42-2.265 1.98Z" /></symbol>'});a().add(s);t.default=s},7775:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"dot",use:"dot-usage",viewBox:"0 0 10 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" id="dot"><rect width="10" height="10" rx="5" /></symbol>'});a().add(s);t.default=s},69999:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"drag_horizontal",use:"drag_horizontal-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="drag_horizontal"><path d="M9 3v8.25H4.372l1.936-1.943L5.25 8.25 1.5 12l3.75 3.75 1.058-1.057-1.936-1.943H9V21h1.5V3H9ZM18.75 8.25l-1.058 1.057 1.936 1.943H15V3h-1.5v18H15v-8.25h4.628l-1.936 1.943 1.058 1.057L22.5 12l-3.75-3.75Z" /></symbol>'});a().add(s);t.default=s},25271:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"expand",use:"expand-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="expand"><path fill-rule="evenodd" d="M5.3 6.7 3 9V3h6L6.7 5.3l2.89 2.87-1.42 1.42L5.3 6.7Zm12-1.4L15 3h6v6l-2.3-2.3-2.87 2.89-1.42-1.42L17.3 5.3ZM9 21l-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6h6Zm9.7-3.7L21 15v6h-6l2.3-2.3-2.89-2.87 1.42-1.42 2.87 2.89Z" clip-rule="evenodd" /></symbol>'});a().add(s);t.default=s},21219:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"heatmap_chart",use:"heatmap_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="heatmap_chart"><path d="M6 16h2v-2H6v2Zm0-8h2V6H6v2ZM2 4h2V2H2v2Zm4 0h2V2H6v2ZM2 16h2v-2H2v2Zm0-4h2v-2H2v2Zm0-4h2V6H2v2Zm4 4h2v-2H6v2Zm4 4h2v-2h-2v2Zm4-8h2V6h-2v2Zm0 8h2v-2h-2v2Zm0-14v2h2V2h-2Zm0 10h2v-2h-2v2Zm-4 0h2v-2h-2v2Zm0-8h2V2h-2v2Zm0 4h2V6h-2v2Z" /></symbol>'});a().add(s);t.default=s},25312:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"information",use:"information-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="information"><path d="M9 7a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm.75 1H8.5A1.5 1.5 0 0 0 7 9.5h1.25v1.758A1.284 1.284 0 0 0 7 12.538v.212h2.753c.688 0 1.247-.558 1.247-1.247v-.253H9.75V8ZM9 1.714C4.983 1.714 1.714 4.982 1.714 9S4.984 16.286 9 16.286c4.017 0 7.286-3.268 7.286-7.286S13.017 1.714 9 1.714ZM9 15A6 6 0 1 1 9 3a6 6 0 1 1 0 12Z" /></symbol>'});a().add(s);t.default=s},39161:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"line_chart2",use:"line_chart2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="line_chart2"><path d="M17.413 2.667 10.747 8 8.08 5.333l-5.413 4.32v2.56L7.92 8l2.667 2.667 6.666-5.334 4.08 4.08V6.587l-3.92-3.92Zm-2.68 15.986L9.44 13.36 2.667 18.2v2.467l6.56-4.694 5.373 5.374.013-.014 6.72-5.586v-2.614l-6.6 5.52Z" /><path d="m14.587 21.333.013.014.014-.014h-.027Z" /></symbol>'});a().add(s);t.default=s},79962:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"loading",use:"loading-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="loading"><path d="M14.303 18.727h-3.436L3.67 5.273h10.066c4.043.008 7.262 3.172 7.265 7.007-.007 3.536-2.972 6.447-6.697 6.447Z" /></symbol>'});a().add(s);t.default=s},28524:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"metrics",use:"metrics-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="metrics"><path d="M21.83 5.64C21.29 3.55 19.41 2 17.16 2H6.84C4.17 2 2 4.17 2 6.84v6.94c-.61.55-1 1.34-1 2.22 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.46-.11-.89-.3-1.29l1.01-1.01c.39.19.82.3 1.29.3.87 0 1.65-.38 2.2-.97l1.82.78c0 .06-.02.12-.02.19 0 1.65 1.35 3 3 3s3-1.35 3-3c0-.67-.23-1.29-.61-1.79l.88-1.31c.24.06.48.1.73.1 1.65 0 3-1.35 3-3 0-.96-.46-1.81-1.17-2.36ZM4 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm5-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm7 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm1-7c0 .67.23 1.29.61 1.79l-.87 1.31c-.24-.06-.48-.1-.73-.1-.87 0-1.65.38-2.2.97l-1.82-.78c0-.06.02-.12.02-.19 0-1.65-1.35-3-3-3s-3 1.35-3 3c0 .46.11.89.3 1.29L5.29 13.3C4.9 13.11 4.47 13 4 13V6.84C4 5.27 5.28 4 6.84 4h10.31c.89 0 1.68.42 2.2 1.07C18.01 5.37 17 6.57 17 8Zm3 1c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1Zm0 8.16c0 1.57-1.28 2.84-2.84 2.84H6.84c-.46 0-.89-.12-1.28-.32-.48.2-1.01.32-1.56.32-.42 0-.83-.08-1.21-.21A4.84 4.84 0 0 0 6.84 22h10.31c2.67 0 4.84-2.17 4.84-4.84v-5.72c-.59.35-1.27.56-2 .56v5.16H20Z" /></symbol>'});a().add(s);t.default=s},64036:function(e,t,n){"use strict";var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"nav_dots",use:"nav_dots-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="nav_dots"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2Zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Z" /></symbol>'});a().add(s);t.Z=s},67679:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"nav_left",use:"nav_left-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_left"><path d="M4.17 8.67 2.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .745.745 0 0 0-1.01.34L.66 5l2.17 4.33c.19.37.64.52 1.01.34s.52-.63.33-1Zm1.66-8L3.66 5l2.17 4.33c.19.37.64.52 1.01.34.37-.19.52-.64.34-1.01L5.34 5l1.83-3.67a.742.742 0 0 0-.33-1 .74.74 0 0 0-1.01.34Z" /></symbol>'});a().add(s);t.default=s},36179:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"nav_right",use:"nav_right-usage",viewBox:"0 0 8 10",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 10" id="nav_right"><path d="M3.83 1.33 5.66 5 3.83 8.67a.742.742 0 0 0 .33 1c.37.19.82.04 1.01-.34L7.34 5 5.17.67A.763.763 0 0 0 4.16.33c-.37.18-.52.63-.33 1Zm-1.66 8L4.34 5 2.17.67A.763.763 0 0 0 1.16.33C.79.52.64.97.82 1.34L2.66 5 .83 8.67a.742.742 0 0 0 .33 1c.38.19.83.04 1.01-.34Z" /></symbol>'});a().add(s);t.default=s},57138:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"pan_tool",use:"pan_tool-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="pan_tool"><path d="m9.893 3.579.42.157.202-.399a1.497 1.497 0 0 1 1.329-.837c.574 0 1.073.337 1.327.85l.202.406.424-.162c.141-.054.303-.083.48-.083a1.48 1.48 0 0 1 1.471 1.35l.05.572.561-.13a1.576 1.576 0 0 1 1.4.38c.284.296.428.653.428 1.044v8.256c0 3.6-2.851 6.517-6.343 6.517-1.69 0-3.283-.67-4.474-1.91l-.005-.006C6.155 18.36 5.5 16.724 5.5 14.983v-4.706c0-.806.65-1.461 1.477-1.461.112 0 .232.012.347.038l.61.137V4.972c0-.81.655-1.481 1.476-1.481.164 0 .327.029.483.088Zm1.035.418v7.415c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-6.42c0-.522-.442-.933-.956-.933-.515 0-.957.411-.957.934v9.804c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-4.5c0-.22-.09-.459-.265-.638l-.352.343.352-.343a.966.966 0 0 0-.692-.275c-.504 0-.956.382-.956.913v4.706c0 1.584.613 3.082 1.712 4.21 1.1 1.127 2.561 1.76 4.11 1.76 3.129 0 5.667-2.538 5.817-5.676h.047v-8.57a.894.894 0 0 0-.265-.619.966.966 0 0 0-.691-.274c-.495 0-.957.372-.957.872v4.706c0 .167-.13.284-.27.284a.277.277 0 0 1-.27-.284v-6.42c0-.522-.443-.933-.957-.933s-.956.411-.956.934v6.419c0 .167-.13.284-.27.284a.277.277 0 0 1-.271-.284v-7.43c0-.523-.442-.934-.956-.934-.508 0-.967.41-.916.949Z" /></symbol>'});a().add(s);t.default=s},16071:function(e,t,n){"use strict";var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"rearrange",use:"rearrange-usage",viewBox:"0 0 8 14",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 14" id="rearrange"><path d="M1.5 3.5C2.3 3.5 3 2.8 3 2S2.3.5 1.5.5 0 1.2 0 2s.7 1.5 1.5 1.5Zm0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S3 12.8 3 12s-.7-1.5-1.5-1.5Zm0-5C.7 5.5 0 6.2 0 7s.7 1.5 1.5 1.5S3 7.8 3 7s-.7-1.5-1.5-1.5ZM6.5 3.5C7.3 3.5 8 2.8 8 2S7.3.5 6.5.5 5 1.2 5 2s.7 1.5 1.5 1.5Zm0 7c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5S8 12.8 8 12s-.7-1.5-1.5-1.5Zm0-5C5.7 5.5 5 6.2 5 7s.7 1.5 1.5 1.5S8 7.8 8 7s-.7-1.5-1.5-1.5Z" /></symbol>'});a().add(s);t.Z=s},20172:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"reload2",use:"reload2-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="reload2"><path d="M16.795 5.889h2.15a.834.834 0 0 0 0-1.667H13.11v5.833a.834.834 0 0 0 1.666 0v-3.47c1.972 1.014 3.334 3.05 3.334 5.415A6.118 6.118 0 0 1 12 18.11 6.118 6.118 0 0 1 5.889 12c0-2.99 2.16-5.48 5-6.005V4.311C7.12 4.851 4.222 8.082 4.222 12a7.778 7.778 0 1 0 15.555 0 7.741 7.741 0 0 0-2.982-6.111Z" /></symbol>'});a().add(s);t.default=s},259:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"resize_handler",use:"resize_handler-usage",viewBox:"0 0 16 16",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="resize_handler"><path d="M4 11c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm8-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1Zm-4 6c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1Z" /></symbol>'});a().add(s);t.default=s},30871:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"sort_ascending",use:"sort_ascending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_ascending"><path d="M4.97 6.47c-.29.29-.29.77 0 1.06.29.29.77.29 1.06 0l2.22-2.22V15c0 .41.34.75.75.75s.75-.34.75-.75V5.31l2.22 2.22c.29.29.77.29 1.06 0 .15-.15.22-.34.22-.53s-.07-.38-.22-.53L9 2.44 4.97 6.47Z" /></symbol>'});a().add(s);t.default=s},35211:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"sort_descending",use:"sort_descending-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" id="sort_descending"><path d="M13.03 11.53c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.22 2.22V3c0-.41-.34-.75-.75-.75s-.75.34-.75.75v9.69l-2.22-2.22a.754.754 0 0 0-1.06 0c-.15.15-.22.34-.22.53s.07.38.22.53L9 15.56l4.03-4.03Z" /></symbol>'});a().add(s);t.default=s},72457:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"stacked_bar_chart",use:"stacked_bar_chart-usage",viewBox:"0 0 18 18",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18" id="stacked_bar_chart"><path d="M6.75 3a1 1 0 0 1 1-1h2.5a1 1 0 0 1 1 1v7.75h-4.5V3Zm1.125.5a.5.5 0 0 1 .5-.5h1.25a.5.5 0 0 1 .5.5v6h-2.25v-6ZM2 6a1 1 0 0 1 1-1h3.5v4.75H2V6Zm1.125.688a.5.5 0 0 1 .5-.5h1.75v2.638h-2.25V6.687ZM2 10h4.5v6H4.3A2.3 2.3 0 0 1 2 13.7V10Zm1.125 1h2.25v4h-.75a1.5 1.5 0 0 1-1.5-1.5V11Zm8.125 0h-4.5v5h4.5v-5Zm-1.125 1h-2.25v3h2.25v-3ZM16 9h-4.5v7h2.2a2.3 2.3 0 0 0 2.3-2.3V9Zm-1.125 1h-2.25v5h.75a1.5 1.5 0 0 0 1.5-1.5V10ZM11.5 4H15a1 1 0 0 1 1 1v3.75h-4.5V4Zm1.125 1.125h2.25v2.5h-2.25v-2.5Z" clip-rule="evenodd" /></symbol>'});a().add(s);t.default=s},51349:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"stacked_chart",use:"stacked_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="stacked_chart"><path d="m18.116 6.783-4.735-4.06-4.8 3.53-2.936-.698-2.978 3.402v8.45a3.928 3.928 0 0 0 3.924 3.926h10.817a3.928 3.928 0 0 0 3.924-3.924V4.944l-3.216 1.839Zm1.217 10.626a1.926 1.926 0 0 1-1.924 1.924H6.591a1.926 1.926 0 0 1-1.924-1.924v-2.938l1.91 1.358 2.686-1.343 4.042 2.697 6.028-3.618v3.844Zm0-6.176-5.972 3.584-3.956-2.637-2.648 1.324-2.09-1.487V9.71l1.689-1.93 2.663.636 4.266-3.138 4.599 3.942 1.45-.83v2.844Z" /></symbol>'});a().add(s);t.default=s},45724:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"warning_triangle_hollow",use:"warning_triangle_hollow-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="warning_triangle_hollow"><path d="M12 15.8c-.66 0-1.2.54-1.2 1.2 0 .66.54 1.2 1.2 1.2.66 0 1.2-.54 1.2-1.2 0-.66-.54-1.2-1.2-1.2Zm-.37-6.69c-.84.2-1.36 1.05-1.15 1.89l.73 3c.07.29.29.53.6.6.44.11.88-.16.99-.6l.73-3c.06-.23.06-.49 0-.74a1.58 1.58 0 0 0-1.9-1.15Zm10.96 9.19L13.86 3.22A2.137 2.137 0 0 0 12 2.15c-.77 0-1.47.4-1.86 1.07L1.41 18.3c-.45.77-.45 1.69 0 2.47.45.77 1.24 1.23 2.14 1.23h16.91a2.456 2.456 0 0 0 2.13-3.7Zm-1.73 1.47c-.05.09-.17.23-.4.23H3.54c-.23 0-.35-.15-.4-.23a.451.451 0 0 1 0-.47l8.73-15.08c.01-.02.04-.08.13-.08s.12.06.13.08l8.73 15.08c.12.2.05.38 0 .47Z" /></symbol>'});a().add(s);t.default=s},69666:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"zoom_in",use:"zoom_in-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_in"><path d="M13.5 9h-3V6H9v3H6v1.5h3v3h1.5v-3h3V9Z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06L16.086 15ZM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75Z" /></symbol>'});a().add(s);t.default=s},65828:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"zoom_out",use:"zoom_out-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_out"><path d="M13.5 9H6v1.5h7.5V9Z" /><path d="M16.086 15A8.142 8.142 0 0 0 18 9.75 8.25 8.25 0 1 0 9.75 18 8.142 8.142 0 0 0 15 16.086l5.69 5.664 1.06-1.06L16.086 15ZM9.75 16.5a6.75 6.75 0 1 1 6.75-6.75 6.758 6.758 0 0 1-6.75 6.75Z" /></symbol>'});a().add(s);t.default=s},44636:function(e,t,n){"use strict";n.r(t);var r=n(87854),o=n.n(r),i=n(95348),a=n.n(i),s=new(o())({id:"zoom_reset",use:"zoom_reset-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="zoom_reset"><path d="M16.836 15.75a8.141 8.141 0 0 0 1.914-5.25A8.242 8.242 0 0 0 4.5 4.85V1.5H3v6h6V6H5.499a6.733 6.733 0 1 1-1.575 6h-1.53a8.259 8.259 0 0 0 8.106 6.75 8.141 8.141 0 0 0 5.25-1.914l5.69 5.664 1.06-1.06-5.664-5.69Z" /></symbol>'});a().add(s);t.default=s},95348:function(e,t,n){e.exports=function(){"use strict";function e(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self&&self;var t=e((function(e,t){!function(t,n){e.exports=n()}(0,(function(){function e(e){return e&&"object"===typeof e&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)}function t(e){return Array.isArray(e)?[]:{}}function n(n,r){return r&&!0===r.clone&&e(n)?i(t(n),n,r):n}function r(t,r,o){var a=t.slice();return r.forEach((function(r,s){"undefined"===typeof a[s]?a[s]=n(r,o):e(r)?a[s]=i(t[s],r,o):-1===t.indexOf(r)&&a.push(n(r,o))})),a}function o(t,r,o){var a={};return e(t)&&Object.keys(t).forEach((function(e){a[e]=n(t[e],o)})),Object.keys(r).forEach((function(s){e(r[s])&&t[s]?a[s]=i(t[s],r[s],o):a[s]=n(r[s],o)})),a}function i(e,t,i){var a=Array.isArray(t),s=(i||{arrayMerge:r}).arrayMerge||r;return a?Array.isArray(e)?s(e,t,i):n(t,i):o(e,t,i)}return i.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,n){return i(e,n,t)}))},i}))}));function r(e){return e=e||Object.create(null),{on:function(t,n){(e[t]||(e[t]=[])).push(n)},off:function(t,n){e[t]&&e[t].splice(e[t].indexOf(n)>>>0,1)},emit:function(t,n){(e[t]||[]).map((function(e){e(n)})),(e["*"]||[]).map((function(e){e(t,n)}))}}}var o=e((function(e,t){var n={svg:{name:"xmlns",uri:"http://www.w3.org/2000/svg"},xlink:{name:"xmlns:xlink",uri:"http://www.w3.org/1999/xlink"}};t.default=n,e.exports=t.default})),i=function(e){return Object.keys(e).map((function(t){return t+'="'+e[t].toString().replace(/"/g,"&quot;")+'"'})).join(" ")},a=o.svg,s=o.xlink,l={};l[a.name]=a.uri,l[s.name]=s.uri;var u,c=function(e,n){void 0===e&&(e="");var r=t(l,n||{});return"<svg "+i(r)+">"+e+"</svg>"},f=o.svg,d=o.xlink,p={attrs:(u={style:["position: absolute","width: 0","height: 0"].join("; "),"aria-hidden":"true"},u[f.name]=f.uri,u[d.name]=d.uri,u)},h=function(e){this.config=t(p,e||{}),this.symbols=[]};h.prototype.add=function(e){var t=this.symbols,n=this.find(e.id);return n?(t[t.indexOf(n)]=e,!1):(t.push(e),!0)},h.prototype.remove=function(e){var t=this.symbols,n=this.find(e);return!!n&&(t.splice(t.indexOf(n),1),n.destroy(),!0)},h.prototype.find=function(e){return this.symbols.filter((function(t){return t.id===e}))[0]||null},h.prototype.has=function(e){return null!==this.find(e)},h.prototype.stringify=function(){var e=this.config.attrs,t=this.symbols.map((function(e){return e.stringify()})).join("");return c(t,e)},h.prototype.toString=function(){return this.stringify()},h.prototype.destroy=function(){this.symbols.forEach((function(e){return e.destroy()}))};var g=function(e){var t=e.id,n=e.viewBox,r=e.content;this.id=t,this.viewBox=n,this.content=r};g.prototype.stringify=function(){return this.content},g.prototype.toString=function(){return this.stringify()},g.prototype.destroy=function(){var e=this;["id","viewBox","content"].forEach((function(t){return delete e[t]}))};var v=function(e){var t=!!document.importNode,n=(new DOMParser).parseFromString(e,"image/svg+xml").documentElement;return t?document.importNode(n,!0):n},m=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={isMounted:{}};return n.isMounted.get=function(){return!!this.node},t.createFromExistingNode=function(e){return new t({id:e.getAttribute("id"),viewBox:e.getAttribute("viewBox"),content:e.outerHTML})},t.prototype.destroy=function(){this.isMounted&&this.unmount(),e.prototype.destroy.call(this)},t.prototype.mount=function(e){if(this.isMounted)return this.node;var t="string"===typeof e?document.querySelector(e):e,n=this.render();return this.node=n,t.appendChild(n),n},t.prototype.render=function(){var e=this.stringify();return v(c(e)).childNodes[0]},t.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},Object.defineProperties(t.prototype,n),t}(g),y={autoConfigure:!0,mountTo:"body",syncUrlsWithBaseTag:!1,listenLocationChangeEvent:!0,locationChangeEvent:"locationChange",locationChangeAngularEmitter:!1,usagesToUpdate:"use[*|href]",moveGradientsOutsideSymbol:!1},b=function(e){return Array.prototype.slice.call(e,0)},w={isChrome:function(){return/chrome/i.test(navigator.userAgent)},isFirefox:function(){return/firefox/i.test(navigator.userAgent)},isIE:function(){return/msie/i.test(navigator.userAgent)||/trident/i.test(navigator.userAgent)},isEdge:function(){return/edge/i.test(navigator.userAgent)}},_=function(e,t){var n=document.createEvent("CustomEvent");n.initCustomEvent(e,!1,!1,t),window.dispatchEvent(n)},x=function(e){var t=[];return b(e.querySelectorAll("style")).forEach((function(e){e.textContent+="",t.push(e)})),t},S=function(e){return(e||window.location.href).split("#")[0]},O=function(e){angular.module("ng").run(["$rootScope",function(t){t.$on("$locationChangeSuccess",(function(t,n,r){_(e,{oldUrl:r,newUrl:n})}))}])},C="linearGradient, radialGradient, pattern, mask, clipPath",E=function(e,t){return void 0===t&&(t=C),b(e.querySelectorAll("symbol")).forEach((function(e){b(e.querySelectorAll(t)).forEach((function(t){e.parentNode.insertBefore(t,e)}))})),e};function A(e,t){return b(e).reduce((function(e,n){if(!n.attributes)return e;var r=b(n.attributes),o=t?r.filter(t):r;return e.concat(o)}),[])}var k=o.xlink.uri,M="xlink:href",P=/[{}|\\\^\[\]`"<>]/g;function R(e){return e.replace(P,(function(e){return"%"+e[0].charCodeAt(0).toString(16).toUpperCase()}))}function T(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function I(e,t,n){return b(e).forEach((function(e){var r=e.getAttribute(M);if(r&&0===r.indexOf(t)){var o=r.replace(t,n);e.setAttributeNS(k,M,o)}})),e}var B,j=["clipPath","colorProfile","src","cursor","fill","filter","marker","markerStart","markerMid","markerEnd","mask","stroke","style"],D=j.map((function(e){return"["+e+"]"})).join(","),L=function(e,t,n,r){var o=R(n),i=R(r);A(e.querySelectorAll(D),(function(e){var t=e.localName,n=e.value;return-1!==j.indexOf(t)&&-1!==n.indexOf("url("+o)})).forEach((function(e){return e.value=e.value.replace(new RegExp(T(o),"g"),i)})),I(t,o,i)},Z={MOUNT:"mount",SYMBOL_MOUNT:"symbol_mount"},N=function(e){function n(n){var o=this;void 0===n&&(n={}),e.call(this,t(y,n));var i=r();this._emitter=i,this.node=null;var a=this.config;if(a.autoConfigure&&this._autoConfigure(n),a.syncUrlsWithBaseTag){var s=document.getElementsByTagName("base")[0].getAttribute("href");i.on(Z.MOUNT,(function(){return o.updateUrls("#",s)}))}var l=this._handleLocationChange.bind(this);this._handleLocationChange=l,a.listenLocationChangeEvent&&window.addEventListener(a.locationChangeEvent,l),a.locationChangeAngularEmitter&&O(a.locationChangeEvent),i.on(Z.MOUNT,(function(e){a.moveGradientsOutsideSymbol&&E(e)})),i.on(Z.SYMBOL_MOUNT,(function(e){a.moveGradientsOutsideSymbol&&E(e.parentNode),(w.isIE()||w.isEdge())&&x(e)}))}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var o={isMounted:{}};return o.isMounted.get=function(){return!!this.node},n.prototype._autoConfigure=function(e){var t=this.config;"undefined"===typeof e.syncUrlsWithBaseTag&&(t.syncUrlsWithBaseTag="undefined"!==typeof document.getElementsByTagName("base")[0]),"undefined"===typeof e.locationChangeAngularEmitter&&(t.locationChangeAngularEmitter="undefined"!==typeof window.angular),"undefined"===typeof e.moveGradientsOutsideSymbol&&(t.moveGradientsOutsideSymbol=w.isFirefox())},n.prototype._handleLocationChange=function(e){var t=e.detail,n=t.oldUrl,r=t.newUrl;this.updateUrls(n,r)},n.prototype.add=function(t){var n=this,r=e.prototype.add.call(this,t);return this.isMounted&&r&&(t.mount(n.node),this._emitter.emit(Z.SYMBOL_MOUNT,t.node)),r},n.prototype.attach=function(e){var t=this,n=this;if(n.isMounted)return n.node;var r="string"===typeof e?document.querySelector(e):e;return n.node=r,this.symbols.forEach((function(e){e.mount(n.node),t._emitter.emit(Z.SYMBOL_MOUNT,e.node)})),b(r.querySelectorAll("symbol")).forEach((function(e){var t=m.createFromExistingNode(e);t.node=e,n.add(t)})),this._emitter.emit(Z.MOUNT,r),r},n.prototype.destroy=function(){var e=this,t=e.config,n=e.symbols,r=e._emitter;n.forEach((function(e){return e.destroy()})),r.off("*"),window.removeEventListener(t.locationChangeEvent,this._handleLocationChange),this.isMounted&&this.unmount()},n.prototype.mount=function(e,t){void 0===e&&(e=this.config.mountTo),void 0===t&&(t=!1);var n=this;if(n.isMounted)return n.node;var r="string"===typeof e?document.querySelector(e):e,o=n.render();return this.node=o,t&&r.childNodes[0]?r.insertBefore(o,r.childNodes[0]):r.appendChild(o),this._emitter.emit(Z.MOUNT,o),o},n.prototype.render=function(){return v(this.stringify())},n.prototype.unmount=function(){this.node.parentNode.removeChild(this.node)},n.prototype.updateUrls=function(e,t){if(!this.isMounted)return!1;var n=document.querySelectorAll(this.config.usagesToUpdate);return L(this.node,n,S(e)+"#",S(t)+"#"),!0},Object.defineProperties(n.prototype,o),n}(h),F=e((function(e){var t;t=function(){var e,t=[],n=document,r=n.documentElement.doScroll,o="DOMContentLoaded",i=(r?/^loaded|^c/:/^loaded|^i|^c/).test(n.readyState);return i||n.addEventListener(o,e=function(){for(n.removeEventListener(o,e),i=1;e=t.shift();)e()}),function(e){i?setTimeout(e,0):t.push(e)}},e.exports=t()})),H="__SVG_SPRITE_NODE__",V="__SVG_SPRITE__";window[V]?B=window[V]:(B=new N({attrs:{id:H,"aria-hidden":"true"}}),window[V]=B);var z=function(){var e=document.getElementById(H);e?B.attach(e):B.mount(document.body,!0)};return document.body?z():F(z),B}()},67429:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NIL",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(t,"v1",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"v3",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"v4",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"v5",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"version",{enumerable:!0,get:function(){return l.default}});var r=d(n(63990)),o=d(n(8237)),i=d(n(75355)),a=d(n(83764)),s=d(n(86314)),l=d(n(88421)),u=d(n(46435)),c=d(n(73990)),f=d(n(38627));function d(e){return e&&e.__esModule?e:{default:e}}},94163:function(e,t){"use strict";function n(e){return 14+(e+64>>>9<<4)+1}function r(e,t){const n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function o(e,t,n,o,i,a){return r((s=r(r(t,e),r(o,a)))<<(l=i)|s>>>32-l,n);var s,l}function i(e,t,n,r,i,a,s){return o(t&n|~t&r,e,t,i,a,s)}function a(e,t,n,r,i,a,s){return o(t&r|n&~r,e,t,i,a,s)}function s(e,t,n,r,i,a,s){return o(t^n^r,e,t,i,a,s)}function l(e,t,n,r,i,a,s){return o(n^(t|~r),e,t,i,a,s)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=function(e){if("string"===typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return function(e){const t=[],n=32*e.length,r="0123456789abcdef";for(let o=0;o<n;o+=8){const n=e[o>>5]>>>o%32&255,i=parseInt(r.charAt(n>>>4&15)+r.charAt(15&n),16);t.push(i)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[n(t)-1]=t;let o=1732584193,u=-271733879,c=-1732584194,f=271733878;for(let n=0;n<e.length;n+=16){const t=o,d=u,p=c,h=f;o=i(o,u,c,f,e[n],7,-680876936),f=i(f,o,u,c,e[n+1],12,-389564586),c=i(c,f,o,u,e[n+2],17,606105819),u=i(u,c,f,o,e[n+3],22,-1044525330),o=i(o,u,c,f,e[n+4],7,-176418897),f=i(f,o,u,c,e[n+5],12,1200080426),c=i(c,f,o,u,e[n+6],17,-1473231341),u=i(u,c,f,o,e[n+7],22,-45705983),o=i(o,u,c,f,e[n+8],7,1770035416),f=i(f,o,u,c,e[n+9],12,-1958414417),c=i(c,f,o,u,e[n+10],17,-42063),u=i(u,c,f,o,e[n+11],22,-1990404162),o=i(o,u,c,f,e[n+12],7,1804603682),f=i(f,o,u,c,e[n+13],12,-40341101),c=i(c,f,o,u,e[n+14],17,-1502002290),u=i(u,c,f,o,e[n+15],22,1236535329),o=a(o,u,c,f,e[n+1],5,-165796510),f=a(f,o,u,c,e[n+6],9,-1069501632),c=a(c,f,o,u,e[n+11],14,643717713),u=a(u,c,f,o,e[n],20,-373897302),o=a(o,u,c,f,e[n+5],5,-701558691),f=a(f,o,u,c,e[n+10],9,38016083),c=a(c,f,o,u,e[n+15],14,-660478335),u=a(u,c,f,o,e[n+4],20,-405537848),o=a(o,u,c,f,e[n+9],5,568446438),f=a(f,o,u,c,e[n+14],9,-1019803690),c=a(c,f,o,u,e[n+3],14,-187363961),u=a(u,c,f,o,e[n+8],20,1163531501),o=a(o,u,c,f,e[n+13],5,-1444681467),f=a(f,o,u,c,e[n+2],9,-51403784),c=a(c,f,o,u,e[n+7],14,1735328473),u=a(u,c,f,o,e[n+12],20,-1926607734),o=s(o,u,c,f,e[n+5],4,-378558),f=s(f,o,u,c,e[n+8],11,-2022574463),c=s(c,f,o,u,e[n+11],16,1839030562),u=s(u,c,f,o,e[n+14],23,-35309556),o=s(o,u,c,f,e[n+1],4,-1530992060),f=s(f,o,u,c,e[n+4],11,1272893353),c=s(c,f,o,u,e[n+7],16,-155497632),u=s(u,c,f,o,e[n+10],23,-1094730640),o=s(o,u,c,f,e[n+13],4,681279174),f=s(f,o,u,c,e[n],11,-358537222),c=s(c,f,o,u,e[n+3],16,-722521979),u=s(u,c,f,o,e[n+6],23,76029189),o=s(o,u,c,f,e[n+9],4,-640364487),f=s(f,o,u,c,e[n+12],11,-421815835),c=s(c,f,o,u,e[n+15],16,530742520),u=s(u,c,f,o,e[n+2],23,-995338651),o=l(o,u,c,f,e[n],6,-198630844),f=l(f,o,u,c,e[n+7],10,1126891415),c=l(c,f,o,u,e[n+14],15,-1416354905),u=l(u,c,f,o,e[n+5],21,-57434055),o=l(o,u,c,f,e[n+12],6,1700485571),f=l(f,o,u,c,e[n+3],10,-1894986606),c=l(c,f,o,u,e[n+10],15,-1051523),u=l(u,c,f,o,e[n+1],21,-2054922799),o=l(o,u,c,f,e[n+8],6,1873313359),f=l(f,o,u,c,e[n+15],10,-30611744),c=l(c,f,o,u,e[n+6],15,-1560198380),u=l(u,c,f,o,e[n+13],21,1309151649),o=l(o,u,c,f,e[n+4],6,-145523070),f=l(f,o,u,c,e[n+11],10,-1120210379),c=l(c,f,o,u,e[n+2],15,718787259),u=l(u,c,f,o,e[n+9],21,-343485551),o=r(o,t),u=r(u,d),c=r(c,p),f=r(f,h)}return[o,u,c,f]}(function(e){if(0===e.length)return[];const t=8*e.length,r=new Uint32Array(n(t));for(let n=0;n<t;n+=8)r[n>>5]|=(255&e[n/8])<<n%32;return r}(e),8*e.length))};t.default=u},54790:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={randomUUID:"undefined"!==typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};t.default=n},86314:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default="00000000-0000-0000-0000-000000000000"},38627:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(46435))&&r.__esModule?r:{default:r};var i=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");let t;const n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n};t.default=i},70058:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},33319:function(e,t){"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!n&&(n="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!n))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(r)};const r=new Uint8Array(16)},93757:function(e,t){"use strict";function n(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:case 3:return t^n^r;case 2:return t&n^t&r^n&r}}function r(e,t){return e<<t|e>>>32-t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){const t=[1518500249,1859775393,2400959708,3395469782],o=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"===typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const i=e.length/4+2,a=Math.ceil(i/16),s=new Array(a);for(let n=0;n<a;++n){const t=new Uint32Array(16);for(let r=0;r<16;++r)t[r]=e[64*n+4*r]<<24|e[64*n+4*r+1]<<16|e[64*n+4*r+2]<<8|e[64*n+4*r+3];s[n]=t}s[a-1][14]=8*(e.length-1)/Math.pow(2,32),s[a-1][14]=Math.floor(s[a-1][14]),s[a-1][15]=8*(e.length-1)&4294967295;for(let l=0;l<a;++l){const e=new Uint32Array(80);for(let t=0;t<16;++t)e[t]=s[l][t];for(let t=16;t<80;++t)e[t]=r(e[t-3]^e[t-8]^e[t-14]^e[t-16],1);let i=o[0],a=o[1],u=o[2],c=o[3],f=o[4];for(let o=0;o<80;++o){const s=Math.floor(o/20),l=r(i,5)+n(s,a,u,c)+f+t[s]+e[o]>>>0;f=c,c=u,u=r(a,30)>>>0,a=i,i=l}o[0]=o[0]+i>>>0,o[1]=o[1]+a>>>0,o[2]=o[2]+u>>>0,o[3]=o[3]+c>>>0,o[4]=o[4]+f>>>0}return[o[0]>>24&255,o[0]>>16&255,o[0]>>8&255,255&o[0],o[1]>>24&255,o[1]>>16&255,o[1]>>8&255,255&o[1],o[2]>>24&255,o[2]>>16&255,o[2]>>8&255,255&o[2],o[3]>>24&255,o[3]>>16&255,o[3]>>8&255,255&o[3],o[4]>>24&255,o[4]>>16&255,o[4]>>8&255,255&o[4]]};t.default=o},73990:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.unsafeStringify=a;var r,o=(r=n(46435))&&r.__esModule?r:{default:r};const i=[];for(let l=0;l<256;++l)i.push((l+256).toString(16).slice(1));function a(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}var s=function(e,t=0){const n=a(e,t);if(!(0,o.default)(n))throw TypeError("Stringified UUID is invalid");return n};t.default=s},63990:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(33319))&&r.__esModule?r:{default:r},i=n(73990);let a,s,l=0,u=0;var c=function(e,t,n){let r=t&&n||0;const c=t||new Array(16);let f=(e=e||{}).node||a,d=void 0!==e.clockseq?e.clockseq:s;if(null==f||null==d){const t=e.random||(e.rng||o.default)();null==f&&(f=a=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==d&&(d=s=16383&(t[6]<<8|t[7]))}let p=void 0!==e.msecs?e.msecs:Date.now(),h=void 0!==e.nsecs?e.nsecs:u+1;const g=p-l+(h-u)/1e4;if(g<0&&void 0===e.clockseq&&(d=d+1&16383),(g<0||p>l)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");l=p,u=h,s=d,p+=122192928e5;const v=(1e4*(268435455&p)+h)%4294967296;c[r++]=v>>>24&255,c[r++]=v>>>16&255,c[r++]=v>>>8&255,c[r++]=255&v;const m=p/4294967296*1e4&268435455;c[r++]=m>>>8&255,c[r++]=255&m,c[r++]=m>>>24&15|16,c[r++]=m>>>16&255,c[r++]=d>>>8|128,c[r++]=255&d;for(let o=0;o<6;++o)c[r+o]=f[o];return t||(0,i.unsafeStringify)(c)};t.default=c},8237:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(17925)),o=i(n(94163));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v3",48,o.default);t.default=a},17925:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.URL=t.DNS=void 0,t.default=function(e,t,n){function r(e,r,a,s){var l;if("string"===typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}(e)),"string"===typeof r&&(r=(0,i.default)(r)),16!==(null===(l=r)||void 0===l?void 0:l.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let u=new Uint8Array(16+e.length);if(u.set(r),u.set(e,r.length),u=n(u),u[6]=15&u[6]|t,u[8]=63&u[8]|128,a){s=s||0;for(let e=0;e<16;++e)a[s+e]=u[e];return a}return(0,o.unsafeStringify)(u)}try{r.name=e}catch(l){}return r.DNS=a,r.URL=s,r};var r,o=n(73990),i=(r=n(38627))&&r.__esModule?r:{default:r};const a="6ba7b810-9dad-11d1-80b4-00c04fd430c8";t.DNS=a;const s="6ba7b811-9dad-11d1-80b4-00c04fd430c8";t.URL=s},75355:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n(54790)),o=a(n(33319)),i=n(73990);function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e,t,n){if(r.default.randomUUID&&!t&&!e)return r.default.randomUUID();const a=(e=e||{}).random||(e.rng||o.default)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=a[e];return t}return(0,i.unsafeStringify)(a)};t.default=s},83764:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(17925)),o=i(n(93757));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,r.default)("v5",80,o.default);t.default=a},46435:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(70058))&&r.__esModule?r:{default:r};var i=function(e){return"string"===typeof e&&o.default.test(e)};t.default=i},88421:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(46435))&&r.__esModule?r:{default:r};var i=function(e){if(!(0,o.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)};t.default=i},2375:function(e,t){"use strict";t.Z="00000000-0000-0000-0000-000000000000"},28721:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r={randomUUID:"undefined"!==typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let o;const i=new Uint8Array(16);function a(){if(!o&&(o="undefined"!==typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!o))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return o(i)}const s=[];for(let c=0;c<256;++c)s.push((c+256).toString(16).slice(1));function l(e,t=0){return(s[e[t+0]]+s[e[t+1]]+s[e[t+2]]+s[e[t+3]]+"-"+s[e[t+4]]+s[e[t+5]]+"-"+s[e[t+6]]+s[e[t+7]]+"-"+s[e[t+8]]+s[e[t+9]]+"-"+s[e[t+10]]+s[e[t+11]]+s[e[t+12]]+s[e[t+13]]+s[e[t+14]]+s[e[t+15]]).toLowerCase()}var u=function(e,t,n){if(r.randomUUID&&!t&&!e)return r.randomUUID();const o=(e=e||{}).random||(e.rng||a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=o[e];return t}return l(o)}},17061:function(e,t,n){var r=n(18698).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,i=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},s="function"==typeof Symbol?Symbol:{},l=s.iterator||"@@iterator",u=s.asyncIterator||"@@asyncIterator",c=s.toStringTag||"@@toStringTag";function f(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(R){f=function(e,t,n){return e[t]=n}}function d(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),s=new k(r||[]);return a(i,"_invoke",{value:O(e,n,s)}),i}function p(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(R){return{type:"throw",arg:R}}}t.wrap=d;var h={};function g(){}function v(){}function m(){}var y={};f(y,l,(function(){return this}));var b=Object.getPrototypeOf,w=b&&b(b(M([])));w&&w!==n&&i.call(w,l)&&(y=w);var _=m.prototype=g.prototype=Object.create(y);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function n(o,a,s,l){var u=p(e[o],e,a);if("throw"!==u.type){var c=u.arg,f=c.value;return f&&"object"==r(f)&&i.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,s,l)}),(function(e){n("throw",e,s,l)})):t.resolve(f).then((function(e){c.value=e,s(c)}),(function(e){return n("throw",e,s,l)}))}l(u.arg)}var o;a(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}})}function O(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return P()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=C(a,n);if(s){if(s===h)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=p(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function C(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var o=p(r,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function E(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(E,this),this.reset(!0)}function M(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(i.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return r.next=r}}return{next:P}}function P(){return{value:void 0,done:!0}}return v.prototype=m,a(_,"constructor",{value:m,configurable:!0}),a(m,"constructor",{value:v,configurable:!0}),v.displayName=f(m,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,f(e,c,"GeneratorFunction")),e.prototype=Object.create(_),e},t.awrap=function(e){return{__await:e}},x(S.prototype),f(S.prototype,u,(function(){return this})),t.AsyncIterator=S,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new S(d(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},x(_),f(_,c,"Generator"),f(_,l,(function(){return this})),f(_,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=M,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(A),!e)for(var t in this)"t"===t.charAt(0)&&i.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var s=i.call(o,"catchLoc"),l=i.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,h):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;A(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:M(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},18698:function(e){function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},64687:function(e,t,n){var r=n(17061)();e.exports=r;try{regeneratorRuntime=r}catch(o){"object"===typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},42189:function(e,t){"use strict";function n(e,t,n){var r,o=n||{},i=o.noTrailing,a=void 0!==i&&i,s=o.noLeading,l=void 0!==s&&s,u=o.debounceMode,c=void 0===u?void 0:u,f=!1,d=0;function p(){r&&clearTimeout(r)}function h(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var s=this,u=Date.now()-d;function h(){d=Date.now(),t.apply(s,o)}function g(){r=void 0}f||(l||!c||r||h(),p(),void 0===c&&u>e?l?(d=Date.now(),a||(r=setTimeout(c?g:h,e))):h():!0!==a&&(r=setTimeout(c?g:h,void 0===c?e-u:e)))}return h.cancel=function(e){var t=(e||{}).upcomingOnly,n=void 0!==t&&t;p(),f=!n},h}Object.defineProperty(t,"__esModule",{value:!0}),t.debounce=function(e,t,r){var o=(r||{}).atBegin;return n(e,t,{debounceMode:!1!==(void 0!==o&&o)})},t.throttle=n},30907:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},83878:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97326:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},15861:function(e,t,n){"use strict";function r(e,t,n,r,o,i,a){try{var s=e[i](a),l=s.value}catch(u){return void n(u)}s.done?t(l):Promise.resolve(l).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function s(e){r(a,o,i,s,l,"next",e)}function l(e){r(a,o,i,s,l,"throw",e)}s(void 0)}))}}n.d(t,{Z:function(){return o}})},15671:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},43144:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(49142);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,(0,r.Z)(o.key),o)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}},29388:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(61120),o=n(78814),i=n(82963);function a(e){var t=(0,o.Z)();return function(){var n,o=(0,r.Z)(e);if(t){var a=(0,r.Z)(this).constructor;n=Reflect.construct(o,arguments,a)}else n=o.apply(this,arguments);return(0,i.Z)(this,n)}}},4942:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(49142);function o(e,t,n){return(t=(0,r.Z)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},87462:function(e,t,n){"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},61120:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},60136:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(89611);function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,r.Z)(e,t)}},78814:function(e,t,n){"use strict";function r(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},59199:function(e,t,n){"use strict";function r(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},25267:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},36459:function(e,t,n){"use strict";function r(e){if(null==e)throw new TypeError("Cannot destructure "+e)}n.d(t,{Z:function(){return r}})},45987:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(63366);function o(e,t){if(null==e)return{};var n,o,i=(0,r.Z)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},63366:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:function(){return r}})},82963:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(71002),o=n(97326);function i(e,t){if(t&&("object"===(0,r.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,o.Z)(e)}},89611:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},29439:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(83878);var o=n(40181),i=n(25267);function a(e,t){return(0,r.Z)(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(c){u=!0,o=c}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,t)||(0,o.Z)(e,t)||(0,i.Z)()}},84506:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(83878),o=n(59199),i=n(40181),a=n(25267);function s(e){return(0,r.Z)(e)||(0,o.Z)(e)||(0,i.Z)(e)||(0,a.Z)()}},93433:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(30907);var o=n(59199),i=n(40181);function a(e){return function(e){if(Array.isArray(e))return(0,r.Z)(e)}(e)||(0,o.Z)(e)||(0,i.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},49142:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(71002);function o(e){var t=function(e,t){if("object"!==(0,r.Z)(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==(0,r.Z)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===(0,r.Z)(t)?t:String(t)}},71002:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:function(){return r}})},40181:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(30907);function o(e,t){if(e){if("string"===typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},71059:function(e,t,n){"use strict";n.d(t,{MG:function(){return m}});var r=n(67294);function o(e,t,n){let r,o=[];return()=>{let i;n.key&&null!=n.debug&&n.debug()&&(i=Date.now());const a=e();if(!(a.length!==o.length||a.some(((e,t)=>o[t]!==e))))return r;let s;if(o=a,n.key&&null!=n.debug&&n.debug()&&(s=Date.now()),r=t(...a),null==n||null==n.onChange||n.onChange(r),n.key&&null!=n.debug&&n.debug()){const e=Math.round(100*(Date.now()-i))/100,t=Math.round(100*(Date.now()-s))/100,r=t/16,o=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c\u23f1 ${o(t,5)} /${o(e,5)} ms`,`\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,null==n?void 0:n.key)}return r}}const i=e=>e,a=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let o=t;o<=n;o++)r.push(o);return r},s=(e,t)=>{const n=new ResizeObserver((e=>{var n,r;t({width:null==(n=e[0])?void 0:n.contentRect.width,height:null==(r=e[0])?void 0:r.contentRect.height})}));if(e.scrollElement)return t(e.scrollElement.getBoundingClientRect()),n.observe(e.scrollElement),()=>{n.unobserve(e.scrollElement)}},l={element:["scrollLeft","scrollTop"],window:["scrollX","scrollY"]},u=e=>(t,n)=>{if(!t.scrollElement)return;const r=l[e][0],o=l[e][1];let i=t.scrollElement[r],a=t.scrollElement[o];const s=()=>{const e=t.scrollElement[t.options.horizontal?r:o];n(Math.max(0,e-t.options.scrollMargin))};s();const u=e=>{const n=e.currentTarget,l=n[r],u=n[o];(t.options.horizontal?i-l:a-u)&&s(),i=l,a=u};return t.scrollElement.addEventListener("scroll",u,{capture:!1,passive:!0}),()=>{t.scrollElement.removeEventListener("scroll",u)}},c=u("element"),f=(u("window"),(e,t)=>Math.round(e.getBoundingClientRect()[t.options.horizontal?"width":"height"])),d=(e,t,n)=>{var r;let{adjustments:o,behavior:i,sync:a}=t;const s=(a?e:e+n.options.scrollMargin)+(o??0);null==(r=n.scrollElement)||null==r.scrollTo||r.scrollTo({[n.options.horizontal?"left":"top"]:s,behavior:i})};class p{constructor(e){var t=this;this.unsubs=[],this.scrollElement=null,this.isScrolling=!1,this.isScrollingTimeoutId=null,this.measurementsCache=[],this.itemMeasurementsCache={},this.pendingMeasuredCacheIndexes=[],this.scrollAdjustments=0,this.measureElementCache={},this.pendingScrollToIndexCallback=null,this.getResizeObserver=(()=>{let e=null;return()=>e||("undefined"!==typeof ResizeObserver?e=new ResizeObserver((e=>{e.forEach((e=>{this._measureElement(e.target,!1)}))})):null)})(),this.range={startIndex:0,endIndex:0},this.setOptions=e=>{Object.entries(e).forEach((t=>{let[n,r]=t;"undefined"===typeof r&&delete e[n]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:i,rangeExtractor:a,onChange:()=>{},measureElement:f,initialRect:{width:0,height:0},scrollMargin:0,scrollingDelay:150,indexAttribute:"data-index",...e}},this.notify=()=>{var e,t;null==(e=(t=this.options).onChange)||e.call(t,this)},this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((e=>e())),this.unsubs=[],this.scrollElement=null},this._didMount=()=>{const e=this.getResizeObserver();return Object.values(this.measureElementCache).forEach((t=>null==e?void 0:e.observe(t))),()=>{null==e||e.disconnect(),this.cleanup()}},this._willUpdate=()=>{var e;null==(e=this.pendingScrollToIndexCallback)||e.call(this);const t=this.options.getScrollElement();this.scrollElement!==t?(this.cleanup(),this.scrollElement=t,this._scrollToOffset(this.scrollOffset,{adjustments:void 0,behavior:void 0,sync:!0}),this.unsubs.push(this.options.observeElementRect(this,(e=>{this.scrollRect=e,this.calculateRange()}))),this.unsubs.push(this.options.observeElementOffset(this,(e=>{null!==this.isScrollingTimeoutId&&(clearTimeout(this.isScrollingTimeoutId),this.isScrollingTimeoutId=null),this.scrollOffset!==e?(this.scrollOffset=e,this.isScrolling=!0,this.scrollAdjustments=0,this.isScrollingTimeoutId=setTimeout((()=>{this.isScrollingTimeoutId=null,this.isScrolling=!1,this.notify()}),this.options.scrollingDelay)):(this.isScrolling=!1,this.scrollAdjustments=0),this.calculateRange()})))):this.isScrolling||this.calculateRange()},this.getSize=()=>this.scrollRect[this.options.horizontal?"width":"height"],this.getMeasurements=o((()=>[this.options.count,this.options.paddingStart,this.options.getItemKey,this.itemMeasurementsCache]),((e,t,n,r)=>{const o=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const i=this.measurementsCache.slice(0,o);for(let a=o;a<e;a++){const e=n(a),o=r[e],s=i[a-1]?i[a-1].end:t,l="number"===typeof o?o:this.options.estimateSize(a),u=s+l;i[a]={index:a,start:s,size:l,end:u,key:e}}return this.measurementsCache=i,i}),{key:!1,debug:()=>this.options.debug}),this.calculateRange=o((()=>[this.getMeasurements(),this.getSize(),this.scrollOffset]),((e,t,n)=>{const r=function(e){let{measurements:t,outerSize:n,scrollOffset:r}=e;const o=t.length-1,i=e=>t[e].start,a=h(0,o,i,r);let s=a;for(;s<o&&t[s].end<r+n;)s++;return{startIndex:a,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:n});return r.startIndex===this.range.startIndex&&r.endIndex===this.range.endIndex||(this.range=r,this.notify()),this.range}),{key:!1,debug:()=>this.options.debug}),this.getIndexes=o((()=>[this.options.rangeExtractor,this.range,this.options.overscan,this.options.count]),((e,t,n,r)=>e({...t,overscan:n,count:r})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;const o=this.measureElementCache[r.key],i=this.getResizeObserver();if(!e.isConnected)return void(o&&(null==i||i.unobserve(o),delete this.measureElementCache[r.key]));o&&o===e||(o&&(null==i||i.unobserve(o)),this.measureElementCache[r.key]=e,null==i||i.observe(e));const a=this.options.measureElement(e,this),s=a-(this.itemMeasurementsCache[r.key]??r.size);0!==s&&(r.start<this.scrollOffset&&this.isScrolling&&this._scrollToOffset(this.scrollOffset,{adjustments:this.scrollAdjustments+=s,behavior:void 0,sync:!1}),this.pendingMeasuredCacheIndexes.push(n),this.itemMeasurementsCache={...this.itemMeasurementsCache,[r.key]:a},this.notify())},this.measureElement=e=>{e&&this._measureElement(e,!0)},this.getVirtualItems=o((()=>[this.getIndexes(),this.getMeasurements()]),((e,t)=>{const n=[];for(let r=0,o=e.length;r<o;r++){const o=t[e[r]];n.push(o)}return n}),{key:!1,debug:()=>this.options.debug}),this.scrollToOffset=function(e,n){let{align:r="start",behavior:o}=void 0===n?{}:n;const i=t.scrollOffset,a=t.getSize();"auto"===r&&(r=e<=i?"start":e>=i+a?"end":"start");const s={adjustments:void 0,behavior:o,sync:!1};"start"===r?t._scrollToOffset(e,s):"end"===r?t._scrollToOffset(e-a,s):"center"===r&&t._scrollToOffset(e-a/2,s)},this.scrollToIndex=function(e,n){let{align:r="auto",...o}=void 0===n?{}:n;t.pendingScrollToIndexCallback=null;const i=t.getMeasurements(),a=t.scrollOffset,s=t.getSize(),{count:l}=t.options,u=i[Math.max(0,Math.min(e,l-1))];if(!u)return;if("auto"===r)if(u.end>=a+s-t.options.scrollPaddingEnd)r="end";else{if(!(u.start<=a+t.options.scrollPaddingStart))return;r="start"}const c="end"===r?u.end+t.options.scrollPaddingEnd:u.start-t.options.scrollPaddingStart;t.scrollToOffset(c,{align:r,...o});if(Object.keys(t.measureElementCache).length>0){const n=()=>"number"===typeof t.itemMeasurementsCache[t.options.getItemKey(e)];n()||(t.pendingScrollToIndexCallback=()=>{n()&&(t.pendingScrollToIndexCallback=null,t.scrollToIndex(e,{align:r,...o}))})}},this.getTotalSize=()=>{var e;return((null==(e=this.getMeasurements()[this.options.count-1])?void 0:e.end)||this.options.paddingStart)+this.options.paddingEnd},this._scrollToOffset=(e,t)=>{let{adjustments:n,behavior:r,sync:o}=t;this.options.scrollToFn(e,{behavior:r,sync:o,adjustments:n},this)},this.measure=()=>{this.itemMeasurementsCache={},this.notify()},this.setOptions(e),this.scrollRect=this.options.initialRect,this.scrollOffset=this.options.initialOffset,this.calculateRange()}}const h=(e,t,n,r)=>{for(;e<=t;){const o=(e+t)/2|0,i=n(o);if(i<r)e=o+1;else{if(!(i>r))return o;t=o-1}}return e>0?e-1:0};const g="undefined"!==typeof window?r.useLayoutEffect:r.useEffect;function v(e){const t=r.useReducer((()=>({})),{})[1],n={...e,onChange:n=>{t(),null==e.onChange||e.onChange(n)}},[o]=r.useState((()=>new p(n)));return o.setOptions(n),r.useEffect((()=>o._didMount()),[]),g((()=>o._willUpdate())),o}function m(e){return v({observeElementRect:s,observeElementOffset:c,scrollToFn:d,...e})}},52861:function(e,t,n){"use strict";function r(e,t){return function(){return e.apply(t,arguments)}}n.d(t,{Z:function(){return Ve}});const{toString:o}=Object.prototype,{getPrototypeOf:i}=Object,a=(s=Object.create(null),e=>{const t=o.call(e);return s[t]||(s[t]=t.slice(8,-1).toLowerCase())});var s;const l=e=>(e=e.toLowerCase(),t=>a(t)===e),u=e=>t=>typeof t===e,{isArray:c}=Array,f=u("undefined");const d=l("ArrayBuffer");const p=u("string"),h=u("function"),g=u("number"),v=e=>null!==e&&"object"===typeof e,m=e=>{if("object"!==a(e))return!1;const t=i(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},y=l("Date"),b=l("File"),w=l("Blob"),_=l("FileList"),x=l("URLSearchParams");function S(e,t,{allOwnKeys:n=!1}={}){if(null===e||"undefined"===typeof e)return;let r,o;if("object"!==typeof e&&(e=[e]),c(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=n?Object.getOwnPropertyNames(e):Object.keys(e),i=o.length;let a;for(r=0;r<i;r++)a=o[r],t.call(null,e[a],a,e)}}function O(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,o=n.length;for(;o-- >0;)if(r=n[o],t===r.toLowerCase())return r;return null}const C="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global,E=e=>!f(e)&&e!==C;const A=(k="undefined"!==typeof Uint8Array&&i(Uint8Array),e=>k&&e instanceof k);var k;const M=l("HTMLFormElement"),P=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),R=l("RegExp"),T=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};S(n,((n,o)=>{!1!==t(n,o,e)&&(r[o]=n)})),Object.defineProperties(e,r)},I="abcdefghijklmnopqrstuvwxyz",B="0123456789",j={DIGIT:B,ALPHA:I,ALPHA_DIGIT:I+I.toUpperCase()+B};const D=l("AsyncFunction");var L={isArray:c,isArrayBuffer:d,isBuffer:function(e){return null!==e&&!f(e)&&null!==e.constructor&&!f(e.constructor)&&h(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||h(e.append)&&("formdata"===(t=a(e))||"object"===t&&h(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer),t},isString:p,isNumber:g,isBoolean:e=>!0===e||!1===e,isObject:v,isPlainObject:m,isUndefined:f,isDate:y,isFile:b,isBlob:w,isRegExp:R,isFunction:h,isStream:e=>v(e)&&h(e.pipe),isURLSearchParams:x,isTypedArray:A,isFileList:_,forEach:S,merge:function e(){const{caseless:t}=E(this)&&this||{},n={},r=(r,o)=>{const i=t&&O(n,o)||o;m(n[i])&&m(r)?n[i]=e(n[i],r):m(r)?n[i]=e({},r):c(r)?n[i]=r.slice():n[i]=r};for(let o=0,i=arguments.length;o<i;o++)arguments[o]&&S(arguments[o],r);return n},extend:(e,t,n,{allOwnKeys:o}={})=>(S(t,((t,o)=>{n&&h(t)?e[o]=r(t,n):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,a,s;const l={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)s=o[a],r&&!r(s,e,t)||l[s]||(t[s]=e[s],l[s]=!0);e=!1!==n&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:a,kindOfTest:l,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(c(e))return e;let t=e.length;if(!g(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:M,hasOwnProperty:P,hasOwnProp:P,reduceDescriptors:T,freezeMethods:e=>{T(e,((t,n)=>{if(h(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];h(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return c(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:O,global:C,isContextDefined:E,ALPHABET:j,generateString:(e=16,t=j.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&h(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=c(e)?[]:{};return S(e,((e,t)=>{const i=n(e,r+1);!f(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:D,isThenable:e=>e&&(v(e)||h(e))&&h(e.then)&&h(e.catch)};function Z(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}L.inherits(Z,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:L.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const N=Z.prototype,F={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{F[e]={value:e}})),Object.defineProperties(Z,F),Object.defineProperty(N,"isAxiosError",{value:!0}),Z.from=(e,t,n,r,o,i)=>{const a=Object.create(N);return L.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),Z.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};var H=Z,V=null;function z(e){return L.isPlainObject(e)||L.isArray(e)}function U(e){return L.endsWith(e,"[]")?e.slice(0,-2):e}function G(e,t,n){return e?e.concat(t).map((function(e,t){return e=U(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const W=L.toFlatObject(L,{},null,(function(e){return/^is[A-Z]/.test(e)}));var q=function(e,t,n){if(!L.isObject(e))throw new TypeError("target must be an object");t=t||new(V||FormData);const r=(n=L.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!L.isUndefined(t[e])}))).metaTokens,o=n.visitor||u,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!==typeof Blob&&Blob)&&L.isSpecCompliantForm(t);if(!L.isFunction(o))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(L.isDate(e))return e.toISOString();if(!s&&L.isBlob(e))throw new H("Blob is not supported. Use a Buffer instead.");return L.isArrayBuffer(e)||L.isTypedArray(e)?s&&"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,n,o){let s=e;if(e&&!o&&"object"===typeof e)if(L.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(L.isArray(e)&&function(e){return L.isArray(e)&&!e.some(z)}(e)||(L.isFileList(e)||L.endsWith(n,"[]"))&&(s=L.toArray(e)))return n=U(n),s.forEach((function(e,r){!L.isUndefined(e)&&null!==e&&t.append(!0===a?G([n],r,i):null===a?n:n+"[]",l(e))})),!1;return!!z(e)||(t.append(G(o,n,i),l(e)),!1)}const c=[],f=Object.assign(W,{defaultVisitor:u,convertValue:l,isVisitable:z});if(!L.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!L.isUndefined(n)){if(-1!==c.indexOf(n))throw Error("Circular reference detected in "+r.join("."));c.push(n),L.forEach(n,(function(n,i){!0===(!(L.isUndefined(n)||null===n)&&o.call(t,n,L.isString(i)?i.trim():i,r,f))&&e(n,r?r.concat(i):[i])})),c.pop()}}(e),t};function $(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Y(e,t){this._pairs=[],e&&q(e,this,t)}const X=Y.prototype;X.append=function(e,t){this._pairs.push([e,t])},X.toString=function(e){const t=e?function(t){return e.call(this,t,$)}:$;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var K=Y;function J(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Q(e,t,n){if(!t)return e;const r=n&&n.encode||J,o=n&&n.serialize;let i;if(i=o?o(t,n):L.isURLSearchParams(t)?t.toString():new K(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}var ee=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){L.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},te={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};var ne={isBrowser:!0,classes:{URLSearchParams:"undefined"!==typeof URLSearchParams?URLSearchParams:K,FormData:"undefined"!==typeof FormData?FormData:null,Blob:"undefined"!==typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let e;return("undefined"===typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&("undefined"!==typeof window&&"undefined"!==typeof document)})(),isStandardBrowserWebWorkerEnv:"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};var re=function(e){function t(e,n,r,o){let i=e[o++];const a=Number.isFinite(+i),s=o>=e.length;if(i=!i&&L.isArray(r)?r.length:i,s)return L.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a;r[i]&&L.isObject(r[i])||(r[i]=[]);return t(e,n,r[i],o)&&L.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r<o;r++)i=n[r],t[i]=e[i];return t}(r[i])),!a}if(L.isFormData(e)&&L.isFunction(e.entries)){const n={};return L.forEachEntry(e,((e,r)=>{t(function(e){return L.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null};const oe={"Content-Type":void 0};const ie={transitional:te,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=L.isObject(e);o&&L.isHTMLForm(e)&&(e=new FormData(e));if(L.isFormData(e))return r&&r?JSON.stringify(re(e)):e;if(L.isArrayBuffer(e)||L.isBuffer(e)||L.isStream(e)||L.isFile(e)||L.isBlob(e))return e;if(L.isArrayBufferView(e))return e.buffer;if(L.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return q(e,new ne.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return ne.isNode&&L.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=L.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return q(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(L.isString(e))try{return(t||JSON.parse)(e),L.trim(e)}catch(r){if("SyntaxError"!==r.name)throw r}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ie.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&L.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(o){if(n){if("SyntaxError"===o.name)throw H.from(o,H.ERR_BAD_RESPONSE,this,null,this.response);throw o}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ne.classes.FormData,Blob:ne.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};L.forEach(["delete","get","head"],(function(e){ie.headers[e]={}})),L.forEach(["post","put","patch"],(function(e){ie.headers[e]=L.merge(oe)}));var ae=ie;const se=L.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const le=Symbol("internals");function ue(e){return e&&String(e).trim().toLowerCase()}function ce(e){return!1===e||null==e?e:L.isArray(e)?e.map(ce):String(e)}function fe(e,t,n,r,o){return L.isFunction(r)?r.call(this,t,n):(o&&(t=n),L.isString(t)?L.isString(r)?-1!==t.indexOf(r):L.isRegExp(r)?r.test(t):void 0:void 0)}class de{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=ue(t);if(!o)throw new Error("header name must be a non-empty string");const i=L.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=ce(e))}const i=(e,t)=>L.forEach(e,((e,n)=>o(e,n,t)));return L.isPlainObject(e)||e instanceof this.constructor?i(e,t):L.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&se[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&o(t,e,n),this}get(e,t){if(e=ue(e)){const n=L.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(L.isFunction(t))return t.call(this,e,n);if(L.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=ue(e)){const n=L.findKey(this,e);return!(!n||void 0===this[n]||t&&!fe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=ue(e)){const o=L.findKey(n,e);!o||t&&!fe(0,n[o],o,t)||(delete n[o],r=!0)}}return L.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!fe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return L.forEach(this,((r,o)=>{const i=L.findKey(n,o);if(i)return t[i]=ce(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=ce(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return L.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&L.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[le]=this[le]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=ue(e);t[r]||(!function(e,t){const n=L.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return L.isArray(e)?e.forEach(r):r(e),this}}de.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),L.freezeMethods(de.prototype),L.freezeMethods(de);var pe=de;function he(e,t){const n=this||ae,r=t||n,o=pe.from(r.headers);let i=r.data;return L.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function ge(e){return!(!e||!e.__CANCEL__)}function ve(e,t,n){H.call(this,null==e?"canceled":e,H.ERR_CANCELED,t,n),this.name="CanceledError"}L.inherits(ve,H,{__CANCEL__:!0});var me=ve;var ye=ne.isStandardBrowserEnv?{write:function(e,t,n,r,o,i){const a=[];a.push(e+"="+encodeURIComponent(t)),L.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),L.isString(r)&&a.push("path="+r),L.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function be(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var we=ne.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=L.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};var _e=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),u=r[a];o||(o=l),n[i]=s,r[i]=l;let c=a,f=0;for(;c!==i;)f+=n[c++],c%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),l-o<t)return;const d=u&&l-u;return d?Math.round(1e3*f/d):void 0}};function xe(e,t){let n=0;const r=_e(50,250);return o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-n,l=r(s);n=i;const u={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&i<=a?(a-i)/l:void 0,event:o};u[t?"download":"upload"]=!0,e(u)}}const Se="undefined"!==typeof XMLHttpRequest;const Oe={http:V,xhr:Se&&function(e){return new Promise((function(t,n){let r=e.data;const o=pe.from(e.headers).normalize(),i=e.responseType;let a;function s(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}L.isFormData(r)&&(ne.isStandardBrowserEnv||ne.isStandardBrowserWebWorkerEnv?o.setContentType(!1):o.setContentType("multipart/form-data;",!1));let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+n))}const u=be(e.baseURL,e.url);function c(){if(!l)return;const r=pe.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new H("Request failed with status code "+n.status,[H.ERR_BAD_REQUEST,H.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),s()}),(function(e){n(e),s()}),{data:i&&"text"!==i&&"json"!==i?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:r,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),Q(u,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=c:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(c)},l.onabort=function(){l&&(n(new H("Request aborted",H.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new H("Network Error",H.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||te;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new H(t,r.clarifyTimeoutError?H.ETIMEDOUT:H.ECONNABORTED,e,l)),l=null},ne.isStandardBrowserEnv){const t=(e.withCredentials||we(u))&&e.xsrfCookieName&&ye.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===r&&o.setContentType(null),"setRequestHeader"in l&&L.forEach(o.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),L.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),i&&"json"!==i&&(l.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&l.addEventListener("progress",xe(e.onDownloadProgress,!0)),"function"===typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",xe(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{l&&(n(!t||t.type?new me(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const f=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(u);f&&-1===ne.protocols.indexOf(f)?n(new H("Unsupported protocol "+f+":",H.ERR_BAD_REQUEST,e)):l.send(r||null)}))}};L.forEach(Oe,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(n){}Object.defineProperty(e,"adapterName",{value:t})}}));var Ce=e=>{e=L.isArray(e)?e:[e];const{length:t}=e;let n,r;for(let o=0;o<t&&(n=e[o],!(r=L.isString(n)?Oe[n.toLowerCase()]:n));o++);if(!r){if(!1===r)throw new H(`Adapter ${n} is not supported by the environment`,"ERR_NOT_SUPPORT");throw new Error(L.hasOwnProp(Oe,n)?`Adapter '${n}' is not available in the build`:`Unknown adapter '${n}'`)}if(!L.isFunction(r))throw new TypeError("adapter is not a function");return r};function Ee(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new me(null,e)}function Ae(e){Ee(e),e.headers=pe.from(e.headers),e.data=he.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Ce(e.adapter||ae.adapter)(e).then((function(t){return Ee(e),t.data=he.call(e,e.transformResponse,t),t.headers=pe.from(t.headers),t}),(function(t){return ge(t)||(Ee(e),t&&t.response&&(t.response.data=he.call(e,e.transformResponse,t.response),t.response.headers=pe.from(t.response.headers))),Promise.reject(t)}))}const ke=e=>e instanceof pe?e.toJSON():e;function Me(e,t){t=t||{};const n={};function r(e,t,n){return L.isPlainObject(e)&&L.isPlainObject(t)?L.merge.call({caseless:n},e,t):L.isPlainObject(t)?L.merge({},t):L.isArray(t)?t.slice():t}function o(e,t,n){return L.isUndefined(t)?L.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function i(e,t){if(!L.isUndefined(t))return r(void 0,t)}function a(e,t){return L.isUndefined(t)?L.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>o(ke(e),ke(t),!0)};return L.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=l[r]||o,a=i(e[r],t[r],r);L.isUndefined(a)&&i!==s||(n[r]=a)})),n}const Pe="1.4.0",Re={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Re[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Te={};Re.transitional=function(e,t,n){function r(e,t){return"[Axios v1.4.0] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new H(r(o," has been removed"+(t?" in "+t:"")),H.ERR_DEPRECATED);return t&&!Te[o]&&(Te[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}};var Ie={assertOptions:function(e,t,n){if("object"!==typeof e)throw new H("options must be an object",H.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new H("option "+i+" must be "+n,H.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new H("Unknown option "+i,H.ERR_BAD_OPTION)}},validators:Re};const Be=Ie.validators;class je{constructor(e){this.defaults=e,this.interceptors={request:new ee,response:new ee}}request(e,t){"string"===typeof e?(t=t||{}).url=e:t=e||{},t=Me(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;let i;void 0!==n&&Ie.assertOptions(n,{silentJSONParsing:Be.transitional(Be.boolean),forcedJSONParsing:Be.transitional(Be.boolean),clarifyTimeoutError:Be.transitional(Be.boolean)},!1),null!=r&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:Ie.assertOptions(r,{encode:Be.function,serialize:Be.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase(),i=o&&L.merge(o.common,o[t.method]),i&&L.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=pe.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let u;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let c,f=0;if(!s){const e=[Ae.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),c=e.length,u=Promise.resolve(t);f<c;)u=u.then(e[f++],e[f++]);return u}c=a.length;let d=t;for(f=0;f<c;){const e=a[f++],t=a[f++];try{d=e(d)}catch(p){t.call(this,p);break}}try{u=Ae.call(this,d)}catch(p){return Promise.reject(p)}for(f=0,c=l.length;f<c;)u=u.then(l[f++],l[f++]);return u}getUri(e){return Q(be((e=Me(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}L.forEach(["delete","get","head","options"],(function(e){je.prototype[e]=function(t,n){return this.request(Me(n||{},{method:e,url:t,data:(n||{}).data}))}})),L.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,o){return this.request(Me(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}je.prototype[e]=t(),je.prototype[e+"Form"]=t(!0)}));var De=je;class Le{constructor(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new me(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Le((function(t){e=t})),cancel:e}}}var Ze=Le;const Ne={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ne).forEach((([e,t])=>{Ne[t]=e}));var Fe=Ne;const He=function e(t){const n=new De(t),o=r(De.prototype.request,n);return L.extend(o,De.prototype,n,{allOwnKeys:!0}),L.extend(o,n,null,{allOwnKeys:!0}),o.create=function(n){return e(Me(t,n))},o}(ae);He.Axios=De,He.CanceledError=me,He.CancelToken=Ze,He.isCancel=ge,He.VERSION=Pe,He.toFormData=q,He.AxiosError=H,He.Cancel=He.CanceledError,He.all=function(e){return Promise.all(e)},He.spread=function(e){return function(t){return e.apply(null,t)}},He.isAxiosError=function(e){return L.isObject(e)&&!0===e.isAxiosError},He.mergeConfig=Me,He.AxiosHeaders=pe,He.formToJSON=e=>re(L.isHTMLForm(e)?new FormData(e):e),He.HttpStatusCode=Fe,He.default=He;var Ve=He},4447:function(e,t,n){"use strict";n.d(t,{B8:function(){return O},Il:function(){return o},J5:function(){return a},SU:function(){return S},Ss:function(){return C},Ym:function(){return I},ZP:function(){return w},xV:function(){return i}});var r=n(49531);function o(){}var i=.7,a=1/i,s="\\s*([+-]?\\d+)\\s*",l="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",u="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",c=/^#([0-9a-f]{3,8})$/,f=new RegExp(`^rgb\\(${s},${s},${s}\\)$`),d=new RegExp(`^rgb\\(${u},${u},${u}\\)$`),p=new RegExp(`^rgba\\(${s},${s},${s},${l}\\)$`),h=new RegExp(`^rgba\\(${u},${u},${u},${l}\\)$`),g=new RegExp(`^hsl\\(${l},${u},${u}\\)$`),v=new RegExp(`^hsla\\(${l},${u},${u},${l}\\)$`),m={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function y(){return this.rgb().formatHex()}function b(){return this.rgb().formatRgb()}function w(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=c.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?_(t):3===n?new C(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?x(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?x(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=f.exec(e))?new C(t[1],t[2],t[3],1):(t=d.exec(e))?new C(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=p.exec(e))?x(t[1],t[2],t[3],t[4]):(t=h.exec(e))?x(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=g.exec(e))?R(t[1],t[2]/100,t[3]/100,1):(t=v.exec(e))?R(t[1],t[2]/100,t[3]/100,t[4]):m.hasOwnProperty(e)?_(m[e]):"transparent"===e?new C(NaN,NaN,NaN,0):null}function _(e){return new C(e>>16&255,e>>8&255,255&e,1)}function x(e,t,n,r){return r<=0&&(e=t=n=NaN),new C(e,t,n,r)}function S(e){return e instanceof o||(e=w(e)),e?new C((e=e.rgb()).r,e.g,e.b,e.opacity):new C}function O(e,t,n,r){return 1===arguments.length?S(e):new C(e,t,n,null==r?1:r)}function C(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function E(){return`#${P(this.r)}${P(this.g)}${P(this.b)}`}function A(){const e=k(this.opacity);return`${1===e?"rgb(":"rgba("}${M(this.r)}, ${M(this.g)}, ${M(this.b)}${1===e?")":`, ${e})`}`}function k(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function M(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function P(e){return((e=M(e))<16?"0":"")+e.toString(16)}function R(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new B(e,t,n,r)}function T(e){if(e instanceof B)return new B(e.h,e.s,e.l,e.opacity);if(e instanceof o||(e=w(e)),!e)return new B;if(e instanceof B)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),s=NaN,l=a-i,u=(a+i)/2;return l?(s=t===a?(n-r)/l+6*(n<r):n===a?(r-t)/l+2:(t-n)/l+4,l/=u<.5?a+i:2-a-i,s*=60):l=u>0&&u<1?0:s,new B(s,l,u,e.opacity)}function I(e,t,n,r){return 1===arguments.length?T(e):new B(e,t,n,null==r?1:r)}function B(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function j(e){return(e=(e||0)%360)<0?e+360:e}function D(e){return Math.max(0,Math.min(1,e||0))}function L(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}(0,r.Z)(o,w,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:y,formatHex:y,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return T(this).formatHsl()},formatRgb:b,toString:b}),(0,r.Z)(C,O,(0,r.l)(o,{brighter(e){return e=null==e?a:Math.pow(a,e),new C(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new C(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new C(M(this.r),M(this.g),M(this.b),k(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:E,formatHex:E,formatHex8:function(){return`#${P(this.r)}${P(this.g)}${P(this.b)}${P(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:A,toString:A})),(0,r.Z)(B,I,(0,r.l)(o,{brighter(e){return e=null==e?a:Math.pow(a,e),new B(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?i:Math.pow(i,e),new B(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new C(L(e>=240?e-240:e+120,o,r),L(e,o,r),L(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new B(j(this.h),D(this.s),D(this.l),k(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=k(this.opacity);return`${1===e?"hsl(":"hsla("}${j(this.h)}, ${100*D(this.s)}%, ${100*D(this.l)}%${1===e?")":`, ${e})`}`}}))},49531:function(e,t,n){"use strict";function r(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function o(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}n.d(t,{Z:function(){return r},l:function(){return o}})},65386:function(e,t,n){"use strict";n.d(t,{WU:function(){return o},ZP:function(){return s},jH:function(){return i}});var r,o,i,a=n(80028);function s(e){return r=(0,a.Z)(e),o=r.format,i=r.formatPrefix,r}s({thousands:",",grouping:[3],currency:["$",""]})},65368:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(78613);function o(e){return(e=(0,r.V)(Math.abs(e)))?e[1]:NaN}},78613:function(e,t,n){"use strict";function r(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function o(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}n.d(t,{V:function(){return o},Z:function(){return r}})},42035:function(e,t,n){"use strict";n.d(t,{Z:function(){return o},v:function(){return i}});var r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(e){if(!(t=r.exec(e)))throw new Error("invalid format: "+e);var t;return new i({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function i(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}o.prototype=i.prototype,i.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type}},80028:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(65368);var o=n(42035);var i,a=n(78613);function s(e,t){var n=(0,a.V)(e,t);if(!n)return e+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}var l={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:a.Z,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>s(100*e,t),r:s,s:function(e,t){var n=(0,a.V)(e,t);if(!n)return e+"";var r=n[0],o=n[1],s=o-(i=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+(0,a.V)(e,Math.max(0,t+s-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function u(e){return e}var c=Array.prototype.map,f=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function d(e){var t,n,a=void 0===e.grouping||void 0===e.thousands?u:(t=c.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var o=e.length,i=[],a=0,s=t[0],l=0;o>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),i.push(e.substring(o-=s,o+s)),!((l+=s+1)>r));)s=t[a=(a+1)%t.length];return i.reverse().join(n)}),s=void 0===e.currency?"":e.currency[0]+"",d=void 0===e.currency?"":e.currency[1]+"",p=void 0===e.decimal?".":e.decimal+"",h=void 0===e.numerals?u:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(c.call(e.numerals,String)),g=void 0===e.percent?"%":e.percent+"",v=void 0===e.minus?"\u2212":e.minus+"",m=void 0===e.nan?"NaN":e.nan+"";function y(e){var t=(e=(0,o.Z)(e)).fill,n=e.align,r=e.sign,u=e.symbol,c=e.zero,y=e.width,b=e.comma,w=e.precision,_=e.trim,x=e.type;"n"===x?(b=!0,x="g"):l[x]||(void 0===w&&(w=12),_=!0,x="g"),(c||"0"===t&&"="===n)&&(c=!0,t="0",n="=");var S="$"===u?s:"#"===u&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",O="$"===u?d:/[%p]/.test(x)?g:"",C=l[x],E=/[defgprs%]/.test(x);function A(e){var o,s,l,u=S,d=O;if("c"===x)d=C(e)+d,e="";else{var g=(e=+e)<0||1/e<0;if(e=isNaN(e)?m:C(Math.abs(e),w),_&&(e=function(e){e:for(var t,n=e.length,r=1,o=-1;r<n;++r)switch(e[r]){case".":o=t=r;break;case"0":0===o&&(o=r),t=r;break;default:if(!+e[r])break e;o>0&&(o=0)}return o>0?e.slice(0,o)+e.slice(t+1):e}(e)),g&&0===+e&&"+"!==r&&(g=!1),u=(g?"("===r?r:v:"-"===r||"("===r?"":r)+u,d=("s"===x?f[8+i/3]:"")+d+(g&&"("===r?")":""),E)for(o=-1,s=e.length;++o<s;)if(48>(l=e.charCodeAt(o))||l>57){d=(46===l?p+e.slice(o+1):e.slice(o))+d,e=e.slice(0,o);break}}b&&!c&&(e=a(e,1/0));var A=u.length+e.length+d.length,k=A<y?new Array(y-A+1).join(t):"";switch(b&&c&&(e=a(k+e,k.length?y-d.length:1/0),k=""),n){case"<":e=u+e+d+k;break;case"=":e=u+k+e+d;break;case"^":e=k.slice(0,A=k.length>>1)+u+e+d+k.slice(A);break;default:e=k+u+e+d}return h(e)}return w=void 0===w?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w)),A.toString=function(){return e+""},A}return{format:y,formatPrefix:function(e,t){var n=y(((e=(0,o.Z)(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(t)/3))),a=Math.pow(10,-i),s=f[8+i/3];return function(e){return n(a*e)+s}}}}},96909:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(65368);function o(e){return Math.max(0,-(0,r.Z)(Math.abs(e)))}},87017:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(65368);function o(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(t)/3)))-(0,r.Z)(Math.abs(e)))}},63482:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(65368);function o(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,(0,r.Z)(t)-(0,r.Z)(e))+1}},51606:function(e,t,n){"use strict";n.d(t,{M:function(){return a},Z:function(){return i}});var r=n(45326),o=n(45401);function i(e,t){return((0,o.v)(t)?o.Z:a)(e,t)}function a(e,t){var n,o=t?t.length:0,i=e?Math.min(o,e.length):0,a=new Array(i),s=new Array(o);for(n=0;n<i;++n)a[n]=(0,r.Z)(e[n],t[n]);for(;n<o;++n)s[n]=t[n];return function(e){for(n=0;n<i;++n)s[n]=a[n](e);return s}}},27265:function(e,t,n){"use strict";function r(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}function o(e){var t=e.length-1;return function(n){var o=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),i=e[o],a=e[o+1],s=o>0?e[o-1]:2*i-a,l=o<t-1?e[o+2]:2*a-i;return r((n-o/t)*t,s,i,a,l)}}n.d(t,{Z:function(){return o},t:function(){return r}})},76068:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(27265);function o(e){var t=e.length;return function(n){var o=Math.floor(((n%=1)<0?++n:n)*t),i=e[(o+t-1)%t],a=e[o%t],s=e[(o+1)%t],l=e[(o+2)%t];return(0,r.t)((n-o/t)*t,i,a,s,l)}}},98280:function(e,t,n){"use strict";n.d(t,{ZP:function(){return s},wx:function(){return i},yi:function(){return a}});var r=n(22954);function o(e,t){return function(n){return e+n*t}}function i(e,t){var n=t-e;return n?o(e,n>180||n<-180?n-360*Math.round(n/360):n):(0,r.Z)(isNaN(e)?t:e)}function a(e){return 1===(e=+e)?s:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):(0,r.Z)(isNaN(t)?n:t)}}function s(e,t){var n=t-e;return n?o(e,n):(0,r.Z)(isNaN(e)?t:e)}},22954:function(e,t){"use strict";t.Z=e=>()=>e},56246:function(e,t,n){"use strict";function r(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}n.d(t,{Z:function(){return r}})},68063:function(e,t,n){"use strict";function r(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}n.d(t,{Z:function(){return r}})},45401:function(e,t,n){"use strict";function r(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,o=t.slice();return function(i){for(n=0;n<r;++n)o[n]=e[n]*(1-i)+t[n]*i;return o}}function o(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}n.d(t,{Z:function(){return r},v:function(){return o}})},58296:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(45326);function o(e,t){var n,o={},i={};for(n in null!==e&&"object"===typeof e||(e={}),null!==t&&"object"===typeof t||(t={}),t)n in e?o[n]=(0,r.Z)(e[n],t[n]):i[n]=t[n];return function(e){for(n in o)i[n]=o[n](e);return i}}},19640:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(45326);function o(e,t){void 0===t&&(t=e,e=r.Z);for(var n=0,o=t.length-1,i=t[0],a=new Array(o<0?0:o);n<o;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(o-1,Math.floor(e*=o)));return a[t](e-t)}}},6354:function(e,t,n){"use strict";n.d(t,{YD:function(){return u},hD:function(){return l}});var r=n(4447),o=n(27265),i=n(76068),a=n(98280);function s(e){return function(t){var n,o,i=t.length,a=new Array(i),s=new Array(i),l=new Array(i);for(n=0;n<i;++n)o=(0,r.B8)(t[n]),a[n]=o.r||0,s[n]=o.g||0,l[n]=o.b||0;return a=e(a),s=e(s),l=e(l),o.opacity=1,function(e){return o.r=a(e),o.g=s(e),o.b=l(e),o+""}}}t.ZP=function e(t){var n=(0,a.yi)(t);function o(e,t){var o=n((e=(0,r.B8)(e)).r,(t=(0,r.B8)(t)).r),i=n(e.g,t.g),s=n(e.b,t.b),l=(0,a.ZP)(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=i(t),e.b=s(t),e.opacity=l(t),e+""}}return o.gamma=e,o}(1);var l=s(o.Z),u=s(i.Z)},64635:function(e,t,n){"use strict";function r(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}n.d(t,{Z:function(){return r}})},16773:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(68063),o=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,i=new RegExp(o.source,"g");function a(e,t){var n,a,s,l=o.lastIndex=i.lastIndex=0,u=-1,c=[],f=[];for(e+="",t+="";(n=o.exec(e))&&(a=i.exec(t));)(s=a.index)>l&&(s=t.slice(l,s),c[u]?c[u]+=s:c[++u]=s),(n=n[0])===(a=a[0])?c[u]?c[u]+=a:c[++u]=a:(c[++u]=null,f.push({i:u,x:(0,r.Z)(n,a)})),l=i.lastIndex;return l<t.length&&(s=t.slice(l),c[u]?c[u]+=s:c[++u]=s),c.length<2?f[0]?function(e){return function(t){return e(t)+""}}(f[0].x):function(e){return function(){return e}}(t):(t=f.length,function(e){for(var n,r=0;r<t;++r)c[(n=f[r]).i]=n.x(e);return c.join("")})}},45326:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(4447),o=n(6354),i=n(51606),a=n(56246),s=n(68063),l=n(58296),u=n(16773),c=n(22954),f=n(45401);function d(e,t){var n,d=typeof t;return null==t||"boolean"===d?(0,c.Z)(t):("number"===d?s.Z:"string"===d?(n=(0,r.ZP)(t))?(t=n,o.ZP):u.Z:t instanceof r.ZP?o.ZP:t instanceof Date?a.Z:(0,f.v)(t)?f.Z:Array.isArray(t)?i.M:"function"!==typeof t.valueOf&&"function"!==typeof t.toString||isNaN(t)?l.Z:s.Z)(e,t)}},69032:function(e,t,n){"use strict";function r(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function o(e,t){switch(arguments.length){case 0:break;case 1:"function"===typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"===typeof t?this.interpolator(t):this.range(t)}return this}n.r(t),n.d(t,{scaleBand:function(){return l},scaleDiverging:function(){return gt},scaleDivergingLog:function(){return vt},scaleDivergingPow:function(){return yt},scaleDivergingSqrt:function(){return bt},scaleDivergingSymlog:function(){return mt},scaleIdentity:function(){return G},scaleImplicit:function(){return a},scaleLinear:function(){return U},scaleLog:function(){return ee},scaleOrdinal:function(){return s},scalePoint:function(){return c},scalePow:function(){return ue},scaleQuantile:function(){return _e},scaleQuantize:function(){return xe},scaleRadial:function(){return de},scaleSequential:function(){return st},scaleSequentialLog:function(){return lt},scaleSequentialPow:function(){return ct},scaleSequentialQuantile:function(){return dt},scaleSequentialSqrt:function(){return ft},scaleSequentialSymlog:function(){return ut},scaleSqrt:function(){return ce},scaleSymlog:function(){return oe},scaleThreshold:function(){return Se},scaleTime:function(){return rt},scaleUtc:function(){return ot},tickFormat:function(){return V}});var i=n(909);const a=Symbol("implicit");function s(){var e=new i.L,t=[],n=[],o=a;function l(r){let i=e.get(r);if(void 0===i){if(o!==a)return o;e.set(r,i=t.push(r)-1)}return n[i%n.length]}return l.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new i.L;for(const r of n)e.has(r)||e.set(r,t.push(r)-1);return l},l.range=function(e){return arguments.length?(n=Array.from(e),l):n.slice()},l.unknown=function(e){return arguments.length?(o=e,l):o},l.copy=function(){return s(t,n).unknown(o)},r.apply(l,arguments),l}function l(){var e,t,n=s().unknown(void 0),o=n.domain,i=n.range,a=0,u=1,c=!1,f=0,d=0,p=.5;function h(){var n=o().length,r=u<a,s=r?u:a,l=r?a:u;e=(l-s)/Math.max(1,n-f+2*d),c&&(e=Math.floor(e)),s+=(l-s-e*(n-f))*p,t=e*(1-f),c&&(s=Math.round(s),t=Math.round(t));var h=function(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(o);++r<o;)i[r]=e+r*n;return i}(n).map((function(t){return s+e*t}));return i(r?h.reverse():h)}return delete n.unknown,n.domain=function(e){return arguments.length?(o(e),h()):o()},n.range=function(e){return arguments.length?([a,u]=e,a=+a,u=+u,h()):[a,u]},n.rangeRound=function(e){return[a,u]=e,a=+a,u=+u,c=!0,h()},n.bandwidth=function(){return t},n.step=function(){return e},n.round=function(e){return arguments.length?(c=!!e,h()):c},n.padding=function(e){return arguments.length?(f=Math.min(1,d=+e),h()):f},n.paddingInner=function(e){return arguments.length?(f=Math.min(1,e),h()):f},n.paddingOuter=function(e){return arguments.length?(d=+e,h()):d},n.align=function(e){return arguments.length?(p=Math.max(0,Math.min(1,e)),h()):p},n.copy=function(){return l(o(),[a,u]).round(c).paddingInner(f).paddingOuter(d).align(p)},r.apply(h(),arguments)}function u(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return u(t())},e}function c(){return u(l.apply(null,arguments).paddingInner(1))}var f=Math.sqrt(50),d=Math.sqrt(10),p=Math.sqrt(2);function h(e,t,n){var r,o,i,a,s=-1;if(n=+n,(e=+e)===(t=+t)&&n>0)return[e];if((r=t<e)&&(o=e,e=t,t=o),0===(a=g(e,t,n))||!isFinite(a))return[];if(a>0){let n=Math.round(e/a),r=Math.round(t/a);for(n*a<e&&++n,r*a>t&&--r,i=new Array(o=r-n+1);++s<o;)i[s]=(n+s)*a}else{a=-a;let n=Math.round(e*a),r=Math.round(t*a);for(n/a<e&&++n,r/a>t&&--r,i=new Array(o=r-n+1);++s<o;)i[s]=(n+s)/a}return r&&i.reverse(),i}function g(e,t,n){var r=(t-e)/Math.max(0,n),o=Math.floor(Math.log(r)/Math.LN10),i=r/Math.pow(10,o);return o>=0?(i>=f?10:i>=d?5:i>=p?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(i>=f?10:i>=d?5:i>=p?2:1)}function v(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/o;return i>=f?o*=10:i>=d?o*=5:i>=p&&(o*=2),t<e?-o:o}function m(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function y(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function b(e){let t,n,r;function o(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<0?o=t+1:i=t}while(o<i)}return o}return 2!==e.length?(t=m,n=(t,n)=>m(e(t),n),r=(t,n)=>e(t)-n):(t=e===m||e===y?e:w,n=e,r=e),{left:o,center:function(e,t,n=0,i=e.length){const a=o(e,t,n,i-1);return a>n&&r(e[a-1],t)>-r(e[a],t)?a-1:a},right:function(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<=0?o=t+1:i=t}while(o<i)}return o}}}function w(){return 0}function _(e){return null===e?NaN:+e}const x=b(m),S=x.right;x.left,b(_).center;var O=S,C=n(45326),E=n(68063),A=n(64635);function k(e){return+e}var M=[0,1];function P(e){return e}function R(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:(n=isNaN(t)?NaN:.5,function(){return n});var n}function T(e,t,n){var r=e[0],o=e[1],i=t[0],a=t[1];return o<r?(r=R(o,r),i=n(a,i)):(r=R(r,o),i=n(i,a)),function(e){return i(r(e))}}function I(e,t,n){var r=Math.min(e.length,t.length)-1,o=new Array(r),i=new Array(r),a=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<r;)o[a]=R(e[a],e[a+1]),i[a]=n(t[a],t[a+1]);return function(t){var n=O(e,t,1,r)-1;return i[n](o[n](t))}}function B(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function j(){var e,t,n,r,o,i,a=M,s=M,l=C.Z,u=P;function c(){var e=Math.min(a.length,s.length);return u!==P&&(u=function(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(a[0],a[e-1])),r=e>2?I:T,o=i=null,f}function f(t){return null==t||isNaN(t=+t)?n:(o||(o=r(a.map(e),s,l)))(e(u(t)))}return f.invert=function(n){return u(t((i||(i=r(s,a.map(e),E.Z)))(n)))},f.domain=function(e){return arguments.length?(a=Array.from(e,k),c()):a.slice()},f.range=function(e){return arguments.length?(s=Array.from(e),c()):s.slice()},f.rangeRound=function(e){return s=Array.from(e),l=A.Z,c()},f.clamp=function(e){return arguments.length?(u=!!e||P,c()):u!==P},f.interpolate=function(e){return arguments.length?(l=e,c()):l},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,r){return e=n,t=r,c()}}function D(){return j()(P,P)}var L=n(42035),Z=n(87017),N=n(65386),F=n(63482),H=n(96909);function V(e,t,n,r){var o,i=v(e,t,n);switch((r=(0,L.Z)(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(o=(0,Z.Z)(i,a))||(r.precision=o),(0,N.jH)(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(o=(0,F.Z)(i,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=o-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(o=(0,H.Z)(i))||(r.precision=o-2*("%"===r.type))}return(0,N.WU)(r)}function z(e){var t=e.domain;return e.ticks=function(e){var n=t();return h(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return V(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,o,i=t(),a=0,s=i.length-1,l=i[a],u=i[s],c=10;for(u<l&&(o=l,l=u,u=o,o=a,a=s,s=o);c-- >0;){if((o=g(l,u,n))===r)return i[a]=l,i[s]=u,t(i);if(o>0)l=Math.floor(l/o)*o,u=Math.ceil(u/o)*o;else{if(!(o<0))break;l=Math.ceil(l*o)/o,u=Math.floor(u*o)/o}r=o}return e},e}function U(){var e=D();return e.copy=function(){return B(e,U())},r.apply(e,arguments),z(e)}function G(e){var t;function n(e){return null==e||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,k),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return G(e).unknown(t)},e=arguments.length?Array.from(e,k):[0,1],z(n)}function W(e,t){var n,r=0,o=(e=e.slice()).length-1,i=e[r],a=e[o];return a<i&&(n=r,r=o,o=n,n=i,i=a,a=n),e[r]=t.floor(i),e[o]=t.ceil(a),e}function q(e){return Math.log(e)}function $(e){return Math.exp(e)}function Y(e){return-Math.log(-e)}function X(e){return-Math.exp(-e)}function K(e){return isFinite(e)?+("1e"+e):e<0?0:e}function J(e){return(t,n)=>-e(-t,n)}function Q(e){const t=e(q,$),n=t.domain;let r,o,i=10;function a(){return r=function(e){return e===Math.E?Math.log:10===e&&Math.log10||2===e&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}(i),o=function(e){return 10===e?K:e===Math.E?Math.exp:t=>Math.pow(e,t)}(i),n()[0]<0?(r=J(r),o=J(o),e(Y,X)):e(q,$),t}return t.base=function(e){return arguments.length?(i=+e,a()):i},t.domain=function(e){return arguments.length?(n(e),a()):n()},t.ticks=e=>{const t=n();let a=t[0],s=t[t.length-1];const l=s<a;l&&([a,s]=[s,a]);let u,c,f=r(a),d=r(s);const p=null==e?10:+e;let g=[];if(!(i%1)&&d-f<p){if(f=Math.floor(f),d=Math.ceil(d),a>0){for(;f<=d;++f)for(u=1;u<i;++u)if(c=f<0?u/o(-f):u*o(f),!(c<a)){if(c>s)break;g.push(c)}}else for(;f<=d;++f)for(u=i-1;u>=1;--u)if(c=f>0?u/o(-f):u*o(f),!(c<a)){if(c>s)break;g.push(c)}2*g.length<p&&(g=h(a,s,p))}else g=h(f,d,Math.min(d-f,p)).map(o);return l?g.reverse():g},t.tickFormat=(e,n)=>{if(null==e&&(e=10),null==n&&(n=10===i?"s":","),"function"!==typeof n&&(i%1||null!=(n=(0,L.Z)(n)).precision||(n.trim=!0),n=(0,N.WU)(n)),e===1/0)return n;const a=Math.max(1,i*e/t.ticks().length);return e=>{let t=e/o(Math.round(r(e)));return t*i<i-.5&&(t*=i),t<=a?n(e):""}},t.nice=()=>n(W(n(),{floor:e=>o(Math.floor(r(e))),ceil:e=>o(Math.ceil(r(e)))})),t}function ee(){const e=Q(j()).domain([1,10]);return e.copy=()=>B(e,ee()).base(e.base()),r.apply(e,arguments),e}function te(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function ne(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function re(e){var t=1,n=e(te(t),ne(t));return n.constant=function(n){return arguments.length?e(te(t=+n),ne(t)):t},z(n)}function oe(){var e=re(j());return e.copy=function(){return B(e,oe()).constant(e.constant())},r.apply(e,arguments)}function ie(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function ae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function se(e){return e<0?-e*e:e*e}function le(e){var t=e(P,P),n=1;return t.exponent=function(t){return arguments.length?1===(n=+t)?e(P,P):.5===n?e(ae,se):e(ie(n),ie(1/n)):n},z(t)}function ue(){var e=le(j());return e.copy=function(){return B(e,ue()).exponent(e.exponent())},r.apply(e,arguments),e}function ce(){return ue.apply(null,arguments).exponent(.5)}function fe(e){return Math.sign(e)*e*e}function de(){var e,t=D(),n=[0,1],o=!1;function i(n){var r=function(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}(t(n));return isNaN(r)?e:o?Math.round(r):r}return i.invert=function(e){return t.invert(fe(e))},i.domain=function(e){return arguments.length?(t.domain(e),i):t.domain()},i.range=function(e){return arguments.length?(t.range((n=Array.from(e,k)).map(fe)),i):n.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(o=!!e,i):o},i.clamp=function(e){return arguments.length?(t.clamp(e),i):t.clamp()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return de(t.domain(),n).round(o).clamp(t.clamp()).unknown(e)},r.apply(i,arguments),z(i)}function pe(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n<r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}function he(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n>r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}function ge(e=m){if(e===m)return ve;if("function"!==typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}function ve(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function me(e,t,n=0,r=e.length-1,o){for(o=void 0===o?ve:ge(o);r>n;){if(r-n>600){const i=r-n+1,a=t-n+1,s=Math.log(i),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(i-l)/i)*(a-i/2<0?-1:1);me(e,t,Math.max(n,Math.floor(t-a*l/i+u)),Math.min(r,Math.floor(t+(i-a)*l/i+u)),o)}const i=e[t];let a=n,s=r;for(ye(e,n,t),o(e[r],i)>0&&ye(e,n,r);a<s;){for(ye(e,a,s),++a,--s;o(e[a],i)<0;)++a;for(;o(e[s],i)>0;)--s}0===o(e[n],i)?ye(e,n,s):(++s,ye(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function ye(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function be(e,t,n){if(e=Float64Array.from(function*(e,t){if(void 0===t)for(let n of e)null!=n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r=+r)>=r&&(yield r)}}(e,n)),r=e.length){if((t=+t)<=0||r<2)return he(e);if(t>=1)return pe(e);var r,o=(r-1)*t,i=Math.floor(o),a=pe(me(e,i).subarray(0,i+1));return a+(he(e.subarray(i+1))-a)*(o-i)}}function we(e,t,n=_){if(r=e.length){if((t=+t)<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,o=(r-1)*t,i=Math.floor(o),a=+n(e[i],i,e);return a+(+n(e[i+1],i+1,e)-a)*(o-i)}}function _e(){var e,t=[],n=[],o=[];function i(){var e=0,r=Math.max(1,n.length);for(o=new Array(r-1);++e<r;)o[e-1]=we(t,e/r);return a}function a(t){return null==t||isNaN(t=+t)?e:n[O(o,t)]}return a.invertExtent=function(e){var r=n.indexOf(e);return r<0?[NaN,NaN]:[r>0?o[r-1]:t[0],r<o.length?o[r]:t[t.length-1]]},a.domain=function(e){if(!arguments.length)return t.slice();t=[];for(let n of e)null==n||isNaN(n=+n)||t.push(n);return t.sort(m),i()},a.range=function(e){return arguments.length?(n=Array.from(e),i()):n.slice()},a.unknown=function(t){return arguments.length?(e=t,a):e},a.quantiles=function(){return o.slice()},a.copy=function(){return _e().domain(t).range(n).unknown(e)},r.apply(a,arguments)}function xe(){var e,t=0,n=1,o=1,i=[.5],a=[0,1];function s(t){return null!=t&&t<=t?a[O(i,t,0,o)]:e}function l(){var e=-1;for(i=new Array(o);++e<o;)i[e]=((e+1)*n-(e-o)*t)/(o+1);return s}return s.domain=function(e){return arguments.length?([t,n]=e,t=+t,n=+n,l()):[t,n]},s.range=function(e){return arguments.length?(o=(a=Array.from(e)).length-1,l()):a.slice()},s.invertExtent=function(e){var r=a.indexOf(e);return r<0?[NaN,NaN]:r<1?[t,i[0]]:r>=o?[i[o-1],n]:[i[r-1],i[r]]},s.unknown=function(t){return arguments.length?(e=t,s):s},s.thresholds=function(){return i.slice()},s.copy=function(){return xe().domain([t,n]).range(a).unknown(e)},r.apply(z(s),arguments)}function Se(){var e,t=[.5],n=[0,1],o=1;function i(r){return null!=r&&r<=r?n[O(t,r,0,o)]:e}return i.domain=function(e){return arguments.length?(t=Array.from(e),o=Math.min(t.length,n.length-1),i):t.slice()},i.range=function(e){return arguments.length?(n=Array.from(e),o=Math.min(t.length,n.length-1),i):n.slice()},i.invertExtent=function(e){var r=n.indexOf(e);return[t[r-1],t[r]]},i.unknown=function(t){return arguments.length?(e=t,i):e},i.copy=function(){return Se().domain(t).range(n).unknown(e)},r.apply(i,arguments)}var Oe=n(11262),Ce=n(52576),Ee=(0,Ce.Z)((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));Ee.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?(0,Ce.Z)((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,n){t.setTime(+t+n*e)}),(function(t,n){return(n-t)/e})):Ee:null};var Ae=Ee,ke=(Ee.range,(0,Ce.Z)((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+t*Oe.Ym)}),(function(e,t){return(t-e)/Oe.Ym}),(function(e){return e.getUTCSeconds()}))),Me=ke,Pe=(ke.range,(0,Ce.Z)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Oe.Ym)}),(function(e,t){e.setTime(+e+t*Oe.yB)}),(function(e,t){return(t-e)/Oe.yB}),(function(e){return e.getMinutes()}))),Re=Pe,Te=(Pe.range,(0,Ce.Z)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*Oe.Ym-e.getMinutes()*Oe.yB)}),(function(e,t){e.setTime(+e+t*Oe.Y2)}),(function(e,t){return(t-e)/Oe.Y2}),(function(e){return e.getHours()}))),Ie=Te,Be=(Te.range,n(96199)),je=n(85235),De=(0,Ce.Z)((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()})),Le=De,Ze=(De.range,n(38887)),Ne=(0,Ce.Z)((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+t*Oe.yB)}),(function(e,t){return(t-e)/Oe.yB}),(function(e){return e.getUTCMinutes()})),Fe=Ne,He=(Ne.range,(0,Ce.Z)((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+t*Oe.Y2)}),(function(e,t){return(t-e)/Oe.Y2}),(function(e){return e.getUTCHours()}))),Ve=He,ze=(He.range,n(74834)),Ue=n(81416),Ge=(0,Ce.Z)((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()})),We=Ge,qe=(Ge.range,n(69935));function $e(e,t,n,r,o,i){const a=[[Me,1,Oe.Ym],[Me,5,5*Oe.Ym],[Me,15,15*Oe.Ym],[Me,30,30*Oe.Ym],[i,1,Oe.yB],[i,5,5*Oe.yB],[i,15,15*Oe.yB],[i,30,30*Oe.yB],[o,1,Oe.Y2],[o,3,3*Oe.Y2],[o,6,6*Oe.Y2],[o,12,12*Oe.Y2],[r,1,Oe.UD],[r,2,2*Oe.UD],[n,1,Oe.iM],[t,1,Oe.jz],[t,3,3*Oe.jz],[e,1,Oe.qz]];function s(t,n,r){const o=Math.abs(n-t)/r,i=b((([,,e])=>e)).right(a,o);if(i===a.length)return e.every(v(t/Oe.qz,n/Oe.qz,r));if(0===i)return Ae.every(Math.max(v(t,n,r),1));const[s,l]=a[o/a[i-1][2]<a[i][2]/o?i-1:i];return s.every(l)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const o=n&&"function"===typeof n.range?n:s(e,t,n),i=o?o.range(e,+t+1):[];return r?i.reverse():i},s]}const[Ye,Xe]=$e(qe.Z,We,Ue.Ox,ze.Z,Ve,Fe),[Ke,Je]=$e(Ze.Z,Le,je.OM,Be.Z,Ie,Re);var Qe=n(82138);function et(e){return new Date(e)}function tt(e){return e instanceof Date?+e:+new Date(+e)}function nt(e,t,n,r,o,i,a,s,l,u){var c=D(),f=c.invert,d=c.domain,p=u(".%L"),h=u(":%S"),g=u("%I:%M"),v=u("%I %p"),m=u("%a %d"),y=u("%b %d"),b=u("%B"),w=u("%Y");function _(e){return(l(e)<e?p:s(e)<e?h:a(e)<e?g:i(e)<e?v:r(e)<e?o(e)<e?m:y:n(e)<e?b:w)(e)}return c.invert=function(e){return new Date(f(e))},c.domain=function(e){return arguments.length?d(Array.from(e,tt)):d().map(et)},c.ticks=function(t){var n=d();return e(n[0],n[n.length-1],null==t?10:t)},c.tickFormat=function(e,t){return null==t?_:u(t)},c.nice=function(e){var n=d();return e&&"function"===typeof e.range||(e=t(n[0],n[n.length-1],null==e?10:e)),e?d(W(n,e)):c},c.copy=function(){return B(c,nt(e,t,n,r,o,i,a,s,l,u))},c}function rt(){return r.apply(nt(Ke,Je,Ze.Z,Le,je.OM,Be.Z,Ie,Re,Me,Qe.i$).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ot(){return r.apply(nt(Ye,Xe,qe.Z,We,Ue.Ox,ze.Z,Ve,Fe,Me,Qe.g0).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function it(){var e,t,n,r,o,i=0,a=1,s=P,l=!1;function u(t){return null==t||isNaN(t=+t)?o:s(0===n?.5:(t=(r(t)-e)*n,l?Math.max(0,Math.min(1,t)):t))}function c(e){return function(t){var n,r;return arguments.length?([n,r]=t,s=e(n,r),u):[s(0),s(1)]}}return u.domain=function(o){return arguments.length?([i,a]=o,e=r(i=+i),t=r(a=+a),n=e===t?0:1/(t-e),u):[i,a]},u.clamp=function(e){return arguments.length?(l=!!e,u):l},u.interpolator=function(e){return arguments.length?(s=e,u):s},u.range=c(C.Z),u.rangeRound=c(A.Z),u.unknown=function(e){return arguments.length?(o=e,u):o},function(o){return r=o,e=o(i),t=o(a),n=e===t?0:1/(t-e),u}}function at(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function st(){var e=z(it()(P));return e.copy=function(){return at(e,st())},o.apply(e,arguments)}function lt(){var e=Q(it()).domain([1,10]);return e.copy=function(){return at(e,lt()).base(e.base())},o.apply(e,arguments)}function ut(){var e=re(it());return e.copy=function(){return at(e,ut()).constant(e.constant())},o.apply(e,arguments)}function ct(){var e=le(it());return e.copy=function(){return at(e,ct()).exponent(e.exponent())},o.apply(e,arguments)}function ft(){return ct.apply(null,arguments).exponent(.5)}function dt(){var e=[],t=P;function n(n){if(null!=n&&!isNaN(n=+n))return t((O(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(m),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map(((n,r)=>t(r/(e.length-1))))},n.quantiles=function(t){return Array.from({length:t+1},((n,r)=>be(e,r/t)))},n.copy=function(){return dt(t).domain(e)},o.apply(n,arguments)}var pt=n(19640);function ht(){var e,t,n,r,o,i,a,s=0,l=.5,u=1,c=1,f=P,d=!1;function p(e){return isNaN(e=+e)?a:(e=.5+((e=+i(e))-t)*(c*e<c*t?r:o),f(d?Math.max(0,Math.min(1,e)):e))}function h(e){return function(t){var n,r,o;return arguments.length?([n,r,o]=t,f=(0,pt.Z)(e,[n,r,o]),p):[f(0),f(.5),f(1)]}}return p.domain=function(a){return arguments.length?([s,l,u]=a,e=i(s=+s),t=i(l=+l),n=i(u=+u),r=e===t?0:.5/(t-e),o=t===n?0:.5/(n-t),c=t<e?-1:1,p):[s,l,u]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(f=e,p):f},p.range=h(C.Z),p.rangeRound=h(A.Z),p.unknown=function(e){return arguments.length?(a=e,p):a},function(a){return i=a,e=a(s),t=a(l),n=a(u),r=e===t?0:.5/(t-e),o=t===n?0:.5/(n-t),c=t<e?-1:1,p}}function gt(){var e=z(ht()(P));return e.copy=function(){return at(e,gt())},o.apply(e,arguments)}function vt(){var e=Q(ht()).domain([.1,1,10]);return e.copy=function(){return at(e,vt()).base(e.base())},o.apply(e,arguments)}function mt(){var e=re(ht());return e.copy=function(){return at(e,mt()).constant(e.constant())},o.apply(e,arguments)}function yt(){var e=le(ht());return e.copy=function(){return at(e,yt()).exponent(e.exponent())},o.apply(e,arguments)}function bt(){return yt.apply(null,arguments).exponent(.5)}},82138:function(e,t,n){"use strict";n.d(t,{Z1:function(){return i},ZP:function(){return u},g0:function(){return a},i$:function(){return o},wp:function(){return s}});var r,o,i,a,s,l=n(47238);function u(e){return r=(0,l.Z)(e),o=r.format,i=r.parse,a=r.utcFormat,s=r.utcParse,r}u({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})},47238:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(81416),o=n(74834),i=n(85235),a=n(96199),s=n(38887),l=n(69935);function u(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function c(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function f(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function d(e){var t=e.dateTime,n=e.date,s=e.time,l=e.periods,d=e.days,h=e.shortDays,g=e.months,v=e.shortMonths,m=b(l),y=w(l),J=b(d),ye=w(d),Pe=b(h),Re=w(h),Te=b(g),Ie=w(g),Be=b(v),je=w(v),De={a:function(e){return h[e.getDay()]},A:function(e){return d[e.getDay()]},b:function(e){return v[e.getMonth()]},B:function(e){return g[e.getMonth()]},c:null,d:H,e:H,f:W,g:re,G:ie,H:V,I:z,j:U,L:G,m:q,M:$,p:function(e){return l[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:ke,s:Me,S:Y,u:X,U:K,V:Q,w:ee,W:te,x:null,X:null,y:ne,Y:oe,Z:ae,"%":Ae},Le={a:function(e){return h[e.getUTCDay()]},A:function(e){return d[e.getUTCDay()]},b:function(e){return v[e.getUTCMonth()]},B:function(e){return g[e.getUTCMonth()]},c:null,d:se,e:se,f:de,g:Se,G:Ce,H:le,I:ue,j:ce,L:fe,m:pe,M:he,p:function(e){return l[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:ke,s:Me,S:ge,u:ve,U:me,V:be,w:we,W:_e,x:null,X:null,y:xe,Y:Oe,Z:Ee,"%":Ae},Ze={a:function(e,t,n){var r=Pe.exec(t.slice(n));return r?(e.w=Re.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=J.exec(t.slice(n));return r?(e.w=ye.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=Be.exec(t.slice(n));return r?(e.m=je.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=Te.exec(t.slice(n));return r?(e.m=Ie.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return He(e,t,n,r)},d:R,e:R,f:L,g:A,G:E,H:I,I:I,j:T,L:D,m:P,M:B,p:function(e,t,n){var r=m.exec(t.slice(n));return r?(e.p=y.get(r[0].toLowerCase()),n+r[0].length):-1},q:M,Q:N,s:F,S:j,u:x,U:S,V:O,w:_,W:C,x:function(e,t,r){return He(e,n,t,r)},X:function(e,t,n){return He(e,s,t,n)},y:A,Y:E,Z:k,"%":Z};function Ne(e,t){return function(n){var r,o,i,a=[],s=-1,l=0,u=e.length;for(n instanceof Date||(n=new Date(+n));++s<u;)37===e.charCodeAt(s)&&(a.push(e.slice(l,s)),null!=(o=p[r=e.charAt(++s)])?r=e.charAt(++s):o="e"===r?" ":"0",(i=t[r])&&(r=i(n,o)),a.push(r),l=s+1);return a.push(e.slice(l,s)),a.join("")}}function Fe(e,t){return function(n){var s,l,d=f(1900,void 0,1);if(He(d,e,n+="",0)!=n.length)return null;if("Q"in d)return new Date(d.Q);if("s"in d)return new Date(1e3*d.s+("L"in d?d.L:0));if(t&&!("Z"in d)&&(d.Z=0),"p"in d&&(d.H=d.H%12+12*d.p),void 0===d.m&&(d.m="q"in d?d.q:0),"V"in d){if(d.V<1||d.V>53)return null;"w"in d||(d.w=1),"Z"in d?(l=(s=c(f(d.y,0,1))).getUTCDay(),s=l>4||0===l?r.l6.ceil(s):(0,r.l6)(s),s=o.Z.offset(s,7*(d.V-1)),d.y=s.getUTCFullYear(),d.m=s.getUTCMonth(),d.d=s.getUTCDate()+(d.w+6)%7):(l=(s=u(f(d.y,0,1))).getDay(),s=l>4||0===l?i.wA.ceil(s):(0,i.wA)(s),s=a.Z.offset(s,7*(d.V-1)),d.y=s.getFullYear(),d.m=s.getMonth(),d.d=s.getDate()+(d.w+6)%7)}else("W"in d||"U"in d)&&("w"in d||(d.w="u"in d?d.u%7:"W"in d?1:0),l="Z"in d?c(f(d.y,0,1)).getUTCDay():u(f(d.y,0,1)).getDay(),d.m=0,d.d="W"in d?(d.w+6)%7+7*d.W-(l+5)%7:d.w+7*d.U-(l+6)%7);return"Z"in d?(d.H+=d.Z/100|0,d.M+=d.Z%100,c(d)):u(d)}}function He(e,t,n,r){for(var o,i,a=0,s=t.length,l=n.length;a<s;){if(r>=l)return-1;if(37===(o=t.charCodeAt(a++))){if(o=t.charAt(a++),!(i=Ze[o in p?t.charAt(a++):o])||(r=i(e,n,r))<0)return-1}else if(o!=n.charCodeAt(r++))return-1}return r}return De.x=Ne(n,De),De.X=Ne(s,De),De.c=Ne(t,De),Le.x=Ne(n,Le),Le.X=Ne(s,Le),Le.c=Ne(t,Le),{format:function(e){var t=Ne(e+="",De);return t.toString=function(){return e},t},parse:function(e){var t=Fe(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=Ne(e+="",Le);return t.toString=function(){return e},t},utcParse:function(e){var t=Fe(e+="",!0);return t.toString=function(){return e},t}}}var p={"-":"",_:" ",0:"0"},h=/^\s*\d+/,g=/^%/,v=/[\\^$*+?|[\]().{}]/g;function m(e,t,n){var r=e<0?"-":"",o=(r?-e:e)+"",i=o.length;return r+(i<n?new Array(n-i+1).join(t)+o:o)}function y(e){return e.replace(v,"\\$&")}function b(e){return new RegExp("^(?:"+e.map(y).join("|")+")","i")}function w(e){return new Map(e.map(((e,t)=>[e.toLowerCase(),t])))}function _(e,t,n){var r=h.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function x(e,t,n){var r=h.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function S(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function O(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function C(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function E(e,t,n){var r=h.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function A(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function k(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function M(e,t,n){var r=h.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function P(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function R(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function T(e,t,n){var r=h.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function I(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function B(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function j(e,t,n){var r=h.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function D(e,t,n){var r=h.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function L(e,t,n){var r=h.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Z(e,t,n){var r=g.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function N(e,t,n){var r=h.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function F(e,t,n){var r=h.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function H(e,t){return m(e.getDate(),t,2)}function V(e,t){return m(e.getHours(),t,2)}function z(e,t){return m(e.getHours()%12||12,t,2)}function U(e,t){return m(1+a.Z.count((0,s.Z)(e),e),t,3)}function G(e,t){return m(e.getMilliseconds(),t,3)}function W(e,t){return G(e,t)+"000"}function q(e,t){return m(e.getMonth()+1,t,2)}function $(e,t){return m(e.getMinutes(),t,2)}function Y(e,t){return m(e.getSeconds(),t,2)}function X(e){var t=e.getDay();return 0===t?7:t}function K(e,t){return m(i.OM.count((0,s.Z)(e)-1,e),t,2)}function J(e){var t=e.getDay();return t>=4||0===t?(0,i.bL)(e):i.bL.ceil(e)}function Q(e,t){return e=J(e),m(i.bL.count((0,s.Z)(e),e)+(4===(0,s.Z)(e).getDay()),t,2)}function ee(e){return e.getDay()}function te(e,t){return m(i.wA.count((0,s.Z)(e)-1,e),t,2)}function ne(e,t){return m(e.getFullYear()%100,t,2)}function re(e,t){return m((e=J(e)).getFullYear()%100,t,2)}function oe(e,t){return m(e.getFullYear()%1e4,t,4)}function ie(e,t){var n=e.getDay();return m((e=n>=4||0===n?(0,i.bL)(e):i.bL.ceil(e)).getFullYear()%1e4,t,4)}function ae(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+m(t/60|0,"0",2)+m(t%60,"0",2)}function se(e,t){return m(e.getUTCDate(),t,2)}function le(e,t){return m(e.getUTCHours(),t,2)}function ue(e,t){return m(e.getUTCHours()%12||12,t,2)}function ce(e,t){return m(1+o.Z.count((0,l.Z)(e),e),t,3)}function fe(e,t){return m(e.getUTCMilliseconds(),t,3)}function de(e,t){return fe(e,t)+"000"}function pe(e,t){return m(e.getUTCMonth()+1,t,2)}function he(e,t){return m(e.getUTCMinutes(),t,2)}function ge(e,t){return m(e.getUTCSeconds(),t,2)}function ve(e){var t=e.getUTCDay();return 0===t?7:t}function me(e,t){return m(r.Ox.count((0,l.Z)(e)-1,e),t,2)}function ye(e){var t=e.getUTCDay();return t>=4||0===t?(0,r.hB)(e):r.hB.ceil(e)}function be(e,t){return e=ye(e),m(r.hB.count((0,l.Z)(e),e)+(4===(0,l.Z)(e).getUTCDay()),t,2)}function we(e){return e.getUTCDay()}function _e(e,t){return m(r.l6.count((0,l.Z)(e)-1,e),t,2)}function xe(e,t){return m(e.getUTCFullYear()%100,t,2)}function Se(e,t){return m((e=ye(e)).getUTCFullYear()%100,t,2)}function Oe(e,t){return m(e.getUTCFullYear()%1e4,t,4)}function Ce(e,t){var n=e.getUTCDay();return m((e=n>=4||0===n?(0,r.hB)(e):r.hB.ceil(e)).getUTCFullYear()%1e4,t,4)}function Ee(){return"+0000"}function Ae(){return"%"}function ke(e){return+e}function Me(e){return Math.floor(+e/1e3)}},96199:function(e,t,n){"use strict";var r=n(52576),o=n(11262),i=(0,r.Z)((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.yB)/o.UD),(e=>e.getDate()-1));t.Z=i;i.range},11262:function(e,t,n){"use strict";n.d(t,{UD:function(){return a},Y2:function(){return i},Ym:function(){return r},iM:function(){return s},jz:function(){return l},qz:function(){return u},yB:function(){return o}});const r=1e3,o=60*r,i=60*o,a=24*i,s=7*a,l=30*a,u=365*a},52576:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=new Date,o=new Date;function i(e,t,n,a){function s(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return s.floor=function(t){return e(t=new Date(+t)),t},s.ceil=function(n){return e(n=new Date(n-1)),t(n,1),e(n),n},s.round=function(e){var t=s(e),n=s.ceil(e);return e-t<n-e?t:n},s.offset=function(e,n){return t(e=new Date(+e),null==n?1:Math.floor(n)),e},s.range=function(n,r,o){var i,a=[];if(n=s.ceil(n),o=null==o?1:Math.floor(o),!(n<r)||!(o>0))return a;do{a.push(i=new Date(+n)),t(n,o),e(n)}while(i<n&&n<r);return a},s.filter=function(n){return i((function(t){if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),(function(e,r){if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}))},n&&(s.count=function(t,i){return r.setTime(+t),o.setTime(+i),e(r),e(o),Math.floor(n(r,o))},s.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?s.filter(a?function(t){return a(t)%e===0}:function(t){return s.count(0,t)%e===0}):s:null}),s}},74834:function(e,t,n){"use strict";var r=n(52576),o=n(11262),i=(0,r.Z)((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/o.UD}),(function(e){return e.getUTCDate()-1}));t.Z=i;i.range},81416:function(e,t,n){"use strict";n.d(t,{Ox:function(){return a},hB:function(){return c},l6:function(){return s}});var r=n(52576),o=n(11262);function i(e){return(0,r.Z)((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/o.iM}))}var a=i(0),s=i(1),l=i(2),u=i(3),c=i(4),f=i(5),d=i(6);a.range,s.range,l.range,u.range,c.range,f.range,d.range},69935:function(e,t,n){"use strict";var r=n(52576),o=(0,r.Z)((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));o.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,r.Z)((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null},t.Z=o;o.range},85235:function(e,t,n){"use strict";n.d(t,{OM:function(){return a},bL:function(){return c},wA:function(){return s}});var r=n(52576),o=n(11262);function i(e){return(0,r.Z)((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*o.yB)/o.iM}))}var a=i(0),s=i(1),l=i(2),u=i(3),c=i(4),f=i(5),d=i(6);a.range,s.range,l.range,u.range,c.range,f.range,d.range},38887:function(e,t,n){"use strict";var r=n(52576),o=(0,r.Z)((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));o.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,r.Z)((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n*e)})):null},t.Z=o;o.range},85169:function(e,t,n){"use strict";function r(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function o(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function i(e){let t,n,i;function s(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<0?o=t+1:i=t}while(o<i)}return o}return 2!==e.length?(t=r,n=(t,n)=>r(e(t),n),i=(t,n)=>e(t)-n):(t=e===r||e===o?e:a,n=e,i=e),{left:s,center:function(e,t,n=0,r=e.length){const o=s(e,t,n,r-1);return o>n&&i(e[o-1],t)>-i(e[o],t)?o-1:o},right:function(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<=0?o=t+1:i=t}while(o<i)}return o}}}function a(){return 0}function s(e){return null===e?NaN:+e}function*l(e,t){if(void 0===t)for(let n of e)null!=n&&(n=+n)>=n&&(yield n);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r=+r)>=r&&(yield r)}}n.r(t),n.d(t,{Adder:function(){return P},Delaunay:function(){return cs},FormatSpecifier:function(){return Eu.v},InternMap:function(){return I.L},InternSet:function(){return I.H},Node:function(){return Uh},Path:function(){return ui},Voronoi:function(){return os},ZoomTransform:function(){return Bx},active:function(){return ho},arc:function(){return Wy},area:function(){return eb},areaRadial:function(){return ub},ascending:function(){return r},autoType:function(){return Us},axisBottom:function(){return gt},axisLeft:function(){return vt},axisRight:function(){return ht},axisTop:function(){return pt},bin:function(){return ue},bisect:function(){return p},bisectCenter:function(){return d},bisectLeft:function(){return f},bisectRight:function(){return c},bisector:function(){return i},blob:function(){return Il},blur:function(){return h},blur2:function(){return g},blurImage:function(){return v},brush:function(){return zo},brushSelection:function(){return Fo},brushX:function(){return Ho},brushY:function(){return Vo},buffer:function(){return jl},chord:function(){return ei},chordDirected:function(){return ni},chordTranspose:function(){return ti},cluster:function(){return Lh},color:function(){return Zr.ZP},contourDensity:function(){return Ta},contours:function(){return ya},count:function(){return _},create:function(){return wy},creator:function(){return Sn},cross:function(){return C},csv:function(){return Fl},csvFormat:function(){return Rs},csvFormatBody:function(){return Ts},csvFormatRow:function(){return Bs},csvFormatRows:function(){return Is},csvFormatValue:function(){return js},csvParse:function(){return Ms},csvParseRows:function(){return Ps},cubehelix:function(){return ta},cumsum:function(){return E},curveBasis:function(){return Qb},curveBasisClosed:function(){return tw},curveBasisOpen:function(){return rw},curveBumpX:function(){return pb},curveBumpY:function(){return hb},curveBundle:function(){return iw},curveCardinal:function(){return lw},curveCardinalClosed:function(){return cw},curveCardinalOpen:function(){return dw},curveCatmullRom:function(){return gw},curveCatmullRomClosed:function(){return mw},curveCatmullRomOpen:function(){return bw},curveLinear:function(){return Xy},curveLinearClosed:function(){return _w},curveMonotoneX:function(){return Mw},curveMonotoneY:function(){return Pw},curveNatural:function(){return Iw},curveStep:function(){return jw},curveStepAfter:function(){return Lw},curveStepBefore:function(){return Dw},descending:function(){return o},deviation:function(){return k},difference:function(){return qe},disjoint:function(){return $e},dispatch:function(){return xt},drag:function(){return ms},dragDisable:function(){return Vn},dragEnable:function(){return zn},dsv:function(){return Nl},dsvFormat:function(){return As},easeBack:function(){return Al},easeBackIn:function(){return Cl},easeBackInOut:function(){return Al},easeBackOut:function(){return El},easeBounce:function(){return xl},easeBounceIn:function(){return _l},easeBounceInOut:function(){return Sl},easeBounceOut:function(){return xl},easeCircle:function(){return cl},easeCircleIn:function(){return ll},easeCircleInOut:function(){return cl},easeCircleOut:function(){return ul},easeCubic:function(){return uo},easeCubicIn:function(){return so},easeCubicInOut:function(){return uo},easeCubicOut:function(){return lo},easeElastic:function(){return Pl},easeElasticIn:function(){return Ml},easeElasticInOut:function(){return Rl},easeElasticOut:function(){return Pl},easeExp:function(){return sl},easeExpIn:function(){return il},easeExpInOut:function(){return sl},easeExpOut:function(){return al},easeLinear:function(){return Ws},easePoly:function(){return Js},easePolyIn:function(){return Xs},easePolyInOut:function(){return Js},easePolyOut:function(){return Ks},easeQuad:function(){return Ys},easeQuadIn:function(){return qs},easeQuadInOut:function(){return Ys},easeQuadOut:function(){return $s},easeSin:function(){return rl},easeSinIn:function(){return tl},easeSinInOut:function(){return rl},easeSinOut:function(){return nl},every:function(){return He},extent:function(){return M},fcumsum:function(){return T},filter:function(){return ze},flatGroup:function(){return Z},flatRollup:function(){return N},forceCenter:function(){return Yl},forceCollide:function(){return lu},forceLink:function(){return fu},forceManyBody:function(){return wu},forceRadial:function(){return _u},forceSimulation:function(){return bu},forceX:function(){return xu},forceY:function(){return Su},format:function(){return Ou.WU},formatDefaultLocale:function(){return Ou.ZP},formatLocale:function(){return Cu.Z},formatPrefix:function(){return Ou.jH},formatSpecifier:function(){return Eu.Z},fsum:function(){return R},geoAlbers:function(){return Jp},geoAlbersUsa:function(){return Qp},geoArea:function(){return Rc},geoAzimuthalEqualArea:function(){return rh},geoAzimuthalEqualAreaRaw:function(){return nh},geoAzimuthalEquidistant:function(){return ih},geoAzimuthalEquidistantRaw:function(){return oh},geoBounds:function(){return pf},geoCentroid:function(){return Cf},geoCircle:function(){return Df},geoClipAntimeridian:function(){return $f},geoClipCircle:function(){return Yf},geoClipExtent:function(){return rd},geoClipRectangle:function(){return nd},geoConicConformal:function(){return fh},geoConicConformalRaw:function(){return ch},geoConicEqualArea:function(){return Kp},geoConicEqualAreaRaw:function(){return Xp},geoConicEquidistant:function(){return gh},geoConicEquidistantRaw:function(){return hh},geoContains:function(){return wd},geoDistance:function(){return fd},geoEqualEarth:function(){return xh},geoEqualEarthRaw:function(){return _h},geoEquirectangular:function(){return ph},geoEquirectangularRaw:function(){return dh},geoGnomonic:function(){return Oh},geoGnomonicRaw:function(){return Sh},geoGraticule:function(){return Od},geoGraticule10:function(){return Cd},geoIdentity:function(){return Ch},geoInterpolate:function(){return Ed},geoLength:function(){return ld},geoMercator:function(){return sh},geoMercatorRaw:function(){return ah},geoNaturalEarth1:function(){return Ah},geoNaturalEarth1Raw:function(){return Eh},geoOrthographic:function(){return Mh},geoOrthographicRaw:function(){return kh},geoPath:function(){return Ip},geoProjection:function(){return qp},geoProjectionMutator:function(){return $p},geoRotation:function(){return If},geoStereographic:function(){return Rh},geoStereographicRaw:function(){return Ph},geoStream:function(){return sc},geoTransform:function(){return Bp},geoTransverseMercator:function(){return Ih},geoTransverseMercatorRaw:function(){return Th},gray:function(){return ji},greatest:function(){return ve},greatestIndex:function(){return Ie},group:function(){return j},groupSort:function(){return X},groups:function(){return D},hcl:function(){return Ui},hierarchy:function(){return Nh},histogram:function(){return ue},hsl:function(){return Zr.Ym},html:function(){return ql},image:function(){return Vl},index:function(){return V},indexes:function(){return z},interpolate:function(){return Un.Z},interpolateArray:function(){return Gg.Z},interpolateBasis:function(){return Wg.Z},interpolateBasisClosed:function(){return qg.Z},interpolateBlues:function(){return qm},interpolateBrBG:function(){return im},interpolateBuGn:function(){return Sm},interpolateBuPu:function(){return Cm},interpolateCividis:function(){return oy},interpolateCool:function(){return sy},interpolateCubehelix:function(){return fv},interpolateCubehelixDefault:function(){return iy},interpolateCubehelixLong:function(){return dv},interpolateDate:function(){return $g.Z},interpolateDiscrete:function(){return Yg},interpolateGnBu:function(){return Am},interpolateGreens:function(){return Ym},interpolateGreys:function(){return Km},interpolateHcl:function(){return lv},interpolateHclLong:function(){return uv},interpolateHsl:function(){return ov},interpolateHslLong:function(){return iv},interpolateHue:function(){return Kg},interpolateInferno:function(){return yy},interpolateLab:function(){return av},interpolateMagma:function(){return my},interpolateNumber:function(){return kr.Z},interpolateNumberArray:function(){return Jg.Z},interpolateObject:function(){return Qg.Z},interpolateOrRd:function(){return Mm},interpolateOranges:function(){return ry},interpolatePRGn:function(){return sm},interpolatePiYG:function(){return um},interpolatePlasma:function(){return by},interpolatePuBu:function(){return Im},interpolatePuBuGn:function(){return Rm},interpolatePuOr:function(){return fm},interpolatePuRd:function(){return jm},interpolatePurples:function(){return Qm},interpolateRainbow:function(){return uy},interpolateRdBu:function(){return pm},interpolateRdGy:function(){return gm},interpolateRdPu:function(){return Lm},interpolateRdYlBu:function(){return mm},interpolateRdYlGn:function(){return bm},interpolateReds:function(){return ty},interpolateRgb:function(){return Nr.ZP},interpolateRgbBasis:function(){return Nr.hD},interpolateRgbBasisClosed:function(){return Nr.YD},interpolateRound:function(){return ev.Z},interpolateSinebow:function(){return py},interpolateSpectral:function(){return _m},interpolateString:function(){return Fr.Z},interpolateTransformCss:function(){return Ir},interpolateTransformSvg:function(){return Br},interpolateTurbo:function(){return hy},interpolateViridis:function(){return vy},interpolateWarm:function(){return ay},interpolateYlGn:function(){return Hm},interpolateYlGnBu:function(){return Nm},interpolateYlOrBr:function(){return zm},interpolateYlOrRd:function(){return Gm},interpolateZoom:function(){return nv},interrupt:function(){return Er},intersection:function(){return Ye},interval:function(){return Rx},isoFormat:function(){return kx},isoParse:function(){return Px},json:function(){return Ul},lab:function(){return Di},lch:function(){return zi},least:function(){return Re},leastIndex:function(){return Te},line:function(){return Qy},lineRadial:function(){return lb},link:function(){return yb},linkHorizontal:function(){return bb},linkRadial:function(){return _b},linkVertical:function(){return wb},local:function(){return xy},map:function(){return Ue},matcher:function(){return kt},max:function(){return ce},maxIndex:function(){return fe},mean:function(){return xe},median:function(){return Se},medianIndex:function(){return Oe},merge:function(){return Ce},min:function(){return de},minIndex:function(){return pe},mode:function(){return Ee},namespace:function(){return zt},namespaces:function(){return Vt},nice:function(){return se},now:function(){return or},pack:function(){return gg},packEnclose:function(){return Qh},packSiblings:function(){return pg},pairs:function(){return Ae},partition:function(){return _g},path:function(){return ci},pathRound:function(){return fi},permute:function(){return W},pie:function(){return rb},piecewise:function(){return pv.Z},pointRadial:function(){return cb},pointer:function(){return Wn},pointers:function(){return Oy},polygonArea:function(){return gv},polygonCentroid:function(){return vv},polygonContains:function(){return _v},polygonHull:function(){return wv},polygonLength:function(){return xv},precisionFixed:function(){return Au.Z},precisionPrefix:function(){return ku.Z},precisionRound:function(){return Mu.Z},quadtree:function(){return eu},quantile:function(){return me},quantileIndex:function(){return be},quantileSorted:function(){return ye},quantize:function(){return hv},quickselect:function(){return he},radialArea:function(){return ub},radialLine:function(){return lb},randomBates:function(){return Mv},randomBernoulli:function(){return Tv},randomBeta:function(){return jv},randomBinomial:function(){return Dv},randomCauchy:function(){return Zv},randomExponential:function(){return Pv},randomGamma:function(){return Bv},randomGeometric:function(){return Iv},randomInt:function(){return Cv},randomIrwinHall:function(){return kv},randomLcg:function(){return Uv},randomLogNormal:function(){return Av},randomLogistic:function(){return Nv},randomNormal:function(){return Ev},randomPareto:function(){return Rv},randomPoisson:function(){return Fv},randomUniform:function(){return Ov},randomWeibull:function(){return Lv},range:function(){return Me},rank:function(){return Pe},reduce:function(){return Ge},reverse:function(){return We},rgb:function(){return Zr.B8},ribbon:function(){return xi},ribbonArrow:function(){return Si},rollup:function(){return F},rollups:function(){return H},scaleBand:function(){return Gv.scaleBand},scaleDiverging:function(){return Gv.scaleDiverging},scaleDivergingLog:function(){return Gv.scaleDivergingLog},scaleDivergingPow:function(){return Gv.scaleDivergingPow},scaleDivergingSqrt:function(){return Gv.scaleDivergingSqrt},scaleDivergingSymlog:function(){return Gv.scaleDivergingSymlog},scaleIdentity:function(){return Gv.scaleIdentity},scaleImplicit:function(){return Gv.scaleImplicit},scaleLinear:function(){return Gv.scaleLinear},scaleLog:function(){return Gv.scaleLog},scaleOrdinal:function(){return Gv.scaleOrdinal},scalePoint:function(){return Gv.scalePoint},scalePow:function(){return Gv.scalePow},scaleQuantile:function(){return Gv.scaleQuantile},scaleQuantize:function(){return Gv.scaleQuantize},scaleRadial:function(){return Gv.scaleRadial},scaleSequential:function(){return Gv.scaleSequential},scaleSequentialLog:function(){return Gv.scaleSequentialLog},scaleSequentialPow:function(){return Gv.scaleSequentialPow},scaleSequentialQuantile:function(){return Gv.scaleSequentialQuantile},scaleSequentialSqrt:function(){return Gv.scaleSequentialSqrt},scaleSequentialSymlog:function(){return Gv.scaleSequentialSymlog},scaleSqrt:function(){return Gv.scaleSqrt},scaleSymlog:function(){return Gv.scaleSymlog},scaleThreshold:function(){return Gv.scaleThreshold},scaleTime:function(){return Gv.scaleTime},scaleUtc:function(){return Gv.scaleUtc},scan:function(){return Be},schemeAccent:function(){return $v},schemeBlues:function(){return Wm},schemeBrBG:function(){return om},schemeBuGn:function(){return xm},schemeBuPu:function(){return Om},schemeCategory10:function(){return qv},schemeDark2:function(){return Yv},schemeGnBu:function(){return Em},schemeGreens:function(){return $m},schemeGreys:function(){return Xm},schemeOrRd:function(){return km},schemeOranges:function(){return ny},schemePRGn:function(){return am},schemePaired:function(){return Xv},schemePastel1:function(){return Kv},schemePastel2:function(){return Jv},schemePiYG:function(){return lm},schemePuBu:function(){return Tm},schemePuBuGn:function(){return Pm},schemePuOr:function(){return cm},schemePuRd:function(){return Bm},schemePurples:function(){return Jm},schemeRdBu:function(){return dm},schemeRdGy:function(){return hm},schemeRdPu:function(){return Dm},schemeRdYlBu:function(){return vm},schemeRdYlGn:function(){return ym},schemeReds:function(){return ey},schemeSet1:function(){return Qv},schemeSet2:function(){return em},schemeSet3:function(){return tm},schemeSpectral:function(){return wm},schemeTableau10:function(){return nm},schemeYlGn:function(){return Fm},schemeYlGnBu:function(){return Zm},schemeYlOrBr:function(){return Vm},schemeYlOrRd:function(){return Um},select:function(){return Ln},selectAll:function(){return Cy},selection:function(){return Dn},selector:function(){return Ot},selectorAll:function(){return At},shuffle:function(){return je},shuffler:function(){return De},some:function(){return Ve},sort:function(){return q},stack:function(){return Vw},stackOffsetDiverging:function(){return Uw},stackOffsetExpand:function(){return zw},stackOffsetNone:function(){return Zw},stackOffsetSilhouette:function(){return Gw},stackOffsetWiggle:function(){return Ww},stackOrderAppearance:function(){return qw},stackOrderAscending:function(){return Yw},stackOrderDescending:function(){return Kw},stackOrderInsideOut:function(){return Jw},stackOrderNone:function(){return Nw},stackOrderReverse:function(){return Qw},stratify:function(){return Ag},style:function(){return en},subset:function(){return Qe},sum:function(){return Le},superset:function(){return Ke},svg:function(){return $l},symbol:function(){return Yb},symbolAsterisk:function(){return Sb},symbolCircle:function(){return Ob},symbolCross:function(){return Cb},symbolDiamond:function(){return kb},symbolDiamond2:function(){return Mb},symbolPlus:function(){return Pb},symbolSquare:function(){return Rb},symbolSquare2:function(){return Tb},symbolStar:function(){return Db},symbolTimes:function(){return Wb},symbolTriangle:function(){return Zb},symbolTriangle2:function(){return Fb},symbolWye:function(){return Gb},symbolX:function(){return Wb},symbols:function(){return qb},symbolsFill:function(){return qb},symbolsStroke:function(){return $b},text:function(){return Ll},thresholdFreedmanDiaconis:function(){return we},thresholdScott:function(){return _e},thresholdSturges:function(){return le},tickFormat:function(){return Gv.tickFormat},tickIncrement:function(){return ie},tickStep:function(){return ae},ticks:function(){return oe},timeDay:function(){return x_},timeDays:function(){return S_},timeFormat:function(){return Ox.i$},timeFormatDefaultLocale:function(){return Ox.ZP},timeFormatLocale:function(){return Cx.Z},timeFriday:function(){return B_},timeFridays:function(){return H_},timeHour:function(){return y_},timeHours:function(){return b_},timeInterval:function(){return n_},timeMillisecond:function(){return r_},timeMilliseconds:function(){return o_},timeMinute:function(){return h_},timeMinutes:function(){return g_},timeMonday:function(){return P_},timeMondays:function(){return L_},timeMonth:function(){return ox},timeMonths:function(){return ix},timeParse:function(){return Ox.Z1},timeSaturday:function(){return j_},timeSaturdays:function(){return V_},timeSecond:function(){return d_},timeSeconds:function(){return p_},timeSunday:function(){return M_},timeSundays:function(){return D_},timeThursday:function(){return I_},timeThursdays:function(){return F_},timeTickInterval:function(){return Sx},timeTicks:function(){return xx},timeTuesday:function(){return R_},timeTuesdays:function(){return Z_},timeWednesday:function(){return T_},timeWednesdays:function(){return N_},timeWeek:function(){return M_},timeWeeks:function(){return D_},timeYear:function(){return lx},timeYears:function(){return ux},timeout:function(){return dr},timer:function(){return sr},timerFlush:function(){return lr},transition:function(){return oo},transpose:function(){return Ze},tree:function(){return Dg},treemap:function(){return Hg},treemapBinary:function(){return Vg},treemapDice:function(){return wg},treemapResquarify:function(){return Ug},treemapSlice:function(){return Lg},treemapSliceDice:function(){return zg},treemapSquarify:function(){return Fg},tsv:function(){return Hl},tsvFormat:function(){return Ns},tsvFormatBody:function(){return Fs},tsvFormatRow:function(){return Vs},tsvFormatRows:function(){return Hs},tsvFormatValue:function(){return zs},tsvParse:function(){return Ls},tsvParseRows:function(){return Zs},union:function(){return et},unixDay:function(){return E_},unixDays:function(){return A_},utcDay:function(){return O_},utcDays:function(){return C_},utcFormat:function(){return Ox.g0},utcFriday:function(){return Y_},utcFridays:function(){return nx},utcHour:function(){return w_},utcHours:function(){return __},utcMillisecond:function(){return r_},utcMilliseconds:function(){return o_},utcMinute:function(){return v_},utcMinutes:function(){return m_},utcMonday:function(){return G_},utcMondays:function(){return J_},utcMonth:function(){return ax},utcMonths:function(){return sx},utcParse:function(){return Ox.wp},utcSaturday:function(){return X_},utcSaturdays:function(){return rx},utcSecond:function(){return d_},utcSeconds:function(){return p_},utcSunday:function(){return U_},utcSundays:function(){return K_},utcThursday:function(){return $_},utcThursdays:function(){return tx},utcTickInterval:function(){return _x},utcTicks:function(){return wx},utcTuesday:function(){return W_},utcTuesdays:function(){return Q_},utcWednesday:function(){return q_},utcWednesdays:function(){return ex},utcWeek:function(){return U_},utcWeeks:function(){return K_},utcYear:function(){return cx},utcYears:function(){return fx},variance:function(){return A},window:function(){return Xt},xml:function(){return Wl},zip:function(){return Fe},zoom:function(){return Gx},zoomIdentity:function(){return jx},zoomTransform:function(){return Dx}});const u=i(r),c=u.right,f=u.left,d=i(s).center;var p=c;function h(e,t){if(!((t=+t)>=0))throw new RangeError("invalid r");let n=e.length;if(!((n=Math.floor(n))>=0))throw new RangeError("invalid length");if(!n||!t)return e;const r=w(t),o=e.slice();return r(e,o,0,n,1),r(o,e,0,n,1),r(e,o,0,n,1),e}const g=m(w),v=m((function(e){const t=w(e);return(e,n,r,o,i)=>{t(e,n,(r<<=2)+0,(o<<=2)+0,i<<=2),t(e,n,r+1,o+1,i),t(e,n,r+2,o+2,i),t(e,n,r+3,o+3,i)}}));function m(e){return function(t,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:a}=t;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!a||!n&&!r)return t;const s=n&&e(n),l=r&&e(r),u=o.slice();return s&&l?(y(s,u,o,i,a),y(s,o,u,i,a),y(s,u,o,i,a),b(l,o,u,i,a),b(l,u,o,i,a),b(l,o,u,i,a)):s?(y(s,o,u,i,a),y(s,u,o,i,a),y(s,o,u,i,a)):l&&(b(l,o,u,i,a),b(l,u,o,i,a),b(l,o,u,i,a)),t}}function y(e,t,n,r,o){for(let i=0,a=r*o;i<a;)e(t,n,i,i+=r,1)}function b(e,t,n,r,o){for(let i=0,a=r*o;i<r;++i)e(t,n,i,i+a,r)}function w(e){const t=Math.floor(e);if(t===e)return function(e){const t=2*e+1;return(n,r,o,i,a)=>{if(!((i-=a)>=o))return;let s=e*r[o];const l=a*e;for(let e=o,t=o+l;e<t;e+=a)s+=r[Math.min(i,e)];for(let e=o,u=i;e<=u;e+=a)s+=r[Math.min(i,e+l)],n[e]=s/t,s-=r[Math.max(o,e-l)]}}(e);const n=e-t,r=2*e+1;return(e,o,i,a,s)=>{if(!((a-=s)>=i))return;let l=t*o[i];const u=s*t,c=u+s;for(let t=i,n=i+u;t<n;t+=s)l+=o[Math.min(a,t)];for(let t=i,f=a;t<=f;t+=s)l+=o[Math.min(a,t+u)],e[t]=(l+n*(o[Math.max(i,t-c)]+o[Math.min(a,t+c)]))/r,l-=o[Math.max(i,t-u)]}}function _(e,t){let n=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&++n;else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&++n}return n}function x(e){return 0|e.length}function S(e){return!(e>0)}function O(e){return"object"!==typeof e||"length"in e?e:Array.from(e)}function C(...e){const t="function"===typeof e[e.length-1]&&function(e){return t=>e(...t)}(e.pop()),n=(e=e.map(O)).map(x),r=e.length-1,o=new Array(r+1).fill(0),i=[];if(r<0||n.some(S))return i;for(;;){i.push(o.map(((t,n)=>e[n][t])));let a=r;for(;++o[a]===n[a];){if(0===a)return t?i.map(t):i;o[a--]=0}}}function E(e,t){var n=0,r=0;return Float64Array.from(e,void 0===t?e=>n+=+e||0:o=>n+=+t(o,r++,e)||0)}function A(e,t){let n,r=0,o=0,i=0;if(void 0===t)for(let a of e)null!=a&&(a=+a)>=a&&(n=a-o,o+=n/++r,i+=n*(a-o));else{let a=-1;for(let s of e)null!=(s=t(s,++a,e))&&(s=+s)>=s&&(n=s-o,o+=n/++r,i+=n*(s-o))}if(r>1)return i/(r-1)}function k(e,t){const n=A(e,t);return n?Math.sqrt(n):n}function M(e,t){let n,r;if(void 0===t)for(const o of e)null!=o&&(void 0===n?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)));else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(void 0===n?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)))}return[n,r]}class P{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let r=0;r<this._n&&r<32;r++){const o=t[r],i=e+o,a=Math.abs(e)<Math.abs(o)?e-(i-o):o-(i-e);a&&(t[n++]=a),e=i}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,r,o=this._n,i=0;if(o>0){for(i=e[--o];o>0&&(t=i,n=e[--o],i=t+n,r=n-(i-t),!r););o>0&&(r<0&&e[o-1]<0||r>0&&e[o-1]>0)&&(n=2*r,t=i+n,n==t-i&&(i=t))}return i}}function R(e,t){const n=new P;if(void 0===t)for(let r of e)(r=+r)&&n.add(r);else{let r=-1;for(let o of e)(o=+t(o,++r,e))&&n.add(o)}return+n}function T(e,t){const n=new P;let r=-1;return Float64Array.from(e,void 0===t?e=>n.add(+e||0):o=>n.add(+t(o,++r,e)||0))}var I=n(909);function B(e){return e}function j(e,...t){return G(e,B,B,t)}function D(e,...t){return G(e,Array.from,B,t)}function L(e,t){for(let n=1,r=t.length;n<r;++n)e=e.flatMap((e=>e.pop().map((([t,n])=>[...e,t,n]))));return e}function Z(e,...t){return L(D(e,...t),t)}function N(e,t,...n){return L(H(e,t,...n),n)}function F(e,t,...n){return G(e,B,t,n)}function H(e,t,...n){return G(e,Array.from,t,n)}function V(e,...t){return G(e,B,U,t)}function z(e,...t){return G(e,Array.from,U,t)}function U(e){if(1!==e.length)throw new Error("duplicate key");return e[0]}function G(e,t,n,r){return function e(o,i){if(i>=r.length)return n(o);const a=new I.L,s=r[i++];let l=-1;for(const t of o){const e=s(t,++l,o),n=a.get(e);n?n.push(t):a.set(e,[t])}for(const[t,n]of a)a.set(t,e(n,i));return t(a)}(e,0)}function W(e,t){return Array.from(t,(t=>e[t]))}function q(e,...t){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");e=Array.from(e);let[n]=t;if(n&&2!==n.length||t.length>1){const r=Uint32Array.from(e,((e,t)=>t));return t.length>1?(t=t.map((t=>e.map(t))),r.sort(((e,n)=>{for(const r of t){const t=Y(r[e],r[n]);if(t)return t}}))):(n=e.map(n),r.sort(((e,t)=>Y(n[e],n[t])))),W(e,r)}return e.sort($(n))}function $(e=r){if(e===r)return Y;if("function"!==typeof e)throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}function Y(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:e>t?1:0)}function X(e,t,n){return(2!==t.length?q(F(e,t,n),(([e,t],[n,o])=>r(t,o)||r(e,n))):q(j(e,n),(([e,n],[o,i])=>t(n,i)||r(e,o)))).map((([e])=>e))}var K=Array.prototype,J=K.slice;K.map;function Q(e){return()=>e}const ee=Math.sqrt(50),te=Math.sqrt(10),ne=Math.sqrt(2);function re(e,t,n){const r=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),a=i>=ee?10:i>=te?5:i>=ne?2:1;let s,l,u;return o<0?(u=Math.pow(10,-o)/a,s=Math.round(e*u),l=Math.round(t*u),s/u<e&&++s,l/u>t&&--l,u=-u):(u=Math.pow(10,o)*a,s=Math.round(e/u),l=Math.round(t/u),s*u<e&&++s,l*u>t&&--l),l<s&&.5<=n&&n<2?re(e,t,2*n):[s,l,u]}function oe(e,t,n){if(!((n=+n)>0))return[];if((e=+e)===(t=+t))return[e];const r=t<e,[o,i,a]=r?re(t,e,n):re(e,t,n);if(!(i>=o))return[];const s=i-o+1,l=new Array(s);if(r)if(a<0)for(let u=0;u<s;++u)l[u]=(i-u)/-a;else for(let u=0;u<s;++u)l[u]=(i-u)*a;else if(a<0)for(let u=0;u<s;++u)l[u]=(o+u)/-a;else for(let u=0;u<s;++u)l[u]=(o+u)*a;return l}function ie(e,t,n){return re(e=+e,t=+t,n=+n)[2]}function ae(e,t,n){n=+n;const r=(t=+t)<(e=+e),o=r?ie(t,e,n):ie(e,t,n);return(r?-1:1)*(o<0?1/-o:o)}function se(e,t,n){let r;for(;;){const o=ie(e,t,n);if(o===r||0===o||!isFinite(o))return[e,t];o>0?(e=Math.floor(e/o)*o,t=Math.ceil(t/o)*o):o<0&&(e=Math.ceil(e*o)/o,t=Math.floor(t*o)/o),r=o}}function le(e){return Math.max(1,Math.ceil(Math.log(_(e))/Math.LN2)+1)}function ue(){var e=B,t=M,n=le;function r(r){Array.isArray(r)||(r=Array.from(r));var o,i,a,s=r.length,l=new Array(s);for(o=0;o<s;++o)l[o]=e(r[o],o,r);var u=t(l),c=u[0],f=u[1],d=n(l,c,f);if(!Array.isArray(d)){const e=f,n=+d;if(t===M&&([c,f]=se(c,f,n)),(d=oe(c,f,n))[0]<=c&&(a=ie(c,f,n)),d[d.length-1]>=f)if(e>=f&&t===M){const e=ie(c,f,n);isFinite(e)&&(e>0?f=(Math.floor(f/e)+1)*e:e<0&&(f=(Math.ceil(f*-e)+1)/-e))}else d.pop()}for(var h=d.length,g=0,v=h;d[g]<=c;)++g;for(;d[v-1]>f;)--v;(g||v<h)&&(d=d.slice(g,v),h=v-g);var m,y=new Array(h+1);for(o=0;o<=h;++o)(m=y[o]=[]).x0=o>0?d[o-1]:c,m.x1=o<h?d[o]:f;if(isFinite(a)){if(a>0)for(o=0;o<s;++o)null!=(i=l[o])&&c<=i&&i<=f&&y[Math.min(h,Math.floor((i-c)/a))].push(r[o]);else if(a<0)for(o=0;o<s;++o)if(null!=(i=l[o])&&c<=i&&i<=f){const e=Math.floor((c-i)*a);y[Math.min(h,e+(d[e]<=i))].push(r[o])}}else for(o=0;o<s;++o)null!=(i=l[o])&&c<=i&&i<=f&&y[p(d,i,0,h)].push(r[o]);return y}return r.value=function(t){return arguments.length?(e="function"===typeof t?t:Q(t),r):e},r.domain=function(e){return arguments.length?(t="function"===typeof e?e:Q([e[0],e[1]]),r):t},r.thresholds=function(e){return arguments.length?(n="function"===typeof e?e:Q(Array.isArray(e)?J.call(e):e),r):n},r}function ce(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n<r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}function fe(e,t){let n,r=-1,o=-1;if(void 0===t)for(const i of e)++o,null!=i&&(n<i||void 0===n&&i>=i)&&(n=i,r=o);else for(let i of e)null!=(i=t(i,++o,e))&&(n<i||void 0===n&&i>=i)&&(n=i,r=o);return r}function de(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n>r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}function pe(e,t){let n,r=-1,o=-1;if(void 0===t)for(const i of e)++o,null!=i&&(n>i||void 0===n&&i>=i)&&(n=i,r=o);else for(let i of e)null!=(i=t(i,++o,e))&&(n>i||void 0===n&&i>=i)&&(n=i,r=o);return r}function he(e,t,n=0,r=1/0,o){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(o=void 0===o?Y:$(o);r>n;){if(r-n>600){const i=r-n+1,a=t-n+1,s=Math.log(i),l=.5*Math.exp(2*s/3),u=.5*Math.sqrt(s*l*(i-l)/i)*(a-i/2<0?-1:1);he(e,t,Math.max(n,Math.floor(t-a*l/i+u)),Math.min(r,Math.floor(t+(i-a)*l/i+u)),o)}const i=e[t];let a=n,s=r;for(ge(e,n,t),o(e[r],i)>0&&ge(e,n,r);a<s;){for(ge(e,a,s),++a,--s;o(e[a],i)<0;)++a;for(;o(e[s],i)>0;)--s}0===o(e[n],i)?ge(e,n,s):(++s,ge(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function ge(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function ve(e,t=r){let n,o=!1;if(1===t.length){let i;for(const a of e){const e=t(a);(o?r(e,i)>0:0===r(e,e))&&(n=a,i=e,o=!0)}}else for(const r of e)(o?t(r,n)>0:0===t(r,r))&&(n=r,o=!0);return n}function me(e,t,n){if((r=(e=Float64Array.from(l(e,n))).length)&&!isNaN(t=+t)){if(t<=0||r<2)return de(e);if(t>=1)return ce(e);var r,o=(r-1)*t,i=Math.floor(o),a=ce(he(e,i).subarray(0,i+1));return a+(de(e.subarray(i+1))-a)*(o-i)}}function ye(e,t,n=s){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,o=(r-1)*t,i=Math.floor(o),a=+n(e[i],i,e);return a+(+n(e[i+1],i+1,e)-a)*(o-i)}}function be(e,t,n){if((r=(e=Float64Array.from(l(e,n))).length)&&!isNaN(t=+t)){if(t<=0||r<2)return pe(e);if(t>=1)return fe(e);var r,o=Math.floor((r-1)*t),i=he(Uint32Array.from(e,((e,t)=>t)),o,0,r-1,((t,n)=>Y(e[t],e[n])));return ve(i.subarray(0,o+1),(t=>e[t]))}}function we(e,t,n){const r=_(e),o=me(e,.75)-me(e,.25);return r&&o?Math.ceil((n-t)/(2*o*Math.pow(r,-1/3))):1}function _e(e,t,n){const r=_(e),o=k(e);return r&&o?Math.ceil((n-t)*Math.cbrt(r)/(3.49*o)):1}function xe(e,t){let n=0,r=0;if(void 0===t)for(let o of e)null!=o&&(o=+o)>=o&&(++n,r+=o);else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(i=+i)>=i&&(++n,r+=i)}if(n)return r/n}function Se(e,t){return me(e,.5,t)}function Oe(e,t){return be(e,.5,t)}function Ce(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function Ee(e,t){const n=new I.L;if(void 0===t)for(let i of e)null!=i&&i>=i&&n.set(i,(n.get(i)||0)+1);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&o>=o&&n.set(o,(n.get(o)||0)+1)}let r,o=0;for(const[i,a]of n)a>o&&(o=a,r=i);return r}function Ae(e,t=ke){const n=[];let r,o=!1;for(const i of e)o&&n.push(t(r,i)),r=i,o=!0;return n}function ke(e,t){return[e,t]}function Me(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(o);++r<o;)i[r]=e+r*n;return i}function Pe(e,t=r){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");let n=Array.from(e);const o=new Float64Array(n.length);2!==t.length&&(n=n.map(t),t=r);const i=(e,r)=>t(n[e],n[r]);let a,s;return(e=Uint32Array.from(n,((e,t)=>t))).sort(t===r?(e,t)=>Y(n[e],n[t]):$(i)),e.forEach(((e,t)=>{const n=i(e,void 0===a?e:a);n>=0?((void 0===a||n>0)&&(a=e,s=t),o[e]=s):o[e]=NaN})),o}function Re(e,t=r){let n,o=!1;if(1===t.length){let i;for(const a of e){const e=t(a);(o?r(e,i)<0:0===r(e,e))&&(n=a,i=e,o=!0)}}else for(const r of e)(o?t(r,n)<0:0===t(r,r))&&(n=r,o=!0);return n}function Te(e,t=r){if(1===t.length)return pe(e,t);let n,o=-1,i=-1;for(const r of e)++i,(o<0?0===t(r,r):t(r,n)<0)&&(n=r,o=i);return o}function Ie(e,t=r){if(1===t.length)return fe(e,t);let n,o=-1,i=-1;for(const r of e)++i,(o<0?0===t(r,r):t(r,n)>0)&&(n=r,o=i);return o}function Be(e,t){const n=Te(e,t);return n<0?void 0:n}var je=De(Math.random);function De(e){return function(t,n=0,r=t.length){let o=r-(n=+n);for(;o;){const r=e()*o--|0,i=t[o+n];t[o+n]=t[r+n],t[r+n]=i}return t}}function Le(e,t){let n=0;if(void 0===t)for(let r of e)(r=+r)&&(n+=r);else{let r=-1;for(let o of e)(o=+t(o,++r,e))&&(n+=o)}return n}function Ze(e){if(!(o=e.length))return[];for(var t=-1,n=de(e,Ne),r=new Array(n);++t<n;)for(var o,i=-1,a=r[t]=new Array(o);++i<o;)a[i]=e[i][t];return r}function Ne(e){return e.length}function Fe(){return Ze(arguments)}function He(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");let n=-1;for(const r of e)if(!t(r,++n,e))return!1;return!0}function Ve(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");let n=-1;for(const r of e)if(t(r,++n,e))return!0;return!1}function ze(e,t){if("function"!==typeof t)throw new TypeError("test is not a function");const n=[];let r=-1;for(const o of e)t(o,++r,e)&&n.push(o);return n}function Ue(e,t){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!==typeof t)throw new TypeError("mapper is not a function");return Array.from(e,((n,r)=>t(n,r,e)))}function Ge(e,t,n){if("function"!==typeof t)throw new TypeError("reducer is not a function");const r=e[Symbol.iterator]();let o,i,a=-1;if(arguments.length<3){if(({done:o,value:n}=r.next()),o)return;++a}for(;({done:o,value:i}=r.next()),!o;)n=t(n,i,++a,e);return n}function We(e){if("function"!==typeof e[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(e).reverse()}function qe(e,...t){e=new I.H(e);for(const n of t)for(const t of n)e.delete(t);return e}function $e(e,t){const n=t[Symbol.iterator](),r=new I.H;for(const o of e){if(r.has(o))return!1;let e,t;for(;({value:e,done:t}=n.next())&&!t;){if(Object.is(o,e))return!1;r.add(e)}}return!0}function Ye(e,...t){e=new I.H(e),t=t.map(Xe);e:for(const n of e)for(const r of t)if(!r.has(n)){e.delete(n);continue e}return e}function Xe(e){return e instanceof I.H?e:new I.H(e)}function Ke(e,t){const n=e[Symbol.iterator](),r=new Set;for(const o of t){const e=Je(o);if(r.has(e))continue;let t,i;for(;({value:t,done:i}=n.next());){if(i)return!1;const n=Je(t);if(r.add(n),Object.is(e,n))break}}return!0}function Je(e){return null!==e&&"object"===typeof e?e.valueOf():e}function Qe(e,t){return Ke(t,e)}function et(...e){const t=new I.H;for(const n of e)for(const e of n)t.add(e);return t}function tt(e){return e}var nt=1,rt=2,ot=3,it=4,at=1e-6;function st(e){return"translate("+e+",0)"}function lt(e){return"translate(0,"+e+")"}function ut(e){return t=>+e(t)}function ct(e,t){return t=Math.max(0,e.bandwidth()-2*t)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function ft(){return!this.__axis}function dt(e,t){var n=[],r=null,o=null,i=6,a=6,s=3,l="undefined"!==typeof window&&window.devicePixelRatio>1?0:.5,u=e===nt||e===it?-1:1,c=e===it||e===rt?"x":"y",f=e===nt||e===ot?st:lt;function d(d){var p=null==r?t.ticks?t.ticks.apply(t,n):t.domain():r,h=null==o?t.tickFormat?t.tickFormat.apply(t,n):tt:o,g=Math.max(i,0)+s,v=t.range(),m=+v[0]+l,y=+v[v.length-1]+l,b=(t.bandwidth?ct:ut)(t.copy(),l),w=d.selection?d.selection():d,_=w.selectAll(".domain").data([null]),x=w.selectAll(".tick").data(p,t).order(),S=x.exit(),O=x.enter().append("g").attr("class","tick"),C=x.select("line"),E=x.select("text");_=_.merge(_.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(O),C=C.merge(O.append("line").attr("stroke","currentColor").attr(c+"2",u*i)),E=E.merge(O.append("text").attr("fill","currentColor").attr(c,u*g).attr("dy",e===nt?"0em":e===ot?"0.71em":"0.32em")),d!==w&&(_=_.transition(d),x=x.transition(d),C=C.transition(d),E=E.transition(d),S=S.transition(d).attr("opacity",at).attr("transform",(function(e){return isFinite(e=b(e))?f(e+l):this.getAttribute("transform")})),O.attr("opacity",at).attr("transform",(function(e){var t=this.parentNode.__axis;return f((t&&isFinite(t=t(e))?t:b(e))+l)}))),S.remove(),_.attr("d",e===it||e===rt?a?"M"+u*a+","+m+"H"+l+"V"+y+"H"+u*a:"M"+l+","+m+"V"+y:a?"M"+m+","+u*a+"V"+l+"H"+y+"V"+u*a:"M"+m+","+l+"H"+y),x.attr("opacity",1).attr("transform",(function(e){return f(b(e)+l)})),C.attr(c+"2",u*i),E.attr(c,u*g).text(h),w.filter(ft).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",e===rt?"start":e===it?"end":"middle"),w.each((function(){this.__axis=b}))}return d.scale=function(e){return arguments.length?(t=e,d):t},d.ticks=function(){return n=Array.from(arguments),d},d.tickArguments=function(e){return arguments.length?(n=null==e?[]:Array.from(e),d):n.slice()},d.tickValues=function(e){return arguments.length?(r=null==e?null:Array.from(e),d):r&&r.slice()},d.tickFormat=function(e){return arguments.length?(o=e,d):o},d.tickSize=function(e){return arguments.length?(i=a=+e,d):i},d.tickSizeInner=function(e){return arguments.length?(i=+e,d):i},d.tickSizeOuter=function(e){return arguments.length?(a=+e,d):a},d.tickPadding=function(e){return arguments.length?(s=+e,d):s},d.offset=function(e){return arguments.length?(l=+e,d):l},d}function pt(e){return dt(nt,e)}function ht(e){return dt(rt,e)}function gt(e){return dt(ot,e)}function vt(e){return dt(it,e)}var mt={value:()=>{}};function yt(){for(var e,t=0,n=arguments.length,r={};t<n;++t){if(!(e=arguments[t]+"")||e in r||/[\s.]/.test(e))throw new Error("illegal type: "+e);r[e]=[]}return new bt(r)}function bt(e){this._=e}function wt(e,t){for(var n,r=0,o=e.length;r<o;++r)if((n=e[r]).name===t)return n.value}function _t(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=mt,e=e.slice(0,r).concat(e.slice(r+1));break}return null!=n&&e.push({name:t,value:n}),e}bt.prototype=yt.prototype={constructor:bt,on:function(e,t){var n,r,o=this._,i=(r=o,(e+"").trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");if(n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=t&&"function"!==typeof t)throw new Error("invalid callback: "+t);for(;++a<s;)if(n=(e=i[a]).type)o[n]=_t(o[n],e.name,t);else if(null==t)for(n in o)o[n]=_t(o[n],e.name,null);return this}for(;++a<s;)if((n=(e=i[a]).type)&&(n=wt(o[n],e.name)))return n},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new bt(e)},call:function(e,t){if((n=arguments.length-2)>0)for(var n,r,o=new Array(n),i=0;i<n;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=0,n=(r=this._[e]).length;i<n;++i)r[i].value.apply(t,o)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};var xt=yt;function St(){}function Ot(e){return null==e?St:function(){return this.querySelector(e)}}function Ct(e){return null==e?[]:Array.isArray(e)?e:Array.from(e)}function Et(){return[]}function At(e){return null==e?Et:function(){return this.querySelectorAll(e)}}function kt(e){return function(){return this.matches(e)}}function Mt(e){return function(t){return t.matches(e)}}var Pt=Array.prototype.find;function Rt(){return this.firstElementChild}var Tt=Array.prototype.filter;function It(){return Array.from(this.children)}function Bt(e){return new Array(e.length)}function jt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Dt(e,t,n,r,o,i){for(var a,s=0,l=t.length,u=i.length;s<u;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new jt(e,i[s]);for(;s<l;++s)(a=t[s])&&(o[s]=a)}function Lt(e,t,n,r,o,i,a){var s,l,u,c=new Map,f=t.length,d=i.length,p=new Array(f);for(s=0;s<f;++s)(l=t[s])&&(p[s]=u=a.call(l,l.__data__,s,t)+"",c.has(u)?o[s]=l:c.set(u,l));for(s=0;s<d;++s)u=a.call(e,i[s],s,i)+"",(l=c.get(u))?(r[s]=l,l.__data__=i[s],c.delete(u)):n[s]=new jt(e,i[s]);for(s=0;s<f;++s)(l=t[s])&&c.get(p[s])===l&&(o[s]=l)}function Zt(e){return e.__data__}function Nt(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function Ft(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}jt.prototype={constructor:jt,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var Ht="http://www.w3.org/1999/xhtml",Vt={svg:"http://www.w3.org/2000/svg",xhtml:Ht,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function zt(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),Vt.hasOwnProperty(t)?{space:Vt[t],local:e}:e}function Ut(e){return function(){this.removeAttribute(e)}}function Gt(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Wt(e,t){return function(){this.setAttribute(e,t)}}function qt(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function $t(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function Yt(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Xt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Kt(e){return function(){this.style.removeProperty(e)}}function Jt(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Qt(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function en(e,t){return e.style.getPropertyValue(t)||Xt(e).getComputedStyle(e,null).getPropertyValue(t)}function tn(e){return function(){delete this[e]}}function nn(e,t){return function(){this[e]=t}}function rn(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function on(e){return e.trim().split(/^|\s+/)}function an(e){return e.classList||new sn(e)}function sn(e){this._node=e,this._names=on(e.getAttribute("class")||"")}function ln(e,t){for(var n=an(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function un(e,t){for(var n=an(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function cn(e){return function(){ln(this,e)}}function fn(e){return function(){un(this,e)}}function dn(e,t){return function(){(t.apply(this,arguments)?ln:un)(this,e)}}function pn(){this.textContent=""}function hn(e){return function(){this.textContent=e}}function gn(e){return function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}}function vn(){this.innerHTML=""}function mn(e){return function(){this.innerHTML=e}}function yn(e){return function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}}function bn(){this.nextSibling&&this.parentNode.appendChild(this)}function wn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function _n(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Ht&&t.documentElement.namespaceURI===Ht?t.createElement(e):t.createElementNS(n,e)}}function xn(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Sn(e){var t=zt(e);return(t.local?xn:_n)(t)}function On(){return null}function Cn(){var e=this.parentNode;e&&e.removeChild(this)}function En(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function An(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function kn(e){return function(){var t=this.__on;if(t){for(var n,r=0,o=-1,i=t.length;r<i;++r)n=t[r],e.type&&n.type!==e.type||n.name!==e.name?t[++o]=n:this.removeEventListener(n.type,n.listener,n.options);++o?t.length=o:delete this.__on}}}function Mn(e,t,n){return function(){var r,o=this.__on,i=function(e){return function(t){e.call(this,t,this.__data__)}}(t);if(o)for(var a=0,s=o.length;a<s;++a)if((r=o[a]).type===e.type&&r.name===e.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=t);this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function Pn(e,t,n){var r=Xt(e),o=r.CustomEvent;"function"===typeof o?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function Rn(e,t){return function(){return Pn(this,e,t)}}function Tn(e,t){return function(){return Pn(this,e,t.apply(this,arguments))}}sn.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var In=[null];function Bn(e,t){this._groups=e,this._parents=t}function jn(){return new Bn([[document.documentElement]],In)}Bn.prototype=jn.prototype={constructor:Bn,select:function(e){"function"!==typeof e&&(e=Ot(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a,s=t[o],l=s.length,u=r[o]=new Array(l),c=0;c<l;++c)(i=s[c])&&(a=e.call(i,i.__data__,c,s))&&("__data__"in i&&(a.__data__=i.__data__),u[c]=a);return new Bn(r,this._parents)},selectAll:function(e){e="function"===typeof e?function(e){return function(){return Ct(e.apply(this,arguments))}}(e):At(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var a,s=t[i],l=s.length,u=0;u<l;++u)(a=s[u])&&(r.push(e.call(a,a.__data__,u,s)),o.push(a));return new Bn(r,o)},selectChild:function(e){return this.select(null==e?Rt:function(e){return function(){return Pt.call(this.children,e)}}("function"===typeof e?e:Mt(e)))},selectChildren:function(e){return this.selectAll(null==e?It:function(e){return function(){return Tt.call(this.children,e)}}("function"===typeof e?e:Mt(e)))},filter:function(e){"function"!==typeof e&&(e=kt(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],u=0;u<s;++u)(i=a[u])&&e.call(i,i.__data__,u,a)&&l.push(i);return new Bn(r,this._parents)},data:function(e,t){if(!arguments.length)return Array.from(this,Zt);var n=t?Lt:Dt,r=this._parents,o=this._groups;"function"!==typeof e&&(e=function(e){return function(){return e}}(e));for(var i=o.length,a=new Array(i),s=new Array(i),l=new Array(i),u=0;u<i;++u){var c=r[u],f=o[u],d=f.length,p=Nt(e.call(c,c&&c.__data__,u,r)),h=p.length,g=s[u]=new Array(h),v=a[u]=new Array(h);n(c,f,g,v,l[u]=new Array(d),p,t);for(var m,y,b=0,w=0;b<h;++b)if(m=g[b]){for(b>=w&&(w=b+1);!(y=v[w])&&++w<h;);m._next=y||null}}return(a=new Bn(a,r))._enter=s,a._exit=l,a},enter:function(){return new Bn(this._enter||this._groups.map(Bt),this._parents)},exit:function(){return new Bn(this._exit||this._groups.map(Bt),this._parents)},join:function(e,t,n){var r=this.enter(),o=this,i=this.exit();return"function"===typeof e?(r=e(r))&&(r=r.selection()):r=r.append(e+""),null!=t&&(o=t(o))&&(o=o.selection()),null==n?i.remove():n(i),r&&o?r.merge(o).order():o},merge:function(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),s=new Array(o),l=0;l<a;++l)for(var u,c=n[l],f=r[l],d=c.length,p=s[l]=new Array(d),h=0;h<d;++h)(u=c[h]||f[h])&&(p[h]=u);for(;l<o;++l)s[l]=n[l];return new Bn(s,this._parents)},selection:function(){return this},order:function(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r,o=e[t],i=o.length-1,a=o[i];--i>=0;)(r=o[i])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=Ft);for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var a,s=n[i],l=s.length,u=o[i]=new Array(l),c=0;c<l;++c)(a=s[c])&&(u[c]=a);u.sort(t)}return new Bn(o,this._parents).order()},call:function(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null},size:function(){let e=0;for(const t of this)++e;return e},empty:function(){return!this.node()},each:function(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o,i=t[n],a=0,s=i.length;a<s;++a)(o=i[a])&&e.call(o,o.__data__,a,i);return this},attr:function(e,t){var n=zt(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==t?n.local?Gt:Ut:"function"===typeof t?n.local?Yt:$t:n.local?qt:Wt)(n,t))},style:function(e,t,n){return arguments.length>1?this.each((null==t?Kt:"function"===typeof t?Qt:Jt)(e,t,null==n?"":n)):en(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?tn:"function"===typeof t?rn:nn)(e,t)):this.node()[e]},classed:function(e,t){var n=on(e+"");if(arguments.length<2){for(var r=an(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each(("function"===typeof t?dn:t?cn:fn)(n,t))},text:function(e){return arguments.length?this.each(null==e?pn:("function"===typeof e?gn:hn)(e)):this.node().textContent},html:function(e){return arguments.length?this.each(null==e?vn:("function"===typeof e?yn:mn)(e)):this.node().innerHTML},raise:function(){return this.each(bn)},lower:function(){return this.each(wn)},append:function(e){var t="function"===typeof e?e:Sn(e);return this.select((function(){return this.appendChild(t.apply(this,arguments))}))},insert:function(e,t){var n="function"===typeof e?e:Sn(e),r=null==t?On:"function"===typeof t?t:Ot(t);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(Cn)},clone:function(e){return this.select(e?An:En)},datum:function(e){return arguments.length?this.property("__data__",e):this.node().__data__},on:function(e,t,n){var r,o,i=function(e){return e.trim().split(/^|\s+/).map((function(e){var t="",n=e.indexOf(".");return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=i.length;if(!(arguments.length<2)){for(s=t?Mn:kn,r=0;r<a;++r)this.each(s(i[r],t,n));return this}var s=this.node().__on;if(s)for(var l,u=0,c=s.length;u<c;++u)for(r=0,l=s[u];r<a;++r)if((o=i[r]).type===l.type&&o.name===l.name)return l.value},dispatch:function(e,t){return this.each(("function"===typeof t?Tn:Rn)(e,t))},[Symbol.iterator]:function*(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r,o=e[t],i=0,a=o.length;i<a;++i)(r=o[i])&&(yield r)}};var Dn=jn;function Ln(e){return"string"===typeof e?new Bn([[document.querySelector(e)]],[document.documentElement]):new Bn([[e]],In)}const Zn={passive:!1},Nn={capture:!0,passive:!1};function Fn(e){e.stopImmediatePropagation()}function Hn(e){e.preventDefault(),e.stopImmediatePropagation()}function Vn(e){var t=e.document.documentElement,n=Ln(e).on("dragstart.drag",Hn,Nn);"onselectstart"in t?n.on("selectstart.drag",Hn,Nn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function zn(e,t){var n=e.document.documentElement,r=Ln(e).on("dragstart.drag",null);t&&(r.on("click.drag",Hn,Nn),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Un=n(45326);function Gn(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Wn(e,t){if(e=Gn(e),void 0===t&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,[(r=r.matrixTransform(t.getScreenCTM().inverse())).x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}var qn,$n,Yn=0,Xn=0,Kn=0,Jn=1e3,Qn=0,er=0,tr=0,nr="object"===typeof performance&&performance.now?performance:Date,rr="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function or(){return er||(rr(ir),er=nr.now()+tr)}function ir(){er=0}function ar(){this._call=this._time=this._next=null}function sr(e,t,n){var r=new ar;return r.restart(e,t,n),r}function lr(){or(),++Yn;for(var e,t=qn;t;)(e=er-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Yn}function ur(){er=(Qn=nr.now())+tr,Yn=Xn=0;try{lr()}finally{Yn=0,function(){var e,t,n=qn,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:qn=t);$n=e,fr(r)}(),er=0}}function cr(){var e=nr.now(),t=e-Qn;t>Jn&&(tr-=t,Qn=e)}function fr(e){Yn||(Xn&&(Xn=clearTimeout(Xn)),e-er>24?(e<1/0&&(Xn=setTimeout(ur,e-nr.now()-tr)),Kn&&(Kn=clearInterval(Kn))):(Kn||(Qn=nr.now(),Kn=setInterval(cr,Jn)),Yn=1,rr(ur)))}function dr(e,t,n){var r=new ar;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}ar.prototype=sr.prototype={constructor:ar,restart:function(e,t,n){if("function"!==typeof e)throw new TypeError("callback is not a function");n=(null==n?or():+n)+(null==t?0:+t),this._next||$n===this||($n?$n._next=this:qn=this,$n=this),this._call=e,this._time=n,fr()},stop:function(){this._call&&(this._call=null,this._time=1/0,fr())}};var pr=xt("start","end","cancel","interrupt"),hr=[],gr=0,vr=1,mr=2,yr=3,br=4,wr=5,_r=6;function xr(e,t,n,r,o,i){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,o=e.__transition;function i(e){n.state=vr,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(i){var u,c,f,d;if(n.state!==vr)return l();for(u in o)if((d=o[u]).name===n.name){if(d.state===yr)return dr(a);d.state===br?(d.state=_r,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete o[u]):+u<t&&(d.state=_r,d.timer.stop(),d.on.call("cancel",e,e.__data__,d.index,d.group),delete o[u])}if(dr((function(){n.state===yr&&(n.state=br,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=mr,n.on.call("start",e,e.__data__,n.index,n.group),n.state===mr){for(n.state=yr,r=new Array(f=n.tween.length),u=0,c=-1;u<f;++u)(d=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(r[++c]=d);r.length=c+1}}function s(t){for(var o=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(l),n.state=wr,1),i=-1,a=r.length;++i<a;)r[i].call(e,o);n.state===wr&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){for(var r in n.state=_r,n.timer.stop(),delete o[t],o)return;delete e.__transition}o[t]=n,n.timer=sr(i,0,n.time)}(e,n,{name:t,index:r,group:o,on:pr,tween:hr,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:gr})}function Sr(e,t){var n=Cr(e,t);if(n.state>gr)throw new Error("too late; already scheduled");return n}function Or(e,t){var n=Cr(e,t);if(n.state>yr)throw new Error("too late; already running");return n}function Cr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Er(e,t){var n,r,o,i=e.__transition,a=!0;if(i){for(o in t=null==t?null:t+"",i)(n=i[o]).name===t?(r=n.state>mr&&n.state<wr,n.state=_r,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete i[o]):a=!1;a&&delete e.__transition}}var Ar,kr=n(68063),Mr=180/Math.PI,Pr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Rr(e,t,n,r,o,i){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r<t*n&&(e=-e,t=-t,l=-l,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*Mr,skewX:Math.atan(l)*Mr,scaleX:a,scaleY:s}}function Tr(e,t,n,r){function o(e){return e.length?e.pop()+" ":""}return function(i,a){var s=[],l=[];return i=e(i),a=e(a),function(e,r,o,i,a,s){if(e!==o||r!==i){var l=a.push("translate(",null,t,null,n);s.push({i:l-4,x:(0,kr.Z)(e,o)},{i:l-2,x:(0,kr.Z)(r,i)})}else(o||i)&&a.push("translate("+o+t+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,l),function(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(o(n)+"rotate(",null,r)-2,x:(0,kr.Z)(e,t)})):t&&n.push(o(n)+"rotate("+t+r)}(i.rotate,a.rotate,s,l),function(e,t,n,i){e!==t?i.push({i:n.push(o(n)+"skewX(",null,r)-2,x:(0,kr.Z)(e,t)}):t&&n.push(o(n)+"skewX("+t+r)}(i.skewX,a.skewX,s,l),function(e,t,n,r,i,a){if(e!==n||t!==r){var s=i.push(o(i)+"scale(",null,",",null,")");a.push({i:s-4,x:(0,kr.Z)(e,n)},{i:s-2,x:(0,kr.Z)(t,r)})}else 1===n&&1===r||i.push(o(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,l),i=a=null,function(e){for(var t,n=-1,r=l.length;++n<r;)s[(t=l[n]).i]=t.x(e);return s.join("")}}}var Ir=Tr((function(e){const t=new("function"===typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Pr:Rr(t.a,t.b,t.c,t.d,t.e,t.f)}),"px, ","px)","deg)"),Br=Tr((function(e){return null==e?Pr:(Ar||(Ar=document.createElementNS("http://www.w3.org/2000/svg","g")),Ar.setAttribute("transform",e),(e=Ar.transform.baseVal.consolidate())?Rr((e=e.matrix).a,e.b,e.c,e.d,e.e,e.f):Pr)}),", ",")",")");function jr(e,t){var n,r;return function(){var o=Or(this,e),i=o.tween;if(i!==n)for(var a=0,s=(r=n=i).length;a<s;++a)if(r[a].name===t){(r=r.slice()).splice(a,1);break}o.tween=r}}function Dr(e,t,n){var r,o;if("function"!==typeof n)throw new Error;return function(){var i=Or(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var s={name:t,value:n},l=0,u=o.length;l<u;++l)if(o[l].name===t){o[l]=s;break}l===u&&o.push(s)}i.tween=o}}function Lr(e,t,n){var r=e._id;return e.each((function(){var e=Or(this,r);(e.value||(e.value={}))[t]=n.apply(this,arguments)})),function(e){return Cr(e,r).value[t]}}var Zr=n(4447),Nr=n(6354),Fr=n(16773);function Hr(e,t){var n;return("number"===typeof t?kr.Z:t instanceof Zr.ZP?Nr.ZP:(n=(0,Zr.ZP)(t))?(t=n,Nr.ZP):Fr.Z)(e,t)}function Vr(e){return function(){this.removeAttribute(e)}}function zr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ur(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttribute(e);return a===i?null:a===r?o:o=t(r=a,n)}}function Gr(e,t,n){var r,o,i=n+"";return function(){var a=this.getAttributeNS(e.space,e.local);return a===i?null:a===r?o:o=t(r=a,n)}}function Wr(e,t,n){var r,o,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttribute(e))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l));this.removeAttribute(e)}}function qr(e,t,n){var r,o,i;return function(){var a,s,l=n(this);if(null!=l)return(a=this.getAttributeNS(e.space,e.local))===(s=l+"")?null:a===r&&s===o?i:(o=s,i=t(r=a,l));this.removeAttributeNS(e.space,e.local)}}function $r(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Yr(e,t){var n,r;function o(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&function(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}(e,o)),n}return o._value=t,o}function Xr(e,t){return function(){Sr(this,e).delay=+t.apply(this,arguments)}}function Kr(e,t){return t=+t,function(){Sr(this,e).delay=t}}function Jr(e,t){return function(){Or(this,e).duration=+t.apply(this,arguments)}}function Qr(e,t){return t=+t,function(){Or(this,e).duration=t}}var eo=Dn.prototype.constructor;function to(e){return function(){this.style.removeProperty(e)}}var no=0;function ro(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function oo(e){return Dn().transition(e)}function io(){return++no}var ao=Dn.prototype;function so(e){return e*e*e}function lo(e){return--e*e*e+1}function uo(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}ro.prototype=oo.prototype={constructor:ro,select:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=Ot(e));for(var r=this._groups,o=r.length,i=new Array(o),a=0;a<o;++a)for(var s,l,u=r[a],c=u.length,f=i[a]=new Array(c),d=0;d<c;++d)(s=u[d])&&(l=e.call(s,s.__data__,d,u))&&("__data__"in s&&(l.__data__=s.__data__),f[d]=l,xr(f[d],t,n,d,f,Cr(s,n)));return new ro(i,this._parents,t,n)},selectAll:function(e){var t=this._name,n=this._id;"function"!==typeof e&&(e=At(e));for(var r=this._groups,o=r.length,i=[],a=[],s=0;s<o;++s)for(var l,u=r[s],c=u.length,f=0;f<c;++f)if(l=u[f]){for(var d,p=e.call(l,l.__data__,f,u),h=Cr(l,n),g=0,v=p.length;g<v;++g)(d=p[g])&&xr(d,t,n,g,p,h);i.push(p),a.push(l)}return new ro(i,a,t,n)},selectChild:ao.selectChild,selectChildren:ao.selectChildren,filter:function(e){"function"!==typeof e&&(e=kt(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i,a=t[o],s=a.length,l=r[o]=[],u=0;u<s;++u)(i=a[u])&&e.call(i,i.__data__,u,a)&&l.push(i);return new ro(r,this._parents,this._name,this._id)},merge:function(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),s=0;s<i;++s)for(var l,u=t[s],c=n[s],f=u.length,d=a[s]=new Array(f),p=0;p<f;++p)(l=u[p]||c[p])&&(d[p]=l);for(;s<r;++s)a[s]=t[s];return new ro(a,this._parents,this._name,this._id)},selection:function(){return new eo(this._groups,this._parents)},transition:function(){for(var e=this._name,t=this._id,n=io(),r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,u=0;u<l;++u)if(a=s[u]){var c=Cr(a,t);xr(a,e,n,u,s,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new ro(r,this._parents,e,n)},call:ao.call,nodes:ao.nodes,node:ao.node,size:ao.size,empty:ao.empty,each:ao.each,on:function(e,t){var n=this._id;return arguments.length<2?Cr(this.node(),n).on.on(e):this.each(function(e,t,n){var r,o,i=function(e){return(e+"").trim().split(/^|\s+/).every((function(e){var t=e.indexOf(".");return t>=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?Sr:Or;return function(){var a=i(this,e),s=a.on;s!==r&&(o=(r=s).copy()).on(t,n),a.on=o}}(n,e,t))},attr:function(e,t){var n=zt(e),r="transform"===n?Br:Hr;return this.attrTween(e,"function"===typeof t?(n.local?qr:Wr)(n,r,Lr(this,"attr."+e,t)):null==t?(n.local?zr:Vr)(n):(n.local?Gr:Ur)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!==typeof t)throw new Error;var r=zt(e);return this.tween(n,(r.local?$r:Yr)(r,t))},style:function(e,t,n){var r="transform"===(e+="")?Ir:Hr;return null==t?this.styleTween(e,function(e,t){var n,r,o;return function(){var i=en(this,e),a=(this.style.removeProperty(e),en(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}(e,r)).on("end.style."+e,to(e)):"function"===typeof t?this.styleTween(e,function(e,t,n){var r,o,i;return function(){var a=en(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=en(this,e)),a===l?null:a===r&&l===o?i:(o=l,i=t(r=a,s))}}(e,r,Lr(this,"style."+e,t))).each(function(e,t){var n,r,o,i,a="style."+t,s="end."+a;return function(){var l=Or(this,e),u=l.on,c=null==l.value[a]?i||(i=to(t)):void 0;u===n&&o===c||(r=(n=u).copy()).on(s,o=c),l.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,o,i=n+"";return function(){var a=en(this,e);return a===i?null:a===r?o:o=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!==typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,o;function i(){var i=t.apply(this,arguments);return i!==o&&(r=(o=i)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,i,n)),r}return i._value=t,i}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"===typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(Lr(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!==typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,o=Cr(this.node(),n).tween,i=0,a=o.length;i<a;++i)if((r=o[i]).name===e)return r.value;return null}return this.each((null==t?jr:Dr)(n,e,t))},delay:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Xr:Kr)(t,e)):Cr(this.node(),t).delay},duration:function(e){var t=this._id;return arguments.length?this.each(("function"===typeof e?Jr:Qr)(t,e)):Cr(this.node(),t).duration},ease:function(e){var t=this._id;return arguments.length?this.each(function(e,t){if("function"!==typeof t)throw new Error;return function(){Or(this,e).ease=t}}(t,e)):Cr(this.node(),t).ease},easeVarying:function(e){if("function"!==typeof e)throw new Error;return this.each(function(e,t){return function(){var n=t.apply(this,arguments);if("function"!==typeof n)throw new Error;Or(this,e).ease=n}}(this._id,e))},end:function(){var e,t,n=this,r=n._id,o=n.size();return new Promise((function(i,a){var s={value:a},l={value:function(){0===--o&&i()}};n.each((function(){var n=Or(this,r),o=n.on;o!==e&&((t=(e=o).copy())._.cancel.push(s),t._.interrupt.push(s),t._.end.push(l)),n.on=t})),0===o&&i()}))},[Symbol.iterator]:ao[Symbol.iterator]};var co={time:null,delay:0,duration:250,ease:uo};function fo(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}Dn.prototype.interrupt=function(e){return this.each((function(){Er(this,e)}))},Dn.prototype.transition=function(e){var t,n;e instanceof ro?(t=e._id,e=e._name):(t=io(),(n=co).time=or(),e=null==e?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a,s=r[i],l=s.length,u=0;u<l;++u)(a=s[u])&&xr(a,e,t,u,s,n||fo(a,t));return new ro(r,this._parents,e,t)};var po=[null];function ho(e,t){var n,r,o=e.__transition;if(o)for(r in t=null==t?null:t+"",o)if((n=o[r]).state>vr&&n.name===t)return new ro([[e]],po,t,+r);return null}var go=e=>()=>e;function vo(e,{sourceEvent:t,target:n,selection:r,mode:o,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:o,enumerable:!0,configurable:!0},_:{value:i}})}function mo(e){e.preventDefault(),e.stopImmediatePropagation()}var yo={name:"drag"},bo={name:"space"},wo={name:"handle"},_o={name:"center"};const{abs:xo,max:So,min:Oo}=Math;function Co(e){return[+e[0],+e[1]]}function Eo(e){return[Co(e[0]),Co(e[1])]}var Ao={name:"x",handles:["w","e"].map(jo),input:function(e,t){return null==e?null:[[+e[0],t[0][1]],[+e[1],t[1][1]]]},output:function(e){return e&&[e[0][0],e[1][0]]}},ko={name:"y",handles:["n","s"].map(jo),input:function(e,t){return null==e?null:[[t[0][0],+e[0]],[t[1][0],+e[1]]]},output:function(e){return e&&[e[0][1],e[1][1]]}},Mo={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(jo),input:function(e){return null==e?null:Eo(e)},output:function(e){return e}},Po={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ro={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},To={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Io={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Bo={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function jo(e){return{type:e}}function Do(e){return!e.ctrlKey&&!e.button}function Lo(){var e=this.ownerSVGElement||this;return e.hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]}function Zo(){return navigator.maxTouchPoints||"ontouchstart"in this}function No(e){for(;!e.__brush;)if(!(e=e.parentNode))return;return e.__brush}function Fo(e){var t=e.__brush;return t?t.dim.output(t.selection):null}function Ho(){return Uo(Ao)}function Vo(){return Uo(ko)}function zo(){return Uo(Mo)}function Uo(e){var t,n=Lo,r=Do,o=Zo,i=!0,a=xt("start","brush","end"),s=6;function l(t){var n=t.property("__brush",g).selectAll(".overlay").data([jo("overlay")]);n.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",Po.overlay).merge(n).each((function(){var e=No(this).extent;Ln(this).attr("x",e[0][0]).attr("y",e[0][1]).attr("width",e[1][0]-e[0][0]).attr("height",e[1][1]-e[0][1])})),t.selectAll(".selection").data([jo("selection")]).enter().append("rect").attr("class","selection").attr("cursor",Po.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=t.selectAll(".handle").data(e.handles,(function(e){return e.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(e){return"handle handle--"+e.type})).attr("cursor",(function(e){return Po[e.type]})),t.each(u).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",d).filter(o).on("touchstart.brush",d).on("touchmove.brush",p).on("touchend.brush touchcancel.brush",h).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function u(){var e=Ln(this),t=No(this).selection;t?(e.selectAll(".selection").style("display",null).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1]),e.selectAll(".handle").style("display",null).attr("x",(function(e){return"e"===e.type[e.type.length-1]?t[1][0]-s/2:t[0][0]-s/2})).attr("y",(function(e){return"s"===e.type[0]?t[1][1]-s/2:t[0][1]-s/2})).attr("width",(function(e){return"n"===e.type||"s"===e.type?t[1][0]-t[0][0]+s:s})).attr("height",(function(e){return"e"===e.type||"w"===e.type?t[1][1]-t[0][1]+s:s}))):e.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function c(e,t,n){var r=e.__brush.emitter;return!r||n&&r.clean?new f(e,t,n):r}function f(e,t,n){this.that=e,this.args=t,this.state=e.__brush,this.active=0,this.clean=n}function d(n){if((!t||n.touches)&&r.apply(this,arguments)){var o,a,s,l,f,d,p,h,g,v,m,y=this,b=n.target.__data__.type,w="selection"===(i&&n.metaKey?b="overlay":b)?yo:i&&n.altKey?_o:wo,_=e===ko?null:Io[b],x=e===Ao?null:Bo[b],S=No(y),O=S.extent,C=S.selection,E=O[0][0],A=O[0][1],k=O[1][0],M=O[1][1],P=0,R=0,T=_&&x&&i&&n.shiftKey,I=Array.from(n.touches||[n],(e=>{const t=e.identifier;return(e=Wn(e,y)).point0=e.slice(),e.identifier=t,e}));Er(y);var B=c(y,arguments,!0).beforestart();if("overlay"===b){C&&(g=!0);const t=[I[0],I[1]||I[0]];S.selection=C=[[o=e===ko?E:Oo(t[0][0],t[1][0]),s=e===Ao?A:Oo(t[0][1],t[1][1])],[f=e===ko?k:So(t[0][0],t[1][0]),p=e===Ao?M:So(t[0][1],t[1][1])]],I.length>1&&N(n)}else o=C[0][0],s=C[0][1],f=C[1][0],p=C[1][1];a=o,l=s,d=f,h=p;var j=Ln(y).attr("pointer-events","none"),D=j.selectAll(".overlay").attr("cursor",Po[b]);if(n.touches)B.moved=Z,B.ended=F;else{var L=Ln(n.view).on("mousemove.brush",Z,!0).on("mouseup.brush",F,!0);i&&L.on("keydown.brush",(function(e){switch(e.keyCode){case 16:T=_&&x;break;case 18:w===wo&&(_&&(f=d-P*_,o=a+P*_),x&&(p=h-R*x,s=l+R*x),w=_o,N(e));break;case 32:w!==wo&&w!==_o||(_<0?f=d-P:_>0&&(o=a-P),x<0?p=h-R:x>0&&(s=l-R),w=bo,D.attr("cursor",Po.selection),N(e));break;default:return}mo(e)}),!0).on("keyup.brush",(function(e){switch(e.keyCode){case 16:T&&(v=m=T=!1,N(e));break;case 18:w===_o&&(_<0?f=d:_>0&&(o=a),x<0?p=h:x>0&&(s=l),w=wo,N(e));break;case 32:w===bo&&(e.altKey?(_&&(f=d-P*_,o=a+P*_),x&&(p=h-R*x,s=l+R*x),w=_o):(_<0?f=d:_>0&&(o=a),x<0?p=h:x>0&&(s=l),w=wo),D.attr("cursor",Po[b]),N(e));break;default:return}mo(e)}),!0),Vn(n.view)}u.call(y),B.start(n,w.name)}function Z(e){for(const t of e.changedTouches||[e])for(const e of I)e.identifier===t.identifier&&(e.cur=Wn(t,y));if(T&&!v&&!m&&1===I.length){const e=I[0];xo(e.cur[0]-e[0])>xo(e.cur[1]-e[1])?m=!0:v=!0}for(const t of I)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,mo(e),N(e)}function N(e){const t=I[0],n=t.point0;var r;switch(P=t[0]-n[0],R=t[1]-n[1],w){case bo:case yo:_&&(P=So(E-o,Oo(k-f,P)),a=o+P,d=f+P),x&&(R=So(A-s,Oo(M-p,R)),l=s+R,h=p+R);break;case wo:I[1]?(_&&(a=So(E,Oo(k,I[0][0])),d=So(E,Oo(k,I[1][0])),_=1),x&&(l=So(A,Oo(M,I[0][1])),h=So(A,Oo(M,I[1][1])),x=1)):(_<0?(P=So(E-o,Oo(k-o,P)),a=o+P,d=f):_>0&&(P=So(E-f,Oo(k-f,P)),a=o,d=f+P),x<0?(R=So(A-s,Oo(M-s,R)),l=s+R,h=p):x>0&&(R=So(A-p,Oo(M-p,R)),l=s,h=p+R));break;case _o:_&&(a=So(E,Oo(k,o-P*_)),d=So(E,Oo(k,f+P*_))),x&&(l=So(A,Oo(M,s-R*x)),h=So(A,Oo(M,p+R*x)))}d<a&&(_*=-1,r=o,o=f,f=r,r=a,a=d,d=r,b in Ro&&D.attr("cursor",Po[b=Ro[b]])),h<l&&(x*=-1,r=s,s=p,p=r,r=l,l=h,h=r,b in To&&D.attr("cursor",Po[b=To[b]])),S.selection&&(C=S.selection),v&&(a=C[0][0],d=C[1][0]),m&&(l=C[0][1],h=C[1][1]),C[0][0]===a&&C[0][1]===l&&C[1][0]===d&&C[1][1]===h||(S.selection=[[a,l],[d,h]],u.call(y),B.brush(e,w.name))}function F(e){if(function(e){e.stopImmediatePropagation()}(e),e.touches){if(e.touches.length)return;t&&clearTimeout(t),t=setTimeout((function(){t=null}),500)}else zn(e.view,g),L.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);j.attr("pointer-events","all"),D.attr("cursor",Po.overlay),S.selection&&(C=S.selection),function(e){return e[0][0]===e[1][0]||e[0][1]===e[1][1]}(C)&&(S.selection=null,u.call(y)),B.end(e,w.name)}}function p(e){c(this,arguments).moved(e)}function h(e){c(this,arguments).ended(e)}function g(){var t=this.__brush||{selection:null};return t.extent=Eo(n.apply(this,arguments)),t.dim=e,t}return l.move=function(t,n,r){t.tween?t.on("start.brush",(function(e){c(this,arguments).beforestart().start(e)})).on("interrupt.brush end.brush",(function(e){c(this,arguments).end(e)})).tween("brush",(function(){var t=this,r=t.__brush,o=c(t,arguments),i=r.selection,a=e.input("function"===typeof n?n.apply(this,arguments):n,r.extent),s=(0,Un.Z)(i,a);function l(e){r.selection=1===e&&null===a?null:s(e),u.call(t),o.brush()}return null!==i&&null!==a?l:l(1)})):t.each((function(){var t=this,o=arguments,i=t.__brush,a=e.input("function"===typeof n?n.apply(t,o):n,i.extent),s=c(t,o).beforestart();Er(t),i.selection=null===a?null:a,u.call(t),s.start(r).brush(r).end(r)}))},l.clear=function(e,t){l.move(e,null,t)},f.prototype={beforestart:function(){return 1===++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(e,t){return this.starting?(this.starting=!1,this.emit("start",e,t)):this.emit("brush",e),this},brush:function(e,t){return this.emit("brush",e,t),this},end:function(e,t){return 0===--this.active&&(delete this.state.emitter,this.emit("end",e,t)),this},emit:function(t,n,r){var o=Ln(this.that).datum();a.call(t,this.that,new vo(t,{sourceEvent:n,target:l,selection:e.output(this.state.selection),mode:r,dispatch:a}),o)}},l.extent=function(e){return arguments.length?(n="function"===typeof e?e:go(Eo(e)),l):n},l.filter=function(e){return arguments.length?(r="function"===typeof e?e:go(!!e),l):r},l.touchable=function(e){return arguments.length?(o="function"===typeof e?e:go(!!e),l):o},l.handleSize=function(e){return arguments.length?(s=+e,l):s},l.keyModifiers=function(e){return arguments.length?(i=!!e,l):i},l.on=function(){var e=a.on.apply(a,arguments);return e===a?l:e},l}var Go=Math.abs,Wo=Math.cos,qo=Math.sin,$o=Math.PI,Yo=$o/2,Xo=2*$o,Ko=Math.max,Jo=1e-12;function Qo(e,t){return Array.from({length:t-e},((t,n)=>e+n))}function ei(){return ri(!1,!1)}function ti(){return ri(!1,!0)}function ni(){return ri(!0,!1)}function ri(e,t){var n=0,r=null,o=null,i=null;function a(a){var s,l=a.length,u=new Array(l),c=Qo(0,l),f=new Array(l*l),d=new Array(l),p=0;a=Float64Array.from({length:l*l},t?(e,t)=>a[t%l][t/l|0]:(e,t)=>a[t/l|0][t%l]);for(let t=0;t<l;++t){let n=0;for(let r=0;r<l;++r)n+=a[t*l+r]+e*a[r*l+t];p+=u[t]=n}s=(p=Ko(0,Xo-n*l)/p)?n:Xo/l;{let t=0;r&&c.sort(((e,t)=>r(u[e],u[t])));for(const n of c){const r=t;if(e){const e=Qo(1+~l,l).filter((e=>e<0?a[~e*l+n]:a[n*l+e]));o&&e.sort(((e,t)=>o(e<0?-a[~e*l+n]:a[n*l+e],t<0?-a[~t*l+n]:a[n*l+t])));for(const r of e)if(r<0){(f[~r*l+n]||(f[~r*l+n]={source:null,target:null})).target={index:n,startAngle:t,endAngle:t+=a[~r*l+n]*p,value:a[~r*l+n]}}else{(f[n*l+r]||(f[n*l+r]={source:null,target:null})).source={index:n,startAngle:t,endAngle:t+=a[n*l+r]*p,value:a[n*l+r]}}d[n]={index:n,startAngle:r,endAngle:t,value:u[n]}}else{const e=Qo(0,l).filter((e=>a[n*l+e]||a[e*l+n]));o&&e.sort(((e,t)=>o(a[n*l+e],a[n*l+t])));for(const r of e){let e;if(n<r?(e=f[n*l+r]||(f[n*l+r]={source:null,target:null}),e.source={index:n,startAngle:t,endAngle:t+=a[n*l+r]*p,value:a[n*l+r]}):(e=f[r*l+n]||(f[r*l+n]={source:null,target:null}),e.target={index:n,startAngle:t,endAngle:t+=a[n*l+r]*p,value:a[n*l+r]},n===r&&(e.source=e.target)),e.source&&e.target&&e.source.value<e.target.value){const t=e.source;e.source=e.target,e.target=t}}d[n]={index:n,startAngle:r,endAngle:t,value:u[n]}}t+=s}}return(f=Object.values(f)).groups=d,i?f.sort(i):f}return a.padAngle=function(e){return arguments.length?(n=Ko(0,e),a):n},a.sortGroups=function(e){return arguments.length?(r=e,a):r},a.sortSubgroups=function(e){return arguments.length?(o=e,a):o},a.sortChords=function(e){return arguments.length?(null==e?i=null:(t=e,i=function(e,n){return t(e.source.value+e.target.value,n.source.value+n.target.value)})._=e,a):i&&i._;var t},a}const oi=Math.PI,ii=2*oi,ai=1e-6,si=ii-ai;function li(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class ui{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?li:function(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return li;const n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,o,i){this._append`C${+e},${+t},${+n},${+r},${this._x1=+o},${this._y1=+i}`}arcTo(e,t,n,r,o){if(e=+e,t=+t,n=+n,r=+r,(o=+o)<0)throw new Error(`negative radius: ${o}`);let i=this._x1,a=this._y1,s=n-e,l=r-t,u=i-e,c=a-t,f=u*u+c*c;if(null===this._x1)this._append`M${this._x1=e},${this._y1=t}`;else if(f>ai)if(Math.abs(c*s-l*u)>ai&&o){let d=n-i,p=r-a,h=s*s+l*l,g=d*d+p*p,v=Math.sqrt(h),m=Math.sqrt(f),y=o*Math.tan((oi-Math.acos((h+f-g)/(2*v*m)))/2),b=y/m,w=y/v;Math.abs(b-1)>ai&&this._append`L${e+b*u},${t+b*c}`,this._append`A${o},${o},0,0,${+(c*d>u*p)},${this._x1=e+w*s},${this._y1=t+w*l}`}else this._append`L${this._x1=e},${this._y1=t}`;else;}arc(e,t,n,r,o,i){if(e=+e,t=+t,i=!!i,(n=+n)<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,u=t+s,c=1^i,f=i?r-o:o-r;null===this._x1?this._append`M${l},${u}`:(Math.abs(this._x1-l)>ai||Math.abs(this._y1-u)>ai)&&this._append`L${l},${u}`,n&&(f<0&&(f=f%ii+ii),f>si?this._append`A${n},${n},0,1,${c},${e-a},${t-s}A${n},${n},0,1,${c},${this._x1=l},${this._y1=u}`:f>ai&&this._append`A${n},${n},0,${+(f>=oi)},${c},${this._x1=e+n*Math.cos(o)},${this._y1=t+n*Math.sin(o)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function ci(){return new ui}function fi(e=3){return new ui(+e)}ci.prototype=ui.prototype;var di=Array.prototype.slice;function pi(e){return function(){return e}}function hi(e){return e.source}function gi(e){return e.target}function vi(e){return e.radius}function mi(e){return e.startAngle}function yi(e){return e.endAngle}function bi(){return 0}function wi(){return 10}function _i(e){var t=hi,n=gi,r=vi,o=vi,i=mi,a=yi,s=bi,l=null;function u(){var u,c=t.apply(this,arguments),f=n.apply(this,arguments),d=s.apply(this,arguments)/2,p=di.call(arguments),h=+r.apply(this,(p[0]=c,p)),g=i.apply(this,p)-Yo,v=a.apply(this,p)-Yo,m=+o.apply(this,(p[0]=f,p)),y=i.apply(this,p)-Yo,b=a.apply(this,p)-Yo;if(l||(l=u=ci()),d>Jo&&(Go(v-g)>2*d+Jo?v>g?(g+=d,v-=d):(g-=d,v+=d):g=v=(g+v)/2,Go(b-y)>2*d+Jo?b>y?(y+=d,b-=d):(y-=d,b+=d):y=b=(y+b)/2),l.moveTo(h*Wo(g),h*qo(g)),l.arc(0,0,h,g,v),g!==y||v!==b)if(e){var w=m-+e.apply(this,arguments),_=(y+b)/2;l.quadraticCurveTo(0,0,w*Wo(y),w*qo(y)),l.lineTo(m*Wo(_),m*qo(_)),l.lineTo(w*Wo(b),w*qo(b))}else l.quadraticCurveTo(0,0,m*Wo(y),m*qo(y)),l.arc(0,0,m,y,b);if(l.quadraticCurveTo(0,0,h*Wo(g),h*qo(g)),l.closePath(),u)return l=null,u+""||null}return e&&(u.headRadius=function(t){return arguments.length?(e="function"===typeof t?t:pi(+t),u):e}),u.radius=function(e){return arguments.length?(r=o="function"===typeof e?e:pi(+e),u):r},u.sourceRadius=function(e){return arguments.length?(r="function"===typeof e?e:pi(+e),u):r},u.targetRadius=function(e){return arguments.length?(o="function"===typeof e?e:pi(+e),u):o},u.startAngle=function(e){return arguments.length?(i="function"===typeof e?e:pi(+e),u):i},u.endAngle=function(e){return arguments.length?(a="function"===typeof e?e:pi(+e),u):a},u.padAngle=function(e){return arguments.length?(s="function"===typeof e?e:pi(+e),u):s},u.source=function(e){return arguments.length?(t=e,u):t},u.target=function(e){return arguments.length?(n=e,u):n},u.context=function(e){return arguments.length?(l=null==e?null:e,u):l},u}function xi(){return _i()}function Si(){return _i(wi)}var Oi=n(49531);const Ci=Math.PI/180,Ei=180/Math.PI,Ai=.96422,ki=1,Mi=.82521,Pi=4/29,Ri=6/29,Ti=3*Ri*Ri,Ii=Ri*Ri*Ri;function Bi(e){if(e instanceof Li)return new Li(e.l,e.a,e.b,e.opacity);if(e instanceof Gi)return Wi(e);e instanceof Zr.Ss||(e=(0,Zr.SU)(e));var t,n,r=Hi(e.r),o=Hi(e.g),i=Hi(e.b),a=Zi((.2225045*r+.7168786*o+.0606169*i)/ki);return r===o&&o===i?t=n=a:(t=Zi((.4360747*r+.3850649*o+.1430804*i)/Ai),n=Zi((.0139322*r+.0971045*o+.7141733*i)/Mi)),new Li(116*a-16,500*(t-a),200*(a-n),e.opacity)}function ji(e,t){return new Li(e,0,0,null==t?1:t)}function Di(e,t,n,r){return 1===arguments.length?Bi(e):new Li(e,t,n,null==r?1:r)}function Li(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function Zi(e){return e>Ii?Math.pow(e,1/3):e/Ti+Pi}function Ni(e){return e>Ri?e*e*e:Ti*(e-Pi)}function Fi(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Hi(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Vi(e){if(e instanceof Gi)return new Gi(e.h,e.c,e.l,e.opacity);if(e instanceof Li||(e=Bi(e)),0===e.a&&0===e.b)return new Gi(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Ei;return new Gi(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function zi(e,t,n,r){return 1===arguments.length?Vi(e):new Gi(n,t,e,null==r?1:r)}function Ui(e,t,n,r){return 1===arguments.length?Vi(e):new Gi(e,t,n,null==r?1:r)}function Gi(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function Wi(e){if(isNaN(e.h))return new Li(e.l,0,0,e.opacity);var t=e.h*Ci;return new Li(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}(0,Oi.Z)(Li,Di,(0,Oi.l)(Zr.Il,{brighter(e){return new Li(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new Li(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=Ai*Ni(t),e=ki*Ni(e),n=Mi*Ni(n),new Zr.Ss(Fi(3.1338561*t-1.6168667*e-.4906146*n),Fi(-.9787684*t+1.9161415*e+.033454*n),Fi(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),(0,Oi.Z)(Gi,Ui,(0,Oi.l)(Zr.Il,{brighter(e){return new Gi(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new Gi(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return Wi(this).rgb()}}));var qi=-.14861,$i=1.78277,Yi=-.29227,Xi=-.90649,Ki=1.97294,Ji=Ki*Xi,Qi=Ki*$i,ea=$i*Yi-Xi*qi;function ta(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof na)return new na(e.h,e.s,e.l,e.opacity);e instanceof Zr.Ss||(e=(0,Zr.SU)(e));var t=e.r/255,n=e.g/255,r=e.b/255,o=(ea*r+Ji*t-Qi*n)/(ea+Ji-Qi),i=r-o,a=(Ki*(n-o)-Yi*i)/Xi,s=Math.sqrt(a*a+i*i)/(Ki*o*(1-o)),l=s?Math.atan2(a,i)*Ei-120:NaN;return new na(l<0?l+360:l,s,o,e.opacity)}(e):new na(e,t,n,null==r?1:r)}function na(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ra(e){return Math.max(1,Math.ceil(Math.log(function(e,t){let n=0;if(void 0===t)for(let r of e)null!=r&&(r=+r)>=r&&++n;else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(o=+o)>=o&&++n}return n}(e))/Math.LN2)+1)}(0,Oi.Z)(na,ta,(0,Oi.l)(Zr.Il,{brighter(e){return e=null==e?Zr.J5:Math.pow(Zr.J5,e),new na(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?Zr.xV:Math.pow(Zr.xV,e),new na(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*Ci,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),o=Math.sin(e);return new Zr.Ss(255*(t+n*(qi*r+$i*o)),255*(t+n*(Yi*r+Xi*o)),255*(t+n*(Ki*r)),this.opacity)}}));const oa=Math.sqrt(50),ia=Math.sqrt(10),aa=Math.sqrt(2);function sa(e,t,n){const r=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),a=i>=oa?10:i>=ia?5:i>=aa?2:1;let s,l,u;return o<0?(u=Math.pow(10,-o)/a,s=Math.round(e*u),l=Math.round(t*u),s/u<e&&++s,l/u>t&&--l,u=-u):(u=Math.pow(10,o)*a,s=Math.round(e/u),l=Math.round(t/u),s*u<e&&++s,l*u>t&&--l),l<s&&.5<=n&&n<2?sa(e,t,2*n):[s,l,u]}function la(e,t,n){if(!((n=+n)>0))return[];if((e=+e)===(t=+t))return[e];const r=t<e,[o,i,a]=r?sa(t,e,n):sa(e,t,n);if(!(i>=o))return[];const s=i-o+1,l=new Array(s);if(r)if(a<0)for(let u=0;u<s;++u)l[u]=(i-u)/-a;else for(let u=0;u<s;++u)l[u]=(i-u)*a;else if(a<0)for(let u=0;u<s;++u)l[u]=(o+u)/-a;else for(let u=0;u<s;++u)l[u]=(o+u)*a;return l}function ua(e,t,n){return sa(e=+e,t=+t,n=+n)[2]}var ca=Array.prototype.slice;function fa(e,t){return e-t}var da=e=>()=>e;function pa(e,t){for(var n,r=-1,o=t.length;++r<o;)if(n=ha(e,t[r]))return n;return 0}function ha(e,t){for(var n=t[0],r=t[1],o=-1,i=0,a=e.length,s=a-1;i<a;s=i++){var l=e[i],u=l[0],c=l[1],f=e[s],d=f[0],p=f[1];if(ga(l,f,t))return 0;c>r!==p>r&&n<(d-u)*(r-c)/(p-c)+u&&(o=-o)}return o}function ga(e,t,n){var r,o,i,a;return function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])===(n[0]-e[0])*(t[1]-e[1])}(e,t,n)&&(o=e[r=+(e[0]===t[0])],i=n[r],a=t[r],o<=i&&i<=a||a<=i&&i<=o)}function va(){}var ma=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ya(){var e=1,t=1,n=ra,r=s;function o(e){var t=n(e);if(Array.isArray(t))t=t.slice().sort(fa);else{const n=function(e,t){let n,r;if(void 0===t)for(const o of e)null!=o&&(void 0===n?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)));else{let o=-1;for(let i of e)null!=(i=t(i,++o,e))&&(void 0===n?i>=i&&(n=r=i):(n>i&&(n=i),r<i&&(r=i)))}return[n,r]}(e,ba);for(t=la(...function(e,t,n){let r;for(;;){const o=ua(e,t,n);if(o===r||0===o||!isFinite(o))return[e,t];o>0?(e=Math.floor(e/o)*o,t=Math.ceil(t/o)*o):o<0&&(e=Math.ceil(e*o)/o,t=Math.floor(t*o)/o),r=o}}(n[0],n[1],t),t);t[t.length-1]>=n[1];)t.pop();for(;t[1]<n[0];)t.shift()}return t.map((t=>i(e,t)))}function i(n,o){const i=null==o?NaN:+o;if(isNaN(i))throw new Error(`invalid value: ${o}`);var s=[],l=[];return function(n,r,o){var i,s,l,u,c,f,d=new Array,p=new Array;i=s=-1,u=wa(n[0],r),ma[u<<1].forEach(h);for(;++i<e-1;)l=u,u=wa(n[i+1],r),ma[l|u<<1].forEach(h);ma[u<<0].forEach(h);for(;++s<t-1;){for(i=-1,u=wa(n[s*e+e],r),c=wa(n[s*e],r),ma[u<<1|c<<2].forEach(h);++i<e-1;)l=u,u=wa(n[s*e+e+i+1],r),f=c,c=wa(n[s*e+i+1],r),ma[l|u<<1|c<<2|f<<3].forEach(h);ma[u|c<<3].forEach(h)}i=-1,c=n[s*e]>=r,ma[c<<2].forEach(h);for(;++i<e-1;)f=c,c=wa(n[s*e+i+1],r),ma[c<<2|f<<3].forEach(h);function h(e){var t,n,r=[e[0][0]+i,e[0][1]+s],l=[e[1][0]+i,e[1][1]+s],u=a(r),c=a(l);(t=p[u])?(n=d[c])?(delete p[t.end],delete d[n.start],t===n?(t.ring.push(l),o(t.ring)):d[t.start]=p[n.end]={start:t.start,end:n.end,ring:t.ring.concat(n.ring)}):(delete p[t.end],t.ring.push(l),p[t.end=c]=t):(t=d[c])?(n=p[u])?(delete d[t.start],delete p[n.end],t===n?(t.ring.push(l),o(t.ring)):d[n.start]=p[t.end]={start:n.start,end:t.end,ring:n.ring.concat(t.ring)}):(delete d[t.start],t.ring.unshift(r),d[t.start=u]=t):d[u]=p[c]={start:u,end:c,ring:[r,l]}}ma[c<<3].forEach(h)}(n,i,(function(e){r(e,n,i),function(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)r+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return r}(e)>0?s.push([e]):l.push(e)})),l.forEach((function(e){for(var t,n=0,r=s.length;n<r;++n)if(-1!==pa((t=s[n])[0],e))return void t.push(e)})),{type:"MultiPolygon",value:o,coordinates:s}}function a(t){return 2*t[0]+t[1]*(e+1)*4}function s(n,r,o){n.forEach((function(n){var i=n[0],a=n[1],s=0|i,l=0|a,u=_a(r[l*e+s]);i>0&&i<e&&s===i&&(n[0]=xa(i,_a(r[l*e+s-1]),u,o)),a>0&&a<t&&l===a&&(n[1]=xa(a,_a(r[(l-1)*e+s]),u,o))}))}return o.contour=i,o.size=function(n){if(!arguments.length)return[e,t];var r=Math.floor(n[0]),i=Math.floor(n[1]);if(!(r>=0&&i>=0))throw new Error("invalid size");return e=r,t=i,o},o.thresholds=function(e){return arguments.length?(n="function"===typeof e?e:Array.isArray(e)?da(ca.call(e)):da(e),o):n},o.smooth=function(e){return arguments.length?(r=e?s:va,o):r===s},o}function ba(e){return isFinite(e)?e:NaN}function wa(e,t){return null!=e&&+e>=t}function _a(e){return null==e||isNaN(e=+e)?-1/0:e}function xa(e,t,n,r){const o=r-t,i=n-t,a=isFinite(o)||isFinite(i)?o/i:Math.sign(o)/Math.sign(i);return isNaN(a)?e:e+a-.5}const Sa=Oa(Aa);Oa((function(e){const t=Aa(e);return(e,n,r,o,i)=>{t(e,n,(r<<=2)+0,(o<<=2)+0,i<<=2),t(e,n,r+1,o+1,i),t(e,n,r+2,o+2,i),t(e,n,r+3,o+3,i)}}));function Oa(e){return function(t,n,r=n){if(!((n=+n)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:o,width:i,height:a}=t;if(!((i=Math.floor(i))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:o.length/i))>=0))throw new RangeError("invalid height");if(!i||!a||!n&&!r)return t;const s=n&&e(n),l=r&&e(r),u=o.slice();return s&&l?(Ca(s,u,o,i,a),Ca(s,o,u,i,a),Ca(s,u,o,i,a),Ea(l,o,u,i,a),Ea(l,u,o,i,a),Ea(l,o,u,i,a)):s?(Ca(s,o,u,i,a),Ca(s,u,o,i,a),Ca(s,o,u,i,a)):l&&(Ea(l,o,u,i,a),Ea(l,u,o,i,a),Ea(l,o,u,i,a)),t}}function Ca(e,t,n,r,o){for(let i=0,a=r*o;i<a;)e(t,n,i,i+=r,1)}function Ea(e,t,n,r,o){for(let i=0,a=r*o;i<r;++i)e(t,n,i,i+a,r)}function Aa(e){const t=Math.floor(e);if(t===e)return function(e){const t=2*e+1;return(n,r,o,i,a)=>{if(!((i-=a)>=o))return;let s=e*r[o];const l=a*e;for(let e=o,t=o+l;e<t;e+=a)s+=r[Math.min(i,e)];for(let e=o,u=i;e<=u;e+=a)s+=r[Math.min(i,e+l)],n[e]=s/t,s-=r[Math.max(o,e-l)]}}(e);const n=e-t,r=2*e+1;return(e,o,i,a,s)=>{if(!((a-=s)>=i))return;let l=t*o[i];const u=s*t,c=u+s;for(let t=i,n=i+u;t<n;t+=s)l+=o[Math.min(a,t)];for(let t=i,f=a;t<=f;t+=s)l+=o[Math.min(a,t+u)],e[t]=(l+n*(o[Math.max(i,t-c)]+o[Math.min(a,t+c)]))/r,l-=o[Math.max(i,t-u)]}}function ka(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n<r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n<o||void 0===n&&o>=o)&&(n=o)}return n}function Ma(e){return e[0]}function Pa(e){return e[1]}function Ra(){return 1}function Ta(){var e=Ma,t=Pa,n=Ra,r=960,o=500,i=20,a=2,s=3*i,l=r+2*s>>a,u=o+2*s>>a,c=da(20);function f(r){var o=new Float32Array(l*u),c=Math.pow(2,-a),f=-1;for(const i of r){var d=(e(i,++f,r)+s)*c,p=(t(i,f,r)+s)*c,h=+n(i,f,r);if(h&&d>=0&&d<l&&p>=0&&p<u){var g=Math.floor(d),v=Math.floor(p),m=d-g-.5,y=p-v-.5;o[g+v*l]+=(1-m)*(1-y)*h,o[g+1+v*l]+=m*(1-y)*h,o[g+1+(v+1)*l]+=m*y*h,o[g+(v+1)*l]+=(1-m)*y*h}}return Sa({data:o,width:l,height:u},i*c),o}function d(e){var t=f(e),n=c(t),r=Math.pow(2,2*a);return Array.isArray(n)||(n=la(Number.MIN_VALUE,ka(t)/r,n)),ya().size([l,u]).thresholds(n.map((e=>e*r)))(t).map(((e,t)=>(e.value=+n[t],p(e))))}function p(e){return e.coordinates.forEach(h),e}function h(e){e.forEach(g)}function g(e){e.forEach(v)}function v(e){e[0]=e[0]*Math.pow(2,a)-s,e[1]=e[1]*Math.pow(2,a)-s}function m(){return l=r+2*(s=3*i)>>a,u=o+2*s>>a,d}return d.contours=function(e){var t=f(e),n=ya().size([l,u]),r=Math.pow(2,2*a),o=e=>{e=+e;var o=p(n.contour(t,e*r));return o.value=e,o};return Object.defineProperty(o,"max",{get:()=>ka(t)/r}),o},d.x=function(t){return arguments.length?(e="function"===typeof t?t:da(+t),d):e},d.y=function(e){return arguments.length?(t="function"===typeof e?e:da(+e),d):t},d.weight=function(e){return arguments.length?(n="function"===typeof e?e:da(+e),d):n},d.size=function(e){if(!arguments.length)return[r,o];var t=+e[0],n=+e[1];if(!(t>=0&&n>=0))throw new Error("invalid size");return r=t,o=n,m()},d.cellSize=function(e){if(!arguments.length)return 1<<a;if(!((e=+e)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(e)/Math.LN2),m()},d.thresholds=function(e){return arguments.length?(c="function"===typeof e?e:Array.isArray(e)?da(ca.call(e)):da(e),d):c},d.bandwidth=function(e){if(!arguments.length)return Math.sqrt(i*(i+1));if(!((e=+e)>=0))throw new Error("invalid bandwidth");return i=(Math.sqrt(4*e*e+1)-1)/2,m()},d}const Ia=134217729,Ba=33306690738754706e-32;function ja(e,t,n,r,o){let i,a,s,l,u=t[0],c=r[0],f=0,d=0;c>u===c>-u?(i=u,u=t[++f]):(i=c,c=r[++d]);let p=0;if(f<e&&d<n)for(c>u===c>-u?(a=u+i,s=i-(a-u),u=t[++f]):(a=c+i,s=i-(a-c),c=r[++d]),i=a,0!==s&&(o[p++]=s);f<e&&d<n;)c>u===c>-u?(a=i+u,l=a-i,s=i-(a-l)+(u-l),u=t[++f]):(a=i+c,l=a-i,s=i-(a-l)+(c-l),c=r[++d]),i=a,0!==s&&(o[p++]=s);for(;f<e;)a=i+u,l=a-i,s=i-(a-l)+(u-l),u=t[++f],i=a,0!==s&&(o[p++]=s);for(;d<n;)a=i+c,l=a-i,s=i-(a-l)+(c-l),c=r[++d],i=a,0!==s&&(o[p++]=s);return 0===i&&0!==p||(o[p++]=i),p}function Da(e){return new Float64Array(e)}const La=22204460492503146e-32,Za=11093356479670487e-47,Na=Da(4),Fa=Da(8),Ha=Da(12),Va=Da(16),za=Da(4);function Ua(e,t,n,r,o,i){const a=(t-i)*(n-o),s=(e-o)*(r-i),l=a-s;if(0===a||0===s||a>0!==s>0)return l;const u=Math.abs(a+s);return Math.abs(l)>=33306690738754716e-32*u?l:-function(e,t,n,r,o,i,a){let s,l,u,c,f,d,p,h,g,v,m,y,b,w,_,x,S,O;const C=e-o,E=n-o,A=t-i,k=r-i;w=C*k,d=Ia*C,p=d-(d-C),h=C-p,d=Ia*k,g=d-(d-k),v=k-g,_=h*v-(w-p*g-h*g-p*v),x=A*E,d=Ia*A,p=d-(d-A),h=A-p,d=Ia*E,g=d-(d-E),v=E-g,S=h*v-(x-p*g-h*g-p*v),m=_-S,f=_-m,Na[0]=_-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-x,f=b-m,Na[1]=b-(m+f)+(f-x),O=y+m,f=O-y,Na[2]=y-(O-f)+(m-f),Na[3]=O;let M=function(e,t){let n=t[0];for(let r=1;r<e;r++)n+=t[r];return n}(4,Na),P=La*a;if(M>=P||-M>=P)return M;if(f=e-C,s=e-(C+f)+(f-o),f=n-E,u=n-(E+f)+(f-o),f=t-A,l=t-(A+f)+(f-i),f=r-k,c=r-(k+f)+(f-i),0===s&&0===l&&0===u&&0===c)return M;if(P=Za*a+Ba*Math.abs(M),M+=C*c+k*s-(A*u+E*l),M>=P||-M>=P)return M;w=s*k,d=Ia*s,p=d-(d-s),h=s-p,d=Ia*k,g=d-(d-k),v=k-g,_=h*v-(w-p*g-h*g-p*v),x=l*E,d=Ia*l,p=d-(d-l),h=l-p,d=Ia*E,g=d-(d-E),v=E-g,S=h*v-(x-p*g-h*g-p*v),m=_-S,f=_-m,za[0]=_-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-x,f=b-m,za[1]=b-(m+f)+(f-x),O=y+m,f=O-y,za[2]=y-(O-f)+(m-f),za[3]=O;const R=ja(4,Na,4,za,Fa);w=C*c,d=Ia*C,p=d-(d-C),h=C-p,d=Ia*c,g=d-(d-c),v=c-g,_=h*v-(w-p*g-h*g-p*v),x=A*u,d=Ia*A,p=d-(d-A),h=A-p,d=Ia*u,g=d-(d-u),v=u-g,S=h*v-(x-p*g-h*g-p*v),m=_-S,f=_-m,za[0]=_-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-x,f=b-m,za[1]=b-(m+f)+(f-x),O=y+m,f=O-y,za[2]=y-(O-f)+(m-f),za[3]=O;const T=ja(R,Fa,4,za,Ha);w=s*c,d=Ia*s,p=d-(d-s),h=s-p,d=Ia*c,g=d-(d-c),v=c-g,_=h*v-(w-p*g-h*g-p*v),x=l*u,d=Ia*l,p=d-(d-l),h=l-p,d=Ia*u,g=d-(d-u),v=u-g,S=h*v-(x-p*g-h*g-p*v),m=_-S,f=_-m,za[0]=_-(m+f)+(f-S),y=w+m,f=y-w,b=w-(y-f)+(m-f),m=b-x,f=b-m,za[1]=b-(m+f)+(f-x),O=y+m,f=O-y,za[2]=y-(O-f)+(m-f),za[3]=O;const I=ja(T,Ha,4,za,Va);return Va[I-1]}(e,t,n,r,o,i,u)}Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(8),Da(8),Da(8),Da(4),Da(8),Da(8),Da(8),Da(12);Da(192),Da(192);Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(8),Da(8),Da(8),Da(8),Da(8),Da(8),Da(8),Da(8),Da(8),Da(4),Da(4),Da(4),Da(8),Da(16),Da(16),Da(16),Da(32),Da(32),Da(48),Da(64);Da(1152),Da(1152);Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(4),Da(24),Da(24),Da(24),Da(24),Da(24),Da(24),Da(24),Da(24),Da(24),Da(24),Da(1152),Da(1152),Da(1152),Da(1152),Da(1152),Da(2304),Da(2304),Da(3456),Da(5760),Da(8),Da(8),Da(8),Da(16),Da(24),Da(48),Da(48),Da(96),Da(192),Da(384),Da(384),Da(384),Da(768);Da(96),Da(96),Da(96),Da(1152);const Ga=Math.pow(2,-52),Wa=new Uint32Array(512);class qa{static from(e,t=Qa,n=es){const r=e.length,o=new Float64Array(2*r);for(let i=0;i<r;i++){const r=e[i];o[2*i]=t(r),o[2*i+1]=n(r)}return new qa(o)}constructor(e){const t=e.length>>1;if(t>0&&"number"!==typeof e[0])throw new Error("Expected coords to contain numbers.");this.coords=e;const n=Math.max(2*t-5,0);this._triangles=new Uint32Array(3*n),this._halfedges=new Int32Array(3*n),this._hashSize=Math.ceil(Math.sqrt(t)),this._hullPrev=new Uint32Array(t),this._hullNext=new Uint32Array(t),this._hullTri=new Uint32Array(t),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(t),this._dists=new Float64Array(t),this.update()}update(){const{coords:e,_hullPrev:t,_hullNext:n,_hullTri:r,_hullHash:o}=this,i=e.length>>1;let a=1/0,s=1/0,l=-1/0,u=-1/0;for(let C=0;C<i;C++){const t=e[2*C],n=e[2*C+1];t<a&&(a=t),n<s&&(s=n),t>l&&(l=t),n>u&&(u=n),this._ids[C]=C}const c=(a+l)/2,f=(s+u)/2;let d,p,h,g=1/0;for(let C=0;C<i;C++){const t=$a(c,f,e[2*C],e[2*C+1]);t<g&&(d=C,g=t)}const v=e[2*d],m=e[2*d+1];g=1/0;for(let C=0;C<i;C++){if(C===d)continue;const t=$a(v,m,e[2*C],e[2*C+1]);t<g&&t>0&&(p=C,g=t)}let y=e[2*p],b=e[2*p+1],w=1/0;for(let C=0;C<i;C++){if(C===d||C===p)continue;const t=Xa(v,m,y,b,e[2*C],e[2*C+1]);t<w&&(h=C,w=t)}let _=e[2*h],x=e[2*h+1];if(w===1/0){for(let r=0;r<i;r++)this._dists[r]=e[2*r]-e[0]||e[2*r+1]-e[1];Ka(this._ids,this._dists,0,i-1);const t=new Uint32Array(i);let n=0;for(let e=0,r=-1/0;e<i;e++){const o=this._ids[e];this._dists[o]>r&&(t[n++]=o,r=this._dists[o])}return this.hull=t.subarray(0,n),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Ua(v,m,y,b,_,x)<0){const e=p,t=y,n=b;p=h,y=_,b=x,h=e,_=t,x=n}const S=function(e,t,n,r,o,i){const a=n-e,s=r-t,l=o-e,u=i-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),p=e+(u*c-s*f)*d,h=t+(a*f-l*c)*d;return{x:p,y:h}}(v,m,y,b,_,x);this._cx=S.x,this._cy=S.y;for(let C=0;C<i;C++)this._dists[C]=$a(e[2*C],e[2*C+1],S.x,S.y);Ka(this._ids,this._dists,0,i-1),this._hullStart=d;let O=3;n[d]=t[h]=p,n[p]=t[d]=h,n[h]=t[p]=d,r[d]=0,r[p]=1,r[h]=2,o.fill(-1),o[this._hashKey(v,m)]=d,o[this._hashKey(y,b)]=p,o[this._hashKey(_,x)]=h,this.trianglesLen=0,this._addTriangle(d,p,h,-1,-1,-1);for(let C,E,A=0;A<this._ids.length;A++){const i=this._ids[A],a=e[2*i],s=e[2*i+1];if(A>0&&Math.abs(a-C)<=Ga&&Math.abs(s-E)<=Ga)continue;if(C=a,E=s,i===d||i===p||i===h)continue;let l=0;for(let e=0,t=this._hashKey(a,s);e<this._hashSize&&(l=o[(t+e)%this._hashSize],-1===l||l===n[l]);e++);l=t[l];let u,c=l;for(;u=n[c],Ua(a,s,e[2*c],e[2*c+1],e[2*u],e[2*u+1])>=0;)if(c=u,c===l){c=-1;break}if(-1===c)continue;let f=this._addTriangle(c,i,n[c],-1,-1,r[c]);r[i]=this._legalize(f+2),r[c]=f,O++;let g=n[c];for(;u=n[g],Ua(a,s,e[2*g],e[2*g+1],e[2*u],e[2*u+1])<0;)f=this._addTriangle(g,i,u,r[i],-1,r[g]),r[i]=this._legalize(f+2),n[g]=g,O--,g=u;if(c===l)for(;u=t[c],Ua(a,s,e[2*u],e[2*u+1],e[2*c],e[2*c+1])<0;)f=this._addTriangle(u,i,c,-1,r[c],r[u]),this._legalize(f+2),r[u]=f,n[c]=c,O--,c=u;this._hullStart=t[i]=c,n[c]=t[g]=i,n[i]=g,o[this._hashKey(a,s)]=i,o[this._hashKey(e[2*c],e[2*c+1])]=c}this.hull=new Uint32Array(O);for(let C=0,E=this._hullStart;C<O;C++)this.hull[C]=E,E=n[E];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(e,t){return Math.floor(function(e,t){const n=e/(Math.abs(e)+Math.abs(t));return(t>0?3-n:1+n)/4}(e-this._cx,t-this._cy)*this._hashSize)%this._hashSize}_legalize(e){const{_triangles:t,_halfedges:n,coords:r}=this;let o=0,i=0;for(;;){const a=n[e],s=e-e%3;if(i=s+(e+2)%3,-1===a){if(0===o)break;e=Wa[--o];continue}const l=a-a%3,u=s+(e+1)%3,c=l+(a+2)%3,f=t[i],d=t[e],p=t[u],h=t[c];if(Ya(r[2*f],r[2*f+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1],r[2*h],r[2*h+1])){t[e]=h,t[a]=f;const r=n[c];if(-1===r){let t=this._hullStart;do{if(this._hullTri[t]===c){this._hullTri[t]=e;break}t=this._hullPrev[t]}while(t!==this._hullStart)}this._link(e,r),this._link(a,n[i]),this._link(i,c);const s=l+(a+1)%3;o<Wa.length&&(Wa[o++]=s)}else{if(0===o)break;e=Wa[--o]}}return i}_link(e,t){this._halfedges[e]=t,-1!==t&&(this._halfedges[t]=e)}_addTriangle(e,t,n,r,o,i){const a=this.trianglesLen;return this._triangles[a]=e,this._triangles[a+1]=t,this._triangles[a+2]=n,this._link(a,r),this._link(a+1,o),this._link(a+2,i),this.trianglesLen+=3,a}}function $a(e,t,n,r){const o=e-n,i=t-r;return o*o+i*i}function Ya(e,t,n,r,o,i,a,s){const l=e-a,u=t-s,c=n-a,f=r-s,d=o-a,p=i-s,h=c*c+f*f,g=d*d+p*p;return l*(f*g-h*p)-u*(c*g-h*d)+(l*l+u*u)*(c*p-f*d)<0}function Xa(e,t,n,r,o,i){const a=n-e,s=r-t,l=o-e,u=i-t,c=a*a+s*s,f=l*l+u*u,d=.5/(a*u-s*l),p=(u*c-s*f)*d,h=(a*f-l*c)*d;return p*p+h*h}function Ka(e,t,n,r){if(r-n<=20)for(let o=n+1;o<=r;o++){const r=e[o],i=t[r];let a=o-1;for(;a>=n&&t[e[a]]>i;)e[a+1]=e[a--];e[a+1]=r}else{let o=n+1,i=r;Ja(e,n+r>>1,o),t[e[n]]>t[e[r]]&&Ja(e,n,r),t[e[o]]>t[e[r]]&&Ja(e,o,r),t[e[n]]>t[e[o]]&&Ja(e,n,o);const a=e[o],s=t[a];for(;;){do{o++}while(t[e[o]]<s);do{i--}while(t[e[i]]>s);if(i<o)break;Ja(e,o,i)}e[n+1]=e[i],e[i]=a,r-o+1>=i-n?(Ka(e,t,o,r),Ka(e,t,n,i-1)):(Ka(e,t,n,i-1),Ka(e,t,o,r))}}function Ja(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Qa(e){return e[0]}function es(e){return e[1]}const ts=1e-6;class ns{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(e,t){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(e,t){this._+=`L${this._x1=+e},${this._y1=+t}`}arc(e,t,n){const r=(e=+e)+(n=+n),o=t=+t;if(n<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${o}`:(Math.abs(this._x1-r)>ts||Math.abs(this._y1-o)>ts)&&(this._+="L"+r+","+o),n&&(this._+=`A${n},${n},0,1,1,${e-n},${t}A${n},${n},0,1,1,${this._x1=r},${this._y1=o}`)}rect(e,t,n,r){this._+=`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${+n}v${+r}h${-n}Z`}value(){return this._||null}}class rs{constructor(){this._=[]}moveTo(e,t){this._.push([e,t])}closePath(){this._.push(this._[0].slice())}lineTo(e,t){this._.push([e,t])}value(){return this._.length?this._:null}}class os{constructor(e,[t,n,r,o]=[0,0,960,500]){if(!((r=+r)>=(t=+t))||!((o=+o)>=(n=+n)))throw new Error("invalid bounds");this.delaunay=e,this._circumcenters=new Float64Array(2*e.points.length),this.vectors=new Float64Array(2*e.points.length),this.xmax=r,this.xmin=t,this.ymax=o,this.ymin=n,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:e,hull:t,triangles:n},vectors:r}=this,o=this.circumcenters=this._circumcenters.subarray(0,n.length/3*2);for(let d,p,h=0,g=0,v=n.length;h<v;h+=3,g+=2){const t=2*n[h],r=2*n[h+1],i=2*n[h+2],a=e[t],s=e[t+1],l=e[r],u=e[r+1],c=e[i],f=e[i+1],v=l-a,m=u-s,y=c-a,b=f-s,w=2*(v*b-m*y);if(Math.abs(w)<1e-9){let t=1e9;const r=2*n[0];t*=Math.sign((e[r]-a)*b-(e[r+1]-s)*y),d=(a+c)/2-t*b,p=(s+f)/2+t*y}else{const e=1/w,t=v*v+m*m,n=y*y+b*b;d=a+(b*t-m*n)*e,p=s+(v*n-y*t)*e}o[g]=d,o[g+1]=p}let i,a,s,l=t[t.length-1],u=4*l,c=e[2*l],f=e[2*l+1];r.fill(0);for(let d=0;d<t.length;++d)l=t[d],i=u,a=c,s=f,u=4*l,c=e[2*l],f=e[2*l+1],r[i+2]=r[u]=s-f,r[i+3]=r[u+1]=c-a}render(e){const t=null==e?e=new ns:void 0,{delaunay:{halfedges:n,inedges:r,hull:o},circumcenters:i,vectors:a}=this;if(o.length<=1)return null;for(let u=0,c=n.length;u<c;++u){const t=n[u];if(t<u)continue;const r=2*Math.floor(u/3),o=2*Math.floor(t/3),a=i[r],s=i[r+1],l=i[o],c=i[o+1];this._renderSegment(a,s,l,c,e)}let s,l=o[o.length-1];for(let u=0;u<o.length;++u){s=l,l=o[u];const t=2*Math.floor(r[l]/3),n=i[t],c=i[t+1],f=4*s,d=this._project(n,c,a[f+2],a[f+3]);d&&this._renderSegment(n,c,d[0],d[1],e)}return t&&t.value()}renderBounds(e){const t=null==e?e=new ns:void 0;return e.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),t&&t.value()}renderCell(e,t){const n=null==t?t=new ns:void 0,r=this._clip(e);if(null===r||!r.length)return;t.moveTo(r[0],r[1]);let o=r.length;for(;r[0]===r[o-2]&&r[1]===r[o-1]&&o>1;)o-=2;for(let i=2;i<o;i+=2)r[i]===r[i-2]&&r[i+1]===r[i-1]||t.lineTo(r[i],r[i+1]);return t.closePath(),n&&n.value()}*cellPolygons(){const{delaunay:{points:e}}=this;for(let t=0,n=e.length/2;t<n;++t){const e=this.cellPolygon(t);e&&(e.index=t,yield e)}}cellPolygon(e){const t=new rs;return this.renderCell(e,t),t.value()}_renderSegment(e,t,n,r,o){let i;const a=this._regioncode(e,t),s=this._regioncode(n,r);0===a&&0===s?(o.moveTo(e,t),o.lineTo(n,r)):(i=this._clipSegment(e,t,n,r,a,s))&&(o.moveTo(i[0],i[1]),o.lineTo(i[2],i[3]))}contains(e,t,n){return(t=+t)===t&&(n=+n)===n&&this.delaunay._step(e,t,n)===e}*neighbors(e){const t=this._clip(e);if(t)for(const n of this.delaunay.neighbors(e)){const e=this._clip(n);if(e)e:for(let r=0,o=t.length;r<o;r+=2)for(let i=0,a=e.length;i<a;i+=2)if(t[r]===e[i]&&t[r+1]===e[i+1]&&t[(r+2)%o]===e[(i+a-2)%a]&&t[(r+3)%o]===e[(i+a-1)%a]){yield n;break e}}}_cell(e){const{circumcenters:t,delaunay:{inedges:n,halfedges:r,triangles:o}}=this,i=n[e];if(-1===i)return null;const a=[];let s=i;do{const n=Math.floor(s/3);if(a.push(t[2*n],t[2*n+1]),s=s%3===2?s-2:s+1,o[s]!==e)break;s=r[s]}while(s!==i&&-1!==s);return a}_clip(e){if(0===e&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const t=this._cell(e);if(null===t)return null;const{vectors:n}=this,r=4*e;return this._simplify(n[r]||n[r+1]?this._clipInfinite(e,t,n[r],n[r+1],n[r+2],n[r+3]):this._clipFinite(e,t))}_clipFinite(e,t){const n=t.length;let r,o,i,a,s=null,l=t[n-2],u=t[n-1],c=this._regioncode(l,u),f=0;for(let d=0;d<n;d+=2)if(r=l,o=u,l=t[d],u=t[d+1],i=c,c=this._regioncode(l,u),0===i&&0===c)a=f,f=0,s?s.push(l,u):s=[l,u];else{let t,n,d,p,h;if(0===i){if(null===(t=this._clipSegment(r,o,l,u,i,c)))continue;[n,d,p,h]=t}else{if(null===(t=this._clipSegment(l,u,r,o,c,i)))continue;[p,h,n,d]=t,a=f,f=this._edgecode(n,d),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(n,d):s=[n,d]}a=f,f=this._edgecode(p,h),a&&f&&this._edge(e,a,f,s,s.length),s?s.push(p,h):s=[p,h]}if(s)a=f,f=this._edgecode(s[0],s[1]),a&&f&&this._edge(e,a,f,s,s.length);else if(this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return s}_clipSegment(e,t,n,r,o,i){const a=o<i;for(a&&([e,t,n,r,o,i]=[n,r,e,t,i,o]);;){if(0===o&&0===i)return a?[n,r,e,t]:[e,t,n,r];if(o&i)return null;let s,l,u=o||i;8&u?(s=e+(n-e)*(this.ymax-t)/(r-t),l=this.ymax):4&u?(s=e+(n-e)*(this.ymin-t)/(r-t),l=this.ymin):2&u?(l=t+(r-t)*(this.xmax-e)/(n-e),s=this.xmax):(l=t+(r-t)*(this.xmin-e)/(n-e),s=this.xmin),o?(e=s,t=l,o=this._regioncode(e,t)):(n=s,r=l,i=this._regioncode(n,r))}}_clipInfinite(e,t,n,r,o,i){let a,s=Array.from(t);if((a=this._project(s[0],s[1],n,r))&&s.unshift(a[0],a[1]),(a=this._project(s[s.length-2],s[s.length-1],o,i))&&s.push(a[0],a[1]),s=this._clipFinite(e,s))for(let l,u=0,c=s.length,f=this._edgecode(s[c-2],s[c-1]);u<c;u+=2)l=f,f=this._edgecode(s[u],s[u+1]),l&&f&&(u=this._edge(e,l,f,s,u),c=s.length);else this.contains(e,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(s=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return s}_edge(e,t,n,r,o){for(;t!==n;){let n,i;switch(t){case 5:t=4;continue;case 4:t=6,n=this.xmax,i=this.ymin;break;case 6:t=2;continue;case 2:t=10,n=this.xmax,i=this.ymax;break;case 10:t=8;continue;case 8:t=9,n=this.xmin,i=this.ymax;break;case 9:t=1;continue;case 1:t=5,n=this.xmin,i=this.ymin}r[o]===n&&r[o+1]===i||!this.contains(e,n,i)||(r.splice(o,0,n,i),o+=2)}return o}_project(e,t,n,r){let o,i,a,s=1/0;if(r<0){if(t<=this.ymin)return null;(o=(this.ymin-t)/r)<s&&(a=this.ymin,i=e+(s=o)*n)}else if(r>0){if(t>=this.ymax)return null;(o=(this.ymax-t)/r)<s&&(a=this.ymax,i=e+(s=o)*n)}if(n>0){if(e>=this.xmax)return null;(o=(this.xmax-e)/n)<s&&(i=this.xmax,a=t+(s=o)*r)}else if(n<0){if(e<=this.xmin)return null;(o=(this.xmin-e)/n)<s&&(i=this.xmin,a=t+(s=o)*r)}return[i,a]}_edgecode(e,t){return(e===this.xmin?1:e===this.xmax?2:0)|(t===this.ymin?4:t===this.ymax?8:0)}_regioncode(e,t){return(e<this.xmin?1:e>this.xmax?2:0)|(t<this.ymin?4:t>this.ymax?8:0)}_simplify(e){if(e&&e.length>4){for(let t=0;t<e.length;t+=2){const n=(t+2)%e.length,r=(t+4)%e.length;(e[t]===e[n]&&e[n]===e[r]||e[t+1]===e[n+1]&&e[n+1]===e[r+1])&&(e.splice(n,2),t-=2)}e.length||(e=null)}return e}}const is=2*Math.PI,as=Math.pow;function ss(e){return e[0]}function ls(e){return e[1]}function us(e,t,n){return[e+Math.sin(e+t)*n,t+Math.cos(e-t)*n]}class cs{static from(e,t=ss,n=ls,r){return new cs("length"in e?function(e,t,n,r){const o=e.length,i=new Float64Array(2*o);for(let a=0;a<o;++a){const o=e[a];i[2*a]=t.call(r,o,a,e),i[2*a+1]=n.call(r,o,a,e)}return i}(e,t,n,r):Float64Array.from(function*(e,t,n,r){let o=0;for(const i of e)yield t.call(r,i,o,e),yield n.call(r,i,o,e),++o}(e,t,n,r)))}constructor(e){this._delaunator=new qa(e),this.inedges=new Int32Array(e.length/2),this._hullIndex=new Int32Array(e.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const e=this._delaunator,t=this.points;if(e.hull&&e.hull.length>2&&function(e){const{triangles:t,coords:n}=e;for(let r=0;r<t.length;r+=3){const e=2*t[r],o=2*t[r+1],i=2*t[r+2];if((n[i]-n[e])*(n[o+1]-n[e+1])-(n[o]-n[e])*(n[i+1]-n[e+1])>1e-10)return!1}return!0}(e)){this.collinear=Int32Array.from({length:t.length/2},((e,t)=>t)).sort(((e,n)=>t[2*e]-t[2*n]||t[2*e+1]-t[2*n+1]));const e=this.collinear[0],n=this.collinear[this.collinear.length-1],r=[t[2*e],t[2*e+1],t[2*n],t[2*n+1]],o=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let i=0,a=t.length/2;i<a;++i){const e=us(t[2*i],t[2*i+1],o);t[2*i]=e[0],t[2*i+1]=e[1]}this._delaunator=new qa(t)}else delete this.collinear;const n=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,o=this.triangles=this._delaunator.triangles,i=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let s=0,l=n.length;s<l;++s){const e=o[s%3===2?s-2:s+1];-1!==n[s]&&-1!==i[e]||(i[e]=s)}for(let s=0,l=r.length;s<l;++s)a[r[s]]=s;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],i[r[0]]=1,2===r.length&&(i[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(e){return new os(this,e)}*neighbors(e){const{inedges:t,hull:n,_hullIndex:r,halfedges:o,triangles:i,collinear:a}=this;if(a){const t=a.indexOf(e);return t>0&&(yield a[t-1]),void(t<a.length-1&&(yield a[t+1]))}const s=t[e];if(-1===s)return;let l=s,u=-1;do{if(yield u=i[l],l=l%3===2?l-2:l+1,i[l]!==e)return;if(l=o[l],-1===l){const t=n[(r[e]+1)%n.length];return void(t!==u&&(yield t))}}while(l!==s)}find(e,t,n=0){if((e=+e)!==e||(t=+t)!==t)return-1;const r=n;let o;for(;(o=this._step(n,e,t))>=0&&o!==n&&o!==r;)n=o;return o}_step(e,t,n){const{inedges:r,hull:o,_hullIndex:i,halfedges:a,triangles:s,points:l}=this;if(-1===r[e]||!l.length)return(e+1)%(l.length>>1);let u=e,c=as(t-l[2*e],2)+as(n-l[2*e+1],2);const f=r[e];let d=f;do{let r=s[d];const f=as(t-l[2*r],2)+as(n-l[2*r+1],2);if(f<c&&(c=f,u=r),d=d%3===2?d-2:d+1,s[d]!==e)break;if(d=a[d],-1===d){if(d=o[(i[e]+1)%o.length],d!==r&&as(t-l[2*d],2)+as(n-l[2*d+1],2)<c)return d;break}}while(d!==f);return u}render(e){const t=null==e?e=new ns:void 0,{points:n,halfedges:r,triangles:o}=this;for(let i=0,a=r.length;i<a;++i){const t=r[i];if(t<i)continue;const a=2*o[i],s=2*o[t];e.moveTo(n[a],n[a+1]),e.lineTo(n[s],n[s+1])}return this.renderHull(e),t&&t.value()}renderPoints(e,t){void 0!==t||e&&"function"===typeof e.moveTo||(t=e,e=null),t=void 0==t?2:+t;const n=null==e?e=new ns:void 0,{points:r}=this;for(let o=0,i=r.length;o<i;o+=2){const n=r[o],i=r[o+1];e.moveTo(n+t,i),e.arc(n,i,t,0,is)}return n&&n.value()}renderHull(e){const t=null==e?e=new ns:void 0,{hull:n,points:r}=this,o=2*n[0],i=n.length;e.moveTo(r[o],r[o+1]);for(let a=1;a<i;++a){const t=2*n[a];e.lineTo(r[t],r[t+1])}return e.closePath(),t&&t.value()}hullPolygon(){const e=new rs;return this.renderHull(e),e.value()}renderTriangle(e,t){const n=null==t?t=new ns:void 0,{points:r,triangles:o}=this,i=2*o[e*=3],a=2*o[e+1],s=2*o[e+2];return t.moveTo(r[i],r[i+1]),t.lineTo(r[a],r[a+1]),t.lineTo(r[s],r[s+1]),t.closePath(),n&&n.value()}*trianglePolygons(){const{triangles:e}=this;for(let t=0,n=e.length/3;t<n;++t)yield this.trianglePolygon(t)}trianglePolygon(e){const t=new rs;return this.renderTriangle(e,t),t.value()}}var fs=e=>()=>e;function ds(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:s,dx:l,dy:u,dispatch:c}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:c}})}function ps(e){return!e.ctrlKey&&!e.button}function hs(){return this.parentNode}function gs(e,t){return null==t?{x:e.x,y:e.y}:t}function vs(){return navigator.maxTouchPoints||"ontouchstart"in this}function ms(){var e,t,n,r,o=ps,i=hs,a=gs,s=vs,l={},u=xt("start","drag","end"),c=0,f=0;function d(e){e.on("mousedown.drag",p).filter(s).on("touchstart.drag",v).on("touchmove.drag",m,Zn).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,s){if(!r&&o.call(this,a,s)){var l=b(this,i.call(this,a,s),a,s,"mouse");l&&(Ln(a.view).on("mousemove.drag",h,Nn).on("mouseup.drag",g,Nn),Vn(a.view),Fn(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function h(r){if(Hn(r),!n){var o=r.clientX-e,i=r.clientY-t;n=o*o+i*i>f}l.mouse("drag",r)}function g(e){Ln(e.view).on("mousemove.drag mouseup.drag",null),zn(e.view,n),Hn(e),l.mouse("end",e)}function v(e,t){if(o.call(this,e,t)){var n,r,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(r=b(this,s,e,t,a[n].identifier,a[n]))&&(Fn(e),r("start",e,a[n]))}}function m(e){var t,n,r=e.changedTouches,o=r.length;for(t=0;t<o;++t)(n=l[r[t].identifier])&&(Hn(e),n("drag",e,r[t]))}function y(e){var t,n,o=e.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),t=0;t<i;++t)(n=l[o[t].identifier])&&(Fn(e),n("end",e,o[t]))}function b(e,t,n,r,o,i){var s,f,p,h=u.copy(),g=Wn(i||n,t);if(null!=(p=a.call(e,new ds("beforestart",{sourceEvent:n,target:d,identifier:o,active:c,x:g[0],y:g[1],dx:0,dy:0,dispatch:h}),r)))return s=p.x-g[0]||0,f=p.y-g[1]||0,function n(i,a,u){var v,m=g;switch(i){case"start":l[o]=n,v=c++;break;case"end":delete l[o],--c;case"drag":g=Wn(u||a,t),v=c}h.call(i,e,new ds(i,{sourceEvent:a,subject:p,target:d,identifier:o,active:v,x:g[0]+s,y:g[1]+f,dx:g[0]-m[0],dy:g[1]-m[1],dispatch:h}),r)}}return d.filter=function(e){return arguments.length?(o="function"===typeof e?e:fs(!!e),d):o},d.container=function(e){return arguments.length?(i="function"===typeof e?e:fs(e),d):i},d.subject=function(e){return arguments.length?(a="function"===typeof e?e:fs(e),d):a},d.touchable=function(e){return arguments.length?(s="function"===typeof e?e:fs(!!e),d):s},d.on=function(){var e=u.on.apply(u,arguments);return e===u?d:e},d.clickDistance=function(e){return arguments.length?(f=(e=+e)*e,d):Math.sqrt(f)},d}ds.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var ys={},bs={},ws=34,_s=10,xs=13;function Ss(e){return new Function("d","return {"+e.map((function(e,t){return JSON.stringify(e)+": d["+t+'] || ""'})).join(",")+"}")}function Os(e){var t=Object.create(null),n=[];return e.forEach((function(e){for(var r in e)r in t||n.push(t[r]=r)})),n}function Cs(e,t){var n=e+"",r=n.length;return r<t?new Array(t-r+1).join(0)+n:n}function Es(e){var t,n=e.getUTCHours(),r=e.getUTCMinutes(),o=e.getUTCSeconds(),i=e.getUTCMilliseconds();return isNaN(e)?"Invalid Date":((t=e.getUTCFullYear())<0?"-"+Cs(-t,6):t>9999?"+"+Cs(t,6):Cs(t,4))+"-"+Cs(e.getUTCMonth()+1,2)+"-"+Cs(e.getUTCDate(),2)+(i?"T"+Cs(n,2)+":"+Cs(r,2)+":"+Cs(o,2)+"."+Cs(i,3)+"Z":o?"T"+Cs(n,2)+":"+Cs(r,2)+":"+Cs(o,2)+"Z":r||n?"T"+Cs(n,2)+":"+Cs(r,2)+"Z":"")}function As(e){var t=new RegExp('["'+e+"\n\r]"),n=e.charCodeAt(0);function r(e,t){var r,o=[],i=e.length,a=0,s=0,l=i<=0,u=!1;function c(){if(l)return bs;if(u)return u=!1,ys;var t,r,o=a;if(e.charCodeAt(o)===ws){for(;a++<i&&e.charCodeAt(a)!==ws||e.charCodeAt(++a)===ws;);return(t=a)>=i?l=!0:(r=e.charCodeAt(a++))===_s?u=!0:r===xs&&(u=!0,e.charCodeAt(a)===_s&&++a),e.slice(o+1,t-1).replace(/""/g,'"')}for(;a<i;){if((r=e.charCodeAt(t=a++))===_s)u=!0;else if(r===xs)u=!0,e.charCodeAt(a)===_s&&++a;else if(r!==n)continue;return e.slice(o,t)}return l=!0,e.slice(o,i)}for(e.charCodeAt(i-1)===_s&&--i,e.charCodeAt(i-1)===xs&&--i;(r=c())!==bs;){for(var f=[];r!==ys&&r!==bs;)f.push(r),r=c();t&&null==(f=t(f,s++))||o.push(f)}return o}function o(t,n){return t.map((function(t){return n.map((function(e){return a(t[e])})).join(e)}))}function i(t){return t.map(a).join(e)}function a(e){return null==e?"":e instanceof Date?Es(e):t.test(e+="")?'"'+e.replace(/"/g,'""')+'"':e}return{parse:function(e,t){var n,o,i=r(e,(function(e,r){if(n)return n(e,r-1);o=e,n=t?function(e,t){var n=Ss(e);return function(r,o){return t(n(r),o,e)}}(e,t):Ss(e)}));return i.columns=o||[],i},parseRows:r,format:function(t,n){return null==n&&(n=Os(t)),[n.map(a).join(e)].concat(o(t,n)).join("\n")},formatBody:function(e,t){return null==t&&(t=Os(e)),o(e,t).join("\n")},formatRows:function(e){return e.map(i).join("\n")},formatRow:i,formatValue:a}}var ks=As(","),Ms=ks.parse,Ps=ks.parseRows,Rs=ks.format,Ts=ks.formatBody,Is=ks.formatRows,Bs=ks.formatRow,js=ks.formatValue,Ds=As("\t"),Ls=Ds.parse,Zs=Ds.parseRows,Ns=Ds.format,Fs=Ds.formatBody,Hs=Ds.formatRows,Vs=Ds.formatRow,zs=Ds.formatValue;function Us(e){for(var t in e){var n,r,o=e[t].trim();if(o)if("true"===o)o=!0;else if("false"===o)o=!1;else if("NaN"===o)o=NaN;else if(isNaN(n=+o)){if(!(r=o.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;Gs&&r[4]&&!r[7]&&(o=o.replace(/-/g,"/").replace(/T/," ")),o=new Date(o)}else o=n;else o=null;e[t]=o}return e}const Gs=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours(),Ws=e=>+e;function qs(e){return e*e}function $s(e){return e*(2-e)}function Ys(e){return((e*=2)<=1?e*e:--e*(2-e)+1)/2}var Xs=function e(t){function n(e){return Math.pow(e,t)}return t=+t,n.exponent=e,n}(3),Ks=function e(t){function n(e){return 1-Math.pow(1-e,t)}return t=+t,n.exponent=e,n}(3),Js=function e(t){function n(e){return((e*=2)<=1?Math.pow(e,t):2-Math.pow(2-e,t))/2}return t=+t,n.exponent=e,n}(3),Qs=Math.PI,el=Qs/2;function tl(e){return 1===+e?1:1-Math.cos(e*el)}function nl(e){return Math.sin(e*el)}function rl(e){return(1-Math.cos(Qs*e))/2}function ol(e){return 1.0009775171065494*(Math.pow(2,-10*e)-.0009765625)}function il(e){return ol(1-+e)}function al(e){return 1-ol(e)}function sl(e){return((e*=2)<=1?ol(1-e):2-ol(e-1))/2}function ll(e){return 1-Math.sqrt(1-e*e)}function ul(e){return Math.sqrt(1- --e*e)}function cl(e){return((e*=2)<=1?1-Math.sqrt(1-e*e):Math.sqrt(1-(e-=2)*e)+1)/2}var fl=4/11,dl=6/11,pl=8/11,hl=3/4,gl=9/11,vl=10/11,ml=15/16,yl=21/22,bl=63/64,wl=1/fl/fl;function _l(e){return 1-xl(1-e)}function xl(e){return(e=+e)<fl?wl*e*e:e<pl?wl*(e-=dl)*e+hl:e<vl?wl*(e-=gl)*e+ml:wl*(e-=yl)*e+bl}function Sl(e){return((e*=2)<=1?1-xl(1-e):xl(e-1)+1)/2}var Ol=1.70158,Cl=function e(t){function n(e){return(e=+e)*e*(t*(e-1)+e)}return t=+t,n.overshoot=e,n}(Ol),El=function e(t){function n(e){return--e*e*((e+1)*t+e)+1}return t=+t,n.overshoot=e,n}(Ol),Al=function e(t){function n(e){return((e*=2)<1?e*e*((t+1)*e-t):(e-=2)*e*((t+1)*e+t)+2)/2}return t=+t,n.overshoot=e,n}(Ol),kl=2*Math.PI,Ml=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=kl);function o(e){return t*ol(- --e)*Math.sin((r-e)/n)}return o.amplitude=function(t){return e(t,n*kl)},o.period=function(n){return e(t,n)},o}(1,.3),Pl=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=kl);function o(e){return 1-t*ol(e=+e)*Math.sin((e+r)/n)}return o.amplitude=function(t){return e(t,n*kl)},o.period=function(n){return e(t,n)},o}(1,.3),Rl=function e(t,n){var r=Math.asin(1/(t=Math.max(1,t)))*(n/=kl);function o(e){return((e=2*e-1)<0?t*ol(-e)*Math.sin((r-e)/n):2-t*ol(e)*Math.sin((r+e)/n))/2}return o.amplitude=function(t){return e(t,n*kl)},o.period=function(n){return e(t,n)},o}(1,.3);function Tl(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.blob()}function Il(e,t){return fetch(e,t).then(Tl)}function Bl(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.arrayBuffer()}function jl(e,t){return fetch(e,t).then(Bl)}function Dl(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);return e.text()}function Ll(e,t){return fetch(e,t).then(Dl)}function Zl(e){return function(t,n,r){return 2===arguments.length&&"function"===typeof n&&(r=n,n=void 0),Ll(t,n).then((function(t){return e(t,r)}))}}function Nl(e,t,n,r){3===arguments.length&&"function"===typeof n&&(r=n,n=void 0);var o=As(e);return Ll(t,n).then((function(e){return o.parse(e,r)}))}var Fl=Zl(Ms),Hl=Zl(Ls);function Vl(e,t){return new Promise((function(n,r){var o=new Image;for(var i in t)o[i]=t[i];o.onerror=r,o.onload=function(){n(o)},o.src=e}))}function zl(e){if(!e.ok)throw new Error(e.status+" "+e.statusText);if(204!==e.status&&205!==e.status)return e.json()}function Ul(e,t){return fetch(e,t).then(zl)}function Gl(e){return(t,n)=>Ll(t,n).then((t=>(new DOMParser).parseFromString(t,e)))}var Wl=Gl("application/xml"),ql=Gl("text/html"),$l=Gl("image/svg+xml");function Yl(e,t){var n,r=1;function o(){var o,i,a=n.length,s=0,l=0;for(o=0;o<a;++o)s+=(i=n[o]).x,l+=i.y;for(s=(s/a-e)*r,l=(l/a-t)*r,o=0;o<a;++o)(i=n[o]).x-=s,i.y-=l}return null==e&&(e=0),null==t&&(t=0),o.initialize=function(e){n=e},o.x=function(t){return arguments.length?(e=+t,o):e},o.y=function(e){return arguments.length?(t=+e,o):t},o.strength=function(e){return arguments.length?(r=+e,o):r},o}function Xl(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var o,i,a,s,l,u,c,f,d,p=e._root,h={data:r},g=e._x0,v=e._y0,m=e._x1,y=e._y1;if(!p)return e._root=h,e;for(;p.length;)if((u=t>=(i=(g+m)/2))?g=i:m=i,(c=n>=(a=(v+y)/2))?v=a:y=a,o=p,!(p=p[f=c<<1|u]))return o[f]=h,e;if(s=+e._x.call(null,p.data),l=+e._y.call(null,p.data),t===s&&n===l)return h.next=p,o?o[f]=h:e._root=h,e;do{o=o?o[f]=new Array(4):e._root=new Array(4),(u=t>=(i=(g+m)/2))?g=i:m=i,(c=n>=(a=(v+y)/2))?v=a:y=a}while((f=c<<1|u)===(d=(l>=a)<<1|s>=i));return o[d]=p,o[f]=h,e}function Kl(e,t,n,r,o){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=o}function Jl(e){return e[0]}function Ql(e){return e[1]}function eu(e,t,n){var r=new tu(null==t?Jl:t,null==n?Ql:n,NaN,NaN,NaN,NaN);return null==e?r:r.addAll(e)}function tu(e,t,n,r,o,i){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=o,this._y1=i,this._root=void 0}function nu(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var ru=eu.prototype=tu.prototype;function ou(e){return function(){return e}}function iu(e){return 1e-6*(e()-.5)}function au(e){return e.x+e.vx}function su(e){return e.y+e.vy}function lu(e){var t,n,r,o=1,i=1;function a(){for(var e,a,l,u,c,f,d,p=t.length,h=0;h<i;++h)for(a=eu(t,au,su).visitAfter(s),e=0;e<p;++e)l=t[e],f=n[l.index],d=f*f,u=l.x+l.vx,c=l.y+l.vy,a.visit(g);function g(e,t,n,i,a){var s=e.data,p=e.r,h=f+p;if(!s)return t>u+h||i<u-h||n>c+h||a<c-h;if(s.index>l.index){var g=u-s.x-s.vx,v=c-s.y-s.vy,m=g*g+v*v;m<h*h&&(0===g&&(m+=(g=iu(r))*g),0===v&&(m+=(v=iu(r))*v),m=(h-(m=Math.sqrt(m)))/m*o,l.vx+=(g*=m)*(h=(p*=p)/(d+p)),l.vy+=(v*=m)*h,s.vx-=g*(h=1-h),s.vy-=v*h)}}}function s(e){if(e.data)return e.r=n[e.data.index];for(var t=e.r=0;t<4;++t)e[t]&&e[t].r>e.r&&(e.r=e[t].r)}function l(){if(t){var r,o,i=t.length;for(n=new Array(i),r=0;r<i;++r)o=t[r],n[o.index]=+e(o,r,t)}}return"function"!==typeof e&&(e=ou(null==e?1:+e)),a.initialize=function(e,n){t=e,r=n,l()},a.iterations=function(e){return arguments.length?(i=+e,a):i},a.strength=function(e){return arguments.length?(o=+e,a):o},a.radius=function(t){return arguments.length?(e="function"===typeof t?t:ou(+t),l(),a):e},a}function uu(e){return e.index}function cu(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function fu(e){var t,n,r,o,i,a,s=uu,l=function(e){return 1/Math.min(o[e.source.index],o[e.target.index])},u=ou(30),c=1;function f(r){for(var o=0,s=e.length;o<c;++o)for(var l,u,f,d,p,h,g,v=0;v<s;++v)u=(l=e[v]).source,d=(f=l.target).x+f.vx-u.x-u.vx||iu(a),p=f.y+f.vy-u.y-u.vy||iu(a),d*=h=((h=Math.sqrt(d*d+p*p))-n[v])/h*r*t[v],p*=h,f.vx-=d*(g=i[v]),f.vy-=p*g,u.vx+=d*(g=1-g),u.vy+=p*g}function d(){if(r){var a,l,u=r.length,c=e.length,f=new Map(r.map(((e,t)=>[s(e,t,r),e])));for(a=0,o=new Array(u);a<c;++a)(l=e[a]).index=a,"object"!==typeof l.source&&(l.source=cu(f,l.source)),"object"!==typeof l.target&&(l.target=cu(f,l.target)),o[l.source.index]=(o[l.source.index]||0)+1,o[l.target.index]=(o[l.target.index]||0)+1;for(a=0,i=new Array(c);a<c;++a)l=e[a],i[a]=o[l.source.index]/(o[l.source.index]+o[l.target.index]);t=new Array(c),p(),n=new Array(c),h()}}function p(){if(r)for(var n=0,o=e.length;n<o;++n)t[n]=+l(e[n],n,e)}function h(){if(r)for(var t=0,o=e.length;t<o;++t)n[t]=+u(e[t],t,e)}return null==e&&(e=[]),f.initialize=function(e,t){r=e,a=t,d()},f.links=function(t){return arguments.length?(e=t,d(),f):e},f.id=function(e){return arguments.length?(s=e,f):s},f.iterations=function(e){return arguments.length?(c=+e,f):c},f.strength=function(e){return arguments.length?(l="function"===typeof e?e:ou(+e),p(),f):l},f.distance=function(e){return arguments.length?(u="function"===typeof e?e:ou(+e),h(),f):u},f}ru.copy=function(){var e,t,n=new tu(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=nu(r),n;for(e=[{source:r,target:n._root=new Array(4)}];r=e.pop();)for(var o=0;o<4;++o)(t=r.source[o])&&(t.length?e.push({source:t,target:r.target[o]=new Array(4)}):r.target[o]=nu(t));return n},ru.add=function(e){const t=+this._x.call(null,e),n=+this._y.call(null,e);return Xl(this.cover(t,n),t,n,e)},ru.addAll=function(e){var t,n,r,o,i=e.length,a=new Array(i),s=new Array(i),l=1/0,u=1/0,c=-1/0,f=-1/0;for(n=0;n<i;++n)isNaN(r=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(a[n]=r,s[n]=o,r<l&&(l=r),r>c&&(c=r),o<u&&(u=o),o>f&&(f=o));if(l>c||u>f)return this;for(this.cover(l,u).cover(c,f),n=0;n<i;++n)Xl(this,a[n],s[n],e[n]);return this},ru.cover=function(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,o=this._x1,i=this._y1;if(isNaN(n))o=(n=Math.floor(e))+1,i=(r=Math.floor(t))+1;else{for(var a,s,l=o-n||1,u=this._root;n>e||e>=o||r>t||t>=i;)switch(s=(t<r)<<1|e<n,(a=new Array(4))[s]=u,u=a,l*=2,s){case 0:o=n+l,i=r+l;break;case 1:n=o-l,i=r+l;break;case 2:o=n+l,r=i-l;break;case 3:n=o-l,r=i-l}this._root&&this._root.length&&(this._root=u)}return this._x0=n,this._y0=r,this._x1=o,this._y1=i,this},ru.data=function(){var e=[];return this.visit((function(t){if(!t.length)do{e.push(t.data)}while(t=t.next)})),e},ru.extent=function(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},ru.find=function(e,t,n){var r,o,i,a,s,l,u,c=this._x0,f=this._y0,d=this._x1,p=this._y1,h=[],g=this._root;for(g&&h.push(new Kl(g,c,f,d,p)),null==n?n=1/0:(c=e-n,f=t-n,d=e+n,p=t+n,n*=n);l=h.pop();)if(!(!(g=l.node)||(o=l.x0)>d||(i=l.y0)>p||(a=l.x1)<c||(s=l.y1)<f))if(g.length){var v=(o+a)/2,m=(i+s)/2;h.push(new Kl(g[3],v,m,a,s),new Kl(g[2],o,m,v,s),new Kl(g[1],v,i,a,m),new Kl(g[0],o,i,v,m)),(u=(t>=m)<<1|e>=v)&&(l=h[h.length-1],h[h.length-1]=h[h.length-1-u],h[h.length-1-u]=l)}else{var y=e-+this._x.call(null,g.data),b=t-+this._y.call(null,g.data),w=y*y+b*b;if(w<n){var _=Math.sqrt(n=w);c=e-_,f=t-_,d=e+_,p=t+_,r=g.data}}return r},ru.remove=function(e){if(isNaN(i=+this._x.call(null,e))||isNaN(a=+this._y.call(null,e)))return this;var t,n,r,o,i,a,s,l,u,c,f,d,p=this._root,h=this._x0,g=this._y0,v=this._x1,m=this._y1;if(!p)return this;if(p.length)for(;;){if((u=i>=(s=(h+v)/2))?h=s:v=s,(c=a>=(l=(g+m)/2))?g=l:m=l,t=p,!(p=p[f=c<<1|u]))return this;if(!p.length)break;(t[f+1&3]||t[f+2&3]||t[f+3&3])&&(n=t,d=f)}for(;p.data!==e;)if(r=p,!(p=p.next))return this;return(o=p.next)&&delete p.next,r?(o?r.next=o:delete r.next,this):t?(o?t[f]=o:delete t[f],(p=t[0]||t[1]||t[2]||t[3])&&p===(t[3]||t[2]||t[1]||t[0])&&!p.length&&(n?n[d]=p:this._root=p),this):(this._root=o,this)},ru.removeAll=function(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this},ru.root=function(){return this._root},ru.size=function(){var e=0;return this.visit((function(t){if(!t.length)do{++e}while(t=t.next)})),e},ru.visit=function(e){var t,n,r,o,i,a,s=[],l=this._root;for(l&&s.push(new Kl(l,this._x0,this._y0,this._x1,this._y1));t=s.pop();)if(!e(l=t.node,r=t.x0,o=t.y0,i=t.x1,a=t.y1)&&l.length){var u=(r+i)/2,c=(o+a)/2;(n=l[3])&&s.push(new Kl(n,u,c,i,a)),(n=l[2])&&s.push(new Kl(n,r,c,u,a)),(n=l[1])&&s.push(new Kl(n,u,o,i,c)),(n=l[0])&&s.push(new Kl(n,r,o,u,c))}return this},ru.visitAfter=function(e){var t,n=[],r=[];for(this._root&&n.push(new Kl(this._root,this._x0,this._y0,this._x1,this._y1));t=n.pop();){var o=t.node;if(o.length){var i,a=t.x0,s=t.y0,l=t.x1,u=t.y1,c=(a+l)/2,f=(s+u)/2;(i=o[0])&&n.push(new Kl(i,a,s,c,f)),(i=o[1])&&n.push(new Kl(i,c,s,l,f)),(i=o[2])&&n.push(new Kl(i,a,f,c,u)),(i=o[3])&&n.push(new Kl(i,c,f,l,u))}r.push(t)}for(;t=r.pop();)e(t.node,t.x0,t.y0,t.x1,t.y1);return this},ru.x=function(e){return arguments.length?(this._x=e,this):this._x},ru.y=function(e){return arguments.length?(this._y=e,this):this._y};const du=1664525,pu=1013904223,hu=4294967296;function gu(e){return e.x}function vu(e){return e.y}var mu=10,yu=Math.PI*(3-Math.sqrt(5));function bu(e){var t,n=1,r=.001,o=1-Math.pow(r,1/300),i=0,a=.6,s=new Map,l=sr(f),u=xt("tick","end"),c=function(){let e=1;return()=>(e=(du*e+pu)%hu)/hu}();function f(){d(),u.call("tick",t),n<r&&(l.stop(),u.call("end",t))}function d(r){var l,u,c=e.length;void 0===r&&(r=1);for(var f=0;f<r;++f)for(n+=(i-n)*o,s.forEach((function(e){e(n)})),l=0;l<c;++l)null==(u=e[l]).fx?u.x+=u.vx*=a:(u.x=u.fx,u.vx=0),null==u.fy?u.y+=u.vy*=a:(u.y=u.fy,u.vy=0);return t}function p(){for(var t,n=0,r=e.length;n<r;++n){if((t=e[n]).index=n,null!=t.fx&&(t.x=t.fx),null!=t.fy&&(t.y=t.fy),isNaN(t.x)||isNaN(t.y)){var o=mu*Math.sqrt(.5+n),i=n*yu;t.x=o*Math.cos(i),t.y=o*Math.sin(i)}(isNaN(t.vx)||isNaN(t.vy))&&(t.vx=t.vy=0)}}function h(t){return t.initialize&&t.initialize(e,c),t}return null==e&&(e=[]),p(),t={tick:d,restart:function(){return l.restart(f),t},stop:function(){return l.stop(),t},nodes:function(n){return arguments.length?(e=n,p(),s.forEach(h),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(o=+e,t):+o},alphaTarget:function(e){return arguments.length?(i=+e,t):i},velocityDecay:function(e){return arguments.length?(a=1-e,t):1-a},randomSource:function(e){return arguments.length?(c=e,s.forEach(h),t):c},force:function(e,n){return arguments.length>1?(null==n?s.delete(e):s.set(e,h(n)),t):s.get(e)},find:function(t,n,r){var o,i,a,s,l,u=0,c=e.length;for(null==r?r=1/0:r*=r,u=0;u<c;++u)(a=(o=t-(s=e[u]).x)*o+(i=n-s.y)*i)<r&&(l=s,r=a);return l},on:function(e,n){return arguments.length>1?(u.on(e,n),t):u.on(e)}}}function wu(){var e,t,n,r,o,i=ou(-30),a=1,s=1/0,l=.81;function u(n){var o,i=e.length,a=eu(e,gu,vu).visitAfter(f);for(r=n,o=0;o<i;++o)t=e[o],a.visit(d)}function c(){if(e){var t,n,r=e.length;for(o=new Array(r),t=0;t<r;++t)n=e[t],o[n.index]=+i(n,t,e)}}function f(e){var t,n,r,i,a,s=0,l=0;if(e.length){for(r=i=a=0;a<4;++a)(t=e[a])&&(n=Math.abs(t.value))&&(s+=t.value,l+=n,r+=n*t.x,i+=n*t.y);e.x=r/l,e.y=i/l}else{(t=e).x=t.data.x,t.y=t.data.y;do{s+=o[t.data.index]}while(t=t.next)}e.value=s}function d(e,i,u,c){if(!e.value)return!0;var f=e.x-t.x,d=e.y-t.y,p=c-i,h=f*f+d*d;if(p*p/l<h)return h<s&&(0===f&&(h+=(f=iu(n))*f),0===d&&(h+=(d=iu(n))*d),h<a&&(h=Math.sqrt(a*h)),t.vx+=f*e.value*r/h,t.vy+=d*e.value*r/h),!0;if(!(e.length||h>=s)){(e.data!==t||e.next)&&(0===f&&(h+=(f=iu(n))*f),0===d&&(h+=(d=iu(n))*d),h<a&&(h=Math.sqrt(a*h)));do{e.data!==t&&(p=o[e.data.index]*r/h,t.vx+=f*p,t.vy+=d*p)}while(e=e.next)}}return u.initialize=function(t,r){e=t,n=r,c()},u.strength=function(e){return arguments.length?(i="function"===typeof e?e:ou(+e),c(),u):i},u.distanceMin=function(e){return arguments.length?(a=e*e,u):Math.sqrt(a)},u.distanceMax=function(e){return arguments.length?(s=e*e,u):Math.sqrt(s)},u.theta=function(e){return arguments.length?(l=e*e,u):Math.sqrt(l)},u}function _u(e,t,n){var r,o,i,a=ou(.1);function s(e){for(var a=0,s=r.length;a<s;++a){var l=r[a],u=l.x-t||1e-6,c=l.y-n||1e-6,f=Math.sqrt(u*u+c*c),d=(i[a]-f)*o[a]*e/f;l.vx+=u*d,l.vy+=c*d}}function l(){if(r){var t,n=r.length;for(o=new Array(n),i=new Array(n),t=0;t<n;++t)i[t]=+e(r[t],t,r),o[t]=isNaN(i[t])?0:+a(r[t],t,r)}}return"function"!==typeof e&&(e=ou(+e)),null==t&&(t=0),null==n&&(n=0),s.initialize=function(e){r=e,l()},s.strength=function(e){return arguments.length?(a="function"===typeof e?e:ou(+e),l(),s):a},s.radius=function(t){return arguments.length?(e="function"===typeof t?t:ou(+t),l(),s):e},s.x=function(e){return arguments.length?(t=+e,s):t},s.y=function(e){return arguments.length?(n=+e,s):n},s}function xu(e){var t,n,r,o=ou(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vx+=(r[i]-o.x)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!==typeof e&&(e=ou(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"===typeof e?e:ou(+e),a(),i):o},i.x=function(t){return arguments.length?(e="function"===typeof t?t:ou(+t),a(),i):e},i}function Su(e){var t,n,r,o=ou(.1);function i(e){for(var o,i=0,a=t.length;i<a;++i)(o=t[i]).vy+=(r[i]-o.y)*n[i]*e}function a(){if(t){var i,a=t.length;for(n=new Array(a),r=new Array(a),i=0;i<a;++i)n[i]=isNaN(r[i]=+e(t[i],i,t))?0:+o(t[i],i,t)}}return"function"!==typeof e&&(e=ou(null==e?0:+e)),i.initialize=function(e){t=e,a()},i.strength=function(e){return arguments.length?(o="function"===typeof e?e:ou(+e),a(),i):o},i.y=function(t){return arguments.length?(e="function"===typeof t?t:ou(+t),a(),i):e},i}var Ou=n(65386),Cu=n(80028),Eu=n(42035),Au=n(96909),ku=n(87017),Mu=n(63482);class Pu{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const t=this._partials;let n=0;for(let r=0;r<this._n&&r<32;r++){const o=t[r],i=e+o,a=Math.abs(e)<Math.abs(o)?e-(i-o):o-(i-e);a&&(t[n++]=a),e=i}return t[n]=e,this._n=n+1,this}valueOf(){const e=this._partials;let t,n,r,o=this._n,i=0;if(o>0){for(i=e[--o];o>0&&(t=i,n=e[--o],i=t+n,r=n-(i-t),!r););o>0&&(r<0&&e[o-1]<0||r>0&&e[o-1]>0)&&(n=2*r,t=i+n,n==t-i&&(i=t))}return i}}var Ru=1e-6,Tu=1e-12,Iu=Math.PI,Bu=Iu/2,ju=Iu/4,Du=2*Iu,Lu=180/Iu,Zu=Iu/180,Nu=Math.abs,Fu=Math.atan,Hu=Math.atan2,Vu=Math.cos,zu=Math.ceil,Uu=Math.exp,Gu=(Math.floor,Math.hypot),Wu=Math.log,qu=Math.pow,$u=Math.sin,Yu=Math.sign||function(e){return e>0?1:e<0?-1:0},Xu=Math.sqrt,Ku=Math.tan;function Ju(e){return e>1?0:e<-1?Iu:Math.acos(e)}function Qu(e){return e>1?Bu:e<-1?-Bu:Math.asin(e)}function ec(e){return(e=$u(e/2))*e}function tc(){}function nc(e,t){e&&oc.hasOwnProperty(e.type)&&oc[e.type](e,t)}var rc={Feature:function(e,t){nc(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r<o;)nc(n[r].geometry,t)}},oc={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)e=n[r],t.point(e[0],e[1],e[2])},LineString:function(e,t){ic(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)ic(n[r],t,0)},Polygon:function(e,t){ac(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)ac(n[r],t)},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,o=n.length;++r<o;)nc(n[r],t)}};function ic(e,t,n){var r,o=-1,i=e.length-n;for(t.lineStart();++o<i;)r=e[o],t.point(r[0],r[1],r[2]);t.lineEnd()}function ac(e,t){var n=-1,r=e.length;for(t.polygonStart();++n<r;)ic(e[n],t,1);t.polygonEnd()}function sc(e,t){e&&rc.hasOwnProperty(e.type)?rc[e.type](e,t):nc(e,t)}var lc,uc,cc,fc,dc,pc,hc,gc,vc,mc,yc,bc,wc,_c,xc,Sc,Oc=new Pu,Cc=new Pu,Ec={point:tc,lineStart:tc,lineEnd:tc,polygonStart:function(){Oc=new Pu,Ec.lineStart=Ac,Ec.lineEnd=kc},polygonEnd:function(){var e=+Oc;Cc.add(e<0?Du+e:e),this.lineStart=this.lineEnd=this.point=tc},sphere:function(){Cc.add(Du)}};function Ac(){Ec.point=Mc}function kc(){Pc(lc,uc)}function Mc(e,t){Ec.point=Pc,lc=e,uc=t,cc=e*=Zu,fc=Vu(t=(t*=Zu)/2+ju),dc=$u(t)}function Pc(e,t){var n=(e*=Zu)-cc,r=n>=0?1:-1,o=r*n,i=Vu(t=(t*=Zu)/2+ju),a=$u(t),s=dc*a,l=fc*i+s*Vu(o),u=s*r*$u(o);Oc.add(Hu(u,l)),cc=e,fc=i,dc=a}function Rc(e){return Cc=new Pu,sc(e,Ec),2*Cc}function Tc(e){return[Hu(e[1],e[0]),Qu(e[2])]}function Ic(e){var t=e[0],n=e[1],r=Vu(n);return[r*Vu(t),r*$u(t),$u(n)]}function Bc(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function jc(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function Dc(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function Lc(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function Zc(e){var t=Xu(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}var Nc,Fc,Hc,Vc,zc,Uc,Gc,Wc,qc,$c,Yc,Xc,Kc,Jc,Qc,ef,tf={point:nf,lineStart:of,lineEnd:af,polygonStart:function(){tf.point=sf,tf.lineStart=lf,tf.lineEnd=uf,_c=new Pu,Ec.polygonStart()},polygonEnd:function(){Ec.polygonEnd(),tf.point=nf,tf.lineStart=of,tf.lineEnd=af,Oc<0?(pc=-(gc=180),hc=-(vc=90)):_c>Ru?vc=90:_c<-Ru&&(hc=-90),Sc[0]=pc,Sc[1]=gc},sphere:function(){pc=-(gc=180),hc=-(vc=90)}};function nf(e,t){xc.push(Sc=[pc=e,gc=e]),t<hc&&(hc=t),t>vc&&(vc=t)}function rf(e,t){var n=Ic([e*Zu,t*Zu]);if(wc){var r=jc(wc,n),o=jc([r[1],-r[0],0],r);Zc(o),o=Tc(o);var i,a=e-mc,s=a>0?1:-1,l=o[0]*Lu*s,u=Nu(a)>180;u^(s*mc<l&&l<s*e)?(i=o[1]*Lu)>vc&&(vc=i):u^(s*mc<(l=(l+360)%360-180)&&l<s*e)?(i=-o[1]*Lu)<hc&&(hc=i):(t<hc&&(hc=t),t>vc&&(vc=t)),u?e<mc?cf(pc,e)>cf(pc,gc)&&(gc=e):cf(e,gc)>cf(pc,gc)&&(pc=e):gc>=pc?(e<pc&&(pc=e),e>gc&&(gc=e)):e>mc?cf(pc,e)>cf(pc,gc)&&(gc=e):cf(e,gc)>cf(pc,gc)&&(pc=e)}else xc.push(Sc=[pc=e,gc=e]);t<hc&&(hc=t),t>vc&&(vc=t),wc=n,mc=e}function of(){tf.point=rf}function af(){Sc[0]=pc,Sc[1]=gc,tf.point=nf,wc=null}function sf(e,t){if(wc){var n=e-mc;_c.add(Nu(n)>180?n+(n>0?360:-360):n)}else yc=e,bc=t;Ec.point(e,t),rf(e,t)}function lf(){Ec.lineStart()}function uf(){sf(yc,bc),Ec.lineEnd(),Nu(_c)>Ru&&(pc=-(gc=180)),Sc[0]=pc,Sc[1]=gc,wc=null}function cf(e,t){return(t-=e)<0?t+360:t}function ff(e,t){return e[0]-t[0]}function df(e,t){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t<e[0]||e[1]<t}function pf(e){var t,n,r,o,i,a,s;if(vc=gc=-(pc=hc=1/0),xc=[],sc(e,tf),n=xc.length){for(xc.sort(ff),t=1,i=[r=xc[0]];t<n;++t)df(r,(o=xc[t])[0])||df(r,o[1])?(cf(r[0],o[1])>cf(r[0],r[1])&&(r[1]=o[1]),cf(o[0],r[1])>cf(r[0],r[1])&&(r[0]=o[0])):i.push(r=o);for(a=-1/0,t=0,r=i[n=i.length-1];t<=n;r=o,++t)o=i[t],(s=cf(r[1],o[0]))>a&&(a=s,pc=o[0],gc=r[1])}return xc=Sc=null,pc===1/0||hc===1/0?[[NaN,NaN],[NaN,NaN]]:[[pc,hc],[gc,vc]]}var hf={sphere:tc,point:gf,lineStart:mf,lineEnd:wf,polygonStart:function(){hf.lineStart=_f,hf.lineEnd=xf},polygonEnd:function(){hf.lineStart=mf,hf.lineEnd=wf}};function gf(e,t){e*=Zu;var n=Vu(t*=Zu);vf(n*Vu(e),n*$u(e),$u(t))}function vf(e,t,n){++Nc,Hc+=(e-Hc)/Nc,Vc+=(t-Vc)/Nc,zc+=(n-zc)/Nc}function mf(){hf.point=yf}function yf(e,t){e*=Zu;var n=Vu(t*=Zu);Jc=n*Vu(e),Qc=n*$u(e),ef=$u(t),hf.point=bf,vf(Jc,Qc,ef)}function bf(e,t){e*=Zu;var n=Vu(t*=Zu),r=n*Vu(e),o=n*$u(e),i=$u(t),a=Hu(Xu((a=Qc*i-ef*o)*a+(a=ef*r-Jc*i)*a+(a=Jc*o-Qc*r)*a),Jc*r+Qc*o+ef*i);Fc+=a,Uc+=a*(Jc+(Jc=r)),Gc+=a*(Qc+(Qc=o)),Wc+=a*(ef+(ef=i)),vf(Jc,Qc,ef)}function wf(){hf.point=gf}function _f(){hf.point=Sf}function xf(){Of(Xc,Kc),hf.point=gf}function Sf(e,t){Xc=e,Kc=t,e*=Zu,t*=Zu,hf.point=Of;var n=Vu(t);Jc=n*Vu(e),Qc=n*$u(e),ef=$u(t),vf(Jc,Qc,ef)}function Of(e,t){e*=Zu;var n=Vu(t*=Zu),r=n*Vu(e),o=n*$u(e),i=$u(t),a=Qc*i-ef*o,s=ef*r-Jc*i,l=Jc*o-Qc*r,u=Gu(a,s,l),c=Qu(u),f=u&&-c/u;qc.add(f*a),$c.add(f*s),Yc.add(f*l),Fc+=c,Uc+=c*(Jc+(Jc=r)),Gc+=c*(Qc+(Qc=o)),Wc+=c*(ef+(ef=i)),vf(Jc,Qc,ef)}function Cf(e){Nc=Fc=Hc=Vc=zc=Uc=Gc=Wc=0,qc=new Pu,$c=new Pu,Yc=new Pu,sc(e,hf);var t=+qc,n=+$c,r=+Yc,o=Gu(t,n,r);return o<Tu&&(t=Uc,n=Gc,r=Wc,Fc<Ru&&(t=Hc,n=Vc,r=zc),(o=Gu(t,n,r))<Tu)?[NaN,NaN]:[Hu(n,t)*Lu,Qu(r/o)*Lu]}function Ef(e){return function(){return e}}function Af(e,t){function n(n,r){return n=e(n,r),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,r){return(n=t.invert(n,r))&&e.invert(n[0],n[1])}),n}function kf(e,t){return Nu(e)>Iu&&(e-=Math.round(e/Du)*Du),[e,t]}function Mf(e,t,n){return(e%=Du)?t||n?Af(Rf(e),Tf(t,n)):Rf(e):t||n?Tf(t,n):kf}function Pf(e){return function(t,n){return Nu(t+=e)>Iu&&(t-=Math.round(t/Du)*Du),[t,n]}}function Rf(e){var t=Pf(e);return t.invert=Pf(-e),t}function Tf(e,t){var n=Vu(e),r=$u(e),o=Vu(t),i=$u(t);function a(e,t){var a=Vu(t),s=Vu(e)*a,l=$u(e)*a,u=$u(t),c=u*n+s*r;return[Hu(l*o-c*i,s*n-u*r),Qu(c*o+l*i)]}return a.invert=function(e,t){var a=Vu(t),s=Vu(e)*a,l=$u(e)*a,u=$u(t),c=u*o-l*i;return[Hu(l*o+u*i,s*n+c*r),Qu(c*n-s*r)]},a}function If(e){function t(t){return(t=e(t[0]*Zu,t[1]*Zu))[0]*=Lu,t[1]*=Lu,t}return e=Mf(e[0]*Zu,e[1]*Zu,e.length>2?e[2]*Zu:0),t.invert=function(t){return(t=e.invert(t[0]*Zu,t[1]*Zu))[0]*=Lu,t[1]*=Lu,t},t}function Bf(e,t,n,r,o,i){if(n){var a=Vu(t),s=$u(t),l=r*n;null==o?(o=t+r*Du,i=t-l/2):(o=jf(a,o),i=jf(a,i),(r>0?o<i:o>i)&&(o+=r*Du));for(var u,c=o;r>0?c>i:c<i;c-=l)u=Tc([a,-s*Vu(c),-s*$u(c)]),e.point(u[0],u[1])}}function jf(e,t){(t=Ic(t))[0]-=e,Zc(t);var n=Ju(-t[1]);return((-t[2]<0?-n:n)+Du-Ru)%Du}function Df(){var e,t,n=Ef([0,0]),r=Ef(90),o=Ef(6),i={point:function(n,r){e.push(n=t(n,r)),n[0]*=Lu,n[1]*=Lu}};function a(){var a=n.apply(this,arguments),s=r.apply(this,arguments)*Zu,l=o.apply(this,arguments)*Zu;return e=[],t=Mf(-a[0]*Zu,-a[1]*Zu,0).invert,Bf(i,s,l,1),a={type:"Polygon",coordinates:[e]},e=t=null,a}return a.center=function(e){return arguments.length?(n="function"===typeof e?e:Ef([+e[0],+e[1]]),a):n},a.radius=function(e){return arguments.length?(r="function"===typeof e?e:Ef(+e),a):r},a.precision=function(e){return arguments.length?(o="function"===typeof e?e:Ef(+e),a):o},a}function Lf(){var e,t=[];return{point:function(t,n,r){e.push([t,n,r])},lineStart:function(){t.push(e=[])},lineEnd:tc,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Zf(e,t){return Nu(e[0]-t[0])<Ru&&Nu(e[1]-t[1])<Ru}function Nf(e,t,n,r){this.x=e,this.z=t,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function Ff(e,t,n,r,o){var i,a,s=[],l=[];if(e.forEach((function(e){if(!((t=e.length-1)<=0)){var t,n,r=e[0],a=e[t];if(Zf(r,a)){if(!r[2]&&!a[2]){for(o.lineStart(),i=0;i<t;++i)o.point((r=e[i])[0],r[1]);return void o.lineEnd()}a[0]+=2*Ru}s.push(n=new Nf(r,e,null,!0)),l.push(n.o=new Nf(r,null,n,!1)),s.push(n=new Nf(a,e,null,!1)),l.push(n.o=new Nf(a,null,n,!0))}})),s.length){for(l.sort(t),Hf(s),Hf(l),i=0,a=l.length;i<a;++i)l[i].e=n=!n;for(var u,c,f=s[0];;){for(var d=f,p=!0;d.v;)if((d=d.n)===f)return;u=d.z,o.lineStart();do{if(d.v=d.o.v=!0,d.e){if(p)for(i=0,a=u.length;i<a;++i)o.point((c=u[i])[0],c[1]);else r(d.x,d.n.x,1,o);d=d.n}else{if(p)for(u=d.p.z,i=u.length-1;i>=0;--i)o.point((c=u[i])[0],c[1]);else r(d.x,d.p.x,-1,o);d=d.p}u=(d=d.o).z,p=!p}while(!d.v);o.lineEnd()}}}function Hf(e){if(t=e.length){for(var t,n,r=0,o=e[0];++r<t;)o.n=n=e[r],n.p=o,o=n;o.n=n=e[0],n.p=o}}function Vf(e){return Nu(e[0])<=Iu?e[0]:Yu(e[0])*((Nu(e[0])+Iu)%Du-Iu)}function zf(e,t){var n=Vf(t),r=t[1],o=$u(r),i=[$u(n),-Vu(n),0],a=0,s=0,l=new Pu;1===o?r=Bu+Ru:-1===o&&(r=-Bu-Ru);for(var u=0,c=e.length;u<c;++u)if(d=(f=e[u]).length)for(var f,d,p=f[d-1],h=Vf(p),g=p[1]/2+ju,v=$u(g),m=Vu(g),y=0;y<d;++y,h=w,v=x,m=S,p=b){var b=f[y],w=Vf(b),_=b[1]/2+ju,x=$u(_),S=Vu(_),O=w-h,C=O>=0?1:-1,E=C*O,A=E>Iu,k=v*x;if(l.add(Hu(k*C*$u(E),m*S+k*Vu(E))),a+=A?O+C*Du:O,A^h>=n^w>=n){var M=jc(Ic(p),Ic(b));Zc(M);var P=jc(i,M);Zc(P);var R=(A^O>=0?-1:1)*Qu(P[2]);(r>R||r===R&&(M[0]||M[1]))&&(s+=A^O>=0?1:-1)}}return(a<-Ru||a<Ru&&l<-Tu)^1&s}function Uf(e){return Array.from(function*(e){for(const t of e)yield*t}(e))}function Gf(e,t,n,r){return function(o){var i,a,s,l=t(o),u=Lf(),c=t(u),f=!1,d={point:p,lineStart:g,lineEnd:v,polygonStart:function(){d.point=m,d.lineStart=y,d.lineEnd=b,a=[],i=[]},polygonEnd:function(){d.point=p,d.lineStart=g,d.lineEnd=v,a=Uf(a);var e=zf(i,r);a.length?(f||(o.polygonStart(),f=!0),Ff(a,qf,e,n,o)):e&&(f||(o.polygonStart(),f=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),f&&(o.polygonEnd(),f=!1),a=i=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}};function p(t,n){e(t,n)&&o.point(t,n)}function h(e,t){l.point(e,t)}function g(){d.point=h,l.lineStart()}function v(){d.point=p,l.lineEnd()}function m(e,t){s.push([e,t]),c.point(e,t)}function y(){c.lineStart(),s=[]}function b(){m(s[0][0],s[0][1]),c.lineEnd();var e,t,n,r,l=c.clean(),d=u.result(),p=d.length;if(s.pop(),i.push(s),s=null,p)if(1&l){if((t=(n=d[0]).length-1)>0){for(f||(o.polygonStart(),f=!0),o.lineStart(),e=0;e<t;++e)o.point((r=n[e])[0],r[1]);o.lineEnd()}}else p>1&&2&l&&d.push(d.pop().concat(d.shift())),a.push(d.filter(Wf))}return d}}function Wf(e){return e.length>1}function qf(e,t){return((e=e.x)[0]<0?e[1]-Bu-Ru:Bu-e[1])-((t=t.x)[0]<0?t[1]-Bu-Ru:Bu-t[1])}kf.invert=kf;var $f=Gf((function(){return!0}),(function(e){var t,n=NaN,r=NaN,o=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(i,a){var s=i>0?Iu:-Iu,l=Nu(i-n);Nu(l-Iu)<Ru?(e.point(n,r=(r+a)/2>0?Bu:-Bu),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),e.point(i,r),t=0):o!==s&&l>=Iu&&(Nu(n-o)<Ru&&(n-=o*Ru),Nu(i-s)<Ru&&(i-=s*Ru),r=function(e,t,n,r){var o,i,a=$u(e-n);return Nu(a)>Ru?Fu(($u(t)*(i=Vu(r))*$u(n)-$u(r)*(o=Vu(t))*$u(e))/(o*i*a)):(t+r)/2}(n,r,i,a),e.point(o,r),e.lineEnd(),e.lineStart(),e.point(s,r),t=0),e.point(n=i,r=a),o=s},lineEnd:function(){e.lineEnd(),n=r=NaN},clean:function(){return 2-t}}}),(function(e,t,n,r){var o;if(null==e)o=n*Bu,r.point(-Iu,o),r.point(0,o),r.point(Iu,o),r.point(Iu,0),r.point(Iu,-o),r.point(0,-o),r.point(-Iu,-o),r.point(-Iu,0),r.point(-Iu,o);else if(Nu(e[0]-t[0])>Ru){var i=e[0]<t[0]?Iu:-Iu;o=n*i/2,r.point(-i,o),r.point(0,o),r.point(i,o)}else r.point(t[0],t[1])}),[-Iu,-Bu]);function Yf(e){var t=Vu(e),n=6*Zu,r=t>0,o=Nu(t)>Ru;function i(e,n){return Vu(e)*Vu(n)>t}function a(e,n,r){var o=[1,0,0],i=jc(Ic(e),Ic(n)),a=Bc(i,i),s=i[0],l=a-s*s;if(!l)return!r&&e;var u=t*a/l,c=-t*s/l,f=jc(o,i),d=Lc(o,u);Dc(d,Lc(i,c));var p=f,h=Bc(d,p),g=Bc(p,p),v=h*h-g*(Bc(d,d)-1);if(!(v<0)){var m=Xu(v),y=Lc(p,(-h-m)/g);if(Dc(y,d),y=Tc(y),!r)return y;var b,w=e[0],_=n[0],x=e[1],S=n[1];_<w&&(b=w,w=_,_=b);var O=_-w,C=Nu(O-Iu)<Ru;if(!C&&S<x&&(b=x,x=S,S=b),C||O<Ru?C?x+S>0^y[1]<(Nu(y[0]-w)<Ru?x:S):x<=y[1]&&y[1]<=S:O>Iu^(w<=y[0]&&y[0]<=_)){var E=Lc(p,(-h+m)/g);return Dc(E,d),[y,Tc(E)]}}}function s(t,n){var o=r?e:Iu-e,i=0;return t<-o?i|=1:t>o&&(i|=2),n<-o?i|=4:n>o&&(i|=8),i}return Gf(i,(function(e){var t,n,l,u,c;return{lineStart:function(){u=l=!1,c=1},point:function(f,d){var p,h=[f,d],g=i(f,d),v=r?g?0:s(f,d):g?s(f+(f<0?Iu:-Iu),d):0;if(!t&&(u=l=g)&&e.lineStart(),g!==l&&(!(p=a(t,h))||Zf(t,p)||Zf(h,p))&&(h[2]=1),g!==l)c=0,g?(e.lineStart(),p=a(h,t),e.point(p[0],p[1])):(p=a(t,h),e.point(p[0],p[1],2),e.lineEnd()),t=p;else if(o&&t&&r^g){var m;v&n||!(m=a(h,t,!0))||(c=0,r?(e.lineStart(),e.point(m[0][0],m[0][1]),e.point(m[1][0],m[1][1]),e.lineEnd()):(e.point(m[1][0],m[1][1]),e.lineEnd(),e.lineStart(),e.point(m[0][0],m[0][1],3)))}!g||t&&Zf(t,h)||e.point(h[0],h[1]),t=h,l=g,n=v},lineEnd:function(){l&&e.lineEnd(),t=null},clean:function(){return c|(u&&l)<<1}}}),(function(t,r,o,i){Bf(i,e,n,o,t,r)}),r?[0,-e]:[-Iu,e-Iu])}var Xf,Kf,Jf,Qf,ed=1e9,td=-ed;function nd(e,t,n,r){function o(o,i){return e<=o&&o<=n&&t<=i&&i<=r}function i(o,i,s,u){var c=0,f=0;if(null==o||(c=a(o,s))!==(f=a(i,s))||l(o,i)<0^s>0)do{u.point(0===c||3===c?e:n,c>1?r:t)}while((c=(c+s+4)%4)!==f);else u.point(i[0],i[1])}function a(r,o){return Nu(r[0]-e)<Ru?o>0?0:3:Nu(r[0]-n)<Ru?o>0?2:1:Nu(r[1]-t)<Ru?o>0?1:0:o>0?3:2}function s(e,t){return l(e.x,t.x)}function l(e,t){var n=a(e,1),r=a(t,1);return n!==r?n-r:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(a){var l,u,c,f,d,p,h,g,v,m,y,b=a,w=Lf(),_={point:x,lineStart:function(){_.point=S,u&&u.push(c=[]);m=!0,v=!1,h=g=NaN},lineEnd:function(){l&&(S(f,d),p&&v&&w.rejoin(),l.push(w.result()));_.point=x,v&&b.lineEnd()},polygonStart:function(){b=w,l=[],u=[],y=!0},polygonEnd:function(){var t=function(){for(var t=0,n=0,o=u.length;n<o;++n)for(var i,a,s=u[n],l=1,c=s.length,f=s[0],d=f[0],p=f[1];l<c;++l)i=d,a=p,d=(f=s[l])[0],p=f[1],a<=r?p>r&&(d-i)*(r-a)>(p-a)*(e-i)&&++t:p<=r&&(d-i)*(r-a)<(p-a)*(e-i)&&--t;return t}(),n=y&&t,o=(l=Uf(l)).length;(n||o)&&(a.polygonStart(),n&&(a.lineStart(),i(null,null,1,a),a.lineEnd()),o&&Ff(l,s,t,i,a),a.polygonEnd());b=a,l=u=c=null}};function x(e,t){o(e,t)&&b.point(e,t)}function S(i,a){var s=o(i,a);if(u&&c.push([i,a]),m)f=i,d=a,p=s,m=!1,s&&(b.lineStart(),b.point(i,a));else if(s&&v)b.point(i,a);else{var l=[h=Math.max(td,Math.min(ed,h)),g=Math.max(td,Math.min(ed,g))],w=[i=Math.max(td,Math.min(ed,i)),a=Math.max(td,Math.min(ed,a))];!function(e,t,n,r,o,i){var a,s=e[0],l=e[1],u=0,c=1,f=t[0]-s,d=t[1]-l;if(a=n-s,f||!(a>0)){if(a/=f,f<0){if(a<u)return;a<c&&(c=a)}else if(f>0){if(a>c)return;a>u&&(u=a)}if(a=o-s,f||!(a<0)){if(a/=f,f<0){if(a>c)return;a>u&&(u=a)}else if(f>0){if(a<u)return;a<c&&(c=a)}if(a=r-l,d||!(a>0)){if(a/=d,d<0){if(a<u)return;a<c&&(c=a)}else if(d>0){if(a>c)return;a>u&&(u=a)}if(a=i-l,d||!(a<0)){if(a/=d,d<0){if(a>c)return;a>u&&(u=a)}else if(d>0){if(a<u)return;a<c&&(c=a)}return u>0&&(e[0]=s+u*f,e[1]=l+u*d),c<1&&(t[0]=s+c*f,t[1]=l+c*d),!0}}}}}(l,w,e,t,n,r)?s&&(b.lineStart(),b.point(i,a),y=!1):(v||(b.lineStart(),b.point(l[0],l[1])),b.point(w[0],w[1]),s||b.lineEnd(),y=!1)}h=i,g=a,v=s}return _}}function rd(){var e,t,n,r=0,o=0,i=960,a=500;return n={stream:function(n){return e&&t===n?e:e=nd(r,o,i,a)(t=n)},extent:function(s){return arguments.length?(r=+s[0][0],o=+s[0][1],i=+s[1][0],a=+s[1][1],e=t=null,n):[[r,o],[i,a]]}}}var od={sphere:tc,point:tc,lineStart:function(){od.point=ad,od.lineEnd=id},lineEnd:tc,polygonStart:tc,polygonEnd:tc};function id(){od.point=od.lineEnd=tc}function ad(e,t){Kf=e*=Zu,Jf=$u(t*=Zu),Qf=Vu(t),od.point=sd}function sd(e,t){e*=Zu;var n=$u(t*=Zu),r=Vu(t),o=Nu(e-Kf),i=Vu(o),a=r*$u(o),s=Qf*n-Jf*r*i,l=Jf*n+Qf*r*i;Xf.add(Hu(Xu(a*a+s*s),l)),Kf=e,Jf=n,Qf=r}function ld(e){return Xf=new Pu,sc(e,od),+Xf}var ud=[null,null],cd={type:"LineString",coordinates:ud};function fd(e,t){return ud[0]=e,ud[1]=t,ld(cd)}var dd={Feature:function(e,t){return hd(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,r=-1,o=n.length;++r<o;)if(hd(n[r].geometry,t))return!0;return!1}},pd={Sphere:function(){return!0},Point:function(e,t){return gd(e.coordinates,t)},MultiPoint:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(gd(n[r],t))return!0;return!1},LineString:function(e,t){return vd(e.coordinates,t)},MultiLineString:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(vd(n[r],t))return!0;return!1},Polygon:function(e,t){return md(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,r=-1,o=n.length;++r<o;)if(md(n[r],t))return!0;return!1},GeometryCollection:function(e,t){for(var n=e.geometries,r=-1,o=n.length;++r<o;)if(hd(n[r],t))return!0;return!1}};function hd(e,t){return!(!e||!pd.hasOwnProperty(e.type))&&pd[e.type](e,t)}function gd(e,t){return 0===fd(e,t)}function vd(e,t){for(var n,r,o,i=0,a=e.length;i<a;i++){if(0===(r=fd(e[i],t)))return!0;if(i>0&&(o=fd(e[i],e[i-1]))>0&&n<=o&&r<=o&&(n+r-o)*(1-Math.pow((n-r)/o,2))<Tu*o)return!0;n=r}return!1}function md(e,t){return!!zf(e.map(yd),bd(t))}function yd(e){return(e=e.map(bd)).pop(),e}function bd(e){return[e[0]*Zu,e[1]*Zu]}function wd(e,t){return(e&&dd.hasOwnProperty(e.type)?dd[e.type]:hd)(e,t)}function _d(e,t,n){e=+e,t=+t,n=(o=arguments.length)<2?(t=e,e=0,1):o<3?1:+n;for(var r=-1,o=0|Math.max(0,Math.ceil((t-e)/n)),i=new Array(o);++r<o;)i[r]=e+r*n;return i}function xd(e,t,n){var r=_d(e,t-Ru,n).concat(t);return function(e){return r.map((function(t){return[e,t]}))}}function Sd(e,t,n){var r=_d(e,t-Ru,n).concat(t);return function(e){return r.map((function(t){return[t,e]}))}}function Od(){var e,t,n,r,o,i,a,s,l,u,c,f,d=10,p=d,h=90,g=360,v=2.5;function m(){return{type:"MultiLineString",coordinates:y()}}function y(){return _d(zu(r/h)*h,n,h).map(c).concat(_d(zu(s/g)*g,a,g).map(f)).concat(_d(zu(t/d)*d,e,d).filter((function(e){return Nu(e%h)>Ru})).map(l)).concat(_d(zu(i/p)*p,o,p).filter((function(e){return Nu(e%g)>Ru})).map(u))}return m.lines=function(){return y().map((function(e){return{type:"LineString",coordinates:e}}))},m.outline=function(){return{type:"Polygon",coordinates:[c(r).concat(f(a).slice(1),c(n).reverse().slice(1),f(s).reverse().slice(1))]}},m.extent=function(e){return arguments.length?m.extentMajor(e).extentMinor(e):m.extentMinor()},m.extentMajor=function(e){return arguments.length?(r=+e[0][0],n=+e[1][0],s=+e[0][1],a=+e[1][1],r>n&&(e=r,r=n,n=e),s>a&&(e=s,s=a,a=e),m.precision(v)):[[r,s],[n,a]]},m.extentMinor=function(n){return arguments.length?(t=+n[0][0],e=+n[1][0],i=+n[0][1],o=+n[1][1],t>e&&(n=t,t=e,e=n),i>o&&(n=i,i=o,o=n),m.precision(v)):[[t,i],[e,o]]},m.step=function(e){return arguments.length?m.stepMajor(e).stepMinor(e):m.stepMinor()},m.stepMajor=function(e){return arguments.length?(h=+e[0],g=+e[1],m):[h,g]},m.stepMinor=function(e){return arguments.length?(d=+e[0],p=+e[1],m):[d,p]},m.precision=function(d){return arguments.length?(v=+d,l=xd(i,o,90),u=Sd(t,e,v),c=xd(s,a,90),f=Sd(r,n,v),m):v},m.extentMajor([[-180,-90+Ru],[180,90-Ru]]).extentMinor([[-180,-80-Ru],[180,80+Ru]])}function Cd(){return Od()()}function Ed(e,t){var n=e[0]*Zu,r=e[1]*Zu,o=t[0]*Zu,i=t[1]*Zu,a=Vu(r),s=$u(r),l=Vu(i),u=$u(i),c=a*Vu(n),f=a*$u(n),d=l*Vu(o),p=l*$u(o),h=2*Qu(Xu(ec(i-r)+a*l*ec(o-n))),g=$u(h),v=h?function(e){var t=$u(e*=h)/g,n=$u(h-e)/g,r=n*c+t*d,o=n*f+t*p,i=n*s+t*u;return[Hu(o,r)*Lu,Hu(i,Xu(r*r+o*o))*Lu]}:function(){return[n*Lu,r*Lu]};return v.distance=h,v}var Ad,kd,Md,Pd,Rd=e=>e,Td=new Pu,Id=new Pu,Bd={point:tc,lineStart:tc,lineEnd:tc,polygonStart:function(){Bd.lineStart=jd,Bd.lineEnd=Zd},polygonEnd:function(){Bd.lineStart=Bd.lineEnd=Bd.point=tc,Td.add(Nu(Id)),Id=new Pu},result:function(){var e=Td/2;return Td=new Pu,e}};function jd(){Bd.point=Dd}function Dd(e,t){Bd.point=Ld,Ad=Md=e,kd=Pd=t}function Ld(e,t){Id.add(Pd*e-Md*t),Md=e,Pd=t}function Zd(){Ld(Ad,kd)}var Nd=Bd,Fd=1/0,Hd=Fd,Vd=-Fd,zd=Vd,Ud={point:function(e,t){e<Fd&&(Fd=e);e>Vd&&(Vd=e);t<Hd&&(Hd=t);t>zd&&(zd=t)},lineStart:tc,lineEnd:tc,polygonStart:tc,polygonEnd:tc,result:function(){var e=[[Fd,Hd],[Vd,zd]];return Vd=zd=-(Hd=Fd=1/0),e}};var Gd,Wd,qd,$d,Yd=Ud,Xd=0,Kd=0,Jd=0,Qd=0,ep=0,tp=0,np=0,rp=0,op=0,ip={point:ap,lineStart:sp,lineEnd:cp,polygonStart:function(){ip.lineStart=fp,ip.lineEnd=dp},polygonEnd:function(){ip.point=ap,ip.lineStart=sp,ip.lineEnd=cp},result:function(){var e=op?[np/op,rp/op]:tp?[Qd/tp,ep/tp]:Jd?[Xd/Jd,Kd/Jd]:[NaN,NaN];return Xd=Kd=Jd=Qd=ep=tp=np=rp=op=0,e}};function ap(e,t){Xd+=e,Kd+=t,++Jd}function sp(){ip.point=lp}function lp(e,t){ip.point=up,ap(qd=e,$d=t)}function up(e,t){var n=e-qd,r=t-$d,o=Xu(n*n+r*r);Qd+=o*(qd+e)/2,ep+=o*($d+t)/2,tp+=o,ap(qd=e,$d=t)}function cp(){ip.point=ap}function fp(){ip.point=pp}function dp(){hp(Gd,Wd)}function pp(e,t){ip.point=hp,ap(Gd=qd=e,Wd=$d=t)}function hp(e,t){var n=e-qd,r=t-$d,o=Xu(n*n+r*r);Qd+=o*(qd+e)/2,ep+=o*($d+t)/2,tp+=o,np+=(o=$d*e-qd*t)*(qd+e),rp+=o*($d+t),op+=3*o,ap(qd=e,$d=t)}var gp=ip;function vp(e){this._context=e}vp.prototype={_radius:4.5,pointRadius:function(e){return this._radius=e,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(e,t){switch(this._point){case 0:this._context.moveTo(e,t),this._point=1;break;case 1:this._context.lineTo(e,t);break;default:this._context.moveTo(e+this._radius,t),this._context.arc(e,t,this._radius,0,Du)}},result:tc};var mp,yp,bp,wp,_p,xp=new Pu,Sp={point:tc,lineStart:function(){Sp.point=Op},lineEnd:function(){mp&&Cp(yp,bp),Sp.point=tc},polygonStart:function(){mp=!0},polygonEnd:function(){mp=null},result:function(){var e=+xp;return xp=new Pu,e}};function Op(e,t){Sp.point=Cp,yp=wp=e,bp=_p=t}function Cp(e,t){wp-=e,_p-=t,xp.add(Xu(wp*wp+_p*_p)),wp=e,_p=t}var Ep=Sp;let Ap,kp,Mp,Pp;class Rp{constructor(e){this._append=null==e?Tp:function(e){const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);if(t>15)return Tp;if(t!==Ap){const e=10**t;Ap=t,kp=function(t){let n=1;this._+=t[0];for(const r=t.length;n<r;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}return kp}(e),this._radius=4.5,this._=""}pointRadius(e){return this._radius=+e,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(e,t){switch(this._point){case 0:this._append`M${e},${t}`,this._point=1;break;case 1:this._append`L${e},${t}`;break;default:if(this._append`M${e},${t}`,this._radius!==Mp||this._append!==kp){const e=this._radius,t=this._;this._="",this._append`m0,${e}a${e},${e} 0 1,1 0,${-2*e}a${e},${e} 0 1,1 0,${2*e}z`,Mp=e,kp=this._append,Pp=this._,this._=t}this._+=Pp}}result(){const e=this._;return this._="",e.length?e:null}}function Tp(e){let t=1;this._+=e[0];for(const n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function Ip(e,t){let n,r,o=3,i=4.5;function a(e){return e&&("function"===typeof i&&r.pointRadius(+i.apply(this,arguments)),sc(e,n(r))),r.result()}return a.area=function(e){return sc(e,n(Nd)),Nd.result()},a.measure=function(e){return sc(e,n(Ep)),Ep.result()},a.bounds=function(e){return sc(e,n(Yd)),Yd.result()},a.centroid=function(e){return sc(e,n(gp)),gp.result()},a.projection=function(t){return arguments.length?(n=null==t?(e=null,Rd):(e=t).stream,a):e},a.context=function(e){return arguments.length?(r=null==e?(t=null,new Rp(o)):new vp(t=e),"function"!==typeof i&&r.pointRadius(i),a):t},a.pointRadius=function(e){return arguments.length?(i="function"===typeof e?e:(r.pointRadius(+e),+e),a):i},a.digits=function(e){if(!arguments.length)return o;if(null==e)o=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);o=t}return null===t&&(r=new Rp(o)),a},a.projection(e).digits(o).context(t)}function Bp(e){return{stream:jp(e)}}function jp(e){return function(t){var n=new Dp;for(var r in e)n[r]=e[r];return n.stream=t,n}}function Dp(){}function Lp(e,t,n){var r=e.clipExtent&&e.clipExtent();return e.scale(150).translate([0,0]),null!=r&&e.clipExtent(null),sc(n,e.stream(Yd)),t(Yd.result()),null!=r&&e.clipExtent(r),e}function Zp(e,t,n){return Lp(e,(function(n){var r=t[1][0]-t[0][0],o=t[1][1]-t[0][1],i=Math.min(r/(n[1][0]-n[0][0]),o/(n[1][1]-n[0][1])),a=+t[0][0]+(r-i*(n[1][0]+n[0][0]))/2,s=+t[0][1]+(o-i*(n[1][1]+n[0][1]))/2;e.scale(150*i).translate([a,s])}),n)}function Np(e,t,n){return Zp(e,[[0,0],t],n)}function Fp(e,t,n){return Lp(e,(function(n){var r=+t,o=r/(n[1][0]-n[0][0]),i=(r-o*(n[1][0]+n[0][0]))/2,a=-o*n[0][1];e.scale(150*o).translate([i,a])}),n)}function Hp(e,t,n){return Lp(e,(function(n){var r=+t,o=r/(n[1][1]-n[0][1]),i=-o*n[0][0],a=(r-o*(n[1][1]+n[0][1]))/2;e.scale(150*o).translate([i,a])}),n)}Dp.prototype={constructor:Dp,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Vp=16,zp=Vu(30*Zu);function Up(e,t){return+t?function(e,t){function n(r,o,i,a,s,l,u,c,f,d,p,h,g,v){var m=u-r,y=c-o,b=m*m+y*y;if(b>4*t&&g--){var w=a+d,_=s+p,x=l+h,S=Xu(w*w+_*_+x*x),O=Qu(x/=S),C=Nu(Nu(x)-1)<Ru||Nu(i-f)<Ru?(i+f)/2:Hu(_,w),E=e(C,O),A=E[0],k=E[1],M=A-r,P=k-o,R=y*M-m*P;(R*R/b>t||Nu((m*M+y*P)/b-.5)>.3||a*d+s*p+l*h<zp)&&(n(r,o,i,a,s,l,A,k,C,w/=S,_/=S,x,g,v),v.point(A,k),n(A,k,C,w,_,x,u,c,f,d,p,h,g,v))}}return function(t){var r,o,i,a,s,l,u,c,f,d,p,h,g={point:v,lineStart:m,lineEnd:b,polygonStart:function(){t.polygonStart(),g.lineStart=w},polygonEnd:function(){t.polygonEnd(),g.lineStart=m}};function v(n,r){n=e(n,r),t.point(n[0],n[1])}function m(){c=NaN,g.point=y,t.lineStart()}function y(r,o){var i=Ic([r,o]),a=e(r,o);n(c,f,u,d,p,h,c=a[0],f=a[1],u=r,d=i[0],p=i[1],h=i[2],Vp,t),t.point(c,f)}function b(){g.point=v,t.lineEnd()}function w(){m(),g.point=_,g.lineEnd=x}function _(e,t){y(r=e,t),o=c,i=f,a=d,s=p,l=h,g.point=y}function x(){n(c,f,u,d,p,h,o,i,r,a,s,l,Vp,t),g.lineEnd=b,b()}return g}}(e,t):function(e){return jp({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}(e)}var Gp=jp({point:function(e,t){this.stream.point(e*Zu,t*Zu)}});function Wp(e,t,n,r,o,i){if(!i)return function(e,t,n,r,o){function i(i,a){return[t+e*(i*=r),n-e*(a*=o)]}return i.invert=function(i,a){return[(i-t)/e*r,(n-a)/e*o]},i}(e,t,n,r,o);var a=Vu(i),s=$u(i),l=a*e,u=s*e,c=a/e,f=s/e,d=(s*n-a*t)/e,p=(s*t+a*n)/e;function h(e,i){return[l*(e*=r)-u*(i*=o)+t,n-u*e-l*i]}return h.invert=function(e,t){return[r*(c*e-f*t+d),o*(p-f*e-c*t)]},h}function qp(e){return $p((function(){return e}))()}function $p(e){var t,n,r,o,i,a,s,l,u,c,f=150,d=480,p=250,h=0,g=0,v=0,m=0,y=0,b=0,w=1,_=1,x=null,S=$f,O=null,C=Rd,E=.5;function A(e){return l(e[0]*Zu,e[1]*Zu)}function k(e){return(e=l.invert(e[0],e[1]))&&[e[0]*Lu,e[1]*Lu]}function M(){var e=Wp(f,0,0,w,_,b).apply(null,t(h,g)),r=Wp(f,d-e[0],p-e[1],w,_,b);return n=Mf(v,m,y),s=Af(t,r),l=Af(n,s),a=Up(s,E),P()}function P(){return u=c=null,A}return A.stream=function(e){return u&&c===e?u:u=Gp(function(e){return jp({point:function(t,n){var r=e(t,n);return this.stream.point(r[0],r[1])}})}(n)(S(a(C(c=e)))))},A.preclip=function(e){return arguments.length?(S=e,x=void 0,P()):S},A.postclip=function(e){return arguments.length?(C=e,O=r=o=i=null,P()):C},A.clipAngle=function(e){return arguments.length?(S=+e?Yf(x=e*Zu):(x=null,$f),P()):x*Lu},A.clipExtent=function(e){return arguments.length?(C=null==e?(O=r=o=i=null,Rd):nd(O=+e[0][0],r=+e[0][1],o=+e[1][0],i=+e[1][1]),P()):null==O?null:[[O,r],[o,i]]},A.scale=function(e){return arguments.length?(f=+e,M()):f},A.translate=function(e){return arguments.length?(d=+e[0],p=+e[1],M()):[d,p]},A.center=function(e){return arguments.length?(h=e[0]%360*Zu,g=e[1]%360*Zu,M()):[h*Lu,g*Lu]},A.rotate=function(e){return arguments.length?(v=e[0]%360*Zu,m=e[1]%360*Zu,y=e.length>2?e[2]%360*Zu:0,M()):[v*Lu,m*Lu,y*Lu]},A.angle=function(e){return arguments.length?(b=e%360*Zu,M()):b*Lu},A.reflectX=function(e){return arguments.length?(w=e?-1:1,M()):w<0},A.reflectY=function(e){return arguments.length?(_=e?-1:1,M()):_<0},A.precision=function(e){return arguments.length?(a=Up(s,E=e*e),P()):Xu(E)},A.fitExtent=function(e,t){return Zp(A,e,t)},A.fitSize=function(e,t){return Np(A,e,t)},A.fitWidth=function(e,t){return Fp(A,e,t)},A.fitHeight=function(e,t){return Hp(A,e,t)},function(){return t=e.apply(this,arguments),A.invert=t.invert&&k,M()}}function Yp(e){var t=0,n=Iu/3,r=$p(e),o=r(t,n);return o.parallels=function(e){return arguments.length?r(t=e[0]*Zu,n=e[1]*Zu):[t*Lu,n*Lu]},o}function Xp(e,t){var n=$u(e),r=(n+$u(t))/2;if(Nu(r)<Ru)return function(e){var t=Vu(e);function n(e,n){return[e*t,$u(n)/t]}return n.invert=function(e,n){return[e/t,Qu(n*t)]},n}(e);var o=1+n*(2*r-n),i=Xu(o)/r;function a(e,t){var n=Xu(o-2*r*$u(t))/r;return[n*$u(e*=r),i-n*Vu(e)]}return a.invert=function(e,t){var n=i-t,a=Hu(e,Nu(n))*Yu(n);return n*r<0&&(a-=Iu*Yu(e)*Yu(n)),[a/r,Qu((o-(e*e+n*n)*r*r)/(2*r))]},a}function Kp(){return Yp(Xp).scale(155.424).center([0,33.6442])}function Jp(){return Kp().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Qp(){var e,t,n,r,o,i,a=Jp(),s=Kp().rotate([154,0]).center([-2,58.5]).parallels([55,65]),l=Kp().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u={point:function(e,t){i=[e,t]}};function c(e){var t=e[0],a=e[1];return i=null,n.point(t,a),i||(r.point(t,a),i)||(o.point(t,a),i)}function f(){return e=t=null,c}return c.invert=function(e){var t=a.scale(),n=a.translate(),r=(e[0]-n[0])/t,o=(e[1]-n[1])/t;return(o>=.12&&o<.234&&r>=-.425&&r<-.214?s:o>=.166&&o<.234&&r>=-.214&&r<-.115?l:a).invert(e)},c.stream=function(n){return e&&t===n?e:e=function(e){var t=e.length;return{point:function(n,r){for(var o=-1;++o<t;)e[o].point(n,r)},sphere:function(){for(var n=-1;++n<t;)e[n].sphere()},lineStart:function(){for(var n=-1;++n<t;)e[n].lineStart()},lineEnd:function(){for(var n=-1;++n<t;)e[n].lineEnd()},polygonStart:function(){for(var n=-1;++n<t;)e[n].polygonStart()},polygonEnd:function(){for(var n=-1;++n<t;)e[n].polygonEnd()}}}([a.stream(t=n),s.stream(n),l.stream(n)])},c.precision=function(e){return arguments.length?(a.precision(e),s.precision(e),l.precision(e),f()):a.precision()},c.scale=function(e){return arguments.length?(a.scale(e),s.scale(.35*e),l.scale(e),c.translate(a.translate())):a.scale()},c.translate=function(e){if(!arguments.length)return a.translate();var t=a.scale(),i=+e[0],c=+e[1];return n=a.translate(e).clipExtent([[i-.455*t,c-.238*t],[i+.455*t,c+.238*t]]).stream(u),r=s.translate([i-.307*t,c+.201*t]).clipExtent([[i-.425*t+Ru,c+.12*t+Ru],[i-.214*t-Ru,c+.234*t-Ru]]).stream(u),o=l.translate([i-.205*t,c+.212*t]).clipExtent([[i-.214*t+Ru,c+.166*t+Ru],[i-.115*t-Ru,c+.234*t-Ru]]).stream(u),f()},c.fitExtent=function(e,t){return Zp(c,e,t)},c.fitSize=function(e,t){return Np(c,e,t)},c.fitWidth=function(e,t){return Fp(c,e,t)},c.fitHeight=function(e,t){return Hp(c,e,t)},c.scale(1070)}function eh(e){return function(t,n){var r=Vu(t),o=Vu(n),i=e(r*o);return i===1/0?[2,0]:[i*o*$u(t),i*$u(n)]}}function th(e){return function(t,n){var r=Xu(t*t+n*n),o=e(r),i=$u(o),a=Vu(o);return[Hu(t*i,r*a),Qu(r&&n*i/r)]}}var nh=eh((function(e){return Xu(2/(1+e))}));function rh(){return qp(nh).scale(124.75).clipAngle(179.999)}nh.invert=th((function(e){return 2*Qu(e/2)}));var oh=eh((function(e){return(e=Ju(e))&&e/$u(e)}));function ih(){return qp(oh).scale(79.4188).clipAngle(179.999)}function ah(e,t){return[e,Wu(Ku((Bu+t)/2))]}function sh(){return lh(ah).scale(961/Du)}function lh(e){var t,n,r,o=qp(e),i=o.center,a=o.scale,s=o.translate,l=o.clipExtent,u=null;function c(){var i=Iu*a(),s=o(If(o.rotate()).invert([0,0]));return l(null==u?[[s[0]-i,s[1]-i],[s[0]+i,s[1]+i]]:e===ah?[[Math.max(s[0]-i,u),t],[Math.min(s[0]+i,n),r]]:[[u,Math.max(s[1]-i,t)],[n,Math.min(s[1]+i,r)]])}return o.scale=function(e){return arguments.length?(a(e),c()):a()},o.translate=function(e){return arguments.length?(s(e),c()):s()},o.center=function(e){return arguments.length?(i(e),c()):i()},o.clipExtent=function(e){return arguments.length?(null==e?u=t=n=r=null:(u=+e[0][0],t=+e[0][1],n=+e[1][0],r=+e[1][1]),c()):null==u?null:[[u,t],[n,r]]},c()}function uh(e){return Ku((Bu+e)/2)}function ch(e,t){var n=Vu(e),r=e===t?$u(e):Wu(n/Vu(t))/Wu(uh(t)/uh(e)),o=n*qu(uh(e),r)/r;if(!r)return ah;function i(e,t){o>0?t<-Bu+Ru&&(t=-Bu+Ru):t>Bu-Ru&&(t=Bu-Ru);var n=o/qu(uh(t),r);return[n*$u(r*e),o-n*Vu(r*e)]}return i.invert=function(e,t){var n=o-t,i=Yu(r)*Xu(e*e+n*n),a=Hu(e,Nu(n))*Yu(n);return n*r<0&&(a-=Iu*Yu(e)*Yu(n)),[a/r,2*Fu(qu(o/i,1/r))-Bu]},i}function fh(){return Yp(ch).scale(109.5).parallels([30,30])}function dh(e,t){return[e,t]}function ph(){return qp(dh).scale(152.63)}function hh(e,t){var n=Vu(e),r=e===t?$u(e):(n-Vu(t))/(t-e),o=n/r+e;if(Nu(r)<Ru)return dh;function i(e,t){var n=o-t,i=r*e;return[n*$u(i),o-n*Vu(i)]}return i.invert=function(e,t){var n=o-t,i=Hu(e,Nu(n))*Yu(n);return n*r<0&&(i-=Iu*Yu(e)*Yu(n)),[i/r,o-Yu(r)*Xu(e*e+n*n)]},i}function gh(){return Yp(hh).scale(131.154).center([0,13.9389])}oh.invert=th((function(e){return e})),ah.invert=function(e,t){return[e,2*Fu(Uu(t))-Bu]},dh.invert=dh;var vh=1.340264,mh=-.081106,yh=893e-6,bh=.003796,wh=Xu(3)/2;function _h(e,t){var n=Qu(wh*$u(t)),r=n*n,o=r*r*r;return[e*Vu(n)/(wh*(vh+3*mh*r+o*(7*yh+9*bh*r))),n*(vh+mh*r+o*(yh+bh*r))]}function xh(){return qp(_h).scale(177.158)}function Sh(e,t){var n=Vu(t),r=Vu(e)*n;return[n*$u(e)/r,$u(t)/r]}function Oh(){return qp(Sh).scale(144.049).clipAngle(60)}function Ch(){var e,t,n,r,o,i,a,s=1,l=0,u=0,c=1,f=1,d=0,p=null,h=1,g=1,v=jp({point:function(e,t){var n=b([e,t]);this.stream.point(n[0],n[1])}}),m=Rd;function y(){return h=s*c,g=s*f,i=a=null,b}function b(n){var r=n[0]*h,o=n[1]*g;if(d){var i=o*e-r*t;r=r*e+o*t,o=i}return[r+l,o+u]}return b.invert=function(n){var r=n[0]-l,o=n[1]-u;if(d){var i=o*e+r*t;r=r*e-o*t,o=i}return[r/h,o/g]},b.stream=function(e){return i&&a===e?i:i=v(m(a=e))},b.postclip=function(e){return arguments.length?(m=e,p=n=r=o=null,y()):m},b.clipExtent=function(e){return arguments.length?(m=null==e?(p=n=r=o=null,Rd):nd(p=+e[0][0],n=+e[0][1],r=+e[1][0],o=+e[1][1]),y()):null==p?null:[[p,n],[r,o]]},b.scale=function(e){return arguments.length?(s=+e,y()):s},b.translate=function(e){return arguments.length?(l=+e[0],u=+e[1],y()):[l,u]},b.angle=function(n){return arguments.length?(t=$u(d=n%360*Zu),e=Vu(d),y()):d*Lu},b.reflectX=function(e){return arguments.length?(c=e?-1:1,y()):c<0},b.reflectY=function(e){return arguments.length?(f=e?-1:1,y()):f<0},b.fitExtent=function(e,t){return Zp(b,e,t)},b.fitSize=function(e,t){return Np(b,e,t)},b.fitWidth=function(e,t){return Fp(b,e,t)},b.fitHeight=function(e,t){return Hp(b,e,t)},b}function Eh(e,t){var n=t*t,r=n*n;return[e*(.8707-.131979*n+r*(r*(.003971*n-.001529*r)-.013791)),t*(1.007226+n*(.015085+r*(.028874*n-.044475-.005916*r)))]}function Ah(){return qp(Eh).scale(175.295)}function kh(e,t){return[Vu(t)*$u(e),$u(t)]}function Mh(){return qp(kh).scale(249.5).clipAngle(90+Ru)}function Ph(e,t){var n=Vu(t),r=1+Vu(e)*n;return[n*$u(e)/r,$u(t)/r]}function Rh(){return qp(Ph).scale(250).clipAngle(142)}function Th(e,t){return[Wu(Ku((Bu+t)/2)),-e]}function Ih(){var e=lh(Th),t=e.center,n=e.rotate;return e.center=function(e){return arguments.length?t([-e[1],e[0]]):[(e=t())[1],-e[0]]},e.rotate=function(e){return arguments.length?n([e[0],e[1],e.length>2?e[2]+90:90]):[(e=n())[0],e[1],e[2]-90]},n([0,0,90]).scale(159.155)}function Bh(e,t){return e.parent===t.parent?1:2}function jh(e,t){return e+t.x}function Dh(e,t){return Math.max(e,t.y)}function Lh(){var e=Bh,t=1,n=1,r=!1;function o(o){var i,a=0;o.eachAfter((function(t){var n=t.children;n?(t.x=function(e){return e.reduce(jh,0)/e.length}(n),t.y=function(e){return 1+e.reduce(Dh,0)}(n)):(t.x=i?a+=e(t,i):0,t.y=0,i=t)}));var s=function(e){for(var t;t=e.children;)e=t[0];return e}(o),l=function(e){for(var t;t=e.children;)e=t[t.length-1];return e}(o),u=s.x-e(s,l)/2,c=l.x+e(l,s)/2;return o.eachAfter(r?function(e){e.x=(e.x-o.x)*t,e.y=(o.y-e.y)*n}:function(e){e.x=(e.x-u)/(c-u)*t,e.y=(1-(o.y?e.y/o.y:1))*n})}return o.separation=function(t){return arguments.length?(e=t,o):e},o.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],o):r?null:[t,n]},o.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],o):r?[t,n]:null},o}function Zh(e){var t=0,n=e.children,r=n&&n.length;if(r)for(;--r>=0;)t+=n[r].value;else t=1;e.value=t}function Nh(e,t){e instanceof Map?(e=[void 0,e],void 0===t&&(t=Hh)):void 0===t&&(t=Fh);for(var n,r,o,i,a,s=new Uh(e),l=[s];n=l.pop();)if((o=t(n.data))&&(a=(o=Array.from(o)).length))for(n.children=o,i=a-1;i>=0;--i)l.push(r=o[i]=new Uh(o[i])),r.parent=n,r.depth=n.depth+1;return s.eachBefore(zh)}function Fh(e){return e.children}function Hh(e){return Array.isArray(e)?e[1]:null}function Vh(e){void 0!==e.data.value&&(e.value=e.data.value),e.data=e.data.data}function zh(e){var t=0;do{e.height=t}while((e=e.parent)&&e.height<++t)}function Uh(e){this.data=e,this.depth=this.height=0,this.parent=null}function Gh(e){return null==e?null:Wh(e)}function Wh(e){if("function"!==typeof e)throw new Error;return e}function qh(){return 0}function $h(e){return function(){return e}}_h.invert=function(e,t){for(var n,r=t,o=r*r,i=o*o*o,a=0;a<12&&(i=(o=(r-=n=(r*(vh+mh*o+i*(yh+bh*o))-t)/(vh+3*mh*o+i*(7*yh+9*bh*o)))*r)*o*o,!(Nu(n)<Tu));++a);return[wh*e*(vh+3*mh*o+i*(7*yh+9*bh*o))/Vu(r),Qu($u(r)/wh)]},Sh.invert=th(Fu),Eh.invert=function(e,t){var n,r=t,o=25;do{var i=r*r,a=i*i;r-=n=(r*(1.007226+i*(.015085+a*(.028874*i-.044475-.005916*a)))-t)/(1.007226+i*(.045255+a*(.259866*i-.311325-.005916*11*a)))}while(Nu(n)>Ru&&--o>0);return[e/(.8707+(i=r*r)*(i*(i*i*i*(.003971-.001529*i)-.013791)-.131979)),r]},kh.invert=th(Qu),Ph.invert=th((function(e){return 2*Fu(e)})),Th.invert=function(e,t){return[-t,2*Fu(Uu(e))-Bu]},Uh.prototype=Nh.prototype={constructor:Uh,count:function(){return this.eachAfter(Zh)},each:function(e,t){let n=-1;for(const r of this)e.call(t,r,++n,this);return this},eachAfter:function(e,t){for(var n,r,o,i=this,a=[i],s=[],l=-1;i=a.pop();)if(s.push(i),n=i.children)for(r=0,o=n.length;r<o;++r)a.push(n[r]);for(;i=s.pop();)e.call(t,i,++l,this);return this},eachBefore:function(e,t){for(var n,r,o=this,i=[o],a=-1;o=i.pop();)if(e.call(t,o,++a,this),n=o.children)for(r=n.length-1;r>=0;--r)i.push(n[r]);return this},find:function(e,t){let n=-1;for(const r of this)if(e.call(t,r,++n,this))return r},sum:function(e){return this.eachAfter((function(t){for(var n=+e(t.data)||0,r=t.children,o=r&&r.length;--o>=0;)n+=r[o].value;t.value=n}))},sort:function(e){return this.eachBefore((function(t){t.children&&t.children.sort(e)}))},path:function(e){for(var t=this,n=function(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),o=null;e=n.pop(),t=r.pop();for(;e===t;)o=e,e=n.pop(),t=r.pop();return o}(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var o=r.length;e!==n;)r.splice(o,0,e),e=e.parent;return r},ancestors:function(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t},descendants:function(){return Array.from(this)},leaves:function(){var e=[];return this.eachBefore((function(t){t.children||e.push(t)})),e},links:function(){var e=this,t=[];return e.each((function(n){n!==e&&t.push({source:n.parent,target:n})})),t},copy:function(){return Nh(this).eachBefore(Vh)},[Symbol.iterator]:function*(){var e,t,n,r,o=this,i=[o];do{for(e=i.reverse(),i=[];o=e.pop();)if(yield o,t=o.children)for(n=0,r=t.length;n<r;++n)i.push(t[n])}while(i.length)}};const Yh=1664525,Xh=1013904223,Kh=4294967296;function Jh(){let e=1;return()=>(e=(Yh*e+Xh)%Kh)/Kh}function Qh(e){return eg(e,Jh())}function eg(e,t){for(var n,r,o=0,i=(e=function(e,t){let n,r,o=e.length;for(;o;)r=t()*o--|0,n=e[o],e[o]=e[r],e[r]=n;return e}(Array.from(e),t)).length,a=[];o<i;)n=e[o],r&&rg(r,n)?++o:(r=ig(a=tg(a,n)),o=0);return r}function tg(e,t){var n,r;if(og(t,e))return[t];for(n=0;n<e.length;++n)if(ng(t,e[n])&&og(ag(e[n],t),e))return[e[n],t];for(n=0;n<e.length-1;++n)for(r=n+1;r<e.length;++r)if(ng(ag(e[n],e[r]),t)&&ng(ag(e[n],t),e[r])&&ng(ag(e[r],t),e[n])&&og(sg(e[n],e[r],t),e))return[e[n],e[r],t];throw new Error}function ng(e,t){var n=e.r-t.r,r=t.x-e.x,o=t.y-e.y;return n<0||n*n<r*r+o*o}function rg(e,t){var n=e.r-t.r+1e-9*Math.max(e.r,t.r,1),r=t.x-e.x,o=t.y-e.y;return n>0&&n*n>r*r+o*o}function og(e,t){for(var n=0;n<t.length;++n)if(!rg(e,t[n]))return!1;return!0}function ig(e){switch(e.length){case 1:return function(e){return{x:e.x,y:e.y,r:e.r}}(e[0]);case 2:return ag(e[0],e[1]);case 3:return sg(e[0],e[1],e[2])}}function ag(e,t){var n=e.x,r=e.y,o=e.r,i=t.x,a=t.y,s=t.r,l=i-n,u=a-r,c=s-o,f=Math.sqrt(l*l+u*u);return{x:(n+i+l/f*c)/2,y:(r+a+u/f*c)/2,r:(f+o+s)/2}}function sg(e,t,n){var r=e.x,o=e.y,i=e.r,a=t.x,s=t.y,l=t.r,u=n.x,c=n.y,f=n.r,d=r-a,p=r-u,h=o-s,g=o-c,v=l-i,m=f-i,y=r*r+o*o-i*i,b=y-a*a-s*s+l*l,w=y-u*u-c*c+f*f,_=p*h-d*g,x=(h*w-g*b)/(2*_)-r,S=(g*v-h*m)/_,O=(p*b-d*w)/(2*_)-o,C=(d*m-p*v)/_,E=S*S+C*C-1,A=2*(i+x*S+O*C),k=x*x+O*O-i*i,M=-(Math.abs(E)>1e-6?(A+Math.sqrt(A*A-4*E*k))/(2*E):k/A);return{x:r+x+S*M,y:o+O+C*M,r:M}}function lg(e,t,n){var r,o,i,a,s=e.x-t.x,l=e.y-t.y,u=s*s+l*l;u?(o=t.r+n.r,o*=o,a=e.r+n.r,o>(a*=a)?(r=(u+a-o)/(2*u),i=Math.sqrt(Math.max(0,a/u-r*r)),n.x=e.x-r*s-i*l,n.y=e.y-r*l+i*s):(r=(u+o-a)/(2*u),i=Math.sqrt(Math.max(0,o/u-r*r)),n.x=t.x+r*s-i*l,n.y=t.y+r*l+i*s)):(n.x=t.x+n.r,n.y=t.y)}function ug(e,t){var n=e.r+t.r-1e-6,r=t.x-e.x,o=t.y-e.y;return n>0&&n*n>r*r+o*o}function cg(e){var t=e._,n=e.next._,r=t.r+n.r,o=(t.x*n.r+n.x*t.r)/r,i=(t.y*n.r+n.y*t.r)/r;return o*o+i*i}function fg(e){this._=e,this.next=null,this.previous=null}function dg(e,t){if(!(i=(e=function(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}(e)).length))return 0;var n,r,o,i,a,s,l,u,c,f,d;if((n=e[0]).x=0,n.y=0,!(i>1))return n.r;if(r=e[1],n.x=-r.r,r.x=n.r,r.y=0,!(i>2))return n.r+r.r;lg(r,n,o=e[2]),n=new fg(n),r=new fg(r),o=new fg(o),n.next=o.previous=r,r.next=n.previous=o,o.next=r.previous=n;e:for(l=3;l<i;++l){lg(n._,r._,o=e[l]),o=new fg(o),u=r.next,c=n.previous,f=r._.r,d=n._.r;do{if(f<=d){if(ug(u._,o._)){r=u,n.next=r,r.previous=n,--l;continue e}f+=u._.r,u=u.next}else{if(ug(c._,o._)){(n=c).next=r,r.previous=n,--l;continue e}d+=c._.r,c=c.previous}}while(u!==c.next);for(o.previous=n,o.next=r,n.next=r.previous=r=o,a=cg(n);(o=o.next)!==r;)(s=cg(o))<a&&(n=o,a=s);r=n.next}for(n=[r._],o=r;(o=o.next)!==r;)n.push(o._);for(o=eg(n,t),l=0;l<i;++l)(n=e[l]).x-=o.x,n.y-=o.y;return o.r}function pg(e){return dg(e,Jh()),e}function hg(e){return Math.sqrt(e.value)}function gg(){var e=null,t=1,n=1,r=qh;function o(o){const i=Jh();return o.x=t/2,o.y=n/2,e?o.eachBefore(vg(e)).eachAfter(mg(r,.5,i)).eachBefore(yg(1)):o.eachBefore(vg(hg)).eachAfter(mg(qh,1,i)).eachAfter(mg(r,o.r/Math.min(t,n),i)).eachBefore(yg(Math.min(t,n)/(2*o.r))),o}return o.radius=function(t){return arguments.length?(e=Gh(t),o):e},o.size=function(e){return arguments.length?(t=+e[0],n=+e[1],o):[t,n]},o.padding=function(e){return arguments.length?(r="function"===typeof e?e:$h(+e),o):r},o}function vg(e){return function(t){t.children||(t.r=Math.max(0,+e(t)||0))}}function mg(e,t,n){return function(r){if(o=r.children){var o,i,a,s=o.length,l=e(r)*t||0;if(l)for(i=0;i<s;++i)o[i].r+=l;if(a=dg(o,n),l)for(i=0;i<s;++i)o[i].r-=l;r.r=a+l}}}function yg(e){return function(t){var n=t.parent;t.r*=e,n&&(t.x=n.x+e*t.x,t.y=n.y+e*t.y)}}function bg(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function wg(e,t,n,r,o){for(var i,a=e.children,s=-1,l=a.length,u=e.value&&(r-t)/e.value;++s<l;)(i=a[s]).y0=n,i.y1=o,i.x0=t,i.x1=t+=i.value*u}function _g(){var e=1,t=1,n=0,r=!1;function o(o){var i=o.height+1;return o.x0=o.y0=n,o.x1=e,o.y1=t/i,o.eachBefore(function(e,t){return function(r){r.children&&wg(r,r.x0,e*(r.depth+1)/t,r.x1,e*(r.depth+2)/t);var o=r.x0,i=r.y0,a=r.x1-n,s=r.y1-n;a<o&&(o=a=(o+a)/2),s<i&&(i=s=(i+s)/2),r.x0=o,r.y0=i,r.x1=a,r.y1=s}}(t,i)),r&&o.eachBefore(bg),o}return o.round=function(e){return arguments.length?(r=!!e,o):r},o.size=function(n){return arguments.length?(e=+n[0],t=+n[1],o):[e,t]},o.padding=function(e){return arguments.length?(n=+e,o):n},o}var xg={depth:-1},Sg={},Og={};function Cg(e){return e.id}function Eg(e){return e.parentId}function Ag(){var e,t=Cg,n=Eg;function r(r){var o,i,a,s,l,u,c,f,d=Array.from(r),p=t,h=n,g=new Map;if(null!=e){const t=d.map(((t,n)=>function(e){e=`${e}`;let t=e.length;Mg(e,t-1)&&!Mg(e,t-2)&&(e=e.slice(0,-1));return"/"===e[0]?e:`/${e}`}(e(t,n,r)))),n=t.map(kg),o=new Set(t).add("");for(const e of n)o.has(e)||(o.add(e),t.push(e),n.push(kg(e)),d.push(Og));p=(e,n)=>t[n],h=(e,t)=>n[t]}for(a=0,o=d.length;a<o;++a)i=d[a],u=d[a]=new Uh(i),null!=(c=p(i,a,r))&&(c+="")&&(f=u.id=c,g.set(f,g.has(f)?Sg:u)),null!=(c=h(i,a,r))&&(c+="")&&(u.parent=c);for(a=0;a<o;++a)if(c=(u=d[a]).parent){if(!(l=g.get(c)))throw new Error("missing: "+c);if(l===Sg)throw new Error("ambiguous: "+c);l.children?l.children.push(u):l.children=[u],u.parent=l}else{if(s)throw new Error("multiple roots");s=u}if(!s)throw new Error("no root");if(null!=e){for(;s.data===Og&&1===s.children.length;)s=s.children[0],--o;for(let e=d.length-1;e>=0&&(u=d[e]).data===Og;--e)u.data=null}if(s.parent=xg,s.eachBefore((function(e){e.depth=e.parent.depth+1,--o})).eachBefore(zh),s.parent=null,o>0)throw new Error("cycle");return s}return r.id=function(e){return arguments.length?(t=Gh(e),r):t},r.parentId=function(e){return arguments.length?(n=Gh(e),r):n},r.path=function(t){return arguments.length?(e=Gh(t),r):e},r}function kg(e){let t=e.length;if(t<2)return"";for(;--t>1&&!Mg(e,t););return e.slice(0,t)}function Mg(e,t){if("/"===e[t]){let n=0;for(;t>0&&"\\"===e[--t];)++n;if(0===(1&n))return!0}return!1}function Pg(e,t){return e.parent===t.parent?1:2}function Rg(e){var t=e.children;return t?t[0]:e.t}function Tg(e){var t=e.children;return t?t[t.length-1]:e.t}function Ig(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function Bg(e,t,n){return e.a.parent===t.parent?e.a:n}function jg(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}function Dg(){var e=Pg,t=1,n=1,r=null;function o(o){var l=function(e){for(var t,n,r,o,i,a=new jg(e,0),s=[a];t=s.pop();)if(r=t._.children)for(t.children=new Array(i=r.length),o=i-1;o>=0;--o)s.push(n=t.children[o]=new jg(r[o],o)),n.parent=t;return(a.parent=new jg(null,0)).children=[a],a}(o);if(l.eachAfter(i),l.parent.m=-l.z,l.eachBefore(a),r)o.eachBefore(s);else{var u=o,c=o,f=o;o.eachBefore((function(e){e.x<u.x&&(u=e),e.x>c.x&&(c=e),e.depth>f.depth&&(f=e)}));var d=u===c?1:e(u,c)/2,p=d-u.x,h=t/(c.x+d+p),g=n/(f.depth||1);o.eachBefore((function(e){e.x=(e.x+p)*h,e.y=e.depth*g}))}return o}function i(t){var n=t.children,r=t.parent.children,o=t.i?r[t.i-1]:null;if(n){!function(e){for(var t,n=0,r=0,o=e.children,i=o.length;--i>=0;)(t=o[i]).z+=n,t.m+=n,n+=t.s+(r+=t.c)}(t);var i=(n[0].z+n[n.length-1].z)/2;o?(t.z=o.z+e(t._,o._),t.m=t.z-i):t.z=i}else o&&(t.z=o.z+e(t._,o._));t.parent.A=function(t,n,r){if(n){for(var o,i=t,a=t,s=n,l=i.parent.children[0],u=i.m,c=a.m,f=s.m,d=l.m;s=Tg(s),i=Rg(i),s&&i;)l=Rg(l),(a=Tg(a)).a=t,(o=s.z+f-i.z-u+e(s._,i._))>0&&(Ig(Bg(s,t,r),t,o),u+=o,c+=o),f+=s.m,u+=i.m,d+=l.m,c+=a.m;s&&!Tg(a)&&(a.t=s,a.m+=f-c),i&&!Rg(l)&&(l.t=i,l.m+=u-d,r=t)}return r}(t,o,t.parent.A||r[0])}function a(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=t,e.y=e.depth*n}return o.separation=function(t){return arguments.length?(e=t,o):e},o.size=function(e){return arguments.length?(r=!1,t=+e[0],n=+e[1],o):r?null:[t,n]},o.nodeSize=function(e){return arguments.length?(r=!0,t=+e[0],n=+e[1],o):r?[t,n]:null},o}function Lg(e,t,n,r,o){for(var i,a=e.children,s=-1,l=a.length,u=e.value&&(o-n)/e.value;++s<l;)(i=a[s]).x0=t,i.x1=r,i.y0=n,i.y1=n+=i.value*u}jg.prototype=Object.create(Uh.prototype);var Zg=(1+Math.sqrt(5))/2;function Ng(e,t,n,r,o,i){for(var a,s,l,u,c,f,d,p,h,g,v,m=[],y=t.children,b=0,w=0,_=y.length,x=t.value;b<_;){l=o-n,u=i-r;do{c=y[w++].value}while(!c&&w<_);for(f=d=c,v=c*c*(g=Math.max(u/l,l/u)/(x*e)),h=Math.max(d/v,v/f);w<_;++w){if(c+=s=y[w].value,s<f&&(f=s),s>d&&(d=s),v=c*c*g,(p=Math.max(d/v,v/f))>h){c-=s;break}h=p}m.push(a={value:c,dice:l<u,children:y.slice(b,w)}),a.dice?wg(a,n,r,o,x?r+=u*c/x:i):Lg(a,n,r,x?n+=l*c/x:o,i),x-=c,b=w}return m}var Fg=function e(t){function n(e,n,r,o,i){Ng(t,e,n,r,o,i)}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(Zg);function Hg(){var e=Fg,t=!1,n=1,r=1,o=[0],i=qh,a=qh,s=qh,l=qh,u=qh;function c(e){return e.x0=e.y0=0,e.x1=n,e.y1=r,e.eachBefore(f),o=[0],t&&e.eachBefore(bg),e}function f(t){var n=o[t.depth],r=t.x0+n,c=t.y0+n,f=t.x1-n,d=t.y1-n;f<r&&(r=f=(r+f)/2),d<c&&(c=d=(c+d)/2),t.x0=r,t.y0=c,t.x1=f,t.y1=d,t.children&&(n=o[t.depth+1]=i(t)/2,r+=u(t)-n,c+=a(t)-n,(f-=s(t)-n)<r&&(r=f=(r+f)/2),(d-=l(t)-n)<c&&(c=d=(c+d)/2),e(t,r,c,f,d))}return c.round=function(e){return arguments.length?(t=!!e,c):t},c.size=function(e){return arguments.length?(n=+e[0],r=+e[1],c):[n,r]},c.tile=function(t){return arguments.length?(e=Wh(t),c):e},c.padding=function(e){return arguments.length?c.paddingInner(e).paddingOuter(e):c.paddingInner()},c.paddingInner=function(e){return arguments.length?(i="function"===typeof e?e:$h(+e),c):i},c.paddingOuter=function(e){return arguments.length?c.paddingTop(e).paddingRight(e).paddingBottom(e).paddingLeft(e):c.paddingTop()},c.paddingTop=function(e){return arguments.length?(a="function"===typeof e?e:$h(+e),c):a},c.paddingRight=function(e){return arguments.length?(s="function"===typeof e?e:$h(+e),c):s},c.paddingBottom=function(e){return arguments.length?(l="function"===typeof e?e:$h(+e),c):l},c.paddingLeft=function(e){return arguments.length?(u="function"===typeof e?e:$h(+e),c):u},c}function Vg(e,t,n,r,o){var i,a,s=e.children,l=s.length,u=new Array(l+1);for(u[0]=a=i=0;i<l;++i)u[i+1]=a+=s[i].value;!function e(t,n,r,o,i,a,l){if(t>=n-1){var c=s[t];return c.x0=o,c.y0=i,c.x1=a,void(c.y1=l)}var f=u[t],d=r/2+f,p=t+1,h=n-1;for(;p<h;){var g=p+h>>>1;u[g]<d?p=g+1:h=g}d-u[p-1]<u[p]-d&&t+1<p&&--p;var v=u[p]-f,m=r-v;if(a-o>l-i){var y=r?(o*m+a*v)/r:a;e(t,p,v,o,i,y,l),e(p,n,m,y,i,a,l)}else{var b=r?(i*m+l*v)/r:l;e(t,p,v,o,i,a,b),e(p,n,m,o,b,a,l)}}(0,l,e.value,t,n,r,o)}function zg(e,t,n,r,o){(1&e.depth?Lg:wg)(e,t,n,r,o)}var Ug=function e(t){function n(e,n,r,o,i){if((a=e._squarify)&&a.ratio===t)for(var a,s,l,u,c,f=-1,d=a.length,p=e.value;++f<d;){for(l=(s=a[f]).children,u=s.value=0,c=l.length;u<c;++u)s.value+=l[u].value;s.dice?wg(s,n,r,o,p?r+=(i-r)*s.value/p:i):Lg(s,n,r,p?n+=(o-n)*s.value/p:o,i),p-=s.value}else e._squarify=a=Ng(t,e,n,r,o,i),a.ratio=t}return n.ratio=function(t){return e((t=+t)>1?t:1)},n}(Zg),Gg=n(51606),Wg=n(27265),qg=n(76068),$g=n(56246);function Yg(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}var Xg=n(98280);function Kg(e,t){var n=(0,Xg.wx)(+e,+t);return function(e){var t=n(e);return t-360*Math.floor(t/360)}}var Jg=n(45401),Qg=n(58296),ev=n(64635);function tv(e){return((e=Math.exp(e))+1/e)/2}var nv=function e(t,n,r){function o(e,o){var i,a,s=e[0],l=e[1],u=e[2],c=o[0],f=o[1],d=o[2],p=c-s,h=f-l,g=p*p+h*h;if(g<1e-12)a=Math.log(d/u)/t,i=function(e){return[s+e*p,l+e*h,u*Math.exp(t*e*a)]};else{var v=Math.sqrt(g),m=(d*d-u*u+r*g)/(2*u*n*v),y=(d*d-u*u-r*g)/(2*d*n*v),b=Math.log(Math.sqrt(m*m+1)-m),w=Math.log(Math.sqrt(y*y+1)-y);a=(w-b)/t,i=function(e){var r=e*a,o=tv(b),i=u/(n*v)*(o*function(e){return((e=Math.exp(2*e))-1)/(e+1)}(t*r+b)-function(e){return((e=Math.exp(e))-1/e)/2}(b));return[s+i*p,l+i*h,u*o/tv(t*r+b)]}}return i.duration=1e3*a*t/Math.SQRT2,i}return o.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},o}(Math.SQRT2,2,4);function rv(e){return function(t,n){var r=e((t=(0,Zr.Ym)(t)).h,(n=(0,Zr.Ym)(n)).h),o=(0,Xg.ZP)(t.s,n.s),i=(0,Xg.ZP)(t.l,n.l),a=(0,Xg.ZP)(t.opacity,n.opacity);return function(e){return t.h=r(e),t.s=o(e),t.l=i(e),t.opacity=a(e),t+""}}}var ov=rv(Xg.wx),iv=rv(Xg.ZP);function av(e,t){var n=(0,Xg.ZP)((e=Di(e)).l,(t=Di(t)).l),r=(0,Xg.ZP)(e.a,t.a),o=(0,Xg.ZP)(e.b,t.b),i=(0,Xg.ZP)(e.opacity,t.opacity);return function(t){return e.l=n(t),e.a=r(t),e.b=o(t),e.opacity=i(t),e+""}}function sv(e){return function(t,n){var r=e((t=Ui(t)).h,(n=Ui(n)).h),o=(0,Xg.ZP)(t.c,n.c),i=(0,Xg.ZP)(t.l,n.l),a=(0,Xg.ZP)(t.opacity,n.opacity);return function(e){return t.h=r(e),t.c=o(e),t.l=i(e),t.opacity=a(e),t+""}}}var lv=sv(Xg.wx),uv=sv(Xg.ZP);function cv(e){return function t(n){function r(t,r){var o=e((t=ta(t)).h,(r=ta(r)).h),i=(0,Xg.ZP)(t.s,r.s),a=(0,Xg.ZP)(t.l,r.l),s=(0,Xg.ZP)(t.opacity,r.opacity);return function(e){return t.h=o(e),t.s=i(e),t.l=a(Math.pow(e,n)),t.opacity=s(e),t+""}}return n=+n,r.gamma=t,r}(1)}var fv=cv(Xg.wx),dv=cv(Xg.ZP),pv=n(19640);function hv(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function gv(e){for(var t,n=-1,r=e.length,o=e[r-1],i=0;++n<r;)t=o,o=e[n],i+=t[1]*o[0]-t[0]*o[1];return i/2}function vv(e){for(var t,n,r=-1,o=e.length,i=0,a=0,s=e[o-1],l=0;++r<o;)t=s,s=e[r],l+=n=t[0]*s[1]-s[0]*t[1],i+=(t[0]+s[0])*n,a+=(t[1]+s[1])*n;return[i/(l*=3),a/l]}function mv(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}function yv(e,t){return e[0]-t[0]||e[1]-t[1]}function bv(e){const t=e.length,n=[0,1];let r,o=2;for(r=2;r<t;++r){for(;o>1&&mv(e[n[o-2]],e[n[o-1]],e[r])<=0;)--o;n[o++]=r}return n.slice(0,o)}function wv(e){if((n=e.length)<3)return null;var t,n,r=new Array(n),o=new Array(n);for(t=0;t<n;++t)r[t]=[+e[t][0],+e[t][1],t];for(r.sort(yv),t=0;t<n;++t)o[t]=[r[t][0],-r[t][1]];var i=bv(r),a=bv(o),s=a[0]===i[0],l=a[a.length-1]===i[i.length-1],u=[];for(t=i.length-1;t>=0;--t)u.push(e[r[i[t]][2]]);for(t=+s;t<a.length-l;++t)u.push(e[r[a[t]][2]]);return u}function _v(e,t){for(var n,r,o=e.length,i=e[o-1],a=t[0],s=t[1],l=i[0],u=i[1],c=!1,f=0;f<o;++f)n=(i=e[f])[0],(r=i[1])>s!==u>s&&a<(l-n)*(s-r)/(u-r)+n&&(c=!c),l=n,u=r;return c}function xv(e){for(var t,n,r=-1,o=e.length,i=e[o-1],a=i[0],s=i[1],l=0;++r<o;)t=a,n=s,t-=a=(i=e[r])[0],n-=s=i[1],l+=Math.hypot(t,n);return l}var Sv=Math.random,Ov=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,1===arguments.length?(n=e,e=0):n-=e,function(){return t()*n+e}}return n.source=e,n}(Sv),Cv=function e(t){function n(e,n){return arguments.length<2&&(n=e,e=0),e=Math.floor(e),n=Math.floor(n)-e,function(){return Math.floor(t()*n+e)}}return n.source=e,n}(Sv),Ev=function e(t){function n(e,n){var r,o;return e=null==e?0:+e,n=null==n?1:+n,function(){var i;if(null!=r)i=r,r=null;else do{r=2*t()-1,i=2*t()-1,o=r*r+i*i}while(!o||o>1);return e+n*i*Math.sqrt(-2*Math.log(o)/o)}}return n.source=e,n}(Sv),Av=function e(t){var n=Ev.source(t);function r(){var e=n.apply(this,arguments);return function(){return Math.exp(e())}}return r.source=e,r}(Sv),kv=function e(t){function n(e){return(e=+e)<=0?()=>0:function(){for(var n=0,r=e;r>1;--r)n+=t();return n+r*t()}}return n.source=e,n}(Sv),Mv=function e(t){var n=kv.source(t);function r(e){if(0===(e=+e))return t;var r=n(e);return function(){return r()/e}}return r.source=e,r}(Sv),Pv=function e(t){function n(e){return function(){return-Math.log1p(-t())/e}}return n.source=e,n}(Sv),Rv=function e(t){function n(e){if((e=+e)<0)throw new RangeError("invalid alpha");return e=1/-e,function(){return Math.pow(1-t(),e)}}return n.source=e,n}(Sv),Tv=function e(t){function n(e){if((e=+e)<0||e>1)throw new RangeError("invalid p");return function(){return Math.floor(t()+e)}}return n.source=e,n}(Sv),Iv=function e(t){function n(e){if((e=+e)<0||e>1)throw new RangeError("invalid p");return 0===e?()=>1/0:1===e?()=>1:(e=Math.log1p(-e),function(){return 1+Math.floor(Math.log1p(-t())/e)})}return n.source=e,n}(Sv),Bv=function e(t){var n=Ev.source(t)();function r(e,r){if((e=+e)<0)throw new RangeError("invalid k");if(0===e)return()=>0;if(r=null==r?1:+r,1===e)return()=>-Math.log1p(-t())*r;var o=(e<1?e+1:e)-1/3,i=1/(3*Math.sqrt(o)),a=e<1?()=>Math.pow(t(),1/e):()=>1;return function(){do{do{var e=n(),s=1+i*e}while(s<=0);s*=s*s;var l=1-t()}while(l>=1-.0331*e*e*e*e&&Math.log(l)>=.5*e*e+o*(1-s+Math.log(s)));return o*s*a()*r}}return r.source=e,r}(Sv),jv=function e(t){var n=Bv.source(t);function r(e,t){var r=n(e),o=n(t);return function(){var e=r();return 0===e?0:e/(e+o())}}return r.source=e,r}(Sv),Dv=function e(t){var n=Iv.source(t),r=jv.source(t);function o(e,t){return e=+e,(t=+t)>=1?()=>e:t<=0?()=>0:function(){for(var o=0,i=e,a=t;i*a>16&&i*(1-a)>16;){var s=Math.floor((i+1)*a),l=r(s,i-s+1)();l<=a?(o+=s,i-=s,a=(a-l)/(1-l)):(i=s-1,a/=l)}for(var u=a<.5,c=n(u?a:1-a),f=c(),d=0;f<=i;++d)f+=c();return o+(u?d:i-d)}}return o.source=e,o}(Sv),Lv=function e(t){function n(e,n,r){var o;return 0===(e=+e)?o=e=>-Math.log(e):(e=1/e,o=t=>Math.pow(t,e)),n=null==n?0:+n,r=null==r?1:+r,function(){return n+r*o(-Math.log1p(-t()))}}return n.source=e,n}(Sv),Zv=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,function(){return e+n*Math.tan(Math.PI*t())}}return n.source=e,n}(Sv),Nv=function e(t){function n(e,n){return e=null==e?0:+e,n=null==n?1:+n,function(){var r=t();return e+n*Math.log(r/(1-r))}}return n.source=e,n}(Sv),Fv=function e(t){var n=Bv.source(t),r=Dv.source(t);function o(e){return function(){for(var o=0,i=e;i>16;){var a=Math.floor(.875*i),s=n(a)();if(s>i)return o+r(a-1,i/s)();o+=a,i-=s}for(var l=-Math.log1p(-t()),u=0;l<=i;++u)l-=Math.log1p(-t());return o+u}}return o.source=e,o}(Sv);const Hv=1664525,Vv=1013904223,zv=1/4294967296;function Uv(e=Math.random()){let t=0|(0<=e&&e<1?e/zv:Math.abs(e));return()=>(t=Hv*t+Vv|0,zv*(t>>>0))}var Gv=n(69032);function Wv(e){for(var t=e.length/6|0,n=new Array(t),r=0;r<t;)n[r]="#"+e.slice(6*r,6*++r);return n}var qv=Wv("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),$v=Wv("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Yv=Wv("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Xv=Wv("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),Kv=Wv("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Jv=Wv("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),Qv=Wv("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),em=Wv("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),tm=Wv("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),nm=Wv("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),rm=e=>(0,Nr.hD)(e[e.length-1]),om=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(Wv),im=rm(om),am=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(Wv),sm=rm(am),lm=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(Wv),um=rm(lm),cm=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(Wv),fm=rm(cm),dm=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(Wv),pm=rm(dm),hm=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(Wv),gm=rm(hm),vm=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(Wv),mm=rm(vm),ym=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(Wv),bm=rm(ym),wm=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(Wv),_m=rm(wm),xm=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(Wv),Sm=rm(xm),Om=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(Wv),Cm=rm(Om),Em=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(Wv),Am=rm(Em),km=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(Wv),Mm=rm(km),Pm=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(Wv),Rm=rm(Pm),Tm=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(Wv),Im=rm(Tm),Bm=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(Wv),jm=rm(Bm),Dm=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(Wv),Lm=rm(Dm),Zm=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(Wv),Nm=rm(Zm),Fm=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(Wv),Hm=rm(Fm),Vm=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(Wv),zm=rm(Vm),Um=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(Wv),Gm=rm(Um),Wm=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(Wv),qm=rm(Wm),$m=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(Wv),Ym=rm($m),Xm=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(Wv),Km=rm(Xm),Jm=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(Wv),Qm=rm(Jm),ey=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(Wv),ty=rm(ey),ny=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(Wv),ry=rm(ny);function oy(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-e*(35.34-e*(2381.73-e*(6402.7-e*(7024.72-2710.57*e)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+e*(170.73+e*(52.82-e*(131.46-e*(176.58-67.37*e)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+e*(442.36-e*(2482.43-e*(6167.24-e*(6614.94-2475.67*e)))))))+")"}var iy=dv(ta(300,.5,0),ta(-240,.5,1)),ay=dv(ta(-100,.75,.35),ta(80,1.5,.8)),sy=dv(ta(260,.75,.35),ta(80,1.5,.8)),ly=ta();function uy(e){(e<0||e>1)&&(e-=Math.floor(e));var t=Math.abs(e-.5);return ly.h=360*e-100,ly.s=1.5-1.5*t,ly.l=.8-.9*t,ly+""}var cy=(0,Zr.B8)(),fy=Math.PI/3,dy=2*Math.PI/3;function py(e){var t;return e=(.5-e)*Math.PI,cy.r=255*(t=Math.sin(e))*t,cy.g=255*(t=Math.sin(e+fy))*t,cy.b=255*(t=Math.sin(e+dy))*t,cy+""}function hy(e){return e=Math.max(0,Math.min(1,e)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+e*(1172.33-e*(10793.56-e*(33300.12-e*(38394.49-14825.05*e)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+e*(557.33+e*(1225.33-e*(3574.96-e*(1073.77+707.56*e)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+e*(3211.1-e*(15327.97-e*(27814-e*(22569.18-6838.66*e)))))))+")"}function gy(e){var t=e.length;return function(n){return e[Math.max(0,Math.min(t-1,Math.floor(n*t)))]}}var vy=gy(Wv("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),my=gy(Wv("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),yy=gy(Wv("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),by=gy(Wv("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function wy(e){return Ln(Sn(e).call(document.documentElement))}var _y=0;function xy(){return new Sy}function Sy(){this._="@"+(++_y).toString(36)}function Oy(e,t){return e.target&&(e=Gn(e),void 0===t&&(t=e.currentTarget),e=e.touches||[e]),Array.from(e,(e=>Wn(e,t)))}function Cy(e){return"string"===typeof e?new Bn([document.querySelectorAll(e)],[document.documentElement]):new Bn([Ct(e)],In)}function Ey(e){return function(){return e}}Sy.prototype=xy.prototype={constructor:Sy,get:function(e){for(var t=this._;!(t in e);)if(!(e=e.parentNode))return;return e[t]},set:function(e,t){return e[this._]=t},remove:function(e){return this._ in e&&delete e[this._]},toString:function(){return this._}};const Ay=Math.abs,ky=Math.atan2,My=Math.cos,Py=Math.max,Ry=Math.min,Ty=Math.sin,Iy=Math.sqrt,By=1e-12,jy=Math.PI,Dy=jy/2,Ly=2*jy;function Zy(e){return e>=1?Dy:e<=-1?-Dy:Math.asin(e)}function Ny(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new ui(t)}function Fy(e){return e.innerRadius}function Hy(e){return e.outerRadius}function Vy(e){return e.startAngle}function zy(e){return e.endAngle}function Uy(e){return e&&e.padAngle}function Gy(e,t,n,r,o,i,a){var s=e-n,l=t-r,u=(a?i:-i)/Iy(s*s+l*l),c=u*l,f=-u*s,d=e+c,p=t+f,h=n+c,g=r+f,v=(d+h)/2,m=(p+g)/2,y=h-d,b=g-p,w=y*y+b*b,_=o-i,x=d*g-h*p,S=(b<0?-1:1)*Iy(Py(0,_*_*w-x*x)),O=(x*b-y*S)/w,C=(-x*y-b*S)/w,E=(x*b+y*S)/w,A=(-x*y+b*S)/w,k=O-v,M=C-m,P=E-v,R=A-m;return k*k+M*M>P*P+R*R&&(O=E,C=A),{cx:O,cy:C,x01:-c,y01:-f,x11:O*(o/_-1),y11:C*(o/_-1)}}function Wy(){var e=Fy,t=Hy,n=Ey(0),r=null,o=Vy,i=zy,a=Uy,s=null,l=Ny(u);function u(){var u,c,f=+e.apply(this,arguments),d=+t.apply(this,arguments),p=o.apply(this,arguments)-Dy,h=i.apply(this,arguments)-Dy,g=Ay(h-p),v=h>p;if(s||(s=u=l()),d<f&&(c=d,d=f,f=c),d>By)if(g>Ly-By)s.moveTo(d*My(p),d*Ty(p)),s.arc(0,0,d,p,h,!v),f>By&&(s.moveTo(f*My(h),f*Ty(h)),s.arc(0,0,f,h,p,v));else{var m,y,b=p,w=h,_=p,x=h,S=g,O=g,C=a.apply(this,arguments)/2,E=C>By&&(r?+r.apply(this,arguments):Iy(f*f+d*d)),A=Ry(Ay(d-f)/2,+n.apply(this,arguments)),k=A,M=A;if(E>By){var P=Zy(E/f*Ty(C)),R=Zy(E/d*Ty(C));(S-=2*P)>By?(_+=P*=v?1:-1,x-=P):(S=0,_=x=(p+h)/2),(O-=2*R)>By?(b+=R*=v?1:-1,w-=R):(O=0,b=w=(p+h)/2)}var T=d*My(b),I=d*Ty(b),B=f*My(x),j=f*Ty(x);if(A>By){var D,L=d*My(w),Z=d*Ty(w),N=f*My(_),F=f*Ty(_);if(g<jy)if(D=function(e,t,n,r,o,i,a,s){var l=n-e,u=r-t,c=a-o,f=s-i,d=f*l-c*u;if(!(d*d<By))return[e+(d=(c*(t-i)-f*(e-o))/d)*l,t+d*u]}(T,I,N,F,L,Z,B,j)){var H=T-D[0],V=I-D[1],z=L-D[0],U=Z-D[1],G=1/Ty(function(e){return e>1?0:e<-1?jy:Math.acos(e)}((H*z+V*U)/(Iy(H*H+V*V)*Iy(z*z+U*U)))/2),W=Iy(D[0]*D[0]+D[1]*D[1]);k=Ry(A,(f-W)/(G-1)),M=Ry(A,(d-W)/(G+1))}else k=M=0}O>By?M>By?(m=Gy(N,F,T,I,d,M,v),y=Gy(L,Z,B,j,d,M,v),s.moveTo(m.cx+m.x01,m.cy+m.y01),M<A?s.arc(m.cx,m.cy,M,ky(m.y01,m.x01),ky(y.y01,y.x01),!v):(s.arc(m.cx,m.cy,M,ky(m.y01,m.x01),ky(m.y11,m.x11),!v),s.arc(0,0,d,ky(m.cy+m.y11,m.cx+m.x11),ky(y.cy+y.y11,y.cx+y.x11),!v),s.arc(y.cx,y.cy,M,ky(y.y11,y.x11),ky(y.y01,y.x01),!v))):(s.moveTo(T,I),s.arc(0,0,d,b,w,!v)):s.moveTo(T,I),f>By&&S>By?k>By?(m=Gy(B,j,L,Z,f,-k,v),y=Gy(T,I,N,F,f,-k,v),s.lineTo(m.cx+m.x01,m.cy+m.y01),k<A?s.arc(m.cx,m.cy,k,ky(m.y01,m.x01),ky(y.y01,y.x01),!v):(s.arc(m.cx,m.cy,k,ky(m.y01,m.x01),ky(m.y11,m.x11),!v),s.arc(0,0,f,ky(m.cy+m.y11,m.cx+m.x11),ky(y.cy+y.y11,y.cx+y.x11),v),s.arc(y.cx,y.cy,k,ky(y.y11,y.x11),ky(y.y01,y.x01),!v))):s.arc(0,0,f,x,_,v):s.lineTo(B,j)}else s.moveTo(0,0);if(s.closePath(),u)return s=null,u+""||null}return u.centroid=function(){var n=(+e.apply(this,arguments)+ +t.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +i.apply(this,arguments))/2-jy/2;return[My(r)*n,Ty(r)*n]},u.innerRadius=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),u):e},u.outerRadius=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),u):t},u.cornerRadius=function(e){return arguments.length?(n="function"===typeof e?e:Ey(+e),u):n},u.padRadius=function(e){return arguments.length?(r=null==e?null:"function"===typeof e?e:Ey(+e),u):r},u.startAngle=function(e){return arguments.length?(o="function"===typeof e?e:Ey(+e),u):o},u.endAngle=function(e){return arguments.length?(i="function"===typeof e?e:Ey(+e),u):i},u.padAngle=function(e){return arguments.length?(a="function"===typeof e?e:Ey(+e),u):a},u.context=function(e){return arguments.length?(s=null==e?null:e,u):s},u}var qy=Array.prototype.slice;function $y(e){return"object"===typeof e&&"length"in e?e:Array.from(e)}function Yy(e){this._context=e}function Xy(e){return new Yy(e)}function Ky(e){return e[0]}function Jy(e){return e[1]}function Qy(e,t){var n=Ey(!0),r=null,o=Xy,i=null,a=Ny(s);function s(s){var l,u,c,f=(s=$y(s)).length,d=!1;for(null==r&&(i=o(c=a())),l=0;l<=f;++l)!(l<f&&n(u=s[l],l,s))===d&&((d=!d)?i.lineStart():i.lineEnd()),d&&i.point(+e(u,l,s),+t(u,l,s));if(c)return i=null,c+""||null}return e="function"===typeof e?e:void 0===e?Ky:Ey(e),t="function"===typeof t?t:void 0===t?Jy:Ey(t),s.x=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),s):e},s.y=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),s):t},s.defined=function(e){return arguments.length?(n="function"===typeof e?e:Ey(!!e),s):n},s.curve=function(e){return arguments.length?(o=e,null!=r&&(i=o(r)),s):o},s.context=function(e){return arguments.length?(null==e?r=i=null:i=o(r=e),s):r},s}function eb(e,t,n){var r=null,o=Ey(!0),i=null,a=Xy,s=null,l=Ny(u);function u(u){var c,f,d,p,h,g=(u=$y(u)).length,v=!1,m=new Array(g),y=new Array(g);for(null==i&&(s=a(h=l())),c=0;c<=g;++c){if(!(c<g&&o(p=u[c],c,u))===v)if(v=!v)f=c,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),d=c-1;d>=f;--d)s.point(m[d],y[d]);s.lineEnd(),s.areaEnd()}v&&(m[c]=+e(p,c,u),y[c]=+t(p,c,u),s.point(r?+r(p,c,u):m[c],n?+n(p,c,u):y[c]))}if(h)return s=null,h+""||null}function c(){return Qy().defined(o).curve(a).context(i)}return e="function"===typeof e?e:void 0===e?Ky:Ey(+e),t="function"===typeof t?t:Ey(void 0===t?0:+t),n="function"===typeof n?n:void 0===n?Jy:Ey(+n),u.x=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),r=null,u):e},u.x0=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),u):e},u.x1=function(e){return arguments.length?(r=null==e?null:"function"===typeof e?e:Ey(+e),u):r},u.y=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),n=null,u):t},u.y0=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),u):t},u.y1=function(e){return arguments.length?(n=null==e?null:"function"===typeof e?e:Ey(+e),u):n},u.lineX0=u.lineY0=function(){return c().x(e).y(t)},u.lineY1=function(){return c().x(e).y(n)},u.lineX1=function(){return c().x(r).y(t)},u.defined=function(e){return arguments.length?(o="function"===typeof e?e:Ey(!!e),u):o},u.curve=function(e){return arguments.length?(a=e,null!=i&&(s=a(i)),u):a},u.context=function(e){return arguments.length?(null==e?i=s=null:s=a(i=e),u):i},u}function tb(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}function nb(e){return e}function rb(){var e=nb,t=tb,n=null,r=Ey(0),o=Ey(Ly),i=Ey(0);function a(a){var s,l,u,c,f,d=(a=$y(a)).length,p=0,h=new Array(d),g=new Array(d),v=+r.apply(this,arguments),m=Math.min(Ly,Math.max(-Ly,o.apply(this,arguments)-v)),y=Math.min(Math.abs(m)/d,i.apply(this,arguments)),b=y*(m<0?-1:1);for(s=0;s<d;++s)(f=g[h[s]=s]=+e(a[s],s,a))>0&&(p+=f);for(null!=t?h.sort((function(e,n){return t(g[e],g[n])})):null!=n&&h.sort((function(e,t){return n(a[e],a[t])})),s=0,u=p?(m-d*b)/p:0;s<d;++s,v=c)l=h[s],c=v+((f=g[l])>0?f*u:0)+b,g[l]={data:a[l],index:s,value:f,startAngle:v,endAngle:c,padAngle:y};return g}return a.value=function(t){return arguments.length?(e="function"===typeof t?t:Ey(+t),a):e},a.sortValues=function(e){return arguments.length?(t=e,n=null,a):t},a.sort=function(e){return arguments.length?(n=e,t=null,a):n},a.startAngle=function(e){return arguments.length?(r="function"===typeof e?e:Ey(+e),a):r},a.endAngle=function(e){return arguments.length?(o="function"===typeof e?e:Ey(+e),a):o},a.padAngle=function(e){return arguments.length?(i="function"===typeof e?e:Ey(+e),a):i},a}Yy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};var ob=ab(Xy);function ib(e){this._curve=e}function ab(e){function t(t){return new ib(e(t))}return t._curve=e,t}function sb(e){var t=e.curve;return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e.curve=function(e){return arguments.length?t(ab(e)):t()._curve},e}function lb(){return sb(Qy().curve(ob))}function ub(){var e=eb().curve(ob),t=e.curve,n=e.lineX0,r=e.lineX1,o=e.lineY0,i=e.lineY1;return e.angle=e.x,delete e.x,e.startAngle=e.x0,delete e.x0,e.endAngle=e.x1,delete e.x1,e.radius=e.y,delete e.y,e.innerRadius=e.y0,delete e.y0,e.outerRadius=e.y1,delete e.y1,e.lineStartAngle=function(){return sb(n())},delete e.lineX0,e.lineEndAngle=function(){return sb(r())},delete e.lineX1,e.lineInnerRadius=function(){return sb(o())},delete e.lineY0,e.lineOuterRadius=function(){return sb(i())},delete e.lineY1,e.curve=function(e){return arguments.length?t(ab(e)):t()._curve},e}function cb(e,t){return[(t=+t)*Math.cos(e-=Math.PI/2),t*Math.sin(e)]}ib.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(e,t){this._curve.point(t*Math.sin(e),t*-Math.cos(e))}};class fb{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}}class db{constructor(e){this._context=e}lineStart(){this._point=0}lineEnd(){}point(e,t){if(e=+e,t=+t,0===this._point)this._point=1;else{const n=cb(this._x0,this._y0),r=cb(this._x0,this._y0=(this._y0+t)/2),o=cb(e,this._y0),i=cb(e,t);this._context.moveTo(...n),this._context.bezierCurveTo(...r,...o,...i)}this._x0=e,this._y0=t}}function pb(e){return new fb(e,!0)}function hb(e){return new fb(e,!1)}function gb(e){return new db(e)}function vb(e){return e.source}function mb(e){return e.target}function yb(e){let t=vb,n=mb,r=Ky,o=Jy,i=null,a=null,s=Ny(l);function l(){let l;const u=qy.call(arguments),c=t.apply(this,u),f=n.apply(this,u);if(null==i&&(a=e(l=s())),a.lineStart(),u[0]=c,a.point(+r.apply(this,u),+o.apply(this,u)),u[0]=f,a.point(+r.apply(this,u),+o.apply(this,u)),a.lineEnd(),l)return a=null,l+""||null}return l.source=function(e){return arguments.length?(t=e,l):t},l.target=function(e){return arguments.length?(n=e,l):n},l.x=function(e){return arguments.length?(r="function"===typeof e?e:Ey(+e),l):r},l.y=function(e){return arguments.length?(o="function"===typeof e?e:Ey(+e),l):o},l.context=function(t){return arguments.length?(null==t?i=a=null:a=e(i=t),l):i},l}function bb(){return yb(pb)}function wb(){return yb(hb)}function _b(){const e=yb(gb);return e.angle=e.x,delete e.x,e.radius=e.y,delete e.y,e}const xb=Iy(3);var Sb={draw(e,t){const n=.59436*Iy(t+Ry(t/28,.75)),r=n/2,o=r*xb;e.moveTo(0,n),e.lineTo(0,-n),e.moveTo(-o,-r),e.lineTo(o,r),e.moveTo(-o,r),e.lineTo(o,-r)}},Ob={draw(e,t){const n=Iy(t/jy);e.moveTo(n,0),e.arc(0,0,n,0,Ly)}},Cb={draw(e,t){const n=Iy(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}};const Eb=Iy(1/3),Ab=2*Eb;var kb={draw(e,t){const n=Iy(t/Ab),r=n*Eb;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},Mb={draw(e,t){const n=.62625*Iy(t);e.moveTo(0,-n),e.lineTo(n,0),e.lineTo(0,n),e.lineTo(-n,0),e.closePath()}},Pb={draw(e,t){const n=.87559*Iy(t-Ry(t/7,2));e.moveTo(-n,0),e.lineTo(n,0),e.moveTo(0,n),e.lineTo(0,-n)}},Rb={draw(e,t){const n=Iy(t),r=-n/2;e.rect(r,r,n,n)}},Tb={draw(e,t){const n=.4431*Iy(t);e.moveTo(n,n),e.lineTo(n,-n),e.lineTo(-n,-n),e.lineTo(-n,n),e.closePath()}};const Ib=Ty(jy/10)/Ty(7*jy/10),Bb=Ty(Ly/10)*Ib,jb=-My(Ly/10)*Ib;var Db={draw(e,t){const n=Iy(.8908130915292852*t),r=Bb*n,o=jb*n;e.moveTo(0,-n),e.lineTo(r,o);for(let i=1;i<5;++i){const t=Ly*i/5,a=My(t),s=Ty(t);e.lineTo(s*n,-a*n),e.lineTo(a*r-s*o,s*r+a*o)}e.closePath()}};const Lb=Iy(3);var Zb={draw(e,t){const n=-Iy(t/(3*Lb));e.moveTo(0,2*n),e.lineTo(-Lb*n,-n),e.lineTo(Lb*n,-n),e.closePath()}};const Nb=Iy(3);var Fb={draw(e,t){const n=.6824*Iy(t),r=n/2,o=n*Nb/2;e.moveTo(0,-n),e.lineTo(o,r),e.lineTo(-o,r),e.closePath()}};const Hb=-.5,Vb=Iy(3)/2,zb=1/Iy(12),Ub=3*(zb/2+1);var Gb={draw(e,t){const n=Iy(t/Ub),r=n/2,o=n*zb,i=r,a=n*zb+n,s=-i,l=a;e.moveTo(r,o),e.lineTo(i,a),e.lineTo(s,l),e.lineTo(Hb*r-Vb*o,Vb*r+Hb*o),e.lineTo(Hb*i-Vb*a,Vb*i+Hb*a),e.lineTo(Hb*s-Vb*l,Vb*s+Hb*l),e.lineTo(Hb*r+Vb*o,Hb*o-Vb*r),e.lineTo(Hb*i+Vb*a,Hb*a-Vb*i),e.lineTo(Hb*s+Vb*l,Hb*l-Vb*s),e.closePath()}},Wb={draw(e,t){const n=.6189*Iy(t-Ry(t/6,1.7));e.moveTo(-n,-n),e.lineTo(n,n),e.moveTo(-n,n),e.lineTo(n,-n)}};const qb=[Ob,Cb,kb,Rb,Db,Zb,Gb],$b=[Ob,Pb,Wb,Fb,Sb,Tb,Mb];function Yb(e,t){let n=null,r=Ny(o);function o(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return e="function"===typeof e?e:Ey(e||Ob),t="function"===typeof t?t:Ey(void 0===t?64:+t),o.type=function(t){return arguments.length?(e="function"===typeof t?t:Ey(t),o):e},o.size=function(e){return arguments.length?(t="function"===typeof e?e:Ey(+e),o):t},o.context=function(e){return arguments.length?(n=null==e?null:e,o):n},o}function Xb(){}function Kb(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function Jb(e){this._context=e}function Qb(e){return new Jb(e)}function ew(e){this._context=e}function tw(e){return new ew(e)}function nw(e){this._context=e}function rw(e){return new nw(e)}function ow(e,t){this._basis=new Jb(e),this._beta=t}Jb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Kb(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Kb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},ew.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Kb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},nw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Kb(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},ow.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,o=e[0],i=t[0],a=e[n]-o,s=t[n]-i,l=-1;++l<=n;)r=l/n,this._basis.point(this._beta*e[l]+(1-this._beta)*(o+r*a),this._beta*t[l]+(1-this._beta)*(i+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};var iw=function e(t){function n(e){return 1===t?new Jb(e):new ow(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function aw(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function sw(e,t){this._context=e,this._k=(1-t)/6}sw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:aw(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:aw(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var lw=function e(t){function n(e){return new sw(e,t)}return n.tension=function(t){return e(+t)},n}(0);function uw(e,t){this._context=e,this._k=(1-t)/6}uw.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:aw(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var cw=function e(t){function n(e){return new uw(e,t)}return n.tension=function(t){return e(+t)},n}(0);function fw(e,t){this._context=e,this._k=(1-t)/6}fw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:aw(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var dw=function e(t){function n(e){return new fw(e,t)}return n.tension=function(t){return e(+t)},n}(0);function pw(e,t,n){var r=e._x1,o=e._y1,i=e._x2,a=e._y2;if(e._l01_a>By){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,o=(o*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>By){var u=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,c=3*e._l23_a*(e._l23_a+e._l12_a);i=(i*u+e._x1*e._l23_2a-t*e._l12_2a)/c,a=(a*u+e._y1*e._l23_2a-n*e._l12_2a)/c}e._context.bezierCurveTo(r,o,i,a,e._x2,e._y2)}function hw(e,t){this._context=e,this._alpha=t}hw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:pw(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var gw=function e(t){function n(e){return t?new hw(e,t):new sw(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function vw(e,t){this._context=e,this._alpha=t}vw.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:pw(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var mw=function e(t){function n(e){return t?new vw(e,t):new uw(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function yw(e,t){this._context=e,this._alpha=t}yw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:pw(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};var bw=function e(t){function n(e){return t?new yw(e,t):new fw(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function ww(e){this._context=e}function _w(e){return new ww(e)}function xw(e){return e<0?-1:1}function Sw(e,t,n){var r=e._x1-e._x0,o=t-e._x1,i=(e._y1-e._y0)/(r||o<0&&-0),a=(n-e._y1)/(o||r<0&&-0),s=(i*o+a*r)/(r+o);return(xw(i)+xw(a))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs(s))||0}function Ow(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Cw(e,t,n){var r=e._x0,o=e._y0,i=e._x1,a=e._y1,s=(i-r)/3;e._context.bezierCurveTo(r+s,o+s*t,i-s,a-s*n,i,a)}function Ew(e){this._context=e}function Aw(e){this._context=new kw(e)}function kw(e){this._context=e}function Mw(e){return new Ew(e)}function Pw(e){return new Aw(e)}function Rw(e){this._context=e}function Tw(e){var t,n,r=e.length-1,o=new Array(r),i=new Array(r),a=new Array(r);for(o[0]=0,i[0]=2,a[0]=e[0]+2*e[1],t=1;t<r-1;++t)o[t]=1,i[t]=4,a[t]=4*e[t]+2*e[t+1];for(o[r-1]=2,i[r-1]=7,a[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=o[t]/i[t-1],i[t]-=n,a[t]-=n*a[t-1];for(o[r-1]=a[r-1]/i[r-1],t=r-2;t>=0;--t)o[t]=(a[t]-o[t+1])/i[t];for(i[r-1]=(e[r]+o[r-1])/2,t=0;t<r-1;++t)i[t]=2*e[t+1]-o[t+1];return[o,i]}function Iw(e){return new Rw(e)}function Bw(e,t){this._context=e,this._t=t}function jw(e){return new Bw(e,.5)}function Dw(e){return new Bw(e,0)}function Lw(e){return new Bw(e,1)}function Zw(e,t){if((o=e.length)>1)for(var n,r,o,i=1,a=e[t[0]],s=a.length;i<o;++i)for(r=a,a=e[t[i]],n=0;n<s;++n)a[n][1]+=a[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]}function Nw(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function Fw(e,t){return e[t]}function Hw(e){const t=[];return t.key=e,t}function Vw(){var e=Ey([]),t=Nw,n=Zw,r=Fw;function o(o){var i,a,s=Array.from(e.apply(this,arguments),Hw),l=s.length,u=-1;for(const e of o)for(i=0,++u;i<l;++i)(s[i][u]=[0,+r(e,s[i].key,u,o)]).data=e;for(i=0,a=$y(t(s));i<l;++i)s[a[i]].index=i;return n(s,a),s}return o.keys=function(t){return arguments.length?(e="function"===typeof t?t:Ey(Array.from(t)),o):e},o.value=function(e){return arguments.length?(r="function"===typeof e?e:Ey(+e),o):r},o.order=function(e){return arguments.length?(t=null==e?Nw:"function"===typeof e?e:Ey(Array.from(e)),o):t},o.offset=function(e){return arguments.length?(n=null==e?Zw:e,o):n},o}function zw(e,t){if((r=e.length)>0){for(var n,r,o,i=0,a=e[0].length;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}Zw(e,t)}}function Uw(e,t){if((s=e.length)>0)for(var n,r,o,i,a,s,l=0,u=e[t[0]].length;l<u;++l)for(i=a=0,n=0;n<s;++n)(o=(r=e[t[n]][l])[1]-r[0])>0?(r[0]=i,r[1]=i+=o):o<0?(r[1]=a,r[0]=a+=o):(r[0]=0,r[1]=o)}function Gw(e,t){if((n=e.length)>0){for(var n,r=0,o=e[t[0]],i=o.length;r<i;++r){for(var a=0,s=0;a<n;++a)s+=e[a][r][1]||0;o[r][1]+=o[r][0]=-s/2}Zw(e,t)}}function Ww(e,t){if((o=e.length)>0&&(r=(n=e[t[0]]).length)>0){for(var n,r,o,i=0,a=1;a<r;++a){for(var s=0,l=0,u=0;s<o;++s){for(var c=e[t[s]],f=c[a][1]||0,d=(f-(c[a-1][1]||0))/2,p=0;p<s;++p){var h=e[t[p]];d+=(h[a][1]||0)-(h[a-1][1]||0)}l+=f,u+=d*f}n[a-1][1]+=n[a-1][0]=i,l&&(i-=u/l)}n[a-1][1]+=n[a-1][0]=i,Zw(e,t)}}function qw(e){var t=e.map($w);return Nw(e).sort((function(e,n){return t[e]-t[n]}))}function $w(e){for(var t,n=-1,r=0,o=e.length,i=-1/0;++n<o;)(t=+e[n][1])>i&&(i=t,r=n);return r}function Yw(e){var t=e.map(Xw);return Nw(e).sort((function(e,n){return t[e]-t[n]}))}function Xw(e){for(var t,n=0,r=-1,o=e.length;++r<o;)(t=+e[r][1])&&(n+=t);return n}function Kw(e){return Yw(e).reverse()}function Jw(e){var t,n,r=e.length,o=e.map(Xw),i=qw(e),a=0,s=0,l=[],u=[];for(t=0;t<r;++t)n=i[t],a<s?(a+=o[n],l.push(n)):(s+=o[n],u.push(n));return u.reverse().concat(l)}function Qw(e){return Nw(e).reverse()}ww.prototype={areaStart:Xb,areaEnd:Xb,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}},Ew.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Cw(this,this._t0,Ow(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(t=+t,(e=+e)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Cw(this,Ow(this,n=Sw(this,e,t)),n);break;default:Cw(this,this._t0,n=Sw(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},(Aw.prototype=Object.create(Ew.prototype)).point=function(e,t){Ew.prototype.point.call(this,t,e)},kw.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,o,i){this._context.bezierCurveTo(t,e,r,n,i,o)}},Rw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===n)this._context.lineTo(e[1],t[1]);else for(var r=Tw(e),o=Tw(t),i=0,a=1;a<n;++i,++a)this._context.bezierCurveTo(r[0][i],o[0][i],r[1][i],o[1][i],e[a],t[a]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}},Bw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};const e_=new Date,t_=new Date;function n_(e,t,n,r){function o(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return o.floor=t=>(e(t=new Date(+t)),t),o.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),o.round=e=>{const t=o(e),n=o.ceil(e);return e-t<n-e?t:n},o.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),o.range=(n,r,i)=>{const a=[];if(n=o.ceil(n),i=null==i?1:Math.floor(i),!(n<r)||!(i>0))return a;let s;do{a.push(s=new Date(+n)),t(n,i),e(n)}while(s<n&&n<r);return a},o.filter=n=>n_((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(o.count=(t,r)=>(e_.setTime(+t),t_.setTime(+r),e(e_),e(t_),Math.floor(n(e_,t_))),o.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?o.filter(r?t=>r(t)%e===0:t=>o.count(0,t)%e===0):o:null)),o}const r_=n_((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));r_.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?n_((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):r_:null);const o_=r_.range,i_=1e3,a_=6e4,s_=60*a_,l_=24*s_,u_=7*l_,c_=30*l_,f_=365*l_,d_=n_((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*i_)}),((e,t)=>(t-e)/i_),(e=>e.getUTCSeconds())),p_=d_.range,h_=n_((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*i_)}),((e,t)=>{e.setTime(+e+t*a_)}),((e,t)=>(t-e)/a_),(e=>e.getMinutes())),g_=h_.range,v_=n_((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*a_)}),((e,t)=>(t-e)/a_),(e=>e.getUTCMinutes())),m_=v_.range,y_=n_((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*i_-e.getMinutes()*a_)}),((e,t)=>{e.setTime(+e+t*s_)}),((e,t)=>(t-e)/s_),(e=>e.getHours())),b_=y_.range,w_=n_((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*s_)}),((e,t)=>(t-e)/s_),(e=>e.getUTCHours())),__=w_.range,x_=n_((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*a_)/l_),(e=>e.getDate()-1)),S_=x_.range,O_=n_((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/l_),(e=>e.getUTCDate()-1)),C_=O_.range,E_=n_((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/l_),(e=>Math.floor(e/l_))),A_=E_.range;function k_(e){return n_((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*a_)/u_))}const M_=k_(0),P_=k_(1),R_=k_(2),T_=k_(3),I_=k_(4),B_=k_(5),j_=k_(6),D_=M_.range,L_=P_.range,Z_=R_.range,N_=T_.range,F_=I_.range,H_=B_.range,V_=j_.range;function z_(e){return n_((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/u_))}const U_=z_(0),G_=z_(1),W_=z_(2),q_=z_(3),$_=z_(4),Y_=z_(5),X_=z_(6),K_=U_.range,J_=G_.range,Q_=W_.range,ex=q_.range,tx=$_.range,nx=Y_.range,rx=X_.range,ox=n_((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth())),ix=ox.range,ax=n_((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth())),sx=ax.range,lx=n_((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear()));lx.every=e=>isFinite(e=Math.floor(e))&&e>0?n_((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null;const ux=lx.range,cx=n_((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));cx.every=e=>isFinite(e=Math.floor(e))&&e>0?n_((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null;const fx=cx.range;function dx(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function px(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function hx(){return 0}var gx=Math.sqrt(50),vx=Math.sqrt(10),mx=Math.sqrt(2);function yx(e,t,n){var r=Math.abs(t-e)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/o;return i>=gx?o*=10:i>=vx?o*=5:i>=mx&&(o*=2),t<e?-o:o}function bx(e,t,n,r,o,i){const a=[[d_,1,i_],[d_,5,5e3],[d_,15,15e3],[d_,30,3e4],[i,1,a_],[i,5,5*a_],[i,15,15*a_],[i,30,30*a_],[o,1,s_],[o,3,3*s_],[o,6,6*s_],[o,12,12*s_],[r,1,l_],[r,2,2*l_],[n,1,u_],[t,1,c_],[t,3,3*c_],[e,1,f_]];function s(t,n,r){const o=Math.abs(n-t)/r,i=function(e){let t,n,r;function o(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<0?o=t+1:i=t}while(o<i)}return o}return 2!==e.length?(t=dx,n=(t,n)=>dx(e(t),n),r=(t,n)=>e(t)-n):(t=e===dx||e===px?e:hx,n=e,r=e),{left:o,center:function(e,t,n=0,i=e.length){const a=o(e,t,n,i-1);return a>n&&r(e[a-1],t)>-r(e[a],t)?a-1:a},right:function(e,r,o=0,i=e.length){if(o<i){if(0!==t(r,r))return i;do{const t=o+i>>>1;n(e[t],r)<=0?o=t+1:i=t}while(o<i)}return o}}}((([,,e])=>e)).right(a,o);if(i===a.length)return e.every(yx(t/f_,n/f_,r));if(0===i)return r_.every(Math.max(yx(t,n,r),1));const[s,l]=a[o/a[i-1][2]<a[i][2]/o?i-1:i];return s.every(l)}return[function(e,t,n){const r=t<e;r&&([e,t]=[t,e]);const o=n&&"function"===typeof n.range?n:s(e,t,n),i=o?o.range(e,+t+1):[];return r?i.reverse():i},s]}const[wx,_x]=bx(cx,ax,U_,E_,w_,v_),[xx,Sx]=bx(lx,ox,M_,x_,y_,h_);var Ox=n(82138),Cx=n(47238),Ex="%Y-%m-%dT%H:%M:%S.%LZ";var Ax=Date.prototype.toISOString?function(e){return e.toISOString()}:(0,Ox.g0)(Ex),kx=Ax;var Mx=+new Date("2000-01-01T00:00:00.000Z")?function(e){var t=new Date(e);return isNaN(t)?null:t}:(0,Ox.wp)(Ex),Px=Mx;function Rx(e,t,n){var r=new ar,o=t;return null==t?(r.restart(e,t,n),r):(r._restart=r.restart,r.restart=function(e,t,n){t=+t,n=null==n?or():+n,r._restart((function i(a){a+=o,r._restart(i,o+=t,n),e(a)}),t,n)},r.restart(e,t,n),r)}var Tx=e=>()=>e;function Ix(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Bx(e,t,n){this.k=e,this.x=t,this.y=n}Bx.prototype={constructor:Bx,scale:function(e){return 1===e?this:new Bx(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Bx(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var jx=new Bx(1,0,0);function Dx(e){for(;!e.__zoom;)if(!(e=e.parentNode))return jx;return e.__zoom}function Lx(e){e.stopImmediatePropagation()}function Zx(e){e.preventDefault(),e.stopImmediatePropagation()}function Nx(e){return(!e.ctrlKey||"wheel"===e.type)&&!e.button}function Fx(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e).hasAttribute("viewBox")?[[(e=e.viewBox.baseVal).x,e.y],[e.x+e.width,e.y+e.height]]:[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]:[[0,0],[e.clientWidth,e.clientHeight]]}function Hx(){return this.__zoom||jx}function Vx(e){return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function zx(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ux(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function Gx(){var e,t,n,r=Nx,o=Fx,i=Ux,a=Vx,s=zx,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,f=nv,d=xt("start","zoom","end"),p=500,h=150,g=0,v=10;function m(e){e.property("__zoom",Hx).on("wheel.zoom",O,{passive:!1}).on("mousedown.zoom",C).on("dblclick.zoom",E).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",k).on("touchend.zoom touchcancel.zoom",M).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(e,t){return(t=Math.max(l[0],Math.min(l[1],t)))===e.k?e:new Bx(t,e.x,e.y)}function b(e,t,n){var r=t[0]-n[0]*e.k,o=t[1]-n[1]*e.k;return r===e.x&&o===e.y?e:new Bx(e.k,r,o)}function w(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function _(e,t,n,r){e.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var e=this,i=arguments,a=x(e,i).event(r),s=o.apply(e,i),l=null==n?w(s):"function"===typeof n?n.apply(e,i):n,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),c=e.__zoom,d="function"===typeof t?t.apply(e,i):t,p=f(c.invert(l).concat(u/c.k),d.invert(l).concat(u/d.k));return function(e){if(1===e)e=d;else{var t=p(e),n=u/t[2];e=new Bx(n,l[0]-t[0]*n,l[1]-t[1]*n)}a.zoom(null,e)}}))}function x(e,t,n){return!n&&e.__zooming||new S(e,t)}function S(e,t){this.that=e,this.args=t,this.active=0,this.sourceEvent=null,this.extent=o.apply(e,t),this.taps=0}function O(e,...t){if(r.apply(this,arguments)){var n=x(this,t).event(e),o=this.__zoom,s=Math.max(l[0],Math.min(l[1],o.k*Math.pow(2,a.apply(this,arguments)))),c=Wn(e);if(n.wheel)n.mouse[0][0]===c[0]&&n.mouse[0][1]===c[1]||(n.mouse[1]=o.invert(n.mouse[0]=c)),clearTimeout(n.wheel);else{if(o.k===s)return;n.mouse=[c,o.invert(c)],Er(this),n.start()}Zx(e),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),h),n.zoom("mouse",i(b(y(o,s),n.mouse[0],n.mouse[1]),n.extent,u))}}function C(e,...t){if(!n&&r.apply(this,arguments)){var o=e.currentTarget,a=x(this,t,!0).event(e),s=Ln(e.view).on("mousemove.zoom",(function(e){if(Zx(e),!a.moved){var t=e.clientX-c,n=e.clientY-f;a.moved=t*t+n*n>g}a.event(e).zoom("mouse",i(b(a.that.__zoom,a.mouse[0]=Wn(e,o),a.mouse[1]),a.extent,u))}),!0).on("mouseup.zoom",(function(e){s.on("mousemove.zoom mouseup.zoom",null),zn(e.view,a.moved),Zx(e),a.event(e).end()}),!0),l=Wn(e,o),c=e.clientX,f=e.clientY;Vn(e.view),Lx(e),a.mouse=[l,this.__zoom.invert(l)],Er(this),a.start()}}function E(e,...t){if(r.apply(this,arguments)){var n=this.__zoom,a=Wn(e.changedTouches?e.changedTouches[0]:e,this),s=n.invert(a),l=n.k*(e.shiftKey?.5:2),f=i(b(y(n,l),a,s),o.apply(this,t),u);Zx(e),c>0?Ln(this).transition().duration(c).call(_,f,a,e):Ln(this).call(m.transform,f,a,e)}}function A(n,...o){if(r.apply(this,arguments)){var i,a,s,l,u=n.touches,c=u.length,f=x(this,o,n.changedTouches.length===c).event(n);for(Lx(n),a=0;a<c;++a)l=[l=Wn(s=u[a],this),this.__zoom.invert(l),s.identifier],f.touch0?f.touch1||f.touch0[2]===l[2]||(f.touch1=l,f.taps=0):(f.touch0=l,i=!0,f.taps=1+!!e);e&&(e=clearTimeout(e)),i&&(f.taps<2&&(t=l[0],e=setTimeout((function(){e=null}),p)),Er(this),f.start())}}function k(e,...t){if(this.__zooming){var n,r,o,a,s=x(this,t).event(e),l=e.changedTouches,c=l.length;for(Zx(e),n=0;n<c;++n)o=Wn(r=l[n],this),s.touch0&&s.touch0[2]===r.identifier?s.touch0[0]=o:s.touch1&&s.touch1[2]===r.identifier&&(s.touch1[0]=o);if(r=s.that.__zoom,s.touch1){var f=s.touch0[0],d=s.touch0[1],p=s.touch1[0],h=s.touch1[1],g=(g=p[0]-f[0])*g+(g=p[1]-f[1])*g,v=(v=h[0]-d[0])*v+(v=h[1]-d[1])*v;r=y(r,Math.sqrt(g/v)),o=[(f[0]+p[0])/2,(f[1]+p[1])/2],a=[(d[0]+h[0])/2,(d[1]+h[1])/2]}else{if(!s.touch0)return;o=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(b(r,o,a),s.extent,u))}}function M(e,...r){if(this.__zooming){var o,i,a=x(this,r).event(e),s=e.changedTouches,l=s.length;for(Lx(e),n&&clearTimeout(n),n=setTimeout((function(){n=null}),p),o=0;o<l;++o)i=s[o],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=Wn(i,this),Math.hypot(t[0]-i[0],t[1]-i[1])<v)){var u=Ln(this).on("dblclick.zoom");u&&u.apply(this,arguments)}}}return m.transform=function(e,t,n,r){var o=e.selection?e.selection():e;o.property("__zoom",Hx),e!==o?_(e,t,n,r):o.interrupt().each((function(){x(this,arguments).event(r).start().zoom(null,"function"===typeof t?t.apply(this,arguments):t).end()}))},m.scaleBy=function(e,t,n,r){m.scaleTo(e,(function(){return this.__zoom.k*("function"===typeof t?t.apply(this,arguments):t)}),n,r)},m.scaleTo=function(e,t,n,r){m.transform(e,(function(){var e=o.apply(this,arguments),r=this.__zoom,a=null==n?w(e):"function"===typeof n?n.apply(this,arguments):n,s=r.invert(a),l="function"===typeof t?t.apply(this,arguments):t;return i(b(y(r,l),a,s),e,u)}),n,r)},m.translateBy=function(e,t,n,r){m.transform(e,(function(){return i(this.__zoom.translate("function"===typeof t?t.apply(this,arguments):t,"function"===typeof n?n.apply(this,arguments):n),o.apply(this,arguments),u)}),null,r)},m.translateTo=function(e,t,n,r,a){m.transform(e,(function(){var e=o.apply(this,arguments),a=this.__zoom,s=null==r?w(e):"function"===typeof r?r.apply(this,arguments):r;return i(jx.translate(s[0],s[1]).scale(a.k).translate("function"===typeof t?-t.apply(this,arguments):-t,"function"===typeof n?-n.apply(this,arguments):-n),e,u)}),r,a)},S.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return 1===++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(e,t){return this.mouse&&"mouse"!==e&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&"touch"!==e&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&"touch"!==e&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit("zoom"),this},end:function(){return 0===--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(e){var t=Ln(this.that).datum();d.call(e,this.that,new Ix(e,{sourceEvent:this.sourceEvent,target:m,type:e,transform:this.that.__zoom,dispatch:d}),t)}},m.wheelDelta=function(e){return arguments.length?(a="function"===typeof e?e:Tx(+e),m):a},m.filter=function(e){return arguments.length?(r="function"===typeof e?e:Tx(!!e),m):r},m.touchable=function(e){return arguments.length?(s="function"===typeof e?e:Tx(!!e),m):s},m.extent=function(e){return arguments.length?(o="function"===typeof e?e:Tx([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),m):o},m.scaleExtent=function(e){return arguments.length?(l[0]=+e[0],l[1]=+e[1],m):[l[0],l[1]]},m.translateExtent=function(e){return arguments.length?(u[0][0]=+e[0][0],u[1][0]=+e[1][0],u[0][1]=+e[0][1],u[1][1]=+e[1][1],m):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},m.constrain=function(e){return arguments.length?(i=e,m):i},m.duration=function(e){return arguments.length?(c=+e,m):c},m.interpolate=function(e){return arguments.length?(f=e,m):f},m.on=function(){var e=d.on.apply(d,arguments);return e===d?m:e},m.clickDistance=function(e){return arguments.length?(g=(e=+e)*e,m):Math.sqrt(g)},m.tapDistance=function(e){return arguments.length?(v=+e,m):v},m}Dx.prototype=Bx.prototype},24678:function(e,t,n){"use strict";function r(e){return new Promise(((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}function o(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const o=r(n);return(e,n)=>o.then((r=>n(r.transaction(t,e).objectStore(t))))}let i;function a(){return i||(i=o("keyval-store","keyval")),i}function s(e,t=a()){return t("readonly",(t=>r(t.get(e))))}function l(e,t,n=a()){return n("readwrite",(n=>(n.put(t,e),r(n.transaction))))}function u(e,t=a()){return t("readwrite",(t=>(t.delete(e),r(t.transaction))))}function c(e=a()){return e("readwrite",(e=>(e.clear(),r(e.transaction))))}n.d(t,{IV:function(){return u},MT:function(){return o},U2:function(){return s},ZH:function(){return c},t8:function(){return l}})},909:function(e,t,n){"use strict";n.d(t,{H:function(){return o},L:function(){return r}});class r extends Map{constructor(e,t=l){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[n,r]of e)this.set(n,r)}get(e){return super.get(i(this,e))}has(e){return super.has(i(this,e))}set(e,t){return super.set(a(this,e),t)}delete(e){return super.delete(s(this,e))}}class o extends Set{constructor(e,t=l){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const n of e)this.add(n)}has(e){return super.has(i(this,e))}add(e){return super.add(a(this,e))}delete(e){return super.delete(s(this,e))}}function i({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function a({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function s({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function l(e){return null!==e&&"object"===typeof e?e.valueOf():e}},99416:function(e,t,n){"use strict";n.d(t,{zoF:function(){return pe},UID:function(){return W},BPw:function(){return ye},ETc:function(){return ge},pMU:function(){return we},zGw:function(){return fe},DYV:function(){return _e}});var r=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function o(e,t,n){return function(){if(0===arguments.length)return n();var o=arguments[arguments.length-1];if(!r(o)){for(var i=0;i<e.length;){if("function"===typeof o[e[i]])return o[e[i]].apply(o,Array.prototype.slice.call(arguments,0,-1));i+=1}if(function(e){return null!=e&&"function"===typeof e["@@transducer/step"]}(o))return t.apply(null,Array.prototype.slice.call(arguments,0,-1))(o)}return n.apply(this,arguments)}}var i=function(){return this.xf["@@transducer/init"]()},a=function(e){return this.xf["@@transducer/result"](e)};function s(e){return null!=e&&"object"===typeof e&&!0===e["@@functional/placeholder"]}function l(e){return function t(n){return 0===arguments.length||s(n)?t:e.apply(this,arguments)}}function u(e){return function t(n,r){switch(arguments.length){case 0:return t;case 1:return s(n)?t:l((function(t){return e(n,t)}));default:return s(n)&&s(r)?t:s(n)?l((function(t){return e(t,r)})):s(r)?l((function(t){return e(n,t)})):e(n,r)}}}function c(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function f(e,t,n){for(var r=0,o=n.length;r<o;){if(e(t,n[r]))return!0;r+=1}return!1}function d(e,t){return Object.prototype.hasOwnProperty.call(t,e)}var p="function"===typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t},h=Object.prototype.toString,g=function(){return"[object Arguments]"===h.call(arguments)?function(e){return"[object Arguments]"===h.call(e)}:function(e){return d("callee",e)}}(),v=g,m=!{toString:null}.propertyIsEnumerable("toString"),y=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],b=function(){return arguments.propertyIsEnumerable("length")}(),w=function(e,t){for(var n=0;n<e.length;){if(e[n]===t)return!0;n+=1}return!1},_="function"!==typeof Object.keys||b?l((function(e){if(Object(e)!==e)return[];var t,n,r=[],o=b&&v(e);for(t in e)!d(t,e)||o&&"length"===t||(r[r.length]=t);if(m)for(n=y.length-1;n>=0;)d(t=y[n],e)&&!w(r,t)&&(r[r.length]=t),n-=1;return r})):l((function(e){return Object(e)!==e?[]:Object.keys(e)})),x=l((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));function S(e,t,n,r){var o=c(e);function i(e,t){return O(e,t,n.slice(),r.slice())}return!f((function(e,t){return!f(i,t,e)}),c(t),o)}function O(e,t,n,r){if(p(e,t))return!0;var o=x(e);if(o!==x(t))return!1;if("function"===typeof e["fantasy-land/equals"]||"function"===typeof t["fantasy-land/equals"])return"function"===typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"===typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"===typeof e.equals||"function"===typeof t.equals)return"function"===typeof e.equals&&e.equals(t)&&"function"===typeof t.equals&&t.equals(e);switch(o){case"Arguments":case"Array":case"Object":if("function"===typeof e.constructor&&"Promise"===function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!==typeof t||!p(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!p(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var i=n.length-1;i>=0;){if(n[i]===e)return r[i]===t;i-=1}switch(o){case"Map":return e.size===t.size&&S(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&S(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var a=_(e);if(a.length!==_(t).length)return!1;var s=n.concat([e]),l=r.concat([t]);for(i=a.length-1;i>=0;){var u=a[i];if(!d(u,t)||!O(t[u],e[u],s,l))return!1;i-=1}return!0}var C=u((function(e,t){return O(e,t,[],[])}));function E(e,t){return function(e,t,n){var r,o;if("function"===typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n<e.length;){if(0===(o=e[n])&&1/o===r)return n;n+=1}return-1}if(t!==t){for(;n<e.length;){if("number"===typeof(o=e[n])&&o!==o)return n;n+=1}return-1}return e.indexOf(t,n);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,n);case"object":if(null===t)return e.indexOf(t,n)}for(;n<e.length;){if(C(e[n],t))return n;n+=1}return-1}(t,e,0)>=0}function A(e,t){for(var n=0,r=t.length,o=Array(r);n<r;)o[n]=e(t[n]),n+=1;return o}function k(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var M=function(e){return(e<10?"0":"")+e},P="function"===typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+M(e.getUTCMonth()+1)+"-"+M(e.getUTCDate())+"T"+M(e.getUTCHours())+":"+M(e.getUTCMinutes())+":"+M(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function R(e,t,n){for(var r=0,o=n.length;r<o;)t=e(t,n[r]),r+=1;return t}function T(e){return"[object Object]"===Object.prototype.toString.call(e)}var I=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=i,e.prototype["@@transducer/result"]=a,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}();function B(e){return function(t){return new I(e,t)}}var j=u(o(["fantasy-land/filter","filter"],B,(function(e,t){return T(t)?R((function(n,r){return e(t[r])&&(n[r]=t[r]),n}),{},_(t)):function(e,t){for(var n=0,r=t.length,o=[];n<r;)e(t[n])&&(o[o.length]=t[n]),n+=1;return o}(e,t)}))),D=u((function(e,t){return j((n=e,function(){return!n.apply(this,arguments)}),t);var n})),L=D;function Z(e,t){var n=function(n){var r=t.concat([e]);return E(n,r)?"<Circular>":Z(n,r)},r=function(e,t){return A((function(t){return k(t)+": "+n(e[t])}),t.slice().sort())};switch(Object.prototype.toString.call(e)){case"[object Arguments]":return"(function() { return arguments; }("+A(n,e).join(", ")+"))";case"[object Array]":return"["+A(n,e).concat(r(e,L((function(e){return/^\d+$/.test(e)}),_(e)))).join(", ")+"]";case"[object Boolean]":return"object"===typeof e?"new Boolean("+n(e.valueOf())+")":e.toString();case"[object Date]":return"new Date("+(isNaN(e.valueOf())?n(NaN):k(P(e)))+")";case"[object Map]":return"new Map("+n(Array.from(e))+")";case"[object Null]":return"null";case"[object Number]":return"object"===typeof e?"new Number("+n(e.valueOf())+")":1/e===-1/0?"-0":e.toString(10);case"[object Set]":return"new Set("+n(Array.from(e).sort())+")";case"[object String]":return"object"===typeof e?"new String("+n(e.valueOf())+")":k(e);case"[object Undefined]":return"undefined";default:if("function"===typeof e.toString){var o=e.toString();if("[object Object]"!==o)return o}return"{"+r(e,_(e)).join(", ")+"}"}}var N=l((function(e){return Z(e,[])})),F=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=i,e.prototype["@@transducer/result"]=a,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),H=function(e){return function(t){return new F(e,t)}};function V(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,n){return t.apply(this,arguments)};case 3:return function(e,n,r){return t.apply(this,arguments)};case 4:return function(e,n,r,o){return t.apply(this,arguments)};case 5:return function(e,n,r,o,i){return t.apply(this,arguments)};case 6:return function(e,n,r,o,i,a){return t.apply(this,arguments)};case 7:return function(e,n,r,o,i,a,s){return t.apply(this,arguments)};case 8:return function(e,n,r,o,i,a,s,l){return t.apply(this,arguments)};case 9:return function(e,n,r,o,i,a,s,l,u){return t.apply(this,arguments)};case 10:return function(e,n,r,o,i,a,s,l,u,c){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}function z(e,t,n){return function(){for(var r=[],o=0,i=e,a=0;a<t.length||o<arguments.length;){var l;a<t.length&&(!s(t[a])||o>=arguments.length)?l=t[a]:(l=arguments[o],o+=1),r[a]=l,s(l)||(i-=1),a+=1}return i<=0?n.apply(this,r):V(i,z(e,r,n))}}var U=u((function(e,t){return 1===e?l(t):V(e,z(e,[],t))})),G=u(o(["fantasy-land/map","map"],H,(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return U(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return R((function(n,r){return n[r]=e(t[r]),n}),{},_(t));default:return A(e,t)}}))),W=G,q=Number.isInteger||function(e){return e<<0===e};function $(e){return"[object String]"===Object.prototype.toString.call(e)}var Y=u((function(e,t){var n=e<0?t.length+e:e;return $(t)?t.charAt(n):t[n]}));function X(e){return function t(n,r,o){switch(arguments.length){case 0:return t;case 1:return s(n)?t:u((function(t,r){return e(n,t,r)}));case 2:return s(n)&&s(r)?t:s(n)?u((function(t,n){return e(t,r,n)})):s(r)?u((function(t,r){return e(n,t,r)})):l((function(t){return e(n,r,t)}));default:return s(n)&&s(r)&&s(o)?t:s(n)&&s(r)?u((function(t,n){return e(t,n,o)})):s(n)&&s(o)?u((function(t,n){return e(t,r,n)})):s(r)&&s(o)?u((function(t,r){return e(n,t,r)})):s(n)?l((function(t){return e(t,r,o)})):s(r)?l((function(t){return e(n,t,o)})):s(o)?l((function(t){return e(n,r,t)})):e(n,r,o)}}}var K=l((function(e){return!!r(e)||!!e&&("object"===typeof e&&(!$(e)&&(0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))})),J="undefined"!==typeof Symbol?Symbol.iterator:"@@iterator";function Q(e,t,n){return function(r,o,i){if(K(i))return e(r,o,i);if(null==i)return o;if("function"===typeof i["fantasy-land/reduce"])return t(r,o,i,"fantasy-land/reduce");if(null!=i[J])return n(r,o,i[J]());if("function"===typeof i.next)return n(r,o,i);if("function"===typeof i.reduce)return t(r,o,i,"reduce");throw new TypeError("reduce: list must be array or iterable")}}function ee(e,t,n){for(var r=0,o=n.length;r<o;){if((t=e["@@transducer/step"](t,n[r]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r+=1}return e["@@transducer/result"](t)}var te=u((function(e,t){return V(e.length,(function(){return e.apply(t,arguments)}))})),ne=te;function re(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function oe(e,t,n,r){return e["@@transducer/result"](n[r](ne(e["@@transducer/step"],e),t))}var ie=Q(ee,oe,re),ae=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();var se=X((function(e,t,n){return ie("function"===typeof e?new ae(e):e,t,n)}));function le(e,t){return function(){return t.call(this,e.apply(this,arguments))}}function ue(e,t){return function(){var n=arguments.length;if(0===n)return t();var o=arguments[n-1];return r(o)||"function"!==typeof o[e]?t.apply(this,arguments):o[e].apply(o,Array.prototype.slice.call(arguments,0,n-1))}}var ce=l(ue("tail",X(ue("slice",(function(e,t,n){return Array.prototype.slice.call(n,e,t)})))(1,1/0)));function fe(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return V(arguments[0].length,se(le,arguments[0],ce(arguments)))}function de(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t}var pe=u((function(e,t){if(r(e)){if(r(t))return e.concat(t);throw new TypeError(N(t)+" is not an array")}if($(e)){if($(t))return e+t;throw new TypeError(N(t)+" is not a string")}if(null!=e&&de(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&de(e.concat))return e.concat(t);throw new TypeError(N(e)+' does not have a method named "concat" or "fantasy-land/concat"')}));"function"===typeof Object.assign&&Object.assign;var he=u((function(e,t){return e.map((function(e){for(var n,r=t,o=0;o<e.length;){if(null==r)return;n=e[o],r=q(n)?Y(n,r):r[n],o+=1}return r}))})),ge=u((function(e,t){return he([e],t)[0]})),ve=X((function(e,t,n){var r,o={};for(r in n=n||{},t=t||{})d(r,t)&&(o[r]=d(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)d(r,n)&&!d(r,o)&&(o[r]=n[r]);return o})),me=X((function e(t,n,r){return ve((function(n,r,o){return T(r)&&T(o)?e(t,r,o):t(n,r,o)}),n,r)})),ye=u((function(e,t){return me((function(e,t,n){return n}),e,t)}));var be=u((function(e,t){return null==t||t!==t?e:t})),we=X((function(e,t,n){return be(e,ge(t,n))}));var _e=u((function(e,t){return Array.prototype.slice.call(t,0).sort(e)}));var xe="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";String.prototype.trim},55678:function(e,t,n){"use strict";n.d(t,{Am:function(){return B},Ix:function(){return O}});var r=n(67294),o=n(86010);const i=e=>"number"==typeof e&&!isNaN(e),a=e=>"string"==typeof e,s=e=>"function"==typeof e,l=e=>a(e)||s(e)?e:null,u=e=>(0,r.isValidElement)(e)||a(e)||s(e)||i(e);function c(e){let{enter:t,exit:n,appendPosition:o=!1,collapse:i=!0,collapseDuration:a=300}=e;return function(e){let{children:s,position:l,preventExitTransition:u,done:c,nodeRef:f,isIn:d}=e;const p=o?`${t}--${l}`:t,h=o?`${n}--${l}`:n,g=(0,r.useRef)(0);return(0,r.useLayoutEffect)((()=>{const e=f.current,t=p.split(" "),n=r=>{r.target===f.current&&(e.dispatchEvent(new Event("d")),e.removeEventListener("animationend",n),e.removeEventListener("animationcancel",n),0===g.current&&"animationcancel"!==r.type&&e.classList.remove(...t))};e.classList.add(...t),e.addEventListener("animationend",n),e.addEventListener("animationcancel",n)}),[]),(0,r.useEffect)((()=>{const e=f.current,t=()=>{e.removeEventListener("animationend",t),i?function(e,t,n){void 0===n&&(n=300);const{scrollHeight:r,style:o}=e;requestAnimationFrame((()=>{o.minHeight="initial",o.height=r+"px",o.transition=`all ${n}ms`,requestAnimationFrame((()=>{o.height="0",o.padding="0",o.margin="0",setTimeout(t,n)}))}))}(e,c,a):c()};d||(u?t():(g.current=1,e.className+=` ${h}`,e.addEventListener("animationend",t)))}),[d]),r.createElement(r.Fragment,null,s)}}function f(e,t){return null!=e?{content:e.content,containerId:e.props.containerId,id:e.props.toastId,theme:e.props.theme,type:e.props.type,data:e.props.data||{},isLoading:e.props.isLoading,icon:e.props.icon,status:t}:{}}const d={list:new Map,emitQueue:new Map,on(e,t){return this.list.has(e)||this.list.set(e,[]),this.list.get(e).push(t),this},off(e,t){if(t){const n=this.list.get(e).filter((e=>e!==t));return this.list.set(e,n),this}return this.list.delete(e),this},cancelEmit(e){const t=this.emitQueue.get(e);return t&&(t.forEach(clearTimeout),this.emitQueue.delete(e)),this},emit(e){this.list.has(e)&&this.list.get(e).forEach((t=>{const n=setTimeout((()=>{t(...[].slice.call(arguments,1))}),0);this.emitQueue.has(e)||this.emitQueue.set(e,[]),this.emitQueue.get(e).push(n)}))}},p=e=>{let{theme:t,type:n,...o}=e;return r.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:"colored"===t?"currentColor":`var(--toastify-icon-color-${n})`,...o})},h={info:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))},warning:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))},success:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))},error:function(e){return r.createElement(p,{...e},r.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))},spinner:function(){return r.createElement("div",{className:"Toastify__spinner"})}};function g(e){const[,t]=(0,r.useReducer)((e=>e+1),0),[n,o]=(0,r.useState)([]),c=(0,r.useRef)(null),p=(0,r.useRef)(new Map).current,g=e=>-1!==n.indexOf(e),v=(0,r.useRef)({toastKey:1,displayedToast:0,count:0,queue:[],props:e,containerId:null,isToastActive:g,getToast:e=>p.get(e)}).current;function m(e){let{containerId:t}=e;const{limit:n}=v.props;!n||t&&v.containerId!==t||(v.count-=v.queue.length,v.queue=[])}function y(e){o((t=>null==e?[]:t.filter((t=>t!==e))))}function b(){const{toastContent:e,toastProps:t,staleId:n}=v.queue.shift();_(e,t,n)}function w(e,n){let{delay:o,staleId:g,...m}=n;if(!u(e)||function(e){return!c.current||v.props.enableMultiContainer&&e.containerId!==v.props.containerId||p.has(e.toastId)&&null==e.updateId}(m))return;const{toastId:w,updateId:x,data:S}=m,{props:O}=v,C=()=>y(w),E=null==x;E&&v.count++;const A={...O,style:O.toastStyle,key:v.toastKey++,...Object.fromEntries(Object.entries(m).filter((e=>{let[t,n]=e;return null!=n}))),toastId:w,updateId:x,data:S,closeToast:C,isIn:!1,className:l(m.className||O.toastClassName),bodyClassName:l(m.bodyClassName||O.bodyClassName),progressClassName:l(m.progressClassName||O.progressClassName),autoClose:!m.isLoading&&(k=m.autoClose,M=O.autoClose,!1===k||i(k)&&k>0?k:M),deleteToast(){const e=f(p.get(w),"removed");p.delete(w),d.emit(4,e);const n=v.queue.length;if(v.count=null==w?v.count-v.displayedToast:v.count-1,v.count<0&&(v.count=0),n>0){const e=null==w?v.props.limit:1;if(1===n||1===e)v.displayedToast++,b();else{const t=e>n?n:e;v.displayedToast=t;for(let e=0;e<t;e++)b()}}else t()}};var k,M;A.iconOut=function(e){let{theme:t,type:n,isLoading:o,icon:l}=e,u=null;const c={theme:t,type:n};return!1===l||(s(l)?u=l(c):(0,r.isValidElement)(l)?u=(0,r.cloneElement)(l,c):a(l)||i(l)?u=l:o?u=h.spinner():(e=>e in h)(n)&&(u=h[n](c))),u}(A),s(m.onOpen)&&(A.onOpen=m.onOpen),s(m.onClose)&&(A.onClose=m.onClose),A.closeButton=O.closeButton,!1===m.closeButton||u(m.closeButton)?A.closeButton=m.closeButton:!0===m.closeButton&&(A.closeButton=!u(O.closeButton)||O.closeButton);let P=e;(0,r.isValidElement)(e)&&!a(e.type)?P=(0,r.cloneElement)(e,{closeToast:C,toastProps:A,data:S}):s(e)&&(P=e({closeToast:C,toastProps:A,data:S})),O.limit&&O.limit>0&&v.count>O.limit&&E?v.queue.push({toastContent:P,toastProps:A,staleId:g}):i(o)?setTimeout((()=>{_(P,A,g)}),o):_(P,A,g)}function _(e,t,n){const{toastId:r}=t;n&&p.delete(n);const i={content:e,props:t};p.set(r,i),o((e=>[...e,r].filter((e=>e!==n)))),d.emit(4,f(i,null==i.props.updateId?"added":"updated"))}return(0,r.useEffect)((()=>(v.containerId=e.containerId,d.cancelEmit(3).on(0,w).on(1,(e=>c.current&&y(e))).on(5,m).emit(2,v),()=>{p.clear(),d.emit(3,v)})),[]),(0,r.useEffect)((()=>{v.props=e,v.isToastActive=g,v.displayedToast=n.length})),{getToastToRender:function(t){const n=new Map,r=Array.from(p.values());return e.newestOnTop&&r.reverse(),r.forEach((e=>{const{position:t}=e.props;n.has(t)||n.set(t,[]),n.get(t).push(e)})),Array.from(n,(e=>t(e[0],e[1])))},containerRef:c,isToastActive:g}}function v(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientX:e.clientX}function m(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientY:e.clientY}function y(e){const[t,n]=(0,r.useState)(!1),[o,i]=(0,r.useState)(!1),a=(0,r.useRef)(null),l=(0,r.useRef)({start:0,x:0,y:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null,didMove:!1}).current,u=(0,r.useRef)(e),{autoClose:c,pauseOnHover:f,closeToast:d,onClick:p,closeOnClick:h}=e;function g(t){if(e.draggable){"touchstart"===t.nativeEvent.type&&t.nativeEvent.preventDefault(),l.didMove=!1,document.addEventListener("mousemove",_),document.addEventListener("mouseup",x),document.addEventListener("touchmove",_),document.addEventListener("touchend",x);const n=a.current;l.canCloseOnClick=!0,l.canDrag=!0,l.boundingRect=n.getBoundingClientRect(),n.style.transition="",l.x=v(t.nativeEvent),l.y=m(t.nativeEvent),"x"===e.draggableDirection?(l.start=l.x,l.removalDistance=n.offsetWidth*(e.draggablePercent/100)):(l.start=l.y,l.removalDistance=n.offsetHeight*(80===e.draggablePercent?1.5*e.draggablePercent:e.draggablePercent/100))}}function y(t){if(l.boundingRect){const{top:n,bottom:r,left:o,right:i}=l.boundingRect;"touchend"!==t.nativeEvent.type&&e.pauseOnHover&&l.x>=o&&l.x<=i&&l.y>=n&&l.y<=r?w():b()}}function b(){n(!0)}function w(){n(!1)}function _(n){const r=a.current;l.canDrag&&r&&(l.didMove=!0,t&&w(),l.x=v(n),l.y=m(n),l.delta="x"===e.draggableDirection?l.x-l.start:l.y-l.start,l.start!==l.x&&(l.canCloseOnClick=!1),r.style.transform=`translate${e.draggableDirection}(${l.delta}px)`,r.style.opacity=""+(1-Math.abs(l.delta/l.removalDistance)))}function x(){document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",x),document.removeEventListener("touchmove",_),document.removeEventListener("touchend",x);const t=a.current;if(l.canDrag&&l.didMove&&t){if(l.canDrag=!1,Math.abs(l.delta)>l.removalDistance)return i(!0),void e.closeToast();t.style.transition="transform 0.2s, opacity 0.2s",t.style.transform=`translate${e.draggableDirection}(0)`,t.style.opacity="1"}}(0,r.useEffect)((()=>{u.current=e})),(0,r.useEffect)((()=>(a.current&&a.current.addEventListener("d",b,{once:!0}),s(e.onOpen)&&e.onOpen((0,r.isValidElement)(e.children)&&e.children.props),()=>{const e=u.current;s(e.onClose)&&e.onClose((0,r.isValidElement)(e.children)&&e.children.props)})),[]),(0,r.useEffect)((()=>(e.pauseOnFocusLoss&&(document.hasFocus()||w(),window.addEventListener("focus",b),window.addEventListener("blur",w)),()=>{e.pauseOnFocusLoss&&(window.removeEventListener("focus",b),window.removeEventListener("blur",w))})),[e.pauseOnFocusLoss]);const S={onMouseDown:g,onTouchStart:g,onMouseUp:y,onTouchEnd:y};return c&&f&&(S.onMouseEnter=w,S.onMouseLeave=b),h&&(S.onClick=e=>{p&&p(e),l.canCloseOnClick&&d()}),{playToast:b,pauseToast:w,isRunning:t,preventExitTransition:o,toastRef:a,eventHandlers:S}}function b(e){let{closeToast:t,theme:n,ariaLabel:o="close"}=e;return r.createElement("button",{className:`Toastify__close-button Toastify__close-button--${n}`,type:"button",onClick:e=>{e.stopPropagation(),t(e)},"aria-label":o},r.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},r.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function w(e){let{delay:t,isRunning:n,closeToast:i,type:a="default",hide:l,className:u,style:c,controlledProgress:f,progress:d,rtl:p,isIn:h,theme:g}=e;const v=l||f&&0===d,m={...c,animationDuration:`${t}ms`,animationPlayState:n?"running":"paused",opacity:v?0:1};f&&(m.transform=`scaleX(${d})`);const y=(0,o.default)("Toastify__progress-bar",f?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${g}`,`Toastify__progress-bar--${a}`,{"Toastify__progress-bar--rtl":p}),b=s(u)?u({rtl:p,type:a,defaultClassName:y}):(0,o.default)(y,u);return r.createElement("div",{role:"progressbar","aria-hidden":v?"true":"false","aria-label":"notification timer",className:b,style:m,[f&&d>=1?"onTransitionEnd":"onAnimationEnd"]:f&&d<1?null:()=>{h&&i()}})}const _=e=>{const{isRunning:t,preventExitTransition:n,toastRef:i,eventHandlers:a}=y(e),{closeButton:l,children:u,autoClose:c,onClick:f,type:d,hideProgressBar:p,closeToast:h,transition:g,position:v,className:m,style:_,bodyClassName:x,bodyStyle:S,progressClassName:O,progressStyle:C,updateId:E,role:A,progress:k,rtl:M,toastId:P,deleteToast:R,isIn:T,isLoading:I,iconOut:B,closeOnClick:j,theme:D}=e,L=(0,o.default)("Toastify__toast",`Toastify__toast-theme--${D}`,`Toastify__toast--${d}`,{"Toastify__toast--rtl":M},{"Toastify__toast--close-on-click":j}),Z=s(m)?m({rtl:M,position:v,type:d,defaultClassName:L}):(0,o.default)(L,m),N=!!k||!c,F={closeToast:h,type:d,theme:D};let H=null;return!1===l||(H=s(l)?l(F):(0,r.isValidElement)(l)?(0,r.cloneElement)(l,F):b(F)),r.createElement(g,{isIn:T,done:R,position:v,preventExitTransition:n,nodeRef:i},r.createElement("div",{id:P,onClick:f,className:Z,...a,style:_,ref:i},r.createElement("div",{...T&&{role:A},className:s(x)?x({type:d}):(0,o.default)("Toastify__toast-body",x),style:S},null!=B&&r.createElement("div",{className:(0,o.default)("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!I})},B),r.createElement("div",null,u)),H,r.createElement(w,{...E&&!N?{key:`pb-${E}`}:{},rtl:M,theme:D,delay:c,isRunning:t,isIn:T,closeToast:h,hide:p,type:d,style:C,className:O,controlledProgress:N,progress:k||0})))},x=function(e,t){return void 0===t&&(t=!1),{enter:`Toastify--animate Toastify__${e}-enter`,exit:`Toastify--animate Toastify__${e}-exit`,appendPosition:t}},S=c(x("bounce",!0)),O=(c(x("slide",!0)),c(x("zoom")),c(x("flip")),(0,r.forwardRef)(((e,t)=>{const{getToastToRender:n,containerRef:i,isToastActive:a}=g(e),{className:u,style:c,rtl:f,containerId:d}=e;function p(e){const t=(0,o.default)("Toastify__toast-container",`Toastify__toast-container--${e}`,{"Toastify__toast-container--rtl":f});return s(u)?u({position:e,rtl:f,defaultClassName:t}):(0,o.default)(t,l(u))}return(0,r.useEffect)((()=>{t&&(t.current=i.current)}),[]),r.createElement("div",{ref:i,className:"Toastify",id:d},n(((e,t)=>{const n=t.length?{...c}:{...c,pointerEvents:"none"};return r.createElement("div",{className:p(e),style:n,key:`container-${e}`},t.map(((e,n)=>{let{content:o,props:i}=e;return r.createElement(_,{...i,isIn:a(i.toastId),style:{...i.style,"--nth":n+1,"--len":t.length},key:`toast-${i.key}`},o)})))})))})));O.displayName="ToastContainer",O.defaultProps={position:"top-right",transition:S,autoClose:5e3,closeButton:b,pauseOnHover:!0,pauseOnFocusLoss:!0,closeOnClick:!0,draggable:!0,draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light"};let C,E=new Map,A=[],k=1;function M(){return""+k++}function P(e){return e&&(a(e.toastId)||i(e.toastId))?e.toastId:M()}function R(e,t){return E.size>0?d.emit(0,e,t):A.push({content:e,options:t}),t.toastId}function T(e,t){return{...t,type:t&&t.type||e,toastId:P(t)}}function I(e){return(t,n)=>R(t,T(e,n))}function B(e,t){return R(e,T("default",t))}B.loading=(e,t)=>R(e,T("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...t})),B.promise=function(e,t,n){let r,{pending:o,error:i,success:l}=t;o&&(r=a(o)?B.loading(o,n):B.loading(o.render,{...n,...o}));const u={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},c=(e,t,o)=>{if(null==t)return void B.dismiss(r);const i={type:e,...u,...n,data:o},s=a(t)?{render:t}:t;return r?B.update(r,{...i,...s}):B(s.render,{...i,...s}),o},f=s(e)?e():e;return f.then((e=>c("success",l,e))).catch((e=>c("error",i,e))),f},B.success=I("success"),B.info=I("info"),B.error=I("error"),B.warning=I("warning"),B.warn=B.warning,B.dark=(e,t)=>R(e,T("default",{theme:"dark",...t})),B.dismiss=e=>{E.size>0?d.emit(1,e):A=A.filter((t=>null!=e&&t.options.toastId!==e))},B.clearWaitingQueue=function(e){return void 0===e&&(e={}),d.emit(5,e)},B.isActive=e=>{let t=!1;return E.forEach((n=>{n.isToastActive&&n.isToastActive(e)&&(t=!0)})),t},B.update=function(e,t){void 0===t&&(t={}),setTimeout((()=>{const n=function(e,t){let{containerId:n}=t;const r=E.get(n||C);return r&&r.getToast(e)}(e,t);if(n){const{props:r,content:o}=n,i={delay:100,...r,...t,toastId:t.toastId||e,updateId:M()};i.toastId!==e&&(i.staleId=e);const a=i.render||o;delete i.render,R(a,i)}}),0)},B.done=e=>{B.update(e,{progress:1})},B.onChange=e=>(d.on(4,e),()=>{d.off(4,e)}),B.POSITION={TOP_LEFT:"top-left",TOP_RIGHT:"top-right",TOP_CENTER:"top-center",BOTTOM_LEFT:"bottom-left",BOTTOM_RIGHT:"bottom-right",BOTTOM_CENTER:"bottom-center"},B.TYPE={INFO:"info",SUCCESS:"success",WARNING:"warning",ERROR:"error",DEFAULT:"default"},d.on(2,(e=>{C=e.containerId||e,E.set(C,e),A.forEach((e=>{d.emit(0,e.content,e.options)})),A=[]})).on(3,(e=>{E.delete(e.containerId||e),0===E.size&&d.off(0).off(1).off(5)}))},27856:function(e,t,n){"use strict";function r(e,t,n){var r=(n||{}).atBegin;return function(e,t,n){var r,o=n||{},i=o.noTrailing,a=void 0!==i&&i,s=o.noLeading,l=void 0!==s&&s,u=o.debounceMode,c=void 0===u?void 0:u,f=!1,d=0;function p(){r&&clearTimeout(r)}function h(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var s=this,u=Date.now()-d;function h(){d=Date.now(),t.apply(s,o)}function g(){r=void 0}f||(l||!c||r||h(),p(),void 0===c&&u>e?l?(d=Date.now(),a||(r=setTimeout(c?g:h,e))):h():!0!==a&&(r=setTimeout(c?g:h,void 0===c?e-u:e)))}return h.cancel=function(e){var t=(e||{}).upcomingOnly,n=void 0!==t&&t;p(),f=!n},h}(e,t,{debounceMode:!1!==(void 0!==r&&r)})}n.d(t,{D:function(){return r}})},72488:function(e){"use strict";e.exports=JSON.parse('{"units":{"1":{"symbol":"1","name":"","print_symbol":"","is_metric":false,"is_special":false,"is_additive":true},"%":{"symbol":"%","name":"percent","print_symbol":"%","is_metric":false,"is_special":false,"is_additive":false},"A":{"symbol":"A","name":"amp\xe8re","print_symbol":"A","is_metric":true,"is_special":false,"is_additive":true},"A.h":{"symbol":"A.h","name":"amp\xe8re-hour","print_symbol":"Ah","is_metric":true,"is_special":false,"is_additive":true},"Bit":{"symbol":"Bit","name":"Bit","print_symbol":"Bit","is_metric":true,"is_special":false,"is_additive":true},"Bit/s":{"symbol":"Bit/s","name":"Bit per second","print_symbol":"Bit/s","is_metric":true,"is_special":false,"is_additive":true},"By":{"symbol":"By","name":"byte","print_symbol":"B","is_metric":true,"is_special":false,"is_additive":true},"By/s":{"symbol":"By/s","name":"byte per second","print_symbol":"B/s","is_metric":true,"is_special":false,"is_additive":true},"Cel":{"symbol":"Cel","name":"degree Celsius","print_symbol":"\xb0C","is_metric":true,"is_special":true,"is_additive":false},"GiBy":{"symbol":"GiBy","name":"gibibyte","print_symbol":"GiB","is_metric":true,"is_special":false,"is_additive":true},"GiBy/s":{"symbol":"GiBy/s","name":"gibibyte per second","print_symbol":"GiB/s","is_metric":true,"is_special":false,"is_additive":true},"Hz":{"symbol":"Hz","name":"hertz","print_symbol":"Hz","is_metric":true,"is_special":false,"is_additive":true},"J":{"symbol":"J","name":"joule","print_symbol":"J","is_metric":true,"is_special":false,"is_additive":true},"KiBy":{"symbol":"KiBy","name":"kibibyte","print_symbol":"KiB","is_metric":true,"is_special":false,"is_additive":true},"KiBy/s":{"symbol":"KiBy/s","name":"kibibyte per second","print_symbol":"KiB/s","is_metric":true,"is_special":false,"is_additive":true},"KiBy/{operation}":{"symbol":"KiBy/{operation}","name":"kibibyte per operation","print_symbol":"KiB/operation","is_metric":true,"is_special":false,"is_additive":true},"Kibit":{"symbol":"Kibit","name":"kibibit","print_symbol":"Kibit","is_metric":true,"is_special":false,"is_additive":true},"Kibit/s":{"symbol":"Kibit/s","name":"kibibit per second","print_symbol":"Kibit/s","is_metric":true,"is_special":false,"is_additive":true},"MHz":{"symbol":"MHz","name":"megahertz","print_symbol":"MHz","is_metric":true,"is_special":false,"is_additive":true},"GHz":{"symbol":"GHz","name":"gigahertz","print_symbol":"GHz","is_metric":true,"is_special":false,"is_additive":true},"MiBy":{"symbol":"MiBy","name":"mebibyte","print_symbol":"MiB","is_metric":true,"is_special":false,"is_additive":true},"MiBy/s":{"symbol":"MiBy/s","name":"mebibyte per second","print_symbol":"MiB/s","is_metric":true,"is_special":false,"is_additive":true},"Mibit/s":{"symbol":"Mibit/s","name":"mebibit per second","print_symbol":"Mibit/s","is_metric":true,"is_special":false,"is_additive":true},"V":{"symbol":"V","name":"volt","print_symbol":"V","is_metric":true,"is_special":false,"is_additive":true},"W":{"symbol":"W","name":"watt","print_symbol":"W","is_metric":true,"is_special":false,"is_additive":true},"W.h":{"symbol":"W.h","name":"watt-hour","print_symbol":"Wh","is_metric":true,"is_special":false,"is_additive":true},"[CPU]":{"symbol":"[CPU]","name":"CPU","print_symbol":"CPU","is_metric":true,"is_special":false,"is_additive":true},"[degF]":{"symbol":"[degF]","name":"degree Fahrenheit","print_symbol":"\xb0F","is_metric":false,"is_special":true,"is_additive":false},"[ppm]":{"symbol":"[ppm]","name":"parts per million","print_symbol":"ppm","is_metric":false,"is_special":false,"is_additive":true},"c[CPU]":{"symbol":"c[CPU]","name":"centiCPU","print_symbol":"cCPU","is_metric":true,"is_special":false,"is_additive":true},"dB[mW]":{"symbol":"dB[mW]","name":"decibel milliwatt","print_symbol":"dB(mW)","is_metric":true,"is_special":true,"is_additive":false},"h":{"symbol":"h","name":"hour","print_symbol":"h","is_metric":false,"is_special":false,"is_additive":true},"m[CPU]":{"symbol":"m[CPU]","name":"milliCPU","print_symbol":"mCPU","is_metric":true,"is_special":false,"is_additive":true},"min":{"symbol":"min","name":"minute","print_symbol":"min","is_metric":false,"is_special":false,"is_additive":true},"ms":{"symbol":"ms","name":"millisecond","print_symbol":"ms","is_metric":true,"is_special":false,"is_additive":true},"ms/s":{"symbol":"ms/s","name":"millisecond per second","print_symbol":"ms/s","is_metric":true,"is_special":false,"is_additive":true},"ms/{operation}":{"symbol":"ms/{operation}","name":"millisecond per operation","print_symbol":"ms/operation","is_metric":true,"is_special":false,"is_additive":true},"ns":{"symbol":"ns","name":"nanosecond","print_symbol":"ns","is_metric":true,"is_special":false,"is_additive":true},"s":{"symbol":"s","name":"second","print_symbol":"s","is_metric":true,"is_special":false,"is_additive":true},"s/s":{"symbol":"s/s","name":"second per second","print_symbol":"s/s","is_metric":true,"is_special":false,"is_additive":true},"us":{"symbol":"us","name":"microsecond","print_symbol":"\u03bcs","is_metric":true,"is_special":false,"is_additive":true},"us/s":{"symbol":"us/s","name":"microsecond per second","print_symbol":"\u03bcs/s","is_metric":true,"is_special":false,"is_additive":true},"{acquisition}/s":{"symbol":"{acquisition}/s","name":"acquisitions per second","print_symbol":"acquisitions/s","is_metric":true,"is_special":false,"is_additive":true},"{action}/s":{"symbol":"{action}/s","name":"actions per second","print_symbol":"actions/s","is_metric":true,"is_special":false,"is_additive":true},"{address space}":{"symbol":"{address space}","name":"address spaces","print_symbol":"address spaces","is_metric":false,"is_special":false,"is_additive":true},"{answer}/s":{"symbol":"{answer}/s","name":"answers per second","print_symbol":"answers/s","is_metric":true,"is_special":false,"is_additive":true},"{array}":{"symbol":"{array}","name":"arrays","print_symbol":"arrays","is_metric":false,"is_special":false,"is_additive":true},"{assembly}/s":{"symbol":"{assembly}/s","name":"assemblies per second","print_symbol":"assemblies/s","is_metric":true,"is_special":false,"is_additive":true},"{assert}/s":{"symbol":"{assert}/s","name":"asserts per second","print_symbol":"asserts/s","is_metric":true,"is_special":false,"is_additive":true},"{association}":{"symbol":"{association}","name":"associations","print_symbol":"associations","is_metric":false,"is_special":false,"is_additive":true},"{attempt}":{"symbol":"{attempt}","name":"attempts","print_symbol":"attempts","is_metric":false,"is_special":false,"is_additive":true},"{attempt}/s":{"symbol":"{attempt}/s","name":"attempts per second","print_symbol":"attempts/s","is_metric":true,"is_special":false,"is_additive":true},"{authentication}/s":{"symbol":"{authentication}/s","name":"authentications per second","print_symbol":"authentications/s","is_metric":true,"is_special":false,"is_additive":true},"{ban}/s":{"symbol":"{ban}/s","name":"bans per second","print_symbol":"bans/s","is_metric":true,"is_special":false,"is_additive":true},"{batch}":{"symbol":"{batch}","name":"batches","print_symbol":"batches","is_metric":false,"is_special":false,"is_additive":true},"{batch}/s":{"symbol":"{batch}/s","name":"batches per second","print_symbol":"batches/s","is_metric":true,"is_special":false,"is_additive":true},"{bind}/s":{"symbol":"{bind}/s","name":"binds per second","print_symbol":"binds/s","is_metric":true,"is_special":false,"is_additive":true},"{blocked subscription}":{"symbol":"{blocked subscription}","name":"blocked subscriptions","print_symbol":"blocked subscriptions","is_metric":false,"is_special":false,"is_additive":true},"{block}":{"symbol":"{block}","name":"blocks","print_symbol":"blocks","is_metric":false,"is_special":false,"is_additive":true},"{boolean}":{"symbol":"{boolean}","name":"boolean","print_symbol":"","is_metric":false,"is_special":false,"is_additive":true},"{buffer}":{"symbol":"{buffer}","name":"buffers","print_symbol":"buffers","is_metric":false,"is_special":false,"is_additive":true},"{call}":{"symbol":"{call}","name":"calls","print_symbol":"calls","is_metric":false,"is_special":false,"is_additive":true},"{call}/s":{"symbol":"{call}/s","name":"calls per second","print_symbol":"calls/s","is_metric":true,"is_special":false,"is_additive":true},"{ccw}/s":{"symbol":"{ccw}/s","name":"ccws per second","print_symbol":"ccws/s","is_metric":true,"is_special":false,"is_additive":true},"{chain}":{"symbol":"{chain}","name":"chains","print_symbol":"chains","is_metric":false,"is_special":false,"is_additive":true},"{change}/s":{"symbol":"{change}/s","name":"changes per second","print_symbol":"changes/s","is_metric":true,"is_special":false,"is_additive":true},"{channel}/s":{"symbol":"{channel}/s","name":"channels per second","print_symbol":"channels/s","is_metric":true,"is_special":false,"is_additive":true},"{character}":{"symbol":"{character}","name":"characters","print_symbol":"characters","is_metric":false,"is_special":false,"is_additive":true},"{checkpoint}/s":{"symbol":"{checkpoint}/s","name":"checkpoints per second","print_symbol":"checkpoints/s","is_metric":true,"is_special":false,"is_additive":true},"{check}/s":{"symbol":"{check}/s","name":"checks per second","print_symbol":"checks/s","is_metric":true,"is_special":false,"is_additive":true},"{child}":{"symbol":"{child}","name":"children","print_symbol":"children","is_metric":false,"is_special":false,"is_additive":true},"{chunk}":{"symbol":"{chunk}","name":"chunks","print_symbol":"chunks","is_metric":false,"is_special":false,"is_additive":true},"{class}":{"symbol":"{class}","name":"classes","print_symbol":"classes","is_metric":false,"is_special":false,"is_additive":true},"{class}/s":{"symbol":"{class}/s","name":"classes per second","print_symbol":"classes/s","is_metric":true,"is_special":false,"is_additive":true},"{client}":{"symbol":"{client}","name":"clients","print_symbol":"clients","is_metric":false,"is_special":false,"is_additive":true},"{cluster}":{"symbol":"{cluster}","name":"clusters","print_symbol":"clusters","is_metric":false,"is_special":false,"is_additive":true},"{cluster}/s":{"symbol":"{cluster}/s","name":"clusters per second","print_symbol":"clusters/s","is_metric":true,"is_special":false,"is_additive":true},"{code}":{"symbol":"{code}","name":"codes","print_symbol":"codes","is_metric":false,"is_special":false,"is_additive":true},"{collection}":{"symbol":"{collection}","name":"collections","print_symbol":"collections","is_metric":false,"is_special":false,"is_additive":true},"{column}":{"symbol":"{column}","name":"columns","print_symbol":"columns","is_metric":false,"is_special":false,"is_additive":true},"{command}":{"symbol":"{command}","name":"commands","print_symbol":"commands","is_metric":false,"is_special":false,"is_additive":true},"{command}/s":{"symbol":"{command}/s","name":"commands per second","print_symbol":"commands/s","is_metric":true,"is_special":false,"is_additive":true},"{commit}":{"symbol":"{commit}","name":"commits","print_symbol":"commits","is_metric":false,"is_special":false,"is_additive":true},"{commit}/s":{"symbol":"{commit}/s","name":"commits per second","print_symbol":"commits/s","is_metric":true,"is_special":false,"is_additive":true},"{compilation}/s":{"symbol":"{compilation}/s","name":"compilations per second","print_symbol":"compilations/s","is_metric":true,"is_special":false,"is_additive":true},"{component}":{"symbol":"{component}","name":"components","print_symbol":"components","is_metric":false,"is_special":false,"is_additive":true},"{concurrent file accesses}":{"symbol":"{concurrent file accesses}","name":"concurrent file accesseses","print_symbol":"concurrent file accesseses","is_metric":false,"is_special":false,"is_additive":true},"{connection}":{"symbol":"{connection}","name":"connections","print_symbol":"connections","is_metric":false,"is_special":false,"is_additive":true},"{connection}/s":{"symbol":"{connection}/s","name":"connections per second","print_symbol":"connections/s","is_metric":true,"is_special":false,"is_additive":true},"{consumer}":{"symbol":"{consumer}","name":"consumers","print_symbol":"consumers","is_metric":false,"is_special":false,"is_additive":true},"{container}":{"symbol":"{container}","name":"containers","print_symbol":"containers","is_metric":false,"is_special":false,"is_additive":true},"{contention}/s":{"symbol":"{contention}/s","name":"contentions per second","print_symbol":"contentions/s","is_metric":true,"is_special":false,"is_additive":true},"{context switch}/s":{"symbol":"{context switch}/s","name":"context switches per second","print_symbol":"context switches/s","is_metric":true,"is_special":false,"is_additive":true},"{context}":{"symbol":"{context}","name":"contexts","print_symbol":"contexts","is_metric":false,"is_special":false,"is_additive":true},"{cookie}/s":{"symbol":"{cookie}/s","name":"cookies per second","print_symbol":"cookies/s","is_metric":true,"is_special":false,"is_additive":true},"{count}/s":{"symbol":"{count}/s","name":"counts per second","print_symbol":"counts/s","is_metric":true,"is_special":false,"is_additive":true},"{ctoken}":{"symbol":"{ctoken}","name":"ctokens","print_symbol":"ctokens","is_metric":false,"is_special":false,"is_additive":true},"{cursor}":{"symbol":"{cursor}","name":"cursors","print_symbol":"cursors","is_metric":false,"is_special":false,"is_additive":true},"{cursor}/s":{"symbol":"{cursor}/s","name":"cursors per second","print_symbol":"cursors/s","is_metric":true,"is_special":false,"is_additive":true},"{cycle}":{"symbol":"{cycle}","name":"cycles","print_symbol":"cycles","is_metric":false,"is_special":false,"is_additive":true},"{cycle}/s":{"symbol":"{cycle}/s","name":"cycles per second","print_symbol":"cycles/s","is_metric":true,"is_special":false,"is_additive":true},"{database}":{"symbol":"{database}","name":"databases","print_symbol":"databases","is_metric":false,"is_special":false,"is_additive":true},"{deadlock}/s":{"symbol":"{deadlock}/s","name":"deadlocks per second","print_symbol":"deadlocks/s","is_metric":true,"is_special":false,"is_additive":true},"{depth}":{"symbol":"{depth}","name":"depths","print_symbol":"depths","is_metric":false,"is_special":false,"is_additive":true},"{descriptor}":{"symbol":"{descriptor}","name":"descriptors","print_symbol":"descriptors","is_metric":false,"is_special":false,"is_additive":true},"{destination}":{"symbol":"{destination}","name":"destinations","print_symbol":"destinations","is_metric":false,"is_special":false,"is_additive":true},"{device}":{"symbol":"{device}","name":"devices","print_symbol":"devices","is_metric":false,"is_special":false,"is_additive":true},"{dialog}":{"symbol":"{dialog}","name":"dialogs","print_symbol":"dialogs","is_metric":false,"is_special":false,"is_additive":true},"{dialog}/s":{"symbol":"{dialog}/s","name":"dialogs per second","print_symbol":"dialogs/s","is_metric":true,"is_special":false,"is_additive":true},"{difficulty}":{"symbol":"{difficulty}","name":"difficulty","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{directory}":{"symbol":"{directory}","name":"directories","print_symbol":"directories","is_metric":false,"is_special":false,"is_additive":true},"{discard}/s":{"symbol":"{discard}/s","name":"discards per second","print_symbol":"discards/s","is_metric":true,"is_special":false,"is_additive":true},"{disk}":{"symbol":"{disk}","name":"disks","print_symbol":"disks","is_metric":false,"is_special":false,"is_additive":true},"{dispatch}/s":{"symbol":"{dispatch}/s","name":"dispatches per second","print_symbol":"dispatches/s","is_metric":true,"is_special":false,"is_additive":true},"{document}":{"symbol":"{document}","name":"documents","print_symbol":"documents","is_metric":false,"is_special":false,"is_additive":true},"{document}/s":{"symbol":"{document}/s","name":"documents per second","print_symbol":"documents/s","is_metric":true,"is_special":false,"is_additive":true},"{doc}":{"symbol":"{doc}","name":"docs","print_symbol":"docs","is_metric":false,"is_special":false,"is_additive":true},"{domain}":{"symbol":"{domain}","name":"domains","print_symbol":"domains","is_metric":false,"is_special":false,"is_additive":true},"{domain}/s":{"symbol":"{domain}/s","name":"domains per second","print_symbol":"domains/s","is_metric":true,"is_special":false,"is_additive":true},"{dpc}/s":{"symbol":"{dpc}/s","name":"dpcs per second","print_symbol":"dpcs/s","is_metric":true,"is_special":false,"is_additive":true},"{drop}/s":{"symbol":"{drop}/s","name":"drops per second","print_symbol":"drops/s","is_metric":true,"is_special":false,"is_additive":true},"{election}/s":{"symbol":"{election}/s","name":"elections per second","print_symbol":"elections/s","is_metric":true,"is_special":false,"is_additive":true},"{element}":{"symbol":"{element}","name":"elements","print_symbol":"elements","is_metric":false,"is_special":false,"is_additive":true},"{email}":{"symbol":"{email}","name":"emails","print_symbol":"emails","is_metric":false,"is_special":false,"is_additive":true},"{endpoint}":{"symbol":"{endpoint}","name":"endpoints","print_symbol":"endpoints","is_metric":false,"is_special":false,"is_additive":true},"{entropy}":{"symbol":"{entropy}","name":"entropies","print_symbol":"entropies","is_metric":false,"is_special":false,"is_additive":true},"{entry}":{"symbol":"{entry}","name":"entries","print_symbol":"entries","is_metric":false,"is_special":false,"is_additive":true},"{entry}/s":{"symbol":"{entry}/s","name":"entries per second","print_symbol":"entries/s","is_metric":true,"is_special":false,"is_additive":true},"{erase}":{"symbol":"{erase}","name":"erases","print_symbol":"erases","is_metric":false,"is_special":false,"is_additive":true},"{error}":{"symbol":"{error}","name":"errors","print_symbol":"errors","is_metric":false,"is_special":false,"is_additive":true},"{error}/s":{"symbol":"{error}/s","name":"errors per second","print_symbol":"errors/s","is_metric":true,"is_special":false,"is_additive":true},"{event}":{"symbol":"{event}","name":"events","print_symbol":"events","is_metric":false,"is_special":false,"is_additive":true},"{event}/s":{"symbol":"{event}/s","name":"events per second","print_symbol":"events/s","is_metric":true,"is_special":false,"is_additive":true},"{exception}":{"symbol":"{exception}","name":"exceptions","print_symbol":"exceptions","is_metric":false,"is_special":false,"is_additive":true},"{exception}/s":{"symbol":"{exception}/s","name":"exceptions per second","print_symbol":"exceptions/s","is_metric":true,"is_special":false,"is_additive":true},"{expectation}/s":{"symbol":"{expectation}/s","name":"expectations per second","print_symbol":"expectations/s","is_metric":true,"is_special":false,"is_additive":true},"{failure}":{"symbol":"{failure}","name":"failures","print_symbol":"failures","is_metric":false,"is_special":false,"is_additive":true},"{failure}/s":{"symbol":"{failure}/s","name":"failures per second","print_symbol":"failures/s","is_metric":true,"is_special":false,"is_additive":true},"{fail}/s":{"symbol":"{fail}/s","name":"fails per second","print_symbol":"fails/s","is_metric":true,"is_special":false,"is_additive":true},"{fault}":{"symbol":"{fault}","name":"faults","print_symbol":"faults","is_metric":false,"is_special":false,"is_additive":true},"{fd}":{"symbol":"{fd}","name":"fds","print_symbol":"fds","is_metric":false,"is_special":false,"is_additive":true},"{fetch}":{"symbol":"{fetch}","name":"fetches","print_symbol":"fetches","is_metric":false,"is_special":false,"is_additive":true},"{file descriptor}":{"symbol":"{file descriptor}","name":"file descriptors","print_symbol":"file descriptors","is_metric":false,"is_special":false,"is_additive":true},"{filesystem}":{"symbol":"{filesystem}","name":"filesystems","print_symbol":"filesystems","is_metric":false,"is_special":false,"is_additive":true},"{file}":{"symbol":"{file}","name":"files","print_symbol":"files","is_metric":false,"is_special":false,"is_additive":true},"{file}/s":{"symbol":"{file}/s","name":"files per second","print_symbol":"files/s","is_metric":true,"is_special":false,"is_additive":true},"{filter}/s":{"symbol":"{filter}/s","name":"filters per second","print_symbol":"filters/s","is_metric":true,"is_special":false,"is_additive":true},"{finally}/s":{"symbol":"{finally}/s","name":"finallies per second","print_symbol":"finallies/s","is_metric":true,"is_special":false,"is_additive":true},"{flag}":{"symbol":"{flag}","name":"flags","print_symbol":"flags","is_metric":false,"is_special":false,"is_additive":true},"{flow}":{"symbol":"{flow}","name":"flows","print_symbol":"flows","is_metric":false,"is_special":false,"is_additive":true},"{flush}":{"symbol":"{flush}","name":"flushes","print_symbol":"flushes","is_metric":false,"is_special":false,"is_additive":true},"{flush}/s":{"symbol":"{flush}/s","name":"flushes per second","print_symbol":"flushes/s","is_metric":true,"is_special":false,"is_additive":true},"{fragment}":{"symbol":"{fragment}","name":"fragments","print_symbol":"fragments","is_metric":false,"is_special":false,"is_additive":true},"{frame}/s":{"symbol":"{frame}/s","name":"frames per second","print_symbol":"frames/s","is_metric":true,"is_special":false,"is_additive":true},"{fsm}":{"symbol":"{fsm}","name":"fsms","print_symbol":"fsms","is_metric":false,"is_special":false,"is_additive":true},"{gc}/s":{"symbol":"{gc}/s","name":"gcs per second","print_symbol":"gcs/s","is_metric":true,"is_special":false,"is_additive":true},"{goroutine}":{"symbol":"{goroutine}","name":"goroutines","print_symbol":"goroutines","is_metric":false,"is_special":false,"is_additive":true},"{handler}/s":{"symbol":"{handler}/s","name":"handlers per second","print_symbol":"handlers/s","is_metric":true,"is_special":false,"is_additive":true},"{handle}":{"symbol":"{handle}","name":"handles","print_symbol":"handles","is_metric":false,"is_special":false,"is_additive":true},"{handle}/s":{"symbol":"{handle}/s","name":"handles per second","print_symbol":"handles/s","is_metric":true,"is_special":false,"is_additive":true},"{handshake}/s":{"symbol":"{handshake}/s","name":"handshakes per second","print_symbol":"handshakes/s","is_metric":true,"is_special":false,"is_additive":true},"{harakiri}":{"symbol":"{harakiri}","name":"harakiris","print_symbol":"harakiris","is_metric":false,"is_special":false,"is_additive":true},"{hash table}":{"symbol":"{hash table}","name":"hash tables","print_symbol":"hash tables","is_metric":false,"is_special":false,"is_additive":true},"{heartbeat}":{"symbol":"{heartbeat}","name":"heartbeats","print_symbol":"heartbeats","is_metric":false,"is_special":false,"is_additive":true},"{hit}/s":{"symbol":"{hit}/s","name":"hits per second","print_symbol":"hits/s","is_metric":true,"is_special":false,"is_additive":true},"{host}":{"symbol":"{host}","name":"hosts","print_symbol":"hosts","is_metric":false,"is_special":false,"is_additive":true},"{image}":{"symbol":"{image}","name":"images","print_symbol":"images","is_metric":false,"is_special":false,"is_additive":true},"{index}":{"symbol":"{index}","name":"indices","print_symbol":"indices","is_metric":false,"is_special":false,"is_additive":true},"{index}/s":{"symbol":"{index}/s","name":"indices per second","print_symbol":"indices/s","is_metric":true,"is_special":false,"is_additive":true},"{indice}":{"symbol":"{indice}","name":"indices","print_symbol":"indices","is_metric":false,"is_special":false,"is_additive":true},"{inode}":{"symbol":"{inode}","name":"inodes","print_symbol":"inodes","is_metric":false,"is_special":false,"is_additive":true},"{instruction}/s":{"symbol":"{instruction}/s","name":"instructions per second","print_symbol":"instructions/s","is_metric":true,"is_special":false,"is_additive":true},"{instruction}/{cycle}":{"symbol":"{instruction}/{cycle}","name":"instructions per cycle","print_symbol":"instructions/cycle","is_metric":false,"is_special":false,"is_additive":true},"{interface}":{"symbol":"{interface}","name":"interfaces","print_symbol":"interfaces","is_metric":false,"is_special":false,"is_additive":true},"{interrupt}":{"symbol":"{interrupt}","name":"interrupts","print_symbol":"interrupts","is_metric":false,"is_special":false,"is_additive":true},"{interrupt}/s":{"symbol":"{interrupt}/s","name":"interrupts per second","print_symbol":"interrupts/s","is_metric":true,"is_special":false,"is_additive":true},"{invoke}":{"symbol":"{invoke}","name":"invokes","print_symbol":"invokes","is_metric":false,"is_special":false,"is_additive":true},"{iop}":{"symbol":"{iop}","name":"iops","print_symbol":"iops","is_metric":false,"is_special":false,"is_additive":true},"{iop}/s":{"symbol":"{iop}/s","name":"iops per second","print_symbol":"iops/s","is_metric":true,"is_special":false,"is_additive":true},"{ip}":{"symbol":"{ip}","name":"ips","print_symbol":"ips","is_metric":false,"is_special":false,"is_additive":true},"{issue}/s":{"symbol":"{issue}/s","name":"issues per second","print_symbol":"issues/s","is_metric":true,"is_special":false,"is_additive":true},"{item}":{"symbol":"{item}","name":"items","print_symbol":"items","is_metric":false,"is_special":false,"is_additive":true},"{job}":{"symbol":"{job}","name":"jobs","print_symbol":"jobs","is_metric":false,"is_special":false,"is_additive":true},"{job}/s":{"symbol":"{job}/s","name":"jobs per second","print_symbol":"jobs/s","is_metric":true,"is_special":false,"is_additive":true},"{join}/s":{"symbol":"{join}/s","name":"joins per second","print_symbol":"joins/s","is_metric":true,"is_special":false,"is_additive":true},"{key}":{"symbol":"{key}","name":"keys","print_symbol":"keys","is_metric":false,"is_special":false,"is_additive":true},"{key}/s":{"symbol":"{key}/s","name":"keys per second","print_symbol":"keys/s","is_metric":true,"is_special":false,"is_additive":true},"{kill}":{"symbol":"{kill}","name":"kills","print_symbol":"kills","is_metric":false,"is_special":false,"is_additive":true},"{kill}/s":{"symbol":"{kill}/s","name":"kills per second","print_symbol":"kills/s","is_metric":true,"is_special":false,"is_additive":true},"{leaseholder}":{"symbol":"{leaseholder}","name":"leaseholders","print_symbol":"leaseholders","is_metric":false,"is_special":false,"is_additive":true},"{lease}":{"symbol":"{lease}","name":"leases","print_symbol":"leases","is_metric":false,"is_special":false,"is_additive":true},"{listener}":{"symbol":"{listener}","name":"listeners","print_symbol":"listeners","is_metric":false,"is_special":false,"is_additive":true},"{listener}/s":{"symbol":"{listener}/s","name":"listeners per second","print_symbol":"listeners/s","is_metric":true,"is_special":false,"is_additive":true},"{list}/s":{"symbol":"{list}/s","name":"lists per second","print_symbol":"lists/s","is_metric":true,"is_special":false,"is_additive":true},"{load}":{"symbol":"{load}","name":"loads","print_symbol":"loads","is_metric":false,"is_special":false,"is_additive":true},"{lock}":{"symbol":"{lock}","name":"locks","print_symbol":"locks","is_metric":false,"is_special":false,"is_additive":true},"{lock}/s":{"symbol":"{lock}/s","name":"locks per second","print_symbol":"locks/s","is_metric":true,"is_special":false,"is_additive":true},"{log2}":{"symbol":"{log2}","name":"base 2 log","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{login}":{"symbol":"{login}","name":"logins","print_symbol":"logins","is_metric":false,"is_special":false,"is_additive":true},"{log}/s":{"symbol":"{log}/s","name":"logs per second","print_symbol":"logs/s","is_metric":true,"is_special":false,"is_additive":true},"{lookup}/s":{"symbol":"{lookup}/s","name":"lookups per second","print_symbol":"lookups/s","is_metric":true,"is_special":false,"is_additive":true},"{mac address}/s":{"symbol":"{mac address}/s","name":"mac addresses per second","print_symbol":"mac addresses/s","is_metric":true,"is_special":false,"is_additive":true},"{marshalling}/s":{"symbol":"{marshalling}/s","name":"marshallings per second","print_symbol":"marshallings/s","is_metric":true,"is_special":false,"is_additive":true},"{message}":{"symbol":"{message}","name":"messages","print_symbol":"messages","is_metric":false,"is_special":false,"is_additive":true},"{message}/s":{"symbol":"{message}/s","name":"messages per second","print_symbol":"messages/s","is_metric":true,"is_special":false,"is_additive":true},"{method}":{"symbol":"{method}","name":"methods","print_symbol":"methods","is_metric":false,"is_special":false,"is_additive":true},"{method}/s":{"symbol":"{method}/s","name":"methods per second","print_symbol":"methods/s","is_metric":true,"is_special":false,"is_additive":true},"{migration}":{"symbol":"{migration}","name":"migrations","print_symbol":"migrations","is_metric":false,"is_special":false,"is_additive":true},"{miss}/s":{"symbol":"{miss}/s","name":"misses per second","print_symbol":"misses/s","is_metric":true,"is_special":false,"is_additive":true},"{modification}/s":{"symbol":"{modification}/s","name":"modifications per second","print_symbol":"modifications/s","is_metric":true,"is_special":false,"is_additive":true},"{netsplit}":{"symbol":"{netsplit}","name":"netsplits","print_symbol":"netsplits","is_metric":false,"is_special":false,"is_additive":true},"{netsplit}/s":{"symbol":"{netsplit}/s","name":"netsplits per second","print_symbol":"netsplits/s","is_metric":true,"is_special":false,"is_additive":true},"{node}":{"symbol":"{node}","name":"nodes","print_symbol":"nodes","is_metric":false,"is_special":false,"is_additive":true},"{ntp mode}":{"symbol":"{ntp mode}","name":"mode","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{object}":{"symbol":"{object}","name":"objects","print_symbol":"objects","is_metric":false,"is_special":false,"is_additive":true},"{object}/s":{"symbol":"{object}/s","name":"objects per second","print_symbol":"objects/s","is_metric":true,"is_special":false,"is_additive":true},"{observation}":{"symbol":"{observation}","name":"observations","print_symbol":"observations","is_metric":false,"is_special":false,"is_additive":true},"{observe}/s":{"symbol":"{observe}/s","name":"observes per second","print_symbol":"observes/s","is_metric":true,"is_special":false,"is_additive":true},"{octet}":{"symbol":"{octet}","name":"octets","print_symbol":"octets","is_metric":false,"is_special":false,"is_additive":true},"{open socket}":{"symbol":"{open socket}","name":"open sockets","print_symbol":"open sockets","is_metric":false,"is_special":false,"is_additive":true},"{operation}":{"symbol":"{operation}","name":"operations","print_symbol":"operations","is_metric":false,"is_special":false,"is_additive":true},"{operation}/s":{"symbol":"{operation}/s","name":"operations per second","print_symbol":"operations/s","is_metric":true,"is_special":false,"is_additive":true},"{overflow}/s":{"symbol":"{overflow}/s","name":"overflows per second","print_symbol":"overflows/s","is_metric":true,"is_special":false,"is_additive":true},"{packet}":{"symbol":"{packet}","name":"packets","print_symbol":"packets","is_metric":false,"is_special":false,"is_additive":true},"{packet}/s":{"symbol":"{packet}/s","name":"packets per second","print_symbol":"packets/s","is_metric":true,"is_special":false,"is_additive":true},"{page fault}":{"symbol":"{page fault}","name":"page faults","print_symbol":"page faults","is_metric":false,"is_special":false,"is_additive":true},"{page fault}/s":{"symbol":"{page fault}/s","name":"page faults per second","print_symbol":"page faults/s","is_metric":true,"is_special":false,"is_additive":true},"{page}":{"symbol":"{page}","name":"pages","print_symbol":"pages","is_metric":false,"is_special":false,"is_additive":true},"{page}/s":{"symbol":"{page}/s","name":"pages per second","print_symbol":"pages/s","is_metric":true,"is_special":false,"is_additive":true},"{panic}/s":{"symbol":"{panic}/s","name":"panics per second","print_symbol":"panics/s","is_metric":true,"is_special":false,"is_additive":true},"{peer}":{"symbol":"{peer}","name":"peers","print_symbol":"peers","is_metric":false,"is_special":false,"is_additive":true},"{pipe}":{"symbol":"{pipe}","name":"pipes","print_symbol":"pipes","is_metric":false,"is_special":false,"is_additive":true},"{pod}":{"symbol":"{pod}","name":"pods","print_symbol":"pods","is_metric":false,"is_special":false,"is_additive":true},"{pool}":{"symbol":"{pool}","name":"pools","print_symbol":"pools","is_metric":false,"is_special":false,"is_additive":true},"{prefetch}":{"symbol":"{prefetch}","name":"prefetches","print_symbol":"prefetches","is_metric":false,"is_special":false,"is_additive":true},"{prefetch}/s":{"symbol":"{prefetch}/s","name":"prefetches per second","print_symbol":"prefetches/s","is_metric":true,"is_special":false,"is_additive":true},"{probability}":{"symbol":"{probability}","name":"probabilities","print_symbol":"probabilities","is_metric":false,"is_special":false,"is_additive":true},"{problem}/s":{"symbol":"{problem}/s","name":"problems per second","print_symbol":"problems/s","is_metric":true,"is_special":false,"is_additive":true},"{process}":{"symbol":"{process}","name":"processes","print_symbol":"processes","is_metric":false,"is_special":false,"is_additive":true},"{process}/s":{"symbol":"{process}/s","name":"processes per second","print_symbol":"processes/s","is_metric":true,"is_special":false,"is_additive":true},"{producer}":{"symbol":"{producer}","name":"producers","print_symbol":"producers","is_metric":false,"is_special":false,"is_additive":true},"{program}":{"symbol":"{program}","name":"programs","print_symbol":"programs","is_metric":false,"is_special":false,"is_additive":true},"{propertie}/s":{"symbol":"{propertie}/s","name":"properties per second","print_symbol":"properties/s","is_metric":true,"is_special":false,"is_additive":true},"{publish}/s":{"symbol":"{publish}/s","name":"publishes per second","print_symbol":"publishes/s","is_metric":true,"is_special":false,"is_additive":true},"{pull}":{"symbol":"{pull}","name":"pulls","print_symbol":"pulls","is_metric":false,"is_special":false,"is_additive":true},"{pull}/s":{"symbol":"{pull}/s","name":"pulls per second","print_symbol":"pulls/s","is_metric":true,"is_special":false,"is_additive":true},"{query}":{"symbol":"{query}","name":"queries","print_symbol":"queries","is_metric":false,"is_special":false,"is_additive":true},"{query}/s":{"symbol":"{query}/s","name":"queries per second","print_symbol":"queries/s","is_metric":true,"is_special":false,"is_additive":true},"{question}/s":{"symbol":"{question}/s","name":"questions per second","print_symbol":"questions/s","is_metric":true,"is_special":false,"is_additive":true},"{queue processe}":{"symbol":"{queue processe}","name":"queue processes","print_symbol":"queue processes","is_metric":false,"is_special":false,"is_additive":true},"{queue processe}/s":{"symbol":"{queue processe}/s","name":"queue processes per second","print_symbol":"queue processes/s","is_metric":true,"is_special":false,"is_additive":true},"{queue}":{"symbol":"{queue}","name":"queues","print_symbol":"queues","is_metric":false,"is_special":false,"is_additive":true},"{range}":{"symbol":"{range}","name":"ranges","print_symbol":"ranges","is_metric":false,"is_special":false,"is_additive":true},"{read}/s":{"symbol":"{read}/s","name":"reads per second","print_symbol":"reads/s","is_metric":true,"is_special":false,"is_additive":true},"{read}/{query}":{"symbol":"{read}/{query}","name":"reads per query","print_symbol":"reads/query","is_metric":false,"is_special":false,"is_additive":true},"{recompile}/s":{"symbol":"{recompile}/s","name":"recompiles per second","print_symbol":"recompiles/s","is_metric":true,"is_special":false,"is_additive":true},"{record}/s":{"symbol":"{record}/s","name":"records per second","print_symbol":"records/s","is_metric":true,"is_special":false,"is_additive":true},"{redirect}/s":{"symbol":"{redirect}/s","name":"redirects per second","print_symbol":"redirects/s","is_metric":true,"is_special":false,"is_additive":true},"{reduction}":{"symbol":"{reduction}","name":"reductions","print_symbol":"reductions","is_metric":false,"is_special":false,"is_additive":true},"{referral}/s":{"symbol":"{referral}/s","name":"referrals per second","print_symbol":"referrals/s","is_metric":true,"is_special":false,"is_additive":true},"{registration}/s":{"symbol":"{registration}/s","name":"registrations per second","print_symbol":"registrations/s","is_metric":true,"is_special":false,"is_additive":true},"{rejection}/s":{"symbol":"{rejection}/s","name":"rejections per second","print_symbol":"rejections/s","is_metric":true,"is_special":false,"is_additive":true},"{relation}":{"symbol":"{relation}","name":"relations","print_symbol":"relations","is_metric":false,"is_special":false,"is_additive":true},"{reorg}":{"symbol":"{reorg}","name":"reorgs","print_symbol":"reorgs","is_metric":false,"is_special":false,"is_additive":true},"{repair}":{"symbol":"{repair}","name":"repairs","print_symbol":"repairs","is_metric":false,"is_special":false,"is_additive":true},"{replica}":{"symbol":"{replica}","name":"replicas","print_symbol":"replicas","is_metric":false,"is_special":false,"is_additive":true},"{reply}":{"symbol":"{reply}","name":"replies","print_symbol":"replies","is_metric":false,"is_special":false,"is_additive":true},"{reply}/s":{"symbol":"{reply}/s","name":"replies per second","print_symbol":"replies/s","is_metric":true,"is_special":false,"is_additive":true},"{report}/s":{"symbol":"{report}/s","name":"reports per second","print_symbol":"reports/s","is_metric":true,"is_special":false,"is_additive":true},"{request}":{"symbol":"{request}","name":"requests","print_symbol":"requests","is_metric":false,"is_special":false,"is_additive":true},"{request}/s":{"symbol":"{request}/s","name":"requests per second","print_symbol":"requests/s","is_metric":true,"is_special":false,"is_additive":true},"{reset}/s":{"symbol":"{reset}/s","name":"resets per second","print_symbol":"resets/s","is_metric":true,"is_special":false,"is_additive":true},"{resolution}/s":{"symbol":"{resolution}/s","name":"resolutions per second","print_symbol":"resolutions/s","is_metric":true,"is_special":false,"is_additive":true},"{respawn}":{"symbol":"{respawn}","name":"respawns","print_symbol":"respawns","is_metric":false,"is_special":false,"is_additive":true},"{response}":{"symbol":"{response}","name":"responses","print_symbol":"responses","is_metric":false,"is_special":false,"is_additive":true},"{response}/s":{"symbol":"{response}/s","name":"responses per second","print_symbol":"responses/s","is_metric":true,"is_special":false,"is_additive":true},"{restart}":{"symbol":"{restart}","name":"restarts","print_symbol":"restarts","is_metric":false,"is_special":false,"is_additive":true},"{retrieval}/s":{"symbol":"{retrieval}/s","name":"retrievals per second","print_symbol":"retrievals/s","is_metric":true,"is_special":false,"is_additive":true},"{retry}":{"symbol":"{retry}","name":"retries","print_symbol":"retries","is_metric":false,"is_special":false,"is_additive":true},"{retry}/s":{"symbol":"{retry}/s","name":"retries per second","print_symbol":"retries/s","is_metric":true,"is_special":false,"is_additive":true},"{reuse}/s":{"symbol":"{reuse}/s","name":"reuses per second","print_symbol":"reuses/s","is_metric":true,"is_special":false,"is_additive":true},"{rotation}/min":{"symbol":"{rotation}/min","name":"rotations per minute","print_symbol":"rotations/min","is_metric":false,"is_special":false,"is_additive":true},"{row}":{"symbol":"{row}","name":"rows","print_symbol":"rows","is_metric":false,"is_special":false,"is_additive":true},"{row}/s":{"symbol":"{row}/s","name":"rows per second","print_symbol":"rows/s","is_metric":true,"is_special":false,"is_additive":true},"{rule}":{"symbol":"{rule}","name":"rules","print_symbol":"rules","is_metric":false,"is_special":false,"is_additive":true},"{sample}":{"symbol":"{sample}","name":"samples","print_symbol":"samples","is_metric":false,"is_special":false,"is_additive":true},"{scan}/s":{"symbol":"{scan}/s","name":"scans per second","print_symbol":"scans/s","is_metric":true,"is_special":false,"is_additive":true},"{score}":{"symbol":"{score}","name":"scores","print_symbol":"scores","is_metric":false,"is_special":false,"is_additive":true},"{search}/s":{"symbol":"{search}/s","name":"searches per second","print_symbol":"searches/s","is_metric":true,"is_special":false,"is_additive":true},"{sector}":{"symbol":"{sector}","name":"sectors","print_symbol":"sectors","is_metric":false,"is_special":false,"is_additive":true},"{sector}/s":{"symbol":"{sector}/s","name":"sectors per second","print_symbol":"sectors/s","is_metric":true,"is_special":false,"is_additive":true},"{segment}":{"symbol":"{segment}","name":"segments","print_symbol":"segments","is_metric":false,"is_special":false,"is_additive":true},"{segment}/s":{"symbol":"{segment}/s","name":"segments per second","print_symbol":"segments/s","is_metric":true,"is_special":false,"is_additive":true},"{semaphore}":{"symbol":"{semaphore}","name":"semaphores","print_symbol":"semaphores","is_metric":false,"is_special":false,"is_additive":true},"{sensor}":{"symbol":"{sensor}","name":"sensors","print_symbol":"sensors","is_metric":false,"is_special":false,"is_additive":true},"{server}":{"symbol":"{server}","name":"servers","print_symbol":"servers","is_metric":false,"is_special":false,"is_additive":true},"{session}":{"symbol":"{session}","name":"sessions","print_symbol":"sessions","is_metric":false,"is_special":false,"is_additive":true},"{session}/s":{"symbol":"{session}/s","name":"sessions per second","print_symbol":"sessions/s","is_metric":true,"is_special":false,"is_additive":true},"{shard}":{"symbol":"{shard}","name":"shards","print_symbol":"shards","is_metric":false,"is_special":false,"is_additive":true},"{share}":{"symbol":"{share}","name":"shares","print_symbol":"shares","is_metric":false,"is_special":false,"is_additive":true},"{shutdown}":{"symbol":"{shutdown}","name":"shutdowns","print_symbol":"shutdowns","is_metric":false,"is_special":false,"is_additive":true},"{sibling}":{"symbol":"{sibling}","name":"siblings","print_symbol":"siblings","is_metric":false,"is_special":false,"is_additive":true},"{socket}":{"symbol":"{socket}","name":"sockets","print_symbol":"sockets","is_metric":false,"is_special":false,"is_additive":true},"{socket}/s":{"symbol":"{socket}/s","name":"sockets per second","print_symbol":"sockets/s","is_metric":true,"is_special":false,"is_additive":true},"{softirq}/s":{"symbol":"{softirq}/s","name":"softirqs per second","print_symbol":"softirqs/s","is_metric":true,"is_special":false,"is_additive":true},"{source}":{"symbol":"{source}","name":"sources","print_symbol":"sources","is_metric":false,"is_special":false,"is_additive":true},"{split}/s":{"symbol":"{split}/s","name":"splits per second","print_symbol":"splits/s","is_metric":true,"is_special":false,"is_additive":true},"{sstable}":{"symbol":"{sstable}","name":"sstables","print_symbol":"sstables","is_metric":false,"is_special":false,"is_additive":true},"{stack_frame}/s":{"symbol":"{stack_frame}/s","name":"stack_frames per second","print_symbol":"stack_frames/s","is_metric":true,"is_special":false,"is_additive":true},"{star}":{"symbol":"{star}","name":"stars","print_symbol":"stars","is_metric":false,"is_special":false,"is_additive":true},"{statement}":{"symbol":"{statement}","name":"statements","print_symbol":"statements","is_metric":false,"is_special":false,"is_additive":true},"{statement}/s":{"symbol":"{statement}/s","name":"statements per second","print_symbol":"statements/s","is_metric":true,"is_special":false,"is_additive":true},"{status}":{"symbol":"{status}","name":"status","print_symbol":"","is_metric":false,"is_special":false,"is_additive":true},"{stat}":{"symbol":"{stat}","name":"stats","print_symbol":"stats","is_metric":false,"is_special":false,"is_additive":true},"{stratum}":{"symbol":"{stratum}","name":"stratum","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{stub}/s":{"symbol":"{stub}/s","name":"stubs per second","print_symbol":"stubs/s","is_metric":true,"is_special":false,"is_additive":true},"{subscription}":{"symbol":"{subscription}","name":"subscriptions","print_symbol":"subscriptions","is_metric":false,"is_special":false,"is_additive":true},"{subscription}/s":{"symbol":"{subscription}/s","name":"subscriptions per second","print_symbol":"subscriptions/s","is_metric":true,"is_special":false,"is_additive":true},"{switch}":{"symbol":"{switch}","name":"switches","print_symbol":"switches","is_metric":false,"is_special":false,"is_additive":true},"{sync}":{"symbol":"{sync}","name":"syncs","print_symbol":"syncs","is_metric":false,"is_special":false,"is_additive":true},"{syscall}/s":{"symbol":"{syscall}/s","name":"syscalls per second","print_symbol":"syscalls/s","is_metric":true,"is_special":false,"is_additive":true},"{table}":{"symbol":"{table}","name":"tables","print_symbol":"tables","is_metric":false,"is_special":false,"is_additive":true},"{table}/s":{"symbol":"{table}/s","name":"tables per second","print_symbol":"tables/s","is_metric":true,"is_special":false,"is_additive":true},"{task}":{"symbol":"{task}","name":"tasks","print_symbol":"tasks","is_metric":false,"is_special":false,"is_additive":true},"{task}/s":{"symbol":"{task}/s","name":"tasks per second","print_symbol":"tasks/s","is_metric":true,"is_special":false,"is_additive":true},"{thread}":{"symbol":"{thread}","name":"threads","print_symbol":"threads","is_metric":false,"is_special":false,"is_additive":true},"{thread}/s":{"symbol":"{thread}/s","name":"threads per second","print_symbol":"threads/s","is_metric":true,"is_special":false,"is_additive":true},"{tick}":{"symbol":"{tick}","name":"ticks","print_symbol":"ticks","is_metric":false,"is_special":false,"is_additive":true},"{timeout}/s":{"symbol":"{timeout}/s","name":"timeouts per second","print_symbol":"timeouts/s","is_metric":true,"is_special":false,"is_additive":true},"{token}":{"symbol":"{token}","name":"tokens","print_symbol":"tokens","is_metric":false,"is_special":false,"is_additive":true},"{trace}/s":{"symbol":"{trace}/s","name":"traces per second","print_symbol":"traces/s","is_metric":true,"is_special":false,"is_additive":true},"{transaction}":{"symbol":"{transaction}","name":"transactions","print_symbol":"transactions","is_metric":false,"is_special":false,"is_additive":true},"{transaction}/s":{"symbol":"{transaction}/s","name":"transactions per second","print_symbol":"transactions/s","is_metric":true,"is_special":false,"is_additive":true},"{transition}/s":{"symbol":"{transition}/s","name":"transitions per second","print_symbol":"transitions/s","is_metric":true,"is_special":false,"is_additive":true},"{trip}/s":{"symbol":"{trip}/s","name":"trips per second","print_symbol":"trips/s","is_metric":true,"is_special":false,"is_additive":true},"{tube}":{"symbol":"{tube}","name":"tubes","print_symbol":"tubes","is_metric":false,"is_special":false,"is_additive":true},"{unsynchronized block}":{"symbol":"{unsynchronized block}","name":"unsynchronized blocks","print_symbol":"unsynchronized blocks","is_metric":false,"is_special":false,"is_additive":true},"{update}/s":{"symbol":"{update}/s","name":"updates per second","print_symbol":"updates/s","is_metric":true,"is_special":false,"is_additive":true},"{user}":{"symbol":"{user}","name":"users","print_symbol":"users","is_metric":false,"is_special":false,"is_additive":true},"{view}":{"symbol":"{view}","name":"views","print_symbol":"views","is_metric":false,"is_special":false,"is_additive":true},"{vm}":{"symbol":"{vm}","name":"vms","print_symbol":"vms","is_metric":false,"is_special":false,"is_additive":true},"{volume}":{"symbol":"{volume}","name":"volumes","print_symbol":"volumes","is_metric":false,"is_special":false,"is_additive":true},"{waiter}/s":{"symbol":"{waiter}/s","name":"waiters per second","print_symbol":"waiters/s","is_metric":true,"is_special":false,"is_additive":true},"{watch}":{"symbol":"{watch}","name":"watches","print_symbol":"watches","is_metric":false,"is_special":false,"is_additive":true},"{worker}":{"symbol":"{worker}","name":"workers","print_symbol":"workers","is_metric":false,"is_special":false,"is_additive":true},"{worker}/s":{"symbol":"{worker}/s","name":"workers per second","print_symbol":"workers/s","is_metric":true,"is_special":false,"is_additive":true},"{writeset}":{"symbol":"{writeset}","name":"writesets","print_symbol":"writesets","is_metric":false,"is_special":false,"is_additive":true},"{writeset}/s":{"symbol":"{writeset}/s","name":"writesets per second","print_symbol":"writesets/s","is_metric":true,"is_special":false,"is_additive":true},"{write}":{"symbol":"{write}","name":"writes","print_symbol":"writes","is_metric":false,"is_special":false,"is_additive":true},"{write}/s":{"symbol":"{write}/s","name":"writes per second","print_symbol":"writes/s","is_metric":true,"is_special":false,"is_additive":true},"{xid}":{"symbol":"{xid}","name":"transaction ID","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false},"{zone}":{"symbol":"{zone}","name":"zones","print_symbol":"zones","is_metric":false,"is_special":false,"is_additive":true},"{z}":{"symbol":"{z}","name":"z-score","print_symbol":"","is_metric":false,"is_special":false,"is_additive":false}},"aliases":{"% of time working":"%","Ah":"A.h","Ampere":"A","Amps":"A","B":"By","B/s":"By/s","Celsius":"Cel","Fahrenheit":"[degF]","GiB":"GiBy","Jobs":"{job}","Joule":"J","KB":"KiBy","KiB":"KiBy","KiB/operation":"KiBy/{operation}","KiB/s":"KiBy/s","MB":"MiBy","Mbps":"Mibit/s","MiB":"MiBy","MiB/s":"MiBy/s","minutes":"min","percent":"%","RPM":"{rotation}/min","rpm":"{rotation}/min","Rotations / Minute":"{rotation}/min","Rotations/min":"{rotation}/min","Status":"{status}","Volts":"V","Watt":"W","Watts":"W","Wh":"W.h","acquisitions/s":"{acquisition}/s","actions/s":"{action}/s","active connections":"{connection}","address spaces":"{address space}","answers/s":"{answer}/s","arrays":"{array}","assemblies/s":"{assembly}/s","asserts/s":"{assert}/s","associations":"{association}","attempts":"{attempt}","attempts/s":"{attempt}/s","authentications/s":"{authentication}/s","bans/s":"{ban}/s","binds/s":"{bind}/s","block":"{block}","blocked subscriptions":"{blocked subscription}","blocks":"{block}","bool":"{boolean}","boolean":"{boolean}","buffers":"{buffer}","bytes":"By","bytes/s":"By/s","calls":"{call}","calls/s":"{call}/s","ccw/s":"{ccw}/s","celsius":"Cel","chains":"{chain}","changes/s":"{change}/s","channels/s":"{channel}/s","characters":"{character}","checkpoints/s":"{checkpoint}/s","checks / sec":"{check}/s","checks/s":"{check}/s","children":"{child}","chunks":"{chunk}","classes":"{class}","classes/s":"{class}/s","clients":"{client}","clusters":"{cluster}","clusters/s":"{cluster}/s","code":"{code}","collections":"{collection}","columns":"{column}","commands":"{command}","commands/s":"{command}/s","commits":"{commit}","commits/s":"{commit}/s","compilations/s":"{compilation}/s","components":"{component}","connections":"{connection}","connections/s":"{connection}/s","conns":"{connection}","consumers":"{consumer}","containers":"{container}","contentions/s":"{contention}/s","context switches/s":"{context switch}/s","contexts":"{context}","cookies/s":"{cookie}/s","count":"1","counts/s":"{count}/s","cpu time":"1","cpus":"[CPU]","ctokens":"{ctoken}","current threads":"{thread}","cursors":"{cursor}","cursors/s":"{cursor}/s","cycle count":"{cycle}","cycles":"{cycle}","cycles/s":"{cycle}/s","dBm":"dB[mW]","databases":"{database}","deadlocks/s":"{deadlock}/s","depth":"{depth}","descriptors":"{descriptor}","dests":"{destination}","devices":"{device}","dialogs":"{dialog}","dialogs/s":"{dialog}/s","difference":"{process}","difficulty":"{difficulty}","directories":"{directory}","discards/s":"{discard}/s","disks":"{disk}","dispatches/s":"{dispatch}/s","docs":"{doc}","documents":"{document}","documents/s":"{document}/s","domain/s":"{domain}/s","domains":"{domain}","dpcs/s":"{dpc}/s","drops/s":"{drop}/s","elections/s":"{election}/s","elements":"{element}","emails":"{email}","endpoints":"{endpoint}","entries":"{entry}","entries/s":"{entry}/s","entropy":"{entropy}","erases":"{erase}","errors":"{error}","errors/s":"{error}/s","events":"{event}","events/s":"{event}/s","exceptions":"{exception}","exceptions/s":"{exception}/s","exit status":"{status}","expectations/s":"{expectation}/s","expired/s":"{object}/s","failed disks":"{disk}","failed servers":"{server}","fails/s":"{fail}/s","failures":"{failure}","failures/s":"{failure}/s","faults":"{fault}","faults/s":"{page fault}/s","fd":"{fd}","fetches":"{fetch}","file descriptors":"{file descriptor}","files":"{file}","files/s":"{file}/s","filesystems":"{filesystem}","filters/s":"{filter}/s","finallys/s":"{finally}/s","flag":"{flag}","flows":"{flow}","flushes":"{flush}","flushes/s":"{flush}/s","fragments":"{fragment}","frames/s":"{frame}/s","fsms":"{fsm}","gc/s":"{gc}/s","goroutines":"{goroutine}","handlers/s":"{handler}/s","handles":"{handle}","handles/s":"{handle}/s","handshakes/s":"{handshake}/s","harakiris":"{harakiri}","hash tables":"{hash table}","health servers":"{server}","heartbeats":"{heartbeat}","hits/s":"{hit}/s","hmode":"{ntp mode}","hosts":"{host}","hours":"h","images":"{image}","index":"{index}","indexes":"{index}","indexes/s":"{index}/s","indices":"{indice}","inodes":"{inode}","instructions/cycle":"{instruction}/{cycle}","instructions/s":"{instruction}/s","interfaces":"{interface}","interrupts":"{interrupt}","interrupts/s":"{interrupt}/s","invokes":"{invoke}","iops":"{iop}","iops/s":"{iop}/s","ips":"{ip}","is degraded":"{boolean}","issues/s":"{issue}/s","items":"{item}","jobs":"{job}","jobs/s":"{job}/s","joins/s":"{join}/s","keys":"{key}","keys/s":"{key}/s","kills":"{kill}","kills/s":"{kill}/s","kilobit/s":"Kibit/s","kilobits":"Kibit","kilobits/s":"Kibit/s","kilobytes":"KiBy","kilobytes/s":"KiBy/s","leaseholders":"{leaseholder}","leases":"{lease}","level":"{stratum}","listeners":"{listener}","listeners/s":"{listener}/s","lists/s":"{list}/s","load":"{load}","locks":"{lock}","locks/s":"{lock}/s","log2":"{log2}","logs/s":"{log}/s","lookups/s":"{lookup}/s","mac addresses/s":"{mac address}/s","marshallings/s":"{marshalling}/s","merged operations/s":"{operation}/s","message batches":"{batch}","message batches/s":"{batch}/s","messages":"{message}","messages/s":"{message}/s","methods":"{method}","methods/s":"{method}/s","microseconds":"us","microseconds lost/s":"us/s","microseconds/s":"us/s","migrations":"{migration}","milisecondds":"ms","miliseconds":"ms","millicpu":"m[CPU]","milliseconds":"ms","milliseconds/operation":"ms/{operation}","milliseconds/s":"ms/s","misses":"{thread}","misses/s":"{miss}/s","modifications/s":"{modification}/s","netsplits":"{netsplit}","netsplits/s":"{netsplit}/s","nodes":"{node}","nuked/s":"{object}/s","num":"1","number":"{thread}","number/s":"{lookup}/s","objects":"{object}","objects/s":"{object}/s","observations":"{observation}","observes/s":"{observe}/s","octets":"{octet}","open files":"{file}","open pipes":"{pipe}","open sockets":"{open socket}","operations":"{operation}","operations/s":"{operation}/s","ops/s":"{operation}/s","overflows/s":"{overflow}/s","packets":"{packet}","packets/s":"{packet}/s","page faults/s":"{page fault}/s","page/s":"{page}/s","pages":"{page}","pages/s":"{page}/s","panics/s":"{panic}/s","peers":"{peer}","percentage":"%","pgfaults/s":"{page fault}/s","pipes":"{pipe}","pmode":"{ntp mode}","pods":"{pod}","pools":"{pool}","ppm":"[ppm]","pps":"{packet}/s","prefetches":"{prefetch}","prefetches/s":"{prefetch}/s","probability":"{probability}","problems/s":"{problem}/s","processes":"{process}","processes/s":"{process}/s","producers":"{producer}","programs":"{program}","properties/s":"{propertie}/s","publishes/s":"{publish}/s","pulls":"{pull}","pulls/s":"{pull}/s","queries":"{query}","queries/s":"{query}/s","questions/s":"{question}/s","queue processes":"{queue processe}","queue processes/s":"{queue processe}/s","queue_length":"1","queued_size":"1","queues":"{queue}","ranges":"{range}","ratio":"1","reads/query":"{read}/{query}","reads/s":"{read}/s","recompiles/s":"{recompile}/s","records/s":"{record}/s","redirects/s":"{redirect}/s","reductions":"{reduction}","referrals/s":"{referral}/s","registrations/s":"{registration}/s","rejections/s":"{rejection}/s","relations":"{relation}","reorgs":"{reorg}","repairs":"{repair}","replicas":"{replica}","replies":"{reply}","replies/s":"{reply}/s","reports/s":"{report}/s","requests":"{request}","requests/s":"{request}/s","resets/s":"{reset}/s","resolutions/s":"{resolution}/s","respawns":"{respawn}","responses":"{response}","responses/s":"{response}/s","restarts":"{restart}","retries":"{retry}","retries/s":"{retry}/s","retrievals/s":"{retrieval}/s","reuses/s":"{reuse}/s","rows":"{row}","rows/s":"{row}/s","rules":"{rule}","running_containers":"{container}","running_pods":"{pod}","samples":"{sample}","scans/s":"{scan}/s","score":"{score}","searches/s":"{search}/s","seconds":"s","seconds/s":"s/s","sectors":"{sector}","sectors/s":"{sector}/s","segments":"{segment}","segments/s":"{segment}/s","semaphores":"{semaphore}","sensors":"{sensor}","servers":"{server}","sessions":"{session}","sessions/s":"{session}/s","shards":"{shard}","shares":"{share}","shutdowns":"{shutdown}","siblings":"{sibling}","size":"By","sockets":"{socket}","sockets/s":"{socket}/s","softirqs/s":"{softirq}/s","sources":"{source}","splits/s":"{split}/s","sstables":"{sstable}","stack_frames/s":"{stack_frame}/s","stars":"{star}","state":"{status}","statements":"{statement}","statements/s":"{statement}/s","stats":"{stat}","status":"{status}","stratum":"{stratum}","stubs/s":"{stub}/s","subscriptions":"{subscription}","subscriptions/s":"{subscription}/s","switches":"{switch}","syncs":"{sync}","syscalls/s":"{syscall}/s","tables":"{table}","tables/s":"{table}/s","tasks":"{task}","tasks/s":"{task}/s","temperature":"Cel","threads":"{thread}","threads/s":"{thread}/s","ticks":"{tick}","timeout/s":"{timeout}/s","timeouts/s":"{timeout}/s","token_requests/s":"{request}/s","tokens":"{token}","total":"1","traces / sec":"{trace}/s","transactions":"{transaction}","transactions/s":"{transaction}/s","transitions/s":"{transition}/s","trips/s":"{trip}/s","tubes":"{tube}","unsynchronized blocks":"{unsynchronized block}","updates/s":"{update}/s","users":"{user}","value":"1","views":"{view}","vms":"{vm}","volumes":"{volume}","waiters/s":"{waiter}/s","watches":"{watch}","weight":"1","workers":"{worker}","workers/s":"{worker}/s","writes":"{write}","writes/s":"{write}/s","writesets":"{writeset}","writesets/s":"{writeset}/s","xid":"{xid}","z":"{z}","zones":"{zone}"}}')}}]); \ No newline at end of file
diff --git a/web/gui/v2/376.9a81f019e3c71e29c4e1.js.LICENSE.txt b/web/gui/v2/376.e533843d1907d4e8dafa.js.LICENSE.txt
index be8d0dde..9c9a48f9 100644
--- a/web/gui/v2/376.9a81f019e3c71e29c4e1.js.LICENSE.txt
+++ b/web/gui/v2/376.e533843d1907d4e8dafa.js.LICENSE.txt
@@ -56,7 +56,7 @@ object-assign
*/
/**
- * @remix-run/router v1.6.3
+ * @remix-run/router v1.7.2
*
* Copyright (c) Remix Software Inc.
*
@@ -67,7 +67,7 @@ object-assign
*/
/**
- * React Router DOM v6.13.0
+ * React Router DOM v6.14.2
*
* Copyright (c) Remix Software Inc.
*
@@ -78,7 +78,7 @@ object-assign
*/
/**
- * React Router v6.13.0
+ * React Router v6.14.2
*
* Copyright (c) Remix Software Inc.
*
diff --git a/web/gui/v2/3D_PARTY_LICENSES.txt b/web/gui/v2/3D_PARTY_LICENSES.txt
index 1efedeec..d2e2c137 100644
--- a/web/gui/v2/3D_PARTY_LICENSES.txt
+++ b/web/gui/v2/3D_PARTY_LICENSES.txt
@@ -2557,31 +2557,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-cross-fetch
-MIT
-The MIT License (MIT)
-
-Copyright (c) 2017 Leonardo Quixadá
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
crypt
BSD-3-Clause
Copyright © 2011, Paul Vorbach. All rights reserved.
@@ -3769,6 +3744,32 @@ OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org>
+node-fetch
+MIT
+The MIT License (MIT)
+
+Copyright (c) 2016 David Frank
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
object-assign
MIT
The MIT License (MIT)
@@ -4003,7 +4004,7 @@ ramda
MIT
The MIT License (MIT)
-Copyright (c) 2013-2020 Scott Sauyet and Michael Hurley
+Copyright (c) 2013-2023 Scott Sauyet and Michael Hurley
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/web/gui/v2/427.acd538b4ce317d11342e.chunk.js b/web/gui/v2/427.acd538b4ce317d11342e.chunk.js
deleted file mode 100644
index fbe79d95..00000000
--- a/web/gui/v2/427.acd538b4ce317d11342e.chunk.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d0beb819-d522-42f7-b693-32d8419d8373",e._sentryDebugIdIdentifier="sentry-dbid-d0beb819-d522-42f7-b693-32d8419d8373")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[427],{39612:function(e,t,n){n(74916),n(15306);t.Z=function(e){return e.replace(/[\s:()./]/g,"_")}},42448:function(e,t,n){n.d(t,{V:function(){return r}});var s={ErrNoChartExist:"ErrNoChartExist"},r=function(e){var t=!!(arguments.length>1&&void 0!==arguments[1]?arguments[1]:s)[e];return t}},16978:function(e,t,n){var s=n(87462),r=n(67294),a=n(54576),o=n(70486),i=n(86954),c=n(20581),l=n(16374),d=n(1981),h=n(28138),u=n(18892),m=n(63076),p=n(65855),f=(0,r.forwardRef)((function(e,t){return r.createElement(i.ChartWrapper,null,r.createElement(p.x1,(0,s.Z)({hasHeader:!1,hasFilters:!1,hasFooter:!1},e,{ref:t})))})),g=(0,o.default)(f,{tile:!0}),b={dygraph:p.ZP,easypiechart:h.ZP,gauge:l.ZP,number:u.ZP,groupBoxes:c.ZP,d3pie:d.default,bars:m.ZP},y=function(e){var t=(0,a.useChart)(),n=(0,r.useMemo)((function(){if(!t)return null;var e=t.getAttributes(),n=e.chartLibrary;return e.sparkline?g:b[n]}),[t]);return n?r.createElement(n,(0,s.Z)({},e,{chart:t})):null};t.Z=(0,a.withChartProvider)((0,r.memo)(y))},84817:function(e,t,n){var s=n(87462),r=n(67294),a=n(65351),o=n(24631),i=n(3701),c=n(54576),l=n(33335),d=function(e){var t=(0,a.Z)("addToDashboardModal").handleOpenModal,n=(0,c.useChart)(),d=function(){var e=n.getAttribute("id");t("",{chartId:e})},h=(0,l.gI)("dashboard:Update");return(0,r.useLayoutEffect)((function(){return n.onKeyChange(["Alt","Shift","KeyD"],h?d:function(){})}),[h]),r.createElement(i.Button,(0,s.Z)({icon:r.createElement(i.default,{svg:o.Z,size:"16px"}),onClick:h?d:function(){},title:h?"Add to dashboard":"You need to be logged in to create your custom dashboards and use this chart in them","data-testid":"chartHeaderToolbox-addDashboard",disabled:!h},e))};t.Z=(0,r.memo)(d)},18039:function(e,t,n){n.d(t,{C:function(){return r},M:function(){return s}});n(92222);var s=function(e,t){return e.on("heightChanged",(function(e,n){if(e.getParent()===t){var s=e.getAttribute("id"),r=t.getAttribute("host"),a="chart_height.".concat(r,"/").concat(s);localStorage.setItem(a,n)}}))},r=function(e,t,n){var s=e.getAttribute("host"),r="chart_height.".concat(s,"/").concat(t);return localStorage.getItem(r)||"".concat(n,"px")}},72843:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(37195),i=n(15557),c=["onToggle","icon","isOpen","title"],l=function(e){var t=e.onToggle,n=e.icon,l=void 0===n?"node_hollow":n,d=e.isOpen,h=e.title,u=(0,r.Z)(e,c);return a.createElement(o.Z,(0,s.Z)({dataTestId:"collapsable-header",iconName:d?"arrow_w_line_right":"arrow_w_line_left",onClick:t,padding:[0,3]},u),d&&a.createElement(i.Flex,{gap:2,alignItems:"center","data-testid":"rightBar-nodeName"},a.createElement(i.Icon,{name:l,color:"text",size:"small"}),a.createElement(i.TextSmall,{strong:!0},h)))};t.Z=(0,a.memo)(l)},29814:function(e,t,n){var s=n(87462),r=n(45987),a=(n(21249),n(57640),n(9924),n(67294)),o=n(54316),i=n(15557),c=["onClickTab","availableTabs","tabsToShow"],l=function(e){var t=e.onClickTab,n=e.availableTabs,l=e.tabsToShow,d=(0,r.Z)(e,c);return a.createElement(i.Flex,(0,s.Z)({"data-testid":"collapsed-sidebar",margin:[4,0,0],justifyContent:"center"},d),a.createElement(i.Flex,{margin:[0,0,0,-1],column:!0},l.map((function(e,s){var r=n[e],i=r.iconName,c=r.label;return a.createElement(o._R,{containerStyles:{border:{size:"2px",type:"solid",color:"mainBackground",side:"left"}},textStyles:{color:"textLite"},key:i,onClick:function(){return t(s)},iconName:i,label:c})}))))};t.Z=(0,a.memo)(l)},38626:function(e,t,n){var s=n(45987),r=n(67294),a=n(15557),o=n(64637),i=n(82351),c=["maxLength","text","TextComponent"];t.Z=function(e){var t=e.maxLength,n=e.text,l=e.TextComponent,d=void 0===l?a.Text:l,h=(0,s.Z)(e,c),u=(0,r.useMemo)((function(){return(0,o.a)(n,t)}),[t,n]);return u.length===n.length?r.createElement(d,h,n):r.createElement(i.Z,{content:n,align:"bottom",isBasic:!0},r.createElement(d,h,u))}},8144:function(e,t,n){var s=n(29439),r=n(67294),a=n(15557),o=n(95248),i=n(46667);t.Z=function(e){var t=e.margin,n=e.title,c=e.testIdPrefix,l=e.baseKey,d=e.extraKey,h=e.param,u=e.children,m=e.multi,p=void 0===m||m,f=e.defaultIsOpen,g=void 0===f||f,b=e.border,y=void 0===b?{side:"bottom",color:"borderSecondary"}:b,v=(0,o.I0)(h,{key:l,extraKey:d}),_=(0,s.Z)(v,2),w=_[0],k=_[1],T=(0,i.Z)(g||!(null===w||void 0===w||!w.length)),x=(0,s.Z)(T,2),S=x[0],C=x[1];return r.createElement(a.Flex,{"data-testid":"".concat(c,"-filter"),column:!0,padding:[2,0],border:y,title:n},r.createElement(a.Flex,{justifyContent:"between",margin:S?t:[0],gap:2,onClick:C,cursor:"pointer"},r.createElement(a.Flex,{alignItems:"center",gap:2,height:4.5},r.createElement(a.Flex,{gap:2},r.createElement(a.TextSmall,{strong:!0},n),p&&!(null===w||void 0===w||!w.length)&&r.createElement(a.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(c,"-selected-count")},null===w||void 0===w?void 0:w.length)),p&&!(null===w||void 0===w||!w.length)&&r.createElement(a.Button,{padding:[0],flavour:"borderless",onClick:function(e){e.stopPropagation(),k([])},"data-testid":"".concat(c,"-filter-resetAll"),label:"Reset",small:!0})),r.createElement(a.Icon,{name:"chevron_left",size:"small",color:"textLite",rotate:S?1:3})),r.createElement(a.Collapsible,{open:S},u))}},72911:function(e,t,n){var s=n(45987),r=n(67294),a=n(15557),o=["width","height","videoId"];t.Z=function(e){var t=e.width,n=void 0===t?443:t,i=e.height,c=void 0===i?249:i,l=e.videoId,d=(0,s.Z)(e,o);return r.createElement(a.Flex,d,r.createElement(a.Box,{className:"video-responsive"},r.createElement("iframe",{width:n,height:c,src:"https://www.youtube.com/embed/".concat(l),frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,title:"Embedded youtube"})))}},20686:function(e,t,n){n.d(t,{Z:function(){return m}});var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=n(60677),c=(0,i.default)(o.Icon).attrs({width:12,height:14}).withConfig({displayName:"styled__StyledIcon",componentId:"sc-z9l478-0"})([""]),l=(0,i.default)(o.Flex).attrs({alignItems:"center",justifyContent:"center",padding:[.5,2],round:9}).withConfig({displayName:"styled__StyledPill",componentId:"sc-z9l478-1"})(["cursor:pointer;pointer-events:",";"],(function(e){return e.onClick?"auto":"none"})),d={critical:{background:"nodeBadgeBackground",color:"errorLite",border:{side:"all",color:"error"}},warning:{background:"nodeBadgeBackground",color:"warningText",border:{side:"all",color:"warning"}},neutral:{background:"disabledBackground",color:"textDescription",border:{side:"all",color:"tabsBorder"}},clear:{background:"nodeBadgeBackground",color:"successLite",border:{side:"all",color:"success"}},criticalAlertsTable:{background:"nodeBadgeBackground",color:"errorLite",border:{side:"all",color:"error"}},warningAlertsTable:{background:"nodeBadgeBackground",color:"warningText",border:{side:"all",color:"warning"}},clearAlertsTable:{background:"nodeBadgeBackground",color:"successLite",border:{side:"all",color:"success"}}},h=["type","icon","children","textSize"],u={small:o.TextSmall,normal:o.Text},m=function(e){var t=e.type,n=e.icon,i=e.children,m=e.textSize,p=(0,r.Z)(e,h),f=d[t]||{},g=f.background,b=f.color,y=f.border,v=m?u[m]:n?o.Text:o.TextMicro;return a.createElement(l,(0,s.Z)({background:g,border:y,gap:1.5},p),n&&a.createElement(c,{name:n,title:n,color:b}),i&&a.createElement(v,{color:b,textTransform:"capitalize",strong:!0,wordBreak:"keep-all",whiteSpace:"nowrap"},i))}},32586:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=["children","iconName","name","size","testId"];t.Z=function(e){var t=e.children,n=e.iconName,c=e.name,l=e.size,d=e.testId,h=void 0===d?"entry-line-text-container":d,u=(0,r.Z)(e,i),m="small"===l?o.TextSmall:o.Text,p="undefined"!==typeof t&&null!==t;return a.createElement(o.Flex,{alignItems:"start","data-testid":"entry-line"},n&&a.createElement(o.Flex,{"data-testid":"entry-line-icon-container",padding:[0,1,0,0]},a.createElement(o.Icon,{color:"textLite","data-testid":"entry-line-icon",name:n,width:"16px",height:"16px"})),a.createElement(o.Flex,(0,s.Z)({column:!0,alignItems:"start","data-testid":h,gap:.5},u),a.createElement(m,{"data-testid":"entry-line-text-label",whiteSpace:"nowrap",color:"textDescription"},c,p&&": "),p&&a.createElement(o.TextSmall,{color:"textDescription","data-testid":"entry-line-text-value",strong:!0},t)))}},76184:function(e,t,n){var s=n(87462),r=n(29439),a=n(45987),o=n(60677),i=n(67294),c=n(15557),l=n(46667),d=n(82351),h=["children","isEnabled","link","name","noDataLabel"],u=(0,o.default)(c.Icon).withConfig({displayName:"group__IconLink",componentId:"sc-1714aq9-0"})(["&:hover{fill:",";}"],(0,c.getColor)("textDescription")),m=function(e){return e.stopPropagation()},p=function(e){var t=e.children,n=e.isEnabled,s=e.link,r=e.onClick,a=e.open;return i.createElement(c.Flex,{alignItems:"center",justifyContent:"between",height:8,onClick:n?r:null,cursor:n?"pointer":"default"},i.createElement(c.Flex,{gap:2,alignItems:"center"},i.createElement(c.TextSmall,{strong:!0},t),s&&i.createElement(c.Flex,{as:"a",href:s,target:"_blank",onClick:m},i.createElement(u,{height:"13px",width:"13px",name:"documentation",size:"small",color:"placeholder"}))),n&&i.createElement(c.Icon,{name:"chevron_left",size:"small",color:"textLite",rotate:a?1:3}))},f=(0,o.default)(c.Flex).withConfig({displayName:"group__StyledFlex",componentId:"sc-1714aq9-1"})(["&:last-child{border:none;}"]);t.Z=function(e){var t=e.children,n=e.isEnabled,o=void 0===n||n,u=e.link,m=e.name,g=e.noDataLabel,b=(0,a.Z)(e,h),y=(0,l.Z)(!0),v=(0,r.Z)(y,2),_=v[0],w=v[1],k=o?null:g;return i.createElement(d.Z,{content:k,isBasic:!0},i.createElement(f,(0,s.Z)({column:!0,border:{side:"bottom",color:"borderSecondary"},padding:[1,0,_?2:1],isEnabled:o},b),i.createElement(p,{isEnabled:o,open:_,onClick:w,link:u},m),i.createElement(c.Collapsible,{column:!0,open:_,gap:1},t)))}},54316:function(e,t,n){n.d(t,{Dh:function(){return u},_R:function(){return m}});var s=n(45987),r=n(87462),a=(n(92222),n(60677)),o=n(67294),i=n(15557),c=n(37195),l=["children","collapsedComponent","isOpen","header"],d=(0,a.default)(i.TextSmall).withConfig({displayName:"rightBar__TextSmallWithEllipsis",componentId:"sc-shvr1r-0"})(["display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;"]),h=(0,a.default)(i.Icon).withConfig({displayName:"rightBar__HeaderIcon",componentId:"sc-shvr1r-1"})(["flex:0 0 auto;"]),u=function(e){var t=e.onClose,n=e.node;return e.isOpen?o.createElement(c.Z,{onClick:t},o.createElement(i.Flex,{"data-testid":"dismisible-header",column:!0,gap:1},o.createElement(i.Flex,{gap:2,alignItems:"center","data-testid":"rightBar-nodeName"},o.createElement(h,{name:"node_hollow",color:"text",size:"small"}),o.createElement(d,{strong:!0},n.name)))):null},m=function(e){var t=e.iconName,n=e.label,s=e.onClick,a=e.containerStyles,c=e.textStyles;return o.createElement(i.Flex,(0,r.Z)({"data-testid":"sidebar-icon-item"},a,{column:!0,margin:[2,0],alignItems:"center"}),o.createElement(i.Flex,{"data-testid":"sidebar-icon-item-wrapper",margin:[0,0,.5,0],alignItems:"center",onClick:s,cursor:"pointer"},o.createElement(i.Icon,{name:t,color:"textLite",width:"18px",height:"18px"})),o.createElement(i.TextMicro,(0,r.Z)({color:"textDescription"},c),n))},p=(0,a.default)(i.Flex).withConfig({displayName:"rightBar__Container",componentId:"sc-shvr1r-2"})(["transition:width 0.3s ease-out;",""],(function(e){var t=e.collapsedWidth,n=e.isOpen;return"\n flex-basis: ".concat(n?"300px":t,"; \n overflow: hidden;\n @media screen and ").concat(i.breakpoints.desktop," {\n && {\n flex-basis: ").concat(n?"340px":t,";\n }\n }\n ")}));t.ZP=function(e){var t=e.children,n=e.collapsedComponent,a=e.isOpen,i=e.header,c=(0,s.Z)(e,l),d=!!n,h=d?12:"0px";return o.createElement(p,(0,r.Z)({column:!0,flex:!1,collapsedWidth:h,isOpen:a,height:"100%",margin:(d||a)&&[0,0,0,.5],border:d||a?{side:"left",color:"borderSecondary"}:void 0},c),i,a?t:n)}},37195:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=["children","onClick","iconName","dataTestId"];t.Z=function(e){var t=e.children,n=e.onClick,c=e.iconName,l=void 0===c?"x":c,d=e.dataTestId,h=(0,r.Z)(e,i);return a.createElement(o.Flex,(0,s.Z)({"data-testid":d,height:12,alignItems:"center",justifyContent:"between",border:{side:"bottom",color:"borderSecondary"},padding:[0,2],flex:!1},h),t,a.createElement(o.Icon,{"data-testid":"rightBarHeader-icon",name:l,color:"border",onClick:n,cursor:"pointer"}))}},47128:function(e,t,n){n.r(t),n.d(t,{SettingsContainer:function(){return Eo},default:function(){return Lo}});var s={};n.r(s),n.d(s,{OSTableSchema:function(){return ga},agentTableSchema:function(){return ba},dashboardsTableSchema:function(){return fa},dockerTableSchema:function(){return pa},machinesTableSchema:function(){return ma}});var r=n(29439),a=(n(66992),n(41539),n(88674),n(78783),n(33948),n(92222),n(67294)),o=n(2145),i=n(89250),c=n(3975),l=n(4474),d=n(37518),h=(n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4942)),u=n(15861),m=n(64687),p=n.n(m),f=n(4480),g=n(25819);function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v=n(41379),_=n(93433),w=(n(21249),n(57640),n(9924),n(85827),n(25387),n(72608),n(18997)),k=n(12008),T=n(48450),x=n(77796),S=n(99322),C=n(16634);function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var q=n(39904),I=n(74059),E=n(23383),D=n(68035),L=n(274),N=n(34912),O=n(94666),R=n(1229),A=n(33335),F=n(45781),U=n(95383),B=n(78266),Z=n(46189),j=n(87462),z=n(45987),V=n(15557),H=n(44536),Q=n(54227),G=n(95248);function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var J=function(e){var t=e.error,n=e.testPrefix,s=e.onClick,r=e.type,a=e.value,o={critical:{default:"error",disabled:"disabledError"},warning:{default:"warning",disabled:"disabledWarning"}};return K(K({"data-testid":n?"".concat(n,"-").concat(o[r].default):o[r].default,flavour:t||!a?o[r].disabled:o[r].default},s&&{onClick:s}),{},{text:t?"-":"".concat(a)})},Y=["critical","warning","error","testPrefix"],X=["id","testPrefix"],$=function(e){var t=e.critical,n=e.warning,s=e.error,r=e.testPrefix,o=(0,z.Z)(e,Y),i=J({error:s,testPrefix:r,type:"critical",value:t}),c=J({error:s,testPrefix:r,type:"warning",value:n});return a.createElement(V.Flex,(0,j.Z)({margin:[0,0,0,2]},o),a.createElement(V.MasterCard,{"data-testid":"alertsMastercard",pillLeft:i,pillRight:c}))},ee=function(e){var t=e.id,n=e.testPrefix,s=(0,z.Z)(e,X),r=(0,x.ev)(t),o=(0,k.n_)(r),i=o.critical,c=o.warning;return a.createElement($,(0,j.Z)({"data-testid":"alerts",testPrefix:n,critical:i,warning:c},s))},te=function(e){var t=e.critical,n=e.warning,s=e.error;return a.createElement(ee,{critical:t,"data-testid":"tabAlerts",error:s,testPrefix:"tabAlerts-alert",warning:n})},ne=function(e){var t=e.nodeId,n=(0,x.ev)(t),s=(0,k.n_)(n),r=s.critical,o=s.warning;return a.createElement(te,{critical:r,warning:o})},se=function(){var e=(0,G.H7)(),t=(0,x.rw)(e),n=(0,S.uy)("error"),s=(0,k.n_)(t),r=s.critical,o=s.warning;return a.createElement(te,{critical:r,warning:o,error:n})},re={warning:"warning",critical:"error"},ae=function(e){var t=e.alertId,n=(0,k.E5)(t,"status");return re[n]?a.createElement(V.Flex,{alignSelf:"center",margin:[0,0,0,2],round:1,background:re[n],width:2,height:2}):null};function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ce=n(81488),le=function(){var e=(0,S.uy)("error"),t=(0,S.uy)("updatedAt");return a.createElement(ce.Z,{error:e,updatedAt:t,text:"All your active alerts"})},de=function(){var e,t,n=(0,d.A3)(),s=(0,A.gI)("dashboard:ReadAll"),r=function(e){return(0,a.useMemo)((function(){return{home:{title:"Home",icon:"room_home",path:"".concat(e,"/home"),dataGa:"view-picker::click-view-home::global-view",testId:"viewPicker-home",tooltip:"A dashboard metrics from all your nodes"},overview:{title:"Overview",icon:"room_overview",path:"".concat(e,"/overview"),dataGa:"view-picker::click-view-overview::global-view",testId:"viewPicker-overview",tooltip:"A dashboard with charts and metrics from all your nodes"},nodes:{title:"Nodes",icon:"nodes_hollow",path:"".concat(e,"/nodes"),dataGa:"view-picker::click-view-nodes::global-view",testId:"viewPicker-nodes",tooltip:"An index of your nodes with alert status and key metrics"},k8s:{title:"Kubernetes",icon:"serviceKubernetes",path:"".concat(e,"/kubernetes"),dataGa:"view-picker::click-view-kubernetes::global-view",testId:"viewPicker-kubernetes",tooltip:"k8s"},dashboards:{title:"Dashboards",icon:"dashboard",path:"".concat(e,"/dashboards"),dataGa:"view-picker::click-view-dashboard::global-view",testId:"viewPicker-customDashboards",tooltip:"Customize dashboards according to your needs"},alerts:{title:"Alerts",icon:"alarm",path:"".concat(e,"/alerts"),dataGa:"view-picker::click-view-alerts::global-view",testId:"viewPicker-alerts",tooltip:a.createElement(le,null),children:a.createElement(se,null)},ar:{title:"Anomalies",icon:"anomaliesLens",path:"".concat(e,"/anomalies"),dataGa:"view-picker::click-view-anomalies::global-view",testId:"viewPicker-anomalies",tooltip:"Anomaly Advisor - ML powered anomaly detection"},fn:{title:"Functions",icon:"functions",path:"".concat(e,"/functions"),dataGa:"view-picker::click-view-functions::global-overview",testId:"viewPicker-functions",tooltip:"Functions to run on your nodes"},events:{title:"Events",icon:"feed",path:"".concat(e,"/events"),dataGa:"view-picker::click-view-feed::mn-overview",testId:"viewPicker-feed",tooltip:"Feed & events"}}}),[e])}(n),o=(0,I.Q6)();return[(0,a.useMemo)((function(){return[!o&&r.home,r.overview,r.nodes,r.k8s,s&&r.dashboards,r.alerts,r.ar,r.fn,r.events].filter(Boolean)}),[n,o]),(e=n,t=!o,(0,a.useMemo)((function(){var n;return n={},(0,h.Z)(n,"".concat(e,"/overview"),!0),(0,h.Z)(n,"".concat(e,"/home"),t),(0,h.Z)(n,"".concat(e,"/nodes"),!0),(0,h.Z)(n,"".concat(e,"/dashboards"),!0),(0,h.Z)(n,"".concat(e,"/alerts"),!0),(0,h.Z)(n,"".concat(e,"/anomalies"),!0),(0,h.Z)(n,"".concat(e,"/functions"),!0),n}),[e,t]))]},he=n(64637),ue=n(62200),me=n(82351),pe=["to","params","exact","icon","title","fixed","dataGa","testId","children","type","tooltip","showBorderLeft"],fe=function(e){return e?"text":"textDescription"},ge=function(e){var t=e.to,n=e.params,s=e.exact,r=e.icon,o=e.title,c=e.fixed,l=e.dataGa,d=e.testId,h=e.children,u=e.type,m=e.tooltip,p=e.showBorderLeft,f=(0,z.Z)(e,pe),g=(0,i.bS)({end:s,path:t}),b=(0,i.s0)(),y=!!g,v="nodes"!==u||y,_=(0,a.useCallback)((function(){if(!y){var e="".concat(t).concat(n?"/".concat(n):"");b(e)}}),[t,y,n]),w=(0,a.useMemo)((function(){return(0,he.a)(o,ue.sf)}),[o]);return a.createElement(V.NavigationTab,(0,j.Z)({fixed:c,active:y,showBorderLeft:p,icon:a.createElement(V.Icon,{name:r,size:"small"}),key:o,onActivate:_,"data-ga":l,"data-testid":d,"aria-selected":y,tooltip:m||o},f),m||w!==o?a.createElement(me.Z,{content:m||o,align:m?"bottom":"top",isBasic:!0},a.createElement(V.TextSmall,{alignSelf:"center",color:fe(y),whiteSpace:"nowrap"},w)):a.createElement(V.TextSmall,{alignSelf:"center",color:fe(y),whiteSpace:"nowrap"},o),v&&h)},be=["icon","title","path"],ye=function(){var e=de(),t=(0,r.Z)(e,2),n=t[0],s=function(e){var t=(0,i.s0)(),n=(0,i.bS)("/spaces/:spaceSlug/rooms/:roomSlug/:type/*"),s=(0,Q.ZS)(),r=(0,Q.Yy)(),o=(0,Q.CN)(),c=n?n.pathnameBase:"/spaces",l=(0,i.TH)().pathname,d=(0,H.Z)(e[l]&&l),h=(0,a.useCallback)((function(e){return t(e)}),[]),u=(0,a.useCallback)((function(e,n){if(!n)return r(e);var a=s[e-1],o=s[e+1],i=function(n,s){var a="".concat(n).concat(s?"/".concat(s):"");t(a),r(e)};return d?i(d):a?i(a.path,a.params):o?i(o.path,o.params):i(c)}),[s,r,c,d]);return[(0,a.useMemo)((function(){return s.map((function(e){return ie(ie({},e),{},{onClick:h,children:e.id&&"nodes"===e.type?a.createElement(ne,{nodeId:e.id}):"alerts"===e.type?a.createElement(ae,{alertId:e.id}):null})}))}),[s,h]),function(e){var t=e.destination,n=e.source;t&&n&&o({sourceIndex:n.index,destinationIndex:t.index})},u]}(t[1]),o=(0,r.Z)(s,3),c=o[0],l=o[1],d=o[2];return a.createElement(V.NavigationTabs,null,n.map((function(e){var t=e.icon,n=e.title,s=e.path,r=(0,z.Z)(e,be);return a.createElement(ge,(0,j.Z)({exact:!0,fixed:!0,to:s,icon:t,title:n,key:n},r))})),a.createElement(V.TabSeparator,null),a.createElement(V.DraggableTabs,{onDragEnd:l,onTabClose:d},c.map((function(e,t){var n=e.id,s=e.icon,r=e.title,o=e.params,i=e.path,c=e.type,l=e.children;return a.createElement(ge,{showBorderLeft:0===t,exact:!0,to:i,params:o,icon:s,title:r,key:r,type:c,id:n,"data-testid":"navigation-dynamicTab-".concat(r)},l)}))))},ve=n(83338),_e=n(8018);function we(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function ke(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?we(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):we(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Te,xe=(0,f.CG)({key:"roomSettings",get:function(e){var t=e.id,n=e.key;return function(e){var s=(0,e.get)((0,ve.Z)(t));return n?s[n]:s}},set:function(e){var t=e.id,n=e.key;return function(e,s){(0,e.set)((0,ve.Z)(t),(function(e){return n?ke(ke({},e),{},(0,h.Z)({},n,s)):s}))}}}),Se=function(e,t){return(0,f.sJ)(xe({id:e,key:t}))},Ce=function(e,t){var n=Se(e,t),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,s=t.shouldPersist,r=void 0===s||s,a=(0,f.Zl)(xe({id:e,key:n})),o=(0,_e.O9)(e);return(0,f._8)((function(t){var s=t.snapshot;return function(){var t=(0,u.Z)(p().mark((function t(i){var c;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a(i),r){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,s.getPromise(xe({id:e}));case 5:return c=t.sent,t.prev=6,t.next=9,o({settings:ke(ke({},c),n?(0,h.Z)({},n,i):i)});case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(6),a(n?c[n]:c);case 14:case"end":return t.stop()}}),t,null,[[6,11]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,o])}(e,{key:t});return[n,s]},Pe=n(96929),Me=n(36560),qe=(n(26699),n(32023),n(88553)),Ie=n(29495),Ee=n(9058),De=(n(69826),n(31672),n(59461),n(74916),n(4723),n(89014)),Le=function(e,t){return e&&e.getRoot().getChildren().find((function(e){return e.match({id:"nodes-".concat(t)})}))},Ne=n(16978),Oe=function(e){var t=e.id,n=e.roomId,s=e.nodeId,r=e.context,o=e.dimensions,i=(0,Ee.e)(),c=(0,a.useMemo)((function(){var e=Le(i,n),a=[t,s,r].join("-"),c=e.getNode({id:a});return c?(c.updateAttribute("selectedDimensions",o.map((function(e){return e.name}))),c):(c=i.makeChart({attributes:{id:a,nodesScope:[s],contextScope:[r],pixelsPerPoint:20,selectedDimensions:o.map((function(e){return e.name}))}}),e.appendChild(c),c)}),[r,t,s,n,i]);return a.createElement(Ne.Z,{chart:c,hasHeader:!1,hasFooter:!1,hasFilters:!1})},Re=(0,a.memo)(Oe),Ae=n(60677),Fe=Ae.default.div.withConfig({displayName:"styled__ViewContainer",componentId:"sc-azglin-0"})(["position:absolute;top:0;bottom:0;left:0;right:0;padding-bottom:20px;"]),Ue=Ae.default.div.withConfig({displayName:"styled__TableContainer",componentId:"sc-azglin-1"})(["width:100%;height:100%;position:relative;"]),Be=(0,Ae.default)(V.VirtualizedTable).withConfig({displayName:"styled__StyledTable",componentId:"sc-azglin-2"})(["padding:8px 16px;.table-head{z-index:10;margin-bottom:12px;top:0;position:sticky;background:",";z-index:100;}.table-body{position:relative;width:100%;}.column-head{&:not(:first-of-type):not(:last-of-type){border-right:1px solid ",";}}.table-row{background:",";border-bottom:1px solid ",";min-width:100%;width:auto !important;*{white-space:nowrap;}}.group-head{font-weight:bold;font-size:16px;font-style:normal;line-height:20px;display:flex;align-items:center;color:",";}.table-body{padding-bottom:0;}"],(0,V.getColor)("mainBackground"),(0,V.getColor)("border"),(0,V.getColor)("mainBackground"),(0,V.getColor)("borderSecondary"),(0,V.getColor)("text")),Ze=(0,Ae.default)(V.Flex).attrs((function(){return{column:!0,gap:2,height:{min:14},padding:[3]}})).withConfig({displayName:"styled__CellContent",componentId:"sc-azglin-3"})([""]),je=Ae.default.div.withConfig({displayName:"styled__ChartsContainer",componentId:"sc-dcttle-0"})([""]),ze=(0,Ae.default)(Ze).withConfig({displayName:"styled__Cell",componentId:"sc-dcttle-1"})(["position:relative;border-radius:0;padding:"," "," "," ",";justify-content:center;border-bottom:1px solid #f1f2f3;&:last-of-type{border-bottom:0;}"],(0,V.getSizeBy)(0),(0,V.getSizeBy)(0),(0,V.getSizeBy)(0),(0,V.getSizeBy)(1)),Ve=n(38626),He=function(e){var t=e.id,n=e.context,s=e.row,r=e.title,o=e.dimensions,i=s.original,c=(0,d.UL)();return i.isLive?a.createElement(je,null,a.createElement(Ve.Z,{text:r||n,maxLength:19,TextComponent:V.TextSmall,color:"textDescription",margin:[1,0,1,2],as:"div"}),a.createElement(ze,{"data-testid":"chartCell-".concat(n)},a.createElement(Re,{id:t,context:n,nodeId:i.id,roomId:c,dimensions:o}))):null},Qe=(n(82772),n(65211)),Ge=n(3581),We=n(3322),Ke=n(89050),Je=n(4312),Ye=n(46667),Xe=n(82040),$e=n(5633),et=(0,Ae.default)(V.Button).attrs({flavour:"hollow",neutral:!0,tiny:!0}).withConfig({displayName:"styled__ActionButton",componentId:"sc-t0bp9o-0"})(["&&&{border-color:",";&:hover{background-color:",";}.button-icon{"," fill:",";}}"],(0,V.getColor)("nodeBadgeBorder"),(0,V.getColor)("nodeBadgeBackground"),(function(e){var t=e.iconSize;return t&&"\n height: ".concat(t,";\n width: ").concat(t,";\n ")}),(0,V.getColor)("textDescription")),tt=(0,Ae.default)(et).attrs({icon:"trashcan",iconSize:"15px"}).withConfig({displayName:"styled__ObsoleteButton",componentId:"sc-t0bp9o-1"})([""]),nt=(0,Ae.default)(et).attrs({icon:"removeNode"}).withConfig({displayName:"styled__RemoveButton",componentId:"sc-t0bp9o-2"})([""]),st=(0,Ae.default)(V.Box).attrs({background:"placeholder",height:4,width:.25}).withConfig({displayName:"styled__InfoSeparator",componentId:"sc-t0bp9o-3"})([""]),rt=(0,Ae.default)(V.Flex).withConfig({displayName:"styled__NodeActions",componentId:"sc-t0bp9o-4"})(["display:none;margin-left:auto;"]),at=(0,Ae.default)(V.Flex).attrs({margin:[0,-2,-2]}).withConfig({displayName:"styled__NodeChartsContainer",componentId:"sc-t0bp9o-5"})([""]),ot=(0,Ae.default)(V.Flex).attrs({alignItems:"center",gap:1}).withConfig({displayName:"styled__NodeNameContainer",componentId:"sc-t0bp9o-6"})(["&:hover{h5{color:#00ab44;text-decoration:underline;text-decoration-color:#00ab44;}svg{fill:#00ab44;}}"]),it=(0,Ae.default)(V.H5).attrs((function(e){var t=e.isLive;return{cursor:t?"pointer":"auto",color:t?"text":"textDescription"}})).withConfig({displayName:"styled__NodeName",componentId:"sc-t0bp9o-7"})([""]),ct=(0,Ae.default)(V.Flex).attrs({column:!0,gap:1,padding:[2],round:!0,width:"100%"}).withConfig({displayName:"styled__NodeRow",componentId:"sc-t0bp9o-8"})(["&:hover{background:","80;","{display:flex;}}"],(0,V.getColor)("elementBackground"),rt),lt=["connectivity","id","name"],dt=function(e){var t=e.connectivity,n=e.id,s=e.name,o=(0,z.Z)(e,lt),i=(0,A.gI)("node:Delete"),c=!(0,d.Hm)().untouchable,l=(0,Ye.Z)(),h=(0,r.Z)(l,4),u=h[0],m=h[2],p=h[3],f=(0,Ye.Z)(),g=(0,r.Z)(f,4),b=g[0],y=g[2],v=g[3];return a.createElement(rt,(0,j.Z)({alignSelf:"end",gap:1,"data-testid":"node-actions"},o),c&&a.createElement(a.Fragment,null,a.createElement(Je.Z,{badge:"actionRemove","data-testid":"remove-node-action"},a.createElement(nt,{"data-ga":"nodes-table-row::click-remove-node::nodes-view",onClick:y})),b&&a.createElement($e.ZP,{ids:[n],name:s,onClose:v})),i&&"Offline"===t&&a.createElement(a.Fragment,null,a.createElement(Je.Z,{badge:"actionObsolete","data-testid":"obsolete-node-action"},a.createElement(tt,{"data-ga":"nodes-table-row::click-obsolete-node::nodes-view",onClick:m})),u&&a.createElement(Xe.ZP,{ids:[n],name:s,onClose:p})))},ht=n(39583),ut=["instanceType","name","providerType"],mt=function(e){var t=e.instanceType,n=e.name,s=e.providerType,r=(0,z.Z)(e,ut);return a.createElement(Je.Z,(0,j.Z)({badge:"cloudInfo","data-testid":"node-cloud-info",nodeName:n},r),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-cloud-info-icon",name:"ipNetworking",width:"18px",height:"18px"}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-cloud-info-text"},(0,Ke.MC)(s)," \u2022 ",(0,Ke.MC)(t))))},pt=["connectivity","name"],ft=function(e){var t=e.connectivity,n=e.name,s=(0,z.Z)(e,pt);return a.createElement(Je.Z,(0,j.Z)({badge:"connectivity",connectivityState:t,"data-testid":"node-connectivity",nodeName:n},s),a.createElement(V.Icon,{name:"connectivityStatus".concat(t),width:"18px",height:"18px"}))},gt=["onClick"],bt=function(e){var t=e.onClick,n=(0,z.Z)(e,gt);return a.createElement(Je.Z,(0,j.Z)({badge:"info","data-testid":"node-info-cta"},n),a.createElement(V.Icon,{color:"textDescription",cursor:"pointer",height:"18px",width:"18px",name:"information",onClick:t}))},yt=["name"],vt=function(e){var t=e.name,n=(0,z.Z)(e,yt);return a.createElement(Je.Z,(0,j.Z)({badge:"k8s","data-testid":"node-kubernetes",nodeName:t},n),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-kubernetes-icon",name:"serviceKubernetes",width:"18px",height:"18px"}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-kubernetes-text"},"k8s")))},_t=["kernelName","kernelVersion","name"],wt=function(e){var t=e.kernelName,n=e.kernelVersion,s=e.name,r=(0,z.Z)(e,_t);return a.createElement(Je.Z,(0,j.Z)({badge:"kernel","data-testid":"node-kernel",nodeName:s},r),a.createElement(V.TextSmall,{color:"textDescription"},(0,Ke.cB)(t,n)))},kt=n(72233),Tt=n(79655),xt=n(97945),St=["id","state","isLive","name"],Ct=function(e){var t=e.isLive,n=e.name;return a.createElement(a.Fragment,null,a.createElement(it,{"data-testid":"node-name-text",isLive:t},n),a.createElement(V.Icon,{color:"placeholder","data-testid":"node-name-icon",name:"goToNode",width:"18px",height:"18px"}))},Pt=function(e){var t=e.id,n=e.state,s=e.isLive,r=e.name,o=(0,z.Z)(e,St),i=(0,xt.m3)(t);return"stale"===n||s?a.createElement(Tt.rU,(0,j.Z)({"data-testid":"node-name-link",to:i},o),a.createElement(ot,{"data-testid":"node-name-container"},a.createElement(Ct,{isLive:s,name:r}))):a.createElement(Ct,{isLive:s,name:r})},Mt=n(88866),qt=["architecture","cpuFrequency","cpus","diskSpace","memory","name","os","osName"],It=function(e){var t,n,s=e.architecture,r=e.cpuFrequency,o=e.cpus,i=e.diskSpace,c=e.memory,l=e.name,d=e.os,h=e.osName,u=(0,z.Z)(e,qt);return a.createElement(Je.Z,(0,j.Z)({badge:"systemInfo","data-testid":"node-system-info",nodeName:l},u),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-system-info-icon",name:(null===(t=Mt._[h])||void 0===t?void 0:t.iconName)||(null===(n=Mt.V[d])||void 0===n?void 0:n.iconName)||"os",width:"16px",height:"16px"}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-system-info-text"},(0,Ke.MC)(h)," \u2022 ",(0,Ke.ys)(r)," \u2022"," ",(0,Ke.MC)(o,1===o?"Core":"Cores")," \u2022 ",(0,Ke.MC)(s)," ","\u2022 ",(0,Ke.MC)((0,Ke.yo)(c),"RAM")," \u2022"," ",(0,Ke.MC)((0,Ke.yo)(i),"HD"))))},Et=["container","name","virtualization"],Dt=function(e){var t=e.container,n=e.name,s=e.virtualization,r=(0,z.Z)(e,Et),o=(0,Ke.jo)(t,s);return a.createElement(Je.Z,(0,j.Z)({badge:"type","data-testid":"node-type",nodeName:n,nodeType:o.label},r),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-type-icon",name:o.icon,height:o.iconSize,width:o.iconSize}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-type-text"},o.label)))},Lt=n(83925),Nt=function(e){var t,n,s=e.cell,o=e.children,i=e.row.original,c=i.name,l=i.hw,d=i.os,u=i.capabilities,m=i.container,p=i.updateSeverity,f=i.labels,g=i.id,b=i.isLive,y=i.state,v=i.version,_=null===(t=u.funcs)||void 0===t?void 0:t.enabled,w=null===(n=u.ml)||void 0===n?void 0:n.enabled,k=(0,Ke.Q5)(y),T=(0,Qe.d)(),x=(0,r.Z)(T,2)[1],S=(0,Ge.j)(ue.$9),C=(0,r.Z)(S,2)[1],P=f||{},M=P._cloud_instance_type,q=P._cloud_provider_type,I="true"===(null===f||void 0===f?void 0:f._is_k8s_node),E=!(0,Ke.O2)(M)||!(0,Ke.O2)(q),D=(0,a.useCallback)((function(e){x(g),C((0,h.Z)({},g,ue.Ku.indexOf(e)))}),[g]),L=(0,a.useCallback)((function(){return D("alerts")}),[D]),N=(0,a.useCallback)((function(){return D("info")}),[D]),O=(0,We.Eq)();return a.createElement(ct,{"data-testid":"nodeRow-".concat(s.value)},a.createElement(V.Flex,{alignItems:"center","data-testid":"nodeRow-basic-info",gap:2,height:{min:6}},a.createElement(ft,{connectivity:k,"data-testid":"nodeRow-connectivity-".concat(k.toLowerCase()),name:s.value}),a.createElement(st,{"data-testid":"nodeRow-separator"}),a.createElement(Pt,{"data-testid":"nodeRow-name",id:g,name:s.value,isLive:b,state:y}),a.createElement(st,{"data-testid":"nodeRow-separator"}),a.createElement(bt,{onClick:N,"data-testid":"nodeRow-more-info-cta"}),a.createElement(st,{"data-testid":"nodeRow-separator"}),a.createElement(ht.Z,{id:g,isLive:b,"data-testid":"nodeRow-alerts",name:s.value,onClick:L}),a.createElement(st,{"data-testid":"nodeRow-separator"}),a.createElement(kt.Z,{badge:"ml","data-testid":"nodeRow-machine-learning-status",enabled:w,name:s.value},a.createElement(V.Icon,{name:"anomaliesLens",size:"small",color:"text"})),a.createElement(st,{"data-testid":"nodeRow-separator"}),a.createElement(kt.Z,{badge:"fn","data-testid":"nodeRow-fn-status",enabled:_,name:s.value,onClick:function(){return O(g)}},a.createElement(V.Icon,{name:"functions",size:"small",color:"text"})),p&&a.createElement(a.Fragment,null,a.createElement(st,{"data-testid":"nodeRow-separator"}),a.createElement(Lt.Z,{name:c,os:d.id,container:m,warningLevel:p,labels:f,version:v,text:p,"data-testid":"nodeRow-needs-update"})),a.createElement(dt,{"data-testid":"nodeRow-node-actions",id:g,name:s.value,connectivity:k})),a.createElement(V.Flex,{alignItems:"center","data-testid":"nodeRow-detailed-info",gap:2},a.createElement(It,{architecture:l.architecture,cpuFrequency:l.cpuFrequency,cpus:l.cpus,"data-testid":"nodeRow-system-info",diskSpace:l.diskSpace,memory:l.memory,name:s.value,osName:d.nm,os:d.id}),a.createElement(st,{"data-testid":"nodeRow-separator"}),!(null===d||void 0===d||!d.kernel)&&a.createElement(wt,{"data-testid":"nodeRow-kernel",kernelName:d.kernel.nm,kernelVersion:d.kernel.v,name:s.value}),a.createElement(st,{"data-testid":"nodeRow-separator"}),I&&a.createElement(a.Fragment,null,a.createElement(vt,{"data-testid":"nodeRow-kubernetes",name:s.value}),a.createElement(st,{"data-testid":"nodeRow-separator"})),a.createElement(Dt,{container:l.container,"data-testid":"nodeRow-type",name:s.value,virtualization:l.virtualization}),E&&a.createElement(a.Fragment,null,a.createElement(st,{"data-testid":"nodeRow-separator"}),a.createElement(mt,{"data-testid":"nodeRow-cloud-info",instanceType:M,name:s.value,providerType:q}))),o&&a.createElement(at,{"data-testid":"nodeRow-charts"},o))},Ot=[{id:"os",accessor:"os",show:!1},{id:"alertStatus",accessor:"alertStatus",show:!1},{id:"nodeStatus",accessor:"nodeStatus",show:!1},{id:"name",accessor:"name",show:!0,width:"full",InnerRow:Nt}],Rt=function(e){var t=e.map((function(e){return function(e){var t=e.id,n=e.hidden,s=e.context,r=e.title,o=e.dimensions;return{id:t||s,accessor:t||s,width:176,show:!n,disableGlobalFilter:!0,parentRow:"name",Cell:function(e){var n=e.row;return a.createElement(He,{id:t,context:s,row:n,title:r,dimensions:o})}}}(e)}));return[].concat(Ot,(0,_.Z)(t))},At=function(e){var t=e.roomId,n=e.groupMode,s=(0,G.H7)({extraKey:"nodesView"}),o=(0,xt.Ne)(s),i=(0,a.useState)([]),c=(0,r.Z)(i,2),l=c[0],d=c[1],h=(0,Ie.uA)(t),u=(0,a.useRef)(),m=(0,a.useRef)(),p=(0,a.useMemo)((function(){return Rt(h)}),[h]),f=(0,a.useCallback)((function(e,t,n){var s=n.filteredNodeIds;return s.length<1?e:e.filter((function(e){var t=e.original;return s.includes(t.id)}))}),[]),g=(0,a.useMemo)((function(){return{sortBy:[{id:"name",desc:!1}],groupBy:[n],columnOrder:p.map((function(e){return e.id})),hiddenColumns:p.filter((function(e){return!e.show})).map((function(e){return e.id})),globalFilter:{filteredNodeIds:s}}}),[n,p,s]),b=(0,a.useMemo)((function(){return o.map((function(e){if(!e.isLive)return(0,Ke.oy)(e,De.Lo);var t=De.Id+De.m4+De.En;return(0,Ke.oy)(e,t)}))}),[o,g,h]);(0,a.useEffect)((function(){u.current&&b.length&&u.current.resetAfterIndex(0,!1)}),[b,l]);var y=(0,qe.Z)(),v=(0,r.Z)(y,2),_=v[0],w=v[1],k=w.width,T=w.height,x=(0,a.useCallback)((function(e,t){var n=e.overscanStartIndex,s=e.overscanStopIndex,r=(0,Ke.Aw)({orderedRows:t,start:n,end:s});d(r)}),[t]),S=(0,a.useMemo)((function(){return{width:k,height:T,itemSize:Ke.I$,variableSize:!0,overscanCount:De.d6,verticalGutter:De.En,itemKey:Ke._0,outerRef:m,onItemsRendered:x}}),[k,T,x]),C=b.length;return a.createElement(Fe,null,C?a.createElement(Ue,{ref:_},a.createElement(Be,{callbackRef:u,columns:p,controlledState:g,data:b,groupsOrderSettings:De.Ho,hideHeader:!0,childrenInRow:!0,layoutType:"block",groupByFn:Ke.V3,globalFilter:f,virtualizedSettings:S,chartsPerNodeLimit:9})):a.createElement(B.Z,{title:"Loading nodes and charts..."}))},Ft=n(91268),Ut=n(73531),Bt=n(92432),Zt=n(15418),jt=(Te=V.Button,function(e){var t=(0,d.Hm)(),n=(0,I.Q6)();return a.createElement(Zt.Z,{permission:"node:Create"},(function(s){var r=a.createElement(Te,(0,j.Z)({disabled:!s},e));return s?r:a.createElement(Je.Z,{content:n?"You are viewing your local node, connect to cloud and connect multiple nodes to view at once":"Only admin users can add nodes to ".concat(t.name),"data-testid":"addNodeTooltipContainer"},a.createElement(V.Box,null,r))}))}),zt=n(89149),Vt=n(16645),Ht=n(7693),Qt=n(92903),Gt=n(5429),Wt=n(40970),Kt=n(89479),Jt=function(){},Yt=function(e){var t=e.roomId,n=e.id,s=e.onRemove,o=void 0===s?Jt:s,i=(0,d.tE)(t,"name"),c=(0,Ie.xQ)(n,"title"),l=(0,Ie.c0)(t),h=(0,Ye.Z)(),m=(0,r.Z)(h,4),f=m[0],g=m[2],b=m[3],y=function(){var e=(0,u.Z)(p().mark((function e(){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l(n);case 2:o();case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return a.createElement(a.Fragment,null,a.createElement(V.Button,{danger:!0,flavour:"hollow",onClick:g,label:"Delete metric","data-testid":"remove-metric"}),f&&a.createElement(V.ConfirmationDialog,{"data-ga":"remove-metric-dialog","data-testid":"removeMetricDialog",handleConfirm:y,handleDecline:b,message:a.createElement(a.Fragment,null,"You are about to remove ",a.createElement("strong",null,c)," metric.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Remove metric from ".concat(i)}))},Xt=["title","help","link","disclaimer","children"],$t=function(e){var t=e.link,n=e.children;return a.createElement(V.Flex,{as:"a",target:"_blank",href:t,gap:1,alignItems:"end"},a.createElement(V.TextNano,{textDecoration:"undeline"},n),a.createElement(V.Icon,{color:"text",name:"question",width:"16px",height:"16px"}))},en=function(e){var t=e.title,n=e.help,s=e.link,r=e.disclaimer,o=e.children,i=(0,z.Z)(e,Xt);return a.createElement(V.Flex,(0,j.Z)({gap:1,column:!0},i),a.createElement(V.Flex,{justifyContent:"between",alignItems:"baseline"},a.createElement(V.Text,{as:"label",margin:[0]},t),n&&a.createElement($t,{link:s},n)),o,r&&a.createElement(V.TextSmall,null,r))},tn=n(26398),nn={value:"all",label:"All"},sn=function(e){var t=e.dimensions,n=e.units;return{dimensions:t?[nn].concat((0,_.Z)(t.map((function(e){return{value:e.id,label:e.name}})))):[nn],units:n}},rn=["spaceId","roomId","id","onClose"];function an(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function on(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?an(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):an(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var cn=function(e){var t=e.isNew;return a.createElement(V.Flex,{as:"span",gap:1},"Manage room",a.createElement(V.TextBig,{color:"textLite"},"/"),a.createElement(V.TextBig,{color:"textLite"},t?"Add":"Edit"," Metric"))},ln=function(e){var t=e.spaceId,n=e.roomId,s=e.id,o=e.onClose,i=(0,z.Z)(e,rn),c="new"===s,l=(0,Ie.jN)(s),d=(0,Ie.Y6)(n,{shouldPersist:!1}),h=(0,Ie.xQ)(s),u=(0,a.useRef)(h),m=h.title,p=h.context,f=h.dimensions,g=void 0===f?[]:f,b=function(){d(s,u.current),o()};(0,a.useEffect)((function(){c&&l()}),[]);var y=(0,G.TA)({extraKey:"nodesView"}),v=(0,Wt.Z)(n,y,{spaceId:t});if(v)throw v;var _=(0,Kt.jg)(n),w=(0,a.useMemo)((function(){return _.map((function(e){return{value:e,label:e}}))}),[_]),k=(0,Kt.hH)(n),T=(0,a.useMemo)((function(){return p&&{value:p,label:p}}),[p]),x=(0,Gt.Z)((function(){return{enabled:!!p,fetch:function(){return function(e,t,n){return tn.Z.get("".concat(ue.li,"/spaces/").concat(e,"/rooms/").concat(t,"/contexts/").concat(encodeURIComponent(n)),{transform:sn})}(t,n,p)},initialValue:{dimensions:[],units:""}}}),[t,n,p]),S=(0,r.Z)(x,2),C=S[0],P=C.dimensions,M=C.units,q=S[1],I=(0,a.useCallback)((function(e){var t=e.value;d(s,"context",t),d(s,"dimensions",[]),d(s,"title",t)}),[s]),E=(0,a.useMemo)((function(){return P?1===P.length||g.length===P.length-1||0===g.length?[nn]:g.map((function(e){return{value:e.id,label:e.name}})):[nn]}),[g,P]),D=(0,a.useCallback)((function(e){var t=e.filter((function(e){return e.value!==nn.value})),n=(0===e.length||t.length!==e.length&&0!==g.length||t.length===P.length-1?[]:t).map((function(e){return{id:e.value,name:e.label}}));d(s,"dimensions",n)}),[s,g,P]),L=(0,Ie.VP)(n),N=(0,a.useCallback)((function(){return L(on(on({},h),{},{id:s,enableAllDimensions:0===g.length,unit:M})).then(o)}),[h]),O=(0,a.useCallback)((function(e){var t=e.target.value;t.length<=30&&d(s,"title",t)}),[s]),R=!m||!p||q||!k;return a.createElement(Vt.u6,(0,j.Z)({right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:b},i),a.createElement(Ht.x,{onClose:b,title:a.createElement(cn,{isNew:c})},a.createElement(V.Button,{label:"Save",onClick:N,disabled:R})),a.createElement(Qt.B,null,c?"Add a new metric (column)":"Edit metric"),a.createElement(Vt.TZ,null,a.createElement(V.Flex,{gap:6,column:!0},a.createElement(en,{title:"Context",help:"What is a context?",link:"https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#context","data-testid":"manageMetrics-context"},a.createElement(V.Select,{options:w,value:T,onChange:I,isLoading:!k,"data-testid":"manageMetrics-contextSelect"})),a.createElement(en,{title:"Metric Title","data-testid":"manageMetrics-title"},a.createElement(V.TextInput,{name:"title",placeholder:"Type name",value:m,onChange:O,metaShrinked:!0})),a.createElement(en,{title:"Dimensions",help:"What is a dimension?",link:"https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#dimension",disclaimer:E[0]===nn&&"The returned value is the sum of all selected dimensions.","data-testid":"manageMetrics-dimensions"},a.createElement(V.Select,{isMulti:!0,options:P,value:E,onChange:D,isLoading:q,isDisabled:!T,"data-testid":"manageMetrics-dimensionSelect"})),!c&&a.createElement(V.Flex,{justifyContent:"end"},a.createElement(Yt,{roomId:n,id:s,onRemove:o})))))},dn=(0,Ae.default)(V.Checkbox).withConfig({displayName:"styled__Checkbox",componentId:"sc-1czrg41-0"})(["color:",";font-size:12px;margin-left:",";width:100%;> span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:",";}"],(0,V.getColor)("text"),(0,V.getSizeBy)(0),(0,V.getSizeBy)(25)),hn=(0,Ae.default)(V.Flex).attrs({height:"1px",margin:[4,0]}).withConfig({displayName:"styled__Divider",componentId:"sc-1czrg41-1"})(["background-color:rgba(0,0,0,0.12);"]),un=(0,Ae.default)(V.ListItem).withConfig({displayName:"styled__ListItem",componentId:"sc-1czrg41-2"})(["align-items:center;display:flex;flex-direction:row;font-size:",";justify-content:space-between;padding-left:",";"],(0,V.getSizeBy)(3),(0,V.getSizeBy)(0)),mn=(0,Ae.default)(V.Drop).attrs({align:{top:"bottom",right:"right"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[4],round:1,width:70}).withConfig({displayName:"styled__MetricsDropdown",componentId:"sc-1czrg41-3"})(["box-sizing:content-box;"]),pn=(0,Ae.default)(V.Button).attrs({neutral:!0,flavour:"borderless",small:!0}).withConfig({displayName:"styled__OptionButton",componentId:"sc-1czrg41-4"})(["&&&{font-size:14px;font-weight:normal;justify-content:flex-start;padding-left:",";}"],(0,V.getSizeBy)(2)),fn=(0,Ae.default)(V.Button).withConfig({displayName:"styled__PencilButton",componentId:"sc-1czrg41-5"})(["> svg.button-icon{width:",";height:",";opacity:0;}"],(0,V.getSizeBy)(4),(0,V.getSizeBy)(4)),gn=(0,Ae.default)(V.Button).withConfig({displayName:"styled__MetricsButton",componentId:"sc-1czrg41-6"})(["&&&{width:100%;}"]),bn=function(e){var t=e.isOpen,n=e.onClose,s=e.onEdit,o=e.roomId,i=e.targetRef,c=(0,Ie.dh)(o),l=(0,r.Z)(c,2),d=l[0],h=l[1];if(!i.current||!t)return null;var u=function(e){s(e),n()};return a.createElement(mn,{close:n,"data-testid":"metricsMenu",onClickOutside:n,onEsc:n,target:i.current},d.map((function(e){return a.createElement(un,{"data-testid":"metricsMenu-metric-".concat(e.title),key:e.id},a.createElement(dn,{checked:!e.hidden,"data-testid":"metricsMenu-metricCheckbox",label:e.title,onChange:function(){return h(e.id,"hidden",!e.hidden)}}),a.createElement(fn,{"data-testid":"metricsMenu-editMetric",flavour:"borderless",icon:"pencilSolid",neutral:!0,onClick:function(){return u(e.id)}}))})),d.length>0&&a.createElement(hn,{"data-testid":"metricsMenu-divider"}),a.createElement(un,{"data-testid":"metricsMenu-addMetricItem"},a.createElement(gn,{"data-testid":"metricsMenu-addMetricButton",label:"Add new metric",icon:"plus",onClick:function(){return u("new")},small:!0})))},yn=function(e){var t=e.spaceId,n=e.roomId,s=(0,Ye.Z)(),o=(0,r.Z)(s,4),i=o[0],c=o[2],l=o[3],d=(0,a.useState)(null),h=(0,r.Z)(d,2),u=h[0],m=h[1],p=(0,a.useRef)();return a.createElement(a.Fragment,null,a.createElement(V.Button,{"data-ga":"metric-setting::click-metric-setting::hm-nodes","data-testid":"metricSettings-button",flavour:"hollow",icon:"gear",neutral:!0,onClick:c,ref:p,label:"Metrics",small:!0}),a.createElement(bn,{isOpen:i,onClose:l,onEdit:m,roomId:n,targetRef:p}),u&&a.createElement(ln,{"data-testid":"metricsManagement",spaceId:t,roomId:n,id:u,onClose:function(){return m(null)}}))},vn=n(38671);function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function wn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var kn=function(){return(0,Bt.L)("grouping","click-grouping","hm-nodes")},Tn=[{icon:"node",label:"Node status",value:"nodeStatus","data-ga":"grouping::click-grouping-node-status::hm-nodes"},{icon:"alarm_bell",label:"Alert status",value:"alertStatus","data-ga":"grouping::click-grouping-status::hm-nodes"}],xn={Option:function(e){var t=e.innerProps,n=e.data,s=e.isSelected;return a.createElement(pn,(0,j.Z)({},n,t,{active:s}))}},Sn={control:function(e){return wn(wn({},e),{},{height:32,minHeight:32,width:160})},indicatorSeparator:function(){return{display:"none"}},dropdownIndicator:function(e){return wn(wn({},e),{},{height:20,minHeight:20,paddingRight:4,paddingTop:0,paddingBottom:0})},valueContainer:function(e){return wn(wn({},e),{},{paddingTop:0,paddingBottom:0})}},Cn=function(){var e=(0,I.th)(),t=(0,d.UL)(),n=(0,Ye.Z)(),s=(0,r.Z)(n,4),o=s[0],i=s[2],c=s[3],l=(0,vn.Z)().onIntegrationsClick,h=Ce(t,"groupMode"),u=(0,r.Z)(h,2),m=u[0],p=u[1],f=(0,a.useMemo)((function(){return Tn.find((function(e){return e.value===m}))||Tn[0]}),[m]),g=(0,a.useCallback)((function(e){var t=e.value;return p(t)}),[p]);return a.createElement(V.Flex,{alignItems:"center","data-testid":"agentsHead-actions",flexWrap:!1,gap:3},a.createElement(V.Select,{components:xn,label:"Group by",onChange:g,onMenuOpen:kn,options:Tn,styles:Sn,value:f}),a.createElement(yn,{roomId:t,spaceId:e}),a.createElement(V.Button,{icon:"integrations",flavour:"hollow",onClick:l,small:!0},"Integrations"),o&&a.createElement(zt.Z,{onClose:c}),a.createElement(jt,{"data-ga":"add-nodes::click-add-nodes::hm-nodes","data-testid":"agentsHead-addNode",icon:"nodes_hollow",label:"Add Nodes",onClick:i,small:!0}))},Pn=n(27856),Mn=function(e){var t=e.message,n=e.children,s=e.warningMessage,o=(0,a.useRef)(),i=(0,a.useRef)([]),c=(0,V.useNavigationArrow)(o,i,n,!0),l=(0,r.Z)(c,3),d=l[0],h=l[1],u=l[2];(0,a.useEffect)((function(){if(o.current){var e=o.current,t=(0,Pn.D)(300,(function(){u()}));return t(),e.addEventListener("scroll",u),window.addEventListener("resize",t),function(){e.removeEventListener("scroll",u),window.removeEventListener("resize",t)}}}),[n]);var m=(0,a.useCallback)((function(e){e&&(i.current.includes(e)||(i.current=[].concat((0,_.Z)(i.current),[e])),n.length<i.current.length&&(i.current=i.current.filter((function(t){return t.getAttribute("data-testid")===e.getAttribute("data-testid")}))))}),[n]),p=(0,a.useMemo)((function(){return a.Children.map(n,(function(e,t){var n="tab-".concat(t);return a.cloneElement(e,{key:n,ref:m})}))}),[n]);return a.createElement(V.Flex,{"data-testid":"selected-nodes-container",alignItems:"center",width:"100%"},a.createElement(V.Flex,{alignItems:"center"},a.createElement(V.TextSmall,{whiteSpace:"nowrap","data-testid":"selected-nodes-container-message",color:"primary"},t,":"),s&&a.createElement(V.Flex,{padding:[0,1,0],margin:[0,0,1],justifyContent:"center"},a.createElement(me.Z,{plain:!0,content:s,align:"bottom"},a.createElement(V.Icon,{width:"16px",height:"16px","data-testid":"selected-nodes-container-warning-icon",color:"warningText",name:"warning_triangle_hollow"})))),d&&a.createElement(V.Flex,{"data-testid":"selected-nodes-arrowLeft",cursor:"pointer",onClick:function(e){e.preventDefault();var t=o.current;t.scrollTo({left:t.scrollLeft-200,behavior:"smooth"})},padding:[2]},a.createElement(V.Icon,{name:"navLeft",color:"text",width:8,height:8})),a.createElement(V.Flex,{ref:o,overflow:"hidden",padding:[1],gap:1},p),h&&a.createElement(V.Flex,{"data-testid":"selected-nodes-arrowRight",cursor:"pointer",onClick:function(e){e.preventDefault();var t=o.current;t.scrollTo({left:t.scrollLeft+200,behavior:"smooth"})},padding:[2]},a.createElement(V.Icon,{name:"navRight",color:"text",width:8,height:8})))},qn=(0,a.memo)(Mn),In=n(91008),En=function(e){var t=e.onClose,n=e.id;return a.createElement(V.Box,{"data-testid":"selected-node-item-remove-button-".concat(n),sx:{marginLeft:"auto"},as:V.Icon,name:"close_circle",onClick:t,cursor:"pointer",width:3,height:3,color:"border",position:"absolute",right:"2px"})},Dn=(0,a.forwardRef)((function(e,t){var n=e.tooltipText,s=e.onClose,r=e.id,o=e.showToolTip,i=e.onClickAnchor,c=e.displayText,l=e.isAnchorDisabled;return a.createElement(V.Flex,{width:"100%",ref:t,"data-testid":"selected-node-item-".concat(r)},a.createElement(V.Pill,{background:"nodeBadgeBackground",padding:[0],borderColor:"nodeBadgeBackground"},a.createElement(V.Flex,{position:"relative",width:{max:"300px"},gap:2,alignItems:"center",padding:[1,4,1,2]},a.createElement(In.Z,{Component:V.TextSmall,showToolTip:o,content:n,align:"bottom",isBasic:!0,disabled:l,onClick:i,cursor:"pointer",color:"text",hoverColor:"primary",visitedColor:"accent",disabledColor:"textLite"},c),a.createElement(En,{onClose:s,id:r}))))})),Ln=n(82902),Nn=(0,a.forwardRef)((function(e,t){var n=e.onRemove,s=e.nodeId,r=(0,xt.bV)(s,"name"),o=(0,xt.bV)(s,"isOffline"),i=(0,he.a)(r,30),c=(0,xt.WR)(s);return a.createElement(Dn,{onClose:n,id:s,displayText:i,tooltipText:r,showToolTip:i!==r,isAnchorDisabled:o,onClickAnchor:c,ref:t})})),On=(0,a.memo)((function(){var e=(0,G.wT)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],o=(0,G.H7)(),i=(0,xt.Mm)(o);if(!((null===n||void 0===n?void 0:n.length)>0))return a.createElement("div",null);var c=i.length!==o.length?"Some of the nodes you have selected are unreachable, therefore their metrics are not included in the charts.":"";return a.createElement(V.Flex,{width:"100%",overflow:"hidden"},a.createElement(qn,{warningMessage:c,message:"You have selected ".concat(o.length," ").concat((0,Ln.V6)(o.length))},o.map((function(e){return a.createElement(Nn,{key:e,onRemove:function(){return s(n.filter((function(t){return t!==e})))},nodeId:e})}))))})),Rn=function(e){var t=e.children;return a.createElement(V.Flex,{width:"100%",justifyContent:"between",background:"mainBackground",padding:[2,4]},a.createElement(On,null),a.createElement(V.Box,{padding:[2,0],sx:{marginLeft:"auto"}},t))},An=function(){var e=(0,I.th)(),t=(0,d.UL)(),n=Se(t,"groupMode"),s=(0,Pe.zN)(),r=(0,I.Q6)();!function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).host,n=(0,Ee.e)(),s=(0,a.useRef)();(0,a.useMemo)((function(){if(n){var r=Le(n,e);r&&r.destroy(),r=n.makeContainer({attributes:{host:t,enabledXAxis:!1,id:"nodes-".concat(e),hasToolbox:!1,height:"".concat(De.m4,"px"),groupingMethod:"average",groupBy:["dimension"],aggregationMethod:"avg",legend:!1,axisLabelFontSize:7,yAxisLabelWidth:20,hasYlabel:!1}}),s.current=r,n.appendChild(r)}}),[e]),(0,a.useLayoutEffect)((function(){return function(){return s.current&&s.current.destroy()}}),[])}(t,{host:r?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(e,"/rooms/").concat(t)});var o=(0,U.y3)(e,"loaded"),i=(0,Pe.X7)(t,"loaded"),c=(0,d.tE)(t,"fullyLoaded"),l=r?!i:!o||!i||!c;return i&&!s.length?a.createElement(Me.Z,null):a.createElement(Ft.Z,{rightBar:a.createElement(Ut.Z,null),gap:1},a.createElement(Rn,null,a.createElement(Cn,null)),a.createElement(V.Flex,{column:!0,"data-testid":"agents",flex:!0},a.createElement(V.Flex,{"data-testid":"agents-content",flex:!0,position:"relative"},l?a.createElement(B.Z,{title:"Loading nodes..."}):a.createElement(At,{spaceId:e,roomId:t,groupMode:"services"===n?"nodeStatus":n}))))},Fn=n(74662),Un=n(2077),Bn=n(5441),Zn=n(25517),jn=(n(39714),n(48286)),zn=Ae.default.div.withConfig({displayName:"selections__Separator",componentId:"sc-1cc7y18-0"})(["width:1px;height:",";background:",";"],(0,V.getSizeBy)(2.5),(0,V.getColor)("borderSecondary")),Vn=[{label:"Volume",value:"volume"},{label:"KS2",value:"ks2"}],Hn=[{label:"Average",value:"average"},{label:"Median",value:"median"},{label:"Min",value:"min"},{label:"Max",value:"max"},{label:"Stddev",value:"stddev"}],Qn=[{label:"Metrics",value:""},{label:"Anomaly Rate",value:"anomaly-bit"}],Gn=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},a.createElement(V.TextMicro,{color:"white"},"Choose the algorithm you want to be used to identify correlations across metrics:"),a.createElement(V.TextMicro,null,a.createElement(V.TextMicro,{color:"white",strong:!0},"KS2:")," ","A statistical test comparing the distribution of the highlighted window to the baseline."),a.createElement(V.TextMicro,null,a.createElement(V.TextMicro,{color:"white",strong:!0},"Volume:")," ","Percentage change in averages between highlighted window and baseline."))},Wn=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},a.createElement(V.TextMicro,{color:"white"},"What aggregation function do you want to apply when aggregating multiple datapoints for metric correlations."))},Kn=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},a.createElement(V.TextMicro,{color:"white"},"Do you want to find correlations over the metric values or the anomaly rates of each metric."))},Jn=function(e){var t=e.runGetWeights,n=e.nodeIds,s=e.flavour,r=(0,Un.$g)({nodeIds:n,flavour:s}),o=r.method,i=r.options,c=r.group,l=null!==i&&void 0!==i&&i.includes(Qn[1].value)?Qn[1].value:"",d=(0,a.useCallback)((function(e){return function(n){var s=n.value;s="options"!==e?s:s?[s]:[];var r=(0,h.Z)({method:o,options:[i],group:c},e,s);t(r)}}),[o,i,c]),u=(0,a.useMemo)((function(){return{method:Vn.find((function(e){return e.value===o})),group:Hn.find((function(e){return e.value===c})),option:Qn.find((function(e){return e.value===l}))}}),[o,c,l]);return c?a.createElement(V.Flex,{gap:2},a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.TextSmall,{color:"textLite"},"Method:"),a.createElement(V.Select,{options:Vn,value:u.method,onChange:d("method")}),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Gn,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(zn,null),a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.TextSmall,{color:"textLite"},"Aggregation:"),a.createElement(V.Select,{options:Hn,value:u.group,onChange:d("group")}),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Wn,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(zn,null),a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.TextSmall,{color:"textLite"},"Data:"),a.createElement(V.Select,{options:Qn,value:u.option,onChange:d("options")}),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Kn,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(zn,null)):null},Yn=n(89405),Xn=function(e){var t=e.highlightAfter,n=e.highlightBefore,s=e.baseline,r=(0,Yn.rA)(),o=r.localeDateString,i=r.localeTimeString,c=new Date(t),l=new Date(n),d=new Date(s),h=new Date(t),u=Math.round((n-t)/1e3),m=Math.round((t-s)/1e3),p=(0,G.TQ)("highlight");return a.createElement(V.Flex,{gap:4,alignItems:"center"},a.createElement(V.Flex,{gap:2},a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{color:"textLite"},"Selected area:"),a.createElement(V.TextSmall,{color:"textLite"},"Reference baseline:")),a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-selectedArea"},o(c,{long:!1}),","," ",i(c),"\xa0->\xa0",o(l,{long:!1}),","," ",i(l)),a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-referenceBaseline"},o(d,{long:!1}),","," ",i(d),"\xa0->\xa0",o(h,{long:!1}),","," ",i(h))),a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{color:"textLite"},"Duration:"),a.createElement(V.TextSmall,{color:"textLite"},"Duration:")),a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-selecteArea-duration"},u,"\xa0secs"),a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-referenceBaseline-duration"},m,"\xa0secs"))),a.createElement(me.Z,{content:"Clear selection",align:"bottom",isBasic:!0},a.createElement(V.Button,{neutral:!0,flavour:"borderless",icon:"trashcan",onClick:function(){p({after:null,before:null})},"data-ga":"metric-correlation::click-delete::charts-view","data-testid":"metricCorrelation-delete"})))};function $n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var es=(0,Ae.default)(V.Button).withConfig({displayName:"correlation__LogoButton",componentId:"sc-15d72m3-0"})(["&&{pointer-events:none;}"]),ts=(0,Ae.default)(V.Button).withConfig({displayName:"correlation__CloseButton",componentId:"sc-15d72m3-1"})(["position:absolute !important;top:-3px;right:-3px;"]),ns=(0,Ae.default)(V.Button).attrs({padding:[0],margin:[0,0,0,1.5],width:"auto"}).withConfig({displayName:"correlation__StyledButton",componentId:"sc-15d72m3-2"})(["height:16px !important;> span{margin:0 !important;}"]),ss=function(e){var t=e.flavour,n=(0,I.th)(),s=(0,d.UL)(),o=(0,xt.pG)(),i=(0,a.useMemo)((function(){return o?[o]:[]}),[o]),c=(0,G.TA)({extraKey:t,defaultValue:i}),l="singleNode"===t?i:c,u=(0,a.useState)(!1),m=(0,r.Z)(u,2),p=m[0],f=m[1],g=(0,a.useState)(),b=(0,r.Z)(g,2),y=b[0],v=b[1],_=(0,Un.d5)({nodeIds:l,flavour:t},n,s),w=_.threshold,k=_.totalDimensionsCount,T=_.dimensionsCount,x=_.loaded,S=_.loading,C=_.getWeights,P=_.resetWeights,M=(0,Un.$g)({nodeIds:l,flavour:t}),q=M.method,E=M.options,D=M.group,L=(0,G.by)("highlight"),N=L.after,O=L.before,R=N-4*(O-N),A=!!N;(0,a.useEffect)((function(){if(x){var e="default-result";if(D){var t=null!==E&&void 0!==E&&E.includes("anomaly-bit")?"anomaly-bit":"metrics";e="default-result-".concat(q,"-").concat(D,"-").concat(t)}return(0,Bt.L)("metrics-correlation",e,"charts-view",T.toString())}}),[x]),(0,jn.Z)((function(){N&&f(!0)}),[N]);var F=(0,G.TQ)("correlation"),U=(0,G.TQ)("threshold"),B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(!1),v(),C(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$n(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({highlightAfter:N,highlightBefore:O,baselineAfter:R,baselineBefore:N,method:q,options:E,group:D,nodeIds:l},e)).then((function(){return U(Un.mt)}))},Z=!A||S;return(0,jn.Z)((function(){x&&p&&A&&B()}),[x,A,p]),a.createElement(V.Flex,{round:2,background:"elementBackground",padding:[2,6,2,2],alignItems:"center",justifyContent:"between",flex:!0,"data-testid":"correlation",position:"relative",height:{min:"64px"},gap:2},A?x?a.createElement(V.Flex,{"data-testid":"metricCorrelation-resultsContainer",column:!0,width:"100%"},a.createElement(V.Flex,{justifyContent:"between",alignItems:"center",gap:1},a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{name:"correlation",color:"primary",width:"16px",height:"16px"}),a.createElement(V.TextSmall,null,"Analysed"," ",a.createElement(V.TextSmall,{color:"primary","data-testid":"metricCorrelation-resultsAnalyzed"},k)," ","and found"," ",a.createElement(V.TextSmall,{color:"primary","data-testid":"metricCorrelation-resultsFound"},T)," ","correlated metrics."),a.createElement(me.Z,{content:"Clear results"},a.createElement(ns,{flavour:"borderless",neutral:!0,disabled:S||!x&&!A,onClick:function(){U(Un.mt),P(),(0,Bt.L)("metrics-correlation","click-delete","charts-view","".concat(x?"finish":"start"))},"data-testid":"metricCorrelation-clear",small:!0,icon:"reload"}))),a.createElement(Jn,{runGetWeights:B,nodeIds:l,flavour:t})),a.createElement(V.Flex,{width:"100%"},a.createElement(V.Flex,{alignItems:"center",gap:3,margin:[0,2,0,5],width:"100%"},a.createElement(V.TextNano,{whiteSpace:"nowrap",color:"textDescription"},"Show less"),a.createElement(V.InputRange,{"data-testid":"metricCorrelation-resultsSlider",min:0,max:1,onChange:function(e){return U(e.target.value.toString())},onClick:function(){return(0,Bt.L)("metric-correlation","click-slider","charts-view")},step:.01,value:w}),a.createElement(V.TextNano,{whiteSpace:"nowrap",color:"textDescription"},"Show more")),a.createElement(a.Fragment,null,a.createElement(me.Z,{content:"Give us your feedback! Was it useful?",align:"bottom",enterDelay:200,showArrow:!0,activateOn:"hover"},a.createElement(V.Flex,null,a.createElement(V.Button,{flavour:"+"===y?"hollow":"borderless",disabled:y,icon:"thumb_up",onClick:function(){return v("+")},"data-ga":"metric-correlation::click-thumbs-up::charts-view","data-testid":"metricCorrelation-thumbsUp",small:!0}),a.createElement(V.Button,{flavour:"-"===y?"hollow":"borderless",disabled:y,icon:"thumb_down",onClick:function(){return v("-")},"data-ga":"metric-correlation::click-thumbs-down::charts-view","data-testid":"metricCorrelation-thumbsDown",small:!0})))))):a.createElement(V.Flex,{alignItems:"center","data-testid":"correlationView-timePeriod-container",gap:4},a.createElement(es,{icon:"logo_s",isLoading:S}),S?a.createElement(V.H5,{"data-testid":"metricCorrelation-loadingCalculation"},"Calculating metric correlations..."):a.createElement(Xn,{highlightAfter:N,highlightBefore:O,baseline:R})):a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{name:"correlation",color:"primary"}),a.createElement(V.Text,null,"Select a timeframe on any chart and find correlated metrics. Visit documentation"),a.createElement("a",{href:"https://learn.netdata.cloud/docs/cloud/insights/metric-correlations",target:"_blank",rel:"noreferrer"},a.createElement(V.Icon,{name:"nav_arrow_goto",color:"primary",width:"12px",height:"12px"}))),a.createElement(V.Flex,{alignItems:"center"},(!x||S)&&a.createElement(me.Z,{content:Z?"Select an area of interest on any chart":"Click to find correlated metrics for the selected area",align:"bottom",enterDelay:200,showArrow:!0,activateOn:"hover"},a.createElement(V.Button,{label:S?"Loading...":"Find correlations",isLoading:!1,onClick:B,disabled:Z,flavour:"hollow","data-ga":"metric-correlation::click-find-correlation::charts-view","data-testid":"metricCorrelation-find",small:!0,margin:[0,2,0,0]})),a.createElement(me.Z,{content:"Close",align:"bottom"},a.createElement(ts,{neutral:!0,flavour:"borderless",onClick:function(){F(!1),U(Un.mt),P(),(0,Bt.L)("metrics-correlation","click-close","charts-view","".concat(x?"finish":"start"))},"data-ga":"metric-correlation::click-close::charts-view","data-testid":"metricCorrelation-close",icon:"x"}))))},rs=function(){var e=(0,G.TQ)("correlation");return a.createElement(me.Z,{content:function(){return a.createElement(V.Box,null,a.createElement("strong",null,"Troubleshoot with Metric Correlations"),a.createElement("br",null),a.createElement("br",null),"Metric correlations will help you identify potential root causes for an observed issue.",a.createElement("br",null),"It will automatically analyse all available metrics for irregular behavior for the same timeframe.")},align:"bottom",activateOn:"hover",isBasic:!0},a.createElement(V.Button,{width:"118px",flavour:"hollow",label:"Metric Correlations",onClick:function(){e(!0)},"data-ga":"metrics-correlation::click-metric-correlations::charts-view","data-testid":"run-correlation",small:!0}))},as=n(94829),os=Ae.default.div.withConfig({displayName:"styled__Separator",componentId:"sc-1fhfk7c-0"})(["background:",";height:20px;width:1px;"],(0,V.getColor)("tabsBorder"));function is(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function cs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?is(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):is(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ls=function(e){var t,n,s=e.setSidebarTab,r=(0,xt.pG)(),o=(0,x.ev)(r),i=(0,k.n_)(o),c=i.critical,l=i.warning,d=(0,xt.bV)(r),h=d.hw,u=d.cpus,m=d.isLive,p=d.name,f=d.os,g=d.state,b=d.updateSeverity,y=d.labels,v=d.version,_={dataTestId:"singleNode",isLive:m},w=(0,Ke.kR)(cs({count:c,type:"critical"},_)),T=(0,Ke.kR)(cs({count:l,type:"warning"},_)),S=(0,Ke.Q5)(g),C=(0,Ke.jo)(h.container,h.virtualization),P=(0,as.Z)("(min-width: 1760px)");return a.createElement(V.Flex,{alignItems:"center",background:"elementBackground",border:{side:"all",color:"tabsBorder"},"data-testid":"singleNode-badges-container",flex:!1,gap:2,padding:[2,4],round:999},a.createElement(V.TextSmall,{"data-testid":"singleNode-".concat(p),strong:!0},p),a.createElement(os,{"data-testid":"singleNode-separator"}),a.createElement(V.Flex,{"data-testid":"singleNode-info-alerts-badges",gap:1},a.createElement(Je.Z,{badge:"info","data-testid":"singleNode-nodeInfo-cta"},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"nodeBadgeBorder",color:"nodeBadgeColor",flavour:"neutral",icon:"information",iconSize:"18px",onClick:function(){return s(2)},padding:[1,2],size:"large"})),a.createElement(Je.Z,{badge:"alerts",nodeName:p},a.createElement(V.AlertMasterCard,{onClick:w.text||T.text?function(){return s(1)}:null,pillLeft:w,pillRight:T,size:"large"})),b&&a.createElement(Lt.Z,{"data-testid":"singleNode-update-cta",name:p,os:f.id,container:h.container,warningLevel:b,labels:y,version:v,text:b})),a.createElement(os,{"data-testid":"singleNode-separator"}),a.createElement(V.Flex,{alignItems:"center",background:"nodeBadgeBackground","data-testid":"singleNode-system-info-badges",gap:1,padding:[1],round:999},a.createElement(Je.Z,{badge:"connectivity",connectivityState:S,"data-testid":"singleNode-connectivityStateInfo",nodeName:p},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"nodeBadgeBorder",color:"nodeBadgeColor",flavour:"neutral",hollow:!0,size:"large"},S)),a.createElement(Je.Z,{badge:"type","data-testid":"singleNode-nodeTypeInfo",nodeName:p,nodeType:C.label},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"nodeBadgeBorder",color:"nodeBadgeColor",flavour:"neutral",hollow:!0,icon:C.icon,iconSize:C.iconSize,size:"large"},C.label)),P&&a.createElement(Je.Z,{badge:"systemInfo","data-testid":"singleNode-systemInfo",nodeName:p},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"nodeBadgeBorder",color:"nodeBadgeColor",flavour:"neutral",hollow:!0,normal:!0,size:"large",icon:(null===(t=Mt._[f.nm])||void 0===t?void 0:t.iconName)||(null===(n=Mt.V[f.id])||void 0===n?void 0:n.iconName)||"os"},(0,Ke.ys)(h.cpuFrequency)," (",u," ",1===h.cpus?"Core":"Cores",") -"," ",(0,Ke.yo)(h.memory)," RAM - ",(0,Ke.yo)(h.diskSpace)))))},ds=function(){var e=(0,vn.Z)().onIntegrationsClick;return a.createElement(a.Fragment,null,a.createElement(V.Button,{icon:"integrations",flavour:"hollow",onClick:e,small:!0,label:"Integrations","data-ga":"integrations::click-integrations::charts-view","data-testid":"btn-show-integrations"}))},hs=["flavour"],us={singleNode:ls,default:On},ms=(0,a.memo)((function(e){var t=e.flavour,n=(0,z.Z)(e,hs),s=(0,G.by)("correlation"),r=us[t]||us.default;return a.createElement(V.Flex,{alignItems:!s&&"center",background:"mainBackground",column:s,"data-testid":"overview-header",gap:2,justifyContent:s?"start":"between",padding:[2,2,2,4],width:"100%"},s?a.createElement(ss,{flavour:t}):a.createElement(a.Fragment,null,a.createElement(r,n),a.createElement(V.Flex,{gap:2},a.createElement(ds,null),a.createElement(rs,null))))})),ps=ms,fs=n(15394),gs=n(13962),bs=n(22962),ys=n(61152),vs=n(69743),_s=n(56102),ws=n(11835),ks=n(69968),Ts=(n(48564),n(79424),n(71824)),xs=["children"],Ss=(0,a.memo)((0,a.forwardRef)((function(e,t){var n=e.children,s=(0,z.Z)(e,xs);return a.createElement(V.Flex,(0,j.Z)({justifyContent:"start",alignItems:"center","data-testid":"ChartHeadsWrapper"},s,{ref:t}),n)}))),Cs=n(85993),Ps=n(62525),Ms=n(41481),qs=(0,f.cn)({key:"currentChartsContainerKey",default:null}),Is=function(){var e=(0,Ee.e)(),t=(0,f.sJ)(qs);return e&&e.getRoot().getChildren().find((function(e){return e.match({id:t})}))},Es=function(e){return function(t){return"overview-page::".concat(e.getAttribute("id"),"::").concat(t)}},Ds=["chartId"],Ls=["id","ids"];function Ns(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Os(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ns(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ns(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Rs=(0,Ts.wJ)((function(e){var t=e.id,n=e.menuChartAttributes,s=(0,d.UL)(),r=(0,Ee.e)(),o=Is(),i=(0,a.useMemo)((function(){var e,a="head-".concat(t),i=o.getChildren().find((function(e){return e.match({id:a})}));if(!i){var c=Os({contextScope:[(e=n).chartId]},(0,z.Z)(e,Ds));i=r.makeChart({attributes:Os(Os({},c),{},{roomId:s,id:a}),makeTrack:Es}),o.appendChild(i)}return i}),[s,t,o]);return(0,Kt.Ni)(n.chartId)?a.createElement(Ne.Z,{chart:i,"data-track":i.track("container")}):null})),As=function(e,t){return e.layout||console.warn(t,"has no layout set, default values will be used."),Os(Os({x:0,y:0,w:3,h:5,i:e.id,chartId:e.chartId},e.layout),{},{minW:1,minH:1,static:!1})},Fs={lg:12,md:12,sm:12,xs:12,xxs:1},Us={lg:40,md:30,sm:30,xs:30,xxs:30},Bs=function(e){var t=e.id,n=e.ids,s=(0,z.Z)(e,Ls),o=(0,Ts.mQ)(n,As),i=(0,Ms.J1)().filteredChartsCount,c=(0,Ts.MS)(t),l=(0,a.useMemo)((function(){return{lg:o.filter((function(e){if(!e)return!1;var t=c(e.chartId);return t.visible&&!t.filteredOut&&!t.hidden}))}}),[n,o,i]),d=(0,a.useState)("lg"),h=(0,r.Z)(d,2),u=h[0],m=h[1],p=(0,qe.Z)(),f=(0,r.Z)(p,2),g=f[0],b=f[1].width,y=(0,a.useMemo)((function(){return l.lg.map((function(e){var t=e.i;return a.createElement("div",{key:t},a.createElement(Rs,{key:t,id:t}))}))}),[l]);return n.length?a.createElement(Ss,(0,j.Z)({width:"100%",margin:[2,0,0]},s,{ref:g}),a.createElement(ks.Responsive,{layouts:l,rowHeight:Us[u],cols:Fs,margin:[4,4],measureBeforeMount:!0,style:{minWidth:"100%",minHeight:"166px"},width:b||1e3,compactType:"horizontal",onBreakpointChange:m,useCSSTransforms:!1,isDraggable:!1,isResizable:!1},y)):null},Zs=(0,Cs.Lj)(Bs,(function(e){return{ids:e.headIds}})),js=(0,Ps.Ji)(Bs,(function(e){return{ids:e.headIds}})),zs=["id"],Vs=function(e){var t=e.id,n=(0,z.Z)(e,zs);return a.createElement(vs.d,(0,j.Z)({id:t},n),a.createElement(_s.Y,{id:t}),a.createElement(ws.f,{id:t}),a.createElement(Zs,{id:t}))},Hs=(0,a.memo)(Vs),Qs=n(18039),Gs=["id"],Ws=["height"];function Ks(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Js(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ks(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ks(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ys=[],Xs=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{selectedDimensions:e.dimensions?Object.keys(e.dimensions):Ys,selectedInstances:e.instances?Object.keys(e.instances):Ys,selectedNodes:e.nodes?Object.keys(e.nodes):Ys,weight:e.weight}},$s=function(e){var t=e.id,n=(0,z.Z)(e,Gs),s=(0,d.UL)(),r=Is(),o=(0,Ts.nI)(t),i=o.height,c=void 0===i?0:i,l=(0,z.Z)(o,Ws),h=(0,Ee.e)(),u=(0,a.useMemo)((function(){var e=r.getNode({id:t});return e||(e=h.makeChart({attributes:Js({contextScope:[t],height:(0,Qs.C)(r,t,c+360),id:t,roomId:s},l),makeTrack:Es}),r.appendChild(e),e)}),[r,s,t]),m=(0,Ts.Q8)(t,Xs),p=m.weight,f=m.selectedDimensions,g=m.selectedInstances,b=m.selectedNodes;return(0,a.useEffect)((function(){u&&p&&(u.updateAttributes({selectedDimensions:f,selectedInstances:g,selectedNodes:b}),u.trigger("fetch"))}),[s,t,p,f.length,g.length,b.length]),a.createElement(Ne.Z,(0,j.Z)({margin:[0,0,2],chart:u,"data-chartid":t,"data-track":u.track("container")},n))},er=a.memo($s,(function(e,t){return e.id===t.id})),tr=["id","subMenuId"],nr=function(e){var t=e.id,n=e.subMenuId,s=(0,z.Z)(e,tr);return a.createElement(er,(0,j.Z)({id:t,role:"graphics-object","aria-roledescription":"chart","data-submenuid":n},s))},sr=(0,a.memo)(nr),rr=n(14048),ar=n(12664),or=function(e){var t=e.id;return a.createElement(rr.D,{gap:0,id:t},a.createElement(ar.o,{id:t,margin:[1,0,0]}),a.createElement(js,{id:t}))},ir=(0,a.memo)(or),cr=function(e){var t=e.id,n=(0,d.UL)(),s=(0,Ee.e)(),o=(0,Ts.MS)(),i=(0,Cs.nk)(t).subMenuChartIds,c=Is(),l=(0,a.useMemo)((function(){var e=(0,r.Z)(i,1)[0],a=(o(e),c.getChildren().find((function(e){return e.match({id:t})})));if(a)return a;var l=i.map((function(e){return{value:e,label:o(e).context}}));return a=s.makeChart({attributes:{id:t,contextScope:[e],roomId:n,composite:!0,chartLibrary:"groupBoxes",groupBy:["label"],groupByLabel:["k8s_namespace","k8s_pod_name"],aggregationMethod:"avg",eliminateZeroDimensions:!1,contextItems:l},makeTrack:Es}),c.appendChild(a),a}),[t,c]);return a.createElement(Ne.Z,{margin:[0,0,2],chart:l,"data-chartid":t,"data-track":l.track("container")})},lr=["id"],dr=function(e){var t=e.id,n=(0,z.Z)(e,lr);return a.createElement(vs.d,{id:t,padding:[6,0,0]},a.createElement(_s.Y,{id:t}),a.createElement(ws.f,{id:t,padding:[2,0,0]}),a.createElement(cr,(0,j.Z)({id:t},n)))},hr={k8s:(0,a.memo)(dr)},ur=function(e){if(hr[e.flavour])return hr[e.flavour];switch(e.level){case 0:return Hs;case 1:return ir;case 2:return sr;default:return null}},mr=function(e){var t=e.onChartNameChange,n=e.initialChartName,s=e.dashboardOptions,o=e.linkToGo,i=e.contextToGo,c=(0,ys.Z)("addToDashboardModal"),l=(0,r.Z)(c,4),d=l[0],h=l[3],u=(0,fs.Z)({onChartNameChange:t,initialChartName:n,linkToGo:o,contextToGo:i}),m=u.setActiveMenuGroupId,p=u.setActiveSubMenuId;return a.createElement(Fn.v,null,a.createElement(gs.Z,{onActiveMenuGroupId:m,onActiveSubMenuId:p,getComponent:ur,dashboardOptions:s,initialChartName:n}),d&&a.createElement(bs.Z,{onClose:h}))},pr=n(49887),fr=function(){return a.createElement(V.Flex,{padding:[6],round:1,width:"600px",background:"modalInfoBackground"},a.createElement(V.Box,{margin:[0,4,0,0]},a.createElement(V.Box,{as:V.Icon,width:10,height:10,name:"nodes_update"})),a.createElement(V.Flex,{column:!0,gap:2},a.createElement(V.Text,{strong:!0},"Couldn't find the chart you were looking for? "),a.createElement(V.Text,{color:"textDescription"},"Netdata has zero-configuration auto-detection for most applications and systems, this is achieved using collectors. If you miss some specific chart please check our"," ",a.createElement(In.Z,{href:"https://learn.netdata.cloud/docs/agent/collectors",target:"_blank","data-ga":"chart-area::click-link-collectors::charts-view"},"list of collectors")," ","to see if any additional step is needed.")))},gr=function(){return a.createElement(V.Flex,{column:!0,justifyContent:"center",alignItems:"center",alignSelf:"center",margin:[30,0,0]},a.createElement(V.Flex,{column:!0,justifyContent:"center",alignItems:"center",width:"300px",margin:[0,0,6]},a.createElement(V.H3,{margin:[0,0,4]},"No chart results to display"),a.createElement(V.Text,{color:"textDescription",textAlign:"center"},"Double-check your search or filters and dates and try again with different conditions.")),a.createElement(fr,null))},br=n(72911),yr=n(8741),vr=n(41898),_r=function(){var e=(0,d.UL)(),t=(0,A.gI)("node:Create");return a.createElement(Ft.Z,{column:!1,"data-testid":"noNodesViewPage",gap:12,padding:[6],rightBar:a.createElement(Ut.Z,null)},a.createElement(V.Flex,{column:!0,gap:5,flex:{shrink:0,grow:0},"data-testid":"noKubernetesView-videoSection"},a.createElement(br.Z,{"data-testid":"noNodesView-onboardingVideo",height:350,width:850,videoId:ue.mX[0]}),a.createElement(br.Z,{"data-testid":"noNodesView-onboardingVideo",height:350,width:850,videoId:ue.mX[1]})),a.createElement(V.Flex,{column:!0,gap:4},a.createElement(V.Box,{border:{side:"bottom",color:"borderSecondary"}},a.createElement(V.Box,{margin:[0,0,2,0]},a.createElement(In.Z,{href:"https://learn.netdata.cloud/guides/monitor/kubernetes-k8s-netdata",target:"_blank",rel:"noopener noreferrer","data-ga":"k8s-tab::click-link-guides::kubernetes-overview-and-visualizations"},a.createElement(V.TextBig,{color:"primary"},"Kubernetes monitoring with Netdata: Overview and visualizations"))),a.createElement(V.Box,{margin:[0,0,2,0]},a.createElement(In.Z,{href:"https://learn.netdata.cloud/docs/cloud/visualize/kubernetes",target:"_blank",rel:"noopener noreferrer","data-ga":"k8s-tab::click-link-guides::kubernetes-visualizations"},a.createElement(V.TextBig,{color:"primary"},"Kubernetes visualizations")))),a.createElement(V.Flex,{column:!0,gap:4},t?a.createElement(yr.Z,{integrationId:vr.O_,rooms:[e]}):a.createElement(Me.H,null))))};function wr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var kr=(0,a.memo)((function(){var e=(0,k.O0)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],o=(0,Ee.e)(),i=!!n&&!!o&&o.getNode({id:n.context}),c=function(){if(s(null),null!==n&&void 0!==n&&n.context&&i){var e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i.getAttribute("overlays"));delete e.alert,i.updateAttribute("overlays",e),history.replaceState({},"")}};(0,a.useEffect)((function(){return c}),[]);var l=(0,d.UL)(),u=(0,Kt.Cd)((null===n||void 0===n?void 0:n.context)&&l,null===n||void 0===n?void 0:n.context);if(!n||null===u||void 0===u||!u.loaded)return null;var m=u.firstEntry;return a.createElement(V.Layer,{backdrop:!1,position:"top",margin:[26,0,0],padding:[26,0,0]},a.createElement(V.Flex,{background:["neutral","black"],padding:[1,2],gap:2},a.createElement(V.TextSmall,{color:["neutral","porcelain"]},"Alert in ",a.createElement(V.TextSmall,{color:"bright"},n.instance)," on"," ",a.createElement(V.TextSmall,{color:"bright"},new Date(1e3*n.lastStatusChange).toLocaleString()),!m&&" doesn't exist on the node anymore",!!m&&m>n.lastStatusChange&&" exceeds agent data retention settings"),a.createElement(V.Flex,{flex:!1},a.createElement(V.Icon,{name:"x",color:"bright",onClick:c,size:"small"}))))})),Tr=kr;function xr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Sr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Cr={NoChartsView:gr,NoNodesView:Me.Z,rightBar:{title:"Filters",hiddenTabs:["info"],Component:pr.Z,props:{}},dashboardOptions:{},loadingMessage:"Loading charts...",Header:ps},Pr={overview:Sr(Sr({},Cr),{},{rightBar:Sr(Sr({},Cr.rightBar),{},{title:"Overview"})}),k8s:Sr(Sr({},Cr),{},{NoChartsView:_r,NoNodesView:_r,rightBar:Sr(Sr({},Cr.rightBar),{},{title:"Kubernetes"}),loadingMessage:"Loading k8s charts..."}),singleNode:Sr(Sr({},Cr),{},{rightBar:Sr(Sr({},Cr.rightBar),{},{title:"Single Node",hiddenTabs:["filters"],props:{showCollapsed:!0}})})},Mr=function(){return function(){var e=(0,Bn.E)(),t=(0,Un.yp)({nodeIds:e,flavour:"rhs"}),n=(0,Zn.$B)(),s=(0,r.Z)(n,2),o=s[0],i=s[1],c=(0,G.by)(),l=c.after,d=c.before;(0,a.useEffect)((function(){t()}),[o,i,l,d])}(),null},qr=(0,a.memo)((function(e){var t=e.flavour,n=void 0===t?"overview":t,s=e.invalidationKey,o=e.nodeIds,c=e.loaded,l=e.getChart,d=e.chartIds,h=e.areChartsIdsEmpty,u=e.showNoChartsView,m=e.showNoNodesView,p=e.initializing,f=e.chartName,g=e.setChartName,b=e.chartsLoaded,y=e.widthRef,v=Pr[n],_=v.dashboardOptions,w=v.NoChartsView,k=v.NoNodesView,T=v.rightBar,x=v.loadingMessage,S=v.Header,C=(0,i.TH)().state,P=(0,a.useState)(0),M=(0,r.Z)(P,2),q=M[0],I=M[1];return m?a.createElement(k,null):p?a.createElement(B.Z,{title:"Please wait while charts are being initialized.",body:"Thank you for your patience!"}):c?u?a.createElement(a.Fragment,null,a.createElement(S,{flavour:n}),a.createElement(w,null)):a.createElement(Fn.Z,{key:s,getChart:l,chartIds:d,linkToGo:null===C||void 0===C?void 0:C.chartName},a.createElement(Mr,null),a.createElement(Tr,null),a.createElement(Ft.Z,{ref:y,rightBar:a.createElement(T.Component,(0,j.Z)({nodeIds:o,title:T.title,initialChartName:f,hiddenTabs:T.hiddenTabs,selectedTab:q,setSelectedTab:I,flavour:n,loaded:b},T.props)),gap:1},a.createElement(S,{flavour:n,setSidebarTab:I}),b?h?a.createElement(gr,null):a.createElement(mr,{dashboardOptions:_,initialChartName:f,onChartNameChange:g,linkToGo:null===C||void 0===C?void 0:C.chartName,contextToGo:null===C||void 0===C?void 0:C.contextToGo}):a.createElement(B.Z,{title:x}))):a.createElement(B.Z,{title:x})})),Ir=qr,Er=n(7335),Dr=n(58591),Lr=function(e){var t=(0,d.A3)(),n=(0,i.s0)(),s=(0,G.I0)("alert_id"),o=(0,r.Z)(s,2),c=o[0],l=o[1];(0,a.useEffect)((function(){c&&(l(),n("".concat(t,"/alerts/").concat(c,":::").concat(e)))}),[c,e])},Nr=function(e){return function(t){var n=(0,I.th)(),s=(0,xt.pG)();Lr(s);var r=(0,xt.bV)(s,"isLive"),o=(0,xt.bV)(s,"name");(0,Q.bV)({title:o,id:s,destination:s});var c=(0,xt.TQ)(s,n),l=(0,Er.DH)();(0,a.useEffect)((function(){if(r&&"hasValue"===c.state){var e=c.contents;null!==e&&void 0!==e&&e.uid&&o&&l(e.uid,null,o)}}),[c,r,o]);var d=(0,i.s0)(),h=(0,i.UO)(),u=h.spaceSlug,m=h.roomSlug;(0,a.useEffect)((function(){var e=(0,Dr.np)("alarm_id");if(e){var t=(0,Dr.np)("alarm_chart");(0,Dr.bp)(["alarm_id","alarm_chart"]),d("/spaces/".concat(u,"/rooms/").concat(m,"/alerts/").concat(e,":::").concat(s,"?chart=").concat(t).concat(location.hash),{replace:!0})}}),[]);var p=(0,a.useMemo)((function(){return[s]}),[s]);return a.createElement(e,(0,j.Z)({flavour:"singleNode",nodeIds:p},t))}},Or=n(42448),Rr=n(39840),Ar=n(39612);function Fr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Ur(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Fr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Br=n(24298),Zr=n(96415),jr=n(70873),zr=n(43460),Vr=n(84817);function Hr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Qr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Hr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Gr=function(e,t,n){var s=n.width,o=n.host;if(!o)throw"No host provided";var c=(0,Ee.e)(),l=(0,a.useRef)(),d=(0,k.O0)(),h=(0,r.Z)(d,1)[0],u=(0,Kt.QX)(e,"error"),m=(0,G.I0)(),p=(0,r.Z)(m,2),g=p[0].correlation,b=p[1],y=(0,i.TH)(),v=y.state,_=y.pathname,w=(0,f.Zl)(qs),T=(0,Kt.qU)(e),x=(0,Kt.w4)(e);(0,a.useLayoutEffect)((function(){if(e&&c&&!u){var n=c.getRoot().getChildren().find((function(e){return e.match({id:_})}));if(!n)return n=c.makeContainer({attributes:{id:_,roomId:e,host:o,navigation:g?"highlight":"pan",overlays:{proceeded:{type:"proceeded"}},composite:!0,nodesScope:t,hasCorrelation:!0,versions:T,width:s,toolboxElements:[zr.default,Zr.default,jr.default,Vr.Z]}}),c.appendChild(n),w(_),l.current=n,(0,Br.unregister)((0,Qs.M)(c,n),c.on("correlation",(function(e,t){t&&b({correlation:!0})})),n.onAttributeChange("versions",x));w(_)}}),[e,u,_]),(0,a.useMemo)((function(){l.current&&(l.current.setAttribute("width",s),l.current.getNodes().forEach((function(e){return e.updateAttribute("width",s)})))}),[l.current,s]),(0,jn.Z)((function(){l.current&&l.current.getNodes().forEach((function(e){e.updateAttribute("nodesScope",t),e.getAttribute("active")&&"chart"===e.type&&e.fetch()}))}),[l.current,t]),(0,a.useEffect)((function(){l.current&&l.current.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttribute("navigation",g?"highlight":"pan")}))}),[l.current,g]),(0,a.useEffect)((function(){return function(){return l.current&&l.current.destroy()}}),[]),(0,a.useEffect)((function(){if(l.current&&h){var e=l.current.getNode({id:h.context});if(e){var t=e.getAttribute("overlays");e.updateAttribute("overlays",Qr(Qr({},t),{},{alarm:{type:"alarm",status:h.status,value:h.formattedLastStatusChangeValue,when:h.lastStatusChange}})),e.updateAttributes({selectedInstances:["".concat(h.instance,"@").concat(h.nodeId)],selectedNodes:[h.nodeId]})}var n=!!h&&l.current.on("chartLoaded",(function(e){var t=e.getAttribute("id");if(h.context===t){var s=e.getAttribute("overlays");e.updateAttribute("overlays",Qr(Qr({},s),{},{alarm:{type:"alarm",status:h.status,value:h.formattedLastStatusChangeValue,when:h.lastStatusChange}})),e.updateAttributes({selectedInstances:["".concat(h.instance,"@").concat(h.nodeId)],selectedNodes:[h.nodeId]}),n()}}));return(0,Br.unregister)(n)}}),[l.current,h]),(0,a.useEffect)((function(){if(l.current&&v&&v.context){var e=v.context,t=v.chartId,n=v.nodeId,s=l.current.getNode({id:e});s&&s.updateAttributes({selectedInstances:["".concat(t,"@").concat(n)],selectedNodes:[n]});var r=t&&n&&l.current.on("chartLoaded",(function(s){var a=s.getAttribute("id");e===a&&(s.updateAttributes({selectedInstances:["".concat(t,"@").concat(n)],selectedNodes:[n]}),r())}));return function(){return v&&(0,Br.unregister)(r)}}}),[l.current,v])};function Wr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Kr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Jr={default:{shouldHide:function(){return!1}},k8s:{shouldHide:function(e){return!e.context.includes("k8s")}}},Yr=[],Xr=function(e){return(0,a.memo)((function(t){var n=t.flavour,s=void 0===n?"overview":n,o=t.nodeIds,c=void 0===o?Yr:o,l=(0,I.th)(),h=(0,d.UL)(),u=(0,G.TA)({extraKey:s,defaultValue:c});u=c.length?c:u;var m=(0,Pe.fD)(),p=(0,Kt.hH)(h),f=(0,i.TH)().state,g=(0,Kt.Cd)(h),b=(0,xt.Mm)(u),y=(0,Wt.Z)(h,b,{spaceId:l}),v=(0,Un.d5)({nodeIds:u,flavour:s},l,h),_=v.contexts,w=v.metadata,T=v.loaded,x=v.dimensionsCount,S=function(){var e=(0,i.TH)().state,t=(void 0===e?{}:e)||{},n=t.alertId,s=void 0===n?null:n,o=t.after,c=t.before,l=(0,H.Z)(s),d=s||l,h=(0,k.O0)(),u=(0,r.Z)(h,2)[1],m=(0,k.E5)(d);return(0,k.yx)(m.id),(0,a.useEffect)((function(){m.fullyLoaded&&u(Ur(Ur({},m),{},{formattedLastStatusChangeValue:(0,Rr.m9)(m.lastStatusChangeValue,m.units),after:o,before:c}))}),[m.id,m.fullyLoaded]),[d,m.id?"chart_".concat((0,Ar.Z)(m.context)):null]}(),C=(0,r.Z)(S,2)[1],P=c?c.join():s,M=(0,I.Q6)(),q=(0,qe.Z)(),E=(0,r.Z)(q,2),D=E[0],L=E[1].width;Gr(h,u,{host:M?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(l,"/rooms/").concat(h),width:L});var N=(0,Kt.jg)(h),O=T?w:g,R=Jr[s]||Jr.default,A=(0,Ms.Np)(T?_:N,g,h,Kr(Kr({},R),{},{force:T,cacheKey:"".concat(s,"-").concat(x)})),F=(0,Kt.MS)(h,w),U=(0,H.Z)(y),B=A<1,Z=(0,G.I0)("chartName",{key:h,extraKey:P}),j=(0,r.Z)(Z,2),z=j[0],V=j[1];(0,a.useEffect)((function(){h&&V(C||(null===f||void 0===f?void 0:f.chartName)||z)}),[h,C]);var Q=Is(),W=Object.keys(O).length<1&&p||u.length&&!b.length,K=(0,G.H7)({extraKey:s});if(c=c.length?c:K,!W&&!1!==U&&y&&"No data for this period"!==y&&!Object.keys(O).length)throw y;return a.createElement(e,{nodeIds:c,loaded:!!h&&m&&Q,getChart:F,areChartsIdsEmpty:B,showNoNodesView:m&&!c.length,showNoChartsView:W,initializing:y&&(0,Or.V)(y),chartName:z,setChartName:V,chartsLoaded:p&&!!L,invalidationKey:h,flavour:s,chartIds:T?_:N,widthRef:D})}))},$r=(n(64211),n(41874),n(41817),n(41331)),ea=n(65351),ta=(n(40658),["","k","m","B","T","P","E"]),na=(0,a.memo)((function(e){var t=e.count,n=e.testId;return a.createElement(V.TextHuge,{strong:!0,color:"textDescription",alignSelf:"center","data-testid":n,overflow:"hidden"},isNaN(t)?"-":function(e){if(!e)return 0;var t=Math.log10(Math.abs(e))/3|0;if(!t)return e;var n=ta[t];return(e/Math.pow(10,3*t)).toFixed(1)+n}(t))})),sa=(n(26833),n(2707),n(18446)),ra=n.n(sa),aa=n(90509),oa={metrics:(0,Ae.css)(["tbody tr{&:nth-child(odd){background:",";}&:nth-child(even){background:",";}}thead tr{background:",";}"],(0,aa.getColor)("nodeBadgeBackground"),(0,aa.getColor)("panelBg"),(0,aa.getColor)("panelBg")),progressBar:(0,Ae.css)(["tr{background:",";}"],(0,aa.getColor)("panelBg"))},ia=(0,Ae.default)(V.NetdataTable).attrs({coloredSortedColumn:!1}).withConfig({displayName:"styled__StyledTable",componentId:"sc-1kpag36-0"})(["&&{width:100%;height:auto;align-self:start;th,td{padding:4px 8px;min-width:auto;height:32px;width:auto;}","}"],(function(e){var t=e.layout;return oa[t]||oa.metrics})),ca=(0,Ae.default)(V.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1kpag36-1"})(["float:right;cursor:pointer;"]),la=[{id:"value",desc:!1}],da=function(e){var t=e.columns,n=e.data,s=e.layout,r=void 0===s?"metrics":s,o=e.sortBy,i=void 0===o?la:o;return null!==n&&void 0!==n&&n.length?a.createElement(ia,{layout:r,data:n,dataColumns:t,sortBy:i,enableSorting:!0}):a.createElement(V.Flex,{width:"100%"},a.createElement(V.TextSmall,{color:"textLite",alignSelf:"center",margin:[0,"auto"]},"No data"))},ha=n(44109),ua={name:function(e){return function(e,t){var n=t.maxLength;return{id:"name",accessorKey:"name",header:e,cell:function(e){var t=e.getValue;return n?a.createElement(Ve.Z,{maxLength:n,text:t(),TextComponent:V.TextSmall}):a.createElement(V.TextSmall,null,t())}}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})},value:{id:"value",header:"#",accessorKey:"value",cell:function(e){var t=e.getValue;return a.createElement(V.TextSmall,{strong:!0},t())}},goToDashboard:{id:"goToDashboard",accessorKey:"value",header:"",cell:function(e){var t=e.cell,n=e.getValue,s=t.row.original.path,r=(0,i.s0)(),o=(0,a.useCallback)((function(){(0,Bt.L)("total-cust-dashboard","click-cust-dasbhoard","hm-page",n()),r("".concat(s,"/").concat(n()))}),[s,n()]);return a.createElement(ca,{name:"goToNode",width:"14px",height:"14px",color:"textDescription",onClick:o})}},progressBar:function(e){return{id:"value",accessorKey:"value",header:e.header,cell:function(e){var t=e.cell,n=e.getValue,s=t.row.original,r=s.name,o=s.total,i=s.color,c=o?n()/o:0,l=(0,ha.e)(c);return a.createElement(V.Flex,{column:!0,margin:[1,0,0,0]},r?a.createElement(V.Flex,{justifyContent:"between"},a.createElement(V.TextSmall,null,r),a.createElement(V.TextSmall,{strong:!0},n())):null,a.createElement(V.ProgressBar,{color:i,width:l}))}}}},ma=[ua.name("VM"),ua.value],pa=[ua.name("Containers"),ua.value],fa=[ua.name("Latest Updated",{maxLength:24}),ua.goToDashboard],ga=[ua.progressBar({header:"OS",dataEntry:"nodesByOS"})],ba=[ua.progressBar({header:"Agent Version",dataEntry:"nodesByAgentVersion"})],ya=(0,a.memo)((function(e){var t=e.data,n=e.schemaKey,r=e.testId,o=Object.values(t).reduce((function(e,t){return e+t}),0),i=Object.keys(t).map((function(e){return{name:e,value:t[e],total:o}})).sort((function(e,t){return t.value-e.value}));return a.createElement(V.Flex,{padding:[0,4],height:"100%","data-testid":"".concat(r,"-table-container"),overflow:"hidden"},a.createElement(da,{columns:s[n],data:i,layout:"progressBar"}))}),(function(e,t){return ra()(e,t)}));function va(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function _a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?va(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):va(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var wa=[{id:"name",desc:!1}],ka=function(e){var t=e.count,n=e.data,s=(0,I.uk)(),r=(0,d.vf)(),o=function(e){var t=e.data,n=void 0===t?[]:t,s=e.path;return null===n||void 0===n?void 0:n.map((function(e){return _a(_a({},e),{},{value:e.slug,path:s})}))}({data:n,path:"/spaces/".concat(s,"/rooms/").concat(r,"/dashboards")});return a.createElement(V.Flex,{column:!0,alignItems:"center","data-testid":"totalDashboards-table-container",margin:[0,4],gap:2,overflow:"hidden"},a.createElement(na,{count:t,testId:"total-dashboards-value"}),a.createElement(da,{columns:fa,data:o,sortBy:wa}))},Ta=(0,a.memo)(ka,(function(e,t){return ra()(e,t)})),xa=n(9446),Sa=(0,Ae.default)(V.TextSmall).withConfig({displayName:"pieChartLabels__StyledText",componentId:"sc-15uxiq-0"})(["display:flex;align-items:center;cursor:",";&:hover{opacity:",";}"],(function(e){return e.onClick?"pointer":"auto"}),(function(e){return e.onClick?"0.7":"1"})),Ca=(0,a.memo)((function(e){var t=e.title,n=e.value,s=e.color,r=e.onClick,o=void 0===r?null:r;return a.createElement(V.Flex,{alignItems:"center",justifyContent:"between",width:"100%",gap:4,flex:{grow:1,shrink:0}},a.createElement(V.Flex,{gap:1},a.createElement(V.Flex,{width:"4px",height:"16px",background:s}),a.createElement(Sa,{whiteSpace:"nowrap",onClick:o},t,o&&a.createElement(V.Icon,{color:"textLite",margin:[0,0,0,1],name:"nav_arrow_goto",height:"10px",width:"10px"}))),a.createElement(V.Text,{strong:!0},null!==n&&void 0!==n?n:"-"))})),Pa=function(e){var t=e.data;return a.createElement(V.Flex,{column:!0,alignItems:"start",justifyContent:"center",gap:5},t.map((function(e,t){var n=e.title,s=e.value,r=e.color,o=e.onClick;return a.createElement(Ca,{key:"".concat(n,"-").concat(s,"-").concat(t),title:n,value:s,color:r,onClick:o})})))};function Ma(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function qa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ma(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ma(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ia=function(e){var t=e.data,n=e.theme;return t.map((function(e){return qa(qa({},e),{},{color:(0,V.getColor)(e.color)({theme:n})})}))},Ea=function(e){var t=e.chartData,n=void 0===t?[]:t,s=e.lineWidth,r=void 0===s?15:s,o=e.animate,i=void 0===o||o,c=e.label,l=e.hasData,d=(0,a.useContext)(Ae.ThemeContext);return a.createElement(V.Flex,{gap:4,margin:[0,4],height:{min:"100px",max:"130px"},alignItems:"center"},a.createElement(Pa,{data:n}),a.createElement(V.Flex,{height:"100px",flex:{grow:1,shrink:1}},l?a.createElement(xa.PieChart,{label:function(){return c},labelStyle:{fontSize:"24px",fontWeight:400,fontFamily:"IBM Plex Sans",lineHeight:" 32px",fill:(0,V.getColor)("textDescription")({theme:d})},labelPosition:0,data:Ia({data:n,theme:d}),lineWidth:r,animate:i}):a.createElement(V.Icon,{color:"border",name:"pie_chart_skeleton",width:"100px",height:"100px",alignSelf:"center"})))},Da=function(e){return Object.keys(e).reduce((function(t,n){return[].concat((0,_.Z)(t),[{name:n,value:e[n]}])}),[]).sort((function(e,t){return t.value-e.value}))},La=function(e){var t=e.data,n=t.vm,s=t.docker,r=t.chartData,o=t.hasData,i=Da(n),c=Da(s);return a.createElement(V.Flex,{justifyContent:"around","data-testid":"nodesByMachine-tables-container",overflow:"hidden"},a.createElement(V.Flex,{flex:{grow:1,shrink:0},basis:"200px"},a.createElement(Ea,{chartData:r,hasData:o})),a.createElement(V.Flex,{gap:2,flex:{grow:1,shrink:0},basis:"50%",padding:[0,4,0,2]},a.createElement(da,{columns:ma,data:i}),a.createElement(da,{columns:pa,data:c})))},Na=(0,a.memo)(La,(function(e,t){return ra()(e,t)}));function Oa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Ra(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Oa(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Oa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Aa=(0,Ae.default)(V.Text).withConfig({displayName:"nodesByDataReplication__StyledValue",componentId:"sc-19v6tvl-0"})(["line-height:17px;"]),Fa=function(e){var t=e.parent,n=e.child,s=t+n,r=(0,ha.e)(t/s);return a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.Flex,{justifyContent:"between","data-testid":"nodesByDataReplication-parent-child"},a.createElement(ja,{name:"Parents",value:t,background:["blue","aquamarine"]}),a.createElement(ja,{name:"Children",value:n,background:["purple","lilac"]})),a.createElement(V.ProgressBar,{background:["purple","lilac"],color:["blue","aquamarine"],width:r}))},Ua={r_1:{label:"1",color:["blue","indigo"]},r_2:{label:"2",color:["green","limeGreen"]},"r_*":{label:">2",color:["yellow","seaBuckthorn"]}},Ba=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px","data-testid":"nodesByDataReplication-information-text",overflow:"hidden"},a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Replication factor 1:")," ","The node's data are only on the node itself. Lose the node, lose the data!"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Replication factor 2:")," ","The node's metrics are replicated to one parent. The parent can trigger alerts for the child."),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Replication factor ",">2",":")," ","Same as 2, but with the metrics replicated to more than one parent. Each parent in the hierarchy can trigger alerts for its children."),a.createElement(V.TextMicro,{color:"white",margin:[2,0]},"Aim to have most of your nodes with at least a factor of 2 and your critical ones with ",">2","."))},Za=function(e){var t=(0,a.useMemo)((function(){var t=Object.keys(Ua).reduce((function(t,n,s){var r,a=e[n]||0;return[].concat((0,_.Z)(t),[Ra(Ra({key:n},Ua[n]),{},{value:a,sumValue:((null===(r=t[s-1])||void 0===r?void 0:r.sumValue)||0)+a})])}),[]);return[t,t[t.length-1].sumValue]}),[e]),n=(0,r.Z)(t,2),s=n[0],o=n[1];return a.createElement(V.Flex,{column:!0,margin:[6,0,0]},a.createElement(V.Flex,{margin:[0,0,2],gap:1},a.createElement(V.TextSmall,null,"Replication factor"),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Ba,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(V.Flex,{justifyContent:"between",margin:[0,0,1],"data-testid":"nodesByDataReplication-replications"},s.map((function(e){return a.createElement(ja,{key:e.key,name:e.label,value:e.value,background:e.color})}))),a.createElement(V.ProgressBar,{background:"nodeBadgeBackground",value:s.map((function(e){return{width:(0,ha.e)(e.value/o),color:e.color}}))}))},ja=function(e){var t=e.name,n=e.value,s=void 0===n?"-":n,r=e.background,o=void 0===r?"text":r;return a.createElement(V.Flex,{alignItems:"center"},a.createElement(V.Flex,{width:"4px",height:"16px",background:o,round:3,margin:[0,1,0,0]}),a.createElement(V.TextSmall,{color:"textDescription",margin:[0,3,0,0]},t),a.createElement(Aa,{color:"textDescription",strong:!0},s))},za=function(e){var t=e.parentChild,n=e.replication;return a.createElement(V.Flex,{column:!0,margin:[4,4,1],"data-testid":"nodesByDataReplication-container"},a.createElement(Fa,t),a.createElement(Za,n))},Va={dataReplication:function(){return(0,Bt.L)("nodes-data-replication","click-link-stream-replication","hm-page")},dataRetention:function(){return(0,Bt.L)("nodes-data-retention","click-link-dbengine-retention","hm-page")}},Ha=function(){var e=(0,d.A3)(),t=(0,i.s0)(),n=(0,Rr.yi)(),s=(0,ea.Z)("manageWarRoom").handleOpenModal,r=(0,a.useCallback)((function(){return s("users")}),[]);return{claimedNodes:{props:{title:"Nodes",description:"Number of nodes claimed to Netdata in current room",basis:"calc(100%/12)",flex:{grow:"1",shrink:"0"},onClick:function(){return t("".concat(e,"/nodes"))},testId:"claimedNodes"},Component:na,selector:function(e){var t=e.nodes;return t?{count:t.offline+t.online+t.stale,updatedAt:t.updatedAt}:{count:"-"}}},nodesByStatus:{props:{title:"Nodes by status",description:"Breakdown of the nodes by their status in regards to Netdata",tooltip:a.createElement(V.Flex,{column:!0,width:{max:"200px"},gap:2},a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Live:")," ","Node is actual collecting and streaming metrics to Netdata"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Stale:")," ","Node is currently offline and not streaming metrics to Netdata. It can show historical data from a parent node"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Offline:")," ","Node is currently offline, not streaming metrics to Netdata and not available in any parent nodes"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Unseen:")," ","Nodes have never been connected to Netdata, they are claimed but no successful connection was established")),basis:"calc(100%/6)",flex:{grow:"2",shrink:"0"},testId:"nodesByStatus"},Component:Ea,selector:function(n){var s=n.nodes,r=function(e){var t;return null!==(t=null===s||void 0===s?void 0:s[e])&&void 0!==t?t:"-"},a=function(){return t("".concat(e,"/nodes"))};return{chartData:[{title:"Live",value:r("online"),color:"primary",onClick:a},{title:"Stale",value:r("stale"),color:["green","vista"],onClick:a},{title:"Offline",value:r("offline"),color:"placeholder",onClick:a},{title:"Unseen",value:r("unseen"),color:["yellow","seaBuckthorn"],onClick:a}],hasData:!!s&&!s.error,updatedAt:null===s||void 0===s?void 0:s.updatedAt}}},nodesByML:{props:{title:"Nodes by ML",description:"Breakdown of the nodes in regards to our ML features",basis:"calc(100%/6)",flex:{grow:"2",shrink:"0"},onClick:function(){return t("".concat(e,"/anomalies"))},testId:"nodesByML"},Component:Ea,selector:function(e){var t,n,s,r,a,o,i=e.nodes;return{chartData:[{title:"Enabled",value:null!==(t=null===i||void 0===i||null===(n=i.ml)||void 0===n?void 0:n.enabled)&&void 0!==t?t:"-",color:["blue","aquamarine"]},{title:"Disabled",value:null!==(s=null===i||void 0===i||null===(r=i.ml)||void 0===r?void 0:r.disabled)&&void 0!==s?s:"-",color:"warningLite"},{title:"Not Capable",value:null!==(a=null===i||void 0===i||null===(o=i.ml)||void 0===o?void 0:o.notCapable)&&void 0!==a?a:"-",color:"placeholder"}],hasData:!!i&&!i.error,updatedAt:null===i||void 0===i?void 0:i.updatedAt}}},nodesByMachine:{props:{title:"Nodes over type of machine/technology",description:"Breakdown of the machines/technology where Netdata is running on",basis:"550px",flex:{grow:"5",shrink:"0"},testId:"nodesByMachine"},Component:Na,selector:function(e){var t,n,s,r,a,o,i,c,l,d,h,u=e.nodes;return{data:{vm:null!==(t=null===u||void 0===u?void 0:u.vmTechnology)&&void 0!==t?t:{},docker:null!==(n=null===u||void 0===u?void 0:u.containerRuntime)&&void 0!==n?n:{},chartData:[{title:"Bare Metal",value:null!==(s=null===u||void 0===u||null===(r=u.type)||void 0===r?void 0:r.bareMetal)&&void 0!==s?s:"-",color:["blue","indigo"]},{title:"VM",value:null!==(a=null===u||void 0===u||null===(o=u.type)||void 0===o?void 0:o.virtualMachine)&&void 0!==a?a:"-",color:["blue","cyan"]},{title:"Container",value:null!==(i=null===u||void 0===u||null===(c=u.type)||void 0===c?void 0:c.container)&&void 0!==i?i:"-",color:["purple","lilac"]}].concat((0,_.Z)(null!==u&&void 0!==u&&null!==(l=u.type)&&void 0!==l&&l.unknown?[{title:"Unknown",value:null!==(d=null===u||void 0===u||null===(h=u.type)||void 0===h?void 0:h.unknown)&&void 0!==d?d:"-",color:"placeholder"}]:[])),hasData:!!u&&!u.error},updatedAt:null===u||void 0===u?void 0:u.updatedAt}}},nodesByDataReplication:{props:{title:"Nodes by data replication",description:a.createElement(a.Fragment,null,"Summary of your"," ",a.createElement(In.Z,{Component:V.TextMicro,href:"https://learn.netdata.cloud/docs/metrics-storage-management/enable-streaming",target:"_blank",onClick:Va.dataReplication},"streaming and replication")," ","status across your nodes"),basis:"calc(100%/6)",flex:{grow:"1",shrink:"0"},minWidth:"250px",testId:"nodesByDataReplication"},Component:za,selector:function(e){var t=e.nodes;return t&&!t.error?{parentChild:{parent:t.parent,child:t.child},replication:t.replicationFactor,updatedAt:t.updatedAt}:{parentChild:{},replication:{}}}},nodesByOS:{props:{title:"Nodes by O/S version",description:"Breakdown of the nodes in regards to the O/S version they are running",basis:"430px",flex:{grow:"5",shrink:"0"},schemaKey:"OSTableSchema",dataGa:"node-os-version",testId:"nodesByOS"},Component:ya,selector:function(e){var t=e.nodes;return t&&!t.error?{data:t.osVersion,updatedAt:t.updatedAt}:{data:{}}}},nodesByAgentVersion:{props:{title:"Nodes by Agent version",description:"Breakdown of the nodes in regards to the Agent version running on them",basis:"430px",flex:{grow:"5",shrink:"0"},schemaKey:"agentTableSchema",dataGa:"node-agent-version",testId:"nodesByAgentVersion"},Component:ya,selector:function(e){var t=e.nodes;return t&&!t.error?{data:t.agentVersion,updatedAt:t.updatedAt}:{data:{}}}},activeAlerts:{props:{title:"Active Alerts",description:"Breakdown of the active alerts by status across all live nodes",basis:"calc(100%/6)",flex:{grow:"0",shrink:"0"},testId:"activeAlerts"},Component:Ea,selector:function(e){var t=e.alarms;return t&&!t.error?{chartData:[{title:"Critical",value:t.critical,color:"errorText",onClick:function(){return n("critical")}},{title:"Warning",value:t.warning,color:"warningText",onClick:function(){return n("warning")}}],label:t.critical+t.warning,hasData:!!t&&!t.error&&t.critical+t.warning,updatedAt:t.updatedAt}:{chartData:[{title:"Critical",value:"-",color:"errorText",onClick:function(){return n("critical")}},{title:"Warning",value:"-",color:"warningText",onClick:function(){return n("warning")}}],hasData:!!t&&!t.error}}},usersByRole:{props:{title:"Users by role",description:"Breakdown of the users by their role",basis:"calc(100%/6)",flex:{grow:"0",shrink:"0"},onClick:function(){return r()},testId:"usersByRole"},Component:Ea,selector:function(e){var t=e.spaceroom;return t&&!t.error?{chartData:[{title:"admin",value:t.admin,color:["green","limeGreen"]},{title:"user",value:t.user,color:["purple","lilac"]}],label:t.admin+t.user,hasData:!!t&&!t.error,updatedAt:t.updatedAt}:{chartData:[{title:"admin",value:"-",color:["green","limeGreen"]},{title:"user",value:"-",color:["purple","lilac"]}],hasData:!!t&&!t.error}}},totalDashboards:{props:{title:"Total Dashboards",description:"Number of the currently available custom dashboards in room",basis:"calc(100%/6)",flex:{grow:"0",shrink:"0"},testId:"totalDashboards"},Component:Ta,selector:function(e){var t=e.dashboards;return t&&!t.error?{count:t.dashboards,data:t.lastUpdated,updatedAt:t.updatedAt}:{count:"-",data:[]}}}}},Qa=function(e){var t=e.title,n=e.description,s=e.tooltip;return a.createElement(V.Flex,{column:!0,margin:[4,4,3],height:{min:12}},a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.Text,{color:"text","data-testid":"metrics-header-title"},t),s&&a.createElement(me.Z,{isBasic:!0,plain:!0,content:s,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(V.TextMicro,{color:"textDescription","data-testid":"metrics-header-description"},n))},Ga=(0,a.memo)(Qa),Wa=n(43337),Ka=n(20709),Ja=function(e){var t=e.updatedAt,n=(0,a.useState)(),s=(0,r.Z)(n,2)[1],o=function(e){if(!e)return"";var t=new Date(e);return t.getTime()?(0,Ka.Z)(t,new Date):""}(t);return(0,Wa.Z)((function(){return s(Math.random())}),6e4),a.createElement(V.Flex,{justifyContent:"end",margin:[2,4]},a.createElement(V.TextFemto,{color:"textLite","data-testid":"metrics-footer-last-updated"},"Last updated: ",o||"-"))},Ya=["basis","title","flex","description","tooltip","minWidth","onClick","testId"];function Xa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function $a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xa(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var eo=function(e,t){var n=(0,I.th)(),s=(0,d.UL)(),r=(0,G.H7)();(0,w.Z)((function(){return{enabled:!!(n&&s&&r.length&&null!==e&&void 0!==e&&e.length),fetch:function(){return(0,g.mP)(n,s,e,r)},onReceive:function(e){var n=e.data;return t((function(e){var t=$a($a($a({},e),n),{},{charts:$a($a({},e.charts),n.charts)});return function(e,t){return e===t||!Object.keys(e).some((function(n){return!(0,$r.ZP)(e[n],t[n],{omit:["updatedAt","latency"]})}))}(t,e)?e:t}))},onFail:function(t){return e.reduce((function(e,n){var s=n.name;return $a($a({},e),{},(0,h.Z)({},s,{error:t}))}),{})},pollingOptions:{pollingInterval:588e3}}}),[n,s,r.length,e])},to=[{name:"charts",projections:"points"}],no=[{name:"charts",projections:"retention"}],so=[{name:"charts",projections:"metrics"}],ro=[{name:"nodes"},{name:"spaceroom"},{name:"alarms"},{name:"dashboards"}],ao=function(){var e=(0,a.useState)({}),t=(0,r.Z)(e,2),n=t[0],s=t[1];eo(to,s),eo(no,s),eo(so,s),eo(ro,s);var o=(0,Pe.zN)(),i=(0,Pe.fD)(),c=Ha();return i?i&&!o.length?a.createElement(Me.Z,null):a.createElement(a.Fragment,null,a.createElement(V.Flex,{alignItems:"center",background:"mainBackground","data-testid":"home-header",gap:2,justifyContent:"between",padding:[2,4],width:"100%"},a.createElement(On,null)),a.createElement(V.Flex,{flexWrap:!0,overflow:"auto",padding:[0,0,4,4],"data-testid":"roomHome-layout-container"},Object.keys(c).map((function(e){var t=c[e],s=t.props,r=s.basis,o=s.title,i=s.flex,l=s.description,d=s.tooltip,h=s.minWidth,u=void 0===h?"250px":h,m=s.onClick,p=void 0===m?null:m,f=s.testId,g=(0,z.Z)(s,Ya),b=t.Component,y=(0,t.selector)(n);return a.createElement(V.Flex,{key:e,column:!0,basis:r,flex:i,height:"280px",width:{min:u},margin:[4,4,0,0],background:"panelBg",justifyContent:"between",round:!0,"data-testid":"metrics-container-".concat(f),onClick:p,cursor:p?"pointer":"auto"},a.createElement(Ga,(0,j.Z)({title:o,description:l,tooltip:d},y)),a.createElement(b,(0,j.Z)({testId:e},g,y)),a.createElement(Ja,y))})))):a.createElement(B.Z,{title:"Loading room stats..."})},oo=n(92501),io=(n(77601),function(){var e=(0,Ee.e)(),t=function(){var e=(0,I.uk)(),t=(0,d.vf)();return"/spaces/".concat(e,"/rooms/").concat(t,"/overview")}(),n=(0,i.s0)();(0,a.useEffect)((function(){if(e)return(0,Br.unregister)(e.on("goToLink",(function(e,s){var r,a=t;return e.getParent().getAttribute("roomId")&&(a=e.getParent().getId(),a=/^\/spaces/.test(a)?a:t),n(a,s?{state:{chartName:s},replace:!0}:{state:{contextToGo:null===e||void 0===e||null===(r=e.getAttribute("contextScope"))||void 0===r?void 0:r[0]},replace:!0})})))}),[e,t])}),co=function(){return io(),null},lo=n(78710),ho=n(6308),uo=(0,o.Z)((function(){return Promise.all([n.e(514),n.e(663),n.e(654)]).then(n.bind(n,66654))}),"ManageSpaceRoute"),mo=(0,o.Z)((function(){return Promise.resolve().then(n.bind(n,98469))}),"JoinSpace"),po=(0,o.Z)((function(){return n.e(610).then(n.bind(n,6610))}),"NoSpaceAccess"),fo=(0,o.Z)((function(){return n.e(533).then(n.bind(n,35533))}),"AlertView"),go=(0,o.Z)((function(){return n.e(359).then(n.bind(n,57359))}),"Anomalies"),bo=(0,o.Z)((function(){return n.e(451).then(n.bind(n,25451))}),"AlertsSmartboard"),yo=(0,o.Z)((function(){return n.e(564).then(n.bind(n,43564))}),"DashboardsOverview"),vo=(0,o.Z)((function(){return n.e(43).then(n.bind(n,4193))}),"DashboardView"),_o=(0,o.Z)((function(){return Promise.all([n.e(514),n.e(18),n.e(324)]).then(n.bind(n,34324))}),"FunctionsView"),wo=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(663),n.e(129)]).then(n.bind(n,66129))})),ko=Z.Z.demoSlug,To=Z.Z.demoDefaultRoomViews,xo=Z.Z.defaultRoomView,So=Z.Z.integrationsView,Co=function(){var e=(0,c.ZP)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],o=ko===n?To[s]||To.default:lo.ZP&&n===lo.Xh&&s===lo.Fb?lo.vT:xo;return a.createElement(i.Fg,{replace:!0,to:"/spaces/".concat(n,"/rooms/").concat(s,"/").concat(o)})},Po=Nr(Xr(Ir)),Mo=Xr(Ir),qo=function(){var e=(0,i.s0)(),t=(0,c.ZP)(),n=(0,r.Z)(t,2),s=n[0],o=n[1],l=(0,ho.Z)(),h=l.isEmptySpace,m=l.loading,b=(0,I.th)(),P=(0,d.UL)();return function(e,t){var n=(0,f._8)((function(n){var s=n.snapshot,r=n.set;return(0,u.Z)(p().mark((function n(){return p().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,s.getPromise((0,d.n2)({id:t,key:"fullyLoaded"}));case 2:if(!n.sent){n.next=5;break}return n.abrupt("return");case 5:(0,g.fv)(e,t).then((function(t){var n=t.data;r((0,d.ZB)(),y(y({},n),{},{spaceId:e,fullyLoaded:!0,loaded:!0}))}));case 6:case"end":return n.stop()}}),n)})))}),[e,t]);(0,a.useEffect)((function(){e&&t&&n()}),[e,t])}(b,P),(0,v.Z)({spaceId:b,id:P,pollingInterval:63e3}),function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).polling,s=void 0===n||n,r=(0,f._8)((function(e){var n=e.set;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data,s=void 0===e?[]:e;n((0,S.e8)({id:t,key:"ids"}),s.map((function(e){return e.id}))),n((0,S.e8)({id:t,key:"loaded"}),!0),n((0,S.e8)({id:t,key:"updatedAt"}),(new Date).toISOString()),n((0,S.e8)({id:t,key:"error"}),null),s.forEach((function(e){n((0,k.fp)({id:e.id}),(function(t){return M(M({},t),{},{loaded:!0},e)}))}));var r=s.reduce((function(e,t){var n=t.id,s=t.nodeId;return e[s]=[].concat((0,_.Z)(e[s]||[]),[n]),e}),{});n(x.in,r)}}),[e,t]),a=(0,f._8)((function(e){var n=e.set;return function(e){n((0,S.e8)({id:t,key:"error"}),(0,C.Z)(e))}}));(0,w.Z)((function(){return{enabled:!!e&&!!t,polling:s,fetch:function(){return(0,T.sr)(e,t)},onFail:a,onReceive:r,force:!0}}),[e,t])}(b,P),(0,q.Z)(b,P),(0,a.useEffect)((function(){!lo.ZP&&h&&e("/spaces/".concat(s,"/rooms/").concat(o,"/").concat(So),{replace:!0})}),[lo.ZP,h]),!P||m?a.createElement(B.Z,{title:"Loading room..."}):a.createElement(a.Suspense,{fallback:a.createElement(B.Z,{title:"Loading..."})},a.createElement(i.Z5,null,a.createElement(i.AW,{path:"nodes/:nodeId",element:a.createElement(Po,null)}),a.createElement(i.AW,{path:"nodes",element:a.createElement(An,null)}),a.createElement(i.AW,{path:"home",element:a.createElement(ao,null)}),a.createElement(i.AW,{path:"overview",element:a.createElement(Mo,null)}),a.createElement(i.AW,{path:"alerts/:alertId",element:a.createElement(fo,null)}),a.createElement(i.AW,{path:"alerts",element:a.createElement(bo,null)}),a.createElement(i.AW,{path:"alarms/:alertId",element:a.createElement(fo,null)}),a.createElement(i.AW,{path:"alarms",element:a.createElement(bo,null)}),a.createElement(i.AW,{path:"dashboards/:dashboardSlug",element:a.createElement(vo,null)}),a.createElement(i.AW,{path:"dashboards",element:a.createElement(yo,null)}),a.createElement(i.AW,{path:"anomalies",element:a.createElement(go,null)}),a.createElement(i.AW,{path:"kubernetes",element:a.createElement(Mo,{flavour:"k8s"})}),a.createElement(i.AW,{path:"/functions",element:a.createElement(_o,{key:"fn",flavour:"fn"})}),a.createElement(i.AW,{path:"/events",element:a.createElement(_o,{key:"feed",flavour:"feed"})}),a.createElement(i.AW,{path:"/",element:a.createElement(Co,null)})))},Io=(0,oo.Pf)((function(){var e=(0,ho.c)().isIntegrationsPath;return a.createElement(Zt.Z,{permission:"room:Read"},(function(t){return t?a.createElement(a.Fragment,null,!e&&a.createElement(ye,null),a.createElement(a.Suspense,{fallback:a.createElement(B.Z,{title:"Loading your space..."})},a.createElement(i.Z5,null,a.createElement(i.AW,{path:"spaces/:spaceSlug/join-space",element:a.createElement(mo,null)}),a.createElement(i.AW,{path:"spaces/:spaceSlug/no-rooms",element:a.createElement(po,{reason:"noRooms"})}),a.createElement(i.AW,{path:"spaces/:spaceSlug/rooms/:roomSlug/".concat(So),element:a.createElement(wo,null)}),a.createElement(i.AW,{path:"spaces/:spaceSlug/rooms/:roomSlug/*",element:a.createElement(qo,null)})))):a.createElement(po,{reason:"noRoomPermission"})}))})),Eo=function(){return(0,c.vq)(),a.createElement(uo,null)},Do=(0,oo.Pf)((function(){var e=(0,I.th)();return(0,E.Z)(e),function(e){var t=(0,f._8)((function(t){var n=t.set;return function(t){var s=t.results;return n((0,O.J9)(e),s)}})),n=(0,A.gI)("user:ReadAll");(0,D.Z)((function(){return{key:"spaces.".concat(e,".members"),autorun:!!e&&n,fetch:function(){return(0,L.Q5)(e)},association:{getError:function(){return(0,R.Ci)({id:e,key:"error"})},getIds:function(){return(0,O.WA)({id:e,key:"ids"})},getLoaded:function(){return(0,O.WA)({id:e,key:"loaded"})},getUpdatedAt:function(){return(0,O.WA)({id:e,key:"updatedAt"})}},sort:function(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})},getResource:function(e){return(0,N.mX)({id:e})},getResourcesInitializer:function(){return N.Bb},onReceive:t,pollingOptions:{pollingInterval:315e3}}}),[e])}(e),function(e){var t=(0,f._8)((function(t){var n=t.set;return function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data.results;n((0,F.e$)({id:e}),t)}})),n=(0,f._8)((function(t){var n=t.set;return function(t){return n((0,F.e$)({id:e,key:"error"}),t)}})),s=(0,U.y3)(e,"loaded"),r=(0,A.gI)("alert:ReadAll");(0,w.Z)((function(){return{enabled:r&&!!e&&s,fetch:function(){return(0,T.Kp)(e)},onFail:n,onReceive:t,pollingOptions:{pollingInterval:15e4}}}),[e,!!s])}(e),(0,l.ZP)(),a.createElement(Zt.Z,{permission:"space:Read"},(function(t){return t?a.createElement(a.Fragment,null,a.createElement(i.Z5,null,a.createElement(i.AW,{path:"/*",element:a.createElement(co,null)})),a.createElement(a.Suspense,{fallback:a.createElement(B.Z,{title:"Loading your space..."})},a.createElement(i.Z5,null,a.createElement(i.AW,{path:"spaces/:spaceSlug/settings/*",element:a.createElement(Eo,null)}),a.createElement(i.AW,{path:"*",element:a.createElement(Io,null)})))):a.createElement(po,{key:e,reason:"noSpacePermission"})}))})),Lo=Do},50709:function(e,t,n){n.d(t,{Z:function(){return h}});var s=n(29439),r=n(67294),a=n(15557),o=n(12008),i=(n(74916),n(15306),n(26398)),c=n(91008),l=n(37518),d=n(12899),h=function(e){var t=e.alertId,n=(0,o.E5)(t),h=n.name,u=function(e){var t=(0,r.useState)(!0),n=(0,s.Z)(t,2),a=n[0],o=n[1],c="".concat("https://community.netdata.cloud/t","/").concat(null===e||void 0===e?void 0:e.replace(/[._]/g,"-"));return(0,r.useEffect)((function(){e&&i.Z.get(c).then((function(){return o(!1)})).catch((function(){return o(!0)}))}),[e]),[c,a]}(void 0===h?"unknown alert":h),m=(0,s.Z)(u,2),p=m[0],f=m[1],g=(0,l.UL)(),b=(0,d.R3)(),y=(0,s.Z)(b,2)[1],v=(0,r.useMemo)((function(){return{alignSelf:"start",onClick:function(){return y({roomId:g,alert:n})}}}),[p,f,y]);return r.createElement(c.Z,v,"Learn more about this alert",!f&&r.createElement(a.Icon,{name:"arrow_left",rotate:2,size:"small",margin:[0,0,-.75,1],color:"success"}))}},80854:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=["iconName","iconSize","children"];t.Z=function(e){var t=e.iconName,n=e.iconSize,c=e.children,l=(0,r.Z)(e,i);return a.createElement(o.Flex,(0,s.Z)({gap:2,alignItems:"center"},l),a.createElement(o.Icon,(0,s.Z)({name:t,color:"textLite"},n&&{height:n,width:n})),a.createElement(o.Text,{strong:!0},c))}},29876:function(e,t,n){n.d(t,{Z:function(){return m}});var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=n(12008),c=(n(92222),n(89405)),l=n(50358),d=n(39840),h=function(e){var t=e.label,n=e.testid,s=e.status,r=e.value,i=e.when,h=e.units,u=(0,c.rA)(),m=u.localeTimeString,p=u.localeDateString,f=(0,a.useMemo)((function(){var e=new Date(1e3*i);return e&&"".concat(p(e,{long:!1})," ").concat(m(e,{secs:!0}))}),[i,p,m]),g=(0,d.pK)(r,h);return a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(o.Flex,{width:"100px"},a.createElement(o.TextSmall,null,t)),a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(o.TextSmall,{color:"text","data-testid":"".concat(n,"-dateTime")},f),a.createElement(l.Z,{loaded:!0,status:s,valueWithUnit:g,"data-testid":"".concat(n,"-value")})))},u=["alertId"],m=function(e){var t=e.alertId,n=(0,r.Z)(e,u),c=(0,i.E5)(t),l=c.fullyLoaded,d=void 0!==l&&l,m=c.units,p=c.lastStatusChangeValue,f=c.lastStatusChange,g=c.status,b=c.lastUpdated,y=c.value;c.prevStatus,c.prevValue,c.prevDuration;return d?a.createElement(o.Flex,(0,s.Z)({gap:2,column:!0,"data-testid":"alertValues"},n),b&&a.createElement(h,{label:"Latest",status:g,testid:"alertValues-latest",value:y,when:b,units:m}),f&&a.createElement(h,{label:"Triggered",status:g,testid:"alertValues-triggered",value:p,when:f,units:m})):null}},92253:function(e,t,n){var s=n(29439),r=(n(92222),n(67294)),a=n(16978),o=n(15557),i=n(91128),c=n(78266),l=n(74059),d=n(37518),h=n(95248),u=n(9058),m=n(22648),p=function(e){return function(t){return"alert-modal::".concat(e.getAttribute("id"),"::").concat(t)}},f=function(){return Math.floor((new Date).getTime()/1e3)},g={width:"108px",height:"77px"};t.Z=function(e){var t=e.instance,n=e.context,b=e.isFormattedValueLoaded,y=e.nodeId,v=e.status,_=e.lastStatusChange,w=e.formattedLastStatusChangeValue,k=e.lastUpdated,T=(0,l.th)(),x=(0,d.UL)(),S=(0,m.m)(),C=(0,u.e)(),P=(0,i.Z)();(0,r.useEffect)((function(){return P(),P}),[]);var M=(0,h.TQ)(),q=(0,l.Q6)(),I=(0,r.useMemo)((function(){if(b){var e=C.makeChart({attributes:{nodeId:y,contextScope:[n],selectedInstances:t&&y?["".concat(t,"@").concat(y)]:[],id:t,roomId:x,enabledHeightResize:!1,enabledResetRange:!1,overlays:{proceeded:{type:"proceeded"},alarm:{type:"alarm",status:v,value:w,when:_}},host:q?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(T,"/rooms/").concat(x),nodesScope:[y],toolboxElements:[],sparkline:S,hasToolbox:!S},makeTrack:p});return C.getRoot().appendChild(e),e}}),[t,b]),E=function(e,t){return(0,r.useMemo)((function(){var n=e||f(),s=n-t,r=Math.round(t-s),a=Math.round(n+s);return[r,a>f()?f():a]}),[e,t])}(k,_),D=(0,s.Z)(E,2),L=D[0],N=D[1];return(0,r.useEffect)((function(){b&&M({after:1e3*L,before:1e3*N})}),[b,L,N]),(0,r.useEffect)((function(){return function(){return I&&I.destroy()}}),[I]),r.createElement(o.Flex,{flex:!1,width:"100%",height:75},b&&I?r.createElement(a.Z,{"data-chartid":t,chart:I,hasHeader:!S,hasFooter:!S}):r.createElement(c.Z,{iconProps:g,title:"Loading chart..."}))}},61294:function(e,t,n){n.d(t,{Z:function(){return S}});var s=n(87462),r=n(29439),a=n(67294),o=n(61152),i=n(15557),c=n(12008),l=n(16645),d=n(7693),h=n(20686),u=n(17208),m=n(78266),p=n(92253),f=n(39840),g=(0,a.memo)((function(e){var t=e.id,n=(0,c.E5)(t),s=n.fullyLoaded,r=n.nodeId,o=n.instance,i=n.lastStatusChangeValue,l=n.lastStatusChange,d=n.units,h=n.context,u=n.value,m=n.lastUpdated,g=n.status,b=(0,f.pK)(u,d),y=(0,f.pK)(i,d);return a.createElement(p.Z,{instance:o,context:h,formattedLastValue:b,formattedLastStatusChangeValue:y,lastStatusChange:l,lastUpdated:m,isFormattedValueLoaded:"clear"===g||s,nodeId:r,status:g,testid:"alertDetailsModal"})})),b=(n(92222),n(74059)),y=n(37518),v=n(89250),_=function(e){var t=e.alertId,n=e.testid,s=(0,b.uk)(),r=(0,y.vf)(),o="/spaces/".concat(s,"/rooms/").concat(r,"/alerts/").concat(t),c=(0,v.s0)(),l=(0,a.useCallback)((function(e){e.preventDefault(),c(o)}),[c,o]);return a.createElement(i.Button,{as:"a","data-testid":"".concat(n,"-view-alert-button"),"data-ga":"".concat(n,"::view-alert-button"),href:o,onClick:l,label:"View alert page",width:"224px"})},w=n(80854),k=n(29876),T=n(50709),x=function(e){var t=e.alertId,n=e.onClose,s=(0,c.E5)(t),r=s.name,o=void 0===r?"unknown alert":r,p=s.status,f=s.fullyLoaded,b=s.info;return(0,c.yx)(t),a.createElement(l.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},a.createElement(d.x,{onClose:n,title:o,"data-testid":"alertDetailsModal-alertName"},a.createElement(h.Z,{type:"".concat(p,"AlertsTable"),icon:"alarm_bell","data-testid":"alertDetailsModal-alertPill"},p)),a.createElement(l.TZ,{overflow:{vertical:"auto"},hasModalTitle:!1,gap:2,hasFooter:!0},!f&&a.createElement(m.Z,{title:"Loading alert..."}),f&&a.createElement(a.Fragment,null,a.createElement(w.Z,{iconName:"monitoring",iconSize:"20px"},"Time Values"),a.createElement(k.Z,{alertId:t}),a.createElement(w.Z,{iconName:"documentation"},"Alert Description"),a.createElement(i.Text,{"data-testid":"alertDetailsModal-info"},b),a.createElement(T.Z,{alertId:t})),f&&a.createElement(g,{id:t}),f&&a.createElement(u.Z,{id:t})),a.createElement(l.ZW,null,a.createElement(_,{alertId:t,testid:"alertDetailsModal"})))},S=function(){var e=(0,o.Z)("alertDetailsModal"),t=(0,r.Z)(e,5),n=t[0],i=t[2],c=t[3],l=t[4],d=(0,a.useCallback)((function(e){var t=e.alertId;i("",{alertId:t})}),[]),h=(0,a.useMemo)((function(){return a.createElement(x,(0,s.Z)({onClose:c},l))}),[l]);return[n,d,c,h]}},63860:function(e,t,n){var s=n(87462),r=n(45987),a=(n(74916),n(15306),n(67294)),o=n(60677),i=n(15557),c=n(39840),l=["rawTime","secs","long","nowrap"],d=o.default.div.withConfig({displayName:"timeCell__TimeBox",componentId:"sc-1k785pi-0"})(["display:flex;flex-direction:column;align-items:start;justify-content:center;"]);t.Z=function(e){var t=e.rawTime,n=e.secs,o=e.long,h=e.nowrap,u=void 0!==h&&h,m=(0,r.Z)(e,l),p=(0,c.e8)({rawTime:t,secs:n,long:o}),f=p.timeAgo,g=p.formattedDate,b=void 0===g?"":g;return a.createElement(d,m,a.createElement(i.TextSmall,null,f),a.createElement(i.TextMicro,(0,s.Z)({color:"textLite"},u&&{whiteSpace:"nowrap"}),b?null===b||void 0===b?void 0:b.replace(/ /g," - "):""))}},17208:function(e,t,n){n.d(t,{Z:function(){return Z}});var s=n(67294),r=n(15557),a=n(12008),o=n(57387),i=n(60677),c=i.default.div.withConfig({displayName:"styled__StyledAlertTypeIndicator",componentId:"sc-19nk935-0"})(["width:",";height:",";border-radius:",";background-color:",";"],(0,r.getSizeBy)(1),(0,r.getSizeBy)(1),(0,r.getSizeBy)(1),(function(e){var t=e.critical,n=e.theme;return(0,r.getColor)(t?"error":["yellow","sunglow"])({theme:n})})),l=i.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-19nk935-1"})(["padding:",";text-decoration:none;color:",";&:visited{color:",";}&:hover{text-decoration:none;}"],(function(e){var t=e.padding;return null!==t&&void 0!==t?t:"0"}),(0,r.getColor)("success"),(0,r.getColor)("success")),d=n(82351),h=function(e){var t=e.title,n=e.value,a=e.testId,i=e.status;return n?s.createElement(s.Fragment,null,s.createElement(r.Flex,{justifyContent:"between"},s.createElement(r.Flex,{gap:1,alignItems:"center"},s.createElement(c,{critical:"critical"===i}),s.createElement(r.H6,{color:"textDescription"},t)),s.createElement(r.Flex,{gap:1,alignItems:"center"},s.createElement(r.TextSmall,{color:"textDescription"},"More details about"," ",s.createElement(r.TextSmall,{strong:!0,color:"textDescription"},"$this")," ","command"),s.createElement(d.Z,{content:"The $this value comes from the DB Lookup or the Calculation above",isBasic:!0,plain:!0},s.createElement(r.Flex,{margin:[-.5,0,0]},s.createElement(r.Icon,{name:"informationPress",color:"textLite",width:"16px",height:"16px"}))))),s.createElement(o.ZP,{"data-testid":a},n)):null},u=(n(92222),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4942)),m=(n(66992),n(41539),n(33948),n(85827),n(25387),n(2490),n(72608),n(47941),n(4480)),p=n(37394);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=(0,m.xu)({key:"nodeChartBatchState",default:{}}),y=(0,m.CG)({key:"nodeChartsState",get:function(e){var t=e.id,n=e.chartId;return function(e){var s=(0,e.get)(b(t));return n?s[n]:s}},set:function(e){var t=e.id,n=e.chartId;return function(e,s){var r=e.set;r(b(t),"function"!==typeof s?function(e){return g(g({},e),{},(0,u.Z)({},n,s))}:function(e){return g(g({},e),{},(0,u.Z)({},n,s(e[n])))})}}}),v=((0,m.CG)({key:"nodeChartsState/initialize",set:function(e){return function(t,n){var s=t.set,r=n.values,a=n.merge;s(b(e),(function(e){return r.reduce((function(e,t){var n=t.dimensions,s=void 0===n?{}:n;return e[t.id]=g(g(g({},p.pk),a&&e[t.id]),{},{fullyLoaded:Object.keys(s).length>0},t),e}),g({},e))}))}}}),n(91058),n(936)),_=n(61973),w=n(33511),k=function(e){if("string"===typeof e&&(e=parseInt(e,10)),0===e)return"now";var t=new Date;return e<0?(0,v.Z)((0,_.Z)(t,e),t,{addSuffix:!0}):(0,v.Z)((0,w.Z)(t,e),t,{addSuffix:!0})},T=function(e){var t,n,r=(0,a.E5)(e),o=r.instance,i=r.lookupAfter,c=r.lookupBefore,l=r.lookupDimensions,d=r.lookupMethod,h=r.lookupOptions,u=r.nodeId,p=(t=u,n=o,(0,m.sJ)(y({id:t,chartId:n}))),f=(null!==p&&void 0!==p?p:{}).dimensions;return(0,s.useMemo)((function(){return i?function(e){var t=e.lookupOptions,n=e.lookupDimensions,s=e.lookupMethod,r=e.lookupAfter,a=e.lookupBefore,o=e.instance,i="of all values";if(n){var c=n.split(","),l=c.length>1?"of the sum of dimensions":"of all values of dimension";i="".concat(l," ").concat(c.join(", "))}var d=t?", with options ".concat(t):"";return"".concat(s," ").concat(i," of chart ").concat(o,", starting ").concat(k(r+a)," and up to ").concat(k(a)).concat(d)}({lookupOptions:h,lookupDimensions:l,lookupMethod:d,lookupAfter:i,lookupBefore:c,instance:o,chartDimensions:f}):""}),[i,f,o])},x=n(80854),S=function(e){var t=e.heading,n=e.value,a=e.testId;return n&&n.length?s.createElement(r.Flex,{column:!0,gap:3},t&&s.createElement(r.H6,{textTransform:"uppercase",color:"textDescription"},t),s.createElement(o.ZP,{"data-testid":a},n)):null},C=(0,s.memo)(S),P=n(25935),M=n(87462),q=function(e){var t=e.iconName,n=e.category,a=e.iconSize,o=void 0===a?"16px":a,i=e.value,c=e.testid;return i?s.createElement(r.Flex,{alignItems:"center",gap:1},s.createElement(r.Flex,{alignItems:"center",gap:1,basis:"100px"},s.createElement(r.Icon,(0,M.Z)({name:t,color:"textLite"},o&&{height:o,width:o})),s.createElement(r.TextSmall,{whiteSpace:"nowrap",color:"textDescription"},n,":")),s.createElement(r.TextSmall,{strong:!0,"data-testid":c},i)):null},I=function(e){var t=e.id,n=e.testid,o=(0,a.E5)(t),i=o.calculation,l=o.warning,d=o.critical,u=o.updateEvery,m=T(t),p=(0,s.useMemo)((function(){return(0,P.ZP)(i)}),[i]);return s.createElement(r.Flex,{column:!0,gap:4},s.createElement(x.Z,{iconName:"code"},"Configuration"),s.createElement(C,{heading:"DB lookup",value:m,testId:"".concat(n,"-lookup")}),s.createElement(C,{heading:"Calculation",value:p,testId:"".concat(n,"-calculation")}),s.createElement(r.H6,{textTransform:"uppercase",color:"textDescription"},"Severity Conditions"),s.createElement(r.Flex,{column:!0,gap:2},s.createElement(h,{title:"Warning when",value:l,testId:"".concat(n,"-warningWhen"),status:"warning"},s.createElement(c,{critical:!1})),s.createElement(h,{title:"Critical when",value:d,testId:"".concat(n,"-criticalWhen"),status:"critical"},s.createElement(c,{critical:!0}))),s.createElement(r.H6,{textTransform:"uppercase",color:"textDescription"},"Check"),s.createElement(q,{iconName:"clock_hollow",category:"Check every",value:"".concat(u," seconds"),testid:"".concat(n,"-checkEvery")}))},E=(0,s.memo)(I),D=n(97945),L=n(80239),N=n(45987),O=n(20686),R=n(63860),A=n(50358),F=["isHighlighted","lastStatusChangeValue","lastStatusChange","units","status","nodeName"],U=function(e){var t=e.isHighlighted,n=e.lastStatusChangeValue,a=e.lastStatusChange,o=e.units,i=e.status,c=e.nodeName,l=(0,N.Z)(e,F);return s.createElement(r.Flex,(0,M.Z)({background:t&&"modalTabsBackground",border:{side:"all",color:"borderSecondary"},color:"textDescription",justifyContent:"between",padding:[4],round:!0},l),s.createElement(r.Flex,{column:!0,justifyContent:"between",gap:2},c&&s.createElement(r.Text,{strong:!0},c),s.createElement(R.Z,{rawTime:a,secs:!0,"data-testid":"nodeItem-lastStatusChange"})),s.createElement(r.Flex,{height:5,gap:2,alignItems:"center",alignSelf:"start"},s.createElement(d.Z,{content:"Triggered value",align:"bottom"},s.createElement(r.Box,null,s.createElement(A.Z,{loaded:!0,status:i,units:o,value:n,"data-testid":"nodeItem-alertValue"}))),s.createElement(O.Z,{border:void 0,type:i,icon:"alarm_bell",textSize:"small","data-testid":"alertView-alertPill-value"},i)))},B=function(e){var t=e.children;return s.createElement(r.Flex,{gap:2,column:!0},t)},Z=function(e){var t=e.id,n=e.testid,o=void 0===n?"alertDetailsModal":n,i=(0,a.E5)(t),c=i.class,d=i.instanceName,h=i.component,u=i.family,m=i.nodeId,p=i.type,f=i.lastStatusChangeValue,g=i.lastStatusChange,b=i.units,y=i.status,v=i.notificationType,_=(0,D.bV)(m,"name");return s.createElement(r.Flex,{column:!0,gap:4},s.createElement(x.Z,{iconName:"information",margin:[0,0,0,-.5]},"Alert Info"),s.createElement(B,null,s.createElement(q,{iconName:"nodes_hollow",category:"Node",value:_,iconSize:"16px",testid:"".concat(o,"-hostname")}),s.createElement(q,{iconName:"charts_view",category:"Instance",value:d,testid:"".concat(o,"-chartId")}),s.createElement(q,{iconName:"data_retention",category:"Type",value:p,testid:"".concat(o,"-type")}),s.createElement(q,{iconName:"last_week",category:"Hostname"}),s.createElement(q,{iconName:"metrics",category:"Component",value:h,testid:"".concat(o,"-component")}),s.createElement(q,{iconName:"applications_hollow",category:"Family",value:u,testid:"".concat(o,"-family")}),s.createElement(q,{iconName:"networkingStack",category:"Class",value:c,testid:"".concat(o,"-class")}),s.createElement(q,{iconName:"incident_manager",category:"Event ID",testid:"".concat(o,"-eventId")})),s.createElement(E,{id:t,testid:o}),s.createElement(x.Z,{iconName:"nodes_hollow",iconSize:"20px"},"Instance Values - Node Instances"),s.createElement(r.Flex,{column:!0,gap:2},"agent"!==v&&s.createElement(r.Text,{color:"textDescription"},"A node may be claimed through multiple instances on the cloud (streaming through parent) and Netdata aggregates the alerts from all the instances and displays a single Active alert based on the highest severity, latest change."),s.createElement(U,{lastStatusChangeValue:f,lastStatusChange:g,units:b,status:y,nodeName:_,isHighlighted:!0})),s.createElement(x.Z,{iconName:"gear",iconSize:"20px"},"Edit Alert"),s.createElement(r.Text,{"data-testid":"".concat(o,"-edit-info")},"If you wish to edit and configure this alert, please:"),s.createElement(l,{href:L.UV,target:"_blank",padding:"0 4px 0 0","data-testid":"".concat(o,"-editAlertConfig-link"),"data-ga":"alert-modal::click-edit::alerts-view"},"Visit the documentation",s.createElement(r.Icon,{name:"arrow_left",rotate:2,size:"small",margin:[0,0,-.75,1],color:"success"})))}},50358:function(e,t,n){var s=n(87462),r=n(45987),a=(n(92222),n(67294)),o=n(15557),i=n(45771),c=["loaded","status","units","value","valueWithUnit"],l={critical:{background:"nodeBadgeBackground",border:{side:"all",color:"error"},color:"errorLite"},warning:{background:"nodeBadgeBackground",border:{side:"all",color:"warning"},color:"warningText"},cleared:{background:"nodeBadgeBackground",border:{side:"all",color:"success"},color:"successLite"},default:{background:"nodeBadgeBackground",border:{side:"all",color:"nodeBadgeColor"},color:"nodeBadgeColor"}};t.Z=function(e){var t=e.loaded,n=e.status,d=e.units,h=e.value,u=e.valueWithUnit,m=(0,r.Z)(e,c),p=l[n]||l.default,f=p.background,g=p.border,b=p.color,y=(0,a.useMemo)((function(){if(u)return u;if(void 0===h)return"-";var e=(0,i.J)(h);return"".concat(e," ").concat(d||"-")}),[h,u,d]);return a.createElement(o.Flex,(0,s.Z)({background:f,border:g,padding:[.5,2],round:9,width:{min:10},justifyContent:"center"},m),a.createElement(o.TextSmall,{color:b,strong:!0,whiteSpace:"nowrap",truncate:!0},t?y:"-"))}},597:function(e,t,n){n.d(t,{K:function(){return p}});n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942),r=n(29439),a=(n(26699),n(32023),n(92222),n(41539),n(64211),n(2490),n(41874),n(85827),n(25387),n(72608),n(47941),n(21249),n(57640),n(9924),n(57327),n(88449),n(59849),n(4480)),o=n(95248),i=n(37518),c=n(12008);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=function(e){return function(t,n){return!Array.isArray(n)||!n.length||n.includes(t[e])}},u={alertStatuses:h("status"),alertClasses:h("class"),alertRoles:h("recipient"),alertTypeComponents:function(e,t){return!Array.isArray(t)||!t.length||t.includes("".concat(e.type,"|").concat(e.component))},selectedNodeIds:h("nodeId")},m=(0,a.CG)({key:"alertsFiltered",get:function(e){var t=e.extraKey,n=e.roomId,s=e.omit,a=void 0===s?[]:s,i=e.keepAll;return function(e){var s,l=e.get,h=l((0,o.dz)({key:n,extraKey:t})),m=Object.keys(h).reduce((function(e,t){return a.includes(t)||e.push([t,h[t]]),e}),[]),p=l((0,c.E_)(n));if(!a.includes("selectedNodeIds")&&(null===(s=h.selectedNodeIds)||void 0===s||!s.length)){var f=l((0,o.dz)({key:n,param:"selectedNodeIds"}));null!==f&&void 0!==f&&f.length&&m.push(["selectedNodeIds",f])}if(!m.length)return p;var g=function(e){return function(t){return!e.some((function(e){var n=(0,r.Z)(e,2),s=n[0],a=n[1];return!!u[s]&&!u[s](t,a)}))}}(m);return i?p.map((function(e){return g(e)?e:d(d({},e),{},{hidden:!0})})):p.filter(g)}}}),p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.extraKey,n=e.omit,s=void 0===n?[]:n,r=e.keepAll,o=void 0!==r&&r,c=(0,i.UL)();return(0,a.sJ)(m({extraKey:t,roomId:c,omit:s,keepAll:o}))}},25517:function(e,t,n){n.d(t,{ZP:function(){return b},$B:function(){return p},bG:function(){return g}});var s=n(15861),r=n(29439),a=n(93433),o=n(64687),i=n.n(o),c=(n(91058),n(85827),n(41539),n(25387),n(2490),n(72608),n(15581),n(34514),n(54747),n(47941),n(92222),n(2707),n(67294)),l=n(95248),d=n(2077),h=function(e){var t=e.after,n=e.before,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{offset:6e4,limit:Date.now()},r=s.offset,a=function(e,t){var n=t.offset,s=t.limit,r=n/2;return e+r<=s?r:s<e?0:s-e}(n,{offset:r,limit:s.limit});return[t-(r-a),n+a]},u=function(e,t){return e||t?h({after:parseInt(e),before:parseInt(t)},function(e){var t=Date.now();return{limit:t,offset:t-e<6e4?3e4:15e3}}(t)):m},m=[null,null],p=function(){var e=(0,l.by)(),t=e.after,n=e.before,s=e.highlight;if(!s.after||!s.before)return m;if(t<0){var r=Date.now();if(s.before<r+t)return m;if(s.after>r)return m}else{if(s.before<t)return m;if(s.after>n)return m}return[s.after,s.before]},f=function(e,t){if(e<0){var n=Date.now();e=1e3*Math.floor(n/1e3+e),t=1e3*Math.floor(n/1e3)}return{after:e,before:t}},g=function(e,t,n){var o=(0,c.useState)(),h=(0,r.Z)(o,2),m=h[0],g=h[1],b=(0,c.useState)(!1),y=(0,r.Z)(b,2),v=y[0],_=y[1],w=function(){var e=p();return(0,c.useMemo)((function(){return u.apply(void 0,(0,a.Z)(e))}),(0,a.Z)(e))}(),k=(0,r.Z)(w,2),T=k[0],x=k[1],S=(0,l.by)(),C=S.after,P=S.before,M=(0,d.VG)({nodeIds:n,flavour:"rhs"},e,t),q=(0,r.Z)(M,1)[0],I=function(){var e=(0,s.Z)(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=f(C,P),_(!0),e.prev=2,e.next=5,q({flavour:"rhs",highlightAfter:T||t.after,highlightBefore:x||t.before,baselineAfter:T?t.after:null,baselineBefore:x?t.before:null,method:"anomaly-rate",aggregation:"avg",group:"average",nodeIds:n,options:["raw","null2zero"],groupBy:["context"]});case 5:_(!1),e.next=14;break;case 8:if(e.prev=8,e.t0=e.catch(2),!e.t0.isCancel){e.next=12;break}return e.abrupt("return");case 12:g(e.t0),_(!1);case 14:case"end":return e.stop()}}),e,null,[[2,8]])})));return function(){return e.apply(this,arguments)}}();return[I,v,m]},b=function(e,t,n){var s=function(){var e=(0,c.useState)(0),t=(0,r.Z)(e,2),n=t[0],s=t[1];return[n,(0,c.useCallback)((function(){return s((function(e){return e+1}))}),[])]}(),a=(0,r.Z)(s,2),o=a[0],i=a[1],h=(0,c.useState)(),u=(0,r.Z)(h,2),m=u[0],f=u[1],g=p(),b=(0,r.Z)(g,2),y=b[0],v=b[1],_=(0,l.by)(),w=_.after,k=_.before,T=(0,d.d5)({nodeIds:n,flavour:"anomaly"},e,t),x=T.contexts,S=T.metadata,C=T.getWeights,P=T.loading;return(0,c.useEffect)((function(){if(y&&v&&v&&y)try{C({highlightAfter:y,highlightBefore:v,baselineAfter:w,baselineBefore:k,method:"anomaly_rate",aggregation:"avg",group:"average",nodeIds:n,options:["null2zero","anomaly-bit","raw"]})}catch(e){if(e.isCancel)return;f(e)}}),[n.length,v,y,o]),[(0,c.useMemo)((function(){var e=x.reduce((function(e,t){var n=S[t].dimensions;return Object.keys(n).forEach((function(n){return e["".concat(t,"::").concat(n)]=S[t].dimensions[n]})),e}),{});return Object.keys(e).sort((function(t,n){return e[t].score!==e[n].score?e[t].score>e[n].score?-1:1:n.localeCompare(t)}))}),[x]),x,S,P,m,i]}},44109:function(e,t,n){n.d(t,{e:function(){return s}});n(54678);var s=function(e){return function(e){return new Intl.NumberFormat("en-US",{style:"percent",maximumFractionDigits:e})}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:2).format(e)};t.Z=function(e){return e&&"0"!==e?"".concat(parseFloat(e).toFixed(2),"%"):"-"}},12899:function(e,t,n){n.d(t,{R3:function(){return h},Nu:function(){return u},UD:function(){return d}});var s=n(4480),r=n(26398),a=n(74059),o=n(37518),i=(0,s.cn)({key:"assistantAlert",default:null}),c=(0,s.cn)({key:"assistantAlertsAtom",default:[]}),l=(0,s.CG)({key:"assistantSelector",get:function(e){var t=e.space,n=e.room,s=e.alarm,a=e.node,o=e.chart;return function(){return function(e){var t=e.space,n=e.room,s=e.alarm,a=e.node,o=e.chart;return r.Z.post("/api/v1/troubleshoot",{space:t,room:n,alarm:s,node:a,chart:o})}({space:t,room:n,alarm:s,node:a||"dummy-node-id",chart:o||"dummy-chart-id"})}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),d=function(e){var t,n=e.alarm,r=e.node,i=e.chart,c=(0,a.th)(),d=(0,o.UL)(),h=(0,s.$P)(l({space:c,room:d,alarm:n,node:r,chart:i}));return{loaded:"loading"!==h.state,value:null===(t=h.contents)||void 0===t?void 0:t.data,hasError:"hasError"===h.state}},h=function(){return(0,s.FV)(i)},u=function(){return(0,s.FV)(c)}},37394:function(e,t,n){n.d(t,{ak:function(){return i},pk:function(){return c}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var o={loaded:!1,fullyLoaded:!1,loading:!1,id:"",name:"",chartType:"",context:"",family:"",firstEntry:0,lastEntry:0,module:"",plugin:"",priority:0,updateEvery:0,visible:!1,filteredOut:!1,hidden:!1},i=a(a({},o),{},{domain:"room"}),c=a(a({},o),{},{domain:"node"})},41481:function(e,t,n){n.d(t,{KR:function(){return v},T:function(){return y},J1:function(){return g},Np:function(){return _}});var s=n(4942),r=n(29439),a=(n(73210),n(57327),n(41539),n(88449),n(2490),n(59849),n(74916),n(23123),n(85827),n(25387),n(72608),n(64211),n(41874),n(47941),n(26699),n(32023),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),o=n(4480),i=n(89250),c=n(89479),l=n(97945),d=n(37518),h=n(95248),u=(0,o.xu)({key:"chartsFilterValue",default:{filteredChartsIds:[],filteredChartsCount:0,chartsCount:0}});function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=function(){var e=(0,d.UL)(),t=(0,l.pG)();return(0,a.useMemo)((function(){return{roomId:e,nodeId:t}}),[t,e])},g=function(){var e=f();return(0,o.sJ)(u(e))},b=function(){return[(0,d.UL)(),(0,i.UO)().nodeID||"overview"]},y=function(){var e=b(),t=(0,r.Z)(e,2),n=t[0],s=t[1];return(0,h.by)("tocSearch",{key:n,extraKey:s,defaultValue:""})},v=function(){var e=b(),t=(0,r.Z)(e,2),n=t[0],s=t[1];return(0,h.I0)("tocSearch",{key:n,extraKey:s,defaultValue:""})},_=function(e,t,n){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=s.shouldHide,l=void 0===i?function(){return!1}:i,d=s.force,m=void 0!==d&&d,g=s.cacheKey,b=(0,h.by)("after"),v=(0,h.by)("before"),_=y().trim().toLowerCase(),w=(0,c.z3)(n),k=(0,a.useMemo)((function(){var n=0,s=0,r=Date.now()/1e3,a=_.split(/[\s,]+/).filter((function(e){return!!e}));return[e.reduce((function(e,t){if(!e[t])return e;var o=e[t],i=o.firstEntry,c=o.lastEntry,d=o.live,h=!m&&e[t].visible||(b<0?d||r+b<c:!(b>1e3*c||v<1e3*i)),u=!Object.keys(e[t]).some((function(n){var s=e[t][n];return null===a||void 0===a||!a.length||a.some((function(e){return"string"===typeof s&&s.includes(e)}))})),f=l(e[t]);return e[t]=p(p({},e[t]),{},{filteredOut:u,visible:h,hidden:f}),u||!h||f||(n+=1),f||(s+=1),e}),p({},t)),s,n]}),[_,e,b,v,m,g]),T=(0,r.Z)(k,3),x=T[0],S=T[1],C=T[2],P=function(){var e=f();return(0,o.Zl)(u(e))}();return(0,a.useEffect)((function(){w(x),P({filteredChartsCount:C,chartsCount:S})}),[x,S,C,n]),C}},5441:function(e,t,n){n.d(t,{E:function(){return m}});var s=n(29439),r=n(67294),a=n(15557),o=n(82351),i=n(95248),c=n(97945),l=n(37518),d=n(74059),h=n(25517),u=n(70459),m=function(){var e=(0,c.pG)(),t=(0,i.TA)();return(0,r.useMemo)((function(){return e?[e]:t}),[e,t])};t.Z=function(e){return function(t){var n=(0,d.th)(),i=(0,l.UL)(),c=m(),p=(0,u.F)().pause,f=(0,h.bG)(n,i,c),g=(0,s.Z)(f,2),b=g[0],y=g[1];return r.createElement(a.Flex,{alignItems:"center",justifyContent:"between",width:"100%"},r.createElement(o.Z,{content:"Overlay the maximum chart anomaly rate on each menu section.",align:"bottom",activateOn:"hover",isBasic:!0},r.createElement(a.Button,{tiny:!0,label:y?null:"AR%",isLoading:y,flavour:"hollow",onClick:function(){p(),b()},padding:[1,2],textTransform:"uppercase","data-track":"menu-anomaly-rates::click-ar-button"})),r.createElement(a.Flex,{column:!0},r.createElement(e,t)))}}},28989:function(e,t,n){n.d(t,{An:function(){return h},SF:function(){return d},xz:function(){return m},zE:function(){return u}});var s=n(29439),r=n(67294),a=n(44682),o=n(37682),i=(0,a.kr)(""),c=(0,a.kr)(""),l=(0,a.kr)(""),d=function(e){var t=e.menuGroupId,n=void 0===t?"":t,a=e.subMenuId,o=void 0===a?"":a,d=e.children,h=(0,r.useState)(n),u=(0,s.Z)(h,2),m=u[0],p=u[1],f=(0,r.useState)(o),g=(0,s.Z)(f,2),b=g[0],y=g[1],v=(0,r.useMemo)((function(){return{setMenuGroupId:p,setSubMenuId:y}}),[]);return r.createElement(i.Provider,{value:v},r.createElement(c.Provider,{value:m},r.createElement(l.Provider,{value:b},d)))},h=function(){return(0,o.Z)(i)},u=function(e){return t=function(t){return e===t},(0,o.Z)(c,t);var t},m=function(e){return(0,o.Z)(l,e)}},11835:function(e,t,n){n.d(t,{f:function(){return r}});var s=n(71929),r=(0,n(85993).Lj)(s.Z,(function(e){return{children:e.info}}))},56102:function(e,t,n){n.d(t,{Y:function(){return l}});var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=n(85993),c=["name"],l=(0,i.Lj)((function(e){var t=e.name,n=(0,r.Z)(e,c);return"string"===typeof t?a.createElement(o.H3,(0,s.Z)({color:"sectionTitle"},n),t):t||null}),(function(e){return{icon:e.icon,name:e.name}}))},69743:function(e,t,n){n.d(t,{d:function(){return c}});var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=["id"],c=(0,a.forwardRef)((function(e,t){var n=e.id,c=(0,r.Z)(e,i);return a.createElement(o.Flex,(0,s.Z)({column:!0,"data-menuid":n,ref:t},c))}))},12664:function(e,t,n){n.d(t,{o:function(){return l}});var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=n(62525),c=["name"],l=(0,i.Ji)((function(e){var t=e.name,n=(0,r.Z)(e,c);return"string"===typeof t?a.createElement(o.Text,(0,s.Z)({strong:!0,color:"sectionTitle"},n),t):t||null}),(function(e){return{name:e.name}}))},14048:function(e,t,n){n.d(t,{D:function(){return d}});var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=n(62525),c=["id"],l=function(e){return e.link},d=(0,a.forwardRef)((function(e,t){var n=e.id,d=(0,r.Z)(e,c),h=(0,i.Yo)(n,l);return a.createElement(o.Flex,(0,s.Z)({column:!0,gap:2,id:h,"data-submenuid":n,ref:t},d))}))},71824:function(e,t,n){n.d(t,{At:function(){return f},MS:function(){return T},PZ:function(){return _},Q8:function(){return w},mQ:function(){return y},nI:function(){return b},uK:function(){return v},vv:function(){return m},wJ:function(){return k}});var s=n(87462),r=n(45987),a=(n(21249),n(57640),n(9924),n(67294)),o=n(6557),i=n.n(o),c=n(44682),l=n(37682),d=["id"],h=a.createContext({}),u=(0,c.kr)({}),m=(0,c.kr)({}),p=(0,c.kr)([]),f=function(e){var t=e.container,n=e.menuChartsAttributeById,s=e.getChart,r=e.allCharts,o=e.children;return a.createElement(h.Provider,{value:t},a.createElement(u.Provider,{value:s},a.createElement(m.Provider,{value:n},a.createElement(p.Provider,{value:r},o))))},g={},b=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return(0,l.Z)(m,(function(n){return t(n[e]||g)}))},y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return(0,l.Z)(m,(function(n){return e.map((function(e){return t(n[e]||g,e)}))}))},v=function(){return a.useContext(h)},_=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i();return(0,l.Z)(p,e)},w=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:i())(T()(e))},k=function(e){return function(t){var n=t.id,o=(0,r.Z)(t,d),i=b(n),c=i.chartId,l=w(c);return a.createElement(e,(0,s.Z)({id:n,chart:l,menuChartAttributes:i},o))}},T=function(){return(0,l.Z)(u)}},7592:function(e,t,n){var s=n(88577),r="The amount of traffic transferred by the network interface.",a='The number of packets transferred by the network interface. Received <a href="https://en.wikipedia.org/wiki/Multicast" target="_blank">multicast</a> counter is commonly calculated at the device level (unlike <b>received</b>) and therefore may include packets which did not reach the host.',o="<p>The number of errors encountered by the network interface.</p><p><b>Inbound</b> - bad packets received on this interface. It includes dropped packets due to invalid length, CRC, frame alignment, and other errors. <b>Outbound</b> - transmit problems. It includes frames transmission errors due to loss of carrier, FIFO underrun/underflow, heartbeat, late collisions, and other problems.</p>",i="<p>The number of FIFO errors encountered by the network interface.</p><p><b>Inbound</b> - packets dropped because they did not fit into buffers provided by the host, e.g. packets larger than MTU or next buffer in the ring was not available for a scatter transfer. <b>Outbound</b> - frame transmission errors due to device FIFO underrun/underflow. This condition occurs when the device begins transmission of a frame but is unable to deliver the entire frame to the transmitter in time for transmission.</p>",c='<p>The number of packets that have been dropped at the network interface level.</p><p><b>Inbound</b> - packets received but not processed, e.g. due to <a href="#menu_system_submenu_softnet_stat">softnet backlog</a> overflow, bad/unintended VLAN tags, unknown or unregistered protocols, IPv6 frames when the server is not configured for IPv6. <b>Outbound</b> - packets dropped on their way to transmission, e.g. due to lack of resources.</p>',l="The number of correctly transferred compressed packets by the network interface. These counters are only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP).",d='<p>The number of errors encountered by the network interface.</p><p><b>Frames</b> - aggregated counter for dropped packets due to invalid length, FIFO overflow, CRC, and frame alignment errors. <b>Collisions</b> - <a href="https://en.wikipedia.org/wiki/Collision_(telecommunications)" target="blank">collisions</a> during packet transmissions. <b>Carrier</b> - aggregated counter for frame transmission errors due to excessive collisions, loss of carrier, device FIFO underrun/underflow, Heartbeat/SQE Test errors, and late collisions.</p>',h='<p>The interface\'s latest or current <a href="https://en.wikipedia.org/wiki/Duplex_(telecommunications)" target="_blank">duplex</a> that the network adapter <a href="https://en.wikipedia.org/wiki/Autonegotiation" target="_blank">negotiated</a> with the device it is connected to.</p><p><b>Unknown</b> - the duplex mode can not be determined. <b>Half duplex</b> - the communication is one direction at a time. <b>Full duplex</b> - the interface is able to send and receive data simultaneously.</p>',u='<p>The current <a href="https://datatracker.ietf.org/doc/html/rfc2863" target="_blank">operational state</a> of the interface.</p><p><b>Unknown</b> - the state can not be determined. <b>NotPresent</b> - the interface has missing (typically, hardware) components. <b>Down</b> - the interface is unable to transfer data on L1, e.g. ethernet is not plugged or interface is administratively down. <b>LowerLayerDown</b> - the interface is down due to state of lower-layer interface(s). <b>Testing</b> - the interface is in testing mode, e.g. cable test. It can\u2019t be used for normal traffic until tests complete. <b>Dormant</b> - the interface is L1 up, but waiting for an external event, e.g. for a protocol to establish. <b>Up</b> - the interface is ready to pass packets and can be used.</p>',m="The current physical link state of the interface.",p='The interface\'s latest or current speed that the network adapter <a href="https://en.wikipedia.org/wiki/Autonegotiation" target="_blank">negotiated</a> with the device it is connected to. This does not give the max supported speed of the NIC.',f='The interface\'s currently configured <a href="https://en.wikipedia.org/wiki/Maximum_transmission_unit" target="_blank">Maximum transmission unit</a> (MTU) value. MTU is the size of the largest protocol data unit that can be communicated in a single network layer transaction.',g=' This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a>.',b='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_process_create">application</a>.'+g,y='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a thread is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_thread_create">application</a>.'+g,v='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that responsible for closing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_process_exit">application</a>.'+g,_='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that responsible for releasing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_task_release">application</a>.'+g,w='Number of errors to create a new <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#task-error" target="_blank">task</a>. Netdata gives a summary for this chart in <a href="#ebpf_system_task_error">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_task_error">application</a>.'+g,k='Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_open">application</a>.'+g,T='Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_error">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_open_error">application</a>.'+g,x='Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_closed">application</a>.'+g,S='Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_error">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_close_error">application</a>.'+g,C='Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_hit_ratio">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_hit">application</a>.'+g,P='Number of times a file is accessed inside <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_reference">application</a>.'+g,M='Number of times a file is accessed in the file system, because it is not present inside the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_not_cache">application</a>.'+g,q='Number of times a file was not found on the file system. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_not_found">application</a>.'+g,I='Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write">application</a>.'+g,E='Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read">application</a>.'+g,D='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write_error">application</a>.'+g,L='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read_error">application</a>.'+g,N='Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write_bytes">application</a>.'+g,O='Total of bytes successfully read using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read_bytes">application</a>.'+g,R='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_unlink">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_unlink">application</a>.'+g,A='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_sync">application</a>.'+g,F='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_sync_error">application</a>.'+g,U='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_open">application</a>.'+g,B='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_open_error">application</a>.'+g,Z='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_create">application</a>.'+g,j='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_create_error">application</a>.'+g,z='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">swap reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows swap per <a href="#ebpf_apps_swap_read">application</a>.'+g,V='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">swap writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows swap per <a href="#ebpf_apps_swap_write">application</a>.'+g,H='The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata gives a summary for this chart in <a href="#menu_mem_submenu_page_cache">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_ratio">application</a>.'+g,Q='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_dirty">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_dirties">application</a>.'+g,G='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_hits">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_hits">application</a>.'+g,W='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_misses">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache misses per <a href="#ebpf_apps_cachestat_misses">application</a>.'+g,K='Number of calls to <b>shmget</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_get">application</a>.'+g,J='Number of calls to <b>shmat</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_at">application</a>.'+g,Y='Number of calls to <b>shmctl</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_ctl">application</a>.'+g,X='Number of calls to <b>shmdt</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_dt">application</a>.'+g,$='Number of calls to IPV4 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_apps_outbound_conn_ipv4">application</a>.'+g,ee='Number of calls to IPV6 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_apps_outbound_conn_ipv6">application</a>.'+g,te='Total bytes sent with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_apps_bandwidth_sent">application</a>.'+g,ne='Total bytes received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_apps_bandwidth_received">application</a>.'+g,se='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_bandwidth_tcp_sent">application</a>.'+g,re='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_bandwidth_tcp_received">application</a>.'+g,ae='Number of times a <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">TCP</a> packet was retransmitted. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_retransmit">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_tcp_retransmit">application</a>.'+g,oe='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_apps_udp_sendmsg">application</a>.'+g,ie='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_apps_udp_recv">application</a>.'+g,ce="Total CPU utilization within the configured or system-wide (if not set) limits. When the CPU utilization of a cgroup exceeds the limit for the configured period, the tasks belonging to its hierarchy will be throttled and are not allowed to run again until the next period.",le='Total CPU utilization within the system-wide CPU resources (all cores). The amount of time spent by tasks of the cgroup in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel</a> modes.',de="The percentage of runnable periods when tasks in a cgroup have been throttled. The tasks have not been allowed to run because they have exhausted all of the available time as specified by their CPU quota.",he="The total time duration for which tasks in a cgroup have been throttled. When an application has used its allotted CPU quota for a given period, it gets throttled until the next period.",ue="<p>The weight of each group living in the same hierarchy, that translates into the amount of CPU it is expected to get. The percentage of CPU assigned to the cgroup is the value of shares divided by the sum of all shares in all cgroups in the same level.</p> <p>For example, tasks in two cgroups that have <b>cpu.shares</b> set to 100 will receive equal CPU time, but tasks in a cgroup that has <b>cpu.shares</b> set to 200 receive twice the CPU time of tasks in a cgroup where <b>cpu.shares</b> is set to 100.</p>",me="Total CPU utilization per core within the system-wide CPU resources.",pe='CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on CPU. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',fe="The amount of time some processes have been waiting for CPU time.",ge='CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on CPU resource simultaneously. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',be="The amount of time all non-idle processes have been stalled due to CPU congestion.",ye="RAM utilization within the configured or system-wide (if not set) limits. When the RAM utilization of a cgroup exceeds the limit, OOM killer will start killing the tasks belonging to the cgroup.",ve="RAM usage within the configured or system-wide (if not set) limits. When the RAM usage of a cgroup exceeds the limit, OOM killer will start killing the tasks belonging to the cgroup.",_e="The amount of used RAM and swap memory.",we='Memory usage statistics. The individual metrics are described in the memory.stat section for <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html#per-memory-cgroup-local-status" target="_blank">cgroup-v1</a> and <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory-interface-files" target="_blank">cgroup-v2</a>.',ke="The number of memory usage hits limits.",Te="<b>Dirty</b> is the amount of memory waiting to be written to disk. <b>Writeback</b> is how much memory is actively being written to disk.",xe="<p>Memory accounting statistics.</p><p><b>In</b> - a page is accounted as either mapped anon page (RSS) or cache page (Page Cache) to the cgroup. <b>Out</b> - a page is unaccounted from the cgroup.</p>",Se='<p>Memory <a href="https://en.wikipedia.org/wiki/Page_fault" target="_blank">page fault</a> statistics.</p><p><b>Pgfault</b> - all page faults. <b>Swap</b> - major page faults.</p>',Ce='Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on memory. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Pe="The amount of time some processes have been waiting due to memory congestion.",Me='Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on memory resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',qe="The amount of time all non-idle processes have been stalled due to memory congestion.",Ie="The amount of data transferred to and from specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",Ee="The number of I/O operations performed on specific devices as seen by the CFQ scheduler.",De="The number of requests queued for I/O operations.",Le="The number of BIOS requests merged into requests for I/O operations.",Ne="The amount of data transferred to and from specific devices as seen by the throttling policy.",Oe="The number of I/O operations performed on specific devices as seen by the throttling policy.",Re='I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on I/O. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Ae="The amount of time some processes have been waiting due to I/O congestion.",Fe='I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> line indicates the share of time in which <b>all non-idle tasks</b> are stalled on I/O resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Ue="The amount of time all non-idle processes have been stalled due to I/O congestion.";t.Z={"system.cpu":{aggregationMethod:"avg",info:function(){return'Total CPU utilization (all cores). 100% here means there is no CPU idle time at all. You can get per core usage at the <a href="#menu_cpu">CPUs</a> section and per application usage at the <a href="#menu_apps">Applications Monitoring</a> section.'},valueRange:[0,100],en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",urlOptions:[],chartLibrary:"gauge",valueRange:[0,100],title:"Average CPU per Node",colors:s.default[0],layout:{x:3.4,y:0,w:2.6,h:5}},{"group_by[0]":["node"],"aggregation[0]":"sum",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by CPU",layout:{x:3.4,y:5,w:2.6,h:5}}]},"system.load":{mainheads:[{"aggregation[0]":"avg",chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hiddenWhen:["system.swap"],hasToolbox:!1,selectedDimensions:["load1"],title:"Average System Load (1 min)",colors:s.default[0],layout:{x:10.3,y:5,w:1.7,h:5}}],aggregationMethod:"avg",info:'Current system load, i.e. the number of processes using CPU or waiting for system resources (usually CPU and disk). The 3 metrics refer to 1, 5 and 15 minute averages. The system calculates this once every 5 seconds. For more information check <a href="https://en.wikipedia.org/wiki/Load_(computing)" target="_blank">this wikipedia article</a>.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["load1"]},"system.cpu_some_pressure":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",selectedDimensions:["some 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average CPU Pressure (10 sec, some)",colors:s.default[0],layout:{x:1.7,y:5,w:1.7,h:5}}],info:'CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on CPU. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.cpu_some_pressure_stall_time":{info:"The amount of time some processes have been waiting for CPU time.",en:{instance:{one:"system",other:"systems"}}},"system.memory_some_pressure":{aggregationMethod:"avg",info:'Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on memory. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.memory_some_pressure_stall_time":{info:"The amount of time some processes have been waiting due to memory congestion.",en:{instance:{one:"system",other:"systems"}}},"system.memory_full_pressure":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",selectedDimensions:["full 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Memory Pressure (10 sec, full)",colors:s.default[0],layout:{x:8.6,y:5,w:1.7,h:5}}],info:'Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on memory resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.memory_full_pressure_stall_time":{info:"The amount of time all non-idle processes have been stalled due to memory congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io_some_pressure":{aggregationMethod:"avg",info:'I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on I/O. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.io_some_pressure_stall_time":{info:"The amount of time some processes have been waiting due to I/O congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io_full_pressure":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",selectedDimensions:["full 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk I/O Pressure (10 sec, full)",colors:s.default[0],layout:{x:0,y:5,w:1.7,h:5}}],info:'I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> line indicates the share of time in which <b>all non-idle tasks</b> are stalled on I/O resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.io_full_pressure_stall_time":{info:"The amount of time all non-idle processes have been stalled due to I/O congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io":{info:function(e){var t='Total Disk I/O, for all physical disks. You can get detailed information about each disk at the <a href="#menu_disk">Disks</a> section and per application Disk usage at the <a href="#menu_apps">Applications Monitoring</a> section.';return"linux"===e.os?t+" Physical are all the disks that are listed in <b>/sys/block</b>, but do not exist in <b>/sys/devices/virtual/block</b>.":t},en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["in"],title:"Total Disk Reads",layout:{x:1.7,y:0,w:1.7,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["out"],title:"Total Disk Writes",layout:{x:0,y:0,w:1.7,h:5}}]},"system.pgpgio":{info:"Memory paged from/to disk. This is usually the total disk I/O of the system.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["in"],title:"Total Pages read from Disk",hiddenWhen:"system.io",layout:{x:1.6,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["out"],title:"Total Pages written to Disk",hiddenWhen:"system.io",layout:{x:1.6,y:0,w:1.6,h:5}}]},"system.swapio":{info:"<p>System swap I/O.</p><b>In</b> - pages the system has swapped in from disk to RAM. <b>Out</b> - pages the system has swapped out from RAM to disk.",en:{instance:{one:"system",other:"systems"}}},"system.pgfaults":{info:'Total page faults. <b>Major page faults</b> indicates that the system is using its swap. You can find which applications use the swap at the <a href="#menu_apps">Applications Monitoring</a> section.',en:{instance:{one:"system",other:"systems"}}},"system.entropy":{aggregationMethod:"min",colors:s.default[5],info:'<a href="https://en.wikipedia.org/wiki/Entropy_(computing)" target="_blank">Entropy</a>, is a pool of random numbers (<a href="https://en.wikipedia.org/wiki//dev/random" target="_blank">/dev/random</a>) that is mainly used in cryptography. If the pool of entropy gets empty, processes requiring random numbers may run a lot slower (it depends on the interface each program uses), waiting for the pool to be replenished. Ideally a system with high entropy demands should have a hardware device for that purpose (TPM is one such device). There are also several software-only options you may install, like <b>haveged</b>, although these are generally useful only in servers.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["entropy"]},"system.clock_sync_state":{info:'<p>The system clock synchronization state as provided by the <a href="https://man7.org/linux/man-pages/man2/adjtimex.2.html" target="_blank">ntp_adjtime()</a> system call. An unsynchronized clock may be the result of synchronization issues by the NTP daemon or a hardware clock fault. It can take several minutes (usually up to 17) before NTP daemon selects a server to synchronize with. <p><b>State map</b>: 0 - not synchronized, 1 - synchronized.</p>',en:{instance:{one:"system",other:"systems"}}},"system.clock_status":{info:'<p>The kernel code can operate in various modes and with various features enabled or disabled, as selected by the <a href="https://man7.org/linux/man-pages/man2/adjtimex.2.html" target="_blank">ntp_adjtime()</a> system call. The system clock status shows the value of the <b>time_status</b> variable in the kernel. The bits of the variable are used to control these functions and record error conditions as they exist.</p><p><b>UNSYNC</b> - set/cleared by the caller to indicate clock unsynchronized (e.g., when no peers are reachable). This flag is usually controlled by an application program, but the operating system may also set it. <b>CLOCKERR</b> - set/cleared by the external hardware clock driver to indicate hardware fault.</p><p><b>Status map</b>: 0 - bit unset, 1 - bit set.</p>',en:{instance:{one:"system",other:"systems"}}},"system.clock_sync_offset":{aggregationMethod:"avg",info:'A typical NTP client regularly polls one or more NTP servers. The client must compute its <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol#Clock_synchronization_algorithm" target="_blank">time offset</a> and round-trip delay. Time offset is the difference in absolute time between the two clocks.',en:{instance:{one:"system",other:"systems"}}},"system.forks":{colors:s.default[6],info:"The number of new processes created.",en:{instance:{one:"system",other:"systems"}}},"system.intr":{colors:s.default[1],info:'Total number of CPU interrupts. Check <b>system.interrupts</b> that gives more detail about each interrupt and also the <a href="#menu_cpu">CPUs</a> section where interrupts are analyzed <a href="#menu_cpu_submenu_interrupts">per CPU core</a>.',en:{instance:{one:"system",other:"systems"}}},"system.interrupts":{info:'CPU interrupts in detail. At the <a href="#menu_cpu">CPUs</a> section, interrupts are analyzed <a href="#menu_cpu_submenu_interrupts">per CPU core</a>. The last column in <b>/proc/interrupts</b> provides an interrupt description or the device name that registered the handler for that interrupt.',en:{instance:{one:"system",other:"systems"}}},"system.hardirq_latency":{aggregationMethod:"avg",info:'Total time spent servicing <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#hard-irq" target="_blank">hardware interrupts</a>. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/hardirqs_example.txt" target="_blank">hardirqs</a> from BCC tools.'+g+'<div id="ebpf_global_hard_irq"></div>',en:{instance:{one:"system",other:"systems"}}},"system.softirqs":{info:'<p>Total number of software interrupts in the system. At the <a href="#menu_cpu">CPUs</a> section, softirqs are analyzed <a href="#menu_cpu_submenu_softirqs">per CPU core</a>.</p><p><b>HI</b> - high priority tasklets. <b>TIMER</b> - tasklets related to timer interrupts. <b>NET_TX</b>, <b>NET_RX</b> - used for network transmit and receive processing. <b>BLOCK</b> - handles block I/O completion events. <b>IRQ_POLL</b> - used by the IO subsystem to increase performance (a NAPI like approach for block devices). <b>TASKLET</b> - handles regular tasklets. <b>SCHED</b> - used by the scheduler to perform load-balancing and other scheduling tasks. <b>HRTIMER</b> - used for high-resolution timers. <b>RCU</b> - performs read-copy-update (RCU) processing.</p>',en:{instance:{one:"system",other:"systems"}}},"system.softnet_stat":{en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["processed"]},"system.softirq_latency":{aggregationMethod:"avg",info:'Total time spent servicing <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#soft-irq" target="_blank">software interrupts</a>. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/softirqs_example.txt" target="_blank">softirqs</a> from BCC tools.'+g+'<div id="ebpf_global_soft_irq"></div>',en:{instance:{one:"system",other:"systems"}}},"system.processes":{info:"<p>System processes.</p><p><b>Running</b> - running or ready to run (runnable). <b>Blocked</b> - currently blocked, waiting for I/O to complete.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["blocked"]},"system.processes_state":{info:"<p>The number of processes in different states. </p> <p><b>Running</b> - Process using the CPU at a particular moment. <b>Sleeping (uninterruptible)</b> - Process will wake when a waited-upon resource becomes available or after a time-out occurs during that wait. Mostly used by device drivers waiting for disk or network I/O. <b>Sleeping (interruptible)</b> - Process is waiting either for a particular time slot or for a particular event to occur. <b>Zombie</b> - Process that has completed its execution, released the system resources, but its entry is not removed from the process table. Usually occurs in child processes when the parent process still needs to read its child\u2019s exit status. A process that stays a zombie for a long time is generally an error and causes system PID space leak. <b>Stopped</b> - Process is suspended from proceeding further due to STOP or TSTP signals. In this state, a process will not do anything (not even terminate) until it receives a CONT signal.</p>",en:{instance:{one:"system",other:"systems"}}},"system.active_processes":{info:"The total number of processes in the system.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["active"]},"system.ctxt":{info:'<a href="https://en.wikipedia.org/wiki/Context_switch" target="_blank">Context Switches</a>, is the switching of the CPU from one process, task or thread to another. If there are many processes or threads willing to execute and very few CPU cores available to handle them, the system is making more context switching to balance the CPU resources among them. The whole process is computationally intensive. The more the context switches, the slower the system gets.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["switches"]},"system.idlejitter":{aggregationMethod:"max",info:"Idle jitter is calculated by netdata. A thread is spawned that requests to sleep for a few microseconds. 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 <b>idle jitter</b>. This number is useful in real-time environments, where CPU jitter can affect the quality of the service (like VoIP media gateways).",en:{instance:{one:"system",other:"systems"}},heatmapType:"default"},"system.net":{info:function(e){var t="Total bandwidth of all physical network interfaces. This does not include <b>lo</b>, VPNs, network bridges, IFB devices, bond interfaces, etc. Only the bandwidth of physical network interfaces is aggregated.";return"linux"===e.os?t+" Physical are all the network interfaces that are listed in <b>/proc/net/dev</b>, but do not exist in <b>/sys/devices/virtual/net</b>.":t},en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Network Inbound",layout:{x:8.6,y:0,w:1.7,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Network Outbound",layout:{x:10.3,y:0,w:1.7,h:5}}]},"system.ip":{info:"Total IP traffic in the system.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IP Traffic In",hiddenWhen:"system.net",layout:{x:7.2,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IP Traffic Out",hiddenWhen:"system.net",layout:{x:8.8,y:0,w:1.6,h:5}}]},"system.ipv4":{info:"Total IPv4 Traffic.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IPv4 Traffic In",hiddenWhen:["system.net","system.ip"],layout:{x:7.2,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IPv4 Traffic Out",hiddenWhen:["system.net","system.ip"],layout:{x:8.8,y:0,w:1.6,h:5}}]},"system.ipv6":{info:"Total IPv6 Traffic.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IPv6 Traffic In",hiddenWhen:["system.net","system.ip","system.ipv4"],layout:{x:7.2,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IPv6 Traffic Out",hiddenWhen:["system.net","system.ip","system.ipv4"],layout:{x:8.8,y:0,w:1.6,h:5}}]},"system.ram":{info:"System Random Access Memory (i.e. physical memory) usage.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"gauge",selectedDimensions:["used","buffers","active","wired"],desiredUnits:"percentage",colors:s.default[10],title:"Average Used RAM per Node",valueRange:[0,100],layout:{x:6,y:0,w:2.6,h:5}},{groupBy:["percentage-of-instance"],"group_by[1]":["node"],urlOptions:["percentage"],selectedDimensions:["used","buffers","active","wired"],desiredUnits:"percentage",valueRange:[0,100],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by Used RAM",layout:{x:6,y:5,w:2.6,h:5}}]},"system.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).",en:{instance:{one:"system",other:"systems"}}},"system.swapcalls":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">functions</a> used to manipulate swap data. Netdata shows swap metrics per <a href="#ebpf_apps_swap_read">application</a> and <a href="#ebpf_services_swap_read">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_swap"></div>',en:{instance:{one:"system",other:"systems"}}},"system.ipc_semaphores":{info:"Number of allocated System V IPC semaphores. The system-wide limit on the number of semaphores in all semaphore sets is specified in <b>/proc/sys/kernel/sem</b> file (2nd field).",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["semaphores"]},"system.ipc_semaphore_arrays":{info:"Number of used System V IPC semaphore arrays (sets). Semaphores support semaphore sets where each one is a counting semaphore. So when an application requests semaphores, the kernel releases them in sets. The system-wide limit on the maximum number of semaphore sets is specified in <b>/proc/sys/kernel/sem</b> file (4th field).",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_segments":{info:"Number of allocated System V IPC memory segments. The system-wide maximum number of shared memory segments that can be created is specified in <b>/proc/sys/kernel/shmmni</b> file.",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_bytes":{info:"Amount of memory currently used by System V IPC memory segments. The run-time limit on the maximum shared memory segment size that can be created is specified in <b>/proc/sys/kernel/shmmax</b> file.",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_calls":{info:'Number of calls to syscalls responsible to manipulate <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ipc-shared-memory" target="_blank">shared memories</a>. Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_get">application</a> and <a href="#ebpf_services_shm_get">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_shm"></div>',en:{instance:{one:"system",other:"systems"}}},"system.message_queue_messages":{info:"Number of messages that are currently present in System V IPC message queues.",en:{instance:{one:"system",other:"systems"}}},"system.message_queue_bytes":{info:"Amount of memory currently used by messages in System V IPC message queues.",en:{instance:{one:"system",other:"systems"}}},"system.uptime":{aggregationMethod:"min",info:"The amount of time the system has been running, including time spent in suspend.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["uptime"]},"system.process_thread":{title:"Task creation",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process or thread is called. Netdata shows process metrics per <a href="#ebpf_apps_process_create">application</a> and <a href="#ebpf_services_process_create">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_system_process_thread"></div>',en:{instance:{one:"system",other:"systems"}}},"system.exit":{title:"Exit monitoring",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible to close a process or thread is called. Netdata shows process metrics per <a href="#ebpf_apps_process_exit">application</a> and <a href="#ebpf_services_process_exit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_system_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"system.task_error":{title:"Task error",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#task-error" target="_blank">a function</a> that starts a process or thread failed. Netdata shows process metrics per <a href="#ebpf_apps_task_error">application</a> and <a href="#ebpf_services_task_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_system_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"system.process_status":{title:"Task status",info:'Difference between the number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">functions</a> that close a task and release a task.'+g,en:{instance:{one:"system",other:"systems"}}},"cpu.cpu":{aggregationMethod:"avg",valueRange:[0,100],en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Utilization",valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Core Utilisation Stats",layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Utilisation",layout:{x:0,y:10,w:3,h:5}}]},"cpu.interrupts":{en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Interrupts",layout:{x:3,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",title:"Top CPU Core Interrupt Types",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Interrupts",layout:{x:3,y:10,w:3,h:5}}]},"cpu.softirqs":{en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Softirqs",layout:{x:6,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Core Softirq Types",layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Softirqs",layout:{x:6,y:10,w:3,h:5}}]},"cpu.softnet_stat":{en:{instance:{one:"cpu core",other:"cpu cores"}},dimensionsOnNonDimensionGrouping:["processed"],mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Softnets",layout:{x:9,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",title:"Top CPU Core Softnet Stats",layout:{x:9,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Softnets",layout:{x:9,y:10,w:3,h:5}}]},"cpu.core_throttling":{en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Max CPU Core Throttling",layout:{x:0,y:5,w:3,h:5}}],info:"The number of adjustments made to the clock speed of the CPU based on it's core temperature."},"cpu.package_throttling":{info:"The number of adjustments made to the clock speed of the CPU based on it's package (chip) temperature.",en:{instance:{one:"system",other:"systems"}}},"cpufreq.cpufreq":{info:"The frequency measures the number of cycles your CPU executes per second.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"cpuidle.cpuidle":{info:"The percentage of time spent in C-states.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"cpuidle.cpu_cstate_residency_time":{aggregationMethod:"avg",en:{instance:{one:"cpu core",other:"cpu cores"}}},"mem.ksm":{info:"<p>Memory pages merging statistics. A high ratio of <b>Sharing</b> to <b>Shared</b> indicates good sharing, but a high ratio of <b>Unshared</b> to <b>Sharing</b> indicates wasted effort.</p><p><b>Shared</b> - used shared pages. <b>Unshared</b> - memory no longer shared (pages are unique but repeatedly checked for merging). <b>Sharing</b> - memory currently shared (how many more sites are sharing the pages, i.e. how much saved). <b>Volatile</b> - volatile pages (changing too fast to be placed in a tree).</p>",en:{instance:{one:"system",other:"systems"}}},"mem.ksm_savings":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Saved",selectedDimensions:["savings"],colors:s.default[0],layout:{x:0,y:5,w:3,h:5}}],info:"<p>The amount of memory saved by KSM.</p><p><b>Savings</b> - saved memory. <b>Offered</b> - memory marked as mergeable.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.ksm_ratios":{aggregationMethod:"avg",heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Savings",desiredUnits:"percentage",colors:s.default[0],valueRange:[0,100],layout:{x:3,y:5,w:3,h:5}}],info:"The effectiveness of KSM. This is the percentage of the mergeable pages that are currently merged.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_usage":{info:"ZRAM total RAM usage metrics. ZRAM uses some memory to store metadata about stored memory pages, thus introducing an overhead which is proportional to disk size. It excludes same-element-filled-pages since no memory is allocated for them.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_savings":{info:"Displays original and compressed memory data sizes.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_ratio":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Compression Ratio",selectedDimensions:["ratio"],colors:s.default[0],valueRange:[0,100],layout:{x:6,y:5,w:3,h:5}}],info:"Compression ratio, calculated as <b>100 * original_size / compressed_size</b>. More means better compression and more RAM savings.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_efficiency":{aggregationMethod:"avg",heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Efficiency",selectedDimensions:["percent"],colors:s.default[0],layout:{x:9,y:5,w:3,h:5}}],valueRange:[0,100],info:"Memory usage efficiency, calculated as <b>100 * compressed_size / total_mem_used</b>.",en:{instance:{one:"system",other:"systems"}}},"mem.pgfaults":{family:"page faults",info:'<p>A <a href="https://en.wikipedia.org/wiki/Page_fault" target="_blank">page fault</a> is a type of interrupt, called trap, raised by computer hardware when a running program accesses a memory page that is mapped into the virtual address space, but not actually loaded into main memory.</p></p><b>Minor</b> - the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory. <b>Major</b> - generated when the system needs to load the memory page from disk or swap memory.</p>',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["major"]},"mem.directmaps":{family:"overview"},"mem.committed":{family:"overview",colors:s.default[3],info:"Committed Memory, is the sum of all memory which has been allocated by processes.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Committed Memory",layout:{x:3,y:0,w:3,h:5},colors:s.default[2]},{"group_by[0]":["node"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by Committed Memory",layout:{x:3,y:5,w:3,h:5}}]},"mem.real":{colors:s.default[3],info:"Total amount of real (physical) memory used.",en:{instance:{one:"system",other:"systems"}}},"mem.oom_kill":{family:"OOM kills",info:'The number of processes killed by <a href="https://en.wikipedia.org/wiki/Out_of_memory" target="_blank">Out of Memory</a> Killer. The kernel\'s OOM killer is summoned when the system runs short of free memory and is unable to proceed without killing one or more processes. It tries to pick the process whose demise will free the most memory while causing the least misery for users of the system. This counter also includes processes within containers that have exceeded the memory limit.',en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Out of Memory Kills",desiredUnits:"Kills/s",colors:s.default[1],layout:{x:9,y:5,w:3,h:5}}]},"mem.numa":{info:"<p>NUMA balancing statistics.</p><p><b>Local</b> - pages successfully allocated on this node, by a process on this node. <b>Foreign</b> - pages initially intended for this node that were allocated to another node instead. <b>Interleave</b> - interleave policy pages successfully allocated to this node. <b>Other</b> - pages allocated on this node, by a process on another node. <b>PteUpdates</b> - base pages that were marked for NUMA hinting faults. <b>HugePteUpdates</b> - transparent huge pages that were marked for NUMA hinting faults. In Combination with <b>pte_updates</b> the total address space that was marked can be calculated. <b>HintFaults</b> - NUMA hinting faults that were trapped. <b>HintFaultsLocal</b> - hinting faults that were to local nodes. In combination with <b>HintFaults</b>, the percentage of local versus remote faults can be calculated. A high percentage of local hinting faults indicates that the workload is closer to being converged. <b>PagesMigrated</b> - pages were migrated because they were misplaced. As migration is a copying operation, it contributes the largest part of the overhead created by NUMA balancing.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.numa_nodes":{en:{instance:{one:"system",other:"systems"}}},"mem.available":{family:"overview",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",chartLibrary:"easypiechart",title:"Total Available Memory",layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["node"],dimensionsSort:"valueAsc",chartLibrary:"bars",title:"Top Nodes by Least Available Memory",layout:{x:0,y:5,w:3,h:5}}],info:function(e){return"freebsd"===e.os?"The amount of memory that can be used by user-space processes without causing swapping. Calculated as the sum of free, cached, and inactive memory.":"Available Memory is estimated by the kernel, as the amount of RAM that can be used by userspace processes, without causing swapping."},en:{instance:{one:"system",other:"systems"}}},"mem.writeback":{family:"writeback",info:"<b>Dirty</b> is the amount of memory waiting to be written to disk. <b>Writeback</b> is how much memory is actively being written to disk.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["Dirty"]},"mem.kernel":{info:"<p>The total amount of memory being used by the kernel.</p><p><b>Slab</b> - used by the kernel to cache data structures for its own use. <b>KernelStack</b> - allocated for each task done by the kernel. <b>PageTables</b> - dedicated to the lowest level of page tables (A page table is used to turn a virtual address into a physical memory address). <b>VmallocUsed</b> - being used as virtual address space. <b>Percpu</b> - allocated to the per-CPU allocator used to back per-CPU allocations (excludes the cost of metadata). When you create a per-CPU variable, each processor on the system gets its own copy of that variable.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.slab":{info:'<p><a href="https://en.wikipedia.org/wiki/Slab_allocation" target="_blank">Slab memory</a> statistics.<p><p><b>Reclaimable</b> - amount of memory which the kernel can reuse. <b>Unreclaimable</b> - can not be reused even when the kernel is lacking memory.</p>',en:{instance:{one:"system",other:"systems"}}},"mem.hugepages":{info:"Dedicated (or Direct) HugePages is memory reserved for applications configured to utilize huge pages. Hugepages are <b>used</b> memory, even if there are free hugepages available.",en:{instance:{one:"system",other:"systems"}}},"mem.transparent_hugepages":{info:"Transparent HugePages (THP) is backing virtual memory with huge pages, supporting automatic promotion and demotion of page sizes. It works for all applications for anonymous memory mappings and tmpfs/shmem.",en:{instance:{one:"system",other:"systems"}}},"mem.hwcorrupt":{info:'The amount of memory with physical corruption problems, identified by <a href="https://en.wikipedia.org/wiki/ECC_memory" target="_blank">ECC</a> and set aside by the kernel so it does not get used.',en:{instance:{one:"system",other:"systems"}}},"mem.edac_mc":{info:"The number of correctable (single-bit) ECC errors. These errors do not affect the normal operation of the system because they are still being corrected. Periodic correctable errors may indicate that one of the memory modules is slowly failing.",en:{instance:{one:"mem controller",other:"mem controllers"}}},"mem.edac_mc_dimm":{info:"The number of uncorrectable (multi-bit) ECC errors. An uncorrectable error is a fatal issue that will typically lead to an OS crash.",en:{instance:{one:"mem module",other:"mem modules"}}},"mem.pagetype_global":{info:"The amount of memory available in blocks of certain size.",en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Page Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0],valueRange:[0,100],layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["node"],chartLibrary:"bars",dimensionsSort:"valueAsc",title:"Top Nodes by Least Cache Hit Ratio",layout:{x:6,y:5,w:3,h:5}}],info:'The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata shows the ratio per <a href="#ebpf_apps_cachestat_ratio">application</a> and <a href="#ebpf_services_cachestat_ratio">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_dirties":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Dirty Pages",desiredUnits:"Pages/s",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the dity page <a href="#ebpf_apps_cachestat_dirties">application</a> and <a href="#ebpf_services_cachestat_dirties">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_cachestat_dirty"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_hits":{aggregationMethod:"avg",info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the hits per <a href="#ebpf_apps_cachestat_hits">application</a> and <a href="#ebpf_services_cachestat_hits">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_misses":{aggregationMethod:"avg",info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data that was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the missed access per <a href="#ebpf_apps_cachestat_misses">application</a> and <a href="#ebpf_services_cachestat_misses">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.sync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-system-sync" target="_blank">syscalls</a> that sync filesystem metadata or cached. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.file_sync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-sync" target="_blank">syscalls</a> responsible to transfer modified Linux page cache to disk. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.memory_map":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#memory-map-sync" target="_blank">syscall</a> responsible to the in-core copy of a file that was mapped. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.file_segment":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-range-sync" target="_blank">syscall</a> responsible to sync file segments. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"filesystem.dc_hit_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata shows directory cache metrics per <a href="#ebpf_apps_dc_hit">application</a> and <a href="#ebpf_services_dc_hit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_dc_hit_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.dc_reference":{info:'Counters of file accesses. <b>Reference</b> is when there is a file access and the file is not present in the directory cache. <b>Miss</b> is when there is file access and the file is not found in the filesystem. <b>Slow</b> is when there is a file access and the file is present in the filesystem but not in the directory cache. Netdata shows directory cache metrics per <a href="#ebpf_apps_dc_reference">application</a> and <a href="#ebpf_services_dc_reference">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"md.health":{family:"health",info:"Number of failed devices per MD array. Netdata retrieves this data from the <b>[n/m]</b> field of the md status line. It means that ideally the array would have <b>n</b> devices however, currently, <b>m</b> devices are in use. <b>failed disks</b> is <b>n-m</b>.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.disks":{family:"health",info:"Number of devices in use and in the down state. Netdata retrieves this data from the <b>[n/m]</b> field of the md status line. It means that ideally the array would have <b>n</b> devices however, currently, <b>m</b> devices are in use. <b>inuse</b> is <b>m</b>, <b>down</b> is <b>n-m</b>.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.status":{family:"activity",info:"Completion progress of the ongoing operation.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.expected_time_until_operation_finish":{family:"activity",info:"Estimated time to complete the ongoing operation. The time is only an approximation since the operation speed will vary according to other I/O demands.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.operation_speed":{family:"activity",info:"Speed of the ongoing operation. The system-wide rebuild speed limits are specified in <b>/proc/sys/dev/raid/{speed_limit_min,speed_limit_max}</b> files. These options are good for tweaking rebuilt process and may increase overall system load, cpu and memory usage.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.mismatch_cnt":{family:"errors",info:'When performing <b>check</b> and <b>repair</b>, and possibly when performing <b>resync</b>, md will count the number of errors that are found. A count of mismatches is recorded in the <b>sysfs</b> file <b>md/mismatch_cnt</b>. This value is the number of sectors that were re-written, or (for <b>check</b>) would have been re-written. It may be larger than the number of actual errors by a factor of the number of sectors in a page. Mismatches can not be interpreted very reliably on RAID1 or RAID10, especially when the device is used for swap. On a truly clean RAID5 or RAID6 array, any mismatches should indicate a hardware problem at some level - software issues should never cause such a mismatch. For details, see <a href="https://man7.org/linux/man-pages/man4/md.4.html" target="_blank">md(4)</a>.',en:{instance:{one:"MD array",other:"MD arrays"}}},"md.flush":{family:"flushes",info:'Number of flush counts per MD array. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/mdflush_example.txt" target="_blank">mdflush</a> from BCC tools.',en:{instance:{one:"MD array",other:"MD arrays"}}},"ip.inerrors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IP Inbound Errors",desiredUnits:"errors",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"<p>The number of errors encountered during the reception of IP packets.</p></p><b>NoRoutes</b> - packets that were dropped because there was no route to send them. <b>Truncated</b> - packets which is being discarded because the datagram frame didn't carry enough data. <b>Checksum</b> - packets that were dropped because they had wrong checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.mcast":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Multicast Traffic Received",layout:{x:9,y:5,w:3,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Multicast Traffic Sent",layout:{x:6,y:5,w:3,h:5},colors:s.default[1]}],info:"Total multicast traffic in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.mcastpkts":{info:"Total transferred multicast packets in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.bcast":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Broadcast Traffic Received",layout:{x:3,y:5,w:3,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Broadcast Traffic Sent",layout:{x:0,y:5,w:3,h:5},colors:s.default[1]}],info:"Total broadcast traffic in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.bcastpkts":{info:"Total transferred broadcast packets in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.ecnpkts":{info:"<p>Total number of received IP packets with ECN bits set in the system.</p><p><b>CEP</b> - congestion encountered. <b>NoECTP</b> - non ECN-capable transport. <b>ECTP0</b> and <b>ECTP1</b> - ECN capable transport.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["NoECTP"]},"ip.inbound_conn":{info:'Number of calls to functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-inbound-connections" target="_blank">receiving connections</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"ip.tcp_outbound_conn":{info:'Number of calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_outbound_conn_ipv4">application</a> and <a href="#ebpf_services_outbound_conn_ipv4">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_outbound_conn"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_functions":{info:'Number of calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth-functions" target="_blank">exchanging data</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_bandwidth_tcp_sent">application</a> and <a href="#ebpf_services_bandwidth_tcp_sent">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_tcp_bandwidth_call"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.total_tcp_bandwidth":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total TCP Bandwidth",desiredUnits:"bps",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:'Total bytes sent and received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP internal functions</a>. Netdata shows TCP bandwidth metrics per <a href="#ebpf_apps_bandwidth_sent">application</a> and <a href="#ebpf_services_bandwidth_sent">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_bandwidth_tcp_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_error":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Errors",desiredUnits:"errors",colors:s.default[2],layout:{x:3,y:0,w:3,h:5}}],info:'Number of failed calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP bandwidth</a>. Netdata shows TCP error per <a href="#ebpf_apps_tcp_sendmsg_error">application</a> and <a href="#ebpf_services_tcp_sendmsg_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_tcp_bandwidth_error"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_retransmit":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Retransmits",desiredUnits:"retransmits",colors:s.default[3],layout:{x:6,y:0,w:3,h:5}}],info:'Number of times a TCP packet was <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">retransmitted</a>. Netdata shows TCP retransmit per <a href="#ebpf_apps_tcp_retransmit">application</a> and <a href="#ebpf_services_tcp_retransmit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.udp_functions":{info:'Number of calls to UDP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">exchanging data</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_udp_sendmsg">application</a> and <a href="#ebpf_services_udp_sendmsg">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_udp_bandwidth_call"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.total_udp_bandwidth":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total UDP Bandwidth",desiredUnits:"bps",colors:s.default[4],layout:{x:9,y:0,w:3,h:5}}],info:'Total bytes sent and received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-bandwidth" target="_blank">UDP internal functions</a>. Netdata shows UDP bandwidth metrics per <a href="#ebpf_apps_bandwidth_udp_sendmsg">application</a> and <a href="#ebpf_services_bandwidth_udp_sendmsg">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_bandwidth_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.udp_error":{info:'Number of failed calls to UDP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-bandwidth" target="_blank">UDP bandwidth</a>. Netdata shows UDP error per <a href="#ebpf_apps_udp_sendmsg_error">application</a> and <a href="#ebpf_services_udp_sendmsg_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_udp_bandwidth_error"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcpreorders":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Reorders",layout:{x:9,y:0,w:3,h:5}}],info:"<p>TCP prevents out-of-order packets by either sequencing them in the correct order or by requesting the retransmission of out-of-order packets.</p><p><b>Timestamp</b> - detected re-ordering using the timestamp option. <b>SACK</b> - detected re-ordering using Selective Acknowledgment algorithm. <b>FACK</b> - detected re-ordering using Forward Acknowledgment algorithm. <b>Reno</b> - detected re-ordering using Fast Retransmit algorithm.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcpofo":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Out-Of-Order Queue",layout:{x:6,y:0,w:3,h:5}}],info:"<p>TCP maintains an out-of-order queue to keep the out-of-order packets in the TCP communication.</p><p><b>InQueue</b> - the TCP layer receives an out-of-order packet and has enough memory to queue it. <b>Dropped</b> - the TCP layer receives an out-of-order packet but does not have enough memory, so drops it. <b>Merged</b> - the received out-of-order packet has an overlay with the previous packet. The overlay part will be dropped. All these packets will also be counted into <b>InQueue</b>. <b>Pruned</b> - packets dropped from out-of-order queue because of socket buffer overrun.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcpsyncookies":{info:'<p><a href="https://en.wikipedia.org/wiki/SYN_cookies" target="_blank">SYN cookies</a> are used to mitigate SYN flood.</p><p><b>Received</b> - after sending a SYN cookie, it came back to us and passed the check. <b>Sent</b> - an application was not able to accept a connection fast enough, so the kernel could not store an entry in the queue for this connection. Instead of dropping it, it sent a SYN cookie to the client. <b>Failed</b> - the MSS decoded from the SYN cookie is invalid. When this counter is incremented, the received packet won\u2019t be treated as a SYN cookie.</p>',en:{instance:{one:"system",other:"systems"}}},"ip.tcpmemorypressures":{info:"The number of times a socket was put in memory pressure due to a non fatal memory allocation failure (the kernel attempts to work around this situation by reducing the send buffers, etc).",en:{instance:{one:"system",other:"systems"}}},"ip.tcpconnaborts":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"TCP Connection Aborts",desiredUnits:"errors",layout:{x:3,y:0,w:3,h:5}}],info:"<p>TCP connection aborts.</p><p><b>BadData</b> - happens while the connection is on FIN_WAIT1 and the kernel receives a packet with a sequence number beyond the last one for this connection - the kernel responds with RST (closes the connection). <b>UserClosed</b> - happens when the kernel receives data on an already closed connection and responds with RST. <b>NoMemory</b> - happens when there are too many orphaned sockets (not attached to an fd) and the kernel has to drop a connection - sometimes it will send an RST, sometimes it won't. <b>Timeout</b> - happens when a connection times out. <b>Linger</b> - happens when the kernel killed a socket that was already closed by the application and lingered around for long enough. <b>Failed</b> - happens when the kernel attempted to send an RST but failed because there was no memory available.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["timeouts"]},"ip.tcp_syn_queue":{info:"<p>The SYN queue of the kernel tracks TCP handshakes until connections get fully established. It overflows when too many incoming TCP connection requests hang in the half-open state and the server is not configured to fall back to SYN cookies. Overflows are usually caused by SYN flood DoS attacks.</p><p><b>Drops</b> - number of connections dropped because the SYN queue was full and SYN cookies were disabled. <b>Cookies</b> - number of SYN cookies sent because the SYN queue was full.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcp_accept_queue":{info:"<p>The accept queue of the kernel holds the fully established TCP connections, waiting to be handled by the listening application.</p><b>Overflows</b> - the number of established connections that could not be handled because the receive queue of the listening application was full. <b>Drops</b> - number of incoming connections that could not be handled, including SYN floods, overflows, out of memory, security issues, no route to destination, reception of related ICMP messages, socket is broadcast or multicast.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["overflows"]},"ipv4.packets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],"aggregation[1]":"sum",chartLibrary:"easypiechart",title:"Total IPv4 Packets",desiredUnits:"Kpps",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 Packets",layout:{x:0,y:5,w:3,h:5}}],info:'<p>IPv4 packets statistics for this host.</p><p><b>Received</b> - packets received by the IP layer. This counter will be increased even if the packet is dropped later. <b>Sent</b> - packets sent via IP layer, for both single cast and multicast packets. This counter does not include any packets counted in <b>Forwarded</b>. <b>Forwarded</b> - input packets for which this host was not their final IP destination, as a result of which an attempt was made to find a route to forward them to that final destination. In hosts which do not act as IP Gateways, this counter will include only those packets which were <a href="https://en.wikipedia.org/wiki/Source_routing" target="_blank">Source-Routed</a> and the Source-Route option processing was successful. <b>Delivered</b> - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.fragsout":{info:'<p><a href="https://en.wikipedia.org/wiki/IPv4#Fragmentation" target="_blank">IPv4 fragmentation</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully fragmented. <b>Failed</b> - packets that have been discarded because they needed to be fragmented but could not be, e.g. due to <i>Don\'t Fragment</i> (DF) flag was set. <b>Created</b> - fragments that have been generated as a result of fragmentation.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.fragsin":{info:'<p><a href="https://en.wikipedia.org/wiki/IPv4#Reassembly" target="_blank">IPv4 reassembly</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully reassembled. <b>Failed</b> - failures detected by the IP reassembly algorithm. This is not necessarily a count of discarded IP fragments since some algorithms can lose track of the number of fragments by combining them as they are received. <b>All</b> - received IP fragments which needed to be reassembled.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.errors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv4 Errors",desiredUnits:"packets per second",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 Errors",layout:{x:3,y:5,w:3,h:5}}],info:"<p>The number of discarded IPv4 packets.</p><p><b>InDiscards</b>, <b>OutDiscards</b> - inbound and outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. <b>InHdrErrors</b> - input packets that have been discarded due to errors in their IP headers, including bad checksums, version number mismatch, other format errors, time-to-live exceeded, errors discovered in processing their IP options, etc. <b>OutNoRoutes</b> - packets that have been discarded because no route could be found to transmit them to their destination. This includes any packets which a host cannot route because all of its default gateways are down. <b>InAddrErrors</b> - input packets that have been discarded due to invalid IP address or the destination IP address is not a local address and IP forwarding is not enabled. <b>InUnknownProtos</b> - input packets which were discarded because of an unknown or unsupported protocol.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmp":{aggregationMethod:"sum",info:"<p>The number of transferred IPv4 ICMP messages.</p><p><b>Received</b>, <b>Sent</b> - ICMP messages which the host received and attempted to send. Both these counters include errors.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmp_errors":{info:"<p>The number of IPv4 ICMP errors.</p><p><b>InErrors</b> - received ICMP messages but determined as having ICMP-specific errors, e.g. bad ICMP checksums, bad length, etc. <b>OutErrors</b> - ICMP messages which this host did not send due to problems discovered within ICMP such as a lack of buffers. This counter does not include errors discovered outside the ICMP layer such as the inability of IP to route the resultant datagram. <b>InCsumErrors</b> - received ICMP messages with bad checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmpmsg":{info:'The number of transferred <a href="https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml" target="_blank">IPv4 ICMP control messages</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv4.udppackets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv4 UDP Packets",desiredUnits:"Kpps",colors:s.default[4],layout:{x:9,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 UDP Packets",layout:{x:9,y:5,w:3,h:5}}],info:"The number of transferred UDP packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udperrors":{info:"<p>The number of errors encountered during transferring UDP packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udplite":{info:"The number of transferred UDP-Lite packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udplite_errors":{info:"<p>The number of errors encountered during transferring UDP-Lite packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcppackets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv4 TCP Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{x:6,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 TCP Packets",layout:{x:6,y:5,w:3,h:5}}],info:"<p>The number of packets transferred by the TCP layer.</p></p><b>Received</b> - received packets, including those received in error, such as checksum error, invalid TCP header, and so on. <b>Sent</b> - sent packets, excluding the retransmitted packets. But it includes the SYN, ACK, and RST packets.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpsock":{info:"The number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT. This is a snapshot of the established connections at the time of measurement (i.e. a connection established and a connection disconnected within the same iteration will not affect this metric).",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["connections"]},"ipv4.tcpopens":{info:"<p>TCP connection statistics.</p><p><b>Active</b> - number of outgoing TCP connections attempted by this host. <b>Passive</b> - number of incoming TCP connections accepted by this host.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["active"]},"ipv4.tcperrors":{info:"<p>TCP errors.</p><p><b>InErrs</b> - TCP segments received in error (including header too small, checksum errors, sequence errors, bad packets - for both IPv4 and IPv6). <b>InCsumErrors</b> - TCP segments received with checksum errors (for both IPv4 and IPv6). <b>RetransSegs</b> - TCP segments retransmitted.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["all"]},"ipv4.tcphandshake":{info:"<p>TCP handshake statistics.</p><p><b>EstabResets</b> - established connections resets (i.e. connections that made a direct transition from ESTABLISHED or CLOSE_WAIT to CLOSED). <b>OutRsts</b> - TCP segments sent, with the RST flag set (for both IPv4 and IPv6). <b>AttemptFails</b> - number of times TCP connections made a direct transition from either SYN_SENT or SYN_RECV to CLOSED, plus the number of times TCP connections made a direct transition from the SYN_RECV to LISTEN. <b>SynRetrans</b> - shows retries for new outbound TCP connections, which can indicate general connectivity issues or backlog on the remote host.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_sockets":{info:'The total number of used sockets for all <a href="https://man7.org/linux/man-pages/man7/address_families.7.html" target="_blank">address families</a> in this system.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["used"]},"ipv4.sockstat_tcp_sockets":{info:'<p>The number of TCP sockets in the system in certain <a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Protocol_operation" target="_blank">states</a>.</p><p><b>Alloc</b> - in any TCP state. <b>Orphan</b> - no longer attached to a socket descriptor in any user processes, but for which the kernel is still required to maintain state in order to complete the transport protocol. <b>InUse</b> - in any TCP state, excluding TIME-WAIT and CLOSED. <b>TimeWait</b> - in the TIME-WAIT state.</p>',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["alloc"]},"ipv4.sockstat_tcp_mem":{info:"The amount of memory used by allocated TCP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_udp_sockets":{info:"The number of used UDP sockets.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv4.sockstat_udp_mem":{info:"The amount of memory used by allocated UDP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_udplite_sockets":{info:"The number of used UDP-Lite sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_raw_sockets":{info:'The number of used <a href="https://en.wikipedia.org/wiki/Network_socket#Types" target="_blank"> raw sockets</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_frag_sockets":{info:"The number of entries in hash tables that are used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_frag_mem":{info:"The amount of memory used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"ipv6.packets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],"aggregation[1]":"sum",chartLibrary:"easypiechart",title:"Total IPv6 Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{x:0,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 Packets",layout:{x:0,y:5,w:3,h:5}}],info:'<p>IPv6 packet statistics for this host.</p><p><b>Received</b> - packets received by the IP layer. This counter will be increased even if the packet is dropped later. <b>Sent</b> - packets sent via IP layer, for both single cast and multicast packets. This counter does not include any packets counted in <b>Forwarded</b>. <b>Forwarded</b> - input packets for which this host was not their final IP destination, as a result of which an attempt was made to find a route to forward them to that final destination. In hosts which do not act as IP Gateways, this counter will include only those packets which were <a href="https://en.wikipedia.org/wiki/Source_routing" target="_blank">Source-Routed</a> and the Source-Route option processing was successful. <b>Delivers</b> - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.fragsout":{info:'<p><a href="https://en.wikipedia.org/wiki/IP_fragmentation" target="_blank">IPv6 fragmentation</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully fragmented. <b>Failed</b> - packets that have been discarded because they needed to be fragmented but could not be, e.g. due to <i>Don\'t Fragment</i> (DF) flag was set. <b>All</b> - fragments that have been generated as a result of fragmentation.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.fragsin":{info:'<p><a href="https://en.wikipedia.org/wiki/IP_fragmentation" target="_blank">IPv6 reassembly</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully reassembled. <b>Failed</b> - failures detected by the IP reassembly algorithm. This is not necessarily a count of discarded IP fragments since some algorithms can lose track of the number of fragments by combining them as they are received. <b>Timeout</b> - reassembly timeouts detected. <b>All</b> - received IP fragments which needed to be reassembled.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.errors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv6 Errors",desiredUnits:"Kpps",colors:s.default[3],layout:{x:3,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 Errors",layout:{x:3,y:5,w:3,h:5}}],info:"<p>The number of discarded IPv6 packets.</p><p><b>InDiscards</b>, <b>OutDiscards</b> - packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. <b>InHdrErrors</b> - errors in IP headers, including bad checksums, version number mismatch, other format errors, time-to-live exceeded, etc. <b>InAddrErrors</b> - invalid IP address or the destination IP address is not a local address and IP forwarding is not enabled. <b>InUnknownProtos</b> - unknown or unsupported protocol. <b>InTooBigErrors</b> - the size exceeded the link MTU. <b>InTruncatedPkts</b> - packet frame did not carry enough data. <b>InNoRoutes</b> - no route could be found while forwarding. <b>OutNoRoutes</b> - no route could be found for packets generated by this host.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.udppackets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv6 UDP Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{x:6,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 UDP Packets",layout:{x:6,y:5,w:3,h:5}}],info:"The number of transferred UDP packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udperrors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv6 UDP Errors",desiredUnits:"Kpps",colors:s.default[3],layout:{x:9,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 UDP Errors",layout:{x:9,y:5,w:3,h:5}}],info:"<p>The number of errors encountered during transferring UDP packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udplitepackets":{info:"The number of transferred UDP-Lite packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udpliteerrors":{info:"<p>The number of errors encountered during transferring UDP-Lite packets.</p><p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.mcast":{info:"Total IPv6 multicast traffic.",en:{instance:{one:"system",other:"systems"}}},"ipv6.bcast":{info:"Total IPv6 broadcast traffic.",en:{instance:{one:"system",other:"systems"}}},"ipv6.mcastpkts":{info:"Total transferred IPv6 multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmp":{aggregationMethod:"sum",info:"<p>The number of transferred ICMPv6 messages.</p><p><b>Received</b>, <b>Sent</b> - ICMP messages which the host received and attempted to send. Both these counters include errors.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpredir":{info:"The number of transferred ICMPv6 Redirect messages. These messages inform a host to update its routing information (to send packets on an alternative route).",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpechos":{info:"The number of ICMPv6 Echo messages.",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmperrors":{info:'<p>The number of ICMPv6 errors and <a href="https://www.rfc-editor.org/rfc/rfc4443.html#section-3" target="_blank">error messages</a>.</p><p><b>InErrors</b>, <b>OutErrors</b> - bad ICMP messages (bad ICMP checksums, bad length, etc.). <b>InCsumErrors</b> - wrong checksum.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.groupmemb":{info:"<p>The number of transferred ICMPv6 Group Membership messages.</p><p> Multicast routers send Group Membership Query messages to learn which groups have members on each of their attached physical networks. Host computers respond by sending a Group Membership Report for each multicast group joined by the host. A host computer can also send a Group Membership Report when it joins a new multicast group. Group Membership Reduction messages are sent when a host computer leaves a multicast group.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmprouter":{info:'<p>The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" target="_blank">Router Discovery</a> messages.</p><p>Router <b>Solicitations</b> message is sent from a computer host to any routers on the local area network to request that they advertise their presence on the network. Router <b>Advertisement</b> message is sent by a router on the local area network to announce its IP address as available for routing.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpneighbor":{info:'<p>The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" target="_blank">Neighbour Discovery</a> messages.</p><p>Neighbor <b>Solicitations</b> are used by nodes to determine the link layer address of a neighbor, or to verify that a neighbor is still reachable via a cached link layer address. Neighbor <b>Advertisements</b> are used by nodes to respond to a Neighbor Solicitation message.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpmldv2":{info:'The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Multicast_Listener_Discovery" target="_blank">Multicast Listener Discovery</a> (MLD) messages.',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmptypes":{info:'The number of transferred ICMPv6 messages of <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6#Types" target="_blank">certain types</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv6.ect":{info:"<p>Total number of received IPv6 packets with ECN bits set in the system.</p><p><b>CEP</b> - congestion encountered. <b>NoECTP</b> - non ECN-capable transport. <b>ECTP0</b> and <b>ECTP1</b> - ECN capable transport.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_tcp_sockets":{info:'The number of TCP sockets in any <a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Protocol_operation" target="_blank">state</a>, excluding TIME-WAIT and CLOSED.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv6.sockstat6_udp_sockets":{info:"The number of used UDP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_udplite_sockets":{info:"The number of used UDP-Lite sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_raw_sockets":{info:'The number of used <a href="https://en.wikipedia.org/wiki/Network_socket#Types" target="_blank"> raw sockets</a>.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv6.sockstat6_frag_sockets":{info:"The number of entries in hash tables that are used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"sctp.established":{aggregationMethod:"sum",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"SCTP Associations States",desiredUnits:"connections",colors:s.default[0],layout:{x:4,y:0,w:4,h:5}}],info:"The number of associations for which the current state is either ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING.",en:{instance:{one:"system",other:"systems"}}},"sctp.transitions":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Transitions",desiredUnits:"transitions",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}}],info:"<p>The number of times that associations have made a direct transition between states.</p><p><b>Active</b> - from COOKIE-ECHOED to ESTABLISHED. The upper layer initiated the association attempt. <b>Passive</b> - from CLOSED to ESTABLISHED. The remote endpoint initiated the association attempt. <b>Aborted</b> - from any state to CLOSED using the primitive ABORT. Ungraceful termination of the association. <b>Shutdown</b> - from SHUTDOWN-SENT or SHUTDOWN-ACK-SENT to CLOSED. Graceful termination of the association.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.packets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Packets",desiredUnits:"packets",colors:s.default[2],layout:{x:2,y:0,w:2,h:5}}],info:"<p>The number of transferred SCTP packets.</p><p><b>Received</b> - includes duplicate packets. <b>Sent</b> - includes retransmitted DATA chunks.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.packet_errors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Packet Errors",desiredUnits:"errors",colors:s.default[3],layout:{x:8,y:0,w:2,h:5}}],info:"<p>The number of errors encountered during receiving SCTP packets.</p><p><b>Invalid</b> - packets for which the receiver was unable to identify an appropriate association. <b>Checksum</b> - packets with an invalid checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.fragmentation":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Fragmentation",desiredUnits:"fragments",colors:s.default[4],layout:{x:10,y:0,w:2,h:5}}],info:"<p>The number of fragmented and reassembled SCTP messages.</p><p><b>Reassembled</b> - reassembled user messages, after conversion into DATA chunks. <b>Fragmented</b> - user messages that have to be fragmented because of the MTU.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.chunks":{aggregationMethod:"sum",info:"The number of transferred control, ordered, and unordered DATA chunks. Retransmissions and duplicates are not included.",en:{instance:{one:"system",other:"systems"}}},"netfilter.conntrack_sockets":{info:"The number of entries in the conntrack table.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_new":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Conntrack Connections Status",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"<p>Packet tracking statistics. <b>New</b> (since v4.9) and <b>Ignore</b> (since v5.10) are hardcoded to zeros in the latest kernel.</p><p><b>New</b> - conntrack entries added which were not expected before. <b>Ignore</b> - packets seen which are already connected to a conntrack entry. <b>Invalid</b> - packets seen which can not be tracked.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_changes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Conntrack Changes",desiredUnits:"changes",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"<p>The number of changes in conntrack tables.</p><p><b>Inserted</b>, <b>Deleted</b> - conntrack entries which were inserted or removed. <b>Delete-list</b> - conntrack entries which were put to dying list.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_expect":{info:'<p>The number of events in the "expect" table. Connection tracking expectations are the mechanism used to "expect" RELATED connections to existing ones. An expectation is a connection that is expected to happen in a period of time.</p><p><b>Created</b>, <b>Deleted</b> - conntrack entries which were inserted or removed. <b>New</b> - conntrack entries added after an expectation for them was already present.</p>',en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_search":{info:"<p>Conntrack table lookup statistics.</p><p><b>Searched</b> - conntrack table lookups performed. <b>Restarted</b> - conntrack table lookups which had to be restarted due to hashtable resizes. <b>Found</b> - conntrack table lookups which were successful.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_errors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Conntrack Errors",desiredUnits:"errors",colors:s.default[2],layout:{x:6,y:0,w:3,h:5}}],info:"<p>Conntrack errors.</p><p><b>IcmpError</b> - packets which could not be tracked due to error situation. <b>InsertFailed</b> - entries for which list insertion was attempted but failed (happens if the same entry is already present). <b>Drop</b> - packets dropped due to conntrack failure. Either new conntrack entry allocation failed, or protocol helper dropped the packet. <b>EarlyDrop</b> - dropped conntrack entries to make room for new ones, if maximum table size was reached.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_syn_received":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total TCP SYN Received",desiredUnits:"SYNs",colors:s.default[3],layout:{x:9,y:0,w:3,h:5}}],info:"The number of initial TCP SYN packets received from clients.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_conn_reopened":{info:"The number of reopened connections by new TCP SYN packets directly from the TIME-WAIT state.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_cookies":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"SYN Proxy Cookie Stats",desiredUnits:"cookies",colors:s.default[4],layout:{x:0,y:5,w:3,h:5}}],info:"<p>SYNPROXY cookie statistics.</p><p><b>Valid</b>, <b>Invalid</b> - result of cookie validation in TCP ACK packets received from clients. <b>Retransmits</b> - TCP SYN packets retransmitted to the server. It happens when the client repeats TCP ACK and the connection to the server is not yet established.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"apps.cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Application",layout:{x:0,y:0,w:2.4,h:5}}],info:"Total CPU utilization per application.",en:{instance:{one:"system",other:"systems"}}},"groups.cpu":{mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Group",layout:{x:0,y:0,w:2.4,h:5}}],info:"Total CPU utilization (all cores). It includes user, system and guest time.",en:{instance:{one:"system",other:"systems"}}},"users.cpu":{mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per User",layout:{x:0,y:0,w:2.4,h:5}}],info:"Total CPU utilization (all cores). It includes user, system and guest time.",en:{instance:{one:"system",other:"systems"}}},"apps.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"groups.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"users.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"apps.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"groups.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"users.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"apps.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"groups.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"users.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"apps.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk reads per Application",layout:{x:4.8,y:0,w:2.4,h:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Reads per Group",layout:{x:4.8,y:0,w:2.4,h:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Reads per User",layout:{x:4.8,y:0,w:2.4,h:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.pwrites":{mainheads:[{chartLibrary:"bars",title:"Total Disk Writes per Application",layout:{x:7.2,y:0,w:2.4,h:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.pwrites":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Writes per Group",layout:{x:7.2,y:0,w:2.4,h:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.pwrites":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Writes per User",layout:{x:7.2,y:0,w:2.4,h:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"groups.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"users.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"apps.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per Application",layout:{x:9.6,y:0,w:2.4,h:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"groups.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per Group",layout:{x:9.6,y:0,w:2.4,h:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"users.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per User",layout:{x:9.6,y:0,w:2.4,h:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"apps.mem":{info:"Real memory (RAM) used by applications. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"groups.mem":{info:"Real memory (RAM) used per user group. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"users.mem":{info:"Real memory (RAM) used per user. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"apps.rss":{info:"Applications Resident Set Size (RSS).",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Application",layout:{x:2.4,y:0,w:2.4,h:5}}]},"groups.rss":{info:"Applications Resident Set Size (RSS) per user group.",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Group",layout:{x:2.4,y:0,w:2.4,h:5}}]},"users.rss":{info:"Applications Resident Set Size (RSS) per user.",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per User",layout:{x:2.4,y:0,w:2.4,h:5}}]},"apps.vmem":{info:'Virtual memory allocated by applications. Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"groups.vmem":{info:'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"users.vmem":{info:'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"apps.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"groups.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"users.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"apps.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"groups.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"users.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"apps.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"groups.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"users.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"apps.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"users.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"groups.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"users.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"apps.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"groups.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"users.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"apps.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"groups.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"users.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"apps.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"groups.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"users.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"apps.file_open":{info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_open">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_open"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_open_error":{info:'Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_open_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_closed":{info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_closed">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_closed"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_close_error":{info:'Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_close_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_close_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_deleted":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_unlink">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_unlink">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_write_call":{info:'Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_write"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_write_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_write_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_read_call":{info:'Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_read"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_read_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_read_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_write_bytes":{info:'Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write_bytes">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_write_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_read_bytes":{info:'Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read_bytes">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_read_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_fsync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_sync">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_fsync_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_sync_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_open":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_open">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_open_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_open_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_create":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_create">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_create_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_create_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.process_create":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_process_create">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_process_create"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.thread_create":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a thread is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_thread_create">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_thread_create"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.task_exit":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible for closing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_process_exit">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.task_close":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible for releasing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_task_releease">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_task_release"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.task_error":{info:'Number of errors to create a new <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">task</a>. Netdata gives a summary for this chart in <a href="#ebpf_system_task_error">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_task_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.outbound_conn_v4":{info:'Number of calls to IPV4 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_services_outbound_conn_ipv4">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_outbound_conn_ipv4"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.outbound_conn_v6":{info:'Number of calls to IPV6 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_services_outbound_conn_ipv6">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_outbound_conn_ipv6"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.total_bandwidth_sent":{info:'Total bytes sent with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_services_bandwidth_sent">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.total_bandwidth_recv":{info:'Total bytes received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_services_bandwidth_received">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_received"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_tcp_send":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_bandwidth_tcp_sent">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_tcp_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_tcp_recv":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_bandwidth_tcp_received">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_tcp_received"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_tcp_retransmit":{info:'Number of times a <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">TCP</a> packet was retransmitted. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_retransmit">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_tcp_retransmit">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_udp_send":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_services_udp_sendmsg">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_udp_recv":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_services_udp_recv">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_udp_recv"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_ratio":{aggregationMethod:"avg",info:'The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata gives a summary for this chart in <a href="#menu_mem_submenu_page_cache">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_ratio">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_dirties":{info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_dirty">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_dirties">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_dirties"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_hits":{info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_hits">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_hits">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_misses":{info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_misses">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache misses per <a href="#ebpf_services_cachestat_misses">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_hit_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_hit_ratio">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_hit">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_hit"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_reference":{info:'Number of times a file is accessed inside <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_reference">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_not_cache":{info:'Number of times a file is accessed in the file system, because it is not present inside the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_not_cache">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_not_cache"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_not_found":{info:'Number of times a file was not found on the file system. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_not_found">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_not_found"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.swap_read_call":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap">swap reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows swap metrics per <a href="#ebpf_services_swap_read">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_swap_read"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.swap_write_call":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap">swap writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows swap metrics per <a href="#ebpf_services_swap_write">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_swap_write"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmget_call":{info:'Number of calls to <b>shmget</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_get">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_get"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmat_call":{info:'Number of calls to <b>shmat</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_at">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_at"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmdt_call":{info:'Number of calls to <b>shmdt</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_dt">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_dt"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmctl_call":{info:'Number of calls to <b>shmctl</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_ctl">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_ctl"></div>',en:{instance:{one:"system",other:"systems"}}},"tc.qos":{info:"Network Interface traffic per QoS class",family:"traffic",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Traffic per QoS Class",layout:{x:0,y:0,w:6,h:5}}]},"tc.qos_packets":{family:"packets",info:"Network Interface packets per QoS class",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum"},"tc.qos_dropped":{family:"drops",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Packets dropped per QoS Class",layout:{x:6,y:0,w:6,h:5}}],info:"Network Interface packets dropped per QoS class",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum"},"tc.qos_tokens":{family:"tokens",info:"Class Tokens.",en:{instance:{one:"interface",other:"interfaces"}}},"tc.qos_ctokens":{family:"tokens",info:"Class cTokens.",en:{instance:{one:"interface",other:"interfaces"}}},"net.net":{family:"traffic",aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],valueRange:[0,null],layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],valueRange:[0,null],layout:{x:3,y:0,w:3,h:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"net.packets":{family:"packets",aggregationMethod:"sum",info:a,en:{instance:{one:"interface",other:"interfaces"}}},"net.errors":{family:"errors",aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{x:6,y:0,w:3,h:5}}],info:o,en:{instance:{one:"interface",other:"interfaces"}}},"net.fifo":{family:"errors",info:i,en:{instance:{one:"interface",other:"interfaces"}}},"net.drops":{family:"drops",aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{x:9,y:0,w:3,h:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"net.compressed":{family:"compression",info:l,en:{instance:{one:"interface",other:"interfaces"}}},"net.events":{family:"errors",info:d,en:{instance:{one:"interface",other:"interfaces"}}},"net.duplex":{family:"duplex",info:h,en:{instance:{one:"interface",other:"interfaces"}}},"net.operstate":{family:"state",info:u,en:{instance:{one:"interface",other:"interfaces"}}},"net.carrier":{family:"state",info:m,en:{instance:{one:"interface",other:"interfaces"}}},"net.speed":{family:"speed",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maximum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{x:0,y:5,w:3,h:5}}],info:p,en:{instance:{one:"interface",other:"interfaces"}}},"net.mtu":{family:"mtu",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{x:3,y:5,w:3,h:5}}],info:f,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_net":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],layout:{x:4,y:10,w:2,h:5}},{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],layout:{x:6,y:10,w:2,h:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_packets":{info:a,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_errors":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{x:15,y:0,w:3,h:5}}],info:o,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_fifo":{info:i,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_drops":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{x:9,y:0,w:3,h:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_compressed":{info:l,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_events":{info:d,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_duplex":{info:h,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_operstate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Interface Operational States",layout:{x:10,y:10,w:2,h:5}}],info:u,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_carrier":{info:m,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_speed":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maxinum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{x:0,y:5,w:3,h:5}}],info:p,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_mtu":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",groupingMethod:"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{x:8,y:10,w:2,h:5}}],info:f,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_net":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],layout:{x:2,y:0,w:3,h:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_packets":{info:a,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_errors":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{x:6,y:0,w:2,h:5}}],info:o,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_fifo":{info:i,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_drops":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{x:8,y:0,w:2,h:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_compressed":{info:l,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_events":{info:d,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_operstate":{info:u,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_duplex":{info:h,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_carrier":{info:m,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_speed":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maxinum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{x:10,y:5,w:2,h:5}}],info:p,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_mtu":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{x:4,y:0,w:2,h:5}}],info:f,en:{instance:{one:"interface",other:"interfaces"}}},"docker.containers_state":{en:{instance:{one:"system",other:"systems"}}},"docker.container_state":{en:{instance:{one:"container",other:"containers"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Docker Container States",desiredUnits:"containers",layout:{x:0,y:0,w:3,h:5}}]},"docker.container_health_status":{en:{instance:{one:"container",other:"containers"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Docker Container Health Status",desiredUnits:"containers",layout:{x:3,y:0,w:3,h:5}}]},"docker.healthy_containers":{en:{instance:{one:"system",other:"systems"}}},"docker.unhealthy_containers":{en:{instance:{one:"system",other:"systems"}}},"docker.images":{en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,colors:s.default[6],title:"Total Docker Images",desiredUnits:"Images",layout:{x:6,y:0,w:3,h:5}}]},"docker.images_size":{en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Images Size",layout:{x:9,y:0,w:3,h:5}}]},"wireless.link_quality":{family:"quality",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Wireless Link Quality"}],info:"Overall quality of the link. May be based on the level of contention or interference, the bit or frame error rate, how good the received signal is, some timing synchronisation, or other hardware metric.",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.signal_level":{family:"signal",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Signal Level"}],info:'Received signal strength (<a href="https://en.wikipedia.org/wiki/Received_signal_strength_indication" target="_blank">RSSI</a>).',en:{instance:{one:"interface",other:"interfaces"}}},"wireless.noise_level":{family:"noise",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Noise Level"}],info:"Background noise level (when no packet is transmitted).",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.discarded_packets":{family:"errors",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Discarded Packets"}],info:"<p>The number of discarded packets.</p></p><b>NWID</b> - received packets with a different NWID or ESSID. Used to detect configuration problems or adjacent network existence (on the same frequency). <b>Crypt</b> - received packets that the hardware was unable to code/encode. This can be used to detect invalid encryption settings. <b>Frag</b> - received packets for which the hardware was not able to properly re-assemble the link layer fragments (most likely one was missing). <b>Retry</b> - packets that the hardware failed to deliver. Most MAC protocols will retry the packet a number of times before giving up. <b>Misc</b> - other packets lost in relation with specific wireless operations.</p>",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.missed_beacons":{family:"errors",info:'The number of periodic <a href="https://en.wikipedia.org/wiki/Beacon_frame" target="_blank">beacons</a> from the Cell or the Access Point have been missed. Beacons are sent at regular intervals to maintain the cell coordination, failure to receive them usually indicates that the card is out of range.',en:{instance:{one:"interface",other:"interfaces"}}},"ib.bytes":{info:"The amount of traffic transferred by the port."},"ib.packets":{info:"The number of packets transferred by the port."},"ib.errors":{info:"The number of errors encountered by the port."},"ib.hwerrors":{info:"The number of hardware errors encountered by the port."},"ib.hwpackets":{info:"The number of hardware packets transferred by the port."},"netfilter.sockets":{en:{instance:{one:"firewall",other:"firewalls"}},colors:s.default[7],heads:[]},"netfilter.new":{en:{instance:{one:"firewall",other:"firewalls"}},heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"New Connections",selectedDimensions:["new"],colors:s.default[19]}]},"ipvs.sockets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Created Connections",layout:{x:6,y:0,w:4,h:5},colors:s.default[12]}],info:"Total created connections for all services and their servers. To see the IPVS connection table, run <b>ipvsadm -Lnc</b>.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"ipvs.packets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Received Packets",layout:{x:9,y:0,w:2,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Sent Packets",layout:{x:12,y:0,w:2,h:5},colors:s.default[1]}],info:"Total transferred packets for all services and their servers.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"ipvs.net":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Received Bandwidth",layout:{x:0,y:0,w:2,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Sent Bandwidth",layout:{x:3,y:0,w:2,h:5},colors:s.default[1]}],info:"Total network traffic for all services and their servers.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"disk.util":{family:"utilization",aggregationMethod:"avg",colors:s.default[5],mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"gauge",title:"Utilization",colors:s.default[0],valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Utilization",layout:{x:3,y:5,w:3,h:5}}],info:"Disk Utilization measures the amount of time the disk was busy with something. This is not related to its performance. 100% means that the system always had an outstanding operation on the disk. Keep in mind that depending on the underlying technology of the disk, 100% here may or may not be an indication of congestion.",en:{instance:{one:"disk",other:"disks"}}},"disk.busy":{family:"utilization",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Utilization",colors:s.default[0],valueRange:[0,100],layout:{x:6,y:10,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Busy Time",layout:{x:9,y:10,w:3,h:5}}],colors:s.default[4],info:"Disk Busy Time measures the amount of time the disk was busy with something.",en:{instance:{one:"disk",other:"disks"}}},"disk.backlog":{family:"utilization",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk Backlog",colors:s.default[12],layout:{x:6,y:5,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Backlog",layout:{x:9,y:5,w:3,h:5}}],colors:s.default[8],info:"Backlog is an indication of the duration of pending disk operations. On every I/O event the system is multiplying the time spent doing I/O since the last update of this field with the number of pending operations. While not accurate, this metric can provide an indication of the expected completion time of the operations in progress.",en:{instance:{one:"disk",other:"disks"}}},"disk.io":{family:"io",info:"The amount of data transferred to and from disk.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.io":{family:"io",info:"The amount of discarded data that are no longer in use by a mounted file system.",en:{instance:{one:"disk",other:"disks"}}},"disk.ops":{family:"iops",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Read IOPS",selectedDimensions:["reads"],colors:s.default[2],layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",selectedDimensions:["reads"],title:"Top Disks by Read IOPS",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Write IOPS",selectedDimensions:["writes"],colors:s.default[1],layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",selectedDimensions:["writes"],title:"Top Disks by Write IOPS",layout:{x:9,y:0,w:3,h:5}}],info:"Completed disk I/O operations. Keep in mind the number of operations requested might be higher, since the system is able to merge adjacent to each other (see merged operations chart).",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.ops":{family:"iops",info:"<p>The number (after merges) of completed discard/flush requests.</p><p><b>Discard</b> commands inform disks which blocks of data are no longer considered to be in use and therefore can be erased internally. They are useful for solid-state drivers (SSDs) and thinly-provisioned storage. Discarding/trimming enables the SSD to handle garbage collection more efficiently, which would otherwise slow future write operations to the involved blocks down.</p><p><b>Flush</b> operations transfer all modified in-core data (i.e., modified buffer cache pages) to the disk device so that all changed information can be retrieved even if the system crashes or is rebooted. Flush requests are executed by disks. Flush requests are not tracked for partitions. Before being merged, flush operations are counted as writes.</p>",en:{instance:{one:"disk",other:"disks"}}},"disk.qops":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk Current I/O Operations",colors:s.default[12],layout:{x:0,y:10,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Current I/O Operations",layout:{x:3,y:10,w:3,h:5}}],info:"I/O operations currently in progress. This metric is a snapshot - it is not an average over the last interval.",en:{instance:{one:"disk",other:"disks"}}},"disk.iotime":{family:"iotime",aggregationMethod:"avg",info:"The sum of the duration of all completed I/O operations. This number can exceed the interval if the disk is able to execute I/O operations in parallel.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.iotime":{family:"iotime",aggregationMethod:"avg",info:"The sum of the duration of all completed discard/flush operations. This number can exceed the interval if the disk is able to execute discard/flush operations in parallel.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk.mops":{family:"iops",info:"The number of merged disk operations. The system is able to merge adjacent I/O operations, for example two 4KB reads can become one 8KB read before given to disk.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.mops":{family:"iops",info:"The number of merged discard disk operations. Discard operations which are adjacent to each other may be merged for efficiency.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk.svctm":{family:"iotime",aggregationMethod:"avg",info:"The average service time for completed I/O operations. This metric is calculated using the total busy time of the disk and the number of completed operations. If the disk is able to execute multiple parallel operations the reporting average service time will be misleading.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["svctm"]},"disk.latency_io":{family:"latency",aggregationMethod:"avg",info:'Disk I/O <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#disk-latency" target="_blank">latency</a> is the time it takes for an I/O request to be completed. Disk chart has a relationship with <a href="#filesystem">Filesystem</a> charts. This chart is based on the <a href="https://github.com/cloudflare/ebpf_exporter/blob/master/examples/bio-tracepoints.yaml" target="_blank">bio_tracepoints</a> tool of the ebpf_exporter.'+g,en:{instance:{one:"disk",other:"disks"}}},"disk.avgsz":{family:"size",info:"The average I/O operation size.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.avgsz":{family:"size",info:"The average discard operation size.",en:{instance:{one:"disk",other:"disks"}}},"disk.await":{family:"iotime",aggregationMethod:"avg",info:"The average time for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.await":{family:"iowait",aggregationMethod:"avg",info:"The average time for discard/flush requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.",en:{instance:{one:"disk",other:"disks"}}},"disk.space":{family:"utilization",mainheads:[{chartLibrary:"d3pie",title:"Disk Space Usage",layout:{x:0,y:0,w:3,h:5}}],info:"Disk space utilization. reserved for root is automatically reserved by the system to prevent the root user from getting out of space.",en:{instance:{one:"mount",other:"mounts"}}},"disk.inodes":{family:"inodes",mainheads:[{chartLibrary:"d3pie",title:"Disk Files Usage",layout:{x:3,y:0,w:3,h:5}}],info:"Inodes (or index nodes) are filesystem objects (e.g. files and directories). On many types of file system implementations, the maximum number of inodes is fixed at filesystem creation, limiting the maximum number of files the filesystem can hold. It is possible for a device to run out of inodes. When this happens, new files cannot be created on the device, even though there may be free space available.",en:{instance:{one:"mount",other:"mounts"}}},"disk.bcache_hit_ratio":{family:"cache",aggregationMethod:"avg",info:"<p><b>Bcache (block cache)</b> is a cache in the block layer of Linux kernel, which is used for accessing secondary storage devices. It allows one or more fast storage devices, such as flash-based solid-state drives (SSDs), to act as a cache for one or more slower storage devices, such as hard disk drives (HDDs).</p><p>Percentage of data requests that were fulfilled right from the block cache. Hits and misses are counted per individual IO as bcache sees them. A partial hit is counted as a miss.</p>",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_rates":{family:"cache",aggregationMethod:"avg",info:"Throttling rates. To avoid congestions bcache tracks latency to the cache device, and gradually throttles traffic if the latency exceeds a threshold. If the writeback percentage is nonzero, bcache tries to keep around this percentage of the cache dirty by throttling background writeback and using a PD controller to smoothly adjust the rate.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_size":{family:"cache",info:"The amount of dirty data for this backing device in the cache.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_usage":{family:"cache",aggregationMethod:"avg",info:"The percentage of cache device which does not contain dirty data, and could potentially be used for writeback.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_cache_read_races":{family:"cache",info:"<b>Read races</b> happen when a bucket was reused and invalidated while data was being read from the cache. When this occurs the data is reread from the backing device. <b>IO errors</b> are decayed by the half life. If the decaying count reaches the limit, dirty data is written out and the cache is disabled.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache":{family:"cache",info:"Hits and misses are counted per individual IO as bcache sees them; a partial hit is counted as a miss. Collisions happen when data was going to be inserted into the cache from a cache miss, but raced with a write and data was already present. Cache miss reads are rounded up to the readahead size, but without overlapping existing cache entries.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_bypass":{family:"cache",info:"Hits and misses for IO that is intended to skip the cache.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_cache_alloc":{family:"cache",aggregationMethod:"avg",info:"<p>Working set size.</p><p><b>Unused</b> is the percentage of the cache that does not contain any data. <b>Dirty</b> is the data that is modified in the cache but not yet written to the permanent storage. <b>Clean</b> data matches the data stored on the permanent storage. <b>Metadata</b> is bcache's metadata overhead.</p>",en:{instance:{one:"disk",other:"disks"}}},"nfs.net":{info:"The number of received UDP and TCP packets.",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total received packets"}],en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.rpc":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"RPC Statistics"}],info:"<p>Remote Procedure Call (RPC) statistics.</p></p><b>Calls</b> - all RPC calls. <b>Retransmits</b> - retransmitted calls. <b>AuthRefresh</b> - authentication refresh calls (validating credentials with the server).</p>",en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc2":{info:'NFSv2 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1094#section-2.2" target="_blank">RFC1094</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc3":{info:'NFSv3 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1813#section-3" target="_blank">RFC1813</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc4":{info:'NFSv4 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfsd.readcache":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"NFS Reply Cache Statistics"}],info:"<p>Reply cache statistics. The reply cache keeps track of responses to recently performed non-idempotent transactions, and in case of a replay, the cached response is sent instead of attempting to perform the operation again.</p><b>Hits</b> - client did not receive a reply and re-transmitted its request. This event is undesirable. <b>Misses</b> - an operation that requires caching (idempotent). <b>Nocache</b> - an operation that does not require caching (non-idempotent).",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.filehandles":{info:"<p>File handle statistics. File handles are small pieces of memory that keep track of what file is opened.</p><p><b>Stale</b> - happen when a file handle references a location that has been recycled. This also occurs when the server loses connection and applications are still using files that are no longer accessible.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.io":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"NFS IO Statistics"}],info:"The amount of data transferred to and from disk.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.threads":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"NFS Daemon Threads"}],info:"The number of threads used by the NFS daemon.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.readahead":{info:"<p>Read-ahead cache statistics. NFS read-ahead predictively requests blocks from a file in advance of I/O requests by the application. It is designed to improve client sequential read throughput.</p><p><b>10%</b>-<b>100%</b> - histogram of depth the block was found. This means how far the cached block is from the original block that was first requested. <b>Misses</b> - not found in the read-ahead cache.</p>",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.net":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Packets received"}],info:"The number of received UDP and TCP packets.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.rpc":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"RPC Statistics"}],info:"<p>Remote Procedure Call (RPC) statistics.</p></p><b>Calls</b> - all RPC calls. <b>BadAuth</b> - bad authentication. It does not count if you try to mount from a machine that it's not in your exports file. <b>BadFormat</b> - other errors.</p>",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc2":{info:'NFSv2 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1094#section-2.2" target="_blank">RFC1094</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc3":{info:'NFSv3 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1813#section-3" target="_blank">RFC1813</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc4":{info:'NFSv4 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc4ops":{info:'NFSv4 RPC operations. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"zfs.arc_size":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average ZFS ARC Size"}],info:"<p>The size of the ARC.</p><p><b>Arcsz</b> - actual size. <b>Target</b> - target size that the ARC is attempting to maintain (adaptive). <b>Min</b> - minimum size limit. When the ARC is asked to shrink, it will stop shrinking at this value. <b>Max</b> - maximum size limit.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.l2_size":{info:"<p>The size of the L2ARC.</p><p><b>Actual</b> - size of compressed data. <b>Size</b> - size of uncompressed data.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.reads":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Read Requests"}],info:"<p>The number of read requests.</p><p><b>ARC</b> - all prefetch and demand requests. <b>Demand</b> - triggered by an application request. <b>Prefetch</b> - triggered by the prefetch mechanism, not directly from an application request. <b>Metadata</b> - metadata read requests. <b>L2</b> - L2ARC read requests.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.bytes":{info:"The amount of data transferred to and from the L2ARC cache devices.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hits":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Hit Rate of ARC Read Requests"}],info:"<p>Hit rate of the ARC read requests.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.dhits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data and metadata demand read requests. Demand requests are triggered by an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.phits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data and metadata prefetch read requests. Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.mhits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC metadata read requests.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.l2hits":{aggregationMethod:"avg",info:"<p>Hit rate of the L2ARC lookups.</p></p><b>Hits</b> - a data block was in the L2ARC cache and returned. <b>Misses</b> - a data block was not in the L2ARC cache. It will be read from the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.demand_data_hits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data demand read requests. Demand requests are triggered by an application request.</p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.prefetch_data_hits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data prefetch read requests. Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.list_hits":{info:"MRU (most recently used) and MFU (most frequently used) cache list hits. MRU and MFU lists contain metadata for requested blocks which are cached. Ghost lists contain metadata of the evicted pages on disk.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.arc_size_breakdown":{aggregationMethod:"avg",info:"The size of MRU (most recently used) and MFU (most frequently used) cache.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.memory_ops":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Memory Operation Statistics"}],info:"<p>Memory operation statistics.</p><p><b>Direct</b> - synchronous memory reclaim. Data is evicted from the ARC and free slabs reaped. <b>Throttled</b> - number of times that ZFS had to limit the ARC growth. A constant increasing of the this value can indicate excessive pressure to evict data from the ARC. <b>Indirect</b> - asynchronous memory reclaim. It reaps free slabs from the ARC cache.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.important_ops":{info:"<p>Eviction and insertion operation statistics.</p><p><b>EvictSkip</b> - skipped data eviction operations. <b>Deleted</b> - old data is evicted (deleted) from the cache. <b>MutexMiss</b> - an attempt to get hash or data block mutex when it is locked during eviction. <b>HashCollisions</b> - occurs when two distinct data block numbers have the same hash value.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.actual_hits":{aggregationMethod:"avg",info:"<p>MRU and MFU cache hit rate.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hash_elements":{info:"<p>Data Virtual Address (DVA) hash table element statistics.</p><p><b>Current</b> - current number of elements. <b>Max</b> - maximum number of elements seen.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hash_chains":{info:"<p>Data Virtual Address (DVA) hash table chain statistics. A chain is formed when two or more distinct data block numbers have the same hash value.</p><p><b>Current</b> - current number of chains. <b>Max</b> - longest length seen for a chain. If the value is high, performance may degrade as the hash locks are held longer while the chains are walked.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfspool.state":{info:'ZFS pool state. The overall health of a pool, as reported by <b>zpool status</b>, is determined by the aggregate state of all devices within the pool. For states description, see <a href="https://openzfs.github.io/openzfs-docs/man/7/zpoolconcepts.7.html#Device_Failure_and_Recovery" target="_blank"> ZFS documentation</a>.',en:{instance:{one:"ZFS pool",other:"ZFS pools"}}},"mysql.net":{info:"The amount of data sent to mysql clients (<strong>out</strong>) and received from mysql clients (<strong>in</strong>).",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.queries":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"No. of Slow Queries",selectedDimensions:["slow_queries"],desiredUnits:"queries",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:'The number of statements executed by the server.<ul><li><strong>queries</strong> counts the statements executed within stored SQL programs.</li><li><strong>questions</strong> counts the statements sent to the mysql server by mysql clients.</li><li><strong>slow queries</strong> counts the number of statements that took more than <a href="http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_long_query_time" target="_blank">long_query_time</a> seconds to be executed. For more information about slow queries check the mysql <a href="http://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html" target="_blank">slow query log</a>.</li></ul>',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.handlers":{info:'Usage of the internal handlers of mysql. This chart provides very good insights of what the mysql server is actually doing. (if the chart is not showing all these dimensions it is because they are zero - set <strong>Which dimensions to show?</strong> to <strong>All</strong> from the dashboard settings, to render even the zero values)<ul><li><strong>commit</strong>, the number of internal <a href="http://dev.mysql.com/doc/refman/5.7/en/commit.html" target="_blank">COMMIT</a> statements.</li><li><strong>delete</strong>, the number of times that rows have been deleted from tables.</li><li><strong>prepare</strong>, a counter for the prepare phase of two-phase commit operations.</li><li><strong>read first</strong>, the number of times the first entry in an index was read. A high value suggests that the server is doing a lot of full index scans; e.g. <strong>SELECT col1 FROM foo</strong>, with col1 indexed.</li><li><strong>read key</strong>, the number of requests to read a row based on a key. If this value is high, it is a good indication that your tables are properly indexed for your queries.</li><li><strong>read next</strong>, the number of requests to read the next row in key order. This value is incremented if you are querying an index column with a range constraint or if you are doing an index scan.</li><li><strong>read prev</strong>, the number of requests to read the previous row in key order. This read method is mainly used to optimize <strong>ORDER BY ... DESC</strong>.</li><li><strong>read rnd</strong>, the number of requests to read a row based on a fixed position. A high value indicates you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan entire tables or you have joins that do not use keys properly.</li><li><strong>read rnd next</strong>, the number of requests to read the next row in the data file. This value is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.</li><li><strong>rollback</strong>, the number of requests for a storage engine to perform a rollback operation.</li><li><strong>savepoint</strong>, the number of requests for a storage engine to place a savepoint.</li><li><strong>savepoint rollback</strong>, the number of requests for a storage engine to roll back to a savepoint.</li><li><strong>update</strong>, the number of requests to update a row in a table.</li><li><strong>write</strong>, the number of requests to insert a row in a table.</li></ul>',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.table_locks":{info:"MySQL table locks counters: <ul><li><strong>immediate</strong>, the number of times that a request for a table lock could be granted immediately.</li><li><strong>waited</strong>, the number of times that a request for a table lock could not be granted immediately and a wait was needed. If this is high and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.</li></ul>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_deadlocks":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total No. of Deadlocks",desiredUnits:"deadlocks",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:'A deadlock happens when two or more transactions mutually hold and request for locks, creating a cycle of dependencies. For more information about <a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlocks-handling.html" target="_blank">how to minimize and handle deadlocks</a>.',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Galera Cluster Status",desiredUnits:"%",colors:s.default[2],layout:{x:6,y:0,w:3,h:5}}],info:"<p>Status of this cluster component.</p><p><b>Primary</b> - primary group configuration, quorum present. <b>Non-Primary</b> - non-primary group configuration, quorum lost. <b>Disconnected</b> - not connected to group, retrying.</p>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_state":{info:"<p>Membership state of this cluster component.</p><p><b>Undefined</b> - undefined state. <b>Joining</b> - the node is attempting to join the cluster. <b>Donor</b> - the node has blocked itself while it sends a State Snapshot Transfer (SST) to bring a new node up to date with the cluster. <b>Joined</b> - the node has successfully joined the cluster. <b>Synced</b> - the node has established a connection with the cluster and synchronized its local databases with those of the cluster. <b>Error</b> - the node is not part of the cluster and does not replicate transactions. This state is provider-specific, check <i>wsrep_local_state_comment</i> variable for a description.</p>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_weight":{info:"The value is counted as a sum of <b>pc.weight</b> of the nodes in the current Primary Component.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_connected":{info:"<b>0</b> means that the node has not yet connected to any of the cluster components. This may be due to misconfiguration.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.open_transactions":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Open Transactions",desiredUnits:"transactions",colors:s.default[3],layout:{x:9,y:0,w:3,h:5}}],info:"The number of locally running transactions which have been registered inside the wsrep provider. This means transactions which have made operations which have caused write set population to happen. Transactions which are read only are not counted.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.table_open_cache_overflows":{info:"The number of overflows in the table open cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the table open cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.join_issues":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"MySQL Join Operation Issues",desiredUnits:"issues",layout:{x:0,y:5,w:3,h:5}}],info:"The number of issues with joins on the MySQL server. Monitoring this metric can help identify potential performance issues related to joins.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.sort_issues":{info:"The number of issues with sorts on the MySQL server. Monitoring this metric can help identify potential performance issues related to sorting.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.tmp":{info:"The usage of temporary files on the MySQL server. Monitoring this metric can help identify potential performance issues related to temporary files.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.threads_created":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Number of MySQL threads",desiredUnits:"threads",colors:s.default[4],layout:{x:0,y:5,w:3,h:5}}],info:"The number of threads that have been created on the MySQL server. Monitoring this metric can help identify potential performance issues related to thread creation.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.thread_cache_misses":{info:"The number of thread cache misses on the MySQL server. Monitoring this metric can help identify potential performance issues related to the thread cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io":{info:"The I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io_ops":{info:"The number of I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io_pending_ops":{info:"The number of pending I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_log":{info:"The usage of the InnoDB log on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_cur_row_lock":{info:"The number of current row locks on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to row locking on the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_rows":{info:"The number of rows on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify the usage patterns of the InnoDB storage engine and potential performance issues.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_pages":{info:"The number of pages in the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_pages_flushed":{info:"The number of pages flushed from the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_bytes":{info:"The amount of memory used by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_read_ahead":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"InnoDB Buffer Pool Read Ahead",desiredUnits:"pages/s",colors:s.default[6],layout:{x:6,y:5,w:3,h:5}}],info:"The amount of read ahead performed by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to read ahead on the InnoDB buffer.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_read_ahead_rnd":{info:"The amount of random read ahead performed by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to random read ahead on the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_ops":{info:"The number of operations on the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_os_log":{info:"The usage of the InnoDB OS log on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB OS log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.files":{info:"The number of files opened by the MySQL server. Monitoring this metric can help identify potential performance issues related to file opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.files_rate":{info:"The rate of file opening by the MySQL server. Monitoring this metric can help identify potential performance issues related to file opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.opened_tables":{info:"The number of tables opened by the MySQL server. Monitoring this metric can help identify potential performance issues related to table opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.process_list_fetch_query_duration":{info:"The duration of queries in the process list on the MySQL server. Monitoring this metric can help identify potential performance issues related to queries in the process list.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.process_list_longest_query_duration":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Longest Query Duration",colors:s.default[7],layout:{x:9,y:5,w:3,h:5}}],info:"The duration of the longest query in the process list on the MySQL server. Monitoring this metric can help identify potential performance issues related to long running queries in the process list.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_ops":{info:"The number of operations on the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache":{info:"The usage of the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_freemem":{info:"The amount of free memory in the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache memory usage.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_memblocks":{info:"The number of memory blocks in the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache memory usage.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_bytes":{info:"The number of bytes in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_queue":{info:"The length of the Galera queue on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_flow_control":{info:"The status of the flow control in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_size":{info:"The size of the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_ready":{info:"The status of the Galera cluster on the MySQL server, indicating whether it is ready for write sets. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_open_transactions":{info:"The number of open transactions in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.key_blocks":{info:"The number of blocks in the key cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the key cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.binlog_cache":{info:"The usage of the binary log cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.binlog_stmt_cache":{info:"The usage of the binary log statement cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log statement cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.slave_behind":{info:"The lag of the slave in the replication on the MySQL server. Monitoring this metric can help identify potential performance issues related to the replication process.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_cpu":{aggregationMethod:"avg",info:"The amount of CPU time used by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to CPU usage by users.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_rows":{info:"The number of rows accessed by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user access to rows.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_commands":{info:"The number of commands executed by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user commands.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_denied_commands":{info:"The number of denied commands for each user on the MySQL server. Monitoring this metric can help identify potential security issues related to user commands.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_binlog_written":{info:"The amount of data written to the binary log by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_connections":{info:"The number of connections for each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_lost_connections":{info:"The number of lost connections for each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_denied_connections":{info:"The number of denied connections for each user on the MySQL server. Monitoring this metric can help identify potential security issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"ping.host_rtt":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Host Latency",layout:{x:6,y:0,w:3,h:5}}],info:"Round-trip time (RTT) is the time it takes for a data packet to reach its destination and return back to its original source.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_std_dev_rtt":{aggregationMethod:"avg",info:"Round-trip time (RTT) standard deviation. The average value of how far each RTT of a ping differs from the average RTT.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_packet_loss":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maximum Host Packet Loss",desiredUnits:"percentage",colors:s.default[1],valueRange:[0,100],layout:{x:9,y:0,w:3,h:5}}],info:"Packet loss occurs when one or more transmitted data packets do not reach their destination. Usually caused by data transfer errors, network congestion or firewall blocking. ICMP echo packets are often treated as lower priority by routers and target hosts, so ping test packet loss may not always translate to application packet loss.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_packets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Ping Packets Received",colors:s.default[2],valueRange:[0,null],layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Ping Packets Sent",colors:s.default[1],valueRange:[0,null],layout:{x:3,y:0,w:3,h:5}}],info:"Number of ICMP messages sent and received. These counters should be equal if there is no packet loss.",en:{instance:{one:"ping host",other:"ping hosts"}}},"nvme.device_estimated_endurance_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"gauge",title:"Lowest Endurance on device",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[7],layout:{x:0,y:0,w:3,h:5}}],info:"NVM subsystem lifetime used based on the actual usage and the manufacturer's prediction of NVM life. A value of 100 indicates that the estimated endurance of the device has been consumed, but may not indicate a device failure. The value can be greater than 100 if you use the storage beyond its planned lifetime.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_available_spare_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Available Spare Capacity",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[7],layout:{x:3,y:0,w:3,h:5}}],info:"Remaining spare capacity that is available. SSDs provide a set of internal spare capacity, called spare blocks, that can be used to replace blocks that have reached their write operation limit. After all of the spare blocks have been used, the next block that reaches its limit causes the disk to fail.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_composite_temperature":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Maximum device Temperature",desiredUnits:"celcius",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The current composite temperature of the controller and namespace(s) associated with that controller. The manner in which this value is computed is implementation specific and may not represent the actual temperature of any physical point in the NVM subsystem.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_io_transferred_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total IO Transfer per device",desiredUnits:"seconds",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:"The total amount of data read and written by the host.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_power_cycles_count":{info:"Power cycles reflect the number of times this host has been rebooted or the device has been woken up after sleep. A high number of power cycles does not affect the device's life expectancy.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_power_on_time":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Maximum Power On Time",desiredUnits:"seconds",colors:s.default[7],layout:{x:0,y:5,w:3,h:5}}],info:"<a href='https://en.wikipedia.org/wiki/Power-on_hours' target='_blank'>Power-on time</a> is the length of time the device is supplied with power.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_unsafe_shutdowns_count":{info:"The number of times a power outage occurred without a shutdown notification being sent. Depending on the NVMe device you are using, an unsafe shutdown can corrupt user data.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_critical_warnings_state":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Maximum No. of Critical / Warnings",desiredUnits:"seconds",colors:s.default[7],layout:{x:3,y:5,w:3,h:5}}],info:"<p>Critical warnings for the status of the controller. Status active if set to 1.</p><p><b>AvailableSpare</b> - the available spare capacity is below the threshold. <b>TempThreshold</b> - the composite temperature is greater than or equal to an over temperature threshold or less than or equal to an under temperature threshold. <b>NvmSubsystemReliability</b> - the NVM subsystem reliability is degraded due to excessive media or internal errors. <b>ReadOnly</b> - media is placed in read-only mode. <b>VolatileMemBackupFailed</b> - the volatile memory backup device has failed. <b>PersistentMemoryReadOnly</b> - the Persistent Memory Region has become read-only or unreliable.</p>",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_media_errors_rate":{info:"The number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this counter.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_error_log_entries_rate":{info:"The number of entries in the Error Information Log. By itself, an increase in the number of records is not an indicator of any failure condition.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_warning_composite_temperature_time":{info:"The time the device has been operating above the Warning Composite Temperature Threshold (WCTEMP) and below Critical Composite Temperature Threshold (CCTEMP).",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_critical_composite_temperature_time":{info:"The time the device has been operating above the Critical Composite Temperature Threshold (CCTEMP).",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp1_transitions_rate":{info:"The number of times the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>minimizing performance impact</b>, to attempt to lower the Composite Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp2_transitions_rate":{info:"The number of times the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>regardless of the impact on performance (e.g., heavy throttling)</b>, to attempt to lower the Combined Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp1_time":{info:"The amount of time the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>minimizing performance impact</b>, to attempt to lower the Composite Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp2_time":{info:"The amount of time the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>regardless of the impact on performance (e.g., heavy throttling)</b>, to attempt to lower the Combined Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"postfix.qemails":{info:"The <b>qemails</b> metric represents the number of emails currently in the queue in Postfix. This metric should be monitored to ensure that the queue is not growing too large, which can lead to delays in email delivery.",en:{instance:{one:"mail server",other:"mail servers"}}},"postfix.qsize":{info:"The <b>qsize</b> metric represents the total size of emails currently in the queue in Postfix. This metric should be monitored to ensure that the queue is not growing too large, which can lead to delays in email delivery.",en:{instance:{one:"mail server",other:"mail servers"}}},"postgres.connections_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",title:"Average Connections Utilization",desiredUnits:"percentage",colors:s.default[14],layout:{x:0,y:0,w:2.5,h:5}}],info:"<p>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 <i>max_connections</i> parameter (default = 100) defines the maximum number of concurrent connections to the database server. A separate parameter, <i>superuser_reserved_connections</i> (default = 3), defines the quota for superuser connections (so that superusers can connect even if all other connection slots are blocked).</p><p><br></p><p><b>Total connection utilization</b> across all databases. Utilization is measured as a percentage of (<i>max_connections</i> - <i>superuser_reserved_connections</i>). If the utilization is 100% no more new connections will be accepted (superuser connections will still be accepted if superuser quota is available).</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.connections_usage":{info:"<p><b>Connections usage</b> across all databases. The maximum number of concurrent connections to the database server is (<i>max_connections</i> - <i>superuser_reserved_connections</i>). As a general rule, if you need more than 200 connections it is advisable to use connection pooling.</p><p><b>Available</b> - new connections allowed. <b>Used</b> - connections currently in use.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.connections_state_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connection State Count",layout:{x:9,y:0,w:2.5,h:5}}],en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.transactions_duration":{aggregationMethod:"avg",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.queries_duration":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Queries by Duration",layout:{x:0,y:10,w:4.5,h:5}}],info:"Active queries duration histogram. The bins are specified as consecutive, non-overlapping intervals. The value is the number of observed active queries that fall into each interval.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.checkpoints_rate":{info:'<p>Number of checkpoints that have been performed. Checkpoints are periodic maintenance operations the database performs to make sure that everything it\'s been caching in memory has been synchronized with the disk. Ideally checkpoints should be time-driven (scheduled) as opposed to load-driven (requested).</p><p><b>Scheduled</b> - checkpoints triggered as per schedule when time elapsed from the previous checkpoint is greater than <a href="https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-CHECKPOINT-TIMEOUT" target="_blank"><i>checkpoint_timeout</i></a>. <b>Requested</b> - checkpoints triggered due to WAL updates reaching the <a href="https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-MAX-WAL-SIZE" target="_blank"><i>max_wal_size</i></a> before the <i>checkpoint_timeout</i> is reached.</p>',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.checkpoints_time":{info:"<p>Checkpoint timing information. An important indicator of how well checkpoint I/O is performing is the amount of time taken to sync files to disk.</p><p><b>Write</b> - amount of time spent writing files to disk during checkpoint processing. <b>Sync</b> - amount of time spent synchronizing files to disk during checkpoint processing.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_allocated_rate":{info:"Allocated and re-allocated buffers. If a backend process requests data it is either found in a block in shared buffer cache or the block has to be allocated (read from disk). The latter is counted as <b>Allocated</b>.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_io_rate":{info:"<p>Amount of data flushed from memory to disk.</p><p><b>Checkpoint</b> - buffers written during checkpoints. <b>Backend</b> - buffers written directly by a backend. It may happen that a dirty page is requested by a backend process. In this case the page is synced to disk before the page is returned to the client. <b>BgWriter</b> - buffers written by the background writer. PostgreSQL may clear pages with a low usage count in advance. The process scans for dirty pages with a low usage count so that they could be cleared if necessary. Buffers written by this process increment the counter.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.bgwriter_halts_rate":{info:'Number of times the background writer stopped a cleaning scan because it had written too many buffers (exceeding the value of <a href="https://www.postgresql.org/docs/current/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-BACKGROUND-WRITER" target="_blank"><i>bgwriter_lru_maxpages</i></a>).',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_backend_fsync_rate":{info:"Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write). Any values above zero can indicate problems with storage when fsync queue is completely filled.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_io_rate":{info:"Write-Ahead Logging (WAL) ensures data integrity by ensuring that changes to data files (where tables and indexes reside) are written only after log records describing the changes have been flushed to permanent storage.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_files_count":{info:"<p>Number of WAL logs stored in the directory <i>pg_wal</i> under the data directory.</p><p><b>Written</b> - generated log segments files. <b>Recycled</b> - old log segment files that are no longer needed. Renamed to become future segments in the numbered sequence to avoid the need to create new ones.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_archiving_files_count":{info:'<p>WAL archiving.</p><p><b>Ready</b> - WAL files waiting to be archived. A non-zero value can indicate <i>archive_command</i> is in error, see <a href="https://www.postgresql.org/docs/current/static/continuous-archiving.html" target="_blank">Continuous Archiving and Point-in-Time Recovery</a>. <b>Done</b> - WAL files successfully archived.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.autovacuum_workers_count":{info:'PostgreSQL databases require periodic maintenance known as vacuuming. For many installations, it is sufficient to let vacuuming be performed by the autovacuum daemon. For more information see <a href="https://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM" target="_blank">The Autovacuum Daemon</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_towards_autovacuum_perc":{aggregationMethod:"avg",info:'Percentage towards emergency autovacuum for one or more tables. A forced autovacuum will run once this value reaches 100%. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_perc":{aggregationMethod:"avg",info:'Percentage towards transaction wraparound. A transaction wraparound may occur when this value reaches 100%. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_oldest_txid_num":{info:'The oldest current transaction ID (XID). If for some reason autovacuum fails to clear old XIDs from a table, the system will begin to emit warning messages when the database\'s oldest XIDs reach eleven million transactions from the wraparound point. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"dHH:MM:ss",layout:{x:12,y:0,w:2.5,h:1.66}}],info:"The time elapsed since the Postgres process was started.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_app_wal_lag_size":{info:"<p>Replication WAL lag size.</p><p><b>SentLag</b> - sent over the network. <b>WriteLag</b> - written to disk. <b>FlushLag</b> - flushed to disk. <b>ReplayLag</b> - replayed into the database.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_app_wal_lag_time":{info:"<p>Replication WAL lag time.</p><p><b>WriteLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written it, but not yet flushed it or applied it. <b>FlushLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written and flushed it, but not yet applied it. <b>ReplayLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written, flushed and applied it.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_slot_files_count":{info:'<p>Replication slot files. For more information see <a href="https://www.postgresql.org/docs/current/static/warm-standby.html#STREAMING-REPLICATION-SLOTS" target="_blank">Replication Slots</a>.</p><p><b>WalKeep</b> - WAL files retained by the replication slot. <b>PgReplslotFiles</b> - files present in pg_replslot.</p>',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.db_transactions_ratio":{aggregationMethod:"avg",info:"Percentage of committed/rollback transactions.",en:{instance:{one:"database",other:"databases"}}},"postgres.db_transactions_rate":{info:"<p>Number of transactions that have been performed</p><p><b>Committed</b> - transactions that have been committed. All changes made by the committed transaction become visible to others and are guaranteed to be durable if a crash occurs. <b>Rollback</b> - transactions that have been rolled back. Rollback aborts the current transaction and causes all the updates made by the transaction to be discarded. Single queries that have failed outside the transactions are also accounted as rollbacks.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_connections_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connections Utilization per Database",layout:{x:0,y:5,w:2.5,h:5}}],info:"Connection utilization per database. Utilization is measured as a percentage of <i>CONNECTION LIMIT</i> per database (if set) or <i>max_connections</i> (if <i>CONNECTION LIMIT</i> is not set).",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_connections_count":{info:"Number of current connections per database.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_cache_io_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Cache Miss Ratio",colors:s.default[1],layout:{x:6,y:0,w:2.5,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Cache Miss Ratio per DB",layout:{x:6,y:5,w:2.5,h:5}}],info:'PostgreSQL uses a <b>shared buffer cache</b> to store frequently accessed data in memory, and avoid slower disk reads. If you are seeing performance issues, consider increasing the <a href="https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-SHARED-BUFFERS" target="_blank"><i>shared_buffers</i></a> size or tuning <a href="https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE" target="_blank"><i>effective_cache_size</i></a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_io_rate":{info:"<p>Amount of data read from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_fetched_rows_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,desiredUnits:"percentage",title:"Avg Fetched Row Ratio",colors:s.default[10],layout:{x:3,y:0,w:2,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Fetched Row Ratio per DB",layout:{x:3,y:5,w:2,h:5}}],info:"The percentage of rows that contain data needed to execute the query, out of the total number of rows scanned. A high value indicates that the database is executing queries efficiently, while a low value indicates that the database is performing extra work by scanning a large number of rows that aren't required to process the query. Low values may be caused by missing indexes or inefficient queries.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_read_rows_rate":{info:"<p>Read queries throughput.</p><p><b>Returned</b> - Total number of rows scanned by queries. This value indicates rows returned by the storage layer to be scanned, not rows returned to the client. <b>Fetched</b> - Subset of scanned rows (<b>Returned</b>) that contained data needed to execute the query.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_write_rows_rate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Rows Written per Database",layout:{x:9,y:5,w:2.5,h:5}}],info:"<p>Write queries throughput.</p><p><b>Inserted</b> - number of rows inserted by queries. <b>Deleted</b> - number of rows deleted by queries. <b>Updated</b> - number of rows updated by queries.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_conflicts_rate":{info:'Number of queries canceled due to conflict with recovery on standby servers. To minimize query cancels caused by cleanup records consider configuring <a href="https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-HOT-STANDBY-FEEDBACK" target="_blank"><i>hot_standby_feedback</i></a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_conflicts_reason_rate":{info:"<p>Statistics about queries canceled due to various types of conflicts on standby servers.</p><p><b>Tablespace</b> - queries that have been canceled due to dropped tablespaces. <b>Lock</b> - queries that have been canceled due to lock timeouts. <b>Snapshot</b> - queries that have been canceled due to old snapshots. <b>Bufferpin</b> - queries that have been canceled due to pinned buffers. <b>Deadlock</b> - queries that have been canceled due to deadlocks.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_deadlocks_rate":{info:"Number of detected deadlocks. When a transaction cannot acquire the requested lock within a certain amount of time (configured by <b>deadlock_timeout</b>), it begins deadlock detection.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_locks_held_count":{info:'Number of held locks. Some of these lock modes are acquired by PostgreSQL automatically before statement execution, while others are provided to be used by applications. All lock modes acquired in a transaction are held for the duration of the transaction. For lock modes details, see <a href="https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES" target="_blank">table-level locks</a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_locks_awaited_count":{info:'Number of awaited locks. It indicates that some transaction is currently waiting to acquire a lock, which implies that some other transaction is holding a conflicting lock mode on the same lockable object. For lock modes details, see <a href="https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES" target="_blank">table-level locks</a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_temp_files_created_rate":{info:"Number of temporary files created by queries. Complex queries may require more memory than is available (specified by <b>work_mem</b>). When this happens, Postgres reverts to using temporary files - they are actually stored on disk, but only exist for the duration of the request. After the request returns, the temporary files are deleted.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_temp_files_io_rate":{info:"Amount of data written temporarily to disk to execute queries.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_size":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",title:"Database Sizes",dimensionsSort:"valueDesc",layout:{x:12,y:5,w:2.5,h:5}},{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Database Size",layout:{x:12,y:3.33,w:2.5,h:1.66}}],info:"Actual on-disk usage of the database's data directory and any associated tablespaces.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.databases_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Database count",layout:{x:12,y:1.66,w:2.5,h:1.66}}],info:"Count of databases per PostgreSQL server.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"pgbouncer.client_connections_utilization":{aggregationMethod:"avg",info:"Client connections in use as percentage of <i>max_client_conn</i> (default 100)."},"pgbouncer.db_client_connections":{info:"<p>Client connections in different states.</p><p><b>Active</b> - linked to server connection and can process queries. <b>Waiting</b> - have sent queries but have not yet got a server connection. <b>CancelReq</b> - have not forwarded query cancellations to the server yet.</p>"},"pgbouncer.db_server_connections":{info:"<p>Server connections in different states.</p><p><b>Active</b> - linked to a client. <b>Idle</b> - unused and immediately usable for client queries. <b>Used</b> - have been idle for more than <i>server_check_delay</i>, so they need <i>server_check_query</i> to run on them before they can be used again. <b>Tested</b> - currently running either <i>server_reset_query</i> or <i>server_check_query</i>. <b>Login</b> - currently in the process of logging in.</p>"},"pgbouncer.db_server_connections_utilization":{aggregationMethod:"avg",info:"Server connections in use as percentage of <i>max_db_connections</i> (default 0 - unlimited). This considers the PgBouncer database that the client has connected to, not the PostgreSQL database of the outgoing connection."},"pgbouncer.db_clients_wait_time":{info:"Time spent by clients waiting for a server connection. This shows if the decrease in database performance from the client's point of view was due to exhaustion of the corresponding PgBouncer pool."},"pgbouncer.db_client_max_wait_time":{info:"Waiting time for the first (oldest) client in the queue. If this starts increasing, then the current pool of servers does not handle requests quickly enough."},"pgbouncer.db_transactions":{info:"SQL transactions pooled (proxied) by pgbouncer."},"pgbouncer.db_transactions_time":{info:"Time spent by pgbouncer when connected to PostgreSQL in a transaction, either idle in transaction or executing queries."},"pgbouncer.db_transaction_avg_time":{info:"Average transaction duration."},"pgbouncer.db_queries":{info:"SQL queries pooled (proxied) by pgbouncer."},"pgbouncer.db_queries_time":{info:"Time spent by pgbouncer when actively connected to PostgreSQL, executing queries."},"pgbouncer.db_query_avg_time":{info:"Average query duration."},"pgbouncer.db_network_io":{info:"<p>Network traffic received and sent by pgbouncer.</p><p><b>Received</b> - received from clients. <b>Sent</b> - sent to servers.</p>"},"postgres.table_rows_dead_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Dead Row Ratio",colors:s.default[10],layout:{x:12,y:10,w:2.5,h:5}}],info:"Percentage of dead rows. An increase in dead rows indicates a problem with VACUUM processes, which can slow down your queries.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_rows_count":{info:"<p>Number of rows. When you do an UPDATE or DELETE, the row is not actually physically deleted. For a DELETE, the database simply marks the row as unavailable for future transactions, and for UPDATE, under the hood it is a combined INSERT then DELETE, where the previous version of the row is marked unavailable.</p><p><b>Live</b> - rows that currently in use and can be queried. <b>Dead</b> - deleted rows that will later be reused for new rows from INSERT or UPDATE.</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_rate":{info:"Write queries throughput. If you see a large number of updated and deleted rows, keep an eye on the number of dead rows, as a high percentage of dead rows can slow down your queries.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_hot_ratio":{aggregationMethod:"avg",info:"Percentage of HOT (Heap Only Tuple) updated rows. HOT updates are much more efficient than ordinary updates: less write operations, less WAL writes, vacuum operation has less work to do, increased read efficiency (help to limit table and index bloat).",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_hot_rate":{info:"Number of HOT (Heap Only Tuple) updated rows.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_cache_io_ratio":{aggregationMethod:"avg",info:"Table cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_io_rate":{info:"<p>Amount of data read from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_index_cache_io_ratio":{aggregationMethod:"avg",info:"Table indexes cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_index_io_rate":{info:"<p>Amount of data read from all indexes from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_cache_io_ratio":{aggregationMethod:"avg",info:"Table TOAST cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_io_rate":{info:"<p>Amount of data read from TOAST table from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_index_cache_io_ratio":{aggregationMethod:"avg",info:"Table TOAST indexes cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_index_io_rate":{info:"<p>Amount of data read from this table's TOAST table indexes from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_scans_rate":{info:"<p>Number of scans initiated on this table. If you see that your database regularly performs more sequential scans over time, you can improve its performance by creating an index on data that is frequently accessed.</p><p><b>Index</b> - relying on an index to point to the location of specific rows. <b>Sequential</b> - have to scan through each row of a table sequentially. Typically, take longer than index scans.</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_scans_rows_rate":{info:"Number of live rows fetched by scans.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_autovacuum_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was vacuumed by the autovacuum daemon.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_vacuum_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was manually vacuumed (not counting VACUUM FULL).",en:{instance:{one:"table",other:"tables"}}},"postgres.table_autoanalyze_since_time":{aggregationMethod:"min",info:"Time elapsed this table was analyzed by the autovacuum daemon.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_analyze_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was manually analyzed.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_null_columns":{info:"Number of table columns that contain only NULLs.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_total_size":{info:"Actual on-disk size of the table.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_bloat_size_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Table Bloat %",colors:s.default[1],layout:{x:9,y:10,w:2.5,h:5}}],info:"Estimated percentage of bloat in the table. It is normal for tables that are updated frequently to have a small to moderate amount of bloat.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_bloat_size":{info:'Disk space that was used by the table and is available for reuse by the database but has not been reclaimed. Bloated tables require more disk storage and additional I/O that can slow down query execution. Running <a href="https://www.postgresql.org/docs/current/sql-vacuum.html" target="_blank">VACUUM</a> regularly on a table that is updated frequently results in fast reuse of space occupied by expired rows, which prevents the table from growing too large.',en:{instance:{one:"table",other:"tables"}}},"postgres.index_size":{info:"Actual on-disk size of the index.",en:{instance:{one:"index",other:"indexes"}}},"postgres.index_bloat_size_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Index Bloat %",colors:s.default[1],layout:{x:9,y:10,w:2.5,h:5}}],info:"Estimated percentage of bloat in the index.",en:{instance:{one:"index",other:"indexes"}}},"postgres.index_bloat_size":{info:'Disk space that was used by the index and is available for reuse by the database but has not been reclaimed. Bloat slows down your database and eats up more storage than needed. To recover the space from indexes, recreate them using the <a href="https://www.postgresql.org/docs/current/sql-reindex.html" target="_blank">REINDEX</a> command.',en:{instance:{one:"index",other:"indexes"}}},"postgres.index_usage_status":{info:"An index is considered unused if no scans have been initiated on that index.",en:{instance:{one:"index",other:"indexes"}}},"puppet.jvm_heap":{info:"The <b>jvm_heap</b> metric represents the size of the Java Virtual Machine's heap memory in Puppet. This metric should be monitored to ensure that sufficient memory is allocated for Puppet to operate correctly."},"puppet.jvm_nonheap":{info:"The <b>jvm_nonheap</b> metric represents the size of the Java Virtual Machine's non-heap memory in Puppet. This metric should be monitored to ensure that sufficient memory is allocated for Puppet to operate correctly."},"puppet.cpu":{aggregationMethod:"avg",info:"The <b>cpu</b> metric represents the amount of CPU resources being used by Puppet. This metric should be monitored to ensure that the CPU is not being overutilized and to detect any potential performance issues."},"puppet.fd_open":{info:"The <b>fd_open</b> metric represents the number of open file descriptors in Puppet. This metric should be monitored to ensure that the system is not running out of available file descriptors, which can lead to performance issues."},"redis.ping_latency":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Ping Latency",layout:{x:3,y:0,w:2,h:5}}],info:"The average time it takes from a client request to the server response. High latency could be caused slow commands, over utilized network links or a high backlog in the command queue.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.commands":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Commands",desiredUnits:"Commands",layout:{x:0,y:0,w:2,h:5}}],info:"The Total number of commands processed per second. A significant or unexpected shift in this metric could indicate a problem worth investigating.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.keyspace_lookup_hit_rate":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",title:"Average Lookup Hit Rate",desiredUnits:"percentage",colors:s.default[0],layout:{x:6,y:0,w:2,h:5}}],info:"Lookup Hitrate = (Keyspace hits / (Keyspace hits + Keyspace misses)) <br> Lower hitrates lead to higher latency, in normal conditions this value should be greater than 80%.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.mem_fragmentation_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",valueRange:[0,100],chartLibrary:"gauge",title:"Max Memory Fragmentation Ratio",desiredUnits:"percentage",colors:s.default[1],layout:{x:9,y:0,w:2,h:5}}],info:"The ratio of memory allocated by the operating system to memory requested by Redis (used_memory_rss/used_memory).",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:12,y:0,w:2,h:2.5}}],en:{instance:{one:"redis server",other:"redis servers"}}},"redis.clients":{mainheads:[{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Connected Clients",layout:{x:12,y:2.5,w:2,h:2.5}}],info:"The current state of clients connecting to or attempting to connect to Redis.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.commands_calls":{info:"Total commands processed per second, by command type. Use this chart to identify most common commands being processed.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.master_last_io_since_time":{aggregationMethod:"min",info:"Time in seconds since the last interaction between replica and primary. A long time interval without communication could indicate a problem on the primary Redis server or on the replica or in the link between them.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.master_link_down_since_time":{aggregationMethod:"min",info:"Time in seconds since the link between replica and primary went down. This metric is only available when the connection between a primary and its replica has been lost. Any non zero value for this metric is cause for alert.",en:{instance:{one:"redis server",other:"redis servers"}}},"cassandra.client_requests_rate":{info:"Client requests received per second. Consider whether your workload is read-heavy or write-heavy while choosing a compaction strategy."},"cassandra.client_request_read_latency_histogram":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Read latency (99th percentile)",selectedDimensions:["p99"],colors:s.default[12],layout:{x:7.5,y:0,w:2.25,h:5}}],info:"Histogram for read latency, with bins for 50th, 75th, 90th, 95th, 98th, 99th and 99.9th percentile latency values.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_request_write_latency_histogram":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Write latency (99th percentile)",selectedDimensions:["p99"],layout:{x:9.75,y:0,w:2.25,h:5}}],info:"Histogram for write latency, with bins for 50th, 75th, 90th, 95th, 98th, 99th and 99.9th percentile latency values.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_latency":{aggregationMethod:"avg",info:"Total response latency summed over all requests received per second. Latency could be impacted by disk access, network latency or replication configuration.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_hit_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Key Cache Hit Ratio",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[2],layout:{x:4.5,y:0,w:3,h:5}}],info:"Key cache hit ratio indicates the efficiency of the key cache. If ratio is consistently < 80% consider increasing cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_hit_rate":{aggregationMethod:"avg",info:"Key cache hit rate measures the cache hits and misses per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.storage_live_disk_space_used":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Live Disk Space Used",layout:{x:2.25,y:0,w:2.25,h:5}}],info:"Amount of live disk space used. This does not include obsolete data waiting to be garbage collected.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_completed_tasks_rate":{info:"Compaction tasks completed per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_pending_tasks_count":{info:"Total compaction tasks in queue.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_active_tasks_count":{info:"Total tasks currently being processed.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_pending_tasks_count":{info:"Total tasks in queue awaiting a thread for processing.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_blocked_tasks_rate":{info:"Tasks that cannot be queued for processing yet.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_blocked_tasks_count":{info:"Total tasks that cannot yet be queued for processing.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_gc_rate":{info:"Rate of garbage collections.</p><p><b>ParNew</b> - young-generation. <b>cms (ConcurrentMarkSweep)</b> - old-generation.</p>",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_gc_time":{aggregationMethod:"min",info:"Elapsed time of garbage collection.</p><p><b>ParNew</b> - young-generation. <b>cms (ConcurrentMarkSweep)</b> - old-generation.</p>",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_timeouts_rate":{info:"Requests which were not acknowledged within the configurable timeout window.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_unavailables_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Unavailable exceptions",desiredUnits:"requests/s",colors:s.default[1],layout:{x:0,y:0,w:2.25,h:5}}],info:"Requests for which the required number of nodes was unavailable.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_hit_ratio":{aggregationMethod:"avg",info:"Row cache hit ratio indicates the efficiency of the row cache. If ratio is consistently < 80% consider increasing cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_hit_rate":{aggregationMethod:"avg",info:"Row cache hit rate measures the cache hits and misses per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_utilization":{aggregationMethod:"avg",info:"The percentage of row cache memory currently in use. High utilization may indicate the need to increase cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_size":{info:"The size of the row cache in bytes. Adjusting this value can impact system performance.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_utilization":{aggregationMethod:"avg",info:"The percentage of key cache memory currently in use. High utilization may indicate the need to increase cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_size":{info:"The size of the key cache in bytes. Adjusting this value can impact system performance.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_compacted_rate":{info:"The rate at which compactions are occurring in the system. If this rate is consistently high, it may indicate a need for more resources or a different compaction strategy.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_memory_used":{info:"The amount of memory used by the Cassandra JVM. High memory usage may indicate the need for additional resources or optimization.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.dropped_messages_rate":{info:"The rate at which messages are being dropped by the system. High rates may indicate a need for additional resources or a problem with the system.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_failures_rate":{info:"The rate at which client requests are failing. High rates may indicate a problem with the system or the need for additional resources.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"coredns.dns_request_count_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total DNS Requests",colors:s.default[12],layout:{x:0,y:0,w:2.5,h:5}}],info:"The total number of DNS requests handled by CoreDNS. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_responses_count_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total DNS Responses",colors:s.default[2],layout:{x:6,y:0,w:2.5,h:5}}],info:"The total number of DNS responses sent by CoreDNS. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_no_matching_zone_dropped_total":{info:"The total number of DNS requests dropped by CoreDNS because no matching zone was found. This can be useful for identifying potential configuration issues.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_panic_count_total":{info:"The total number of panics that occurred in CoreDNS. This can be useful for identifying potential issues or bugs in the system.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"activemq.messages":{info:"The total number of messages in the broker. This can be useful for understanding overall system throughput.",en:{instance:{one:"broker",other:"brokers"}}},"activemq.unprocessed_messages":{info:"The total number of messages that have not been processed. If this number consistently increases, it may indicate a problem with consumer performance or a bottleneck in the system.",en:{instance:{one:"broker",other:"brokers"}}},"activemq.consumers":{info:"The number of active consumers connected to the broker. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"broker",other:"brokers"}}},"apache.connections":{colors:s.default[4],mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",valueRange:[0,null],title:"Total Apache Connections",colors:s.default[4]}],info:"The total number of connections to the Apache web server. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.requests":{colors:s.default[0],mainheads:[{"group_by[1]":["selected"],chartLibrary:"easypiechart",valueRange:[0,null],title:"Total Apache Requests",colors:s.default[0]}],info:"The number of requests processed by the Apache web server. This can be useful for understanding overall system throughput and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.net":{colors:s.default[3],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Apache Bandwidth",valueRange:[0,null],colors:s.default[3]}],info:"The number of bytes transferred over the network by the Apache web server. This can be useful for understanding overall network usage and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.workers":{mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",selectedDimensions:["busy"],chartLibrary:"gauge",title:"Maximum Apache Workers Utilization",valueRange:[0,100],colors:s.default[5]}],info:"The number of worker processes used by the Apache web server. This can be useful for understanding overall system performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.bytesperreq":{colors:s.default[3],info:"The number of bytes transferred per second over the network by the Apache web server. This can be useful for understanding overall network performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.reqpersec":{colors:s.default[4],info:"The number of requests processed per second by the Apache web server. This can be useful for understanding overall system performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.bytespersec":{colors:s.default[6],info:"The number of bytes transferred per request by the Apache web server. This can be useful for understanding the efficiency of the server and identifying potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.uptime":{aggregationMethod:"min",info:"The amount of time that the Apache web server has been running. This can be useful for understanding the overall health and stability of the server.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.connections":{colors:s.default[4],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",desiredUnits:"percentage",title:"Total Lighttpd Connections",colors:s.default[4]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.requests":{colors:s.default[0],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Lighttpd Requests",colors:s.default[0]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.net":{colors:s.default[3],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Lighttpd Bandwidth",colors:s.default[3]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.workers":{mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",selectedDimensions:["busy"],chartLibrary:"gauge",title:"Maximum Lighttpd Workers Utilization",colors:s.default[5],desiredUnits:"percentage"}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.bytesperreq":{colors:s.default[3],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.reqpersec":{colors:s.default[4],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.bytespersec":{colors:s.default[6],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.uptime":{aggregationMethod:"min",info:"The uptime of the lighttpd server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.requests":{info:"The total number of requests received by the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.status_codes":{info:"The distribution of HTTP response codes returned by the lighttpd server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.traffic":{info:"The amount of traffic handled by the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.connections":{info:"The number of active connections to the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.connection_states":{info:"The distribution of connection states for the lighttpd server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.memory_usage":{info:"The memory usage of the lighttpd server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.uptime":{info:"The uptime of the lighttpd server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime.",en:{instance:{one:"web server",other:"web servers"}}},"logstash.jvm_threads":{info:"The number of threads currently being used by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing threading issues that may affect its performance."},"logstash.jvm_mem_heap_used":{aggregationMethod:"avg",info:"The amount of memory currently being used by the Logstash JVM's heap. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_eden":{info:"The amount of memory currently being used by the Logstash JVM's Eden memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_survivor":{info:"The amount of memory currently being used by the Logstash JVM's Survivor memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_old":{info:"The amount of memory currently being used by the Logstash JVM's Old memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_gc_collector_count":{info:"The number of garbage collection operations performed by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing performance issues related to garbage collection."},"logstash.jvm_gc_collector_time":{aggregationMethod:"min",info:"The total time spent on garbage collection operations by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing performance issues related to garbage collection."},"logstash.open_file_descriptors":{info:"The number of open file descriptors used by Logstash. Monitoring this metric can help identify if Logstash is experiencing file descriptor usage issues that may affect its performance."},"logstash.event":{info:"The number of events processed by Logstash. Monitoring this metric can help identify the usage patterns of Logstash and potential performance issues."},"logstash.event_duration":{info:"The latencies of events processed by Logstash. High latencies may indicate performance issues with Logstash or the components interacting with it."},"logstash.uptime":{aggregationMethod:"min",info:"The uptime of the Logstash server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime."},"logstash.pipeline_event":{info:"The number of events processed by the specified Logstash pipeline. Monitoring this metric can help identify the usage patterns of the pipeline and potential performance issues."},"mongodb.operations":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Operations",desiredUnits:"operations",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of operations performed by the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.operations_latency":{aggregationMethod:"avg",info:"The latencies of operations performed by the MongoDB server. High latencies may indicate performance issues with the server or the components interacting with it.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Connections",desiredUnits:"connections",colors:s.default[0],layout:{x:3,y:0,w:3,h:5}}],info:"The total number of connections to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections_rate":{info:"The rate of connections to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections_state":{info:"The distribution of connection states for the MongoDB server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.network_io":{info:"The amount of network IO performed by the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.network_requests":{info:"The number of requests to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.page_faults":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Page Faults",desiredUnits:"faults",colors:s.default[0],layout:{x:9,y:0,w:3,h:5}}],info:"The number of page faults encountered by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.tcmalloc_generic":{info:"The usage of the TCMalloc generic allocator by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.tcmalloc":{info:"The usage of the TCMalloc allocator by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.asserts":{info:"The number of asserts encountered by the MongoDB server. Monitoring this metric can help identify if the server is encountering issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.current_transactions":{info:"The number of current transactions on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to transactions.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_commit_types":{info:"The distribution of commit types for sharded collections on the MongoDB server. Monitoring this metric can help identify if there are issues with sharding on the server.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.active_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Active Clients",desiredUnits:"clients",colors:s.default[0],layout:{x:0,y:5,w:3,h:5}}],info:"The number of active clients connected to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.queued_operations":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queued Operations",desiredUnits:"operations",colors:s.default[0],layout:{x:3,y:5,w:3,h:5}}],info:"The number of operations that are currently queued on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to queued operations.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.locks":{info:"The distribution of locks held by the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.flow_control_timings":{info:"The timings of flow control events on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to flow control.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_blocks":{info:"The number of blocks currently held in the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_cache":{info:"The usage of the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_capacity":{info:"The capacity of the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_connection":{info:"The number of connections currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to connections.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_cursor":{info:"The number of cursors currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to cursors.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_lock":{info:"The number of locks currently held in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_lock_duration":{info:"The duration of locks held in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_log_ops":{info:"The number of operations written to the WiredTiger log on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to logging.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_transactions":{info:"The number of transactions currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to transactions.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_collections":{info:"The number of collections in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_indexes":{info:"The number of indexes in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_views":{info:"The number of views in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_documents":{info:"The number of documents in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_storage_size":{info:"The storage size of the specified database on the MongoDB server. Monitoring this metric can help identify if the database is using an appropriate amount of storage.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_lag":{info:"The amount of lag in replication on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_heartbeat_latency":{aggregationMethod:"avg",info:"The latencies of replication heartbeats on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_node_ping":{aggregationMethod:"avg",info:"The latencies of pings to replication nodes on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_nodes_count":{info:"The number of nodes in the specified shard on the MongoDB server. Monitoring this metric can help identify the usage patterns of the shard and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_databases_status":{info:"The status of the databases in the specified shard on the MongoDB server. Monitoring this metric can help identify if there are issues with the databases in the shard.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.chunks":{info:"The number of chunks in the specified shard on the MongoDB server. Monitoring this metric can help identify the usage patterns of the shard and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"nginx.connections":{colors:s.default[4],mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",title:"Total Connections",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"nginx.requests":{colors:s.default[0],mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",title:"Total Requests",colors:s.default[0],layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"nginx.connections_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connection Status",layout:{x:6,y:0,w:3,h:5}}],info:"The current status of connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginx.connections_accepted_handled":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connections Handled",layout:{x:9,y:0,w:3,h:5}}],info:"The number of accepted and handled connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.client_connections_rate":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",desiredUnits:"connections/s",title:"Total Client Connections Rate",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Accepted and dropped (not handled) connections. A connection is considered <b>dropped</b> if the worker process is unable to get a connection for the request by establishing a new connection or reusing an open one.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.client_connections_count":{mainheads:[{valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Client Connections per State",layout:{x:3,y:0,w:3,h:2.5}}],info:"The current number of client connections. A connection is considered <b>idle</b> if there are currently no active requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_handshakes_rate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",desiredUnits:"handshakes/s",title:"Total SSL Handshake Rate",colors:s.default[4],layout:{x:3,y:2.5,w:3,h:2.5}}],info:"Successful and failed SSL handshakes.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_session_reuses_rate":{info:"The number of session reuses during SSL handshake.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_handshakes_failures_rate":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",desiredUnits:"failures/s",title:"SSL Handshake Failures",colors:s.default[4],layout:{x:6,y:0,w:3,h:5}}],info:"<p>SSL handshake failures.</p><p><b>NoCommonProtocol</b> - failed because of no common protocol. <b>NoCommonCipher</b> - failed because of no shared cipher. <b>Timeout</b> - failed because of a timeout. <b>PeerRejectedCert</b> - failed because a client rejected the certificate.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_verification_errors_rate":{info:'<p>SSL verification errors.</p><p><b>NoCert</b> - a client did not provide the required certificate. <b>ExpiredCert</b> - an expired or not yet valid certificate was presented by a client. <b>RevokedCert</b> - a revoked certificate was presented by a client. <b>HostnameMismatch</b> - server"s certificate does not match the hostname. <b>Other</b> - other SSL certificate verification errors.</p>',en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_requests_rate":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",desiredUnits:"req/s",title:"Total HTTP Requests Rate",colors:s.default[4],layout:{x:9,y:0,w:3,h:5}}],info:"The number of HTTP requests received from clients.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_requests_count":{mainheads:[{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Requests",layout:{x:0,y:5,w:3,h:2.5}}],info:"The current number of client requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"dHH:MM:ss",layout:{x:0,y:7.5,w:3,h:2.5}}],info:"The time elapsed since the NGINX process was started.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Requests Rate",desiredUnits:"requests/s",layout:{x:3,y:5,w:3,h:5}}],info:"The number of requests to the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_responses_per_code_class_rate":{info:"The number of responses from the HTTP Server Zone. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_traffic_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Traffic Rate",desiredUnits:"b/s",layout:{x:6,y:5,w:3,h:5}}],info:"The amount of data transferred to and from the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_processing_count":{info:"The number of client requests that are currently being processed by the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_discarded_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Discarded Requests Rate",desiredUnits:"requests/s",layout:{x:9,y:5,w:3,h:5}}],info:"The number of requests to the HTTP Server Zone completed without sending a response.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_requests_rate":{info:"The number of requests to the HTTP Location Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_responses_per_code_class_rate":{info:"The number of responses from the HTTP Location Zone. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_traffic_rate":{info:"The amount of data transferred to and from the HTTP Location Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_requests_discarded_rate":{info:"The number of requests to the HTTP Location Zone completed without sending a response.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_peers_count":{info:"The number of HTTP Upstream servers.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_zombies_count":{info:"The current number of HTTP Upstream servers removed from the group but still processing active client requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_keepalive_count":{info:"The current number of idle keepalive connections to the HTTP Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Upstream Request Rate",desiredUnits:"requests/s",layout:{x:0,y:10,w:3,h:5}}],info:"The number of client requests forwarded to the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_responses_per_code_class_rate":{info:"The number of responses received from the HTTP Upstream Server. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_response_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average HTTP Upstream Response Time",desiredUnits:"milliseconds",layout:{x:3,y:10,w:3,h:5}}],info:"The average time to get a complete response from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_response_header_time":{aggregationMethod:"avg",info:"The average time to get a response header from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_traffic_rate":{info:"The amount of traffic transferred to and from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Upstream Server State",layout:{x:6,y:10,w:3,h:5}}],info:"The current state of the HTTP Upstream Server. Status is active if set to 1.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_connections_count":{info:"The current number of active connections to the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_downtime":{info:"The time the HTTP Upstream Server has spent in the <b>unavail</b>, <b>checking</b>, and <b>unhealthy</b> states.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total HTTP Cache State",desiredUnits:"responses/s",layout:{x:9,y:10,w:3,h:5}}],info:"HTTP cache current state. <b>Cold</b> means that the cache loader process is still loading data from disk into the cache.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_iops":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total HTTP Cache IOPS",desiredUnits:"responses/s",layout:{x:9,y:15,w:3,h:5}}],info:"<p>HTTP cache IOPS.</p><p><b>Served</b> - valid, expired, and revalidated responses read from the cache. <b>Written</b> - miss, expired, and bypassed responses written to the cache. <b>Bypassed</b> - miss, expired, and bypass responses.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_io":{info:"<p>HTTP cache IO.</p><p><b>Served</b> - valid, expired, and revalidated responses read from the cache. <b>Written</b> - miss, expired, and bypassed responses written to the cache. <b>Bypassed</b> - miss, expired, and bypass responses.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_size":{info:"The current size of the cache.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Stream Server Zone Connections Rate",desiredUnits:"connections/s",layout:{x:0,y:15,w:3,h:5}}],info:"The number of accepted connections to the Stream Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_sessions_per_code_class_rate":{info:"The number of completed sessions for the Stream Server Zone. Sessions grouped by status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_traffic_rate":{info:"The amount of data transferred to and from the Stream Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_processing_count":{info:"The number of client connections to the Stream Server Zone that are currently being processed.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_discarded_rate":{info:"The number of connections to the Stream Server Zone completed without creating a session.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_peers_count":{info:"The number of Stream Upstream servers.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_zombies_count":{info:"The current number of HTTP Upstream servers removed from the group but still processing active client connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_connections_rate":{info:"The number of connections forwarded to the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_traffic_rate":{info:"The amount of traffic transferred to and from the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_state":{info:"The current state of the Stream Upstream Server. Status is active if set to 1.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_downtime":{info:"The time the Stream Upstream Server has spent in the <b>unavail</b>, <b>checking</b>, and <b>unhealthy</b> states.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_connections_count":{info:"The current number of connections to the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.resolver_zone_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",desiredUnits:"requests/s",title:"Total Resolver Zone Request Rate",colors:s.default[4],layout:{x:3,y:15,w:3,h:5}}],info:"<p>Resolver zone DNS requests.</p><p><b>Name</b> - requests to resolve names to addresses. <b>Srv</b> - requests to resolve SRV records. <b>Addr</b> - requests to resolve addresses to names.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.resolver_zone_responses_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",desiredUnits:"responses/s",title:"Total Resolver Zone Responses Rate",colors:s.default[4],layout:{x:6,y:15,w:3,h:5}}],info:"<p>Resolver zone DNS responses.</p><p><b>NoError</b> - successful responses. <b>FormErr</b> - format error responses. <b>ServFail</b> - server failure responses. <b>NXDomain</b> - host not found responses. <b>NotImp</b> - unimplemented responses. <b>Refused</b> - operation refused responses. <b>TimedOut</b> - timed out requests. <b>Unknown</b> - requests completed with an unknown error.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.requests_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",layout:{x:0,y:0,w:3,h:5}}],info:"The total number of requests on the nginx server. Monitoring this metric can help identify potential performance issues related to requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.active_connections":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Connections",layout:{x:6,y:0,w:3,h:5}}],info:"The number of active connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:9,y:0,w:3,h:5}}],info:"The uptime of the nginx server. Monitoring this metric can help identify potential performance issues related to server uptime.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.shm_usage":{info:"The usage of the shared memory on the nginx server. Monitoring this metric can help identify potential performance issues related to shared memory usage.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.server_requests_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Server Requests",layout:{x:3,y:0,w:3,h:5}}],info:"The total number of requests on the nginx server. Monitoring this metric can help identify potential performance issues related to server requests.",en:{instance:{one:"web server",other:"web servers"}}},"httpcheck.response_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Response Time",layout:{x:0,y:0,w:3,h:5}}],info:"The <b>response time</b> describes the time passed between request and response. Currently, the accuracy of the response time is low and should be used as reference only.",groupBy:["label"],groupByLabel:["_collect_job"]},"httpcheck.response_length":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Response Length",layout:{x:3,y:0,w:3,h:5}}],info:"The <b>response length</b> counts the number of characters in the response body. For static pages, this should be mostly constant.",groupBy:["label"],groupByLabel:["_collect_job"]},"httpcheck.status":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Server Check Status",layout:{x:6,y:0,w:3,h:5}}],info:"This chart verifies the response of the webserver. Each status dimension will have a value of <b>1</b> if triggered. Dimension <b>success</b> is <b>1</b> only if all constraints are satisfied. This chart is most useful for alerts or third-party apps.",groupBy:["label"],groupByLabel:["_collect_job"],dimensionsOnNonDimensionGrouping:["success"]},"netdata.response_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average API Response Time",layout:{x:6,y:0,w:3,h:5}}],info:"The netdata API response time measures the time netdata needed to serve requests. This time includes everything, from the reception of the first byte of a request, to the dispatch of the last byte of its reply, therefore it includes all network latencies involved (i.e. a client over a slow network will influence these metrics).",en:{instance:{one:"agent",other:"agents"}}},"netdata.server_cpu":{mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU usage per Agent",colors:s.default[12]}],info:"The CPU time consumed by Netdata process in user and system space.",en:{instance:{one:"agent",other:"agents"}}},"netdata.memory":{mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average memory usage per Agent",colors:s.default[1]}],info:"The memory consumed by the Netdata agent.",en:{instance:{one:"agent",other:"agents"}}},"netdata.net":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total network traffic across all agents",layout:{x:9,y:0,w:3,h:5}}],info:"The network traffic generated by Netdata agent.",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_threads":{info:'Show total number of threads and number of active threads. For more details about the threads, see the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ebpf-programs-configuration-options" target="_blank">official documentation</a>.',en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_load_methods":{info:"Show number of threads loaded using legacy code (independent binary) or <b>CO-RE (Compile Once Run Everywhere)</b>.",en:{instance:{one:"agent",other:"agents"}}},"retroshare.bandwidth":{info:"RetroShare inbound and outbound traffic.",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Inbound",selectedDimensions:["bandwidth_down_kb"],colors:s.default[0]},{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Outbound",selectedDimensions:["bandwidth_up_kb"],colors:s.default[1]}]},"retroshare.peers":{info:"Number of (connected) RetroShare friends.",mainheads:[{"group_by[0]":["selected"],urlOptions:["friends"],selectedDimensions:["peers_connected"],chartLibrary:"easypiechart",title:"Total Connected Friends",desiredUnits:""}]},"retroshare.dht":{info:"Statistics about RetroShare's DHT. These values are estimated!"},"fping.quality":{family:"quality",colors:s.default[10]},"fping.packets":{family:"packets"},"cgroup.cpu_limit":{aggregationMethod:"avg",valueRange:[0,null],mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,100],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum CPU Utilization (within limit)",units:"percentage",layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["cgroup_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],selectedDimensions:["used"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Utilization (within limit) per cgroup",units:"percentage",layout:{x:0,y:5,w:4,h:5}}],info:ce,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"max",groupingMethod:"max",valueRange:[0,100],chartLibrary:"gauge",title:"Maximum CPU Utilization",units:"percentage",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["cgroup_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Utilization per cgroup",units:"percentage",layout:{x:4,y:5,w:4,h:5}}],info:le,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttled":{aggregationMethod:"avg",info:de,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttled_duration":{aggregationMethod:"avg",info:he,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_shares":{info:ue,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_per_core":{aggregationMethod:"avg",info:me,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_some_pressure":{aggregationMethod:"avg",info:pe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_some_pressure_stall_time":{info:fe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_full_pressure":{aggregationMethod:"avg",info:ge,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_full_pressure_stall_time":{info:be,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.cpu_limit":{aggregationMethod:"avg",valueRange:[0,null],mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum CPU Utilization (within limit)",units:"percentage"}],info:ce,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"max",chartLibrary:"gauge",title:"Maximum CPU Utilization",units:"percentage"}],info:le,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttled":{aggregationMethod:"avg",info:de,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttled_duration":{aggregationMethod:"avg",info:he,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_shares":{info:ue,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_per_core":{aggregationMethod:"avg",info:me,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_some_pressure":{aggregationMethod:"avg",info:pe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_some_pressure_stall_time":{info:fe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_full_pressure":{aggregationMethod:"avg",info:ge,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_full_pressure_stall_time":{info:be,en:{instance:{one:"container",other:"containers"}}},"cgroup.mem_utilization":{aggregationMethod:"avg",info:ye,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_usage_limit":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",groupingMethod:"max",valueRange:[0,100],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum Memory Utilization (within limit)",layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["cgroup_name"],"aggregation[0]":"max",groupingMethod:"max",selectedDimensions:["used"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum Memory Utilization (within limit) per cgroup",layout:{x:8,y:5,w:4,h:5}}],info:ve,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_usage":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,selectedDimensions:["ram"],title:"Total RAM Used",colors:s.default[11],layout:{x:9,y:0,w:3,h:5}}],info:_e,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem":{info:we,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_failcnt":{info:ke,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.writeback":{info:Te,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_activity":{info:xe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.pgfaults":{info:Se,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_some_pressure":{aggregationMethod:"avg",info:Ce,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_some_pressure_stall_time":{info:Pe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_full_pressure":{aggregationMethod:"avg",info:Me,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_full_pressure_stall_time":{info:qe,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.mem_utilization":{aggregationMethod:"avg",info:ye,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_usage_limit":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",valueRange:[0,null],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum Memory Used (within limit)",units:"percentage"}],info:ve,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_usage":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["ram"],chartLibrary:"gauge",title:"Total RAM Used",units:"MB"}],info:_e,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem":{info:we,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_failcnt":{info:ke,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.writeback":{info:Te,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_activity":{info:xe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.pgfaults":{info:Se,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_some_pressure":{aggregationMethod:"avg",info:Ce,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_some_pressure_stall_time":{info:Pe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_full_pressure":{aggregationMethod:"avg",info:Me,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_full_pressure_stall_time":{info:qe,en:{instance:{one:"container",other:"containers"}}},"cgroup.io":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Disk Read",selectedDimensions:["read"],colors:s.default[0],priority:5,layout:{x:0,y:10,w:2,h:5}},{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Disk Write",selectedDimensions:["write"],colors:s.default[1],priority:6,layout:{x:2,y:10,w:2,h:5}}],info:Ie,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.serviced_ops":{info:Ee,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.queued_ops":{info:De,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.merged_ops":{info:Le,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttle_io":{info:Ne,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttle_serviced_ops":{info:Oe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_some_pressure":{aggregationMethod:"avg",info:Re,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_some_pressure_stall_time":{info:Ae,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_full_pressure":{aggregationMethod:"avg",info:Fe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_full_pressure_stall_time":{info:Ue,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.io":{info:Ie,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.serviced_ops":{info:Ee,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.queued_ops":{info:De,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.merged_ops":{info:Le,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttle_io":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["read"],chartLibrary:"gauge",title:"Total Read Disk I/O",desiredUnits:"KB/s"},{"group_by[0]":["selected"],selectedDimensions:["write"],chartLibrary:"gauge",title:"Total Write Disk I/O",desiredUnits:"KB/s"}],info:Ne,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttle_serviced_ops":{info:Oe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_some_pressure":{aggregationMethod:"avg",info:Re,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_some_pressure_stall_time":{info:Ae,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_full_pressure":{aggregationMethod:"avg",info:Fe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_full_pressure_stall_time":{info:Ue,en:{instance:{one:"container",other:"containers"}}},"cgroup.swap_read":{info:z,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.swap_write":{info:V,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_open":{info:k,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_open_error":{info:T,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_close":{info:x,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_close_error":{info:S,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_unlink":{info:R,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write":{info:I,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write_error":{info:D,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read":{info:E,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read_error":{info:L,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write_bytes":{info:N,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read_bytes":{info:O,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_fsync":{info:A,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_fsync_error":{info:F,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_open":{info:U,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_open_error":{info:B,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_create":{info:Z,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_create_error":{info:j,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.process_create":{info:b,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.thread_create":{info:y,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_exit":{info:v,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_close":{info:_,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_error":{info:w,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the directory cache. 100% means that every file that was accessed was present in the directory cache. If files are not present in the directory cache 1) they are not present in the file system, 2) the files were not accessed before. Read more about <a href="https://www.kernel.org/doc/htmldocs/filesystems/the_directory_cache.html" target="_blank">directory cache</a>. Netdata also gives a summary for these charts in <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Filesystem submenu</a>.',en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmget":{info:K,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmat":{info:J,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmdt":{info:X,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmctl":{info:Y,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.outbound_conn_v4":{info:$,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.outbound_conn_v6":{info:ee,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_send":{info:te,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_recv":{info:ne,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_tcp_send":{info:se,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_tcp_recv":{info:re,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_retransmit":{info:ae,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_udp_send":{info:oe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_udp_recv":{info:ie,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_hit_ratio":{aggregationMethod:"avg",info:C,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_reference":{info:P,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_not_cache":{info:M,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_not_found":{info:q,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_ratio":{aggregationMethod:"avg",info:H,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_dirties":{info:Q,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_hits":{info:G,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_misses":{info:W,en:{instance:{one:"cgroup",other:"cgroups"}}},"services.cpu":{aggregationMethod:"avg",info:'Total CPU utilization within the system-wide CPU resources (all cores). The amount of time spent by tasks of the cgroup in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel</a> modes.',en:{instance:{one:"system",other:"systems"}}},"services.mem_usage":{aggregationMethod:"avg",info:"The amount of used RAM.",en:{instance:{one:"system",other:"systems"}}},"services.mem_rss":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Resident_set_size" target="_blank">RSS</a> memory. It includes transparent hugepages.',en:{instance:{one:"system",other:"systems"}}},"services.mem_mapped":{info:'The size of <a href="https://en.wikipedia.org/wiki/Memory-mapped_file" target="_blank">memory-mapped</a> files.',en:{instance:{one:"system",other:"systems"}}},"services.mem_cache":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">page cache</a> memory.',en:{instance:{one:"system",other:"systems"}}},"services.mem_writeback":{info:'The amount of file/anon cache that is <a href="https://en.wikipedia.org/wiki/Cache_(computing)#Writing_policies" target="_blank">queued for syncing</a> to disk.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgfault":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Types" target="_blank">page faults</a>. It includes both minor and major page faults.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgmajfault":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major</a> page faults.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgpgin":{info:"The amount of memory charged to the cgroup. The charging event happens each time a page is accounted as either mapped anon page(RSS) or cache page(Page Cache) to the cgroup.",en:{instance:{one:"system",other:"systems"}}},"services.mem_pgpgout":{info:"The amount of memory uncharged from the cgroup. The uncharging event happens each time a page is unaccounted from the cgroup.",en:{instance:{one:"system",other:"systems"}}},"services.mem_failcnt":{info:"The number of memory usage hits limits.",en:{instance:{one:"system",other:"systems"}}},"services.swap_usage":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Memory_paging#Unix_and_Unix-like_systems" target="_blank">swap</a> memory.',en:{instance:{one:"system",other:"systems"}}},"services.io_read":{info:"The amount of data transferred from specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",en:{instance:{one:"system",other:"systems"}}},"services.io_write":{info:"The amount of data transferred to specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",en:{instance:{one:"system",other:"systems"}}},"services.io_ops_read":{info:"The number of read operations performed on specific devices as seen by the CFQ scheduler.",en:{instance:{one:"system",other:"systems"}}},"services.io_ops_write":{info:"The number write operations performed on specific devices as seen by the CFQ scheduler.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_read":{info:"The amount of data transferred from specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_write":{info:"The amount of data transferred to specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_ops_read":{info:"The number of read operations performed on specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_ops_write":{info:"The number of write operations performed on specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.queued_io_ops_read":{info:"The number of queued read requests.",en:{instance:{one:"system",other:"systems"}}},"services.queued_io_ops_write":{info:"The number of queued write requests.",en:{instance:{one:"system",other:"systems"}}},"services.merged_io_ops_read":{info:"The number of read requests merged.",en:{instance:{one:"system",other:"systems"}}},"services.merged_io_ops_write":{info:"The number of write requests merged.",en:{instance:{one:"system",other:"systems"}}},"services.swap_read":{info:z+'<div id="ebpf_services_swap_read"></div>',en:{instance:{one:"system",other:"systems"}}},"services.swap_write":{info:V+'<div id="ebpf_services_swap_write"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_open":{info:k+'<div id="ebpf_services_file_open"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_open_error":{info:T+'<div id="ebpf_services_file_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_close":{info:x+'<div id="ebpf_services_file_closed"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_close_error":{info:S+'<div id="ebpf_services_file_close_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_unlink":{info:R+'<div id="ebpf_services_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write":{info:I+'<div id="ebpf_services_vfs_write"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write_error":{info:D+'<div id="ebpf_services_vfs_write_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read":{info:E+'<div id="ebpf_services_vfs_read"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read_error":{info:L+'<div id="ebpf_services_vfs_read_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write_bytes":{info:N+'<div id="ebpf_services_vfs_write_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read_bytes":{info:O+'<div id="ebpf_services_vfs_read_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_fsync":{info:A+'<div id="ebpf_services_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_fsync_error":{info:F+'<div id="ebpf_services_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_open":{info:U+'<div id="ebpf_services_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_open_error":{info:B+'<div id="ebpf_services_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_create":{info:Z+'<div id="ebpf_services_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_create_error":{info:j+'<div id="ebpf_services_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.process_create":{info:b+'<div id="ebpf_services_process_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.thread_create":{info:y+'<div id="ebpf_services_thread_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_exit":{info:v+'<div id="ebpf_services_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_close":{info:_+'<div id="ebpf_services_task_release"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_error":{info:w+'<div id="ebpf_services_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_hit_ratio":{aggregationMethod:"avg",info:C+'<div id="ebpf_services_dc_hit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_reference":{info:P+'<div id="ebpf_services_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_not_cache":{info:M+'<div id="ebpf_services_dc_not_cache"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_not_found":{info:q+'<div id="ebpf_services_dc_not_found"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_ratio":{aggregationMethod:"avg",info:H+'<div id="ebpf_services_cachestat_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_dirties":{info:Q+'<div id="ebpf_services_cachestat_dirties"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_hits":{info:G+'<div id="ebpf_services_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_misses":{info:W+'<div id="ebpf_services_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmget":{info:K+'<div id="ebpf_services_shm_get"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmat":{info:J+'<div id="ebpf_services_shm_at"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmdt":{info:X+'<div id="ebpf_services_shm_dt"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmctl":{info:Y+'<div id="ebpf_services_shm_ctl"></div>',en:{instance:{one:"system",other:"systems"}}},"services.outbound_conn_v4":{info:$+'<div id="ebpf_services_outbound_conn_ipv4"></div>',en:{instance:{one:"system",other:"systems"}}},"services.outbound_conn_v6":{info:ee+'<div id="ebpf_services_outbound_conn_ipv6"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_bytes_send":{info:te+'<div id="ebpf_services_bandwidth_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_bytes_recv":{info:ne+'<div id="ebpf_services_bandwidth_received"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_tcp_send":{info:se+'<div id="ebpf_services_bandwidth_tcp_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_tcp_recv":{info:re+'<div id="ebpf_services_bandwidth_tcp_received"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_retransmit":{info:ae+'<div id="ebpf_services_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_udp_send":{info:oe+'<div id="ebpf_services_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_udp_recv":{info:ie+'<div id="ebpf_services_udp_recv"></div>',en:{instance:{one:"system",other:"systems"}}},"beanstalk.cpu_usage":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total CPU time consumed",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Amount of CPU Time for user and system used by beanstalkd."},"beanstalk.jobs_rate":{info:"The rate of jobs processed by the beanstalkd served."},"beanstalk.connections_rate":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Connections Rate",colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"The rate of connections opened to beanstalkd."},"beanstalk.commands_rate":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Commands Received Rate",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The rate of commands received by beanstalkd."},"beanstalk.current_tubes":{info:"Total number of current tubes on the server including the default tube (which always exists)."},"beanstalk.current_jobs":{info:"Current number of jobs in all tubes grouped by status: urgent, ready, reserved, delayed and buried."},"beanstalk.current_connections":{info:"Current number of connections group by connection type: written, producers, workers, waiting."},"beanstalk.binlog":{info:"The rate of records <b>written</b> to binlog and <b>migrated</b> as part of compaction."},"beanstalk.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:9,y:0,w:3,h:5}}],info:"Total time beanstalkd server has been up for."},"beanstalk.jobs":{info:"Number of jobs currently in the tube grouped by status: urgent, ready, reserved, delayed and buried."},"beanstalk.connections":{info:"The current number of connections to this tube grouped by connection type; using, waiting and watching."},"beanstalk.commands":{info:"The rate of <b>delete</b> and <b>pause</b> commands executed by beanstalkd."},"beanstalk.pause":{info:"Shows info on how long the tube has been paused for, and how long is left remaining on the pause."},"ceph.general_usage":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Usage",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The usage and available space in all ceph cluster."},"ceph.general_objects":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Objects",colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"Total number of objects storage on ceph cluster."},"ceph.general_bytes":{info:"Cluster read and write data per second."},"ceph.general_operations":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Operations",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Number of read and write operations per second."},"ceph.general_latency":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Latency",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Total of apply and commit latency in all OSDs. The apply latency is the total time taken to flush an update to disk. The commit latency is the total time taken to commit an operation to the journal."},"ceph.pool_usage":{info:"The usage space in each pool."},"ceph.pool_objects":{info:"Number of objects presents in each pool."},"ceph.pool_read_bytes":{info:"The rate of read data per second in each pool."},"ceph.pool_write_bytes":{info:"The rate of write data per second in each pool."},"ceph.pool_read_objects":{info:"Number of read objects per second in each pool."},"ceph.pool_write_objects":{info:"Number of write objects per second in each pool."},"ceph.osd_usage":{info:"The usage space in each OSD."},"ceph.osd_size":{info:"Each OSD's size"},"ceph.apply_latency":{aggregationMethod:"avg",info:"Time taken to flush an update in each OSD."},"ceph.commit_latency":{aggregationMethod:"avg",info:"Time taken to commit an operation to the journal in each OSD."},"web_log.squid_response_statuses":{info:"Squid responses by type. <b>success</b> includes <b>1xx</b>, <b>2xx</b>, <b>000</b>, <b>304</b>, <b>error</b> includes <b>5xx</b> and <b>6xx</b>, <b>redirect</b> includes <b>3xx</b> except <b>304</b>, <b>bad</b> includes <b>4xx</b>, <b>other</b> are all the other responses.",mainheads:[{"group_by[0]":["selected"],selectedDimensions:["success"],chartLibrary:"gauge",title:"Total Successful Responses",desiredUnits:"requests/s"},{"group_by[0]":["selected"],selectedDimensions:["redirect"],chartLibrary:"gauge",title:"Total Redirects",desiredUnits:"requests/s"},{"group_by[0]":["selected"],selectedDimensions:["bad"],chartLibrary:"gauge",title:"Total Bad Requests",desiredUnits:"requests/s"},{"group_by[0]":["selected"],selectedDimensions:["error"],chartLibrary:"gauge",title:"Total Server Errors",desiredUnits:"requests/s"}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_response_codes":{info:'Web server responses by code family. According to HTTP standards <b>1xx</b> are informational responses, <b>2xx</b> are successful responses, <b>3xx</b> are redirects (although they include <b>304</b> which is used as "<b>not modified</b>"), <b>4xx</b> are bad requests, <b>5xx</b> are internal server errors. Squid also defines <b>000</b> mostly for UDP requests, and <b>6xx</b> for broken upstream servers sending wrong headers. Finally, <b>other</b> are non-standard responses, and <b>unmatched</b> counts the lines in the log file that are not matched by the plugin (<a href="https://github.com/netdata/netdata/issues/new?title=web_log%20reports%20unmatched%20lines&body=web_log%20plugin%20reports%20unmatched%20lines.%0A%0AThis%20is%20my%20log:%0A%0A%60%60%60txt%0A%0Aplease%20paste%20your%20web%20server%20log%20here%0A%0A%60%60%60" target="_blank">let us know</a> if you have any unmatched).',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_duration":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",selectedDimensions:["avg"],chartLibrary:"gauge",title:"Average Response Time",desiredUnits:"milliseconds"}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_detailed_response_codes":{info:"Number of responses for each response code individually.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_clients":{info:"Unique client IPs accessing squid, within each data collection iteration. If data collection is <b>per second</b>, this chart shows <b>unique client IPs per second</b>.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_clients_all":{info:'Unique client IPs accessing squid since the last restart of netdata. This plugin keeps in memory all the unique IPs that have accessed the server. On very busy squid servers (several millions of unique IPs) you may want to disable this chart (check <a href="https://github.com/netdata/go.d.plugin/blob/master/config/go.d/web_log.conf" target="_blank"><b>/etc/netdata/go.d/web_log.conf</b></a>).',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_transport_methods":{info:"Break down per delivery method: <b>TCP</b> are requests on the HTTP port (usually 3128), <b>UDP</b> are requests on the ICP port (usually 3130), or HTCP port (usually 4128). If ICP logging was disabled using the log_icp_queries option, no ICP replies will be logged. <b>NONE</b> are used to state that squid delivered an unusual response or no response at all. Seen with cachemgr requests and errors, usually when the transaction fails before being classified into one of the above outcomes. Also seen with responses to <b>CONNECT</b> requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_code":{info:'These are combined squid result status codes. A break down per component is given in the following charts. Check the <a href="http://wiki.squid-cache.org/SquidFaq/SquidLogs" target="_blank">squid documentation about them</a>.',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_handling_opts":{info:"These tags are optional and describe why the particular handling was performed or where the request came from. <b>CLIENT</b> means that the client request placed limits affecting the response. Usually seen with client issued a <b>no-cache</b>, or analogous cache control command along with the request. Thus, the cache has to validate the object.<b>IMS</b> states that the client sent a revalidation (conditional) request. <b>ASYNC</b>, is used when the request was generated internally by Squid. Usually this is background fetches for cache information exchanges, background revalidation from stale-while-revalidate cache controls, or ESI sub-objects being loaded. <b>SWAPFAIL</b> is assigned when the object was believed to be in the cache, but could not be accessed. A new copy was requested from the server. <b>REFRESH</b> when a revalidation (conditional) request was sent to the server. <b>SHARED</b> when this request was combined with an existing transaction by collapsed forwarding. NOTE: the existing request is not marked as SHARED. <b>REPLY</b> when particular handling was requested in the HTTP reply from server or peer. Usually seen on DENIED due to http_reply_access ACLs preventing delivery of servers response object to the client.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_object_types":{info:"These tags are optional and describe what type of object was produced. <b>NEGATIVE</b> is only seen on HIT responses, indicating the response was a cached error response. e.g. <b>404 not found</b>. <b>STALE</b> means the object was cached and served stale. This is usually caused by stale-while-revalidate or stale-if-error cache controls. <b>OFFLINE</b> when the requested object was retrieved from the cache during offline_mode. The offline mode never validates any object. <b>INVALID</b> when an invalid request was received. An error response was delivered indicating what the problem was. <b>FAIL</b> is only seen on <b>REFRESH</b> to indicate the revalidation request failed. The response object may be the server provided network error or the stale object which was being revalidated depending on stale-if-error cache control. <b>MODIFIED</b> is only seen on <b>REFRESH</b> responses to indicate revalidation produced a new modified object. <b>UNMODIFIED</b> is only seen on <b>REFRESH</b> responses to indicate revalidation produced a <b>304</b> (Not Modified) status, which was relayed to the client. <b>REDIRECT</b> when squid generated an HTTP redirect response to this request.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_cache_events":{info:'These tags are optional and describe whether the response was loaded from cache, network, or otherwise. <b>HIT</b> when the response object delivered was the local cache object. <b>MEM</b> when the response object came from memory cache, avoiding disk accesses. Only seen on HIT responses. <b>MISS</b> when the response object delivered was the network response object. <b>DENIED</b> when the request was denied by access controls. <b>NOFETCH</b> an ICP specific type, indicating service is alive, but not to be used for this request (sent during "-Y" startup, or during frequent failures, a cache in hit only mode will return either UDP_HIT or UDP_MISS_NOFETCH. Neighbours will thus only fetch hits). <b>TUNNEL</b> when a binary tunnel was established for this transaction.',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_transport_errors":{info:"These tags are optional and describe some error conditions which occurred during response delivery (if any). <b>ABORTED</b> when the response was not completed due to the connection being aborted (usually by the client). <b>TIMEOUT</b>, when the response was not completed due to a connection timeout.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.type_requests":{info:"Web server responses by type. <b>success</b> includes <b>1xx</b>, <b>2xx</b>, <b>304</b> and <b>401</b>, <b>error</b> includes <b>5xx</b>, <b>redirect</b> includes <b>3xx</b> except <b>304</b>, <b>bad</b> includes <b>4xx</b> except <b>401</b>, <b>other</b> are all the other responses.",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Requests by Type",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.request_processing_time":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",selectedDimensions:["avg"],chartLibrary:"gauge",title:"Average Response Time",desiredUnits:"milliseconds"}],en:{instance:{one:"web server",other:"web servers"}}},"portcheck.latency":{aggregationMethod:"avg",info:"The <b>latency</b> describes the time spent connecting to a TCP port. No data is sent or received. Currently, the accuracy of the latency is low and should be used as reference only.",en:{instance:{one:"service",other:"services"}}},"portcheck.status":{info:"The <b>status</b> chart verifies the availability of the service. Each status dimension will have a value of <b>1</b> if triggered. Dimension <b>success</b> is <b>1</b> only if connection could be established. This chart is most useful for alerts and third-party apps.",en:{instance:{one:"service",other:"services"}}},"chrony.stratum":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",valueRange:[0,null],title:"Maximum Stratum",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The stratum indicates the distance (hops) to the computer with the reference clock. The higher the stratum number, the more the timing accuracy and stability degrades.",en:{instance:{one:"system",other:"systems"}}},"chrony.current_correction":{info:"Any error in the system clock is corrected by slightly speeding up or slowing down the system clock until the error has been removed, and then returning to the system clock\u2019s normal speed. A consequence of this is that there will be a period when the system clock (as read by other programs) will be different from chronyd's estimate of the current true time (which it reports to NTP clients when it is operating as a server). The reported value is the difference due to this effect.",en:{instance:{one:"system",other:"systems"}}},"chrony.root_delay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Root Delay",valueRange:[0,null],colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"The total of the network path delays to the stratum-1 computer from which the computer is ultimately synchronised.",en:{instance:{one:"system",other:"systems"}}},"chrony.root_dispersion":{aggregationMethod:"avg",info:"The total dispersion accumulated through all the computers back to the stratum-1 computer from which the computer is ultimately synchronised. Dispersion is due to system clock resolution, statistical measurement variations, etc.",en:{instance:{one:"system",other:"systems"}}},"chrony.last_offset":{aggregationMethod:"avg",info:"The estimated local offset on the last clock update. A positive value indicates the local time (as previously estimated true time) was ahead of the time sources.",en:{instance:{one:"system",other:"systems"}}},"chrony.frequency":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Max Frequency",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The <b>frequency</b> is the rate by which the system\u2019s clock would be wrong if chronyd was not correcting it. It is expressed in ppm (parts per million). For example, a value of 1 ppm would mean that when the system\u2019s clock thinks it has advanced 1 second, it has actually advanced by 1.000001 seconds relative to true time.",en:{instance:{one:"system",other:"systems"}}},"chrony.residual_frequency":{aggregationMethod:"avg",info:"The <b>residual frequency</b> for the currently selected reference source. This reflects any difference between what the measurements from the reference source indicate the frequency should be and the frequency currently being used. The reason this is not always zero is that a smoothing procedure is applied to the frequency.",en:{instance:{one:"system",other:"systems"}}},"chrony.skew":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Skew",layout:{x:9,y:0,w:3,h:5}}],info:"The estimated error bound on the frequency.",en:{instance:{one:"system",other:"systems"}}},"chrony.ref_measurement_time":{aggregationMethod:"min",info:"The time elapsed since the last measurement from the reference source was processed.",en:{instance:{one:"system",other:"systems"}}},"chrony.leap_status":{info:"<p>The current leap status of the source.</p><p><b>Normal</b> - indicates the normal status (no leap second). <b>InsertSecond</b> - indicates that a leap second will be inserted at the end of the month. <b>DeleteSecond</b> - indicates that a leap second will be deleted at the end of the month. <b>Unsynchronised</b> - the server has not synchronized properly with the NTP server.</p>",en:{instance:{one:"system",other:"systems"}}},"chrony.activity":{info:"<p>The number of servers and peers that are online and offline.</p><p><b>Online</b> - the server or peer is currently online (i.e. assumed by chronyd to be reachable). <b>Offline</b> - the server or peer is currently offline (i.e. assumed by chronyd to be unreachable, and no measurements from it will be attempted). <b>BurstOnline</b> - a burst command has been initiated for the server or peer and is being performed. After the burst is complete, the server or peer will be returned to the online state. <b>BurstOffline</b> - a burst command has been initiated for the server or peer and is being performed. After the burst is complete, the server or peer will be returned to the offline state. <b>Unresolved</b> - the name of the server or peer was not resolved to an address yet.</p>",en:{instance:{one:"system",other:"systems"}}},"chrony.rms_offset":{aggregationMethod:"avg",info:"The root mean square (RMS) offset of the system clock from true time. Large offsets may indicate a problem with the clock or network synchronization.",en:{instance:{one:"system",other:"systems"}}},"chrony.update_interval":{aggregationMethod:"avg",info:"The interval between clock updates. Shorter intervals may improve accuracy but may also increase network load.",en:{instance:{one:"system",other:"systems"}}},"couchdb.active_tasks":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Tasks",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Active tasks running on this CouchDB <b>cluster</b>. Four types of tasks currently exist: indexer (view building), replication, database compaction and view compaction.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.replicator_jobs":{info:'Detailed breakdown of any replication jobs in progress on this node. For more information, see the <a href="http://docs.couchdb.org/en/latest/replication/replicator.html" target="_blank">replicator documentation</a>.',en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.open_files":{info:'Count of all files held open by CouchDB. If this value seems pegged at 1024 or 4096, your server process is probably hitting the open file handle limit and <a href="http://docs.couchdb.org/en/latest/maintenance/performance.html#pam-and-ulimit" target="_blank">needs to be increased.</a>',en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.activity":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Activity",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The activity of CouchDB nodes in the cluster. The number of requests being handled by the nodes per second. High values may indicate a high workload on the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.request_methods":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Request Methods",layout:{x:6,y:0,w:3,h:5}}],info:"The distribution of request methods being used on CouchDB nodes in the cluster. This can be useful for identifying the most common operations being performed on the nodes and potential performance bottlenecks.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.response_codes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Response Codes",layout:{x:9,y:0,w:3,h:5}}],info:"The distribution of response codes returned by CouchDB nodes in the cluster. This can be useful for identifying common error codes and potential issues with the nodes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.response_code_classes":{info:"The distribution of response code classes returned by CouchDB nodes in the cluster. This can be useful for identifying the general class of responses being returned by the nodes (e.g. success, error) and potential issues with the nodes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.erlang_vm_memory":{info:"The amount of memory used by the Erlang virtual machine (VM) running on CouchDB nodes in the cluster. This can be useful for monitoring the overall memory usage of the nodes and potential capacity issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.proccounts":{info:"The number of Erlang processes running on CouchDB nodes in the cluster. This can be useful for monitoring the overall workload of the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.peakmsgqueue":{info:"The maximum size of the message queue on CouchDB nodes in the cluster. This can be useful for monitoring the overall workload of the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.reductions":{info:"The number of reductions performed by the Erlang VM on CouchDB nodes in the cluster. Reductions are a measure of the computational work done by the VM and high values may indicate a high workload on the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_file":{info:"The size of CouchDB databases on disk, including data and metadata. This can be useful for monitoring the overall size of the databases and potential capacity issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_external":{info:"The total size of CouchDB databases in external storage in bytes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_active":{info:"The total size of CouchDB databases in active memory in bytes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_doc_count":{info:"The total number of documents stored in CouchDB databases.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_doc_del_count":{info:"The total number of deleted documents stored in CouchDB databases.",en:{instance:{one:"cluster",other:"clusters"}}},"freeradius.authentication":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Authentication Requests",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The number of authentication requests that have been processed by the FreeRADIUS server. FreeRADIUS is a RADIUS server, and authentication requests are requests from clients to authenticate themselves with the server. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.authentication_access_responses":{info:"The number of access responses that have been sent by the FreeRADIUS server in response to authentication requests. Access responses are messages sent by the server to either grant or deny access to a client based on the authentication request. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.bad_authentication":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bad Authentication Requests",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"The number of bad authentication requests that have been received by the FreeRADIUS server. Bad authentication requests are requests that are improperly formatted or contain invalid data. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_authentication":{info:"The number of proxy authentication requests that have been processed by the FreeRADIUS server. Proxy authentication requests are requests from other RADIUS servers to authenticate a client on their behalf. Monitoring this metric can provide insight into the usage of the FreeRADIUS server as a proxy and can help identify any issues with proxy authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_authentication_access_responses":{info:"The number of access responses that have been sent by the FreeRADIUS server in response to proxy authentication requests. Access responses are messages sent by the server to either grant or deny access to a client based on the authentication request. Monitoring this metric can provide insight into the usage of the FreeRADIUS server as a proxy and can help identify any issues with proxy authentication requests.",en:{instance:{one:"server",other:"servers"}}},"geth.goroutines":{info:"The number of goroutines in the Geth process.",en:{instance:{one:"process",other:"processes"}}},"geth.chaindata_db_size":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total chain data size",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The size of the chain data database.",en:{instance:{one:"database",other:"databases"}}},"geth.chainhead":{info:"The current head of the blockchain."},"geth.p2p_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"The amount of bandwidth used by the P2P network.",en:{instance:{one:"network",other:"networks"}}},"geth.reorgs":{info:"The number of blockchain reorgs that have occurred."},"geth.reorgs_blocks":{info:"The number of blocks that have been reorganized in a blockchain reorg."},"geth.p2p_peers_calls":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total P2P peers calls",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The number of P2P peer calls made by the node."},"haproxy.backend_current_sessions":{info:"The number of current sessions in the backend of the HAProxy server. A session is a connection between a client and the server. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with session management.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_sessions":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"No. of Backend Sessions per proxy",layout:{x:0,y:0,w:3,h:5}}],info:"The total number of sessions in the backend of the HAProxy server. A session is a connection between a client and the server. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with session management.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_response_time_average":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average Response Time per proxy",layout:{x:3,y:0,w:3,h:5}}],info:"The average response time of the backend of the HAProxy server. The response time is the time it takes for the server to respond to a client's request. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with slow response times.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_queue_time_average":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",title:"Average Queue Time per proxy",layout:{x:9,y:0,w:3,h:5}}],info:"The average queue time of the backend of the HAProxy server. The queue time is the time a client's request spends in the server's queue before being processed. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with long queue times.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_current_queue":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Queue Size per proxy",layout:{x:6,y:0,w:3,h:5}}],info:"The current number of requests in the queue of the backend of the HAProxy server. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with the server's ability to handle incoming requests.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_http_responses":{info:"The number of HTTP responses sent by the backend of the HAProxy server. HTTP responses are messages sent by the server in response to client requests. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with HTTP responses.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_network_io":{info:"The network IO of the backend of the HAProxy server. Network IO is the amount of data transferred over the network by the server. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with network performance.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"hdfs.heap_memory":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Heap Memory",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The amount of heap memory used by the HDFS service. Heap memory is the memory allocated to the Java virtual machine for storing objects. Monitoring this metric can provide insight into the memory usage of the HDFS service and can help identify any issues with memory allocation.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_count_total":{info:"The total number of garbage collection (GC) events that have occurred in the HDFS service. GC events are processes that reclaim memory by removing unused objects. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_time_total":{info:"The total amount of time spent on garbage collection (GC) in the HDFS service. GC is a process that reclaims memory by removing unused objects. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_threshold":{info:"The GC threshold of the HDFS service. The GC threshold is the point at which the HDFS service triggers a GC event. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.rpc_bandwidth":{info:"The amount of bandwidth being used by HDFS Remote Procedure Calls (RPCs).",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.rpc_calls":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total RPC Calls",colors:s.default[7],layout:{x:3,y:0,w:3,h:5}}],info:"The number of HDFS Remote Procedure Calls (RPCs) being made.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.avg_queue_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Queue Time",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The average time spent in the queue for HDFS calls.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.avg_processing_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Processing Time",colors:s.default[0],layout:{x:9,y:0,w:3,h:5}}],info:"The average time spent processing HDFS calls.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.datanode_capacity":{info:"The capacity of the HDFS DataNode.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.datanode_bandwidth":{info:"The bandwidth used by the HDFS DataNode.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"isc_dhcps.active_leases_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Leases",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of active leases in the ISC DHCP server. A lease is a contract that allows a client to use a particular IP address for a specified period of time. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with lease management.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"isc_dhcps.pool_active_leases":{info:"The number of active leases in a DHCP pool of the ISC DHCP server. A DHCP pool is a range of IP addresses that are available for allocation to clients. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with DHCP pool management.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"isc_dhcps.pool_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Pool Utilization",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The utilization of a DHCP pool in the ISC DHCP server. The utilization is the percentage of IP addresses in the pool that are currently leased to clients. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with DHCP pool utilization.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"btrfs.disk":{family:"utilization",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",selectedDimensions:["unallocated"],title:"Maximum Unallocated Physical Disk Space",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Physical disk usage of BTRFS. The disk space reported here is the raw physical disk space assigned to the BTRFS volume (i.e. <b>before any RAID levels</b>). BTRFS uses a two-stage allocator, first allocating large regions of disk space for one type of block (data, metadata, or system), and then using a regular block allocator inside those regions. <b>unallocated</b> is the physical disk space that is not allocated yet and is available to become data, metadata or system on demand. When <b>unallocated</b> is zero, all available disk space has been allocated to a specific function. Healthy volumes should ideally have at least five percent of their total space <b>unallocated</b>. You can keep your volume healthy by running the <b>btrfs balance</b> command on it regularly (check <b>man btrfs-balance</b> for more info). Note that some of the space listed as <b>unallocated</b> may not actually be usable if the volume uses devices of different sizes.",en:{instance:{one:"device",other:"devices"}}},"btrfs.data":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (data)",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"Logical disk usage for BTRFS data. Data chunks are used to store the actual file data (file contents). The disk space reported here is the usable allocation (i.e. after any striping or replication). Healthy volumes should ideally have no more than a few GB of free space reported here persistently. Running <b>btrfs balance</b> can help here.",en:{instance:{one:"device",other:"devices"}}},"btrfs.metadata":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (metadata)",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"Logical disk usage for BTRFS metadata. Metadata chunks store most of the filesystem internal structures, as well as information like directory structure and file names. The disk space reported here is the usable allocation (i.e. after any striping or replication). Healthy volumes should ideally have no more than a few GB of free space reported here persistently. Running <b>btrfs balance</b> can help here.",en:{instance:{one:"device",other:"devices"}}},"btrfs.system":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (system)",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:"Logical disk usage for BTRFS system. System chunks store information about the allocation of other chunks. The disk space reported here is the usable allocation (i.e. after any striping or replication). The values reported here should be relatively small compared to Data and Metadata, and will scale with the volume size and overall space usage.",en:{instance:{one:"device",other:"devices"}}},"rabbitmq.queued_messages":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queued Messages",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Overall total of ready and unacknowledged queued messages. Messages that are delivered immediately are not counted here."},"rabbitmq.message_rates":{info:"Overall messaging rates including acknowledgements, deliveries, redeliveries, and publishes."},"rabbitmq.global_counts":{info:"Overall totals for channels, consumers, connections, queues and exchanges."},"rabbitmq.file_descriptors":{info:'Total number of used filed descriptors. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-file-handle-limit" target="_blank">Open File Limits</a></b> for further details.'},"rabbitmq.sockets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Sockets Used",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:'Total number of used socket descriptors. Each used socket also counts as a used file descriptor. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-file-handle-limit" target="_blank">Open File Limits</a></b> for further details.'},"rabbitmq.processes":{info:"Total number of processes running within the Erlang VM. This is not the same as the number of processes running on the host."},"rabbitmq.erlang_run_queue":{info:"Number of Erlang processes the Erlang schedulers have queued to run."},"rabbitmq.memory":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Memory Used",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:'Total amount of memory used by the RabbitMQ. This is a complex statistic that can be further analyzed in the management UI. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-ram" target="_blank">Memory</a></b> for further details.'},"rabbitmq.disk_space":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Disk Space Consumed",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:'Total amount of disk space consumed by the message store(s). See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-disk-space" target=_"blank">Disk Space Limits</a></b> for further details.'},"rabbitmq.queue_messages":{info:"Total amount of messages and their states in this queue."},"rabbitmq.queue_messages_stats":{info:"Overall messaging rates including acknowledgements, deliveries, redeliveries, and publishes."},"ntpd.sys_offset":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum System Offset",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"For hosts without any time critical services an offset of &lt; 100 ms should be acceptable even with high network latencies. For hosts with time critical services an offset of about 0.01 ms or less can be achieved by using peers with low delays and configuring optimal <b>poll exponent</b> values.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_jitter":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average System Jitter",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The jitter statistics are exponentially-weighted RMS averages. The system jitter is defined in the NTPv4 specification; the clock jitter statistic is computed by the clock discipline module.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_frequency":{info:"The frequency offset is shown in ppm (parts per million) relative to the frequency of the system. The frequency correction needed for the clock can vary significantly between boots and also due to external influences like temperature or radiation.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_wander":{info:"The wander statistics are exponentially-weighted RMS averages.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_rootdelay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average System Root Delay",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The rootdelay is the round-trip delay to the primary reference clock, similar to the delay shown by the <b>ping</b> command. A lower delay should result in a lower clock offset.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_stratum":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum System Stratum",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:'The distance in "hops" to the primary reference clock',en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_tc":{info:'Time constants and poll intervals are expressed as exponents of 2. The default poll exponent of 6 corresponds to a poll interval of 64 s. For typical Internet paths, the optimum poll interval is about 64 s. For fast LANs with modern computers, a poll exponent of 4 (16 s) is appropriate. The <a href="http://doc.ntp.org/current-stable/poll.html" target="_blank">poll process</a> sends NTP packets at intervals determined by the clock discipline algorithm.',en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_precision":{colors:s.default[6],en:{instance:{one:"system",other:"systems"}}},"ntpd.peer_offset":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Peer Offset",colors:s.default[1],layout:{x:0,y:5,w:2,h:5}}],info:"The offset of the peer clock relative to the system clock in milliseconds. Smaller values here weight peers more heavily for selection after the initial synchronization of the local clock. For a system providing time service to other systems, these should be as low as possible.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_delay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Peer Delay",colors:s.default[12],layout:{x:0,y:5,w:2,h:5}}],info:"The round-trip time (RTT) for communication with the peer, similar to the delay shown by the <b>ping</b> command. Not as critical as either the offset or jitter, but still factored into the selection algorithm (because as a general rule, lower delay means more accurate time). In most cases, it should be below 100ms.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_dispersion":{info:"This is a measure of the estimated error between the peer and the local system. Lower values here are better.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_jitter":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Peer Jitter",colors:s.default[4],layout:{x:0,y:5,w:2,h:5}}],info:"This is essentially a remote estimate of the peer's <b>system_jitter</b> value. Lower values here weight highly in favor of peer selection, and this is a good indicator of overall quality of a given time server (good servers will have values not exceeding single digit milliseconds here, with high quality stratum one servers regularly having sub-millisecond jitter).",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_xleave":{info:'This variable is used in interleaved mode (used only in NTP symmetric and broadcast modes). See <a href="http://doc.ntp.org/current-stable/xleave.html" target="_blank">NTP Interleaved Modes</a>.',en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_rootdelay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Peer Root Delay",colors:s.default[7],layout:{x:0,y:5,w:2,h:5}}],info:"For a stratum 1 server, this is the access latency for the reference clock. For lower stratum servers, it is the sum of the <b>peer_delay</b> and <b>peer_rootdelay</b> for the system they are syncing off of. Similarly to <b>peer_delay</b>, lower values here are technically better, but have limited influence in peer selection.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_rootdisp":{info:"Is the same as <b>peer_rootdelay</b>, but measures accumulated <b>peer_dispersion</b> instead of accumulated <b>peer_delay</b>.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_hmode":{info:"The <b>peer_hmode</b> and <b>peer_pmode</b> variables give info about what mode the packets being sent to and received from a given peer are. Mode 1 is symmetric active (both the local system and the remote peer have each other declared as peers in <b>/etc/ntp.conf</b>), Mode 2 is symmetric passive (only one side has the other declared as a peer), Mode 3 is client, Mode 4 is server, and Mode 5 is broadcast (also used for multicast and manycast operation).",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_pmode":{en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_hpoll":{info:"The <b>peer_hpoll</b> and <b>peer_ppoll</b> variables are log2 representations of the polling interval in seconds.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_ppoll":{en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_precision":{en:{instance:{one:"peer",other:"peers"}}},"spigotmc.tps":{info:"The running 1, 5, and 15 minute average number of server ticks per second. An idealized server will show 20.0 for all values, but in practice this almost never happens. Typical servers should show approximately 19.98-20.0 here. Lower values indicate progressively more server-side lag (and thus that you need better hardware for your server or a lower user limit). For every 0.05 ticks below 20, redstone clocks will lag behind by approximately 0.25%. Values below approximately 19.50 may interfere with complex free-running redstone circuits and will noticeably slow down growth."},"spigotmc.users":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Users",colors:s.default[12],layout:{x:0,y:0,w:3,h:5}}],info:"The number of currently connected users on the monitored Spigot server."},"boinc.tasks":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Tasks",colors:s.default[12],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of tasks and the number of active tasks. Active tasks are those which are either currently being processed, or are partially processed but suspended.",en:{instance:{one:"client",other:"clients"}}},"boinc.states":{mainheads:[{chartLibrary:"bars",title:"Task States",layout:{x:3,y:0,w:3,h:5}}],info:"Counts of tasks in each task state. The normal sequence of states is <b>New</b>, <b>Downloading</b>, <b>Ready to Run</b>, <b>Uploading</b>, <b>Uploaded</b>. Tasks which are marked <b>Ready to Run</b> may be actively running, or may be waiting to be scheduled. <b>Compute Errors</b> are tasks which failed for some reason during execution. <b>Aborted</b> tasks were manually cancelled, and will not be processed. <b>Failed Uploads</b> are otherwise finished tasks which failed to upload to the server, and usually indicate networking issues.",en:{instance:{one:"client",other:"clients"}}},"boinc.sched":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Task Scheduling States",layout:{x:6,y:0,w:3,h:5}}],info:"Counts of active tasks in each scheduling state. <b>Scheduled</b> tasks are the ones which will run if the system is permitted to process tasks. <b>Preempted</b> tasks are on standby, and will run if a <b>Scheduled</b> task stops running for some reason. <b>Uninitialized</b> tasks should never be present, and indicate tha the scheduler has not tried to schedule them yet.",en:{instance:{one:"client",other:"clients"}}},"boinc.process":{info:"Counts of active tasks in each process state. <b>Executing</b> tasks are running right now. <b>Suspended</b> tasks have an associated process, but are not currently running (either because the system isn't processing any tasks right now, or because they have been preempted by higher priority tasks). <b>Quit</b> tasks are exiting gracefully. <b>Aborted</b> tasks exceeded some resource limit, and are being shut down. <b>Copy Pending</b> tasks are waiting on a background file transfer to finish. <b>Uninitialized</b> tasks do not have an associated process yet.",en:{instance:{one:"client",other:"clients"}}},"w1sensor.temp":{aggregationMethod:"avg",info:"Temperature derived from 1-Wire temperature sensors.",en:{instance:{one:"sensor",other:"sensors"}}},"logind.sessions":{info:"Local and remote sessions.",en:{instance:{one:"system",other:"systems"}}},"logind.sessions_type":{mainheads:[{chartLibrary:"bars",title:"Session Types",layout:{x:0,y:0,w:3,h:5}}],info:"<p>Sessions of each session type.</p><p><b>Graphical</b> - sessions are running under one of X11, Mir, or Wayland. <b>Console</b> - sessions are usually regular text mode local logins, but depending on how the system is configured may have an associated GUI. <b>Other</b> - sessions are those that do not fall into the above categories (such as sessions for cron jobs or systemd timer units).</p>",en:{instance:{one:"system",other:"systems"}}},"logind.sessions_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Session States",layout:{x:3,y:0,w:3,h:5}}],info:"<p>Sessions of each session type.</p><p><b>Graphical</b> - sessions are running under one of X11, Mir, or Wayland. <b>Console</b> - sessions are usually regular text mode local logins, but depending on how the system is configured may have an associated GUI. <b>Other</b> - sessions are those that do not fall into the above categories (such as sessions for cron jobs or systemd timer units).</p>",en:{instance:{one:"system",other:"systems"}}},"logind.users_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"User States",layout:{x:6,y:0,w:3,h:5}}],info:"<p>Users in each user state.</p><p><b>Offline</b> - users are not logged in. <b>Closing</b> - users are in the process of logging out without lingering. <b>Online</b> - users are logged in, but have no active sessions. <b>Lingering</b> - users are not logged in, but have one or more services still running. <b>Active</b> - users are logged in, and have at least one active session.</p>",en:{instance:{one:"system",other:"systems"}}},"proxysql.pool_status":{info:"The status of the backend servers. <b>1=ONLINE</b> backend server is fully operational, <b>2=SHUNNED</b> backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold, <b>3=OFFLINE_SOFT</b> when a server is put into OFFLINE_SOFT mode, new incoming connections aren't accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend, <b>4=OFFLINE_HARD</b> when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren't accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work, <b>-1</b> Unknown status.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_net":{info:"The amount of data sent to/received from the backend (This does not include metadata (packets' headers, OK/ERR packets, fields' description, etc).",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_overall_net":{info:"The amount of data sent to/received from the all backends (This does not include metadata (packets' headers, OK/ERR packets, fields' description, etc).",en:{instance:{one:"server",other:"servers"}}},"proxysql.questions":{info:"<b>questions</b> total number of queries sent from frontends, <b>slow_queries</b> number of queries that ran for longer than the threshold in milliseconds defined in global variable <b>mysql-long_query_time</b>. ",en:{instance:{one:"server",other:"servers"}}},"proxysql.connections":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["connected"],chartLibrary:"easypiechart",title:"Total Connected connections",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["selected"],selectedDimensions:["aborted"],chartLibrary:"easypiechart",title:"Total Aborted connections",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:"<b>aborted</b> number of frontend connections aborted due to invalid credential or max_connections reached, <b>connected</b> number of frontend connections currently connected, <b>created</b> number of frontend connections created, <b>non_idle</b> number of frontend connections that are not currently idle. ",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_latency":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Max Pool Latency",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The currently ping time in microseconds, as reported from Monitor.",en:{instance:{one:"server",other:"servers"}}},"proxysql.queries":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queries",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The number of queries routed towards this particular backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_used_connections":{info:"The number of connections are currently used by ProxySQL for sending queries to the backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_free_connections":{info:"The number of connections are currently free. They are kept open in order to minimize the time cost of sending a query to the backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_ok_connections":{info:"The number of connections were established successfully.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_error_connections":{info:"The number of connections weren't established successfully.",en:{instance:{one:"server",other:"servers"}}},"proxysql.commands_count":{info:"The total number of commands of that type executed",en:{instance:{one:"server",other:"servers"}}},"proxysql.commands_duration":{info:"The total time spent executing commands of that type, in ms",en:{instance:{one:"server",other:"servers"}}},"sensors.temperature":{groupBy:["node"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The temperature of the system as reported by the sensors. High values can indicate cooling issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.fan":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Fan Speed",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The speed of the system fans as reported by the sensors. Low values can indicate cooling issues while high values can indicate excessive noise.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.voltage":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"easypiechart",title:"Minimum Voltage",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The voltage of the system as reported by the sensors. Low values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.current":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Current",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:"The current of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.power":{groupBy:["node"],aggregationMethod:"avg",info:"The power of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.energy":{groupBy:["node"],aggregationMethod:"avg",info:"The energy of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.humidity":{groupBy:["node"],aggregationMethod:"max",info:"The humidity of the system as reported by the sensors. High values can indicate cooling issues.",en:{instance:{one:"sensor",other:"sensors"}}},"tomcat.accesses":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The number of requests made to the Tomcat server. It is important to monitor this metric to ensure that the server is not overloaded.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The amount of network bandwidth used by the Tomcat server. It is important to monitor this metric to ensure that the server is not overloaded.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.threads":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Threads",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The number of threads running in the Tomcat application. It is important to monitor this metric to ensure that the application is running efficiently.",en:{instance:{one:"web server",other:"web servers"}}},"tor.traffic":{info:"This metric tracks Tor traffic statistics collected form the Tor control port. It is important to monitor this metric to ensure that the Tor network is not overloaded.",en:{instance:{one:"server",other:"servers"}}},"powersupply.capacity":{family:"charge",aggregationMethod:"avg",info:"The current battery charge.",en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.charge":{family:"charge",info:'<p>The battery charge in Amp-hours.</p><p><b>now</b> - actual charge value. <b>full</b>, <b>empty</b> - last remembered value of charge when battery became full/empty. It also could mean "value of charge when battery considered full/empty at given conditions (temperature, age)". I.e. these attributes represents real thresholds, not design values. <b>full_design</b>, <b>empty_design</b> - design charge values, when battery considered full/empty.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.energy":{family:"charge",info:'<p>The battery charge in Watt-hours.</p><p><b>now</b> - actual charge value. <b>full</b>, <b>empty</b> - last remembered value of charge when battery became full/empty. It also could mean "value of charge when battery considered full/empty at given conditions (temperature, age)". I.e. these attributes represents real thresholds, not design values. <b>full_design</b>, <b>empty_design</b> - design charge values, when battery considered full/empty.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.voltage":{family:"voltage",info:'<p>The power supply voltage.</p><p><b>now</b> - current voltage. <b>max</b>, <b>min</b> - voltage values that hardware could only guess (measure and retain) the thresholds of a given power supply. <b>max_design</b>, <b>min_design</b> - design values for maximal and minimal power supply voltages. Maximal/minimal means values of voltages when battery considered "full"/"empty" at normal conditions.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"vsphere.host_mem_usage_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Hosts by Memory Usage",dimensionsSort:"valueDesc",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Percentage of used machine memory: <b>consumed</b> / <b>machine-memory-size</b>.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_mem_usage":{info:'<b>granted</b> is amount of machine memory that is mapped for a host, it equals sum of all granted metrics for all powered-on virtual machines, plus machine memory for vSphere services on the host. <b>consumed</b> is amount of machine memory used on the host, it includes memory used by the Service Console, the VMkernel, vSphere services, plus the total consumed metrics for all running virtual machines. <b>consumed</b> = <b>total host memory</b> - <b>free host memory</b>.<b>active</b> is sum of all active metrics for all powered-on virtual machines plus vSphere services (such as COS, vpxa) on the host.<b>shared</b> is sum of all shared metrics for all powered-on virtual machines, plus amount for vSphere services on the host. <b>sharedcommon</b> is amount of machine memory that is shared by all powered-on virtual machines and vSphere services on the host. <b>shared</b> - <b>sharedcommon</b> = machine memory (host memory) savings (KB). For details see <a href="https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-BFDC988B-F53D-4E97-9793-A002445AFAE1.html" target="_blank">Measuring and Differentiating Types of Memory Usage</a> and <a href="https://vdc-repo.vmware.com/vmwb-repository/dcr-public/fe08899f-1eec-4d8d-b3bc-a6664c168c2c/7fdf97a1-4c0d-4be0-9d43-2ceebbc174d9/doc/memory_counters.html" target="_blank">Memory Counters</a> articles.',en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_mem_swap_rate":{info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>in</b> is sum of <b>swapinRate</b> values for all powered-on virtual machines on the host.<b>swapinRate</b> is rate at which VMKernel reads data into machine memory from the swap file. <b>out</b> is sum of <b>swapoutRate</b> values for all powered-on virtual machines on the host.<b>swapoutRate</b> is rate at which VMkernel writes to the virtual machine\u2019s swap file from machine memory.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.vm_mem_usage_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top VMs by Memory Usage",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"Percentage of used virtual machine \u201cphysical\u201d memory: <b>active</b> / <b>virtual machine configured size</b>.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_usage":{info:'<b>granted</b> is amount of guest \u201cphysical\u201d memory that is mapped to machine memory, it includes <b>shared</b> memory amount. <b>consumed</b> is amount of guest \u201cphysical\u201d memory consumed by the virtual machine for guest memory, <b>consumed</b> = <b>granted</b> - <b>memory saved due to memory sharing</b>. <b>active</b> is amount of memory that is actively used, as estimated by VMkernel based on recently touched memory pages. <b>shared</b> is amount of guest \u201cphysical\u201d memory shared with other virtual machines (through the VMkernel\u2019s transparent page-sharing mechanism, a RAM de-duplication technique). For details see <a href="https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-BFDC988B-F53D-4E97-9793-A002445AFAE1.html" target="_blank">Measuring and Differentiating Types of Memory Usage</a> and <a href="https://vdc-repo.vmware.com/vmwb-repository/dcr-public/fe08899f-1eec-4d8d-b3bc-a6664c168c2c/7fdf97a1-4c0d-4be0-9d43-2ceebbc174d9/doc/memory_counters.html" target="_blank">Memory Counters</a> articles.',en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_swap_rate":{info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>in</b> is rate at which VMKernel reads data into machine memory from the swap file. <b>out</b> is rate at which VMkernel writes to the virtual machine\u2019s swap file from machine memory.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_swap":{info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>swapped</b> is amount of guest physical memory swapped out to the virtual machine's swap file by the VMkernel. Swapped memory stays on disk until the virtual machine needs it.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.cpu_usage_total":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",dimensions:["consumed"],chartLibrary:"easypiechart",title:"Average CPU Usage",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"Summary CPU usage statistics across all CPUs/cores."},"vsphere.net_bandwidth_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.net_packets_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.net_errors_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.net_drops_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.disk_usage_total":{info:"Summary read/write statistics across all disks."},"vsphere.disk_max_latency":{aggregationMethod:"avg",info:"<b>latency</b> is highest latency value across all disks."},"vsphere.overall_status":{info:"<b>0</b> is unknown, <b>1</b> is OK, <b>2</b> is might have a problem, <b>3</b> is definitely has a problem."},"vcsa.system_health":{info:"<b>-1</b>: unknown; <b>0</b>: all components are healthy; <b>1</b>: one or more components might become overloaded soon; <b>2</b>: one or more components in the appliance might be degraded; <b>3</b>: one or more components might be in an unusable status and the appliance might become unresponsive soon; <b>4</b>: no health data is available.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.components_health":{info:"<b>-1</b>: unknown; <b>0</b>: healthy; <b>1</b>: healthy, but may have some problems; <b>2</b>: degraded, and may have serious problems; <b>3</b>: unavailable, or will stop functioning soon; <b>4</b>: no health data is available.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.software_updates_health":{info:"<b>softwarepackages</b> represents information on available software updates available in the remote vSphere Update Manager repository.<br><b>-1</b>: unknown; <b>0</b>: no updates available; <b>2</b>: non-security updates are available; <b>3</b>: security updates are available; <b>4</b>: an error retrieving information on software updates.",en:{instance:{one:"server appliance",other:"server appliances"}}},"zookeeper.server_state":{info:"<b>0</b>: unknown, <b>1</b>: leader, <b>2</b>: follower, <b>3</b>: observer, <b>4</b>: standalone.",en:{instance:{one:"server",other:"servers"}}},"squidlog.requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Total number of requests (log lines read). It includes <b>unmatched</b>."},"squidlog.excluded_requests":{info:'<b>unmatched</b> counts the lines in the log file that are not matched by the plugin parser (<a href="https://github.com/netdata/netdata/issues/new?title=squidlog%20reports%20unmatched%20lines&body=squidlog%20plugin%20reports%20unmatched%20lines.%0A%0AThis%20is%20my%20log:%0A%0A%60%60%60txt%0A%0Aplease%20paste%20your%20squid%20server%20log%20here%0A%0A%60%60%60" target="_blank">let us know</a> if you have any unmatched).'},"squidlog.type_requests":{info:"Requests by response type:<br><ul> <li><b>success</b> includes 1xx, 2xx, 0, 304, 401.</li> <li><b>error</b> includes 5xx and 6xx.</li> <li><b>redirect</b> includes 3xx except 304.</li> <li><b>bad</b> includes 4xx except 401.</li> </ul>"},"squidlog.http_status_code_class_responses":{info:'The HTTP response status code classes. According to <a href="https://tools.ietf.org/html/rfc7231" target="_blank">rfc7231</a>:<br> <li><b>1xx</b> is informational responses.</li> <li><b>2xx</b> is successful responses.</li> <li><b>3xx</b> is redirects.</li> <li><b>4xx</b> is bad requests.</li> <li><b>5xx</b> is internal server errors.</li> </ul>Squid also uses <b>0</b> for a result code being unavailable, and <b>6xx</b> to signal an invalid header, a proxy error.'},"squidlog.http_status_code_responses":{info:"Number of responses for each http response status code individually."},"squidlog.uniq_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Unique Clients",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"Unique clients (requesting instances), within each data collection iteration. If data collection is <b>per second</b>, this chart shows <b>unique clients per second</b>."},"squidlog.bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The size is the amount of data delivered to the clients. Mind that this does not constitute the net object size, as headers are also counted. Also, failed requests may deliver an error page, the size of which is also logged here."},"squidlog.response_time":{aggregationMethod:"avg",info:"The elapsed time considers how many milliseconds the transaction busied the cache. It differs in interpretation between TCP and UDP:<ul> <li><b>TCP</b> this is basically the time from having received the request to when Squid finishes sending the last byte of the response.</li> <li><b>UDP</b> this is the time between scheduling a reply and actually sending it.</li> </ul>Please note that <b>the entries are logged after the reply finished being sent</b>, not during the lifetime of the transaction."},"squidlog.cache_result_code_requests":{info:'The Squid result code is composed of several tags (separated by underscore characters) which describe the response sent to the client. Check the <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Squid_result_codes" target="_blank">squid documentation</a> about them.'},"squidlog.cache_result_code_transport_tag_requests":{info:"These tags are always present and describe delivery method.<br><ul> <li><b>TCP</b> requests on the HTTP port (usually 3128).</li> <li><b>UDP</b> requests on the ICP port (usually 3130) or HTCP port (usually 4128).</li> <li><b>NONE</b> Squid delivered an unusual response or no response at all. Seen with cachemgr requests and errors, usually when the transaction fails before being classified into one of the above outcomes. Also seen with responses to CONNECT requests.</li> </ul>"},"squidlog.cache_result_code_handling_tag_requests":{info:'These tags are optional and describe why the particular handling was performed or where the request came from.<br><ul> <li><b>CF</b> at least one request in this transaction was collapsed. See <a href="http://www.squid-cache.org/Doc/config/collapsed_forwarding/" target="_blank">collapsed_forwarding</a> for more details about request collapsing.</li> <li><b>CLIENT</b> usually seen with client issued a "no-cache", or analogous cache control command along with the request. Thus, the cache has to validate the object.</li> <li><b>IMS</b> the client sent a revalidation (conditional) request.</li> <li><b>ASYNC</b> the request was generated internally by Squid. Usually this is background fetches for cache information exchanges, background revalidation from <i>stale-while-revalidate</i> cache controls, or ESI sub-objects being loaded.</li> <li><b>SWAPFAIL</b> the object was believed to be in the cache, but could not be accessed. A new copy was requested from the server.</li> <li><b>REFRESH</b> a revalidation (conditional) request was sent to the server.</li> <li><b>SHARED</b> this request was combined with an existing transaction by collapsed forwarding.</li> <li><b>REPLY</b> the HTTP reply from server or peer. Usually seen on <b>DENIED</b> due to <a href="http://www.squid-cache.org/Doc/config/http_reply_access/" target="_blank">http_reply_access</a> ACLs preventing delivery of servers response object to the client.</li> </ul>'},"squidlog.cache_code_object_tag_requests":{info:'These tags are optional and describe what type of object was produced.<br><ul> <li><b>NEGATIVE</b> only seen on HIT responses, indicating the response was a cached error response. e.g. <b>404 not found</b>.</li> <li><b>STALE</b> the object was cached and served stale. This is usually caused by <i>stale-while-revalidate</i> or <i>stale-if-error</i> cache controls.</li> <li><b>OFFLINE</b> the requested object was retrieved from the cache during <a href="http://www.squid-cache.org/Doc/config/offline_mode/" target="_blank">offline_mode</a>. The offline mode never validates any object.</li> <li><b>INVALID</b> an invalid request was received. An error response was delivered indicating what the problem was.</li> <li><b>FAILED</b> only seen on <b>REFRESH</b> to indicate the revalidation request failed. The response object may be the server provided network error or the stale object which was being revalidated depending on stale-if-error cache control.</li> <li><b>MODIFIED</b> only seen on <b>REFRESH</b> responses to indicate revalidation produced a new modified object.</li> <li><b>UNMODIFIED</b> only seen on <b>REFRESH</b> responses to indicate revalidation produced a 304 (Not Modified) status. The client gets either a full 200 (OK), a 304 (Not Modified), or (in theory) another response, depending on the client request and other details.</li> <li><b>REDIRECT</b> Squid generated an HTTP redirect response to this request.</li> </ul>'},"squidlog.cache_code_load_source_tag_requests":{info:"These tags are optional and describe whether the response was loaded from cache, network, or otherwise.<br><ul> <li><b>HIT</b> the response object delivered was the local cache object.</li> <li><b>MEM</b> the response object came from memory cache, avoiding disk accesses. Only seen on HIT responses.</li> <li><b>MISS</b> the response object delivered was the network response object.</li> <li><b>DENIED</b> the request was denied by access controls.</li> <li><b>NOFETCH</b> an ICP specific type, indicating service is alive, but not to be used for this request.</li> <li><b>TUNNEL</b> a binary tunnel was established for this transaction.</li> </ul>"},"squidlog.cache_code_error_tag_requests":{info:"These tags are optional and describe some error conditions which occurred during response delivery.<br><ul> <li><b>ABORTED</b> the response was not completed due to the connection being aborted (usually by the client).</li> <li><b>TIMEOUT</b> the response was not completed due to a connection timeout.</li> <li><b>IGNORED</b> while refreshing a previously cached response A, Squid got a response B that was older than A (as determined by the Date header field). Squid ignored response B (and attempted to use A instead).</li> </ul>"},"squidlog.http_method_requests":{info:'The request method to obtain an object. Please refer to section <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Request_methods" target="_blank">request-methods</a> for available methods and their description.'},"squidlog.hier_code_requests":{info:'A code that explains how the request was handled, e.g. by forwarding it to a peer, or going straight to the source. Any hierarchy tag may be prefixed with <b>TIMEOUT_</b>, if the timeout occurs waiting for all ICP replies to return from the neighbours. The timeout is either dynamic, if the <a href="http://www.squid-cache.org/Doc/config/icp_query_timeout/" target="_blank">icp_query_timeout</a> was not set, or the time configured there has run up. Refer to <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Hierarchy_Codes" target="_blank">Hierarchy Codes</a> for details on hierarchy codes.'},"squidlog.server_address_forwarded_requests":{info:"The IP address or hostname where the request (if a miss) was forwarded. For requests sent to origin servers, this is the origin server's IP address. For requests sent to a neighbor cache, this is the neighbor's hostname. NOTE: older versions of Squid would put the origin server hostname here."},"squidlog.mime_type_requests":{info:"The content type of the object as seen in the HTTP reply header. Please note that ICP exchanges usually don't have any content type."},"cockroachdb.process_cpu_time_combined_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average CPU Usage",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"Current combined cpu utilization, calculated as <b>(user+system)/num of logical cpus</b>."},"cockroachdb.host_disk_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Disk Bandwidth",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"Summary disk bandwidth statistics across all system host disks."},"cockroachdb.host_disk_operations":{info:"Summary disk operations statistics across all system host disks."},"cockroachdb.host_disk_iops_in_progress":{info:"Summary disk iops in progress statistics across all system host disks."},"cockroachdb.host_network_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Network Bandwidth",colors:s.default[4],layout:{x:6,y:0,w:3,h:5}}],info:"Summary network bandwidth statistics across all system host network interfaces."},"cockroachdb.host_network_packets":{info:"Summary network packets statistics across all system host network interfaces."},"cockroachdb.live_nodes":{info:"Will be <b>0</b> if this node is not itself live."},"cockroachdb.total_storage_capacity":{info:"Entire disk capacity. It includes non-CR data, CR data, and empty space."},"cockroachdb.storage_capacity_usability":{info:"<b>usable</b> is sum of empty space and CR data, <b>unusable</b> is space used by non-CR data."},"cockroachdb.storage_usable_capacity":{info:"Breakdown of <b>usable</b> space."},"cockroachdb.storage_used_capacity_percentage":{aggregationMethod:"avg",info:"<b>total</b> is % of <b>total</b> space used, <b>usable</b> is % of <b>usable</b> space used."},"cockroachdb.sql_bandwidth":{info:"The total amount of SQL client network traffic."},"cockroachdb.sql_errors":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SQL Errors",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:"<b>statement</b> is statements resulting in a planning or runtime error, <b>transaction</b> is SQL transactions abort errors."},"cockroachdb.sql_started_ddl_statements":{info:"The amount of <b>started</b> DDL (Data Definition Language) statements. This type means database schema changes. It includes <b>CREATE</b>, <b>ALTER</b>, <b>DROP</b>, <b>RENAME</b>, <b>TRUNCATE</b> and <b>COMMENT</b> statements."},"cockroachdb.sql_executed_ddl_statements":{info:"The amount of <b>executed</b> DDL (Data Definition Language) statements. This type means database schema changes. It includes <b>CREATE</b>, <b>ALTER</b>, <b>DROP</b>, <b>RENAME</b>, <b>TRUNCATE</b> and <b>COMMENT</b> statements."},"cockroachdb.sql_started_dml_statements":{info:"The amount of <b>started</b> DML (Data Manipulation Language) statements."},"cockroachdb.sql_executed_dml_statements":{info:"The amount of <b>executed</b> DML (Data Manipulation Language) statements."},"cockroachdb.sql_started_tcl_statements":{info:"The amount of <b>started</b> TCL (Transaction Control Language) statements."},"cockroachdb.sql_executed_tcl_statements":{info:"The amount of <b>executed</b> TCL (Transaction Control Language) statements."},"cockroachdb.live_bytes":{info:"The amount of live data used by both applications and the CockroachDB system."},"cockroachdb.kv_transactions":{info:"KV transactions breakdown:<br><ul> <li><b>committed</b> committed KV transactions (including 1PC).</li> <li><b>fast-path_committed</b> KV transaction on-phase commit attempts.</li> <li><b>aborted</b> aborted KV transactions.</li> </ul>"},"cockroachdb.kv_transaction_restarts":{info:'KV transactions restarts breakdown:<br><ul> <li><b>write too old</b> restarts due to a concurrent writer committing first.</li> <li><b>write too old (multiple)</b> restarts due to multiple concurrent writers committing first.</li> <li><b>forwarded timestamp (iso=serializable)</b> restarts due to a forwarded commit timestamp and isolation=SERIALIZABLE".</li> <li><b>possible replay</b> restarts due to possible replays of command batches at the storage layer.</li> <li><b>async consensus failure</b> restarts due to async consensus writes that failed to leave intents.</li> <li><b>read within uncertainty interval</b> restarts due to reading a new value within the uncertainty interval.</li> <li><b>aborted</b> restarts due to an abort by a concurrent transaction (usually due to deadlock).</li> <li><b>push failure</b> restarts due to a transaction push failure.</li> <li><b>unknown</b> restarts due to a unknown reasons.</li> </ul>'},"cockroachdb.ranges":{info:'CockroachDB stores all user data (tables, indexes, etc.) and almost all system data in a giant sorted map of key-value pairs. This keyspace is divided into "ranges", contiguous chunks of the keyspace, so that every key can always be found in a single range.'},"cockroachdb.ranges_replication_problem":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Replication Problems",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:"Ranges with not optimal number of replicas:<br><ul> <li><b>unavailable</b> ranges with fewer live replicas than needed for quorum.</li> <li><b>under replicated</b> ranges with fewer live replicas than the replication target.</li> <li><b>over replicated</b> ranges with more live replicas than the replication target.</li> </ul>"},"cockroachdb.replicas":{info:"CockroachDB replicates each range (3 times by default) and stores each replica on a different node."},"cockroachdb.replicas_leaders":{info:"For each range, one of the replicas is the <b>leader</b> for write requests, <b>not leaseholders</b> is the number of Raft leaders whose range lease is held by another store."},"cockroachdb.replicas_leaseholders":{info:'For each range, one of the replicas holds the "range lease". This replica, referred to as the <b>leaseholder</b>, is the one that receives and coordinates all read and write requests for the range.'},"cockroachdb.queue_processing_failures":{info:"Failed replicas breakdown by queue:<br><ul> <li><b>gc</b> replicas which failed processing in the GC queue.</li> <li><b>replica gc</b> replicas which failed processing in the replica GC queue.</li> <li><b>replication</b> replicas which failed processing in the replicate queue.</li> <li><b>split</b> replicas which failed processing in the split queue.</li> <li><b>consistency</b> replicas which failed processing in the consistency checker queue.</li> <li><b>raft log</b> replicas which failed processing in the Raft log queue.</li> <li><b>raft snapshot</b> replicas which failed processing in the Raft repair queue.</li> <li><b>time series maintenance</b> replicas which failed processing in the time series maintenance queue.</li> </ul>"},"cockroachdb.rebalancing_queries":{info:"Number of kv-level requests received per second by the store, averaged over a large time period as used in rebalancing decisions."},"cockroachdb.rebalancing_writes":{info:"Number of keys written (i.e. applied by raft) per second to the store, averaged over a large time period as used in rebalancing decisions."},"cockroachdb.slow_requests":{info:"Requests that have been stuck for a long time."},"cockroachdb.timeseries_samples":{info:"The amount of metric samples written to disk."},"cockroachdb.timeseries_write_errors":{info:"The amount of errors encountered while attempting to write metrics to disk."},"cockroachdb.timeseries_write_bytes":{info:"Size of metric samples written to disk."},"cockroachdb.process_cpu_time_percentage":{aggregationMethod:"avg",info:"The percentage of CPU time used by the CockroachDB process. High usage may indicate the need for additional resources or optimization."},"cockroachdb.process_memory":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Memory Usage",colors:s.default[1],layout:{x:0,y:5,w:3,h:5}}],info:"The amount of memory used by the CockroachDB process. High memory usage may indicate the need for additional resources or optimization."},"cockroachdb.process_file_descriptors":{info:"The number of file descriptors used by the CockroachDB process. High usage may indicate the need for additional resources or optimization."},"cockroachdb.process_uptime":{aggregationMethod:"min",info:"The amount of time that the CockroachDB process has been running. This can be useful for understanding the overall health and stability of the system."},"cockroachdb.node_liveness_heartbeats":{info:"The number of liveness heartbeats sent by the CockroachDB node. This can be useful for understanding the overall health and stability of the cluster."},"cockroachdb.sql_statements_total":{info:"The total number of SQL statements executed in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.sql_active_distributed_queries":{info:"The number of active distributed SQL queries in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.sql_distributed_flows":{info:"'The number of active distributed flows in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.rocksdb_table_operations":{info:"The number of RocksDB table operations in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.rocksdb_cache_hit_rate":{aggregationMethod:"avg",info:"The RocksDB cache hit rate in the CockroachDB cluster. This can be useful for understanding the efficiency of the cache and identifying potential performance issues."},"cockroachdb.code_heap_memory_usage":{info:"The amount of memory used by the code heap in the CockroachDB cluster. High usage may indicate the need for additional resources or optimization."},"cockroachdb.goroutines":{info:"The number of goroutines in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.gc_count":{info:"The number of garbage collection cycles in the CockroachDB cluster. This can be useful for understanding overall system performance and potential bottlenecks."},"cockroachdb.gc_pause":{info:"The total time spent in garbage collection pauses in the CockroachDB cluster. High values may indicate the need for optimization or additional resources."},"cockroachdb.cgo_calls":{info:"The number of CGo calls in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"perf.instructions_per_cycle":{info:'An IPC < 1.0 likely means memory bound, and an IPC > 1.0 likely means instruction bound. For more details about the metric take a look at this <a href="https://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html" target="_blank">blog post</a>.'},"filesystem.vfs_deleted_objects":{title:"VFS remove",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_unlink">application</a> and <a href="#ebpf_services_vfs_unlink">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io":{title:"VFS IO",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write">application</a> and <a href="#ebpf_services_vfs_write">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io_bytes":{title:"VFS bytes written",info:'Total of bytes read or written with success using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write_bytes">application</a> and <a href="#ebpf_services_vfs_write_bytes">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io_error":{title:"VFS IO error",info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write_error">application</a> and <a href="#ebpf_services_vfs_write_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_fsync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. This chart may not show all file system events if it uses other functions to sync data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_sync">application</a> and <a href="#ebpf_services_vfs_sync">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_fsync_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function.</a>. This chart may not show all file system events if it uses other functions to sync data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_sync_error">application</a> and <a href="#ebpf_services_vfs_sync_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_open":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. This chart may not show all file system events if it uses other functions to open files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_open">application</a> and <a href="#ebpf_services_vfs_open">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_open_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. This chart may not show all file system events if it uses other functions to open files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_open_error">application</a> and <a href="#ebpf_services_vfs_open_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_create":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. This chart may not show all file system events if it uses other functions to create files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_create">application</a> and <a href="#ebpf_services_vfs_create">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_create_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. This chart may not show all file system events if it uses other functions to create files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_craete_error">application</a> and <a href="#ebpf_services_vfs_create_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring ext4 reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+'to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring ext4 writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring ext4 opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring ext4 syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring xfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring xfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring xfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring xfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring nfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring nfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring nfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_attribute_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each get attribute request monitoring nfs attribute <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring zfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring zfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring zfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring zfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring btrfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring btrfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring btrfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring btrfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"mount_points.call":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Syscalls to mount and unmount",layout:{x:6,y:0,w:3,h:5}}],info:'Monitor calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#mount-points" target="_blank">syscalls</a> that are responsible for attaching (<b>mount(2)</b>) or removing filesystems (<b>umount(2)</b>). This chart has relationship with <a href="#menu_filesystem">File systems</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mount_points.error":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Errors to mount and unmount",colors:s.default[1],layout:{x:9,y:0,w:3,h:5}}],info:'Monitor errors in calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#mount-points" target="_blank">syscalls</a> that are responsible for attaching (<b>mount(2)</b>) or removing filesystems (<b>umount(2)</b>). This chart has relationship with <a href="#menu_filesystem">File systems</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"filesystem.file_descriptor":{info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open and closing files</a>. Netdata shows file access per <a href="#ebpf_apps_file_open">application</a> and <a href="#ebpf_services_file_open">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File systems</a>',en:{instance:{one:"system",other:"systems"}}},"filesystem.file_error":{info:'Number of failed calls to the kernel internal function responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open and closing files</a>. Netdata shows file error per <a href="#ebpf_apps_file_open_error">application</a> and <a href="#ebpf_services_file_open_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"netdata.aclk_status":{valueRange:[0,1],info:"This chart shows if ACLK was online during entirety of the sample duration.",en:{instance:{one:"agent",other:"agents"}}},"netdata.aclk_query_per_second":{info:"This chart shows how many queries were added for ACLK_query thread to process and how many it was actually able to process.",en:{instance:{one:"agent",other:"agents"}}},"netdata.aclk_latency_mqtt":{aggregationMethod:"avg",info:"Measures latency between MQTT publish of the message and it's PUB_ACK being received",en:{instance:{one:"agent",other:"agents"}}},"vernemq.sockets":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["open_sockets"],chartLibrary:"gauge",title:"Total Connected Clients",desiredUnits:"clients"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_processes":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["queue_processes"],chartLibrary:"gauge",title:"Total Queues Processes",desiredUnits:"processes"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_messages":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["queue_message_in"],chartLibrary:"easypiechart",title:"Total MQTT Receive Rate",desiredUnits:"messages/s"},{"group_by[0]":["selected"],selectedDimensions:["queue_message_out"],chartLibrary:"easypiechart",title:"Total MQTT Send Rate",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.average_scheduler_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["system_utilization"],chartLibrary:"gauge",title:"Maximum Scheduler Utilization",colors:s.default[5],desiredUnits:"percentage"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_unsubscribe":{info:"This metric measures the number of MQTT unsubscribe attempts. Monitoring this metric can help identify any potential issues related to unsubscription.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish":{info:"This metric measures the number of MQTT publish attempts. Monitoring this metric can help identify any potential issues related to publishing.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish_errors":{info:"This metric measures the number of errors encountered during MQTT publish attempts. Monitoring this metric can help identify any potential issues related to publishing.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish_auth_errors":{info:"This metric measures the number of authentication errors encountered during MQTT publish attempts. Monitoring this metric can help identify any potential authentication issues.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback":{info:"This metric measures the number of MQTT puback requests. A PUBACK message is the response to a PUBLISH message with QoS level 1. A PUBACK message is sent by a server in response to a PUBLISH message from a publishing client, and by a subscriber in response to a PUBLISH message from the server. Monitoring this metric can help identify any potential issues related to acknowledgements.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_ping":{info:"This metric measures the number of MQTT ping requests. Monitoring this metric can help identify any potential issues related to communication.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.messages_rate":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_rate_in"],chartLibrary:"easypiechart",title:"Total Published",desiredUnits:"messages/s"},{"group_by[0]":["selected"],selectedDimensions:["pulsar_rate_out"],chartLibrary:"easypiechart",title:"Total Dispatched",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_msg_rate_redeliver":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_subscription_msg_rate_redeliver"],chartLibrary:"gauge",title:"Total Redelivered",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_blocked_on_unacked_messages":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_subscription_blocked_on_unacked_messages"],chartLibrary:"gauge",title:"Total Blocked On Unacked",desiredUnits:"subscriptions"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.msg_backlog":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_msg_backlog"],chartLibrary:"gauge",title:"Total Messages Backlog",desiredUnits:"messages"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_messages_rate":{heads:[{"group_by[0]":["selected"],selectedDimensions:["publish"],chartLibrary:"easypiechart",title:"Total Published",desiredUnits:"messages/s"},{"group_by[0]":["selected"],selectedDimensions:["dispatch"],chartLibrary:"easypiechart",title:"Total Dispatched",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_subscription_msg_rate_redeliver":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["redelivered"],chartLibrary:"gauge",title:"Total Redelivered",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_subscription_blocked_on_unacked_messages":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["blocked"],chartLibrary:"gauge",title:"Total Blocked On Unacked",desiredUnits:"subscriptions"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_msg_backlog":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["backlog"],chartLibrary:"gauge",title:"Total Messages Backlog",desiredUnits:"messages"}],en:{instance:{one:"broker",other:"brokers"}}},"amdgpu.gpu_utilization":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_utilization":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_clk_frequency":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_clk_frequency":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vram_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vram_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vis_vram_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vis_vram_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_gtt_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_gtt_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.fan_speed":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["speed"],chartLibrary:"easypiechart",title:"Maximum Fan Speed",desiredUnits:"percentage"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.temperature":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["temp"],chartLibrary:"easypiechart",title:"Maximum Temperature",desiredUnits:"celsius"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.memory_allocated":{heads:[{"group_by[0]":["selected"],selectedDimensions:["used"],chartLibrary:"easypiechart",title:"Total Used Memory",desiredUnits:"MiB"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.power":{aggregationMethod:"avg",heads:[{"group_by[0]":["selected"],selectedDimensions:["power"],chartLibrary:"easypiechart",title:"Total Power Utilization",colors:s.default[5],desiredUnits:"watts"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_pcie_bandwidth_usage":{info:"The amount of PCI Express (PCIe) bandwidth being used by the GPU. Monitoring this metric can help identify if the GPU is being bottlenecked by the PCIe bus and determine if a faster GPU is needed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_fan_speed_perc":{aggregationMethod:"avg",info:"The speed of the GPU's fan in percent. Monitoring this metric is important to ensure that the GPU is not overheating and that the fan is running at the optimal speed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's compute and graphics units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_memory_utilization":{aggregationMethod:"avg",info:"The amount of GPU memory being used. Monitoring this metric can help identify potential memory usage issues and help optimize memory usage for better performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_decoder_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's decoder units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_encoder_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's encoder units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_temperature":{info:"The temperature of the GPU in degrees Celsius. Monitoring this metric is important to ensure that the GPU is not overheating and that the fan is running at the optimal speed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_clock_freq":{info:"The clock frequency of the GPU in MHz. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_performance_state":{info:"The performance state of the GPU. Monitoring this metric can help identify potential performance issues and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"openvpn.active_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Clients"}],info:"The active clients metric indicates the number of clients connected to the OpenVPN server. This metric should be monitored to keep track of the number of connected clients.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.total_traffic":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["out"],chartLibrary:"easypiechart",title:"Total Traffic Sent"},{"group_by[0]":["selected"],selectedDimensions:["in"],chartLibrary:"easypiechart",title:"Total Traffic received"}],info:"The total traffic metric indicates the total amount of data sent and received on the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.user_traffic":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Traffic per User"}],info:"The user traffic metric indicates the amount of data sent and received by each user connected to the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.user_connection_time":{aggregationMethod:"avg",info:"The user connection time metric indicates the time each user is connected to the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"phpdaemon.workers":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Workers",layout:{x:0,y:0,w:3,h:5}}],info:"The workers metric indicates the number of workers running in the phpdaemon. This metric should be monitored to ensure the proper number of workers is running for the best performance.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.alive_workers":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Active Workers",layout:{x:3,y:0,w:3,h:5}}],info:"The alive workers metric indicates the number of workers currently active in the phpdaemon. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.idle_workers":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Idle Workers",layout:{x:6,y:0,w:3,h:5}}],info:"The idle workers metric indicates the number of workers that are currently idle in the phpdaemon. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:9,y:0,w:3,h:5}}],info:"The uptime metric indicates the time since the phpdaemon was started. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpfpm.connections":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["active"],chartLibrary:"easypiechart",title:"Active Connections",layout:{x:0,y:0,w:3,h:5}}],info:"This metric indicates the connections count across the following dimensions: active, max_active, idle.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",layout:{x:3,y:0,w:3,h:5}}],info:"The requests metric indicates the number of requests processed by the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.performance":{info:"The performance metric indicates the performance of the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_duration":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Request Duration",layout:{x:6,y:0,w:3,h:5}}],info:"The request duration metric indicates the time taken to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Request CPU",layout:{x:9,y:0,w:3,h:5}}],info:"The request CPU metric indicates the amount of CPU used to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_mem":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Request Memory",layout:{x:0,y:5,w:3,h:5}}],info:"The request memory metric indicates the amount of memory used to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"pihole.dns_queries_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queries",layout:{x:0,y:0,w:3,h:5}}],info:"The DNS queries total metric indicates the total number of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries":{info:"The DNS queries metric indicates the number of DNS queries that have been made to the Pi-hole server in a given time period. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],selectedDimensions:["blocked"],chartLibrary:"gauge",title:"Blocked Queries %",layout:{x:3,y:0,w:3,h:5}}],info:"The DNS queries percentage metric indicates the percentage of DNS queries that have been made to the Pi-hole server in a given time period. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.unique_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Clients",layout:{x:6,y:0,w:3,h:5}}],info:"The unique clients metric indicates the number of unique clients making DNS queries to the Pi-hole server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.blocklist_last_update":{info:"The blocklist last update metric indicates the last time the Pi-hole's blocklist was updated. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_types":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Query Types",layout:{x:9,y:0,w:3,h:5}}],info:"The DNS queries types metric indicates the types of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.domains_on_blocklist":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Domains on Blocklist",layout:{x:0,y:5,w:3,h:5}}],info:"The DNS queries types metric indicates the types of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_forwarded_destination":{aggregationMethod:"avg",info:"The DNS queries forwarded destination metric indicates the destination of the DNS queries that have been forwarded by the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"supervisord.process_state_code":{info:'<a href="http://supervisord.org/subprocess.html#process-states" target="_blank">Process states map</a>: <b>0</b> - stopped, <b>10</b> - starting, <b>20</b> - running, <b>30</b> - backoff,<b>40</b> - stopping, <b>100</b> - exited, <b>200</b> - fatal, <b>1000</b> - unknown.'},"systemd.service_units_state":{info:'Service units start and control daemons and the processes they consist of. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.service.html#" target="_blank"> systemd.service(5)</a>',en:{instance:{one:"Unit",other:"Units"}}},"systemd.socket_unit_state":{info:'Socket units encapsulate local IPC or network sockets in the system, useful for socket-based activation. For details about socket units, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.socket.html#" target="_blank"> systemd.socket(5)</a>, for details on socket-based activation and other forms of activation, see <a href="https://www.freedesktop.org/software/systemd/man/daemon.html#" target="_blank"> daemon(7)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.target_unit_state":{info:'Target units are useful to group units, or provide well-known synchronization points during boot-up, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.target.html#" target="_blank"> systemd.target(5)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.path_unit_state":{info:'Path units may be used to activate other services when file system objects change or are modified. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.path.html#" target="_blank"> systemd.path(5)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.device_unit_state":{info:'Device units expose kernel devices in systemd and may be used to implement device-based activation. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.device.html#" target="_blank"> systemd.device(5)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.mount_unit_state":{info:'Mount units control mount points in the file system. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.mount.html#" target="_blank"> systemd.mount(5)</a>.'},"systemd.automount_unit_state":{info:'Automount units provide automount capabilities, for on-demand mounting of file systems as well as parallelized boot-up. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.automount.html#" target="_blank"> systemd.automount(5)</a>.'},"systemd.swap_unit_state":{info:'Swap units are very similar to mount units and encapsulate memory swap partitions or files of the operating system. They are described in <a href="https://www.freedesktop.org/software/systemd/man/systemd.swap.html#" target="_blank"> systemd.swap(5)</a>.'},"systemd.timer_unit_state":{info:'Timer units are useful for triggering activation of other units based on timers. You may find details in <a href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html#" target="_blank"> systemd.timer(5)</a>.'},"systemd.scope_unit_state":{info:'Slice units may be used to group units which manage system processes (such as service and scope units) in a hierarchical tree for resource management purposes. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.scope.html#" target="_blank"> systemd.scope(5)</a>.'},"systemd.slice_unit_state":{info:'Scope units are similar to service units, but manage foreign processes instead of starting them as well. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.slice.html#" target="_blank"> systemd.slice(5)</a>.'},"anomaly_detection.dimensions":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["anomalous"],chartLibrary:"number",desiredUnits:"dimensions",title:"Total Anomalous Dimensions",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["selected"],selectedDimensions:["normal"],chartLibrary:"number",desiredUnits:"dimensions",title:"Total Normal Dimensions",layout:{x:6,y:0,w:3,h:5}}],info:"Total count of dimensions considered anomalous or normal. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["anomalous"]},"anomaly_detection.anomaly_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",colors:s.default[12],title:"% of Anomalous Dimensions",layout:{x:0,y:0,w:3,h:5}}],info:"Percentage of anomalous dimensions. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["anomaly_rate"]},"anomaly_detection.detector_window":{info:"The length of the active window used by the detector. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["above_threshold"]},"anomaly_detection.detector_events":{info:"Flags (0 or 1) to show when an anomaly event has been triggered by the detector. ",en:{instance:{one:"system",other:"systems"}}},"anomaly_detection.prediction_stats":{info:"Diagnostic metrics relating to prediction time of anomaly detection. ",en:{instance:{one:"system",other:"systems"}}},"anomaly_detection.training_stats":{info:"Diagnostic metrics relating to training time of anomaly detection. ",en:{instance:{one:"system",other:"systems"}}},"fail2ban.failed_attempts":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Failed Attempts",layout:{x:0,y:0,w:3,h:5}}],info:"<p>The number of failed attempts.</p><p>This chart reflects the number of 'Found' lines. Found means a line in the service\u2019s log file matches the failregex in its filter.</p>",en:{instance:{one:"service",other:"services"}}},"fail2ban.bans":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bans",layout:{x:3,y:0,w:3,h:5}}],info:"<p>The number of bans.</p><p>This chart reflects the number of 'Ban' and 'Restore Ban' lines. Ban action happens when the number of failed attempts (maxretry) occurred in the last configured interval (findtime).</p>",en:{instance:{one:"service",other:"services"}}},"fail2ban.banned_ips":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Banned IPs",layout:{x:6,y:0,w:3,h:5}}],info:"<p>The number of banned IP addresses.</p>",en:{instance:{one:"service",other:"services"}}},"consul.node_health_check_status":{info:'The current status of the <a href="https://developer.hashicorp.com/consul/tutorials/developer-discovery/service-registration-health-checks#monitor-a-node" target="_blank">node health check</a>. A node health check monitors the health of the entire node. If the node health check fails, Consul marks the node as unhealthy.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.service_health_check_status":{info:'The current status of the <a href="https://developer.hashicorp.com/consul/tutorials/developer-discovery/service-registration-health-checks#monitor-a-service" target="_blank">service health check</a>. A service check only affects the health of the service it is associated with. If the service health check fails, the DNS interface stops returning that service.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_rate":{mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"RPC Requests Rate Per Client",desiredUnits:"req/s"}],info:"The number of RPC requests to a Consul server.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_exceeded_rate":{info:'The number of rate-limited RPC requests to a Consul server. An Increase of this metric either indicates the load is getting high enough to limit the rate or a <a href="https://developer.hashicorp.com/consul/docs/agent/config/config-files#limits" target="_blank">incorrectly configured</a> Consul agent.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_failed_rate":{info:"The number of failed RPC requests to a Consul server.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.memory_allocated":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"number",title:"Memory Allocated per Consul DC"}],info:"The amount of memory allocated by the Consul process.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.memory_sys":{info:"The amount of memory obtained from the OS.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.gc_pause_time":{aggregationMethod:"avg",info:"The amount of time spent in stop-the-world garbage collection (GC) pauses.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.kvs_apply_time":{aggregationMethod:"avg",info:"The time it takes to complete an update to the KV store.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.kvs_apply_operations_rate":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Key Value Store Operations Rate per DC"}],info:"The number of KV store updates.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.txn_apply_time":{aggregationMethod:"avg",info:"The time spent applying a transaction operation.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.txn_apply_operations_rate":{info:"The number of applied transaction operations.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_commit_time":{aggregationMethod:"avg",info:"The time it takes to commit a new entry to the Raft log on the leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_commits_rate":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Raft Commits Rate per DC"}],info:"The number of applied Raft transactions.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_health_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Health Status Overview",desiredUnits:"status"}],info:"The overall health of the local server cluster. The status is healthy if <b>all servers</b> are considered healthy by Autopilot.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_failure_tolerance":{info:"The number of voting servers that the cluster can lose while continuing to function.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_last_contact_time":{aggregationMethod:"avg",info:"The time since the leader was last able to contact the follower nodes when checking its leader lease.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_elections_rate":{info:"The number of leadership elections. Increments whenever a Consul server starts an election.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leadership_transitions_rate":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Leadership Transitions Rate per DC",desiredUnits:"transitions/s"}],info:"The number of leadership elections. Increments whenever a Consul server becomes a leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.server_leadership_status":{info:"The Consul server leadership status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_thread_main_saturation_perc":{aggregationMethod:"avg",info:"An approximate measurement of the proportion of time the main Raft goroutine is busy and unavailable to accept new work.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_thread_fsm_saturation_perc":{aggregationMethod:"avg",info:"An approximate measurement of the proportion of time the Raft FSM goroutine is busy and unavailable to accept new work.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_fsm_last_restore_duration":{info:"The time taken to restore the FSM from a snapshot on an agent restart or from the leader calling <i>installSnapshot</i>.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_oldest_log_age":{info:"The time elapsed since the oldest journal was written to the leader's journal storage. This can be important for the health of replication when the write rate is high and the snapshot is large, because followers may not be able to recover from a restart if recovery takes longer than the minimum for the current leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_rpc_install_snapshot_time":{aggregationMethod:"avg",info:"The time it takes to process the <i>installSnapshot</i> RPC call.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_freelist_bytes":{info:'The number of bytes necessary to encode the freelist metadata. When <a href="https://developer.hashicorp.com/consul/docs/agent/config/config-files#NoFreelistSync" target="_blank">raft_boltdb.NoFreelistSync</a> is set to <i>false</i> these metadata bytes must also be written to disk for each committed log.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_logs_per_batch_rate":{info:"The number of logs written per batch to the database.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_store_logs_time":{aggregationMethod:"avg",info:"The amount of time spent writing logs to the database.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.license_expiration_time":{aggregationMethod:"min`",info:"The amount of time remaining before Consul Enterprise license expires. When the license expires, some Consul Enterprise features will stop working.",en:{instance:{one:"datacenter",other:"datacenters"}}},"envoy.server_state":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Envoy Server States",layout:{x:0,y:0,w:3,h:5}}],info:"Server current state",en:{instance:{one:"server",other:"servers"}}},"envoy.server_connections_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Server Connections Count",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"Server current connections",en:{instance:{one:"server",other:"servers"}}},"envoy.server_parent_connections_count":{info:"Server current parent connections",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_allocated_size":{mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top servers by Memory Allocated",layout:{x:6,y:0,w:3,h:5}}],info:"Server memory allocated size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_heap_size":{mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top servers by Heap Size",layout:{x:9,y:0,w:3,h:5}}],info:"Server memory heap size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_physical_size":{info:"Server memory physical size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Server Uptime",colors:s.default[4],layout:{x:0,y:5,w:3,h:5}}],info:"Envoy Server uptime",en:{instance:{one:"server",other:"servers"}}},"envoy.cluster_manager_cluster_count":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"d3pie",title:"Active and Inactive Envoy Clusters ",layout:{x:3,y:5,w:3,h:5}}],info:"Cluster manager current clusters",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_changes_rate":{info:"Cluster manager cluster changes",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_updates_rate":{info:"Cluster manager updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_updated_via_merge_rate":{info:"Cluster manager updates applied as merged updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_update_merge_cancelled_rate":{info:"Cluster manager cancelled merged updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_update_out_of_merge_window_rate":{info:"Cluster manager out of a merge window updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_endpoints_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Clusters by Membership Endpoints",layout:{x:6,y:5,w:3,h:5}}],info:"Cluster membership current endpoints",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_changes_rate":{info:"Cluster membership changes",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_updates_rate":{info:"Cluster membership update rate",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_active_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Upstream Active Connections",desiredUnits:"connections",colors:s.default[7],layout:{x:9,y:5,w:3,h:5}}],info:"Cluster upstream current active connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_rate":{info:"Cluster upstream connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_http_rate":{info:"Cluster upstream connections by HTTP version",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_destroy_rate":{info:"Cluster upstream destroyed connections rate",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_connect_fail_rate":{info:"Cluster upstream failed connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_connect_timeout_rate":{info:"Cluster upstream timed out connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_bytes_rate":{info:"Cluster upstream connection traffic",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_bytes_buffered_size":{info:"Cluster upstream current connection buffered size",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_active_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Upstream Active Requests",desiredUnits:"connections",colors:s.default[7],layout:{x:0,y:10,w:3,h:5}}],info:"Cluster upstream current active requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_rate":{info:"Cluster upstream requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_failed_rate":{info:"Cluster upstream failed requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_active_count":{info:"Cluster upstream current active pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_rate":{info:"Cluster upstream pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_failed_rate":{info:"Cluster upstream failed pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_rate":{info:"Cluster upstream request retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_success_rate":{info:"Cluster upstream request successful retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_backoff_rate":{info:"Cluster upstream request backoff retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.listener_manager_listeners_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Listeners Count",desiredUnits:"listeners",colors:s.default[9],layout:{x:3,y:10,w:3,h:5}}],info:"Listener manager current listeners",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_manager_listener_changes_rate":{info:"Listener manager listener changes",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_manager_listener_object_events_rate":{info:"Listener manager listener object events",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_active_count":{info:"Listener admin downstream current active connections",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Downstream Active Connections",desiredUnits:"listeners",colors:s.default[9],layout:{x:6,y:10,w:3,h:5}}],en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_rate":{info:"Listener admin downstream connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_destroy_rate":{info:"Listener admin downstream destroyed connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_transport_socket_connect_timeout_rate":{info:"Listener admin downstream timed out connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_rejected_rate":{info:"Listener admin downstream rejected connections",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Downstream Rejected Connections",desiredUnits:"listeners",colors:s.default[9],layout:{x:9,y:10,w:3,h:5}}],en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_listener_filter_remote_close_rate":{info:"Listener admin downstream connections closed by remote when peek data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_listener_filter_error_rate":{info:"Listener admin downstream read errors when peeking data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_pre_cx_active_count":{info:"Listener admin downstream current active sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_pre_cx_timeout_rate":{info:"Listener admin downstream timed out sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_active_count":{info:"Listener downstream current active connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_rate":{info:"Listener downstream connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_destroy_rate":{info:"Listener downstream destroyed connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_transport_socket_connect_timeout_rate":{info:"Listener downstream timed out connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_rejected_rate":{info:"Listener downstream rejected connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_listener_filter_remote_close_rate":{info:"Listener downstream connections closed by remote when peek data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_listener_filter_error_rate":{info:"Listener downstream read errors when peeking data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_pre_cx_active_count":{info:"Listener downstream current active sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_pre_cx_timeout_rate":{info:"Listener downstream timed out sockets",en:{instance:{one:"listener",other:"listeners"}}},"k8s_state.node_allocatable_cpu_requests_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average CPU Utilization",valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}}],info:"The percentage of allocated CPU resources used by Pod requests. A Pod is scheduled to run on a Node only if the Node has enough CPU resources available to satisfy the Pod CPU request.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_requests_used":{info:'The amount of allocated CPU resources used by Pod requests. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_limits_utilization":{aggregationMethod:"avg",info:"The percentage of allocated CPU resources used by Pod limits. Total limits may be over 100 percent (overcommitted).",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_limits_used":{info:'The amount of allocated CPU resources used by Pod limits. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_requests_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Memory Utilization",colors:s.default[4],valueRange:[0,100],layout:{x:9,y:5,w:3,h:5}}],info:"The percentage of allocated memory resources used by Pod requests. A Pod is scheduled to run on a Node only if the Node has enough memory resources available to satisfy the Pod memory request.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_requests_used":{info:"The amount of allocated memory resources used by Pod requests.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_limits_utilization":{aggregationMethod:"avg",info:"The percentage of allocated memory resources used by Pod limits. Total limits may be over 100 percent (overcommitted).",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_limits_used":{info:"The amount of allocated memory resources used by Pod limits.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_pods_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Pods Utilization",colors:s.default[12],valueRange:[0,100],layout:{x:3,y:5,w:3,h:5}}],info:"Pods limit utilization.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_pods_usage":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Pods limit usage",layout:{x:8,y:0,w:4,h:2.5}}],info:"<p>Pods limit usage.</p><p><b>Available</b> - the number of Pods available for scheduling. <b>Allocated</b> - the number of Pods that have been scheduled.</p>",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_condition":{info:'Health status. If the status of the Ready condition remains False for longer than the <b>pod-eviction-timeout</b> (the default is 5 minutes), then the node controller triggers API-initiated eviction for all Pods assigned to that node. <a href="https://kubernetes.io/docs/concepts/architecture/nodes/#condition" target="_blank">More info.</a>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_readiness":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Pod Readiness",colors:s.default[0],valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}}],info:"The percentage of Pods that are ready to serve requests.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_readiness_state":{info:"<p>Pods readiness state.</p><p><b>Ready</b> - the Pod has passed its readiness probe and ready to serve requests. <b>Unready</b> - the Pod has not passed its readiness probe yet.</p>",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_condition":{info:'<p>Pods state. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions" target="_blank">More info.</a></p><b>PodReady</b> - the Pod is able to serve requests and should be added to the load balancing pools of all matching Services. <b>PodScheduled</b> - the Pod has been scheduled to a node. <b>PodInitialized</b> - all init containers have completed successfully. <b>ContainersReady</b> - all containers in the Pod are ready.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_phase":{info:'<p>Pods phase. The phase of a Pod is a high-level summary of where the Pod is in its lifecycle. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase" target="_blank">More info.</a></p><p><b>Running</b> - the Pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. <b>Failed</b> - all containers in the Pod have terminated, and at least one container has terminated in failure. That is, the container either exited with non-zero status or was terminated by the system. <b>Succedeed</b> - all containers in the Pod have terminated in success, and will not be restarted. <b>Pending</b> - the Pod has been accepted by the Kubernetes cluster, but one or more of the containers has not been set up and made ready to run.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_containers":{info:"The total number of containers and init containers.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_containers_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Containers by State",layout:{x:0,y:20,w:4,h:2.5}}],info:'<p>The number of containers in different lifecycle states. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a></p><p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_init_containers_state":{info:'<p>The number of init containers in different lifecycle states. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a></p><p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_age":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Node Uptime",desiredUnits:"dHH:MM:ss",layout:{x:8,y:2.5,w:4,h:2.5}}],info:"The lifetime of the Node.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_schedulability":{info:"The schedulability of nodes in the Kubernetes cluster. Monitoring this metric can help identify if there are issues with the cluster's ability to schedule pods on nodes.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.pod_cpu_requests_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod CPU Requests used",units:"percentage",colors:s.default[0],layout:{x:0,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Requests per Pod",units:"percentage",layout:{x:0,y:15,w:3,h:5}}],info:'The overall CPU resource requests for a Pod. This is the sum of the CPU requests for all the Containers in the Pod. Provided the system has CPU time free, a container is guaranteed to be allocated as much CPU as it requests. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_cpu_limits_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod CPU limits used",units:"percentage",layout:{x:3,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU limits per Pod",units:"percentage",layout:{x:3,y:15,w:3,h:5}}],info:'The overall CPU resource limits for a Pod. This is the sum of the CPU limits for all the Containers in the Pod. If set, containers cannot use more CPU than the configured limit. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_mem_requests_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod Memory Requests used",units:"percentage",colors:s.default[12],layout:{x:6,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Pod Memory Requests per Pod",units:"percentage",layout:{x:6,y:15,w:3,h:5}}],info:"The overall memory resource requests for a Pod. This is the sum of the memory requests for all the Containers in the Pod.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_mem_limits_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod Memory limits used",units:"percentage",colors:s.default[4],layout:{x:9,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum Memory limits per Pod",units:"percentage",layout:{x:9,y:15,w:3,h:5}}],info:"The overall memory resource limits for a Pod. This is the sum of the memory limits for all the Containers in the Pod. If set, containers cannot use more RAM than the configured limit.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_condition":{info:'The current state of the Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions" target="_blank">More info.</a></p><p><b>PodReady</b> - the Pod is able to serve requests and should be added to the load balancing pools of all matching Services. <b>PodScheduled</b> - the Pod has been scheduled to a node. <b>PodInitialized</b> - all init containers have completed successfully. <b>ContainersReady</b> - all containers in the Pod are ready. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_phase":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["running"],chartLibrary:"easypiechart",title:"Total Running Pods",desiredUnits:"state",colors:s.default[0],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],selectedDimensions:["failed"],chartLibrary:"easypiechart",title:"Total Failed Pods",desiredUnits:"state",layout:{x:2,y:0,w:2,h:5}},{"group_by[0]":["selected"],selectedDimensions:["succeeded"],chartLibrary:"easypiechart",title:"Total Terminated Pods",desiredUnits:"state",colors:s.default[4],layout:{x:6,y:0,w:2,h:5}},{"group_by[0]":["selected"],selectedDimensions:["pending"],chartLibrary:"easypiechart",title:"Total Pending Pods",desiredUnits:"state",colors:s.default[12],layout:{x:4,y:0,w:2,h:5}}],info:'High-level summary of where the Pod is in its lifecycle. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase" target="_blank">More info.</a></p><p><b>Running</b> - the Pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. <b>Failed</b> - all containers in the Pod have terminated, and at least one container has terminated in failure. That is, the container either exited with non-zero status or was terminated by the system. <b>Succedeed</b> - all containers in the Pod have terminated in success, and will not be restarted. <b>Pending</b> - the Pod has been accepted by the Kubernetes cluster, but one or more of the containers has not been set up and made ready to run. This includes time a Pod spends waiting to be scheduled as well as the time spent downloading container images over the network. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_age":{info:'The <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-lifetime" target="_blank">lifetime</a> of the Pod. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_containers":{info:"The number of containers and init containers belonging to the Pod.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_containers_state":{info:'The state of each container inside this Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_init_containers_state":{info:'The state of each init container inside this Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_container_readiness_state":{info:"Specifies whether the container has passed its readiness probe. Kubelet uses readiness probes to know when a container is ready to start accepting traffic.",en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_restarts":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Container restarts",layout:{x:0,y:22.5,w:4,h:2.5}}],info:"The number of times the container has been restarted.",en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_state":{info:'Current state of the container. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_waiting_state_reason":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Container waiting state reason",layout:{x:4,y:20,w:4,h:5}}],info:'Reason the container is not yet running. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-state-waiting" target="_blank">More info.</a> ',en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_terminated_state_reason":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Container terminated state reason",layout:{x:8,y:20,w:4,h:5}}],info:'Reason from the last termination of the container. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-state-terminated" target="_blank">More info.</a>',en:{instance:{one:"container",other:"containers"}}},"k8s_kubelet.apiserver_audit_requests_rejected":{info:"The number of audit requests to the Kubernetes API server that were rejected. Monitoring this metric can help identify if there are issues with the audit configuration or access control policies on the API server.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_failures":{info:"The number of failures when generating data keys for encrypting and decrypting secrets stored in the Kubernetes API server. If this metric is non-zero, it may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_latencies":{info:"The latencies of data key generation requests to the Kubernetes API server. High latencies may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent":{aggregationMethod:"avg",info:"The percentile latencies of data key generation requests to the Kubernetes API server. High latencies may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses":{info:"The number of cache misses when transforming encryption envelopes for secrets stored in the Kubernetes API server. If this metric is non-zero, it may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.kubelet_containers_running":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Running Containers",colors:s.default[2],layout:{x:3,y:0,w:3,h:5}}],info:"The number of containers running on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with container scheduling or resource allocation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pods_running":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Running Pods",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The number of pods running on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with pod scheduling or resource allocation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pods_log_filesystem_used_bytes":{mainheads:[{chartLibrary:"bars",title:"Pod Logs Disk Usage",layout:{x:9,y:5,w:4,h:5}}],info:"The amount of disk space used by pod logs on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with disk usage or log rotation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_runtime_operations":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Runtime Operations by Type",layout:{x:6,y:0,w:3,h:5}}],info:"The total number of runtime operations performed by the kubelet on the node, such as starting and stopping containers. Monitoring this metric can help identify if there are issues with the runtime or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_runtime_operations_errors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Runtime Operations Errors by Type",layout:{x:9,y:0,w:3,h:5}}],info:"The number of runtime operation errors on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the runtime or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_docker_operations":{info:"The total number of Docker operations performed by the kubelet on the node, such as pulling images or creating containers. Monitoring this metric can help identify if there are issues with the Docker daemon or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_docker_operations_errors":{info:"The number of Docker operation errors on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the Docker daemon or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_node_config_error":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Node Congifuration Errors",layout:{x:7,y:5,w:2,h:5}}],info:"The number of errors in the node configuration on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the node's configuration or the kubelet's ability to read and apply it.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pleg_relist_interval_microseconds":{aggregationMethod:"avg",info:"The interval, in microseconds, between periodic relists performed by the kubelet's Pod Lifecycle Event Generator (PLEG). Monitoring this metric can help identify if the PLEG is not able to keep up with the rate of change in the pod lifecycle on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pleg_relist_latency_microseconds":{aggregationMethod:"avg",info:"The latency, in microseconds, of the periodic relists performed by the kubelet's Pod Lifecycle Event Generator (PLEG). High latencies may indicate issues with the PLEG or the pod lifecycle on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_token_requests":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total and Failed No. of Token Requests",colors:s.default[0],layout:{x:3,y:5,w:3,h:5}}],info:"The number of token requests to the kubelet. Monitoring this metric can help identify if there are issues with authentication or access control on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.rest_client_requests_by_code":{info:"The distribution of HTTP response codes for requests to the kubelet's REST API. Monitoring this metric can help identify if there are issues with the kubelet's API or the components interacting with it.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.rest_client_requests_by_method":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"HTTP Requests Rate to API",colors:s.default[0],layout:{x:0,y:5,w:3,h:2.5}}],info:"The distribution of HTTP request methods for requests to the kubelet's REST API. Monitoring this metric can help identify the usage patterns of the API and potential issues with specific request methods.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.volume_manager_total_volumes":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Volume Manager State",layout:{x:0,y:7.5,w:3,h:2.5}}],info:"The total number of volumes managed by the kubelet's volume manager. Monitoring this metric can help identify if there are issues with volume management on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Sync Proxy Rules",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of synced proxy rules in the Kubernetes proxy. Monitoring this metric can help identify if there are issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency_microsecond":{aggregationMethod:"avg",info:"The latencies of proxy rule sync operations in the Kubernetes proxy. High latencies may indicate issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency":{aggregationMethod:"avg",info:"The latencies of proxy rule sync operations in the Kubernetes proxy. High latencies may indicate issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.rest_client_requests_by_code":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Response Code Distribution",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The distribution of HTTP response codes for requests to the Kubernetes proxy's REST API. Monitoring this metric can help identify if there are issues with the proxy's API or the components interacting with it.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.rest_client_requests_by_method":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Request Method Distribution",colors:s.default[4],layout:{x:6,y:0,w:3,h:5}}],info:"The distribution of HTTP request methods for requests to the Kubernetes proxy's REST API. Monitoring this metric can help identify the usage patterns of the API and potential issues with specific request methods.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.http_request_duration":{info:"The latencies of HTTP requests handled by the Kubernetes proxy. High latencies may indicate performance issues with the proxy or the components interacting with it.",en:{instance:{one:"proxy",other:"proxies"}}},"windows.logical_disk_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["read"],title:"Total Disk Read",layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["write"],title:"Total Disk Write",layout:{x:3,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.cpu_utilization_total":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average CPU Utilization",colors:s.default[12],layout:{x:6,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.net_nic_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Net Inbound",layout:{x:9,y:0,w:2,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Net Outbound",layout:{x:12,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.memory_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",chartLibrary:"gauge",selectedDimensions:["used"],desiredUnits:"percentage",colors:s.default[0],title:"Maximum RAM Used",valueRange:[0,100],layout:{x:15,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.processes_cpu_time":{aggregationMethod:"avg",info:'Total CPU utilization. The amount of time spent by the process in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and privileged</a> modes.',en:{instance:{one:"system",other:"systems"}}},"windows.processes_handles":{info:'Total number of <a href="https://learn.microsoft.com/en-us/windows/win32/sysinfo/handles-and-objects" target="_blank">handles</a> the process has open. This number is the sum of the handles currently open by each thread in the process.',en:{instance:{one:"system",other:"systems"}}},"windows.processes_io_operations":{info:"I/O operations issued in different modes (read, write, other). This property counts all I/O activity generated by the process to include file, network, and device I/Os. Read and write mode includes data operations; other mode includes those that do not involve data, such as control operations.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_pool_bytes":{info:"Pool Bytes is the last observed number of bytes in the paged or nonpaged pool. The nonpaged pool is an area of system memory (physical memory used by the operating system) for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated. The paged pool is an area of system memory (physical memory used by the operating system) for objects that can be written to disk when they are not being used.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_active":{info:"Number of times TCP connections have made a direct transition from the CLOSED state to the SYN-SENT state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_established":{info:"Number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_failures":{info:"Number of times TCP connections have made a direct transition to the CLOSED state from the SYN-SENT state or the SYN-RCVD state, plus the number of times TCP connections have made a direct transition from the SYN-RCVD state to the LISTEN state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_passive":{info:"Number of times TCP connections have made a direct transition from the LISTEN state to the SYN-RCVD state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_resets":{info:"Number of times TCP connections have made a direct transition from the LISTEN state to the SYN-RCVD state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_received":{info:"Rate at which segments are received, including those received in error. This count includes segments received on currently established connections.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_retransmitted":{info:"Rate at which segments are retransmitted, that is, segments transmitted that contain one or more previously transmitted bytes.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_sent":{info:"Rate at which segments are sent, including those on current connections, but excluding those containing only retransmitted bytes.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_cpu_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Process",layout:{x:6,y:5,w:2,h:5}}],info:"Total CPU utilization per process.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_memory_usage":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Process",layout:{x:9,y:5,w:2,h:5}}],dimensionsSort:"valueDesc",info:"Total Memory usage per process.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_io_bytes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total I/O per Process",layout:{x:0,y:5,w:4,h:5}}],info:"Bytes issued to I/O operations in different modes (read, write, other). This property counts all I/O activity generated by the process to include file, network, and device I/Os. Read and write mode includes data operations; other mode includes those that do not involve data, such as control operations.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_page_faults":{info:"Page faults by the threads executing in this process. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. This can cause the page not to be fetched from disk if it is on the standby list and hence already in main memory, or if it is in use by another process with which the page is shared.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_file_bytes":{info:"Current number of bytes this process has used in the paging file(s). Paging files are used to store pages of memory used by the process that are not contained in other files. Paging files are shared by all processes, and lack of space in paging files can prevent other processes from allocating memory.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_threads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Active Threads per Process",layout:{x:12,y:5,w:4,h:5}}],info:"Number of threads currently active in this process. An instruction is the basic unit of execution in a processor, and a thread is the object that executes instructions. Every running process has at least one thread.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"iis.website_traffic":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Traffic Received",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Traffic Sent",layout:{x:6,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_active_connections_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Connections"}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Request Rate",desiredUnits:"Requests/s",colors:s.default[0]}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_isapi_extension_requests_count":{info:'The number of <a href="https://learn.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525282(v=vs.90)" target="_blank">ISAPI extension</a> requests that are processed concurrently by the web service.',en:{instance:{one:"web server",other:"web servers"}}},"iis.website_errors_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Errors Rate",desiredUnits:"Errors/s",colors:s.default[0]}],info:"<p>The number of requests that cannot be satisfied by the server.</p><p><b>DocumentLocked</b> - the requested document was locked. Usually reported as HTTP error 423. <b>DocumentNotFound</b> - the requested document was not found. Usually reported as HTTP error 404.</p>",en:{instance:{one:"web server",other:"web servers"}}},"iis.website_uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"Seconds"}],en:{instance:{one:"web server",other:"web servers"}}},"mssql.instance_user_connection":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Connections",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.database_transactions":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Transactions",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.database_data_files_size":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total DB Size",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_accessmethods_page_splits":{info:"Page split happens when the page does not have more space. This chart shows the number of page splits per second that occur as the result of overflowing index pages.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_cache_hit_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0]}],info:"Indicates the percentage of pages found in the buffer cache without having to read from disk. The ratio is the total number of cache hits divided by the total number of cache lookups over the last few thousand page accesses. After a long period of time, the ratio moves very little. Because reading from the cache is much less expensive than reading from disk, you want this ratio to be high.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_bufman_checkpoint_pages":{info:"Indicates the number of pages flushed to disk per second by a checkpoint or other operation that require all dirty pages to be flushed.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_bufman_page_life_expectancy":{info:"Indicates the number of seconds a page will stay in the buffer pool without references.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_memmgr_external_benefit_of_memory":{info:"It is used by the engine to balance memory usage between cache and is useful to support when troubleshooting cases with unexpected cache growth. The value is presented as an integer based on an internal calculation.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sql_errors":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total SQL Errors",desiredUnits:"Errors/s",colors:s.default[0]}],info:"Errors in Microsoft SQL Server.</p><p><b>Db_offline</b> - Tracks severe errors that cause SQL Server to take the current database offline. <b>Info</b> - Information related to error messages that provide information to users but do not cause errors. <b>Kill_connection</b> - Tracks severe errors that cause SQL Server to kill the current connection. <b>User</b> - User errors.</p>",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_auto_parameterization_attempts":{info:"Auto-parameterization occurs when an instance of SQL Server tries to parameterize a Transact-SQL request by replacing some literals with parameters so that reuse of the resulting cached execution plan across multiple similar-looking requests is possible. Note that auto-parameterizations are also known as simple parameterizations in newer versions of SQL Server. This counter does not include forced parameterizations.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_batch_requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Batch Requests",layout:{x:3,y:0,w:3,h:5}}],info:"This statistic is affected by all constraints (such as I/O, number of users, cache size, complexity of requests, and so on). High batch requests mean good throughput.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_safe_auto_parameterization_attempts":{info:"Note that auto-parameterizations are also known as simple parameterizations in later versions of SQL Server.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_sql_compilations":{info:"Indicates the number of times the compile code path is entered. Includes compiles caused by statement-level recompilations in SQL Server. After SQL Server user activity is stable, this value reaches a steady state.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"ad.binds":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Binds",desiredUnits:"Binds/s",colors:s.default[0]}],en:{instance:{one:"AD server",other:"AD servers"}}},"ad.ldap_searches":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0]}],en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_intersite_compressed_traffic":{info:"The compressed size, in bytes, of inbound and outbound compressed replication data (size after compression, from DSAs in other sites).",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_intrasite_compressed_traffic":{info:"The number of bytes replicated that were not compressed (that is., from DSAs in the same site).",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_properties_updated":{info:"The number of properties that are updated due to incoming property winning the reconciliation logic that determines the final value to be replicated.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_objects_filtered":{info:"The number of objects received from inbound replication partners that contained no updates that needed to be applied.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_pending_syncs":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Pending Syncs",layout:{x:3,y:0,w:3,h:5}}],info:"The number of directory synchronizations that are queued for this server but not yet processed.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_sync_requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Sync Requests",desiredUnits:"Requests/s",colors:s.default[0]}],info:"The number of directory synchronizations that are queued for this server but not yet processed.",en:{instance:{one:"AD server",other:"AD servers"}}},"netframework.clrexception_thrown":{info:"The exceptions include both .NET exceptions and unmanaged exceptions that are converted into .NET exceptions.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrexception_filters":{info:"An exception filter evaluates regardless of whether an exception is handled.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrexception_finallys":{info:"The metric counts only the finally blocks executed for an exception; finally blocks on normal code paths are not counted by this counter.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrinterop_com_callable_wrappers":{info:"A COM callable wrappers (CCW) is a proxy for a managed object being referenced from an unmanaged COM client.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrinterop_interop_stubs_created":{info:"The Stubs are responsible for marshaling arguments and return values from managed to unmanaged code, and vice versa, during a COM interop call or a platform invoke call.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_methods":{info:"The metric does not include pre-JIT-compiled methods.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_time":{aggregationMethod:"avg",info:"The metric is updated at the end of every JIT compilation phase. A JIT compilation phase occurs when a method and its dependencies are compiled.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_standard_failures":{info:"The failure can occur if the MSIL cannot be verified or if there is an internal error in the JIT compiler.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrloading_loader_heap_size":{info:"The memory committed by the class loader across all application domains is the physical space reserved in the disk paging file.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrloading_assemblies_loaded":{info:"If the assembly is loaded as domain-neutral from multiple application domains, the metric is incremented only once.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrlocksandthreads_recognized_threads":{info:"Displays the total number of threads that have been recognized by the runtime since the application started. These threads are associated with a corresponding managed thread object. The runtime does not create these threads, but they have run inside the runtime at least once.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_heap_size":{info:"The metric shows maximum bytes that can be allocated, but it does not indicate the current number of bytes allocated.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_promoted":{info:"Memory is promoted when it survives a garbage collection.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_number_gc_handles":{info:"Garbage collection handles are handles to resources external to the common language runtime and the managed environment.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_induced_gc":{info:"The metric is updated when an explicit call to GC.Collect happens.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_number_sink_blocks_in_use":{info:"Synchronization blocks are per-object data structures allocated for storing synchronization information. They hold weak references to managed objects and must be scanned by the garbage collector.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_committed":{info:"Committed memory is the physical memory for which space has been reserved in the disk paging file.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_reserved":{info:"Reserved memory is the virtual memory space reserved for the application when no disk or main memory pages have been used.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_gc_time":{aggregationMethod:"avg",info:"Displays the percentage of time that was spent performing a garbage collection in the last sample.",en:{instance:{one:".NET server",other:".NET servers"}}},"adaptec_raid.ld_status":{info:"Status of logical devices (1: Failed or Degraded).",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.pd_state":{info:"State of physical devices (1: not Online).",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.smart_warnings":{info:"S.M.A.R.T warnings.",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.temperature":{info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"alerts.status":{info:"Alert Values.",en:{instance:{one:"alert",other:"alerts"}}},"am2320.temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"am2320.humidity":{aggregationMethod:"avg",info:"Relative Humidity.",en:{instance:{one:"device",other:"devices"}}},"anomalies.probability":{info:"Anomaly Probability.",en:{instance:{one:"device",other:"devices"}}},"anomalies.anomaly":{info:"Anomaly.",en:{instance:{one:"device",other:"devices"}}},"ap.clients":{info:"Connected clients to ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.net":{info:"Bandwidth for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.packets":{info:"Packets for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.issues":{info:"Transmit Issues for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.signal":{info:"Average Signal for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.bitrate":{info:"Bitrate for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.charge":{aggregationMethod:"avg",info:"UPS Charge.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.battery.voltage":{aggregationMethod:"avg",info:"UPS Battery Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.input.voltage":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.output.voltage":{aggregationMethod:"avg",info:"UPS Output Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.input.frequency":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.load":{aggregationMethod:"avg",info:"UPS Load.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.load_usage":{info:"UPS Load Usage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.temperature":{aggregationMethod:"avg",info:"UPS Temperature.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.time":{aggregationMethod:"min",info:"UPS Time Remaining.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.online":{info:"UPS ONLINE flag.",en:{instance:{one:"device",other:"devices"}}},"netdata.apps_cpu":{info:"Apps Plugin CPU.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_sizes":{info:"Apps Plugin Files.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_fix":{aggregationMethod:"avg",info:"Apps Plugin Normalization Ratios.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_children_fix":{aggregationMethod:"avg",info:"Apps Plugin Exited Children Normalization Ratios.",en:{instance:{one:"agent",other:"agents"}}},"bind_rndc.name_server_statistics":{info:"Name Server Statistics.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.incoming_queries":{info:"Incoming queries.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.outgoing_queries":{info:"Outgoing queries.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.stats_size":{info:"Named Stats File Size.",en:{instance:{one:"server",other:"servers"}}},"cassandra.storage_exceptions_rate":{info:"Storage exceptions rate.",en:{instance:{one:"db server",other:"db servers"}}},"ceph.pool_read_operations":{info:"Ceph Read Pool Operations/s.",en:{instance:{one:"pool",other:"pools"}}},"ceph.pool_write_operations":{info:"Ceph Write Pool Operations/s.",en:{instance:{one:"pool",other:"pools"}}},"services.services.throttle_io_write":{info:"Systemd Services Throttle Disk Write Bandwidth.",en:{instance:{one:"system",other:"systems"}}},throttle_io_ops_write:{info:"Systemd Services Throttle Disk Write Operations.",en:{instance:{one:"system",other:"systems"}}},"changefinder.scores":{info:"ChangeFinder.",en:{instance:{one:"system",other:"systems"}}},"changefinder.flags":{info:"ChangeFinder.",en:{instance:{one:"system",other:"systems"}}},"cockroachdb.process_cpu_time":{aggregationMethod:"avg",info:"CPU Time.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.sql_connections":{info:"Active SQL Connections.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.logical_data":{info:"Logical Data.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.logical_data_count":{info:"Logical Data Count.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.range_events":{info:"Range Events.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.range_snapshot_events":{info:"Range Snapshot Events.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_read_amplification":{info:"RocksDB Read Amplification.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_cache_usage":{info:"RocksDB Block Cache Usage.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_cache_operations":{info:"RocksDB Block Cache Operations.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_sstables":{info:"RocksDB SSTables.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.replicas_quiescence":{info:"Replicas Quiescence.",en:{instance:{one:"db server",other:"db servers"}}},"consul.autopilot_server_health_status":{info:"Autopilot server health status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_stable_time":{aggregationMethod:"avg",info:"Autopilot server stable time.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_serf_status":{info:"Autopilot server Serf status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_voter_status":{info:"Autopilot server Raft voting membership.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.network_lan_rtt":{info:"Network lan RTT.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_follower_last_contact_leader_time":{aggregationMethod:"avg",info:"Raft follower last contact with the leader time.",en:{instance:{one:"datacenter",other:"datacenters"}}},"coredns.dns_request_count_total_per_status":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Dropped DNS Requests",selectedDimensions:["dropped"],colors:s.default[1],layout:{x:12,y:0,w:2,h:5}}],info:"Number Of Processed And Dropped DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_per_type":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Requests per Type",layout:{x:3,y:0,w:2.5,h:5}}],info:"Number Of DNS Requests Per Type.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_responses_count_total_per_rcode":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Responses per Rcode",layout:{x:9,y:0,w:2.5,h:5}}],info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_dns_request_count_total":{info:"Number Of DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_dns_responses_count_total":{info:"Number Of DNS Responses.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_request_count_total_per_status":{info:"Number Of Processed And Dropped DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_per_type":{info:"Number Of DNS Requests Per Type.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_responses_count_total_per_rcode":{info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"server",other:"servers"}}},"coredns.zone_dns_request_count_total":{info:"Number Of DNS Requests.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_dns_responses_count_total":{info:"Number Of DNS Responses.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_per_type":{info:"Number Of DNS Requests Per Type.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_responses_count_total_per_rcode":{info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"zone",other:"zones"}}},"couchbase.bucket_quota_percent_used":{aggregationMethod:"avg",info:"Quota Percent Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_ops_per_sec":{info:"Operations Per Second Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_disk_fetches":{info:"Disk Fetches Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_item_count":{info:"Item Count Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_disk_used_stats":{info:"Disk Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_data_used":{info:"Data Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_mem_used":{info:"Memory Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_vb_active_num_non_resident":{info:"Number Of Non-Resident Items Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"cups.dests_state":{family:"destination",info:"Destinations by state.",en:{instance:{one:"system",other:"systems"}}},"cups.dests_option":{family:"destination",info:"Destinations by option.",en:{instance:{one:"system",other:"systems"}}},"cups.job_num":{family:"jobs",info:"Active jobs.",en:{instance:{one:"system",other:"systems"}}},"cups.job_size":{family:"jobs",info:"Active jobs size.",en:{instance:{one:"system",other:"systems"}}},"cups.destination_job_num":{family:"jobs",info:"Active jobs of {destination}.",en:{instance:{one:"destination",other:"destinations"}}},"cups.destination_job_size":{family:"jobs",info:"Active jobs size of {destination}.",en:{instance:{one:"destination",other:"destinations"}}},"dnsdist.queries":{info:"Client queries received.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.queries_dropped":{info:"Client queries dropped.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.packets_dropped":{info:"Packets dropped.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.answers":{info:"Answers statistics.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_responses":{info:"Backend responses.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_commerrors":{info:"Backend communication errors.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_errors":{info:"Backend error responses.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.cache":{info:"Cache performance.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.servercpu":{info:"DNSdist server CPU utilization.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.servermem":{info:"DNSdist server memory utilization.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.query_latency":{aggregationMethod:"avg",info:"Query latency.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.query_latency_avg":{info:"Average latency for the last N queries.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_ranges":{info:"Number of DHCP Ranges.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_hosts":{info:"Number of DHCP Hosts.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_range_utilization":{aggregationMethod:"avg",info:"DHCP Range utilization.",en:{instance:{one:"dhcp range",other:"dhcp ranges"}}},"dnsmasq_dhcp.dhcp_range_allocated_leases":{info:"DHCP Range Allocated Leases.",en:{instance:{one:"dhcp range",other:"dhcp ranges"}}},"dnsmasq.servers_queries":{info:"Queries forwarded to the upstream servers.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_performance":{info:"Cache performance.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_operations":{info:"Cache operations.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_size":{aggregationMethod:"avg",info:"Cache size.",en:{instance:{one:"server",other:"servers"}}},"dns_query.query_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Query Status",layout:{x:0,y:0,w:4,h:5}}],info:"DNS Query Status.",en:{instance:{one:"server",other:"servers"}}},"dns_query.query_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum DNS Query Response Time",valueRange:[0,null],colors:s.default[1],layout:{x:3,y:0,w:4,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average DNS Query Response Time",valueRange:[0,null],colors:s.default[0],layout:{x:9,y:0,w:4,h:5}}],info:"DNS Query Time.",en:{instance:{one:"server",other:"servers"}}},"docker_engine.engine_daemon_container_actions":{info:"Container Actions.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.engine_daemon_container_states_containers":{info:"Containers In Various States.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.builder_builds_failed_total":{info:"Builder Builds Fails By Reason.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.engine_daemon_health_checks_failed_total":{info:"Health Checks.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_leader":{info:"Swarm Manager Leader.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_object_store":{info:"Swarm Manager Object Store.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_nodes_per_state":{info:"Swarm Manager Nodes Per State.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_tasks_per_state":{info:"Swarm Manager Tasks Per State.",en:{instance:{one:"system",other:"systems"}}},"docker.containers_health_status":{info:"Total number of Docker containers in various health states.",en:{instance:{one:"container",other:"containers"}}},"docker.container_writeable_layer_size":{info:"Docker container writable layer size.",en:{instance:{one:"container",other:"containers"}}},"dockerhub.pulls_sum":{info:"Pulls Summary.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.pulls":{info:"Pulls.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.pulls_rate":{info:"Pulls Rate.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.stars":{info:"Stars.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.status":{info:"Current Status.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.last_updated":{info:"Time Since Last Updated.",en:{instance:{one:"repository",other:"repositories"}}},"dovecot.sessions":{info:"Dovecot Active Sessions.",en:{instance:{one:"server",other:"servers"}}},"dovecot.logins":{info:"Dovecot Logins.",en:{instance:{one:"server",other:"servers"}}},"dovecot.commands":{info:"Dovecot Commands.",en:{instance:{one:"server",other:"servers"}}},"dovecot.faults":{info:"Dovecot Page Faults.",en:{instance:{one:"server",other:"servers"}}},"dovecot.context_switches":{info:"Dovecot Context Switches.",en:{instance:{one:"server",other:"servers"}}},"dovecot.io":{info:"Dovecot Disk I/O.",en:{instance:{one:"server",other:"servers"}}},"dovecot.net":{info:"Dovecot Network Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"dovecot.syscalls":{info:"Dovecot Number of SysCalls.",en:{instance:{one:"server",other:"servers"}}},"dovecot.lookup":{info:"Dovecot Lookups.",en:{instance:{one:"server",other:"servers"}}},"dovecot.cache":{info:"Dovecot Cache Hits.",en:{instance:{one:"server",other:"servers"}}},"dovecot.auth":{info:"Dovecot Authentications.",en:{instance:{one:"server",other:"servers"}}},"dovecot.auth_cache":{info:"Dovecot Authentication Cache.",en:{instance:{one:"server",other:"servers"}}},"cgroup.fd_closed":{info:"Files closed.",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.file_open":{info:"Number of open files.",en:{instance:{one:"service",other:"services"}}},"services.file_open_error":{info:"Fails to open files.",en:{instance:{one:"service",other:"services"}}},"services.file_closed":{info:"Files closed.",en:{instance:{one:"service",other:"services"}}},"services.file_close_error":{info:"Fails to close files.",en:{instance:{one:"service",other:"services"}}},"mem.meory_map":{info:"Monitor calls for <code>msync(2)</code>..",en:{instance:{one:"system",other:"systems"}}},"mdstat.mdstat_flush":{info:"MD flushes.",en:{instance:{one:"system",other:"systems"}}},"cgroup.oomkills":{info:"OOM kills. This chart is provided by eBPF plugin..",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.oomkills":{info:"OOM kills. This chart is provided by eBPF plugin..",en:{instance:{one:"service",other:"services"}}},"apps.oomkills":{info:"OOM kills.",en:{instance:{one:"app group",other:"app groups"}}},"cgroup.net_conn_ipv4":{info:"Calls to tcp_v4_connection.",en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_conn_ipv6":{info:"Calls to tcp_v6_connection.",en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_sent":{info:"Bytes sent.",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.net_conn_ipv4":{info:"Calls to tcp_v4_connection.",en:{instance:{one:"service",other:"services"}}},"services.net_conn_ipv6":{info:"Calls to tcp_v6_connection.",en:{instance:{one:"service",other:"services"}}},"services.net_bytes_sent":{info:"Bytes sent.",en:{instance:{one:"service",other:"services"}}},"services.net_tcp_retransmit":{info:"Calls to tcp_retransmit.",en:{instance:{one:"service",other:"services"}}},"apps.dc_ratio":{aggregationMethod:"avg",info:"Percentage of files inside directory cache.",en:{instance:{one:"app group",other:"app groups"}}},"services.dc_ratio":{aggregationMethod:"avg",info:"Percentage of files inside directory cache.",en:{instance:{one:"service",other:"services"}}},"filesystem.read_latency":{aggregationMethod:"avg",info:"ext4 latency for each read request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.write_latency":{aggregationMethod:"avg",info:"ext4 latency for each write request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.open_latency":{aggregationMethod:"avg",info:"ext4 latency for each open request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.sync_latency":{aggregationMethod:"avg",info:"ext4 latency for each sync request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.attributte_latency":{aggregationMethod:"avg",info:"nfs latency for each attribute request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"netdata.ebpf_aral_stat_size":{info:"Bytes allocated for ARAL..",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_aral_stat_alloc":{info:"Calls to allocate memory.",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_kernel_memory":{info:"Memory allocated for hash tables..",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_hash_tables_count":{info:"Number of hash tables loaded.",en:{instance:{one:"agent",other:"agents"}}},"elasticsearch.node_indices_indexing":{info:"Indexing Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_indexing_current":{info:"Indexing Operations Current.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_indexing_time":{aggregationMethod:"avg",info:"Time Spent On Indexing Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search":{info:"Search Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search_current":{info:"Search Operations Current.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search_time":{aggregationMethod:"avg",info:"node_indices_search_time.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_refresh":{info:"Refresh Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_refresh_time":{aggregationMethod:"avg",info:"Time Spent On Refresh Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_flush":{info:"Flush Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_flush_time":{aggregationMethod:"avg",info:"Time Spent On Flush Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_fielddata_memory_usage":{info:"Fielddata Cache Memory Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_fielddata_evictions":{info:"Fielddata Evictions.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_count":{info:"Segments Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_memory_usage_total":{info:"Segments Memory Usage Total.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_memory_usage":{info:"Segments Memory Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_translog_operations":{info:"Translog Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_translog_size":{info:"Translog Size.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_file_descriptors":{info:"Process File Descriptors.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_heap":{aggregationMethod:"avg",info:"JVM Heap Percentage Currently in Use.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_heap_bytes":{info:"JVM Heap Commit And Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pools_count":{info:"JVM Buffer Pools Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pool_direct_memory":{info:"JVM Buffer Pool Direct Memory.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pool_mapped_memory":{info:"JVM Buffer Pool Mapped Memory.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_gc_count":{info:"JVM Garbage Collections.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_gc_time":{aggregationMethod:"avg",info:"JVM Time Spent On Garbage Collections.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_thread_pool_queued":{info:"Thread Pool Queued Threads Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_thread_pool_rejected":{info:"Thread Pool Rejected Threads Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.cluster_communication_packets":{info:"Cluster Communication.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_communication":{info:"Cluster Communication Bandwidth.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.http_connections":{info:"HTTP Connections.",en:{instance:{one:"server",other:"servers"}}},"elasticsearch.breakers_trips":{info:"Circuit Breaker Trips Count.",en:{instance:{one:"server",other:"servers"}}},"elasticsearch.cluster_health_status":{info:"Cluster Status.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_number_of_nodes":{info:"Cluster Nodes Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_shards_count":{info:"Cluster Shards Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_pending_tasks":{info:"Cluster Pending Tasks.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_number_of_in_flight_fetch":{info:"Cluster Unfinished Fetches.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_count":{info:"Cluster Indices Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_shards_count":{info:"Cluster Indices Shards Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_docs_count":{info:"Cluster Indices Docs Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_store_size":{info:"Cluster Indices Store Size.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_query_cache":{info:"Cluster Indices Query Cache.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_nodes_by_role_count":{info:"Cluster Nodes By Role Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.node_index_health":{info:"Index Health.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_shards_count":{info:"Index Shards Count.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_docs_count":{info:"Index Docs Count.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_store_size":{info:"Index Store Size.",en:{instance:{one:"index",other:"indexes"}}},"energid.blockindex":{info:"Blockchain index.",en:{instance:{one:"server",other:"servers"}}},"energid.difficulty":{info:"Blockchain difficulty.",en:{instance:{one:"server",other:"servers"}}},"energid.mempool":{info:"Memory pool.",en:{instance:{one:"server",other:"servers"}}},"energid.secmem":{info:"Secure memory.",en:{instance:{one:"server",other:"servers"}}},"energid.network":{info:"Network.",en:{instance:{one:"server",other:"servers"}}},"energid.timeoffset":{info:"Network time offset.",en:{instance:{one:"server",other:"servers"}}},"energid.utxo_transactions":{info:"Transactions.",en:{instance:{one:"server",other:"servers"}}},"exim.qemails":{info:"Exim Queue Emails.",en:{instance:{one:"server",other:"servers"}}},"fail2ban.faile_attempts":{info:"Failed attempts.",en:{instance:{one:"system",other:"systems"}}},"filecheck.file_existence":{info:"File Existence (0: not exists, 1: exists).",en:{instance:{one:"file",other:"files"}}},"filecheck.file_mtime_ago":{info:"File Time Since the Last Modification.",en:{instance:{one:"file",other:"files"}}},"filecheck.file_size":{info:"File Size.",en:{instance:{one:"file",other:"files"}}},"filecheck.dir_existence":{info:"Dir Existence (0: not exists, 1: exists).",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_mtime_ago":{info:"Dir Time Since the Last Modification.",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_num_of_files":{info:"Dir Number of Files.",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_size":{info:"Dir Size.",en:{instance:{one:"directory",other:"directories"}}},"fluentd.retry_count":{info:"Plugin Retry Count.",en:{instance:{one:"plugin",other:"plugins"}}},"fluentd.buffer_queue_length":{info:"Plugin Buffer Queue Length.",en:{instance:{one:"plugin",other:"plugins"}}},"fluentd.buffer_total_queued_size":{info:"Plugin Buffer Total Size.",en:{instance:{one:"plugin",other:"plugins"}}},"cpu.temperature":{info:"Core temperature.",en:{instance:{one:"core",other:"cores"}}},"cpu.scaling_cur_freq":{info:"Current CPU Scaling Frequency.",en:{instance:{one:"system",other:"systems"}}},"system.dev_intr":{info:"Device Interrupts.",en:{instance:{one:"system",other:"systems"}}},"system.soft_intr":{info:"Software Interrupts.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_shared_mem_segs":{info:"IPC Shared Memory Segments.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_shared_mem_size":{info:"IPC Shared Memory Segments Size.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_queues":{info:"Number of IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_messages":{info:"Number of Messages in IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_size":{info:"Size of IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpconnaborts":{info:"TCP Connection Aborts.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpofo":{info:"TCP Out-Of-Order Queue.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpsyncookies":{info:"TCP SYN Cookies.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcplistenissues":{info:"TCP Listen Socket Issues.",en:{instance:{one:"system",other:"systems"}}},"ipv4.ecnpkts":{info:"IPv4 ECN Statistics.",en:{instance:{one:"system",other:"systems"}}},"ipfw.mem":{info:"Memory allocated by rules.",en:{instance:{one:"system",other:"systems"}}},"ipfw.packets":{info:"Packets.",en:{instance:{one:"system",other:"systems"}}},"ipfw.bytes":{info:"Bytes.",en:{instance:{one:"system",other:"systems"}}},"ipfw.active":{info:"Active rules.",en:{instance:{one:"system",other:"systems"}}},"ipfw.expired":{info:"Expired rules.",en:{instance:{one:"system",other:"systems"}}},"system.packets":{info:"Network Packets.",en:{instance:{one:"system",other:"systems"}}},"zfs.hits_rate":{info:"ZFS ARC Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.dhits_rate":{info:"ZFS Demand Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.phits_rate":{info:"ZFS Prefetch Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.mhits_rate":{info:"ZFS Metadata Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.l2hits_rate":{info:"ZFS L2 Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.actual_hits_rate":{info:"ZFS Actual Cache Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.demand_data_hits_rate":{info:"ZFS Data Demand Efficiency Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.prefetch_data_hits_rate":{info:"ZFS Data Prefetch Efficiency Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.trim_bytes":{info:"Successfully TRIMmed bytes.",en:{instance:{one:"system",other:"systems"}}},"zfs.trim_requests":{info:"TRIM requests.",en:{instance:{one:"system",other:"systems"}}},"ipmi.sel":{groupBy:["node"],info:"IPMI Events.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_state":{info:"IPMI Sensors State.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_temperature_c":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Temperature",layout:{x:2,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Temperature",layout:{x:2,y:2.5,w:2,h:2.5}}],info:"IPMI Sensor Temperature Celsius.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_temperature_f":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Temperature",layout:{x:2,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Temperature",layout:{x:2,y:2.5,w:2,h:2.5}}],info:"IPMI Sensor Temperature Fahrenheit.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_voltage":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Voltage",colors:s.default[12],layout:{x:8,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Voltage",layout:{x:10,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Voltage",layout:{x:10,y:2.5,w:2,h:2.5}}],groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Voltage.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_ampere":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Current.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_fan_speed":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Fan Speed",layout:{x:4,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Fan Speed",layout:{x:6,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Fan Speed",layout:{x:6,y:2.5,w:2,h:2.5}}],groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Fans speed.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_power":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Power.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_reading_percent":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Reading Percentage.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensors_states":{info:"IPMI Sensors State.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.temperatures_c":{groupBy:["node"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Temperature",layout:{x:2,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Temperature",layout:{x:2,y:2.5,w:2,h:2.5}}],info:"System Celsius Temperatures read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.temperatures_f":{groupBy:["node"],aggregationMethod:"max",info:"System Celsius Temperatures read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.voltages":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Voltage",colors:s.default[12],layout:{x:8,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Voltage",layout:{x:10,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Voltage",layout:{x:10,y:2.5,w:2,h:2.5}}],groupBy:["node"],aggregationMethod:"avg",info:"System Voltages read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.amps":{groupBy:["node"],aggregationMethod:"avg",info:"System Current read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.rpm":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Fan Speed",layout:{x:4,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Fan Speed",layout:{x:6,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Fan Speed",layout:{x:6,y:2.5,w:2,h:2.5}}],groupBy:["node"],aggregationMethod:"avg",info:"System Fans read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.watts":{groupBy:["node"],aggregationMethod:"avg",info:"System Power read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.percent":{groupBy:["node"],aggregationMethod:"avg",info:"System Metrics read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"freeradius.proxy_bad_authentication":{info:"Bad Authentication Requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.accounting":{info:"Accounting.",en:{instance:{one:"server",other:"servers"}}},"freeradius.bad_accounting":{info:"Bad Accounting Requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_accounting":{info:"Accounting.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_bad_accounting":{info:"Bad Accounting Requests.",en:{instance:{one:"server",other:"servers"}}},"gearman.total_jobs":{info:"Total Jobs.",en:{instance:{one:"server",other:"servers"}}},"gearman.single_job":{info:"{job_name}.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_ancient_io_rate":{info:"Ancient Chaindata rate.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_ancient_io":{info:"Session ancient Chaindata.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_disk_io":{info:"Session chaindata on disk.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_disk_io_rate":{info:"On disk Chaindata rate.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_pending":{info:"Pending Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_current":{info:"Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_queued":{info:"Queued Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.p2p_peers":{info:"Number of Peers.",en:{instance:{one:"server",other:"servers"}}},"geth.rpc_calls":{info:"rpc calls.",en:{instance:{one:"server",other:"servers"}}},"expvar.memstats.heap":{info:"memory: size of heap memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.stack":{info:"memory: size of stack memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.mspan":{info:"memory: size of mspan memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.mcache":{info:"memory: size of mcache memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.live_objects":{info:"memory: number of live objects.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.sys":{info:"memory: size of reserved virtual address space.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.gc_pauses":{info:"memory: average duration of GC pauses.",en:{instance:{one:"system",other:"systems"}}},"hddtemp.temperatures":{aggregationMethod:"avg",info:"Disk Temperatures.",en:{instance:{one:"device",other:"devices"}}},"hdfs.threads":{info:"Number of Threads.",en:{instance:{one:"device",other:"devices"}}},"hdfs.logs_total":{info:"Number of Logs.",en:{instance:{one:"device",other:"devices"}}},"hdfs.open_connections":{info:"RPC Open Connections.",en:{instance:{one:"device",other:"devices"}}},"hdfs.call_queue_length":{info:"RPC Call Queue Length.",en:{instance:{one:"device",other:"devices"}}},"hdfs.capacity":{info:"Capacity Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.used_capacity":{info:"Used Capacity Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.load":{info:"Number of Concurrent File Accesses (read/write) Across All DataNodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.volume_failures_total":{info:"Number of Volume Failures Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.files_total":{info:"Number of Tracked Files.",en:{instance:{one:"device",other:"devices"}}},"hdfs.blocks_total":{info:"Number of Allocated Blocks in the System.",en:{instance:{one:"device",other:"devices"}}},"hdfs.blocks":{info:"Number of Problem Blocks (can point to an unhealthy cluster).",en:{instance:{one:"device",other:"devices"}}},"hdfs.data_nodes":{info:"Number of Data Nodes By Status.",en:{instance:{one:"device",other:"devices"}}},"hdfs.datanode_used_capacity":{info:"Used Capacity.",en:{instance:{one:"device",other:"devices"}}},"hdfs.datanode_failed_volumes":{info:"Number of Failed Volumes.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ctrl_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ctrl_temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ld_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.pd_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.pd_temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"httpcheck.in_state":{aggregationMethod:"avg",info:"HTTP Current State Duration.",en:{instance:{one:"server",other:"servers"}}},"icecast.listeners":{info:"Number Of Listeners.",en:{instance:{one:"server",other:"servers"}}},"ioping.latency":{info:"Read Latency.",en:{instance:{one:"disk",other:"disks"}}},"ipfs.bandwidth":{info:"IPFS Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"ipfs.peers":{info:"IPFS Peers.",en:{instance:{one:"server",other:"servers"}}},"ipfs.repo_size":{info:"IPFS Repo Size.",en:{instance:{one:"server",other:"servers"}}},"ipfs.repo_objects":{info:"IPFS Repo Objects.",en:{instance:{one:"server",other:"servers"}}},"isc_dhcpd.active_leases_total":{info:"Active Leases Total.",en:{instance:{one:"server",other:"servers"}}},"isc_dhcpd.pool_active_leases":{info:"Pool Active Leases.",en:{instance:{one:"pool",other:"pools"}}},"isc_dhcpd.pool_utilization":{aggregationMethod:"avg",info:"Pool Utilization.",en:{instance:{one:"pool",other:"pools"}}},"libreswan.net":{info:"LibreSWAN Tunnel ${name} Traffic.",en:{instance:{one:"tunnel",other:"tunnels"}}},"libreswan.uptime":{aggregationMethod:"min",info:"LibreSWAN Tunnel ${name} Uptime.",en:{instance:{one:"tunnel",other:"tunnels"}}},"lighttpd.scoreboard":{info:"ScoreBoard.",en:{instance:{one:"server",other:"servers"}}},"litespeed.net_throughput":{info:"Network Throughput HTTPS.",en:{instance:{one:"server",other:"servers"}}},"litespeed.connections":{info:"Connections HTTPS.",en:{instance:{one:"server",other:"servers"}}},"litespeed.requests":{info:"Requests.",en:{instance:{one:"server",other:"servers"}}},"litespeed.requests_processing":{info:"Requests In Processing.",en:{instance:{one:"server",other:"servers"}}},"litespeed.cache":{info:"Private Cache Hits.",en:{instance:{one:"server",other:"servers"}}},"litespeed.static":{info:"Static Hits.",en:{instance:{one:"server",other:"servers"}}},"logstash.jvm_mem_heap":{info:"JVM Heap Memory.",en:{instance:{one:"system",other:"systems"}}},"megacli.adapter_degraded":{info:"Adapter State.",en:{instance:{one:"device",other:"devices"}}},"megacli.pd_media_error":{info:"Physical Drives Media Errors.",en:{instance:{one:"device",other:"devices"}}},"megacli.pd_predictive_failure":{info:"Physical Drives Predictive Failures.",en:{instance:{one:"device",other:"devices"}}},"megacli.bbu_relative_charge":{aggregationMethod:"avg",info:"Relative State of Charge.",en:{instance:{one:"battery",other:"batteries"}}},"megacli.bbu_cycle_count":{info:"Cycle Count.",en:{instance:{one:"battery",other:"batteries"}}},"memcached.cache":{info:"Cache Size.",en:{instance:{one:"system",other:"systems"}}},"memcached.net":{info:"Network.",en:{instance:{one:"system",other:"systems"}}},"memcached.connections":{info:"Connections.",en:{instance:{one:"system",other:"systems"}}},"memcached.items":{info:"Items.",en:{instance:{one:"system",other:"systems"}}},"memcached.evicted_reclaimed":{info:"Evicted and Reclaimed Items.",en:{instance:{one:"system",other:"systems"}}},"memcached.get":{info:"Get Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.get_rate":{info:"Get Request Rate.",en:{instance:{one:"system",other:"systems"}}},"memcached.set_rate":{info:"Set Request Rate.",en:{instance:{one:"system",other:"systems"}}},"memcached.delete":{info:"Delete Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.cas":{info:"Check and Set Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.increment":{info:"Increment Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.decrement":{info:"Decrement Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.touch":{info:"Touch Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.touch_rate":{info:"Touch Request Rate.",en:{instance:{one:"system",other:"systems"}}},"mongodb.operations_rate":{info:"Operations rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.operations_latency_time":{aggregationMethod:"avg",info:"Operations Latency.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.operations_by_type_rate":{info:"Operations by type.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.document_operations_rate":{info:"Document operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.scanned_indexes_rate":{info:"Scanned indexes.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.scanned_documents_rate":{info:"Scanned documents.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.active_clients_count":{info:"Connected clients.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.queued_operations_count":{info:"Queued operations because of a lock.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.lock_acquisitions_rate":{info:"Lock acquisitions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_open_count":{info:"Open cursors.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_open_no_timeout_count":{info:"Open cursors with disabled timeout.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_opened_rate":{info:"Opened cursors rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_timed_out_rate":{info:"Timed-out cursors.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_by_lifespan_count":{info:"Cursors lifespan.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_count":{info:"Current transactions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_rate":{info:"Transactions rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_commits_rate":{info:"Transactions commits.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_commits_duration_time":{aggregationMethod:"avg",info:"Transactions successful commits duration.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.connections_usage":{info:"Connections usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.connections_by_state_count":{info:"Connections By State.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.asserts_rate":{info:"Raised assertions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_traffic_rate":{info:"Network traffic.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_requests_rate":{info:"Network Requests.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_slow_dns_resolutions_rate":{info:"Slow DNS resolution operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_slow_ssl_handshakes_rate":{info:"Slow SSL handshake operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_resident_size":{info:"Used resident memory.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_virtual_size":{info:"Used virtual memory.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_page_faults_rate":{info:"Memory page faults.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_tcmalloc_stats":{info:"TCMalloc statistics.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_concurrent_read_transactions_usage":{info:"Wired Tiger concurrent read transactions usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_concurrent_write_transactions_usage":{info:"Wired Tiger concurrent write transactions usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_usage":{info:"Wired Tiger cache usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_dirty_space_size":{info:"Wired Tiger cache dirty space size.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_io_rate":{info:"Wired Tiger IO activity.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_evictions_rate":{info:"Wired Tiger cache evictions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.database_collection_count":{info:"Database collections.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_indexes_count":{info:"Database indexes.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_views_count":{info:"Database views.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_documents_count":{info:"Database documents.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_data_size":{info:"Database data size.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_index_size":{info:"Database index size.",en:{instance:{one:"database",other:"databases"}}},"mongodb.repl_set_member_state":{info:"Replica Set member state.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_health_status":{info:"Replica Set member health status.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_replication_lag_time":{aggregationMethod:"max",info:"Replica Set member replication lag.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_heartbeat_latency_time":{aggregationMethod:"avg",info:"Replica Set member heartbeat latency.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_ping_rtt_time":{aggregationMethod:"avg",info:"Replica Set member ping RTT.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_uptime":{aggregationMethod:"min",info:"Replica Set member uptime.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.sharding_nodes_count":{info:"Sharding Nodes.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_sharded_databases_count":{info:"Sharded databases.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_sharded_collections_count":{info:"Sharded collections.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_shard_chunks_count":{info:"Shard chunks.",en:{instance:{one:"shard",other:"shards"}}},"monit.filesystems":{info:"Filesystems.",en:{instance:{one:"system",other:"systems"}}},"monit.directories":{info:"Directories.",en:{instance:{one:"system",other:"systems"}}},"monit.files":{info:"Files.",en:{instance:{one:"system",other:"systems"}}},"monit.fifos":{info:"Pipes (fifo).",en:{instance:{one:"system",other:"systems"}}},"monit.programs":{info:"Programs statuses.",en:{instance:{one:"system",other:"systems"}}},"monit.services":{info:"Processes statuses.",en:{instance:{one:"system",other:"systems"}}},"monit.process_uptime":{aggregationMethod:"min",info:"Processes uptime.",en:{instance:{one:"system",other:"systems"}}},"monit.process_threads":{info:"Processes threads.",en:{instance:{one:"system",other:"systems"}}},"monit.process_childrens":{info:"Child processes.",en:{instance:{one:"system",other:"systems"}}},"monit.hosts":{info:"Hosts.",en:{instance:{one:"system",other:"systems"}}},"monit.host_latency":{aggregationMethod:"avg",info:"Hosts latency.",en:{instance:{one:"system",other:"systems"}}},"monit.networks":{info:"Network interfaces and addresses.",en:{instance:{one:"system",other:"systems"}}},"mysql.queries_type":{info:"Queries By Type.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connections":{info:"Connections.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connections_active":{info:"Active Connections.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.threads":{info:"Threads.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.innodb_os_log_fsync_writes":{info:"InnoDB OS Log Operations.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.innodb_os_log_io":{info:"InnoDB OS Log Bandwidth.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connection_errors":{info:"Connection Errors.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.open_tables":{info:"Open Tables.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.process_list_queries_count":{info:"Queries Count.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_writesets":{info:"Replicated Writesets.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_conflicts":{info:"Replication Conflicts.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_thread_count":{info:"Total Number of WSRep (applier/rollbacker) Threads.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.key_requests":{info:"MyISAM Key Cache Requests.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.key_disk_ops":{info:"MyISAM Key Cache Disk Operations.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.slave_status":{info:"I/O / SQL Thread Running State.",en:{instance:{one:"connection",other:"connections"}}},"mysql.userstats_created_transactions":{info:"User Transactions.",en:{instance:{one:"user",other:"users"}}},"mysql.userstats_empty_queries":{info:"User Empty Queries.",en:{instance:{one:"user",other:"users"}}},"netfilter.netlink_new":{info:"Connection Tracker New Connections.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_changes":{info:"Connection Tracker Changes.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_search":{info:"Connection Tracker Searches.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_errors":{info:"Connection Tracker Errors.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_expect":{info:"Connection Tracker Expectations.",en:{instance:{one:"system",other:"systems"}}},"netfilter.nfacct_packets":{info:"Netfilter Accounting Packets.",en:{instance:{one:"system",other:"systems"}}},"netfilter.nfacct_bytes":{info:"Netfilter Accounting Bandwidth.",en:{instance:{one:"system",other:"systems"}}},"nginxvts.connections_total":{info:"Total connections.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.shm_used_node":{info:"Number of node using shared memory.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_responses_total":{info:"Total number of responses by code class.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_traffic_total":{info:"Total amount of data transferred to and from the server.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_cache_total":{info:"Total server cache.",en:{instance:{one:"server",other:"servers"}}},"nsd.queries":{info:"queries.",en:{instance:{one:"server",other:"servers"}}},"nsd.zones":{info:"zones.",en:{instance:{one:"server",other:"servers"}}},"nsd.protocols":{info:"protocol.",en:{instance:{one:"server",other:"servers"}}},"nsd.type":{info:"query type.",en:{instance:{one:"server",other:"servers"}}},"nsd.transfer":{info:"transfer.",en:{instance:{one:"server",other:"servers"}}},"nsd.rcode":{info:"return code.",en:{instance:{one:"server",other:"servers"}}},"ntpd.sys_rootdisp":{info:"Total root dispersion to the primary reference clock.",en:{instance:{one:"server",other:"servers"}}},"ntpd.peer_stratum":{info:"Peer stratum.",en:{instance:{one:"peer",other:"peers"}}},"nut.charge":{aggregationMethod:"avg",info:"UPS Charge.",en:{instance:{one:"device",other:"devices"}}},"nut.runtime":{info:"UPS Runtime.",en:{instance:{one:"device",other:"devices"}}},"nut.battery.voltage":{aggregationMethod:"avg",info:"UPS Battery Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.input.voltage":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.input.current":{aggregationMethod:"avg",info:"UPS Input Current.",en:{instance:{one:"device",other:"devices"}}},"nut.input.frequency":{aggregationMethod:"avg",info:"UPS Input Frequency.",en:{instance:{one:"device",other:"devices"}}},"nut.output.voltage":{aggregationMethod:"avg",info:"UPS Output Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.load":{aggregationMethod:"avg",info:"UPS Load.",en:{instance:{one:"device",other:"devices"}}},"nut.load_usage":{info:"UPS Load Usage.",en:{instance:{one:"device",other:"devices"}}},"nut.temperature":{aggregationMethod:"avg",info:"UPS Temperature.",en:{instance:{one:"device",other:"devices"}}},"nut.clients":{info:"UPS Connected Clients.",en:{instance:{one:"device",other:"devices"}}},"nvidia_smi.gpu_pcie_bandwidth_utilization":{aggregationMethod:"avg",info:"PCI Express Bandwidth Utilization.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_frame_buffer_memory_usage":{info:"Frame buffer memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_bar1_memory_usage":{info:"BAR1 memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_voltage":{aggregationMethod:"avg",info:"Voltage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_power_draw":{aggregationMethod:"avg",info:"Power draw.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_mode_current_status":{info:"MIG current mode.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_devices_count":{info:"MIG devices.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_frame_buffer_memory_usage":{info:"Frame buffer memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_bar1_memory_usage":{info:"BAR1 memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"openldap.total_connections":{info:"Total Connections.",en:{instance:{one:"server",other:"servers"}}},"openldap.traffic_stats":{info:"Traffic.",en:{instance:{one:"server",other:"servers"}}},"openldap.operations_status":{info:"Operations Status.",en:{instance:{one:"server",other:"servers"}}},"openldap.referrals":{info:"Referrals.",en:{instance:{one:"server",other:"servers"}}},"openldap.entries":{info:"Entries.",en:{instance:{one:"server",other:"servers"}}},"openldap.ldap_operations":{info:"Operations.",en:{instance:{one:"server",other:"servers"}}},"openldap.waiters":{info:"Waiters.",en:{instance:{one:"server",other:"servers"}}},"opensips.dialogs_active":{info:"OpenSIPS Active Dialogs.",en:{instance:{one:"system",other:"systems"}}},"opensips.users":{info:"OpenSIPS Users.",en:{instance:{one:"system",other:"systems"}}},"opensips.registrar":{info:"OpenSIPS Registrar.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions":{info:"OpenSIPS Transactions.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_rcv":{info:"OpenSIPS Core Receives.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_fwd":{info:"OpenSIPS Core Forwards.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_drop":{info:"OpenSIPS Core Drops.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_err":{info:"OpenSIPS Core Errors.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_bad":{info:"OpenSIPS Core Bad.",en:{instance:{one:"system",other:"systems"}}},"opensips.tm_replies":{info:"OpenSIPS TM Replies.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions_status":{info:"OpenSIPS Transactions Status.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions_inuse":{info:"OpenSIPS InUse Transactions.",en:{instance:{one:"system",other:"systems"}}},"opensips.sl_replies":{info:"OpenSIPS SL Replies.",en:{instance:{one:"system",other:"systems"}}},"opensips.dialogs":{info:"OpenSIPS Dialogs.",en:{instance:{one:"system",other:"systems"}}},"opensips.net_waiting":{info:"OpenSIPS Network Waiting.",en:{instance:{one:"system",other:"systems"}}},"opensips.uri_checks":{info:"OpenSIPS URI Checks.",en:{instance:{one:"system",other:"systems"}}},"opensips.traces":{info:"OpenSIPS Traces.",en:{instance:{one:"system",other:"systems"}}},"opensips.shmem":{info:"OpenSIPS Shared Memory.",en:{instance:{one:"system",other:"systems"}}},"opensips.shmem_fragment":{info:"OpenSIPS Shared Memory Fragmentation.",en:{instance:{one:"system",other:"systems"}}},"oracledb.session_count":{info:"Session Count.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.session_limit_usage":{info:"Session Limit Usage.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.logons":{info:"Logons.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.physical_disk_read_writes":{info:"Physical Disk Reads/Writes.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.sorts_on_disks":{info:"Sorts On Disk.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.full_table_scans":{info:"Full Table Scans.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.database_wait_time_ratio":{aggregationMethod:"avg",info:"Database Wait Time Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.shared_pool_free_memory":{info:"Shared Pool Free Memory.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.in_memory_sorts_ratio":{aggregationMethod:"avg",info:"In-Memory Sorts Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.sql_service_response_time":{aggregationMethod:"avg",info:"SQL Service Response Time.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.user_rollbacks":{info:"User Rollbacks.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.enqueue_timeouts":{info:"Enqueue Timeouts.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.cache_hit_ration":{aggregationMethod:"avg",info:"Cache Hit Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.global_cache_blocks":{info:"Global Cache Blocks Events.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.activity":{info:"Activities.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.wait_time":{aggregationMethod:"avg",info:"Wait Time.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.tablespace_size":{info:"Size.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.tablespace_usage":{info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.tablespace_usage_in_percent":{aggregationMethod:"avg",info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_size":{info:"Size.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_usage":{info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_usage_in_percent":{aggregationMethod:"avg",info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"perf.cpu_cycles":{info:"CPU cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.instructions":{info:"Instructions.",en:{instance:{one:"system",other:"systems"}}},"perf.branch_instructions":{info:"Branch instructions.",en:{instance:{one:"system",other:"systems"}}},"perf.cache":{info:"Cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.bus_cycles":{info:"Bus cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.stalled_cycles":{info:"Stalled frontend and backend cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.migrations":{info:"CPU migrations.",en:{instance:{one:"system",other:"systems"}}},"perf.alignment_faults":{info:"Alignment faults.",en:{instance:{one:"system",other:"systems"}}},"perf.emulation_faults":{info:"Emulation faults.",en:{instance:{one:"system",other:"systems"}}},"perf.l1d_cache":{info:"L1D cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.l1d_cache_prefetch":{info:"L1D prefetch cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.l1i_cache":{info:"L1I cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.ll_cache":{info:"LL cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.dtlb_cache":{info:"DTLB cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.itlb_cache":{info:"ITLB cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.pbu_cache":{info:"PBU cache operations.",en:{instance:{one:"system",other:"systems"}}},"pihole.unwanted_domains_blocking_status":{info:"Unwanted Domains Blocking Status.",en:{instance:{one:"server",other:"servers"}}},"pika.connections":{info:"Connections.",en:{instance:{one:"server",other:"servers"}}},"pika.clients":{info:"Clients.",en:{instance:{one:"server",other:"servers"}}},"pika.memory":{info:"Memory usage.",en:{instance:{one:"server",other:"servers"}}},"pika.connected_replicas":{info:"Connected replicas.",en:{instance:{one:"server",other:"servers"}}},"pika.commands":{info:"Processed commands.",en:{instance:{one:"server",other:"servers"}}},"pika.commands_calls":{info:"Calls per command.",en:{instance:{one:"server",other:"servers"}}},"pika.database_strings_keys":{info:"Strings type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_strings_expires_keys":{info:"Strings type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_strings_invalid_keys":{info:"Strings type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_keys":{info:"Hashes type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_expires_keys":{info:"Hashes type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_invalid_keys":{info:"Hashes type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_keys":{info:"Lists type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_expires_keys":{info:"Lists type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_invalid_keys":{info:"Lists type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_keys":{info:"Zsets type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_expires_keys":{info:"Zsets type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_invalid_keys":{info:"Zsets type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_keys":{info:"Sets type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_expires_keys":{info:"Sets type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_invalid_keys":{info:"Sets invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"portcheck.state_duration":{info:"Current State Duration.",en:{instance:{one:"server",other:"servers"}}},"postgres.locks_utilization":{aggregationMethod:"avg",info:"Acquired locks utilization.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.catalog_relations_count":{info:"Relation count.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.catalog_relations_size":{info:"Relation size.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.table_size":{info:"Table total size.",en:{instance:{one:"table",other:"tables"}}},"powerdns.questions_in":{info:"Incoming questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns.questions_out":{info:"Outgoing questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns.cache_usage":{info:"Cache Usage.",en:{instance:{one:"server",other:"servers"}}},"powerdns.cache_size":{info:"Cache Size.",en:{instance:{one:"server",other:"servers"}}},"powerdns.latency":{info:"Answer latency.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.questions_in":{info:"Incoming questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.questions_out":{info:"Outgoing questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.answer_time":{info:"Queries answered within a time range.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.timeouts":{info:"Timeouts on outgoing UDP queries.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.drops":{info:"Drops.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.cache_usage":{info:"Cache Usage.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.cache_size":{info:"Cache Size.",en:{instance:{one:"server",other:"servers"}}},"cpu.cpufreq":{info:"Current CPU Frequency.",en:{instance:{one:"system",other:"systems"}}},"mem.hugepage":{info:"Dedicated HugePages Memory.",en:{instance:{one:"system",other:"systems"}}},"mem.pagetype":{info:"pagetype_Node{node}_{zone}_{type}.",en:{instance:{one:"system",other:"systems"}}},"system.message_queue_message":{info:"IPC Message Queue Number of Messages.",en:{instance:{one:"system",other:"systems"}}},"md.nonredundant":{family:"redundancy",info:"Nonredundant Array Availability.",en:{instance:{one:"device",other:"devices"}}},"wireless.status":{family:"status",info:"Internal status reported by interface..",en:{instance:{one:"device",other:"devices"}}},"btrfs.commits":{family:"commits",info:"BTRFS Commits.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.commits_perc_time":{family:"commits",aggregationMethod:"avg",info:"BTRFS Commits Time Share.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.commit_timings":{family:"commits",info:"BTRFS Commit Timings.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.device_errors":{family:"errors",info:"BTRFS Device Errors.",en:{instance:{one:"device",other:"devices"}}},"proxysql.client_connections_count":{info:"Client connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_connections_rate":{info:"Client connections rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.server_connections_count":{info:"Server connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.server_connections_rate":{info:"Server connections rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backends_traffic":{info:"Backends traffic.",en:{instance:{one:"server",other:"servers"}}},"proxysql.clients_traffic":{info:"Clients traffic.",en:{instance:{one:"server",other:"servers"}}},"proxysql.active_transactions_count":{info:"Client connections that are currently processing a transaction.",en:{instance:{one:"server",other:"servers"}}},"proxysql.questions_rate":{info:"Client requests / statements executed.",en:{instance:{one:"server",other:"servers"}}},"proxysql.slow_queries_rate":{info:"Slow queries.",en:{instance:{one:"server",other:"servers"}}},"proxysql.queries_rate":{info:"Queries rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backend_statements_count":{info:"Statements available across all backend connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backend_statements_rate":{info:"Statements executed against the backends.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_statements_count":{info:"Statements that are in use by clients.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_statements_rate":{info:"Statements executed by clients.",en:{instance:{one:"server",other:"servers"}}},"proxysql.cached_statements_count":{info:"Global prepared statements.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_entries_count":{info:"Query Cache entries.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_memory_used":{info:"Query Cache memory used.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_io":{info:"Query Cache I/O.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_requests_rate":{info:"Query Cache requests.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_workers_count":{info:"MySQL monitor workers.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_workers_rate":{info:"MySQL monitor workers rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_connect_checks_rate":{info:"MySQL monitor connect checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_ping_checks_rate":{info:"MySQL monitor ping checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_read_only_checks_rate":{info:"MySQL monitor read only checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_replication_lag_checks_rate":{info:"MySQL monitor replication lag checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.jemalloc_memory_used":{info:"Jemalloc used memory.",en:{instance:{one:"server",other:"servers"}}},"proxysql.memory_used":{info:"Memory used.",en:{instance:{one:"server",other:"servers"}}},"proxysql.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_command_execution_rate":{info:"MySQL command execution.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_command_execution_time":{aggregationMethod:"avg",info:"MySQL command execution time.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_command_execution_duration":{info:"MySQL command execution duration histogram.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_user_connections_utilization":{aggregationMethod:"avg",info:"MySQL user connections utilization.",en:{instance:{one:"user",other:"users"}}},"proxysql.mysql_user_connections_count":{info:"MySQL user connections used.",en:{instance:{one:"user",other:"users"}}},"proxysql.backend_status":{info:"Backend status.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_connections_usage":{info:"Backend connections usage.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_connections_rate":{info:"Backend connections established.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_queries_rate":{info:"Backend queries.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_traffic":{info:"Backend traffic.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_latency":{aggregationMethod:"avg",info:"Backend latency.",en:{instance:{one:"sql backend",other:"sql backends"}}},"pulsar.broker_components":{info:"Broker Components.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.throughput_rate":{info:"Throughput Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_size":{info:"Storage Size.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_operations_rate":{info:"Storage Read/Write Operations Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_write_latency":{aggregationMethod:"avg",info:"Storage Write Latency.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.entry_size":{info:"Entry Size.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_delayed":{info:"Subscriptions Delayed for Dispatching.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_rate":{info:"Replication Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_throughput_rate":{info:"Replication Throughput Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_backlog":{info:"Replication Backlog.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_broker_components":{info:"Broker Components.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_throughput_rate":{info:"Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_size":{info:"Storage Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_operations_rate":{info:"Storage Read/Write Operations Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_write_latency":{aggregationMethod:"avg",info:"Storage Write Latency.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_entry_size":{info:"Entry Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_subscription_delayed":{info:"Subscriptions Delayed for Dispatching.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_rate":{info:"Replication Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_throughput_rate":{info:"Replication Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_backlog":{info:"Replication Backlog.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_producers":{info:"Topic Producers.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscriptions":{info:"Topic Subscriptions.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_consumers":{info:"Topic Consumers.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_messages_rate_in":{info:"Topic Publish Messages Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_messages_rate_out":{info:"Topic Dispatch Messages Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_throughput_rate_in":{info:"Topic Publish Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_throughput_rate_out":{info:"Topic Dispatch Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_size":{info:"Topic Storage Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_read_rate":{info:"Topic Storage Read Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_write_rate":{info:"Topic Storage Write Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_msg_backlog":{info:"Topic Messages Backlog Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_delayed":{info:"Topic Subscriptions Delayed for Dispatching.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_msg_rate_redeliver":{info:"Topic Subscriptions Redelivered Message Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_blocked_on_unacked_messages":{info:"Topic Subscriptions Blocked On Unacked Messages.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_rate_in":{info:"Topic Replication Rate From Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_rate_out":{info:"Topic Replication Rate To Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_throughput_rate_in":{info:"Topic Replication Throughput Rate From Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_throughput_rate_out":{info:"Topic Replication Throughput Rate To Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_backlog":{info:"Topic Replication Backlog.",en:{instance:{one:"namespace",other:"namespaces"}}},"puppet.jvm":{info:"JVM Non-Heap.",en:{instance:{one:"server",other:"servers"}}},"puppet.fdopen":{info:"File Descriptors.",en:{instance:{one:"server",other:"servers"}}},"rabbitmq.messages_count":{info:"Messages.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.messages_rate":{info:"Messages.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.objects_count":{info:"Objects.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.connection_churn_rate":{info:"Connection churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.channel_churn_rate":{info:"Channel churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.queue_churn_rate":{info:"Queue churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.file_descriptors_count":{info:"File descriptors.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.sockets_count":{info:"Used sockets.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.erlang_processes_count":{info:"Erlang processes.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.erlang_run_queue_processes_count":{info:"Erlang run queue.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.memory_usage":{info:"Memory.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.disk_space_free_size":{info:"Free disk space.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.vhost_messages_count":{info:"Vhost messages.",en:{instance:{one:"vhost",other:"vhosts"}}},"rabbitmq.vhost_messages_rate":{info:"Vhost messages rate.",en:{instance:{one:"vhost",other:"vhosts"}}},"rabbitmq.queue_messages_count":{info:"Queue messages.",en:{instance:{one:"queue",other:"queues"}}},"rabbitmq.queue_messages_rate":{info:"Queue messages rate.",en:{instance:{one:"queue",other:"queues"}}},"redis.connections":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Connections",layout:{x:14,y:0,w:1.999999999,h:5}}],info:"Accepted and rejected (maxclients limit) connections.",en:{instance:{one:"server",other:"servers"}}},"redis.memory":{info:"Memory usage.",en:{instance:{one:"server",other:"servers"}}},"redis.key_eviction_events":{info:"Evicted keys due to maxmemory limit.",en:{instance:{one:"server",other:"servers"}}},"redis.net":{info:"Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"redis.rdb_changes":{info:"TI,TLE.",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_now":{aggregationMethod:"max",info:"Duration of the on-going RDB save operation if any.",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_health":{info:"Status of the last RDB save operation (0: ok, 1: err).",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_last_rdb_save_since_time":{aggregationMethod:"min",info:"Time elapsed since the last successful RDB save.",en:{instance:{one:"server",other:"servers"}}},"redis.aof_file_size":{info:"AOF file size.",en:{instance:{one:"server",other:"servers"}}},"redis.commands_usec":{info:"Total CPU time consumed by the commands.",en:{instance:{one:"server",other:"servers"}}},"redis.commands_usec_per_sec":{info:"Average CPU consumed per command execution.",en:{instance:{one:"server",other:"servers"}}},"redis.key_expiration_events":{info:"Expired keys.",en:{instance:{one:"server",other:"servers"}}},"redis.database_keys":{info:"Keys per database.",en:{instance:{one:"server",other:"servers"}}},"redis.database_expires_keys":{info:"Keys with an expiration per database.",en:{instance:{one:"server",other:"servers"}}},"redis.connected_replicas":{info:"Connected replicas.",en:{instance:{one:"server",other:"servers"}}},"redis.master_link_status":{info:"Master link status.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_connected_servers":{info:"Connected Servers.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_clients_active":{info:"Active Clients.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_queries":{info:"Queries.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_documents":{info:"Documents.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.client_connections":{info:"Client Connections.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.clients_active":{info:"Active Clients.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.queries":{info:"Queries.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.documents":{info:"Documents.",en:{instance:{one:"database",other:"databases"}}},"riak.kv.throughput":{info:"Reads & writes coordinated by this node.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.vnode_updates":{info:"Update operations coordinated by local vnodes by data type.",en:{instance:{one:"server",other:"servers"}}},"riak.search":{info:"Search queries on the node.",en:{instance:{one:"server",other:"servers"}}},"riak.search.documents":{info:"Documents indexed by search.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.operations":{info:"Consistent node operations.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.latency.get":{info:"Time between reception of a client GET request and subsequent response to client.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.latency.put":{info:"Time between reception of a client PUT request and subsequent response to client.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.counter_merge":{info:"Time it takes to perform an Update Counter operation.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.set_merge":{info:"Time it takes to perform an Update Set operation.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.map_merge":{info:"Time it takes to perform an Update Map operation.",en:{instance:{one:"server",other:"servers"}}},"riak.search.latency.query":{info:"Search query latency.",en:{instance:{one:"server",other:"servers"}}},"riak.search.latency.index":{info:"Time it takes Search to index a new document.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.latency.get":{info:"Strongly consistent read latency.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.latency.put":{info:"Strongly consistent write latency.",en:{instance:{one:"server",other:"servers"}}},"riak.vm":{info:"Total processes running in the Erlang VM.",en:{instance:{one:"server",other:"servers"}}},"riak.vm.memory.processes":{info:"Memory allocated & used by Erlang processes.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.siblings_encountered.get":{info:"Number of siblings encountered during GET operations by this node during the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.objsize.get":{info:"Object size encountered by this node during the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.search.vnodeq_size":{info:"Number of unprocessed messages in the vnode message queues of Search on this node in the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.search.index":{info:"Number of writes to Search failed due to bad data format by reason.",en:{instance:{one:"server",other:"servers"}}},"riak.core.protobuf_connections":{info:"Protocol buffer connections by status.",en:{instance:{one:"server",other:"servers"}}},"riak.core.repairs":{info:"Number of repair operations this node has coordinated.",en:{instance:{one:"server",other:"servers"}}},"riak.core.fsm_active":{info:"Active finite state machines by kind.",en:{instance:{one:"server",other:"servers"}}},"riak.core.fsm_rejected":{info:"Finite state machines being rejected by Sidejobs overload protection.",en:{instance:{one:"server",other:"servers"}}},"syscall.rw":{info:"R/Ws.",en:{instance:{one:"server",other:"servers"}}},"smb2.rw":{info:"R/Ws.",en:{instance:{one:"server",other:"servers"}}},"smb2.create_close":{info:"Create/Close.",en:{instance:{one:"server",other:"servers"}}},"smb2.get_set_info":{info:"Info.",en:{instance:{one:"server",other:"servers"}}},"smb2.find":{info:"Find.",en:{instance:{one:"server",other:"servers"}}},"smb2.notify":{info:"Notify.",en:{instance:{one:"server",other:"servers"}}},"smb2.sm_counters":{info:"Lesser Ops.",en:{instance:{one:"server",other:"servers"}}},"scaleio.system_capacity_total":{info:"Total Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_in_use":{info:"Capacity In Use.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_usage":{info:"Capacity Usage.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_available_volume_allocation":{info:"Available For Volume Allocation.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_health_state":{info:"Capacity Health State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_bandwidth_total":{info:"Primary Backend Bandwidth Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_bandwidth":{info:"Primary Backend Bandwidth.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_iops_total":{info:"Primary Backend IOPS Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_iops":{info:"Primary Backend IOPS.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_io_size_total":{info:"Primary Backend I/O Size Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance":{info:"Rebalance.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance_left":{info:"Rebalance Pending Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance_time_until_finish":{aggregationMethod:"min",info:"Rebalance Approximate Time Until Finish.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebuild":{info:"Rebuild Bandwidth Total (Forward, Backward and Normal).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebuild_left":{info:"Rebuild Pending Capacity Total (Forward, Backward and Normal).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_defined_components":{info:"Components.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_components_volumes_by_type":{info:"Volumes By Type.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_components_volumes_by_mapping":{info:"Volumes By Mapping.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_total":{info:"Total Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_in_use":{info:"Capacity In Use.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_usage":{info:"Capacity Usage.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_utilization":{aggregationMethod:"avg",info:"Capacity Utilization.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_available_volume_allocation":{info:"Available For Volume Allocation.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_health_state":{info:"Capacity Health State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_components":{info:"Components.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_mdm_connection_state":{info:"MDM Connection State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_bandwidth":{info:"Bandwidth.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_iops":{info:"IOPS.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_io_size":{info:"IOPS Size.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_num_of_mapped_volumed":{info:"Mapped Volumes.",en:{instance:{one:"storage server",other:"storage servers"}}},"mem.slabmemory":{info:"Memory Usage.",en:{instance:{one:"system",other:"systems"}}},"mem.slabfilling":{info:"Object Filling.",en:{instance:{one:"system",other:"systems"}}},"mem.slabwaste":{info:"Memory waste.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_error_rate":{info:"Read Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.seek_error_rate":{info:"Seek Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.soft_read_error_rate":{info:"Soft Read Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_error_rate":{info:"Write Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_total_err_corrected":{info:"Read Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_total_unc_errors":{info:"Read Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_total_err_corrected":{info:"Write Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_total_unc_errors":{info:"Write Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.verify_total_err_corrected":{info:"Verify Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.verify_total_unc_errors":{info:"Verify Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.sata_interface_downshift":{info:"SATA Interface Downshift.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.udma_crc_error_count":{info:"UDMA CRC Error Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.throughput_performance":{info:"Throughput Performance.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.seek_time_performance":{info:"Seek Time Performance.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.start_stop_count":{info:"Start/Stop Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.power_on_hours_count":{info:"Power-On Hours Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.power_cycle_count":{info:"Power Cycle Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.unexpected_power_loss":{info:"Unexpected Power Loss.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.spin_up_time":{aggregationMethod:"avg",info:"Spin-Up Time.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.spin_up_retries":{info:"Spin-up Retries.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.calibration_retries":{info:"Calibration Retries.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.airflow_temperature_celsius":{aggregationMethod:"avg",info:"Airflow Temperature Celsius.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.temperature_celsius":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reallocated_sectors_count":{info:"Reallocated Sectors Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reserved_block_count":{aggregationMethod:"avg",info:"Reserved Block Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.program_fail_count":{info:"Program Fail Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.erase_fail_count":{info:"Erase Fail Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.wear_leveller_worst_case_erase_count":{info:"Wear Leveller Worst Case Erase Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.unused_reserved_nand_blocks":{info:"Unused Reserved NAND Blocks.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reallocation_event_count":{info:"Reallocation Event Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.current_pending_sector_count":{info:"Current Pending Sector Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.offline_uncorrectable_sector_count":{info:"Offline Uncorrectable Sector Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.percent_lifetime_used":{aggregationMethod:"avg",info:"Percent Lifetime Used.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.media_wearout_indicator":{aggregationMethod:"avg",info:"Media Wearout Indicator.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.nand_writes_1gib":{info:"NAND Writes.",en:{instance:{one:"system",other:"systems"}}},"solr.search_requests":{info:"Search Requests.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_errors":{info:"Search Errors.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_errors_by_type":{info:"Search Errors By Type.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_processing_time":{aggregationMethod:"avg",info:"Search Requests Processing Time.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_timings":{info:"Search Requests Timings.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_processing_time_percentile":{aggregationMethod:"avg",info:"Search Requests Processing Time Percentile.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests":{info:"Update Requests.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_errors":{info:"Update Errors.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_errors_by_type":{info:"Update Errors By Type.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_processing_time":{aggregationMethod:"avg",info:"Update Requests Processing Time.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_timings":{info:"Update Requests Timings.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_processing_time_percentile":{aggregationMethod:"avg",info:"Update Requests Processing Time Percentile.",en:{instance:{one:"solr server",other:"solr server"}}},"spigotmc.mem":{info:"Minecraft Memory Usage.",en:{instance:{one:"spigot server",other:"spigot servers"}}},"springboot2.response_codes":{info:"Response Codes.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.thread":{info:"Threads.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap":{info:"Overview.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_eden":{info:"Eden Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_survivor":{info:"Survivor Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_old":{info:"Old Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.uptime":{aggregationMethod:"min",info:"The uptime of the Java virtual machine.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"squid.clients_net":{info:"Squid Client Bandwidth.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.clients_requests":{info:"Squid Client Requests.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.servers_net":{info:"Squid Server Bandwidth.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.servers_requests":{info:"Squid Server Requests.",en:{instance:{one:"squid instance",other:"squid instances"}}},"supervisord.summary_processes":{info:"Processes.",en:{instance:{one:"client / server",other:"clients / servers"}}},"supervisord.processes":{info:"Processes.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_exit_status":{info:"Exit status.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_downtime":{info:"Downtime.",en:{instance:{one:"process group",other:"process groups"}}},"systemd.service_unit_state":{info:"Service Unit State.",en:{instance:{one:"system",other:"systems"}}},"tengine.bandwidth_total":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.connections_total":{info:"Connections.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_total":{info:"Requests.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_per_response_code_family_total":{info:"Requests Per Response Code Family.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_per_response_code_detailed_total":{info:"Requests Per Response Code Detailed.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_upstream_total":{info:"Number Of Requests Calling For Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.tries_upstream_total":{info:"Number Of Times Calling For Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_upstream_per_response_code_family_total":{info:"Upstream Requests Per Response Code Family.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.processing_time":{aggregationMethod:"avg",info:"processing time.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm":{info:"JVM Memory Pool Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_eden":{info:"Eden Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_survivor":{info:"Survivor Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_tenured":{info:"Tenured Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"unbound.queries":{info:"Received Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.queries_ip_ratelimited":{info:"Rate Limited Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.dnscrypt_queries":{info:"DNSCrypt Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache":{info:"Cache Statistics.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_percentage":{aggregationMethod:"avg",info:"Cache Statistics Percentage.",en:{instance:{one:"server",other:"servers"}}},"unbound.prefetch":{info:"Cache Prefetches.",en:{instance:{one:"server",other:"servers"}}},"unbound.expired":{info:"Replies Served From Expired Cache.",en:{instance:{one:"server",other:"servers"}}},"unbound.zero_ttl_replies":{info:"Replies Served From Expired Cache.",en:{instance:{one:"server",other:"servers"}}},"unbound.recursive_replies":{info:"Replies That Needed Recursive Processing.",en:{instance:{one:"server",other:"servers"}}},"unbound.recursion_time":{aggregationMethod:"avg",info:"Time Spent On Recursive Processing.",en:{instance:{one:"server",other:"servers"}}},"unbound.request_list_usage":{info:"Request List Usage.",en:{instance:{one:"server",other:"servers"}}},"unbound.current_request_list_usage":{info:"Current Request List Usage.",en:{instance:{one:"server",other:"servers"}}},"unbound.request_list_jostle_list":{info:"Request List Jostle List Events.",en:{instance:{one:"server",other:"servers"}}},"unbound.tcpusage":{info:"TCP Handler Buffers.",en:{instance:{one:"server",other:"servers"}}},"unbound.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_memory":{info:"Cache Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.mod_memory":{info:"Module Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.mem_streamwait":{info:"TCP and TLS Stream Waif Buffer Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_count":{info:"Cache Items Count.",en:{instance:{one:"server",other:"servers"}}},"unbound.type_queries":{info:"Queries By Type.",en:{instance:{one:"server",other:"servers"}}},"unbound.class_queries":{info:"Queries By Class.",en:{instance:{one:"server",other:"servers"}}},"unbound.opcode_queries":{info:"Queries By OpCode.",en:{instance:{one:"server",other:"servers"}}},"unbound.flag_queries":{info:"Queries By Flag.",en:{instance:{one:"server",other:"servers"}}},"unbound.rcode_answers":{info:"Replies By RCode.",en:{instance:{one:"server",other:"servers"}}},"unbound.thread_queries":{info:"Thread Received Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_queries_ip_ratelimited":{info:"Thread Rate Limited Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_dnscrypt_queries":{info:"Thread DNSCrypt Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_cache":{info:"Cache Statistics.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_cache_percentage":{aggregationMethod:"avg",info:"Cache Statistics Percentage.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_prefetch":{info:"Cache Prefetches.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_expired":{info:"Replies Served From Expired Cache.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_zero_ttl_replies":{info:"Replies Served From Expired Cache.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_recursive_replies":{info:"Replies That Needed Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_recursion_time":{aggregationMethod:"avg",info:"Time Spent On Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_request_list_usage":{info:"Time Spent On Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_current_request_list_usage":{info:"Current Request List Usage.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_request_list_jostle_list":{info:"Request List Jostle List Events.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_tcpusage":{info:"TCP Handler Buffers.",en:{instance:{one:"thread",other:"threads"}}},"uwsgi.requests":{info:"Requests.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.tx":{info:"Transmitted data.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.avg_rt":{info:"Average request time.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.memory_rss":{info:"RSS (Resident Set Size).",en:{instance:{one:"server",other:"servers"}}},"uwsgi.memory_vsz":{info:"VSZ (Virtual Memory Size).",en:{instance:{one:"server",other:"servers"}}},"uwsgi.exceptions":{info:"Exceptions.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.harakiris":{info:"Harakiris.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.respawns":{info:"Respawns.",en:{instance:{one:"server",other:"servers"}}},"varnish.session_connection":{info:"Connections Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.client_requests":{info:"Client Requests.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.all_time_hit_rate":{aggregationMethod:"avg",info:"All History Hit Rate Ratio.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.current_poll_hit_rate":{aggregationMethod:"avg",info:"Current Poll Hit Rate Ratio.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.cached_objects_expired":{info:"Expired Objects.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.cached_objects_nuked":{info:"Least Recently Used Nuked Objects.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_total":{info:"Number Of Threads In All Pools.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_statistics":{info:"Threads Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_queue_len":{info:"Current Queue Length.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend_connections":{info:"Backend Connections Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend_requests":{info:"Requests To The Backend.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.esi_statistics":{info:"ESI Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.memory_usage":{info:"Memory Usage.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend":{info:"Backend {backend_name}.",en:{instance:{one:"backend",other:"backends"}}},"varnish.storage_usage":{info:"Storage {storage_name} Usage.",en:{instance:{one:"storage",other:"storages"}}},"varnish.storage_alloc_objs":{info:"Storage {storage_name} Allocated Objects.",en:{instance:{one:"storage",other:"storages"}}},"vernemq.socket_operations":{info:"Socket Open and Close Events.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.client_keepalive_expired":{info:"Closed Sockets due to Keepalive Time Expired.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.socket_close_timeout":{info:"Closed Sockets due to no CONNECT Frame On Time.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.socket_errors":{info:"Socket Errors.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_processes_operations":{info:"Queue Processes Setup and Teardown Events.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_process_init_from_storage":{info:"Queue Processes Initialized from Offline Storage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_undelivered_messages":{info:"Undelivered PUBLISH Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_subscriptions":{info:"Subscriptions in the Routing Table.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_matched_subscriptions":{info:"Matched Subscriptions.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_memory":{info:"Routing Table Memory Usage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_utilization_scheduler":{aggregationMethod:"avg",info:"Scheduler Utilization.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_processes":{info:"Erlang Processes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_reductions":{info:"Reductions.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_context_switches":{info:"Context Switches.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_io":{info:"Received and Sent Traffic through Ports.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_run_queue":{info:"Processes that are Ready to Run on All Run-Queues.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_gc_count":{info:"GC Count.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_gc_words_reclaimed":{info:"GC Words Reclaimed.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_allocated_memory":{info:"Memory Allocated by the Erlang Processes and by the Emulator.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.bandwidth":{info:"Bandwidth.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.retain_messages":{info:"Stored Retained Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.retain_memory":{info:"Stored Retained Messages Memory Usage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.cluster_bandwidth":{info:"Communication with Other Cluster Nodes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.cluster_dropped":{info:"Traffic Dropped During Communication with Other Cluster Nodes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.netsplit_unresolved":{info:"Unresolved Netsplits.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.netsplits":{info:"Netsplits.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth":{info:"v5 AUTH.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth_received_reason":{info:"v5 AUTH Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth_sent_reason":{info:"v5 AUTH Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_connect":{info:"v3/v5 CONNECT and CONNACK.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_connack_sent_reason":{info:"v3/v5 CONNACK Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect":{info:"v3/v5 DISCONNECT.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect_received_reason":{info:"v5 DISCONNECT Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect_sent_reason":{info:"v5 DISCONNECT Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe":{info:"v3/v5 SUBSCRIBE and SUBACK.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe_error":{info:"v3/v5 Failed SUBSCRIBE Operations due to a Netsplit.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe_auth_error":{info:"v3/v5 Unauthorized SUBSCRIBE Attempts.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_received_reason":{info:"v5 PUBACK QoS 1 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_sent_reason":{info:"v5 PUBACK QoS 1 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_invalid_error":{info:"v3/v5 PUBACK QoS 1 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec":{info:"v3/v5 PUBREC QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_received_reason":{info:"v5 PUBREC QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_sent_reason":{info:"v5 PUBREC QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_invalid_error":{info:"v3 PUBREC QoS 2 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel":{info:"v3/v5 PUBREL QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel_received_reason":{info:"v5 PUBREL QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel_sent_reason":{info:"v5 PUBREL QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcom":{info:"v3/v5 PUBCOMP QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_received_reason":{info:"v5 PUBCOMP QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_sent_reason":{info:"v5 PUBCOMP QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_invalid_error":{info:"v3/v5 PUBCOMP QoS 2 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.node_uptime":{aggregationMethod:"min",info:"Node Uptime.",en:{instance:{one:"broker",other:"brokers"}}},"vsphere.vm_cpu_usage_total":{aggregationMethod:"avg",info:"Cpu Usage Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_net_bandwidth_total":{info:"Network Bandwidth Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_net_packets_total":{info:"Network Packets Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_net_drops_total":{info:"Network Drops Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_disk_usage_total":{info:"Disk Usage Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_disk_max_latency":{aggregationMethod:"avg",info:"Disk Max Latency.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_overall_status":{info:"Overall Alert Status.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_system_uptime":{aggregationMethod:"min",info:"System Uptime.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.host_cpu_usage_total":{aggregationMethod:"avg",info:"Cpu Usage Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_bandwidth_total":{info:"Network Bandwidth Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_packets_total":{info:"Network Packets Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_drops_total":{info:"Network Drops Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_errors_total":{info:"Network Errors Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_disk_usage_total":{info:"Disk Usage Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_disk_max_latency":{aggregationMethod:"avg",info:"Disk Max Latency.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_overall_status":{info:"Overall Alert Status.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_system_uptime":{aggregationMethod:"min",info:"System Uptime.",en:{instance:{one:"host",other:"hosts"}}},"web_log.requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[12],layout:{x:0,y:0,w:3,h:5}}],info:"Total Requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.excluded_requests":{info:"Excluded Requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_responses":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Responses by Status Code Class",layout:{x:9,y:0,w:3,h:5}}],info:"Responses By Status Code Class.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_1xx_responses":{info:"Informational Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_2xx_responses":{info:"Successful Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_3xx_responses":{info:"Redirects Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_4xx_responses":{info:"Client Errors Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_5xx_responses":{info:"Server Errors Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.bandwidth":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.requests_processing_time_histogram":{info:"Requests Processing Time Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.upstream_response_time":{aggregationMethod:"avg",info:"Upstream Response Time.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.upstream_responses_time_histogram":{info:"Upstream Responses Time Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.current_poll_uniq_clients":{info:"Current Poll Unique Clients.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.vhost_requests":{info:"Requests By Vhost.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.port_requests":{info:"Requests By Port.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.scheme_requests":{info:"Requests By Scheme.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.http_method_requests":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Requests by HTTP Method",layout:{x:6,y:0,w:3,h:5}}],info:"Requests By HTTP Method.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.http_version_requests":{info:"Requests By HTTP Version.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ip_proto_requests":{info:"Requests By IP Protocol.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ssl_proto_requests":{info:"Requests By SSL Connection Protocol.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ssl_cipher_suite_requests":{info:"Requests By SSL Connection Cipher Suite.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_requests":{info:"URL Field Requests By Pattern.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_field_pattern_requests":{info:"Custom Field Requests By Pattern.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_time_field_summary":{info:"Custom Time Field Summary.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_time_field_histogram":{info:"Custom Time Field Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_status_code_responses":{info:"Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_http_method_requests":{info:"Requests By HTTP Method.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_bandwidth":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_request_processing_time":{aggregationMethod:"avg",info:"Request Processing Time.",en:{instance:{one:"web server",other:"web servers"}}},"whoisquery.time_until_expiration":{info:"Time Until Domain Expiration.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_utilization":{aggregationMethod:"avg",info:"Core CPU Utilization.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_interrupts":{info:"Received and Serviced Hardware Interrupts.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_dpcs":{info:"Received and Serviced Deferred Procedure Calls (DPC).",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_cstate":{aggregationMethod:"avg",info:"Core Time Spent in Low-Power Idle State.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.memory_page_faults":{info:"Memory Page Faults.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_utilization":{aggregationMethod:"avg",info:"Swap Utilization.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_operations":{info:"Swap Operations.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_pages":{info:"Swap Pages.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_cached":{info:"Cached.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_cache_faults":{info:"Cache Faults.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_system_pool":{info:"System Memory Pool.",en:{instance:{one:"system",other:"systems"}}},"windows.logical_disk_utilization":{aggregationMethod:"avg",info:"Space usage.",en:{instance:{one:"disk",other:"disks"}}},"windows.logical_disk_operations":{info:"Operations.",en:{instance:{one:"disk",other:"disks"}}},"windows.logical_disk_latency":{aggregationMethod:"avg",info:"Average Read/Write Latency.",en:{instance:{one:"disk",other:"disks"}}},"windows.net_nic_packets":{info:"Packets.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.net_nic_errors":{info:"Errors.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.net_nic_discarded":{info:"Discards.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.os_processes":{info:"Processes.",en:{instance:{one:"system",other:"systems"}}},"windows.os_users":{info:"Number of Users.",en:{instance:{one:"system",other:"systems"}}},"windows.os_visible_memory_usage":{info:"Visible Memory Usage.",en:{instance:{one:"system",other:"systems"}}},"windows.os_paging_files_usage":{info:"Paging Files Usage.",en:{instance:{one:"system",other:"systems"}}},"windows.system_threads":{info:"Threads.",en:{instance:{one:"system",other:"systems"}}},"windows.system_uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"system",other:"systems"}}},"windows.logon_type_sessions":{info:"Active User Logon Sessions By Type.",en:{instance:{one:"system",other:"systems"}}},"windows.thermalzone_temperature":{aggregationMethod:"avg",info:"Thermal zone temperature.",en:{instance:{one:"zone",other:"zones"}}},"windows.processes_page_file_bytes":{info:"Bytes used in page file(s).",en:{instance:{one:"system",other:"systems"}}},"windows.service_state":{info:"Service state.",en:{instance:{one:"service",other:"services"}}},"windows.service_status":{info:"Service status.",en:{instance:{one:"service",other:"services"}}},"iis.website_users_count":{info:"Website users with pending requests.",en:{instance:{one:"website",other:"websites"}}},"iis.website_connection_attempts_rate":{info:"Website connections attempts.",en:{instance:{one:"website",other:"websites"}}},"iis.website_isapi_extension_requests_rate":{info:"Website extensions request.",en:{instance:{one:"website",other:"websites"}}},"iis.website_ftp_file_transfer_rate":{info:"Website FTP file transfer rate.",en:{instance:{one:"website",other:"websites"}}},"iis.website_logon_attempts_rate":{info:"Website logon attempts.",en:{instance:{one:"website",other:"websites"}}},"mssql.instance_bufman_iops":{info:"Number of pages input and output.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_blocked_processes":{info:"Blocked processes.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_locks_lock_wait":{info:"Lock requests that required the caller to wait.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_locks_deadlocks":{info:"Lock requests that resulted in deadlock.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_connection_memory_bytes":{info:"Amount of dynamic memory to maintain connections.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_pending_memory_grants":{info:"Process waiting for memory grant.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_server_memory":{info:"Memory committed.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_sqlstats_sql_recompilations":{info:"SQL re-compilations.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.database_active_transactions":{info:"Active transactions per database.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_backup_restore_operations":{info:"Backup IO per database.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_log_flushed":{info:"Log flushed.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_log_flushes":{info:"Log flushes.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_write_transactions":{info:"Write transactions.",en:{instance:{one:"database",other:"databases"}}},"ad.database_operations":{info:"AD database operations.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.directory_operations":{info:"AD directory operations.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.name_cache_lookups":{info:"Name cache lookups.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.name_cache_hits":{info:"Name cache hits.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.atq_average_request_latency":{aggregationMethod:"avg",info:"Average request processing time.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.atq_outstanding_requests":{info:"Outstanding requests.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.dra_replication_sync_objects_remaining":{info:"DRA replication full sync objects remaining.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.dra_replication_properties_filtered":{info:"DRA replication properties filtered.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.ds_threads":{info:"Directory Service threads.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.ldap_last_bind_time":{aggregationMethod:"min",info:"LDAP last successful bind time.",en:{instance:{one:"ad instance",other:"ad instances"}}},"adcs.cert_template_requests":{info:"Certificate requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_failed_requests":{info:"Certificate failed requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_issued_requests":{info:"Certificate issued requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_pending_requests":{info:"Certificate pending requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_processing_time":{aggregationMethod:"avg",info:"Certificate last request processing time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_retrievals":{info:"Total of certificate retrievals.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_retrieval_processing_time":{aggregationMethod:"avg",info:"Certificate last retrieval processing time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_cryptographic_signing_time":{aggregationMethod:"avg",info:"Certificate last signing operation request time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_policy_module_processing":{info:"Certificate last policy module processing request time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_challenge_responses":{info:"Certificate challenge responses.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_challenge_response_processing_time":{aggregationMethod:"avg",info:"Certificate last challenge response time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_signed_certificate_timestamp_lists":{info:"Certificate Signed Certificate Timestamp Lists processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_signed_certificate_timestamp_list_processing_time":{aggregationMethod:"avg",info:"Certificate last Signed Certificate Timestamp List process time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adfs.ad_login_connection_failures":{info:"Connection failures.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.certificate_authentications":{info:"User Certificate authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_artifact_failures":{info:"Connection failures to the artifact database.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_artifact_query_time_seconds":{aggregationMethod:"avg",info:"Time taken for an artifact database query.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_config_failures":{info:"Connection failures to the configuration database.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_config_query_time_seconds":{aggregationMethod:"avg",info:"Time taken for a configuration database query.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.device_authentications":{info:"Device authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.external_authentications":{info:"Authentications from external MFA providers.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.federated_authentications":{info:"Authentications from Federated Sources.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.federation_metadata_requests":{info:"Federation Metadata requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_authorization_requests":{info:"Incoming requests to the OAuth Authorization endpoint.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_authentications":{info:"OAuth client authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_credentials_requests":{info:"OAuth client credentials requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_privkey_jwt_authentications":{info:"OAuth client private key JWT authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_secret_basic_authentications":{info:"OAuth client secret basic authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_secret_post_authentications":{info:"OAuth client secret post authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_windows_authentications":{info:"OAuth client windows integrated authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_logon_certificate_requests":{info:"OAuth logon certificate requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_password_grant_requests":{info:"OAuth password grant requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_token_requests_success":{info:"Successful RP token requests over OAuth protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.passive_requests":{info:"Passive requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.passport_authentications":{info:"Microsoft Passport SSO authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.password_change_requests":{info:"Password change requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.samlp_token_requests_success":{info:"Successful RP token requests over SAML-P protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.sso_authentications":{info:"SSO authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.token_requests":{info:"Token access requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.userpassword_authentications":{info:"AD U/P authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.windows_integrated_authentications":{info:"Windows integrated authentications using Kerberos or NTLM.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.wsfed_token_requests_success":{info:"Successful RP token requests over WS-Fed protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.wstrust_token_requests_success":{info:"Successful RP token requests over WS-Trust protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"netframework.clrexception_throw_to_catch_depth":{info:"Traversed stack frames.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrinterop_interop_marshallings":{info:"Arguments and return values marshallings.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrjit_il_bytes":{info:"Compiled Microsoft intermediate language (MSIL) bytes.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_appdomains_loaded":{info:"Loaded application domains.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_appdomains_unloaded":{info:"Unloaded application domains.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_classes_loaded":{info:"Loaded classes in all assemblies.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_class_load_failures":{info:"Class load failures.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_queue_length":{info:"Threads waited to acquire a managed lock.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_current_logical_threads":{info:"Logical threads.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_current_physical_threads":{info:"Physical threads.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_contentions":{info:"Fails to acquire a managed lock.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_allocated_bytes":{info:"Memory allocated on the garbage collection heap.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_finalization_survivors":{info:"Objects that survived garbage-collection.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_collections":{info:"Garbage collections.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_number_pinned_objects":{info:"Pinned objects encountered.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_channels":{info:"Registered channels.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_bound_classes_loaded":{info:"Loaded context-bound classes.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_bound_objects":{info:"Allocated context-bound objects.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_proxies":{info:"Remoting proxy objects.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_contexts":{info:"Total of remoting contexts.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_remote_calls":{info:"Remote Procedure Calls (RPC) invoked.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_link_time_checks":{info:"Link-time code access security checks.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_checks_time":{aggregationMethod:"avg",info:"Time spent performing runtime code access security checks.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_stack_walk_depth":{info:"Depth of the stack.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_runtime_checks":{info:"Runtime code access security checks performed.",en:{instance:{one:".net process",other:".net processes"}}},"exchange.activesync_ping_cmds_pending":{info:"Ping commands pending in queue.",en:{instance:{one:"host",other:"hosts"}}},"exchange.activesync_requests":{info:"HTTP requests received from ASP.NET.",en:{instance:{one:"host",other:"hosts"}}},"exchange.activesync_sync_cmds":{info:"Sync commands processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.autodiscover_requests":{info:"Autodiscover service requests processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.avail_service_requests":{info:"Requests serviced.",en:{instance:{one:"host",other:"hosts"}}},"exchange.owa_current_unique_users":{mainheads:[{chartLibrary:"easypiechart",title:"OWA Unique Users",colors:s.default[12],layout:{x:0,y:0,w:2,h:5}}],info:"Unique users currently logged on to Outlook Web App.",en:{instance:{one:"host",other:"hosts"}}},"exchange.owa_requests_total":{mainheads:[{chartLibrary:"easypiechart",title:"OWA Total Requests",layout:{x:3,y:0,w:2,h:5}}],info:"Requests handled by Outlook Web App.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_active_user_count":{info:"Active unique users in the last 2 minutes.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_avg_latency":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Latency",colors:s.default[1],layout:{x:12,y:0,w:2,h:5}}],info:"Average latency.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_connection_count":{mainheads:[{chartLibrary:"easypiechart",title:"Total Client Connections",colors:s.default[2],layout:{x:15,y:0,w:2,h:5}}],info:"Client connections.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_operations":{info:"RPC operations.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_requests":{info:"Clients requests currently being processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_user_count":{info:"RPC users.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_active_mail_box_delivery":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Active Mailbox Delivery Queue",layout:{x:9,y:0,w:4,h:5}}],info:"Active Mailbox Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_external_active_remote_delivery":{info:"External Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_external_largest_delivery":{info:"External Largest Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_internal_active_remote_delivery":{info:"Internal Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_internal_largest_delivery":{info:"Internal Largest Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_retry_mailbox_delivery":{info:"Internal Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_poison":{info:"Poison Queue Length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.workload_active_tasks":{info:"Workload active tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_completed_tasks":{info:"Workload completed tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_queued_tasks":{info:"Workload queued tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_yielded_tasks":{info:"Workload yielded tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_activity_status":{info:"Workload activity status.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.ldap_long_running_ops_per_sec":{info:"Long Running LDAP operations.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_read_time":{aggregationMethod:"avg",info:"Time to send an LDAP read request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_search_time":{aggregationMethod:"avg",info:"Time to send an LDAP search request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_write_time":{aggregationMethod:"avg",info:"Time to send an LDAP search request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_timeout_errors":{info:"LDAP timeout errors.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.http_proxy_avg_auth_latency":{aggregationMethod:"avg",info:"Average time spent authenticating CAS.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_avg_cas_processing_latency_sec":{aggregationMethod:"avg",info:"Average time spent authenticating CAS.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_mailbox_proxy_failure_rate":{aggregationMethod:"avg",info:"Percentage of failures between this CAS and MBX servers.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_mailbox_server_locator_avg_latency_sec":{aggregationMethod:"avg",info:"Average latency of MailboxServerLocator web service calls.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_outstanding_proxy_requests":{info:"Concurrent outstanding proxy requests.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_requests":{info:"Number of proxy requests processed each second.",en:{instance:{one:"proxy",other:"proxies"}}},"wireguard.device_network_io":{info:"Device traffic.",en:{instance:{one:"device",other:"devices"}}},"wireguard.device_peers":{info:"Device peers.",en:{instance:{one:"device",other:"devices"}}},"wireguard.peer_network_io":{info:"Peer traffic.",en:{instance:{one:"peer",other:"peers"}}},"wireguard.peer_latest_handshake_ago":{info:"Peer time elapsed since the latest handshake.",en:{instance:{one:"peer",other:"peers"}}},"x509check.time_until_expiration":{info:"Time Until Certificate Expiration.",en:{instance:{one:"certificate",other:"certificates"}}},"x509check.revocation_status":{info:"Revocation Status.",en:{instance:{one:"certificate",other:"certificates"}}},"xenstat.mem":{info:"Memory Usage.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.domains":{info:"Number of Domains.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.cpus":{info:"Number of CPUs.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.cpu_freq":{info:"CPU Frequency.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xendomain.states":{info:"Domain States.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.cpu":{aggregationMethod:"avg",info:"CPU Usage (100% = 1 core).",en:{instance:{one:"domain",other:"domains"}}},"xendomain.mem":{info:"Memory Reservation.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.vcpu":{aggregationMethod:"avg",info:"CPU Usage per VCPU.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.oo_req_vbd":{info:"VBD{%u} Out Of Requests.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.requests_vbd":{info:"VBD{%u} Requests.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.sectors_vbd":{info:"VBD{%u} Read/Written Sectors.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.bytes_network":{info:"Network{%u} Received/Sent Bytes.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.packets_network":{info:"Network{%u} Received/Sent Packets.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.errors_network":{info:"Network{%u} Receive/Transmit Errors.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.drops_network":{info:"Network{%u} Receive/Transmit Drops.",en:{instance:{one:"domain",other:"domains"}}},"zookeeper.requests":{info:"Outstanding Requests.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.requests_latency":{aggregationMethod:"avg",info:"Requests Latency.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.connections":{info:"Alive Connections.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.packets":{info:"Packets.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.file_descriptor":{info:"Open File Descriptors.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.nodes":{info:"Number of Nodes.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.watches":{info:"Number of Watches.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.approximate_data_size":{info:"Approximate Data Tree Size.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zscores.z":{info:"Z Score.",en:{instance:{one:"chart",other:"charts"}}},"zscores.3stddev":{info:"Z Score >3.",en:{instance:{one:"chart",other:"charts"}}}}},71929:function(e,t,n){var s=n(87462),r=n(45987),a=(n(23157),n(67294)),o=n(15557),i=n(45335),c=["children","onClick"];t.Z=function(e){var t=e.children,n=e.onClick,l=(0,r.Z)(e,c),d=(0,i.sm)(),h=(0,a.useCallback)((function(e){var t=e.target.hash,s=void 0===t?"":t;s.startsWith("#menu")&&(e.preventDefault(),d.goToLink(s.substr(1))),n&&n(e)}),[d]);return"string"===typeof t?a.createElement(o.TextSmall,(0,s.Z)({color:"sectionDescription",dangerouslySetInnerHTML:{__html:t},onClick:h},l)):t||null}},89692:function(e,t,n){n.d(t,{G_:function(){return X},ZP:function(){return ce},lV:function(){return oe},FO:function(){return te},oS:function(){return ne},iK:function(){return $},JK:function(){return re},bF:function(){return se}});var s=n(4942),r=n(21433),a=(n(74916),n(15306),n(41539),n(39714),n(47042),n(92222),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(39612)),o=n(7592),i=n(1673),c=n(40351),l=n(51257),d=n(53045),h=n(60989),u=n(49356),m=n(44814),p=n(17726),f=n(47810),g=n(9221),b=n(96914),y=n(67992),v=n(57026),_=n(7452),w=n(62160),k=n(8792),T=n(59986),x=n(85241),S=n(81511),C=n(491),P=n(53728),M=n(20446),q=n(32660),I=n(27879),E=n(52571),D=n(34327),L=n(42137),N=n(80955),O=n(2866),R=n(12296),A=n(35117),F=n(42775),U=n(77007),B=n(79186),Z=n(46357),j=n(13914),z=n(91435),V=n(3163),H=n(73793),Q=n(91871),G=n(66062),W={system:{title:"System Overview",icon:n(12690).xV,info:"Overview of the key system metrics."},services:{title:"systemd Services",icon:f.Kb,info:"Resources utilization of <b>systemd services</b>. Netdata monitors all systemd services via <a href='https://en.wikipedia.org/wiki/Cgroups' target='_blank'>cgroups</a> (the resources accounting used by containers). <br /><b>Tip:</b> <br />&#x2022 Default view of cgroup charts show <b>aggregate</b> information from all your VMs and containers <br />&#x2022 For instance level view of cgroups change the Group by to <b>instance</b> <br /><a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'><b>&#x2022; Checkout our docs for more details</b></a>"},ap:{title:"Access Points",icon:Q.$A,info:"Performance metrics for the access points (i.e. wireless interfaces in AP mode) found on the system."},tc:{title:"Quality of Service",icon:G.g4,info:'Netdata collects and visualizes <b>tc</b> class utilization using its <a href="https://github.com/netdata/netdata/blob/master/collectors/tc.plugin/tc-qos-helper.sh.in" target="_blank">tc-helper plugin</a>. If you also use <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a> for setting up QoS, netdata automatically collects interface and class names. If your QoS configuration includes overheads calculation, the values shown here will include these overheads (the total bandwidth for the same interface as reported in the Network Interfaces section, will be lower than the total bandwidth reported here). QoS data collection may have a slight time difference compared to the interface (QoS data collection uses a BASH script, so a shift in data collection of a few milliseconds should be justified).'},net:{title:"Network Interfaces",icon:F.Hw,info:'<p>Performance <a href="https://www.kernel.org/doc/html/latest/networking/statistics.html" target="_blank">metrics for network interfaces</a>.</p><p>Netdata retrieves this data reading the <b>/proc/net/dev</b> file and <b>/sys/class/net/</b> directory.</p>'},Infiniband:{title:"Infiniband ports",icon:F.Hw,info:'<p>Performance and exception statistics for <a href="https://en.wikipedia.org/wiki/InfiniBand" target="_blank">Infiniband</a> ports. The individual port and hardware counter descriptions can be found in the <a href="https://community.mellanox.com/s/article/understanding-mlx5-linux-counters-and-status-parameters" target="_blank">Mellanox knowledge base</a>.'},wireless:{title:"Wireless Interfaces",icon:Q.$A,info:"Performance metrics for wireless interfaces."},ip:{title:"Networking Stack",icon:H.uM,info:function(e){return"linux"===e.os?"Metrics for the networking stack of the system. These metrics are collected from <b>/proc/net/netstat</b> or attaching <b>kprobes</b> to kernel functions, apply to both IPv4 and IPv6 traffic and are related to operation of the kernel networking stack.":"Metrics for the networking stack of the system."}},ipv4:{title:"IPv4 Networking",icon:H.uM,info:'Metrics for the IPv4 stack of the system. <a href="https://en.wikipedia.org/wiki/IPv4" target="_blank">Internet Protocol version 4 (IPv4)</a> is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet. IPv4 is a connectionless protocol for use on packet-switched networks. It operates on a best effort delivery model, in that it does not guarantee delivery, nor does it assure proper sequencing or avoidance of duplicate delivery. These aspects, including data integrity, are addressed by an upper layer transport protocol, such as the Transmission Control Protocol (TCP).'},ipv6:{title:"IPv6 Networking",icon:H.uM,info:'Metrics for the IPv6 stack of the system. <a href="https://en.wikipedia.org/wiki/IPv6" target="_blank">Internet Protocol version 6 (IPv6)</a> is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion. IPv6 is intended to replace IPv4.'},sctp:{title:"SCTP Networking",icon:H.uM,info:'<p><a href="https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol" target="_blank">Stream Control Transmission Protocol (SCTP)</a> is a computer network protocol which operates at the transport layer and serves a role similar to the popular protocols TCP and UDP. SCTP provides some of the features of both UDP and TCP: it is message-oriented like UDP and ensures reliable, in-sequence transport of messages with congestion control like TCP. It differs from those protocols by providing multi-homing and redundant paths to increase resilience and reliability.</p><p>Netdata collects SCTP metrics reading the <b>/proc/net/sctp/snmp</b> file.</p>'},ipvs:{title:"IP Virtual Server",icon:"serviceIPVS",info:'<p><a href="http://www.linuxvirtualserver.org/software/ipvs.html" target="_blank">IPVS (IP Virtual Server)</a> implements transport-layer load balancing inside the Linux kernel, so called Layer-4 switching. IPVS running on a host acts as a load balancer at the front of a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.</p><p>Netdata collects summary statistics, reading <b>/proc/net/ip_vs_stats</b>. To display the statistics information of services and their servers, run <b>ipvsadm -Ln --stats</b> or <b>ipvsadm -Ln --rate</b> for the rate statistics. For details, see <a href="https://linux.die.net/man/8/ipvsadm" target="_blank">ipvsadm(8)</a>.</p>'},netfilter:{title:"Firewall (netfilter)",icon:V.U7,info:"Performance metrics of the netfilter components."},ipfw:{title:"Firewall (ipfw)",icon:V.U7,info:"Counters and memory usage for the ipfw rules."},cpu:{title:"CPUs",icon:z.BD,info:'Detailed information for each CPU of the system. A summary of the system for all CPUs can be found at the <a href="#menu_system">System Overview</a> section.'},mem:{title:"Memory",icon:E.zv,info:"Detailed information about the memory management of the system."},disk:{title:"Disks",icon:l.vc,info:"Charts with performance information for all the system disks. Special care has been given to present disk performance metrics in a way compatible with <b>iostat -x</b>. netdata by default prevents rendering performance charts for individual partitions and unmounted virtual disks. Disabled charts can still be enabled by configuring the relative settings in the netdata configuration file."},mount:{title:"Mount Points",icon:l.vc,info:""},mdstat:{title:"MD arrays",icon:l.vc,info:'<p>RAID devices are virtual devices created from two or more real block devices. <a href="https://man7.org/linux/man-pages/man4/md.4.html" target="_blank">Linux Software RAID</a> devices are implemented through the md (Multiple Devices) device driver.</p><p>Netdata monitors the current status of MD arrays reading <a href="https://raid.wiki.kernel.org/index.php/Mdstat" target="_blank">/proc/mdstat</a> and <b>/sys/block/%s/md/mismatch_cnt</b> files.</p>'},sensors:{title:"Sensors",icon:j.XE,info:"Readings of the configured system sensors."},ipmi:{title:"IPMI",icon:j.XE,info:"The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system's CPU, firmware (BIOS or UEFI) and operating system."},amdgpu:{title:"AMD GPUs",icon:E.zv,info:"Performance and usage metrics for each AMD GPU in the system."},samba:{title:"Samba",icon:k.cC,info:"Performance metrics of the Samba file share operations of this system. Samba is a implementation of Windows services, including Windows SMB protocol file shares."},nfsd:{title:"NFS Server",icon:k.cC,info:'Performance metrics of the Network File Server. <a href="https://en.wikipedia.org/wiki/Network_File_System" target="_blank">NFS</a> is a distributed file system protocol, allowing a user on a client computer to access files over a network, much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system.'},nfs:{title:"NFS Client",icon:k.cC,info:'Performance metrics of the <a href="https://en.wikipedia.org/wiki/Network_File_System" target="_blank">NFS</a> operations of this system, acting as an NFS client.'},zfs:{title:"ZFS Cache",icon:k.cC,info:'Performance metrics of the <a href="https://en.wikipedia.org/wiki/ZFS#Caching_mechanisms" target="_blank">ZFS ARC and L2ARC</a>. The following charts visualize all metrics reported by <a href="https://github.com/openzfs/zfs/blob/master/cmd/arcstat/arcstat.in" target="_blank">arcstat.py</a> and <a href="https://github.com/openzfs/zfs/blob/master/cmd/arc_summary/arc_summary3" target="_blank">arc_summary.py</a>.'},zfspool:{title:"ZFS pools",icon:"serviceDatabase",info:"State of ZFS pools."},btrfs:{title:"BTRFS filesystem",icon:k.cC,info:"Disk space metrics for the BTRFS filesystem."},apps:{title:"Applications",icon:"applicationsSolid",info:'Per application statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics for <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin#configuration" target="_blank">application groups</a>. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},groups:{title:"User Groups",icon:I.IL,info:'Per user group statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user group. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},users:{title:"Users",icon:Z.FV,info:'Per user statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},netdata:{title:"Netdata Monitoring",icon:B.ko,info:"Performance metrics for the operation of netdata itself and its plugins."},aclk_test:{title:"ACLK Test Generator",info:"For internal use to perform integration testing."},example:{title:"Example Charts",info:"Example charts, demonstrating the external plugin architecture."},cgroup:{title:"",icon:"serviceContainer",info:"Netdata collects Container and VM resource utilization metrics from <a href='https://man7.org/linux/man-pages/man7/cgroups.7.html' style='color: green' target='_blank'><b>cgroups</b></a>, a Linux kernel feature that enables the organization, management, and isolation of system resources among groups of processes. The charts show the aggregated view across all instances by default, to visualize the metrics per container or VM instance, <a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'>change the Group by to <b>instance</b></a>"},cgqemu:{title:"",icon:q.To,info:"QEMU virtual machine resource utilization metrics. QEMU (short for Quick Emulator) is a free and open-source hosted hypervisor that performs hardware virtualization."},docker:{title:"Docker",icon:"serviceDockerHubPress",info:"Docker container and image metrics. Charts show aggregated view across all containers by default, to visualize the metrics per container, <a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'>change the Group by to <b>instance</b></a>"},dockerhub:{icon:"serviceDockerHubPress"},fping:{title:"fping",icon:U.Ss,info:"Network latency statistics, via <b>fping</b>. <b>fping</b> is a program to send ICMP echo probes to network hosts, similar to <b>ping</b>, but much better performing when pinging multiple hosts. fping versions after 3.15 can be directly used as netdata plugins."},gearman:{title:"Gearman",icon:g.A8,info:"Gearman is a job server that allows you to do work in parallel, to load balance processing, and to call functions between languages."},ioping:{title:"ioping",icon:U.Ss,info:"Disk latency statistics, via <b>ioping</b>. <b>ioping</b> is a program to read/write data probes from/to a disk."},httpcheck:{title:"Http Check",icon:"serviceHTTPCheck",info:"Web Service availability and latency monitoring using HTTP checks. This plugin is a specialized version of the port check plugin."},cassandra:{title:"Cassandra",icon:"serviceDatabase",info:"Performance metrics for <b>Cassandra</b>, the open source distributed NoSQL database management system.<br>For more information: <br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/cassandra' style='color: green' target='_blank'><b>&#x2022; Netdata Cassandra collector docs</b></a><br><a href='https://www.netdata.cloud/blog/cassandra-monitoring-part1' style='color: green' target='_blank'><b>&#x2022; Cassandra monitoring guide - Part 1</b></a> and <a href='https://www.netdata.cloud/blog/cassandra-monitoring-part2' style='color: green' target='_blank'><b> Part 2</b></a>"},memcached:{title:"memcached",icon:"serviceMemCached",info:"Performance metrics for <b>memcached</b>. Memcached is a general-purpose distributed memory caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read."},monit:{title:"monit",icon:"serviceDatabase",info:"Statuses of checks in <b>monit</b>. Monit is a utility for managing and monitoring processes, programs, files, directories and filesystems on a Unix system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations."},mysql:{title:"MySQL",icon:"serviceMySQLPress",info:"Performance metrics for <b>mysql</b>, the open-source relational database management system (RDBMS)."},nvme:{title:"NVMe",icon:l.vc,info:"NVMe devices SMART and health metrics. Additional information on metrics can be found in the <a href='https://nvmexpress.org/developers/nvme-specification/' target='_blank'>NVM Express Base Specification</a>."},ping:{title:"Ping",icon:F.Hw,info:"Measures round-trip time and packet loss by sending ping messages to network hosts."},postgres:{title:"PostgreSQL",icon:"servicePostgreSQL",info:"Performance metrics for <b>PostgreSQL</b>, the open source object-relational database management system (ORDBMS).<br>For more information:<br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/postgres' style='color: green' target='_blank'><b>&#x2022; Netdata PostgreSQL collector docs</b></a><br><a href='https://www.netdata.cloud/blog/postgresql-monitoring' style='color: green' target='_blank'><b>&#x2022; How to monitor PostgreSQL with Netdata</b></a>"},redis:{title:"Redis",icon:"serviceRedis",info:"Performance metrics for <b>Redis</b>, an in-memory data structure store, used as a distributed, in-memory key\u2013value database, cache and message broker, with optional durability.<br>For more information: <br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/redis' style='color: green' target='_blank'><b>&#x2022; Netdata Redis collector docs</b></a><br><a href='https://www.netdata.cloud/blog/redis-monitoring' style='color: green' target='_blank'><b>&#x2022; How to monitor Redis with Netdata</b></a>"},rethinkdbs:{title:"RethinkDB",icon:"serviceRethinkDB",info:"Performance metrics for <b>rethinkdb</b>. RethinkDB is the first open-source scalable database built for realtime applications"},retroshare:{title:"RetroShare",icon:"serviceRetroShare",info:"Performance metrics for <b>RetroShare</b>. RetroShare is open source software for encrypted filesharing, serverless email, instant messaging, online chat, and BBS, based on a friend-to-friend network built on GNU Privacy Guard (GPG)."},riakkv:{title:"Riak KV",icon:"serviceDatabase",info:"Metrics for <b>Riak KV</b>, the distributed key-value store."},ipfs:{title:"IPFS",icon:"serviceIPFS",info:"Performance metrics for the InterPlanetary File System (IPFS), a content-addressable, peer-to-peer hypermedia distribution protocol."},phpfpm:{title:"PHP-FPM",icon:"servicePhpFpm",info:"Performance metrics for <b>PHP-FPM</b>, an alternative FastCGI implementation for PHP."},pihole:{title:"Pi-hole",icon:A.gP,info:'Metrics for <a href="https://pi-hole.net/" target="_blank">Pi-hole</a>, a black hole for Internet advertisements. The metrics returned by Pi-Hole API is all from the last 24 hours.'},portcheck:{title:"Port Check",icon:R.s2,info:"Service availability and latency monitoring using port checks."},postfix:{title:"postfix",icon:S.FU},dovecot:{title:"Dovecot",icon:S.FU},hddtemp:{title:"HDD Temp",icon:w.wh},nginx:{title:"NGINX",icon:"serviceNginx"},nginxplus:{title:"NGINX Plus",icon:"serviceNginx"},apache:{title:"Apache",icon:"serviceApache"},lighttpd:{title:"Lighttpd",icon:"serviceLighthttpd"},web_log:{title:"Web Server Logs",icon:"serviceWebLog",info:"Key web server performance metrics extracted in real-time from web server log files. For web servers, an extended log file format may optionally be used offering timing information and bandwidth for both requests and responses."},squid:{title:"squid",icon:"serviceSquid"},nut:{title:"UPS",icon:c.St},apcupsd:{title:"UPS",icon:c.St},snmp:{title:"SNMP",icon:O.V$},go_expvar:{title:"Go - expvars",icon:M.Md,info:'Statistics about running Go applications exposed by the <a href="https://golang.org/pkg/expvar/" target="_blank">expvar package</a>.'},consul:{title:"Consul",icon:N.IJ,info:'Consul performance and health metrics. For details, see <a href="https://developer.hashicorp.com/consul/docs/agent/telemetry#key-metrics" target="_blank">Key Metrics</a>.'},chrony:{title:"Chrony",icon:L.SZ,info:"The system\u2019s clock performance and peers activity status."},couchdb:{icon:"serviceCouchDB",info:'Performance metrics for <b><a href="https://couchdb.apache.org/" target="_blank">CouchDB</a></b>, the open-source, JSON document-based database with an HTTP API and multi-master replication.'},beanstalk:{title:"Beanstalkd",icon:"serviceBeanstalk",info:'Provides statistics on the <b><a href="http://kr.github.io/beanstalkd/" target="_blank">beanstalkd</a></b> server and any tubes available on that server using data pulled from beanstalkc'},rabbitmq:{title:"RabbitMQ",icon:"serviceRabbitMQ",info:'Performance data for the <b><a href="https://www.rabbitmq.com/" target="_blank">RabbitMQ</a></b> open-source message broker.'},ceph:{title:"Ceph",icon:"serviceDatabase",info:'Provides statistics on the <b><a href="http://ceph.com/" target="_blank">ceph</a></b> cluster server, the open-source distributed storage system.'},ntpd:{title:"NTPd",icon:"serviceNtpdPress",info:'Provides statistics for the internal variables of the Network Time Protocol daemon <b><a href="http://www.ntp.org/" target="_blank">ntpd</a></b> and optional including the configured peers (if enabled in the module configuration). The module presents the performance metrics as shown by <b><a href="http://doc.ntp.org/current-stable/ntpq.html">ntpq</a></b> (the standard NTP query program) using NTP mode 6 UDP packets to communicate with the NTP server.'},spigotmc:{title:"Spigot MC",icon:M.Md,info:'Provides basic performance statistics for the <b><a href="https://www.spigotmc.org/" target="_blank">Spigot Minecraft</a></b> server.'},unbound:{title:"Unbound",icon:D.LE},boinc:{title:"BOINC",icon:E.zv,info:'Provides task counts for <b><a href="http://boinc.berkeley.edu/" target="_blank">BOINC</a></b> distributed computing clients.'},w1sensor:{title:"1-Wire Sensors",icon:w.wh,info:'Data derived from <a href="https://en.wikipedia.org/wiki/1-Wire" target="_blank">1-Wire</a> sensors. Currently temperature sensors are automatically detected.'},logind:{title:"Logind",icon:I.IL,info:'Keeps track of user logins and sessions by querying the <a href="https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html" target="_blank">systemd-logind API</a>.'},powersupply:{title:"Power Supply",icon:c.St,info:'Statistics for the various system power supplies. Data collected from <a href="https://www.kernel.org/doc/Documentation/power/power_supply_class.txt" target="_blank">Linux power supply class</a>.'},xenstat:{title:"Xen Node",icon:T.xf,info:"General statistics for the Xen node. Data collected using <b>xenstat</b> library</a>."},xendomain:{title:"",icon:q.To,info:"Xen domain resource utilization metrics. Netdata reads this information using <b>xenstat</b> library which gives access to the resource usage information (CPU, memory, disk I/O, network) for a virtual machine."},windows:{title:"Windows",icon:i.ts},iis:{title:"IIS",icon:M.Md},mssql:{title:"SQL Server",icon:P.t5},ad:{title:"Active Directory",icon:i.ts},adcs:{title:"AD Certification Service",icon:i.ts},adfs:{title:"AD Federation Service",icon:i.ts},netframework:{title:".NET Framework",icon:C.py},exchange:{title:"Exchange",icon:S.FU},perf:{title:"Perf Counters",icon:x.HL,info:"Performance Monitoring Counters (PMC). Data collected using <b>perf_event_open()</b> system call which utilises Hardware Performance Monitoring Units (PMU)."},vsphere:{title:"vSphere",icon:T.xf,info:'Performance statistics for ESXI hosts and virtual machines. Data collected from <a href="https://www.vmware.com/products/vcenter-server.html" target="_blank">VMware vCenter Server</a> using <b><a href="https://github.com/vmware/govmomi"> govmomi</a></b> library.'},vcsa:{title:"VCSA",icon:T.xf,info:'vCenter Server Appliance health statistics. Data collected from <a href="https://vmware.github.io/vsphere-automation-sdk-rest/vsphere/index.html#SVC_com.vmware.appliance.health" target="_blank">Health API</a>.'},zookeeper:{title:"Zookeeper",icon:"serviceDatabase",info:'Provides health statistics for <b><a href="https://zookeeper.apache.org/" target="_blank">Zookeeper</a></b> server. Data collected through the command port using <b><a href="https://zookeeper.apache.org/doc/r3.5.5/zookeeperAdmin.html#sc_zkCommands">mntr</a></b> command.'},hdfs:{title:"HDFS",icon:k.cC,info:'Provides <b><a href="https://hadoop.apache.org/docs/r3.2.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html" target="_blank">Hadoop Distributed File System</a></b> performance statistics. Module collects metrics over <b>Java Management Extensions</b> through the web interface of an <b>HDFS</b> daemon.'},am2320:{title:"AM2320 Sensor",icon:w.wh,info:"Readings from the external AM2320 Sensor."},scaleio:{title:"ScaleIO",icon:"serviceDatabase",info:"Performance and health statistics for various ScaleIO components. Data collected via VxFlex OS Gateway REST API."},squidlog:{title:"Squid log",icon:_.cw},cockroachdb:{title:"CockroachDB",icon:"serviceDatabase",info:"Performance and health statistics for various <b>CockroachDB</b> components."},ebpf:{title:"eBPF",icon:"serviceEBPF",info:"Monitor system calls, internal functions, bytes read, bytes written and errors using <b>eBPF</b>."},filesystem:{title:"Filesystem",icon:l.vc,info:'Number of filesystem events for <a href="#menu_filesystem_submenu_vfs">Virtual File System</a>, <a href="#menu_filesystem_submenu_file_access">File Access</a>, <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Directory cache</a>, and file system latency (<a href="#menu_filesystem_submenu_btrfs_latency">BTRFS</a>, <a href="#menu_filesystem_submenu_ext4_latency">EXT4</a>, <a href="#menu_filesystem_submenu_nfs_latency">NFS</a>, <a href="#menu_filesystem_submenu_xfs_latency">XFS</a>, and <a href="#menu_filesystem_submenu_xfs_latency">ZFS</a>) when your disk has the file system. Filesystem charts have relationship with <a href="#menu_system_submenu_swap">SWAP</a>, <a href="#menu_disk">Disk</a>, <a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, and <a href="#menu_mount">Mount Points</a>.'},vernemq:{title:"VerneMQ",icon:v.lX,info:'Performance data for the <b><a href="https://vernemq.com/" target="_blank">VerneMQ</a></b> open-source MQTT broker.'},pulsar:{title:"Pulsar",icon:v.lX,info:'Summary, namespaces and topics performance data for the <b><a href="http://pulsar.apache.org/" target="_blank">Apache Pulsar</a></b> pub-sub messaging system.'},anomalies:{title:"Anomalies",icon:p.jZ,info:'Anomaly scores relating to key system metrics. A high anomaly probability indicates strange behaviour and may trigger an anomaly prediction from the trained models. Read the <a href="https://github.com/netdata/netdata/tree/master/collectors/python.d.plugin/anomalies" target="_blank">anomalies collector docs</a> for more details.'},alerts:{title:"Alerts",icon:y.qm,info:'Charts showing alert status over time. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alerts/README.md" target="_blank">here</a>.'},statsd:{title:"StatsD",icon:b.St,info:'StatsD is an industry-standard technology stack for monitoring applications and instrumenting any piece of software to deliver custom metrics. Netdata allows the user to organize the metrics in different charts and visualize any application metric easily. Read more on <a href="https://learn.netdata.cloud/docs/agent/collectors/statsd.plugin" target="_blank">Netdata Learn</a>.'},supervisord:{title:"Supervisord",icon:g.A8,info:'Detailed statistics for each group of processes controlled by <b><a href="http://supervisord.org/" target="_blank">Supervisor</a></b>. Netdata collects these metrics using <a href="http://supervisord.org/api.html#supervisor.rpcinterface.SupervisorNamespaceRPCInterface.getAllProcessInfo" target="_blank"><b>getAllProcessInfo</b></a> method.'},systemdunits:{title:"systemd units",icon:f.Kb,info:'<b>systemd</b> provides a dependency system between various entities called "units" of 11 different types. Units encapsulate various objects that are relevant for system boot-up and maintenance. Units may be <b>active</b> (meaning started, bound, plugged in, depending on the unit type), or <b>inactive</b> (meaning stopped, unbound, unplugged), as well as in the process of being activated or deactivated, i.e. between the two states (these states are called <b>activating</b>, <b>deactivating</b>). A special <b>failed</b> state is available as well, which is very similar to <b>inactive</b> and is entered when the service failed in some way (process returned error code on exit, or crashed, an operation timed out, or after too many restarts). For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.html" target="_blank"> systemd(1)</a>.'},changefinder:{title:"ChangeFinder",icon:p.jZ,info:'Online changepoint detection using machine learning. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/changefinder/README.md" target="_blank">here</a>.'},zscores:{title:"Z-Scores",icon:m.WV,info:"Z scores scores relating to key system metrics."},anomaly_detection:{title:"Anomaly Detection",icon:u.qx,info:'Charts relating to anomaly detection, increased <b>anomalous</b> dimensions or a higher than usual <b>anomaly_rate</b> could be signs of some abnormal behaviour. Read our <a href="https://learn.netdata.cloud/guides/monitor/anomaly-detection" target="_blank">anomaly detection guide</a> for more details.'},fail2ban:{title:"Fail2ban",icon:h.is,info:"Netdata keeps track of the current jail status by reading the Fail2ban log file."},wireguard:{title:"WireGuard",icon:d.SP,info:"VPN network interfaces and peers traffic."},prometheus:{icon:"servicePrometheus"},"Kubernetes State":{title:"Kubernetes State",icon:"serviceKubernetes"},"Kubernetes Containers":{title:"Kubernetes Containers",icon:"serviceKubernetes"},"Kubernetes kubelet":{title:"Kubernetes Kubelet",icon:"serviceKubernetes"},"Kubernetes kubeproxy":{title:"Kubernetes Kubeproxy",icon:"serviceKubernetes"},coredns:{title:"CoreDNS",icon:"serviceCoreDns"},dns_query:{title:"DNS Query Response Time",icon:"serviceDns"},sendgrid:{title:"SendGrid",icon:"serviceSendgrid"},smartd_log:{icon:"servicesSmartdlog"},bind:{icon:"serviceBind"},systemd:{icon:"serviceSystemd"},md:{title:"Linux Software RAID",icon:l.vc,info:"Metrics for monitoring Linux Software RAID"},cups:{title:"Printers (cups)",icon:c.St,info:"Metrics for Printer (cups) monitoring"},named:{title:"ISC Bind (named)",icon:"serviceCoreDns",info:"Metrics for named monitoring"},isc_dhcpd:{title:"ISC DHCPd",icon:"serviceCoreDns",info:"Metrics for DHCPd monitoring"}},K={"web_log.squid_bandwidth":{title:"bandwidth",info:'Bandwidth of responses (<b>sent</b>) by squid. This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a>) for accurate accounting of the server bandwidth.'},"web_log.squid_responses":{title:"responses",info:"Information related to the responses sent by squid."},"web_log.squid_requests":{title:"requests",info:"Information related to the requests squid has received."},"web_log.squid_hierarchy":{title:"hierarchy",info:"Performance metrics for the squid hierarchy used to serve the requests."},"web_log.squid_squid_transport":{title:"transport"},"web_log.squid_squid_cache":{title:"cache",info:"Performance metrics for the performance of the squid cache."},"web_log.squid_timings":{title:"timings",info:"Duration of squid requests. Unrealistic spikes may be reported, since squid logs the total time of the requests, when they complete. Especially for HTTPS, the clients get a tunnel from the proxy and exchange requests directly with the upstream servers, so squid cannot evaluate the individual requests and reports the total time the tunnel was open."},"web_log.squid_clients":{title:"clients"},"web_log.bandwidth":{info:'Bandwidth of requests (<b>received</b>) and responses (<b>sent</b>). <b>received</b> requires an extended log format (without it, the web server log does not have this information). This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the web server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a>) for accurate accounting of the web server bandwidth.'},"web_log.urls":{info:'Number of requests for each <b>URL pattern</b> defined in <a href="https://github.com/netdata/go.d.plugin/blob/master/config/go.d/web_log.conf" target="_blank"><b>/etc/netdata/go.d/web_log.conf</b></a>. This chart counts all requests matching the URL patterns defined, independently of the web server response codes (i.e. both successful and unsuccessful).'},"web_log.clients":{info:"Charts showing the number of unique client IPs, accessing the web server."},"web_log.timings":{info:"Web server response timings - the time the web server needed to prepare and respond to requests. This requires an extended log format and its meaning is web server specific. For most web servers this accounts the time from the reception of a complete request, to the dispatch of the last byte of the response. So, it includes the network delays of responses, but it does not include the network delays of requests."},"mem.ksm":{title:"deduper (ksm)",info:'<a href="https://en.wikipedia.org/wiki/Kernel_same-page_merging" target="_blank">Kernel Same-page Merging</a> (KSM) performance monitoring, read from several files in <b>/sys/kernel/mm/ksm/</b>. KSM is a memory-saving de-duplication feature in the Linux kernel. The KSM daemon ksmd periodically scans those areas of user memory which have been registered with it, looking for pages of identical content which can be replaced by a single write-protected page.'},"mem.hugepages":{info:'Hugepages is a feature that allows the kernel to utilize the multiple page size capabilities of modern hardware architectures. The kernel creates multiple pages of virtual memory, mapped from both physical RAM and swap. There is a mechanism in the CPU architecture called "Translation Lookaside Buffers" (TLB) to manage the mapping of virtual memory pages to actual physical memory addresses. The TLB is a limited hardware resource, so utilizing a large amount of physical memory with the default page size consumes the TLB and adds processing overhead. By utilizing Huge Pages, the kernel is able to create pages of much larger sizes, each page consuming a single resource in the TLB. Huge Pages are pinned to physical RAM and cannot be swapped/paged out.'},"mem.numa":{info:'Non-Uniform Memory Access (NUMA) is a hierarchical memory design the memory access time is dependent on locality. Under NUMA, a processor can access its own local memory faster than non-local memory (memory local to another processor or memory shared between processors). The individual metrics are described in the <a href="https://www.kernel.org/doc/Documentation/numastat.txt" target="_blank">Linux kernel documentation</a>.'},"mem.ecc":{info:'<p><a href="https://en.wikipedia.org/wiki/ECC_memory" target="_blank">ECC memory</a> is a type of computer data storage that uses an error correction code (ECC) to detect and correct n-bit data corruption which occurs in memory. Typically, ECC memory maintains a memory system immune to single-bit errors: the data that is read from each word is always the same as the data that had been written to it, even if one of the bits actually stored has been flipped to the wrong state.</p><p>Memory errors can be classified into two types: <b>Soft errors</b>, which randomly corrupt bits but do not leave physical damage. Soft errors are transient in nature and are not repeatable, can be because of electrical or magnetic interference. <b>Hard errors</b>, which corrupt bits in a repeatable manner because of a physical/hardware defect or an environmental problem.'},"mem.pagetype":{info:'Statistics of free memory available from <a href="https://en.wikipedia.org/wiki/Buddy_memory_allocation" target="_blank">memory buddy allocator</a>. The buddy allocator is the system memory allocator. The whole memory space is split in physical pages, which are grouped by NUMA node, zone, <a href="https://lwn.net/Articles/224254/" target="_blank">migrate type</a>, and size of the block. By keeping pages grouped based on their ability to move, the kernel can reclaim pages within a page block to satisfy a high-order allocation. When the kernel or an application requests some memory, the buddy allocator provides a page that matches closest the request.'},"ip.ecn":{info:'<a href="https://en.wikipedia.org/wiki/Explicit_Congestion_Notification" target="_blank">Explicit Congestion Notification (ECN)</a> is an extension to the IP and to the TCP that allows end-to-end notification of network congestion without dropping packets. ECN is an optional feature that may be used between two ECN-enabled endpoints when the underlying network infrastructure also supports it.'},"ip.multicast":{info:'<a href="https://en.wikipedia.org/wiki/Multicast" target="_blank">IP multicast</a> is a technique for one-to-many communication over an IP network. Multicast uses network infrastructure efficiently by requiring the source to send a packet only once, even if it needs to be delivered to a large number of receivers. The nodes in the network take care of replicating the packet to reach multiple receivers only when necessary.'},"ip.broadcast":{info:'In computer networking, <a href="https://en.wikipedia.org/wiki/Broadcasting_(networking)" target="_blank">broadcasting</a> refers to transmitting a packet that will be received by every device on the network. In practice, the scope of the broadcast is limited to a broadcast domain.'},"netfilter.conntrack":{title:"connection tracker",info:"Netfilter Connection Tracker performance metrics. The connection tracker keeps track of all connections of the machine, inbound and outbound. It works by keeping a database with all open connections, tracking network and address translation and connection expectations."},"netfilter.nfacct":{title:"bandwidth accounting",info:"The following information is read using the <b>nfacct.plugin</b>."},"netfilter.synproxy":{title:"DDoS protection",info:'DDoS protection performance metrics. <a href="https://github.com/firehol/firehol/wiki/Working-with-SYNPROXY" target="_blank">SYNPROXY</a> is a TCP SYN packets proxy. It is used to protect any TCP server (like a web server) from SYN floods and similar DDoS attacks. SYNPROXY intercepts new TCP connections and handles the initial 3-way handshake using syncookies instead of conntrack to establish the connection. It is optimized to handle millions of packets per second utilizing all CPUs available without any concurrency locking between the connections. It can be used for any kind of TCP traffic (even encrypted), since it does not interfere with the content itself.'},"ipfw.dynamic_rules":{title:"dynamic rules",info:"Number of dynamic rules, created by correspondent stateful firewall rules."},"system.softnet_stat":{title:"softnet",info:function(e){return"linux"===e.os?'<p>Statistics for CPUs SoftIRQs related to network receive work. Break down per CPU core can be found at <a href="#menu_cpu_submenu_softnet_stat">CPU / softnet statistics</a>. More information about identifying and troubleshooting network driver related issues can be found at <a href="https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf" target="_blank">Red Hat Enterprise Linux Network Performance Tuning Guide</a>.</p><p><b>Processed</b> - packets processed. <b>Dropped</b> - packets dropped because the network device backlog was full. <b>Squeezed</b> - number of times the network device budget was consumed or the time limit was reached, but more work was available. <b>ReceivedRPS</b> - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. <b>FlowLimitCount</b> - number of times the flow limit has been reached (flow limiting is an optional Receive Packet Steering feature).</p>':"Statistics for CPUs SoftIRQs related to network receive work."}},"system.clock synchronization":{info:'<a href="https://en.wikipedia.org/wiki/Network_Time_Protocol" target="_blank">NTP</a> lets you automatically sync your system time with a remote server. This keeps your machine\u2019s time accurate by syncing with servers that are known to have accurate times.'},"cpu.softnet_stat":{title:"softnet",info:function(e){return"linux"===e.os?'<p>Statistics for CPUs SoftIRQs related to network receive work. Total for all CPU cores can be found at <a href="#menu_system_submenu_softnet_stat">System / softnet statistics</a>. More information about identifying and troubleshooting network driver related issues can be found at <a href="https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf" target="_blank">Red Hat Enterprise Linux Network Performance Tuning Guide</a>.</p><p><b>Processed</b> - packets processed. <b>Dropped</b> - packets dropped because the network device backlog was full. <b>Squeezed</b> - number of times the network device budget was consumed or the time limit was reached, but more work was available. <b>ReceivedRPS</b> - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. <b>FlowLimitCount</b> - number of times the flow limit has been reached (flow limiting is an optional Receive Packet Steering feature).</p>':'Statistics for per CPUs core SoftIRQs related to network receive work. Total for all CPU cores can be found at <a href="#menu_system_submenu_softnet_stat">System / softnet statistics</a>.'}},"go_expvar.memstats":{title:"memory statistics",info:'Go runtime memory statistics. See <a href="https://golang.org/pkg/runtime/#MemStats" target="_blank">runtime.MemStats</a> documentation for more info about each chart and the values.'},"couchdb.dbactivity":{title:"db activity",info:"Overall database reads and writes for the entire server. This includes any external HTTP traffic, as well as internal replication traffic performed in a cluster to ensure node consistency."},"couchdb.httptraffic":{title:"http traffic breakdown",info:"All HTTP traffic, broken down by type of request (<tt>GET</tt>, <tt>PUT</tt>, <tt>POST</tt>, etc.) and response status code (<tt>200</tt>, <tt>201</tt>, <tt>4xx</tt>, etc.)<br/><br/>Any <tt>5xx</tt> errors here indicate a likely CouchDB bug; check the logfile for further information."},"couchdb.ops":{title:"server operations"},"couchdb.perdbstats":{title:"per db statistics",info:'Statistics per database. This includes <a href="http://docs.couchdb.org/en/latest/api/database/common.html#get--db" target="_blank">3 size graphs per database</a>: active (the size of live data in the database), external (the uncompressed size of the database contents), and file (the size of the file on disk, exclusive of any views and indexes). It also includes the number of documents and number of deleted documents per database.'},"couchdb.erlang":{title:"erlang statistics",info:"Detailed information about the status of the Erlang VM that hosts CouchDB. These are intended for advanced users only. High values of the peak message queue (>10e6) generally indicate an overload condition."},"ntpd.system":{title:"system",info:'Statistics of the system variables as shown by the readlist billboard <b>ntpq -c rl</b>. System variables are assigned an association ID of zero and can also be shown in the readvar billboard <b>ntpq -c "rv 0"</b>. These variables are used in the <a href="http://doc.ntp.org/current-stable/discipline.html" target="_blank">Clock Discipline Algorithm</a>, to calculate the lowest and most stable offset.'},"ntpd.peers":{title:"peers",info:'Statistics of the peer variables for each peer configured in <b>/etc/ntp.conf</b> as shown by the readvar billboard <b>ntpq -c "rv &lt;association&gt;"</b>, while each peer is assigned a nonzero association ID as shown by <b>ntpq -c "apeers"</b>. The module periodically scans for new/changed peers (default: every 60s). <b>ntpd</b> selects the best possible peer from the available peers to synchronize the clock. A minimum of at least 3 peers is required to properly identify the best possible peer.'},"mem.page_cache":{title:"page cache (eBPF)",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#memory" target="_blank">functions</a> used to manipulate the <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. This chart has a relationship with <a href="#menu_filesystem">File Systems</a>, <a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, and <a href="#menu_disk">Hard Disk</a>.'},"apps.page_cache":{title:"page cache (eBPF)",info:'Netdata also gives a summary for these charts in <a href="#menu_mem_submenu_page_cache">Memory submenu</a>.'},"filesystem.vfs":{title:"vfs (eBPF)",info:'Number of calls to Virtual File System <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">functions</a> used to manipulate <a href="#menu_filesystem">File Systems</a>.'},"apps.vfs":{title:"vfs (eBPF)",info:'Netdata also gives a summary for these charts in <a href="#menu_filesystem_submenu_vfs">Filesystem submenu</a>.'},"filesystem.ext4_latency":{title:"ext4 latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="http://www.brendangregg.com/blog/2016-10-06/linux-bcc-ext4dist-ext4slower.html" target="_blank">eBPF ext4dist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.xfs_latency":{title:"xfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/xfsdist_example.txt" target="_blank">xfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.nfs_latency":{title:"nfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/nfsdist_example.txt" target="_blank">nfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.zfs_latency":{title:"zfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/zfsdist_example.txt" target="_blank">zfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.btrfs_latency":{title:"btrfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/btrfsdist_example.txt" target="_blank">btrfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.file_access":{title:"file access (eBPF)"},"apps.file_access":{title:"file access (eBPF)",info:'Netdata also gives a summary for this chart on <a href="#menu_filesystem_submenu_file_access">Filesystem submenu</a> (more details on <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">eBPF plugin file chart section</a>).'},"ip.kernel":{title:"kernel functions (eBPF)"},"apps.net":{title:"network",info:'Netdata also gives a summary for eBPF charts in <a href="#menu_ip_submenu_kernel">Networking Stack submenu</a>.'},"system.ipc semaphores":{info:'System V semaphores is an inter-process communication (IPC) mechanism. It allows processes or threads within a process to synchronize their actions. They are often used to monitor and control the availability of system resources such as shared memory segments. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC semaphore information, run <b>ipcs -us</b>. For limits, run <b>ipcs -ls</b>.'},"system.ipc shared memory":{info:'System V shared memory is an inter-process communication (IPC) mechanism. It allows processes to communicate information by sharing a region of memory. It is the fastest form of inter-process communication available since no kernel involvement occurs when data is passed between the processes (no copying). Typically, processes must synchronize their access to a shared memory object, using, for example, POSIX semaphores. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC shared memory information, run <b>ipcs -um</b>. For limits, run <b>ipcs -lm</b>.'},"system.ipc message queues":{info:'System V message queues is an inter-process communication (IPC) mechanism. It allow processes to exchange data in the form of messages. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC messages information, run <b>ipcs -uq</b>. For limits, run <b>ipcs -lq</b>.'},"system.interrupts":{info:'<a href="https://en.wikipedia.org/wiki/Interrupt" target="_blank"><b>Interrupts</b></a> are signals sent to the CPU by external devices (normally I/O devices) or programs (running processes). They tell the CPU to stop its current activities and execute the appropriate part of the operating system. Interrupt types are <b>hardware</b> (generated by hardware devices to signal that they need some attention from the OS), <b>software</b> (generated by programs when they want to request a system call to be performed by the operating system), and <b>traps</b> (generated by the CPU itself to indicate that some error or condition occurred for which assistance from the operating system is needed).'},"system.softirqs":{info:'Software interrupts (or "softirqs") are one of the oldest deferred-execution mechanisms in the kernel. Several tasks among those executed by the kernel are not critical: they can be deferred for a long period of time, if necessary. The deferrable tasks can execute with all interrupts enabled (softirqs are patterned after hardware interrupts). Taking them out of the interrupt handler helps keep kernel response time small.'},"cpu.softirqs":{info:'Total number of software interrupts per CPU. To see the total number for the system check the <a href="#menu_system_submenu_softirqs">softirqs</a> section.'},"cpu.interrupts":{info:'Total number of interrupts per CPU. To see the total number for the system check the <a href="#menu_system_submenu_interrupts">interrupts</a> section. The last column in <b>/proc/interrupts</b> provides an interrupt description or the device name that registered the handler for that interrupt.'},"cpu.throttling":{info:" CPU throttling is commonly used to automatically slow down the computer when possible to use less energy and conserve battery."},"cpu.cpuidle":{info:'<a href="https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Processor_states" target="_blank">Idle States (C-states)</a> are used to save power when the processor is idle.'},"services.net":{title:"network (eBPF)"},"services.page_cache":{title:"pache cache (eBPF)"},"netdata.ebpf":{title:"eBPF.plugin",info:'eBPF (extended Berkeley Packet Filter) is used to collect metrics from inside Linux kernel giving a zoom inside your <a href="#ebpf_system_process_thread">Process</a>, <a href="#menu_disk">Hard Disk</a>, <a href="#menu_filesystem">File systems</a> (<a href="#menu_filesystem_submenu_file_access">File Access</a>, and <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Directory Cache</a>), Memory (<a href="#ebpf_global_swap">Swap I/O</a>, <a href="#menu_mem_submenu_page_cache">Page Cache</a>), IRQ (<a href="#ebpf_global_hard_irq">Hard IRQ</a> and <a href="#ebpf_global_soft_irq">Soft IRQ</a> ), <a href="#ebpf_global_shm">Shared Memory</a>, Syscalls (<a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, <a href="#menu_mount_submenu_mount__eBPF_">Mount</a>), and <a href="#menu_ip_submenu_kernel">Network</a>.'}};function J(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?J(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var X=function(e,t,n,s){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if("undefined"===typeof e[n])return s;var a=e[n][t];return"undefined"===typeof a?s:"function"===typeof a?a(r):a},$=function(e,t){if(e.sectionTitle)return e.sectionTitle;if("undefined"===typeof e.menuPattern)return X(W,"title",e.id,e.id,t).toString().replace(/_/g," ");var n=e.type||e.id.split(".")[0],s=n===e.menuPattern?"":" ".concat(n.slice(-(n.length-e.menuPattern.length-1)));return"".concat(X(W,"title",e.menuPattern,e.menuPattern,t).toString()," ").concat(s).replace(/_/g," ")},ee=r.Nx,te=function(e){return X(W,"icon",e.menuIcon||e.menuPattern||e.id,ee)},ne=function(e,t){return X(W,"info",e.menuPattern||e.id,null,t)},se=function(e,t,n){var s=t?"".concat(e,".").concat(t):e;return X(K,"title",s,t||e,n).toString().replace(/_/g," ")},re=function(e,t,n){return X(K,"info",t?"".concat(e,".").concat(t):e,null,n)},ae=function(e,t){var n=X(o.Z,"info",e,null,t);return n?'<div class="shorten dashboard-context-info" role="document">'.concat(n,"</div>"):""},oe=function(e,t,n,s){return X(o.Z,t,e,n,s)},ie=function(e){var t;return(null===(t=o.Z[e])||void 0===t?void 0:t.valueRange)||[null,null]},ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.menuId,s=t.subMenuId,r=t.sectionInfo,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=e.context,l=e.domain,d=e.id,h=e.visible,u=e.filteredOut,m=e.hidden;return Y(Y({},o.Z[d]),{},{id:d,chartId:d,menuGroupId:n,subMenuId:s,link:"chart_".concat((0,a.Z)(d)),chartLibrary:"dygraph",info:ae(c,i),sectionInfo:r,valueRange:ie(c),colors:"".concat(X(c||d,"colors",c,"",i)),domain:l,visible:h,filteredOut:u,hidden:m})}},45335:function(e,t,n){n.d(t,{Ze:function(){return i},sm:function(){return c},vH:function(){return l}});var s=n(29439),r=n(67294),a=(0,r.createContext)(),o=(0,r.createContext)(),i=function(e){var t=e.children,n=(0,r.useState)(),i=(0,s.Z)(n,2),c=i[0],l=i[1];return r.createElement(a.Provider,{value:c},r.createElement(o.Provider,{value:l},t))},c=function(){return(0,r.useContext)(a)},l=function(){return(0,r.useContext)(o)}},85993:function(e,t,n){n.d(t,{Lj:function(){return f},UG:function(){return m},VC:function(){return b},YE:function(){return h},fW:function(){return u},jj:function(){return y},nk:function(){return p}});var s=n(87462),r=n(45987),a=n(67294),o=n(6557),i=n.n(o),c=n(44682),l=n(37682),d=["id"],h=(0,c.kr)({}),u=function(e){var t=e.menuGroupById,n=e.children;return a.createElement(h.Provider,{value:t},n)},m=function(e){return(0,l.Z)(h,e)},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return m((function(n){return t(n[e])}))},f=function(e,t){return function(n){var o=n.id,i=(0,r.Z)(n,d),c=p(o,t);return a.createElement(e,(0,s.Z)({},c,i))}},g=(0,c.kr)([]),b=function(e){var t=e.ids,n=e.children;return a.createElement(g.Provider,{value:t},n)},y=function(e){return function(t){var n,r=(0,l.Z)(g,n);return a.createElement(e,(0,s.Z)({menuGroupIds:r},t))}}},62525:function(e,t,n){n.d(t,{Ji:function(){return f},N6:function(){return m},St:function(){return u},Yo:function(){return p},aJ:function(){return h}});var s=n(87462),r=n(45987),a=n(67294),o=n(6557),i=n.n(o),c=n(44682),l=n(37682),d=["id"],h=(0,c.kr)({}),u=function(e){var t=e.subMenuById,n=e.children;return a.createElement(h.Provider,{value:t},n)},m=function(e){return(0,l.Z)(h,e)},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return m((function(n){return t(n[e])}))},f=function(e,t){return function(n){var o=n.id,i=(0,r.Z)(n,d),c=p(o,t);return a.createElement(e,(0,s.Z)({},c,i))}}},13962:function(e,t,n){n.d(t,{Z:function(){return w}});var s=n(87462),r=n(45987),a=(n(34553),n(69826),n(41539),n(31672),n(2490),n(59461),n(21249),n(57640),n(9924),n(57327),n(88449),n(59849),n(67294)),o=n(71824),i=n(71059),c=n(89479),l=(n(26833),n(85993)),d=n(62525),h=n(45335),u=n(44682),m=function(e){var t=(0,a.useRef)();return(0,u.Sz)(e,(function(e){return t.current=e,!1})),t},p=(n(88674),function(e,t){var n=(0,o.uK)(),s=m(l.YE),r=m(d.aJ),i=m(o.vv),c=(0,h.vH)(),u=(0,a.useMemo)((function(){return{goToElement:function(n){return!!t.length&&(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;new Promise((function(n){!function t(s){if(0===s)return n();e(),setTimeout((function(){return t(--s)}))}(t)}))}((function(){var s=t.findIndex((function(e){return e.id===n}));if(-1!==s)return e.scrollToIndex(s,{align:"start"})}),5),!0)},goToLink:function(e){var t=Object.values(s.current).find((function(t){return t.link===e}));if(t)return u.goToElement(t.id);var n=Object.values(r.current).find((function(t){return t.link===e}));if(n)return u.goToElement(n.id);var a=Object.values(i.current).find((function(t){return t.link===e}));return a?u.goToElement(a.chartId):void 0}}}),[n,t]);return(0,a.useLayoutEffect)((function(){c(u)}),[u]),u}),f=(n(91038),n(78783),n(27856)),g=["getComponent","element","index"],b=function(e){var t=e.getComponent,n=e.element,o=e.index,i=(0,r.Z)(e,g),c=(0,a.useMemo)((function(){return t(n)}),[n.id,o]);return a.createElement(c,(0,s.Z)({key:n.id},n,{index:o},i,{isVisible:!0}))},y=null,v=(0,a.memo)((0,a.forwardRef)((function(e,t){var n=e.elements,r=e.onScroll,o=e.dashboardOptions,c=e.getComponent,l=(0,a.useRef)(),d=(0,a.useRef)(),h=(0,a.useRef)(),u=(0,a.useRef)(0),m=(0,i.MG)({count:n.length,getScrollElement:function(){return t.current},scrollOffsetFn:function(e){return e?e.target.scrollTop-t.current.offsetTop:0},overscan:1,enableSmoothScroll:!1,estimateSize:function(e){return n[e].size},onChange:function(e){if(l.current!==n.length&&(u.current=0),d.current&&(u.current<5||l.current!==n.length)){u.current=u.current+1,l.current=n.length;var t=n.findIndex((function(e){return e.id===d.current.id}));if(-1===t)return;var s=e.getMeasurements()[t].start;return e.scrollToOffset(s+h.current),clearTimeout(y),void(y=setTimeout((function(){return u.current=5}),200))}l.current=n.length;var r=e.scrollOffset,a=0,o=e.getMeasurements().find((function(e){return(a+=e.size)>r}));o&&(d.current=n[o.index],h.current=r-o.start)}});return p(m,n),a.createElement("div",{ref:t,style:{minHeight:"100%",width:"100%",overflow:"auto"},onScroll:r},a.createElement("div",{style:{minHeight:"".concat(m.getTotalSize(),"px"),width:"100%",position:"relative"}},m.getVirtualItems().map((function(e,t){return a.createElement("div",{key:e.key,ref:m.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),padding:2,zIndex:m.getVirtualItems().length-t},"data-index":e.index},a.createElement(b,(0,s.Z)({},o,{element:n[e.index],index:e.index,getComponent:c})))}))))})),(function(e,t){return e.elements.length===t.elements.length})),_=function(e){var t=e.onActiveMenuGroupId,n=e.onActiveSubMenuId,s=e.getComponent,r=e.dashboardOptions,i=e.initialChartName,l=e.checkVisibility,d=(0,c.If)(),h=(0,o.PZ)((function(e){return e.filter((function(e){return l?l(e.subMenuChartIds||e.chartIds||[e.id]):d(e.subMenuChartIds||e.chartIds||[e.id])}))})),u=(0,a.useRef)(),m=(0,a.useRef)(),p=(0,a.useMemo)((function(){return m.current&&m.current.cancel(),m.current=(0,f.D)(100,(function(e,t,n){var s;if(e){var r=e.getBoundingClientRect().top,a=Array.from(e.querySelectorAll("[data-submenuid], [data-menuid], [data-chartid]")).find((function(e){return e.getBoundingClientRect().top-r>0}));if(a){var o=a.getAttribute("data-menuid");if(o)return t(""),void n(o);t(a.getAttribute("data-submenuid")||(null===(s=a.closest("[data-submenuid]"))||void 0===s?void 0:s.getAttribute("data-submenuid")))}}})),function(){return m.current(u.current,n,t)}}),[h.length,n,t]);return(0,a.useLayoutEffect)((function(){h.length&&p()}),[h.length,i]),a.createElement(v,{elements:h,onScroll:p,dashboardOptions:r,getComponent:s,ref:u})},w=(0,a.memo)(_)},74662:function(e,t,n){n.d(t,{v:function(){return L},Z:function(){return N}});var s=n(29439),r=n(87462),a=n(67294),o=n(15557),i=n(45987),c=(n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(93433)),l=n(4942),d=(n(41539),n(15581),n(2490),n(34514),n(54747),n(2707),n(92222),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(85827),n(25387),n(72608),n(47941),n(69826),n(31672),n(59461),n(19601),n(21249),n(57640),n(9924),n(39612)),h=(n(74916),n(77601),n(4723),n(15306),["menuPattern","menu"]);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,l.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=function(e,t){var n=e.id,r=e.name,a=e.family,o=e.context;return function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.name,a=void 0===r?"":r,o=n.context,c=void 0===o?"":o,l=n.submenuNames,d=void 0===l?{}:l,u=(c||e.chartId).split("."),p=(0,s.Z)(u,3),f=p[0],g=p[1],b=p[2],y=f.split("_"),v=(0,s.Z)(y,2),_=v[0],w=v[1],k=function(t){var n=t.menuPattern,s=t.menu,r=void 0===s?f:s,a=(0,i.Z)(t,h);return m(m(m({id:r,menuPattern:n,key:"".concat(r,"|").concat(e.subMenuId,"|").concat(e.chartId)},a),e),{},{part1:_})},T=function(e){var t=y.length>=2&&w===e?"".concat(_,"_").concat(w):_;return k({menuPattern:t})};switch(_){case"ap":case"net":case"powersupply":case"mount":return k({menu:_});case"cpufreq":case"cpuidle":return k({menu:"cpu"});case"smartd":case"web":return T("log");case"apache":return T("cache");case"bind":return T("rndc");case"go":return T("expvar");case"isc":return T("dhcpd");case"anomaly":return k({});case"disk":return/(inodes|space)/.test(g)||/(inodes|space)/.test(w)?k({menu:"mount"}):k({menu:_});case"k8s":return k("state"===w?{menu:"Kubernetes State"}:w&&"container"!==w?{menu:"Kubernetes ".concat(w)}:{menu:"Kubernetes Containers",flavour:"k8s"});case"cgroup":var x=e.chartId.match(/.*[._/-:]qemu[._/-:]*/)||e.chartId.match(/.*[._/-:]kvm[._/-:]*/)?"cgqemu":"cgroup",S=1===y.length?"Containers & VMs":void 0;return k({menuPattern:x,sectionTitle:S});case"ovpn":var C=y.length>3&&"status"===y[1]&&"log"===y[2]?"".concat(_,"_").concat(w):_;return k({menuPattern:C});case"prometheus":if(b)return k({menu:"".concat(g.replace("-"," ")),menuIcon:"prometheus"});var P=e.subMenuId.split("_")[0];return k({menu:"".concat(P),menuIcon:"prometheus"});case"tc":if("tc.qos"===c&&(!("family"in d)||(null===(t=d[_])||void 0===t?void 0:t[e.subMenuId])===e.subMenuId)){var M=a.split("."),q=(0,s.Z)(M,2)[1];d[_]||(d[_]={}),d[_][e.subMenuId]=q.replace(/^(in_|out_)/,"").replace(/(_in|_out)$/,"")}return k({menu:_,priority:e.chartId.match(/.*-ifb$/)?e.priority-1:e.priority});default:var I=y.length>1?_:void 0;return k({menuPattern:I});case"dnsmasq":if(2==y.length&&"dhcp"===y[1])return k({menu:"".concat(_,"_").concat(w)});if(y.length>=2&&"dhcp"===y[1])return k({menuPattern:"".concat(_,"_").concat(w)});var E=y.length>1?_:void 0;return k({menuPattern:E})}}({chartId:n,subMenuId:a||"all",priority:e.priority,visible:e.visible,filteredOut:e.filteredOut,hidden:e.hidden},{name:r,context:o,submenuNames:t})},f=(n(64211),n(41874),n(41609)),g=n.n(f),b=n(7592),y=n(89692);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,l.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=function(e,t,n){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r={},a=[];return t.forEach((function(t){var o=n(t);(0,y.G_)(b.Z,e,o.context,[]).forEach((function(i,c){var l="function"===typeof i?i(_(_({},s),{},{id:o.id})):i;if(l&&!function(e,t){return!!e&&(Array.isArray(e)?e.some((function(e){return!g()(t(e))})):!g()(t(e)))}(l.hiddenWhen,n)&&(!l.domain||l.domain===o.domain)){var d="".concat(e,"|").concat(t,"|").concat(c),h=_(_({id:d,chartId:t},s),l);r[d]=h,a.push(d)}}))})),[r,a.sort((function(e,t){return r[e].priority-r[t].priority}))]};function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?k(Object(n),!0).forEach((function(t){(0,l.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var x=function(e,t,n){var s={},r={},a={},o={};return e.forEach((function(e){var r=t(e);r.id&&(n[e]=p(function(e){return T(T({},e),{},{family:(0,y.lV)(e.context,"family",e.family)})}(r),s))})),(0,c.Z)(e).sort((function(e,t){var s,r,a,o;return(null===(s=n[e])||void 0===s?void 0:s.priority)-(null===(r=n[t])||void 0===r?void 0:r.priority)||((null===(a=n[e])||void 0===a?void 0:a.key)||"").localeCompare((null===(o=n[t])||void 0===o?void 0:o.key)||"",void 0,{sensitivity:"accent"})})).forEach((function(e){var t=n[e],s="".concat(t.id,"|").concat(t.subMenuId);o[s]||(o[s]=[]),r[t.id]||(r[t.id]=new Set),a[t.id]||(a[t.id]=[]),o[s].push(t.chartId),r[t.id].add(s),a[t.id].push(t.chartId)})),{chartMenus:n,menuGroups:r,menuGroupChartIds:a,subMenus:o,submenuNames:s}},S=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).os,r={},a=x(e,t,r),o=a.menuGroups,i=a.menuGroupChartIds,l=a.subMenus,h=a.submenuNames,u={},m=Object.keys(o).reduce((function(e,a){var l=i[a],h=r[l[0]],m=l.find((function(e){return r[e].menuPattern})),p=m?r[m].menuPattern:"",f=(0,c.Z)(o[a]),g=w("mainheads",l,t,{os:n}),b=(0,s.Z)(g,2),v=b[0],_=b[1];return Object.assign(u,v),e[a]={level:0,id:a,menuPattern:p,priority:h.priority,headIds:_,subMenuIds:f,subMenuChartIds:l,name:(0,y.iK)(h),icon:(0,y.FO)(h),info:(0,y.oS)(h),link:"".concat((0,d.Z)("menu_".concat(a))),size:24,flavour:h.flavour},e}),{}),p=Object.keys(l).reduce((function(e,a){var o,i=l[a],c=r[i[0]],p=m[c.id],f=p.id,g=p.menuPattern,b=w("heads",i,t,{os:n}),v=(0,s.Z)(b,2),_=v[0],k=v[1];Object.assign(u,_);var T=g||f,x=c.subMenuId in(h[c.part1]||{})?"".concat(c.subMenuId," (").concat(null===(o=h[c.part1])||void 0===o?void 0:o[c.subMenuId],")"):(0,y.bF)(T,c.subMenuId);return e[a]={level:1,id:a,menuGroupId:f,priority:c.priority,chartIds:i,headIds:k,name:x,info:(0,y.JK)(T,c.subMenuId),link:"".concat((0,d.Z)("menu_".concat(c.id,"_submenu_").concat(c.subMenuId))),size:24},e}),{}),f=Object.keys(o),g=-1,b=[],v=f.reduce((function(e,s){g+=1;var r=m[s];return(r.headIds||"k8s"===r.flavour)&&b.push(g),[].concat((0,c.Z)(e),[r],(0,c.Z)(m[s].subMenuIds.reduce((function(e,r){g+=1;var a=p[r];return a.headIds&&b.push(g),[].concat((0,c.Z)(e),[a],(0,c.Z)(p[r].chartIds.map((function(e){var a=t(e);if(a)return g+=1,u[e]=(0,y.ZP)(a,{menuId:s,subMenuId:r,sectionInfo:p[r].info},{os:n}),T(T({},u[e]),{},{level:2,size:365,menuKey:m[s].menuPattern||m[s].id})}))))}),[])))}),[]);return r=null,{stickyIndexes:b,allCharts:v,menuGroupIds:f,menuGroupById:m,subMenuById:p,menuChartsAttributeById:u}},C=n(71824),P=n(85993),M=n(62525),q=n(28989),I=n(45335),E=["container","chartIds","getChart","children","getMenu"],D=function(e){var t=e.container,n=e.chartIds,s=e.getChart,r=e.children,o=e.getMenu,c=void 0===o?S:o,l=(0,i.Z)(e,E),d=(0,a.useMemo)((function(){return c(n,s,l)}),[s,n.length]),h=d.allCharts,u=d.menuGroupIds,m=d.menuGroupById,p=d.subMenuById,f=d.menuChartsAttributeById;return a.createElement(C.At,{container:t,menuChartsAttributeById:f,getChart:s,allCharts:h},a.createElement(P.VC,{ids:u},a.createElement(P.fW,{menuGroupById:m},a.createElement(M.St,{subMenuById:p},a.createElement(q.SF,null,a.createElement(I.Ze,null,r))))))},L=function(e){return a.createElement(o.Flex,(0,r.Z)({column:!0,height:"100%",padding:[0,0,2,4],overflow:"auto",className:"node-view__container"},e))},N=function(e){var t=(0,a.useRef)(),n=(0,a.useState)(),i=(0,s.Z)(n,2),c=i[0],l=i[1];return(0,a.useLayoutEffect)((function(){l(t.current)}),[]),a.createElement(o.Flex,{ref:t,height:"100%",width:"100%",overflow:{vertical:"auto"}},c&&a.createElement(D,(0,r.Z)({},e,{container:c})))}},15394:function(e,t,n){n.d(t,{Z:function(){return g}});var s=n(67294),r=n(71824),a=n(45335),o=n(85993),i=n(62525),c=n(28989),l=n(4480),d=n(97945),h=n(37518),u=(0,l.xu)({key:"activeMenuGroupIdValue",default:""}),m=function(){var e=(0,h.UL)(),t=(0,d.pG)();return(0,s.useMemo)((function(){return{roomId:e,nodeId:t}}),[t,e])},p=function(e){return function(t,n){var s=t.querySelector(n);s&&e(s)}},f="scrollIntoViewIfNeeded"in document.body?p((function(e){return e.scrollIntoViewIfNeeded()})):p((function(e){return e.scrollIntoView()})),g=function(e){var t=e.onMenuGroupClick,n=e.onSubMenuClick,d=e.onChartNameChange,h=e.initialChartName,p=e.linkToGo,g=e.contextToGo,b=e.loaded,y=void 0===b||b,v=(0,r.uK)(),_=(0,a.sm)(),w=(0,o.UG)(),k=(0,i.N6)(),T=(0,c.An)(),x=T.setMenuGroupId,S=T.setSubMenuId,C=function(){var e=m();return(0,l.Zl)(u(e))}(),P=(0,s.useRef)(h);(0,s.useLayoutEffect)((function(){y&&_&&p&&!P.current&&_.goToLink(p)}),[_,p]),(0,s.useLayoutEffect)((function(){y&&_&&g&&!P.current&&_.goToElement(g)}),[_,g]);var M=(0,s.useCallback)((function(e){x(e),C(e),f(v,'[data-sidebar="true"] [data-sidebar-menugroupid="'.concat(e,'"]')),e&&w[e]&&d(w[e].link)}),[w]),q=(0,s.useCallback)((function(e){S(e),e in k&&(x(k[e].menuGroupId),f(v,'[data-sidebar="true"] [data-sidebar-submenuid="'.concat(e,'"]')),d(k[e].link))}),[k]);return(0,s.useLayoutEffect)((function(){y&&P.current&&_&&_.goToLink(h)&&(P.current=null)}),[_]),{setActiveMenuGroupId:M,setActiveSubMenuId:q,onMenuGroupClick:(0,s.useCallback)((function(e,n){n&&n.preventDefault(),_.goToElement(e),t(e)}),[_]),onSubMenuClick:(0,s.useCallback)((function(e,t,s){s&&s.preventDefault(),_.goToElement(t),n(e,t)}),[_])}}},22962:function(e,t,n){n.d(t,{Z:function(){return C}});var s=n(29439),r=n(67294),a=n(15557),o=n(65351),i=n(16645),c=n(7693),l=n(92903),d=n(62200),h=n(74059),u=n(9058),m=n(29748),p=n(37518),f=n(5934),g=n(97723),b=n(47133),y=n(78266),v=n(59112),_=n(46667),w=n(33427),k=n(79619),T=n(67336),x=(0,r.memo)((function(e){var t=e.id,n=e.spaceId,o=e.roomId,i=e.chartId,c=e.name,l=(0,_.Z)(),d=(0,s.Z)(l,4),m=d[0],f=d[2],y=d[3],v=(0,b.LJ)(t),x=v.fullyLoaded,S=v.processing,C=(0,T.O9)(t,{onSuccess:function(){(0,w.FR)("Chart added to ".concat(c)),y()}}),P=m&&x,M=(0,h.vu)(n,"slug"),q=(0,p.tE)(o,"slug"),I=(0,g.jN)(t),E=(0,k.Z)(m&&t,{spaceId:n,spaceSlug:M,roomId:o,roomSlug:q}),D=(0,u.e)();(0,r.useEffect)((function(){if(!E&&P){var e=D.getNode({id:i}).getAttributes(),t=e.aggregationMethod,n=e.selectedDimensions,s=e.groupBy,r=e.groupByLabel,a=e.groupingMethod,o=e.chartType,c=e.selectedLabels,l=e.nodesScope,d=e.selectedInstances,h=e.selectedNodes,u=e.contextScope;I(u,{aggregationMethod:t,selectedDimensions:n,groupBy:s,groupByLabel:r,groupingMethod:a,chartType:o,selectedLabels:c,selectedNodes:h,selectedInstances:d,nodesScope:l},(function(){return setTimeout(C,100)}))}}),[P,E]);var L=m&&(S||E);return r.createElement(a.Button,{icon:"plus",onClick:f,isLoading:L,disabled:L})})),S=function(e){var t=e.spaceId,n=e.roomId,s=e.chartId;return[{id:"name",accessorKey:"name",header:"Dashboards",cell:function(e){var t=e.getValue;return r.createElement(a.Flex,{alignItems:"center",gap:3},r.createElement(a.Icon,{name:"dashboards",size:"small",color:"text"}),r.createElement(a.Text,null,t()))}},{id:"plusButton",accessorKey:"id",header:"",cell:function(e){var a=e.getValue,o=e.row;return r.createElement(x,{id:a(),spaceId:t,roomId:n,chartId:s,name:o.original.name})}}]},C=function(e){var t=e.onClose;(0,m.Z)();var n=(0,p.UL)(),_=(0,p.Hm)("name"),w=(0,h.th)(),k=(0,o.Z)("addToDashboardModal"),T=(k.params,k.params.chartId),x=(0,f.ie)(),C=(0,b.QF)(x),P=(0,r.useState)(""),M=(0,s.Z)(P,2),q=M[0],I=M[1],E=(0,r.useState)(!1),D=(0,s.Z)(E,2),L=D[0],N=D[1],O=q.length>0,R=(0,g.Di)(w,n,{onSuccess:t}),A=(0,u.e)().getNode({id:T}),F=(0,r.useMemo)((function(){return S({spaceId:w,roomId:n,chartId:T})}),[w,n,T]),U=function(){if(A){var e=A.getAttributes(),t=e.aggregationMethod,n=e.selectedDimensions,s=e.groupBy,r=e.groupByLabel,a=e.groupingMethod,o=e.chartType,i=e.selectedLabels,c=e.nodesScope,l=e.selectedInstances,d=e.selectedNodes,h=e.contextScope;R(q,h,{aggregationMethod:t,selectedDimensions:n,groupBy:s,groupByLabel:r,groupingMethod:a,chartType:o,selectedLabels:i,nodesScope:c,selectedInstances:l,selectedNodes:d})}},B=(0,f.L)();return r.createElement(i.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},r.createElement(c.x,{onClose:t,title:"Add to Dashboard"}),r.createElement(l.B,null,"Select Dashboard"),r.createElement(i.TZ,{gap:3},r.createElement(a.H4,null,"Add chart to one or more dashboards from the ",_),B?r.createElement(a.NetdataTable,{dataColumns:F,data:C}):r.createElement(y.Z,{title:"Loading dashboards..."}),r.createElement(a.H4,null,"Create a new dashboard and add ",T," to it"),r.createElement(v.Z,{value:q,label:"Name",onChange:function(e){return I(e.target.value)},isValid:L,setIsValid:N,isDirty:O,instantFeedback:"all",onKeyDown:function(e){return e.keyCode===d.DV&&L&&U}}),r.createElement(a.Button,{label:"Create & add",onClick:U,disabled:!A||!q})))}},59112:function(e,t,n){var s=n(87462),r=n(29439),a=n(93433),o=n(45987),i=(n(92222),n(67294)),c=n(15557),l=n(30688),d=n(71752),h=n(87574),u=["value","isValid","setIsValid","onChange","label","validators","fieldMessage","fieldIndicator"],m="Dashboard name cannot exceed ".concat(h.x," characters"),p=function(e){var t=e.length<=h.x;return(0,l.f)(t,m)};t.Z=function(e){var t=e.value,n=e.isValid,h=e.setIsValid,m=e.onChange,f=e.label,g=e.validators,b=void 0===g?[]:g,y=e.fieldMessage,v=(e.fieldIndicator,(0,o.Z)(e,u)),_=(0,l.A)([p].concat((0,a.Z)(b))),w=(0,i.useState)(""),k=(0,r.Z)(w,2),T=k[0],x=k[1];return(0,i.useEffect)((function(){var e=_(t),s=e.isValid,r=(0,d.T)(e);!n&&s?h(!0):n&&!s&&h(!1),x(r||"")}),[n,h,_,t]),i.createElement(c.TextInput,(0,s.Z)({label:f||" ",name:"userName",placeholder:"Enter dashboard name",value:t,onChange:m,fieldMessage:y,error:!n&&T},v))}},87574:function(e,t,n){n.d(t,{X:function(){return a},x:function(){return r}});var s=n(46189),r=50,a="".concat(s.Z.assetsBaseURL,"/img/new-dashboard.svg")},274:function(e,t,n){n.d(t,{Q5:function(){return l},Sz:function(){return u},fQ:function(){return d},lh:function(){return m}});var s=n(4942),r=n(45987),a=(n(21249),n(57640),n(9924),n(92222),n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),o=["accountID"];function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var c=function(e){return e.map((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({id:e.accountID},(0,r.Z)(e,o))}))},l=function(e){return a.Z.get("/api/v2/spaces/".concat(e,"/members"),{allow401:!0,transform:c})},d=function(e,t){return a.Z.get("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/members"),{allow401:!0,transform:c})},h=function(e){var t=e.account_ids;return"account_ids=".concat(t.join(","))},u=function(e,t){return a.Z.delete("/api/v1/spaces/".concat(e,"/members"),{paramsSerializer:h,params:{account_ids:t}})},m=function(e,t,n){return a.Z.patch("/api/v1/spaces/".concat(e,"/members/").concat(t),n)}},36560:function(e,t,n){n.d(t,{H:function(){return A},Z:function(){return F}});var s=n(87462),r=n(29439),a=n(67294),o=n(15557),i=n(46667),c=n(37518),l=n(86242),d=n(28350),h=n(36459),u=(n(19601),n(21249),n(57640),n(9924),n(60677)),m=n(94666),p=n(31203),f=n(52428),g=(0,u.default)(o.Flex).withConfig({displayName:"adminsList__RowFlex",componentId:"sc-1pb9ob2-0"})(["&:hover{background:",";}"],(0,o.getColor)("elementBackground")),b=(0,u.default)(o.Icon).withConfig({displayName:"adminsList__StyledIcon",componentId:"sc-1pb9ob2-1"})(["cursor:pointer;"]),y=function(e){var t=Object.assign({},((0,h.Z)(e),e)),n=(0,m.nP)();return a.createElement(o.Flex,(0,s.Z)({column:!0,border:{side:"top",color:"borderSecondary"},flex:"grow",padding:[1,0],height:{max:50},overflow:"auto"},t),n.map((function(e){return a.createElement(g,{flex:{grow:0,shrink:0},key:e.id,padding:[0,4],justifyContent:"between",height:10,alignItems:"center"},a.createElement(o.Flex,{key:e.id,gap:2,alignItems:"center"},a.createElement(p.Z,{src:e.avatarURL,title:e.name}),a.createElement(o.Text,null,e.name),a.createElement(o.Text,{color:"textLite"},e.email)),a.createElement(b,{onClick:(0,f.J)(e.email,{text:"Admin email address copied to your clipboard."}),size:"small",name:"copy",color:"primary"}))})))},v=(0,u.default)(o.Icon).withConfig({displayName:"styled__StyledWarningIcon",componentId:"sc-q96c2w-0"})(["border-radius:50%;overflow:hidden;background:",";"],(0,o.getColor)(["neutral","white"])),_=(0,u.default)(o.Icon).withConfig({displayName:"styled__StyledCheckmarkIcon",componentId:"sc-q96c2w-1"})(["border-radius:50%;overflow:hidden;background:",";padding:6px;width:24px;height:24px;"],(0,o.getColor)("elementBackground")),w=(0,u.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-q96c2w-2"})(["transform:",";"],(function(e){return e.closed?"none":"rotate(180deg)"})),k=n(45987),T=n(91008),x=["gaPrefix"],S=function(e){var t=e.gaPrefix,n=void 0===t?"onboarding":t,r=(0,k.Z)(e,x);return a.createElement(o.Flex,(0,s.Z)({column:!0,gap:1,color:"textDescription"},r),a.createElement(o.Text,null,"Need help?"),a.createElement(o.Text,null,"Use our"," ",a.createElement(T.Z,{href:"https://community.netdata.cloud/",target:"_blank","data-ga":"".concat(n,"::click-forums::allpages")},"forums")," ","or public"," ",a.createElement(T.Z,{href:"https://discord.gg/mPZ6WZKKG2",target:"_blank","data-ga":"".concat(n,"::click-discord::allpages")},"discord channel")))},C=n(72911),P=n(91268),M=n(73531),q=n(33335),I=n(46189),E=n(89250),D=n(92432),L=I.Z.demoSlug,N=(0,u.default)(o.Button).withConfig({displayName:"headerButtons__StyledButton",componentId:"sc-11mwk9m-0"})(["&&{padding:2px 16px;font-size:12px;height:auto;width:auto;min-width:96px;}"]),O=function(){var e=(0,E.s0)();return a.createElement(o.Flex,{gap:4},a.createElement(T.Z,{href:"https://learn.netdata.cloud/docs/architecture/deployment-strategies",rel:"noopener noreferrer",target:"_blank"},"Possible Deployment Strategies"),!window.envSettings.onprem&&a.createElement(N,{"data-ga":"no-nodes-view::click-demo::no-nodes-header",flavour:"default",onClick:function(t){e("/spaces/".concat(L)),(0,D.L)("no-nodes-view","click-demo","no-nodes-header"),t.preventDefault()},label:"Live Demo"}))},R=n(8741),A=function(){return a.createElement(a.Fragment,null,a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-memberSection",gap:1},a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-memberHeader",gap:4,height:10,padding:[0,3]},a.createElement(_,{"data-testid":"noNodesView-memberHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.Flex,{justifyContent:"between",flex:!0},a.createElement(o.H3,{color:"textDescription","data-testid":"noNodesView-memberHeaderText"},"You are a member and only space admins can connect new nodes"),a.createElement(O,null))),a.createElement(o.Flex,{"data-testid":"noNodesView-memberDescription",padding:[0,0,2,13]},a.createElement(o.Text,{color:"textDescription","data-testid":"noNodesView-memberDescriptionText"},"Please contact anyone from the list in order to do so"))),a.createElement(o.Flex,{"data-testid":"noNodesView-memberAdminsListSection",padding:[0,0,0,12]},a.createElement(y,{"data-testid":"noNodesView-memberAdminsList"})))},F=function(e){var t=e.videoId,n=(0,c.UL)(),h=(0,l.Z)(n),u=(0,r.Z)(h,2),m=u[0],p=u[1],f=p.onAddNodes,g=p.selectedNodes,b=m.claimedNodeIds.length>0,y=(0,i.Z)(!0),k=(0,r.Z)(y,2),T=k[0],x=k[1],I=(0,q.gI)("node:Create");return a.createElement(P.Z,{column:!1,"data-testid":"noNodesViewPage",gap:12,padding:[6],margin:[0,0,8],rightBar:a.createElement(M.Z,null),overflow:"auto"},a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-cmdSection",flex:{grow:0,shrink:1},width:"100%",gap:2},a.createElement(o.Flex,{"data-testid":"noNodesView-warningBanner",alignItems:"center",background:"warningBackground",gap:4,height:{min:10},padding:[0,3],round:!0},a.createElement(v,{"data-testid":"noNodesView-warningBannerIcon",name:"exclamation",color:"warning"}),a.createElement(o.Text,{color:["neutral","bluebayoux"],"data-testid":"noNodesView-warningBannerText"},"You have no nodes.")),I&&a.createElement(a.Fragment,null,a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-adminSection",justifyContent:"between",onClick:b?x:null,cursor:b?"pointer":null},a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-adminHeader",gap:4,height:10,padding:[0,3]},a.createElement(_,{"data-testid":"noNodesView-adminHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.H3,{"data-testid":"noNodesView-adminHeaderText",color:"textDescription"},"Connect new nodes")),a.createElement(o.Flex,{gap:4,alignItems:"center"},a.createElement(O,null),b&&a.createElement(w,{closed:!T,"data-testid":"noNodesView-adminClaimedNodesIcon",name:"chevron_down",color:"textLite"}))),a.createElement(o.Collapsible,{"data-testid":"noNodesView-adminClaimNodesContainer",open:T},a.createElement(o.Flex,{"data-testid":"noNodesView-adminClaimNodes",padding:[0,0,0,12]},a.createElement(R.Z,null)))),!I&&a.createElement(A,null),b&&a.createElement(a.Fragment,null,a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-availableNodesHeader",gap:4,height:10,padding:[0,3]},a.createElement(_,{"data-testid":"noNodesView-availableNodesHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.H3,{color:"textDescription","data-testid":"noNodesView-availableNodesHeaderText"},"Add already available nodes")),a.createElement(o.Flex,{height:"100%","data-testid":"noNodesView-availableNodesContainer",padding:[0,0,0,12]},a.createElement(d.Z,(0,s.Z)({"data-testid":"noNodesView-availableNodesList"},m,{onAddNodes:f,canAddNodes:!!g.length,padding:[2,0,8]}))))),t&&a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-videoSection",flex:{shrink:0,grow:0}},a.createElement(C.Z,{"data-testid":"noNodesView-onboardingVideo",height:296,width:520,videoId:t}),a.createElement(S,{"data-testid":"noNodesView-needHelp",padding:[8,0]})))}},73531:function(e,t,n){n.d(t,{Z:function(){return E}});var s,r=n(87462),a=n(4942),o=n(45987),i=(n(21249),n(57640),n(9924),n(67294)),c=n(15557),l=n(54316),d=n(29814),h=n(72843),u=n(36459),m=n(29439),p=(n(19601),n(46667)),f=n(65211),g=n(97945),b=n(29400),y=n(31509),v=n(50308),_=n.n(v),w=n(3581),k=n(62200),T="Dismissible",x="Collapsed",S={info:{iconName:"information",color:{active:"success",notActive:"textLite"},width:"19px",dataTestId:"nodeInfo-alertsTab",Content:b.Z,label:"Info"},alerts:{iconName:"alarm_bell",color:{active:"success",notActive:"textLite"},width:"14px",Content:y.Z,dataTestId:"nodeInfo-alertsTab",label:"Alerts"}},C=(s={},(0,a.Z)(s,T,(function(){var e=(0,f.d)({resetOnUnmount:!0}),t=(0,m.Z)(e,3);return{isOpen:!!t[0],onClose:t[2],isDismissible:!0,onToggle:_()}})),(0,a.Z)(s,x,(function(e){var t=e.defaultCollapsedState,n=e.nodeId,s=(0,p.Z)(t),r=(0,m.Z)(s,3),o=r[0],c=r[1],l=r[2],d=(0,w.j)(k.G1,n),h=(0,m.Z)(d,2),u=h[0],f=h[1],g=(0,i.useRef)(u),b=(0,i.useCallback)((function(){o||f((0,a.Z)({},n,g.current)),c()}),[o]);return(0,i.useEffect)((function(){o||(g.current=u,f((0,a.Z)({},n,0)))}),[o]),(0,i.useEffect)((function(){0!==u&&l()}),[u]),{isOpen:o,onClose:_(),isDismissible:!1,onToggle:b}})),s),P=function(e){var t=e.showCollapsed,n=e.tabs,s=void 0===n?S:n,r=e.defaultCollapsedState,a=void 0===r||r,o=(0,f.d)({resetOnUnmount:!0}),i=(0,m.Z)(o,1)[0],c=(0,g.Ne)([i]),l=(0,m.Z)(c,1)[0],d=t?x:T,h=Object.assign({},((0,u.Z)(s),s)),p=C[d]({defaultCollapsedState:a,nodeId:l.id}),b=p.isOpen,y=p.onClose,v=p.isDismissible,_=p.onToggle,P=(0,w.j)(d===x?k.G1:k.$9,l.id),M=(0,m.Z)(P,2);return{isOpen:b,onClose:y,isDismissible:v,onToggle:_,availableTabs:h,node:l,selectedTab:M[0],setSelectedTab:M[1],nodeIds:[l.id]}},M=["showCollapsed","tabsToShow"],q=function(e){var t=e.isActive,n=e.color,s=e.width,r=e.name;return i.createElement(c.Icon,{name:r,color:t?n.active:n.notActive,width:s})},I=function(e){var t=e.showCollapsed,n=e.tabsToShow,s=void 0===n?["info","alerts"]:n,u=(0,o.Z)(e,M),m=P({showCollapsed:t}),p=m.isOpen,f=m.onToggle,g=m.onClose,b=m.node,y=m.availableTabs,v=m.selectedTab,_=m.setSelectedTab,w=m.nodeIds;return(0,i.useLayoutEffect)((function(){var e=setTimeout((function(){return window.dispatchEvent(new Event("resize"))}),400);return function(){return clearTimeout(e)}}),[p]),i.createElement(l.ZP,{collapsedComponent:t&&i.createElement(d.Z,{onClickTab:function(e){f(),_((0,a.Z)({},b.id,e))},tabsToShow:s,availableTabs:y}),isOpen:p,onClose:g,onToggle:f,header:t?i.createElement(h.Z,{onToggle:f,isOpen:p,title:"Single Node"}):i.createElement(l.Dh,{isOpen:p,onClose:g,node:b})},i.createElement(c.Tabs,{selected:v,onChange:function(e){return _((0,a.Z)({},b.id,e))},noDefaultBorder:!0,column:!0,overflow:"hidden",height:"100%"},s.map((function(e,t){var n=y[e],s=n.iconName,a=n.color,o=n.width,l=n.Content,d=n.dataTestId;return i.createElement(c.Tab,{"data-testid":d,maxWidth:"50%",key:s,small:!0,label:i.createElement(q,{isActive:v===t,name:s,color:a,width:o})},i.createElement(c.Flex,{column:!0,overflow:{vertical:"auto"},height:"calc(100% - 60px)",position:"relative",gap:4,padding:[1,3]},i.createElement(l,(0,r.Z)({nodeIds:w,node:b},u))))}))))},E=(0,i.memo)(I)},31509:function(e,t,n){n.d(t,{Z:function(){return y}});var s=n(29439),r=n(93433),a=(n(2707),n(21249),n(57640),n(9924),n(67294)),o=n(15557),i=n(77796),c=n(12008),l=n(82351),d=(n(92222),n(60677)),h=n(89405),u=n(50358),m=(0,d.default)(o.TextSmall).withConfig({displayName:"alertItem__ClickableTextSmall",componentId:"sc-10tk55c-0"})(["cursor:pointer;transition:opacity 0.3s ease-in-out;&:hover{opacity:0.7;}"]),p=(0,d.default)(o.Flex).withConfig({displayName:"alertItem__StyledFlex",componentId:"sc-10tk55c-1"})(["&:last-child{border:none;}"]),f=function(e){var t=e.alert,n=e.onAlertClick,s=t.value,r=t.instance,i=t.lastStatusChange,c=t.id,l=t.status,d=t.units,f=t.name,g=(0,h.rA)(),b=g.localeTimeString,y=g.localeDateString,v=(0,a.useMemo)((function(){var e=new Date(1e3*i);return isNaN(e.valueOf())?"":"".concat(y(e,{long:!1})," ").concat(b(e,{secs:!1}))}),[i,b,y]),_=(0,a.useCallback)((function(){n({alertId:c})}),[]);return a.createElement(p,{column:!0,padding:[4,0],gap:2,border:{color:"tabsBorder",side:"bottom"},"data-testid":"alertItem","data-test-name":"alertItem-".concat(f)},a.createElement(m,{wordBreak:"break-all",strong:!0,onClick:_,"data-testid":"alertItem-chartId"},r),a.createElement(m,{onClick:_,"data-testid":"alertItem-alertName"},f),a.createElement(o.Flex,{alignItems:"center",justifyContent:"between",margin:[1,0,0]},a.createElement(u.Z,{loaded:!0,status:l,units:d,value:s,flex:!1,"data-testid":"alertItem-alertValuePill"}),a.createElement(o.TextMicro,{color:"textLite","data-testid":"alertItem-alertDate"},v)))},g=n(61294),b=function(e,t){return e.status===t.status?0:"critical"===e.status?-1:1},y=function(e){var t=e.nodeIds,n=(0,i.rw)(t),d=(0,c.ER)(n),h=(0,a.useMemo)((function(){return(0,r.Z)(d).sort(b)}),[d]),u=(0,g.Z)(),m=(0,s.Z)(u,4),p=m[0],y=m[1],v=m[3],_=d.length?"(".concat(d.length,")"):"";return a.createElement(o.Flex,{width:"100%",column:!0,overflow:"hidden",padding:[2,0]},a.createElement(o.Flex,{column:!0,gap:5},a.createElement(l.Z,{content:"Currently Active alerts",align:"bottom"},a.createElement(o.TextBig,{strong:!0,"data-testid":"nodeAlertsView-activeAlerts-header"},"Alerts ",_)),!d.length&&a.createElement(o.Flex,{column:!0,gap:8,padding:[0,5],"data-testid":"nodesAlertsView-blankSlate",alignItems:"center"},a.createElement(o.Icon,{name:"checkmark",width:"90px",height:"90px"}),a.createElement(o.H4,{textAlign:"center"},"This node has no active alerts, you are all good!"))),a.createElement(o.Flex,{column:!0,overflow:{vertical:"auto"}},h.map((function(e){return a.createElement(f,{key:e.id,alert:e,onAlertClick:y})}))),p&&v)}},29400:function(e,t,n){n.d(t,{Z:function(){return x}});var s=n(29439),r=n(67294),a=n(15557),o=n(97945),i=n(76184),c=n(32586),l=n(89050),d=function(e){var t=e.node.labels||{},n=t._cloud_instance_region,s=t._cloud_instance_type,a=t._cloud_provider_type;return(0,l.O2)(n)&&(0,l.O2)(s)&&(0,l.O2)(a)?null:r.createElement(i.Z,{name:"Cloud Instance Info"},r.createElement(c.Z,{iconName:"ipNetworking",name:"Cloud provider",size:"small",testId:"rightBar-nodeInfoContent-cloudProvider"},(0,l.MC)(a)),r.createElement(c.Z,{iconName:"universe",name:"Cloud region",size:"small",testId:"rightBar-nodeInfoContent-cloudRegion"},(0,l.MC)(n)),r.createElement(c.Z,{iconName:"disk",name:"Instance type",size:"small",testId:"rightBar-nodeInfoContent-instanceType"},(0,l.MC)(s)))},h=n(83925),u=n(11389),m=function(e){var t=e.node,n=(0,l.Q5)(t.state);return r.createElement(i.Z,{link:"https://learn.netdata.cloud/docs/agent/aclk",name:"Connection"},r.createElement(c.Z,{size:"small",name:"Status",iconName:"integrations",testId:"rightBar-connectionGroup-connectionStatus"},r.createElement(u.Z,{rawState:n})),r.createElement(c.Z,{size:"small",name:"Netdata Agent",iconName:"netdata",testId:"rightBar-connectionGroup-agentVersion"},t.version),t.updateSeverity&&r.createElement(c.Z,{size:"small",name:"Update Status",iconName:"update",testId:"rightBar-connectionGroup-agentVersion"},r.createElement(h.Z,{name:t.name,os:t.os.id,container:t.hw.container,warningLevel:t.updateSeverity,labels:t.labels||{},version:t.version,text:t.updateSeverity})))},p=(n(21249),n(57640),n(9924),n(4942));n(85827),n(41539),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,p.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=[{name:"MySQL",title:"MySQL",iconName:"serviceMySQL",logoFilename:"mysql.svg",category:"Databases",collectors:["python.d.plugin:mysql","go.d.plugin:mysql"],contexts:["mysql.queries","mysql.net","mysql.connections"],priority:1},{name:"MariaDB",title:"MariaDB",iconName:"serviceMariaDB",logoFilename:"mariadb.svg",category:"Databases",collectors:["python.d.plugin:mysql","go.d.plugin:mysql"],contexts:["mysql.queries","mysql.net","mysql.connections"],priority:2},{name:"Oracle Database",title:"Oracle Database",iconName:"osOracle",logoFilename:"oracle.svg",category:"Databases",collectors:["python.d.plugin:oracledb"],contexts:["oracledb.session_count","oracledb.physical_disk_read_writes","oracledb.tablespace_usage_in_percent"],priority:3},{name:"PostgreSQL",title:"PostgreSQL",iconName:"servicePostgreSQL",logoFilename:"postgresql.svg",category:"Databases",collectors:["python.d.plugin:postgres"],contexts:["postgres.checkpointer","postgres.archive_wal","postgres.db_size"],priority:4},{name:"MongoDB",title:"MongoDB",iconName:"serviceMongoDB",logoFilename:"mongodb.svg",category:"Databases",collectors:["python.d.plugin:mongodb"],contexts:["mongodb.active_clients","mongodb.read_operations","mongodb.write_operations"],priority:5},{name:"ElasticSearch",title:"ElasticSearch",iconName:"serviceElasticSearch",logoFilename:"elasticsearch.svg",category:"Databases",collectors:["python.d.plugin:elasticsearch"],contexts:["elastic.search_performance_total","elastic.index_performance_total","elastic.index_segments_memory"],priority:6},{name:"CouchDB",title:"CouchDB",iconName:"serviceCouchDB",logoFilename:"couchdb.svg",category:"Databases",collectors:["python.d.plugin:couchdb"],contexts:["couchdb.activity","couchdb.response_codes"],priority:7},{name:"Proxy SQL",title:"Proxy SQL",iconName:"serviceProxySQL",logoFilename:"proxysql.svg",category:"Databases",collectors:["python.d.plugin:proxysql"],contexts:["proxysql.questions","proxysql.pool_status","proxysql.pool_overall_net"],priority:8},{name:"Redis",title:"Redis",iconName:"serviceRedis",logoFilename:"redis.svg",category:"Databases",collectors:["python.d.plugin:redis"],contexts:["redis.operations","redis.net","redis.connections"],priority:9},{name:"MemCached",title:"MemCached",iconName:"serviceMemCached",logoFilename:"memcached.svg",category:"Databases",collectors:["python.d.plugin:memcached"],contexts:["memcached.cache","memcached.net","memcached.connections"],priority:10},{name:"RethinkDB",title:"RethinkDB",iconName:"serviceRethinkDB",logoFilename:"rethinkdb.svg",category:"Databases",collectors:["python.d.plugin:rethinkdbs"],contexts:["rethinkdb.cluster_queries","rethinkdb.cluster_clients_active","rethinkdb.cluster_connected_servers"],priority:11},{name:"Solr",title:"Solr",iconName:"serviceSolr",logoFilename:"solr.svg",category:"Databases",collectors:["go.d.plugin:solr"],contexts:["solr.search_requests","solr.update_requests"],priority:12},{name:"RabbitMQ",title:"RabbitMQ",iconName:"serviceRabbitMQ",logoFilename:"rabbitmq.svg",category:"Messaging",collectors:["python.d.plugin:rabbitmq","go.d.plugin:rabbitmq"],contexts:["rabbitmq.queued_messages","rabbitmq.erlang_run_queue"],priority:1},{name:"Beanstalkd",title:"Beanstalkd",iconName:"serviceBeanstalk",logoFilename:"beanstalkd.svg",category:"Messaging",collectors:["python.d.plugin:beanstalk"],contexts:["beanstalk.total_jobs_rate","beanstalk.connections_rate","beanstalk.current_tubes"],priority:2},{name:"Apache",title:"Apache",iconName:"serviceApache",logoFilename:"apache.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:apache","go.d.plugin:apache"],contexts:["apache.requests","apache.connections","apache.net"],priority:1},{name:"nginx",title:"nginx",iconName:"serviceNginx",logoFilename:"nginx.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:nginx","go.d.plugin:nginx"],contexts:["nginx.requests","nginx.connections"],priority:2},{name:"nginx+",title:"nginx+",iconName:"serviceNginxPlus",logoFilename:"nginx-plus.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:nginx_plus"],contexts:["nginx_plus.requests_total","nginx_plus.connections_statistics"],priority:3},{name:"lighthttpd",title:"lighthttpd",iconName:"serviceLighthttpd",logoFilename:"lighthttpd.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:lighttpd","go.d.plugin:lighttp"],contexts:["lighttpd.requests","lighttpd.net"],priority:4},{name:"lighthttpd2",title:"lighthttpd2",iconName:"serviceLighthttpd2",logoFilename:"lighthttpd.svg",category:"Web, Proxies, LBs, Streaming",collectors:["go.d.plugin:lighttpd2"],contexts:["lighttpd2.requests","lighttpd2.traffic"],priority:5},{name:"LiteSpeed",title:"LiteSpeed",iconName:"serviceLiteSpeed",logoFilename:"litespeed.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:litespeed"],contexts:["litespeed.requests","litespeed.requests_processing"],priority:6},{name:"Tomcat",title:"Tomcat",iconName:"serviceApacheTomcat",logoFilename:"tomcat.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:tomcat"],contexts:["tomcat.accesses","tomcat.processing_time","tomcat.bandwidth"],priority:7},{name:"PHP FPM",title:"PHP FPM",iconName:"servicePhpFpm",logoFilename:"php-fpm.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:phpfm"],contexts:["phpfpm.performance","phpfpm.requests","phpfpm.connections"],priority:8},{name:"HAproxy",title:"HAproxy",iconName:"serviceHAProxy",logoFilename:"haproxy.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:haproxy"],contexts:["haproxy_f.scur","haproxy_f.bin","haproxy_f.bout"],priority:9},{name:"Squid",title:"Squid",iconName:"serviceSquid",logoFilename:"squid.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:squid"],contexts:["squid.clients_requests","squid.clients_net"],priority:10},{name:"Traefik",title:"Traefik",iconName:"serviceTraefik",logoFilename:"traefik.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:traefik"],contexts:["traefik.response_codes"],priority:11},{name:"Varnish",title:"Varnish",iconName:"serviceVarnish",logoFilename:"varnish.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:varnish"],contexts:["varnish.session_connection","varnish.client_requests"],priority:12},{name:"IPVS",title:"IPVS",iconName:"serviceIPVS",logoFilename:"load-balancer.svg",category:"Web, Proxies, LBs, Streaming",collectors:["proc.plugin:/proc/net/ip_vs_stats"],contexts:["ipvs.sockets","ipvs.packets","ipvs.net"],priority:13},{name:"Web Log",title:"Web Log",iconName:"serviceWebLog",logoFilename:"log-file.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:web_log","go.d.plugin:web_log"],contexts:["web_log.response_codes","web_log.bandwidth"],priority:14},{name:"IPFS",title:"IPFS",iconName:"serviceIPFS",logoFilename:"ipfs.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:ipfs"],contexts:["ipfs.bandwidth","ipfs.peers"],priority:15},{name:"IceCast Media Streaming",title:"IceCast Media Streaming",iconName:"serviceIceCast",logoFilename:"icecast.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:icecast"],contexts:["icecast.listeners"],priority:16},{name:"RetroShare",title:"RetroShare",iconName:"serviceRetroShare",logoFilename:"retroshare.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:retroshare"],contexts:["retroshare.bandwidth","retroshare.peers"],priority:17},{name:"HTTP Check",title:"HTTP Check",iconName:"serviceHTTPCheck",logoFilename:"server-connection.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:httpcheck","go.d.plugin:httpcheck"],contexts:["httpcheck.responsetime","httpcheck.status"],priority:18},{name:"x509 Check",title:"x509 Check",iconName:"serviceX509Check",logoFilename:"data-encryption.svg",category:"Web, Proxies, LBs, Streaming",collectors:["go.d.plugin:x509check"],contexts:["x509check.time_until_expiration"],priority:19}].reduce((function(e,t){return g(g({},e),{},(0,p.Z)({},t.name,t))}),{}),y=function(e){var t;return(null===(t=b[e])||void 0===t?void 0:t.iconName)||"services"},v=function(e){var t,n=e.node;return null!==(t=n.services)&&void 0!==t&&t.length?r.createElement(i.Z,{link:"https://learn.netdata.cloud/docs/agent/collectors/collectors#service-and-application-collectors",name:"Services"},n.services.map((function(e){return r.createElement(c.Z,{size:"small",key:e,iconName:y(e),name:e,testId:"rightBar-ServicesGroup-service-".concat(e)})}))):null},_=(n(23157),function(e){var t=e.node,n=(void 0===t?{}:t).labels,s=void 0===n?{}:n,a=Object.keys(s).filter((function(e){return!e.startsWith("_")}));return r.createElement(i.Z,{link:"https://learn.netdata.cloud/guides/using-host-labels",name:"Host labels",isEnabled:a.length>0,noDataLabel:"No Data"},a.length>0&&a.map((function(e){return r.createElement(c.Z,{size:"small",key:e,name:e,testId:"rightBar-hostLabelsGroup-label"},s[e])})))}),w=(n(38862),n(52428)),k=function(e){var t=e.node;return r.createElement(i.Z,{name:"Files"},r.createElement(a.Flex,{gap:1,padding:[0,1],alignItems:"center"},r.createElement(a.Box,{sx:{fontWeight:"500",letterSpacing:"1px"},as:a.Text,color:"textLite"},"{;}"),r.createElement(a.TextSmall,null,"View node info in"),r.createElement(a.Flex,{cursor:"pointer",gap:1,onClick:(0,w.J)(JSON.stringify(t),{text:"JSON copied to clipboard"})},r.createElement(a.TextSmall,{color:"primary"},"json"),r.createElement(a.Icon,{color:"primary",size:"small",name:"copy"}))))},T=(0,r.memo)(k),x=function(e){var t,n=e.nodeIds,h=(0,o.Ne)(n),u=(0,s.Z)(h,1)[0],p=(0,l.jo)(u.container,u.virtualization);return r.createElement(a.Flex,{column:!0,gap:1,overflow:{horizontal:"hidden",vertical:"auto"},padding:[2,1,2,0],width:"100%"},r.createElement(a.TextBig,{strong:!0},"Info"),r.createElement(a.Flex,{column:!0,padding:[2,0,3],border:{side:"bottom",color:"borderSecondary"}},false,r.createElement(a.TextSmall,{"data-testid":"rightBar-nodeInfoContent-hostname",strong:!0},"Hostname: ",u.name)),r.createElement(m,{node:u}),r.createElement(d,{node:u}),r.createElement(i.Z,{name:"System info"},r.createElement(c.Z,{size:"small",name:"Type",iconName:"virtualization",testId:"rightBar-nodeInfoContent-type"},r.createElement(a.Pill,{hollow:!0,icon:p.icon,iconSize:p.iconSize,flavour:"neutral"},p.label)),r.createElement(c.Z,{size:"small",name:"O/S version",iconName:"database",testId:"rightBar-nodeInfoContent-osVersions"},(0,l.cB)(u.os.nm,u.os.v,", ")),r.createElement(c.Z,{iconName:"viewSingleNode",name:"Architecture",size:"small",testId:"rightBar-nodeInfoContent-architecture"},(0,l.MC)(u.hw.architecture)),!(null===(t=u.os)||void 0===t||!t.kernel)&&r.createElement(c.Z,{size:"small",name:"Kernel",iconName:"metrics_explorer",testId:"rightBar-nodeInfoContent-kernel"},(0,l.cB)(u.os.kernel.nm,u.os.kernel.v,", ")),r.createElement(c.Z,{size:"small",name:"CPU",iconName:"cpu",testId:"rightBar-nodeInfoContent-cpu"},(0,l.ys)(u.hw.cpuFrequency)," (",(0,l.MC)(u.hw.cpus,1===u.hw.cpus?"Core":"Cores"),")"),r.createElement(c.Z,{size:"small",name:"Memory",iconName:"ram",testId:"rightBar-nodeInfoContent-ram"},(0,l.MC)((0,l.yo)(u.hw.memory),"RAM")),r.createElement(c.Z,{size:"small",name:"Hard disk size",iconName:"disk",testId:"rightBar-nodeInfoContent-disk"},(0,l.yo)(u.hw.diskSpace))),r.createElement(_,{node:u}),r.createElement(v,{node:u}),r.createElement(T,{node:u}))}},65211:function(e,t,n){n.d(t,{d:function(){return i}});var s=n(93433),r=(n(92222),n(4480)),a=n(77823),o=(0,r.cn)({key:"selectedNode",default:null}),i=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).resetOnUnmount,t=void 0!==e&&e,n=(0,r.rb)(o);return(0,a.Z)((function(){t&&n()})),[].concat((0,s.Z)((0,r.FV)(o)),[n])}},3581:function(e,t,n){n.d(t,{j:function(){return l}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942),r=n(4480);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var i=(0,r.xu)({key:"selectedTab",default:{}}),c=(0,r.CG)({key:"selectedTabsState",get:function(e){var t=e.id,n=e.key;return function(e){var s=(0,e.get)(i(t));return n?s[n]:s}},set:function(e){var t=e.id,n=e.key;return function(e,s){(0,e.set)(i(t),(function(e){return{id:t,selectedTabs:o(o({},e[n]),s)}}))}}}),l=function(e,t){var n,s,a="selectedTabs",o=(n=e,s=a,(0,r.sJ)(c({id:n,key:s}))),i=(o?o[t]:0)||0,l=function(e,t){return(0,r.Zl)(c({id:e,key:t}))}(e,a);return[i,l,o]}},2077:function(e,t,n){n.d(t,{mt:function(){return S},yp:function(){return x},VG:function(){return k},d5:function(){return C},$g:function(){return T}});n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070);var s=n(29439),r=n(4942),a=(n(92222),n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(15581),n(34514),n(54747),n(82772),n(26699),n(32023),n(61874),n(9653),n(67294)),o=n(4480),i=n(95248),c=n(18761),l={byContext:{},loaded:!1,loading:!1,method:null,options:null,group:"average",totalDimensionsCount:0},d=(0,o.xu)({key:"weights",default:l});function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,o.CG)({key:"weightsState",get:function(e){return function(t){return(0,t.get)(d(e))}},set:function(e){return function(t,n){return(0,t.set)(d(e),n)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),p={ci:"context",ni:"node",ii:"instance",di:"dimension"},f=function(e,t){return function(n){return(0,r.Z)({},p[e.name],t[e.dictionary][n])}},g={ni:f,ii:function(e,t){return function(n,s,a){return(0,r.Z)({},p[e.name],t[e.dictionary][n]?"".concat(t[e.dictionary][n],"@").concat(t.nodes[s[a.ni]]):null)}},ci:f,di:f,row_type:function(e){return function(t){return{type:e.value[t]}}},weight:function(){return function(e){return{weight:e}}},timeframe:function(e){return function(t){return{highlight:e.labels.reduce((function(e,n,s){return u(u({},e),{},(0,r.Z)({},n,t[s]))}),{})}}},"baseline timeframe":function(e){return function(t){return{baseline:e.labels.reduce((function(e,n,s){return u(u({},e),{},(0,r.Z)({},n,t[s]))}),{})}}}},b={contexts:"ci",nodes:"ni",instances:"ii",dimensions:"di"},y={contexts:"id",nodes:"nodeId",instances:"id",dimensions:"id"},v=function(e,t){return null===e||e>t?t:e},_=function(e,t){return null===e||e<t?t:e},w=function(e){var t=e.flavour,n=e.data,s=e.aggregation,r=e.options,a={},o=0;if("rhs"==t){var i,c=(null===(i=n.v_schema)||void 0===i?void 0:i.items)||[];a=n.result.reduce((function(e,t){var n=t.id,r=t.v;return e[n]=c.reduce((function(e,t,n){var a=t.name,o=t.labels.indexOf(s);return e[a]=r[n][o],e}),{}),e}),{})}else{var l=function(e){var t=Object.keys(e.dictionaries).reduce((function(t,n){t[n]||(t[n]={});var s=y[n];return e.dictionaries[n].forEach((function(e){return t[n][e[b[n]]]="nodeId"===s?e.nd||e.mg:e[s]})),t}),{}),n={},s=e.schema.items.reduce((function(e,s,r){var a=(g[s.name]||g.default)(s,t);return e.push(a),n[s.name]=r,e}),[]);return function(e){return e.reduce((function(t,r,a){return u(u({},t),s[a](r,e,n))}),{})}}(n);a=n.result.reduce((function(e,t){var n=l(t),s=n.dimension,a=n.node,i=n.context,c=n.instance,d=n.type,h=n.weight,u=n.highlight,m=n.baseline;if("node"===d)return e;var p,f,g=(p=e,f=i,function(e,t,n,s,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:v;n&&(n&&"undefined"===typeof p[f][t][n]&&(p[f][t][n]={}),"undefined"===typeof p[f][t][n][e]&&(p[f][t][n][e]=null),s&&(p[f][t][n][e]=a(p[f][t][n][e],r)))});e[i]||(e[i]={dimensions:{},instances:{},nodes:{},weight:null});var b=!!r&&r.includes("anomaly-bit");g("weight","dimensions",s,"dimension"===d,h,b?_:v),g("weight","instances",c,"instance"===d,h,b?_:v),g("weight","nodes",a,"node"===d,h,b?_:v);var y=u?100*u.anomaly_count/u.count:0;g("arHighlight","dimensions",s,"dimension"===d,y,_),g("arHighlight","instances",c,"instance"===d,y,_),g("arHighlight","nodes",a,"node"===d,y,_);var w=m?100*(m.anomaly_count-u.anomaly_count)/(m.count-u.count)===0?1:m.count-u.count:0;g("arBaseline","dimensions",s,"dimension"===d,w,_),g("arBaseline","instances",c,"instance"===d,w,_),g("arBaseline","nodes",a,"node"===d,w,_);var k=w?y/w:0;return g("score","dimensions",s,"dimension"===d,k,_),g("score","instances",c,"instance"===d,k,_),g("score","nodes",a,"node"===d,k,_),"context"===d?e[i].weight=null===e[i].weight||e[i].weight>h?h:e[i].weight:"dimension"===d&&(o+=1),e}),{})}return{byContext:a,totalDimensionsCount:o}},k=function(e,t,n){var s=(0,a.useRef)();return[(0,o._8)((function(r){var a=r.set;return function(r){var o=r.flavour,i=r.highlightAfter,d=r.highlightBefore,h=r.baselineAfter,p=r.baselineBefore,f=r.method,g=r.options,b=r.group,y=r.context,v=r.nodeIds,_=r.aggregation,k=r.groupBy;return a(m(e),u(u({},l),{},{loading:!0})),s.current&&s.current.cancel(),s.current=(0,c.B3)(t,n,{highlightAfter:i,highlightBefore:d,baselineAfter:h,baselineBefore:p,method:f,options:g,group:b,context:y,nodeIds:v,aggregation:_,groupBy:k}),s.current.then((function(t){var n=t.data,s=w({flavour:o,data:n,aggregation:_,options:g}),r=s.byContext,i=s.totalDimensionsCount;a(m(e),{loading:!1,loaded:!0,byContext:r,options:g,totalDimensionsCount:i,method:f,group:b,error:null})})).catch((function(t){var n;if(!t.isCancel)throw a(m(e),u(u({},l),{},{error:(null===t||void 0===t||null===(n=t.response)||void 0===n?void 0:n.data)||t})),t}))}}),[e]),(0,o._8)((function(t){var n=t.reset;return function(){s.current&&s.current.cancel(),n(m(e))}}),[e])]},T=function(e){return(0,o.sJ)(m(e))},x=function(e){return(0,o.rb)(m(e))},S=.01,C=function(e,t,n){var r=k(e,t,n),o=(0,s.Z)(r,2),c=o[0],l=o[1],d=T(e),h=d.loaded,m=d.loading,p=d.byContext,f=d.totalDimensionsCount,g=d.options,b=function(){var e=(0,i.by)("threshold");return e?Number.parseFloat(e):S}(),y=(0,a.useMemo)((function(){var e=0,t=null===g||void 0===g?void 0:g.includes("raw"),n=Object.keys(p).reduce((function(n,s){var r=Object.keys(p[s].dimensions).reduce((function(e,n){return!t&&p[s].dimensions[n].weight>b||(e[n]=p[s].dimensions[n]),e}),{}),a=Object.keys(r).length;return e+=a,a?(n[s]=u(u({},p[s]),{},{dimensions:r}),n):n}),{});return[n,Object.keys(n),e]}),[h,b]),v=(0,s.Z)(y,3),_=v[0],w=v[1],x=v[2];return{threshold:b,metadata:_,contexts:w,dimensionsCount:x,totalDimensionsCount:f,loaded:h,loading:m,getWeights:c,resetWeights:l}}},89479:function(e,t,n){n.d(t,{W2:function(){return p},Q7:function(){return k},PP:function(){return _},dA:function(){return w},Ni:function(){return C},pT:function(){return P},MS:function(){return S},If:function(){return M},jg:function(){return y},QX:function(){return v},hH:function(){return f},Cd:function(){return T},qU:function(){return g},z3:function(){return x},w4:function(){return b}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(93433),r=n(4942),a=(n(47941),n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(85827),n(25387),n(2490),n(72608),n(64211),n(41874),n(67294)),o=n(4480),i=n(37394),c=n(37518),l=n(41331),d={ids:(0,o.xu)({key:"roomChartIds",default:[]}),updatedAt:(0,o.xu)({key:"roomChartsUpdatedAt",default:""}),loaded:(0,o.xu)({key:"roomChartsLoaded",default:!1}),error:(0,o.xu)({key:"roomChartsError",default:null}),versions:(0,o.xu)({key:"versions",default:{}})};function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,o.xu)({key:"roomsChartBatchState",default:{}}),p=(0,o.CG)({key:"roomChartState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(d[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,s){(0,e.set)(d[n](t),s)}}}),f=function(e){return!!(0,o.sJ)(p({id:e,key:"loaded"}))},g=function(e){return(0,o.sJ)(p({id:e,key:"versions"}))},b=function(e){var t=(0,o.Zl)(p({id:e,key:"versions"}));return(0,a.useCallback)((function(e){return t((function(t){return e="function"===typeof e?e(t):e,(0,l.ZP)(t,e,{omit:["contextsSoftHash"]})?t:e}))}),[])},y=function(e){return(0,o.sJ)(p({id:e,key:"ids"}))},v=function(e,t){return(0,o.sJ)(p({id:e,key:t}))},_=(0,o.CG)({key:"roomChartsState",get:function(e){var t=e.id,n=e.key;return function(e){var s=(0,e.get)(m(t))||i.ak;return n?s[n]:s}},set:function(e){var t=e.id,n=e.key;return function(e,s){var a=e.set;"function"!==typeof s?Object.keys(s).length<1||a(m(t),(function(e){return u(u({},e),{},(0,r.Z)({},n,s))})):a(m(t),(function(e){return u(u({},e),{},(0,r.Z)({},n,s(e[n])))}))}}}),w=(0,o.CG)({key:"roomChartsState/ids",get:function(e){var t=e.roomId;return function(e){return(0,e.get)(d.ids(t))}},set:function(e){var t=e.roomId,n=e.merge,r=void 0===n||n;return function(e,n){(0,e.set)(d.ids(t),(function(e){var t=r?(0,s.Z)(new Set([].concat((0,s.Z)(n),(0,s.Z)(e)))):n;return(0,l.ZP)(t,e)?e:t}))}}}),k=(0,o.CG)({key:"roomChartsState/initialize",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.id,n=e.merge,s=void 0===n||n;return function(e,n){var r=e.set,a=n.values,o=n.merge;r(m(t),(function(e){var t=Object.keys(a).reduce((function(t,n){var r=a[n].id;return t[r]=u(u(u(u({},i.ak),(s||o)&&e[r]),a[n]),{},{loaded:!0}),t}),u({},e));return s&&(0,l.ZP)(t,e,{omit:["lastEntry","firstEntry","family"]})?e:t}))}}}),T=function(e,t){return(0,o.sJ)(_({id:e,key:t}))},x=function(e){return(0,o._8)((function(t){var n=t.set;return function(t){return n(m(e),t)}}),[])},S=function(e,t){return(0,o._8)((function(n){var s=n.snapshot;return function(n){return u(u({},s.getLoadable(_({id:e,key:n})).contents),(null===t||void 0===t?void 0:t[n])||{})}}),[e,t])},C=function(e){var t,n,s,r=(0,c.UL)(),a=(0,o.sJ)(m(r));return(null===(t=a[e])||void 0===t?void 0:t.visible)&&!(null!==(n=a[e])&&void 0!==n&&n.filteredOut)&&!(null!==(s=a[e])&&void 0!==s&&s.hidden)},P=function(e){var t=(0,c.UL)(),n=(0,o.sJ)(m(t));return e.some((function(e){var t,s,r;return(null===(t=n[e])||void 0===t?void 0:t.visible)&&!(null!==(s=n[e])&&void 0!==s&&s.filteredOut)&&!(null!==(r=n[e])&&void 0!==r&&r.hidden)}))},M=function(){var e=(0,c.UL)(),t=(0,o.sJ)(m(e));return(0,a.useCallback)((function(e){return e.some((function(e){var n,s,r;return(null===(n=t[e])||void 0===n?void 0:n.visible)&&!(null!==(s=t[e])&&void 0!==s&&s.filteredOut)&&!(null!==(r=t[e])&&void 0!==r&&r.hidden)}))}),[e,t])}},97363:function(e,t,n){n.d(t,{Z:function(){return D}});var s=n(87462),r=n(45987),a=n(67294),o=n(15557),i=n(37518),c=n(97193),l=n(8144),d=["roomId","flavour"],h=function(e){var t=e.roomId,n=e.flavour,o=(0,r.Z)(e,d),i=function(e){return(0,a.useMemo)((function(){return{Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasAlerts:!0},node:{textColor:"text",showAlerts:!0}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale",hasAlerts:!0},node:{textColor:"text",showAlerts:!0}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline",disabled:!0},node:{textColor:"textLite",disabled:!0}}}}),[e])}(n);return"singleNode"===n?null:a.createElement(l.Z,(0,s.Z)({title:"Nodes",testIdPrefix:"nodes",baseKey:t,extraKey:n,param:"selectedIds"},o),a.createElement(c.Z,{baseKey:t,extraKey:n,statusProps:i,background:"mainBackground",itemProps:{padding:[1,1,1,.5],maxLength:24},searchMargin:[0,0,2],height:{max:"300px"}}))},u=(n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(29439)),m=n(4942),p=(n(21249),n(57640),n(9924),n(69720),n(85827),n(41539),n(25387),n(2490),n(72608),n(57327),n(88449),n(59849),n(95248)),f=n(597),g=n(80239),b=n(46742);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var v=function(e){var t=e.extraKey,n=e.param,s=e.paramKey,r=(0,f.K)({extraKey:t,omit:[n],keepAll:!0}),o=(0,p.tk)(n,{extraKey:t});return(0,a.useMemo)((function(){return Object.entries(r.reduce((function(e,t){return e[t[s]]=(e[t[s]]||0)+(t.hidden?0:1),e}),function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},g.VP[n]||{}))).map((function(e){var t=(0,u.Z)(e,2);return{id:t[0],count:t[1]}}))}),[r.filter((function(e){return e.hidden})).length,o])},_=function(e){return e.id},w=function(e){var t=e.baseKey,n=e.param,s=e.paramKey,r=e.extraKey,o=e.testIdPrefix,i=e.title,c=v({param:n,extraKey:r,paramKey:s});return c.length?a.createElement(l.Z,{title:i,testIdPrefix:o,baseKey:t,extraKey:r,param:n},a.createElement(b.ZP,{param:n,baseKey:t,extraKey:r,testIdPrefix:o,collection:c,getValue:_,getLabel:_})):null},k=n(93433),T=(n(92222),n(86535),n(99244),n(74326),n(82499),n(64211),n(41874),n(26699),n(32023),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(91966)),x=n.n(T),S=n(48286),C=["baseKey","extraKey","param","testIdPrefix","itemsProps","itemProps"];function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var q=function(e){var t=e.baseKey,n=e.extraKey,i=e.param,c=e.testIdPrefix,d=e.itemsProps,h=e.itemProps,m=(0,r.Z)(e,C),g=function(e){var t=e.extraKey,n=e.param,s=(0,f.K)({extraKey:t,omit:[n],keepAll:!0}),r=(0,p.tk)(n,{extraKey:t});return(0,a.useMemo)((function(){return Object.entries(s.reduce((function(e,t){var n=t.type,s=t.component,r=t.hidden;return e[n]=e[n]||{count:0,children:{}},e[n].count=(e[n].count||0)+(r?0:1),e[n].children[s]=(e[n].children[s]||0)+(r?0:1),e}),{})).reduce((function(e,t){var n=(0,u.Z)(t,2),s=n[0],r=n[1],a=r.count,o=r.children;return e.push({id:s,count:a,children:Object.entries(o).map((function(e){var t=(0,u.Z)(e,2),n=t[0],r=t[1];return{value:"".concat(s,"|").concat(n),label:n,count:r,level:1}}))}),e}),[])}),[s.filter((function(e){return e.hidden})).length,r])}({param:i,extraKey:n}),b=(0,p.I0)(i,{defaultValue:[],key:t,extraKey:n}),y=(0,u.Z)(b,2),v=y[0],_=y[1];(0,S.Z)((function(){g.length&&v.length&&_((function(e){return e.filter((function(e){return g.some((function(t){return t.children.some((function(t){return t.value===e}))}))}))}))}),[g.length,_]);var w=(0,a.useCallback)((function(e){var t=e.value,n=e.checked;_((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?(0,k.Z)(new Set([].concat((0,k.Z)(e),(0,k.Z)(t)))):x()(e,t):n?[].concat((0,k.Z)(e),[t]):e.filter((function(e){return e!==t}))}))}),[_]),T=(0,a.useMemo)((function(){return function(e){var t=e.options,n=e.selected,s=e.itemsProps;if(!t.length)return[];var r=t.flatMap((function(e){return e.children.map((function(e){return e.value}))})),a=r.length===n.length,o=!a&&!!n.length;return[M(M({},s.head),{},{label:"Select all",value:r,selected:a,indeterminate:o})].concat((0,k.Z)(t.flatMap((function(e){var t=e.id,r=e.children,a=e.count,o=n.length&&!r.some((function(e){return!n.includes(e.value)})),i=!o&&n.length&&r.some((function(e){return n.includes(e.value)}));return r.reduce((function(e,t){var r=n.includes(t.value);return[].concat((0,k.Z)(e),[M(M(M({},s.row),t),{},{selected:r})])}),[M(M({},s.head),{},{label:t,value:r.map((function(e){return e.value})),selected:o,indeterminate:i,count:a})])}))))}({options:g,selected:v,itemsProps:d})}),[v,_,g]);return g.length?a.createElement(l.Z,{title:"Alert type & component",testIdPrefix:c,baseKey:t,extraKey:n,param:i},a.createElement(o.MenuDropdown,(0,s.Z)({hideShadow:!0,height:{max:"300px"},width:{max:"600px"},background:"mainBackground",overflow:"auto",padding:[0,0,3],"data-testid":"".concat(c,'-filter-selections"'),searchMargin:[0,0,2],items:T,onItemClick:w,value:v,"data-value":v.join(",")||"all-selected",hasSearch:g.length>5,itemProps:M({testIdPrefix:c},h)},m))):null};q.defaultProps=b.ZP.defaultProps;var I=q,E=["flavour"],D=(0,a.memo)((function(e){var t=e.flavour,n=(0,r.Z)(e,E),c=(0,i.UL)();return a.createElement(o.Flex,(0,s.Z)({column:!0,overflow:{vertical:"auto"},padding:[0,0,30]},n),"alerts"===t&&a.createElement(a.Fragment,null,a.createElement(w,{title:"Alert status",testIdPrefix:"alert-status",baseKey:c,extraKey:t,param:"alertStatuses",paramKey:"status"}),a.createElement(w,{title:"Alert class",testIdPrefix:"alert-class",baseKey:c,extraKey:t,param:"alertClasses",paramKey:"class"}),a.createElement(I,{testIdPrefix:"alert-type-component",baseKey:c,extraKey:t,param:"alertTypeComponents"}),a.createElement(w,{title:"Alert role",testIdPrefix:"alert-role",baseKey:c,extraKey:t,param:"alertRoles",paramKey:"recipient"})),a.createElement(h,{roomId:c,flavour:t}))}))},49887:function(e,t,n){n.d(t,{Z:function(){return Ze}});n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(87462),r=n(29439),a=n(45987),o=n(4942),i=(n(57327),n(41539),n(88449),n(2490),n(59849),n(47941),n(26699),n(32023),n(21249),n(57640),n(9924),n(67294)),c=n(60677),l=n(15557),d=n(46667),h=n(54316),u=n(29814),m=n(72843),p=n(31509),f=n(29400),g=n(82351),b=(n(23157),n(74916),n(15306),n(85993)),y=n(70982),v=n(28989),_=n(89479),w=n(62525),k=(n(85827),n(25387),n(72608),n(77601),n(5441)),T=n(2077),x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.flavour,s=t.weightKey,a=void 0===s?"weight":s,o=(0,k.E)(),c=(0,T.$g)({nodeIds:o,flavour:n}),l=c.loaded,d=c.byContext;return(0,i.useMemo)((function(){if(!l)return[!1,null,null];var t=null,n=e.reduce((function(e,n){var s;if(/::/.test(n)){var o=n.split("::");n=o[0],s=o[1]}var i=s?function(e,t,n,s){var r,a=s.max,o=s.maxWeightContext,i=s.weightKey;return null!==(r=e[t])&&void 0!==r&&null!==(r=r.dimensions)&&void 0!==r&&r[n]&&(e[t].dimensions[n][i]||0)>a?[e[t].dimensions[n][i]||0,t]:[a,o]}(d,n,s,{max:e,maxWeightContext:t,weightKey:a}):function(e,t,n){var s=n.max,r=n.maxWeightContext,a=n.weightKey;return e[t]&&(e[t][a]||0)>s?[e[t][a]||0,t]:[s,r]}(d,n,{max:e,maxWeightContext:t,weightKey:a}),c=(0,r.Z)(i,2),l=c[0],h=c[1];return t=h,l}),0);return[!0,n,t]}),[e,d])},S=["tooltipContent","children"],C=c.default.div.attrs((function(e){return{cursor:e.onClick?"pointer":"auto"}})).withConfig({displayName:"info__ComponentWrapper",componentId:"sc-m9u9yb-0"})([""]),P=function(e){var t=e.tooltipContent,n=e.children,r=(0,a.Z)(e,S);return i.createElement(g.Z,{content:t,align:"top",enterDelay:200,activateOn:"hover"},i.createElement(C,r,i.createElement(l.Pill,(0,s.Z)({hollow:!0,flavour:"neutral"},r),n)))},M=n(44109),q=["active","id","name","link","children"],I=["id","arFlavour","showAR","weightKey"],E=["id","onSubMenuClick"],D=["id"];function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var N,O=(0,c.css)(["border-left:1px solid ",";color:",";"],(0,l.getColor)("key"),(0,l.getColor)("key")),R=(0,c.default)(l.TextSmall).attrs((function(e){var t=e.active,n=e.id,s=e.name,r=e.link,i=e.children,c=(0,a.Z)(e,q);return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({"aria-current":t,as:"a",strong:t,padding:[.5,3],role:"listitem",children:s||i||n,href:"#".concat(r),"data-sidebar-submenuid":n,truncate:!0,whiteSpace:"normal"},c)})).withConfig({displayName:"menuItem__MenuItem",componentId:"sc-18613h0-0"})(["&&&{word-wrap:break-word;text-decoration:none;border-left:1px solid transparent;color:",";"," &:hover{","}}"],(0,l.getColor)("border"),(function(e){return e.active&&O}),O),A=(0,w.Ji)(function(e){return function(t){var n=t.id,r=(0,a.Z)(t,D),o=(0,v.xz)((function(e){return n===e}));return i.createElement(e,(0,s.Z)({active:o,id:n},r))}}(function(e){return function(t){var n=t.id,r=t.onSubMenuClick,o=(0,a.Z)(t,E),c=(0,i.useMemo)((function(){return r&&function(e){return r(n,e)}}),[r,n]),l=(0,_.pT)(o.chartIds);return o.forceVisibility||l?i.createElement(e,(0,s.Z)({onClick:c,id:n},o)):null}}((N=R,function(e){var t=e.id,n=e.arFlavour,o=void 0===n?"rhs":n,c=e.showAR,d=void 0===c||c,h=e.weightKey,u=(0,a.Z)(e,I),m=x(u.chartIds,{flavour:o,weightKey:h}),p=(0,r.Z)(m,3),f=p[0],g=p[1],b=p[2];return d&&f?i.createElement(l.Flex,{alignItems:"center",justifyContent:"between",width:"97%",padding:[.5,0]},i.createElement(N,(0,s.Z)({id:t},u)),i.createElement(P,{onClick:u.onClick,tooltipContent:b},(0,M.Z)(g))):i.createElement(N,(0,s.Z)({id:t},u))})))),F=["id","subMenuChartIds"],U=["id","chartIds","arFlavour","showAR","weightKey"],B=["subMenuIds","onSubMenuClick"],Z=["id","onMenuGroupClick","onSubMenuClick"],j=["id","active","onMenuGroupClick","onSubMenuClick","showChildren"],z=["id"],V=(0,c.default)(l.Text).attrs({color:"border"}).withConfig({displayName:"menuGroup__MenuGroupLabelWrapper",componentId:"sc-1q9pvct-0"})(["font-weight:500;"]),H=(0,c.default)(l.Flex).attrs({flex:!1,color:"border",width:6,alignItems:"center",justifyContent:"center"}).withConfig({displayName:"menuGroup__FaIcon",componentId:"sc-1q9pvct-1"})([""]),Q=(0,c.css)(["border-left:2px solid ",";","{color:",";}"],(0,l.getColor)("key"),V,(0,l.getColor)("key")),G=(0,c.default)(l.Flex).attrs({width:"98%"}).withConfig({displayName:"menuGroup__Container",componentId:"sc-1q9pvct-2"})(["&&&{border-left:2px solid transparent;"," "," text-decoration:none;cursor:pointer;&:hover{","}}"],(function(e){return e.active&&Q}),(function(e){return e.active&&"".concat(V," { font-weight: bold; }")}),Q),W=(0,b.Lj)(V,(function(e){var t=e.name,n=e.id;return{children:t||n}})),K=(0,b.Lj)((function(e){var t=e.icon;return t?i.createElement(H,null,l.iconsList[t]?i.createElement(l.Icon,{name:t,size:"small",color:"border"}):i.createElement(y.G,{icon:t})):null}),(function(e){return{icon:e.icon}})),J=(0,i.forwardRef)((function(e,t){var n=e.id,r=e.subMenuChartIds,o=(0,a.Z)(e,F),c=(0,_.pT)(r);return o.forceVisibility||c?i.createElement(G,(0,s.Z)({ref:t,as:"a",gap:2,padding:[1],alignItems:"center",justifyContent:"between","data-sidebar-menugroupid":n},o)):null})),Y=(0,b.Lj)(J,(function(e){var t=e.id,n=e.link,s=e.subMenuChartIds,r=e.forceVisibility;return{id:t,href:"#".concat(n),subMenuChartIds:s,forceVisibility:r}})),X=function(e){var t=e.id,n=e.chartIds,o=e.arFlavour,c=void 0===o?"rhs":o,d=e.showAR,h=void 0===d||d,u=e.weightKey,m=(0,a.Z)(e,U),p=x(n,{flavour:c,weightKey:u}),f=(0,r.Z)(p,3),g=f[0],b=f[1],y=f[2];return i.createElement(Y,(0,s.Z)({id:t},m),i.createElement(l.Flex,null,i.createElement(K,{id:t}),i.createElement(W,{id:t})),h&&g&&i.createElement(P,{tooltipContent:y},(0,M.Z)(b)))},$=(0,b.Lj)((function(e){var t=e.subMenuIds,n=e.onSubMenuClick,r=(0,a.Z)(e,B);return i.createElement(l.Flex,(0,s.Z)({column:!0,role:"list",padding:[0,0,2,0]},r),t.map((function(e){return i.createElement(A,{key:e,id:e,onSubMenuClick:n})})))}),(function(e){return{subMenuIds:e.subMenuIds}})),ee=(0,i.forwardRef)((function(e,t){return i.createElement(l.Flex,(0,s.Z)({as:"li",column:!0,ref:t},e))})),te=function(e){return function(t){var n=t.id,r=(0,a.Z)(t,z),o=(0,v.zE)(n);return i.createElement(e,(0,s.Z)({active:o,id:n},r))}}(function(e){return function(t){var n=t.id,r=t.onMenuGroupClick,o=t.onSubMenuClick,c=(0,a.Z)(t,Z),l=(0,i.useMemo)((function(){return r&&function(e){return r(n,e)}}),[r,n]),d=(0,i.useMemo)((function(){return o&&function(e,t){return o(n,e,t)}}),[o,n]);return i.createElement(e,(0,s.Z)({id:n,onMenuGroupClick:l,onSubMenuClick:d},c))}}((function(e){var t=e.id,n=e.active,r=e.onMenuGroupClick,o=e.onSubMenuClick,c=e.showChildren,l=void 0===c||c,d=(0,a.Z)(e,j),h=(0,b.nk)(t);return h?i.createElement(ee,d,i.createElement(X,(0,s.Z)({},h,{id:t,onClick:r,active:n,chartIds:h.subMenuChartIds})),l&&n&&i.createElement($,{id:t,onSubMenuClick:o})):null}))),ne=["menuGroupIds","onMenuGroupClick","onSubMenuClick","menuGroupProps"],se=(0,i.forwardRef)((function(e,t){return i.createElement(l.Flex,(0,s.Z)({as:"ul",width:"100%",role:"complementary",column:!0,overflow:{vertical:"auto"},"data-sidebar":"true",ref:t},e))})),re=(0,i.memo)((function(e){var t=e.menuGroupIds,n=e.onMenuGroupClick,r=e.onSubMenuClick,o=e.menuGroupProps,c=(0,a.Z)(e,ne);return i.createElement(se,c,t.map((function(e){return i.createElement(te,(0,s.Z)({key:e,id:e,onMenuGroupClick:n,onSubMenuClick:r},o))})))})),ae=(0,b.jj)(re),oe=(0,i.memo)(ae),ie=n(15394),ce=n(92432),le=n(27856),de=n(41481),he=function(){var e=(0,de.KR)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],a=(0,i.useCallback)((0,le.D)(300,(function(e){s(e.target.value),(0,ce.L)("toc-search","search-automatic-trigger","charts-view",e.target.value)})),[]),o=(0,l.useInputValue)({value:n,onChange:a}),c=(0,r.Z)(o,5),d=c[0],h=c[1],u=c[4].resetValue,m=(0,i.useCallback)((function(){s(""),u(),(0,ce.L)("toc-search","clear-search-button","charts-view")}),[]);return i.createElement(l.TextInput,{value:d,onChange:h,size:"small",iconRight:d&&i.createElement(l.Icon,{name:"x",color:"textLite",cursor:"pointer",size:"small",onClick:m,"data-testid":"filterChartsInput-clearButton"}),placeholder:"Search charts",name:"Search charts","data-testid":"filterChartsInput",containerStyles:{width:"100%"}})},ue=n(91008),me=(0,le.D)(300,(function(e,t){return(0,ce.L)("toc-search","search-results","charts-view",e,"".concat(t," -- charts"))})),pe=function(){var e=(0,de.T)(),t=(0,de.J1)(),n=t.filteredChartsCount,s=t.chartsCount;return(0,i.useEffect)((function(){e&&me(e,n)}),[e,n]),i.createElement(i.Fragment,null,i.createElement(l.TextNano,{alignSelf:"end",color:"textLite",margin:[1,0,0],"data-testid":"numberOfChartsIndication"},"Showing"," ",i.createElement(l.TextNano,{strong:!0,color:"textDescription","data-testid":"numberOfChartsIndication-filteredChartsCount"},n)," ","of total"," ",i.createElement(l.TextNano,{strong:!0,color:"textDescription","data-testid":"numberOfChartsIndication-chartsCount"},s)," ","charts"),i.createElement(ue.Z,{Component:l.TextNano,alignSelf:"end","data-ga":"toc-search::click-link-collectors::".concat(name),href:"https://learn.netdata.cloud/docs/agent/collectors/",target:"_blank",rel:"noopener noreferrer"},"Add more charts"))},fe=function(){return(0,de.J1)().filteredChartsCount?null:i.createElement(l.Flex,{width:"100%",gap:1,margin:[4,0,0],padding:[2],round:1,background:"disabledBackground",alignItems:"center","data-testid":"noResultsWereFound"},i.createElement(l.Icon,{name:"information",color:"textDescription"}),i.createElement(l.TextMicro,{strong:!0,color:"textDescription"},"No results were found"))},ge=(0,k.Z)(pe),be=function(){return i.createElement(l.Flex,{column:!0,alignItems:"center",height:{min:"65px"}},i.createElement(he,null),i.createElement(ge,null),i.createElement(fe,null))},ye=n(93433),ve=(n(92222),n(45335)),_e=n(46189),we=n(74059),ke=n(37518),Te=_e.Z.demoSlug,xe=_e.Z.demoFavourites,Se=(0,c.default)(l.Icon).attrs({size:"small",name:"chevron_left",color:"textLite"}).withConfig({displayName:"favourites__StyledChevron",componentId:"sc-mwcyj8-0"})(["transition:transform 0.2s ease-in-out;"]),Ce={showChildren:!1},Pe=function(e){var t,n=e.onMenuGroupClick,s=e.onSubMenuClick,a=e.initialChartName,o=(0,we.uk)(),c=(0,ke.vf)(),h=Te===o&&xe[c]||[],u=(0,b.UG)((t=h,function(e){return t.reduce((function(t,n){return e[n]?[].concat((0,ye.Z)(t),[n]):t}),[])})),m=(0,ie.Z)({onMenuGroupClick:n,onSubMenuClick:s}),p=m.onMenuGroupClick,f=m.onSubMenuClick,g=(0,d.Z)(!0),y=(0,r.Z)(g,2),v=y[0],_=y[1],w=(0,ve.sm)();return(0,i.useEffect)((function(){w&&!a&&u.length&&n(u[0])}),[w,a]),u.length?i.createElement(l.Flex,{column:!0,gap:1,border:{side:"bottom",color:"borderSecondary"},padding:[0,0,2]},i.createElement(l.Flex,{onClick:_,cursor:"pointer",alignItems:"center",justifyContent:"between"},i.createElement(l.Flex,{gap:1,alignItems:"center"},i.createElement("i",{className:"fa-regular fa-star"}),i.createElement(l.Text,{strong:!0,color:"textFocus"},"Favourites")),i.createElement(Se,{rotate:v?1:3,alignSelf:"end"})),i.createElement(l.Collapsible,{open:v,padding:[0,0,0,2]},i.createElement(re,{menuGroupIds:u,onMenuGroupClick:p,onSubMenuClick:f,menuGroupProps:Ce}))):null},Me=function(e){return(0,ce.L)("metric-sidebar","click-".concat(Ie(e)),"mn-overview")},qe=function(e){var t=Ie(e);(0,ce.L)("metric-sidebar","click-".concat(t),"mn-overview",t)},Ie=function(e){return e.startsWith("Kubernetes")?"k8s":e.replace(/[^\w]/g,"-").toLowerCase()},Ee=function(e){var t=e.initialChartName,n=e.loaded,s=e.hasSearch,r=void 0===s||s,a=(0,ie.Z)({onMenuGroupClick:Me,onSubMenuClick:qe,loaded:n}),o=a.onMenuGroupClick,c=a.onSubMenuClick;return i.createElement(i.Fragment,null,r&&i.createElement(l.Flex,{column:!0,position:"sticky",top:"0",gap:1},i.createElement(l.Text,{strong:!0},"Sections and Charts"),i.createElement(be,null)),n&&i.createElement(i.Fragment,null,i.createElement(Pe,{onMenuGroupClick:o,onSubMenuClick:c,initialChartName:t}),i.createElement(oe,{position:"relative",onMenuGroupClick:o,onSubMenuClick:c,width:"100%"})))},De=n(97363),Le=["tabs","hiddenTabs","title","nodeIds","selectedTab","setSelectedTab"];function Ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Oe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ne(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ne(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Re={color:{active:"success",notActive:"textLite"}},Ae={chartIndexing:Oe(Oe({},Re),{},{iconName:"charts_view",Content:Ee,dataTestId:"nodeInfo-chartIndexing",label:"Charts"}),filters:Oe(Oe({},Re),{},{iconName:"filterList",Content:De.Z,dataTestId:"nodeInfo-filters",label:"Filters"}),alerts:Oe(Oe({},Re),{},{iconName:"alarm_bell",Content:p.Z,dataTestId:"nodeInfo-alertsTab",label:"Alerts"}),info:Oe(Oe({},Re),{},{iconName:"information",dataTestId:"nodeInfo-alertsTab",Content:f.Z,label:"Info"})},Fe=[],Ue=(0,c.default)(l.Tabs).withConfig({displayName:"sidebar__StyledTabs",componentId:"sc-1d5ify6-0"})(["overflow:hidden;height:100%;"]),Be=function(e){var t=e.isActive,n=e.color,s=e.name,r=e.label;return i.createElement(g.Z,{plain:!0,content:r},i.createElement(l.Icon,{name:s,color:t?n.active:n.notActive,height:"18px",width:"18px"}))},Ze=function(e){var t=e.tabs,n=void 0===t?Ae:t,o=e.hiddenTabs,c=void 0===o?Fe:o,p=e.title,f=e.nodeIds,g=void 0===f?Fe:f,b=e.selectedTab,y=e.setSelectedTab,v=(0,a.Z)(e,Le),_=(0,d.Z)(!0),w=(0,r.Z)(_,2),k=w[0],T=w[1],x=(0,i.useMemo)((function(){return Object.keys(n).filter((function(e){return!c.includes(e)}))}),[c]),S=(0,i.useCallback)((function(e){y(e),T()}),[]);return i.createElement(h.ZP,{collapsedComponent:i.createElement(u.Z,{onClickTab:S,availableTabs:n,tabsToShow:x}),isOpen:k,header:i.createElement(m.Z,{isOpen:k,onToggle:T,title:p})},i.createElement(l.Flex,{"data-testid":"overview-info",column:!0,overflow:"hidden",height:"100%"},i.createElement(Ue,{selected:b,onChange:y,noDefaultBorder:!0},x.map((function(e,t){var r=n[e],a=r.iconName,o=r.color,c=r.Content,d=r.dataTestId,h=r.label;return i.createElement(l.Tab,{style:{display:1===x.length?"none":"inherit"},"data-testid":d,maxWidth:"100%",key:a,small:!0,label:i.createElement(Be,{isActive:b===t,name:a,color:o,label:h})},i.createElement(l.Flex,{column:!0,overflow:"hidden",height:"100%",position:"relative",gap:3,padding:[2,3]},i.createElement(c,(0,s.Z)({nodeIds:g},v))))})))))}},40970:function(e,t,n){n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942),r=n(29439),a=(n(47941),n(92222),n(67294)),o=n(44536),i=n(68035),c=n(89479),l=n(95248),d=n(25819),h=n(42448);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=n.spaceId,u=n.autorun,p=void 0!==u&&u,f=(0,a.useState)(null),g=(0,r.Z)(f,2),b=g[0],y=g[1],v=(0,l.by)(),_=v.after,w=v.before,k=(0,a.useRef)();k.current={after:_<0?_:Math.floor(_/1e3),before:_<0?0:Math.ceil(w/1e3)};var T=function(e){if(e&&null!==e&&void 0!==e&&e.response){var t=e.response.data.errorMsgKey;y(t)}else y(e)},x=(0,a.useMemo)((function(){return(0,h.V)(b)?5e3:65e3}),[b]),S=(0,a.useRef)(),C=(0,c.w4)(e),P=function(e){var t=e.results,n=e.versions;C((function(e){return m(m({},e),n)})),y((!t||!Object.keys(t).length)&&"No data for this period")},M=(0,c.qU)(e).contextsHardHash,q=(0,o.Z)(M);return(0,i.Z)((function(){return{cache:!1,key:"spaces.".concat(s,".rooms.").concat(e,".charts"),polling:!1,autorun:p||Boolean(s&&e),fetch:function(){return(0,d.Mn)(s,e,t,m({},k.current))},association:{getIds:function(){return(0,c.dA)({roomId:e,merge:S.current===t})},getError:function(){return(0,c.W2)({id:e,key:"error"})},getLoaded:function(){return(0,c.W2)({id:e,key:"loaded"})},getUpdatedAt:function(){return(0,c.W2)({id:e,key:"updatedAt"})}},getResource:function(t){return(0,c.PP)({id:e,key:t})},getResourcesInitializer:function(){var n=(0,c.Q7)({id:e,merge:S.current===t});return S.current=t,n},getResourceInitialState:function(e){return m({fullyLoaded:!0},e)},onFail:T,pollingOptions:{pollingInterval:x},onReceive:P,after:_,nodeIds:t,force:!0}}),[s,e,t,x,!!q&&!!M&&q!==M,_,w]),b}},29748:function(e,t,n){var s=n(4942),r=(n(2707),n(41539),n(15581),n(2490),n(34514),n(54747),n(21249),n(57640),n(9924),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4480)),a=n(47133),o=n(18997),i=n(74059),c=n(37518),l=n(25819),d=n(5934);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=(0,i.th)(),t=(0,c.UL)(),n=(0,r._8)((function(e){var n=e.set;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data,s=(void 0===e?{}:e).results;if(n((0,d.oq)({id:t,key:"loaded"}),!0),null!==s&&void 0!==s&&s.length){var r=s.sort((function(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})}));r.forEach((function(e){return n((0,a.lz)(e.id),(function(t){return u(u({},t),{},{loaded:!0},e)}))}));var o=r.map((function(e){return e.id}));n((0,d.oq)({id:t,key:"ids"}),o)}}}));(0,o.Z)((function(){return{enabled:!!e&&!!t,fetch:function(){return(0,l.j2)(e,t)},onReceive:n}}),[e,t])}},39904:function(e,t,n){n(92222);var s=n(68035),r=n(274),a=n(34912),o=n(44197),i=n(1229),c=n(33335);t.Z=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).polling,l=void 0===n||n,d=(0,c.gI)("room:ReadUsers");(0,s.Z)((function(){return{key:"spaces.".concat(e,".rooms.").concat(t,".members"),autorun:!!e&&!!t&&d,fetch:function(){return(0,r.fQ)(e,t)},polling:l,association:{getError:function(){return(0,i.Ci)({id:t,key:"error"})},getIds:function(){return(0,i.Ci)({id:t,key:"ids"})},getLoaded:function(){return(0,i.Ci)({id:t,key:"loaded"})},getUpdatedAt:function(){return(0,i.Ci)({id:t,key:"updatedAt"})}},sort:function(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})},getResource:function(e){return(0,a.mX)({id:e})},getResourcesInitializer:function(){return a.Bb},getResourceInitialState:function(){return o.E},pollingOptions:{pollingInterval:18e4}}}),[e,t])}},22648:function(e,t,n){n.d(t,{m:function(){return r}});var s=n(94829),r=function(){return(0,s.Z)("(max-width: 767px)")}},37682:function(e,t,n){var s=n(67294),r=n(6557),a=n.n(r),o=n(18446),i=n.n(o),c=n(44682);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a(),n=(0,s.useRef)();return(0,c.Sz)(e,(function(e){var s=t(e);return i()(n.current,s)||(n.current=s),n.current}))}},18997:function(e,t,n){var s=n(29439),r=(n(41539),n(88674),n(17727),n(67294)),a=n(50308),o=n.n(a),i=n(9058),c=n(46189),l=n(29283),d=n(13477);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=(0,i.e)(),a=(0,r.useMemo)((function(){return n?n.getRoot():null}),[n]),h=(0,r.useMemo)(e,t),u=(0,r.useRef)(!1),m=(0,l.Z)(),p=(0,s.Z)(m,2)[1],f=(0,r.useCallback)((function(e){u.current=!1;var t=h.fetch,n=h.onStart,s=void 0===n?o():n,r=h.onFail,i=void 0===r?o():r,l=h.onReceive,d=void 0===l?o():l,m=h.onSettle,f=void 0===m?o():m,g=h.polling,b=void 0===g||g,y=h.pollingOptions;s();var v={timeoutId:null,promise:null},_=function(){return v.promise=t(e),v.promise.then(d).catch((function(e){if(!e.isCancel)throw e})),v.promise},w=function e(){v.timeoutId=setTimeout((function(){return null!==y&&void 0!==y&&y.shouldPause&&a&&(a.getAttribute("hovering")||a.getAttribute("paused"))?e():p.current?void _().then((function(){return!u.current&&b&&e()})).catch((function(t){return!u.current&&!t.isCancel&&b&&e()})):e()}),(null===y||void 0===y?void 0:y.pollingInterval)||c.Z.pollingInterval)};return _().then((function(){return!u.current&&b&&w()})).catch((function(e){return!e.isCancel&&i(e)})).finally(f),function(){var e,t;u.current=!0,null===(e=v.promise)||void 0===e||null===(t=e.cancel)||void 0===t||t.call(e),clearTimeout(v.timeoutId)}}),t),g=(0,d.Iy)("isAnonymous");return(0,r.useEffect)((function(){var e=h.enabled,t=void 0===e||e,n=h.force;if(!g||void 0!==n&&n)return t?f():void 0}),[f]),f}},3975:function(e,t,n){n.d(t,{QF:function(){return c},vq:function(){return l}});var s=n(67294),r=n(89250),a=n(37518),o=n(74059),i=function(e,t,n){var r=t();(0,s.useLayoutEffect)((function(){r!==e&&n(e)}),[r,e])},c=function(){var e=(0,r.UO)().roomSlug,t=(0,a.TF)();return i(e,a.vf,t),e},l=function(){var e=(0,r.UO)().spaceSlug,t=(0,o.$v)();return i(e,o.uk,t),e};t.ZP=function(){return[l(),c()]}}}]); \ No newline at end of file
diff --git a/web/gui/v2/43.178b68b4bde3a2876bd8.chunk.js b/web/gui/v2/43.36c13bf5ecbdd5373881.chunk.js
index ca889249..69955d34 100644
--- a/web/gui/v2/43.178b68b4bde3a2876bd8.chunk.js
+++ b/web/gui/v2/43.36c13bf5ecbdd5373881.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="bbac526f-fba5-493d-a9db-2dda85e66fc3",e._sentryDebugIdIdentifier="sentry-dbid-bbac526f-fba5-493d-a9db-2dda85e66fc3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[43],{16512:function(e,t,n){n.d(t,{Q0:function(){return o},R4:function(){return m},TT:function(){return i},WL:function(){return d},Y:function(){return c},by:function(){return u},qY:function(){return l},rU:function(){return f},xL:function(){return s}});var a=n(60677),r=n(15557),o=a.default.img.withConfig({displayName:"styled__Illustration",componentId:"sc-1yhntgl-0"})(["margin:0 auto;"]),l=(0,a.default)(r.Text).withConfig({displayName:"styled__StyledText",componentId:"sc-1yhntgl-1"})(["display:block;"]),c=a.default.div.withConfig({displayName:"styled__TextHeader",componentId:"sc-1yhntgl-2"})(["margin-bottom:",";font-weight:700;"],(0,r.getSizeBy)(2)),d=a.default.div.withConfig({displayName:"styled__StaticCheckmarks",componentId:"sc-1yhntgl-3"})(["margin-top:",";margin-bottom:",";"],(0,r.getSizeBy)(2),(0,r.getSizeBy)(5)),i=a.default.div.withConfig({displayName:"styled__CheckmarkLine",componentId:"sc-1yhntgl-4"})(["display:flex;align-items:center;"]),s=(0,a.default)(r.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1yhntgl-5"})(["margin-right:4px;height:18px;> use{fill:",";}"],(0,r.getColor)("primary")),u=(0,a.default)(s).withConfig({displayName:"styled__HelpIcon",componentId:"sc-1yhntgl-6"})(["vertical-align:middle;"]),m=a.default.div.withConfig({displayName:"styled__LearnMoreSection",componentId:"sc-1yhntgl-7"})(["margin-top:",";"],(0,r.getSizeBy)(4)),f=a.default.a.withConfig({displayName:"styled__Link",componentId:"sc-1yhntgl-8"})(["text-decoration:underline;color:",";&:visited{color:",";}"],(0,r.getColor)("success"),(0,r.getColor)("success"))},4193:function(e,t,n){n.r(t),n.d(t,{default:function(){return dt}});var a=n(67294),r=n(89250),o=n(39878),l=n(4474),c=n(74059),d=n(29748),i=n(37518),s=n(5934),u=n(47133),m=n(54227),f=n(79619),h=n(78266),g=function(){return a.createElement(h.Z,{title:"Loading charts...","data-testid":"dashboardLoading"})},p=n(29439),b=n(61152),v=n(87462),E=n(45987),y=n(15557),C=n(87574),x=n(97945),w=["compact"],I=function(e){var t=e.compact,n=(0,E.Z)(e,w),r=(0,b.Z)("addChartModal"),o=(0,p.Z)(r,2)[1],l=(0,x.Mm)().length>0;return a.createElement(y.Flex,(0,v.Z)({column:!0,alignItems:"center",justifyContent:"center",overflow:{vertical:"auto"},flex:!0,basis:0,"data-testid":"dashboardBlankSlate"},n),!t&&a.createElement(y.Flex,{as:"img",src:C.X,height:"35%"}),a.createElement(y.H3,{margin:[6,0,2]},"Empty Dashboard"),l?a.createElement(a.Fragment,null,a.createElement(y.Text,{textAlign:"center"},"Let\u2019s fill your dashboard."),a.createElement(y.Text,{textAlign:"center"},"Go to a node view or node list and add one chart to this Dashboard or just use")):a.createElement(a.Fragment,null,a.createElement(y.Text,{textAlign:"center"},"You don't have any available node to retrieve charts from."),a.createElement(y.Text,{textAlign:"center"},"Please verify your nodes' state and/or connect a new node to Netdata")),!t&&a.createElement(y.Button,{margin:[8,0,0,0],onClick:o,disabled:!l,label:"Add chart","data-testid":"dashboardBlankSlate-addChart"}))},k=n(93433),O=(n(92222),n(21249),n(57640),n(9924),n(69826),n(41539),n(31672),n(2490),n(59461),n(2707),n(47941),n(16645)),D=n(7693),Z=n(92903),S=n(96929),T=n(40970),_=n(89479),j=n(91128),N=n(97723),M=n(4942),P=(n(15581),n(34514),n(54747),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(89692)),F=n(16978),L=n(9058),B=n(82351),A=function(){return a.createElement(y.Flex,{column:!0,width:"300px",gap:1},a.createElement(y.TextSmall,{strong:!0,color:"white"},"Not finding a chart?"),a.createElement(y.TextSmall,{color:"white"},"When selecting",a.createElement(y.TextSmall,{strong:!0,color:"white",margin:[0,1]},"All Nodes"),"you search and add charts using their context. The outcome will be a composite chart over All Nodes, like on the Overview tab."),a.createElement(y.TextSmall,{color:"white"},"When you select a",a.createElement(y.TextSmall,{strong:!0,color:"white",margin:[0,1]},"specific Node"),"you search and add charts using their name. The result is a specific chart over the node selected, like on Single Node tab."))},H=function(){return a.createElement(B.Z,{isBasic:!0,plain:!0,content:A,align:"bottom"},a.createElement(y.Icon,{name:"question",color:"textDescription",size:"small"}))};function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var W=function(e){var t=e.spaceId,n=e.roomId,r=e.value,o=e.onChange,l=e.options,c=e.testid,d=e.selectedNodeIds,i=null===r||void 0===r?void 0:r.value,s=(0,L.e)(),u=(0,_.Cd)(i&&n,i),m=(0,a.useMemo)((function(){s.getNodes({id:"newDashboardChart"}).forEach((function(e){return e.destroy()}));var e=(0,P.ZP)(u),a=e.info,r=e.valueRange,o=e.height,l=e.colors,c=s.makeChart({attributes:R({id:"newDashboardChart",contextScope:[i],host:"/api/v3/spaces/".concat(t,"/rooms/").concat(n),roomId:n,info:a,valueRange:r,height:"".concat(o+207,"px"),enabledNavigation:!1,selectedNodes:d},l&&{colors:l})});return s.getRoot().appendChild(c),c}),[s,i]);return(0,a.useEffect)((function(){return function(){return m.destroy()}}),[]),a.createElement(y.Flex,{gap:6,column:!0},a.createElement(y.Flex,{gap:2,column:!0,"data-testid":c},a.createElement(y.Flex,{gap:2},a.createElement(y.H5,null,"Context in room overview"),a.createElement(H,null)),a.createElement(y.Select,{options:l,value:r,onChange:o,isClearable:!0,form:c})),r&&a.createElement(y.Flex,{height:{min:"320px"},column:!0},a.createElement(F.Z,{chart:m,margin:[2,0,0]})))},z={label:"All Nodes",value:"all-nodes"},J={label:"All Nodes (no reachable nodes)",value:"all-nodes",isDisabled:!0},Y=function(e){var t=e.id,n=e.isLive,a=e.name;return{label:n?a:"".concat(a," (offline)"),value:t,isDisabled:!n}},q=function(e){return{value:e,label:e}},V=function(e){var t=e.id,n=e.onClose,r=(0,c.th)(),o=(0,i.UL)(),l=(0,u.LJ)(t,"name"),d=(0,i.Hm)("name"),s=(0,S.zN)(),m=(0,x.HZ)().length>0,f=(0,S.fD)(),h=(0,x.Ne)(s),g=(0,N.jN)(t),b=m?z:J,v=(0,a.useState)(b.value),E=(0,p.Z)(v,2),C=E[0],w=E[1],I=(0,a.useState)(null),M=(0,p.Z)(I,2),P=M[0],F=M[1],B=(0,a.useMemo)((function(){return[b].concat((0,k.Z)(h.map(Y)))}),[h]),A=(0,a.useMemo)((function(){return B.find((function(e){return e.value===C}))}),[B,C]),H=(0,a.useCallback)((function(e){w((null===e||void 0===e?void 0:e.value)||b.value),F(null)}),[]),U=(0,a.useMemo)((function(){return C===b.value?[]:[C]}),[C]),R=(0,T.Z)(o,U,{spaceId:r});if(R)throw R;var V=(0,_.Cd)(o),K=(0,a.useMemo)((function(){return Object.keys(V).sort((function(e,t){return e.localeCompare(t,void 0,{sensitivity:"accent"})})).map(q)}),[V]);(0,a.useEffect)((function(){K.length&&A&&F((function(e){return e||K[0].value}))}),[P,K,A]);var Q=(0,a.useMemo)((function(){return P&&q(P)}),[P]),X=(0,a.useCallback)((function(e){return F(null===e||void 0===e?void 0:e.value)}),[]),G=V[P],$=(0,L.e)(),ee=(0,a.useCallback)((function(){var e=$.getNode({id:"newDashboardChart"}).getAttributes(),t=e.aggregationMethod,a=e.selectedDimensions,r=e.groupBy,o=e.groupByLabel,l=e.groupingMethod,c=e.chartType,d=e.selectedLabels,i=e.selectedNodes,s=e.selectedInstances,u=e.nodesScope,m=e.contextScope;g(m,{aggregationMethod:t,selectedDimensions:a,groupBy:r,groupByLabel:o,groupingMethod:l,chartType:c,selectedLabels:d,selectedNodes:i,selectedInstances:s,nodesScope:u},(function(){return setTimeout(n)}))}),[C,G]),te=!P,ne=(0,j.Z)();return(0,a.useEffect)((function(){return ne(!0),function(){return ne(!1)}})),a.createElement(O.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n,overflow:"visible"},a.createElement(D.x,{onClose:n,title:"Add Chart to Dashboard"},a.createElement(y.Button,{label:"Add chart",icon:"plus",onClick:ee,disabled:te,"data-testid":"addChartModal-addChart-button"})),a.createElement(Z.B,null,"Add Charts to ",l),a.createElement(O.TZ,{overflow:"visible"},a.createElement(y.Flex,{gap:6,column:!0},a.createElement(y.Flex,{gap:2,column:!0,"data-testid":"addChartModal-selectNodes"},a.createElement(y.H5,null,"Nodes in ",d),a.createElement(y.Select,{options:B,value:A,onChange:H,isLoading:!f,isClearable:!0,form:"addChartModal-selectNodes"})),Q&&a.createElement(W,{id:t,spaceId:r,roomId:o,value:Q,onChange:X,options:K,testid:"addChartModal-selectChart",selectedNodeIds:U}))))},K=n(91268),Q=["text","TextComponent"],X=function(e){var t=e.text,n=e.TextComponent,r=void 0===n?y.Text:n,o=(0,E.Z)(e,Q),l=(0,a.useRef)(),c=(0,a.useState)(!1),d=(0,p.Z)(c,2),i=d[0],s=d[1];(0,a.useEffect)((function(){if(l.current){var e=l.current.offsetWidth<l.current.scrollWidth;s(e)}}),[]);var u=a.createElement(r,(0,v.Z)({ref:l,truncate:!0},o),t);return i?a.createElement(B.Z,{content:t,align:"bottom",stretch:"align",isBasic:!0},u):u},G=function(e){var t=e.id,n=(0,u.LJ)(t,"name");return a.createElement(X,{TextComponent:y.H0,text:n})},$=function(){var e=(0,b.Z)("addChartModal"),t=(0,p.Z)(e,2)[1];return(0,x.Mm)().length>0?a.createElement(y.Button,{neutral:!0,flavour:"hollow",label:"Add chart",icon:"chart_added",onClick:t,"data-testid":"dashboardHeaderActionBar-addChart-button","data-ga":"action-bar::click-add-chart::cust-dashboard"}):null},ee=function(e){var t=e.id,n=(0,N.Kq)(t);return a.createElement(y.Button,{neutral:!0,flavour:"hollow",label:"Add text",icon:"text_add",onClick:n,"data-testid":"dashboardHeaderActionBar-addText-button","data-ga":"action-bar::click-add-text::cust-dashboard"})},te=n(93017),ne=n(67336),ae=n(14428),re=function(e){var t=e.id,n=(0,te.Z)(),r=(0,p.Z)(n,2)[1],o=(0,ne.O9)(t,{onFail:r}),l=(0,u.LJ)(t,"processing"),c=(0,u.LJ)(t,"isOwner"),d=(0,u.DS)(t);return a.createElement(ae.Z,{permission:c?"dashboard:Update":"dashboard:UpdateSelf",flavour:"hollow",label:"Save",icon:"save",onClick:o,disabled:d,isLoading:l,"data-testid":"dashboardHeaderActionBar-save-button","data-ga":"action-bar::click-save::cust-dashboard"})},oe=function(e){var t=e.id;return a.createElement(y.Flex,{gap:2},a.createElement($,null),a.createElement(ee,{id:t}),a.createElement(re,{id:t}))},le=(0,a.memo)(oe),ce=n(71992),de=n(46667),ie=n(62200),se=n(59112),ue=n(16512),me=function(e){var t=e.close,n=(0,a.useState)(!0),o=(0,p.Z)(n,2),l=o[0],c=o[1],d=(0,u.r0)(),s=(0,u.HI)({id:d,key:"name"}),f=(0,p.Z)(s,2),h=f[0],g=f[1],b=(0,a.useState)(h),v=(0,p.Z)(b,2),E=v[0],x=v[1],w=(0,ne.O9)(d),I=(0,m.UK)(),k=(0,r.s0)(),S=(0,i.A3)(),T=E.length>0,_=l&&T&&E!==h,j=(0,a.useCallback)((function(){g(E),w().then((function(e){var n=e.data.slug,a="".concat(S,"/dashboards/").concat(n);I({id:d,slug:n,path:a}),k(a,{replace:!0}),t()}))}),[t,E,d,S]);return a.createElement(O.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t,"data-testid":"renameDashboard-modal"},a.createElement(D.x,{onClose:t,title:"Rename Dashboard"},a.createElement(y.Button,{label:"Save Changes",onClick:j,disabled:!_})),a.createElement(Z.B,{"data-testid":"renameDashboard-title"},"Rename dashboard ",h),a.createElement(O.TZ,null,a.createElement(se.Z,{value:E,label:"Name",onChange:function(e){x(e.target.value)},isValid:l,setIsValid:c,isDirty:T,instantFeedback:"all",onKeyDown:function(e){return e.keyCode===ie.DV&&_&&j()},"data-testid":"renameDashboard-input"}),a.createElement(y.Flex,{column:!0,justifyContent:"between",height:"100%",margin:[8,0,16],"data-testid":"renameDashboard-learnMoreSection"},a.createElement(ue.R4,null,a.createElement(ue.by,{name:"help"}),a.createElement(y.Text,null,"Learn more about Dashboards")," ",a.createElement(ue.rU,{href:"https://learn.netdata.cloud/docs/cloud/visualize/dashboards",target:"_blank",rel:"noopener noreferrer"},"In our documentation")),a.createElement(ue.Q0,{src:C.X,alt:"No nodes",title:"No nodes"}))))},fe=function(){var e=(0,r.s0)(),t=(0,c.uk)(),n=(0,i.vf)(),o=(0,u.r0)(),l=(0,u.LJ)(o).name,d=(0,i.Hm)("name"),s=(0,de.Z)(),m=(0,p.Z)(s,4),f=m[0],h=m[2],g=m[3],b=(0,de.Z)(),v=(0,p.Z)(b,4),E=v[0],C=v[2],x=v[3],w=(0,a.useCallback)((function(){e("/spaces/".concat(t,"/rooms/").concat(n,"/dashboards"))}),[t,n]),I=(0,N.CO)(o,{onSuccess:w});return a.createElement(a.Fragment,null,a.createElement(ce.Z,{category:"dashboard",context:"title",testId:"dashboardDropdown"},(function(e){var t=e.close;return a.createElement(a.Fragment,null,a.createElement(ce.h,{icon:"pencilOutline",onClick:function(){t(),C()},"data-testid":"renameDashboard-option","data-ga":"dropdown-item::click-rename-dashboard::cust-dashboard"},"Rename Dashboard"),a.createElement(ce.h,{icon:"trashcan",color:"errorText",onClick:function(){t(),h()},"data-testid":"removeDashboard-option","data-ga":"dropdown-item::click-remove-dashboard::cust-dashboard"},"Delete Dashboard"))})),E&&a.createElement(me,{close:x}),f&&a.createElement(y.ConfirmationDialog,{confirmLabel:"Yes, delete","data-ga":"delete-dashboard-dialog","data-testid":"deleteDashboardDialog",handleConfirm:I,handleDecline:g,message:a.createElement(a.Fragment,null,"You are about to delete ",a.createElement("strong",null,l)," from ",a.createElement("strong",null,d),".",a.createElement("br",null),"Are you sure you want to continue?"),title:"Delete ".concat(l)}))},he=function(e){var t=e.id;return a.createElement(y.Flex,{justifyContent:"between",padding:[3,2.5],"data-testid":"dashboardHeader"},a.createElement(y.Flex,{alignItems:"center"},a.createElement(fe,null),a.createElement(G,{id:t})),a.createElement(le,{id:t}))},ge=(0,a.memo)(he),pe=n(69968),be=n.n(pe),ve=(n(48564),n(79424),n(6811)),Ee=["style","className","onMouseDown","onMouseUp","onTouchEnd","children"],ye=["id","Component"],Ce=(0,pe.WidthProvider)(be()),xe=(0,a.forwardRef)((function(e,t){var n=e.style,r=e.className,o=e.onMouseDown,l=e.onMouseUp,c=e.onTouchEnd,d=e.children,i=(0,E.Z)(e,Ee);return a.createElement("div",(0,v.Z)({style:n,className:r,ref:t,onMouseDown:o,onMouseUp:l,onTouchEnd:c},i),d.map((function(e){return"function"===typeof e?e({onMouseDown:o,onMouseUp:l,onTouchEnd:c}):e})))})),we=function(e){return{i:e.i,x:e.x,y:e.y,w:e.w,h:e.h,minW:e.minW,minH:e.minH}},Ie=function(e){var t=e.id,n=e.Component,r=(0,E.Z)(e,ye),o=(0,ve.ZL)(t),l=(0,p.Z)(o,2),c=l[0],d=l[1],i=(0,a.useCallback)((function(e){var t=e.map(we);d(t)}),[]),s=(0,a.useMemo)((function(){return c.map((function(e){var r=e.i;return a.createElement(xe,{key:r},(function(e){return a.createElement(n,(0,v.Z)({key:r,id:t,cardId:r},e))}))}))}),[c]);return a.createElement(y.Flex,{column:!0,gap:2,width:"100%",overflow:"auto"},a.createElement(Ce,(0,v.Z)({},r,{layout:c,onLayoutChange:i,measureBeforeMount:!0,useCSSTransforms:!0,preventCollision:!1,isDroppable:!0}),s))};Ie.defaultProps={rowHeight:30,cols:12};var ke=Ie,Oe=n(45215),De=n(22841),Ze=n(60677),Se=(0,Ze.default)(y.Flex).attrs({height:"100%",background:"mainBackground",round:!0,cursor:"move"}).withConfig({displayName:"container__Card",componentId:"sc-esi601-0"})(["box-shadow:0px 0px 1px rgba(0,0,0,0.04),0px 2px 6px rgba(0,0,0,0.04),0px 10px 20px rgba(0,0,0,0.04);"]),Te=(0,Ze.default)(y.Flex).attrs({column:!0,cursor:"default",height:{max:"100%"},overflow:"hidden",onMouseDown:function(e){return e.stopPropagation()}}).withConfig({displayName:"content__CardContent",componentId:"sc-1x8kdiw-0"})([""]),_e=function(e){var t=e.chart;return a.createElement(Te,{flex:!0,"data-testid":"chartContent"},a.createElement(F.Z,{chart:t}))},je=["id","cardId","onMouseDown","onMouseUp","onTouchEnd"],Ne=["nodeId"];function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Me(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Me(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Fe=(0,a.memo)((function(e){var t=e.id,n=e.cardId,r=e.onMouseDown,o=e.onMouseUp,l=e.onTouchEnd,c=(0,E.Z)(e,je),d=(0,L.e)(),i=(0,De._q)(t,n)||{},s=i.nodeId,u=(0,E.Z)(i,Ne),m=(0,a.useMemo)((function(){var e=d.makeChart({attributes:Pe(Pe({cardId:n,dashboardId:t},u),!!s&&{nodesScope:[s]}),makeTrack:Oe.vL});return(0,Oe.ZO)(d,t).appendChild(e),e}),[t,n]);return(0,a.useLayoutEffect)((function(){m.updateAttributes({onMouseDownDrag:r,onMouseUpDrag:o,onTouchEndDrag:l})}),[r,o,l]),a.createElement(Se,(0,v.Z)({"data-testid":"chart","data-testId":"chartCard-".concat((u.contextScope||[]).join(","))},c),a.createElement(_e,{chart:m}))})),Le=Fe,Be="text",Ae="customDashboard",He=function(e){var t=e.id,n=e.cardId,r=e.onClick,o=(0,De.I_)(t,n,"editing"),l=(0,De.IT)(t,n,"editing");return a.createElement(ce.h,{icon:"pencilSolid",onClick:function(){r(),l(!0)},"data-ga":"".concat(Be,"-reset::").concat(Ae),"data-testid":"textCard-edit",disabled:o},"Edit")},Ue=function(e){var t=e.id,n=e.cardId,r=(0,N.Zj)(t,n);return a.createElement(ce.h,{icon:"trashcan",onClick:r,"data-ga":"".concat(Be,"-reset::").concat(Ae),"data-testid":"textCard-remove"},"Remove")},Re=function(e){var t=e.id,n=e.cardId;return a.createElement(ce.Z,{category:Be,context:Ae,testId:"chartTextDropdown"},(function(e){var r=e.close;return a.createElement(a.Fragment,null,a.createElement(He,{id:t,cardId:n,onClick:r}),a.createElement(Ue,{id:t,cardId:n}))}))},We=function(e){var t=e.id,n=e.cardId;return a.createElement(y.Flex,{alignSelf:"start","data-testid":"textCardHeader"},a.createElement(Re,{id:t,cardId:n}))},ze=(n(66992),n(88674),n(78783),n(33948),(0,n(2145).Z)((function(){return Promise.all([n.e(575),n.e(189)]).then(n.bind(n,8937))}),"Editor")),Je=function(e){return a.createElement(a.Suspense,{fallback:""},a.createElement(ze,e))},Ye=(0,Ze.default)(y.Flex).attrs({as:"form",column:!0,flex:!0,gap:2,onMouseDown:function(e){return e.stopPropagation()}}).withConfig({displayName:"form__CardContent",componentId:"sc-3tcqxu-0"})(["cursor:auto;"]),qe={toolbar:!1,placeholder:{text:"Type your text",hideOnClick:!1}},Ve=function(e){var t=e.id,n=e.cardId,r=(0,De.I_)(t,n,"text"),o=(0,De.IT)(t,n,"editing"),l=(0,De.IT)(t,n,"text"),c=(0,a.useState)(r),d=(0,p.Z)(c,2),i=d[0],s=d[1],u=(0,a.useCallback)((function(){return o(!1)}),[]),m=(0,a.useCallback)((function(){l(i),o(!1)}),[i]);return a.createElement(Ye,{"data-testid":"textCardForm"},a.createElement(y.Flex,{round:!0,border:!0,padding:[2],column:!0},a.createElement(Je,{autoFocus:!0,text:i,options:qe,onChange:s})),a.createElement(y.Flex,{justifyContent:"end",gap:1},a.createElement(y.Button,{type:"button",flavour:"borderless",label:"Cancel",small:!0,width:"initial",onClick:u,"data-testid":"textCardForm-cancel"}),a.createElement(y.Button,{type:"button",label:"Done",small:!0,width:"initial",onClick:m,"data-testid":"textCardForm-done"})))},Ke=function(e){return e.stopPropagation()},Qe={toolbar:!1,disableEditing:!0,placeholder:{text:"Type your text",hideOnClick:!1}},Xe=function(e){var t=e.id,n=e.cardId,r=(0,De.I_)(t,n,"text");return a.createElement(y.Box,{"data-testid":"textCardContent",onMouseDown:Ke},a.createElement(Je,{text:r,options:Qe}))},Ge=(0,Ze.default)(Se).withConfig({displayName:"text__StyledCard",componentId:"sc-1f67m9f-0"})(["cursor:move;"]),$e=["id","cardId"],et={chart:Le,text:(0,a.memo)((function(e){var t=e.id,n=e.cardId,r=(0,De.I_)(t,n,"editing");return a.createElement(Ge,{column:!0,"data-testid":"textCard"},a.createElement(We,{id:t,cardId:n}),r&&a.createElement(Ve,{id:t,cardId:n}),!r&&a.createElement(Xe,{id:t,cardId:n}))}))},tt=function(e){var t=e.id,n=e.cardId,r=(0,E.Z)(e,$e),o=(0,De.I_)(t,n,"type"),l=et[o]||et.chart;return a.createElement(l,(0,v.Z)({id:t,cardId:n},r))},nt=["id"],at=function(e){var t=e.id,n=(0,E.Z)(e,nt);return(0,Oe.ZP)(t),a.createElement(ke,(0,v.Z)({id:t,Component:tt},n))};function rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ot(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rt(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var lt=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=(0,a.useContext)(r.Us).navigator,o=(0,r.TH)();(0,a.useEffect)((function(){if(t){var a=n.block((function(t){var n=ot(ot({},t),{},{retry:function(){a(),t.retry()}});e(n)}));return a}}),[n,e,t,o])}((0,a.useCallback)((function(t){"REPLACE"!==t.action?window.confirm(e)&&t.retry():t.retry()}),[e]),t)},ct=function(e){var t=e.id,n=(0,b.Z)("addChartModal"),r=(0,p.Z)(n,4),o=r[0],l=r[3],c=(0,u.LJ)(t),d=c.fullyLoaded,i=c.cardIds;return function(e){var t=(0,u.DS)(e);lt("Are you sure you want to leave this dashboard?\nChanges will be lost.",!t)}(t),a.createElement(K.Z,{padding:[3],margin:[0,0,8,0]},a.createElement(ge,{id:t}),d&&i.length>0&&a.createElement(at,{id:t}),d&&0===i.length&&a.createElement(I,null),o&&a.createElement(V,{id:t,onClose:l}))},dt=(0,a.memo)((function(){(0,d.Z)(),function(){var e=(0,r.UO)().dashboardSlug,t=(0,o.Jh)(),n=(0,o.FP)();(0,a.useEffect)((function(){n!==e&&t(e)}),[n,e]),(0,a.useEffect)((function(){return function(){return t(null)}}),[])}(),(0,l.Pf)();var e=(0,c.th)(),t=(0,c.uk)(),n=(0,i.UL)(),h=(0,i.vf)(),p=(0,u.r0)(),b=(0,u.FV)("slug");(0,m.bV)({title:b,id:p,destination:b,type:"dashboards"});var v=(0,s.L)();return(0,f.Z)(v&&p,{spaceId:e,spaceSlug:t,roomId:n,roomSlug:h})?a.createElement(g,null):a.createElement(ct,{id:p})}))}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a4d4db80-6f52-4dda-9f01-a4f03b0d88b6",e._sentryDebugIdIdentifier="sentry-dbid-a4d4db80-6f52-4dda-9f01-a4f03b0d88b6")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[43],{16512:function(e,t,n){n.d(t,{Q0:function(){return o},R4:function(){return m},TT:function(){return i},WL:function(){return d},Y:function(){return c},by:function(){return u},qY:function(){return l},rU:function(){return f},xL:function(){return s}});var a=n(60677),r=n(57509),o=a.default.img.withConfig({displayName:"styled__Illustration",componentId:"sc-1yhntgl-0"})(["margin:0 auto;"]),l=(0,a.default)(r.Text).withConfig({displayName:"styled__StyledText",componentId:"sc-1yhntgl-1"})(["display:block;"]),c=a.default.div.withConfig({displayName:"styled__TextHeader",componentId:"sc-1yhntgl-2"})(["margin-bottom:",";font-weight:700;"],(0,r.getSizeBy)(2)),d=a.default.div.withConfig({displayName:"styled__StaticCheckmarks",componentId:"sc-1yhntgl-3"})(["margin-top:",";margin-bottom:",";"],(0,r.getSizeBy)(2),(0,r.getSizeBy)(5)),i=a.default.div.withConfig({displayName:"styled__CheckmarkLine",componentId:"sc-1yhntgl-4"})(["display:flex;align-items:center;"]),s=(0,a.default)(r.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1yhntgl-5"})(["margin-right:4px;height:18px;> use{fill:",";}"],(0,r.getColor)("primary")),u=(0,a.default)(s).withConfig({displayName:"styled__HelpIcon",componentId:"sc-1yhntgl-6"})(["vertical-align:middle;"]),m=a.default.div.withConfig({displayName:"styled__LearnMoreSection",componentId:"sc-1yhntgl-7"})(["margin-top:",";"],(0,r.getSizeBy)(4)),f=a.default.a.withConfig({displayName:"styled__Link",componentId:"sc-1yhntgl-8"})(["text-decoration:underline;color:",";&:visited{color:",";}"],(0,r.getColor)("success"),(0,r.getColor)("success"))},4193:function(e,t,n){n.r(t),n.d(t,{default:function(){return dt}});var a=n(67294),r=n(89250),o=n(39878),l=n(4474),c=n(74059),d=n(29748),i=n(37518),s=n(5934),u=n(47133),m=n(54227),f=n(79619),h=n(78266),g=function(){return a.createElement(h.Z,{title:"Loading charts...","data-testid":"dashboardLoading"})},p=n(29439),b=n(61152),v=n(87462),E=n(45987),y=n(57509),C=n(87574),x=n(97945),w=["compact"],I=function(e){var t=e.compact,n=(0,E.Z)(e,w),r=(0,b.Z)("addChartModal"),o=(0,p.Z)(r,2)[1],l=(0,x.Mm)().length>0;return a.createElement(y.Flex,(0,v.Z)({column:!0,alignItems:"center",justifyContent:"center",overflow:{vertical:"auto"},flex:!0,basis:0,"data-testid":"dashboardBlankSlate"},n),!t&&a.createElement(y.Flex,{as:"img",src:C.X,height:"35%"}),a.createElement(y.H3,{margin:[6,0,2]},"Empty Dashboard"),l?a.createElement(a.Fragment,null,a.createElement(y.Text,{textAlign:"center"},"Let\u2019s fill your dashboard."),a.createElement(y.Text,{textAlign:"center"},"Go to a node view or node list and add one chart to this Dashboard or just use")):a.createElement(a.Fragment,null,a.createElement(y.Text,{textAlign:"center"},"You don't have any available node to retrieve charts from."),a.createElement(y.Text,{textAlign:"center"},"Please verify your nodes' state and/or connect a new node to Netdata")),!t&&a.createElement(y.Button,{margin:[8,0,0,0],onClick:o,disabled:!l,label:"Add chart","data-testid":"dashboardBlankSlate-addChart"}))},k=n(93433),O=(n(92222),n(21249),n(57640),n(9924),n(69826),n(41539),n(31672),n(2490),n(59461),n(2707),n(47941),n(16645)),D=n(7693),Z=n(92903),S=n(96929),T=n(40970),_=n(89479),j=n(91128),N=n(97723),M=n(4942),P=(n(15581),n(34514),n(54747),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(89692)),F=n(16978),L=n(9058),B=n(82351),A=function(){return a.createElement(y.Flex,{column:!0,width:"300px",gap:1},a.createElement(y.TextSmall,{strong:!0,color:"white"},"Not finding a chart?"),a.createElement(y.TextSmall,{color:"white"},"When selecting",a.createElement(y.TextSmall,{strong:!0,color:"white",margin:[0,1]},"All Nodes"),"you search and add charts using their context. The outcome will be a composite chart over All Nodes, like on the Overview tab."),a.createElement(y.TextSmall,{color:"white"},"When you select a",a.createElement(y.TextSmall,{strong:!0,color:"white",margin:[0,1]},"specific Node"),"you search and add charts using their name. The result is a specific chart over the node selected, like on Single Node tab."))},H=function(){return a.createElement(B.Z,{isBasic:!0,plain:!0,content:A,align:"bottom"},a.createElement(y.Icon,{name:"question",color:"textDescription",size:"small"}))};function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var W=function(e){var t=e.spaceId,n=e.roomId,r=e.value,o=e.onChange,l=e.options,c=e.testid,d=e.selectedNodeIds,i=null===r||void 0===r?void 0:r.value,s=(0,L.e)(),u=(0,_.Cd)(i&&n,i),m=(0,a.useMemo)((function(){s.getNodes({id:"newDashboardChart"}).forEach((function(e){return e.destroy()}));var e=(0,P.ZP)(u),a=e.info,r=e.valueRange,o=e.height,l=e.colors,c=s.makeChart({attributes:R({id:"newDashboardChart",contextScope:[i],host:"/api/v3/spaces/".concat(t,"/rooms/").concat(n),roomId:n,info:a,valueRange:r,height:"".concat(o+207,"px"),enabledNavigation:!1,selectedNodes:d},l&&{colors:l})});return s.getRoot().appendChild(c),c}),[s,i]);return(0,a.useEffect)((function(){return function(){return m.destroy()}}),[]),a.createElement(y.Flex,{gap:6,column:!0},a.createElement(y.Flex,{gap:2,column:!0,"data-testid":c},a.createElement(y.Flex,{gap:2},a.createElement(y.H5,null,"Context in room overview"),a.createElement(H,null)),a.createElement(y.Select,{options:l,value:r,onChange:o,isClearable:!0,form:c})),r&&a.createElement(y.Flex,{height:{min:"320px"},column:!0},a.createElement(F.Z,{chart:m,margin:[2,0,0]})))},z={label:"All Nodes",value:"all-nodes"},J={label:"All Nodes (no reachable nodes)",value:"all-nodes",isDisabled:!0},Y=function(e){var t=e.id,n=e.isLive,a=e.name;return{label:n?a:"".concat(a," (offline)"),value:t,isDisabled:!n}},q=function(e){return{value:e,label:e}},V=function(e){var t=e.id,n=e.onClose,r=(0,c.th)(),o=(0,i.UL)(),l=(0,u.LJ)(t,"name"),d=(0,i.Hm)("name"),s=(0,S.zN)(),m=(0,x.HZ)().length>0,f=(0,S.fD)(),h=(0,x.Ne)(s),g=(0,N.jN)(t),b=m?z:J,v=(0,a.useState)(b.value),E=(0,p.Z)(v,2),C=E[0],w=E[1],I=(0,a.useState)(null),M=(0,p.Z)(I,2),P=M[0],F=M[1],B=(0,a.useMemo)((function(){return[b].concat((0,k.Z)(h.map(Y)))}),[h]),A=(0,a.useMemo)((function(){return B.find((function(e){return e.value===C}))}),[B,C]),H=(0,a.useCallback)((function(e){w((null===e||void 0===e?void 0:e.value)||b.value),F(null)}),[]),U=(0,a.useMemo)((function(){return C===b.value?[]:[C]}),[C]),R=(0,T.Z)(o,U,{spaceId:r});if(R)throw R;var V=(0,_.Cd)(o),K=(0,a.useMemo)((function(){return Object.keys(V).sort((function(e,t){return e.localeCompare(t,void 0,{sensitivity:"accent"})})).map(q)}),[V]);(0,a.useEffect)((function(){K.length&&A&&F((function(e){return e||K[0].value}))}),[P,K,A]);var Q=(0,a.useMemo)((function(){return P&&q(P)}),[P]),X=(0,a.useCallback)((function(e){return F(null===e||void 0===e?void 0:e.value)}),[]),G=V[P],$=(0,L.e)(),ee=(0,a.useCallback)((function(){var e=$.getNode({id:"newDashboardChart"}).getAttributes(),t=e.aggregationMethod,a=e.selectedDimensions,r=e.groupBy,o=e.groupByLabel,l=e.groupingMethod,c=e.chartType,d=e.selectedLabels,i=e.selectedNodes,s=e.selectedInstances,u=e.nodesScope,m=e.contextScope;g(m,{aggregationMethod:t,selectedDimensions:a,groupBy:r,groupByLabel:o,groupingMethod:l,chartType:c,selectedLabels:d,selectedNodes:i,selectedInstances:s,nodesScope:u},(function(){return setTimeout(n)}))}),[C,G]),te=!P,ne=(0,j.Z)();return(0,a.useEffect)((function(){return ne(!0),function(){return ne(!1)}})),a.createElement(O.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n,overflow:"visible"},a.createElement(D.x,{onClose:n,title:"Add Chart to Dashboard"},a.createElement(y.Button,{label:"Add chart",icon:"plus",onClick:ee,disabled:te,"data-testid":"addChartModal-addChart-button"})),a.createElement(Z.B,null,"Add Charts to ",l),a.createElement(O.TZ,{overflow:"visible"},a.createElement(y.Flex,{gap:6,column:!0},a.createElement(y.Flex,{gap:2,column:!0,"data-testid":"addChartModal-selectNodes"},a.createElement(y.H5,null,"Nodes in ",d),a.createElement(y.Select,{options:B,value:A,onChange:H,isLoading:!f,isClearable:!0,form:"addChartModal-selectNodes"})),Q&&a.createElement(W,{id:t,spaceId:r,roomId:o,value:Q,onChange:X,options:K,testid:"addChartModal-selectChart",selectedNodeIds:U}))))},K=n(91268),Q=["text","TextComponent"],X=function(e){var t=e.text,n=e.TextComponent,r=void 0===n?y.Text:n,o=(0,E.Z)(e,Q),l=(0,a.useRef)(),c=(0,a.useState)(!1),d=(0,p.Z)(c,2),i=d[0],s=d[1];(0,a.useEffect)((function(){if(l.current){var e=l.current.offsetWidth<l.current.scrollWidth;s(e)}}),[]);var u=a.createElement(r,(0,v.Z)({ref:l,truncate:!0},o),t);return i?a.createElement(B.Z,{content:t,align:"bottom",stretch:"align",isBasic:!0},u):u},G=function(e){var t=e.id,n=(0,u.LJ)(t,"name");return a.createElement(X,{TextComponent:y.H0,text:n})},$=function(){var e=(0,b.Z)("addChartModal"),t=(0,p.Z)(e,2)[1];return(0,x.Mm)().length>0?a.createElement(y.Button,{neutral:!0,flavour:"hollow",label:"Add chart",icon:"chart_added",onClick:t,"data-testid":"dashboardHeaderActionBar-addChart-button","data-ga":"action-bar::click-add-chart::cust-dashboard"}):null},ee=function(e){var t=e.id,n=(0,N.Kq)(t);return a.createElement(y.Button,{neutral:!0,flavour:"hollow",label:"Add text",icon:"text_add",onClick:n,"data-testid":"dashboardHeaderActionBar-addText-button","data-ga":"action-bar::click-add-text::cust-dashboard"})},te=n(93017),ne=n(67336),ae=n(14428),re=function(e){var t=e.id,n=(0,te.Z)(),r=(0,p.Z)(n,2)[1],o=(0,ne.O9)(t,{onFail:r}),l=(0,u.LJ)(t,"processing"),c=(0,u.LJ)(t,"isOwner"),d=(0,u.DS)(t);return a.createElement(ae.Z,{permission:c?"dashboard:Update":"dashboard:UpdateSelf",flavour:"hollow",label:"Save",icon:"save",onClick:o,disabled:d,isLoading:l,"data-testid":"dashboardHeaderActionBar-save-button","data-ga":"action-bar::click-save::cust-dashboard"})},oe=function(e){var t=e.id;return a.createElement(y.Flex,{gap:2},a.createElement($,null),a.createElement(ee,{id:t}),a.createElement(re,{id:t}))},le=(0,a.memo)(oe),ce=n(71992),de=n(46667),ie=n(62200),se=n(59112),ue=n(16512),me=function(e){var t=e.close,n=(0,a.useState)(!0),o=(0,p.Z)(n,2),l=o[0],c=o[1],d=(0,u.r0)(),s=(0,u.HI)({id:d,key:"name"}),f=(0,p.Z)(s,2),h=f[0],g=f[1],b=(0,a.useState)(h),v=(0,p.Z)(b,2),E=v[0],x=v[1],w=(0,ne.O9)(d),I=(0,m.UK)(),k=(0,r.s0)(),S=(0,i.A3)(),T=E.length>0,_=l&&T&&E!==h,j=(0,a.useCallback)((function(){g(E),w().then((function(e){var n=e.data.slug,a="".concat(S,"/dashboards/").concat(n);I({id:d,slug:n,path:a}),k(a,{replace:!0}),t()}))}),[t,E,d,S]);return a.createElement(O.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t,"data-testid":"renameDashboard-modal"},a.createElement(D.x,{onClose:t,title:"Rename Dashboard"},a.createElement(y.Button,{label:"Save Changes",onClick:j,disabled:!_})),a.createElement(Z.B,{"data-testid":"renameDashboard-title"},"Rename dashboard ",h),a.createElement(O.TZ,null,a.createElement(se.Z,{value:E,label:"Name",onChange:function(e){x(e.target.value)},isValid:l,setIsValid:c,isDirty:T,instantFeedback:"all",onKeyDown:function(e){return e.keyCode===ie.DV&&_&&j()},"data-testid":"renameDashboard-input"}),a.createElement(y.Flex,{column:!0,justifyContent:"between",height:"100%",margin:[8,0,16],"data-testid":"renameDashboard-learnMoreSection"},a.createElement(ue.R4,null,a.createElement(ue.by,{name:"help"}),a.createElement(y.Text,null,"Learn more about Dashboards")," ",a.createElement(ue.rU,{href:"https://learn.netdata.cloud/docs/cloud/visualize/dashboards",target:"_blank",rel:"noopener noreferrer"},"In our documentation")),a.createElement(ue.Q0,{src:C.X,alt:"No nodes",title:"No nodes"}))))},fe=function(){var e=(0,r.s0)(),t=(0,c.uk)(),n=(0,i.vf)(),o=(0,u.r0)(),l=(0,u.LJ)(o).name,d=(0,i.Hm)("name"),s=(0,de.Z)(),m=(0,p.Z)(s,4),f=m[0],h=m[2],g=m[3],b=(0,de.Z)(),v=(0,p.Z)(b,4),E=v[0],C=v[2],x=v[3],w=(0,a.useCallback)((function(){e("/spaces/".concat(t,"/rooms/").concat(n,"/dashboards"))}),[t,n]),I=(0,N.CO)(o,{onSuccess:w});return a.createElement(a.Fragment,null,a.createElement(ce.Z,{category:"dashboard",context:"title",testId:"dashboardDropdown"},(function(e){var t=e.close;return a.createElement(a.Fragment,null,a.createElement(ce.h,{icon:"pencilOutline",onClick:function(){t(),C()},"data-testid":"renameDashboard-option","data-ga":"dropdown-item::click-rename-dashboard::cust-dashboard"},"Rename Dashboard"),a.createElement(ce.h,{icon:"trashcan",color:"errorText",onClick:function(){t(),h()},"data-testid":"removeDashboard-option","data-ga":"dropdown-item::click-remove-dashboard::cust-dashboard"},"Delete Dashboard"))})),E&&a.createElement(me,{close:x}),f&&a.createElement(y.ConfirmationDialog,{confirmLabel:"Yes, delete","data-ga":"delete-dashboard-dialog","data-testid":"deleteDashboardDialog",handleConfirm:I,handleDecline:g,message:a.createElement(a.Fragment,null,"You are about to delete ",a.createElement("strong",null,l)," from ",a.createElement("strong",null,d),".",a.createElement("br",null),"Are you sure you want to continue?"),title:"Delete ".concat(l)}))},he=function(e){var t=e.id;return a.createElement(y.Flex,{justifyContent:"between",padding:[3,2.5],"data-testid":"dashboardHeader"},a.createElement(y.Flex,{alignItems:"center"},a.createElement(fe,null),a.createElement(G,{id:t})),a.createElement(le,{id:t}))},ge=(0,a.memo)(he),pe=n(69968),be=n.n(pe),ve=(n(48564),n(79424),n(6811)),Ee=["style","className","onMouseDown","onMouseUp","onTouchEnd","children"],ye=["id","Component"],Ce=(0,pe.WidthProvider)(be()),xe=(0,a.forwardRef)((function(e,t){var n=e.style,r=e.className,o=e.onMouseDown,l=e.onMouseUp,c=e.onTouchEnd,d=e.children,i=(0,E.Z)(e,Ee);return a.createElement("div",(0,v.Z)({style:n,className:r,ref:t,onMouseDown:o,onMouseUp:l,onTouchEnd:c},i),d.map((function(e){return"function"===typeof e?e({onMouseDown:o,onMouseUp:l,onTouchEnd:c}):e})))})),we=function(e){return{i:e.i,x:e.x,y:e.y,w:e.w,h:e.h,minW:e.minW,minH:e.minH}},Ie=function(e){var t=e.id,n=e.Component,r=(0,E.Z)(e,ye),o=(0,ve.ZL)(t),l=(0,p.Z)(o,2),c=l[0],d=l[1],i=(0,a.useCallback)((function(e){var t=e.map(we);d(t)}),[]),s=(0,a.useMemo)((function(){return c.map((function(e){var r=e.i;return a.createElement(xe,{key:r},(function(e){return a.createElement(n,(0,v.Z)({key:r,id:t,cardId:r},e))}))}))}),[c]);return a.createElement(y.Flex,{column:!0,gap:2,width:"100%",overflow:"auto"},a.createElement(Ce,(0,v.Z)({},r,{layout:c,onLayoutChange:i,measureBeforeMount:!0,useCSSTransforms:!0,preventCollision:!1,isDroppable:!0}),s))};Ie.defaultProps={rowHeight:30,cols:12};var ke=Ie,Oe=n(45215),De=n(22841),Ze=n(60677),Se=(0,Ze.default)(y.Flex).attrs({height:"100%",background:"mainBackground",round:!0,cursor:"move"}).withConfig({displayName:"container__Card",componentId:"sc-esi601-0"})(["box-shadow:0px 0px 1px rgba(0,0,0,0.04),0px 2px 6px rgba(0,0,0,0.04),0px 10px 20px rgba(0,0,0,0.04);"]),Te=(0,Ze.default)(y.Flex).attrs({column:!0,cursor:"default",height:{max:"100%"},overflow:"hidden",onMouseDown:function(e){return e.stopPropagation()}}).withConfig({displayName:"content__CardContent",componentId:"sc-1x8kdiw-0"})([""]),_e=function(e){var t=e.chart;return a.createElement(Te,{flex:!0,"data-testid":"chartContent"},a.createElement(F.Z,{chart:t}))},je=["id","cardId","onMouseDown","onMouseUp","onTouchEnd"],Ne=["nodeId"];function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Me(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Me(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Fe=(0,a.memo)((function(e){var t=e.id,n=e.cardId,r=e.onMouseDown,o=e.onMouseUp,l=e.onTouchEnd,c=(0,E.Z)(e,je),d=(0,L.e)(),i=(0,De._q)(t,n)||{},s=i.nodeId,u=(0,E.Z)(i,Ne),m=(0,a.useMemo)((function(){var e=d.makeChart({attributes:Pe(Pe({cardId:n,dashboardId:t},u),!!s&&{nodesScope:[s]}),makeTrack:Oe.vL});return(0,Oe.ZO)(d,t).appendChild(e),e}),[t,n]);return(0,a.useLayoutEffect)((function(){m.updateAttributes({onMouseDownDrag:r,onMouseUpDrag:o,onTouchEndDrag:l})}),[r,o,l]),a.createElement(Se,(0,v.Z)({"data-testid":"chart","data-testId":"chartCard-".concat((u.contextScope||[]).join(","))},c),a.createElement(_e,{chart:m}))})),Le=Fe,Be="text",Ae="customDashboard",He=function(e){var t=e.id,n=e.cardId,r=e.onClick,o=(0,De.I_)(t,n,"editing"),l=(0,De.IT)(t,n,"editing");return a.createElement(ce.h,{icon:"pencilSolid",onClick:function(){r(),l(!0)},"data-ga":"".concat(Be,"-reset::").concat(Ae),"data-testid":"textCard-edit",disabled:o},"Edit")},Ue=function(e){var t=e.id,n=e.cardId,r=(0,N.Zj)(t,n);return a.createElement(ce.h,{icon:"trashcan",onClick:r,"data-ga":"".concat(Be,"-reset::").concat(Ae),"data-testid":"textCard-remove"},"Remove")},Re=function(e){var t=e.id,n=e.cardId;return a.createElement(ce.Z,{category:Be,context:Ae,testId:"chartTextDropdown"},(function(e){var r=e.close;return a.createElement(a.Fragment,null,a.createElement(He,{id:t,cardId:n,onClick:r}),a.createElement(Ue,{id:t,cardId:n}))}))},We=function(e){var t=e.id,n=e.cardId;return a.createElement(y.Flex,{alignSelf:"start","data-testid":"textCardHeader"},a.createElement(Re,{id:t,cardId:n}))},ze=(n(66992),n(88674),n(78783),n(33948),(0,n(2145).Z)((function(){return Promise.all([n.e(575),n.e(189)]).then(n.bind(n,8937))}),"Editor")),Je=function(e){return a.createElement(a.Suspense,{fallback:""},a.createElement(ze,e))},Ye=(0,Ze.default)(y.Flex).attrs({as:"form",column:!0,flex:!0,gap:2,onMouseDown:function(e){return e.stopPropagation()}}).withConfig({displayName:"form__CardContent",componentId:"sc-3tcqxu-0"})(["cursor:auto;"]),qe={toolbar:!1,placeholder:{text:"Type your text",hideOnClick:!1}},Ve=function(e){var t=e.id,n=e.cardId,r=(0,De.I_)(t,n,"text"),o=(0,De.IT)(t,n,"editing"),l=(0,De.IT)(t,n,"text"),c=(0,a.useState)(r),d=(0,p.Z)(c,2),i=d[0],s=d[1],u=(0,a.useCallback)((function(){return o(!1)}),[]),m=(0,a.useCallback)((function(){l(i),o(!1)}),[i]);return a.createElement(Ye,{"data-testid":"textCardForm"},a.createElement(y.Flex,{round:!0,border:!0,padding:[2],column:!0},a.createElement(Je,{autoFocus:!0,text:i,options:qe,onChange:s})),a.createElement(y.Flex,{justifyContent:"end",gap:1},a.createElement(y.Button,{type:"button",flavour:"borderless",label:"Cancel",small:!0,width:"initial",onClick:u,"data-testid":"textCardForm-cancel"}),a.createElement(y.Button,{type:"button",label:"Done",small:!0,width:"initial",onClick:m,"data-testid":"textCardForm-done"})))},Ke=function(e){return e.stopPropagation()},Qe={toolbar:!1,disableEditing:!0,placeholder:{text:"Type your text",hideOnClick:!1}},Xe=function(e){var t=e.id,n=e.cardId,r=(0,De.I_)(t,n,"text");return a.createElement(y.Box,{"data-testid":"textCardContent",onMouseDown:Ke},a.createElement(Je,{text:r,options:Qe}))},Ge=(0,Ze.default)(Se).withConfig({displayName:"text__StyledCard",componentId:"sc-1f67m9f-0"})(["cursor:move;"]),$e=["id","cardId"],et={chart:Le,text:(0,a.memo)((function(e){var t=e.id,n=e.cardId,r=(0,De.I_)(t,n,"editing");return a.createElement(Ge,{column:!0,"data-testid":"textCard"},a.createElement(We,{id:t,cardId:n}),r&&a.createElement(Ve,{id:t,cardId:n}),!r&&a.createElement(Xe,{id:t,cardId:n}))}))},tt=function(e){var t=e.id,n=e.cardId,r=(0,E.Z)(e,$e),o=(0,De.I_)(t,n,"type"),l=et[o]||et.chart;return a.createElement(l,(0,v.Z)({id:t,cardId:n},r))},nt=["id"],at=function(e){var t=e.id,n=(0,E.Z)(e,nt);return(0,Oe.ZP)(t),a.createElement(ke,(0,v.Z)({id:t,Component:tt},n))};function rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function ot(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rt(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var lt=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=(0,a.useContext)(r.Us).navigator,o=(0,r.TH)();(0,a.useEffect)((function(){if(t){var a=n.block((function(t){var n=ot(ot({},t),{},{retry:function(){a(),t.retry()}});e(n)}));return a}}),[n,e,t,o])}((0,a.useCallback)((function(t){"REPLACE"!==t.action?window.confirm(e)&&t.retry():t.retry()}),[e]),t)},ct=function(e){var t=e.id,n=(0,b.Z)("addChartModal"),r=(0,p.Z)(n,4),o=r[0],l=r[3],c=(0,u.LJ)(t),d=c.fullyLoaded,i=c.cardIds;return function(e){var t=(0,u.DS)(e);lt("Are you sure you want to leave this dashboard?\nChanges will be lost.",!t)}(t),a.createElement(K.Z,{padding:[3],margin:[0,0,8,0]},a.createElement(ge,{id:t}),d&&i.length>0&&a.createElement(at,{id:t}),d&&0===i.length&&a.createElement(I,null),o&&a.createElement(V,{id:t,onClose:l}))},dt=(0,a.memo)((function(){(0,d.Z)(),function(){var e=(0,r.UO)().dashboardSlug,t=(0,o.Jh)(),n=(0,o.FP)();(0,a.useEffect)((function(){n!==e&&t(e)}),[n,e]),(0,a.useEffect)((function(){return function(){return t(null)}}),[])}(),(0,l.Pf)();var e=(0,c.th)(),t=(0,c.uk)(),n=(0,i.UL)(),h=(0,i.vf)(),p=(0,u.r0)(),b=(0,u.FV)("slug");(0,m.bV)({title:b,id:p,destination:b,type:"dashboards"});var v=(0,s.L)();return(0,f.Z)(v&&p,{spaceId:e,spaceSlug:t,roomId:n,roomSlug:h})?a.createElement(g,null):a.createElement(ct,{id:p})}))}}]); \ No newline at end of file
diff --git a/web/gui/v2/447.d73a7051f850d9257b12.chunk.js b/web/gui/v2/447.99c65cf897c2e7a4e174.chunk.js
index c2f2ee06..d8921d7c 100644
--- a/web/gui/v2/447.d73a7051f850d9257b12.chunk.js
+++ b/web/gui/v2/447.99c65cf897c2e7a4e174.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9fabf08d-50b2-4d8b-aba8-3e6e5ed7296a",e._sentryDebugIdIdentifier="sentry-dbid-9fabf08d-50b2-4d8b-aba8-3e6e5ed7296a")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[447],{38626:function(e,n,t){var o=t(45987),r=t(67294),i=t(15557),f=t(64637),u=t(82351),d=["maxLength","text","TextComponent"];n.Z=function(e){var n=e.maxLength,t=e.text,a=e.TextComponent,c=void 0===a?i.Text:a,s=(0,o.Z)(e,d),l=(0,r.useMemo)((function(){return(0,f.a)(t,n)}),[n,t]);return l.length===t.length?r.createElement(c,s,t):r.createElement(u.Z,{content:t,align:"bottom",isBasic:!0},r.createElement(c,s,l))}},76362:function(e,n,t){t.d(n,{S1:function(){return i},ZT:function(){return o},ae:function(){return u},jU:function(){return f},on:function(){return r}});var o=function(){};function r(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.addEventListener&&e.addEventListener.apply(e,n)}function i(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.removeEventListener&&e.removeEventListener.apply(e,n)}var f="undefined"!==typeof window,u="undefined"!==typeof navigator},11042:function(e,n,t){var o=t(67294),r=t(76362).jU?o.useLayoutEffect:o.useEffect;n.Z=r},88553:function(e,n,t){var o=t(67294),r=t(11042),i=t(76362),f={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};n.Z=i.jU&&"undefined"!==typeof window.ResizeObserver?function(){var e=(0,o.useState)(null),n=e[0],t=e[1],i=(0,o.useState)(f),u=i[0],d=i[1],a=(0,o.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var n=e[0].contentRect,t=n.x,o=n.y,r=n.width,i=n.height,f=n.top,u=n.left,a=n.bottom,c=n.right;d({x:t,y:o,width:r,height:i,top:f,left:u,bottom:a,right:c})}}))}),[]);return(0,r.Z)((function(){if(n)return a.observe(n),function(){a.disconnect()}}),[n]),[t,u]}:function(){return[i.ZT,f]}},94829:function(e,n,t){var o=t(67294),r=t(76362);n.Z=function(e,n){var t=(0,o.useState)(function(e,n){return void 0!==n?n:!!r.jU&&window.matchMedia(e).matches}(e,n)),i=t[0],f=t[1];return(0,o.useEffect)((function(){var n=!0,t=window.matchMedia(e),o=function(){n&&f(!!t.matches)};return t.addListener(o),f(t.matches),function(){n=!1,t.removeListener(o)}}),[e]),i}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3587b790-2956-4b83-bb65-9b3a0ad96c4b",e._sentryDebugIdIdentifier="sentry-dbid-3587b790-2956-4b83-bb65-9b3a0ad96c4b")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[447],{38626:function(e,n,t){var o=t(45987),r=t(67294),i=t(57509),f=t(64637),u=t(82351),d=["maxLength","text","TextComponent"];n.Z=function(e){var n=e.maxLength,t=e.text,a=e.TextComponent,c=void 0===a?i.Text:a,s=(0,o.Z)(e,d),b=(0,r.useMemo)((function(){return(0,f.a)(t,n)}),[n,t]);return b.length===t.length?r.createElement(c,s,t):r.createElement(u.Z,{content:t,align:"bottom",isBasic:!0},r.createElement(c,s,b))}},76362:function(e,n,t){t.d(n,{S1:function(){return i},ZT:function(){return o},ae:function(){return u},jU:function(){return f},on:function(){return r}});var o=function(){};function r(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.addEventListener&&e.addEventListener.apply(e,n)}function i(e){for(var n=[],t=1;t<arguments.length;t++)n[t-1]=arguments[t];e&&e.removeEventListener&&e.removeEventListener.apply(e,n)}var f="undefined"!==typeof window,u="undefined"!==typeof navigator},11042:function(e,n,t){var o=t(67294),r=t(76362).jU?o.useLayoutEffect:o.useEffect;n.Z=r},88553:function(e,n,t){var o=t(67294),r=t(11042),i=t(76362),f={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};n.Z=i.jU&&"undefined"!==typeof window.ResizeObserver?function(){var e=(0,o.useState)(null),n=e[0],t=e[1],i=(0,o.useState)(f),u=i[0],d=i[1],a=(0,o.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var n=e[0].contentRect,t=n.x,o=n.y,r=n.width,i=n.height,f=n.top,u=n.left,a=n.bottom,c=n.right;d({x:t,y:o,width:r,height:i,top:f,left:u,bottom:a,right:c})}}))}),[]);return(0,r.Z)((function(){if(n)return a.observe(n),function(){a.disconnect()}}),[n]),[t,u]}:function(){return[i.ZT,f]}},94829:function(e,n,t){var o=t(67294),r=t(76362);n.Z=function(e,n){var t=(0,o.useState)(function(e,n){return void 0!==n?n:!!r.jU&&window.matchMedia(e).matches}(e,n)),i=t[0],f=t[1];return(0,o.useEffect)((function(){var n=!0,t=window.matchMedia(e),o=function(){n&&f(!!t.matches)};return t.addListener(o),f(t.matches),function(){n=!1,t.removeListener(o)}}),[e]),i}}}]); \ No newline at end of file
diff --git a/web/gui/v2/451.c12c367c27438b213814.chunk.js b/web/gui/v2/451.aec55cb715f41fc72a63.chunk.js
index c40b78bb..e5896f75 100644
--- a/web/gui/v2/451.c12c367c27438b213814.chunk.js
+++ b/web/gui/v2/451.aec55cb715f41fc72a63.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d9086578-3587-429d-a209-488e8590085f",e._sentryDebugIdIdentifier="sentry-dbid-d9086578-3587-429d-a209-488e8590085f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[451],{51091:function(e,t,a){var n=a(87462),r=a(45987),l=(a(57327),a(41539),a(88449),a(2490),a(59849),a(21249),a(57640),a(9924),a(92222),a(60677)),i=a(10928),c=a.n(i),o=a(67294),s=a(15557),u=["items","isBig","showBackButton","testid"],d=(0,l.default)(s.Box).withConfig({displayName:"breadcrumbs__StyledItemContainer",componentId:"sc-3u39st-0"})([""]),m=(0,l.css)(["&:hover{color:",";}"],(function(e){var t=e.withHover,a=e.theme;return t&&(0,s.getColor)("success")({theme:a})})),g=(0,l.default)(s.Text).withConfig({displayName:"breadcrumbs__StyledText",componentId:"sc-3u39st-1"})(["",""],m),f=(0,l.default)(s.TextSmall).withConfig({displayName:"breadcrumbs__StyledTextSmall",componentId:"sc-3u39st-2"})(["",""],m);t.Z=function(e){var t=e.items,a=e.isBig,l=e.showBackButton,i=void 0===l||l,m=e.testid,v=void 0===m?"":m,h=(0,r.Z)(e,u),b=(0,o.useMemo)((function(){return null!==t&&void 0!==t&&t.length&&i?c()(t.filter((function(e){return!!e.onClick}))).onClick:null}),[t,i]);if(null===t||void 0===t||!t.length)return null;var p=a?g:f;return o.createElement(s.Flex,(0,n.Z)({gap:4},h),i&&o.createElement(s.Button,{onClick:b,icon:"chevron_left",label:"Back",neutral:!0,flavour:"hollow",small:!0,padding:[0,2,0,1],textTransform:"uppercase","data-testid":"".concat(v,"-breadcrumbs-backButton")}),o.createElement(s.Flex,{gap:2,alignItems:"center"},t.map((function(e,t){var a=e.isDisabled,r=e.name,l=e.onClick;return o.createElement(d,(0,n.Z)({key:t,alignItems:"center"},l&&{cursor:"pointer",onClick:l},{"data-testid":"".concat(v,"-breadcrumbs-level-").concat(t)}),o.createElement(p,{color:a&&"textLite","data-testid":"".concat(v,"-breadcrumbs-level-").concat(t),withHover:!!l},0!==t&&" / ",r))}))))}},25451:function(e,t,a){a.r(t),a.d(t,{default:function(){return be}});var n=a(67294),r=a(4480),l=a(99322),i=a(91268),c=a(84074),o=a(29439),s=a(46667),u=a(29814),d=a(72843),m=a(54316),g={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:a(97363).Z,dataTestId:"filterBar",label:"Filters"}},f=["filters"],v=function(){var e=(0,s.Z)(!0),t=(0,o.Z)(e,2),a=t[0],r=t[1],l=g.filters.Content;return n.createElement(m.ZP,{collapsedComponent:n.createElement(u.Z,{onClickTab:r,availableTabs:g,tabsToShow:f}),isOpen:a,header:n.createElement(d.Z,{isOpen:a,onToggle:r,title:"Alerts",icon:"alarm"})},n.createElement(l,{flavour:"alerts",padding:[0,3,30]}))},h=a(15557),b=a(96929),p=a(36560),y=a(12008),C=a(597),E=a(78266),w=(a(21249),a(57640),a(9924),a(87462)),S=a(45987),x=a(60677),I=a(20686),T=["type","value"],k=(0,x.default)(h.Text).attrs({whiteSpace:"normal",wordBreak:"break-word"}).withConfig({displayName:"tableSchema__TextCell",componentId:"sc-u3gyvm-0"})([""]),N=function(e){return function(t){var a=t.getValue;return n.createElement(k,e,a())}},Z=(0,x.default)(h.Icon).withConfig({displayName:"tableSchema__StyledIcon",componentId:"sc-u3gyvm-1"})(["vertical-align:middle;"]),A=function(e){var t=e.type,a=e.value,r=(0,S.Z)(e,T);return n.createElement(h.Flex,(0,w.Z)({padding:[0,2]},r,{justifyContent:"center"}),0===a?n.createElement(k,{textAlign:"center"},"-"):n.createElement(I.Z,{type:t,textSize:"normal","data-testid":"alertView-alertPill-".concat(t)},a))},V={id:"chevron",header:"",cell:function(){return n.createElement(Z,{rotate:2,name:"chevron_left",color:"textDescription"})}},_=[{id:"displayName",accessorKey:"displayName",header:"Alert Name",cell:function(e){var t=e.getValue;return n.createElement(k,{"data-testid":"alertName"},t())}},{id:"nodesRunningAlert",accessorKey:"nodeCount",header:"Nodes Running Alert",cell:function(e){var t=e.getValue;return n.createElement(k,{textAlign:"center","data-testid":"nodesRunningAlert"},t())}},{id:"alertInstances",accessorKey:"instanceCount",header:"Alert Instances",cell:function(e){var t=e.getValue;return n.createElement(k,{textAlign:"center","data-testid":"alertInstances"},t())}},{id:"criticalNodes",accessorKey:"criticalCount",header:"Critical",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"critical",value:t(),"data-testid":"criticalNodes"})}},{id:"warningNodes",accessorKey:"warningCount",header:"Warning",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"warning",value:t(),"data-testid":"warningNodes"})}},{id:"clearNodes",accessorKey:"clearCount",header:"Clear",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"clear",value:t(),"data-testid":"clearNodes"})}},{id:"errorNodes",accessorKey:"errorCount",header:"Error",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"neutral",value:t(),"data-testid":"errorNodes"})}},{id:"uniqueConfigs",accessorKey:"configCount",header:"Configs",cell:function(e){var t=e.getValue;return n.createElement(k,{textAlign:"center","data-testid":"uniqueConfigs"},t())}}],z=a(50358),K=a(63860),O=a(97945),L=a(62200),P=(0,x.default)(h.TextSmall).withConfig({displayName:"styled__StyledLinkText",componentId:"sc-1y769u1-0"})(["",""],"\n cursor: pointer;\n overflow-wrap: break-word;\n max-width: 140px;\n &:hover {\n opacity: 0.7;\n }\n"),F=(0,x.default)(h.TextSmall).withConfig({displayName:"styled__StyledText",componentId:"sc-1y769u1-1"})(["&:hover{color:",";text-decoration:underline;}"],(0,h.getColor)("accent")),R=a(38626),j=a(91008),B=function(e){var t=e.row,a=e.value,r=e.openModal,l=t.original,i=l.id,c=l.displayName,o=l.info,s=(0,n.useCallback)((function(){r({alertId:i})}),[i]);return n.createElement(j.Z,{Component:h.TextSmall,flavour:"tableLink",cursor:"pointer",showToolTip:!0,content:o,onClick:s,"data-testid":"alertsTableSchema-alertName-".concat(a),"data-ga":"alerts-table::click-alert::alerts-view::".concat(a)},c)},D=function(e){var t=e.row,a=e.nodeId,r=t.original.id,l=(0,O.bV)(a,"name"),i=(0,O.WR)(a,{alertId:r});return n.createElement(h.Flex,{width:35,"data-testid":"alertsTableSchema-nodeName-".concat(l),"data-ga":"alerts-table::click-node::alerts-view::".concat(l)},n.createElement(P,{onClick:i},n.createElement(R.Z,{maxLength:L.sf,text:l,TextComponent:F})))},M=function(e){var t=e.row,a=e.value,r=t.original,l=r.id,i=r.nodeId,c=r.instanceName,o=(0,O.WR)(i,{alertId:l});return n.createElement(h.Flex,{"data-testid":"alertsTableSchema-chart-id-".concat(a),"data-ga":"alerts-table::click-chartId::alerts-view::".concat(a)},n.createElement(P,{onClick:o},n.createElement(R.Z,{maxLength:25,TextComponent:F,text:c})))},U=function(e){var t=e.openModal;return[{id:"status",accessorKey:"status",header:"Status",cell:function(e){var t=e.getValue;return n.createElement(I.Z,{type:"".concat(t(),"AlertsTable"),"data-testid":"alertsTable-alertPill","data-ga":"alerts-table::click-status::alerts-view::".concat(t())},t())},size:80,maxSize:80,minSize:80},{id:"name",accessorKey:"displayName",header:"Alert",cell:function(e){var a=e.row,r=e.getValue;return n.createElement(B,{row:a,value:r(),openModal:t})}},{id:"instance",header:"Instance",accessorKey:"instance",cell:function(e){var t=e.row,a=e.getValue;return n.createElement(M,{row:t,value:a()})},minSize:200,maxSize:200,size:200},{id:"nodeName",header:"Node",accessorKey:"nodeId",cell:function(e){var t=e.row,a=e.getValue;return n.createElement(D,{row:t,nodeId:a()})},minSize:200,maxSize:200,size:200},{id:"value",header:"Latest value",accessorKey:"value",cell:function(e){var t=e.row,a=e.getValue,r=t.original,l=r.status,i=r.units;return n.createElement(z.Z,{loaded:!0,status:l,units:i,value:a(),"data-testid":"alertsTableSchema-alertValue","data-ga":"alerts-table::click-alert-value::alerts-view"})},size:120,maxSize:120,minSize:120},{id:"lastUpdated",header:"Updated at",accessorKey:"lastUpdated",cell:function(e){var t=e.getValue;return n.createElement(K.Z,{rawTime:t(),secs:!0,"data-testid":"alertsTableSchema-latestUpdated"})}},{id:"lastStatusChangeValue",header:"Triggered value",accessorKey:"lastStatusChangeValue",cell:function(e){var t=e.row,a=e.getValue,r=t.original,l=r.status,i=r.units;return n.createElement(z.Z,{loaded:!0,status:l,units:i,value:a(),"data-testid":"alertsTableSchema-triggeredValue","data-ga":"alerts-table::click-triggered-value::alerts-view"})},size:120,maxSize:120,minSize:120},{id:"lastStatusChange",header:"Triggered at",accessorKey:"lastStatusChange",cell:function(e){var t=e.getValue;return n.createElement(K.Z,{rawTime:t(),secs:!0,"data-testid":"alertsTableSchema-lastStatusChange"})}}]},G=[{id:"name",accessorKey:"displayName",header:"Alert",cell:N({"data-testid":"alertInstanceName"}),minSize:200,maxSize:200,size:200},{id:"instance",header:"Instance",accessorKey:"instance",cell:function(e){var t=e.row,a=e.getValue;return n.createElement(M,{row:t,value:a()})},minSize:200,maxSize:200,size:200},{id:"status",accessorKey:"status",header:"Status",cell:function(e){var t=e.getValue;return n.createElement(h.Flex,{padding:[0,2]},n.createElement(I.Z,{type:t(),textSize:"normal","data-testid":"alertView-alertPill-value",border:void 0},t()))},minSize:80,maxSize:80,size:80},{id:"lastStatusChangeValue",accessorKey:"lastStatusChangeValue",header:"Triggered value",cell:function(e){var t=e.getValue,a=e.row.original,r=a.status,l=a.units;return n.createElement(z.Z,{loaded:!0,status:r,units:l,value:t(),"data-testid":"alertsTableSchema-alertValue"})},minSize:120,maxSize:120,size:120},{id:"lastStatusChange",accessorKey:"lastStatusChange",header:"Triggered at",cell:function(e){var t=e.getValue;return n.createElement(K.Z,{rawTime:t(),secs:!0,nowrap:!0})},minSize:120,maxSize:120,size:120}],W=a(61294),H=function(){var e=(0,y.__)(),t=(0,o.Z)(e,1)[0],a=t.alertName,r=t.nodeId,l=(0,y.JU)(a,r),i=(0,W.Z)(),c=(0,o.Z)(i,4),s=c[0],u=c[1],d=c[3],m=(0,n.useCallback)((function(e){return u({alertId:e.data.id})}),[a,r]);return n.createElement(n.Fragment,null,n.createElement(h.NetdataTable,{data:l,dataColumns:G,onClickRow:m,enableSorting:!0,enableColumnVisibility:!0}),s&&d)},J=(a(26833),a(85827),a(41539),a(25387),a(2490),a(72608),a(66992),a(70189),a(78783),a(88921),a(96248),a(13599),a(11477),a(64362),a(15389),a(90401),a(45164),a(91238),a(54837),a(87485),a(56767),a(76651),a(61437),a(35285),a(39865),a(33948),[{id:"nodeName",accessorKey:"nodeId",header:"Node Name",cell:function(e){var t=e.getValue,a=(0,O.bV)(t(),"name");return n.createElement(h.Flex,{width:35,"data-testid":"alertsTableSchema-nodeName-".concat(a),"data-ga":"alerts-table::click-node::alerts-view::".concat(a)},n.createElement(R.Z,{maxLength:L.sf,text:a}))}},{id:"nodes",accessorKey:"nodeCount",header:"Node Instances",cell:N({"data-testid":"nodes",textAlign:"center"})},{id:"instances",accessorKey:"instanceCount",header:"Alert Instances",cell:N({"data-testid":"instances",textAlign:"center"})},{id:"critical",accessorKey:"criticalCount",header:"Critical",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"critical",value:t()})}},{id:"warning",accessorKey:"warningCount",header:"Warning",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"warning",value:t()})}},{id:"clear",accessorKey:"clearCount",header:"Clear",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"clear",value:t()})}},{id:"error",accessorKey:"errorCount",header:"Error",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"neutral",value:t(),"data-testid":"errors"})}},{id:"configs",accessorKey:"configCount",header:"Configs",cell:N({"data-testid":"configs",textAlign:"center"})},V]),q=function(){var e=(0,y.__)(),t=(0,o.Z)(e,2),a=t[0].alertName,r=t[1],l=(0,y.JU)(a),i=(0,n.useCallback)((function(e){r({alertName:a,nodeId:e.data.nodeId})}),[a,r]),c=(0,n.useMemo)((function(){return Object.values(l.reduce((function(e,t){switch(e[t.nodeId]||(e[t.nodeId]={nodeId:t.nodeId,nodeCount:1,instanceCount:0,criticalCount:0,warningCount:0,clearCount:0,errorCount:0,configCount:0,configs:new Set}),e[t.nodeId].instanceCount=e[t.nodeId].instanceCount+1,t.status){case"warning":e[t.nodeId].warningCount=e[t.nodeId].warningCount+1;break;case"critical":e[t.nodeId].criticalCount=e[t.nodeId].criticalCount+1;break;case"clear":e[t.nodeId].clearCount=e[t.nodeId].clearCount+1;break;default:t.value||(e[t.nodeId].errorCount=e[t.nodeId].errorCount+1)}return e[t.nodeId].configCount=e[t.nodeId].configs.add(t.aci).size,e}),{}))}),[l]);return n.createElement(h.NetdataTable,{data:c,dataColumns:J,onClickRow:i,enableSorting:!0,enableColumnVisibility:!0})},Q=a(51091),$=function(){var e,t=(0,y.__)(),a=(0,o.Z)(t,2),r=a[0],l=r.alertName,i=r.nodeId,c=a[1],s=(0,O.Ne)(i?[i]:[]),u=null===s||void 0===s||null===(e=s[0])||void 0===e?void 0:e.name,d=(0,n.useMemo)((function(){return u?[{name:"All Alert Configs",onClick:function(){c({alertName:null,nodeId:null})}},{name:l,onClick:function(){c({alertName:l,nodeId:null})}},{name:u}]:l?[{name:"All Alert Configs",onClick:function(){c({alertName:null,nodeId:null})}},{name:l}]:null}),[l,u,c]);return n.createElement(Q.Z,{padding:[2,0,0],items:d,testid:"alertConfigurations"})},Y=(a(47941),a(82526),a(57327),a(88449),a(59849),a(38880),a(15581),a(34514),a(54747),a(49337),a(33321),a(69070),a(4942)),X=a(74059),ee=a(37518),te=a(12899);function ae(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}var ne=function(){var e=(0,ee.UL)(),t=(0,te.R3)(),a=(0,o.Z)(t,2)[1],r=(0,y.__)(),l=(0,o.Z)(r,2)[1],i=(0,X.Q6)(),c=(0,n.useMemo)((function(){return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(a),!0).forEach((function(t){(0,Y.Z)(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ae(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({goto:{handleAction:function(e){var t=e.name;return l({alertName:t})},icon:"chevron_right",tooltipText:"Show configuration"}},!i&&{info:{handleAction:function(t){return a({roomId:e,alert:t})},tooltipText:"Get some help from Netdata Assistant",icon:"netdataAssistant",iconColor:"primary",dataGa:"alerts::click-assistant-icon::active-alerts-table"}})}),[i,a]);return{rowActions:c}},re=function(){return n.createElement(h.Text,null,"Loading...")},le=function(){var e=(0,y.w4)(),t=(0,y.__)(),a=(0,o.Z)(t,2),r=a[0],l=r.alertName,i=r.nodeId,c=a[1],s=(0,te.Nu)(),u=(0,o.Z)(s,2)[1],d=(0,n.useCallback)((function(e){c({alertName:e.data.name})}),[]),m=ne().rowActions;return(0,n.useEffect)((function(){var t=e.map((function(e){return{name:e.alert}}));u(t)}),[e]),n.createElement(h.Flex,{column:!0,gap:4,height:"100%",overflow:"hidden"},n.createElement($,null),i&&n.createElement(n.Suspense,{fallback:n.createElement(re,null)},n.createElement(H,null)),!i&&l&&n.createElement(n.Suspense,{fallback:n.createElement(re,null)},n.createElement(q,null)),!i&&!l&&n.createElement(h.NetdataTable,{data:e,dataColumns:_,enableSorting:!0,enableColumnVisibility:!0,columnPinning:{right:["actions"]},enableColumnPinning:!0,enablePinning:!0,rowActions:m,onClickRow:d}))},ie=a(89250),ce=[{id:"lastStatusChange",desc:!1}],oe=function(){var e=(0,C.K)({extraKey:"alerts"}),t=(0,te.Nu)(),a=(0,o.Z)(t,2)[1],r=(0,W.Z)(),l=(0,o.Z)(r,4),i=l[0],c=l[1],s=l[3],u=function(){var e=(0,ie.s0)(),t=(0,X.uk)(),a=(0,ee.UL)(),r=(0,te.R3)(),l=(0,o.Z)(r,2)[1],i=(0,X.Q6)();return{rowActions:(0,n.useMemo)((function(){return i?{}:{goto:{handleAction:function(){e("/spaces/".concat(t,"/settings/notifications#notificationsActiveTab=1"))},tooltipText:"Go to silencing manager",icon:"alarm_off",dataGa:"alerts-table::click-link-to-manager::active-alerts-table"},info:{handleAction:function(e){return l({roomId:a,alert:e})},tooltipText:"Get some help from Netdata Assistant",icon:"netdataAssistant",iconColor:"primary",dataGa:"alerts::click-assistant-icon::active-alerts-table"}}}),[i,l])}}().rowActions;return(0,n.useEffect)((function(){a(e)}),[e]),n.createElement(n.Fragment,null,n.createElement(h.NetdataTable,{enableSorting:!0,enableColumnVisibility:!0,data:e,dataColumns:U({openModal:c}),rowActions:u,sortBy:ce,columnPinning:{right:["actions"]},enableColumnPinning:!0,enablePinning:!0}),i&&s)},se=(a(92222),a(89405)),ue=function(){var e=function(){var e=(0,se.rA)(),t=e.localeTimeString,a=e.localeDateString,r=(0,l.uy)("updatedAt");return(0,n.useMemo)((function(){if(r){var e=new Date(r);return"".concat(a(e,{long:!0})," ").concat(t(e,{secs:!0}))}}),[r,t,a])}();return n.createElement(h.Flex,{column:!0,justifyContent:"center",alignItems:"center",gap:4},n.createElement(h.Icon,{name:"checkmark",width:"168px",height:"168px",margin:[13,0,0]}),n.createElement(h.H3,{margin:[10,0,0]},"This room has no active alerts, you are all good!"),n.createElement(h.Text,{margin:[2,0,0,0]},"Visit later or check your notifications"),n.createElement(h.TextSmall,{color:"textLite"},"Last updated at: ",e))},de=(0,n.memo)(ue),me=a(46189),ge=function(){return n.createElement(h.Flex,{column:!0,justifyContent:"center",alignItems:"center",margin:[12,0,0]},n.createElement("img",{src:"".concat(me.Z.assetsBaseURL,"/img/no-filter-results.png"),alt:"No Filter Results",title:"No Filter Results"}),n.createElement(h.H3,null,"There are no results for these filtering criteria"))},fe=(0,n.memo)(ge),ve=function(e){var t=e.count,a=(0,l.uy)("ids"),r=(0,l.uy)("loaded"),i=(0,y.ER)(a).length;return r?i?t?n.createElement(oe,null):n.createElement(fe,null):n.createElement(de,null):n.createElement(E.Z,{title:"Loading alerts..."})},he=function(){var e=(0,r.FV)(c.p$),t=(0,o.Z)(e,2),a=t[0],l=t[1],i=(0,y.v3)(),s=(0,n.useCallback)((function(e){e===a&&i(),l(e)}),[a,l]),u=(0,C.K)({extraKey:"alerts"}).length,d=(0,y.sb)();return(0,b.fD)()&&!d.length?n.createElement(p.Z,null):n.createElement(h.Tabs,{selected:a,onChange:s,height:"100%",padding:[4,4,0]},n.createElement(h.Tab,{label:n.createElement(h.Text,null,"Active (",u,")"),maxWidth:"100%","data-testid":"alertTabs-activeAlerts"},n.createElement(ve,{count:u})),n.createElement(h.Tab,{label:n.createElement(h.Text,null,"Alert Configurations"),maxWidth:"100%","data-testid":"alertTabs-configurations"},n.createElement(n.Suspense,{fallback:n.createElement(E.Z,{title:"Loading alert configurations..."})},n.createElement(le,null))))},be=function(){var e=(0,l.uy)("ids"),t=(0,r.sJ)(c.p$),a=!!e.length&&1!==t;return n.createElement(i.Z,{rightBar:a&&n.createElement(v,null),margin:[0,0,8,0]},n.createElement(he,null))}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1170fbb6-caaa-4032-af9c-62a55b4f99b9",e._sentryDebugIdIdentifier="sentry-dbid-1170fbb6-caaa-4032-af9c-62a55b4f99b9")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[451],{51091:function(e,t,a){var n=a(87462),r=a(45987),l=(a(57327),a(41539),a(88449),a(2490),a(59849),a(21249),a(57640),a(9924),a(92222),a(60677)),i=a(10928),c=a.n(i),o=a(67294),s=a(57509),u=["items","isBig","showBackButton","testid"],d=(0,l.default)(s.Box).withConfig({displayName:"breadcrumbs__StyledItemContainer",componentId:"sc-3u39st-0"})([""]),m=(0,l.css)(["&:hover{color:",";}"],(function(e){var t=e.withHover,a=e.theme;return t&&(0,s.getColor)("success")({theme:a})})),g=(0,l.default)(s.Text).withConfig({displayName:"breadcrumbs__StyledText",componentId:"sc-3u39st-1"})(["",""],m),f=(0,l.default)(s.TextSmall).withConfig({displayName:"breadcrumbs__StyledTextSmall",componentId:"sc-3u39st-2"})(["",""],m);t.Z=function(e){var t=e.items,a=e.isBig,l=e.showBackButton,i=void 0===l||l,m=e.testid,v=void 0===m?"":m,b=(0,r.Z)(e,u),h=(0,o.useMemo)((function(){return null!==t&&void 0!==t&&t.length&&i?c()(t.filter((function(e){return!!e.onClick}))).onClick:null}),[t,i]);if(null===t||void 0===t||!t.length)return null;var p=a?g:f;return o.createElement(s.Flex,(0,n.Z)({gap:4},b),i&&o.createElement(s.Button,{onClick:h,icon:"chevron_left",label:"Back",neutral:!0,flavour:"hollow",small:!0,padding:[0,2,0,1],textTransform:"uppercase","data-testid":"".concat(v,"-breadcrumbs-backButton")}),o.createElement(s.Flex,{gap:2,alignItems:"center"},t.map((function(e,t){var a=e.isDisabled,r=e.name,l=e.onClick;return o.createElement(d,(0,n.Z)({key:t,alignItems:"center"},l&&{cursor:"pointer",onClick:l},{"data-testid":"".concat(v,"-breadcrumbs-level-").concat(t)}),o.createElement(p,{color:a&&"textLite","data-testid":"".concat(v,"-breadcrumbs-level-").concat(t),withHover:!!l},0!==t&&" / ",r))}))))}},25451:function(e,t,a){a.r(t),a.d(t,{default:function(){return he}});var n=a(67294),r=a(4480),l=a(99322),i=a(91268),c=a(84074),o=a(29439),s=a(46667),u=a(29814),d=a(72843),m=a(54316),g={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:a(97363).Z,dataTestId:"filterBar",label:"Filters"}},f=["filters"],v=function(){var e=(0,s.Z)(!0),t=(0,o.Z)(e,2),a=t[0],r=t[1],l=g.filters.Content;return n.createElement(m.ZP,{collapsedComponent:n.createElement(u.Z,{onClickTab:r,availableTabs:g,tabsToShow:f}),isOpen:a,header:n.createElement(d.Z,{isOpen:a,onToggle:r,title:"Alerts",icon:"alarm"})},n.createElement(l,{flavour:"alerts",padding:[0,3,30]}))},b=a(57509),h=a(96929),p=a(36560),y=a(12008),C=a(597),E=a(78266),w=(a(21249),a(57640),a(9924),a(87462)),S=a(45987),x=a(60677),I=a(20686),T=["type","value"],k=(0,x.default)(b.Text).attrs({whiteSpace:"normal",wordBreak:"break-word"}).withConfig({displayName:"tableSchema__TextCell",componentId:"sc-u3gyvm-0"})([""]),N=function(e){return function(t){var a=t.getValue;return n.createElement(k,e,a())}},Z=(0,x.default)(b.Icon).withConfig({displayName:"tableSchema__StyledIcon",componentId:"sc-u3gyvm-1"})(["vertical-align:middle;"]),A=function(e){var t=e.type,a=e.value,r=(0,S.Z)(e,T);return n.createElement(b.Flex,(0,w.Z)({padding:[0,2]},r,{justifyContent:"center"}),0===a?n.createElement(k,{textAlign:"center"},"-"):n.createElement(I.Z,{type:t,textSize:"normal","data-testid":"alertView-alertPill-".concat(t)},a))},V={id:"chevron",header:"",cell:function(){return n.createElement(Z,{rotate:2,name:"chevron_left",color:"textDescription"})}},_=[{id:"displayName",accessorKey:"displayName",header:"Alert Name",cell:function(e){var t=e.getValue;return n.createElement(k,{"data-testid":"alertName"},t())}},{id:"nodesRunningAlert",accessorKey:"nodeCount",header:"Nodes Running Alert",cell:function(e){var t=e.getValue;return n.createElement(k,{textAlign:"center","data-testid":"nodesRunningAlert"},t())}},{id:"alertInstances",accessorKey:"instanceCount",header:"Alert Instances",cell:function(e){var t=e.getValue;return n.createElement(k,{textAlign:"center","data-testid":"alertInstances"},t())}},{id:"criticalNodes",accessorKey:"criticalCount",header:"Critical",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"critical",value:t(),"data-testid":"criticalNodes"})}},{id:"warningNodes",accessorKey:"warningCount",header:"Warning",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"warning",value:t(),"data-testid":"warningNodes"})}},{id:"clearNodes",accessorKey:"clearCount",header:"Clear",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"clear",value:t(),"data-testid":"clearNodes"})}},{id:"errorNodes",accessorKey:"errorCount",header:"Error",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"neutral",value:t(),"data-testid":"errorNodes"})}},{id:"uniqueConfigs",accessorKey:"configCount",header:"Configs",cell:function(e){var t=e.getValue;return n.createElement(k,{textAlign:"center","data-testid":"uniqueConfigs"},t())}}],z=a(50358),K=a(63860),O=a(97945),L=a(62200),P=(0,x.default)(b.TextSmall).withConfig({displayName:"styled__StyledLinkText",componentId:"sc-1y769u1-0"})(["",""],"\n cursor: pointer;\n overflow-wrap: break-word;\n max-width: 140px;\n &:hover {\n opacity: 0.7;\n }\n"),F=(0,x.default)(b.TextSmall).withConfig({displayName:"styled__StyledText",componentId:"sc-1y769u1-1"})(["&:hover{color:",";text-decoration:underline;}"],(0,b.getColor)("accent")),R=a(38626),j=a(91008),B=function(e){var t=e.row,a=e.value,r=e.openModal,l=t.original,i=l.id,c=l.displayName,o=l.info,s=(0,n.useCallback)((function(){r({alertId:i})}),[i]);return n.createElement(j.Z,{Component:b.TextSmall,flavour:"tableLink",cursor:"pointer",showToolTip:!0,content:o,onClick:s,"data-testid":"alertsTableSchema-alertName-".concat(a),"data-ga":"alerts-table::click-alert::alerts-view::".concat(a)},c)},D=function(e){var t=e.row,a=e.nodeId,r=t.original.id,l=(0,O.bV)(a,"name"),i=(0,O.WR)(a,{alertId:r});return n.createElement(b.Flex,{width:35,"data-testid":"alertsTableSchema-nodeName-".concat(l),"data-ga":"alerts-table::click-node::alerts-view::".concat(l)},n.createElement(P,{onClick:i},n.createElement(R.Z,{maxLength:L.sf,text:l,TextComponent:F})))},M=function(e){var t=e.row,a=e.value,r=t.original,l=r.id,i=r.nodeId,c=r.instanceName,o=(0,O.WR)(i,{alertId:l});return n.createElement(b.Flex,{"data-testid":"alertsTableSchema-chart-id-".concat(a),"data-ga":"alerts-table::click-chartId::alerts-view::".concat(a)},n.createElement(P,{onClick:o},n.createElement(R.Z,{maxLength:25,TextComponent:F,text:c})))},U=function(e){var t=e.openModal;return[{id:"status",accessorKey:"status",header:"Status",cell:function(e){var t=e.getValue;return n.createElement(I.Z,{type:"".concat(t(),"AlertsTable"),"data-testid":"alertsTable-alertPill","data-ga":"alerts-table::click-status::alerts-view::".concat(t())},t())},size:80,maxSize:80,minSize:80},{id:"name",accessorKey:"displayName",header:"Alert",cell:function(e){var a=e.row,r=e.getValue;return n.createElement(B,{row:a,value:r(),openModal:t})}},{id:"instance",header:"Instance",accessorKey:"instance",cell:function(e){var t=e.row,a=e.getValue;return n.createElement(M,{row:t,value:a()})},minSize:200,maxSize:200,size:200},{id:"nodeName",header:"Node",accessorKey:"nodeId",cell:function(e){var t=e.row,a=e.getValue;return n.createElement(D,{row:t,nodeId:a()})},minSize:200,maxSize:200,size:200},{id:"value",header:"Latest value",accessorKey:"value",cell:function(e){var t=e.row,a=e.getValue,r=t.original,l=r.status,i=r.units;return n.createElement(z.Z,{loaded:!0,status:l,units:i,value:a(),"data-testid":"alertsTableSchema-alertValue","data-ga":"alerts-table::click-alert-value::alerts-view"})},size:120,maxSize:120,minSize:120},{id:"lastUpdated",header:"Updated at",accessorKey:"lastUpdated",cell:function(e){var t=e.getValue;return n.createElement(K.Z,{rawTime:t(),secs:!0,"data-testid":"alertsTableSchema-latestUpdated"})}},{id:"lastStatusChangeValue",header:"Triggered value",accessorKey:"lastStatusChangeValue",cell:function(e){var t=e.row,a=e.getValue,r=t.original,l=r.status,i=r.units;return n.createElement(z.Z,{loaded:!0,status:l,units:i,value:a(),"data-testid":"alertsTableSchema-triggeredValue","data-ga":"alerts-table::click-triggered-value::alerts-view"})},size:120,maxSize:120,minSize:120},{id:"lastStatusChange",header:"Triggered at",accessorKey:"lastStatusChange",cell:function(e){var t=e.getValue;return n.createElement(K.Z,{rawTime:t(),secs:!0,"data-testid":"alertsTableSchema-lastStatusChange"})}}]},G=[{id:"name",accessorKey:"displayName",header:"Alert",cell:N({"data-testid":"alertInstanceName"}),minSize:200,maxSize:200,size:200},{id:"instance",header:"Instance",accessorKey:"instance",cell:function(e){var t=e.row,a=e.getValue;return n.createElement(M,{row:t,value:a()})},minSize:200,maxSize:200,size:200},{id:"status",accessorKey:"status",header:"Status",cell:function(e){var t=e.getValue;return n.createElement(b.Flex,{padding:[0,2]},n.createElement(I.Z,{type:t(),textSize:"normal","data-testid":"alertView-alertPill-value",border:void 0},t()))},minSize:80,maxSize:80,size:80},{id:"lastStatusChangeValue",accessorKey:"lastStatusChangeValue",header:"Triggered value",cell:function(e){var t=e.getValue,a=e.row.original,r=a.status,l=a.units;return n.createElement(z.Z,{loaded:!0,status:r,units:l,value:t(),"data-testid":"alertsTableSchema-alertValue"})},minSize:120,maxSize:120,size:120},{id:"lastStatusChange",accessorKey:"lastStatusChange",header:"Triggered at",cell:function(e){var t=e.getValue;return n.createElement(K.Z,{rawTime:t(),secs:!0,nowrap:!0})},minSize:120,maxSize:120,size:120}],W=a(61294),H=function(){var e=(0,y.__)(),t=(0,o.Z)(e,1)[0],a=t.alertName,r=t.nodeId,l=(0,y.JU)(a,r),i=(0,W.Z)(),c=(0,o.Z)(i,4),s=c[0],u=c[1],d=c[3],m=(0,n.useCallback)((function(e){return u({alertId:e.data.id})}),[a,r]);return n.createElement(n.Fragment,null,n.createElement(b.NetdataTable,{data:l,dataColumns:G,onClickRow:m,enableSorting:!0,enableColumnVisibility:!0}),s&&d)},J=(a(26833),a(85827),a(41539),a(25387),a(2490),a(72608),a(66992),a(70189),a(78783),a(88921),a(96248),a(13599),a(11477),a(64362),a(15389),a(90401),a(45164),a(91238),a(54837),a(87485),a(56767),a(76651),a(61437),a(35285),a(39865),a(33948),[{id:"nodeName",accessorKey:"nodeId",header:"Node Name",cell:function(e){var t=e.getValue,a=(0,O.bV)(t(),"name");return n.createElement(b.Flex,{width:35,"data-testid":"alertsTableSchema-nodeName-".concat(a),"data-ga":"alerts-table::click-node::alerts-view::".concat(a)},n.createElement(R.Z,{maxLength:L.sf,text:a}))}},{id:"nodes",accessorKey:"nodeCount",header:"Node Instances",cell:N({"data-testid":"nodes",textAlign:"center"})},{id:"instances",accessorKey:"instanceCount",header:"Alert Instances",cell:N({"data-testid":"instances",textAlign:"center"})},{id:"critical",accessorKey:"criticalCount",header:"Critical",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"critical",value:t()})}},{id:"warning",accessorKey:"warningCount",header:"Warning",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"warning",value:t()})}},{id:"clear",accessorKey:"clearCount",header:"Clear",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"clear",value:t()})}},{id:"error",accessorKey:"errorCount",header:"Error",cell:function(e){var t=e.getValue;return n.createElement(A,{type:"neutral",value:t(),"data-testid":"errors"})}},{id:"configs",accessorKey:"configCount",header:"Configs",cell:N({"data-testid":"configs",textAlign:"center"})},V]),q=function(){var e=(0,y.__)(),t=(0,o.Z)(e,2),a=t[0].alertName,r=t[1],l=(0,y.JU)(a),i=(0,n.useCallback)((function(e){r({alertName:a,nodeId:e.data.nodeId})}),[a,r]),c=(0,n.useMemo)((function(){return Object.values(l.reduce((function(e,t){switch(e[t.nodeId]||(e[t.nodeId]={nodeId:t.nodeId,nodeCount:1,instanceCount:0,criticalCount:0,warningCount:0,clearCount:0,errorCount:0,configCount:0,configs:new Set}),e[t.nodeId].instanceCount=e[t.nodeId].instanceCount+1,t.status){case"warning":e[t.nodeId].warningCount=e[t.nodeId].warningCount+1;break;case"critical":e[t.nodeId].criticalCount=e[t.nodeId].criticalCount+1;break;case"clear":e[t.nodeId].clearCount=e[t.nodeId].clearCount+1;break;default:t.value||(e[t.nodeId].errorCount=e[t.nodeId].errorCount+1)}return e[t.nodeId].configCount=e[t.nodeId].configs.add(t.aci).size,e}),{}))}),[l]);return n.createElement(b.NetdataTable,{data:c,dataColumns:J,onClickRow:i,enableSorting:!0,enableColumnVisibility:!0})},Q=a(51091),$=function(){var e,t=(0,y.__)(),a=(0,o.Z)(t,2),r=a[0],l=r.alertName,i=r.nodeId,c=a[1],s=(0,O.Ne)(i?[i]:[]),u=null===s||void 0===s||null===(e=s[0])||void 0===e?void 0:e.name,d=(0,n.useMemo)((function(){return u?[{name:"All Alert Configs",onClick:function(){c({alertName:null,nodeId:null})}},{name:l,onClick:function(){c({alertName:l,nodeId:null})}},{name:u}]:l?[{name:"All Alert Configs",onClick:function(){c({alertName:null,nodeId:null})}},{name:l}]:null}),[l,u,c]);return n.createElement(Q.Z,{padding:[2,0,0],items:d,testid:"alertConfigurations"})},Y=(a(47941),a(82526),a(57327),a(88449),a(59849),a(38880),a(15581),a(34514),a(54747),a(49337),a(33321),a(69070),a(4942)),X=a(74059),ee=a(37518),te=a(12899);function ae(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}var ne=function(){var e=(0,ee.UL)(),t=(0,te.R3)(),a=(0,o.Z)(t,2)[1],r=(0,y.__)(),l=(0,o.Z)(r,2)[1],i=(0,X.Q6)(),c=(0,n.useMemo)((function(){return function(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ae(Object(a),!0).forEach((function(t){(0,Y.Z)(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ae(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({goto:{handleAction:function(e){var t=e.name;return l({alertName:t})},icon:"chevron_right",tooltipText:"Show configuration"}},!i&&{info:{handleAction:function(t){return a({roomId:e,alert:t})},tooltipText:"Get some help from Netdata Assistant",icon:"netdataAssistant",iconColor:"primary",dataGa:"alerts::click-assistant-icon::active-alerts-table"}})}),[i,a]);return{rowActions:c}},re=function(){return n.createElement(b.Text,null,"Loading...")},le=function(){var e=(0,y.w4)(),t=(0,y.__)(),a=(0,o.Z)(t,2),r=a[0],l=r.alertName,i=r.nodeId,c=a[1],s=(0,te.Nu)(),u=(0,o.Z)(s,2)[1],d=(0,n.useCallback)((function(e){c({alertName:e.data.name})}),[]),m=ne().rowActions;return(0,n.useEffect)((function(){var t=e.map((function(e){return{name:e.alert}}));u(t)}),[e]),n.createElement(b.Flex,{column:!0,gap:4,height:"100%",overflow:"hidden"},n.createElement($,null),i&&n.createElement(n.Suspense,{fallback:n.createElement(re,null)},n.createElement(H,null)),!i&&l&&n.createElement(n.Suspense,{fallback:n.createElement(re,null)},n.createElement(q,null)),!i&&!l&&n.createElement(b.NetdataTable,{data:e,dataColumns:_,enableSorting:!0,enableColumnVisibility:!0,columnPinning:{right:["actions"]},enableColumnPinning:!0,enablePinning:!0,rowActions:m,onClickRow:d}))},ie=a(89250),ce=[{id:"lastStatusChange",desc:!1}],oe=function(){var e=(0,C.K)({extraKey:"alerts"}),t=(0,te.Nu)(),a=(0,o.Z)(t,2)[1],r=(0,W.Z)(),l=(0,o.Z)(r,4),i=l[0],c=l[1],s=l[3],u=function(){var e=(0,ie.s0)(),t=(0,X.uk)(),a=(0,ee.UL)(),r=(0,te.R3)(),l=(0,o.Z)(r,2)[1],i=(0,X.Q6)();return{rowActions:(0,n.useMemo)((function(){return i?{}:{goto:{handleAction:function(){e("/spaces/".concat(t,"/settings/notifications#notificationsActiveTab=1"))},tooltipText:"Go to silencing manager",icon:"alarm_off",dataGa:"alerts-table::click-link-to-manager::active-alerts-table"},info:{handleAction:function(e){return l({roomId:a,alert:e})},tooltipText:"Get some help from Netdata Assistant",icon:"netdataAssistant",iconColor:"primary",dataGa:"alerts::click-assistant-icon::active-alerts-table"}}}),[i,l])}}().rowActions;return(0,n.useEffect)((function(){a(e)}),[e]),n.createElement(n.Fragment,null,n.createElement(b.NetdataTable,{enableSorting:!0,enableColumnVisibility:!0,data:e,dataColumns:U({openModal:c}),rowActions:u,sortBy:ce,columnPinning:{right:["actions"]},enableColumnPinning:!0,enablePinning:!0}),i&&s)},se=(a(92222),a(89405)),ue=function(){var e=function(){var e=(0,se.rA)(),t=e.localeTimeString,a=e.localeDateString,r=(0,l.uy)("updatedAt");return(0,n.useMemo)((function(){if(r){var e=new Date(r);return"".concat(a(e,{long:!0})," ").concat(t(e,{secs:!0}))}}),[r,t,a])}();return n.createElement(b.Flex,{column:!0,justifyContent:"center",alignItems:"center",gap:4},n.createElement(b.Icon,{name:"checkmark",width:"168px",height:"168px",margin:[13,0,0]}),n.createElement(b.H3,{margin:[10,0,0]},"This room has no active alerts, you are all good!"),n.createElement(b.Text,{margin:[2,0,0,0]},"Visit later or check your notifications"),n.createElement(b.TextSmall,{color:"textLite"},"Last updated at: ",e))},de=(0,n.memo)(ue),me=a(46189),ge=function(){return n.createElement(b.Flex,{column:!0,justifyContent:"center",alignItems:"center",margin:[12,0,0]},n.createElement("img",{src:"".concat(me.Z.assetsBaseURL,"/img/no-filter-results.png"),alt:"No Filter Results",title:"No Filter Results"}),n.createElement(b.H3,null,"There are no results for these filtering criteria"))},fe=(0,n.memo)(ge),ve=function(e){var t=e.count,a=(0,l.uy)("ids"),r=(0,l.uy)("loaded"),i=(0,y.ER)(a).length;return r?i?t?n.createElement(oe,null):n.createElement(fe,null):n.createElement(de,null):n.createElement(E.Z,{title:"Loading alerts..."})},be=function(){var e=(0,r.FV)(c.p$),t=(0,o.Z)(e,2),a=t[0],l=t[1],i=(0,y.v3)(),s=(0,n.useCallback)((function(e){e===a&&i(),l(e)}),[a,l]),u=(0,C.K)({extraKey:"alerts"}).length,d=(0,y.sb)();return(0,h.fD)()&&!d.length?n.createElement(p.Z,null):n.createElement(b.Tabs,{selected:a,onChange:s,height:"100%",padding:[4,4,0]},n.createElement(b.Tab,{label:n.createElement(b.Text,null,"Active (",u,")"),maxWidth:"100%","data-testid":"alertTabs-activeAlerts"},n.createElement(ve,{count:u})),n.createElement(b.Tab,{label:n.createElement(b.Text,null,"Alert Configurations"),maxWidth:"100%","data-testid":"alertTabs-configurations"},n.createElement(n.Suspense,{fallback:n.createElement(E.Z,{title:"Loading alert configurations..."})},n.createElement(le,null))))},he=function(){var e=(0,l.uy)("ids"),t=(0,r.sJ)(c.p$),a=!!e.length&&1!==t;return n.createElement(i.Z,{rightBar:a&&n.createElement(v,null),margin:[0,0,8,0]},n.createElement(be,null))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/470.f28faa6be4559491ed1e.chunk.js b/web/gui/v2/470.5ab9b3dc905a52581ba0.chunk.js
index 6b7369e6..0f675add 100644
--- a/web/gui/v2/470.f28faa6be4559491ed1e.chunk.js
+++ b/web/gui/v2/470.5ab9b3dc905a52581ba0.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="53a75744-5e77-41e4-97a4-d3eed8570733",e._sentryDebugIdIdentifier="sentry-dbid-53a75744-5e77-41e4-97a4-d3eed8570733")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[470],{4211:function(e,t,r){r.d(t,{ZP:function(){return Nr}});var n=Object.create,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=e=>s(e,"__esModule",{value:!0}),u=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},p=(e,t)=>{for(var r in c(e),t)s(e,r,{get:t[r],enumerable:!0})},h=e=>((e,t,r)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of o(t))l.call(e,n)||"default"===n||s(e,n,{get:()=>t[n],enumerable:!(r=i(t,n))||r.enumerable});return e})(c(s(null!=e?n(a(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),d=u({"src/grammar/tag.js"(e,t){"use strict";function r(e,t,n,s){this.message=e,this.expected=t,this.found=n,this.location=s,this.name="SyntaxError","function"===typeof Error.captureStackTrace&&Error.captureStackTrace(this,r)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(r,Error),r.buildMessage=function(e,t,r){var n,s={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t=e.parts.map((function(e){return Array.isArray(e)?a(e[0])+"-"+a(e[1]):a(e)}));return"["+(e.inverted?"^":"")+t+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(e){return e.description},not:function(e){return"not "+l(e.expected)}};function i(e){return e.charCodeAt(0).toString(16).toUpperCase()}function o(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+i(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+i(e)}))}function a(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+i(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+i(e)}))}function l(e){return s[e.type](e)}return"Expected "+function(e){var t,r,n=e.map(l);if(n.sort(),n.length>0){for(t=1,r=1;t<n.length;t++)n[t-1]!==n[t]&&(n[r]=n[t],r++);n.length=r}switch(n.length){case 1:return n[0];case 2:return n[0]+" or "+n[1];default:return n.slice(0,-1).join(", ")+", or "+n[n.length-1]}}(e)+" but "+(((n=t)?'"'+o(n)+'"':"end of input")+" found.")},t.exports={SyntaxError:r,parse:function(e,t){t=void 0!==t?t:{};var n,s={},i={Top:Me},o=Me,a="/",l=".",c="#",u="=",p="(",h=")",d=",",f="[",m="]",g="null",b="true",_="false",y="{",k="}",v=":",C="-",A='"',x="\\",w=/^[$@]/,D=/^[0-9]/,E=/^[^\0-\x1F"\\]/,q=/^[a-zA-Z0-9_\-]/,S=/^[ \n\t]/,F=je("/",!1),j=ze("tag name"),z=ze("class"),L=ze("id"),T=je("=",!1),I=je("(",!1),O=je(")",!1),$=je(",",!1),M=ze("variable"),R=ze("null"),N=ze("boolean"),B=je("[",!1),P=je("]",!1),U=je("{",!1),V=je("}",!1),Z=je(":",!1),G=ze("number"),H=ze("string"),J=ze("identifier"),W=ze("whitespace"),Y=function(e){return{type:"variable",meta:{variable:e}}},K=function(e){return{type:"annotation",meta:{attributes:e}}},Q=function(e,t){return t},X=function(e,t,r,n){t&&(r=r||[]).unshift({type:"attribute",name:"primary",value:t});const[s,i]=n?["tag",0]:["tag_open",1];return{type:s,nesting:i,meta:{tag:e,attributes:r}}},ee=function(e){return{type:"tag_close",nesting:-1,meta:{tag:e}}},te=function(e,t){return e?[e,...t]:[]},re=function(e){return e},ne=function(e){return e},se=function(e){return e},ie=function(e){return e},oe=function(e){return{type:"class",name:e,value:!0}},ae=function(e){return{type:"attribute",name:"id",value:e}},le=function(e,t){return{type:"attribute",name:e,value:t}},ce=function(e,t,r){return t?[t,...r]:[]},ue=function(e,t){let r={};for(let[n,{name:s,value:i}]of t.entries())r[s||n]=i;return new it(e,r)},pe=function(e){return e},he=function(e,t){return{name:e,value:t}},de=function(e){return e},fe=function(e,t,r){return"@"===e?[t,...r]:new st([t,...r])},me=function(){return null},ge=function(){return!0},be=function(){return!1},_e=function(e,t){return[e,...t]},ye=function(e){return e||[]},ke=function(e,t){return Object.assign(e,...t)},ve=function(e){return e||{}},Ce=function(e,t){return"$$mdtype"===e?{}:{[e]:t}},Ae=function(){return parseFloat(e.substring(Ee,De))},xe=function(e){return e.join("")},we=function(e){return e},De=0,Ee=0,qe=[{line:1,column:1}],Se=[],Fe=0;if("startRule"in t){if(!(t.startRule in i))throw new Error("Can't start parsing from rule \""+t.startRule+'".');o=i[t.startRule]}function je(e,t){return{type:"literal",text:e,ignoreCase:t}}function ze(e){return{type:"other",description:e}}function Le(t){var r,n=qe[t];if(n)return n;for(r=t-1;!qe[r];)r--;for(n={line:(n=qe[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return qe[t]=n,n}var Te="string"===typeof t.filename&&t.filename.length>0;function Ie(e,r){var n={};Te&&(n.filename=t.filename);var s=Le(e);n.start={offset:e,line:s.line,column:s.column};var i=Le(r);return n.end={offset:r,line:i.line,column:i.column},n}function Oe(e){var t=Se[Se.length-1];De<t.pos||(De>t.pos&&(t.pos=De,t.variants=[]),t.variants.push(e))}function $e(e,t,n){return new r(r.buildMessage(e,t,n),e,t,n)}function Me(){var t;return(t=function(){var e,t;e=De,(t=He())===s&&(t=Ue());t!==s&&(Ee=e,t=Y(t));return e=t,e}())===s&&(t=function(){var e,t,r,n;if(e=De,(t=Ne())!==s){for(r=[],n=nt();n!==s;)r.push(n),n=nt();Ee=e,e=K(t)}else De=e,e=s;return e}())===s&&(t=function(){var t,r,n,i,o,l,c,u=function(e){0===Fe&&Oe(e)};if(t=De,(r=Re())!==s){for(n=[],i=nt();i!==s;)n.push(i),i=nt();for(i=De,(o=We())!==s?((l=nt())===s&&(l=null),Ee=i,i=Q(r,o)):(De=i,i=s),i===s&&(i=null),(o=Ne())===s&&(o=null),l=[],c=nt();c!==s;)l.push(c),c=nt();u(F),47===e.charCodeAt(De)?(c=a,De++):c=s,c===s&&(c=null),Ee=t,t=X(r,i,o,c)}else De=t,t=s;return t}(),t===s&&(t=function(){var t,r,n,i=function(e){0===Fe&&Oe(e)};t=De,i(F),47===e.charCodeAt(De)?(r=a,De++):r=s;r!==s&&(n=Re())!==s?(Ee=t,t=ee(n)):(De=t,t=s);return t}())),t}function Re(){var e,t;return t=j,0===Fe&&Oe(t),Fe++,e=rt(),Fe--,e}function Ne(){var e,t,r,n;if(e=De,(t=Pe())!==s){for(r=[],n=Be();n!==s;)r.push(n),n=Be();Ee=e,e=te(t,r)}else De=e,e=s;return e}function Be(){var e,t,r;if(e=De,t=[],(r=nt())!==s)for(;r!==s;)t.push(r),r=nt();else t=s;return t!==s&&(r=Pe())!==s?(Ee=e,e=re(r)):(De=e,e=s),e}function Pe(){var t,r;return t=De,r=function(){var t,r,n,i=function(e){0===Fe&&Oe(e)};i(L),Fe++,t=De,35===e.charCodeAt(De)?(r=c,De++):r=s;r!==s&&(n=rt())!==s?(Ee=t,t=ae(n)):(De=t,t=s);return Fe--,t}(),r!==s&&(Ee=t,r=ne(r)),(t=r)===s&&(t=De,r=function(){var t,r,n,i=function(e){0===Fe&&Oe(e)};i(z),Fe++,t=De,46===e.charCodeAt(De)?(r=l,De++):r=s;r!==s&&(n=rt())!==s?(Ee=t,t=oe(n)):(De=t,t=s);return Fe--,t}(),r!==s&&(Ee=t,r=se(r)),(t=r)===s&&(t=De,r=function(){var t,r,n,i,o=function(e){0===Fe&&Oe(e)};t=De,r=rt(),r!==s?(o(T),61===e.charCodeAt(De)?(n=u,De++):n=s,n!==s&&(i=We())!==s?(Ee=t,t=le(r,i)):(De=t,t=s)):(De=t,t=s);return t}(),r!==s&&(Ee=t,r=ie(r)),t=r)),t}function Ue(){var t,r,n,i,o,a,l,c,u=function(e){0===Fe&&Oe(e)};if(t=De,(r=rt())!==s)if(u(I),40===e.charCodeAt(De)?(n=p,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();for(o=De,(a=Ve())===s&&(a=null),l=[],c=Ze();c!==s;)l.push(c),c=Ze();Ee=o,o=ce(r,a,l),u(O),41===e.charCodeAt(De)?(a=h,De++):a=s,a!==s?(Ee=t,t=ue(r,o)):(De=t,t=s)}else De=t,t=s;else De=t,t=s;return t}function Ve(){var t,r,n,i,o;return t=De,r=De,(n=rt())!==s?(o=T,0===Fe&&Oe(o),61===e.charCodeAt(De)?(i=u,De++):i=s,i!==s?(Ee=r,r=pe(n)):(De=r,r=s)):(De=r,r=s),r===s&&(r=null),(n=We())!==s?(Ee=t,t=he(r,n)):(De=t,t=s),t}function Ze(){var t,r,n,i,o,a;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();if(a=$,0===Fe&&Oe(a),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=Ve())!==s?(Ee=t,t=de(o)):(De=t,t=s)}else De=t,t=s;return t}function Ge(){var t,r,n,i;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();return i=$,0===Fe&&Oe(i),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s?t=r=[r,n]:(De=t,t=s),t===s&&(t=null),t}function He(){var t,r,n,i,o,a;if(a=M,0===Fe&&Oe(a),Fe++,t=De,w.test(e.charAt(De))?(r=e.charAt(De),De++):r=s,r!==s)if((n=rt())!==s){for(i=[],o=Je();o!==s;)i.push(o),o=Je();Ee=t,t=fe(r,n,i)}else De=t,t=s;else De=t,t=s;return Fe--,t}function Je(){var t,r,n,i;return t=De,46===e.charCodeAt(De)?(r=l,De++):r=s,r!==s&&(n=rt())!==s?(Ee=t,t=pe(n)):(De=t,t=s),t===s&&(t=De,91===e.charCodeAt(De)?(r=f,De++):r=s,r!==s?((n=Xe())===s&&(n=et()),n!==s?(93===e.charCodeAt(De)?(i=m,De++):i=s,i!==s?(Ee=t,t=de(n)):(De=t,t=s)):(De=t,t=s)):(De=t,t=s)),t}function We(){var t;return t=function(){var t,r,n=function(e){0===Fe&&Oe(e)};n(R),Fe++,t=De,e.substr(De,4)===g?(r=g,De+=4):r=s;r!==s&&(Ee=t,r=me());return t=r,Fe--,t}(),t===s&&(t=function(){var t,r,n=function(e){0===Fe&&Oe(e)};n(N),Fe++,t=De,e.substr(De,4)===b?(r=b,De+=4):r=s;r!==s&&(Ee=t,r=ge());t=r,t===s&&(t=De,e.substr(De,5)===_?(r=_,De+=5):r=s,r!==s&&(Ee=t,r=be()),t=r);return Fe--,t}(),t===s&&(t=et())===s&&(t=Xe())===s&&(t=function(){var t,r,n,i,o,a,l,c=function(e){0===Fe&&Oe(e)};t=De,c(B),91===e.charCodeAt(De)?(r=f,De++):r=s;if(r!==s){for(n=[],i=nt();i!==s;)n.push(i),i=nt();if(i=De,(o=We())!==s){for(a=[],l=Ye();l!==s;)a.push(l),l=Ye();l=Ge(),Ee=i,i=_e(o,a)}else De=i,i=s;for(i===s&&(i=null),o=[],a=nt();a!==s;)o.push(a),a=nt();c(P),93===e.charCodeAt(De)?(a=m,De++):a=s,a!==s?(Ee=t,t=ye(i)):(De=t,t=s)}else De=t,t=s;return t}(),t===s&&(t=function(){var t,r,n,i,o,a,l,c=function(e){0===Fe&&Oe(e)};t=De,c(U),123===e.charCodeAt(De)?(r=y,De++):r=s;if(r!==s){for(n=[],i=nt();i!==s;)n.push(i),i=nt();if(i=De,(o=Qe())!==s){for(a=[],l=Ke();l!==s;)a.push(l),l=Ke();l=Ge(),Ee=i,i=ke(o,a)}else De=i,i=s;for(i===s&&(i=null),o=[],a=nt();a!==s;)o.push(a),a=nt();c(V),125===e.charCodeAt(De)?(a=k,De++):a=s,a!==s?(Ee=t,t=ve(i)):(De=t,t=s)}else De=t,t=s;return t}(),t===s&&(t=Ue())===s&&(t=He())))),t}function Ye(){var t,r,n,i,o,a;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();if(a=$,0===Fe&&Oe(a),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=We())!==s?(Ee=t,t=de(o)):(De=t,t=s)}else De=t,t=s;return t}function Ke(){var t,r,n,i,o,a;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();if(a=$,0===Fe&&Oe(a),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=Qe())!==s?(Ee=t,t=re(o)):(De=t,t=s)}else De=t,t=s;return t}function Qe(){var t,r,n,i,o,a;if(t=De,(r=rt())===s&&(r=et()),r!==s)if(a=Z,0===Fe&&Oe(a),58===e.charCodeAt(De)?(n=v,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=We())!==s?(Ee=t,t=Ce(r,o)):(De=t,t=s)}else De=t,t=s;else De=t,t=s;return t}function Xe(){var t,r,n,i,o,a,c,u;if(u=G,0===Fe&&Oe(u),Fe++,t=De,45===e.charCodeAt(De)?(r=C,De++):r=s,r===s&&(r=null),n=[],D.test(e.charAt(De))?(i=e.charAt(De),De++):i=s,i!==s)for(;i!==s;)n.push(i),D.test(e.charAt(De))?(i=e.charAt(De),De++):i=s;else n=s;if(n!==s){if(i=De,46===e.charCodeAt(De)?(o=l,De++):o=s,o!==s){if(a=[],D.test(e.charAt(De))?(c=e.charAt(De),De++):c=s,c!==s)for(;c!==s;)a.push(c),D.test(e.charAt(De))?(c=e.charAt(De),De++):c=s;else a=s;a!==s?i=o=[o,a]:(De=i,i=s)}else De=i,i=s;i===s&&(i=null),Ee=t,t=Ae()}else De=t,t=s;return Fe--,t}function et(){var t,r,n,i,o;if(o=H,0===Fe&&Oe(o),Fe++,t=De,34===e.charCodeAt(De)?(r=A,De++):r=s,r!==s){for(n=[],i=tt();i!==s;)n.push(i),i=tt();34===e.charCodeAt(De)?(i=A,De++):i=s,i!==s?(Ee=t,t=xe(n)):(De=t,t=s)}else De=t,t=s;return Fe--,t}function tt(){var t;return E.test(e.charAt(De))?(t=e.charAt(De),De++):t=s,t===s&&(t=function(){var t,r,n;t=De,92===e.charCodeAt(De)?(r=x,De++):r=s;r!==s?(34===e.charCodeAt(De)?(n=A,De++):n=s,n===s&&(92===e.charCodeAt(De)?(n=x,De++):n=s),n!==s?(Ee=t,t=we(n)):(De=t,t=s)):(De=t,t=s);return t}()),t}function rt(){var t,r,n,i;if(i=J,0===Fe&&Oe(i),Fe++,t=De,r=[],q.test(e.charAt(De))?(n=e.charAt(De),De++):n=s,n!==s)for(;n!==s;)r.push(n),q.test(e.charAt(De))?(n=e.charAt(De),De++):n=s;else r=s;return t=r!==s?e.substring(t,De):r,Fe--,t}function nt(){var t,r;return r=W,0===Fe&&Oe(r),Fe++,S.test(e.charAt(De))?(t=e.charAt(De),De++):t=s,Fe--,t}const{Variable:st,Function:it}=t;if(Se.push({pos:De,variants:[]}),(n=o())!==s&&De===e.length)return n;throw n!==s&&De<e.length&&Oe({type:"end"}),function(){var t=Se[0],r=t.pos;return $e(t.variants,r<e.length?e.charAt(r):null,r<e.length?Ie(r,r+1):Ie(r,r))}()}}}}),f=u({"node_modules/entities/lib/maps/entities.json"(e,t){t.exports={Aacute:"\xc1",aacute:"\xe1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223e",acd:"\u223f",acE:"\u223e\u0333",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",Acy:"\u0410",acy:"\u0430",AElig:"\xc6",aelig:"\xe6",af:"\u2061",Afr:"\ud835\udd04",afr:"\ud835\udd1e",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03b1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2a3f",amp:"&",AMP:"&",andand:"\u2a55",And:"\u2a53",and:"\u2227",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angmsd:"\u2221",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",Aogon:"\u0104",aogon:"\u0105",Aopf:"\ud835\udd38",aopf:"\ud835\udd52",apacir:"\u2a6f",ap:"\u2248",apE:"\u2a70",ape:"\u224a",apid:"\u224b",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224a",Aring:"\xc5",aring:"\xe5",Ascr:"\ud835\udc9c",ascr:"\ud835\udcb6",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224d",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",Backslash:"\u2216",Barv:"\u2ae7",barvee:"\u22bd",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",Bernoullis:"\u212c",Beta:"\u0392",beta:"\u03b2",beth:"\u2136",between:"\u226c",Bfr:"\ud835\udd05",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bNot:"\u2aed",bnot:"\u2310",Bopf:"\ud835\udd39",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxbox:"\u29c9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250c",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252c",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxul:"\u2518",boxuL:"\u255b",boxUl:"\u255c",boxUL:"\u255d",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255a",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253c",boxvH:"\u256a",boxVh:"\u256b",boxVH:"\u256c",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251c",boxvR:"\u255e",boxVr:"\u255f",boxVR:"\u2560",bprime:"\u2035",breve:"\u02d8",Breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",Bscr:"\u212c",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsolb:"\u29c5",bsol:"\\",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",Bumpeq:"\u224e",bumpeq:"\u224f",Cacute:"\u0106",cacute:"\u0107",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",cap:"\u2229",Cap:"\u22d2",capcup:"\u2a47",capdot:"\u2a40",CapitalDifferentialD:"\u2145",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",Cayleys:"\u212d",ccaps:"\u2a4d",Ccaron:"\u010c",ccaron:"\u010d",Ccedil:"\xc7",ccedil:"\xe7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2a4c",ccupssm:"\u2a50",Cdot:"\u010a",cdot:"\u010b",cedil:"\xb8",Cedilla:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",CenterDot:"\xb7",cfr:"\ud835\udd20",Cfr:"\u212d",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",CircleDot:"\u2299",circledR:"\xae",circledS:"\u24c8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25cb",cirE:"\u29c3",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2a74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",Congruent:"\u2261",conint:"\u222e",Conint:"\u222f",ContourIntegral:"\u222e",copf:"\ud835\udd54",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xa9",COPY:"\xa9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21b5",cross:"\u2717",Cross:"\u2a2f",Cscr:"\ud835\udc9e",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cupbrcap:"\u2a48",cupcap:"\u2a46",CupCap:"\u224d",cup:"\u222a",Cup:"\u22d3",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21a1",dArr:"\u21d3",dash:"\u2010",Dashv:"\u2ae4",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",Dcaron:"\u010e",dcaron:"\u010f",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21ca",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2a77",deg:"\xb0",Del:"\u2207",Delta:"\u0394",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",Dfr:"\ud835\udd07",dfr:"\ud835\udd21",dHar:"\u2965",dharl:"\u21c3",dharr:"\u21c2",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",diam:"\u22c4",diamond:"\u22c4",Diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",DifferentialD:"\u2146",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",Dopf:"\ud835\udd3b",dopf:"\ud835\udd55",Dot:"\xa8",dot:"\u02d9",DotDot:"\u20dc",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21d3",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21bd",DownRightTeeVector:"\u295f",DownRightVectorBar:"\u2957",DownRightVector:"\u21c1",DownTeeArrow:"\u21a7",DownTee:"\u22a4",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",Dscr:"\ud835\udc9f",dscr:"\ud835\udcb9",DScy:"\u0405",dscy:"\u0455",dsol:"\u29f6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",DZcy:"\u040f",dzcy:"\u045f",dzigrarr:"\u27ff",Eacute:"\xc9",eacute:"\xe9",easter:"\u2a6e",Ecaron:"\u011a",ecaron:"\u011b",Ecirc:"\xca",ecirc:"\xea",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042d",ecy:"\u044d",eDDot:"\u2a77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\ud835\udd08",efr:"\ud835\udd22",eg:"\u2a9a",Egrave:"\xc8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",Element:"\u2208",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25fb",emptyv:"\u2205",EmptyVerySmallSquare:"\u25ab",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014a",eng:"\u014b",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\ud835\udd3c",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",Epsilon:"\u0395",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",Equal:"\u2a75",equals:"=",EqualTilde:"\u2242",equest:"\u225f",Equilibrium:"\u21cc",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erarr:"\u2971",erDot:"\u2253",escr:"\u212f",Escr:"\u2130",esdot:"\u2250",Esim:"\u2a73",esim:"\u2242",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",Ffr:"\ud835\udd09",ffr:"\ud835\udd23",filig:"\ufb01",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",Fopf:"\ud835\udd3d",fopf:"\ud835\udd57",forall:"\u2200",ForAll:"\u2200",fork:"\u22d4",forkv:"\u2ad9",Fouriertrf:"\u2131",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",Fscr:"\u2131",gacute:"\u01f5",Gamma:"\u0393",gamma:"\u03b3",Gammad:"\u03dc",gammad:"\u03dd",gap:"\u2a86",Gbreve:"\u011e",gbreve:"\u011f",Gcedil:"\u0122",Gcirc:"\u011c",gcirc:"\u011d",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2a8c",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",gescc:"\u2aa9",ges:"\u2a7e",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",Gfr:"\ud835\udd0a",gfr:"\ud835\udd24",gg:"\u226b",Gg:"\u22d9",ggg:"\u22d9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2aa5",gl:"\u2277",glE:"\u2a92",glj:"\u2aa4",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gnE:"\u2269",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",Gopf:"\ud835\udd3e",gopf:"\ud835\udd58",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gt:">",GT:">",Gt:"\u226b",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",harrcir:"\u2948",harr:"\u2194",hArr:"\u21d4",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",Hfr:"\u210c",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",Hopf:"\u210d",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\ud835\udcbd",Hscr:"\u210b",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",Ifr:"\u2111",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",incare:"\u2105",in:"\u2208",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",intcal:"\u22ba",int:"\u222b",Int:"\u222c",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",Iscr:"\u2110",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41",jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",Lang:"\u27ea",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",larrb:"\u21e4",larrbfs:"\u291f",larr:"\u2190",Larr:"\u219e",lArr:"\u21d0",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",latail:"\u2919",lAtail:"\u291b",lat:"\u2aab",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lBarr:"\u290e",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27e8",LeftArrowBar:"\u21e4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21d0",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21c3",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTeeArrow:"\u21a4",LeftTee:"\u22a3",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangleBar:"\u29cf",LeftTriangle:"\u22b2",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21bf",LeftVectorBar:"\u2952",LeftVector:"\u21bc",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",lescc:"\u2aa8",les:"\u2a7d",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21c7",ll:"\u226a",Ll:"\u22d8",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoustache:"\u23b0",lmoust:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lnE:"\u2268",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftrightarrow:"\u27f7",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longmapsto:"\u27fc",longrightarrow:"\u27f6",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",Lscr:"\u2112",lsh:"\u21b0",Lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",lt:"<",LT:"<",Lt:"\u226a",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midast:"*",midcir:"\u2af0",mid:"\u2223",middot:"\xb7",minusb:"\u229f",minus:"\u2212",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",Mscr:"\u2133",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266e",naturals:"\u2115",natur:"\u266e",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21d7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nharr:"\u21ae",nhArr:"\u21ce",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlarr:"\u219a",nlArr:"\u21cd",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219a",nLeftarrow:"\u21cd",nleftrightarrow:"\u21ae",nLeftrightarrow:"\u21ce",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nopf:"\ud835\udd5f",Nopf:"\u2115",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangle:"\u22eb",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",nprec:"\u2280",npreceq:"\u2aaf\u0338",npre:"\u2aaf\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219b",nrArr:"\u21cf",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nRightarrow:"\u21cf",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvDash:"\u22ad",nVdash:"\u22ae",nVDash:"\u22af",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21d6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",Ocirc:"\xd4",ocirc:"\xf4",ocir:"\u229a",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",orarr:"\u21bb",Or:"\u2a54",or:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",otimesas:"\u2a36",Otimes:"\u2a37",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",para:"\xb6",parallel:"\u2225",par:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plus:"+",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",popf:"\ud835\udd61",Popf:"\u2119",pound:"\xa3",prap:"\u2ab7",Pr:"\u2abb",pr:"\u227a",prcue:"\u227c",precapprox:"\u2ab7",prec:"\u227a",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",pre:"\u2aaf",prE:"\u2ab3",precsim:"\u227e",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportional:"\u221d",Proportion:"\u2237",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",Qopf:"\u211a",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',QUOT:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",Rang:"\u27eb",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21a0",rArr:"\u21d2",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",rAtail:"\u291c",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rBarr:"\u290f",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",Re:"\u211c",rect:"\u25ad",reg:"\xae",REG:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",Rfr:"\u211c",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrowBar:"\u21e5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21d2",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVectorBar:"\u2955",RightDownVector:"\u21c2",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTeeArrow:"\u21a6",RightTee:"\u22a2",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangleBar:"\u29d0",RightTriangle:"\u22b3",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVectorBar:"\u2954",RightUpVector:"\u21be",RightVectorBar:"\u2953",RightVector:"\u21c0",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoustache:"\u23b1",rmoust:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",Ropf:"\u211d",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",rscr:"\ud835\udcc7",Rscr:"\u211b",rsh:"\u21b1",Rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2abc",sc:"\u227b",sccue:"\u227d",sce:"\u2ab0",scE:"\u2ab4",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdotb:"\u22a1",sdot:"\u22c5",sdote:"\u2a66",searhk:"\u2925",searr:"\u2198",seArr:"\u21d8",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",solbar:"\u233f",solb:"\u29c4",sol:"/",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25a1",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squ:"\u25a1",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",Sub:"\u22d0",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",Subset:"\u22d0",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succapprox:"\u2ab8",succ:"\u227b",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",sum:"\u2211",Sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",Sup:"\u22d1",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",Supset:"\u22d1",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21d9",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2a31",timesb:"\u22a0",times:"\xd7",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",topbot:"\u2336",topcir:"\u2af1",top:"\u22a4",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",Uarr:"\u219f",uArr:"\u21d1",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21d1",UpArrowDownArrow:"\u21c5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21d5",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03c5",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTeeArrow:"\u21a5",UpTee:"\u22a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",vArr:"\u21d5",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vBar:"\u2ae8",Vbar:"\u2aeb",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22a2",vDash:"\u22a8",Vdash:"\u22a9",VDash:"\u22ab",Vdashl:"\u2ae6",veebar:"\u22bb",vee:"\u2228",Vee:"\u22c1",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",Wedge:"\u22c0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xharr:"\u27f7",xhArr:"\u27fa",Xi:"\u039e",xi:"\u03be",xlarr:"\u27f5",xlArr:"\u27f8",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrarr:"\u27f6",xrArr:"\u27f9",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",yuml:"\xff",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",zfr:"\ud835\udd37",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",Zopf:"\u2124",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"}}}),m=u({"node_modules/markdown-it/lib/common/entities.js"(e,t){"use strict";t.exports=f()}}),g=u({"node_modules/uc.micro/categories/P/regex.js"(e,t){t.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/}}),b=u({"node_modules/mdurl/encode.js"(e,t){"use strict";var r={};function n(e,t,s){var i,o,a,l,c,u="";for("string"!==typeof t&&(s=t,t=n.defaultChars),"undefined"===typeof s&&(s=!0),c=function(e){var t,n,s=r[e];if(s)return s;for(s=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?s.push(n):s.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)s[e.charCodeAt(t)]=e[t];return s}(t),i=0,o=e.length;i<o;i++)if(a=e.charCodeAt(i),s&&37===a&&i+2<o&&/^[0-9a-f]{2}$/i.test(e.slice(i+1,i+3)))u+=e.slice(i,i+3),i+=2;else if(a<128)u+=c[a];else if(a>=55296&&a<=57343){if(a>=55296&&a<=56319&&i+1<o&&(l=e.charCodeAt(i+1))>=56320&&l<=57343){u+=encodeURIComponent(e[i]+e[i+1]),i++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[i]);return u}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",t.exports=n}}),_=u({"node_modules/mdurl/decode.js"(e,t){"use strict";var r={};function n(e,t){var s;return"string"!==typeof t&&(t=n.defaultChars),s=function(e){var t,n,s=r[e];if(s)return s;for(s=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),s.push(n);for(t=0;t<e.length;t++)s[n=e.charCodeAt(t)]="%"+("0"+n.toString(16).toUpperCase()).slice(-2);return s}(t),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,r,n,i,o,a,l,c="";for(t=0,r=e.length;t<r;t+=3)(n=parseInt(e.slice(t+1,t+3),16))<128?c+=s[n]:192===(224&n)&&t+3<r&&128===(192&(i=parseInt(e.slice(t+4,t+6),16)))?(c+=(l=n<<6&1984|63&i)<128?"\ufffd\ufffd":String.fromCharCode(l),t+=3):224===(240&n)&&t+6<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),128===(192&i)&&128===(192&o))?(c+=(l=n<<12&61440|i<<6&4032|63&o)<2048||l>=55296&&l<=57343?"\ufffd\ufffd\ufffd":String.fromCharCode(l),t+=6):240===(248&n)&&t+9<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),a=parseInt(e.slice(t+10,t+12),16),128===(192&i)&&128===(192&o)&&128===(192&a))?((l=n<<18&1835008|i<<12&258048|o<<6&4032|63&a)<65536||l>1114111?c+="\ufffd\ufffd\ufffd\ufffd":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="\ufffd";return c}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="",t.exports=n}}),y=u({"node_modules/mdurl/format.js"(e,t){"use strict";t.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}}}),k=u({"node_modules/mdurl/parse.js"(e,t){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var n=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,i=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),a=["'"].concat(o),l=["%","/","?",";","#"].concat(a),c=["/","?","#"],u=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};r.prototype.parse=function(e,t){var r,s,o,a,f,m=e;if(m=m.trim(),!t&&1===e.split("#").length){var g=i.exec(m);if(g)return this.pathname=g[1],g[2]&&(this.search=g[2]),this}var b=n.exec(m);if(b&&(o=(b=b[0]).toLowerCase(),this.protocol=b,m=m.substr(b.length)),(t||b||m.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(f="//"===m.substr(0,2))||b&&h[b]||(m=m.substr(2),this.slashes=!0)),!h[b]&&(f||b&&!d[b])){var _,y,k=-1;for(r=0;r<c.length;r++)-1!==(a=m.indexOf(c[r]))&&(-1===k||a<k)&&(k=a);for(-1!==(y=-1===k?m.lastIndexOf("@"):m.lastIndexOf("@",k))&&(_=m.slice(0,y),m=m.slice(y+1),this.auth=_),k=-1,r=0;r<l.length;r++)-1!==(a=m.indexOf(l[r]))&&(-1===k||a<k)&&(k=a);-1===k&&(k=m.length),":"===m[k-1]&&k--;var v=m.slice(0,k);m=m.slice(k),this.parseHost(v),this.hostname=this.hostname||"";var C="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!C){var A=this.hostname.split(/\./);for(r=0,s=A.length;r<s;r++){var x=A[r];if(x&&!x.match(u)){for(var w="",D=0,E=x.length;D<E;D++)x.charCodeAt(D)>127?w+="x":w+=x[D];if(!w.match(u)){var q=A.slice(0,r),S=A.slice(r+1),F=x.match(p);F&&(q.push(F[1]),S.unshift(F[2])),S.length&&(m=S.join(".")+m),this.hostname=q.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var j=m.indexOf("#");-1!==j&&(this.hash=m.substr(j),m=m.slice(0,j));var z=m.indexOf("?");return-1!==z&&(this.search=m.substr(z),m=m.slice(0,z)),m&&(this.pathname=m),d[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.exports=function(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}}}),v=u({"node_modules/mdurl/index.js"(e,t){"use strict";t.exports.encode=b(),t.exports.decode=_(),t.exports.format=y(),t.exports.parse=k()}}),C=u({"node_modules/uc.micro/properties/Any/regex.js"(e,t){t.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/}}),A=u({"node_modules/uc.micro/categories/Cc/regex.js"(e,t){t.exports=/[\0-\x1F\x7F-\x9F]/}}),x=u({"node_modules/uc.micro/categories/Cf/regex.js"(e,t){t.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/}}),w=u({"node_modules/uc.micro/categories/Z/regex.js"(e,t){t.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/}}),D=u({"node_modules/uc.micro/index.js"(e){"use strict";e.Any=C(),e.Cc=A(),e.Cf=x(),e.P=g(),e.Z=w()}}),E=u({"node_modules/markdown-it/lib/common/utils.js"(e){"use strict";var t=Object.prototype.hasOwnProperty;function r(e,r){return t.call(e,r)}function n(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function s(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var i=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,o=new RegExp(i.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),a=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=m();var c=/[&<>"]/,u=/[&<>"]/g,p={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function h(e){return p[e]}var d=/[.?*+^$[\]\\(){}|-]/g;var f=g();e.lib={},e.lib.mdurl=v(),e.lib.ucmicro=D(),e.assign=function(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!==typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(r){e[r]=t[r]}))}})),e},e.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},e.has=r,e.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(i,"$1")},e.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(o,(function(e,t,i){return t||function(e,t){var i=0;return r(l,t)?l[t]:35===t.charCodeAt(0)&&a.test(t)&&n(i="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?s(i):e}(e,i)}))},e.isValidEntityCode=n,e.fromCodePoint=s,e.escapeHtml=function(e){return c.test(e)?e.replace(u,h):e},e.arrayReplaceAt=function(e,t,r){return[].concat(e.slice(0,t),r,e.slice(t+1))},e.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},e.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},e.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},e.isPunctChar=function(e){return f.test(e)},e.escapeRE=function(e){return e.replace(d,"\\$&")},e.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"\u1e7e"==="\u1e9e".toLowerCase()&&(e=e.replace(/\u1e9e/g,"\xdf")),e.toLowerCase().toUpperCase()}}}),q=u({"node_modules/markdown-it/lib/helpers/parse_link_label.js"(e,t){"use strict";t.exports=function(e,t,r){var n,s,i,o,a=-1,l=e.posMax,c=e.pos;for(e.pos=t+1,n=1;e.pos<l;){if(93===(i=e.src.charCodeAt(e.pos))&&0===--n){s=!0;break}if(o=e.pos,e.md.inline.skipToken(e),91===i)if(o===e.pos-1)n++;else if(r)return e.pos=c,-1}return s&&(a=e.pos),e.pos=c,a}}}),S=u({"node_modules/markdown-it/lib/helpers/parse_link_destination.js"(e,t){"use strict";var r=E().unescapeAll;t.exports=function(e,t,n){var s,i,o=t,a={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(s=e.charCodeAt(t)))return a;if(60===s)return a;if(62===s)return a.pos=t+1,a.str=r(e.slice(o+1,t)),a.ok=!0,a;92===s&&t+1<n?t+=2:t++}return a}for(i=0;t<n&&32!==(s=e.charCodeAt(t))&&!(s<32||127===s);)if(92===s&&t+1<n){if(32===e.charCodeAt(t+1))break;t+=2}else{if(40===s&&++i>32)return a;if(41===s){if(0===i)break;i--}t++}return o===t||0!==i||(a.str=r(e.slice(o,t)),a.lines=0,a.pos=t,a.ok=!0),a}}}),F=u({"node_modules/markdown-it/lib/helpers/parse_link_title.js"(e,t){"use strict";var r=E().unescapeAll;t.exports=function(e,t,n){var s,i,o=0,a=t,l={ok:!1,pos:0,lines:0,str:""};if(t>=n)return l;if(34!==(i=e.charCodeAt(t))&&39!==i&&40!==i)return l;for(t++,40===i&&(i=41);t<n;){if((s=e.charCodeAt(t))===i)return l.pos=t+1,l.lines=o,l.str=r(e.slice(a+1,t)),l.ok=!0,l;if(40===s&&41===i)return l;10===s?o++:92===s&&t+1<n&&(t++,10===e.charCodeAt(t)&&o++),t++}return l}}}),j=u({"node_modules/markdown-it/lib/helpers/index.js"(e){"use strict";e.parseLinkLabel=q(),e.parseLinkDestination=S(),e.parseLinkTitle=F()}}),z=u({"node_modules/markdown-it/lib/renderer.js"(e,t){"use strict";var r=E().assign,n=E().unescapeAll,s=E().escapeHtml,i={};function o(){this.rules=r({},i)}i.code_inline=function(e,t,r,n,i){var o=e[t];return"<code"+i.renderAttrs(o)+">"+s(e[t].content)+"</code>"},i.code_block=function(e,t,r,n,i){var o=e[t];return"<pre"+i.renderAttrs(o)+"><code>"+s(e[t].content)+"</code></pre>\n"},i.fence=function(e,t,r,i,o){var a,l,c,u,p,h=e[t],d=h.info?n(h.info).trim():"",f="",m="";return d&&(f=(c=d.split(/(\s+)/g))[0],m=c.slice(2).join("")),0===(a=r.highlight&&r.highlight(h.content,f,m)||s(h.content)).indexOf("<pre")?a+"\n":d?(l=h.attrIndex("class"),u=h.attrs?h.attrs.slice():[],l<0?u.push(["class",r.langPrefix+f]):(u[l]=u[l].slice(),u[l][1]+=" "+r.langPrefix+f),p={attrs:u},"<pre><code"+o.renderAttrs(p)+">"+a+"</code></pre>\n"):"<pre><code"+o.renderAttrs(h)+">"+a+"</code></pre>\n"},i.image=function(e,t,r,n,s){var i=e[t];return i.attrs[i.attrIndex("alt")][1]=s.renderInlineAsText(i.children,r,n),s.renderToken(e,t,r)},i.hardbreak=function(e,t,r){return r.xhtmlOut?"<br />\n":"<br>\n"},i.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?"<br />\n":"<br>\n":"\n"},i.text=function(e,t){return s(e[t].content)},i.html_block=function(e,t){return e[t].content},i.html_inline=function(e,t){return e[t].content},o.prototype.renderAttrs=function(e){var t,r,n;if(!e.attrs)return"";for(n="",t=0,r=e.attrs.length;t<r;t++)n+=" "+s(e.attrs[t][0])+'="'+s(e.attrs[t][1])+'"';return n},o.prototype.renderToken=function(e,t,r){var n,s="",i=!1,o=e[t];return o.hidden?"":(o.block&&-1!==o.nesting&&t&&e[t-1].hidden&&(s+="\n"),s+=(-1===o.nesting?"</":"<")+o.tag,s+=this.renderAttrs(o),0===o.nesting&&r.xhtmlOut&&(s+=" /"),o.block&&(i=!0,1===o.nesting&&t+1<e.length&&("inline"===(n=e[t+1]).type||n.hidden||-1===n.nesting&&n.tag===o.tag)&&(i=!1)),s+=i?">\n":">")},o.prototype.renderInline=function(e,t,r){for(var n,s="",i=this.rules,o=0,a=e.length;o<a;o++)"undefined"!==typeof i[n=e[o].type]?s+=i[n](e,o,t,r,this):s+=this.renderToken(e,o,t);return s},o.prototype.renderInlineAsText=function(e,t,r){for(var n="",s=0,i=e.length;s<i;s++)"text"===e[s].type?n+=e[s].content:"image"===e[s].type?n+=this.renderInlineAsText(e[s].children,t,r):"softbreak"===e[s].type&&(n+="\n");return n},o.prototype.render=function(e,t,r){var n,s,i,o="",a=this.rules;for(n=0,s=e.length;n<s;n++)"inline"===(i=e[n].type)?o+=this.renderInline(e[n].children,t,r):"undefined"!==typeof a[i]?o+=a[e[n].type](e,n,t,r,this):o+=this.renderToken(e,n,t,r);return o},t.exports=o}}),L=u({"node_modules/markdown-it/lib/ruler.js"(e,t){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(r){r.enabled&&(t&&r.alt.indexOf(t)<0||e.__cache__[t].push(r.fn))}))}))},r.prototype.at=function(e,t,r){var n=this.__find__(e),s=r||{};if(-1===n)throw new Error("Parser rule not found: "+e);this.__rules__[n].fn=t,this.__rules__[n].alt=s.alt||[],this.__cache__=null},r.prototype.before=function(e,t,r,n){var s=this.__find__(e),i=n||{};if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s,0,{name:t,enabled:!0,fn:r,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,r,n){var s=this.__find__(e),i=n||{};if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s+1,0,{name:t,enabled:!0,fn:r,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,r){var n=r||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var r=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!0,r.push(e)}),this),this.__cache__=null,r},r.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},r.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var r=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!1,r.push(e)}),this),this.__cache__=null,r},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},t.exports=r}}),T=u({"node_modules/markdown-it/lib/rules_core/normalize.js"(e,t){"use strict";var r=/\r\n?|\n/g,n=/\0/g;t.exports=function(e){var t;t=(t=e.src.replace(r,"\n")).replace(n,"\ufffd"),e.src=t}}}),I=u({"node_modules/markdown-it/lib/rules_core/block.js"(e,t){"use strict";t.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}}}),O=u({"node_modules/markdown-it/lib/rules_core/inline.js"(e,t){"use strict";t.exports=function(e){var t,r,n,s=e.tokens;for(r=0,n=s.length;r<n;r++)"inline"===(t=s[r]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}}}),$=u({"node_modules/markdown-it/lib/rules_core/linkify.js"(e,t){"use strict";var r=E().arrayReplaceAt;function n(e){return/^<\/a\s*>/i.test(e)}t.exports=function(e){var t,s,i,o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v=e.tokens;if(e.md.options.linkify)for(s=0,i=v.length;s<i;s++)if("inline"===v[s].type&&e.md.linkify.pretest(v[s].content))for(m=0,t=(o=v[s].children).length-1;t>=0;t--)if("link_close"!==(l=o[t]).type){if("html_inline"===l.type&&(k=l.content,/^<a[>\s]/i.test(k)&&m>0&&m--,n(l.content)&&m++),!(m>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(p=l.content,y=e.md.linkify.match(p),c=[],f=l.level,d=0,u=0;u<y.length;u++)g=y[u].url,b=e.md.normalizeLink(g),e.md.validateLink(b)&&(_=y[u].text,_=y[u].schema?"mailto:"!==y[u].schema||/^mailto:/i.test(_)?e.md.normalizeLinkText(_):e.md.normalizeLinkText("mailto:"+_).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+_).replace(/^http:\/\//,""),(h=y[u].index)>d&&((a=new e.Token("text","",0)).content=p.slice(d,h),a.level=f,c.push(a)),(a=new e.Token("link_open","a",1)).attrs=[["href",b]],a.level=f++,a.markup="linkify",a.info="auto",c.push(a),(a=new e.Token("text","",0)).content=_,a.level=f,c.push(a),(a=new e.Token("link_close","a",-1)).level=--f,a.markup="linkify",a.info="auto",c.push(a),d=y[u].lastIndex);d<p.length&&((a=new e.Token("text","",0)).content=p.slice(d),a.level=f,c.push(a)),v[s].children=o=r(o,t,c)}}else for(t--;o[t].level!==l.level&&"link_open"!==o[t].type;)t--}}}),M=u({"node_modules/markdown-it/lib/rules_core/replacements.js"(e,t){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,n=/\((c|tm|r|p)\)/i,s=/\((c|tm|r|p)\)/gi,i={c:"\xa9",r:"\xae",p:"\xa7",tm:"\u2122"};function o(e,t){return i[t.toLowerCase()]}function a(e){var t,r,n=0;for(t=e.length-1;t>=0;t--)"text"!==(r=e[t]).type||n||(r.content=r.content.replace(s,o)),"link_open"===r.type&&"auto"===r.info&&n--,"link_close"===r.type&&"auto"===r.info&&n++}function l(e){var t,n,s=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||s||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"\xb1").replace(/\.{2,}/g,"\u2026").replace(/([?!])\u2026/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1\u2014").replace(/(^|\s)--(?=\s|$)/gm,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1\u2013")),"link_open"===n.type&&"auto"===n.info&&s--,"link_close"===n.type&&"auto"===n.info&&s++}t.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(n.test(e.tokens[t].content)&&a(e.tokens[t].children),r.test(e.tokens[t].content)&&l(e.tokens[t].children))}}}),R=u({"node_modules/markdown-it/lib/rules_core/smartquotes.js"(e,t){"use strict";var r=E().isWhiteSpace,n=E().isPunctChar,s=E().isMdAsciiPunct,i=/['"]/,o=/['"]/g;function a(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}function l(e,t){var i,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x,w,D,E;for(w=[],i=0;i<e.length;i++){for(l=e[i],d=e[i].level,A=w.length-1;A>=0&&!(w[A].level<=d);A--);if(w.length=A+1,"text"===l.type){p=0,h=(c=l.content).length;e:for(;p<h&&(o.lastIndex=p,u=o.exec(c));){if(v=C=!0,p=u.index+1,x="'"===u[0],m=32,u.index-1>=0)m=c.charCodeAt(u.index-1);else for(A=i-1;A>=0&&("softbreak"!==e[A].type&&"hardbreak"!==e[A].type);A--)if(e[A].content){m=e[A].content.charCodeAt(e[A].content.length-1);break}if(g=32,p<h)g=c.charCodeAt(p);else for(A=i+1;A<e.length&&("softbreak"!==e[A].type&&"hardbreak"!==e[A].type);A++)if(e[A].content){g=e[A].content.charCodeAt(0);break}if(b=s(m)||n(String.fromCharCode(m)),_=s(g)||n(String.fromCharCode(g)),y=r(m),(k=r(g))?v=!1:_&&(y||b||(v=!1)),y?C=!1:b&&(k||_||(C=!1)),34===g&&'"'===u[0]&&m>=48&&m<=57&&(C=v=!1),v&&C&&(v=b,C=_),v||C){if(C)for(A=w.length-1;A>=0&&(f=w[A],!(w[A].level<d));A--)if(f.single===x&&w[A].level===d){f=w[A],x?(D=t.md.options.quotes[2],E=t.md.options.quotes[3]):(D=t.md.options.quotes[0],E=t.md.options.quotes[1]),l.content=a(l.content,u.index,E),e[f.token].content=a(e[f.token].content,f.pos,D),p+=E.length-1,f.token===i&&(p+=D.length-1),h=(c=l.content).length,w.length=A;continue e}v?w.push({token:i,pos:u.index,single:x,level:d}):C&&x&&(l.content=a(l.content,u.index,"\u2019"))}else x&&(l.content=a(l.content,u.index,"\u2019"))}}}}t.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&i.test(e.tokens[t].content)&&l(e.tokens[t].children,e)}}}),N=u({"node_modules/markdown-it/lib/token.js"(e,t){"use strict";function r(e,t,r){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=r,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}r.prototype.attrIndex=function(e){var t,r,n;if(!this.attrs)return-1;for(r=0,n=(t=this.attrs).length;r<n;r++)if(t[r][0]===e)return r;return-1},r.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},r.prototype.attrSet=function(e,t){var r=this.attrIndex(e),n=[e,t];r<0?this.attrPush(n):this.attrs[r]=n},r.prototype.attrGet=function(e){var t=this.attrIndex(e),r=null;return t>=0&&(r=this.attrs[t][1]),r},r.prototype.attrJoin=function(e,t){var r=this.attrIndex(e);r<0?this.attrPush([e,t]):this.attrs[r][1]=this.attrs[r][1]+" "+t},t.exports=r}}),B=u({"node_modules/markdown-it/lib/rules_core/state_core.js"(e,t){"use strict";var r=N();function n(e,t,r){this.src=e,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=t}n.prototype.Token=r,t.exports=n}}),P=u({"node_modules/markdown-it/lib/parser_core.js"(e,t){"use strict";var r=L(),n=[["normalize",T()],["block",I()],["inline",O()],["linkify",$()],["replacements",M()],["smartquotes",R()]];function s(){this.ruler=new r;for(var e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1])}s.prototype.process=function(e){var t,r,n;for(t=0,r=(n=this.ruler.getRules("")).length;t<r;t++)n[t](e)},s.prototype.State=B(),t.exports=s}}),U=u({"node_modules/markdown-it/lib/rules_block/table.js"(e,t){"use strict";var r=E().isSpace;function n(e,t){var r=e.bMarks[t]+e.tShift[t],n=e.eMarks[t];return e.src.substr(r,n-r)}function s(e){var t,r=[],n=0,s=e.length,i=!1,o=0,a="";for(t=e.charCodeAt(n);n<s;)124===t&&(i?(a+=e.substring(o,n-1),o=n):(r.push(a+e.substring(o,n)),a="",o=n+1)),i=92===t,n++,t=e.charCodeAt(n);return r.push(a+e.substring(o)),r}t.exports=function(e,t,i,o){var a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x;if(t+2>i)return!1;if(h=t+1,e.sCount[h]<e.blkIndent)return!1;if(!e.md.options.allowIndentation&&e.sCount[h]-e.blkIndent>=4)return!1;if((c=e.bMarks[h]+e.tShift[h])>=e.eMarks[h])return!1;if(124!==(A=e.src.charCodeAt(c++))&&45!==A&&58!==A)return!1;if(c>=e.eMarks[h])return!1;if(124!==(x=e.src.charCodeAt(c++))&&45!==x&&58!==x&&!r(x))return!1;if(45===A&&r(x))return!1;for(;c<e.eMarks[h];){if(124!==(a=e.src.charCodeAt(c))&&45!==a&&58!==a&&!r(a))return!1;c++}for(d=(l=n(e,t+1)).split("|"),g=[],u=0;u<d.length;u++){if(!(b=d[u].trim())){if(0===u||u===d.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?g.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?g.push("left"):g.push("")}if(-1===(l=n(e,t).trim()).indexOf("|"))return!1;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if((d=s(l)).length&&""===d[0]&&d.shift(),d.length&&""===d[d.length-1]&&d.pop(),0===(f=d.length)||f!==g.length)return!1;if(o)return!0;for(k=e.parentType,e.parentType="table",C=e.md.block.ruler.getRules("blockquote"),(m=e.push("table_open","table",1)).map=_=[t,0],(m=e.push("thead_open","thead",1)).map=[t,t+1],(m=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<d.length;u++)m=e.push("th_open","th",1),g[u]&&(m.attrs=[["style","text-align:"+g[u]]]),(m=e.push("inline","",0)).content=d[u].trim(),m.children=[],m=e.push("th_close","th",-1);for(m=e.push("tr_close","tr",-1),m=e.push("thead_close","thead",-1),h=t+2;h<i&&!(e.sCount[h]<e.blkIndent);h++){for(v=!1,u=0,p=C.length;u<p;u++)if(C[u](e,h,i,!0)){v=!0;break}if(v)break;if(!(l=n(e,h).trim()))break;if(!e.md.options.allowIndentation&&e.sCount[h]-e.blkIndent>=4)break;for((d=s(l)).length&&""===d[0]&&d.shift(),d.length&&""===d[d.length-1]&&d.pop(),h===t+2&&((m=e.push("tbody_open","tbody",1)).map=y=[t+2,0]),(m=e.push("tr_open","tr",1)).map=[h,h+1],u=0;u<f;u++)m=e.push("td_open","td",1),g[u]&&(m.attrs=[["style","text-align:"+g[u]]]),(m=e.push("inline","",0)).content=d[u]?d[u].trim():"",m.children=[],m=e.push("td_close","td",-1);m=e.push("tr_close","tr",-1)}return y&&(m=e.push("tbody_close","tbody",-1),y[1]=h),m=e.push("table_close","table",-1),_[1]=h,e.parentType=k,e.line=h,!0}}}),V=u({"node_modules/markdown-it/lib/rules_block/code.js"(e,t){"use strict";t.exports=function(e,t,r){if(e.md.options.allowIndentation)return!1;var n,s,i;if(e.sCount[t]-e.blkIndent<4)return!1;for(s=n=t+1;n<r;)if(e.isEmpty(n))n++;else{if(!(e.sCount[n]-e.blkIndent>=4))break;s=++n}return e.line=s,(i=e.push("code_block","code",0)).content=e.getLines(t,s,4+e.blkIndent,!1)+"\n",i.map=[t,e.line],!0}}}),Z=u({"node_modules/markdown-it/lib/rules_block/fence.js"(e,t){"use strict";t.exports=function(e,t,r,n){var s,i,o,a,l,c,u,p=!1,h=e.bMarks[t]+e.tShift[t],d=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(h+3>d)return!1;if(126!==(s=e.src.charCodeAt(h))&&96!==s)return!1;if(l=h,(i=(h=e.skipChars(h,s))-l)<3)return!1;if(u=e.src.slice(l,h),o=e.src.slice(h,d),96===s&&o.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;for(a=t;!(++a>=r)&&!((h=l=e.bMarks[a]+e.tShift[a])<(d=e.eMarks[a])&&e.sCount[a]<e.blkIndent);)if(e.src.charCodeAt(h)===s&&(e.md.options.allowIndentation||!(e.sCount[a]-e.blkIndent>=4))&&!((h=e.skipChars(h,s))-l<i)&&!((h=e.skipSpaces(h))<d)){p=!0;break}return i=e.sCount[t],e.line=a+(p?1:0),(c=e.push("fence","code",0)).info=o,c.content=e.getLines(t+1,a,i,!0),c.markup=u,c.map=[t,e.line],!0}}}),G=u({"node_modules/markdown-it/lib/rules_block/blockquote.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t,n,s){var i,o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x,w=e.lineMax,D=e.bMarks[t]+e.tShift[t],E=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(D++))return!1;if(s)return!0;for(l=d=e.sCount[t]+1,32===e.src.charCodeAt(D)?(D++,l++,d++,i=!1,k=!0):9===e.src.charCodeAt(D)?(k=!0,(e.bsCount[t]+d)%4===3?(D++,l++,d++,i=!1):i=!0):k=!1,f=[e.bMarks[t]],e.bMarks[t]=D;D<E&&(o=e.src.charCodeAt(D),r(o));)9===o?d+=4-(d+e.bsCount[t]+(i?1:0))%4:d++,D++;for(m=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(k?1:0),u=D>=E,_=[e.sCount[t]],e.sCount[t]=d-l,y=[e.tShift[t]],e.tShift[t]=D-e.bMarks[t],C=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",h=t+1;h<n&&(x=e.sCount[h]<e.blkIndent,!((D=e.bMarks[h]+e.tShift[h])>=(E=e.eMarks[h])));h++)if(62!==e.src.charCodeAt(D++)||x){if(u)break;for(v=!1,a=0,c=C.length;a<c;a++)if(C[a](e,h,n,!0)){v=!0;break}if(v){e.lineMax=h,0!==e.blkIndent&&(f.push(e.bMarks[h]),m.push(e.bsCount[h]),y.push(e.tShift[h]),_.push(e.sCount[h]),e.sCount[h]-=e.blkIndent);break}f.push(e.bMarks[h]),m.push(e.bsCount[h]),y.push(e.tShift[h]),_.push(e.sCount[h]),e.sCount[h]=-1}else{for(l=d=e.sCount[h]+1,32===e.src.charCodeAt(D)?(D++,l++,d++,i=!1,k=!0):9===e.src.charCodeAt(D)?(k=!0,(e.bsCount[h]+d)%4===3?(D++,l++,d++,i=!1):i=!0):k=!1,f.push(e.bMarks[h]),e.bMarks[h]=D;D<E&&(o=e.src.charCodeAt(D),r(o));)9===o?d+=4-(d+e.bsCount[h]+(i?1:0))%4:d++,D++;u=D>=E,m.push(e.bsCount[h]),e.bsCount[h]=e.sCount[h]+1+(k?1:0),_.push(e.sCount[h]),e.sCount[h]=d-l,y.push(e.tShift[h]),e.tShift[h]=D-e.bMarks[h]}for(g=e.blkIndent,e.blkIndent=0,(A=e.push("blockquote_open","blockquote",1)).markup=">",A.map=p=[t,0],e.md.block.tokenize(e,t,h),(A=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=w,e.parentType=b,p[1]=e.line,a=0;a<y.length;a++)e.bMarks[a+t]=f[a],e.tShift[a+t]=y[a],e.sCount[a+t]=_[a],e.bsCount[a+t]=m[a];return e.blkIndent=g,!0}}}),H=u({"node_modules/markdown-it/lib/rules_block/hr.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t,n,s){var i,o,a,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(i=e.src.charCodeAt(c++))&&45!==i&&95!==i)return!1;for(o=1;c<u;){if((a=e.src.charCodeAt(c++))!==i&&!r(a))return!1;a===i&&o++}return!(o<3)&&(s||(e.line=t+1,(l=e.push("hr","hr",0)).map=[t,e.line],l.markup=Array(o+1).join(String.fromCharCode(i))),!0)}}}),J=u({"node_modules/markdown-it/lib/rules_block/list.js"(e,t){"use strict";var r=E().isSpace;function n(e,t){var n,s,i,o;return s=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],42!==(n=e.src.charCodeAt(s++))&&45!==n&&43!==n||s<i&&(o=e.src.charCodeAt(s),!r(o))?-1:s}function s(e,t){var n,s=e.bMarks[t]+e.tShift[t],i=s,o=e.eMarks[t];if(i+1>=o)return-1;if((n=e.src.charCodeAt(i++))<48||n>57)return-1;for(;;){if(i>=o)return-1;if(!((n=e.src.charCodeAt(i++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(i-s>=10)return-1}return i<o&&(n=e.src.charCodeAt(i),!r(n))?-1:i}t.exports=function(e,t,r,i){var o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x,w,D,E,q,S,F,j,z,L,T=!1,I=!0;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.allowIndentation&&e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]<e.blkIndent)return!1;if(i&&"paragraph"===e.parentType&&e.sCount[t]>=e.blkIndent&&(T=!0),(q=s(e,t))>=0){if(h=!0,F=e.bMarks[t]+e.tShift[t],_=Number(e.src.slice(F,q-1)),T&&1!==_)return!1}else{if(!((q=n(e,t))>=0))return!1;h=!1}if(T&&e.skipSpaces(q)>=e.eMarks[t])return!1;if(b=e.src.charCodeAt(q-1),i)return!0;for(g=e.tokens.length,h?(L=e.push("ordered_list_open","ol",1),1!==_&&(L.attrs=[["start",_]])):L=e.push("bullet_list_open","ul",1),L.map=m=[t,0],L.markup=String.fromCharCode(b),k=t,S=!1,z=e.md.block.ruler.getRules("list"),A=e.parentType,e.parentType="list";k<r;){for(E=q,y=e.eMarks[k],p=v=e.sCount[k]+q-(e.bMarks[t]+e.tShift[t]);E<y;){if(9===(o=e.src.charCodeAt(E)))v+=4-(v+e.bsCount[k])%4;else{if(32!==o)break;v++}E++}if(u=(a=E)>=y?1:v-p,!e.md.options.allowIndentation&&u>4&&(u=1),c=p+u,(L=e.push("list_item_open","li",1)).markup=String.fromCharCode(b),L.map=d=[t,0],h&&(L.info=e.src.slice(F,q-1)),D=e.tight,w=e.tShift[t],x=e.sCount[t],C=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=a-e.bMarks[t],e.sCount[t]=v,a>=y&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,r):e.md.block.tokenize(e,t,r,!0),e.tight&&!S||(I=!1),S=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=C,e.tShift[t]=w,e.sCount[t]=x,e.tight=D,(L=e.push("list_item_close","li",-1)).markup=String.fromCharCode(b),k=t=e.line,d[1]=k,a=e.bMarks[t],k>=r)break;if(e.sCount[k]<e.blkIndent)break;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)break;for(j=!1,l=0,f=z.length;l<f;l++)if(z[l](e,k,r,!0)){j=!0;break}if(j)break;if(h){if((q=s(e,k))<0)break;F=e.bMarks[k]+e.tShift[k]}else if((q=n(e,k))<0)break;if(b!==e.src.charCodeAt(q-1))break}return(L=h?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(b),m[1]=k,e.line=k,e.parentType=A,I&&function(e,t){var r,n,s=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===s&&"paragraph_open"===e.tokens[r].type&&(e.tokens[r+2].hidden=!0,e.tokens[r].hidden=!0,r+=2)}(e,g),!0}}}),W=u({"node_modules/markdown-it/lib/rules_block/reference.js"(e,t){"use strict";var r=E().normalizeReference,n=E().isSpace;t.exports=function(e,t,s,i){var o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C=0,A=e.bMarks[t]+e.tShift[t],x=e.eMarks[t],w=t+1;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(A))return!1;for(;++A<x;)if(93===e.src.charCodeAt(A)&&92!==e.src.charCodeAt(A-1)){if(A+1===x)return!1;if(58!==e.src.charCodeAt(A+1))return!1;break}for(c=e.lineMax,k=e.md.block.ruler.getRules("reference"),m=e.parentType,e.parentType="reference";w<c&&!e.isEmpty(w);w++)if((e.md.options.allowIndentation||!(e.sCount[w]-e.blkIndent>3))&&!(e.sCount[w]<0)){for(y=!1,p=0,h=k.length;p<h;p++)if(k[p](e,w,c,!0)){y=!0;break}if(y)break}for(x=(_=e.getLines(t,w,e.blkIndent,!1).trim()).length,A=1;A<x;A++){if(91===(o=_.charCodeAt(A)))return!1;if(93===o){f=A;break}(10===o||92===o&&++A<x&&10===_.charCodeAt(A))&&C++}if(f<0||58!==_.charCodeAt(f+1))return!1;for(A=f+2;A<x;A++)if(10===(o=_.charCodeAt(A)))C++;else if(!n(o))break;if(!(g=e.md.helpers.parseLinkDestination(_,A,x)).ok)return!1;if(u=e.md.normalizeLink(g.str),!e.md.validateLink(u))return!1;for(a=A=g.pos,l=C+=g.lines,b=A;A<x;A++)if(10===(o=_.charCodeAt(A)))C++;else if(!n(o))break;for(g=e.md.helpers.parseLinkTitle(_,A,x),A<x&&b!==A&&g.ok?(v=g.str,A=g.pos,C+=g.lines):(v="",A=a,C=l);A<x&&(o=_.charCodeAt(A),n(o));)A++;if(A<x&&10!==_.charCodeAt(A)&&v)for(v="",A=a,C=l;A<x&&(o=_.charCodeAt(A),n(o));)A++;return!(A<x&&10!==_.charCodeAt(A))&&(!!(d=r(_.slice(1,f)))&&(i||("undefined"===typeof e.env.references&&(e.env.references={}),"undefined"===typeof e.env.references[d]&&(e.env.references[d]={title:v,href:u}),e.parentType=m,e.line=t+C+1),!0))}}}),Y=u({"node_modules/markdown-it/lib/common/html_blocks.js"(e,t){"use strict";t.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]}}),K=u({"node_modules/markdown-it/lib/common/html_re.js"(e,t){"use strict";var r="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",n="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",s=new RegExp("^(?:"+r+"|"+n+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),i=new RegExp("^(?:"+r+"|"+n+")");t.exports.HTML_TAG_RE=s,t.exports.HTML_OPEN_CLOSE_TAG_RE=i}}),Q=u({"node_modules/markdown-it/lib/rules_block/html_block.js"(e,t){"use strict";var r=Y(),n=K().HTML_OPEN_CLOSE_TAG_RE,s=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(n.source+"\\s*$"),/^$/,!1]];t.exports=function(e,t,r,n){var i,o,a,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(l=e.src.slice(c,u),i=0;i<s.length&&!s[i][0].test(l);i++);if(i===s.length)return!1;if(n)return s[i][2];if(o=t+1,!s[i][1].test(l))for(;o<r&&!(e.sCount[o]<e.blkIndent);o++)if(c=e.bMarks[o]+e.tShift[o],u=e.eMarks[o],l=e.src.slice(c,u),s[i][1].test(l)){0!==l.length&&o++;break}return e.line=o,(a=e.push("html_block","",0)).map=[t,o],a.content=e.getLines(t,o,e.blkIndent,!0),!0}}}),X=u({"node_modules/markdown-it/lib/rules_block/heading.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t,n,s){var i,o,a,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(i=e.src.charCodeAt(c))||c>=u)return!1;for(o=1,i=e.src.charCodeAt(++c);35===i&&c<u&&o<=6;)o++,i=e.src.charCodeAt(++c);return!(o>6||c<u&&!r(i))&&(s||(u=e.skipSpacesBack(u,c),(a=e.skipCharsBack(u,35,c))>c&&r(e.src.charCodeAt(a-1))&&(u=a),e.line=t+1,(l=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),l.map=[t,e.line],(l=e.push("inline","",0)).content=e.src.slice(c,u).trim(),l.map=[t,e.line],l.children=[],(l=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o)),!0)}}}),ee=u({"node_modules/markdown-it/lib/rules_block/lheading.js"(e,t){"use strict";t.exports=function(e,t,r){var n,s,i,o,a,l,c,u,p,h,d=t+1,f=e.md.block.ruler.getRules("paragraph");if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;for(h=e.parentType,e.parentType="paragraph";d<r&&!e.isEmpty(d);d++)if(e.md.options.allowIndentation||!(e.sCount[d]-e.blkIndent>3)){if(e.sCount[d]>=e.blkIndent&&(l=e.bMarks[d]+e.tShift[d])<(c=e.eMarks[d])&&(45===(p=e.src.charCodeAt(l))||61===p)&&(l=e.skipChars(l,p),(l=e.skipSpaces(l))>=c)){u=61===p?1:2;break}if(!(e.sCount[d]<0)){for(s=!1,i=0,o=f.length;i<o;i++)if(f[i](e,d,r,!0)){s=!0;break}if(s)break}}return!!u&&(n=e.getLines(t,d,e.blkIndent,!1).trim(),e.line=d+1,(a=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),a.map=[t,e.line],(a=e.push("inline","",0)).content=n,a.map=[t,e.line-1],a.children=[],(a=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=h,!0)}}}),te=u({"node_modules/markdown-it/lib/rules_block/paragraph.js"(e,t){"use strict";t.exports=function(e,t){var r,n,s,i,o,a,l=t+1,c=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(a=e.parentType,e.parentType="paragraph";l<u&&!e.isEmpty(l);l++)if((e.md.options.allowIndentation||!(e.sCount[l]-e.blkIndent>3))&&!(e.sCount[l]<0)){for(n=!1,s=0,i=c.length;s<i;s++)if(c[s](e,l,u,!0)){n=!0;break}if(n)break}return r=e.getLines(t,l,e.blkIndent,!1).trim(),e.line=l,(o=e.push("paragraph_open","p",1)).map=[t,e.line],(o=e.push("inline","",0)).content=r,o.map=[t,e.line],o.children=[],o=e.push("paragraph_close","p",-1),e.parentType=a,!0}}}),re=u({"node_modules/markdown-it/lib/rules_block/state_block.js"(e,t){"use strict";var r=N(),n=E().isSpace;function s(e,t,r,s){var i,o,a,l,c,u,p,h;for(this.src=e,this.md=t,this.env=r,this.tokens=s,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",h=!1,a=l=u=p=0,c=(o=this.src).length;l<c;l++){if(i=o.charCodeAt(l),!h){if(n(i)){u++,9===i?p+=4-p%4:p++;continue}h=!0}10!==i&&l!==c-1||(10!==i&&l++,this.bMarks.push(a),this.eMarks.push(l),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),h=!1,u=0,p=0,a=l+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}s.prototype.push=function(e,t,n){var s=new r(e,t,n);return s.block=!0,n<0&&this.level--,s.level=this.level,n>0&&this.level++,this.tokens.push(s),s},s.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},s.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},s.prototype.skipSpaces=function(e){for(var t,r=this.src.length;e<r&&(t=this.src.charCodeAt(e),n(t));e++);return e},s.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!n(this.src.charCodeAt(--e)))return e+1;return e},s.prototype.skipChars=function(e,t){for(var r=this.src.length;e<r&&this.src.charCodeAt(e)===t;e++);return e},s.prototype.skipCharsBack=function(e,t,r){if(e<=r)return e;for(;e>r;)if(t!==this.src.charCodeAt(--e))return e+1;return e},s.prototype.getLines=function(e,t,r,s){var i,o,a,l,c,u,p,h=e;if(e>=t)return"";for(u=new Array(t-e),i=0;h<t;h++,i++){for(o=0,p=l=this.bMarks[h],c=h+1<t||s?this.eMarks[h]+1:this.eMarks[h];l<c&&o<r;){if(a=this.src.charCodeAt(l),n(a))9===a?o+=4-(o+this.bsCount[h])%4:o++;else{if(!(l-p<this.tShift[h]))break;o++}l++}u[i]=o>r?new Array(o-r+1).join(" ")+this.src.slice(l,c):this.src.slice(l,c)}return u.join("")},s.prototype.Token=r,t.exports=s}}),ne=u({"node_modules/markdown-it/lib/parser_block.js"(e,t){"use strict";var r=L(),n=[["table",U(),["paragraph","reference"]],["code",V()],["fence",Z(),["paragraph","reference","blockquote","list"]],["blockquote",G(),["paragraph","reference","blockquote","list"]],["hr",H(),["paragraph","reference","blockquote","list"]],["list",J(),["paragraph","reference","blockquote"]],["reference",W()],["html_block",Q(),["paragraph","reference","blockquote"]],["heading",X(),["paragraph","reference","blockquote"]],["lheading",ee()],["paragraph",te()]];function s(){this.ruler=new r;for(var e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1],{alt:(n[e][2]||[]).slice()})}s.prototype.tokenize=function(e,t,r){for(var n,s=this.ruler.getRules(""),i=s.length,o=t,a=!1,l=e.md.options.maxNesting;o<r&&(e.line=o=e.skipEmptyLines(o),!(o>=r))&&!(e.sCount[o]<e.blkIndent);){if(e.level>=l){e.line=r;break}for(n=0;n<i&&!s[n](e,o,r,!1);n++);e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(o=e.line)<r&&e.isEmpty(o)&&(a=!0,o++,e.line=o)}},s.prototype.parse=function(e,t,r,n){var s;e&&(s=new this.State(e,t,r,n),this.tokenize(s,s.line,s.lineMax))},s.prototype.State=re(),t.exports=s}}),se=u({"node_modules/markdown-it/lib/rules_inline/text.js"(e,t){"use strict";function r(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}t.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}}}),ie=u({"node_modules/markdown-it/lib/rules_inline/newline.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t){var n,s,i,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(n=e.pending.length-1,s=e.posMax,!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){for(i=n-1;i>=1&&32===e.pending.charCodeAt(i-1);)i--;e.pending=e.pending.slice(0,i),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o<s&&r(e.src.charCodeAt(o));)o++;return e.pos=o,!0}}}),oe=u({"node_modules/markdown-it/lib/rules_inline/escape.js"(e,t){"use strict";var r,n=E().isSpace,s=[];for(r=0;r<256;r++)s.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){s[e.charCodeAt(0)]=1})),t.exports=function(e,t){var r,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(++i<o){if((r=e.src.charCodeAt(i))<256&&0!==s[r])return t||(e.pending+=e.src[i]),e.pos+=2,!0;if(10===r){for(t||e.push("hardbreak","br",0),i++;i<o&&(r=e.src.charCodeAt(i),n(r));)i++;return e.pos=i,!0}}return t||(e.pending+="\\"),e.pos++,!0}}}),ae=u({"node_modules/markdown-it/lib/rules_inline/backticks.js"(e,t){"use strict";t.exports=function(e,t){var r,n,s,i,o,a,l,c,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(r=u,u++,n=e.posMax;u<n&&96===e.src.charCodeAt(u);)u++;if(l=(s=e.src.slice(r,u)).length,e.backticksScanned&&(e.backticks[l]||0)<=r)return t||(e.pending+=s),e.pos+=l,!0;for(o=a=u;-1!==(o=e.src.indexOf("`",a));){for(a=o+1;a<n&&96===e.src.charCodeAt(a);)a++;if((c=a-o)===l)return t||((i=e.push("code_inline","code",0)).markup=s,i.content=e.src.slice(u,o).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=a,!0;e.backticks[c]=o}return e.backticksScanned=!0,t||(e.pending+=s),e.pos+=l,!0}}}),le=u({"node_modules/markdown-it/lib/rules_inline/strikethrough.js"(e,t){"use strict";function r(e,t){var r,n,s,i,o,a=[],l=t.length;for(r=0;r<l;r++)126===(s=t[r]).marker&&-1!==s.end&&(i=t[s.end],(o=e.tokens[s.token]).type="s_open",o.tag="s",o.nesting=1,o.markup="~~",o.content="",(o=e.tokens[i.token]).type="s_close",o.tag="s",o.nesting=-1,o.markup="~~",o.content="","text"===e.tokens[i.token-1].type&&"~"===e.tokens[i.token-1].content&&a.push(i.token-1));for(;a.length;){for(n=(r=a.pop())+1;n<e.tokens.length&&"s_close"===e.tokens[n].type;)n++;r!==--n&&(o=e.tokens[n],e.tokens[n]=e.tokens[r],e.tokens[r]=o)}}t.exports.tokenize=function(e,t){var r,n,s,i,o=e.pos,a=e.src.charCodeAt(o);if(t)return!1;if(126!==a)return!1;if(s=(n=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(a),s<2)return!1;for(s%2&&(e.push("text","",0).content=i,s--),r=0;r<s;r+=2)e.push("text","",0).content=i+i,e.delimiters.push({marker:a,length:0,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},t.exports.postProcess=function(e){var t,n=e.tokens_meta,s=e.tokens_meta.length;for(r(e,e.delimiters),t=0;t<s;t++)n[t]&&n[t].delimiters&&r(e,n[t].delimiters)}}}),ce=u({"node_modules/markdown-it/lib/rules_inline/emphasis.js"(e,t){"use strict";function r(e,t){var r,n,s,i,o,a;for(r=t.length-1;r>=0;r--)95!==(n=t[r]).marker&&42!==n.marker||-1!==n.end&&(s=t[n.end],a=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===s.token+1,o=String.fromCharCode(n.marker),(i=e.tokens[n.token]).type=a?"strong_open":"em_open",i.tag=a?"strong":"em",i.nesting=1,i.markup=a?o+o:o,i.content="",(i=e.tokens[s.token]).type=a?"strong_close":"em_close",i.tag=a?"strong":"em",i.nesting=-1,i.markup=a?o+o:o,i.content="",a&&(e.tokens[t[r-1].token].content="",e.tokens[t[n.end+1].token].content="",r--))}t.exports.tokenize=function(e,t){var r,n,s=e.pos,i=e.src.charCodeAt(s);if(t)return!1;if(95!==i&&42!==i)return!1;for(n=e.scanDelims(e.pos,42===i),r=0;r<n.length;r++)e.push("text","",0).content=String.fromCharCode(i),e.delimiters.push({marker:i,length:n.length,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},t.exports.postProcess=function(e){var t,n=e.tokens_meta,s=e.tokens_meta.length;for(r(e,e.delimiters),t=0;t<s;t++)n[t]&&n[t].delimiters&&r(e,n[t].delimiters)}}}),ue=u({"node_modules/markdown-it/lib/rules_inline/link.js"(e,t){"use strict";var r=E().normalizeReference,n=E().isSpace;t.exports=function(e,t){var s,i,o,a,l,c,u,p,h="",d="",f=e.pos,m=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(l=e.pos+1,(a=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((c=a+1)<m&&40===e.src.charCodeAt(c)){for(b=!1,c++;c<m&&(i=e.src.charCodeAt(c),n(i)||10===i);c++);if(c>=m)return!1;if(g=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok){for(h=e.md.normalizeLink(u.str),e.md.validateLink(h)?c=u.pos:h="",g=c;c<m&&(i=e.src.charCodeAt(c),n(i)||10===i);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<m&&g!==c&&u.ok)for(d=u.str,c=u.pos;c<m&&(i=e.src.charCodeAt(c),n(i)||10===i);c++);}(c>=m||41!==e.src.charCodeAt(c))&&(b=!0),c++}if(b){if("undefined"===typeof e.env.references)return!1;if(c<m&&91===e.src.charCodeAt(c)?(g=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?o=e.src.slice(g,c++):c=a+1):c=a+1,o||(o=e.src.slice(l,a)),!(p=e.env.references[r(o)]))return e.pos=f,!1;h=p.href,d=p.title}return t||(e.pos=l,e.posMax=a,e.push("link_open","a",1).attrs=s=[["href",h]],d&&s.push(["title",d]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=c,e.posMax=m,!0}}}),pe=u({"node_modules/markdown-it/lib/rules_inline/image.js"(e,t){"use strict";var r=E().normalizeReference,n=E().isSpace;t.exports=function(e,t){var s,i,o,a,l,c,u,p,h,d,f,m,g,b="",_=e.pos,y=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(c=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=l+1)<y&&40===e.src.charCodeAt(u)){for(u++;u<y&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);if(u>=y)return!1;for(g=u,(h=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(b=e.md.normalizeLink(h.str),e.md.validateLink(b)?u=h.pos:b=""),g=u;u<y&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);if(h=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<y&&g!==u&&h.ok)for(d=h.str,u=h.pos;u<y&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);else d="";if(u>=y||41!==e.src.charCodeAt(u))return e.pos=_,!1;u++}else{if("undefined"===typeof e.env.references)return!1;if(u<y&&91===e.src.charCodeAt(u)?(g=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?a=e.src.slice(g,u++):u=l+1):u=l+1,a||(a=e.src.slice(c,l)),!(p=e.env.references[r(a)]))return e.pos=_,!1;b=p.href,d=p.title}return t||(o=e.src.slice(c,l),e.md.inline.parse(o,e.md,e.env,m=[]),(f=e.push("image","img",0)).attrs=s=[["src",b],["alt",""]],f.children=m,f.content=o,d&&s.push(["title",d])),e.pos=u,e.posMax=y,!0}}}),he=u({"node_modules/markdown-it/lib/rules_inline/autolink.js"(e,t){"use strict";var r=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,n=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;t.exports=function(e,t){var s,i,o,a,l,c,u=e.pos;if(60!==e.src.charCodeAt(u))return!1;for(l=e.pos,c=e.posMax;;){if(++u>=c)return!1;if(60===(a=e.src.charCodeAt(u)))return!1;if(62===a)break}return s=e.src.slice(l+1,u),n.test(s)?(i=e.md.normalizeLink(s),!!e.md.validateLink(i)&&(t||((o=e.push("link_open","a",1)).attrs=[["href",i]],o.markup="autolink",o.info="auto",(o=e.push("text","",0)).content=e.md.normalizeLinkText(s),(o=e.push("link_close","a",-1)).markup="autolink",o.info="auto"),e.pos+=s.length+2,!0)):!!r.test(s)&&(i=e.md.normalizeLink("mailto:"+s),!!e.md.validateLink(i)&&(t||((o=e.push("link_open","a",1)).attrs=[["href",i]],o.markup="autolink",o.info="auto",(o=e.push("text","",0)).content=e.md.normalizeLinkText(s),(o=e.push("link_close","a",-1)).markup="autolink",o.info="auto"),e.pos+=s.length+2,!0))}}}),de=u({"node_modules/markdown-it/lib/rules_inline/html_inline.js"(e,t){"use strict";var r=K().HTML_TAG_RE;t.exports=function(e,t){var n,s,i,o=e.pos;return!!e.md.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(o)||o+2>=i)&&(!(33!==(n=e.src.charCodeAt(o+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(s=e.src.slice(o).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(o,o+s[0].length)),e.pos+=s[0].length,!0))))}}}),fe=u({"node_modules/markdown-it/lib/rules_inline/entity.js"(e,t){"use strict";var r=m(),n=E().has,s=E().isValidEntityCode,i=E().fromCodePoint,o=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,a=/^&([a-z][a-z0-9]{1,31});/i;t.exports=function(e,t){var l,c,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(c=e.src.slice(u).match(o))return t||(l="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=s(l)?i(l):i(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(u).match(a))&&n(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}}}),me=u({"node_modules/markdown-it/lib/rules_inline/balance_pairs.js"(e,t){"use strict";function r(e,t){var r,n,s,i,o,a,l,c,u={},p=t.length;if(p){var h=0,d=-2,f=[];for(r=0;r<p;r++)if(s=t[r],f.push(0),t[h].marker===s.marker&&d===s.token-1||(h=r),d=s.token,s.length=s.length||0,s.close){for(u.hasOwnProperty(s.marker)||(u[s.marker]=[-1,-1,-1,-1,-1,-1]),o=u[s.marker][(s.open?3:0)+s.length%3],a=n=h-f[h]-1;n>o;n-=f[n]+1)if((i=t[n]).marker===s.marker&&i.open&&i.end<0&&(l=!1,(i.close||s.open)&&(i.length+s.length)%3===0&&(i.length%3===0&&s.length%3===0||(l=!0)),!l)){c=n>0&&!t[n-1].open?f[n-1]+1:0,f[r]=r-n+c,f[n]=c,s.open=!1,i.end=r,i.close=!1,a=-1,d=-2;break}-1!==a&&(u[s.marker][(s.open?3:0)+(s.length||0)%3]=a)}}}t.exports=function(e){var t,n=e.tokens_meta,s=e.tokens_meta.length;for(r(0,e.delimiters),t=0;t<s;t++)n[t]&&n[t].delimiters&&r(0,n[t].delimiters)}}}),ge=u({"node_modules/markdown-it/lib/rules_inline/text_collapse.js"(e,t){"use strict";t.exports=function(e){var t,r,n=0,s=e.tokens,i=e.tokens.length;for(t=r=0;t<i;t++)s[t].nesting<0&&n--,s[t].level=n,s[t].nesting>0&&n++,"text"===s[t].type&&t+1<i&&"text"===s[t+1].type?s[t+1].content=s[t].content+s[t+1].content:(t!==r&&(s[r]=s[t]),r++);t!==r&&(s.length=r)}}}),be=u({"node_modules/markdown-it/lib/rules_inline/state_inline.js"(e,t){"use strict";var r=N(),n=E().isWhiteSpace,s=E().isPunctChar,i=E().isMdAsciiPunct;function o(e,t,r,n){this.src=e,this.env=r,this.md=t,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}o.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},o.prototype.push=function(e,t,n){this.pending&&this.pushPending();var s=new r(e,t,n),i=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),s.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(s),this.tokens_meta.push(i),s},o.prototype.scanDelims=function(e,t){var r,o,a,l,c,u,p,h,d,f=e,m=!0,g=!0,b=this.posMax,_=this.src.charCodeAt(e);for(r=e>0?this.src.charCodeAt(e-1):32;f<b&&this.src.charCodeAt(f)===_;)f++;return a=f-e,o=f<b?this.src.charCodeAt(f):32,p=i(r)||s(String.fromCharCode(r)),d=i(o)||s(String.fromCharCode(o)),u=n(r),(h=n(o))?m=!1:d&&(u||p||(m=!1)),u?g=!1:p&&(h||d||(g=!1)),t?(l=m,c=g):(l=m&&(!g||p),c=g&&(!m||d)),{can_open:l,can_close:c,length:a}},o.prototype.Token=r,t.exports=o}}),_e=u({"node_modules/markdown-it/lib/parser_inline.js"(e,t){"use strict";var r=L(),n=[["text",se()],["newline",ie()],["escape",oe()],["backticks",ae()],["strikethrough",le().tokenize],["emphasis",ce().tokenize],["link",ue()],["image",pe()],["autolink",he()],["html_inline",de()],["entity",fe()]],s=[["balance_pairs",me()],["strikethrough",le().postProcess],["emphasis",ce().postProcess],["text_collapse",ge()]];function i(){var e;for(this.ruler=new r,e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1]);for(this.ruler2=new r,e=0;e<s.length;e++)this.ruler2.push(s[e][0],s[e][1])}i.prototype.skipToken=function(e){var t,r,n=e.pos,s=this.ruler.getRules(""),i=s.length,o=e.md.options.maxNesting,a=e.cache;if("undefined"===typeof a[n]){if(e.level<o)for(r=0;r<i&&(e.level++,t=s[r](e,!0),e.level--,!t);r++);else e.pos=e.posMax;t||e.pos++,a[n]=e.pos}else e.pos=a[n]},i.prototype.tokenize=function(e){for(var t,r,n=this.ruler.getRules(""),s=n.length,i=e.posMax,o=e.md.options.maxNesting;e.pos<i;){if(e.level<o)for(r=0;r<s&&!(t=n[r](e,!1));r++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},i.prototype.parse=function(e,t,r,n){var s,i,o,a=new this.State(e,t,r,n);for(this.tokenize(a),o=(i=this.ruler2.getRules("")).length,s=0;s<o;s++)i[s](a)},i.prototype.State=be(),t.exports=i}}),ye=u({"node_modules/linkify-it/lib/re.js"(e,t){"use strict";t.exports=function(e){var t={};t.src_Any=C().source,t.src_Cc=A().source,t.src_Z=w().source,t.src_P=g().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var r="[><\uff5c]";return t.src_pseudo_letter="(?:(?![><\uff5c]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><\uff5c]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+r+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><\uff5c]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}}}),ke=u({"node_modules/linkify-it/index.js"(e,t){"use strict";function r(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){t&&Object.keys(t).forEach((function(r){e[r]=t[r]}))})),e}function n(e){return Object.prototype.toString.call(e)}function s(e){return"[object Function]"===n(e)}function i(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var o={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var a={"http:":{validate:function(e,t,r){var n=e.slice(t);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(n)?n.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,r){var n=e.slice(t);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(n)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,r){var n=e.slice(t);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},l="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function c(e){var t=e.re=ye()(e.__opts__),r=e.__tlds__.slice();function o(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(o(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(o(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(o(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(o(t.tpl_host_fuzzy_test),"i");var a=[];function l(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var r=e.__schemas__[t];if(null!==r){var i={validate:null,link:null};if(e.__compiled__[t]=i,"[object Object]"===n(r))return!function(e){return"[object RegExp]"===n(e)}(r.validate)?s(r.validate)?i.validate=r.validate:l(t,r):i.validate=function(e){return function(t,r){var n=t.slice(r);return e.test(n)?n.match(e)[0].length:0}}(r.validate),void(s(r.normalize)?i.normalize=r.normalize:r.normalize?l(t,r):i.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===n(e)}(r)?l(t,r):a.push(t)}})),a.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var c=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(i).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+t.src_ZPCc+"))("+c+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+t.src_ZPCc+"))("+c+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function u(e,t){var r=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(r,n);this.schema=e.__schema__.toLowerCase(),this.index=r+t,this.lastIndex=n+t,this.raw=s,this.text=s,this.url=s}function p(e,t){var r=new u(e,t);return e.__compiled__[r.schema].normalize(r,e),r}function h(e,t){if(!(this instanceof h))return new h(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||o.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},o,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},a,e),this.__compiled__={},this.__tlds__=l,this.__tlds_replaced__=!1,this.re={},c(this)}h.prototype.add=function(e,t){return this.__schemas__[e]=t,c(this),this},h.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},h.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,r,n,s,i,o,a,l;if(this.re.schema_test.test(e))for((a=this.re.schema_search).lastIndex=0;null!==(t=a.exec(e));)if(s=this.testSchemaAt(e,t[2],a.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||l<this.__index__)&&null!==(r=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(i=r.index+r[1].length,(this.__index__<0||i<this.__index__)&&(this.__schema__="",this.__index__=i,this.__last_index__=r.index+r[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(n=e.match(this.re.email_fuzzy))&&(i=n.index+n[1].length,o=n.index+n[0].length,(this.__index__<0||i<this.__index__||i===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=o)),this.__index__>=0},h.prototype.pretest=function(e){return this.re.pretest.test(e)},h.prototype.testSchemaAt=function(e,t,r){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,r,this):0},h.prototype.match=function(e){var t=0,r=[];this.__index__>=0&&this.__text_cache__===e&&(r.push(p(this,t)),t=this.__last_index__);for(var n=t?e.slice(t):e;this.test(n);)r.push(p(this,t)),n=n.slice(this.__last_index__),t+=this.__last_index__;return r.length?r:null},h.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,r){return e!==r[t-1]})).reverse(),c(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,c(this),this)},h.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},h.prototype.onCompile=function(){},t.exports=h}}),ve=u({"node_modules/punycode/punycode.js"(e,t){"use strict";var r=2147483647,n=36,s=/^xn--/,i=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,a={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,c=String.fromCharCode;function u(e){throw new RangeError(a[e])}function p(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const s=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(o,".")).split("."),t).join(".");return n+s}function h(e){const t=[];let r=0;const n=e.length;for(;r<n;){const s=e.charCodeAt(r++);if(s>=55296&&s<=56319&&r<n){const n=e.charCodeAt(r++);56320==(64512&n)?t.push(((1023&s)<<10)+(1023&n)+65536):(t.push(s),r--)}else t.push(s)}return t}var d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},f=function(e,t,r){let s=0;for(e=r?l(e/700):e>>1,e+=l(e/t);e>455;s+=n)e=l(e/35);return l(s+36*e/(e+38))},m=function(e){const t=[],s=e.length;let i=0,o=128,a=72,c=e.lastIndexOf("-");c<0&&(c=0);for(let r=0;r<c;++r)e.charCodeAt(r)>=128&&u("not-basic"),t.push(e.charCodeAt(r));for(let h=c>0?c+1:0;h<s;){let c=i;for(let t=1,o=n;;o+=n){h>=s&&u("invalid-input");const c=(p=e.charCodeAt(h++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:n;(c>=n||c>l((r-i)/t))&&u("overflow"),i+=c*t;const d=o<=a?1:o>=a+26?26:o-a;if(c<d)break;const f=n-d;t>l(r/f)&&u("overflow"),t*=f}const d=t.length+1;a=f(i-c,d,0==c),l(i/d)>r-o&&u("overflow"),o+=l(i/d),i%=d,t.splice(i++,0,o)}var p;return String.fromCodePoint(...t)},g=function(e){const t=[];let s=(e=h(e)).length,i=128,o=0,a=72;for(const r of e)r<128&&t.push(c(r));let p=t.length,m=p;for(p&&t.push("-");m<s;){let s=r;for(const t of e)t>=i&&t<s&&(s=t);const h=m+1;s-i>l((r-o)/h)&&u("overflow"),o+=(s-i)*h,i=s;for(const g of e)if(g<i&&++o>r&&u("overflow"),g==i){let e=o;for(let r=n;;r+=n){const s=r<=a?1:r>=a+26?26:r-a;if(e<s)break;const i=e-s,o=n-s;t.push(c(d(s+i%o,0))),e=l(i/o)}t.push(c(d(e,0))),a=f(o,h,m==p),o=0,++m}++o,++i}return t.join("")},b={version:"2.1.0",ucs2:{decode:h,encode:e=>String.fromCodePoint(...e)},decode:m,encode:g,toASCII:function(e){return p(e,(function(e){return i.test(e)?"xn--"+g(e):e}))},toUnicode:function(e){return p(e,(function(e){return s.test(e)?m(e.slice(4).toLowerCase()):e}))}};t.exports=b}}),Ce=u({"node_modules/markdown-it/lib/presets/default.js"(e,t){"use strict";t.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}}}),Ae=u({"node_modules/markdown-it/lib/presets/zero.js"(e,t){"use strict";t.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}}}),xe=u({"node_modules/markdown-it/lib/presets/commonmark.js"(e,t){"use strict";t.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}}}),we=u({"node_modules/markdown-it/lib/index.js"(e,t){"use strict";var r=E(),n=j(),s=z(),i=P(),o=ne(),a=_e(),l=ke(),c=v(),u=ve(),p={default:Ce(),zero:Ae(),commonmark:xe()},h=/^(vbscript|javascript|file|data):/,d=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!h.test(t)||!!d.test(t)}var m=["http:","https:","mailto:"];function g(e){var t=c.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=u.toASCII(t.hostname)}catch(r){}return c.encode(c.format(t))}function b(e){var t=c.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=u.toUnicode(t.hostname)}catch(r){}return c.decode(c.format(t),c.decode.defaultChars+"%")}function _(e,t){if(!(this instanceof _))return new _(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new a,this.block=new o,this.core=new i,this.renderer=new s,this.linkify=new l,this.validateLink=f,this.normalizeLink=g,this.normalizeLinkText=b,this.utils=r,this.helpers=r.assign({},n),this.options={},this.configure(e),t&&this.set(t)}_.prototype.set=function(e){return r.assign(this.options,e),this},_.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=p[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},_.prototype.enable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){r=r.concat(this[t].ruler.enable(e,!0))}),this),r=r.concat(this.inline.ruler2.enable(e,!0));var n=e.filter((function(e){return r.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},_.prototype.disable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){r=r.concat(this[t].ruler.disable(e,!0))}),this),r=r.concat(this.inline.ruler2.disable(e,!0));var n=e.filter((function(e){return r.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},_.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},_.prototype.parse=function(e,t){if("string"!==typeof e)throw new Error("Input data should be a String");var r=new this.core.State(e,this,t);return this.core.process(r),r.tokens},_.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},_.prototype.parseInline=function(e,t){var r=new this.core.State(e,this,t);return r.inlineMode=!0,this.core.process(r),r.tokens},_.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},t.exports=_}}),De=u({"node_modules/markdown-it/index.js"(e,t){"use strict";t.exports=we()}}),Ee={};function qe(e){return!!e?.$$mdtype}function Se(e){return!("Function"!==e?.$$mdtype)}function Fe(e){return!("Variable"!==e?.$$mdtype)}function*je(e){if(null!=e&&"object"===typeof e){if(Array.isArray(e))for(const t of e)yield*je(t);if(qe(e)&&(yield e),Object.getPrototypeOf(e)===Object.prototype)for(const t of Object.values(e))yield*je(t)}}function ze(e,t={}){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map((e=>ze(e,t)));if(qe(e)&&e?.resolve instanceof Function)return e.resolve(t);if(Object.getPrototypeOf(e)!==Object.prototype)return e;const r={};for(const[n,s]of Object.entries(e))r[n]=ze(s,t);return r}p(Ee,{getAstValues:()=>je,isAst:()=>qe,isFunction:()=>Se,isVariable:()=>Fe,resolve:()=>ze});var Le=class{constructor(e="div",t={},r=[]){this.$$mdtype="Tag",this.name=e,this.attributes=t,this.children=r}};Le.isTag=e=>!("Tag"!==e?.$$mdtype);var Te,Ie,Oe=h(d()),$e=class{constructor(e=[]){this.$$mdtype="Variable",this.path=e}resolve({variables:e}={}){return e instanceof Function?e(this.path):this.path.reduce(((e={},t)=>e[t]),e)}},Me=class{constructor(e,t){this.$$mdtype="Function",this.name=e,this.parameters=t}resolve(e={}){const t=e?.functions?.[this.name];if(!t)return null;const r=ze(this.parameters,e);return t.transform?.(r,e)}};(Ie=Te||(Te={}))[Ie.normal=0]="normal",Ie[Ie.string=1]="string",Ie[Ie.escape=2]="escape";var Re="{%",Ne="%}",Be=/^[a-zA-Z0-9_-]+$/;function Pe(e){return"string"===typeof e&&Be.test(e)}function Ue(e){return e&&"object"===typeof e&&"function"===typeof e.then}function Ve(e,t=0){let r=0;for(let n=t;n<e.length;n++){const t=e[n];switch(r){case 1:switch(t){case'"':r=0;break;case"\\":r=2}break;case 2:r=1;break;case 0:if('"'===t)r=1;else if(e.startsWith(Ne,n))return n}}return null}function Ze(e,t,r){try{return(0,Oe.parse)(e,{Variable:$e,Function:Me})}catch(n){if(!(n instanceof Oe.SyntaxError))throw n;const{message:e,location:{start:s,end:i}}=n;return{type:"error",meta:{error:{message:e,location:{start:{line:t,character:s.offset+r},end:{line:t+1,character:i.offset+r}}}}}}}function Ge(e,t=0){let r=t+1;const n=[];let s=0;for(let i=0;i<e.length;i++){if("\n"===e[i]){r++;continue}if(!e.startsWith(Re,i))continue;const t=Ve(e,i);if(null==t){i+=Re.length;continue}const o=e.slice(i,t+Ne.length),a=e.slice(i+Re.length,t),l=e.lastIndexOf("\n",i),c=e.indexOf("\n",t),u=e.slice(l,c),p=Ze(a.trim(),r,i-l),h=u.trim()===o?l:i,d=e.slice(s,h);n.push({type:"text",start:s,end:i-1,content:d}),n.push({map:[r,r+1],position:{start:i-l,end:i-l+o.length},start:i,end:i+o.length-1,info:o,...p}),s=t+Ne.length,i=s-1}return n.push({type:"text",start:s,end:e.length-1,content:e.slice(s)}),n}var He={class:{type:class{validate(e){return"string"===typeof e||"object"===typeof e?[]:[{id:"attribute-type-invalid",level:"error",message:"Attribute 'class' must be type 'string | object'"}]}transform(e){if(!e||"string"===typeof e)return e;const t=[];for(const[r,n]of Object.entries(e??{}))n&&t.push(r);return t.join(" ")}},render:!0},id:{type:class{validate(e){return"string"===typeof e&&e.match(/^[a-zA-Z]/)?[]:[{id:"attribute-value-invalid",level:"error",message:"The 'id' attribute must start with a letter"}]}},render:!0}},Je={findSchema(e,{nodes:t={},tags:r={}}={}){return e.tag?r[e.tag]:t[e.type]},attributes(e,t={}){const r=this.findSchema(e,t)??{},n={},s={...He,...r.attributes};for(const[i,o]of Object.entries(s)){if(0==o.render)continue;const r="string"===typeof o.render?o.render:i;let s=e.attributes[i];if("function"===typeof o.type){const e=new o.type;e.transform&&(s=e.transform(s,t))}s=void 0===s?o.default:s,void 0!==s&&(n[r]=s)}if(r.slots)for(const[i,o]of Object.entries(r.slots)){const r="string"===typeof o.render?o.render:i;e.slots[i]&&(n[r]=this.node(e.slots[i],t))}return n},children(e,t={}){const r=e.children.flatMap((e=>this.node(e,t)));return r.some(Ue)?Promise.all(r):r},node(e,t={}){const r=this.findSchema(e,t)??{};if(r&&r.transform instanceof Function)return r.transform(e,t);const n=this.children(e,t);if(!r||!r.render)return n;const s=this.attributes(e,t);return Ue(s)||Ue(n)?Promise.all([s,n]).then((e=>new Le(r.render,...e))):new Le(r.render,s,n)}},We=class{constructor(e="node",t={},r=[],n){this.$$mdtype="Node",this.errors=[],this.lines=[],this.inline=!1,this.attributes=t,this.children=r,this.type=e,this.tag=n,this.annotations=[],this.slots={}}*walk(){for(const e of[...Object.values(this.slots),...this.children])yield e,yield*e.walk()}push(e){this.children.push(e)}resolve(e={}){return Object.assign(new We,this,{children:this.children.map((t=>t.resolve(e))),attributes:ze(this.attributes,e)})}findSchema(e={}){return Je.findSchema(this,e)}transformAttributes(e={}){return Je.attributes(this,e)}transformChildren(e){return Je.children(this,e)}transform(e){return Je.node(this,e)}},Ye={Function:Me,Node:We,Variable:$e};function Ke(e,t){if(!t)return t;const r=Ye[t.$$mdtype];return r?Object.assign(new r,t):t}var Qe={...Ye,...Ee,fromJSON:function(e){return JSON.parse(e,Ke)}},Xe=" ",et=", ",tt="\n",rt=".",nt="-",st=80,it=["strong","em","s"],ot=(e,t)=>Math.max(e,t),at=(e,t=2)=>({...e,indent:(e.indent||0)+t});function*lt(e,t){for(const r of e.children)yield*bt(r,t)}function*ct(e){yield[...e].join("").trim()}function*ut(e){yield`| ${e.join(" | ")} |`}function pt(e){return Qe.isAst(e)?_t(e):null===e?"null":Array.isArray(e)?"["+e.map(pt).join(et)+"]":"object"===typeof e?"{"+Object.entries(e).map((([e,t])=>`${Pe(e)?e:`"${e}"`}: ${pt(t)}`)).join(et)+"}":JSON.stringify(e)}function ht(e){return"primary"===e.name?pt(e.value):"id"===e.name&&"string"===typeof e.value&&Pe(e.value)?"#"+e.value:"class"===e.type&&Pe(e.name)?"."+e.name:`${e.name}=${pt(e.value)}`}function*dt(e){for(const[t,r]of Object.entries(e.attributes))if("class"!==t||"object"!==typeof r||Qe.isAst(r))yield ht({type:"attribute",name:t,value:r});else for(const e of Object.keys(r))yield ht({type:"class",name:e,value:r})}function*ft(e){e.annotations.length&&(yield Re+Xe,yield e.annotations.map(ht).join(Xe),yield Xe+Ne)}function*mt(e){let t;do{const{value:r,done:n}=e.next();if(n)return;t=r.trimStart()}while(!t.length);yield t,yield*e}function*gt(e,t){yield e.replace(t,"\\$&").replace(new RegExp("\xa0","g"),"&nbsp;")}function*bt(e,t={}){switch(typeof e){case"undefined":break;case"boolean":case"number":case"string":yield e.toString();break;case"object":if(null===e)break;if(Array.isArray(e)){for(const r of e)yield*bt(r,t);break}switch(e.$$mdtype){case"Function":yield*function*(e){yield e.name,yield"(",yield Object.values(e.parameters).map(pt).join(et),yield")"}(e);break;case"Node":yield*function*(e,t={}){const r={...t,parent:e},n=Xe.repeat(r.indent||0);switch(e.type){case"document":e.attributes.frontmatter&&e.attributes.frontmatter.length&&(yield"---"+tt+e.attributes.frontmatter+tt+"---"+tt+tt),yield*mt(lt(e,r));break;case"heading":yield tt,yield n,yield"#".repeat(e.attributes.level||1),yield Xe,yield*mt(lt(e,r)),yield*ft(e),yield tt;break;case"paragraph":yield tt,yield*lt(e,r),yield*ft(e),yield tt;break;case"inline":yield n,yield*lt(e,r);break;case"image":yield"!",yield"[",yield*bt(e.attributes.alt,r),yield"]",yield"(",yield*"string"===typeof e.attributes.src?gt(e.attributes.src,/[()]/):bt(e.attributes.src,r),e.attributes.title&&(yield Xe+`"${e.attributes.title}"`),yield")";break;case"link":yield"[",yield*lt(e,r),yield"]",yield"(",yield*"string"===typeof e.attributes.href?gt(e.attributes.href,/[()]/g):bt(e.attributes.href,r),e.attributes.title&&(yield Xe+`"${e.attributes.title}"`),yield")";break;case"text":{const{content:n}=e.attributes;Qe.isAst(n)?(yield Re+Xe,yield*bt(n,r),yield Xe+Ne):t.parent&&it.includes(t.parent.type)?yield*gt(n,/[*_~]/g):yield*gt(n,/^[*>#]/);break}case"blockquote":{const t=">"+Xe;yield e.children.map((e=>_t(e,r).trimStart())).map((e=>tt+n+t+e)).join(n+t);break}case"hr":yield tt,yield n,yield"---",yield tt;break;case"fence":{yield tt,yield n;const t=(e.attributes.content.match(/`{3,}/g)||[]).map((e=>e.length)).reduce(ot,0),r="`".repeat(t?t+1:3);yield r,e.attributes.language&&(yield e.attributes.language),e.annotations.length&&(yield Xe),yield*ft(e),yield tt,yield n,yield e.attributes.content.split(tt).join(tt+n),yield r,yield tt;break}case"tag":{e.inline||(yield tt,yield n);const s=Re+Xe,i=[s+e.tag,...dt(e)],o=i.join(Xe),a=o.length+2*s.length>(t.maxTagOpeningWidth||st);yield(!e.inline&&a?i.join(tt+Xe.repeat(s.length)+n):o)+Xe+(e.children.length?"":"/")+Ne,e.children.length&&(yield*lt(e,r.allowIndentation?at(r):r),e.inline||(yield n),yield Re+Xe+"/"+e.tag+Xe+Ne),e.inline||(yield tt);break}case"list":for(let t=0;t<e.children.length;t++){const s=e.attributes.ordered?`${0===t?e.attributes.start??"1":"1"}${e.attributes.marker??rt}`:e.attributes.marker??nt,i=_t(e.children[t],at(r,s.length+1)).trim();yield tt+n+s+" "+i}yield tt;break;case"item":for(let t=0;t<e.children.length;t++)yield*bt(e.children[t],r),0===t&&(yield*ft(e));break;case"strong":yield e.attributes.marker??"**",yield*ct(lt(e,r)),yield e.attributes.marker??"**";break;case"em":yield e.attributes.marker??"*",yield*ct(lt(e,r)),yield e.attributes.marker??"*";break;case"code":yield"`",yield*ct(bt(e.attributes.content,r)),yield"`";break;case"s":yield"~~",yield*ct(lt(e,r)),yield"~~";break;case"hardbreak":yield"\\"+tt,yield n;break;case"softbreak":yield tt,yield n;break;case"table":{const s=[...lt(e,at(r))];if(t.parent&&"tag"===t.parent.type&&"table"===t.parent.tag){for(let e=0;e<s.length;e++){const t=s[e];if("string"===typeof t)t.trim().length&&(yield tt,yield t);else{0!==e&&(yield tt,yield n+"---");for(const e of t)yield tt+n+nt+" "+e}}yield tt}else{yield tt;const[e,...t]=s,r=s.map((e=>e.map((e=>e.length)).reduce(ot))).reduce(ot);yield*ut(e.map((e=>e+Xe.repeat(r-e.length)))),yield tt,yield*ut(e.map((()=>"-".repeat(r)))),yield tt;for(const n of t)yield*ut(n.map((e=>e+Xe.repeat(r-e.length)))),yield tt}break}case"thead":{const[t]=[...lt(e,r)];yield t||[];break}case"tr":yield[...lt(e,r)];break;case"td":case"th":yield[...lt(e,r),...ft(e)].join("").trim();break;case"tbody":yield*lt(e,r);break;case"comment":yield"\x3c!-- "+e.attributes.content+" --\x3e\n"}}(e,t);break;case"Variable":yield*function*(e){yield"$",yield e.path.map(((e,t)=>0===t?e:Pe(e)?"."+e:"number"===typeof e?`[${e}]`:`["${e}"]`)).join("")}(e);break;default:throw new Error(`Unimplemented: "${e.$$mdtype}"`)}}}function _t(e,t){let r="";for(const n of bt(e,t))r+=n;return r.trimStart()}function yt(e){return!1!==e&&void 0!==e&&null!==e}var kt={attributes:{primary:{type:Object,render:!1}},transform(e,t){const r=function(e){const t=[{condition:e.attributes.primary,children:[]}];for(const r of e.children)"tag"===r.type&&"else"===r.tag?t.push({condition:!("primary"in r.attributes)||r.attributes.primary,children:[]}):t[t.length-1].children.push(r);return t}(e);for(const{condition:n,children:s}of r)if(yt(n)){const e=s.flatMap((e=>e.transform(t)));return e.some(Ue)?Promise.all(e).then((e=>e.flat())):e}return[]}},vt={selfClosing:!0,attributes:{primary:{type:Object,render:!1}}},Ct={and:{transform(e){return Object.values(e).every((e=>yt(e)))}},or:{transform(e){return void 0!==Object.values(e).find((e=>yt(e)))}},not:{parameters:{0:{required:!0}},transform(e){return!yt(e[0])}},equals:{transform(e){const t=Object.values(e);return t.every((e=>e===t[0]))}},default:{transform(e){return void 0===e[0]?e[1]:e[0]}},debug:{transform(e){return JSON.stringify(e[0],null,2)}}};function At(e,t="td"){e.type="tr",e.attributes={};for(const r of e.children)r.type=t;return e}var xt=[function(e){for(const t of e.walk()){if("tag"!==t.type||"table"!==t.tag)continue;const[e,...r]=t.children;if(!e||"table"===e.type)continue;const n=new Qe.Node("table",t.attributes,[new Qe.Node("thead"),new Qe.Node("tbody")]),[s,i]=n.children;"list"===e.type&&s.push(At(e,"th"));for(const t of r){if("list"===t.type)At(t);else{if("tag"!==t.type||"if"!==t.tag)continue;{const e=[];for(const r of t.children)"hr"!==r.type&&("list"===r.type&&At(r),e.push(r));t.children=e}}i.push(t)}t.children=[n]}}],wt={ordered_list:"list",bullet_list:"list",code_inline:"code",list_item:"item",variable:"text"};function Dt(e,t){for(const r of t){e.annotations.push(r);const{name:t,value:n,type:s}=r;"attribute"===s?e.attributes[t]=n:"class"===s&&(e.attributes.class?e.attributes.class[t]=n:e.attributes.class={[t]:n})}}function Et(e,t,r,n,s){if("frontmatter"===e.type)return void(t[0].attributes.frontmatter=e.content);if(e.hidden||"text"===e.type&&""===e.content)return;const i=e.errors||[],o=t[t.length-1],{tag:a,attributes:l,error:c}=e.meta||{};if("annotation"===e.type)return s?Dt(s,l):o.errors.push({id:"no-inline-annotations",level:"error",message:`Can't apply inline annotations to '${o.type}'`});let u=e.type.replace(/_(open|close)$/,"");if(wt[u]&&(u=wt[u]),"error"===u){const{message:e,location:t}=c;i.push({id:"parse-error",level:"critical",message:e,location:t})}if(e.nesting<0){if(o.type===u&&o.tag===a)return o.lines&&e.map&&o.lines.push(...e.map),t.pop();i.push({id:"missing-opening",level:"critical",message:`Node '${u}' is missing opening`})}const p=function(e,t){switch(t){case"heading":return{level:Number(e.tag.replace("h",""))};case"list":{const t=e.attrs?Object.fromEntries(e.attrs):void 0,r=e.type.startsWith("ordered");return r&&t?.start?{ordered:!0,start:t.start,marker:e.markup}:{ordered:r,marker:e.markup}}case"link":{const t=Object.fromEntries(e.attrs);return t.title?{href:t.href,title:t.title}:{href:t.href}}case"image":{const t=Object.fromEntries(e.attrs);return t.title?{alt:e.content,src:t.src,title:t.title}:{alt:e.content,src:t.src}}case"em":case"strong":return{marker:e.markup};case"text":case"code":case"comment":return{content:(e.meta||{}).variable||e.content};case"fence":{const[t]=e.info.split(" ",1);return""===t||t===Re?{content:e.content}:{content:e.content,language:t}}case"td":case"th":if(e.attrs){const t=Object.fromEntries(e.attrs);let r;if(t.style&&(t.style.includes("left")?r="left":t.style.includes("center")?r="center":t.style.includes("right")&&(r="right")),r)return{align:r}}return{};default:return{}}}(e,u),h=new We(u,p,void 0,a||void 0),{position:d={}}=e;if(h.errors=i,h.lines=e.map||o.lines||[],h.location={file:r,start:{line:h.lines[0],character:d.start},end:{line:h.lines[1],character:d.end}},s&&(h.inline=!0),l&&["tag","fence","image"].includes(u)&&Dt(h,l),n&&"slot"===a&&"string"===typeof h.attributes.primary?o.slots[h.attributes.primary]=h:o.push(h),e.nesting>0&&t.push(h),!Array.isArray(e.children))return;s=o,t.push(h);if(!("image"===u))for(const f of e.children)Et(f,t,r,n,s);t.pop()}var qt={};p(qt,{blockquote:()=>Tt,code:()=>Wt,comment:()=>Xt,document:()=>St,em:()=>Zt,error:()=>er,fence:()=>Lt,hardbreak:()=>Kt,heading:()=>Ft,hr:()=>$t,image:()=>zt,inline:()=>Ht,item:()=>It,link:()=>Jt,list:()=>Ot,node:()=>tr,paragraph:()=>jt,s:()=>Gt,softbreak:()=>Qt,strong:()=>Vt,table:()=>Mt,tbody:()=>Pt,td:()=>Rt,text:()=>Yt,th:()=>Nt,thead:()=>Ut,tr:()=>Bt});var St={render:"article",children:["heading","paragraph","image","table","tag","fence","blockquote","comment","list","hr"],attributes:{frontmatter:{render:!1}}},Ft={children:["inline"],attributes:{level:{type:Number,render:!1,required:!0}},transform(e,t){return new Le(`h${e.attributes.level}`,e.transformAttributes(t),e.transformChildren(t))}},jt={render:"p",children:["inline"]},zt={render:"img",attributes:{src:{type:String,required:!0},alt:{type:String},title:{type:String}}},Lt={render:"pre",attributes:{content:{type:String,render:!1,required:!0},language:{type:String,render:"data-language"},process:{type:Boolean,render:!1,default:!0}},transform(e,t){const r=e.transformAttributes(t),n=e.children.length?e.transformChildren(t):[e.attributes.content];return new Le("pre",r,n)}},Tt={render:"blockquote",children:["heading","paragraph","image","table","tag","fence","blockquote","list","hr"]},It={render:"li",children:["inline","heading","paragraph","image","table","tag","fence","blockquote","list","hr"]},Ot={children:["item"],attributes:{ordered:{type:Boolean,render:!1,required:!0},start:{type:Number},marker:{type:String,render:!1}},transform(e,t){return new Le(e.attributes.ordered?"ol":"ul",e.transformAttributes(t),e.transformChildren(t))}},$t={render:"hr"},Mt={render:"table"},Rt={render:"td",children:["inline","heading","paragraph","image","table","tag","fence","blockquote","list","hr"],attributes:{colspan:{type:Number},rowspan:{type:Number},align:{type:String}}},Nt={render:"th",attributes:{width:{type:Number},align:{type:String}}},Bt={render:"tr",children:["th","td"]},Pt={render:"tbody",children:["tr","tag"]},Ut={render:"thead",children:["tr"]},Vt={render:"strong",children:["em","s","link","code","text","tag"],attributes:{marker:{type:String,render:!1}}},Zt={render:"em",children:["strong","s","link","code","text","tag"],attributes:{marker:{type:String,render:!1}}},Gt={render:"s",children:["strong","em","link","code","text","tag"]},Ht={children:["strong","em","s","code","text","tag","link","image","hardbreak","softbreak","comment"]},Jt={render:"a",children:["strong","em","s","code","text","tag"],attributes:{href:{type:String,required:!0},title:{type:String}}},Wt={render:"code",attributes:{content:{type:String,render:!1,required:!0}},transform(e,t){const r=e.transformAttributes(t);return new Le("code",r,[e.attributes.content])}},Yt={attributes:{content:{type:String,required:!0}},transform(e){return e.attributes.content}},Kt={render:"br"},Qt={transform(){return" "}},Xt={attributes:{content:{type:String,required:!0}}},er={},tr={},rr=h(De()),{escapeHtml:nr}=(0,rr.default)().utils,sr=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function ir(e,t){return"string"!==typeof e?"Fragment":e[0]!==e[0].toUpperCase()?e:t instanceof Function?t(e):t[e]}function or(e){return e.map(lr).join(", ")}function ar(e){if(null==e||"object"!==typeof e)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map((e=>ar(e))).join(", ")}]`;if("Tag"===e.$$mdtype)return lr(e);if("object"!==typeof e)return JSON.stringify(e);return`{${Object.entries(e).map((([e,t])=>[JSON.stringify(e),ar(t)].join(": "))).join(", ")}}`}function lr(e){if(Array.isArray(e))return`React.createElement(React.Fragment, null, ${or(e)})`;if(null===e||"object"!==typeof e||!Le.isTag(e))return JSON.stringify(e);const{name:t,attributes:{class:r,...n}={},children:s=[]}=e;return r&&(n.className=r),`React.createElement(\n tagName(${JSON.stringify(t)}, components),\n ${0==Object.keys(n).length?"null":ar(n)},\n ${or(s)})`}var cr={html:function e(t){if("string"===typeof t||"number"===typeof t)return nr(String(t));if(Array.isArray(t))return t.map(e).join("");if(null===t||"object"!==typeof t||!Le.isTag(t))return"";const{name:r,attributes:n,children:s=[]}=t;if(!r)return e(s);let i=`<${r}`;for(const[o,a]of Object.entries(n??{}))i+=` ${o}="${nr(String(a))}"`;return i+=">",sr.has(r)||(s.length&&(i+=e(s)),i+=`</${r}>`),i},react:function(e,t,{components:r={}}={}){function n(e){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map((e=>n(e)));if("Tag"===e.$$mdtype)return s(e);if("object"!==typeof e)return e;const t={};for(const[r,s]of Object.entries(e))t[r]=n(s);return t}function s(e){if(Array.isArray(e))return t.createElement(t.Fragment,null,...e.map(s));if(null===e||"object"!==typeof e||!Le.isTag(e))return e;const{name:i,attributes:{class:o,...a}={},children:l=[]}=e;return o&&(a.className=o),t.createElement(function(e,t){return"string"!==typeof e||e[0]!==e[0].toUpperCase()?e:t instanceof Function?t(e):t[e]}(i,r),0==Object.keys(a).length?null:n(a),...l.map(s))}return s(e)},reactStatic:function(e){return`\n (({components = {}} = {}) => {\n ${ir}\n return ${lr(e)};\n })\n`}},ur={else:vt,if:kt,partial:{inline:!1,selfClosing:!0,attributes:{file:{type:class{validate(e,t){const{partials:r={}}=t;return r[e]?[]:[{id:"attribute-value-invalid",level:"error",message:`Partial \`${e}\` not found. The 'file' attribute must be set in \`config.partials\``}]}},render:!1,required:!0},variables:{type:Object,render:!1}},transform(e,t){const{partials:r={}}=t,{file:n,variables:s}=e.attributes,i=r[n];if(!i)return null;const o={...t,variables:{...t.variables,...s,"$$partial:filename":n}},a=e=>e.resolve(o).transformChildren(o);return Array.isArray(i)?i.flatMap(a):a(i)}},slot:{attributes:{primary:{type:String,required:!0}}},table:{children:["table"],inline:!1}},pr=h(we()),hr=h(d());function dr(e,t,r){try{const{type:r,meta:n,nesting:s=0}=(0,hr.parse)(t,{Variable:$e,Function:Me}),i=e.push(r,"",s);return i.info=t,i.meta=n,e.delimiters||(e.delimiters=[]),i}catch(n){if(!(n instanceof hr.SyntaxError))throw n;const{message:t,location:{start:s,end:i}}=n,o=r?{start:{offset:s.offset+r},end:{offset:i.offset+r}}:null,a=e.push("error","",0);return a.meta={error:{message:t,location:o}},a}}function fr(e,t,r,n){const s=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(!e.src.startsWith(Re,s))return!1;const o=Ve(e.src,s),a=e.src.slice(0,i).trim().length;if(!o||o<a-Ne.length)return!1;const l=s+Re.length,c=e.src.slice(l,o).trim(),u=c.split("\n").length;if("$"===c[0])return!1;if(n)return!0;return dr(e,c,l).map=[t,t+u],e.line+=u,!0}function mr(e,t){if(!e.src.startsWith(Re,e.pos))return!1;const r=Ve(e.src,e.pos);if(!r)return!1;const n=e.src.slice(e.pos+Re.length,r);return t||dr(e,n.trim()),e.pos=r+Ne.length,!0}function gr(e){let t;for(t of e.tokens)if("fence"===t.type){if(t.info.includes(Re)){const e=t.info.indexOf(Re),n=Ve(t.info,e),s=t.info.slice(e+Re.length,n);try{const{meta:e}=(0,hr.parse)(s.trim(),{Variable:$e,Function:Me});t.meta=e}catch(r){if(!(r instanceof hr.SyntaxError))throw r;t.errors||(t.errors=[]),t.errors.push({id:"fence-tag-error",level:"error",message:`Syntax error in fence tag: ${r.message}`})}}t?.meta?.attributes?.find((e=>"process"===e.name&&!e.value))||(t.children=Ge(t.content,t.map[0]))}}function br(e){e.block.ruler.before("paragraph","annotations",fr,{alt:["paragraph","blockquote"]}),e.inline.ruler.push("containers",mr),e.core.ruler.push("annotations",gr)}var _r="---";function yr(e,t){return e.src.slice(e.bMarks[t],e.eMarks[t]).trim()}function kr(e,t,r,n){if(0!=t||yr(e,0)!=_r)return!1;const s=function(e,t){for(let r=1;r<t;r++)if(yr(e,r)===_r)return r}(e,r);if(!s)return!1;if(n)return!0;const i=e.push("frontmatter","",0);return i.content=e.src.slice(e.eMarks[0],e.bMarks[s]).trim(),i.map=[0,s],i.hidden=!0,e.line=s+1,!0}function vr(e){e.block.ruler.before("hr","frontmatter",kr)}var Cr="\x3c!--",Ar="--\x3e";function xr(e,t,r,n){const s=e.bMarks[t]+e.tShift[t];if(!e.src.startsWith(Cr,s))return!1;const i=e.src.indexOf(Ar,s);if(!i)return!1;if(n)return!0;const o=e.src.slice(s+Cr.length,i),a=o.split("\n").length,l=e.push("comment","",0);return l.content=o.trim(),l.map=[t,t+a],e.line+=a,!0}function wr(e,t){if(!e.src.startsWith(Cr,e.pos))return!1;const r=e.src.indexOf(Ar,e.pos);if(!r)return!1;if(t)return!0;const n=e.src.slice(e.pos+Cr.length,r);return e.push("comment","",0).content=n.trim(),e.pos=r+Ar.length,!0}function Dr(e){e.block.ruler.before("table","comment",xr,{alt:["paragraph"]}),e.inline.ruler.push("comment",wr)}var Er=class{constructor(e={}){this.parser=new pr.default(e),this.parser.use(br,"annotations",{}),this.parser.use(vr,"frontmatter",{}),this.parser.disable(["lheading","code"]),e.allowComments&&this.parser.use(Dr,"comments",{})}tokenize(e){return this.parser.parse(e.toString(),{})}},qr={String:String,Number:Number,Array:Array,Object:Object,Boolean:Boolean};function Sr(e,t,r){if(!e)return!0;if(Qe.isFunction(t)&&r.validation?.validateFunctions){const n=r.functions?.[t.name];return!n?.returns||(Array.isArray(n.returns)?void 0!==n.returns.find((t=>t===e)):n.returns===e)}if(Qe.isAst(t))return!0;if(Array.isArray(e))return e.some((e=>Sr(e,t,r)));if("string"===typeof e&&(e=qr[e]),"function"===typeof e){const n=new e;if(n.validate)return n.validate(t,r)}return null!=t&&t.constructor===e}function Fr(e){return"string"===typeof e?e:Array.isArray(e)?e.map(Fr).join(" | "):e.name}function jr(e,t){const r=t.functions?.[e.name],n=[];if(!r)return[{id:"function-undefined",level:"critical",message:`Undefined function: '${e.name}'`}];if(r.validate&&n.push(...r.validate(e,t)),r.parameters)for(const[s,i]of Object.entries(e.parameters)){const o=r.parameters?.[s];if(o){if((!Qe.isAst(i)||Qe.isFunction(i))&&o.type){const r=Sr(o.type,i,t);!1===r?n.push({id:"parameter-type-invalid",level:"error",message:`Parameter '${s}' of '${e.name}' must be type of '${Fr(o.type)}'`}):Array.isArray(r)&&n.push(...r)}}else n.push({id:"parameter-undefined",level:"error",message:`Invalid parameter: '${s}'`})}for(const[s,{required:i}]of Object.entries(r.parameters??{}))i&&void 0===e.parameters[s]&&n.push({id:"parameter-missing-required",level:"error",message:`Missing required parameter: '${s}'`});return n}function zr(e,t){if(e.length<=t)return JSON.stringify(e);return`[${e.slice(0,t).map((e=>JSON.stringify(e))).join(",")}, ... ${e.length-t} more]`}function Lr(e,t){const r=e.findSchema(t),n=[...e.errors||[]];if(!r)return n.push({id:e.tag?"tag-undefined":"node-undefined",level:"critical",message:e.tag?`Undefined tag: '${e.tag}'`:`Undefined node: '${e.type}'`}),n;void 0!=r.inline&&e.inline!==r.inline&&n.push({id:"tag-placement-invalid",level:"critical",message:`'${e.tag}' tag should be ${r.inline?"inline":"block"}`}),r.selfClosing&&e.children.length>0&&n.push({id:"tag-selfclosing-has-children",level:"critical",message:`'${e.tag}' tag should be self-closing`});const s={...He,...r.attributes};for(const i of Object.keys(e.slots)){const e=r.slots?.[i];e||n.push({id:"slot-undefined",level:"error",message:`Invalid slot: '${i}'`})}for(let[i,o]of Object.entries(e.attributes)){const e=s[i];if(!e){n.push({id:"attribute-undefined",level:"error",message:`Invalid attribute: '${i}'`});continue}let{type:r,matches:a,errorLevel:l}=e;if(Qe.isAst(o))if(Qe.isFunction(o)&&t.validation?.validateFunctions)n.push(...jr(o,t));else{if(!Qe.isVariable(o)||!t.variables)continue;{let e=!1,r=t.variables;for(const t of o.path){if(!Object.prototype.hasOwnProperty.call(r,t)){e=!0;break}r=r[t]}e&&n.push({id:"variable-undefined",level:"error",message:`Undefined variable: '${o.path.join(".")}'`})}}if(r){const e=Sr(r,o,t);!1===e&&n.push({id:"attribute-type-invalid",level:l||"error",message:`Attribute '${i}' must be type of '${Fr(r)}'`}),Array.isArray(e)&&n.push(...e)}if("function"===typeof a&&(a=a(t)),Array.isArray(a)&&!a.includes(o)&&n.push({id:"attribute-value-invalid",level:l||"error",message:`Attribute '${i}' must match one of ${zr(a,8)}. Got '${o}' instead.`}),a instanceof RegExp&&!a.test(o)&&n.push({id:"attribute-value-invalid",level:l||"error",message:`Attribute '${i}' must match ${a}. Got '${o}' instead.`}),"function"===typeof e.validate){const r=e.validate(o,t);Array.isArray(r)&&n.push(...r)}}for(const[i,{required:o}]of Object.entries(s))o&&void 0===e.attributes[i]&&n.push({id:"attribute-missing-required",level:"error",message:`Missing required attribute: '${i}'`});if(r.slots)for(const[i,{required:o}]of Object.entries(r.slots))o&&void 0===e.slots[i]&&n.push({id:"slot-missing-required",level:"error",message:`Missing required slot: '${i}'`});for(const{type:i}of e.children)r.children&&"error"!==i&&!r.children.includes(i)&&n.push({id:"child-invalid",level:"warning",message:`Can't nest '${i}' in '${e.tag||e.type}'`});if(r.validate){const s=r.validate(e,t);if(Ue(s))return s.then((e=>n.concat(e)));n.push(...s)}return n}var Tr=new Er;function Ir(e={}){return{...e,tags:{...ur,...e.tags},nodes:{...qt,...e.nodes},functions:{...Ct,...e.functions}}}function Or(e,t){return"string"===typeof e&&(e=Tr.tokenize(e)),function(e,t){const r=new We("document"),n=[r];"string"===typeof t&&(t={file:t});for(const s of e)Et(s,n,t?.file,t?.slots);if(n.length>1)for(const s of n.slice(1))s.errors.push({id:"missing-closing",level:"critical",message:`Node '${s.tag||s.type}' is missing closing`});for(const s of xt)s(r);return r}(e,t)}function $r(e,t){return Array.isArray(e)?e.flatMap((e=>e.resolve(t))):e.resolve(t)}function Mr(e,t){const r=Ir(t),n=$r(e,r);return Array.isArray(n)?n.flatMap((e=>e.transform(r))):n.transform(r)}function Rr(e,t){const r=Ir(t),n=[e,...e.walk()].map((e=>{const{type:t,lines:n,location:s}=e,i=Lr(e,r);return Ue(i)?i.then((e=>e.map((e=>({type:t,lines:n,location:s,error:e}))))):i.map((e=>({type:t,lines:n,location:s,error:e})))}));return n.some(Ue)?Promise.all(n).then((e=>e.flat())):n.flat()}var Nr=class{constructor(e){this.parse=Or,this.resolve=e=>$r(e,this.config),this.transform=e=>Mr(e,this.config),this.validate=e=>Rr(e,this.config),this.config=e}};Nr.nodes=qt,Nr.tags=ur,Nr.functions=Ct,Nr.globalAttributes=He,Nr.renderers=cr,Nr.transforms=xt,Nr.Ast=Qe,Nr.Tag=Le,Nr.Tokenizer=Er,Nr.parseTags=Ge,Nr.transformer=Je,Nr.validator=Lr,Nr.parse=Or,Nr.transform=Mr,Nr.validate=Rr,Nr.createElement=function(e,t={},...r){return{name:e,attributes:t,children:r}},Nr.truthy=yt,Nr.format=_t},58206:function(e,t,r){function n(e,{target:t=document.body}={}){if("string"!==typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const r=document.createElement("textarea"),n=document.activeElement;r.value=e,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const s=document.getSelection(),i=s.rangeCount>0&&s.getRangeAt(0);t.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;let o=!1;try{o=document.execCommand("copy")}catch{}return r.remove(),i&&(s.removeAllRanges(),s.addRange(i)),n&&n.focus(),o}r.d(t,{Z:function(){return n}})}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="53a75744-5e77-41e4-97a4-d3eed8570733",e._sentryDebugIdIdentifier="sentry-dbid-53a75744-5e77-41e4-97a4-d3eed8570733")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[470],{4211:function(e,t,r){r.d(t,{ZP:function(){return Nr}});var n=Object.create,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=e=>s(e,"__esModule",{value:!0}),u=(e,t)=>function(){return t||(0,e[Object.keys(e)[0]])((t={exports:{}}).exports,t),t.exports},p=(e,t)=>{for(var r in c(e),t)s(e,r,{get:t[r],enumerable:!0})},h=e=>((e,t,r)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of o(t))l.call(e,n)||"default"===n||s(e,n,{get:()=>t[n],enumerable:!(r=i(t,n))||r.enumerable});return e})(c(s(null!=e?n(a(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),d=u({"src/grammar/tag.js"(e,t){"use strict";function r(e,t,n,s){this.message=e,this.expected=t,this.found=n,this.location=s,this.name="SyntaxError","function"===typeof Error.captureStackTrace&&Error.captureStackTrace(this,r)}!function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(r,Error),r.buildMessage=function(e,t,r){var n,s={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t=e.parts.map((function(e){return Array.isArray(e)?a(e[0])+"-"+a(e[1]):a(e)}));return"["+(e.inverted?"^":"")+t+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(e){return e.description},not:function(e){return"not "+l(e.expected)}};function i(e){return e.charCodeAt(0).toString(16).toUpperCase()}function o(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+i(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+i(e)}))}function a(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+i(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+i(e)}))}function l(e){return s[e.type](e)}return"Expected "+function(e){var t,r,n=e.map(l);if(n.sort(),n.length>0){for(t=1,r=1;t<n.length;t++)n[t-1]!==n[t]&&(n[r]=n[t],r++);n.length=r}switch(n.length){case 1:return n[0];case 2:return n[0]+" or "+n[1];default:return n.slice(0,-1).join(", ")+", or "+n[n.length-1]}}(e)+" but "+(((n=t)?'"'+o(n)+'"':"end of input")+" found.")},t.exports={SyntaxError:r,parse:function(e,t){t=void 0!==t?t:{};var n,s={},i={Top:Me},o=Me,a="/",l=".",c="#",u="=",p="(",h=")",d=",",f="[",m="]",g="null",b="true",_="false",y="{",k="}",v=":",C="-",A='"',x="\\",w=/^[$@]/,D=/^[0-9]/,E=/^[^\0-\x1F"\\]/,q=/^[a-zA-Z0-9_\-]/,S=/^[ \n\t]/,F=je("/",!1),j=ze("tag name"),z=ze("class"),L=ze("id"),T=je("=",!1),I=je("(",!1),O=je(")",!1),$=je(",",!1),M=ze("variable"),R=ze("null"),N=ze("boolean"),B=je("[",!1),P=je("]",!1),U=je("{",!1),V=je("}",!1),Z=je(":",!1),G=ze("number"),H=ze("string"),J=ze("identifier"),W=ze("whitespace"),Y=function(e){return{type:"variable",meta:{variable:e}}},K=function(e){return{type:"annotation",meta:{attributes:e}}},Q=function(e,t){return t},X=function(e,t,r,n){t&&(r=r||[]).unshift({type:"attribute",name:"primary",value:t});const[s,i]=n?["tag",0]:["tag_open",1];return{type:s,nesting:i,meta:{tag:e,attributes:r}}},ee=function(e){return{type:"tag_close",nesting:-1,meta:{tag:e}}},te=function(e,t){return e?[e,...t]:[]},re=function(e){return e},ne=function(e){return e},se=function(e){return e},ie=function(e){return e},oe=function(e){return{type:"class",name:e,value:!0}},ae=function(e){return{type:"attribute",name:"id",value:e}},le=function(e,t){return{type:"attribute",name:e,value:t}},ce=function(e,t,r){return t?[t,...r]:[]},ue=function(e,t){let r={};for(let[n,{name:s,value:i}]of t.entries())r[s||n]=i;return new it(e,r)},pe=function(e){return e},he=function(e,t){return{name:e,value:t}},de=function(e){return e},fe=function(e,t,r){return"@"===e?[t,...r]:new st([t,...r])},me=function(){return null},ge=function(){return!0},be=function(){return!1},_e=function(e,t){return[e,...t]},ye=function(e){return e||[]},ke=function(e,t){return Object.assign(e,...t)},ve=function(e){return e||{}},Ce=function(e,t){return"$$mdtype"===e?{}:{[e]:t}},Ae=function(){return parseFloat(e.substring(Ee,De))},xe=function(e){return e.join("")},we=function(e){return e},De=0,Ee=0,qe=[{line:1,column:1}],Se=[],Fe=0;if("startRule"in t){if(!(t.startRule in i))throw new Error("Can't start parsing from rule \""+t.startRule+'".');o=i[t.startRule]}function je(e,t){return{type:"literal",text:e,ignoreCase:t}}function ze(e){return{type:"other",description:e}}function Le(t){var r,n=qe[t];if(n)return n;for(r=t-1;!qe[r];)r--;for(n={line:(n=qe[r]).line,column:n.column};r<t;)10===e.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return qe[t]=n,n}var Te="string"===typeof t.filename&&t.filename.length>0;function Ie(e,r){var n={};Te&&(n.filename=t.filename);var s=Le(e);n.start={offset:e,line:s.line,column:s.column};var i=Le(r);return n.end={offset:r,line:i.line,column:i.column},n}function Oe(e){var t=Se[Se.length-1];De<t.pos||(De>t.pos&&(t.pos=De,t.variants=[]),t.variants.push(e))}function $e(e,t,n){return new r(r.buildMessage(e,t,n),e,t,n)}function Me(){var t;return(t=function(){var e,t;e=De,(t=He())===s&&(t=Ue());t!==s&&(Ee=e,t=Y(t));return e=t,e}())===s&&(t=function(){var e,t,r,n;if(e=De,(t=Ne())!==s){for(r=[],n=nt();n!==s;)r.push(n),n=nt();Ee=e,e=K(t)}else De=e,e=s;return e}())===s&&(t=function(){var t,r,n,i,o,l,c,u=function(e){0===Fe&&Oe(e)};if(t=De,(r=Re())!==s){for(n=[],i=nt();i!==s;)n.push(i),i=nt();for(i=De,(o=We())!==s?((l=nt())===s&&(l=null),Ee=i,i=Q(r,o)):(De=i,i=s),i===s&&(i=null),(o=Ne())===s&&(o=null),l=[],c=nt();c!==s;)l.push(c),c=nt();u(F),47===e.charCodeAt(De)?(c=a,De++):c=s,c===s&&(c=null),Ee=t,t=X(r,i,o,c)}else De=t,t=s;return t}(),t===s&&(t=function(){var t,r,n,i=function(e){0===Fe&&Oe(e)};t=De,i(F),47===e.charCodeAt(De)?(r=a,De++):r=s;r!==s&&(n=Re())!==s?(Ee=t,t=ee(n)):(De=t,t=s);return t}())),t}function Re(){var e,t;return t=j,0===Fe&&Oe(t),Fe++,e=rt(),Fe--,e}function Ne(){var e,t,r,n;if(e=De,(t=Pe())!==s){for(r=[],n=Be();n!==s;)r.push(n),n=Be();Ee=e,e=te(t,r)}else De=e,e=s;return e}function Be(){var e,t,r;if(e=De,t=[],(r=nt())!==s)for(;r!==s;)t.push(r),r=nt();else t=s;return t!==s&&(r=Pe())!==s?(Ee=e,e=re(r)):(De=e,e=s),e}function Pe(){var t,r;return t=De,r=function(){var t,r,n,i=function(e){0===Fe&&Oe(e)};i(L),Fe++,t=De,35===e.charCodeAt(De)?(r=c,De++):r=s;r!==s&&(n=rt())!==s?(Ee=t,t=ae(n)):(De=t,t=s);return Fe--,t}(),r!==s&&(Ee=t,r=ne(r)),(t=r)===s&&(t=De,r=function(){var t,r,n,i=function(e){0===Fe&&Oe(e)};i(z),Fe++,t=De,46===e.charCodeAt(De)?(r=l,De++):r=s;r!==s&&(n=rt())!==s?(Ee=t,t=oe(n)):(De=t,t=s);return Fe--,t}(),r!==s&&(Ee=t,r=se(r)),(t=r)===s&&(t=De,r=function(){var t,r,n,i,o=function(e){0===Fe&&Oe(e)};t=De,r=rt(),r!==s?(o(T),61===e.charCodeAt(De)?(n=u,De++):n=s,n!==s&&(i=We())!==s?(Ee=t,t=le(r,i)):(De=t,t=s)):(De=t,t=s);return t}(),r!==s&&(Ee=t,r=ie(r)),t=r)),t}function Ue(){var t,r,n,i,o,a,l,c,u=function(e){0===Fe&&Oe(e)};if(t=De,(r=rt())!==s)if(u(I),40===e.charCodeAt(De)?(n=p,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();for(o=De,(a=Ve())===s&&(a=null),l=[],c=Ze();c!==s;)l.push(c),c=Ze();Ee=o,o=ce(r,a,l),u(O),41===e.charCodeAt(De)?(a=h,De++):a=s,a!==s?(Ee=t,t=ue(r,o)):(De=t,t=s)}else De=t,t=s;else De=t,t=s;return t}function Ve(){var t,r,n,i,o;return t=De,r=De,(n=rt())!==s?(o=T,0===Fe&&Oe(o),61===e.charCodeAt(De)?(i=u,De++):i=s,i!==s?(Ee=r,r=pe(n)):(De=r,r=s)):(De=r,r=s),r===s&&(r=null),(n=We())!==s?(Ee=t,t=he(r,n)):(De=t,t=s),t}function Ze(){var t,r,n,i,o,a;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();if(a=$,0===Fe&&Oe(a),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=Ve())!==s?(Ee=t,t=de(o)):(De=t,t=s)}else De=t,t=s;return t}function Ge(){var t,r,n,i;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();return i=$,0===Fe&&Oe(i),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s?t=r=[r,n]:(De=t,t=s),t===s&&(t=null),t}function He(){var t,r,n,i,o,a;if(a=M,0===Fe&&Oe(a),Fe++,t=De,w.test(e.charAt(De))?(r=e.charAt(De),De++):r=s,r!==s)if((n=rt())!==s){for(i=[],o=Je();o!==s;)i.push(o),o=Je();Ee=t,t=fe(r,n,i)}else De=t,t=s;else De=t,t=s;return Fe--,t}function Je(){var t,r,n,i;return t=De,46===e.charCodeAt(De)?(r=l,De++):r=s,r!==s&&(n=rt())!==s?(Ee=t,t=pe(n)):(De=t,t=s),t===s&&(t=De,91===e.charCodeAt(De)?(r=f,De++):r=s,r!==s?((n=Xe())===s&&(n=et()),n!==s?(93===e.charCodeAt(De)?(i=m,De++):i=s,i!==s?(Ee=t,t=de(n)):(De=t,t=s)):(De=t,t=s)):(De=t,t=s)),t}function We(){var t;return t=function(){var t,r,n=function(e){0===Fe&&Oe(e)};n(R),Fe++,t=De,e.substr(De,4)===g?(r=g,De+=4):r=s;r!==s&&(Ee=t,r=me());return t=r,Fe--,t}(),t===s&&(t=function(){var t,r,n=function(e){0===Fe&&Oe(e)};n(N),Fe++,t=De,e.substr(De,4)===b?(r=b,De+=4):r=s;r!==s&&(Ee=t,r=ge());t=r,t===s&&(t=De,e.substr(De,5)===_?(r=_,De+=5):r=s,r!==s&&(Ee=t,r=be()),t=r);return Fe--,t}(),t===s&&(t=et())===s&&(t=Xe())===s&&(t=function(){var t,r,n,i,o,a,l,c=function(e){0===Fe&&Oe(e)};t=De,c(B),91===e.charCodeAt(De)?(r=f,De++):r=s;if(r!==s){for(n=[],i=nt();i!==s;)n.push(i),i=nt();if(i=De,(o=We())!==s){for(a=[],l=Ye();l!==s;)a.push(l),l=Ye();l=Ge(),Ee=i,i=_e(o,a)}else De=i,i=s;for(i===s&&(i=null),o=[],a=nt();a!==s;)o.push(a),a=nt();c(P),93===e.charCodeAt(De)?(a=m,De++):a=s,a!==s?(Ee=t,t=ye(i)):(De=t,t=s)}else De=t,t=s;return t}(),t===s&&(t=function(){var t,r,n,i,o,a,l,c=function(e){0===Fe&&Oe(e)};t=De,c(U),123===e.charCodeAt(De)?(r=y,De++):r=s;if(r!==s){for(n=[],i=nt();i!==s;)n.push(i),i=nt();if(i=De,(o=Qe())!==s){for(a=[],l=Ke();l!==s;)a.push(l),l=Ke();l=Ge(),Ee=i,i=ke(o,a)}else De=i,i=s;for(i===s&&(i=null),o=[],a=nt();a!==s;)o.push(a),a=nt();c(V),125===e.charCodeAt(De)?(a=k,De++):a=s,a!==s?(Ee=t,t=ve(i)):(De=t,t=s)}else De=t,t=s;return t}(),t===s&&(t=Ue())===s&&(t=He())))),t}function Ye(){var t,r,n,i,o,a;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();if(a=$,0===Fe&&Oe(a),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=We())!==s?(Ee=t,t=de(o)):(De=t,t=s)}else De=t,t=s;return t}function Ke(){var t,r,n,i,o,a;for(t=De,r=[],n=nt();n!==s;)r.push(n),n=nt();if(a=$,0===Fe&&Oe(a),44===e.charCodeAt(De)?(n=d,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=Qe())!==s?(Ee=t,t=re(o)):(De=t,t=s)}else De=t,t=s;return t}function Qe(){var t,r,n,i,o,a;if(t=De,(r=rt())===s&&(r=et()),r!==s)if(a=Z,0===Fe&&Oe(a),58===e.charCodeAt(De)?(n=v,De++):n=s,n!==s){for(i=[],o=nt();o!==s;)i.push(o),o=nt();(o=We())!==s?(Ee=t,t=Ce(r,o)):(De=t,t=s)}else De=t,t=s;else De=t,t=s;return t}function Xe(){var t,r,n,i,o,a,c,u;if(u=G,0===Fe&&Oe(u),Fe++,t=De,45===e.charCodeAt(De)?(r=C,De++):r=s,r===s&&(r=null),n=[],D.test(e.charAt(De))?(i=e.charAt(De),De++):i=s,i!==s)for(;i!==s;)n.push(i),D.test(e.charAt(De))?(i=e.charAt(De),De++):i=s;else n=s;if(n!==s){if(i=De,46===e.charCodeAt(De)?(o=l,De++):o=s,o!==s){if(a=[],D.test(e.charAt(De))?(c=e.charAt(De),De++):c=s,c!==s)for(;c!==s;)a.push(c),D.test(e.charAt(De))?(c=e.charAt(De),De++):c=s;else a=s;a!==s?i=o=[o,a]:(De=i,i=s)}else De=i,i=s;i===s&&(i=null),Ee=t,t=Ae()}else De=t,t=s;return Fe--,t}function et(){var t,r,n,i,o;if(o=H,0===Fe&&Oe(o),Fe++,t=De,34===e.charCodeAt(De)?(r=A,De++):r=s,r!==s){for(n=[],i=tt();i!==s;)n.push(i),i=tt();34===e.charCodeAt(De)?(i=A,De++):i=s,i!==s?(Ee=t,t=xe(n)):(De=t,t=s)}else De=t,t=s;return Fe--,t}function tt(){var t;return E.test(e.charAt(De))?(t=e.charAt(De),De++):t=s,t===s&&(t=function(){var t,r,n;t=De,92===e.charCodeAt(De)?(r=x,De++):r=s;r!==s?(34===e.charCodeAt(De)?(n=A,De++):n=s,n===s&&(92===e.charCodeAt(De)?(n=x,De++):n=s),n!==s?(Ee=t,t=we(n)):(De=t,t=s)):(De=t,t=s);return t}()),t}function rt(){var t,r,n,i;if(i=J,0===Fe&&Oe(i),Fe++,t=De,r=[],q.test(e.charAt(De))?(n=e.charAt(De),De++):n=s,n!==s)for(;n!==s;)r.push(n),q.test(e.charAt(De))?(n=e.charAt(De),De++):n=s;else r=s;return t=r!==s?e.substring(t,De):r,Fe--,t}function nt(){var t,r;return r=W,0===Fe&&Oe(r),Fe++,S.test(e.charAt(De))?(t=e.charAt(De),De++):t=s,Fe--,t}const{Variable:st,Function:it}=t;if(Se.push({pos:De,variants:[]}),(n=o())!==s&&De===e.length)return n;throw n!==s&&De<e.length&&Oe({type:"end"}),function(){var t=Se[0],r=t.pos;return $e(t.variants,r<e.length?e.charAt(r):null,r<e.length?Ie(r,r+1):Ie(r,r))}()}}}}),f=u({"node_modules/entities/lib/maps/entities.json"(e,t){t.exports={Aacute:"\xc1",aacute:"\xe1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223e",acd:"\u223f",acE:"\u223e\u0333",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",Acy:"\u0410",acy:"\u0430",AElig:"\xc6",aelig:"\xe6",af:"\u2061",Afr:"\ud835\udd04",afr:"\ud835\udd1e",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03b1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2a3f",amp:"&",AMP:"&",andand:"\u2a55",And:"\u2a53",and:"\u2227",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angmsd:"\u2221",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",Aogon:"\u0104",aogon:"\u0105",Aopf:"\ud835\udd38",aopf:"\ud835\udd52",apacir:"\u2a6f",ap:"\u2248",apE:"\u2a70",ape:"\u224a",apid:"\u224b",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224a",Aring:"\xc5",aring:"\xe5",Ascr:"\ud835\udc9c",ascr:"\ud835\udcb6",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224d",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",Backslash:"\u2216",Barv:"\u2ae7",barvee:"\u22bd",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",Bernoullis:"\u212c",Beta:"\u0392",beta:"\u03b2",beth:"\u2136",between:"\u226c",Bfr:"\ud835\udd05",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bNot:"\u2aed",bnot:"\u2310",Bopf:"\ud835\udd39",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxbox:"\u29c9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250c",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252c",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxul:"\u2518",boxuL:"\u255b",boxUl:"\u255c",boxUL:"\u255d",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255a",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253c",boxvH:"\u256a",boxVh:"\u256b",boxVH:"\u256c",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251c",boxvR:"\u255e",boxVr:"\u255f",boxVR:"\u2560",bprime:"\u2035",breve:"\u02d8",Breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",Bscr:"\u212c",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsolb:"\u29c5",bsol:"\\",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",Bumpeq:"\u224e",bumpeq:"\u224f",Cacute:"\u0106",cacute:"\u0107",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",cap:"\u2229",Cap:"\u22d2",capcup:"\u2a47",capdot:"\u2a40",CapitalDifferentialD:"\u2145",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",Cayleys:"\u212d",ccaps:"\u2a4d",Ccaron:"\u010c",ccaron:"\u010d",Ccedil:"\xc7",ccedil:"\xe7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2a4c",ccupssm:"\u2a50",Cdot:"\u010a",cdot:"\u010b",cedil:"\xb8",Cedilla:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",CenterDot:"\xb7",cfr:"\ud835\udd20",Cfr:"\u212d",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",CircleDot:"\u2299",circledR:"\xae",circledS:"\u24c8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25cb",cirE:"\u29c3",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2a74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",Congruent:"\u2261",conint:"\u222e",Conint:"\u222f",ContourIntegral:"\u222e",copf:"\ud835\udd54",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xa9",COPY:"\xa9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21b5",cross:"\u2717",Cross:"\u2a2f",Cscr:"\ud835\udc9e",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cupbrcap:"\u2a48",cupcap:"\u2a46",CupCap:"\u224d",cup:"\u222a",Cup:"\u22d3",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21a1",dArr:"\u21d3",dash:"\u2010",Dashv:"\u2ae4",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",Dcaron:"\u010e",dcaron:"\u010f",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21ca",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2a77",deg:"\xb0",Del:"\u2207",Delta:"\u0394",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",Dfr:"\ud835\udd07",dfr:"\ud835\udd21",dHar:"\u2965",dharl:"\u21c3",dharr:"\u21c2",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",diam:"\u22c4",diamond:"\u22c4",Diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",DifferentialD:"\u2146",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",Dopf:"\ud835\udd3b",dopf:"\ud835\udd55",Dot:"\xa8",dot:"\u02d9",DotDot:"\u20dc",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21d3",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21bd",DownRightTeeVector:"\u295f",DownRightVectorBar:"\u2957",DownRightVector:"\u21c1",DownTeeArrow:"\u21a7",DownTee:"\u22a4",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",Dscr:"\ud835\udc9f",dscr:"\ud835\udcb9",DScy:"\u0405",dscy:"\u0455",dsol:"\u29f6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",DZcy:"\u040f",dzcy:"\u045f",dzigrarr:"\u27ff",Eacute:"\xc9",eacute:"\xe9",easter:"\u2a6e",Ecaron:"\u011a",ecaron:"\u011b",Ecirc:"\xca",ecirc:"\xea",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042d",ecy:"\u044d",eDDot:"\u2a77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\ud835\udd08",efr:"\ud835\udd22",eg:"\u2a9a",Egrave:"\xc8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",Element:"\u2208",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25fb",emptyv:"\u2205",EmptyVerySmallSquare:"\u25ab",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014a",eng:"\u014b",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\ud835\udd3c",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",Epsilon:"\u0395",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",Equal:"\u2a75",equals:"=",EqualTilde:"\u2242",equest:"\u225f",Equilibrium:"\u21cc",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erarr:"\u2971",erDot:"\u2253",escr:"\u212f",Escr:"\u2130",esdot:"\u2250",Esim:"\u2a73",esim:"\u2242",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",Ffr:"\ud835\udd09",ffr:"\ud835\udd23",filig:"\ufb01",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",Fopf:"\ud835\udd3d",fopf:"\ud835\udd57",forall:"\u2200",ForAll:"\u2200",fork:"\u22d4",forkv:"\u2ad9",Fouriertrf:"\u2131",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",Fscr:"\u2131",gacute:"\u01f5",Gamma:"\u0393",gamma:"\u03b3",Gammad:"\u03dc",gammad:"\u03dd",gap:"\u2a86",Gbreve:"\u011e",gbreve:"\u011f",Gcedil:"\u0122",Gcirc:"\u011c",gcirc:"\u011d",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2a8c",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",gescc:"\u2aa9",ges:"\u2a7e",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",Gfr:"\ud835\udd0a",gfr:"\ud835\udd24",gg:"\u226b",Gg:"\u22d9",ggg:"\u22d9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2aa5",gl:"\u2277",glE:"\u2a92",glj:"\u2aa4",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gnE:"\u2269",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",Gopf:"\ud835\udd3e",gopf:"\ud835\udd58",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gt:">",GT:">",Gt:"\u226b",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",harrcir:"\u2948",harr:"\u2194",hArr:"\u21d4",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",Hfr:"\u210c",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",Hopf:"\u210d",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\ud835\udcbd",Hscr:"\u210b",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",Ifr:"\u2111",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",incare:"\u2105",in:"\u2208",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",intcal:"\u22ba",int:"\u222b",Int:"\u222c",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",Iscr:"\u2110",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41",jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",Lang:"\u27ea",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",larrb:"\u21e4",larrbfs:"\u291f",larr:"\u2190",Larr:"\u219e",lArr:"\u21d0",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",latail:"\u2919",lAtail:"\u291b",lat:"\u2aab",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lBarr:"\u290e",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27e8",LeftArrowBar:"\u21e4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21d0",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21c3",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTeeArrow:"\u21a4",LeftTee:"\u22a3",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangleBar:"\u29cf",LeftTriangle:"\u22b2",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21bf",LeftVectorBar:"\u2952",LeftVector:"\u21bc",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",lescc:"\u2aa8",les:"\u2a7d",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21c7",ll:"\u226a",Ll:"\u22d8",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoustache:"\u23b0",lmoust:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lnE:"\u2268",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftrightarrow:"\u27f7",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longmapsto:"\u27fc",longrightarrow:"\u27f6",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",Lscr:"\u2112",lsh:"\u21b0",Lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",lt:"<",LT:"<",Lt:"\u226a",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midast:"*",midcir:"\u2af0",mid:"\u2223",middot:"\xb7",minusb:"\u229f",minus:"\u2212",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",Mscr:"\u2133",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266e",naturals:"\u2115",natur:"\u266e",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21d7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nharr:"\u21ae",nhArr:"\u21ce",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlarr:"\u219a",nlArr:"\u21cd",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219a",nLeftarrow:"\u21cd",nleftrightarrow:"\u21ae",nLeftrightarrow:"\u21ce",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nopf:"\ud835\udd5f",Nopf:"\u2115",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangle:"\u22eb",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",nprec:"\u2280",npreceq:"\u2aaf\u0338",npre:"\u2aaf\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219b",nrArr:"\u21cf",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nRightarrow:"\u21cf",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvDash:"\u22ad",nVdash:"\u22ae",nVDash:"\u22af",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21d6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",Ocirc:"\xd4",ocirc:"\xf4",ocir:"\u229a",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",orarr:"\u21bb",Or:"\u2a54",or:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",otimesas:"\u2a36",Otimes:"\u2a37",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",para:"\xb6",parallel:"\u2225",par:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plus:"+",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",popf:"\ud835\udd61",Popf:"\u2119",pound:"\xa3",prap:"\u2ab7",Pr:"\u2abb",pr:"\u227a",prcue:"\u227c",precapprox:"\u2ab7",prec:"\u227a",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",pre:"\u2aaf",prE:"\u2ab3",precsim:"\u227e",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportional:"\u221d",Proportion:"\u2237",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",Qopf:"\u211a",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',QUOT:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",Rang:"\u27eb",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21a0",rArr:"\u21d2",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",rAtail:"\u291c",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rBarr:"\u290f",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",Re:"\u211c",rect:"\u25ad",reg:"\xae",REG:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",Rfr:"\u211c",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrowBar:"\u21e5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21d2",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVectorBar:"\u2955",RightDownVector:"\u21c2",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTeeArrow:"\u21a6",RightTee:"\u22a2",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangleBar:"\u29d0",RightTriangle:"\u22b3",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVectorBar:"\u2954",RightUpVector:"\u21be",RightVectorBar:"\u2953",RightVector:"\u21c0",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoustache:"\u23b1",rmoust:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",Ropf:"\u211d",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",rscr:"\ud835\udcc7",Rscr:"\u211b",rsh:"\u21b1",Rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2abc",sc:"\u227b",sccue:"\u227d",sce:"\u2ab0",scE:"\u2ab4",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdotb:"\u22a1",sdot:"\u22c5",sdote:"\u2a66",searhk:"\u2925",searr:"\u2198",seArr:"\u21d8",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",solbar:"\u233f",solb:"\u29c4",sol:"/",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25a1",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squ:"\u25a1",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",Sub:"\u22d0",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",Subset:"\u22d0",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succapprox:"\u2ab8",succ:"\u227b",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",sum:"\u2211",Sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",Sup:"\u22d1",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",Supset:"\u22d1",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21d9",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2a31",timesb:"\u22a0",times:"\xd7",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",topbot:"\u2336",topcir:"\u2af1",top:"\u22a4",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",Uarr:"\u219f",uArr:"\u21d1",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21d1",UpArrowDownArrow:"\u21c5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21d5",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03c5",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTeeArrow:"\u21a5",UpTee:"\u22a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",vArr:"\u21d5",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vBar:"\u2ae8",Vbar:"\u2aeb",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22a2",vDash:"\u22a8",Vdash:"\u22a9",VDash:"\u22ab",Vdashl:"\u2ae6",veebar:"\u22bb",vee:"\u2228",Vee:"\u22c1",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",Wedge:"\u22c0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xharr:"\u27f7",xhArr:"\u27fa",Xi:"\u039e",xi:"\u03be",xlarr:"\u27f5",xlArr:"\u27f8",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrarr:"\u27f6",xrArr:"\u27f9",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",yuml:"\xff",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",zfr:"\ud835\udd37",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",Zopf:"\u2124",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"}}}),m=u({"node_modules/markdown-it/lib/common/entities.js"(e,t){"use strict";t.exports=f()}}),g=u({"node_modules/uc.micro/categories/P/regex.js"(e,t){t.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/}}),b=u({"node_modules/mdurl/encode.js"(e,t){"use strict";var r={};function n(e,t,s){var i,o,a,l,c,u="";for("string"!==typeof t&&(s=t,t=n.defaultChars),"undefined"===typeof s&&(s=!0),c=function(e){var t,n,s=r[e];if(s)return s;for(s=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?s.push(n):s.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)s[e.charCodeAt(t)]=e[t];return s}(t),i=0,o=e.length;i<o;i++)if(a=e.charCodeAt(i),s&&37===a&&i+2<o&&/^[0-9a-f]{2}$/i.test(e.slice(i+1,i+3)))u+=e.slice(i,i+3),i+=2;else if(a<128)u+=c[a];else if(a>=55296&&a<=57343){if(a>=55296&&a<=56319&&i+1<o&&(l=e.charCodeAt(i+1))>=56320&&l<=57343){u+=encodeURIComponent(e[i]+e[i+1]),i++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[i]);return u}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",t.exports=n}}),_=u({"node_modules/mdurl/decode.js"(e,t){"use strict";var r={};function n(e,t){var s;return"string"!==typeof t&&(t=n.defaultChars),s=function(e){var t,n,s=r[e];if(s)return s;for(s=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),s.push(n);for(t=0;t<e.length;t++)s[n=e.charCodeAt(t)]="%"+("0"+n.toString(16).toUpperCase()).slice(-2);return s}(t),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,r,n,i,o,a,l,c="";for(t=0,r=e.length;t<r;t+=3)(n=parseInt(e.slice(t+1,t+3),16))<128?c+=s[n]:192===(224&n)&&t+3<r&&128===(192&(i=parseInt(e.slice(t+4,t+6),16)))?(c+=(l=n<<6&1984|63&i)<128?"\ufffd\ufffd":String.fromCharCode(l),t+=3):224===(240&n)&&t+6<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),128===(192&i)&&128===(192&o))?(c+=(l=n<<12&61440|i<<6&4032|63&o)<2048||l>=55296&&l<=57343?"\ufffd\ufffd\ufffd":String.fromCharCode(l),t+=6):240===(248&n)&&t+9<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),a=parseInt(e.slice(t+10,t+12),16),128===(192&i)&&128===(192&o)&&128===(192&a))?((l=n<<18&1835008|i<<12&258048|o<<6&4032|63&a)<65536||l>1114111?c+="\ufffd\ufffd\ufffd\ufffd":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="\ufffd";return c}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="",t.exports=n}}),y=u({"node_modules/mdurl/format.js"(e,t){"use strict";t.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}}}),k=u({"node_modules/mdurl/parse.js"(e,t){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var n=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,i=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),a=["'"].concat(o),l=["%","/","?",";","#"].concat(a),c=["/","?","#"],u=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};r.prototype.parse=function(e,t){var r,s,o,a,f,m=e;if(m=m.trim(),!t&&1===e.split("#").length){var g=i.exec(m);if(g)return this.pathname=g[1],g[2]&&(this.search=g[2]),this}var b=n.exec(m);if(b&&(o=(b=b[0]).toLowerCase(),this.protocol=b,m=m.substr(b.length)),(t||b||m.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(f="//"===m.substr(0,2))||b&&h[b]||(m=m.substr(2),this.slashes=!0)),!h[b]&&(f||b&&!d[b])){var _,y,k=-1;for(r=0;r<c.length;r++)-1!==(a=m.indexOf(c[r]))&&(-1===k||a<k)&&(k=a);for(-1!==(y=-1===k?m.lastIndexOf("@"):m.lastIndexOf("@",k))&&(_=m.slice(0,y),m=m.slice(y+1),this.auth=_),k=-1,r=0;r<l.length;r++)-1!==(a=m.indexOf(l[r]))&&(-1===k||a<k)&&(k=a);-1===k&&(k=m.length),":"===m[k-1]&&k--;var v=m.slice(0,k);m=m.slice(k),this.parseHost(v),this.hostname=this.hostname||"";var C="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!C){var A=this.hostname.split(/\./);for(r=0,s=A.length;r<s;r++){var x=A[r];if(x&&!x.match(u)){for(var w="",D=0,E=x.length;D<E;D++)x.charCodeAt(D)>127?w+="x":w+=x[D];if(!w.match(u)){var q=A.slice(0,r),S=A.slice(r+1),F=x.match(p);F&&(q.push(F[1]),S.unshift(F[2])),S.length&&(m=S.join(".")+m),this.hostname=q.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var j=m.indexOf("#");-1!==j&&(this.hash=m.substr(j),m=m.slice(0,j));var z=m.indexOf("?");return-1!==z&&(this.search=m.substr(z),m=m.slice(0,z)),m&&(this.pathname=m),d[o]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},t.exports=function(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}}}),v=u({"node_modules/mdurl/index.js"(e,t){"use strict";t.exports.encode=b(),t.exports.decode=_(),t.exports.format=y(),t.exports.parse=k()}}),C=u({"node_modules/uc.micro/properties/Any/regex.js"(e,t){t.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/}}),A=u({"node_modules/uc.micro/categories/Cc/regex.js"(e,t){t.exports=/[\0-\x1F\x7F-\x9F]/}}),x=u({"node_modules/uc.micro/categories/Cf/regex.js"(e,t){t.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/}}),w=u({"node_modules/uc.micro/categories/Z/regex.js"(e,t){t.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/}}),D=u({"node_modules/uc.micro/index.js"(e){"use strict";e.Any=C(),e.Cc=A(),e.Cf=x(),e.P=g(),e.Z=w()}}),E=u({"node_modules/markdown-it/lib/common/utils.js"(e){"use strict";var t=Object.prototype.hasOwnProperty;function r(e,r){return t.call(e,r)}function n(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function s(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var i=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,o=new RegExp(i.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),a=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=m();var c=/[&<>"]/,u=/[&<>"]/g,p={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function h(e){return p[e]}var d=/[.?*+^$[\]\\(){}|-]/g;var f=g();e.lib={},e.lib.mdurl=v(),e.lib.ucmicro=D(),e.assign=function(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){if(t){if("object"!==typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(r){e[r]=t[r]}))}})),e},e.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},e.has=r,e.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(i,"$1")},e.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(o,(function(e,t,i){return t||function(e,t){var i=0;return r(l,t)?l[t]:35===t.charCodeAt(0)&&a.test(t)&&n(i="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?s(i):e}(e,i)}))},e.isValidEntityCode=n,e.fromCodePoint=s,e.escapeHtml=function(e){return c.test(e)?e.replace(u,h):e},e.arrayReplaceAt=function(e,t,r){return[].concat(e.slice(0,t),r,e.slice(t+1))},e.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},e.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},e.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},e.isPunctChar=function(e){return f.test(e)},e.escapeRE=function(e){return e.replace(d,"\\$&")},e.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"\u1e7e"==="\u1e9e".toLowerCase()&&(e=e.replace(/\u1e9e/g,"\xdf")),e.toLowerCase().toUpperCase()}}}),q=u({"node_modules/markdown-it/lib/helpers/parse_link_label.js"(e,t){"use strict";t.exports=function(e,t,r){var n,s,i,o,a=-1,l=e.posMax,c=e.pos;for(e.pos=t+1,n=1;e.pos<l;){if(93===(i=e.src.charCodeAt(e.pos))&&0===--n){s=!0;break}if(o=e.pos,e.md.inline.skipToken(e),91===i)if(o===e.pos-1)n++;else if(r)return e.pos=c,-1}return s&&(a=e.pos),e.pos=c,a}}}),S=u({"node_modules/markdown-it/lib/helpers/parse_link_destination.js"(e,t){"use strict";var r=E().unescapeAll;t.exports=function(e,t,n){var s,i,o=t,a={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(s=e.charCodeAt(t)))return a;if(60===s)return a;if(62===s)return a.pos=t+1,a.str=r(e.slice(o+1,t)),a.ok=!0,a;92===s&&t+1<n?t+=2:t++}return a}for(i=0;t<n&&32!==(s=e.charCodeAt(t))&&!(s<32||127===s);)if(92===s&&t+1<n){if(32===e.charCodeAt(t+1))break;t+=2}else{if(40===s&&++i>32)return a;if(41===s){if(0===i)break;i--}t++}return o===t||0!==i||(a.str=r(e.slice(o,t)),a.lines=0,a.pos=t,a.ok=!0),a}}}),F=u({"node_modules/markdown-it/lib/helpers/parse_link_title.js"(e,t){"use strict";var r=E().unescapeAll;t.exports=function(e,t,n){var s,i,o=0,a=t,l={ok:!1,pos:0,lines:0,str:""};if(t>=n)return l;if(34!==(i=e.charCodeAt(t))&&39!==i&&40!==i)return l;for(t++,40===i&&(i=41);t<n;){if((s=e.charCodeAt(t))===i)return l.pos=t+1,l.lines=o,l.str=r(e.slice(a+1,t)),l.ok=!0,l;if(40===s&&41===i)return l;10===s?o++:92===s&&t+1<n&&(t++,10===e.charCodeAt(t)&&o++),t++}return l}}}),j=u({"node_modules/markdown-it/lib/helpers/index.js"(e){"use strict";e.parseLinkLabel=q(),e.parseLinkDestination=S(),e.parseLinkTitle=F()}}),z=u({"node_modules/markdown-it/lib/renderer.js"(e,t){"use strict";var r=E().assign,n=E().unescapeAll,s=E().escapeHtml,i={};function o(){this.rules=r({},i)}i.code_inline=function(e,t,r,n,i){var o=e[t];return"<code"+i.renderAttrs(o)+">"+s(e[t].content)+"</code>"},i.code_block=function(e,t,r,n,i){var o=e[t];return"<pre"+i.renderAttrs(o)+"><code>"+s(e[t].content)+"</code></pre>\n"},i.fence=function(e,t,r,i,o){var a,l,c,u,p,h=e[t],d=h.info?n(h.info).trim():"",f="",m="";return d&&(f=(c=d.split(/(\s+)/g))[0],m=c.slice(2).join("")),0===(a=r.highlight&&r.highlight(h.content,f,m)||s(h.content)).indexOf("<pre")?a+"\n":d?(l=h.attrIndex("class"),u=h.attrs?h.attrs.slice():[],l<0?u.push(["class",r.langPrefix+f]):(u[l]=u[l].slice(),u[l][1]+=" "+r.langPrefix+f),p={attrs:u},"<pre><code"+o.renderAttrs(p)+">"+a+"</code></pre>\n"):"<pre><code"+o.renderAttrs(h)+">"+a+"</code></pre>\n"},i.image=function(e,t,r,n,s){var i=e[t];return i.attrs[i.attrIndex("alt")][1]=s.renderInlineAsText(i.children,r,n),s.renderToken(e,t,r)},i.hardbreak=function(e,t,r){return r.xhtmlOut?"<br />\n":"<br>\n"},i.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?"<br />\n":"<br>\n":"\n"},i.text=function(e,t){return s(e[t].content)},i.html_block=function(e,t){return e[t].content},i.html_inline=function(e,t){return e[t].content},o.prototype.renderAttrs=function(e){var t,r,n;if(!e.attrs)return"";for(n="",t=0,r=e.attrs.length;t<r;t++)n+=" "+s(e.attrs[t][0])+'="'+s(e.attrs[t][1])+'"';return n},o.prototype.renderToken=function(e,t,r){var n,s="",i=!1,o=e[t];return o.hidden?"":(o.block&&-1!==o.nesting&&t&&e[t-1].hidden&&(s+="\n"),s+=(-1===o.nesting?"</":"<")+o.tag,s+=this.renderAttrs(o),0===o.nesting&&r.xhtmlOut&&(s+=" /"),o.block&&(i=!0,1===o.nesting&&t+1<e.length&&("inline"===(n=e[t+1]).type||n.hidden||-1===n.nesting&&n.tag===o.tag)&&(i=!1)),s+=i?">\n":">")},o.prototype.renderInline=function(e,t,r){for(var n,s="",i=this.rules,o=0,a=e.length;o<a;o++)"undefined"!==typeof i[n=e[o].type]?s+=i[n](e,o,t,r,this):s+=this.renderToken(e,o,t);return s},o.prototype.renderInlineAsText=function(e,t,r){for(var n="",s=0,i=e.length;s<i;s++)"text"===e[s].type?n+=e[s].content:"image"===e[s].type?n+=this.renderInlineAsText(e[s].children,t,r):"softbreak"===e[s].type&&(n+="\n");return n},o.prototype.render=function(e,t,r){var n,s,i,o="",a=this.rules;for(n=0,s=e.length;n<s;n++)"inline"===(i=e[n].type)?o+=this.renderInline(e[n].children,t,r):"undefined"!==typeof a[i]?o+=a[e[n].type](e,n,t,r,this):o+=this.renderToken(e,n,t,r);return o},t.exports=o}}),L=u({"node_modules/markdown-it/lib/ruler.js"(e,t){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(r){r.enabled&&(t&&r.alt.indexOf(t)<0||e.__cache__[t].push(r.fn))}))}))},r.prototype.at=function(e,t,r){var n=this.__find__(e),s=r||{};if(-1===n)throw new Error("Parser rule not found: "+e);this.__rules__[n].fn=t,this.__rules__[n].alt=s.alt||[],this.__cache__=null},r.prototype.before=function(e,t,r,n){var s=this.__find__(e),i=n||{};if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s,0,{name:t,enabled:!0,fn:r,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,r,n){var s=this.__find__(e),i=n||{};if(-1===s)throw new Error("Parser rule not found: "+e);this.__rules__.splice(s+1,0,{name:t,enabled:!0,fn:r,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,r){var n=r||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var r=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!0,r.push(e)}),this),this.__cache__=null,r},r.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},r.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var r=[];return e.forEach((function(e){var n=this.__find__(e);if(n<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[n].enabled=!1,r.push(e)}),this),this.__cache__=null,r},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},t.exports=r}}),T=u({"node_modules/markdown-it/lib/rules_core/normalize.js"(e,t){"use strict";var r=/\r\n?|\n/g,n=/\0/g;t.exports=function(e){var t;t=(t=e.src.replace(r,"\n")).replace(n,"\ufffd"),e.src=t}}}),I=u({"node_modules/markdown-it/lib/rules_core/block.js"(e,t){"use strict";t.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}}}),O=u({"node_modules/markdown-it/lib/rules_core/inline.js"(e,t){"use strict";t.exports=function(e){var t,r,n,s=e.tokens;for(r=0,n=s.length;r<n;r++)"inline"===(t=s[r]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}}}),$=u({"node_modules/markdown-it/lib/rules_core/linkify.js"(e,t){"use strict";var r=E().arrayReplaceAt;function n(e){return/^<\/a\s*>/i.test(e)}t.exports=function(e){var t,s,i,o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v=e.tokens;if(e.md.options.linkify)for(s=0,i=v.length;s<i;s++)if("inline"===v[s].type&&e.md.linkify.pretest(v[s].content))for(m=0,t=(o=v[s].children).length-1;t>=0;t--)if("link_close"!==(l=o[t]).type){if("html_inline"===l.type&&(k=l.content,/^<a[>\s]/i.test(k)&&m>0&&m--,n(l.content)&&m++),!(m>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(p=l.content,y=e.md.linkify.match(p),c=[],f=l.level,d=0,u=0;u<y.length;u++)g=y[u].url,b=e.md.normalizeLink(g),e.md.validateLink(b)&&(_=y[u].text,_=y[u].schema?"mailto:"!==y[u].schema||/^mailto:/i.test(_)?e.md.normalizeLinkText(_):e.md.normalizeLinkText("mailto:"+_).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+_).replace(/^http:\/\//,""),(h=y[u].index)>d&&((a=new e.Token("text","",0)).content=p.slice(d,h),a.level=f,c.push(a)),(a=new e.Token("link_open","a",1)).attrs=[["href",b]],a.level=f++,a.markup="linkify",a.info="auto",c.push(a),(a=new e.Token("text","",0)).content=_,a.level=f,c.push(a),(a=new e.Token("link_close","a",-1)).level=--f,a.markup="linkify",a.info="auto",c.push(a),d=y[u].lastIndex);d<p.length&&((a=new e.Token("text","",0)).content=p.slice(d),a.level=f,c.push(a)),v[s].children=o=r(o,t,c)}}else for(t--;o[t].level!==l.level&&"link_open"!==o[t].type;)t--}}}),M=u({"node_modules/markdown-it/lib/rules_core/replacements.js"(e,t){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,n=/\((c|tm|r|p)\)/i,s=/\((c|tm|r|p)\)/gi,i={c:"\xa9",r:"\xae",p:"\xa7",tm:"\u2122"};function o(e,t){return i[t.toLowerCase()]}function a(e){var t,r,n=0;for(t=e.length-1;t>=0;t--)"text"!==(r=e[t]).type||n||(r.content=r.content.replace(s,o)),"link_open"===r.type&&"auto"===r.info&&n--,"link_close"===r.type&&"auto"===r.info&&n++}function l(e){var t,n,s=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||s||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"\xb1").replace(/\.{2,}/g,"\u2026").replace(/([?!])\u2026/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1\u2014").replace(/(^|\s)--(?=\s|$)/gm,"$1\u2013").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1\u2013")),"link_open"===n.type&&"auto"===n.info&&s--,"link_close"===n.type&&"auto"===n.info&&s++}t.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(n.test(e.tokens[t].content)&&a(e.tokens[t].children),r.test(e.tokens[t].content)&&l(e.tokens[t].children))}}}),R=u({"node_modules/markdown-it/lib/rules_core/smartquotes.js"(e,t){"use strict";var r=E().isWhiteSpace,n=E().isPunctChar,s=E().isMdAsciiPunct,i=/['"]/,o=/['"]/g;function a(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}function l(e,t){var i,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x,w,D,E;for(w=[],i=0;i<e.length;i++){for(l=e[i],d=e[i].level,A=w.length-1;A>=0&&!(w[A].level<=d);A--);if(w.length=A+1,"text"===l.type){p=0,h=(c=l.content).length;e:for(;p<h&&(o.lastIndex=p,u=o.exec(c));){if(v=C=!0,p=u.index+1,x="'"===u[0],m=32,u.index-1>=0)m=c.charCodeAt(u.index-1);else for(A=i-1;A>=0&&("softbreak"!==e[A].type&&"hardbreak"!==e[A].type);A--)if(e[A].content){m=e[A].content.charCodeAt(e[A].content.length-1);break}if(g=32,p<h)g=c.charCodeAt(p);else for(A=i+1;A<e.length&&("softbreak"!==e[A].type&&"hardbreak"!==e[A].type);A++)if(e[A].content){g=e[A].content.charCodeAt(0);break}if(b=s(m)||n(String.fromCharCode(m)),_=s(g)||n(String.fromCharCode(g)),y=r(m),(k=r(g))?v=!1:_&&(y||b||(v=!1)),y?C=!1:b&&(k||_||(C=!1)),34===g&&'"'===u[0]&&m>=48&&m<=57&&(C=v=!1),v&&C&&(v=b,C=_),v||C){if(C)for(A=w.length-1;A>=0&&(f=w[A],!(w[A].level<d));A--)if(f.single===x&&w[A].level===d){f=w[A],x?(D=t.md.options.quotes[2],E=t.md.options.quotes[3]):(D=t.md.options.quotes[0],E=t.md.options.quotes[1]),l.content=a(l.content,u.index,E),e[f.token].content=a(e[f.token].content,f.pos,D),p+=E.length-1,f.token===i&&(p+=D.length-1),h=(c=l.content).length,w.length=A;continue e}v?w.push({token:i,pos:u.index,single:x,level:d}):C&&x&&(l.content=a(l.content,u.index,"\u2019"))}else x&&(l.content=a(l.content,u.index,"\u2019"))}}}}t.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&i.test(e.tokens[t].content)&&l(e.tokens[t].children,e)}}}),N=u({"node_modules/markdown-it/lib/token.js"(e,t){"use strict";function r(e,t,r){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=r,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}r.prototype.attrIndex=function(e){var t,r,n;if(!this.attrs)return-1;for(r=0,n=(t=this.attrs).length;r<n;r++)if(t[r][0]===e)return r;return-1},r.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},r.prototype.attrSet=function(e,t){var r=this.attrIndex(e),n=[e,t];r<0?this.attrPush(n):this.attrs[r]=n},r.prototype.attrGet=function(e){var t=this.attrIndex(e),r=null;return t>=0&&(r=this.attrs[t][1]),r},r.prototype.attrJoin=function(e,t){var r=this.attrIndex(e);r<0?this.attrPush([e,t]):this.attrs[r][1]=this.attrs[r][1]+" "+t},t.exports=r}}),B=u({"node_modules/markdown-it/lib/rules_core/state_core.js"(e,t){"use strict";var r=N();function n(e,t,r){this.src=e,this.env=r,this.tokens=[],this.inlineMode=!1,this.md=t}n.prototype.Token=r,t.exports=n}}),P=u({"node_modules/markdown-it/lib/parser_core.js"(e,t){"use strict";var r=L(),n=[["normalize",T()],["block",I()],["inline",O()],["linkify",$()],["replacements",M()],["smartquotes",R()]];function s(){this.ruler=new r;for(var e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1])}s.prototype.process=function(e){var t,r,n;for(t=0,r=(n=this.ruler.getRules("")).length;t<r;t++)n[t](e)},s.prototype.State=B(),t.exports=s}}),U=u({"node_modules/markdown-it/lib/rules_block/table.js"(e,t){"use strict";var r=E().isSpace;function n(e,t){var r=e.bMarks[t]+e.tShift[t],n=e.eMarks[t];return e.src.substr(r,n-r)}function s(e){var t,r=[],n=0,s=e.length,i=!1,o=0,a="";for(t=e.charCodeAt(n);n<s;)124===t&&(i?(a+=e.substring(o,n-1),o=n):(r.push(a+e.substring(o,n)),a="",o=n+1)),i=92===t,n++,t=e.charCodeAt(n);return r.push(a+e.substring(o)),r}t.exports=function(e,t,i,o){var a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x;if(t+2>i)return!1;if(h=t+1,e.sCount[h]<e.blkIndent)return!1;if(!e.md.options.allowIndentation&&e.sCount[h]-e.blkIndent>=4)return!1;if((c=e.bMarks[h]+e.tShift[h])>=e.eMarks[h])return!1;if(124!==(A=e.src.charCodeAt(c++))&&45!==A&&58!==A)return!1;if(c>=e.eMarks[h])return!1;if(124!==(x=e.src.charCodeAt(c++))&&45!==x&&58!==x&&!r(x))return!1;if(45===A&&r(x))return!1;for(;c<e.eMarks[h];){if(124!==(a=e.src.charCodeAt(c))&&45!==a&&58!==a&&!r(a))return!1;c++}for(d=(l=n(e,t+1)).split("|"),g=[],u=0;u<d.length;u++){if(!(b=d[u].trim())){if(0===u||u===d.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?g.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?g.push("left"):g.push("")}if(-1===(l=n(e,t).trim()).indexOf("|"))return!1;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if((d=s(l)).length&&""===d[0]&&d.shift(),d.length&&""===d[d.length-1]&&d.pop(),0===(f=d.length)||f!==g.length)return!1;if(o)return!0;for(k=e.parentType,e.parentType="table",C=e.md.block.ruler.getRules("blockquote"),(m=e.push("table_open","table",1)).map=_=[t,0],(m=e.push("thead_open","thead",1)).map=[t,t+1],(m=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<d.length;u++)m=e.push("th_open","th",1),g[u]&&(m.attrs=[["style","text-align:"+g[u]]]),(m=e.push("inline","",0)).content=d[u].trim(),m.children=[],m=e.push("th_close","th",-1);for(m=e.push("tr_close","tr",-1),m=e.push("thead_close","thead",-1),h=t+2;h<i&&!(e.sCount[h]<e.blkIndent);h++){for(v=!1,u=0,p=C.length;u<p;u++)if(C[u](e,h,i,!0)){v=!0;break}if(v)break;if(!(l=n(e,h).trim()))break;if(!e.md.options.allowIndentation&&e.sCount[h]-e.blkIndent>=4)break;for((d=s(l)).length&&""===d[0]&&d.shift(),d.length&&""===d[d.length-1]&&d.pop(),h===t+2&&((m=e.push("tbody_open","tbody",1)).map=y=[t+2,0]),(m=e.push("tr_open","tr",1)).map=[h,h+1],u=0;u<f;u++)m=e.push("td_open","td",1),g[u]&&(m.attrs=[["style","text-align:"+g[u]]]),(m=e.push("inline","",0)).content=d[u]?d[u].trim():"",m.children=[],m=e.push("td_close","td",-1);m=e.push("tr_close","tr",-1)}return y&&(m=e.push("tbody_close","tbody",-1),y[1]=h),m=e.push("table_close","table",-1),_[1]=h,e.parentType=k,e.line=h,!0}}}),V=u({"node_modules/markdown-it/lib/rules_block/code.js"(e,t){"use strict";t.exports=function(e,t,r){if(e.md.options.allowIndentation)return!1;var n,s,i;if(e.sCount[t]-e.blkIndent<4)return!1;for(s=n=t+1;n<r;)if(e.isEmpty(n))n++;else{if(!(e.sCount[n]-e.blkIndent>=4))break;s=++n}return e.line=s,(i=e.push("code_block","code",0)).content=e.getLines(t,s,4+e.blkIndent,!1)+"\n",i.map=[t,e.line],!0}}}),Z=u({"node_modules/markdown-it/lib/rules_block/fence.js"(e,t){"use strict";t.exports=function(e,t,r,n){var s,i,o,a,l,c,u,p=!1,h=e.bMarks[t]+e.tShift[t],d=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(h+3>d)return!1;if(126!==(s=e.src.charCodeAt(h))&&96!==s)return!1;if(l=h,(i=(h=e.skipChars(h,s))-l)<3)return!1;if(u=e.src.slice(l,h),o=e.src.slice(h,d),96===s&&o.indexOf(String.fromCharCode(s))>=0)return!1;if(n)return!0;for(a=t;!(++a>=r)&&!((h=l=e.bMarks[a]+e.tShift[a])<(d=e.eMarks[a])&&e.sCount[a]<e.blkIndent);)if(e.src.charCodeAt(h)===s&&(e.md.options.allowIndentation||!(e.sCount[a]-e.blkIndent>=4))&&!((h=e.skipChars(h,s))-l<i)&&!((h=e.skipSpaces(h))<d)){p=!0;break}return i=e.sCount[t],e.line=a+(p?1:0),(c=e.push("fence","code",0)).info=o,c.content=e.getLines(t+1,a,i,!0),c.markup=u,c.map=[t,e.line],!0}}}),G=u({"node_modules/markdown-it/lib/rules_block/blockquote.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t,n,s){var i,o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x,w=e.lineMax,D=e.bMarks[t]+e.tShift[t],E=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(D++))return!1;if(s)return!0;for(l=d=e.sCount[t]+1,32===e.src.charCodeAt(D)?(D++,l++,d++,i=!1,k=!0):9===e.src.charCodeAt(D)?(k=!0,(e.bsCount[t]+d)%4===3?(D++,l++,d++,i=!1):i=!0):k=!1,f=[e.bMarks[t]],e.bMarks[t]=D;D<E&&(o=e.src.charCodeAt(D),r(o));)9===o?d+=4-(d+e.bsCount[t]+(i?1:0))%4:d++,D++;for(m=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(k?1:0),u=D>=E,_=[e.sCount[t]],e.sCount[t]=d-l,y=[e.tShift[t]],e.tShift[t]=D-e.bMarks[t],C=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",h=t+1;h<n&&(x=e.sCount[h]<e.blkIndent,!((D=e.bMarks[h]+e.tShift[h])>=(E=e.eMarks[h])));h++)if(62!==e.src.charCodeAt(D++)||x){if(u)break;for(v=!1,a=0,c=C.length;a<c;a++)if(C[a](e,h,n,!0)){v=!0;break}if(v){e.lineMax=h,0!==e.blkIndent&&(f.push(e.bMarks[h]),m.push(e.bsCount[h]),y.push(e.tShift[h]),_.push(e.sCount[h]),e.sCount[h]-=e.blkIndent);break}f.push(e.bMarks[h]),m.push(e.bsCount[h]),y.push(e.tShift[h]),_.push(e.sCount[h]),e.sCount[h]=-1}else{for(l=d=e.sCount[h]+1,32===e.src.charCodeAt(D)?(D++,l++,d++,i=!1,k=!0):9===e.src.charCodeAt(D)?(k=!0,(e.bsCount[h]+d)%4===3?(D++,l++,d++,i=!1):i=!0):k=!1,f.push(e.bMarks[h]),e.bMarks[h]=D;D<E&&(o=e.src.charCodeAt(D),r(o));)9===o?d+=4-(d+e.bsCount[h]+(i?1:0))%4:d++,D++;u=D>=E,m.push(e.bsCount[h]),e.bsCount[h]=e.sCount[h]+1+(k?1:0),_.push(e.sCount[h]),e.sCount[h]=d-l,y.push(e.tShift[h]),e.tShift[h]=D-e.bMarks[h]}for(g=e.blkIndent,e.blkIndent=0,(A=e.push("blockquote_open","blockquote",1)).markup=">",A.map=p=[t,0],e.md.block.tokenize(e,t,h),(A=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=w,e.parentType=b,p[1]=e.line,a=0;a<y.length;a++)e.bMarks[a+t]=f[a],e.tShift[a+t]=y[a],e.sCount[a+t]=_[a],e.bsCount[a+t]=m[a];return e.blkIndent=g,!0}}}),H=u({"node_modules/markdown-it/lib/rules_block/hr.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t,n,s){var i,o,a,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(i=e.src.charCodeAt(c++))&&45!==i&&95!==i)return!1;for(o=1;c<u;){if((a=e.src.charCodeAt(c++))!==i&&!r(a))return!1;a===i&&o++}return!(o<3)&&(s||(e.line=t+1,(l=e.push("hr","hr",0)).map=[t,e.line],l.markup=Array(o+1).join(String.fromCharCode(i))),!0)}}}),J=u({"node_modules/markdown-it/lib/rules_block/list.js"(e,t){"use strict";var r=E().isSpace;function n(e,t){var n,s,i,o;return s=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],42!==(n=e.src.charCodeAt(s++))&&45!==n&&43!==n||s<i&&(o=e.src.charCodeAt(s),!r(o))?-1:s}function s(e,t){var n,s=e.bMarks[t]+e.tShift[t],i=s,o=e.eMarks[t];if(i+1>=o)return-1;if((n=e.src.charCodeAt(i++))<48||n>57)return-1;for(;;){if(i>=o)return-1;if(!((n=e.src.charCodeAt(i++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(i-s>=10)return-1}return i<o&&(n=e.src.charCodeAt(i),!r(n))?-1:i}t.exports=function(e,t,r,i){var o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C,A,x,w,D,E,q,S,F,j,z,L,T=!1,I=!0;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.allowIndentation&&e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]<e.blkIndent)return!1;if(i&&"paragraph"===e.parentType&&e.sCount[t]>=e.blkIndent&&(T=!0),(q=s(e,t))>=0){if(h=!0,F=e.bMarks[t]+e.tShift[t],_=Number(e.src.slice(F,q-1)),T&&1!==_)return!1}else{if(!((q=n(e,t))>=0))return!1;h=!1}if(T&&e.skipSpaces(q)>=e.eMarks[t])return!1;if(b=e.src.charCodeAt(q-1),i)return!0;for(g=e.tokens.length,h?(L=e.push("ordered_list_open","ol",1),1!==_&&(L.attrs=[["start",_]])):L=e.push("bullet_list_open","ul",1),L.map=m=[t,0],L.markup=String.fromCharCode(b),k=t,S=!1,z=e.md.block.ruler.getRules("list"),A=e.parentType,e.parentType="list";k<r;){for(E=q,y=e.eMarks[k],p=v=e.sCount[k]+q-(e.bMarks[t]+e.tShift[t]);E<y;){if(9===(o=e.src.charCodeAt(E)))v+=4-(v+e.bsCount[k])%4;else{if(32!==o)break;v++}E++}if(u=(a=E)>=y?1:v-p,!e.md.options.allowIndentation&&u>4&&(u=1),c=p+u,(L=e.push("list_item_open","li",1)).markup=String.fromCharCode(b),L.map=d=[t,0],h&&(L.info=e.src.slice(F,q-1)),D=e.tight,w=e.tShift[t],x=e.sCount[t],C=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=a-e.bMarks[t],e.sCount[t]=v,a>=y&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,r):e.md.block.tokenize(e,t,r,!0),e.tight&&!S||(I=!1),S=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=C,e.tShift[t]=w,e.sCount[t]=x,e.tight=D,(L=e.push("list_item_close","li",-1)).markup=String.fromCharCode(b),k=t=e.line,d[1]=k,a=e.bMarks[t],k>=r)break;if(e.sCount[k]<e.blkIndent)break;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)break;for(j=!1,l=0,f=z.length;l<f;l++)if(z[l](e,k,r,!0)){j=!0;break}if(j)break;if(h){if((q=s(e,k))<0)break;F=e.bMarks[k]+e.tShift[k]}else if((q=n(e,k))<0)break;if(b!==e.src.charCodeAt(q-1))break}return(L=h?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(b),m[1]=k,e.line=k,e.parentType=A,I&&function(e,t){var r,n,s=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===s&&"paragraph_open"===e.tokens[r].type&&(e.tokens[r+2].hidden=!0,e.tokens[r].hidden=!0,r+=2)}(e,g),!0}}}),W=u({"node_modules/markdown-it/lib/rules_block/reference.js"(e,t){"use strict";var r=E().normalizeReference,n=E().isSpace;t.exports=function(e,t,s,i){var o,a,l,c,u,p,h,d,f,m,g,b,_,y,k,v,C=0,A=e.bMarks[t]+e.tShift[t],x=e.eMarks[t],w=t+1;if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(A))return!1;for(;++A<x;)if(93===e.src.charCodeAt(A)&&92!==e.src.charCodeAt(A-1)){if(A+1===x)return!1;if(58!==e.src.charCodeAt(A+1))return!1;break}for(c=e.lineMax,k=e.md.block.ruler.getRules("reference"),m=e.parentType,e.parentType="reference";w<c&&!e.isEmpty(w);w++)if((e.md.options.allowIndentation||!(e.sCount[w]-e.blkIndent>3))&&!(e.sCount[w]<0)){for(y=!1,p=0,h=k.length;p<h;p++)if(k[p](e,w,c,!0)){y=!0;break}if(y)break}for(x=(_=e.getLines(t,w,e.blkIndent,!1).trim()).length,A=1;A<x;A++){if(91===(o=_.charCodeAt(A)))return!1;if(93===o){f=A;break}(10===o||92===o&&++A<x&&10===_.charCodeAt(A))&&C++}if(f<0||58!==_.charCodeAt(f+1))return!1;for(A=f+2;A<x;A++)if(10===(o=_.charCodeAt(A)))C++;else if(!n(o))break;if(!(g=e.md.helpers.parseLinkDestination(_,A,x)).ok)return!1;if(u=e.md.normalizeLink(g.str),!e.md.validateLink(u))return!1;for(a=A=g.pos,l=C+=g.lines,b=A;A<x;A++)if(10===(o=_.charCodeAt(A)))C++;else if(!n(o))break;for(g=e.md.helpers.parseLinkTitle(_,A,x),A<x&&b!==A&&g.ok?(v=g.str,A=g.pos,C+=g.lines):(v="",A=a,C=l);A<x&&(o=_.charCodeAt(A),n(o));)A++;if(A<x&&10!==_.charCodeAt(A)&&v)for(v="",A=a,C=l;A<x&&(o=_.charCodeAt(A),n(o));)A++;return!(A<x&&10!==_.charCodeAt(A))&&(!!(d=r(_.slice(1,f)))&&(i||("undefined"===typeof e.env.references&&(e.env.references={}),"undefined"===typeof e.env.references[d]&&(e.env.references[d]={title:v,href:u}),e.parentType=m,e.line=t+C+1),!0))}}}),Y=u({"node_modules/markdown-it/lib/common/html_blocks.js"(e,t){"use strict";t.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]}}),K=u({"node_modules/markdown-it/lib/common/html_re.js"(e,t){"use strict";var r="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",n="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",s=new RegExp("^(?:"+r+"|"+n+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),i=new RegExp("^(?:"+r+"|"+n+")");t.exports.HTML_TAG_RE=s,t.exports.HTML_OPEN_CLOSE_TAG_RE=i}}),Q=u({"node_modules/markdown-it/lib/rules_block/html_block.js"(e,t){"use strict";var r=Y(),n=K().HTML_OPEN_CLOSE_TAG_RE,s=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(n.source+"\\s*$"),/^$/,!1]];t.exports=function(e,t,r,n){var i,o,a,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(l=e.src.slice(c,u),i=0;i<s.length&&!s[i][0].test(l);i++);if(i===s.length)return!1;if(n)return s[i][2];if(o=t+1,!s[i][1].test(l))for(;o<r&&!(e.sCount[o]<e.blkIndent);o++)if(c=e.bMarks[o]+e.tShift[o],u=e.eMarks[o],l=e.src.slice(c,u),s[i][1].test(l)){0!==l.length&&o++;break}return e.line=o,(a=e.push("html_block","",0)).map=[t,o],a.content=e.getLines(t,o,e.blkIndent,!0),!0}}}),X=u({"node_modules/markdown-it/lib/rules_block/heading.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t,n,s){var i,o,a,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(i=e.src.charCodeAt(c))||c>=u)return!1;for(o=1,i=e.src.charCodeAt(++c);35===i&&c<u&&o<=6;)o++,i=e.src.charCodeAt(++c);return!(o>6||c<u&&!r(i))&&(s||(u=e.skipSpacesBack(u,c),(a=e.skipCharsBack(u,35,c))>c&&r(e.src.charCodeAt(a-1))&&(u=a),e.line=t+1,(l=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),l.map=[t,e.line],(l=e.push("inline","",0)).content=e.src.slice(c,u).trim(),l.map=[t,e.line],l.children=[],(l=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o)),!0)}}}),ee=u({"node_modules/markdown-it/lib/rules_block/lheading.js"(e,t){"use strict";t.exports=function(e,t,r){var n,s,i,o,a,l,c,u,p,h,d=t+1,f=e.md.block.ruler.getRules("paragraph");if(!e.md.options.allowIndentation&&e.sCount[t]-e.blkIndent>=4)return!1;for(h=e.parentType,e.parentType="paragraph";d<r&&!e.isEmpty(d);d++)if(e.md.options.allowIndentation||!(e.sCount[d]-e.blkIndent>3)){if(e.sCount[d]>=e.blkIndent&&(l=e.bMarks[d]+e.tShift[d])<(c=e.eMarks[d])&&(45===(p=e.src.charCodeAt(l))||61===p)&&(l=e.skipChars(l,p),(l=e.skipSpaces(l))>=c)){u=61===p?1:2;break}if(!(e.sCount[d]<0)){for(s=!1,i=0,o=f.length;i<o;i++)if(f[i](e,d,r,!0)){s=!0;break}if(s)break}}return!!u&&(n=e.getLines(t,d,e.blkIndent,!1).trim(),e.line=d+1,(a=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),a.map=[t,e.line],(a=e.push("inline","",0)).content=n,a.map=[t,e.line-1],a.children=[],(a=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=h,!0)}}}),te=u({"node_modules/markdown-it/lib/rules_block/paragraph.js"(e,t){"use strict";t.exports=function(e,t){var r,n,s,i,o,a,l=t+1,c=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(a=e.parentType,e.parentType="paragraph";l<u&&!e.isEmpty(l);l++)if((e.md.options.allowIndentation||!(e.sCount[l]-e.blkIndent>3))&&!(e.sCount[l]<0)){for(n=!1,s=0,i=c.length;s<i;s++)if(c[s](e,l,u,!0)){n=!0;break}if(n)break}return r=e.getLines(t,l,e.blkIndent,!1).trim(),e.line=l,(o=e.push("paragraph_open","p",1)).map=[t,e.line],(o=e.push("inline","",0)).content=r,o.map=[t,e.line],o.children=[],o=e.push("paragraph_close","p",-1),e.parentType=a,!0}}}),re=u({"node_modules/markdown-it/lib/rules_block/state_block.js"(e,t){"use strict";var r=N(),n=E().isSpace;function s(e,t,r,s){var i,o,a,l,c,u,p,h;for(this.src=e,this.md=t,this.env=r,this.tokens=s,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",h=!1,a=l=u=p=0,c=(o=this.src).length;l<c;l++){if(i=o.charCodeAt(l),!h){if(n(i)){u++,9===i?p+=4-p%4:p++;continue}h=!0}10!==i&&l!==c-1||(10!==i&&l++,this.bMarks.push(a),this.eMarks.push(l),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),h=!1,u=0,p=0,a=l+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}s.prototype.push=function(e,t,n){var s=new r(e,t,n);return s.block=!0,n<0&&this.level--,s.level=this.level,n>0&&this.level++,this.tokens.push(s),s},s.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},s.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},s.prototype.skipSpaces=function(e){for(var t,r=this.src.length;e<r&&(t=this.src.charCodeAt(e),n(t));e++);return e},s.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!n(this.src.charCodeAt(--e)))return e+1;return e},s.prototype.skipChars=function(e,t){for(var r=this.src.length;e<r&&this.src.charCodeAt(e)===t;e++);return e},s.prototype.skipCharsBack=function(e,t,r){if(e<=r)return e;for(;e>r;)if(t!==this.src.charCodeAt(--e))return e+1;return e},s.prototype.getLines=function(e,t,r,s){var i,o,a,l,c,u,p,h=e;if(e>=t)return"";for(u=new Array(t-e),i=0;h<t;h++,i++){for(o=0,p=l=this.bMarks[h],c=h+1<t||s?this.eMarks[h]+1:this.eMarks[h];l<c&&o<r;){if(a=this.src.charCodeAt(l),n(a))9===a?o+=4-(o+this.bsCount[h])%4:o++;else{if(!(l-p<this.tShift[h]))break;o++}l++}u[i]=o>r?new Array(o-r+1).join(" ")+this.src.slice(l,c):this.src.slice(l,c)}return u.join("")},s.prototype.Token=r,t.exports=s}}),ne=u({"node_modules/markdown-it/lib/parser_block.js"(e,t){"use strict";var r=L(),n=[["table",U(),["paragraph","reference"]],["code",V()],["fence",Z(),["paragraph","reference","blockquote","list"]],["blockquote",G(),["paragraph","reference","blockquote","list"]],["hr",H(),["paragraph","reference","blockquote","list"]],["list",J(),["paragraph","reference","blockquote"]],["reference",W()],["html_block",Q(),["paragraph","reference","blockquote"]],["heading",X(),["paragraph","reference","blockquote"]],["lheading",ee()],["paragraph",te()]];function s(){this.ruler=new r;for(var e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1],{alt:(n[e][2]||[]).slice()})}s.prototype.tokenize=function(e,t,r){for(var n,s=this.ruler.getRules(""),i=s.length,o=t,a=!1,l=e.md.options.maxNesting;o<r&&(e.line=o=e.skipEmptyLines(o),!(o>=r))&&!(e.sCount[o]<e.blkIndent);){if(e.level>=l){e.line=r;break}for(n=0;n<i&&!s[n](e,o,r,!1);n++);e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(o=e.line)<r&&e.isEmpty(o)&&(a=!0,o++,e.line=o)}},s.prototype.parse=function(e,t,r,n){var s;e&&(s=new this.State(e,t,r,n),this.tokenize(s,s.line,s.lineMax))},s.prototype.State=re(),t.exports=s}}),se=u({"node_modules/markdown-it/lib/rules_inline/text.js"(e,t){"use strict";function r(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}t.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}}}),ie=u({"node_modules/markdown-it/lib/rules_inline/newline.js"(e,t){"use strict";var r=E().isSpace;t.exports=function(e,t){var n,s,i,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(n=e.pending.length-1,s=e.posMax,!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){for(i=n-1;i>=1&&32===e.pending.charCodeAt(i-1);)i--;e.pending=e.pending.slice(0,i),e.push("hardbreak","br",0)}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(o++;o<s&&r(e.src.charCodeAt(o));)o++;return e.pos=o,!0}}}),oe=u({"node_modules/markdown-it/lib/rules_inline/escape.js"(e,t){"use strict";var r,n=E().isSpace,s=[];for(r=0;r<256;r++)s.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){s[e.charCodeAt(0)]=1})),t.exports=function(e,t){var r,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(++i<o){if((r=e.src.charCodeAt(i))<256&&0!==s[r])return t||(e.pending+=e.src[i]),e.pos+=2,!0;if(10===r){for(t||e.push("hardbreak","br",0),i++;i<o&&(r=e.src.charCodeAt(i),n(r));)i++;return e.pos=i,!0}}return t||(e.pending+="\\"),e.pos++,!0}}}),ae=u({"node_modules/markdown-it/lib/rules_inline/backticks.js"(e,t){"use strict";t.exports=function(e,t){var r,n,s,i,o,a,l,c,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(r=u,u++,n=e.posMax;u<n&&96===e.src.charCodeAt(u);)u++;if(l=(s=e.src.slice(r,u)).length,e.backticksScanned&&(e.backticks[l]||0)<=r)return t||(e.pending+=s),e.pos+=l,!0;for(o=a=u;-1!==(o=e.src.indexOf("`",a));){for(a=o+1;a<n&&96===e.src.charCodeAt(a);)a++;if((c=a-o)===l)return t||((i=e.push("code_inline","code",0)).markup=s,i.content=e.src.slice(u,o).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=a,!0;e.backticks[c]=o}return e.backticksScanned=!0,t||(e.pending+=s),e.pos+=l,!0}}}),le=u({"node_modules/markdown-it/lib/rules_inline/strikethrough.js"(e,t){"use strict";function r(e,t){var r,n,s,i,o,a=[],l=t.length;for(r=0;r<l;r++)126===(s=t[r]).marker&&-1!==s.end&&(i=t[s.end],(o=e.tokens[s.token]).type="s_open",o.tag="s",o.nesting=1,o.markup="~~",o.content="",(o=e.tokens[i.token]).type="s_close",o.tag="s",o.nesting=-1,o.markup="~~",o.content="","text"===e.tokens[i.token-1].type&&"~"===e.tokens[i.token-1].content&&a.push(i.token-1));for(;a.length;){for(n=(r=a.pop())+1;n<e.tokens.length&&"s_close"===e.tokens[n].type;)n++;r!==--n&&(o=e.tokens[n],e.tokens[n]=e.tokens[r],e.tokens[r]=o)}}t.exports.tokenize=function(e,t){var r,n,s,i,o=e.pos,a=e.src.charCodeAt(o);if(t)return!1;if(126!==a)return!1;if(s=(n=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(a),s<2)return!1;for(s%2&&(e.push("text","",0).content=i,s--),r=0;r<s;r+=2)e.push("text","",0).content=i+i,e.delimiters.push({marker:a,length:0,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},t.exports.postProcess=function(e){var t,n=e.tokens_meta,s=e.tokens_meta.length;for(r(e,e.delimiters),t=0;t<s;t++)n[t]&&n[t].delimiters&&r(e,n[t].delimiters)}}}),ce=u({"node_modules/markdown-it/lib/rules_inline/emphasis.js"(e,t){"use strict";function r(e,t){var r,n,s,i,o,a;for(r=t.length-1;r>=0;r--)95!==(n=t[r]).marker&&42!==n.marker||-1!==n.end&&(s=t[n.end],a=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===s.token+1,o=String.fromCharCode(n.marker),(i=e.tokens[n.token]).type=a?"strong_open":"em_open",i.tag=a?"strong":"em",i.nesting=1,i.markup=a?o+o:o,i.content="",(i=e.tokens[s.token]).type=a?"strong_close":"em_close",i.tag=a?"strong":"em",i.nesting=-1,i.markup=a?o+o:o,i.content="",a&&(e.tokens[t[r-1].token].content="",e.tokens[t[n.end+1].token].content="",r--))}t.exports.tokenize=function(e,t){var r,n,s=e.pos,i=e.src.charCodeAt(s);if(t)return!1;if(95!==i&&42!==i)return!1;for(n=e.scanDelims(e.pos,42===i),r=0;r<n.length;r++)e.push("text","",0).content=String.fromCharCode(i),e.delimiters.push({marker:i,length:n.length,token:e.tokens.length-1,end:-1,open:n.can_open,close:n.can_close});return e.pos+=n.length,!0},t.exports.postProcess=function(e){var t,n=e.tokens_meta,s=e.tokens_meta.length;for(r(e,e.delimiters),t=0;t<s;t++)n[t]&&n[t].delimiters&&r(e,n[t].delimiters)}}}),ue=u({"node_modules/markdown-it/lib/rules_inline/link.js"(e,t){"use strict";var r=E().normalizeReference,n=E().isSpace;t.exports=function(e,t){var s,i,o,a,l,c,u,p,h="",d="",f=e.pos,m=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(l=e.pos+1,(a=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((c=a+1)<m&&40===e.src.charCodeAt(c)){for(b=!1,c++;c<m&&(i=e.src.charCodeAt(c),n(i)||10===i);c++);if(c>=m)return!1;if(g=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok){for(h=e.md.normalizeLink(u.str),e.md.validateLink(h)?c=u.pos:h="",g=c;c<m&&(i=e.src.charCodeAt(c),n(i)||10===i);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<m&&g!==c&&u.ok)for(d=u.str,c=u.pos;c<m&&(i=e.src.charCodeAt(c),n(i)||10===i);c++);}(c>=m||41!==e.src.charCodeAt(c))&&(b=!0),c++}if(b){if("undefined"===typeof e.env.references)return!1;if(c<m&&91===e.src.charCodeAt(c)?(g=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?o=e.src.slice(g,c++):c=a+1):c=a+1,o||(o=e.src.slice(l,a)),!(p=e.env.references[r(o)]))return e.pos=f,!1;h=p.href,d=p.title}return t||(e.pos=l,e.posMax=a,e.push("link_open","a",1).attrs=s=[["href",h]],d&&s.push(["title",d]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=c,e.posMax=m,!0}}}),pe=u({"node_modules/markdown-it/lib/rules_inline/image.js"(e,t){"use strict";var r=E().normalizeReference,n=E().isSpace;t.exports=function(e,t){var s,i,o,a,l,c,u,p,h,d,f,m,g,b="",_=e.pos,y=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(c=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=l+1)<y&&40===e.src.charCodeAt(u)){for(u++;u<y&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);if(u>=y)return!1;for(g=u,(h=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(b=e.md.normalizeLink(h.str),e.md.validateLink(b)?u=h.pos:b=""),g=u;u<y&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);if(h=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<y&&g!==u&&h.ok)for(d=h.str,u=h.pos;u<y&&(i=e.src.charCodeAt(u),n(i)||10===i);u++);else d="";if(u>=y||41!==e.src.charCodeAt(u))return e.pos=_,!1;u++}else{if("undefined"===typeof e.env.references)return!1;if(u<y&&91===e.src.charCodeAt(u)?(g=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?a=e.src.slice(g,u++):u=l+1):u=l+1,a||(a=e.src.slice(c,l)),!(p=e.env.references[r(a)]))return e.pos=_,!1;b=p.href,d=p.title}return t||(o=e.src.slice(c,l),e.md.inline.parse(o,e.md,e.env,m=[]),(f=e.push("image","img",0)).attrs=s=[["src",b],["alt",""]],f.children=m,f.content=o,d&&s.push(["title",d])),e.pos=u,e.posMax=y,!0}}}),he=u({"node_modules/markdown-it/lib/rules_inline/autolink.js"(e,t){"use strict";var r=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,n=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;t.exports=function(e,t){var s,i,o,a,l,c,u=e.pos;if(60!==e.src.charCodeAt(u))return!1;for(l=e.pos,c=e.posMax;;){if(++u>=c)return!1;if(60===(a=e.src.charCodeAt(u)))return!1;if(62===a)break}return s=e.src.slice(l+1,u),n.test(s)?(i=e.md.normalizeLink(s),!!e.md.validateLink(i)&&(t||((o=e.push("link_open","a",1)).attrs=[["href",i]],o.markup="autolink",o.info="auto",(o=e.push("text","",0)).content=e.md.normalizeLinkText(s),(o=e.push("link_close","a",-1)).markup="autolink",o.info="auto"),e.pos+=s.length+2,!0)):!!r.test(s)&&(i=e.md.normalizeLink("mailto:"+s),!!e.md.validateLink(i)&&(t||((o=e.push("link_open","a",1)).attrs=[["href",i]],o.markup="autolink",o.info="auto",(o=e.push("text","",0)).content=e.md.normalizeLinkText(s),(o=e.push("link_close","a",-1)).markup="autolink",o.info="auto"),e.pos+=s.length+2,!0))}}}),de=u({"node_modules/markdown-it/lib/rules_inline/html_inline.js"(e,t){"use strict";var r=K().HTML_TAG_RE;t.exports=function(e,t){var n,s,i,o=e.pos;return!!e.md.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(o)||o+2>=i)&&(!(33!==(n=e.src.charCodeAt(o+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(s=e.src.slice(o).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(o,o+s[0].length)),e.pos+=s[0].length,!0))))}}}),fe=u({"node_modules/markdown-it/lib/rules_inline/entity.js"(e,t){"use strict";var r=m(),n=E().has,s=E().isValidEntityCode,i=E().fromCodePoint,o=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,a=/^&([a-z][a-z0-9]{1,31});/i;t.exports=function(e,t){var l,c,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(c=e.src.slice(u).match(o))return t||(l="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=s(l)?i(l):i(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(u).match(a))&&n(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}}}),me=u({"node_modules/markdown-it/lib/rules_inline/balance_pairs.js"(e,t){"use strict";function r(e,t){var r,n,s,i,o,a,l,c,u={},p=t.length;if(p){var h=0,d=-2,f=[];for(r=0;r<p;r++)if(s=t[r],f.push(0),t[h].marker===s.marker&&d===s.token-1||(h=r),d=s.token,s.length=s.length||0,s.close){for(u.hasOwnProperty(s.marker)||(u[s.marker]=[-1,-1,-1,-1,-1,-1]),o=u[s.marker][(s.open?3:0)+s.length%3],a=n=h-f[h]-1;n>o;n-=f[n]+1)if((i=t[n]).marker===s.marker&&i.open&&i.end<0&&(l=!1,(i.close||s.open)&&(i.length+s.length)%3===0&&(i.length%3===0&&s.length%3===0||(l=!0)),!l)){c=n>0&&!t[n-1].open?f[n-1]+1:0,f[r]=r-n+c,f[n]=c,s.open=!1,i.end=r,i.close=!1,a=-1,d=-2;break}-1!==a&&(u[s.marker][(s.open?3:0)+(s.length||0)%3]=a)}}}t.exports=function(e){var t,n=e.tokens_meta,s=e.tokens_meta.length;for(r(0,e.delimiters),t=0;t<s;t++)n[t]&&n[t].delimiters&&r(0,n[t].delimiters)}}}),ge=u({"node_modules/markdown-it/lib/rules_inline/text_collapse.js"(e,t){"use strict";t.exports=function(e){var t,r,n=0,s=e.tokens,i=e.tokens.length;for(t=r=0;t<i;t++)s[t].nesting<0&&n--,s[t].level=n,s[t].nesting>0&&n++,"text"===s[t].type&&t+1<i&&"text"===s[t+1].type?s[t+1].content=s[t].content+s[t+1].content:(t!==r&&(s[r]=s[t]),r++);t!==r&&(s.length=r)}}}),be=u({"node_modules/markdown-it/lib/rules_inline/state_inline.js"(e,t){"use strict";var r=N(),n=E().isWhiteSpace,s=E().isPunctChar,i=E().isMdAsciiPunct;function o(e,t,r,n){this.src=e,this.env=r,this.md=t,this.tokens=n,this.tokens_meta=Array(n.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}o.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},o.prototype.push=function(e,t,n){this.pending&&this.pushPending();var s=new r(e,t,n),i=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),s.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(s),this.tokens_meta.push(i),s},o.prototype.scanDelims=function(e,t){var r,o,a,l,c,u,p,h,d,f=e,m=!0,g=!0,b=this.posMax,_=this.src.charCodeAt(e);for(r=e>0?this.src.charCodeAt(e-1):32;f<b&&this.src.charCodeAt(f)===_;)f++;return a=f-e,o=f<b?this.src.charCodeAt(f):32,p=i(r)||s(String.fromCharCode(r)),d=i(o)||s(String.fromCharCode(o)),u=n(r),(h=n(o))?m=!1:d&&(u||p||(m=!1)),u?g=!1:p&&(h||d||(g=!1)),t?(l=m,c=g):(l=m&&(!g||p),c=g&&(!m||d)),{can_open:l,can_close:c,length:a}},o.prototype.Token=r,t.exports=o}}),_e=u({"node_modules/markdown-it/lib/parser_inline.js"(e,t){"use strict";var r=L(),n=[["text",se()],["newline",ie()],["escape",oe()],["backticks",ae()],["strikethrough",le().tokenize],["emphasis",ce().tokenize],["link",ue()],["image",pe()],["autolink",he()],["html_inline",de()],["entity",fe()]],s=[["balance_pairs",me()],["strikethrough",le().postProcess],["emphasis",ce().postProcess],["text_collapse",ge()]];function i(){var e;for(this.ruler=new r,e=0;e<n.length;e++)this.ruler.push(n[e][0],n[e][1]);for(this.ruler2=new r,e=0;e<s.length;e++)this.ruler2.push(s[e][0],s[e][1])}i.prototype.skipToken=function(e){var t,r,n=e.pos,s=this.ruler.getRules(""),i=s.length,o=e.md.options.maxNesting,a=e.cache;if("undefined"===typeof a[n]){if(e.level<o)for(r=0;r<i&&(e.level++,t=s[r](e,!0),e.level--,!t);r++);else e.pos=e.posMax;t||e.pos++,a[n]=e.pos}else e.pos=a[n]},i.prototype.tokenize=function(e){for(var t,r,n=this.ruler.getRules(""),s=n.length,i=e.posMax,o=e.md.options.maxNesting;e.pos<i;){if(e.level<o)for(r=0;r<s&&!(t=n[r](e,!1));r++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},i.prototype.parse=function(e,t,r,n){var s,i,o,a=new this.State(e,t,r,n);for(this.tokenize(a),o=(i=this.ruler2.getRules("")).length,s=0;s<o;s++)i[s](a)},i.prototype.State=be(),t.exports=i}}),ye=u({"node_modules/linkify-it/lib/re.js"(e,t){"use strict";t.exports=function(e){var t={};t.src_Any=C().source,t.src_Cc=A().source,t.src_Z=w().source,t.src_P=g().source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");var r="[><\uff5c]";return t.src_pseudo_letter="(?:(?![><\uff5c]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><\uff5c]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+r+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><\uff5c]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`|\uff5c]|"+t.src_ZPCc+"))((?![$+<=>^`|\uff5c])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}}}),ke=u({"node_modules/linkify-it/index.js"(e,t){"use strict";function r(e){return Array.prototype.slice.call(arguments,1).forEach((function(t){t&&Object.keys(t).forEach((function(r){e[r]=t[r]}))})),e}function n(e){return Object.prototype.toString.call(e)}function s(e){return"[object Function]"===n(e)}function i(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var o={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var a={"http:":{validate:function(e,t,r){var n=e.slice(t);return r.re.http||(r.re.http=new RegExp("^\\/\\/"+r.re.src_auth+r.re.src_host_port_strict+r.re.src_path,"i")),r.re.http.test(n)?n.match(r.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,r){var n=e.slice(t);return r.re.no_http||(r.re.no_http=new RegExp("^"+r.re.src_auth+"(?:localhost|(?:(?:"+r.re.src_domain+")\\.)+"+r.re.src_domain_root+")"+r.re.src_port+r.re.src_host_terminator+r.re.src_path,"i")),r.re.no_http.test(n)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:n.match(r.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,r){var n=e.slice(t);return r.re.mailto||(r.re.mailto=new RegExp("^"+r.re.src_email_name+"@"+r.re.src_host_strict,"i")),r.re.mailto.test(n)?n.match(r.re.mailto)[0].length:0}}},l="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|\u0440\u0444".split("|");function c(e){var t=e.re=ye()(e.__opts__),r=e.__tlds__.slice();function o(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(o(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(o(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(o(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(o(t.tpl_host_fuzzy_test),"i");var a=[];function l(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var r=e.__schemas__[t];if(null!==r){var i={validate:null,link:null};if(e.__compiled__[t]=i,"[object Object]"===n(r))return!function(e){return"[object RegExp]"===n(e)}(r.validate)?s(r.validate)?i.validate=r.validate:l(t,r):i.validate=function(e){return function(t,r){var n=t.slice(r);return e.test(n)?n.match(e)[0].length:0}}(r.validate),void(s(r.normalize)?i.normalize=r.normalize:r.normalize?l(t,r):i.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===n(e)}(r)?l(t,r):a.push(t)}})),a.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var c=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(i).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><\uff5c]|"+t.src_ZPCc+"))("+c+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><\uff5c]|"+t.src_ZPCc+"))("+c+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function u(e,t){var r=e.__index__,n=e.__last_index__,s=e.__text_cache__.slice(r,n);this.schema=e.__schema__.toLowerCase(),this.index=r+t,this.lastIndex=n+t,this.raw=s,this.text=s,this.url=s}function p(e,t){var r=new u(e,t);return e.__compiled__[r.schema].normalize(r,e),r}function h(e,t){if(!(this instanceof h))return new h(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||o.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},o,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},a,e),this.__compiled__={},this.__tlds__=l,this.__tlds_replaced__=!1,this.re={},c(this)}h.prototype.add=function(e,t){return this.__schemas__[e]=t,c(this),this},h.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},h.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,r,n,s,i,o,a,l;if(this.re.schema_test.test(e))for((a=this.re.schema_search).lastIndex=0;null!==(t=a.exec(e));)if(s=this.testSchemaAt(e,t[2],a.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+s;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||l<this.__index__)&&null!==(r=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(i=r.index+r[1].length,(this.__index__<0||i<this.__index__)&&(this.__schema__="",this.__index__=i,this.__last_index__=r.index+r[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(n=e.match(this.re.email_fuzzy))&&(i=n.index+n[1].length,o=n.index+n[0].length,(this.__index__<0||i<this.__index__||i===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=o)),this.__index__>=0},h.prototype.pretest=function(e){return this.re.pretest.test(e)},h.prototype.testSchemaAt=function(e,t,r){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,r,this):0},h.prototype.match=function(e){var t=0,r=[];this.__index__>=0&&this.__text_cache__===e&&(r.push(p(this,t)),t=this.__last_index__);for(var n=t?e.slice(t):e;this.test(n);)r.push(p(this,t)),n=n.slice(this.__last_index__),t+=this.__last_index__;return r.length?r:null},h.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,r){return e!==r[t-1]})).reverse(),c(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,c(this),this)},h.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},h.prototype.onCompile=function(){},t.exports=h}}),ve=u({"node_modules/punycode/punycode.js"(e,t){"use strict";var r=2147483647,n=36,s=/^xn--/,i=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,a={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},l=Math.floor,c=String.fromCharCode;function u(e){throw new RangeError(a[e])}function p(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const s=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(o,".")).split("."),t).join(".");return n+s}function h(e){const t=[];let r=0;const n=e.length;for(;r<n;){const s=e.charCodeAt(r++);if(s>=55296&&s<=56319&&r<n){const n=e.charCodeAt(r++);56320==(64512&n)?t.push(((1023&s)<<10)+(1023&n)+65536):(t.push(s),r--)}else t.push(s)}return t}var d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},f=function(e,t,r){let s=0;for(e=r?l(e/700):e>>1,e+=l(e/t);e>455;s+=n)e=l(e/35);return l(s+36*e/(e+38))},m=function(e){const t=[],s=e.length;let i=0,o=128,a=72,c=e.lastIndexOf("-");c<0&&(c=0);for(let r=0;r<c;++r)e.charCodeAt(r)>=128&&u("not-basic"),t.push(e.charCodeAt(r));for(let h=c>0?c+1:0;h<s;){let c=i;for(let t=1,o=n;;o+=n){h>=s&&u("invalid-input");const c=(p=e.charCodeAt(h++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:n;(c>=n||c>l((r-i)/t))&&u("overflow"),i+=c*t;const d=o<=a?1:o>=a+26?26:o-a;if(c<d)break;const f=n-d;t>l(r/f)&&u("overflow"),t*=f}const d=t.length+1;a=f(i-c,d,0==c),l(i/d)>r-o&&u("overflow"),o+=l(i/d),i%=d,t.splice(i++,0,o)}var p;return String.fromCodePoint(...t)},g=function(e){const t=[];let s=(e=h(e)).length,i=128,o=0,a=72;for(const r of e)r<128&&t.push(c(r));let p=t.length,m=p;for(p&&t.push("-");m<s;){let s=r;for(const t of e)t>=i&&t<s&&(s=t);const h=m+1;s-i>l((r-o)/h)&&u("overflow"),o+=(s-i)*h,i=s;for(const g of e)if(g<i&&++o>r&&u("overflow"),g==i){let e=o;for(let r=n;;r+=n){const s=r<=a?1:r>=a+26?26:r-a;if(e<s)break;const i=e-s,o=n-s;t.push(c(d(s+i%o,0))),e=l(i/o)}t.push(c(d(e,0))),a=f(o,h,m==p),o=0,++m}++o,++i}return t.join("")},b={version:"2.1.0",ucs2:{decode:h,encode:e=>String.fromCodePoint(...e)},decode:m,encode:g,toASCII:function(e){return p(e,(function(e){return i.test(e)?"xn--"+g(e):e}))},toUnicode:function(e){return p(e,(function(e){return s.test(e)?m(e.slice(4).toLowerCase()):e}))}};t.exports=b}}),Ce=u({"node_modules/markdown-it/lib/presets/default.js"(e,t){"use strict";t.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}}}),Ae=u({"node_modules/markdown-it/lib/presets/zero.js"(e,t){"use strict";t.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}}}),xe=u({"node_modules/markdown-it/lib/presets/commonmark.js"(e,t){"use strict";t.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"\u201c\u201d\u2018\u2019",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}}}),we=u({"node_modules/markdown-it/lib/index.js"(e,t){"use strict";var r=E(),n=j(),s=z(),i=P(),o=ne(),a=_e(),l=ke(),c=v(),u=ve(),p={default:Ce(),zero:Ae(),commonmark:xe()},h=/^(vbscript|javascript|file|data):/,d=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!h.test(t)||!!d.test(t)}var m=["http:","https:","mailto:"];function g(e){var t=c.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=u.toASCII(t.hostname)}catch(r){}return c.encode(c.format(t))}function b(e){var t=c.parse(e,!0);if(t.hostname&&(!t.protocol||m.indexOf(t.protocol)>=0))try{t.hostname=u.toUnicode(t.hostname)}catch(r){}return c.decode(c.format(t),c.decode.defaultChars+"%")}function _(e,t){if(!(this instanceof _))return new _(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new a,this.block=new o,this.core=new i,this.renderer=new s,this.linkify=new l,this.validateLink=f,this.normalizeLink=g,this.normalizeLinkText=b,this.utils=r,this.helpers=r.assign({},n),this.options={},this.configure(e),t&&this.set(t)}_.prototype.set=function(e){return r.assign(this.options,e),this},_.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=p[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},_.prototype.enable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){r=r.concat(this[t].ruler.enable(e,!0))}),this),r=r.concat(this.inline.ruler2.enable(e,!0));var n=e.filter((function(e){return r.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+n);return this},_.prototype.disable=function(e,t){var r=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){r=r.concat(this[t].ruler.disable(e,!0))}),this),r=r.concat(this.inline.ruler2.disable(e,!0));var n=e.filter((function(e){return r.indexOf(e)<0}));if(n.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+n);return this},_.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},_.prototype.parse=function(e,t){if("string"!==typeof e)throw new Error("Input data should be a String");var r=new this.core.State(e,this,t);return this.core.process(r),r.tokens},_.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},_.prototype.parseInline=function(e,t){var r=new this.core.State(e,this,t);return r.inlineMode=!0,this.core.process(r),r.tokens},_.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},t.exports=_}}),De=u({"node_modules/markdown-it/index.js"(e,t){"use strict";t.exports=we()}}),Ee={};function qe(e){return!!e?.$$mdtype}function Se(e){return!("Function"!==e?.$$mdtype)}function Fe(e){return!("Variable"!==e?.$$mdtype)}function*je(e){if(null!=e&&"object"===typeof e){if(Array.isArray(e))for(const t of e)yield*je(t);if(qe(e)&&(yield e),Object.getPrototypeOf(e)===Object.prototype)for(const t of Object.values(e))yield*je(t)}}function ze(e,t={}){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map((e=>ze(e,t)));if(qe(e)&&e?.resolve instanceof Function)return e.resolve(t);if(Object.getPrototypeOf(e)!==Object.prototype)return e;const r={};for(const[n,s]of Object.entries(e))r[n]=ze(s,t);return r}p(Ee,{getAstValues:()=>je,isAst:()=>qe,isFunction:()=>Se,isVariable:()=>Fe,resolve:()=>ze});var Le=class{constructor(e="div",t={},r=[]){this.$$mdtype="Tag",this.name=e,this.attributes=t,this.children=r}};Le.isTag=e=>!("Tag"!==e?.$$mdtype);var Te,Ie,Oe=h(d()),$e=class{constructor(e=[]){this.$$mdtype="Variable",this.path=e}resolve({variables:e}={}){return e instanceof Function?e(this.path):this.path.reduce(((e={},t)=>e[t]),e)}},Me=class{constructor(e,t){this.$$mdtype="Function",this.name=e,this.parameters=t}resolve(e={}){const t=e?.functions?.[this.name];if(!t)return null;const r=ze(this.parameters,e);return t.transform?.(r,e)}};(Ie=Te||(Te={}))[Ie.normal=0]="normal",Ie[Ie.string=1]="string",Ie[Ie.escape=2]="escape";var Re="{%",Ne="%}",Be=/^[a-zA-Z0-9_-]+$/;function Pe(e){return"string"===typeof e&&Be.test(e)}function Ue(e){return e&&"object"===typeof e&&"function"===typeof e.then}function Ve(e,t=0){let r=0;for(let n=t;n<e.length;n++){const t=e[n];switch(r){case 1:switch(t){case'"':r=0;break;case"\\":r=2}break;case 2:r=1;break;case 0:if('"'===t)r=1;else if(e.startsWith(Ne,n))return n}}return null}function Ze(e,t,r){try{return(0,Oe.parse)(e,{Variable:$e,Function:Me})}catch(n){if(!(n instanceof Oe.SyntaxError))throw n;const{message:e,location:{start:s,end:i}}=n;return{type:"error",meta:{error:{message:e,location:{start:{line:t,character:s.offset+r},end:{line:t+1,character:i.offset+r}}}}}}}function Ge(e,t=0){let r=t+1;const n=[];let s=0;for(let i=0;i<e.length;i++){if("\n"===e[i]){r++;continue}if(!e.startsWith(Re,i))continue;const t=Ve(e,i);if(null==t){i+=Re.length;continue}const o=e.slice(i,t+Ne.length),a=e.slice(i+Re.length,t),l=e.lastIndexOf("\n",i),c=e.indexOf("\n",t),u=e.slice(l,c),p=Ze(a.trim(),r,i-l),h=u.trim()===o?l:i,d=e.slice(s,h);n.push({type:"text",start:s,end:i-1,content:d}),n.push({map:[r,r+1],position:{start:i-l,end:i-l+o.length},start:i,end:i+o.length-1,info:o,...p}),s=t+Ne.length,i=s-1}return n.push({type:"text",start:s,end:e.length-1,content:e.slice(s)}),n}var He={class:{type:class{validate(e){return"string"===typeof e||"object"===typeof e?[]:[{id:"attribute-type-invalid",level:"error",message:"Attribute 'class' must be type 'string | object'"}]}transform(e){if(!e||"string"===typeof e)return e;const t=[];for(const[r,n]of Object.entries(e??{}))n&&t.push(r);return t.join(" ")}},render:!0},id:{type:class{validate(e){return"string"===typeof e&&e.match(/^[a-zA-Z]/)?[]:[{id:"attribute-value-invalid",level:"error",message:"The 'id' attribute must start with a letter"}]}},render:!0}},Je={findSchema(e,{nodes:t={},tags:r={}}={}){return e.tag?r[e.tag]:t[e.type]},attributes(e,t={}){const r=this.findSchema(e,t)??{},n={},s={...He,...r.attributes};for(const[i,o]of Object.entries(s)){if(0==o.render)continue;const r="string"===typeof o.render?o.render:i;let s=e.attributes[i];if("function"===typeof o.type){const e=new o.type;e.transform&&(s=e.transform(s,t))}s=void 0===s?o.default:s,void 0!==s&&(n[r]=s)}if(r.slots)for(const[i,o]of Object.entries(r.slots)){const r="string"===typeof o.render?o.render:i;e.slots[i]&&(n[r]=this.node(e.slots[i],t))}return n},children(e,t={}){const r=e.children.flatMap((e=>this.node(e,t)));return r.some(Ue)?Promise.all(r):r},node(e,t={}){const r=this.findSchema(e,t)??{};if(r&&r.transform instanceof Function)return r.transform(e,t);const n=this.children(e,t);if(!r||!r.render)return n;const s=this.attributes(e,t);return Ue(s)||Ue(n)?Promise.all([s,n]).then((e=>new Le(r.render,...e))):new Le(r.render,s,n)}},We=class{constructor(e="node",t={},r=[],n){this.$$mdtype="Node",this.errors=[],this.lines=[],this.inline=!1,this.attributes=t,this.children=r,this.type=e,this.tag=n,this.annotations=[],this.slots={}}*walk(){for(const e of[...Object.values(this.slots),...this.children])yield e,yield*e.walk()}push(e){this.children.push(e)}resolve(e={}){return Object.assign(new We,this,{children:this.children.map((t=>t.resolve(e))),attributes:ze(this.attributes,e)})}findSchema(e={}){return Je.findSchema(this,e)}transformAttributes(e={}){return Je.attributes(this,e)}transformChildren(e){return Je.children(this,e)}transform(e){return Je.node(this,e)}},Ye={Function:Me,Node:We,Variable:$e};function Ke(e,t){if(!t)return t;const r=Ye[t.$$mdtype];return r?Object.assign(new r,t):t}var Qe={...Ye,...Ee,fromJSON:function(e){return JSON.parse(e,Ke)}},Xe=" ",et=", ",tt="\n",rt=".",nt="-",st=80,it=["strong","em","s"],ot=(e,t)=>Math.max(e,t),at=(e,t=2)=>({...e,indent:(e.indent||0)+t});function*lt(e,t){for(const r of e.children)yield*bt(r,t)}function*ct(e){yield[...e].join("").trim()}function*ut(e){yield`| ${e.join(" | ")} |`}function pt(e){return Qe.isAst(e)?_t(e):null===e?"null":Array.isArray(e)?"["+e.map(pt).join(et)+"]":"object"===typeof e?"{"+Object.entries(e).map((([e,t])=>`${Pe(e)?e:`"${e}"`}: ${pt(t)}`)).join(et)+"}":JSON.stringify(e)}function ht(e){return"primary"===e.name?pt(e.value):"id"===e.name&&"string"===typeof e.value&&Pe(e.value)?"#"+e.value:"class"===e.type&&Pe(e.name)?"."+e.name:`${e.name}=${pt(e.value)}`}function*dt(e){for(const[t,r]of Object.entries(e.attributes))if("class"!==t||"object"!==typeof r||Qe.isAst(r))yield ht({type:"attribute",name:t,value:r});else for(const e of Object.keys(r))yield ht({type:"class",name:e,value:r})}function*ft(e){e.annotations.length&&(yield Re+Xe,yield e.annotations.map(ht).join(Xe),yield Xe+Ne)}function*mt(e){let t;do{const{value:r,done:n}=e.next();if(n)return;t=r.trimStart()}while(!t.length);yield t,yield*e}function*gt(e,t){yield e.replace(t,"\\$&").replace(new RegExp("\xa0","g"),"&nbsp;")}function*bt(e,t={}){switch(typeof e){case"undefined":break;case"boolean":case"number":case"string":yield e.toString();break;case"object":if(null===e)break;if(Array.isArray(e)){for(const r of e)yield*bt(r,t);break}switch(e.$$mdtype){case"Function":yield*function*(e){yield e.name,yield"(",yield Object.values(e.parameters).map(pt).join(et),yield")"}(e);break;case"Node":yield*function*(e,t={}){const r={...t,parent:e},n=Xe.repeat(r.indent||0);switch(e.type){case"document":e.attributes.frontmatter&&e.attributes.frontmatter.length&&(yield"---"+tt+e.attributes.frontmatter+tt+"---"+tt+tt),yield*mt(lt(e,r));break;case"heading":yield tt,yield n,yield"#".repeat(e.attributes.level||1),yield Xe,yield*mt(lt(e,r)),yield*ft(e),yield tt;break;case"paragraph":yield tt,yield*lt(e,r),yield*ft(e),yield tt;break;case"inline":yield n,yield*lt(e,r);break;case"image":yield"!",yield"[",yield*bt(e.attributes.alt,r),yield"]",yield"(",yield*"string"===typeof e.attributes.src?gt(e.attributes.src,/[()]/):bt(e.attributes.src,r),e.attributes.title&&(yield Xe+`"${e.attributes.title}"`),yield")";break;case"link":yield"[",yield*lt(e,r),yield"]",yield"(",yield*"string"===typeof e.attributes.href?gt(e.attributes.href,/[()]/g):bt(e.attributes.href,r),e.attributes.title&&(yield Xe+`"${e.attributes.title}"`),yield")";break;case"text":{const{content:n}=e.attributes;Qe.isAst(n)?(yield Re+Xe,yield*bt(n,r),yield Xe+Ne):t.parent&&it.includes(t.parent.type)?yield*gt(n,/[*_~]/g):yield*gt(n,/^[*>#]/);break}case"blockquote":{const t=">"+Xe;yield e.children.map((e=>_t(e,r).trimStart())).map((e=>tt+n+t+e)).join(n+t);break}case"hr":yield tt,yield n,yield"---",yield tt;break;case"fence":{yield tt,yield n;const t=(e.attributes.content.match(/`{3,}/g)||[]).map((e=>e.length)).reduce(ot,0),r="`".repeat(t?t+1:3);yield r,e.attributes.language&&(yield e.attributes.language),e.annotations.length&&(yield Xe),yield*ft(e),yield tt,yield n,yield e.attributes.content.split(tt).join(tt+n),yield r,yield tt;break}case"tag":{e.inline||(yield tt,yield n);const s=Re+Xe,i=[s+e.tag,...dt(e)],o=i.join(Xe),a=o.length+2*s.length>(t.maxTagOpeningWidth||st);yield(!e.inline&&a?i.join(tt+Xe.repeat(s.length)+n):o)+Xe+(e.children.length?"":"/")+Ne,e.children.length&&(yield*lt(e,r.allowIndentation?at(r):r),e.inline||(yield n),yield Re+Xe+"/"+e.tag+Xe+Ne),e.inline||(yield tt);break}case"list":for(let t=0;t<e.children.length;t++){const s=e.attributes.ordered?`${0===t?e.attributes.start??"1":"1"}${e.attributes.marker??rt}`:e.attributes.marker??nt,i=_t(e.children[t],at(r,s.length+1)).trim();yield tt+n+s+" "+i}yield tt;break;case"item":for(let t=0;t<e.children.length;t++)yield*bt(e.children[t],r),0===t&&(yield*ft(e));break;case"strong":yield e.attributes.marker??"**",yield*ct(lt(e,r)),yield e.attributes.marker??"**";break;case"em":yield e.attributes.marker??"*",yield*ct(lt(e,r)),yield e.attributes.marker??"*";break;case"code":yield"`",yield*ct(bt(e.attributes.content,r)),yield"`";break;case"s":yield"~~",yield*ct(lt(e,r)),yield"~~";break;case"hardbreak":yield"\\"+tt,yield n;break;case"softbreak":yield tt,yield n;break;case"table":{const s=[...lt(e,at(r))];if(t.parent&&"tag"===t.parent.type&&"table"===t.parent.tag){for(let e=0;e<s.length;e++){const t=s[e];if("string"===typeof t)t.trim().length&&(yield tt,yield t);else{0!==e&&(yield tt,yield n+"---");for(const e of t)yield tt+n+nt+" "+e}}yield tt}else{yield tt;const[e,...t]=s,r=s.map((e=>e.map((e=>e.length)).reduce(ot))).reduce(ot);yield*ut(e.map((e=>e+Xe.repeat(r-e.length)))),yield tt,yield*ut(e.map((()=>"-".repeat(r)))),yield tt;for(const n of t)yield*ut(n.map((e=>e+Xe.repeat(r-e.length)))),yield tt}break}case"thead":{const[t]=[...lt(e,r)];yield t||[];break}case"tr":yield[...lt(e,r)];break;case"td":case"th":yield[...lt(e,r),...ft(e)].join("").trim();break;case"tbody":yield*lt(e,r);break;case"comment":yield"\x3c!-- "+e.attributes.content+" --\x3e\n"}}(e,t);break;case"Variable":yield*function*(e){yield"$",yield e.path.map(((e,t)=>0===t?e:Pe(e)?"."+e:"number"===typeof e?`[${e}]`:`["${e}"]`)).join("")}(e);break;default:throw new Error(`Unimplemented: "${e.$$mdtype}"`)}}}function _t(e,t){let r="";for(const n of bt(e,t))r+=n;return r.trimStart()}function yt(e){return!1!==e&&void 0!==e&&null!==e}var kt={attributes:{primary:{type:Object,render:!1}},transform(e,t){const r=function(e){const t=[{condition:e.attributes.primary,children:[]}];for(const r of e.children)"tag"===r.type&&"else"===r.tag?t.push({condition:!("primary"in r.attributes)||r.attributes.primary,children:[]}):t[t.length-1].children.push(r);return t}(e);for(const{condition:n,children:s}of r)if(yt(n)){const e=s.flatMap((e=>e.transform(t)));return e.some(Ue)?Promise.all(e).then((e=>e.flat())):e}return[]}},vt={selfClosing:!0,attributes:{primary:{type:Object,render:!1}}},Ct={and:{transform(e){return Object.values(e).every((e=>yt(e)))}},or:{transform(e){return void 0!==Object.values(e).find((e=>yt(e)))}},not:{parameters:{0:{required:!0}},transform(e){return!yt(e[0])}},equals:{transform(e){const t=Object.values(e);return t.every((e=>e===t[0]))}},default:{transform(e){return void 0===e[0]?e[1]:e[0]}},debug:{transform(e){return JSON.stringify(e[0],null,2)}}};function At(e,t="td"){e.type="tr",e.attributes={};for(const r of e.children)r.type=t;return e}var xt=[function(e){for(const t of e.walk()){if("tag"!==t.type||"table"!==t.tag)continue;const[e,...r]=t.children;if(!e||"table"===e.type)continue;const n=new Qe.Node("table",t.attributes,[new Qe.Node("thead"),new Qe.Node("tbody")]),[s,i]=n.children;"list"===e.type&&s.push(At(e,"th"));for(const t of r){if("list"===t.type)At(t);else{if("tag"!==t.type||"if"!==t.tag)continue;{const e=[];for(const r of t.children)"hr"!==r.type&&("list"===r.type&&At(r),e.push(r));t.children=e}}i.push(t)}t.children=[n]}}],wt={ordered_list:"list",bullet_list:"list",code_inline:"code",list_item:"item",variable:"text"};function Dt(e,t){for(const r of t){e.annotations.push(r);const{name:t,value:n,type:s}=r;"attribute"===s?e.attributes[t]=n:"class"===s&&(e.attributes.class?e.attributes.class[t]=n:e.attributes.class={[t]:n})}}function Et(e,t,r,n,s){if("frontmatter"===e.type)return void(t[0].attributes.frontmatter=e.content);if(e.hidden||"text"===e.type&&""===e.content)return;const i=e.errors||[],o=t[t.length-1],{tag:a,attributes:l,error:c}=e.meta||{};if("annotation"===e.type)return s?Dt(s,l):o.errors.push({id:"no-inline-annotations",level:"error",message:`Can't apply inline annotations to '${o.type}'`});let u=e.type.replace(/_(open|close)$/,"");if(wt[u]&&(u=wt[u]),"error"===u){const{message:e,location:t}=c;i.push({id:"parse-error",level:"critical",message:e,location:t})}if(e.nesting<0){if(o.type===u&&o.tag===a)return o.lines&&e.map&&o.lines.push(...e.map),t.pop();i.push({id:"missing-opening",level:"critical",message:`Node '${u}' is missing opening`})}const p=function(e,t){switch(t){case"heading":return{level:Number(e.tag.replace("h",""))};case"list":{const t=e.attrs?Object.fromEntries(e.attrs):void 0,r=e.type.startsWith("ordered");return r&&t?.start?{ordered:!0,start:t.start,marker:e.markup}:{ordered:r,marker:e.markup}}case"link":{const t=Object.fromEntries(e.attrs);return t.title?{href:t.href,title:t.title}:{href:t.href}}case"image":{const t=Object.fromEntries(e.attrs);return t.title?{alt:e.content,src:t.src,title:t.title}:{alt:e.content,src:t.src}}case"em":case"strong":return{marker:e.markup};case"text":case"code":case"comment":return{content:(e.meta||{}).variable||e.content};case"fence":{const[t]=e.info.split(" ",1);return""===t||t===Re?{content:e.content}:{content:e.content,language:t}}case"td":case"th":if(e.attrs){const t=Object.fromEntries(e.attrs);let r;if(t.style&&(t.style.includes("left")?r="left":t.style.includes("center")?r="center":t.style.includes("right")&&(r="right")),r)return{align:r}}return{};default:return{}}}(e,u),h=new We(u,p,void 0,a||void 0),{position:d={}}=e;if(h.errors=i,h.lines=e.map||o.lines||[],h.location={file:r,start:{line:h.lines[0],character:d.start},end:{line:h.lines[1],character:d.end}},s&&(h.inline=!0),l&&["tag","fence","image"].includes(u)&&Dt(h,l),n&&"slot"===a&&"string"===typeof h.attributes.primary?o.slots[h.attributes.primary]=h:o.push(h),e.nesting>0&&t.push(h),!Array.isArray(e.children))return;s=o,t.push(h);if(!("image"===u))for(const f of e.children)Et(f,t,r,n,s);t.pop()}var qt={};p(qt,{blockquote:()=>Tt,code:()=>Wt,comment:()=>Xt,document:()=>St,em:()=>Zt,error:()=>er,fence:()=>Lt,hardbreak:()=>Kt,heading:()=>Ft,hr:()=>$t,image:()=>zt,inline:()=>Ht,item:()=>It,link:()=>Jt,list:()=>Ot,node:()=>tr,paragraph:()=>jt,s:()=>Gt,softbreak:()=>Qt,strong:()=>Vt,table:()=>Mt,tbody:()=>Pt,td:()=>Rt,text:()=>Yt,th:()=>Nt,thead:()=>Ut,tr:()=>Bt});var St={render:"article",children:["heading","paragraph","image","table","tag","fence","blockquote","comment","list","hr"],attributes:{frontmatter:{render:!1}}},Ft={children:["inline"],attributes:{level:{type:Number,render:!1,required:!0}},transform(e,t){return new Le(`h${e.attributes.level}`,e.transformAttributes(t),e.transformChildren(t))}},jt={render:"p",children:["inline"]},zt={render:"img",attributes:{src:{type:String,required:!0},alt:{type:String},title:{type:String}}},Lt={render:"pre",attributes:{content:{type:String,render:!1,required:!0},language:{type:String,render:"data-language"},process:{type:Boolean,render:!1,default:!0}},transform(e,t){const r=e.transformAttributes(t),n=e.children.length?e.transformChildren(t):[e.attributes.content];return new Le("pre",r,n)}},Tt={render:"blockquote",children:["heading","paragraph","image","table","tag","fence","blockquote","list","hr"]},It={render:"li",children:["inline","heading","paragraph","image","table","tag","fence","blockquote","list","hr"]},Ot={children:["item"],attributes:{ordered:{type:Boolean,render:!1,required:!0},start:{type:Number},marker:{type:String,render:!1}},transform(e,t){return new Le(e.attributes.ordered?"ol":"ul",e.transformAttributes(t),e.transformChildren(t))}},$t={render:"hr"},Mt={render:"table"},Rt={render:"td",children:["inline","heading","paragraph","image","table","tag","fence","blockquote","list","hr"],attributes:{colspan:{type:Number},rowspan:{type:Number},align:{type:String}}},Nt={render:"th",attributes:{width:{type:Number},align:{type:String}}},Bt={render:"tr",children:["th","td"]},Pt={render:"tbody",children:["tr","tag"]},Ut={render:"thead",children:["tr"]},Vt={render:"strong",children:["em","s","link","code","text","tag"],attributes:{marker:{type:String,render:!1}}},Zt={render:"em",children:["strong","s","link","code","text","tag"],attributes:{marker:{type:String,render:!1}}},Gt={render:"s",children:["strong","em","link","code","text","tag"]},Ht={children:["strong","em","s","code","text","tag","link","image","hardbreak","softbreak","comment"]},Jt={render:"a",children:["strong","em","s","code","text","tag"],attributes:{href:{type:String,required:!0},title:{type:String}}},Wt={render:"code",attributes:{content:{type:String,render:!1,required:!0}},transform(e,t){const r=e.transformAttributes(t);return new Le("code",r,[e.attributes.content])}},Yt={attributes:{content:{type:String,required:!0}},transform(e){return e.attributes.content}},Kt={render:"br"},Qt={transform(){return" "}},Xt={attributes:{content:{type:String,required:!0}}},er={},tr={},rr=h(De()),{escapeHtml:nr}=(0,rr.default)().utils,sr=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function ir(e,t){return"string"!==typeof e?"Fragment":e[0]!==e[0].toUpperCase()?e:t instanceof Function?t(e):t[e]}function or(e){return e.map(lr).join(", ")}function ar(e){if(null==e||"object"!==typeof e)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map((e=>ar(e))).join(", ")}]`;if("Tag"===e.$$mdtype)return lr(e);if("object"!==typeof e)return JSON.stringify(e);return`{${Object.entries(e).map((([e,t])=>[JSON.stringify(e),ar(t)].join(": "))).join(", ")}}`}function lr(e){if(Array.isArray(e))return`React.createElement(React.Fragment, null, ${or(e)})`;if(null===e||"object"!==typeof e||!Le.isTag(e))return JSON.stringify(e);const{name:t,attributes:{class:r,...n}={},children:s=[]}=e;return r&&(n.className=r),`React.createElement(\n tagName(${JSON.stringify(t)}, components),\n ${0==Object.keys(n).length?"null":ar(n)},\n ${or(s)})`}var cr={html:function e(t){if("string"===typeof t||"number"===typeof t)return nr(String(t));if(Array.isArray(t))return t.map(e).join("");if(null===t||"object"!==typeof t||!Le.isTag(t))return"";const{name:r,attributes:n,children:s=[]}=t;if(!r)return e(s);let i=`<${r}`;for(const[o,a]of Object.entries(n??{}))i+=` ${o}="${nr(String(a))}"`;return i+=">",sr.has(r)||(s.length&&(i+=e(s)),i+=`</${r}>`),i},react:function(e,t,{components:r={}}={}){function n(e){if(null==e||"object"!==typeof e)return e;if(Array.isArray(e))return e.map((e=>n(e)));if("Tag"===e.$$mdtype)return s(e);if("object"!==typeof e)return e;const t={};for(const[r,s]of Object.entries(e))t[r]=n(s);return t}function s(e){if(Array.isArray(e))return t.createElement(t.Fragment,null,...e.map(s));if(null===e||"object"!==typeof e||!Le.isTag(e))return e;const{name:i,attributes:{class:o,...a}={},children:l=[]}=e;return o&&(a.className=o),t.createElement(function(e,t){return"string"!==typeof e||e[0]!==e[0].toUpperCase()?e:t instanceof Function?t(e):t[e]}(i,r),0==Object.keys(a).length?null:n(a),...l.map(s))}return s(e)},reactStatic:function(e){return`\n (({components = {}} = {}) => {\n ${ir}\n return ${lr(e)};\n })\n`}},ur={else:vt,if:kt,partial:{inline:!1,selfClosing:!0,attributes:{file:{type:class{validate(e,t){const{partials:r={}}=t;return r[e]?[]:[{id:"attribute-value-invalid",level:"error",message:`Partial \`${e}\` not found. The 'file' attribute must be set in \`config.partials\``}]}},render:!1,required:!0},variables:{type:Object,render:!1}},transform(e,t){const{partials:r={}}=t,{file:n,variables:s}=e.attributes,i=r[n];if(!i)return null;const o={...t,variables:{...t.variables,...s,"$$partial:filename":n}},a=e=>e.resolve(o).transformChildren(o);return Array.isArray(i)?i.flatMap(a):a(i)}},slot:{attributes:{primary:{type:String,required:!0}}},table:{children:["table"],inline:!1}},pr=h(we()),hr=h(d());function dr(e,t,r){try{const{type:r,meta:n,nesting:s=0}=(0,hr.parse)(t,{Variable:$e,Function:Me}),i=e.push(r,"",s);return i.info=t,i.meta=n,e.delimiters||(e.delimiters=[]),i}catch(n){if(!(n instanceof hr.SyntaxError))throw n;const{message:t,location:{start:s,end:i}}=n,o=r?{start:{offset:s.offset+r},end:{offset:i.offset+r}}:null,a=e.push("error","",0);return a.meta={error:{message:t,location:o}},a}}function fr(e,t,r,n){const s=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(!e.src.startsWith(Re,s))return!1;const o=Ve(e.src,s),a=e.src.slice(0,i).trim().length;if(!o||o<a-Ne.length)return!1;const l=s+Re.length,c=e.src.slice(l,o).trim(),u=c.split("\n").length;if("$"===c[0])return!1;if(n)return!0;return dr(e,c,l).map=[t,t+u],e.line+=u,!0}function mr(e,t){if(!e.src.startsWith(Re,e.pos))return!1;const r=Ve(e.src,e.pos);if(!r)return!1;const n=e.src.slice(e.pos+Re.length,r);return t||dr(e,n.trim()),e.pos=r+Ne.length,!0}function gr(e){let t;for(t of e.tokens)if("fence"===t.type){if(t.info.includes(Re)){const e=t.info.indexOf(Re),n=Ve(t.info,e),s=t.info.slice(e+Re.length,n);try{const{meta:e}=(0,hr.parse)(s.trim(),{Variable:$e,Function:Me});t.meta=e}catch(r){if(!(r instanceof hr.SyntaxError))throw r;t.errors||(t.errors=[]),t.errors.push({id:"fence-tag-error",level:"error",message:`Syntax error in fence tag: ${r.message}`})}}t?.meta?.attributes?.find((e=>"process"===e.name&&!e.value))||(t.children=Ge(t.content,t.map[0]))}}function br(e){e.block.ruler.before("paragraph","annotations",fr,{alt:["paragraph","blockquote"]}),e.inline.ruler.push("containers",mr),e.core.ruler.push("annotations",gr)}var _r="---";function yr(e,t){return e.src.slice(e.bMarks[t],e.eMarks[t]).trim()}function kr(e,t,r,n){if(0!=t||yr(e,0)!=_r)return!1;const s=function(e,t){for(let r=1;r<t;r++)if(yr(e,r)===_r)return r}(e,r);if(!s)return!1;if(n)return!0;const i=e.push("frontmatter","",0);return i.content=e.src.slice(e.eMarks[0],e.bMarks[s]).trim(),i.map=[0,s],i.hidden=!0,e.line=s+1,!0}function vr(e){e.block.ruler.before("hr","frontmatter",kr)}var Cr="\x3c!--",Ar="--\x3e";function xr(e,t,r,n){const s=e.bMarks[t]+e.tShift[t];if(!e.src.startsWith(Cr,s))return!1;const i=e.src.indexOf(Ar,s);if(!i)return!1;if(n)return!0;const o=e.src.slice(s+Cr.length,i),a=o.split("\n").length,l=e.push("comment","",0);return l.content=o.trim(),l.map=[t,t+a],e.line+=a,!0}function wr(e,t){if(!e.src.startsWith(Cr,e.pos))return!1;const r=e.src.indexOf(Ar,e.pos);if(!r)return!1;if(t)return!0;const n=e.src.slice(e.pos+Cr.length,r);return e.push("comment","",0).content=n.trim(),e.pos=r+Ar.length,!0}function Dr(e){e.block.ruler.before("table","comment",xr,{alt:["paragraph"]}),e.inline.ruler.push("comment",wr)}var Er=class{constructor(e={}){this.parser=new pr.default(e),this.parser.use(br,"annotations",{}),this.parser.use(vr,"frontmatter",{}),this.parser.disable(["lheading","code"]),e.allowComments&&this.parser.use(Dr,"comments",{})}tokenize(e){return this.parser.parse(e.toString(),{})}},qr={String:String,Number:Number,Array:Array,Object:Object,Boolean:Boolean};function Sr(e,t,r){if(!e)return!0;if(Qe.isFunction(t)&&r.validation?.validateFunctions){const n=r.functions?.[t.name];return!n?.returns||(Array.isArray(n.returns)?void 0!==n.returns.find((t=>t===e)):n.returns===e)}if(Qe.isAst(t))return!0;if(Array.isArray(e))return e.some((e=>Sr(e,t,r)));if("string"===typeof e&&(e=qr[e]),"function"===typeof e){const n=new e;if(n.validate)return n.validate(t,r)}return null!=t&&t.constructor===e}function Fr(e){return"string"===typeof e?e:Array.isArray(e)?e.map(Fr).join(" | "):e.name}function jr(e,t){const r=t.functions?.[e.name],n=[];if(!r)return[{id:"function-undefined",level:"critical",message:`Undefined function: '${e.name}'`}];if(r.validate&&n.push(...r.validate(e,t)),r.parameters)for(const[s,i]of Object.entries(e.parameters)){const o=r.parameters?.[s];if(o){if((!Qe.isAst(i)||Qe.isFunction(i))&&o.type){const r=Sr(o.type,i,t);!1===r?n.push({id:"parameter-type-invalid",level:"error",message:`Parameter '${s}' of '${e.name}' must be type of '${Fr(o.type)}'`}):Array.isArray(r)&&n.push(...r)}}else n.push({id:"parameter-undefined",level:"error",message:`Invalid parameter: '${s}'`})}for(const[s,{required:i}]of Object.entries(r.parameters??{}))i&&void 0===e.parameters[s]&&n.push({id:"parameter-missing-required",level:"error",message:`Missing required parameter: '${s}'`});return n}function zr(e,t){if(e.length<=t)return JSON.stringify(e);return`[${e.slice(0,t).map((e=>JSON.stringify(e))).join(",")}, ... ${e.length-t} more]`}function Lr(e,t){const r=e.findSchema(t),n=[...e.errors||[]];if(!r)return n.push({id:e.tag?"tag-undefined":"node-undefined",level:"critical",message:e.tag?`Undefined tag: '${e.tag}'`:`Undefined node: '${e.type}'`}),n;void 0!=r.inline&&e.inline!==r.inline&&n.push({id:"tag-placement-invalid",level:"critical",message:`'${e.tag}' tag should be ${r.inline?"inline":"block"}`}),r.selfClosing&&e.children.length>0&&n.push({id:"tag-selfclosing-has-children",level:"critical",message:`'${e.tag}' tag should be self-closing`});const s={...He,...r.attributes};for(const i of Object.keys(e.slots)){const e=r.slots?.[i];e||n.push({id:"slot-undefined",level:"error",message:`Invalid slot: '${i}'`})}for(let[i,o]of Object.entries(e.attributes)){const e=s[i];if(!e){n.push({id:"attribute-undefined",level:"error",message:`Invalid attribute: '${i}'`});continue}let{type:r,matches:a,errorLevel:l}=e;if(Qe.isAst(o))if(Qe.isFunction(o)&&t.validation?.validateFunctions)n.push(...jr(o,t));else{if(!Qe.isVariable(o)||!t.variables)continue;{let e=!1,r=t.variables;for(const t of o.path){if(!Object.prototype.hasOwnProperty.call(r,t)){e=!0;break}r=r[t]}e&&n.push({id:"variable-undefined",level:"error",message:`Undefined variable: '${o.path.join(".")}'`})}}if(r){const e=Sr(r,o,t);!1===e&&n.push({id:"attribute-type-invalid",level:l||"error",message:`Attribute '${i}' must be type of '${Fr(r)}'`}),Array.isArray(e)&&n.push(...e)}if("function"===typeof a&&(a=a(t)),Array.isArray(a)&&!a.includes(o)&&n.push({id:"attribute-value-invalid",level:l||"error",message:`Attribute '${i}' must match one of ${zr(a,8)}. Got '${o}' instead.`}),a instanceof RegExp&&!a.test(o)&&n.push({id:"attribute-value-invalid",level:l||"error",message:`Attribute '${i}' must match ${a}. Got '${o}' instead.`}),"function"===typeof e.validate){const r=e.validate(o,t);Array.isArray(r)&&n.push(...r)}}for(const[i,{required:o}]of Object.entries(s))o&&void 0===e.attributes[i]&&n.push({id:"attribute-missing-required",level:"error",message:`Missing required attribute: '${i}'`});if(r.slots)for(const[i,{required:o}]of Object.entries(r.slots))o&&void 0===e.slots[i]&&n.push({id:"slot-missing-required",level:"error",message:`Missing required slot: '${i}'`});for(const{type:i}of e.children)r.children&&"error"!==i&&!r.children.includes(i)&&n.push({id:"child-invalid",level:"warning",message:`Can't nest '${i}' in '${e.tag||e.type}'`});if(r.validate){const s=r.validate(e,t);if(Ue(s))return s.then((e=>n.concat(e)));n.push(...s)}return n}var Tr=new Er;function Ir(e={}){return{...e,tags:{...ur,...e.tags},nodes:{...qt,...e.nodes},functions:{...Ct,...e.functions}}}function Or(e,t){return"string"===typeof e&&(e=Tr.tokenize(e)),function(e,t){const r=new We("document"),n=[r];"string"===typeof t&&(t={file:t});for(const s of e)Et(s,n,t?.file,t?.slots);if(n.length>1)for(const s of n.slice(1))s.errors.push({id:"missing-closing",level:"critical",message:`Node '${s.tag||s.type}' is missing closing`});for(const s of xt)s(r);return r}(e,t)}function $r(e,t){return Array.isArray(e)?e.flatMap((e=>e.resolve(t))):e.resolve(t)}function Mr(e,t){const r=Ir(t),n=$r(e,r);return Array.isArray(n)?n.flatMap((e=>e.transform(r))):n.transform(r)}function Rr(e,t){const r=Ir(t),n=[e,...e.walk()].map((e=>{const{type:t,lines:n,location:s}=e,i=Lr(e,r);return Ue(i)?i.then((e=>e.map((e=>({type:t,lines:n,location:s,error:e}))))):i.map((e=>({type:t,lines:n,location:s,error:e})))}));return n.some(Ue)?Promise.all(n).then((e=>e.flat())):n.flat()}var Nr=class{constructor(e){this.parse=Or,this.resolve=e=>$r(e,this.config),this.transform=e=>Mr(e,this.config),this.validate=e=>Rr(e,this.config),this.config=e}};Nr.nodes=qt,Nr.tags=ur,Nr.functions=Ct,Nr.globalAttributes=He,Nr.renderers=cr,Nr.transforms=xt,Nr.Ast=Qe,Nr.Tag=Le,Nr.Tokenizer=Er,Nr.parseTags=Ge,Nr.transformer=Je,Nr.validator=Lr,Nr.parse=Or,Nr.transform=Mr,Nr.validate=Rr,Nr.createElement=function(e,t={},...r){return{name:e,attributes:t,children:r}},Nr.truthy=yt,Nr.format=_t},58206:function(e,t,r){function n(e,{target:t=document.body}={}){if("string"!==typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const r=document.createElement("textarea"),n=document.activeElement;r.value=e,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const s=document.getSelection(),i=s.rangeCount>0&&s.getRangeAt(0);t.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;let o=!1;try{o=document.execCommand("copy")}catch{}return r.remove(),i&&(s.removeAllRanges(),s.addRange(i)),n&&n.focus(),o}r.d(t,{Z:function(){return n}})}}]); \ No newline at end of file
diff --git a/web/gui/v2/502.9438cab3c9c41c42ed57.chunk.js b/web/gui/v2/502.517f9b221f4ed676c586.chunk.js
index 363c8675..fd4ed1bf 100644
--- a/web/gui/v2/502.9438cab3c9c41c42ed57.chunk.js
+++ b/web/gui/v2/502.517f9b221f4ed676c586.chunk.js
@@ -1 +1 @@
-!function(){try{var c="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},h=(new Error).stack;h&&(c._sentryDebugIds=c._sentryDebugIds||{},c._sentryDebugIds[h]="f4dbd4dd-1690-4424-8839-2be47e707158",c._sentryDebugIdIdentifier="sentry-dbid-f4dbd4dd-1690-4424-8839-2be47e707158")}catch(c){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[502],{26502:function(c,h,l){l.d(h,{lR:function(){return X},bY:function(){return I},av:function(){return z},pR:function(){return w}});var s=l(67294),t=l(87854),i=l.n(t),n=l(95348),e=l.n(n),d=new(i())({id:"netdata.svg",use:"netdata.svg-usage",viewBox:"0 0 272 51",content:'<symbol viewBox="0 0 272 51" xmlns="http://www.w3.org/2000/svg" id="netdata.svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M31.3716 46.75H21.0836L0 6.375H29.9276C41.5648 6.39622 50.9938 15.7525 51 27.2947C50.9813 38.051 42.2025 46.75 31.3716 46.75Z" fill="#00AB44" />\n<path d="M78.625 12.75H82.5264L94.8447 32.5059V12.75H97.9824V37.1377H94.2803L81.7793 17.3984V37.1377H78.625V12.75Z" fill="#00AB44" />\n<path d="M110.295 12.75H128.075V15.7383H113.516V23.1426H126.979V25.9648H113.516V34.2324H128.324V37.1377H110.295V12.75Z" fill="#00AB44" />\n<path d="M157.203 12.75V15.6553H148.985V37.1377H145.632V15.6553H137.414V12.75H157.203Z" fill="#00AB44" />\n<path fill-rule="evenodd" clip-rule="evenodd" d="M177.052 12.75H167.174V37.1377H177.019C181.202 37.1377 184.152 35.2894 185.867 31.5928C186.841 29.501 187.328 27.1602 187.328 24.5703C187.328 21.2168 186.504 18.4665 184.854 16.3193C183.006 13.9398 180.405 12.75 177.052 12.75ZM179.144 33.9668C178.424 34.1992 177.506 34.3154 176.388 34.3154H170.494V15.5889H176.354C179.022 15.5889 180.956 16.4245 182.157 18.0957C183.358 19.7669 183.958 22.1133 183.958 25.1348C183.958 25.9206 183.875 26.7728 183.709 27.6914C183.421 29.2298 182.951 30.4915 182.298 31.4766C181.479 32.7051 180.427 33.5352 179.144 33.9668Z" fill="#00AB44" />\n<path fill-rule="evenodd" clip-rule="evenodd" d="M209.203 12.75H205.468L196.287 37.1377H199.674L202.313 29.833H211.959L214.433 37.1377H218.052L209.203 12.75ZM207.194 16.3691L210.896 27.1436H203.26L207.194 16.3691Z" fill="#00AB44" />\n<path d="M243.098 12.75V15.6553H234.88V37.1377H231.526V15.6553H223.309V12.75H243.098Z" fill="#00AB44" />\n<path fill-rule="evenodd" clip-rule="evenodd" d="M261.236 12.75H257.501L248.32 37.1377H251.707L254.347 29.833H263.992L266.466 37.1377H270.085L261.236 12.75ZM259.228 16.3691L262.93 27.1436H255.293L259.228 16.3691Z" fill="#00AB44" />\n</symbol>'}),v=(e().add(d),d),C=new(i())({id:"google.svg",use:"google.svg-usage",viewBox:"0 0 48 48",content:'<symbol xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" aria-hidden="true" id="google.svg">\n <defs>\n <path id="google.svg_a" d="M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z" />\n </defs>\n <clipPath id="google.svg_b">\n <use xlink:href="#google.svg_a" overflow="visible" />\n </clipPath>\n <path clip-path="url(#google.svg_b)" fill="#FBBC05" d="M0 37V11l17 13z" />\n <path clip-path="url(#google.svg_b)" fill="#EA4335" d="M0 11l17 13 7-6.1L48 14V0H0z" />\n <path clip-path="url(#google.svg_b)" fill="#34A853" d="M0 37l30-23 7.9 1L48 0v48H0z" />\n <path clip-path="url(#google.svg_b)" fill="#4285F4" d="M48 48L17 24l-4-3 35-10z" />\n</symbol>'}),a=(e().add(C),C),_=new(i())({id:"github.svg",use:"github.svg-usage",viewBox:"0 0 16 16",content:'<symbol class="icon" viewBox="0 0 16 16" aria-hidden="true" id="github.svg">\n <path fillRule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z" />\n</symbol>'}),M=(e().add(_),_),V=new(i())({id:"cncfColor.svg",use:"cncfColor.svg-usage",viewBox:"0 0 400 77",content:'<symbol viewBox="0 0 400 77" fill="none" xmlns="http://www.w3.org/2000/svg" id="cncfColor.svg">\n<path d="M98.9 33.4C100.4 33.4 101.8 33.1 103.2 32.5C104.5 31.9 105.7 30.9 106.6 29.7L110.7 33.9C107.5 37.5 103.8 39.3 99.4 39.3C97.4 39.4 95.5 39.1 93.6 38.3C91.8 37.6 90.1 36.5 88.6 35.2C87.2 33.9 86.1 32.2 85.4 30.5C84.7 28.7 84.3 26.8 84.4 24.9C84.3 23 84.7 21 85.4 19.2C86.1 17.4 87.2 15.8 88.6 14.4C90.1 13 91.9 11.9 93.8 11.2C95.7 10.5 97.8 10.2 99.9 10.3C102 10.4 104 10.9 105.9 11.8C107.8 12.7 109.4 14 110.8 15.6L106.9 20.1C106 18.9 104.9 18 103.6 17.4C102.3 16.8 100.9 16.4 99.4 16.4C97.2 16.4 95 17.2 93.3 18.7C92.4 19.5 91.8 20.5 91.3 21.6C90.9 22.7 90.7 23.9 90.7 25C90.6 26.2 90.8 27.3 91.2 28.4C91.6 29.5 92.2 30.5 93.1 31.3C94.7 32.6 96.8 33.4 98.9 33.4ZM115.5 38.9V10.7H121.8V33.3H133.9V38.9H115.5ZM161.5 35C158.6 37.7 154.9 39.2 150.9 39.2C146.9 39.2 143.2 37.7 140.3 35C138.9 33.7 137.8 32.1 137.1 30.3C136.4 28.5 136 26.6 136 24.7C135.9 22.8 136.3 20.8 137 19.1C137.7 17.3 138.8 15.7 140.2 14.4C143.1 11.7 146.8 10.2 150.8 10.2C154.8 10.2 158.5 11.7 161.4 14.4C162.8 15.7 163.9 17.3 164.6 19.1C165.3 20.9 165.7 22.8 165.6 24.7C165.7 26.6 165.3 28.6 164.6 30.3C164 32.1 162.9 33.7 161.5 35ZM159.3 24.7C159.3 22.3 158.4 20 156.8 18.2C156 17.4 155.1 16.7 154.1 16.2C153.1 15.7 151.9 15.5 150.8 15.5C149.7 15.5 148.6 15.7 147.5 16.2C146.5 16.7 145.5 17.3 144.8 18.2C143.2 20 142.3 22.3 142.3 24.7C142.3 27.1 143.2 29.4 144.8 31.2C145.6 32 146.5 32.7 147.5 33.2C148.5 33.7 149.7 33.9 150.8 33.9C151.9 33.9 153 33.7 154.1 33.2C155.1 32.7 156.1 32.1 156.8 31.2C157.6 30.3 158.3 29.3 158.7 28.2C159.2 27 159.4 25.9 159.3 24.7ZM178.6 31.7C179.1 32.4 179.8 32.9 180.5 33.2C181.2 33.5 182.1 33.7 182.9 33.7C183.7 33.7 184.5 33.6 185.2 33.2C185.9 32.9 186.6 32.3 187 31.7C188.1 30.1 188.6 28.3 188.5 26.4V10.8H194.8V26.6C194.8 30.7 193.7 33.8 191.4 36C190.2 37.1 188.9 38 187.4 38.5C185.9 39.1 184.3 39.3 182.7 39.3C181.1 39.3 179.5 39.1 178 38.5C176.5 37.9 175.1 37.1 174 36C171.7 33.8 170.6 30.7 170.6 26.6V10.8H176.9V26.4C176.9 28.3 177.5 30.2 178.6 31.7ZM223.1 14.4C225.8 16.9 227.2 20.3 227.2 24.7C227.2 29.1 225.9 32.6 223.3 35.2C220.7 37.8 216.6 39 211.3 39H201.5V10.7H211.5C216.5 10.7 220.4 11.9 223.1 14.4ZM218.5 31.2C220 29.8 220.8 27.6 220.8 24.8C220.8 22 220 19.9 218.5 18.4C217 16.9 214.6 16.1 211.4 16.1H207.9V33.3H211.9C214.3 33.5 216.7 32.8 218.5 31.2ZM263.1 10.7H269.4V39H263.1L249.6 21.3V39H243.3V10.7H249.2L263.1 28.9V10.7ZM296.5 38.9L293.8 32.8H281.9L279.2 38.9H272.4L284.6 10.6H290.7L303 38.9H296.5ZM288 19.1L284.5 27.3H291.5L288 19.1ZM316.5 16.2V39H310.2V16.2H302.2V10.8H324.6V16.2C324.6 16.2 316.5 16.2 316.5 16.2ZM329 10.7H335.3V39H329C329 38.9 329 10.7 329 10.7ZM352.8 28.7L360 10.7H366.9L355.6 39H350.3L339 10.7H345.9L352.8 28.7ZM390.5 10.7V16.3H376.4V22.1H389.1V27.5H376.4V33.4H391V39H370.2V10.8L390.5 10.7ZM91.6 63C92.4 63 93.2 62.8 94 62.5C94.7 62.1 95.4 61.6 95.9 60.9L98.2 63.3C97.4 64.2 96.5 65 95.3 65.5C94.2 66 93 66.3 91.8 66.3C90.7 66.3 89.6 66.2 88.6 65.8C87.6 65.4 86.6 64.8 85.8 64C85 63.3 84.4 62.4 84 61.4C83.6 60.4 83.4 59.3 83.4 58.2C83.4 57.1 83.6 56 84 55C84.4 54 85 53.1 85.8 52.3C86.6 51.5 87.5 50.9 88.5 50.5C89.5 50.1 90.6 49.9 91.7 49.9C92.9 49.9 94.2 50.1 95.3 50.6C96.4 51.1 97.4 51.9 98.3 52.8L96.1 55.3C95.6 54.6 95 54.1 94.3 53.7C93.6 53.3 92.8 53.2 91.9 53.2C90.6 53.2 89.4 53.7 88.5 54.5C88 54.9 87.6 55.5 87.4 56.1C87.2 56.7 87 57.4 87.1 58C87.1 58.6 87.2 59.3 87.4 59.9C87.6 60.5 88 61.1 88.4 61.5C88.8 61.9 89.3 62.3 89.9 62.5C90.5 62.7 91 63 91.6 63ZM113.9 63.9C112.3 65.4 110.2 66.3 108 66.3C106.9 66.3 105.8 66.1 104.8 65.7C103.8 65.3 102.9 64.7 102.1 63.9C100.6 62.4 99.7 60.3 99.7 58.1C99.7 55.9 100.6 53.8 102.1 52.3C103.7 50.8 105.8 49.9 108 49.9C109.1 49.9 110.2 50.1 111.2 50.5C112.2 50.9 113.1 51.5 113.9 52.3C115.4 53.8 116.3 55.9 116.3 58.1C116.3 60.3 115.4 62.4 113.9 63.9ZM112.8 58.1C112.8 56.8 112.4 55.5 111.5 54.5C111.1 54 110.6 53.7 110 53.4C109.4 53.1 108.8 53 108.2 53C107.6 53 106.9 53.1 106.4 53.4C105.8 53.7 105.3 54.1 104.9 54.6C104.4 55.1 104.1 55.6 103.9 56.3C103.7 56.9 103.6 57.6 103.6 58.2C103.6 59.5 104.1 60.8 104.9 61.8C105.3 62.3 105.8 62.6 106.4 62.9C107 63.2 107.6 63.3 108.2 63.3C108.8 63.3 109.5 63.2 110 62.9C110.6 62.6 111.1 62.2 111.5 61.7C112.3 60.8 112.8 59.5 112.8 58.1ZM133.5 56.1L129.2 64.8H127.1L122.8 56.1V66.1H119.3V50.3H124.1L128.2 59L132.3 50.3H137.1V66.2H133.6L133.5 56.1ZM151.9 51.8C152.5 52.3 153 53 153.3 53.8C153.6 54.6 153.7 55.4 153.6 56.2C153.6 58.2 153 59.6 151.9 60.5C150.8 61.5 149 61.8 146.7 61.8H144.6V66.2H141V50.3H146.6C149 50.3 150.7 50.8 151.9 51.8ZM149.3 58C149.8 57.4 150 56.7 150 55.9C150 55.5 150 55.2 149.8 54.8C149.6 54.5 149.4 54.2 149.1 54C148.3 53.6 147.4 53.4 146.5 53.4H144.5V58.7H146.9C147.3 58.7 147.8 58.7 148.2 58.6C148.6 58.4 149 58.2 149.3 58ZM160.6 62C160.9 62.4 161.2 62.6 161.7 62.8C162.1 63 162.6 63.1 163 63.1C163.5 63.1 163.9 63 164.3 62.8C164.7 62.6 165.1 62.3 165.4 62C166 61.1 166.3 60 166.3 59V50.2H169.8V59C169.9 60 169.7 60.9 169.4 61.9C169.1 62.8 168.6 63.7 167.9 64.4C166.6 65.6 164.8 66.2 163 66.2C161.2 66.2 159.5 65.5 158.2 64.3C157.5 63.6 157 62.7 156.7 61.8C156.4 60.9 156.2 59.9 156.3 58.9V50.1H159.8V58.9C159.6 60 159.9 61.1 160.6 62ZM180.1 53.4V66.1H176.6V53.4H172.1V50.4H184.7V53.4C184.6 53.4 180.1 53.4 180.1 53.4ZM187.2 50.3H190.7V66.2H187.2V50.3ZM205.7 50.3H209.2V66.2H205.7L198.2 56.3V66.2H194.7V50.3H198L205.8 60.5L205.7 50.3ZM223.5 58.1H227V63.7C226.2 64.6 225.1 65.3 224 65.7C222.9 66.2 221.6 66.4 220.4 66.3C218.2 66.3 216.1 65.5 214.5 64C213.7 63.3 213.1 62.4 212.7 61.4C212.3 60.4 212.1 59.3 212.1 58.2C212.1 57.1 212.3 56 212.7 55C213.1 54 213.7 53.1 214.5 52.3C215.3 51.5 216.2 50.9 217.2 50.5C218.2 50.1 219.3 49.9 220.4 49.9C222.6 49.9 224.7 50.7 226.3 52.2L224.5 54.9C224 54.3 223.3 53.9 222.5 53.7C221.9 53.5 221.2 53.3 220.6 53.3C219.3 53.3 218.1 53.8 217.2 54.6C216.7 55.1 216.3 55.6 216.1 56.3C215.9 57 215.7 57.6 215.8 58.3C215.8 59.6 216.2 60.9 217.1 61.9C217.5 62.3 218 62.7 218.5 62.9C219 63.1 219.6 63.2 220.2 63.2C221.3 63.3 222.3 63 223.2 62.5V58H223.5V58.1ZM247 50.3V53.4H239.7V56.8H246.6V60H239.7V66.2H236.2V50.3C236.1 50.3 247 50.3 247 50.3ZM263.4 63.9C261.8 65.4 259.7 66.3 257.5 66.3C256.4 66.3 255.3 66.1 254.3 65.7C253.3 65.3 252.4 64.7 251.6 63.9C250.1 62.4 249.2 60.3 249.2 58.1C249.2 55.9 250.1 53.8 251.6 52.3C253.2 50.8 255.3 49.9 257.5 49.9C258.6 49.9 259.7 50.1 260.7 50.5C261.7 50.9 262.6 51.5 263.4 52.3C264.9 53.8 265.8 55.9 265.8 58.1C265.8 60.3 264.9 62.4 263.4 63.9ZM262.1 58.1C262.1 56.8 261.7 55.5 260.8 54.5C260.4 54 259.9 53.7 259.3 53.4C258.7 53.1 258.1 53 257.5 53C256.9 53 256.2 53.1 255.7 53.4C255.1 53.7 254.6 54.1 254.2 54.6C253.7 55.1 253.4 55.6 253.2 56.3C253 57 252.9 57.6 252.9 58.2C252.9 59.5 253.4 60.8 254.2 61.8C254.6 62.3 255.1 62.6 255.7 62.9C256.3 63.2 256.9 63.3 257.5 63.3C258.1 63.3 258.8 63.2 259.3 62.9C259.9 62.6 260.4 62.2 260.8 61.7C261.3 61.2 261.6 60.7 261.8 60C262 59.3 262.2 58.8 262.1 58.1ZM273 62C273.3 62.4 273.6 62.6 274.1 62.8C274.5 63 275 63.1 275.4 63.1C275.8 63.1 276.3 63 276.7 62.8C277.1 62.6 277.5 62.3 277.8 62C278.4 61.1 278.7 60 278.7 59V50.2H282.2V59C282.3 60 282.1 60.9 281.8 61.9C281.5 62.8 281 63.7 280.3 64.4C279 65.6 277.2 66.2 275.4 66.2C273.6 66.2 271.9 65.5 270.6 64.3C269.9 63.6 269.4 62.7 269.1 61.8C268.8 60.9 268.6 59.9 268.7 58.9V50.1H272.2V58.9C272 60 272.3 61.2 273 62ZM296.9 50.3H300.4V66.2H296.9L289.4 56.3V66.2H285.9V50.3H289.2L297 60.5L296.9 50.3ZM316.4 52.4C317.2 53.1 317.8 54.1 318.2 55.1C318.6 56.1 318.8 57.2 318.7 58.2C318.8 59.3 318.6 60.3 318.2 61.3C317.8 62.3 317.2 63.2 316.5 64C315.1 65.4 312.8 66.2 309.7 66.2H304.3V50.3H309.9C312.8 50.3 315 51 316.4 52.4ZM313.8 61.9C314.2 61.4 314.6 60.9 314.8 60.3C315 59.7 315.1 59 315.1 58.4C315.1 57.7 315 57.1 314.8 56.5C314.6 55.9 314.2 55.3 313.8 54.8C313.2 54.3 312.6 54 311.9 53.8C311.2 53.6 310.5 53.5 309.8 53.6H307.8V63.2H310.1C311.4 63.1 312.8 62.7 313.8 61.9ZM332.6 66.1L331.2 62.7H324.5L323.1 66.1H319.3L326.2 50.2H329.6L336.5 66.1H332.6ZM327.8 55L325.8 59.6H329.8L327.8 55ZM343.8 53.4V66.1H340.3V53.4H335.7V50.4H348.3V53.4H343.8ZM350.8 50.3H354.3V66.2H350.8V50.3ZM371.6 63.9C370 65.4 367.9 66.3 365.7 66.3C364.6 66.3 363.5 66.1 362.5 65.7C361.5 65.3 360.6 64.7 359.8 63.9C358.3 62.4 357.4 60.3 357.4 58.1C357.4 55.9 358.3 53.8 359.8 52.3C361.4 50.8 363.5 49.9 365.7 49.9C366.8 49.9 367.9 50.1 368.9 50.5C369.9 50.9 370.8 51.5 371.6 52.3C373.1 53.8 374 55.9 374 58.1C374 60.3 373.1 62.4 371.6 63.9ZM370.5 58.1C370.5 56.8 370 55.5 369.2 54.5C368.8 54 368.3 53.7 367.7 53.4C367.1 53.1 366.5 53 365.9 53C365.3 53 364.6 53.1 364.1 53.4C363.5 53.7 363 54.1 362.6 54.6C362.1 55.1 361.8 55.6 361.6 56.3C361.4 57 361.3 57.6 361.3 58.2C361.3 59.5 361.8 60.8 362.6 61.8C363 62.3 363.5 62.6 364.1 62.9C364.7 63.2 365.3 63.3 365.9 63.3C366.5 63.3 367.2 63.2 367.7 62.9C368.3 62.6 368.8 62.2 369.2 61.7C370 60.8 370.5 59.5 370.5 58.1ZM388.1 50.3H391.6V66.2H388.1L380.6 56.3V66.2H377V50.3H380.3L388.1 60.5C388.2 60.5 388.1 50.3 388.1 50.3Z" fill="black" />\n<path d="M16.2 47.3H7.5V67.6H27.8V58.9H16.2V47.3Z" fill="#0086FF" />\n<path d="M59.8 47.4V58.9H48.2V67.6H68.5V47.3L59.8 47.4Z" fill="#0086FF" />\n<path d="M7.5 27.1H16.3L16.2 27V15.5H27.8V6.8H7.5V27.1Z" fill="#0086FF" />\n<path d="M48.2 6.8V15.5H59.8V27.1H68.5V6.8C68.4 6.8 48.2 6.8 48.2 6.8Z" fill="#0086FF" />\n<path d="M47 27.1L35.4 15.5H48.1V6.8H27.8V15.5L39.4 27.1H47Z" fill="#93EAFF" />\n<path d="M36.6 47.3H29L38.6 56.9L40.5 58.9H27.8V67.6H48.2V58.8L42.4 53.1L36.6 47.3Z" fill="#93EAFF" />\n<path d="M59.8 27.1V39.7L48.2 28.1V35.8L59.7 47.3L68.5 47.3V27.1H59.8Z" fill="#93EAFF" />\n<path d="M27.8 38.6L16.3 27.1H7.5V47.3H16.2V34.7L27.8 46.3V38.6Z" fill="#93EAFF" />\n</symbol>'}),f=(e().add(V),V),H=new(i())({id:"cncfWhite.svg",use:"cncfWhite.svg-usage",viewBox:"-1.81 -3.06 419.38 80.13",content:'<symbol xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-1.81 -3.06 419.38 80.13" id="cncfWhite.svg">\n<path fill="white" id="cncfWhite.svg_XMLID_643_" d="M102.2 33c3.3 0 5.9-1.3 8-3.9l4.3 4.4c-3.4 3.8-7.3 5.7-11.9 5.7s-8.3-1.4-11.3-4.3-4.4-6.5-4.4-10.9 1.5-8.1 4.5-11 6.7-4.4 11.1-4.4c4.9 0 9 1.9 12.2 5.6l-4.1 4.7c-2.1-2.6-4.7-3.9-7.8-3.9-2.5 0-4.6.8-6.4 2.4s-2.7 3.8-2.7 6.6.8 5 2.5 6.7c1.6 1.4 3.6 2.3 6 2.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_641_" d="M119.7 38.8V9.1h6.6v23.8H139v5.9h-19.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_638_" d="M168 34.7c-3 2.9-6.7 4.4-11.1 4.4s-8.1-1.5-11.1-4.4-4.5-6.6-4.5-10.9c0-4.4 1.5-8 4.5-10.9s6.7-4.4 11.1-4.4S165 10 168 12.9s4.5 6.6 4.5 10.9c0 4.4-1.5 8-4.5 10.9zm-2.3-10.9c0-2.6-.9-4.9-2.6-6.8s-3.8-2.8-6.3-2.8-4.6.9-6.3 2.8c-1.7 1.9-2.6 4.1-2.6 6.8 0 2.6.9 4.9 2.6 6.8s3.8 2.8 6.3 2.8 4.6-.9 6.3-2.8c1.8-1.9 2.6-4.1 2.6-6.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_636_" d="M186 31.2c1.1 1.4 2.6 2.1 4.5 2.1s3.4-.7 4.4-2.1c1.1-1.4 1.6-3.3 1.6-5.6V9.2h6.6v16.6c0 4.3-1.2 7.6-3.6 9.9s-5.4 3.5-9.1 3.5-6.8-1.2-9.2-3.5c-2.4-2.3-3.6-5.6-3.6-9.9V9.2h6.6v16.4c.1 2.3.7 4.2 1.8 5.6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_633_" d="M232.7 13c2.8 2.6 4.3 6.2 4.3 10.8s-1.4 8.3-4.1 11c-2.8 2.7-7 4-12.6 4H210V9.1h10.5c5.3 0 9.4 1.3 12.2 3.9zm-4.8 17.7c1.6-1.5 2.4-3.8 2.4-6.7 0-2.9-.8-5.2-2.4-6.7-1.6-1.6-4.1-2.4-7.5-2.4h-3.7V33h4.2c3 0 5.3-.8 7-2.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_631_" d="M274.7 9.1h6.6v29.7h-6.6l-14.2-18.6v18.6h-6.6V9.1h6.2l14.6 19.1V9.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_628_" d="M309.8 38.8l-2.8-6.4h-12.5l-2.8 6.4h-7.1l12.8-29.7h6.4l12.8 29.7h-6.8zM300.9 18l-3.7 8.6h7.4l-3.7-8.6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_626_" d="M330.8 14.9v24h-6.6v-24h-8.4V9.2h23.5v5.7h-8.5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_624_" d="M344 9.1h6.6v29.7H344V9.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_622_" d="M368.9 28l7.6-18.9h7.2l-11.9 29.7h-5.6L354.3 9.1h7.2l7.4 18.9z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_620_" d="M408.6 9.1V15h-14.8v6.1h13.3v5.7h-13.3V33h15.3v5.9h-21.9V9.2h21.4v-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_618_" d="M94.6 64.1c1.8 0 3.3-.7 4.5-2.2l2.4 2.5c-1.9 2.1-4.1 3.2-6.7 3.2s-4.7-.8-6.3-2.4c-1.7-1.6-2.5-3.7-2.5-6.1 0-2.5.8-4.5 2.5-6.2s3.8-2.5 6.2-2.5c2.7 0 5 1 6.9 3.1l-2.3 2.6c-1.2-1.5-2.6-2.2-4.4-2.2-1.4 0-2.6.5-3.6 1.4s-1.5 2.1-1.5 3.7.5 2.8 1.4 3.7c.9 1 2.1 1.4 3.4 1.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_615_" d="M118 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_613_" d="M138.6 56.9l-4.5 9.1h-2.2l-4.5-9.1v10.5h-3.7V50.7h5l4.3 9.1 4.3-9.1h5v16.7h-3.7V56.9z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_610_" d="M157.9 52.3c1.2 1 1.8 2.5 1.8 4.6s-.6 3.6-1.8 4.5c-1.2 1-3 1.4-5.5 1.4h-2.2v4.6h-3.7V50.7h5.9c2.5.1 4.3.6 5.5 1.6zm-2.7 6.5c.4-.5.7-1.2.7-2.2s-.3-1.6-.9-2-1.5-.6-2.7-.6h-2.1v5.6h2.5c1.2 0 2-.3 2.5-.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_608_" d="M167 63.1c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V60c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2-2-3.2-2-5.6v-9.3h3.7v9.2c0 1.5.3 2.6.9 3.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_606_" d="M187.5 54v13.4h-3.7V54h-4.7v-3.2h13.2V54h-4.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_604_" d="M195 50.8h3.7v16.7H195V50.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_602_" d="M214.4 50.8h3.7v16.7h-3.7l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7V50.8h-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_600_" d="M233.1 59h3.7v5.9c-1.7 1.8-3.9 2.8-6.9 2.8-2.4 0-4.5-.8-6.2-2.4s-2.5-3.7-2.5-6.1c0-2.5.8-4.5 2.5-6.2s3.7-2.5 6.1-2.5 4.5.8 6.2 2.4l-1.9 2.8c-.7-.7-1.4-1.1-2.1-1.3-.6-.2-1.3-.4-2-.4-1.4 0-2.6.5-3.6 1.4-1 1-1.5 2.2-1.5 3.8 0 1.6.5 2.8 1.4 3.8.9.9 2 1.4 3.3 1.4s2.4-.2 3.2-.7V59h.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_598_" d="M257.8 50.8v3.3h-7.7v3.6h7.3V61h-7.3v6.5h-3.7V50.8h11.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_595_" d="M275 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.3-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c1-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_593_" d="M285.1 63.1c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V60c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2c-1.3-1.3-2-3.2-2-5.6v-9.3h3.7v9.2c-.1 1.5.3 2.6.9 3.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_591_" d="M310.2 50.8h3.7v16.7h-3.7l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7V50.8h-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_588_" d="M330.7 53c1.6 1.5 2.4 3.5 2.4 6.1s-.8 4.6-2.3 6.1-3.9 2.3-7.1 2.3H318V50.8h5.9c3 0 5.3.7 6.8 2.2zm-2.7 9.9c.9-.9 1.4-2.1 1.4-3.7s-.5-2.9-1.4-3.8-2.3-1.3-4.2-1.3h-2.1v10.1h2.4c1.7-.1 3-.5 3.9-1.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_585_" d="M347.7 67.4l-1.5-3.6h-7l-1.5 3.6h-4l7.2-16.7h3.6l7.2 16.7h-4zm-5-11.7l-2.1 4.8h4.2l-2.1-4.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_583_" d="M359.5 54v13.4h-3.7V54H351v-3.2h13.2V54h-4.7z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_581_" d="M366.9 50.8h3.7v16.7h-3.7V50.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_578_" d="M388.7 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_576_" d="M406 50.8h3.7v16.7H406l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7-.1-10.7z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_397_" d="M15.5 47.7H6.4v21.4h21.3v-9.2H15.5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_395_" d="M61.3 47.8v12.1H49.1v-.1 9.3h21.3V47.7h-9.2z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_394_" d="M6.4 26.4h9.2l-.1-.1V14.2h12.2V5H6.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_393_" d="M49.1 5v9.2h12.2v12.2h9.1V5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_391_" d="M47.9 26.4L35.7 14.2h13.4V5H27.7v9.2l12.2 12.2z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_390_" d="M36.9 47.7h-8L39 57.8l2 2.1H27.7v9.2h21.4v-9.3l-6.1-6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_389_" d="M61.3 26.4v13.3l-2.1-2.1-10.1-10.1v8.1l6 6 6.1 6.1h9.2V26.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_388_" d="M27.7 38.5L15.6 26.4H6.4v21.3h9.1V34.4l12.2 12.2z" class="st0" />\n</symbol>'}),g=(e().add(H),H),L=new(i())({id:"cncfBlack.svg",use:"cncfBlack.svg-usage",viewBox:"-3.69 -2.94 438.62 83.87",content:'<symbol xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-3.69 -2.94 438.62 83.87" id="cncfBlack.svg">\n<path id="cncfBlack.svg_XMLID_633_" d="M105 35c3.4 0 6.2-1.3 8.4-4l4.4 4.6c-3.5 4-7.7 6-12.5 6s-8.7-1.5-11.8-4.5c-3.1-3-4.6-6.8-4.6-11.4 0-4.6 1.6-8.5 4.7-11.5 3.2-3.1 7-4.6 11.6-4.6 5.1 0 9.4 1.9 12.8 5.8l-4.3 4.9c-2.2-2.7-4.9-4.1-8.2-4.1-2.6 0-4.8.9-6.7 2.6-1.9 1.7-2.8 4-2.8 6.9s.9 5.2 2.6 7c1.8 1.4 3.9 2.3 6.4 2.3z" />\n<path id="cncfBlack.svg_XMLID_631_" d="M123.3 41.1V10h6.9v24.9h13.2v6.2h-20.1z" />\n<path id="cncfBlack.svg_XMLID_628_" d="M173.9 36.8c-3.1 3.1-7 4.6-11.6 4.6s-8.5-1.5-11.6-4.6c-3.1-3.1-4.7-6.9-4.7-11.4 0-4.6 1.6-8.4 4.7-11.4 3.1-3.1 7-4.6 11.6-4.6s8.5 1.5 11.6 4.6c3.1 3.1 4.7 6.9 4.7 11.4s-1.6 8.3-4.7 11.4zm-2.4-11.4c0-2.8-.9-5.1-2.7-7.1-1.8-2-4-2.9-6.6-2.9-2.6 0-4.8 1-6.6 2.9-1.8 2-2.7 4.3-2.7 7.1s.9 5.1 2.7 7.1c1.8 1.9 4 2.9 6.6 2.9 2.6 0 4.8-1 6.6-2.9 1.8-2 2.7-4.3 2.7-7.1z" />\n<path id="cncfBlack.svg_XMLID_626_" d="M192.7 33.1c1.2 1.4 2.7 2.2 4.7 2.2s3.5-.7 4.6-2.2c1.1-1.4 1.7-3.4 1.7-5.9V10h6.9v17.4c0 4.5-1.2 8-3.7 10.4-2.5 2.4-5.7 3.6-9.6 3.6-3.9 0-7.1-1.2-9.6-3.6-2.5-2.4-3.8-5.9-3.8-10.4V10h6.9v17.2c.1 2.5.7 4.4 1.9 5.9z" />\n<path id="cncfBlack.svg_XMLID_623_" d="M241.6 14.1c3 2.7 4.4 6.5 4.4 11.3s-1.4 8.7-4.3 11.5c-2.9 2.8-7.3 4.2-13.2 4.2h-10.6V10h11c5.4 0 9.7 1.4 12.7 4.1zm-5.1 18.5c1.7-1.6 2.6-3.9 2.6-7s-.9-5.4-2.6-7c-1.7-1.6-4.3-2.5-7.8-2.5h-3.9V35h4.4c3.1 0 5.6-.8 7.3-2.4z" />\n<path id="cncfBlack.svg_XMLID_621_" d="M285.5 10h6.9v31.1h-6.9l-14.8-19.5v19.5h-6.9V10h6.5l15.2 20V10z" />\n<path id="cncfBlack.svg_XMLID_618_" d="M322.2 41.1l-2.9-6.7h-13l-2.9 6.7H296L309.5 10h6.7l13.4 31.1h-7.4zm-9.4-21.8l-3.9 9h7.8l-3.9-9z" />\n<path id="cncfBlack.svg_XMLID_616_" d="M344.1 16v25.1h-6.9V16h-8.8v-6h24.5v6h-8.8z" />\n<path id="cncfBlack.svg_XMLID_614_" d="M358 10h6.9v31.1H358V10z" />\n<path id="cncfBlack.svg_XMLID_612_" d="M384 29.8l7.9-19.8h7.5l-12.5 31.1H381L368.6 10h7.5l7.9 19.8z" />\n<path id="cncfBlack.svg_XMLID_610_" d="M425.5 10v6.2H410v6.4h14v5.9h-13.9V35h16v6.1h-22.9V10h22.3z" />\n<path id="cncfBlack.svg_XMLID_608_" d="M97.1 67.6c1.9 0 3.5-.8 4.7-2.3l2.5 2.6c-2 2.2-4.3 3.3-7 3.3s-4.9-.8-6.6-2.5C88.9 67 88 64.8 88 62.2s.9-4.7 2.7-6.5 3.9-2.6 6.5-2.6c2.9 0 5.2 1.1 7.2 3.3l-2.4 2.7c-1.2-1.5-2.8-2.3-4.6-2.3-1.5 0-2.7.5-3.8 1.4-1 1-1.6 2.2-1.6 3.9s.5 2.9 1.5 3.9c1 1.1 2.2 1.6 3.6 1.6z" />\n<path id="cncfBlack.svg_XMLID_605_" d="M121.6 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.8 4.7-2.6 6.4zm-1.3-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_603_" d="M143.1 60l-4.7 9.5h-2.3l-4.7-9.5v11h-3.9V53.6h5.3l4.5 9.6 4.5-9.6h5.2V71h-3.9V60z" />\n<path id="cncfBlack.svg_XMLID_600_" d="M163.3 55.1c1.2 1 1.8 2.6 1.8 4.8 0 2.2-.6 3.7-1.9 4.7-1.3 1-3.2 1.5-5.7 1.5h-2.3V71h-3.9V53.6h6.2c2.6 0 4.6.5 5.8 1.5zm-2.8 6.9c.5-.5.7-1.3.7-2.3 0-1-.3-1.7-.9-2.1-.6-.4-1.5-.6-2.8-.6h-2.2v5.9h2.6c1.2-.1 2.1-.4 2.6-.9z" />\n<path id="cncfBlack.svg_XMLID_598_" d="M172.8 66.5c.6.8 1.5 1.2 2.6 1.2s2-.4 2.6-1.2c.6-.8 1-1.9 1-3.3v-9.6h3.9v9.7c0 2.5-.7 4.5-2.1 5.8-1.4 1.4-3.2 2-5.4 2s-4-.7-5.4-2c-1.4-1.4-2.1-3.3-2.1-5.8v-9.7h3.9v9.6c0 1.4.3 2.5 1 3.3z" />\n<path id="cncfBlack.svg_XMLID_596_" d="M194.3 57v14h-3.9V57h-4.9v-3.4h13.8V57h-5z" />\n<path id="cncfBlack.svg_XMLID_594_" d="M202 53.6h3.9V71H202V53.6z" />\n<path id="cncfBlack.svg_XMLID_592_" d="M222.4 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_590_" d="M241.9 62.1h3.9v6.2c-1.7 1.9-4.1 2.9-7.2 2.9-2.6 0-4.7-.8-6.4-2.5-1.7-1.7-2.6-3.8-2.6-6.4 0-2.6.9-4.7 2.7-6.5 1.8-1.7 3.9-2.6 6.4-2.6 2.5 0 4.7.8 6.5 2.5l-2 2.9c-.8-.7-1.5-1.2-2.2-1.4-.7-.3-1.4-.4-2.1-.4-1.5 0-2.7.5-3.7 1.5s-1.5 2.3-1.5 4c0 1.6.5 3 1.5 3.9 1 1 2.1 1.5 3.5 1.5 1.3 0 2.5-.3 3.4-.8v-4.8z" />\n<path id="cncfBlack.svg_XMLID_588_" d="M267.8 53.6V57h-8.1v3.8h7.7v3.4h-7.7V71h-3.9V53.6h12z" />\n<path id="cncfBlack.svg_XMLID_585_" d="M285.8 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.9 4.7-2.6 6.4zm-1.4-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_583_" d="M296.3 66.5c.6.8 1.5 1.2 2.6 1.2s2-.4 2.6-1.2c.6-.8 1-1.9 1-3.3v-9.6h3.9v9.7c0 2.5-.7 4.5-2.1 5.8-1.4 1.4-3.2 2-5.4 2s-4-.7-5.4-2c-1.4-1.4-2.1-3.3-2.1-5.8v-9.7h3.9v9.6c0 1.4.4 2.5 1 3.3z" />\n<path id="cncfBlack.svg_XMLID_581_" d="M322.6 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_578_" d="M344.1 55.9c1.7 1.5 2.5 3.6 2.5 6.3 0 2.7-.8 4.9-2.4 6.4-1.6 1.6-4.1 2.4-7.4 2.4h-6V53.6h6.2c3 0 5.4.7 7.1 2.3zm-2.9 10.3c1-.9 1.4-2.2 1.4-3.9 0-1.7-.5-3-1.4-4-1-.9-2.4-1.4-4.4-1.4h-2.2v10.6h2.5c1.8.1 3.2-.4 4.1-1.3z" />\n<path id="cncfBlack.svg_XMLID_575_" d="M361.8 71l-1.6-3.8h-7.3l-1.6 3.8h-4.1l7.5-17.4h3.8L366 71h-4.2zm-5.2-12.2l-2.2 5.1h4.4l-2.2-5.1z" />\n<path id="cncfBlack.svg_XMLID_573_" d="M374.1 57v14h-3.9V57h-4.9v-3.4H379V57h-4.9z" />\n<path id="cncfBlack.svg_XMLID_571_" d="M381.9 53.6h3.9V71h-3.9V53.6z" />\n<path id="cncfBlack.svg_XMLID_568_" d="M404.7 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.8 4.7-2.6 6.4zm-1.3-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_566_" d="M422.8 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_397_" d="M14.4 50.4H4.8v22.3h22.3v-9.6H14.4z" />\n<path id="cncfBlack.svg_XMLID_395_" d="M62.2 50.4v12.7H49.5v9.6h22.3V50.4h-9.7z" />\n<path id="cncfBlack.svg_XMLID_394_" d="M4.8 28.1h9.7l-.1-.1V15.3h12.7v.1-9.7H4.8z" />\n<path id="cncfBlack.svg_XMLID_393_" d="M49.5 5.7v9.6h12.7v12.8h9.6V5.7z" />\n<path id="cncfBlack.svg_XMLID_391_" d="M48.3 28.1L35.5 15.3h14V5.7H27.1v9.7l12.7 12.7z" class="st0" />\n<path id="cncfBlack.svg_XMLID_390_" d="M36.8 50.4h-8.5l10.6 10.5 2.2 2.2h-14v9.6h22.4v-9.6l-6.4-6.4z" class="st0" />\n<path id="cncfBlack.svg_XMLID_389_" d="M62.2 28.1V42L60 39.8 49.5 29.2v8.5l6.3 6.3 6.3 6.4h9.7V28.1z" class="st0" />\n<path id="cncfBlack.svg_XMLID_388_" d="M27.1 40.7L14.5 28.1H4.8v22.3h9.6v-14l12.7 12.8z" class="st0" />\n</symbol>'}),p=(e().add(L),L),o=l(33937),w=function(){return s.createElement("svg",{width:"256",height:"48",viewBox:v.viewBox},s.createElement("use",{xlinkHref:"#".concat(v.id)}))},z=function(){return s.createElement("svg",{width:"16",height:"16",viewBox:a.viewBox},s.createElement("use",{xlinkHref:"#".concat(a.id)}))},I=function(){return s.createElement("svg",{width:"16",height:"16",viewBox:M.viewBox},s.createElement("use",{xlinkHref:"#".concat(M.id)}))},r=function(c){var h=c.width,l=void 0===h?"152":h,t=c.height,i=void 0===t?"29":t,n=c.svg,e=void 0===n?{}:n;return function(){return s.createElement("svg",{width:l,height:i,viewBox:e.viewBox},s.createElement("use",{xlinkHref:"#".concat(e.id)}))}},D={light:r({svg:p}),dark:r({svg:g}),unspecified:r({svg:f})},X=function(){var c=(0,o.R)("theme"),h=D[c];return s.createElement(h,null)}}}]); \ No newline at end of file
+!function(){try{var c="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},h=(new Error).stack;h&&(c._sentryDebugIds=c._sentryDebugIds||{},c._sentryDebugIds[h]="f4dbd4dd-1690-4424-8839-2be47e707158",c._sentryDebugIdIdentifier="sentry-dbid-f4dbd4dd-1690-4424-8839-2be47e707158")}catch(c){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[502],{26502:function(c,h,l){l.d(h,{lR:function(){return X},bY:function(){return I},av:function(){return z},pR:function(){return w}});var s=l(67294),t=l(87854),i=l.n(t),n=l(95348),e=l.n(n),d=new(i())({id:"netdata.svg",use:"netdata.svg-usage",viewBox:"0 0 272 51",content:'<symbol viewBox="0 0 272 51" xmlns="http://www.w3.org/2000/svg" id="netdata.svg">\n<path fill-rule="evenodd" clip-rule="evenodd" d="M31.3716 46.75H21.0836L0 6.375H29.9276C41.5648 6.39622 50.9938 15.7525 51 27.2947C50.9813 38.051 42.2025 46.75 31.3716 46.75Z" fill="#00AB44" />\n<path d="M78.625 12.75H82.5264L94.8447 32.5059V12.75H97.9824V37.1377H94.2803L81.7793 17.3984V37.1377H78.625V12.75Z" fill="#00AB44" />\n<path d="M110.295 12.75H128.075V15.7383H113.516V23.1426H126.979V25.9648H113.516V34.2324H128.324V37.1377H110.295V12.75Z" fill="#00AB44" />\n<path d="M157.203 12.75V15.6553H148.985V37.1377H145.632V15.6553H137.414V12.75H157.203Z" fill="#00AB44" />\n<path fill-rule="evenodd" clip-rule="evenodd" d="M177.052 12.75H167.174V37.1377H177.019C181.202 37.1377 184.152 35.2894 185.867 31.5928C186.841 29.501 187.328 27.1602 187.328 24.5703C187.328 21.2168 186.504 18.4665 184.854 16.3193C183.006 13.9398 180.405 12.75 177.052 12.75ZM179.144 33.9668C178.424 34.1992 177.506 34.3154 176.388 34.3154H170.494V15.5889H176.354C179.022 15.5889 180.956 16.4245 182.157 18.0957C183.358 19.7669 183.958 22.1133 183.958 25.1348C183.958 25.9206 183.875 26.7728 183.709 27.6914C183.421 29.2298 182.951 30.4915 182.298 31.4766C181.479 32.7051 180.427 33.5352 179.144 33.9668Z" fill="#00AB44" />\n<path fill-rule="evenodd" clip-rule="evenodd" d="M209.203 12.75H205.468L196.287 37.1377H199.674L202.313 29.833H211.959L214.433 37.1377H218.052L209.203 12.75ZM207.194 16.3691L210.896 27.1436H203.26L207.194 16.3691Z" fill="#00AB44" />\n<path d="M243.098 12.75V15.6553H234.88V37.1377H231.526V15.6553H223.309V12.75H243.098Z" fill="#00AB44" />\n<path fill-rule="evenodd" clip-rule="evenodd" d="M261.236 12.75H257.501L248.32 37.1377H251.707L254.347 29.833H263.992L266.466 37.1377H270.085L261.236 12.75ZM259.228 16.3691L262.93 27.1436H255.293L259.228 16.3691Z" fill="#00AB44" />\n</symbol>'}),v=(e().add(d),d),C=new(i())({id:"google.svg",use:"google.svg-usage",viewBox:"0 0 48 48",content:'<symbol xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" aria-hidden="true" id="google.svg">\n <defs>\n <path id="google.svg_a" d="M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z" />\n </defs>\n <clipPath id="google.svg_b">\n <use xlink:href="#google.svg_a" overflow="visible" />\n </clipPath>\n <path clip-path="url(#google.svg_b)" fill="#FBBC05" d="M0 37V11l17 13z" />\n <path clip-path="url(#google.svg_b)" fill="#EA4335" d="M0 11l17 13 7-6.1L48 14V0H0z" />\n <path clip-path="url(#google.svg_b)" fill="#34A853" d="M0 37l30-23 7.9 1L48 0v48H0z" />\n <path clip-path="url(#google.svg_b)" fill="#4285F4" d="M48 48L17 24l-4-3 35-10z" />\n</symbol>'}),a=(e().add(C),C),_=new(i())({id:"github.svg",use:"github.svg-usage",viewBox:"0 0 16 16",content:'<symbol class="icon" viewBox="0 0 16 16" aria-hidden="true" id="github.svg">\n <path fillRule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z" />\n</symbol>'}),M=(e().add(_),_),f=new(i())({id:"cncfColor.svg",use:"cncfColor.svg-usage",viewBox:"0 0 400 77",content:'<symbol viewBox="0 0 400 77" fill="none" xmlns="http://www.w3.org/2000/svg" id="cncfColor.svg">\n<path d="M98.9 33.4C100.4 33.4 101.8 33.1 103.2 32.5C104.5 31.9 105.7 30.9 106.6 29.7L110.7 33.9C107.5 37.5 103.8 39.3 99.4 39.3C97.4 39.4 95.5 39.1 93.6 38.3C91.8 37.6 90.1 36.5 88.6 35.2C87.2 33.9 86.1 32.2 85.4 30.5C84.7 28.7 84.3 26.8 84.4 24.9C84.3 23 84.7 21 85.4 19.2C86.1 17.4 87.2 15.8 88.6 14.4C90.1 13 91.9 11.9 93.8 11.2C95.7 10.5 97.8 10.2 99.9 10.3C102 10.4 104 10.9 105.9 11.8C107.8 12.7 109.4 14 110.8 15.6L106.9 20.1C106 18.9 104.9 18 103.6 17.4C102.3 16.8 100.9 16.4 99.4 16.4C97.2 16.4 95 17.2 93.3 18.7C92.4 19.5 91.8 20.5 91.3 21.6C90.9 22.7 90.7 23.9 90.7 25C90.6 26.2 90.8 27.3 91.2 28.4C91.6 29.5 92.2 30.5 93.1 31.3C94.7 32.6 96.8 33.4 98.9 33.4ZM115.5 38.9V10.7H121.8V33.3H133.9V38.9H115.5ZM161.5 35C158.6 37.7 154.9 39.2 150.9 39.2C146.9 39.2 143.2 37.7 140.3 35C138.9 33.7 137.8 32.1 137.1 30.3C136.4 28.5 136 26.6 136 24.7C135.9 22.8 136.3 20.8 137 19.1C137.7 17.3 138.8 15.7 140.2 14.4C143.1 11.7 146.8 10.2 150.8 10.2C154.8 10.2 158.5 11.7 161.4 14.4C162.8 15.7 163.9 17.3 164.6 19.1C165.3 20.9 165.7 22.8 165.6 24.7C165.7 26.6 165.3 28.6 164.6 30.3C164 32.1 162.9 33.7 161.5 35ZM159.3 24.7C159.3 22.3 158.4 20 156.8 18.2C156 17.4 155.1 16.7 154.1 16.2C153.1 15.7 151.9 15.5 150.8 15.5C149.7 15.5 148.6 15.7 147.5 16.2C146.5 16.7 145.5 17.3 144.8 18.2C143.2 20 142.3 22.3 142.3 24.7C142.3 27.1 143.2 29.4 144.8 31.2C145.6 32 146.5 32.7 147.5 33.2C148.5 33.7 149.7 33.9 150.8 33.9C151.9 33.9 153 33.7 154.1 33.2C155.1 32.7 156.1 32.1 156.8 31.2C157.6 30.3 158.3 29.3 158.7 28.2C159.2 27 159.4 25.9 159.3 24.7ZM178.6 31.7C179.1 32.4 179.8 32.9 180.5 33.2C181.2 33.5 182.1 33.7 182.9 33.7C183.7 33.7 184.5 33.6 185.2 33.2C185.9 32.9 186.6 32.3 187 31.7C188.1 30.1 188.6 28.3 188.5 26.4V10.8H194.8V26.6C194.8 30.7 193.7 33.8 191.4 36C190.2 37.1 188.9 38 187.4 38.5C185.9 39.1 184.3 39.3 182.7 39.3C181.1 39.3 179.5 39.1 178 38.5C176.5 37.9 175.1 37.1 174 36C171.7 33.8 170.6 30.7 170.6 26.6V10.8H176.9V26.4C176.9 28.3 177.5 30.2 178.6 31.7ZM223.1 14.4C225.8 16.9 227.2 20.3 227.2 24.7C227.2 29.1 225.9 32.6 223.3 35.2C220.7 37.8 216.6 39 211.3 39H201.5V10.7H211.5C216.5 10.7 220.4 11.9 223.1 14.4ZM218.5 31.2C220 29.8 220.8 27.6 220.8 24.8C220.8 22 220 19.9 218.5 18.4C217 16.9 214.6 16.1 211.4 16.1H207.9V33.3H211.9C214.3 33.5 216.7 32.8 218.5 31.2ZM263.1 10.7H269.4V39H263.1L249.6 21.3V39H243.3V10.7H249.2L263.1 28.9V10.7ZM296.5 38.9L293.8 32.8H281.9L279.2 38.9H272.4L284.6 10.6H290.7L303 38.9H296.5ZM288 19.1L284.5 27.3H291.5L288 19.1ZM316.5 16.2V39H310.2V16.2H302.2V10.8H324.6V16.2C324.6 16.2 316.5 16.2 316.5 16.2ZM329 10.7H335.3V39H329C329 38.9 329 10.7 329 10.7ZM352.8 28.7L360 10.7H366.9L355.6 39H350.3L339 10.7H345.9L352.8 28.7ZM390.5 10.7V16.3H376.4V22.1H389.1V27.5H376.4V33.4H391V39H370.2V10.8L390.5 10.7ZM91.6 63C92.4 63 93.2 62.8 94 62.5C94.7 62.1 95.4 61.6 95.9 60.9L98.2 63.3C97.4 64.2 96.5 65 95.3 65.5C94.2 66 93 66.3 91.8 66.3C90.7 66.3 89.6 66.2 88.6 65.8C87.6 65.4 86.6 64.8 85.8 64C85 63.3 84.4 62.4 84 61.4C83.6 60.4 83.4 59.3 83.4 58.2C83.4 57.1 83.6 56 84 55C84.4 54 85 53.1 85.8 52.3C86.6 51.5 87.5 50.9 88.5 50.5C89.5 50.1 90.6 49.9 91.7 49.9C92.9 49.9 94.2 50.1 95.3 50.6C96.4 51.1 97.4 51.9 98.3 52.8L96.1 55.3C95.6 54.6 95 54.1 94.3 53.7C93.6 53.3 92.8 53.2 91.9 53.2C90.6 53.2 89.4 53.7 88.5 54.5C88 54.9 87.6 55.5 87.4 56.1C87.2 56.7 87 57.4 87.1 58C87.1 58.6 87.2 59.3 87.4 59.9C87.6 60.5 88 61.1 88.4 61.5C88.8 61.9 89.3 62.3 89.9 62.5C90.5 62.7 91 63 91.6 63ZM113.9 63.9C112.3 65.4 110.2 66.3 108 66.3C106.9 66.3 105.8 66.1 104.8 65.7C103.8 65.3 102.9 64.7 102.1 63.9C100.6 62.4 99.7 60.3 99.7 58.1C99.7 55.9 100.6 53.8 102.1 52.3C103.7 50.8 105.8 49.9 108 49.9C109.1 49.9 110.2 50.1 111.2 50.5C112.2 50.9 113.1 51.5 113.9 52.3C115.4 53.8 116.3 55.9 116.3 58.1C116.3 60.3 115.4 62.4 113.9 63.9ZM112.8 58.1C112.8 56.8 112.4 55.5 111.5 54.5C111.1 54 110.6 53.7 110 53.4C109.4 53.1 108.8 53 108.2 53C107.6 53 106.9 53.1 106.4 53.4C105.8 53.7 105.3 54.1 104.9 54.6C104.4 55.1 104.1 55.6 103.9 56.3C103.7 56.9 103.6 57.6 103.6 58.2C103.6 59.5 104.1 60.8 104.9 61.8C105.3 62.3 105.8 62.6 106.4 62.9C107 63.2 107.6 63.3 108.2 63.3C108.8 63.3 109.5 63.2 110 62.9C110.6 62.6 111.1 62.2 111.5 61.7C112.3 60.8 112.8 59.5 112.8 58.1ZM133.5 56.1L129.2 64.8H127.1L122.8 56.1V66.1H119.3V50.3H124.1L128.2 59L132.3 50.3H137.1V66.2H133.6L133.5 56.1ZM151.9 51.8C152.5 52.3 153 53 153.3 53.8C153.6 54.6 153.7 55.4 153.6 56.2C153.6 58.2 153 59.6 151.9 60.5C150.8 61.5 149 61.8 146.7 61.8H144.6V66.2H141V50.3H146.6C149 50.3 150.7 50.8 151.9 51.8ZM149.3 58C149.8 57.4 150 56.7 150 55.9C150 55.5 150 55.2 149.8 54.8C149.6 54.5 149.4 54.2 149.1 54C148.3 53.6 147.4 53.4 146.5 53.4H144.5V58.7H146.9C147.3 58.7 147.8 58.7 148.2 58.6C148.6 58.4 149 58.2 149.3 58ZM160.6 62C160.9 62.4 161.2 62.6 161.7 62.8C162.1 63 162.6 63.1 163 63.1C163.5 63.1 163.9 63 164.3 62.8C164.7 62.6 165.1 62.3 165.4 62C166 61.1 166.3 60 166.3 59V50.2H169.8V59C169.9 60 169.7 60.9 169.4 61.9C169.1 62.8 168.6 63.7 167.9 64.4C166.6 65.6 164.8 66.2 163 66.2C161.2 66.2 159.5 65.5 158.2 64.3C157.5 63.6 157 62.7 156.7 61.8C156.4 60.9 156.2 59.9 156.3 58.9V50.1H159.8V58.9C159.6 60 159.9 61.1 160.6 62ZM180.1 53.4V66.1H176.6V53.4H172.1V50.4H184.7V53.4C184.6 53.4 180.1 53.4 180.1 53.4ZM187.2 50.3H190.7V66.2H187.2V50.3ZM205.7 50.3H209.2V66.2H205.7L198.2 56.3V66.2H194.7V50.3H198L205.8 60.5L205.7 50.3ZM223.5 58.1H227V63.7C226.2 64.6 225.1 65.3 224 65.7C222.9 66.2 221.6 66.4 220.4 66.3C218.2 66.3 216.1 65.5 214.5 64C213.7 63.3 213.1 62.4 212.7 61.4C212.3 60.4 212.1 59.3 212.1 58.2C212.1 57.1 212.3 56 212.7 55C213.1 54 213.7 53.1 214.5 52.3C215.3 51.5 216.2 50.9 217.2 50.5C218.2 50.1 219.3 49.9 220.4 49.9C222.6 49.9 224.7 50.7 226.3 52.2L224.5 54.9C224 54.3 223.3 53.9 222.5 53.7C221.9 53.5 221.2 53.3 220.6 53.3C219.3 53.3 218.1 53.8 217.2 54.6C216.7 55.1 216.3 55.6 216.1 56.3C215.9 57 215.7 57.6 215.8 58.3C215.8 59.6 216.2 60.9 217.1 61.9C217.5 62.3 218 62.7 218.5 62.9C219 63.1 219.6 63.2 220.2 63.2C221.3 63.3 222.3 63 223.2 62.5V58H223.5V58.1ZM247 50.3V53.4H239.7V56.8H246.6V60H239.7V66.2H236.2V50.3C236.1 50.3 247 50.3 247 50.3ZM263.4 63.9C261.8 65.4 259.7 66.3 257.5 66.3C256.4 66.3 255.3 66.1 254.3 65.7C253.3 65.3 252.4 64.7 251.6 63.9C250.1 62.4 249.2 60.3 249.2 58.1C249.2 55.9 250.1 53.8 251.6 52.3C253.2 50.8 255.3 49.9 257.5 49.9C258.6 49.9 259.7 50.1 260.7 50.5C261.7 50.9 262.6 51.5 263.4 52.3C264.9 53.8 265.8 55.9 265.8 58.1C265.8 60.3 264.9 62.4 263.4 63.9ZM262.1 58.1C262.1 56.8 261.7 55.5 260.8 54.5C260.4 54 259.9 53.7 259.3 53.4C258.7 53.1 258.1 53 257.5 53C256.9 53 256.2 53.1 255.7 53.4C255.1 53.7 254.6 54.1 254.2 54.6C253.7 55.1 253.4 55.6 253.2 56.3C253 57 252.9 57.6 252.9 58.2C252.9 59.5 253.4 60.8 254.2 61.8C254.6 62.3 255.1 62.6 255.7 62.9C256.3 63.2 256.9 63.3 257.5 63.3C258.1 63.3 258.8 63.2 259.3 62.9C259.9 62.6 260.4 62.2 260.8 61.7C261.3 61.2 261.6 60.7 261.8 60C262 59.3 262.2 58.8 262.1 58.1ZM273 62C273.3 62.4 273.6 62.6 274.1 62.8C274.5 63 275 63.1 275.4 63.1C275.8 63.1 276.3 63 276.7 62.8C277.1 62.6 277.5 62.3 277.8 62C278.4 61.1 278.7 60 278.7 59V50.2H282.2V59C282.3 60 282.1 60.9 281.8 61.9C281.5 62.8 281 63.7 280.3 64.4C279 65.6 277.2 66.2 275.4 66.2C273.6 66.2 271.9 65.5 270.6 64.3C269.9 63.6 269.4 62.7 269.1 61.8C268.8 60.9 268.6 59.9 268.7 58.9V50.1H272.2V58.9C272 60 272.3 61.2 273 62ZM296.9 50.3H300.4V66.2H296.9L289.4 56.3V66.2H285.9V50.3H289.2L297 60.5L296.9 50.3ZM316.4 52.4C317.2 53.1 317.8 54.1 318.2 55.1C318.6 56.1 318.8 57.2 318.7 58.2C318.8 59.3 318.6 60.3 318.2 61.3C317.8 62.3 317.2 63.2 316.5 64C315.1 65.4 312.8 66.2 309.7 66.2H304.3V50.3H309.9C312.8 50.3 315 51 316.4 52.4ZM313.8 61.9C314.2 61.4 314.6 60.9 314.8 60.3C315 59.7 315.1 59 315.1 58.4C315.1 57.7 315 57.1 314.8 56.5C314.6 55.9 314.2 55.3 313.8 54.8C313.2 54.3 312.6 54 311.9 53.8C311.2 53.6 310.5 53.5 309.8 53.6H307.8V63.2H310.1C311.4 63.1 312.8 62.7 313.8 61.9ZM332.6 66.1L331.2 62.7H324.5L323.1 66.1H319.3L326.2 50.2H329.6L336.5 66.1H332.6ZM327.8 55L325.8 59.6H329.8L327.8 55ZM343.8 53.4V66.1H340.3V53.4H335.7V50.4H348.3V53.4H343.8ZM350.8 50.3H354.3V66.2H350.8V50.3ZM371.6 63.9C370 65.4 367.9 66.3 365.7 66.3C364.6 66.3 363.5 66.1 362.5 65.7C361.5 65.3 360.6 64.7 359.8 63.9C358.3 62.4 357.4 60.3 357.4 58.1C357.4 55.9 358.3 53.8 359.8 52.3C361.4 50.8 363.5 49.9 365.7 49.9C366.8 49.9 367.9 50.1 368.9 50.5C369.9 50.9 370.8 51.5 371.6 52.3C373.1 53.8 374 55.9 374 58.1C374 60.3 373.1 62.4 371.6 63.9ZM370.5 58.1C370.5 56.8 370 55.5 369.2 54.5C368.8 54 368.3 53.7 367.7 53.4C367.1 53.1 366.5 53 365.9 53C365.3 53 364.6 53.1 364.1 53.4C363.5 53.7 363 54.1 362.6 54.6C362.1 55.1 361.8 55.6 361.6 56.3C361.4 57 361.3 57.6 361.3 58.2C361.3 59.5 361.8 60.8 362.6 61.8C363 62.3 363.5 62.6 364.1 62.9C364.7 63.2 365.3 63.3 365.9 63.3C366.5 63.3 367.2 63.2 367.7 62.9C368.3 62.6 368.8 62.2 369.2 61.7C370 60.8 370.5 59.5 370.5 58.1ZM388.1 50.3H391.6V66.2H388.1L380.6 56.3V66.2H377V50.3H380.3L388.1 60.5C388.2 60.5 388.1 50.3 388.1 50.3Z" fill="black" />\n<path d="M16.2 47.3H7.5V67.6H27.8V58.9H16.2V47.3Z" fill="#0086FF" />\n<path d="M59.8 47.4V58.9H48.2V67.6H68.5V47.3L59.8 47.4Z" fill="#0086FF" />\n<path d="M7.5 27.1H16.3L16.2 27V15.5H27.8V6.8H7.5V27.1Z" fill="#0086FF" />\n<path d="M48.2 6.8V15.5H59.8V27.1H68.5V6.8C68.4 6.8 48.2 6.8 48.2 6.8Z" fill="#0086FF" />\n<path d="M47 27.1L35.4 15.5H48.1V6.8H27.8V15.5L39.4 27.1H47Z" fill="#93EAFF" />\n<path d="M36.6 47.3H29L38.6 56.9L40.5 58.9H27.8V67.6H48.2V58.8L42.4 53.1L36.6 47.3Z" fill="#93EAFF" />\n<path d="M59.8 27.1V39.7L48.2 28.1V35.8L59.7 47.3L68.5 47.3V27.1H59.8Z" fill="#93EAFF" />\n<path d="M27.8 38.6L16.3 27.1H7.5V47.3H16.2V34.7L27.8 46.3V38.6Z" fill="#93EAFF" />\n</symbol>'}),V=(e().add(f),f),H=new(i())({id:"cncfWhite.svg",use:"cncfWhite.svg-usage",viewBox:"-1.81 -3.06 419.38 80.13",content:'<symbol xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-1.81 -3.06 419.38 80.13" id="cncfWhite.svg">\n<path fill="white" id="cncfWhite.svg_XMLID_643_" d="M102.2 33c3.3 0 5.9-1.3 8-3.9l4.3 4.4c-3.4 3.8-7.3 5.7-11.9 5.7s-8.3-1.4-11.3-4.3-4.4-6.5-4.4-10.9 1.5-8.1 4.5-11 6.7-4.4 11.1-4.4c4.9 0 9 1.9 12.2 5.6l-4.1 4.7c-2.1-2.6-4.7-3.9-7.8-3.9-2.5 0-4.6.8-6.4 2.4s-2.7 3.8-2.7 6.6.8 5 2.5 6.7c1.6 1.4 3.6 2.3 6 2.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_641_" d="M119.7 38.8V9.1h6.6v23.8H139v5.9h-19.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_638_" d="M168 34.7c-3 2.9-6.7 4.4-11.1 4.4s-8.1-1.5-11.1-4.4-4.5-6.6-4.5-10.9c0-4.4 1.5-8 4.5-10.9s6.7-4.4 11.1-4.4S165 10 168 12.9s4.5 6.6 4.5 10.9c0 4.4-1.5 8-4.5 10.9zm-2.3-10.9c0-2.6-.9-4.9-2.6-6.8s-3.8-2.8-6.3-2.8-4.6.9-6.3 2.8c-1.7 1.9-2.6 4.1-2.6 6.8 0 2.6.9 4.9 2.6 6.8s3.8 2.8 6.3 2.8 4.6-.9 6.3-2.8c1.8-1.9 2.6-4.1 2.6-6.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_636_" d="M186 31.2c1.1 1.4 2.6 2.1 4.5 2.1s3.4-.7 4.4-2.1c1.1-1.4 1.6-3.3 1.6-5.6V9.2h6.6v16.6c0 4.3-1.2 7.6-3.6 9.9s-5.4 3.5-9.1 3.5-6.8-1.2-9.2-3.5c-2.4-2.3-3.6-5.6-3.6-9.9V9.2h6.6v16.4c.1 2.3.7 4.2 1.8 5.6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_633_" d="M232.7 13c2.8 2.6 4.3 6.2 4.3 10.8s-1.4 8.3-4.1 11c-2.8 2.7-7 4-12.6 4H210V9.1h10.5c5.3 0 9.4 1.3 12.2 3.9zm-4.8 17.7c1.6-1.5 2.4-3.8 2.4-6.7 0-2.9-.8-5.2-2.4-6.7-1.6-1.6-4.1-2.4-7.5-2.4h-3.7V33h4.2c3 0 5.3-.8 7-2.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_631_" d="M274.7 9.1h6.6v29.7h-6.6l-14.2-18.6v18.6h-6.6V9.1h6.2l14.6 19.1V9.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_628_" d="M309.8 38.8l-2.8-6.4h-12.5l-2.8 6.4h-7.1l12.8-29.7h6.4l12.8 29.7h-6.8zM300.9 18l-3.7 8.6h7.4l-3.7-8.6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_626_" d="M330.8 14.9v24h-6.6v-24h-8.4V9.2h23.5v5.7h-8.5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_624_" d="M344 9.1h6.6v29.7H344V9.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_622_" d="M368.9 28l7.6-18.9h7.2l-11.9 29.7h-5.6L354.3 9.1h7.2l7.4 18.9z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_620_" d="M408.6 9.1V15h-14.8v6.1h13.3v5.7h-13.3V33h15.3v5.9h-21.9V9.2h21.4v-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_618_" d="M94.6 64.1c1.8 0 3.3-.7 4.5-2.2l2.4 2.5c-1.9 2.1-4.1 3.2-6.7 3.2s-4.7-.8-6.3-2.4c-1.7-1.6-2.5-3.7-2.5-6.1 0-2.5.8-4.5 2.5-6.2s3.8-2.5 6.2-2.5c2.7 0 5 1 6.9 3.1l-2.3 2.6c-1.2-1.5-2.6-2.2-4.4-2.2-1.4 0-2.6.5-3.6 1.4s-1.5 2.1-1.5 3.7.5 2.8 1.4 3.7c.9 1 2.1 1.4 3.4 1.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_615_" d="M118 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_613_" d="M138.6 56.9l-4.5 9.1h-2.2l-4.5-9.1v10.5h-3.7V50.7h5l4.3 9.1 4.3-9.1h5v16.7h-3.7V56.9z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_610_" d="M157.9 52.3c1.2 1 1.8 2.5 1.8 4.6s-.6 3.6-1.8 4.5c-1.2 1-3 1.4-5.5 1.4h-2.2v4.6h-3.7V50.7h5.9c2.5.1 4.3.6 5.5 1.6zm-2.7 6.5c.4-.5.7-1.2.7-2.2s-.3-1.6-.9-2-1.5-.6-2.7-.6h-2.1v5.6h2.5c1.2 0 2-.3 2.5-.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_608_" d="M167 63.1c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V60c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2-2-3.2-2-5.6v-9.3h3.7v9.2c0 1.5.3 2.6.9 3.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_606_" d="M187.5 54v13.4h-3.7V54h-4.7v-3.2h13.2V54h-4.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_604_" d="M195 50.8h3.7v16.7H195V50.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_602_" d="M214.4 50.8h3.7v16.7h-3.7l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7V50.8h-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_600_" d="M233.1 59h3.7v5.9c-1.7 1.8-3.9 2.8-6.9 2.8-2.4 0-4.5-.8-6.2-2.4s-2.5-3.7-2.5-6.1c0-2.5.8-4.5 2.5-6.2s3.7-2.5 6.1-2.5 4.5.8 6.2 2.4l-1.9 2.8c-.7-.7-1.4-1.1-2.1-1.3-.6-.2-1.3-.4-2-.4-1.4 0-2.6.5-3.6 1.4-1 1-1.5 2.2-1.5 3.8 0 1.6.5 2.8 1.4 3.8.9.9 2 1.4 3.3 1.4s2.4-.2 3.2-.7V59h.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_598_" d="M257.8 50.8v3.3h-7.7v3.6h7.3V61h-7.3v6.5h-3.7V50.8h11.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_595_" d="M275 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.3-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c1-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_593_" d="M285.1 63.1c.6.8 1.5 1.2 2.5 1.2s1.9-.4 2.5-1.2c.6-.8.9-1.8.9-3.2v-9.2h3.7V60c0 2.4-.7 4.3-2 5.6-1.3 1.3-3 1.9-5.1 1.9s-3.8-.7-5.1-2c-1.3-1.3-2-3.2-2-5.6v-9.3h3.7v9.2c-.1 1.5.3 2.6.9 3.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_591_" d="M310.2 50.8h3.7v16.7h-3.7l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7V50.8h-.1z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_588_" d="M330.7 53c1.6 1.5 2.4 3.5 2.4 6.1s-.8 4.6-2.3 6.1-3.9 2.3-7.1 2.3H318V50.8h5.9c3 0 5.3.7 6.8 2.2zm-2.7 9.9c.9-.9 1.4-2.1 1.4-3.7s-.5-2.9-1.4-3.8-2.3-1.3-4.2-1.3h-2.1v10.1h2.4c1.7-.1 3-.5 3.9-1.3z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_585_" d="M347.7 67.4l-1.5-3.6h-7l-1.5 3.6h-4l7.2-16.7h3.6l7.2 16.7h-4zm-5-11.7l-2.1 4.8h4.2l-2.1-4.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_583_" d="M359.5 54v13.4h-3.7V54H351v-3.2h13.2V54h-4.7z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_581_" d="M366.9 50.8h3.7v16.7h-3.7V50.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_578_" d="M388.7 65.1c-1.7 1.6-3.8 2.5-6.2 2.5-2.5 0-4.5-.8-6.2-2.5-1.7-1.6-2.5-3.7-2.5-6.1s.8-4.5 2.5-6.1 3.8-2.5 6.2-2.5c2.5 0 4.5.8 6.2 2.5 1.7 1.6 2.5 3.7 2.5 6.1s-.8 4.5-2.5 6.1zm-1.2-6.1c0-1.5-.5-2.8-1.4-3.8-1-1-2.1-1.6-3.5-1.6s-2.6.5-3.5 1.6c-1 1-1.4 2.3-1.4 3.8s.5 2.7 1.4 3.8c1 1 2.1 1.6 3.5 1.6s2.6-.5 3.5-1.6c.9-1 1.4-2.3 1.4-3.8z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_576_" d="M406 50.8h3.7v16.7H406l-7.9-10.4v10.4h-3.7V50.8h3.5l8.2 10.7-.1-10.7z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_397_" d="M15.5 47.7H6.4v21.4h21.3v-9.2H15.5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_395_" d="M61.3 47.8v12.1H49.1v-.1 9.3h21.3V47.7h-9.2z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_394_" d="M6.4 26.4h9.2l-.1-.1V14.2h12.2V5H6.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_393_" d="M49.1 5v9.2h12.2v12.2h9.1V5z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_391_" d="M47.9 26.4L35.7 14.2h13.4V5H27.7v9.2l12.2 12.2z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_390_" d="M36.9 47.7h-8L39 57.8l2 2.1H27.7v9.2h21.4v-9.3l-6.1-6z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_389_" d="M61.3 26.4v13.3l-2.1-2.1-10.1-10.1v8.1l6 6 6.1 6.1h9.2V26.4z" class="st0" />\n<path fill="white" id="cncfWhite.svg_XMLID_388_" d="M27.7 38.5L15.6 26.4H6.4v21.3h9.1V34.4l12.2 12.2z" class="st0" />\n</symbol>'}),g=(e().add(H),H),L=new(i())({id:"cncfBlack.svg",use:"cncfBlack.svg-usage",viewBox:"-3.69 -2.94 438.62 83.87",content:'<symbol xmlns="http://www.w3.org/2000/svg" role="img" viewBox="-3.69 -2.94 438.62 83.87" id="cncfBlack.svg">\n<path id="cncfBlack.svg_XMLID_633_" d="M105 35c3.4 0 6.2-1.3 8.4-4l4.4 4.6c-3.5 4-7.7 6-12.5 6s-8.7-1.5-11.8-4.5c-3.1-3-4.6-6.8-4.6-11.4 0-4.6 1.6-8.5 4.7-11.5 3.2-3.1 7-4.6 11.6-4.6 5.1 0 9.4 1.9 12.8 5.8l-4.3 4.9c-2.2-2.7-4.9-4.1-8.2-4.1-2.6 0-4.8.9-6.7 2.6-1.9 1.7-2.8 4-2.8 6.9s.9 5.2 2.6 7c1.8 1.4 3.9 2.3 6.4 2.3z" />\n<path id="cncfBlack.svg_XMLID_631_" d="M123.3 41.1V10h6.9v24.9h13.2v6.2h-20.1z" />\n<path id="cncfBlack.svg_XMLID_628_" d="M173.9 36.8c-3.1 3.1-7 4.6-11.6 4.6s-8.5-1.5-11.6-4.6c-3.1-3.1-4.7-6.9-4.7-11.4 0-4.6 1.6-8.4 4.7-11.4 3.1-3.1 7-4.6 11.6-4.6s8.5 1.5 11.6 4.6c3.1 3.1 4.7 6.9 4.7 11.4s-1.6 8.3-4.7 11.4zm-2.4-11.4c0-2.8-.9-5.1-2.7-7.1-1.8-2-4-2.9-6.6-2.9-2.6 0-4.8 1-6.6 2.9-1.8 2-2.7 4.3-2.7 7.1s.9 5.1 2.7 7.1c1.8 1.9 4 2.9 6.6 2.9 2.6 0 4.8-1 6.6-2.9 1.8-2 2.7-4.3 2.7-7.1z" />\n<path id="cncfBlack.svg_XMLID_626_" d="M192.7 33.1c1.2 1.4 2.7 2.2 4.7 2.2s3.5-.7 4.6-2.2c1.1-1.4 1.7-3.4 1.7-5.9V10h6.9v17.4c0 4.5-1.2 8-3.7 10.4-2.5 2.4-5.7 3.6-9.6 3.6-3.9 0-7.1-1.2-9.6-3.6-2.5-2.4-3.8-5.9-3.8-10.4V10h6.9v17.2c.1 2.5.7 4.4 1.9 5.9z" />\n<path id="cncfBlack.svg_XMLID_623_" d="M241.6 14.1c3 2.7 4.4 6.5 4.4 11.3s-1.4 8.7-4.3 11.5c-2.9 2.8-7.3 4.2-13.2 4.2h-10.6V10h11c5.4 0 9.7 1.4 12.7 4.1zm-5.1 18.5c1.7-1.6 2.6-3.9 2.6-7s-.9-5.4-2.6-7c-1.7-1.6-4.3-2.5-7.8-2.5h-3.9V35h4.4c3.1 0 5.6-.8 7.3-2.4z" />\n<path id="cncfBlack.svg_XMLID_621_" d="M285.5 10h6.9v31.1h-6.9l-14.8-19.5v19.5h-6.9V10h6.5l15.2 20V10z" />\n<path id="cncfBlack.svg_XMLID_618_" d="M322.2 41.1l-2.9-6.7h-13l-2.9 6.7H296L309.5 10h6.7l13.4 31.1h-7.4zm-9.4-21.8l-3.9 9h7.8l-3.9-9z" />\n<path id="cncfBlack.svg_XMLID_616_" d="M344.1 16v25.1h-6.9V16h-8.8v-6h24.5v6h-8.8z" />\n<path id="cncfBlack.svg_XMLID_614_" d="M358 10h6.9v31.1H358V10z" />\n<path id="cncfBlack.svg_XMLID_612_" d="M384 29.8l7.9-19.8h7.5l-12.5 31.1H381L368.6 10h7.5l7.9 19.8z" />\n<path id="cncfBlack.svg_XMLID_610_" d="M425.5 10v6.2H410v6.4h14v5.9h-13.9V35h16v6.1h-22.9V10h22.3z" />\n<path id="cncfBlack.svg_XMLID_608_" d="M97.1 67.6c1.9 0 3.5-.8 4.7-2.3l2.5 2.6c-2 2.2-4.3 3.3-7 3.3s-4.9-.8-6.6-2.5C88.9 67 88 64.8 88 62.2s.9-4.7 2.7-6.5 3.9-2.6 6.5-2.6c2.9 0 5.2 1.1 7.2 3.3l-2.4 2.7c-1.2-1.5-2.8-2.3-4.6-2.3-1.5 0-2.7.5-3.8 1.4-1 1-1.6 2.2-1.6 3.9s.5 2.9 1.5 3.9c1 1.1 2.2 1.6 3.6 1.6z" />\n<path id="cncfBlack.svg_XMLID_605_" d="M121.6 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.8 4.7-2.6 6.4zm-1.3-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_603_" d="M143.1 60l-4.7 9.5h-2.3l-4.7-9.5v11h-3.9V53.6h5.3l4.5 9.6 4.5-9.6h5.2V71h-3.9V60z" />\n<path id="cncfBlack.svg_XMLID_600_" d="M163.3 55.1c1.2 1 1.8 2.6 1.8 4.8 0 2.2-.6 3.7-1.9 4.7-1.3 1-3.2 1.5-5.7 1.5h-2.3V71h-3.9V53.6h6.2c2.6 0 4.6.5 5.8 1.5zm-2.8 6.9c.5-.5.7-1.3.7-2.3 0-1-.3-1.7-.9-2.1-.6-.4-1.5-.6-2.8-.6h-2.2v5.9h2.6c1.2-.1 2.1-.4 2.6-.9z" />\n<path id="cncfBlack.svg_XMLID_598_" d="M172.8 66.5c.6.8 1.5 1.2 2.6 1.2s2-.4 2.6-1.2c.6-.8 1-1.9 1-3.3v-9.6h3.9v9.7c0 2.5-.7 4.5-2.1 5.8-1.4 1.4-3.2 2-5.4 2s-4-.7-5.4-2c-1.4-1.4-2.1-3.3-2.1-5.8v-9.7h3.9v9.6c0 1.4.3 2.5 1 3.3z" />\n<path id="cncfBlack.svg_XMLID_596_" d="M194.3 57v14h-3.9V57h-4.9v-3.4h13.8V57h-5z" />\n<path id="cncfBlack.svg_XMLID_594_" d="M202 53.6h3.9V71H202V53.6z" />\n<path id="cncfBlack.svg_XMLID_592_" d="M222.4 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_590_" d="M241.9 62.1h3.9v6.2c-1.7 1.9-4.1 2.9-7.2 2.9-2.6 0-4.7-.8-6.4-2.5-1.7-1.7-2.6-3.8-2.6-6.4 0-2.6.9-4.7 2.7-6.5 1.8-1.7 3.9-2.6 6.4-2.6 2.5 0 4.7.8 6.5 2.5l-2 2.9c-.8-.7-1.5-1.2-2.2-1.4-.7-.3-1.4-.4-2.1-.4-1.5 0-2.7.5-3.7 1.5s-1.5 2.3-1.5 4c0 1.6.5 3 1.5 3.9 1 1 2.1 1.5 3.5 1.5 1.3 0 2.5-.3 3.4-.8v-4.8z" />\n<path id="cncfBlack.svg_XMLID_588_" d="M267.8 53.6V57h-8.1v3.8h7.7v3.4h-7.7V71h-3.9V53.6h12z" />\n<path id="cncfBlack.svg_XMLID_585_" d="M285.8 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.9 4.7-2.6 6.4zm-1.4-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_583_" d="M296.3 66.5c.6.8 1.5 1.2 2.6 1.2s2-.4 2.6-1.2c.6-.8 1-1.9 1-3.3v-9.6h3.9v9.7c0 2.5-.7 4.5-2.1 5.8-1.4 1.4-3.2 2-5.4 2s-4-.7-5.4-2c-1.4-1.4-2.1-3.3-2.1-5.8v-9.7h3.9v9.6c0 1.4.4 2.5 1 3.3z" />\n<path id="cncfBlack.svg_XMLID_581_" d="M322.6 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_578_" d="M344.1 55.9c1.7 1.5 2.5 3.6 2.5 6.3 0 2.7-.8 4.9-2.4 6.4-1.6 1.6-4.1 2.4-7.4 2.4h-6V53.6h6.2c3 0 5.4.7 7.1 2.3zm-2.9 10.3c1-.9 1.4-2.2 1.4-3.9 0-1.7-.5-3-1.4-4-1-.9-2.4-1.4-4.4-1.4h-2.2v10.6h2.5c1.8.1 3.2-.4 4.1-1.3z" />\n<path id="cncfBlack.svg_XMLID_575_" d="M361.8 71l-1.6-3.8h-7.3l-1.6 3.8h-4.1l7.5-17.4h3.8L366 71h-4.2zm-5.2-12.2l-2.2 5.1h4.4l-2.2-5.1z" />\n<path id="cncfBlack.svg_XMLID_573_" d="M374.1 57v14h-3.9V57h-4.9v-3.4H379V57h-4.9z" />\n<path id="cncfBlack.svg_XMLID_571_" d="M381.9 53.6h3.9V71h-3.9V53.6z" />\n<path id="cncfBlack.svg_XMLID_568_" d="M404.7 68.6c-1.8 1.7-3.9 2.6-6.5 2.6s-4.7-.9-6.5-2.6c-1.8-1.7-2.6-3.9-2.6-6.4 0-2.6.9-4.7 2.6-6.4 1.8-1.7 3.9-2.6 6.5-2.6s4.7.9 6.5 2.6c1.8 1.7 2.6 3.9 2.6 6.4 0 2.5-.8 4.7-2.6 6.4zm-1.3-6.4c0-1.6-.5-2.9-1.5-4s-2.2-1.6-3.7-1.6-2.7.5-3.7 1.6-1.5 2.4-1.5 4 .5 2.9 1.5 4 2.2 1.6 3.7 1.6 2.7-.5 3.7-1.6 1.5-2.4 1.5-4z" />\n<path id="cncfBlack.svg_XMLID_566_" d="M422.8 53.6h3.9V71h-3.9l-8.3-10.9V71h-3.9V53.6h3.6l8.5 11.2V53.6z" />\n<path id="cncfBlack.svg_XMLID_397_" d="M14.4 50.4H4.8v22.3h22.3v-9.6H14.4z" />\n<path id="cncfBlack.svg_XMLID_395_" d="M62.2 50.4v12.7H49.5v9.6h22.3V50.4h-9.7z" />\n<path id="cncfBlack.svg_XMLID_394_" d="M4.8 28.1h9.7l-.1-.1V15.3h12.7v.1-9.7H4.8z" />\n<path id="cncfBlack.svg_XMLID_393_" d="M49.5 5.7v9.6h12.7v12.8h9.6V5.7z" />\n<path id="cncfBlack.svg_XMLID_391_" d="M48.3 28.1L35.5 15.3h14V5.7H27.1v9.7l12.7 12.7z" class="st0" />\n<path id="cncfBlack.svg_XMLID_390_" d="M36.8 50.4h-8.5l10.6 10.5 2.2 2.2h-14v9.6h22.4v-9.6l-6.4-6.4z" class="st0" />\n<path id="cncfBlack.svg_XMLID_389_" d="M62.2 28.1V42L60 39.8 49.5 29.2v8.5l6.3 6.3 6.3 6.4h9.7V28.1z" class="st0" />\n<path id="cncfBlack.svg_XMLID_388_" d="M27.1 40.7L14.5 28.1H4.8v22.3h9.6v-14l12.7 12.8z" class="st0" />\n</symbol>'}),p=(e().add(L),L),o=l(33937),w=function(){return s.createElement("svg",{width:"256",height:"48",viewBox:v.viewBox},s.createElement("use",{xlinkHref:"#".concat(v.id)}))},z=function(){return s.createElement("svg",{width:"16",height:"16",viewBox:a.viewBox},s.createElement("use",{xlinkHref:"#".concat(a.id)}))},I=function(){return s.createElement("svg",{width:"16",height:"16",viewBox:M.viewBox},s.createElement("use",{xlinkHref:"#".concat(M.id)}))},r=function(c){var h=c.width,l=void 0===h?"152":h,t=c.height,i=void 0===t?"29":t,n=c.svg,e=void 0===n?{}:n;return function(){return s.createElement("svg",{width:l,height:i,viewBox:e.viewBox},s.createElement("use",{xlinkHref:"#".concat(e.id)}))}},D={light:r({svg:p}),dark:r({svg:g}),unspecified:r({svg:V})},X=function(){var c=(0,o.R)("theme"),h=D[c];return s.createElement(h,null)}}}]); \ No newline at end of file
diff --git a/web/gui/v2/510.d6163fa8dc978bbb2b42.chunk.js b/web/gui/v2/510.ea4a79b1c75b8035f760.chunk.js
index 2ad36b66..91ca29cb 100644
--- a/web/gui/v2/510.d6163fa8dc978bbb2b42.chunk.js
+++ b/web/gui/v2/510.ea4a79b1c75b8035f760.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="29f36955-1aa3-4dc0-a7ad-fbfbd111c095",e._sentryDebugIdIdentifier="sentry-dbid-29f36955-1aa3-4dc0-a7ad-fbfbd111c095")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[510],{89510:function(e,t,o){o.r(t);var i=o(60677),n=o(15557),r=(0,i.css)(['html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:inherit;}body{font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif;min-height:100vh;scroll-behavior:smooth;text-rendering:optimizespeed;scrollbar-gutter:stable both-edges;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;}body > iframe{display:none;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none;}table{border-collapse:collapse;border-spacing:0;th,tr{vertical-align:middle;}th{font-weight:bold;}}*{box-sizing:inherit;-webkit-font-smoothing:antialiased;font-weight:inherit;text-rendering:optimizelegibility;-webkit-appearance:none;border-width:0px;border-style:initial;border-color:initial;border-image:initial;margin:0px;outline:0px;padding:0px;text-decoration:none;}*,*::before,*::after{box-sizing:border-box;}input[type="button" i],input[type="submit" i],input[type="reset" i],input[type="file" i]::-webkit-file-upload-button,button{border-color:transparent;border-style:none;border-width:0;padding:0;}a{color:',";&:hover{text-decoration:underline;color:",";}&:visited{color:",";}}ul.CodeMirror-hints{z-index:150;}::-webkit-scrollbar{height:8px;width:8px;}"],(function(e){return e.theme.colors.successLite}),(function(e){return e.theme.colors.success}),(function(e){return e.theme.colors.success}));t.default=(0,i.createGlobalStyle)([""," ",""],r,n.webkitVisibleScrollbar)}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4e91bfdf-3b3a-40f0-9fc0-c892616a2cc1",e._sentryDebugIdIdentifier="sentry-dbid-4e91bfdf-3b3a-40f0-9fc0-c892616a2cc1")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[510],{89510:function(e,t,o){o.r(t);var i=o(60677),n=o(57509),r=(0,i.css)(['html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:inherit;}body{font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif;min-height:100vh;scroll-behavior:smooth;text-rendering:optimizespeed;scrollbar-gutter:stable both-edges;}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}body{-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;}body > iframe{display:none;}ol,ul{list-style:none;}blockquote,q{quotes:none;}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none;}table{border-collapse:collapse;border-spacing:0;th,tr{vertical-align:middle;}th{font-weight:bold;}}*{box-sizing:inherit;-webkit-font-smoothing:antialiased;font-weight:inherit;text-rendering:optimizelegibility;-webkit-appearance:none;border-width:0px;border-style:initial;border-color:initial;border-image:initial;margin:0px;outline:0px;padding:0px;text-decoration:none;}*,*::before,*::after{box-sizing:border-box;}input[type="button" i],input[type="submit" i],input[type="reset" i],input[type="file" i]::-webkit-file-upload-button,button{border-color:transparent;border-style:none;border-width:0;padding:0;}a{color:',";&:hover{text-decoration:underline;color:",";}&:visited{color:",";}}ul.CodeMirror-hints{z-index:150;}::-webkit-scrollbar{height:8px;width:8px;}"],(function(e){return e.theme.colors.successLite}),(function(e){return e.theme.colors.success}),(function(e){return e.theme.colors.success}));t.default=(0,i.createGlobalStyle)([""," ",""],r,n.webkitVisibleScrollbar)}}]); \ No newline at end of file
diff --git a/web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js b/web/gui/v2/514.af9132e943f111b25f1c.chunk.js
index ee22db48..2dc5164c 100644
--- a/web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js
+++ b/web/gui/v2/514.af9132e943f111b25f1c.chunk.js
@@ -1,2 +1,2 @@
-/*! For license information please see 514.58ab6c1ac3b8af2f0016.chunk.js.LICENSE.txt */
-!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="6b9e18e4-a249-4e09-92f0-6bca6ace97c1",t._sentryDebugIdIdentifier="sentry-dbid-6b9e18e4-a249-4e09-92f0-6bca6ace97c1")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[514],{36337:function(t,e,i){i.d(e,{Z:function(){return Xt}});var n=i(23148),s=i(50713);const o={modes:{point(t,e){return a(t,e,{intersect:!0})},nearest(t,e,i){return function(t,e,i){let n=Number.POSITIVE_INFINITY;return a(t,e,i).reduce(((t,o)=>{const r=o.getCenterPoint(),a=function(t,e,i){if("x"===i)return{x:t.x,y:e.y};if("y"===i)return{x:e.x,y:t.y};return e}(e,r,i.axis),h=(0,s.aE)(e,a);return h<n?(t=[o],n=h):h===n&&t.push(o),t}),[]).sort(((t,e)=>t._index-e._index)).slice(0,1)}(t,e,i)},x(t,e,i){return a(t,e,{intersect:i.intersect,axis:"x"})},y(t,e,i){return a(t,e,{intersect:i.intersect,axis:"y"})}}};function r(t,e,i){return(o.modes[i.mode]||o.modes.nearest)(t,e,i)}function a(t,e,i){return t.visibleElements.filter((t=>i.intersect?t.inRange(e.x,e.y):function(t,e,i){return"x"!==i&&"y"!==i?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,i,!0)}(t,e,i.axis)))}const h=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,l=.001,c=(t,e,i)=>Math.min(i,Math.max(e,t));function d(t,e,i){for(const n of Object.keys(t))t[n]=c(t[n],e,i);return t}function u(t,{x:e,y:i,x2:n,y2:s},o,r){const a=r/2,h=t.x>=e-a-l&&t.x<=n+a+l,c=t.y>=i-a-l&&t.y<=s+a+l;return"x"===o?h:("y"===o||h)&&c}function f(t,e){const{centerX:i,centerY:n}=t.getProps(["centerX","centerY"],e);return{x:i,y:n}}const g=t=>"string"===typeof t&&t.endsWith("%"),p=t=>parseFloat(t)/100,x=t=>c(p(t),0,1);function m(t,e){return"start"===e?0:"end"===e?t:g(e)?x(e)*t:t/2}function b(t,e,i=!0){return"number"===typeof e?e:g(e)?(i?x(e):p(e))*t:t}function y(t,e="center"){return(0,s.i)(t)?{x:(0,s.v)(t.x,e),y:(0,s.v)(t.y,e)}:{x:t=(0,s.v)(t,e),y:t}}function _(t){return t&&((0,s.h)(t.xValue)||(0,s.h)(t.yValue))}function v(t,e,i,n=!1){const o=i.init;if(o)return!0===o?k(e,n):function(t,e,i){if(!0===i)return k(t,e);if((0,s.i)(i))return i}(e,n,(0,s.Q)(o,[{chart:t,properties:e,options:i}]))}function w(t,e,i){let n=!1;return e.forEach((e=>{(0,s.a7)(t[e])?(n=!0,i[e]=t[e]):(0,s.h)(i[e])&&delete i[e]})),n}function k({centerX:t,centerY:e},i){return i?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}const M=new Map,S=t=>t.reduce((function(t,e){return t+=e.string}),"");function P(t){if(t&&"object"===typeof t){const e=t.toString();return"[object HTMLImageElement]"===e||"[object HTMLCanvasElement]"===e}}function C(t,{x:e,y:i},n){n&&(t.translate(e,i),t.rotate((0,s.t)(n)),t.translate(-e,-i))}function D(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function O(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function T(t,e){const i=e.content;if(P(i))return{width:b(i.width,e.width),height:b(i.height,e.height)};const n=e.font,o=(0,s.b)(n)?n.map((t=>(0,s.a0)(t))):[(0,s.a0)(n)],r=e.textStrokeWidth,a=(0,s.b)(i)?i:[i],h=a.join()+S(o)+r+(t._measureText?"-spriting":"");return M.has(h)||M.set(h,function(t,e,i,n){t.save();const s=e.length;let o=0,r=n;for(let a=0;a<s;a++){const s=i[Math.min(a,i.length-1)];t.font=s.string;const h=e[a];o=Math.max(o,t.measureText(h).width+n),r+=s.lineHeight}return t.restore(),{width:o,height:r}}(t,a,o,r)),M.get(h)}function A(t,e,i){const{x:n,y:o,width:r,height:a}=e;t.save(),O(t,i);const h=D(t,i);t.fillStyle=i.backgroundColor,t.beginPath(),(0,s.au)(t,{x:n,y:o,w:r,h:a,radius:d((0,s.aw)(i.borderRadius),0,Math.min(r,a)/2)}),t.closePath(),t.fill(),h&&(t.shadowColor=i.borderShadowColor,t.stroke()),t.restore()}function L(t,e,i){const n=i.content;if(P(n))return t.save(),t.globalAlpha=function(t,e){const i=(0,s.x)(t)?t:e;return(0,s.x)(i)?c(i,0,1):1}(i.opacity,n.style.opacity),t.drawImage(n,e.x,e.y,e.width,e.height),void t.restore();const o=(0,s.b)(n)?n:[n],r=i.font,a=(0,s.b)(r)?r.map((t=>(0,s.a0)(t))):[(0,s.a0)(r)],h=i.color,l=(0,s.b)(h)?h:[h],d=function(t,e){const{x:i,width:n}=t,s=e.textAlign;return"center"===s?i+n/2:"end"===s||"right"===s?i+n:i}(e,i),u=e.y+i.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=i.textAlign,function(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}(t,i)&&function(t,{x:e,y:i},n,s){t.beginPath();let o=0;n.forEach((function(n,r){const a=s[Math.min(r,s.length-1)],h=a.lineHeight;t.font=a.string,t.strokeText(n,e,i+h/2+o),o+=h})),t.stroke()}(t,{x:d,y:u},o,a),function(t,{x:e,y:i},n,{fonts:s,colors:o}){let r=0;n.forEach((function(n,a){const h=o[Math.min(a,o.length-1)],l=s[Math.min(a,s.length-1)],c=l.lineHeight;t.beginPath(),t.font=l.string,t.fillStyle=h,t.fillText(n,e,i+c/2+r),r+=c,t.fill()}))}(t,{x:d,y:u},o,{fonts:a,colors:l}),t.restore()}function I(t,e,i,n){const{radius:o,options:r}=e,a=r.pointStyle,h=r.rotation;let l=(h||0)*s.b3;if(P(a))return t.save(),t.translate(i,n),t.rotate(l),t.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),void t.restore();(t=>isNaN(t)||t<=0)(o)||function(t,{x:e,y:i,radius:n,rotation:o,style:r,rad:a}){let h,l,c,d;switch(t.beginPath(),r){default:t.arc(e,i,n,0,s.T),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(a)*n,i-Math.cos(a)*n),a+=s.b5,t.lineTo(e+Math.sin(a)*n,i-Math.cos(a)*n),a+=s.b5,t.lineTo(e+Math.sin(a)*n,i-Math.cos(a)*n),t.closePath();break;case"rectRounded":d=.516*n,c=n-d,h=Math.cos(a+s.b4)*c,l=Math.sin(a+s.b4)*c,t.arc(e-h,i-l,d,a-s.P,a-s.H),t.arc(e+l,i-h,d,a-s.H,a),t.arc(e+h,i+l,d,a,a+s.H),t.arc(e-l,i+h,d,a+s.H,a+s.P),t.closePath();break;case"rect":if(!o){c=Math.SQRT1_2*n,t.rect(e-c,i-c,2*c,2*c);break}a+=s.b4;case"rectRot":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+l,i-h),t.lineTo(e+h,i+l),t.lineTo(e-l,i+h),t.closePath();break;case"crossRot":a+=s.b4;case"cross":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l),t.moveTo(e+l,i-h),t.lineTo(e-l,i+h);break;case"star":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l),t.moveTo(e+l,i-h),t.lineTo(e-l,i+h),a+=s.b4,h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l),t.moveTo(e+l,i-h),t.lineTo(e-l,i+h);break;case"line":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l);break;case"dash":t.moveTo(e,i),t.lineTo(e+Math.cos(a)*n,i+Math.sin(a)*n)}t.fill()}(t,{x:i,y:n,radius:o,rotation:h,style:a,rad:l})}const E={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function R(t,e,i){return e="number"===typeof e?e:t.parse(e),(0,s.g)(e)?t.getPixelForValue(e):i}function z(t,e,i){const n=e[i];if(n||"scaleID"===i)return n;const s=i.charAt(0),o=Object.values(t).filter((t=>t.axis&&t.axis===s));return o.length?o[0].id:s}function F(t,e){if(t){const i=t.options.reverse;return{start:R(t,e.min,i?e.end:e.start),end:R(t,e.max,i?e.start:e.end)}}}function j(t,e){const{chartArea:i,scales:n}=t,s=n[z(n,e,"xScaleID")],o=n[z(n,e,"yScaleID")];let r=i.width/2,a=i.height/2;return s&&(r=R(s,e.xValue,s.left+s.width/2)),o&&(a=R(o,e.yValue,o.top+o.height/2)),{x:r,y:a}}function W(t,e){const i=t.scales,n=i[z(i,e,"xScaleID")],s=i[z(i,e,"yScaleID")];if(!n&&!s)return{};let{left:o,right:r}=n||t.chartArea,{top:a,bottom:h}=s||t.chartArea;const l=N(n,{min:e.xMin,max:e.xMax,start:o,end:r});o=l.start,r=l.end;const c=N(s,{min:e.yMin,max:e.yMax,start:h,end:a});return a=c.start,h=c.end,{x:o,y:a,x2:r,y2:h,width:r-o,height:h-a,centerX:o+(r-o)/2,centerY:a+(h-a)/2}}function B(t,e){if(!_(e)){const i=W(t,e);let n=e.radius;n&&!isNaN(n)||(n=Math.min(i.width,i.height)/2,e.radius=n);const s=2*n,o=i.centerX+e.xAdjust,r=i.centerY+e.yAdjust;return{x:o-n,y:r-n,x2:o+n,y2:r+n,centerX:o,centerY:r,width:s,height:s,radius:n}}return function(t,e){const i=j(t,e),n=2*e.radius;return{x:i.x-e.radius+e.xAdjust,y:i.y-e.radius+e.yAdjust,x2:i.x+e.radius+e.xAdjust,y2:i.y+e.radius+e.yAdjust,centerX:i.x+e.xAdjust,centerY:i.y+e.yAdjust,radius:e.radius,width:n,height:n}}(t,e)}function V(t,e){const{scales:i,chartArea:n}=t,s=i[e.scaleID],o={x:n.left,y:n.top,x2:n.right,y2:n.bottom};return s?function(t,e,i){const n=R(t,i.value,NaN),s=R(t,i.endValue,n);t.isHorizontal()?(e.x=n,e.x2=s):(e.y=n,e.y2=s)}(s,o,e):function(t,e,i){for(const n of Object.keys(E)){const s=t[z(t,i,n)];if(s){const{min:t,max:o,start:r,end:a,startProp:h,endProp:l}=E[n],c=F(s,{min:i[t],max:i[o],start:s[r],end:s[a]});e[h]=c.start,e[l]=c.end}}}(i,o,e),o}function H(t,e,i){const n=W(t,e);return n.initProperties=v(t,n,e,i),n.elements=[{type:"label",optionScope:"label",properties:$(t,n,e),initProperties:n.initProperties}],n}function N(t,e){const i=F(t,e)||e;return{start:Math.min(i.start,i.end),end:Math.max(i.start,i.end)}}function Y(t,e){const{start:i,end:n,borderWidth:s}=t,{position:o,padding:{start:r,end:a},adjust:h}=e;return i+s/2+h+m(n-s-i-r-a-e.size,o)}function $(t,e,i){const n=i.label;n.backgroundColor="transparent",n.callout.display=!1;const o=y(n.position),r=(0,s.E)(n.padding),a=T(t.ctx,n),h=function({properties:t,options:e},i,n,s){const{x:o,x2:r,width:a}=t;return Y({start:o,end:r,size:a,borderWidth:e.borderWidth},{position:n.x,padding:{start:s.left,end:s.right},adjust:e.label.xAdjust,size:i.width})}({properties:e,options:i},a,o,r),l=function({properties:t,options:e},i,n,s){const{y:o,y2:r,height:a}=t;return Y({start:o,end:r,size:a,borderWidth:e.borderWidth},{position:n.y,padding:{start:s.top,end:s.bottom},adjust:e.label.yAdjust,size:i.height})}({properties:e,options:i},a,o,r),c=a.width+r.width,d=a.height+r.height;return{x:h,y:l,x2:h+c,y2:l+d,width:c,height:d,centerX:h+c/2,centerY:l+d/2,rotation:n.rotation}}function X(t,e,i){const n=Math.cos(i),s=Math.sin(i),o=e.x,r=e.y;return{x:o+n*(t.x-o)-s*(t.y-r),y:r+s*(t.x-o)+n*(t.y-r)}}const U=["enter","leave"],Q=U.concat("click");function q(t,e,i){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return function(t,e,i){if(!t.moveListened)return;let n;n="mousemove"===e.type?r(t,e,i.interaction):[];const s=t.hovered;t.hovered=n;const o={state:t,event:e};let a=K(o,"leave",s,n);return K(o,"enter",n,s)||a}(t,e,i);case"click":return function(t,e,i){const n=t.listeners,s=r(t,e,i.interaction);let o;for(const r of s)o=J(r.options.click||n.click,r,e)||o;return o}(t,e,i)}}function K({state:t,event:e},i,n,s){let o;for(const r of n)s.indexOf(r)<0&&(o=J(r.options[i]||t.listeners[i],r,e)||o);return o}function J(t,e,i){return!0===(0,s.Q)(t,[e.$context,i])}const Z=["afterDraw","beforeDraw"];function G(t,e,i){if(t.hooked){const n=e.options[i]||t.hooks[i];return(0,s.Q)(n,[e.$context])}}function tt(t,e,i){const n=function(t,e,i){const n=e.axis,o=e.id,r=n+"ScaleID",a={min:(0,s.v)(e.min,Number.NEGATIVE_INFINITY),max:(0,s.v)(e.max,Number.POSITIVE_INFINITY)};for(const s of i)s.scaleID===o?st(s,e,["value","endValue"],a):z(t,s,r)===o&&st(s,e,[n+"Min",n+"Max",n+"Value"],a);return a}(t.scales,e,i);let o=et(e,n,"min","suggestedMin");o=et(e,n,"max","suggestedMax")||o,o&&(0,s.a7)(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function et(t,e,i,n){if((0,s.g)(e[i])&&!function(t,e,i){return(0,s.h)(t[e])||(0,s.h)(t[i])}(t.options,i,n)){const n=t[i]!==e[i];return t[i]=e[i],n}}function it(t,e){for(const i of["scaleID","xScaleID","yScaleID"]){const n=z(e,t,i);n&&!e[n]&&nt(t,i)&&console.warn(`No scale found with id '${n}' for annotation '${t.id}'`)}}function nt(t,e){if("scaleID"===e)return!0;const i=e.charAt(0);for(const n of["Min","Max","Value"])if((0,s.h)(t[i+n]))return!0;return!1}function st(t,e,i,n){for(const o of i){const i=t[o];if((0,s.h)(i)){const t=e.parse(i);n.min=Math.min(n.min,t),n.max=Math.max(n.max,t)}}}class ot extends n.W_{inRange(t,e,i,n){const{x:o,y:r}=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-this.options.rotation));return u({x:o,y:r},this.getProps(["x","y","x2","y2"],n),i,this.options.borderWidth)}getCenterPoint(t){return f(this,t)}draw(t){t.save(),C(t,this.getCenterPoint(),this.options.rotation),A(t,this,this.options),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return H(t,e)}}ot.id="boxAnnotation",ot.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},ot.defaultRoutes={borderColor:"color",backgroundColor:"color"},ot.descriptors={label:{_fallback:!0}};const rt=["left","bottom","top","right"];class at extends n.W_{inRange(t,e,i,n){const{x:o,y:r}=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-this.rotation));return u({x:o,y:r},this.getProps(["x","y","x2","y2"],n),i,this.options.borderWidth)}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options,i=!(0,s.h)(this._visible)||this._visible;e.display&&e.content&&i&&(t.save(),C(t,this.getCenterPoint(),this.rotation),function(t,e){const{pointX:i,pointY:n,options:o}=e,r=o.callout,a=r&&r.display&&function(t,e){const i=e.position;if(rt.includes(i))return i;return function(t,e){const{x:i,y:n,x2:o,y2:r,width:a,height:h,pointX:l,pointY:c,centerX:d,centerY:u,rotation:f}=t,g={x:d,y:u},p=e.start,x=b(a,p),m=b(h,p),y=[i,i+x,i+x,o],_=[n+m,r,n,r],v=[];for(let b=0;b<4;b++){const t=X({x:y[b],y:_[b]},g,(0,s.t)(f));v.push({position:rt[b],distance:(0,s.aE)(t,{x:l,y:c})})}return v.sort(((t,e)=>t.distance-e.distance))[0].position}(t,e)}(e,r);if(!a||function(t,e,i){const{pointX:n,pointY:s}=t,o=e.margin;let r=n,a=s;"left"===i?r+=o:"right"===i?r-=o:"top"===i?a+=o:"bottom"===i&&(a-=o);return t.inRange(r,a)}(e,r,a))return;t.save(),t.beginPath();const h=D(t,r);if(!h)return t.restore();const{separatorStart:l,separatorEnd:c}=function(t,e){const{x:i,y:n,x2:s,y2:o}=t,r=function(t,e){const{width:i,height:n,options:s}=t,o=s.callout.margin+s.borderWidth/2;if("right"===e)return i+o;if("bottom"===e)return n+o;return-o}(t,e);let a,h;"left"===e||"right"===e?(a={x:i+r,y:n},h={x:a.x,y:o}):(a={x:i,y:n+r},h={x:s,y:a.y});return{separatorStart:a,separatorEnd:h}}(e,a),{sideStart:d,sideEnd:u}=function(t,e,i){const{y:n,width:s,height:o,options:r}=t,a=r.callout.start,h=function(t,e){const i=e.side;if("left"===t||"top"===t)return-i;return i}(e,r.callout);let l,c;"left"===e||"right"===e?(l={x:i.x,y:n+b(o,a)},c={x:l.x+h,y:l.y}):(l={x:i.x+b(s,a),y:i.y},c={x:l.x,y:l.y+h});return{sideStart:l,sideEnd:c}}(e,a,l);(r.margin>0||0===o.borderWidth)&&(t.moveTo(l.x,l.y),t.lineTo(c.x,c.y));t.moveTo(d.x,d.y),t.lineTo(u.x,u.y);const f=X({x:i,y:n},e.getCenterPoint(),(0,s.t)(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}(t,this),A(t,this,e),L(t,function({x:t,y:e,width:i,height:n,options:o}){const r=o.borderWidth/2,a=(0,s.E)(o.padding);return{x:t+a.left+r,y:e+a.top+r,width:i-a.left-a.right-o.borderWidth,height:n-a.top-a.bottom-o.borderWidth}}(this),e),t.restore())}resolveElementProperties(t,e){let i;if(_(e))i=j(t,e);else{const{centerX:n,centerY:s}=W(t,e);i={x:n,y:s}}const n=(0,s.E)(e.padding),o=function(t,e,i,n){const s=e.width+n.width+i.borderWidth,o=e.height+n.height+i.borderWidth,r=y(i.position,"center"),a=ht(t.x,s,i.xAdjust,r.x),h=ht(t.y,o,i.yAdjust,r.y);return{x:a,y:h,x2:a+s,y2:h+o,width:s,height:o,centerX:a+s/2,centerY:h+o/2}}(i,T(t.ctx,e),e,n);return{initProperties:v(t,o,e),pointX:i.x,pointY:i.y,...o,rotation:e.rotation}}}function ht(t,e,i=0,n){return t-m(e,n)+i}at.id="labelAnnotation",at.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},at.defaultRoutes={borderColor:"color"};const lt=(t,e,i)=>({x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}),ct=(t,e,i)=>lt(e,i,Math.abs((t-e.y)/(i.y-e.y))).x,dt=(t,e,i)=>lt(e,i,Math.abs((t-e.x)/(i.x-e.x))).y,ut=t=>t*t,ft=(t,e,i,n)=>(1-n)*(1-n)*t+2*(1-n)*n*e+n*n*i,gt=(t,e,i,n)=>({x:ft(t.x,e.x,i.x,n),y:ft(t.y,e.y,i.y,n)}),pt=(t,e,i,n)=>2*(1-n)*(e-t)+2*n*(i-e),xt=(t,e,i,n)=>-Math.atan2(pt(t.x,e.x,i.x,n),pt(t.y,e.y,i.y,n))+.5*s.P;class mt extends n.W_{inRange(t,e,i,n){const s=this.options.borderWidth/2;if("x"!==i&&"y"!==i){const i={mouseX:t,mouseY:e},{path:o,ctx:r}=this;if(o){D(r,this.options);const{chart:s}=this.$context,a=t*s.currentDevicePixelRatio,h=e*s.currentDevicePixelRatio,l=r.isPointInStroke(o,a,h)||_t(this,i,n);return r.restore(),l}return function(t,{mouseX:e,mouseY:i},n=l,s){const{x:o,y:r,x2:a,y2:h}=t.getProps(["x","y","x2","y2"],s),c=a-o,d=h-r,u=ut(c)+ut(d),f=0===u?-1:((e-o)*c+(i-r)*d)/u;let g,p;f<0?(g=o,p=r):f>1?(g=a,p=h):(g=o+f*c,p=r+f*d);return ut(e-g)+ut(i-p)<=n}(this,i,ut(s),n)||_t(this,i,n)}return function(t,{mouseX:e,mouseY:i},n,{hBorderWidth:s,useFinalPosition:o}){const r=((t,e,{x:i,y:n,x2:s,y2:o},r)=>"y"===r?{start:Math.min(n,o),end:Math.max(n,o),value:e}:{start:Math.min(i,s),end:Math.max(i,s),value:t})(e,i,t.getProps(["x","y","x2","y2"],o),n);return r.value>=r.start-s&&r.value<=r.end+s||_t(t,{mouseX:e,mouseY:i},o,n)}(this,{mouseX:t,mouseY:e},i,{hBorderWidth:s,useFinalPosition:n})}getCenterPoint(t){return f(this,t)}draw(t){const{x:e,y:i,x2:n,y2:o,cp:r,options:a}=this;if(t.save(),!D(t,a))return t.restore();O(t,a);const h=Math.sqrt(Math.pow(n-e,2)+Math.pow(o-i,2));if(a.curve&&r)return function(t,e,i,n){const{x:o,y:r,x2:a,y2:h,options:l}=e,{startOpts:c,endOpts:d,startAdjust:u,endAdjust:f}=kt(e),g={x:o,y:r},p={x:a,y:h},x=xt(g,i,p,0),m=xt(g,i,p,1)-s.P,b=gt(g,i,p,u/n),y=gt(g,i,p,1-f/n),_=new Path2D;t.beginPath(),_.moveTo(b.x,b.y),_.quadraticCurveTo(i.x,i.y,y.x,y.y),t.shadowColor=l.borderShadowColor,t.stroke(_),e.path=_,e.ctx=t,Pt(t,b,{angle:x,adjust:u},c),Pt(t,y,{angle:m,adjust:f},d)}(t,this,r,h),t.restore();const{startOpts:l,endOpts:c,startAdjust:d,endAdjust:u}=kt(this),f=Math.atan2(o-i,n-e);t.translate(e,i),t.rotate(f),t.beginPath(),t.moveTo(0+d,0),t.lineTo(h-u,0),t.shadowColor=a.borderShadowColor,t.stroke(),St(t,0,d,l),St(t,h,-u,c),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){const i=V(t,e),{x:n,y:o,x2:r,y2:a}=i,h=function({x:t,y:e,x2:i,y2:n},{top:s,right:o,bottom:r,left:a}){return!(t<a&&i<a||t>o&&i>o||e<s&&n<s||e>r&&n>r)}(i,t.chartArea),l=h?function(t,e,i){const{x:n,y:s}=yt(t,e,i),{x:o,y:r}=yt(e,t,i);return{x:n,y:s,x2:o,y2:r,width:Math.abs(o-n),height:Math.abs(r-s)}}({x:n,y:o},{x:r,y:a},t.chartArea):{x:n,y:o,x2:r,y2:a,width:Math.abs(r-n),height:Math.abs(a-o)};if(l.centerX=(r+n)/2,l.centerY=(a+o)/2,l.initProperties=v(t,l,e),e.curve){const t={x:l.x,y:l.y},i={x:l.x2,y:l.y2};l.cp=function(t,e,i){const{x:n,y:s,x2:o,y2:r,centerX:a,centerY:h}=t,l=Math.atan2(r-s,o-n),c=y(e.controlPoint,0);return X({x:a+b(i,c.x,!1),y:h+b(i,c.y,!1)},{x:a,y:h},l)}(l,e,(0,s.aE)(t,i))}const c=function(t,e,i){const n=i.borderWidth,o=(0,s.E)(i.padding),r=T(t.ctx,i),a=r.width+o.width+n,h=r.height+o.height+n;return function(t,e,i,n){const{width:o,height:r,padding:a}=i,{xAdjust:h,yAdjust:l}=e,c={x:t.x,y:t.y},d={x:t.x2,y:t.y2},u="auto"===e.rotation?function(t){const{x:e,y:i,x2:n,y2:o}=t,r=Math.atan2(o-i,n-e);return r>s.P/2?r-s.P:r<s.P/-2?r+s.P:r}(t):(0,s.t)(e.rotation),f=function(t,e,i){const n=Math.cos(i),s=Math.sin(i);return{w:Math.abs(t*n)+Math.abs(e*s),h:Math.abs(t*s)+Math.abs(e*n)}}(o,r,u),g=function(t,e,i,n){let s;const o=function(t,e){const{x:i,x2:n,y:s,y2:o}=t,r=Math.min(s,o)-e.top,a=Math.min(i,n)-e.left,h=e.bottom-Math.max(s,o),l=e.right-Math.max(i,n);return{x:Math.min(a,l),y:Math.min(r,h),dx:a<=l?1:-1,dy:r<=h?1:-1}}(t,n);s="start"===e.position?vt({w:t.x2-t.x,h:t.y2-t.y},i,e,o):"end"===e.position?1-vt({w:t.x-t.x2,h:t.y-t.y2},i,e,o):m(1,e.position);return s}(t,e,{labelSize:f,padding:a},n),p=t.cp?gt(c,t.cp,d,g):lt(c,d,g),x={size:f.w,min:n.left,max:n.right,padding:a.left},b={size:f.h,min:n.top,max:n.bottom,padding:a.top},y=wt(p.x,x)+h,_=wt(p.y,b)+l;return{x:y-o/2,y:_-r/2,x2:y+o/2,y2:_+r/2,centerX:y,centerY:_,pointX:p.x,pointY:p.y,width:o,height:r,rotation:(0,s.U)(u)}}(e,i,{width:a,height:h,padding:o},t.chartArea)}(t,l,e.label);return c._visible=h,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}mt.id="lineAnnotation";const bt={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};function yt({x:t,y:e},i,{top:n,right:s,bottom:o,left:r}){return t<r&&(e=dt(r,{x:t,y:e},i),t=r),t>s&&(e=dt(s,{x:t,y:e},i),t=s),e<n&&(t=ct(n,{x:t,y:e},i),e=n),e>o&&(t=ct(o,{x:t,y:e},i),e=o),{x:t,y:e}}function _t(t,{mouseX:e,mouseY:i},n,s){const o=t.label;return o.options.display&&o.inRange(e,i,s,n)}function vt(t,e,i,n){const{labelSize:s,padding:o}=e,r=t.w*n.dx,a=t.h*n.dy,h=r>0&&(s.w/2+o.left-n.x)/r,l=a>0&&(s.h/2+o.top-n.y)/a;return c(Math.max(h,l),0,.25)}function wt(t,e){const{size:i,min:n,max:s,padding:o}=e,r=i/2;return i>s-n?(s+n)/2:(n>=t-o-r&&(t=n+o+r),s<=t+o+r&&(t=s-o-r),t)}function kt(t){const e=t.options,i=e.arrowHeads&&e.arrowHeads.start,n=e.arrowHeads&&e.arrowHeads.end;return{startOpts:i,endOpts:n,startAdjust:Mt(t,i),endAdjust:Mt(t,n)}}function Mt(t,e){if(!e||!e.display)return 0;const{length:i,width:n}=e,s=t.options.borderWidth/2,o={x:i,y:n+s},r={x:0,y:s};return Math.abs(ct(0,o,r))}function St(t,e,i,n){if(!n||!n.display)return;const{length:s,width:o,fill:r,backgroundColor:a,borderColor:h}=n,l=Math.abs(e-s)+i;t.beginPath(),O(t,n),D(t,n),t.moveTo(l,-o),t.lineTo(e+i,0),t.lineTo(l,o),!0===r?(t.fillStyle=a||h,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=n.borderShadowColor,t.stroke()}function Pt(t,{x:e,y:i},{angle:n,adjust:s},o){o&&o.display&&(t.save(),t.translate(e,i),t.rotate(n),St(t,0,-s,o),t.restore())}mt.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},bt),fill:!1,length:12,start:Object.assign({},bt),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},at.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},mt.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}},mt.defaultRoutes={borderColor:"color"};class Ct extends n.W_{inRange(t,e,i,n){const o=this.options.rotation,r=this.options.borderWidth;if("x"!==i&&"y"!==i)return function(t,e,i,n){const{width:o,height:r,centerX:a,centerY:h}=e,l=o/2,c=r/2;if(l<=0||c<=0)return!1;const d=(0,s.t)(i||0),u=n/2||0,f=Math.cos(d),g=Math.sin(d),p=Math.pow(f*(t.x-a)+g*(t.y-h),2),x=Math.pow(g*(t.x-a)-f*(t.y-h),2);return p/Math.pow(l+u,2)+x/Math.pow(c+u,2)<=1.0001}({x:t,y:e},this.getProps(["width","height","centerX","centerY"],n),o,r);const{x:a,y:h,x2:c,y2:d}=this.getProps(["x","y","x2","y2"],n),u=r/2,f="y"===i?{start:h,end:d}:{start:a,end:c},g=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-o));return g[i]>=f.start-u-l&&g[i]<=f.end+u+l}getCenterPoint(t){return f(this,t)}draw(t){const{width:e,height:i,centerX:n,centerY:o,options:r}=this;t.save(),C(t,this.getCenterPoint(),r.rotation),O(t,this.options),t.beginPath(),t.fillStyle=r.backgroundColor;const a=D(t,r);t.ellipse(n,o,i/2,e/2,s.P/2,0,2*s.P),t.fill(),a&&(t.shadowColor=r.borderShadowColor,t.stroke()),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return H(t,e,!0)}}Ct.id="ellipseAnnotation",Ct.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},ot.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},Ct.defaultRoutes={borderColor:"color",backgroundColor:"color"},Ct.descriptors={label:{_fallback:!0}};class Dt extends n.W_{inRange(t,e,i,n){const{x:s,y:o,x2:r,y2:a,width:h}=this.getProps(["x","y","x2","y2","width"],n),l=this.options.borderWidth;if("x"!==i&&"y"!==i)return function(t,e,i,n){if(!t||!e||i<=0)return!1;const s=n/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(i+s,2)}({x:t,y:e},this.getCenterPoint(n),h/2,l);const c=l/2,d="y"===i?{start:o,end:a,value:e}:{start:s,end:r,value:t};return d.value>=d.start-c&&d.value<=d.end+c}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options,i=e.borderWidth;if(e.radius<.1)return;t.save(),t.fillStyle=e.backgroundColor,O(t,e);const n=D(t,e);I(t,this,this.centerX,this.centerY),n&&!P(e.pointStyle)&&(t.shadowColor=e.borderShadowColor,t.stroke()),t.restore(),e.borderWidth=i}resolveElementProperties(t,e){const i=B(t,e);return i.initProperties=v(t,i,e,!0),i}}Dt.id="pointAnnotation",Dt.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},Dt.defaultRoutes={borderColor:"color",backgroundColor:"color"};class Ot extends n.W_{inRange(t,e,i,n){if("x"!==i&&"y"!==i)return this.options.radius>=.1&&this.elements.length>1&&function(t,e,i,n){let s=!1,o=t[t.length-1].getProps(["bX","bY"],n);for(const r of t){const t=r.getProps(["bX","bY"],n);t.bY>i!==o.bY>i&&e<(o.bX-t.bX)*(i-t.bY)/(o.bY-t.bY)+t.bX&&(s=!s),o=t}return s}(this.elements,t,e,n);const o=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-this.options.rotation)),r=this.elements.map((t=>"y"===i?t.bY:t.bX)),a=Math.min(...r),h=Math.max(...r);return o[i]>=a&&o[i]<=h}getCenterPoint(t){return f(this,t)}draw(t){const{elements:e,options:i}=this;t.save(),t.beginPath(),t.fillStyle=i.backgroundColor,O(t,i);const n=D(t,i);let s=!0;for(const o of e)s?(t.moveTo(o.x,o.y),s=!1):t.lineTo(o.x,o.y);t.closePath(),t.fill(),n&&(t.shadowColor=i.borderShadowColor,t.stroke()),t.restore()}resolveElementProperties(t,e){const i=B(t,e),{sides:n,rotation:o}=e,r=[],a=2*s.P/n;let h=o*s.b3;for(let s=0;s<n;s++,h+=a){const n=Tt(i,e,h);n.initProperties=v(t,i,e),r.push(n)}return i.elements=r,i}}function Tt({centerX:t,centerY:e},{radius:i,borderWidth:n},s){const o=n/2,r=Math.sin(s),a=Math.cos(s),h={x:t+r*i,y:e-a*i};return{type:"point",optionScope:"point",properties:{x:h.x,y:h.y,centerX:h.x,centerY:h.y,bX:t+r*(i+o),bY:e-a*(i+o)}}}Ot.id="polygonAnnotation",Ot.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},Ot.defaultRoutes={borderColor:"color",backgroundColor:"color"};const At={box:ot,ellipse:Ct,label:at,line:mt,point:Dt,polygon:Ot};Object.keys(At).forEach((t=>{s.d.describe(`elements.${At[t].id}`,{_fallback:"plugins.annotation.common"})}));const Lt={update:Object.assign},It=Q.concat(Z),Et=(t,e)=>(0,s.i)(e)?Ht(t,e):t,Rt=t=>"color"===t||"font"===t;function zt(t="line"){return At[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function Ft(t,e,i,o){const r=function(t,e,i){if("reset"===i||"none"===i||"resize"===i)return Lt;return new n.FK(t,e)}(t,i.animations,o),a=e.annotations,h=function(t,e){const i=e.length,n=t.length;if(n<i){const e=i-n;t.splice(n,0,...new Array(e))}else n>i&&t.splice(i,n-i);return t}(e.elements,a);for(let n=0;n<a.length;n++){const e=a[n],i=Bt(h,n,e.type),o=e.setContext(Nt(t,i,e)),l=i.resolveElementProperties(t,o);l.skip=jt(l),"elements"in l&&(Wt(i,l.elements,o,r),delete l.elements),(0,s.h)(i.x)||Object.assign(i,l),Object.assign(i,l.initProperties),l.options=Vt(o),r.update(i,l)}}function jt(t){return isNaN(t.x)||isNaN(t.y)}function Wt(t,e,i,n){const s=t.elements||(t.elements=[]);s.length=e.length;for(let o=0;o<e.length;o++){const t=e[o],r=t.properties,a=Bt(s,o,t.type,t.initProperties),h=i[t.optionScope].override(t);r.options=Vt(h),n.update(a,r)}}function Bt(t,e,i,n){const s=At[zt(i)];let o=t[e];return o&&o instanceof s||(o=t[e]=new s,Object.assign(o,n)),o}function Vt(t){const e=At[zt(t.type)],i={};i.id=t.id,i.type=t.type,i.drawTime=t.drawTime,Object.assign(i,Ht(t,e.defaults),Ht(t,e.defaultRoutes));for(const n of It)i[n]=t[n];return i}function Ht(t,e){const i={};for(const n of Object.keys(e)){const o=e[n],r=t[n];Rt(n)&&(0,s.b)(r)?i[n]=r.map((t=>Et(t,o))):i[n]=Et(r,o)}return i}function Nt(t,e,i){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:i.id,type:"annotation"}))}const Yt=new Map,$t=Q.concat(Z);var Xt={id:"annotation",version:"2.2.1",beforeRegister(){!function(t,e,i,n=!0){const s=i.split(".");let o=0;for(const r of e.split(".")){const a=s[o++];if(parseInt(r,10)<parseInt(a,10))break;if(h(a,r)){if(n)throw new Error(`${t} v${i} is not supported. v${e} or newer is required.`);return!1}}}("chart.js","3.7",n.kL.version)},afterRegister(){n.kL.register(At)},afterUnregister(){n.kL.unregister(At)},beforeInit(t){Yt.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,i){const n=Yt.get(t).annotations=[];let o=i.annotations;(0,s.i)(o)?Object.keys(o).forEach((t=>{const e=o[t];(0,s.i)(e)&&(e.id=t,n.push(e))})):(0,s.b)(o)&&n.push(...o),function(t,e){for(const i of t)it(i,e)}(n,t.scales)},afterDataLimits(t,e){const i=Yt.get(t);tt(t,e.scale,i.annotations.filter((t=>t.display&&t.adjustScaleRange)))},afterUpdate(t,e,i){const n=Yt.get(t);!function(t,e,i){e.listened=w(i,Q,e.listeners),e.moveListened=!1,e._getElements=r,U.forEach((t=>{(0,s.a7)(i[t])&&(e.moveListened=!0)})),e.listened&&e.moveListened||e.annotations.forEach((t=>{!e.listened&&(0,s.a7)(t.click)&&(e.listened=!0),e.moveListened||U.forEach((i=>{(0,s.a7)(t[i])&&(e.listened=!0,e.moveListened=!0)}))}))}(0,n,i),Ft(t,n,i,e.mode),n.visibleElements=n.elements.filter((t=>!t.skip&&t.options.display)),function(t,e,i){const n=e.visibleElements;e.hooked=w(i,Z,e.hooks),e.hooked||n.forEach((t=>{e.hooked||Z.forEach((i=>{(0,s.a7)(t.options[i])&&(e.hooked=!0)}))}))}(0,n,i)},beforeDatasetsDraw(t,e,i){Ut(t,"beforeDatasetsDraw",i.clip)},afterDatasetsDraw(t,e,i){Ut(t,"afterDatasetsDraw",i.clip)},beforeDraw(t,e,i){Ut(t,"beforeDraw",i.clip)},afterDraw(t,e,i){Ut(t,"afterDraw",i.clip)},beforeEvent(t,e,i){q(Yt.get(t),e.event,i)&&(e.changed=!0)},afterDestroy(t){Yt.delete(t)},_getState(t){return Yt.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!$t.includes(t)&&"init"!==t,annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${At[zt(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Rt,_fallback:!0},_indexable:Rt}},additionalOptionScopes:[""]};function Ut(t,e,i){const{ctx:n,chartArea:o}=t,r=Yt.get(t);i&&(0,s.Y)(n,o);const a=function(t,e){const i=[];for(const n of t)if(n.options.drawTime===e&&i.push({element:n,main:!0}),n.elements&&n.elements.length)for(const t of n.elements)t.options.display&&t.options.drawTime===e&&i.push({element:t});return i}(r.visibleElements,e).sort(((t,e)=>t.element.options.z-e.element.options.z));for(const s of a)Qt(n,o,r,s);i&&(0,s.$)(n)}function Qt(t,e,i,n){const s=n.element;n.main?(G(i,s,"beforeDraw"),s.draw(t,e),G(i,s,"afterDraw")):s.draw(t,e)}},52262:function(t,e,i){var n=i(82109),s=i(47908),o=i(26244),r=i(19303),a=i(51223);n({target:"Array",proto:!0},{at:function(t){var e=s(this),i=o(e),n=r(t),a=n>=0?n:i+n;return a<0||a>=i?void 0:e[a]}}),a("at")},69810:function(t,e,i){i(52262)},86035:function(t,e,i){var n=i(82109),s=i(28710).charAt,o=i(84488),r=i(19303),a=i(41340);n({target:"String",proto:!0,forced:!0},{at:function(t){var e=a(o(this)),i=e.length,n=r(t),h=n>=0?n:i+n;return h<0||h>=i?void 0:s(e,h)}})},23148:function(t,e,i){i.d(e,{De:function(){return Ce},FB:function(){return si},FK:function(){return l},IQ:function(){return E},ST:function(){return A},W_:function(){return bt},ZL:function(){return ke},f$:function(){return Qe},jn:function(){return ge},kL:function(){return se},od:function(){return xe},u:function(){return He},uw:function(){return $e},vn:function(){return T}});var n=i(50713);class s{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,n){const s=e.listeners[n],o=e.duration;s.forEach((n=>n({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=n.r.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,n)=>{if(!i.running||!i.items.length)return;const s=i.items;let o,r=s.length-1,a=!1;for(;r>=0;--r)o=s[r],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),a=!0):(s[r]=s[s.length-1],s.pop());a&&(n.draw(),this._notify(n,i,t,"progress")),s.length||(i.running=!1,this._notify(n,i,t,"complete"),i.initial=!1),e+=s.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let n=i.length-1;for(;n>=0;--n)i[n].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var o=new s;const r="transparent",a={boolean(t,e,i){return i>.5?e:t},color(t,e,i){const s=(0,n.c)(t||r),o=s.valid&&(0,n.c)(e||r);return o&&o.valid?o.mix(s,i).hexString():e},number(t,e,i){return t+(e-t)*i}};class h{constructor(t,e,i,s){const o=e[i];s=(0,n.a)([t.to,s,o,t.from]);const r=(0,n.a)([t.from,o,s]);this._active=!0,this._fn=t.fn||a[t.type||typeof r],this._easing=n.e[t.easing]||n.e.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=r,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],o=i-this._start,r=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(r,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=(0,n.a)([t.to,e,s,t.from]),this._from=(0,n.a)([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,n=this._prop,s=this._from,o=this._loop,r=this._to;let a;if(this._active=s!==r&&(o||e<i),!this._active)return this._target[n]=r,void this._notify(!0);e<0?this._target[n]=s:(a=e/i%2,a=o&&a>1?2-a:a,a=this._easing(Math.min(1,Math.max(0,a))),this._target[n]=this._fn(s,r,a))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let n=0;n<i.length;n++)i[n][e]()}}class l{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!(0,n.i)(t))return;const e=Object.keys(n.d.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach((s=>{const o=t[s];if(!(0,n.i)(o))return;const r={};for(const t of e)r[t]=o[t];((0,n.b)(o.properties)&&o.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,n=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!n)return[];const s=this._createAnimations(n,i);return i.$shared&&function(t,e){const i=[],n=Object.keys(e);for(let s=0;s<n.length;s++){const e=t[n[s]];e&&e.active()&&i.push(e.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),s}_createAnimations(t,e){const i=this._properties,n=[],s=t.$animations||(t.$animations={}),o=Object.keys(e),r=Date.now();let a;for(a=o.length-1;a>=0;--a){const l=o[a];if("$"===l.charAt(0))continue;if("options"===l){n.push(...this._animateOptions(t,e));continue}const c=e[l];let d=s[l];const u=i.get(l);if(d){if(u&&d.active()){d.update(u,c,r);continue}d.cancel()}u&&u.duration?(s[l]=d=new h(u,t,l,c),n.push(d)):t[l]=c}return n}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(o.add(this._chart,i),!0):void 0}}function c(t,e){const i=t&&t.options||{},n=i.reverse,s=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:n?o:s,end:n?s:o}}function d(t,e){const i=[],n=t._getSortedDatasetMetas(e);let s,o;for(s=0,o=n.length;s<o;++s)i.push(n[s].index);return i}function u(t,e,i,s={}){const o=t.keys,r="single"===s.mode;let a,h,l,c;if(null!==e){for(a=0,h=o.length;a<h;++a){if(l=+o[a],l===i){if(s.all)continue;break}c=t.values[l],(0,n.g)(c)&&(r||0===e||(0,n.s)(e)===(0,n.s)(c))&&(e+=c)}return e}}function f(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function g(t,e,i){const n=t[e]||(t[e]={});return n[i]||(n[i]={})}function p(t,e,i,n){for(const s of e.getMatchingVisibleMetas(n).reverse()){const e=t[s.index];if(i&&e>0||!i&&e<0)return s.index}return null}function x(t,e){const{chart:i,_cachedMeta:n}=t,s=i._stacks||(i._stacks={}),{iScale:o,vScale:r,index:a}=n,h=o.axis,l=r.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,r,n),d=e.length;let u;for(let f=0;f<d;++f){const t=e[f],{[h]:i,[l]:o}=t;u=(t._stacks||(t._stacks={}))[l]=g(s,c,i),u[a]=o,u._top=p(u,r,!0,n.type),u._bottom=p(u,r,!1,n.type);(u._visualValues||(u._visualValues={}))[a]=o}}function m(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function b(t,e){const i=t.controller.index,n=t.vScale&&t.vScale.axis;if(n){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[n]||void 0===e[n][i])return;delete e[n][i],void 0!==e[n]._visualValues&&void 0!==e[n]._visualValues[i]&&delete e[n]._visualValues[i]}}}const y=t=>"reset"===t||"none"===t,_=(t,e)=>e?t:Object.assign({},t);class v{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=f(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&b(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,n)=>"x"===t?e:"r"===t?n:i,o=e.xAxisID=(0,n.v)(i.xAxisID,m(t,"x")),r=e.yAxisID=(0,n.v)(i.yAxisID,m(t,"y")),a=e.rAxisID=(0,n.v)(i.rAxisID,m(t,"r")),h=e.indexAxis,l=e.iAxisID=s(h,o,r,a),c=e.vAxisID=s(h,r,o,a);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(r),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(l),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&(0,n.u)(this._data,this),t._stacked&&b(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if((0,n.i)(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let n,s,o;for(n=0,s=e.length;n<s;++n)o=e[n],i[n]={x:o,y:t[o]};return i}(e);else if(i!==e){if(i){(0,n.u)(i,this);const t=this._cachedMeta;b(t),t._parsed=[]}e&&Object.isExtensible(e)&&(0,n.l)(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let n=!1;this._dataCheck();const s=e._stacked;e._stacked=f(e.vScale,e),e.stack!==i.stack&&(n=!0,b(e),e.stack=i.stack),this._resyncElements(t),(n||s!==e._stacked)&&x(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:o,_stacked:r}=i,a=o.axis;let h,l,c,d=0===t&&e===s.length||i._sorted,u=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,c=s;else{c=(0,n.b)(s[t])?this.parseArrayData(i,s,t,e):(0,n.i)(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const o=()=>null===l[a]||u&&l[a]<u[a];for(h=0;h<e;++h)i._parsed[h+t]=l=c[h],d&&(o()&&(d=!1),u=l);i._sorted=d}r&&x(this,c)}parsePrimitiveData(t,e,i,n){const{iScale:s,vScale:o}=t,r=s.axis,a=o.axis,h=s.getLabels(),l=s===o,c=new Array(n);let d,u,f;for(d=0,u=n;d<u;++d)f=d+i,c[d]={[r]:l||s.parse(h[f],f),[a]:o.parse(e[f],f)};return c}parseArrayData(t,e,i,n){const{xScale:s,yScale:o}=t,r=new Array(n);let a,h,l,c;for(a=0,h=n;a<h;++a)l=a+i,c=e[l],r[a]={x:s.parse(c[0],l),y:o.parse(c[1],l)};return r}parseObjectData(t,e,i,s){const{xScale:o,yScale:r}=t,{xAxisKey:a="x",yAxisKey:h="y"}=this._parsing,l=new Array(s);let c,d,u,f;for(c=0,d=s;c<d;++c)u=c+i,f=e[u],l[c]={x:o.parse((0,n.f)(f,a),u),y:r.parse((0,n.f)(f,h),u)};return l}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const n=this.chart,s=this._cachedMeta,o=e[t.axis];return u({keys:d(n,!0),values:e._stacks[t.axis]._visualValues},o,s.index,{mode:i})}updateRangeFromParsed(t,e,i,n){const s=i[e.axis];let o=null===s?NaN:s;const r=n&&i._stacks[e.axis];n&&r&&(n.values=r,o=u(n,s,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,o=i._sorted&&t===i.iScale,r=s.length,a=this._getOtherScale(t),h=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:d(i,!0),values:null})(e,i,this.chart),l={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:u}=function(t){const{min:e,max:i,minDefined:n,maxDefined:s}=t.getUserBounds();return{min:n?e:Number.NEGATIVE_INFINITY,max:s?i:Number.POSITIVE_INFINITY}}(a);let f,g;function p(){g=s[f];const e=g[a.axis];return!(0,n.g)(g[t.axis])||c>e||u<e}for(f=0;f<r&&(p()||(this.updateRangeFromParsed(l,t,g,h),!o));++f);if(o)for(f=r-1;f>=0;--f)if(!p()){this.updateRangeFromParsed(l,t,g,h);break}return l}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,o,r;for(s=0,o=e.length;s<o;++s)r=e[s][t.axis],(0,n.g)(r)&&i.push(r);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,n=e.vScale,s=this.getParsed(t);return{label:i?""+i.getLabelForValue(s[i.axis]):"",value:n?""+n.getLabelForValue(s[n.axis]):""}}_update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=function(t){let e,i,s,o;return(0,n.i)(t)?(e=t.top,i=t.right,s=t.bottom,o=t.left):e=i=s=o=t,{top:e,right:i,bottom:s,left:o,disabled:!1===t}}((0,n.v)(this.options.clip,function(t,e,i){if(!1===i)return!1;const n=c(t,i),s=c(e,i);return{top:s.end,right:n.end,bottom:s.start,left:n.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,n=i.data||[],s=e.chartArea,o=[],r=this._drawStart||0,a=this._drawCount||n.length-r,h=this.options.drawActiveElementsOnTop;let l;for(i.dataset&&i.dataset.draw(t,s,r,a),l=r;l<r+a;++l){const e=n[l];e.hidden||(e.active&&h?o.push(e):e.draw(t,s))}for(l=0;l<o.length;++l)o[l].draw(t,s)}getStyle(t,e){const i=e?"active":"default";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const s=this.getDataset();let o;if(t>=0&&t<this._cachedMeta.data.length){const e=this._cachedMeta.data[t];o=e.$context||(e.$context=function(t,e,i){return(0,n.j)(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:"default",type:"data"})}(this.getContext(),t,e)),o.parsed=this.getParsed(t),o.raw=s.data[t],o.index=o.dataIndex=t}else o=this.$context||(this.$context=function(t,e){return(0,n.j)(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}(this.chart.getContext(),this.index)),o.dataset=s,o.index=o.datasetIndex=this.index;return o.active=!!e,o.mode=i,o}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e="default",i){const s="active"===e,o=this._cachedDataOpts,r=t+"-"+e,a=o[r],h=this.enableOptionSharing&&(0,n.h)(i);if(a)return _(a,h);const l=this.chart.config,c=l.datasetElementScopeKeys(this._type,t),d=s?[`${t}Hover`,"hover",t,""]:[t,""],u=l.getOptionScopes(this.getDataset(),c),f=Object.keys(n.d.elements[t]),g=l.resolveNamedOptions(u,f,(()=>this.getContext(i,s,e)),d);return g.$shared&&(g.$shared=h,o[r]=Object.freeze(_(g,h))),g}_resolveAnimations(t,e,i){const n=this.chart,s=this._cachedDataOpts,o=`animation-${e}`,r=s[o];if(r)return r;let a;if(!1!==n.options.animation){const n=this.chart.config,s=n.datasetAnimationScopeKeys(this._type,e),o=n.getOptionScopes(this.getDataset(),s);a=n.createResolver(o,this.getContext(t,i,e))}const h=new l(n,a&&a.animations);return a&&a._cacheable&&(s[o]=Object.freeze(h)),h}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||y(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),n=this._sharedOptions,s=this.getSharedOptions(i),o=this.includeOptions(e,s)||s!==n;return this.updateSharedOptions(s,e,i),{sharedOptions:s,includeOptions:o}}updateElement(t,e,i,n){y(n)?Object.assign(t,i):this._resolveAnimations(e,n).update(t,i)}updateSharedOptions(t,e,i){t&&!y(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,n){t.active=n;const s=this.getStyle(e,n);this._resolveAnimations(e,i,n).update(t,{options:!n&&this.getSharedOptions(s)||s})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[r,a,h]of this._syncList)this[r](a,h);this._syncList=[];const n=i.length,s=e.length,o=Math.min(s,n);o&&this.parse(0,o),s>n?this._insertElements(n,s-n,t):s<n&&this._removeElements(s,n-s)}_insertElements(t,e,i=!0){const n=this._cachedMeta,s=n.data,o=t+e;let r;const a=t=>{for(t.length+=e,r=t.length-1;r>=o;r--)t[r]=t[r-e]};for(a(s),r=t;r<o;++r)s[r]=new this.dataElementType;this._parsing&&a(n._parsed),this.parse(t,e),i&&this.updateElements(s,t,e,"reset")}updateElements(t,e,i,n){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const n=i._parsed.splice(t,e);i._stacked&&b(i,n)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,n]=t;this[e](i,n)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,e){e&&this._sync(["_removeElements",t,e]);const i=arguments.length-2;i&&this._sync(["_insertElements",t,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}function w(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;e<n;e++)s=s.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=(0,n._)(s.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let s,o,r,a,h=e._length;const l=()=>{32767!==r&&-32768!==r&&((0,n.h)(a)&&(h=Math.min(h,Math.abs(r-a)||h)),a=r)};for(s=0,o=i.length;s<o;++s)r=e.getPixelForValue(i[s]),l();for(a=void 0,s=0,o=e.ticks.length;s<o;++s)r=e.getPixelForTick(s),l();return h}function k(t,e,i,s){return(0,n.b)(t)?function(t,e,i,n){const s=i.parse(t[0],n),o=i.parse(t[1],n),r=Math.min(s,o),a=Math.max(s,o);let h=r,l=a;Math.abs(r)>Math.abs(a)&&(h=a,l=r),e[i.axis]=l,e._custom={barStart:h,barEnd:l,start:s,end:o,min:r,max:a}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function M(t,e,i,n){const s=t.iScale,o=t.vScale,r=s.getLabels(),a=s===o,h=[];let l,c,d,u;for(l=i,c=i+n;l<c;++l)u=e[l],d={},d[s.axis]=a||s.parse(r[l],l),h.push(k(u,d,o,l));return h}function S(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function P(t,e,i,n){let s=e.borderSkipped;const o={};if(!s)return void(t.borderSkipped=o);if(!0===s)return void(t.borderSkipped={top:!0,right:!0,bottom:!0,left:!0});const{start:r,end:a,reverse:h,top:l,bottom:c}=function(t){let e,i,n,s,o;return t.horizontal?(e=t.base>t.x,i="left",n="right"):(e=t.base<t.y,i="bottom",n="top"),e?(s="end",o="start"):(s="start",o="end"),{start:i,end:n,reverse:e,top:s,bottom:o}}(t);"middle"===s&&i&&(t.enableBorderRadius=!0,(i._top||0)===n?s=l:(i._bottom||0)===n?s=c:(o[C(c,r,a,h)]=!0,s=l)),o[C(s,r,a,h)]=!0,t.borderSkipped=o}function C(t,e,i,n){var s,o,r;return n?(r=i,t=D(t=(s=t)===(o=e)?r:s===r?o:s,i,e)):t=D(t,e,i),t}function D(t,e,i){return"start"===t?e:"end"===t?i:t}function O(t,{inflateAmount:e},i){t.inflateAmount="auto"===e?1===i?.33:0:e}class T extends v{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,n){return M(t,e,i,n)}parseArrayData(t,e,i,n){return M(t,e,i,n)}parseObjectData(t,e,i,s){const{iScale:o,vScale:r}=t,{xAxisKey:a="x",yAxisKey:h="y"}=this._parsing,l="x"===o.axis?a:h,c="x"===r.axis?a:h,d=[];let u,f,g,p;for(u=i,f=i+s;u<f;++u)p=e[u],g={},g[o.axis]=o.parse((0,n.f)(p,l),u),d.push(k((0,n.f)(p,c),g,r,u));return d}updateRangeFromParsed(t,e,i,n){super.updateRangeFromParsed(t,e,i,n);const s=i._custom;s&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,s.min),t.max=Math.max(t.max,s.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:n}=e,s=this.getParsed(t),o=s._custom,r=S(o)?"["+o.start+", "+o.end+"]":""+n.getLabelForValue(s[n.axis]);return{label:""+i.getLabelForValue(s[i.axis]),value:r}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,s){const o="reset"===s,{index:r,_cachedMeta:{vScale:a}}=this,h=a.getBasePixel(),l=a.isHorizontal(),c=this._getRuler(),{sharedOptions:d,includeOptions:u}=this._getSharedOptions(e,s);for(let f=e;f<e+i;f++){const e=this.getParsed(f),i=o||(0,n.k)(e[a.axis])?{base:h,head:h}:this._calculateBarValuePixels(f),g=this._calculateBarIndexPixels(f,c),p=(e._stacks||{})[a.axis],x={horizontal:l,base:i.base,enableBorderRadius:!p||S(e._custom)||r===p._top||r===p._bottom,x:l?i.head:g.center,y:l?g.center:i.head,height:l?g.size:Math.abs(i.size),width:l?Math.abs(i.size):g.size};u&&(x.options=d||this.resolveDataElementOptions(f,t[f].active?"active":s));const m=x.options||t[f].options;P(x,m,p,r),O(x,m,c.ratio),this.updateElement(t[f],f,x,s)}}_getStacks(t,e){const{iScale:i}=this._cachedMeta,s=i.getMatchingVisibleMetas(this._type).filter((t=>t.controller.options.grouped)),o=i.options.stacked,r=[],a=t=>{const i=t.controller.getParsed(e),s=i&&i[t.vScale.axis];if((0,n.k)(s)||isNaN(s))return!0};for(const n of s)if((void 0===e||!a(n))&&((!1===o||-1===r.indexOf(n.stack)||void 0===o&&void 0===n.stack)&&r.push(n.stack),n.index===t))break;return r.length||r.push(void 0),r}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const n=this._getStacks(t,i),s=void 0!==e?n.indexOf(e):-1;return-1===s?n.length-1:s}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,n=[];let s,o;for(s=0,o=e.data.length;s<o;++s)n.push(i.getPixelForValue(this.getParsed(s)[i.axis],s));const r=t.barThickness;return{min:r||w(e),pixels:n,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:r?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i,index:s},options:{base:o,minBarLength:r}}=this,a=o||0,h=this.getParsed(t),l=h._custom,c=S(l);let d,u,f=h[e.axis],g=0,p=i?this.applyStack(e,h,i):f;p!==f&&(g=p-f,p=f),c&&(f=l.barStart,p=l.barEnd-l.barStart,0!==f&&(0,n.s)(f)!==(0,n.s)(l.barEnd)&&(g=0),g+=f);const x=(0,n.k)(o)||c?g:o;let m=e.getPixelForValue(x);if(d=this.chart.getDataVisibility(t)?e.getPixelForValue(g+p):m,u=d-m,Math.abs(u)<r){u=function(t,e,i){return 0!==t?(0,n.s)(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(u,e,a)*r,f===a&&(m-=u/2);const t=e.getPixelForDecimal(0),o=e.getPixelForDecimal(1),l=Math.min(t,o),g=Math.max(t,o);m=Math.max(Math.min(m,g),l),d=m+u,i&&!c&&(h._stacks[e.axis]._visualValues[s]=e.getValueForPixel(d)-e.getValueForPixel(m))}if(m===e.getPixelForValue(a)){const t=(0,n.s)(u)*e.getLineWidthForValue(a)/2;m+=t,u-=t}return{size:u,base:m,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,s=this.options,o=s.skipNull,r=(0,n.v)(s.maxBarThickness,1/0);let a,h;if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,l="flex"===s.barThickness?function(t,e,i,n){const s=e.pixels,o=s[t];let r=t>0?s[t-1]:null,a=t<s.length-1?s[t+1]:null;const h=i.categoryPercentage;null===r&&(r=o-(null===a?e.end-e.start:a-o)),null===a&&(a=o+o-r);const l=o-(o-Math.min(r,a))/2*h;return{chunk:Math.abs(a-r)/2*h/n,ratio:i.barPercentage,start:l}}(t,e,s,i):function(t,e,i,s){const o=i.barThickness;let r,a;return(0,n.k)(o)?(r=e.min*i.categoryPercentage,a=i.barPercentage):(r=o*s,a=1),{chunk:r/s,ratio:a,start:e.pixels[t]-r/2}}(t,e,s,i),c=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0);a=l.start+l.chunk*c+l.chunk/2,h=Math.min(r,l.chunk*l.ratio)}else a=i.getPixelForValue(this.getParsed(t)[i.axis],t),h=Math.min(r,e.min*e.ratio);return{base:a-h/2,head:a+h/2,center:a,size:h}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,n=i.length;let s=0;for(;s<n;++s)null!==this.getParsed(s)[e.axis]&&i[s].draw(this._ctx)}}class A extends v{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:o}=e,r=this.chart._animationsDisabled;let{start:a,count:h}=(0,n.q)(e,s,r);this._drawStart=a,this._drawCount=h,(0,n.w)(e)&&(a=0,h=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!r,options:l},t),this.updateElements(s,a,h,t)}updateElements(t,e,i,s){const o="reset"===s,{iScale:r,vScale:a,_stacked:h,_dataset:l}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,s),u=r.axis,f=a.axis,{spanGaps:g,segment:p}=this.options,x=(0,n.x)(g)?g:Number.POSITIVE_INFINITY,m=this.chart._animationsDisabled||o||"none"===s,b=e+i,y=t.length;let _=e>0&&this.getParsed(e-1);for(let v=0;v<y;++v){const i=t[v],g=m?i:{};if(v<e||v>=b){g.skip=!0;continue}const y=this.getParsed(v),w=(0,n.k)(y[f]),k=g[u]=r.getPixelForValue(y[u],v),M=g[f]=o||w?a.getBasePixel():a.getPixelForValue(h?this.applyStack(a,y,h):y[f],v);g.skip=isNaN(k)||isNaN(M)||w,g.stop=v>0&&Math.abs(y[u]-_[u])>x,p&&(g.parsed=y,g.raw=l.data[v]),d&&(g.options=c||this.resolveDataElementOptions(v,i.active?"active":s)),m||this.updateElement(i,v,g,s),_=y}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,n=t.data||[];if(!n.length)return i;const s=n[0].size(this.resolveDataElementOptions(0)),o=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(i,s,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}function L(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class I{static override(t){Object.assign(I.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return L()}parse(){return L()}format(){return L()}add(){return L()}diff(){return L()}startOf(){return L()}endOf(){return L()}}var E={_date:I};function R(t,e,i,s){const{controller:o,data:r,_sorted:a}=t,h=o._cachedMeta.iScale;if(h&&e===h.axis&&"r"!==e&&a&&r.length){const t=h._reversePixels?n.A:n.B;if(!s)return t(r,e,i);if(o._sharedOptions){const n=r[0],s="function"===typeof n.getRange&&n.getRange(e);if(s){const n=t(r,e,i-s),o=t(r,e,i+s);return{lo:n.lo,hi:o.hi}}}}return{lo:0,hi:r.length-1}}function z(t,e,i,n,s){const o=t.getSortedVisibleDatasetMetas(),r=i[e];for(let a=0,h=o.length;a<h;++a){const{index:t,data:i}=o[a],{lo:h,hi:l}=R(o[a],e,r,s);for(let e=h;e<=l;++e){const s=i[e];s.skip||n(s,t,e)}}}function F(t,e,i,s,o){const r=[];if(!o&&!t.isPointInArea(e))return r;return z(t,i,e,(function(i,a,h){(o||(0,n.C)(i,t.chartArea,0))&&i.inRange(e.x,e.y,s)&&r.push({element:i,datasetIndex:a,index:h})}),!0),r}function j(t,e,i,n,s,o){let r=[];const a=function(t){const e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){const s=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(s,2)+Math.pow(o,2))}}(i);let h=Number.POSITIVE_INFINITY;return z(t,i,e,(function(i,l,c){const d=i.inRange(e.x,e.y,s);if(n&&!d)return;const u=i.getCenterPoint(s);if(!(!!o||t.isPointInArea(u))&&!d)return;const f=a(e,u);f<h?(r=[{element:i,datasetIndex:l,index:c}],h=f):f===h&&r.push({element:i,datasetIndex:l,index:c})})),r}function W(t,e,i,s,o,r){return r||t.isPointInArea(e)?"r"!==i||s?j(t,e,i,s,o,r):function(t,e,i,s){let o=[];return z(t,i,e,(function(t,i,r){const{startAngle:a,endAngle:h}=t.getProps(["startAngle","endAngle"],s),{angle:l}=(0,n.D)(t,{x:e.x,y:e.y});(0,n.p)(l,a,h)&&o.push({element:t,datasetIndex:i,index:r})})),o}(t,e,i,o):[]}function B(t,e,i,n,s){const o=[],r="x"===i?"inXRange":"inYRange";let a=!1;return z(t,i,e,((t,n,h)=>{t[r](e[i],s)&&(o.push({element:t,datasetIndex:n,index:h}),a=a||t.inRange(e.x,e.y,s))})),n&&!a?[]:o}var V={evaluateInteractionItems:z,modes:{index(t,e,i,s){const o=(0,n.z)(e,t),r=i.axis||"x",a=i.includeInvisible||!1,h=i.intersect?F(t,o,r,s,a):W(t,o,r,!1,s,a),l=[];return h.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=h[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const o=(0,n.z)(e,t),r=i.axis||"xy",a=i.includeInvisible||!1;let h=i.intersect?F(t,o,r,s,a):W(t,o,r,!1,s,a);if(h.length>0){const e=h[0].datasetIndex,i=t.getDatasetMeta(e).data;h=[];for(let t=0;t<i.length;++t)h.push({element:i[t],datasetIndex:e,index:t})}return h},point(t,e,i,s){return F(t,(0,n.z)(e,t),i.axis||"xy",s,i.includeInvisible||!1)},nearest(t,e,i,s){const o=(0,n.z)(e,t),r=i.axis||"xy",a=i.includeInvisible||!1;return W(t,o,r,i.intersect,s,a)},x(t,e,i,s){return B(t,(0,n.z)(e,t),"x",i.intersect,s)},y(t,e,i,s){return B(t,(0,n.z)(e,t),"y",i.intersect,s)}}};const H=["left","top","right","bottom"];function N(t,e){return t.filter((t=>t.pos===e))}function Y(t,e){return t.filter((t=>-1===H.indexOf(t.pos)&&t.box.axis===e))}function $(t,e){return t.sort(((t,i)=>{const n=e?i:t,s=e?t:i;return n.weight===s.weight?n.index-s.index:n.weight-s.weight}))}function X(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:n,stackWeight:s}=i;if(!t||!H.includes(n))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=s}return e}(t),{vBoxMaxWidth:n,hBoxMaxHeight:s}=e;let o,r,a;for(o=0,r=t.length;o<r;++o){a=t[o];const{fullSize:r}=a.box,h=i[a.stack],l=h&&a.stackWeight/h.weight;a.horizontal?(a.width=l?l*n:r&&e.availableWidth,a.height=s):(a.width=n,a.height=l?l*s:r&&e.availableHeight)}return i}function U(t,e,i,n){return Math.max(t[i],e[i])+Math.max(t[n],e[n])}function Q(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function q(t,e,i,s){const{pos:o,box:r}=i,a=t.maxPadding;if(!(0,n.i)(o)){i.size&&(t[o]-=i.size);const e=s[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?r.height:r.width),i.size=e.size/e.count,t[o]+=i.size}r.getPadding&&Q(a,r.getPadding());const h=Math.max(0,e.outerWidth-U(a,t,"left","right")),l=Math.max(0,e.outerHeight-U(a,t,"top","bottom")),c=h!==t.w,d=l!==t.h;return t.w=h,t.h=l,i.horizontal?{same:c,other:d}:{same:d,other:c}}function K(t,e){const i=e.maxPadding;function n(t){const n={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{n[t]=Math.max(e[t],i[t])})),n}return n(t?["left","right"]:["top","bottom"])}function J(t,e,i,n){const s=[];let o,r,a,h,l,c;for(o=0,r=t.length,l=0;o<r;++o){a=t[o],h=a.box,h.update(a.width||e.w,a.height||e.h,K(a.horizontal,e));const{same:r,other:d}=q(e,i,a,n);l|=r&&s.length,c=c||d,h.fullSize||s.push(a)}return l&&J(s,e,i,n)||c}function Z(t,e,i,n,s){t.top=i,t.left=e,t.right=e+n,t.bottom=i+s,t.width=n,t.height=s}function G(t,e,i,s){const o=i.padding;let{x:r,y:a}=e;for(const h of t){const t=h.box,l=s[h.stack]||{count:1,placed:0,weight:1},c=h.stackWeight/l.weight||1;if(h.horizontal){const s=e.w*c,r=l.size||t.height;(0,n.h)(l.start)&&(a=l.start),t.fullSize?Z(t,o.left,a,i.outerWidth-o.right-o.left,r):Z(t,e.left+l.placed,a,s,r),l.start=a,l.placed+=s,a=t.bottom}else{const s=e.h*c,a=l.size||t.width;(0,n.h)(l.start)&&(r=l.start),t.fullSize?Z(t,r,o.top,a,i.outerHeight-o.bottom-o.top):Z(t,r,e.top+l.placed,a,s),l.start=r,l.placed+=s,r=t.right}}e.x=r,e.y=a}var tt={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||"top",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,s){if(!t)return;const o=(0,n.E)(t.options.layout.padding),r=Math.max(e-o.width,0),a=Math.max(i-o.height,0),h=function(t){const e=function(t){const e=[];let i,n,s,o,r,a;for(i=0,n=(t||[]).length;i<n;++i)s=t[i],({position:o,options:{stack:r,stackWeight:a=1}}=s),e.push({index:i,box:s,pos:o,horizontal:s.isHorizontal(),weight:s.weight,stack:r&&o+r,stackWeight:a});return e}(t),i=$(e.filter((t=>t.box.fullSize)),!0),n=$(N(e,"left"),!0),s=$(N(e,"right")),o=$(N(e,"top"),!0),r=$(N(e,"bottom")),a=Y(e,"x"),h=Y(e,"y");return{fullSize:i,leftAndTop:n.concat(o),rightAndBottom:s.concat(h).concat(r).concat(a),chartArea:N(e,"chartArea"),vertical:n.concat(s).concat(h),horizontal:o.concat(r).concat(a)}}(t.boxes),l=h.vertical,c=h.horizontal;(0,n.F)(t.boxes,(t=>{"function"===typeof t.beforeLayout&&t.beforeLayout()}));const d=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,u=Object.freeze({outerWidth:e,outerHeight:i,padding:o,availableWidth:r,availableHeight:a,vBoxMaxWidth:r/2/d,hBoxMaxHeight:a/2}),f=Object.assign({},o);Q(f,(0,n.E)(s));const g=Object.assign({maxPadding:f,w:r,h:a,x:o.left,y:o.top},o),p=X(l.concat(c),u);J(h.fullSize,g,u,p),J(l,g,u,p),J(c,g,u,p)&&J(l,g,u,p),function(t){const e=t.maxPadding;function i(i){const n=Math.max(e[i]-t[i],0);return t[i]+=n,n}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),G(h.leftAndTop,g,u,p),g.x+=g.w,g.y+=g.h,G(h.rightAndBottom,g,u,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},(0,n.F)(h.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class et{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,n){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,n?Math.floor(e/n):i)}}isAttached(t){return!0}updateConfig(t){}}class it extends et{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const nt="$chartjs",st={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},ot=t=>null===t||""===t;const rt=!!n.K&&{passive:!0};function at(t,e,i){t.canvas.removeEventListener(e,i,rt)}function ht(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function lt(t,e,i){const n=t.canvas,s=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ht(i.addedNodes,n),e=e&&!ht(i.removedNodes,n);e&&i()}));return s.observe(document,{childList:!0,subtree:!0}),s}function ct(t,e,i){const n=t.canvas,s=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ht(i.removedNodes,n),e=e&&!ht(i.addedNodes,n);e&&i()}));return s.observe(document,{childList:!0,subtree:!0}),s}const dt=new Map;let ut=0;function ft(){const t=window.devicePixelRatio;t!==ut&&(ut=t,dt.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function gt(t,e,i){const s=t.canvas,o=s&&(0,n.I)(s);if(!o)return;const r=(0,n.L)(((t,e)=>{const n=o.clientWidth;i(t,e),n<o.clientWidth&&i()}),window),a=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,n=e.contentRect.height;0===i&&0===n||r(i,n)}));return a.observe(o),function(t,e){dt.size||window.addEventListener("resize",ft),dt.set(t,e)}(t,r),a}function pt(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){dt.delete(t),dt.size||window.removeEventListener("resize",ft)}(t)}function xt(t,e,i){const s=t.canvas,o=(0,n.L)((e=>{null!==t.ctx&&i(function(t,e){const i=st[t.type]||t.type,{x:s,y:o}=(0,n.z)(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==o?o:null}}(e,t))}),t);return function(t,e,i){t.addEventListener(e,i,rt)}(s,e,o),o}class mt extends et{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),o=t.getAttribute("width");if(t[nt]={initial:{height:s,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",ot(o)){const e=(0,n.J)(t,"width");void 0!==e&&(t.width=e)}if(ot(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=(0,n.J)(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[nt])return!1;const i=e[nt].initial;["height","width"].forEach((t=>{const s=i[t];(0,n.k)(s)?e.removeAttribute(t):e.setAttribute(t,s)}));const s=i.style||{};return Object.keys(s).forEach((t=>{e.style[t]=s[t]})),e.width=e.width,delete e[nt],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const n=t.$proxies||(t.$proxies={}),s={attach:lt,detach:ct,resize:gt}[e]||xt;n[e]=s(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),n=i[e];if(!n)return;({attach:pt,detach:pt,resize:pt}[e]||at)(t,e,n),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return(0,n.G)(t,e,i,s)}isAttached(t){const e=(0,n.I)(t);return!(!e||!e.isConnected)}}class bt{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}hasValue(){return(0,n.x)(this.x)&&(0,n.x)(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const n={};return t.forEach((t=>{n[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),n}}function yt(t,e){const i=t.options.ticks,s=function(t){const e=t.options.offset,i=t._tickSize(),n=t._length/i+(e?0:1),s=t._maxLength/i;return Math.floor(Math.min(n,s))}(t),o=Math.min(i.maxTicksLimit||s,s),r=i.major.enabled?function(t){const e=[];let i,n;for(i=0,n=t.length;i<n;i++)t[i].major&&e.push(i);return e}(e):[],a=r.length,h=r[0],l=r[a-1],c=[];if(a>o)return function(t,e,i,n){let s,o=0,r=i[0];for(n=Math.ceil(n),s=0;s<t.length;s++)s===r&&(e.push(t[s]),o++,r=i[o*n])}(e,c,r,a/o),c;const d=function(t,e,i){const s=function(t){const e=t.length;let i,n;if(e<2)return!1;for(n=t[0],i=1;i<e;++i)if(t[i]-t[i-1]!==n)return!1;return n}(t),o=e.length/i;if(!s)return Math.max(o,1);const r=(0,n.N)(s);for(let n=0,a=r.length-1;n<a;n++){const t=r[n];if(t>o)return t}return Math.max(o,1)}(r,e,o);if(a>0){let t,i;const s=a>1?Math.round((l-h)/(a-1)):null;for(_t(e,c,d,(0,n.k)(s)?0:h-s,h),t=0,i=a-1;t<i;t++)_t(e,c,d,r[t],r[t+1]);return _t(e,c,d,l,(0,n.k)(s)?e.length:l+s),c}return _t(e,c,d),c}function _t(t,e,i,s,o){const r=(0,n.v)(s,0),a=Math.min((0,n.v)(o,t.length),t.length);let h,l,c,d=0;for(i=Math.ceil(i),o&&(h=o-s,i=h/Math.floor(h/i)),c=r;c<0;)d++,c=Math.round(r+d*i);for(l=Math.max(r,0);l<a;l++)l===c&&(e.push(t[l]),d++,c=Math.round(r+d*i))}const vt=(t,e,i)=>"top"===e||"left"===e?t[e]+i:t[e]-i,wt=(t,e)=>Math.min(e||t,t);function kt(t,e){const i=[],n=t.length/e,s=t.length;let o=0;for(;o<s;o+=n)i.push(t[Math.floor(o)]);return i}function Mt(t,e,i){const n=t.ticks.length,s=Math.min(e,n-1),o=t._startPixel,r=t._endPixel,a=1e-6;let h,l=t.getPixelForTick(s);if(!(i&&(h=1===n?Math.max(l-o,r-l):0===e?(t.getPixelForTick(1)-l)/2:(l-t.getPixelForTick(s-1))/2,l+=s<e?h:-h,l<o-a||l>r+a)))return l}function St(t){return t.drawTicks?t.tickLength:0}function Pt(t,e){if(!t.display)return 0;const i=(0,n.a0)(t.font,e),s=(0,n.E)(t.padding);return((0,n.b)(t.text)?t.text.length:1)*i.lineHeight+s.height}function Ct(t,e,i){let s=(0,n.a1)(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class Dt extends bt{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=(0,n.O)(t,Number.POSITIVE_INFINITY),e=(0,n.O)(e,Number.NEGATIVE_INFINITY),i=(0,n.O)(i,Number.POSITIVE_INFINITY),s=(0,n.O)(s,Number.NEGATIVE_INFINITY),{min:(0,n.O)(t,i),max:(0,n.O)(e,s),minDefined:(0,n.g)(t),maxDefined:(0,n.g)(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:o,maxDefined:r}=this.getUserBounds();if(o&&r)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let n=0,h=a.length;n<h;++n)e=a[n].controller.getMinMax(this,t),o||(i=Math.min(i,e.min)),r||(s=Math.max(s,e.max));return i=r&&i>s?s:i,s=o&&i>s?i:s,{min:(0,n.O)(i,(0,n.O)(s,i)),max:(0,n.O)(s,(0,n.O)(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){(0,n.Q)(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:o,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=(0,n.R)(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const h=a<this.ticks.length;this._convertTicksToLabels(h?kt(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),r.display&&(r.autoSkip||"auto"===r.source)&&(this.ticks=yt(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),h&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){(0,n.Q)(this.options.afterUpdate,[this])}beforeSetDimensions(){(0,n.Q)(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){(0,n.Q)(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,n.Q)(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){(0,n.Q)(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,s,o;for(i=0,s=t.length;i<s;i++)o=t[i],o.label=(0,n.Q)(e.callback,[o.value,i,t],this)}afterTickToLabelConversion(){(0,n.Q)(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){(0,n.Q)(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=wt(this.ticks.length,t.ticks.maxTicksLimit),s=e.minRotation||0,o=e.maxRotation;let r,a,h,l=s;if(!this._isVisible()||!e.display||s>=o||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const c=this._getLabelSizes(),d=c.widest.width,u=c.highest.height,f=(0,n.S)(this.chart.width-d,0,this.maxWidth);r=t.offset?this.maxWidth/i:f/(i-1),d+6>r&&(r=f/(i-(t.offset?.5:1)),a=this.maxHeight-St(t.grid)-e.padding-Pt(t.title,this.chart.options.font),h=Math.sqrt(d*d+u*u),l=(0,n.U)(Math.min(Math.asin((0,n.S)((c.highest.height+6)/r,-1,1)),Math.asin((0,n.S)(a/h,-1,1))-Math.asin((0,n.S)(u/h,-1,1)))),l=Math.max(s,Math.min(o,l))),this.labelRotation=l}afterCalculateLabelRotation(){(0,n.Q)(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){(0,n.Q)(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:o}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const r=Pt(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=St(o)+r):(t.height=this.maxHeight,t.width=St(o)+r),i.display&&this.ticks.length){const{first:e,last:s,widest:o,highest:r}=this._getLabelSizes(),h=2*i.padding,l=(0,n.t)(this.labelRotation),c=Math.cos(l),d=Math.sin(l);if(a){const e=i.mirror?0:d*o.width+c*r.height;t.height=Math.min(this.maxHeight,t.height+e+h)}else{const e=i.mirror?0:c*o.width+d*r.height;t.width=Math.min(this.maxWidth,t.width+e+h)}this._calculatePadding(e,s,d,c)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,n){const{ticks:{align:s,padding:o},position:r}=this.options,a=0!==this.labelRotation,h="top"!==r&&"x"===this.axis;if(this.isHorizontal()){const r=this.getPixelForTick(0)-this.left,l=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;a?h?(c=n*t.width,d=i*e.height):(c=i*t.height,d=n*e.width):"start"===s?d=e.width:"end"===s?c=t.width:"inner"!==s&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-r+o)*this.width/(this.width-r),0),this.paddingRight=Math.max((d-l+o)*this.width/(this.width-l),0)}else{let i=e.height/2,n=t.height/2;"start"===s?(i=0,n=t.height):"end"===s&&(i=e.height,n=0),this.paddingTop=i+o,this.paddingBottom=n+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){(0,n.Q)(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e<i;e++)(0,n.k)(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e<i.length&&(i=kt(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,e,i){const{ctx:s,_longestTextCache:o}=this,r=[],a=[],h=Math.floor(e/wt(e,i));let l,c,d,u,f,g,p,x,m,b,y,_=0,v=0;for(l=0;l<e;l+=h){if(u=t[l].label,f=this._resolveTickFontOptions(l),s.font=g=f.string,p=o[g]=o[g]||{data:{},gc:[]},x=f.lineHeight,m=b=0,(0,n.k)(u)||(0,n.b)(u)){if((0,n.b)(u))for(c=0,d=u.length;c<d;++c)y=u[c],(0,n.k)(y)||(0,n.b)(y)||(m=(0,n.V)(s,p.data,p.gc,m,y),b+=x)}else m=(0,n.V)(s,p.data,p.gc,m,u),b=x;r.push(m),a.push(b),_=Math.max(m,_),v=Math.max(b,v)}!function(t,e){(0,n.F)(t,(t=>{const i=t.gc,n=i.length/2;let s;if(n>e){for(s=0;s<n;++s)delete t.data[i[s]];i.splice(0,n)}}))}(o,e);const w=r.indexOf(_),k=a.indexOf(v),M=t=>({width:r[t]||0,height:a[t]||0});return{first:M(0),last:M(e-1),widest:M(w),highest:M(k),widths:r,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return(0,n.W)(this._alignToPixels?(0,n.X)(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t<e.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return(0,n.j)(t,{tick:i,index:e,type:"tick"})}(this.getContext(),t,i))}return this.$context||(this.$context=(i=this.chart.getContext(),s=this,(0,n.j)(i,{scale:s,type:"scale"})));var i,s}_tickSize(){const t=this.options.ticks,e=(0,n.t)(this.labelRotation),i=Math.abs(Math.cos(e)),s=Math.abs(Math.sin(e)),o=this._getLabelSizes(),r=t.autoSkipPadding||0,a=o?o.widest.width+r:0,h=o?o.highest.height+r:0;return this.isHorizontal()?h*i>a*s?a/i:h/s:h*s<a*i?h/i:a/s}_isVisible(){const t=this.options.display;return"auto"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:o,position:r,border:a}=s,h=o.offset,l=this.isHorizontal(),c=this.ticks.length+(h?1:0),d=St(o),u=[],f=a.setContext(this.getContext()),g=f.display?f.width:0,p=g/2,x=function(t){return(0,n.X)(i,t,g)};let m,b,y,_,v,w,k,M,S,P,C,D;if("top"===r)m=x(this.bottom),w=this.bottom-d,M=m-p,P=x(t.top)+p,D=t.bottom;else if("bottom"===r)m=x(this.top),P=t.top,D=x(t.bottom)-p,w=m+p,M=this.top+d;else if("left"===r)m=x(this.right),v=this.right-d,k=m-p,S=x(t.left)+p,C=t.right;else if("right"===r)m=x(this.left),S=t.left,C=x(t.right)-p,v=m+p,k=this.left+d;else if("x"===e){if("center"===r)m=x((t.top+t.bottom)/2+.5);else if((0,n.i)(r)){const t=Object.keys(r)[0],e=r[t];m=x(this.chart.scales[t].getPixelForValue(e))}P=t.top,D=t.bottom,w=m+p,M=w+d}else if("y"===e){if("center"===r)m=x((t.left+t.right)/2);else if((0,n.i)(r)){const t=Object.keys(r)[0],e=r[t];m=x(this.chart.scales[t].getPixelForValue(e))}v=m-p,k=v-d,S=t.left,C=t.right}const O=(0,n.v)(s.ticks.maxTicksLimit,c),T=Math.max(1,Math.ceil(c/O));for(b=0;b<c;b+=T){const t=this.getContext(b),e=o.setContext(t),s=a.setContext(t),r=e.lineWidth,c=e.color,d=s.dash||[],f=s.dashOffset,g=e.tickWidth,p=e.tickColor,x=e.tickBorderDash||[],m=e.tickBorderDashOffset;y=Mt(this,b,h),void 0!==y&&(_=(0,n.X)(i,y,r),l?v=k=S=C=_:w=M=P=D=_,u.push({tx1:v,ty1:w,tx2:k,ty2:M,x1:S,y1:P,x2:C,y2:D,width:r,color:c,borderDash:d,borderDashOffset:f,tickWidth:g,tickColor:p,tickBorderDash:x,tickBorderDashOffset:m}))}return this._ticksLength=c,this._borderValue=m,u}_computeLabelItems(t){const e=this.axis,i=this.options,{position:s,ticks:o}=i,r=this.isHorizontal(),a=this.ticks,{align:h,crossAlign:l,padding:c,mirror:d}=o,u=St(i.grid),f=u+c,g=d?-c:f,p=-(0,n.t)(this.labelRotation),x=[];let m,b,y,_,v,w,k,M,S,P,C,D,O="middle";if("top"===s)w=this.bottom-g,k=this._getXAxisLabelAlignment();else if("bottom"===s)w=this.top+g,k=this._getXAxisLabelAlignment();else if("left"===s){const t=this._getYAxisLabelAlignment(u);k=t.textAlign,v=t.x}else if("right"===s){const t=this._getYAxisLabelAlignment(u);k=t.textAlign,v=t.x}else if("x"===e){if("center"===s)w=(t.top+t.bottom)/2+f;else if((0,n.i)(s)){const t=Object.keys(s)[0],e=s[t];w=this.chart.scales[t].getPixelForValue(e)+f}k=this._getXAxisLabelAlignment()}else if("y"===e){if("center"===s)v=(t.left+t.right)/2-f;else if((0,n.i)(s)){const t=Object.keys(s)[0],e=s[t];v=this.chart.scales[t].getPixelForValue(e)}k=this._getYAxisLabelAlignment(u).textAlign}"y"===e&&("start"===h?O="top":"end"===h&&(O="bottom"));const T=this._getLabelSizes();for(m=0,b=a.length;m<b;++m){y=a[m],_=y.label;const t=o.setContext(this.getContext(m));M=this.getPixelForTick(m)+o.labelOffset,S=this._resolveTickFontOptions(m),P=S.lineHeight,C=(0,n.b)(_)?_.length:1;const e=C/2,i=t.color,h=t.textStrokeColor,c=t.textStrokeWidth;let u,f=k;if(r?(v=M,"inner"===k&&(f=m===b-1?this.options.reverse?"left":"right":0===m?this.options.reverse?"right":"left":"center"),D="top"===s?"near"===l||0!==p?-C*P+P/2:"center"===l?-T.highest.height/2-e*P+P:-T.highest.height+P/2:"near"===l||0!==p?P/2:"center"===l?T.highest.height/2-e*P:T.highest.height-C*P,d&&(D*=-1),0===p||t.showLabelBackdrop||(v+=P/2*Math.sin(p))):(w=M,D=(1-C)*P/2),t.showLabelBackdrop){const e=(0,n.E)(t.backdropPadding),i=T.heights[m],s=T.widths[m];let o=D-e.top,r=0-e.left;switch(O){case"middle":o-=i/2;break;case"bottom":o-=i}switch(k){case"center":r-=s/2;break;case"right":r-=s}u={left:r,top:o,width:s+e.width,height:i+e.height,color:t.backdropColor}}x.push({label:_,font:S,textOffset:D,options:{rotation:p,color:i,strokeColor:h,strokeWidth:c,textAlign:f,textBaseline:O,translation:[v,w],backdrop:u}})}return x}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-(0,n.t)(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:n,padding:s}}=this.options,o=t+s,r=this._getLabelSizes().widest.width;let a,h;return"left"===e?n?(h=this.right+s,"near"===i?a="left":"center"===i?(a="center",h+=r/2):(a="right",h+=r)):(h=this.right-o,"near"===i?a="right":"center"===i?(a="center",h-=r/2):(a="left",h=this.left)):"right"===e?n?(h=this.left+s,"near"===i?a="right":"center"===i?(a="center",h-=r/2):(a="left",h-=r)):(h=this.left+o,"near"===i?a="left":"center"===i?(a="center",h+=r/2):(a="right",h=this.right)):a="right",{textAlign:a,x:h}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:n,width:s,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,n,s,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let s,o;const r=(t,e,n)=>{n.width&&n.color&&(i.save(),i.lineWidth=n.width,i.strokeStyle=n.color,i.setLineDash(n.borderDash||[]),i.lineDashOffset=n.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(s=0,o=n.length;s<o;++s){const t=n[s];e.drawOnChartArea&&r({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&r({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{border:i,grid:s}}=this,o=i.setContext(this.getContext()),r=i.display?o.width:0;if(!r)return;const a=s.setContext(this.getContext(0)).lineWidth,h=this._borderValue;let l,c,d,u;this.isHorizontal()?(l=(0,n.X)(t,this.left,r)-r/2,c=(0,n.X)(t,this.right,a)+a/2,d=u=h):(d=(0,n.X)(t,this.top,r)-r/2,u=(0,n.X)(t,this.bottom,a)+a/2,l=c=h),e.save(),e.lineWidth=o.width,e.strokeStyle=o.color,e.beginPath(),e.moveTo(l,d),e.lineTo(c,u),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&(0,n.Y)(e,i);const s=this.getLabelItems(t);for(const o of s){const t=o.options,i=o.font,s=o.label,r=o.textOffset;(0,n.Z)(e,s,0,r,i,t)}i&&(0,n.$)(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:s}}=this;if(!i.display)return;const o=(0,n.a0)(i.font),r=(0,n.E)(i.padding),a=i.align;let h=o.lineHeight/2;"bottom"===e||"center"===e||(0,n.i)(e)?(h+=r.bottom,(0,n.b)(i.text)&&(h+=o.lineHeight*(i.text.length-1))):h+=r.top;const{titleX:l,titleY:c,maxWidth:d,rotation:u}=function(t,e,i,s){const{top:o,left:r,bottom:a,right:h,chart:l}=t,{chartArea:c,scales:d}=l;let u,f,g,p=0;const x=a-o,m=h-r;if(t.isHorizontal()){if(f=(0,n.a2)(s,r,h),(0,n.i)(i)){const t=Object.keys(i)[0],n=i[t];g=d[t].getPixelForValue(n)+x-e}else g="center"===i?(c.bottom+c.top)/2+x-e:vt(t,i,e);u=h-r}else{if((0,n.i)(i)){const t=Object.keys(i)[0],n=i[t];f=d[t].getPixelForValue(n)-m+e}else f="center"===i?(c.left+c.right)/2-m+e:vt(t,i,e);g=(0,n.a2)(s,a,o),p="left"===i?-n.H:n.H}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,h,e,a);(0,n.Z)(t,i.text,0,0,o,{color:i.color,maxWidth:d,rotation:u,textAlign:Ct(a,e,s),textBaseline:"middle",translation:[l,c]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=(0,n.v)(t.grid&&t.grid.z,-1),s=(0,n.v)(t.border&&t.border.z,0);return this._isVisible()&&this.draw===Dt.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",n=[];let s,o;for(s=0,o=e.length;s<o;++s){const o=e[s];o[i]!==this.id||t&&o.type!==t||n.push(o)}return n}_resolveTickFontOptions(t){const e=this.options.ticks.setContext(this.getContext(t));return(0,n.a0)(e.font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Ot{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return"id"in t&&"defaults"in t})(e)&&(i=this.register(e));const s=this.items,o=t.id,r=this.scope+"."+o;if(!o)throw new Error("class does not have id: "+t);return o in s||(s[o]=t,function(t,e,i){const s=(0,n.a4)(Object.create(null),[i?n.d.get(i):{},n.d.get(e),t.defaults]);n.d.set(e,s),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const s=i.split("."),o=s.pop(),r=[t].concat(s).join("."),a=e[i].split("."),h=a.pop(),l=a.join(".");n.d.route(r,o,l,h)}))}(e,t.defaultRoutes);t.descriptors&&n.d.describe(e,t.descriptors)}(t,r,i),this.override&&n.d.override(t.id,t.overrides)),r}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in n.d[s]&&(delete n.d[s][i],this.override&&delete n.a3[i])}}class Tt{constructor(){this.controllers=new Ot(v,"datasets",!0),this.elements=new Ot(bt,"elements"),this.plugins=new Ot(Object,"plugins"),this.scales=new Ot(Dt,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):(0,n.F)(e,(e=>{const n=i||this._getRegistryForType(e);this._exec(t,n,e)}))}))}_exec(t,e,i){const s=(0,n.a5)(t);(0,n.Q)(i["before"+s],[],i),e[t](i),(0,n.Q)(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;e<this._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const n=e.get(t);if(void 0===n)throw new Error('"'+t+'" is not a registered '+i+".");return n}}var At=new Tt;class Lt{constructor(){this._init=[]}notify(t,e,i,n){"beforeInit"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const s=n?this._descriptors(t).filter(n):this._descriptors(t),o=this._notify(s,t,e,i);return"afterDestroy"===e&&(this._notify(s,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,e,i,s){s=s||{};for(const o of t){const t=o.plugin,r=t[i],a=[e,s,o.options];if(!1===(0,n.Q)(r,a,t)&&s.cancelable)return!1}return!0}invalidate(){(0,n.k)(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=(0,n.v)(i.options&&i.options.plugins,{}),o=function(t){const e={},i=[],n=Object.keys(At.plugins.items);for(let o=0;o<n.length;o++)i.push(At.getPlugin(n[o]));const s=t.plugins||[];for(let o=0;o<s.length;o++){const t=s[o];-1===i.indexOf(t)&&(i.push(t),e[t.id]=!0)}return{plugins:i,localIds:e}}(i);return!1!==s||e?function(t,{plugins:e,localIds:i},n,s){const o=[],r=t.getContext();for(const a of e){const e=a.id,h=It(n[e],s);null!==h&&o.push({plugin:a,options:Et(t.config,{plugin:a,local:i[e]},h,r)})}return o}(t,o,s,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,n=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(n(e,i),t,"stop"),this._notify(n(i,e),t,"start")}}function It(t,e){return e||!1!==t?!0===t?{}:t:null}function Et(t,{plugin:e,local:i},n,s){const o=t.pluginScopeKeys(e),r=t.getOptionScopes(n,o);return i&&e.defaults&&r.push(e.defaults),t.createResolver(r,s,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Rt(t,e){const i=n.d.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function zt(t){if("x"===t||"y"===t||"r"===t)return t}function Ft(t,...e){if(zt(t))return t;for(const n of e){const e=n.axis||("top"===(i=n.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&zt(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function jt(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function Wt(t,e){const i=n.a3[t.type]||{scales:{}},s=e.scales||{},o=Rt(t.type,e),r=Object.create(null);return Object.keys(s).forEach((e=>{const a=s[e];if(!(0,n.i)(a))return console.error(`Invalid scale configuration for scale: ${e}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const h=Ft(e,a,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return jt(t,"x",i[0])||jt(t,"y",i[0])}return{}}(e,t),n.d.scales[a.type]),l=function(t,e){return t===e?"_index_":"_value_"}(h,o),c=i.scales||{};r[e]=(0,n.ab)(Object.create(null),[{axis:h},a,c[h],c[l]])})),t.data.datasets.forEach((i=>{const o=i.type||t.type,a=i.indexAxis||Rt(o,e),h=(n.a3[o]||{}).scales||{};Object.keys(h).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,a),o=i[e+"AxisID"]||e;r[o]=r[o]||Object.create(null),(0,n.ab)(r[o],[{axis:e},s[o],h[t]])}))})),Object.keys(r).forEach((t=>{const e=r[t];(0,n.ab)(e,[n.d.scales[e.type],n.d.scale])})),r}function Bt(t){const e=t.options||(t.options={});e.plugins=(0,n.v)(e.plugins,{}),e.scales=Wt(t,e)}function Vt(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const Ht=new Map,Nt=new Set;function Yt(t,e){let i=Ht.get(t);return i||(i=e(),Ht.set(t,i),Nt.add(i)),i}const $t=(t,e,i)=>{const s=(0,n.f)(e,i);void 0!==s&&t.add(s)};class Xt{constructor(t){this._config=function(t){return(t=t||{}).data=Vt(t.data),Bt(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Vt(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),Bt(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Yt(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return Yt(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return Yt(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return Yt(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let n=i.get(t);return n&&!e||(n=new Map,i.set(t,n)),n}getOptionScopes(t,e,i){const{options:s,type:o}=this,r=this._cachedScopes(t,i),a=r.get(e);if(a)return a;const h=new Set;e.forEach((e=>{t&&(h.add(t),e.forEach((e=>$t(h,t,e)))),e.forEach((t=>$t(h,s,t))),e.forEach((t=>$t(h,n.a3[o]||{},t))),e.forEach((t=>$t(h,n.d,t))),e.forEach((t=>$t(h,n.a6,t)))}));const l=Array.from(h);return 0===l.length&&l.push(Object.create(null)),Nt.has(e)&&r.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,n.a3[e]||{},n.d.datasets[e]||{},{type:e},n.d,n.a6]}resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:r,subPrefixes:a}=Ut(this._resolverCache,t,s);let h=r;if(function(t,e){const{isScriptable:i,isIndexable:s}=(0,n.aa)(t);for(const o of e){const e=i(o),r=s(o),a=(r||e)&&t[o];if(e&&((0,n.a7)(a)||Qt(a))||r&&(0,n.b)(a))return!0}return!1}(r,e)){o.$shared=!1,i=(0,n.a7)(i)?i():i;const e=this.createResolver(t,i,a);h=(0,n.a8)(r,i,e)}for(const n of e)o[n]=h[n];return o}createResolver(t,e,i=[""],s){const{resolver:o}=Ut(this._resolverCache,t,i);return(0,n.i)(e)?(0,n.a8)(o,e,void 0,s):o}}function Ut(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const o=i.join();let r=s.get(o);if(!r){r={resolver:(0,n.a9)(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(o,r)}return r}const Qt=t=>(0,n.i)(t)&&Object.getOwnPropertyNames(t).reduce(((e,i)=>e||(0,n.a7)(t[i])),!1);const qt=["top","bottom","left","right","chartArea"];function Kt(t,e){return"top"===t||"bottom"===t||-1===qt.indexOf(t)&&"x"===e}function Jt(t,e){return function(i,n){return i[t]===n[t]?i[e]-n[e]:i[t]-n[t]}}function Zt(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),(0,n.Q)(i&&i.onComplete,[t],e)}function Gt(t){const e=t.chart,i=e.options.animation;(0,n.Q)(i&&i.onProgress,[t],e)}function te(t){return(0,n.M)()&&"string"===typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ee={},ie=t=>{const e=te(t);return Object.values(ee).filter((t=>t.canvas===e)).pop()};function ne(t,e,i){const n=Object.keys(t);for(const s of n){const n=+s;if(n>=e){const o=t[s];delete t[s],(i>0||n>e)&&(t[n+i]=o)}}}class se{static defaults=n.d;static instances=ee;static overrides=n.a3;static registry=At;static version="4.3.0";static getChart=ie;static register(...t){At.add(...t),oe()}static unregister(...t){At.remove(...t),oe()}constructor(t,e){const i=this.config=new Xt(e),s=te(t),r=ie(s);if(r)throw new Error("Canvas is already in use. Chart with ID '"+r.id+"' must be destroyed before the canvas with ID '"+r.canvas.id+"' can be reused.");const a=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||function(t){return!(0,n.M)()||"undefined"!==typeof OffscreenCanvas&&t instanceof OffscreenCanvas?it:mt}(s)),this.platform.updateConfig(i);const h=this.platform.acquireContext(s,a.aspectRatio),l=h&&h.canvas,c=l&&l.height,d=l&&l.width;this.id=(0,n.ac)(),this.ctx=h,this.canvas=l,this.width=d,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Lt,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=(0,n.ad)((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],ee[this.id]=this,h&&l?(o.listen(this,"complete",Zt),o.listen(this,"progress",Gt),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:s,_aspectRatio:o}=this;return(0,n.k)(t)?e&&o?o:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return At}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():(0,n.ae)(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return(0,n.af)(this.canvas,this.ctx),this}stop(){return o.stop(this),this}resize(t,e){o.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,r=this.platform.getMaximumSize(s,t,e,o),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),h=this.width?"resize":"attach";this.width=r.width,this.height=r.height,this._aspectRatio=this.aspectRatio,(0,n.ae)(this,a,!0)&&(this.notifyPlugins("resize",{size:r}),(0,n.Q)(i.onResize,[this,r],this),this.attached&&this._doResize(h)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};(0,n.F)(t,((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let o=[];e&&(o=o.concat(Object.keys(e).map((t=>{const i=e[t],n=Ft(t,i),s="r"===n,o="x"===n;return{options:i,dposition:s?"chartArea":o?"bottom":"left",dtype:s?"radialLinear":o?"category":"linear"}})))),(0,n.F)(o,(e=>{const o=e.options,r=o.id,a=Ft(r,o),h=(0,n.v)(o.type,e.dtype);void 0!==o.position&&Kt(o.position,a)===Kt(e.dposition)||(o.position=e.dposition),s[r]=!0;let l=null;if(r in i&&i[r].type===h)l=i[r];else{l=new(At.getScale(h))({id:r,type:h,ctx:this.ctx,chart:this}),i[l.id]=l}l.init(o,t)})),(0,n.F)(s,((t,e)=>{t||delete i[e]})),(0,n.F)(i,(t=>{tt.configure(this,t,t.options),tt.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t<i;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(Jt("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i<s;i++){const s=e[i];let o=this.getDatasetMeta(i);const r=s.type||this.config.type;if(o.type&&o.type!==r&&(this._destroyDatasetMeta(i),o=this.getDatasetMeta(i)),o.type=r,o.indexAxis=s.indexAxis||Rt(r,this.options),o.order=s.order||0,o.index=i,o.label=""+s.label,o.visible=this.isDatasetVisible(i),o.controller)o.controller.updateIndex(i),o.controller.linkScales();else{const e=At.getController(r),{datasetElementType:s,dataElementType:a}=n.d.datasets[r];Object.assign(e,{dataElementType:At.getElement(a),datasetElementType:s&&At.getElement(s)}),o.controller=new e(this,i),t.push(o.controller)}}return this._updateMetasets(),t}_resetElements(){(0,n.F)(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let r=0;for(let n=0,l=this.data.datasets.length;n<l;n++){const{controller:t}=this.getDatasetMeta(n),e=!s&&-1===o.indexOf(t);t.buildOrUpdateElements(e),r=Math.max(+t.getMaxOverflow(),r)}r=this._minPadding=i.layout.autoPadding?r:0,this._updateLayout(r),s||(0,n.F)(o,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Jt("z","_idx"));const{_active:a,_lastEvent:h}=this;h?this._eventHandler(h,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){(0,n.F)(this.scales,(t=>{tt.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);(0,n.ag)(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:n,count:s}of e){ne(t,n,"_removeElements"===i?-s:s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let o=1;o<e;o++)if(!(0,n.ag)(s,i(o)))return;return Array.from(s).map((t=>t.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;tt.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],(0,n.F)(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t<e;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e<i;++e)this._updateDataset(e,(0,n.a7)(t)?t({datasetIndex:e}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),n={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetUpdate",n)&&(i.controller._update(e),n.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",n))}render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(o.has(this)?this.attached&&!o.running(this)&&o.start(this):(this.draw(),Zt({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resize(t,e),this._resizeBeforeDraw=null}if(this.clear(),this.width<=0||this.height<=0)return;if(!1===this.notifyPlugins("beforeDraw",{cancelable:!0}))return;const e=this._layers;for(t=0;t<e.length&&e[t].z<=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t<e.length;++t)e[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let n,s;for(n=0,s=e.length;n<s;++n){const s=e[n];t&&!s.visible||i.push(s)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,o=function(t){const{xScale:e,yScale:i}=t;if(e&&i)return{left:e.left,right:e.right,top:i.top,bottom:i.bottom}}(t)||this.chartArea,r={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",r)&&(s&&(0,n.Y)(e,{left:!1===i.left?0:o.left-i.left,right:!1===i.right?this.width:o.right+i.right,top:!1===i.top?0:o.top-i.top,bottom:!1===i.bottom?this.height:o.bottom+i.bottom}),t.controller.draw(),s&&(0,n.$)(e),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return(0,n.C)(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,n){const s=V.modes[e];return"function"===typeof s?s(this,t,i,n):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let n=i.filter((t=>t&&t._dataset===e)).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(n)),n}getContext(){return this.$context||(this.$context=(0,n.j)(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"===typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",o=this.getDatasetMeta(t),r=o.controller._resolveAnimations(void 0,s);(0,n.h)(e)?(o.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),r.update(o,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),o.remove(this),t=0,e=this.data.datasets.length;t<e;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),(0,n.af)(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),delete ee[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,n)=>{e.addEventListener(this,i,n),t[i]=n},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};(0,n.F)(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,n)=>{e.addEventListener(this,i,n),t[i]=n},n=(i,n)=>{t[i]&&(e.removeEventListener(this,i,n),delete t[i])},s=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const r=()=>{n("attach",r),this.attached=!0,this.resize(),i("resize",s),i("detach",o)};o=()=>{this.attached=!1,n("resize",s),this._stop(),this._resize(0,0),i("attach",r)},e.isAttached(this.canvas)?r():o()}unbindEvents(){(0,n.F)(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},(0,n.F)(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const n=i?"set":"remove";let s,o,r,a;for("dataset"===e&&(s=this.getDatasetMeta(t[0].datasetIndex),s.controller["_"+n+"DatasetHoverStyle"]()),r=0,a=t.length;r<a;++r){o=t[r];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[n+"HoverStyle"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!(0,n.ah)(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const n=this.options.hover,s=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=s(e,t),r=i?t:s(t,e);o.length&&this.updateHoverStyle(o,n.mode,!1),r.length&&n.mode&&this.updateHoverStyle(r,n.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},n=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,n))return;const s=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,n),(s||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:o}=this,r=e,a=this._getActiveElements(t,s,i,r),h=(0,n.ai)(t),l=function(t,e,i,n){return i&&"mouseout"!==t.type?n?e:t:null}(t,this._lastEvent,i,h);i&&(this._lastEvent=null,(0,n.Q)(o.onHover,[t,a,this],this),h&&(0,n.Q)(o.onClick,[t,a,this],this));const c=!(0,n.ah)(a,s);return(c||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,c}_getActiveElements(t,e,i,n){if("mouseout"===t.type)return[];if(!i)return e;const s=this.options.hover;return this.getElementsAtEventForMode(t,s.mode,s,n)}}function oe(){return(0,n.F)(se.instances,(t=>t._plugins.invalidate()))}function re(t,e,i=e){t.lineCap=(0,n.v)(i.borderCapStyle,e.borderCapStyle),t.setLineDash((0,n.v)(i.borderDash,e.borderDash)),t.lineDashOffset=(0,n.v)(i.borderDashOffset,e.borderDashOffset),t.lineJoin=(0,n.v)(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=(0,n.v)(i.borderWidth,e.borderWidth),t.strokeStyle=(0,n.v)(i.borderColor,e.borderColor)}function ae(t,e,i){t.lineTo(i.x,i.y)}function he(t,e,i={}){const n=t.length,{start:s=0,end:o=n-1}=i,{start:r,end:a}=e,h=Math.max(s,r),l=Math.min(o,a),c=s<r&&o<r||s>a&&o>a;return{count:n,start:h,loop:e.loop,ilen:l<h&&!c?n+l-h:l-h}}function le(t,e,i,s){const{points:o,options:r}=e,{count:a,start:h,loop:l,ilen:c}=he(o,i,s),d=function(t){return t.stepped?n.ar:t.tension||"monotone"===t.cubicInterpolationMode?n.as:ae}(r);let u,f,g,{move:p=!0,reverse:x}=s||{};for(u=0;u<=c;++u)f=o[(h+(x?c-u:u))%a],f.skip||(p?(t.moveTo(f.x,f.y),p=!1):d(t,g,f,x,r.stepped),g=f);return l&&(f=o[(h+(x?c:0))%a],d(t,g,f,x,r.stepped)),!!l}function ce(t,e,i,n){const s=e.points,{count:o,start:r,ilen:a}=he(s,i,n),{move:h=!0,reverse:l}=n||{};let c,d,u,f,g,p,x=0,m=0;const b=t=>(r+(l?a-t:t))%o,y=()=>{f!==g&&(t.lineTo(x,g),t.lineTo(x,f),t.lineTo(x,p))};for(h&&(d=s[b(0)],t.moveTo(d.x,d.y)),c=0;c<=a;++c){if(d=s[b(c)],d.skip)continue;const e=d.x,i=d.y,n=0|e;n===u?(i<f?f=i:i>g&&(g=i),x=(m*x+e)/++m):(y(),t.lineTo(e,i),u=n,m=0,f=g=i),p=i}y()}function de(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&"monotone"!==e.cubicInterpolationMode&&!e.stepped&&!i?ce:le}const ue="function"===typeof Path2D;function fe(t,e,i,n){ue&&!e.options.segment?function(t,e,i,n){let s=e._path;s||(s=e._path=new Path2D,e.path(s,i,n)&&s.closePath()),re(t,e.options),t.stroke(s)}(t,e,i,n):function(t,e,i,n){const{segments:s,options:o}=e,r=de(e);for(const a of s)re(t,o,a.style),t.beginPath(),r(t,e,a,{start:i,end:i+n-1})&&t.closePath(),t.stroke()}(t,e,i,n)}class ge extends bt{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;(0,n.al)(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=(0,n.am)(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],o=this.points,r=(0,n.an)(this,{property:e,start:s,end:s});if(!r.length)return;const a=[],h=function(t){return t.stepped?n.ao:t.tension||"monotone"===t.cubicInterpolationMode?n.ap:n.aq}(i);let l,c;for(l=0,c=r.length;l<c;++l){const{start:n,end:c}=r[l],d=o[n],u=o[c];if(d===u){a.push(d);continue}const f=h(d,u,Math.abs((s-d[e])/(u[e]-d[e])),i.stepped);f[e]=t[e],a.push(f)}return 1===a.length?a[0]:a}pathSegment(t,e,i){return de(this)(t,this,e,i)}path(t,e,i){const n=this.segments,s=de(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const r of n)o&=s(t,this,r,{start:e,end:e+i-1});return!!o}draw(t,e,i,n){const s=this.options||{};(this.points||[]).length&&s.borderWidth&&(t.save(),fe(t,this,i,n),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function pe(t,e,i,n){const s=t.options,{[i]:o}=t.getProps([i],n);return Math.abs(e-o)<s.radius+s.hitRadius}class xe extends bt{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const n=this.options,{x:s,y:o}=this.getProps(["x","y"],i);return Math.pow(t-s,2)+Math.pow(e-o,2)<Math.pow(n.hitRadius+n.radius,2)}inXRange(t,e){return pe(this,t,"x",e)}inYRange(t,e){return pe(this,t,"y",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius<.1||!(0,n.C)(this,e,this.size(i)/2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,(0,n.at)(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}}function me(t,e){const{x:i,y:n,base:s,width:o,height:r}=t.getProps(["x","y","base","width","height"],e);let a,h,l,c,d;return t.horizontal?(d=r/2,a=Math.min(i,s),h=Math.max(i,s),l=n-d,c=n+d):(d=o/2,a=i-d,h=i+d,l=Math.min(n,s),c=Math.max(n,s)),{left:a,top:l,right:h,bottom:c}}function be(t,e,i,s){return t?0:(0,n.S)(e,i,s)}function ye(t){const e=me(t),i=e.right-e.left,s=e.bottom-e.top,o=function(t,e,i){const s=t.options.borderWidth,o=t.borderSkipped,r=(0,n.av)(s);return{t:be(o.top,r.top,0,i),r:be(o.right,r.right,0,e),b:be(o.bottom,r.bottom,0,i),l:be(o.left,r.left,0,e)}}(t,i/2,s/2),r=function(t,e,i){const{enableBorderRadius:s}=t.getProps(["enableBorderRadius"]),o=t.options.borderRadius,r=(0,n.aw)(o),a=Math.min(e,i),h=t.borderSkipped,l=s||(0,n.i)(o);return{topLeft:be(!l||h.top||h.left,r.topLeft,0,a),topRight:be(!l||h.top||h.right,r.topRight,0,a),bottomLeft:be(!l||h.bottom||h.left,r.bottomLeft,0,a),bottomRight:be(!l||h.bottom||h.right,r.bottomRight,0,a)}}(t,i/2,s/2);return{outer:{x:e.left,y:e.top,w:i,h:s,radius:r},inner:{x:e.left+o.l,y:e.top+o.t,w:i-o.l-o.r,h:s-o.t-o.b,radius:{topLeft:Math.max(0,r.topLeft-Math.max(o.t,o.l)),topRight:Math.max(0,r.topRight-Math.max(o.t,o.r)),bottomLeft:Math.max(0,r.bottomLeft-Math.max(o.b,o.l)),bottomRight:Math.max(0,r.bottomRight-Math.max(o.b,o.r))}}}}function _e(t,e,i,s){const o=null===e,r=null===i,a=t&&!(o&&r)&&me(t,s);return a&&(o||(0,n.aj)(e,a.left,a.right))&&(r||(0,n.aj)(i,a.top,a.bottom))}function ve(t,e){t.rect(e.x,e.y,e.w,e.h)}function we(t,e,i={}){const n=t.x!==i.x?-e:0,s=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-n,r=(t.y+t.h!==i.y+i.h?e:0)-s;return{x:t.x+n,y:t.y+s,w:t.w+o,h:t.h+r,radius:t.radius}}class ke extends bt{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:s}}=this,{inner:o,outer:r}=ye(this),a=(h=r.radius).topLeft||h.topRight||h.bottomLeft||h.bottomRight?n.au:ve;var h;t.save(),r.w===o.w&&r.h===o.h||(t.beginPath(),a(t,we(r,e,o)),t.clip(),a(t,we(o,-e,r)),t.fillStyle=i,t.fill("evenodd")),t.beginPath(),a(t,we(o,e)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,e,i){return _e(this,t,e,i)}inXRange(t,e){return _e(this,t,null,e)}inYRange(t,e){return _e(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:n,horizontal:s}=this.getProps(["x","y","base","horizontal"],t);return{x:s?(e+n)/2:e,y:s?i:(i+n)/2}}getRange(t){return"x"===t?this.width/2:this.height/2}}const Me=(t,e)=>{let{boxHeight:i=e,boxWidth:n=e}=t;return t.usePointStyle&&(i=Math.min(i,e),n=t.pointStyleWidth||Math.min(n,e)),{boxWidth:n,boxHeight:i,itemHeight:Math.max(e,i)}};class Se extends bt{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=(0,n.Q)(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=(0,n.a0)(i.font),o=s.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:h}=Me(i,o);let l,c;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,c=this._fitRows(r,o,a,h)+10):(c=this.maxHeight,l=this._fitCols(r,s,a,h)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(c,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,n){const{ctx:s,maxWidth:o,options:{labels:{padding:r}}}=this,a=this.legendHitBoxes=[],h=this.lineWidths=[0],l=n+r;let c=t;s.textAlign="left",s.textBaseline="middle";let d=-1,u=-l;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+s.measureText(t.text).width;(0===f||h[h.length-1]+g+2*r>o)&&(c+=l,h[h.length-(f>0?0:1)]=0,u+=l,d++),a[f]={left:0,top:u,row:d,width:g,height:n},h[h.length-1]+=g+r})),c}_fitCols(t,e,i,n){const{ctx:s,maxHeight:o,options:{labels:{padding:r}}}=this,a=this.legendHitBoxes=[],h=this.columnSizes=[],l=o-t;let c=r,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:x}=function(t,e,i,n,s){const o=function(t,e,i,n){let s=t.text;s&&"string"!==typeof s&&(s=s.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+n.measureText(s).width}(n,t,e,i),r=function(t,e,i){let n=t;"string"!==typeof e.text&&(n=Pe(e,i));return n}(s,n,e.lineHeight);return{itemWidth:o,itemHeight:r}}(i,e,s,t,n);o>0&&u+x+2*r>l&&(c+=d+r,h.push({width:d,height:u}),f+=d+r,g++,d=u=0),a[o]={left:f,top:u,col:g,width:p,height:x},d=Math.max(d,p),u+=x+r})),c+=d,h.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:o}}=this,r=(0,n.az)(o,this.left,this.width);if(this.isHorizontal()){let o=0,a=(0,n.a2)(i,this.left+s,this.right-this.lineWidths[o]);for(const h of e)o!==h.row&&(o=h.row,a=(0,n.a2)(i,this.left+s,this.right-this.lineWidths[o])),h.top+=this.top+t+s,h.left=r.leftForLtr(r.x(a),h.width),a+=h.width+s}else{let o=0,a=(0,n.a2)(i,this.top+t+s,this.bottom-this.columnSizes[o].height);for(const h of e)h.col!==o&&(o=h.col,a=(0,n.a2)(i,this.top+t+s,this.bottom-this.columnSizes[o].height)),h.top=a,h.left+=this.left+s,h.left=r.leftForLtr(r.x(h.left),h.width),a+=h.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;(0,n.Y)(t,this),this._draw(),(0,n.$)(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:o,labels:r}=t,a=n.d.color,h=(0,n.az)(t.rtl,this.left,this.width),l=(0,n.a0)(r.font),{padding:c}=r,d=l.size,u=d/2;let f;this.drawTitle(),s.textAlign=h.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=l.string;const{boxWidth:g,boxHeight:p,itemHeight:x}=Me(r,d),m=this.isHorizontal(),b=this._computeTitleHeight();f=m?{x:(0,n.a2)(o,this.left+c,this.right-i[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:(0,n.a2)(o,this.top+b+c,this.bottom-e[0].height),line:0},(0,n.aA)(this.ctx,t.textDirection);const y=x+c;this.legendItems.forEach(((_,v)=>{s.strokeStyle=_.fontColor,s.fillStyle=_.fontColor;const w=s.measureText(_.text).width,k=h.textAlign(_.textAlign||(_.textAlign=r.textAlign)),M=g+u+w;let S=f.x,P=f.y;h.setWidth(this.width),m?v>0&&S+M+c>this.right&&(P=f.y+=y,f.line++,S=f.x=(0,n.a2)(o,this.left+c,this.right-i[f.line])):v>0&&P+y>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=(0,n.a2)(o,this.top+b+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const o=(0,n.v)(i.lineWidth,1);if(s.fillStyle=(0,n.v)(i.fillStyle,a),s.lineCap=(0,n.v)(i.lineCap,"butt"),s.lineDashOffset=(0,n.v)(i.lineDashOffset,0),s.lineJoin=(0,n.v)(i.lineJoin,"miter"),s.lineWidth=o,s.strokeStyle=(0,n.v)(i.strokeStyle,a),s.setLineDash((0,n.v)(i.lineDash,[])),r.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:o},l=h.xPlus(t,g/2),c=e+u;(0,n.aD)(s,a,l,c,r.pointStyleWidth&&g)}else{const r=e+Math.max((d-p)/2,0),a=h.leftForLtr(t,g),l=(0,n.aw)(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?(0,n.au)(s,{x:a,y:r,w:g,h:p,radius:l}):s.rect(a,r,g,p),s.fill(),0!==o&&s.stroke()}s.restore()}(h.x(S),P,_),S=(0,n.aB)(k,S+g+u,m?S+M:this.right,t.rtl),function(t,e,i){(0,n.Z)(s,i.text,t,e+x/2,l,{strikethrough:i.hidden,textAlign:h.textAlign(i.textAlign)})}(h.x(S),P,_),m)f.x+=M+c;else if("string"!==typeof _.text){const t=l.lineHeight;f.y+=Pe(_,t)}else f.y+=y})),(0,n.aC)(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=(0,n.a0)(e.font),s=(0,n.E)(e.padding);if(!e.display)return;const o=(0,n.az)(t.rtl,this.left,this.width),r=this.ctx,a=e.position,h=i.size/2,l=s.top+h;let c,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),c=this.top+l,d=(0,n.a2)(t.align,d,this.right-u);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);c=l+(0,n.a2)(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const f=(0,n.a2)(a,d,d+u);r.textAlign=o.textAlign((0,n.a1)(a)),r.textBaseline="middle",r.strokeStyle=e.color,r.fillStyle=e.color,r.font=i.string,(0,n.Z)(r,e.text,f,c,i)}_computeTitleHeight(){const t=this.options.title,e=(0,n.a0)(t.font),i=(0,n.E)(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,o;if((0,n.aj)(t,this.left,this.right)&&(0,n.aj)(e,this.top,this.bottom))for(o=this.legendHitBoxes,i=0;i<o.length;++i)if(s=o[i],(0,n.aj)(t,s.left,s.left+s.width)&&(0,n.aj)(e,s.top,s.top+s.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if(("mousemove"===t||"mouseout"===t)&&(e.onHover||e.onLeave))return!0;if(e.onClick&&("click"===t||"mouseup"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if("mousemove"===t.type||"mouseout"===t.type){const r=this._hoveredItem,a=(o=i,null!==(s=r)&&null!==o&&s.datasetIndex===o.datasetIndex&&s.index===o.index);r&&!a&&(0,n.Q)(e.onLeave,[t,r,this],this),this._hoveredItem=i,i&&!a&&(0,n.Q)(e.onHover,[t,i,this],this)}else i&&(0,n.Q)(e.onClick,[t,i,this],this);var s,o}}function Pe(t,e){return e*(t.text?t.text.length+.5:0)}var Ce={id:"legend",_element:Se,start(t,e,i){const n=t.legend=new Se({ctx:t.ctx,options:i,chart:t});tt.configure(t,n,i),tt.addBox(t,n)},stop(t){tt.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const n=t.legend;tt.configure(t,n,i),n.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const n=e.datasetIndex,s=i.chart;s.isDatasetVisible(n)?(s.hide(n),e.hidden=!0):(s.show(n),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:o,color:r,useBorderRadius:a,borderRadius:h}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),c=(0,n.E)(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:r,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:o||l.textAlign,borderRadius:a&&(h||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};new WeakMap;const De={average(t){if(!t.length)return!1;let e,i,n=0,s=0,o=0;for(e=0,i=t.length;e<i;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();n+=t.x,s+=t.y,++o}}return{x:n/o,y:s/o}},nearest(t,e){if(!t.length)return!1;let i,s,o,r=e.x,a=e.y,h=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i<s;++i){const s=t[i].element;if(s&&s.hasValue()){const t=s.getCenterPoint(),i=(0,n.aE)(e,t);i<h&&(h=i,o=s)}}if(o){const t=o.tooltipPosition();r=t.x,a=t.y}return{x:r,y:a}}};function Oe(t,e){return e&&((0,n.b)(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Te(t){return("string"===typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Ae(t,e){const{element:i,datasetIndex:n,index:s}=e,o=t.getDatasetMeta(n).controller,{label:r,value:a}=o.getLabelAndValue(s);return{chart:t,label:r,parsed:o.getParsed(s),raw:t.data.datasets[n].data[s],formattedValue:a,dataset:o.getDataset(),dataIndex:s,datasetIndex:n,element:i}}function Le(t,e){const i=t.chart.ctx,{body:s,footer:o,title:r}=t,{boxWidth:a,boxHeight:h}=e,l=(0,n.a0)(e.bodyFont),c=(0,n.a0)(e.titleFont),d=(0,n.a0)(e.footerFont),u=r.length,f=o.length,g=s.length,p=(0,n.E)(e.padding);let x=p.height,m=0,b=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,u&&(x+=u*c.lineHeight+(u-1)*e.titleSpacing+e.titleMarginBottom),b){x+=g*(e.displayColors?Math.max(h,l.lineHeight):l.lineHeight)+(b-g)*l.lineHeight+(b-1)*e.bodySpacing}f&&(x+=e.footerMarginTop+f*d.lineHeight+(f-1)*e.footerSpacing);let y=0;const _=function(t){m=Math.max(m,i.measureText(t).width+y)};return i.save(),i.font=c.string,(0,n.F)(t.title,_),i.font=l.string,(0,n.F)(t.beforeBody.concat(t.afterBody),_),y=e.displayColors?a+2+e.boxPadding:0,(0,n.F)(s,(t=>{(0,n.F)(t.before,_),(0,n.F)(t.lines,_),(0,n.F)(t.after,_)})),y=0,i.font=d.string,(0,n.F)(t.footer,_),i.restore(),m+=p.width,{width:m,height:x}}function Ie(t,e,i,n){const{x:s,width:o}=i,{width:r,chartArea:{left:a,right:h}}=t;let l="center";return"center"===n?l=s<=(a+h)/2?"left":"right":s<=o/2?l="left":s>=r-o/2&&(l="right"),function(t,e,i,n){const{x:s,width:o}=n,r=i.caretSize+i.caretPadding;return"left"===t&&s+o+r>e.width||"right"===t&&s-o-r<0||void 0}(l,t,e,i)&&(l="center"),l}function Ee(t,e,i){const n=i.yAlign||e.yAlign||function(t,e){const{y:i,height:n}=e;return i<n/2?"top":i>t.height-n/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||Ie(t,e,i,n),yAlign:n}}function Re(t,e,i,s){const{caretSize:o,caretPadding:r,cornerRadius:a}=t,{xAlign:h,yAlign:l}=i,c=o+r,{topLeft:d,topRight:u,bottomLeft:f,bottomRight:g}=(0,n.aw)(a);let p=function(t,e){let{x:i,width:n}=t;return"right"===e?i-=n:"center"===e&&(i-=n/2),i}(e,h);const x=function(t,e,i){let{y:n,height:s}=t;return"top"===e?n+=i:n-="bottom"===e?s+i:s/2,n}(e,l,c);return"center"===l?"left"===h?p+=c:"right"===h&&(p-=c):"left"===h?p-=Math.max(d,f)+o:"right"===h&&(p+=Math.max(u,g)+o),{x:(0,n.S)(p,0,s.width-e.width),y:(0,n.S)(x,0,s.height-e.height)}}function ze(t,e,i){const s=(0,n.E)(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function Fe(t){return Oe([],Te(t))}function je(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const We={beforeTitle:n.aF,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,n=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(n>0&&e.dataIndex<n)return i[e.dataIndex]}return""},afterTitle:n.aF,beforeBody:n.aF,beforeLabel:n.aF,label(t){if(this&&this.options&&"dataset"===this.options.mode)return t.label+": "+t.formattedValue||t.formattedValue;let e=t.dataset.label||"";e&&(e+=": ");const i=t.formattedValue;return(0,n.k)(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:n.aF,afterBody:n.aF,beforeFooter:n.aF,footer:n.aF,afterFooter:n.aF};function Be(t,e,i,n){const s=t[e].call(i,n);return"undefined"===typeof s?We[e].call(i,n):s}class Ve extends bt{static positioners=De;constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),n=i.enabled&&e.options.animation&&i.animations,s=new l(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,(0,n.j)(t,{tooltip:e,tooltipItems:i,type:"tooltip"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,n=Be(i,"beforeTitle",this,t),s=Be(i,"title",this,t),o=Be(i,"afterTitle",this,t);let r=[];return r=Oe(r,Te(n)),r=Oe(r,Te(s)),r=Oe(r,Te(o)),r}getBeforeBody(t,e){return Fe(Be(e.callbacks,"beforeBody",this,t))}getBody(t,e){const{callbacks:i}=e,s=[];return(0,n.F)(t,(t=>{const e={before:[],lines:[],after:[]},n=je(i,t);Oe(e.before,Te(Be(n,"beforeLabel",this,t))),Oe(e.lines,Be(n,"label",this,t)),Oe(e.after,Te(Be(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return Fe(Be(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,n=Be(i,"beforeFooter",this,t),s=Be(i,"footer",this,t),o=Be(i,"afterFooter",this,t);let r=[];return r=Oe(r,Te(n)),r=Oe(r,Te(s)),r=Oe(r,Te(o)),r}_createItems(t){const e=this._active,i=this.chart.data,s=[],o=[],r=[];let a,h,l=[];for(a=0,h=e.length;a<h;++a)l.push(Ae(this.chart,e[a]));return t.filter&&(l=l.filter(((e,n,s)=>t.filter(e,n,s,i)))),t.itemSort&&(l=l.sort(((e,n)=>t.itemSort(e,n,i)))),(0,n.F)(l,(e=>{const i=je(t.callbacks,e);s.push(Be(i,"labelColor",this,e)),o.push(Be(i,"labelPointStyle",this,e)),r.push(Be(i,"labelTextColor",this,e))})),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=r,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),n=this._active;let s,o=[];if(n.length){const t=De[i.position].call(this,n,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Le(this,i),r=Object.assign({},t,e),a=Ee(this.chart,i,r),h=Re(i,r,a,this.chart);this.xAlign=a.xAlign,this.yAlign=a.yAlign,s={opacity:1,x:h.x,y:h.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(s={opacity:0});this._tooltipItems=o,this.$context=void 0,s&&this._resolveAnimations().update(this,s),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,n){const s=this.getCaretPosition(t,i,n);e.lineTo(s.x1,s.y1),e.lineTo(s.x2,s.y2),e.lineTo(s.x3,s.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:o}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:h,topRight:l,bottomLeft:c,bottomRight:d}=(0,n.aw)(a),{x:u,y:f}=t,{width:g,height:p}=e;let x,m,b,y,_,v;return"center"===o?(_=f+p/2,"left"===s?(x=u,m=x-r,y=_+r,v=_-r):(x=u+g,m=x+r,y=_-r,v=_+r),b=x):(m="left"===s?u+Math.max(h,c)+r:"right"===s?u+g-Math.max(l,d)-r:this.caretX,"top"===o?(y=f,_=y-r,x=m-r,b=m+r):(y=f+p,_=y+r,x=m+r,b=m-r),v=y),{x1:x,x2:m,x3:b,y1:y,y2:_,y3:v}}drawTitle(t,e,i){const s=this.title,o=s.length;let r,a,h;if(o){const l=(0,n.az)(i.rtl,this.x,this.width);for(t.x=ze(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",r=(0,n.a0)(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=r.string,h=0;h<o;++h)e.fillText(s[h],l.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+a,h+1===o&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,e,i,s,o){const r=this.labelColors[i],a=this.labelPointStyles[i],{boxHeight:h,boxWidth:l}=o,c=(0,n.a0)(o.bodyFont),d=ze(this,"left",o),u=s.x(d),f=h<c.lineHeight?(c.lineHeight-h)/2:0,g=e.y+f;if(o.usePointStyle){const e={radius:Math.min(l,h)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},i=s.leftForLtr(u,l)+l/2,c=g+h/2;t.strokeStyle=o.multiKeyBackground,t.fillStyle=o.multiKeyBackground,(0,n.at)(t,e,i,c),t.strokeStyle=r.borderColor,t.fillStyle=r.backgroundColor,(0,n.at)(t,e,i,c)}else{t.lineWidth=(0,n.i)(r.borderWidth)?Math.max(...Object.values(r.borderWidth)):r.borderWidth||1,t.strokeStyle=r.borderColor,t.setLineDash(r.borderDash||[]),t.lineDashOffset=r.borderDashOffset||0;const e=s.leftForLtr(u,l),i=s.leftForLtr(s.xPlus(u,1),l-2),a=(0,n.aw)(r.borderRadius);Object.values(a).some((t=>0!==t))?(t.beginPath(),t.fillStyle=o.multiKeyBackground,(0,n.au)(t,{x:e,y:g,w:l,h:h,radius:a}),t.fill(),t.stroke(),t.fillStyle=r.backgroundColor,t.beginPath(),(0,n.au)(t,{x:i,y:g+1,w:l-2,h:h-2,radius:a}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(e,g,l,h),t.strokeRect(e,g,l,h),t.fillStyle=r.backgroundColor,t.fillRect(i,g+1,l-2,h-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:o,bodyAlign:r,displayColors:a,boxHeight:h,boxWidth:l,boxPadding:c}=i,d=(0,n.a0)(i.bodyFont);let u=d.lineHeight,f=0;const g=(0,n.az)(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+u/2),t.y+=u+o},x=g.textAlign(r);let m,b,y,_,v,w,k;for(e.textAlign=r,e.textBaseline="middle",e.font=d.string,t.x=ze(this,x,i),e.fillStyle=i.bodyColor,(0,n.F)(this.beforeBody,p),f=a&&"right"!==x?"center"===r?l/2+c:l+2+c:0,_=0,w=s.length;_<w;++_){for(m=s[_],b=this.labelTextColors[_],e.fillStyle=b,(0,n.F)(m.before,p),y=m.lines,a&&y.length&&(this._drawColorBox(e,t,_,g,i),u=Math.max(d.lineHeight,h)),v=0,k=y.length;v<k;++v)p(y[v]),u=d.lineHeight;(0,n.F)(m.after,p)}f=0,u=d.lineHeight,(0,n.F)(this.afterBody,p),t.y-=o}drawFooter(t,e,i){const s=this.footer,o=s.length;let r,a;if(o){const h=(0,n.az)(i.rtl,this.x,this.width);for(t.x=ze(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=h.textAlign(i.footerAlign),e.textBaseline="middle",r=(0,n.a0)(i.footerFont),e.fillStyle=i.footerColor,e.font=r.string,a=0;a<o;++a)e.fillText(s[a],h.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+i.footerSpacing}}drawBackground(t,e,i,s){const{xAlign:o,yAlign:r}=this,{x:a,y:h}=t,{width:l,height:c}=i,{topLeft:d,topRight:u,bottomLeft:f,bottomRight:g}=(0,n.aw)(s.cornerRadius);e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,e.lineWidth=s.borderWidth,e.beginPath(),e.moveTo(a+d,h),"top"===r&&this.drawCaret(t,e,i,s),e.lineTo(a+l-u,h),e.quadraticCurveTo(a+l,h,a+l,h+u),"center"===r&&"right"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+l,h+c-g),e.quadraticCurveTo(a+l,h+c,a+l-g,h+c),"bottom"===r&&this.drawCaret(t,e,i,s),e.lineTo(a+f,h+c),e.quadraticCurveTo(a,h+c,a,h+c-f),"center"===r&&"left"===o&&this.drawCaret(t,e,i,s),e.lineTo(a,h+d),e.quadraticCurveTo(a,h,a+d,h),e.closePath(),e.fill(),s.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,n=i&&i.x,s=i&&i.y;if(n||s){const i=De[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Le(this,t),r=Object.assign({},i,this._size),a=Ee(e,t,r),h=Re(t,r,a,e);n._to===h.x&&s._to===h.y||(this.xAlign=a.xAlign,this.yAlign=a.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=(0,n.E)(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(o,t,s,e),(0,n.aA)(t,e.textDirection),o.y+=r.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),(0,n.aC)(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),o=!(0,n.ah)(i,s),r=this._positionChanged(s,e);(o||r)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],r=this._getActiveElements(t,o,e,i),a=this._positionChanged(r,t),h=e||!(0,n.ah)(r,o)||a;return h&&(this._active=r,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),h}_getActiveElements(t,e,i,n){const s=this.options;if("mouseout"===t.type)return[];if(!n)return e;const o=this.chart.getElementsAtEventForMode(t,s.mode,s,i);return s.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:n,options:s}=this,o=De[s.position].call(this,t,e);return!1!==o&&(i!==o.x||n!==o.y)}}var He={id:"tooltip",_element:Ve,positioners:De,afterInit(t,e,i){i&&(t.tooltip=new Ve({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:We},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};function Ne(t,e,i,n){const s=t.indexOf(e);if(-1===s)return((t,e,i,n)=>("string"===typeof e?(i=t.push(e)-1,n.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,n);return s!==t.lastIndexOf(e)?i:s}function Ye(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}class $e extends Dt{static id="category";static defaults={ticks:{callback:Ye}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:n}of e)t[i]===n&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if((0,n.k)(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:(0,n.S)(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:Ne(i,t,(0,n.v)(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:n}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(n=this.getLabels().length-1)),this.min=i,this.max=n}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,n=[];let s=this.getLabels();s=0===t&&e===s.length-1?s:s.slice(t,e+1),this._valueRange=Math.max(s.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let o=t;o<=e;o++)n.push({value:o});return n}getLabelForValue(t){return Ye.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!==typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function Xe(t,e,{horizontal:i,minRotation:s}){const o=(0,n.t)(s),r=(i?Math.sin(o):Math.cos(o))||.001,a=.75*e*(""+t).length;return Math.min(e/r,a)}class Ue extends Dt{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return(0,n.k)(t)||("number"===typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:o}=this;const r=t=>s=e?s:t,a=t=>o=i?o:t;if(t){const t=(0,n.s)(s),e=(0,n.s)(o);t<0&&e<0?a(0):t>0&&e>0&&r(0)}if(s===o){let e=0===o?1:Math.abs(.05*o);a(o+e),t||r(s-e)}this.min=s,this.max=o}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:n}=t;return n?(e=Math.ceil(this.max/n)-Math.floor(this.min/n)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${n} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function(t,e){const i=[],{bounds:s,step:o,min:r,max:a,precision:h,count:l,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:x}=e,m=!(0,n.k)(r),b=!(0,n.k)(a),y=!(0,n.k)(l),_=(x-p)/(d+1);let v,w,k,M,S=(0,n.aH)((x-p)/g/f)*f;if(S<1e-14&&!m&&!b)return[{value:p},{value:x}];M=Math.ceil(x/S)-Math.floor(p/S),M>g&&(S=(0,n.aH)(M*S/g/f)*f),(0,n.k)(h)||(v=Math.pow(10,h),S=Math.ceil(S*v)/v),"ticks"===s?(w=Math.floor(p/S)*S,k=Math.ceil(x/S)*S):(w=p,k=x),m&&b&&o&&(0,n.aI)((a-r)/o,S/1e3)?(M=Math.round(Math.min((a-r)/S,c)),S=(a-r)/M,w=r,k=a):y?(w=m?r:w,k=b?a:k,M=l-1,S=(k-w)/M):(M=(k-w)/S,M=(0,n.aJ)(M,Math.round(M),S/1e3)?Math.round(M):Math.ceil(M));const P=Math.max((0,n.aK)(S),(0,n.aK)(w));v=Math.pow(10,(0,n.k)(h)?P:h),w=Math.round(w*v)/v,k=Math.round(k*v)/v;let C=0;for(m&&(u&&w!==r?(i.push({value:r}),w<r&&C++,(0,n.aJ)(Math.round((w+C*S)*v)/v,r,Xe(r,_,t))&&C++):w<r&&C++);C<M;++C){const t=Math.round((w+C*S)*v)/v;if(b&&t>a)break;i.push({value:t})}return b&&u&&k!==a?i.length&&(0,n.aJ)(i[i.length-1].value,a,Xe(a,_,t))?i[i.length-1].value=a:i.push({value:a}):b&&k!==a||i.push({value:k}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&(0,n.aG)(s,this,"value"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const n=(i-e)/Math.max(t.length-1,1)/2;e-=n,i+=n}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return(0,n.o)(t,this.chart.options.locale,this.options.ticks.format)}}class Qe extends Ue{static id="linear";static defaults={ticks:{callback:n.aL.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=(0,n.g)(t)?t:0,this.max=(0,n.g)(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=(0,n.t)(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}class qe extends Dt{static id="logarithmic";static defaults={ticks:{callback:n.aL.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=Ue.prototype.parse.apply(this,[t,e]);if(0!==i)return(0,n.g)(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=(0,n.g)(t)?Math.max(0,t):null,this.max=(0,n.g)(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!(0,n.g)(this._userMin)&&(this.min=t===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,n=this.max;const s=e=>t?i:e,o=t=>e?n:t;i===n&&(i<=0?(s(1),o(10)):(s(changeExponent(i,-1)),o(changeExponent(n,1)))),i<=0&&s(changeExponent(n,-1)),n<=0&&o(changeExponent(i,1)),this.min=i,this.max=n}buildTicks(){const t=this.options,e=generateTicks({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&(0,n.aG)(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":(0,n.o)(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=(0,n.aM)(t),this._valueRange=(0,n.aM)(this.max)-(0,n.aM)(t)}getPixelForValue(t){return void 0!==t&&0!==t||this.min,null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:((0,n.aM)(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}class Ke extends Ue{static id="radialLinear";static defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:n.aL.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=(0,n.E)(getTickBackdropHeight(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=(0,n.g)(t)&&!isNaN(t)?t:0,this.max=(0,n.g)(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/getTickBackdropHeight(this.options))}generateTickLabels(t){Ue.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=(0,n.Q)(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,n){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-n)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,n))}getIndexAngle(t){const e=n.T/(this._pointLabels.length||1),i=this.options.startAngle||0;return(0,n.ay)(t*e+(0,n.t)(i))}getDistanceFromCenterForValue(t){if((0,n.k)(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if((0,n.k)(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t<e.length){const i=e[t];return function(t,e,i){return(0,n.j)(t,{label:i,index:e,type:"pointLabel"})}(this.getContext(),t,i)}}getPointPosition(t,e,i=0){const s=this.getIndexAngle(t)-n.H+i;return{x:Math.cos(s)*e+this.xCenter,y:Math.sin(s)*e+this.yCenter,angle:s}}getPointPositionForValue(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:e,top:i,right:n,bottom:s}=this._pointLabelItems[t];return{left:e,top:i,right:n,bottom:s}}drawBackground(){const{backgroundColor:t,grid:{circular:e}}=this.options;if(t){const i=this.ctx;i.save(),i.beginPath(),pathRadiusLine(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=t,i.fill(),i.restore()}}drawGrid(){const t=this.ctx,e=this.options,{angleLines:i,grid:s,border:o}=e,r=this._pointLabels.length;let a,h,l;if(e.pointLabels.display&&function(t,e){const{ctx:i,options:{pointLabels:s}}=t;for(let o=e-1;o>=0;o--){const e=t._pointLabelItems[o];if(!e.visible)continue;const r=s.setContext(t.getPointLabelContext(o));drawPointLabelBox(i,r,e);const a=(0,n.a0)(r.font),{x:h,y:l,textAlign:c}=e;(0,n.Z)(i,t._pointLabels[o],h,l+a.lineHeight/2,a,{color:r.color,textAlign:c,textBaseline:"middle"})}}(this,r),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e){this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),n=s.setContext(i),a=o.setContext(i);!function(t,e,i,n,s){const o=t.ctx,r=e.circular,{color:a,lineWidth:h}=e;!r&&!n||!a||!h||i<0||(o.save(),o.strokeStyle=a,o.lineWidth=h,o.setLineDash(s.dash),o.lineDashOffset=s.dashOffset,o.beginPath(),pathRadiusLine(t,i,r,n),o.closePath(),o.stroke(),o.restore())}(this,n,h,r,a)}})),i.display){for(t.save(),r-1;a>=0;a--){const n=i.setContext(this.getPointLabelContext(a)),{color:s,lineWidth:o}=n;o&&s&&(t.lineWidth=o,t.strokeStyle=s,t.setLineDash(n.borderDash),t.lineDashOffset=n.borderDashOffset,this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),this.getPointPosition(a,h),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let o,r;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&!e.reverse)return;const h=i.setContext(this.getContext(a)),l=(0,n.a0)(h.font);if(this.getDistanceFromCenterForValue(this.ticks[a].value),h.showLabelBackdrop){t.font=l.string,t.measureText(s.label).width,t.fillStyle=h.backdropColor;const e=(0,n.E)(h.backdropPadding);t.fillRect(-r/2-e.left,-o-l.size/2-e.top,r+e.width,l.size+e.height)}(0,n.Z)(t,s.label,0,-o,l,{color:h.color})})),t.restore()}drawTitle(){}}const Je={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Ze=Object.keys(Je);function Ge(t,e){return t-e}function ti(t,e){if((0,n.k)(e))return null;const i=t._adapter,{parser:s,round:o,isoWeekday:r}=t._parseOpts;let a=e;return"function"===typeof s&&(a=s(a)),(0,n.g)(a)||(a="string"===typeof s?i.parse(a,s):i.parse(a)),null===a?null:(o&&(a="week"!==o||!(0,n.x)(r)&&!0!==r?i.startOf(a,o):i.startOf(a,"isoWeek",r)),+a)}function ei(t,e,i,n){const s=Ze.length;for(let o=Ze.indexOf(t);o<s-1;++o){const t=Je[Ze[o]],s=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)/(s*t.size))<=n)return Ze[o]}return Ze[s-1]}function ii(t,e,i){if(i){if(i.length){const{lo:s,hi:o}=(0,n.aP)(i,e);t[i[s]>=e?i[s]:i[o]]=!0}}else t[e]=!0}function ni(t,e,i){const n=[],s={},o=e.length;let r,a;for(r=0;r<o;++r)a=e[r],s[a]=r,n.push({value:a,major:!1});return 0!==o&&i?function(t,e,i,n){const s=t._adapter,o=+s.startOf(e[0].value,n),r=e[e.length-1].value;let a,h;for(a=o;a<=r;a=+s.add(a,1,n))h=i[a],h>=0&&(e[h].major=!0);return e}(t,n,s,i):n}class si extends Dt{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new E._date(t.adapters.date);s.init(e),(0,n.ab)(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:ti(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:o,minDefined:r,maxDefined:a}=this.getUserBounds();function h(t){r||isNaN(t.min)||(s=Math.min(s,t.min)),a||isNaN(t.max)||(o=Math.max(o,t.max))}r&&a||(h(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||h(this.getMinMax(!1))),s=(0,n.g)(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),o=(0,n.g)(o)&&!isNaN(o)?o:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,o-1),this.max=Math.max(s+1,o)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const o=this.min,r=this.max,a=(0,n.aO)(s,o,r);return this._unit=e.unit||(i.autoSkip?ei(e.minUnit,this.min,this.max,this._getLabelCapacity(o)):function(t,e,i,n,s){for(let o=Ze.length-1;o>=Ze.indexOf(i);o--){const i=Ze[o];if(Je[i].common&&t._adapter.diff(s,n,i)>=e-1)return i}return Ze[i?Ze.indexOf(i):0]}(this,a.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=Ze.indexOf(t)+1,i=Ze.length;e<i;++e)if(Je[Ze[e]].common)return Ze[e]}(this._unit):void 0,this.initOffsets(s),t.reverse&&a.reverse(),ni(this,a,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map((t=>+t.value)))}initOffsets(t=[]){let e,i,s=0,o=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),o=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const r=t.length<3?.5:.25;s=(0,n.S)(s,0,r),o=(0,n.S)(o,0,r),this._offsets={start:s,end:o,factor:1/(s+1+o)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,o=s.time,r=o.unit||ei(o.minUnit,e,i,this._getLabelCapacity(e)),a=(0,n.v)(s.ticks.stepSize,1),h="week"===r&&o.isoWeekday,l=(0,n.x)(h)||!0===h,c={};let d,u,f=e;if(l&&(f=+t.startOf(f,"isoWeek",h)),f=+t.startOf(f,l?"day":r),t.diff(i,e,r)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+r);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d<i;d=+t.add(d,a,r),u++)ii(c,d,g);return d!==i&&"ticks"!==s.bounds&&1!==u||ii(c,d,g),Object.keys(c).sort(((t,e)=>t-e)).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,n=this._unit,s=e||i[n];return this._adapter.format(t,s)}_tickFormatFunction(t,e,i,s){const o=this.options,r=o.ticks.callback;if(r)return(0,n.Q)(r,[t,e,i],this);const a=o.time.displayFormats,h=this._unit,l=this._majorUnit,c=h&&a[h],d=l&&a[l],u=i[e],f=l&&d&&u&&u.major;return this._adapter.format(t,s||(f?d:c))}generateTickLabels(t){let e,i,n;for(e=0,i=t.length;e<i;++e)n=t[e],n.label=this._tickFormatFunction(n.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,s=(0,n.t)(this.isHorizontal()?e.maxRotation:e.minRotation),o=Math.cos(s),r=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*o+a*r,h:i*r+a*o}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,n=i[e.unit]||i.millisecond,s=this._tickFormatFunction(t,0,ni(this,[t],this._majorUnit),n),o=this._getLabelSize(s),r=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return r>0?r:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const n=this.getMatchingVisibleMetas();if(this._normalized&&n.length)return this._cache.data=n[0].controller.getAllParsedValues(this);for(t=0,e=n.length;t<e;++t)i=i.concat(n[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const n=this.getLabels();for(e=0,i=n.length;e<i;++e)t.push(ti(this,n[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return(0,n._)(t.sort(Ge))}}},50713:function(t,e,i){function n(t){return t+.5|0}i.d(e,{$:function(){return Me},A:function(){return Ft},B:function(){return zt},C:function(){return we},D:function(){return Ct},E:function(){return je},F:function(){return U},G:function(){return yi},H:function(){return ft},I:function(){return di},J:function(){return wi},K:function(){return vi},L:function(){return Yt},M:function(){return ci},N:function(){return _t},O:function(){return H},P:function(){return ht},Q:function(){return X},R:function(){return Ve},S:function(){return Lt},T:function(){return lt},U:function(){return St},V:function(){return xe},W:function(){return It},X:function(){return be},Y:function(){return ke},Z:function(){return Oe},_:function(){return Ht},a:function(){return Be},a0:function(){return We},a1:function(){return Xt},a2:function(){return Ut},a3:function(){return ce},a4:function(){return Z},a5:function(){return nt},a6:function(){return de},a7:function(){return ot},a8:function(){return Ye},a9:function(){return Ne},aA:function(){return Oi},aB:function(){return Qt},aC:function(){return Ti},aD:function(){return ve},aE:function(){return Dt},aF:function(){return z},aG:function(){return kt},aH:function(){return yt},aI:function(){return wt},aJ:function(){return bt},aK:function(){return Pt},aL:function(){return le},aM:function(){return xt},aN:function(){return me},aO:function(){return jt},aP:function(){return Rt},aa:function(){return $e},ab:function(){return G},ac:function(){return F},ad:function(){return $t},ae:function(){return _i},af:function(){return ye},ag:function(){return rt},ah:function(){return Q},ai:function(){return at},aj:function(){return Et},ak:function(){return Re},al:function(){return li},am:function(){return Ri},an:function(){return Ei},ao:function(){return Mi},ap:function(){return Si},aq:function(){return ki},ar:function(){return Se},as:function(){return Pe},at:function(){return _e},au:function(){return Te},av:function(){return ze},aw:function(){return Fe},ax:function(){return Ii},ay:function(){return Tt},az:function(){return Di},b:function(){return W},b3:function(){return ut},b4:function(){return gt},b5:function(){return pt},c:function(){return ie},d:function(){return pe},e:function(){return te},f:function(){return it},g:function(){return V},h:function(){return st},i:function(){return B},j:function(){return He},k:function(){return j},l:function(){return Bt},m:function(){return Y},n:function(){return $},o:function(){return ae},p:function(){return At},q:function(){return qt},r:function(){return Nt},s:function(){return mt},t:function(){return Mt},u:function(){return Vt},v:function(){return N},w:function(){return Kt},x:function(){return vt},y:function(){return ii},z:function(){return mi}});const s=(t,e,i)=>Math.max(Math.min(t,i),e);function o(t){return s(n(2.55*t),0,255)}function r(t){return s(n(255*t),0,255)}function a(t){return s(n(t/2.55)/100,0,1)}function h(t){return s(n(100*t),0,100)}const l={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},c=[..."0123456789ABCDEF"],d=t=>c[15&t],u=t=>c[(240&t)>>4]+c[15&t],f=t=>(240&t)>>4===(15&t);function g(t){var e=(t=>f(t.r)&&f(t.g)&&f(t.b)&&f(t.a))(t)?d:u;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const p=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function x(t,e,i){const n=e*Math.min(i,1-i),s=(e,s=(e+t/30)%12)=>i-n*Math.max(Math.min(s-3,9-s,1),-1);return[s(0),s(8),s(4)]}function m(t,e,i){const n=(n,s=(n+t/60)%6)=>i-i*e*Math.max(Math.min(s,4-s,1),0);return[n(5),n(3),n(1)]}function b(t,e,i){const n=x(t,1,.5);let s;for(e+i>1&&(s=1/(e+i),e*=s,i*=s),s=0;s<3;s++)n[s]*=1-e-i,n[s]+=e;return n}function y(t){const e=t.r/255,i=t.g/255,n=t.b/255,s=Math.max(e,i,n),o=Math.min(e,i,n),r=(s+o)/2;let a,h,l;return s!==o&&(l=s-o,h=r>.5?l/(2-s-o):l/(s+o),a=function(t,e,i,n,s){return t===s?(e-i)/n+(e<i?6:0):e===s?(i-t)/n+2:(t-e)/n+4}(e,i,n,l,s),a=60*a+.5),[0|a,h||0,r]}function _(t,e,i,n){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,n)).map(r)}function v(t,e,i){return _(x,t,e,i)}function w(t){return(t%360+360)%360}function k(t){const e=p.exec(t);let i,n=255;if(!e)return;e[5]!==i&&(n=e[6]?o(+e[5]):r(+e[5]));const s=w(+e[2]),a=+e[3]/100,h=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return _(b,t,e,i)}(s,a,h):"hsv"===e[1]?function(t,e,i){return _(m,t,e,i)}(s,a,h):v(s,a,h),{r:i[0],g:i[1],b:i[2],a:n}}const M={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},S={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let P;function C(t){P||(P=function(){const t={},e=Object.keys(S),i=Object.keys(M);let n,s,o,r,a;for(n=0;n<e.length;n++){for(r=a=e[n],s=0;s<i.length;s++)o=i[s],a=a.replace(o,M[o]);o=parseInt(S[r],16),t[a]=[o>>16&255,o>>8&255,255&o]}return t}(),P.transparent=[0,0,0,0]);const e=P[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const D=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const O=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,T=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function A(t,e,i){if(t){let n=y(t);n[e]=Math.max(0,Math.min(n[e]+n[e]*i,0===e?360:1)),n=v(n),t.r=n[0],t.g=n[1],t.b=n[2]}}function L(t,e){return t?Object.assign(e||{},t):t}function I(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=r(t[3]))):(e=L(t,{r:0,g:0,b:0,a:1})).a=r(e.a),e}function E(t){return"r"===t.charAt(0)?function(t){const e=D.exec(t);let i,n,r,a=255;if(e){if(e[7]!==i){const t=+e[7];a=e[8]?o(t):s(255*t,0,255)}return i=+e[1],n=+e[3],r=+e[5],i=255&(e[2]?o(i):s(i,0,255)),n=255&(e[4]?o(n):s(n,0,255)),r=255&(e[6]?o(r):s(r,0,255)),{r:i,g:n,b:r,a:a}}}(t):k(t)}class R{constructor(t){if(t instanceof R)return t;const e=typeof t;let i;"object"===e?i=I(t):"string"===e&&(i=function(t){var e,i=t.length;return"#"===t[0]&&(4===i||5===i?e={r:255&17*l[t[1]],g:255&17*l[t[2]],b:255&17*l[t[3]],a:5===i?17*l[t[4]]:255}:7!==i&&9!==i||(e={r:l[t[1]]<<4|l[t[2]],g:l[t[3]]<<4|l[t[4]],b:l[t[5]]<<4|l[t[6]],a:9===i?l[t[7]]<<4|l[t[8]]:255})),e}(t)||C(t)||E(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=L(this._rgb);return t&&(t.a=a(t.a)),t}set rgb(t){this._rgb=I(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${a(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?g(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=y(t),i=e[0],n=h(e[1]),s=h(e[2]);return t.a<255?`hsla(${i}, ${n}%, ${s}%, ${a(t.a)})`:`hsl(${i}, ${n}%, ${s}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,n=t.rgb;let s;const o=e===s?.5:e,r=2*o-1,a=i.a-n.a,h=((r*a===-1?r:(r+a)/(1+r*a))+1)/2;s=1-h,i.r=255&h*i.r+s*n.r+.5,i.g=255&h*i.g+s*n.g+.5,i.b=255&h*i.b+s*n.b+.5,i.a=o*i.a+(1-o)*n.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const n=T(a(t.r)),s=T(a(t.g)),o=T(a(t.b));return{r:r(O(n+i*(T(a(e.r))-n))),g:r(O(s+i*(T(a(e.g))-s))),b:r(O(o+i*(T(a(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new R(this.rgb)}alpha(t){return this._rgb.a=r(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=n(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return A(this._rgb,2,t),this}darken(t){return A(this._rgb,2,-t),this}saturate(t){return A(this._rgb,1,t),this}desaturate(t){return A(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=y(t);i[0]=w(i[0]+e),i=v(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function z(){}const F=(()=>{let t=0;return()=>t++})();function j(t){return null===t||"undefined"===typeof t}function W(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function B(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function V(t){return("number"===typeof t||t instanceof Number)&&isFinite(+t)}function H(t,e){return V(t)?t:e}function N(t,e){return"undefined"===typeof t?e:t}const Y=(t,e)=>"string"===typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,$=(t,e)=>"string"===typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function X(t,e,i){if(t&&"function"===typeof t.call)return t.apply(i,e)}function U(t,e,i,n){let s,o,r;if(W(t))if(o=t.length,n)for(s=o-1;s>=0;s--)e.call(i,t[s],s);else for(s=0;s<o;s++)e.call(i,t[s],s);else if(B(t))for(r=Object.keys(t),o=r.length,s=0;s<o;s++)e.call(i,t[r[s]],r[s])}function Q(t,e){let i,n,s,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(s=t[i],o=e[i],s.datasetIndex!==o.datasetIndex||s.index!==o.index)return!1;return!0}function q(t){if(W(t))return t.map(q);if(B(t)){const e=Object.create(null),i=Object.keys(t),n=i.length;let s=0;for(;s<n;++s)e[i[s]]=q(t[i[s]]);return e}return t}function K(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function J(t,e,i,n){if(!K(t))return;const s=e[t],o=i[t];B(s)&&B(o)?Z(s,o,n):e[t]=q(o)}function Z(t,e,i){const n=W(e)?e:[e],s=n.length;if(!B(t))return t;const o=(i=i||{}).merger||J;let r;for(let a=0;a<s;++a){if(r=n[a],!B(r))continue;const e=Object.keys(r);for(let n=0,s=e.length;n<s;++n)o(e[n],t,r,i)}return t}function G(t,e){return Z(t,e,{merger:tt})}function tt(t,e,i){if(!K(t))return;const n=e[t],s=i[t];B(n)&&B(s)?G(n,s):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=q(s))}const et={"":t=>t,x:t=>t.x,y:t=>t.y};function it(t,e){const i=et[e]||(et[e]=function(t){const e=function(t){const e=t.split("."),i=[];let n="";for(const s of e)n+=s,n.endsWith("\\")?n=n.slice(0,-1)+".":(i.push(n),n="");return i}(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function nt(t){return t.charAt(0).toUpperCase()+t.slice(1)}const st=t=>"undefined"!==typeof t,ot=t=>"function"===typeof t,rt=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function at(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const ht=Math.PI,lt=2*ht,ct=lt+ht,dt=Number.POSITIVE_INFINITY,ut=ht/180,ft=ht/2,gt=ht/4,pt=2*ht/3,xt=Math.log10,mt=Math.sign;function bt(t,e,i){return Math.abs(t-e)<i}function yt(t){const e=Math.round(t);t=bt(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(xt(t))),n=t/i;return(n<=1?1:n<=2?2:n<=5?5:10)*i}function _t(t){const e=[],i=Math.sqrt(t);let n;for(n=1;n<i;n++)t%n===0&&(e.push(n),e.push(t/n));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function vt(t){return!isNaN(parseFloat(t))&&isFinite(t)}function wt(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function kt(t,e,i){let n,s,o;for(n=0,s=t.length;n<s;n++)o=t[n][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function Mt(t){return t*(ht/180)}function St(t){return t*(180/ht)}function Pt(t){if(!V(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Ct(t,e){const i=e.x-t.x,n=e.y-t.y,s=Math.sqrt(i*i+n*n);let o=Math.atan2(n,i);return o<-.5*ht&&(o+=lt),{angle:o,distance:s}}function Dt(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Ot(t,e){return(t-e+ct)%lt-ht}function Tt(t){return(t%lt+lt)%lt}function At(t,e,i,n){const s=Tt(t),o=Tt(e),r=Tt(i),a=Tt(o-s),h=Tt(r-s),l=Tt(s-o),c=Tt(s-r);return s===o||s===r||n&&o===r||a>h&&l<c}function Lt(t,e,i){return Math.max(e,Math.min(i,t))}function It(t){return Lt(t,-32768,32767)}function Et(t,e,i,n=1e-6){return t>=Math.min(e,i)-n&&t<=Math.max(e,i)+n}function Rt(t,e,i){i=i||(i=>t[i]<e);let n,s=t.length-1,o=0;for(;s-o>1;)n=o+s>>1,i(n)?o=n:s=n;return{lo:o,hi:s}}const zt=(t,e,i,n)=>Rt(t,i,n?n=>{const s=t[n][e];return s<i||s===i&&t[n+1][e]===i}:n=>t[n][e]<i),Ft=(t,e,i)=>Rt(t,i,(n=>t[n][e]>=i));function jt(t,e,i){let n=0,s=t.length;for(;n<s&&t[n]<e;)n++;for(;s>n&&t[s-1]>i;)s--;return n>0||s<t.length?t.slice(n,s):t}const Wt=["push","pop","shift","splice","unshift"];function Bt(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),Wt.forEach((e=>{const i="_onData"+nt(e),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const s=n.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"===typeof t[i]&&t[i](...e)})),s}})})))}function Vt(t,e){const i=t._chartjs;if(!i)return;const n=i.listeners,s=n.indexOf(e);-1!==s&&n.splice(s,1),n.length>0||(Wt.forEach((e=>{delete t[e]})),delete t._chartjs)}function Ht(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const Nt="undefined"===typeof window?function(t){return t()}:window.requestAnimationFrame;function Yt(t,e){let i=[],n=!1;return function(...s){i=s,n||(n=!0,Nt.call(window,(()=>{n=!1,t.apply(e,i)})))}}function $t(t,e){let i;return function(...n){return e?(clearTimeout(i),i=setTimeout(t,e,n)):t.apply(this,n),e}}const Xt=t=>"start"===t?"left":"end"===t?"right":"center",Ut=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,Qt=(t,e,i,n)=>t===(n?"left":"right")?i:"center"===t?(e+i)/2:e;function qt(t,e,i){const n=e.length;let s=0,o=n;if(t._sorted){const{iScale:r,_parsed:a}=t,h=r.axis,{min:l,max:c,minDefined:d,maxDefined:u}=r.getUserBounds();d&&(s=Lt(Math.min(zt(a,r.axis,l).lo,i?n:zt(e,h,r.getPixelForValue(l)).lo),0,n-1)),o=u?Lt(Math.max(zt(a,r.axis,c,!0).hi+1,i?0:zt(e,h,r.getPixelForValue(c),!0).hi+1),s,n)-s:n-s}return{start:s,count:o}}function Kt(t){const{xScale:e,yScale:i,_scaleRanges:n}=t,s={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!n)return t._scaleRanges=s,!0;const o=n.xmin!==e.min||n.xmax!==e.max||n.ymin!==i.min||n.ymax!==i.max;return Object.assign(n,s),o}const Jt=t=>0===t||1===t,Zt=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*lt/i),Gt=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*lt/i)+1,te={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*ft),easeOutSine:t=>Math.sin(t*ft),easeInOutSine:t=>-.5*(Math.cos(ht*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>Jt(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Jt(t)?t:Zt(t,.075,.3),easeOutElastic:t=>Jt(t)?t:Gt(t,.075,.3),easeInOutElastic(t){const e=.1125;return Jt(t)?t:t<.5?.5*Zt(2*t,e,.45):.5+.5*Gt(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-te.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*te.easeInBounce(2*t):.5*te.easeOutBounce(2*t-1)+.5};function ee(t){if(t&&"object"===typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function ie(t){return ee(t)?t:new R(t)}function ne(t){return ee(t)?t:new R(t).saturate(.5).darken(.1).hexString()}const se=["x","y","borderWidth","radius","tension"],oe=["color","borderColor","backgroundColor"];const re=new Map;function ae(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let n=re.get(i);return n||(n=new Intl.NumberFormat(t,e),re.set(i,n)),n}(e,i).format(t)}const he={values(t){return W(t)?t:""+t},numeric(t,e,i){if(0===t)return"0";const n=this.chart.options.locale;let s,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(s="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const r=xt(Math.abs(o)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),h={notation:s,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(h,this.options.ticks.format),ae(t,n,h)},logarithmic(t,e,i){if(0===t)return"0";const n=i[e].significand||t/Math.pow(10,Math.floor(xt(t)));return[1,2,3,5,10,15].includes(n)||e>.8*i.length?he.numeric.call(this,t,e,i):""}};var le={formatters:he};const ce=Object.create(null),de=Object.create(null);function ue(t,e){if(!e)return t;const i=e.split(".");for(let n=0,s=i.length;n<s;++n){const e=i[n];t=t[e]||(t[e]=Object.create(null))}return t}function fe(t,e,i){return"string"===typeof e?Z(ue(t,e),i):Z(ue(t,""),e)}class ge{constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>ne(e.backgroundColor),this.hoverBorderColor=(t,e)=>ne(e.borderColor),this.hoverColor=(t,e)=>ne(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return fe(this,t,e)}get(t){return ue(this,t)}describe(t,e){return fe(de,t,e)}override(t,e){return fe(ce,t,e)}route(t,e,i,n){const s=ue(this,t),o=ue(this,i),r="_"+e;Object.defineProperties(s,{[r]:{value:s[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=o[n];return B(t)?Object.assign({},e,t):N(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var pe=new ge({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:oe},numbers:{type:"number",properties:se}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:le.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function xe(t,e,i,n,s){let o=e[s];return o||(o=e[s]=t.measureText(s).width,i.push(s)),o>n&&(n=o),n}function me(t,e,i,n){let s=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(s=n.data={},o=n.garbageCollect=[],n.font=e),t.save(),t.font=e;let r=0;const a=i.length;let h,l,c,d,u;for(h=0;h<a;h++)if(d=i[h],void 0===d||null===d||W(d)){if(W(d))for(l=0,c=d.length;l<c;l++)u=d[l],void 0===u||null===u||W(u)||(r=xe(t,s,o,r,u))}else r=xe(t,s,o,r,d);t.restore();const f=o.length/2;if(f>i.length){for(h=0;h<f;h++)delete s[o[h]];o.splice(0,f)}return r}function be(t,e,i){const n=t.currentDevicePixelRatio,s=0!==i?Math.max(i/2,.5):0;return Math.round((e-s)*n)/n+s}function ye(t,e){(e=e||t.getContext("2d")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore()}function _e(t,e,i,n){ve(t,e,i,n,null)}function ve(t,e,i,n,s){let o,r,a,h,l,c,d,u;const f=e.pointStyle,g=e.rotation,p=e.radius;let x=(g||0)*ut;if(f&&"object"===typeof f&&(o=f.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return t.save(),t.translate(i,n),t.rotate(x),t.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),void t.restore();if(!(isNaN(p)||p<=0)){switch(t.beginPath(),f){default:s?t.ellipse(i,n,s/2,p,0,0,lt):t.arc(i,n,p,0,lt),t.closePath();break;case"triangle":c=s?s/2:p,t.moveTo(i+Math.sin(x)*c,n-Math.cos(x)*p),x+=pt,t.lineTo(i+Math.sin(x)*c,n-Math.cos(x)*p),x+=pt,t.lineTo(i+Math.sin(x)*c,n-Math.cos(x)*p),t.closePath();break;case"rectRounded":l=.516*p,h=p-l,r=Math.cos(x+gt)*h,d=Math.cos(x+gt)*(s?s/2-l:h),a=Math.sin(x+gt)*h,u=Math.sin(x+gt)*(s?s/2-l:h),t.arc(i-d,n-a,l,x-ht,x-ft),t.arc(i+u,n-r,l,x-ft,x),t.arc(i+d,n+a,l,x,x+ft),t.arc(i-u,n+r,l,x+ft,x+ht),t.closePath();break;case"rect":if(!g){h=Math.SQRT1_2*p,c=s?s/2:h,t.rect(i-c,n-h,2*c,2*h);break}x+=gt;case"rectRot":d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+u,n-r),t.lineTo(i+d,n+a),t.lineTo(i-u,n+r),t.closePath();break;case"crossRot":x+=gt;case"cross":d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+d,n+a),t.moveTo(i+u,n-r),t.lineTo(i-u,n+r);break;case"star":d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+d,n+a),t.moveTo(i+u,n-r),t.lineTo(i-u,n+r),x+=gt,d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+d,n+a),t.moveTo(i+u,n-r),t.lineTo(i-u,n+r);break;case"line":r=s?s/2:Math.cos(x)*p,a=Math.sin(x)*p,t.moveTo(i-r,n-a),t.lineTo(i+r,n+a);break;case"dash":t.moveTo(i,n),t.lineTo(i+Math.cos(x)*(s?s/2:p),n+Math.sin(x)*p);break;case!1:t.closePath()}t.fill(),e.borderWidth>0&&t.stroke()}}function we(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x<e.right+i&&t.y>e.top-i&&t.y<e.bottom+i}function ke(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function Me(t){t.restore()}function Se(t,e,i,n,s){if(!e)return t.lineTo(i.x,i.y);if("middle"===s){const n=(e.x+i.x)/2;t.lineTo(n,e.y),t.lineTo(n,i.y)}else"after"===s!==!!n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function Pe(t,e,i,n){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(n?e.cp1x:e.cp2x,n?e.cp1y:e.cp2y,n?i.cp2x:i.cp1x,n?i.cp2y:i.cp1y,i.x,i.y)}function Ce(t,e,i,n,s){if(s.strikethrough||s.underline){const o=t.measureText(n),r=e-o.actualBoundingBoxLeft,a=e+o.actualBoundingBoxRight,h=i-o.actualBoundingBoxAscent,l=i+o.actualBoundingBoxDescent,c=s.strikethrough?(h+l)/2:l;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=s.decorationWidth||2,t.moveTo(r,c),t.lineTo(a,c),t.stroke()}}function De(t,e){const i=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=i}function Oe(t,e,i,n,s,o={}){const r=W(e)?e:[e],a=o.strokeWidth>0&&""!==o.strokeColor;let h,l;for(t.save(),t.font=s.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),j(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,o),h=0;h<r.length;++h)l=r[h],o.backdrop&&De(t,o.backdrop),a&&(o.strokeColor&&(t.strokeStyle=o.strokeColor),j(o.strokeWidth)||(t.lineWidth=o.strokeWidth),t.strokeText(l,i,n,o.maxWidth)),t.fillText(l,i,n,o.maxWidth),Ce(t,i,n,l,o),n+=Number(s.lineHeight);t.restore()}function Te(t,e){const{x:i,y:n,w:s,h:o,radius:r}=e;t.arc(i+r.topLeft,n+r.topLeft,r.topLeft,-ft,ht,!0),t.lineTo(i,n+o-r.bottomLeft),t.arc(i+r.bottomLeft,n+o-r.bottomLeft,r.bottomLeft,ht,ft,!0),t.lineTo(i+s-r.bottomRight,n+o),t.arc(i+s-r.bottomRight,n+o-r.bottomRight,r.bottomRight,ft,0,!0),t.lineTo(i+s,n+r.topRight),t.arc(i+s-r.topRight,n+r.topRight,r.topRight,0,-ft,!0),t.lineTo(i+r.topLeft,n)}const Ae=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,Le=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function Ie(t,e){const i=(""+t).match(Ae);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}const Ee=t=>+t||0;function Re(t,e){const i={},n=B(e),s=n?Object.keys(e):e,o=B(t)?n?i=>N(t[i],t[e[i]]):e=>t[e]:()=>t;for(const r of s)i[r]=Ee(o(r));return i}function ze(t){return Re(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Fe(t){return Re(t,["topLeft","topRight","bottomLeft","bottomRight"])}function je(t){const e=ze(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function We(t,e){t=t||{},e=e||pe.font;let i=N(t.size,e.size);"string"===typeof i&&(i=parseInt(i,10));let n=N(t.style,e.style);n&&!(""+n).match(Le)&&(console.warn('Invalid font style specified: "'+n+'"'),n=void 0);const s={family:N(t.family,e.family),lineHeight:Ie(N(t.lineHeight,e.lineHeight),i),size:i,style:n,weight:N(t.weight,e.weight),string:""};return s.string=function(t){return!t||j(t.size)||j(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(s),s}function Be(t,e,i,n){let s,o,r,a=!0;for(s=0,o=t.length;s<o;++s)if(r=t[s],void 0!==r&&(void 0!==e&&"function"===typeof r&&(r=r(e),a=!1),void 0!==i&&W(r)&&(r=r[i%r.length],a=!1),void 0!==r))return n&&!a&&(n.cacheable=!1),r}function Ve(t,e,i){const{min:n,max:s}=t,o=$(e,(s-n)/2),r=(t,e)=>i&&0===t?0:t+e;return{min:r(n,-Math.abs(o)),max:r(s,o)}}function He(t,e){return Object.assign(Object.create(t),e)}function Ne(t,e=[""],i,n,s=(()=>t[0])){const o=i||t;"undefined"===typeof n&&(n=ti("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:n,_getTarget:s,override:i=>Ne([i,...t],e,o,n)};return new Proxy(r,{deleteProperty(e,i){return delete e[i],delete e._keys,delete t[0][i],!0},get(i,n){return Qe(i,n,(()=>function(t,e,i,n){let s;for(const o of e)if(s=ti(Xe(o,t),i),"undefined"!==typeof s)return Ue(t,s)?Ze(i,n,t,s):s}(n,e,t,i)))},getOwnPropertyDescriptor(t,e){return Reflect.getOwnPropertyDescriptor(t._scopes[0],e)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(t,e){return ei(t).includes(e)},ownKeys(t){return ei(t)},set(t,e,i){const n=t._storage||(t._storage=s());return t[e]=n[e]=i,delete t._keys,!0}})}function Ye(t,e,i,n){const s={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:$e(t,n),setContext:e=>Ye(t,e,i,n),override:s=>Ye(t.override(s),e,i,n)};return new Proxy(s,{deleteProperty(e,i){return delete e[i],delete t[i],!0},get(t,e,i){return Qe(t,e,(()=>function(t,e,i){const{_proxy:n,_context:s,_subProxy:o,_descriptors:r}=t;let a=n[e];ot(a)&&r.isScriptable(e)&&(a=function(t,e,i,n){const{_proxy:s,_context:o,_subProxy:r,_stack:a}=i;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let h=e(o,r||n);a.delete(t),Ue(t,h)&&(h=Ze(s._scopes,s,t,h));return h}(e,a,t,i));W(a)&&a.length&&(a=function(t,e,i,n){const{_proxy:s,_context:o,_subProxy:r,_descriptors:a}=i;if("undefined"!==typeof o.index&&n(t))return e[o.index%e.length];if(B(e[0])){const i=e,n=s._scopes.filter((t=>t!==i));e=[];for(const h of i){const i=Ze(n,s,t,h);e.push(Ye(i,o,r&&r[t],a))}}return e}(e,a,t,r.isIndexable));Ue(e,a)&&(a=Ye(a,s,o&&o[e],r));return a}(t,e,i)))},getOwnPropertyDescriptor(e,i){return e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(e,i){return Reflect.has(t,i)},ownKeys(){return Reflect.ownKeys(t)},set(e,i,n){return t[i]=n,delete e[i],!0}})}function $e(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:n=e.indexable,_allKeys:s=e.allKeys}=t;return{allKeys:s,scriptable:i,indexable:n,isScriptable:ot(i)?i:()=>i,isIndexable:ot(n)?n:()=>n}}const Xe=(t,e)=>t?t+nt(e):e,Ue=(t,e)=>B(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function Qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const n=i();return t[e]=n,n}function qe(t,e,i){return ot(t)?t(e,i):t}const Ke=(t,e)=>!0===t?e:"string"===typeof t?it(e,t):void 0;function Je(t,e,i,n,s){for(const o of e){const e=Ke(i,o);if(e){t.add(e);const o=qe(e._fallback,i,s);if("undefined"!==typeof o&&o!==i&&o!==n)return o}else if(!1===e&&"undefined"!==typeof n&&i!==n)return null}return!1}function Ze(t,e,i,n){const s=e._rootScopes,o=qe(e._fallback,i,n),r=[...t,...s],a=new Set;a.add(n);let h=Ge(a,r,i,o||i,n);return null!==h&&(("undefined"===typeof o||o===i||(h=Ge(a,r,o,h,n),null!==h))&&Ne(Array.from(a),[""],s,o,(()=>function(t,e,i){const n=t._getTarget();e in n||(n[e]={});const s=n[e];if(W(s)&&B(i))return i;return s||{}}(e,i,n))))}function Ge(t,e,i,n,s){for(;i;)i=Je(t,e,i,n,s);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if("undefined"!==typeof e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,n){const{iScale:s}=t,{key:o="r"}=this._parsing,r=new Array(n);let a,h,l,c;for(a=0,h=n;a<h;++a)l=a+i,c=e[l],r[a]={r:s.parse(it(c,o),l)};return r}const ni=Number.EPSILON||1e-14,si=(t,e)=>e<t.length&&!t[e].skip&&t[e],oi=t=>"x"===t?"y":"x";function ri(t,e,i,n){const s=t.skip?e:t,o=e,r=i.skip?e:i,a=Dt(o,s),h=Dt(r,o);let l=a/(a+h),c=h/(a+h);l=isNaN(l)?0:l,c=isNaN(c)?0:c;const d=n*l,u=n*c;return{previous:{x:o.x-d*(r.x-s.x),y:o.y-d*(r.y-s.y)},next:{x:o.x+u*(r.x-s.x),y:o.y+u*(r.y-s.y)}}}function ai(t,e="x"){const i=oi(e),n=t.length,s=Array(n).fill(0),o=Array(n);let r,a,h,l=si(t,0);for(r=0;r<n;++r)if(a=h,h=l,l=si(t,r+1),h){if(l){const t=l[e]-h[e];s[r]=0!==t?(l[i]-h[i])/t:0}o[r]=a?l?mt(s[r-1])!==mt(s[r])?0:(s[r-1]+s[r])/2:s[r-1]:s[r]}!function(t,e,i){const n=t.length;let s,o,r,a,h,l=si(t,0);for(let c=0;c<n-1;++c)h=l,l=si(t,c+1),h&&l&&(bt(e[c],0,ni)?i[c]=i[c+1]=0:(s=i[c]/e[c],o=i[c+1]/e[c],a=Math.pow(s,2)+Math.pow(o,2),a<=9||(r=3/Math.sqrt(a),i[c]=s*r*e[c],i[c+1]=o*r*e[c])))}(t,s,o),function(t,e,i="x"){const n=oi(i),s=t.length;let o,r,a,h=si(t,0);for(let l=0;l<s;++l){if(r=a,a=h,h=si(t,l+1),!a)continue;const s=a[i],c=a[n];r&&(o=(s-r[i])/3,a[`cp1${i}`]=s-o,a[`cp1${n}`]=c-o*e[l]),h&&(o=(h[i]-s)/3,a[`cp2${i}`]=s+o,a[`cp2${n}`]=c+o*e[l])}}(t,o,e)}function hi(t,e,i){return Math.max(Math.min(t,i),e)}function li(t,e,i,n,s){let o,r,a,h;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),"monotone"===e.cubicInterpolationMode)ai(t,s);else{let i=n?t[t.length-1]:t[0];for(o=0,r=t.length;o<r;++o)a=t[o],h=ri(i,a,t[Math.min(o+1,r-(n?0:1))%r],e.tension),a.cp1x=h.previous.x,a.cp1y=h.previous.y,a.cp2x=h.next.x,a.cp2y=h.next.y,i=a}e.capBezierPoints&&function(t,e){let i,n,s,o,r,a=we(t[0],e);for(i=0,n=t.length;i<n;++i)r=o,o=a,a=i<n-1&&we(t[i+1],e),o&&(s=t[i],r&&(s.cp1x=hi(s.cp1x,e.left,e.right),s.cp1y=hi(s.cp1y,e.top,e.bottom)),a&&(s.cp2x=hi(s.cp2x,e.left,e.right),s.cp2y=hi(s.cp2y,e.top,e.bottom)))}(t,i)}function ci(){return"undefined"!==typeof window&&"undefined"!==typeof document}function di(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function ui(t,e,i){let n;return"string"===typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}const fi=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);const gi=["top","right","bottom","left"];function pi(t,e,i){const n={};i=i?"-"+i:"";for(let s=0;s<4;s++){const o=gi[s];n[o]=parseFloat(t[e+"-"+o+i])||0}return n.width=n.left+n.right,n.height=n.top+n.bottom,n}const xi=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function mi(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:n}=e,s=fi(i),o="border-box"===s.boxSizing,r=pi(s,"padding"),a=pi(s,"border","width"),{x:h,y:l,box:c}=function(t,e){const i=t.touches,n=i&&i.length?i[0]:t,{offsetX:s,offsetY:o}=n;let r,a,h=!1;if(xi(s,o,t.target))r=s,a=o;else{const t=e.getBoundingClientRect();r=n.clientX-t.left,a=n.clientY-t.top,h=!0}return{x:r,y:a,box:h}}(t,i),d=r.left+(c&&a.left),u=r.top+(c&&a.top);let{width:f,height:g}=e;return o&&(f-=r.width+a.width,g-=r.height+a.height),{x:Math.round((h-d)/f*i.width/n),y:Math.round((l-u)/g*i.height/n)}}const bi=t=>Math.round(10*t)/10;function yi(t,e,i,n){const s=fi(t),o=pi(s,"margin"),r=ui(s.maxWidth,t,"clientWidth")||dt,a=ui(s.maxHeight,t,"clientHeight")||dt,h=function(t,e,i){let n,s;if(void 0===e||void 0===i){const o=di(t);if(o){const t=o.getBoundingClientRect(),r=fi(o),a=pi(r,"border","width"),h=pi(r,"padding");e=t.width-h.width-a.width,i=t.height-h.height-a.height,n=ui(r.maxWidth,o,"clientWidth"),s=ui(r.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:n||dt,maxHeight:s||dt}}(t,e,i);let{width:l,height:c}=h;if("content-box"===s.boxSizing){const t=pi(s,"border","width"),e=pi(s,"padding");l-=e.width+t.width,c-=e.height+t.height}l=Math.max(0,l-o.width),c=Math.max(0,n?l/n:c-o.height),l=bi(Math.min(l,r,h.maxWidth)),c=bi(Math.min(c,a,h.maxHeight)),l&&!c&&(c=bi(l/2));return(void 0!==e||void 0!==i)&&n&&h.height&&c>h.height&&(c=h.height,l=bi(Math.floor(c*n))),{width:l,height:c}}function _i(t,e,i){const n=e||1,s=Math.floor(t.height*n),o=Math.floor(t.width*n);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const r=t.canvas;return r.style&&(i||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==n||r.height!==s||r.width!==o)&&(t.currentDevicePixelRatio=n,r.height=s,r.width=o,t.ctx.setTransform(n,0,0,n,0,0),!0)}const vi=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){}return t}();function wi(t,e){const i=function(t,e){return fi(t).getPropertyValue(e)}(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?+n[1]:void 0}function ki(t,e,i,n){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function Mi(t,e,i,n){return{x:t.x+i*(e.x-t.x),y:"middle"===n?i<.5?t.y:e.y:"after"===n?i<1?t.y:e.y:i>0?e.y:t.y}}function Si(t,e,i,n){const s={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},r=ki(t,s,i),a=ki(s,o,i),h=ki(o,e,i),l=ki(r,a,i),c=ki(a,h,i);return ki(l,c,i)}const Pi=function(t,e){return{x(i){return t+t+e-i},setWidth(t){e=t},textAlign(t){return"center"===t?t:"right"===t?"left":"right"},xPlus(t,e){return t-e},leftForLtr(t,e){return t-e}}},Ci=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Di(t,e,i){return t?Pi(e,i):Ci()}function Oi(t,e){let i,n;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,n=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=n)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Ai(t){return"angle"===t?{between:At,compare:Ot,normalize:Tt}:{between:Et,compare:(t,e)=>t-e,normalize:t=>t}}function Li({start:t,end:e,count:i,loop:n,style:s}){return{start:t%i,end:e%i,loop:n&&(e-t+1)%i===0,style:s}}function Ii(t,e,i){if(!i)return[t];const{property:n,start:s,end:o}=i,r=e.length,{compare:a,between:h,normalize:l}=Ai(n),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:n,start:s,end:o}=i,{between:r,normalize:a}=Ai(n),h=e.length;let l,c,{start:d,end:u,loop:f}=t;if(f){for(d+=h,u+=h,l=0,c=h;l<c&&r(a(e[d%h][n]),s,o);++l)d--,u--;d%=h,u%=h}return u<d&&(u+=h),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,x,m,b=!1,y=null;const _=()=>b||h(s,m,p)&&0!==a(s,m),v=()=>!b||0===a(o,p)||h(o,m,p);for(let w=c,k=c;w<=d;++w)x=e[w%r],x.skip||(p=l(x[n]),p!==m&&(b=h(p,s,o),null===y&&_()&&(y=0===a(p,s)?w:k),null!==y&&v()&&(g.push(Li({start:y,end:w,loop:u,count:r,style:f})),y=null),k=w,m=p));return null!==y&&g.push(Li({start:y,end:d,loop:u,count:r,style:f})),g}function Ei(t,e){const i=[],n=t.segments;for(let s=0;s<n.length;s++){const o=Ii(n[s],t.points,e);o.length&&i.push(...o)}return i}function Ri(t,e){const i=t.points,n=t.options.spanGaps,s=i.length;if(!s)return[];const o=!!t._loop,{start:r,end:a}=function(t,e,i,n){let s=0,o=e-1;if(i&&!n)for(;s<e&&!t[s].skip;)s++;for(;s<e&&t[s].skip;)s++;for(s%=e,i&&(o+=s);o>s&&t[o%e].skip;)o--;return o%=e,{start:s,end:o}}(i,s,o,n);if(!0===n)return zi(t,[{start:r,end:a,loop:o}],i,e);return zi(t,function(t,e,i,n){const s=t.length,o=[];let r,a=e,h=t[e];for(r=e+1;r<=i;++r){const i=t[r%s];i.skip||i.stop?h.skip||(n=!1,o.push({start:e%s,end:(r-1)%s,loop:n}),e=a=i.stop?r:null):(a=r,h.skip&&(e=r)),h=i}return null!==a&&o.push({start:e%s,end:a%s,loop:n}),o}(i,r,a<r?a+s:a,!!t._fullLoop&&0===r&&a===s-1),i,e)}function zi(t,e,i,n){return n&&n.setContext&&i?function(t,e,i,n){const s=t._chart.getContext(),o=Fi(t.options),{_datasetIndex:r,options:{spanGaps:a}}=t,h=i.length,l=[];let c=o,d=e[0].start,u=d;function f(t,e,n,s){const o=a?-1:1;if(t!==e){for(t+=h;i[t%h].skip;)t-=o;for(;i[e%h].skip;)e+=o;t%h!==e%h&&(l.push({start:t%h,end:e%h,loop:n,style:s}),c=s,d=e%h)}}for(const g of e){d=a?d:g.start;let t,e=i[d%h];for(u=d+1;u<=g.end;u++){const o=i[u%h];t=Fi(n.setContext(He(s,{type:"segment",p0:e,p1:o,p0DataIndex:(u-1)%h,p1DataIndex:u%h,datasetIndex:r}))),ji(t,c)&&f(d,u-1,g.loop,c),e=o,c=t}d<u-1&&f(d,u-1,g.loop,c)}return l}(t,e,i,n):e}function Fi(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function ji(t,e){if(!e)return!1;const i=[],n=function(t,e){return ee(e)?(i.includes(e)||i.push(e),i.indexOf(e)):e};return JSON.stringify(t,n)!==JSON.stringify(e,n)}},26495:function(t,e,i){i.d(e,{$Q:function(){return f},kL:function(){return d}});var n=i(67294),s=i(23148);const o="label";function r(t,e){"function"===typeof t?t(e):t&&(t.current=e)}function a(t,e){t.labels=e}function h(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o;const n=[];t.datasets=e.map((e=>{const s=t.datasets.find((t=>t[i]===e[i]));return s&&e.data&&!n.includes(s)?(n.push(s),Object.assign(s,e),s):{...e}}))}function l(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;const i={labels:[],datasets:[]};return a(i,t.labels),h(i,t.datasets,e),i}function c(t,e){const{height:i=150,width:o=300,redraw:c=!1,datasetIdKey:d,type:u,data:f,options:g,plugins:p=[],fallbackContent:x,updateMode:m,...b}=t,y=(0,n.useRef)(null),_=(0,n.useRef)(),v=()=>{y.current&&(_.current=new s.kL(y.current,{type:u,data:l(f,d),options:g&&{...g},plugins:p}),r(e,_.current))},w=()=>{r(e,null),_.current&&(_.current.destroy(),_.current=null)};return(0,n.useEffect)((()=>{!c&&_.current&&g&&function(t,e){const i=t.options;i&&e&&Object.assign(i,e)}(_.current,g)}),[c,g]),(0,n.useEffect)((()=>{!c&&_.current&&a(_.current.config.data,f.labels)}),[c,f.labels]),(0,n.useEffect)((()=>{!c&&_.current&&f.datasets&&h(_.current.config.data,f.datasets,d)}),[c,f.datasets]),(0,n.useEffect)((()=>{_.current&&(c?(w(),setTimeout(v)):_.current.update(m))}),[c,g,f.labels,f.datasets,m]),(0,n.useEffect)((()=>{_.current&&(w(),setTimeout(v))}),[u]),(0,n.useEffect)((()=>(v(),()=>w())),[]),n.createElement("canvas",Object.assign({ref:y,role:"img",height:i,width:o},b),x)}const d=(0,n.forwardRef)(c);function u(t,e){return s.kL.register(e),(0,n.forwardRef)(((e,i)=>n.createElement(d,Object.assign({},e,{ref:i,type:t}))))}const f=u("bar",s.vn)}}]); \ No newline at end of file
+/*! For license information please see 514.af9132e943f111b25f1c.chunk.js.LICENSE.txt */
+!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="da725168-bf64-4b7b-9a55-49e29b6f2433",t._sentryDebugIdIdentifier="sentry-dbid-da725168-bf64-4b7b-9a55-49e29b6f2433")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[514],{36337:function(t,e,i){i.d(e,{Z:function(){return Xt}});var n=i(23148),s=i(50713);const o={modes:{point(t,e){return a(t,e,{intersect:!0})},nearest(t,e,i){return function(t,e,i){let n=Number.POSITIVE_INFINITY;return a(t,e,i).reduce(((t,o)=>{const r=o.getCenterPoint(),a=function(t,e,i){if("x"===i)return{x:t.x,y:e.y};if("y"===i)return{x:e.x,y:t.y};return e}(e,r,i.axis),h=(0,s.aE)(e,a);return h<n?(t=[o],n=h):h===n&&t.push(o),t}),[]).sort(((t,e)=>t._index-e._index)).slice(0,1)}(t,e,i)},x(t,e,i){return a(t,e,{intersect:i.intersect,axis:"x"})},y(t,e,i){return a(t,e,{intersect:i.intersect,axis:"y"})}}};function r(t,e,i){return(o.modes[i.mode]||o.modes.nearest)(t,e,i)}function a(t,e,i){return t.visibleElements.filter((t=>i.intersect?t.inRange(e.x,e.y):function(t,e,i){return"x"!==i&&"y"!==i?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,i,!0)}(t,e,i.axis)))}const h=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,l=.001,c=(t,e,i)=>Math.min(i,Math.max(e,t));function d(t,e,i){for(const n of Object.keys(t))t[n]=c(t[n],e,i);return t}function u(t,{x:e,y:i,x2:n,y2:s},o,r){const a=r/2,h=t.x>=e-a-l&&t.x<=n+a+l,c=t.y>=i-a-l&&t.y<=s+a+l;return"x"===o?h:("y"===o||h)&&c}function f(t,e){const{centerX:i,centerY:n}=t.getProps(["centerX","centerY"],e);return{x:i,y:n}}const g=t=>"string"===typeof t&&t.endsWith("%"),p=t=>parseFloat(t)/100,x=t=>c(p(t),0,1);function m(t,e){return"start"===e?0:"end"===e?t:g(e)?x(e)*t:t/2}function b(t,e,i=!0){return"number"===typeof e?e:g(e)?(i?x(e):p(e))*t:t}function y(t,e="center"){return(0,s.i)(t)?{x:(0,s.v)(t.x,e),y:(0,s.v)(t.y,e)}:{x:t=(0,s.v)(t,e),y:t}}function _(t){return t&&((0,s.h)(t.xValue)||(0,s.h)(t.yValue))}function v(t,e,i,n=!1){const o=i.init;if(o)return!0===o?k(e,n):function(t,e,i){if(!0===i)return k(t,e);if((0,s.i)(i))return i}(e,n,(0,s.Q)(o,[{chart:t,properties:e,options:i}]))}function w(t,e,i){let n=!1;return e.forEach((e=>{(0,s.a7)(t[e])?(n=!0,i[e]=t[e]):(0,s.h)(i[e])&&delete i[e]})),n}function k({centerX:t,centerY:e},i){return i?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}const M=new Map,S=t=>t.reduce((function(t,e){return t+=e.string}),"");function P(t){if(t&&"object"===typeof t){const e=t.toString();return"[object HTMLImageElement]"===e||"[object HTMLCanvasElement]"===e}}function C(t,{x:e,y:i},n){n&&(t.translate(e,i),t.rotate((0,s.t)(n)),t.translate(-e,-i))}function D(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function O(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function T(t,e){const i=e.content;if(P(i))return{width:b(i.width,e.width),height:b(i.height,e.height)};const n=e.font,o=(0,s.b)(n)?n.map((t=>(0,s.a0)(t))):[(0,s.a0)(n)],r=e.textStrokeWidth,a=(0,s.b)(i)?i:[i],h=a.join()+S(o)+r+(t._measureText?"-spriting":"");return M.has(h)||M.set(h,function(t,e,i,n){t.save();const s=e.length;let o=0,r=n;for(let a=0;a<s;a++){const s=i[Math.min(a,i.length-1)];t.font=s.string;const h=e[a];o=Math.max(o,t.measureText(h).width+n),r+=s.lineHeight}return t.restore(),{width:o,height:r}}(t,a,o,r)),M.get(h)}function A(t,e,i){const{x:n,y:o,width:r,height:a}=e;t.save(),O(t,i);const h=D(t,i);t.fillStyle=i.backgroundColor,t.beginPath(),(0,s.au)(t,{x:n,y:o,w:r,h:a,radius:d((0,s.aw)(i.borderRadius),0,Math.min(r,a)/2)}),t.closePath(),t.fill(),h&&(t.shadowColor=i.borderShadowColor,t.stroke()),t.restore()}function L(t,e,i){const n=i.content;if(P(n))return t.save(),t.globalAlpha=function(t,e){const i=(0,s.x)(t)?t:e;return(0,s.x)(i)?c(i,0,1):1}(i.opacity,n.style.opacity),t.drawImage(n,e.x,e.y,e.width,e.height),void t.restore();const o=(0,s.b)(n)?n:[n],r=i.font,a=(0,s.b)(r)?r.map((t=>(0,s.a0)(t))):[(0,s.a0)(r)],h=i.color,l=(0,s.b)(h)?h:[h],d=function(t,e){const{x:i,width:n}=t,s=e.textAlign;return"center"===s?i+n/2:"end"===s||"right"===s?i+n:i}(e,i),u=e.y+i.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=i.textAlign,function(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}(t,i)&&function(t,{x:e,y:i},n,s){t.beginPath();let o=0;n.forEach((function(n,r){const a=s[Math.min(r,s.length-1)],h=a.lineHeight;t.font=a.string,t.strokeText(n,e,i+h/2+o),o+=h})),t.stroke()}(t,{x:d,y:u},o,a),function(t,{x:e,y:i},n,{fonts:s,colors:o}){let r=0;n.forEach((function(n,a){const h=o[Math.min(a,o.length-1)],l=s[Math.min(a,s.length-1)],c=l.lineHeight;t.beginPath(),t.font=l.string,t.fillStyle=h,t.fillText(n,e,i+c/2+r),r+=c,t.fill()}))}(t,{x:d,y:u},o,{fonts:a,colors:l}),t.restore()}function I(t,e,i,n){const{radius:o,options:r}=e,a=r.pointStyle,h=r.rotation;let l=(h||0)*s.b3;if(P(a))return t.save(),t.translate(i,n),t.rotate(l),t.drawImage(a,-a.width/2,-a.height/2,a.width,a.height),void t.restore();(t=>isNaN(t)||t<=0)(o)||function(t,{x:e,y:i,radius:n,rotation:o,style:r,rad:a}){let h,l,c,d;switch(t.beginPath(),r){default:t.arc(e,i,n,0,s.T),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(a)*n,i-Math.cos(a)*n),a+=s.b5,t.lineTo(e+Math.sin(a)*n,i-Math.cos(a)*n),a+=s.b5,t.lineTo(e+Math.sin(a)*n,i-Math.cos(a)*n),t.closePath();break;case"rectRounded":d=.516*n,c=n-d,h=Math.cos(a+s.b4)*c,l=Math.sin(a+s.b4)*c,t.arc(e-h,i-l,d,a-s.P,a-s.H),t.arc(e+l,i-h,d,a-s.H,a),t.arc(e+h,i+l,d,a,a+s.H),t.arc(e-l,i+h,d,a+s.H,a+s.P),t.closePath();break;case"rect":if(!o){c=Math.SQRT1_2*n,t.rect(e-c,i-c,2*c,2*c);break}a+=s.b4;case"rectRot":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+l,i-h),t.lineTo(e+h,i+l),t.lineTo(e-l,i+h),t.closePath();break;case"crossRot":a+=s.b4;case"cross":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l),t.moveTo(e+l,i-h),t.lineTo(e-l,i+h);break;case"star":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l),t.moveTo(e+l,i-h),t.lineTo(e-l,i+h),a+=s.b4,h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l),t.moveTo(e+l,i-h),t.lineTo(e-l,i+h);break;case"line":h=Math.cos(a)*n,l=Math.sin(a)*n,t.moveTo(e-h,i-l),t.lineTo(e+h,i+l);break;case"dash":t.moveTo(e,i),t.lineTo(e+Math.cos(a)*n,i+Math.sin(a)*n)}t.fill()}(t,{x:i,y:n,radius:o,rotation:h,style:a,rad:l})}const E={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function R(t,e,i){return e="number"===typeof e?e:t.parse(e),(0,s.g)(e)?t.getPixelForValue(e):i}function z(t,e,i){const n=e[i];if(n||"scaleID"===i)return n;const s=i.charAt(0),o=Object.values(t).filter((t=>t.axis&&t.axis===s));return o.length?o[0].id:s}function F(t,e){if(t){const i=t.options.reverse;return{start:R(t,e.min,i?e.end:e.start),end:R(t,e.max,i?e.start:e.end)}}}function j(t,e){const{chartArea:i,scales:n}=t,s=n[z(n,e,"xScaleID")],o=n[z(n,e,"yScaleID")];let r=i.width/2,a=i.height/2;return s&&(r=R(s,e.xValue,s.left+s.width/2)),o&&(a=R(o,e.yValue,o.top+o.height/2)),{x:r,y:a}}function W(t,e){const i=t.scales,n=i[z(i,e,"xScaleID")],s=i[z(i,e,"yScaleID")];if(!n&&!s)return{};let{left:o,right:r}=n||t.chartArea,{top:a,bottom:h}=s||t.chartArea;const l=N(n,{min:e.xMin,max:e.xMax,start:o,end:r});o=l.start,r=l.end;const c=N(s,{min:e.yMin,max:e.yMax,start:h,end:a});return a=c.start,h=c.end,{x:o,y:a,x2:r,y2:h,width:r-o,height:h-a,centerX:o+(r-o)/2,centerY:a+(h-a)/2}}function B(t,e){if(!_(e)){const i=W(t,e);let n=e.radius;n&&!isNaN(n)||(n=Math.min(i.width,i.height)/2,e.radius=n);const s=2*n,o=i.centerX+e.xAdjust,r=i.centerY+e.yAdjust;return{x:o-n,y:r-n,x2:o+n,y2:r+n,centerX:o,centerY:r,width:s,height:s,radius:n}}return function(t,e){const i=j(t,e),n=2*e.radius;return{x:i.x-e.radius+e.xAdjust,y:i.y-e.radius+e.yAdjust,x2:i.x+e.radius+e.xAdjust,y2:i.y+e.radius+e.yAdjust,centerX:i.x+e.xAdjust,centerY:i.y+e.yAdjust,radius:e.radius,width:n,height:n}}(t,e)}function V(t,e){const{scales:i,chartArea:n}=t,s=i[e.scaleID],o={x:n.left,y:n.top,x2:n.right,y2:n.bottom};return s?function(t,e,i){const n=R(t,i.value,NaN),s=R(t,i.endValue,n);t.isHorizontal()?(e.x=n,e.x2=s):(e.y=n,e.y2=s)}(s,o,e):function(t,e,i){for(const n of Object.keys(E)){const s=t[z(t,i,n)];if(s){const{min:t,max:o,start:r,end:a,startProp:h,endProp:l}=E[n],c=F(s,{min:i[t],max:i[o],start:s[r],end:s[a]});e[h]=c.start,e[l]=c.end}}}(i,o,e),o}function H(t,e,i){const n=W(t,e);return n.initProperties=v(t,n,e,i),n.elements=[{type:"label",optionScope:"label",properties:$(t,n,e),initProperties:n.initProperties}],n}function N(t,e){const i=F(t,e)||e;return{start:Math.min(i.start,i.end),end:Math.max(i.start,i.end)}}function Y(t,e){const{start:i,end:n,borderWidth:s}=t,{position:o,padding:{start:r,end:a},adjust:h}=e;return i+s/2+h+m(n-s-i-r-a-e.size,o)}function $(t,e,i){const n=i.label;n.backgroundColor="transparent",n.callout.display=!1;const o=y(n.position),r=(0,s.E)(n.padding),a=T(t.ctx,n),h=function({properties:t,options:e},i,n,s){const{x:o,x2:r,width:a}=t;return Y({start:o,end:r,size:a,borderWidth:e.borderWidth},{position:n.x,padding:{start:s.left,end:s.right},adjust:e.label.xAdjust,size:i.width})}({properties:e,options:i},a,o,r),l=function({properties:t,options:e},i,n,s){const{y:o,y2:r,height:a}=t;return Y({start:o,end:r,size:a,borderWidth:e.borderWidth},{position:n.y,padding:{start:s.top,end:s.bottom},adjust:e.label.yAdjust,size:i.height})}({properties:e,options:i},a,o,r),c=a.width+r.width,d=a.height+r.height;return{x:h,y:l,x2:h+c,y2:l+d,width:c,height:d,centerX:h+c/2,centerY:l+d/2,rotation:n.rotation}}function X(t,e,i){const n=Math.cos(i),s=Math.sin(i),o=e.x,r=e.y;return{x:o+n*(t.x-o)-s*(t.y-r),y:r+s*(t.x-o)+n*(t.y-r)}}const U=["enter","leave"],Q=U.concat("click");function q(t,e,i){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return function(t,e,i){if(!t.moveListened)return;let n;n="mousemove"===e.type?r(t,e,i.interaction):[];const s=t.hovered;t.hovered=n;const o={state:t,event:e};let a=K(o,"leave",s,n);return K(o,"enter",n,s)||a}(t,e,i);case"click":return function(t,e,i){const n=t.listeners,s=r(t,e,i.interaction);let o;for(const r of s)o=J(r.options.click||n.click,r,e)||o;return o}(t,e,i)}}function K({state:t,event:e},i,n,s){let o;for(const r of n)s.indexOf(r)<0&&(o=J(r.options[i]||t.listeners[i],r,e)||o);return o}function J(t,e,i){return!0===(0,s.Q)(t,[e.$context,i])}const Z=["afterDraw","beforeDraw"];function G(t,e,i){if(t.hooked){const n=e.options[i]||t.hooks[i];return(0,s.Q)(n,[e.$context])}}function tt(t,e,i){const n=function(t,e,i){const n=e.axis,o=e.id,r=n+"ScaleID",a={min:(0,s.v)(e.min,Number.NEGATIVE_INFINITY),max:(0,s.v)(e.max,Number.POSITIVE_INFINITY)};for(const s of i)s.scaleID===o?st(s,e,["value","endValue"],a):z(t,s,r)===o&&st(s,e,[n+"Min",n+"Max",n+"Value"],a);return a}(t.scales,e,i);let o=et(e,n,"min","suggestedMin");o=et(e,n,"max","suggestedMax")||o,o&&(0,s.a7)(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function et(t,e,i,n){if((0,s.g)(e[i])&&!function(t,e,i){return(0,s.h)(t[e])||(0,s.h)(t[i])}(t.options,i,n)){const n=t[i]!==e[i];return t[i]=e[i],n}}function it(t,e){for(const i of["scaleID","xScaleID","yScaleID"]){const n=z(e,t,i);n&&!e[n]&&nt(t,i)&&console.warn(`No scale found with id '${n}' for annotation '${t.id}'`)}}function nt(t,e){if("scaleID"===e)return!0;const i=e.charAt(0);for(const n of["Min","Max","Value"])if((0,s.h)(t[i+n]))return!0;return!1}function st(t,e,i,n){for(const o of i){const i=t[o];if((0,s.h)(i)){const t=e.parse(i);n.min=Math.min(n.min,t),n.max=Math.max(n.max,t)}}}class ot extends n.W_{inRange(t,e,i,n){const{x:o,y:r}=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-this.options.rotation));return u({x:o,y:r},this.getProps(["x","y","x2","y2"],n),i,this.options.borderWidth)}getCenterPoint(t){return f(this,t)}draw(t){t.save(),C(t,this.getCenterPoint(),this.options.rotation),A(t,this,this.options),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return H(t,e)}}ot.id="boxAnnotation",ot.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},ot.defaultRoutes={borderColor:"color",backgroundColor:"color"},ot.descriptors={label:{_fallback:!0}};const rt=["left","bottom","top","right"];class at extends n.W_{inRange(t,e,i,n){const{x:o,y:r}=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-this.rotation));return u({x:o,y:r},this.getProps(["x","y","x2","y2"],n),i,this.options.borderWidth)}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options,i=!(0,s.h)(this._visible)||this._visible;e.display&&e.content&&i&&(t.save(),C(t,this.getCenterPoint(),this.rotation),function(t,e){const{pointX:i,pointY:n,options:o}=e,r=o.callout,a=r&&r.display&&function(t,e){const i=e.position;if(rt.includes(i))return i;return function(t,e){const{x:i,y:n,x2:o,y2:r,width:a,height:h,pointX:l,pointY:c,centerX:d,centerY:u,rotation:f}=t,g={x:d,y:u},p=e.start,x=b(a,p),m=b(h,p),y=[i,i+x,i+x,o],_=[n+m,r,n,r],v=[];for(let b=0;b<4;b++){const t=X({x:y[b],y:_[b]},g,(0,s.t)(f));v.push({position:rt[b],distance:(0,s.aE)(t,{x:l,y:c})})}return v.sort(((t,e)=>t.distance-e.distance))[0].position}(t,e)}(e,r);if(!a||function(t,e,i){const{pointX:n,pointY:s}=t,o=e.margin;let r=n,a=s;"left"===i?r+=o:"right"===i?r-=o:"top"===i?a+=o:"bottom"===i&&(a-=o);return t.inRange(r,a)}(e,r,a))return;t.save(),t.beginPath();const h=D(t,r);if(!h)return t.restore();const{separatorStart:l,separatorEnd:c}=function(t,e){const{x:i,y:n,x2:s,y2:o}=t,r=function(t,e){const{width:i,height:n,options:s}=t,o=s.callout.margin+s.borderWidth/2;if("right"===e)return i+o;if("bottom"===e)return n+o;return-o}(t,e);let a,h;"left"===e||"right"===e?(a={x:i+r,y:n},h={x:a.x,y:o}):(a={x:i,y:n+r},h={x:s,y:a.y});return{separatorStart:a,separatorEnd:h}}(e,a),{sideStart:d,sideEnd:u}=function(t,e,i){const{y:n,width:s,height:o,options:r}=t,a=r.callout.start,h=function(t,e){const i=e.side;if("left"===t||"top"===t)return-i;return i}(e,r.callout);let l,c;"left"===e||"right"===e?(l={x:i.x,y:n+b(o,a)},c={x:l.x+h,y:l.y}):(l={x:i.x+b(s,a),y:i.y},c={x:l.x,y:l.y+h});return{sideStart:l,sideEnd:c}}(e,a,l);(r.margin>0||0===o.borderWidth)&&(t.moveTo(l.x,l.y),t.lineTo(c.x,c.y));t.moveTo(d.x,d.y),t.lineTo(u.x,u.y);const f=X({x:i,y:n},e.getCenterPoint(),(0,s.t)(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}(t,this),A(t,this,e),L(t,function({x:t,y:e,width:i,height:n,options:o}){const r=o.borderWidth/2,a=(0,s.E)(o.padding);return{x:t+a.left+r,y:e+a.top+r,width:i-a.left-a.right-o.borderWidth,height:n-a.top-a.bottom-o.borderWidth}}(this),e),t.restore())}resolveElementProperties(t,e){let i;if(_(e))i=j(t,e);else{const{centerX:n,centerY:s}=W(t,e);i={x:n,y:s}}const n=(0,s.E)(e.padding),o=function(t,e,i,n){const s=e.width+n.width+i.borderWidth,o=e.height+n.height+i.borderWidth,r=y(i.position,"center"),a=ht(t.x,s,i.xAdjust,r.x),h=ht(t.y,o,i.yAdjust,r.y);return{x:a,y:h,x2:a+s,y2:h+o,width:s,height:o,centerX:a+s/2,centerY:h+o/2}}(i,T(t.ctx,e),e,n);return{initProperties:v(t,o,e),pointX:i.x,pointY:i.y,...o,rotation:e.rotation}}}function ht(t,e,i=0,n){return t-m(e,n)+i}at.id="labelAnnotation",at.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},at.defaultRoutes={borderColor:"color"};const lt=(t,e,i)=>({x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}),ct=(t,e,i)=>lt(e,i,Math.abs((t-e.y)/(i.y-e.y))).x,dt=(t,e,i)=>lt(e,i,Math.abs((t-e.x)/(i.x-e.x))).y,ut=t=>t*t,ft=(t,e,i,n)=>(1-n)*(1-n)*t+2*(1-n)*n*e+n*n*i,gt=(t,e,i,n)=>({x:ft(t.x,e.x,i.x,n),y:ft(t.y,e.y,i.y,n)}),pt=(t,e,i,n)=>2*(1-n)*(e-t)+2*n*(i-e),xt=(t,e,i,n)=>-Math.atan2(pt(t.x,e.x,i.x,n),pt(t.y,e.y,i.y,n))+.5*s.P;class mt extends n.W_{inRange(t,e,i,n){const s=this.options.borderWidth/2;if("x"!==i&&"y"!==i){const i={mouseX:t,mouseY:e},{path:o,ctx:r}=this;if(o){D(r,this.options);const{chart:s}=this.$context,a=t*s.currentDevicePixelRatio,h=e*s.currentDevicePixelRatio,l=r.isPointInStroke(o,a,h)||_t(this,i,n);return r.restore(),l}return function(t,{mouseX:e,mouseY:i},n=l,s){const{x:o,y:r,x2:a,y2:h}=t.getProps(["x","y","x2","y2"],s),c=a-o,d=h-r,u=ut(c)+ut(d),f=0===u?-1:((e-o)*c+(i-r)*d)/u;let g,p;f<0?(g=o,p=r):f>1?(g=a,p=h):(g=o+f*c,p=r+f*d);return ut(e-g)+ut(i-p)<=n}(this,i,ut(s),n)||_t(this,i,n)}return function(t,{mouseX:e,mouseY:i},n,{hBorderWidth:s,useFinalPosition:o}){const r=((t,e,{x:i,y:n,x2:s,y2:o},r)=>"y"===r?{start:Math.min(n,o),end:Math.max(n,o),value:e}:{start:Math.min(i,s),end:Math.max(i,s),value:t})(e,i,t.getProps(["x","y","x2","y2"],o),n);return r.value>=r.start-s&&r.value<=r.end+s||_t(t,{mouseX:e,mouseY:i},o,n)}(this,{mouseX:t,mouseY:e},i,{hBorderWidth:s,useFinalPosition:n})}getCenterPoint(t){return f(this,t)}draw(t){const{x:e,y:i,x2:n,y2:o,cp:r,options:a}=this;if(t.save(),!D(t,a))return t.restore();O(t,a);const h=Math.sqrt(Math.pow(n-e,2)+Math.pow(o-i,2));if(a.curve&&r)return function(t,e,i,n){const{x:o,y:r,x2:a,y2:h,options:l}=e,{startOpts:c,endOpts:d,startAdjust:u,endAdjust:f}=kt(e),g={x:o,y:r},p={x:a,y:h},x=xt(g,i,p,0),m=xt(g,i,p,1)-s.P,b=gt(g,i,p,u/n),y=gt(g,i,p,1-f/n),_=new Path2D;t.beginPath(),_.moveTo(b.x,b.y),_.quadraticCurveTo(i.x,i.y,y.x,y.y),t.shadowColor=l.borderShadowColor,t.stroke(_),e.path=_,e.ctx=t,Pt(t,b,{angle:x,adjust:u},c),Pt(t,y,{angle:m,adjust:f},d)}(t,this,r,h),t.restore();const{startOpts:l,endOpts:c,startAdjust:d,endAdjust:u}=kt(this),f=Math.atan2(o-i,n-e);t.translate(e,i),t.rotate(f),t.beginPath(),t.moveTo(0+d,0),t.lineTo(h-u,0),t.shadowColor=a.borderShadowColor,t.stroke(),St(t,0,d,l),St(t,h,-u,c),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){const i=V(t,e),{x:n,y:o,x2:r,y2:a}=i,h=function({x:t,y:e,x2:i,y2:n},{top:s,right:o,bottom:r,left:a}){return!(t<a&&i<a||t>o&&i>o||e<s&&n<s||e>r&&n>r)}(i,t.chartArea),l=h?function(t,e,i){const{x:n,y:s}=yt(t,e,i),{x:o,y:r}=yt(e,t,i);return{x:n,y:s,x2:o,y2:r,width:Math.abs(o-n),height:Math.abs(r-s)}}({x:n,y:o},{x:r,y:a},t.chartArea):{x:n,y:o,x2:r,y2:a,width:Math.abs(r-n),height:Math.abs(a-o)};if(l.centerX=(r+n)/2,l.centerY=(a+o)/2,l.initProperties=v(t,l,e),e.curve){const t={x:l.x,y:l.y},i={x:l.x2,y:l.y2};l.cp=function(t,e,i){const{x:n,y:s,x2:o,y2:r,centerX:a,centerY:h}=t,l=Math.atan2(r-s,o-n),c=y(e.controlPoint,0);return X({x:a+b(i,c.x,!1),y:h+b(i,c.y,!1)},{x:a,y:h},l)}(l,e,(0,s.aE)(t,i))}const c=function(t,e,i){const n=i.borderWidth,o=(0,s.E)(i.padding),r=T(t.ctx,i),a=r.width+o.width+n,h=r.height+o.height+n;return function(t,e,i,n){const{width:o,height:r,padding:a}=i,{xAdjust:h,yAdjust:l}=e,c={x:t.x,y:t.y},d={x:t.x2,y:t.y2},u="auto"===e.rotation?function(t){const{x:e,y:i,x2:n,y2:o}=t,r=Math.atan2(o-i,n-e);return r>s.P/2?r-s.P:r<s.P/-2?r+s.P:r}(t):(0,s.t)(e.rotation),f=function(t,e,i){const n=Math.cos(i),s=Math.sin(i);return{w:Math.abs(t*n)+Math.abs(e*s),h:Math.abs(t*s)+Math.abs(e*n)}}(o,r,u),g=function(t,e,i,n){let s;const o=function(t,e){const{x:i,x2:n,y:s,y2:o}=t,r=Math.min(s,o)-e.top,a=Math.min(i,n)-e.left,h=e.bottom-Math.max(s,o),l=e.right-Math.max(i,n);return{x:Math.min(a,l),y:Math.min(r,h),dx:a<=l?1:-1,dy:r<=h?1:-1}}(t,n);s="start"===e.position?vt({w:t.x2-t.x,h:t.y2-t.y},i,e,o):"end"===e.position?1-vt({w:t.x-t.x2,h:t.y-t.y2},i,e,o):m(1,e.position);return s}(t,e,{labelSize:f,padding:a},n),p=t.cp?gt(c,t.cp,d,g):lt(c,d,g),x={size:f.w,min:n.left,max:n.right,padding:a.left},b={size:f.h,min:n.top,max:n.bottom,padding:a.top},y=wt(p.x,x)+h,_=wt(p.y,b)+l;return{x:y-o/2,y:_-r/2,x2:y+o/2,y2:_+r/2,centerX:y,centerY:_,pointX:p.x,pointY:p.y,width:o,height:r,rotation:(0,s.U)(u)}}(e,i,{width:a,height:h,padding:o},t.chartArea)}(t,l,e.label);return c._visible=h,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}mt.id="lineAnnotation";const bt={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};function yt({x:t,y:e},i,{top:n,right:s,bottom:o,left:r}){return t<r&&(e=dt(r,{x:t,y:e},i),t=r),t>s&&(e=dt(s,{x:t,y:e},i),t=s),e<n&&(t=ct(n,{x:t,y:e},i),e=n),e>o&&(t=ct(o,{x:t,y:e},i),e=o),{x:t,y:e}}function _t(t,{mouseX:e,mouseY:i},n,s){const o=t.label;return o.options.display&&o.inRange(e,i,s,n)}function vt(t,e,i,n){const{labelSize:s,padding:o}=e,r=t.w*n.dx,a=t.h*n.dy,h=r>0&&(s.w/2+o.left-n.x)/r,l=a>0&&(s.h/2+o.top-n.y)/a;return c(Math.max(h,l),0,.25)}function wt(t,e){const{size:i,min:n,max:s,padding:o}=e,r=i/2;return i>s-n?(s+n)/2:(n>=t-o-r&&(t=n+o+r),s<=t+o+r&&(t=s-o-r),t)}function kt(t){const e=t.options,i=e.arrowHeads&&e.arrowHeads.start,n=e.arrowHeads&&e.arrowHeads.end;return{startOpts:i,endOpts:n,startAdjust:Mt(t,i),endAdjust:Mt(t,n)}}function Mt(t,e){if(!e||!e.display)return 0;const{length:i,width:n}=e,s=t.options.borderWidth/2,o={x:i,y:n+s},r={x:0,y:s};return Math.abs(ct(0,o,r))}function St(t,e,i,n){if(!n||!n.display)return;const{length:s,width:o,fill:r,backgroundColor:a,borderColor:h}=n,l=Math.abs(e-s)+i;t.beginPath(),O(t,n),D(t,n),t.moveTo(l,-o),t.lineTo(e+i,0),t.lineTo(l,o),!0===r?(t.fillStyle=a||h,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=n.borderShadowColor,t.stroke()}function Pt(t,{x:e,y:i},{angle:n,adjust:s},o){o&&o.display&&(t.save(),t.translate(e,i),t.rotate(n),St(t,0,-s,o),t.restore())}mt.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},bt),fill:!1,length:12,start:Object.assign({},bt),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},at.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},mt.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}},mt.defaultRoutes={borderColor:"color"};class Ct extends n.W_{inRange(t,e,i,n){const o=this.options.rotation,r=this.options.borderWidth;if("x"!==i&&"y"!==i)return function(t,e,i,n){const{width:o,height:r,centerX:a,centerY:h}=e,l=o/2,c=r/2;if(l<=0||c<=0)return!1;const d=(0,s.t)(i||0),u=n/2||0,f=Math.cos(d),g=Math.sin(d),p=Math.pow(f*(t.x-a)+g*(t.y-h),2),x=Math.pow(g*(t.x-a)-f*(t.y-h),2);return p/Math.pow(l+u,2)+x/Math.pow(c+u,2)<=1.0001}({x:t,y:e},this.getProps(["width","height","centerX","centerY"],n),o,r);const{x:a,y:h,x2:c,y2:d}=this.getProps(["x","y","x2","y2"],n),u=r/2,f="y"===i?{start:h,end:d}:{start:a,end:c},g=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-o));return g[i]>=f.start-u-l&&g[i]<=f.end+u+l}getCenterPoint(t){return f(this,t)}draw(t){const{width:e,height:i,centerX:n,centerY:o,options:r}=this;t.save(),C(t,this.getCenterPoint(),r.rotation),O(t,this.options),t.beginPath(),t.fillStyle=r.backgroundColor;const a=D(t,r);t.ellipse(n,o,i/2,e/2,s.P/2,0,2*s.P),t.fill(),a&&(t.shadowColor=r.borderShadowColor,t.stroke()),t.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(t,e){return H(t,e,!0)}}Ct.id="ellipseAnnotation",Ct.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},ot.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0},Ct.defaultRoutes={borderColor:"color",backgroundColor:"color"},Ct.descriptors={label:{_fallback:!0}};class Dt extends n.W_{inRange(t,e,i,n){const{x:s,y:o,x2:r,y2:a,width:h}=this.getProps(["x","y","x2","y2","width"],n),l=this.options.borderWidth;if("x"!==i&&"y"!==i)return function(t,e,i,n){if(!t||!e||i<=0)return!1;const s=n/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(i+s,2)}({x:t,y:e},this.getCenterPoint(n),h/2,l);const c=l/2,d="y"===i?{start:o,end:a,value:e}:{start:s,end:r,value:t};return d.value>=d.start-c&&d.value<=d.end+c}getCenterPoint(t){return f(this,t)}draw(t){const e=this.options,i=e.borderWidth;if(e.radius<.1)return;t.save(),t.fillStyle=e.backgroundColor,O(t,e);const n=D(t,e);I(t,this,this.centerX,this.centerY),n&&!P(e.pointStyle)&&(t.shadowColor=e.borderShadowColor,t.stroke()),t.restore(),e.borderWidth=i}resolveElementProperties(t,e){const i=B(t,e);return i.initProperties=v(t,i,e,!0),i}}Dt.id="pointAnnotation",Dt.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},Dt.defaultRoutes={borderColor:"color",backgroundColor:"color"};class Ot extends n.W_{inRange(t,e,i,n){if("x"!==i&&"y"!==i)return this.options.radius>=.1&&this.elements.length>1&&function(t,e,i,n){let s=!1,o=t[t.length-1].getProps(["bX","bY"],n);for(const r of t){const t=r.getProps(["bX","bY"],n);t.bY>i!==o.bY>i&&e<(o.bX-t.bX)*(i-t.bY)/(o.bY-t.bY)+t.bX&&(s=!s),o=t}return s}(this.elements,t,e,n);const o=X({x:t,y:e},this.getCenterPoint(n),(0,s.t)(-this.options.rotation)),r=this.elements.map((t=>"y"===i?t.bY:t.bX)),a=Math.min(...r),h=Math.max(...r);return o[i]>=a&&o[i]<=h}getCenterPoint(t){return f(this,t)}draw(t){const{elements:e,options:i}=this;t.save(),t.beginPath(),t.fillStyle=i.backgroundColor,O(t,i);const n=D(t,i);let s=!0;for(const o of e)s?(t.moveTo(o.x,o.y),s=!1):t.lineTo(o.x,o.y);t.closePath(),t.fill(),n&&(t.shadowColor=i.borderShadowColor,t.stroke()),t.restore()}resolveElementProperties(t,e){const i=B(t,e),{sides:n,rotation:o}=e,r=[],a=2*s.P/n;let h=o*s.b3;for(let s=0;s<n;s++,h+=a){const n=Tt(i,e,h);n.initProperties=v(t,i,e),r.push(n)}return i.elements=r,i}}function Tt({centerX:t,centerY:e},{radius:i,borderWidth:n},s){const o=n/2,r=Math.sin(s),a=Math.cos(s),h={x:t+r*i,y:e-a*i};return{type:"point",optionScope:"point",properties:{x:h.x,y:h.y,centerX:h.x,centerY:h.y,bX:t+r*(i+o),bY:e-a*(i+o)}}}Ot.id="polygonAnnotation",Ot.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0},Ot.defaultRoutes={borderColor:"color",backgroundColor:"color"};const At={box:ot,ellipse:Ct,label:at,line:mt,point:Dt,polygon:Ot};Object.keys(At).forEach((t=>{s.d.describe(`elements.${At[t].id}`,{_fallback:"plugins.annotation.common"})}));const Lt={update:Object.assign},It=Q.concat(Z),Et=(t,e)=>(0,s.i)(e)?Ht(t,e):t,Rt=t=>"color"===t||"font"===t;function zt(t="line"){return At[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function Ft(t,e,i,o){const r=function(t,e,i){if("reset"===i||"none"===i||"resize"===i)return Lt;return new n.FK(t,e)}(t,i.animations,o),a=e.annotations,h=function(t,e){const i=e.length,n=t.length;if(n<i){const e=i-n;t.splice(n,0,...new Array(e))}else n>i&&t.splice(i,n-i);return t}(e.elements,a);for(let n=0;n<a.length;n++){const e=a[n],i=Bt(h,n,e.type),o=e.setContext(Nt(t,i,e)),l=i.resolveElementProperties(t,o);l.skip=jt(l),"elements"in l&&(Wt(i,l.elements,o,r),delete l.elements),(0,s.h)(i.x)||Object.assign(i,l),Object.assign(i,l.initProperties),l.options=Vt(o),r.update(i,l)}}function jt(t){return isNaN(t.x)||isNaN(t.y)}function Wt(t,e,i,n){const s=t.elements||(t.elements=[]);s.length=e.length;for(let o=0;o<e.length;o++){const t=e[o],r=t.properties,a=Bt(s,o,t.type,t.initProperties),h=i[t.optionScope].override(t);r.options=Vt(h),n.update(a,r)}}function Bt(t,e,i,n){const s=At[zt(i)];let o=t[e];return o&&o instanceof s||(o=t[e]=new s,Object.assign(o,n)),o}function Vt(t){const e=At[zt(t.type)],i={};i.id=t.id,i.type=t.type,i.drawTime=t.drawTime,Object.assign(i,Ht(t,e.defaults),Ht(t,e.defaultRoutes));for(const n of It)i[n]=t[n];return i}function Ht(t,e){const i={};for(const n of Object.keys(e)){const o=e[n],r=t[n];Rt(n)&&(0,s.b)(r)?i[n]=r.map((t=>Et(t,o))):i[n]=Et(r,o)}return i}function Nt(t,e,i){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:i.id,type:"annotation"}))}const Yt=new Map,$t=Q.concat(Z);var Xt={id:"annotation",version:"2.2.1",beforeRegister(){!function(t,e,i,n=!0){const s=i.split(".");let o=0;for(const r of e.split(".")){const a=s[o++];if(parseInt(r,10)<parseInt(a,10))break;if(h(a,r)){if(n)throw new Error(`${t} v${i} is not supported. v${e} or newer is required.`);return!1}}}("chart.js","3.7",n.kL.version)},afterRegister(){n.kL.register(At)},afterUnregister(){n.kL.unregister(At)},beforeInit(t){Yt.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,i){const n=Yt.get(t).annotations=[];let o=i.annotations;(0,s.i)(o)?Object.keys(o).forEach((t=>{const e=o[t];(0,s.i)(e)&&(e.id=t,n.push(e))})):(0,s.b)(o)&&n.push(...o),function(t,e){for(const i of t)it(i,e)}(n,t.scales)},afterDataLimits(t,e){const i=Yt.get(t);tt(t,e.scale,i.annotations.filter((t=>t.display&&t.adjustScaleRange)))},afterUpdate(t,e,i){const n=Yt.get(t);!function(t,e,i){e.listened=w(i,Q,e.listeners),e.moveListened=!1,e._getElements=r,U.forEach((t=>{(0,s.a7)(i[t])&&(e.moveListened=!0)})),e.listened&&e.moveListened||e.annotations.forEach((t=>{!e.listened&&(0,s.a7)(t.click)&&(e.listened=!0),e.moveListened||U.forEach((i=>{(0,s.a7)(t[i])&&(e.listened=!0,e.moveListened=!0)}))}))}(0,n,i),Ft(t,n,i,e.mode),n.visibleElements=n.elements.filter((t=>!t.skip&&t.options.display)),function(t,e,i){const n=e.visibleElements;e.hooked=w(i,Z,e.hooks),e.hooked||n.forEach((t=>{e.hooked||Z.forEach((i=>{(0,s.a7)(t.options[i])&&(e.hooked=!0)}))}))}(0,n,i)},beforeDatasetsDraw(t,e,i){Ut(t,"beforeDatasetsDraw",i.clip)},afterDatasetsDraw(t,e,i){Ut(t,"afterDatasetsDraw",i.clip)},beforeDraw(t,e,i){Ut(t,"beforeDraw",i.clip)},afterDraw(t,e,i){Ut(t,"afterDraw",i.clip)},beforeEvent(t,e,i){q(Yt.get(t),e.event,i)&&(e.changed=!0)},afterDestroy(t){Yt.delete(t)},_getState(t){return Yt.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!$t.includes(t)&&"init"!==t,annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${At[zt(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Rt,_fallback:!0},_indexable:Rt}},additionalOptionScopes:[""]};function Ut(t,e,i){const{ctx:n,chartArea:o}=t,r=Yt.get(t);i&&(0,s.Y)(n,o);const a=function(t,e){const i=[];for(const n of t)if(n.options.drawTime===e&&i.push({element:n,main:!0}),n.elements&&n.elements.length)for(const t of n.elements)t.options.display&&t.options.drawTime===e&&i.push({element:t});return i}(r.visibleElements,e).sort(((t,e)=>t.element.options.z-e.element.options.z));for(const s of a)Qt(n,o,r,s);i&&(0,s.$)(n)}function Qt(t,e,i,n){const s=n.element;n.main?(G(i,s,"beforeDraw"),s.draw(t,e),G(i,s,"afterDraw")):s.draw(t,e)}},52262:function(t,e,i){var n=i(82109),s=i(47908),o=i(26244),r=i(19303),a=i(51223);n({target:"Array",proto:!0},{at:function(t){var e=s(this),i=o(e),n=r(t),a=n>=0?n:i+n;return a<0||a>=i?void 0:e[a]}}),a("at")},69810:function(t,e,i){i(52262)},86035:function(t,e,i){var n=i(82109),s=i(28710).charAt,o=i(84488),r=i(19303),a=i(41340);n({target:"String",proto:!0,forced:!0},{at:function(t){var e=a(o(this)),i=e.length,n=r(t),h=n>=0?n:i+n;return h<0||h>=i?void 0:s(e,h)}})},23148:function(t,e,i){i.d(e,{De:function(){return Ce},FB:function(){return si},FK:function(){return l},IQ:function(){return E},ST:function(){return A},W_:function(){return bt},ZL:function(){return ke},f$:function(){return Qe},jn:function(){return ge},kL:function(){return se},od:function(){return xe},u:function(){return He},uw:function(){return $e},vn:function(){return T}});var n=i(50713);class s{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,n){const s=e.listeners[n],o=e.duration;s.forEach((n=>n({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=n.r.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,n)=>{if(!i.running||!i.items.length)return;const s=i.items;let o,r=s.length-1,a=!1;for(;r>=0;--r)o=s[r],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),a=!0):(s[r]=s[s.length-1],s.pop());a&&(n.draw(),this._notify(n,i,t,"progress")),s.length||(i.running=!1,this._notify(n,i,t,"complete"),i.initial=!1),e+=s.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let n=i.length-1;for(;n>=0;--n)i[n].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var o=new s;const r="transparent",a={boolean(t,e,i){return i>.5?e:t},color(t,e,i){const s=(0,n.c)(t||r),o=s.valid&&(0,n.c)(e||r);return o&&o.valid?o.mix(s,i).hexString():e},number(t,e,i){return t+(e-t)*i}};class h{constructor(t,e,i,s){const o=e[i];s=(0,n.a)([t.to,s,o,t.from]);const r=(0,n.a)([t.from,o,s]);this._active=!0,this._fn=t.fn||a[t.type||typeof r],this._easing=n.e[t.easing]||n.e.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=r,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],o=i-this._start,r=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(r,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=(0,n.a)([t.to,e,s,t.from]),this._from=(0,n.a)([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,n=this._prop,s=this._from,o=this._loop,r=this._to;let a;if(this._active=s!==r&&(o||e<i),!this._active)return this._target[n]=r,void this._notify(!0);e<0?this._target[n]=s:(a=e/i%2,a=o&&a>1?2-a:a,a=this._easing(Math.min(1,Math.max(0,a))),this._target[n]=this._fn(s,r,a))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let n=0;n<i.length;n++)i[n][e]()}}class l{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!(0,n.i)(t))return;const e=Object.keys(n.d.animation),i=this._properties;Object.getOwnPropertyNames(t).forEach((s=>{const o=t[s];if(!(0,n.i)(o))return;const r={};for(const t of e)r[t]=o[t];((0,n.b)(o.properties)&&o.properties||[s]).forEach((t=>{t!==s&&i.has(t)||i.set(t,r)}))}))}_animateOptions(t,e){const i=e.options,n=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!n)return[];const s=this._createAnimations(n,i);return i.$shared&&function(t,e){const i=[],n=Object.keys(e);for(let s=0;s<n.length;s++){const e=t[n[s]];e&&e.active()&&i.push(e.wait())}return Promise.all(i)}(t.options.$animations,i).then((()=>{t.options=i}),(()=>{})),s}_createAnimations(t,e){const i=this._properties,n=[],s=t.$animations||(t.$animations={}),o=Object.keys(e),r=Date.now();let a;for(a=o.length-1;a>=0;--a){const l=o[a];if("$"===l.charAt(0))continue;if("options"===l){n.push(...this._animateOptions(t,e));continue}const c=e[l];let d=s[l];const u=i.get(l);if(d){if(u&&d.active()){d.update(u,c,r);continue}d.cancel()}u&&u.duration?(s[l]=d=new h(u,t,l,c),n.push(d)):t[l]=c}return n}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(o.add(this._chart,i),!0):void 0}}function c(t,e){const i=t&&t.options||{},n=i.reverse,s=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:n?o:s,end:n?s:o}}function d(t,e){const i=[],n=t._getSortedDatasetMetas(e);let s,o;for(s=0,o=n.length;s<o;++s)i.push(n[s].index);return i}function u(t,e,i,s={}){const o=t.keys,r="single"===s.mode;let a,h,l,c;if(null!==e){for(a=0,h=o.length;a<h;++a){if(l=+o[a],l===i){if(s.all)continue;break}c=t.values[l],(0,n.g)(c)&&(r||0===e||(0,n.s)(e)===(0,n.s)(c))&&(e+=c)}return e}}function f(t,e){const i=t&&t.options.stacked;return i||void 0===i&&void 0!==e.stack}function g(t,e,i){const n=t[e]||(t[e]={});return n[i]||(n[i]={})}function p(t,e,i,n){for(const s of e.getMatchingVisibleMetas(n).reverse()){const e=t[s.index];if(i&&e>0||!i&&e<0)return s.index}return null}function x(t,e){const{chart:i,_cachedMeta:n}=t,s=i._stacks||(i._stacks={}),{iScale:o,vScale:r,index:a}=n,h=o.axis,l=r.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,r,n),d=e.length;let u;for(let f=0;f<d;++f){const t=e[f],{[h]:i,[l]:o}=t;u=(t._stacks||(t._stacks={}))[l]=g(s,c,i),u[a]=o,u._top=p(u,r,!0,n.type),u._bottom=p(u,r,!1,n.type);(u._visualValues||(u._visualValues={}))[a]=o}}function m(t,e){const i=t.scales;return Object.keys(i).filter((t=>i[t].axis===e)).shift()}function b(t,e){const i=t.controller.index,n=t.vScale&&t.vScale.axis;if(n){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[n]||void 0===e[n][i])return;delete e[n][i],void 0!==e[n]._visualValues&&void 0!==e[n]._visualValues[i]&&delete e[n]._visualValues[i]}}}const y=t=>"reset"===t||"none"===t,_=(t,e)=>e?t:Object.assign({},t);class v{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=f(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&b(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,n)=>"x"===t?e:"r"===t?n:i,o=e.xAxisID=(0,n.v)(i.xAxisID,m(t,"x")),r=e.yAxisID=(0,n.v)(i.yAxisID,m(t,"y")),a=e.rAxisID=(0,n.v)(i.rAxisID,m(t,"r")),h=e.indexAxis,l=e.iAxisID=s(h,o,r,a),c=e.vAxisID=s(h,r,o,a);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(r),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(l),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&(0,n.u)(this._data,this),t._stacked&&b(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if((0,n.i)(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let n,s,o;for(n=0,s=e.length;n<s;++n)o=e[n],i[n]={x:o,y:t[o]};return i}(e);else if(i!==e){if(i){(0,n.u)(i,this);const t=this._cachedMeta;b(t),t._parsed=[]}e&&Object.isExtensible(e)&&(0,n.l)(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let n=!1;this._dataCheck();const s=e._stacked;e._stacked=f(e.vScale,e),e.stack!==i.stack&&(n=!0,b(e),e.stack=i.stack),this._resyncElements(t),(n||s!==e._stacked)&&x(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:o,_stacked:r}=i,a=o.axis;let h,l,c,d=0===t&&e===s.length||i._sorted,u=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,c=s;else{c=(0,n.b)(s[t])?this.parseArrayData(i,s,t,e):(0,n.i)(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const o=()=>null===l[a]||u&&l[a]<u[a];for(h=0;h<e;++h)i._parsed[h+t]=l=c[h],d&&(o()&&(d=!1),u=l);i._sorted=d}r&&x(this,c)}parsePrimitiveData(t,e,i,n){const{iScale:s,vScale:o}=t,r=s.axis,a=o.axis,h=s.getLabels(),l=s===o,c=new Array(n);let d,u,f;for(d=0,u=n;d<u;++d)f=d+i,c[d]={[r]:l||s.parse(h[f],f),[a]:o.parse(e[f],f)};return c}parseArrayData(t,e,i,n){const{xScale:s,yScale:o}=t,r=new Array(n);let a,h,l,c;for(a=0,h=n;a<h;++a)l=a+i,c=e[l],r[a]={x:s.parse(c[0],l),y:o.parse(c[1],l)};return r}parseObjectData(t,e,i,s){const{xScale:o,yScale:r}=t,{xAxisKey:a="x",yAxisKey:h="y"}=this._parsing,l=new Array(s);let c,d,u,f;for(c=0,d=s;c<d;++c)u=c+i,f=e[u],l[c]={x:o.parse((0,n.f)(f,a),u),y:r.parse((0,n.f)(f,h),u)};return l}getParsed(t){return this._cachedMeta._parsed[t]}getDataElement(t){return this._cachedMeta.data[t]}applyStack(t,e,i){const n=this.chart,s=this._cachedMeta,o=e[t.axis];return u({keys:d(n,!0),values:e._stacks[t.axis]._visualValues},o,s.index,{mode:i})}updateRangeFromParsed(t,e,i,n){const s=i[e.axis];let o=null===s?NaN:s;const r=n&&i._stacks[e.axis];n&&r&&(n.values=r,o=u(n,s,this._cachedMeta.index)),t.min=Math.min(t.min,o),t.max=Math.max(t.max,o)}getMinMax(t,e){const i=this._cachedMeta,s=i._parsed,o=i._sorted&&t===i.iScale,r=s.length,a=this._getOtherScale(t),h=((t,e,i)=>t&&!e.hidden&&e._stacked&&{keys:d(i,!0),values:null})(e,i,this.chart),l={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:u}=function(t){const{min:e,max:i,minDefined:n,maxDefined:s}=t.getUserBounds();return{min:n?e:Number.NEGATIVE_INFINITY,max:s?i:Number.POSITIVE_INFINITY}}(a);let f,g;function p(){g=s[f];const e=g[a.axis];return!(0,n.g)(g[t.axis])||c>e||u<e}for(f=0;f<r&&(p()||(this.updateRangeFromParsed(l,t,g,h),!o));++f);if(o)for(f=r-1;f>=0;--f)if(!p()){this.updateRangeFromParsed(l,t,g,h);break}return l}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,o,r;for(s=0,o=e.length;s<o;++s)r=e[s][t.axis],(0,n.g)(r)&&i.push(r);return i}getMaxOverflow(){return!1}getLabelAndValue(t){const e=this._cachedMeta,i=e.iScale,n=e.vScale,s=this.getParsed(t);return{label:i?""+i.getLabelForValue(s[i.axis]):"",value:n?""+n.getLabelForValue(s[n.axis]):""}}_update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=function(t){let e,i,s,o;return(0,n.i)(t)?(e=t.top,i=t.right,s=t.bottom,o=t.left):e=i=s=o=t,{top:e,right:i,bottom:s,left:o,disabled:!1===t}}((0,n.v)(this.options.clip,function(t,e,i){if(!1===i)return!1;const n=c(t,i),s=c(e,i);return{top:s.end,right:n.end,bottom:s.start,left:n.start}}(e.xScale,e.yScale,this.getMaxOverflow())))}update(t){}draw(){const t=this._ctx,e=this.chart,i=this._cachedMeta,n=i.data||[],s=e.chartArea,o=[],r=this._drawStart||0,a=this._drawCount||n.length-r,h=this.options.drawActiveElementsOnTop;let l;for(i.dataset&&i.dataset.draw(t,s,r,a),l=r;l<r+a;++l){const e=n[l];e.hidden||(e.active&&h?o.push(e):e.draw(t,s))}for(l=0;l<o.length;++l)o[l].draw(t,s)}getStyle(t,e){const i=e?"active":"default";return void 0===t&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(i):this.resolveDataElementOptions(t||0,i)}getContext(t,e,i){const s=this.getDataset();let o;if(t>=0&&t<this._cachedMeta.data.length){const e=this._cachedMeta.data[t];o=e.$context||(e.$context=function(t,e,i){return(0,n.j)(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:i,index:e,mode:"default",type:"data"})}(this.getContext(),t,e)),o.parsed=this.getParsed(t),o.raw=s.data[t],o.index=o.dataIndex=t}else o=this.$context||(this.$context=function(t,e){return(0,n.j)(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}(this.chart.getContext(),this.index)),o.dataset=s,o.index=o.datasetIndex=this.index;return o.active=!!e,o.mode=i,o}resolveDatasetElementOptions(t){return this._resolveElementOptions(this.datasetElementType.id,t)}resolveDataElementOptions(t,e){return this._resolveElementOptions(this.dataElementType.id,e,t)}_resolveElementOptions(t,e="default",i){const s="active"===e,o=this._cachedDataOpts,r=t+"-"+e,a=o[r],h=this.enableOptionSharing&&(0,n.h)(i);if(a)return _(a,h);const l=this.chart.config,c=l.datasetElementScopeKeys(this._type,t),d=s?[`${t}Hover`,"hover",t,""]:[t,""],u=l.getOptionScopes(this.getDataset(),c),f=Object.keys(n.d.elements[t]),g=l.resolveNamedOptions(u,f,(()=>this.getContext(i,s,e)),d);return g.$shared&&(g.$shared=h,o[r]=Object.freeze(_(g,h))),g}_resolveAnimations(t,e,i){const n=this.chart,s=this._cachedDataOpts,o=`animation-${e}`,r=s[o];if(r)return r;let a;if(!1!==n.options.animation){const n=this.chart.config,s=n.datasetAnimationScopeKeys(this._type,e),o=n.getOptionScopes(this.getDataset(),s);a=n.createResolver(o,this.getContext(t,i,e))}const h=new l(n,a&&a.animations);return a&&a._cacheable&&(s[o]=Object.freeze(h)),h}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||y(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),n=this._sharedOptions,s=this.getSharedOptions(i),o=this.includeOptions(e,s)||s!==n;return this.updateSharedOptions(s,e,i),{sharedOptions:s,includeOptions:o}}updateElement(t,e,i,n){y(n)?Object.assign(t,i):this._resolveAnimations(e,n).update(t,i)}updateSharedOptions(t,e,i){t&&!y(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,n){t.active=n;const s=this.getStyle(e,n);this._resolveAnimations(e,i,n).update(t,{options:!n&&this.getSharedOptions(s)||s})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[r,a,h]of this._syncList)this[r](a,h);this._syncList=[];const n=i.length,s=e.length,o=Math.min(s,n);o&&this.parse(0,o),s>n?this._insertElements(n,s-n,t):s<n&&this._removeElements(s,n-s)}_insertElements(t,e,i=!0){const n=this._cachedMeta,s=n.data,o=t+e;let r;const a=t=>{for(t.length+=e,r=t.length-1;r>=o;r--)t[r]=t[r-e]};for(a(s),r=t;r<o;++r)s[r]=new this.dataElementType;this._parsing&&a(n._parsed),this.parse(t,e),i&&this.updateElements(s,t,e,"reset")}updateElements(t,e,i,n){}_removeElements(t,e){const i=this._cachedMeta;if(this._parsing){const n=i._parsed.splice(t,e);i._stacked&&b(i,n)}i.data.splice(t,e)}_sync(t){if(this._parsing)this._syncList.push(t);else{const[e,i,n]=t;this[e](i,n)}this.chart._dataChanges.push([this.index,...t])}_onDataPush(){const t=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-t,t])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(t,e){e&&this._sync(["_removeElements",t,e]);const i=arguments.length-2;i&&this._sync(["_insertElements",t,i])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}function w(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;e<n;e++)s=s.concat(i[e].controller.getAllParsedValues(t));t._cache.$bar=(0,n._)(s.sort(((t,e)=>t-e)))}return t._cache.$bar}(e,t.type);let s,o,r,a,h=e._length;const l=()=>{32767!==r&&-32768!==r&&((0,n.h)(a)&&(h=Math.min(h,Math.abs(r-a)||h)),a=r)};for(s=0,o=i.length;s<o;++s)r=e.getPixelForValue(i[s]),l();for(a=void 0,s=0,o=e.ticks.length;s<o;++s)r=e.getPixelForTick(s),l();return h}function k(t,e,i,s){return(0,n.b)(t)?function(t,e,i,n){const s=i.parse(t[0],n),o=i.parse(t[1],n),r=Math.min(s,o),a=Math.max(s,o);let h=r,l=a;Math.abs(r)>Math.abs(a)&&(h=a,l=r),e[i.axis]=l,e._custom={barStart:h,barEnd:l,start:s,end:o,min:r,max:a}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function M(t,e,i,n){const s=t.iScale,o=t.vScale,r=s.getLabels(),a=s===o,h=[];let l,c,d,u;for(l=i,c=i+n;l<c;++l)u=e[l],d={},d[s.axis]=a||s.parse(r[l],l),h.push(k(u,d,o,l));return h}function S(t){return t&&void 0!==t.barStart&&void 0!==t.barEnd}function P(t,e,i,n){let s=e.borderSkipped;const o={};if(!s)return void(t.borderSkipped=o);if(!0===s)return void(t.borderSkipped={top:!0,right:!0,bottom:!0,left:!0});const{start:r,end:a,reverse:h,top:l,bottom:c}=function(t){let e,i,n,s,o;return t.horizontal?(e=t.base>t.x,i="left",n="right"):(e=t.base<t.y,i="bottom",n="top"),e?(s="end",o="start"):(s="start",o="end"),{start:i,end:n,reverse:e,top:s,bottom:o}}(t);"middle"===s&&i&&(t.enableBorderRadius=!0,(i._top||0)===n?s=l:(i._bottom||0)===n?s=c:(o[C(c,r,a,h)]=!0,s=l)),o[C(s,r,a,h)]=!0,t.borderSkipped=o}function C(t,e,i,n){var s,o,r;return n?(r=i,t=D(t=(s=t)===(o=e)?r:s===r?o:s,i,e)):t=D(t,e,i),t}function D(t,e,i){return"start"===t?e:"end"===t?i:t}function O(t,{inflateAmount:e},i){t.inflateAmount="auto"===e?1===i?.33:0:e}class T extends v{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(t,e,i,n){return M(t,e,i,n)}parseArrayData(t,e,i,n){return M(t,e,i,n)}parseObjectData(t,e,i,s){const{iScale:o,vScale:r}=t,{xAxisKey:a="x",yAxisKey:h="y"}=this._parsing,l="x"===o.axis?a:h,c="x"===r.axis?a:h,d=[];let u,f,g,p;for(u=i,f=i+s;u<f;++u)p=e[u],g={},g[o.axis]=o.parse((0,n.f)(p,l),u),d.push(k((0,n.f)(p,c),g,r,u));return d}updateRangeFromParsed(t,e,i,n){super.updateRangeFromParsed(t,e,i,n);const s=i._custom;s&&e===this._cachedMeta.vScale&&(t.min=Math.min(t.min,s.min),t.max=Math.max(t.max,s.max))}getMaxOverflow(){return 0}getLabelAndValue(t){const e=this._cachedMeta,{iScale:i,vScale:n}=e,s=this.getParsed(t),o=s._custom,r=S(o)?"["+o.start+", "+o.end+"]":""+n.getLabelForValue(s[n.axis]);return{label:""+i.getLabelForValue(s[i.axis]),value:r}}initialize(){this.enableOptionSharing=!0,super.initialize();this._cachedMeta.stack=this.getDataset().stack}update(t){const e=this._cachedMeta;this.updateElements(e.data,0,e.data.length,t)}updateElements(t,e,i,s){const o="reset"===s,{index:r,_cachedMeta:{vScale:a}}=this,h=a.getBasePixel(),l=a.isHorizontal(),c=this._getRuler(),{sharedOptions:d,includeOptions:u}=this._getSharedOptions(e,s);for(let f=e;f<e+i;f++){const e=this.getParsed(f),i=o||(0,n.k)(e[a.axis])?{base:h,head:h}:this._calculateBarValuePixels(f),g=this._calculateBarIndexPixels(f,c),p=(e._stacks||{})[a.axis],x={horizontal:l,base:i.base,enableBorderRadius:!p||S(e._custom)||r===p._top||r===p._bottom,x:l?i.head:g.center,y:l?g.center:i.head,height:l?g.size:Math.abs(i.size),width:l?Math.abs(i.size):g.size};u&&(x.options=d||this.resolveDataElementOptions(f,t[f].active?"active":s));const m=x.options||t[f].options;P(x,m,p,r),O(x,m,c.ratio),this.updateElement(t[f],f,x,s)}}_getStacks(t,e){const{iScale:i}=this._cachedMeta,s=i.getMatchingVisibleMetas(this._type).filter((t=>t.controller.options.grouped)),o=i.options.stacked,r=[],a=t=>{const i=t.controller.getParsed(e),s=i&&i[t.vScale.axis];if((0,n.k)(s)||isNaN(s))return!0};for(const n of s)if((void 0===e||!a(n))&&((!1===o||-1===r.indexOf(n.stack)||void 0===o&&void 0===n.stack)&&r.push(n.stack),n.index===t))break;return r.length||r.push(void 0),r}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const n=this._getStacks(t,i),s=void 0!==e?n.indexOf(e):-1;return-1===s?n.length-1:s}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,n=[];let s,o;for(s=0,o=e.data.length;s<o;++s)n.push(i.getPixelForValue(this.getParsed(s)[i.axis],s));const r=t.barThickness;return{min:r||w(e),pixels:n,start:i._startPixel,end:i._endPixel,stackCount:this._getStackCount(),scale:i,grouped:t.grouped,ratio:r?1:t.categoryPercentage*t.barPercentage}}_calculateBarValuePixels(t){const{_cachedMeta:{vScale:e,_stacked:i,index:s},options:{base:o,minBarLength:r}}=this,a=o||0,h=this.getParsed(t),l=h._custom,c=S(l);let d,u,f=h[e.axis],g=0,p=i?this.applyStack(e,h,i):f;p!==f&&(g=p-f,p=f),c&&(f=l.barStart,p=l.barEnd-l.barStart,0!==f&&(0,n.s)(f)!==(0,n.s)(l.barEnd)&&(g=0),g+=f);const x=(0,n.k)(o)||c?g:o;let m=e.getPixelForValue(x);if(d=this.chart.getDataVisibility(t)?e.getPixelForValue(g+p):m,u=d-m,Math.abs(u)<r){u=function(t,e,i){return 0!==t?(0,n.s)(t):(e.isHorizontal()?1:-1)*(e.min>=i?1:-1)}(u,e,a)*r,f===a&&(m-=u/2);const t=e.getPixelForDecimal(0),o=e.getPixelForDecimal(1),l=Math.min(t,o),g=Math.max(t,o);m=Math.max(Math.min(m,g),l),d=m+u,i&&!c&&(h._stacks[e.axis]._visualValues[s]=e.getValueForPixel(d)-e.getValueForPixel(m))}if(m===e.getPixelForValue(a)){const t=(0,n.s)(u)*e.getLineWidthForValue(a)/2;m+=t,u-=t}return{size:u,base:m,head:d,center:d+u/2}}_calculateBarIndexPixels(t,e){const i=e.scale,s=this.options,o=s.skipNull,r=(0,n.v)(s.maxBarThickness,1/0);let a,h;if(e.grouped){const i=o?this._getStackCount(t):e.stackCount,l="flex"===s.barThickness?function(t,e,i,n){const s=e.pixels,o=s[t];let r=t>0?s[t-1]:null,a=t<s.length-1?s[t+1]:null;const h=i.categoryPercentage;null===r&&(r=o-(null===a?e.end-e.start:a-o)),null===a&&(a=o+o-r);const l=o-(o-Math.min(r,a))/2*h;return{chunk:Math.abs(a-r)/2*h/n,ratio:i.barPercentage,start:l}}(t,e,s,i):function(t,e,i,s){const o=i.barThickness;let r,a;return(0,n.k)(o)?(r=e.min*i.categoryPercentage,a=i.barPercentage):(r=o*s,a=1),{chunk:r/s,ratio:a,start:e.pixels[t]-r/2}}(t,e,s,i),c=this._getStackIndex(this.index,this._cachedMeta.stack,o?t:void 0);a=l.start+l.chunk*c+l.chunk/2,h=Math.min(r,l.chunk*l.ratio)}else a=i.getPixelForValue(this.getParsed(t)[i.axis],t),h=Math.min(r,e.min*e.ratio);return{base:a-h/2,head:a+h/2,center:a,size:h}}draw(){const t=this._cachedMeta,e=t.vScale,i=t.data,n=i.length;let s=0;for(;s<n;++s)null!==this.getParsed(s)[e.axis]&&i[s].draw(this._ctx)}}class A extends v{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:o}=e,r=this.chart._animationsDisabled;let{start:a,count:h}=(0,n.q)(e,s,r);this._drawStart=a,this._drawCount=h,(0,n.w)(e)&&(a=0,h=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!r,options:l},t),this.updateElements(s,a,h,t)}updateElements(t,e,i,s){const o="reset"===s,{iScale:r,vScale:a,_stacked:h,_dataset:l}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,s),u=r.axis,f=a.axis,{spanGaps:g,segment:p}=this.options,x=(0,n.x)(g)?g:Number.POSITIVE_INFINITY,m=this.chart._animationsDisabled||o||"none"===s,b=e+i,y=t.length;let _=e>0&&this.getParsed(e-1);for(let v=0;v<y;++v){const i=t[v],g=m?i:{};if(v<e||v>=b){g.skip=!0;continue}const y=this.getParsed(v),w=(0,n.k)(y[f]),k=g[u]=r.getPixelForValue(y[u],v),M=g[f]=o||w?a.getBasePixel():a.getPixelForValue(h?this.applyStack(a,y,h):y[f],v);g.skip=isNaN(k)||isNaN(M)||w,g.stop=v>0&&Math.abs(y[u]-_[u])>x,p&&(g.parsed=y,g.raw=l.data[v]),d&&(g.options=c||this.resolveDataElementOptions(v,i.active?"active":s)),m||this.updateElement(i,v,g,s),_=y}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,n=t.data||[];if(!n.length)return i;const s=n[0].size(this.resolveDataElementOptions(0)),o=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(i,s,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}function L(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class I{static override(t){Object.assign(I.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return L()}parse(){return L()}format(){return L()}add(){return L()}diff(){return L()}startOf(){return L()}endOf(){return L()}}var E={_date:I};function R(t,e,i,s){const{controller:o,data:r,_sorted:a}=t,h=o._cachedMeta.iScale;if(h&&e===h.axis&&"r"!==e&&a&&r.length){const t=h._reversePixels?n.A:n.B;if(!s)return t(r,e,i);if(o._sharedOptions){const n=r[0],s="function"===typeof n.getRange&&n.getRange(e);if(s){const n=t(r,e,i-s),o=t(r,e,i+s);return{lo:n.lo,hi:o.hi}}}}return{lo:0,hi:r.length-1}}function z(t,e,i,n,s){const o=t.getSortedVisibleDatasetMetas(),r=i[e];for(let a=0,h=o.length;a<h;++a){const{index:t,data:i}=o[a],{lo:h,hi:l}=R(o[a],e,r,s);for(let e=h;e<=l;++e){const s=i[e];s.skip||n(s,t,e)}}}function F(t,e,i,s,o){const r=[];if(!o&&!t.isPointInArea(e))return r;return z(t,i,e,(function(i,a,h){(o||(0,n.C)(i,t.chartArea,0))&&i.inRange(e.x,e.y,s)&&r.push({element:i,datasetIndex:a,index:h})}),!0),r}function j(t,e,i,n,s,o){let r=[];const a=function(t){const e=-1!==t.indexOf("x"),i=-1!==t.indexOf("y");return function(t,n){const s=e?Math.abs(t.x-n.x):0,o=i?Math.abs(t.y-n.y):0;return Math.sqrt(Math.pow(s,2)+Math.pow(o,2))}}(i);let h=Number.POSITIVE_INFINITY;return z(t,i,e,(function(i,l,c){const d=i.inRange(e.x,e.y,s);if(n&&!d)return;const u=i.getCenterPoint(s);if(!(!!o||t.isPointInArea(u))&&!d)return;const f=a(e,u);f<h?(r=[{element:i,datasetIndex:l,index:c}],h=f):f===h&&r.push({element:i,datasetIndex:l,index:c})})),r}function W(t,e,i,s,o,r){return r||t.isPointInArea(e)?"r"!==i||s?j(t,e,i,s,o,r):function(t,e,i,s){let o=[];return z(t,i,e,(function(t,i,r){const{startAngle:a,endAngle:h}=t.getProps(["startAngle","endAngle"],s),{angle:l}=(0,n.D)(t,{x:e.x,y:e.y});(0,n.p)(l,a,h)&&o.push({element:t,datasetIndex:i,index:r})})),o}(t,e,i,o):[]}function B(t,e,i,n,s){const o=[],r="x"===i?"inXRange":"inYRange";let a=!1;return z(t,i,e,((t,n,h)=>{t[r](e[i],s)&&(o.push({element:t,datasetIndex:n,index:h}),a=a||t.inRange(e.x,e.y,s))})),n&&!a?[]:o}var V={evaluateInteractionItems:z,modes:{index(t,e,i,s){const o=(0,n.z)(e,t),r=i.axis||"x",a=i.includeInvisible||!1,h=i.intersect?F(t,o,r,s,a):W(t,o,r,!1,s,a),l=[];return h.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=h[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const o=(0,n.z)(e,t),r=i.axis||"xy",a=i.includeInvisible||!1;let h=i.intersect?F(t,o,r,s,a):W(t,o,r,!1,s,a);if(h.length>0){const e=h[0].datasetIndex,i=t.getDatasetMeta(e).data;h=[];for(let t=0;t<i.length;++t)h.push({element:i[t],datasetIndex:e,index:t})}return h},point(t,e,i,s){return F(t,(0,n.z)(e,t),i.axis||"xy",s,i.includeInvisible||!1)},nearest(t,e,i,s){const o=(0,n.z)(e,t),r=i.axis||"xy",a=i.includeInvisible||!1;return W(t,o,r,i.intersect,s,a)},x(t,e,i,s){return B(t,(0,n.z)(e,t),"x",i.intersect,s)},y(t,e,i,s){return B(t,(0,n.z)(e,t),"y",i.intersect,s)}}};const H=["left","top","right","bottom"];function N(t,e){return t.filter((t=>t.pos===e))}function Y(t,e){return t.filter((t=>-1===H.indexOf(t.pos)&&t.box.axis===e))}function $(t,e){return t.sort(((t,i)=>{const n=e?i:t,s=e?t:i;return n.weight===s.weight?n.index-s.index:n.weight-s.weight}))}function X(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:n,stackWeight:s}=i;if(!t||!H.includes(n))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=s}return e}(t),{vBoxMaxWidth:n,hBoxMaxHeight:s}=e;let o,r,a;for(o=0,r=t.length;o<r;++o){a=t[o];const{fullSize:r}=a.box,h=i[a.stack],l=h&&a.stackWeight/h.weight;a.horizontal?(a.width=l?l*n:r&&e.availableWidth,a.height=s):(a.width=n,a.height=l?l*s:r&&e.availableHeight)}return i}function U(t,e,i,n){return Math.max(t[i],e[i])+Math.max(t[n],e[n])}function Q(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function q(t,e,i,s){const{pos:o,box:r}=i,a=t.maxPadding;if(!(0,n.i)(o)){i.size&&(t[o]-=i.size);const e=s[i.stack]||{size:0,count:1};e.size=Math.max(e.size,i.horizontal?r.height:r.width),i.size=e.size/e.count,t[o]+=i.size}r.getPadding&&Q(a,r.getPadding());const h=Math.max(0,e.outerWidth-U(a,t,"left","right")),l=Math.max(0,e.outerHeight-U(a,t,"top","bottom")),c=h!==t.w,d=l!==t.h;return t.w=h,t.h=l,i.horizontal?{same:c,other:d}:{same:d,other:c}}function K(t,e){const i=e.maxPadding;function n(t){const n={left:0,top:0,right:0,bottom:0};return t.forEach((t=>{n[t]=Math.max(e[t],i[t])})),n}return n(t?["left","right"]:["top","bottom"])}function J(t,e,i,n){const s=[];let o,r,a,h,l,c;for(o=0,r=t.length,l=0;o<r;++o){a=t[o],h=a.box,h.update(a.width||e.w,a.height||e.h,K(a.horizontal,e));const{same:r,other:d}=q(e,i,a,n);l|=r&&s.length,c=c||d,h.fullSize||s.push(a)}return l&&J(s,e,i,n)||c}function Z(t,e,i,n,s){t.top=i,t.left=e,t.right=e+n,t.bottom=i+s,t.width=n,t.height=s}function G(t,e,i,s){const o=i.padding;let{x:r,y:a}=e;for(const h of t){const t=h.box,l=s[h.stack]||{count:1,placed:0,weight:1},c=h.stackWeight/l.weight||1;if(h.horizontal){const s=e.w*c,r=l.size||t.height;(0,n.h)(l.start)&&(a=l.start),t.fullSize?Z(t,o.left,a,i.outerWidth-o.right-o.left,r):Z(t,e.left+l.placed,a,s,r),l.start=a,l.placed+=s,a=t.bottom}else{const s=e.h*c,a=l.size||t.width;(0,n.h)(l.start)&&(r=l.start),t.fullSize?Z(t,r,o.top,a,i.outerHeight-o.bottom-o.top):Z(t,r,e.top+l.placed,a,s),l.start=r,l.placed+=s,r=t.right}}e.x=r,e.y=a}var tt={addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e.position||"top",e.weight=e.weight||0,e._layers=e._layers||function(){return[{z:0,draw(t){e.draw(t)}}]},t.boxes.push(e)},removeBox(t,e){const i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure(t,e,i){e.fullSize=i.fullSize,e.position=i.position,e.weight=i.weight},update(t,e,i,s){if(!t)return;const o=(0,n.E)(t.options.layout.padding),r=Math.max(e-o.width,0),a=Math.max(i-o.height,0),h=function(t){const e=function(t){const e=[];let i,n,s,o,r,a;for(i=0,n=(t||[]).length;i<n;++i)s=t[i],({position:o,options:{stack:r,stackWeight:a=1}}=s),e.push({index:i,box:s,pos:o,horizontal:s.isHorizontal(),weight:s.weight,stack:r&&o+r,stackWeight:a});return e}(t),i=$(e.filter((t=>t.box.fullSize)),!0),n=$(N(e,"left"),!0),s=$(N(e,"right")),o=$(N(e,"top"),!0),r=$(N(e,"bottom")),a=Y(e,"x"),h=Y(e,"y");return{fullSize:i,leftAndTop:n.concat(o),rightAndBottom:s.concat(h).concat(r).concat(a),chartArea:N(e,"chartArea"),vertical:n.concat(s).concat(h),horizontal:o.concat(r).concat(a)}}(t.boxes),l=h.vertical,c=h.horizontal;(0,n.F)(t.boxes,(t=>{"function"===typeof t.beforeLayout&&t.beforeLayout()}));const d=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,u=Object.freeze({outerWidth:e,outerHeight:i,padding:o,availableWidth:r,availableHeight:a,vBoxMaxWidth:r/2/d,hBoxMaxHeight:a/2}),f=Object.assign({},o);Q(f,(0,n.E)(s));const g=Object.assign({maxPadding:f,w:r,h:a,x:o.left,y:o.top},o),p=X(l.concat(c),u);J(h.fullSize,g,u,p),J(l,g,u,p),J(c,g,u,p)&&J(l,g,u,p),function(t){const e=t.maxPadding;function i(i){const n=Math.max(e[i]-t[i],0);return t[i]+=n,n}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),G(h.leftAndTop,g,u,p),g.x+=g.w,g.y+=g.h,G(h.rightAndBottom,g,u,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},(0,n.F)(h.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class et{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,n){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,n?Math.floor(e/n):i)}}isAttached(t){return!0}updateConfig(t){}}class it extends et{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const nt="$chartjs",st={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},ot=t=>null===t||""===t;const rt=!!n.K&&{passive:!0};function at(t,e,i){t.canvas.removeEventListener(e,i,rt)}function ht(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function lt(t,e,i){const n=t.canvas,s=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ht(i.addedNodes,n),e=e&&!ht(i.removedNodes,n);e&&i()}));return s.observe(document,{childList:!0,subtree:!0}),s}function ct(t,e,i){const n=t.canvas,s=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ht(i.removedNodes,n),e=e&&!ht(i.addedNodes,n);e&&i()}));return s.observe(document,{childList:!0,subtree:!0}),s}const dt=new Map;let ut=0;function ft(){const t=window.devicePixelRatio;t!==ut&&(ut=t,dt.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function gt(t,e,i){const s=t.canvas,o=s&&(0,n.I)(s);if(!o)return;const r=(0,n.L)(((t,e)=>{const n=o.clientWidth;i(t,e),n<o.clientWidth&&i()}),window),a=new ResizeObserver((t=>{const e=t[0],i=e.contentRect.width,n=e.contentRect.height;0===i&&0===n||r(i,n)}));return a.observe(o),function(t,e){dt.size||window.addEventListener("resize",ft),dt.set(t,e)}(t,r),a}function pt(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){dt.delete(t),dt.size||window.removeEventListener("resize",ft)}(t)}function xt(t,e,i){const s=t.canvas,o=(0,n.L)((e=>{null!==t.ctx&&i(function(t,e){const i=st[t.type]||t.type,{x:s,y:o}=(0,n.z)(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==o?o:null}}(e,t))}),t);return function(t,e,i){t.addEventListener(e,i,rt)}(s,e,o),o}class mt extends et{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),o=t.getAttribute("width");if(t[nt]={initial:{height:s,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",ot(o)){const e=(0,n.J)(t,"width");void 0!==e&&(t.width=e)}if(ot(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=(0,n.J)(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[nt])return!1;const i=e[nt].initial;["height","width"].forEach((t=>{const s=i[t];(0,n.k)(s)?e.removeAttribute(t):e.setAttribute(t,s)}));const s=i.style||{};return Object.keys(s).forEach((t=>{e.style[t]=s[t]})),e.width=e.width,delete e[nt],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const n=t.$proxies||(t.$proxies={}),s={attach:lt,detach:ct,resize:gt}[e]||xt;n[e]=s(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),n=i[e];if(!n)return;({attach:pt,detach:pt,resize:pt}[e]||at)(t,e,n),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return(0,n.G)(t,e,i,s)}isAttached(t){const e=(0,n.I)(t);return!(!e||!e.isConnected)}}class bt{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}hasValue(){return(0,n.x)(this.x)&&(0,n.x)(this.y)}getProps(t,e){const i=this.$animations;if(!e||!i)return this;const n={};return t.forEach((t=>{n[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),n}}function yt(t,e){const i=t.options.ticks,s=function(t){const e=t.options.offset,i=t._tickSize(),n=t._length/i+(e?0:1),s=t._maxLength/i;return Math.floor(Math.min(n,s))}(t),o=Math.min(i.maxTicksLimit||s,s),r=i.major.enabled?function(t){const e=[];let i,n;for(i=0,n=t.length;i<n;i++)t[i].major&&e.push(i);return e}(e):[],a=r.length,h=r[0],l=r[a-1],c=[];if(a>o)return function(t,e,i,n){let s,o=0,r=i[0];for(n=Math.ceil(n),s=0;s<t.length;s++)s===r&&(e.push(t[s]),o++,r=i[o*n])}(e,c,r,a/o),c;const d=function(t,e,i){const s=function(t){const e=t.length;let i,n;if(e<2)return!1;for(n=t[0],i=1;i<e;++i)if(t[i]-t[i-1]!==n)return!1;return n}(t),o=e.length/i;if(!s)return Math.max(o,1);const r=(0,n.N)(s);for(let n=0,a=r.length-1;n<a;n++){const t=r[n];if(t>o)return t}return Math.max(o,1)}(r,e,o);if(a>0){let t,i;const s=a>1?Math.round((l-h)/(a-1)):null;for(_t(e,c,d,(0,n.k)(s)?0:h-s,h),t=0,i=a-1;t<i;t++)_t(e,c,d,r[t],r[t+1]);return _t(e,c,d,l,(0,n.k)(s)?e.length:l+s),c}return _t(e,c,d),c}function _t(t,e,i,s,o){const r=(0,n.v)(s,0),a=Math.min((0,n.v)(o,t.length),t.length);let h,l,c,d=0;for(i=Math.ceil(i),o&&(h=o-s,i=h/Math.floor(h/i)),c=r;c<0;)d++,c=Math.round(r+d*i);for(l=Math.max(r,0);l<a;l++)l===c&&(e.push(t[l]),d++,c=Math.round(r+d*i))}const vt=(t,e,i)=>"top"===e||"left"===e?t[e]+i:t[e]-i,wt=(t,e)=>Math.min(e||t,t);function kt(t,e){const i=[],n=t.length/e,s=t.length;let o=0;for(;o<s;o+=n)i.push(t[Math.floor(o)]);return i}function Mt(t,e,i){const n=t.ticks.length,s=Math.min(e,n-1),o=t._startPixel,r=t._endPixel,a=1e-6;let h,l=t.getPixelForTick(s);if(!(i&&(h=1===n?Math.max(l-o,r-l):0===e?(t.getPixelForTick(1)-l)/2:(l-t.getPixelForTick(s-1))/2,l+=s<e?h:-h,l<o-a||l>r+a)))return l}function St(t){return t.drawTicks?t.tickLength:0}function Pt(t,e){if(!t.display)return 0;const i=(0,n.a0)(t.font,e),s=(0,n.E)(t.padding);return((0,n.b)(t.text)?t.text.length:1)*i.lineHeight+s.height}function Ct(t,e,i){let s=(0,n.a1)(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class Dt extends bt{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=(0,n.O)(t,Number.POSITIVE_INFINITY),e=(0,n.O)(e,Number.NEGATIVE_INFINITY),i=(0,n.O)(i,Number.POSITIVE_INFINITY),s=(0,n.O)(s,Number.NEGATIVE_INFINITY),{min:(0,n.O)(t,i),max:(0,n.O)(e,s),minDefined:(0,n.g)(t),maxDefined:(0,n.g)(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:o,maxDefined:r}=this.getUserBounds();if(o&&r)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let n=0,h=a.length;n<h;++n)e=a[n].controller.getMinMax(this,t),o||(i=Math.min(i,e.min)),r||(s=Math.max(s,e.max));return i=r&&i>s?s:i,s=o&&i>s?i:s,{min:(0,n.O)(i,(0,n.O)(s,i)),max:(0,n.O)(s,(0,n.O)(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){(0,n.Q)(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:o,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=(0,n.R)(this,o,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const h=a<this.ticks.length;this._convertTicksToLabels(h?kt(this.ticks,a):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),r.display&&(r.autoSkip||"auto"===r.source)&&(this.ticks=yt(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),h&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let t,e,i=this.options.reverse;this.isHorizontal()?(t=this.left,e=this.right):(t=this.top,e=this.bottom,i=!i),this._startPixel=t,this._endPixel=e,this._reversePixels=i,this._length=e-t,this._alignToPixels=this.options.alignToPixels}afterUpdate(){(0,n.Q)(this.options.afterUpdate,[this])}beforeSetDimensions(){(0,n.Q)(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){(0,n.Q)(this.options.afterSetDimensions,[this])}_callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,n.Q)(this.options[t],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){(0,n.Q)(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(t){const e=this.options.ticks;let i,s,o;for(i=0,s=t.length;i<s;i++)o=t[i],o.label=(0,n.Q)(e.callback,[o.value,i,t],this)}afterTickToLabelConversion(){(0,n.Q)(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){(0,n.Q)(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){const t=this.options,e=t.ticks,i=wt(this.ticks.length,t.ticks.maxTicksLimit),s=e.minRotation||0,o=e.maxRotation;let r,a,h,l=s;if(!this._isVisible()||!e.display||s>=o||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const c=this._getLabelSizes(),d=c.widest.width,u=c.highest.height,f=(0,n.S)(this.chart.width-d,0,this.maxWidth);r=t.offset?this.maxWidth/i:f/(i-1),d+6>r&&(r=f/(i-(t.offset?.5:1)),a=this.maxHeight-St(t.grid)-e.padding-Pt(t.title,this.chart.options.font),h=Math.sqrt(d*d+u*u),l=(0,n.U)(Math.min(Math.asin((0,n.S)((c.highest.height+6)/r,-1,1)),Math.asin((0,n.S)(a/h,-1,1))-Math.asin((0,n.S)(u/h,-1,1)))),l=Math.max(s,Math.min(o,l))),this.labelRotation=l}afterCalculateLabelRotation(){(0,n.Q)(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){(0,n.Q)(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:o}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const r=Pt(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=St(o)+r):(t.height=this.maxHeight,t.width=St(o)+r),i.display&&this.ticks.length){const{first:e,last:s,widest:o,highest:r}=this._getLabelSizes(),h=2*i.padding,l=(0,n.t)(this.labelRotation),c=Math.cos(l),d=Math.sin(l);if(a){const e=i.mirror?0:d*o.width+c*r.height;t.height=Math.min(this.maxHeight,t.height+e+h)}else{const e=i.mirror?0:c*o.width+d*r.height;t.width=Math.min(this.maxWidth,t.width+e+h)}this._calculatePadding(e,s,d,c)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,n){const{ticks:{align:s,padding:o},position:r}=this.options,a=0!==this.labelRotation,h="top"!==r&&"x"===this.axis;if(this.isHorizontal()){const r=this.getPixelForTick(0)-this.left,l=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;a?h?(c=n*t.width,d=i*e.height):(c=i*t.height,d=n*e.width):"start"===s?d=e.width:"end"===s?c=t.width:"inner"!==s&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-r+o)*this.width/(this.width-r),0),this.paddingRight=Math.max((d-l+o)*this.width/(this.width-l),0)}else{let i=e.height/2,n=t.height/2;"start"===s?(i=0,n=t.height):"end"===s&&(i=e.height,n=0),this.paddingTop=i+o,this.paddingBottom=n+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){(0,n.Q)(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e<i;e++)(0,n.k)(t[e].label)&&(t.splice(e,1),i--,e--);this.afterTickToLabelConversion()}_getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ticks.sampleSize;let i=this.ticks;e<i.length&&(i=kt(i,e)),this._labelSizes=t=this._computeLabelSizes(i,i.length,this.options.ticks.maxTicksLimit)}return t}_computeLabelSizes(t,e,i){const{ctx:s,_longestTextCache:o}=this,r=[],a=[],h=Math.floor(e/wt(e,i));let l,c,d,u,f,g,p,x,m,b,y,_=0,v=0;for(l=0;l<e;l+=h){if(u=t[l].label,f=this._resolveTickFontOptions(l),s.font=g=f.string,p=o[g]=o[g]||{data:{},gc:[]},x=f.lineHeight,m=b=0,(0,n.k)(u)||(0,n.b)(u)){if((0,n.b)(u))for(c=0,d=u.length;c<d;++c)y=u[c],(0,n.k)(y)||(0,n.b)(y)||(m=(0,n.V)(s,p.data,p.gc,m,y),b+=x)}else m=(0,n.V)(s,p.data,p.gc,m,u),b=x;r.push(m),a.push(b),_=Math.max(m,_),v=Math.max(b,v)}!function(t,e){(0,n.F)(t,(t=>{const i=t.gc,n=i.length/2;let s;if(n>e){for(s=0;s<n;++s)delete t.data[i[s]];i.splice(0,n)}}))}(o,e);const w=r.indexOf(_),k=a.indexOf(v),M=t=>({width:r[t]||0,height:a[t]||0});return{first:M(0),last:M(e-1),widest:M(w),highest:M(k),widths:r,heights:a}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return(0,n.W)(this._alignToPixels?(0,n.X)(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&t<e.length){const i=e[t];return i.$context||(i.$context=function(t,e,i){return(0,n.j)(t,{tick:i,index:e,type:"tick"})}(this.getContext(),t,i))}return this.$context||(this.$context=(i=this.chart.getContext(),s=this,(0,n.j)(i,{scale:s,type:"scale"})));var i,s}_tickSize(){const t=this.options.ticks,e=(0,n.t)(this.labelRotation),i=Math.abs(Math.cos(e)),s=Math.abs(Math.sin(e)),o=this._getLabelSizes(),r=t.autoSkipPadding||0,a=o?o.widest.width+r:0,h=o?o.highest.height+r:0;return this.isHorizontal()?h*i>a*s?a/i:h/s:h*s<a*i?h/i:a/s}_isVisible(){const t=this.options.display;return"auto"!==t?!!t:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:o,position:r,border:a}=s,h=o.offset,l=this.isHorizontal(),c=this.ticks.length+(h?1:0),d=St(o),u=[],f=a.setContext(this.getContext()),g=f.display?f.width:0,p=g/2,x=function(t){return(0,n.X)(i,t,g)};let m,b,y,_,v,w,k,M,S,P,C,D;if("top"===r)m=x(this.bottom),w=this.bottom-d,M=m-p,P=x(t.top)+p,D=t.bottom;else if("bottom"===r)m=x(this.top),P=t.top,D=x(t.bottom)-p,w=m+p,M=this.top+d;else if("left"===r)m=x(this.right),v=this.right-d,k=m-p,S=x(t.left)+p,C=t.right;else if("right"===r)m=x(this.left),S=t.left,C=x(t.right)-p,v=m+p,k=this.left+d;else if("x"===e){if("center"===r)m=x((t.top+t.bottom)/2+.5);else if((0,n.i)(r)){const t=Object.keys(r)[0],e=r[t];m=x(this.chart.scales[t].getPixelForValue(e))}P=t.top,D=t.bottom,w=m+p,M=w+d}else if("y"===e){if("center"===r)m=x((t.left+t.right)/2);else if((0,n.i)(r)){const t=Object.keys(r)[0],e=r[t];m=x(this.chart.scales[t].getPixelForValue(e))}v=m-p,k=v-d,S=t.left,C=t.right}const O=(0,n.v)(s.ticks.maxTicksLimit,c),T=Math.max(1,Math.ceil(c/O));for(b=0;b<c;b+=T){const t=this.getContext(b),e=o.setContext(t),s=a.setContext(t),r=e.lineWidth,c=e.color,d=s.dash||[],f=s.dashOffset,g=e.tickWidth,p=e.tickColor,x=e.tickBorderDash||[],m=e.tickBorderDashOffset;y=Mt(this,b,h),void 0!==y&&(_=(0,n.X)(i,y,r),l?v=k=S=C=_:w=M=P=D=_,u.push({tx1:v,ty1:w,tx2:k,ty2:M,x1:S,y1:P,x2:C,y2:D,width:r,color:c,borderDash:d,borderDashOffset:f,tickWidth:g,tickColor:p,tickBorderDash:x,tickBorderDashOffset:m}))}return this._ticksLength=c,this._borderValue=m,u}_computeLabelItems(t){const e=this.axis,i=this.options,{position:s,ticks:o}=i,r=this.isHorizontal(),a=this.ticks,{align:h,crossAlign:l,padding:c,mirror:d}=o,u=St(i.grid),f=u+c,g=d?-c:f,p=-(0,n.t)(this.labelRotation),x=[];let m,b,y,_,v,w,k,M,S,P,C,D,O="middle";if("top"===s)w=this.bottom-g,k=this._getXAxisLabelAlignment();else if("bottom"===s)w=this.top+g,k=this._getXAxisLabelAlignment();else if("left"===s){const t=this._getYAxisLabelAlignment(u);k=t.textAlign,v=t.x}else if("right"===s){const t=this._getYAxisLabelAlignment(u);k=t.textAlign,v=t.x}else if("x"===e){if("center"===s)w=(t.top+t.bottom)/2+f;else if((0,n.i)(s)){const t=Object.keys(s)[0],e=s[t];w=this.chart.scales[t].getPixelForValue(e)+f}k=this._getXAxisLabelAlignment()}else if("y"===e){if("center"===s)v=(t.left+t.right)/2-f;else if((0,n.i)(s)){const t=Object.keys(s)[0],e=s[t];v=this.chart.scales[t].getPixelForValue(e)}k=this._getYAxisLabelAlignment(u).textAlign}"y"===e&&("start"===h?O="top":"end"===h&&(O="bottom"));const T=this._getLabelSizes();for(m=0,b=a.length;m<b;++m){y=a[m],_=y.label;const t=o.setContext(this.getContext(m));M=this.getPixelForTick(m)+o.labelOffset,S=this._resolveTickFontOptions(m),P=S.lineHeight,C=(0,n.b)(_)?_.length:1;const e=C/2,i=t.color,h=t.textStrokeColor,c=t.textStrokeWidth;let u,f=k;if(r?(v=M,"inner"===k&&(f=m===b-1?this.options.reverse?"left":"right":0===m?this.options.reverse?"right":"left":"center"),D="top"===s?"near"===l||0!==p?-C*P+P/2:"center"===l?-T.highest.height/2-e*P+P:-T.highest.height+P/2:"near"===l||0!==p?P/2:"center"===l?T.highest.height/2-e*P:T.highest.height-C*P,d&&(D*=-1),0===p||t.showLabelBackdrop||(v+=P/2*Math.sin(p))):(w=M,D=(1-C)*P/2),t.showLabelBackdrop){const e=(0,n.E)(t.backdropPadding),i=T.heights[m],s=T.widths[m];let o=D-e.top,r=0-e.left;switch(O){case"middle":o-=i/2;break;case"bottom":o-=i}switch(k){case"center":r-=s/2;break;case"right":r-=s}u={left:r,top:o,width:s+e.width,height:i+e.height,color:t.backdropColor}}x.push({label:_,font:S,textOffset:D,options:{rotation:p,color:i,strokeColor:h,strokeWidth:c,textAlign:f,textBaseline:O,translation:[v,w],backdrop:u}})}return x}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-(0,n.t)(this.labelRotation))return"top"===t?"left":"right";let i="center";return"start"===e.align?i="left":"end"===e.align?i="right":"inner"===e.align&&(i="inner"),i}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:i,mirror:n,padding:s}}=this.options,o=t+s,r=this._getLabelSizes().widest.width;let a,h;return"left"===e?n?(h=this.right+s,"near"===i?a="left":"center"===i?(a="center",h+=r/2):(a="right",h+=r)):(h=this.right-o,"near"===i?a="right":"center"===i?(a="center",h-=r/2):(a="left",h=this.left)):"right"===e?n?(h=this.left+s,"near"===i?a="right":"center"===i?(a="center",h-=r/2):(a="left",h-=r)):(h=this.left+o,"near"===i?a="left":"center"===i?(a="center",h+=r/2):(a="right",h=this.right)):a="right",{textAlign:a,x:h}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;return"left"===e||"right"===e?{top:0,left:this.left,bottom:t.height,right:this.right}:"top"===e||"bottom"===e?{top:this.top,left:0,bottom:this.bottom,right:t.width}:void 0}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:i,top:n,width:s,height:o}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(i,n,s,o),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const i=this.ticks.findIndex((e=>e.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let s,o;const r=(t,e,n)=>{n.width&&n.color&&(i.save(),i.lineWidth=n.width,i.strokeStyle=n.color,i.setLineDash(n.borderDash||[]),i.lineDashOffset=n.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(s=0,o=n.length;s<o;++s){const t=n[s];e.drawOnChartArea&&r({x:t.x1,y:t.y1},{x:t.x2,y:t.y2},t),e.drawTicks&&r({x:t.tx1,y:t.ty1},{x:t.tx2,y:t.ty2},{color:t.tickColor,width:t.tickWidth,borderDash:t.tickBorderDash,borderDashOffset:t.tickBorderDashOffset})}}drawBorder(){const{chart:t,ctx:e,options:{border:i,grid:s}}=this,o=i.setContext(this.getContext()),r=i.display?o.width:0;if(!r)return;const a=s.setContext(this.getContext(0)).lineWidth,h=this._borderValue;let l,c,d,u;this.isHorizontal()?(l=(0,n.X)(t,this.left,r)-r/2,c=(0,n.X)(t,this.right,a)+a/2,d=u=h):(d=(0,n.X)(t,this.top,r)-r/2,u=(0,n.X)(t,this.bottom,a)+a/2,l=c=h),e.save(),e.lineWidth=o.width,e.strokeStyle=o.color,e.beginPath(),e.moveTo(l,d),e.lineTo(c,u),e.stroke(),e.restore()}drawLabels(t){if(!this.options.ticks.display)return;const e=this.ctx,i=this._computeLabelArea();i&&(0,n.Y)(e,i);const s=this.getLabelItems(t);for(const o of s){const t=o.options,i=o.font,s=o.label,r=o.textOffset;(0,n.Z)(e,s,0,r,i,t)}i&&(0,n.$)(e)}drawTitle(){const{ctx:t,options:{position:e,title:i,reverse:s}}=this;if(!i.display)return;const o=(0,n.a0)(i.font),r=(0,n.E)(i.padding),a=i.align;let h=o.lineHeight/2;"bottom"===e||"center"===e||(0,n.i)(e)?(h+=r.bottom,(0,n.b)(i.text)&&(h+=o.lineHeight*(i.text.length-1))):h+=r.top;const{titleX:l,titleY:c,maxWidth:d,rotation:u}=function(t,e,i,s){const{top:o,left:r,bottom:a,right:h,chart:l}=t,{chartArea:c,scales:d}=l;let u,f,g,p=0;const x=a-o,m=h-r;if(t.isHorizontal()){if(f=(0,n.a2)(s,r,h),(0,n.i)(i)){const t=Object.keys(i)[0],n=i[t];g=d[t].getPixelForValue(n)+x-e}else g="center"===i?(c.bottom+c.top)/2+x-e:vt(t,i,e);u=h-r}else{if((0,n.i)(i)){const t=Object.keys(i)[0],n=i[t];f=d[t].getPixelForValue(n)-m+e}else f="center"===i?(c.left+c.right)/2-m+e:vt(t,i,e);g=(0,n.a2)(s,a,o),p="left"===i?-n.H:n.H}return{titleX:f,titleY:g,maxWidth:u,rotation:p}}(this,h,e,a);(0,n.Z)(t,i.text,0,0,o,{color:i.color,maxWidth:d,rotation:u,textAlign:Ct(a,e,s),textBaseline:"middle",translation:[l,c]})}draw(t){this._isVisible()&&(this.drawBackground(),this.drawGrid(t),this.drawBorder(),this.drawTitle(),this.drawLabels(t))}_layers(){const t=this.options,e=t.ticks&&t.ticks.z||0,i=(0,n.v)(t.grid&&t.grid.z,-1),s=(0,n.v)(t.border&&t.border.z,0);return this._isVisible()&&this.draw===Dt.prototype.draw?[{z:i,draw:t=>{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:s,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",n=[];let s,o;for(s=0,o=e.length;s<o;++s){const o=e[s];o[i]!==this.id||t&&o.type!==t||n.push(o)}return n}_resolveTickFontOptions(t){const e=this.options.ticks.setContext(this.getContext(t));return(0,n.a0)(e.font)}_maxDigits(){const t=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/t}}class Ot{constructor(t,e,i){this.type=t,this.scope=e,this.override=i,this.items=Object.create(null)}isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prototype,t.prototype)}register(t){const e=Object.getPrototypeOf(t);let i;(function(t){return"id"in t&&"defaults"in t})(e)&&(i=this.register(e));const s=this.items,o=t.id,r=this.scope+"."+o;if(!o)throw new Error("class does not have id: "+t);return o in s||(s[o]=t,function(t,e,i){const s=(0,n.a4)(Object.create(null),[i?n.d.get(i):{},n.d.get(e),t.defaults]);n.d.set(e,s),t.defaultRoutes&&function(t,e){Object.keys(e).forEach((i=>{const s=i.split("."),o=s.pop(),r=[t].concat(s).join("."),a=e[i].split("."),h=a.pop(),l=a.join(".");n.d.route(r,o,l,h)}))}(e,t.defaultRoutes);t.descriptors&&n.d.describe(e,t.descriptors)}(t,r,i),this.override&&n.d.override(t.id,t.overrides)),r}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in n.d[s]&&(delete n.d[s][i],this.override&&delete n.a3[i])}}class Tt{constructor(){this.controllers=new Ot(v,"datasets",!0),this.elements=new Ot(bt,"elements"),this.plugins=new Ot(Object,"plugins"),this.scales=new Ot(Dt,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):(0,n.F)(e,(e=>{const n=i||this._getRegistryForType(e);this._exec(t,n,e)}))}))}_exec(t,e,i){const s=(0,n.a5)(t);(0,n.Q)(i["before"+s],[],i),e[t](i),(0,n.Q)(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;e<this._typedRegistries.length;e++){const i=this._typedRegistries[e];if(i.isForType(t))return i}return this.plugins}_get(t,e,i){const n=e.get(t);if(void 0===n)throw new Error('"'+t+'" is not a registered '+i+".");return n}}var At=new Tt;class Lt{constructor(){this._init=[]}notify(t,e,i,n){"beforeInit"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const s=n?this._descriptors(t).filter(n):this._descriptors(t),o=this._notify(s,t,e,i);return"afterDestroy"===e&&(this._notify(s,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,e,i,s){s=s||{};for(const o of t){const t=o.plugin,r=t[i],a=[e,s,o.options];if(!1===(0,n.Q)(r,a,t)&&s.cancelable)return!1}return!0}invalidate(){(0,n.k)(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=(0,n.v)(i.options&&i.options.plugins,{}),o=function(t){const e={},i=[],n=Object.keys(At.plugins.items);for(let o=0;o<n.length;o++)i.push(At.getPlugin(n[o]));const s=t.plugins||[];for(let o=0;o<s.length;o++){const t=s[o];-1===i.indexOf(t)&&(i.push(t),e[t.id]=!0)}return{plugins:i,localIds:e}}(i);return!1!==s||e?function(t,{plugins:e,localIds:i},n,s){const o=[],r=t.getContext();for(const a of e){const e=a.id,h=It(n[e],s);null!==h&&o.push({plugin:a,options:Et(t.config,{plugin:a,local:i[e]},h,r)})}return o}(t,o,s,e):[]}_notifyStateChanges(t){const e=this._oldCache||[],i=this._cache,n=(t,e)=>t.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(n(e,i),t,"stop"),this._notify(n(i,e),t,"start")}}function It(t,e){return e||!1!==t?!0===t?{}:t:null}function Et(t,{plugin:e,local:i},n,s){const o=t.pluginScopeKeys(e),r=t.getOptionScopes(n,o);return i&&e.defaults&&r.push(e.defaults),t.createResolver(r,s,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Rt(t,e){const i=n.d.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function zt(t){if("x"===t||"y"===t||"r"===t)return t}function Ft(t,...e){if(zt(t))return t;for(const n of e){const e=n.axis||("top"===(i=n.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.length>1&&zt(t[0].toLowerCase());if(e)return e}var i;throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function jt(t,e,i){if(i[e+"AxisID"]===t)return{axis:e}}function Wt(t,e){const i=n.a3[t.type]||{scales:{}},s=e.scales||{},o=Rt(t.type,e),r=Object.create(null);return Object.keys(s).forEach((e=>{const a=s[e];if(!(0,n.i)(a))return console.error(`Invalid scale configuration for scale: ${e}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const h=Ft(e,a,function(t,e){if(e.data&&e.data.datasets){const i=e.data.datasets.filter((e=>e.xAxisID===t||e.yAxisID===t));if(i.length)return jt(t,"x",i[0])||jt(t,"y",i[0])}return{}}(e,t),n.d.scales[a.type]),l=function(t,e){return t===e?"_index_":"_value_"}(h,o),c=i.scales||{};r[e]=(0,n.ab)(Object.create(null),[{axis:h},a,c[h],c[l]])})),t.data.datasets.forEach((i=>{const o=i.type||t.type,a=i.indexAxis||Rt(o,e),h=(n.a3[o]||{}).scales||{};Object.keys(h).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,a),o=i[e+"AxisID"]||e;r[o]=r[o]||Object.create(null),(0,n.ab)(r[o],[{axis:e},s[o],h[t]])}))})),Object.keys(r).forEach((t=>{const e=r[t];(0,n.ab)(e,[n.d.scales[e.type],n.d.scale])})),r}function Bt(t){const e=t.options||(t.options={});e.plugins=(0,n.v)(e.plugins,{}),e.scales=Wt(t,e)}function Vt(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const Ht=new Map,Nt=new Set;function Yt(t,e){let i=Ht.get(t);return i||(i=e(),Ht.set(t,i),Nt.add(i)),i}const $t=(t,e,i)=>{const s=(0,n.f)(e,i);void 0!==s&&t.add(s)};class Xt{constructor(t){this._config=function(t){return(t=t||{}).data=Vt(t.data),Bt(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Vt(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),Bt(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Yt(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return Yt(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return Yt(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return Yt(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let n=i.get(t);return n&&!e||(n=new Map,i.set(t,n)),n}getOptionScopes(t,e,i){const{options:s,type:o}=this,r=this._cachedScopes(t,i),a=r.get(e);if(a)return a;const h=new Set;e.forEach((e=>{t&&(h.add(t),e.forEach((e=>$t(h,t,e)))),e.forEach((t=>$t(h,s,t))),e.forEach((t=>$t(h,n.a3[o]||{},t))),e.forEach((t=>$t(h,n.d,t))),e.forEach((t=>$t(h,n.a6,t)))}));const l=Array.from(h);return 0===l.length&&l.push(Object.create(null)),Nt.has(e)&&r.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,n.a3[e]||{},n.d.datasets[e]||{},{type:e},n.d,n.a6]}resolveNamedOptions(t,e,i,s=[""]){const o={$shared:!0},{resolver:r,subPrefixes:a}=Ut(this._resolverCache,t,s);let h=r;if(function(t,e){const{isScriptable:i,isIndexable:s}=(0,n.aa)(t);for(const o of e){const e=i(o),r=s(o),a=(r||e)&&t[o];if(e&&((0,n.a7)(a)||Qt(a))||r&&(0,n.b)(a))return!0}return!1}(r,e)){o.$shared=!1,i=(0,n.a7)(i)?i():i;const e=this.createResolver(t,i,a);h=(0,n.a8)(r,i,e)}for(const n of e)o[n]=h[n];return o}createResolver(t,e,i=[""],s){const{resolver:o}=Ut(this._resolverCache,t,i);return(0,n.i)(e)?(0,n.a8)(o,e,void 0,s):o}}function Ut(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const o=i.join();let r=s.get(o);if(!r){r={resolver:(0,n.a9)(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(o,r)}return r}const Qt=t=>(0,n.i)(t)&&Object.getOwnPropertyNames(t).reduce(((e,i)=>e||(0,n.a7)(t[i])),!1);const qt=["top","bottom","left","right","chartArea"];function Kt(t,e){return"top"===t||"bottom"===t||-1===qt.indexOf(t)&&"x"===e}function Jt(t,e){return function(i,n){return i[t]===n[t]?i[e]-n[e]:i[t]-n[t]}}function Zt(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),(0,n.Q)(i&&i.onComplete,[t],e)}function Gt(t){const e=t.chart,i=e.options.animation;(0,n.Q)(i&&i.onProgress,[t],e)}function te(t){return(0,n.M)()&&"string"===typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ee={},ie=t=>{const e=te(t);return Object.values(ee).filter((t=>t.canvas===e)).pop()};function ne(t,e,i){const n=Object.keys(t);for(const s of n){const n=+s;if(n>=e){const o=t[s];delete t[s],(i>0||n>e)&&(t[n+i]=o)}}}class se{static defaults=n.d;static instances=ee;static overrides=n.a3;static registry=At;static version="4.3.3";static getChart=ie;static register(...t){At.add(...t),oe()}static unregister(...t){At.remove(...t),oe()}constructor(t,e){const i=this.config=new Xt(e),s=te(t),r=ie(s);if(r)throw new Error("Canvas is already in use. Chart with ID '"+r.id+"' must be destroyed before the canvas with ID '"+r.canvas.id+"' can be reused.");const a=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||function(t){return!(0,n.M)()||"undefined"!==typeof OffscreenCanvas&&t instanceof OffscreenCanvas?it:mt}(s)),this.platform.updateConfig(i);const h=this.platform.acquireContext(s,a.aspectRatio),l=h&&h.canvas,c=l&&l.height,d=l&&l.width;this.id=(0,n.ac)(),this.ctx=h,this.canvas=l,this.width=d,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Lt,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=(0,n.ad)((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],ee[this.id]=this,h&&l?(o.listen(this,"complete",Zt),o.listen(this,"progress",Gt),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:s,_aspectRatio:o}=this;return(0,n.k)(t)?e&&o?o:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return At}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():(0,n.ae)(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return(0,n.af)(this.canvas,this.ctx),this}stop(){return o.stop(this),this}resize(t,e){o.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,r=this.platform.getMaximumSize(s,t,e,o),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),h=this.width?"resize":"attach";this.width=r.width,this.height=r.height,this._aspectRatio=this.aspectRatio,(0,n.ae)(this,a,!0)&&(this.notifyPlugins("resize",{size:r}),(0,n.Q)(i.onResize,[this,r],this),this.attached&&this._doResize(h)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};(0,n.F)(t,((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let o=[];e&&(o=o.concat(Object.keys(e).map((t=>{const i=e[t],n=Ft(t,i),s="r"===n,o="x"===n;return{options:i,dposition:s?"chartArea":o?"bottom":"left",dtype:s?"radialLinear":o?"category":"linear"}})))),(0,n.F)(o,(e=>{const o=e.options,r=o.id,a=Ft(r,o),h=(0,n.v)(o.type,e.dtype);void 0!==o.position&&Kt(o.position,a)===Kt(e.dposition)||(o.position=e.dposition),s[r]=!0;let l=null;if(r in i&&i[r].type===h)l=i[r];else{l=new(At.getScale(h))({id:r,type:h,ctx:this.ctx,chart:this}),i[l.id]=l}l.init(o,t)})),(0,n.F)(s,((t,e)=>{t||delete i[e]})),(0,n.F)(i,(t=>{tt.configure(this,t,t.options),tt.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;t<i;++t)this._destroyDatasetMeta(t);t.splice(e,i-e)}this._sortedMetasets=t.slice(0).sort(Jt("order","index"))}_removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=this;t.length>e.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i<s;i++){const s=e[i];let o=this.getDatasetMeta(i);const r=s.type||this.config.type;if(o.type&&o.type!==r&&(this._destroyDatasetMeta(i),o=this.getDatasetMeta(i)),o.type=r,o.indexAxis=s.indexAxis||Rt(r,this.options),o.order=s.order||0,o.index=i,o.label=""+s.label,o.visible=this.isDatasetVisible(i),o.controller)o.controller.updateIndex(i),o.controller.linkScales();else{const e=At.getController(r),{datasetElementType:s,dataElementType:a}=n.d.datasets[r];Object.assign(e,{dataElementType:At.getElement(a),datasetElementType:s&&At.getElement(s)}),o.controller=new e(this,i),t.push(o.controller)}}return this._updateMetasets(),t}_resetElements(){(0,n.F)(this.data.datasets,((t,e)=>{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let r=0;for(let n=0,l=this.data.datasets.length;n<l;n++){const{controller:t}=this.getDatasetMeta(n),e=!s&&-1===o.indexOf(t);t.buildOrUpdateElements(e),r=Math.max(+t.getMaxOverflow(),r)}r=this._minPadding=i.layout.autoPadding?r:0,this._updateLayout(r),s||(0,n.F)(o,(t=>{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Jt("z","_idx"));const{_active:a,_lastEvent:h}=this;h?this._eventHandler(h,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){(0,n.F)(this.scales,(t=>{tt.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);(0,n.ag)(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:n,count:s}of e){ne(t,n,"_removeElements"===i?-s:s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let o=1;o<e;o++)if(!(0,n.ag)(s,i(o)))return;return Array.from(s).map((t=>t.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;tt.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],(0,n.F)(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t<e;++t)this.getDatasetMeta(t).controller.configure();for(let e=0,i=this.data.datasets.length;e<i;++e)this._updateDataset(e,(0,n.a7)(t)?t({datasetIndex:e}):t);this.notifyPlugins("afterDatasetsUpdate",{mode:t})}}_updateDataset(t,e){const i=this.getDatasetMeta(t),n={meta:i,index:t,mode:e,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetUpdate",n)&&(i.controller._update(e),n.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",n))}render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(o.has(this)?this.attached&&!o.running(this)&&o.start(this):(this.draw(),Zt({chart:this})))}draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._resizeBeforeDraw;this._resize(t,e),this._resizeBeforeDraw=null}if(this.clear(),this.width<=0||this.height<=0)return;if(!1===this.notifyPlugins("beforeDraw",{cancelable:!0}))return;const e=this._layers;for(t=0;t<e.length&&e[t].z<=0;++t)e[t].draw(this.chartArea);for(this._drawDatasets();t<e.length;++t)e[t].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(t){const e=this._sortedMetasets,i=[];let n,s;for(n=0,s=e.length;n<s;++n){const s=e[n];t&&!s.visible||i.push(s)}return i}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0}))return;const t=this.getSortedVisibleDatasetMetas();for(let e=t.length-1;e>=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,o=function(t){const{xScale:e,yScale:i}=t;if(e&&i)return{left:e.left,right:e.right,top:i.top,bottom:i.bottom}}(t)||this.chartArea,r={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",r)&&(s&&(0,n.Y)(e,{left:!1===i.left?0:o.left-i.left,right:!1===i.right?this.width:o.right+i.right,top:!1===i.top?0:o.top-i.top,bottom:!1===i.bottom?this.height:o.bottom+i.bottom}),t.controller.draw(),s&&(0,n.$)(e),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(t){return(0,n.C)(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,n){const s=V.modes[e];return"function"===typeof s?s(this,t,i,n):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let n=i.filter((t=>t&&t._dataset===e)).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(n)),n}getContext(){return this.$context||(this.$context=(0,n.j)(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"===typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",o=this.getDatasetMeta(t),r=o.controller._resolveAnimations(void 0,s);(0,n.h)(e)?(o.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),r.update(o,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),o.remove(this),t=0,e=this.data.datasets.length;t<e;++t)this._destroyDatasetMeta(t)}destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=this;this._stop(),this.config.clearCache(),t&&(this.unbindEvents(),(0,n.af)(t,e),this.platform.releaseContext(e),this.canvas=null,this.ctx=null),delete ee[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...t){return this.canvas.toDataURL(...t)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){const t=this._listeners,e=this.platform,i=(i,n)=>{e.addEventListener(this,i,n),t[i]=n},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};(0,n.F)(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,n)=>{e.addEventListener(this,i,n),t[i]=n},n=(i,n)=>{t[i]&&(e.removeEventListener(this,i,n),delete t[i])},s=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const r=()=>{n("attach",r),this.attached=!0,this.resize(),i("resize",s),i("detach",o)};o=()=>{this.attached=!1,n("resize",s),this._stop(),this._resize(0,0),i("attach",r)},e.isAttached(this.canvas)?r():o()}unbindEvents(){(0,n.F)(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},(0,n.F)(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const n=i?"set":"remove";let s,o,r,a;for("dataset"===e&&(s=this.getDatasetMeta(t[0].datasetIndex),s.controller["_"+n+"DatasetHoverStyle"]()),r=0,a=t.length;r<a;++r){o=t[r];const e=o&&this.getDatasetMeta(o.datasetIndex).controller;e&&e[n+"HoverStyle"](o.element,o.datasetIndex,o.index)}}getActiveElements(){return this._active||[]}setActiveElements(t){const e=this._active||[],i=t.map((({datasetIndex:t,index:e})=>{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!(0,n.ah)(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin.id===t)).length}_updateHoverStyles(t,e,i){const n=this.options.hover,s=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=s(e,t),r=i?t:s(t,e);o.length&&this.updateHoverStyle(o,n.mode,!1),r.length&&n.mode&&this.updateHoverStyle(r,n.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},n=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,n))return;const s=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,n),(s||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:o}=this,r=e,a=this._getActiveElements(t,s,i,r),h=(0,n.ai)(t),l=function(t,e,i,n){return i&&"mouseout"!==t.type?n?e:t:null}(t,this._lastEvent,i,h);i&&(this._lastEvent=null,(0,n.Q)(o.onHover,[t,a,this],this),h&&(0,n.Q)(o.onClick,[t,a,this],this));const c=!(0,n.ah)(a,s);return(c||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,c}_getActiveElements(t,e,i,n){if("mouseout"===t.type)return[];if(!i)return e;const s=this.options.hover;return this.getElementsAtEventForMode(t,s.mode,s,n)}}function oe(){return(0,n.F)(se.instances,(t=>t._plugins.invalidate()))}function re(t,e,i=e){t.lineCap=(0,n.v)(i.borderCapStyle,e.borderCapStyle),t.setLineDash((0,n.v)(i.borderDash,e.borderDash)),t.lineDashOffset=(0,n.v)(i.borderDashOffset,e.borderDashOffset),t.lineJoin=(0,n.v)(i.borderJoinStyle,e.borderJoinStyle),t.lineWidth=(0,n.v)(i.borderWidth,e.borderWidth),t.strokeStyle=(0,n.v)(i.borderColor,e.borderColor)}function ae(t,e,i){t.lineTo(i.x,i.y)}function he(t,e,i={}){const n=t.length,{start:s=0,end:o=n-1}=i,{start:r,end:a}=e,h=Math.max(s,r),l=Math.min(o,a),c=s<r&&o<r||s>a&&o>a;return{count:n,start:h,loop:e.loop,ilen:l<h&&!c?n+l-h:l-h}}function le(t,e,i,s){const{points:o,options:r}=e,{count:a,start:h,loop:l,ilen:c}=he(o,i,s),d=function(t){return t.stepped?n.ar:t.tension||"monotone"===t.cubicInterpolationMode?n.as:ae}(r);let u,f,g,{move:p=!0,reverse:x}=s||{};for(u=0;u<=c;++u)f=o[(h+(x?c-u:u))%a],f.skip||(p?(t.moveTo(f.x,f.y),p=!1):d(t,g,f,x,r.stepped),g=f);return l&&(f=o[(h+(x?c:0))%a],d(t,g,f,x,r.stepped)),!!l}function ce(t,e,i,n){const s=e.points,{count:o,start:r,ilen:a}=he(s,i,n),{move:h=!0,reverse:l}=n||{};let c,d,u,f,g,p,x=0,m=0;const b=t=>(r+(l?a-t:t))%o,y=()=>{f!==g&&(t.lineTo(x,g),t.lineTo(x,f),t.lineTo(x,p))};for(h&&(d=s[b(0)],t.moveTo(d.x,d.y)),c=0;c<=a;++c){if(d=s[b(c)],d.skip)continue;const e=d.x,i=d.y,n=0|e;n===u?(i<f?f=i:i>g&&(g=i),x=(m*x+e)/++m):(y(),t.lineTo(e,i),u=n,m=0,f=g=i),p=i}y()}function de(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&"monotone"!==e.cubicInterpolationMode&&!e.stepped&&!i?ce:le}const ue="function"===typeof Path2D;function fe(t,e,i,n){ue&&!e.options.segment?function(t,e,i,n){let s=e._path;s||(s=e._path=new Path2D,e.path(s,i,n)&&s.closePath()),re(t,e.options),t.stroke(s)}(t,e,i,n):function(t,e,i,n){const{segments:s,options:o}=e,r=de(e);for(const a of s)re(t,o,a.style),t.beginPath(),r(t,e,a,{start:i,end:i+n-1})&&t.closePath(),t.stroke()}(t,e,i,n)}class ge extends bt{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>"borderDash"!==t&&"fill"!==t};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;(0,n.al)(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=(0,n.am)(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],o=this.points,r=(0,n.an)(this,{property:e,start:s,end:s});if(!r.length)return;const a=[],h=function(t){return t.stepped?n.ao:t.tension||"monotone"===t.cubicInterpolationMode?n.ap:n.aq}(i);let l,c;for(l=0,c=r.length;l<c;++l){const{start:n,end:c}=r[l],d=o[n],u=o[c];if(d===u){a.push(d);continue}const f=h(d,u,Math.abs((s-d[e])/(u[e]-d[e])),i.stepped);f[e]=t[e],a.push(f)}return 1===a.length?a[0]:a}pathSegment(t,e,i){return de(this)(t,this,e,i)}path(t,e,i){const n=this.segments,s=de(this);let o=this._loop;e=e||0,i=i||this.points.length-e;for(const r of n)o&=s(t,this,r,{start:e,end:e+i-1});return!!o}draw(t,e,i,n){const s=this.options||{};(this.points||[]).length&&s.borderWidth&&(t.save(),fe(t,this,i,n),t.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function pe(t,e,i,n){const s=t.options,{[i]:o}=t.getProps([i],n);return Math.abs(e-o)<s.radius+s.hitRadius}class xe extends bt{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const n=this.options,{x:s,y:o}=this.getProps(["x","y"],i);return Math.pow(t-s,2)+Math.pow(e-o,2)<Math.pow(n.hitRadius+n.radius,2)}inXRange(t,e){return pe(this,t,"x",e)}inYRange(t,e){return pe(this,t,"y",e)}getCenterPoint(t){const{x:e,y:i}=this.getProps(["x","y"],t);return{x:e,y:i}}size(t){let e=(t=t||this.options||{}).radius||0;e=Math.max(e,e&&t.hoverRadius||0);return 2*(e+(e&&t.borderWidth||0))}draw(t,e){const i=this.options;this.skip||i.radius<.1||!(0,n.C)(this,e,this.size(i)/2)||(t.strokeStyle=i.borderColor,t.lineWidth=i.borderWidth,t.fillStyle=i.backgroundColor,(0,n.at)(t,i,this.x,this.y))}getRange(){const t=this.options||{};return t.radius+t.hitRadius}}function me(t,e){const{x:i,y:n,base:s,width:o,height:r}=t.getProps(["x","y","base","width","height"],e);let a,h,l,c,d;return t.horizontal?(d=r/2,a=Math.min(i,s),h=Math.max(i,s),l=n-d,c=n+d):(d=o/2,a=i-d,h=i+d,l=Math.min(n,s),c=Math.max(n,s)),{left:a,top:l,right:h,bottom:c}}function be(t,e,i,s){return t?0:(0,n.S)(e,i,s)}function ye(t){const e=me(t),i=e.right-e.left,s=e.bottom-e.top,o=function(t,e,i){const s=t.options.borderWidth,o=t.borderSkipped,r=(0,n.av)(s);return{t:be(o.top,r.top,0,i),r:be(o.right,r.right,0,e),b:be(o.bottom,r.bottom,0,i),l:be(o.left,r.left,0,e)}}(t,i/2,s/2),r=function(t,e,i){const{enableBorderRadius:s}=t.getProps(["enableBorderRadius"]),o=t.options.borderRadius,r=(0,n.aw)(o),a=Math.min(e,i),h=t.borderSkipped,l=s||(0,n.i)(o);return{topLeft:be(!l||h.top||h.left,r.topLeft,0,a),topRight:be(!l||h.top||h.right,r.topRight,0,a),bottomLeft:be(!l||h.bottom||h.left,r.bottomLeft,0,a),bottomRight:be(!l||h.bottom||h.right,r.bottomRight,0,a)}}(t,i/2,s/2);return{outer:{x:e.left,y:e.top,w:i,h:s,radius:r},inner:{x:e.left+o.l,y:e.top+o.t,w:i-o.l-o.r,h:s-o.t-o.b,radius:{topLeft:Math.max(0,r.topLeft-Math.max(o.t,o.l)),topRight:Math.max(0,r.topRight-Math.max(o.t,o.r)),bottomLeft:Math.max(0,r.bottomLeft-Math.max(o.b,o.l)),bottomRight:Math.max(0,r.bottomRight-Math.max(o.b,o.r))}}}}function _e(t,e,i,s){const o=null===e,r=null===i,a=t&&!(o&&r)&&me(t,s);return a&&(o||(0,n.aj)(e,a.left,a.right))&&(r||(0,n.aj)(i,a.top,a.bottom))}function ve(t,e){t.rect(e.x,e.y,e.w,e.h)}function we(t,e,i={}){const n=t.x!==i.x?-e:0,s=t.y!==i.y?-e:0,o=(t.x+t.w!==i.x+i.w?e:0)-n,r=(t.y+t.h!==i.y+i.h?e:0)-s;return{x:t.x+n,y:t.y+s,w:t.w+o,h:t.h+r,radius:t.radius}}class ke extends bt{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(t){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,t&&Object.assign(this,t)}draw(t){const{inflateAmount:e,options:{borderColor:i,backgroundColor:s}}=this,{inner:o,outer:r}=ye(this),a=(h=r.radius).topLeft||h.topRight||h.bottomLeft||h.bottomRight?n.au:ve;var h;t.save(),r.w===o.w&&r.h===o.h||(t.beginPath(),a(t,we(r,e,o)),t.clip(),a(t,we(o,-e,r)),t.fillStyle=i,t.fill("evenodd")),t.beginPath(),a(t,we(o,e)),t.fillStyle=s,t.fill(),t.restore()}inRange(t,e,i){return _e(this,t,e,i)}inXRange(t,e){return _e(this,t,null,e)}inYRange(t,e){return _e(this,null,t,e)}getCenterPoint(t){const{x:e,y:i,base:n,horizontal:s}=this.getProps(["x","y","base","horizontal"],t);return{x:s?(e+n)/2:e,y:s?i:(i+n)/2}}getRange(t){return"x"===t?this.width/2:this.height/2}}const Me=(t,e)=>{let{boxHeight:i=e,boxWidth:n=e}=t;return t.usePointStyle&&(i=Math.min(i,e),n=t.pointStyleWidth||Math.min(n,e)),{boxWidth:n,boxHeight:i,itemHeight:Math.max(e,i)}};class Se extends bt{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=(0,n.Q)(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=(0,n.a0)(i.font),o=s.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:h}=Me(i,o);let l,c;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,c=this._fitRows(r,o,a,h)+10):(c=this.maxHeight,l=this._fitCols(r,s,a,h)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(c,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,n){const{ctx:s,maxWidth:o,options:{labels:{padding:r}}}=this,a=this.legendHitBoxes=[],h=this.lineWidths=[0],l=n+r;let c=t;s.textAlign="left",s.textBaseline="middle";let d=-1,u=-l;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+s.measureText(t.text).width;(0===f||h[h.length-1]+g+2*r>o)&&(c+=l,h[h.length-(f>0?0:1)]=0,u+=l,d++),a[f]={left:0,top:u,row:d,width:g,height:n},h[h.length-1]+=g+r})),c}_fitCols(t,e,i,n){const{ctx:s,maxHeight:o,options:{labels:{padding:r}}}=this,a=this.legendHitBoxes=[],h=this.columnSizes=[],l=o-t;let c=r,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const{itemWidth:p,itemHeight:x}=function(t,e,i,n,s){const o=function(t,e,i,n){let s=t.text;s&&"string"!==typeof s&&(s=s.reduce(((t,e)=>t.length>e.length?t:e)));return e+i.size/2+n.measureText(s).width}(n,t,e,i),r=function(t,e,i){let n=t;"string"!==typeof e.text&&(n=Pe(e,i));return n}(s,n,e.lineHeight);return{itemWidth:o,itemHeight:r}}(i,e,s,t,n);o>0&&u+x+2*r>l&&(c+=d+r,h.push({width:d,height:u}),f+=d+r,g++,d=u=0),a[o]={left:f,top:u,col:g,width:p,height:x},d=Math.max(d,p),u+=x+r})),c+=d,h.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:o}}=this,r=(0,n.az)(o,this.left,this.width);if(this.isHorizontal()){let o=0,a=(0,n.a2)(i,this.left+s,this.right-this.lineWidths[o]);for(const h of e)o!==h.row&&(o=h.row,a=(0,n.a2)(i,this.left+s,this.right-this.lineWidths[o])),h.top+=this.top+t+s,h.left=r.leftForLtr(r.x(a),h.width),a+=h.width+s}else{let o=0,a=(0,n.a2)(i,this.top+t+s,this.bottom-this.columnSizes[o].height);for(const h of e)h.col!==o&&(o=h.col,a=(0,n.a2)(i,this.top+t+s,this.bottom-this.columnSizes[o].height)),h.top=a,h.left+=this.left+s,h.left=r.leftForLtr(r.x(h.left),h.width),a+=h.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;(0,n.Y)(t,this),this._draw(),(0,n.$)(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:o,labels:r}=t,a=n.d.color,h=(0,n.az)(t.rtl,this.left,this.width),l=(0,n.a0)(r.font),{padding:c}=r,d=l.size,u=d/2;let f;this.drawTitle(),s.textAlign=h.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=l.string;const{boxWidth:g,boxHeight:p,itemHeight:x}=Me(r,d),m=this.isHorizontal(),b=this._computeTitleHeight();f=m?{x:(0,n.a2)(o,this.left+c,this.right-i[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:(0,n.a2)(o,this.top+b+c,this.bottom-e[0].height),line:0},(0,n.aA)(this.ctx,t.textDirection);const y=x+c;this.legendItems.forEach(((_,v)=>{s.strokeStyle=_.fontColor,s.fillStyle=_.fontColor;const w=s.measureText(_.text).width,k=h.textAlign(_.textAlign||(_.textAlign=r.textAlign)),M=g+u+w;let S=f.x,P=f.y;h.setWidth(this.width),m?v>0&&S+M+c>this.right&&(P=f.y+=y,f.line++,S=f.x=(0,n.a2)(o,this.left+c,this.right-i[f.line])):v>0&&P+y>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,P=f.y=(0,n.a2)(o,this.top+b+c,this.bottom-e[f.line].height));if(function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const o=(0,n.v)(i.lineWidth,1);if(s.fillStyle=(0,n.v)(i.fillStyle,a),s.lineCap=(0,n.v)(i.lineCap,"butt"),s.lineDashOffset=(0,n.v)(i.lineDashOffset,0),s.lineJoin=(0,n.v)(i.lineJoin,"miter"),s.lineWidth=o,s.strokeStyle=(0,n.v)(i.strokeStyle,a),s.setLineDash((0,n.v)(i.lineDash,[])),r.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:o},l=h.xPlus(t,g/2),c=e+u;(0,n.aD)(s,a,l,c,r.pointStyleWidth&&g)}else{const r=e+Math.max((d-p)/2,0),a=h.leftForLtr(t,g),l=(0,n.aw)(i.borderRadius);s.beginPath(),Object.values(l).some((t=>0!==t))?(0,n.au)(s,{x:a,y:r,w:g,h:p,radius:l}):s.rect(a,r,g,p),s.fill(),0!==o&&s.stroke()}s.restore()}(h.x(S),P,_),S=(0,n.aB)(k,S+g+u,m?S+M:this.right,t.rtl),function(t,e,i){(0,n.Z)(s,i.text,t,e+x/2,l,{strikethrough:i.hidden,textAlign:h.textAlign(i.textAlign)})}(h.x(S),P,_),m)f.x+=M+c;else if("string"!==typeof _.text){const t=l.lineHeight;f.y+=Pe(_,t)+c}else f.y+=y})),(0,n.aC)(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=(0,n.a0)(e.font),s=(0,n.E)(e.padding);if(!e.display)return;const o=(0,n.az)(t.rtl,this.left,this.width),r=this.ctx,a=e.position,h=i.size/2,l=s.top+h;let c,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),c=this.top+l,d=(0,n.a2)(t.align,d,this.right-u);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);c=l+(0,n.a2)(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const f=(0,n.a2)(a,d,d+u);r.textAlign=o.textAlign((0,n.a1)(a)),r.textBaseline="middle",r.strokeStyle=e.color,r.fillStyle=e.color,r.font=i.string,(0,n.Z)(r,e.text,f,c,i)}_computeTitleHeight(){const t=this.options.title,e=(0,n.a0)(t.font),i=(0,n.E)(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,o;if((0,n.aj)(t,this.left,this.right)&&(0,n.aj)(e,this.top,this.bottom))for(o=this.legendHitBoxes,i=0;i<o.length;++i)if(s=o[i],(0,n.aj)(t,s.left,s.left+s.width)&&(0,n.aj)(e,s.top,s.top+s.height))return this.legendItems[i];return null}handleEvent(t){const e=this.options;if(!function(t,e){if(("mousemove"===t||"mouseout"===t)&&(e.onHover||e.onLeave))return!0;if(e.onClick&&("click"===t||"mouseup"===t))return!0;return!1}(t.type,e))return;const i=this._getLegendItemAt(t.x,t.y);if("mousemove"===t.type||"mouseout"===t.type){const r=this._hoveredItem,a=(o=i,null!==(s=r)&&null!==o&&s.datasetIndex===o.datasetIndex&&s.index===o.index);r&&!a&&(0,n.Q)(e.onLeave,[t,r,this],this),this._hoveredItem=i,i&&!a&&(0,n.Q)(e.onHover,[t,i,this],this)}else i&&(0,n.Q)(e.onClick,[t,i,this],this);var s,o}}function Pe(t,e){return e*(t.text?t.text.length:0)}var Ce={id:"legend",_element:Se,start(t,e,i){const n=t.legend=new Se({ctx:t.ctx,options:i,chart:t});tt.configure(t,n,i),tt.addBox(t,n)},stop(t){tt.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,i){const n=t.legend;tt.configure(t,n,i),n.options=i},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,i){const n=e.datasetIndex,s=i.chart;s.isDatasetVisible(n)?(s.hide(n),e.hidden=!0):(s.show(n),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:o,color:r,useBorderRadius:a,borderRadius:h}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const l=t.controller.getStyle(i?0:void 0),c=(0,n.E)(l.borderWidth);return{text:e[t.index].label,fillStyle:l.backgroundColor,fontColor:r,hidden:!t.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:l.borderColor,pointStyle:s||l.pointStyle,rotation:l.rotation,textAlign:o||l.textAlign,borderRadius:a&&(h||l.borderRadius),datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};new WeakMap;const De={average(t){if(!t.length)return!1;let e,i,n=0,s=0,o=0;for(e=0,i=t.length;e<i;++e){const i=t[e].element;if(i&&i.hasValue()){const t=i.tooltipPosition();n+=t.x,s+=t.y,++o}}return{x:n/o,y:s/o}},nearest(t,e){if(!t.length)return!1;let i,s,o,r=e.x,a=e.y,h=Number.POSITIVE_INFINITY;for(i=0,s=t.length;i<s;++i){const s=t[i].element;if(s&&s.hasValue()){const t=s.getCenterPoint(),i=(0,n.aE)(e,t);i<h&&(h=i,o=s)}}if(o){const t=o.tooltipPosition();r=t.x,a=t.y}return{x:r,y:a}}};function Oe(t,e){return e&&((0,n.b)(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Te(t){return("string"===typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function Ae(t,e){const{element:i,datasetIndex:n,index:s}=e,o=t.getDatasetMeta(n).controller,{label:r,value:a}=o.getLabelAndValue(s);return{chart:t,label:r,parsed:o.getParsed(s),raw:t.data.datasets[n].data[s],formattedValue:a,dataset:o.getDataset(),dataIndex:s,datasetIndex:n,element:i}}function Le(t,e){const i=t.chart.ctx,{body:s,footer:o,title:r}=t,{boxWidth:a,boxHeight:h}=e,l=(0,n.a0)(e.bodyFont),c=(0,n.a0)(e.titleFont),d=(0,n.a0)(e.footerFont),u=r.length,f=o.length,g=s.length,p=(0,n.E)(e.padding);let x=p.height,m=0,b=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(b+=t.beforeBody.length+t.afterBody.length,u&&(x+=u*c.lineHeight+(u-1)*e.titleSpacing+e.titleMarginBottom),b){x+=g*(e.displayColors?Math.max(h,l.lineHeight):l.lineHeight)+(b-g)*l.lineHeight+(b-1)*e.bodySpacing}f&&(x+=e.footerMarginTop+f*d.lineHeight+(f-1)*e.footerSpacing);let y=0;const _=function(t){m=Math.max(m,i.measureText(t).width+y)};return i.save(),i.font=c.string,(0,n.F)(t.title,_),i.font=l.string,(0,n.F)(t.beforeBody.concat(t.afterBody),_),y=e.displayColors?a+2+e.boxPadding:0,(0,n.F)(s,(t=>{(0,n.F)(t.before,_),(0,n.F)(t.lines,_),(0,n.F)(t.after,_)})),y=0,i.font=d.string,(0,n.F)(t.footer,_),i.restore(),m+=p.width,{width:m,height:x}}function Ie(t,e,i,n){const{x:s,width:o}=i,{width:r,chartArea:{left:a,right:h}}=t;let l="center";return"center"===n?l=s<=(a+h)/2?"left":"right":s<=o/2?l="left":s>=r-o/2&&(l="right"),function(t,e,i,n){const{x:s,width:o}=n,r=i.caretSize+i.caretPadding;return"left"===t&&s+o+r>e.width||"right"===t&&s-o-r<0||void 0}(l,t,e,i)&&(l="center"),l}function Ee(t,e,i){const n=i.yAlign||e.yAlign||function(t,e){const{y:i,height:n}=e;return i<n/2?"top":i>t.height-n/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||Ie(t,e,i,n),yAlign:n}}function Re(t,e,i,s){const{caretSize:o,caretPadding:r,cornerRadius:a}=t,{xAlign:h,yAlign:l}=i,c=o+r,{topLeft:d,topRight:u,bottomLeft:f,bottomRight:g}=(0,n.aw)(a);let p=function(t,e){let{x:i,width:n}=t;return"right"===e?i-=n:"center"===e&&(i-=n/2),i}(e,h);const x=function(t,e,i){let{y:n,height:s}=t;return"top"===e?n+=i:n-="bottom"===e?s+i:s/2,n}(e,l,c);return"center"===l?"left"===h?p+=c:"right"===h&&(p-=c):"left"===h?p-=Math.max(d,f)+o:"right"===h&&(p+=Math.max(u,g)+o),{x:(0,n.S)(p,0,s.width-e.width),y:(0,n.S)(x,0,s.height-e.height)}}function ze(t,e,i){const s=(0,n.E)(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function Fe(t){return Oe([],Te(t))}function je(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}const We={beforeTitle:n.aF,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,n=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(n>0&&e.dataIndex<n)return i[e.dataIndex]}return""},afterTitle:n.aF,beforeBody:n.aF,beforeLabel:n.aF,label(t){if(this&&this.options&&"dataset"===this.options.mode)return t.label+": "+t.formattedValue||t.formattedValue;let e=t.dataset.label||"";e&&(e+=": ");const i=t.formattedValue;return(0,n.k)(i)||(e+=i),e},labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:e.borderColor,backgroundColor:e.backgroundColor,borderWidth:e.borderWidth,borderDash:e.borderDash,borderDashOffset:e.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:e.pointStyle,rotation:e.rotation}},afterLabel:n.aF,afterBody:n.aF,beforeFooter:n.aF,footer:n.aF,afterFooter:n.aF};function Be(t,e,i,n){const s=t[e].call(i,n);return"undefined"===typeof s?We[e].call(i,n):s}class Ve extends bt{static positioners=De;constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),n=i.enabled&&e.options.animation&&i.animations,s=new l(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,(0,n.j)(t,{tooltip:e,tooltipItems:i,type:"tooltip"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,n=Be(i,"beforeTitle",this,t),s=Be(i,"title",this,t),o=Be(i,"afterTitle",this,t);let r=[];return r=Oe(r,Te(n)),r=Oe(r,Te(s)),r=Oe(r,Te(o)),r}getBeforeBody(t,e){return Fe(Be(e.callbacks,"beforeBody",this,t))}getBody(t,e){const{callbacks:i}=e,s=[];return(0,n.F)(t,(t=>{const e={before:[],lines:[],after:[]},n=je(i,t);Oe(e.before,Te(Be(n,"beforeLabel",this,t))),Oe(e.lines,Be(n,"label",this,t)),Oe(e.after,Te(Be(n,"afterLabel",this,t))),s.push(e)})),s}getAfterBody(t,e){return Fe(Be(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:i}=e,n=Be(i,"beforeFooter",this,t),s=Be(i,"footer",this,t),o=Be(i,"afterFooter",this,t);let r=[];return r=Oe(r,Te(n)),r=Oe(r,Te(s)),r=Oe(r,Te(o)),r}_createItems(t){const e=this._active,i=this.chart.data,s=[],o=[],r=[];let a,h,l=[];for(a=0,h=e.length;a<h;++a)l.push(Ae(this.chart,e[a]));return t.filter&&(l=l.filter(((e,n,s)=>t.filter(e,n,s,i)))),t.itemSort&&(l=l.sort(((e,n)=>t.itemSort(e,n,i)))),(0,n.F)(l,(e=>{const i=je(t.callbacks,e);s.push(Be(i,"labelColor",this,e)),o.push(Be(i,"labelPointStyle",this,e)),r.push(Be(i,"labelTextColor",this,e))})),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=r,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),n=this._active;let s,o=[];if(n.length){const t=De[i.position].call(this,n,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Le(this,i),r=Object.assign({},t,e),a=Ee(this.chart,i,r),h=Re(i,r,a,this.chart);this.xAlign=a.xAlign,this.yAlign=a.yAlign,s={opacity:1,x:h.x,y:h.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(s={opacity:0});this._tooltipItems=o,this.$context=void 0,s&&this._resolveAnimations().update(this,s),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,n){const s=this.getCaretPosition(t,i,n);e.lineTo(s.x1,s.y1),e.lineTo(s.x2,s.y2),e.lineTo(s.x3,s.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:o}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:h,topRight:l,bottomLeft:c,bottomRight:d}=(0,n.aw)(a),{x:u,y:f}=t,{width:g,height:p}=e;let x,m,b,y,_,v;return"center"===o?(_=f+p/2,"left"===s?(x=u,m=x-r,y=_+r,v=_-r):(x=u+g,m=x+r,y=_-r,v=_+r),b=x):(m="left"===s?u+Math.max(h,c)+r:"right"===s?u+g-Math.max(l,d)-r:this.caretX,"top"===o?(y=f,_=y-r,x=m-r,b=m+r):(y=f+p,_=y+r,x=m+r,b=m-r),v=y),{x1:x,x2:m,x3:b,y1:y,y2:_,y3:v}}drawTitle(t,e,i){const s=this.title,o=s.length;let r,a,h;if(o){const l=(0,n.az)(i.rtl,this.x,this.width);for(t.x=ze(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",r=(0,n.a0)(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=r.string,h=0;h<o;++h)e.fillText(s[h],l.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+a,h+1===o&&(t.y+=i.titleMarginBottom-a)}}_drawColorBox(t,e,i,s,o){const r=this.labelColors[i],a=this.labelPointStyles[i],{boxHeight:h,boxWidth:l}=o,c=(0,n.a0)(o.bodyFont),d=ze(this,"left",o),u=s.x(d),f=h<c.lineHeight?(c.lineHeight-h)/2:0,g=e.y+f;if(o.usePointStyle){const e={radius:Math.min(l,h)/2,pointStyle:a.pointStyle,rotation:a.rotation,borderWidth:1},i=s.leftForLtr(u,l)+l/2,c=g+h/2;t.strokeStyle=o.multiKeyBackground,t.fillStyle=o.multiKeyBackground,(0,n.at)(t,e,i,c),t.strokeStyle=r.borderColor,t.fillStyle=r.backgroundColor,(0,n.at)(t,e,i,c)}else{t.lineWidth=(0,n.i)(r.borderWidth)?Math.max(...Object.values(r.borderWidth)):r.borderWidth||1,t.strokeStyle=r.borderColor,t.setLineDash(r.borderDash||[]),t.lineDashOffset=r.borderDashOffset||0;const e=s.leftForLtr(u,l),i=s.leftForLtr(s.xPlus(u,1),l-2),a=(0,n.aw)(r.borderRadius);Object.values(a).some((t=>0!==t))?(t.beginPath(),t.fillStyle=o.multiKeyBackground,(0,n.au)(t,{x:e,y:g,w:l,h:h,radius:a}),t.fill(),t.stroke(),t.fillStyle=r.backgroundColor,t.beginPath(),(0,n.au)(t,{x:i,y:g+1,w:l-2,h:h-2,radius:a}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(e,g,l,h),t.strokeRect(e,g,l,h),t.fillStyle=r.backgroundColor,t.fillRect(i,g+1,l-2,h-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:o,bodyAlign:r,displayColors:a,boxHeight:h,boxWidth:l,boxPadding:c}=i,d=(0,n.a0)(i.bodyFont);let u=d.lineHeight,f=0;const g=(0,n.az)(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+u/2),t.y+=u+o},x=g.textAlign(r);let m,b,y,_,v,w,k;for(e.textAlign=r,e.textBaseline="middle",e.font=d.string,t.x=ze(this,x,i),e.fillStyle=i.bodyColor,(0,n.F)(this.beforeBody,p),f=a&&"right"!==x?"center"===r?l/2+c:l+2+c:0,_=0,w=s.length;_<w;++_){for(m=s[_],b=this.labelTextColors[_],e.fillStyle=b,(0,n.F)(m.before,p),y=m.lines,a&&y.length&&(this._drawColorBox(e,t,_,g,i),u=Math.max(d.lineHeight,h)),v=0,k=y.length;v<k;++v)p(y[v]),u=d.lineHeight;(0,n.F)(m.after,p)}f=0,u=d.lineHeight,(0,n.F)(this.afterBody,p),t.y-=o}drawFooter(t,e,i){const s=this.footer,o=s.length;let r,a;if(o){const h=(0,n.az)(i.rtl,this.x,this.width);for(t.x=ze(this,i.footerAlign,i),t.y+=i.footerMarginTop,e.textAlign=h.textAlign(i.footerAlign),e.textBaseline="middle",r=(0,n.a0)(i.footerFont),e.fillStyle=i.footerColor,e.font=r.string,a=0;a<o;++a)e.fillText(s[a],h.x(t.x),t.y+r.lineHeight/2),t.y+=r.lineHeight+i.footerSpacing}}drawBackground(t,e,i,s){const{xAlign:o,yAlign:r}=this,{x:a,y:h}=t,{width:l,height:c}=i,{topLeft:d,topRight:u,bottomLeft:f,bottomRight:g}=(0,n.aw)(s.cornerRadius);e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,e.lineWidth=s.borderWidth,e.beginPath(),e.moveTo(a+d,h),"top"===r&&this.drawCaret(t,e,i,s),e.lineTo(a+l-u,h),e.quadraticCurveTo(a+l,h,a+l,h+u),"center"===r&&"right"===o&&this.drawCaret(t,e,i,s),e.lineTo(a+l,h+c-g),e.quadraticCurveTo(a+l,h+c,a+l-g,h+c),"bottom"===r&&this.drawCaret(t,e,i,s),e.lineTo(a+f,h+c),e.quadraticCurveTo(a,h+c,a,h+c-f),"center"===r&&"left"===o&&this.drawCaret(t,e,i,s),e.lineTo(a,h+d),e.quadraticCurveTo(a,h,a+d,h),e.closePath(),e.fill(),s.borderWidth>0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,n=i&&i.x,s=i&&i.y;if(n||s){const i=De[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Le(this,t),r=Object.assign({},i,this._size),a=Ee(e,t,r),h=Re(t,r,a,e);n._to===h.x&&s._to===h.y||(this.xAlign=a.xAlign,this.yAlign=a.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=(0,n.E)(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(o,t,s,e),(0,n.aA)(t,e.textDirection),o.y+=r.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),(0,n.aC)(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),o=!(0,n.ah)(i,s),r=this._positionChanged(s,e);(o||r)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],r=this._getActiveElements(t,o,e,i),a=this._positionChanged(r,t),h=e||!(0,n.ah)(r,o)||a;return h&&(this._active=r,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),h}_getActiveElements(t,e,i,n){const s=this.options;if("mouseout"===t.type)return[];if(!n)return e;const o=this.chart.getElementsAtEventForMode(t,s.mode,s,i);return s.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:n,options:s}=this,o=De[s.position].call(this,t,e);return!1!==o&&(i!==o.x||n!==o.y)}}var He={id:"tooltip",_element:Ve,positioners:De,afterInit(t,e,i){i&&(t.tooltip=new Ve({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",{...i,cancelable:!0}))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:We},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};function Ne(t,e,i,n){const s=t.indexOf(e);if(-1===s)return((t,e,i,n)=>("string"===typeof e?(i=t.push(e)-1,n.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,n);return s!==t.lastIndexOf(e)?i:s}function Ye(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}class $e extends Dt{static id="category";static defaults={ticks:{callback:Ye}};constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:n}of e)t[i]===n&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if((0,n.k)(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:(0,n.S)(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:Ne(i,t,(0,n.v)(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:n}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(n=this.getLabels().length-1)),this.min=i,this.max=n}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,n=[];let s=this.getLabels();s=0===t&&e===s.length-1?s:s.slice(t,e+1),this._valueRange=Math.max(s.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let o=t;o<=e;o++)n.push({value:o});return n}getLabelForValue(t){return Ye.call(this,t)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(t){return"number"!==typeof t&&(t=this.parse(t)),null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function Xe(t,e,{horizontal:i,minRotation:s}){const o=(0,n.t)(s),r=(i?Math.sin(o):Math.cos(o))||.001,a=.75*e*(""+t).length;return Math.min(e/r,a)}class Ue extends Dt{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return(0,n.k)(t)||("number"===typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:o}=this;const r=t=>s=e?s:t,a=t=>o=i?o:t;if(t){const t=(0,n.s)(s),e=(0,n.s)(o);t<0&&e<0?a(0):t>0&&e>0&&r(0)}if(s===o){let e=0===o?1:Math.abs(.05*o);a(o+e),t||r(s-e)}this.min=s,this.max=o}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:n}=t;return n?(e=Math.ceil(this.max/n)-Math.floor(this.min/n)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${n} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=function(t,e){const i=[],{bounds:s,step:o,min:r,max:a,precision:h,count:l,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:x}=e,m=!(0,n.k)(r),b=!(0,n.k)(a),y=!(0,n.k)(l),_=(x-p)/(d+1);let v,w,k,M,S=(0,n.aH)((x-p)/g/f)*f;if(S<1e-14&&!m&&!b)return[{value:p},{value:x}];M=Math.ceil(x/S)-Math.floor(p/S),M>g&&(S=(0,n.aH)(M*S/g/f)*f),(0,n.k)(h)||(v=Math.pow(10,h),S=Math.ceil(S*v)/v),"ticks"===s?(w=Math.floor(p/S)*S,k=Math.ceil(x/S)*S):(w=p,k=x),m&&b&&o&&(0,n.aI)((a-r)/o,S/1e3)?(M=Math.round(Math.min((a-r)/S,c)),S=(a-r)/M,w=r,k=a):y?(w=m?r:w,k=b?a:k,M=l-1,S=(k-w)/M):(M=(k-w)/S,M=(0,n.aJ)(M,Math.round(M),S/1e3)?Math.round(M):Math.ceil(M));const P=Math.max((0,n.aK)(S),(0,n.aK)(w));v=Math.pow(10,(0,n.k)(h)?P:h),w=Math.round(w*v)/v,k=Math.round(k*v)/v;let C=0;for(m&&(u&&w!==r?(i.push({value:r}),w<r&&C++,(0,n.aJ)(Math.round((w+C*S)*v)/v,r,Xe(r,_,t))&&C++):w<r&&C++);C<M;++C){const t=Math.round((w+C*S)*v)/v;if(b&&t>a)break;i.push({value:t})}return b&&u&&k!==a?i.length&&(0,n.aJ)(i[i.length-1].value,a,Xe(a,_,t))?i[i.length-1].value=a:i.push({value:a}):b&&k!==a||i.push({value:k}),i}({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&(0,n.aG)(s,this,"value"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const n=(i-e)/Math.max(t.length-1,1)/2;e-=n,i+=n}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return(0,n.o)(t,this.chart.options.locale,this.options.ticks.format)}}class Qe extends Ue{static id="linear";static defaults={ticks:{callback:n.aL.formatters.numeric}};determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=(0,n.g)(t)?t:0,this.max=(0,n.g)(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=(0,n.t)(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}class qe extends Dt{static id="logarithmic";static defaults={ticks:{callback:n.aL.formatters.logarithmic,major:{enabled:!0}}};constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=Ue.prototype.parse.apply(this,[t,e]);if(0!==i)return(0,n.g)(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=(0,n.g)(t)?Math.max(0,t):null,this.max=(0,n.g)(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!(0,n.g)(this._userMin)&&(this.min=t===changeExponent(this.min,0)?changeExponent(this.min,-1):changeExponent(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,n=this.max;const s=e=>t?i:e,o=t=>e?n:t;i===n&&(i<=0?(s(1),o(10)):(s(changeExponent(i,-1)),o(changeExponent(n,1)))),i<=0&&s(changeExponent(n,-1)),n<=0&&o(changeExponent(i,1)),this.min=i,this.max=n}buildTicks(){const t=this.options,e=generateTicks({min:this._userMin,max:this._userMax},this);return"ticks"===t.bounds&&(0,n.aG)(e,this,"value"),t.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}getLabelForValue(t){return void 0===t?"0":(0,n.o)(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=(0,n.aM)(t),this._valueRange=(0,n.aM)(this.max)-(0,n.aM)(t)}getPixelForValue(t){return void 0!==t&&0!==t||this.min,null===t||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:((0,n.aM)(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}class Ke extends Ue{static id="radialLinear";static defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:n.aL.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(t){super(t),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const t=this._padding=(0,n.E)(getTickBackdropHeight(this.options)/2),e=this.width=this.maxWidth-t.width,i=this.height=this.maxHeight-t.height;this.xCenter=Math.floor(this.left+e/2+t.left),this.yCenter=Math.floor(this.top+i/2+t.top),this.drawingArea=Math.floor(Math.min(e,i)/2)}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!1);this.min=(0,n.g)(t)&&!isNaN(t)?t:0,this.max=(0,n.g)(e)&&!isNaN(e)?e:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/getTickBackdropHeight(this.options))}generateTickLabels(t){Ue.prototype.generateTickLabels.call(this,t),this._pointLabels=this.getLabels().map(((t,e)=>{const i=(0,n.Q)(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?fitWithPointLabels(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,n){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-n)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,n))}getIndexAngle(t){const e=n.T/(this._pointLabels.length||1),i=this.options.startAngle||0;return(0,n.ay)(t*e+(0,n.t)(i))}getDistanceFromCenterForValue(t){if((0,n.k)(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if((0,n.k)(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t<e.length){const i=e[t];return function(t,e,i){return(0,n.j)(t,{label:i,index:e,type:"pointLabel"})}(this.getContext(),t,i)}}getPointPosition(t,e,i=0){const s=this.getIndexAngle(t)-n.H+i;return{x:Math.cos(s)*e+this.xCenter,y:Math.sin(s)*e+this.yCenter,angle:s}}getPointPositionForValue(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))}getBasePosition(t){return this.getPointPositionForValue(t||0,this.getBaseValue())}getPointLabelPosition(t){const{left:e,top:i,right:n,bottom:s}=this._pointLabelItems[t];return{left:e,top:i,right:n,bottom:s}}drawBackground(){const{backgroundColor:t,grid:{circular:e}}=this.options;if(t){const i=this.ctx;i.save(),i.beginPath(),pathRadiusLine(this,this.getDistanceFromCenterForValue(this._endValue),e,this._pointLabels.length),i.closePath(),i.fillStyle=t,i.fill(),i.restore()}}drawGrid(){const t=this.ctx,e=this.options,{angleLines:i,grid:s,border:o}=e,r=this._pointLabels.length;let a,h,l;if(e.pointLabels.display&&function(t,e){const{ctx:i,options:{pointLabels:s}}=t;for(let o=e-1;o>=0;o--){const e=t._pointLabelItems[o];if(!e.visible)continue;const r=s.setContext(t.getPointLabelContext(o));drawPointLabelBox(i,r,e);const a=(0,n.a0)(r.font),{x:h,y:l,textAlign:c}=e;(0,n.Z)(i,t._pointLabels[o],h,l+a.lineHeight/2,a,{color:r.color,textAlign:c,textBaseline:"middle"})}}(this,r),s.display&&this.ticks.forEach(((t,e)=>{if(0!==e){this.getDistanceFromCenterForValue(t.value);const i=this.getContext(e),n=s.setContext(i),a=o.setContext(i);!function(t,e,i,n,s){const o=t.ctx,r=e.circular,{color:a,lineWidth:h}=e;!r&&!n||!a||!h||i<0||(o.save(),o.strokeStyle=a,o.lineWidth=h,o.setLineDash(s.dash),o.lineDashOffset=s.dashOffset,o.beginPath(),pathRadiusLine(t,i,r,n),o.closePath(),o.stroke(),o.restore())}(this,n,h,r,a)}})),i.display){for(t.save(),r-1;a>=0;a--){const n=i.setContext(this.getPointLabelContext(a)),{color:s,lineWidth:o}=n;o&&s&&(t.lineWidth=o,t.strokeStyle=s,t.setLineDash(n.borderDash),t.lineDashOffset=n.borderDashOffset,this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),this.getPointPosition(a,h),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let o,r;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&!e.reverse)return;const h=i.setContext(this.getContext(a)),l=(0,n.a0)(h.font);if(this.getDistanceFromCenterForValue(this.ticks[a].value),h.showLabelBackdrop){t.font=l.string,t.measureText(s.label).width,t.fillStyle=h.backdropColor;const e=(0,n.E)(h.backdropPadding);t.fillRect(-r/2-e.left,-o-l.size/2-e.top,r+e.width,l.size+e.height)}(0,n.Z)(t,s.label,0,-o,l,{color:h.color,strokeColor:h.textStrokeColor,strokeWidth:h.textStrokeWidth})})),t.restore()}drawTitle(){}}const Je={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Ze=Object.keys(Je);function Ge(t,e){return t-e}function ti(t,e){if((0,n.k)(e))return null;const i=t._adapter,{parser:s,round:o,isoWeekday:r}=t._parseOpts;let a=e;return"function"===typeof s&&(a=s(a)),(0,n.g)(a)||(a="string"===typeof s?i.parse(a,s):i.parse(a)),null===a?null:(o&&(a="week"!==o||!(0,n.x)(r)&&!0!==r?i.startOf(a,o):i.startOf(a,"isoWeek",r)),+a)}function ei(t,e,i,n){const s=Ze.length;for(let o=Ze.indexOf(t);o<s-1;++o){const t=Je[Ze[o]],s=t.steps?t.steps:Number.MAX_SAFE_INTEGER;if(t.common&&Math.ceil((i-e)/(s*t.size))<=n)return Ze[o]}return Ze[s-1]}function ii(t,e,i){if(i){if(i.length){const{lo:s,hi:o}=(0,n.aP)(i,e);t[i[s]>=e?i[s]:i[o]]=!0}}else t[e]=!0}function ni(t,e,i){const n=[],s={},o=e.length;let r,a;for(r=0;r<o;++r)a=e[r],s[a]=r,n.push({value:a,major:!1});return 0!==o&&i?function(t,e,i,n){const s=t._adapter,o=+s.startOf(e[0].value,n),r=e[e.length-1].value;let a,h;for(a=o;a<=r;a=+s.add(a,1,n))h=i[a],h>=0&&(e[h].major=!0);return e}(t,n,s,i):n}class si extends Dt{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e={}){const i=t.time||(t.time={}),s=this._adapter=new E._date(t.adapters.date);s.init(e),(0,n.ab)(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:ti(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:o,minDefined:r,maxDefined:a}=this.getUserBounds();function h(t){r||isNaN(t.min)||(s=Math.min(s,t.min)),a||isNaN(t.max)||(o=Math.max(o,t.max))}r&&a||(h(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||h(this.getMinMax(!1))),s=(0,n.g)(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),o=(0,n.g)(o)&&!isNaN(o)?o:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,o-1),this.max=Math.max(s+1,o)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const o=this.min,r=this.max,a=(0,n.aO)(s,o,r);return this._unit=e.unit||(i.autoSkip?ei(e.minUnit,this.min,this.max,this._getLabelCapacity(o)):function(t,e,i,n,s){for(let o=Ze.length-1;o>=Ze.indexOf(i);o--){const i=Ze[o];if(Je[i].common&&t._adapter.diff(s,n,i)>=e-1)return i}return Ze[i?Ze.indexOf(i):0]}(this,a.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=Ze.indexOf(t)+1,i=Ze.length;e<i;++e)if(Je[Ze[e]].common)return Ze[e]}(this._unit):void 0,this.initOffsets(s),t.reverse&&a.reverse(),ni(this,a,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map((t=>+t.value)))}initOffsets(t=[]){let e,i,s=0,o=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),o=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const r=t.length<3?.5:.25;s=(0,n.S)(s,0,r),o=(0,n.S)(o,0,r),this._offsets={start:s,end:o,factor:1/(s+1+o)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,o=s.time,r=o.unit||ei(o.minUnit,e,i,this._getLabelCapacity(e)),a=(0,n.v)(s.ticks.stepSize,1),h="week"===r&&o.isoWeekday,l=(0,n.x)(h)||!0===h,c={};let d,u,f=e;if(l&&(f=+t.startOf(f,"isoWeek",h)),f=+t.startOf(f,l?"day":r),t.diff(i,e,r)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+r);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;d<i;d=+t.add(d,a,r),u++)ii(c,d,g);return d!==i&&"ticks"!==s.bounds&&1!==u||ii(c,d,g),Object.keys(c).sort(Ge).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}format(t,e){const i=this.options.time.displayFormats,n=this._unit,s=e||i[n];return this._adapter.format(t,s)}_tickFormatFunction(t,e,i,s){const o=this.options,r=o.ticks.callback;if(r)return(0,n.Q)(r,[t,e,i],this);const a=o.time.displayFormats,h=this._unit,l=this._majorUnit,c=h&&a[h],d=l&&a[l],u=i[e],f=l&&d&&u&&u.major;return this._adapter.format(t,s||(f?d:c))}generateTickLabels(t){let e,i,n;for(e=0,i=t.length;e<i;++e)n=t[e],n.label=this._tickFormatFunction(n.value,e,t)}getDecimalForValue(t){return null===t?NaN:(t-this.min)/(this.max-this.min)}getPixelForValue(t){const e=this._offsets,i=this.getDecimalForValue(t);return this.getPixelForDecimal((e.start+i)*e.factor)}getValueForPixel(t){const e=this._offsets,i=this.getDecimalForPixel(t)/e.factor-e.end;return this.min+i*(this.max-this.min)}_getLabelSize(t){const e=this.options.ticks,i=this.ctx.measureText(t).width,s=(0,n.t)(this.isHorizontal()?e.maxRotation:e.minRotation),o=Math.cos(s),r=Math.sin(s),a=this._resolveTickFontOptions(0).size;return{w:i*o+a*r,h:i*r+a*o}}_getLabelCapacity(t){const e=this.options.time,i=e.displayFormats,n=i[e.unit]||i.millisecond,s=this._tickFormatFunction(t,0,ni(this,[t],this._majorUnit),n),o=this._getLabelSize(s),r=Math.floor(this.isHorizontal()?this.width/o.w:this.height/o.h)-1;return r>0?r:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const n=this.getMatchingVisibleMetas();if(this._normalized&&n.length)return this._cache.data=n[0].controller.getAllParsedValues(this);for(t=0,e=n.length;t<e;++t)i=i.concat(n[t].controller.getAllParsedValues(this));return this._cache.data=this.normalize(i)}getLabelTimestamps(){const t=this._cache.labels||[];let e,i;if(t.length)return t;const n=this.getLabels();for(e=0,i=n.length;e<i;++e)t.push(ti(this,n[e]));return this._cache.labels=this._normalized?t:this.normalize(t)}normalize(t){return(0,n._)(t.sort(Ge))}}},50713:function(t,e,i){function n(t){return t+.5|0}i.d(e,{$:function(){return Me},A:function(){return Ft},B:function(){return zt},C:function(){return we},D:function(){return Ct},E:function(){return je},F:function(){return U},G:function(){return yi},H:function(){return ft},I:function(){return di},J:function(){return wi},K:function(){return vi},L:function(){return Yt},M:function(){return ci},N:function(){return _t},O:function(){return H},P:function(){return ht},Q:function(){return X},R:function(){return Ve},S:function(){return Lt},T:function(){return lt},U:function(){return St},V:function(){return xe},W:function(){return It},X:function(){return be},Y:function(){return ke},Z:function(){return Oe},_:function(){return Ht},a:function(){return Be},a0:function(){return We},a1:function(){return Xt},a2:function(){return Ut},a3:function(){return ce},a4:function(){return Z},a5:function(){return nt},a6:function(){return de},a7:function(){return ot},a8:function(){return Ye},a9:function(){return Ne},aA:function(){return Oi},aB:function(){return Qt},aC:function(){return Ti},aD:function(){return ve},aE:function(){return Dt},aF:function(){return z},aG:function(){return kt},aH:function(){return yt},aI:function(){return wt},aJ:function(){return bt},aK:function(){return Pt},aL:function(){return le},aM:function(){return xt},aN:function(){return me},aO:function(){return jt},aP:function(){return Rt},aa:function(){return $e},ab:function(){return G},ac:function(){return F},ad:function(){return $t},ae:function(){return _i},af:function(){return ye},ag:function(){return rt},ah:function(){return Q},ai:function(){return at},aj:function(){return Et},ak:function(){return Re},al:function(){return li},am:function(){return Ri},an:function(){return Ei},ao:function(){return Mi},ap:function(){return Si},aq:function(){return ki},ar:function(){return Se},as:function(){return Pe},at:function(){return _e},au:function(){return Te},av:function(){return ze},aw:function(){return Fe},ax:function(){return Ii},ay:function(){return Tt},az:function(){return Di},b:function(){return W},b3:function(){return ut},b4:function(){return gt},b5:function(){return pt},c:function(){return ie},d:function(){return pe},e:function(){return te},f:function(){return it},g:function(){return V},h:function(){return st},i:function(){return B},j:function(){return He},k:function(){return j},l:function(){return Bt},m:function(){return Y},n:function(){return $},o:function(){return ae},p:function(){return At},q:function(){return qt},r:function(){return Nt},s:function(){return mt},t:function(){return Mt},u:function(){return Vt},v:function(){return N},w:function(){return Kt},x:function(){return vt},y:function(){return ii},z:function(){return mi}});const s=(t,e,i)=>Math.max(Math.min(t,i),e);function o(t){return s(n(2.55*t),0,255)}function r(t){return s(n(255*t),0,255)}function a(t){return s(n(t/2.55)/100,0,1)}function h(t){return s(n(100*t),0,100)}const l={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},c=[..."0123456789ABCDEF"],d=t=>c[15&t],u=t=>c[(240&t)>>4]+c[15&t],f=t=>(240&t)>>4===(15&t);function g(t){var e=(t=>f(t.r)&&f(t.g)&&f(t.b)&&f(t.a))(t)?d:u;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const p=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function x(t,e,i){const n=e*Math.min(i,1-i),s=(e,s=(e+t/30)%12)=>i-n*Math.max(Math.min(s-3,9-s,1),-1);return[s(0),s(8),s(4)]}function m(t,e,i){const n=(n,s=(n+t/60)%6)=>i-i*e*Math.max(Math.min(s,4-s,1),0);return[n(5),n(3),n(1)]}function b(t,e,i){const n=x(t,1,.5);let s;for(e+i>1&&(s=1/(e+i),e*=s,i*=s),s=0;s<3;s++)n[s]*=1-e-i,n[s]+=e;return n}function y(t){const e=t.r/255,i=t.g/255,n=t.b/255,s=Math.max(e,i,n),o=Math.min(e,i,n),r=(s+o)/2;let a,h,l;return s!==o&&(l=s-o,h=r>.5?l/(2-s-o):l/(s+o),a=function(t,e,i,n,s){return t===s?(e-i)/n+(e<i?6:0):e===s?(i-t)/n+2:(t-e)/n+4}(e,i,n,l,s),a=60*a+.5),[0|a,h||0,r]}function _(t,e,i,n){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,n)).map(r)}function v(t,e,i){return _(x,t,e,i)}function w(t){return(t%360+360)%360}function k(t){const e=p.exec(t);let i,n=255;if(!e)return;e[5]!==i&&(n=e[6]?o(+e[5]):r(+e[5]));const s=w(+e[2]),a=+e[3]/100,h=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return _(b,t,e,i)}(s,a,h):"hsv"===e[1]?function(t,e,i){return _(m,t,e,i)}(s,a,h):v(s,a,h),{r:i[0],g:i[1],b:i[2],a:n}}const M={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},S={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let P;function C(t){P||(P=function(){const t={},e=Object.keys(S),i=Object.keys(M);let n,s,o,r,a;for(n=0;n<e.length;n++){for(r=a=e[n],s=0;s<i.length;s++)o=i[s],a=a.replace(o,M[o]);o=parseInt(S[r],16),t[a]=[o>>16&255,o>>8&255,255&o]}return t}(),P.transparent=[0,0,0,0]);const e=P[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const D=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const O=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,T=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function A(t,e,i){if(t){let n=y(t);n[e]=Math.max(0,Math.min(n[e]+n[e]*i,0===e?360:1)),n=v(n),t.r=n[0],t.g=n[1],t.b=n[2]}}function L(t,e){return t?Object.assign(e||{},t):t}function I(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=r(t[3]))):(e=L(t,{r:0,g:0,b:0,a:1})).a=r(e.a),e}function E(t){return"r"===t.charAt(0)?function(t){const e=D.exec(t);let i,n,r,a=255;if(e){if(e[7]!==i){const t=+e[7];a=e[8]?o(t):s(255*t,0,255)}return i=+e[1],n=+e[3],r=+e[5],i=255&(e[2]?o(i):s(i,0,255)),n=255&(e[4]?o(n):s(n,0,255)),r=255&(e[6]?o(r):s(r,0,255)),{r:i,g:n,b:r,a:a}}}(t):k(t)}class R{constructor(t){if(t instanceof R)return t;const e=typeof t;let i;"object"===e?i=I(t):"string"===e&&(i=function(t){var e,i=t.length;return"#"===t[0]&&(4===i||5===i?e={r:255&17*l[t[1]],g:255&17*l[t[2]],b:255&17*l[t[3]],a:5===i?17*l[t[4]]:255}:7!==i&&9!==i||(e={r:l[t[1]]<<4|l[t[2]],g:l[t[3]]<<4|l[t[4]],b:l[t[5]]<<4|l[t[6]],a:9===i?l[t[7]]<<4|l[t[8]]:255})),e}(t)||C(t)||E(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=L(this._rgb);return t&&(t.a=a(t.a)),t}set rgb(t){this._rgb=I(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${a(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?g(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=y(t),i=e[0],n=h(e[1]),s=h(e[2]);return t.a<255?`hsla(${i}, ${n}%, ${s}%, ${a(t.a)})`:`hsl(${i}, ${n}%, ${s}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,n=t.rgb;let s;const o=e===s?.5:e,r=2*o-1,a=i.a-n.a,h=((r*a===-1?r:(r+a)/(1+r*a))+1)/2;s=1-h,i.r=255&h*i.r+s*n.r+.5,i.g=255&h*i.g+s*n.g+.5,i.b=255&h*i.b+s*n.b+.5,i.a=o*i.a+(1-o)*n.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const n=T(a(t.r)),s=T(a(t.g)),o=T(a(t.b));return{r:r(O(n+i*(T(a(e.r))-n))),g:r(O(s+i*(T(a(e.g))-s))),b:r(O(o+i*(T(a(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new R(this.rgb)}alpha(t){return this._rgb.a=r(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=n(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return A(this._rgb,2,t),this}darken(t){return A(this._rgb,2,-t),this}saturate(t){return A(this._rgb,1,t),this}desaturate(t){return A(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=y(t);i[0]=w(i[0]+e),i=v(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function z(){}const F=(()=>{let t=0;return()=>t++})();function j(t){return null===t||"undefined"===typeof t}function W(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function B(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function V(t){return("number"===typeof t||t instanceof Number)&&isFinite(+t)}function H(t,e){return V(t)?t:e}function N(t,e){return"undefined"===typeof t?e:t}const Y=(t,e)=>"string"===typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,$=(t,e)=>"string"===typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function X(t,e,i){if(t&&"function"===typeof t.call)return t.apply(i,e)}function U(t,e,i,n){let s,o,r;if(W(t))if(o=t.length,n)for(s=o-1;s>=0;s--)e.call(i,t[s],s);else for(s=0;s<o;s++)e.call(i,t[s],s);else if(B(t))for(r=Object.keys(t),o=r.length,s=0;s<o;s++)e.call(i,t[r[s]],r[s])}function Q(t,e){let i,n,s,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,n=t.length;i<n;++i)if(s=t[i],o=e[i],s.datasetIndex!==o.datasetIndex||s.index!==o.index)return!1;return!0}function q(t){if(W(t))return t.map(q);if(B(t)){const e=Object.create(null),i=Object.keys(t),n=i.length;let s=0;for(;s<n;++s)e[i[s]]=q(t[i[s]]);return e}return t}function K(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function J(t,e,i,n){if(!K(t))return;const s=e[t],o=i[t];B(s)&&B(o)?Z(s,o,n):e[t]=q(o)}function Z(t,e,i){const n=W(e)?e:[e],s=n.length;if(!B(t))return t;const o=(i=i||{}).merger||J;let r;for(let a=0;a<s;++a){if(r=n[a],!B(r))continue;const e=Object.keys(r);for(let n=0,s=e.length;n<s;++n)o(e[n],t,r,i)}return t}function G(t,e){return Z(t,e,{merger:tt})}function tt(t,e,i){if(!K(t))return;const n=e[t],s=i[t];B(n)&&B(s)?G(n,s):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=q(s))}const et={"":t=>t,x:t=>t.x,y:t=>t.y};function it(t,e){const i=et[e]||(et[e]=function(t){const e=function(t){const e=t.split("."),i=[];let n="";for(const s of e)n+=s,n.endsWith("\\")?n=n.slice(0,-1)+".":(i.push(n),n="");return i}(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function nt(t){return t.charAt(0).toUpperCase()+t.slice(1)}const st=t=>"undefined"!==typeof t,ot=t=>"function"===typeof t,rt=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function at(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const ht=Math.PI,lt=2*ht,ct=lt+ht,dt=Number.POSITIVE_INFINITY,ut=ht/180,ft=ht/2,gt=ht/4,pt=2*ht/3,xt=Math.log10,mt=Math.sign;function bt(t,e,i){return Math.abs(t-e)<i}function yt(t){const e=Math.round(t);t=bt(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(xt(t))),n=t/i;return(n<=1?1:n<=2?2:n<=5?5:10)*i}function _t(t){const e=[],i=Math.sqrt(t);let n;for(n=1;n<i;n++)t%n===0&&(e.push(n),e.push(t/n));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function vt(t){return!isNaN(parseFloat(t))&&isFinite(t)}function wt(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function kt(t,e,i){let n,s,o;for(n=0,s=t.length;n<s;n++)o=t[n][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function Mt(t){return t*(ht/180)}function St(t){return t*(180/ht)}function Pt(t){if(!V(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Ct(t,e){const i=e.x-t.x,n=e.y-t.y,s=Math.sqrt(i*i+n*n);let o=Math.atan2(n,i);return o<-.5*ht&&(o+=lt),{angle:o,distance:s}}function Dt(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Ot(t,e){return(t-e+ct)%lt-ht}function Tt(t){return(t%lt+lt)%lt}function At(t,e,i,n){const s=Tt(t),o=Tt(e),r=Tt(i),a=Tt(o-s),h=Tt(r-s),l=Tt(s-o),c=Tt(s-r);return s===o||s===r||n&&o===r||a>h&&l<c}function Lt(t,e,i){return Math.max(e,Math.min(i,t))}function It(t){return Lt(t,-32768,32767)}function Et(t,e,i,n=1e-6){return t>=Math.min(e,i)-n&&t<=Math.max(e,i)+n}function Rt(t,e,i){i=i||(i=>t[i]<e);let n,s=t.length-1,o=0;for(;s-o>1;)n=o+s>>1,i(n)?o=n:s=n;return{lo:o,hi:s}}const zt=(t,e,i,n)=>Rt(t,i,n?n=>{const s=t[n][e];return s<i||s===i&&t[n+1][e]===i}:n=>t[n][e]<i),Ft=(t,e,i)=>Rt(t,i,(n=>t[n][e]>=i));function jt(t,e,i){let n=0,s=t.length;for(;n<s&&t[n]<e;)n++;for(;s>n&&t[s-1]>i;)s--;return n>0||s<t.length?t.slice(n,s):t}const Wt=["push","pop","shift","splice","unshift"];function Bt(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),Wt.forEach((e=>{const i="_onData"+nt(e),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const s=n.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"===typeof t[i]&&t[i](...e)})),s}})})))}function Vt(t,e){const i=t._chartjs;if(!i)return;const n=i.listeners,s=n.indexOf(e);-1!==s&&n.splice(s,1),n.length>0||(Wt.forEach((e=>{delete t[e]})),delete t._chartjs)}function Ht(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const Nt="undefined"===typeof window?function(t){return t()}:window.requestAnimationFrame;function Yt(t,e){let i=[],n=!1;return function(...s){i=s,n||(n=!0,Nt.call(window,(()=>{n=!1,t.apply(e,i)})))}}function $t(t,e){let i;return function(...n){return e?(clearTimeout(i),i=setTimeout(t,e,n)):t.apply(this,n),e}}const Xt=t=>"start"===t?"left":"end"===t?"right":"center",Ut=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,Qt=(t,e,i,n)=>t===(n?"left":"right")?i:"center"===t?(e+i)/2:e;function qt(t,e,i){const n=e.length;let s=0,o=n;if(t._sorted){const{iScale:r,_parsed:a}=t,h=r.axis,{min:l,max:c,minDefined:d,maxDefined:u}=r.getUserBounds();d&&(s=Lt(Math.min(zt(a,h,l).lo,i?n:zt(e,h,r.getPixelForValue(l)).lo),0,n-1)),o=u?Lt(Math.max(zt(a,r.axis,c,!0).hi+1,i?0:zt(e,h,r.getPixelForValue(c),!0).hi+1),s,n)-s:n-s}return{start:s,count:o}}function Kt(t){const{xScale:e,yScale:i,_scaleRanges:n}=t,s={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!n)return t._scaleRanges=s,!0;const o=n.xmin!==e.min||n.xmax!==e.max||n.ymin!==i.min||n.ymax!==i.max;return Object.assign(n,s),o}const Jt=t=>0===t||1===t,Zt=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*lt/i),Gt=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*lt/i)+1,te={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*ft),easeOutSine:t=>Math.sin(t*ft),easeInOutSine:t=>-.5*(Math.cos(ht*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>Jt(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Jt(t)?t:Zt(t,.075,.3),easeOutElastic:t=>Jt(t)?t:Gt(t,.075,.3),easeInOutElastic(t){const e=.1125;return Jt(t)?t:t<.5?.5*Zt(2*t,e,.45):.5+.5*Gt(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-te.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*te.easeInBounce(2*t):.5*te.easeOutBounce(2*t-1)+.5};function ee(t){if(t&&"object"===typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function ie(t){return ee(t)?t:new R(t)}function ne(t){return ee(t)?t:new R(t).saturate(.5).darken(.1).hexString()}const se=["x","y","borderWidth","radius","tension"],oe=["color","borderColor","backgroundColor"];const re=new Map;function ae(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let n=re.get(i);return n||(n=new Intl.NumberFormat(t,e),re.set(i,n)),n}(e,i).format(t)}const he={values(t){return W(t)?t:""+t},numeric(t,e,i){if(0===t)return"0";const n=this.chart.options.locale;let s,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(s="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const r=xt(Math.abs(o)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),h={notation:s,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(h,this.options.ticks.format),ae(t,n,h)},logarithmic(t,e,i){if(0===t)return"0";const n=i[e].significand||t/Math.pow(10,Math.floor(xt(t)));return[1,2,3,5,10,15].includes(n)||e>.8*i.length?he.numeric.call(this,t,e,i):""}};var le={formatters:he};const ce=Object.create(null),de=Object.create(null);function ue(t,e){if(!e)return t;const i=e.split(".");for(let n=0,s=i.length;n<s;++n){const e=i[n];t=t[e]||(t[e]=Object.create(null))}return t}function fe(t,e,i){return"string"===typeof e?Z(ue(t,e),i):Z(ue(t,""),e)}class ge{constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=t=>t.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>ne(e.backgroundColor),this.hoverBorderColor=(t,e)=>ne(e.borderColor),this.hoverColor=(t,e)=>ne(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return fe(this,t,e)}get(t){return ue(this,t)}describe(t,e){return fe(de,t,e)}override(t,e){return fe(ce,t,e)}route(t,e,i,n){const s=ue(this,t),o=ue(this,i),r="_"+e;Object.defineProperties(s,{[r]:{value:s[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[r],e=o[n];return B(t)?Object.assign({},e,t):N(t,e)},set(t){this[r]=t}}})}apply(t){t.forEach((t=>t(this)))}}var pe=new ge({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),t.set("animations",{colors:{type:"color",properties:oe},numbers:{type:"number",properties:se}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}})},function(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:le.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t&&"dash"!==t}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t})}]);function xe(t,e,i,n,s){let o=e[s];return o||(o=e[s]=t.measureText(s).width,i.push(s)),o>n&&(n=o),n}function me(t,e,i,n){let s=(n=n||{}).data=n.data||{},o=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(s=n.data={},o=n.garbageCollect=[],n.font=e),t.save(),t.font=e;let r=0;const a=i.length;let h,l,c,d,u;for(h=0;h<a;h++)if(d=i[h],void 0===d||null===d||W(d)){if(W(d))for(l=0,c=d.length;l<c;l++)u=d[l],void 0===u||null===u||W(u)||(r=xe(t,s,o,r,u))}else r=xe(t,s,o,r,d);t.restore();const f=o.length/2;if(f>i.length){for(h=0;h<f;h++)delete s[o[h]];o.splice(0,f)}return r}function be(t,e,i){const n=t.currentDevicePixelRatio,s=0!==i?Math.max(i/2,.5):0;return Math.round((e-s)*n)/n+s}function ye(t,e){(e=e||t.getContext("2d")).save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore()}function _e(t,e,i,n){ve(t,e,i,n,null)}function ve(t,e,i,n,s){let o,r,a,h,l,c,d,u;const f=e.pointStyle,g=e.rotation,p=e.radius;let x=(g||0)*ut;if(f&&"object"===typeof f&&(o=f.toString(),"[object HTMLImageElement]"===o||"[object HTMLCanvasElement]"===o))return t.save(),t.translate(i,n),t.rotate(x),t.drawImage(f,-f.width/2,-f.height/2,f.width,f.height),void t.restore();if(!(isNaN(p)||p<=0)){switch(t.beginPath(),f){default:s?t.ellipse(i,n,s/2,p,0,0,lt):t.arc(i,n,p,0,lt),t.closePath();break;case"triangle":c=s?s/2:p,t.moveTo(i+Math.sin(x)*c,n-Math.cos(x)*p),x+=pt,t.lineTo(i+Math.sin(x)*c,n-Math.cos(x)*p),x+=pt,t.lineTo(i+Math.sin(x)*c,n-Math.cos(x)*p),t.closePath();break;case"rectRounded":l=.516*p,h=p-l,r=Math.cos(x+gt)*h,d=Math.cos(x+gt)*(s?s/2-l:h),a=Math.sin(x+gt)*h,u=Math.sin(x+gt)*(s?s/2-l:h),t.arc(i-d,n-a,l,x-ht,x-ft),t.arc(i+u,n-r,l,x-ft,x),t.arc(i+d,n+a,l,x,x+ft),t.arc(i-u,n+r,l,x+ft,x+ht),t.closePath();break;case"rect":if(!g){h=Math.SQRT1_2*p,c=s?s/2:h,t.rect(i-c,n-h,2*c,2*h);break}x+=gt;case"rectRot":d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+u,n-r),t.lineTo(i+d,n+a),t.lineTo(i-u,n+r),t.closePath();break;case"crossRot":x+=gt;case"cross":d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+d,n+a),t.moveTo(i+u,n-r),t.lineTo(i-u,n+r);break;case"star":d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+d,n+a),t.moveTo(i+u,n-r),t.lineTo(i-u,n+r),x+=gt,d=Math.cos(x)*(s?s/2:p),r=Math.cos(x)*p,a=Math.sin(x)*p,u=Math.sin(x)*(s?s/2:p),t.moveTo(i-d,n-a),t.lineTo(i+d,n+a),t.moveTo(i+u,n-r),t.lineTo(i-u,n+r);break;case"line":r=s?s/2:Math.cos(x)*p,a=Math.sin(x)*p,t.moveTo(i-r,n-a),t.lineTo(i+r,n+a);break;case"dash":t.moveTo(i,n),t.lineTo(i+Math.cos(x)*(s?s/2:p),n+Math.sin(x)*p);break;case!1:t.closePath()}t.fill(),e.borderWidth>0&&t.stroke()}}function we(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.x<e.right+i&&t.y>e.top-i&&t.y<e.bottom+i}function ke(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()}function Me(t){t.restore()}function Se(t,e,i,n,s){if(!e)return t.lineTo(i.x,i.y);if("middle"===s){const n=(e.x+i.x)/2;t.lineTo(n,e.y),t.lineTo(n,i.y)}else"after"===s!==!!n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y);t.lineTo(i.x,i.y)}function Pe(t,e,i,n){if(!e)return t.lineTo(i.x,i.y);t.bezierCurveTo(n?e.cp1x:e.cp2x,n?e.cp1y:e.cp2y,n?i.cp2x:i.cp1x,n?i.cp2y:i.cp1y,i.x,i.y)}function Ce(t,e,i,n,s){if(s.strikethrough||s.underline){const o=t.measureText(n),r=e-o.actualBoundingBoxLeft,a=e+o.actualBoundingBoxRight,h=i-o.actualBoundingBoxAscent,l=i+o.actualBoundingBoxDescent,c=s.strikethrough?(h+l)/2:l;t.strokeStyle=t.fillStyle,t.beginPath(),t.lineWidth=s.decorationWidth||2,t.moveTo(r,c),t.lineTo(a,c),t.stroke()}}function De(t,e){const i=t.fillStyle;t.fillStyle=e.color,t.fillRect(e.left,e.top,e.width,e.height),t.fillStyle=i}function Oe(t,e,i,n,s,o={}){const r=W(e)?e:[e],a=o.strokeWidth>0&&""!==o.strokeColor;let h,l;for(t.save(),t.font=s.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]),j(e.rotation)||t.rotate(e.rotation),e.color&&(t.fillStyle=e.color),e.textAlign&&(t.textAlign=e.textAlign),e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,o),h=0;h<r.length;++h)l=r[h],o.backdrop&&De(t,o.backdrop),a&&(o.strokeColor&&(t.strokeStyle=o.strokeColor),j(o.strokeWidth)||(t.lineWidth=o.strokeWidth),t.strokeText(l,i,n,o.maxWidth)),t.fillText(l,i,n,o.maxWidth),Ce(t,i,n,l,o),n+=Number(s.lineHeight);t.restore()}function Te(t,e){const{x:i,y:n,w:s,h:o,radius:r}=e;t.arc(i+r.topLeft,n+r.topLeft,r.topLeft,-ft,ht,!0),t.lineTo(i,n+o-r.bottomLeft),t.arc(i+r.bottomLeft,n+o-r.bottomLeft,r.bottomLeft,ht,ft,!0),t.lineTo(i+s-r.bottomRight,n+o),t.arc(i+s-r.bottomRight,n+o-r.bottomRight,r.bottomRight,ft,0,!0),t.lineTo(i+s,n+r.topRight),t.arc(i+s-r.topRight,n+r.topRight,r.topRight,0,-ft,!0),t.lineTo(i+r.topLeft,n)}const Ae=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,Le=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function Ie(t,e){const i=(""+t).match(Ae);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}const Ee=t=>+t||0;function Re(t,e){const i={},n=B(e),s=n?Object.keys(e):e,o=B(t)?n?i=>N(t[i],t[e[i]]):e=>t[e]:()=>t;for(const r of s)i[r]=Ee(o(r));return i}function ze(t){return Re(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Fe(t){return Re(t,["topLeft","topRight","bottomLeft","bottomRight"])}function je(t){const e=ze(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function We(t,e){t=t||{},e=e||pe.font;let i=N(t.size,e.size);"string"===typeof i&&(i=parseInt(i,10));let n=N(t.style,e.style);n&&!(""+n).match(Le)&&(console.warn('Invalid font style specified: "'+n+'"'),n=void 0);const s={family:N(t.family,e.family),lineHeight:Ie(N(t.lineHeight,e.lineHeight),i),size:i,style:n,weight:N(t.weight,e.weight),string:""};return s.string=function(t){return!t||j(t.size)||j(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(s),s}function Be(t,e,i,n){let s,o,r,a=!0;for(s=0,o=t.length;s<o;++s)if(r=t[s],void 0!==r&&(void 0!==e&&"function"===typeof r&&(r=r(e),a=!1),void 0!==i&&W(r)&&(r=r[i%r.length],a=!1),void 0!==r))return n&&!a&&(n.cacheable=!1),r}function Ve(t,e,i){const{min:n,max:s}=t,o=$(e,(s-n)/2),r=(t,e)=>i&&0===t?0:t+e;return{min:r(n,-Math.abs(o)),max:r(s,o)}}function He(t,e){return Object.assign(Object.create(t),e)}function Ne(t,e=[""],i,n,s=(()=>t[0])){const o=i||t;"undefined"===typeof n&&(n=ti("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:o,_fallback:n,_getTarget:s,override:i=>Ne([i,...t],e,o,n)};return new Proxy(r,{deleteProperty(e,i){return delete e[i],delete e._keys,delete t[0][i],!0},get(i,n){return Qe(i,n,(()=>function(t,e,i,n){let s;for(const o of e)if(s=ti(Xe(o,t),i),"undefined"!==typeof s)return Ue(t,s)?Ze(i,n,t,s):s}(n,e,t,i)))},getOwnPropertyDescriptor(t,e){return Reflect.getOwnPropertyDescriptor(t._scopes[0],e)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(t,e){return ei(t).includes(e)},ownKeys(t){return ei(t)},set(t,e,i){const n=t._storage||(t._storage=s());return t[e]=n[e]=i,delete t._keys,!0}})}function Ye(t,e,i,n){const s={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:$e(t,n),setContext:e=>Ye(t,e,i,n),override:s=>Ye(t.override(s),e,i,n)};return new Proxy(s,{deleteProperty(e,i){return delete e[i],delete t[i],!0},get(t,e,i){return Qe(t,e,(()=>function(t,e,i){const{_proxy:n,_context:s,_subProxy:o,_descriptors:r}=t;let a=n[e];ot(a)&&r.isScriptable(e)&&(a=function(t,e,i,n){const{_proxy:s,_context:o,_subProxy:r,_stack:a}=i;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let h=e(o,r||n);a.delete(t),Ue(t,h)&&(h=Ze(s._scopes,s,t,h));return h}(e,a,t,i));W(a)&&a.length&&(a=function(t,e,i,n){const{_proxy:s,_context:o,_subProxy:r,_descriptors:a}=i;if("undefined"!==typeof o.index&&n(t))return e[o.index%e.length];if(B(e[0])){const i=e,n=s._scopes.filter((t=>t!==i));e=[];for(const h of i){const i=Ze(n,s,t,h);e.push(Ye(i,o,r&&r[t],a))}}return e}(e,a,t,r.isIndexable));Ue(e,a)&&(a=Ye(a,s,o&&o[e],r));return a}(t,e,i)))},getOwnPropertyDescriptor(e,i){return e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(e,i){return Reflect.has(t,i)},ownKeys(){return Reflect.ownKeys(t)},set(e,i,n){return t[i]=n,delete e[i],!0}})}function $e(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:n=e.indexable,_allKeys:s=e.allKeys}=t;return{allKeys:s,scriptable:i,indexable:n,isScriptable:ot(i)?i:()=>i,isIndexable:ot(n)?n:()=>n}}const Xe=(t,e)=>t?t+nt(e):e,Ue=(t,e)=>B(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function Qe(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const n=i();return t[e]=n,n}function qe(t,e,i){return ot(t)?t(e,i):t}const Ke=(t,e)=>!0===t?e:"string"===typeof t?it(e,t):void 0;function Je(t,e,i,n,s){for(const o of e){const e=Ke(i,o);if(e){t.add(e);const o=qe(e._fallback,i,s);if("undefined"!==typeof o&&o!==i&&o!==n)return o}else if(!1===e&&"undefined"!==typeof n&&i!==n)return null}return!1}function Ze(t,e,i,n){const s=e._rootScopes,o=qe(e._fallback,i,n),r=[...t,...s],a=new Set;a.add(n);let h=Ge(a,r,i,o||i,n);return null!==h&&(("undefined"===typeof o||o===i||(h=Ge(a,r,o,h,n),null!==h))&&Ne(Array.from(a),[""],s,o,(()=>function(t,e,i){const n=t._getTarget();e in n||(n[e]={});const s=n[e];if(W(s)&&B(i))return i;return s||{}}(e,i,n))))}function Ge(t,e,i,n,s){for(;i;)i=Je(t,e,i,n,s);return i}function ti(t,e){for(const i of e){if(!i)continue;const e=i[t];if("undefined"!==typeof e)return e}}function ei(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function ii(t,e,i,n){const{iScale:s}=t,{key:o="r"}=this._parsing,r=new Array(n);let a,h,l,c;for(a=0,h=n;a<h;++a)l=a+i,c=e[l],r[a]={r:s.parse(it(c,o),l)};return r}const ni=Number.EPSILON||1e-14,si=(t,e)=>e<t.length&&!t[e].skip&&t[e],oi=t=>"x"===t?"y":"x";function ri(t,e,i,n){const s=t.skip?e:t,o=e,r=i.skip?e:i,a=Dt(o,s),h=Dt(r,o);let l=a/(a+h),c=h/(a+h);l=isNaN(l)?0:l,c=isNaN(c)?0:c;const d=n*l,u=n*c;return{previous:{x:o.x-d*(r.x-s.x),y:o.y-d*(r.y-s.y)},next:{x:o.x+u*(r.x-s.x),y:o.y+u*(r.y-s.y)}}}function ai(t,e="x"){const i=oi(e),n=t.length,s=Array(n).fill(0),o=Array(n);let r,a,h,l=si(t,0);for(r=0;r<n;++r)if(a=h,h=l,l=si(t,r+1),h){if(l){const t=l[e]-h[e];s[r]=0!==t?(l[i]-h[i])/t:0}o[r]=a?l?mt(s[r-1])!==mt(s[r])?0:(s[r-1]+s[r])/2:s[r-1]:s[r]}!function(t,e,i){const n=t.length;let s,o,r,a,h,l=si(t,0);for(let c=0;c<n-1;++c)h=l,l=si(t,c+1),h&&l&&(bt(e[c],0,ni)?i[c]=i[c+1]=0:(s=i[c]/e[c],o=i[c+1]/e[c],a=Math.pow(s,2)+Math.pow(o,2),a<=9||(r=3/Math.sqrt(a),i[c]=s*r*e[c],i[c+1]=o*r*e[c])))}(t,s,o),function(t,e,i="x"){const n=oi(i),s=t.length;let o,r,a,h=si(t,0);for(let l=0;l<s;++l){if(r=a,a=h,h=si(t,l+1),!a)continue;const s=a[i],c=a[n];r&&(o=(s-r[i])/3,a[`cp1${i}`]=s-o,a[`cp1${n}`]=c-o*e[l]),h&&(o=(h[i]-s)/3,a[`cp2${i}`]=s+o,a[`cp2${n}`]=c+o*e[l])}}(t,o,e)}function hi(t,e,i){return Math.max(Math.min(t,i),e)}function li(t,e,i,n,s){let o,r,a,h;if(e.spanGaps&&(t=t.filter((t=>!t.skip))),"monotone"===e.cubicInterpolationMode)ai(t,s);else{let i=n?t[t.length-1]:t[0];for(o=0,r=t.length;o<r;++o)a=t[o],h=ri(i,a,t[Math.min(o+1,r-(n?0:1))%r],e.tension),a.cp1x=h.previous.x,a.cp1y=h.previous.y,a.cp2x=h.next.x,a.cp2y=h.next.y,i=a}e.capBezierPoints&&function(t,e){let i,n,s,o,r,a=we(t[0],e);for(i=0,n=t.length;i<n;++i)r=o,o=a,a=i<n-1&&we(t[i+1],e),o&&(s=t[i],r&&(s.cp1x=hi(s.cp1x,e.left,e.right),s.cp1y=hi(s.cp1y,e.top,e.bottom)),a&&(s.cp2x=hi(s.cp2x,e.left,e.right),s.cp2y=hi(s.cp2y,e.top,e.bottom)))}(t,i)}function ci(){return"undefined"!==typeof window&&"undefined"!==typeof document}function di(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function ui(t,e,i){let n;return"string"===typeof t?(n=parseInt(t,10),-1!==t.indexOf("%")&&(n=n/100*e.parentNode[i])):n=t,n}const fi=t=>t.ownerDocument.defaultView.getComputedStyle(t,null);const gi=["top","right","bottom","left"];function pi(t,e,i){const n={};i=i?"-"+i:"";for(let s=0;s<4;s++){const o=gi[s];n[o]=parseFloat(t[e+"-"+o+i])||0}return n.width=n.left+n.right,n.height=n.top+n.bottom,n}const xi=(t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot);function mi(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:n}=e,s=fi(i),o="border-box"===s.boxSizing,r=pi(s,"padding"),a=pi(s,"border","width"),{x:h,y:l,box:c}=function(t,e){const i=t.touches,n=i&&i.length?i[0]:t,{offsetX:s,offsetY:o}=n;let r,a,h=!1;if(xi(s,o,t.target))r=s,a=o;else{const t=e.getBoundingClientRect();r=n.clientX-t.left,a=n.clientY-t.top,h=!0}return{x:r,y:a,box:h}}(t,i),d=r.left+(c&&a.left),u=r.top+(c&&a.top);let{width:f,height:g}=e;return o&&(f-=r.width+a.width,g-=r.height+a.height),{x:Math.round((h-d)/f*i.width/n),y:Math.round((l-u)/g*i.height/n)}}const bi=t=>Math.round(10*t)/10;function yi(t,e,i,n){const s=fi(t),o=pi(s,"margin"),r=ui(s.maxWidth,t,"clientWidth")||dt,a=ui(s.maxHeight,t,"clientHeight")||dt,h=function(t,e,i){let n,s;if(void 0===e||void 0===i){const o=di(t);if(o){const t=o.getBoundingClientRect(),r=fi(o),a=pi(r,"border","width"),h=pi(r,"padding");e=t.width-h.width-a.width,i=t.height-h.height-a.height,n=ui(r.maxWidth,o,"clientWidth"),s=ui(r.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:n||dt,maxHeight:s||dt}}(t,e,i);let{width:l,height:c}=h;if("content-box"===s.boxSizing){const t=pi(s,"border","width"),e=pi(s,"padding");l-=e.width+t.width,c-=e.height+t.height}l=Math.max(0,l-o.width),c=Math.max(0,n?l/n:c-o.height),l=bi(Math.min(l,r,h.maxWidth)),c=bi(Math.min(c,a,h.maxHeight)),l&&!c&&(c=bi(l/2));return(void 0!==e||void 0!==i)&&n&&h.height&&c>h.height&&(c=h.height,l=bi(Math.floor(c*n))),{width:l,height:c}}function _i(t,e,i){const n=e||1,s=Math.floor(t.height*n),o=Math.floor(t.width*n);t.height=Math.floor(t.height),t.width=Math.floor(t.width);const r=t.canvas;return r.style&&(i||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==n||r.height!==s||r.width!==o)&&(t.currentDevicePixelRatio=n,r.height=s,r.width=o,t.ctx.setTransform(n,0,0,n,0,0),!0)}const vi=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){}return t}();function wi(t,e){const i=function(t,e){return fi(t).getPropertyValue(e)}(t,e),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?+n[1]:void 0}function ki(t,e,i,n){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function Mi(t,e,i,n){return{x:t.x+i*(e.x-t.x),y:"middle"===n?i<.5?t.y:e.y:"after"===n?i<1?t.y:e.y:i>0?e.y:t.y}}function Si(t,e,i,n){const s={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},r=ki(t,s,i),a=ki(s,o,i),h=ki(o,e,i),l=ki(r,a,i),c=ki(a,h,i);return ki(l,c,i)}const Pi=function(t,e){return{x(i){return t+t+e-i},setWidth(t){e=t},textAlign(t){return"center"===t?t:"right"===t?"left":"right"},xPlus(t,e){return t-e},leftForLtr(t,e){return t-e}}},Ci=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Di(t,e,i){return t?Pi(e,i):Ci()}function Oi(t,e){let i,n;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,n=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=n)}function Ti(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Ai(t){return"angle"===t?{between:At,compare:Ot,normalize:Tt}:{between:Et,compare:(t,e)=>t-e,normalize:t=>t}}function Li({start:t,end:e,count:i,loop:n,style:s}){return{start:t%i,end:e%i,loop:n&&(e-t+1)%i===0,style:s}}function Ii(t,e,i){if(!i)return[t];const{property:n,start:s,end:o}=i,r=e.length,{compare:a,between:h,normalize:l}=Ai(n),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:n,start:s,end:o}=i,{between:r,normalize:a}=Ai(n),h=e.length;let l,c,{start:d,end:u,loop:f}=t;if(f){for(d+=h,u+=h,l=0,c=h;l<c&&r(a(e[d%h][n]),s,o);++l)d--,u--;d%=h,u%=h}return u<d&&(u+=h),{start:d,end:u,loop:f,style:t.style}}(t,e,i),g=[];let p,x,m,b=!1,y=null;const _=()=>b||h(s,m,p)&&0!==a(s,m),v=()=>!b||0===a(o,p)||h(o,m,p);for(let w=c,k=c;w<=d;++w)x=e[w%r],x.skip||(p=l(x[n]),p!==m&&(b=h(p,s,o),null===y&&_()&&(y=0===a(p,s)?w:k),null!==y&&v()&&(g.push(Li({start:y,end:w,loop:u,count:r,style:f})),y=null),k=w,m=p));return null!==y&&g.push(Li({start:y,end:d,loop:u,count:r,style:f})),g}function Ei(t,e){const i=[],n=t.segments;for(let s=0;s<n.length;s++){const o=Ii(n[s],t.points,e);o.length&&i.push(...o)}return i}function Ri(t,e){const i=t.points,n=t.options.spanGaps,s=i.length;if(!s)return[];const o=!!t._loop,{start:r,end:a}=function(t,e,i,n){let s=0,o=e-1;if(i&&!n)for(;s<e&&!t[s].skip;)s++;for(;s<e&&t[s].skip;)s++;for(s%=e,i&&(o+=s);o>s&&t[o%e].skip;)o--;return o%=e,{start:s,end:o}}(i,s,o,n);if(!0===n)return zi(t,[{start:r,end:a,loop:o}],i,e);return zi(t,function(t,e,i,n){const s=t.length,o=[];let r,a=e,h=t[e];for(r=e+1;r<=i;++r){const i=t[r%s];i.skip||i.stop?h.skip||(n=!1,o.push({start:e%s,end:(r-1)%s,loop:n}),e=a=i.stop?r:null):(a=r,h.skip&&(e=r)),h=i}return null!==a&&o.push({start:e%s,end:a%s,loop:n}),o}(i,r,a<r?a+s:a,!!t._fullLoop&&0===r&&a===s-1),i,e)}function zi(t,e,i,n){return n&&n.setContext&&i?function(t,e,i,n){const s=t._chart.getContext(),o=Fi(t.options),{_datasetIndex:r,options:{spanGaps:a}}=t,h=i.length,l=[];let c=o,d=e[0].start,u=d;function f(t,e,n,s){const o=a?-1:1;if(t!==e){for(t+=h;i[t%h].skip;)t-=o;for(;i[e%h].skip;)e+=o;t%h!==e%h&&(l.push({start:t%h,end:e%h,loop:n,style:s}),c=s,d=e%h)}}for(const g of e){d=a?d:g.start;let t,e=i[d%h];for(u=d+1;u<=g.end;u++){const o=i[u%h];t=Fi(n.setContext(He(s,{type:"segment",p0:e,p1:o,p0DataIndex:(u-1)%h,p1DataIndex:u%h,datasetIndex:r}))),ji(t,c)&&f(d,u-1,g.loop,c),e=o,c=t}d<u-1&&f(d,u-1,g.loop,c)}return l}(t,e,i,n):e}function Fi(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,borderWidth:t.borderWidth,borderColor:t.borderColor}}function ji(t,e){if(!e)return!1;const i=[],n=function(t,e){return ee(e)?(i.includes(e)||i.push(e),i.indexOf(e)):e};return JSON.stringify(t,n)!==JSON.stringify(e,n)}},26495:function(t,e,i){i.d(e,{$Q:function(){return f},kL:function(){return d}});var n=i(67294),s=i(23148);const o="label";function r(t,e){"function"===typeof t?t(e):t&&(t.current=e)}function a(t,e){t.labels=e}function h(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o;const n=[];t.datasets=e.map((e=>{const s=t.datasets.find((t=>t[i]===e[i]));return s&&e.data&&!n.includes(s)?(n.push(s),Object.assign(s,e),s):{...e}}))}function l(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;const i={labels:[],datasets:[]};return a(i,t.labels),h(i,t.datasets,e),i}function c(t,e){const{height:i=150,width:o=300,redraw:c=!1,datasetIdKey:d,type:u,data:f,options:g,plugins:p=[],fallbackContent:x,updateMode:m,...b}=t,y=(0,n.useRef)(null),_=(0,n.useRef)(),v=()=>{y.current&&(_.current=new s.kL(y.current,{type:u,data:l(f,d),options:g&&{...g},plugins:p}),r(e,_.current))},w=()=>{r(e,null),_.current&&(_.current.destroy(),_.current=null)};return(0,n.useEffect)((()=>{!c&&_.current&&g&&function(t,e){const i=t.options;i&&e&&Object.assign(i,e)}(_.current,g)}),[c,g]),(0,n.useEffect)((()=>{!c&&_.current&&a(_.current.config.data,f.labels)}),[c,f.labels]),(0,n.useEffect)((()=>{!c&&_.current&&f.datasets&&h(_.current.config.data,f.datasets,d)}),[c,f.datasets]),(0,n.useEffect)((()=>{_.current&&(c?(w(),setTimeout(v)):_.current.update(m))}),[c,g,f.labels,f.datasets,m]),(0,n.useEffect)((()=>{_.current&&(w(),setTimeout(v))}),[u]),(0,n.useEffect)((()=>(v(),()=>w())),[]),n.createElement("canvas",Object.assign({ref:y,role:"img",height:i,width:o},b),x)}const d=(0,n.forwardRef)(c);function u(t,e){return s.kL.register(e),(0,n.forwardRef)(((e,i)=>n.createElement(d,Object.assign({},e,{ref:i,type:t}))))}const f=u("bar",s.vn)}}]); \ No newline at end of file
diff --git a/web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js.LICENSE.txt b/web/gui/v2/514.af9132e943f111b25f1c.chunk.js.LICENSE.txt
index 41d9f2b3..8ea02822 100644
--- a/web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js.LICENSE.txt
+++ b/web/gui/v2/514.af9132e943f111b25f1c.chunk.js.LICENSE.txt
@@ -6,7 +6,7 @@
*/
/*!
- * Chart.js v4.3.0
+ * Chart.js v4.3.3
* https://www.chartjs.org
* (c) 2023 Chart.js Contributors
* Released under the MIT License
diff --git a/web/gui/v2/533.bf2c24b99df0c8f8a234.chunk.js b/web/gui/v2/533.7791da896bd0af46ae45.chunk.js
index 1712f00f..f6c354bf 100644
--- a/web/gui/v2/533.bf2c24b99df0c8f8a234.chunk.js
+++ b/web/gui/v2/533.7791da896bd0af46ae45.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="725dc729-ffc2-4814-a0fa-575427345a15",e._sentryDebugIdIdentifier="sentry-dbid-725dc729-ffc2-4814-a0fa-575427345a15")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[533],{35533:function(e,t,a){a.r(t),a.d(t,{default:function(){return j}});var n=a(67294),l=a(15557),r=a(54227),o=a(12008),d=a(91268),i=a(78266),c=a(45987),s=(a(74916),a(64765),a(89250)),u=a(12599),m=a(17563),f=["alertId"],g=a(22648),E=a(37518),p=a(92253),h=a(80854),b=a(17208),w=a(39840),y=a(95248),x=a(97945),I=a(60677),v=(0,I.default)(l.Flex).attrs({alignItems:"center"}).withConfig({displayName:"styled__StyledButtonContainer",componentId:"sc-1glv09p-0"})(["position:sticky;bottom:0;"]),C=function(e){var t=e.disabled,a=e.nodeId,r=e.alertId,o=e.context,d=e.lastStatusChange,i=e.onClose,c=e.isLoading,u=e.small,m=void 0!==u&&u,f=e.testid,g=void 0===f?"alertDetailsModal":f,E=(0,s.s0)(),p=(0,x.m3)(a),h=(0,n.useCallback)((function(){i&&i(),r?E(p,{state:{alertId:r}}):E(p)}),[p,r]),b=(0,y.TQ)(),w=(0,n.useCallback)((function(){var e=1e3*d;b({highlight:{after:e-6e4,before:e},correlation:!0}),h()}),[d,o,h,r]);return n.createElement(v,{justifyContent:"end",gap:2},n.createElement(l.Flex,{gap:2,justifyContent:"end"},n.createElement(l.Button,{small:m,label:"Run correlations",onClick:w,flavour:"hollow",isLoading:c,width:m?"112px":"170px","data-testid":"".concat(g,"-runCorrelations-button"),"data-ga":"alert-modal::click-run-correlations::alerts-view"}),n.createElement(l.Button,{small:m,label:"Go to chart",onClick:h,isLoading:c,disabled:c||t,width:m?"112px":"150px","data-testid":"".concat(g,"-goToNode-button"),"data-ga":"alert-modal::click-goto-chart::alerts-view"})))},k=(0,n.memo)(C),L=a(29876),S=a(20686),_=function(e){var t=e.alertId,a=e.context,r=e.name,o=e.nodeId,d=e.status,i=e.lastStatusChange,c=e.fullyLoaded,s=(0,g.m)(),u=s?l.H4:l.H0;return n.createElement(l.Flex,{column:!0,gap:4},n.createElement(l.Flex,{justifyContent:"between"},n.createElement(l.Flex,{alignItems:"center",gap:2},n.createElement(S.Z,{margin:s?null:[.5,0,0],type:"".concat(d,"AlertsTable"),"data-testid":"alertView-statusPill"},d),n.createElement(u,{"data-testid":"alertView-alertName"},r)),!1),n.createElement(l.Flex,{justifyContent:"between",alignItems:"center"},n.createElement(L.Z,{alertId:t}),c&&!s&&n.createElement(k,{lastStatusChange:i,alertId:t,context:a,name:r,nodeId:o,small:!0,testid:"alertView"})))},B=a(46189),F=I.default.img.withConfig({displayName:"sc-404__Illustration",componentId:"sc-4w81fg-0"})(["height:35%;width:35%;"]),V=I.default.div.withConfig({displayName:"sc-404__ButtonContainer",componentId:"sc-4w81fg-1"})(["margin:",";"],(0,l.getSizeBy)(4)),T=function(){var e="".concat(B.Z.assetsBaseURL,"/img/no-nodes-room.svg");return n.createElement(l.Flex,{column:!0,alignItems:"center",justifyItems:"center",justifyContent:"center",height:"100%",width:"100%",padding:[0,0,"10%"]},n.createElement(F,{src:e,alt:"Unreachable alert",title:"Unreachable alert"}),n.createElement(l.H3,null,"We couldn't find the alert"),n.createElement(l.Text,null,"This can be a temporary problem of that specific alert."),n.createElement(V,null,n.createElement(l.Button,{label:"Retry",icon:"reload"})))},Z=a(50709),R=function(e){var t=e.children;return n.createElement(l.Flex,{background:"modalHeaderBackground",height:12,flex:!1,gap:4,padding:[0,2,0,4],alignItems:"center"},n.createElement(l.Icon,{name:"logo_s",color:"success",width:"23px"}),t)},N=function(e){var t=e.alertId,a=(0,E.Hm)("name"),r=(0,o.E5)(t),d=r.fullyLoaded,c=void 0!==d&&d,s=r.fullyLoading,u=void 0===s||s,m=r.info,f=r.units,y=r.lastStatusChangeValue,x=r.lastStatusChange,I=r.context,v=r.instance,C=r.name,k=r.nodeId,L=r.status,S=r.lastUpdated,B=r.value;(0,o.yx)(t);var F=(0,w.pK)(B,f),V=(0,w.pK)(y,f),N=(0,g.m)();return n.createElement(l.Flex,{column:!0,width:N?"100%":{max:280},padding:N?null:[0,0,10],background:N?"modalBackground":null},N&&n.createElement(R,null,n.createElement(l.Flex,{column:!0},n.createElement(l.H6,{color:"textLite"},"ROOM"),n.createElement(l.Text,{"data-testid":"alertView-mobile-roomName"},a))),n.createElement(l.Flex,{column:!0,padding:N?[3]:[0],overflow:N?"auto":"visible",gap:3},n.createElement(_,{alertId:t,context:I,status:L,name:C,nodeId:k,lastStatusChange:x,fullyLoaded:c}),c?null:u?n.createElement(i.Z,{title:"Loading alert..."}):n.createElement(T,null),c&&m&&n.createElement(n.Fragment,null,n.createElement(h.Z,{iconName:"documentation"},"Alert Description"),n.createElement(l.Text,{"data-testid":"alertView-info"},m),n.createElement(Z.Z,{alertId:t})),c&&n.createElement(p.Z,{id:t,context:I,instance:v,formattedLastValue:F,formattedLastStatusChangeValue:V,lastStatusChange:x,lastUpdated:S,isFormattedValueLoaded:c,nodeId:k,status:L,testid:"alertView"}),c&&n.createElement(b.Z,{id:t,testid:"alertView"})),N&&n.createElement(l.Box,{position:"sticky",padding:[4],background:"modalBackground",bottom:0,border:{side:"top",color:"tabsBorder"}},n.createElement(l.TextSmall,null,"In order to ",n.createElement(l.TextSmall,{strong:!0},"Run Correlations")," or"," ",n.createElement(l.TextSmall,{strong:!0},"View the Chart")," you will have to visit this alert from its\u2019 dedicated page on a desktop device.")))},H=function(e){var t=e.children;return(0,g.m)()?n.createElement(l.Layer,{full:!0},n.createElement(l.Flex,{width:"100%",background:"mainBackground","data-testid":"alertView-mobileContainer"},t)):t},j=function(){var e=function(){var e=(0,s.UO)(),t=e.alertId,a=(0,c.Z)(e,f),l=(0,s.TH)().search,r=m.parse(l).transition,o=(0,n.useRef)(r||t),d=(0,s.s0)();return(0,n.useEffect)((function(){r&&r!==t&&d((0,u.Gn)("/spaces/:spaceSlug/rooms/:roomSlug/alerts/".concat(r),a),{replace:!0})}),[t,r]),o.current}(),t=(0,o.E5)(e),a=t.name,g=void 0===a?"unknown alert":a,E=t.fullyLoaded,p=void 0!==E&&E,h=(0,o.Bk)();return(0,r.bV)({title:g,id:e,destination:e,params:location.hash,type:"alerts",isReady:p}),h?n.createElement(d.Z,{overflow:{vertical:"auto"}},h&&n.createElement(l.Box,{padding:[10,6]},n.createElement(H,null,n.createElement(N,{alertId:e})))):n.createElement(i.Z,{title:"Loading alert..."})}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8943bcb3-d501-4076-920c-56a9e3e9d8f0",e._sentryDebugIdIdentifier="sentry-dbid-8943bcb3-d501-4076-920c-56a9e3e9d8f0")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[533],{35533:function(e,t,a){a.r(t),a.d(t,{default:function(){return j}});var n=a(67294),l=a(57509),r=a(54227),o=a(12008),d=a(91268),i=a(78266),c=a(45987),s=(a(74916),a(64765),a(89250)),u=a(12599),m=a(17563),f=["alertId"],g=a(22648),E=a(37518),p=a(92253),b=a(80854),h=a(17208),w=a(39840),y=a(95248),x=a(97945),I=a(60677),v=(0,I.default)(l.Flex).attrs({alignItems:"center"}).withConfig({displayName:"styled__StyledButtonContainer",componentId:"sc-1glv09p-0"})(["position:sticky;bottom:0;"]),C=function(e){var t=e.disabled,a=e.nodeId,r=e.alertId,o=e.context,d=e.lastStatusChange,i=e.onClose,c=e.isLoading,u=e.small,m=void 0!==u&&u,f=e.testid,g=void 0===f?"alertDetailsModal":f,E=(0,s.s0)(),p=(0,x.m3)(a),b=(0,n.useCallback)((function(){i&&i(),r?E(p,{state:{alertId:r}}):E(p)}),[p,r]),h=(0,y.TQ)(),w=(0,n.useCallback)((function(){var e=1e3*d;h({highlight:{after:e-6e4,before:e},correlation:!0}),b()}),[d,o,b,r]);return n.createElement(v,{justifyContent:"end",gap:2},n.createElement(l.Flex,{gap:2,justifyContent:"end"},n.createElement(l.Button,{small:m,label:"Run correlations",onClick:w,flavour:"hollow",isLoading:c,width:m?"112px":"170px","data-testid":"".concat(g,"-runCorrelations-button"),"data-ga":"alert-modal::click-run-correlations::alerts-view"}),n.createElement(l.Button,{small:m,label:"Go to chart",onClick:b,isLoading:c,disabled:c||t,width:m?"112px":"150px","data-testid":"".concat(g,"-goToNode-button"),"data-ga":"alert-modal::click-goto-chart::alerts-view"})))},k=(0,n.memo)(C),L=a(29876),S=a(20686),_=function(e){var t=e.alertId,a=e.context,r=e.name,o=e.nodeId,d=e.status,i=e.lastStatusChange,c=e.fullyLoaded,s=(0,g.m)(),u=s?l.H4:l.H0;return n.createElement(l.Flex,{column:!0,gap:4},n.createElement(l.Flex,{justifyContent:"between"},n.createElement(l.Flex,{alignItems:"center",gap:2},n.createElement(S.Z,{margin:s?null:[.5,0,0],type:"".concat(d,"AlertsTable"),"data-testid":"alertView-statusPill"},d),n.createElement(u,{"data-testid":"alertView-alertName"},r)),!1),n.createElement(l.Flex,{justifyContent:"between",alignItems:"center"},n.createElement(L.Z,{alertId:t}),c&&!s&&n.createElement(k,{lastStatusChange:i,alertId:t,context:a,name:r,nodeId:o,small:!0,testid:"alertView"})))},B=a(46189),F=I.default.img.withConfig({displayName:"sc-404__Illustration",componentId:"sc-4w81fg-0"})(["height:35%;width:35%;"]),V=I.default.div.withConfig({displayName:"sc-404__ButtonContainer",componentId:"sc-4w81fg-1"})(["margin:",";"],(0,l.getSizeBy)(4)),T=function(){var e="".concat(B.Z.assetsBaseURL,"/img/no-nodes-room.svg");return n.createElement(l.Flex,{column:!0,alignItems:"center",justifyItems:"center",justifyContent:"center",height:"100%",width:"100%",padding:[0,0,"10%"]},n.createElement(F,{src:e,alt:"Unreachable alert",title:"Unreachable alert"}),n.createElement(l.H3,null,"We couldn't find the alert"),n.createElement(l.Text,null,"This can be a temporary problem of that specific alert."),n.createElement(V,null,n.createElement(l.Button,{label:"Retry",icon:"reload"})))},Z=a(50709),R=function(e){var t=e.children;return n.createElement(l.Flex,{background:"modalHeaderBackground",height:12,flex:!1,gap:4,padding:[0,2,0,4],alignItems:"center"},n.createElement(l.Icon,{name:"logo_s",color:"success",width:"23px"}),t)},N=function(e){var t=e.alertId,a=(0,E.Hm)("name"),r=(0,o.E5)(t),d=r.fullyLoaded,c=void 0!==d&&d,s=r.fullyLoading,u=void 0===s||s,m=r.info,f=r.units,y=r.lastStatusChangeValue,x=r.lastStatusChange,I=r.context,v=r.instance,C=r.name,k=r.nodeId,L=r.status,S=r.lastUpdated,B=r.value;(0,o.yx)(t);var F=(0,w.pK)(B,f),V=(0,w.pK)(y,f),N=(0,g.m)();return n.createElement(l.Flex,{column:!0,width:N?"100%":{max:280},padding:N?null:[0,0,10],background:N?"modalBackground":null},N&&n.createElement(R,null,n.createElement(l.Flex,{column:!0},n.createElement(l.H6,{color:"textLite"},"ROOM"),n.createElement(l.Text,{"data-testid":"alertView-mobile-roomName"},a))),n.createElement(l.Flex,{column:!0,padding:N?[3]:[0],overflow:N?"auto":"visible",gap:3},n.createElement(_,{alertId:t,context:I,status:L,name:C,nodeId:k,lastStatusChange:x,fullyLoaded:c}),c?null:u?n.createElement(i.Z,{title:"Loading alert..."}):n.createElement(T,null),c&&m&&n.createElement(n.Fragment,null,n.createElement(b.Z,{iconName:"documentation"},"Alert Description"),n.createElement(l.Text,{"data-testid":"alertView-info"},m),n.createElement(Z.Z,{alertId:t})),c&&n.createElement(p.Z,{id:t,context:I,instance:v,formattedLastValue:F,formattedLastStatusChangeValue:V,lastStatusChange:x,lastUpdated:S,isFormattedValueLoaded:c,nodeId:k,status:L,testid:"alertView"}),c&&n.createElement(h.Z,{id:t,testid:"alertView"})),N&&n.createElement(l.Box,{position:"sticky",padding:[4],background:"modalBackground",bottom:0,border:{side:"top",color:"border"}},n.createElement(l.TextSmall,null,"In order to ",n.createElement(l.TextSmall,{strong:!0},"Run Correlations")," or"," ",n.createElement(l.TextSmall,{strong:!0},"View the Chart")," you will have to visit this alert from its\u2019 dedicated page on a desktop device.")))},H=function(e){var t=e.children;return(0,g.m)()?n.createElement(l.Layer,{full:!0},n.createElement(l.Flex,{width:"100%",background:"mainBackground","data-testid":"alertView-mobileContainer"},t)):t},j=function(){var e=function(){var e=(0,s.UO)(),t=e.alertId,a=(0,c.Z)(e,f),l=(0,s.TH)().search,r=m.parse(l).transition,o=(0,n.useRef)(r||t),d=(0,s.s0)();return(0,n.useEffect)((function(){r&&r!==t&&d((0,u.Gn)("/spaces/:spaceSlug/rooms/:roomSlug/alerts/".concat(r),a),{replace:!0})}),[t,r]),o.current}(),t=(0,o.E5)(e),a=t.name,g=void 0===a?"unknown alert":a,E=t.fullyLoaded,p=void 0!==E&&E,b=(0,o.Bk)();return(0,r.bV)({title:g,id:e,destination:e,params:location.hash,type:"alerts",isReady:p}),b?n.createElement(d.Z,{overflow:{vertical:"auto"}},b&&n.createElement(l.Box,{padding:[10,6]},n.createElement(H,null,n.createElement(N,{alertId:e})))):n.createElement(i.Z,{title:"Loading alert..."})}}}]); \ No newline at end of file
diff --git a/web/gui/v2/564.22a72ae2b4d5c2e659a1.chunk.js b/web/gui/v2/564.2354fe745e05d75abbf2.chunk.js
index 5e1c372a..a0d4630f 100644
--- a/web/gui/v2/564.22a72ae2b4d5c2e659a1.chunk.js
+++ b/web/gui/v2/564.2354fe745e05d75abbf2.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="84021efb-6944-4fab-a899-540fa010485d",e._sentryDebugIdIdentifier="sentry-dbid-84021efb-6944-4fab-a899-540fa010485d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[564],{16512:function(e,t,n){n.d(t,{Q0:function(){return l},R4:function(){return m},TT:function(){return c},WL:function(){return d},Y:function(){return i},by:function(){return u},qY:function(){return r},rU:function(){return f},xL:function(){return s}});var a=n(60677),o=n(15557),l=a.default.img.withConfig({displayName:"styled__Illustration",componentId:"sc-1yhntgl-0"})(["margin:0 auto;"]),r=(0,a.default)(o.Text).withConfig({displayName:"styled__StyledText",componentId:"sc-1yhntgl-1"})(["display:block;"]),i=a.default.div.withConfig({displayName:"styled__TextHeader",componentId:"sc-1yhntgl-2"})(["margin-bottom:",";font-weight:700;"],(0,o.getSizeBy)(2)),d=a.default.div.withConfig({displayName:"styled__StaticCheckmarks",componentId:"sc-1yhntgl-3"})(["margin-top:",";margin-bottom:",";"],(0,o.getSizeBy)(2),(0,o.getSizeBy)(5)),c=a.default.div.withConfig({displayName:"styled__CheckmarkLine",componentId:"sc-1yhntgl-4"})(["display:flex;align-items:center;"]),s=(0,a.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1yhntgl-5"})(["margin-right:4px;height:18px;> use{fill:",";}"],(0,o.getColor)("primary")),u=(0,a.default)(s).withConfig({displayName:"styled__HelpIcon",componentId:"sc-1yhntgl-6"})(["vertical-align:middle;"]),m=a.default.div.withConfig({displayName:"styled__LearnMoreSection",componentId:"sc-1yhntgl-7"})(["margin-top:",";"],(0,o.getSizeBy)(4)),f=a.default.a.withConfig({displayName:"styled__Link",componentId:"sc-1yhntgl-8"})(["text-decoration:underline;color:",";&:visited{color:",";}"],(0,o.getColor)("success"),(0,o.getColor)("success"))},43564:function(e,t,n){n.r(t),n.d(t,{default:function(){return N}});var a=n(29439),o=n(67294),l=n(15557),r=n(46667),i=n(29748),d=n(5934),c=(n(92222),n(89250)),s=n(16645),u=n(7693),m=n(92903),f=n(62200),h=n(37518),b=n(74059),g=n(97723),y=n(87574),p=n(59112),w=n(16512),E=function(e){var t=e.onClose,n=(0,c.s0)(),r=(0,o.useState)(!1),i=(0,a.Z)(r,2),d=i[0],E=i[1],C=(0,o.useState)(""),v=(0,a.Z)(C,2),D=v[0],A=v[1],k=(0,b.OS)(),_=k.id,T=k.slug,x=(0,h.UL)(),S=(0,h.vf)(),L=(0,o.useCallback)((function(e){var a=e.slug;t(),n("/spaces/".concat(T,"/rooms/").concat(S,"/dashboards/").concat(a))}),[T,S]),I=(0,g.EW)(_,x,{onSuccess:L}),N=(0,o.useCallback)((function(){return I({name:D})}),[D]),M=D.length>0;return o.createElement(s.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},o.createElement(u.x,{onClose:t,title:"New Dashboard"},o.createElement(l.Button,{label:"Add",icon:"plus",onClick:N,"data-testid":"addNewDashboardModal-add-button"})),o.createElement(m.B,null,"Create new Dashboard"),o.createElement(s.TZ,null,o.createElement(p.Z,{value:D,label:"Name",onChange:function(e){A(e.target.value)},isValid:d,setIsValid:E,isDirty:M,instantFeedback:"all",onKeyDown:function(e){return e.keyCode===f.DV&&d&&N},"data-testid":"addNewDashboardModal-dashboardName-input"}),o.createElement(w.qY,null,o.createElement(w.Y,null,"What you can do with Dashboards?"),"Combine all the metrics that matter to you, from all the nodes that matter to you, into one clean interface that helps you visually detect anomalies as they\u2019re happening. Building a new dashboard will only take a few minutes, and the metrics are always real-time."),o.createElement(w.WL,null,o.createElement(w.TT,null,o.createElement(w.xL,{name:"check"}),o.createElement(l.Text,null,"Add charts from your infrastructure")),o.createElement(w.TT,null,o.createElement(w.xL,{name:"check"}),o.createElement(l.Text,null,"Group information in a meaningful way")),o.createElement(w.R4,null,o.createElement(w.by,{name:"help"}),o.createElement(l.Text,null,"Learn more about Dashboards")," ",o.createElement(w.rU,{href:"https://learn.netdata.cloud/docs/cloud/visualize/dashboards",target:"_blank",rel:"noopener noreferrer"},"In our documentation"))),o.createElement(w.Q0,{src:y.X,alt:"No nodes",title:"No nodes"})))},C=n(78266),v=(n(26699),n(32023),n(15861)),D=n(64687),A=n.n(D),k=(n(21249),n(57640),n(9924),n(41539),n(64211),n(2490),n(41874),function(e){var t=e.handleOpenAddDashboardModal,n=e.hasPermissionToAddDashboard,a=e.hasPermissionToDeleteDashboard,l=(0,h.Hm)("name"),r=(0,g.qN)(),i=function(){var e=(0,v.Z)(A().mark((function e(t,n){var a,o;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=Array.isArray(t)?t:[t],o=a.map((function(e){return e.id})),e.next=4,r({ids:o});case 4:n.resetRowSelection();case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),d=(0,o.useMemo)((function(){return{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){return o.createElement(o.Fragment,null,"You are about to delete ",o.createElement("strong",null,e.name)," from ",o.createElement("strong",null,l),".",o.createElement("br",null),"Are you sure you want to continue?")},confirmationTitle:function(e){return"Delete ".concat(e.name)},declineLabel:"Cancel",handleAction:i,tooltipText:"Delete dashboard",isVisible:a}}}),[a]),c=(0,o.useMemo)((function(){return{addEntry:{handleAction:t,isVisible:n,tooltipText:"Create dashboard"},delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e,t){return o.createElement(o.Fragment,null,"You are about to delete"," ",o.createElement("strong",null,t.length>1?"".concat(t.length," dashboards"):t[0].name)," ","from ",o.createElement("strong",null,l),".",o.createElement("br",null),"Are you sure you want to continue?")},confirmationTitle:function(){return"Delete"},disabledTooltipText:"Delete is disabled because you haven't selected dashboards",declineLabel:"Cancel",handleAction:i,tooltipText:"Delete dashboards",isVisible:a}}}));return{rowActions:a?d:[],bulkActions:[n,a].some(Boolean)?c:[]}}),_=n(47133),T=function(e){var t=new Date(e).toDateString().split(" "),n=(0,a.Z)(t,4),o=n[1],l=n[2],r=n[3];return"".concat(o," ").concat(l,", ").concat(r)},x=n(91008),S=n(33335),L=function(e){var t=e.handleOpenAddDashboardModal,n=(0,o.useState)(),l=(0,a.Z)(n,2)[1],r=(0,d.ie)(),i=(0,_.QF)(r),c=(0,S.gI)("dashboard:Create"),s=(0,S.gI)("dashboard:Delete"),u=(0,o.useMemo)((function(){return[{id:"name",accessorKey:"name",header:"Name",cell:function(e){var t=e.getValue,n=e.row;return o.createElement(x.Z,{as:"Link",to:n.original.slug},t())}},{id:"lastModified",accessorKey:"updatedAt",header:"Last modified",cell:function(e){var t=e.getValue;return T(t())}},{id:"createdAt",accessorKey:"createdAt",header:"Created",cell:function(e){var t=e.getValue;return T(t())}}]}),[]),m=k({dashboards:i,handleOpenAddDashboardModal:t,hasPermissionToAddDashboard:c,hasPermissionToDeleteDashboard:s});return{rowActions:m.rowActions,bulkActions:m.bulkActions,data:i,enableSelection:s,columns:u,enableSorting:!0,globalFilterFn:(0,o.useCallback)((function(e,t,n){var a=n.toLowerCase(),o=e.getValue("agent").toLowerCase(),l="".concat(T(e.getValue("lastModified")).toLowerCase()),r="".concat(T(e.getValue("createdAt")).toLowerCase());return o.includes(a)||l.includes(a)||r.includes(a)}),[]),setGlobalFilter:l}},I=function(e){var t=e.handleOpenAddDashboardModal,n=L({handleOpenAddDashboardModal:t}),a=n.enableSelection,r=n.columns,i=n.data,d=n.rowActions,c=n.bulkActions,s=n.enableSorting,u=n.globalFilterFn,m=n.setGlobalFilter;return o.createElement(l.Flex,{column:!0,overflow:"auto",padding:[0,0,4]},o.createElement(l.NetdataTable,{rowActions:d,enableSelection:a,data:i,dataColumns:r,bulkActions:c,enableSorting:s,globalFilterFn:u,onGlobalSearchChange:m,testPrefixCallback:function(e){return e.name}}))},N=function(){(0,i.Z)();var e=(0,r.Z)(!1),t=(0,a.Z)(e,4),n=t[0],c=t[2],s=t[3];return(0,d.L)()?o.createElement(l.Flex,{position:"relative",width:"100%",height:"100%",flex:!0,column:!0,padding:[4]},o.createElement(I,{handleOpenAddDashboardModal:c}),n&&o.createElement(E,{onClose:s})):o.createElement(C.Z,{title:"Loading dashboards..."})}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0c5adadb-85da-4eec-b052-0a50ad5d89c2",e._sentryDebugIdIdentifier="sentry-dbid-0c5adadb-85da-4eec-b052-0a50ad5d89c2")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[564],{16512:function(e,t,n){n.d(t,{Q0:function(){return l},R4:function(){return m},TT:function(){return c},WL:function(){return d},Y:function(){return i},by:function(){return u},qY:function(){return r},rU:function(){return f},xL:function(){return s}});var a=n(60677),o=n(57509),l=a.default.img.withConfig({displayName:"styled__Illustration",componentId:"sc-1yhntgl-0"})(["margin:0 auto;"]),r=(0,a.default)(o.Text).withConfig({displayName:"styled__StyledText",componentId:"sc-1yhntgl-1"})(["display:block;"]),i=a.default.div.withConfig({displayName:"styled__TextHeader",componentId:"sc-1yhntgl-2"})(["margin-bottom:",";font-weight:700;"],(0,o.getSizeBy)(2)),d=a.default.div.withConfig({displayName:"styled__StaticCheckmarks",componentId:"sc-1yhntgl-3"})(["margin-top:",";margin-bottom:",";"],(0,o.getSizeBy)(2),(0,o.getSizeBy)(5)),c=a.default.div.withConfig({displayName:"styled__CheckmarkLine",componentId:"sc-1yhntgl-4"})(["display:flex;align-items:center;"]),s=(0,a.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1yhntgl-5"})(["margin-right:4px;height:18px;> use{fill:",";}"],(0,o.getColor)("primary")),u=(0,a.default)(s).withConfig({displayName:"styled__HelpIcon",componentId:"sc-1yhntgl-6"})(["vertical-align:middle;"]),m=a.default.div.withConfig({displayName:"styled__LearnMoreSection",componentId:"sc-1yhntgl-7"})(["margin-top:",";"],(0,o.getSizeBy)(4)),f=a.default.a.withConfig({displayName:"styled__Link",componentId:"sc-1yhntgl-8"})(["text-decoration:underline;color:",";&:visited{color:",";}"],(0,o.getColor)("success"),(0,o.getColor)("success"))},43564:function(e,t,n){n.r(t),n.d(t,{default:function(){return N}});var a=n(29439),o=n(67294),l=n(57509),r=n(46667),i=n(29748),d=n(5934),c=(n(92222),n(89250)),s=n(16645),u=n(7693),m=n(92903),f=n(62200),h=n(37518),b=n(74059),g=n(97723),y=n(87574),p=n(59112),w=n(16512),E=function(e){var t=e.onClose,n=(0,c.s0)(),r=(0,o.useState)(!1),i=(0,a.Z)(r,2),d=i[0],E=i[1],C=(0,o.useState)(""),v=(0,a.Z)(C,2),D=v[0],A=v[1],k=(0,b.OS)(),_=k.id,T=k.slug,x=(0,h.UL)(),S=(0,h.vf)(),L=(0,o.useCallback)((function(e){var a=e.slug;t(),n("/spaces/".concat(T,"/rooms/").concat(S,"/dashboards/").concat(a))}),[T,S]),I=(0,g.EW)(_,x,{onSuccess:L}),N=(0,o.useCallback)((function(){return I({name:D})}),[D]),M=D.length>0;return o.createElement(s.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},o.createElement(u.x,{onClose:t,title:"New Dashboard"},o.createElement(l.Button,{label:"Add",icon:"plus",onClick:N,"data-testid":"addNewDashboardModal-add-button"})),o.createElement(m.B,null,"Create new Dashboard"),o.createElement(s.TZ,null,o.createElement(p.Z,{value:D,label:"Name",onChange:function(e){A(e.target.value)},isValid:d,setIsValid:E,isDirty:M,instantFeedback:"all",onKeyDown:function(e){return e.keyCode===f.DV&&d&&N},"data-testid":"addNewDashboardModal-dashboardName-input"}),o.createElement(w.qY,null,o.createElement(w.Y,null,"What you can do with Dashboards?"),"Combine all the metrics that matter to you, from all the nodes that matter to you, into one clean interface that helps you visually detect anomalies as they\u2019re happening. Building a new dashboard will only take a few minutes, and the metrics are always real-time."),o.createElement(w.WL,null,o.createElement(w.TT,null,o.createElement(w.xL,{name:"check"}),o.createElement(l.Text,null,"Add charts from your infrastructure")),o.createElement(w.TT,null,o.createElement(w.xL,{name:"check"}),o.createElement(l.Text,null,"Group information in a meaningful way")),o.createElement(w.R4,null,o.createElement(w.by,{name:"help"}),o.createElement(l.Text,null,"Learn more about Dashboards")," ",o.createElement(w.rU,{href:"https://learn.netdata.cloud/docs/cloud/visualize/dashboards",target:"_blank",rel:"noopener noreferrer"},"In our documentation"))),o.createElement(w.Q0,{src:y.X,alt:"No nodes",title:"No nodes"})))},C=n(78266),v=(n(26699),n(32023),n(15861)),D=n(64687),A=n.n(D),k=(n(21249),n(57640),n(9924),n(41539),n(64211),n(2490),n(41874),function(e){var t=e.handleOpenAddDashboardModal,n=e.hasPermissionToAddDashboard,a=e.hasPermissionToDeleteDashboard,l=(0,h.Hm)("name"),r=(0,g.qN)(),i=function(){var e=(0,v.Z)(A().mark((function e(t,n){var a,o;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=Array.isArray(t)?t:[t],o=a.map((function(e){return e.id})),e.next=4,r({ids:o});case 4:n.resetRowSelection();case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),d=(0,o.useMemo)((function(){return{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){return o.createElement(o.Fragment,null,"You are about to delete ",o.createElement("strong",null,e.name)," from ",o.createElement("strong",null,l),".",o.createElement("br",null),"Are you sure you want to continue?")},confirmationTitle:function(e){return"Delete ".concat(e.name)},declineLabel:"Cancel",handleAction:i,tooltipText:"Delete dashboard",isVisible:a}}}),[a]),c=(0,o.useMemo)((function(){return{addEntry:{handleAction:t,isVisible:n,tooltipText:"Create dashboard"},delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e,t){return o.createElement(o.Fragment,null,"You are about to delete"," ",o.createElement("strong",null,t.length>1?"".concat(t.length," dashboards"):t[0].name)," ","from ",o.createElement("strong",null,l),".",o.createElement("br",null),"Are you sure you want to continue?")},confirmationTitle:function(){return"Delete"},disabledTooltipText:"Delete is disabled because you haven't selected dashboards",declineLabel:"Cancel",handleAction:i,tooltipText:"Delete dashboards",isVisible:a}}}));return{rowActions:a?d:[],bulkActions:[n,a].some(Boolean)?c:[]}}),_=n(47133),T=function(e){var t=new Date(e).toDateString().split(" "),n=(0,a.Z)(t,4),o=n[1],l=n[2],r=n[3];return"".concat(o," ").concat(l,", ").concat(r)},x=n(91008),S=n(33335),L=function(e){var t=e.handleOpenAddDashboardModal,n=(0,o.useState)(),l=(0,a.Z)(n,2)[1],r=(0,d.ie)(),i=(0,_.QF)(r),c=(0,S.gI)("dashboard:Create"),s=(0,S.gI)("dashboard:Delete"),u=(0,o.useMemo)((function(){return[{id:"name",accessorKey:"name",header:"Name",cell:function(e){var t=e.getValue,n=e.row;return o.createElement(x.Z,{as:"Link",to:n.original.slug},t())}},{id:"lastModified",accessorKey:"updatedAt",header:"Last modified",cell:function(e){var t=e.getValue;return T(t())}},{id:"createdAt",accessorKey:"createdAt",header:"Created",cell:function(e){var t=e.getValue;return T(t())}}]}),[]),m=k({dashboards:i,handleOpenAddDashboardModal:t,hasPermissionToAddDashboard:c,hasPermissionToDeleteDashboard:s});return{rowActions:m.rowActions,bulkActions:m.bulkActions,data:i,enableSelection:s,columns:u,enableSorting:!0,globalFilterFn:(0,o.useCallback)((function(e,t,n){var a=n.toLowerCase(),o=e.getValue("agent").toLowerCase(),l="".concat(T(e.getValue("lastModified")).toLowerCase()),r="".concat(T(e.getValue("createdAt")).toLowerCase());return o.includes(a)||l.includes(a)||r.includes(a)}),[]),setGlobalFilter:l}},I=function(e){var t=e.handleOpenAddDashboardModal,n=L({handleOpenAddDashboardModal:t}),a=n.enableSelection,r=n.columns,i=n.data,d=n.rowActions,c=n.bulkActions,s=n.enableSorting,u=n.globalFilterFn,m=n.setGlobalFilter;return o.createElement(l.Flex,{column:!0,overflow:"auto",padding:[0,0,4]},o.createElement(l.NetdataTable,{rowActions:d,enableSelection:a,data:i,dataColumns:r,bulkActions:c,enableSorting:s,globalFilterFn:u,onGlobalSearchChange:m,testPrefixCallback:function(e){return e.name}}))},N=function(){(0,i.Z)();var e=(0,r.Z)(!1),t=(0,a.Z)(e,4),n=t[0],c=t[2],s=t[3];return(0,d.L)()?o.createElement(l.Flex,{position:"relative",width:"100%",height:"100%",flex:!0,column:!0,padding:[4]},o.createElement(I,{handleOpenAddDashboardModal:c}),n&&o.createElement(E,{onClose:s})):o.createElement(C.Z,{title:"Loading dashboards..."})}}}]); \ No newline at end of file
diff --git a/web/gui/v2/575.9daac2298d0395fdf183.chunk.js b/web/gui/v2/575.76dcaacb1c2276f86dea.chunk.js
index f4c7ee00..90589f18 100644
--- a/web/gui/v2/575.9daac2298d0395fdf183.chunk.js
+++ b/web/gui/v2/575.76dcaacb1c2276f86dea.chunk.js
@@ -1,2 +1,2 @@
-/*! For license information please see 575.9daac2298d0395fdf183.chunk.js.LICENSE.txt */
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="991a141e-9f0f-45c2-955a-5f8a2298380d",e._sentryDebugIdIdentifier="sentry-dbid-991a141e-9f0f-45c2-955a-5f8a2298380d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[575],{7836:function(e){e.exports=function(e){var t={},n=arguments[1];if("string"===typeof n){n={};for(var i=1;i<arguments.length;i++)n[arguments[i]]=!0}for(var o in e)n[o]||(t[o]=e[o]);return t}},69748:function(e,t,n){var i;"classList"in document.createElement("_")||function(e){"use strict";if("Element"in e){var t="classList",n="prototype",i=e.Element[n],o=Object,s=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},r=Array[n].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1},a=function(e,t){this.name=e,this.code=DOMException[e],this.message=t},l=function(e,t){if(""===t)throw new a("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(t))throw new a("INVALID_CHARACTER_ERR","String contains an invalid character");return r.call(e,t)},c=function(e){for(var t=s.call(e.getAttribute("class")||""),n=t?t.split(/\s+/):[],i=0,o=n.length;i<o;i++)this.push(n[i]);this._updateClassName=function(){e.setAttribute("class",this.toString())}},u=c[n]=[],d=function(){return new c(this)};if(a[n]=Error[n],u.item=function(e){return this[e]||null},u.contains=function(e){return-1!==l(this,e+="")},u.add=function(){var e,t=arguments,n=0,i=t.length,o=!1;do{-1===l(this,e=t[n]+"")&&(this.push(e),o=!0)}while(++n<i);o&&this._updateClassName()},u.remove=function(){var e,t,n=arguments,i=0,o=n.length,s=!1;do{for(t=l(this,e=n[i]+"");-1!==t;)this.splice(t,1),s=!0,t=l(this,e)}while(++i<o);s&&this._updateClassName()},u.toggle=function(e,t){e+="";var n=this.contains(e),i=n?!0!==t&&"remove":!1!==t&&"add";return i&&this[i](e),!0===t||!1===t?t:!n},u.toString=function(){return this.join(" ")},o.defineProperty){var h={get:d,enumerable:!0,configurable:!0};try{o.defineProperty(i,t,h)}catch(m){-2146823252===m.number&&(h.enumerable=!1,o.defineProperty(i,t,h))}}else o[n].__defineGetter__&&i.__defineGetter__(t,d)}}(self),function(e){"use strict";if(e.URL=e.URL||e.webkitURL,e.Blob&&e.URL)try{return void new Blob}catch(i){}var t=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||function(e){var t=function(e){return Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]},n=function(){this.data=[]},i=function(e,t,n){this.data=e,this.size=e.length,this.type=t,this.encoding=n},o=n.prototype,s=i.prototype,r=e.FileReaderSync,a=function(e){this.code=this[this.name=e]},l="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),c=l.length,u=e.URL||e.webkitURL||e,d=u.createObjectURL,h=u.revokeObjectURL,m=u,f=e.btoa,p=e.atob,g=e.ArrayBuffer,b=e.Uint8Array,v=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(i.fake=s.fake=!0;c--;)a.prototype[l[c]]=c+1;return u.createObjectURL||(m=e.URL=function(e){var t,n=document.createElementNS("http://www.w3.org/1999/xhtml","a");return n.href=e,"origin"in n||("data:"===n.protocol.toLowerCase()?n.origin=null:(t=e.match(v),n.origin=t&&t[1])),n}),m.createObjectURL=function(e){var t,n=e.type;return null===n&&(n="application/octet-stream"),e instanceof i?(t="data:"+n,"base64"===e.encoding?t+";base64,"+e.data:"URI"===e.encoding?t+","+decodeURIComponent(e.data):f?t+";base64,"+f(e.data):t+","+encodeURIComponent(e.data)):d?d.call(u,e):void 0},m.revokeObjectURL=function(e){"data:"!==e.substring(0,5)&&h&&h.call(u,e)},o.append=function(e){var n=this.data;if(b&&(e instanceof g||e instanceof b)){for(var o="",s=new b(e),l=0,c=s.length;l<c;l++)o+=String.fromCharCode(s[l]);n.push(o)}else if("Blob"===t(e)||"File"===t(e)){if(!r)throw new a("NOT_READABLE_ERR");var u=new r;n.push(u.readAsBinaryString(e))}else e instanceof i?"base64"===e.encoding&&p?n.push(p(e.data)):"URI"===e.encoding?n.push(decodeURIComponent(e.data)):"raw"===e.encoding&&n.push(e.data):("string"!==typeof e&&(e+=""),n.push(unescape(encodeURIComponent(e))))},o.getBlob=function(e){return arguments.length||(e=null),new i(this.data.join(""),e,"raw")},o.toString=function(){return"[object BlobBuilder]"},s.slice=function(e,t,n){var o=arguments.length;return o<3&&(n=null),new i(this.data.slice(e,o>1?t:this.data.length),n,this.encoding)},s.toString=function(){return"[object Blob]"},s.close=function(){this.size=0,delete this.data},n}(e);e.Blob=function(e,n){var i=n&&n.type||"",o=new t;if(e)for(var s=0,r=e.length;s<r;s++)Uint8Array&&e[s]instanceof Uint8Array?o.append(e[s].buffer):o.append(e[s]);var a=o.getBlob(i);return!a.slice&&a.webkitSlice&&(a.slice=a.webkitSlice),a};var n=Object.getPrototypeOf||function(e){return e.__proto__};e.Blob.prototype=n(new e.Blob)}("undefined"!==typeof self&&self||"undefined"!==typeof window&&window||this.content||this),function(o,s){"use strict";"undefined"!==typeof process&&process&&process.versions&&process.versions.electron?void 0===(i=function(){return s}.call(t,n,t,e))||(e.exports=i):e.exports=s}(0,function(){"use strict";function e(e,t){return this.init(e,t)}return e.extensions={},function(t){function n(e,t){var n,i=Array.prototype.slice.call(arguments,2);t=t||{};for(var o=0;o<i.length;o++){var s=i[o];if(s)for(n in s)s.hasOwnProperty(n)&&"undefined"!==typeof s[n]&&(e||!1===t.hasOwnProperty(n))&&(t[n]=s[n])}return t}var i=!1;try{var o=document.createElement("div"),s=document.createTextNode(" ");o.appendChild(s),i=o.contains(s)}catch(a){}var r={isIE:"Microsoft Internet Explorer"===navigator.appName||"Netscape"===navigator.appName&&null!==new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})").exec(navigator.userAgent),isEdge:null!==/Edge\/\d+/.exec(navigator.userAgent),isFF:navigator.userAgent.toLowerCase().indexOf("firefox")>-1,isMac:t.navigator.platform.toUpperCase().indexOf("MAC")>=0,keyCode:{BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,SPACE:32,DELETE:46,K:75,M:77,V:86},isMetaCtrlKey:function(e){return!!(r.isMac&&e.metaKey||!r.isMac&&e.ctrlKey)},isKey:function(e,t){var n=r.getKeyCode(e);return!1===Array.isArray(t)?n===t:-1!==t.indexOf(n)},getKeyCode:function(e){var t=e.which;return null===t&&(t=null!==e.charCode?e.charCode:e.keyCode),t},blockContainerElementNames:["p","h1","h2","h3","h4","h5","h6","blockquote","pre","ul","li","ol","address","article","aside","audio","canvas","dd","dl","dt","fieldset","figcaption","figure","footer","form","header","hgroup","main","nav","noscript","output","section","video","table","thead","tbody","tfoot","tr","th","td"],emptyElementNames:["br","col","colgroup","hr","img","input","source","wbr"],extend:function(){var e=[!0].concat(Array.prototype.slice.call(arguments));return n.apply(this,e)},defaults:function(){var e=[!1].concat(Array.prototype.slice.call(arguments));return n.apply(this,e)},createLink:function(e,t,n,i){var o=e.createElement("a");return r.moveTextRangeIntoElement(t[0],t[t.length-1],o),o.setAttribute("href",n),i&&("_blank"===i&&o.setAttribute("rel","noopener noreferrer"),o.setAttribute("target",i)),o},findOrCreateMatchingTextNodes:function(e,t,n){for(var i=e.createTreeWalker(t,NodeFilter.SHOW_ALL,null,!1),o=[],s=0,a=!1,l=null,c=null;null!==(l=i.nextNode());)if(!(l.nodeType>3))if(3===l.nodeType){if(!a&&n.start<s+l.nodeValue.length&&(a=!0,c=r.splitStartNodeIfNeeded(l,n.start,s)),a&&r.splitEndNodeIfNeeded(l,c,n.end,s),a&&s===n.end)break;if(a&&s>n.end+1)throw new Error("PerformLinking overshot the target!");a&&o.push(c||l),s+=l.nodeValue.length,null!==c&&(s+=c.nodeValue.length,i.nextNode()),c=null}else"img"===l.tagName.toLowerCase()&&(!a&&n.start<=s&&(a=!0),a&&o.push(l));return o},splitStartNodeIfNeeded:function(e,t,n){return t!==n?e.splitText(t-n):null},splitEndNodeIfNeeded:function(e,t,n,i){var o,s;o=i+e.nodeValue.length+(t?t.nodeValue.length:0)-1,s=n-i-(t?e.nodeValue.length:0),o>=n&&i!==o&&0!==s&&(t||e).splitText(s)},splitByBlockElements:function(t){if(3!==t.nodeType&&1!==t.nodeType)return[];var n=[],i=e.util.blockContainerElementNames.join(",");if(3===t.nodeType||0===t.querySelectorAll(i).length)return[t];for(var o=0;o<t.childNodes.length;o++){var s=t.childNodes[o];if(3===s.nodeType)n.push(s);else if(1===s.nodeType){0===s.querySelectorAll(i).length?n.push(s):n=n.concat(e.util.splitByBlockElements(s))}}return n},findAdjacentTextNodeWithContent:function(e,t,n){var i,o=!1,s=n.createNodeIterator(e,NodeFilter.SHOW_TEXT,null,!1);for(i=s.nextNode();i;){if(i===t)o=!0;else if(o&&3===i.nodeType&&i.nodeValue&&i.nodeValue.trim().length>0)break;i=s.nextNode()}return i},findPreviousSibling:function(e){if(!e||r.isMediumEditorElement(e))return!1;for(var t=e.previousSibling;!t&&!r.isMediumEditorElement(e.parentNode);)t=(e=e.parentNode).previousSibling;return t},isDescendant:function(e,t,n){if(!e||!t)return!1;if(e===t)return!!n;if(1!==e.nodeType)return!1;if(i||3!==t.nodeType)return e.contains(t);for(var o=t.parentNode;null!==o;){if(o===e)return!0;o=o.parentNode}return!1},isElement:function(e){return!(!e||1!==e.nodeType)},throttle:function(e,t){var n,i,o,s=null,r=0,a=function(){r=Date.now(),s=null,o=e.apply(n,i),s||(n=i=null)};return t||0===t||(t=50),function(){var l=Date.now(),c=t-(l-r);return n=this,i=arguments,c<=0||c>t?(s&&(clearTimeout(s),s=null),r=l,o=e.apply(n,i),s||(n=i=null)):s||(s=setTimeout(a,c)),o}},traverseUp:function(e,t){if(!e)return!1;do{if(1===e.nodeType){if(t(e))return e;if(r.isMediumEditorElement(e))return!1}e=e.parentNode}while(e);return!1},htmlEntities:function(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},insertHTMLCommand:function(t,n){var i,o,s,a,l,c,u,d=!1,h=["insertHTML",!1,n];if(!e.util.isEdge&&t.queryCommandSupported("insertHTML"))try{return t.execCommand.apply(t,h)}catch(m){}if((i=t.getSelection()).rangeCount){if(u=(o=i.getRangeAt(0)).commonAncestorContainer,r.isMediumEditorElement(u)&&!u.firstChild)o.selectNode(u.appendChild(t.createTextNode("")));else if(3===u.nodeType&&0===o.startOffset&&o.endOffset===u.nodeValue.length||3!==u.nodeType&&u.innerHTML===o.toString()){for(;!r.isMediumEditorElement(u)&&u.parentNode&&1===u.parentNode.childNodes.length&&!r.isMediumEditorElement(u.parentNode);)u=u.parentNode;o.selectNode(u)}for(o.deleteContents(),(s=t.createElement("div")).innerHTML=n,a=t.createDocumentFragment();s.firstChild;)l=s.firstChild,c=a.appendChild(l);o.insertNode(a),c&&((o=o.cloneRange()).setStartAfter(c),o.collapse(!0),e.selection.selectRange(t,o)),d=!0}return t.execCommand.callListeners&&t.execCommand.callListeners(h,d),d},execFormatBlock:function(t,n){var i=r.getTopBlockContainer(e.selection.getSelectionStart(t));if("blockquote"===n){if(i&&Array.prototype.slice.call(i.childNodes).some((function(e){return r.isBlockContainer(e)})))return t.execCommand("outdent",!1,null);if(r.isIE)return t.execCommand("indent",!1,n)}if(i&&n===i.nodeName.toLowerCase()&&(n="p"),r.isIE&&(n="<"+n+">"),i&&"blockquote"===i.nodeName.toLowerCase()){if(r.isIE&&"<p>"===n)return t.execCommand("outdent",!1,n);if((r.isFF||r.isEdge)&&"p"===n)return Array.prototype.slice.call(i.childNodes).some((function(e){return!r.isBlockContainer(e)}))&&t.execCommand("formatBlock",!1,n),t.execCommand("outdent",!1,n)}return t.execCommand("formatBlock",!1,n)},setTargetBlank:function(e,t){var n,i=t||!1;if("a"===e.nodeName.toLowerCase())e.target="_blank",e.rel="noopener noreferrer";else for(e=e.getElementsByTagName("a"),n=0;n<e.length;n+=1)!1!==i&&i!==e[n].attributes.href.value||(e[n].target="_blank",e[n].rel="noopener noreferrer")},removeTargetBlank:function(e,t){var n;if("a"===e.nodeName.toLowerCase())e.removeAttribute("target"),e.removeAttribute("rel");else for(e=e.getElementsByTagName("a"),n=0;n<e.length;n+=1)t===e[n].attributes.href.value&&(e[n].removeAttribute("target"),e[n].removeAttribute("rel"))},addClassToAnchors:function(e,t){var n,i,o=t.split(" ");if("a"===e.nodeName.toLowerCase())for(i=0;i<o.length;i+=1)e.classList.add(o[i]);else{var s=e.getElementsByTagName("a");if(0===s.length){var a=r.getClosestTag(e,"a");e=a?[a]:[]}else e=s;for(n=0;n<e.length;n+=1)for(i=0;i<o.length;i+=1)e[n].classList.add(o[i])}},isListItem:function(e){if(!e)return!1;if("li"===e.nodeName.toLowerCase())return!0;for(var t=e.parentNode,n=t.nodeName.toLowerCase();"li"===n||!r.isBlockContainer(t)&&"div"!==n;){if("li"===n)return!0;if(!(t=t.parentNode))return!1;n=t.nodeName.toLowerCase()}return!1},cleanListDOM:function(t,n){if("li"===n.nodeName.toLowerCase()){var i=n.parentElement;"p"===i.parentElement.nodeName.toLowerCase()&&(r.unwrap(i.parentElement,t),e.selection.moveCursor(t,n.firstChild,n.firstChild.textContent.length))}},splitOffDOMTree:function(e,t,n){for(var i=t,o=null,s=!n;i!==e;){var r,a=i.parentNode,l=a.cloneNode(!1),c=s?i:a.firstChild;for(o&&(s?l.appendChild(o):r=o),o=l;c;){var u=c.nextSibling;c===i?(c.hasChildNodes()?c=c.cloneNode(!1):c.parentNode.removeChild(c),c.textContent&&o.appendChild(c),c=s?u:null):(c.parentNode.removeChild(c),(c.hasChildNodes()||c.textContent)&&o.appendChild(c),c=u)}r&&o.appendChild(r),i=a}return o},moveTextRangeIntoElement:function(e,t,n){if(!e||!t)return!1;var i=r.findCommonRoot(e,t);if(!i)return!1;if(t===e){var o=e.parentNode,s=e.nextSibling;return o.removeChild(e),n.appendChild(e),s?o.insertBefore(n,s):o.appendChild(n),n.hasChildNodes()}for(var a,l,c,u=[],d=0;d<i.childNodes.length;d++)if(c=i.childNodes[d],a){if(r.isDescendant(c,t,!0)){l=c;break}u.push(c)}else r.isDescendant(c,e,!0)&&(a=c);var h=l.nextSibling,m=i.ownerDocument.createDocumentFragment();return a===e?(a.parentNode.removeChild(a),m.appendChild(a)):m.appendChild(r.splitOffDOMTree(a,e)),u.forEach((function(e){e.parentNode.removeChild(e),m.appendChild(e)})),l===t?(l.parentNode.removeChild(l),m.appendChild(l)):m.appendChild(r.splitOffDOMTree(l,t,!0)),n.appendChild(m),l.parentNode===i?i.insertBefore(n,l):h?i.insertBefore(n,h):i.appendChild(n),n.hasChildNodes()},depthOfNode:function(e){for(var t=0,n=e;null!==n.parentNode;)n=n.parentNode,t++;return t},findCommonRoot:function(e,t){for(var n=r.depthOfNode(e),i=r.depthOfNode(t),o=e,s=t;n!==i;)n>i?(o=o.parentNode,n-=1):(s=s.parentNode,i-=1);for(;o!==s;)o=o.parentNode,s=s.parentNode;return o},isElementAtBeginningOfBlock:function(e){for(var t;!r.isBlockContainer(e)&&!r.isMediumEditorElement(e);){for(t=e;t=t.previousSibling;)if((3===t.nodeType?t.nodeValue:t.textContent).length>0)return!1;e=e.parentNode}return!0},isMediumEditorElement:function(e){return e&&e.getAttribute&&!!e.getAttribute("data-medium-editor-element")},getContainerEditorElement:function(e){return r.traverseUp(e,(function(e){return r.isMediumEditorElement(e)}))},isBlockContainer:function(e){return e&&3!==e.nodeType&&-1!==r.blockContainerElementNames.indexOf(e.nodeName.toLowerCase())},getClosestBlockContainer:function(e){return r.traverseUp(e,(function(e){return r.isBlockContainer(e)||r.isMediumEditorElement(e)}))},getTopBlockContainer:function(e){var t=!!r.isBlockContainer(e)&&e;return r.traverseUp(e,(function(e){return r.isBlockContainer(e)&&(t=e),!(t||!r.isMediumEditorElement(e))&&(t=e,!0)})),t},getFirstSelectableLeafNode:function(e){for(;e&&e.firstChild;)e=e.firstChild;if("table"===(e=r.traverseUp(e,(function(e){return-1===r.emptyElementNames.indexOf(e.nodeName.toLowerCase())}))).nodeName.toLowerCase()){var t=e.querySelector("th, td");t&&(e=t)}return e},getFirstTextNode:function(e){return r.warn("getFirstTextNode is deprecated and will be removed in version 6.0.0"),r._getFirstTextNode(e)},_getFirstTextNode:function(e){if(3===e.nodeType)return e;for(var t=0;t<e.childNodes.length;t++){var n=r._getFirstTextNode(e.childNodes[t]);if(null!==n)return n}return null},ensureUrlHasProtocol:function(e){return-1===e.indexOf("://")?"http://"+e:e},warn:function(){void 0!==t.console&&"function"===typeof t.console.warn&&t.console.warn.apply(t.console,arguments)},deprecated:function(e,t,n){var i=e+" is deprecated, please use "+t+" instead.";n&&(i+=" Will be removed in "+n),r.warn(i)},deprecatedMethod:function(e,t,n,i){r.deprecated(e,t,i),"function"===typeof this[t]&&this[t].apply(this,n)},cleanupAttrs:function(e,t){t.forEach((function(t){e.removeAttribute(t)}))},cleanupTags:function(e,t){-1!==t.indexOf(e.nodeName.toLowerCase())&&e.parentNode.removeChild(e)},unwrapTags:function(t,n){-1!==n.indexOf(t.nodeName.toLowerCase())&&e.util.unwrap(t,document)},getClosestTag:function(e,t){return r.traverseUp(e,(function(e){return e.nodeName.toLowerCase()===t.toLowerCase()}))},unwrap:function(e,t){for(var n=t.createDocumentFragment(),i=Array.prototype.slice.call(e.childNodes),o=0;o<i.length;o++)n.appendChild(i[o]);n.childNodes.length?e.parentNode.replaceChild(n,e):e.parentNode.removeChild(e)},guid:function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}};e.util=r}(window),function(){var t=function(t){e.util.extend(this,t)};t.extend=function(t){var n,i=this;n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return i.apply(this,arguments)},e.util.extend(n,i);var o=function(){this.constructor=n};return o.prototype=i.prototype,n.prototype=new o,t&&e.util.extend(n.prototype,t),n},t.prototype={init:function(){},base:void 0,name:void 0,checkState:void 0,destroy:void 0,queryCommandState:void 0,isActive:void 0,isAlreadyApplied:void 0,setActive:void 0,setInactive:void 0,getInteractionElements:void 0,window:void 0,document:void 0,getEditorElements:function(){return this.base.elements},getEditorId:function(){return this.base.id},getEditorOption:function(e){return this.base.options[e]}},["execAction","on","off","subscribe","trigger"].forEach((function(e){t.prototype[e]=function(){return this.base[e].apply(this.base,arguments)}})),e.Extension=t}(),function(){function t(t){return e.util.isBlockContainer(t)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}var n={findMatchingSelectionParent:function(t,n){var i,o=n.getSelection();return 0!==o.rangeCount&&(i=o.getRangeAt(0).commonAncestorContainer,e.util.traverseUp(i,t))},getSelectionElement:function(t){return this.findMatchingSelectionParent((function(t){return e.util.isMediumEditorElement(t)}),t)},exportSelection:function(e,t){if(!e)return null;var n=null,i=t.getSelection();if(i.rangeCount>0){var o,s=i.getRangeAt(0),r=s.cloneRange();r.selectNodeContents(e),r.setEnd(s.startContainer,s.startOffset),n={start:o=r.toString().length,end:o+s.toString().length},this.doesRangeStartWithImages(s,t)&&(n.startsWithImage=!0);var a=this.getTrailingImageCount(e,n,s.endContainer,s.endOffset);if(a&&(n.trailingImageCount=a),0!==o){var l=this.getIndexRelativeToAdjacentEmptyBlocks(t,e,s.startContainer,s.startOffset);-1!==l&&(n.emptyBlocksIndex=l)}}return n},importSelection:function(e,t,n,i){if(e&&t){var o=n.createRange();o.setStart(t,0),o.collapse(!0);var s,r=t,a=[],l=0,c=!1,u=!1,d=0,h=!1,m=!1,f=null;for((i||e.startsWithImage||"undefined"!==typeof e.emptyBlocksIndex)&&(m=!0);!h&&r;)if(r.nodeType>3)r=a.pop();else{if(3!==r.nodeType||u){if(e.trailingImageCount&&u&&("img"===r.nodeName.toLowerCase()&&d++,d===e.trailingImageCount)){for(var p=0;r.parentNode.childNodes[p]!==r;)p++;o.setEnd(r.parentNode,p+1),h=!0}if(!h&&1===r.nodeType)for(var g=r.childNodes.length-1;g>=0;)a.push(r.childNodes[g]),g-=1}else s=l+r.length,!c&&e.start>=l&&e.start<=s&&(m||e.start<s?(o.setStart(r,e.start-l),c=!0):f=r),c&&e.end>=l&&e.end<=s&&(e.trailingImageCount?u=!0:(o.setEnd(r,e.end-l),h=!0)),l=s;h||(r=a.pop())}!c&&f&&(o.setStart(f,f.length),o.setEnd(f,f.length)),"undefined"!==typeof e.emptyBlocksIndex&&(o=this.importSelectionMoveCursorPastBlocks(n,t,e.emptyBlocksIndex,o)),i&&(o=this.importSelectionMoveCursorPastAnchor(e,o)),this.selectRange(n,o)}},importSelectionMoveCursorPastAnchor:function(t,n){if(t.start===t.end&&3===n.startContainer.nodeType&&n.startOffset===n.startContainer.nodeValue.length&&e.util.traverseUp(n.startContainer,(function(e){return"a"===e.nodeName.toLowerCase()}))){for(var i=n.startContainer,o=n.startContainer.parentNode;null!==o&&"a"!==o.nodeName.toLowerCase();)o.childNodes[o.childNodes.length-1]!==i?o=null:(i=o,o=o.parentNode);if(null!==o&&"a"===o.nodeName.toLowerCase()){for(var s=null,r=0;null===s&&r<o.parentNode.childNodes.length;r++)o.parentNode.childNodes[r]===o&&(s=r);n.setStart(o.parentNode,s+1),n.collapse(!0)}}return n},importSelectionMoveCursorPastBlocks:function(n,i,o,s){var r,a,l=n.createTreeWalker(i,NodeFilter.SHOW_ELEMENT,t,!1),c=s.startContainer,u=0;for(o=o||1,r=3===c.nodeType&&e.util.isBlockContainer(c.previousSibling)?c.previousSibling:e.util.getClosestBlockContainer(c);l.nextNode();)if(a){if(a=l.currentNode,++u===o)break;if(a.textContent.length>0)break}else r===l.currentNode&&(a=l.currentNode);return a||(a=r),s.setStart(e.util.getFirstSelectableLeafNode(a),0),s},getIndexRelativeToAdjacentEmptyBlocks:function(n,i,o,s){if(o.textContent.length>0&&s>0)return-1;var r=o;if(3!==r.nodeType&&(r=o.childNodes[s]),r){if(!e.util.isElementAtBeginningOfBlock(r))return-1;var a=e.util.findPreviousSibling(r);if(!a)return-1;if(a.nodeValue)return-1}for(var l=e.util.getClosestBlockContainer(o),c=n.createTreeWalker(i,NodeFilter.SHOW_ELEMENT,t,!1),u=0;c.nextNode();){var d=""===c.currentNode.textContent;if((d||u>0)&&(u+=1),c.currentNode===l)return u;d||(u=0)}return u},doesRangeStartWithImages:function(e,t){if(0!==e.startOffset||1!==e.startContainer.nodeType)return!1;if("img"===e.startContainer.nodeName.toLowerCase())return!0;var n=e.startContainer.querySelector("img");if(!n)return!1;for(var i=t.createTreeWalker(e.startContainer,NodeFilter.SHOW_ALL,null,!1);i.nextNode();){var o=i.currentNode;if(o===n)break;if(o.nodeValue)return!1}return!0},getTrailingImageCount:function(e,t,n,i){if(0===i||1!==n.nodeType)return 0;if("img"!==n.nodeName.toLowerCase()&&!n.querySelector("img"))return 0;for(var o=n.childNodes[i-1];o.hasChildNodes();)o=o.lastChild;for(var s,r=e,a=[],l=0,c=!1,u=!1,d=!1,h=0;!d&&r;)if(r.nodeType>3)r=a.pop();else{if(3!==r.nodeType||u){if("img"===r.nodeName.toLowerCase()&&h++,r===o)d=!0;else if(1===r.nodeType)for(var m=r.childNodes.length-1;m>=0;)a.push(r.childNodes[m]),m-=1}else h=0,s=l+r.length,!c&&t.start>=l&&t.start<=s&&(c=!0),c&&t.end>=l&&t.end<=s&&(u=!0),l=s;d||(r=a.pop())}return h},selectionContainsContent:function(e){var t=e.getSelection();if(!t||t.isCollapsed||!t.rangeCount)return!1;if(""!==t.toString().trim())return!0;var n=this.getSelectedParentElement(t.getRangeAt(0));return!(!n||!("img"===n.nodeName.toLowerCase()||1===n.nodeType&&n.querySelector("img")))},selectionInContentEditableFalse:function(e){var t,n=this.findMatchingSelectionParent((function(e){var n=e&&e.getAttribute("contenteditable");return"true"===n&&(t=!0),"#text"!==e.nodeName&&"false"===n}),e);return!t&&n},getSelectionHtml:function(e){var t,n,i,o="",s=e.getSelection();if(s.rangeCount){for(i=e.createElement("div"),t=0,n=s.rangeCount;t<n;t+=1)i.appendChild(s.getRangeAt(t).cloneContents());o=i.innerHTML}return o},getCaretOffsets:function(e,t){var n,i;return t||(t=window.getSelection().getRangeAt(0)),n=t.cloneRange(),i=t.cloneRange(),n.selectNodeContents(e),n.setEnd(t.endContainer,t.endOffset),i.selectNodeContents(e),i.setStart(t.endContainer,t.endOffset),{left:n.toString().length,right:i.toString().length}},rangeSelectsSingleNode:function(e){var t=e.startContainer;return t===e.endContainer&&t.hasChildNodes()&&e.endOffset===e.startOffset+1},getSelectedParentElement:function(e){return e?this.rangeSelectsSingleNode(e)&&3!==e.startContainer.childNodes[e.startOffset].nodeType?e.startContainer.childNodes[e.startOffset]:3===e.startContainer.nodeType?e.startContainer.parentNode:e.startContainer:null},getSelectedElements:function(e){var t,n,i,o=e.getSelection();if(!o.rangeCount||o.isCollapsed||!o.getRangeAt(0).commonAncestorContainer)return[];if(3===(t=o.getRangeAt(0)).commonAncestorContainer.nodeType){for(n=[],i=t.commonAncestorContainer;i.parentNode&&1===i.parentNode.childNodes.length;)n.push(i.parentNode),i=i.parentNode;return n}return[].filter.call(t.commonAncestorContainer.getElementsByTagName("*"),(function(e){return"function"!==typeof o.containsNode||o.containsNode(e,!0)}))},selectNode:function(e,t){var n=t.createRange();n.selectNodeContents(e),this.selectRange(t,n)},select:function(e,t,n,i,o){var s=e.createRange();return s.setStart(t,n),i?s.setEnd(i,o):s.collapse(!0),this.selectRange(e,s),s},clearSelection:function(e,t){t?e.getSelection().collapseToStart():e.getSelection().collapseToEnd()},moveCursor:function(e,t,n){this.select(e,t,n)},getSelectionRange:function(e){var t=e.getSelection();return 0===t.rangeCount?null:t.getRangeAt(0)},selectRange:function(e,t){var n=e.getSelection();n.removeAllRanges(),n.addRange(t)},getSelectionStart:function(e){var t=e.getSelection().anchorNode;return t&&3===t.nodeType?t.parentNode:t}};e.selection=n}(),function(){function t(t,n){return!!t&&t.some((function(t){if("function"!==typeof t.getInteractionElements)return!1;var i=t.getInteractionElements();return!!i&&(Array.isArray(i)||(i=[i]),i.some((function(t){return e.util.isDescendant(t,n,!0)})))}))}var n=function(e){this.base=e,this.options=this.base.options,this.events=[],this.disabledEvents={},this.customEvents={},this.listeners={}};n.prototype={InputEventOnContenteditableSupported:!e.util.isIE&&!e.util.isEdge,attachDOMEvent:function(t,n,i,o){var s=this.base.options.contentWindow,r=this.base.options.ownerDocument;t=e.util.isElement(t)||[s,r].indexOf(t)>-1?[t]:t,Array.prototype.forEach.call(t,function(e){e.addEventListener(n,i,o),this.events.push([e,n,i,o])}.bind(this))},detachDOMEvent:function(t,n,i,o){var s,r,a=this.base.options.contentWindow,l=this.base.options.ownerDocument;t&&(t=e.util.isElement(t)||[a,l].indexOf(t)>-1?[t]:t,Array.prototype.forEach.call(t,function(e){-1!==(s=this.indexOfListener(e,n,i,o))&&(r=this.events.splice(s,1)[0])[0].removeEventListener(r[1],r[2],r[3])}.bind(this)))},indexOfListener:function(e,t,n,i){var o,s,r;for(o=0,s=this.events.length;o<s;o+=1)if((r=this.events[o])[0]===e&&r[1]===t&&r[2]===n&&r[3]===i)return o;return-1},detachAllDOMEvents:function(){for(var e=this.events.pop();e;)e[0].removeEventListener(e[1],e[2],e[3]),e=this.events.pop()},detachAllEventsFromElement:function(e){for(var t=this.events.filter((function(t){return t&&t[0].getAttribute&&t[0].getAttribute("medium-editor-index")===e.getAttribute("medium-editor-index")})),n=0,i=t.length;n<i;n++){var o=t[n];this.detachDOMEvent(o[0],o[1],o[2],o[3])}},attachAllEventsToElement:function(e){this.listeners.editableInput&&(this.contentCache[e.getAttribute("medium-editor-index")]=e.innerHTML),this.eventsCache&&this.eventsCache.forEach((function(t){this.attachDOMEvent(e,t.name,t.handler.bind(this))}),this)},enableCustomEvent:function(e){void 0!==this.disabledEvents[e]&&delete this.disabledEvents[e]},disableCustomEvent:function(e){this.disabledEvents[e]=!0},attachCustomEvent:function(e,t){this.setupListener(e),this.customEvents[e]||(this.customEvents[e]=[]),this.customEvents[e].push(t)},detachCustomEvent:function(e,t){var n=this.indexOfCustomListener(e,t);-1!==n&&this.customEvents[e].splice(n,1)},indexOfCustomListener:function(e,t){return this.customEvents[e]&&this.customEvents[e].length?this.customEvents[e].indexOf(t):-1},detachAllCustomEvents:function(){this.customEvents={}},triggerCustomEvent:function(e,t,n){this.customEvents[e]&&!this.disabledEvents[e]&&this.customEvents[e].forEach((function(e){e(t,n)}))},destroy:function(){this.detachAllDOMEvents(),this.detachAllCustomEvents(),this.detachExecCommand(),this.base.elements&&this.base.elements.forEach((function(e){e.removeAttribute("data-medium-focused")}))},attachToExecCommand:function(){this.execCommandListener||(this.execCommandListener=function(e){this.handleDocumentExecCommand(e)}.bind(this),this.wrapExecCommand(),this.options.ownerDocument.execCommand.listeners.push(this.execCommandListener))},detachExecCommand:function(){var e=this.options.ownerDocument;if(this.execCommandListener&&e.execCommand.listeners){var t=e.execCommand.listeners.indexOf(this.execCommandListener);-1!==t&&e.execCommand.listeners.splice(t,1),e.execCommand.listeners.length||this.unwrapExecCommand()}},wrapExecCommand:function(){var e=this.options.ownerDocument;if(!e.execCommand.listeners){var t=function(t,n){e.execCommand.listeners&&e.execCommand.listeners.forEach((function(e){e({command:t[0],value:t[2],args:t,result:n})}))},n=function(){var n=e.execCommand.orig.apply(this,arguments);if(!e.execCommand.listeners)return n;var i=Array.prototype.slice.call(arguments);return t(i,n),n};n.orig=e.execCommand,n.listeners=[],n.callListeners=t,e.execCommand=n}},unwrapExecCommand:function(){var e=this.options.ownerDocument;e.execCommand.orig&&(e.execCommand=e.execCommand.orig)},setupListener:function(e){if(!this.listeners[e]){switch(e){case"externalInteraction":this.attachDOMEvent(this.options.ownerDocument.body,"mousedown",this.handleBodyMousedown.bind(this),!0),this.attachDOMEvent(this.options.ownerDocument.body,"click",this.handleBodyClick.bind(this),!0),this.attachDOMEvent(this.options.ownerDocument.body,"focus",this.handleBodyFocus.bind(this),!0);break;case"blur":case"focus":this.setupListener("externalInteraction");break;case"editableInput":this.contentCache={},this.base.elements.forEach((function(e){this.contentCache[e.getAttribute("medium-editor-index")]=e.innerHTML}),this),this.InputEventOnContenteditableSupported&&this.attachToEachElement("input",this.handleInput),this.InputEventOnContenteditableSupported||(this.setupListener("editableKeypress"),this.keypressUpdateInput=!0,this.attachDOMEvent(document,"selectionchange",this.handleDocumentSelectionChange.bind(this)),this.attachToExecCommand());break;case"editableClick":this.attachToEachElement("click",this.handleClick);break;case"editableBlur":this.attachToEachElement("blur",this.handleBlur);break;case"editableKeypress":this.attachToEachElement("keypress",this.handleKeypress);break;case"editableKeyup":this.attachToEachElement("keyup",this.handleKeyup);break;case"editableKeydown":this.attachToEachElement("keydown",this.handleKeydown);break;case"editableKeydownSpace":case"editableKeydownEnter":case"editableKeydownTab":case"editableKeydownDelete":this.setupListener("editableKeydown");break;case"editableMouseover":this.attachToEachElement("mouseover",this.handleMouseover);break;case"editableDrag":this.attachToEachElement("dragover",this.handleDragging),this.attachToEachElement("dragleave",this.handleDragging);break;case"editableDrop":this.attachToEachElement("drop",this.handleDrop);break;case"editablePaste":this.attachToEachElement("paste",this.handlePaste)}this.listeners[e]=!0}},attachToEachElement:function(e,t){this.eventsCache||(this.eventsCache=[]),this.base.elements.forEach((function(n){this.attachDOMEvent(n,e,t.bind(this))}),this),this.eventsCache.push({name:e,handler:t})},cleanupElement:function(e){var t=e.getAttribute("medium-editor-index");t&&(this.detachAllEventsFromElement(e),this.contentCache&&delete this.contentCache[t])},focusElement:function(e){e.focus(),this.updateFocus(e,{target:e,type:"focus"})},updateFocus:function(n,i){var o,s=this.base.getFocusedElement();s&&"click"===i.type&&this.lastMousedownTarget&&(e.util.isDescendant(s,this.lastMousedownTarget,!0)||t(this.base.extensions,this.lastMousedownTarget))&&(o=s),o||this.base.elements.some((function(t){return!o&&e.util.isDescendant(t,n,!0)&&(o=t),!!o}),this);var r=!e.util.isDescendant(s,n,!0)&&!t(this.base.extensions,n);o!==s&&(s&&r&&(s.removeAttribute("data-medium-focused"),this.triggerCustomEvent("blur",i,s)),o&&(o.setAttribute("data-medium-focused",!0),this.triggerCustomEvent("focus",i,o))),r&&this.triggerCustomEvent("externalInteraction",i)},updateInput:function(e,t){if(this.contentCache){var n=e.getAttribute("medium-editor-index"),i=e.innerHTML;i!==this.contentCache[n]&&this.triggerCustomEvent("editableInput",t,e),this.contentCache[n]=i}},handleDocumentSelectionChange:function(t){if(t.currentTarget&&t.currentTarget.activeElement){var n,i=t.currentTarget.activeElement;this.base.elements.some((function(t){return!!e.util.isDescendant(t,i,!0)&&(n=t,!0)}),this),n&&this.updateInput(n,{target:i,currentTarget:n})}},handleDocumentExecCommand:function(){var e=this.base.getFocusedElement();e&&this.updateInput(e,{target:e,currentTarget:e})},handleBodyClick:function(e){this.updateFocus(e.target,e)},handleBodyFocus:function(e){this.updateFocus(e.target,e)},handleBodyMousedown:function(e){this.lastMousedownTarget=e.target},handleInput:function(e){this.updateInput(e.currentTarget,e)},handleClick:function(e){this.triggerCustomEvent("editableClick",e,e.currentTarget)},handleBlur:function(e){this.triggerCustomEvent("editableBlur",e,e.currentTarget)},handleKeypress:function(e){if(this.triggerCustomEvent("editableKeypress",e,e.currentTarget),this.keypressUpdateInput){var t={target:e.target,currentTarget:e.currentTarget};setTimeout(function(){this.updateInput(t.currentTarget,t)}.bind(this),0)}},handleKeyup:function(e){this.triggerCustomEvent("editableKeyup",e,e.currentTarget)},handleMouseover:function(e){this.triggerCustomEvent("editableMouseover",e,e.currentTarget)},handleDragging:function(e){this.triggerCustomEvent("editableDrag",e,e.currentTarget)},handleDrop:function(e){this.triggerCustomEvent("editableDrop",e,e.currentTarget)},handlePaste:function(e){this.triggerCustomEvent("editablePaste",e,e.currentTarget)},handleKeydown:function(t){return this.triggerCustomEvent("editableKeydown",t,t.currentTarget),e.util.isKey(t,e.util.keyCode.SPACE)?this.triggerCustomEvent("editableKeydownSpace",t,t.currentTarget):e.util.isKey(t,e.util.keyCode.ENTER)||t.ctrlKey&&e.util.isKey(t,e.util.keyCode.M)?this.triggerCustomEvent("editableKeydownEnter",t,t.currentTarget):e.util.isKey(t,e.util.keyCode.TAB)?this.triggerCustomEvent("editableKeydownTab",t,t.currentTarget):e.util.isKey(t,[e.util.keyCode.DELETE,e.util.keyCode.BACKSPACE])?this.triggerCustomEvent("editableKeydownDelete",t,t.currentTarget):void 0}},e.Events=n}(),function(){var t=e.Extension.extend({action:void 0,aria:void 0,tagNames:void 0,style:void 0,useQueryState:void 0,contentDefault:void 0,contentFA:void 0,classList:void 0,attrs:void 0,constructor:function(n){t.isBuiltInButton(n)?e.Extension.call(this,this.defaults[n]):e.Extension.call(this,n)},init:function(){e.Extension.prototype.init.apply(this,arguments),this.button=this.createButton(),this.on(this.button,"click",this.handleClick.bind(this))},getButton:function(){return this.button},getAction:function(){return"function"===typeof this.action?this.action(this.base.options):this.action},getAria:function(){return"function"===typeof this.aria?this.aria(this.base.options):this.aria},getTagNames:function(){return"function"===typeof this.tagNames?this.tagNames(this.base.options):this.tagNames},createButton:function(){var e=this.document.createElement("button"),t=this.contentDefault,n=this.getAria(),i=this.getEditorOption("buttonLabels");return e.classList.add("medium-editor-action"),e.classList.add("medium-editor-action-"+this.name),this.classList&&this.classList.forEach((function(t){e.classList.add(t)})),e.setAttribute("data-action",this.getAction()),n&&(e.setAttribute("title",n),e.setAttribute("aria-label",n)),this.attrs&&Object.keys(this.attrs).forEach((function(t){e.setAttribute(t,this.attrs[t])}),this),"fontawesome"===i&&this.contentFA&&(t=this.contentFA),e.innerHTML=t,e},handleClick:function(e){e.preventDefault(),e.stopPropagation();var t=this.getAction();t&&this.execAction(t)},isActive:function(){return this.button.classList.contains(this.getEditorOption("activeButtonClass"))},setInactive:function(){this.button.classList.remove(this.getEditorOption("activeButtonClass")),delete this.knownState},setActive:function(){this.button.classList.add(this.getEditorOption("activeButtonClass")),delete this.knownState},queryCommandState:function(){var e=null;return this.useQueryState&&(e=this.base.queryCommandState(this.getAction())),e},isAlreadyApplied:function(e){var t,n,i=!1,o=this.getTagNames();return!1===this.knownState||!0===this.knownState?this.knownState:(o&&o.length>0&&(i=-1!==o.indexOf(e.nodeName.toLowerCase())),!i&&this.style&&(t=this.style.value.split("|"),n=this.window.getComputedStyle(e,null).getPropertyValue(this.style.prop),t.forEach((function(e){this.knownState||((i=-1!==n.indexOf(e))||"text-decoration"!==this.style.prop)&&(this.knownState=i)}),this)),i)}});t.isBuiltInButton=function(t){return"string"===typeof t&&e.extensions.button.prototype.defaults.hasOwnProperty(t)},e.extensions.button=t}(),e.extensions.button.prototype.defaults={bold:{name:"bold",action:"bold",aria:"bold",tagNames:["b","strong"],style:{prop:"font-weight",value:"700|bold"},useQueryState:!0,contentDefault:"<b>B</b>",contentFA:'<i class="fa fa-bold"></i>'},italic:{name:"italic",action:"italic",aria:"italic",tagNames:["i","em"],style:{prop:"font-style",value:"italic"},useQueryState:!0,contentDefault:"<b><i>I</i></b>",contentFA:'<i class="fa fa-italic"></i>'},underline:{name:"underline",action:"underline",aria:"underline",tagNames:["u"],style:{prop:"text-decoration",value:"underline"},useQueryState:!0,contentDefault:"<b><u>U</u></b>",contentFA:'<i class="fa fa-underline"></i>'},strikethrough:{name:"strikethrough",action:"strikethrough",aria:"strike through",tagNames:["strike"],style:{prop:"text-decoration",value:"line-through"},useQueryState:!0,contentDefault:"<s>A</s>",contentFA:'<i class="fa fa-strikethrough"></i>'},superscript:{name:"superscript",action:"superscript",aria:"superscript",tagNames:["sup"],contentDefault:"<b>x<sup>1</sup></b>",contentFA:'<i class="fa fa-superscript"></i>'},subscript:{name:"subscript",action:"subscript",aria:"subscript",tagNames:["sub"],contentDefault:"<b>x<sub>1</sub></b>",contentFA:'<i class="fa fa-subscript"></i>'},image:{name:"image",action:"image",aria:"image",tagNames:["img"],contentDefault:"<b>image</b>",contentFA:'<i class="fa fa-picture-o"></i>'},html:{name:"html",action:"html",aria:"evaluate html",tagNames:["iframe","object"],contentDefault:"<b>html</b>",contentFA:'<i class="fa fa-code"></i>'},orderedlist:{name:"orderedlist",action:"insertorderedlist",aria:"ordered list",tagNames:["ol"],useQueryState:!0,contentDefault:"<b>1.</b>",contentFA:'<i class="fa fa-list-ol"></i>'},unorderedlist:{name:"unorderedlist",action:"insertunorderedlist",aria:"unordered list",tagNames:["ul"],useQueryState:!0,contentDefault:"<b>&bull;</b>",contentFA:'<i class="fa fa-list-ul"></i>'},indent:{name:"indent",action:"indent",aria:"indent",tagNames:[],contentDefault:"<b>&rarr;</b>",contentFA:'<i class="fa fa-indent"></i>'},outdent:{name:"outdent",action:"outdent",aria:"outdent",tagNames:[],contentDefault:"<b>&larr;</b>",contentFA:'<i class="fa fa-outdent"></i>'},justifyCenter:{name:"justifyCenter",action:"justifyCenter",aria:"center justify",tagNames:[],style:{prop:"text-align",value:"center"},contentDefault:"<b>C</b>",contentFA:'<i class="fa fa-align-center"></i>'},justifyFull:{name:"justifyFull",action:"justifyFull",aria:"full justify",tagNames:[],style:{prop:"text-align",value:"justify"},contentDefault:"<b>J</b>",contentFA:'<i class="fa fa-align-justify"></i>'},justifyLeft:{name:"justifyLeft",action:"justifyLeft",aria:"left justify",tagNames:[],style:{prop:"text-align",value:"left"},contentDefault:"<b>L</b>",contentFA:'<i class="fa fa-align-left"></i>'},justifyRight:{name:"justifyRight",action:"justifyRight",aria:"right justify",tagNames:[],style:{prop:"text-align",value:"right"},contentDefault:"<b>R</b>",contentFA:'<i class="fa fa-align-right"></i>'},removeFormat:{name:"removeFormat",aria:"remove formatting",action:"removeFormat",contentDefault:"<b>X</b>",contentFA:'<i class="fa fa-eraser"></i>'},quote:{name:"quote",action:"append-blockquote",aria:"blockquote",tagNames:["blockquote"],contentDefault:"<b>&ldquo;</b>",contentFA:'<i class="fa fa-quote-right"></i>'},pre:{name:"pre",action:"append-pre",aria:"preformatted text",tagNames:["pre"],contentDefault:"<b>0101</b>",contentFA:'<i class="fa fa-code fa-lg"></i>'},h1:{name:"h1",action:"append-h1",aria:"header type one",tagNames:["h1"],contentDefault:"<b>H1</b>",contentFA:'<i class="fa fa-header"><sup>1</sup>'},h2:{name:"h2",action:"append-h2",aria:"header type two",tagNames:["h2"],contentDefault:"<b>H2</b>",contentFA:'<i class="fa fa-header"><sup>2</sup>'},h3:{name:"h3",action:"append-h3",aria:"header type three",tagNames:["h3"],contentDefault:"<b>H3</b>",contentFA:'<i class="fa fa-header"><sup>3</sup>'},h4:{name:"h4",action:"append-h4",aria:"header type four",tagNames:["h4"],contentDefault:"<b>H4</b>",contentFA:'<i class="fa fa-header"><sup>4</sup>'},h5:{name:"h5",action:"append-h5",aria:"header type five",tagNames:["h5"],contentDefault:"<b>H5</b>",contentFA:'<i class="fa fa-header"><sup>5</sup>'},h6:{name:"h6",action:"append-h6",aria:"header type six",tagNames:["h6"],contentDefault:"<b>H6</b>",contentFA:'<i class="fa fa-header"><sup>6</sup>'}},function(){var t=e.extensions.button.extend({init:function(){e.extensions.button.prototype.init.apply(this,arguments)},formSaveLabel:"&#10003;",formCloseLabel:"&times;",activeClass:"medium-editor-toolbar-form-active",hasForm:!0,getForm:function(){},isDisplayed:function(){return!!this.hasForm&&this.getForm().classList.contains(this.activeClass)},showForm:function(){this.hasForm&&this.getForm().classList.add(this.activeClass)},hideForm:function(){this.hasForm&&this.getForm().classList.remove(this.activeClass)},showToolbarDefaultActions:function(){var e=this.base.getExtensionByName("toolbar");e&&e.showToolbarDefaultActions()},hideToolbarDefaultActions:function(){var e=this.base.getExtensionByName("toolbar");e&&e.hideToolbarDefaultActions()},setToolbarPosition:function(){var e=this.base.getExtensionByName("toolbar");e&&e.setToolbarPosition()}});e.extensions.form=t}(),function(){var t=e.extensions.form.extend({customClassOption:null,customClassOptionText:"Button",linkValidation:!1,placeholderText:"Paste or type a link",targetCheckbox:!1,targetCheckboxText:"Open in new window",name:"anchor",action:"createLink",aria:"link",tagNames:["a"],contentDefault:"<b>#</b>",contentFA:'<i class="fa fa-link"></i>',init:function(){e.extensions.form.prototype.init.apply(this,arguments),this.subscribe("editableKeydown",this.handleKeydown.bind(this))},handleClick:function(t){t.preventDefault(),t.stopPropagation();var n=e.selection.getSelectionRange(this.document);return"a"===n.startContainer.nodeName.toLowerCase()||"a"===n.endContainer.nodeName.toLowerCase()||e.util.getClosestTag(e.selection.getSelectedParentElement(n),"a")?this.execAction("unlink"):(this.isDisplayed()||this.showForm(),!1)},handleKeydown:function(t){e.util.isKey(t,e.util.keyCode.K)&&e.util.isMetaCtrlKey(t)&&!t.shiftKey&&this.handleClick(t)},getForm:function(){return this.form||(this.form=this.createForm()),this.form},getTemplate:function(){var e=['<input type="text" class="medium-editor-toolbar-input" placeholder="',this.placeholderText,'">'];return e.push('<a href="#" class="medium-editor-toolbar-save">',"fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-check"></i>':this.formSaveLabel,"</a>"),e.push('<a href="#" class="medium-editor-toolbar-close">',"fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-times"></i>':this.formCloseLabel,"</a>"),this.targetCheckbox&&e.push('<div class="medium-editor-toolbar-form-row">','<input type="checkbox" class="medium-editor-toolbar-anchor-target" id="medium-editor-toolbar-anchor-target-field-'+this.getEditorId()+'">','<label for="medium-editor-toolbar-anchor-target-field-'+this.getEditorId()+'">',this.targetCheckboxText,"</label>","</div>"),this.customClassOption&&e.push('<div class="medium-editor-toolbar-form-row">','<input type="checkbox" class="medium-editor-toolbar-anchor-button">',"<label>",this.customClassOptionText,"</label>","</div>"),e.join("")},isDisplayed:function(){return e.extensions.form.prototype.isDisplayed.apply(this)},hideForm:function(){e.extensions.form.prototype.hideForm.apply(this),this.getInput().value=""},showForm:function(t){var n=this.getInput(),i=this.getAnchorTargetCheckbox(),o=this.getAnchorButtonCheckbox();if("string"===typeof(t=t||{value:""})&&(t={value:t}),this.base.saveSelection(),this.hideToolbarDefaultActions(),e.extensions.form.prototype.showForm.apply(this),this.setToolbarPosition(),n.value=t.value,n.focus(),i&&(i.checked="_blank"===t.target),o){var s=t.buttonClass?t.buttonClass.split(" "):[];o.checked=-1!==s.indexOf(this.customClassOption)}},destroy:function(){if(!this.form)return!1;this.form.parentNode&&this.form.parentNode.removeChild(this.form),delete this.form},getFormOpts:function(){var e=this.getAnchorTargetCheckbox(),t=this.getAnchorButtonCheckbox(),n={value:this.getInput().value.trim()};return this.linkValidation&&(n.value=this.checkLinkFormat(n.value)),n.target="_self",e&&e.checked&&(n.target="_blank"),t&&t.checked&&(n.buttonClass=this.customClassOption),n},doFormSave:function(){var e=this.getFormOpts();this.completeFormSave(e)},completeFormSave:function(e){this.base.restoreSelection(),this.execAction(this.action,e),this.base.checkSelection()},ensureEncodedUri:function(e){return e===decodeURI(e)?encodeURI(e):e},ensureEncodedUriComponent:function(e){return e===decodeURIComponent(e)?encodeURIComponent(e):e},ensureEncodedParam:function(e){var t=e.split("="),n=t[0],i=t[1];return n+(void 0===i?"":"="+this.ensureEncodedUriComponent(i))},ensureEncodedQuery:function(e){return e.split("&").map(this.ensureEncodedParam.bind(this)).join("&")},checkLinkFormat:function(e){var t=/^([a-z]+:)?\/\/|^(mailto|tel|maps):|^\#/i.test(e),n="",i=e.match(/^(.*?)(?:\?(.*?))?(?:#(.*))?$/),o=i[1],s=i[2],r=i[3];if(/^\+?\s?\(?(?:\d\s?\-?\)?){3,20}$/.test(e))return"tel:"+e;if(!t){var a=o.split("/")[0];(a.match(/.+(\.|:).+/)||"localhost"===a)&&(n="http://")}return n+this.ensureEncodedUri(o)+(void 0===s?"":"?"+this.ensureEncodedQuery(s))+(void 0===r?"":"#"+r)},doFormCancel:function(){this.base.restoreSelection(),this.base.checkSelection()},attachFormEvents:function(e){var t=e.querySelector(".medium-editor-toolbar-close"),n=e.querySelector(".medium-editor-toolbar-save"),i=e.querySelector(".medium-editor-toolbar-input");this.on(e,"click",this.handleFormClick.bind(this)),this.on(i,"keyup",this.handleTextboxKeyup.bind(this)),this.on(t,"click",this.handleCloseClick.bind(this)),this.on(n,"click",this.handleSaveClick.bind(this),!0)},createForm:function(){var e=this.document.createElement("div");return e.className="medium-editor-toolbar-form",e.id="medium-editor-toolbar-form-anchor-"+this.getEditorId(),e.innerHTML=this.getTemplate(),this.attachFormEvents(e),e},getInput:function(){return this.getForm().querySelector("input.medium-editor-toolbar-input")},getAnchorTargetCheckbox:function(){return this.getForm().querySelector(".medium-editor-toolbar-anchor-target")},getAnchorButtonCheckbox:function(){return this.getForm().querySelector(".medium-editor-toolbar-anchor-button")},handleTextboxKeyup:function(t){if(t.keyCode===e.util.keyCode.ENTER)return t.preventDefault(),void this.doFormSave();t.keyCode===e.util.keyCode.ESCAPE&&(t.preventDefault(),this.doFormCancel())},handleFormClick:function(e){e.stopPropagation()},handleSaveClick:function(e){e.preventDefault(),this.doFormSave()},handleCloseClick:function(e){e.preventDefault(),this.doFormCancel()}});e.extensions.anchor=t}(),function(){var t=e.Extension.extend({name:"anchor-preview",hideDelay:500,previewValueSelector:"a",showWhenToolbarIsVisible:!1,showOnEmptyLinks:!0,init:function(){this.anchorPreview=this.createPreview(),this.getEditorOption("elementsContainer").appendChild(this.anchorPreview),this.attachToEditables()},getInteractionElements:function(){return this.getPreviewElement()},getPreviewElement:function(){return this.anchorPreview},createPreview:function(){var e=this.document.createElement("div");return e.id="medium-editor-anchor-preview-"+this.getEditorId(),e.className="medium-editor-anchor-preview",e.innerHTML=this.getTemplate(),this.on(e,"click",this.handleClick.bind(this)),e},getTemplate:function(){return'<div class="medium-editor-toolbar-anchor-preview" id="medium-editor-toolbar-anchor-preview"> <a class="medium-editor-toolbar-anchor-preview-inner"></a></div>'},destroy:function(){this.anchorPreview&&(this.anchorPreview.parentNode&&this.anchorPreview.parentNode.removeChild(this.anchorPreview),delete this.anchorPreview)},hidePreview:function(){this.anchorPreview&&this.anchorPreview.classList.remove("medium-editor-anchor-preview-active"),this.activeAnchor=null},showPreview:function(e){return!(!this.anchorPreview.classList.contains("medium-editor-anchor-preview-active")&&!e.getAttribute("data-disable-preview"))||(this.previewValueSelector&&(this.anchorPreview.querySelector(this.previewValueSelector).textContent=e.attributes.href.value,this.anchorPreview.querySelector(this.previewValueSelector).href=e.attributes.href.value),this.anchorPreview.classList.add("medium-toolbar-arrow-over"),this.anchorPreview.classList.remove("medium-toolbar-arrow-under"),this.anchorPreview.classList.contains("medium-editor-anchor-preview-active")||this.anchorPreview.classList.add("medium-editor-anchor-preview-active"),this.activeAnchor=e,this.positionPreview(),this.attachPreviewHandlers(),this)},positionPreview:function(e){e=e||this.activeAnchor;var t,n,i,o,s,r=this.window.innerWidth,a=this.anchorPreview.offsetHeight,l=e.getBoundingClientRect(),c=this.diffLeft,u=this.diffTop,d=this.getEditorOption("elementsContainer"),h=["absolute","fixed"].indexOf(window.getComputedStyle(d).getPropertyValue("position"))>-1,m={};t=this.anchorPreview.offsetWidth/2;var f=this.base.getExtensionByName("toolbar");f&&(c=f.diffLeft,u=f.diffTop),n=c-t,h?(o=d.getBoundingClientRect(),["top","left"].forEach((function(e){m[e]=l[e]-o[e]})),m.width=l.width,m.height=l.height,l=m,r=o.width,s=d.scrollTop):s=this.window.pageYOffset,i=l.left+l.width/2,s+=a+l.top+l.height-u-this.anchorPreview.offsetHeight,this.anchorPreview.style.top=Math.round(s)+"px",this.anchorPreview.style.right="initial",i<t?(this.anchorPreview.style.left=n+t+"px",this.anchorPreview.style.right="initial"):r-i<t?(this.anchorPreview.style.left="auto",this.anchorPreview.style.right=0):(this.anchorPreview.style.left=n+i+"px",this.anchorPreview.style.right="initial")},attachToEditables:function(){this.subscribe("editableMouseover",this.handleEditableMouseover.bind(this)),this.subscribe("positionedToolbar",this.handlePositionedToolbar.bind(this))},handlePositionedToolbar:function(){this.showWhenToolbarIsVisible||this.hidePreview()},handleClick:function(e){var t=this.base.getExtensionByName("anchor"),n=this.activeAnchor;t&&n&&(e.preventDefault(),this.base.selectElement(this.activeAnchor),this.base.delay(function(){if(n){var e={value:n.attributes.href.value,target:n.getAttribute("target"),buttonClass:n.getAttribute("class")};t.showForm(e),n=null}}.bind(this))),this.hidePreview()},handleAnchorMouseout:function(){this.anchorToPreview=null,this.off(this.activeAnchor,"mouseout",this.instanceHandleAnchorMouseout),this.instanceHandleAnchorMouseout=null},handleEditableMouseover:function(t){var n=e.util.getClosestTag(t.target,"a");if(!1!==n){if(!this.showOnEmptyLinks&&(!/href=["']\S+["']/.test(n.outerHTML)||/href=["']#\S+["']/.test(n.outerHTML)))return!0;var i=this.base.getExtensionByName("toolbar");if(!this.showWhenToolbarIsVisible&&i&&i.isDisplayed&&i.isDisplayed())return!0;this.activeAnchor&&this.activeAnchor!==n&&this.detachPreviewHandlers(),this.anchorToPreview=n,this.instanceHandleAnchorMouseout=this.handleAnchorMouseout.bind(this),this.on(this.anchorToPreview,"mouseout",this.instanceHandleAnchorMouseout),this.base.delay(function(){this.anchorToPreview&&this.showPreview(this.anchorToPreview)}.bind(this))}},handlePreviewMouseover:function(){this.lastOver=(new Date).getTime(),this.hovering=!0},handlePreviewMouseout:function(e){e.relatedTarget&&/anchor-preview/.test(e.relatedTarget.className)||(this.hovering=!1)},updatePreview:function(){if(this.hovering)return!0;(new Date).getTime()-this.lastOver>this.hideDelay&&this.detachPreviewHandlers()},detachPreviewHandlers:function(){clearInterval(this.intervalTimer),this.instanceHandlePreviewMouseover&&(this.off(this.anchorPreview,"mouseover",this.instanceHandlePreviewMouseover),this.off(this.anchorPreview,"mouseout",this.instanceHandlePreviewMouseout),this.activeAnchor&&(this.off(this.activeAnchor,"mouseover",this.instanceHandlePreviewMouseover),this.off(this.activeAnchor,"mouseout",this.instanceHandlePreviewMouseout))),this.hidePreview(),this.hovering=this.instanceHandlePreviewMouseover=this.instanceHandlePreviewMouseout=null},attachPreviewHandlers:function(){this.lastOver=(new Date).getTime(),this.hovering=!0,this.instanceHandlePreviewMouseover=this.handlePreviewMouseover.bind(this),this.instanceHandlePreviewMouseout=this.handlePreviewMouseout.bind(this),this.intervalTimer=setInterval(this.updatePreview.bind(this),200),this.on(this.anchorPreview,"mouseover",this.instanceHandlePreviewMouseover),this.on(this.anchorPreview,"mouseout",this.instanceHandlePreviewMouseout),this.on(this.activeAnchor,"mouseover",this.instanceHandlePreviewMouseover),this.on(this.activeAnchor,"mouseout",this.instanceHandlePreviewMouseout)}});e.extensions.anchorPreview=t}(),function(){var t,n,i,o,s;t=[" ","\t","\n","\r","\xa0","\u2000","\u2001","\u2002","\u2003","\u2028","\u2029"],i="(((?:(https?://|ftps?://|nntp://)|www\\d{0,3}[.]|[a-z0-9.\\-]+[.]("+(n="com|net|org|edu|gov|mil|aero|asia|biz|cat|coop|info|int|jobs|mobi|museum|name|post|pro|tel|travel|xxx|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz|dd|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|ja|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw")+")\\/)\\S+(?:[^\\s`!\\[\\]{};:'\".,?\xab\xbb\u201c\u201d\u2018\u2019])))|(([a-z0-9\\-]+\\.)?[a-z0-9\\-]+\\.("+n+"))",o=new RegExp("^("+n+")$","i"),s=new RegExp(i,"gi");var r=e.Extension.extend({init:function(){e.Extension.prototype.init.apply(this,arguments),this.disableEventHandling=!1,this.subscribe("editableKeypress",this.onKeypress.bind(this)),this.subscribe("editableBlur",this.onBlur.bind(this)),this.document.execCommand("AutoUrlDetect",!1,!1)},isLastInstance:function(){for(var e=0,t=0;t<this.window._mediumEditors.length;t++){var n=this.window._mediumEditors[t];null!==n&&void 0!==n.getExtensionByName("autoLink")&&e++}return 1===e},destroy:function(){this.document.queryCommandSupported("AutoUrlDetect")&&this.isLastInstance()&&this.document.execCommand("AutoUrlDetect",!1,!0)},onBlur:function(e,t){this.performLinking(t)},onKeypress:function(t){this.disableEventHandling||e.util.isKey(t,[e.util.keyCode.SPACE,e.util.keyCode.ENTER])&&(clearTimeout(this.performLinkingTimeout),this.performLinkingTimeout=setTimeout(function(){try{var e=this.base.exportSelection();this.performLinking(t.target)&&this.base.importSelection(e,!0)}catch(n){window.console&&window.console.error("Failed to perform linking",n),this.disableEventHandling=!0}}.bind(this),0))},performLinking:function(t){var n=e.util.splitByBlockElements(t),i=!1;0===n.length&&(n=[t]);for(var o=0;o<n.length;o++)i=this.removeObsoleteAutoLinkSpans(n[o])||i,i=this.performLinkingWithinElement(n[o])||i;return this.base.events.updateInput(t,{target:t,currentTarget:t}),i},removeObsoleteAutoLinkSpans:function(t){if(!t||3===t.nodeType)return!1;for(var n,i=t.querySelectorAll('span[data-auto-link="true"]'),o=!1,s=0;s<i.length;s++){var r=i[s].textContent;if(-1===r.indexOf("://")&&(r=e.util.ensureUrlHasProtocol(r)),i[s].getAttribute("data-href")!==r&&(n=i[s],!e.util.getClosestTag(n,"a"))){o=!0;var a=r.replace(/\s+$/,"");if(i[s].getAttribute("data-href")===a){var l=r.length-a.length,c=e.util.splitOffDOMTree(i[s],this.splitTextBeforeEnd(i[s],l));i[s].parentNode.insertBefore(c,i[s].nextSibling)}else e.util.unwrap(i[s],this.document)}}return o},splitTextBeforeEnd:function(e,t){for(var n,i,o,s=this.document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),r=!0;r;)r=null!==s.lastChild();for(;t>0&&null!==o;)(i=(n=s.currentNode).nodeValue).length>t?(o=n.splitText(i.length-t),t=0):(o=s.previousNode(),t-=i.length);return o},performLinkingWithinElement:function(t){for(var n=this.findLinkableText(t),i=0;i<n.length;i++){var o=e.util.findOrCreateMatchingTextNodes(this.document,t,n[i]);this.shouldNotLink(o)||this.createAutoLink(o,n[i].href)}return!1},shouldNotLink:function(t){for(var n=!1,i=0;i<t.length&&!1===n;i++)n=!!e.util.traverseUp(t[i],(function(e){return"a"===e.nodeName.toLowerCase()||e.getAttribute&&"true"===e.getAttribute("data-auto-link")}));return n},findLinkableText:function(e){for(var n=e.textContent,i=null,r=[];null!==(i=s.exec(n));){var a=i.index+i[0].length;(0===i.index||-1!==t.indexOf(n[i.index-1]))&&(a===n.length||-1!==t.indexOf(n[a]))&&(-1!==i[0].indexOf("/")||o.test(i[0].split(".").pop().split("?").shift()))&&r.push({href:i[0],start:i.index,end:a})}return r},createAutoLink:function(t,n){n=e.util.ensureUrlHasProtocol(n);var i=e.util.createLink(this.document,t,n,this.getEditorOption("targetBlank")?"_blank":null),o=this.document.createElement("span");for(o.setAttribute("data-auto-link","true"),o.setAttribute("data-href",n),i.insertBefore(o,i.firstChild);i.childNodes.length>1;)o.appendChild(i.childNodes[1])}});e.extensions.autoLink=r}(),function(){var t="medium-editor-dragover";function n(n){var i=e.util.getContainerEditorElement(n);Array.prototype.slice.call(i.parentElement.querySelectorAll("."+t)).forEach((function(e){e.classList.remove(t)}))}var i=e.Extension.extend({name:"fileDragging",allowedTypes:["image"],init:function(){e.Extension.prototype.init.apply(this,arguments),this.subscribe("editableDrag",this.handleDrag.bind(this)),this.subscribe("editableDrop",this.handleDrop.bind(this))},handleDrag:function(e){e.preventDefault(),e.dataTransfer.dropEffect="copy";var i=e.target.classList?e.target:e.target.parentElement;n(i),"dragover"===e.type&&i.classList.add(t)},handleDrop:function(e){e.preventDefault(),e.stopPropagation(),this.base.selectElement(e.target);var t=this.base.exportSelection();t.start=t.end,this.base.importSelection(t),e.dataTransfer.files&&Array.prototype.slice.call(e.dataTransfer.files).forEach((function(e){this.isAllowedFile(e)&&e.type.match("image")&&this.insertImageFile(e)}),this),n(e.target)},isAllowedFile:function(e){return this.allowedTypes.some((function(t){return!!e.type.match(t)}))},insertImageFile:function(t){if("function"===typeof FileReader){var n=new FileReader;n.readAsDataURL(t),n.addEventListener("load",function(t){var n=this.document.createElement("img");n.src=t.target.result,e.util.insertHTMLCommand(this.document,n.outerHTML)}.bind(this))}}});e.extensions.fileDragging=i}(),function(){var t=e.Extension.extend({name:"keyboard-commands",commands:[{command:"bold",key:"B",meta:!0,shift:!1,alt:!1},{command:"italic",key:"I",meta:!0,shift:!1,alt:!1},{command:"underline",key:"U",meta:!0,shift:!1,alt:!1}],init:function(){e.Extension.prototype.init.apply(this,arguments),this.subscribe("editableKeydown",this.handleKeydown.bind(this)),this.keys={},this.commands.forEach((function(e){var t=e.key.charCodeAt(0);this.keys[t]||(this.keys[t]=[]),this.keys[t].push(e)}),this)},handleKeydown:function(t){var n=e.util.getKeyCode(t);if(this.keys[n]){var i=e.util.isMetaCtrlKey(t),o=!!t.shiftKey,s=!!t.altKey;this.keys[n].forEach((function(e){e.meta!==i||e.shift!==o||e.alt!==s&&void 0!==e.alt||(t.preventDefault(),t.stopPropagation(),"function"===typeof e.command?e.command.apply(this):!1!==e.command&&this.execAction(e.command))}),this)}}});e.extensions.keyboardCommands=t}(),function(){var t=e.extensions.form.extend({name:"fontname",action:"fontName",aria:"change font name",contentDefault:"&#xB1;",contentFA:'<i class="fa fa-font"></i>',fonts:["","Arial","Verdana","Times New Roman"],init:function(){e.extensions.form.prototype.init.apply(this,arguments)},handleClick:function(e){if(e.preventDefault(),e.stopPropagation(),!this.isDisplayed()){var t=this.document.queryCommandValue("fontName")+"";this.showForm(t)}return!1},getForm:function(){return this.form||(this.form=this.createForm()),this.form},isDisplayed:function(){return"block"===this.getForm().style.display},hideForm:function(){this.getForm().style.display="none",this.getSelect().value=""},showForm:function(e){var t=this.getSelect();this.base.saveSelection(),this.hideToolbarDefaultActions(),this.getForm().style.display="block",this.setToolbarPosition(),t.value=e||"",t.focus()},destroy:function(){if(!this.form)return!1;this.form.parentNode&&this.form.parentNode.removeChild(this.form),delete this.form},doFormSave:function(){this.base.restoreSelection(),this.base.checkSelection()},doFormCancel:function(){this.base.restoreSelection(),this.clearFontName(),this.base.checkSelection()},createForm:function(){var e,t=this.document,n=t.createElement("div"),i=t.createElement("select"),o=t.createElement("a"),s=t.createElement("a");n.className="medium-editor-toolbar-form",n.id="medium-editor-toolbar-form-fontname-"+this.getEditorId(),this.on(n,"click",this.handleFormClick.bind(this));for(var r=0;r<this.fonts.length;r++)(e=t.createElement("option")).innerHTML=this.fonts[r],e.value=this.fonts[r],i.appendChild(e);return i.className="medium-editor-toolbar-select",n.appendChild(i),this.on(i,"change",this.handleFontChange.bind(this)),s.setAttribute("href","#"),s.className="medium-editor-toobar-save",s.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-check"></i>':"&#10003;",n.appendChild(s),this.on(s,"click",this.handleSaveClick.bind(this),!0),o.setAttribute("href","#"),o.className="medium-editor-toobar-close",o.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-times"></i>':"&times;",n.appendChild(o),this.on(o,"click",this.handleCloseClick.bind(this)),n},getSelect:function(){return this.getForm().querySelector("select.medium-editor-toolbar-select")},clearFontName:function(){e.selection.getSelectedElements(this.document).forEach((function(e){"font"===e.nodeName.toLowerCase()&&e.hasAttribute("face")&&e.removeAttribute("face")}))},handleFontChange:function(){var e=this.getSelect().value;""===e?this.clearFontName():this.execAction("fontName",{value:e})},handleFormClick:function(e){e.stopPropagation()},handleSaveClick:function(e){e.preventDefault(),this.doFormSave()},handleCloseClick:function(e){e.preventDefault(),this.doFormCancel()}});e.extensions.fontName=t}(),function(){var t=e.extensions.form.extend({name:"fontsize",action:"fontSize",aria:"increase/decrease font size",contentDefault:"&#xB1;",contentFA:'<i class="fa fa-text-height"></i>',init:function(){e.extensions.form.prototype.init.apply(this,arguments)},handleClick:function(e){if(e.preventDefault(),e.stopPropagation(),!this.isDisplayed()){var t=this.document.queryCommandValue("fontSize")+"";this.showForm(t)}return!1},getForm:function(){return this.form||(this.form=this.createForm()),this.form},isDisplayed:function(){return"block"===this.getForm().style.display},hideForm:function(){this.getForm().style.display="none",this.getInput().value=""},showForm:function(e){var t=this.getInput();this.base.saveSelection(),this.hideToolbarDefaultActions(),this.getForm().style.display="block",this.setToolbarPosition(),t.value=e||"",t.focus()},destroy:function(){if(!this.form)return!1;this.form.parentNode&&this.form.parentNode.removeChild(this.form),delete this.form},doFormSave:function(){this.base.restoreSelection(),this.base.checkSelection()},doFormCancel:function(){this.base.restoreSelection(),this.clearFontSize(),this.base.checkSelection()},createForm:function(){var e=this.document,t=e.createElement("div"),n=e.createElement("input"),i=e.createElement("a"),o=e.createElement("a");return t.className="medium-editor-toolbar-form",t.id="medium-editor-toolbar-form-fontsize-"+this.getEditorId(),this.on(t,"click",this.handleFormClick.bind(this)),n.setAttribute("type","range"),n.setAttribute("min","1"),n.setAttribute("max","7"),n.className="medium-editor-toolbar-input",t.appendChild(n),this.on(n,"change",this.handleSliderChange.bind(this)),o.setAttribute("href","#"),o.className="medium-editor-toobar-save",o.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-check"></i>':"&#10003;",t.appendChild(o),this.on(o,"click",this.handleSaveClick.bind(this),!0),i.setAttribute("href","#"),i.className="medium-editor-toobar-close",i.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-times"></i>':"&times;",t.appendChild(i),this.on(i,"click",this.handleCloseClick.bind(this)),t},getInput:function(){return this.getForm().querySelector("input.medium-editor-toolbar-input")},clearFontSize:function(){e.selection.getSelectedElements(this.document).forEach((function(e){"font"===e.nodeName.toLowerCase()&&e.hasAttribute("size")&&e.removeAttribute("size")}))},handleSliderChange:function(){var e=this.getInput().value;"4"===e?this.clearFontSize():this.execAction("fontSize",{value:e})},handleFormClick:function(e){e.stopPropagation()},handleSaveClick:function(e){e.preventDefault(),this.doFormSave()},handleCloseClick:function(e){e.preventDefault(),this.doFormCancel()}});e.extensions.fontSize=t}(),function(){var t="%ME_PASTEBIN%",n=null,i=null,o=function(e){e.stopPropagation()};function s(e,t,n){var i=e.clipboardData||t.clipboardData||n.dataTransfer,o={};if(!i)return o;if(i.getData){var s=i.getData("Text");s&&s.length>0&&(o["text/plain"]=s)}if(i.types)for(var r=0;r<i.types.length;r++){var a=i.types[r];o[a]=i.getData(a)}return o}var r=e.Extension.extend({forcePlainText:!0,cleanPastedHTML:!1,preCleanReplacements:[],cleanReplacements:[],cleanAttrs:["class","style","dir"],cleanTags:["meta"],unwrapTags:[],init:function(){e.Extension.prototype.init.apply(this,arguments),(this.forcePlainText||this.cleanPastedHTML)&&(this.subscribe("editableKeydown",this.handleKeydown.bind(this)),this.getEditorElements().forEach((function(e){this.on(e,"paste",this.handlePaste.bind(this))}),this),this.subscribe("addElement",this.handleAddElement.bind(this)))},handleAddElement:function(e,t){this.on(t,"paste",this.handlePaste.bind(this))},destroy:function(){(this.forcePlainText||this.cleanPastedHTML)&&this.removePasteBin()},handlePaste:function(e,t){if(!e.defaultPrevented){var n=s(e,this.window,this.document),i=n["text/html"],o=n["text/plain"];this.window.clipboardData&&void 0===e.clipboardData&&!i&&(i=o),(i||o)&&(e.preventDefault(),this.doPaste(i,o,t))}},doPaste:function(t,n,i){var o,s,r="";if(this.cleanPastedHTML&&t)return this.cleanPaste(t);if(n){if(this.getEditorOption("disableReturn")||i&&i.getAttribute("data-disable-return"))r=e.util.htmlEntities(n);else if((o=n.split(/[\r\n]+/g)).length>1)for(s=0;s<o.length;s+=1)""!==o[s]&&(r+="<p>"+e.util.htmlEntities(o[s])+"</p>");else r=e.util.htmlEntities(o[0]);e.util.insertHTMLCommand(this.document,r)}},handlePasteBinPaste:function(e){if(e.defaultPrevented)this.removePasteBin();else{var t=s(e,this.window,this.document),n=t["text/html"],o=t["text/plain"],r=i;if(!this.cleanPastedHTML||n)return e.preventDefault(),this.removePasteBin(),this.doPaste(n,o,r),void this.trigger("editablePaste",{currentTarget:r,target:r},r);setTimeout(function(){this.cleanPastedHTML&&(n=this.getPasteBinHtml()),this.removePasteBin(),this.doPaste(n,o,r),this.trigger("editablePaste",{currentTarget:r,target:r},r)}.bind(this),0)}},handleKeydown:function(t,n){e.util.isKey(t,e.util.keyCode.V)&&e.util.isMetaCtrlKey(t)&&(t.stopImmediatePropagation(),this.removePasteBin(),this.createPasteBin(n))},createPasteBin:function(s){var r,a=e.selection.getSelectionRange(this.document),l=this.window.pageYOffset;i=s,a&&((r=a.getClientRects()).length?l+=r[0].top:void 0!==a.startContainer.getBoundingClientRect?l+=a.startContainer.getBoundingClientRect().top:l+=a.getBoundingClientRect().top),n=a;var c=this.document.createElement("div");c.id=this.pasteBinId="medium-editor-pastebin-"+ +Date.now(),c.setAttribute("style","border: 1px red solid; position: absolute; top: "+l+"px; width: 10px; height: 10px; overflow: hidden; opacity: 0"),c.setAttribute("contentEditable",!0),c.innerHTML=t,this.document.body.appendChild(c),this.on(c,"focus",o),this.on(c,"focusin",o),this.on(c,"focusout",o),c.focus(),e.selection.selectNode(c,this.document),this.boundHandlePaste||(this.boundHandlePaste=this.handlePasteBinPaste.bind(this)),this.on(c,"paste",this.boundHandlePaste)},removePasteBin:function(){null!==n&&(e.selection.selectRange(this.document,n),n=null),null!==i&&(i=null);var t=this.getPasteBin();t&&t&&(this.off(t,"focus",o),this.off(t,"focusin",o),this.off(t,"focusout",o),this.off(t,"paste",this.boundHandlePaste),t.parentElement.removeChild(t))},getPasteBin:function(){return this.document.getElementById(this.pasteBinId)},getPasteBinHtml:function(){var e=this.getPasteBin();if(!e)return!1;if(e.firstChild&&"mcepastebin"===e.firstChild.id)return!1;var n=e.innerHTML;return!(!n||n===t)&&n},cleanPaste:function(e){var t,n,i,o,s=/<p|<br|<div/.test(e),r=[].concat(this.preCleanReplacements||[],[[new RegExp(/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g),""],[new RegExp(/<!--StartFragment-->|<!--EndFragment-->/g),""],[new RegExp(/<br>$/i),""],[new RegExp(/<[^>]*docs-internal-guid[^>]*>/gi),""],[new RegExp(/<\/b>(<br[^>]*>)?$/gi),""],[new RegExp(/<span class="Apple-converted-space">\s+<\/span>/g)," "],[new RegExp(/<br class="Apple-interchange-newline">/g),"<br>"],[new RegExp(/<span[^>]*(font-style:italic;font-weight:(bold|700)|font-weight:(bold|700);font-style:italic)[^>]*>/gi),'<span class="replace-with italic bold">'],[new RegExp(/<span[^>]*font-style:italic[^>]*>/gi),'<span class="replace-with italic">'],[new RegExp(/<span[^>]*font-weight:(bold|700)[^>]*>/gi),'<span class="replace-with bold">'],[new RegExp(/&lt;(\/?)(i|b|a)&gt;/gi),"<$1$2>"],[new RegExp(/&lt;a(?:(?!href).)+href=(?:&quot;|&rdquo;|&ldquo;|"|\u201c|\u201d)(((?!&quot;|&rdquo;|&ldquo;|"|\u201c|\u201d).)*)(?:&quot;|&rdquo;|&ldquo;|"|\u201c|\u201d)(?:(?!&gt;).)*&gt;/gi),'<a href="$1">'],[new RegExp(/<\/p>\n+/gi),"</p>"],[new RegExp(/\n+<p/gi),"<p"],[new RegExp(/<\/?o:[a-z]*>/gi),""],[new RegExp(/<!\[if !supportLists\]>(((?!<!).)*)<!\[endif]\>/gi),"$1"]],this.cleanReplacements||[]);for(t=0;t<r.length;t+=1)e=e.replace(r[t][0],r[t][1]);if(!s)return this.pasteHTML(e);for((i=this.document.createElement("div")).innerHTML="<p>"+e.split("<br><br>").join("</p><p>")+"</p>",n=i.querySelectorAll("a,p,div,br"),t=0;t<n.length;t+=1)switch((o=n[t]).innerHTML=o.innerHTML.replace(/\n/gi," "),o.nodeName.toLowerCase()){case"p":case"div":this.filterCommonBlocks(o);break;case"br":this.filterLineBreak(o)}this.pasteHTML(i.innerHTML)},pasteHTML:function(t,n){n=e.util.defaults({},n,{cleanAttrs:this.cleanAttrs,cleanTags:this.cleanTags,unwrapTags:this.unwrapTags});var i,o,s,r,a=this.document.createDocumentFragment();for(a.appendChild(this.document.createElement("body")),(r=a.querySelector("body")).innerHTML=t,this.cleanupSpans(r),i=r.querySelectorAll("*"),s=0;s<i.length;s+=1)"a"===(o=i[s]).nodeName.toLowerCase()&&this.getEditorOption("targetBlank")&&e.util.setTargetBlank(o),e.util.cleanupAttrs(o,n.cleanAttrs),e.util.cleanupTags(o,n.cleanTags),e.util.unwrapTags(o,n.unwrapTags);e.util.insertHTMLCommand(this.document,r.innerHTML.replace(/&nbsp;/g," "))},isCommonBlock:function(e){return e&&("p"===e.nodeName.toLowerCase()||"div"===e.nodeName.toLowerCase())},filterCommonBlocks:function(e){/^\s*$/.test(e.textContent)&&e.parentNode&&e.parentNode.removeChild(e)},filterLineBreak:function(e){this.isCommonBlock(e.previousElementSibling)?this.removeWithParent(e):!this.isCommonBlock(e.parentNode)||e.parentNode.firstChild!==e&&e.parentNode.lastChild!==e?e.parentNode&&1===e.parentNode.childElementCount&&""===e.parentNode.textContent&&this.removeWithParent(e):this.removeWithParent(e)},removeWithParent:function(e){e&&e.parentNode&&(e.parentNode.parentNode&&1===e.parentNode.childElementCount?e.parentNode.parentNode.removeChild(e.parentNode):e.parentNode.removeChild(e))},cleanupSpans:function(t){var n,i,o,s=t.querySelectorAll(".replace-with"),r=function(e){return e&&"#text"!==e.nodeName&&"false"===e.getAttribute("contenteditable")};for(n=0;n<s.length;n+=1)i=s[n],o=this.document.createElement(i.classList.contains("bold")?"b":"i"),i.classList.contains("bold")&&i.classList.contains("italic")?o.innerHTML="<i>"+i.innerHTML+"</i>":o.innerHTML=i.innerHTML,i.parentNode.replaceChild(o,i);for(s=t.querySelectorAll("span"),n=0;n<s.length;n+=1){if(i=s[n],e.util.traverseUp(i,r))return!1;e.util.unwrap(i,this.document)}}});e.extensions.paste=r}(),function(){var t=e.Extension.extend({name:"placeholder",text:"Type your text",hideOnClick:!0,init:function(){e.Extension.prototype.init.apply(this,arguments),this.initPlaceholders(),this.attachEventHandlers()},initPlaceholders:function(){this.getEditorElements().forEach(this.initElement,this)},handleAddElement:function(e,t){this.initElement(t)},initElement:function(e){e.getAttribute("data-placeholder")||e.setAttribute("data-placeholder",this.text),this.updatePlaceholder(e)},destroy:function(){this.getEditorElements().forEach(this.cleanupElement,this)},handleRemoveElement:function(e,t){this.cleanupElement(t)},cleanupElement:function(e){e.getAttribute("data-placeholder")===this.text&&e.removeAttribute("data-placeholder")},showPlaceholder:function(t){t&&(e.util.isFF&&0===t.childNodes.length?(t.classList.add("medium-editor-placeholder-relative"),t.classList.remove("medium-editor-placeholder")):(t.classList.add("medium-editor-placeholder"),t.classList.remove("medium-editor-placeholder-relative")))},hidePlaceholder:function(e){e&&(e.classList.remove("medium-editor-placeholder"),e.classList.remove("medium-editor-placeholder-relative"))},updatePlaceholder:function(e,t){if(e.querySelector("img, blockquote, ul, ol, table")||""!==e.textContent.replace(/^\s+|\s+$/g,""))return this.hidePlaceholder(e);t||this.showPlaceholder(e)},attachEventHandlers:function(){this.hideOnClick&&this.subscribe("focus",this.handleFocus.bind(this)),this.subscribe("editableInput",this.handleInput.bind(this)),this.subscribe("blur",this.handleBlur.bind(this)),this.subscribe("addElement",this.handleAddElement.bind(this)),this.subscribe("removeElement",this.handleRemoveElement.bind(this))},handleInput:function(e,t){var n=this.hideOnClick&&t===this.base.getFocusedElement();this.updatePlaceholder(t,n)},handleFocus:function(e,t){this.hidePlaceholder(t)},handleBlur:function(e,t){this.updatePlaceholder(t)}});e.extensions.placeholder=t}(),function(){var t=e.Extension.extend({name:"toolbar",align:"center",allowMultiParagraphSelection:!0,buttons:["bold","italic","underline","anchor","h2","h3","quote"],diffLeft:0,diffTop:-10,firstButtonClass:"medium-editor-button-first",lastButtonClass:"medium-editor-button-last",standardizeSelectionStart:!1,static:!1,sticky:!1,stickyTopOffset:0,updateOnEmptySelection:!1,relativeContainer:null,init:function(){e.Extension.prototype.init.apply(this,arguments),this.initThrottledMethods(),this.relativeContainer?this.relativeContainer.appendChild(this.getToolbarElement()):this.getEditorOption("elementsContainer").appendChild(this.getToolbarElement())},forEachExtension:function(e,t){return this.base.extensions.forEach((function(n){if(n!==this)return e.apply(t||this,arguments)}),this)},createToolbar:function(){var e=this.document.createElement("div");return e.id="medium-editor-toolbar-"+this.getEditorId(),e.className="medium-editor-toolbar",this.static?e.className+=" static-toolbar":this.relativeContainer?e.className+=" medium-editor-relative-toolbar":e.className+=" medium-editor-stalker-toolbar",e.appendChild(this.createToolbarButtons()),this.forEachExtension((function(t){t.hasForm&&e.appendChild(t.getForm())})),this.attachEventHandlers(),e},createToolbarButtons:function(){var t,n,i,o,s,r,a=this.document.createElement("ul");return a.id="medium-editor-toolbar-actions"+this.getEditorId(),a.className="medium-editor-toolbar-actions",a.style.display="block",this.buttons.forEach((function(i){"string"===typeof i?(s=i,r=null):(s=i.name,r=i),(o=this.base.addBuiltInExtension(s,r))&&"function"===typeof o.getButton&&(n=o.getButton(this.base),t=this.document.createElement("li"),e.util.isElement(n)?t.appendChild(n):t.innerHTML=n,a.appendChild(t))}),this),(i=a.querySelectorAll("button")).length>0&&(i[0].classList.add(this.firstButtonClass),i[i.length-1].classList.add(this.lastButtonClass)),a},destroy:function(){this.toolbar&&(this.toolbar.parentNode&&this.toolbar.parentNode.removeChild(this.toolbar),delete this.toolbar)},getInteractionElements:function(){return this.getToolbarElement()},getToolbarElement:function(){return this.toolbar||(this.toolbar=this.createToolbar()),this.toolbar},getToolbarActionsElement:function(){return this.getToolbarElement().querySelector(".medium-editor-toolbar-actions")},initThrottledMethods:function(){this.throttledPositionToolbar=e.util.throttle(function(){this.base.isActive&&this.positionToolbarIfShown()}.bind(this))},attachEventHandlers:function(){this.subscribe("blur",this.handleBlur.bind(this)),this.subscribe("focus",this.handleFocus.bind(this)),this.subscribe("editableClick",this.handleEditableClick.bind(this)),this.subscribe("editableKeyup",this.handleEditableKeyup.bind(this)),this.on(this.document.documentElement,"mouseup",this.handleDocumentMouseup.bind(this)),this.static&&this.sticky&&this.on(this.window,"scroll",this.handleWindowScroll.bind(this),!0),this.on(this.window,"resize",this.handleWindowResize.bind(this))},handleWindowScroll:function(){this.positionToolbarIfShown()},handleWindowResize:function(){this.throttledPositionToolbar()},handleDocumentMouseup:function(t){if(t&&t.target&&e.util.isDescendant(this.getToolbarElement(),t.target))return!1;this.checkState()},handleEditableClick:function(){setTimeout(function(){this.checkState()}.bind(this),0)},handleEditableKeyup:function(){this.checkState()},handleBlur:function(){clearTimeout(this.hideTimeout),clearTimeout(this.delayShowTimeout),this.hideTimeout=setTimeout(function(){this.hideToolbar()}.bind(this),1)},handleFocus:function(){this.checkState()},isDisplayed:function(){return this.getToolbarElement().classList.contains("medium-editor-toolbar-active")},showToolbar:function(){clearTimeout(this.hideTimeout),this.isDisplayed()||(this.getToolbarElement().classList.add("medium-editor-toolbar-active"),this.trigger("showToolbar",{},this.base.getFocusedElement()))},hideToolbar:function(){this.isDisplayed()&&(this.getToolbarElement().classList.remove("medium-editor-toolbar-active"),this.trigger("hideToolbar",{},this.base.getFocusedElement()))},isToolbarDefaultActionsDisplayed:function(){return"block"===this.getToolbarActionsElement().style.display},hideToolbarDefaultActions:function(){this.isToolbarDefaultActionsDisplayed()&&(this.getToolbarActionsElement().style.display="none")},showToolbarDefaultActions:function(){this.hideExtensionForms(),this.isToolbarDefaultActionsDisplayed()||(this.getToolbarActionsElement().style.display="block"),this.delayShowTimeout=this.base.delay(function(){this.showToolbar()}.bind(this))},hideExtensionForms:function(){this.forEachExtension((function(e){e.hasForm&&e.isDisplayed()&&e.hideForm()}))},multipleBlockElementsSelected:function(){var t=new RegExp("<("+e.util.blockContainerElementNames.join("|")+")[^>]*>","g"),n=e.selection.getSelectionHtml(this.document).replace(/<[^\/>][^>]*><\/[^>]+>/gim,"").match(t);return!!n&&n.length>1},modifySelection:function(){var t=this.window.getSelection().getRangeAt(0);if(this.standardizeSelectionStart&&t.startContainer.nodeValue&&t.startOffset===t.startContainer.nodeValue.length){var n=e.util.findAdjacentTextNodeWithContent(e.selection.getSelectionElement(this.window),t.startContainer,this.document);if(n){for(var i=0;0===n.nodeValue.substr(i,1).trim().length;)i+=1;t=e.selection.select(this.document,n,i,t.endContainer,t.endOffset)}}},checkState:function(){if(!this.base.preventSelectionUpdates){if(!this.base.getFocusedElement()||e.selection.selectionInContentEditableFalse(this.window))return this.hideToolbar();var t=e.selection.getSelectionElement(this.window);return!t||-1===this.getEditorElements().indexOf(t)||t.getAttribute("data-disable-toolbar")?this.hideToolbar():this.updateOnEmptySelection&&this.static?this.showAndUpdateToolbar():!e.selection.selectionContainsContent(this.document)||!1===this.allowMultiParagraphSelection&&this.multipleBlockElementsSelected()?this.hideToolbar():void this.showAndUpdateToolbar()}},showAndUpdateToolbar:function(){this.modifySelection(),this.setToolbarButtonStates(),this.trigger("positionToolbar",{},this.base.getFocusedElement()),this.showToolbarDefaultActions(),this.setToolbarPosition()},setToolbarButtonStates:function(){this.forEachExtension((function(e){"function"===typeof e.isActive&&"function"===typeof e.setInactive&&e.setInactive()})),this.checkActiveButtons()},checkActiveButtons:function(){var t,n=[],i=null,o=e.selection.getSelectionRange(this.document),s=function(e){"function"===typeof e.checkState?e.checkState(t):"function"===typeof e.isActive&&"function"===typeof e.isAlreadyApplied&&"function"===typeof e.setActive&&!e.isActive()&&e.isAlreadyApplied(t)&&e.setActive()};if(o&&(this.forEachExtension((function(e){"function"!==typeof e.queryCommandState||null===(i=e.queryCommandState())?n.push(e):i&&"function"===typeof e.setActive&&e.setActive()})),t=e.selection.getSelectedParentElement(o),this.getEditorElements().some((function(n){return e.util.isDescendant(n,t,!0)}))))for(;t&&(n.forEach(s),!e.util.isMediumEditorElement(t));)t=t.parentNode},positionToolbarIfShown:function(){this.isDisplayed()&&this.setToolbarPosition()},setToolbarPosition:function(){var e=this.base.getFocusedElement(),t=this.window.getSelection();if(!e)return this;!this.static&&t.isCollapsed||(this.showToolbar(),this.relativeContainer||(this.static?this.positionStaticToolbar(e):this.positionToolbar(t)),this.trigger("positionedToolbar",{},this.base.getFocusedElement()))},positionStaticToolbar:function(e){this.getToolbarElement().style.left="0";var t,n=this.document.documentElement&&this.document.documentElement.scrollTop||this.document.body.scrollTop,i=this.window.innerWidth,o=this.getToolbarElement(),s=e.getBoundingClientRect(),r=s.top+n,a=s.left+s.width/2,l=o.offsetHeight,c=o.offsetWidth,u=c/2;switch(this.sticky?n>r+e.offsetHeight-l-this.stickyTopOffset?(o.style.top=r+e.offsetHeight-l+"px",o.classList.remove("medium-editor-sticky-toolbar")):n>r-l-this.stickyTopOffset?(o.classList.add("medium-editor-sticky-toolbar"),o.style.top=this.stickyTopOffset+"px"):(o.classList.remove("medium-editor-sticky-toolbar"),o.style.top=r-l+"px"):o.style.top=r-l+"px",this.align){case"left":t=s.left;break;case"right":t=s.right-c;break;case"center":t=a-u}t<0?t=0:t+c>i&&(t=i-Math.ceil(c)-1),o.style.left=t+"px"},positionToolbar:function(e){this.getToolbarElement().style.left="0",this.getToolbarElement().style.right="initial";var t=e.getRangeAt(0),n=t.getBoundingClientRect();(!n||0===n.height&&0===n.width&&t.startContainer===t.endContainer)&&(n=1===t.startContainer.nodeType&&t.startContainer.querySelector("img")?t.startContainer.querySelector("img").getBoundingClientRect():t.startContainer.getBoundingClientRect());var i,o,s=this.window.innerWidth,r=this.getToolbarElement(),a=r.offsetHeight,l=r.offsetWidth/2,c=this.diffLeft-l,u=this.getEditorOption("elementsContainer"),d=["absolute","fixed"].indexOf(window.getComputedStyle(u).getPropertyValue("position"))>-1,h={},m={};d?(o=u.getBoundingClientRect(),["top","left"].forEach((function(e){m[e]=n[e]-o[e]})),m.width=n.width,m.height=n.height,n=m,s=o.width,h.top=u.scrollTop):h.top=this.window.pageYOffset,i=n.left+n.width/2,h.top+=n.top-a,n.top<50?(r.classList.add("medium-toolbar-arrow-over"),r.classList.remove("medium-toolbar-arrow-under"),h.top+=50+n.height-this.diffTop):(r.classList.add("medium-toolbar-arrow-under"),r.classList.remove("medium-toolbar-arrow-over"),h.top+=this.diffTop),i<l?(h.left=c+l,h.right="initial"):s-i<l?(h.left="auto",h.right=0):(h.left=c+i,h.right="initial"),["top","left","right"].forEach((function(e){r.style[e]=h[e]+(isNaN(h[e])?"":"px")}))}});e.extensions.toolbar=t}(),function(){var t=e.Extension.extend({init:function(){e.Extension.prototype.init.apply(this,arguments),this.subscribe("editableDrag",this.handleDrag.bind(this)),this.subscribe("editableDrop",this.handleDrop.bind(this))},handleDrag:function(e){var t="medium-editor-dragover";e.preventDefault(),e.dataTransfer.dropEffect="copy","dragover"===e.type?e.target.classList.add(t):"dragleave"===e.type&&e.target.classList.remove(t)},handleDrop:function(t){t.preventDefault(),t.stopPropagation(),t.dataTransfer.files&&Array.prototype.slice.call(t.dataTransfer.files,0).some(function(t){var n,i;t.type.match("image")&&((n=new FileReader).readAsDataURL(t),i="medium-img-"+ +new Date,e.util.insertHTMLCommand(this.document,'<img class="medium-editor-image-loading" id="'+i+'" />'),n.onload=function(){var e=this.document.getElementById(i);e&&(e.removeAttribute("id"),e.removeAttribute("class"),e.src=n.result)}.bind(this))}.bind(this)),t.target.classList.remove("medium-editor-dragover")}});e.extensions.imageDragging=t}(),function(){function t(t){var n=e.selection.getSelectionStart(this.options.ownerDocument),i=n.textContent,o=e.selection.getCaretOffsets(n);(void 0===i[o.left-1]||""===i[o.left-1].trim()||void 0!==i[o.left]&&""===i[o.left].trim())&&t.preventDefault()}function n(t,n){if(this.options.disableReturn||n.getAttribute("data-disable-return"))t.preventDefault();else if(this.options.disableDoubleReturn||n.getAttribute("data-disable-double-return")){var i=e.selection.getSelectionStart(this.options.ownerDocument);(i&&""===i.textContent.trim()&&"li"!==i.nodeName.toLowerCase()||i.previousElementSibling&&"br"!==i.previousElementSibling.nodeName.toLowerCase()&&""===i.previousElementSibling.textContent.trim())&&t.preventDefault()}}function i(t){var n=e.selection.getSelectionStart(this.options.ownerDocument);"pre"===(n&&n.nodeName.toLowerCase())&&(t.preventDefault(),e.util.insertHTMLCommand(this.options.ownerDocument," ")),e.util.isListItem(n)&&(t.preventDefault(),t.shiftKey?this.options.ownerDocument.execCommand("outdent",!1,null):this.options.ownerDocument.execCommand("indent",!1,null))}function o(t){var n,i=e.selection.getSelectionStart(this.options.ownerDocument),o=i.nodeName.toLowerCase(),s=/^(\s+|<br\/?>)?$/i,r=/h\d/i;e.util.isKey(t,[e.util.keyCode.BACKSPACE,e.util.keyCode.ENTER])&&i.previousElementSibling&&r.test(o)&&0===e.selection.getCaretOffsets(i).left?e.util.isKey(t,e.util.keyCode.BACKSPACE)&&s.test(i.previousElementSibling.innerHTML)?(i.previousElementSibling.parentNode.removeChild(i.previousElementSibling),t.preventDefault()):!this.options.disableDoubleReturn&&e.util.isKey(t,e.util.keyCode.ENTER)&&((n=this.options.ownerDocument.createElement("p")).innerHTML="<br>",i.previousElementSibling.parentNode.insertBefore(n,i),t.preventDefault()):e.util.isKey(t,e.util.keyCode.DELETE)&&i.nextElementSibling&&i.previousElementSibling&&!r.test(o)&&s.test(i.innerHTML)&&r.test(i.nextElementSibling.nodeName.toLowerCase())?(e.selection.moveCursor(this.options.ownerDocument,i.nextElementSibling),i.previousElementSibling.parentNode.removeChild(i),t.preventDefault()):e.util.isKey(t,e.util.keyCode.BACKSPACE)&&"li"===o&&s.test(i.innerHTML)&&!i.previousElementSibling&&!i.parentElement.previousElementSibling&&i.nextElementSibling&&"li"===i.nextElementSibling.nodeName.toLowerCase()?((n=this.options.ownerDocument.createElement("p")).innerHTML="<br>",i.parentElement.parentElement.insertBefore(n,i.parentElement),e.selection.moveCursor(this.options.ownerDocument,n),i.parentElement.removeChild(i),t.preventDefault()):e.util.isKey(t,e.util.keyCode.BACKSPACE)&&!1!==e.util.getClosestTag(i,"blockquote")&&0===e.selection.getCaretOffsets(i).left?(t.preventDefault(),e.util.execFormatBlock(this.options.ownerDocument,"p")):e.util.isKey(t,e.util.keyCode.ENTER)&&!1!==e.util.getClosestTag(i,"blockquote")&&0===e.selection.getCaretOffsets(i).right?((n=this.options.ownerDocument.createElement("p")).innerHTML="<br>",i.parentElement.insertBefore(n,i.nextSibling),e.selection.moveCursor(this.options.ownerDocument,n),t.preventDefault()):e.util.isKey(t,e.util.keyCode.BACKSPACE)&&e.util.isMediumEditorElement(i.parentElement)&&!i.previousElementSibling&&i.nextElementSibling&&s.test(i.innerHTML)&&(t.preventDefault(),e.selection.moveCursor(this.options.ownerDocument,i.nextSibling),i.parentElement.removeChild(i))}function s(t){var n=e.selection.getSelectionStart(this.options.ownerDocument);n&&(e.util.isMediumEditorElement(n)&&0===n.children.length&&!e.util.isBlockContainer(n)&&this.options.ownerDocument.execCommand("formatBlock",!1,"p"),!e.util.isKey(t,e.util.keyCode.ENTER)||e.util.isListItem(n)||e.util.isBlockContainer(n)||("a"===n.nodeName.toLowerCase()?this.options.ownerDocument.execCommand("unlink",!1,null):t.shiftKey||t.ctrlKey||this.options.ownerDocument.execCommand("formatBlock",!1,"p")))}function r(e,t){var n=t.parentNode.querySelector('textarea[medium-editor-textarea-id="'+t.getAttribute("medium-editor-textarea-id")+'"]');n&&(n.value=t.innerHTML.trim())}function a(e){e._mediumEditors||(e._mediumEditors=[null]),this.id||(this.id=e._mediumEditors.length),e._mediumEditors[this.id]=this}function l(e){e._mediumEditors&&e._mediumEditors[this.id]&&(e._mediumEditors[this.id]=null)}function c(t,n,i){var o=[];if(t||(t=[]),"string"===typeof t&&(t=n.querySelectorAll(t)),e.util.isElement(t)&&(t=[t]),i)for(var s=0;s<t.length;s++){var r=t[s];!e.util.isElement(r)||r.getAttribute("data-medium-editor-element")||r.getAttribute("medium-editor-textarea-id")||o.push(r)}else o=Array.prototype.slice.apply(t);return o}function u(e){var t=e.parentNode.querySelector('textarea[medium-editor-textarea-id="'+e.getAttribute("medium-editor-textarea-id")+'"]');t&&(t.classList.remove("medium-editor-hidden"),t.removeAttribute("medium-editor-textarea-id")),e.parentNode&&e.parentNode.removeChild(e)}function d(e,t,n){return"function"===typeof(e=function(e,t){return Object.keys(t).forEach((function(n){void 0===e[n]&&(e[n]=t[n])})),e}(e,{window:n.options.contentWindow,document:n.options.ownerDocument,base:n})).init&&e.init(),e.name||(e.name=t),e}function h(){return!this.elements.every((function(e){return!!e.getAttribute("data-disable-toolbar")}))&&!1!==this.options.toolbar}function m(){return!!h.call(this)&&!1!==this.options.anchorPreview}function f(){return!1!==this.options.placeholder}function p(){return!1!==this.options.autoLink}function g(){return!1!==this.options.imageDragging}function b(){return!1!==this.options.keyboardCommands}function v(){return!this.options.extensions.imageDragging}function E(e){for(var t=this.options.ownerDocument.createElement("div"),n=Date.now(),i="medium-editor-"+n,o=e.attributes;this.options.ownerDocument.getElementById(i);)n++,i="medium-editor-"+n;t.className=e.className,t.id=i,t.innerHTML=e.value,e.setAttribute("medium-editor-textarea-id",i);for(var s=0,r=o.length;s<r;s++)t.hasAttribute(o[s].nodeName)||t.setAttribute(o[s].nodeName,o[s].value);return e.form&&this.on(e.form,"reset",function(e){e.defaultPrevented||this.resetContent(this.options.ownerDocument.getElementById(i))}.bind(this)),e.classList.add("medium-editor-hidden"),e.parentNode.insertBefore(t,e),t}function y(t,i){if(!t.getAttribute("data-medium-editor-element")){"textarea"===t.nodeName.toLowerCase()&&(t=E.call(this,t),this.instanceHandleEditableInput||(this.instanceHandleEditableInput=r.bind(this),this.subscribe("editableInput",this.instanceHandleEditableInput))),this.options.disableEditing||t.getAttribute("data-disable-editing")||(t.setAttribute("contentEditable",!0),t.setAttribute("spellcheck",this.options.spellcheck)),this.instanceHandleEditableKeydownEnter||(t.getAttribute("data-disable-return")||t.getAttribute("data-disable-double-return"))&&(this.instanceHandleEditableKeydownEnter=n.bind(this),this.subscribe("editableKeydownEnter",this.instanceHandleEditableKeydownEnter)),this.options.disableReturn||t.getAttribute("data-disable-return")||this.on(t,"keyup",s.bind(this));var o=e.util.guid();t.setAttribute("data-medium-editor-element",!0),t.classList.add("medium-editor-element"),t.setAttribute("role","textbox"),t.setAttribute("aria-multiline",!0),t.setAttribute("data-medium-editor-editor-index",i),t.setAttribute("medium-editor-index",o),S[o]=t.innerHTML,this.events.attachAllEventsToElement(t)}return t}function C(){this.subscribe("editableKeydownTab",i.bind(this)),this.subscribe("editableKeydownDelete",o.bind(this)),this.subscribe("editableKeydownEnter",o.bind(this)),this.options.disableExtraSpaces&&this.subscribe("editableKeydownSpace",t.bind(this)),this.instanceHandleEditableKeydownEnter||(this.options.disableReturn||this.options.disableDoubleReturn)&&(this.instanceHandleEditableKeydownEnter=n.bind(this),this.subscribe("editableKeydownEnter",this.instanceHandleEditableKeydownEnter))}function w(){if(this.extensions=[],Object.keys(this.options.extensions).forEach((function(e){"toolbar"!==e&&this.options.extensions[e]&&this.extensions.push(d(this.options.extensions[e],e,this))}),this),v.call(this)){var t=this.options.fileDragging;t||(t={},g.call(this)||(t.allowedTypes=[])),this.addBuiltInExtension("fileDragging",t)}var n={paste:!0,"anchor-preview":m.call(this),autoLink:p.call(this),keyboardCommands:b.call(this),placeholder:f.call(this)};Object.keys(n).forEach((function(e){n[e]&&this.addBuiltInExtension(e)}),this);var i=this.options.extensions.toolbar;if(!i&&h.call(this)){var o=e.util.extend({},this.options.toolbar,{allowMultiParagraphSelection:this.options.allowMultiParagraphSelection});i=new e.extensions.toolbar(o)}i&&this.extensions.push(d(i,"toolbar",this))}function x(t,n){return n&&[["allowMultiParagraphSelection","toolbar.allowMultiParagraphSelection"]].forEach((function(t){n.hasOwnProperty(t[0])&&void 0!==n[t[0]]&&e.util.deprecated(t[0],t[1],"v6.0.0")})),e.util.defaults({},n,t)}function T(t,n){var i,o;if(i=/^append-(.+)$/gi.exec(t))return e.util.execFormatBlock(this.options.ownerDocument,i[1]);if("fontSize"===t)return n.size&&e.util.deprecated(".size option for fontSize command",".value","6.0.0"),o=n.value||n.size,this.options.ownerDocument.execCommand("fontSize",!1,o);if("fontName"===t)return n.name&&e.util.deprecated(".name option for fontName command",".value","6.0.0"),o=n.value||n.name,this.options.ownerDocument.execCommand("fontName",!1,o);if("createLink"===t)return this.createLink(n);if("image"===t){var s=this.options.contentWindow.getSelection().toString().trim();return this.options.ownerDocument.execCommand("insertImage",!1,s)}if("html"===t){var r=this.options.contentWindow.getSelection().toString().trim();return e.util.insertHTMLCommand(this.options.ownerDocument,r)}if(/justify([A-Za-z]*)$/g.exec(t)){var a=this.options.ownerDocument.execCommand(t,!1,null),l=e.selection.getSelectedParentElement(e.selection.getSelectionRange(this.options.ownerDocument));return l&&k.call(this,e.util.getTopBlockContainer(l)),a}return o=n&&n.value,this.options.ownerDocument.execCommand(t,!1,o)}function k(t){if(t){var n,i=Array.prototype.slice.call(t.childNodes).filter((function(e){var t="div"===e.nodeName.toLowerCase();return t&&!n&&(n=e.style.textAlign),t}));i.length&&(this.saveSelection(),i.forEach((function(t){if(t.style.textAlign===n){var i=t.lastChild;if(i){e.util.unwrap(t,this.options.ownerDocument);var o=this.options.ownerDocument.createElement("BR");i.parentNode.insertBefore(o,i.nextSibling)}}}),this),t.style.textAlign=n,this.restoreSelection())}}var S={};e.prototype={init:function(e,t){return this.options=x.call(this,this.defaults,t),this.origElements=e,this.options.elementsContainer||(this.options.elementsContainer=this.options.ownerDocument.body),this.setup()},setup:function(){this.isActive||(a.call(this,this.options.contentWindow),this.events=new e.Events(this),this.elements=[],this.addElements(this.origElements),0!==this.elements.length&&(this.isActive=!0,w.call(this),C.call(this)))},destroy:function(){this.isActive&&(this.isActive=!1,this.extensions.forEach((function(e){"function"===typeof e.destroy&&e.destroy()}),this),this.events.destroy(),this.elements.forEach((function(e){this.options.spellcheck&&(e.innerHTML=e.innerHTML),e.removeAttribute("contentEditable"),e.removeAttribute("spellcheck"),e.removeAttribute("data-medium-editor-element"),e.classList.remove("medium-editor-element"),e.removeAttribute("role"),e.removeAttribute("aria-multiline"),e.removeAttribute("medium-editor-index"),e.removeAttribute("data-medium-editor-editor-index"),e.getAttribute("medium-editor-textarea-id")&&u(e)}),this),this.elements=[],this.instanceHandleEditableKeydownEnter=null,this.instanceHandleEditableInput=null,l.call(this,this.options.contentWindow))},on:function(e,t,n,i){return this.events.attachDOMEvent(e,t,n,i),this},off:function(e,t,n,i){return this.events.detachDOMEvent(e,t,n,i),this},subscribe:function(e,t){return this.events.attachCustomEvent(e,t),this},unsubscribe:function(e,t){return this.events.detachCustomEvent(e,t),this},trigger:function(e,t,n){return this.events.triggerCustomEvent(e,t,n),this},delay:function(e){var t=this;return setTimeout((function(){t.isActive&&e()}),this.options.delay)},serialize:function(){var e,t={},n=this.elements.length;for(e=0;e<n;e+=1)t[""!==this.elements[e].id?this.elements[e].id:"element-"+e]={value:this.elements[e].innerHTML.trim()};return t},getExtensionByName:function(e){var t;return this.extensions&&this.extensions.length&&this.extensions.some((function(n){return n.name===e&&(t=n,!0)})),t},addBuiltInExtension:function(t,n){var i,o=this.getExtensionByName(t);if(o)return o;switch(t){case"anchor":i=e.util.extend({},this.options.anchor,n),o=new e.extensions.anchor(i);break;case"anchor-preview":o=new e.extensions.anchorPreview(this.options.anchorPreview);break;case"autoLink":o=new e.extensions.autoLink;break;case"fileDragging":o=new e.extensions.fileDragging(n);break;case"fontname":o=new e.extensions.fontName(this.options.fontName);break;case"fontsize":o=new e.extensions.fontSize(n);break;case"keyboardCommands":o=new e.extensions.keyboardCommands(this.options.keyboardCommands);break;case"paste":o=new e.extensions.paste(this.options.paste);break;case"placeholder":o=new e.extensions.placeholder(this.options.placeholder);break;default:e.extensions.button.isBuiltInButton(t)&&(n?(i=e.util.defaults({},n,e.extensions.button.prototype.defaults[t]),o=new e.extensions.button(i)):o=new e.extensions.button(t))}return o&&this.extensions.push(d(o,t,this)),o},stopSelectionUpdates:function(){this.preventSelectionUpdates=!0},startSelectionUpdates:function(){this.preventSelectionUpdates=!1},checkSelection:function(){var e=this.getExtensionByName("toolbar");return e&&e.checkState(),this},queryCommandState:function(e){var t,n=null;(t=/^full-(.+)$/gi.exec(e))&&(e=t[1]);try{n=this.options.ownerDocument.queryCommandState(e)}catch(i){n=null}return n},execAction:function(t,n){var i,o;return(i=/^full-(.+)$/gi.exec(t))?(this.saveSelection(),this.selectAllContents(),o=T.call(this,i[1],n),this.restoreSelection()):o=T.call(this,t,n),"insertunorderedlist"!==t&&"insertorderedlist"!==t||e.util.cleanListDOM(this.options.ownerDocument,this.getSelectedParentElement()),this.checkSelection(),o},getSelectedParentElement:function(t){return void 0===t&&(t=this.options.contentWindow.getSelection().getRangeAt(0)),e.selection.getSelectedParentElement(t)},selectAllContents:function(){var t=e.selection.getSelectionElement(this.options.contentWindow);if(t){for(;1===t.children.length;)t=t.children[0];this.selectElement(t)}},selectElement:function(t){e.selection.selectNode(t,this.options.ownerDocument);var n=e.selection.getSelectionElement(this.options.contentWindow);n&&this.events.focusElement(n)},getFocusedElement:function(){var e;return this.elements.some((function(t){return!e&&t.getAttribute("data-medium-focused")&&(e=t),!!e}),this),e},exportSelection:function(){var t=e.selection.getSelectionElement(this.options.contentWindow),n=this.elements.indexOf(t),i=null;return n>=0&&(i=e.selection.exportSelection(t,this.options.ownerDocument)),null!==i&&0!==n&&(i.editableElementIndex=n),i},saveSelection:function(){this.selectionState=this.exportSelection()},importSelection:function(t,n){if(t){var i=this.elements[t.editableElementIndex||0];e.selection.importSelection(t,i,this.options.ownerDocument,n)}},restoreSelection:function(){this.importSelection(this.selectionState)},createLink:function(t){var n,i=e.selection.getSelectionElement(this.options.contentWindow),o={};if(-1!==this.elements.indexOf(i)){try{if(this.events.disableCustomEvent("editableInput"),t.url&&e.util.deprecated(".url option for createLink",".value","6.0.0"),(n=t.url||t.value)&&n.trim().length>0){var s=this.options.contentWindow.getSelection();if(s){var r,a,l,c,u=s.getRangeAt(0),d=u.commonAncestorContainer;if(3===u.endContainer.nodeType&&3!==u.startContainer.nodeType&&0===u.startOffset&&u.startContainer.firstChild===u.endContainer&&(d=u.endContainer),a=e.util.getClosestBlockContainer(u.startContainer),l=e.util.getClosestBlockContainer(u.endContainer),3!==d.nodeType&&0!==d.textContent.length&&a===l){var h=a||i,m=this.options.ownerDocument.createDocumentFragment();this.execAction("unlink"),r=this.exportSelection(),m.appendChild(h.cloneNode(!0)),i===h?e.selection.select(this.options.ownerDocument,h.firstChild,0,h.lastChild,3===h.lastChild.nodeType?h.lastChild.nodeValue.length:h.lastChild.childNodes.length):e.selection.select(this.options.ownerDocument,h,0,h,h.childNodes.length);var f=this.exportSelection();0===(c=e.util.findOrCreateMatchingTextNodes(this.options.ownerDocument,m,{start:r.start-f.start,end:r.end-f.start,editableElementIndex:r.editableElementIndex})).length&&((m=this.options.ownerDocument.createDocumentFragment()).appendChild(d.cloneNode(!0)),c=[m.firstChild.firstChild,m.firstChild.lastChild]),e.util.createLink(this.options.ownerDocument,c,n.trim());var p=(m.firstChild.innerHTML.match(/^\s+/)||[""])[0].length;e.util.insertHTMLCommand(this.options.ownerDocument,m.firstChild.innerHTML.replace(/^\s+/,"")),r.start-=p,r.end-=p,this.importSelection(r)}else this.options.ownerDocument.execCommand("createLink",!1,n);this.options.targetBlank||"_blank"===t.target?e.util.setTargetBlank(e.selection.getSelectionStart(this.options.ownerDocument),n):e.util.removeTargetBlank(e.selection.getSelectionStart(this.options.ownerDocument),n),t.buttonClass&&e.util.addClassToAnchors(e.selection.getSelectionStart(this.options.ownerDocument),t.buttonClass)}}if(this.options.targetBlank||"_blank"===t.target||t.buttonClass){(o=this.options.ownerDocument.createEvent("HTMLEvents")).initEvent("input",!0,!0,this.options.contentWindow);for(var g=0,b=this.elements.length;g<b;g+=1)this.elements[g].dispatchEvent(o)}}finally{this.events.enableCustomEvent("editableInput")}this.events.triggerCustomEvent("editableInput",o,i)}},cleanPaste:function(e){this.getExtensionByName("paste").cleanPaste(e)},pasteHTML:function(e,t){this.getExtensionByName("paste").pasteHTML(e,t)},setContent:function(e,t){if(t=t||0,this.elements[t]){var n=this.elements[t];n.innerHTML=e,this.checkContentChanged(n)}},getContent:function(e){return e=e||0,this.elements[e]?this.elements[e].innerHTML.trim():null},checkContentChanged:function(t){t=t||e.selection.getSelectionElement(this.options.contentWindow),this.events.updateInput(t,{target:t,currentTarget:t})},resetContent:function(e){if(e){var t=this.elements.indexOf(e);-1!==t&&this.setContent(S[e.getAttribute("medium-editor-index")],t)}else this.elements.forEach((function(e,t){this.setContent(S[e.getAttribute("medium-editor-index")],t)}),this)},addElements:function(e){var t=c(e,this.options.ownerDocument,!0);if(0===t.length)return!1;t.forEach((function(e){e=y.call(this,e,this.id),this.elements.push(e),this.trigger("addElement",{target:e,currentTarget:e},e)}),this)},removeElements:function(e){var t=c(e,this.options.ownerDocument).map((function(e){return e.getAttribute("medium-editor-textarea-id")&&e.parentNode?e.parentNode.querySelector('div[medium-editor-textarea-id="'+e.getAttribute("medium-editor-textarea-id")+'"]'):e}));this.elements=this.elements.filter((function(e){return-1===t.indexOf(e)||(this.events.cleanupElement(e),e.getAttribute("medium-editor-textarea-id")&&u(e),this.trigger("removeElement",{target:e,currentTarget:e},e),!1)}),this)}},e.getEditorFromElement=function(e){var t=e.getAttribute("data-medium-editor-editor-index"),n=e&&e.ownerDocument&&(e.ownerDocument.defaultView||e.ownerDocument.parentWindow);return n&&n._mediumEditors&&n._mediumEditors[t]?n._mediumEditors[t]:null}}(),e.prototype.defaults={activeButtonClass:"medium-editor-button-active",buttonLabels:!1,delay:0,disableReturn:!1,disableDoubleReturn:!1,disableExtraSpaces:!1,disableEditing:!1,autoLink:!1,elementsContainer:!1,contentWindow:window,ownerDocument:document,targetBlank:!1,extensions:{},spellcheck:!0},e.parseVersionString=function(e){var t=e.split("-"),n=t[0].split("."),i=t.length>1?t[1]:"";return{major:parseInt(n[0],10),minor:parseInt(n[1],10),revision:parseInt(n[2],10),preRelease:i,toString:function(){return[n[0],n[1],n[2]].join(".")+(i?"-"+i:"")}}},e.version=e.parseVersionString.call(this,"5.23.3"),e}())},70743:function(e,t,n){"use strict";var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=l(n(27418)),s=l(n(7836)),r=l(n(67294)),a=l(n(73935));function l(e){return e&&e.__esModule?e:{default:e}}if("undefined"!==typeof document)var c=n(69748);var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,Object.getPrototypeOf(t).call(this,e));return n.state={text:n.props.text},n}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this,t=a.default.findDOMNode(this);this.medium=new c(t,this.props.options),this.medium.subscribe("editableInput",(function(n){e._updated=!0,e.change(t.innerHTML)}))}},{key:"componentDidUpdate",value:function(){this.medium.restoreSelection()}},{key:"componentWillUnmount",value:function(){this.medium.destroy()}},{key:"componentWillReceiveProps",value:function(e){e.text===this.state.text||this._updated||this.setState({text:e.text}),this._updated&&(this._updated=!1)}},{key:"render",value:function(){var e=this.props.tag,t=(0,s.default)(this.props,"options","text","tag","contentEditable","dangerouslySetInnerHTML");return(0,o.default)(t,{dangerouslySetInnerHTML:{__html:this.state.text}}),this.medium&&this.medium.saveSelection(),r.default.createElement(e,t)}},{key:"change",value:function(e){this.props.onChange&&this.props.onChange(e,this.medium)}}]),t}(r.default.Component);u.defaultProps={tag:"div"},t.default=u},5575:function(e,t,n){e.exports=n(70743)}}]); \ No newline at end of file
+/*! For license information please see 575.76dcaacb1c2276f86dea.chunk.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="991a141e-9f0f-45c2-955a-5f8a2298380d",e._sentryDebugIdIdentifier="sentry-dbid-991a141e-9f0f-45c2-955a-5f8a2298380d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[575],{7836:function(e){e.exports=function(e){var t={},n=arguments[1];if("string"===typeof n){n={};for(var i=1;i<arguments.length;i++)n[arguments[i]]=!0}for(var o in e)n[o]||(t[o]=e[o]);return t}},69748:function(e,t,n){var i;"classList"in document.createElement("_")||function(e){"use strict";if("Element"in e){var t="classList",n="prototype",i=e.Element[n],o=Object,s=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},r=Array[n].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1},a=function(e,t){this.name=e,this.code=DOMException[e],this.message=t},l=function(e,t){if(""===t)throw new a("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(t))throw new a("INVALID_CHARACTER_ERR","String contains an invalid character");return r.call(e,t)},c=function(e){for(var t=s.call(e.getAttribute("class")||""),n=t?t.split(/\s+/):[],i=0,o=n.length;i<o;i++)this.push(n[i]);this._updateClassName=function(){e.setAttribute("class",this.toString())}},u=c[n]=[],d=function(){return new c(this)};if(a[n]=Error[n],u.item=function(e){return this[e]||null},u.contains=function(e){return-1!==l(this,e+="")},u.add=function(){var e,t=arguments,n=0,i=t.length,o=!1;do{-1===l(this,e=t[n]+"")&&(this.push(e),o=!0)}while(++n<i);o&&this._updateClassName()},u.remove=function(){var e,t,n=arguments,i=0,o=n.length,s=!1;do{for(t=l(this,e=n[i]+"");-1!==t;)this.splice(t,1),s=!0,t=l(this,e)}while(++i<o);s&&this._updateClassName()},u.toggle=function(e,t){e+="";var n=this.contains(e),i=n?!0!==t&&"remove":!1!==t&&"add";return i&&this[i](e),!0===t||!1===t?t:!n},u.toString=function(){return this.join(" ")},o.defineProperty){var h={get:d,enumerable:!0,configurable:!0};try{o.defineProperty(i,t,h)}catch(m){-2146823252===m.number&&(h.enumerable=!1,o.defineProperty(i,t,h))}}else o[n].__defineGetter__&&i.__defineGetter__(t,d)}}(self),function(e){"use strict";if(e.URL=e.URL||e.webkitURL,e.Blob&&e.URL)try{return void new Blob}catch(i){}var t=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||function(e){var t=function(e){return Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]},n=function(){this.data=[]},i=function(e,t,n){this.data=e,this.size=e.length,this.type=t,this.encoding=n},o=n.prototype,s=i.prototype,r=e.FileReaderSync,a=function(e){this.code=this[this.name=e]},l="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),c=l.length,u=e.URL||e.webkitURL||e,d=u.createObjectURL,h=u.revokeObjectURL,m=u,f=e.btoa,p=e.atob,g=e.ArrayBuffer,b=e.Uint8Array,v=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(i.fake=s.fake=!0;c--;)a.prototype[l[c]]=c+1;return u.createObjectURL||(m=e.URL=function(e){var t,n=document.createElementNS("http://www.w3.org/1999/xhtml","a");return n.href=e,"origin"in n||("data:"===n.protocol.toLowerCase()?n.origin=null:(t=e.match(v),n.origin=t&&t[1])),n}),m.createObjectURL=function(e){var t,n=e.type;return null===n&&(n="application/octet-stream"),e instanceof i?(t="data:"+n,"base64"===e.encoding?t+";base64,"+e.data:"URI"===e.encoding?t+","+decodeURIComponent(e.data):f?t+";base64,"+f(e.data):t+","+encodeURIComponent(e.data)):d?d.call(u,e):void 0},m.revokeObjectURL=function(e){"data:"!==e.substring(0,5)&&h&&h.call(u,e)},o.append=function(e){var n=this.data;if(b&&(e instanceof g||e instanceof b)){for(var o="",s=new b(e),l=0,c=s.length;l<c;l++)o+=String.fromCharCode(s[l]);n.push(o)}else if("Blob"===t(e)||"File"===t(e)){if(!r)throw new a("NOT_READABLE_ERR");var u=new r;n.push(u.readAsBinaryString(e))}else e instanceof i?"base64"===e.encoding&&p?n.push(p(e.data)):"URI"===e.encoding?n.push(decodeURIComponent(e.data)):"raw"===e.encoding&&n.push(e.data):("string"!==typeof e&&(e+=""),n.push(unescape(encodeURIComponent(e))))},o.getBlob=function(e){return arguments.length||(e=null),new i(this.data.join(""),e,"raw")},o.toString=function(){return"[object BlobBuilder]"},s.slice=function(e,t,n){var o=arguments.length;return o<3&&(n=null),new i(this.data.slice(e,o>1?t:this.data.length),n,this.encoding)},s.toString=function(){return"[object Blob]"},s.close=function(){this.size=0,delete this.data},n}(e);e.Blob=function(e,n){var i=n&&n.type||"",o=new t;if(e)for(var s=0,r=e.length;s<r;s++)Uint8Array&&e[s]instanceof Uint8Array?o.append(e[s].buffer):o.append(e[s]);var a=o.getBlob(i);return!a.slice&&a.webkitSlice&&(a.slice=a.webkitSlice),a};var n=Object.getPrototypeOf||function(e){return e.__proto__};e.Blob.prototype=n(new e.Blob)}("undefined"!==typeof self&&self||"undefined"!==typeof window&&window||this.content||this),function(o,s){"use strict";"undefined"!==typeof process&&process&&process.versions&&process.versions.electron?void 0===(i=function(){return s}.call(t,n,t,e))||(e.exports=i):e.exports=s}(0,function(){"use strict";function e(e,t){return this.init(e,t)}return e.extensions={},function(t){function n(e,t){var n,i=Array.prototype.slice.call(arguments,2);t=t||{};for(var o=0;o<i.length;o++){var s=i[o];if(s)for(n in s)s.hasOwnProperty(n)&&"undefined"!==typeof s[n]&&(e||!1===t.hasOwnProperty(n))&&(t[n]=s[n])}return t}var i=!1;try{var o=document.createElement("div"),s=document.createTextNode(" ");o.appendChild(s),i=o.contains(s)}catch(a){}var r={isIE:"Microsoft Internet Explorer"===navigator.appName||"Netscape"===navigator.appName&&null!==new RegExp("Trident/.*rv:([0-9]{1,}[.0-9]{0,})").exec(navigator.userAgent),isEdge:null!==/Edge\/\d+/.exec(navigator.userAgent),isFF:navigator.userAgent.toLowerCase().indexOf("firefox")>-1,isMac:t.navigator.platform.toUpperCase().indexOf("MAC")>=0,keyCode:{BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,SPACE:32,DELETE:46,K:75,M:77,V:86},isMetaCtrlKey:function(e){return!!(r.isMac&&e.metaKey||!r.isMac&&e.ctrlKey)},isKey:function(e,t){var n=r.getKeyCode(e);return!1===Array.isArray(t)?n===t:-1!==t.indexOf(n)},getKeyCode:function(e){var t=e.which;return null===t&&(t=null!==e.charCode?e.charCode:e.keyCode),t},blockContainerElementNames:["p","h1","h2","h3","h4","h5","h6","blockquote","pre","ul","li","ol","address","article","aside","audio","canvas","dd","dl","dt","fieldset","figcaption","figure","footer","form","header","hgroup","main","nav","noscript","output","section","video","table","thead","tbody","tfoot","tr","th","td"],emptyElementNames:["br","col","colgroup","hr","img","input","source","wbr"],extend:function(){var e=[!0].concat(Array.prototype.slice.call(arguments));return n.apply(this,e)},defaults:function(){var e=[!1].concat(Array.prototype.slice.call(arguments));return n.apply(this,e)},createLink:function(e,t,n,i){var o=e.createElement("a");return r.moveTextRangeIntoElement(t[0],t[t.length-1],o),o.setAttribute("href",n),i&&("_blank"===i&&o.setAttribute("rel","noopener noreferrer"),o.setAttribute("target",i)),o},findOrCreateMatchingTextNodes:function(e,t,n){for(var i=e.createTreeWalker(t,NodeFilter.SHOW_ALL,null,!1),o=[],s=0,a=!1,l=null,c=null;null!==(l=i.nextNode());)if(!(l.nodeType>3))if(3===l.nodeType){if(!a&&n.start<s+l.nodeValue.length&&(a=!0,c=r.splitStartNodeIfNeeded(l,n.start,s)),a&&r.splitEndNodeIfNeeded(l,c,n.end,s),a&&s===n.end)break;if(a&&s>n.end+1)throw new Error("PerformLinking overshot the target!");a&&o.push(c||l),s+=l.nodeValue.length,null!==c&&(s+=c.nodeValue.length,i.nextNode()),c=null}else"img"===l.tagName.toLowerCase()&&(!a&&n.start<=s&&(a=!0),a&&o.push(l));return o},splitStartNodeIfNeeded:function(e,t,n){return t!==n?e.splitText(t-n):null},splitEndNodeIfNeeded:function(e,t,n,i){var o,s;o=i+e.nodeValue.length+(t?t.nodeValue.length:0)-1,s=n-i-(t?e.nodeValue.length:0),o>=n&&i!==o&&0!==s&&(t||e).splitText(s)},splitByBlockElements:function(t){if(3!==t.nodeType&&1!==t.nodeType)return[];var n=[],i=e.util.blockContainerElementNames.join(",");if(3===t.nodeType||0===t.querySelectorAll(i).length)return[t];for(var o=0;o<t.childNodes.length;o++){var s=t.childNodes[o];if(3===s.nodeType)n.push(s);else if(1===s.nodeType){0===s.querySelectorAll(i).length?n.push(s):n=n.concat(e.util.splitByBlockElements(s))}}return n},findAdjacentTextNodeWithContent:function(e,t,n){var i,o=!1,s=n.createNodeIterator(e,NodeFilter.SHOW_TEXT,null,!1);for(i=s.nextNode();i;){if(i===t)o=!0;else if(o&&3===i.nodeType&&i.nodeValue&&i.nodeValue.trim().length>0)break;i=s.nextNode()}return i},findPreviousSibling:function(e){if(!e||r.isMediumEditorElement(e))return!1;for(var t=e.previousSibling;!t&&!r.isMediumEditorElement(e.parentNode);)t=(e=e.parentNode).previousSibling;return t},isDescendant:function(e,t,n){if(!e||!t)return!1;if(e===t)return!!n;if(1!==e.nodeType)return!1;if(i||3!==t.nodeType)return e.contains(t);for(var o=t.parentNode;null!==o;){if(o===e)return!0;o=o.parentNode}return!1},isElement:function(e){return!(!e||1!==e.nodeType)},throttle:function(e,t){var n,i,o,s=null,r=0,a=function(){r=Date.now(),s=null,o=e.apply(n,i),s||(n=i=null)};return t||0===t||(t=50),function(){var l=Date.now(),c=t-(l-r);return n=this,i=arguments,c<=0||c>t?(s&&(clearTimeout(s),s=null),r=l,o=e.apply(n,i),s||(n=i=null)):s||(s=setTimeout(a,c)),o}},traverseUp:function(e,t){if(!e)return!1;do{if(1===e.nodeType){if(t(e))return e;if(r.isMediumEditorElement(e))return!1}e=e.parentNode}while(e);return!1},htmlEntities:function(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},insertHTMLCommand:function(t,n){var i,o,s,a,l,c,u,d=!1,h=["insertHTML",!1,n];if(!e.util.isEdge&&t.queryCommandSupported("insertHTML"))try{return t.execCommand.apply(t,h)}catch(m){}if((i=t.getSelection()).rangeCount){if(u=(o=i.getRangeAt(0)).commonAncestorContainer,r.isMediumEditorElement(u)&&!u.firstChild)o.selectNode(u.appendChild(t.createTextNode("")));else if(3===u.nodeType&&0===o.startOffset&&o.endOffset===u.nodeValue.length||3!==u.nodeType&&u.innerHTML===o.toString()){for(;!r.isMediumEditorElement(u)&&u.parentNode&&1===u.parentNode.childNodes.length&&!r.isMediumEditorElement(u.parentNode);)u=u.parentNode;o.selectNode(u)}for(o.deleteContents(),(s=t.createElement("div")).innerHTML=n,a=t.createDocumentFragment();s.firstChild;)l=s.firstChild,c=a.appendChild(l);o.insertNode(a),c&&((o=o.cloneRange()).setStartAfter(c),o.collapse(!0),e.selection.selectRange(t,o)),d=!0}return t.execCommand.callListeners&&t.execCommand.callListeners(h,d),d},execFormatBlock:function(t,n){var i=r.getTopBlockContainer(e.selection.getSelectionStart(t));if("blockquote"===n){if(i&&Array.prototype.slice.call(i.childNodes).some((function(e){return r.isBlockContainer(e)})))return t.execCommand("outdent",!1,null);if(r.isIE)return t.execCommand("indent",!1,n)}if(i&&n===i.nodeName.toLowerCase()&&(n="p"),r.isIE&&(n="<"+n+">"),i&&"blockquote"===i.nodeName.toLowerCase()){if(r.isIE&&"<p>"===n)return t.execCommand("outdent",!1,n);if((r.isFF||r.isEdge)&&"p"===n)return Array.prototype.slice.call(i.childNodes).some((function(e){return!r.isBlockContainer(e)}))&&t.execCommand("formatBlock",!1,n),t.execCommand("outdent",!1,n)}return t.execCommand("formatBlock",!1,n)},setTargetBlank:function(e,t){var n,i=t||!1;if("a"===e.nodeName.toLowerCase())e.target="_blank",e.rel="noopener noreferrer";else for(e=e.getElementsByTagName("a"),n=0;n<e.length;n+=1)!1!==i&&i!==e[n].attributes.href.value||(e[n].target="_blank",e[n].rel="noopener noreferrer")},removeTargetBlank:function(e,t){var n;if("a"===e.nodeName.toLowerCase())e.removeAttribute("target"),e.removeAttribute("rel");else for(e=e.getElementsByTagName("a"),n=0;n<e.length;n+=1)t===e[n].attributes.href.value&&(e[n].removeAttribute("target"),e[n].removeAttribute("rel"))},addClassToAnchors:function(e,t){var n,i,o=t.split(" ");if("a"===e.nodeName.toLowerCase())for(i=0;i<o.length;i+=1)e.classList.add(o[i]);else{var s=e.getElementsByTagName("a");if(0===s.length){var a=r.getClosestTag(e,"a");e=a?[a]:[]}else e=s;for(n=0;n<e.length;n+=1)for(i=0;i<o.length;i+=1)e[n].classList.add(o[i])}},isListItem:function(e){if(!e)return!1;if("li"===e.nodeName.toLowerCase())return!0;for(var t=e.parentNode,n=t.nodeName.toLowerCase();"li"===n||!r.isBlockContainer(t)&&"div"!==n;){if("li"===n)return!0;if(!(t=t.parentNode))return!1;n=t.nodeName.toLowerCase()}return!1},cleanListDOM:function(t,n){if("li"===n.nodeName.toLowerCase()){var i=n.parentElement;"p"===i.parentElement.nodeName.toLowerCase()&&(r.unwrap(i.parentElement,t),e.selection.moveCursor(t,n.firstChild,n.firstChild.textContent.length))}},splitOffDOMTree:function(e,t,n){for(var i=t,o=null,s=!n;i!==e;){var r,a=i.parentNode,l=a.cloneNode(!1),c=s?i:a.firstChild;for(o&&(s?l.appendChild(o):r=o),o=l;c;){var u=c.nextSibling;c===i?(c.hasChildNodes()?c=c.cloneNode(!1):c.parentNode.removeChild(c),c.textContent&&o.appendChild(c),c=s?u:null):(c.parentNode.removeChild(c),(c.hasChildNodes()||c.textContent)&&o.appendChild(c),c=u)}r&&o.appendChild(r),i=a}return o},moveTextRangeIntoElement:function(e,t,n){if(!e||!t)return!1;var i=r.findCommonRoot(e,t);if(!i)return!1;if(t===e){var o=e.parentNode,s=e.nextSibling;return o.removeChild(e),n.appendChild(e),s?o.insertBefore(n,s):o.appendChild(n),n.hasChildNodes()}for(var a,l,c,u=[],d=0;d<i.childNodes.length;d++)if(c=i.childNodes[d],a){if(r.isDescendant(c,t,!0)){l=c;break}u.push(c)}else r.isDescendant(c,e,!0)&&(a=c);var h=l.nextSibling,m=i.ownerDocument.createDocumentFragment();return a===e?(a.parentNode.removeChild(a),m.appendChild(a)):m.appendChild(r.splitOffDOMTree(a,e)),u.forEach((function(e){e.parentNode.removeChild(e),m.appendChild(e)})),l===t?(l.parentNode.removeChild(l),m.appendChild(l)):m.appendChild(r.splitOffDOMTree(l,t,!0)),n.appendChild(m),l.parentNode===i?i.insertBefore(n,l):h?i.insertBefore(n,h):i.appendChild(n),n.hasChildNodes()},depthOfNode:function(e){for(var t=0,n=e;null!==n.parentNode;)n=n.parentNode,t++;return t},findCommonRoot:function(e,t){for(var n=r.depthOfNode(e),i=r.depthOfNode(t),o=e,s=t;n!==i;)n>i?(o=o.parentNode,n-=1):(s=s.parentNode,i-=1);for(;o!==s;)o=o.parentNode,s=s.parentNode;return o},isElementAtBeginningOfBlock:function(e){for(var t;!r.isBlockContainer(e)&&!r.isMediumEditorElement(e);){for(t=e;t=t.previousSibling;)if((3===t.nodeType?t.nodeValue:t.textContent).length>0)return!1;e=e.parentNode}return!0},isMediumEditorElement:function(e){return e&&e.getAttribute&&!!e.getAttribute("data-medium-editor-element")},getContainerEditorElement:function(e){return r.traverseUp(e,(function(e){return r.isMediumEditorElement(e)}))},isBlockContainer:function(e){return e&&3!==e.nodeType&&-1!==r.blockContainerElementNames.indexOf(e.nodeName.toLowerCase())},getClosestBlockContainer:function(e){return r.traverseUp(e,(function(e){return r.isBlockContainer(e)||r.isMediumEditorElement(e)}))},getTopBlockContainer:function(e){var t=!!r.isBlockContainer(e)&&e;return r.traverseUp(e,(function(e){return r.isBlockContainer(e)&&(t=e),!(t||!r.isMediumEditorElement(e))&&(t=e,!0)})),t},getFirstSelectableLeafNode:function(e){for(;e&&e.firstChild;)e=e.firstChild;if("table"===(e=r.traverseUp(e,(function(e){return-1===r.emptyElementNames.indexOf(e.nodeName.toLowerCase())}))).nodeName.toLowerCase()){var t=e.querySelector("th, td");t&&(e=t)}return e},getFirstTextNode:function(e){return r.warn("getFirstTextNode is deprecated and will be removed in version 6.0.0"),r._getFirstTextNode(e)},_getFirstTextNode:function(e){if(3===e.nodeType)return e;for(var t=0;t<e.childNodes.length;t++){var n=r._getFirstTextNode(e.childNodes[t]);if(null!==n)return n}return null},ensureUrlHasProtocol:function(e){return-1===e.indexOf("://")?"http://"+e:e},warn:function(){void 0!==t.console&&"function"===typeof t.console.warn&&t.console.warn.apply(t.console,arguments)},deprecated:function(e,t,n){var i=e+" is deprecated, please use "+t+" instead.";n&&(i+=" Will be removed in "+n),r.warn(i)},deprecatedMethod:function(e,t,n,i){r.deprecated(e,t,i),"function"===typeof this[t]&&this[t].apply(this,n)},cleanupAttrs:function(e,t){t.forEach((function(t){e.removeAttribute(t)}))},cleanupTags:function(e,t){-1!==t.indexOf(e.nodeName.toLowerCase())&&e.parentNode.removeChild(e)},unwrapTags:function(t,n){-1!==n.indexOf(t.nodeName.toLowerCase())&&e.util.unwrap(t,document)},getClosestTag:function(e,t){return r.traverseUp(e,(function(e){return e.nodeName.toLowerCase()===t.toLowerCase()}))},unwrap:function(e,t){for(var n=t.createDocumentFragment(),i=Array.prototype.slice.call(e.childNodes),o=0;o<i.length;o++)n.appendChild(i[o]);n.childNodes.length?e.parentNode.replaceChild(n,e):e.parentNode.removeChild(e)},guid:function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}};e.util=r}(window),function(){var t=function(t){e.util.extend(this,t)};t.extend=function(t){var n,i=this;n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return i.apply(this,arguments)},e.util.extend(n,i);var o=function(){this.constructor=n};return o.prototype=i.prototype,n.prototype=new o,t&&e.util.extend(n.prototype,t),n},t.prototype={init:function(){},base:void 0,name:void 0,checkState:void 0,destroy:void 0,queryCommandState:void 0,isActive:void 0,isAlreadyApplied:void 0,setActive:void 0,setInactive:void 0,getInteractionElements:void 0,window:void 0,document:void 0,getEditorElements:function(){return this.base.elements},getEditorId:function(){return this.base.id},getEditorOption:function(e){return this.base.options[e]}},["execAction","on","off","subscribe","trigger"].forEach((function(e){t.prototype[e]=function(){return this.base[e].apply(this.base,arguments)}})),e.Extension=t}(),function(){function t(t){return e.util.isBlockContainer(t)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}var n={findMatchingSelectionParent:function(t,n){var i,o=n.getSelection();return 0!==o.rangeCount&&(i=o.getRangeAt(0).commonAncestorContainer,e.util.traverseUp(i,t))},getSelectionElement:function(t){return this.findMatchingSelectionParent((function(t){return e.util.isMediumEditorElement(t)}),t)},exportSelection:function(e,t){if(!e)return null;var n=null,i=t.getSelection();if(i.rangeCount>0){var o,s=i.getRangeAt(0),r=s.cloneRange();r.selectNodeContents(e),r.setEnd(s.startContainer,s.startOffset),n={start:o=r.toString().length,end:o+s.toString().length},this.doesRangeStartWithImages(s,t)&&(n.startsWithImage=!0);var a=this.getTrailingImageCount(e,n,s.endContainer,s.endOffset);if(a&&(n.trailingImageCount=a),0!==o){var l=this.getIndexRelativeToAdjacentEmptyBlocks(t,e,s.startContainer,s.startOffset);-1!==l&&(n.emptyBlocksIndex=l)}}return n},importSelection:function(e,t,n,i){if(e&&t){var o=n.createRange();o.setStart(t,0),o.collapse(!0);var s,r=t,a=[],l=0,c=!1,u=!1,d=0,h=!1,m=!1,f=null;for((i||e.startsWithImage||"undefined"!==typeof e.emptyBlocksIndex)&&(m=!0);!h&&r;)if(r.nodeType>3)r=a.pop();else{if(3!==r.nodeType||u){if(e.trailingImageCount&&u&&("img"===r.nodeName.toLowerCase()&&d++,d===e.trailingImageCount)){for(var p=0;r.parentNode.childNodes[p]!==r;)p++;o.setEnd(r.parentNode,p+1),h=!0}if(!h&&1===r.nodeType)for(var g=r.childNodes.length-1;g>=0;)a.push(r.childNodes[g]),g-=1}else s=l+r.length,!c&&e.start>=l&&e.start<=s&&(m||e.start<s?(o.setStart(r,e.start-l),c=!0):f=r),c&&e.end>=l&&e.end<=s&&(e.trailingImageCount?u=!0:(o.setEnd(r,e.end-l),h=!0)),l=s;h||(r=a.pop())}!c&&f&&(o.setStart(f,f.length),o.setEnd(f,f.length)),"undefined"!==typeof e.emptyBlocksIndex&&(o=this.importSelectionMoveCursorPastBlocks(n,t,e.emptyBlocksIndex,o)),i&&(o=this.importSelectionMoveCursorPastAnchor(e,o)),this.selectRange(n,o)}},importSelectionMoveCursorPastAnchor:function(t,n){if(t.start===t.end&&3===n.startContainer.nodeType&&n.startOffset===n.startContainer.nodeValue.length&&e.util.traverseUp(n.startContainer,(function(e){return"a"===e.nodeName.toLowerCase()}))){for(var i=n.startContainer,o=n.startContainer.parentNode;null!==o&&"a"!==o.nodeName.toLowerCase();)o.childNodes[o.childNodes.length-1]!==i?o=null:(i=o,o=o.parentNode);if(null!==o&&"a"===o.nodeName.toLowerCase()){for(var s=null,r=0;null===s&&r<o.parentNode.childNodes.length;r++)o.parentNode.childNodes[r]===o&&(s=r);n.setStart(o.parentNode,s+1),n.collapse(!0)}}return n},importSelectionMoveCursorPastBlocks:function(n,i,o,s){var r,a,l=n.createTreeWalker(i,NodeFilter.SHOW_ELEMENT,t,!1),c=s.startContainer,u=0;for(o=o||1,r=3===c.nodeType&&e.util.isBlockContainer(c.previousSibling)?c.previousSibling:e.util.getClosestBlockContainer(c);l.nextNode();)if(a){if(a=l.currentNode,++u===o)break;if(a.textContent.length>0)break}else r===l.currentNode&&(a=l.currentNode);return a||(a=r),s.setStart(e.util.getFirstSelectableLeafNode(a),0),s},getIndexRelativeToAdjacentEmptyBlocks:function(n,i,o,s){if(o.textContent.length>0&&s>0)return-1;var r=o;if(3!==r.nodeType&&(r=o.childNodes[s]),r){if(!e.util.isElementAtBeginningOfBlock(r))return-1;var a=e.util.findPreviousSibling(r);if(!a)return-1;if(a.nodeValue)return-1}for(var l=e.util.getClosestBlockContainer(o),c=n.createTreeWalker(i,NodeFilter.SHOW_ELEMENT,t,!1),u=0;c.nextNode();){var d=""===c.currentNode.textContent;if((d||u>0)&&(u+=1),c.currentNode===l)return u;d||(u=0)}return u},doesRangeStartWithImages:function(e,t){if(0!==e.startOffset||1!==e.startContainer.nodeType)return!1;if("img"===e.startContainer.nodeName.toLowerCase())return!0;var n=e.startContainer.querySelector("img");if(!n)return!1;for(var i=t.createTreeWalker(e.startContainer,NodeFilter.SHOW_ALL,null,!1);i.nextNode();){var o=i.currentNode;if(o===n)break;if(o.nodeValue)return!1}return!0},getTrailingImageCount:function(e,t,n,i){if(0===i||1!==n.nodeType)return 0;if("img"!==n.nodeName.toLowerCase()&&!n.querySelector("img"))return 0;for(var o=n.childNodes[i-1];o.hasChildNodes();)o=o.lastChild;for(var s,r=e,a=[],l=0,c=!1,u=!1,d=!1,h=0;!d&&r;)if(r.nodeType>3)r=a.pop();else{if(3!==r.nodeType||u){if("img"===r.nodeName.toLowerCase()&&h++,r===o)d=!0;else if(1===r.nodeType)for(var m=r.childNodes.length-1;m>=0;)a.push(r.childNodes[m]),m-=1}else h=0,s=l+r.length,!c&&t.start>=l&&t.start<=s&&(c=!0),c&&t.end>=l&&t.end<=s&&(u=!0),l=s;d||(r=a.pop())}return h},selectionContainsContent:function(e){var t=e.getSelection();if(!t||t.isCollapsed||!t.rangeCount)return!1;if(""!==t.toString().trim())return!0;var n=this.getSelectedParentElement(t.getRangeAt(0));return!(!n||!("img"===n.nodeName.toLowerCase()||1===n.nodeType&&n.querySelector("img")))},selectionInContentEditableFalse:function(e){var t,n=this.findMatchingSelectionParent((function(e){var n=e&&e.getAttribute("contenteditable");return"true"===n&&(t=!0),"#text"!==e.nodeName&&"false"===n}),e);return!t&&n},getSelectionHtml:function(e){var t,n,i,o="",s=e.getSelection();if(s.rangeCount){for(i=e.createElement("div"),t=0,n=s.rangeCount;t<n;t+=1)i.appendChild(s.getRangeAt(t).cloneContents());o=i.innerHTML}return o},getCaretOffsets:function(e,t){var n,i;return t||(t=window.getSelection().getRangeAt(0)),n=t.cloneRange(),i=t.cloneRange(),n.selectNodeContents(e),n.setEnd(t.endContainer,t.endOffset),i.selectNodeContents(e),i.setStart(t.endContainer,t.endOffset),{left:n.toString().length,right:i.toString().length}},rangeSelectsSingleNode:function(e){var t=e.startContainer;return t===e.endContainer&&t.hasChildNodes()&&e.endOffset===e.startOffset+1},getSelectedParentElement:function(e){return e?this.rangeSelectsSingleNode(e)&&3!==e.startContainer.childNodes[e.startOffset].nodeType?e.startContainer.childNodes[e.startOffset]:3===e.startContainer.nodeType?e.startContainer.parentNode:e.startContainer:null},getSelectedElements:function(e){var t,n,i,o=e.getSelection();if(!o.rangeCount||o.isCollapsed||!o.getRangeAt(0).commonAncestorContainer)return[];if(3===(t=o.getRangeAt(0)).commonAncestorContainer.nodeType){for(n=[],i=t.commonAncestorContainer;i.parentNode&&1===i.parentNode.childNodes.length;)n.push(i.parentNode),i=i.parentNode;return n}return[].filter.call(t.commonAncestorContainer.getElementsByTagName("*"),(function(e){return"function"!==typeof o.containsNode||o.containsNode(e,!0)}))},selectNode:function(e,t){var n=t.createRange();n.selectNodeContents(e),this.selectRange(t,n)},select:function(e,t,n,i,o){var s=e.createRange();return s.setStart(t,n),i?s.setEnd(i,o):s.collapse(!0),this.selectRange(e,s),s},clearSelection:function(e,t){t?e.getSelection().collapseToStart():e.getSelection().collapseToEnd()},moveCursor:function(e,t,n){this.select(e,t,n)},getSelectionRange:function(e){var t=e.getSelection();return 0===t.rangeCount?null:t.getRangeAt(0)},selectRange:function(e,t){var n=e.getSelection();n.removeAllRanges(),n.addRange(t)},getSelectionStart:function(e){var t=e.getSelection().anchorNode;return t&&3===t.nodeType?t.parentNode:t}};e.selection=n}(),function(){function t(t,n){return!!t&&t.some((function(t){if("function"!==typeof t.getInteractionElements)return!1;var i=t.getInteractionElements();return!!i&&(Array.isArray(i)||(i=[i]),i.some((function(t){return e.util.isDescendant(t,n,!0)})))}))}var n=function(e){this.base=e,this.options=this.base.options,this.events=[],this.disabledEvents={},this.customEvents={},this.listeners={}};n.prototype={InputEventOnContenteditableSupported:!e.util.isIE&&!e.util.isEdge,attachDOMEvent:function(t,n,i,o){var s=this.base.options.contentWindow,r=this.base.options.ownerDocument;t=e.util.isElement(t)||[s,r].indexOf(t)>-1?[t]:t,Array.prototype.forEach.call(t,function(e){e.addEventListener(n,i,o),this.events.push([e,n,i,o])}.bind(this))},detachDOMEvent:function(t,n,i,o){var s,r,a=this.base.options.contentWindow,l=this.base.options.ownerDocument;t&&(t=e.util.isElement(t)||[a,l].indexOf(t)>-1?[t]:t,Array.prototype.forEach.call(t,function(e){-1!==(s=this.indexOfListener(e,n,i,o))&&(r=this.events.splice(s,1)[0])[0].removeEventListener(r[1],r[2],r[3])}.bind(this)))},indexOfListener:function(e,t,n,i){var o,s,r;for(o=0,s=this.events.length;o<s;o+=1)if((r=this.events[o])[0]===e&&r[1]===t&&r[2]===n&&r[3]===i)return o;return-1},detachAllDOMEvents:function(){for(var e=this.events.pop();e;)e[0].removeEventListener(e[1],e[2],e[3]),e=this.events.pop()},detachAllEventsFromElement:function(e){for(var t=this.events.filter((function(t){return t&&t[0].getAttribute&&t[0].getAttribute("medium-editor-index")===e.getAttribute("medium-editor-index")})),n=0,i=t.length;n<i;n++){var o=t[n];this.detachDOMEvent(o[0],o[1],o[2],o[3])}},attachAllEventsToElement:function(e){this.listeners.editableInput&&(this.contentCache[e.getAttribute("medium-editor-index")]=e.innerHTML),this.eventsCache&&this.eventsCache.forEach((function(t){this.attachDOMEvent(e,t.name,t.handler.bind(this))}),this)},enableCustomEvent:function(e){void 0!==this.disabledEvents[e]&&delete this.disabledEvents[e]},disableCustomEvent:function(e){this.disabledEvents[e]=!0},attachCustomEvent:function(e,t){this.setupListener(e),this.customEvents[e]||(this.customEvents[e]=[]),this.customEvents[e].push(t)},detachCustomEvent:function(e,t){var n=this.indexOfCustomListener(e,t);-1!==n&&this.customEvents[e].splice(n,1)},indexOfCustomListener:function(e,t){return this.customEvents[e]&&this.customEvents[e].length?this.customEvents[e].indexOf(t):-1},detachAllCustomEvents:function(){this.customEvents={}},triggerCustomEvent:function(e,t,n){this.customEvents[e]&&!this.disabledEvents[e]&&this.customEvents[e].forEach((function(e){e(t,n)}))},destroy:function(){this.detachAllDOMEvents(),this.detachAllCustomEvents(),this.detachExecCommand(),this.base.elements&&this.base.elements.forEach((function(e){e.removeAttribute("data-medium-focused")}))},attachToExecCommand:function(){this.execCommandListener||(this.execCommandListener=function(e){this.handleDocumentExecCommand(e)}.bind(this),this.wrapExecCommand(),this.options.ownerDocument.execCommand.listeners.push(this.execCommandListener))},detachExecCommand:function(){var e=this.options.ownerDocument;if(this.execCommandListener&&e.execCommand.listeners){var t=e.execCommand.listeners.indexOf(this.execCommandListener);-1!==t&&e.execCommand.listeners.splice(t,1),e.execCommand.listeners.length||this.unwrapExecCommand()}},wrapExecCommand:function(){var e=this.options.ownerDocument;if(!e.execCommand.listeners){var t=function(t,n){e.execCommand.listeners&&e.execCommand.listeners.forEach((function(e){e({command:t[0],value:t[2],args:t,result:n})}))},n=function(){var n=e.execCommand.orig.apply(this,arguments);if(!e.execCommand.listeners)return n;var i=Array.prototype.slice.call(arguments);return t(i,n),n};n.orig=e.execCommand,n.listeners=[],n.callListeners=t,e.execCommand=n}},unwrapExecCommand:function(){var e=this.options.ownerDocument;e.execCommand.orig&&(e.execCommand=e.execCommand.orig)},setupListener:function(e){if(!this.listeners[e]){switch(e){case"externalInteraction":this.attachDOMEvent(this.options.ownerDocument.body,"mousedown",this.handleBodyMousedown.bind(this),!0),this.attachDOMEvent(this.options.ownerDocument.body,"click",this.handleBodyClick.bind(this),!0),this.attachDOMEvent(this.options.ownerDocument.body,"focus",this.handleBodyFocus.bind(this),!0);break;case"blur":case"focus":this.setupListener("externalInteraction");break;case"editableInput":this.contentCache={},this.base.elements.forEach((function(e){this.contentCache[e.getAttribute("medium-editor-index")]=e.innerHTML}),this),this.InputEventOnContenteditableSupported&&this.attachToEachElement("input",this.handleInput),this.InputEventOnContenteditableSupported||(this.setupListener("editableKeypress"),this.keypressUpdateInput=!0,this.attachDOMEvent(document,"selectionchange",this.handleDocumentSelectionChange.bind(this)),this.attachToExecCommand());break;case"editableClick":this.attachToEachElement("click",this.handleClick);break;case"editableBlur":this.attachToEachElement("blur",this.handleBlur);break;case"editableKeypress":this.attachToEachElement("keypress",this.handleKeypress);break;case"editableKeyup":this.attachToEachElement("keyup",this.handleKeyup);break;case"editableKeydown":this.attachToEachElement("keydown",this.handleKeydown);break;case"editableKeydownSpace":case"editableKeydownEnter":case"editableKeydownTab":case"editableKeydownDelete":this.setupListener("editableKeydown");break;case"editableMouseover":this.attachToEachElement("mouseover",this.handleMouseover);break;case"editableDrag":this.attachToEachElement("dragover",this.handleDragging),this.attachToEachElement("dragleave",this.handleDragging);break;case"editableDrop":this.attachToEachElement("drop",this.handleDrop);break;case"editablePaste":this.attachToEachElement("paste",this.handlePaste)}this.listeners[e]=!0}},attachToEachElement:function(e,t){this.eventsCache||(this.eventsCache=[]),this.base.elements.forEach((function(n){this.attachDOMEvent(n,e,t.bind(this))}),this),this.eventsCache.push({name:e,handler:t})},cleanupElement:function(e){var t=e.getAttribute("medium-editor-index");t&&(this.detachAllEventsFromElement(e),this.contentCache&&delete this.contentCache[t])},focusElement:function(e){e.focus(),this.updateFocus(e,{target:e,type:"focus"})},updateFocus:function(n,i){var o,s=this.base.getFocusedElement();s&&"click"===i.type&&this.lastMousedownTarget&&(e.util.isDescendant(s,this.lastMousedownTarget,!0)||t(this.base.extensions,this.lastMousedownTarget))&&(o=s),o||this.base.elements.some((function(t){return!o&&e.util.isDescendant(t,n,!0)&&(o=t),!!o}),this);var r=!e.util.isDescendant(s,n,!0)&&!t(this.base.extensions,n);o!==s&&(s&&r&&(s.removeAttribute("data-medium-focused"),this.triggerCustomEvent("blur",i,s)),o&&(o.setAttribute("data-medium-focused",!0),this.triggerCustomEvent("focus",i,o))),r&&this.triggerCustomEvent("externalInteraction",i)},updateInput:function(e,t){if(this.contentCache){var n=e.getAttribute("medium-editor-index"),i=e.innerHTML;i!==this.contentCache[n]&&this.triggerCustomEvent("editableInput",t,e),this.contentCache[n]=i}},handleDocumentSelectionChange:function(t){if(t.currentTarget&&t.currentTarget.activeElement){var n,i=t.currentTarget.activeElement;this.base.elements.some((function(t){return!!e.util.isDescendant(t,i,!0)&&(n=t,!0)}),this),n&&this.updateInput(n,{target:i,currentTarget:n})}},handleDocumentExecCommand:function(){var e=this.base.getFocusedElement();e&&this.updateInput(e,{target:e,currentTarget:e})},handleBodyClick:function(e){this.updateFocus(e.target,e)},handleBodyFocus:function(e){this.updateFocus(e.target,e)},handleBodyMousedown:function(e){this.lastMousedownTarget=e.target},handleInput:function(e){this.updateInput(e.currentTarget,e)},handleClick:function(e){this.triggerCustomEvent("editableClick",e,e.currentTarget)},handleBlur:function(e){this.triggerCustomEvent("editableBlur",e,e.currentTarget)},handleKeypress:function(e){if(this.triggerCustomEvent("editableKeypress",e,e.currentTarget),this.keypressUpdateInput){var t={target:e.target,currentTarget:e.currentTarget};setTimeout(function(){this.updateInput(t.currentTarget,t)}.bind(this),0)}},handleKeyup:function(e){this.triggerCustomEvent("editableKeyup",e,e.currentTarget)},handleMouseover:function(e){this.triggerCustomEvent("editableMouseover",e,e.currentTarget)},handleDragging:function(e){this.triggerCustomEvent("editableDrag",e,e.currentTarget)},handleDrop:function(e){this.triggerCustomEvent("editableDrop",e,e.currentTarget)},handlePaste:function(e){this.triggerCustomEvent("editablePaste",e,e.currentTarget)},handleKeydown:function(t){return this.triggerCustomEvent("editableKeydown",t,t.currentTarget),e.util.isKey(t,e.util.keyCode.SPACE)?this.triggerCustomEvent("editableKeydownSpace",t,t.currentTarget):e.util.isKey(t,e.util.keyCode.ENTER)||t.ctrlKey&&e.util.isKey(t,e.util.keyCode.M)?this.triggerCustomEvent("editableKeydownEnter",t,t.currentTarget):e.util.isKey(t,e.util.keyCode.TAB)?this.triggerCustomEvent("editableKeydownTab",t,t.currentTarget):e.util.isKey(t,[e.util.keyCode.DELETE,e.util.keyCode.BACKSPACE])?this.triggerCustomEvent("editableKeydownDelete",t,t.currentTarget):void 0}},e.Events=n}(),function(){var t=e.Extension.extend({action:void 0,aria:void 0,tagNames:void 0,style:void 0,useQueryState:void 0,contentDefault:void 0,contentFA:void 0,classList:void 0,attrs:void 0,constructor:function(n){t.isBuiltInButton(n)?e.Extension.call(this,this.defaults[n]):e.Extension.call(this,n)},init:function(){e.Extension.prototype.init.apply(this,arguments),this.button=this.createButton(),this.on(this.button,"click",this.handleClick.bind(this))},getButton:function(){return this.button},getAction:function(){return"function"===typeof this.action?this.action(this.base.options):this.action},getAria:function(){return"function"===typeof this.aria?this.aria(this.base.options):this.aria},getTagNames:function(){return"function"===typeof this.tagNames?this.tagNames(this.base.options):this.tagNames},createButton:function(){var e=this.document.createElement("button"),t=this.contentDefault,n=this.getAria(),i=this.getEditorOption("buttonLabels");return e.classList.add("medium-editor-action"),e.classList.add("medium-editor-action-"+this.name),this.classList&&this.classList.forEach((function(t){e.classList.add(t)})),e.setAttribute("data-action",this.getAction()),n&&(e.setAttribute("title",n),e.setAttribute("aria-label",n)),this.attrs&&Object.keys(this.attrs).forEach((function(t){e.setAttribute(t,this.attrs[t])}),this),"fontawesome"===i&&this.contentFA&&(t=this.contentFA),e.innerHTML=t,e},handleClick:function(e){e.preventDefault(),e.stopPropagation();var t=this.getAction();t&&this.execAction(t)},isActive:function(){return this.button.classList.contains(this.getEditorOption("activeButtonClass"))},setInactive:function(){this.button.classList.remove(this.getEditorOption("activeButtonClass")),delete this.knownState},setActive:function(){this.button.classList.add(this.getEditorOption("activeButtonClass")),delete this.knownState},queryCommandState:function(){var e=null;return this.useQueryState&&(e=this.base.queryCommandState(this.getAction())),e},isAlreadyApplied:function(e){var t,n,i=!1,o=this.getTagNames();return!1===this.knownState||!0===this.knownState?this.knownState:(o&&o.length>0&&(i=-1!==o.indexOf(e.nodeName.toLowerCase())),!i&&this.style&&(t=this.style.value.split("|"),n=this.window.getComputedStyle(e,null).getPropertyValue(this.style.prop),t.forEach((function(e){this.knownState||((i=-1!==n.indexOf(e))||"text-decoration"!==this.style.prop)&&(this.knownState=i)}),this)),i)}});t.isBuiltInButton=function(t){return"string"===typeof t&&e.extensions.button.prototype.defaults.hasOwnProperty(t)},e.extensions.button=t}(),e.extensions.button.prototype.defaults={bold:{name:"bold",action:"bold",aria:"bold",tagNames:["b","strong"],style:{prop:"font-weight",value:"700|bold"},useQueryState:!0,contentDefault:"<b>B</b>",contentFA:'<i class="fa fa-bold"></i>'},italic:{name:"italic",action:"italic",aria:"italic",tagNames:["i","em"],style:{prop:"font-style",value:"italic"},useQueryState:!0,contentDefault:"<b><i>I</i></b>",contentFA:'<i class="fa fa-italic"></i>'},underline:{name:"underline",action:"underline",aria:"underline",tagNames:["u"],style:{prop:"text-decoration",value:"underline"},useQueryState:!0,contentDefault:"<b><u>U</u></b>",contentFA:'<i class="fa fa-underline"></i>'},strikethrough:{name:"strikethrough",action:"strikethrough",aria:"strike through",tagNames:["strike"],style:{prop:"text-decoration",value:"line-through"},useQueryState:!0,contentDefault:"<s>A</s>",contentFA:'<i class="fa fa-strikethrough"></i>'},superscript:{name:"superscript",action:"superscript",aria:"superscript",tagNames:["sup"],contentDefault:"<b>x<sup>1</sup></b>",contentFA:'<i class="fa fa-superscript"></i>'},subscript:{name:"subscript",action:"subscript",aria:"subscript",tagNames:["sub"],contentDefault:"<b>x<sub>1</sub></b>",contentFA:'<i class="fa fa-subscript"></i>'},image:{name:"image",action:"image",aria:"image",tagNames:["img"],contentDefault:"<b>image</b>",contentFA:'<i class="fa fa-picture-o"></i>'},html:{name:"html",action:"html",aria:"evaluate html",tagNames:["iframe","object"],contentDefault:"<b>html</b>",contentFA:'<i class="fa fa-code"></i>'},orderedlist:{name:"orderedlist",action:"insertorderedlist",aria:"ordered list",tagNames:["ol"],useQueryState:!0,contentDefault:"<b>1.</b>",contentFA:'<i class="fa fa-list-ol"></i>'},unorderedlist:{name:"unorderedlist",action:"insertunorderedlist",aria:"unordered list",tagNames:["ul"],useQueryState:!0,contentDefault:"<b>&bull;</b>",contentFA:'<i class="fa fa-list-ul"></i>'},indent:{name:"indent",action:"indent",aria:"indent",tagNames:[],contentDefault:"<b>&rarr;</b>",contentFA:'<i class="fa fa-indent"></i>'},outdent:{name:"outdent",action:"outdent",aria:"outdent",tagNames:[],contentDefault:"<b>&larr;</b>",contentFA:'<i class="fa fa-outdent"></i>'},justifyCenter:{name:"justifyCenter",action:"justifyCenter",aria:"center justify",tagNames:[],style:{prop:"text-align",value:"center"},contentDefault:"<b>C</b>",contentFA:'<i class="fa fa-align-center"></i>'},justifyFull:{name:"justifyFull",action:"justifyFull",aria:"full justify",tagNames:[],style:{prop:"text-align",value:"justify"},contentDefault:"<b>J</b>",contentFA:'<i class="fa fa-align-justify"></i>'},justifyLeft:{name:"justifyLeft",action:"justifyLeft",aria:"left justify",tagNames:[],style:{prop:"text-align",value:"left"},contentDefault:"<b>L</b>",contentFA:'<i class="fa fa-align-left"></i>'},justifyRight:{name:"justifyRight",action:"justifyRight",aria:"right justify",tagNames:[],style:{prop:"text-align",value:"right"},contentDefault:"<b>R</b>",contentFA:'<i class="fa fa-align-right"></i>'},removeFormat:{name:"removeFormat",aria:"remove formatting",action:"removeFormat",contentDefault:"<b>X</b>",contentFA:'<i class="fa fa-eraser"></i>'},quote:{name:"quote",action:"append-blockquote",aria:"blockquote",tagNames:["blockquote"],contentDefault:"<b>&ldquo;</b>",contentFA:'<i class="fa fa-quote-right"></i>'},pre:{name:"pre",action:"append-pre",aria:"preformatted text",tagNames:["pre"],contentDefault:"<b>0101</b>",contentFA:'<i class="fa fa-code fa-lg"></i>'},h1:{name:"h1",action:"append-h1",aria:"header type one",tagNames:["h1"],contentDefault:"<b>H1</b>",contentFA:'<i class="fa fa-header"><sup>1</sup>'},h2:{name:"h2",action:"append-h2",aria:"header type two",tagNames:["h2"],contentDefault:"<b>H2</b>",contentFA:'<i class="fa fa-header"><sup>2</sup>'},h3:{name:"h3",action:"append-h3",aria:"header type three",tagNames:["h3"],contentDefault:"<b>H3</b>",contentFA:'<i class="fa fa-header"><sup>3</sup>'},h4:{name:"h4",action:"append-h4",aria:"header type four",tagNames:["h4"],contentDefault:"<b>H4</b>",contentFA:'<i class="fa fa-header"><sup>4</sup>'},h5:{name:"h5",action:"append-h5",aria:"header type five",tagNames:["h5"],contentDefault:"<b>H5</b>",contentFA:'<i class="fa fa-header"><sup>5</sup>'},h6:{name:"h6",action:"append-h6",aria:"header type six",tagNames:["h6"],contentDefault:"<b>H6</b>",contentFA:'<i class="fa fa-header"><sup>6</sup>'}},function(){var t=e.extensions.button.extend({init:function(){e.extensions.button.prototype.init.apply(this,arguments)},formSaveLabel:"&#10003;",formCloseLabel:"&times;",activeClass:"medium-editor-toolbar-form-active",hasForm:!0,getForm:function(){},isDisplayed:function(){return!!this.hasForm&&this.getForm().classList.contains(this.activeClass)},showForm:function(){this.hasForm&&this.getForm().classList.add(this.activeClass)},hideForm:function(){this.hasForm&&this.getForm().classList.remove(this.activeClass)},showToolbarDefaultActions:function(){var e=this.base.getExtensionByName("toolbar");e&&e.showToolbarDefaultActions()},hideToolbarDefaultActions:function(){var e=this.base.getExtensionByName("toolbar");e&&e.hideToolbarDefaultActions()},setToolbarPosition:function(){var e=this.base.getExtensionByName("toolbar");e&&e.setToolbarPosition()}});e.extensions.form=t}(),function(){var t=e.extensions.form.extend({customClassOption:null,customClassOptionText:"Button",linkValidation:!1,placeholderText:"Paste or type a link",targetCheckbox:!1,targetCheckboxText:"Open in new window",name:"anchor",action:"createLink",aria:"link",tagNames:["a"],contentDefault:"<b>#</b>",contentFA:'<i class="fa fa-link"></i>',init:function(){e.extensions.form.prototype.init.apply(this,arguments),this.subscribe("editableKeydown",this.handleKeydown.bind(this))},handleClick:function(t){t.preventDefault(),t.stopPropagation();var n=e.selection.getSelectionRange(this.document);return"a"===n.startContainer.nodeName.toLowerCase()||"a"===n.endContainer.nodeName.toLowerCase()||e.util.getClosestTag(e.selection.getSelectedParentElement(n),"a")?this.execAction("unlink"):(this.isDisplayed()||this.showForm(),!1)},handleKeydown:function(t){e.util.isKey(t,e.util.keyCode.K)&&e.util.isMetaCtrlKey(t)&&!t.shiftKey&&this.handleClick(t)},getForm:function(){return this.form||(this.form=this.createForm()),this.form},getTemplate:function(){var e=['<input type="text" class="medium-editor-toolbar-input" placeholder="',this.placeholderText,'">'];return e.push('<a href="#" class="medium-editor-toolbar-save">',"fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-check"></i>':this.formSaveLabel,"</a>"),e.push('<a href="#" class="medium-editor-toolbar-close">',"fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-times"></i>':this.formCloseLabel,"</a>"),this.targetCheckbox&&e.push('<div class="medium-editor-toolbar-form-row">','<input type="checkbox" class="medium-editor-toolbar-anchor-target" id="medium-editor-toolbar-anchor-target-field-'+this.getEditorId()+'">','<label for="medium-editor-toolbar-anchor-target-field-'+this.getEditorId()+'">',this.targetCheckboxText,"</label>","</div>"),this.customClassOption&&e.push('<div class="medium-editor-toolbar-form-row">','<input type="checkbox" class="medium-editor-toolbar-anchor-button">',"<label>",this.customClassOptionText,"</label>","</div>"),e.join("")},isDisplayed:function(){return e.extensions.form.prototype.isDisplayed.apply(this)},hideForm:function(){e.extensions.form.prototype.hideForm.apply(this),this.getInput().value=""},showForm:function(t){var n=this.getInput(),i=this.getAnchorTargetCheckbox(),o=this.getAnchorButtonCheckbox();if("string"===typeof(t=t||{value:""})&&(t={value:t}),this.base.saveSelection(),this.hideToolbarDefaultActions(),e.extensions.form.prototype.showForm.apply(this),this.setToolbarPosition(),n.value=t.value,n.focus(),i&&(i.checked="_blank"===t.target),o){var s=t.buttonClass?t.buttonClass.split(" "):[];o.checked=-1!==s.indexOf(this.customClassOption)}},destroy:function(){if(!this.form)return!1;this.form.parentNode&&this.form.parentNode.removeChild(this.form),delete this.form},getFormOpts:function(){var e=this.getAnchorTargetCheckbox(),t=this.getAnchorButtonCheckbox(),n={value:this.getInput().value.trim()};return this.linkValidation&&(n.value=this.checkLinkFormat(n.value)),n.target="_self",e&&e.checked&&(n.target="_blank"),t&&t.checked&&(n.buttonClass=this.customClassOption),n},doFormSave:function(){var e=this.getFormOpts();this.completeFormSave(e)},completeFormSave:function(e){this.base.restoreSelection(),this.execAction(this.action,e),this.base.checkSelection()},ensureEncodedUri:function(e){return e===decodeURI(e)?encodeURI(e):e},ensureEncodedUriComponent:function(e){return e===decodeURIComponent(e)?encodeURIComponent(e):e},ensureEncodedParam:function(e){var t=e.split("="),n=t[0],i=t[1];return n+(void 0===i?"":"="+this.ensureEncodedUriComponent(i))},ensureEncodedQuery:function(e){return e.split("&").map(this.ensureEncodedParam.bind(this)).join("&")},checkLinkFormat:function(e){var t=/^([a-z]+:)?\/\/|^(mailto|tel|maps):|^\#/i.test(e),n="",i=e.match(/^(.*?)(?:\?(.*?))?(?:#(.*))?$/),o=i[1],s=i[2],r=i[3];if(/^\+?\s?\(?(?:\d\s?\-?\)?){3,20}$/.test(e))return"tel:"+e;if(!t){var a=o.split("/")[0];(a.match(/.+(\.|:).+/)||"localhost"===a)&&(n="http://")}return n+this.ensureEncodedUri(o)+(void 0===s?"":"?"+this.ensureEncodedQuery(s))+(void 0===r?"":"#"+r)},doFormCancel:function(){this.base.restoreSelection(),this.base.checkSelection()},attachFormEvents:function(e){var t=e.querySelector(".medium-editor-toolbar-close"),n=e.querySelector(".medium-editor-toolbar-save"),i=e.querySelector(".medium-editor-toolbar-input");this.on(e,"click",this.handleFormClick.bind(this)),this.on(i,"keyup",this.handleTextboxKeyup.bind(this)),this.on(t,"click",this.handleCloseClick.bind(this)),this.on(n,"click",this.handleSaveClick.bind(this),!0)},createForm:function(){var e=this.document.createElement("div");return e.className="medium-editor-toolbar-form",e.id="medium-editor-toolbar-form-anchor-"+this.getEditorId(),e.innerHTML=this.getTemplate(),this.attachFormEvents(e),e},getInput:function(){return this.getForm().querySelector("input.medium-editor-toolbar-input")},getAnchorTargetCheckbox:function(){return this.getForm().querySelector(".medium-editor-toolbar-anchor-target")},getAnchorButtonCheckbox:function(){return this.getForm().querySelector(".medium-editor-toolbar-anchor-button")},handleTextboxKeyup:function(t){if(t.keyCode===e.util.keyCode.ENTER)return t.preventDefault(),void this.doFormSave();t.keyCode===e.util.keyCode.ESCAPE&&(t.preventDefault(),this.doFormCancel())},handleFormClick:function(e){e.stopPropagation()},handleSaveClick:function(e){e.preventDefault(),this.doFormSave()},handleCloseClick:function(e){e.preventDefault(),this.doFormCancel()}});e.extensions.anchor=t}(),function(){var t=e.Extension.extend({name:"anchor-preview",hideDelay:500,previewValueSelector:"a",showWhenToolbarIsVisible:!1,showOnEmptyLinks:!0,init:function(){this.anchorPreview=this.createPreview(),this.getEditorOption("elementsContainer").appendChild(this.anchorPreview),this.attachToEditables()},getInteractionElements:function(){return this.getPreviewElement()},getPreviewElement:function(){return this.anchorPreview},createPreview:function(){var e=this.document.createElement("div");return e.id="medium-editor-anchor-preview-"+this.getEditorId(),e.className="medium-editor-anchor-preview",e.innerHTML=this.getTemplate(),this.on(e,"click",this.handleClick.bind(this)),e},getTemplate:function(){return'<div class="medium-editor-toolbar-anchor-preview" id="medium-editor-toolbar-anchor-preview"> <a class="medium-editor-toolbar-anchor-preview-inner"></a></div>'},destroy:function(){this.anchorPreview&&(this.anchorPreview.parentNode&&this.anchorPreview.parentNode.removeChild(this.anchorPreview),delete this.anchorPreview)},hidePreview:function(){this.anchorPreview&&this.anchorPreview.classList.remove("medium-editor-anchor-preview-active"),this.activeAnchor=null},showPreview:function(e){return!(!this.anchorPreview.classList.contains("medium-editor-anchor-preview-active")&&!e.getAttribute("data-disable-preview"))||(this.previewValueSelector&&(this.anchorPreview.querySelector(this.previewValueSelector).textContent=e.attributes.href.value,this.anchorPreview.querySelector(this.previewValueSelector).href=e.attributes.href.value),this.anchorPreview.classList.add("medium-toolbar-arrow-over"),this.anchorPreview.classList.remove("medium-toolbar-arrow-under"),this.anchorPreview.classList.contains("medium-editor-anchor-preview-active")||this.anchorPreview.classList.add("medium-editor-anchor-preview-active"),this.activeAnchor=e,this.positionPreview(),this.attachPreviewHandlers(),this)},positionPreview:function(e){e=e||this.activeAnchor;var t,n,i,o,s,r=this.window.innerWidth,a=this.anchorPreview.offsetHeight,l=e.getBoundingClientRect(),c=this.diffLeft,u=this.diffTop,d=this.getEditorOption("elementsContainer"),h=["absolute","fixed"].indexOf(window.getComputedStyle(d).getPropertyValue("position"))>-1,m={};t=this.anchorPreview.offsetWidth/2;var f=this.base.getExtensionByName("toolbar");f&&(c=f.diffLeft,u=f.diffTop),n=c-t,h?(o=d.getBoundingClientRect(),["top","left"].forEach((function(e){m[e]=l[e]-o[e]})),m.width=l.width,m.height=l.height,l=m,r=o.width,s=d.scrollTop):s=this.window.pageYOffset,i=l.left+l.width/2,s+=a+l.top+l.height-u-this.anchorPreview.offsetHeight,this.anchorPreview.style.top=Math.round(s)+"px",this.anchorPreview.style.right="initial",i<t?(this.anchorPreview.style.left=n+t+"px",this.anchorPreview.style.right="initial"):r-i<t?(this.anchorPreview.style.left="auto",this.anchorPreview.style.right=0):(this.anchorPreview.style.left=n+i+"px",this.anchorPreview.style.right="initial")},attachToEditables:function(){this.subscribe("editableMouseover",this.handleEditableMouseover.bind(this)),this.subscribe("positionedToolbar",this.handlePositionedToolbar.bind(this))},handlePositionedToolbar:function(){this.showWhenToolbarIsVisible||this.hidePreview()},handleClick:function(e){var t=this.base.getExtensionByName("anchor"),n=this.activeAnchor;t&&n&&(e.preventDefault(),this.base.selectElement(this.activeAnchor),this.base.delay(function(){if(n){var e={value:n.attributes.href.value,target:n.getAttribute("target"),buttonClass:n.getAttribute("class")};t.showForm(e),n=null}}.bind(this))),this.hidePreview()},handleAnchorMouseout:function(){this.anchorToPreview=null,this.off(this.activeAnchor,"mouseout",this.instanceHandleAnchorMouseout),this.instanceHandleAnchorMouseout=null},handleEditableMouseover:function(t){var n=e.util.getClosestTag(t.target,"a");if(!1!==n){if(!this.showOnEmptyLinks&&(!/href=["']\S+["']/.test(n.outerHTML)||/href=["']#\S+["']/.test(n.outerHTML)))return!0;var i=this.base.getExtensionByName("toolbar");if(!this.showWhenToolbarIsVisible&&i&&i.isDisplayed&&i.isDisplayed())return!0;this.activeAnchor&&this.activeAnchor!==n&&this.detachPreviewHandlers(),this.anchorToPreview=n,this.instanceHandleAnchorMouseout=this.handleAnchorMouseout.bind(this),this.on(this.anchorToPreview,"mouseout",this.instanceHandleAnchorMouseout),this.base.delay(function(){this.anchorToPreview&&this.showPreview(this.anchorToPreview)}.bind(this))}},handlePreviewMouseover:function(){this.lastOver=(new Date).getTime(),this.hovering=!0},handlePreviewMouseout:function(e){e.relatedTarget&&/anchor-preview/.test(e.relatedTarget.className)||(this.hovering=!1)},updatePreview:function(){if(this.hovering)return!0;(new Date).getTime()-this.lastOver>this.hideDelay&&this.detachPreviewHandlers()},detachPreviewHandlers:function(){clearInterval(this.intervalTimer),this.instanceHandlePreviewMouseover&&(this.off(this.anchorPreview,"mouseover",this.instanceHandlePreviewMouseover),this.off(this.anchorPreview,"mouseout",this.instanceHandlePreviewMouseout),this.activeAnchor&&(this.off(this.activeAnchor,"mouseover",this.instanceHandlePreviewMouseover),this.off(this.activeAnchor,"mouseout",this.instanceHandlePreviewMouseout))),this.hidePreview(),this.hovering=this.instanceHandlePreviewMouseover=this.instanceHandlePreviewMouseout=null},attachPreviewHandlers:function(){this.lastOver=(new Date).getTime(),this.hovering=!0,this.instanceHandlePreviewMouseover=this.handlePreviewMouseover.bind(this),this.instanceHandlePreviewMouseout=this.handlePreviewMouseout.bind(this),this.intervalTimer=setInterval(this.updatePreview.bind(this),200),this.on(this.anchorPreview,"mouseover",this.instanceHandlePreviewMouseover),this.on(this.anchorPreview,"mouseout",this.instanceHandlePreviewMouseout),this.on(this.activeAnchor,"mouseover",this.instanceHandlePreviewMouseover),this.on(this.activeAnchor,"mouseout",this.instanceHandlePreviewMouseout)}});e.extensions.anchorPreview=t}(),function(){var t,n,i,o,s;t=[" ","\t","\n","\r","\xa0","\u2000","\u2001","\u2002","\u2003","\u2028","\u2029"],i="(((?:(https?://|ftps?://|nntp://)|www\\d{0,3}[.]|[a-z0-9.\\-]+[.]("+(n="com|net|org|edu|gov|mil|aero|asia|biz|cat|coop|info|int|jobs|mobi|museum|name|post|pro|tel|travel|xxx|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz|dd|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|ja|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw")+")\\/)\\S+(?:[^\\s`!\\[\\]{};:'\".,?\xab\xbb\u201c\u201d\u2018\u2019])))|(([a-z0-9\\-]+\\.)?[a-z0-9\\-]+\\.("+n+"))",o=new RegExp("^("+n+")$","i"),s=new RegExp(i,"gi");var r=e.Extension.extend({init:function(){e.Extension.prototype.init.apply(this,arguments),this.disableEventHandling=!1,this.subscribe("editableKeypress",this.onKeypress.bind(this)),this.subscribe("editableBlur",this.onBlur.bind(this)),this.document.execCommand("AutoUrlDetect",!1,!1)},isLastInstance:function(){for(var e=0,t=0;t<this.window._mediumEditors.length;t++){var n=this.window._mediumEditors[t];null!==n&&void 0!==n.getExtensionByName("autoLink")&&e++}return 1===e},destroy:function(){this.document.queryCommandSupported("AutoUrlDetect")&&this.isLastInstance()&&this.document.execCommand("AutoUrlDetect",!1,!0)},onBlur:function(e,t){this.performLinking(t)},onKeypress:function(t){this.disableEventHandling||e.util.isKey(t,[e.util.keyCode.SPACE,e.util.keyCode.ENTER])&&(clearTimeout(this.performLinkingTimeout),this.performLinkingTimeout=setTimeout(function(){try{var e=this.base.exportSelection();this.performLinking(t.target)&&this.base.importSelection(e,!0)}catch(n){window.console&&window.console.error("Failed to perform linking",n),this.disableEventHandling=!0}}.bind(this),0))},performLinking:function(t){var n=e.util.splitByBlockElements(t),i=!1;0===n.length&&(n=[t]);for(var o=0;o<n.length;o++)i=this.removeObsoleteAutoLinkSpans(n[o])||i,i=this.performLinkingWithinElement(n[o])||i;return this.base.events.updateInput(t,{target:t,currentTarget:t}),i},removeObsoleteAutoLinkSpans:function(t){if(!t||3===t.nodeType)return!1;for(var n,i=t.querySelectorAll('span[data-auto-link="true"]'),o=!1,s=0;s<i.length;s++){var r=i[s].textContent;if(-1===r.indexOf("://")&&(r=e.util.ensureUrlHasProtocol(r)),i[s].getAttribute("data-href")!==r&&(n=i[s],!e.util.getClosestTag(n,"a"))){o=!0;var a=r.replace(/\s+$/,"");if(i[s].getAttribute("data-href")===a){var l=r.length-a.length,c=e.util.splitOffDOMTree(i[s],this.splitTextBeforeEnd(i[s],l));i[s].parentNode.insertBefore(c,i[s].nextSibling)}else e.util.unwrap(i[s],this.document)}}return o},splitTextBeforeEnd:function(e,t){for(var n,i,o,s=this.document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),r=!0;r;)r=null!==s.lastChild();for(;t>0&&null!==o;)(i=(n=s.currentNode).nodeValue).length>t?(o=n.splitText(i.length-t),t=0):(o=s.previousNode(),t-=i.length);return o},performLinkingWithinElement:function(t){for(var n=this.findLinkableText(t),i=0;i<n.length;i++){var o=e.util.findOrCreateMatchingTextNodes(this.document,t,n[i]);this.shouldNotLink(o)||this.createAutoLink(o,n[i].href)}return!1},shouldNotLink:function(t){for(var n=!1,i=0;i<t.length&&!1===n;i++)n=!!e.util.traverseUp(t[i],(function(e){return"a"===e.nodeName.toLowerCase()||e.getAttribute&&"true"===e.getAttribute("data-auto-link")}));return n},findLinkableText:function(e){for(var n=e.textContent,i=null,r=[];null!==(i=s.exec(n));){var a=i.index+i[0].length;(0===i.index||-1!==t.indexOf(n[i.index-1]))&&(a===n.length||-1!==t.indexOf(n[a]))&&(-1!==i[0].indexOf("/")||o.test(i[0].split(".").pop().split("?").shift()))&&r.push({href:i[0],start:i.index,end:a})}return r},createAutoLink:function(t,n){n=e.util.ensureUrlHasProtocol(n);var i=e.util.createLink(this.document,t,n,this.getEditorOption("targetBlank")?"_blank":null),o=this.document.createElement("span");for(o.setAttribute("data-auto-link","true"),o.setAttribute("data-href",n),i.insertBefore(o,i.firstChild);i.childNodes.length>1;)o.appendChild(i.childNodes[1])}});e.extensions.autoLink=r}(),function(){var t="medium-editor-dragover";function n(n){var i=e.util.getContainerEditorElement(n);Array.prototype.slice.call(i.parentElement.querySelectorAll("."+t)).forEach((function(e){e.classList.remove(t)}))}var i=e.Extension.extend({name:"fileDragging",allowedTypes:["image"],init:function(){e.Extension.prototype.init.apply(this,arguments),this.subscribe("editableDrag",this.handleDrag.bind(this)),this.subscribe("editableDrop",this.handleDrop.bind(this))},handleDrag:function(e){e.preventDefault(),e.dataTransfer.dropEffect="copy";var i=e.target.classList?e.target:e.target.parentElement;n(i),"dragover"===e.type&&i.classList.add(t)},handleDrop:function(e){e.preventDefault(),e.stopPropagation(),this.base.selectElement(e.target);var t=this.base.exportSelection();t.start=t.end,this.base.importSelection(t),e.dataTransfer.files&&Array.prototype.slice.call(e.dataTransfer.files).forEach((function(e){this.isAllowedFile(e)&&e.type.match("image")&&this.insertImageFile(e)}),this),n(e.target)},isAllowedFile:function(e){return this.allowedTypes.some((function(t){return!!e.type.match(t)}))},insertImageFile:function(t){if("function"===typeof FileReader){var n=new FileReader;n.readAsDataURL(t),n.addEventListener("load",function(t){var n=this.document.createElement("img");n.src=t.target.result,e.util.insertHTMLCommand(this.document,n.outerHTML)}.bind(this))}}});e.extensions.fileDragging=i}(),function(){var t=e.Extension.extend({name:"keyboard-commands",commands:[{command:"bold",key:"B",meta:!0,shift:!1,alt:!1},{command:"italic",key:"I",meta:!0,shift:!1,alt:!1},{command:"underline",key:"U",meta:!0,shift:!1,alt:!1}],init:function(){e.Extension.prototype.init.apply(this,arguments),this.subscribe("editableKeydown",this.handleKeydown.bind(this)),this.keys={},this.commands.forEach((function(e){var t=e.key.charCodeAt(0);this.keys[t]||(this.keys[t]=[]),this.keys[t].push(e)}),this)},handleKeydown:function(t){var n=e.util.getKeyCode(t);if(this.keys[n]){var i=e.util.isMetaCtrlKey(t),o=!!t.shiftKey,s=!!t.altKey;this.keys[n].forEach((function(e){e.meta!==i||e.shift!==o||e.alt!==s&&void 0!==e.alt||(t.preventDefault(),t.stopPropagation(),"function"===typeof e.command?e.command.apply(this):!1!==e.command&&this.execAction(e.command))}),this)}}});e.extensions.keyboardCommands=t}(),function(){var t=e.extensions.form.extend({name:"fontname",action:"fontName",aria:"change font name",contentDefault:"&#xB1;",contentFA:'<i class="fa fa-font"></i>',fonts:["","Arial","Verdana","Times New Roman"],init:function(){e.extensions.form.prototype.init.apply(this,arguments)},handleClick:function(e){if(e.preventDefault(),e.stopPropagation(),!this.isDisplayed()){var t=this.document.queryCommandValue("fontName")+"";this.showForm(t)}return!1},getForm:function(){return this.form||(this.form=this.createForm()),this.form},isDisplayed:function(){return"block"===this.getForm().style.display},hideForm:function(){this.getForm().style.display="none",this.getSelect().value=""},showForm:function(e){var t=this.getSelect();this.base.saveSelection(),this.hideToolbarDefaultActions(),this.getForm().style.display="block",this.setToolbarPosition(),t.value=e||"",t.focus()},destroy:function(){if(!this.form)return!1;this.form.parentNode&&this.form.parentNode.removeChild(this.form),delete this.form},doFormSave:function(){this.base.restoreSelection(),this.base.checkSelection()},doFormCancel:function(){this.base.restoreSelection(),this.clearFontName(),this.base.checkSelection()},createForm:function(){var e,t=this.document,n=t.createElement("div"),i=t.createElement("select"),o=t.createElement("a"),s=t.createElement("a");n.className="medium-editor-toolbar-form",n.id="medium-editor-toolbar-form-fontname-"+this.getEditorId(),this.on(n,"click",this.handleFormClick.bind(this));for(var r=0;r<this.fonts.length;r++)(e=t.createElement("option")).innerHTML=this.fonts[r],e.value=this.fonts[r],i.appendChild(e);return i.className="medium-editor-toolbar-select",n.appendChild(i),this.on(i,"change",this.handleFontChange.bind(this)),s.setAttribute("href","#"),s.className="medium-editor-toobar-save",s.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-check"></i>':"&#10003;",n.appendChild(s),this.on(s,"click",this.handleSaveClick.bind(this),!0),o.setAttribute("href","#"),o.className="medium-editor-toobar-close",o.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-times"></i>':"&times;",n.appendChild(o),this.on(o,"click",this.handleCloseClick.bind(this)),n},getSelect:function(){return this.getForm().querySelector("select.medium-editor-toolbar-select")},clearFontName:function(){e.selection.getSelectedElements(this.document).forEach((function(e){"font"===e.nodeName.toLowerCase()&&e.hasAttribute("face")&&e.removeAttribute("face")}))},handleFontChange:function(){var e=this.getSelect().value;""===e?this.clearFontName():this.execAction("fontName",{value:e})},handleFormClick:function(e){e.stopPropagation()},handleSaveClick:function(e){e.preventDefault(),this.doFormSave()},handleCloseClick:function(e){e.preventDefault(),this.doFormCancel()}});e.extensions.fontName=t}(),function(){var t=e.extensions.form.extend({name:"fontsize",action:"fontSize",aria:"increase/decrease font size",contentDefault:"&#xB1;",contentFA:'<i class="fa fa-text-height"></i>',init:function(){e.extensions.form.prototype.init.apply(this,arguments)},handleClick:function(e){if(e.preventDefault(),e.stopPropagation(),!this.isDisplayed()){var t=this.document.queryCommandValue("fontSize")+"";this.showForm(t)}return!1},getForm:function(){return this.form||(this.form=this.createForm()),this.form},isDisplayed:function(){return"block"===this.getForm().style.display},hideForm:function(){this.getForm().style.display="none",this.getInput().value=""},showForm:function(e){var t=this.getInput();this.base.saveSelection(),this.hideToolbarDefaultActions(),this.getForm().style.display="block",this.setToolbarPosition(),t.value=e||"",t.focus()},destroy:function(){if(!this.form)return!1;this.form.parentNode&&this.form.parentNode.removeChild(this.form),delete this.form},doFormSave:function(){this.base.restoreSelection(),this.base.checkSelection()},doFormCancel:function(){this.base.restoreSelection(),this.clearFontSize(),this.base.checkSelection()},createForm:function(){var e=this.document,t=e.createElement("div"),n=e.createElement("input"),i=e.createElement("a"),o=e.createElement("a");return t.className="medium-editor-toolbar-form",t.id="medium-editor-toolbar-form-fontsize-"+this.getEditorId(),this.on(t,"click",this.handleFormClick.bind(this)),n.setAttribute("type","range"),n.setAttribute("min","1"),n.setAttribute("max","7"),n.className="medium-editor-toolbar-input",t.appendChild(n),this.on(n,"change",this.handleSliderChange.bind(this)),o.setAttribute("href","#"),o.className="medium-editor-toobar-save",o.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-check"></i>':"&#10003;",t.appendChild(o),this.on(o,"click",this.handleSaveClick.bind(this),!0),i.setAttribute("href","#"),i.className="medium-editor-toobar-close",i.innerHTML="fontawesome"===this.getEditorOption("buttonLabels")?'<i class="fa fa-times"></i>':"&times;",t.appendChild(i),this.on(i,"click",this.handleCloseClick.bind(this)),t},getInput:function(){return this.getForm().querySelector("input.medium-editor-toolbar-input")},clearFontSize:function(){e.selection.getSelectedElements(this.document).forEach((function(e){"font"===e.nodeName.toLowerCase()&&e.hasAttribute("size")&&e.removeAttribute("size")}))},handleSliderChange:function(){var e=this.getInput().value;"4"===e?this.clearFontSize():this.execAction("fontSize",{value:e})},handleFormClick:function(e){e.stopPropagation()},handleSaveClick:function(e){e.preventDefault(),this.doFormSave()},handleCloseClick:function(e){e.preventDefault(),this.doFormCancel()}});e.extensions.fontSize=t}(),function(){var t="%ME_PASTEBIN%",n=null,i=null,o=function(e){e.stopPropagation()};function s(e,t,n){var i=e.clipboardData||t.clipboardData||n.dataTransfer,o={};if(!i)return o;if(i.getData){var s=i.getData("Text");s&&s.length>0&&(o["text/plain"]=s)}if(i.types)for(var r=0;r<i.types.length;r++){var a=i.types[r];o[a]=i.getData(a)}return o}var r=e.Extension.extend({forcePlainText:!0,cleanPastedHTML:!1,preCleanReplacements:[],cleanReplacements:[],cleanAttrs:["class","style","dir"],cleanTags:["meta"],unwrapTags:[],init:function(){e.Extension.prototype.init.apply(this,arguments),(this.forcePlainText||this.cleanPastedHTML)&&(this.subscribe("editableKeydown",this.handleKeydown.bind(this)),this.getEditorElements().forEach((function(e){this.on(e,"paste",this.handlePaste.bind(this))}),this),this.subscribe("addElement",this.handleAddElement.bind(this)))},handleAddElement:function(e,t){this.on(t,"paste",this.handlePaste.bind(this))},destroy:function(){(this.forcePlainText||this.cleanPastedHTML)&&this.removePasteBin()},handlePaste:function(e,t){if(!e.defaultPrevented){var n=s(e,this.window,this.document),i=n["text/html"],o=n["text/plain"];this.window.clipboardData&&void 0===e.clipboardData&&!i&&(i=o),(i||o)&&(e.preventDefault(),this.doPaste(i,o,t))}},doPaste:function(t,n,i){var o,s,r="";if(this.cleanPastedHTML&&t)return this.cleanPaste(t);if(n){if(this.getEditorOption("disableReturn")||i&&i.getAttribute("data-disable-return"))r=e.util.htmlEntities(n);else if((o=n.split(/[\r\n]+/g)).length>1)for(s=0;s<o.length;s+=1)""!==o[s]&&(r+="<p>"+e.util.htmlEntities(o[s])+"</p>");else r=e.util.htmlEntities(o[0]);e.util.insertHTMLCommand(this.document,r)}},handlePasteBinPaste:function(e){if(e.defaultPrevented)this.removePasteBin();else{var t=s(e,this.window,this.document),n=t["text/html"],o=t["text/plain"],r=i;if(!this.cleanPastedHTML||n)return e.preventDefault(),this.removePasteBin(),this.doPaste(n,o,r),void this.trigger("editablePaste",{currentTarget:r,target:r},r);setTimeout(function(){this.cleanPastedHTML&&(n=this.getPasteBinHtml()),this.removePasteBin(),this.doPaste(n,o,r),this.trigger("editablePaste",{currentTarget:r,target:r},r)}.bind(this),0)}},handleKeydown:function(t,n){e.util.isKey(t,e.util.keyCode.V)&&e.util.isMetaCtrlKey(t)&&(t.stopImmediatePropagation(),this.removePasteBin(),this.createPasteBin(n))},createPasteBin:function(s){var r,a=e.selection.getSelectionRange(this.document),l=this.window.pageYOffset;i=s,a&&((r=a.getClientRects()).length?l+=r[0].top:void 0!==a.startContainer.getBoundingClientRect?l+=a.startContainer.getBoundingClientRect().top:l+=a.getBoundingClientRect().top),n=a;var c=this.document.createElement("div");c.id=this.pasteBinId="medium-editor-pastebin-"+ +Date.now(),c.setAttribute("style","border: 1px red solid; position: absolute; top: "+l+"px; width: 10px; height: 10px; overflow: hidden; opacity: 0"),c.setAttribute("contentEditable",!0),c.innerHTML=t,this.document.body.appendChild(c),this.on(c,"focus",o),this.on(c,"focusin",o),this.on(c,"focusout",o),c.focus(),e.selection.selectNode(c,this.document),this.boundHandlePaste||(this.boundHandlePaste=this.handlePasteBinPaste.bind(this)),this.on(c,"paste",this.boundHandlePaste)},removePasteBin:function(){null!==n&&(e.selection.selectRange(this.document,n),n=null),null!==i&&(i=null);var t=this.getPasteBin();t&&t&&(this.off(t,"focus",o),this.off(t,"focusin",o),this.off(t,"focusout",o),this.off(t,"paste",this.boundHandlePaste),t.parentElement.removeChild(t))},getPasteBin:function(){return this.document.getElementById(this.pasteBinId)},getPasteBinHtml:function(){var e=this.getPasteBin();if(!e)return!1;if(e.firstChild&&"mcepastebin"===e.firstChild.id)return!1;var n=e.innerHTML;return!(!n||n===t)&&n},cleanPaste:function(e){var t,n,i,o,s=/<p|<br|<div/.test(e),r=[].concat(this.preCleanReplacements||[],[[new RegExp(/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g),""],[new RegExp(/<!--StartFragment-->|<!--EndFragment-->/g),""],[new RegExp(/<br>$/i),""],[new RegExp(/<[^>]*docs-internal-guid[^>]*>/gi),""],[new RegExp(/<\/b>(<br[^>]*>)?$/gi),""],[new RegExp(/<span class="Apple-converted-space">\s+<\/span>/g)," "],[new RegExp(/<br class="Apple-interchange-newline">/g),"<br>"],[new RegExp(/<span[^>]*(font-style:italic;font-weight:(bold|700)|font-weight:(bold|700);font-style:italic)[^>]*>/gi),'<span class="replace-with italic bold">'],[new RegExp(/<span[^>]*font-style:italic[^>]*>/gi),'<span class="replace-with italic">'],[new RegExp(/<span[^>]*font-weight:(bold|700)[^>]*>/gi),'<span class="replace-with bold">'],[new RegExp(/&lt;(\/?)(i|b|a)&gt;/gi),"<$1$2>"],[new RegExp(/&lt;a(?:(?!href).)+href=(?:&quot;|&rdquo;|&ldquo;|"|\u201c|\u201d)(((?!&quot;|&rdquo;|&ldquo;|"|\u201c|\u201d).)*)(?:&quot;|&rdquo;|&ldquo;|"|\u201c|\u201d)(?:(?!&gt;).)*&gt;/gi),'<a href="$1">'],[new RegExp(/<\/p>\n+/gi),"</p>"],[new RegExp(/\n+<p/gi),"<p"],[new RegExp(/<\/?o:[a-z]*>/gi),""],[new RegExp(/<!\[if !supportLists\]>(((?!<!).)*)<!\[endif]\>/gi),"$1"]],this.cleanReplacements||[]);for(t=0;t<r.length;t+=1)e=e.replace(r[t][0],r[t][1]);if(!s)return this.pasteHTML(e);for((i=this.document.createElement("div")).innerHTML="<p>"+e.split("<br><br>").join("</p><p>")+"</p>",n=i.querySelectorAll("a,p,div,br"),t=0;t<n.length;t+=1)switch((o=n[t]).innerHTML=o.innerHTML.replace(/\n/gi," "),o.nodeName.toLowerCase()){case"p":case"div":this.filterCommonBlocks(o);break;case"br":this.filterLineBreak(o)}this.pasteHTML(i.innerHTML)},pasteHTML:function(t,n){n=e.util.defaults({},n,{cleanAttrs:this.cleanAttrs,cleanTags:this.cleanTags,unwrapTags:this.unwrapTags});var i,o,s,r,a=this.document.createDocumentFragment();for(a.appendChild(this.document.createElement("body")),(r=a.querySelector("body")).innerHTML=t,this.cleanupSpans(r),i=r.querySelectorAll("*"),s=0;s<i.length;s+=1)"a"===(o=i[s]).nodeName.toLowerCase()&&this.getEditorOption("targetBlank")&&e.util.setTargetBlank(o),e.util.cleanupAttrs(o,n.cleanAttrs),e.util.cleanupTags(o,n.cleanTags),e.util.unwrapTags(o,n.unwrapTags);e.util.insertHTMLCommand(this.document,r.innerHTML.replace(/&nbsp;/g," "))},isCommonBlock:function(e){return e&&("p"===e.nodeName.toLowerCase()||"div"===e.nodeName.toLowerCase())},filterCommonBlocks:function(e){/^\s*$/.test(e.textContent)&&e.parentNode&&e.parentNode.removeChild(e)},filterLineBreak:function(e){this.isCommonBlock(e.previousElementSibling)?this.removeWithParent(e):!this.isCommonBlock(e.parentNode)||e.parentNode.firstChild!==e&&e.parentNode.lastChild!==e?e.parentNode&&1===e.parentNode.childElementCount&&""===e.parentNode.textContent&&this.removeWithParent(e):this.removeWithParent(e)},removeWithParent:function(e){e&&e.parentNode&&(e.parentNode.parentNode&&1===e.parentNode.childElementCount?e.parentNode.parentNode.removeChild(e.parentNode):e.parentNode.removeChild(e))},cleanupSpans:function(t){var n,i,o,s=t.querySelectorAll(".replace-with"),r=function(e){return e&&"#text"!==e.nodeName&&"false"===e.getAttribute("contenteditable")};for(n=0;n<s.length;n+=1)i=s[n],o=this.document.createElement(i.classList.contains("bold")?"b":"i"),i.classList.contains("bold")&&i.classList.contains("italic")?o.innerHTML="<i>"+i.innerHTML+"</i>":o.innerHTML=i.innerHTML,i.parentNode.replaceChild(o,i);for(s=t.querySelectorAll("span"),n=0;n<s.length;n+=1){if(i=s[n],e.util.traverseUp(i,r))return!1;e.util.unwrap(i,this.document)}}});e.extensions.paste=r}(),function(){var t=e.Extension.extend({name:"placeholder",text:"Type your text",hideOnClick:!0,init:function(){e.Extension.prototype.init.apply(this,arguments),this.initPlaceholders(),this.attachEventHandlers()},initPlaceholders:function(){this.getEditorElements().forEach(this.initElement,this)},handleAddElement:function(e,t){this.initElement(t)},initElement:function(e){e.getAttribute("data-placeholder")||e.setAttribute("data-placeholder",this.text),this.updatePlaceholder(e)},destroy:function(){this.getEditorElements().forEach(this.cleanupElement,this)},handleRemoveElement:function(e,t){this.cleanupElement(t)},cleanupElement:function(e){e.getAttribute("data-placeholder")===this.text&&e.removeAttribute("data-placeholder")},showPlaceholder:function(t){t&&(e.util.isFF&&0===t.childNodes.length?(t.classList.add("medium-editor-placeholder-relative"),t.classList.remove("medium-editor-placeholder")):(t.classList.add("medium-editor-placeholder"),t.classList.remove("medium-editor-placeholder-relative")))},hidePlaceholder:function(e){e&&(e.classList.remove("medium-editor-placeholder"),e.classList.remove("medium-editor-placeholder-relative"))},updatePlaceholder:function(e,t){if(e.querySelector("img, blockquote, ul, ol, table")||""!==e.textContent.replace(/^\s+|\s+$/g,""))return this.hidePlaceholder(e);t||this.showPlaceholder(e)},attachEventHandlers:function(){this.hideOnClick&&this.subscribe("focus",this.handleFocus.bind(this)),this.subscribe("editableInput",this.handleInput.bind(this)),this.subscribe("blur",this.handleBlur.bind(this)),this.subscribe("addElement",this.handleAddElement.bind(this)),this.subscribe("removeElement",this.handleRemoveElement.bind(this))},handleInput:function(e,t){var n=this.hideOnClick&&t===this.base.getFocusedElement();this.updatePlaceholder(t,n)},handleFocus:function(e,t){this.hidePlaceholder(t)},handleBlur:function(e,t){this.updatePlaceholder(t)}});e.extensions.placeholder=t}(),function(){var t=e.Extension.extend({name:"toolbar",align:"center",allowMultiParagraphSelection:!0,buttons:["bold","italic","underline","anchor","h2","h3","quote"],diffLeft:0,diffTop:-10,firstButtonClass:"medium-editor-button-first",lastButtonClass:"medium-editor-button-last",standardizeSelectionStart:!1,static:!1,sticky:!1,stickyTopOffset:0,updateOnEmptySelection:!1,relativeContainer:null,init:function(){e.Extension.prototype.init.apply(this,arguments),this.initThrottledMethods(),this.relativeContainer?this.relativeContainer.appendChild(this.getToolbarElement()):this.getEditorOption("elementsContainer").appendChild(this.getToolbarElement())},forEachExtension:function(e,t){return this.base.extensions.forEach((function(n){if(n!==this)return e.apply(t||this,arguments)}),this)},createToolbar:function(){var e=this.document.createElement("div");return e.id="medium-editor-toolbar-"+this.getEditorId(),e.className="medium-editor-toolbar",this.static?e.className+=" static-toolbar":this.relativeContainer?e.className+=" medium-editor-relative-toolbar":e.className+=" medium-editor-stalker-toolbar",e.appendChild(this.createToolbarButtons()),this.forEachExtension((function(t){t.hasForm&&e.appendChild(t.getForm())})),this.attachEventHandlers(),e},createToolbarButtons:function(){var t,n,i,o,s,r,a=this.document.createElement("ul");return a.id="medium-editor-toolbar-actions"+this.getEditorId(),a.className="medium-editor-toolbar-actions",a.style.display="block",this.buttons.forEach((function(i){"string"===typeof i?(s=i,r=null):(s=i.name,r=i),(o=this.base.addBuiltInExtension(s,r))&&"function"===typeof o.getButton&&(n=o.getButton(this.base),t=this.document.createElement("li"),e.util.isElement(n)?t.appendChild(n):t.innerHTML=n,a.appendChild(t))}),this),(i=a.querySelectorAll("button")).length>0&&(i[0].classList.add(this.firstButtonClass),i[i.length-1].classList.add(this.lastButtonClass)),a},destroy:function(){this.toolbar&&(this.toolbar.parentNode&&this.toolbar.parentNode.removeChild(this.toolbar),delete this.toolbar)},getInteractionElements:function(){return this.getToolbarElement()},getToolbarElement:function(){return this.toolbar||(this.toolbar=this.createToolbar()),this.toolbar},getToolbarActionsElement:function(){return this.getToolbarElement().querySelector(".medium-editor-toolbar-actions")},initThrottledMethods:function(){this.throttledPositionToolbar=e.util.throttle(function(){this.base.isActive&&this.positionToolbarIfShown()}.bind(this))},attachEventHandlers:function(){this.subscribe("blur",this.handleBlur.bind(this)),this.subscribe("focus",this.handleFocus.bind(this)),this.subscribe("editableClick",this.handleEditableClick.bind(this)),this.subscribe("editableKeyup",this.handleEditableKeyup.bind(this)),this.on(this.document.documentElement,"mouseup",this.handleDocumentMouseup.bind(this)),this.static&&this.sticky&&this.on(this.window,"scroll",this.handleWindowScroll.bind(this),!0),this.on(this.window,"resize",this.handleWindowResize.bind(this))},handleWindowScroll:function(){this.positionToolbarIfShown()},handleWindowResize:function(){this.throttledPositionToolbar()},handleDocumentMouseup:function(t){if(t&&t.target&&e.util.isDescendant(this.getToolbarElement(),t.target))return!1;this.checkState()},handleEditableClick:function(){setTimeout(function(){this.checkState()}.bind(this),0)},handleEditableKeyup:function(){this.checkState()},handleBlur:function(){clearTimeout(this.hideTimeout),clearTimeout(this.delayShowTimeout),this.hideTimeout=setTimeout(function(){this.hideToolbar()}.bind(this),1)},handleFocus:function(){this.checkState()},isDisplayed:function(){return this.getToolbarElement().classList.contains("medium-editor-toolbar-active")},showToolbar:function(){clearTimeout(this.hideTimeout),this.isDisplayed()||(this.getToolbarElement().classList.add("medium-editor-toolbar-active"),this.trigger("showToolbar",{},this.base.getFocusedElement()))},hideToolbar:function(){this.isDisplayed()&&(this.getToolbarElement().classList.remove("medium-editor-toolbar-active"),this.trigger("hideToolbar",{},this.base.getFocusedElement()))},isToolbarDefaultActionsDisplayed:function(){return"block"===this.getToolbarActionsElement().style.display},hideToolbarDefaultActions:function(){this.isToolbarDefaultActionsDisplayed()&&(this.getToolbarActionsElement().style.display="none")},showToolbarDefaultActions:function(){this.hideExtensionForms(),this.isToolbarDefaultActionsDisplayed()||(this.getToolbarActionsElement().style.display="block"),this.delayShowTimeout=this.base.delay(function(){this.showToolbar()}.bind(this))},hideExtensionForms:function(){this.forEachExtension((function(e){e.hasForm&&e.isDisplayed()&&e.hideForm()}))},multipleBlockElementsSelected:function(){var t=new RegExp("<("+e.util.blockContainerElementNames.join("|")+")[^>]*>","g"),n=e.selection.getSelectionHtml(this.document).replace(/<[^\/>][^>]*><\/[^>]+>/gim,"").match(t);return!!n&&n.length>1},modifySelection:function(){var t=this.window.getSelection().getRangeAt(0);if(this.standardizeSelectionStart&&t.startContainer.nodeValue&&t.startOffset===t.startContainer.nodeValue.length){var n=e.util.findAdjacentTextNodeWithContent(e.selection.getSelectionElement(this.window),t.startContainer,this.document);if(n){for(var i=0;0===n.nodeValue.substr(i,1).trim().length;)i+=1;t=e.selection.select(this.document,n,i,t.endContainer,t.endOffset)}}},checkState:function(){if(!this.base.preventSelectionUpdates){if(!this.base.getFocusedElement()||e.selection.selectionInContentEditableFalse(this.window))return this.hideToolbar();var t=e.selection.getSelectionElement(this.window);return!t||-1===this.getEditorElements().indexOf(t)||t.getAttribute("data-disable-toolbar")?this.hideToolbar():this.updateOnEmptySelection&&this.static?this.showAndUpdateToolbar():!e.selection.selectionContainsContent(this.document)||!1===this.allowMultiParagraphSelection&&this.multipleBlockElementsSelected()?this.hideToolbar():void this.showAndUpdateToolbar()}},showAndUpdateToolbar:function(){this.modifySelection(),this.setToolbarButtonStates(),this.trigger("positionToolbar",{},this.base.getFocusedElement()),this.showToolbarDefaultActions(),this.setToolbarPosition()},setToolbarButtonStates:function(){this.forEachExtension((function(e){"function"===typeof e.isActive&&"function"===typeof e.setInactive&&e.setInactive()})),this.checkActiveButtons()},checkActiveButtons:function(){var t,n=[],i=null,o=e.selection.getSelectionRange(this.document),s=function(e){"function"===typeof e.checkState?e.checkState(t):"function"===typeof e.isActive&&"function"===typeof e.isAlreadyApplied&&"function"===typeof e.setActive&&!e.isActive()&&e.isAlreadyApplied(t)&&e.setActive()};if(o&&(this.forEachExtension((function(e){"function"!==typeof e.queryCommandState||null===(i=e.queryCommandState())?n.push(e):i&&"function"===typeof e.setActive&&e.setActive()})),t=e.selection.getSelectedParentElement(o),this.getEditorElements().some((function(n){return e.util.isDescendant(n,t,!0)}))))for(;t&&(n.forEach(s),!e.util.isMediumEditorElement(t));)t=t.parentNode},positionToolbarIfShown:function(){this.isDisplayed()&&this.setToolbarPosition()},setToolbarPosition:function(){var e=this.base.getFocusedElement(),t=this.window.getSelection();if(!e)return this;!this.static&&t.isCollapsed||(this.showToolbar(),this.relativeContainer||(this.static?this.positionStaticToolbar(e):this.positionToolbar(t)),this.trigger("positionedToolbar",{},this.base.getFocusedElement()))},positionStaticToolbar:function(e){this.getToolbarElement().style.left="0";var t,n=this.document.documentElement&&this.document.documentElement.scrollTop||this.document.body.scrollTop,i=this.window.innerWidth,o=this.getToolbarElement(),s=e.getBoundingClientRect(),r=s.top+n,a=s.left+s.width/2,l=o.offsetHeight,c=o.offsetWidth,u=c/2;switch(this.sticky?n>r+e.offsetHeight-l-this.stickyTopOffset?(o.style.top=r+e.offsetHeight-l+"px",o.classList.remove("medium-editor-sticky-toolbar")):n>r-l-this.stickyTopOffset?(o.classList.add("medium-editor-sticky-toolbar"),o.style.top=this.stickyTopOffset+"px"):(o.classList.remove("medium-editor-sticky-toolbar"),o.style.top=r-l+"px"):o.style.top=r-l+"px",this.align){case"left":t=s.left;break;case"right":t=s.right-c;break;case"center":t=a-u}t<0?t=0:t+c>i&&(t=i-Math.ceil(c)-1),o.style.left=t+"px"},positionToolbar:function(e){this.getToolbarElement().style.left="0",this.getToolbarElement().style.right="initial";var t=e.getRangeAt(0),n=t.getBoundingClientRect();(!n||0===n.height&&0===n.width&&t.startContainer===t.endContainer)&&(n=1===t.startContainer.nodeType&&t.startContainer.querySelector("img")?t.startContainer.querySelector("img").getBoundingClientRect():t.startContainer.getBoundingClientRect());var i,o,s=this.window.innerWidth,r=this.getToolbarElement(),a=r.offsetHeight,l=r.offsetWidth/2,c=this.diffLeft-l,u=this.getEditorOption("elementsContainer"),d=["absolute","fixed"].indexOf(window.getComputedStyle(u).getPropertyValue("position"))>-1,h={},m={};d?(o=u.getBoundingClientRect(),["top","left"].forEach((function(e){m[e]=n[e]-o[e]})),m.width=n.width,m.height=n.height,n=m,s=o.width,h.top=u.scrollTop):h.top=this.window.pageYOffset,i=n.left+n.width/2,h.top+=n.top-a,n.top<50?(r.classList.add("medium-toolbar-arrow-over"),r.classList.remove("medium-toolbar-arrow-under"),h.top+=50+n.height-this.diffTop):(r.classList.add("medium-toolbar-arrow-under"),r.classList.remove("medium-toolbar-arrow-over"),h.top+=this.diffTop),i<l?(h.left=c+l,h.right="initial"):s-i<l?(h.left="auto",h.right=0):(h.left=c+i,h.right="initial"),["top","left","right"].forEach((function(e){r.style[e]=h[e]+(isNaN(h[e])?"":"px")}))}});e.extensions.toolbar=t}(),function(){var t=e.Extension.extend({init:function(){e.Extension.prototype.init.apply(this,arguments),this.subscribe("editableDrag",this.handleDrag.bind(this)),this.subscribe("editableDrop",this.handleDrop.bind(this))},handleDrag:function(e){var t="medium-editor-dragover";e.preventDefault(),e.dataTransfer.dropEffect="copy","dragover"===e.type?e.target.classList.add(t):"dragleave"===e.type&&e.target.classList.remove(t)},handleDrop:function(t){t.preventDefault(),t.stopPropagation(),t.dataTransfer.files&&Array.prototype.slice.call(t.dataTransfer.files,0).some(function(t){var n,i;t.type.match("image")&&((n=new FileReader).readAsDataURL(t),i="medium-img-"+ +new Date,e.util.insertHTMLCommand(this.document,'<img class="medium-editor-image-loading" id="'+i+'" />'),n.onload=function(){var e=this.document.getElementById(i);e&&(e.removeAttribute("id"),e.removeAttribute("class"),e.src=n.result)}.bind(this))}.bind(this)),t.target.classList.remove("medium-editor-dragover")}});e.extensions.imageDragging=t}(),function(){function t(t){var n=e.selection.getSelectionStart(this.options.ownerDocument),i=n.textContent,o=e.selection.getCaretOffsets(n);(void 0===i[o.left-1]||""===i[o.left-1].trim()||void 0!==i[o.left]&&""===i[o.left].trim())&&t.preventDefault()}function n(t,n){if(this.options.disableReturn||n.getAttribute("data-disable-return"))t.preventDefault();else if(this.options.disableDoubleReturn||n.getAttribute("data-disable-double-return")){var i=e.selection.getSelectionStart(this.options.ownerDocument);(i&&""===i.textContent.trim()&&"li"!==i.nodeName.toLowerCase()||i.previousElementSibling&&"br"!==i.previousElementSibling.nodeName.toLowerCase()&&""===i.previousElementSibling.textContent.trim())&&t.preventDefault()}}function i(t){var n=e.selection.getSelectionStart(this.options.ownerDocument);"pre"===(n&&n.nodeName.toLowerCase())&&(t.preventDefault(),e.util.insertHTMLCommand(this.options.ownerDocument," ")),e.util.isListItem(n)&&(t.preventDefault(),t.shiftKey?this.options.ownerDocument.execCommand("outdent",!1,null):this.options.ownerDocument.execCommand("indent",!1,null))}function o(t){var n,i=e.selection.getSelectionStart(this.options.ownerDocument),o=i.nodeName.toLowerCase(),s=/^(\s+|<br\/?>)?$/i,r=/h\d/i;e.util.isKey(t,[e.util.keyCode.BACKSPACE,e.util.keyCode.ENTER])&&i.previousElementSibling&&r.test(o)&&0===e.selection.getCaretOffsets(i).left?e.util.isKey(t,e.util.keyCode.BACKSPACE)&&s.test(i.previousElementSibling.innerHTML)?(i.previousElementSibling.parentNode.removeChild(i.previousElementSibling),t.preventDefault()):!this.options.disableDoubleReturn&&e.util.isKey(t,e.util.keyCode.ENTER)&&((n=this.options.ownerDocument.createElement("p")).innerHTML="<br>",i.previousElementSibling.parentNode.insertBefore(n,i),t.preventDefault()):e.util.isKey(t,e.util.keyCode.DELETE)&&i.nextElementSibling&&i.previousElementSibling&&!r.test(o)&&s.test(i.innerHTML)&&r.test(i.nextElementSibling.nodeName.toLowerCase())?(e.selection.moveCursor(this.options.ownerDocument,i.nextElementSibling),i.previousElementSibling.parentNode.removeChild(i),t.preventDefault()):e.util.isKey(t,e.util.keyCode.BACKSPACE)&&"li"===o&&s.test(i.innerHTML)&&!i.previousElementSibling&&!i.parentElement.previousElementSibling&&i.nextElementSibling&&"li"===i.nextElementSibling.nodeName.toLowerCase()?((n=this.options.ownerDocument.createElement("p")).innerHTML="<br>",i.parentElement.parentElement.insertBefore(n,i.parentElement),e.selection.moveCursor(this.options.ownerDocument,n),i.parentElement.removeChild(i),t.preventDefault()):e.util.isKey(t,e.util.keyCode.BACKSPACE)&&!1!==e.util.getClosestTag(i,"blockquote")&&0===e.selection.getCaretOffsets(i).left?(t.preventDefault(),e.util.execFormatBlock(this.options.ownerDocument,"p")):e.util.isKey(t,e.util.keyCode.ENTER)&&!1!==e.util.getClosestTag(i,"blockquote")&&0===e.selection.getCaretOffsets(i).right?((n=this.options.ownerDocument.createElement("p")).innerHTML="<br>",i.parentElement.insertBefore(n,i.nextSibling),e.selection.moveCursor(this.options.ownerDocument,n),t.preventDefault()):e.util.isKey(t,e.util.keyCode.BACKSPACE)&&e.util.isMediumEditorElement(i.parentElement)&&!i.previousElementSibling&&i.nextElementSibling&&s.test(i.innerHTML)&&(t.preventDefault(),e.selection.moveCursor(this.options.ownerDocument,i.nextSibling),i.parentElement.removeChild(i))}function s(t){var n=e.selection.getSelectionStart(this.options.ownerDocument);n&&(e.util.isMediumEditorElement(n)&&0===n.children.length&&!e.util.isBlockContainer(n)&&this.options.ownerDocument.execCommand("formatBlock",!1,"p"),!e.util.isKey(t,e.util.keyCode.ENTER)||e.util.isListItem(n)||e.util.isBlockContainer(n)||("a"===n.nodeName.toLowerCase()?this.options.ownerDocument.execCommand("unlink",!1,null):t.shiftKey||t.ctrlKey||this.options.ownerDocument.execCommand("formatBlock",!1,"p")))}function r(e,t){var n=t.parentNode.querySelector('textarea[medium-editor-textarea-id="'+t.getAttribute("medium-editor-textarea-id")+'"]');n&&(n.value=t.innerHTML.trim())}function a(e){e._mediumEditors||(e._mediumEditors=[null]),this.id||(this.id=e._mediumEditors.length),e._mediumEditors[this.id]=this}function l(e){e._mediumEditors&&e._mediumEditors[this.id]&&(e._mediumEditors[this.id]=null)}function c(t,n,i){var o=[];if(t||(t=[]),"string"===typeof t&&(t=n.querySelectorAll(t)),e.util.isElement(t)&&(t=[t]),i)for(var s=0;s<t.length;s++){var r=t[s];!e.util.isElement(r)||r.getAttribute("data-medium-editor-element")||r.getAttribute("medium-editor-textarea-id")||o.push(r)}else o=Array.prototype.slice.apply(t);return o}function u(e){var t=e.parentNode.querySelector('textarea[medium-editor-textarea-id="'+e.getAttribute("medium-editor-textarea-id")+'"]');t&&(t.classList.remove("medium-editor-hidden"),t.removeAttribute("medium-editor-textarea-id")),e.parentNode&&e.parentNode.removeChild(e)}function d(e,t,n){return"function"===typeof(e=function(e,t){return Object.keys(t).forEach((function(n){void 0===e[n]&&(e[n]=t[n])})),e}(e,{window:n.options.contentWindow,document:n.options.ownerDocument,base:n})).init&&e.init(),e.name||(e.name=t),e}function h(){return!this.elements.every((function(e){return!!e.getAttribute("data-disable-toolbar")}))&&!1!==this.options.toolbar}function m(){return!!h.call(this)&&!1!==this.options.anchorPreview}function f(){return!1!==this.options.placeholder}function p(){return!1!==this.options.autoLink}function g(){return!1!==this.options.imageDragging}function b(){return!1!==this.options.keyboardCommands}function v(){return!this.options.extensions.imageDragging}function E(e){for(var t=this.options.ownerDocument.createElement("div"),n=Date.now(),i="medium-editor-"+n,o=e.attributes;this.options.ownerDocument.getElementById(i);)n++,i="medium-editor-"+n;t.className=e.className,t.id=i,t.innerHTML=e.value,e.setAttribute("medium-editor-textarea-id",i);for(var s=0,r=o.length;s<r;s++)t.hasAttribute(o[s].nodeName)||t.setAttribute(o[s].nodeName,o[s].value);return e.form&&this.on(e.form,"reset",function(e){e.defaultPrevented||this.resetContent(this.options.ownerDocument.getElementById(i))}.bind(this)),e.classList.add("medium-editor-hidden"),e.parentNode.insertBefore(t,e),t}function y(t,i){if(!t.getAttribute("data-medium-editor-element")){"textarea"===t.nodeName.toLowerCase()&&(t=E.call(this,t),this.instanceHandleEditableInput||(this.instanceHandleEditableInput=r.bind(this),this.subscribe("editableInput",this.instanceHandleEditableInput))),this.options.disableEditing||t.getAttribute("data-disable-editing")||(t.setAttribute("contentEditable",!0),t.setAttribute("spellcheck",this.options.spellcheck)),this.instanceHandleEditableKeydownEnter||(t.getAttribute("data-disable-return")||t.getAttribute("data-disable-double-return"))&&(this.instanceHandleEditableKeydownEnter=n.bind(this),this.subscribe("editableKeydownEnter",this.instanceHandleEditableKeydownEnter)),this.options.disableReturn||t.getAttribute("data-disable-return")||this.on(t,"keyup",s.bind(this));var o=e.util.guid();t.setAttribute("data-medium-editor-element",!0),t.classList.add("medium-editor-element"),t.setAttribute("role","textbox"),t.setAttribute("aria-multiline",!0),t.setAttribute("data-medium-editor-editor-index",i),t.setAttribute("medium-editor-index",o),S[o]=t.innerHTML,this.events.attachAllEventsToElement(t)}return t}function C(){this.subscribe("editableKeydownTab",i.bind(this)),this.subscribe("editableKeydownDelete",o.bind(this)),this.subscribe("editableKeydownEnter",o.bind(this)),this.options.disableExtraSpaces&&this.subscribe("editableKeydownSpace",t.bind(this)),this.instanceHandleEditableKeydownEnter||(this.options.disableReturn||this.options.disableDoubleReturn)&&(this.instanceHandleEditableKeydownEnter=n.bind(this),this.subscribe("editableKeydownEnter",this.instanceHandleEditableKeydownEnter))}function w(){if(this.extensions=[],Object.keys(this.options.extensions).forEach((function(e){"toolbar"!==e&&this.options.extensions[e]&&this.extensions.push(d(this.options.extensions[e],e,this))}),this),v.call(this)){var t=this.options.fileDragging;t||(t={},g.call(this)||(t.allowedTypes=[])),this.addBuiltInExtension("fileDragging",t)}var n={paste:!0,"anchor-preview":m.call(this),autoLink:p.call(this),keyboardCommands:b.call(this),placeholder:f.call(this)};Object.keys(n).forEach((function(e){n[e]&&this.addBuiltInExtension(e)}),this);var i=this.options.extensions.toolbar;if(!i&&h.call(this)){var o=e.util.extend({},this.options.toolbar,{allowMultiParagraphSelection:this.options.allowMultiParagraphSelection});i=new e.extensions.toolbar(o)}i&&this.extensions.push(d(i,"toolbar",this))}function x(t,n){return n&&[["allowMultiParagraphSelection","toolbar.allowMultiParagraphSelection"]].forEach((function(t){n.hasOwnProperty(t[0])&&void 0!==n[t[0]]&&e.util.deprecated(t[0],t[1],"v6.0.0")})),e.util.defaults({},n,t)}function T(t,n){var i,o;if(i=/^append-(.+)$/gi.exec(t))return e.util.execFormatBlock(this.options.ownerDocument,i[1]);if("fontSize"===t)return n.size&&e.util.deprecated(".size option for fontSize command",".value","6.0.0"),o=n.value||n.size,this.options.ownerDocument.execCommand("fontSize",!1,o);if("fontName"===t)return n.name&&e.util.deprecated(".name option for fontName command",".value","6.0.0"),o=n.value||n.name,this.options.ownerDocument.execCommand("fontName",!1,o);if("createLink"===t)return this.createLink(n);if("image"===t){var s=this.options.contentWindow.getSelection().toString().trim();return this.options.ownerDocument.execCommand("insertImage",!1,s)}if("html"===t){var r=this.options.contentWindow.getSelection().toString().trim();return e.util.insertHTMLCommand(this.options.ownerDocument,r)}if(/justify([A-Za-z]*)$/g.exec(t)){var a=this.options.ownerDocument.execCommand(t,!1,null),l=e.selection.getSelectedParentElement(e.selection.getSelectionRange(this.options.ownerDocument));return l&&k.call(this,e.util.getTopBlockContainer(l)),a}return o=n&&n.value,this.options.ownerDocument.execCommand(t,!1,o)}function k(t){if(t){var n,i=Array.prototype.slice.call(t.childNodes).filter((function(e){var t="div"===e.nodeName.toLowerCase();return t&&!n&&(n=e.style.textAlign),t}));i.length&&(this.saveSelection(),i.forEach((function(t){if(t.style.textAlign===n){var i=t.lastChild;if(i){e.util.unwrap(t,this.options.ownerDocument);var o=this.options.ownerDocument.createElement("BR");i.parentNode.insertBefore(o,i.nextSibling)}}}),this),t.style.textAlign=n,this.restoreSelection())}}var S={};e.prototype={init:function(e,t){return this.options=x.call(this,this.defaults,t),this.origElements=e,this.options.elementsContainer||(this.options.elementsContainer=this.options.ownerDocument.body),this.setup()},setup:function(){this.isActive||(a.call(this,this.options.contentWindow),this.events=new e.Events(this),this.elements=[],this.addElements(this.origElements),0!==this.elements.length&&(this.isActive=!0,w.call(this),C.call(this)))},destroy:function(){this.isActive&&(this.isActive=!1,this.extensions.forEach((function(e){"function"===typeof e.destroy&&e.destroy()}),this),this.events.destroy(),this.elements.forEach((function(e){this.options.spellcheck&&(e.innerHTML=e.innerHTML),e.removeAttribute("contentEditable"),e.removeAttribute("spellcheck"),e.removeAttribute("data-medium-editor-element"),e.classList.remove("medium-editor-element"),e.removeAttribute("role"),e.removeAttribute("aria-multiline"),e.removeAttribute("medium-editor-index"),e.removeAttribute("data-medium-editor-editor-index"),e.getAttribute("medium-editor-textarea-id")&&u(e)}),this),this.elements=[],this.instanceHandleEditableKeydownEnter=null,this.instanceHandleEditableInput=null,l.call(this,this.options.contentWindow))},on:function(e,t,n,i){return this.events.attachDOMEvent(e,t,n,i),this},off:function(e,t,n,i){return this.events.detachDOMEvent(e,t,n,i),this},subscribe:function(e,t){return this.events.attachCustomEvent(e,t),this},unsubscribe:function(e,t){return this.events.detachCustomEvent(e,t),this},trigger:function(e,t,n){return this.events.triggerCustomEvent(e,t,n),this},delay:function(e){var t=this;return setTimeout((function(){t.isActive&&e()}),this.options.delay)},serialize:function(){var e,t={},n=this.elements.length;for(e=0;e<n;e+=1)t[""!==this.elements[e].id?this.elements[e].id:"element-"+e]={value:this.elements[e].innerHTML.trim()};return t},getExtensionByName:function(e){var t;return this.extensions&&this.extensions.length&&this.extensions.some((function(n){return n.name===e&&(t=n,!0)})),t},addBuiltInExtension:function(t,n){var i,o=this.getExtensionByName(t);if(o)return o;switch(t){case"anchor":i=e.util.extend({},this.options.anchor,n),o=new e.extensions.anchor(i);break;case"anchor-preview":o=new e.extensions.anchorPreview(this.options.anchorPreview);break;case"autoLink":o=new e.extensions.autoLink;break;case"fileDragging":o=new e.extensions.fileDragging(n);break;case"fontname":o=new e.extensions.fontName(this.options.fontName);break;case"fontsize":o=new e.extensions.fontSize(n);break;case"keyboardCommands":o=new e.extensions.keyboardCommands(this.options.keyboardCommands);break;case"paste":o=new e.extensions.paste(this.options.paste);break;case"placeholder":o=new e.extensions.placeholder(this.options.placeholder);break;default:e.extensions.button.isBuiltInButton(t)&&(n?(i=e.util.defaults({},n,e.extensions.button.prototype.defaults[t]),o=new e.extensions.button(i)):o=new e.extensions.button(t))}return o&&this.extensions.push(d(o,t,this)),o},stopSelectionUpdates:function(){this.preventSelectionUpdates=!0},startSelectionUpdates:function(){this.preventSelectionUpdates=!1},checkSelection:function(){var e=this.getExtensionByName("toolbar");return e&&e.checkState(),this},queryCommandState:function(e){var t,n=null;(t=/^full-(.+)$/gi.exec(e))&&(e=t[1]);try{n=this.options.ownerDocument.queryCommandState(e)}catch(i){n=null}return n},execAction:function(t,n){var i,o;return(i=/^full-(.+)$/gi.exec(t))?(this.saveSelection(),this.selectAllContents(),o=T.call(this,i[1],n),this.restoreSelection()):o=T.call(this,t,n),"insertunorderedlist"!==t&&"insertorderedlist"!==t||e.util.cleanListDOM(this.options.ownerDocument,this.getSelectedParentElement()),this.checkSelection(),o},getSelectedParentElement:function(t){return void 0===t&&(t=this.options.contentWindow.getSelection().getRangeAt(0)),e.selection.getSelectedParentElement(t)},selectAllContents:function(){var t=e.selection.getSelectionElement(this.options.contentWindow);if(t){for(;1===t.children.length;)t=t.children[0];this.selectElement(t)}},selectElement:function(t){e.selection.selectNode(t,this.options.ownerDocument);var n=e.selection.getSelectionElement(this.options.contentWindow);n&&this.events.focusElement(n)},getFocusedElement:function(){var e;return this.elements.some((function(t){return!e&&t.getAttribute("data-medium-focused")&&(e=t),!!e}),this),e},exportSelection:function(){var t=e.selection.getSelectionElement(this.options.contentWindow),n=this.elements.indexOf(t),i=null;return n>=0&&(i=e.selection.exportSelection(t,this.options.ownerDocument)),null!==i&&0!==n&&(i.editableElementIndex=n),i},saveSelection:function(){this.selectionState=this.exportSelection()},importSelection:function(t,n){if(t){var i=this.elements[t.editableElementIndex||0];e.selection.importSelection(t,i,this.options.ownerDocument,n)}},restoreSelection:function(){this.importSelection(this.selectionState)},createLink:function(t){var n,i=e.selection.getSelectionElement(this.options.contentWindow),o={};if(-1!==this.elements.indexOf(i)){try{if(this.events.disableCustomEvent("editableInput"),t.url&&e.util.deprecated(".url option for createLink",".value","6.0.0"),(n=t.url||t.value)&&n.trim().length>0){var s=this.options.contentWindow.getSelection();if(s){var r,a,l,c,u=s.getRangeAt(0),d=u.commonAncestorContainer;if(3===u.endContainer.nodeType&&3!==u.startContainer.nodeType&&0===u.startOffset&&u.startContainer.firstChild===u.endContainer&&(d=u.endContainer),a=e.util.getClosestBlockContainer(u.startContainer),l=e.util.getClosestBlockContainer(u.endContainer),3!==d.nodeType&&0!==d.textContent.length&&a===l){var h=a||i,m=this.options.ownerDocument.createDocumentFragment();this.execAction("unlink"),r=this.exportSelection(),m.appendChild(h.cloneNode(!0)),i===h?e.selection.select(this.options.ownerDocument,h.firstChild,0,h.lastChild,3===h.lastChild.nodeType?h.lastChild.nodeValue.length:h.lastChild.childNodes.length):e.selection.select(this.options.ownerDocument,h,0,h,h.childNodes.length);var f=this.exportSelection();0===(c=e.util.findOrCreateMatchingTextNodes(this.options.ownerDocument,m,{start:r.start-f.start,end:r.end-f.start,editableElementIndex:r.editableElementIndex})).length&&((m=this.options.ownerDocument.createDocumentFragment()).appendChild(d.cloneNode(!0)),c=[m.firstChild.firstChild,m.firstChild.lastChild]),e.util.createLink(this.options.ownerDocument,c,n.trim());var p=(m.firstChild.innerHTML.match(/^\s+/)||[""])[0].length;e.util.insertHTMLCommand(this.options.ownerDocument,m.firstChild.innerHTML.replace(/^\s+/,"")),r.start-=p,r.end-=p,this.importSelection(r)}else this.options.ownerDocument.execCommand("createLink",!1,n);this.options.targetBlank||"_blank"===t.target?e.util.setTargetBlank(e.selection.getSelectionStart(this.options.ownerDocument),n):e.util.removeTargetBlank(e.selection.getSelectionStart(this.options.ownerDocument),n),t.buttonClass&&e.util.addClassToAnchors(e.selection.getSelectionStart(this.options.ownerDocument),t.buttonClass)}}if(this.options.targetBlank||"_blank"===t.target||t.buttonClass){(o=this.options.ownerDocument.createEvent("HTMLEvents")).initEvent("input",!0,!0,this.options.contentWindow);for(var g=0,b=this.elements.length;g<b;g+=1)this.elements[g].dispatchEvent(o)}}finally{this.events.enableCustomEvent("editableInput")}this.events.triggerCustomEvent("editableInput",o,i)}},cleanPaste:function(e){this.getExtensionByName("paste").cleanPaste(e)},pasteHTML:function(e,t){this.getExtensionByName("paste").pasteHTML(e,t)},setContent:function(e,t){if(t=t||0,this.elements[t]){var n=this.elements[t];n.innerHTML=e,this.checkContentChanged(n)}},getContent:function(e){return e=e||0,this.elements[e]?this.elements[e].innerHTML.trim():null},checkContentChanged:function(t){t=t||e.selection.getSelectionElement(this.options.contentWindow),this.events.updateInput(t,{target:t,currentTarget:t})},resetContent:function(e){if(e){var t=this.elements.indexOf(e);-1!==t&&this.setContent(S[e.getAttribute("medium-editor-index")],t)}else this.elements.forEach((function(e,t){this.setContent(S[e.getAttribute("medium-editor-index")],t)}),this)},addElements:function(e){var t=c(e,this.options.ownerDocument,!0);if(0===t.length)return!1;t.forEach((function(e){e=y.call(this,e,this.id),this.elements.push(e),this.trigger("addElement",{target:e,currentTarget:e},e)}),this)},removeElements:function(e){var t=c(e,this.options.ownerDocument).map((function(e){return e.getAttribute("medium-editor-textarea-id")&&e.parentNode?e.parentNode.querySelector('div[medium-editor-textarea-id="'+e.getAttribute("medium-editor-textarea-id")+'"]'):e}));this.elements=this.elements.filter((function(e){return-1===t.indexOf(e)||(this.events.cleanupElement(e),e.getAttribute("medium-editor-textarea-id")&&u(e),this.trigger("removeElement",{target:e,currentTarget:e},e),!1)}),this)}},e.getEditorFromElement=function(e){var t=e.getAttribute("data-medium-editor-editor-index"),n=e&&e.ownerDocument&&(e.ownerDocument.defaultView||e.ownerDocument.parentWindow);return n&&n._mediumEditors&&n._mediumEditors[t]?n._mediumEditors[t]:null}}(),e.prototype.defaults={activeButtonClass:"medium-editor-button-active",buttonLabels:!1,delay:0,disableReturn:!1,disableDoubleReturn:!1,disableExtraSpaces:!1,disableEditing:!1,autoLink:!1,elementsContainer:!1,contentWindow:window,ownerDocument:document,targetBlank:!1,extensions:{},spellcheck:!0},e.parseVersionString=function(e){var t=e.split("-"),n=t[0].split("."),i=t.length>1?t[1]:"";return{major:parseInt(n[0],10),minor:parseInt(n[1],10),revision:parseInt(n[2],10),preRelease:i,toString:function(){return[n[0],n[1],n[2]].join(".")+(i?"-"+i:"")}}},e.version=e.parseVersionString.call(this,"5.23.3"),e}())},70743:function(e,t,n){"use strict";var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=l(n(27418)),s=l(n(7836)),r=l(n(67294)),a=l(n(73935));function l(e){return e&&e.__esModule?e:{default:e}}if("undefined"!==typeof document)var c=n(69748);var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,Object.getPrototypeOf(t).call(this,e));return n.state={text:n.props.text},n}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this,t=a.default.findDOMNode(this);this.medium=new c(t,this.props.options),this.medium.subscribe("editableInput",(function(n){e._updated=!0,e.change(t.innerHTML)}))}},{key:"componentDidUpdate",value:function(){this.medium.restoreSelection()}},{key:"componentWillUnmount",value:function(){this.medium.destroy()}},{key:"componentWillReceiveProps",value:function(e){e.text===this.state.text||this._updated||this.setState({text:e.text}),this._updated&&(this._updated=!1)}},{key:"render",value:function(){var e=this.props.tag,t=(0,s.default)(this.props,"options","text","tag","contentEditable","dangerouslySetInnerHTML");return(0,o.default)(t,{dangerouslySetInnerHTML:{__html:this.state.text}}),this.medium&&this.medium.saveSelection(),r.default.createElement(e,t)}},{key:"change",value:function(e){this.props.onChange&&this.props.onChange(e,this.medium)}}]),t}(r.default.Component);u.defaultProps={tag:"div"},t.default=u},5575:function(e,t,n){e.exports=n(70743)}}]); \ No newline at end of file
diff --git a/web/gui/v2/575.9daac2298d0395fdf183.chunk.js.LICENSE.txt b/web/gui/v2/575.76dcaacb1c2276f86dea.chunk.js.LICENSE.txt
index c7e9843a..c7e9843a 100644
--- a/web/gui/v2/575.9daac2298d0395fdf183.chunk.js.LICENSE.txt
+++ b/web/gui/v2/575.76dcaacb1c2276f86dea.chunk.js.LICENSE.txt
diff --git a/web/gui/v2/597.5d5a03215ae545861922.chunk.js b/web/gui/v2/597.cb6f23362a28e63af220.chunk.js
index c6e9e681..ff388548 100644
--- a/web/gui/v2/597.5d5a03215ae545861922.chunk.js
+++ b/web/gui/v2/597.cb6f23362a28e63af220.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="51fc0646-d9ce-4595-a674-494d1b47b25f",e._sentryDebugIdIdentifier="sentry-dbid-51fc0646-d9ce-4595-a674-494d1b47b25f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[597],{35539:function(e,t,n){n.d(t,{JG:function(){return c},Qj:function(){return f},Ym:function(){return r},Zg:function(){return i},k0:function(){return a},lI:function(){return u},mD:function(){return d},sr:function(){return l},xQ:function(){return o},yu:function(){return s}});var r="silencingRules",a={system:{text:"All users",tooltip:"Rule affects all users"},personal:{text:"Myself",tooltip:"Limit the silencing effect to your account only"}},o="system",l={label:"All rooms",value:""},i={now:{text:"Silence for a specific duration",tooltip:"Rule starts immediately and lasts until the specified duration"},schedule:{text:"Schedule silence",tooltip:"Schedule the rule to start taking effect at some point at the future"}},c="now",u={untilTurnedOff:"Until turned off",oneHour:"1 hour",sixHours:"6 hours",twelveHours:"12 hours",oneDay:"1 day",custom:"Custom"},s={label:"Until turned off",value:"untilTurnedOff"},d={border:{side:"all",color:"inputBorder"},padding:[1,2],margin:[0,0,.5,0],round:!0,justifyContent:"start"},f={ErrInvalidName:"No rule name provided",ErrCodeInvalidStartsAt:"Invalid or no start date provided",ErrCodeInvalidSLastUntil:"Invalid or no end date provided",ErrCodeInvalidScheduleDuration:"Invalid duration selected",ErrCodeInvalidSeverity:"Invalid severity",ErrCodeInvalidIntegration:"Invalid integration",ErrCodeNotOwnRule:"Not permitted to create system rules"}},45396:function(e,t,n){n.d(t,{B:function(){return m}});var r=n(15861),a=n(64687),o=n.n(a),l=(n(21249),n(57640),n(9924),n(67294)),i=n(4480),c=n(74059),u=n(96929),s=n(25819),d=n(93742),f=function(){var e=(0,c.th)();return(0,i._8)((function(t){var n=t.set,a=t.snapshot;return function(){var t=(0,r.Z)(o().mark((function t(r){var l,i;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.getPromise((0,u.Nj)({id:r,key:"nodes"}));case 2:return l=t.sent,i=null,null!==l&&void 0!==l&&l.length||(n((0,u.Nj)({id:r,key:"loaded"}),!1),(i=(0,s.Fz)({roomId:r,spaceId:e})).then((function(e){var t=e.data;n((0,u.Nj)({id:r,key:"nodes"}),t.map((function(e){var t=e.id;return{label:e.name,value:t}}))),n((0,u.Nj)({id:r,key:"loaded"}),!0)})).catch((function(e){return n((0,u.Nj)({id:r,key:"error"}),e)}))),t.abrupt("return",i);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()}),[e])},m=function(){var e=f(),t=(0,d.p)("id");(0,l.useEffect)((function(){var n=null;return t&&(n=e(t)),function(){var e;return!(null===(e=n)||void 0===e||!e.cancel)&&n.cancel()}}),[t,e])};t.Z=f},95384:function(e,t,n){n.r(t),n.d(t,{default:function(){return Oe}});var r=n(67294),a=n(91268),o=n(78266),l=n(29439),i=(n(41539),n(64211),n(2490),n(41874),n(47941),n(46667)),c=n(29814),u=n(72843),s=n(54316),d=n(87462),f=(n(21249),n(15557)),m=(n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4942)),p=(n(85827),n(25387),n(72608),n(34553),n(26699),n(15581),n(34514),n(54747),n(69720),n(95248)),y=n(8144),b=n(46742),v=n(45987),g=(n(32023),n(57640),n(9924),n(92222),n(4480)),h=n(74059),O=n(25403),E=n(93742),j=["rules"];function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var k,P=function(e){return function(t,n){var r=t[e];return!Array.isArray(n)||!n.length||(Array.isArray(r)?n.some((function(e){return r.includes(e)})):n.includes(r))}},Z={roomIds:P("roomIds"),nodeIds:P("nodeIds"),hostLabels:(k="hostLabels",function(e,t){var n=e[k];if(!n)return!t.length;var r=Object.entries(n).map((function(e){var t=(0,l.Z)(e,2),n=t[0],r=t[1];return"".concat(n,": ").concat(r)}));return P(k)(x(x({},e),{},(0,m.Z)({},k,r)),t)}),alertNames:P("alertNames"),alertRoles:P("alertRoles"),alertContexts:P("alertContexts")},I=(0,g.CG)({key:"silencingRulesFiltered",get:function(e){var t=e.extraKey,n=e.spaceId,r=e.omit,a=void 0===r?[]:r,o=e.keepAll,i=e.allNodesRoomId;return function(e){var r=e.get,c=r((0,p.dz)({key:n,extraKey:t})),u=Object.keys(c).reduce((function(e,t){return a.includes(t)||e.push([t,c[t]]),e}),[]),s=r((0,O.z5)({id:n,allNodesRoomId:i}));if(!u.length)return s;var d=function(e){return function(t){return!e.some((function(e){var n=(0,l.Z)(e,2),r=n[0],a=n[1];return!!Z[r]&&!Z[r](t,a)}))}}(u),f=s.rules,m=(0,v.Z)(s,j);return o?s:x(x({},m),{},{rules:f.filter(d)})}}}),S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.extraKey,n=e.omit,r=void 0===n?[]:n,a=e.keepAll,o=void 0!==a&&a,l=(0,h.th)(),i=(0,E.p)("id");return(0,g.sJ)(I({extraKey:t,spaceId:l,omit:r,keepAll:o,allNodesRoomId:i}))},A=n(62447);function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var K=function(e,t,n){var r=e.id,a=e.name;-1==n?t.push({id:r,name:a,count:1}):t[n]=C(C({},t[n]),{},{count:t[n].count+1})},R=function(e){return e.id},N=function(e){return e.name},T=function(e){var t=e.title,n=e.baseKey,a=e.param,o=e.paramKey,i=e.extraKey,c=e.testIdPrefix,u=function(e){var t=e.baseKey,n=e.extraKey,a=e.param,o=e.paramKey,i=S({extraKey:n,omit:[a],keepAll:!0}).rules,c=(0,p.by)(a,{key:t,extraKey:n});return(0,r.useMemo)((function(){return i.reduce((function(e,t){var n=t[o];if(!n)return e;var r=e.findIndex((function(e){return e.id==n.id}));return["rooms","nodes"].includes(o)?n.forEach((function(t){var n=t.id,a=t.name,o=t.notAvailable?"Not available (".concat(n,")"):a;K({id:n,name:o},e,r)})):["alertNames","alertContexts","alertRoles"].includes(o)?n.forEach((function(t){K({id:t,name:t},e,r)})):"hostLabels"==o&&Object.entries(n).forEach((function(t){var n=(0,l.Z)(t,2),a=n[0],o=n[1],i=(0,A.q)({key:a,value:o});K({id:i,name:i},e,r)})),e}),[])}),[i,c])}({baseKey:n,extraKey:i,param:a,paramKey:o});return u.length?r.createElement(y.Z,{title:t,testIdPrefix:c,param:a,baseKey:n,extraKey:i},r.createElement(b.ZP,{param:a,baseKey:n,extraKey:i,testIdPrefix:c,collection:u,getValue:R,getLabel:N,capitalized:!1})):null},L=n(35539),F=[{title:"Rooms",param:"roomIds",paramKey:"rooms"},{title:"Nodes",param:"nodeIds",paramKey:"nodes"},{title:"Host labels",param:"hostLabels",paramKey:"hostLabels"},{title:"Alert names",param:"alertNames",paramKey:"alertNames"},{title:"Alert contexts",param:"alertContexts",paramKey:"alertContexts"},{title:"Alert roles",param:"alertRoles",paramKey:"alertRoles"}],_=(0,r.memo)((function(e){var t=(0,h.th)();return r.createElement(f.Flex,(0,d.Z)({column:!0,height:"calc(100vh - 266px)",overflow:{vertical:"auto"},padding:[0,0,30]},e),F.map((function(e){var n=e.title,a=e.param,o=e.paramKey;return r.createElement(T,{key:n,baseKey:t,extraKey:L.Ym,title:n,param:a,paramKey:o})})))})),M={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:_,dataTestId:"filterBar",label:"Filters"}},z=["filters"],B=function(e){return e.some((function(e){var t=e.roomIds,n=void 0===t?[]:t,r=e.nodeIds,a=void 0===r?[]:r,o=e.hostLabels,l=void 0===o?{}:o,i=e.alertNames,c=void 0===i?[]:i,u=e.alertContexts,s=void 0===u?[]:u,d=e.alertRoles,f=void 0===d?[]:d;return n.length||a.length||Object.keys(l).length||c.length||s.length||f.length}))},G=function(e){var t=e.rules,n=(0,i.Z)((function(){return B(t)})),a=(0,l.Z)(n,2),o=a[0],d=a[1],f=M.filters.Content;return(0,r.useEffect)((function(){d(B(t))}),[t]),r.createElement(s.ZP,{collapsedComponent:r.createElement(c.Z,{onClickTab:d,availableTabs:M,tabsToShow:z}),isOpen:o,header:r.createElement(u.Z,{isOpen:o,onToggle:d,title:"Filters",icon:"filterList"})},r.createElement(f,{padding:[0,3,30]}))},H=(n(66992),n(88674),n(78783),n(33948),n(74916),n(64765),n(38862),n(2145)),V=n(91008),U=n(41331),J=(n(17727),n(89405)),Y=n(93017),Q=n(82351),W=["value"];function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var $=function(e){var t=e.value,n=(0,v.Z)(e,W);return r.createElement(Q.Z,{content:t},r.createElement(f.Pill,(0,d.Z)({maxWidth:"100%",overflow:"hidden",flavour:"neutral",color:"neutralPillColor",size:"small",justifyContent:"start",margin:[1]},n),t))},ee=function(){return r.createElement(f.Text,null,"*")},te=function(e){var t=(0,e.getValue)();return null!==t&&void 0!==t&&t.length?r.createElement(f.Flex,{flexWrap:!0},t.map((function(e){return r.createElement($,{key:e,value:e})}))):r.createElement(ee,null)},ne=function(e){var t=e.getValue,n=(0,J.rA)().localeDateString;if(!t())return r.createElement(f.Text,null,"-");var a=n(new Date(t()),{month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0});return r.createElement(f.Text,{whiteSpace:"nowrap"},a)},re=[{id:"disabled",name:"Disable rule",accessorKey:"disabled",header:"",cell:function(e){var t=e.row,n=e.getValue,a=t.original,o=(0,r.useState)(!n()),c=(0,l.Z)(o,2),u=c[0],s=c[1],d=(0,i.Z)(),m=(0,l.Z)(d,2),p=m[0],y=m[1],b=(0,Y.Z)(),v=(0,l.Z)(b,2)[1],g=(0,O.j6)(),h=(0,O._A)();return r.createElement(f.Toggle,{colored:!0,checked:u,disabled:p,onChange:function(e){y();var t=e.target.checked;s(t),g(X(X({},a),{},{disabled:!t})).then((function(){h()})).catch((function(e){s(!t),v(e)})).finally(y)}})},size:50,maxSize:50,minSize:50},{id:"name",name:"Name",accessorKey:"name",header:"Rule name",cell:function(e){var t=e.row,n=e.getValue,a=t.original.accountId;return r.createElement(f.Flex,{gap:2,alignItems:"center"},r.createElement(f.Text,{wordBreak:"break-word"},n()),a&&r.createElement(Q.Z,{align:"bottom",content:"This rule affects only your account"},r.createElement(f.Icon,{color:"textLite",height:"16px",name:"userPress",width:"16px"})))}},{id:"rooms",name:"Rooms",accessorKey:"rooms",header:"Rooms",cell:function(e){var t=(0,e.getValue)();return null!==t&&void 0!==t&&t.length?r.createElement(f.Text,null,t.map((function(e){return e.name})).join(", ")):r.createElement(f.Text,null,"All rooms")}},{id:"nodes",name:"Nodes",accessorKey:"nodes",header:"Nodes",cell:function(e){var t=(0,e.getValue)();return null!==t&&void 0!==t&&t.length?r.createElement(f.Flex,{flexWrap:!0},t.map((function(e){var t=e.id,n=e.name,a=e.notAvailable?r.createElement(f.Flex,{alignItems:"center",gap:1},r.createElement(f.Icon,{name:"warning_triangle",size:"small",color:"neutralPillColor"}),r.createElement(f.Text,null,"Node no longer available")):n;return r.createElement($,{key:t,value:a})}))):r.createElement(ee,null)}},{id:"hostLabels",name:"Host labels",accessorKey:"hostLabels",header:"Host labels",cell:function(e){var t=(0,e.getValue)(),n=Object.entries(t||{});return n.length?r.createElement(f.Flex,{flexWrap:!0},n.map((function(e){var t=(0,l.Z)(e,2),n=t[0],a=t[1],o=(0,A.q)({key:n,value:a});return r.createElement($,{key:o,value:o})}))):r.createElement(ee,null)}},{id:"alertNames",name:"Alert names",accessorKey:"alertNames",header:"Alert name",cell:te},{id:"alertContexts",name:"Alert contexts",accessorKey:"alertContexts",header:"Alert context",cell:te},{id:"alertRoles",name:"Alert roles",accessorKey:"alertRoles",header:"Alert role",cell:te},{id:"startDate",name:"Start date",accessorKey:"startsAt",header:"Start date",cell:ne,size:120},{id:"endDate",name:"End date",accessorKey:"lastsUntil",header:"End date",cell:ne,size:120}],ae=n(93433),oe=(n(84944),n(92686),n(33335)),le={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},ie=(0,H.Z)((function(){return n.e(20).then(n.bind(n,9020))}),"CreateOrUpdateRuleModal"),ce=(0,r.memo)(f.NetdataTable,(function(e,t){return(0,U.ZP)(e,t)})),ue={right:["actions"]},se=function(){return r.createElement(f.Flex,null,r.createElement(f.Text,null,"Create or Maintain Alert Notification Silencing Rules on this Space. These rules can be applicable to all users or just you, depending on their definition."," ",r.createElement(V.Z,{"data-ga":"alert-silencing::click-link-docs::rules-table","data-testid":"silencing-rules-doc",href:"https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/netdata-cloud-notifications/#silencing-alert-notifications",rel:"noopener noreferrer",target:"_blank"},"Read the Alert Notification Silencing Rules documentation to learn more.")))},de=function(e){var t=e.data,n=function(){var e=(0,r.useState)(""),t=(0,l.Z)(e,2),n=t[0],a=t[1],o=(0,r.useState)({}),i=(0,l.Z)(o,2),c=i[0],u=i[1],s=(0,Y.Z)(),d=(0,l.Z)(s,2)[1],m=(0,J.rA)().localeDateString,p=(0,O.hr)(),y=(0,O._A)(),b=function(){return u({type:"create"})},v=function(e){return u({type:"edit",rule:e})},g=function(e){var t=e.id;p([t]).then((function(){y()})).catch(d)},h=(0,oe.gI)("space:DeletePersonalSilencingRule"),E=(0,oe.gI)("space:DeleteSystemSilencingRule"),j=(0,r.useMemo)((function(){return{addEntry:{dataGa:"",flavour:"hollow",handleAction:b,iconColor:"success",label:"Add rule",small:!0,width:"auto"}}}),[]),w=function(e){var t=e.name;return r.createElement(r.Fragment,null,"Delete ",r.createElement(f.H3,{wordBreak:"break-word"},t)," rule")};return{search:n,setSearch:a,bulkActions:j,rowActions:(0,r.useMemo)((function(){return{edit:{handleAction:v,disabledTooltipText:"Edit is disabled",isDisabled:function(e){return!!e.readOnly},dataGa:"alert-silencing::click-edit-row::rules-table"},delete:{handleAction:g,confirmationTitle:w,confirmationMessage:function(e){return r.createElement(f.Text,{wordBreak:"break-word"},"You are about to delete ",r.createElement("strong",null,e.name)," silencing rule.",r.createElement("br",null),"Are you sure you want to continue?")},dataGa:"alert-silencing::click-delete-row::rules-table",disabledTooltipText:"Delete is disabled",confirmLabel:"Yes, delete",declineLabel:"Cancel",isDisabled:function(e){return e.accountId?!h:!E}}}}),[]),onFilter:(0,r.useCallback)((function(e,t,n){var r=e.original,a=n.toLowerCase(),o=(r.rooms||[]).map((function(e){return e.name})),l=(r.nodes||[]).map((function(e){return e.name})),i=r.alertNames||[],c=r.alertContexts||[],u=r.alertRoles||[],s=r.hostLabels||{},d=r.startsAt?m(new Date(r.startsAt),le):"",f=r.lastsUntil?m(new Date(r.lastsUntil),le):"";return function(e,t){return e.some((function(e){return e.toLowerCase().includes(t)}))}([r.name.toLowerCase()].concat((0,ae.Z)(o),(0,ae.Z)(l),(0,ae.Z)(i),(0,ae.Z)(c),(0,ae.Z)(u),(0,ae.Z)(Object.entries(s).flat()),[d,f]),a)}),[]),modalDetails:c,closeModal:function(){return u({})}}}(),a=n.search,o=n.setSearch,i=n.bulkActions,c=n.rowActions,u=n.onFilter,s=n.modalDetails,d=n.closeModal;return r.createElement(r.Fragment,null,r.createElement(f.Flex,{column:!0,gap:4,padding:[2,4],height:"calc(100vh - 241px)"},r.createElement(se,null),r.createElement(ce,{key:JSON.stringify(t||{}),enableSorting:!0,enableColumnVisibility:!0,data:t,dataColumns:re,bulkActions:i,rowActions:c,globalFilter:a,globalFilterFn:u,onGlobalSearchChange:o,columnPinning:ue,enableColumnPinning:!0,enablePinning:!0})),"create"==s.type&&r.createElement(r.Suspense,null,r.createElement(ie,{onClose:d})),"edit"==s.type&&s.rule&&r.createElement(r.Suspense,null,r.createElement(ie,{rule:s.rule,onClose:d,isEdit:!0})))},fe=n(94050),me=n(73787),pe=n(5429);function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ye(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ye(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ve=function(e){var t=(0,O.oO)({id:e,key:"initialLoad"}),n=(0,O.tZ)(),r=(0,O.XJ)(e);(0,pe.Z)((function(){return{enabled:!!e&&!t,fetch:function(){return(0,fe.KH)(e)},onFail:function(e){return r(be(be({},me.R),{},{loading:!1,loaded:!0,error:e}))},onSuccess:function(e){return r(function(e,t){return be(be({},e),{},{loading:!1,loaded:!0,initialLoad:!0,rules:t})}(me.R,e))}}}),[e,n])},ge=function(e){var t=e.errorMessage;return r.createElement(f.Flex,{column:!0,gap:2,alignItems:"center",justifyContent:"center",flex:!0},r.createElement(f.TextBig,null,"Something went wrong"),t&&r.createElement(f.Text,null,"(",t,")"))},he=n(45396),Oe=function(){var e=(0,h.th)();ve(e),(0,he.B)();var t=S({extraKey:L.Ym}),n=t.loaded,l=t.rules,i=t.error;return n?i?r.createElement(ge,{errorMessage:i.message}):r.createElement(a.Z,{rightBar:r.createElement(G,{rules:l}),margin:[3,0]},r.createElement(de,{data:l})):r.createElement(o.Z,{height:"calc(100% - 44px)",title:"Loading silencing rules..."})}},62447:function(e,t,n){n.d(t,{_:function(){return o},q:function(){return l}});var r=n(29439),a=(n(47941),n(85827),n(41539),n(25387),n(2490),n(72608),n(69720),n(92222),n(35539)),o=function(e){var t,n=(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||{},o=n.validationErrors,l=n.errorMessage;return o&&Object.keys(o).length?Object.entries(o).reduce((function(e,t){var n=(0,r.Z)(t,2)[1].Code;return a.Qj[n]&&e.push({errorMessage:a.Qj[n]}),e}),[]):[{errorMessage:l}]},l=function(e){var t=e.key,n=e.value;return"".concat(t,": ").concat(n)}},94050:function(e,t,n){n.d(t,{KF:function(){return u},KH:function(){return l},nt:function(){return i},oG:function(){return c}});n(21249),n(57640),n(9924),n(92222);var r=n(26398),a=n(66152),o=function(e){return e.map((function(e){return(0,a.k5)(e)}))},l=function(e){return r.Z.get("/api/v2/spaces/".concat(e,"/notifications/silencing/rules"),{transform:o})},i=function(e,t){return r.Z.post("/api/v2/spaces/".concat(e,"/notifications/silencing/rules/delete"),t)},c=function(e,t){return r.Z.post("/api/v2/spaces/".concat(e,"/notifications/silencing/rule"),(0,a.v)(t))},u=function(e,t){return r.Z.put("/api/v2/spaces/".concat(e,"/notifications/silencing/rule/").concat(t.id),(0,a.v)(t))}},25403:function(e,t,n){n.d(t,{XJ:function(){return g},_A:function(){return E},hr:function(){return x},j6:function(){return w},oO:function(){return v},tZ:function(){return O},wK:function(){return j},z5:function(){return b}});var r=n(4942),a=n(45987),o=(n(21249),n(57640),n(9924),n(69826),n(41539),n(31672),n(2490),n(59461),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4480)),l=n(74059),i=n(37518),c=n(94050),u=n(73787),s=n(96929),d=n(93742),f=["rules"],m=["roomIds","nodeIds"];function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=(0,o.CG)({key:"silencingRulesState",get:function(e){var t=e.id,n=e.key,r=e.allNodesRoomId;return function(e){var o=e.get,l=o((0,u.Z)(t)),i=l.rules,c=(0,a.Z)(l,f),d=o((0,s.Nj)({id:r,key:"nodes"})),m=y(y({},c),{},{rules:i.map((function(e){return y(y({},e),e.nodeIds?{nodes:e.nodeIds.map((function(e){var t=d.find((function(t){return t.value==e}));return{id:e,name:(null===t||void 0===t?void 0:t.label)||"-",notAvailable:!t}}))}:{})}))});return n?m[n]:m}},set:function(e){var t=e.id,n=e.key;return function(e,o){var l=e.get,c=e.set,s=o.rules;c((0,u.Z)(t),(function(e){if(s){var t=s.map((function(e){var t=e.roomIds,n=e.nodeIds,r=(0,a.Z)(e,m),o=t?t.map((function(e){var t=l((0,i.n2)({id:e}));return{id:t.id,name:t.name}})):void 0;return y(y(y(y({},r),t?{roomIds:t}:{}),o?{rooms:o}:{}),n?{nodeIds:n}:{})}));o.rules=t}return n?y(y({},e),{},(0,r.Z)({},n,o)):y(y({},e),o)}))}}}),v=function(e){var t=e.id,n=e.key,r=(0,d.p)("id");return(0,o.sJ)(b({id:t,key:n,allNodesRoomId:r}))},g=function(e,t){return(0,o.Zl)(b({id:e,key:t}))},h=(0,o.cn)({key:"forceUpdateRulesSelector",default:0}),O=function(){return(0,o.sJ)(h)},E=function(){var e=(0,l.th)(),t=g(e),n=(0,o.Zl)(h);return function(){t((function(e){return y(y({},e),{},{initialLoad:!1})})),n((function(e){return e+1}))}},j=function(){var e=(0,l.th)();return function(t){return(0,c.oG)(e,t)}},w=function(){var e=(0,l.th)();return function(t){return(0,c.KF)(e,t)}},x=function(){var e=(0,l.th)();return function(t){return(0,c.nt)(e,t)}}},73787:function(e,t,n){n.d(t,{R:function(){return i}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),a=n(4480);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var i={rules:[],error:"",id:null,loading:!0,loaded:!1,initialLoad:!1};t.Z=(0,a.xu)({key:"silencingRulesState",default:function(e){return function(e){return l(l({},i),{},{id:e})}(e)}})},84944:function(e,t,n){var r=n(82109),a=n(6790),o=n(47908),l=n(26244),i=n(19303),c=n(65417);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=o(this),n=l(t),r=c(t,0);return r.length=a(r,t,t,n,0,void 0===e?1:i(e)),r}})},92686:function(e,t,n){n(51223)("flat")}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="591187c7-811e-4fc6-8fd8-53cbbd5af6d2",e._sentryDebugIdIdentifier="sentry-dbid-591187c7-811e-4fc6-8fd8-53cbbd5af6d2")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[597],{35539:function(e,t,n){n.d(t,{JG:function(){return c},Qj:function(){return f},Ym:function(){return r},Zg:function(){return i},k0:function(){return a},lI:function(){return u},mD:function(){return d},sr:function(){return l},xQ:function(){return o},yu:function(){return s}});var r="silencingRules",a={system:{text:"All users",tooltip:"Rule affects all users"},personal:{text:"Myself",tooltip:"Limit the silencing effect to your account only"}},o="system",l={label:"All rooms",value:""},i={now:{text:"Silence for a specific duration",tooltip:"Rule starts immediately and lasts until the specified duration"},schedule:{text:"Schedule silence",tooltip:"Schedule the rule to start taking effect at some point at the future"}},c="now",u={untilTurnedOff:"Until turned off",oneHour:"1 hour",sixHours:"6 hours",twelveHours:"12 hours",oneDay:"1 day",custom:"Custom"},s={label:"Until turned off",value:"untilTurnedOff"},d={border:{side:"all",color:"inputBorder"},padding:[1,2],margin:[0,0,.5,0],round:!0,justifyContent:"start"},f={ErrInvalidName:"No rule name provided",ErrCodeInvalidStartsAt:"Invalid or no start date provided",ErrCodeInvalidSLastUntil:"Invalid or no end date provided",ErrCodeInvalidScheduleDuration:"Invalid duration selected",ErrCodeInvalidSeverity:"Invalid severity",ErrCodeInvalidIntegration:"Invalid integration",ErrCodeNotOwnRule:"Not permitted to create system rules"}},45396:function(e,t,n){n.d(t,{B:function(){return m}});var r=n(15861),a=n(64687),o=n.n(a),l=(n(21249),n(57640),n(9924),n(67294)),i=n(4480),c=n(74059),u=n(96929),s=n(25819),d=n(93742),f=function(){var e=(0,c.th)();return(0,i._8)((function(t){var n=t.set,a=t.snapshot;return function(){var t=(0,r.Z)(o().mark((function t(r){var l,i;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.getPromise((0,u.Nj)({id:r,key:"nodes"}));case 2:return l=t.sent,i=null,null!==l&&void 0!==l&&l.length||(n((0,u.Nj)({id:r,key:"loaded"}),!1),(i=(0,s.Fz)({roomId:r,spaceId:e})).then((function(e){var t=e.data;n((0,u.Nj)({id:r,key:"nodes"}),t.map((function(e){var t=e.id;return{label:e.name,value:t}}))),n((0,u.Nj)({id:r,key:"loaded"}),!0)})).catch((function(e){return n((0,u.Nj)({id:r,key:"error"}),e)}))),t.abrupt("return",i);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()}),[e])},m=function(){var e=f(),t=(0,d.p)("id");(0,l.useEffect)((function(){var n=null;return t&&(n=e(t)),function(){var e;return!(null===(e=n)||void 0===e||!e.cancel)&&n.cancel()}}),[t,e])};t.Z=f},95384:function(e,t,n){n.r(t),n.d(t,{default:function(){return Oe}});var r=n(67294),a=n(91268),o=n(78266),l=n(29439),i=(n(41539),n(64211),n(2490),n(41874),n(47941),n(46667)),c=n(29814),u=n(72843),s=n(54316),d=n(87462),f=(n(21249),n(57509)),m=(n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4942)),p=(n(85827),n(25387),n(72608),n(34553),n(26699),n(15581),n(34514),n(54747),n(69720),n(95248)),b=n(8144),y=n(46742),v=n(45987),g=(n(32023),n(57640),n(9924),n(92222),n(4480)),h=n(74059),O=n(25403),E=n(93742),j=["rules"];function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var k,P=function(e){return function(t,n){var r=t[e];return!Array.isArray(n)||!n.length||(Array.isArray(r)?n.some((function(e){return r.includes(e)})):n.includes(r))}},Z={roomIds:P("roomIds"),nodeIds:P("nodeIds"),hostLabels:(k="hostLabels",function(e,t){var n=e[k];if(!n)return!t.length;var r=Object.entries(n).map((function(e){var t=(0,l.Z)(e,2),n=t[0],r=t[1];return"".concat(n,": ").concat(r)}));return P(k)(x(x({},e),{},(0,m.Z)({},k,r)),t)}),alertNames:P("alertNames"),alertRoles:P("alertRoles"),alertContexts:P("alertContexts")},I=(0,g.CG)({key:"silencingRulesFiltered",get:function(e){var t=e.extraKey,n=e.spaceId,r=e.omit,a=void 0===r?[]:r,o=e.keepAll,i=e.allNodesRoomId;return function(e){var r=e.get,c=r((0,p.dz)({key:n,extraKey:t})),u=Object.keys(c).reduce((function(e,t){return a.includes(t)||e.push([t,c[t]]),e}),[]),s=r((0,O.z5)({id:n,allNodesRoomId:i}));if(!u.length)return s;var d=function(e){return function(t){return!e.some((function(e){var n=(0,l.Z)(e,2),r=n[0],a=n[1];return!!Z[r]&&!Z[r](t,a)}))}}(u),f=s.rules,m=(0,v.Z)(s,j);return o?s:x(x({},m),{},{rules:f.filter(d)})}}}),S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.extraKey,n=e.omit,r=void 0===n?[]:n,a=e.keepAll,o=void 0!==a&&a,l=(0,h.th)(),i=(0,E.p)("id");return(0,g.sJ)(I({extraKey:t,spaceId:l,omit:r,keepAll:o,allNodesRoomId:i}))},A=n(62447);function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var K=function(e,t,n){var r=e.id,a=e.name;-1==n?t.push({id:r,name:a,count:1}):t[n]=C(C({},t[n]),{},{count:t[n].count+1})},R=function(e){return e.id},N=function(e){return e.name},T=function(e){var t=e.title,n=e.baseKey,a=e.param,o=e.paramKey,i=e.extraKey,c=e.testIdPrefix,u=function(e){var t=e.baseKey,n=e.extraKey,a=e.param,o=e.paramKey,i=S({extraKey:n,omit:[a],keepAll:!0}).rules,c=(0,p.by)(a,{key:t,extraKey:n});return(0,r.useMemo)((function(){return i.reduce((function(e,t){var n=t[o];if(!n)return e;var r=e.findIndex((function(e){return e.id==n.id}));return["rooms","nodes"].includes(o)?n.forEach((function(t){var n=t.id,a=t.name,o=t.notAvailable?"Not available (".concat(n,")"):a;K({id:n,name:o},e,r)})):["alertNames","alertContexts","alertRoles"].includes(o)?n.forEach((function(t){K({id:t,name:t},e,r)})):"hostLabels"==o&&Object.entries(n).forEach((function(t){var n=(0,l.Z)(t,2),a=n[0],o=n[1],i=(0,A.q)({key:a,value:o});K({id:i,name:i},e,r)})),e}),[])}),[i,c])}({baseKey:n,extraKey:i,param:a,paramKey:o});return u.length?r.createElement(b.Z,{title:t,testIdPrefix:c,param:a,baseKey:n,extraKey:i},r.createElement(y.ZP,{param:a,baseKey:n,extraKey:i,testIdPrefix:c,collection:u,getValue:R,getLabel:N,capitalized:!1})):null},L=n(35539),F=[{title:"Rooms",param:"roomIds",paramKey:"rooms"},{title:"Nodes",param:"nodeIds",paramKey:"nodes"},{title:"Host labels",param:"hostLabels",paramKey:"hostLabels"},{title:"Alert names",param:"alertNames",paramKey:"alertNames"},{title:"Alert contexts",param:"alertContexts",paramKey:"alertContexts"},{title:"Alert roles",param:"alertRoles",paramKey:"alertRoles"}],_=(0,r.memo)((function(e){var t=(0,h.th)();return r.createElement(f.Flex,(0,d.Z)({column:!0,height:"calc(100vh - 266px)",overflow:{vertical:"auto"},padding:[0,0,30]},e),F.map((function(e){var n=e.title,a=e.param,o=e.paramKey;return r.createElement(T,{key:n,baseKey:t,extraKey:L.Ym,title:n,param:a,paramKey:o})})))})),M={filters:{iconName:"filterList",color:{active:"success",notActive:"textLite"},width:"19px",Content:_,dataTestId:"filterBar",label:"Filters"}},z=["filters"],B=function(e){return e.some((function(e){var t=e.roomIds,n=void 0===t?[]:t,r=e.nodeIds,a=void 0===r?[]:r,o=e.hostLabels,l=void 0===o?{}:o,i=e.alertNames,c=void 0===i?[]:i,u=e.alertContexts,s=void 0===u?[]:u,d=e.alertRoles,f=void 0===d?[]:d;return n.length||a.length||Object.keys(l).length||c.length||s.length||f.length}))},G=function(e){var t=e.rules,n=(0,i.Z)((function(){return B(t)})),a=(0,l.Z)(n,2),o=a[0],d=a[1],f=M.filters.Content;return(0,r.useEffect)((function(){d(B(t))}),[t]),r.createElement(s.ZP,{collapsedComponent:r.createElement(c.Z,{onClickTab:d,availableTabs:M,tabsToShow:z}),isOpen:o,header:r.createElement(u.Z,{isOpen:o,onToggle:d,title:"Filters",icon:"filterList"})},r.createElement(f,{padding:[0,3,30]}))},H=(n(66992),n(88674),n(78783),n(33948),n(74916),n(64765),n(38862),n(2145)),V=n(91008),U=n(41331),J=(n(17727),n(89405)),Y=n(93017),Q=n(82351),W=["value"];function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var $=function(e){var t=e.value,n=(0,v.Z)(e,W);return r.createElement(Q.Z,{content:t},r.createElement(f.Pill,(0,d.Z)({maxWidth:"100%",overflow:"hidden",flavour:"neutral",color:"neutralPillColor",size:"small",justifyContent:"start",margin:[1]},n),t))},ee=function(){return r.createElement(f.Text,null,"*")},te=function(e){var t=(0,e.getValue)();return null!==t&&void 0!==t&&t.length?r.createElement(f.Flex,{flexWrap:!0},t.map((function(e){return r.createElement($,{key:e,value:e})}))):r.createElement(ee,null)},ne=function(e){var t=e.getValue,n=(0,J.rA)().localeDateString;if(!t())return r.createElement(f.Text,null,"-");var a=n(new Date(t()),{month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0});return r.createElement(f.Text,{whiteSpace:"nowrap"},a)},re=[{id:"disabled",name:"Disable rule",accessorKey:"disabled",header:"",cell:function(e){var t=e.row,n=e.getValue,a=t.original,o=(0,r.useState)(!n()),c=(0,l.Z)(o,2),u=c[0],s=c[1],d=(0,i.Z)(),m=(0,l.Z)(d,2),p=m[0],b=m[1],y=(0,Y.Z)(),v=(0,l.Z)(y,2)[1],g=(0,O.j6)(),h=(0,O._A)();return r.createElement(f.Toggle,{colored:!0,checked:u,disabled:p,onChange:function(e){b();var t=e.target.checked;s(t),g(X(X({},a),{},{disabled:!t})).then((function(){h()})).catch((function(e){s(!t),v(e)})).finally(b)}})},size:50,maxSize:50,minSize:50},{id:"name",name:"Name",accessorKey:"name",header:"Rule name",cell:function(e){var t=e.row,n=e.getValue,a=t.original.accountId;return r.createElement(f.Flex,{gap:2,alignItems:"center"},r.createElement(f.Text,{wordBreak:"break-word"},n()),a&&r.createElement(Q.Z,{align:"bottom",content:"This rule affects only your account"},r.createElement(f.Icon,{color:"textLite",height:"16px",name:"userPress",width:"16px"})))}},{id:"rooms",name:"Rooms",accessorKey:"rooms",header:"Rooms",cell:function(e){var t=(0,e.getValue)();return null!==t&&void 0!==t&&t.length?r.createElement(f.Text,null,t.map((function(e){return e.name})).join(", ")):r.createElement(f.Text,null,"All rooms")}},{id:"nodes",name:"Nodes",accessorKey:"nodes",header:"Nodes",cell:function(e){var t=(0,e.getValue)();return null!==t&&void 0!==t&&t.length?r.createElement(f.Flex,{flexWrap:!0},t.map((function(e){var t=e.id,n=e.name,a=e.notAvailable?r.createElement(f.Flex,{alignItems:"center",gap:1},r.createElement(f.Icon,{name:"warning_triangle",size:"small",color:"neutralPillColor"}),r.createElement(f.Text,null,"Node no longer available")):n;return r.createElement($,{key:t,value:a})}))):r.createElement(ee,null)}},{id:"hostLabels",name:"Host labels",accessorKey:"hostLabels",header:"Host labels",cell:function(e){var t=(0,e.getValue)(),n=Object.entries(t||{});return n.length?r.createElement(f.Flex,{flexWrap:!0},n.map((function(e){var t=(0,l.Z)(e,2),n=t[0],a=t[1],o=(0,A.q)({key:n,value:a});return r.createElement($,{key:o,value:o})}))):r.createElement(ee,null)}},{id:"alertNames",name:"Alert names",accessorKey:"alertNames",header:"Alert name",cell:te},{id:"alertContexts",name:"Alert contexts",accessorKey:"alertContexts",header:"Alert context",cell:te},{id:"alertRoles",name:"Alert roles",accessorKey:"alertRoles",header:"Alert role",cell:te},{id:"startDate",name:"Start date",accessorKey:"startsAt",header:"Start date",cell:ne,size:120},{id:"endDate",name:"End date",accessorKey:"lastsUntil",header:"End date",cell:ne,size:120}],ae=n(93433),oe=(n(84944),n(92686),n(33335)),le={month:"2-digit",day:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",long:!1,dateStyle:void 0},ie=(0,H.Z)((function(){return n.e(20).then(n.bind(n,9020))}),"CreateOrUpdateRuleModal"),ce=(0,r.memo)(f.NetdataTable,(function(e,t){return(0,U.ZP)(e,t)})),ue={right:["actions"]},se=function(){return r.createElement(f.Flex,null,r.createElement(f.Text,null,"Create or Maintain Alert Notification Silencing Rules on this Space. These rules can be applicable to all users or just you, depending on their definition."," ",r.createElement(V.Z,{"data-ga":"alert-silencing::click-link-docs::rules-table","data-testid":"silencing-rules-doc",href:"https://learn.netdata.cloud/docs/alerts-and-notifications/notifications/netdata-cloud-notifications/#silencing-alert-notifications",rel:"noopener noreferrer",target:"_blank"},"Read the Alert Notification Silencing Rules documentation to learn more.")))},de=function(e){var t=e.data,n=function(){var e=(0,r.useState)(""),t=(0,l.Z)(e,2),n=t[0],a=t[1],o=(0,r.useState)({}),i=(0,l.Z)(o,2),c=i[0],u=i[1],s=(0,Y.Z)(),d=(0,l.Z)(s,2)[1],m=(0,J.rA)().localeDateString,p=(0,O.hr)(),b=(0,O._A)(),y=function(){return u({type:"create"})},v=function(e){return u({type:"edit",rule:e})},g=function(e){var t=e.id;p([t]).then((function(){b()})).catch(d)},h=(0,oe.gI)("space:DeletePersonalSilencingRule"),E=(0,oe.gI)("space:DeleteSystemSilencingRule"),j=(0,r.useMemo)((function(){return{addEntry:{dataGa:"",flavour:"hollow",handleAction:y,iconColor:"success",label:"Add rule",small:!0,width:"auto"}}}),[]),w=function(e){var t=e.name;return r.createElement(r.Fragment,null,"Delete ",r.createElement(f.H3,{wordBreak:"break-word"},t)," rule")};return{search:n,setSearch:a,bulkActions:j,rowActions:(0,r.useMemo)((function(){return{edit:{handleAction:v,disabledTooltipText:"Edit is disabled",isDisabled:function(e){return!!e.readOnly},dataGa:"alert-silencing::click-edit-row::rules-table"},delete:{handleAction:g,confirmationTitle:w,confirmationMessage:function(e){return r.createElement(f.Text,{wordBreak:"break-word"},"You are about to delete ",r.createElement("strong",null,e.name)," silencing rule.",r.createElement("br",null),"Are you sure you want to continue?")},dataGa:"alert-silencing::click-delete-row::rules-table",disabledTooltipText:"Delete is disabled",confirmLabel:"Yes, delete",declineLabel:"Cancel",isDisabled:function(e){return e.accountId?!h:!E}}}}),[]),onFilter:(0,r.useCallback)((function(e,t,n){var r=e.original,a=n.toLowerCase(),o=(r.rooms||[]).map((function(e){return e.name})),l=(r.nodes||[]).map((function(e){return e.name})),i=r.alertNames||[],c=r.alertContexts||[],u=r.alertRoles||[],s=r.hostLabels||{},d=r.startsAt?m(new Date(r.startsAt),le):"",f=r.lastsUntil?m(new Date(r.lastsUntil),le):"";return function(e,t){return e.some((function(e){return e.toLowerCase().includes(t)}))}([r.name.toLowerCase()].concat((0,ae.Z)(o),(0,ae.Z)(l),(0,ae.Z)(i),(0,ae.Z)(c),(0,ae.Z)(u),(0,ae.Z)(Object.entries(s).flat()),[d,f]),a)}),[]),modalDetails:c,closeModal:function(){return u({})}}}(),a=n.search,o=n.setSearch,i=n.bulkActions,c=n.rowActions,u=n.onFilter,s=n.modalDetails,d=n.closeModal;return r.createElement(r.Fragment,null,r.createElement(f.Flex,{column:!0,gap:4,padding:[2,4],height:"calc(100vh - 241px)"},r.createElement(se,null),r.createElement(ce,{key:JSON.stringify(t||{}),enableSorting:!0,enableColumnVisibility:!0,data:t,dataColumns:re,bulkActions:i,rowActions:c,globalFilter:a,globalFilterFn:u,onGlobalSearchChange:o,columnPinning:ue,enableColumnPinning:!0,enablePinning:!0})),"create"==s.type&&r.createElement(r.Suspense,null,r.createElement(ie,{onClose:d})),"edit"==s.type&&s.rule&&r.createElement(r.Suspense,null,r.createElement(ie,{rule:s.rule,onClose:d,isEdit:!0})))},fe=n(94050),me=n(73787),pe=n(5429);function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ve=function(e){var t=(0,O.oO)({id:e,key:"initialLoad"}),n=(0,O.tZ)(),r=(0,O.XJ)(e);(0,pe.Z)((function(){return{enabled:!!e&&!t,fetch:function(){return(0,fe.KH)(e)},onFail:function(e){return r(ye(ye({},me.R),{},{loading:!1,loaded:!0,error:e}))},onSuccess:function(e){return r(function(e,t){return ye(ye({},e),{},{loading:!1,loaded:!0,initialLoad:!0,rules:t})}(me.R,e))}}}),[e,n])},ge=function(e){var t=e.errorMessage;return r.createElement(f.Flex,{column:!0,gap:2,alignItems:"center",justifyContent:"center",flex:!0},r.createElement(f.TextBig,null,"Something went wrong"),t&&r.createElement(f.Text,null,"(",t,")"))},he=n(45396),Oe=function(){var e=(0,h.th)();ve(e),(0,he.B)();var t=S({extraKey:L.Ym}),n=t.loaded,l=t.rules,i=t.error;return n?i?r.createElement(ge,{errorMessage:i.message}):r.createElement(a.Z,{rightBar:r.createElement(G,{rules:l}),margin:[3,0]},r.createElement(de,{data:l})):r.createElement(o.Z,{height:"calc(100% - 44px)",title:"Loading silencing rules..."})}},62447:function(e,t,n){n.d(t,{_:function(){return o},q:function(){return l}});var r=n(29439),a=(n(47941),n(85827),n(41539),n(25387),n(2490),n(72608),n(69720),n(92222),n(35539)),o=function(e){var t,n=(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.data)||{},o=n.validationErrors,l=n.errorMessage;return o&&Object.keys(o).length?Object.entries(o).reduce((function(e,t){var n=(0,r.Z)(t,2)[1].Code;return a.Qj[n]&&e.push({errorMessage:a.Qj[n]}),e}),[]):[{errorMessage:l}]},l=function(e){var t=e.key,n=e.value;return"".concat(t,": ").concat(n)}},94050:function(e,t,n){n.d(t,{KF:function(){return u},KH:function(){return l},nt:function(){return i},oG:function(){return c}});n(21249),n(57640),n(9924),n(92222);var r=n(26398),a=n(66152),o=function(e){return e.map((function(e){return(0,a.k5)(e)}))},l=function(e){return r.Z.get("/api/v2/spaces/".concat(e,"/notifications/silencing/rules"),{transform:o})},i=function(e,t){return r.Z.post("/api/v2/spaces/".concat(e,"/notifications/silencing/rules/delete"),t)},c=function(e,t){return r.Z.post("/api/v2/spaces/".concat(e,"/notifications/silencing/rule"),(0,a.v)(t))},u=function(e,t){return r.Z.put("/api/v2/spaces/".concat(e,"/notifications/silencing/rule/").concat(t.id),(0,a.v)(t))}},25403:function(e,t,n){n.d(t,{XJ:function(){return g},_A:function(){return E},hr:function(){return x},j6:function(){return w},oO:function(){return v},tZ:function(){return O},wK:function(){return j},z5:function(){return y}});var r=n(4942),a=n(45987),o=(n(21249),n(57640),n(9924),n(69826),n(41539),n(31672),n(2490),n(59461),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4480)),l=n(74059),i=n(37518),c=n(94050),u=n(73787),s=n(96929),d=n(93742),f=["rules"],m=["roomIds","nodeIds"];function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y=(0,o.CG)({key:"silencingRulesState",get:function(e){var t=e.id,n=e.key,r=e.allNodesRoomId;return function(e){var o=e.get,l=o((0,u.Z)(t)),i=l.rules,c=(0,a.Z)(l,f),d=o((0,s.Nj)({id:r,key:"nodes"})),m=b(b({},c),{},{rules:i.map((function(e){return b(b({},e),e.nodeIds?{nodes:e.nodeIds.map((function(e){var t=d.find((function(t){return t.value==e}));return{id:e,name:(null===t||void 0===t?void 0:t.label)||"-",notAvailable:!t}}))}:{})}))});return n?m[n]:m}},set:function(e){var t=e.id,n=e.key;return function(e,o){var l=e.get,c=e.set,s=o.rules;c((0,u.Z)(t),(function(e){if(s){var t=s.map((function(e){var t=e.roomIds,n=e.nodeIds,r=(0,a.Z)(e,m),o=t?t.map((function(e){var t=l((0,i.n2)({id:e}));return{id:t.id,name:t.name}})):void 0;return b(b(b(b({},r),t?{roomIds:t}:{}),o?{rooms:o}:{}),n?{nodeIds:n}:{})}));o.rules=t}return n?b(b({},e),{},(0,r.Z)({},n,o)):b(b({},e),o)}))}}}),v=function(e){var t=e.id,n=e.key,r=(0,d.p)("id");return(0,o.sJ)(y({id:t,key:n,allNodesRoomId:r}))},g=function(e,t){return(0,o.Zl)(y({id:e,key:t}))},h=(0,o.cn)({key:"forceUpdateRulesSelector",default:0}),O=function(){return(0,o.sJ)(h)},E=function(){var e=(0,l.th)(),t=g(e),n=(0,o.Zl)(h);return function(){t((function(e){return b(b({},e),{},{initialLoad:!1})})),n((function(e){return e+1}))}},j=function(){var e=(0,l.th)();return function(t){return(0,c.oG)(e,t)}},w=function(){var e=(0,l.th)();return function(t){return(0,c.KF)(e,t)}},x=function(){var e=(0,l.th)();return function(t){return(0,c.nt)(e,t)}}},73787:function(e,t,n){n.d(t,{R:function(){return i}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),a=n(4480);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var i={rules:[],error:"",id:null,loading:!0,loaded:!1,initialLoad:!1};t.Z=(0,a.xu)({key:"silencingRulesState",default:function(e){return function(e){return l(l({},i),{},{id:e})}(e)}})},84944:function(e,t,n){var r=n(82109),a=n(6790),o=n(47908),l=n(26244),i=n(19303),c=n(65417);r({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=o(this),n=l(t),r=c(t,0);return r.length=a(r,t,t,n,0,void 0===e?1:i(e)),r}})},92686:function(e,t,n){n(51223)("flat")}}]); \ No newline at end of file
diff --git a/web/gui/v2/610.d671813e159356dd5674.chunk.js b/web/gui/v2/610.1001494a66c38627ff37.chunk.js
index e9835d2a..eacacc14 100644
--- a/web/gui/v2/610.d671813e159356dd5674.chunk.js
+++ b/web/gui/v2/610.1001494a66c38627ff37.chunk.js
@@ -1 +1 @@
-!function(){try{var h="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},l=(new Error).stack;l&&(h._sentryDebugIds=h._sentryDebugIds||{},h._sentryDebugIds[l]="782a822d-2f76-4a15-9f25-8c7a074ac99a",h._sentryDebugIdIdentifier="sentry-dbid-782a822d-2f76-4a15-9f25-8c7a074ac99a")}catch(h){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[610],{6610:function(h,l,c){c.r(l),c.d(l,{default:function(){return D}});var t=c(29439),a=c(67294),e=c(15557),v=c(74059),i=c(46667),n=c(87854),o=c.n(n),p=c(95348),d=c.n(p),r=new(o())({id:"partialFailureSvg",use:"partialFailureSvg-usage",viewBox:"0 0 348 348",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 348 348" id="partialFailureSvg"><path fill="#CCDDE8" d="M174 348c96.098 0 174-77.902 174-174C348 77.903 270.098 0 174 0 77.903 0 0 77.903 0 174c0 96.098 77.903 174 174 174Z" opacity=".3" /><path fill="#89B0C9" d="M174 290c73.178 0 132.5-1.119 132.5-2.5S247.178 285 174 285s-132.5 1.119-132.5 2.5S100.822 290 174 290Z" opacity=".3" /><path fill="#485D6B" d="M267 53H81v142h186V53Z" /><path fill="#849FB2" d="M263 57H85v134h178V57Z" /><path fill="#0A2437" d="M267 53h-96v142h96V53Z" opacity=".1" /><path fill="#E6E7E8" d="M307.6 115h-267v67h267v-67Z" /><path fill="#485D6B" d="M169.619 173.99v-51h-83v51h83Z" /><path fill="#33424D" d="M167.619 171.99v-47h-79v47h79Z" /><path fill="#0A2437" d="M169.611 173.997v-51h-41.6v51h41.6Z" opacity=".1" /><path fill="#D3D5D6" d="M307.6 182h-267v13h267v-13Z" /><path fill="#697784" d="M288.6 195h-229v48h229v-48Z" /><path fill="#0A2437" d="M288.6 195h-229v22h229v-22Z" opacity=".15" /><path fill="#E6E7E8" d="M59.6 195h-10v92h10v-92Z" /><path fill="#0A2437" d="M59.6 195h-10v10h10v-10Z" opacity=".15" /><path fill="#0A2437" d="M59.6 195h-5v92h5v-92Z" opacity=".05" /><path fill="#E6E7E8" d="M298.6 195h-10v92h10v-92Z" /><path fill="#0A2437" d="M298.6 195h-10v10h10v-10Z" opacity=".15" /><path fill="#0A2437" d="M298.6 195h-5v92h5v-92Z" opacity=".05" /><path fill="#485D6B" d="M261.619 173.99v-51h-83v51h83Z" /><path fill="#33424D" d="M259.619 171.99v-47h-79v47h79Z" /><path fill="#0A2437" d="M261.611 173.997v-51h-41.6v51h41.6Z" opacity=".1" /><path fill="#93A6B9" d="M55.6 127v20c0 .5-.4 1-1 1h-5c-.5 0-1-.4-1-1v-20c0-.5.4-1 1-1h5c.6 0 1 .4 1 1Z" /><path fill="#677F8E" d="M50.6 143.5v-13c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v13c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5Z" /><path fill="#00AB44" d="M56.6 132.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M56.6 136.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" opacity=".1" /><path fill="#0A2437" d="M56.6 132.6v1c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1c0 .1 0 .3.1.4.1.5.5.8.9.9.1 0 .3.1.4.1h6.2c.1 0 .3 0 .4-.1.5-.1.8-.5.9-.9.1-.1.1-.3.1-.4Z" opacity=".05" /><path fill="#24B75E" d="M56.6 132.4v1c0-.1 0-.3-.1-.4-.1-.5-.5-.8-.9-.9-.1 0-.3-.1-.4-.1H49c-.1 0-.3 0-.4.1-.5.1-.8.5-.9.9 0 .1-.1.3-.1.4v-1c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M56.6 132.4v1.2c0 .6-.4 1.2-1 1.3V147c0 .5-.4 1-1 1h-2v-22h2c.5 0 1 .4 1 1v4.1c.6.1 1 .7 1 1.3Z" opacity=".1" /><path fill="#93A6B9" d="M66.6 134v13c0 .5-.4 1-1 1h-5c-.5 0-1-.4-1-1v-20c0-.5.4-1 1-1h5.1c.6.1.9 1.2.9 8Z" /><path fill="#677F8E" d="M61.6 143.5v-13c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v13c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5Z" /><path fill="#00AB44" d="M67.6 139.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M67.6 143.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" opacity=".1" /><path fill="#0A2437" d="M67.6 139.6v1c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1c0 .1 0 .3.1.4.1.5.5.8.9.9.1 0 .3.1.4.1h6.2c.1 0 .3 0 .4-.1.5-.1.8-.5.9-.9.1-.1.1-.3.1-.4Z" opacity=".05" /><path fill="#24B75E" d="M67.6 139.4v1c0-.1 0-.3-.1-.4-.1-.5-.5-.8-.9-.9-.1 0-.3-.1-.4-.1H60c-.1 0-.3 0-.4.1-.5.1-.8.5-.9.9 0 .1-.1.3-.1.4v-1c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M67.6 139.4v1.2c0 .6-.4 1.2-1 1.3v5.1c0 .5-.4 1-1 1h-2v-22h2.1c.5.1.8.5.8 1v11.1c.7.1 1.1.7 1.1 1.3Z" opacity=".1" /><path fill="#677F8E" d="M78.6 139.9v7.2c0 .5-.4.9-.9.9h-7.2c-.5 0-.9-.4-.9-.9v-7.2c0-.5.4-.9.9-.9h7.2c.5 0 .9.4.9.9Z" /><path fill="#485D6B" d="M74.1 147a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z" /><path fill="#FF4136" d="M74.1 146a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z" /><path fill="#0A2437" d="M78.6 139.9v7.2c0 .5-.4.9-.9.9h-3.1v-9h3.1c.5 0 .9.4.9.9Z" opacity=".1" /><path fill="#677F8E" d="M78.6 126.9v6.1c0 .5-.4.9-.9.9h-7.1c-.5 0-.9-.4-.9-.9v-6.1c0-.5.4-.9.9-.9h7.1c.5 0 .9.4.9.9Z" /><path fill="#00AB44" d="M71.6 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#FF4136" d="M74.1 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#00AB44" d="M76.6 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#0A2437" d="M78.6 126.9v6.1c0 .5-.4.9-.9.9h-3.1v-8h3.1c.5.1.9.5.9 1Z" opacity=".1" /><path fill="#485D6B" d="M78.6 156.6v11.8c0 .9-.7 1.6-1.6 1.6H50.2c-.9 0-1.6-.7-1.6-1.6v-11.8c0-.9.7-1.6 1.6-1.6H77c.9 0 1.6.7 1.6 1.6Z" /><path fill="#80A4BF" d="M54.6 166h-4v2h4v-2ZM57.6 166h-2v2h2v-2ZM68.6 166h-10v2h10v-2ZM71.6 166h-2v2h2v-2ZM76.6 166h-4v2h4v-2ZM52.6 163h-2v2h2v-2ZM55.6 163h-2v2h2v-2ZM58.6 163h-2v2h2v-2ZM61.6 163h-2v2h2v-2ZM64.6 163h-2v2h2v-2ZM67.6 163h-2v2h2v-2ZM70.6 163h-2v2h2v-2ZM73.6 163h-2v2h2v-2ZM76.6 163h-2v2h2v-2ZM53.6 160h-3v2h3v-2ZM56.6 160h-2v2h2v-2ZM59.6 160h-2v2h2v-2ZM62.6 160h-2v2h2v-2ZM65.6 160h-2v2h2v-2ZM68.6 160h-2v2h2v-2ZM71.6 160h-2v2h2v-2ZM76.6 160h-4v2h4v-2ZM52.6 157h-2v2h2v-2ZM55.6 157h-2v2h2v-2ZM58.6 157h-2v2h2v-2ZM61.6 157h-2v2h2v-2ZM64.6 157h-2v2h2v-2ZM67.6 157h-2v2h2v-2ZM70.6 157h-2v2h2v-2ZM73.6 157h-2v2h2v-2ZM76.6 157h-2v2h2v-2Z" /><path fill="#0A2437" d="M78.6 156.6v11.8c0 .9-.7 1.6-1.6 1.6H63.6v-15H77c.9 0 1.6.7 1.6 1.6Z" opacity=".1" /><path fill="#485D6B" d="M269.6 142.1v-16.2c0-1.6 1.3-2.9 2.9-2.9h24.2c1.6 0 2.9 1.3 2.9 2.9v16.2c0 1.6-1.3 2.9-2.9 2.9h-24.2c-1.6 0-2.9-1.3-2.9-2.9Z" /><path fill="#485D6B" d="M286.6 136h-17v6.1c0 1.6 1.3 2.9 2.9 2.9h14.1v-9Z" /><path fill="#93A6B9" d="M277.6 139a5 5 0 1 0-.001-10.001A5 5 0 0 0 277.6 139Z" /><path fill="#E6E7E8" d="m273.7 138.7-1.1-1.2c-.4-.5-.4-1.2.1-1.6l7.8-6c.4-.3 1.1-.3 1.5.1.4.4.4 1.1 0 1.5l-6.7 7.2c-.4.4-1.1.4-1.6 0Z" /><path fill="#485D6B" d="M299.6 136h-16v9h13.1c1.6 0 2.9-1.3 2.9-2.9V136Z" /><path fill="#93A6B9" d="M291.6 139a5 5 0 1 0-.001-10.001A5 5 0 0 0 291.6 139Z" /><path fill="#E6E7E8" d="m287.7 138.7-1.1-1.2c-.4-.5-.4-1.2.1-1.6l7.8-6c.4-.3 1.1-.3 1.5.1.4.4.4 1.1 0 1.5l-6.7 7.2c-.4.4-1.1.4-1.6 0Z" /><path fill="#5AB948" d="M272.6 127a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM287.6 127a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#0A2437" d="M284.6 145v-22h12.1c1.6 0 2.9 1.3 2.9 2.9v16.2c0 1.6-1.3 2.9-2.9 2.9h-12.1Z" opacity=".1" /><path fill="#485D6B" d="M299.619 173.99v-22h-30v22h30Z" /><path fill="#385062" d="M275.6 157h-2v15h2v-15Z" /><path fill="#E6E7E8" d="M276.6 163h-4v3h4v-3Z" /><path fill="#0A2437" d="M276.6 166h-4v3h4v-3ZM276.6 165h-4v1h4v-1Z" opacity=".1" /><path fill="#5B788C" d="M278.6 171h-2v1h2v-1ZM278.6 169h-2v1h2v-1ZM278.6 167h-2v1h2v-1ZM278.6 165h-2v1h2v-1ZM278.6 163h-2v1h2v-1ZM278.6 161h-2v1h2v-1ZM278.6 159h-2v1h2v-1ZM278.6 157h-2v1h2v-1Z" /><path fill="#385062" d="M284.6 157h-2v15h2v-15Z" /><path fill="#E6E7E8" d="M285.6 159h-4v3h4v-3Z" /><path fill="#0A2437" d="M285.6 162h-4v3h4v-3ZM285.6 161h-4v1h4v-1Z" opacity=".1" /><path fill="#5B788C" d="M287.6 171h-2v1h2v-1ZM287.6 169h-2v1h2v-1ZM287.6 167h-2v1h2v-1ZM287.6 165h-2v1h2v-1ZM287.6 163h-2v1h2v-1ZM287.6 161h-2v1h2v-1ZM287.6 159h-2v1h2v-1ZM287.6 157h-2v1h2v-1Z" /><path fill="#385062" d="M293.6 157h-2v15h2v-15Z" /><path fill="#E6E7E8" d="M294.6 167h-4v3h4v-3Z" /><path fill="#0A2437" d="M294.6 170h-4v3h4v-3ZM294.6 169h-4v1h4v-1Z" opacity=".1" /><path fill="#5B788C" d="M296.6 171h-2v1h2v-1ZM296.6 169h-2v1h2v-1ZM296.6 167h-2v1h2v-1ZM296.6 165h-2v1h2v-1ZM296.6 163h-2v1h2v-1ZM296.6 161h-2v1h2v-1ZM296.6 159h-2v1h2v-1ZM296.6 157h-2v1h2v-1Z" /><path fill="#5AB948" d="M274.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM283.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#FF4136" d="M292.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#0A2437" d="M299.619 173.99v-22h-16v22h16Z" opacity=".1" /><path fill="#D3D5D6" d="M64.6 73h-2v42h2V73Z" /><path fill="#D3D5D6" d="M74.6 74h-22v2h22v-2Z" /><path fill="#0A2437" d="M64.6 79v23.5l-1-.5-1 .5V79h2Z" opacity=".15" /><path fill="#C7C8C9" d="M74.6 75h-22v1h22v-1Z" /><path fill="#00AB44" d="M73.6 76v28l-10-5-7.5 3.7-.9.5-1.6.8V76h20Z" /><path fill="#fff" d="M64.6 92h-2l-4-8h6c2.2 0 4 1.8 4 4s-1.8 4-4 4Z" /><path fill="#D3D5D6" d="M71.6 112h-16v3h16v-3Z" /><path fill="#C7C8C9" d="M71.6 114h-16v1h16v-1Z" /><path fill="#0A2437" d="M63.6 115V73h1v1h10v2h-1v28l-9-4.5V112h7v3h-8Z" opacity=".15" /><path fill="#DADCDD" d="m136.7 206.6-12.6-10.1c-6-4.8-9.4-11.9-9.4-19.6V168h4v8.9c0 6.5 2.9 12.5 7.9 16.5l12.6 10.1-2.5 3.1Z" /><path fill="#0A2437" d="m137.7 202.3-1 1.3-12.6-10.1c-6-4.8-9.4-11.9-9.4-19.6v3c0 7.7 3.4 14.8 9.4 19.6l12.6 10.1 2.5-3.1-1.5-1.2Z" opacity=".05" /><path fill="#00AB44" d="M123.1 171h-13c-1.4 0-2.5-1.1-2.5-2.5v-1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5v1c0 1.4-1.1 2.5-2.5 2.5Z" /><path fill="#0A2437" d="M125.1 169h-17.4c.2 1.2 1.2 2 2.4 2h13c1.2 0 2.2-.9 2.4-2h-.4Z" opacity=".2" /><path fill="#36BD6B" d="M123.1 165h-13c-1.4 0-2.5 1.1-2.5 2.5v1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5v-1c0-1.4-1.1-2.5-2.5-2.5Z" /><path fill="#DADCDD" d="M226.6 168v8.9c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7-1 .8-1.9 1.6-2.5-3.1 1.5-1.2 4.1-3.2 7.1-5.6c5-4 7.9-10 7.9-16.5v-9h4Z" /><path fill="#0A2437" d="M226.6 173.9v3c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7-1 .8-1.9 1.6-2.5-3.1 1.5-1.2 1 1.3 3-2.4 9.5-7.6c6.2-4.9 9.6-12 9.6-19.7Z" opacity=".05" /><path fill="#00AB44" d="M233.6 167.5v1.5c0 .1-.1.2-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-13c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4v-1.5c0-1.4 1.1-2.5 2.5-2.5h13c1.2 0 2.3 1.1 2.3 2.5Z" /><path fill="#0A2437" d="M233.6 169c0 .2-.1.3-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-13c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4h17.8Z" opacity=".2" /><path fill="#36BD6B" d="M233.6 167.5v1c0-1.4-1.1-2.5-2.5-2.5h-13c-1.4 0-2.5 1.1-2.5 2.5v-1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5Z" /><path fill="#485D6B" d="M174.6 218h-8v15h8v-15ZM176.6 235.6V250h-12v-14.4c0-1.4 1.2-2.6 2.6-2.6h6.7c1.5 0 2.7 1.2 2.7 2.6Z" /><path fill="#506C80" d="M183.6 211v1.6c0 .5 0 .9-.2 1.4 0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6-1.2 1.2-2.8 2-4.6 2H164c-1.8 0-3.5-.8-4.6-2-.2-.2-.4-.4-.5-.6-.1-.1-.2-.2-.2-.4-.2-.2-.3-.5-.4-.8-.1-.1-.1-.2-.1-.4-.1-.1-.1-.3-.1-.4 0-.1-.1-.3-.1-.4-.1-.5-.2-.9-.2-1.4V211h25.8Z" /><path fill="#0A2437" d="M183.5 214c0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6h-22.5c-.2-.2-.4-.4-.5-.6-.1-.1-.2-.2-.2-.4-.2-.2-.3-.5-.4-.8-.1-.1-.1-.2-.1-.4-.1-.1-.1-.3-.1-.4 0-.1-.1-.3-.1-.4h25.3Z" opacity=".2" /><path fill="#384A57" d="M187.6 204v6c0 .7-.2 1.3-.5 1.9-.7 1.2-2 2.1-3.5 2.1h-26.1c-1.5 0-2.8-.8-3.5-2.1-.3-.6-.5-1.2-.5-1.9v-6h34.1Z" /><path fill="#00AB44" d="M207.6 199.3v3.6c0 .5 0 .9-.1 1.4 0 .3-.1.5-.2.8-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-1 0-2 .1-2.9.1H157c-1 0-2 0-2.9-.1-2.1-.1-4.3-.3-6.4-.6-3.1-.4-6.1-1.1-9.2-1.9-2.2-.6-3.9-2.3-4.6-4.4-.1-.2-.1-.5-.2-.8-.1-.4-.1-.9-.1-1.4V199c.1-1.8 1.5-3.2 3.2-3.4l4.2-.5 2.4-.3 17.7-1.9c.8-.1 1.6-.2 2.3-.2a81.93 81.93 0 0 1 14 0c.8.1 1.6.1 2.3.2l16.8 1.8 2.4.3 5.2.6c1.8.2 3.1 1.6 3.2 3.4.3.1.3.2.3.3Z" /><path fill="#B4BBC4" d="M207.3 205c-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-1 0-2 .1-2.9.1H157c-1 0-2 0-2.9-.1-2.1-.1-4.3-.3-6.4-.6-3.1-.4-6.1-1.1-9.2-1.9-2.2-.6-3.9-2.3-4.6-4.4h73.4Z" /><path fill="#0A2437" d="M199.1 195.1c-1.5 4-4 7.4-7.2 9.9-1.3 1.1-2.8 2-4.4 2.8-3 1.5-6.4 2.2-9.9 2.2h-15.3c-3.1 0-6.1-.6-8.9-1.8-1.9-.8-3.8-1.9-5.4-3.2-3.1-2.5-5.6-5.9-7.1-9.8l2.4-.3L161 193c.8-.1 1.6-.2 2.3-.2a81.93 81.93 0 0 1 14 0c.8.1 1.6.1 2.3.2l16.8 1.8 2.7.3Z" opacity=".2" /><path fill="#DADCDD" d="m170.6 255.5-3.6-.1h-3.5c-2.3 0-4.6.1-6.9.4-4.6.5-9.1 1.5-13.5 3-2.2.7-4.4 1.6-6.5 2.6-2.1 1-4.1 2.1-6.3 3.3l-12.6 7.1-2.1-3.4 12.3-7.8c2-1.3 4.2-2.6 6.4-3.8 2.2-1.2 4.5-2.2 6.9-3.2 4.7-1.9 9.6-3.2 14.6-4 2.5-.4 5-.7 7.6-.8l1.9-.1h1.8l3.6-.1v6.9h-.1Z" /><path fill="#C6C7C8" d="m170.6 255.5-3.6-.1h-3.5c-2.3 0-4.6.1-6.9.4-4.6.5-9.1 1.5-13.5 3-2.2.7-4.4 1.6-6.5 2.6-2.1 1-4.1 2.1-6.3 3.3l-12.6 7.1-1-1.7 12.5-7.5c4.1-2.5 8.4-4.8 13-6.4 4.5-1.7 9.3-2.8 14.1-3.5 2.4-.3 4.8-.5 7.2-.6 2.4-.1 4.8 0 7.3 0v3.4h-.2Z" /><path fill="#485D6B" d="M117.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273h6.9Z" /><path fill="#0A2437" d="M119.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20h2.1c2.2 0 3.9 1.8 3.9 3.9Z" opacity=".2" /><path fill="#DADCDD" d="M119.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-6.9c0-2.2 1.8-3.9 3.9-3.9h3.1c2.3 0 4 1.8 4 3.9Z" /><path fill="#0A2437" d="M115.7 267h-2.1v13h4c1.1-.1 2-1.1 2-2.2v-6.9c0-2.1-1.7-3.9-3.9-3.9Z" opacity=".05" /><path fill="#DADCDD" d="m225.6 268.3-1 1.7-1 1.7-2-1.1-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3.5l-3.6.1v-7.1l3.6.1 1.8.1h2c2.5.1 5.1.4 7.6.8 5 .8 9.9 2.1 14.6 4 2.3.9 4.6 2 6.9 3.2 2.2 1.2 4.4 2.5 6.4 3.8l10.7 6.8 1.3 1.1Z" /><path fill="#C6C7C8" d="m224.6 270-1 1.7-2-1.1-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3.5l-3.6.1V252H178c2.4.1 4.8.3 7.2.6 4.8.7 9.5 1.8 14.1 3.5 4.6 1.6 8.9 3.9 13 6.4l10.2 6.1 2.1 1.4Z" /><path fill="#485D6B" d="M230.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273h6.9Z" /><path fill="#0A2437" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20h2.1c2.2 0 3.9 1.8 3.9 3.9Z" opacity=".2" /><path fill="#DADCDD" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-7.2c0-.7.3-1.4.7-2 .4-.6 1-1.1 1.7-1.4.5-.2 1-.3 1.5-.3h3.1c2.3.1 4 1.9 4 4Z" /><path fill="#0A2437" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-4v-13h2.1c2.2 0 3.9 1.8 3.9 3.9Z" opacity=".05" /><path fill="#E2E3E4" d="M175.3 252v.2l-.5 3.2L173 267l-.3 2h-4l-.3-1.8-1.9-11.8-.5-3.2v-.2c-.1-1.1.8-2 1.9-2h5.5c1.1 0 1.9.9 1.9 2Z" /><path fill="#C6C7C8" d="M175.3 252v.2l-.5 3.2L173 267l-.3 2h-2v-19h2.8c1 0 1.8.9 1.8 2Z" /><path fill="#485D6B" d="M174.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273h6.9Z" /><path fill="#0A2437" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20H172.9c2.1.1 3.7 1.9 3.7 3.9Z" opacity=".2" /><path fill="#DADCDD" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-6.9c0-1.8 1.1-3.2 2.7-3.7.4-.1.8-.2 1.2-.2H172.8c2.2.1 3.8 1.9 3.8 3.9Z" /><path fill="#0A2437" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-4v-13H172.9c2.1.1 3.7 1.9 3.7 3.9Z" opacity=".05" /><path fill="#435969" d="M210.6 125.7V131.5c-.1 16.1-2.8 32-7.8 47.3l-3.4 10.4c-.6 2-1.6 3.9-2.7 5.6-2.9 4.4-7.3 7.6-12.3 9.2-2.1.6-4.4 1-6.7 1h-15.3c-2.3 0-4.5-.4-6.7-1-5-1.5-9.3-4.7-12.2-9.1-1.2-1.7-2.1-3.6-2.8-5.7l-3.4-10.4c-5-15.3-7.6-31.2-7.8-47.3V125.7c0-3.3 2.4-6 5.6-6.5l11-1.6c8.1-1.2 16.2-1.8 24.4-1.8 7.8 0 15.6.6 23.4 1.8l11 1.6c3.3.5 5.7 3.2 5.7 6.5Z" /><path fill="#00AB44" d="M210.6 125.7V131.5c-.1-3.2-2.4-5.9-5.6-6.3l-11-1.6c-7.8-1.2-15.6-1.7-23.4-1.8-8.1 0-16.3.5-24.4 1.8l-11 1.6c-3.2.5-5.5 3.1-5.6 6.3V125.7c0-3.3 2.4-6 5.6-6.5l11-1.6c8.1-1.2 16.2-1.8 24.4-1.8 7.8 0 15.6.6 23.4 1.8l11 1.6c3.2.5 5.6 3.2 5.6 6.5Z" /><path fill="#384A57" d="M177.6 167h-14c-1.7 0-3-1.3-3-3s1.3-3 3-3h14c1.7 0 3 1.3 3 3s-1.3 3-3 3Z" /><path fill="#DADCDD" d="M175.2 164H166c-1.3 0-2.4 1.1-2.4 2.4v47.2c0 1.3 1.1 2.4 2.4 2.4h9.2c1.3 0 2.4-1.1 2.4-2.4v-47.2c0-1.3-1.1-2.4-2.4-2.4Z" /><path fill="#D0D1D3" d="M175.2 213H166c-1.3 0-2.4-1.1-2.4-2.4v3c0 1.3 1.1 2.4 2.4 2.4h9.2c1.3 0 2.4-1.1 2.4-2.4v-3c0 1.3-1.1 2.4-2.4 2.4Z" /><path fill="#E6E7E8" d="M175.2 164H166c-1.3 0-2.4 1.1-2.4 2.4v3c0-1.3 1.1-2.4 2.4-2.4h9.2c1.3 0 2.4 1.1 2.4 2.4v-3c0-1.3-1.1-2.4-2.4-2.4Z" /><path fill="#0A2437" d="M233.6 167.5v1.5c0 .1-.1.2-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-4.5v5.9c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7c0 .3-.1.5-.2.8-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-.7 1.2-2 2.1-3.5 2.1h-.2c0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6-1.2 1.2-2.8 2-4.6 2h-2.6v14h-.8c1.4 0 2.6 1.2 2.6 2.6v13h1.4c2.5.1 5.1.4 7.6.8 5 .8 9.9 2.1 14.6 4 2.3.9 4.6 2 6.9 3.2 2.2 1.2 4.4 2.5 6.4 3.8l10.7 6.8c.5-.2 1-.3 1.5-.3h3.1c2.2 0 3.9 1.8 3.9 3.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V280c-1.1-.1-2-1.1-2-2.2v-7.2l-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3l-1.8 11.6c2.1.1 3.7 1.8 3.7 3.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5V115.8c7.8 0 15.6.6 23.4 1.8l11 1.6c3.2.5 5.6 3.2 5.6 6.5V131.5c-.1 16.1-2.8 32-7.8 47.3l-3.4 10.4c-.6 2-1.6 3.9-2.7 5.6l2.4.3 5.2.6c1.8.2 3.1 1.6 3.2 3.4l7.1-5.6c5-4 7.9-10 7.9-16.5v-6h-4.5c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4v-1.5c0-1.4 1.1-2.5 2.5-2.5h13c1.1 0 2.2 1.1 2.2 2.5Z" opacity=".15" /></symbol>'}),f=(d().add(r),r),Z=c(14809),M=c(91008),s=c(79655),u={noRoomPermission:{header:function(h){return"Your role doesn't give you permission to access any of the troubleshooting information on ".concat(h,".")}},noSpacePermission:{header:function(h){return"Your role doesn't give you permission to access any information on ".concat(h,".")}},noRooms:{header:function(h){return"You currently don't have permission to see any room on ".concat(h,".")}}},m=function(h){var l=h.onClick,c=h.spaceName;return a.createElement(a.Fragment,null,a.createElement(e.Text,{margin:[2,0,0]},"You can also leave this Space if you wish. "),a.createElement(e.Button,{flavour:"borderless",icon:"switch_off",label:"Leave ".concat(c),margin:[0,0,0,7],onClick:l,strong:!0}))},D=function(h){var l=h.reason,c=(0,v.OS)(),n=(0,i.Z)(),o=(0,t.Z)(n,4),p=o[0],d=o[2],r=o[3],D=u[l].header,y=(0,v.uk)();return a.createElement(e.Flex,{alignItems:"center",justifyContent:"center",flex:!0,gap:8},a.createElement("svg",{id:"partial_failure",width:"288px",height:"234px"},a.createElement("use",{xlinkHref:"#".concat(f.id)})),a.createElement(e.Flex,{column:!0,width:{max:125},gap:2},a.createElement(e.H3,null,D(c.name)),"noSpacePermission"===l&&a.createElement(a.Fragment,null,a.createElement(e.Text,null,"Please contact the Space administrators if this is unexpected."),a.createElement(m,{onClick:d,spaceName:c.name})),"noRoomPermission"===l&&a.createElement(e.Text,null,"To manage Plan & Billing information please"," ",a.createElement(M.Z,{as:s.rU,to:"/spaces/".concat(y,"/settings/billing")},"click here.")),"noRooms"===l&&a.createElement(a.Fragment,null,a.createElement(e.Text,null,"Please contact a Space administrator or manager if this is unexpected."),a.createElement(m,{onClick:d,spaceName:c.name}))),p&&a.createElement(Z.Z,{id:c.id,name:c.name,onClose:r}))}},14809:function(h,l,c){c.d(l,{Z:function(){return B}});var t=c(87462),a=c(67294),e=c(15557),v=c(89250),i=c(13477),n=c(94666),o=c(15861),p=c(29439),d=c(64687),r=c.n(d),f=(c(57327),c(41539),c(88449),c(2490),c(59849),c(4480)),Z=c(93017),M=c(274),s=c(46585),u=c(74059),m=c(57079),D=c(58502),y=c(95383),A=c(53606),E="leave-space-dialog",g="leaveSpaceDialog",B=function(h){var l=h.id,c=h.name,d=h.onClose,B=(0,v.s0)(),C=(0,i.Iy)("id"),b=(0,n.H4)(),w=(0,n.nP)(),H=(0,n.Wy)(),V=function(h){var l=(0,Z.Z)(),c=(0,p.Z)(l,2)[1];return(0,f._8)((function(l){var t=l.snapshot,a=l.set,e=l.reset;return function(){var l=(0,o.Z)(r().mark((function l(v){var i,o,d,f,Z,A,E,g,B;return r().wrap((function(l){for(;;)switch(l.prev=l.next){case 0:return i=v.currentUserId,o=v.onSuccess,d=v.onError,l.next=3,t.getPromise((0,u.st)("ids"));case 3:if(f=l.sent,Z=f.filter((function(l){return h!==l})),A=(0,p.Z)(Z,1),E=A[0]){l.next=9;break}return c({header:"Spaces",text:s.T$.leave}),l.abrupt("return");case 9:if(l.t0=E,!l.t0){l.next=14;break}return l.next=13,t.getPromise((0,D.ZP)(E));case 13:l.t0=l.sent;case 14:return g=l.t0,B=g.slug,a((0,u.st)("ids"),Z),a(m.Z,(function(l){return l.filter((function(l){return l!==h}))})),l.prev=18,l.next=21,(0,M.Sz)(h,[i]);case 21:o&&o(B),(0,n.zm)(e,h),(0,y.r1)(e,h),e((0,D.ZP)(h)),l.next=31;break;case 27:l.prev=27,l.t1=l.catch(18),a((0,u.st)("ids"),f),d&&d();case 31:case"end":return l.stop()}}),l,null,[[18,27]])})));return function(h){return l.apply(this,arguments)}}()}),[h])}(l),x=(0,A.Z)(l),F=(0,a.useCallback)((function(h){return B("/spaces/".concat(h))}),[]),S=1===b.length,k=1===w.length&&H,P=S?{confirmLabel:"Yes, leave","data-ga":"".concat(E,"-last-member"),"data-testid":"".concat(g,"LastMember"),handleConfirm:function(){return x({onSuccess:F})},message:a.createElement(a.Fragment,null,"If you leave, space ",a.createElement("strong",null,c)," will be deleted immediately.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(c," space")}:k?{confirmLabel:"Give rights","data-ga":"".concat(E,"-last-admin"),"data-testid":"".concat(g,"LastAdmin"),handleConfirm:function(){return B("users")},isConfirmPositive:!0,message:a.createElement(a.Fragment,null,"You are the last admin of ",a.createElement("strong",null,c)," space. Please give admin rights to another member so you can leave this space."),title:"Leave ".concat(c," space")}:{confirmLabel:"Yes, leave","data-ga":E,"data-testid":g,handleConfirm:function(){return V({currentUserId:C,onSuccess:F})},message:a.createElement(a.Fragment,null,"You are about to leave ",a.createElement("strong",null,c)," space.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(c," space")};return a.createElement(e.ConfirmationDialog,(0,t.Z)({handleDecline:d},P))}}}]); \ No newline at end of file
+!function(){try{var h="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},l=(new Error).stack;l&&(h._sentryDebugIds=h._sentryDebugIds||{},h._sentryDebugIds[l]="55544555-09e0-4a91-b924-80efe1fbdd83",h._sentryDebugIdIdentifier="sentry-dbid-55544555-09e0-4a91-b924-80efe1fbdd83")}catch(h){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[610],{6610:function(h,l,c){c.r(l),c.d(l,{default:function(){return D}});var t=c(29439),e=c(67294),a=c(57509),v=c(74059),i=c(46667),n=c(87854),o=c.n(n),p=c(95348),d=c.n(p),f=new(o())({id:"partialFailureSvg",use:"partialFailureSvg-usage",viewBox:"0 0 348 348",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 348 348" id="partialFailureSvg"><path fill="#CCDDE8" d="M174 348c96.098 0 174-77.902 174-174C348 77.903 270.098 0 174 0 77.903 0 0 77.903 0 174c0 96.098 77.903 174 174 174Z" opacity=".3" /><path fill="#89B0C9" d="M174 290c73.178 0 132.5-1.119 132.5-2.5S247.178 285 174 285s-132.5 1.119-132.5 2.5S100.822 290 174 290Z" opacity=".3" /><path fill="#485D6B" d="M267 53H81v142h186V53Z" /><path fill="#849FB2" d="M263 57H85v134h178V57Z" /><path fill="#0A2437" d="M267 53h-96v142h96V53Z" opacity=".1" /><path fill="#E6E7E8" d="M307.6 115h-267v67h267v-67Z" /><path fill="#485D6B" d="M169.619 173.99v-51h-83v51h83Z" /><path fill="#33424D" d="M167.619 171.99v-47h-79v47h79Z" /><path fill="#0A2437" d="M169.611 173.997v-51h-41.6v51h41.6Z" opacity=".1" /><path fill="#D3D5D6" d="M307.6 182h-267v13h267v-13Z" /><path fill="#697784" d="M288.6 195h-229v48h229v-48Z" /><path fill="#0A2437" d="M288.6 195h-229v22h229v-22Z" opacity=".15" /><path fill="#E6E7E8" d="M59.6 195h-10v92h10v-92Z" /><path fill="#0A2437" d="M59.6 195h-10v10h10v-10Z" opacity=".15" /><path fill="#0A2437" d="M59.6 195h-5v92h5v-92Z" opacity=".05" /><path fill="#E6E7E8" d="M298.6 195h-10v92h10v-92Z" /><path fill="#0A2437" d="M298.6 195h-10v10h10v-10Z" opacity=".15" /><path fill="#0A2437" d="M298.6 195h-5v92h5v-92Z" opacity=".05" /><path fill="#485D6B" d="M261.619 173.99v-51h-83v51h83Z" /><path fill="#33424D" d="M259.619 171.99v-47h-79v47h79Z" /><path fill="#0A2437" d="M261.611 173.997v-51h-41.6v51h41.6Z" opacity=".1" /><path fill="#93A6B9" d="M55.6 127v20c0 .5-.4 1-1 1h-5c-.5 0-1-.4-1-1v-20c0-.5.4-1 1-1h5c.6 0 1 .4 1 1Z" /><path fill="#677F8E" d="M50.6 143.5v-13c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v13c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5Z" /><path fill="#00AB44" d="M56.6 132.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M56.6 136.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" opacity=".1" /><path fill="#0A2437" d="M56.6 132.6v1c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H49c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1c0 .1 0 .3.1.4.1.5.5.8.9.9.1 0 .3.1.4.1h6.2c.1 0 .3 0 .4-.1.5-.1.8-.5.9-.9.1-.1.1-.3.1-.4Z" opacity=".05" /><path fill="#24B75E" d="M56.6 132.4v1c0-.1 0-.3-.1-.4-.1-.5-.5-.8-.9-.9-.1 0-.3-.1-.4-.1H49c-.1 0-.3 0-.4.1-.5.1-.8.5-.9.9 0 .1-.1.3-.1.4v-1c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M56.6 132.4v1.2c0 .6-.4 1.2-1 1.3V147c0 .5-.4 1-1 1h-2v-22h2c.5 0 1 .4 1 1v4.1c.6.1 1 .7 1 1.3Z" opacity=".1" /><path fill="#93A6B9" d="M66.6 134v13c0 .5-.4 1-1 1h-5c-.5 0-1-.4-1-1v-20c0-.5.4-1 1-1h5.1c.6.1.9 1.2.9 8Z" /><path fill="#677F8E" d="M61.6 143.5v-13c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v13c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5Z" /><path fill="#00AB44" d="M67.6 139.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M67.6 143.4v1.2c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1.2c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" opacity=".1" /><path fill="#0A2437" d="M67.6 139.6v1c0 .6-.4 1.2-1 1.3-.1 0-.3.1-.4.1H60c-.1 0-.3 0-.4-.1-.6-.2-1-.7-1-1.3v-1c0 .1 0 .3.1.4.1.5.5.8.9.9.1 0 .3.1.4.1h6.2c.1 0 .3 0 .4-.1.5-.1.8-.5.9-.9.1-.1.1-.3.1-.4Z" opacity=".05" /><path fill="#24B75E" d="M67.6 139.4v1c0-.1 0-.3-.1-.4-.1-.5-.5-.8-.9-.9-.1 0-.3-.1-.4-.1H60c-.1 0-.3 0-.4.1-.5.1-.8.5-.9.9 0 .1-.1.3-.1.4v-1c0-.6.4-1.2 1-1.3.1 0 .3-.1.4-.1h6.2c.1 0 .3 0 .4.1.6.1 1 .7 1 1.3Z" /><path fill="#0A2437" d="M67.6 139.4v1.2c0 .6-.4 1.2-1 1.3v5.1c0 .5-.4 1-1 1h-2v-22h2.1c.5.1.8.5.8 1v11.1c.7.1 1.1.7 1.1 1.3Z" opacity=".1" /><path fill="#677F8E" d="M78.6 139.9v7.2c0 .5-.4.9-.9.9h-7.2c-.5 0-.9-.4-.9-.9v-7.2c0-.5.4-.9.9-.9h7.2c.5 0 .9.4.9.9Z" /><path fill="#485D6B" d="M74.1 147a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z" /><path fill="#FF4136" d="M74.1 146a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Z" /><path fill="#0A2437" d="M78.6 139.9v7.2c0 .5-.4.9-.9.9h-3.1v-9h3.1c.5 0 .9.4.9.9Z" opacity=".1" /><path fill="#677F8E" d="M78.6 126.9v6.1c0 .5-.4.9-.9.9h-7.1c-.5 0-.9-.4-.9-.9v-6.1c0-.5.4-.9.9-.9h7.1c.5 0 .9.4.9.9Z" /><path fill="#00AB44" d="M71.6 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#FF4136" d="M74.1 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#00AB44" d="M76.6 131a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#0A2437" d="M78.6 126.9v6.1c0 .5-.4.9-.9.9h-3.1v-8h3.1c.5.1.9.5.9 1Z" opacity=".1" /><path fill="#485D6B" d="M78.6 156.6v11.8c0 .9-.7 1.6-1.6 1.6H50.2c-.9 0-1.6-.7-1.6-1.6v-11.8c0-.9.7-1.6 1.6-1.6H77c.9 0 1.6.7 1.6 1.6Z" /><path fill="#80A4BF" d="M54.6 166h-4v2h4v-2ZM57.6 166h-2v2h2v-2ZM68.6 166h-10v2h10v-2ZM71.6 166h-2v2h2v-2ZM76.6 166h-4v2h4v-2ZM52.6 163h-2v2h2v-2ZM55.6 163h-2v2h2v-2ZM58.6 163h-2v2h2v-2ZM61.6 163h-2v2h2v-2ZM64.6 163h-2v2h2v-2ZM67.6 163h-2v2h2v-2ZM70.6 163h-2v2h2v-2ZM73.6 163h-2v2h2v-2ZM76.6 163h-2v2h2v-2ZM53.6 160h-3v2h3v-2ZM56.6 160h-2v2h2v-2ZM59.6 160h-2v2h2v-2ZM62.6 160h-2v2h2v-2ZM65.6 160h-2v2h2v-2ZM68.6 160h-2v2h2v-2ZM71.6 160h-2v2h2v-2ZM76.6 160h-4v2h4v-2ZM52.6 157h-2v2h2v-2ZM55.6 157h-2v2h2v-2ZM58.6 157h-2v2h2v-2ZM61.6 157h-2v2h2v-2ZM64.6 157h-2v2h2v-2ZM67.6 157h-2v2h2v-2ZM70.6 157h-2v2h2v-2ZM73.6 157h-2v2h2v-2ZM76.6 157h-2v2h2v-2Z" /><path fill="#0A2437" d="M78.6 156.6v11.8c0 .9-.7 1.6-1.6 1.6H63.6v-15H77c.9 0 1.6.7 1.6 1.6Z" opacity=".1" /><path fill="#485D6B" d="M269.6 142.1v-16.2c0-1.6 1.3-2.9 2.9-2.9h24.2c1.6 0 2.9 1.3 2.9 2.9v16.2c0 1.6-1.3 2.9-2.9 2.9h-24.2c-1.6 0-2.9-1.3-2.9-2.9Z" /><path fill="#485D6B" d="M286.6 136h-17v6.1c0 1.6 1.3 2.9 2.9 2.9h14.1v-9Z" /><path fill="#93A6B9" d="M277.6 139a5 5 0 1 0-.001-10.001A5 5 0 0 0 277.6 139Z" /><path fill="#E6E7E8" d="m273.7 138.7-1.1-1.2c-.4-.5-.4-1.2.1-1.6l7.8-6c.4-.3 1.1-.3 1.5.1.4.4.4 1.1 0 1.5l-6.7 7.2c-.4.4-1.1.4-1.6 0Z" /><path fill="#485D6B" d="M299.6 136h-16v9h13.1c1.6 0 2.9-1.3 2.9-2.9V136Z" /><path fill="#93A6B9" d="M291.6 139a5 5 0 1 0-.001-10.001A5 5 0 0 0 291.6 139Z" /><path fill="#E6E7E8" d="m287.7 138.7-1.1-1.2c-.4-.5-.4-1.2.1-1.6l7.8-6c.4-.3 1.1-.3 1.5.1.4.4.4 1.1 0 1.5l-6.7 7.2c-.4.4-1.1.4-1.6 0Z" /><path fill="#5AB948" d="M272.6 127a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM287.6 127a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#0A2437" d="M284.6 145v-22h12.1c1.6 0 2.9 1.3 2.9 2.9v16.2c0 1.6-1.3 2.9-2.9 2.9h-12.1Z" opacity=".1" /><path fill="#485D6B" d="M299.619 173.99v-22h-30v22h30Z" /><path fill="#385062" d="M275.6 157h-2v15h2v-15Z" /><path fill="#E6E7E8" d="M276.6 163h-4v3h4v-3Z" /><path fill="#0A2437" d="M276.6 166h-4v3h4v-3ZM276.6 165h-4v1h4v-1Z" opacity=".1" /><path fill="#5B788C" d="M278.6 171h-2v1h2v-1ZM278.6 169h-2v1h2v-1ZM278.6 167h-2v1h2v-1ZM278.6 165h-2v1h2v-1ZM278.6 163h-2v1h2v-1ZM278.6 161h-2v1h2v-1ZM278.6 159h-2v1h2v-1ZM278.6 157h-2v1h2v-1Z" /><path fill="#385062" d="M284.6 157h-2v15h2v-15Z" /><path fill="#E6E7E8" d="M285.6 159h-4v3h4v-3Z" /><path fill="#0A2437" d="M285.6 162h-4v3h4v-3ZM285.6 161h-4v1h4v-1Z" opacity=".1" /><path fill="#5B788C" d="M287.6 171h-2v1h2v-1ZM287.6 169h-2v1h2v-1ZM287.6 167h-2v1h2v-1ZM287.6 165h-2v1h2v-1ZM287.6 163h-2v1h2v-1ZM287.6 161h-2v1h2v-1ZM287.6 159h-2v1h2v-1ZM287.6 157h-2v1h2v-1Z" /><path fill="#385062" d="M293.6 157h-2v15h2v-15Z" /><path fill="#E6E7E8" d="M294.6 167h-4v3h4v-3Z" /><path fill="#0A2437" d="M294.6 170h-4v3h4v-3ZM294.6 169h-4v1h4v-1Z" opacity=".1" /><path fill="#5B788C" d="M296.6 171h-2v1h2v-1ZM296.6 169h-2v1h2v-1ZM296.6 167h-2v1h2v-1ZM296.6 165h-2v1h2v-1ZM296.6 163h-2v1h2v-1ZM296.6 161h-2v1h2v-1ZM296.6 159h-2v1h2v-1ZM296.6 157h-2v1h2v-1Z" /><path fill="#5AB948" d="M274.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM283.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#FF4136" d="M292.6 156a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" /><path fill="#0A2437" d="M299.619 173.99v-22h-16v22h16Z" opacity=".1" /><path fill="#D3D5D6" d="M64.6 73h-2v42h2V73Z" /><path fill="#D3D5D6" d="M74.6 74h-22v2h22v-2Z" /><path fill="#0A2437" d="M64.6 79v23.5l-1-.5-1 .5V79h2Z" opacity=".15" /><path fill="#C7C8C9" d="M74.6 75h-22v1h22v-1Z" /><path fill="#00AB44" d="M73.6 76v28l-10-5-7.5 3.7-.9.5-1.6.8V76h20Z" /><path fill="#fff" d="M64.6 92h-2l-4-8h6c2.2 0 4 1.8 4 4s-1.8 4-4 4Z" /><path fill="#D3D5D6" d="M71.6 112h-16v3h16v-3Z" /><path fill="#C7C8C9" d="M71.6 114h-16v1h16v-1Z" /><path fill="#0A2437" d="M63.6 115V73h1v1h10v2h-1v28l-9-4.5V112h7v3h-8Z" opacity=".15" /><path fill="#DADCDD" d="m136.7 206.6-12.6-10.1c-6-4.8-9.4-11.9-9.4-19.6V168h4v8.9c0 6.5 2.9 12.5 7.9 16.5l12.6 10.1-2.5 3.1Z" /><path fill="#0A2437" d="m137.7 202.3-1 1.3-12.6-10.1c-6-4.8-9.4-11.9-9.4-19.6v3c0 7.7 3.4 14.8 9.4 19.6l12.6 10.1 2.5-3.1-1.5-1.2Z" opacity=".05" /><path fill="#00AB44" d="M123.1 171h-13c-1.4 0-2.5-1.1-2.5-2.5v-1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5v1c0 1.4-1.1 2.5-2.5 2.5Z" /><path fill="#0A2437" d="M125.1 169h-17.4c.2 1.2 1.2 2 2.4 2h13c1.2 0 2.2-.9 2.4-2h-.4Z" opacity=".2" /><path fill="#36BD6B" d="M123.1 165h-13c-1.4 0-2.5 1.1-2.5 2.5v1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5v-1c0-1.4-1.1-2.5-2.5-2.5Z" /><path fill="#DADCDD" d="M226.6 168v8.9c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7-1 .8-1.9 1.6-2.5-3.1 1.5-1.2 4.1-3.2 7.1-5.6c5-4 7.9-10 7.9-16.5v-9h4Z" /><path fill="#0A2437" d="M226.6 173.9v3c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7-1 .8-1.9 1.6-2.5-3.1 1.5-1.2 1 1.3 3-2.4 9.5-7.6c6.2-4.9 9.6-12 9.6-19.7Z" opacity=".05" /><path fill="#00AB44" d="M233.6 167.5v1.5c0 .1-.1.2-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-13c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4v-1.5c0-1.4 1.1-2.5 2.5-2.5h13c1.2 0 2.3 1.1 2.3 2.5Z" /><path fill="#0A2437" d="M233.6 169c0 .2-.1.3-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-13c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4h17.8Z" opacity=".2" /><path fill="#36BD6B" d="M233.6 167.5v1c0-1.4-1.1-2.5-2.5-2.5h-13c-1.4 0-2.5 1.1-2.5 2.5v-1c0-1.4 1.1-2.5 2.5-2.5h13c1.4 0 2.5 1.1 2.5 2.5Z" /><path fill="#485D6B" d="M174.6 218h-8v15h8v-15ZM176.6 235.6V250h-12v-14.4c0-1.4 1.2-2.6 2.6-2.6h6.7c1.5 0 2.7 1.2 2.7 2.6Z" /><path fill="#506C80" d="M183.6 211v1.6c0 .5 0 .9-.2 1.4 0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6-1.2 1.2-2.8 2-4.6 2H164c-1.8 0-3.5-.8-4.6-2-.2-.2-.4-.4-.5-.6-.1-.1-.2-.2-.2-.4-.2-.2-.3-.5-.4-.8-.1-.1-.1-.2-.1-.4-.1-.1-.1-.3-.1-.4 0-.1-.1-.3-.1-.4-.1-.5-.2-.9-.2-1.4V211h25.8Z" /><path fill="#0A2437" d="M183.5 214c0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6h-22.5c-.2-.2-.4-.4-.5-.6-.1-.1-.2-.2-.2-.4-.2-.2-.3-.5-.4-.8-.1-.1-.1-.2-.1-.4-.1-.1-.1-.3-.1-.4 0-.1-.1-.3-.1-.4h25.3Z" opacity=".2" /><path fill="#384A57" d="M187.6 204v6c0 .7-.2 1.3-.5 1.9-.7 1.2-2 2.1-3.5 2.1h-26.1c-1.5 0-2.8-.8-3.5-2.1-.3-.6-.5-1.2-.5-1.9v-6h34.1Z" /><path fill="#00AB44" d="M207.6 199.3v3.6c0 .5 0 .9-.1 1.4 0 .3-.1.5-.2.8-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-1 0-2 .1-2.9.1H157c-1 0-2 0-2.9-.1-2.1-.1-4.3-.3-6.4-.6-3.1-.4-6.1-1.1-9.2-1.9-2.2-.6-3.9-2.3-4.6-4.4-.1-.2-.1-.5-.2-.8-.1-.4-.1-.9-.1-1.4V199c.1-1.8 1.5-3.2 3.2-3.4l4.2-.5 2.4-.3 17.7-1.9c.8-.1 1.6-.2 2.3-.2a81.93 81.93 0 0 1 14 0c.8.1 1.6.1 2.3.2l16.8 1.8 2.4.3 5.2.6c1.8.2 3.1 1.6 3.2 3.4.3.1.3.2.3.3Z" /><path fill="#B4BBC4" d="M207.3 205c-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-1 0-2 .1-2.9.1H157c-1 0-2 0-2.9-.1-2.1-.1-4.3-.3-6.4-.6-3.1-.4-6.1-1.1-9.2-1.9-2.2-.6-3.9-2.3-4.6-4.4h73.4Z" /><path fill="#0A2437" d="M199.1 195.1c-1.5 4-4 7.4-7.2 9.9-1.3 1.1-2.8 2-4.4 2.8-3 1.5-6.4 2.2-9.9 2.2h-15.3c-3.1 0-6.1-.6-8.9-1.8-1.9-.8-3.8-1.9-5.4-3.2-3.1-2.5-5.6-5.9-7.1-9.8l2.4-.3L161 193c.8-.1 1.6-.2 2.3-.2a81.93 81.93 0 0 1 14 0c.8.1 1.6.1 2.3.2l16.8 1.8 2.7.3Z" opacity=".2" /><path fill="#DADCDD" d="m170.6 255.5-3.6-.1h-3.5c-2.3 0-4.6.1-6.9.4-4.6.5-9.1 1.5-13.5 3-2.2.7-4.4 1.6-6.5 2.6-2.1 1-4.1 2.1-6.3 3.3l-12.6 7.1-2.1-3.4 12.3-7.8c2-1.3 4.2-2.6 6.4-3.8 2.2-1.2 4.5-2.2 6.9-3.2 4.7-1.9 9.6-3.2 14.6-4 2.5-.4 5-.7 7.6-.8l1.9-.1h1.8l3.6-.1v6.9h-.1Z" /><path fill="#C6C7C8" d="m170.6 255.5-3.6-.1h-3.5c-2.3 0-4.6.1-6.9.4-4.6.5-9.1 1.5-13.5 3-2.2.7-4.4 1.6-6.5 2.6-2.1 1-4.1 2.1-6.3 3.3l-12.6 7.1-1-1.7 12.5-7.5c4.1-2.5 8.4-4.8 13-6.4 4.5-1.7 9.3-2.8 14.1-3.5 2.4-.3 4.8-.5 7.2-.6 2.4-.1 4.8 0 7.3 0v3.4h-.2Z" /><path fill="#485D6B" d="M117.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273h6.9Z" /><path fill="#0A2437" d="M119.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20h2.1c2.2 0 3.9 1.8 3.9 3.9Z" opacity=".2" /><path fill="#DADCDD" d="M119.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-6.9c0-2.2 1.8-3.9 3.9-3.9h3.1c2.3 0 4 1.8 4 3.9Z" /><path fill="#0A2437" d="M115.7 267h-2.1v13h4c1.1-.1 2-1.1 2-2.2v-6.9c0-2.1-1.7-3.9-3.9-3.9Z" opacity=".05" /><path fill="#DADCDD" d="m225.6 268.3-1 1.7-1 1.7-2-1.1-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3.5l-3.6.1v-7.1l3.6.1 1.8.1h2c2.5.1 5.1.4 7.6.8 5 .8 9.9 2.1 14.6 4 2.3.9 4.6 2 6.9 3.2 2.2 1.2 4.4 2.5 6.4 3.8l10.7 6.8 1.3 1.1Z" /><path fill="#C6C7C8" d="m224.6 270-1 1.7-2-1.1-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3.5l-3.6.1V252H178c2.4.1 4.8.3 7.2.6 4.8.7 9.5 1.8 14.1 3.5 4.6 1.6 8.9 3.9 13 6.4l10.2 6.1 2.1 1.4Z" /><path fill="#485D6B" d="M230.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273h6.9Z" /><path fill="#0A2437" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20h2.1c2.2 0 3.9 1.8 3.9 3.9Z" opacity=".2" /><path fill="#DADCDD" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-7.2c0-.7.3-1.4.7-2 .4-.6 1-1.1 1.7-1.4.5-.2 1-.3 1.5-.3h3.1c2.3.1 4 1.9 4 4Z" /><path fill="#0A2437" d="M232.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-4v-13h2.1c2.2 0 3.9 1.8 3.9 3.9Z" opacity=".05" /><path fill="#E2E3E4" d="M175.3 252v.2l-.5 3.2L173 267l-.3 2h-4l-.3-1.8-1.9-11.8-.5-3.2v-.2c-.1-1.1.8-2 1.9-2h5.5c1.1 0 1.9.9 1.9 2Z" /><path fill="#C6C7C8" d="M175.3 252v.2l-.5 3.2L173 267l-.3 2h-2v-19h2.8c1 0 1.8.9 1.8 2Z" /><path fill="#485D6B" d="M174.6 273v11.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V273h6.9Z" /><path fill="#0A2437" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5v-20H172.9c2.1.1 3.7 1.9 3.7 3.9Z" opacity=".2" /><path fill="#DADCDD" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-7c-1.1-.1-2-1.1-2-2.2v-6.9c0-1.8 1.1-3.2 2.7-3.7.4-.1.8-.2 1.2-.2H172.8c2.2.1 3.8 1.9 3.8 3.9Z" /><path fill="#0A2437" d="M176.6 270.9v6.9c0 1.1-.9 2.1-2 2.2h-4v-13H172.9c2.1.1 3.7 1.9 3.7 3.9Z" opacity=".05" /><path fill="#435969" d="M210.6 125.7V131.5c-.1 16.1-2.8 32-7.8 47.3l-3.4 10.4c-.6 2-1.6 3.9-2.7 5.6-2.9 4.4-7.3 7.6-12.3 9.2-2.1.6-4.4 1-6.7 1h-15.3c-2.3 0-4.5-.4-6.7-1-5-1.5-9.3-4.7-12.2-9.1-1.2-1.7-2.1-3.6-2.8-5.7l-3.4-10.4c-5-15.3-7.6-31.2-7.8-47.3V125.7c0-3.3 2.4-6 5.6-6.5l11-1.6c8.1-1.2 16.2-1.8 24.4-1.8 7.8 0 15.6.6 23.4 1.8l11 1.6c3.3.5 5.7 3.2 5.7 6.5Z" /><path fill="#00AB44" d="M210.6 125.7V131.5c-.1-3.2-2.4-5.9-5.6-6.3l-11-1.6c-7.8-1.2-15.6-1.7-23.4-1.8-8.1 0-16.3.5-24.4 1.8l-11 1.6c-3.2.5-5.5 3.1-5.6 6.3V125.7c0-3.3 2.4-6 5.6-6.5l11-1.6c8.1-1.2 16.2-1.8 24.4-1.8 7.8 0 15.6.6 23.4 1.8l11 1.6c3.2.5 5.6 3.2 5.6 6.5Z" /><path fill="#384A57" d="M177.6 167h-14c-1.7 0-3-1.3-3-3s1.3-3 3-3h14c1.7 0 3 1.3 3 3s-1.3 3-3 3Z" /><path fill="#DADCDD" d="M175.2 164H166c-1.3 0-2.4 1.1-2.4 2.4v47.2c0 1.3 1.1 2.4 2.4 2.4h9.2c1.3 0 2.4-1.1 2.4-2.4v-47.2c0-1.3-1.1-2.4-2.4-2.4Z" /><path fill="#D0D1D3" d="M175.2 213H166c-1.3 0-2.4-1.1-2.4-2.4v3c0 1.3 1.1 2.4 2.4 2.4h9.2c1.3 0 2.4-1.1 2.4-2.4v-3c0 1.3-1.1 2.4-2.4 2.4Z" /><path fill="#E6E7E8" d="M175.2 164H166c-1.3 0-2.4 1.1-2.4 2.4v3c0-1.3 1.1-2.4 2.4-2.4h9.2c1.3 0 2.4 1.1 2.4 2.4v-3c0-1.3-1.1-2.4-2.4-2.4Z" /><path fill="#0A2437" d="M233.6 167.5v1.5c0 .1-.1.2-.1.4v.1c0 .1-.1.2-.1.3-.1.3-.4.5-.6.7-.1 0-.1.1-.2.1-.4.3-.9.4-1.4.4h-4.5v5.9c0 7.7-3.4 14.8-9.5 19.6l-9.7 7.7c0 .3-.1.5-.2.8-.2.7-.6 1.4-1 2-.9 1.2-2.1 2-3.6 2.4-5.1 1.4-10.3 2.3-15.6 2.5-.7 1.2-2 2.1-3.5 2.1h-.2c0 .1-.1.3-.1.4 0 .1-.1.3-.1.4 0 .1-.1.2-.1.4-.1.3-.3.5-.4.8-.1.1-.1.2-.2.4-.2.2-.3.4-.5.6-1.2 1.2-2.8 2-4.6 2h-2.6v14h-.8c1.4 0 2.6 1.2 2.6 2.6v13h1.4c2.5.1 5.1.4 7.6.8 5 .8 9.9 2.1 14.6 4 2.3.9 4.6 2 6.9 3.2 2.2 1.2 4.4 2.5 6.4 3.8l10.7 6.8c.5-.2 1-.3 1.5-.3h3.1c2.2 0 3.9 1.8 3.9 3.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.9c-1.4 0-2.5-1.1-2.5-2.5V280c-1.1-.1-2-1.1-2-2.2v-7.2l-10.7-6c-2.1-1.2-4.1-2.3-6.2-3.3-2.1-1-4.3-1.9-6.5-2.6-4.4-1.5-9-2.5-13.5-3-2.3-.2-4.6-.3-6.9-.3h-3l-1.8 11.6c2.1.1 3.7 1.8 3.7 3.9v6.9c0 1.1-.9 2.1-2 2.2v4.5c0 1.4-1.1 2.5-2.5 2.5h-1.5V115.8c7.8 0 15.6.6 23.4 1.8l11 1.6c3.2.5 5.6 3.2 5.6 6.5V131.5c-.1 16.1-2.8 32-7.8 47.3l-3.4 10.4c-.6 2-1.6 3.9-2.7 5.6l2.4.3 5.2.6c1.8.2 3.1 1.6 3.2 3.4l7.1-5.6c5-4 7.9-10 7.9-16.5v-6h-4.5c-.5 0-1-.2-1.4-.4-.1 0-.1-.1-.2-.1-.2-.2-.4-.4-.6-.7 0-.1-.1-.2-.1-.3v-.1c-.1-.1-.1-.2-.1-.4v-1.5c0-1.4 1.1-2.5 2.5-2.5h13c1.1 0 2.2 1.1 2.2 2.5Z" opacity=".15" /></symbol>'}),r=(d().add(f),f),Z=c(14809),M=c(91008),s=c(79655),u={noRoomPermission:{header:function(h){return"Your role doesn't give you permission to access any of the troubleshooting information on ".concat(h,".")}},noSpacePermission:{header:function(h){return"Your role doesn't give you permission to access any information on ".concat(h,".")}},noRooms:{header:function(h){return"You currently don't have permission to see any room on ".concat(h,".")}}},m=function(h){var l=h.onClick,c=h.spaceName;return e.createElement(e.Fragment,null,e.createElement(a.Text,{margin:[2,0,0]},"You can also leave this Space if you wish. "),e.createElement(a.Button,{flavour:"borderless",icon:"switch_off",label:"Leave ".concat(c),margin:[0,0,0,7],onClick:l,strong:!0}))},D=function(h){var l=h.reason,c=(0,v.OS)(),n=(0,i.Z)(),o=(0,t.Z)(n,4),p=o[0],d=o[2],f=o[3],D=u[l].header,y=(0,v.uk)();return e.createElement(a.Flex,{alignItems:"center",justifyContent:"center",flex:!0,gap:8},e.createElement("svg",{id:"partial_failure",width:"288px",height:"234px"},e.createElement("use",{xlinkHref:"#".concat(r.id)})),e.createElement(a.Flex,{column:!0,width:{max:125},gap:2},e.createElement(a.H3,null,D(c.name)),"noSpacePermission"===l&&e.createElement(e.Fragment,null,e.createElement(a.Text,null,"Please contact the Space administrators if this is unexpected."),e.createElement(m,{onClick:d,spaceName:c.name})),"noRoomPermission"===l&&e.createElement(a.Text,null,"To manage Plan & Billing information please"," ",e.createElement(M.Z,{as:s.rU,to:"/spaces/".concat(y,"/settings/billing")},"click here.")),"noRooms"===l&&e.createElement(e.Fragment,null,e.createElement(a.Text,null,"Please contact a Space administrator or manager if this is unexpected."),e.createElement(m,{onClick:d,spaceName:c.name}))),p&&e.createElement(Z.Z,{id:c.id,name:c.name,onClose:f}))}},14809:function(h,l,c){c.d(l,{Z:function(){return B}});var t=c(87462),e=c(67294),a=c(57509),v=c(89250),i=c(13477),n=c(94666),o=c(15861),p=c(29439),d=c(64687),f=c.n(d),r=(c(57327),c(41539),c(88449),c(2490),c(59849),c(4480)),Z=c(93017),M=c(274),s=c(46585),u=c(74059),m=c(57079),D=c(58502),y=c(95383),A=c(53606),E="leave-space-dialog",g="leaveSpaceDialog",B=function(h){var l=h.id,c=h.name,d=h.onClose,B=(0,v.s0)(),C=(0,i.Iy)("id"),b=(0,n.H4)(),w=(0,n.nP)(),H=(0,n.Wy)(),V=function(h){var l=(0,Z.Z)(),c=(0,p.Z)(l,2)[1];return(0,r._8)((function(l){var t=l.snapshot,e=l.set,a=l.reset;return function(){var l=(0,o.Z)(f().mark((function l(v){var i,o,d,r,Z,A,E,g,B;return f().wrap((function(l){for(;;)switch(l.prev=l.next){case 0:return i=v.currentUserId,o=v.onSuccess,d=v.onError,l.next=3,t.getPromise((0,u.st)("ids"));case 3:if(r=l.sent,Z=r.filter((function(l){return h!==l})),A=(0,p.Z)(Z,1),E=A[0]){l.next=9;break}return c({header:"Spaces",text:s.T$.leave}),l.abrupt("return");case 9:if(l.t0=E,!l.t0){l.next=14;break}return l.next=13,t.getPromise((0,D.ZP)(E));case 13:l.t0=l.sent;case 14:return g=l.t0,B=g.slug,e((0,u.st)("ids"),Z),e(m.Z,(function(l){return l.filter((function(l){return l!==h}))})),l.prev=18,l.next=21,(0,M.Sz)(h,[i]);case 21:o&&o(B),(0,n.zm)(a,h),(0,y.r1)(a,h),a((0,D.ZP)(h)),l.next=31;break;case 27:l.prev=27,l.t1=l.catch(18),e((0,u.st)("ids"),r),d&&d();case 31:case"end":return l.stop()}}),l,null,[[18,27]])})));return function(h){return l.apply(this,arguments)}}()}),[h])}(l),x=(0,A.Z)(l),F=(0,e.useCallback)((function(h){return B("/spaces/".concat(h))}),[]),S=1===b.length,k=1===w.length&&H,P=S?{confirmLabel:"Yes, leave","data-ga":"".concat(E,"-last-member"),"data-testid":"".concat(g,"LastMember"),handleConfirm:function(){return x({onSuccess:F})},message:e.createElement(e.Fragment,null,"If you leave, space ",e.createElement("strong",null,c)," will be deleted immediately.",e.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(c," space")}:k?{confirmLabel:"Give rights","data-ga":"".concat(E,"-last-admin"),"data-testid":"".concat(g,"LastAdmin"),handleConfirm:function(){return B("users")},isConfirmPositive:!0,message:e.createElement(e.Fragment,null,"You are the last admin of ",e.createElement("strong",null,c)," space. Please give admin rights to another member so you can leave this space."),title:"Leave ".concat(c," space")}:{confirmLabel:"Yes, leave","data-ga":E,"data-testid":g,handleConfirm:function(){return V({currentUserId:C,onSuccess:F})},message:e.createElement(e.Fragment,null,"You are about to leave ",e.createElement("strong",null,c)," space.",e.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(c," space")};return e.createElement(a.ConfirmationDialog,(0,t.Z)({handleDecline:d},P))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/654.67b0714ebd49a65d277c.chunk.js b/web/gui/v2/654.67b0714ebd49a65d277c.chunk.js
new file mode 100644
index 00000000..db895e82
--- /dev/null
+++ b/web/gui/v2/654.67b0714ebd49a65d277c.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="87770e6f-dd77-4cf0-bd56-726345033453",e._sentryDebugIdIdentifier="sentry-dbid-87770e6f-dd77-4cf0-bd56-726345033453")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[654],{51091:function(e,t,n){"use strict";var r=n(87462),a=n(45987),l=(n(57327),n(41539),n(88449),n(2490),n(59849),n(21249),n(57640),n(9924),n(92222),n(60677)),o=n(10928),c=n.n(o),i=n(67294),s=n(57509),u=["items","isBig","showBackButton","testid"],m=(0,l.default)(s.Box).withConfig({displayName:"breadcrumbs__StyledItemContainer",componentId:"sc-3u39st-0"})([""]),d=(0,l.css)(["&:hover{color:",";}"],(function(e){var t=e.withHover,n=e.theme;return t&&(0,s.getColor)("success")({theme:n})})),p=(0,l.default)(s.Text).withConfig({displayName:"breadcrumbs__StyledText",componentId:"sc-3u39st-1"})(["",""],d),g=(0,l.default)(s.TextSmall).withConfig({displayName:"breadcrumbs__StyledTextSmall",componentId:"sc-3u39st-2"})(["",""],d);t.Z=function(e){var t=e.items,n=e.isBig,l=e.showBackButton,o=void 0===l||l,d=e.testid,f=void 0===d?"":d,E=(0,a.Z)(e,u),b=(0,i.useMemo)((function(){return null!==t&&void 0!==t&&t.length&&o?c()(t.filter((function(e){return!!e.onClick}))).onClick:null}),[t,o]);if(null===t||void 0===t||!t.length)return null;var h=n?p:g;return i.createElement(s.Flex,(0,r.Z)({gap:4},E),o&&i.createElement(s.Button,{onClick:b,icon:"chevron_left",label:"Back",neutral:!0,flavour:"hollow",small:!0,padding:[0,2,0,1],textTransform:"uppercase","data-testid":"".concat(f,"-breadcrumbs-backButton")}),i.createElement(s.Flex,{gap:2,alignItems:"center"},t.map((function(e,t){var n=e.isDisabled,a=e.name,l=e.onClick;return i.createElement(m,(0,r.Z)({key:t,alignItems:"center"},l&&{cursor:"pointer",onClick:l},{"data-testid":"".concat(f,"-breadcrumbs-level-").concat(t)}),i.createElement(h,{color:n&&"textLite","data-testid":"".concat(f,"-breadcrumbs-level-").concat(t),withHover:!!l},0!==t&&" / ",a))}))))}},80959:function(e,t,n){"use strict";var r=n(87462),a=n(45987),l=n(67294),o=n(57509),c=["message","title","footer"];t.Z=function(e){var t=e.message,n=e.title,i=e.footer,s=(0,a.Z)(e,c),u=(null===s||void 0===s?void 0:s["data-testid"])||"functionError";return l.createElement(o.Flex,(0,r.Z)({alignItems:"center",column:!0,"data-testid":u,flex:!0,gap:3,justifyContent:"center",padding:[0,20]},s),l.createElement(o.H3,{"data-testid":"".concat(u,"-title")},n),l.createElement(o.TextBig,{color:"textDescription","data-testid":"".concat(u,"-message")},t),i)}},93742:function(e,t,n){"use strict";n.d(t,{p:function(){return o}});var r=n(93433),a=(n(69826),n(41539),n(31672),n(2490),n(59461),n(21249),n(57640),n(9924),n(3689)),l=n(95383),o=function(e){var t=(0,l.J7)().find((function(e){return"All nodes"==e.name}));return t?e?t[e]:t:null};t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.all,n=e.internal,o=(0,l.J7)().map((function(e){var t=e.id;return{label:e.name,value:t}})),c=[];return n&&c.push(a.mN),t&&c.push(a.k_),c.push.apply(c,(0,r.Z)(o)),c}},27308:function(e,t,n){"use strict";var r=n(87462),a=n(45987),l=n(67294),o=n(79655),c=n(57509),i=n(91008),s=n(33335),u=n(99826),m=["classification"];t.Z=function(e){var t=e.classification,n=(0,a.Z)(e,m),d=(0,s.gI)("billing:ReadAll"),p=(0,u.Z)(t.toLowerCase()).url;return p?l.createElement(c.Flex,{background:"sideBarMini",border:{side:"all",color:"border"},padding:[1,2],round:!0},l.createElement(i.Z,(0,r.Z)({align:"bottom",as:o.rU,boxProps:{as:c.Flex},color:"text",Component:c.TextMicro,content:"Available on ".concat(t," plan"),disabled:!d,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:p},n),t)):null}},84580:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(45987),a=n(67294),l=n(87462),o=(n(82526),n(41817),n(57509)),c=n(82351),i=["description","isRequired","title"],s=function(e){var t=e.description,n=e.isRequired,l=e.title,s=(0,r.Z)(e,i),u=s["data-testid"]?"".concat(s["data-testid"],"-label"):"fieldLabel";return a.createElement(o.Flex,{"data-testid":"".concat(u,"-container"),gap:1},a.createElement(o.TextSmall,{color:"textLite","data-testid":u},l,n&&" *"),t&&a.createElement(c.Z,{align:"top",content:t,"data-testid":"".concat(u,"-info"),plain:!0},a.createElement(o.Icon,{color:"textLite",name:"information",size:"small"})))},u=["data-testid","description","isRequired","onChange","title"],m=function(e){var t=e["data-testid"],n=void 0===t?"input":t,c=e.description,i=e.isRequired,m=e.onChange,d=e.title,p=(0,r.Z)(e,u);return a.createElement(o.Flex,{column:!0,"data-testid":n,flex:"grow",gap:1},a.createElement(s,{"data-testid":n,description:c,isRequired:i,title:d}),a.createElement(o.TextInput,(0,l.Z)({"data-testid":"".concat(n,"-field"),size:"tiny",onChange:function(e){var t=e.target;return m(t.value)}},p)))},d=(n(21249),n(57640),n(9924),n(26833),n(92222),["data-testid","description","getDataGa","fields","id","isRequired","onChange","secrets","setSecrets","title"]),p=["getValue","id","onChange"],g=function(e){var t,n=e["data-testid"],c=void 0===n?"select":n,i=e.description,u=e.getDataGa,m=e.fields,g=e.id,f=e.isRequired,E=e.onChange,b=e.secrets,h=e.setSecrets,v=e.title,y=(0,r.Z)(e,d);return a.createElement(o.Flex,{column:!0,"data-testid":c,flex:"grow",gap:1},a.createElement(s,{"data-testid":c,description:i,isRequired:f,title:v}),a.createElement(o.Select,(0,l.Z)({"data-testid":"".concat(c,"-field"),menuPortalTarget:document.body,onChange:function(e){return E(e)},styles:{size:"tiny"},menuPlacement:"auto"},y)),Object.values((null===m||void 0===m?void 0:m[null===(t=y.value)||void 0===t?void 0:t.value])||{}).map((function(e){var t=e.getValue,n=e.id,o=e.onChange,i=(0,r.Z)(e,p);return a.createElement(S,(0,l.Z)({"data-ga":u("".concat(g,"-").concat(n,"-").concat(i.component)),"data-testid":"".concat(c,"-").concat(n),key:n,id:n,onChange:o({id:g,setSecrets:h,subsetId:n}),value:t({id:g,secrets:b,subsetId:n})},i))})))},f=n(4942),E=n(29439),b=(n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(69720),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(57557)),h=n.n(b),v=n(73955),y=n.n(v),x=n(31790),w=n(25185);function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?C(Object(n),!0).forEach((function(t){(0,f.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var P=["component"],I={default:function(){return null},pairs:function(e){var t=e.componentPairs,n=e["data-testid"],r=void 0===n?"pairs":n,l=e.description,c=e.getDataGa,i=e.id,u=e.isRequired,m=e.placeholder,d=e.setSecrets,p=e.title,g=(0,a.useState)({}),b=(0,E.Z)(g,2),v=b[0],C=b[1];(0,a.useEffect)((function(){var e=Object.values(v).reduce((function(e,t){var n=t.key,r=t.value;return n?O(O({},e),{},(0,f.Z)({},n,r||"")):e}),{});d((function(t){return Object.keys(e).length?O(O({},t),{},(0,f.Z)({},i,e)):h()(t,i)}))}),[v]);return a.createElement(o.Flex,{column:!0,"data-testid":r,gap:1},a.createElement(o.Flex,{alignItems:"center",justifyContent:"between"},a.createElement(s,{"data-testid":r,description:l,isRequired:u,title:p}),t.map((function(e){var n=(0,x.XM)(e);return a.createElement(w.nO,{"data-ga":c("".concat(i,"-").concat(n,"-add")),"data-testid":"".concat(r,"-").concat(n,"Add"),key:n,label:1===t.length?"Add":"Add ".concat(n),onClick:function(){return function(e){return C((function(t){return O(O({},t),{},(0,f.Z)({},y()("pair_"),{key:"",components:e,value:""}))}))}(e)}})}))),Object.entries(v).map((function(e){var t=(0,E.Z)(e,2),n=t[0],l=t[1],s=l.key,u=l.components,d=l.value,p=(0,E.Z)(u,2),g=p[0],b=p[1],v=(0,x.XM)(u);return a.createElement(o.Flex,{alignItems:"end",key:"".concat(v,"-").concat(n),gap:2},a.createElement(S,{component:g,"data-ga":c("".concat(i,"-").concat(v,"-key")),"data-testid":"".concat(r,"-").concat(v,"Key"),onChange:function(e){return C((function(t){return O(O({},t),{},(0,f.Z)({},n,O(O({},t[n]),{},{key:e})))}))},value:s,placeholder:m,title:"Key"}),a.createElement(S,{component:b,"data-ga":c("".concat(i,"-").concat(v,"-value")),"data-testid":"".concat(r,"-").concat(v,"Value"),onChange:function(e){return C((function(t){return O(O({},t),{},(0,f.Z)({},n,O(O({},t[n]),{},{value:e})))}))},value:d,placeholder:m,title:"Value"}),a.createElement(o.Button,{flavour:"borderless",icon:"trashcan",margin:[0,0,1,0],neutral:!0,onClick:function(){C((function(e){return h()(e,n)}))}}))})))},input:m,select:g},S=function(e){var t=e.component,n=(0,r.Z)(e,P),l=I[t]||I.default;return a.createElement(l,n)}},25185:function(e,t,n){"use strict";n.d(t,{A3:function(){return p},Ce:function(){return i},QD:function(){return g},aN:function(){return f},bb:function(){return m},fb:function(){return E},hz:function(){return d},nO:function(){return u},zT:function(){return s}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),a=n(60677),l=n(57509);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var i=(0,a.default)(l.Flex).attrs({alignItems:"center",color:"text",gap:1,hoverColor:"text"}).withConfig({displayName:"styled__AnchorComponent",componentId:"sc-wc4x41-0"})(["&,&:hover{text-decoration:none;}"]),s=(0,a.default)(l.Icon).attrs({height:"130px",width:"130px"}).withConfig({displayName:"styled__BlurredIcon",componentId:"sc-wc4x41-1"})(["filter:blur(70px);position:absolute;left:0;top:0;opacity:0.5;"]),u=(0,a.default)(l.Button).attrs({height:"22px",icon:"plus",padding:[.5,2,.5,1],small:!0,width:"auto"}).withConfig({displayName:"styled__IntegrationAction",componentId:"sc-wc4x41-2"})(["&& > span{font-weight:bold;margin-left:4px;}"]),m=((0,a.default)(l.Flex).withConfig({displayName:"styled__FormRow",componentId:"sc-wc4x41-3"})(["flex-flow:row nowrap;align-items:center;justify-content:space-between;"]),(0,a.default)(l.TextSmall).withConfig({displayName:"styled__LearnMoreTest",componentId:"sc-wc4x41-4"})(["position:relative;"])),d=(0,a.default)(l.ModalContent).attrs({background:"dropdown",height:{base:150,max:150,min:45},overflow:{vertical:"auto"},width:{base:121,max:140,min:70}}).withConfig({displayName:"styled__ModalContent",componentId:"sc-wc4x41-5"})(["box-shadow:0 18px 28px rgb(9 30 66 / 15%),0 0 1px rgb(9 30 66 / 31%);"]),p=(0,a.default)(l.ModalCloseButton).attrs({color:"text",height:"16px",width:"16px"}).withConfig({displayName:"styled__ModalClose",componentId:"sc-wc4x41-6"})(["&:hover{fill:",";}"],(0,l.getColor)("selected")),g=(0,a.default)(l.Flex).attrs((function(e){return c(c({},e.hasBorder?{border:{side:"bottom",color:"disabled"}}:{}),{},{column:!0,padding:[3,4]})})).withConfig({displayName:"styled__ModalSection",componentId:"sc-wc4x41-7"})([""]),f=(0,a.default)(l.Icon).attrs({name:"warning_triangle",height:"18px",width:"18px",color:["yellow","amber"]}).withConfig({displayName:"styled__WarningIcon",componentId:"sc-wc4x41-8"})(["position:absolute;top:0;right:0;z-index:1;"]),E=(0,a.default)(l.Icon).attrs({height:"12px",width:"12px",color:"white"}).withConfig({displayName:"styled__SystemIcon",componentId:"sc-wc4x41-9"})(["position:relative;top:2px;"])},66654:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return vl}});n(92222);var r=n(67294),a=n(89250),l=n(29439),o=n(87462),c=n(4942),i=n(45987),s=(n(66992),n(41539),n(88674),n(78783),n(33948),n(82772),n(47042),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(2145)),u=n(12599),m=n(60677),d=n(57509),p=n(73256),g=n(16645),f=n(7693),E=n(56662),b=(n(21249),n(57640),n(9924),n(33335)),h=n(95383),v=n(74059),y=n(46667),x=n(20031),w=[{id:"name",accessor:"name",header:"Name",cell:function(e){var t=e.getValue,n=e.row.original.isMember,a=t(),l=(0,b.gI)("room:ReadAll");return r.createElement(d.Flex,{alignItems:"center"},l&&n&&r.createElement(x.Z,{margin:[0,1,0,0]}),r.createElement(d.Text,{margin:l&&!n&&[0,0,0,4]},a))}},{id:"nodeCount",accessor:"nodeCount",header:"Nodes",cell:function(e){var t=e.getValue;return"".concat(t()||0)}},{id:"memberCount",accessor:"memberCount",header:function(){return"Users"},cell:function(e){var t=e.getValue;return"".concat(t()||0)}}],C=n(15861),O=n(64687),P=n.n(O),I=(n(26699),n(32023),n(4480)),S=n(33427),T=n(25819),k=n(37518),Z=n(91850),j=n(4474),F=function(){var e=(0,C.Z)(P().mark((function e(t,n){return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(n.map((function(e){return(0,T.GX)(t,e)}))));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),D=n(7724);function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?A(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var M=function(e){var t=e.spaceId,n=e.spaceName,a=e.startIsCreating,o=function(e){return(0,I._8)((function(t){var n=t.snapshot,r=t.set,a=t.reset;return function(){var t=(0,C.Z)(P().mark((function t(o){var c,i,s,u,m,d,p,g,f,E=arguments;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=(c=E.length>1&&void 0!==E[1]?E[1]:{}).onSuccess,s=c.onFail,t.next=3,n.getPromise((0,h.Ad)({id:e,key:"ids"}));case 3:return u=t.sent,m=o.map((function(e){return e.id})),d=u.filter((function(e){return!m.includes(e)})),r((0,h.Ad)({id:e,key:"ids"}),d),t.next=9,Promise.all(d.map((function(e){return n.getPromise((0,k.n2)({id:e}))})));case 9:return p=t.sent,t.prev=10,t.next=13,F(e,m);case 13:r(Z.IV,(0,j.rZ)(p)),o.forEach((function(t){var n=t.id,r=t.slug;a((0,k.n2)({id:n})),a((0,Z.xh)([e,r]))})),i&&i(),o.length>1?(0,S.$T)("Rooms were successfully deleted from Space!"):(g=(0,l.Z)(o,1),f=g[0],(0,S.$T)("Room ".concat(f.name," was successfully deleted!"))),t.next=23;break;case 19:t.prev=19,t.t0=t.catch(10),r((0,h.Ad)({id:e,key:"ids"}),u),s&&s(t.t0);case 23:case"end":return t.stop()}}),t,null,[[10,19]])})));return function(e){return t.apply(this,arguments)}}()}),[e])}(t),c=(0,b.gI)("space:Delete"),i=(0,b.gI)("room:Create"),s=function(e){if(e){var t=Array.isArray(e)?e.map((function(e){return{id:e.id,name:e.name}})):[{id:e.id,name:e.name}];o(t)}},u=function(e,t){var n=t.length;return n?1===n?(0,D.CE)(t[0].name):(0,D.CE)(n):""},m=function(e,t){var a=t.length;if(!a)return"";var l=N(N({},1===a?{name:t[0].name}:{roomsLength:a}),{},{spaceName:n});return r.createElement(D.M5,l)},d=(0,r.useMemo)((function(){return{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){return r.createElement(D.M5,{name:e.name,spaceName:n})},confirmationTitle:function(e){return(0,D.R4)(e.name)},dataGa:function(e){var t=e.slug;return"manage-rooms::click-delete::".concat(t)},declineLabel:"Cancel",handleAction:s,isDisabled:function(e){return e.untouchable||!c},tooltipText:"Delete room"}}}),[c]);return{bulkActions:(0,r.useMemo)((function(){return{addEntry:{dataGa:"manage-rooms::click::add-room",handleAction:a,isDisabled:!i,tooltipText:"Create room"},delete:{confirmationMessage:m,confirmationTitle:u,confirmLabel:"Yes, delete",dataGa:"manage-rooms::delete-bulk",declineLabel:"Cancel",handleAction:s,isDisabled:!c,tooltipText:"Delete rooms"}}}),[i,c,m,u]),rowActions:d}};function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var B=function(){var e=(0,h.J7)(),t=(0,b.gI)("room:Delete"),n=e.map((function(e){return R(R({},e),{},{disabled:e.untouchable||!t})})),o=(0,r.useState)(""),c=(0,l.Z)(o,2),i=c[0],s=c[1],u=(0,v.OS)("name"),m=(0,v.OS)("id"),d=(0,y.Z)(),p=(0,l.Z)(d,4),g=p[0],f=p[2],E=p[3],x=(0,r.useState)([]),C=(0,l.Z)(x,2)[1],O=M({startIsCreating:f,spaceId:m,spaceName:u}),P=O.bulkActions,I=O.rowActions,S=(0,a.TH)().pathname,T=(0,a.s0)(),k=(0,r.useCallback)((function(e){var t=e.data.slug;T("".concat(S,"/").concat(t))}),[S,T]);return{roomList:n,globalFilter:i,spaceName:u,spaceId:m,isCreating:g,rowActions:I,bulkActions:P,columns:w,startIsCreating:f,stopIsCreating:E,setGlobalFilter:s,onRowSelected:C,onClickRow:k,dataGa:"manage-rooms",canDeleteRoom:t}},_=function(e){var t=B(),n=t.roomList,a=t.spaceName,l=t.isCreating,c=t.columns,i=t.setGlobalFilter,s=t.stopIsCreating,u=t.onRowSelected,m=t.rowActions,p=t.bulkActions,g=t.onClickRow,f=t.dataGa;t.canDeleteRoom;return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden",gap:3},e),r.createElement(d.H3,null,"Rooms of ",a),r.createElement(d.NetdataTable,{onGlobalSearchChange:i,onRowSelected:u,onClickRow:g,enableSorting:!0,dataColumns:c,enableSelection:!0,data:n,bulkActions:p,rowActions:m,dataGa:f,testPrefixCallback:function(e){return e.name}})),l&&r.createElement(E.U,{onClose:s}))},U=(n(74916),n(64765),n(41817),n(97323)),V=n(41379),H=n(39904),W=n(2509),G=n(17563),z=n(96929),Y=n(97945);function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Q=function(){var e=(0,z.zN)();return{nodes:(0,Y.Ne)(e).map((function(e){return K(K({},e),{},{disabled:e.hasAccessibleData})}))||[],nodeIds:e}},X=n(18129),$=["roomUntouchable"],J=(0,r.memo)((function(e){var t=e.roomUntouchable,n=(0,i.Z)(e,$),a=Q({roomUntouchable:t}),l=a.nodes,c=a.nodeIds;return r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden",gap:3},n),r.createElement(d.H3,null,"Nodes in this room (",c.length,") "),r.createElement(X.Z,{showClaimNodeOnEmptySpace:!0,enableSelection:!0,customNodes:l,roomUntouchable:t}))})),ee=n(92903),te=n(1229),ne=n(6557),re=n.n(ne),ae=n(91966),le=n.n(ae),oe=n(94666),ce=n(34912),ie=n(31203),se=[{id:"user",accessorKey:"user",header:"Name",cell:function(e){var t=e.cell.row.original,n=t.avatarURL,a=t.name;return r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(ie.Z,{src:n,title:a}),r.createElement(d.TextSmall,null,a))}},{id:"email",accessorKey:"email",header:"Email",cell:function(e){var t=e.getValue;return r.createElement(d.TextSmall,null,t())}}],ue=[{id:"user",desc:!1}],me=function(e){var t=e.setSelected,n=(0,oe.H4)(),a=(0,te.e1)(),l=(0,r.useMemo)((function(){return le()(n,a)}),[n,a]),o=(0,r.useCallback)((function(e){t(e.map((function(e){return e.id})))}),[]),c=(0,ce.Vr)(l);return r.createElement(d.Flex,{alignItems:"start",padding:[1],overflow:{horizontal:"hidden",vertical:"auto"}},r.createElement(d.NetdataTable,{dataColumns:se,data:c,autoResetSelectedRows:!0,sortableBy:ue,onGlobalSearchChange:re(),onRowSelected:o,enableSelection:!0,enableSorting:!0}))},de=function(e){var t=e.onAdd,n=e.onClose,a=e.selected,l=e.error,o=e.name;return r.createElement(d.Flex,{alignItems:"center",justifyContent:"between"},l?r.createElement(d.Text,{color:"error"},"Select at least 1 user to add to ",o):r.createElement("div",null),r.createElement(d.Flex,{gap:2},r.createElement(d.Button,{neutral:!0,flavour:"hollow",onClick:n,label:"Cancel"}),r.createElement(d.Button,{disabled:!a.length,label:"Add ".concat(a.length," members"),onClick:t})))},pe=n(87181),ge=n(86414),fe=n(36925),Ee=n(35838),be=n(74855),he=n(52631),ve=n(93017),ye=n(8048),xe=n(91008),we=n(46475),Ce=function(e){var t=e.email;return(0,fe.vV)(t)},Oe={header:"Invitations",text:"Invitations successfully sent!"},Pe=function(e){var t=(0,v.OS)(),n=t.id,a=t.slug,c=(0,k.UL)(),i=(0,k.tE)(c,"name"),s=(0,r.useState)([]),u=(0,l.Z)(s,2),m=u[0],p=u[1],g=(0,Ee.E)(n),f=(0,l.Z)(g,4),E=f[2],h=f[3],y=(0,ve.Z)(),x=(0,l.Z)(y,2)[1],w=(0,r.useState)(),C=(0,l.Z)(w,2),O=C[0],P=C[1],I=(0,r.useState)(),S=(0,l.Z)(I,2),T=S[0],Z=S[1],j=function(e){var t=e||Oe,n=t.header,r=t.text,a=(0,be.sc)({header:n,text:r,success:!0});he.Z.success(a,{context:"manageInvitations"}),p([]),P(Math.random())},F=(0,r.useCallback)((function(){var e=m.filter(Ce).map((function(e){return{email:e.email,name:e.name,role:T,roomIDs:[c]}})),t="".concat(window.location.origin,"/spaces/").concat(a,"/join-space");E(e,t,{onSuccess:j,onError:x})}),[m,c,T]),D=(0,b.QB)();return r.createElement(d.Flex,(0,o.Z)({column:!0},e),r.createElement(d.H4,null,"Send invitations to ",i," room"),r.createElement(pe.ne,null,"TIP: You can send more invitations at once, separate each with a comma."),r.createElement(ge.m,{key:O,invitations:m,setInvitations:p}),r.createElement(d.H5,{margin:[4,0,0]},"Role"),r.createElement(pe.ne,null,"Choose a role for invited user."," ",r.createElement(xe.Z,{href:we.R,target:"_blank",rel:"noopener noreferrer",Component:d.TextSmall},"Learn more")),r.createElement(ye.Z,{availableRoles:D,dataGA:"invite-to-room",dataTestId:"invite-selectRole",onChange:function(e){Z(e.target.value)},value:T}),r.createElement(d.Box,{alignSelf:"end",margin:[4,0,0]},r.createElement(d.Button,{label:"Send",onClick:F,disabled:0===m.length||!T,flavour:"hollow",isLoading:h})))},Ie=function(e){var t=e.onClose,n=e.room,a=(0,r.useState)([]),o=(0,l.Z)(a,2),c=o[0],i=o[1],s=(0,r.useState)(!1),u=(0,l.Z)(s,2),m=u[0],p=u[1],E=(0,te.r3)(n.spaceId,n.id),b=(0,r.useCallback)((function(){if(!c.length)return p(!0);p(!1),E(c),t()}),[c,E]);return r.createElement(g.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},r.createElement(f.x,{onClose:t,isSubmodal:!0,title:r.createElement(r.Fragment,null,"Manage room",r.createElement(d.TextBig,{color:"textLite"},"\xa0/ Add Users"))}),r.createElement(ee.B,null,"Add users to room\xa0",n.name),r.createElement(g.TZ,null,r.createElement(Pe,{margin:[0,0,4]}),r.createElement(d.Flex,{column:!0,flex:!0,overflow:"hidden",padding:[0,0,2,0]},r.createElement(me,{setSelected:i})),r.createElement(de,{onClose:t,onAdd:b,selected:c,error:m,name:n.name})))},Se=n(46322),Te=n(13477),ke=function(e){return"Remove ".concat(e)},Ze=function(e){var t,n=e.name,r=e.usersLength;return r?1===r&&n?ke(n):"Remove ".concat(t=r," ").concat(1===t?"user":"users"):""},je=function(e){var t=e.name,n=e.roomName;return r.createElement(r.Fragment,null,"You are about to remove ",r.createElement("strong",null,t)," from room ",r.createElement("strong",null,n),".",r.createElement("br",null),"Are you sure you want to continue?")},Fe=function(e){var t=e.roomName,n=e.usersLength,a="".concat(n,1===n?" user":" users");return r.createElement(r.Fragment,null,"You are about to remove ",r.createElement("strong",null,a)," from room ",r.createElement("strong",null,t),".",r.createElement("br",null),"Are you sure you want to continue?")},De=function(e){var t=e.name,n=e.roomName,a=e.usersLength;return a?1===a&&t?r.createElement(je,{name:t,roomName:n}):r.createElement(Fe,{roomName:n,usersLength:a}):""},Ae=function(e){var t=e.spaceId,n=e.roomId,a=e.startIsInviting,l=(0,te.GA)(t,n),o=(0,k.Hm)("name"),c=function(e){if(e){var t=Array.isArray(e)?e.map((function(e){return e.user.id})):[null===e||void 0===e?void 0:e.user.id];l(t)}};return{rowActions:(0,r.useMemo)((function(){return{remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e){return r.createElement(je,{name:e.name,roomName:o})},confirmationTitle:function(e){return ke(e.name)},declineLabel:"Cancel",disabledTooltipText:"Remove is disabled",handleAction:c,isDisabled:function(e){return e.disabled},tooltipText:"Remove user from room"}}}),[ke,c,je,o]),bulkActions:(0,r.useMemo)((function(){return{addEntry:{handleAction:a,tooltipText:"Invite users"},remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e,t){return r.createElement(De,{name:t[0].name,roomName:o,usersLength:t.length})},confirmationTitle:function(e,t){return Ze({name:t[0].name,usersLength:t.length})},declineLabel:"Cancel",disabledTooltipText:"Remove is disabled",handleAction:c,tooltipText:"Remove users from room"}}}),[c,De,o,a,Ze])}},Ne=function(e){var t=e.untouchable,n=(0,r.useMemo)((function(){return[{id:"email",accessor:"email",header:"Email",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"name",accessor:"name",header:"Name",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"user",accessor:"user",header:"Users",cell:function(e){var t=(0,e.getValue)(),n=t.name,a=t.avatarURL,l=t.email;return r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(ie.Z,{src:a,title:"".concat(n," - ").concat(l||"email not set")}),r.createElement(d.TextSmall,null,n))}}]}),[]),a=(0,te.lA)(),o=(0,Te.Iy)("id"),c=(0,b.gI)("space:RemoveUser"),i=(0,r.useState)([]),s=(0,l.Z)(i,2),u=s[0],m=s[1],p=(0,r.useState)(""),g=(0,l.Z)(p,2),f=g[0],E=g[1],h=(0,y.Z)(),x=(0,l.Z)(h,4),w=x[0],C=x[2],O=x[3],P=(0,v.OS)("id"),I=(0,k.UL)(),S=Ae({selectedRows:u,spaceId:P,roomId:I,startIsInviting:C}),T=S.rowActions,Z=S.bulkActions;return{columns:n,data:(0,r.useMemo)((function(){return(0,Se.k)({data:a,currentUserId:o,canRemoveUser:c,untouchable:t})}),[a]),columnVisibility:{email:!1,name:!1},members:a,rowActions:T,bulkActions:Z,isInviting:w,globalFilter:f,stopIsInviting:O,onRowSelected:m,setGlobalFilter:E,canRemoveUser:c}},Me=["room"],Le=function(e){var t=e.room,n=(0,i.Z)(e,Me),a=t.untouchable,l=Ne({untouchable:a}),c=l.columns,s=l.data,u=l.columnVisibility,m=l.members,p=l.rowActions,g=l.bulkActions,f=l.isInviting,E=l.stopIsInviting,b=l.onRowSelected,h=l.setGlobalFilter;l.canRemoveUser;return r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden",gap:3},n),r.createElement(d.H3,null,"Users in this room (",m.length,")"),r.createElement(d.NetdataTable,{enableSelection:!0,enableSorting:!0,columnVisibility:u,data:s,dataColumns:c,rowActions:p,bulkActions:g,onRowSelected:b,onGlobalSearchChange:h,testPrefixCallback:function(e){return e.name}}),f&&r.createElement(Ie,{onClose:E,room:t}))},Re={room:0,nodes:1,users:2},Be=(0,m.default)(d.Box).attrs({height:"100%",padding:[4,0]}).withConfig({displayName:"manageRoomModal__TabContent",componentId:"sc-lrxs0y-0"})([""]),_e=function(){var e=(0,a.s0)(),t=(0,v.th)(),n=(0,a.UO)(),o=n.roomSlug,c=n.spaceSlug,i=n.settingsTab,s=(0,k.HM)(t,o);(0,V.Z)({spaceId:t,id:s,polling:!1}),(0,H.Z)(t,s);var m=(0,b.gI)("room:ReadUsers"),p=(0,k.tE)(s),g=(0,r.useState)(p.name),f=(0,l.Z)(g,2),E=f[0],h=f[1],y=(0,a.TH)().search,x=G.parse(y).tab,w=Re[void 0===x?"room":x],C=(0,r.useState)(w),O=(0,l.Z)(C,2),P=O[0],I=O[1],S=(0,d.useInputValue)({maxChars:255,value:p.description}),T=(0,l.Z)(S,3),Z=T[0],j=T[1],F=T[2],D=(0,r.useCallback)((function(){e((0,u.Gn)(W.Sr,{spaceSlug:c,settingsTab:i}))}),[c,i]),A=(0,k.s)(p.id,{shouldPersist:!0,onSuccess:D}),N=(0,r.useCallback)((function(){return A({name:E,description:Z})}),[E,Z,A]);return r.createElement(d.Flex,{column:!0,justifyContent:"between",overflow:"hidden","data-testid":"manageRoom"},r.createElement(d.Flex,{column:!0,gap:4,height:"100%"},r.createElement(d.Tabs,{"data-testid":"manageRoom-tabs",selected:P,onChange:I,TabContent:Be,flex:!0,height:"100%"},r.createElement(d.Tab,{"data-testid":"manageRoom-roomTab",label:r.createElement(d.H5,null,"Room"),height:"100%"},r.createElement(U.Q,{roomName:E,setRoomName:h,roomDescription:Z,setRoomDescription:j,charsDescIndicator:F,"data-testid":"manageRoom-roomTabContent",id:p.id,navigateToParent:D,onSaveClick:N})),r.createElement(d.Tab,{"data-testid":"manageRoom-nodesTab",label:r.createElement(d.H5,null,"Nodes")},r.createElement(J,{roomUntouchable:p.untouchable,"data-testid":"manageRoom-nodesTabContent"})),m&&r.createElement(d.Tab,{"data-testid":"manageRoom-usersTab",label:r.createElement(d.H5,null,"Users")},r.createElement(Le,{"data-testid":"manageRoom-usersTabContent",room:p})))),P===Re.room&&r.createElement(d.Flex,{justifyContent:"end"}))},Ue=n(3975),Ve=function(e){var t=e.children;return(0,Ue.QF)(),t},He=function(e){var t=e.children;return(0,k.Hm)().loaded?t:null},We=function(){return r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/",element:r.createElement(_,null)}),r.createElement(a.AW,{path:":roomSlug",element:r.createElement(Ve,null,r.createElement(He,null,r.createElement(_e,null)))}))},Ge=n(18663),ze=n(64637),Ye=n(82351),qe=[{id:"email",accessor:"email",header:"Email",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"name",accessor:"name",header:"Name",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"user",accessor:"user",width:300,header:"Users",cell:function(e){var t=(0,e.getValue)(),n=t.name,a=t.avatarURL,l=t.email;return r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(ie.Z,{src:a,title:"".concat(n," - ").concat(l||"email not set")}),r.createElement(d.TextSmall,null,n))}},{id:"type",accessor:"type",width:100,header:"Role",cell:function(e){var t=e.getValue,n=e.row.original.user.deactivated;return r.createElement(d.Flex,{alignItems:"center",gap:1},r.createElement(d.TextSmall,{strong:!0},(0,ze.fm)(t())),n&&r.createElement(Ye.Z,{content:"This user's role doesn't have permission to access any information on the Space. Please review user's role or space's plan."},r.createElement(d.Icon,{name:"warning_triangle",height:"18px",width:"18px",color:["yellow","amber"]})))}}],Ke=(n(85827),n(25387),n(72608),n(274)),Qe=["role"],Xe=["id"];function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$e(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var et=function(){var e=(0,C.Z)(P().mark((function e(t,n,r){return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(n.map(function(){var e=(0,C.Z)(P().mark((function e(n){return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,Ke.lh)(t,n,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())));case 1:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),tt="change-user-role",nt="changeUserRole",rt=function(e){var t=e.handleAction,n=e.ids,a=e.onClose,o=(0,oe.kf)(n),c=1===o.length?o[0]:null,i=(0,b.QB)(),s=(0,r.useState)(c),u=(0,l.Z)(s,2),m=u[0],p=u[1];return r.createElement(d.ConfirmationDialog,{confirmLabel:"Save","data-ga":tt,"data-testid":nt,handleConfirm:function(){t(m),a()},handleDecline:a,isConfirmDisabled:!m,isConfirmPositive:!0,message:r.createElement(d.Flex,{gap:2,column:!0},r.createElement(d.TextSmall,null,"Learn more about Netdata role-based access model on"," ",r.createElement(xe.Z,{href:we.R,target:"_blank",rel:"noopener noreferrer",Component:d.TextSmall},"our documentation")),r.createElement(ye.Z,{availableRoles:i,dataGA:tt,dataTestId:nt,onChange:function(e){p(e.target.value)},value:m})),title:"Change roles"})},at=["data"],lt=["data"],ot=function(e){var t=e.spaceId,n=e.startIsInviting,a=function(e){return(0,I._8)((function(t){var n=t.snapshot,r=t.set;return function(){var t=(0,C.Z)(P().mark((function t(a,l){var o,c,i,s;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=l.onSuccess,c=l.onError,t.next=3,n.getPromise((0,oe.WA)({id:e,key:"ids"}));case 3:return i=t.sent,s=i.filter((function(e){return!e.includes(a)})),r((0,oe.WA)({id:e,key:"ids"}),s),t.prev=6,t.next=9,(0,Ke.Sz)(e,a);case 9:o&&o(),t.next=16;break;case 12:t.prev=12,t.t0=t.catch(6),r((0,oe.WA)({id:e,key:"ids"}),i),c&&c();case 16:case"end":return t.stop()}}),t,null,[[6,12]])})));return function(e,n){return t.apply(this,arguments)}}()}),[e])}(t),l=function(e){return(0,I._8)((function(t){var n=t.snapshot,r=t.set;return function(){var t=(0,C.Z)(P().mark((function t(a,l){var o,c,s,u,m,d,p,g=arguments;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return c=(o=g.length>2&&void 0!==g[2]?g[2]:{}).onSuccess,s=o.onError,t.next=3,n.getPromise((0,ce.W3)(a));case 3:return u=t.sent,t.next=6,Promise.all(a.map(function(){var t=(0,C.Z)(P().mark((function t(r){var a;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.getPromise((0,oe.ZN)({id:r,spaceId:e}));case 2:return a=t.sent,t.abrupt("return",{mId:r,role:a});case 4:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 6:return m=t.sent,d=l.role,p=(0,i.Z)(l,Qe),a.forEach((function(e){r((0,ce.mX)({id:e}),(function(e){return Je(Je({},e),p)}))})),d&&a.forEach((function(t){r((0,oe.ZN)({id:t,spaceId:e}),d)})),t.prev=10,t.next=13,et(e,a,l);case 13:c&&c(),t.next=21;break;case 16:t.prev=16,t.t0=t.catch(10),u.forEach((function(e){var t=e.id,n=(0,i.Z)(e,Xe);return r((0,ce.mX)({id:t}),Je({id:t},n))})),d&&m.forEach((function(t){var n=t.mId,a=t.role;return r((0,oe.ZN)({id:n,spaceId:e}),a)})),s&&s();case 21:case"end":return t.stop()}}),t,null,[[10,16]])})));return function(e,n){return t.apply(this,arguments)}}()}),[e])}(t),c=(0,b.gI)("space:InviteUser"),s=(0,r.useCallback)((function(e){var t=e.role,n=e.members;l(n,{role:t})}),[]),u=function(e){return function(t){if(e){var n=Array.isArray(e)?e.map((function(e){return e.user.id})):[null===e||void 0===e?void 0:e.user.id];s({role:t,members:n})}}},m=function(e){if(e){var t=Array.isArray(e)?e.map((function(e){return e.user.id})):[null===e||void 0===e?void 0:e.user.id];a(t,{})}},d=(0,r.useCallback)((function(){return"Delete User"}),[]),p=(0,r.useCallback)((function(e){return r.createElement(r.Fragment,null,"You are about to delete ",r.createElement("strong",null,e.name),".",r.createElement("br",null),"Are you sure you want to continue?")}),[]),g=(0,r.useCallback)((function(e,t){var n=t.length;return n?1===n?"Delete User":"Delete Users":""}),[]),f=(0,r.useCallback)((function(e,t){var n=t.length;return n?r.createElement(r.Fragment,null,"You are about to delete"," ",r.createElement("strong",null,1===n?t[0].name:"".concat(t.length," users")),".",r.createElement("br",null),"Are you sure you want to continue?"):""}),[]);return{rowActions:(0,r.useMemo)((function(){return{userSettings:{CustomUIAction:function(e){var t=e.data,n=(0,i.Z)(e,at);return r.createElement(rt,(0,o.Z)({ids:[t.user.id]},n))},handleAction:u,tooltipText:"Change Role",isDisabled:function(e){return e.disabled},disabledTooltipText:"Changing roles is disabled"},delete:{handleAction:m,confirmationTitle:d,confirmationMessage:p,isDisabled:function(e){return e.disabled},disabledTooltipText:"Delete is disabled"}}}),[]),bulkActions:(0,r.useMemo)((function(){return{addEntry:{handleAction:n,tooltipText:"Invite user",isDisabled:function(){return!c},disabledTooltipText:"Invitations are disabled"},userSettings:{CustomUIAction:function(e){var t=e.data,n=(0,i.Z)(e,lt);return r.createElement(rt,(0,o.Z)({ids:t.map((function(e){return e.user.id}))},n))},handleAction:u,tooltipText:"Change Roles",disabledTooltipText:"Changing roles is disabled"},delete:{handleAction:m,confirmationTitle:g,confirmationMessage:f,disabledTooltipText:"Delete is disabled"}}}),[c,g,f])}},ct=function(){var e=(0,v.th)(),t=(0,v.vu)(e,"name"),n=(0,oe.Qk)(),a=(0,Te.Iy)("id"),o=(0,y.Z)(),c=(0,l.Z)(o,4),i=c[0],s=c[2],u=c[3],m=(0,r.useState)(""),d=(0,l.Z)(m,2),p=d[0],g=d[1],f=(0,r.useState)([]),E=(0,l.Z)(f,2),h=E[0],x=E[1],w=ot({selectedRows:h,spaceId:e,startIsInviting:s}),C=w.rowActions,O=w.bulkActions,P=(0,b.gI)("space:RemoveUser"),I=(0,b.gI)("user:ChangeRoles"),S=(0,b.M2)(),T=P||I,k=(0,r.useMemo)((function(){return function(e){var t=e.fromRolePermissions,n=e.userList,r=e.canModifyUser,a=e.currentUserId;return n.reduce((function(e,n){var l=a===(null===n||void 0===n?void 0:n.id),o=t.includes(n.role);return e.push({name:n.name,email:n.email,user:{avatarURL:n.avatarURL,deactivated:n.deactivated,name:n.name,email:n.email,id:n.id},type:n.role,disabled:!o||!r||l}),e}),[])}({userList:n,currentUserId:a,canModifyUser:T,fromRolePermissions:S})}),[n]);return{columns:qe,spaceName:t,members:n,currentUserId:a,data:k,isInviting:i,globalFilter:p,rowActions:C,bulkActions:O,columnVisibility:{email:!1,name:!1},onRowSelected:x,setGlobalFilter:g,startIsInviting:s,stopIsInviting:u,canModifyUser:T}},it=function(e){var t=ct(),n=t.columns,a=t.spaceName,l=t.data,c=t.isInviting,i=t.rowActions,s=t.bulkActions,u=t.columnVisibility,m=t.stopIsInviting,p=t.setGlobalFilter,g=t.onRowSelected;return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden"},e),r.createElement(d.H3,null,"Members of ",a),r.createElement(d.TextSmall,{margin:[1,0,3]},"Learn more about Netdata role-based access model on"," ",r.createElement(xe.Z,{href:we.R,target:"_blank",rel:"noopener noreferrer",Component:d.TextSmall},"our documentation")),r.createElement(d.NetdataTable,{onGlobalSearchChange:p,data:l,dataColumns:n,enableSorting:!0,enableSelection:!0,onRowSelected:g,bulkActions:s,rowActions:i,columnVisibility:u,testPrefixCallback:function(e){return e.name}})),c&&r.createElement(Ge.l,{onClose:m,isSubmodal:!0}))},st=n(33582),ut=function(){var e=(0,k.Jb)().id,t=void 0===e?"":e,n=(0,z.X7)(t,"ids"),r=(0,z.X7)(t,"loaded"),a=(0,Y.Ne)(n),o=(0,v.th)(),c=(0,y.Z)(),i=(0,l.Z)(c,4),s=i[0],u=i[3];return(0,V.Z)({id:t,spaceId:o,polling:!0}),{areDefaultRoomNodesLoaded:r,nodes:a,isClaimNodeModalOpen:s,closeClaimNodeModal:u}},mt=(0,r.memo)((function(e){var t=(0,v.th)(),n=(0,v.OS)("name"),a=ut().nodes;(0,st.Z)(t);var l="Connect Nodes to ".concat(n);return r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":"manageClaimedNodes",height:"100%",overflow:"hidden",gap:3},e),r.createElement(d.H3,{"data-testid":"manageClaimedNodes-header"},l),r.createElement(X.Z,{showClaimNodeOnEmptySpace:!0,showClaimModalWithRoomSelection:!0,enableSelection:!0,customNodes:a,isSpace:!0}))})),dt=mt,pt=(n(91058),n(77184)),gt=n(45736),ft=n(3689),Et=function(e){var t=e.name,n=e.spaceName;return r.createElement(r.Fragment,null,"You are about to delete ",r.createElement("strong",null,t)," channel from ",r.createElement("strong",null,n)," space.",r.createElement("br",null),"This cannot be undone. Are you sure you want to continue?")},bt=n(31790),ht=(n(64211),n(41874),n(26833),n(25185)),vt=["integration","testId"],yt=["testId","tooltipContent"],xt=["data-testid","enabled","id","integration","isAvailable","name","spaceId","tooltipContent"];function wt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ct(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ot=function(e){var t=e.integration,n=e.testId,a=(0,i.Z)(e,vt),l=a.checked?"disable":"enable";return r.createElement(d.Toggle,(0,o.Z)({colored:!0,"data-testid":"".concat(n,"-toggle"),"data-ga":"manage-channels::toggle-".concat(t,"-").concat(l,"::notifications-tab")},a))},Pt=function(e){var t=e.testId,n=e.tooltipContent,a=void 0===n?"plan":n,l=(0,i.Z)(e,yt);return l.disabled?r.createElement(Ye.Z,{align:"top",content:ft.rc[a],"data-testid":"".concat(t,"-warning"),plain:!0},r.createElement(d.Flex,{padding:[2,2,0,0],position:"relative"},r.createElement(ht.aN,{"data-testid":"".concat(t,"-warningIcon")}),r.createElement(Ot,(0,o.Z)({testId:t},l)))):r.createElement(Ot,(0,o.Z)({testId:t},l))},It=function(e){var t=e["data-testid"],n=void 0===t?"cellName":t,a=e.enabled,l=e.id,c=e.integration,s=e.isAvailable,u=e.name,m=e.spaceId,p=e.tooltipContent,g=(0,i.Z)(e,xt),f=(0,gt.pV)(m,"channels"),E=(0,gt.rz)(m,"channels");return r.createElement(d.Flex,(0,o.Z)({alignItems:"center","data-testid":n,gap:4},g),r.createElement(Pt,{checked:a,disabled:!s,integration:c,onChange:function(e){var t=e.target.checked;E(f.map((function(e){return e.id===l?Ct(Ct({},e),{},{enabled:t}):e}))),(0,pt.eZ)(m,l,t)},testId:n,tooltipContent:p}),r.createElement(d.Text,{"data-testid":"".concat(n,"-label")},u))},St=["data-testid","integration","kind","kindLabel"],Tt=function(e){var t=e["data-testid"],n=void 0===t?"cellService":t,a=e.integration,l=e.kind,c=e.kindLabel,s=(0,i.Z)(e,St),u=ft.aU[a]||{};return r.createElement(d.Flex,(0,o.Z)({alignItems:"center","data-testid":n,gap:2,justifyContent:"between",width:"100%"},s),r.createElement(d.Flex,{alignItems:"center","data-testid":"".concat(n,"-integration"),gap:2},r.createElement(d.Icon,(0,o.Z)({"data-testid":"".concat(n,"-icon")},u)),r.createElement(d.Text,{"data-testid":"".concat(n,"-label")},a)),r.createElement(Ye.Z,{content:c,"data-testid":"".concat(n,"-kind"),plain:!0},r.createElement(d.Icon,{color:"textLite",height:"16px",name:ft.XK[l].icon,width:"16px"})))},kt=function(e){var t=e.canManageChannels,n=e.roomOptions,a=e.spaceId;return[{accessor:"name",cell:function(e){var n=e.getValue,l=e.row;return r.createElement(It,{enabled:l.original.enabled,id:l.original.id,integration:l.original.integration,isAvailable:t&&l.original.available,name:n(),spaceId:a,tooltipContent:t?"plan":"role"})},header:"Name",id:"name"},{accessor:"integration",cell:function(e){var t=e.getValue,n=e.row;return r.createElement(Tt,{integration:t(),kind:n.original.kind,kindLabel:n.original.kindLabel})},enableColumnFilter:!0,filterFn:function(e,t,n){var r=e.original.integration;return n.length<1||n.some((function(e){var t=e.value;return""===t||t===r}))},header:"Service",id:"integration",meta:{filter:{component:"select",isMulti:!0,options:Object.keys(ft.aU).map((function(e){return{label:e,value:e}})),tiny:!0,"data-ga":"manage-integrations::select-service::notification-integrations-tab"},tooltip:r.createElement(d.Flex,{column:!0,width:{max:"200px"},gap:2},r.createElement(d.TextMicro,{color:"white"},"Services are distinguished in two categories."),r.createElement(d.TextMicro,{color:"white"},r.createElement(ht.fb,{name:ft.XK.PERSONAL.icon})," ",r.createElement(d.TextMicro,{color:"white",strong:!0},"Personal:")," ",ft.XK.PERSONAL.tooltip),r.createElement(d.TextMicro,{color:"white"},r.createElement(ht.fb,{name:ft.XK.SYSTEM.icon})," ",r.createElement(d.TextMicro,{color:"white",strong:!0},"System:")," ",ft.XK.SYSTEM.tooltip))}},{accessor:"notificationLabel",cell:function(e){var t=e.getValue;return r.createElement(d.Text,{"data-testid":"channelNotificationsCell"},t())},enableColumnFilter:!0,filterFn:function(e,t,n){var r=e.original.notificationLabel;return n.length<1||n.some((function(e){var t=e.label;return""===t||t===r}))},header:"Notifications",id:"notificationLabel",meta:{filter:{component:"select",isMulti:!0,options:Object.values(ft.uK),tiny:!0,"data-ga":"manage-integrations::select-notification::notification-integrations-tab"}}},{accessor:"rooms",cell:function(e){var t,a=e.getValue,l=e.row,o={"data-testid":"channelRoomsCell"};if(l.original.internal)return r.createElement(d.Text,o,ft.mN.label);if(!(l.original.rooms||null!==(t=l.original.rooms)&&void 0!==t&&t.length))return r.createElement(d.Text,o,ft.k_.label);var c=(0,bt.ae)({roomIds:a(),roomOptions:n});return r.createElement(d.Text,{"data-testid":"channelRoomsCell"},c)},enableColumnFilter:!0,filterFn:function(e,t,n){return n.length<1||n.some((function(t){var n=t.label,r=t.value;if(e.original.internal)return n===ft.mN.label;var a=e.original.rooms||[];return a.length?a.includes(r):n===ft.k_.label}))},header:"Rooms",id:"rooms",meta:{filter:{component:"select",isMulti:!0,options:n,tiny:!0,"data-ga":"manage-integrations::select-room::notification-integrations-tab"}}}]},Zt=n(45939),jt=n(5429),Ft=n(93742);function Dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function At(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Nt=function(e,t){var n=(0,gt.Cz)(t),r=(0,Ft.Z)({all:!0});(0,jt.Z)((function(){return{enabled:!!t,fetch:function(){return(0,pt.$3)(e,t)},onFail:function(e){return n(At(At({},Zt.C),{},{error:e.message}))},onSettle:function(){return n({loading:!1,loaded:!0})},onSuccess:function(e){return n(At(At(At({},Zt.C),e.rooms?{roomSelections:r.filter((function(t){var n=t.value;return e.rooms.includes(n)}))}:{}),e))}}}),[e,t])},Mt=n(26913);function Lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Bt=function(){var e=(0,a.s0)(),t=(0,b.gI)("channel:Manage"),n=(0,v.th)(),o=(0,v.OS)("name"),c=(0,v.uk)(),i=(0,ve.Z)(),s=(0,l.Z)(i,2),m=s[0],d=s[1],p=(0,r.useState)(""),g=(0,l.Z)(p,2),f=g[0],E=g[1];(0,Mt.Z)(n);var h=(0,gt.pV)(n,"channels"),y=(0,gt.pV)(n,"currentChannelId"),x=(0,gt.rz)(n,"channels"),w=(0,gt.rz)(n,"currentChannelId"),O=(0,Ft.Z)({all:!0,internal:!0}),I=(0,gt.su)(y),S=I.alerts,T=I.name,k=I.rooms,Z=I.secrets;Nt(n,y);var j=(0,r.useCallback)((function(e){w(e)}),[]),F=(0,r.useCallback)(function(){var e=(0,C.Z)(P().mark((function e(t){var r;return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.id,e.prev=1,e.next=4,(0,pt.JV)(n,r);case 4:x(h.filter((function(e){return e.id!==r}))),m({header:"Configuration deleted successfully!"}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),d(e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}(),[h,n]),D=(0,r.useCallback)((function(){e((0,u.Gn)(W.xN,{spaceSlug:c,settingsTab:W.bK,settingsSubTab:W.Q$}))}),[c]),A=(0,r.useMemo)((function(){return{addEntry:Rt({dataGa:"manage-channels::click-add-channel::notifications-tab",flavour:"hollow",handleAction:D,iconColor:"success",label:t?"Add Configuration":"View configurations",small:!0,strong:!0,width:"auto"},t?{}:{icon:""})}}),[t,D]),N=(0,r.useMemo)((function(){return{edit:{dataGa:function(e){var t=e.slug;return"manage-rooms::click-edit::".concat(t)},disabledTooltipText:"Edit is disabled",handleAction:function(e){var t=e.id;j(t)},isDisabled:function(e){var n=e.available,r=e.internal;return!t||!n||r},TooltipComponent:Ye.Z,tooltipText:"Edit setting"},delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){var t=e.name;return r.createElement(Et,{name:t,spaceName:o})},confirmationTitle:function(e){var t=e.name;return(0,bt.D4)(t)},dataGa:function(e){var t=e.slug;return"manage-rooms::click-delete::".concat(t)},declineLabel:"Cancel",handleAction:F,isDisabled:function(e){var n=e.internal;return!t||n},TooltipComponent:Ye.Z,tooltipText:"Delete setting"}}}),[t,F,D]);return{bulkActions:A,channelData:h,currentChannelId:y,columns:kt({canManageChannels:t,roomOptions:O,spaceId:n}),dataGa:"manage-channels",onFilter:function(e,t,n){var r=e.original,a=n.toLowerCase();if(r.name.toLowerCase().includes(a))return!0;if(r.integration.toLowerCase().includes(a))return!0;if(r.notificationLabel.toLowerCase().includes(a))return!0;if(r.internal)return ft.mN.label.toLowerCase().includes(a);var l=r.rooms||[];return l.length?(0,bt.ae)({roomIds:l,roomOptions:O}).toLowerCase().includes(a):ft.k_.label.toLowerCase().includes(a)},onModalClose:function(){x(h.map((function(e){return e.id===y?Rt(Rt({},e),{},{alerts:S,name:T,rooms:k,secrets:Z}):e}))),w("")},rowActions:N,search:f,setSearch:E}},_t=(n(68216),n(79433),n(84580)),Ut=["id","integrationId","onClose"],Vt=["id","getValue","onChange"];function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Gt="modal",zt=function(e){var t=e.id,n=void 0===t?"new":t,c=e.integrationId,s=e.onClose,m=(0,i.Z)(e,Ut),p=(0,gt.su)(n),g=p.alarms,f=p.description,E=p.docsLink,b=p.fields,y=p.integration,x=p.loaded,w=p.name,O=p.required,I=p.rooms,S=p.roomSelections,T=p.secrets,k=function(e){return"manage-".concat(y,"-channel::").concat(e,"::notification-").concat(c?"integrations":"channels","-tab")},Z=(0,a.s0)(),j=(0,ve.Z)(),F=(0,l.Z)(j,2),D=F[0],A=F[1],N=(0,Ft.Z)({all:!0}),M=(0,h.J7)(),L=(0,v.th)(),R=(0,v.uk)(),B=(0,gt.Cz)(n,"alarms"),_=(0,gt.Cz)(n,"name"),U=(0,gt.Cz)(n,"roomSelections"),V=(0,gt.Cz)(n,"secrets"),H=(0,gt.Cz)(n,"rooms"),G=(0,r.useState)({}),z=(0,l.Z)(G,2),Y=z[0],q=z[1];if(!x)return null;var K=Object.keys(Y),Q=O.every((function(e){return(0,bt.xW)(e,T[e],b[e])})),X=!K.length||K.every((function(e){var t=T[e].selection;return Y[e].every((function(n){return(0,bt.xW)(n,T[e][n],b[e].fields[t][n])}))})),$=g&&Q&&X,J=(0,u.Gn)(W.Sr,{spaceSlug:R,settingsTab:W.bK}),ee=function(){var e=(0,C.Z)(P().mark((function e(){var t;return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,t=Wt(Wt(Wt({alarms:g,integrationID:c},w?{name:w}:{}),null!==I&&void 0!==I&&I.length?{Rooms:I}:{}),{},{secrets:T}),"new"!==n){e.next=7;break}return e.next=5,(0,pt.Y0)(L,t);case 5:e.next=9;break;case 7:return e.next=9,(0,pt.IU)(L,n,t);case 9:D({header:"new"===n?"Configuration created successfully!":"Configuration updated successfully!"}),s(),Z(J),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(0),A(e.t0);case 17:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(){return e.apply(this,arguments)}}();return r.createElement(d.Modal,{onEsc:s},r.createElement(ht.hz,{"data-testid":m["data-testid"]||Gt},r.createElement(d.ModalHeader,{border:{side:"bottom",color:"disabled"},column:!0,"data-testid":"".concat(Gt,"-header"),gap:.5,padding:[6,4,3]},r.createElement(d.Flex,{alignItems:"center","data-testid":"".concat(Gt,"-headerMain")},r.createElement(d.Flex,{"data-testid":"".concat(Gt,"-titleContainer"),gap:1},r.createElement(d.Icon,(0,o.Z)({"data-testid":"".concat(Gt,"-titleIcon")},ft.aU[y]||{})),r.createElement(d.H3,{"data-testid":"".concat(Gt,"-title")},y)),s&&r.createElement(ht.A3,{"data-ga":k("close-modal"),"data-testid":"".concat(Gt,"-close"),onClose:s})),r.createElement(d.TextSmall,{as:d.Box,"data-testid":"".concat(Gt,"-description")},f,"\xa0",r.createElement(xe.Z,{Component:d.TextSmall,"data-ga":k("click-docs"),"data-testid":"".concat(Gt,"-docsLink"),href:E,target:"_blank",whiteSpace:"nowrap"},"Learn how to configure it."))),r.createElement(d.ModalBody,{"data-testid":"".concat(Gt,"-body"),overflow:{vertical:"auto"},padding:[0]},r.createElement(ht.QD,{gap:2,"data-testid":"".concat(Gt,"-standardFields"),hasBorder:!0},r.createElement(d.Text,{"data-testid":"".concat(Gt,"-standardFields-header")},"Notification settings"),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(Gt,"-standardFields-body"),gap:3},r.createElement(_t.Z,{component:"input","data-ga":k("configuration-name-input"),"data-testid":"".concat(Gt,"-configurationName"),onChange:_,placeholder:"i.e All alerts from All nodes",title:"Configuration name",value:w}),r.createElement(_t.Z,{component:"select","data-ga":k("rooms-select"),"data-testid":"".concat(Gt,"-rooms"),isMulti:!0,onChange:function(e){var t;if(1!==M.length){if(0===e.length)return H([]),void U([]);if(e.length===M.length||null===(t=e[e.length-1])||void 0===t||!t.value)return H([]),void U([ft.k_]);var n=e.map((function(e){return e.value})).filter(Boolean),r=e.length>1?e.filter((function(e){return e.value})):e;H(n),U(r)}},options:N,placeholder:"Select rooms",title:"Rooms",value:S}),r.createElement(_t.Z,{component:"select","data-ga":k("notification-select"),"data-testid":"".concat(Gt,"-notifications"),isRequired:!0,onChange:function(e){var t=e.value;B(t)},options:Object.values(ft.Nq),placeholder:"Select notifications",title:"Notifications",value:ft.Nq[g]}))),r.createElement(ht.QD,{gap:2,"data-testid":"".concat(Gt,"-dynamicFields"),hasBorder:!0},r.createElement(d.Text,{"data-testid":"".concat(Gt,"-dynamicFields-header")},"Integration configuration"),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(Gt,"-dynamicFields-body"),gap:3},Object.values(b).map((function(e){var t=e.id,n=e.getValue,a=e.onChange,l=(0,i.Z)(e,Vt);return r.createElement(_t.Z,(0,o.Z)({"data-ga":k("".concat(t,"-").concat(l.component)),"data-testid":"".concat(Gt,"-").concat(t),getDataGa:k,key:t,id:t,onChange:null===a||void 0===a?void 0:a({id:t,setRequiredSubsets:q,setSecrets:V}),secrets:T,setSecrets:V,value:null===n||void 0===n?void 0:n({id:t,secrets:T})},l))}))))),r.createElement(ht.QD,{alignItems:"end","data-testid":"".concat(Gt,"-footer"),justifyContent:"center"},r.createElement(d.Button,{"data-ga":k("new"===n?"create-click":"edit-click"),"data-testid":"".concat(Gt,"-confirmButton"),disabled:!$,label:"OK",onClick:ee,textTransform:"uppercase"}))))},Yt=["data-testid"],qt={maxHeight:"none",whiteSpace:"initial"},Kt=function(e){var t=e["data-testid"],n=void 0===t?"channelList":t,a=(0,i.Z)(e,Yt),l=Bt(),c=l.bulkActions,s=l.channelData,u=l.currentChannelId,m=l.columns,p=l.dataGa,g=l.onFilter,f=l.onModalClose,E=l.rowActions,b=l.search,h=l.setSearch;return r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":n,gap:4,height:"100%",margin:[3,0]},a),r.createElement(d.NetdataTable,{bulkActions:c,data:s,dataColumns:m,dataGa:p,globalFilter:b,globalFilterFn:g,onGlobalSearchChange:h,rowActions:E,testPrefixCallback:function(e){return e.name},meta:qt}),!!u&&r.createElement(zt,{"data-testid":"editChannelModal",id:u,onClose:f}))},Qt=n(58591);function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Jt=(0,s.Z)((function(){return n.e(597).then(n.bind(n,95384))}),"SilencingRules"),en={side:"top",type:"solid",size:"1px",color:"border"},tn=function(){var e=(0,Qt.m$)().notificationsActiveTab,t=void 0===e?0:e,n=(0,r.useCallback)((function(e){var t=(0,Qt.m$)();(0,Qt.xs)($t($t({},t),{},{notificationsActiveTab:e}))}),[]);return r.createElement(r.Fragment,null,r.createElement(d.Flex,{padding:[0,0,0,4]},r.createElement(d.H3,null,"Alerts & Notifications")),r.createElement(d.Tabs,{selected:parseInt(t,10),onChange:n,height:"calc(100% - 44px)",margin:[4,0,0,0]},r.createElement(d.Tab,{"data-testid":"spaceSettings-notifications-methods-tab","data-ga":"manage-space::click-tab::notifications-methods-tab",label:r.createElement(d.Text,null,"Notification Methods")},r.createElement(d.Flex,{padding:[2,4],border:en,flex:!0},r.createElement(Kt,null))),r.createElement(d.Tab,{"data-testid":"spaceSettings-notifications-silencing-rules-tab","data-ga":"manage-space::click-tab::notifications-silencing-rules-tab",label:r.createElement(d.Text,null,"Notification Silencing Rules")},r.createElement(d.Flex,{border:en,flex:!0},r.createElement(r.Suspense,null,r.createElement(Jt,null))))))},nn=n(79655),rn=n(27856),an=n(78266),ln=n(37689),on=n(80959),cn=n(27308),sn=["available","classification","data-testid","description","docsLink","fields","id","internal","kind","kindLabel","slug","required","title"];function un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?un(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):un(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var dn=function(e){var t=e.available,n=e.classification,a=e["data-testid"],c=void 0===a?"card":a,s=e.description,u=e.docsLink,m=e.fields,p=e.id,g=e.internal,f=e.kind,E=e.kindLabel,h=e.slug,v=e.required,x=e.title,w=(0,i.Z)(e,sn),C=ft.aU[h]||{},O=(0,gt.h3)("new"),P=(0,gt.Cz)("new"),I=(0,b.gI)("channel:Manage"),S=(0,y.Z)(!1),T=(0,l.Z)(S,4),k=T[0],Z=T[2],j=T[3],F=(0,r.useCallback)((function(){P(mn(mn({},Zt.C),{},{description:s,docsLink:u,fields:m,integration:h,loading:!1,loaded:!0,required:v,secrets:(0,bt.A_)(m,v)})),Z()}),[s,u,m,h,v]);return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({background:"elementBackground",column:!0,"data-testid":c,justifyContent:"between",flex:!1,height:37,padding:[3,2,2,3],margin:[0,0,4,0],position:"relative",overflow:"hidden",round:.5,width:75},w),r.createElement(ht.zT,(0,o.Z)({"data-testid":"".concat(c,"-blurredIcon")},C)),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(c,"-details"),gap:3,margin:[0,0,3,0]},r.createElement(d.Flex,{"data-testid":"".concat(c,"-header"),justifyContent:"between"},r.createElement(d.Flex,{alignItems:"center","data-testid":"".concat(c,"-titleContainer"),gap:1},r.createElement(d.Icon,(0,o.Z)({"data-testid":"".concat(c,"-icon")},C)),r.createElement(d.Text,{"data-testid":"".concat(c,"-title")},x)),!g&&t&&r.createElement(Ye.Z,{align:"bottom",content:I?"":ft.Ue,plain:!0},r.createElement(d.Box,null,r.createElement(ht.nO,{"data-ga":"manage-integration-".concat(h,"::click-add::notification-integrations-tab"),"data-testid":"".concat(c,"-button"),disabled:!I,label:"Add",onClick:F}))),!g&&!t&&r.createElement(cn.Z,{classification:n,"data-ga":"manage-integration-".concat(h,"::click-plan-badge-").concat(n.toLowerCase(),"::notification-integrations-tab")})),r.createElement(d.TextSmall,{color:"textDescription","data-testid":"".concat(c,"-description")},s,u&&r.createElement(r.Fragment,null,"\xa0",r.createElement(xe.Z,{Component:ht.bb,"data-ga":"manage-integration-".concat(h,"::click-docs::notification-integrations-tab"),"data-testid":"".concat(c,"-docsLink"),href:u,target:"_blank",whiteSpace:"nowrap"},"Learn more.")))),r.createElement(Ye.Z,{align:"top",content:ft.XK[f].tooltip,"data-testid":"".concat(c,"-kindContainer"),plain:!0},r.createElement(d.Flex,{alignItems:"end",alignSelf:"end","data-testid":"".concat(c,"-kindContainer"),gap:1},r.createElement(d.Icon,{color:"textLite","data-testid":"".concat(c,"-kindIcon"),height:"16px",name:ft.XK[f].icon,width:"16px"}),r.createElement(d.TextSmall,{color:"textLite","data-testid":"".concat(c,"-kind")},E)))),k&&r.createElement(zt,{"data-testid":"createChannelModal",integrationId:p,onClose:function(){j(),O()}}))},pn=["data-testid","integrations","title"],gn=function(e){var t=e["data-testid"],n=void 0===t?"group":t,a=e.integrations,l=e.title,c=(0,i.Z)(e,pn);return a.length?r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":n,gap:2,position:"relative"},c),r.createElement(d.TextBig,{color:"textDescription","data-testid":"".concat(n,"-title")},l),r.createElement(d.Flex,{flexWrap:!0,"data-testid":"".concat(n,"-integrations"),gap:4},a.map((function(e){return r.createElement(dn,(0,o.Z)({"data-testid":"".concat(e.slug,"Card"),key:e.slug},e))})))):null},fn=n(69414);function En(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?En(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):En(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var hn=function(e){var t=(0,gt.R1)(e);(0,jt.Z)((function(){return{enabled:!!e,fetch:function(){return(0,pt.h3)(e)},onFail:function(e){return t(bn(bn({},fn.E),{},{error:e.message}))},onSettle:function(){return t({loading:!1,loaded:!0})},onSuccess:function(e){t(bn(bn({},fn.E),e))}}}),[e])},vn=["data-testid"],yn=function(e){var t=e["data-testid"],n=void 0===t?"integrations":t,a=(0,i.Z)(e,vn),c=(0,v.th)(),s=(0,v.uk)();hn(c);var m=(0,gt.ry)(c),p=m.available,g=m.error,f=m.loaded,E=m.unavailable,b=(0,r.useState)([]),h=(0,l.Z)(b,2),y=h[0],x=h[1],w=(0,r.useState)([]),C=(0,l.Z)(w,2),O=C[0],P=C[1],I=(0,r.useState)(""),S=(0,l.Z)(I,2),T=S[0],k=S[1];if(!f)return r.createElement(an.Z,{"data-testid":"".concat(n,"-loader"),title:"Loading services..."});if(g)return r.createElement(on.Z,{"data-testid":"".concat(n,"-error"),message:g,title:"Services of ".concat(s," are currently unavailable")});var Z=(0,rn.D)(300,(function(e){var t=e.target.value;k(t),x((0,bt.uf)(p,t)),P((0,bt.uf)(E,t))})),j=(0,u.Gn)(W.Sr,{spaceSlug:s,settingsTab:W.bK});return r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":n},a,{padding:[0,4]}),r.createElement(d.Flex,{border:{side:"bottom",color:"separator"},"data-testid":"".concat(n,"-header"),margin:[0,0,4,0],padding:[0,0,4,0],width:"100%"},r.createElement(xe.Z,{as:nn.rU,Component:ht.Ce,"data-ga":"manage-integrations::click-back::notification-integrations-tab","data-testid":"".concat(n,"-backLink"),to:j},r.createElement(d.Icon,{"data-testid":"".concat(n,"-backIcon"),name:"arrow_left"}),r.createElement(d.H3,{"data-testid":"".concat(n,"-title")},W.fV[W.Q$]))),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(n,"-content"),gap:4},r.createElement(d.Box,{as:ln.Z,"data-ga":"manage-integrations::search::notification-integrations-tab","data-testid":"".concat(n,"-search"),iconLeft:r.createElement(d.Icon,{name:"magnify",color:"textLite"}),onChange:Z,placeholder:"Search service",size:"small",width:{max:49.5}}),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(n,"-groups")},r.createElement(gn,{"data-testid":"integrationGroupAvailable",integrations:T?y:p,title:"Available"}),r.createElement(gn,{"data-testid":"integrationGroupUnavailable",integrations:T?O:E,title:"Unavailable"}))))},xn=function(){return r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/",element:r.createElement(tn,null)}),r.createElement(a.AW,{path:"/".concat(W.Q$),element:r.createElement(yn,null)}))},wn=n(46585),Cn=n(78710),On=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[(0,d.useInputValue)({maxChars:20,value:e.name||""})||{},(0,d.useInputValue)({maxChars:50,value:e.description||""})||{}]},Pn=n(14809),In=n(54131),Sn=n(15418),Tn=["nameInput","descriptionInput"],kn=function(e){var t=e.nameInput,n=e.descriptionInput,a=(0,i.Z)(e,Tn),c=(0,l.Z)(t,4),s=c[0],u=c[1],m=c[2],p=c[3],g=(0,l.Z)(n,4),f=g[0],E=g[1],b=g[2],h=g[3],v=(0,r.useMemo)((function(){return(0,In.x3)(s)}),[s]),y=(0,r.useMemo)((function(){return(0,In.uB)(f)}),[f]);return r.createElement(d.Flex,(0,o.Z)({column:!0},a),r.createElement(Sn.Z,{Component:d.TextInput,permission:"space:UpdateMeta",label:"Name",value:s,onChange:u,error:In.Qj[v],isDirty:p,instantFeedback:"all",fieldIndicator:m,"data-testid":"textInputs-spaceName"}),r.createElement(Sn.Z,{Component:d.TextInput,permission:"space:UpdateMeta",label:"Description",value:f,onChange:E,error:In.Qj[y],isDirty:h,instantFeedback:"all",fieldIndicator:b,"data-testid":"textInputs-spaceDescription"}))},Zn=n(57387),jn=["id"],Fn=function(e){var t=e.id,n=(0,i.Z)(e,jn);return r.createElement(d.Flex,(0,o.Z)({column:!0,gap:1},n),r.createElement(d.Text,{strong:!0},"Space Id"),r.createElement(Zn.ZP,{confirmationText:"Space ID copied to your clipboard."},t))},Dn=n(72671),An=n(20428),Nn=["nameInput","descriptionInput","onClose"],Mn=function(e){var t=e.nameInput,n=e.descriptionInput,a=e.onClose,c=(0,i.Z)(e,Nn),s=(0,v.OS)(),u=(0,An.Z)(s.id),m=(0,r.useState)(!1),p=(0,l.Z)(m,2),g=p[0],f=p[1],E=(0,l.Z)(t,1)[0],b=(0,l.Z)(n,1)[0],h=function(){a(),f(!1)},y=function(){return f(!1)},x=(0,r.useCallback)((function(){f(!0),u({name:E,description:b},{onSuccess:h,onFail:y})}),[E,b]),w=(0,r.useMemo)((function(){var e=(0,In.x3)(E),t=(0,In.uB)(b);return!!(g||e||t)||s.name===E&&(s.description===b||!s.description&&!b)}),[s,E,b,g]);return r.createElement(d.Button,(0,o.Z)({label:"SAVE",onClick:x,isLoading:g,disabled:w,"data-testid":"saveSpace-button"},c))},Ln=["onClose"],Rn=(0,r.memo)((function(e){var t=e.onClose,n=(0,i.Z)(e,Ln),a=(0,v.OS)(),c=(0,v.GM)("ids"),s=(0,y.Z)(),u=(0,l.Z)(s,4),m=u[0],p=u[2],g=u[3],f=On({name:a.name,description:a.description}),E=(0,l.Z)(f,2),b=E[0],h=E[1];if(!a.id)return null;var x=1===c.filter((function(e){return!(0,Cn.Ly)(e)})).length;return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":"manageSpace",flex:"grow",justifyContent:"between"},n),r.createElement(d.Flex,{column:!0,"data-testid":"manageSpace-settings"},r.createElement(d.H3,{margin:[0,0,4,0]},"Info"),r.createElement(d.Flex,{column:!0,gap:8},r.createElement(d.Box,null,r.createElement(kn,{"data-testid":"manageSpace-nameInputs",nameInput:b,descriptionInput:h}),r.createElement(Fn,{"data-testid":"manageSpace-spaceIdInput",id:a.id}),r.createElement(d.Flex,{column:!0,gap:1,margin:[4,0,0]},r.createElement(d.TextInput,{label:"Your role in space",value:(0,ze.fm)(a.roleInSpace),disabled:!0})),r.createElement(d.Flex,{column:!0,gap:1,margin:[4,0,0]},r.createElement(d.TextInput,{label:"Plan",value:(0,ze.db)(a.plan),disabled:!0}))))),r.createElement(d.Flex,{"data-testid":"manageSpace-actions",justifyContent:"between",alignItems:"center",padding:[0,10,0,0]},r.createElement(d.Flex,{"data-testid":"manageSpace-deleteLeaveActions",gap:4},r.createElement(Ye.Z,{align:"top",content:x&&wn.T$.leave,isBasic:!0,stretch:"align"},r.createElement(d.Flex,{alignItems:"center"},r.createElement(d.Button,{"data-ga":"manage-space-tab::click-leave-space::manage-space-modal","data-testid":"manageSpace-leave",disabled:x,icon:"switch_off",flavour:"borderless",label:"Leave space",neutral:!0,padding:[0],width:"fit-content",onClick:p}))),r.createElement(Dn.Z,{"data-testid":"manageSpace-delete",id:a.id,isLastSpace:x,name:a.name,onClose:t})),r.createElement(Mn,{"data-testid":"manageSpace-save",nameInput:b,descriptionInput:h,onClose:t}))),m&&r.createElement(Pn.Z,{id:a.id,name:a.name,onClose:g}))}),(function(){return!0})),Bn=n(51091);function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Un(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Vn=function(){var e=(0,a.s0)(),t=(0,v.th)(),n=(0,a.bS)(W.xN),l=(0,a.bS)(W.Sr),o=(n||l||{}).params,c=o.spaceSlug,i=void 0===c?"":c,s=o.settingsTab,m=void 0===s?"":s,d=o.settingsSubTab,p=void 0===d?"":d,g=(0,v.OS)("name"),f=(0,k.HM)(t,p),E=(0,k.tE)(f,"name"),b=W.fV[m],h=(0,r.useCallback)((function(){e((0,u.Gn)(W.Sr,{spaceSlug:i,settingsTab:m}))}),[i,m]),y=(0,r.useMemo)((function(){var e=[{name:"Manage Space",isDisabled:!0},{name:g,isDisabled:!0},Un({name:b},!!p&&{onClick:h})];return p&&e.push({name:b===W.fV[W.eq]?E:W.fV[p]||p}),e}),[h,E,g,b,p]);return r.createElement(Bn.Z,{isBig:!0,items:y,showBackButton:!1,testid:"manageSpace"})},Hn=n(22648),Wn=n(46715),Gn=(0,r.createContext)(),zn=(0,r.createContext)(),Yn=function(e){var t=e.children,n=(0,y.Z)(!1),a=(0,l.Z)(n,2),o=a[0],c=a[1];return r.createElement(Gn.Provider,{value:o},r.createElement(zn.Provider,{value:c},t))},qn=function(){return(0,r.useContext)(Gn)},Kn=function(){return(0,r.useContext)(zn)},Qn=(n(17727),n(43337)),Xn=function(e){return r.createElement(d.Box,(0,o.Z)({as:"hr",height:"100%",sx:{borderWidth:"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}},e))},$n=function(){return r.createElement(Xn,{height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}})},Jn=function(e){return["free","earlyBird"].includes(e)},er=function(e,t){var n=t.amountPerNode;if(e.amountPerNode&&e.monthlyDiscountPercentagePerNode){var r=e.amountPerNode/12;n=lr(r,e.monthlyDiscountPercentagePerNode)}return n},tr=function(e){if(!e)return null;var t=e.city,n=e.country,r=e.line_1,a=e.line_2,l=e.postalCode,o=e.state;return[[r,a].filter(Boolean).join(" "),t,l,o,n].filter(Boolean).join(", ")},nr=function(e,t){return Jn(t)?"hollow":"business"===t||"pro"===t&&Jn(e)?"default":"hollow"},rr=function(){return{cellStyles:{height:"40px"},headStyles:{height:"32px"}}},ar=function(e,t,n,r,a){return((t||0)-e)*(n||0)+(r||0)-(a||0)},lr=function(e,t){return e*(1/(1-t))},or=function(e){var t=e.currentPlan,n=e.billingEmail,a=e.paymentMethod,o=e.businessName,c=e.vatNo,i=e.billingAddress,s=(0,Wn.SH)(),u=(0,l.Z)(s,2),m=u[0],p=u[1],g=!!t.billingEmail&&!p;return r.createElement(d.Flex,{column:!0,gap:3},r.createElement(d.Flex,{gap:3},r.createElement(d.TextInput,{value:n||"",label:"Billing email",placeholder:"Not specified",disabled:!0}),r.createElement(d.TextInput,{value:null!==a&&void 0!==a&&a.id?"**** ".concat(null===a||void 0===a?void 0:a.id):"",label:"Default payment method",placeholder:"Not specified",disabled:!0})),c&&r.createElement(d.Flex,{gap:3},r.createElement(d.TextInput,{value:o||"",label:"Business name",placeholder:"Not specified",disabled:!0}),r.createElement(d.TextInput,{value:c,label:"VAT number",placeholder:"Not specified",disabled:!0})),r.createElement(d.Flex,{gap:3},r.createElement(d.TextInput,{value:tr(i)||"",label:"Billing address",placeholder:"Not specified",disabled:!0})),r.createElement(xe.Z,{Component:d.Flex,cursor:g?"pointer":"default",disabled:!g,onClick:m,alignItems:"center",gap:1,"data-ga":"billing-options::click::billing"},r.createElement("span",null,"Change billing information and payment method"),r.createElement(d.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"})))},cr=function(e){var t=e.onReset;return r.createElement(d.Box,{as:d.Icon,name:"close_circle",onClick:t,cursor:"pointer",width:3,height:3,color:"border",position:"absolute",left:"2px"})},ir=function(e){var t=e.promotionCode,n=e.onReset;return r.createElement(d.Flex,{width:"100%"},r.createElement(d.Pill,{background:"nodeBadgeBackground",padding:[0],borderColor:"nodeBadgeBackground"},r.createElement(d.Flex,{position:"relative",gap:2,alignItems:"center",padding:[1,2,1,5]},r.createElement(cr,{onReset:n}),r.createElement(d.Text,null,t))))},sr=function(e){var t=e.promotionCode,n=e.onApply,a=e.error,o=(0,r.useState)(a?t:""),c=(0,l.Z)(o,2),i=c[0],s=c[1],u=function(){s(""),n("")};return r.createElement(d.Flex,{column:!0,gap:1},r.createElement(d.Text,{strong:!0},"Promotion code"),t&&!a?r.createElement(ir,{promotionCode:t,onReset:u}):r.createElement(d.Flex,{column:!0,gap:1},r.createElement(d.Flex,{gap:3,alignItems:"baseline"},r.createElement(d.TextInput,{value:i,onChange:function(e){return s(e.target.value)},placeholder:"Promotion code"}),a?r.createElement(d.Button,{label:"Clear",flavour:"hollow",onClick:u,padding:[3,4],disabled:!i}):r.createElement(d.Button,{label:"Apply",onClick:function(){return n(i)},padding:[3,4],disabled:!i})),a&&r.createElement(d.Text,{color:"error"},a)))},ur=function(e){var t=e.needsCommitment,n=e.commitment,a=e.handleCommitmentChange;return t&&r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Flex,{gap:4,alignItems:"baseline"},r.createElement(d.Text,{strong:!0,style:{whiteSpace:"nowrap"}},"Committed Nodes"),r.createElement(d.TextInput,{onChange:a,value:n,placeholder:"i.e. 14",type:"number",min:1})),r.createElement(d.TextSmall,null,"Nodes that you'll have a discount of 25% on the original cost per node of the plan. This amount will be part of your annual prepayment."))},mr=function(e){return"earlyBird"===e.currentPlan.slug&&r.createElement(r.Fragment,null,r.createElement(Xn,{height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),r.createElement(d.Flex,{gap:3},r.createElement(d.Icon,{size:"large",color:"warning",name:"warning_triangle"}),r.createElement(d.Text,null,"You are moving from ",r.createElement(d.Text,{strong:!0},"Early Bird")," plan to another plan, you won't be able to come back to this. The ",r.createElement(d.Text,{strong:!0},"Community")," free plan will be there if you wish to cancel but this doesn't allow you to invite or change users using the Member role.")))},dr=function(e){return"earlyBird"===(null===e||void 0===e?void 0:e.slug)?"earlyBird":e&&e.slug&&"free"!==e.slug?"".concat(e.slug,"-").concat(e.interval):"free"},pr=(n(54678),m.default.div.withConfig({displayName:"withTableWrapper__TableWrapper",componentId:"sc-drcfxi-0"})(["margin-top:30px;"])),gr=function(e){return function(t){return r.createElement(pr,null,r.createElement(e,t))}},fr=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"});function Er(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function br(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Er(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Er(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var hr={size:50,minSize:50,maxSize:100},vr=function(e){return function(){return r.createElement(d.Flex,{width:"100%",justifyContent:"end"},e)}},yr=function(e){var t=e.getValue;return r.createElement(d.Flex,{width:"100%",justifyContent:"end"},t())},xr=[br({id:"name",accessor:"name",header:""},hr),br({id:"price",accessor:"price",header:vr("Price"),cell:yr},hr),br({id:"qty",accessor:"qty",header:vr("Qty"),cell:yr},hr),br({id:"month",accessor:"month",header:vr("Month"),cell:yr},hr),br({id:"total",accessor:"total",header:vr("Total"),cell:yr},hr)],wr=function(e){return r.createElement(d.Flex,(0,o.Z)({gap:3},e),r.createElement(d.Icon,{size:"large",color:"warning",name:"warning_triangle"}),r.createElement(d.Text,null,"No immediate charges are applicable to this plan subscription. On-demand usage charges will be applied based on your node period count."))},Cr=gr(d.NetdataTable),Or=function(e){var t=e.needsCommitment,n=e.price,a=e.spaceTotal,l=e.commitment,o=e.currentCommitment,c=e.onlyCommitment,i=e.balance,s=e.nodesTotal,u=e.zeroSubscriptionTotal,m=e.checkoutIsDisabled,p=function(e,t,n,r,a){if(!r)return r;var l=ar(a,e,t,n);return r-l<0?r:l}(l,n.pricing.primary.amountPerNode,c?0:n.pricing.primary.amountFlat,i.amount,o),g=((null===n||void 0===n?void 0:n.pricing)||{}).primary,f=(null===g||void 0===g?void 0:g.monthlyDiscountPercentagePerNode)||0,E=parseFloat(s+a),b=parseFloat(E*f),h=parseFloat(E-b);return r.createElement(r.Fragment,null,u?m?null:r.createElement(wr,null):r.createElement(r.Fragment,null,t&&r.createElement(r.Fragment,null,r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,null,"Subscription Total"),r.createElement(d.Text,null,fr.format(E))),r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,{color:"primary"},"Discount (",100*f,"%)"),r.createElement(d.Text,{color:"primary"},"- ",fr.format(b)))),r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,null,"Total"),r.createElement(d.Text,null,fr.format(h))),!!i.amount&&r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,null,"Credit amount"),r.createElement(d.Text,null,"- ",fr.format(p))),r.createElement($n,null),r.createElement(d.Flex,null,r.createElement(d.TextMicro,null,"Additional taxes may be applicable"))),r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.H0,{strong:!0},"Total payable"),r.createElement(d.H0,{strong:!0,"data-testid":"totalPayableAmountCheckout"},fr.format(function(){var e=ar.apply(void 0,arguments);return e<0?0:e}(o,l,n.pricing.primary.amountPerNode,c?0:n.pricing.primary.amountFlat,p)))))},Pr=function(e){var t=e.price,n=e.needsCommitment,a=e.currentCommitment,l=e.onlyCommitment,o=e.balance,c=e.spaceTotal,i=e.amountPerNodePerMonth,s=e.amountPerSpacePerMonth,u=e.commitment,m=e.nodesTotal,d=e.months,p=e.tableMeta,g=void 0===p?rr:p,f=e.checkoutIsDisabled,E=(0,r.useMemo)((function(){return 0==parseFloat(m+c)}),[m,c]),b=(0,r.useMemo)((function(){var e=!isNaN(c)&&c>0?{id:"space",name:"Space",price:fr.format(s),qty:1,month:d,total:fr.format(c)}:null;return n?[isNaN(m)?null:{id:"nodes",name:"Nodes",price:fr.format(i),qty:u||0,month:d,total:fr.format(m)},e].filter(Boolean):[e]}),[n,s,c,m,d]);return r.createElement(r.Fragment,null,!E&&r.createElement(r.Fragment,null,r.createElement(Cr,{meta:g,dataColumns:xr,data:b}),r.createElement($n,null)),r.createElement(Or,{needsCommitment:n,price:t,spaceTotal:c,commitment:u,currentCommitment:a,onlyCommitment:l,balance:o,nodesTotal:m,zeroSubscriptionTotal:E,checkoutIsDisabled:f}))},Ir=n(93433);n(23157);function Sr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sr(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var kr,Zr=gr(d.NetdataTable),jr=function(e){var t=e.lineItems;return r.createElement(r.Fragment,null,t.map((function(e){var t,n,a=(n=e).description?n.description.startsWith("Discount")?{color:"primary"}:n.description.startsWith("VAT")?{color:"textLite"}:{}:{},l=e.isInfo?d.TextSmall:d.Text;return r.createElement(d.Flex,{key:e.description,justifyContent:"between"},r.createElement(l,a,e.description),r.createElement(l,a,fr.format(null===(t=e.total)||void 0===t?void 0:t.amount)))})))},Fr=(kr=function(e){var t=e.lineItems;return r.createElement(d.Flex,{justifyContent:"between",margin:[4,0,0,0]},r.createElement(d.H0,{strong:!0},"Total payable"),r.createElement(d.H0,{strong:!0,"data-testid":"totalPayableAmountPreview"},fr.format(t.totalPayable.total.amount)))},function(e){var t;return e.lineItems.totalPayable?null!==(t=e.lineItems.info)&&void 0!==t&&t.length?r.createElement(d.Flex,{column:!0,gap:1},r.createElement(kr,e),r.createElement(jr,{lineItems:e.lineItems.info})):r.createElement(kr,e):null}),Dr=function(e){var t=e.lineItems,n=e.agree,a=e.toggleAgree,l=e.zeroPreviewSubscriptionTotal;return r.createElement(r.Fragment,null,r.createElement($n,null),l&&r.createElement(wr,{padding:[0,0,2,0]}),r.createElement(d.Flex,{gap:3},r.createElement(d.Checkbox,{checked:n,onChange:a}),r.createElement(d.Text,null,"I agree to Netdata Inc's"," ",r.createElement(xe.Z,{href:"https://www.netdata.cloud/service-terms/",rel:"noopener noreferrer",target:"_blank"},"Terms of Service")," ","and"," ",r.createElement(xe.Z,{href:"https://netdata.cloud/privacy",rel:"noopener noreferer",target:"_blank"},"Privacy Policy"))),r.createElement(Fr,{lineItems:t}))},Ar=function(e){var t=e.lineItems,n=e.tableMeta,a=void 0===n?rr:n;return r.createElement(r.Fragment,null,r.createElement(Zr,{meta:a,dataColumns:xr,data:t.table}),r.createElement($n,null),r.createElement(jr,{lineItems:t.footer}))},Nr=function(e){var t=e.title,n=e.onConfirm,a=e.onClose,l="Community"==t,o=l?"Cancellation":"Downgrading";return r.createElement(d.ConfirmationDialog,{confirmLabel:"Yes","data-ga":"downgrade-dialog","data-testid":"downgradeDialog",handleConfirm:function(){n(),a()},handleDecline:function(){a()},message:r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Text,null,"Are you sure you want to ",r.createElement(d.Text,{strong:!0},"move to the ",t," plan")," and cancel your current plan?"),l&&r.createElement(d.Text,null,"Upon cancellation,"," ",r.createElement(d.Text,{strong:!0},"a credit of the value related to the unused period will be credited to your Netdata account.")," ","The credit will be available for you to use on future plan subscriptions with us."),r.createElement(d.Text,null,"For the next 24 hours, you will be able to use all your current notification method configurations."," ",r.createElement(d.Text,{strong:!0},"After 24 hours, any of the notification method configurations that aren't available on your space's plan will be automatically disabled.")),r.createElement(d.Text,null,o," might affect your Space users. Please check what roles are available on the"," ",r.createElement(xe.Z,{href:"https://learn.netdata.cloud/docs/nightly/concepts/netdata-plans#areas-impacted-by-plans",rel:"noopener noreferrer",strong:!0,target:"_blank"},t," plan"),"."," ",r.createElement(d.Text,{strong:!0},"Users with unavailable roles on the ",t," plan will immediately have restricted access to the Space.")),r.createElement(d.Text,null,"Do you wish to proceed?")),title:"Go to ".concat(t," plan?")})},Mr=n(49489),Lr=["title","isDowngrade","showProrations","checkoutOrUpdate"];function Rr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Br(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rr(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var _r=function(e){return e?"::commited-".concat(e):""},Ur=(0,m.default)(d.Flex).withConfig({displayName:"checkoutTotals__CheckoutButtonWrapper",componentId:"sc-1q0h6ca-0"})(["background:",";padding:16px 0;position:sticky;bottom:0;z-index:20;"],(0,d.getColor)("mainBackground")),Vr=function(e){return function(t){var n=t.title,a=t.isDowngrade,c=t.showProrations,s=t.checkoutOrUpdate,u=(0,i.Z)(t,Lr),m=(0,y.Z)(),d=(0,l.Z)(m,4),p=d[0],g=d[2],f=d[3];return c&&a?r.createElement(r.Fragment,null,p&&r.createElement(Nr,{title:n,onConfirm:s,onClose:f}),r.createElement(e,(0,o.Z)({onClick:g},u))):r.createElement(e,(0,o.Z)({onClick:s},u))}}((0,m.default)(d.Button).withConfig({displayName:"checkoutTotals__CheckoutButton",componentId:"sc-1q0h6ca-1"})(["flex:auto;"])),Hr=function(e){var t,n=e.title,a=e.slug,o=e.onClose,c=e.currentPlan,i=e.price,s=e.balance,u=e.commitment,m=e.currentCommitment,p=void 0===m?0:m,g=e.email,f=e.needsCommitment,E=e.onlyCommitment,b=e.previewData,h=e.loadingPreview,v=e.showProrations,x=e.promotionCode,w=function(e,t){var n,r;return((null===(n=Mr.Vc[t])||void 0===n?void 0:n.level)||0)<((null===(r=Mr.Vc[e])||void 0===r?void 0:r.level)||0)}(c.slug,a),C=(0,y.Z)(!1),O=(0,l.Z)(C,2),P=O[0],I=O[1],S=v&&!P||!v&&!g||f&&(p===u||!u||u<1),T=(0,y.Z)(),k=(0,l.Z)(T,2),Z=k[0],j=k[1],F=(0,Wn.eY)(),D=(0,Wn.Zn)(),A=v||c.billingEmail?D:F,N=(null===i||void 0===i?void 0:i.pricing)||{},M=N.primary,L=N.secondary,R="year"===i.interval?12:1,B=er(M,L),_=f?B*R*(u||0):0,U=function(e){var t=e.amountFlat||0;if(e.monthlyDiscountPercentagePerNode&&e.amountFlat){var n=e.amountFlat/12;t=lr(n,e.monthlyDiscountPercentagePerNode)}return t}(M),V=U*R,H=(t=null===b||void 0===b?void 0:b.invoiceLineItems,(0,r.useMemo)((function(){if(null===t||void 0===t||!t.length)return null;var e=!1;return t.reduce((function(t,n){var r;return"Total payable"==n.description?(t.totalPayable=n,e=!0,t):(n.unitPrice?t.table=[].concat((0,Ir.Z)(t.table),[{id:n.description,name:n.description,price:fr.format(n.unitPrice.amount),qty:n.quantity,month:n.month,total:null===(r=n.total)||void 0===r?void 0:r.amount}]):e?t.info=[].concat((0,Ir.Z)(t.info),[Tr(Tr({},n),{},{isInfo:!0})]):t.footer=[].concat((0,Ir.Z)(t.footer),[n]),t)}),{table:[],footer:[],info:[]})}),[t])),W=((null===H||void 0===H?void 0:H.footer)||[]).some((function(e){var t=e.description,n=e.total;return"Subscription Total"==t&&0==(null===n||void 0===n?void 0:n.amount)}));return r.createElement(d.Flex,{column:!0,gap:3},v?h||!H||W?null:r.createElement(Ar,{lineItems:H,agree:P,toggleAgree:I}):r.createElement(Pr,{price:i,needsCommitment:f,currentCommitment:p,onlyCommitment:E,balance:s,spaceTotal:V,amountPerNodePerMonth:B,amountPerSpacePerMonth:U,commitment:u,nodesTotal:_,months:R,checkoutIsDisabled:S}),r.createElement(Ur,{column:!0,gap:2},v&&!h&&H&&r.createElement(Dr,{lineItems:H,agree:P,toggleAgree:I,zeroPreviewSubscriptionTotal:W}),r.createElement(Vr,{title:n,isDowngrade:w,label:v?"Checkout":"Proceed to checkout",disabled:!!S||Z,checkoutOrUpdate:function(){j(),A(Br(Br({productId:i.id,email:(null===b||void 0===b?void 0:b.billingEmail)||g},f&&{commitment:u}),v&&x&&{promotionCode:x})).then(o).finally(j)},isLoading:Z,"data-ga":"proceedTocheckoutButton::click-".concat(dr(i)).concat(_r(u),"::billing"),"data-testid":"billingCheckoutTotals-proceedToCheckoutButton",showProrations:v})))},Wr=function(e){var t=e.prices,n=e.currentPlan,a=(0,r.useState)(0),o=(0,l.Z)(a,2),c=o[0],i=o[1],s=t[c],u=null===s||void 0===s?void 0:s.commitment,m=(0,r.useState)(n.committedNodes||1),d=(0,l.Z)(m,2),p=d[0],g=d[1];return{recurringIndex:c,setRecurringIndex:i,price:s,needsCommitment:u,commitment:p,handleCommitmentChange:function(e){return g(e.target.value?parseInt(e.target.value,10):"")}}},Gr=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).title,t=void 0===e?"Checkout":e;return function(e){return function(n){return r.createElement(g.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n.onClose},r.createElement(f.x,{onClose:n.onClose,title:t}),r.createElement(d.Flex,{column:!0,padding:[4,4,0,4],justifyContent:"between",height:"calc(100vh - 60px)",overflow:"auto"},r.createElement(e,n)))}}};function zr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Yr=3e5,qr=Gr({title:"Update plan"})((function(e){var t=e.title,n=e.onClose,a=e.prices,i=e.currentPlan,s=void 0===i?{}:i,u=e.children,m=Wr({prices:a,currentPlan:s}),p=m.recurringIndex,g=m.setRecurringIndex,f=m.price,E=m.needsCommitment,b=m.commitment,h=m.handleCommitmentChange,v=(0,r.useState)(""),y=(0,l.Z)(v,2),x=y[0],w=y[1],C=(0,r.useState)(0),O=(0,l.Z)(C,2),P=O[0],I=O[1],S=(0,r.useState)(Yr),T=(0,l.Z)(S,2),k=T[0],Z=T[1],j=(0,Wn.fG)(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zr(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({productId:f.id,promotionCode:x},E&&b&&{commitment:b}),P),F=j.loading,D=j.value,A=j.promoCodeError;return(0,Qn.Z)((function(){F||I((function(e){return e+1}))}),k),(0,r.useEffect)((function(){Z(F?null:Yr)}),[F]),r.createElement(r.Fragment,null,r.createElement(d.Flex,{column:!0,gap:4},r.Children.map(u,(function(e){return(0,r.cloneElement)(e,{recurringIndex:p,setRecurringIndex:g})})),r.createElement(ur,{needsCommitment:E,commitment:b,handleCommitmentChange:h}),r.createElement($n,null),F?r.createElement(an.Z,{title:"Loading billing info...",height:"auto"}):D?r.createElement(r.Fragment,null,r.createElement(or,(0,o.Z)({currentPlan:s},D)),r.createElement($n,null),r.createElement(sr,{promotionCode:x,onApply:w,error:A})):r.createElement("div",null,"No data available"),r.createElement(mr,{currentPlan:s})),r.createElement(Hr,{title:t,slug:f.slug,currentPlan:s,onClose:n,price:f,balance:s.balance,commitment:b,needsCommitment:E,previewData:D,loadingPreview:F,showProrations:!0,promotionCode:x}))})),Kr=Gr()((function(e){var t=e.onClose,n=e.prices,a=e.currentPlan,o=void 0===a?{}:a,c=e.children,i=Wr({prices:n,currentPlan:o}),s=i.recurringIndex,u=i.setRecurringIndex,m=i.price,p=i.needsCommitment,g=i.commitment,f=i.handleCommitmentChange,E=(0,Te.Iy)("email"),b=(0,r.useState)(o.billingEmail||E||""),h=(0,l.Z)(b,2),v=h[0],y=h[1];return r.createElement(r.Fragment,null,r.createElement(d.Flex,{column:!0,gap:4},r.Children.map(c,(function(e){return(0,r.cloneElement)(e,{recurringIndex:s,setRecurringIndex:u})})),r.createElement(ur,{needsCommitment:p,commitment:g,handleCommitmentChange:f}),r.createElement($n,null),r.createElement(d.TextInput,{onChange:function(e){return y(e.target.value)},value:v,label:"Billing email",placeholder:"jsmith@example.com"}),r.createElement(mr,{currentPlan:o})),r.createElement(Hr,{currentPlan:o,onClose:t,price:m,balance:o.balance,commitment:g,email:v,needsCommitment:p}))})),Qr=n(89405),Xr=["inModal","recurringIndex","setRecurringIndex"],$r=function(e){var t=e.primary,n=e.secondary;return r.createElement(d.Flex,{column:!0,gap:2},t||n?r.createElement(r.Fragment,null,r.createElement(Ye.Z,{align:"top",content:t.amountPerNode?"Price per active node per month for committed usage of nodes for a year":"Price per node per month",isBasic:!0,plain:!0,stretch:"align"},r.createElement(d.H0,null,fr.format(er(t,n)),r.createElement(d.TextSmall,{color:"textLite"},"/",r.createElement(xe.Z,{Component:d.TextSmall,href:"https://www.netdata.cloud/pricing/#do-i-have-to-pay-for-nodes-that-are-no-longer-online",rel:"noopener noreferrer",target:"_blank"},"Node"),"/month")))):r.createElement(d.H0,null,"Free, Forever"),(null===t||void 0===t?void 0:t.monthlyDiscountPercentagePerNode)&&r.createElement(d.Flex,null,r.createElement(d.Text,null,r.createElement(d.Text,{strong:!0},100*t.monthlyDiscountPercentagePerNode,"% discount")," applicable on space and committed node prices, billed annually.")))},Jr=m.default.div.withConfig({displayName:"pricingDetails__OneLine",componentId:"sc-hbslp4-0"})(["white-space:nowrap white-space:nowrap;"]),ea=function(e){var t=e.interval,n=e.currentPeriodTo,a=e.committedNodes,l=e.nodesLastPeriod,o=e.showPromotion,c=e.cancelling,i=e.onCancelPlan,s=(0,Qr.rA)().localeDateString,u=l-a;return r.createElement(d.Flex,{column:!0,gap:1},!!n&&r.createElement(d.TextSmall,null,r.createElement(d.TextSmall,{strong:!0,"data-testid":"billingPricingDetails-interval"},"Billing ".concat(Mr.go[t]))," ","(renews ",s(new Date(n),{long:!1}),")"),o&&"month"===t&&r.createElement(xe.Z,{onClick:i,disabled:c},r.createElement(Jr,null,"Save 25% by changing your billing frequency to yearly")),"year"===t&&r.createElement(r.Fragment,null,r.createElement(d.TextSmall,null,"Committed Nodes:"," ",r.createElement(d.Text,{strong:!0,"data-testid":"billingPricingDetails-committedNodesNumber"},a)),"number"===typeof l&&r.createElement(d.TextSmall,null,0===u&&"Your current Period count is equal to commitment",0!==u&&r.createElement(r.Fragment,null,"Your current Period count is ",u>0?"above":"below"," by"," ",r.createElement(d.TextSmall,{color:u>0?"error":"success",strong:!0},u>0?"+":"",u," node",1===Math.abs(u)?"":"s")))))},ta=function(e){var t=e.features;return r.createElement(d.Flex,{column:!0,gap:1},t.map((function(e){return r.createElement(d.Flex,{gap:2,key:e},r.createElement(d.Box,{width:5},r.createElement(d.Icon,{name:"check",width:"20px",height:"20px",color:"primary"})),r.createElement(d.TextSmall,null,e))})),r.createElement(d.Flex,{gap:2},r.createElement(d.Box,{width:5}),r.createElement(xe.Z,{Component:d.Flex,as:nn.rU,cursor:"pointer",alignItems:"center",gap:1,color:"text",hoverColor:"textFocus",to:"all-plans"},r.createElement(d.Text,{strong:!0},"View full details"),r.createElement(d.Icon,{name:"chevron_right",width:"16px",height:"16px"}))))},na=function(e){return function(t){var n=t.inModal,a=t.recurringIndex,l=t.setRecurringIndex,o=(0,i.Z)(t,Xr);return n?r.createElement(d.Flex,{width:"100%",justifyContent:"between",alignItems:"center"},r.createElement(e,o),r.createElement(d.Flex,{gap:3,padding:[0,10]},Mr.FC.map((function(e,t){return r.createElement(d.RadioButton,{key:e,checked:a===t,onChange:function(){return l(t)},"data-testid":"billingPaidPlans-".concat(e,"-radioButton")},r.createElement(d.Text,{color:"textDescription"},(0,ze.fm)(Mr.go[e])))})))):r.createElement(e,o)}}((function(e){var t=e.children;return r.createElement(d.H3,{"data-testid":"billingPricingDetails-activePlanName"},t)})),ra=function(e){var t,n=e.slug,a=e.prices,l=e.recurringIndex,c=void 0===l?1:l,i=e.setRecurringIndex,s=e.currentPlan,u=void 0===s?{}:s,m=e.isActive,p=e.showAllDetails,g=e.showTeaserDetails,f=e.cancelling,E=e.onCancelPlan,b=e.title,h=e.features,v=e.nodesLastPeriod,y=e.inModal;return r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(na,{inModal:y,recurringIndex:c,setRecurringIndex:i},b),m&&r.createElement(d.Pill,{flavour:"success","data-testid":"active-plan",icon:"checkmark_s",size:"normal",iconSize:"16px"},"Active")),(p||!m||"free"===n)&&r.createElement($r,(null===(t=a[c])||void 0===t?void 0:t.pricing)||{}),g&&!!h&&r.createElement(ta,{features:h}),m&&!Jn(n)&&r.createElement(ea,(0,o.Z)({},u,{showPromotion:!0,cancelling:f,onCancelPlan:E,nodesLastPeriod:v})))},aa=["slug","prices","freePlanId","isSmall","isActive","currentPlan","showAllPlans","showTeaserDetails","allPlansView","nodesLastPeriod"];function la(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?la(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):la(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ca=function(e){var t=e.slug,n=e.prices,a=void 0===n?[]:n,c=e.freePlanId,s=e.isSmall,u=e.isActive,m=e.currentPlan,p=e.showAllPlans,g=e.showTeaserDetails,f=e.allPlansView,E=void 0!==f&&f,h=e.nodesLastPeriod,v=(0,i.Z)(e,aa),x=qn(),w=Kn(),C=Mr.Vc[t]||Mr.Vc.free,O=C.title,P=C.features,I=(0,b.gI)("billing:Manage"),S=(0,r.useState)({}),T=(0,l.Z)(S,2),k=T[0],Z=T[1],j=(0,y.Z)(),F=(0,l.Z)(j,4),D=F[0],A=F[2],N=F[3],M=function(e){var t=e.currentPlan,n=e.slug,r=t.slug,a=t.interval;return r===n?Jn(n)?"Current plan":"year"===a?"Update plan options":"Change billing frequency":Jn(r)&&!Jn(n)||"pro"===r&&"business"===n?"Upgrade":"Select"}({currentPlan:m,slug:t}),L=(0,ve.Z)(),R=(0,l.Z)(L,2),B=R[0],_=R[1],U=(0,y.Z)(),V=(0,l.Z)(U,2),H=V[0],W=V[1],G=(0,Wn.Zn)(),z=function(){H||x||(Jn(t)?Z({type:"cancel"}):Jn(m.slug)?J("checkout"):J("update"))},Y=!!m.billingEmail,q=Y?qr:Kr,K=(0,Qt.m$)(),Q=K.billingModalType,X=K.billingModalSlug,$=["checkout","update"].includes(Q)&&t==X,J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=(0,Qt.m$)();(0,Qt.xs)(oa(oa({},n),{},{billingModalType:e,billingModalSlug:""==e?e:t}))};return r.createElement(d.Flex,{column:!0,gap:7},r.createElement(d.Flex,(0,o.Z)({column:!0,height:s?"auto":p?57:90,width:99.5,flex:s,padding:s?[6,10]:[0,10],gap:2,justifyContent:"between"},v),r.createElement(ra,{slug:t,prices:a,isActive:u,currentPlan:m,cancelling:x,showAllDetails:p,showTeaserDetails:g,title:O,features:P,nodesLastPeriod:h,onCancelPlan:z}),!E&&r.createElement(Sn.Z,{Component:d.Button,permission:"billing:Manage","data-ga":"upgrade-button::click-".concat(dr({slug:t}),"::current-").concat(dr(m),"::billing"),"data-testid":"billingPlan-".concat(t,"-").concat(u?"currentPlan":"upgradeButton"),label:M,flavour:nr(null===m||void 0===m?void 0:m.slug,t),disabled:H||x||!!u&&Jn(t),width:"100%",onClick:z,isLoading:H,loadingLabel:"Cancelling"}),!p&&!Jn(m.slug)&&r.createElement(xe.Z,{Component:d.Flex,as:nn.rU,cursor:"pointer",alignItems:"center",gap:1,color:"text",hoverColor:"textFocus",to:"all-plans",padding:[4,0,0],disabled:x,"data-testid":"billingPlan-viewMorePlansLink","data-ga":"change-plan::click::billing"},r.createElement("span",null,I?"Change plan":"View plans"),r.createElement(d.Icon,{name:"chevron_right",width:"16px",height:"16px"})),"cancel"===k.type&&!Jn(m.slug)&&!D&&r.createElement(Nr,{title:O,onConfirm:function(){A(),w(),W(),G({productId:c}).then((function(){return B({header:"Successfully canceled subscription",text:"You are now on Community plan"})})).catch((function(){return _({header:"Failed to cancel the subscription",text:"Remained on ".concat(O," plan")})})).finally((function(){W(),w()}))},onClose:function(){N(),Z({})}}),$&&r.createElement(q,{title:O,onClose:function(){N(),J()},prices:a,currentPlan:m,showProrations:Y},r.createElement(ra,{slug:t,prices:a,currentPlan:m,title:O,inModal:!0}))))},ia=function(e){var t=e.plans,n=e.freePlanId,a=e.isSmall,l=e.currentPlan,o=e.showAllPlans,c=e.showTeaserDetails;return r.createElement(d.Flex,{column:!0,gap:2,flex:!0},r.createElement(d.Flex,{column:a},r.createElement(ca,{slug:"pro",prices:t.pro,freePlanId:n,isActive:"pro"===l.slug,isSmall:a,currentPlan:l,showAllPlans:o,showTeaserDetails:c}),r.createElement(Xn,{height:a?"1px":"100%",width:a?"100%":"1px",sx:{borderWidth:a?"1px 0px 0px 0px":"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}}),r.createElement(ca,{slug:"business",prices:t.business,freePlanId:n,isActive:"business"===l.slug,isSmall:a,currentPlan:l,showAllPlans:o,showTeaserDetails:c})))},sa=function(e){var t=e.isSmall,n=e.plans,a=e.currentPlan,l=e.showAllPlans,o=void 0!==l&&l,c=e.showTeaserDetails,i=void 0!==c&&c,s=e.children,u="earlyBird"===a.slug,m=((null===n||void 0===n?void 0:n.free)||[]).length>0?n.free[0].id:"Community";return r.createElement(d.Flex,{column:t,justifyContent:"between"},s,(o||!u)&&r.createElement(r.Fragment,null,r.createElement(ca,{slug:"free",prices:n.free,freePlanId:m,width:t?"auto":70,isSmall:t,isActive:"free"===a.slug,currentPlan:a,showAllPlans:o}),r.createElement(Xn,{height:t?"1px":"100%",width:t?"100%":"1px",sx:{borderWidth:t?"1px 0px 0px 0px":"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}})),u&&r.createElement(r.Fragment,null,r.createElement(ca,{slug:"earlyBird",prices:n.earlyBird,freePlanId:m,width:t?"auto":70,isSmall:t,isActive:"earlyBird"===a.slug,currentPlan:a,showAllPlans:o}),r.createElement(Xn,{height:t?"1px":"100%",width:t?"100%":"1px",sx:{borderWidth:t?"1px 0px 0px 0px":"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}})),r.createElement(ia,{plans:n,freePlanId:m,isSmall:t,currentPlan:a,showAllPlans:o,showTeaserDetails:i}))},ua=["children"],ma=function(e){var t=e.children,n=(0,i.Z)(e,ua);return r.createElement(d.Flex,(0,o.Z)({alignItems:"center",gap:2},n),t)},da=function(){return r.createElement(d.Flex,{column:!0,gap:2,width:65},r.createElement(d.TextMicro,{color:"bright"},r.createElement(d.TextMicro,{color:"bright",strong:!0},"Available credit")," ","for you to use on any plan subscriptions with us."),r.createElement(d.TextMicro,{color:"bright"},"It is ok to change your mind, we will give you full flexibility! You can change the plan level, billing frequency or committed nodes, we won't hold you to any choice. When applicable, we'll credit you back on any unused amount."))},pa=function(e){var t=e.currentPlan,n=(0,Wn.SH)(),a=(0,l.Z)(n,2),o=a[0],c=a[1],i=!!t.billingEmail&&!c,s=(0,b.gI)("billing:ReadAll");return r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.H3,null,"Plan & Billing"),s&&r.createElement(r.Fragment,null,r.createElement(ma,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Credit:"),r.createElement(d.Text,{"data-testid":"billingHeader-credits",strong:!0},fr.format(t.balance.amount||0)),r.createElement(Ye.Z,{content:da,align:"bottom",isBasic:!0},r.createElement(d.Icon,{name:"information",width:"16px",height:"16px",color:"textLite"}))),r.createElement(Xn,null),r.createElement(d.Text,null,"Billing email:"," ",r.createElement(d.Text,{strong:!0,"data-testid":"billingHeader-email"},t.billingEmail||"-")),r.createElement(Xn,null),r.createElement(xe.Z,{Component:d.Flex,cursor:i?"pointer":"default",disabled:!i,onClick:o,alignItems:"center",gap:1,"data-ga":"billing-options::click::billing","data-testid":"billingHeader-goToPortal"},r.createElement("span",null,"Billing options and Invoices"),r.createElement(d.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"}))),r.createElement(Xn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}})))};n(34553),n(2707),n(69810),n(86035);var ga=n(69119),fa=n(71002),Ea=n(7069),ba=n(54559),ha=n(13882),va=n(83946);var ya=n(28789),xa=n(23148),wa=n(36337),Ca=n(26495),Oa=n(95665),Pa=n(92501),Ia=n(95248),Sa=n(69019);function Ta(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ka(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ta(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ta(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Za={nodes:1,p90:2,committed_nodes:3},ja={"Daily count":"The weighted 90th percentile of the live node count during the day, taking time as the weight. If you have 30 live nodes throughout the day, except for a two hour peak of 44 live nodes, the daily value is 31.","Committed nodes":"The number of nodes committed to in the yearly plan. In case the period count is higher than the number of committed nodes, the difference is billed as overage.","Period count":"The 90th percentile of the daily counts for this period up to the date. The last value for the period is used as the number of nodes for the bill for that period."};xa.kL.register(xa.f$,xa.uw,xa.ZL,xa.od,xa.jn,xa.De,xa.u,xa.ST,xa.vn,wa.Z),xa.u.positioners.follow=function(e,t){return null===e||void 0===e||!e.length||t.y>360?(this._resolveAnimations().update(this,{opacity:0}),!1):(0===this.opacity&&this._resolveAnimations().update(this,{opacity:1}),{x:t.x,y:t.y})};var Fa=function(e){return{nodes:{label:"Daily count",type:"bar",color:(0,d.getColor)("text")({theme:e}),backgroundColor:(0,d.getColor)("primary")({theme:e}),borderColor:(0,d.getColor)("primary")({theme:e}),borderWidth:2,pointStyle:"rectangle",usePointStyle:!0},p90:{label:"Period count",type:"line",color:(0,d.getColor)("text")({theme:e}),borderColor:(0,d.getColor)(["purple","lilac"])({theme:e}),borderWidth:2,fill:!1,stepped:!0},committed_nodes:{label:"Committed nodes",type:"line",color:(0,d.getColor)("text")({theme:e}),borderColor:(0,d.getColor)(["blue","aquamarine"])({theme:e}),borderWidth:2,fill:!1,borderDash:[1,2],borderDashOffset:1,pointStyle:!1}}},Da={border:{side:"all",color:"inputBorder",padding:[3]},round:!0},Aa=function(){var e=new Date,t=e.getFullYear(),n=e.getMonth(),r=e.getDate(),a=new Date(0);return a.setFullYear(t,n,r-1),a.setHours(23,59,59,999),a}(),Na=(0,ga.default)(function(e,t){if((0,ha.Z)(2,arguments),!t||"object"!==(0,fa.Z)(t))return new Date(NaN);var n=t.years?(0,va.Z)(t.years):0,r=t.months?(0,va.Z)(t.months):0,a=t.weeks?(0,va.Z)(t.weeks):0,l=t.days?(0,va.Z)(t.days):0,o=t.hours?(0,va.Z)(t.hours):0,c=t.minutes?(0,va.Z)(t.minutes):0,i=t.seconds?(0,va.Z)(t.seconds):0,s=(0,ba.default)(e,r+12*n),u=(0,Ea.default)(s,l+7*a),m=1e3*(i+60*(c+60*o));return new Date(u.getTime()-m)}(Aa,{months:1})),Ma=function(e){var t=e.onNodesLastPeriodFetch,n=(0,Ia.by)("offset"),a=(0,v.th)(),o=(0,r.useState)((function(){return{start:Na,end:Aa}})),i=(0,l.Z)(o,2),s=i[0],u=i[1],p=(0,jt.Z)((function(){return{enabled:!!a&&!!s.start&&!!s.end,fetch:function(){return(0,Sa.fA)(a,{after:Math.floor((0,ya.default)((0,Qr.tb)(s.start,n))/1e3),before:Math.floor((0,ya.default)((0,Qr.tb)(s.end,n))/1e3)})},initialValue:{labels:[],data:[]},onSuccess:function(e){var n=e.data,r=e.labels;if(n.length){var a=n.at(-1),l=a[r.indexOf("nodes")],o=a[r.indexOf("timestamp")];t((function(e){return e.timestamp>o?e:{timestamp:o,value:l}}))}}}}),[a,s,t]),g=(0,l.Z)(p,3),f=g[0],E=g[1],b=g[2],h=(0,r.useContext)(m.ThemeContext),y=(0,r.useMemo)((function(){var e=f.data.map((function(e){return(0,l.Z)(e,1)[0]})),t=f.labels.reduce((function(t,n,r){return r?[ka(ka({},Fa(h)[n]),{},{data:e.map((function(e,t){return f.data[t][r]})),order:Za[n]})].concat((0,Ir.Z)(t)):t}),[]);return{labels:e,datasets:t}}),[f]),x=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.data,a=t.annotations,o=void 0===a?[]:a,i=(0,Qr.rA)().localeDateString,s=(0,r.useRef)(!1),u=(0,r.useRef)(),m=(0,r.useMemo)((function(){return{interaction:{axis:"x"},plugins:{legend:{position:"bottom",align:"start",onClick:function(e,t,n){var r=n.legendItems.findIndex((function(e){return e.text===t.text}));n.chart.isDatasetVisible(r)?n.chart.hide(r):n.chart.show(r)},labels:{generateLabels:function(e){return e.data.datasets.map((function(t,n){return{fontColor:t.color,text:t.label,fillStyle:t.backgroundColor,strokeStyle:t.borderColor,pointStyle:"Daily count"===t.label?"rect":"line",hidden:!e.isDatasetVisible(n),order:t.order}})).sort((function(e,t){return e.order-t.order}))},usePointStyle:!0},onHover:function(e,t){!s.current&&u.current&&(s.current=!0,u.current.innerHTML=ja[t.text],u.current.style.left=e.x+"px",u.current.style.top=e.y+"px",u.current.style.visibility="visible",u.current.style.transform="translateY(-100%)")},onLeave:function(){u.current&&(s.current=!1,u.current.innerHTML="",u.current.style.visibility="hidden")}},tooltip:{enabled:!0,mode:"nearest",intersect:!1,yAlign:"bottom",usePointStyle:!0,position:"follow",backgroundColor:(0,d.getColor)("panel")({theme:e}),color:(0,d.getColor)(["neutral","iron"])({theme:e}),callbacks:{title:function(e){var t=(0,l.Z)(e,1)[0];return t?i(1e3*t.label,{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0}):""},labelPointStyle:function(e){return{pointStyle:"Total Nodes"===e.dataset.label?"rect":"line"}},label:function(e){return" ".concat(e.formattedValue," ").concat(e.dataset.label||"")}}},annotation:{annotations:o.reduce((function(t,r,a){return ka(ka({},t),{},(0,c.Z)({},"annotation".concat(a),{type:"line",value:n.findIndex((function(e){return e[0]===r.timestamp})),borderColor:(0,d.getRgbColor)(["blue","indigo"],.3)({theme:e}),borderDashOffset:0,borderWidth:10,drawTime:"afterDatasetsDraw",label:{drawTime:"afterDatasetsDraw",display:!1,backgroundColor:(0,d.getRgbColor)(["blue","indigo"],.8)({theme:e}),borderWidth:0,color:"white",content:r.name,textAlign:"center"},scaleID:"x",enter:function(e,t){var n=e.chart,r=n.options.plugins.annotation.annotations["annotation".concat(a)];r.label.display=!0,r.label.position=t.y/e.chart.chartArea.height>.5?"start":"end",n.update()},leave:function(e){var t=e.chart;t.options.plugins.annotation.annotations["annotation".concat(a)].label.display=!1,t.update()}}))}),{})}},responsive:!0,maintainAspectRatio:!1,scales:{x:{ticks:{callback:function(e){return i(1e3*this.getLabelForValue(e),{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0})},color:(0,d.getColor)("textLite")({theme:e})}},y:{beginAtZero:!0,ticks:{color:(0,d.getColor)("textLite")({theme:e})}}}}}),[e,n]);return[m,u]}(h,f),w=(0,l.Z)(x,2),C=w[0],O=w[1];return r.createElement(d.Flex,{column:!0,gap:4},r.createElement(d.Flex,{alignItems:"center",justifyContent:"between"},r.createElement(d.H3,null,"Usage"),r.createElement(Oa.Z,{values:s,utc:n,onChange:u,tagging:"billing-usage",isPlaying:!1,onlyDates:!0,accessorProps:Da,padding:[4,0],width:"auto",maxDate:Aa})),r.createElement(d.Flex,{position:"relative",height:90},E?r.createElement(an.Z,{title:"Loading billing data..."}):b?r.createElement(Pa.NY,{title:"Chart couldn't be loaded"}):r.createElement(Ca.kL,{type:"bar",data:y,options:C}),r.createElement(d.Flex,{ref:O,background:"panel",color:["neutral","iron"],position:"absolute",round:!0,padding:[3],width:{max:75},sx:{visibility:"hidden"},onMouseOver:function(){return O.current.style.visibility="hidden"}})))},La=function(e){var t=e.isSmall,n=e.currentPlan,a=e.loaded,o=e.currentLoaded,c=e.plans,i=((null===c||void 0===c?void 0:c.free)||[]).length>0?c.free[0].id:"Community",s=(0,r.useState)({timestamp:null,value:null}),u=(0,l.Z)(s,2),m=u[0],d=u[1];return r.createElement(r.Fragment,null,r.createElement(pa,{currentPlan:n}),a&&o?r.createElement(r.Fragment,null,Jn(n.slug)?r.createElement(sa,{isSmall:t,plans:c,currentPlan:n,showTeaserDetails:!0}):r.createElement(ca,{slug:n.slug,prices:c[n.slug],freePlanId:i,width:t?"auto":120,padding:[0],height:"auto",isSmall:t,isActive:!0,currentPlan:n,allPlansView:!0,nodesLastPeriod:m.value}),r.createElement(Xn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),r.createElement(Ma,{onNodesLastPeriodFetch:d})):r.createElement(an.Z,{title:a?"Loading billing info...":"Loading Netdata plans..."}))},Ra=n(92432),Ba={year:"Yearly",month:"Monthly"},_a=function(e){var t,n=e.plans,a=e.currentPlan,o=(0,v.uk)(),c=qn(),i=Kn(),s=(0,Wn.SH)(),u=(0,l.Z)(s,2),m=u[0],p=u[1],g=!!a.billingEmail&&!p,f=(0,y.Z)(),E=(0,l.Z)(f,2),h=E[0],x=E[1],w=(0,y.Z)(),C=(0,l.Z)(w,2),O=C[0],P=C[1],I=(0,ve.Z)(),S=(0,l.Z)(I,2),T=S[0],k=S[1],Z=(0,Wn.Zn)(),j=(Mr.Vc[a.slug]||Mr.Vc.free).title,F=((null===n||void 0===n?void 0:n.free)||[]).length>0?n.free[0].id:"Community",D=(0,b.gI)("billing:Manage"),A=(0,b.gI)("billing:ReadAll"),N=(Mr.Vc[null===a||void 0===a?void 0:a.slug]||Mr.Vc.free).title,M=Ba[null===a||void 0===a?void 0:a.interval];return r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Flex,{gap:2,alignItems:"center"},r.createElement(xe.Z,{as:nn.rU,to:"/spaces/".concat(o,"/settings/billing"),disabled:c,color:"text",hoverColor:"textLite",showToolTip:!0,content:"Back to Plan & Billing",align:"bottom",isBasic:!0},r.createElement(d.Icon,{name:"arrow_left",width:"20px",height:"20px",margin:[1.5,0,0]})),r.createElement(d.H3,null,"All Plans")),r.createElement(ma,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Active plan:"),r.createElement(d.Text,{strong:!0},N)),r.createElement(Xn,null),M&&r.createElement(r.Fragment,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Billing frequency:"),r.createElement(d.Text,{strong:!0},M)),r.createElement(Xn,null)),"Yearly"===M&&r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Committed Nodes:"),r.createElement(d.Text,{strong:!0},(null===a||void 0===a?void 0:a.committedNodes)||0)),r.createElement(Xn,null),A&&r.createElement(r.Fragment,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Credit:"),r.createElement(d.Text,{strong:!0},fr.format((null===a||void 0===a||null===(t=a.balance)||void 0===t?void 0:t.amount)||0)),r.createElement(Ye.Z,{content:da,align:"bottom",isBasic:!0},r.createElement(d.Icon,{name:"information",width:"16px",height:"16px",color:"textLite"}))),r.createElement(Xn,null),r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Billing email:"),r.createElement(d.Text,{strong:!0},(null===a||void 0===a?void 0:a.billingEmail)||"-")),r.createElement(Xn,null)),r.createElement(xe.Z,{Component:d.Flex,cursor:g?"pointer":"default",disabled:!g,onClick:m,alignItems:"center",gap:1},r.createElement("span",null,"Billing options and Invoices"),r.createElement(d.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"})),!Jn(null===a||void 0===a?void 0:a.slug)&&r.createElement(r.Fragment,null,r.createElement(Xn,null),r.createElement(xe.Z,{Component:d.Flex,cursor:"pointer",onClick:x,alignItems:"center",gap:1,disabled:O||c||!D,"data-ga":"cancel-plan::click::billing"},r.createElement(d.Text,{textDecoration:"underline"},O||c?"Canceling plan...":"Cancel plan")))),r.createElement(Xn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),h&&r.createElement(Nr,{title:"Community",onConfirm:function(){P(),i(),Z({productId:F}).then((function(){return(0,Ra.L)("billing","cancel-plan","global-view",{slug:null===a||void 0===a?void 0:a.slug,interval:null===a||void 0===a?void 0:a.interval,success:!0}),T({header:"Successfully canceled subscription",text:"You are now on Community plan"})})).catch((function(){return(0,Ra.L)("billing","cancel-plan","global-view",{slug:null===a||void 0===a?void 0:a.slug,interval:null===a||void 0===a?void 0:a.interval,success:!1}),k({header:"Failed to cancel the subscription",text:"Remained on ".concat(j," plan")})})).finally((function(){P(),i()}))},onClose:x}))},Ua=["center","end"],Va=m.default.div.withConfig({displayName:"plansDetails__Container",componentId:"sc-t6ze2m-0"})(["display:grid;",""],(function(e){return e.isEarlyBird?"grid-template-columns: 1fr 1.5fr 1.5fr 1.5fr 1.5fr;":"grid-template-columns: 1fr 1.5fr 1.5fr 1.5fr;"})),Ha=m.default.div.withConfig({displayName:"plansDetails__Header",componentId:"sc-t6ze2m-1"})(["display:contents;> *{background:",";border-bottom:1px solid ",";}"],(0,d.getColor)("panelBg"),(0,d.getColor)("separator")),Wa=(0,m.default)(d.Collapsible).withConfig({displayName:"plansDetails__Content",componentId:"sc-t6ze2m-2"})(["display:contents;"]),Ga=function(e){var t=e.center,n=e.end,a=(0,i.Z)(e,Ua);return r.createElement(d.Flex,{alignItems:"center",justifyContent:t?"center":n?"end":"start",padding:[2]},r.createElement(d.Text,a))},za=function(){return r.createElement(d.Icon,{name:"check",color:"primary"})},Ya=function(){return r.createElement(d.Icon,{name:"checkmark_partial_s",color:"textLite"})},qa=function(){return r.createElement(d.Icon,{name:"chevron_down_thin",color:"text"})},Ka=function(){return r.createElement(d.Icon,{name:"chevron_up_thin",color:"text"})},Qa=function(e){var t="earlyBird"===(e.currentPlan||{}).slug,n=(0,r.useState)((function(){return[!1,!1,!1,!1,!1]})),a=(0,l.Z)(n,2),o=a[0],c=a[1],i=function(e){return c((function(t){return t[e]=!t[e],(0,Ir.Z)(t)}))};return r.createElement(r.Fragment,null,r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(0)}},r.createElement(Ga,{strong:!0},"Usage Allowances"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[0]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[0]},r.createElement(Ga,null,"Single Node Metrics Access Limit"),r.createElement(Ga,{center:!0},"UNLIMITED"),t&&r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,null,"Multi-Node Infrastructure Metrics Access Limit"),r.createElement(Ga,{center:!0},"UNLIMITED"),t&&r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,null,r.createElement(d.Text,{id:"auditing-events"},"Auditing Events"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"events-related-to-actions-done-on-your-space-eg-invite-user-change-user-role-or-create-room"},"Events related to actions done on your Space, e.g. invite user, change user role or create room")),r.createElement(Ga,{center:!0},"4 hours"),t&&r.createElement(Ga,{center:!0},"4 hours"),r.createElement(Ga,{center:!0},"7 days"),r.createElement(Ga,{center:!0},"90 days"),r.createElement(Ga,null,r.createElement(d.Text,{id:"topology-events"},"Topology Events"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"node-state-transition-events-eg-live-or-offline"},"Node state transition events, e.g. live or offline")),r.createElement(Ga,{center:!0},"4 hours"),t&&r.createElement(Ga,{center:!0},"4 hours"),r.createElement(Ga,{center:!0},"7 days"),r.createElement(Ga,{center:!0},"14 days"),r.createElement(Ga,null,r.createElement(d.Text,{id:"alert-events"},"Alert Events"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"alert-state-transition-events-can-be-seen-as-an-alert-history-log"},"Alert state transition events, can be seen as an alert history log")),r.createElement(Ga,{center:!0},"4 hours"),t&&r.createElement(Ga,{center:!0},"4 hours"),r.createElement(Ga,{center:!0},"7 days"),r.createElement(Ga,{center:!0},"60 days"),r.createElement(Ga,null,"Globally Administered Alerts Notifications Integrations"),r.createElement(Ga,{center:!0},"Email and Discord"),t&&r.createElement(Ga,{center:!0},"Email and Discord"),r.createElement(Ga,{center:!0},"Email, Discord and Webhook"),r.createElement(Ga,{center:!0},"UNLIMITED"))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(1)}},r.createElement(Ga,{strong:!0},"User Administration"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[1]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[1]},r.createElement(Ga,null,"Role Based Access"),r.createElement(Ga,{center:!0},"Basic"),t&&r.createElement(Ga,{center:!0},"Basic"),r.createElement(Ga,{center:!0},"Basic"),r.createElement(Ga,{center:!0},"Advanced"),r.createElement(Ga,null,r.createElement(d.Text,{id:"administrators"},"Administrators"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"administrators-have-unrestricted-access-to-a-space"},"Administrators have unrestricted access to a space")),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"managers"},"Managers"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"same-as-admins-but-unable-to-add-nodes-or-manage-the-space-settings"},"Same as admins, but unable to add nodes, or manage the space settings")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"troubleshooters"},"Troubleshooters"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"same-as-managers-but-unable-to-manage-users-or-rooms"},"Same as managers, but unable to manage users or rooms")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"observers"},"Observers"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"read-only-role-restricted-to-specific-rooms"},"Read only role, restricted to specific rooms")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"billing"},"Billing"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"access-to-billing-details-and-subscription-management"},"Access to billing details and subscription management")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(r.Fragment,null,r.createElement(Ga,null,r.createElement(d.Text,{id:"billing"},"Member"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"access-to-billing-details-and-subscription-management"},"This role allows users to manage rooms and invite fellow Member teammates. These users cannot see all rooms in the Space but can see all Nodes since they are always on the All Nodes.")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null))))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(2)}},r.createElement(Ga,{strong:!0},"Support"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[2]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[2]},r.createElement(Ga,null,"Service Availability"),r.createElement(Ga,{center:!0,textAlign:"center"},"Best Effort (99.5% in last 12 months)"),t&&r.createElement(Ga,{center:!0,textAlign:"center"},"Best Effort (99.5% in last 12 months)"),r.createElement(Ga,{center:!0,textAlign:"center"},"Best Effort (99.5% in last 12 months)"),r.createElement(Ga,{center:!0,textAlign:"center"},"99.9% annually (excl. scheduled maintenance)"),r.createElement(Ga,null,"Technical Support"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),t&&r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,null,"Initial Deployment Consulting Services"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),t&&r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Remote Consultation Available upon Request"),r.createElement(Ga,null,"Alerts Digest"),r.createElement(Ga,{center:!0},"Limited"),t&&r.createElement(Ga,{center:!0},"Limited"),r.createElement(Ga,{center:!0},"Limited"),r.createElement(Ga,{center:!0},"Unlimited"))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(3)}},r.createElement(Ga,{strong:!0},"Advanced features"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[3]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[3]},r.createElement(Ga,null,"Custom Dashboards - incl. Grafana"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Nodes secured for access via Netdata only"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Secure Worldwide Remote Access to Dashboards"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Service Level room Views"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Centrally Dispatched Alerts Notifications"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infrastructure and Service Level Nodes Views"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infrastructure and Service Level Alerts Views"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infrastructure and Service Level Charts and Dashboards"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infinite Horizontal Scalability"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Machine Learning and Anomaly Advisor for All Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Advanced Troubleshooting with Metric Correlations"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Microservices Monitoring - incl. Kubernetes"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(4)}},r.createElement(Ga,{strong:!0},"Basic features"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[4]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[4]},r.createElement(Ga,null,"Unlimited Nodes"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Containers"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Users"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited High Resolution Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited High Resolution Custom Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Metrics Retention"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"1s granularity + 100ms Latency for All Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"800+ Integrations with Data Stores, Servers, and more"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Metrics Extration from web logs"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Zero Configuration Setup"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Auto-Detection of Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Pre-configured and out-of-the-box Alerts"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Synthetic Checks"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Auto generated Dashboards for All Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Metrics data exclusively stored On Premise"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Popular Alerts Notifications"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Open Data Exporters - Prometheus, Graphite, InfluxDB, and more"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)))))},Xa=function(e){var t=e.plans,n=e.loaded,a=e.currentLoaded,l=e.currentPlan;return r.createElement(d.Flex,{column:!0,height:"calc(100% - 30px)",gap:3},r.createElement(_a,{plans:t,currentPlan:l}),n&&a?r.createElement(d.Flex,{column:!0,gap:5},r.createElement(sa,{plans:t,currentPlan:l,showAllPlans:!0},r.createElement(d.Flex,{column:!0,height:50,width:40,justifyContent:"center"},r.createElement(d.Text,{strong:!0},"Pricing"))),r.createElement(Qa,{currentPlan:l})):r.createElement(an.Z,{title:n?"Loading billing info...":"Loading Netdata plans..."}))},$a={Community:0,Pro:1,Business:2},Ja={month:"Monthly",year:"Yearly"},el=function(e){var t=e.from,n=e.to,r=e.fromNodes,a=e.toNodes,l=e.interval,o=e.success,c=void 0===o||o,i=Ja[l]||l;if(t===n&&r===a)return{header:c?"Successful billing cycle change":"Failed to update billing cycle",text:c?"Subscription billing cycle changed to ".concat(i):"Subscription is still on ".concat(i," billing cycle")};if(t===n)return{header:c?"Successful change of commitment":"Failed to change the commitment",text:c?"Commitment ".concat(r<a?"increased":"decreased"," from ").concat(r," to ").concat(a," nodes"):"Commitment remained the same, ".concat(r," nodes")};var s=$a[t]>$a[n];return{header:c?"Successfully ".concat(s?"downgraded":"upgraded"," plan"):"Failed to ".concat(s?"downgrade":"upgrade"," plan"),text:c?"Subsrciprion ".concat(s?"downgraded":"upgraded"," from ").concat(t," to ").concat(n," plan (").concat(i,")"):"Remained on ".concat(t," plan")}},tl=function(){!function(){var e=(0,nn.lr)(),t=(0,l.Z)(e,2),n=t[0],a=t[1],o=(0,ve.Z)(),c=(0,l.Z)(o,2),i=c[0],s=c[1];(0,r.useEffect)((function(){var e=n.get("from"),t=n.get("from_committed_nodes"),r=n.get("interval"),l=n.get("result"),o=n.get("to"),c=n.get("to_committed_nodes");switch(l){case"success":var u={from:e,fromNodes:t,interval:r,to:o,toNodes:c,success:!0};i(el(u)),(0,Ra.L)("billing","callback","global-view",u);break;case"failure":var m={from:e,fromNodes:t,interval:r,to:o,toNodes:c,success:!1};s(el(m)),(0,Ra.L)("billing","callback","global-view",m)}l&&a("")}),[n])}();var e=(0,Wn.Gl)(),t=e.loaded,n=e.value,o=(0,Wn.RP)(),c=o.loaded,i=o.value,s=(0,Hn.m)();return r.createElement(d.Flex,{column:!0,height:"calc(100% - 30px)",gap:3},r.createElement(Yn,null,r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/all-plans",element:r.createElement(Xa,{isSmall:s,currentPlan:i,loaded:t,currentLoaded:c,plans:n})}),r.createElement(a.AW,{path:"/",element:r.createElement(La,{isSmall:s,currentPlan:i,loaded:t,currentLoaded:c,plans:n})}))))},nl=n(41898),rl=["containerProps"],al=["settingsTab"];function ll(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ol(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ll(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ll(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var cl=(0,s.Z)((function(){return Promise.all([n.e(502),n.e(129)]).then(n.bind(n,66129))})),il=(0,m.default)(p.G).withConfig({displayName:"manage-workspace__ColumnHeader",componentId:"sc-j9n54n-0"})(["width:180px;padding:16px;"]),sl=function(e){return function(t){return r.createElement(g.TZ,{hasFooter:!1,hasModalTitle:!1},r.createElement(e,t))}},ul=function(e){return function(t){var n=t.containerProps,a=void 0===n?{}:n,l=(0,i.Z)(t,rl),c=ol({height:"100%",padding:[4,0,0,0]},a);return r.createElement(g.TZ,(0,o.Z)({hasFooter:!1,hasModalTitle:!1},c),r.createElement(e,l))}},ml=sl(Rn),dl=sl(We),pl=sl(dt),gl=sl(it),fl=ul(xn),El=sl(tl),bl=ul(function(e){return function(t){return r.createElement(r.Suspense,{fallback:"Loading settings tab..."},r.createElement(e,t))}}(cl)),hl=(0,r.memo)((function(){var e=(0,a.s0)(),t=(0,a.TH)(),n=t.state,o=void 0===n?{}:n,c=t.pathname,s=(0,a.UO)(),m=s.settingsTab,p=(0,i.Z)(s,al),E=(0,r.useState)((null===o||void 0===o?void 0:o.previousUrlPath)||null),h=(0,l.Z)(E,1)[0],y=(0,v.OS)("name"),x=function(e){var t=W.dH.indexOf(e);return-1!==t?t:W.z2}(m),w=(0,r.useCallback)((function(t){var n=function(e,t){var n=e.split("/"),r=n.indexOf("settings")+1-n.length;return"".concat(n.slice(0,r).join("/"),"/").concat(W.dH[t]||W.z2)}(c,t);e(n)}),[m]);(0,r.useEffect)((function(){W.fV[m]||e((0,u.Gn)(c,ol(ol({},p),{},{settingsTab:W.z2})))}),[]);var C=(0,b.gI)("billing:ReadBasic"),O=(0,b.gI)("room:ReadAll"),P=(0,b.gI)("user:ReadAll"),I=(0,b.gI)("channel:ReadAll"),S=(0,k.jW)();(0,r.useEffect)((function(){C||m===W.fM&&e((0,u.Gn)(c,ol(ol({},p),{},{settingsTab:W.z2})))}),[C,m]);var T=(0,v.uk)(),Z=(0,r.useCallback)((function(){e(h||"/spaces/".concat(T))}),[h,T]);return y?r.createElement(g.oU,{"data-testid":"manageWorkspaceModal",right:!0,closeOnOverlayClick:!0,onClose:Z},r.createElement(f.x,{"data-testid":"manageWorkspaceModal-header",onClose:Z,title:r.createElement(Vn,null)}),r.createElement(d.Tabs,{row:!0,column:!1,"data-testid":"manageWorkspaceModal-tabs",selected:x,onChange:w,TabsHeader:il,tabsProps:{column:!0},height:"100%",noDefaultBorder:!0,position:"relative"},r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-spaceTab",label:W.fV[W.m3],"data-ga":"manage-space::click-tab::space-tab",isMenuItem:!0},r.createElement(ml,{"data-testid":"manageWorkspaceModal-spaceTabContent",onClose:Z,small:!0})),r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-warRoomsTab","data-ga":"manage-space::click-tab::rooms-tab",label:"Rooms",isMenuItem:!0},r.createElement(dl,{"data-testid":"manageWorkspaceModal-warRoomsTabContent"})),(O||S)&&r.createElement(d.Tab,{basis:0,label:"Nodes","data-testid":"manageWorkspaceModal-nodesTab","data-ga":"manage-space::click-tab::nodes-tab",isMenuItem:!0},r.createElement(pl,{"data-testid":"manageWorkspaceModal-nodesTabContent"})),P&&r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-usersTab","data-ga":"manage-space::click-tab::users-tab",label:"Users",isMenuItem:!0},r.createElement(gl,{"data-testid":"manageWorkspaceModal-usersTabContent"})),I&&r.createElement(d.Tab,{basis:0,label:"Alerts & Notifications","data-testid":"manageWorkspaceModal-notificationsTab","data-ga":"manage-space::click-tab::notifications-tab",isMenuItem:!0},r.createElement(fl,null)),C&&!window.envSettings.onprem&&r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-billingTab","data-ga":"manage-space::click-tab::billing-tab",label:"Plan & Billing",isMenuItem:!0},r.createElement(El,{"data-testid":"manageWorkspaceModal-billingTabContent"})),r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-integrationsTab","data-ga":"manage-space::click-tab::integrations-tab",label:"Integrations",isMenuItem:!0},r.createElement(bl,{flavour:nl.RV.settingsPage,containerProps:{padding:[0]},"data-testid":"manageWorkspaceModal-integrationsTabContent"})))):null})),vl=function(){var e=(0,a.TH)(),t=e.pathname,n=e.state;return r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/",element:r.createElement(a.Fg,{state:n,to:{pathname:"".concat(t,"/").concat(W.z2)}})}),r.createElement(a.AW,{path:":settingsTab/*",element:r.createElement(hl,null)}))}},14809:function(e,t,n){"use strict";n.d(t,{Z:function(){return O}});var r=n(87462),a=n(67294),l=n(57509),o=n(89250),c=n(13477),i=n(94666),s=n(15861),u=n(29439),m=n(64687),d=n.n(m),p=(n(57327),n(41539),n(88449),n(2490),n(59849),n(4480)),g=n(93017),f=n(274),E=n(46585),b=n(74059),h=n(57079),v=n(58502),y=n(95383),x=n(53606),w="leave-space-dialog",C="leaveSpaceDialog",O=function(e){var t=e.id,n=e.name,m=e.onClose,O=(0,o.s0)(),P=(0,c.Iy)("id"),I=(0,i.H4)(),S=(0,i.nP)(),T=(0,i.Wy)(),k=function(e){var t=(0,g.Z)(),n=(0,u.Z)(t,2)[1];return(0,p._8)((function(t){var r=t.snapshot,a=t.set,l=t.reset;return function(){var t=(0,s.Z)(d().mark((function t(o){var c,s,m,p,g,x,w,C,O;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return c=o.currentUserId,s=o.onSuccess,m=o.onError,t.next=3,r.getPromise((0,b.st)("ids"));case 3:if(p=t.sent,g=p.filter((function(t){return e!==t})),x=(0,u.Z)(g,1),w=x[0]){t.next=9;break}return n({header:"Spaces",text:E.T$.leave}),t.abrupt("return");case 9:if(t.t0=w,!t.t0){t.next=14;break}return t.next=13,r.getPromise((0,v.ZP)(w));case 13:t.t0=t.sent;case 14:return C=t.t0,O=C.slug,a((0,b.st)("ids"),g),a(h.Z,(function(t){return t.filter((function(t){return t!==e}))})),t.prev=18,t.next=21,(0,f.Sz)(e,[c]);case 21:s&&s(O),(0,i.zm)(l,e),(0,y.r1)(l,e),l((0,v.ZP)(e)),t.next=31;break;case 27:t.prev=27,t.t1=t.catch(18),a((0,b.st)("ids"),p),m&&m();case 31:case"end":return t.stop()}}),t,null,[[18,27]])})));return function(e){return t.apply(this,arguments)}}()}),[e])}(t),Z=(0,x.Z)(t),j=(0,a.useCallback)((function(e){return O("/spaces/".concat(e))}),[]),F=1===I.length,D=1===S.length&&T,A=F?{confirmLabel:"Yes, leave","data-ga":"".concat(w,"-last-member"),"data-testid":"".concat(C,"LastMember"),handleConfirm:function(){return Z({onSuccess:j})},message:a.createElement(a.Fragment,null,"If you leave, space ",a.createElement("strong",null,n)," will be deleted immediately.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(n," space")}:D?{confirmLabel:"Give rights","data-ga":"".concat(w,"-last-admin"),"data-testid":"".concat(C,"LastAdmin"),handleConfirm:function(){return O("users")},isConfirmPositive:!0,message:a.createElement(a.Fragment,null,"You are the last admin of ",a.createElement("strong",null,n)," space. Please give admin rights to another member so you can leave this space."),title:"Leave ".concat(n," space")}:{confirmLabel:"Yes, leave","data-ga":w,"data-testid":C,handleConfirm:function(){return k({currentUserId:P,onSuccess:j})},message:a.createElement(a.Fragment,null,"You are about to leave ",a.createElement("strong",null,n)," space.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(n," space")};return a.createElement(l.ConfirmationDialog,(0,r.Z)({handleDecline:m},A))}},73955:function(e,t,n){var r=n(79833),a=0;e.exports=function(e){var t=++a;return r(e)+t}}}]); \ No newline at end of file
diff --git a/web/gui/v2/654.89446e8c7a0b8bba60ba.chunk.js b/web/gui/v2/654.89446e8c7a0b8bba60ba.chunk.js
deleted file mode 100644
index 304bb2c4..00000000
--- a/web/gui/v2/654.89446e8c7a0b8bba60ba.chunk.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="85fec589-99bb-49ee-a28c-3078df5a4a9d",e._sentryDebugIdIdentifier="sentry-dbid-85fec589-99bb-49ee-a28c-3078df5a4a9d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[654],{51091:function(e,t,n){"use strict";var r=n(87462),a=n(45987),l=(n(57327),n(41539),n(88449),n(2490),n(59849),n(21249),n(57640),n(9924),n(92222),n(60677)),o=n(10928),c=n.n(o),i=n(67294),s=n(15557),u=["items","isBig","showBackButton","testid"],m=(0,l.default)(s.Box).withConfig({displayName:"breadcrumbs__StyledItemContainer",componentId:"sc-3u39st-0"})([""]),d=(0,l.css)(["&:hover{color:",";}"],(function(e){var t=e.withHover,n=e.theme;return t&&(0,s.getColor)("success")({theme:n})})),p=(0,l.default)(s.Text).withConfig({displayName:"breadcrumbs__StyledText",componentId:"sc-3u39st-1"})(["",""],d),g=(0,l.default)(s.TextSmall).withConfig({displayName:"breadcrumbs__StyledTextSmall",componentId:"sc-3u39st-2"})(["",""],d);t.Z=function(e){var t=e.items,n=e.isBig,l=e.showBackButton,o=void 0===l||l,d=e.testid,f=void 0===d?"":d,E=(0,a.Z)(e,u),b=(0,i.useMemo)((function(){return null!==t&&void 0!==t&&t.length&&o?c()(t.filter((function(e){return!!e.onClick}))).onClick:null}),[t,o]);if(null===t||void 0===t||!t.length)return null;var h=n?p:g;return i.createElement(s.Flex,(0,r.Z)({gap:4},E),o&&i.createElement(s.Button,{onClick:b,icon:"chevron_left",label:"Back",neutral:!0,flavour:"hollow",small:!0,padding:[0,2,0,1],textTransform:"uppercase","data-testid":"".concat(f,"-breadcrumbs-backButton")}),i.createElement(s.Flex,{gap:2,alignItems:"center"},t.map((function(e,t){var n=e.isDisabled,a=e.name,l=e.onClick;return i.createElement(m,(0,r.Z)({key:t,alignItems:"center"},l&&{cursor:"pointer",onClick:l},{"data-testid":"".concat(f,"-breadcrumbs-level-").concat(t)}),i.createElement(h,{color:n&&"textLite","data-testid":"".concat(f,"-breadcrumbs-level-").concat(t),withHover:!!l},0!==t&&" / ",a))}))))}},80959:function(e,t,n){"use strict";var r=n(87462),a=n(45987),l=n(67294),o=n(15557),c=["message","title","footer"];t.Z=function(e){var t=e.message,n=e.title,i=e.footer,s=(0,a.Z)(e,c),u=(null===s||void 0===s?void 0:s["data-testid"])||"functionError";return l.createElement(o.Flex,(0,r.Z)({alignItems:"center",column:!0,"data-testid":u,flex:!0,gap:3,justifyContent:"center",padding:[0,20]},s),l.createElement(o.H3,{"data-testid":"".concat(u,"-title")},n),l.createElement(o.TextBig,{color:"textDescription","data-testid":"".concat(u,"-message")},t),i)}},93742:function(e,t,n){"use strict";n.d(t,{p:function(){return o}});var r=n(93433),a=(n(69826),n(41539),n(31672),n(2490),n(59461),n(21249),n(57640),n(9924),n(3689)),l=n(95383),o=function(e){var t=(0,l.J7)().find((function(e){return"All nodes"==e.name}));return t?e?t[e]:t:null};t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.all,n=e.internal,o=(0,l.J7)().map((function(e){var t=e.id;return{label:e.name,value:t}})),c=[];return n&&c.push(a.mN),t&&c.push(a.k_),c.push.apply(c,(0,r.Z)(o)),c}},27308:function(e,t,n){"use strict";var r=n(87462),a=n(45987),l=n(67294),o=n(79655),c=n(15557),i=n(91008),s=n(33335),u=n(99826),m=["classification"];t.Z=function(e){var t=e.classification,n=(0,a.Z)(e,m),d=(0,s.gI)("billing:ReadAll"),p=(0,u.Z)(t.toLowerCase()).url;return p?l.createElement(c.Flex,{background:"sideBarMini",border:{side:"all",color:"tabsBorder"},padding:[1,2],round:!0},l.createElement(i.Z,(0,r.Z)({align:"bottom",as:o.rU,boxProps:{as:c.Flex},color:"text",Component:c.TextMicro,content:"Available on ".concat(t," plan"),disabled:!d,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:p},n),t)):null}},84580:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(45987),a=n(67294),l=n(87462),o=(n(82526),n(41817),n(15557)),c=n(82351),i=["description","isRequired","title"],s=function(e){var t=e.description,n=e.isRequired,l=e.title,s=(0,r.Z)(e,i),u=s["data-testid"]?"".concat(s["data-testid"],"-label"):"fieldLabel";return a.createElement(o.Flex,{"data-testid":"".concat(u,"-container"),gap:1},a.createElement(o.TextSmall,{color:"textLite","data-testid":u},l,n&&" *"),t&&a.createElement(c.Z,{align:"top",content:t,"data-testid":"".concat(u,"-info"),plain:!0},a.createElement(o.Icon,{color:"textLite",name:"information",size:"small"})))},u=["data-testid","description","isRequired","onChange","title"],m=function(e){var t=e["data-testid"],n=void 0===t?"input":t,c=e.description,i=e.isRequired,m=e.onChange,d=e.title,p=(0,r.Z)(e,u);return a.createElement(o.Flex,{column:!0,"data-testid":n,flex:"grow",gap:1},a.createElement(s,{"data-testid":n,description:c,isRequired:i,title:d}),a.createElement(o.TextInput,(0,l.Z)({"data-testid":"".concat(n,"-field"),size:"tiny",onChange:function(e){var t=e.target;return m(t.value)}},p)))},d=(n(21249),n(57640),n(9924),n(26833),n(92222),["data-testid","description","getDataGa","fields","id","isRequired","onChange","secrets","setSecrets","title"]),p=["getValue","id","onChange"],g=function(e){var t,n=e["data-testid"],c=void 0===n?"select":n,i=e.description,u=e.getDataGa,m=e.fields,g=e.id,f=e.isRequired,E=e.onChange,b=e.secrets,h=e.setSecrets,v=e.title,y=(0,r.Z)(e,d);return a.createElement(o.Flex,{column:!0,"data-testid":c,flex:"grow",gap:1},a.createElement(s,{"data-testid":c,description:i,isRequired:f,title:v}),a.createElement(o.Select,(0,l.Z)({"data-testid":"".concat(c,"-field"),menuPortalTarget:document.body,onChange:function(e){return E(e)},styles:{size:"tiny"},menuPlacement:"auto"},y)),Object.values((null===m||void 0===m?void 0:m[null===(t=y.value)||void 0===t?void 0:t.value])||{}).map((function(e){var t=e.getValue,n=e.id,o=e.onChange,i=(0,r.Z)(e,p);return a.createElement(S,(0,l.Z)({"data-ga":u("".concat(g,"-").concat(n,"-").concat(i.component)),"data-testid":"".concat(c,"-").concat(n),key:n,id:n,onChange:o({id:g,setSecrets:h,subsetId:n}),value:t({id:g,secrets:b,subsetId:n})},i))})))},f=n(4942),E=n(29439),b=(n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(69720),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(57557)),h=n.n(b),v=n(73955),y=n.n(v),x=n(31790),w=n(25185);function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?C(Object(n),!0).forEach((function(t){(0,f.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var P=["component"],I={default:function(){return null},pairs:function(e){var t=e.componentPairs,n=e["data-testid"],r=void 0===n?"pairs":n,l=e.description,c=e.getDataGa,i=e.id,u=e.isRequired,m=e.placeholder,d=e.setSecrets,p=e.title,g=(0,a.useState)({}),b=(0,E.Z)(g,2),v=b[0],C=b[1];(0,a.useEffect)((function(){var e=Object.values(v).reduce((function(e,t){var n=t.key,r=t.value;return n?O(O({},e),{},(0,f.Z)({},n,r||"")):e}),{});d((function(t){return Object.keys(e).length?O(O({},t),{},(0,f.Z)({},i,e)):h()(t,i)}))}),[v]);return a.createElement(o.Flex,{column:!0,"data-testid":r,gap:1},a.createElement(o.Flex,{alignItems:"center",justifyContent:"between"},a.createElement(s,{"data-testid":r,description:l,isRequired:u,title:p}),t.map((function(e){var n=(0,x.XM)(e);return a.createElement(w.nO,{"data-ga":c("".concat(i,"-").concat(n,"-add")),"data-testid":"".concat(r,"-").concat(n,"Add"),key:n,label:1===t.length?"Add":"Add ".concat(n),onClick:function(){return function(e){return C((function(t){return O(O({},t),{},(0,f.Z)({},y()("pair_"),{key:"",components:e,value:""}))}))}(e)}})}))),Object.entries(v).map((function(e){var t=(0,E.Z)(e,2),n=t[0],l=t[1],s=l.key,u=l.components,d=l.value,p=(0,E.Z)(u,2),g=p[0],b=p[1],v=(0,x.XM)(u);return a.createElement(o.Flex,{alignItems:"end",key:"".concat(v,"-").concat(n),gap:2},a.createElement(S,{component:g,"data-ga":c("".concat(i,"-").concat(v,"-key")),"data-testid":"".concat(r,"-").concat(v,"Key"),onChange:function(e){return C((function(t){return O(O({},t),{},(0,f.Z)({},n,O(O({},t[n]),{},{key:e})))}))},value:s,placeholder:m,title:"Key"}),a.createElement(S,{component:b,"data-ga":c("".concat(i,"-").concat(v,"-value")),"data-testid":"".concat(r,"-").concat(v,"Value"),onChange:function(e){return C((function(t){return O(O({},t),{},(0,f.Z)({},n,O(O({},t[n]),{},{value:e})))}))},value:d,placeholder:m,title:"Value"}),a.createElement(o.Button,{flavour:"borderless",icon:"trashcan",margin:[0,0,1,0],neutral:!0,onClick:function(){C((function(e){return h()(e,n)}))}}))})))},input:m,select:g},S=function(e){var t=e.component,n=(0,r.Z)(e,P),l=I[t]||I.default;return a.createElement(l,n)}},25185:function(e,t,n){"use strict";n.d(t,{A3:function(){return p},Ce:function(){return i},QD:function(){return g},aN:function(){return f},bb:function(){return m},fb:function(){return E},hz:function(){return d},nO:function(){return u},zT:function(){return s}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),a=n(60677),l=n(15557);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var i=(0,a.default)(l.Flex).attrs({alignItems:"center",color:"text",gap:1,hoverColor:"text"}).withConfig({displayName:"styled__AnchorComponent",componentId:"sc-wc4x41-0"})(["&,&:hover{text-decoration:none;}"]),s=(0,a.default)(l.Icon).attrs({height:"130px",width:"130px"}).withConfig({displayName:"styled__BlurredIcon",componentId:"sc-wc4x41-1"})(["filter:blur(70px);position:absolute;left:0;top:0;opacity:0.5;"]),u=(0,a.default)(l.Button).attrs({height:"22px",icon:"plus",padding:[.5,2,.5,1],small:!0,width:"auto"}).withConfig({displayName:"styled__IntegrationAction",componentId:"sc-wc4x41-2"})(["&& > span{font-weight:bold;margin-left:4px;}"]),m=((0,a.default)(l.Flex).withConfig({displayName:"styled__FormRow",componentId:"sc-wc4x41-3"})(["flex-flow:row nowrap;align-items:center;justify-content:space-between;"]),(0,a.default)(l.TextSmall).withConfig({displayName:"styled__LearnMoreTest",componentId:"sc-wc4x41-4"})(["position:relative;"])),d=(0,a.default)(l.ModalContent).attrs({background:"dropdown",height:{base:150,max:150,min:45},overflow:{vertical:"auto"},width:{base:121,max:140,min:70}}).withConfig({displayName:"styled__ModalContent",componentId:"sc-wc4x41-5"})(["box-shadow:0 18px 28px rgb(9 30 66 / 15%),0 0 1px rgb(9 30 66 / 31%);"]),p=(0,a.default)(l.ModalCloseButton).attrs({color:"text",height:"16px",width:"16px"}).withConfig({displayName:"styled__ModalClose",componentId:"sc-wc4x41-6"})(["&:hover{fill:",";}"],(0,l.getColor)("selected")),g=(0,a.default)(l.Flex).attrs((function(e){return c(c({},e.hasBorder?{border:{side:"bottom",color:"disabled"}}:{}),{},{column:!0,padding:[3,4]})})).withConfig({displayName:"styled__ModalSection",componentId:"sc-wc4x41-7"})([""]),f=(0,a.default)(l.Icon).attrs({name:"warning_triangle",height:"18px",width:"18px",color:["yellow","amber"]}).withConfig({displayName:"styled__WarningIcon",componentId:"sc-wc4x41-8"})(["position:absolute;top:0;right:0;z-index:1;"]),E=(0,a.default)(l.Icon).attrs({height:"12px",width:"12px",color:"white"}).withConfig({displayName:"styled__SystemIcon",componentId:"sc-wc4x41-9"})(["position:relative;top:2px;"])},66654:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return vl}});n(92222);var r=n(67294),a=n(89250),l=n(29439),o=n(87462),c=n(4942),i=n(45987),s=(n(66992),n(41539),n(88674),n(78783),n(33948),n(82772),n(47042),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(2145)),u=n(12599),m=n(60677),d=n(15557),p=n(73256),g=n(16645),f=n(7693),E=n(56662),b=(n(21249),n(57640),n(9924),n(33335)),h=n(95383),v=n(74059),y=n(46667),x=n(20031),w=[{id:"name",accessor:"name",header:"Name",cell:function(e){var t=e.getValue,n=e.row.original.isMember,a=t(),l=(0,b.gI)("room:ReadAll");return r.createElement(d.Flex,{alignItems:"center"},l&&n&&r.createElement(x.Z,{margin:[0,1,0,0]}),r.createElement(d.Text,{margin:l&&!n&&[0,0,0,4]},a))}},{id:"nodeCount",accessor:"nodeCount",header:"Nodes",cell:function(e){var t=e.getValue;return"".concat(t()||0)}},{id:"memberCount",accessor:"memberCount",header:function(){return"Users"},cell:function(e){var t=e.getValue;return"".concat(t()||0)}}],C=n(15861),O=n(64687),P=n.n(O),I=(n(26699),n(32023),n(4480)),S=n(33427),T=n(25819),k=n(37518),Z=n(91850),j=n(4474),F=function(){var e=(0,C.Z)(P().mark((function e(t,n){return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(n.map((function(e){return(0,T.GX)(t,e)}))));case 1:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),D=n(7724);function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?A(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var M=function(e){var t=e.spaceId,n=e.spaceName,a=e.startIsCreating,o=function(e){return(0,I._8)((function(t){var n=t.snapshot,r=t.set,a=t.reset;return function(){var t=(0,C.Z)(P().mark((function t(o){var c,i,s,u,m,d,p,g,f,E=arguments;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=(c=E.length>1&&void 0!==E[1]?E[1]:{}).onSuccess,s=c.onFail,t.next=3,n.getPromise((0,h.Ad)({id:e,key:"ids"}));case 3:return u=t.sent,m=o.map((function(e){return e.id})),d=u.filter((function(e){return!m.includes(e)})),r((0,h.Ad)({id:e,key:"ids"}),d),t.next=9,Promise.all(d.map((function(e){return n.getPromise((0,k.n2)({id:e}))})));case 9:return p=t.sent,t.prev=10,t.next=13,F(e,m);case 13:r(Z.IV,(0,j.rZ)(p)),o.forEach((function(t){var n=t.id,r=t.slug;a((0,k.n2)({id:n})),a((0,Z.xh)([e,r]))})),i&&i(),o.length>1?(0,S.$T)("Rooms were successfully deleted from Space!"):(g=(0,l.Z)(o,1),f=g[0],(0,S.$T)("Room ".concat(f.name," was successfully deleted!"))),t.next=23;break;case 19:t.prev=19,t.t0=t.catch(10),r((0,h.Ad)({id:e,key:"ids"}),u),s&&s(t.t0);case 23:case"end":return t.stop()}}),t,null,[[10,19]])})));return function(e){return t.apply(this,arguments)}}()}),[e])}(t),c=(0,b.gI)("space:Delete"),i=(0,b.gI)("room:Create"),s=function(e){if(e){var t=Array.isArray(e)?e.map((function(e){return{id:e.id,name:e.name}})):[{id:e.id,name:e.name}];o(t)}},u=function(e,t){var n=t.length;return n?1===n?(0,D.CE)(t[0].name):(0,D.CE)(n):""},m=function(e,t){var a=t.length;if(!a)return"";var l=N(N({},1===a?{name:t[0].name}:{roomsLength:a}),{},{spaceName:n});return r.createElement(D.M5,l)},d=(0,r.useMemo)((function(){return{delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){return r.createElement(D.M5,{name:e.name,spaceName:n})},confirmationTitle:function(e){return(0,D.R4)(e.name)},dataGa:function(e){var t=e.slug;return"manage-rooms::click-delete::".concat(t)},declineLabel:"Cancel",handleAction:s,isDisabled:function(e){return e.untouchable||!c},tooltipText:"Delete room"}}}),[c]);return{bulkActions:(0,r.useMemo)((function(){return{addEntry:{dataGa:"manage-rooms::click::add-room",handleAction:a,isDisabled:!i,tooltipText:"Create room"},delete:{confirmationMessage:m,confirmationTitle:u,confirmLabel:"Yes, delete",dataGa:"manage-rooms::delete-bulk",declineLabel:"Cancel",handleAction:s,isDisabled:!c,tooltipText:"Delete rooms"}}}),[i,c,m,u]),rowActions:d}};function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var B=function(){var e=(0,h.J7)(),t=(0,b.gI)("room:Delete"),n=e.map((function(e){return R(R({},e),{},{disabled:e.untouchable||!t})})),o=(0,r.useState)(""),c=(0,l.Z)(o,2),i=c[0],s=c[1],u=(0,v.OS)("name"),m=(0,v.OS)("id"),d=(0,y.Z)(),p=(0,l.Z)(d,4),g=p[0],f=p[2],E=p[3],x=(0,r.useState)([]),C=(0,l.Z)(x,2)[1],O=M({startIsCreating:f,spaceId:m,spaceName:u}),P=O.bulkActions,I=O.rowActions,S=(0,a.TH)().pathname,T=(0,a.s0)(),k=(0,r.useCallback)((function(e){var t=e.data.slug;T("".concat(S,"/").concat(t))}),[S,T]);return{roomList:n,globalFilter:i,spaceName:u,spaceId:m,isCreating:g,rowActions:I,bulkActions:P,columns:w,startIsCreating:f,stopIsCreating:E,setGlobalFilter:s,onRowSelected:C,onClickRow:k,dataGa:"manage-rooms",canDeleteRoom:t}},_=function(e){var t=B(),n=t.roomList,a=t.spaceName,l=t.isCreating,c=t.columns,i=t.setGlobalFilter,s=t.stopIsCreating,u=t.onRowSelected,m=t.rowActions,p=t.bulkActions,g=t.onClickRow,f=t.dataGa;t.canDeleteRoom;return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden",gap:3},e),r.createElement(d.H3,null,"Rooms of ",a),r.createElement(d.NetdataTable,{onGlobalSearchChange:i,onRowSelected:u,onClickRow:g,enableSorting:!0,dataColumns:c,enableSelection:!0,data:n,bulkActions:p,rowActions:m,dataGa:f,testPrefixCallback:function(e){return e.name}})),l&&r.createElement(E.U,{onClose:s}))},U=(n(74916),n(64765),n(41817),n(97323)),V=n(41379),H=n(39904),W=n(2509),G=n(17563),z=n(96929),Y=n(97945);function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Q=function(){var e=(0,z.zN)();return{nodes:(0,Y.Ne)(e).map((function(e){return K(K({},e),{},{disabled:e.hasAccessibleData})}))||[],nodeIds:e}},X=n(18129),$=["roomUntouchable"],J=(0,r.memo)((function(e){var t=e.roomUntouchable,n=(0,i.Z)(e,$),a=Q({roomUntouchable:t}),l=a.nodes,c=a.nodeIds;return r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden",gap:3},n),r.createElement(d.H3,null,"Nodes in this room (",c.length,") "),r.createElement(X.Z,{showClaimNodeOnEmptySpace:!0,enableSelection:!0,customNodes:l,roomUntouchable:t}))})),ee=n(92903),te=n(1229),ne=n(6557),re=n.n(ne),ae=n(91966),le=n.n(ae),oe=n(94666),ce=n(34912),ie=n(31203),se=[{id:"user",accessorKey:"user",header:"Name",cell:function(e){var t=e.cell.row.original,n=t.avatarURL,a=t.name;return r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(ie.Z,{src:n,title:a}),r.createElement(d.TextSmall,null,a))}},{id:"email",accessorKey:"email",header:"Email",cell:function(e){var t=e.getValue;return r.createElement(d.TextSmall,null,t())}}],ue=[{id:"user",desc:!1}],me=function(e){var t=e.setSelected,n=(0,oe.H4)(),a=(0,te.e1)(),l=(0,r.useMemo)((function(){return le()(n,a)}),[n,a]),o=(0,r.useCallback)((function(e){t(e.map((function(e){return e.id})))}),[]),c=(0,ce.Vr)(l);return r.createElement(d.Flex,{alignItems:"start",padding:[1],overflow:{horizontal:"hidden",vertical:"auto"}},r.createElement(d.NetdataTable,{dataColumns:se,data:c,autoResetSelectedRows:!0,sortableBy:ue,onGlobalSearchChange:re(),onRowSelected:o,enableSelection:!0,enableSorting:!0}))},de=function(e){var t=e.onAdd,n=e.onClose,a=e.selected,l=e.error,o=e.name;return r.createElement(d.Flex,{alignItems:"center",justifyContent:"between"},l?r.createElement(d.Text,{color:"error"},"Select at least 1 user to add to ",o):r.createElement("div",null),r.createElement(d.Flex,{gap:2},r.createElement(d.Button,{neutral:!0,flavour:"hollow",onClick:n,label:"Cancel"}),r.createElement(d.Button,{disabled:!a.length,label:"Add ".concat(a.length," members"),onClick:t})))},pe=n(87181),ge=n(86414),fe=n(36925),Ee=n(35838),be=n(74855),he=n(52631),ve=n(93017),ye=n(8048),xe=n(91008),we=n(46475),Ce=function(e){var t=e.email;return(0,fe.vV)(t)},Oe={header:"Invitations",text:"Invitations successfully sent!"},Pe=function(e){var t=(0,v.OS)(),n=t.id,a=t.slug,c=(0,k.UL)(),i=(0,k.tE)(c,"name"),s=(0,r.useState)([]),u=(0,l.Z)(s,2),m=u[0],p=u[1],g=(0,Ee.E)(n),f=(0,l.Z)(g,4),E=f[2],h=f[3],y=(0,ve.Z)(),x=(0,l.Z)(y,2)[1],w=(0,r.useState)(),C=(0,l.Z)(w,2),O=C[0],P=C[1],I=(0,r.useState)(),S=(0,l.Z)(I,2),T=S[0],Z=S[1],j=function(e){var t=e||Oe,n=t.header,r=t.text,a=(0,be.sc)({header:n,text:r,success:!0});he.Z.success(a,{context:"manageInvitations"}),p([]),P(Math.random())},F=(0,r.useCallback)((function(){var e=m.filter(Ce).map((function(e){return{email:e.email,name:e.name,role:T,roomIDs:[c]}})),t="".concat(window.location.origin,"/spaces/").concat(a,"/join-space");E(e,t,{onSuccess:j,onError:x})}),[m,c,T]),D=(0,b.QB)();return r.createElement(d.Flex,(0,o.Z)({column:!0},e),r.createElement(d.H4,null,"Send invitations to ",i," room"),r.createElement(pe.ne,null,"TIP: You can send more invitations at once, separate each with a comma."),r.createElement(ge.m,{key:O,invitations:m,setInvitations:p}),r.createElement(d.H5,{margin:[4,0,0]},"Role"),r.createElement(pe.ne,null,"Choose a role for invited user."," ",r.createElement(xe.Z,{href:we.R,target:"_blank",rel:"noopener noreferrer",Component:d.TextSmall},"Learn more")),r.createElement(ye.Z,{availableRoles:D,dataGA:"invite-to-room",dataTestId:"invite-selectRole",onChange:function(e){Z(e.target.value)},value:T}),r.createElement(d.Box,{alignSelf:"end",margin:[4,0,0]},r.createElement(d.Button,{label:"Send",onClick:F,disabled:0===m.length||!T,flavour:"hollow",isLoading:h})))},Ie=function(e){var t=e.onClose,n=e.room,a=(0,r.useState)([]),o=(0,l.Z)(a,2),c=o[0],i=o[1],s=(0,r.useState)(!1),u=(0,l.Z)(s,2),m=u[0],p=u[1],E=(0,te.r3)(n.spaceId,n.id),b=(0,r.useCallback)((function(){if(!c.length)return p(!0);p(!1),E(c),t()}),[c,E]);return r.createElement(g.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},r.createElement(f.x,{onClose:t,isSubmodal:!0,title:r.createElement(r.Fragment,null,"Manage room",r.createElement(d.TextBig,{color:"textLite"},"\xa0/ Add Users"))}),r.createElement(ee.B,null,"Add users to room\xa0",n.name),r.createElement(g.TZ,null,r.createElement(Pe,{margin:[0,0,4]}),r.createElement(d.Flex,{column:!0,flex:!0,overflow:"hidden",padding:[0,0,2,0]},r.createElement(me,{setSelected:i})),r.createElement(de,{onClose:t,onAdd:b,selected:c,error:m,name:n.name})))},Se=n(46322),Te=n(13477),ke=function(e){return"Remove ".concat(e)},Ze=function(e){var t,n=e.name,r=e.usersLength;return r?1===r&&n?ke(n):"Remove ".concat(t=r," ").concat(1===t?"user":"users"):""},je=function(e){var t=e.name,n=e.roomName;return r.createElement(r.Fragment,null,"You are about to remove ",r.createElement("strong",null,t)," from room ",r.createElement("strong",null,n),".",r.createElement("br",null),"Are you sure you want to continue?")},Fe=function(e){var t=e.roomName,n=e.usersLength,a="".concat(n,1===n?" user":" users");return r.createElement(r.Fragment,null,"You are about to remove ",r.createElement("strong",null,a)," from room ",r.createElement("strong",null,t),".",r.createElement("br",null),"Are you sure you want to continue?")},De=function(e){var t=e.name,n=e.roomName,a=e.usersLength;return a?1===a&&t?r.createElement(je,{name:t,roomName:n}):r.createElement(Fe,{roomName:n,usersLength:a}):""},Ae=function(e){var t=e.spaceId,n=e.roomId,a=e.startIsInviting,l=(0,te.GA)(t,n),o=(0,k.Hm)("name"),c=function(e){if(e){var t=Array.isArray(e)?e.map((function(e){return e.user.id})):[null===e||void 0===e?void 0:e.user.id];l(t)}};return{rowActions:(0,r.useMemo)((function(){return{remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e){return r.createElement(je,{name:e.name,roomName:o})},confirmationTitle:function(e){return ke(e.name)},declineLabel:"Cancel",disabledTooltipText:"Remove is disabled",handleAction:c,isDisabled:function(e){return e.disabled},tooltipText:"Remove user from room"}}}),[ke,c,je,o]),bulkActions:(0,r.useMemo)((function(){return{addEntry:{handleAction:a,tooltipText:"Invite users"},remove:{confirmLabel:"Yes, remove",confirmationMessage:function(e,t){return r.createElement(De,{name:t[0].name,roomName:o,usersLength:t.length})},confirmationTitle:function(e,t){return Ze({name:t[0].name,usersLength:t.length})},declineLabel:"Cancel",disabledTooltipText:"Remove is disabled",handleAction:c,tooltipText:"Remove users from room"}}}),[c,De,o,a,Ze])}},Ne=function(e){var t=e.untouchable,n=(0,r.useMemo)((function(){return[{id:"email",accessor:"email",header:"Email",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"name",accessor:"name",header:"Name",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"user",accessor:"user",header:"Users",cell:function(e){var t=(0,e.getValue)(),n=t.name,a=t.avatarURL,l=t.email;return r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(ie.Z,{src:a,title:"".concat(n," - ").concat(l||"email not set")}),r.createElement(d.TextSmall,null,n))}}]}),[]),a=(0,te.lA)(),o=(0,Te.Iy)("id"),c=(0,b.gI)("space:RemoveUser"),i=(0,r.useState)([]),s=(0,l.Z)(i,2),u=s[0],m=s[1],p=(0,r.useState)(""),g=(0,l.Z)(p,2),f=g[0],E=g[1],h=(0,y.Z)(),x=(0,l.Z)(h,4),w=x[0],C=x[2],O=x[3],P=(0,v.OS)("id"),I=(0,k.UL)(),S=Ae({selectedRows:u,spaceId:P,roomId:I,startIsInviting:C}),T=S.rowActions,Z=S.bulkActions;return{columns:n,data:(0,r.useMemo)((function(){return(0,Se.k)({data:a,currentUserId:o,canRemoveUser:c,untouchable:t})}),[a]),columnVisibility:{email:!1,name:!1},members:a,rowActions:T,bulkActions:Z,isInviting:w,globalFilter:f,stopIsInviting:O,onRowSelected:m,setGlobalFilter:E,canRemoveUser:c}},Me=["room"],Le=function(e){var t=e.room,n=(0,i.Z)(e,Me),a=t.untouchable,l=Ne({untouchable:a}),c=l.columns,s=l.data,u=l.columnVisibility,m=l.members,p=l.rowActions,g=l.bulkActions,f=l.isInviting,E=l.stopIsInviting,b=l.onRowSelected,h=l.setGlobalFilter;l.canRemoveUser;return r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden",gap:3},n),r.createElement(d.H3,null,"Users in this room (",m.length,")"),r.createElement(d.NetdataTable,{enableSelection:!0,enableSorting:!0,columnVisibility:u,data:s,dataColumns:c,rowActions:p,bulkActions:g,onRowSelected:b,onGlobalSearchChange:h,testPrefixCallback:function(e){return e.name}}),f&&r.createElement(Ie,{onClose:E,room:t}))},Re={room:0,nodes:1,users:2},Be=(0,m.default)(d.Box).attrs({height:"100%",padding:[4,0]}).withConfig({displayName:"manageRoomModal__TabContent",componentId:"sc-lrxs0y-0"})([""]),_e=function(){var e=(0,a.s0)(),t=(0,v.th)(),n=(0,a.UO)(),o=n.roomSlug,c=n.spaceSlug,i=n.settingsTab,s=(0,k.HM)(t,o);(0,V.Z)({spaceId:t,id:s,polling:!1}),(0,H.Z)(t,s);var m=(0,b.gI)("room:ReadUsers"),p=(0,k.tE)(s),g=(0,r.useState)(p.name),f=(0,l.Z)(g,2),E=f[0],h=f[1],y=(0,a.TH)().search,x=G.parse(y).tab,w=Re[void 0===x?"room":x],C=(0,r.useState)(w),O=(0,l.Z)(C,2),P=O[0],I=O[1],S=(0,d.useInputValue)({maxChars:255,value:p.description}),T=(0,l.Z)(S,3),Z=T[0],j=T[1],F=T[2],D=(0,r.useCallback)((function(){e((0,u.Gn)(W.Sr,{spaceSlug:c,settingsTab:i}))}),[c,i]),A=(0,k.s)(p.id,{shouldPersist:!0,onSuccess:D}),N=(0,r.useCallback)((function(){return A({name:E,description:Z})}),[E,Z,A]);return r.createElement(d.Flex,{column:!0,justifyContent:"between",overflow:"hidden","data-testid":"manageRoom"},r.createElement(d.Flex,{column:!0,gap:4,height:"100%"},r.createElement(d.Tabs,{"data-testid":"manageRoom-tabs",selected:P,onChange:I,TabContent:Be,flex:!0,height:"100%"},r.createElement(d.Tab,{"data-testid":"manageRoom-roomTab",label:r.createElement(d.H5,null,"Room"),height:"100%"},r.createElement(U.Q,{roomName:E,setRoomName:h,roomDescription:Z,setRoomDescription:j,charsDescIndicator:F,"data-testid":"manageRoom-roomTabContent",id:p.id,navigateToParent:D,onSaveClick:N})),r.createElement(d.Tab,{"data-testid":"manageRoom-nodesTab",label:r.createElement(d.H5,null,"Nodes")},r.createElement(J,{roomUntouchable:p.untouchable,"data-testid":"manageRoom-nodesTabContent"})),m&&r.createElement(d.Tab,{"data-testid":"manageRoom-usersTab",label:r.createElement(d.H5,null,"Users")},r.createElement(Le,{"data-testid":"manageRoom-usersTabContent",room:p})))),P===Re.room&&r.createElement(d.Flex,{justifyContent:"end"}))},Ue=n(3975),Ve=function(e){var t=e.children;return(0,Ue.QF)(),t},He=function(e){var t=e.children;return(0,k.Hm)().loaded?t:null},We=function(){return r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/",element:r.createElement(_,null)}),r.createElement(a.AW,{path:":roomSlug",element:r.createElement(Ve,null,r.createElement(He,null,r.createElement(_e,null)))}))},Ge=n(18663),ze=n(64637),Ye=n(82351),qe=[{id:"email",accessor:"email",header:"Email",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"name",accessor:"name",header:"Name",cell:function(e){var t=e.getValue;return"".concat(t())}},{id:"user",accessor:"user",width:300,header:"Users",cell:function(e){var t=(0,e.getValue)(),n=t.name,a=t.avatarURL,l=t.email;return r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(ie.Z,{src:a,title:"".concat(n," - ").concat(l||"email not set")}),r.createElement(d.TextSmall,null,n))}},{id:"type",accessor:"type",width:100,header:"Role",cell:function(e){var t=e.getValue,n=e.row.original.user.deactivated;return r.createElement(d.Flex,{alignItems:"center",gap:1},r.createElement(d.TextSmall,{strong:!0},(0,ze.fm)(t())),n&&r.createElement(Ye.Z,{content:"This user's role doesn't have permission to access any information on the Space. Please review user's role or space's plan."},r.createElement(d.Icon,{name:"warning_triangle",height:"18px",width:"18px",color:["yellow","amber"]})))}}],Ke=(n(85827),n(25387),n(72608),n(274)),Qe=["role"],Xe=["id"];function $e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$e(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$e(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var et=function(){var e=(0,C.Z)(P().mark((function e(t,n,r){return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(n.map(function(){var e=(0,C.Z)(P().mark((function e(n){return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,Ke.lh)(t,n,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())));case 1:case"end":return e.stop()}}),e)})));return function(t,n,r){return e.apply(this,arguments)}}(),tt="change-user-role",nt="changeUserRole",rt=function(e){var t=e.handleAction,n=e.ids,a=e.onClose,o=(0,oe.kf)(n),c=1===o.length?o[0]:null,i=(0,b.QB)(),s=(0,r.useState)(c),u=(0,l.Z)(s,2),m=u[0],p=u[1];return r.createElement(d.ConfirmationDialog,{confirmLabel:"Save","data-ga":tt,"data-testid":nt,handleConfirm:function(){t(m),a()},handleDecline:a,isConfirmDisabled:!m,isConfirmPositive:!0,message:r.createElement(d.Flex,{gap:2,column:!0},r.createElement(d.TextSmall,null,"Learn more about Netdata role-based access model on"," ",r.createElement(xe.Z,{href:we.R,target:"_blank",rel:"noopener noreferrer",Component:d.TextSmall},"our documentation")),r.createElement(ye.Z,{availableRoles:i,dataGA:tt,dataTestId:nt,onChange:function(e){p(e.target.value)},value:m})),title:"Change roles"})},at=["data"],lt=["data"],ot=function(e){var t=e.spaceId,n=e.startIsInviting,a=function(e){return(0,I._8)((function(t){var n=t.snapshot,r=t.set;return function(){var t=(0,C.Z)(P().mark((function t(a,l){var o,c,i,s;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=l.onSuccess,c=l.onError,t.next=3,n.getPromise((0,oe.WA)({id:e,key:"ids"}));case 3:return i=t.sent,s=i.filter((function(e){return!e.includes(a)})),r((0,oe.WA)({id:e,key:"ids"}),s),t.prev=6,t.next=9,(0,Ke.Sz)(e,a);case 9:o&&o(),t.next=16;break;case 12:t.prev=12,t.t0=t.catch(6),r((0,oe.WA)({id:e,key:"ids"}),i),c&&c();case 16:case"end":return t.stop()}}),t,null,[[6,12]])})));return function(e,n){return t.apply(this,arguments)}}()}),[e])}(t),l=function(e){return(0,I._8)((function(t){var n=t.snapshot,r=t.set;return function(){var t=(0,C.Z)(P().mark((function t(a,l){var o,c,s,u,m,d,p,g=arguments;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return c=(o=g.length>2&&void 0!==g[2]?g[2]:{}).onSuccess,s=o.onError,t.next=3,n.getPromise((0,ce.W3)(a));case 3:return u=t.sent,t.next=6,Promise.all(a.map(function(){var t=(0,C.Z)(P().mark((function t(r){var a;return P().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.getPromise((0,oe.ZN)({id:r,spaceId:e}));case 2:return a=t.sent,t.abrupt("return",{mId:r,role:a});case 4:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()));case 6:return m=t.sent,d=l.role,p=(0,i.Z)(l,Qe),a.forEach((function(e){r((0,ce.mX)({id:e}),(function(e){return Je(Je({},e),p)}))})),d&&a.forEach((function(t){r((0,oe.ZN)({id:t,spaceId:e}),d)})),t.prev=10,t.next=13,et(e,a,l);case 13:c&&c(),t.next=21;break;case 16:t.prev=16,t.t0=t.catch(10),u.forEach((function(e){var t=e.id,n=(0,i.Z)(e,Xe);return r((0,ce.mX)({id:t}),Je({id:t},n))})),d&&m.forEach((function(t){var n=t.mId,a=t.role;return r((0,oe.ZN)({id:n,spaceId:e}),a)})),s&&s();case 21:case"end":return t.stop()}}),t,null,[[10,16]])})));return function(e,n){return t.apply(this,arguments)}}()}),[e])}(t),c=(0,b.gI)("space:InviteUser"),s=(0,r.useCallback)((function(e){var t=e.role,n=e.members;l(n,{role:t})}),[]),u=function(e){return function(t){if(e){var n=Array.isArray(e)?e.map((function(e){return e.user.id})):[null===e||void 0===e?void 0:e.user.id];s({role:t,members:n})}}},m=function(e){if(e){var t=Array.isArray(e)?e.map((function(e){return e.user.id})):[null===e||void 0===e?void 0:e.user.id];a(t,{})}},d=(0,r.useCallback)((function(){return"Delete User"}),[]),p=(0,r.useCallback)((function(e){return r.createElement(r.Fragment,null,"You are about to delete ",r.createElement("strong",null,e.name),".",r.createElement("br",null),"Are you sure you want to continue?")}),[]),g=(0,r.useCallback)((function(e,t){var n=t.length;return n?1===n?"Delete User":"Delete Users":""}),[]),f=(0,r.useCallback)((function(e,t){var n=t.length;return n?r.createElement(r.Fragment,null,"You are about to delete"," ",r.createElement("strong",null,1===n?t[0].name:"".concat(t.length," users")),".",r.createElement("br",null),"Are you sure you want to continue?"):""}),[]);return{rowActions:(0,r.useMemo)((function(){return{userSettings:{CustomUIAction:function(e){var t=e.data,n=(0,i.Z)(e,at);return r.createElement(rt,(0,o.Z)({ids:[t.user.id]},n))},handleAction:u,tooltipText:"Change Role",isDisabled:function(e){return e.disabled},disabledTooltipText:"Changing roles is disabled"},delete:{handleAction:m,confirmationTitle:d,confirmationMessage:p,isDisabled:function(e){return e.disabled},disabledTooltipText:"Delete is disabled"}}}),[]),bulkActions:(0,r.useMemo)((function(){return{addEntry:{handleAction:n,tooltipText:"Invite user",isDisabled:function(){return!c},disabledTooltipText:"Invitations are disabled"},userSettings:{CustomUIAction:function(e){var t=e.data,n=(0,i.Z)(e,lt);return r.createElement(rt,(0,o.Z)({ids:t.map((function(e){return e.user.id}))},n))},handleAction:u,tooltipText:"Change Roles",disabledTooltipText:"Changing roles is disabled"},delete:{handleAction:m,confirmationTitle:g,confirmationMessage:f,disabledTooltipText:"Delete is disabled"}}}),[c,g,f])}},ct=function(){var e=(0,v.th)(),t=(0,v.vu)(e,"name"),n=(0,oe.Qk)(),a=(0,Te.Iy)("id"),o=(0,y.Z)(),c=(0,l.Z)(o,4),i=c[0],s=c[2],u=c[3],m=(0,r.useState)(""),d=(0,l.Z)(m,2),p=d[0],g=d[1],f=(0,r.useState)([]),E=(0,l.Z)(f,2),h=E[0],x=E[1],w=ot({selectedRows:h,spaceId:e,startIsInviting:s}),C=w.rowActions,O=w.bulkActions,P=(0,b.gI)("space:RemoveUser"),I=(0,b.gI)("user:ChangeRoles"),S=(0,b.M2)(),T=P||I,k=(0,r.useMemo)((function(){return function(e){var t=e.fromRolePermissions,n=e.userList,r=e.canModifyUser,a=e.currentUserId;return n.reduce((function(e,n){var l=a===(null===n||void 0===n?void 0:n.id),o=t.includes(n.role);return e.push({name:n.name,email:n.email,user:{avatarURL:n.avatarURL,deactivated:n.deactivated,name:n.name,email:n.email,id:n.id},type:n.role,disabled:!o||!r||l}),e}),[])}({userList:n,currentUserId:a,canModifyUser:T,fromRolePermissions:S})}),[n]);return{columns:qe,spaceName:t,members:n,currentUserId:a,data:k,isInviting:i,globalFilter:p,rowActions:C,bulkActions:O,columnVisibility:{email:!1,name:!1},onRowSelected:x,setGlobalFilter:g,startIsInviting:s,stopIsInviting:u,canModifyUser:T}},it=function(e){var t=ct(),n=t.columns,a=t.spaceName,l=t.data,c=t.isInviting,i=t.rowActions,s=t.bulkActions,u=t.columnVisibility,m=t.stopIsInviting,p=t.setGlobalFilter,g=t.onRowSelected;return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({column:!0,height:"100%",overflow:"hidden"},e),r.createElement(d.H3,null,"Members of ",a),r.createElement(d.TextSmall,{margin:[1,0,3]},"Learn more about Netdata role-based access model on"," ",r.createElement(xe.Z,{href:we.R,target:"_blank",rel:"noopener noreferrer",Component:d.TextSmall},"our documentation")),r.createElement(d.NetdataTable,{onGlobalSearchChange:p,data:l,dataColumns:n,enableSorting:!0,enableSelection:!0,onRowSelected:g,bulkActions:s,rowActions:i,columnVisibility:u,testPrefixCallback:function(e){return e.name}})),c&&r.createElement(Ge.l,{onClose:m,isSubmodal:!0}))},st=n(33582),ut=function(){var e=(0,k.Jb)().id,t=void 0===e?"":e,n=(0,z.X7)(t,"ids"),r=(0,z.X7)(t,"loaded"),a=(0,Y.Ne)(n),o=(0,v.th)(),c=(0,y.Z)(),i=(0,l.Z)(c,4),s=i[0],u=i[3];return(0,V.Z)({id:t,spaceId:o,polling:!0}),{areDefaultRoomNodesLoaded:r,nodes:a,isClaimNodeModalOpen:s,closeClaimNodeModal:u}},mt=(0,r.memo)((function(e){var t=(0,v.th)(),n=(0,v.OS)("name"),a=ut().nodes;(0,st.Z)(t);var l="Connect Nodes to ".concat(n);return r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":"manageClaimedNodes",height:"100%",overflow:"hidden",gap:3},e),r.createElement(d.H3,{"data-testid":"manageClaimedNodes-header"},l),r.createElement(X.Z,{showClaimNodeOnEmptySpace:!0,showClaimModalWithRoomSelection:!0,enableSelection:!0,customNodes:a,isSpace:!0}))})),dt=mt,pt=(n(91058),n(77184)),gt=n(45736),ft=n(3689),Et=function(e){var t=e.name,n=e.spaceName;return r.createElement(r.Fragment,null,"You are about to delete ",r.createElement("strong",null,t)," channel from ",r.createElement("strong",null,n)," space.",r.createElement("br",null),"This cannot be undone. Are you sure you want to continue?")},bt=n(31790),ht=(n(64211),n(41874),n(26833),n(25185)),vt=["integration","testId"],yt=["testId","tooltipContent"],xt=["data-testid","enabled","id","integration","isAvailable","name","spaceId","tooltipContent"];function wt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ct(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ot=function(e){var t=e.integration,n=e.testId,a=(0,i.Z)(e,vt),l=a.checked?"disable":"enable";return r.createElement(d.Toggle,(0,o.Z)({colored:!0,"data-testid":"".concat(n,"-toggle"),"data-ga":"manage-channels::toggle-".concat(t,"-").concat(l,"::notifications-tab")},a))},Pt=function(e){var t=e.testId,n=e.tooltipContent,a=void 0===n?"plan":n,l=(0,i.Z)(e,yt);return l.disabled?r.createElement(Ye.Z,{align:"top",content:ft.rc[a],"data-testid":"".concat(t,"-warning"),plain:!0},r.createElement(d.Flex,{padding:[2,2,0,0],position:"relative"},r.createElement(ht.aN,{"data-testid":"".concat(t,"-warningIcon")}),r.createElement(Ot,(0,o.Z)({testId:t},l)))):r.createElement(Ot,(0,o.Z)({testId:t},l))},It=function(e){var t=e["data-testid"],n=void 0===t?"cellName":t,a=e.enabled,l=e.id,c=e.integration,s=e.isAvailable,u=e.name,m=e.spaceId,p=e.tooltipContent,g=(0,i.Z)(e,xt),f=(0,gt.pV)(m,"channels"),E=(0,gt.rz)(m,"channels");return r.createElement(d.Flex,(0,o.Z)({alignItems:"center","data-testid":n,gap:4},g),r.createElement(Pt,{checked:a,disabled:!s,integration:c,onChange:function(e){var t=e.target.checked;E(f.map((function(e){return e.id===l?Ct(Ct({},e),{},{enabled:t}):e}))),(0,pt.eZ)(m,l,t)},testId:n,tooltipContent:p}),r.createElement(d.Text,{"data-testid":"".concat(n,"-label")},u))},St=["data-testid","integration","kind","kindLabel"],Tt=function(e){var t=e["data-testid"],n=void 0===t?"cellService":t,a=e.integration,l=e.kind,c=e.kindLabel,s=(0,i.Z)(e,St),u=ft.aU[a]||{};return r.createElement(d.Flex,(0,o.Z)({alignItems:"center","data-testid":n,gap:2,justifyContent:"between",width:"100%"},s),r.createElement(d.Flex,{alignItems:"center","data-testid":"".concat(n,"-integration"),gap:2},r.createElement(d.Icon,(0,o.Z)({"data-testid":"".concat(n,"-icon")},u)),r.createElement(d.Text,{"data-testid":"".concat(n,"-label")},a)),r.createElement(Ye.Z,{content:c,"data-testid":"".concat(n,"-kind"),plain:!0},r.createElement(d.Icon,{color:"textLite",height:"16px",name:ft.XK[l].icon,width:"16px"})))},kt=function(e){var t=e.canManageChannels,n=e.roomOptions,a=e.spaceId;return[{accessor:"name",cell:function(e){var n=e.getValue,l=e.row;return r.createElement(It,{enabled:l.original.enabled,id:l.original.id,integration:l.original.integration,isAvailable:t&&l.original.available,name:n(),spaceId:a,tooltipContent:t?"plan":"role"})},header:"Name",id:"name"},{accessor:"integration",cell:function(e){var t=e.getValue,n=e.row;return r.createElement(Tt,{integration:t(),kind:n.original.kind,kindLabel:n.original.kindLabel})},enableColumnFilter:!0,filterFn:function(e,t,n){var r=e.original.integration;return n.length<1||n.some((function(e){var t=e.value;return""===t||t===r}))},header:"Service",id:"integration",meta:{filter:{component:"select",isMulti:!0,options:Object.keys(ft.aU).map((function(e){return{label:e,value:e}})),tiny:!0,"data-ga":"manage-integrations::select-service::notification-integrations-tab"},tooltip:r.createElement(d.Flex,{column:!0,width:{max:"200px"},gap:2},r.createElement(d.TextMicro,{color:"white"},"Services are distinguished in two categories."),r.createElement(d.TextMicro,{color:"white"},r.createElement(ht.fb,{name:ft.XK.PERSONAL.icon})," ",r.createElement(d.TextMicro,{color:"white",strong:!0},"Personal:")," ",ft.XK.PERSONAL.tooltip),r.createElement(d.TextMicro,{color:"white"},r.createElement(ht.fb,{name:ft.XK.SYSTEM.icon})," ",r.createElement(d.TextMicro,{color:"white",strong:!0},"System:")," ",ft.XK.SYSTEM.tooltip))}},{accessor:"notificationLabel",cell:function(e){var t=e.getValue;return r.createElement(d.Text,{"data-testid":"channelNotificationsCell"},t())},enableColumnFilter:!0,filterFn:function(e,t,n){var r=e.original.notificationLabel;return n.length<1||n.some((function(e){var t=e.label;return""===t||t===r}))},header:"Notifications",id:"notificationLabel",meta:{filter:{component:"select",isMulti:!0,options:Object.values(ft.uK),tiny:!0,"data-ga":"manage-integrations::select-notification::notification-integrations-tab"}}},{accessor:"rooms",cell:function(e){var t,a=e.getValue,l=e.row,o={"data-testid":"channelRoomsCell"};if(l.original.internal)return r.createElement(d.Text,o,ft.mN.label);if(!(l.original.rooms||null!==(t=l.original.rooms)&&void 0!==t&&t.length))return r.createElement(d.Text,o,ft.k_.label);var c=(0,bt.ae)({roomIds:a(),roomOptions:n});return r.createElement(d.Text,{"data-testid":"channelRoomsCell"},c)},enableColumnFilter:!0,filterFn:function(e,t,n){return n.length<1||n.some((function(t){var n=t.label,r=t.value;if(e.original.internal)return n===ft.mN.label;var a=e.original.rooms||[];return a.length?a.includes(r):n===ft.k_.label}))},header:"Rooms",id:"rooms",meta:{filter:{component:"select",isMulti:!0,options:n,tiny:!0,"data-ga":"manage-integrations::select-room::notification-integrations-tab"}}}]},Zt=n(45939),jt=n(5429),Ft=n(93742);function Dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function At(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Nt=function(e,t){var n=(0,gt.Cz)(t),r=(0,Ft.Z)({all:!0});(0,jt.Z)((function(){return{enabled:!!t,fetch:function(){return(0,pt.$3)(e,t)},onFail:function(e){return n(At(At({},Zt.C),{},{error:e.message}))},onSettle:function(){return n({loading:!1,loaded:!0})},onSuccess:function(e){return n(At(At(At({},Zt.C),e.rooms?{roomSelections:r.filter((function(t){var n=t.value;return e.rooms.includes(n)}))}:{}),e))}}}),[e,t])},Mt=n(26913);function Lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Bt=function(){var e=(0,a.s0)(),t=(0,b.gI)("channel:Manage"),n=(0,v.th)(),o=(0,v.OS)("name"),c=(0,v.uk)(),i=(0,ve.Z)(),s=(0,l.Z)(i,2),m=s[0],d=s[1],p=(0,r.useState)(""),g=(0,l.Z)(p,2),f=g[0],E=g[1];(0,Mt.Z)(n);var h=(0,gt.pV)(n,"channels"),y=(0,gt.pV)(n,"currentChannelId"),x=(0,gt.rz)(n,"channels"),w=(0,gt.rz)(n,"currentChannelId"),O=(0,Ft.Z)({all:!0,internal:!0}),I=(0,gt.su)(y),S=I.alerts,T=I.name,k=I.rooms,Z=I.secrets;Nt(n,y);var j=(0,r.useCallback)((function(e){w(e)}),[]),F=(0,r.useCallback)(function(){var e=(0,C.Z)(P().mark((function e(t){var r;return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.id,e.prev=1,e.next=4,(0,pt.JV)(n,r);case 4:x(h.filter((function(e){return e.id!==r}))),m({header:"Configuration deleted successfully!"}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),d(e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}(),[h,n]),D=(0,r.useCallback)((function(){e((0,u.Gn)(W.xN,{spaceSlug:c,settingsTab:W.bK,settingsSubTab:W.Q$}))}),[c]),A=(0,r.useMemo)((function(){return{addEntry:Rt({dataGa:"manage-channels::click-add-channel::notifications-tab",flavour:"hollow",handleAction:D,iconColor:"success",label:t?"Add Configuration":"View configurations",small:!0,strong:!0,width:"auto"},t?{}:{icon:""})}}),[t,D]),N=(0,r.useMemo)((function(){return{edit:{dataGa:function(e){var t=e.slug;return"manage-rooms::click-edit::".concat(t)},disabledTooltipText:"Edit is disabled",handleAction:function(e){var t=e.id;j(t)},isDisabled:function(e){var n=e.available,r=e.internal;return!t||!n||r},TooltipComponent:Ye.Z,tooltipText:"Edit setting"},delete:{confirmLabel:"Yes, delete",confirmationMessage:function(e){var t=e.name;return r.createElement(Et,{name:t,spaceName:o})},confirmationTitle:function(e){var t=e.name;return(0,bt.D4)(t)},dataGa:function(e){var t=e.slug;return"manage-rooms::click-delete::".concat(t)},declineLabel:"Cancel",handleAction:F,isDisabled:function(e){var n=e.internal;return!t||n},TooltipComponent:Ye.Z,tooltipText:"Delete setting"}}}),[t,F,D]);return{bulkActions:A,channelData:h,currentChannelId:y,columns:kt({canManageChannels:t,roomOptions:O,spaceId:n}),dataGa:"manage-channels",onFilter:function(e,t,n){var r=e.original,a=n.toLowerCase();if(r.name.toLowerCase().includes(a))return!0;if(r.integration.toLowerCase().includes(a))return!0;if(r.notificationLabel.toLowerCase().includes(a))return!0;if(r.internal)return ft.mN.label.toLowerCase().includes(a);var l=r.rooms||[];return l.length?(0,bt.ae)({roomIds:l,roomOptions:O}).toLowerCase().includes(a):ft.k_.label.toLowerCase().includes(a)},onModalClose:function(){x(h.map((function(e){return e.id===y?Rt(Rt({},e),{},{alerts:S,name:T,rooms:k,secrets:Z}):e}))),w("")},rowActions:N,search:f,setSearch:E}},_t=(n(68216),n(79433),n(84580)),Ut=["id","integrationId","onClose"],Vt=["id","getValue","onChange"];function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Gt="modal",zt=function(e){var t=e.id,n=void 0===t?"new":t,c=e.integrationId,s=e.onClose,m=(0,i.Z)(e,Ut),p=(0,gt.su)(n),g=p.alarms,f=p.description,E=p.docsLink,b=p.fields,y=p.integration,x=p.loaded,w=p.name,O=p.required,I=p.rooms,S=p.roomSelections,T=p.secrets,k=function(e){return"manage-".concat(y,"-channel::").concat(e,"::notification-").concat(c?"integrations":"channels","-tab")},Z=(0,a.s0)(),j=(0,ve.Z)(),F=(0,l.Z)(j,2),D=F[0],A=F[1],N=(0,Ft.Z)({all:!0}),M=(0,h.J7)(),L=(0,v.th)(),R=(0,v.uk)(),B=(0,gt.Cz)(n,"alarms"),_=(0,gt.Cz)(n,"name"),U=(0,gt.Cz)(n,"roomSelections"),V=(0,gt.Cz)(n,"secrets"),H=(0,gt.Cz)(n,"rooms"),G=(0,r.useState)({}),z=(0,l.Z)(G,2),Y=z[0],q=z[1];if(!x)return null;var K=Object.keys(Y),Q=O.every((function(e){return(0,bt.xW)(e,T[e],b[e])})),X=!K.length||K.every((function(e){var t=T[e].selection;return Y[e].every((function(n){return(0,bt.xW)(n,T[e][n],b[e].fields[t][n])}))})),$=g&&Q&&X,J=(0,u.Gn)(W.Sr,{spaceSlug:R,settingsTab:W.bK}),ee=function(){var e=(0,C.Z)(P().mark((function e(){var t;return P().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,t=Wt(Wt(Wt({alarms:g,integrationID:c},w?{name:w}:{}),null!==I&&void 0!==I&&I.length?{Rooms:I}:{}),{},{secrets:T}),"new"!==n){e.next=7;break}return e.next=5,(0,pt.Y0)(L,t);case 5:e.next=9;break;case 7:return e.next=9,(0,pt.IU)(L,n,t);case 9:D({header:"new"===n?"Configuration created successfully!":"Configuration updated successfully!"}),s(),Z(J),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(0),A(e.t0);case 17:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(){return e.apply(this,arguments)}}();return r.createElement(d.Modal,{onEsc:s},r.createElement(ht.hz,{"data-testid":m["data-testid"]||Gt},r.createElement(d.ModalHeader,{border:{side:"bottom",color:"disabled"},column:!0,"data-testid":"".concat(Gt,"-header"),gap:.5,padding:[6,4,3]},r.createElement(d.Flex,{alignItems:"center","data-testid":"".concat(Gt,"-headerMain")},r.createElement(d.Flex,{"data-testid":"".concat(Gt,"-titleContainer"),gap:1},r.createElement(d.Icon,(0,o.Z)({"data-testid":"".concat(Gt,"-titleIcon")},ft.aU[y]||{})),r.createElement(d.H3,{"data-testid":"".concat(Gt,"-title")},y)),s&&r.createElement(ht.A3,{"data-ga":k("close-modal"),"data-testid":"".concat(Gt,"-close"),onClose:s})),r.createElement(d.TextSmall,{as:d.Box,"data-testid":"".concat(Gt,"-description")},f,"\xa0",r.createElement(xe.Z,{Component:d.TextSmall,"data-ga":k("click-docs"),"data-testid":"".concat(Gt,"-docsLink"),href:E,target:"_blank",whiteSpace:"nowrap"},"Learn how to configure it."))),r.createElement(d.ModalBody,{"data-testid":"".concat(Gt,"-body"),overflow:{vertical:"auto"},padding:[0]},r.createElement(ht.QD,{gap:2,"data-testid":"".concat(Gt,"-standardFields"),hasBorder:!0},r.createElement(d.Text,{"data-testid":"".concat(Gt,"-standardFields-header")},"Notification settings"),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(Gt,"-standardFields-body"),gap:3},r.createElement(_t.Z,{component:"input","data-ga":k("configuration-name-input"),"data-testid":"".concat(Gt,"-configurationName"),onChange:_,placeholder:"i.e All alerts from All nodes",title:"Configuration name",value:w}),r.createElement(_t.Z,{component:"select","data-ga":k("rooms-select"),"data-testid":"".concat(Gt,"-rooms"),isMulti:!0,onChange:function(e){var t;if(1!==M.length){if(0===e.length)return H([]),void U([]);if(e.length===M.length||null===(t=e[e.length-1])||void 0===t||!t.value)return H([]),void U([ft.k_]);var n=e.map((function(e){return e.value})).filter(Boolean),r=e.length>1?e.filter((function(e){return e.value})):e;H(n),U(r)}},options:N,placeholder:"Select rooms",title:"Rooms",value:S}),r.createElement(_t.Z,{component:"select","data-ga":k("notification-select"),"data-testid":"".concat(Gt,"-notifications"),isRequired:!0,onChange:function(e){var t=e.value;B(t)},options:Object.values(ft.Nq),placeholder:"Select notifications",title:"Notifications",value:ft.Nq[g]}))),r.createElement(ht.QD,{gap:2,"data-testid":"".concat(Gt,"-dynamicFields"),hasBorder:!0},r.createElement(d.Text,{"data-testid":"".concat(Gt,"-dynamicFields-header")},"Integration configuration"),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(Gt,"-dynamicFields-body"),gap:3},Object.values(b).map((function(e){var t=e.id,n=e.getValue,a=e.onChange,l=(0,i.Z)(e,Vt);return r.createElement(_t.Z,(0,o.Z)({"data-ga":k("".concat(t,"-").concat(l.component)),"data-testid":"".concat(Gt,"-").concat(t),getDataGa:k,key:t,id:t,onChange:null===a||void 0===a?void 0:a({id:t,setRequiredSubsets:q,setSecrets:V}),secrets:T,setSecrets:V,value:null===n||void 0===n?void 0:n({id:t,secrets:T})},l))}))))),r.createElement(ht.QD,{alignItems:"end","data-testid":"".concat(Gt,"-footer"),justifyContent:"center"},r.createElement(d.Button,{"data-ga":k("new"===n?"create-click":"edit-click"),"data-testid":"".concat(Gt,"-confirmButton"),disabled:!$,label:"OK",onClick:ee,textTransform:"uppercase"}))))},Yt=["data-testid"],qt={maxHeight:"none",whiteSpace:"initial"},Kt=function(e){var t=e["data-testid"],n=void 0===t?"channelList":t,a=(0,i.Z)(e,Yt),l=Bt(),c=l.bulkActions,s=l.channelData,u=l.currentChannelId,m=l.columns,p=l.dataGa,g=l.onFilter,f=l.onModalClose,E=l.rowActions,b=l.search,h=l.setSearch;return r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":n,gap:4,height:"100%",margin:[3,0]},a),r.createElement(d.NetdataTable,{bulkActions:c,data:s,dataColumns:m,dataGa:p,globalFilter:b,globalFilterFn:g,onGlobalSearchChange:h,rowActions:E,testPrefixCallback:function(e){return e.name},meta:qt}),!!u&&r.createElement(zt,{"data-testid":"editChannelModal",id:u,onClose:f}))},Qt=n(58591);function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xt(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Jt=(0,s.Z)((function(){return n.e(597).then(n.bind(n,95384))}),"SilencingRules"),en={side:"top",type:"solid",size:"1px",color:"border"},tn=function(){var e=(0,Qt.m$)().notificationsActiveTab,t=void 0===e?0:e,n=(0,r.useCallback)((function(e){var t=(0,Qt.m$)();(0,Qt.xs)($t($t({},t),{},{notificationsActiveTab:e}))}),[]);return r.createElement(r.Fragment,null,r.createElement(d.Flex,{padding:[0,0,0,4]},r.createElement(d.H3,null,"Alerts & Notifications")),r.createElement(d.Tabs,{selected:parseInt(t,10),onChange:n,height:"calc(100% - 44px)",margin:[4,0,0,0]},r.createElement(d.Tab,{"data-testid":"spaceSettings-notifications-methods-tab","data-ga":"manage-space::click-tab::notifications-methods-tab",label:r.createElement(d.Text,null,"Notification Methods")},r.createElement(d.Flex,{padding:[2,4],border:en,flex:!0},r.createElement(Kt,null))),r.createElement(d.Tab,{"data-testid":"spaceSettings-notifications-silencing-rules-tab","data-ga":"manage-space::click-tab::notifications-silencing-rules-tab",label:r.createElement(d.Text,null,"Notification Silencing Rules")},r.createElement(d.Flex,{border:en,flex:!0},r.createElement(r.Suspense,null,r.createElement(Jt,null))))))},nn=n(79655),rn=n(27856),an=n(78266),ln=n(37689),on=n(80959),cn=n(27308),sn=["available","classification","data-testid","description","docsLink","fields","id","internal","kind","kindLabel","slug","required","title"];function un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?un(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):un(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var dn=function(e){var t=e.available,n=e.classification,a=e["data-testid"],c=void 0===a?"card":a,s=e.description,u=e.docsLink,m=e.fields,p=e.id,g=e.internal,f=e.kind,E=e.kindLabel,h=e.slug,v=e.required,x=e.title,w=(0,i.Z)(e,sn),C=ft.aU[h]||{},O=(0,gt.h3)("new"),P=(0,gt.Cz)("new"),I=(0,b.gI)("channel:Manage"),S=(0,y.Z)(!1),T=(0,l.Z)(S,4),k=T[0],Z=T[2],j=T[3],F=(0,r.useCallback)((function(){P(mn(mn({},Zt.C),{},{description:s,docsLink:u,fields:m,integration:h,loading:!1,loaded:!0,required:v,secrets:(0,bt.A_)(m,v)})),Z()}),[s,u,m,h,v]);return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({background:"elementBackground",column:!0,"data-testid":c,justifyContent:"between",flex:!1,height:37,padding:[3,2,2,3],margin:[0,0,4,0],position:"relative",overflow:"hidden",round:.5,width:75},w),r.createElement(ht.zT,(0,o.Z)({"data-testid":"".concat(c,"-blurredIcon")},C)),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(c,"-details"),gap:3,margin:[0,0,3,0]},r.createElement(d.Flex,{"data-testid":"".concat(c,"-header"),justifyContent:"between"},r.createElement(d.Flex,{alignItems:"center","data-testid":"".concat(c,"-titleContainer"),gap:1},r.createElement(d.Icon,(0,o.Z)({"data-testid":"".concat(c,"-icon")},C)),r.createElement(d.Text,{"data-testid":"".concat(c,"-title")},x)),!g&&t&&r.createElement(Ye.Z,{align:"bottom",content:I?"":ft.Ue,plain:!0},r.createElement(d.Box,null,r.createElement(ht.nO,{"data-ga":"manage-integration-".concat(h,"::click-add::notification-integrations-tab"),"data-testid":"".concat(c,"-button"),disabled:!I,label:"Add",onClick:F}))),!g&&!t&&r.createElement(cn.Z,{classification:n,"data-ga":"manage-integration-".concat(h,"::click-plan-badge-").concat(n.toLowerCase(),"::notification-integrations-tab")})),r.createElement(d.TextSmall,{color:"textDescription","data-testid":"".concat(c,"-description")},s,u&&r.createElement(r.Fragment,null,"\xa0",r.createElement(xe.Z,{Component:ht.bb,"data-ga":"manage-integration-".concat(h,"::click-docs::notification-integrations-tab"),"data-testid":"".concat(c,"-docsLink"),href:u,target:"_blank",whiteSpace:"nowrap"},"Learn more.")))),r.createElement(Ye.Z,{align:"top",content:ft.XK[f].tooltip,"data-testid":"".concat(c,"-kindContainer"),plain:!0},r.createElement(d.Flex,{alignItems:"end",alignSelf:"end","data-testid":"".concat(c,"-kindContainer"),gap:1},r.createElement(d.Icon,{color:"textLite","data-testid":"".concat(c,"-kindIcon"),height:"16px",name:ft.XK[f].icon,width:"16px"}),r.createElement(d.TextSmall,{color:"textLite","data-testid":"".concat(c,"-kind")},E)))),k&&r.createElement(zt,{"data-testid":"createChannelModal",integrationId:p,onClose:function(){j(),O()}}))},pn=["data-testid","integrations","title"],gn=function(e){var t=e["data-testid"],n=void 0===t?"group":t,a=e.integrations,l=e.title,c=(0,i.Z)(e,pn);return a.length?r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":n,gap:2,position:"relative"},c),r.createElement(d.TextBig,{color:"textDescription","data-testid":"".concat(n,"-title")},l),r.createElement(d.Flex,{flexWrap:!0,"data-testid":"".concat(n,"-integrations"),gap:4},a.map((function(e){return r.createElement(dn,(0,o.Z)({"data-testid":"".concat(e.slug,"Card"),key:e.slug},e))})))):null},fn=n(69414);function En(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?En(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):En(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var hn=function(e){var t=(0,gt.R1)(e);(0,jt.Z)((function(){return{enabled:!!e,fetch:function(){return(0,pt.h3)(e)},onFail:function(e){return t(bn(bn({},fn.E),{},{error:e.message}))},onSettle:function(){return t({loading:!1,loaded:!0})},onSuccess:function(e){t(bn(bn({},fn.E),e))}}}),[e])},vn=["data-testid"],yn=function(e){var t=e["data-testid"],n=void 0===t?"integrations":t,a=(0,i.Z)(e,vn),c=(0,v.th)(),s=(0,v.uk)();hn(c);var m=(0,gt.ry)(c),p=m.available,g=m.error,f=m.loaded,E=m.unavailable,b=(0,r.useState)([]),h=(0,l.Z)(b,2),y=h[0],x=h[1],w=(0,r.useState)([]),C=(0,l.Z)(w,2),O=C[0],P=C[1],I=(0,r.useState)(""),S=(0,l.Z)(I,2),T=S[0],k=S[1];if(!f)return r.createElement(an.Z,{"data-testid":"".concat(n,"-loader"),title:"Loading services..."});if(g)return r.createElement(on.Z,{"data-testid":"".concat(n,"-error"),message:g,title:"Services of ".concat(s," are currently unavailable")});var Z=(0,rn.D)(300,(function(e){var t=e.target.value;k(t),x((0,bt.uf)(p,t)),P((0,bt.uf)(E,t))})),j=(0,u.Gn)(W.Sr,{spaceSlug:s,settingsTab:W.bK});return r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":n},a,{padding:[0,4]}),r.createElement(d.Flex,{border:{side:"bottom",color:"separator"},"data-testid":"".concat(n,"-header"),margin:[0,0,4,0],padding:[0,0,4,0],width:"100%"},r.createElement(xe.Z,{as:nn.rU,Component:ht.Ce,"data-ga":"manage-integrations::click-back::notification-integrations-tab","data-testid":"".concat(n,"-backLink"),to:j},r.createElement(d.Icon,{"data-testid":"".concat(n,"-backIcon"),name:"arrow_left"}),r.createElement(d.H3,{"data-testid":"".concat(n,"-title")},W.fV[W.Q$]))),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(n,"-content"),gap:4},r.createElement(d.Box,{as:ln.Z,"data-ga":"manage-integrations::search::notification-integrations-tab","data-testid":"".concat(n,"-search"),iconLeft:r.createElement(d.Icon,{name:"magnify",color:"textLite"}),onChange:Z,placeholder:"Search service",size:"small",width:{max:49.5}}),r.createElement(d.Flex,{column:!0,"data-testid":"".concat(n,"-groups")},r.createElement(gn,{"data-testid":"integrationGroupAvailable",integrations:T?y:p,title:"Available"}),r.createElement(gn,{"data-testid":"integrationGroupUnavailable",integrations:T?O:E,title:"Unavailable"}))))},xn=function(){return r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/",element:r.createElement(tn,null)}),r.createElement(a.AW,{path:"/".concat(W.Q$),element:r.createElement(yn,null)}))},wn=n(46585),Cn=n(78710),On=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[(0,d.useInputValue)({maxChars:20,value:e.name||""})||{},(0,d.useInputValue)({maxChars:50,value:e.description||""})||{}]},Pn=n(14809),In=n(54131),Sn=n(15418),Tn=["nameInput","descriptionInput"],kn=function(e){var t=e.nameInput,n=e.descriptionInput,a=(0,i.Z)(e,Tn),c=(0,l.Z)(t,4),s=c[0],u=c[1],m=c[2],p=c[3],g=(0,l.Z)(n,4),f=g[0],E=g[1],b=g[2],h=g[3],v=(0,r.useMemo)((function(){return(0,In.x3)(s)}),[s]),y=(0,r.useMemo)((function(){return(0,In.uB)(f)}),[f]);return r.createElement(d.Flex,(0,o.Z)({column:!0},a),r.createElement(Sn.Z,{Component:d.TextInput,permission:"space:UpdateMeta",label:"Name",value:s,onChange:u,error:In.Qj[v],isDirty:p,instantFeedback:"all",fieldIndicator:m,"data-testid":"textInputs-spaceName"}),r.createElement(Sn.Z,{Component:d.TextInput,permission:"space:UpdateMeta",label:"Description",value:f,onChange:E,error:In.Qj[y],isDirty:h,instantFeedback:"all",fieldIndicator:b,"data-testid":"textInputs-spaceDescription"}))},Zn=n(57387),jn=["id"],Fn=function(e){var t=e.id,n=(0,i.Z)(e,jn);return r.createElement(d.Flex,(0,o.Z)({column:!0,gap:1},n),r.createElement(d.Text,{strong:!0},"Space Id"),r.createElement(Zn.ZP,{confirmationText:"Space ID copied to your clipboard."},t))},Dn=n(72671),An=n(20428),Nn=["nameInput","descriptionInput","onClose"],Mn=function(e){var t=e.nameInput,n=e.descriptionInput,a=e.onClose,c=(0,i.Z)(e,Nn),s=(0,v.OS)(),u=(0,An.Z)(s.id),m=(0,r.useState)(!1),p=(0,l.Z)(m,2),g=p[0],f=p[1],E=(0,l.Z)(t,1)[0],b=(0,l.Z)(n,1)[0],h=function(){a(),f(!1)},y=function(){return f(!1)},x=(0,r.useCallback)((function(){f(!0),u({name:E,description:b},{onSuccess:h,onFail:y})}),[E,b]),w=(0,r.useMemo)((function(){var e=(0,In.x3)(E),t=(0,In.uB)(b);return!!(g||e||t)||s.name===E&&(s.description===b||!s.description&&!b)}),[s,E,b,g]);return r.createElement(d.Button,(0,o.Z)({label:"SAVE",onClick:x,isLoading:g,disabled:w,"data-testid":"saveSpace-button"},c))},Ln=["onClose"],Rn=(0,r.memo)((function(e){var t=e.onClose,n=(0,i.Z)(e,Ln),a=(0,v.OS)(),c=(0,v.GM)("ids"),s=(0,y.Z)(),u=(0,l.Z)(s,4),m=u[0],p=u[2],g=u[3],f=On({name:a.name,description:a.description}),E=(0,l.Z)(f,2),b=E[0],h=E[1];if(!a.id)return null;var x=1===c.filter((function(e){return!(0,Cn.Ly)(e)})).length;return r.createElement(r.Fragment,null,r.createElement(d.Flex,(0,o.Z)({column:!0,"data-testid":"manageSpace",flex:"grow",justifyContent:"between"},n),r.createElement(d.Flex,{column:!0,"data-testid":"manageSpace-settings"},r.createElement(d.H3,{margin:[0,0,4,0]},"Info"),r.createElement(d.Flex,{column:!0,gap:8},r.createElement(d.Box,null,r.createElement(kn,{"data-testid":"manageSpace-nameInputs",nameInput:b,descriptionInput:h}),r.createElement(Fn,{"data-testid":"manageSpace-spaceIdInput",id:a.id}),r.createElement(d.Flex,{column:!0,gap:1,margin:[4,0,0]},r.createElement(d.TextInput,{label:"Your role in space",value:(0,ze.fm)(a.roleInSpace),disabled:!0})),r.createElement(d.Flex,{column:!0,gap:1,margin:[4,0,0]},r.createElement(d.TextInput,{label:"Plan",value:(0,ze.db)(a.plan),disabled:!0}))))),r.createElement(d.Flex,{"data-testid":"manageSpace-actions",justifyContent:"between",alignItems:"center",padding:[0,10,0,0]},r.createElement(d.Flex,{"data-testid":"manageSpace-deleteLeaveActions",gap:4},r.createElement(Ye.Z,{align:"top",content:x&&wn.T$.leave,isBasic:!0,stretch:"align"},r.createElement(d.Flex,{alignItems:"center"},r.createElement(d.Button,{"data-ga":"manage-space-tab::click-leave-space::manage-space-modal","data-testid":"manageSpace-leave",disabled:x,icon:"switch_off",flavour:"borderless",label:"Leave space",neutral:!0,padding:[0],width:"fit-content",onClick:p}))),r.createElement(Dn.Z,{"data-testid":"manageSpace-delete",id:a.id,isLastSpace:x,name:a.name,onClose:t})),r.createElement(Mn,{"data-testid":"manageSpace-save",nameInput:b,descriptionInput:h,onClose:t}))),m&&r.createElement(Pn.Z,{id:a.id,name:a.name,onClose:g}))}),(function(){return!0})),Bn=n(51091);function _n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Un(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_n(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Vn=function(){var e=(0,a.s0)(),t=(0,v.th)(),n=(0,a.bS)(W.xN),l=(0,a.bS)(W.Sr),o=(n||l||{}).params,c=o.spaceSlug,i=void 0===c?"":c,s=o.settingsTab,m=void 0===s?"":s,d=o.settingsSubTab,p=void 0===d?"":d,g=(0,v.OS)("name"),f=(0,k.HM)(t,p),E=(0,k.tE)(f,"name"),b=W.fV[m],h=(0,r.useCallback)((function(){e((0,u.Gn)(W.Sr,{spaceSlug:i,settingsTab:m}))}),[i,m]),y=(0,r.useMemo)((function(){var e=[{name:"Manage Space",isDisabled:!0},{name:g,isDisabled:!0},Un({name:b},!!p&&{onClick:h})];return p&&e.push({name:b===W.fV[W.eq]?E:W.fV[p]||p}),e}),[h,E,g,b,p]);return r.createElement(Bn.Z,{isBig:!0,items:y,showBackButton:!1,testid:"manageSpace"})},Hn=n(22648),Wn=n(46715),Gn=(0,r.createContext)(),zn=(0,r.createContext)(),Yn=function(e){var t=e.children,n=(0,y.Z)(!1),a=(0,l.Z)(n,2),o=a[0],c=a[1];return r.createElement(Gn.Provider,{value:o},r.createElement(zn.Provider,{value:c},t))},qn=function(){return(0,r.useContext)(Gn)},Kn=function(){return(0,r.useContext)(zn)},Qn=(n(17727),n(43337)),Xn=function(e){return r.createElement(d.Box,(0,o.Z)({as:"hr",height:"100%",sx:{borderWidth:"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}},e))},$n=function(){return r.createElement(Xn,{height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}})},Jn=function(e){return["free","earlyBird"].includes(e)},er=function(e,t){var n=t.amountPerNode;if(e.amountPerNode&&e.monthlyDiscountPercentagePerNode){var r=e.amountPerNode/12;n=lr(r,e.monthlyDiscountPercentagePerNode)}return n},tr=function(e){if(!e)return null;var t=e.city,n=e.country,r=e.line_1,a=e.line_2,l=e.postalCode,o=e.state;return[[r,a].filter(Boolean).join(" "),t,l,o,n].filter(Boolean).join(", ")},nr=function(e,t){return Jn(t)?"hollow":"business"===t||"pro"===t&&Jn(e)?"default":"hollow"},rr=function(){return{cellStyles:{height:"40px"},headStyles:{height:"32px"}}},ar=function(e,t,n,r,a){return((t||0)-e)*(n||0)+(r||0)-(a||0)},lr=function(e,t){return e*(1/(1-t))},or=function(e){var t=e.currentPlan,n=e.billingEmail,a=e.paymentMethod,o=e.businessName,c=e.vatNo,i=e.billingAddress,s=(0,Wn.SH)(),u=(0,l.Z)(s,2),m=u[0],p=u[1],g=!!t.billingEmail&&!p;return r.createElement(d.Flex,{column:!0,gap:3},r.createElement(d.Flex,{gap:3},r.createElement(d.TextInput,{value:n||"",label:"Billing email",placeholder:"Not specified",disabled:!0}),r.createElement(d.TextInput,{value:null!==a&&void 0!==a&&a.id?"**** ".concat(null===a||void 0===a?void 0:a.id):"",label:"Default payment method",placeholder:"Not specified",disabled:!0})),c&&r.createElement(d.Flex,{gap:3},r.createElement(d.TextInput,{value:o||"",label:"Business name",placeholder:"Not specified",disabled:!0}),r.createElement(d.TextInput,{value:c,label:"VAT number",placeholder:"Not specified",disabled:!0})),r.createElement(d.Flex,{gap:3},r.createElement(d.TextInput,{value:tr(i)||"",label:"Billing address",placeholder:"Not specified",disabled:!0})),r.createElement(xe.Z,{Component:d.Flex,cursor:g?"pointer":"default",disabled:!g,onClick:m,alignItems:"center",gap:1,"data-ga":"billing-options::click::billing"},r.createElement("span",null,"Change billing information and payment method"),r.createElement(d.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"})))},cr=function(e){var t=e.onReset;return r.createElement(d.Box,{as:d.Icon,name:"close_circle",onClick:t,cursor:"pointer",width:3,height:3,color:"border",position:"absolute",left:"2px"})},ir=function(e){var t=e.promotionCode,n=e.onReset;return r.createElement(d.Flex,{width:"100%"},r.createElement(d.Pill,{background:"nodeBadgeBackground",padding:[0],borderColor:"nodeBadgeBackground"},r.createElement(d.Flex,{position:"relative",gap:2,alignItems:"center",padding:[1,2,1,5]},r.createElement(cr,{onReset:n}),r.createElement(d.Text,null,t))))},sr=function(e){var t=e.promotionCode,n=e.onApply,a=e.error,o=(0,r.useState)(a?t:""),c=(0,l.Z)(o,2),i=c[0],s=c[1],u=function(){s(""),n("")};return r.createElement(d.Flex,{column:!0,gap:1},r.createElement(d.Text,{strong:!0},"Promotion code"),t&&!a?r.createElement(ir,{promotionCode:t,onReset:u}):r.createElement(d.Flex,{column:!0,gap:1},r.createElement(d.Flex,{gap:3,alignItems:"baseline"},r.createElement(d.TextInput,{value:i,onChange:function(e){return s(e.target.value)},placeholder:"Promotion code"}),a?r.createElement(d.Button,{label:"Clear",flavour:"hollow",onClick:u,padding:[3,4],disabled:!i}):r.createElement(d.Button,{label:"Apply",onClick:function(){return n(i)},padding:[3,4],disabled:!i})),a&&r.createElement(d.Text,{color:"error"},a)))},ur=function(e){var t=e.needsCommitment,n=e.commitment,a=e.handleCommitmentChange;return t&&r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Flex,{gap:4,alignItems:"baseline"},r.createElement(d.Text,{strong:!0,style:{whiteSpace:"nowrap"}},"Committed Nodes"),r.createElement(d.TextInput,{onChange:a,value:n,placeholder:"i.e. 14",type:"number",min:1})),r.createElement(d.TextSmall,null,"Nodes that you'll have a discount of 25% on the original cost per node of the plan. This amount will be part of your annual prepayment."))},mr=function(e){return"earlyBird"===e.currentPlan.slug&&r.createElement(r.Fragment,null,r.createElement(Xn,{height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),r.createElement(d.Flex,{gap:3},r.createElement(d.Icon,{size:"large",color:"warning",name:"warning_triangle"}),r.createElement(d.Text,null,"You are moving from ",r.createElement(d.Text,{strong:!0},"Early Bird")," plan to another plan, you won't be able to come back to this. The ",r.createElement(d.Text,{strong:!0},"Community")," free plan will be there if you wish to cancel but this doesn't allow you to invite or change users using the Member role.")))},dr=function(e){return"earlyBird"===(null===e||void 0===e?void 0:e.slug)?"earlyBird":e&&e.slug&&"free"!==e.slug?"".concat(e.slug,"-").concat(e.interval):"free"},pr=(n(54678),m.default.div.withConfig({displayName:"withTableWrapper__TableWrapper",componentId:"sc-drcfxi-0"})(["margin-top:30px;"])),gr=function(e){return function(t){return r.createElement(pr,null,r.createElement(e,t))}},fr=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"});function Er(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function br(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Er(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Er(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var hr={size:50,minSize:50,maxSize:100},vr=function(e){return function(){return r.createElement(d.Flex,{width:"100%",justifyContent:"end"},e)}},yr=function(e){var t=e.getValue;return r.createElement(d.Flex,{width:"100%",justifyContent:"end"},t())},xr=[br({id:"name",accessor:"name",header:""},hr),br({id:"price",accessor:"price",header:vr("Price"),cell:yr},hr),br({id:"qty",accessor:"qty",header:vr("Qty"),cell:yr},hr),br({id:"month",accessor:"month",header:vr("Month"),cell:yr},hr),br({id:"total",accessor:"total",header:vr("Total"),cell:yr},hr)],wr=function(e){return r.createElement(d.Flex,(0,o.Z)({gap:3},e),r.createElement(d.Icon,{size:"large",color:"warning",name:"warning_triangle"}),r.createElement(d.Text,null,"No immediate charges are applicable to this plan subscription. On-demand usage charges will be applied based on your node period count."))},Cr=gr(d.NetdataTable),Or=function(e){var t=e.needsCommitment,n=e.price,a=e.spaceTotal,l=e.commitment,o=e.currentCommitment,c=e.onlyCommitment,i=e.balance,s=e.nodesTotal,u=e.zeroSubscriptionTotal,m=e.checkoutIsDisabled,p=function(e,t,n,r,a){if(!r)return r;var l=ar(a,e,t,n);return r-l<0?r:l}(l,n.pricing.primary.amountPerNode,c?0:n.pricing.primary.amountFlat,i.amount,o),g=((null===n||void 0===n?void 0:n.pricing)||{}).primary,f=(null===g||void 0===g?void 0:g.monthlyDiscountPercentagePerNode)||0,E=parseFloat(s+a),b=parseFloat(E*f),h=parseFloat(E-b);return r.createElement(r.Fragment,null,u?m?null:r.createElement(wr,null):r.createElement(r.Fragment,null,t&&r.createElement(r.Fragment,null,r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,null,"Subscription Total"),r.createElement(d.Text,null,fr.format(E))),r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,{color:"primary"},"Discount (",100*f,"%)"),r.createElement(d.Text,{color:"primary"},"- ",fr.format(b)))),r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,null,"Total"),r.createElement(d.Text,null,fr.format(h))),!!i.amount&&r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.Text,null,"Credit amount"),r.createElement(d.Text,null,"- ",fr.format(p))),r.createElement($n,null),r.createElement(d.Flex,null,r.createElement(d.TextMicro,null,"Additional taxes may be applicable"))),r.createElement(d.Flex,{justifyContent:"between"},r.createElement(d.H0,{strong:!0},"Total payable"),r.createElement(d.H0,{strong:!0,"data-testid":"totalPayableAmountCheckout"},fr.format(function(){var e=ar.apply(void 0,arguments);return e<0?0:e}(o,l,n.pricing.primary.amountPerNode,c?0:n.pricing.primary.amountFlat,p)))))},Pr=function(e){var t=e.price,n=e.needsCommitment,a=e.currentCommitment,l=e.onlyCommitment,o=e.balance,c=e.spaceTotal,i=e.amountPerNodePerMonth,s=e.amountPerSpacePerMonth,u=e.commitment,m=e.nodesTotal,d=e.months,p=e.tableMeta,g=void 0===p?rr:p,f=e.checkoutIsDisabled,E=(0,r.useMemo)((function(){return 0==parseFloat(m+c)}),[m,c]),b=(0,r.useMemo)((function(){var e=!isNaN(c)&&c>0?{id:"space",name:"Space",price:fr.format(s),qty:1,month:d,total:fr.format(c)}:null;return n?[isNaN(m)?null:{id:"nodes",name:"Nodes",price:fr.format(i),qty:u||0,month:d,total:fr.format(m)},e].filter(Boolean):[e]}),[n,s,c,m,d]);return r.createElement(r.Fragment,null,!E&&r.createElement(r.Fragment,null,r.createElement(Cr,{meta:g,dataColumns:xr,data:b}),r.createElement($n,null)),r.createElement(Or,{needsCommitment:n,price:t,spaceTotal:c,commitment:u,currentCommitment:a,onlyCommitment:l,balance:o,nodesTotal:m,zeroSubscriptionTotal:E,checkoutIsDisabled:f}))},Ir=n(93433);n(23157);function Sr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Tr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sr(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var kr,Zr=gr(d.NetdataTable),jr=function(e){var t=e.lineItems;return r.createElement(r.Fragment,null,t.map((function(e){var t,n,a=(n=e).description?n.description.startsWith("Discount")?{color:"primary"}:n.description.startsWith("VAT")?{color:"textLite"}:{}:{},l=e.isInfo?d.TextSmall:d.Text;return r.createElement(d.Flex,{key:e.description,justifyContent:"between"},r.createElement(l,a,e.description),r.createElement(l,a,fr.format(null===(t=e.total)||void 0===t?void 0:t.amount)))})))},Fr=(kr=function(e){var t=e.lineItems;return r.createElement(d.Flex,{justifyContent:"between",margin:[4,0,0,0]},r.createElement(d.H0,{strong:!0},"Total payable"),r.createElement(d.H0,{strong:!0,"data-testid":"totalPayableAmountPreview"},fr.format(t.totalPayable.total.amount)))},function(e){var t;return e.lineItems.totalPayable?null!==(t=e.lineItems.info)&&void 0!==t&&t.length?r.createElement(d.Flex,{column:!0,gap:1},r.createElement(kr,e),r.createElement(jr,{lineItems:e.lineItems.info})):r.createElement(kr,e):null}),Dr=function(e){var t=e.lineItems,n=e.agree,a=e.toggleAgree,l=e.zeroPreviewSubscriptionTotal;return r.createElement(r.Fragment,null,r.createElement($n,null),l&&r.createElement(wr,{padding:[0,0,2,0]}),r.createElement(d.Flex,{gap:3},r.createElement(d.Checkbox,{checked:n,onChange:a}),r.createElement(d.Text,null,"I agree to Netdata Inc's"," ",r.createElement(xe.Z,{href:"https://www.netdata.cloud/service-terms/",rel:"noopener noreferrer",target:"_blank"},"Terms of Service")," ","and"," ",r.createElement(xe.Z,{href:"https://netdata.cloud/privacy",rel:"noopener noreferer",target:"_blank"},"Privacy Policy"))),r.createElement(Fr,{lineItems:t}))},Ar=function(e){var t=e.lineItems,n=e.tableMeta,a=void 0===n?rr:n;return r.createElement(r.Fragment,null,r.createElement(Zr,{meta:a,dataColumns:xr,data:t.table}),r.createElement($n,null),r.createElement(jr,{lineItems:t.footer}))},Nr=function(e){var t=e.title,n=e.onConfirm,a=e.onClose,l="Community"==t,o=l?"Cancellation":"Downgrading";return r.createElement(d.ConfirmationDialog,{confirmLabel:"Yes","data-ga":"downgrade-dialog","data-testid":"downgradeDialog",handleConfirm:function(){n(),a()},handleDecline:function(){a()},message:r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Text,null,"Are you sure you want to ",r.createElement(d.Text,{strong:!0},"move to the ",t," plan")," and cancel your current plan?"),l&&r.createElement(d.Text,null,"Upon cancellation,"," ",r.createElement(d.Text,{strong:!0},"a credit of the value related to the unused period will be credited to your Netdata account.")," ","The credit will be available for you to use on future plan subscriptions with us."),r.createElement(d.Text,null,"For the next 24 hours, you will be able to use all your current notification method configurations."," ",r.createElement(d.Text,{strong:!0},"After 24 hours, any of the notification method configurations that aren't available on your space's plan will be automatically disabled.")),r.createElement(d.Text,null,o," might affect your Space users. Please check what roles are available on the"," ",r.createElement(xe.Z,{href:"https://learn.netdata.cloud/docs/nightly/concepts/netdata-plans#areas-impacted-by-plans",rel:"noopener noreferrer",strong:!0,target:"_blank"},t," plan"),"."," ",r.createElement(d.Text,{strong:!0},"Users with unavailable roles on the ",t," plan will immediately have restricted access to the Space.")),r.createElement(d.Text,null,"Do you wish to proceed?")),title:"Go to ".concat(t," plan?")})},Mr=n(49489),Lr=["title","isDowngrade","showProrations","checkoutOrUpdate"];function Rr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Br(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rr(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var _r=function(e){return e?"::commited-".concat(e):""},Ur=(0,m.default)(d.Flex).withConfig({displayName:"checkoutTotals__CheckoutButtonWrapper",componentId:"sc-1q0h6ca-0"})(["background:",";padding:16px 0;position:sticky;bottom:0;z-index:20;"],(0,d.getColor)("mainBackground")),Vr=function(e){return function(t){var n=t.title,a=t.isDowngrade,c=t.showProrations,s=t.checkoutOrUpdate,u=(0,i.Z)(t,Lr),m=(0,y.Z)(),d=(0,l.Z)(m,4),p=d[0],g=d[2],f=d[3];return c&&a?r.createElement(r.Fragment,null,p&&r.createElement(Nr,{title:n,onConfirm:s,onClose:f}),r.createElement(e,(0,o.Z)({onClick:g},u))):r.createElement(e,(0,o.Z)({onClick:s},u))}}((0,m.default)(d.Button).withConfig({displayName:"checkoutTotals__CheckoutButton",componentId:"sc-1q0h6ca-1"})(["flex:auto;"])),Hr=function(e){var t,n=e.title,a=e.slug,o=e.onClose,c=e.currentPlan,i=e.price,s=e.balance,u=e.commitment,m=e.currentCommitment,p=void 0===m?0:m,g=e.email,f=e.needsCommitment,E=e.onlyCommitment,b=e.previewData,h=e.loadingPreview,v=e.showProrations,x=e.promotionCode,w=function(e,t){var n,r;return((null===(n=Mr.Vc[t])||void 0===n?void 0:n.level)||0)<((null===(r=Mr.Vc[e])||void 0===r?void 0:r.level)||0)}(c.slug,a),C=(0,y.Z)(!1),O=(0,l.Z)(C,2),P=O[0],I=O[1],S=v&&!P||!v&&!g||f&&(p===u||!u||u<1),T=(0,y.Z)(),k=(0,l.Z)(T,2),Z=k[0],j=k[1],F=(0,Wn.eY)(),D=(0,Wn.Zn)(),A=v||c.billingEmail?D:F,N=(null===i||void 0===i?void 0:i.pricing)||{},M=N.primary,L=N.secondary,R="year"===i.interval?12:1,B=er(M,L),_=f?B*R*(u||0):0,U=function(e){var t=e.amountFlat||0;if(e.monthlyDiscountPercentagePerNode&&e.amountFlat){var n=e.amountFlat/12;t=lr(n,e.monthlyDiscountPercentagePerNode)}return t}(M),V=U*R,H=(t=null===b||void 0===b?void 0:b.invoiceLineItems,(0,r.useMemo)((function(){if(null===t||void 0===t||!t.length)return null;var e=!1;return t.reduce((function(t,n){var r;return"Total payable"==n.description?(t.totalPayable=n,e=!0,t):(n.unitPrice?t.table=[].concat((0,Ir.Z)(t.table),[{id:n.description,name:n.description,price:fr.format(n.unitPrice.amount),qty:n.quantity,month:n.month,total:null===(r=n.total)||void 0===r?void 0:r.amount}]):e?t.info=[].concat((0,Ir.Z)(t.info),[Tr(Tr({},n),{},{isInfo:!0})]):t.footer=[].concat((0,Ir.Z)(t.footer),[n]),t)}),{table:[],footer:[],info:[]})}),[t])),W=((null===H||void 0===H?void 0:H.footer)||[]).some((function(e){var t=e.description,n=e.total;return"Subscription Total"==t&&0==(null===n||void 0===n?void 0:n.amount)}));return r.createElement(d.Flex,{column:!0,gap:3},v?h||!H||W?null:r.createElement(Ar,{lineItems:H,agree:P,toggleAgree:I}):r.createElement(Pr,{price:i,needsCommitment:f,currentCommitment:p,onlyCommitment:E,balance:s,spaceTotal:V,amountPerNodePerMonth:B,amountPerSpacePerMonth:U,commitment:u,nodesTotal:_,months:R,checkoutIsDisabled:S}),r.createElement(Ur,{column:!0,gap:2},v&&!h&&H&&r.createElement(Dr,{lineItems:H,agree:P,toggleAgree:I,zeroPreviewSubscriptionTotal:W}),r.createElement(Vr,{title:n,isDowngrade:w,label:v?"Checkout":"Proceed to checkout",disabled:!!S||Z,checkoutOrUpdate:function(){j(),A(Br(Br({productId:i.id,email:(null===b||void 0===b?void 0:b.billingEmail)||g},f&&{commitment:u}),v&&x&&{promotionCode:x})).then(o).finally(j)},isLoading:Z,"data-ga":"proceedTocheckoutButton::click-".concat(dr(i)).concat(_r(u),"::billing"),"data-testid":"billingCheckoutTotals-proceedToCheckoutButton",showProrations:v})))},Wr=function(e){var t=e.prices,n=e.currentPlan,a=(0,r.useState)(0),o=(0,l.Z)(a,2),c=o[0],i=o[1],s=t[c],u=null===s||void 0===s?void 0:s.commitment,m=(0,r.useState)(n.committedNodes||1),d=(0,l.Z)(m,2),p=d[0],g=d[1];return{recurringIndex:c,setRecurringIndex:i,price:s,needsCommitment:u,commitment:p,handleCommitmentChange:function(e){return g(e.target.value?parseInt(e.target.value,10):"")}}},Gr=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).title,t=void 0===e?"Checkout":e;return function(e){return function(n){return r.createElement(g.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n.onClose},r.createElement(f.x,{onClose:n.onClose,title:t}),r.createElement(d.Flex,{column:!0,padding:[4,4,0,4],justifyContent:"between",height:"calc(100vh - 60px)",overflow:"auto"},r.createElement(e,n)))}}};function zr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Yr=3e5,qr=Gr({title:"Update plan"})((function(e){var t=e.title,n=e.onClose,a=e.prices,i=e.currentPlan,s=void 0===i?{}:i,u=e.children,m=Wr({prices:a,currentPlan:s}),p=m.recurringIndex,g=m.setRecurringIndex,f=m.price,E=m.needsCommitment,b=m.commitment,h=m.handleCommitmentChange,v=(0,r.useState)(""),y=(0,l.Z)(v,2),x=y[0],w=y[1],C=(0,r.useState)(0),O=(0,l.Z)(C,2),P=O[0],I=O[1],S=(0,r.useState)(Yr),T=(0,l.Z)(S,2),k=T[0],Z=T[1],j=(0,Wn.fG)(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zr(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({productId:f.id,promotionCode:x},E&&b&&{commitment:b}),P),F=j.loading,D=j.value,A=j.promoCodeError;return(0,Qn.Z)((function(){F||I((function(e){return e+1}))}),k),(0,r.useEffect)((function(){Z(F?null:Yr)}),[F]),r.createElement(r.Fragment,null,r.createElement(d.Flex,{column:!0,gap:4},r.Children.map(u,(function(e){return(0,r.cloneElement)(e,{recurringIndex:p,setRecurringIndex:g})})),r.createElement(ur,{needsCommitment:E,commitment:b,handleCommitmentChange:h}),r.createElement($n,null),F?r.createElement(an.Z,{title:"Loading billing info...",height:"auto"}):D?r.createElement(r.Fragment,null,r.createElement(or,(0,o.Z)({currentPlan:s},D)),r.createElement($n,null),r.createElement(sr,{promotionCode:x,onApply:w,error:A})):r.createElement("div",null,"No data available"),r.createElement(mr,{currentPlan:s})),r.createElement(Hr,{title:t,slug:f.slug,currentPlan:s,onClose:n,price:f,balance:s.balance,commitment:b,needsCommitment:E,previewData:D,loadingPreview:F,showProrations:!0,promotionCode:x}))})),Kr=Gr()((function(e){var t=e.onClose,n=e.prices,a=e.currentPlan,o=void 0===a?{}:a,c=e.children,i=Wr({prices:n,currentPlan:o}),s=i.recurringIndex,u=i.setRecurringIndex,m=i.price,p=i.needsCommitment,g=i.commitment,f=i.handleCommitmentChange,E=(0,Te.Iy)("email"),b=(0,r.useState)(o.billingEmail||E||""),h=(0,l.Z)(b,2),v=h[0],y=h[1];return r.createElement(r.Fragment,null,r.createElement(d.Flex,{column:!0,gap:4},r.Children.map(c,(function(e){return(0,r.cloneElement)(e,{recurringIndex:s,setRecurringIndex:u})})),r.createElement(ur,{needsCommitment:p,commitment:g,handleCommitmentChange:f}),r.createElement($n,null),r.createElement(d.TextInput,{onChange:function(e){return y(e.target.value)},value:v,label:"Billing email",placeholder:"jsmith@example.com"}),r.createElement(mr,{currentPlan:o})),r.createElement(Hr,{currentPlan:o,onClose:t,price:m,balance:o.balance,commitment:g,email:v,needsCommitment:p}))})),Qr=n(89405),Xr=["inModal","recurringIndex","setRecurringIndex"],$r=function(e){var t=e.primary,n=e.secondary;return r.createElement(d.Flex,{column:!0,gap:2},t||n?r.createElement(r.Fragment,null,r.createElement(Ye.Z,{align:"top",content:t.amountPerNode?"Price per active node per month for committed usage of nodes for a year":"Price per node per month",isBasic:!0,plain:!0,stretch:"align"},r.createElement(d.H0,null,fr.format(er(t,n)),r.createElement(d.TextSmall,{color:"textLite"},"/",r.createElement(xe.Z,{Component:d.TextSmall,href:"https://www.netdata.cloud/pricing/#do-i-have-to-pay-for-nodes-that-are-no-longer-online",rel:"noopener noreferrer",target:"_blank"},"Node"),"/month")))):r.createElement(d.H0,null,"Free, Forever"),(null===t||void 0===t?void 0:t.monthlyDiscountPercentagePerNode)&&r.createElement(d.Flex,null,r.createElement(d.Text,null,r.createElement(d.Text,{strong:!0},100*t.monthlyDiscountPercentagePerNode,"% discount")," applicable on space and committed node prices, billed annually.")))},Jr=m.default.div.withConfig({displayName:"pricingDetails__OneLine",componentId:"sc-hbslp4-0"})(["white-space:nowrap white-space:nowrap;"]),ea=function(e){var t=e.interval,n=e.currentPeriodTo,a=e.committedNodes,l=e.nodesLastPeriod,o=e.showPromotion,c=e.cancelling,i=e.onCancelPlan,s=(0,Qr.rA)().localeDateString,u=l-a;return r.createElement(d.Flex,{column:!0,gap:1},!!n&&r.createElement(d.TextSmall,null,r.createElement(d.TextSmall,{strong:!0,"data-testid":"billingPricingDetails-interval"},"Billing ".concat(Mr.go[t]))," ","(renews ",s(new Date(n),{long:!1}),")"),o&&"month"===t&&r.createElement(xe.Z,{onClick:i,disabled:c},r.createElement(Jr,null,"Save 25% by changing your billing frequency to yearly")),"year"===t&&r.createElement(r.Fragment,null,r.createElement(d.TextSmall,null,"Committed Nodes:"," ",r.createElement(d.Text,{strong:!0,"data-testid":"billingPricingDetails-committedNodesNumber"},a)),"number"===typeof l&&r.createElement(d.TextSmall,null,0===u&&"Your current Period count is equal to commitment",0!==u&&r.createElement(r.Fragment,null,"Your current Period count is ",u>0?"above":"below"," by"," ",r.createElement(d.TextSmall,{color:u>0?"error":"success",strong:!0},u>0?"+":"",u," node",1===Math.abs(u)?"":"s")))))},ta=function(e){var t=e.features;return r.createElement(d.Flex,{column:!0,gap:1},t.map((function(e){return r.createElement(d.Flex,{gap:2,key:e},r.createElement(d.Box,{width:5},r.createElement(d.Icon,{name:"check",width:"20px",height:"20px",color:"primary"})),r.createElement(d.TextSmall,null,e))})),r.createElement(d.Flex,{gap:2},r.createElement(d.Box,{width:5}),r.createElement(xe.Z,{Component:d.Flex,as:nn.rU,cursor:"pointer",alignItems:"center",gap:1,color:"text",hoverColor:"textFocus",to:"all-plans"},r.createElement(d.Text,{strong:!0},"View full details"),r.createElement(d.Icon,{name:"chevron_right",width:"16px",height:"16px"}))))},na=function(e){return function(t){var n=t.inModal,a=t.recurringIndex,l=t.setRecurringIndex,o=(0,i.Z)(t,Xr);return n?r.createElement(d.Flex,{width:"100%",justifyContent:"between",alignItems:"center"},r.createElement(e,o),r.createElement(d.Flex,{gap:3,padding:[0,10]},Mr.FC.map((function(e,t){return r.createElement(d.RadioButton,{key:e,checked:a===t,onChange:function(){return l(t)},"data-testid":"billingPaidPlans-".concat(e,"-radioButton")},r.createElement(d.Text,{color:"textDescription"},(0,ze.fm)(Mr.go[e])))})))):r.createElement(e,o)}}((function(e){var t=e.children;return r.createElement(d.H3,{"data-testid":"billingPricingDetails-activePlanName"},t)})),ra=function(e){var t,n=e.slug,a=e.prices,l=e.recurringIndex,c=void 0===l?1:l,i=e.setRecurringIndex,s=e.currentPlan,u=void 0===s?{}:s,m=e.isActive,p=e.showAllDetails,g=e.showTeaserDetails,f=e.cancelling,E=e.onCancelPlan,b=e.title,h=e.features,v=e.nodesLastPeriod,y=e.inModal;return r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Flex,{alignItems:"center",gap:2},r.createElement(na,{inModal:y,recurringIndex:c,setRecurringIndex:i},b),m&&r.createElement(d.Pill,{flavour:"success","data-testid":"active-plan",icon:"checkmark_s",size:"normal",iconSize:"16px"},"Active")),(p||!m||"free"===n)&&r.createElement($r,(null===(t=a[c])||void 0===t?void 0:t.pricing)||{}),g&&!!h&&r.createElement(ta,{features:h}),m&&!Jn(n)&&r.createElement(ea,(0,o.Z)({},u,{showPromotion:!0,cancelling:f,onCancelPlan:E,nodesLastPeriod:v})))},aa=["slug","prices","freePlanId","isSmall","isActive","currentPlan","showAllPlans","showTeaserDetails","allPlansView","nodesLastPeriod"];function la(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function oa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?la(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):la(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ca=function(e){var t=e.slug,n=e.prices,a=void 0===n?[]:n,c=e.freePlanId,s=e.isSmall,u=e.isActive,m=e.currentPlan,p=e.showAllPlans,g=e.showTeaserDetails,f=e.allPlansView,E=void 0!==f&&f,h=e.nodesLastPeriod,v=(0,i.Z)(e,aa),x=qn(),w=Kn(),C=Mr.Vc[t]||Mr.Vc.free,O=C.title,P=C.features,I=(0,b.gI)("billing:Manage"),S=(0,r.useState)({}),T=(0,l.Z)(S,2),k=T[0],Z=T[1],j=(0,y.Z)(),F=(0,l.Z)(j,4),D=F[0],A=F[2],N=F[3],M=function(e){var t=e.currentPlan,n=e.slug,r=t.slug,a=t.interval;return r===n?Jn(n)?"Current plan":"year"===a?"Update plan options":"Change billing frequency":Jn(r)&&!Jn(n)||"pro"===r&&"business"===n?"Upgrade":"Select"}({currentPlan:m,slug:t}),L=(0,ve.Z)(),R=(0,l.Z)(L,2),B=R[0],_=R[1],U=(0,y.Z)(),V=(0,l.Z)(U,2),H=V[0],W=V[1],G=(0,Wn.Zn)(),z=function(){H||x||(Jn(t)?Z({type:"cancel"}):Jn(m.slug)?J("checkout"):J("update"))},Y=!!m.billingEmail,q=Y?qr:Kr,K=(0,Qt.m$)(),Q=K.billingModalType,X=K.billingModalSlug,$=["checkout","update"].includes(Q)&&t==X,J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=(0,Qt.m$)();(0,Qt.xs)(oa(oa({},n),{},{billingModalType:e,billingModalSlug:""==e?e:t}))};return r.createElement(d.Flex,{column:!0,gap:7},r.createElement(d.Flex,(0,o.Z)({column:!0,height:s?"auto":p?57:90,width:99.5,flex:s,padding:s?[6,10]:[0,10],gap:2,justifyContent:"between"},v),r.createElement(ra,{slug:t,prices:a,isActive:u,currentPlan:m,cancelling:x,showAllDetails:p,showTeaserDetails:g,title:O,features:P,nodesLastPeriod:h,onCancelPlan:z}),!E&&r.createElement(Sn.Z,{Component:d.Button,permission:"billing:Manage","data-ga":"upgrade-button::click-".concat(dr({slug:t}),"::current-").concat(dr(m),"::billing"),"data-testid":"billingPlan-".concat(t,"-").concat(u?"currentPlan":"upgradeButton"),label:M,flavour:nr(null===m||void 0===m?void 0:m.slug,t),disabled:H||x||!!u&&Jn(t),width:"100%",onClick:z,isLoading:H,loadingLabel:"Cancelling"}),!p&&!Jn(m.slug)&&r.createElement(xe.Z,{Component:d.Flex,as:nn.rU,cursor:"pointer",alignItems:"center",gap:1,color:"text",hoverColor:"textFocus",to:"all-plans",padding:[4,0,0],disabled:x,"data-testid":"billingPlan-viewMorePlansLink","data-ga":"change-plan::click::billing"},r.createElement("span",null,I?"Change plan":"View plans"),r.createElement(d.Icon,{name:"chevron_right",width:"16px",height:"16px"})),"cancel"===k.type&&!Jn(m.slug)&&!D&&r.createElement(Nr,{title:O,onConfirm:function(){A(),w(),W(),G({productId:c}).then((function(){return B({header:"Successfully canceled subscription",text:"You are now on Community plan"})})).catch((function(){return _({header:"Failed to cancel the subscription",text:"Remained on ".concat(O," plan")})})).finally((function(){W(),w()}))},onClose:function(){N(),Z({})}}),$&&r.createElement(q,{title:O,onClose:function(){N(),J()},prices:a,currentPlan:m,showProrations:Y},r.createElement(ra,{slug:t,prices:a,currentPlan:m,title:O,inModal:!0}))))},ia=function(e){var t=e.plans,n=e.freePlanId,a=e.isSmall,l=e.currentPlan,o=e.showAllPlans,c=e.showTeaserDetails;return r.createElement(d.Flex,{column:!0,gap:2,flex:!0},r.createElement(d.Flex,{column:a},r.createElement(ca,{slug:"pro",prices:t.pro,freePlanId:n,isActive:"pro"===l.slug,isSmall:a,currentPlan:l,showAllPlans:o,showTeaserDetails:c}),r.createElement(Xn,{height:a?"1px":"100%",width:a?"100%":"1px",sx:{borderWidth:a?"1px 0px 0px 0px":"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}}),r.createElement(ca,{slug:"business",prices:t.business,freePlanId:n,isActive:"business"===l.slug,isSmall:a,currentPlan:l,showAllPlans:o,showTeaserDetails:c})))},sa=function(e){var t=e.isSmall,n=e.plans,a=e.currentPlan,l=e.showAllPlans,o=void 0!==l&&l,c=e.showTeaserDetails,i=void 0!==c&&c,s=e.children,u="earlyBird"===a.slug,m=((null===n||void 0===n?void 0:n.free)||[]).length>0?n.free[0].id:"Community";return r.createElement(d.Flex,{column:t,justifyContent:"between"},s,(o||!u)&&r.createElement(r.Fragment,null,r.createElement(ca,{slug:"free",prices:n.free,freePlanId:m,width:t?"auto":70,isSmall:t,isActive:"free"===a.slug,currentPlan:a,showAllPlans:o}),r.createElement(Xn,{height:t?"1px":"100%",width:t?"100%":"1px",sx:{borderWidth:t?"1px 0px 0px 0px":"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}})),u&&r.createElement(r.Fragment,null,r.createElement(ca,{slug:"earlyBird",prices:n.earlyBird,freePlanId:m,width:t?"auto":70,isSmall:t,isActive:"earlyBird"===a.slug,currentPlan:a,showAllPlans:o}),r.createElement(Xn,{height:t?"1px":"100%",width:t?"100%":"1px",sx:{borderWidth:t?"1px 0px 0px 0px":"0px 0px 0px 1px",borderColor:"borderSecondary",borderStyle:"solid"}})),r.createElement(ia,{plans:n,freePlanId:m,isSmall:t,currentPlan:a,showAllPlans:o,showTeaserDetails:i}))},ua=["children"],ma=function(e){var t=e.children,n=(0,i.Z)(e,ua);return r.createElement(d.Flex,(0,o.Z)({alignItems:"center",gap:2},n),t)},da=function(){return r.createElement(d.Flex,{column:!0,gap:2,width:65},r.createElement(d.TextMicro,{color:"bright"},r.createElement(d.TextMicro,{color:"bright",strong:!0},"Available credit")," ","for you to use on any plan subscriptions with us."),r.createElement(d.TextMicro,{color:"bright"},"It is ok to change your mind, we will give you full flexibility! You can change the plan level, billing frequency or committed nodes, we won't hold you to any choice. When applicable, we'll credit you back on any unused amount."))},pa=function(e){var t=e.currentPlan,n=(0,Wn.SH)(),a=(0,l.Z)(n,2),o=a[0],c=a[1],i=!!t.billingEmail&&!c,s=(0,b.gI)("billing:ReadAll");return r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.H3,null,"Plan & Billing"),s&&r.createElement(r.Fragment,null,r.createElement(ma,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Credit:"),r.createElement(d.Text,{"data-testid":"billingHeader-credits",strong:!0},fr.format(t.balance.amount||0)),r.createElement(Ye.Z,{content:da,align:"bottom",isBasic:!0},r.createElement(d.Icon,{name:"information",width:"16px",height:"16px",color:"textLite"}))),r.createElement(Xn,null),r.createElement(d.Text,null,"Billing email:"," ",r.createElement(d.Text,{strong:!0,"data-testid":"billingHeader-email"},t.billingEmail||"-")),r.createElement(Xn,null),r.createElement(xe.Z,{Component:d.Flex,cursor:i?"pointer":"default",disabled:!i,onClick:o,alignItems:"center",gap:1,"data-ga":"billing-options::click::billing","data-testid":"billingHeader-goToPortal"},r.createElement("span",null,"Billing options and Invoices"),r.createElement(d.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"}))),r.createElement(Xn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}})))};n(34553),n(2707),n(69810),n(86035);var ga=n(69119),fa=n(71002),Ea=n(7069),ba=n(54559),ha=n(13882),va=n(83946);var ya=n(28789),xa=n(23148),wa=n(36337),Ca=n(26495),Oa=n(95665),Pa=n(92501),Ia=n(95248),Sa=n(69019);function Ta(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ka(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ta(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ta(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Za={nodes:1,p90:2,committed_nodes:3},ja={"Daily count":"The weighted 90th percentile of the live node count during the day, taking time as the weight. If you have 30 live nodes throughout the day, except for a two hour peak of 44 live nodes, the daily value is 31.","Committed nodes":"The number of nodes committed to in the yearly plan. In case the period count is higher than the number of committed nodes, the difference is billed as overage.","Period count":"The 90th percentile of the daily counts for this period up to the date. The last value for the period is used as the number of nodes for the bill for that period."};xa.kL.register(xa.f$,xa.uw,xa.ZL,xa.od,xa.jn,xa.De,xa.u,xa.ST,xa.vn,wa.Z),xa.u.positioners.follow=function(e,t){return null===e||void 0===e||!e.length||t.y>360?(this._resolveAnimations().update(this,{opacity:0}),!1):(0===this.opacity&&this._resolveAnimations().update(this,{opacity:1}),{x:t.x,y:t.y})};var Fa=function(e){return{nodes:{label:"Daily count",type:"bar",color:(0,d.getColor)("text")({theme:e}),backgroundColor:(0,d.getColor)("primary")({theme:e}),borderColor:(0,d.getColor)("primary")({theme:e}),borderWidth:2,pointStyle:"rectangle",usePointStyle:!0},p90:{label:"Period count",type:"line",color:(0,d.getColor)("text")({theme:e}),borderColor:(0,d.getColor)(["purple","lilac"])({theme:e}),borderWidth:2,fill:!1,stepped:!0},committed_nodes:{label:"Committed nodes",type:"line",color:(0,d.getColor)("text")({theme:e}),borderColor:(0,d.getColor)(["blue","aquamarine"])({theme:e}),borderWidth:2,fill:!1,borderDash:[1,2],borderDashOffset:1,pointStyle:!1}}},Da={border:{side:"all",color:"inputBorder",padding:[3]},round:!0},Aa=function(){var e=new Date,t=e.getFullYear(),n=e.getMonth(),r=e.getDate(),a=new Date(0);return a.setFullYear(t,n,r-1),a.setHours(23,59,59,999),a}(),Na=(0,ga.default)(function(e,t){if((0,ha.Z)(2,arguments),!t||"object"!==(0,fa.Z)(t))return new Date(NaN);var n=t.years?(0,va.Z)(t.years):0,r=t.months?(0,va.Z)(t.months):0,a=t.weeks?(0,va.Z)(t.weeks):0,l=t.days?(0,va.Z)(t.days):0,o=t.hours?(0,va.Z)(t.hours):0,c=t.minutes?(0,va.Z)(t.minutes):0,i=t.seconds?(0,va.Z)(t.seconds):0,s=(0,ba.default)(e,r+12*n),u=(0,Ea.default)(s,l+7*a),m=1e3*(i+60*(c+60*o));return new Date(u.getTime()-m)}(Aa,{months:1})),Ma=function(e){var t=e.onNodesLastPeriodFetch,n=(0,Ia.by)("offset"),a=(0,v.th)(),o=(0,r.useState)((function(){return{start:Na,end:Aa}})),i=(0,l.Z)(o,2),s=i[0],u=i[1],p=(0,jt.Z)((function(){return{enabled:!!a&&!!s.start&&!!s.end,fetch:function(){return(0,Sa.fA)(a,{after:Math.floor((0,ya.default)((0,Qr.tb)(s.start,n))/1e3),before:Math.floor((0,ya.default)((0,Qr.tb)(s.end,n))/1e3)})},initialValue:{labels:[],data:[]},onSuccess:function(e){var n=e.data,r=e.labels;if(n.length){var a=n.at(-1),l=a[r.indexOf("nodes")],o=a[r.indexOf("timestamp")];t((function(e){return e.timestamp>o?e:{timestamp:o,value:l}}))}}}}),[a,s,t]),g=(0,l.Z)(p,3),f=g[0],E=g[1],b=g[2],h=(0,r.useContext)(m.ThemeContext),y=(0,r.useMemo)((function(){var e=f.data.map((function(e){return(0,l.Z)(e,1)[0]})),t=f.labels.reduce((function(t,n,r){return r?[ka(ka({},Fa(h)[n]),{},{data:e.map((function(e,t){return f.data[t][r]})),order:Za[n]})].concat((0,Ir.Z)(t)):t}),[]);return{labels:e,datasets:t}}),[f]),x=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.data,a=t.annotations,o=void 0===a?[]:a,i=(0,Qr.rA)().localeDateString,s=(0,r.useRef)(!1),u=(0,r.useRef)(),m=(0,r.useMemo)((function(){return{interaction:{axis:"x"},plugins:{legend:{position:"bottom",align:"start",onClick:function(e,t,n){var r=n.legendItems.findIndex((function(e){return e.text===t.text}));n.chart.isDatasetVisible(r)?n.chart.hide(r):n.chart.show(r)},labels:{generateLabels:function(e){return e.data.datasets.map((function(t,n){return{fontColor:t.color,text:t.label,fillStyle:t.backgroundColor,strokeStyle:t.borderColor,pointStyle:"Daily count"===t.label?"rect":"line",hidden:!e.isDatasetVisible(n),order:t.order}})).sort((function(e,t){return e.order-t.order}))},usePointStyle:!0},onHover:function(e,t){!s.current&&u.current&&(s.current=!0,u.current.innerHTML=ja[t.text],u.current.style.left=e.x+"px",u.current.style.top=e.y+"px",u.current.style.visibility="visible",u.current.style.transform="translateY(-100%)")},onLeave:function(){u.current&&(s.current=!1,u.current.innerHTML="",u.current.style.visibility="hidden")}},tooltip:{enabled:!0,mode:"nearest",intersect:!1,yAlign:"bottom",usePointStyle:!0,position:"follow",backgroundColor:(0,d.getColor)("panel")({theme:e}),color:(0,d.getColor)(["neutral","iron"])({theme:e}),callbacks:{title:function(e){var t=(0,l.Z)(e,1)[0];return t?i(1e3*t.label,{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0}):""},labelPointStyle:function(e){return{pointStyle:"Total Nodes"===e.dataset.label?"rect":"line"}},label:function(e){return" ".concat(e.formattedValue," ").concat(e.dataset.label||"")}}},annotation:{annotations:o.reduce((function(t,r,a){return ka(ka({},t),{},(0,c.Z)({},"annotation".concat(a),{type:"line",value:n.findIndex((function(e){return e[0]===r.timestamp})),borderColor:(0,d.getRgbColor)(["blue","indigo"],.3)({theme:e}),borderDashOffset:0,borderWidth:10,drawTime:"afterDatasetsDraw",label:{drawTime:"afterDatasetsDraw",display:!1,backgroundColor:(0,d.getRgbColor)(["blue","indigo"],.8)({theme:e}),borderWidth:0,color:"white",content:r.name,textAlign:"center"},scaleID:"x",enter:function(e,t){var n=e.chart,r=n.options.plugins.annotation.annotations["annotation".concat(a)];r.label.display=!0,r.label.position=t.y/e.chart.chartArea.height>.5?"start":"end",n.update()},leave:function(e){var t=e.chart;t.options.plugins.annotation.annotations["annotation".concat(a)].label.display=!1,t.update()}}))}),{})}},responsive:!0,maintainAspectRatio:!1,scales:{x:{ticks:{callback:function(e){return i(1e3*this.getLabelForValue(e),{month:"2-digit",day:"2-digit",year:"numeric",long:!1,dateStyle:void 0})},color:(0,d.getColor)("textLite")({theme:e})}},y:{beginAtZero:!0,ticks:{color:(0,d.getColor)("textLite")({theme:e})}}}}}),[e,n]);return[m,u]}(h,f),w=(0,l.Z)(x,2),C=w[0],O=w[1];return r.createElement(d.Flex,{column:!0,gap:4},r.createElement(d.Flex,{alignItems:"center",justifyContent:"between"},r.createElement(d.H3,null,"Usage"),r.createElement(Oa.Z,{values:s,utc:n,onChange:u,tagging:"billing-usage",isPlaying:!1,onlyDates:!0,accessorProps:Da,padding:[4,0],width:"auto",maxDate:Aa})),r.createElement(d.Flex,{position:"relative",height:90},E?r.createElement(an.Z,{title:"Loading billing data..."}):b?r.createElement(Pa.NY,{title:"Chart couldn't be loaded"}):r.createElement(Ca.kL,{type:"bar",data:y,options:C}),r.createElement(d.Flex,{ref:O,background:"panel",color:["neutral","iron"],position:"absolute",round:!0,padding:[3],width:{max:75},sx:{visibility:"hidden"},onMouseOver:function(){return O.current.style.visibility="hidden"}})))},La=function(e){var t=e.isSmall,n=e.currentPlan,a=e.loaded,o=e.currentLoaded,c=e.plans,i=((null===c||void 0===c?void 0:c.free)||[]).length>0?c.free[0].id:"Community",s=(0,r.useState)({timestamp:null,value:null}),u=(0,l.Z)(s,2),m=u[0],d=u[1];return r.createElement(r.Fragment,null,r.createElement(pa,{currentPlan:n}),a&&o?r.createElement(r.Fragment,null,Jn(n.slug)?r.createElement(sa,{isSmall:t,plans:c,currentPlan:n,showTeaserDetails:!0}):r.createElement(ca,{slug:n.slug,prices:c[n.slug],freePlanId:i,width:t?"auto":120,padding:[0],height:"auto",isSmall:t,isActive:!0,currentPlan:n,allPlansView:!0,nodesLastPeriod:m.value}),r.createElement(Xn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),r.createElement(Ma,{onNodesLastPeriodFetch:d})):r.createElement(an.Z,{title:a?"Loading billing info...":"Loading Netdata plans..."}))},Ra=n(92432),Ba={year:"Yearly",month:"Monthly"},_a=function(e){var t,n=e.plans,a=e.currentPlan,o=(0,v.uk)(),c=qn(),i=Kn(),s=(0,Wn.SH)(),u=(0,l.Z)(s,2),m=u[0],p=u[1],g=!!a.billingEmail&&!p,f=(0,y.Z)(),E=(0,l.Z)(f,2),h=E[0],x=E[1],w=(0,y.Z)(),C=(0,l.Z)(w,2),O=C[0],P=C[1],I=(0,ve.Z)(),S=(0,l.Z)(I,2),T=S[0],k=S[1],Z=(0,Wn.Zn)(),j=(Mr.Vc[a.slug]||Mr.Vc.free).title,F=((null===n||void 0===n?void 0:n.free)||[]).length>0?n.free[0].id:"Community",D=(0,b.gI)("billing:Manage"),A=(0,b.gI)("billing:ReadAll"),N=(Mr.Vc[null===a||void 0===a?void 0:a.slug]||Mr.Vc.free).title,M=Ba[null===a||void 0===a?void 0:a.interval];return r.createElement(d.Flex,{column:!0,gap:2},r.createElement(d.Flex,{gap:2,alignItems:"center"},r.createElement(xe.Z,{as:nn.rU,to:"/spaces/".concat(o,"/settings/billing"),disabled:c,color:"text",hoverColor:"textLite",showToolTip:!0,content:"Back to Plan & Billing",align:"bottom",isBasic:!0},r.createElement(d.Icon,{name:"arrow_left",width:"20px",height:"20px",margin:[1.5,0,0]})),r.createElement(d.H3,null,"All Plans")),r.createElement(ma,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Active plan:"),r.createElement(d.Text,{strong:!0},N)),r.createElement(Xn,null),M&&r.createElement(r.Fragment,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Billing frequency:"),r.createElement(d.Text,{strong:!0},M)),r.createElement(Xn,null)),"Yearly"===M&&r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Committed Nodes:"),r.createElement(d.Text,{strong:!0},(null===a||void 0===a?void 0:a.committedNodes)||0)),r.createElement(Xn,null),A&&r.createElement(r.Fragment,null,r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Credit:"),r.createElement(d.Text,{strong:!0},fr.format((null===a||void 0===a||null===(t=a.balance)||void 0===t?void 0:t.amount)||0)),r.createElement(Ye.Z,{content:da,align:"bottom",isBasic:!0},r.createElement(d.Icon,{name:"information",width:"16px",height:"16px",color:"textLite"}))),r.createElement(Xn,null),r.createElement(d.Flex,{gap:1,alignItems:"center"},r.createElement(d.Text,null,"Billing email:"),r.createElement(d.Text,{strong:!0},(null===a||void 0===a?void 0:a.billingEmail)||"-")),r.createElement(Xn,null)),r.createElement(xe.Z,{Component:d.Flex,cursor:g?"pointer":"default",disabled:!g,onClick:m,alignItems:"center",gap:1},r.createElement("span",null,"Billing options and Invoices"),r.createElement(d.Icon,{name:"nav_arrow_goto",width:"12px",height:"12px"})),!Jn(null===a||void 0===a?void 0:a.slug)&&r.createElement(r.Fragment,null,r.createElement(Xn,null),r.createElement(xe.Z,{Component:d.Flex,cursor:"pointer",onClick:x,alignItems:"center",gap:1,disabled:O||c||!D,"data-ga":"cancel-plan::click::billing"},r.createElement(d.Text,{textDecoration:"underline"},O||c?"Canceling plan...":"Cancel plan")))),r.createElement(Xn,{height:1,width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}}),h&&r.createElement(Nr,{title:"Community",onConfirm:function(){P(),i(),Z({productId:F}).then((function(){return(0,Ra.L)("billing","cancel-plan","global-view",{slug:null===a||void 0===a?void 0:a.slug,interval:null===a||void 0===a?void 0:a.interval,success:!0}),T({header:"Successfully canceled subscription",text:"You are now on Community plan"})})).catch((function(){return(0,Ra.L)("billing","cancel-plan","global-view",{slug:null===a||void 0===a?void 0:a.slug,interval:null===a||void 0===a?void 0:a.interval,success:!1}),k({header:"Failed to cancel the subscription",text:"Remained on ".concat(j," plan")})})).finally((function(){P(),i()}))},onClose:x}))},Ua=["center","end"],Va=m.default.div.withConfig({displayName:"plansDetails__Container",componentId:"sc-t6ze2m-0"})(["display:grid;",""],(function(e){return e.isEarlyBird?"grid-template-columns: 1fr 1.5fr 1.5fr 1.5fr 1.5fr;":"grid-template-columns: 1fr 1.5fr 1.5fr 1.5fr;"})),Ha=m.default.div.withConfig({displayName:"plansDetails__Header",componentId:"sc-t6ze2m-1"})(["display:contents;> *{background:",";border-bottom:1px solid ",";}"],(0,d.getColor)("panelBg"),(0,d.getColor)("separator")),Wa=(0,m.default)(d.Collapsible).withConfig({displayName:"plansDetails__Content",componentId:"sc-t6ze2m-2"})(["display:contents;"]),Ga=function(e){var t=e.center,n=e.end,a=(0,i.Z)(e,Ua);return r.createElement(d.Flex,{alignItems:"center",justifyContent:t?"center":n?"end":"start",padding:[2]},r.createElement(d.Text,a))},za=function(){return r.createElement(d.Icon,{name:"check",color:"primary"})},Ya=function(){return r.createElement(d.Icon,{name:"checkmark_partial_s",color:"textLite"})},qa=function(){return r.createElement(d.Icon,{name:"chevron_down_thin",color:"text"})},Ka=function(){return r.createElement(d.Icon,{name:"chevron_up_thin",color:"text"})},Qa=function(e){var t="earlyBird"===(e.currentPlan||{}).slug,n=(0,r.useState)((function(){return[!1,!1,!1,!1,!1]})),a=(0,l.Z)(n,2),o=a[0],c=a[1],i=function(e){return c((function(t){return t[e]=!t[e],(0,Ir.Z)(t)}))};return r.createElement(r.Fragment,null,r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(0)}},r.createElement(Ga,{strong:!0},"Usage Allowances"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[0]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[0]},r.createElement(Ga,null,"Single Node Metrics Access Limit"),r.createElement(Ga,{center:!0},"UNLIMITED"),t&&r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,null,"Multi-Node Infrastructure Metrics Access Limit"),r.createElement(Ga,{center:!0},"UNLIMITED"),t&&r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,{center:!0},"UNLIMITED"),r.createElement(Ga,null,r.createElement(d.Text,{id:"auditing-events"},"Auditing Events"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"events-related-to-actions-done-on-your-space-eg-invite-user-change-user-role-or-create-room"},"Events related to actions done on your Space, e.g. invite user, change user role or create room")),r.createElement(Ga,{center:!0},"4 hours"),t&&r.createElement(Ga,{center:!0},"4 hours"),r.createElement(Ga,{center:!0},"7 days"),r.createElement(Ga,{center:!0},"90 days"),r.createElement(Ga,null,r.createElement(d.Text,{id:"topology-events"},"Topology Events"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"node-state-transition-events-eg-live-or-offline"},"Node state transition events, e.g. live or offline")),r.createElement(Ga,{center:!0},"4 hours"),t&&r.createElement(Ga,{center:!0},"4 hours"),r.createElement(Ga,{center:!0},"7 days"),r.createElement(Ga,{center:!0},"14 days"),r.createElement(Ga,null,r.createElement(d.Text,{id:"alert-events"},"Alert Events"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"alert-state-transition-events-can-be-seen-as-an-alert-history-log"},"Alert state transition events, can be seen as an alert history log")),r.createElement(Ga,{center:!0},"4 hours"),t&&r.createElement(Ga,{center:!0},"4 hours"),r.createElement(Ga,{center:!0},"7 days"),r.createElement(Ga,{center:!0},"60 days"),r.createElement(Ga,null,"Globally Administered Alerts Notifications Integrations"),r.createElement(Ga,{center:!0},"Email and Discord"),t&&r.createElement(Ga,{center:!0},"Email and Discord"),r.createElement(Ga,{center:!0},"Email, Discord and Webhook"),r.createElement(Ga,{center:!0},"UNLIMITED"))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(1)}},r.createElement(Ga,{strong:!0},"User Administration"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[1]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[1]},r.createElement(Ga,null,"Role Based Access"),r.createElement(Ga,{center:!0},"Basic"),t&&r.createElement(Ga,{center:!0},"Basic"),r.createElement(Ga,{center:!0},"Basic"),r.createElement(Ga,{center:!0},"Advanced"),r.createElement(Ga,null,r.createElement(d.Text,{id:"administrators"},"Administrators"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"administrators-have-unrestricted-access-to-a-space"},"Administrators have unrestricted access to a space")),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"managers"},"Managers"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"same-as-admins-but-unable-to-add-nodes-or-manage-the-space-settings"},"Same as admins, but unable to add nodes, or manage the space settings")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"troubleshooters"},"Troubleshooters"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"same-as-managers-but-unable-to-manage-users-or-rooms"},"Same as managers, but unable to manage users or rooms")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"observers"},"Observers"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"read-only-role-restricted-to-specific-rooms"},"Read only role, restricted to specific rooms")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,r.createElement(d.Text,{id:"billing"},"Billing"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"access-to-billing-details-and-subscription-management"},"Access to billing details and subscription management")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),t&&r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(r.Fragment,null,r.createElement(Ga,null,r.createElement(d.Text,{id:"billing"},"Member"),r.createElement("br",null),r.createElement(d.TextSmall,{color:"textDescription",id:"access-to-billing-details-and-subscription-management"},"This role allows users to manage rooms and invite fellow Member teammates. These users cannot see all rooms in the Space but can see all Nodes since they are always on the All Nodes.")),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null)),r.createElement(Ga,{center:!0},r.createElement(Ya,null))))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(2)}},r.createElement(Ga,{strong:!0},"Support"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[2]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[2]},r.createElement(Ga,null,"Service Availability"),r.createElement(Ga,{center:!0,textAlign:"center"},"Best Effort (99.5% in last 12 months)"),t&&r.createElement(Ga,{center:!0,textAlign:"center"},"Best Effort (99.5% in last 12 months)"),r.createElement(Ga,{center:!0,textAlign:"center"},"Best Effort (99.5% in last 12 months)"),r.createElement(Ga,{center:!0,textAlign:"center"},"99.9% annually (excl. scheduled maintenance)"),r.createElement(Ga,null,"Technical Support"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),t&&r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,null,"Initial Deployment Consulting Services"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),t&&r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Public Forums, Tickets & Chat"),r.createElement(Ga,{center:!0,textAlign:"center"},"Remote Consultation Available upon Request"),r.createElement(Ga,null,"Alerts Digest"),r.createElement(Ga,{center:!0},"Limited"),t&&r.createElement(Ga,{center:!0},"Limited"),r.createElement(Ga,{center:!0},"Limited"),r.createElement(Ga,{center:!0},"Unlimited"))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(3)}},r.createElement(Ga,{strong:!0},"Advanced features"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[3]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[3]},r.createElement(Ga,null,"Custom Dashboards - incl. Grafana"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Nodes secured for access via Netdata only"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Secure Worldwide Remote Access to Dashboards"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Service Level room Views"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Centrally Dispatched Alerts Notifications"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infrastructure and Service Level Nodes Views"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infrastructure and Service Level Alerts Views"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infrastructure and Service Level Charts and Dashboards"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Infinite Horizontal Scalability"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Machine Learning and Anomaly Advisor for All Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Advanced Troubleshooting with Metric Correlations"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Microservices Monitoring - incl. Kubernetes"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)))),r.createElement(Va,{isEarlyBird:t},r.createElement(Ha,{onClick:function(){return i(4)}},r.createElement(Ga,{strong:!0},"Basic features"),r.createElement(Ga,null),t&&r.createElement(Ga,null),r.createElement(Ga,null),r.createElement(Ga,{end:!0},o[4]?r.createElement(Ka,null):r.createElement(qa,null))),r.createElement(Wa,{open:!o[4]},r.createElement(Ga,null,"Unlimited Nodes"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Containers"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Users"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited High Resolution Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited High Resolution Custom Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Metrics Retention"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"1s granularity + 100ms Latency for All Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"800+ Integrations with Data Stores, Servers, and more"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Metrics Extration from web logs"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Zero Configuration Setup"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Auto-Detection of Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Pre-configured and out-of-the-box Alerts"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Unlimited Synthetic Checks"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Auto generated Dashboards for All Metrics"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Metrics data exclusively stored On Premise"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Popular Alerts Notifications"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,null,"Open Data Exporters - Prometheus, Graphite, InfluxDB, and more"),r.createElement(Ga,{center:!0},r.createElement(za,null)),t&&r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)),r.createElement(Ga,{center:!0},r.createElement(za,null)))))},Xa=function(e){var t=e.plans,n=e.loaded,a=e.currentLoaded,l=e.currentPlan;return r.createElement(d.Flex,{column:!0,height:"calc(100% - 30px)",gap:3},r.createElement(_a,{plans:t,currentPlan:l}),n&&a?r.createElement(d.Flex,{column:!0,gap:5},r.createElement(sa,{plans:t,currentPlan:l,showAllPlans:!0},r.createElement(d.Flex,{column:!0,height:50,width:40,justifyContent:"center"},r.createElement(d.Text,{strong:!0},"Pricing"))),r.createElement(Qa,{currentPlan:l})):r.createElement(an.Z,{title:n?"Loading billing info...":"Loading Netdata plans..."}))},$a={Community:0,Pro:1,Business:2},Ja={month:"Monthly",year:"Yearly"},el=function(e){var t=e.from,n=e.to,r=e.fromNodes,a=e.toNodes,l=e.interval,o=e.success,c=void 0===o||o,i=Ja[l]||l;if(t===n&&r===a)return{header:c?"Successful billing cycle change":"Failed to update billing cycle",text:c?"Subscription billing cycle changed to ".concat(i):"Subscription is still on ".concat(i," billing cycle")};if(t===n)return{header:c?"Successful change of commitment":"Failed to change the commitment",text:c?"Commitment ".concat(r<a?"increased":"decreased"," from ").concat(r," to ").concat(a," nodes"):"Commitment remained the same, ".concat(r," nodes")};var s=$a[t]>$a[n];return{header:c?"Successfully ".concat(s?"downgraded":"upgraded"," plan"):"Failed to ".concat(s?"downgrade":"upgrade"," plan"),text:c?"Subsrciprion ".concat(s?"downgraded":"upgraded"," from ").concat(t," to ").concat(n," plan (").concat(i,")"):"Remained on ".concat(t," plan")}},tl=function(){!function(){var e=(0,nn.lr)(),t=(0,l.Z)(e,2),n=t[0],a=t[1],o=(0,ve.Z)(),c=(0,l.Z)(o,2),i=c[0],s=c[1];(0,r.useEffect)((function(){var e=n.get("from"),t=n.get("from_committed_nodes"),r=n.get("interval"),l=n.get("result"),o=n.get("to"),c=n.get("to_committed_nodes");switch(l){case"success":var u={from:e,fromNodes:t,interval:r,to:o,toNodes:c,success:!0};i(el(u)),(0,Ra.L)("billing","callback","global-view",u);break;case"failure":var m={from:e,fromNodes:t,interval:r,to:o,toNodes:c,success:!1};s(el(m)),(0,Ra.L)("billing","callback","global-view",m)}l&&a("")}),[n])}();var e=(0,Wn.Gl)(),t=e.loaded,n=e.value,o=(0,Wn.RP)(),c=o.loaded,i=o.value,s=(0,Hn.m)();return r.createElement(d.Flex,{column:!0,height:"calc(100% - 30px)",gap:3},r.createElement(Yn,null,r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/all-plans",element:r.createElement(Xa,{isSmall:s,currentPlan:i,loaded:t,currentLoaded:c,plans:n})}),r.createElement(a.AW,{path:"/",element:r.createElement(La,{isSmall:s,currentPlan:i,loaded:t,currentLoaded:c,plans:n})}))))},nl=n(41898),rl=["containerProps"],al=["settingsTab"];function ll(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ol(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ll(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ll(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var cl=(0,s.Z)((function(){return Promise.all([n.e(502),n.e(129)]).then(n.bind(n,66129))})),il=(0,m.default)(p.G).withConfig({displayName:"manage-workspace__ColumnHeader",componentId:"sc-j9n54n-0"})(["width:180px;padding:16px;"]),sl=function(e){return function(t){return r.createElement(g.TZ,{hasFooter:!1,hasModalTitle:!1},r.createElement(e,t))}},ul=function(e){return function(t){var n=t.containerProps,a=void 0===n?{}:n,l=(0,i.Z)(t,rl),c=ol({height:"100%",padding:[4,0,0,0]},a);return r.createElement(g.TZ,(0,o.Z)({hasFooter:!1,hasModalTitle:!1},c),r.createElement(e,l))}},ml=sl(Rn),dl=sl(We),pl=sl(dt),gl=sl(it),fl=ul(xn),El=sl(tl),bl=ul(function(e){return function(t){return r.createElement(r.Suspense,{fallback:"Loading settings tab..."},r.createElement(e,t))}}(cl)),hl=(0,r.memo)((function(){var e=(0,a.s0)(),t=(0,a.TH)(),n=t.state,o=void 0===n?{}:n,c=t.pathname,s=(0,a.UO)(),m=s.settingsTab,p=(0,i.Z)(s,al),E=(0,r.useState)((null===o||void 0===o?void 0:o.previousUrlPath)||null),h=(0,l.Z)(E,1)[0],y=(0,v.OS)("name"),x=function(e){var t=W.dH.indexOf(e);return-1!==t?t:W.z2}(m),w=(0,r.useCallback)((function(t){var n=function(e,t){var n=e.split("/"),r=n.indexOf("settings")+1-n.length;return"".concat(n.slice(0,r).join("/"),"/").concat(W.dH[t]||W.z2)}(c,t);e(n)}),[m]);(0,r.useEffect)((function(){W.fV[m]||e((0,u.Gn)(c,ol(ol({},p),{},{settingsTab:W.z2})))}),[]);var C=(0,b.gI)("billing:ReadBasic"),O=(0,b.gI)("room:ReadAll"),P=(0,b.gI)("user:ReadAll"),I=(0,b.gI)("channel:ReadAll"),S=(0,k.jW)();(0,r.useEffect)((function(){C||m===W.fM&&e((0,u.Gn)(c,ol(ol({},p),{},{settingsTab:W.z2})))}),[C,m]);var T=(0,v.uk)(),Z=(0,r.useCallback)((function(){e(h||"/spaces/".concat(T))}),[h,T]);return y?r.createElement(g.oU,{"data-testid":"manageWorkspaceModal",right:!0,closeOnOverlayClick:!0,onClose:Z},r.createElement(f.x,{"data-testid":"manageWorkspaceModal-header",onClose:Z,title:r.createElement(Vn,null)}),r.createElement(d.Tabs,{row:!0,column:!1,"data-testid":"manageWorkspaceModal-tabs",selected:x,onChange:w,TabsHeader:il,tabsProps:{column:!0},height:"100%",noDefaultBorder:!0,position:"relative"},r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-spaceTab",label:W.fV[W.m3],"data-ga":"manage-space::click-tab::space-tab",isMenuItem:!0},r.createElement(ml,{"data-testid":"manageWorkspaceModal-spaceTabContent",onClose:Z,small:!0})),r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-warRoomsTab","data-ga":"manage-space::click-tab::rooms-tab",label:"Rooms",isMenuItem:!0},r.createElement(dl,{"data-testid":"manageWorkspaceModal-warRoomsTabContent"})),(O||S)&&r.createElement(d.Tab,{basis:0,label:"Nodes","data-testid":"manageWorkspaceModal-nodesTab","data-ga":"manage-space::click-tab::nodes-tab",isMenuItem:!0},r.createElement(pl,{"data-testid":"manageWorkspaceModal-nodesTabContent"})),P&&r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-usersTab","data-ga":"manage-space::click-tab::users-tab",label:"Users",isMenuItem:!0},r.createElement(gl,{"data-testid":"manageWorkspaceModal-usersTabContent"})),I&&r.createElement(d.Tab,{basis:0,label:"Alerts & Notifications","data-testid":"manageWorkspaceModal-notificationsTab","data-ga":"manage-space::click-tab::notifications-tab",isMenuItem:!0},r.createElement(fl,null)),C&&!window.envSettings.onprem&&r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-billingTab","data-ga":"manage-space::click-tab::billing-tab",label:"Plan & Billing",isMenuItem:!0},r.createElement(El,{"data-testid":"manageWorkspaceModal-billingTabContent"})),r.createElement(d.Tab,{basis:0,"data-testid":"manageWorkspaceModal-integrationsTab","data-ga":"manage-space::click-tab::integrations-tab",label:"Integrations",isMenuItem:!0},r.createElement(bl,{flavour:nl.RV.settingsPage,containerProps:{padding:[0]},"data-testid":"manageWorkspaceModal-integrationsTabContent"})))):null})),vl=function(){var e=(0,a.TH)(),t=e.pathname,n=e.state;return r.createElement(a.Z5,null,r.createElement(a.AW,{path:"/",element:r.createElement(a.Fg,{state:n,to:{pathname:"".concat(t,"/").concat(W.z2)}})}),r.createElement(a.AW,{path:":settingsTab/*",element:r.createElement(hl,null)}))}},14809:function(e,t,n){"use strict";n.d(t,{Z:function(){return O}});var r=n(87462),a=n(67294),l=n(15557),o=n(89250),c=n(13477),i=n(94666),s=n(15861),u=n(29439),m=n(64687),d=n.n(m),p=(n(57327),n(41539),n(88449),n(2490),n(59849),n(4480)),g=n(93017),f=n(274),E=n(46585),b=n(74059),h=n(57079),v=n(58502),y=n(95383),x=n(53606),w="leave-space-dialog",C="leaveSpaceDialog",O=function(e){var t=e.id,n=e.name,m=e.onClose,O=(0,o.s0)(),P=(0,c.Iy)("id"),I=(0,i.H4)(),S=(0,i.nP)(),T=(0,i.Wy)(),k=function(e){var t=(0,g.Z)(),n=(0,u.Z)(t,2)[1];return(0,p._8)((function(t){var r=t.snapshot,a=t.set,l=t.reset;return function(){var t=(0,s.Z)(d().mark((function t(o){var c,s,m,p,g,x,w,C,O;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return c=o.currentUserId,s=o.onSuccess,m=o.onError,t.next=3,r.getPromise((0,b.st)("ids"));case 3:if(p=t.sent,g=p.filter((function(t){return e!==t})),x=(0,u.Z)(g,1),w=x[0]){t.next=9;break}return n({header:"Spaces",text:E.T$.leave}),t.abrupt("return");case 9:if(t.t0=w,!t.t0){t.next=14;break}return t.next=13,r.getPromise((0,v.ZP)(w));case 13:t.t0=t.sent;case 14:return C=t.t0,O=C.slug,a((0,b.st)("ids"),g),a(h.Z,(function(t){return t.filter((function(t){return t!==e}))})),t.prev=18,t.next=21,(0,f.Sz)(e,[c]);case 21:s&&s(O),(0,i.zm)(l,e),(0,y.r1)(l,e),l((0,v.ZP)(e)),t.next=31;break;case 27:t.prev=27,t.t1=t.catch(18),a((0,b.st)("ids"),p),m&&m();case 31:case"end":return t.stop()}}),t,null,[[18,27]])})));return function(e){return t.apply(this,arguments)}}()}),[e])}(t),Z=(0,x.Z)(t),j=(0,a.useCallback)((function(e){return O("/spaces/".concat(e))}),[]),F=1===I.length,D=1===S.length&&T,A=F?{confirmLabel:"Yes, leave","data-ga":"".concat(w,"-last-member"),"data-testid":"".concat(C,"LastMember"),handleConfirm:function(){return Z({onSuccess:j})},message:a.createElement(a.Fragment,null,"If you leave, space ",a.createElement("strong",null,n)," will be deleted immediately.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Leave and delete ".concat(n," space")}:D?{confirmLabel:"Give rights","data-ga":"".concat(w,"-last-admin"),"data-testid":"".concat(C,"LastAdmin"),handleConfirm:function(){return O("users")},isConfirmPositive:!0,message:a.createElement(a.Fragment,null,"You are the last admin of ",a.createElement("strong",null,n)," space. Please give admin rights to another member so you can leave this space."),title:"Leave ".concat(n," space")}:{confirmLabel:"Yes, leave","data-ga":w,"data-testid":C,handleConfirm:function(){return k({currentUserId:P,onSuccess:j})},message:a.createElement(a.Fragment,null,"You are about to leave ",a.createElement("strong",null,n)," space.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Leave ".concat(n," space")};return a.createElement(l.ConfirmationDialog,(0,r.Z)({handleDecline:m},A))}},73955:function(e,t,n){var r=n(79833),a=0;e.exports=function(e){var t=++a;return r(e)+t}}}]); \ No newline at end of file
diff --git a/web/gui/v2/655.e9a4b596ea0a5d9c7bff.chunk.js b/web/gui/v2/655.6b819502f310febec992.chunk.js
index 9577c387..ce1c3b73 100644
--- a/web/gui/v2/655.e9a4b596ea0a5d9c7bff.chunk.js
+++ b/web/gui/v2/655.6b819502f310febec992.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="b6128bb2-1c9a-4f2e-8144-a21522fca72e",e._sentryDebugIdIdentifier="sentry-dbid-b6128bb2-1c9a-4f2e-8144-a21522fca72e")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[655],{52971:function(e,t,n){n.d(t,{Ci:function(){return o},Ew:function(){return u},pD:function(){return i}});n(74916),n(77601);var r=n(85456),o={denied:"denied",granted:"granted"},i={denied:"inactive",granted:"active"},u=(/app\.netdata\.cloud/.test(location.hostname),/testing\.netdata\.cloud/.test(location.hostname),{defaultCookies:{defaultValue:o.granted,description:"These cookies are essential so that you can have the best experience using Netdata Products. Without these cookies Netdata Products may not work as a result. These do not store any personally identifiable data.",disabled:!0,eventName:"necessary",ga:"default-cookies",gmtKeys:["functionality_storage"],handleAccept:function(){},handleDeny:function(){},id:"defaultCookies",title:"Necessary"},analyticsCookies:{description:"These cookies are used to understand how visitors interact with Netdata Products. They help provide non-identifiable information on user activities through Netdata Products, which is valuable to help us improve our product.",defaultValue:o.granted,disabled:!1,eventName:"analytical",ga:"analytics-cookies",gmtKeys:["ad_storage","analytics_storage"],handleAccept:function(){(0,r.vD)()},handleDeny:function(){(0,r.g2)()},id:"analyticsCookies",title:"Analytical and Tracking"},performanceCookies:{description:"These cookies are used to track the performance and errors you may experience using Netdata Products. These are key for us to monitor the status of the product and easily identify issues.",defaultValue:o.granted,disabled:!1,eventName:"performance",ga:"performance-cookies",gmtKeys:[],handleAccept:function(){},handleDeny:function(){},id:"performanceCookies",title:"Performance and error tracking"}});(0,r.ej)(u.defaultCookies.id)},85456:function(e,t,n){n.d(t,{d8:function(){return c},ej:function(){return u},fY:function(){return f},g2:function(){return s},gs:function(){return d},lF:function(){return l},ow:function(){return g},v:function(){return p},vD:function(){return a}});n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070);var r=n(4942),o=(n(74916),n(4723),n(24603),n(88386),n(39714),n(92222),n(41539),n(68216),n(2490),n(79433),n(47941),n(85827),n(25387),n(72608),n(26833),n(15581),n(34514),n(54747),n(52971));function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var u=function(e){var t;return(null===(t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)")))||void 0===t?void 0:t.pop())||""},c=function(e,t,n){(n||window[e])&&(document.cookie="".concat(e,"=").concat(n||window[e],"; Path=/; Domain=").concat(window.envSettings.cookieDomain,"; Expires=").concat(t,";"))},a=function(){var e,t;null!==(e=(t=window.posthog).has_opted_out_capturing)&&void 0!==e&&e.call(t)&&window.posthog.opt_in_capturing()},s=function(){window.posthog.has_opted_out_capturing&&!window.posthog.has_opted_out_capturing()&&window.posthog.opt_out_capturing()},f=function(e){return Object.keys(e).every((function(t){return e[t]===(!u(t)||d(t))}))},d=function(e){return window.envSettings.tracking&&(!u(e)||u(e)===o.Ci.granted)},l=function(){return Object.values(o.Ew).reduce((function(e,t){var n=t.defaultValue,c=t.id;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}((0,r.Z)({},c,(u(c)||n)===o.Ci.granted),e)}),{})},p=function(e){window.gtag&&window.gtag("consent","update",e)},g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date;return new Date(t.setFullYear(t.getFullYear()+e))}},7335:function(e,t,n){n.d(t,{aG:function(){return P},H3:function(){return m},XU:function(){return j},DH:function(){return O},z2:function(){return b},lL:function(){return k}});var r=n(29439),o=n(93433),i=n(15861),u=n(4942),c=n(64687),a=n.n(c),s=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(57327),n(88449),n(59849),n(26699),n(32023),n(92222),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(69826),n(31672),n(59461),n(2707),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),f=n(4480),d=n(89250),l=n(13477),p=(0,f.xu)({key:"visitedNodes",default:function(){return[]}}),g=n(97945),h=n(18761);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=(0,f.CG)({key:"visitedNodeIdsValue",get:function(e){return function(t){return(0,t.get)(p(e)).map((function(e){return e.id}))}}}),b=function(){var e=(0,l.jr)(),t=(0,f.sJ)(p(e)),n=(0,f._8)((function(e){var t=e.set;return function(e){t(g.Jz,{values:e.reduce((function(e,t){return v(v({},e),{},(0,u.Z)({},t.id,v(v({},t),{},{loaded:!0})))}),{}),merge:!0})}}),[]);return(0,s.useEffect)((function(){n(t)}),[t]),(0,f.sJ)(w(e))},m=function(e){var t=(0,l.jr)(),n=(0,f.sJ)(p(t)),r=(0,s.useMemo)((function(){return e?n.filter((function(t){return t.name.toUpperCase().includes(e.toUpperCase())})):n}),[n,e]);return(0,s.useMemo)((function(){return r.map((function(e){return e.id}))}),[r])},k=function(){return(0,f._8)((function(e){var t=e.snapshot,n=e.set;return function(){var e=(0,i.Z)(a().mark((function e(r,o){var i,u,c,s,f;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getPromise((0,l.KL)("id"));case 2:return i=e.sent,e.next=5,t.getPromise((0,g.zP)({id:r}));case 5:return u=e.sent,c=u.urls,s=u.name,f=c.filter((function(e){return e!==o})),n((0,g.zP)({id:r,key:"urls"}),f),f.length||n(p(i),(function(e){return e.filter((function(e){return e.id!==r}))})),e.prev=11,e.next=14,f.length?(0,h.RX)(i,r,s,f):(0,h.Sd)(i,[r]);case 14:(0,h.Wy)(i,r).catch((function(){})),e.next=20;break;case 17:e.prev=17,e.t0=e.catch(11),n((0,g.zP)({id:r,key:"urls"}),c);case 20:case"end":return e.stop()}}),e,null,[[11,17]])})));return function(t,n){return e.apply(this,arguments)}}()}),[])},O=function(){var e=(0,d.TH)().pathname,t=(0,l.jr)(),n=P(t,{autoFetch:!1});return(0,f._8)((function(e){var t=e.snapshot,r=e.set;return function(){var e=(0,i.Z)(a().mark((function e(i,u,c){var s,f,d,y,w,b;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getPromise((0,l.KL)("isAnonymous"));case 2:if(!e.sent){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,t.getPromise((0,l.KL)("id"));case 7:return s=e.sent,e.next=10,t.getPromise((0,g.zP)({id:i}));case 10:if(f=e.sent,d=f.urls,y=f.name,w=u?[u].concat((0,o.Z)(d)):d,w=(0,o.Z)(new Set([window.location.href].concat((0,o.Z)(w)))),b=w.length!==d.length,e.prev=16,r((0,g.zP)({id:i,key:"urls"}),w),r(p(s),(function(e){var t=e.find((function(e){return e.id===i})),n=e.filter((function(e){return e.id!==i}));return t?[v(v({},t),{},{accessCount:t.accessCount+1,lastAccessTime:(new Date).toISOString()})].concat((0,o.Z)(n)):[{accessCount:1,id:i,lastAccessTime:(new Date).toISOString(),urls:w,name:c}].concat((0,o.Z)(n))})),!b){e.next=22;break}return e.next=22,(0,h.RX)(s,i,c||y,w);case 22:return n(),e.next=25,(0,h.Wy)(s,i);case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(16),r((0,g.zP)({id:i,key:"urls"}),d);case 30:case"end":return e.stop()}}),e,null,[[16,27]])})));return function(t,n,r){return e.apply(this,arguments)}}()}),[n,e,t])},P=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).autoFetch,n=void 0===t||t,o=(0,f.FV)(p(e)),i=(0,r.Z)(o,2)[1],u=(0,s.useState)(0),c=(0,r.Z)(u,2),a=c[0],d=c[1],l=(0,s.useCallback)((function(){d((function(e){return e+1}))}),[d]);return(0,s.useEffect)((function(){e&&(n||a)&&(0,h.Fz)(e).then((function(e){if(e){var t=e.data.results.sort((function(e,t){return new Date(t.lastAccessTime)-new Date(e.lastAccessTime)}));i(t)}}))}),[n,a,e]),l},j=function(){var e=(0,l.jr)(),t=p(e);return(0,f._8)((function(e){var n=e.snapshot,r=e.set;return function(){var e=(0,i.Z)(a().mark((function e(o){var i,u,c,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getPromise((0,g.$E)(o));case 2:return i=e.sent,u=i.map((function(e){return e.machineGUID})),e.next=6,n.getPromise(t);case 6:c=e.sent,(s=c.filter((function(e){return!u.includes(e.id)}))).length!==c.length&&r(t,s);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}),[e])}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="1edd95bc-aaac-4495-9574-1d6887b8436d",e._sentryDebugIdIdentifier="sentry-dbid-1edd95bc-aaac-4495-9574-1d6887b8436d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[655],{52971:function(e,t,n){n.d(t,{Ci:function(){return o},Ew:function(){return u},pD:function(){return i}});n(74916),n(77601);var r=n(85456),o={denied:"denied",granted:"granted"},i={denied:"inactive",granted:"active"},u=(/app\.netdata\.cloud/.test(location.hostname),/testing\.netdata\.cloud/.test(location.hostname),{defaultCookies:{defaultValue:o.granted,description:"These cookies are essential so that you can have the best experience using Netdata Products. Without these cookies Netdata Products may not work as a result. These do not store any personally identifiable data.",disabled:!0,eventName:"necessary",ga:"default-cookies",gmtKeys:["functionality_storage"],handleAccept:function(){},handleDeny:function(){},id:"defaultCookies",title:"Necessary"},analyticsCookies:{description:"These cookies are used to understand how visitors interact with Netdata Products. They help provide non-identifiable information on user activities through Netdata Products, which is valuable to help us improve our product.",defaultValue:o.granted,disabled:!1,eventName:"analytical",ga:"analytics-cookies",gmtKeys:["ad_storage","analytics_storage"],handleAccept:function(){(0,r.vD)()},handleDeny:function(){(0,r.g2)()},id:"analyticsCookies",title:"Analytical and Tracking"},performanceCookies:{description:"These cookies are used to track the performance and errors you may experience using Netdata Products. These are key for us to monitor the status of the product and easily identify issues.",defaultValue:o.granted,disabled:!1,eventName:"performance",ga:"performance-cookies",gmtKeys:[],handleAccept:function(){},handleDeny:function(){},id:"performanceCookies",title:"Performance and error tracking"}});(0,r.ej)(u.defaultCookies.id)},85456:function(e,t,n){n.d(t,{d8:function(){return c},ej:function(){return u},fY:function(){return d},g2:function(){return s},gs:function(){return f},lF:function(){return l},ow:function(){return g},v:function(){return p},vD:function(){return a}});n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070);var r=n(4942),o=(n(74916),n(4723),n(24603),n(88386),n(39714),n(92222),n(41539),n(68216),n(2490),n(79433),n(47941),n(85827),n(25387),n(72608),n(26833),n(15581),n(34514),n(54747),n(52971));function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var u=function(e){var t;return(null===(t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)")))||void 0===t?void 0:t.pop())||""},c=function(e,t,n){(n||window[e])&&(document.cookie="".concat(e,"=").concat(n||window[e],"; Path=/; Domain=").concat(window.envSettings.cookieDomain,"; Expires=").concat(t,";"))},a=function(){var e,t;null!==(e=(t=window.posthog).has_opted_out_capturing)&&void 0!==e&&e.call(t)&&window.posthog.opt_in_capturing()},s=function(){window.posthog.has_opted_out_capturing&&!window.posthog.has_opted_out_capturing()&&window.posthog.opt_out_capturing()},d=function(e){return Object.keys(e).every((function(t){return e[t]===(!u(t)||f(t))}))},f=function(e){return window.envSettings.tracking&&(!u(e)||u(e)===o.Ci.granted)},l=function(){return Object.values(o.Ew).reduce((function(e,t){var n=t.defaultValue,c=t.id;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}((0,r.Z)({},c,(u(c)||n)===o.Ci.granted),e)}),{})},p=function(e){window.gtag&&window.gtag("consent","update",e)},g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date;return new Date(t.setFullYear(t.getFullYear()+e))}},7335:function(e,t,n){n.d(t,{aG:function(){return P},H3:function(){return m},XU:function(){return j},DH:function(){return O},z2:function(){return b},lL:function(){return k}});var r=n(29439),o=n(93433),i=n(15861),u=n(4942),c=n(64687),a=n.n(c),s=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(57327),n(88449),n(59849),n(26699),n(32023),n(92222),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(69826),n(31672),n(59461),n(2707),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),d=n(4480),f=n(89250),l=n(13477),p=(0,d.xu)({key:"visitedNodes",default:function(){return[]}}),g=n(97945),h=n(18761);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=(0,d.CG)({key:"visitedNodeIdsValue",get:function(e){return function(t){return(0,t.get)(p(e)).map((function(e){return e.id}))}}}),b=function(){var e=(0,l.jr)(),t=(0,d.sJ)(p(e)),n=(0,d._8)((function(e){var t=e.set;return function(e){t(g.Jz,{values:e.reduce((function(e,t){return v(v({},e),{},(0,u.Z)({},t.id,v(v({},t),{},{loaded:!0})))}),{}),merge:!0})}}),[]);return(0,s.useEffect)((function(){n(t)}),[t]),(0,d.sJ)(w(e))},m=function(e){var t=(0,l.jr)(),n=(0,d.sJ)(p(t)),r=(0,s.useMemo)((function(){return e?n.filter((function(t){return t.name.toUpperCase().includes(e.toUpperCase())})):n}),[n,e]);return(0,s.useMemo)((function(){return r.map((function(e){return e.id}))}),[r])},k=function(){return(0,d._8)((function(e){var t=e.snapshot,n=e.set;return function(){var e=(0,i.Z)(a().mark((function e(r,o){var i,u,c,s,d;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getPromise((0,l.KL)("id"));case 2:return i=e.sent,e.next=5,t.getPromise((0,g.zP)({id:r}));case 5:return u=e.sent,c=u.urls,s=u.name,d=c.filter((function(e){return e!==o})),n((0,g.zP)({id:r,key:"urls"}),d),d.length||n(p(i),(function(e){return e.filter((function(e){return e.id!==r}))})),e.prev=11,e.next=14,d.length?(0,h.RX)(i,r,s,d):(0,h.Sd)(i,[r]);case 14:(0,h.Wy)(i,r).catch((function(){})),e.next=20;break;case 17:e.prev=17,e.t0=e.catch(11),n((0,g.zP)({id:r,key:"urls"}),c);case 20:case"end":return e.stop()}}),e,null,[[11,17]])})));return function(t,n){return e.apply(this,arguments)}}()}),[])},O=function(){var e=(0,f.TH)().pathname,t=(0,l.jr)(),n=P(t,{autoFetch:!1});return(0,d._8)((function(e){var t=e.snapshot,r=e.set;return function(){var e=(0,i.Z)(a().mark((function e(i,u,c){var s,d,f,y,w,b;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getPromise((0,l.KL)("isAnonymous"));case 2:if(!e.sent){e.next=5;break}return e.abrupt("return");case 5:return e.next=7,t.getPromise((0,l.KL)("id"));case 7:return s=e.sent,e.next=10,t.getPromise((0,g.zP)({id:i}));case 10:if(d=e.sent,f=d.urls,y=d.name,w=u?[u].concat((0,o.Z)(f)):f,w=(0,o.Z)(new Set([window.location.href].concat((0,o.Z)(w)))),b=w.length!==f.length,e.prev=16,r((0,g.zP)({id:i,key:"urls"}),w),r(p(s),(function(e){var t=e.find((function(e){return e.id===i})),n=e.filter((function(e){return e.id!==i}));return t?[v(v({},t),{},{accessCount:t.accessCount+1,lastAccessTime:(new Date).toISOString()})].concat((0,o.Z)(n)):[{accessCount:1,id:i,lastAccessTime:(new Date).toISOString(),urls:w,name:c}].concat((0,o.Z)(n))})),!b){e.next=22;break}return e.next=22,(0,h.RX)(s,i,c||y,w);case 22:return n(),e.next=25,(0,h.Wy)(s,i);case 25:e.next=30;break;case 27:e.prev=27,e.t0=e.catch(16),r((0,g.zP)({id:i,key:"urls"}),f);case 30:case"end":return e.stop()}}),e,null,[[16,27]])})));return function(t,n,r){return e.apply(this,arguments)}}()}),[n,e,t])},P=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).autoFetch,n=void 0===t||t,o=(0,d.FV)(p(e)),i=(0,r.Z)(o,2)[1],u=(0,s.useState)(0),c=(0,r.Z)(u,2),a=c[0],f=c[1],l=(0,s.useCallback)((function(){f((function(e){return e+1}))}),[f]);return(0,s.useEffect)((function(){e&&(n||a)&&(0,h.Fz)(e).then((function(e){if(e){var t=e.data.results.sort((function(e,t){return new Date(t.lastAccessTime)-new Date(e.lastAccessTime)}));i(t)}}))}),[n,a,e]),l},j=function(){var e=(0,l.jr)(),t=p(e);return(0,d._8)((function(e){var n=e.snapshot,r=e.set;return function(){var e=(0,i.Z)(a().mark((function e(o){var i,u,c,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getPromise((0,g.$E)(o));case 2:return i=e.sent,u=i.map((function(e){return e.machineGUID})),e.next=6,n.getPromise(t);case 6:c=e.sent,(s=c.filter((function(e){return!u.includes(e.id)}))).length!==c.length&&r(t,s);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}),[e])}}}]); \ No newline at end of file
diff --git a/web/gui/v2/663.08e4639637c3d8f77b7c.chunk.js b/web/gui/v2/663.a89b1206f4b293aabe4b.chunk.js
index ca79d7fd..dd46e160 100644
--- a/web/gui/v2/663.08e4639637c3d8f77b7c.chunk.js
+++ b/web/gui/v2/663.a89b1206f4b293aabe4b.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4fa28409-6c6f-45d0-bb86-ad399bb7a488",e._sentryDebugIdIdentifier="sentry-dbid-4fa28409-6c6f-45d0-bb86-ad399bb7a488")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[663],{36925:function(e,t,n){n.d(t,{vV:function(){return r}});n(74916),n(77601);var a=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,r=function(e){return!!e&&a.test(e)}},86414:function(e,t,n){n.d(t,{m:function(){return d}});var a=n(93433),r=n(29439),o=(n(26699),n(32023),n(92222),n(21249),n(57640),n(9924),n(57327),n(41539),n(88449),n(2490),n(59849),n(74916),n(15306),n(67294)),i=n(15557),l=n(36925),c=(0,n(60677).default)(i.Select).withConfig({displayName:"styled__StyledSelect",componentId:"sc-bkkrx-0"})(["width:100%;"]),s=(n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(51532),n(10072),n(23042),n(99137),n(71957),n(96306),n(103),n(74592),n(58276),n(35082),n(12813),n(18222),n(38563),n(50336),n(7512),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"name";return e.length?"string"===typeof e[0]?(0,a.Z)(new Set(e)):(0,a.Z)(new Map(e.map((function(e){return[e[t],e]}))).values()):[]}),u=[],d=function(e){var t=e.invitations,n=e.setInvitations,d=(0,o.useState)(u),f=(0,r.Z)(d,2),m=f[0],p=f[1],v=(0,o.useState)(""),b=(0,r.Z)(v,2),g=b[0],h=b[1],y=(0,o.useState)(""),E=(0,r.Z)(y,2),w=E[0],x=E[1],k=function(){return x("")},C=(0,o.useCallback)((function(e){h(e.toLowerCase())}),[h]),Z=o.useCallback((function(e){var t=e.emails,a=void 0===t?u:t,r=e.invitations,o=void 0===r?u:r;if(e.isEmailValid){var i=s(a),l=s(o);return p(i),n(l),h(""),void k()}x("Invalid Email")}),[n]),S=(0,o.useCallback)((function(e){return(0,l.vV)(e)&&!m.includes(e)}),[m]),O=(0,o.useCallback)((function(e){Z({isEmailValid:!0,emails:e.map((function(e){return e.value})),invitations:e.map((function(e){return{email:e.value,name:e.value.split("@")[0]}}))})}),[p]),I=(0,o.useCallback)((function(e){var n=e.clipboardData.getData("Text").toLowerCase().replace(/ /g,",").replace(/,,/g,",").split(",").filter((function(e){return S(e)}))||u;Z({emails:[].concat((0,a.Z)(m),(0,a.Z)(n)),invitations:[].concat((0,a.Z)(t),(0,a.Z)(n.map((function(e){return{email:e,name:e.split("@")[0]}})))),isEmailValid:n.length>0}),e.preventDefault()}),[m,t,S,Z]),j=(0,o.useCallback)((function(e){if(g)switch(k(),e.key){case"Enter":case"Tab":case",":case" ":Z({emails:[].concat((0,a.Z)(m),[g]),invitations:[].concat((0,a.Z)(t),[{email:g,name:g.split("@")[0]}]),isEmailValid:S(g)}),e.preventDefault()}}),[m,g,t,S,Z]);return o.createElement(i.Flex,{justifyContent:"space-between",column:!0,onPaste:I},o.createElement(c,{components:{DropdownIndicator:null},inputValue:g,isClearable:!0,isMulti:!0,menuIsOpen:!1,onBlur:function(){g&&Z({emails:[].concat((0,a.Z)(m),[g]),invitations:[].concat((0,a.Z)(t),[{email:g,name:g.split("@")[0]}]),isEmailValid:S(g)})},onChange:O,onInputChange:C,onKeyDown:j,onClear:function(){p(u),n(u)},placeholder:"Enter an email and hit enter",value:m.map((function(e){return{label:t=e,value:t};var t}))}),w&&o.createElement(i.Text,{color:"error"},w))}},18663:function(e,t,n){n.d(t,{l:function(){return D}});var a=n(87462),r=n(15861),o=n(29439),i=n(64687),l=n.n(i),c=(n(21249),n(57640),n(9924),n(57327),n(41539),n(88449),n(2490),n(59849),n(92222),n(67294)),s=n(15557),u=n(92432),d=n(74855),f=n(52631),m=n(90025),p=n(91008),v=n(86414),b=n(74059),g=n(95383),h=n(35838),y=n(53338),E=n(16645),w=n(7693),x=n(92903),k=n(87181),C=function(e){var t=e.id,n=e.handleDelete,a=(0,h.D)(t,"email");return c.createElement(s.Flex,{justifyContent:"between",alignItems:"center"},c.createElement(s.Flex,{gap:4},c.createElement(s.Icon,{color:"text",name:"check"}),c.createElement(s.Text,null,a)),c.createElement(s.Button,{flavour:"borderless",icon:"trashcan",onClick:function(){return n({email:a})}}))},Z=n(93017),S=n(36925),O=n(33335),I=n(8048),j=n(46475),T=function(e){var t=e.email;return(0,S.vV)(t)},_={header:"Invitations",text:"Invitations successfully sent!"},D=function(e){var t=e.onClose,n=e.isSubmodal,i=void 0!==n&&n,S=(0,b.OS)(),D=S.id,R=S.name,P=S.slug,B=(0,g.yE)(),U=(0,c.useState)(B),N=(0,o.Z)(U,2),V=N[0],F=N[1],A=(0,c.useState)([]),L=(0,o.Z)(A,2),M=L[0],q=L[1],Q=(0,c.useState)([]),Y=(0,o.Z)(Q,2),G=Y[0],J=Y[1],z=(0,c.useState)(),H=(0,o.Z)(z,2),K=H[0],$=H[1],W=(0,h.E)(D),X=(0,o.Z)(W,4),ee=X[0],te=X[1],ne=X[2],ae=X[3],re=(0,Z.Z)(),oe=(0,o.Z)(re,2)[1],ie=function(e){var n=e||_,a=n.header,r=n.text,o=(0,d.sc)({header:a,text:r,success:!0}),i=G.filter(T).map((function(e){return e.email})).join(",");(0,u.L)("invite","invite-sent","".concat(K,"::").concat(i,"::").concat(V.join(",")),"","","invite-sent"),f.Z.success(o,{context:"manageInvitations"}),t()},le=function(){var e=(0,r.Z)(l().mark((function e(){var t,n,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=G.filter(T),n=t.map((function(e){return{email:e.email,name:e.name,role:K,roomIDs:V}})),a="".concat(window.location.origin,"/spaces/").concat(P,"/join-space"),ne(n,a,{onSuccess:ie,onError:oe});case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ce=(0,O.QB)(),se=function(e){return function(t){var n=t.email;e&&te(e),J(G.filter((function(e){return e.email!==n}))),q(M.filter((function(e){return e.email!==n})))}},ue=(0,c.useCallback)((function(){F([])}),[F]),de="member"===K;return c.createElement(E.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},c.createElement(w.x,{onClose:t,isSubmodal:i,title:"Invite Users"}),c.createElement(x.B,null,"Invite users to\xa0",R),c.createElement(E.TZ,null,c.createElement(k.qQ,null,"Send invitations to your team"),c.createElement(k.ne,null,"TIP: You can send more invitations at once, separate each with a comma."),c.createElement(v.m,{invitations:G,setInvitations:J}),c.createElement("br",null),c.createElement(k.qQ,null,"Rooms"),c.createElement(s.Flex,{alignItems:"center",justifyContent:"between",margin:[1,0,2]},c.createElement(s.TextSmall,null,"Choose one or more rooms you'd like to invite users to."),!!V.length&&c.createElement(s.Button,{onClick:ue,padding:[0],flavour:"borderless","data-ga":"rooms-clear",label:"Clear",small:!0},"Clear")),c.createElement(s.Box,{"data-testid":"invite-selectRoom"},c.createElement(m.Z,(0,a.Z)({selectedValue:V,onChange:F},de?{formatOptions:function(e){return{isDisabled:e.name===y.TY}},filterValues:function(e){return e.label===y.TY}}:{}))),c.createElement("br",null),c.createElement(k.qQ,null,"Role"),c.createElement(k.ne,null,"Choose a role for invited user."," ",c.createElement(p.Z,{href:j.R,target:"_blank",rel:"noopener noreferrer",Component:s.TextSmall},"Learn more")),c.createElement(s.Box,{"data-testid":"invite-selectRole"},c.createElement(I.Z,{availableRoles:ce,dataGA:"invite-to-space",dataTestId:"invite-selectRole",onChange:function(e){$(e.target.value)},value:K})),c.createElement(k.p7,null,c.createElement(s.Button,{label:"Send",onClick:le,disabled:0===G.length||!K,flavour:"hollow",isLoading:ae})),c.createElement(s.H5,{margin:[2,0,0]},"Invitations awaiting response"),c.createElement(s.Flex,{column:!0},ee.length>0?ee.map((function(e){return c.createElement(C,{key:e,handleDelete:se(e),id:e})})):c.createElement(k.xB,null,c.createElement("br",null),c.createElement(k.qQ,null,"You haven't invited any users yet.")))))}},87181:function(e,t,n){n.d(t,{ne:function(){return c},p7:function(){return i},qQ:function(){return o},xB:function(){return l}});var a=n(60677),r=n(15557),o=(0,a.default)(r.H5).withConfig({displayName:"styled__StyledH5",componentId:"sc-1kusjmi-0"})(["display:flex;align-items:center;"]),i=a.default.div.withConfig({displayName:"styled__FormRow",componentId:"sc-1kusjmi-1"})(["width:100%;display:flex;flex-flow:row no-wrap;justify-content:flex-end;margin-top:",";"],(0,r.getSizeBy)(2)),l=a.default.div.withConfig({displayName:"styled__StyledUserInvitationEmptyListItem",componentId:"sc-1kusjmi-2"})(["display:flex;flex-flow:column nowrap;align-items:center;"]),c=(0,a.default)(r.TextSmall).withConfig({displayName:"styled__StyledSecondaryText",componentId:"sc-1kusjmi-3"})(["margin:2px 0 8px;"])},46475:function(e,t,n){n.d(t,{R:function(){return a}});var a="https://learn.netdata.cloud/docs/nightly/concepts/role-based-access-model"},99826:function(e,t,n){n(92222);var a=n(67294),r=n(46715),o=n(74059);t.Z=function(e){var t=(0,r.RP)(),n=t.loaded,i=t.value,l=t.hasError,c=(0,o.uk)(),s=n&&i?i.billingEmail?"update":"checkout":"",u=(0,a.useCallback)((function(e){return n&&i?"/spaces/".concat(c,"/settings/billing/all-plans#billingModalType=").concat(s,"&billingModalSlug=").concat(e):null}),[e,c,s]),d=e?u(e):null;return{loaded:n,getUrl:u,url:d,hasError:l}}},8048:function(e,t,n){n(2707),n(21249),n(57640),n(9924),n(26699),n(32023),n(9653),n(92222);var a=n(67294),r=n(15557),o=n(60677),i=n(64637),l=n(87917),c=n(74059),s=n(91008),u=n(79655),d=n(33335),f=n(99826),m={admin:"Users with this role can control Spaces, Rooms, Nodes, Users and Billing. They can also access any Room in the Space.",member:"Users with this role can create Rooms and invite other Members. They can only see the Rooms they belong to and all Nodes in the All Nodes room",manager:"Users with this role can manage Rooms and Users. They can access any Room in the Space.",troubleshooter:"Users with this role can use Netdata to troubleshoot, not manage entities. They can access any Room in the Space.",observer:"Users with this role can only view data in specific Rooms.",billing:"Users with this role can handle billing options and invoices."},p=(0,o.default)(r.Flex).withConfig({displayName:"rolePicker__PlanBadge",componentId:"sc-ypuqww-0"})(["pointer-events:auto;"]);t.Z=function(e){var t=e.availableRoles,n=e.dataGA,o=e.dataTestId,v=e.onChange,b=e.value,g=(0,c.OS)("plan"),h=(0,a.useMemo)((function(){return(0,l.xJ)(g).map((function(e){return{isChecked:e===b,isEnabled:t.includes(e),role:e}})).sort((function(e,t){return Number(t.isEnabled)-Number(e.isEnabled)}))}),[t,l.xJ,g,b]),y=(0,d.gI)("billing:ReadAll"),E=(0,f.Z)().getUrl;return a.createElement(r.Flex,{column:!0,gap:2,"data-testid":"".concat(o,"-roleOptions")},h.map((function(e){var t=e.isChecked,l=e.isEnabled,c=e.role,d=l?void 0:"medium",f="troubleshooter"===c?"pro":"business";return a.createElement(r.RadioButton,{key:c,checked:t,"data-ga":"".concat(n,"::select-role-").concat(c,"::global-view"),"data-testid":"".concat(o,"-").concat(c,"Option"),disabled:!l,onChange:v,value:c,alignItems:"start"},a.createElement(r.Flex,{column:!0},a.createElement(r.Flex,{gap:2,alignItems:"center"},a.createElement(r.Text,{opacity:d},(0,i.fm)(c)),!l&&a.createElement(p,{background:"sideBarMini",border:{side:"all",color:"tabsBorder"},cursor:"initial",padding:[1],round:!0},a.createElement(s.Z,{align:"bottom",as:u.rU,boxProps:{as:r.Flex},color:"text",Component:r.TextMicro,content:"Available on ".concat((0,i.fm)(f)," plan"),"data-ga":"".concat(n,"::click-plan-badge-").concat(f,"::global-view"),disabled:!y,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:E(f)},(0,i.fm)(f)))),a.createElement(r.TextSmall,{color:"textLite",opacity:d},m[c])))})))}},35838:function(e,t,n){n.d(t,{D:function(){return _},E:function(){return T}});var a=n(15861),r=n(29439),o=n(4942),i=n(93433),l=n(64687),c=n.n(l),s=(n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(21249),n(57640),n(9924),n(15581),n(2490),n(34514),n(54747),n(57327),n(88449),n(59849),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(67294)),u=n(4480),d=(0,u.xu)({key:"invitation",default:{id:"",email:""}}),f=(0,u.xu)({key:"invitationIds",default:[]}),m=n(45987),p=n(26398),v=["role"];function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}var g=function(e){return e.map((function(e){return{id:e.id,email:e.email}}))},h=function(e){return p.Z.get("/api/v2/spaces/".concat(e,"/invitations"),{transform:g})},y={member:1,admin:2,manager:3,troubleshooter:4,observer:5,billing:6},E=function(e){return e.map((function(e){var t=e.role,n=(0,m.Z)(e,v);if(void 0===y[t])throw new Error("role not found");return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({role:y[t]},n)}))},w=function(e,t,n){return p.Z.post("/api/v1/spaces/".concat(e,"/invitations"),{redirectURI:n,requests:E(t)})},x=function(e,t){return p.Z.delete("/api/v1/spaces/".concat(e,"/invitations"),{params:{invitation_ids:t.join(",")}})},k=(n(85827),n(25387),n(72608),n(62200)),C=function(e){var t=e.data,n=e.invitations;return t.reduce((function(e,t,a){var r,o;(o=t.errorMsgKey)&&o===k.Sq&&(null!==(r=n[a])&&void 0!==r&&r.email&&e.push(n[a].email));return e}),[])},Z=function(e){return e.length>1};function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var I=(0,u.CG)({key:"spaceInvitationValue",get:function(e){var t=e.id,n=e.key;return function(e){var a=(0,e.get)(d(t));return n?a[n]:a}}}),j=(0,u.CG)({key:"spaceInvitationsIdsValue",get:function(e){return function(t){return(0,t.get)(f(e))}},set:function(e){return function(t,n){var a=t.set,r=n.invitations,o=n.merge;a(f(e),(function(e){return(0,i.Z)(new Set([].concat((0,i.Z)(e),(0,i.Z)(r.map((function(e){return e.id}))))))})),r.forEach((function(e){a(d(e.id),(function(t){return O(O({},o&&t),e)}))}))}}}),T=function(e){var t=(0,u.sJ)(j(e)),n=(0,s.useState)(!1),o=(0,r.Z)(n,2),l=o[0],m=o[1],p=(0,u._8)((function(t){var n=t.snapshot,r=t.set;return(0,a.Z)(c().mark((function t(){var a,o;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.getLoadable(j(e));case 2:if(t.sent.length){t.next=9;break}return t.next=6,h(e);case 6:a=t.sent,o=a.data,r(j(e),{invitations:o,merge:!0});case 9:case"end":return t.stop()}}),t)})))}),[e]),v=(0,s.useCallback)(function(){var t=(0,a.Z)(c().mark((function t(n,a,r){var o,i,l,s,u;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=r.onSuccess,i=r.onError,t.prev=1,m(!0),t.next=5,w(e,n,a);case 5:if(l=t.sent,s=l.data,!(u=C({data:s,invitations:n})).length||Z(n)){t.next=11;break}return i&&i({message:"User has already joined that space!"}),t.abrupt("return");case 11:if(!u.length||!Z(n)){t.next=18;break}if(u.length!==n.length){t.next=15;break}return i&&i({message:"All of the selected users are already meembers of this space"}),t.abrupt("return");case 15:if(!o){t.next=18;break}return o({header:"Invitations partially send",text:"Some of the selected users are already members of this space"}),t.abrupt("return");case 18:o&&o(),t.next=24;break;case 21:t.prev=21,t.t0=t.catch(1),i&&i(t.t0);case 24:return t.prev=24,m(!1),t.finish(24);case 27:case"end":return t.stop()}}),t,null,[[1,21,24,27]])})));return function(e,n,a){return t.apply(this,arguments)}}(),[e]),b=(0,u._8)((function(t){var n=t.snapshot,r=t.set,o=t.reset;return function(){var t=(0,a.Z)(c().mark((function t(a){var l,s;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.getPromise(j(e));case 2:return l=t.sent,s=l.filter((function(e){return e===a})),r(f(e),(function(e){var t=new Set(e);return s.forEach((function(e){return t.delete(e)})),(0,i.Z)(t)})),t.prev=5,t.next=8,x(e,[a]);case 8:s.forEach((function(e){o(d(e))})),t.next=14;break;case 11:t.prev=11,t.t0=t.catch(5),r(j(e),{invitations:l,merge:!1});case 14:case"end":return t.stop()}}),t,null,[[5,11]])})));return function(e){return t.apply(this,arguments)}}()}),[e]);return(0,s.useEffect)((function(){p()}),[e]),[t,b,v,l]},_=function(e,t){return(0,u.sJ)(I({id:e,key:t}))}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="98692e2c-d15e-4a38-bdb6-1ff5353a390e",e._sentryDebugIdIdentifier="sentry-dbid-98692e2c-d15e-4a38-bdb6-1ff5353a390e")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[663],{36925:function(e,t,n){n.d(t,{vV:function(){return r}});n(74916),n(77601);var a=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,r=function(e){return!!e&&a.test(e)}},86414:function(e,t,n){n.d(t,{m:function(){return d}});var a=n(93433),r=n(29439),o=(n(26699),n(32023),n(92222),n(21249),n(57640),n(9924),n(57327),n(41539),n(88449),n(2490),n(59849),n(74916),n(15306),n(67294)),i=n(57509),l=n(36925),c=(0,n(60677).default)(i.Select).withConfig({displayName:"styled__StyledSelect",componentId:"sc-bkkrx-0"})(["width:100%;"]),s=(n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(51532),n(10072),n(23042),n(99137),n(71957),n(96306),n(103),n(74592),n(58276),n(35082),n(12813),n(18222),n(38563),n(50336),n(7512),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"name";return e.length?"string"===typeof e[0]?(0,a.Z)(new Set(e)):(0,a.Z)(new Map(e.map((function(e){return[e[t],e]}))).values()):[]}),u=[],d=function(e){var t=e.invitations,n=e.setInvitations,d=(0,o.useState)(u),f=(0,r.Z)(d,2),m=f[0],p=f[1],v=(0,o.useState)(""),b=(0,r.Z)(v,2),g=b[0],h=b[1],y=(0,o.useState)(""),E=(0,r.Z)(y,2),w=E[0],x=E[1],k=function(){return x("")},C=(0,o.useCallback)((function(e){h(e.toLowerCase())}),[h]),Z=o.useCallback((function(e){var t=e.emails,a=void 0===t?u:t,r=e.invitations,o=void 0===r?u:r;if(e.isEmailValid){var i=s(a),l=s(o);return p(i),n(l),h(""),void k()}x("Invalid Email")}),[n]),S=(0,o.useCallback)((function(e){return(0,l.vV)(e)&&!m.includes(e)}),[m]),O=(0,o.useCallback)((function(e){Z({isEmailValid:!0,emails:e.map((function(e){return e.value})),invitations:e.map((function(e){return{email:e.value,name:e.value.split("@")[0]}}))})}),[p]),I=(0,o.useCallback)((function(e){var n=e.clipboardData.getData("Text").toLowerCase().replace(/ /g,",").replace(/,,/g,",").split(",").filter((function(e){return S(e)}))||u;Z({emails:[].concat((0,a.Z)(m),(0,a.Z)(n)),invitations:[].concat((0,a.Z)(t),(0,a.Z)(n.map((function(e){return{email:e,name:e.split("@")[0]}})))),isEmailValid:n.length>0}),e.preventDefault()}),[m,t,S,Z]),j=(0,o.useCallback)((function(e){if(g)switch(k(),e.key){case"Enter":case"Tab":case",":case" ":Z({emails:[].concat((0,a.Z)(m),[g]),invitations:[].concat((0,a.Z)(t),[{email:g,name:g.split("@")[0]}]),isEmailValid:S(g)}),e.preventDefault()}}),[m,g,t,S,Z]);return o.createElement(i.Flex,{justifyContent:"space-between",column:!0,onPaste:I},o.createElement(c,{components:{DropdownIndicator:null},inputValue:g,isClearable:!0,isMulti:!0,menuIsOpen:!1,onBlur:function(){g&&Z({emails:[].concat((0,a.Z)(m),[g]),invitations:[].concat((0,a.Z)(t),[{email:g,name:g.split("@")[0]}]),isEmailValid:S(g)})},onChange:O,onInputChange:C,onKeyDown:j,onClear:function(){p(u),n(u)},placeholder:"Enter an email and hit enter",value:m.map((function(e){return{label:t=e,value:t};var t}))}),w&&o.createElement(i.Text,{color:"error"},w))}},18663:function(e,t,n){n.d(t,{l:function(){return D}});var a=n(87462),r=n(15861),o=n(29439),i=n(64687),l=n.n(i),c=(n(21249),n(57640),n(9924),n(57327),n(41539),n(88449),n(2490),n(59849),n(92222),n(67294)),s=n(57509),u=n(92432),d=n(74855),f=n(52631),m=n(90025),p=n(91008),v=n(86414),b=n(74059),g=n(95383),h=n(35838),y=n(53338),E=n(16645),w=n(7693),x=n(92903),k=n(87181),C=function(e){var t=e.id,n=e.handleDelete,a=(0,h.D)(t,"email");return c.createElement(s.Flex,{justifyContent:"between",alignItems:"center"},c.createElement(s.Flex,{gap:4},c.createElement(s.Icon,{color:"text",name:"check"}),c.createElement(s.Text,null,a)),c.createElement(s.Button,{flavour:"borderless",icon:"trashcan",onClick:function(){return n({email:a})}}))},Z=n(93017),S=n(36925),O=n(33335),I=n(8048),j=n(46475),T=function(e){var t=e.email;return(0,S.vV)(t)},_={header:"Invitations",text:"Invitations successfully sent!"},D=function(e){var t=e.onClose,n=e.isSubmodal,i=void 0!==n&&n,S=(0,b.OS)(),D=S.id,R=S.name,P=S.slug,B=(0,g.yE)(),U=(0,c.useState)(B),N=(0,o.Z)(U,2),V=N[0],F=N[1],A=(0,c.useState)([]),L=(0,o.Z)(A,2),M=L[0],q=L[1],Q=(0,c.useState)([]),Y=(0,o.Z)(Q,2),G=Y[0],J=Y[1],z=(0,c.useState)(),H=(0,o.Z)(z,2),K=H[0],$=H[1],W=(0,h.E)(D),X=(0,o.Z)(W,4),ee=X[0],te=X[1],ne=X[2],ae=X[3],re=(0,Z.Z)(),oe=(0,o.Z)(re,2)[1],ie=function(e){var n=e||_,a=n.header,r=n.text,o=(0,d.sc)({header:a,text:r,success:!0}),i=G.filter(T).map((function(e){return e.email})).join(",");(0,u.L)("invite","invite-sent","".concat(K,"::").concat(i,"::").concat(V.join(",")),"","","invite-sent"),f.Z.success(o,{context:"manageInvitations"}),t()},le=function(){var e=(0,r.Z)(l().mark((function e(){var t,n,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=G.filter(T),n=t.map((function(e){return{email:e.email,name:e.name,role:K,roomIDs:V}})),a="".concat(window.location.origin,"/spaces/").concat(P,"/join-space"),ne(n,a,{onSuccess:ie,onError:oe});case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ce=(0,O.QB)(),se=function(e){return function(t){var n=t.email;e&&te(e),J(G.filter((function(e){return e.email!==n}))),q(M.filter((function(e){return e.email!==n})))}},ue=(0,c.useCallback)((function(){F([])}),[F]),de="member"===K;return c.createElement(E.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},c.createElement(w.x,{onClose:t,isSubmodal:i,title:"Invite Users"}),c.createElement(x.B,null,"Invite users to\xa0",R),c.createElement(E.TZ,null,c.createElement(k.qQ,null,"Send invitations to your team"),c.createElement(k.ne,null,"TIP: You can send more invitations at once, separate each with a comma."),c.createElement(v.m,{invitations:G,setInvitations:J}),c.createElement("br",null),c.createElement(k.qQ,null,"Rooms"),c.createElement(s.Flex,{alignItems:"center",justifyContent:"between",margin:[1,0,2]},c.createElement(s.TextSmall,null,"Choose one or more rooms you'd like to invite users to."),!!V.length&&c.createElement(s.Button,{onClick:ue,padding:[0],flavour:"borderless","data-ga":"rooms-clear",label:"Clear",small:!0},"Clear")),c.createElement(s.Box,{"data-testid":"invite-selectRoom"},c.createElement(m.Z,(0,a.Z)({selectedValue:V,onChange:F},de?{formatOptions:function(e){return{isDisabled:e.name===y.TY}},filterValues:function(e){return e.label===y.TY}}:{}))),c.createElement("br",null),c.createElement(k.qQ,null,"Role"),c.createElement(k.ne,null,"Choose a role for invited user."," ",c.createElement(p.Z,{href:j.R,target:"_blank",rel:"noopener noreferrer",Component:s.TextSmall},"Learn more")),c.createElement(s.Box,{"data-testid":"invite-selectRole"},c.createElement(I.Z,{availableRoles:ce,dataGA:"invite-to-space",dataTestId:"invite-selectRole",onChange:function(e){$(e.target.value)},value:K})),c.createElement(k.p7,null,c.createElement(s.Button,{label:"Send",onClick:le,disabled:0===G.length||!K,flavour:"hollow",isLoading:ae})),c.createElement(s.H5,{margin:[2,0,0]},"Invitations awaiting response"),c.createElement(s.Flex,{column:!0},ee.length>0?ee.map((function(e){return c.createElement(C,{key:e,handleDelete:se(e),id:e})})):c.createElement(k.xB,null,c.createElement("br",null),c.createElement(k.qQ,null,"You haven't invited any users yet.")))))}},87181:function(e,t,n){n.d(t,{ne:function(){return c},p7:function(){return i},qQ:function(){return o},xB:function(){return l}});var a=n(60677),r=n(57509),o=(0,a.default)(r.H5).withConfig({displayName:"styled__StyledH5",componentId:"sc-1kusjmi-0"})(["display:flex;align-items:center;"]),i=a.default.div.withConfig({displayName:"styled__FormRow",componentId:"sc-1kusjmi-1"})(["width:100%;display:flex;flex-flow:row no-wrap;justify-content:flex-end;margin-top:",";"],(0,r.getSizeBy)(2)),l=a.default.div.withConfig({displayName:"styled__StyledUserInvitationEmptyListItem",componentId:"sc-1kusjmi-2"})(["display:flex;flex-flow:column nowrap;align-items:center;"]),c=(0,a.default)(r.TextSmall).withConfig({displayName:"styled__StyledSecondaryText",componentId:"sc-1kusjmi-3"})(["margin:2px 0 8px;"])},46475:function(e,t,n){n.d(t,{R:function(){return a}});var a="https://learn.netdata.cloud/docs/nightly/concepts/role-based-access-model"},99826:function(e,t,n){n(92222);var a=n(67294),r=n(46715),o=n(74059);t.Z=function(e){var t=(0,r.RP)(),n=t.loaded,i=t.value,l=t.hasError,c=(0,o.uk)(),s=n&&i?i.billingEmail?"update":"checkout":"",u=(0,a.useCallback)((function(e){return n&&i?"/spaces/".concat(c,"/settings/billing/all-plans#billingModalType=").concat(s,"&billingModalSlug=").concat(e):null}),[e,c,s]),d=e?u(e):null;return{loaded:n,getUrl:u,url:d,hasError:l}}},8048:function(e,t,n){n(2707),n(21249),n(57640),n(9924),n(26699),n(32023),n(9653),n(92222);var a=n(67294),r=n(57509),o=n(60677),i=n(64637),l=n(87917),c=n(74059),s=n(91008),u=n(79655),d=n(33335),f=n(99826),m={admin:"Users with this role can control Spaces, Rooms, Nodes, Users and Billing. They can also access any Room in the Space.",member:"Users with this role can create Rooms and invite other Members. They can only see the Rooms they belong to and all Nodes in the All Nodes room",manager:"Users with this role can manage Rooms and Users. They can access any Room in the Space.",troubleshooter:"Users with this role can use Netdata to troubleshoot, not manage entities. They can access any Room in the Space.",observer:"Users with this role can only view data in specific Rooms.",billing:"Users with this role can handle billing options and invoices."},p=(0,o.default)(r.Flex).withConfig({displayName:"rolePicker__PlanBadge",componentId:"sc-ypuqww-0"})(["pointer-events:auto;"]);t.Z=function(e){var t=e.availableRoles,n=e.dataGA,o=e.dataTestId,v=e.onChange,b=e.value,g=(0,c.OS)("plan"),h=(0,a.useMemo)((function(){return(0,l.xJ)(g).map((function(e){return{isChecked:e===b,isEnabled:t.includes(e),role:e}})).sort((function(e,t){return Number(t.isEnabled)-Number(e.isEnabled)}))}),[t,l.xJ,g,b]),y=(0,d.gI)("billing:ReadAll"),E=(0,f.Z)().getUrl;return a.createElement(r.Flex,{column:!0,gap:2,"data-testid":"".concat(o,"-roleOptions")},h.map((function(e){var t=e.isChecked,l=e.isEnabled,c=e.role,d=l?void 0:"medium",f="troubleshooter"===c?"pro":"business";return a.createElement(r.RadioButton,{key:c,checked:t,"data-ga":"".concat(n,"::select-role-").concat(c,"::global-view"),"data-testid":"".concat(o,"-").concat(c,"Option"),disabled:!l,onChange:v,value:c,alignItems:"start"},a.createElement(r.Flex,{column:!0},a.createElement(r.Flex,{gap:2,alignItems:"center"},a.createElement(r.Text,{opacity:d},(0,i.fm)(c)),!l&&a.createElement(p,{background:"sideBarMini",border:{side:"all",color:"border"},cursor:"initial",padding:[1],round:!0},a.createElement(s.Z,{align:"bottom",as:u.rU,boxProps:{as:r.Flex},color:"text",Component:r.TextMicro,content:"Available on ".concat((0,i.fm)(f)," plan"),"data-ga":"".concat(n,"::click-plan-badge-").concat(f,"::global-view"),disabled:!y,hoverColor:"textFocus",showToolTip:!0,strong:!0,to:E(f)},(0,i.fm)(f)))),a.createElement(r.TextSmall,{color:"textLite",opacity:d},m[c])))})))}},35838:function(e,t,n){n.d(t,{D:function(){return _},E:function(){return T}});var a=n(15861),r=n(29439),o=n(4942),i=n(93433),l=n(64687),c=n.n(l),s=(n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(21249),n(57640),n(9924),n(15581),n(2490),n(34514),n(54747),n(57327),n(88449),n(59849),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(67294)),u=n(4480),d=(0,u.xu)({key:"invitation",default:{id:"",email:""}}),f=(0,u.xu)({key:"invitationIds",default:[]}),m=n(45987),p=n(26398),v=["role"];function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}var g=function(e){return e.map((function(e){return{id:e.id,email:e.email}}))},h=function(e){return p.Z.get("/api/v2/spaces/".concat(e,"/invitations"),{transform:g})},y={member:1,admin:2,manager:3,troubleshooter:4,observer:5,billing:6},E=function(e){return e.map((function(e){var t=e.role,n=(0,m.Z)(e,v);if(void 0===y[t])throw new Error("role not found");return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({role:y[t]},n)}))},w=function(e,t,n){return p.Z.post("/api/v1/spaces/".concat(e,"/invitations"),{redirectURI:n,requests:E(t)})},x=function(e,t){return p.Z.delete("/api/v1/spaces/".concat(e,"/invitations"),{params:{invitation_ids:t.join(",")}})},k=(n(85827),n(25387),n(72608),n(62200)),C=function(e){var t=e.data,n=e.invitations;return t.reduce((function(e,t,a){var r,o;(o=t.errorMsgKey)&&o===k.Sq&&(null!==(r=n[a])&&void 0!==r&&r.email&&e.push(n[a].email));return e}),[])},Z=function(e){return e.length>1};function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var I=(0,u.CG)({key:"spaceInvitationValue",get:function(e){var t=e.id,n=e.key;return function(e){var a=(0,e.get)(d(t));return n?a[n]:a}}}),j=(0,u.CG)({key:"spaceInvitationsIdsValue",get:function(e){return function(t){return(0,t.get)(f(e))}},set:function(e){return function(t,n){var a=t.set,r=n.invitations,o=n.merge;a(f(e),(function(e){return(0,i.Z)(new Set([].concat((0,i.Z)(e),(0,i.Z)(r.map((function(e){return e.id}))))))})),r.forEach((function(e){a(d(e.id),(function(t){return O(O({},o&&t),e)}))}))}}}),T=function(e){var t=(0,u.sJ)(j(e)),n=(0,s.useState)(!1),o=(0,r.Z)(n,2),l=o[0],m=o[1],p=(0,u._8)((function(t){var n=t.snapshot,r=t.set;return(0,a.Z)(c().mark((function t(){var a,o;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.getLoadable(j(e));case 2:if(t.sent.length){t.next=9;break}return t.next=6,h(e);case 6:a=t.sent,o=a.data,r(j(e),{invitations:o,merge:!0});case 9:case"end":return t.stop()}}),t)})))}),[e]),v=(0,s.useCallback)(function(){var t=(0,a.Z)(c().mark((function t(n,a,r){var o,i,l,s,u;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=r.onSuccess,i=r.onError,t.prev=1,m(!0),t.next=5,w(e,n,a);case 5:if(l=t.sent,s=l.data,!(u=C({data:s,invitations:n})).length||Z(n)){t.next=11;break}return i&&i({message:"User has already joined that space!"}),t.abrupt("return");case 11:if(!u.length||!Z(n)){t.next=18;break}if(u.length!==n.length){t.next=15;break}return i&&i({message:"All of the selected users are already meembers of this space"}),t.abrupt("return");case 15:if(!o){t.next=18;break}return o({header:"Invitations partially send",text:"Some of the selected users are already members of this space"}),t.abrupt("return");case 18:o&&o(),t.next=24;break;case 21:t.prev=21,t.t0=t.catch(1),i&&i(t.t0);case 24:return t.prev=24,m(!1),t.finish(24);case 27:case"end":return t.stop()}}),t,null,[[1,21,24,27]])})));return function(e,n,a){return t.apply(this,arguments)}}(),[e]),b=(0,u._8)((function(t){var n=t.snapshot,r=t.set,o=t.reset;return function(){var t=(0,a.Z)(c().mark((function t(a){var l,s;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,n.getPromise(j(e));case 2:return l=t.sent,s=l.filter((function(e){return e===a})),r(f(e),(function(e){var t=new Set(e);return s.forEach((function(e){return t.delete(e)})),(0,i.Z)(t)})),t.prev=5,t.next=8,x(e,[a]);case 8:s.forEach((function(e){o(d(e))})),t.next=14;break;case 11:t.prev=11,t.t0=t.catch(5),r(j(e),{invitations:l,merge:!1});case 14:case"end":return t.stop()}}),t,null,[[5,11]])})));return function(e){return t.apply(this,arguments)}}()}),[e]);return(0,s.useEffect)((function(){p()}),[e]),[t,b,v,l]},_=function(e,t){return(0,u.sJ)(I({id:e,key:t}))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/676.4ce73c27b29d5f4672bb.chunk.js b/web/gui/v2/676.4ce73c27b29d5f4672bb.chunk.js
new file mode 100644
index 00000000..d365d0b1
--- /dev/null
+++ b/web/gui/v2/676.4ce73c27b29d5f4672bb.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="98dcd1dd-c2b0-4ce1-9136-ac2526cc9f82",e._sentryDebugIdIdentifier="sentry-dbid-98dcd1dd-c2b0-4ce1-9136-ac2526cc9f82")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[676],{39612:function(e,t,n){n(74916),n(15306);t.Z=function(e){return(e||"").replace(/[\s:()./]/g,"_")}},42448:function(e,t,n){n.d(t,{V:function(){return r}});var s={ErrNoChartExist:"ErrNoChartExist"},r=function(e){var t=!!(arguments.length>1&&void 0!==arguments[1]?arguments[1]:s)[e];return t}},16978:function(e,t,n){var s=n(87462),r=n(67294),a=n(54576),o=n(70486),i=n(86954),c=n(20581),l=n(16374),d=n(1981),h=n(28138),u=n(18892),m=n(63076),p=n(65855),f=(0,r.forwardRef)((function(e,t){return r.createElement(i.ChartWrapper,null,r.createElement(p.x1,(0,s.Z)({hasHeader:!1,hasFilters:!1,hasFooter:!1},e,{ref:t})))})),g=(0,o.default)(f,{tile:!0}),b={dygraph:p.ZP,easypiechart:h.ZP,gauge:l.ZP,number:u.ZP,groupBoxes:c.ZP,d3pie:d.default,bars:m.ZP},y=function(e){var t=(0,a.useChart)(),n=(0,r.useMemo)((function(){if(!t)return null;var e=t.getAttributes(),n=e.chartLibrary;return e.sparkline?g:b[n]}),[t]);return n?r.createElement(n,(0,s.Z)({},e,{chart:t})):null};t.Z=(0,a.withChartProvider)((0,r.memo)(y))},84817:function(e,t,n){var s=n(87462),r=n(67294),a=n(65351),o=n(24631),i=n(3701),c=n(54576),l=n(33335),d=function(e){var t=(0,a.Z)("addToDashboardModal").handleOpenModal,n=(0,c.useChart)(),d=function(){var e=n.getAttribute("id");t("",{chartId:e})},h=(0,l.gI)("dashboard:Update");return(0,r.useLayoutEffect)((function(){return n.onKeyChange(["Alt","Shift","KeyD"],h?d:function(){})}),[h]),r.createElement(i.Button,(0,s.Z)({icon:r.createElement(i.default,{svg:o.Z,size:"16px"}),onClick:h?d:function(){},title:h?"Add to dashboard":"You need to be logged in to create your custom dashboards and use this chart in them","data-testid":"chartHeaderToolbox-addDashboard",disabled:!h},e))};t.Z=(0,r.memo)(d)},18039:function(e,t,n){n.d(t,{C:function(){return r},M:function(){return s}});n(92222);var s=function(e,t){return e.on("heightChanged",(function(e,n){if(e.getParent()===t){var s=e.getAttribute("id"),r=t.getAttribute("host"),a="chart_height.".concat(r,"/").concat(s);localStorage.setItem(a,n)}}))},r=function(e,t,n){var s=e.getAttribute("host"),r="chart_height.".concat(s,"/").concat(t);return localStorage.getItem(r)||"".concat(n,"px")}},72843:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(37195),i=n(57509),c=["onToggle","icon","isOpen","title"],l=function(e){var t=e.onToggle,n=e.icon,l=void 0===n?"node_hollow":n,d=e.isOpen,h=e.title,u=(0,r.Z)(e,c);return a.createElement(o.Z,(0,s.Z)({dataTestId:"collapsable-header",iconName:d?"arrow_w_line_right":"arrow_w_line_left",onClick:t,padding:[0,3]},u),d&&a.createElement(i.Flex,{gap:2,alignItems:"center","data-testid":"rightBar-nodeName"},a.createElement(i.Icon,{name:l,color:"text",size:"small"}),a.createElement(i.TextSmall,{strong:!0},h)))};t.Z=(0,a.memo)(l)},29814:function(e,t,n){var s=n(87462),r=n(45987),a=(n(21249),n(57640),n(9924),n(67294)),o=n(54316),i=n(57509),c=["onClickTab","availableTabs","tabsToShow"],l=function(e){var t=e.onClickTab,n=e.availableTabs,l=e.tabsToShow,d=(0,r.Z)(e,c);return a.createElement(i.Flex,(0,s.Z)({"data-testid":"collapsed-sidebar",margin:[4,0,0],justifyContent:"center"},d),a.createElement(i.Flex,{margin:[0,0,0,-1],column:!0},l.map((function(e,s){var r=n[e],i=r.iconName,c=r.label;return a.createElement(o._R,{containerStyles:{border:{size:"2px",type:"solid",color:"mainBackground",side:"left"}},textStyles:{color:"textLite"},key:i,onClick:function(){return t(s)},iconName:i,label:c})}))))};t.Z=(0,a.memo)(l)},38626:function(e,t,n){var s=n(45987),r=n(67294),a=n(57509),o=n(64637),i=n(82351),c=["maxLength","text","TextComponent"];t.Z=function(e){var t=e.maxLength,n=e.text,l=e.TextComponent,d=void 0===l?a.Text:l,h=(0,s.Z)(e,c),u=(0,r.useMemo)((function(){return(0,o.a)(n,t)}),[t,n]);return u.length===n.length?r.createElement(d,h,n):r.createElement(i.Z,{content:n,align:"bottom",isBasic:!0},r.createElement(d,h,u))}},8144:function(e,t,n){var s=n(29439),r=n(67294),a=n(57509),o=n(95248),i=n(46667);t.Z=function(e){var t=e.margin,n=e.title,c=e.testIdPrefix,l=e.baseKey,d=e.extraKey,h=e.param,u=e.children,m=e.multi,p=void 0===m||m,f=e.defaultIsOpen,g=void 0===f||f,b=e.border,y=void 0===b?{side:"bottom",color:"borderSecondary"}:b,v=(0,o.I0)(h,{key:l,extraKey:d}),_=(0,s.Z)(v,2),w=_[0],k=_[1],T=(0,i.Z)(g||!(null===w||void 0===w||!w.length)),x=(0,s.Z)(T,2),S=x[0],C=x[1];return r.createElement(a.Flex,{"data-testid":"".concat(c,"-filter"),column:!0,padding:[2,0],border:y,title:n},r.createElement(a.Flex,{justifyContent:"between",margin:S?t:[0],gap:2,onClick:C,cursor:"pointer"},r.createElement(a.Flex,{alignItems:"center",gap:2,height:4.5},r.createElement(a.Flex,{gap:2},r.createElement(a.TextSmall,{strong:!0},n),p&&!(null===w||void 0===w||!w.length)&&r.createElement(a.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(c,"-selected-count")},null===w||void 0===w?void 0:w.length)),p&&!(null===w||void 0===w||!w.length)&&r.createElement(a.Button,{padding:[0],flavour:"borderless",onClick:function(e){e.stopPropagation(),k([])},"data-testid":"".concat(c,"-filter-resetAll"),label:"Reset",small:!0})),r.createElement(a.Icon,{name:"chevron_left",size:"small",color:"textLite",rotate:S?1:3})),r.createElement(a.Collapsible,{open:S},u))}},72911:function(e,t,n){var s=n(45987),r=n(67294),a=n(57509),o=["width","height","videoId"];t.Z=function(e){var t=e.width,n=void 0===t?443:t,i=e.height,c=void 0===i?249:i,l=e.videoId,d=(0,s.Z)(e,o);return r.createElement(a.Flex,d,r.createElement(a.Box,{className:"video-responsive"},r.createElement("iframe",{width:n,height:c,src:"https://www.youtube.com/embed/".concat(l),frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,title:"Embedded youtube"})))}},20686:function(e,t,n){n.d(t,{Z:function(){return m}});var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=n(60677),c=(0,i.default)(o.Icon).attrs({width:12,height:14}).withConfig({displayName:"styled__StyledIcon",componentId:"sc-z9l478-0"})([""]),l=(0,i.default)(o.Flex).attrs({alignItems:"center",justifyContent:"center",padding:[.5,2],round:9}).withConfig({displayName:"styled__StyledPill",componentId:"sc-z9l478-1"})(["cursor:pointer;pointer-events:",";"],(function(e){return e.onClick?"auto":"none"})),d={critical:{background:"errorSemi",color:"error",border:{side:"all",color:"error"}},warning:{background:"warningSemi",color:"warning",border:{side:"all",color:"warning"}},neutral:{background:"generic",color:"text",border:{side:"all",color:"border"}},clear:{background:"successSemi",color:"success",border:{side:"all",color:"success"}},criticalAlertsTable:{background:"errorSemi",color:"error",border:{side:"all",color:"error"}},warningAlertsTable:{background:"warningSemi",color:"warning",border:{side:"all",color:"warning"}},clearAlertsTable:{background:"successSemi",color:"success",border:{side:"all",color:"success"}}},h=["type","icon","children","textSize"],u={small:o.TextSmall,normal:o.Text},m=function(e){var t=e.type,n=e.icon,i=e.children,m=e.textSize,p=(0,r.Z)(e,h),f=d[t]||{},g=f.background,b=f.color,y=f.border,v=m?u[m]:n?o.Text:o.TextMicro;return a.createElement(l,(0,s.Z)({background:g,border:y,gap:1.5},p),n&&a.createElement(c,{name:n,title:n,color:b}),i&&a.createElement(v,{color:b,textTransform:"capitalize",strong:!0,wordBreak:"keep-all",whiteSpace:"nowrap"},i))}},32586:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=["children","iconName","name","size","testId"];t.Z=function(e){var t=e.children,n=e.iconName,c=e.name,l=e.size,d=e.testId,h=void 0===d?"entry-line-text-container":d,u=(0,r.Z)(e,i),m="small"===l?o.TextSmall:o.Text,p="undefined"!==typeof t&&null!==t;return a.createElement(o.Flex,{alignItems:"start","data-testid":"entry-line"},n&&a.createElement(o.Flex,{"data-testid":"entry-line-icon-container",padding:[0,1,0,0]},a.createElement(o.Icon,{color:"textLite","data-testid":"entry-line-icon",name:n,width:"16px",height:"16px"})),a.createElement(o.Flex,(0,s.Z)({column:!0,alignItems:"start","data-testid":h,gap:.5},u),a.createElement(m,{"data-testid":"entry-line-text-label",whiteSpace:"nowrap",color:"textDescription"},c,p&&": "),p&&a.createElement(o.TextSmall,{color:"textDescription","data-testid":"entry-line-text-value",strong:!0},t)))}},76184:function(e,t,n){var s=n(87462),r=n(29439),a=n(45987),o=n(60677),i=n(67294),c=n(57509),l=n(46667),d=n(82351),h=["children","isEnabled","link","name","noDataLabel"],u=(0,o.default)(c.Icon).withConfig({displayName:"group__IconLink",componentId:"sc-1714aq9-0"})(["&:hover{fill:",";}"],(0,c.getColor)("textDescription")),m=function(e){return e.stopPropagation()},p=function(e){var t=e.children,n=e.isEnabled,s=e.link,r=e.onClick,a=e.open;return i.createElement(c.Flex,{alignItems:"center",justifyContent:"between",height:8,onClick:n?r:null,cursor:n?"pointer":"default"},i.createElement(c.Flex,{gap:2,alignItems:"center"},i.createElement(c.TextSmall,{strong:!0},t),s&&i.createElement(c.Flex,{as:"a",href:s,target:"_blank",onClick:m},i.createElement(u,{height:"13px",width:"13px",name:"documentation",size:"small",color:"placeholder"}))),n&&i.createElement(c.Icon,{name:"chevron_left",size:"small",color:"textLite",rotate:a?1:3}))},f=(0,o.default)(c.Flex).withConfig({displayName:"group__StyledFlex",componentId:"sc-1714aq9-1"})(["&:last-child{border:none;}"]);t.Z=function(e){var t=e.children,n=e.isEnabled,o=void 0===n||n,u=e.link,m=e.name,g=e.noDataLabel,b=(0,a.Z)(e,h),y=(0,l.Z)(!0),v=(0,r.Z)(y,2),_=v[0],w=v[1],k=o?null:g;return i.createElement(d.Z,{content:k,isBasic:!0},i.createElement(f,(0,s.Z)({column:!0,border:{side:"bottom",color:"borderSecondary"},padding:[1,0,_?2:1],isEnabled:o},b),i.createElement(p,{isEnabled:o,open:_,onClick:w,link:u},m),i.createElement(c.Collapsible,{column:!0,open:_,gap:1},t)))}},54316:function(e,t,n){n.d(t,{Dh:function(){return u},_R:function(){return m}});var s=n(45987),r=n(87462),a=(n(92222),n(60677)),o=n(67294),i=n(57509),c=n(37195),l=["children","collapsedComponent","isOpen","header"],d=(0,a.default)(i.TextSmall).withConfig({displayName:"rightBar__TextSmallWithEllipsis",componentId:"sc-shvr1r-0"})(["display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;"]),h=(0,a.default)(i.Icon).withConfig({displayName:"rightBar__HeaderIcon",componentId:"sc-shvr1r-1"})(["flex:0 0 auto;"]),u=function(e){var t=e.onClose,n=e.node;return e.isOpen?o.createElement(c.Z,{onClick:t},o.createElement(i.Flex,{"data-testid":"dismisible-header",column:!0,gap:1},o.createElement(i.Flex,{gap:2,alignItems:"center","data-testid":"rightBar-nodeName"},o.createElement(h,{name:"node_hollow",color:"text",size:"small"}),o.createElement(d,{strong:!0},n.name)))):null},m=function(e){var t=e.iconName,n=e.label,s=e.onClick,a=e.containerStyles,c=e.textStyles;return o.createElement(i.Flex,(0,r.Z)({"data-testid":"sidebar-icon-item"},a,{column:!0,margin:[2,0],alignItems:"center"}),o.createElement(i.Flex,{"data-testid":"sidebar-icon-item-wrapper",margin:[0,0,.5,0],alignItems:"center",onClick:s,cursor:"pointer"},o.createElement(i.Icon,{name:t,color:"textLite",width:"18px",height:"18px"})),o.createElement(i.TextMicro,(0,r.Z)({color:"text"},c),n))},p=(0,a.default)(i.Flex).withConfig({displayName:"rightBar__Container",componentId:"sc-shvr1r-2"})(["transition:width 0.3s ease-out;",""],(function(e){var t=e.collapsedWidth,n=e.isOpen;return"\n flex-basis: ".concat(n?"300px":t,";\n overflow: hidden;\n @media screen and ").concat(i.breakpoints.desktop," {\n && {\n flex-basis: ").concat(n?"340px":t,";\n }\n }\n ")}));t.ZP=function(e){var t=e.children,n=e.collapsedComponent,a=e.isOpen,i=e.header,c=(0,s.Z)(e,l),d=!!n,h=d?12:"0px";return o.createElement(p,(0,r.Z)({column:!0,flex:!1,collapsedWidth:h,isOpen:a,height:"100%",margin:(d||a)&&[0,0,0,.5],border:d||a?{side:"left",color:"borderSecondary"}:void 0},c),i,a?t:n)}},37195:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=["children","onClick","iconName","dataTestId"];t.Z=function(e){var t=e.children,n=e.onClick,c=e.iconName,l=void 0===c?"x":c,d=e.dataTestId,h=(0,r.Z)(e,i);return a.createElement(o.Flex,(0,s.Z)({"data-testid":d,height:12,alignItems:"center",justifyContent:"between",border:{side:"bottom",color:"borderSecondary"},padding:[0,2],flex:!1},h),t,a.createElement(o.Icon,{"data-testid":"rightBarHeader-icon",name:l,color:"textLite",onClick:n,cursor:"pointer"}))}},2065:function(e,t,n){n.r(t),n.d(t,{SettingsContainer:function(){return qo},default:function(){return Eo}});var s={};n.r(s),n.d(s,{OSTableSchema:function(){return ma},agentTableSchema:function(){return pa},dashboardsTableSchema:function(){return ua},dockerTableSchema:function(){return ha},machinesTableSchema:function(){return da}});var r=n(29439),a=(n(66992),n(41539),n(88674),n(78783),n(33948),n(92222),n(67294)),o=n(2145),i=n(89250),c=n(3975),l=n(4474),d=n(37518),h=(n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4942)),u=n(15861),m=n(64687),p=n.n(m),f=n(4480),g=n(25819);function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v=n(41379),_=n(93433),w=(n(21249),n(57640),n(9924),n(85827),n(25387),n(72608),n(18997)),k=n(12008),T=n(48450),x=n(77796),S=n(99322),C=n(16634);function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var q=n(39904),I=n(74059),E=n(23383),D=n(68035),L=n(274),N=n(34912),O=n(94666),R=n(1229),A=n(33335),F=n(45781),U=n(95383),B=n(78266),Z=n(46189),j=n(87462),z=n(45987),V=n(57509),H=n(44536),Q=n(54227),G=n(95248);function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var J=function(e){var t=e.error,n=e.testPrefix,s=e.onClick,r=e.type,a=e.value,o={critical:{default:"error",disabled:"disabledError"},warning:{default:"warning",disabled:"disabledWarning"}};return K(K({"data-testid":n?"".concat(n,"-").concat(o[r].default):o[r].default,flavour:t||!a?o[r].disabled:o[r].default},s&&{onClick:s}),{},{text:t?"-":"".concat(a)})},Y=["critical","warning","error","testPrefix"],X=["id","testPrefix"],$=function(e){var t=e.critical,n=e.warning,s=e.error,r=e.testPrefix,o=(0,z.Z)(e,Y),i=J({error:s,testPrefix:r,type:"critical",value:t}),c=J({error:s,testPrefix:r,type:"warning",value:n});return a.createElement(V.Flex,(0,j.Z)({margin:[0,0,0,2]},o),a.createElement(V.MasterCard,{"data-testid":"alertsMastercard",pillLeft:i,pillRight:c}))},ee=function(e){var t=e.id,n=e.testPrefix,s=(0,z.Z)(e,X),r=(0,x.ev)(t),o=(0,k.n_)(r),i=o.critical,c=o.warning;return a.createElement($,(0,j.Z)({"data-testid":"alerts",testPrefix:n,critical:i,warning:c},s))},te=function(e){var t=e.critical,n=e.warning,s=e.error;return a.createElement(ee,{critical:t,"data-testid":"tabAlerts",error:s,testPrefix:"tabAlerts-alert",warning:n})},ne=function(e){var t=e.nodeId,n=(0,x.ev)(t),s=(0,k.n_)(n),r=s.critical,o=s.warning;return a.createElement(te,{critical:r,warning:o})},se=function(){var e=(0,G.H7)(),t=(0,x.rw)(e),n=(0,S.uy)("error"),s=(0,k.n_)(t),r=s.critical,o=s.warning;return a.createElement(te,{critical:r,warning:o,error:n})},re={warning:"warning",critical:"error"},ae=function(e){var t=e.alertId,n=(0,k.E5)(t,"status");return re[n]?a.createElement(V.Flex,{alignSelf:"center",margin:[0,0,0,2],round:1,background:re[n],width:2,height:2}):null};function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ce=n(81488),le=function(){var e=(0,S.uy)("error"),t=(0,S.uy)("updatedAt");return a.createElement(ce.Z,{error:e,updatedAt:t,text:"All your active alerts"})},de=function(){var e,t,n=(0,d.A3)(),s=(0,A.gI)("dashboard:ReadAll"),r=function(e){return(0,a.useMemo)((function(){return{home:{title:"Home",icon:"room_home",path:"".concat(e,"/home"),dataGa:"view-picker::click-view-home::global-view",testId:"viewPicker-home",tooltip:"A dashboard metrics from all your nodes"},overview:{title:"Overview",icon:"room_overview",path:"".concat(e,"/overview"),dataGa:"view-picker::click-view-overview::global-view",testId:"viewPicker-overview",tooltip:"A dashboard with charts and metrics from all your nodes"},nodes:{title:"Nodes",icon:"nodes_hollow",path:"".concat(e,"/nodes"),dataGa:"view-picker::click-view-nodes::global-view",testId:"viewPicker-nodes",tooltip:"An index of your nodes with alert status and key metrics"},k8s:{title:"Kubernetes",icon:"serviceKubernetes",path:"".concat(e,"/kubernetes"),dataGa:"view-picker::click-view-kubernetes::global-view",testId:"viewPicker-kubernetes",tooltip:"k8s"},dashboards:{title:"Dashboards",icon:"dashboard",path:"".concat(e,"/dashboards"),dataGa:"view-picker::click-view-dashboard::global-view",testId:"viewPicker-customDashboards",tooltip:"Customize dashboards according to your needs"},alerts:{title:"Alerts",icon:"alarm",path:"".concat(e,"/alerts"),dataGa:"view-picker::click-view-alerts::global-view",testId:"viewPicker-alerts",tooltip:a.createElement(le,null),children:a.createElement(se,null)},ar:{title:"Anomalies",icon:"anomaliesLens",path:"".concat(e,"/anomalies"),dataGa:"view-picker::click-view-anomalies::global-view",testId:"viewPicker-anomalies",tooltip:"Anomaly Advisor - ML powered anomaly detection"},fn:{title:"Functions",icon:"functions",path:"".concat(e,"/functions"),dataGa:"view-picker::click-view-functions::global-overview",testId:"viewPicker-functions",tooltip:"Functions to run on your nodes"},events:{title:"Events",icon:"feed",path:"".concat(e,"/events"),dataGa:"view-picker::click-view-feed::mn-overview",testId:"viewPicker-feed",tooltip:"Feed & events"}}}),[e])}(n),o=(0,I.Q6)();return[(0,a.useMemo)((function(){return[!o&&r.home,r.overview,r.nodes,r.k8s,s&&r.dashboards,r.alerts,r.ar,r.fn,r.events].filter(Boolean)}),[n,o]),(e=n,t=!o,(0,a.useMemo)((function(){var n;return n={},(0,h.Z)(n,"".concat(e,"/overview"),!0),(0,h.Z)(n,"".concat(e,"/home"),t),(0,h.Z)(n,"".concat(e,"/nodes"),!0),(0,h.Z)(n,"".concat(e,"/dashboards"),!0),(0,h.Z)(n,"".concat(e,"/alerts"),!0),(0,h.Z)(n,"".concat(e,"/anomalies"),!0),(0,h.Z)(n,"".concat(e,"/functions"),!0),n}),[e,t]))]},he=n(64637),ue=n(62200),me=n(82351),pe=["to","params","exact","icon","title","fixed","dataGa","testId","children","type","tooltip","showBorderLeft"],fe=function(e){return e?"text":"textDescription"},ge=function(e){var t=e.to,n=e.params,s=e.exact,r=e.icon,o=e.title,c=e.fixed,l=e.dataGa,d=e.testId,h=e.children,u=e.type,m=e.tooltip,p=e.showBorderLeft,f=(0,z.Z)(e,pe),g=(0,i.bS)({end:s,path:t}),b=(0,i.s0)(),y=!!g,v="nodes"!==u||y,_=(0,a.useCallback)((function(){if(!y){var e="".concat(t).concat(n?"/".concat(n):"");b(e)}}),[t,y,n]),w=(0,a.useMemo)((function(){return(0,he.a)(o,ue.sf)}),[o]);return a.createElement(V.NavigationTab,(0,j.Z)({fixed:c,active:y,showBorderLeft:p,icon:a.createElement(V.Icon,{name:r,size:"small"}),key:o,onActivate:_,"data-ga":l,"data-testid":d,"aria-selected":y,tooltip:m||o},f),m||w!==o?a.createElement(me.Z,{content:m||o,align:m?"bottom":"top",isBasic:!0},a.createElement(V.TextSmall,{alignSelf:"center",color:fe(y),whiteSpace:"nowrap"},w)):a.createElement(V.TextSmall,{alignSelf:"center",color:fe(y),whiteSpace:"nowrap"},o),v&&h)},be=["icon","title","path"],ye=function(){var e=de(),t=(0,r.Z)(e,2),n=t[0],s=function(e){var t=(0,i.s0)(),n=(0,i.bS)("/spaces/:spaceSlug/rooms/:roomSlug/:type/*"),s=(0,Q.ZS)(),r=(0,Q.Yy)(),o=(0,Q.CN)(),c=n?n.pathnameBase:"/spaces",l=(0,i.TH)().pathname,d=(0,H.Z)(e[l]&&l),h=(0,a.useCallback)((function(e){return t(e)}),[]),u=(0,a.useCallback)((function(e,n){if(!n)return r(e);var a=s[e-1],o=s[e+1],i=function(n,s){var a="".concat(n).concat(s?"/".concat(s):"");t(a),r(e)};return d?i(d):a?i(a.path,a.params):o?i(o.path,o.params):i(c)}),[s,r,c,d]);return[(0,a.useMemo)((function(){return s.map((function(e){return ie(ie({},e),{},{onClick:h,children:e.id&&"nodes"===e.type?a.createElement(ne,{nodeId:e.id}):"alerts"===e.type?a.createElement(ae,{alertId:e.id}):null})}))}),[s,h]),function(e){var t=e.destination,n=e.source;t&&n&&o({sourceIndex:n.index,destinationIndex:t.index})},u]}(t[1]),o=(0,r.Z)(s,3),c=o[0],l=o[1],d=o[2];return a.createElement(V.NavigationTabs,null,n.map((function(e){var t=e.icon,n=e.title,s=e.path,r=(0,z.Z)(e,be);return a.createElement(ge,(0,j.Z)({exact:!0,fixed:!0,to:s,icon:t,title:n,key:n},r))})),a.createElement(V.TabSeparator,null),a.createElement(V.DraggableTabs,{onDragEnd:l,onTabClose:d},c.map((function(e,t){var n=e.id,s=e.icon,r=e.title,o=e.params,i=e.path,c=e.type,l=e.children;return a.createElement(ge,{showBorderLeft:0===t,exact:!0,to:i,params:o,icon:s,title:r,key:r,type:c,id:n,"data-testid":"navigation-dynamicTab-".concat(r)},l)}))))},ve=n(83338),_e=n(8018);function we(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function ke(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?we(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):we(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Te=(0,f.CG)({key:"roomSettings",get:function(e){var t=e.id,n=e.key;return function(e){var s=(0,e.get)((0,ve.Z)(t));return n?s[n]:s}},set:function(e){var t=e.id,n=e.key;return function(e,s){(0,e.set)((0,ve.Z)(t),(function(e){return n?ke(ke({},e),{},(0,h.Z)({},n,s)):s}))}}}),xe=function(e,t){return(0,f.sJ)(Te({id:e,key:t}))},Se=function(e,t){var n=xe(e,t),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,s=t.shouldPersist,r=void 0===s||s,a=(0,f.Zl)(Te({id:e,key:n})),o=(0,_e.O9)(e);return(0,f._8)((function(t){var s=t.snapshot;return function(){var t=(0,u.Z)(p().mark((function t(i){var c;return p().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a(i),r){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,s.getPromise(Te({id:e}));case 5:return c=t.sent,t.prev=6,t.next=9,o({settings:ke(ke({},c),n?(0,h.Z)({},n,i):i)});case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(6),a(n?c[n]:c);case 14:case"end":return t.stop()}}),t,null,[[6,11]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,o])}(e,{key:t});return[n,s]},Ce=n(96929),Pe=n(36560),Me=(n(26699),n(32023),n(88553)),qe=n(29495),Ie=n(9058),Ee=(n(69826),n(31672),n(59461),n(74916),n(4723),n(89014)),De=function(e,t){return e&&e.getRoot().getChildren().find((function(e){return e.match({id:"nodes-".concat(t)})}))},Le=n(16978),Ne=function(e){var t=e.id,n=e.roomId,s=e.nodeId,r=e.context,o=e.dimensions,i=(0,Ie.e)(),c=(0,a.useMemo)((function(){var e=De(i,n),a=[t,s,r].join("-"),c=e.getNode({id:a});return c?(c.updateAttribute("selectedDimensions",o.map((function(e){return e.name}))),c):(c=i.makeChart({attributes:{id:a,nodesScope:[s],contextScope:[r],pixelsPerPoint:20,selectedDimensions:o.map((function(e){return e.name}))}}),e.appendChild(c),c)}),[r,t,s,n,i]);return a.createElement(Le.Z,{chart:c,hasHeader:!1,hasFooter:!1,hasFilters:!1})},Oe=(0,a.memo)(Ne),Re=n(60677),Ae=Re.default.div.withConfig({displayName:"styled__ViewContainer",componentId:"sc-azglin-0"})(["position:absolute;top:0;bottom:0;left:0;right:0;padding-bottom:20px;"]),Fe=Re.default.div.withConfig({displayName:"styled__TableContainer",componentId:"sc-azglin-1"})(["width:100%;height:100%;position:relative;"]),Ue=(0,Re.default)(V.VirtualizedTable).withConfig({displayName:"styled__StyledTable",componentId:"sc-azglin-2"})(["padding:8px 16px;.table-head{z-index:10;margin-bottom:12px;top:0;position:sticky;background:",";z-index:100;}.table-body{position:relative;width:100%;}.column-head{&:not(:first-of-type):not(:last-of-type){border-right:1px solid ",";}}.table-row{background:",";border-bottom:1px solid ",";min-width:100%;width:auto !important;*{white-space:nowrap;}}.group-head{font-weight:bold;font-size:16px;font-style:normal;line-height:20px;display:flex;align-items:center;color:",";}.table-body{padding-bottom:0;}"],(0,V.getColor)("mainBackground"),(0,V.getColor)("border"),(0,V.getColor)("mainBackground"),(0,V.getColor)("border"),(0,V.getColor)("text")),Be=(0,Re.default)(V.Flex).attrs((function(){return{column:!0,gap:2,height:{min:14},padding:[3]}})).withConfig({displayName:"styled__CellContent",componentId:"sc-azglin-3"})([""]),Ze=Re.default.div.withConfig({displayName:"styled__ChartsContainer",componentId:"sc-dcttle-0"})([""]),je=(0,Re.default)(Be).withConfig({displayName:"styled__Cell",componentId:"sc-dcttle-1"})(["position:relative;border-radius:0;padding:"," "," "," ",";justify-content:center;border-bottom:1px solid #f1f2f3;&:last-of-type{border-bottom:0;}"],(0,V.getSizeBy)(0),(0,V.getSizeBy)(0),(0,V.getSizeBy)(0),(0,V.getSizeBy)(1)),ze=n(38626),Ve=function(e){var t=e.id,n=e.context,s=e.row,r=e.title,o=e.dimensions,i=s.original,c=(0,d.UL)();return i.isLive?a.createElement(Ze,null,a.createElement(ze.Z,{text:r||n,maxLength:19,TextComponent:V.TextSmall,color:"textDescription",margin:[1,0,1,2],as:"div"}),a.createElement(je,{"data-testid":"chartCell-".concat(n)},a.createElement(Oe,{id:t,context:n,nodeId:i.id,roomId:c,dimensions:o}))):null},He=(n(82772),n(65211)),Qe=n(3581),Ge=n(3322),We=n(89050),Ke=n(4312),Je=n(46667),Ye=n(82040),Xe=n(5633),$e=(0,Re.default)(V.Button).attrs({flavour:"hollow",neutral:!0,tiny:!0}).withConfig({displayName:"styled__ActionButton",componentId:"sc-t0bp9o-0"})(["&&&{border-color:",";&:hover{background-color:",";}.button-icon{"," fill:",";}}"],(0,V.getColor)("nodeBadgeBorder"),(0,V.getColor)("nodeBadgeBackground"),(function(e){var t=e.iconSize;return t&&"\n height: ".concat(t,";\n width: ").concat(t,";\n ")}),(0,V.getColor)("textDescription")),et=(0,Re.default)($e).attrs({icon:"trashcan",iconSize:"15px"}).withConfig({displayName:"styled__ObsoleteButton",componentId:"sc-t0bp9o-1"})([""]),tt=(0,Re.default)($e).attrs({icon:"removeNode"}).withConfig({displayName:"styled__RemoveButton",componentId:"sc-t0bp9o-2"})([""]),nt=(0,Re.default)(V.Box).attrs({background:"placeholder",height:4,width:.25}).withConfig({displayName:"styled__InfoSeparator",componentId:"sc-t0bp9o-3"})([""]),st=(0,Re.default)(V.Flex).withConfig({displayName:"styled__NodeActions",componentId:"sc-t0bp9o-4"})(["display:none;margin-left:auto;"]),rt=(0,Re.default)(V.Flex).attrs({margin:[0,-2,-2]}).withConfig({displayName:"styled__NodeChartsContainer",componentId:"sc-t0bp9o-5"})([""]),at=(0,Re.default)(V.Flex).attrs({alignItems:"center",gap:1}).withConfig({displayName:"styled__NodeNameContainer",componentId:"sc-t0bp9o-6"})(["&:hover{h5{color:#00ab44;text-decoration:underline;text-decoration-color:#00ab44;}svg{fill:#00ab44;}}"]),ot=(0,Re.default)(V.H5).attrs((function(e){var t=e.isLive;return{cursor:t?"pointer":"auto",color:t?"text":"textDescription"}})).withConfig({displayName:"styled__NodeName",componentId:"sc-t0bp9o-7"})([""]),it=(0,Re.default)(V.Flex).attrs({column:!0,gap:1,padding:[2],round:!0,width:"100%"}).withConfig({displayName:"styled__NodeRow",componentId:"sc-t0bp9o-8"})(["&:hover{background:",";","{display:flex;}}"],(0,V.getColor)("miniChartsContainer"),st),ct=["connectivity","id","name"],lt=function(e){var t=e.connectivity,n=e.id,s=e.name,o=(0,z.Z)(e,ct),i=(0,A.gI)("node:Delete"),c=!(0,d.Hm)().untouchable,l=(0,Je.Z)(),h=(0,r.Z)(l,4),u=h[0],m=h[2],p=h[3],f=(0,Je.Z)(),g=(0,r.Z)(f,4),b=g[0],y=g[2],v=g[3];return a.createElement(st,(0,j.Z)({alignSelf:"end",gap:1,"data-testid":"node-actions"},o),c&&a.createElement(a.Fragment,null,a.createElement(Ke.Z,{badge:"actionRemove","data-testid":"remove-node-action"},a.createElement(tt,{"data-ga":"nodes-table-row::click-remove-node::nodes-view",onClick:y})),b&&a.createElement(Xe.ZP,{ids:[n],name:s,onClose:v})),i&&"Offline"===t&&a.createElement(a.Fragment,null,a.createElement(Ke.Z,{badge:"actionObsolete","data-testid":"obsolete-node-action"},a.createElement(et,{"data-ga":"nodes-table-row::click-obsolete-node::nodes-view",onClick:m})),u&&a.createElement(Ye.ZP,{ids:[n],name:s,onClose:p})))},dt=n(39583),ht=["instanceType","name","providerType"],ut=function(e){var t=e.instanceType,n=e.name,s=e.providerType,r=(0,z.Z)(e,ht);return a.createElement(Ke.Z,(0,j.Z)({badge:"cloudInfo","data-testid":"node-cloud-info",nodeName:n},r),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-cloud-info-icon",name:"ipNetworking",width:"18px",height:"18px"}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-cloud-info-text"},(0,We.MC)(s)," \u2022 ",(0,We.MC)(t))))},mt=["connectivity","name"],pt=function(e){var t=e.connectivity,n=e.name,s=(0,z.Z)(e,mt);return a.createElement(Ke.Z,(0,j.Z)({badge:"connectivity",connectivityState:t,"data-testid":"node-connectivity",nodeName:n},s),a.createElement(V.Icon,{name:"connectivityStatus".concat(t),width:"18px",height:"18px"}))},ft=["onClick"],gt=function(e){var t=e.onClick,n=(0,z.Z)(e,ft);return a.createElement(Ke.Z,(0,j.Z)({badge:"info","data-testid":"node-info-cta"},n),a.createElement(V.Icon,{color:"textDescription",cursor:"pointer",height:"18px",width:"18px",name:"information",onClick:t}))},bt=["name"],yt=function(e){var t=e.name,n=(0,z.Z)(e,bt);return a.createElement(Ke.Z,(0,j.Z)({badge:"k8s","data-testid":"node-kubernetes",nodeName:t},n),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-kubernetes-icon",name:"serviceKubernetes",width:"18px",height:"18px"}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-kubernetes-text"},"k8s")))},vt=["kernelName","kernelVersion","name"],_t=function(e){var t=e.kernelName,n=e.kernelVersion,s=e.name,r=(0,z.Z)(e,vt);return a.createElement(Ke.Z,(0,j.Z)({badge:"kernel","data-testid":"node-kernel",nodeName:s},r),a.createElement(V.TextSmall,{color:"textDescription"},(0,We.cB)(t,n)))},wt=n(72233),kt=n(79655),Tt=n(97945),xt=["id","state","isLive","name"],St=function(e){var t=e.isLive,n=e.name;return a.createElement(a.Fragment,null,a.createElement(ot,{"data-testid":"node-name-text",isLive:t},n),a.createElement(V.Icon,{color:"placeholder","data-testid":"node-name-icon",name:"goToNode",width:"18px",height:"18px"}))},Ct=function(e){var t=e.id,n=e.state,s=e.isLive,r=e.name,o=(0,z.Z)(e,xt),i=(0,Tt.m3)(t);return"stale"===n||s?a.createElement(kt.rU,(0,j.Z)({"data-testid":"node-name-link",to:i},o),a.createElement(at,{"data-testid":"node-name-container"},a.createElement(St,{isLive:s,name:r}))):a.createElement(St,{isLive:s,name:r})},Pt=n(88866),Mt=["architecture","cpuFrequency","cpus","diskSpace","memory","name","os","osName"],qt=function(e){var t,n,s=e.architecture,r=e.cpuFrequency,o=e.cpus,i=e.diskSpace,c=e.memory,l=e.name,d=e.os,h=e.osName,u=(0,z.Z)(e,Mt);return a.createElement(Ke.Z,(0,j.Z)({badge:"systemInfo","data-testid":"node-system-info",nodeName:l},u),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-system-info-icon",name:(null===(t=Pt._[h])||void 0===t?void 0:t.iconName)||(null===(n=Pt.V[d])||void 0===n?void 0:n.iconName)||"os",width:"16px",height:"16px"}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-system-info-text"},(0,We.MC)(h)," \u2022 ",(0,We.ys)(r)," \u2022"," ",(0,We.MC)(o,1===o?"Core":"Cores")," \u2022 ",(0,We.MC)(s)," ","\u2022 ",(0,We.MC)((0,We.yo)(c),"RAM")," \u2022"," ",(0,We.MC)((0,We.yo)(i),"HD"))))},It=["container","name","virtualization"],Et=function(e){var t=e.container,n=e.name,s=e.virtualization,r=(0,z.Z)(e,It),o=(0,We.jo)(t,s);return a.createElement(Ke.Z,(0,j.Z)({badge:"type","data-testid":"node-type",nodeName:n,nodeType:o.label},r),a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{color:"textDescription","data-testid":"node-type-icon",name:o.icon,height:o.iconSize,width:o.iconSize}),a.createElement(V.TextSmall,{color:"textDescription","data-testid":"node-type-text"},o.label)))},Dt=n(83925),Lt=function(e){var t,n,s=e.cell,o=e.children,i=e.row.original,c=i.name,l=i.hw,d=i.os,u=i.capabilities,m=i.container,p=i.updateSeverity,f=i.labels,g=i.id,b=i.isLive,y=i.state,v=i.version,_=null===(t=u.funcs)||void 0===t?void 0:t.enabled,w=null===(n=u.ml)||void 0===n?void 0:n.enabled,k=(0,We.Q5)(y),T=(0,He.d)(),x=(0,r.Z)(T,2)[1],S=(0,Qe.j)(ue.$9),C=(0,r.Z)(S,2)[1],P=f||{},M=P._cloud_instance_type,q=P._cloud_provider_type,I="true"===(null===f||void 0===f?void 0:f._is_k8s_node),E=!(0,We.O2)(M)||!(0,We.O2)(q),D=(0,a.useCallback)((function(e){x(g),C((0,h.Z)({},g,ue.Ku.indexOf(e)))}),[g]),L=(0,a.useCallback)((function(){return D("alerts")}),[D]),N=(0,a.useCallback)((function(){return D("info")}),[D]),O=(0,Ge.Eq)();return a.createElement(it,{"data-testid":"nodeRow-".concat(s.value)},a.createElement(V.Flex,{alignItems:"center","data-testid":"nodeRow-basic-info",gap:2,height:{min:6}},a.createElement(pt,{connectivity:k,"data-testid":"nodeRow-connectivity-".concat(k.toLowerCase()),name:s.value}),a.createElement(nt,{"data-testid":"nodeRow-separator"}),a.createElement(Ct,{"data-testid":"nodeRow-name",id:g,name:s.value,isLive:b,state:y}),a.createElement(nt,{"data-testid":"nodeRow-separator"}),a.createElement(gt,{onClick:N,"data-testid":"nodeRow-more-info-cta"}),a.createElement(nt,{"data-testid":"nodeRow-separator"}),a.createElement(dt.Z,{id:g,isLive:b,"data-testid":"nodeRow-alerts",name:s.value,onClick:L}),a.createElement(nt,{"data-testid":"nodeRow-separator"}),a.createElement(wt.Z,{badge:"ml","data-testid":"nodeRow-machine-learning-status",enabled:w,name:s.value},a.createElement(V.Icon,{name:"anomaliesLens",size:"small",color:"text"})),a.createElement(nt,{"data-testid":"nodeRow-separator"}),a.createElement(wt.Z,{badge:"fn","data-testid":"nodeRow-fn-status",enabled:_,name:s.value,onClick:function(){return O(g)}},a.createElement(V.Icon,{name:"functions",size:"small",color:"text"})),p&&a.createElement(a.Fragment,null,a.createElement(nt,{"data-testid":"nodeRow-separator"}),a.createElement(Dt.Z,{name:c,os:d.id,container:m,warningLevel:p,labels:f,version:v,text:p,"data-testid":"nodeRow-needs-update"})),a.createElement(lt,{"data-testid":"nodeRow-node-actions",id:g,name:s.value,connectivity:k})),a.createElement(V.Flex,{alignItems:"center","data-testid":"nodeRow-detailed-info",gap:2},a.createElement(qt,{architecture:l.architecture,cpuFrequency:l.cpuFrequency,cpus:l.cpus,"data-testid":"nodeRow-system-info",diskSpace:l.diskSpace,memory:l.memory,name:s.value,osName:d.nm,os:d.id}),a.createElement(nt,{"data-testid":"nodeRow-separator"}),!(null===d||void 0===d||!d.kernel)&&a.createElement(_t,{"data-testid":"nodeRow-kernel",kernelName:d.kernel.nm,kernelVersion:d.kernel.v,name:s.value}),a.createElement(nt,{"data-testid":"nodeRow-separator"}),I&&a.createElement(a.Fragment,null,a.createElement(yt,{"data-testid":"nodeRow-kubernetes",name:s.value}),a.createElement(nt,{"data-testid":"nodeRow-separator"})),a.createElement(Et,{container:l.container,"data-testid":"nodeRow-type",name:s.value,virtualization:l.virtualization}),E&&a.createElement(a.Fragment,null,a.createElement(nt,{"data-testid":"nodeRow-separator"}),a.createElement(ut,{"data-testid":"nodeRow-cloud-info",instanceType:M,name:s.value,providerType:q}))),o&&a.createElement(rt,{"data-testid":"nodeRow-charts"},o))},Nt=[{id:"os",accessor:"os",show:!1},{id:"alertStatus",accessor:"alertStatus",show:!1},{id:"nodeStatus",accessor:"nodeStatus",show:!1},{id:"name",accessor:"name",show:!0,width:"full",InnerRow:Lt}],Ot=function(e){var t=e.map((function(e){return function(e){var t=e.id,n=e.hidden,s=e.context,r=e.title,o=e.dimensions;return{id:t||s,accessor:t||s,width:176,show:!n,disableGlobalFilter:!0,parentRow:"name",Cell:function(e){var n=e.row;return a.createElement(Ve,{id:t,context:s,row:n,title:r,dimensions:o})}}}(e)}));return[].concat(Nt,(0,_.Z)(t))},Rt=function(e){var t=e.roomId,n=e.groupMode,s=(0,G.H7)({extraKey:"nodesView"}),o=(0,Tt.Ne)(s),i=(0,a.useState)([]),c=(0,r.Z)(i,2),l=c[0],d=c[1],h=(0,qe.uA)(t),u=(0,a.useRef)(),m=(0,a.useRef)(),p=(0,a.useMemo)((function(){return Ot(h)}),[h]),f=(0,a.useCallback)((function(e,t,n){var s=n.filteredNodeIds;return s.length<1?e:e.filter((function(e){var t=e.original;return s.includes(t.id)}))}),[]),g=(0,a.useMemo)((function(){return{sortBy:[{id:"name",desc:!1}],groupBy:[n],columnOrder:p.map((function(e){return e.id})),hiddenColumns:p.filter((function(e){return!e.show})).map((function(e){return e.id})),globalFilter:{filteredNodeIds:s}}}),[n,p,s]),b=(0,a.useMemo)((function(){return o.map((function(e){if(!e.isLive)return(0,We.oy)(e,Ee.Lo);var t=Ee.Id+Ee.m4+Ee.En;return(0,We.oy)(e,t)}))}),[o,g,h]);(0,a.useEffect)((function(){u.current&&b.length&&u.current.resetAfterIndex(0,!1)}),[b,l]);var y=(0,Me.Z)(),v=(0,r.Z)(y,2),_=v[0],w=v[1],k=w.width,T=w.height,x=(0,a.useCallback)((function(e,t){var n=e.overscanStartIndex,s=e.overscanStopIndex,r=(0,We.Aw)({orderedRows:t,start:n,end:s});d(r)}),[t]),S=(0,a.useMemo)((function(){return{width:k,height:T,itemSize:We.I$,variableSize:!0,overscanCount:Ee.d6,verticalGutter:Ee.En,itemKey:We._0,outerRef:m,onItemsRendered:x}}),[k,T,x]),C=b.length;return a.createElement(Ae,null,C?a.createElement(Fe,{ref:_},a.createElement(Ue,{callbackRef:u,columns:p,controlledState:g,data:b,groupsOrderSettings:Ee.Ho,hideHeader:!0,childrenInRow:!0,layoutType:"block",groupByFn:We.V3,globalFilter:f,virtualizedSettings:S,chartsPerNodeLimit:9})):a.createElement(B.Z,{title:"Loading nodes and charts..."}))},At=n(91268),Ft=n(73531),Ut=n(92432),Bt=n(53030),Zt=n(89149),jt=n(16645),zt=n(7693),Vt=n(92903),Ht=n(5429),Qt=n(40970),Gt=n(89479),Wt=function(){},Kt=function(e){var t=e.roomId,n=e.id,s=e.onRemove,o=void 0===s?Wt:s,i=(0,d.tE)(t,"name"),c=(0,qe.xQ)(n,"title"),l=(0,qe.c0)(t),h=(0,Je.Z)(),m=(0,r.Z)(h,4),f=m[0],g=m[2],b=m[3],y=function(){var e=(0,u.Z)(p().mark((function e(){return p().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,l(n);case 2:o();case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return a.createElement(a.Fragment,null,a.createElement(V.Button,{danger:!0,flavour:"hollow",onClick:g,label:"Delete metric","data-testid":"remove-metric"}),f&&a.createElement(V.ConfirmationDialog,{"data-ga":"remove-metric-dialog","data-testid":"removeMetricDialog",handleConfirm:y,handleDecline:b,message:a.createElement(a.Fragment,null,"You are about to remove ",a.createElement("strong",null,c)," metric.",a.createElement("br",null),"Are you sure you want to continue?"),title:"Remove metric from ".concat(i)}))},Jt=["title","help","link","disclaimer","children"],Yt=function(e){var t=e.link,n=e.children;return a.createElement(V.Flex,{as:"a",target:"_blank",href:t,gap:1,alignItems:"end"},a.createElement(V.TextNano,{textDecoration:"undeline"},n),a.createElement(V.Icon,{color:"text",name:"question",width:"16px",height:"16px"}))},Xt=function(e){var t=e.title,n=e.help,s=e.link,r=e.disclaimer,o=e.children,i=(0,z.Z)(e,Jt);return a.createElement(V.Flex,(0,j.Z)({gap:1,column:!0},i),a.createElement(V.Flex,{justifyContent:"between",alignItems:"baseline"},a.createElement(V.Text,{as:"label",margin:[0]},t),n&&a.createElement(Yt,{link:s},n)),o,r&&a.createElement(V.TextSmall,null,r))},$t=n(26398),en={value:"all",label:"All"},tn=function(e){var t=e.dimensions,n=e.units;return{dimensions:t?[en].concat((0,_.Z)(t.map((function(e){return{value:e.id,label:e.name}})))):[en],units:n}},nn=["spaceId","roomId","id","onClose"];function sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function rn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sn(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var an=function(e){var t=e.isNew;return a.createElement(V.Flex,{as:"span",gap:1},"Manage room",a.createElement(V.TextBig,{color:"textLite"},"/"),a.createElement(V.TextBig,{color:"textLite"},t?"Add":"Edit"," Metric"))},on=function(e){var t=e.spaceId,n=e.roomId,s=e.id,o=e.onClose,i=(0,z.Z)(e,nn),c="new"===s,l=(0,qe.jN)(s),d=(0,qe.Y6)(n,{shouldPersist:!1}),h=(0,qe.xQ)(s),u=(0,a.useRef)(h),m=h.title,p=h.context,f=h.dimensions,g=void 0===f?[]:f,b=function(){d(s,u.current),o()};(0,a.useEffect)((function(){c&&l()}),[]);var y=(0,G.TA)({extraKey:"nodesView"}),v=(0,Qt.Z)(n,y,{spaceId:t});if(v)throw v;var _=(0,Gt.jg)(n),w=(0,a.useMemo)((function(){return _.map((function(e){return{value:e,label:e}}))}),[_]),k=(0,Gt.hH)(n),T=(0,a.useMemo)((function(){return p&&{value:p,label:p}}),[p]),x=(0,Ht.Z)((function(){return{enabled:!!p,fetch:function(){return function(e,t,n){return $t.Z.get("".concat(ue.li,"/spaces/").concat(e,"/rooms/").concat(t,"/contexts/").concat(encodeURIComponent(n)),{transform:tn})}(t,n,p)},initialValue:{dimensions:[],units:""}}}),[t,n,p]),S=(0,r.Z)(x,2),C=S[0],P=C.dimensions,M=C.units,q=S[1],I=(0,a.useCallback)((function(e){var t=e.value;d(s,"context",t),d(s,"dimensions",[]),d(s,"title",t)}),[s]),E=(0,a.useMemo)((function(){return P?1===P.length||g.length===P.length-1||0===g.length?[en]:g.map((function(e){return{value:e.id,label:e.name}})):[en]}),[g,P]),D=(0,a.useCallback)((function(e){var t=e.filter((function(e){return e.value!==en.value})),n=(0===e.length||t.length!==e.length&&0!==g.length||t.length===P.length-1?[]:t).map((function(e){return{id:e.value,name:e.label}}));d(s,"dimensions",n)}),[s,g,P]),L=(0,qe.VP)(n),N=(0,a.useCallback)((function(){return L(rn(rn({},h),{},{id:s,enableAllDimensions:0===g.length,unit:M})).then(o)}),[h]),O=(0,a.useCallback)((function(e){var t=e.target.value;t.length<=30&&d(s,"title",t)}),[s]),R=!m||!p||q||!k;return a.createElement(jt.u6,(0,j.Z)({right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:b},i),a.createElement(zt.x,{onClose:b,title:a.createElement(an,{isNew:c})},a.createElement(V.Button,{label:"Save",onClick:N,disabled:R})),a.createElement(Vt.B,null,c?"Add a new metric (column)":"Edit metric"),a.createElement(jt.TZ,null,a.createElement(V.Flex,{gap:6,column:!0},a.createElement(Xt,{title:"Context",help:"What is a context?",link:"https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#context","data-testid":"manageMetrics-context"},a.createElement(V.Select,{options:w,value:T,onChange:I,isLoading:!k,"data-testid":"manageMetrics-contextSelect"})),a.createElement(Xt,{title:"Metric Title","data-testid":"manageMetrics-title"},a.createElement(V.TextInput,{name:"title",placeholder:"Type name",value:m,onChange:O,metaShrinked:!0})),a.createElement(Xt,{title:"Dimensions",help:"What is a dimension?",link:"https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#dimension",disclaimer:E[0]===en&&"The returned value is the sum of all selected dimensions.","data-testid":"manageMetrics-dimensions"},a.createElement(V.Select,{isMulti:!0,options:P,value:E,onChange:D,isLoading:q,isDisabled:!T,"data-testid":"manageMetrics-dimensionSelect"})),!c&&a.createElement(V.Flex,{justifyContent:"end"},a.createElement(Kt,{roomId:n,id:s,onRemove:o})))))},cn=(0,Re.default)(V.Checkbox).withConfig({displayName:"styled__Checkbox",componentId:"sc-1czrg41-0"})(["color:",";font-size:12px;margin-left:",";width:100%;> span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:",";}"],(0,V.getColor)("text"),(0,V.getSizeBy)(0),(0,V.getSizeBy)(25)),ln=(0,Re.default)(V.Flex).attrs({height:"1px",margin:[4,0]}).withConfig({displayName:"styled__Divider",componentId:"sc-1czrg41-1"})(["background-color:rgba(0,0,0,0.12);"]),dn=(0,Re.default)(V.ListItem).withConfig({displayName:"styled__ListItem",componentId:"sc-1czrg41-2"})(["align-items:center;display:flex;flex-direction:row;font-size:",";justify-content:space-between;padding-left:",";"],(0,V.getSizeBy)(3),(0,V.getSizeBy)(0)),hn=(0,Re.default)(V.Drop).attrs({align:{top:"bottom",right:"right"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[4],round:1,width:70}).withConfig({displayName:"styled__MetricsDropdown",componentId:"sc-1czrg41-3"})(["box-sizing:content-box;"]),un=(0,Re.default)(V.Button).attrs({neutral:!0,flavour:"borderless",small:!0}).withConfig({displayName:"styled__OptionButton",componentId:"sc-1czrg41-4"})(["&&&{font-size:14px;font-weight:normal;justify-content:flex-start;padding-left:",";}"],(0,V.getSizeBy)(2)),mn=(0,Re.default)(V.Button).withConfig({displayName:"styled__PencilButton",componentId:"sc-1czrg41-5"})(["> svg.button-icon{width:",";height:",";opacity:0;}"],(0,V.getSizeBy)(4),(0,V.getSizeBy)(4)),pn=(0,Re.default)(V.Button).withConfig({displayName:"styled__MetricsButton",componentId:"sc-1czrg41-6"})(["&&&{width:100%;}"]),fn=function(e){var t=e.isOpen,n=e.onClose,s=e.onEdit,o=e.roomId,i=e.targetRef,c=(0,qe.dh)(o),l=(0,r.Z)(c,2),d=l[0],h=l[1];if(!i.current||!t)return null;var u=function(e){s(e),n()};return a.createElement(hn,{close:n,"data-testid":"metricsMenu",onClickOutside:n,onEsc:n,target:i.current},d.map((function(e){return a.createElement(dn,{"data-testid":"metricsMenu-metric-".concat(e.title),key:e.id},a.createElement(cn,{checked:!e.hidden,"data-testid":"metricsMenu-metricCheckbox",label:e.title,onChange:function(){return h(e.id,"hidden",!e.hidden)}}),a.createElement(mn,{"data-testid":"metricsMenu-editMetric",flavour:"borderless",icon:"pencilSolid",neutral:!0,onClick:function(){return u(e.id)}}))})),d.length>0&&a.createElement(ln,{"data-testid":"metricsMenu-divider"}),a.createElement(dn,{"data-testid":"metricsMenu-addMetricItem"},a.createElement(pn,{"data-testid":"metricsMenu-addMetricButton",label:"Add new metric",icon:"plus",onClick:function(){return u("new")},small:!0})))},gn=function(e){var t=e.spaceId,n=e.roomId,s=(0,Je.Z)(),o=(0,r.Z)(s,4),i=o[0],c=o[2],l=o[3],d=(0,a.useState)(null),h=(0,r.Z)(d,2),u=h[0],m=h[1],p=(0,a.useRef)();return a.createElement(a.Fragment,null,a.createElement(V.Button,{"data-ga":"metric-setting::click-metric-setting::hm-nodes","data-testid":"metricSettings-button",flavour:"hollow",icon:"gear",neutral:!0,onClick:c,ref:p,label:"Metrics",small:!0}),a.createElement(fn,{isOpen:i,onClose:l,onEdit:m,roomId:n,targetRef:p}),u&&a.createElement(on,{"data-testid":"metricsManagement",spaceId:t,roomId:n,id:u,onClose:function(){return m(null)}}))},bn=n(38671);function yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function vn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yn(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var _n=function(){return(0,Ut.L)("grouping","click-grouping","hm-nodes")},wn=[{icon:"node",label:"Node status",value:"nodeStatus","data-ga":"grouping::click-grouping-node-status::hm-nodes"},{icon:"alarm_bell",label:"Alert status",value:"alertStatus","data-ga":"grouping::click-grouping-status::hm-nodes"}],kn={Option:function(e){var t=e.innerProps,n=e.data,s=e.isSelected;return a.createElement(un,(0,j.Z)({},n,t,{active:s}))}},Tn={control:function(e){return vn(vn({},e),{},{height:32,minHeight:32,width:160})},indicatorSeparator:function(){return{display:"none"}},dropdownIndicator:function(e){return vn(vn({},e),{},{height:20,minHeight:20,paddingRight:4,paddingTop:0,paddingBottom:0})},valueContainer:function(e){return vn(vn({},e),{},{paddingTop:0,paddingBottom:0})}},xn=function(){var e=(0,I.th)(),t=(0,d.UL)(),n=(0,Je.Z)(),s=(0,r.Z)(n,4),o=s[0],i=s[2],c=s[3],l=(0,bn.Z)().onIntegrationsClick,h=Se(t,"groupMode"),u=(0,r.Z)(h,2),m=u[0],p=u[1],f=(0,a.useMemo)((function(){return wn.find((function(e){return e.value===m}))||wn[0]}),[m]),g=(0,a.useCallback)((function(e){var t=e.value;return p(t)}),[p]);return a.createElement(V.Flex,{alignItems:"center","data-testid":"agentsHead-actions",flexWrap:!1,gap:3},a.createElement(V.Select,{components:kn,label:"Group by",onChange:g,onMenuOpen:_n,options:wn,styles:Tn,value:f}),a.createElement(gn,{roomId:t,spaceId:e}),a.createElement(V.Button,{icon:"integrations",flavour:"hollow",onClick:l,small:!0},"Integrations"),o&&a.createElement(Zt.Z,{onClose:c}),a.createElement(Bt.Z,{"data-ga":"add-nodes::click-add-nodes::hm-nodes","data-testid":"agentsHead-addNode",icon:"nodes_hollow",label:"Add Nodes",onClick:i,small:!0}))},Sn=n(27856),Cn=function(e){var t=e.message,n=e.children,s=e.warningMessage,o=(0,a.useRef)(),i=(0,a.useRef)([]),c=(0,V.useNavigationArrow)(o,i,n,!0),l=(0,r.Z)(c,3),d=l[0],h=l[1],u=l[2];(0,a.useEffect)((function(){if(o.current){var e=o.current,t=(0,Sn.D)(300,(function(){u()}));return t(),e.addEventListener("scroll",u),window.addEventListener("resize",t),function(){e.removeEventListener("scroll",u),window.removeEventListener("resize",t)}}}),[n]);var m=(0,a.useCallback)((function(e){e&&(i.current.includes(e)||(i.current=[].concat((0,_.Z)(i.current),[e])),n.length<i.current.length&&(i.current=i.current.filter((function(t){return t.getAttribute("data-testid")===e.getAttribute("data-testid")}))))}),[n]),p=(0,a.useMemo)((function(){return a.Children.map(n,(function(e,t){var n="tab-".concat(t);return a.cloneElement(e,{key:n,ref:m})}))}),[n]);return a.createElement(V.Flex,{"data-testid":"selected-nodes-container",alignItems:"center",width:"100%"},a.createElement(V.Flex,{alignItems:"center"},a.createElement(V.TextSmall,{whiteSpace:"nowrap","data-testid":"selected-nodes-container-message",color:"primary"},t,":"),s&&a.createElement(V.Flex,{padding:[0,1,0],margin:[0,0,1],justifyContent:"center"},a.createElement(me.Z,{plain:!0,content:s,align:"bottom"},a.createElement(V.Icon,{width:"16px",height:"16px","data-testid":"selected-nodes-container-warning-icon",color:"warningText",name:"warning_triangle_hollow"})))),d&&a.createElement(V.Flex,{"data-testid":"selected-nodes-arrowLeft",cursor:"pointer",onClick:function(e){e.preventDefault();var t=o.current;t.scrollTo({left:t.scrollLeft-200,behavior:"smooth"})},padding:[2]},a.createElement(V.Icon,{name:"navLeft",color:"text",width:8,height:8})),a.createElement(V.Flex,{ref:o,overflow:"hidden",padding:[1],gap:1},p),h&&a.createElement(V.Flex,{"data-testid":"selected-nodes-arrowRight",cursor:"pointer",onClick:function(e){e.preventDefault();var t=o.current;t.scrollTo({left:t.scrollLeft+200,behavior:"smooth"})},padding:[2]},a.createElement(V.Icon,{name:"navRight",color:"text",width:8,height:8})))},Pn=(0,a.memo)(Cn),Mn=n(91008),qn=function(e){var t=e.onClose,n=e.id;return a.createElement(V.Box,{"data-testid":"selected-node-item-remove-button-".concat(n),sx:{marginLeft:"auto"},as:V.Icon,name:"close_circle",onClick:t,cursor:"pointer",width:3,height:3,color:"border",position:"absolute",right:"2px"})},In=(0,a.forwardRef)((function(e,t){var n=e.tooltipText,s=e.onClose,r=e.id,o=e.showToolTip,i=e.onClickAnchor,c=e.displayText,l=e.isAnchorDisabled;return a.createElement(V.Flex,{width:"100%",ref:t,"data-testid":"selected-node-item-".concat(r)},a.createElement(V.Pill,{background:"nodeBadgeBackground",padding:[0],borderColor:"nodeBadgeBackground"},a.createElement(V.Flex,{position:"relative",width:{max:"300px"},gap:2,alignItems:"center",padding:[1,4,1,2]},a.createElement(Mn.Z,{Component:V.TextSmall,showToolTip:o,content:n,align:"bottom",isBasic:!0,disabled:l,onClick:i,cursor:"pointer",color:"text",hoverColor:"primary",visitedColor:"accent",disabledColor:"textLite"},c),a.createElement(qn,{onClose:s,id:r}))))})),En=n(82902),Dn=(0,a.forwardRef)((function(e,t){var n=e.onRemove,s=e.nodeId,r=(0,Tt.bV)(s,"name"),o=(0,Tt.bV)(s,"isOffline"),i=(0,he.a)(r,30),c=(0,Tt.WR)(s);return a.createElement(In,{onClose:n,id:s,displayText:i,tooltipText:r,showToolTip:i!==r,isAnchorDisabled:o,onClickAnchor:c,ref:t})})),Ln=(0,a.memo)((function(){var e=(0,G.wT)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],o=(0,G.H7)(),i=(0,Tt.Mm)(o);if(!((null===n||void 0===n?void 0:n.length)>0))return a.createElement("div",null);var c=i.length!==o.length?"Some of the nodes you have selected are unreachable, therefore their metrics are not included in the charts.":"";return a.createElement(V.Flex,{width:"100%",overflow:"hidden"},a.createElement(Pn,{warningMessage:c,message:"You have selected ".concat(o.length," ").concat((0,En.V6)(o.length))},o.map((function(e){return a.createElement(Dn,{key:e,onRemove:function(){return s(n.filter((function(t){return t!==e})))},nodeId:e})}))))})),Nn=function(e){var t=e.children;return a.createElement(V.Flex,{width:"100%",justifyContent:"between",background:"mainBackground",padding:[2,4]},a.createElement(Ln,null),a.createElement(V.Box,{padding:[2,0],sx:{marginLeft:"auto"}},t))},On=function(){var e=(0,I.th)(),t=(0,d.UL)(),n=xe(t,"groupMode"),s=(0,Ce.zN)(),r=(0,I.Q6)();!function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).host,n=(0,Ie.e)(),s=(0,a.useRef)();(0,a.useMemo)((function(){if(n){var r=De(n,e);r&&r.destroy(),r=n.makeContainer({attributes:{host:t,enabledXAxis:!1,id:"nodes-".concat(e),hasToolbox:!1,height:"".concat(Ee.m4,"px"),groupingMethod:"average",groupBy:["dimension"],aggregationMethod:"avg",legend:!1,axisLabelFontSize:7,yAxisLabelWidth:20,hasYlabel:!1}}),s.current=r,n.appendChild(r)}}),[e]),(0,a.useLayoutEffect)((function(){return function(){return s.current&&s.current.destroy()}}),[])}(t,{host:r?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(e,"/rooms/").concat(t)});var o=(0,U.y3)(e,"loaded"),i=(0,Ce.X7)(t,"loaded"),c=(0,d.tE)(t,"fullyLoaded"),l=r?!i:!o||!i||!c;return i&&!s.length?a.createElement(Pe.Z,null):a.createElement(At.Z,{rightBar:a.createElement(Ft.Z,null),gap:1},a.createElement(Nn,null,a.createElement(xn,null)),a.createElement(V.Flex,{column:!0,"data-testid":"agents",flex:!0},a.createElement(V.Flex,{"data-testid":"agents-content",flex:!0,position:"relative"},l?a.createElement(B.Z,{title:"Loading nodes..."}):a.createElement(Rt,{spaceId:e,roomId:t,groupMode:"services"===n?"nodeStatus":n}))))},Rn=n(74662),An=n(2077),Fn=n(5441),Un=n(25517),Bn=(n(39714),n(48286)),Zn=Re.default.div.withConfig({displayName:"selections__Separator",componentId:"sc-1cc7y18-0"})(["width:1px;height:",";background:",";"],(0,V.getSizeBy)(2.5),(0,V.getColor)("borderSecondary")),jn=[{label:"Volume",value:"volume"},{label:"KS2",value:"ks2"}],zn=[{label:"Average",value:"average"},{label:"Median",value:"median"},{label:"Min",value:"min"},{label:"Max",value:"max"},{label:"Stddev",value:"stddev"}],Vn=[{label:"Metrics",value:""},{label:"Anomaly Rate",value:"anomaly-bit"}],Hn=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},a.createElement(V.TextMicro,{color:"white"},"Choose the algorithm you want to be used to identify correlations across metrics:"),a.createElement(V.TextMicro,null,a.createElement(V.TextMicro,{color:"white",strong:!0},"KS2:")," ","A statistical test comparing the distribution of the highlighted window to the baseline."),a.createElement(V.TextMicro,null,a.createElement(V.TextMicro,{color:"white",strong:!0},"Volume:")," ","Percentage change in averages between highlighted window and baseline."))},Qn=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},a.createElement(V.TextMicro,{color:"white"},"What aggregation function do you want to apply when aggregating multiple datapoints for metric correlations."))},Gn=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px"},a.createElement(V.TextMicro,{color:"white"},"Do you want to find correlations over the metric values or the anomaly rates of each metric."))},Wn=function(e){var t=e.runGetWeights,n=e.nodeIds,s=e.flavour,r=(0,An.$g)({nodeIds:n,flavour:s}),o=r.method,i=r.options,c=r.group,l=null!==i&&void 0!==i&&i.includes(Vn[1].value)?Vn[1].value:"",d=(0,a.useCallback)((function(e){return function(n){var s=n.value;s="options"!==e?s:s?[s]:[];var r=(0,h.Z)({method:o,options:[i],group:c},e,s);t(r)}}),[o,i,c]),u=(0,a.useMemo)((function(){return{method:jn.find((function(e){return e.value===o})),group:zn.find((function(e){return e.value===c})),option:Vn.find((function(e){return e.value===l}))}}),[o,c,l]);return c?a.createElement(V.Flex,{gap:2},a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.TextSmall,{color:"textLite"},"Method:"),a.createElement(V.Select,{options:jn,value:u.method,onChange:d("method")}),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Hn,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(Zn,null),a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.TextSmall,{color:"textLite"},"Aggregation:"),a.createElement(V.Select,{options:zn,value:u.group,onChange:d("group")}),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Qn,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(Zn,null),a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.TextSmall,{color:"textLite"},"Data:"),a.createElement(V.Select,{options:Vn,value:u.option,onChange:d("options")}),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Gn,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(Zn,null)):null},Kn=n(89405),Jn=function(e){var t=e.highlightAfter,n=e.highlightBefore,s=e.baseline,r=(0,Kn.rA)(),o=r.localeDateString,i=r.localeTimeString,c=new Date(t),l=new Date(n),d=new Date(s),h=new Date(t),u=Math.round((n-t)/1e3),m=Math.round((t-s)/1e3),p=(0,G.TQ)("highlight");return a.createElement(V.Flex,{gap:4,alignItems:"center"},a.createElement(V.Flex,{gap:2},a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{color:"textLite"},"Selected area:"),a.createElement(V.TextSmall,{color:"textLite"},"Reference baseline:")),a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-selectedArea"},o(c,{long:!1}),","," ",i(c),"\xa0->\xa0",o(l,{long:!1}),","," ",i(l)),a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-referenceBaseline"},o(d,{long:!1}),","," ",i(d),"\xa0->\xa0",o(h,{long:!1}),","," ",i(h))),a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{color:"textLite"},"Duration:"),a.createElement(V.TextSmall,{color:"textLite"},"Duration:")),a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-selecteArea-duration"},u,"\xa0secs"),a.createElement(V.TextSmall,{"data-testid":"metricCorrelation-referenceBaseline-duration"},m,"\xa0secs"))),a.createElement(me.Z,{content:"Clear selection",align:"bottom",isBasic:!0},a.createElement(V.Button,{neutral:!0,flavour:"borderless",icon:"trashcan",onClick:function(){p({after:null,before:null})},"data-ga":"metric-correlation::click-delete::charts-view","data-testid":"metricCorrelation-delete"})))};function Yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var Xn=(0,Re.default)(V.Button).withConfig({displayName:"correlation__LogoButton",componentId:"sc-15d72m3-0"})(["&&{pointer-events:none;}"]),$n=(0,Re.default)(V.Button).withConfig({displayName:"correlation__CloseButton",componentId:"sc-15d72m3-1"})(["position:absolute !important;top:-3px;right:-3px;"]),es=(0,Re.default)(V.Button).attrs({padding:[0],margin:[0,0,0,1.5],width:"auto"}).withConfig({displayName:"correlation__StyledButton",componentId:"sc-15d72m3-2"})(["height:16px !important;> span{margin:0 !important;}"]),ts=function(e){var t=e.flavour,n=(0,I.th)(),s=(0,d.UL)(),o=(0,Tt.pG)(),i=(0,a.useMemo)((function(){return o?[o]:[]}),[o]),c=(0,G.TA)({extraKey:t,defaultValue:i}),l="singleNode"===t?i:c,u=(0,a.useState)(!1),m=(0,r.Z)(u,2),p=m[0],f=m[1],g=(0,a.useState)(),b=(0,r.Z)(g,2),y=b[0],v=b[1],_=(0,An.d5)({nodeIds:l,flavour:t},n,s),w=_.threshold,k=_.totalDimensionsCount,T=_.dimensionsCount,x=_.loaded,S=_.loading,C=_.getWeights,P=_.resetWeights,M=(0,An.$g)({nodeIds:l,flavour:t}),q=M.method,E=M.options,D=M.group,L=(0,G.by)("highlight"),N=L.after,O=L.before,R=N-4*(O-N),A=!!N;(0,a.useEffect)((function(){if(x){var e="default-result";if(D){var t=null!==E&&void 0!==E&&E.includes("anomaly-bit")?"anomaly-bit":"metrics";e="default-result-".concat(q,"-").concat(D,"-").concat(t)}return(0,Ut.L)("metrics-correlation",e,"charts-view",T.toString())}}),[x]),(0,Bn.Z)((function(){N&&f(!0)}),[N]);var F=(0,G.TQ)("correlation"),U=(0,G.TQ)("threshold"),B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(!1),v(),C(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yn(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({highlightAfter:N,highlightBefore:O,baselineAfter:R,baselineBefore:N,method:q,options:E,group:D,nodeIds:l},e)).then((function(){return U(An.mt)}))},Z=!A||S;return(0,Bn.Z)((function(){x&&p&&A&&B()}),[x,A,p]),a.createElement(V.Flex,{round:2,background:"elementBackground",padding:[2,6,2,2],alignItems:"center",justifyContent:"between",flex:!0,"data-testid":"correlation",position:"relative",height:{min:"64px"},gap:2},A?x?a.createElement(V.Flex,{"data-testid":"metricCorrelation-resultsContainer",column:!0,width:"100%"},a.createElement(V.Flex,{justifyContent:"between",alignItems:"center",gap:1},a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{name:"correlation",color:"primary",width:"16px",height:"16px"}),a.createElement(V.TextSmall,null,"Analysed"," ",a.createElement(V.TextSmall,{color:"primary","data-testid":"metricCorrelation-resultsAnalyzed"},k)," ","and found"," ",a.createElement(V.TextSmall,{color:"primary","data-testid":"metricCorrelation-resultsFound"},T)," ","correlated metrics."),a.createElement(me.Z,{content:"Clear results"},a.createElement(es,{flavour:"borderless",neutral:!0,disabled:S||!x&&!A,onClick:function(){U(An.mt),P(),(0,Ut.L)("metrics-correlation","click-delete","charts-view","".concat(x?"finish":"start"))},"data-testid":"metricCorrelation-clear",small:!0,icon:"reload"}))),a.createElement(Wn,{runGetWeights:B,nodeIds:l,flavour:t})),a.createElement(V.Flex,{width:"100%"},a.createElement(V.Flex,{alignItems:"center",gap:3,margin:[0,2,0,5],width:"100%"},a.createElement(V.TextNano,{whiteSpace:"nowrap",color:"textDescription"},"Show less"),a.createElement(V.InputRange,{"data-testid":"metricCorrelation-resultsSlider",min:0,max:1,onChange:function(e){return U(e.target.value.toString())},onClick:function(){return(0,Ut.L)("metric-correlation","click-slider","charts-view")},step:.01,value:w}),a.createElement(V.TextNano,{whiteSpace:"nowrap",color:"textDescription"},"Show more")),a.createElement(a.Fragment,null,a.createElement(me.Z,{content:"Give us your feedback! Was it useful?",align:"bottom",enterDelay:200,showArrow:!0,activateOn:"hover"},a.createElement(V.Flex,null,a.createElement(V.Button,{flavour:"+"===y?"hollow":"borderless",disabled:y,icon:"thumb_up",onClick:function(){return v("+")},"data-ga":"metric-correlation::click-thumbs-up::charts-view","data-testid":"metricCorrelation-thumbsUp",small:!0}),a.createElement(V.Button,{flavour:"-"===y?"hollow":"borderless",disabled:y,icon:"thumb_down",onClick:function(){return v("-")},"data-ga":"metric-correlation::click-thumbs-down::charts-view","data-testid":"metricCorrelation-thumbsDown",small:!0})))))):a.createElement(V.Flex,{alignItems:"center","data-testid":"correlationView-timePeriod-container",gap:4},a.createElement(Xn,{icon:"logo_s",isLoading:S}),S?a.createElement(V.H5,{"data-testid":"metricCorrelation-loadingCalculation"},"Calculating metric correlations..."):a.createElement(Jn,{highlightAfter:N,highlightBefore:O,baseline:R})):a.createElement(V.Flex,{alignItems:"center",gap:1},a.createElement(V.Icon,{name:"correlation",color:"primary"}),a.createElement(V.Text,null,"Select a timeframe on any chart and find correlated metrics. Visit documentation"),a.createElement("a",{href:"https://learn.netdata.cloud/docs/cloud/insights/metric-correlations",target:"_blank",rel:"noreferrer"},a.createElement(V.Icon,{name:"nav_arrow_goto",color:"primary",width:"12px",height:"12px"}))),a.createElement(V.Flex,{alignItems:"center"},(!x||S)&&a.createElement(me.Z,{content:Z?"Select an area of interest on any chart":"Click to find correlated metrics for the selected area",align:"bottom",enterDelay:200,showArrow:!0,activateOn:"hover"},a.createElement(V.Button,{label:S?"Loading...":"Find correlations",isLoading:!1,onClick:B,disabled:Z,flavour:"hollow","data-ga":"metric-correlation::click-find-correlation::charts-view","data-testid":"metricCorrelation-find",small:!0,margin:[0,2,0,0]})),a.createElement(me.Z,{content:"Close",align:"bottom"},a.createElement($n,{neutral:!0,flavour:"borderless",onClick:function(){F(!1),U(An.mt),P(),(0,Ut.L)("metrics-correlation","click-close","charts-view","".concat(x?"finish":"start"))},"data-ga":"metric-correlation::click-close::charts-view","data-testid":"metricCorrelation-close",icon:"x"}))))},ns=function(){var e=(0,G.TQ)("correlation");return a.createElement(me.Z,{content:function(){return a.createElement(V.Box,null,a.createElement("strong",null,"Troubleshoot with Metric Correlations"),a.createElement("br",null),a.createElement("br",null),"Metric correlations will help you identify potential root causes for an observed issue.",a.createElement("br",null),"It will automatically analyse all available metrics for irregular behavior for the same timeframe.")},align:"bottom",activateOn:"hover",isBasic:!0},a.createElement(V.Button,{width:"118px",flavour:"hollow",label:"Metric Correlations",onClick:function(){e(!0)},"data-ga":"metrics-correlation::click-metric-correlations::charts-view","data-testid":"run-correlation",small:!0}))},ss=n(94829),rs=Re.default.div.withConfig({displayName:"styled__Separator",componentId:"sc-1fhfk7c-0"})(["background:",";height:20px;width:1px;"],(0,V.getColor)("border"));function as(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function os(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?as(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):as(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var is=function(e){var t,n,s=e.setSidebarTab,r=(0,Tt.pG)(),o=(0,x.ev)(r),i=(0,k.n_)(o),c=i.critical,l=i.warning,d=(0,Tt.bV)(r),h=d.hw,u=d.cpus,m=d.isLive,p=d.name,f=d.os,g=d.state,b=d.updateSeverity,y=d.labels,v=d.version,_={dataTestId:"singleNode",isLive:m},w=(0,We.kR)(os({count:c,type:"critical"},_)),T=(0,We.kR)(os({count:l,type:"warning"},_)),S=(0,We.Q5)(g),C=(0,We.jo)(h.container,h.virtualization),P=(0,ss.Z)("(min-width: 1760px)");return a.createElement(V.Flex,{alignItems:"center",background:"panelBg",border:{side:"all",color:"border"},"data-testid":"singleNode-badges-container",flex:!1,gap:2,padding:[2,4],round:1},a.createElement(V.TextSmall,{"data-testid":"singleNode-".concat(p),strong:!0},p),a.createElement(rs,{"data-testid":"singleNode-separator"}),a.createElement(V.Flex,{"data-testid":"singleNode-info-alerts-badges",gap:1},a.createElement(Ke.Z,{badge:"info","data-testid":"singleNode-nodeInfo-cta"},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"border",color:"nodeBadgeColor",flavour:"neutral",icon:"information",iconSize:"18px",onClick:function(){return s(2)},padding:[1,2],size:"large"})),a.createElement(Ke.Z,{badge:"alerts",nodeName:p},a.createElement(V.AlertMasterCard,{onClick:w.text||T.text?function(){return s(1)}:null,pillLeft:w,pillRight:T,size:"large"})),b&&a.createElement(Dt.Z,{"data-testid":"singleNode-update-cta",name:p,os:f.id,container:h.container,warningLevel:b,labels:y,version:v,text:b})),a.createElement(rs,{"data-testid":"singleNode-separator"}),a.createElement(V.Flex,{alignItems:"center",border:{side:"all",color:"border"},"data-testid":"singleNode-system-info-badges",gap:1,padding:[1],round:999},a.createElement(Ke.Z,{badge:"connectivity",connectivityState:S,"data-testid":"singleNode-connectivityStateInfo",nodeName:p},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"border",color:"nodeBadgeColor",flavour:"neutral",hollow:!0,size:"large"},S)),a.createElement(Ke.Z,{badge:"type","data-testid":"singleNode-nodeTypeInfo",nodeName:p,nodeType:C.label},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"border",color:"nodeBadgeColor",flavour:"neutral",hollow:!0,icon:C.icon,iconSize:C.iconSize,size:"large"},C.label)),P&&a.createElement(Ke.Z,{badge:"systemInfo","data-testid":"singleNode-systemInfo",nodeName:p},a.createElement(V.Pill,{background:"nodeBadgeBackground",borderColor:"border",color:"nodeBadgeColor",flavour:"neutral",hollow:!0,normal:!0,size:"large",icon:(null===(t=Pt._[f.nm])||void 0===t?void 0:t.iconName)||(null===(n=Pt.V[f.id])||void 0===n?void 0:n.iconName)||"os"},(0,We.ys)(h.cpuFrequency)," (",u," ",1===h.cpus?"Core":"Cores",") -"," ",(0,We.yo)(h.memory)," RAM - ",(0,We.yo)(h.diskSpace)))))},cs=function(){var e=(0,bn.Z)().onIntegrationsClick;return a.createElement(a.Fragment,null,a.createElement(V.Button,{icon:"integrations",flavour:"hollow",onClick:e,small:!0,label:"Integrations","data-ga":"integrations::click-integrations::charts-view","data-testid":"btn-show-integrations"}))},ls=["flavour"],ds={singleNode:is,default:Ln},hs=(0,a.memo)((function(e){var t=e.flavour,n=(0,z.Z)(e,ls),s=(0,G.by)("correlation"),r=ds[t]||ds.default;return a.createElement(V.Flex,{alignItems:!s&&"center",background:"mainBackground",column:s,"data-testid":"overview-header",gap:2,justifyContent:s?"start":"between",padding:[2,2,2,4],width:"100%"},s?a.createElement(ts,{flavour:t}):a.createElement(a.Fragment,null,a.createElement(r,n),a.createElement(V.Flex,{gap:2},a.createElement(cs,null),a.createElement(ns,null))))})),us=n(15394),ms=n(13962),ps=n(22962),fs=n(61152),gs=n(69743),bs=n(56102),ys=n(11835),vs=n(69968),_s=(n(48564),n(79424),n(71824)),ws=["children"],ks=(0,a.memo)((0,a.forwardRef)((function(e,t){var n=e.children,s=(0,z.Z)(e,ws);return a.createElement(V.Flex,(0,j.Z)({justifyContent:"start",alignItems:"center","data-testid":"ChartHeadsWrapper"},s,{ref:t}),n)}))),Ts=n(85993),xs=n(62525),Ss=n(41481),Cs=(0,f.cn)({key:"currentChartsContainerKey",default:null}),Ps=function(){var e=(0,Ie.e)(),t=(0,f.sJ)(Cs);return e&&e.getRoot().getChildren().find((function(e){return e.match({id:t})}))},Ms=function(e){return function(t){return"overview-page::".concat(e.getAttribute("id"),"::").concat(t)}},qs=["chartId"],Is=["id","ids"];function Es(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Ds(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Es(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Es(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ls=(0,_s.wJ)((function(e){var t=e.id,n=e.menuChartAttributes,s=(0,d.UL)(),r=(0,Ie.e)(),o=Ps(),i=(0,a.useMemo)((function(){var e,a="head-".concat(t),i=o.getChildren().find((function(e){return e.match({id:a})}));if(!i){var c=Ds({contextScope:[(e=n).chartId]},(0,z.Z)(e,qs));i=r.makeChart({attributes:Ds(Ds({},c),{},{roomId:s,id:a}),makeTrack:Ms}),o.appendChild(i)}return i}),[s,t,o]);return(0,Gt.Ni)(n.chartId)?a.createElement(Le.Z,{chart:i,"data-track":i.track("container")}):null})),Ns=function(e,t){return e.layout||console.warn(t,"has no layout set, default values will be used."),Ds(Ds({x:0,y:0,w:3,h:5,i:e.id,chartId:e.chartId},e.layout),{},{minW:1,minH:1,static:!1})},Os={lg:12,md:12,sm:12,xs:12,xxs:1},Rs={lg:40,md:30,sm:30,xs:30,xxs:30},As=function(e){var t=e.id,n=e.ids,s=(0,z.Z)(e,Is),o=(0,_s.mQ)(n,Ns),i=(0,Ss.J1)().filteredChartsCount,c=(0,_s.MS)(t),l=(0,a.useMemo)((function(){return{lg:o.filter((function(e){if(!e)return!1;var t=c(e.chartId);return t.visible&&!t.filteredOut&&!t.hidden}))}}),[n,o,i]),d=(0,a.useState)("lg"),h=(0,r.Z)(d,2),u=h[0],m=h[1],p=(0,Me.Z)(),f=(0,r.Z)(p,2),g=f[0],b=f[1].width,y=(0,a.useMemo)((function(){return l.lg.map((function(e){var t=e.i;return a.createElement("div",{key:t},a.createElement(Ls,{key:t,id:t}))}))}),[l]);return n.length?a.createElement(ks,(0,j.Z)({width:"100%",margin:[2,0,0]},s,{ref:g}),a.createElement(vs.Responsive,{layouts:l,rowHeight:Rs[u],cols:Os,margin:[4,4],measureBeforeMount:!0,style:{minWidth:"100%",minHeight:"166px"},width:b||1e3,compactType:"horizontal",onBreakpointChange:m,useCSSTransforms:!1,isDraggable:!1,isResizable:!1},y)):null},Fs=(0,Ts.Lj)(As,(function(e){return{ids:e.headIds}})),Us=(0,xs.Ji)(As,(function(e){return{ids:e.headIds}})),Bs=["id"],Zs=function(e){var t=e.id,n=(0,z.Z)(e,Bs);return a.createElement(gs.d,(0,j.Z)({id:t},n),a.createElement(bs.Y,{id:t}),a.createElement(ys.f,{id:t}),a.createElement(Fs,{id:t}))},js=(0,a.memo)(Zs),zs=n(18039),Vs=["id"],Hs=["height"];function Qs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Gs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qs(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ws=[],Ks=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{selectedDimensions:e.dimensions?Object.keys(e.dimensions):Ws,selectedInstances:e.instances?Object.keys(e.instances):Ws,selectedNodes:e.nodes?Object.keys(e.nodes):Ws,weight:e.weight}},Js=function(e){var t=e.id,n=(0,z.Z)(e,Vs),s=(0,d.UL)(),r=Ps(),o=(0,_s.nI)(t),i=o.height,c=void 0===i?0:i,l=(0,z.Z)(o,Hs),h=(0,Ie.e)(),u=(0,a.useMemo)((function(){var e=r.getNode({id:t});return e||(e=h.makeChart({attributes:Gs({contextScope:[t],height:(0,zs.C)(r,t,c+360),id:t,roomId:s},l),makeTrack:Ms}),r.appendChild(e),e)}),[r,s,t]),m=(0,_s.Q8)(t,Ks),p=m.weight,f=m.selectedDimensions,g=m.selectedInstances,b=m.selectedNodes;return(0,a.useEffect)((function(){u&&p&&(u.updateAttributes({selectedDimensions:f,selectedInstances:g,selectedNodes:b}),u.trigger("fetch"))}),[s,t,p,f.length,g.length,b.length]),a.createElement(Le.Z,(0,j.Z)({margin:[0,0,2],chart:u,"data-chartid":t,"data-track":u.track("container")},n))},Ys=a.memo(Js,(function(e,t){return e.id===t.id})),Xs=["id","subMenuId"],$s=function(e){var t=e.id,n=e.subMenuId,s=(0,z.Z)(e,Xs);return a.createElement(Ys,(0,j.Z)({id:t,role:"graphics-object","aria-roledescription":"chart","data-submenuid":n},s))},er=(0,a.memo)($s),tr=n(14048),nr=n(12664),sr=function(e){var t=e.id;return a.createElement(tr.D,{gap:0,id:t},a.createElement(nr.o,{id:t,margin:[1,0,0]}),a.createElement(Us,{id:t}))},rr=(0,a.memo)(sr),ar=function(e){var t=e.id,n=(0,d.UL)(),s=(0,Ie.e)(),o=(0,_s.MS)(),i=(0,Ts.nk)(t).subMenuChartIds,c=Ps(),l=(0,a.useMemo)((function(){var e=(0,r.Z)(i,1)[0],a=(o(e),c.getChildren().find((function(e){return e.match({id:t})})));if(a)return a;var l=i.map((function(e){return{value:e,label:o(e).context}}));return a=s.makeChart({attributes:{id:t,contextScope:[e],roomId:n,composite:!0,chartLibrary:"groupBoxes",groupBy:["label"],groupByLabel:["k8s_namespace","k8s_pod_name"],aggregationMethod:"avg",eliminateZeroDimensions:!1,contextItems:l},makeTrack:Ms}),c.appendChild(a),a}),[t,c]);return a.createElement(Le.Z,{margin:[0,0,2],chart:l,"data-chartid":t,"data-track":l.track("container")})},or=["id"],ir=function(e){var t=e.id,n=(0,z.Z)(e,or);return a.createElement(gs.d,{id:t,padding:[6,0,0]},a.createElement(bs.Y,{id:t}),a.createElement(ys.f,{id:t,padding:[2,0,0]}),a.createElement(ar,(0,j.Z)({id:t},n)))},cr={k8s:(0,a.memo)(ir)},lr=function(e){if(cr[e.flavour])return cr[e.flavour];switch(e.level){case 0:return js;case 1:return rr;case 2:return er;default:return null}},dr=function(e){var t=e.onChartNameChange,n=e.initialChartName,s=e.dashboardOptions,o=e.linkToGo,i=e.contextToGo,c=(0,fs.Z)("addToDashboardModal"),l=(0,r.Z)(c,4),d=l[0],h=l[3],u=(0,us.Z)({onChartNameChange:t,initialChartName:n,linkToGo:o,contextToGo:i}),m=u.setActiveMenuGroupId,p=u.setActiveSubMenuId;return a.createElement(Rn.v,null,a.createElement(ms.Z,{onActiveMenuGroupId:m,onActiveSubMenuId:p,getComponent:lr,dashboardOptions:s,initialChartName:n}),d&&a.createElement(ps.Z,{onClose:h}))},hr=n(49887),ur=function(){return a.createElement(V.Flex,{padding:[6],round:1,width:"600px",background:"modalInfoBackground"},a.createElement(V.Box,{margin:[0,4,0,0]},a.createElement(V.Box,{as:V.Icon,width:10,height:10,name:"nodes_update"})),a.createElement(V.Flex,{column:!0,gap:2},a.createElement(V.Text,{strong:!0},"Couldn't find the chart you were looking for? "),a.createElement(V.Text,{color:"textDescription"},"Netdata has zero-configuration auto-detection for most applications and systems, this is achieved using collectors. If you miss some specific chart please check our"," ",a.createElement(Mn.Z,{href:"https://learn.netdata.cloud/docs/agent/collectors",target:"_blank","data-ga":"chart-area::click-link-collectors::charts-view"},"list of collectors")," ","to see if any additional step is needed.")))},mr=function(){return a.createElement(V.Flex,{column:!0,justifyContent:"center",alignItems:"center",alignSelf:"center",margin:[30,0,0]},a.createElement(V.Flex,{column:!0,justifyContent:"center",alignItems:"center",width:"300px",margin:[0,0,6]},a.createElement(V.H3,{margin:[0,0,4]},"No chart results to display"),a.createElement(V.Text,{color:"textDescription",textAlign:"center"},"Double-check your search or filters and dates and try again with different conditions.")),a.createElement(ur,null))},pr=n(72911),fr=n(8741),gr=n(41898),br=function(){var e=(0,d.UL)(),t=(0,A.gI)("node:Create");return a.createElement(At.Z,{column:!1,"data-testid":"noNodesViewPage",gap:12,padding:[6],rightBar:a.createElement(Ft.Z,null)},a.createElement(V.Flex,{column:!0,gap:5,flex:{shrink:0,grow:0},"data-testid":"noKubernetesView-videoSection"},a.createElement(pr.Z,{"data-testid":"noNodesView-onboardingVideo",height:350,width:850,videoId:ue.mX[0]}),a.createElement(pr.Z,{"data-testid":"noNodesView-onboardingVideo",height:350,width:850,videoId:ue.mX[1]})),a.createElement(V.Flex,{column:!0,gap:4},a.createElement(V.Box,{border:{side:"bottom",color:"borderSecondary"}},a.createElement(V.Box,{margin:[0,0,2,0]},a.createElement(Mn.Z,{href:"https://learn.netdata.cloud/guides/monitor/kubernetes-k8s-netdata",target:"_blank",rel:"noopener noreferrer","data-ga":"k8s-tab::click-link-guides::kubernetes-overview-and-visualizations"},a.createElement(V.TextBig,{color:"primary"},"Kubernetes monitoring with Netdata: Overview and visualizations"))),a.createElement(V.Box,{margin:[0,0,2,0]},a.createElement(Mn.Z,{href:"https://learn.netdata.cloud/docs/cloud/visualize/kubernetes",target:"_blank",rel:"noopener noreferrer","data-ga":"k8s-tab::click-link-guides::kubernetes-visualizations"},a.createElement(V.TextBig,{color:"primary"},"Kubernetes visualizations")))),a.createElement(V.Flex,{column:!0,gap:4},t?a.createElement(fr.Z,{integrationId:gr.O_,rooms:[e]}):a.createElement(Pe.H,null))))};function yr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var vr=(0,a.memo)((function(){var e=(0,k.O0)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],o=(0,Ie.e)(),i=!!n&&!!o&&o.getNode({id:n.context}),c=function(){if(s(null),null!==n&&void 0!==n&&n.context&&i){var e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i.getAttribute("overlays"));delete e.alert,i.updateAttribute("overlays",e),history.replaceState({},"")}};(0,a.useEffect)((function(){return c}),[]);var l=(0,d.UL)(),u=(0,Gt.Cd)((null===n||void 0===n?void 0:n.context)&&l,null===n||void 0===n?void 0:n.context);if(!n||null===u||void 0===u||!u.loaded)return null;var m=u.firstEntry;return a.createElement(V.Layer,{backdrop:!1,position:"top",margin:[26,0,0],padding:[26,0,0]},a.createElement(V.Flex,{background:["neutral","black"],padding:[1,2],gap:2},a.createElement(V.TextSmall,{color:["neutral","porcelain"]},"Alert in ",a.createElement(V.TextSmall,{color:"bright"},n.instance)," on"," ",a.createElement(V.TextSmall,{color:"bright"},new Date(1e3*n.lastStatusChange).toLocaleString()),!m&&" doesn't exist on the node anymore",!!m&&m>n.lastStatusChange&&" exceeds agent data retention settings"),a.createElement(V.Flex,{flex:!1},a.createElement(V.Icon,{name:"x",color:"bright",onClick:c,size:"small"}))))})),_r=vr;function wr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function kr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Tr={NoChartsView:mr,NoNodesView:Pe.Z,rightBar:{title:"Filters",hiddenTabs:["info"],Component:hr.Z,props:{}},dashboardOptions:{},loadingMessage:"Loading charts...",Header:hs},xr={overview:kr(kr({},Tr),{},{rightBar:kr(kr({},Tr.rightBar),{},{title:"Overview"})}),k8s:kr(kr({},Tr),{},{NoChartsView:br,NoNodesView:br,rightBar:kr(kr({},Tr.rightBar),{},{title:"Kubernetes"}),loadingMessage:"Loading k8s charts..."}),singleNode:kr(kr({},Tr),{},{rightBar:kr(kr({},Tr.rightBar),{},{title:"Single Node",hiddenTabs:["filters"],props:{showCollapsed:!0}})})},Sr=function(){return function(){var e=(0,Fn.E)(),t=(0,An.yp)({nodeIds:e,flavour:"rhs"}),n=(0,Un.$B)(),s=(0,r.Z)(n,2),o=s[0],i=s[1],c=(0,G.by)(),l=c.after,d=c.before;(0,a.useEffect)((function(){t()}),[o,i,l,d])}(),null},Cr=(0,a.memo)((function(e){var t=e.flavour,n=void 0===t?"overview":t,s=e.invalidationKey,o=e.nodeIds,c=e.loaded,l=e.getChart,d=e.chartIds,h=e.areChartsIdsEmpty,u=e.showNoChartsView,m=e.showNoNodesView,p=e.initializing,f=e.chartName,g=e.setChartName,b=e.chartsLoaded,y=e.widthRef,v=xr[n],_=v.dashboardOptions,w=v.NoChartsView,k=v.NoNodesView,T=v.rightBar,x=v.loadingMessage,S=v.Header,C=(0,i.TH)().state,P=(0,a.useState)(0),M=(0,r.Z)(P,2),q=M[0],I=M[1];return m?a.createElement(k,null):p?a.createElement(B.Z,{title:"Please wait while charts are being initialized.",body:"Thank you for your patience!"}):c?u?a.createElement(a.Fragment,null,a.createElement(S,{flavour:n}),a.createElement(w,null)):a.createElement(Rn.Z,{key:s,getChart:l,chartIds:d,linkToGo:null===C||void 0===C?void 0:C.chartName},a.createElement(Sr,null),a.createElement(_r,null),a.createElement(At.Z,{ref:y,rightBar:a.createElement(T.Component,(0,j.Z)({nodeIds:o,title:T.title,initialChartName:f,hiddenTabs:T.hiddenTabs,selectedTab:q,setSelectedTab:I,flavour:n,loaded:b},T.props)),gap:1},a.createElement(S,{flavour:n,setSidebarTab:I}),b?h?a.createElement(mr,null):a.createElement(dr,{dashboardOptions:_,initialChartName:f,onChartNameChange:g,linkToGo:null===C||void 0===C?void 0:C.chartName,contextToGo:null===C||void 0===C?void 0:C.contextToGo}):a.createElement(B.Z,{title:x}))):a.createElement(B.Z,{title:x})})),Pr=Cr,Mr=n(7335),qr=n(58591),Ir=function(e){var t=(0,d.A3)(),n=(0,i.s0)(),s=(0,G.I0)("alert_id"),o=(0,r.Z)(s,2),c=o[0],l=o[1];(0,a.useEffect)((function(){c&&(l(),n("".concat(t,"/alerts/").concat(c,":::").concat(e)))}),[c,e])},Er=function(e){return function(t){var n=(0,I.th)(),s=(0,Tt.pG)();Ir(s);var r=(0,Tt.bV)(s,"isLive"),o=(0,Tt.bV)(s,"name");(0,Q.bV)({title:o,id:s,destination:s});var c=(0,Tt.TQ)(s,n),l=(0,Mr.DH)();(0,a.useEffect)((function(){if(r&&"hasValue"===c.state){var e=c.contents;null!==e&&void 0!==e&&e.uid&&o&&l(e.uid,null,o)}}),[c,r,o]);var d=(0,i.s0)(),h=(0,i.UO)(),u=h.spaceSlug,m=h.roomSlug;(0,a.useEffect)((function(){var e=(0,qr.np)("alarm_id");if(e){var t=(0,qr.np)("alarm_chart");(0,qr.bp)(["alarm_id","alarm_chart"]),d("/spaces/".concat(u,"/rooms/").concat(m,"/alerts/").concat(e,":::").concat(s,"?chart=").concat(t).concat(location.hash),{replace:!0})}}),[]);var p=(0,a.useMemo)((function(){return[s]}),[s]);return a.createElement(e,(0,j.Z)({flavour:"singleNode",nodeIds:p},t))}},Dr=n(42448),Lr=n(39840),Nr=n(39612);function Or(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Rr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Or(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Or(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ar=n(24298),Fr=n(96415),Ur=n(70873),Br=n(43460),Zr=n(84817);function jr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function zr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?jr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Vr=function(e,t,n){var s=n.width,o=n.host;if(!o)throw"No host provided";var c=(0,Ie.e)(),l=(0,a.useRef)(),d=(0,k.O0)(),h=(0,r.Z)(d,1)[0],u=(0,Gt.QX)(e,"error"),m=(0,G.I0)(),p=(0,r.Z)(m,2),g=p[0].correlation,b=p[1],y=(0,i.TH)(),v=y.state,_=y.pathname,w=(0,f.Zl)(Cs),T=(0,Gt.qU)(e),x=(0,Gt.w4)(e);(0,a.useLayoutEffect)((function(){if(e&&c&&!u){var n=c.getRoot().getChildren().find((function(e){return e.match({id:_})}));if(!n)return n=c.makeContainer({attributes:{id:_,roomId:e,host:o,navigation:g?"highlight":"pan",overlays:{proceeded:{type:"proceeded"}},composite:!0,nodesScope:t,hasCorrelation:!0,versions:T,width:s,toolboxElements:[Br.default,Fr.default,Ur.default,Zr.Z]}}),c.appendChild(n),w(_),l.current=n,(0,Ar.unregister)((0,zs.M)(c,n),c.on("correlation",(function(e,t){t&&b({correlation:!0})})),n.onAttributeChange("versions",x));w(_)}}),[e,u,_]),(0,a.useMemo)((function(){l.current&&(l.current.setAttribute("width",s),l.current.getNodes().forEach((function(e){return e.updateAttribute("width",s)})))}),[l.current,s]),(0,Bn.Z)((function(){l.current&&l.current.getNodes().forEach((function(e){e.updateAttribute("nodesScope",t),e.getAttribute("active")&&"chart"===e.type&&e.fetch()}))}),[l.current,t]),(0,a.useEffect)((function(){l.current&&l.current.getApplicableNodes({syncHighlight:!0}).forEach((function(e){e.updateAttribute("navigation",g?"highlight":"pan")}))}),[l.current,g]),(0,a.useEffect)((function(){return function(){return l.current&&l.current.destroy()}}),[]),(0,a.useEffect)((function(){if(l.current&&h){var e=l.current.getNode({id:h.context});if(e){var t=e.getAttribute("overlays");e.updateAttribute("overlays",zr(zr({},t),{},{alarm:{type:"alarm",status:h.status,value:h.formattedLastStatusChangeValue,when:h.lastStatusChange}})),e.updateAttributes({selectedInstances:["".concat(h.instance,"@").concat(h.nodeId)],selectedNodes:[h.nodeId]})}var n=!!h&&l.current.on("chartLoaded",(function(e){var t=e.getAttribute("id");if(h.context===t){var s=e.getAttribute("overlays");e.updateAttribute("overlays",zr(zr({},s),{},{alarm:{type:"alarm",status:h.status,value:h.formattedLastStatusChangeValue,when:h.lastStatusChange}})),e.updateAttributes({selectedInstances:["".concat(h.instance,"@").concat(h.nodeId)],selectedNodes:[h.nodeId]}),n()}}));return(0,Ar.unregister)(n)}}),[l.current,h]),(0,a.useEffect)((function(){if(l.current&&v&&v.context){var e=v.context,t=v.chartId,n=v.nodeId,s=l.current.getNode({id:e});s&&s.updateAttributes({selectedInstances:["".concat(t,"@").concat(n)],selectedNodes:[n]});var r=t&&n&&l.current.on("chartLoaded",(function(s){var a=s.getAttribute("id");e===a&&(s.updateAttributes({selectedInstances:["".concat(t,"@").concat(n)],selectedNodes:[n]}),r())}));return function(){return v&&(0,Ar.unregister)(r)}}}),[l.current,v])};function Hr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Qr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Hr(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Gr={default:{shouldHide:function(){return!1}},k8s:{shouldHide:function(e){return!e.context.includes("k8s")}}},Wr=[],Kr=function(e){return(0,a.memo)((function(t){var n=t.flavour,s=void 0===n?"overview":n,o=t.nodeIds,c=void 0===o?Wr:o,l=(0,I.th)(),h=(0,d.UL)(),u=(0,G.TA)({extraKey:s,defaultValue:c});u=c.length?c:u;var m=(0,Ce.fD)(),p=(0,Gt.hH)(h),f=(0,i.TH)().state,g=(0,Gt.Cd)(h),b=(0,Tt.Mm)(u),y=(0,Qt.Z)(h,b,{spaceId:l}),v=(0,An.d5)({nodeIds:u,flavour:s},l,h),_=v.contexts,w=v.metadata,T=v.loaded,x=v.dimensionsCount,S=function(){var e=(0,i.TH)().state,t=(void 0===e?{}:e)||{},n=t.alertId,s=void 0===n?null:n,o=t.after,c=t.before,l=(0,H.Z)(s),d=s||l,h=(0,k.O0)(),u=(0,r.Z)(h,2)[1],m=(0,k.E5)(d);return(0,k.yx)(m.id),(0,a.useEffect)((function(){m.fullyLoaded&&u(Rr(Rr({},m),{},{formattedLastStatusChangeValue:(0,Lr.m9)(m.lastStatusChangeValue,m.units),after:o,before:c}))}),[m.id,m.fullyLoaded]),[d,m.id?"chart_".concat((0,Nr.Z)(m.context)):null]}(),C=(0,r.Z)(S,2)[1],P=c?c.join():s,M=(0,I.Q6)(),q=(0,Me.Z)(),E=(0,r.Z)(q,2),D=E[0],L=E[1].width;Vr(h,u,{host:M?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(l,"/rooms/").concat(h),width:L});var N=(0,Gt.jg)(h),O=T?w:g,R=Gr[s]||Gr.default,A=(0,Ss.Np)(T?_:N,g,h,Qr(Qr({},R),{},{force:T,cacheKey:"".concat(s,"-").concat(x)})),F=(0,Gt.MS)(h,w),U=(0,H.Z)(y),B=A<1,Z=(0,G.I0)("chartName",{key:h,extraKey:P}),j=(0,r.Z)(Z,2),z=j[0],V=j[1];(0,a.useEffect)((function(){h&&V(C||(null===f||void 0===f?void 0:f.chartName)||z)}),[h,C]);var Q=Ps(),W=Object.keys(O).length<1&&p||u.length&&!b.length,K=(0,G.H7)({extraKey:s});if(c=c.length?c:K,!W&&!1!==U&&y&&"No data for this period"!==y&&!Object.keys(O).length)throw y;return a.createElement(e,{nodeIds:c,loaded:!!h&&m&&Q,getChart:F,areChartsIdsEmpty:B,showNoNodesView:m&&!c.length,showNoChartsView:W,initializing:y&&(0,Dr.V)(y),chartName:z,setChartName:V,chartsLoaded:p&&!!L,invalidationKey:h,flavour:s,chartIds:T?_:N,widthRef:D})}))},Jr=(n(64211),n(41874),n(41817),n(41331)),Yr=n(65351),Xr=(n(40658),["","k","m","B","T","P","E"]),$r=(0,a.memo)((function(e){var t=e.count,n=e.testId;return a.createElement(V.TextHuge,{strong:!0,color:"textDescription",alignSelf:"center","data-testid":n,overflow:"hidden"},isNaN(t)?"-":function(e){if(!e)return 0;var t=Math.log10(Math.abs(e))/3|0;if(!t)return e;var n=Xr[t];return(e/Math.pow(10,3*t)).toFixed(1)+n}(t))})),ea=(n(26833),n(2707),n(18446)),ta=n.n(ea),na=n(90509),sa={metrics:(0,Re.css)(["tbody tr{&:nth-child(odd){background:",";}&:nth-child(even){background:",";}}thead tr{background:",";}"],(0,na.getColor)("nodeBadgeBackground"),(0,na.getColor)("panelBg"),(0,na.getColor)("panelBg")),progressBar:(0,Re.css)(["tr{background:",";}"],(0,na.getColor)("panelBg"))},ra=(0,Re.default)(V.NetdataTable).attrs({coloredSortedColumn:!1}).withConfig({displayName:"styled__StyledTable",componentId:"sc-1kpag36-0"})(["&&{width:100%;height:auto;align-self:start;th,td{padding:4px 8px;min-width:auto;height:32px;width:auto;}","}"],(function(e){var t=e.layout;return sa[t]||sa.metrics})),aa=(0,Re.default)(V.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-1kpag36-1"})(["float:right;cursor:pointer;"]),oa=[{id:"value",desc:!1}],ia=function(e){var t=e.columns,n=e.data,s=e.layout,r=void 0===s?"metrics":s,o=e.sortBy,i=void 0===o?oa:o;return null!==n&&void 0!==n&&n.length?a.createElement(ra,{layout:r,data:n,dataColumns:t,sortBy:i,enableSorting:!0}):a.createElement(V.Flex,{width:"100%"},a.createElement(V.TextSmall,{color:"textLite",alignSelf:"center",margin:[0,"auto"]},"No data"))},ca=n(44109),la={name:function(e){return function(e,t){var n=t.maxLength;return{id:"name",accessorKey:"name",header:e,cell:function(e){var t=e.getValue;return n?a.createElement(ze.Z,{maxLength:n,text:t(),TextComponent:V.TextSmall}):a.createElement(V.TextSmall,null,t())}}}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{})},value:{id:"value",header:"#",accessorKey:"value",cell:function(e){var t=e.getValue;return a.createElement(V.TextSmall,{strong:!0},t())}},goToDashboard:{id:"goToDashboard",accessorKey:"value",header:"",cell:function(e){var t=e.cell,n=e.getValue,s=t.row.original.path,r=(0,i.s0)(),o=(0,a.useCallback)((function(){(0,Ut.L)("total-cust-dashboard","click-cust-dasbhoard","hm-page",n()),r("".concat(s,"/").concat(n()))}),[s,n()]);return a.createElement(aa,{name:"goToNode",width:"14px",height:"14px",color:"textDescription",onClick:o})}},progressBar:function(e){return{id:"value",accessorKey:"value",header:e.header,cell:function(e){var t=e.cell,n=e.getValue,s=t.row.original,r=s.name,o=s.total,i=s.color,c=o?n()/o:0,l=(0,ca.e)(c);return a.createElement(V.Flex,{column:!0,margin:[1,0,0,0]},r?a.createElement(V.Flex,{justifyContent:"between"},a.createElement(V.TextSmall,null,r),a.createElement(V.TextSmall,{strong:!0},n())):null,a.createElement(V.ProgressBar,{color:i,width:l}))}}}},da=[la.name("VM"),la.value],ha=[la.name("Containers"),la.value],ua=[la.name("Latest Updated",{maxLength:24}),la.goToDashboard],ma=[la.progressBar({header:"OS",dataEntry:"nodesByOS"})],pa=[la.progressBar({header:"Agent Version",dataEntry:"nodesByAgentVersion"})],fa=(0,a.memo)((function(e){var t=e.data,n=e.schemaKey,r=e.testId,o=Object.values(t).reduce((function(e,t){return e+t}),0),i=Object.keys(t).map((function(e){return{name:e,value:t[e],total:o}})).sort((function(e,t){return t.value-e.value}));return a.createElement(V.Flex,{padding:[0,4],height:"100%","data-testid":"".concat(r,"-table-container"),overflow:"hidden"},a.createElement(ia,{columns:s[n],data:i,layout:"progressBar"}))}),(function(e,t){return ta()(e,t)}));function ga(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function ba(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ga(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ga(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ya=[{id:"name",desc:!1}],va=function(e){var t=e.count,n=e.data,s=(0,I.uk)(),r=(0,d.vf)(),o=function(e){var t=e.data,n=void 0===t?[]:t,s=e.path;return null===n||void 0===n?void 0:n.map((function(e){return ba(ba({},e),{},{value:e.slug,path:s})}))}({data:n,path:"/spaces/".concat(s,"/rooms/").concat(r,"/dashboards")});return a.createElement(V.Flex,{column:!0,alignItems:"center","data-testid":"totalDashboards-table-container",margin:[0,4],gap:2,overflow:"hidden"},a.createElement($r,{count:t,testId:"total-dashboards-value"}),a.createElement(ia,{columns:ua,data:o,sortBy:ya}))},_a=(0,a.memo)(va,(function(e,t){return ta()(e,t)})),wa=n(9446),ka=(0,Re.default)(V.TextSmall).withConfig({displayName:"pieChartLabels__StyledText",componentId:"sc-15uxiq-0"})(["display:flex;align-items:center;cursor:",";&:hover{opacity:",";}"],(function(e){return e.onClick?"pointer":"auto"}),(function(e){return e.onClick?"0.7":"1"})),Ta=(0,a.memo)((function(e){var t=e.title,n=e.value,s=e.color,r=e.onClick,o=void 0===r?null:r;return a.createElement(V.Flex,{alignItems:"center",justifyContent:"between",width:"100%",gap:4,flex:{grow:1,shrink:0}},a.createElement(V.Flex,{gap:1},a.createElement(V.Flex,{width:"4px",height:"16px",background:s}),a.createElement(ka,{whiteSpace:"nowrap",onClick:o},t,o&&a.createElement(V.Icon,{color:"textLite",margin:[0,0,0,1],name:"nav_arrow_goto",height:"10px",width:"10px"}))),a.createElement(V.Text,{strong:!0},null!==n&&void 0!==n?n:"-"))})),xa=function(e){var t=e.data;return a.createElement(V.Flex,{column:!0,alignItems:"start",justifyContent:"center",gap:5},t.map((function(e,t){var n=e.title,s=e.value,r=e.color,o=e.onClick;return a.createElement(Ta,{key:"".concat(n,"-").concat(s,"-").concat(t),title:n,value:s,color:r,onClick:o})})))};function Sa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Ca(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sa(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Pa=function(e){var t=e.data,n=e.theme;return t.map((function(e){return Ca(Ca({},e),{},{color:(0,V.getColor)(e.color)({theme:n})})}))},Ma=function(e){var t=e.chartData,n=void 0===t?[]:t,s=e.lineWidth,r=void 0===s?15:s,o=e.animate,i=void 0===o||o,c=e.label,l=e.hasData,d=(0,a.useContext)(Re.ThemeContext);return a.createElement(V.Flex,{gap:4,margin:[0,4],height:{min:"100px",max:"130px"},alignItems:"center"},a.createElement(xa,{data:n}),a.createElement(V.Flex,{height:"100px",flex:{grow:1,shrink:1}},l?a.createElement(wa.PieChart,{label:function(){return c},labelStyle:{fontSize:"24px",fontWeight:400,fontFamily:"IBM Plex Sans",lineHeight:" 32px",fill:(0,V.getColor)("textDescription")({theme:d})},labelPosition:0,data:Pa({data:n,theme:d}),lineWidth:r,animate:i}):a.createElement(V.Icon,{color:"border",name:"pie_chart_skeleton",width:"100px",height:"100px",alignSelf:"center"})))},qa=function(e){return Object.keys(e).reduce((function(t,n){return[].concat((0,_.Z)(t),[{name:n,value:e[n]}])}),[]).sort((function(e,t){return t.value-e.value}))},Ia=function(e){var t=e.data,n=t.vm,s=t.docker,r=t.chartData,o=t.hasData,i=qa(n),c=qa(s);return a.createElement(V.Flex,{justifyContent:"around","data-testid":"nodesByMachine-tables-container",overflow:"hidden"},a.createElement(V.Flex,{flex:{grow:1,shrink:0},basis:"200px"},a.createElement(Ma,{chartData:r,hasData:o})),a.createElement(V.Flex,{gap:2,flex:{grow:1,shrink:0},basis:"50%",padding:[0,4,0,2]},a.createElement(ia,{columns:da,data:i}),a.createElement(ia,{columns:ha,data:c})))},Ea=(0,a.memo)(Ia,(function(e,t){return ta()(e,t)}));function Da(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function La(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Da(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Da(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Na=(0,Re.default)(V.Text).withConfig({displayName:"nodesByDataReplication__StyledValue",componentId:"sc-19v6tvl-0"})(["line-height:17px;"]),Oa=function(e){var t=e.parent,n=e.child,s=t+n,r=(0,ca.e)(t/s);return a.createElement(V.Flex,{column:!0,gap:1},a.createElement(V.Flex,{justifyContent:"between","data-testid":"nodesByDataReplication-parent-child"},a.createElement(Ua,{name:"Parents",value:t,background:["blue","aquamarine"]}),a.createElement(Ua,{name:"Children",value:n,background:["purple","lilac"]})),a.createElement(V.ProgressBar,{background:["purple","lilac"],color:["blue","aquamarine"],width:r}))},Ra={r_1:{label:"1",color:["blue","indigo"]},r_2:{label:"2",color:["green","limeGreen"]},"r_*":{label:">2",color:["yellow","seaBuckthorn"]}},Aa=function(){return a.createElement(V.Flex,{column:!0,gap:1,alignItems:"center",width:"220px","data-testid":"nodesByDataReplication-information-text",overflow:"hidden"},a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Replication factor 1:")," ","The node's data are only on the node itself. Lose the node, lose the data!"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Replication factor 2:")," ","The node's metrics are replicated to one parent. The parent can trigger alerts for the child."),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Replication factor ",">2",":")," ","Same as 2, but with the metrics replicated to more than one parent. Each parent in the hierarchy can trigger alerts for its children."),a.createElement(V.TextMicro,{color:"white",margin:[2,0]},"Aim to have most of your nodes with at least a factor of 2 and your critical ones with ",">2","."))},Fa=function(e){var t=(0,a.useMemo)((function(){var t=Object.keys(Ra).reduce((function(t,n,s){var r,a=e[n]||0;return[].concat((0,_.Z)(t),[La(La({key:n},Ra[n]),{},{value:a,sumValue:((null===(r=t[s-1])||void 0===r?void 0:r.sumValue)||0)+a})])}),[]);return[t,t[t.length-1].sumValue]}),[e]),n=(0,r.Z)(t,2),s=n[0],o=n[1];return a.createElement(V.Flex,{column:!0,margin:[6,0,0]},a.createElement(V.Flex,{margin:[0,0,2],gap:1},a.createElement(V.TextSmall,null,"Replication factor"),a.createElement(me.Z,{isBasic:!0,plain:!0,content:Aa,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(V.Flex,{justifyContent:"between",margin:[0,0,1],"data-testid":"nodesByDataReplication-replications"},s.map((function(e){return a.createElement(Ua,{key:e.key,name:e.label,value:e.value,background:e.color})}))),a.createElement(V.ProgressBar,{background:"nodeBadgeBackground",value:s.map((function(e){return{width:(0,ca.e)(e.value/o),color:e.color}}))}))},Ua=function(e){var t=e.name,n=e.value,s=void 0===n?"-":n,r=e.background,o=void 0===r?"text":r;return a.createElement(V.Flex,{alignItems:"center"},a.createElement(V.Flex,{width:"4px",height:"16px",background:o,round:3,margin:[0,1,0,0]}),a.createElement(V.TextSmall,{color:"textDescription",margin:[0,3,0,0]},t),a.createElement(Na,{color:"textDescription",strong:!0},s))},Ba=function(e){var t=e.parentChild,n=e.replication;return a.createElement(V.Flex,{column:!0,margin:[4,4,1],"data-testid":"nodesByDataReplication-container"},a.createElement(Oa,t),a.createElement(Fa,n))},Za={dataReplication:function(){return(0,Ut.L)("nodes-data-replication","click-link-stream-replication","hm-page")},dataRetention:function(){return(0,Ut.L)("nodes-data-retention","click-link-dbengine-retention","hm-page")}},ja=function(){var e=(0,d.A3)(),t=(0,i.s0)(),n=(0,Lr.yi)(),s=(0,Yr.Z)("manageWarRoom").handleOpenModal,r=(0,a.useCallback)((function(){return s("users")}),[]);return{claimedNodes:{props:{title:"Nodes",description:"Number of nodes claimed to Netdata in current room",basis:"calc(100%/12)",flex:{grow:"1",shrink:"0"},onClick:function(){return t("".concat(e,"/nodes"))},testId:"claimedNodes"},Component:$r,selector:function(e){var t=e.nodes;return t?{count:t.offline+t.online+t.stale,updatedAt:t.updatedAt}:{count:"-"}}},nodesByStatus:{props:{title:"Nodes by status",description:"Breakdown of the nodes by their status in regards to Netdata",tooltip:a.createElement(V.Flex,{column:!0,width:{max:"200px"},gap:2},a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Live:")," ","Node is actual collecting and streaming metrics to Netdata"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Stale:")," ","Node is currently offline and not streaming metrics to Netdata. It can show historical data from a parent node"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Offline:")," ","Node is currently offline, not streaming metrics to Netdata and not available in any parent nodes"),a.createElement(V.TextMicro,{color:"white"},a.createElement(V.TextMicro,{color:"white",strong:!0},"Unseen:")," ","Nodes have never been connected to Netdata, they are claimed but no successful connection was established")),basis:"calc(100%/6)",flex:{grow:"2",shrink:"0"},testId:"nodesByStatus"},Component:Ma,selector:function(n){var s=n.nodes,r=function(e){var t;return null!==(t=null===s||void 0===s?void 0:s[e])&&void 0!==t?t:"-"},a=function(){return t("".concat(e,"/nodes"))};return{chartData:[{title:"Live",value:r("online"),color:"live",onClick:a},{title:"Stale",value:r("stale"),color:"stale",onClick:a},{title:"Offline",value:r("offline"),color:"offline",onClick:a},{title:"Unseen",value:r("unseen"),color:"unseen",onClick:a}],hasData:!!s&&!s.error,updatedAt:null===s||void 0===s?void 0:s.updatedAt}}},nodesByML:{props:{title:"Nodes by ML",description:"Breakdown of the nodes in regards to our ML features",basis:"calc(100%/6)",flex:{grow:"2",shrink:"0"},onClick:function(){return t("".concat(e,"/anomalies"))},testId:"nodesByML"},Component:Ma,selector:function(e){var t,n,s,r,a,o,i=e.nodes;return{chartData:[{title:"Enabled",value:null!==(t=null===i||void 0===i||null===(n=i.ml)||void 0===n?void 0:n.enabled)&&void 0!==t?t:"-",color:["blue","aquamarine"]},{title:"Disabled",value:null!==(s=null===i||void 0===i||null===(r=i.ml)||void 0===r?void 0:r.disabled)&&void 0!==s?s:"-",color:["yellow","yellow100"]},{title:"Not Capable",value:null!==(a=null===i||void 0===i||null===(o=i.ml)||void 0===o?void 0:o.notCapable)&&void 0!==a?a:"-",color:"placeholder"}],hasData:!!i&&!i.error,updatedAt:null===i||void 0===i?void 0:i.updatedAt}}},nodesByMachine:{props:{title:"Nodes over type of machine/technology",description:"Breakdown of the machines/technology where Netdata is running on",basis:"550px",flex:{grow:"5",shrink:"0"},testId:"nodesByMachine"},Component:Ea,selector:function(e){var t,n,s,r,a,o,i,c,l,d,h,u=e.nodes;return{data:{vm:null!==(t=null===u||void 0===u?void 0:u.vmTechnology)&&void 0!==t?t:{},docker:null!==(n=null===u||void 0===u?void 0:u.containerRuntime)&&void 0!==n?n:{},chartData:[{title:"Bare Metal",value:null!==(s=null===u||void 0===u||null===(r=u.type)||void 0===r?void 0:r.bareMetal)&&void 0!==s?s:"-",color:["blue","indigo"]},{title:"VM",value:null!==(a=null===u||void 0===u||null===(o=u.type)||void 0===o?void 0:o.virtualMachine)&&void 0!==a?a:"-",color:["blue","cyan"]},{title:"Container",value:null!==(i=null===u||void 0===u||null===(c=u.type)||void 0===c?void 0:c.container)&&void 0!==i?i:"-",color:["purple","lilac"]}].concat((0,_.Z)(null!==u&&void 0!==u&&null!==(l=u.type)&&void 0!==l&&l.unknown?[{title:"Unknown",value:null!==(d=null===u||void 0===u||null===(h=u.type)||void 0===h?void 0:h.unknown)&&void 0!==d?d:"-",color:"placeholder"}]:[])),hasData:!!u&&!u.error},updatedAt:null===u||void 0===u?void 0:u.updatedAt}}},nodesByDataReplication:{props:{title:"Nodes by data replication",description:a.createElement(a.Fragment,null,"Summary of your"," ",a.createElement(Mn.Z,{Component:V.TextMicro,href:"https://learn.netdata.cloud/docs/metrics-storage-management/enable-streaming",target:"_blank",onClick:Za.dataReplication},"streaming and replication")," ","status across your nodes"),basis:"calc(100%/6)",flex:{grow:"1",shrink:"0"},minWidth:"250px",testId:"nodesByDataReplication"},Component:Ba,selector:function(e){var t=e.nodes;return t&&!t.error?{parentChild:{parent:t.parent,child:t.child},replication:t.replicationFactor,updatedAt:t.updatedAt}:{parentChild:{},replication:{}}}},nodesByOS:{props:{title:"Nodes by O/S version",description:"Breakdown of the nodes in regards to the O/S version they are running",basis:"430px",flex:{grow:"5",shrink:"0"},schemaKey:"OSTableSchema",dataGa:"node-os-version",testId:"nodesByOS"},Component:fa,selector:function(e){var t=e.nodes;return t&&!t.error?{data:t.osVersion,updatedAt:t.updatedAt}:{data:{}}}},nodesByAgentVersion:{props:{title:"Nodes by Agent version",description:"Breakdown of the nodes in regards to the Agent version running on them",basis:"430px",flex:{grow:"5",shrink:"0"},schemaKey:"agentTableSchema",dataGa:"node-agent-version",testId:"nodesByAgentVersion"},Component:fa,selector:function(e){var t=e.nodes;return t&&!t.error?{data:t.agentVersion,updatedAt:t.updatedAt}:{data:{}}}},activeAlerts:{props:{title:"Active Alerts",description:"Breakdown of the active alerts by status across all live nodes",basis:"calc(100%/6)",flex:{grow:"0",shrink:"0"},testId:"activeAlerts"},Component:Ma,selector:function(e){var t=e.alarms;return t&&!t.error?{chartData:[{title:"Critical",value:t.critical,color:"errorText",onClick:function(){return n("critical")}},{title:"Warning",value:t.warning,color:"warningText",onClick:function(){return n("warning")}}],label:t.critical+t.warning,hasData:!!t&&!t.error&&t.critical+t.warning,updatedAt:t.updatedAt}:{chartData:[{title:"Critical",value:"-",color:"errorText",onClick:function(){return n("critical")}},{title:"Warning",value:"-",color:"warningText",onClick:function(){return n("warning")}}],hasData:!!t&&!t.error}}},usersByRole:{props:{title:"Users by role",description:"Breakdown of the users by their role",basis:"calc(100%/6)",flex:{grow:"0",shrink:"0"},onClick:function(){return r()},testId:"usersByRole"},Component:Ma,selector:function(e){var t=e.spaceroom;return t&&!t.error?{chartData:[{title:"admin",value:t.admin,color:["green","green140"]},{title:"user",value:t.user,color:["purple","lilac"]}],label:t.admin+t.user,hasData:!!t&&!t.error,updatedAt:t.updatedAt}:{chartData:[{title:"admin",value:"-",color:["green","green140"]},{title:"user",value:"-",color:["purple","lilac"]}],hasData:!!t&&!t.error}}},totalDashboards:{props:{title:"Total Dashboards",description:"Number of the currently available custom dashboards in room",basis:"calc(100%/6)",flex:{grow:"0",shrink:"0"},testId:"totalDashboards"},Component:_a,selector:function(e){var t=e.dashboards;return t&&!t.error?{count:t.dashboards,data:t.lastUpdated,updatedAt:t.updatedAt}:{count:"-",data:[]}}}}},za=function(e){var t=e.title,n=e.description,s=e.tooltip;return a.createElement(V.Flex,{column:!0,margin:[4,4,3],height:{min:12}},a.createElement(V.Flex,{gap:1,alignItems:"center"},a.createElement(V.Text,{color:"text","data-testid":"metrics-header-title"},t),s&&a.createElement(me.Z,{isBasic:!0,plain:!0,content:s,align:"bottom"},a.createElement(V.Icon,{name:"information",color:"textDescription",size:"small"}))),a.createElement(V.TextMicro,{color:"textDescription","data-testid":"metrics-header-description"},n))},Va=(0,a.memo)(za),Ha=n(43337),Qa=n(20709),Ga=function(e){var t=e.updatedAt,n=(0,a.useState)(),s=(0,r.Z)(n,2)[1],o=function(e){if(!e)return"";var t=new Date(e);return t.getTime()?(0,Qa.Z)(t,new Date):""}(t);return(0,Ha.Z)((function(){return s(Math.random())}),6e4),a.createElement(V.Flex,{justifyContent:"end",margin:[2,4]},a.createElement(V.TextFemto,{color:"textLite","data-testid":"metrics-footer-last-updated"},"Last updated: ",o||"-"))},Wa=["basis","title","flex","description","tooltip","minWidth","onClick","testId"];function Ka(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Ja(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ka(Object(n),!0).forEach((function(t){(0,h.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ka(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ya=function(e,t){var n=(0,I.th)(),s=(0,d.UL)(),r=(0,G.H7)();(0,w.Z)((function(){return{enabled:!!(n&&s&&r.length&&null!==e&&void 0!==e&&e.length),fetch:function(){return(0,g.mP)(n,s,e,r)},onReceive:function(e){var n=e.data;return t((function(e){var t=Ja(Ja(Ja({},e),n),{},{charts:Ja(Ja({},e.charts),n.charts)});return function(e,t){return e===t||!Object.keys(e).some((function(n){return!(0,Jr.ZP)(e[n],t[n],{omit:["updatedAt","latency"]})}))}(t,e)?e:t}))},onFail:function(t){return e.reduce((function(e,n){var s=n.name;return Ja(Ja({},e),{},(0,h.Z)({},s,{error:t}))}),{})},pollingOptions:{pollingInterval:588e3}}}),[n,s,r.length,e])},Xa=[{name:"charts",projections:"points"}],$a=[{name:"charts",projections:"retention"}],eo=[{name:"charts",projections:"metrics"}],to=[{name:"nodes"},{name:"spaceroom"},{name:"alarms"},{name:"dashboards"}],no=function(){var e=(0,a.useState)({}),t=(0,r.Z)(e,2),n=t[0],s=t[1];Ya(Xa,s),Ya($a,s),Ya(eo,s),Ya(to,s);var o=(0,Ce.zN)(),i=(0,Ce.fD)(),c=ja();return i?i&&!o.length?a.createElement(Pe.Z,null):a.createElement(a.Fragment,null,a.createElement(V.Flex,{alignItems:"center",background:"mainBackground","data-testid":"home-header",gap:2,justifyContent:"between",padding:[2,4],width:"100%"},a.createElement(Ln,null)),a.createElement(V.Flex,{flexWrap:!0,overflow:"auto",padding:[0,0,4,4],"data-testid":"roomHome-layout-container"},Object.keys(c).map((function(e){var t=c[e],s=t.props,r=s.basis,o=s.title,i=s.flex,l=s.description,d=s.tooltip,h=s.minWidth,u=void 0===h?"250px":h,m=s.onClick,p=void 0===m?null:m,f=s.testId,g=(0,z.Z)(s,Wa),b=t.Component,y=(0,t.selector)(n);return a.createElement(V.Flex,{key:e,column:!0,basis:r,flex:i,height:"280px",width:{min:u},margin:[4,4,0,0],background:"panelBg",justifyContent:"between",round:!0,"data-testid":"metrics-container-".concat(f),onClick:p,cursor:p?"pointer":"auto"},a.createElement(Va,(0,j.Z)({title:o,description:l,tooltip:d},y)),a.createElement(b,(0,j.Z)({testId:e},g,y)),a.createElement(Ga,y))})))):a.createElement(B.Z,{title:"Loading room stats..."})},so=n(92501),ro=(n(77601),function(){var e=(0,Ie.e)(),t=function(){var e=(0,I.uk)(),t=(0,d.vf)();return"/spaces/".concat(e,"/rooms/").concat(t,"/overview")}(),n=(0,i.s0)();(0,a.useEffect)((function(){if(e)return(0,Ar.unregister)(e.on("goToLink",(function(e,s){var r,a=t;return e.getParent().getAttribute("roomId")&&(a=e.getParent().getId(),a=/^\/spaces/.test(a)?a:t),n(a,s?{state:{chartName:s},replace:!0}:{state:{contextToGo:null===e||void 0===e||null===(r=e.getAttribute("contextScope"))||void 0===r?void 0:r[0]},replace:!0})})))}),[e,t])}),ao=function(){return ro(),null},oo=n(15418),io=n(78710),co=n(6308),lo=(0,o.Z)((function(){return Promise.all([n.e(514),n.e(663),n.e(654)]).then(n.bind(n,66654))}),"ManageSpaceRoute"),ho=(0,o.Z)((function(){return Promise.resolve().then(n.bind(n,98469))}),"JoinSpace"),uo=(0,o.Z)((function(){return n.e(610).then(n.bind(n,6610))}),"NoSpaceAccess"),mo=(0,o.Z)((function(){return n.e(533).then(n.bind(n,35533))}),"AlertView"),po=(0,o.Z)((function(){return n.e(359).then(n.bind(n,57359))}),"Anomalies"),fo=(0,o.Z)((function(){return n.e(451).then(n.bind(n,25451))}),"AlertsSmartboard"),go=(0,o.Z)((function(){return n.e(564).then(n.bind(n,43564))}),"DashboardsOverview"),bo=(0,o.Z)((function(){return n.e(43).then(n.bind(n,4193))}),"DashboardView"),yo=(0,o.Z)((function(){return Promise.all([n.e(514),n.e(18),n.e(324)]).then(n.bind(n,34324))}),"FunctionsView"),vo=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(663),n.e(129)]).then(n.bind(n,66129))})),_o=Z.Z.demoSlug,wo=Z.Z.demoDefaultRoomViews,ko=Z.Z.defaultRoomView,To=Z.Z.integrationsView,xo=function(){var e=(0,c.ZP)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],o=_o===n?wo[s]||wo.default:io.ZP&&n===io.Xh&&s===io.Fb?io.vT:ko;return a.createElement(i.Fg,{replace:!0,to:"/spaces/".concat(n,"/rooms/").concat(s,"/").concat(o)})},So=Er(Kr(Pr)),Co=Kr(Pr),Po=function(){var e=(0,i.s0)(),t=(0,c.ZP)(),n=(0,r.Z)(t,2),s=n[0],o=n[1],l=(0,co.Z)(),h=l.isEmptySpace,m=l.loading,b=(0,I.th)(),P=(0,d.UL)();return function(e,t){var n=(0,f._8)((function(n){var s=n.snapshot,r=n.set;return(0,u.Z)(p().mark((function n(){return p().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,s.getPromise((0,d.n2)({id:t,key:"fullyLoaded"}));case 2:if(!n.sent){n.next=5;break}return n.abrupt("return");case 5:(0,g.fv)(e,t).then((function(t){var n=t.data;r((0,d.ZB)(),y(y({},n),{},{spaceId:e,fullyLoaded:!0,loaded:!0}))}));case 6:case"end":return n.stop()}}),n)})))}),[e,t]);(0,a.useEffect)((function(){e&&t&&n()}),[e,t])}(b,P),(0,v.Z)({spaceId:b,id:P,pollingInterval:63e3}),function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).polling,s=void 0===n||n,r=(0,f._8)((function(e){var n=e.set;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data,s=void 0===e?[]:e;n((0,S.e8)({id:t,key:"ids"}),s.map((function(e){return e.id}))),n((0,S.e8)({id:t,key:"loaded"}),!0),n((0,S.e8)({id:t,key:"updatedAt"}),(new Date).toISOString()),n((0,S.e8)({id:t,key:"error"}),null),s.forEach((function(e){n((0,k.fp)({id:e.id}),(function(t){return M(M({},t),{},{loaded:!0},e)}))}));var r=s.reduce((function(e,t){var n=t.id,s=t.nodeId;return e[s]=[].concat((0,_.Z)(e[s]||[]),[n]),e}),{});n(x.in,r)}}),[e,t]),a=(0,f._8)((function(e){var n=e.set;return function(e){n((0,S.e8)({id:t,key:"error"}),(0,C.Z)(e))}}));(0,w.Z)((function(){return{enabled:!!e&&!!t,polling:s,fetch:function(){return(0,T.sr)(e,t)},onFail:a,onReceive:r,force:!0}}),[e,t])}(b,P),(0,q.Z)(b,P),(0,a.useEffect)((function(){!io.ZP&&h&&e("/spaces/".concat(s,"/rooms/").concat(o,"/").concat(To),{replace:!0})}),[io.ZP,h]),!P||m?a.createElement(B.Z,{title:"Loading room..."}):a.createElement(a.Suspense,{fallback:a.createElement(B.Z,{title:"Loading..."})},a.createElement(i.Z5,null,a.createElement(i.AW,{path:"nodes/:nodeId",element:a.createElement(So,null)}),a.createElement(i.AW,{path:"nodes",element:a.createElement(On,null)}),a.createElement(i.AW,{path:"home",element:a.createElement(no,null)}),a.createElement(i.AW,{path:"overview",element:a.createElement(Co,null)}),a.createElement(i.AW,{path:"alerts/:alertId",element:a.createElement(mo,null)}),a.createElement(i.AW,{path:"alerts",element:a.createElement(fo,null)}),a.createElement(i.AW,{path:"alarms/:alertId",element:a.createElement(mo,null)}),a.createElement(i.AW,{path:"alarms",element:a.createElement(fo,null)}),a.createElement(i.AW,{path:"dashboards/:dashboardSlug",element:a.createElement(bo,null)}),a.createElement(i.AW,{path:"dashboards",element:a.createElement(go,null)}),a.createElement(i.AW,{path:"anomalies",element:a.createElement(po,null)}),a.createElement(i.AW,{path:"kubernetes",element:a.createElement(Co,{flavour:"k8s"})}),a.createElement(i.AW,{path:"/functions",element:a.createElement(yo,{key:"fn",flavour:"fn"})}),a.createElement(i.AW,{path:"/events",element:a.createElement(yo,{key:"feed",flavour:"feed"})}),a.createElement(i.AW,{path:"/",element:a.createElement(xo,null)})))},Mo=(0,so.Pf)((function(){var e=(0,co.c)().isIntegrationsPath;return a.createElement(oo.Z,{permission:"room:Read"},(function(t){return t?a.createElement(a.Fragment,null,!e&&a.createElement(ye,null),a.createElement(a.Suspense,{fallback:a.createElement(B.Z,{title:"Loading your space..."})},a.createElement(i.Z5,null,a.createElement(i.AW,{path:"spaces/:spaceSlug/join-space",element:a.createElement(ho,null)}),a.createElement(i.AW,{path:"spaces/:spaceSlug/no-rooms",element:a.createElement(uo,{reason:"noRooms"})}),a.createElement(i.AW,{path:"spaces/:spaceSlug/rooms/:roomSlug/".concat(To),element:a.createElement(vo,null)}),a.createElement(i.AW,{path:"spaces/:spaceSlug/rooms/:roomSlug/*",element:a.createElement(Po,null)})))):a.createElement(uo,{reason:"noRoomPermission"})}))})),qo=function(){return(0,c.vq)(),a.createElement(lo,null)},Io=(0,so.Pf)((function(){var e=(0,I.th)();return(0,E.Z)(e),function(e){var t=(0,f._8)((function(t){var n=t.set;return function(t){var s=t.results;return n((0,O.J9)(e),s)}})),n=(0,A.gI)("user:ReadAll");(0,D.Z)((function(){return{key:"spaces.".concat(e,".members"),autorun:!!e&&n,fetch:function(){return(0,L.Q5)(e)},association:{getError:function(){return(0,R.Ci)({id:e,key:"error"})},getIds:function(){return(0,O.WA)({id:e,key:"ids"})},getLoaded:function(){return(0,O.WA)({id:e,key:"loaded"})},getUpdatedAt:function(){return(0,O.WA)({id:e,key:"updatedAt"})}},sort:function(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})},getResource:function(e){return(0,N.mX)({id:e})},getResourcesInitializer:function(){return N.Bb},onReceive:t,pollingOptions:{pollingInterval:315e3}}}),[e])}(e),function(e){var t=(0,f._8)((function(t){var n=t.set;return function(){var t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data.results;n((0,F.e$)({id:e}),t)}})),n=(0,f._8)((function(t){var n=t.set;return function(t){return n((0,F.e$)({id:e,key:"error"}),t)}})),s=(0,U.y3)(e,"loaded"),r=(0,A.gI)("alert:ReadAll");(0,w.Z)((function(){return{enabled:r&&!!e&&s,fetch:function(){return(0,T.Kp)(e)},onFail:n,onReceive:t,pollingOptions:{pollingInterval:15e4}}}),[e,!!s])}(e),(0,l.ZP)(),a.createElement(oo.Z,{permission:"space:Read"},(function(t){return t?a.createElement(a.Fragment,null,a.createElement(i.Z5,null,a.createElement(i.AW,{path:"/*",element:a.createElement(ao,null)})),a.createElement(a.Suspense,{fallback:a.createElement(B.Z,{title:"Loading your space..."})},a.createElement(i.Z5,null,a.createElement(i.AW,{path:"spaces/:spaceSlug/settings/*",element:a.createElement(qo,null)}),a.createElement(i.AW,{path:"*",element:a.createElement(Mo,null)})))):a.createElement(uo,{key:e,reason:"noSpacePermission"})}))})),Eo=Io},50709:function(e,t,n){n.d(t,{Z:function(){return h}});var s=n(29439),r=n(67294),a=n(57509),o=n(12008),i=(n(74916),n(15306),n(26398)),c=n(91008),l=n(37518),d=n(12899),h=function(e){var t=e.alertId,n=(0,o.E5)(t),h=n.name,u=function(e){var t=(0,r.useState)(!0),n=(0,s.Z)(t,2),a=n[0],o=n[1],c="".concat("https://community.netdata.cloud/t","/").concat(null===e||void 0===e?void 0:e.replace(/[._]/g,"-"));return(0,r.useEffect)((function(){e&&i.Z.get(c).then((function(){return o(!1)})).catch((function(){return o(!0)}))}),[e]),[c,a]}(void 0===h?"unknown alert":h),m=(0,s.Z)(u,2),p=m[0],f=m[1],g=(0,l.UL)(),b=(0,d.R3)(),y=(0,s.Z)(b,2)[1],v=(0,r.useMemo)((function(){return{alignSelf:"start",onClick:function(){return y({roomId:g,alert:n})}}}),[p,f,y]);return r.createElement(c.Z,v,"Learn more about this alert",!f&&r.createElement(a.Icon,{name:"arrow_left",rotate:2,size:"small",margin:[0,0,-.75,1],color:"success"}))}},80854:function(e,t,n){var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=["iconName","iconSize","children"];t.Z=function(e){var t=e.iconName,n=e.iconSize,c=e.children,l=(0,r.Z)(e,i);return a.createElement(o.Flex,(0,s.Z)({gap:2,alignItems:"center"},l),a.createElement(o.Icon,(0,s.Z)({name:t,color:"textLite"},n&&{height:n,width:n})),a.createElement(o.Text,{strong:!0},c))}},29876:function(e,t,n){n.d(t,{Z:function(){return m}});var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=n(12008),c=(n(92222),n(89405)),l=n(50358),d=n(39840),h=function(e){var t=e.label,n=e.testid,s=e.status,r=e.value,i=e.when,h=e.units,u=(0,c.rA)(),m=u.localeTimeString,p=u.localeDateString,f=(0,a.useMemo)((function(){var e=new Date(1e3*i);return e&&"".concat(p(e,{long:!1})," ").concat(m(e,{secs:!0}))}),[i,p,m]),g=(0,d.pK)(r,h);return a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(o.Flex,{width:"100px"},a.createElement(o.TextSmall,null,t)),a.createElement(o.Flex,{gap:2,alignItems:"center"},a.createElement(o.TextSmall,{color:"text","data-testid":"".concat(n,"-dateTime")},f),a.createElement(l.Z,{loaded:!0,status:s,valueWithUnit:g,"data-testid":"".concat(n,"-value")})))},u=["alertId"],m=function(e){var t=e.alertId,n=(0,r.Z)(e,u),c=(0,i.E5)(t),l=c.fullyLoaded,d=void 0!==l&&l,m=c.units,p=c.lastStatusChangeValue,f=c.lastStatusChange,g=c.status,b=c.lastUpdated,y=c.value;c.prevStatus,c.prevValue,c.prevDuration;return d?a.createElement(o.Flex,(0,s.Z)({gap:2,column:!0,"data-testid":"alertValues"},n),b&&a.createElement(h,{label:"Latest",status:g,testid:"alertValues-latest",value:y,when:b,units:m}),f&&a.createElement(h,{label:"Triggered",status:g,testid:"alertValues-triggered",value:p,when:f,units:m})):null}},92253:function(e,t,n){var s=n(29439),r=(n(92222),n(67294)),a=n(16978),o=n(57509),i=n(91128),c=n(78266),l=n(74059),d=n(37518),h=n(95248),u=n(9058),m=n(22648),p=function(e){return function(t){return"alert-modal::".concat(e.getAttribute("id"),"::").concat(t)}},f=function(){return Math.floor((new Date).getTime()/1e3)},g={width:"108px",height:"77px"};t.Z=function(e){var t=e.instance,n=e.context,b=e.isFormattedValueLoaded,y=e.nodeId,v=e.status,_=e.lastStatusChange,w=e.formattedLastStatusChangeValue,k=e.lastUpdated,T=(0,l.th)(),x=(0,d.UL)(),S=(0,m.m)(),C=(0,u.e)(),P=(0,i.Z)();(0,r.useEffect)((function(){return P(),P}),[]);var M=(0,h.TQ)(),q=(0,l.Q6)(),I=(0,r.useMemo)((function(){if(b){var e=C.makeChart({attributes:{nodeId:y,contextScope:[n],selectedInstances:t&&y?["".concat(t,"@").concat(y)]:[],id:t,roomId:x,enabledHeightResize:!1,enabledResetRange:!1,overlays:{proceeded:{type:"proceeded"},alarm:{type:"alarm",status:v,value:w,when:_}},host:q?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(T,"/rooms/").concat(x),nodesScope:[y],toolboxElements:[],sparkline:S,hasToolbox:!S},makeTrack:p});return C.getRoot().appendChild(e),e}}),[t,b]),E=function(e,t){return(0,r.useMemo)((function(){var n=e||f(),s=n-t,r=Math.round(t-s),a=Math.round(n+s);return[r,a>f()?f():a]}),[e,t])}(k,_),D=(0,s.Z)(E,2),L=D[0],N=D[1];return(0,r.useEffect)((function(){b&&M({after:1e3*L,before:1e3*N})}),[b,L,N]),(0,r.useEffect)((function(){return function(){return I&&I.destroy()}}),[I]),r.createElement(o.Flex,{flex:!1,width:"100%",height:75},b&&I?r.createElement(a.Z,{"data-chartid":t,chart:I,hasHeader:!S,hasFooter:!S}):r.createElement(c.Z,{iconProps:g,title:"Loading chart..."}))}},61294:function(e,t,n){n.d(t,{Z:function(){return S}});var s=n(87462),r=n(29439),a=n(67294),o=n(61152),i=n(57509),c=n(12008),l=n(16645),d=n(7693),h=n(20686),u=n(17208),m=n(78266),p=n(92253),f=n(39840),g=(0,a.memo)((function(e){var t=e.id,n=(0,c.E5)(t),s=n.fullyLoaded,r=n.nodeId,o=n.instance,i=n.lastStatusChangeValue,l=n.lastStatusChange,d=n.units,h=n.context,u=n.value,m=n.lastUpdated,g=n.status,b=(0,f.pK)(u,d),y=(0,f.pK)(i,d);return a.createElement(p.Z,{instance:o,context:h,formattedLastValue:b,formattedLastStatusChangeValue:y,lastStatusChange:l,lastUpdated:m,isFormattedValueLoaded:"clear"===g||s,nodeId:r,status:g,testid:"alertDetailsModal"})})),b=(n(92222),n(74059)),y=n(37518),v=n(89250),_=function(e){var t=e.alertId,n=e.testid,s=(0,b.uk)(),r=(0,y.vf)(),o="/spaces/".concat(s,"/rooms/").concat(r,"/alerts/").concat(t),c=(0,v.s0)(),l=(0,a.useCallback)((function(e){e.preventDefault(),c(o)}),[c,o]);return a.createElement(i.Button,{as:"a","data-testid":"".concat(n,"-view-alert-button"),"data-ga":"".concat(n,"::view-alert-button"),href:o,onClick:l,label:"View alert page",width:"224px"})},w=n(80854),k=n(29876),T=n(50709),x=function(e){var t=e.alertId,n=e.onClose,s=(0,c.E5)(t),r=s.name,o=void 0===r?"unknown alert":r,p=s.status,f=s.fullyLoaded,b=s.info;return(0,c.yx)(t),a.createElement(l.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:n},a.createElement(d.x,{onClose:n,title:o,"data-testid":"alertDetailsModal-alertName"},a.createElement(h.Z,{type:"".concat(p,"AlertsTable"),icon:"alarm_bell","data-testid":"alertDetailsModal-alertPill"},p)),a.createElement(l.TZ,{overflow:{vertical:"auto"},hasModalTitle:!1,gap:2,hasFooter:!0},!f&&a.createElement(m.Z,{title:"Loading alert..."}),f&&a.createElement(a.Fragment,null,a.createElement(w.Z,{iconName:"monitoring",iconSize:"20px"},"Time Values"),a.createElement(k.Z,{alertId:t}),a.createElement(w.Z,{iconName:"documentation"},"Alert Description"),a.createElement(i.Text,{"data-testid":"alertDetailsModal-info"},b),a.createElement(T.Z,{alertId:t})),f&&a.createElement(g,{id:t}),f&&a.createElement(u.Z,{id:t})),a.createElement(l.ZW,null,a.createElement(_,{alertId:t,testid:"alertDetailsModal"})))},S=function(){var e=(0,o.Z)("alertDetailsModal"),t=(0,r.Z)(e,5),n=t[0],i=t[2],c=t[3],l=t[4],d=(0,a.useCallback)((function(e){var t=e.alertId;i("",{alertId:t})}),[]),h=(0,a.useMemo)((function(){return a.createElement(x,(0,s.Z)({onClose:c},l))}),[l]);return[n,d,c,h]}},63860:function(e,t,n){var s=n(87462),r=n(45987),a=(n(74916),n(15306),n(67294)),o=n(60677),i=n(57509),c=n(39840),l=["rawTime","secs","long","nowrap"],d=o.default.div.withConfig({displayName:"timeCell__TimeBox",componentId:"sc-1k785pi-0"})(["display:flex;flex-direction:column;align-items:start;justify-content:center;"]);t.Z=function(e){var t=e.rawTime,n=e.secs,o=e.long,h=e.nowrap,u=void 0!==h&&h,m=(0,r.Z)(e,l),p=(0,c.e8)({rawTime:t,secs:n,long:o}),f=p.timeAgo,g=p.formattedDate,b=void 0===g?"":g;return a.createElement(d,m,a.createElement(i.TextSmall,null,f),a.createElement(i.TextMicro,(0,s.Z)({color:"textLite"},u&&{whiteSpace:"nowrap"}),b?null===b||void 0===b?void 0:b.replace(/ /g," - "):""))}},17208:function(e,t,n){n.d(t,{Z:function(){return Z}});var s=n(67294),r=n(57509),a=n(12008),o=n(57387),i=n(60677),c=i.default.div.withConfig({displayName:"styled__StyledAlertTypeIndicator",componentId:"sc-19nk935-0"})(["width:",";height:",";border-radius:",";background-color:",";"],(0,r.getSizeBy)(1),(0,r.getSizeBy)(1),(0,r.getSizeBy)(1),(function(e){var t=e.critical,n=e.theme;return(0,r.getColor)(t?"error":["yellow","sunglow"])({theme:n})})),l=i.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-19nk935-1"})(["padding:",";text-decoration:none;color:",";&:visited{color:",";}&:hover{text-decoration:none;}"],(function(e){var t=e.padding;return null!==t&&void 0!==t?t:"0"}),(0,r.getColor)("success"),(0,r.getColor)("success")),d=n(82351),h=function(e){var t=e.title,n=e.value,a=e.testId,i=e.status;return n?s.createElement(s.Fragment,null,s.createElement(r.Flex,{justifyContent:"between"},s.createElement(r.Flex,{gap:1,alignItems:"center"},s.createElement(c,{critical:"critical"===i}),s.createElement(r.H6,{color:"textDescription"},t)),s.createElement(r.Flex,{gap:1,alignItems:"center"},s.createElement(r.TextSmall,{color:"textDescription"},"More details about"," ",s.createElement(r.TextSmall,{strong:!0,color:"textDescription"},"$this")," ","command"),s.createElement(d.Z,{content:"The $this value comes from the DB Lookup or the Calculation above",isBasic:!0,plain:!0},s.createElement(r.Flex,{margin:[-.5,0,0]},s.createElement(r.Icon,{name:"informationPress",color:"textLite",width:"16px",height:"16px"}))))),s.createElement(o.ZP,{"data-testid":a},n)):null},u=(n(92222),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4942)),m=(n(66992),n(41539),n(33948),n(85827),n(25387),n(2490),n(72608),n(47941),n(4480)),p=n(37394);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=(0,m.xu)({key:"nodeChartBatchState",default:{}}),y=(0,m.CG)({key:"nodeChartsState",get:function(e){var t=e.id,n=e.chartId;return function(e){var s=(0,e.get)(b(t));return n?s[n]:s}},set:function(e){var t=e.id,n=e.chartId;return function(e,s){var r=e.set;r(b(t),"function"!==typeof s?function(e){return g(g({},e),{},(0,u.Z)({},n,s))}:function(e){return g(g({},e),{},(0,u.Z)({},n,s(e[n])))})}}}),v=((0,m.CG)({key:"nodeChartsState/initialize",set:function(e){return function(t,n){var s=t.set,r=n.values,a=n.merge;s(b(e),(function(e){return r.reduce((function(e,t){var n=t.dimensions,s=void 0===n?{}:n;return e[t.id]=g(g(g({},p.pk),a&&e[t.id]),{},{fullyLoaded:Object.keys(s).length>0},t),e}),g({},e))}))}}}),n(91058),n(936)),_=n(61973),w=n(33511),k=function(e){if("string"===typeof e&&(e=parseInt(e,10)),0===e)return"now";var t=new Date;return e<0?(0,v.Z)((0,_.Z)(t,e),t,{addSuffix:!0}):(0,v.Z)((0,w.Z)(t,e),t,{addSuffix:!0})},T=function(e){var t,n,r=(0,a.E5)(e),o=r.instance,i=r.lookupAfter,c=r.lookupBefore,l=r.lookupDimensions,d=r.lookupMethod,h=r.lookupOptions,u=r.nodeId,p=(t=u,n=o,(0,m.sJ)(y({id:t,chartId:n}))),f=(null!==p&&void 0!==p?p:{}).dimensions;return(0,s.useMemo)((function(){return i?function(e){var t=e.lookupOptions,n=e.lookupDimensions,s=e.lookupMethod,r=e.lookupAfter,a=e.lookupBefore,o=e.instance,i="of all values";if(n){var c=n.split(","),l=c.length>1?"of the sum of dimensions":"of all values of dimension";i="".concat(l," ").concat(c.join(", "))}var d=t?", with options ".concat(t):"";return"".concat(s," ").concat(i," of chart ").concat(o,", starting ").concat(k(r+a)," and up to ").concat(k(a)).concat(d)}({lookupOptions:h,lookupDimensions:l,lookupMethod:d,lookupAfter:i,lookupBefore:c,instance:o,chartDimensions:f}):""}),[i,f,o])},x=n(80854),S=function(e){var t=e.heading,n=e.value,a=e.testId;return n&&n.length?s.createElement(r.Flex,{column:!0,gap:3},t&&s.createElement(r.H6,{textTransform:"uppercase",color:"textDescription"},t),s.createElement(o.ZP,{"data-testid":a},n)):null},C=(0,s.memo)(S),P=n(25935),M=n(87462),q=function(e){var t=e.iconName,n=e.category,a=e.iconSize,o=void 0===a?"16px":a,i=e.value,c=e.testid;return i?s.createElement(r.Flex,{alignItems:"center",gap:1},s.createElement(r.Flex,{alignItems:"center",gap:1,basis:"100px"},s.createElement(r.Icon,(0,M.Z)({name:t,color:"textLite"},o&&{height:o,width:o})),s.createElement(r.TextSmall,{whiteSpace:"nowrap",color:"textDescription"},n,":")),s.createElement(r.TextSmall,{strong:!0,"data-testid":c},i)):null},I=function(e){var t=e.id,n=e.testid,o=(0,a.E5)(t),i=o.calculation,l=o.warning,d=o.critical,u=o.updateEvery,m=T(t),p=(0,s.useMemo)((function(){return(0,P.ZP)(i)}),[i]);return s.createElement(r.Flex,{column:!0,gap:4},s.createElement(x.Z,{iconName:"code"},"Configuration"),s.createElement(C,{heading:"DB lookup",value:m,testId:"".concat(n,"-lookup")}),s.createElement(C,{heading:"Calculation",value:p,testId:"".concat(n,"-calculation")}),s.createElement(r.H6,{textTransform:"uppercase",color:"textDescription"},"Severity Conditions"),s.createElement(r.Flex,{column:!0,gap:2},s.createElement(h,{title:"Warning when",value:l,testId:"".concat(n,"-warningWhen"),status:"warning"},s.createElement(c,{critical:!1})),s.createElement(h,{title:"Critical when",value:d,testId:"".concat(n,"-criticalWhen"),status:"critical"},s.createElement(c,{critical:!0}))),s.createElement(r.H6,{textTransform:"uppercase",color:"textDescription"},"Check"),s.createElement(q,{iconName:"clock_hollow",category:"Check every",value:"".concat(u," seconds"),testid:"".concat(n,"-checkEvery")}))},E=(0,s.memo)(I),D=n(97945),L=n(80239),N=n(45987),O=n(20686),R=n(63860),A=n(50358),F=["isHighlighted","lastStatusChangeValue","lastStatusChange","units","status","nodeName"],U=function(e){var t=e.isHighlighted,n=e.lastStatusChangeValue,a=e.lastStatusChange,o=e.units,i=e.status,c=e.nodeName,l=(0,N.Z)(e,F);return s.createElement(r.Flex,(0,M.Z)({background:t&&"modalTabsBackground",border:{side:"all",color:"borderSecondary"},color:"textDescription",justifyContent:"between",padding:[4],round:!0},l),s.createElement(r.Flex,{column:!0,justifyContent:"between",gap:2},c&&s.createElement(r.Text,{strong:!0},c),s.createElement(R.Z,{rawTime:a,secs:!0,"data-testid":"nodeItem-lastStatusChange"})),s.createElement(r.Flex,{height:5,gap:2,alignItems:"center",alignSelf:"start"},s.createElement(d.Z,{content:"Triggered value",align:"bottom"},s.createElement(r.Box,null,s.createElement(A.Z,{loaded:!0,status:i,units:o,value:n,"data-testid":"nodeItem-alertValue"}))),s.createElement(O.Z,{border:void 0,type:i,icon:"alarm_bell",textSize:"small","data-testid":"alertView-alertPill-value"},i)))},B=function(e){var t=e.children;return s.createElement(r.Flex,{gap:2,column:!0},t)},Z=function(e){var t=e.id,n=e.testid,o=void 0===n?"alertDetailsModal":n,i=(0,a.E5)(t),c=i.class,d=i.instanceName,h=i.component,u=i.family,m=i.nodeId,p=i.type,f=i.lastStatusChangeValue,g=i.lastStatusChange,b=i.units,y=i.status,v=i.notificationType,_=(0,D.bV)(m,"name");return s.createElement(r.Flex,{column:!0,gap:4},s.createElement(x.Z,{iconName:"information",margin:[0,0,0,-.5]},"Alert Info"),s.createElement(B,null,s.createElement(q,{iconName:"nodes_hollow",category:"Node",value:_,iconSize:"16px",testid:"".concat(o,"-hostname")}),s.createElement(q,{iconName:"charts_view",category:"Instance",value:d,testid:"".concat(o,"-chartId")}),s.createElement(q,{iconName:"data_retention",category:"Type",value:p,testid:"".concat(o,"-type")}),s.createElement(q,{iconName:"last_week",category:"Hostname"}),s.createElement(q,{iconName:"metrics",category:"Component",value:h,testid:"".concat(o,"-component")}),s.createElement(q,{iconName:"applications_hollow",category:"Family",value:u,testid:"".concat(o,"-family")}),s.createElement(q,{iconName:"networkingStack",category:"Class",value:c,testid:"".concat(o,"-class")}),s.createElement(q,{iconName:"incident_manager",category:"Event ID",testid:"".concat(o,"-eventId")})),s.createElement(E,{id:t,testid:o}),s.createElement(x.Z,{iconName:"nodes_hollow",iconSize:"20px"},"Instance Values - Node Instances"),s.createElement(r.Flex,{column:!0,gap:2},"agent"!==v&&s.createElement(r.Text,{color:"textDescription"},"A node may be claimed through multiple instances on the cloud (streaming through parent) and Netdata aggregates the alerts from all the instances and displays a single Active alert based on the highest severity, latest change."),s.createElement(U,{lastStatusChangeValue:f,lastStatusChange:g,units:b,status:y,nodeName:_,isHighlighted:!0})),s.createElement(x.Z,{iconName:"gear",iconSize:"20px"},"Edit Alert"),s.createElement(r.Text,{"data-testid":"".concat(o,"-edit-info")},"If you wish to edit and configure this alert, please:"),s.createElement(l,{href:L.UV,target:"_blank",padding:"0 4px 0 0","data-testid":"".concat(o,"-editAlertConfig-link"),"data-ga":"alert-modal::click-edit::alerts-view"},"Visit the documentation",s.createElement(r.Icon,{name:"arrow_left",rotate:2,size:"small",margin:[0,0,-.75,1],color:"success"})))}},50358:function(e,t,n){var s=n(87462),r=n(45987),a=(n(92222),n(67294)),o=n(57509),i=n(45771),c=["loaded","status","units","value","valueWithUnit"],l={critical:{background:"errorSemi",border:{side:"all",color:"error"},color:"error"},warning:{background:"warningSemi",border:{side:"all",color:"warning"},color:"warning"},cleared:{background:"successSemi",border:{side:"all",color:"success"},color:"success"},default:{background:"generic",border:{side:"all",color:"border"},color:"text"}};t.Z=function(e){var t=e.loaded,n=e.status,d=e.units,h=e.value,u=e.valueWithUnit,m=(0,r.Z)(e,c),p=l[n]||l.default,f=p.background,g=p.border,b=p.color,y=(0,a.useMemo)((function(){if(u)return u;if(void 0===h)return"-";var e=(0,i.J)(h);return"".concat(e," ").concat(d||"-")}),[h,u,d]);return a.createElement(o.Flex,(0,s.Z)({background:f,border:g,padding:[.5,2],round:9,width:{min:10},justifyContent:"center"},m),a.createElement(o.TextSmall,{color:b,strong:!0,whiteSpace:"nowrap",truncate:!0},t?y:"-"))}},597:function(e,t,n){n.d(t,{K:function(){return p}});n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942),r=n(29439),a=(n(26699),n(32023),n(92222),n(41539),n(64211),n(2490),n(41874),n(85827),n(25387),n(72608),n(47941),n(21249),n(57640),n(9924),n(57327),n(88449),n(59849),n(4480)),o=n(95248),i=n(37518),c=n(12008);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=function(e){return function(t,n){return!Array.isArray(n)||!n.length||n.includes(t[e])}},u={alertStatuses:h("status"),alertClasses:h("class"),alertRoles:h("recipient"),alertTypeComponents:function(e,t){return!Array.isArray(t)||!t.length||t.includes("".concat(e.type,"|").concat(e.component))},selectedNodeIds:h("nodeId")},m=(0,a.CG)({key:"alertsFiltered",get:function(e){var t=e.extraKey,n=e.roomId,s=e.omit,a=void 0===s?[]:s,i=e.keepAll;return function(e){var s,l=e.get,h=l((0,o.dz)({key:n,extraKey:t})),m=Object.keys(h).reduce((function(e,t){return a.includes(t)||e.push([t,h[t]]),e}),[]),p=l((0,c.E_)(n));if(!a.includes("selectedNodeIds")&&(null===(s=h.selectedNodeIds)||void 0===s||!s.length)){var f=l((0,o.dz)({key:n,param:"selectedNodeIds"}));null!==f&&void 0!==f&&f.length&&m.push(["selectedNodeIds",f])}if(!m.length)return p;var g=function(e){return function(t){return!e.some((function(e){var n=(0,r.Z)(e,2),s=n[0],a=n[1];return!!u[s]&&!u[s](t,a)}))}}(m);return i?p.map((function(e){return g(e)?e:d(d({},e),{},{hidden:!0})})):p.filter(g)}}}),p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.extraKey,n=e.omit,s=void 0===n?[]:n,r=e.keepAll,o=void 0!==r&&r,c=(0,i.UL)();return(0,a.sJ)(m({extraKey:t,roomId:c,omit:s,keepAll:o}))}},25517:function(e,t,n){n.d(t,{ZP:function(){return b},$B:function(){return p},bG:function(){return g}});var s=n(15861),r=n(29439),a=n(93433),o=n(64687),i=n.n(o),c=(n(91058),n(85827),n(41539),n(25387),n(2490),n(72608),n(15581),n(34514),n(54747),n(47941),n(92222),n(2707),n(67294)),l=n(95248),d=n(2077),h=function(e){var t=e.after,n=e.before,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{offset:6e4,limit:Date.now()},r=s.offset,a=function(e,t){var n=t.offset,s=t.limit,r=n/2;return e+r<=s?r:s<e?0:s-e}(n,{offset:r,limit:s.limit});return[t-(r-a),n+a]},u=function(e,t){return e||t?h({after:parseInt(e),before:parseInt(t)},function(e){var t=Date.now();return{limit:t,offset:t-e<6e4?3e4:15e3}}(t)):m},m=[null,null],p=function(){var e=(0,l.by)(),t=e.after,n=e.before,s=e.highlight;if(!s.after||!s.before)return m;if(t<0){var r=Date.now();if(s.before<r+t)return m;if(s.after>r)return m}else{if(s.before<t)return m;if(s.after>n)return m}return[s.after,s.before]},f=function(e,t){if(e<0){var n=Date.now();e=1e3*Math.floor(n/1e3+e),t=1e3*Math.floor(n/1e3)}return{after:e,before:t}},g=function(e,t,n){var o=(0,c.useState)(),h=(0,r.Z)(o,2),m=h[0],g=h[1],b=(0,c.useState)(!1),y=(0,r.Z)(b,2),v=y[0],_=y[1],w=function(){var e=p();return(0,c.useMemo)((function(){return u.apply(void 0,(0,a.Z)(e))}),(0,a.Z)(e))}(),k=(0,r.Z)(w,2),T=k[0],x=k[1],S=(0,l.by)(),C=S.after,P=S.before,M=(0,d.VG)({nodeIds:n,flavour:"rhs"},e,t),q=(0,r.Z)(M,1)[0],I=function(){var e=(0,s.Z)(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=f(C,P),_(!0),e.prev=2,e.next=5,q({flavour:"rhs",highlightAfter:T||t.after,highlightBefore:x||t.before,baselineAfter:T?t.after:null,baselineBefore:x?t.before:null,method:"anomaly-rate",aggregation:"avg",group:"average",nodeIds:n,options:["raw","null2zero"],groupBy:["context"]});case 5:_(!1),e.next=14;break;case 8:if(e.prev=8,e.t0=e.catch(2),!e.t0.isCancel){e.next=12;break}return e.abrupt("return");case 12:g(e.t0),_(!1);case 14:case"end":return e.stop()}}),e,null,[[2,8]])})));return function(){return e.apply(this,arguments)}}();return[I,v,m]},b=function(e,t,n){var s=function(){var e=(0,c.useState)(0),t=(0,r.Z)(e,2),n=t[0],s=t[1];return[n,(0,c.useCallback)((function(){return s((function(e){return e+1}))}),[])]}(),a=(0,r.Z)(s,2),o=a[0],i=a[1],h=(0,c.useState)(),u=(0,r.Z)(h,2),m=u[0],f=u[1],g=p(),b=(0,r.Z)(g,2),y=b[0],v=b[1],_=(0,l.by)(),w=_.after,k=_.before,T=(0,d.d5)({nodeIds:n,flavour:"anomaly"},e,t),x=T.contexts,S=T.metadata,C=T.getWeights,P=T.loading;return(0,c.useEffect)((function(){if(y&&v&&v&&y)try{C({highlightAfter:y,highlightBefore:v,baselineAfter:w,baselineBefore:k,method:"anomaly_rate",aggregation:"avg",group:"average",nodeIds:n,options:["null2zero","anomaly-bit","raw"]})}catch(e){if(e.isCancel)return;f(e)}}),[n.length,v,y,o]),[(0,c.useMemo)((function(){var e=x.reduce((function(e,t){var n=S[t].dimensions;return Object.keys(n).forEach((function(n){return e["".concat(t,"::").concat(n)]=S[t].dimensions[n]})),e}),{});return Object.keys(e).sort((function(t,n){return e[t].score!==e[n].score?e[t].score>e[n].score?-1:1:n.localeCompare(t)}))}),[x]),x,S,P,m,i]}},44109:function(e,t,n){n.d(t,{e:function(){return s}});n(54678);var s=function(e){return function(e){return new Intl.NumberFormat("en-US",{style:"percent",maximumFractionDigits:e})}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:2).format(e)};t.Z=function(e){return e&&"0"!==e?"".concat(parseFloat(e).toFixed(2),"%"):"-"}},12899:function(e,t,n){n.d(t,{R3:function(){return h},Nu:function(){return u},UD:function(){return d}});var s=n(4480),r=n(26398),a=n(74059),o=n(37518),i=(0,s.cn)({key:"assistantAlert",default:null}),c=(0,s.cn)({key:"assistantAlertsAtom",default:[]}),l=(0,s.CG)({key:"assistantSelector",get:function(e){var t=e.space,n=e.room,s=e.alarm,a=e.node,o=e.chart;return function(){return function(e){var t=e.space,n=e.room,s=e.alarm,a=e.node,o=e.chart;return r.Z.post("/api/v1/troubleshoot",{space:t,room:n,alarm:s,node:a,chart:o})}({space:t,room:n,alarm:s,node:a||"dummy-node-id",chart:o||"dummy-chart-id"})}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),d=function(e){var t,n=e.alarm,r=e.node,i=e.chart,c=(0,a.th)(),d=(0,o.UL)(),h=(0,s.$P)(l({space:c,room:d,alarm:n,node:r,chart:i}));return{loaded:"loading"!==h.state,value:null===(t=h.contents)||void 0===t?void 0:t.data,hasError:"hasError"===h.state}},h=function(){return(0,s.FV)(i)},u=function(){return(0,s.FV)(c)}},37394:function(e,t,n){n.d(t,{ak:function(){return i},pk:function(){return c}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var o={loaded:!1,fullyLoaded:!1,loading:!1,id:"",name:"",chartType:"",context:"",family:"",firstEntry:0,lastEntry:0,module:"",plugin:"",priority:0,updateEvery:0,visible:!1,filteredOut:!1,hidden:!1},i=a(a({},o),{},{domain:"room"}),c=a(a({},o),{},{domain:"node"})},41481:function(e,t,n){n.d(t,{KR:function(){return v},T:function(){return y},J1:function(){return g},Np:function(){return _}});var s=n(4942),r=n(29439),a=(n(73210),n(57327),n(41539),n(88449),n(2490),n(59849),n(74916),n(23123),n(85827),n(25387),n(72608),n(64211),n(41874),n(47941),n(26699),n(32023),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),o=n(4480),i=n(89250),c=n(89479),l=n(97945),d=n(37518),h=n(95248),u=(0,o.xu)({key:"chartsFilterValue",default:{filteredChartsIds:[],filteredChartsCount:0,chartsCount:0}});function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=function(){var e=(0,d.UL)(),t=(0,l.pG)();return(0,a.useMemo)((function(){return{roomId:e,nodeId:t}}),[t,e])},g=function(){var e=f();return(0,o.sJ)(u(e))},b=function(){return[(0,d.UL)(),(0,i.UO)().nodeID||"overview"]},y=function(){var e=b(),t=(0,r.Z)(e,2),n=t[0],s=t[1];return(0,h.by)("tocSearch",{key:n,extraKey:s,defaultValue:""})},v=function(){var e=b(),t=(0,r.Z)(e,2),n=t[0],s=t[1];return(0,h.I0)("tocSearch",{key:n,extraKey:s,defaultValue:""})},_=function(e,t,n){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=s.shouldHide,l=void 0===i?function(){return!1}:i,d=s.force,m=void 0!==d&&d,g=s.cacheKey,b=(0,h.by)("after"),v=(0,h.by)("before"),_=y().trim().toLowerCase(),w=(0,c.z3)(n),k=(0,a.useMemo)((function(){var n=0,s=0,r=Date.now()/1e3,a=_.split(/[\s,]+/).filter((function(e){return!!e}));return[e.reduce((function(e,t){if(!e[t])return e;var o=e[t],i=o.firstEntry,c=o.lastEntry,d=o.live,h=!m&&e[t].visible||(b<0?d||r+b<c:!(b>1e3*c||v<1e3*i)),u=!Object.keys(e[t]).some((function(n){var s=e[t][n];return null===a||void 0===a||!a.length||a.some((function(e){return"string"===typeof s&&s.includes(e)}))})),f=l(e[t]);return e[t]=p(p({},e[t]),{},{filteredOut:u,visible:h,hidden:f}),u||!h||f||(n+=1),f||(s+=1),e}),p({},t)),s,n]}),[_,e,b,v,m,g]),T=(0,r.Z)(k,3),x=T[0],S=T[1],C=T[2],P=function(){var e=f();return(0,o.Zl)(u(e))}();return(0,a.useEffect)((function(){w(x),P({filteredChartsCount:C,chartsCount:S})}),[x,S,C,n]),C}},5441:function(e,t,n){n.d(t,{E:function(){return m}});var s=n(29439),r=n(67294),a=n(57509),o=n(82351),i=n(95248),c=n(97945),l=n(37518),d=n(74059),h=n(25517),u=n(70459),m=function(){var e=(0,c.pG)(),t=(0,i.TA)();return(0,r.useMemo)((function(){return e?[e]:t}),[e,t])};t.Z=function(e){return function(t){var n=(0,d.th)(),i=(0,l.UL)(),c=m(),p=(0,u.F)().pause,f=(0,h.bG)(n,i,c),g=(0,s.Z)(f,2),b=g[0],y=g[1];return r.createElement(a.Flex,{alignItems:"center",justifyContent:"between",width:"100%"},r.createElement(o.Z,{content:"Overlay the maximum chart anomaly rate on each menu section.",align:"bottom",activateOn:"hover",isBasic:!0},r.createElement(a.Button,{tiny:!0,label:y?null:"AR%",isLoading:y,flavour:"hollow",onClick:function(){p(),b()},padding:[1,2],textTransform:"uppercase","data-track":"menu-anomaly-rates::click-ar-button"})),r.createElement(a.Flex,{column:!0},r.createElement(e,t)))}}},28989:function(e,t,n){n.d(t,{An:function(){return h},SF:function(){return d},xz:function(){return m},zE:function(){return u}});var s=n(29439),r=n(67294),a=n(44682),o=n(37682),i=(0,a.kr)(""),c=(0,a.kr)(""),l=(0,a.kr)(""),d=function(e){var t=e.menuGroupId,n=void 0===t?"":t,a=e.subMenuId,o=void 0===a?"":a,d=e.children,h=(0,r.useState)(n),u=(0,s.Z)(h,2),m=u[0],p=u[1],f=(0,r.useState)(o),g=(0,s.Z)(f,2),b=g[0],y=g[1],v=(0,r.useMemo)((function(){return{setMenuGroupId:p,setSubMenuId:y}}),[]);return r.createElement(i.Provider,{value:v},r.createElement(c.Provider,{value:m},r.createElement(l.Provider,{value:b},d)))},h=function(){return(0,o.Z)(i)},u=function(e){return t=function(t){return e===t},(0,o.Z)(c,t);var t},m=function(e){return(0,o.Z)(l,e)}},11835:function(e,t,n){n.d(t,{f:function(){return r}});var s=n(71929),r=(0,n(85993).Lj)(s.Z,(function(e){return{children:e.info}}))},56102:function(e,t,n){n.d(t,{Y:function(){return l}});var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=n(85993),c=["name"],l=(0,i.Lj)((function(e){var t=e.name,n=(0,r.Z)(e,c);return"string"===typeof t?a.createElement(o.H3,(0,s.Z)({color:"sectionTitle"},n),t):t||null}),(function(e){return{icon:e.icon,name:e.name}}))},69743:function(e,t,n){n.d(t,{d:function(){return c}});var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=["id"],c=(0,a.forwardRef)((function(e,t){var n=e.id,c=(0,r.Z)(e,i);return a.createElement(o.Flex,(0,s.Z)({column:!0,"data-menuid":n,ref:t},c))}))},12664:function(e,t,n){n.d(t,{o:function(){return l}});var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=n(62525),c=["name"],l=(0,i.Ji)((function(e){var t=e.name,n=(0,r.Z)(e,c);return"string"===typeof t?a.createElement(o.Text,(0,s.Z)({strong:!0,color:"sectionTitle"},n),t):t||null}),(function(e){return{name:e.name}}))},14048:function(e,t,n){n.d(t,{D:function(){return d}});var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=n(62525),c=["id"],l=function(e){return e.link},d=(0,a.forwardRef)((function(e,t){var n=e.id,d=(0,r.Z)(e,c),h=(0,i.Yo)(n,l);return a.createElement(o.Flex,(0,s.Z)({column:!0,gap:2,id:h,"data-submenuid":n,ref:t},d))}))},71824:function(e,t,n){n.d(t,{At:function(){return f},MS:function(){return T},PZ:function(){return _},Q8:function(){return w},mQ:function(){return y},nI:function(){return b},uK:function(){return v},vv:function(){return m},wJ:function(){return k}});var s=n(87462),r=n(45987),a=(n(21249),n(57640),n(9924),n(67294)),o=n(6557),i=n.n(o),c=n(44682),l=n(37682),d=["id"],h=a.createContext({}),u=(0,c.kr)({}),m=(0,c.kr)({}),p=(0,c.kr)([]),f=function(e){var t=e.container,n=e.menuChartsAttributeById,s=e.getChart,r=e.allCharts,o=e.children;return a.createElement(h.Provider,{value:t},a.createElement(u.Provider,{value:s},a.createElement(m.Provider,{value:n},a.createElement(p.Provider,{value:r},o))))},g={},b=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return(0,l.Z)(m,(function(n){return t(n[e]||g)}))},y=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return(0,l.Z)(m,(function(n){return e.map((function(e){return t(n[e]||g,e)}))}))},v=function(){return a.useContext(h)},_=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i();return(0,l.Z)(p,e)},w=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:i())(T()(e))},k=function(e){return function(t){var n=t.id,o=(0,r.Z)(t,d),i=b(n),c=i.chartId,l=w(c);return a.createElement(e,(0,s.Z)({id:n,chart:l,menuChartAttributes:i},o))}},T=function(){return(0,l.Z)(u)}},7592:function(e,t,n){var s=n(88577),r="The amount of traffic transferred by the network interface.",a='The number of packets transferred by the network interface. Received <a href="https://en.wikipedia.org/wiki/Multicast" target="_blank">multicast</a> counter is commonly calculated at the device level (unlike <b>received</b>) and therefore may include packets which did not reach the host.',o="<p>The number of errors encountered by the network interface.</p><p><b>Inbound</b> - bad packets received on this interface. It includes dropped packets due to invalid length, CRC, frame alignment, and other errors. <b>Outbound</b> - transmit problems. It includes frames transmission errors due to loss of carrier, FIFO underrun/underflow, heartbeat, late collisions, and other problems.</p>",i="<p>The number of FIFO errors encountered by the network interface.</p><p><b>Inbound</b> - packets dropped because they did not fit into buffers provided by the host, e.g. packets larger than MTU or next buffer in the ring was not available for a scatter transfer. <b>Outbound</b> - frame transmission errors due to device FIFO underrun/underflow. This condition occurs when the device begins transmission of a frame but is unable to deliver the entire frame to the transmitter in time for transmission.</p>",c='<p>The number of packets that have been dropped at the network interface level.</p><p><b>Inbound</b> - packets received but not processed, e.g. due to <a href="#menu_system_submenu_softnet_stat">softnet backlog</a> overflow, bad/unintended VLAN tags, unknown or unregistered protocols, IPv6 frames when the server is not configured for IPv6. <b>Outbound</b> - packets dropped on their way to transmission, e.g. due to lack of resources.</p>',l="The number of correctly transferred compressed packets by the network interface. These counters are only meaningful for interfaces which support packet compression (e.g. CSLIP, PPP).",d='<p>The number of errors encountered by the network interface.</p><p><b>Frames</b> - aggregated counter for dropped packets due to invalid length, FIFO overflow, CRC, and frame alignment errors. <b>Collisions</b> - <a href="https://en.wikipedia.org/wiki/Collision_(telecommunications)" target="blank">collisions</a> during packet transmissions. <b>Carrier</b> - aggregated counter for frame transmission errors due to excessive collisions, loss of carrier, device FIFO underrun/underflow, Heartbeat/SQE Test errors, and late collisions.</p>',h='<p>The interface\'s latest or current <a href="https://en.wikipedia.org/wiki/Duplex_(telecommunications)" target="_blank">duplex</a> that the network adapter <a href="https://en.wikipedia.org/wiki/Autonegotiation" target="_blank">negotiated</a> with the device it is connected to.</p><p><b>Unknown</b> - the duplex mode can not be determined. <b>Half duplex</b> - the communication is one direction at a time. <b>Full duplex</b> - the interface is able to send and receive data simultaneously.</p>',u='<p>The current <a href="https://datatracker.ietf.org/doc/html/rfc2863" target="_blank">operational state</a> of the interface.</p><p><b>Unknown</b> - the state can not be determined. <b>NotPresent</b> - the interface has missing (typically, hardware) components. <b>Down</b> - the interface is unable to transfer data on L1, e.g. ethernet is not plugged or interface is administratively down. <b>LowerLayerDown</b> - the interface is down due to state of lower-layer interface(s). <b>Testing</b> - the interface is in testing mode, e.g. cable test. It can\u2019t be used for normal traffic until tests complete. <b>Dormant</b> - the interface is L1 up, but waiting for an external event, e.g. for a protocol to establish. <b>Up</b> - the interface is ready to pass packets and can be used.</p>',m="The current physical link state of the interface.",p='The interface\'s latest or current speed that the network adapter <a href="https://en.wikipedia.org/wiki/Autonegotiation" target="_blank">negotiated</a> with the device it is connected to. This does not give the max supported speed of the NIC.',f='The interface\'s currently configured <a href="https://en.wikipedia.org/wiki/Maximum_transmission_unit" target="_blank">Maximum transmission unit</a> (MTU) value. MTU is the size of the largest protocol data unit that can be communicated in a single network layer transaction.',g=' This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a>.',b='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_process_create">application</a>.'+g,y='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a thread is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_thread_create">application</a>.'+g,v='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that responsible for closing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_process_exit">application</a>.'+g,_='Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that responsible for releasing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_task_release">application</a>.'+g,w='Number of errors to create a new <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#task-error" target="_blank">task</a>. Netdata gives a summary for this chart in <a href="#ebpf_system_task_error">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_apps_task_error">application</a>.'+g,k='Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_open">application</a>.'+g,T='Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_error">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_open_error">application</a>.'+g,x='Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_closed">application</a>.'+g,S='Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_error">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_file_close_error">application</a>.'+g,C='Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_hit_ratio">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_hit">application</a>.'+g,P='Number of times a file is accessed inside <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_reference">application</a>.'+g,M='Number of times a file is accessed in the file system, because it is not present inside the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_not_cache">application</a>.'+g,q='Number of times a file was not found on the file system. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_apps_dc_not_found">application</a>.'+g,I='Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write">application</a>.'+g,E='Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read">application</a>.'+g,D='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write_error">application</a>.'+g,L='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read_error">application</a>.'+g,N='Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_write_bytes">application</a>.'+g,O='Total of bytes successfully read using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_read_bytes">application</a>.'+g,R='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_unlink">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_unlink">application</a>.'+g,A='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_sync">application</a>.'+g,F='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_sync_error">application</a>.'+g,U='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_open">application</a>.'+g,B='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_open_error">application</a>.'+g,Z='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_create">application</a>.'+g,j='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_apps_vfs_create_error">application</a>.'+g,z='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">swap reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows swap per <a href="#ebpf_apps_swap_read">application</a>.'+g,V='Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">swap writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows swap per <a href="#ebpf_apps_swap_write">application</a>.'+g,H='The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata gives a summary for this chart in <a href="#menu_mem_submenu_page_cache">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_ratio">application</a>.'+g,Q='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_dirty">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_dirties">application</a>.'+g,G='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_hits">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_apps_cachestat_hits">application</a>.'+g,W='Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_misses">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows page cache misses per <a href="#ebpf_apps_cachestat_misses">application</a>.'+g,K='Number of calls to <b>shmget</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_get">application</a>.'+g,J='Number of calls to <b>shmat</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_at">application</a>.'+g,Y='Number of calls to <b>shmctl</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_ctl">application</a>.'+g,X='Number of calls to <b>shmdt</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_dt">application</a>.'+g,$='Number of calls to IPV4 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_apps_outbound_conn_ipv4">application</a>.'+g,ee='Number of calls to IPV6 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_apps_outbound_conn_ipv6">application</a>.'+g,te='Total bytes sent with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_apps_bandwidth_sent">application</a>.'+g,ne='Total bytes received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_apps_bandwidth_received">application</a>.'+g,se='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_bandwidth_tcp_sent">application</a>.'+g,re='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_bandwidth_tcp_received">application</a>.'+g,ae='Number of times a <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">TCP</a> packet was retransmitted. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_retransmit">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_apps_tcp_retransmit">application</a>.'+g,oe='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_apps_udp_sendmsg">application</a>.'+g,ie='Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_apps_udp_recv">application</a>.'+g,ce="Total CPU utilization within the configured or system-wide (if not set) limits. When the CPU utilization of a cgroup exceeds the limit for the configured period, the tasks belonging to its hierarchy will be throttled and are not allowed to run again until the next period.",le='Total CPU utilization within the system-wide CPU resources (all cores). The amount of time spent by tasks of the cgroup in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel</a> modes.',de="The percentage of runnable periods when tasks in a cgroup have been throttled. The tasks have not been allowed to run because they have exhausted all of the available time as specified by their CPU quota.",he="The total time duration for which tasks in a cgroup have been throttled. When an application has used its allotted CPU quota for a given period, it gets throttled until the next period.",ue="<p>The weight of each group living in the same hierarchy, that translates into the amount of CPU it is expected to get. The percentage of CPU assigned to the cgroup is the value of shares divided by the sum of all shares in all cgroups in the same level.</p> <p>For example, tasks in two cgroups that have <b>cpu.shares</b> set to 100 will receive equal CPU time, but tasks in a cgroup that has <b>cpu.shares</b> set to 200 receive twice the CPU time of tasks in a cgroup where <b>cpu.shares</b> is set to 100.</p>",me="Total CPU utilization per core within the system-wide CPU resources.",pe='CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on CPU. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',fe="The amount of time some processes have been waiting for CPU time.",ge='CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on CPU resource simultaneously. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',be="The amount of time all non-idle processes have been stalled due to CPU congestion.",ye="RAM utilization within the configured or system-wide (if not set) limits. When the RAM utilization of a cgroup exceeds the limit, OOM killer will start killing the tasks belonging to the cgroup.",ve="RAM usage within the configured or system-wide (if not set) limits. When the RAM usage of a cgroup exceeds the limit, OOM killer will start killing the tasks belonging to the cgroup.",_e="The amount of used RAM and swap memory.",we='Memory usage statistics. The individual metrics are described in the memory.stat section for <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html#per-memory-cgroup-local-status" target="_blank">cgroup-v1</a> and <a href="https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory-interface-files" target="_blank">cgroup-v2</a>.',ke="The number of memory usage hits limits.",Te="<b>Dirty</b> is the amount of memory waiting to be written to disk. <b>Writeback</b> is how much memory is actively being written to disk.",xe="<p>Memory accounting statistics.</p><p><b>In</b> - a page is accounted as either mapped anon page (RSS) or cache page (Page Cache) to the cgroup. <b>Out</b> - a page is unaccounted from the cgroup.</p>",Se='<p>Memory <a href="https://en.wikipedia.org/wiki/Page_fault" target="_blank">page fault</a> statistics.</p><p><b>Pgfault</b> - all page faults. <b>Swap</b> - major page faults.</p>',Ce='Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on memory. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Pe="The amount of time some processes have been waiting due to memory congestion.",Me='Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on memory resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',qe="The amount of time all non-idle processes have been stalled due to memory congestion.",Ie="The amount of data transferred to and from specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",Ee="The number of I/O operations performed on specific devices as seen by the CFQ scheduler.",De="The number of requests queued for I/O operations.",Le="The number of BIOS requests merged into requests for I/O operations.",Ne="The amount of data transferred to and from specific devices as seen by the throttling policy.",Oe="The number of I/O operations performed on specific devices as seen by the throttling policy.",Re='I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on I/O. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Ae="The amount of time some processes have been waiting due to I/O congestion.",Fe='I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> line indicates the share of time in which <b>all non-idle tasks</b> are stalled on I/O resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',Ue="The amount of time all non-idle processes have been stalled due to I/O congestion.";t.Z={"system.cpu":{aggregationMethod:"avg",info:function(){return'Total CPU utilization (all cores). 100% here means there is no CPU idle time at all. You can get per core usage at the <a href="#menu_cpu">CPUs</a> section and per application usage at the <a href="#menu_apps">Applications Monitoring</a> section.'},valueRange:[0,100],en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",urlOptions:[],chartLibrary:"gauge",valueRange:[0,100],title:"Average CPU per Node",colors:s.default[0],layout:{x:3.4,y:0,w:2.6,h:5}},{"group_by[0]":["node"],"aggregation[0]":"sum",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by CPU",layout:{x:3.4,y:5,w:2.6,h:5}}]},"system.load":{mainheads:[{"aggregation[0]":"avg",chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hiddenWhen:["system.swap"],hasToolbox:!1,selectedDimensions:["load1"],title:"Average System Load (1 min)",colors:s.default[0],layout:{x:10.3,y:5,w:1.7,h:5}}],aggregationMethod:"avg",info:'Current system load, i.e. the number of processes using CPU or waiting for system resources (usually CPU and disk). The 3 metrics refer to 1, 5 and 15 minute averages. The system calculates this once every 5 seconds. For more information check <a href="https://en.wikipedia.org/wiki/Load_(computing)" target="_blank">this wikipedia article</a>.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["load1"]},"system.cpu_some_pressure":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",selectedDimensions:["some 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average CPU Pressure (10 sec, some)",colors:s.default[0],layout:{x:1.7,y:5,w:1.7,h:5}}],info:'CPU <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on CPU. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.cpu_some_pressure_stall_time":{info:"The amount of time some processes have been waiting for CPU time.",en:{instance:{one:"system",other:"systems"}}},"system.memory_some_pressure":{aggregationMethod:"avg",info:'Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on memory. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.memory_some_pressure_stall_time":{info:"The amount of time some processes have been waiting due to memory congestion.",en:{instance:{one:"system",other:"systems"}}},"system.memory_full_pressure":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",selectedDimensions:["full 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Memory Pressure (10 sec, full)",colors:s.default[0],layout:{x:8.6,y:5,w:1.7,h:5}}],info:'Memory <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> indicates the share of time in which <b>all non-idle tasks</b> are stalled on memory resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.memory_full_pressure_stall_time":{info:"The amount of time all non-idle processes have been stalled due to memory congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io_some_pressure":{aggregationMethod:"avg",info:'I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Some</b> indicates the share of time in which at least <b>some tasks</b> are stalled on I/O. In this state the CPU is still doing productive work. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.io_some_pressure_stall_time":{info:"The amount of time some processes have been waiting due to I/O congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io_full_pressure":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",selectedDimensions:["full 10"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk I/O Pressure (10 sec, full)",colors:s.default[0],layout:{x:0,y:5,w:1.7,h:5}}],info:'I/O <a href="https://www.kernel.org/doc/html/latest/accounting/psi.html" target="_blank">Pressure Stall Information</a>. <b>Full</b> line indicates the share of time in which <b>all non-idle tasks</b> are stalled on I/O resource simultaneously. In this state actual CPU cycles are going to waste, and a workload that spends extended time in this state is considered to be thrashing. This has severe impact on performance. The ratios are tracked as recent trends over 10-, 60-, and 300-second windows.',en:{instance:{one:"system",other:"systems"}}},"system.io_full_pressure_stall_time":{info:"The amount of time all non-idle processes have been stalled due to I/O congestion.",en:{instance:{one:"system",other:"systems"}}},"system.io":{info:function(e){var t='Total Disk I/O, for all physical disks. You can get detailed information about each disk at the <a href="#menu_disk">Disks</a> section and per application Disk usage at the <a href="#menu_apps">Applications Monitoring</a> section.';return"linux"===e.os?t+" Physical are all the disks that are listed in <b>/sys/block</b>, but do not exist in <b>/sys/devices/virtual/block</b>.":t},en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["in"],title:"Total Disk Reads",layout:{x:1.7,y:0,w:1.7,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["out"],title:"Total Disk Writes",layout:{x:0,y:0,w:1.7,h:5}}]},"system.pgpgio":{info:"Memory paged from/to disk. This is usually the total disk I/O of the system.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["in"],title:"Total Pages read from Disk",hiddenWhen:"system.io",layout:{x:1.6,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["out"],title:"Total Pages written to Disk",hiddenWhen:"system.io",layout:{x:1.6,y:0,w:1.6,h:5}}]},"system.swapio":{info:"<p>System swap I/O.</p><b>In</b> - pages the system has swapped in from disk to RAM. <b>Out</b> - pages the system has swapped out from RAM to disk.",en:{instance:{one:"system",other:"systems"}}},"system.pgfaults":{info:'Total page faults. <b>Major page faults</b> indicates that the system is using its swap. You can find which applications use the swap at the <a href="#menu_apps">Applications Monitoring</a> section.',en:{instance:{one:"system",other:"systems"}}},"system.entropy":{aggregationMethod:"min",colors:s.default[5],info:'<a href="https://en.wikipedia.org/wiki/Entropy_(computing)" target="_blank">Entropy</a>, is a pool of random numbers (<a href="https://en.wikipedia.org/wiki//dev/random" target="_blank">/dev/random</a>) that is mainly used in cryptography. If the pool of entropy gets empty, processes requiring random numbers may run a lot slower (it depends on the interface each program uses), waiting for the pool to be replenished. Ideally a system with high entropy demands should have a hardware device for that purpose (TPM is one such device). There are also several software-only options you may install, like <b>haveged</b>, although these are generally useful only in servers.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["entropy"]},"system.clock_sync_state":{info:'<p>The system clock synchronization state as provided by the <a href="https://man7.org/linux/man-pages/man2/adjtimex.2.html" target="_blank">ntp_adjtime()</a> system call. An unsynchronized clock may be the result of synchronization issues by the NTP daemon or a hardware clock fault. It can take several minutes (usually up to 17) before NTP daemon selects a server to synchronize with. <p><b>State map</b>: 0 - not synchronized, 1 - synchronized.</p>',en:{instance:{one:"system",other:"systems"}}},"system.clock_status":{info:'<p>The kernel code can operate in various modes and with various features enabled or disabled, as selected by the <a href="https://man7.org/linux/man-pages/man2/adjtimex.2.html" target="_blank">ntp_adjtime()</a> system call. The system clock status shows the value of the <b>time_status</b> variable in the kernel. The bits of the variable are used to control these functions and record error conditions as they exist.</p><p><b>UNSYNC</b> - set/cleared by the caller to indicate clock unsynchronized (e.g., when no peers are reachable). This flag is usually controlled by an application program, but the operating system may also set it. <b>CLOCKERR</b> - set/cleared by the external hardware clock driver to indicate hardware fault.</p><p><b>Status map</b>: 0 - bit unset, 1 - bit set.</p>',en:{instance:{one:"system",other:"systems"}}},"system.clock_sync_offset":{aggregationMethod:"avg",info:'A typical NTP client regularly polls one or more NTP servers. The client must compute its <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol#Clock_synchronization_algorithm" target="_blank">time offset</a> and round-trip delay. Time offset is the difference in absolute time between the two clocks.',en:{instance:{one:"system",other:"systems"}}},"system.forks":{colors:s.default[6],info:"The number of new processes created.",en:{instance:{one:"system",other:"systems"}}},"system.intr":{colors:s.default[1],info:'Total number of CPU interrupts. Check <b>system.interrupts</b> that gives more detail about each interrupt and also the <a href="#menu_cpu">CPUs</a> section where interrupts are analyzed <a href="#menu_cpu_submenu_interrupts">per CPU core</a>.',en:{instance:{one:"system",other:"systems"}}},"system.interrupts":{info:'CPU interrupts in detail. At the <a href="#menu_cpu">CPUs</a> section, interrupts are analyzed <a href="#menu_cpu_submenu_interrupts">per CPU core</a>. The last column in <b>/proc/interrupts</b> provides an interrupt description or the device name that registered the handler for that interrupt.',en:{instance:{one:"system",other:"systems"}}},"system.hardirq_latency":{aggregationMethod:"avg",info:'Total time spent servicing <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#hard-irq" target="_blank">hardware interrupts</a>. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/hardirqs_example.txt" target="_blank">hardirqs</a> from BCC tools.'+g+'<div id="ebpf_global_hard_irq"></div>',en:{instance:{one:"system",other:"systems"}}},"system.softirqs":{info:'<p>Total number of software interrupts in the system. At the <a href="#menu_cpu">CPUs</a> section, softirqs are analyzed <a href="#menu_cpu_submenu_softirqs">per CPU core</a>.</p><p><b>HI</b> - high priority tasklets. <b>TIMER</b> - tasklets related to timer interrupts. <b>NET_TX</b>, <b>NET_RX</b> - used for network transmit and receive processing. <b>BLOCK</b> - handles block I/O completion events. <b>IRQ_POLL</b> - used by the IO subsystem to increase performance (a NAPI like approach for block devices). <b>TASKLET</b> - handles regular tasklets. <b>SCHED</b> - used by the scheduler to perform load-balancing and other scheduling tasks. <b>HRTIMER</b> - used for high-resolution timers. <b>RCU</b> - performs read-copy-update (RCU) processing.</p>',en:{instance:{one:"system",other:"systems"}}},"system.softnet_stat":{en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["processed"]},"system.softirq_latency":{aggregationMethod:"avg",info:'Total time spent servicing <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#soft-irq" target="_blank">software interrupts</a>. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/softirqs_example.txt" target="_blank">softirqs</a> from BCC tools.'+g+'<div id="ebpf_global_soft_irq"></div>',en:{instance:{one:"system",other:"systems"}}},"system.processes":{info:"<p>System processes.</p><p><b>Running</b> - running or ready to run (runnable). <b>Blocked</b> - currently blocked, waiting for I/O to complete.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["blocked"]},"system.processes_state":{info:"<p>The number of processes in different states. </p> <p><b>Running</b> - Process using the CPU at a particular moment. <b>Sleeping (uninterruptible)</b> - Process will wake when a waited-upon resource becomes available or after a time-out occurs during that wait. Mostly used by device drivers waiting for disk or network I/O. <b>Sleeping (interruptible)</b> - Process is waiting either for a particular time slot or for a particular event to occur. <b>Zombie</b> - Process that has completed its execution, released the system resources, but its entry is not removed from the process table. Usually occurs in child processes when the parent process still needs to read its child\u2019s exit status. A process that stays a zombie for a long time is generally an error and causes system PID space leak. <b>Stopped</b> - Process is suspended from proceeding further due to STOP or TSTP signals. In this state, a process will not do anything (not even terminate) until it receives a CONT signal.</p>",en:{instance:{one:"system",other:"systems"}}},"system.active_processes":{info:"The total number of processes in the system.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["active"]},"system.ctxt":{info:'<a href="https://en.wikipedia.org/wiki/Context_switch" target="_blank">Context Switches</a>, is the switching of the CPU from one process, task or thread to another. If there are many processes or threads willing to execute and very few CPU cores available to handle them, the system is making more context switching to balance the CPU resources among them. The whole process is computationally intensive. The more the context switches, the slower the system gets.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["switches"]},"system.idlejitter":{aggregationMethod:"max",info:"Idle jitter is calculated by netdata. A thread is spawned that requests to sleep for a few microseconds. 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 <b>idle jitter</b>. This number is useful in real-time environments, where CPU jitter can affect the quality of the service (like VoIP media gateways).",en:{instance:{one:"system",other:"systems"}},heatmapType:"default"},"system.net":{info:function(e){var t="Total bandwidth of all physical network interfaces. This does not include <b>lo</b>, VPNs, network bridges, IFB devices, bond interfaces, etc. Only the bandwidth of physical network interfaces is aggregated.";return"linux"===e.os?t+" Physical are all the network interfaces that are listed in <b>/proc/net/dev</b>, but do not exist in <b>/sys/devices/virtual/net</b>.":t},en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Network Inbound",layout:{x:8.6,y:0,w:1.7,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Network Outbound",layout:{x:10.3,y:0,w:1.7,h:5}}]},"system.ip":{info:"Total IP traffic in the system.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IP Traffic In",hiddenWhen:"system.net",layout:{x:7.2,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IP Traffic Out",hiddenWhen:"system.net",layout:{x:8.8,y:0,w:1.6,h:5}}]},"system.ipv4":{info:"Total IPv4 Traffic.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IPv4 Traffic In",hiddenWhen:["system.net","system.ip"],layout:{x:7.2,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IPv4 Traffic Out",hiddenWhen:["system.net","system.ip"],layout:{x:8.8,y:0,w:1.6,h:5}}]},"system.ipv6":{info:"Total IPv6 Traffic.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total IPv6 Traffic In",hiddenWhen:["system.net","system.ip","system.ipv4"],layout:{x:7.2,y:0,w:1.6,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total IPv6 Traffic Out",hiddenWhen:["system.net","system.ip","system.ipv4"],layout:{x:8.8,y:0,w:1.6,h:5}}]},"system.ram":{info:"System Random Access Memory (i.e. physical memory) usage.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"gauge",selectedDimensions:["used","buffers","active","wired"],desiredUnits:"percentage",colors:s.default[10],title:"Average Used RAM per Node",valueRange:[0,100],layout:{x:6,y:0,w:2.6,h:5}},{groupBy:["percentage-of-instance"],"group_by[1]":["node"],urlOptions:["percentage"],selectedDimensions:["used","buffers","active","wired"],desiredUnits:"percentage",valueRange:[0,100],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by Used RAM",layout:{x:6,y:5,w:2.6,h:5}}]},"system.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).",en:{instance:{one:"system",other:"systems"}}},"system.swapcalls":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap" target="_blank">functions</a> used to manipulate swap data. Netdata shows swap metrics per <a href="#ebpf_apps_swap_read">application</a> and <a href="#ebpf_services_swap_read">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_swap"></div>',en:{instance:{one:"system",other:"systems"}}},"system.ipc_semaphores":{info:"Number of allocated System V IPC semaphores. The system-wide limit on the number of semaphores in all semaphore sets is specified in <b>/proc/sys/kernel/sem</b> file (2nd field).",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["semaphores"]},"system.ipc_semaphore_arrays":{info:"Number of used System V IPC semaphore arrays (sets). Semaphores support semaphore sets where each one is a counting semaphore. So when an application requests semaphores, the kernel releases them in sets. The system-wide limit on the maximum number of semaphore sets is specified in <b>/proc/sys/kernel/sem</b> file (4th field).",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_segments":{info:"Number of allocated System V IPC memory segments. The system-wide maximum number of shared memory segments that can be created is specified in <b>/proc/sys/kernel/shmmni</b> file.",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_bytes":{info:"Amount of memory currently used by System V IPC memory segments. The run-time limit on the maximum shared memory segment size that can be created is specified in <b>/proc/sys/kernel/shmmax</b> file.",en:{instance:{one:"system",other:"systems"}}},"system.shared_memory_calls":{info:'Number of calls to syscalls responsible to manipulate <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ipc-shared-memory" target="_blank">shared memories</a>. Netdata shows shared memory metrics per <a href="#ebpf_apps_shm_get">application</a> and <a href="#ebpf_services_shm_get">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_shm"></div>',en:{instance:{one:"system",other:"systems"}}},"system.message_queue_messages":{info:"Number of messages that are currently present in System V IPC message queues.",en:{instance:{one:"system",other:"systems"}}},"system.message_queue_bytes":{info:"Amount of memory currently used by messages in System V IPC message queues.",en:{instance:{one:"system",other:"systems"}}},"system.uptime":{aggregationMethod:"min",info:"The amount of time the system has been running, including time spent in suspend.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["uptime"]},"system.process_thread":{title:"Task creation",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process or thread is called. Netdata shows process metrics per <a href="#ebpf_apps_process_create">application</a> and <a href="#ebpf_services_process_create">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_system_process_thread"></div>',en:{instance:{one:"system",other:"systems"}}},"system.exit":{title:"Exit monitoring",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible to close a process or thread is called. Netdata shows process metrics per <a href="#ebpf_apps_process_exit">application</a> and <a href="#ebpf_services_process_exit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_system_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"system.task_error":{title:"Task error",info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#task-error" target="_blank">a function</a> that starts a process or thread failed. Netdata shows process metrics per <a href="#ebpf_apps_task_error">application</a> and <a href="#ebpf_services_task_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_system_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"system.process_status":{title:"Task status",info:'Difference between the number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">functions</a> that close a task and release a task.'+g,en:{instance:{one:"system",other:"systems"}}},"cpu.cpu":{aggregationMethod:"avg",valueRange:[0,100],en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Utilization",valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Core Utilisation Stats",layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Utilisation",layout:{x:0,y:10,w:3,h:5}}]},"cpu.interrupts":{en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Interrupts",layout:{x:3,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",title:"Top CPU Core Interrupt Types",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Interrupts",layout:{x:3,y:10,w:3,h:5}}]},"cpu.softirqs":{en:{instance:{one:"cpu core",other:"cpu cores"}},mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Softirqs",layout:{x:6,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Core Softirq Types",layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Softirqs",layout:{x:6,y:10,w:3,h:5}}]},"cpu.softnet_stat":{en:{instance:{one:"cpu core",other:"cpu cores"}},dimensionsOnNonDimensionGrouping:["processed"],mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU Core Softnets",layout:{x:9,y:5,w:3,h:5}},{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",title:"Top CPU Core Softnet Stats",layout:{x:9,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top CPU Cores by Softnets",layout:{x:9,y:10,w:3,h:5}}]},"cpu.core_throttling":{en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Max CPU Core Throttling",layout:{x:0,y:5,w:3,h:5}}],info:"The number of adjustments made to the clock speed of the CPU based on it's core temperature."},"cpu.package_throttling":{info:"The number of adjustments made to the clock speed of the CPU based on it's package (chip) temperature.",en:{instance:{one:"system",other:"systems"}}},"cpufreq.cpufreq":{info:"The frequency measures the number of cycles your CPU executes per second.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"cpuidle.cpuidle":{info:"The percentage of time spent in C-states.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"cpuidle.cpu_cstate_residency_time":{aggregationMethod:"avg",en:{instance:{one:"cpu core",other:"cpu cores"}}},"mem.ksm":{info:"<p>Memory pages merging statistics. A high ratio of <b>Sharing</b> to <b>Shared</b> indicates good sharing, but a high ratio of <b>Unshared</b> to <b>Sharing</b> indicates wasted effort.</p><p><b>Shared</b> - used shared pages. <b>Unshared</b> - memory no longer shared (pages are unique but repeatedly checked for merging). <b>Sharing</b> - memory currently shared (how many more sites are sharing the pages, i.e. how much saved). <b>Volatile</b> - volatile pages (changing too fast to be placed in a tree).</p>",en:{instance:{one:"system",other:"systems"}}},"mem.ksm_savings":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Saved",selectedDimensions:["savings"],colors:s.default[0],layout:{x:0,y:5,w:3,h:5}}],info:"<p>The amount of memory saved by KSM.</p><p><b>Savings</b> - saved memory. <b>Offered</b> - memory marked as mergeable.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.ksm_ratios":{aggregationMethod:"avg",heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Savings",desiredUnits:"percentage",colors:s.default[0],valueRange:[0,100],layout:{x:3,y:5,w:3,h:5}}],info:"The effectiveness of KSM. This is the percentage of the mergeable pages that are currently merged.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_usage":{info:"ZRAM total RAM usage metrics. ZRAM uses some memory to store metadata about stored memory pages, thus introducing an overhead which is proportional to disk size. It excludes same-element-filled-pages since no memory is allocated for them.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_savings":{info:"Displays original and compressed memory data sizes.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_ratio":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Compression Ratio",selectedDimensions:["ratio"],colors:s.default[0],valueRange:[0,100],layout:{x:6,y:5,w:3,h:5}}],info:"Compression ratio, calculated as <b>100 * original_size / compressed_size</b>. More means better compression and more RAM savings.",en:{instance:{one:"system",other:"systems"}}},"mem.zram_efficiency":{aggregationMethod:"avg",heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Efficiency",selectedDimensions:["percent"],colors:s.default[0],layout:{x:9,y:5,w:3,h:5}}],valueRange:[0,100],info:"Memory usage efficiency, calculated as <b>100 * compressed_size / total_mem_used</b>.",en:{instance:{one:"system",other:"systems"}}},"mem.pgfaults":{family:"page faults",info:'<p>A <a href="https://en.wikipedia.org/wiki/Page_fault" target="_blank">page fault</a> is a type of interrupt, called trap, raised by computer hardware when a running program accesses a memory page that is mapped into the virtual address space, but not actually loaded into main memory.</p></p><b>Minor</b> - the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory. <b>Major</b> - generated when the system needs to load the memory page from disk or swap memory.</p>',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["major"]},"mem.directmaps":{family:"overview"},"mem.committed":{family:"overview",colors:s.default[3],info:"Committed Memory, is the sum of all memory which has been allocated by processes.",en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Committed Memory",layout:{x:3,y:0,w:3,h:5},colors:s.default[2]},{"group_by[0]":["node"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Nodes by Committed Memory",layout:{x:3,y:5,w:3,h:5}}]},"mem.real":{colors:s.default[3],info:"Total amount of real (physical) memory used.",en:{instance:{one:"system",other:"systems"}}},"mem.oom_kill":{family:"OOM kills",info:'The number of processes killed by <a href="https://en.wikipedia.org/wiki/Out_of_memory" target="_blank">Out of Memory</a> Killer. The kernel\'s OOM killer is summoned when the system runs short of free memory and is unable to proceed without killing one or more processes. It tries to pick the process whose demise will free the most memory while causing the least misery for users of the system. This counter also includes processes within containers that have exceeded the memory limit.',en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Out of Memory Kills",desiredUnits:"Kills/s",colors:s.default[1],layout:{x:9,y:5,w:3,h:5}}]},"mem.numa":{info:"<p>NUMA balancing statistics.</p><p><b>Local</b> - pages successfully allocated on this node, by a process on this node. <b>Foreign</b> - pages initially intended for this node that were allocated to another node instead. <b>Interleave</b> - interleave policy pages successfully allocated to this node. <b>Other</b> - pages allocated on this node, by a process on another node. <b>PteUpdates</b> - base pages that were marked for NUMA hinting faults. <b>HugePteUpdates</b> - transparent huge pages that were marked for NUMA hinting faults. In Combination with <b>pte_updates</b> the total address space that was marked can be calculated. <b>HintFaults</b> - NUMA hinting faults that were trapped. <b>HintFaultsLocal</b> - hinting faults that were to local nodes. In combination with <b>HintFaults</b>, the percentage of local versus remote faults can be calculated. A high percentage of local hinting faults indicates that the workload is closer to being converged. <b>PagesMigrated</b> - pages were migrated because they were misplaced. As migration is a copying operation, it contributes the largest part of the overhead created by NUMA balancing.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.numa_nodes":{en:{instance:{one:"system",other:"systems"}}},"mem.available":{family:"overview",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",chartLibrary:"easypiechart",title:"Total Available Memory",layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["node"],dimensionsSort:"valueAsc",chartLibrary:"bars",title:"Top Nodes by Least Available Memory",layout:{x:0,y:5,w:3,h:5}}],info:function(e){return"freebsd"===e.os?"The amount of memory that can be used by user-space processes without causing swapping. Calculated as the sum of free, cached, and inactive memory.":"Available Memory is estimated by the kernel, as the amount of RAM that can be used by userspace processes, without causing swapping."},en:{instance:{one:"system",other:"systems"}}},"mem.writeback":{family:"writeback",info:"<b>Dirty</b> is the amount of memory waiting to be written to disk. <b>Writeback</b> is how much memory is actively being written to disk.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["Dirty"]},"mem.kernel":{info:"<p>The total amount of memory being used by the kernel.</p><p><b>Slab</b> - used by the kernel to cache data structures for its own use. <b>KernelStack</b> - allocated for each task done by the kernel. <b>PageTables</b> - dedicated to the lowest level of page tables (A page table is used to turn a virtual address into a physical memory address). <b>VmallocUsed</b> - being used as virtual address space. <b>Percpu</b> - allocated to the per-CPU allocator used to back per-CPU allocations (excludes the cost of metadata). When you create a per-CPU variable, each processor on the system gets its own copy of that variable.</p>",en:{instance:{one:"system",other:"systems"}}},"mem.slab":{info:'<p><a href="https://en.wikipedia.org/wiki/Slab_allocation" target="_blank">Slab memory</a> statistics.<p><p><b>Reclaimable</b> - amount of memory which the kernel can reuse. <b>Unreclaimable</b> - can not be reused even when the kernel is lacking memory.</p>',en:{instance:{one:"system",other:"systems"}}},"mem.hugepages":{info:"Dedicated (or Direct) HugePages is memory reserved for applications configured to utilize huge pages. Hugepages are <b>used</b> memory, even if there are free hugepages available.",en:{instance:{one:"system",other:"systems"}}},"mem.transparent_hugepages":{info:"Transparent HugePages (THP) is backing virtual memory with huge pages, supporting automatic promotion and demotion of page sizes. It works for all applications for anonymous memory mappings and tmpfs/shmem.",en:{instance:{one:"system",other:"systems"}}},"mem.hwcorrupt":{info:'The amount of memory with physical corruption problems, identified by <a href="https://en.wikipedia.org/wiki/ECC_memory" target="_blank">ECC</a> and set aside by the kernel so it does not get used.',en:{instance:{one:"system",other:"systems"}}},"mem.edac_mc":{info:"The number of correctable (single-bit) ECC errors. These errors do not affect the normal operation of the system because they are still being corrected. Periodic correctable errors may indicate that one of the memory modules is slowly failing.",en:{instance:{one:"mem controller",other:"mem controllers"}}},"mem.edac_mc_dimm":{info:"The number of uncorrectable (multi-bit) ECC errors. An uncorrectable error is a fatal issue that will typically lead to an OS crash.",en:{instance:{one:"mem module",other:"mem modules"}}},"mem.pagetype_global":{info:"The amount of memory available in blocks of certain size.",en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Page Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0],valueRange:[0,100],layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["node"],chartLibrary:"bars",dimensionsSort:"valueAsc",title:"Top Nodes by Least Cache Hit Ratio",layout:{x:6,y:5,w:3,h:5}}],info:'The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata shows the ratio per <a href="#ebpf_apps_cachestat_ratio">application</a> and <a href="#ebpf_services_cachestat_ratio">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_dirties":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Dirty Pages",desiredUnits:"Pages/s",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the dity page <a href="#ebpf_apps_cachestat_dirties">application</a> and <a href="#ebpf_services_cachestat_dirties">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_cachestat_dirty"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_hits":{aggregationMethod:"avg",info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the hits per <a href="#ebpf_apps_cachestat_hits">application</a> and <a href="#ebpf_services_cachestat_hits">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.cachestat_misses":{aggregationMethod:"avg",info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data that was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata shows the missed access per <a href="#ebpf_apps_cachestat_misses">application</a> and <a href="#ebpf_services_cachestat_misses">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"mem.sync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-system-sync" target="_blank">syscalls</a> that sync filesystem metadata or cached. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.file_sync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-sync" target="_blank">syscalls</a> responsible to transfer modified Linux page cache to disk. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.memory_map":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#memory-map-sync" target="_blank">syscall</a> responsible to the in-core copy of a file that was mapped. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mem.file_segment":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-range-sync" target="_blank">syscall</a> responsible to sync file segments. This chart has a relationship with <a href="#menu_filesystem">File systems</a> and Linux <a href="#menu_mem_submenu_page_cache">Page Cache</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"filesystem.dc_hit_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata shows directory cache metrics per <a href="#ebpf_apps_dc_hit">application</a> and <a href="#ebpf_services_dc_hit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_dc_hit_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.dc_reference":{info:'Counters of file accesses. <b>Reference</b> is when there is a file access and the file is not present in the directory cache. <b>Miss</b> is when there is file access and the file is not found in the filesystem. <b>Slow</b> is when there is a file access and the file is present in the filesystem but not in the directory cache. Netdata shows directory cache metrics per <a href="#ebpf_apps_dc_reference">application</a> and <a href="#ebpf_services_dc_reference">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"md.health":{family:"health",info:"Number of failed devices per MD array. Netdata retrieves this data from the <b>[n/m]</b> field of the md status line. It means that ideally the array would have <b>n</b> devices however, currently, <b>m</b> devices are in use. <b>failed disks</b> is <b>n-m</b>.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.disks":{family:"health",info:"Number of devices in use and in the down state. Netdata retrieves this data from the <b>[n/m]</b> field of the md status line. It means that ideally the array would have <b>n</b> devices however, currently, <b>m</b> devices are in use. <b>inuse</b> is <b>m</b>, <b>down</b> is <b>n-m</b>.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.status":{family:"activity",info:"Completion progress of the ongoing operation.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.expected_time_until_operation_finish":{family:"activity",info:"Estimated time to complete the ongoing operation. The time is only an approximation since the operation speed will vary according to other I/O demands.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.operation_speed":{family:"activity",info:"Speed of the ongoing operation. The system-wide rebuild speed limits are specified in <b>/proc/sys/dev/raid/{speed_limit_min,speed_limit_max}</b> files. These options are good for tweaking rebuilt process and may increase overall system load, cpu and memory usage.",en:{instance:{one:"MD array",other:"MD arrays"}}},"md.mismatch_cnt":{family:"errors",info:'When performing <b>check</b> and <b>repair</b>, and possibly when performing <b>resync</b>, md will count the number of errors that are found. A count of mismatches is recorded in the <b>sysfs</b> file <b>md/mismatch_cnt</b>. This value is the number of sectors that were re-written, or (for <b>check</b>) would have been re-written. It may be larger than the number of actual errors by a factor of the number of sectors in a page. Mismatches can not be interpreted very reliably on RAID1 or RAID10, especially when the device is used for swap. On a truly clean RAID5 or RAID6 array, any mismatches should indicate a hardware problem at some level - software issues should never cause such a mismatch. For details, see <a href="https://man7.org/linux/man-pages/man4/md.4.html" target="_blank">md(4)</a>.',en:{instance:{one:"MD array",other:"MD arrays"}}},"md.flush":{family:"flushes",info:'Number of flush counts per MD array. Based on the eBPF <a href="https://github.com/iovisor/bcc/blob/master/tools/mdflush_example.txt" target="_blank">mdflush</a> from BCC tools.',en:{instance:{one:"MD array",other:"MD arrays"}}},"ip.inerrors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IP Inbound Errors",desiredUnits:"errors",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"<p>The number of errors encountered during the reception of IP packets.</p></p><b>NoRoutes</b> - packets that were dropped because there was no route to send them. <b>Truncated</b> - packets which is being discarded because the datagram frame didn't carry enough data. <b>Checksum</b> - packets that were dropped because they had wrong checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.mcast":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Multicast Traffic Received",layout:{x:9,y:5,w:3,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Multicast Traffic Sent",layout:{x:6,y:5,w:3,h:5},colors:s.default[1]}],info:"Total multicast traffic in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.mcastpkts":{info:"Total transferred multicast packets in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.bcast":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Broadcast Traffic Received",layout:{x:3,y:5,w:3,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Broadcast Traffic Sent",layout:{x:0,y:5,w:3,h:5},colors:s.default[1]}],info:"Total broadcast traffic in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.bcastpkts":{info:"Total transferred broadcast packets in the system.",en:{instance:{one:"system",other:"systems"}}},"ip.ecnpkts":{info:"<p>Total number of received IP packets with ECN bits set in the system.</p><p><b>CEP</b> - congestion encountered. <b>NoECTP</b> - non ECN-capable transport. <b>ECTP0</b> and <b>ECTP1</b> - ECN capable transport.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["NoECTP"]},"ip.inbound_conn":{info:'Number of calls to functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-inbound-connections" target="_blank">receiving connections</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"ip.tcp_outbound_conn":{info:'Number of calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_outbound_conn_ipv4">application</a> and <a href="#ebpf_services_outbound_conn_ipv4">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_outbound_conn"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_functions":{info:'Number of calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth-functions" target="_blank">exchanging data</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_bandwidth_tcp_sent">application</a> and <a href="#ebpf_services_bandwidth_tcp_sent">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_tcp_bandwidth_call"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.total_tcp_bandwidth":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total TCP Bandwidth",desiredUnits:"bps",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:'Total bytes sent and received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP internal functions</a>. Netdata shows TCP bandwidth metrics per <a href="#ebpf_apps_bandwidth_sent">application</a> and <a href="#ebpf_services_bandwidth_sent">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_bandwidth_tcp_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_error":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Errors",desiredUnits:"errors",colors:s.default[2],layout:{x:3,y:0,w:3,h:5}}],info:'Number of failed calls to TCP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP bandwidth</a>. Netdata shows TCP error per <a href="#ebpf_apps_tcp_sendmsg_error">application</a> and <a href="#ebpf_services_tcp_sendmsg_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_tcp_bandwidth_error"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcp_retransmit":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Retransmits",desiredUnits:"retransmits",colors:s.default[3],layout:{x:6,y:0,w:3,h:5}}],info:'Number of times a TCP packet was <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">retransmitted</a>. Netdata shows TCP retransmit per <a href="#ebpf_apps_tcp_retransmit">application</a> and <a href="#ebpf_services_tcp_retransmit">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.udp_functions":{info:'Number of calls to UDP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">exchanging data</a>. Netdata shows TCP outbound connections metrics per <a href="#ebpf_apps_udp_sendmsg">application</a> and <a href="#ebpf_services_udp_sendmsg">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_udp_bandwidth_call"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.total_udp_bandwidth":{heads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total UDP Bandwidth",desiredUnits:"bps",colors:s.default[4],layout:{x:9,y:0,w:3,h:5}}],info:'Total bytes sent and received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-bandwidth" target="_blank">UDP internal functions</a>. Netdata shows UDP bandwidth metrics per <a href="#ebpf_apps_bandwidth_udp_sendmsg">application</a> and <a href="#ebpf_services_bandwidth_udp_sendmsg">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_bandwidth_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.udp_error":{info:'Number of failed calls to UDP functions responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-bandwidth" target="_blank">UDP bandwidth</a>. Netdata shows UDP error per <a href="#ebpf_apps_udp_sendmsg_error">application</a> and <a href="#ebpf_services_udp_sendmsg_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+'<div id="ebpf_global_udp_bandwidth_error"></div>',en:{instance:{one:"system",other:"systems"}}},"ip.tcpreorders":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Reorders",layout:{x:9,y:0,w:3,h:5}}],info:"<p>TCP prevents out-of-order packets by either sequencing them in the correct order or by requesting the retransmission of out-of-order packets.</p><p><b>Timestamp</b> - detected re-ordering using the timestamp option. <b>SACK</b> - detected re-ordering using Selective Acknowledgment algorithm. <b>FACK</b> - detected re-ordering using Forward Acknowledgment algorithm. <b>Reno</b> - detected re-ordering using Fast Retransmit algorithm.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcpofo":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"TCP Out-Of-Order Queue",layout:{x:6,y:0,w:3,h:5}}],info:"<p>TCP maintains an out-of-order queue to keep the out-of-order packets in the TCP communication.</p><p><b>InQueue</b> - the TCP layer receives an out-of-order packet and has enough memory to queue it. <b>Dropped</b> - the TCP layer receives an out-of-order packet but does not have enough memory, so drops it. <b>Merged</b> - the received out-of-order packet has an overlay with the previous packet. The overlay part will be dropped. All these packets will also be counted into <b>InQueue</b>. <b>Pruned</b> - packets dropped from out-of-order queue because of socket buffer overrun.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcpsyncookies":{info:'<p><a href="https://en.wikipedia.org/wiki/SYN_cookies" target="_blank">SYN cookies</a> are used to mitigate SYN flood.</p><p><b>Received</b> - after sending a SYN cookie, it came back to us and passed the check. <b>Sent</b> - an application was not able to accept a connection fast enough, so the kernel could not store an entry in the queue for this connection. Instead of dropping it, it sent a SYN cookie to the client. <b>Failed</b> - the MSS decoded from the SYN cookie is invalid. When this counter is incremented, the received packet won\u2019t be treated as a SYN cookie.</p>',en:{instance:{one:"system",other:"systems"}}},"ip.tcpmemorypressures":{info:"The number of times a socket was put in memory pressure due to a non fatal memory allocation failure (the kernel attempts to work around this situation by reducing the send buffers, etc).",en:{instance:{one:"system",other:"systems"}}},"ip.tcpconnaborts":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"TCP Connection Aborts",desiredUnits:"errors",layout:{x:3,y:0,w:3,h:5}}],info:"<p>TCP connection aborts.</p><p><b>BadData</b> - happens while the connection is on FIN_WAIT1 and the kernel receives a packet with a sequence number beyond the last one for this connection - the kernel responds with RST (closes the connection). <b>UserClosed</b> - happens when the kernel receives data on an already closed connection and responds with RST. <b>NoMemory</b> - happens when there are too many orphaned sockets (not attached to an fd) and the kernel has to drop a connection - sometimes it will send an RST, sometimes it won't. <b>Timeout</b> - happens when a connection times out. <b>Linger</b> - happens when the kernel killed a socket that was already closed by the application and lingered around for long enough. <b>Failed</b> - happens when the kernel attempted to send an RST but failed because there was no memory available.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["timeouts"]},"ip.tcp_syn_queue":{info:"<p>The SYN queue of the kernel tracks TCP handshakes until connections get fully established. It overflows when too many incoming TCP connection requests hang in the half-open state and the server is not configured to fall back to SYN cookies. Overflows are usually caused by SYN flood DoS attacks.</p><p><b>Drops</b> - number of connections dropped because the SYN queue was full and SYN cookies were disabled. <b>Cookies</b> - number of SYN cookies sent because the SYN queue was full.</p>",en:{instance:{one:"system",other:"systems"}}},"ip.tcp_accept_queue":{info:"<p>The accept queue of the kernel holds the fully established TCP connections, waiting to be handled by the listening application.</p><b>Overflows</b> - the number of established connections that could not be handled because the receive queue of the listening application was full. <b>Drops</b> - number of incoming connections that could not be handled, including SYN floods, overflows, out of memory, security issues, no route to destination, reception of related ICMP messages, socket is broadcast or multicast.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["overflows"]},"ipv4.packets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],"aggregation[1]":"sum",chartLibrary:"easypiechart",title:"Total IPv4 Packets",desiredUnits:"Kpps",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 Packets",layout:{x:0,y:5,w:3,h:5}}],info:'<p>IPv4 packets statistics for this host.</p><p><b>Received</b> - packets received by the IP layer. This counter will be increased even if the packet is dropped later. <b>Sent</b> - packets sent via IP layer, for both single cast and multicast packets. This counter does not include any packets counted in <b>Forwarded</b>. <b>Forwarded</b> - input packets for which this host was not their final IP destination, as a result of which an attempt was made to find a route to forward them to that final destination. In hosts which do not act as IP Gateways, this counter will include only those packets which were <a href="https://en.wikipedia.org/wiki/Source_routing" target="_blank">Source-Routed</a> and the Source-Route option processing was successful. <b>Delivered</b> - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.fragsout":{info:'<p><a href="https://en.wikipedia.org/wiki/IPv4#Fragmentation" target="_blank">IPv4 fragmentation</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully fragmented. <b>Failed</b> - packets that have been discarded because they needed to be fragmented but could not be, e.g. due to <i>Don\'t Fragment</i> (DF) flag was set. <b>Created</b> - fragments that have been generated as a result of fragmentation.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.fragsin":{info:'<p><a href="https://en.wikipedia.org/wiki/IPv4#Reassembly" target="_blank">IPv4 reassembly</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully reassembled. <b>Failed</b> - failures detected by the IP reassembly algorithm. This is not necessarily a count of discarded IP fragments since some algorithms can lose track of the number of fragments by combining them as they are received. <b>All</b> - received IP fragments which needed to be reassembled.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv4.errors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv4 Errors",desiredUnits:"packets per second",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 Errors",layout:{x:3,y:5,w:3,h:5}}],info:"<p>The number of discarded IPv4 packets.</p><p><b>InDiscards</b>, <b>OutDiscards</b> - inbound and outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. <b>InHdrErrors</b> - input packets that have been discarded due to errors in their IP headers, including bad checksums, version number mismatch, other format errors, time-to-live exceeded, errors discovered in processing their IP options, etc. <b>OutNoRoutes</b> - packets that have been discarded because no route could be found to transmit them to their destination. This includes any packets which a host cannot route because all of its default gateways are down. <b>InAddrErrors</b> - input packets that have been discarded due to invalid IP address or the destination IP address is not a local address and IP forwarding is not enabled. <b>InUnknownProtos</b> - input packets which were discarded because of an unknown or unsupported protocol.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmp":{aggregationMethod:"sum",info:"<p>The number of transferred IPv4 ICMP messages.</p><p><b>Received</b>, <b>Sent</b> - ICMP messages which the host received and attempted to send. Both these counters include errors.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmp_errors":{info:"<p>The number of IPv4 ICMP errors.</p><p><b>InErrors</b> - received ICMP messages but determined as having ICMP-specific errors, e.g. bad ICMP checksums, bad length, etc. <b>OutErrors</b> - ICMP messages which this host did not send due to problems discovered within ICMP such as a lack of buffers. This counter does not include errors discovered outside the ICMP layer such as the inability of IP to route the resultant datagram. <b>InCsumErrors</b> - received ICMP messages with bad checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.icmpmsg":{info:'The number of transferred <a href="https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml" target="_blank">IPv4 ICMP control messages</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv4.udppackets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv4 UDP Packets",desiredUnits:"Kpps",colors:s.default[4],layout:{x:9,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 UDP Packets",layout:{x:9,y:5,w:3,h:5}}],info:"The number of transferred UDP packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udperrors":{info:"<p>The number of errors encountered during transferring UDP packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udplite":{info:"The number of transferred UDP-Lite packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.udplite_errors":{info:"<p>The number of errors encountered during transferring UDP-Lite packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcppackets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv4 TCP Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{x:6,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv4 TCP Packets",layout:{x:6,y:5,w:3,h:5}}],info:"<p>The number of packets transferred by the TCP layer.</p></p><b>Received</b> - received packets, including those received in error, such as checksum error, invalid TCP header, and so on. <b>Sent</b> - sent packets, excluding the retransmitted packets. But it includes the SYN, ACK, and RST packets.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpsock":{info:"The number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT. This is a snapshot of the established connections at the time of measurement (i.e. a connection established and a connection disconnected within the same iteration will not affect this metric).",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["connections"]},"ipv4.tcpopens":{info:"<p>TCP connection statistics.</p><p><b>Active</b> - number of outgoing TCP connections attempted by this host. <b>Passive</b> - number of incoming TCP connections accepted by this host.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["active"]},"ipv4.tcperrors":{info:"<p>TCP errors.</p><p><b>InErrs</b> - TCP segments received in error (including header too small, checksum errors, sequence errors, bad packets - for both IPv4 and IPv6). <b>InCsumErrors</b> - TCP segments received with checksum errors (for both IPv4 and IPv6). <b>RetransSegs</b> - TCP segments retransmitted.</p>",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["all"]},"ipv4.tcphandshake":{info:"<p>TCP handshake statistics.</p><p><b>EstabResets</b> - established connections resets (i.e. connections that made a direct transition from ESTABLISHED or CLOSE_WAIT to CLOSED). <b>OutRsts</b> - TCP segments sent, with the RST flag set (for both IPv4 and IPv6). <b>AttemptFails</b> - number of times TCP connections made a direct transition from either SYN_SENT or SYN_RECV to CLOSED, plus the number of times TCP connections made a direct transition from the SYN_RECV to LISTEN. <b>SynRetrans</b> - shows retries for new outbound TCP connections, which can indicate general connectivity issues or backlog on the remote host.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_sockets":{info:'The total number of used sockets for all <a href="https://man7.org/linux/man-pages/man7/address_families.7.html" target="_blank">address families</a> in this system.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["used"]},"ipv4.sockstat_tcp_sockets":{info:'<p>The number of TCP sockets in the system in certain <a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Protocol_operation" target="_blank">states</a>.</p><p><b>Alloc</b> - in any TCP state. <b>Orphan</b> - no longer attached to a socket descriptor in any user processes, but for which the kernel is still required to maintain state in order to complete the transport protocol. <b>InUse</b> - in any TCP state, excluding TIME-WAIT and CLOSED. <b>TimeWait</b> - in the TIME-WAIT state.</p>',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["alloc"]},"ipv4.sockstat_tcp_mem":{info:"The amount of memory used by allocated TCP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_udp_sockets":{info:"The number of used UDP sockets.",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv4.sockstat_udp_mem":{info:"The amount of memory used by allocated UDP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_udplite_sockets":{info:"The number of used UDP-Lite sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_raw_sockets":{info:'The number of used <a href="https://en.wikipedia.org/wiki/Network_socket#Types" target="_blank"> raw sockets</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_frag_sockets":{info:"The number of entries in hash tables that are used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"ipv4.sockstat_frag_mem":{info:"The amount of memory used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"ipv6.packets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],"aggregation[1]":"sum",chartLibrary:"easypiechart",title:"Total IPv6 Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{x:0,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 Packets",layout:{x:0,y:5,w:3,h:5}}],info:'<p>IPv6 packet statistics for this host.</p><p><b>Received</b> - packets received by the IP layer. This counter will be increased even if the packet is dropped later. <b>Sent</b> - packets sent via IP layer, for both single cast and multicast packets. This counter does not include any packets counted in <b>Forwarded</b>. <b>Forwarded</b> - input packets for which this host was not their final IP destination, as a result of which an attempt was made to find a route to forward them to that final destination. In hosts which do not act as IP Gateways, this counter will include only those packets which were <a href="https://en.wikipedia.org/wiki/Source_routing" target="_blank">Source-Routed</a> and the Source-Route option processing was successful. <b>Delivers</b> - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.fragsout":{info:'<p><a href="https://en.wikipedia.org/wiki/IP_fragmentation" target="_blank">IPv6 fragmentation</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully fragmented. <b>Failed</b> - packets that have been discarded because they needed to be fragmented but could not be, e.g. due to <i>Don\'t Fragment</i> (DF) flag was set. <b>All</b> - fragments that have been generated as a result of fragmentation.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.fragsin":{info:'<p><a href="https://en.wikipedia.org/wiki/IP_fragmentation" target="_blank">IPv6 reassembly</a> statistics for this system.</p><p><b>OK</b> - packets that have been successfully reassembled. <b>Failed</b> - failures detected by the IP reassembly algorithm. This is not necessarily a count of discarded IP fragments since some algorithms can lose track of the number of fragments by combining them as they are received. <b>Timeout</b> - reassembly timeouts detected. <b>All</b> - received IP fragments which needed to be reassembled.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.errors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv6 Errors",desiredUnits:"Kpps",colors:s.default[3],layout:{x:3,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 Errors",layout:{x:3,y:5,w:3,h:5}}],info:"<p>The number of discarded IPv6 packets.</p><p><b>InDiscards</b>, <b>OutDiscards</b> - packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. <b>InHdrErrors</b> - errors in IP headers, including bad checksums, version number mismatch, other format errors, time-to-live exceeded, etc. <b>InAddrErrors</b> - invalid IP address or the destination IP address is not a local address and IP forwarding is not enabled. <b>InUnknownProtos</b> - unknown or unsupported protocol. <b>InTooBigErrors</b> - the size exceeded the link MTU. <b>InTruncatedPkts</b> - packet frame did not carry enough data. <b>InNoRoutes</b> - no route could be found while forwarding. <b>OutNoRoutes</b> - no route could be found for packets generated by this host.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.udppackets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv6 UDP Packets",desiredUnits:"Kpps",colors:s.default[3],layout:{x:6,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 UDP Packets",layout:{x:6,y:5,w:3,h:5}}],info:"The number of transferred UDP packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udperrors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total IPv6 UDP Errors",desiredUnits:"Kpps",colors:s.default[3],layout:{x:9,y:0,w:3,h:5}},{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"IPv6 UDP Errors",layout:{x:9,y:5,w:3,h:5}}],info:"<p>The number of errors encountered during transferring UDP packets.</p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected. <b>IgnoredMulti</b> - ignored multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udplitepackets":{info:"The number of transferred UDP-Lite packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.udpliteerrors":{info:"<p>The number of errors encountered during transferring UDP-Lite packets.</p><p><b>RcvbufErrors</b> - receive buffer is full. <b>SndbufErrors</b> - send buffer is full, no kernel memory available, or the IP layer reported an error when trying to send the packet and no error queue has been setup. <b>InErrors</b> - that is an aggregated counter for all errors, excluding <b>NoPorts</b>. <b>NoPorts</b> - no application is listening at the destination port. <b>InCsumErrors</b> - a UDP checksum failure is detected.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.mcast":{info:"Total IPv6 multicast traffic.",en:{instance:{one:"system",other:"systems"}}},"ipv6.bcast":{info:"Total IPv6 broadcast traffic.",en:{instance:{one:"system",other:"systems"}}},"ipv6.mcastpkts":{info:"Total transferred IPv6 multicast packets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmp":{aggregationMethod:"sum",info:"<p>The number of transferred ICMPv6 messages.</p><p><b>Received</b>, <b>Sent</b> - ICMP messages which the host received and attempted to send. Both these counters include errors.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpredir":{info:"The number of transferred ICMPv6 Redirect messages. These messages inform a host to update its routing information (to send packets on an alternative route).",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpechos":{info:"The number of ICMPv6 Echo messages.",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmperrors":{info:'<p>The number of ICMPv6 errors and <a href="https://www.rfc-editor.org/rfc/rfc4443.html#section-3" target="_blank">error messages</a>.</p><p><b>InErrors</b>, <b>OutErrors</b> - bad ICMP messages (bad ICMP checksums, bad length, etc.). <b>InCsumErrors</b> - wrong checksum.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.groupmemb":{info:"<p>The number of transferred ICMPv6 Group Membership messages.</p><p> Multicast routers send Group Membership Query messages to learn which groups have members on each of their attached physical networks. Host computers respond by sending a Group Membership Report for each multicast group joined by the host. A host computer can also send a Group Membership Report when it joins a new multicast group. Group Membership Reduction messages are sent when a host computer leaves a multicast group.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.icmprouter":{info:'<p>The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" target="_blank">Router Discovery</a> messages.</p><p>Router <b>Solicitations</b> message is sent from a computer host to any routers on the local area network to request that they advertise their presence on the network. Router <b>Advertisement</b> message is sent by a router on the local area network to announce its IP address as available for routing.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpneighbor":{info:'<p>The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol" target="_blank">Neighbour Discovery</a> messages.</p><p>Neighbor <b>Solicitations</b> are used by nodes to determine the link layer address of a neighbor, or to verify that a neighbor is still reachable via a cached link layer address. Neighbor <b>Advertisements</b> are used by nodes to respond to a Neighbor Solicitation message.</p>',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmpmldv2":{info:'The number of transferred ICMPv6 <a href="https://en.wikipedia.org/wiki/Multicast_Listener_Discovery" target="_blank">Multicast Listener Discovery</a> (MLD) messages.',en:{instance:{one:"system",other:"systems"}}},"ipv6.icmptypes":{info:'The number of transferred ICMPv6 messages of <a href="https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol_for_IPv6#Types" target="_blank">certain types</a>.',en:{instance:{one:"system",other:"systems"}}},"ipv6.ect":{info:"<p>Total number of received IPv6 packets with ECN bits set in the system.</p><p><b>CEP</b> - congestion encountered. <b>NoECTP</b> - non ECN-capable transport. <b>ECTP0</b> and <b>ECTP1</b> - ECN capable transport.</p>",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_tcp_sockets":{info:'The number of TCP sockets in any <a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Protocol_operation" target="_blank">state</a>, excluding TIME-WAIT and CLOSED.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv6.sockstat6_udp_sockets":{info:"The number of used UDP sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_udplite_sockets":{info:"The number of used UDP-Lite sockets.",en:{instance:{one:"system",other:"systems"}}},"ipv6.sockstat6_raw_sockets":{info:'The number of used <a href="https://en.wikipedia.org/wiki/Network_socket#Types" target="_blank"> raw sockets</a>.',en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["inuse"]},"ipv6.sockstat6_frag_sockets":{info:"The number of entries in hash tables that are used for packet reassembly.",en:{instance:{one:"system",other:"systems"}}},"sctp.established":{aggregationMethod:"sum",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"SCTP Associations States",desiredUnits:"connections",colors:s.default[0],layout:{x:4,y:0,w:4,h:5}}],info:"The number of associations for which the current state is either ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING.",en:{instance:{one:"system",other:"systems"}}},"sctp.transitions":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Transitions",desiredUnits:"transitions",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}}],info:"<p>The number of times that associations have made a direct transition between states.</p><p><b>Active</b> - from COOKIE-ECHOED to ESTABLISHED. The upper layer initiated the association attempt. <b>Passive</b> - from CLOSED to ESTABLISHED. The remote endpoint initiated the association attempt. <b>Aborted</b> - from any state to CLOSED using the primitive ABORT. Ungraceful termination of the association. <b>Shutdown</b> - from SHUTDOWN-SENT or SHUTDOWN-ACK-SENT to CLOSED. Graceful termination of the association.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.packets":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Packets",desiredUnits:"packets",colors:s.default[2],layout:{x:2,y:0,w:2,h:5}}],info:"<p>The number of transferred SCTP packets.</p><p><b>Received</b> - includes duplicate packets. <b>Sent</b> - includes retransmitted DATA chunks.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.packet_errors":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Packet Errors",desiredUnits:"errors",colors:s.default[3],layout:{x:8,y:0,w:2,h:5}}],info:"<p>The number of errors encountered during receiving SCTP packets.</p><p><b>Invalid</b> - packets for which the receiver was unable to identify an appropriate association. <b>Checksum</b> - packets with an invalid checksum.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.fragmentation":{aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SCTP Fragmentation",desiredUnits:"fragments",colors:s.default[4],layout:{x:10,y:0,w:2,h:5}}],info:"<p>The number of fragmented and reassembled SCTP messages.</p><p><b>Reassembled</b> - reassembled user messages, after conversion into DATA chunks. <b>Fragmented</b> - user messages that have to be fragmented because of the MTU.</p>",en:{instance:{one:"system",other:"systems"}}},"sctp.chunks":{aggregationMethod:"sum",info:"The number of transferred control, ordered, and unordered DATA chunks. Retransmissions and duplicates are not included.",en:{instance:{one:"system",other:"systems"}}},"netfilter.conntrack_sockets":{info:"The number of entries in the conntrack table.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_new":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Conntrack Connections Status",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"<p>Packet tracking statistics. <b>New</b> (since v4.9) and <b>Ignore</b> (since v5.10) are hardcoded to zeros in the latest kernel.</p><p><b>New</b> - conntrack entries added which were not expected before. <b>Ignore</b> - packets seen which are already connected to a conntrack entry. <b>Invalid</b> - packets seen which can not be tracked.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_changes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Conntrack Changes",desiredUnits:"changes",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"<p>The number of changes in conntrack tables.</p><p><b>Inserted</b>, <b>Deleted</b> - conntrack entries which were inserted or removed. <b>Delete-list</b> - conntrack entries which were put to dying list.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_expect":{info:'<p>The number of events in the "expect" table. Connection tracking expectations are the mechanism used to "expect" RELATED connections to existing ones. An expectation is a connection that is expected to happen in a period of time.</p><p><b>Created</b>, <b>Deleted</b> - conntrack entries which were inserted or removed. <b>New</b> - conntrack entries added after an expectation for them was already present.</p>',en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_search":{info:"<p>Conntrack table lookup statistics.</p><p><b>Searched</b> - conntrack table lookups performed. <b>Restarted</b> - conntrack table lookups which had to be restarted due to hashtable resizes. <b>Found</b> - conntrack table lookups which were successful.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.conntrack_errors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Conntrack Errors",desiredUnits:"errors",colors:s.default[2],layout:{x:6,y:0,w:3,h:5}}],info:"<p>Conntrack errors.</p><p><b>IcmpError</b> - packets which could not be tracked due to error situation. <b>InsertFailed</b> - entries for which list insertion was attempted but failed (happens if the same entry is already present). <b>Drop</b> - packets dropped due to conntrack failure. Either new conntrack entry allocation failed, or protocol helper dropped the packet. <b>EarlyDrop</b> - dropped conntrack entries to make room for new ones, if maximum table size was reached.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_syn_received":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total TCP SYN Received",desiredUnits:"SYNs",colors:s.default[3],layout:{x:9,y:0,w:3,h:5}}],info:"The number of initial TCP SYN packets received from clients.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_conn_reopened":{info:"The number of reopened connections by new TCP SYN packets directly from the TIME-WAIT state.",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"netfilter.synproxy_cookies":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"SYN Proxy Cookie Stats",desiredUnits:"cookies",colors:s.default[4],layout:{x:0,y:5,w:3,h:5}}],info:"<p>SYNPROXY cookie statistics.</p><p><b>Valid</b>, <b>Invalid</b> - result of cookie validation in TCP ACK packets received from clients. <b>Retransmits</b> - TCP SYN packets retransmitted to the server. It happens when the client repeats TCP ACK and the connection to the server is not yet established.</p>",en:{instance:{one:"firewall",other:"firewalls"}},aggregationMethod:"sum"},"apps.cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Application",layout:{x:0,y:0,w:2.4,h:5}}],info:"Total CPU utilization per application.",en:{instance:{one:"system",other:"systems"}}},"groups.cpu":{mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Group",layout:{x:0,y:0,w:2.4,h:5}}],info:"Total CPU utilization (all cores). It includes user, system and guest time.",en:{instance:{one:"system",other:"systems"}}},"users.cpu":{mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per User",layout:{x:0,y:0,w:2.4,h:5}}],info:"Total CPU utilization (all cores). It includes user, system and guest time.",en:{instance:{one:"system",other:"systems"}}},"apps.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"groups.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"users.cpu_user":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"apps.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"groups.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"users.cpu_system":{aggregationMethod:"avg",info:'The amount of time the CPU was busy executing code in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">kernel mode</a> (all cores).',en:{instance:{one:"system",other:"systems"}}},"apps.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"groups.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"users.cpu_guest":{aggregationMethod:"avg",info:"The amount of time spent running a virtual CPU for a guest operating system (all cores).",en:{instance:{one:"system",other:"systems"}}},"apps.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk reads per Application",layout:{x:4.8,y:0,w:2.4,h:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Reads per Group",layout:{x:4.8,y:0,w:2.4,h:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.preads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Reads per User",layout:{x:4.8,y:0,w:2.4,h:5}}],info:"The amount of data that has been read from the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.pwrites":{mainheads:[{chartLibrary:"bars",title:"Total Disk Writes per Application",layout:{x:7.2,y:0,w:2.4,h:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.pwrites":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Writes per Group",layout:{x:7.2,y:0,w:2.4,h:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.pwrites":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Disk Writes per User",layout:{x:7.2,y:0,w:2.4,h:5}}],info:"The amount of data that has been written to the storage layer. Actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"groups.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"users.lreads":{info:"The amount of data that has been read from the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required (the read might have been satisfied from pagecache).",en:{instance:{one:"system",other:"systems"}}},"apps.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"groups.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"users.lwrites":{info:"The amount of data that has been written or shall be written to the storage layer. It includes things such as terminal I/O and is unaffected by whether or not actual physical disk I/O was required.",en:{instance:{one:"system",other:"systems"}}},"apps.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per Application",layout:{x:9.6,y:0,w:2.4,h:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"groups.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per Group",layout:{x:9.6,y:0,w:2.4,h:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"users.files":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Open Files per User",layout:{x:9.6,y:0,w:2.4,h:5}}],info:"The number of open files and directories.",en:{instance:{one:"system",other:"systems"}}},"apps.mem":{info:"Real memory (RAM) used by applications. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"groups.mem":{info:"Real memory (RAM) used per user group. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"users.mem":{info:"Real memory (RAM) used per user. This does not include shared memory.",en:{instance:{one:"system",other:"systems"}}},"apps.rss":{info:"Applications Resident Set Size (RSS).",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Application",layout:{x:2.4,y:0,w:2.4,h:5}}]},"groups.rss":{info:"Applications Resident Set Size (RSS) per user group.",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Group",layout:{x:2.4,y:0,w:2.4,h:5}}]},"users.rss":{info:"Applications Resident Set Size (RSS) per user.",en:{instance:{one:"system",other:"systems"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per User",layout:{x:2.4,y:0,w:2.4,h:5}}]},"apps.vmem":{info:'Virtual memory allocated by applications. Check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"groups.vmem":{info:'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"users.vmem":{info:'Virtual memory allocated per user group since the Netdata restart. Please check <a href="https://github.com/netdata/netdata/tree/master/daemon#virtual-memory" target="_blank">this article</a> for more information.',en:{instance:{one:"system",other:"systems"}}},"apps.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"groups.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"users.minor_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Minor" target="_blank">minor faults</a> which have not required loading a memory page from the disk. Minor page faults occur when a process needs data that is in memory and is assigned to another process. They share memory pages between multiple processes \u2013 no additional data needs to be read from disk to memory.',en:{instance:{one:"system",other:"systems"}}},"apps.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"groups.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"users.threads":{info:'The number of <a href="https://en.wikipedia.org/wiki/Thread_(computing)" target="_blank">threads</a>.',en:{instance:{one:"system",other:"systems"}}},"apps.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"groups.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"users.processes":{info:'The number of <a href="https://en.wikipedia.org/wiki/Process_(computing)" target="_blank">processes</a>.',en:{instance:{one:"system",other:"systems"}}},"apps.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"users.uptime":{aggregationMethod:"min",info:"The period of time within which at least one process in the group has been running.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_min":{info:"The shortest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_avg":{info:"The average uptime of processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"groups.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"users.uptime_max":{info:"The longest uptime among processes in the group.",en:{instance:{one:"system",other:"systems"}}},"apps.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"groups.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"users.pipes":{info:'The number of open <a href="https://en.wikipedia.org/wiki/Anonymous_pipe#Unix" target="_blank">pipes</a>. A pipe is a unidirectional data channel that can be used for interprocess communication.',en:{instance:{one:"system",other:"systems"}}},"apps.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"groups.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"users.swap":{info:"The amount of swapped-out virtual memory by anonymous private pages. This does not include shared swap memory.",en:{instance:{one:"system",other:"systems"}}},"apps.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"groups.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"users.major_faults":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major faults</a> which have required loading a memory page from the disk. Major page faults occur because of the absence of the required page from the RAM. They are expected when a process starts or needs to read in additional data and in these cases do not indicate a problem condition. However, a major page fault can also be the result of reading memory pages that have been written out to the swap file, which could indicate a memory shortage.',en:{instance:{one:"system",other:"systems"}}},"apps.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"groups.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"users.sockets":{info:"The number of open sockets. Sockets are a way to enable inter-process communication between programs running on a server, or between programs running on separate servers. This includes both network and UNIX sockets.",en:{instance:{one:"system",other:"systems"}}},"apps.file_open":{info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_open">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_open"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_open_error":{info:'Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_open_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_closed":{info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_closed">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_closed"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_close_error":{info:'Number of failed calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to close files</a>. Netdata gives a summary for this chart in <a href="#menu_filesystem_submenu_file_access">file access</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_file_close_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_file_close_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.file_deleted":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_unlink">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_unlink">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_write_call":{info:'Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_write"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_write_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_write_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_read_call":{info:'Number of successful calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_read"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_read_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_read_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_write_bytes":{info:'Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_write_bytes">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_write_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_read_bytes":{info:'Total of bytes successfully written using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_io_bytes">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_read_bytes">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_read_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_fsync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_sync">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_fsync_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_sync_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_sync_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_open":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_open">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_open_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_open_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_open_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_create":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_create">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.vfs_create_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_vfs_create_error">Virtual File System</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows virtual file system per <a href="#ebpf_services_vfs_create_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.process_create":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a process is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_process_create">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_process_create"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.thread_create":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#processes" target="_blank">a function</a> that starts a thread is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_thread">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_thread_create">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_thread_create"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.task_exit":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible for closing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_process_exit">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.task_close":{info:'Number of times <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">a function</a> responsible for releasing tasks is called. Netdata gives a summary for this chart in <a href="#ebpf_system_process_exit">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_task_releease">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_task_release"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.task_error":{info:'Number of errors to create a new <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#process-exit" target="_blank">task</a>. Netdata gives a summary for this chart in <a href="#ebpf_system_task_error">Process</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows process per <a href="#ebpf_services_task_error">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.outbound_conn_v4":{info:'Number of calls to IPV4 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_services_outbound_conn_ipv4">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_outbound_conn_ipv4"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.outbound_conn_v6":{info:'Number of calls to IPV6 TCP function responsible for <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-outbound-connections" target="_blank">starting connections</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_outbound_conn">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows outbound connections per <a href="#ebpf_services_outbound_conn_ipv6">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_outbound_conn_ipv6"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.total_bandwidth_sent":{info:'Total bytes sent with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_services_bandwidth_sent">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.total_bandwidth_recv":{info:'Total bytes received with <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> internal functions. Netdata gives a summary for this chart in <a href="#ebpf_global_bandwidth_tcp_bytes">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows bandwidth per <a href="#ebpf_services_bandwidth_received">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_received"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_tcp_send":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_bandwidth_tcp_sent">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_tcp_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_tcp_recv":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-bandwidth" target="_blank">TCP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_bandwidth_tcp_received">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_bandwidth_tcp_received"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_tcp_retransmit":{info:'Number of times a <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#tcp-retransmit" target="_blank">TCP</a> packet was retransmitted. Netdata gives a summary for this chart in <a href="#ebpf_global_tcp_retransmit">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows TCP calls per <a href="#ebpf_services_tcp_retransmit">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_udp_send":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to send data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_services_udp_sendmsg">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.bandwidth_udp_recv":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#udp-functions" target="_blank">UDP</a> functions responsible to receive data. Netdata gives a summary for this chart in <a href="#ebpf_global_udp_bandwidth_call">Network Stack</a>. When the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows UDP calls per <a href="#ebpf_services_udp_recv">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_udp_recv"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_ratio":{aggregationMethod:"avg",info:'The <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-ratio" target="_blank">ratio</a> shows the percentage of data accessed directly in memory. Netdata gives a summary for this chart in <a href="#menu_mem_submenu_page_cache">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_ratio">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_dirties":{info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#dirty-pages" target="_blank">modified pages</a> in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_dirty">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_dirties">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_dirties"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_hits":{info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-hits" target="_blank">access</a> to data in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_hits">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache hit per <a href="#ebpf_services_cachestat_hits">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.cachestat_misses":{info:'Number of <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#page-cache-misses" target="_blank">access</a> to data was not present in <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_cachestat_misses">Memory</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows page cache misses per <a href="#ebpf_services_cachestat_misses">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_hit_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_hit_ratio">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_hit">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_hit"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_reference":{info:'Number of times a file is accessed inside <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_reference">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_not_cache":{info:'Number of times a file is accessed in the file system, because it is not present inside the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#directory-cache" target="_blank">directory cache</a>. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_not_cache">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_not_cache"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.dc_not_found":{info:'Number of times a file was not found on the file system. Netdata gives a summary for this chart in <a href="#ebpf_dc_reference">directory cache</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows directory cache per <a href="#ebpf_services_dc_not_found">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_dc_not_found"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.swap_read_call":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap">swap reader function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows swap metrics per <a href="#ebpf_services_swap_read">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_swap_read"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.swap_write_call":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#swap">swap writer function</a>. Netdata gives a summary for this chart in <a href="#ebpf_global_swap">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows swap metrics per <a href="#ebpf_services_swap_write">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_swap_write"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmget_call":{info:'Number of calls to <b>shmget</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_get">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_get"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmat_call":{info:'Number of calls to <b>shmat</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_at">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_at"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmdt_call":{info:'Number of calls to <b>shmdt</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_dt">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_dt"></div>',en:{instance:{one:"system",other:"systems"}}},"apps.shmctl_call":{info:'Number of calls to <b>shmctl</b>. Netdata gives a summary for this chart in <a href="#ebpf_global_shm">System Overview</a>, and when the integration is <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">enabled</a>, Netdata shows shared memory metrics per <a href="#ebpf_services_shm_ctl">cgroup (systemd Services)</a>.'+g+'<div id="ebpf_apps_shm_ctl"></div>',en:{instance:{one:"system",other:"systems"}}},"tc.qos":{info:"Network Interface traffic per QoS class",family:"traffic",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Traffic per QoS Class",layout:{x:0,y:0,w:6,h:5}}]},"tc.qos_packets":{family:"packets",info:"Network Interface packets per QoS class",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum"},"tc.qos_dropped":{family:"drops",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Packets dropped per QoS Class",layout:{x:6,y:0,w:6,h:5}}],info:"Network Interface packets dropped per QoS class",en:{instance:{one:"interface",other:"interfaces"}},aggregationMethod:"sum"},"tc.qos_tokens":{family:"tokens",info:"Class Tokens.",en:{instance:{one:"interface",other:"interfaces"}}},"tc.qos_ctokens":{family:"tokens",info:"Class cTokens.",en:{instance:{one:"interface",other:"interfaces"}}},"net.net":{family:"traffic",aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],valueRange:[0,null],layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],valueRange:[0,null],layout:{x:3,y:0,w:3,h:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"net.packets":{family:"packets",aggregationMethod:"sum",info:a,en:{instance:{one:"interface",other:"interfaces"}}},"net.errors":{family:"errors",aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{x:6,y:0,w:3,h:5}}],info:o,en:{instance:{one:"interface",other:"interfaces"}}},"net.fifo":{family:"errors",info:i,en:{instance:{one:"interface",other:"interfaces"}}},"net.drops":{family:"drops",aggregationMethod:"sum",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{x:9,y:0,w:3,h:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"net.compressed":{family:"compression",info:l,en:{instance:{one:"interface",other:"interfaces"}}},"net.events":{family:"errors",info:d,en:{instance:{one:"interface",other:"interfaces"}}},"net.duplex":{family:"duplex",info:h,en:{instance:{one:"interface",other:"interfaces"}}},"net.operstate":{family:"state",info:u,en:{instance:{one:"interface",other:"interfaces"}}},"net.carrier":{family:"state",info:m,en:{instance:{one:"interface",other:"interfaces"}}},"net.speed":{family:"speed",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maximum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{x:0,y:5,w:3,h:5}}],info:p,en:{instance:{one:"interface",other:"interfaces"}}},"net.mtu":{family:"mtu",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{x:3,y:5,w:3,h:5}}],info:f,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_net":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],layout:{x:4,y:10,w:2,h:5}},{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],layout:{x:6,y:10,w:2,h:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_packets":{info:a,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_errors":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{x:15,y:0,w:3,h:5}}],info:o,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_fifo":{info:i,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_drops":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{x:9,y:0,w:3,h:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_compressed":{info:l,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_events":{info:d,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_duplex":{info:h,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_operstate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Interface Operational States",layout:{x:10,y:10,w:2,h:5}}],info:u,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_carrier":{info:m,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_speed":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maxinum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{x:0,y:5,w:3,h:5}}],info:p,en:{instance:{one:"interface",other:"interfaces"}}},"cgroup.net_mtu":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",groupingMethod:"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{x:8,y:10,w:2,h:5}}],info:f,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_net":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Inbound",selectedDimensions:["received"],colors:s.default[0],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Outbound",selectedDimensions:["sent"],colors:s.default[1],layout:{x:2,y:0,w:3,h:5}}],info:r,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_packets":{info:a,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_errors":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Errors",desiredUnits:"errors",colors:s.default[1],layout:{x:6,y:0,w:2,h:5}}],info:o,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_fifo":{info:i,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_drops":{heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Drops",desiredUnits:"drops",colors:s.default[2],layout:{x:8,y:0,w:2,h:5}}],info:c,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_compressed":{info:l,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_events":{info:d,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_operstate":{info:u,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_duplex":{info:h,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_carrier":{info:m,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_speed":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maxinum Network Speed",desiredUnits:"Mbps",colors:s.default[3],layout:{x:10,y:5,w:2,h:5}}],info:p,en:{instance:{one:"interface",other:"interfaces"}}},"k8s.cgroup.net_mtu":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"easypiechart",title:"Minimum Network MTU",desiredUnits:"bytes",colors:s.default[4],layout:{x:4,y:0,w:2,h:5}}],info:f,en:{instance:{one:"interface",other:"interfaces"}}},"docker.containers_state":{en:{instance:{one:"system",other:"systems"}}},"docker.container_state":{en:{instance:{one:"container",other:"containers"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Docker Container States",desiredUnits:"containers",layout:{x:0,y:0,w:3,h:5}}]},"docker.container_health_status":{en:{instance:{one:"container",other:"containers"}},mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Docker Container Health Status",desiredUnits:"containers",layout:{x:3,y:0,w:3,h:5}}]},"docker.healthy_containers":{en:{instance:{one:"system",other:"systems"}}},"docker.unhealthy_containers":{en:{instance:{one:"system",other:"systems"}}},"docker.images":{en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,colors:s.default[6],title:"Total Docker Images",desiredUnits:"Images",layout:{x:6,y:0,w:3,h:5}}]},"docker.images_size":{en:{instance:{one:"system",other:"systems"}},mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Images Size",layout:{x:9,y:0,w:3,h:5}}]},"wireless.link_quality":{family:"quality",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Wireless Link Quality"}],info:"Overall quality of the link. May be based on the level of contention or interference, the bit or frame error rate, how good the received signal is, some timing synchronisation, or other hardware metric.",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.signal_level":{family:"signal",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Signal Level"}],info:'Received signal strength (<a href="https://en.wikipedia.org/wiki/Received_signal_strength_indication" target="_blank">RSSI</a>).',en:{instance:{one:"interface",other:"interfaces"}}},"wireless.noise_level":{family:"noise",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Noise Level"}],info:"Background noise level (when no packet is transmitted).",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.discarded_packets":{family:"errors",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Discarded Packets"}],info:"<p>The number of discarded packets.</p></p><b>NWID</b> - received packets with a different NWID or ESSID. Used to detect configuration problems or adjacent network existence (on the same frequency). <b>Crypt</b> - received packets that the hardware was unable to code/encode. This can be used to detect invalid encryption settings. <b>Frag</b> - received packets for which the hardware was not able to properly re-assemble the link layer fragments (most likely one was missing). <b>Retry</b> - packets that the hardware failed to deliver. Most MAC protocols will retry the packet a number of times before giving up. <b>Misc</b> - other packets lost in relation with specific wireless operations.</p>",en:{instance:{one:"interface",other:"interfaces"}}},"wireless.missed_beacons":{family:"errors",info:'The number of periodic <a href="https://en.wikipedia.org/wiki/Beacon_frame" target="_blank">beacons</a> from the Cell or the Access Point have been missed. Beacons are sent at regular intervals to maintain the cell coordination, failure to receive them usually indicates that the card is out of range.',en:{instance:{one:"interface",other:"interfaces"}}},"ib.bytes":{info:"The amount of traffic transferred by the port."},"ib.packets":{info:"The number of packets transferred by the port."},"ib.errors":{info:"The number of errors encountered by the port."},"ib.hwerrors":{info:"The number of hardware errors encountered by the port."},"ib.hwpackets":{info:"The number of hardware packets transferred by the port."},"netfilter.sockets":{en:{instance:{one:"firewall",other:"firewalls"}},colors:s.default[7],heads:[]},"netfilter.new":{en:{instance:{one:"firewall",other:"firewalls"}},heads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"New Connections",selectedDimensions:["new"],colors:s.default[19]}]},"ipvs.sockets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Created Connections",layout:{x:6,y:0,w:4,h:5},colors:s.default[12]}],info:"Total created connections for all services and their servers. To see the IPVS connection table, run <b>ipvsadm -Lnc</b>.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"ipvs.packets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Received Packets",layout:{x:9,y:0,w:2,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Sent Packets",layout:{x:12,y:0,w:2,h:5},colors:s.default[1]}],info:"Total transferred packets for all services and their servers.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"ipvs.net":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Received Bandwidth",layout:{x:0,y:0,w:2,h:5},colors:s.default[2]},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Sent Bandwidth",layout:{x:3,y:0,w:2,h:5},colors:s.default[1]}],info:"Total network traffic for all services and their servers.",en:{instance:{one:"IPVS server",other:"IPVS servers"}}},"disk.util":{family:"utilization",aggregationMethod:"avg",colors:s.default[5],mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"gauge",title:"Utilization",colors:s.default[0],valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Utilization",layout:{x:3,y:5,w:3,h:5}}],info:"Disk Utilization measures the amount of time the disk was busy with something. This is not related to its performance. 100% means that the system always had an outstanding operation on the disk. Keep in mind that depending on the underlying technology of the disk, 100% here may or may not be an indication of congestion.",en:{instance:{one:"disk",other:"disks"}}},"disk.busy":{family:"utilization",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Utilization",colors:s.default[0],valueRange:[0,100],layout:{x:6,y:10,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Busy Time",layout:{x:9,y:10,w:3,h:5}}],colors:s.default[4],info:"Disk Busy Time measures the amount of time the disk was busy with something.",en:{instance:{one:"disk",other:"disks"}}},"disk.backlog":{family:"utilization",aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk Backlog",colors:s.default[12],layout:{x:6,y:5,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Backlog",layout:{x:9,y:5,w:3,h:5}}],colors:s.default[8],info:"Backlog is an indication of the duration of pending disk operations. On every I/O event the system is multiplying the time spent doing I/O since the last update of this field with the number of pending operations. While not accurate, this metric can provide an indication of the expected completion time of the operations in progress.",en:{instance:{one:"disk",other:"disks"}}},"disk.io":{family:"io",info:"The amount of data transferred to and from disk.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.io":{family:"io",info:"The amount of discarded data that are no longer in use by a mounted file system.",en:{instance:{one:"disk",other:"disks"}}},"disk.ops":{family:"iops",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Read IOPS",selectedDimensions:["reads"],colors:s.default[2],layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",selectedDimensions:["reads"],title:"Top Disks by Read IOPS",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Write IOPS",selectedDimensions:["writes"],colors:s.default[1],layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",selectedDimensions:["writes"],title:"Top Disks by Write IOPS",layout:{x:9,y:0,w:3,h:5}}],info:"Completed disk I/O operations. Keep in mind the number of operations requested might be higher, since the system is able to merge adjacent to each other (see merged operations chart).",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.ops":{family:"iops",info:"<p>The number (after merges) of completed discard/flush requests.</p><p><b>Discard</b> commands inform disks which blocks of data are no longer considered to be in use and therefore can be erased internally. They are useful for solid-state drivers (SSDs) and thinly-provisioned storage. Discarding/trimming enables the SSD to handle garbage collection more efficiently, which would otherwise slow future write operations to the involved blocks down.</p><p><b>Flush</b> operations transfer all modified in-core data (i.e., modified buffer cache pages) to the disk device so that all changed information can be retrieved even if the system crashes or is rebooted. Flush requests are executed by disks. Flush requests are not tracked for partitions. Before being merged, flush operations are counted as writes.</p>",en:{instance:{one:"disk",other:"disks"}}},"disk.qops":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Average Disk Current I/O Operations",colors:s.default[12],layout:{x:0,y:10,w:3,h:5}},{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Disks by Current I/O Operations",layout:{x:3,y:10,w:3,h:5}}],info:"I/O operations currently in progress. This metric is a snapshot - it is not an average over the last interval.",en:{instance:{one:"disk",other:"disks"}}},"disk.iotime":{family:"iotime",aggregationMethod:"avg",info:"The sum of the duration of all completed I/O operations. This number can exceed the interval if the disk is able to execute I/O operations in parallel.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.iotime":{family:"iotime",aggregationMethod:"avg",info:"The sum of the duration of all completed discard/flush operations. This number can exceed the interval if the disk is able to execute discard/flush operations in parallel.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk.mops":{family:"iops",info:"The number of merged disk operations. The system is able to merge adjacent I/O operations, for example two 4KB reads can become one 8KB read before given to disk.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk_ext.mops":{family:"iops",info:"The number of merged discard disk operations. Discard operations which are adjacent to each other may be merged for efficiency.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["reads"]},"disk.svctm":{family:"iotime",aggregationMethod:"avg",info:"The average service time for completed I/O operations. This metric is calculated using the total busy time of the disk and the number of completed operations. If the disk is able to execute multiple parallel operations the reporting average service time will be misleading.",en:{instance:{one:"disk",other:"disks"}},dimensionsOnNonDimensionGrouping:["svctm"]},"disk.latency_io":{family:"latency",aggregationMethod:"avg",info:'Disk I/O <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#disk-latency" target="_blank">latency</a> is the time it takes for an I/O request to be completed. Disk chart has a relationship with <a href="#filesystem">Filesystem</a> charts. This chart is based on the <a href="https://github.com/cloudflare/ebpf_exporter/blob/master/examples/bio-tracepoints.yaml" target="_blank">bio_tracepoints</a> tool of the ebpf_exporter.'+g,en:{instance:{one:"disk",other:"disks"}}},"disk.avgsz":{family:"size",info:"The average I/O operation size.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.avgsz":{family:"size",info:"The average discard operation size.",en:{instance:{one:"disk",other:"disks"}}},"disk.await":{family:"iotime",aggregationMethod:"avg",info:"The average time for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.",en:{instance:{one:"disk",other:"disks"}}},"disk_ext.await":{family:"iowait",aggregationMethod:"avg",info:"The average time for discard/flush requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.",en:{instance:{one:"disk",other:"disks"}}},"disk.space":{family:"utilization",mainheads:[{chartLibrary:"d3pie",title:"Disk Space Usage",layout:{x:0,y:0,w:3,h:5}}],info:"Disk space utilization. reserved for root is automatically reserved by the system to prevent the root user from getting out of space.",en:{instance:{one:"mount",other:"mounts"}}},"disk.inodes":{family:"inodes",mainheads:[{chartLibrary:"d3pie",title:"Disk Files Usage",layout:{x:3,y:0,w:3,h:5}}],info:"Inodes (or index nodes) are filesystem objects (e.g. files and directories). On many types of file system implementations, the maximum number of inodes is fixed at filesystem creation, limiting the maximum number of files the filesystem can hold. It is possible for a device to run out of inodes. When this happens, new files cannot be created on the device, even though there may be free space available.",en:{instance:{one:"mount",other:"mounts"}}},"disk.bcache_hit_ratio":{family:"cache",aggregationMethod:"avg",info:"<p><b>Bcache (block cache)</b> is a cache in the block layer of Linux kernel, which is used for accessing secondary storage devices. It allows one or more fast storage devices, such as flash-based solid-state drives (SSDs), to act as a cache for one or more slower storage devices, such as hard disk drives (HDDs).</p><p>Percentage of data requests that were fulfilled right from the block cache. Hits and misses are counted per individual IO as bcache sees them. A partial hit is counted as a miss.</p>",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_rates":{family:"cache",aggregationMethod:"avg",info:"Throttling rates. To avoid congestions bcache tracks latency to the cache device, and gradually throttles traffic if the latency exceeds a threshold. If the writeback percentage is nonzero, bcache tries to keep around this percentage of the cache dirty by throttling background writeback and using a PD controller to smoothly adjust the rate.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_size":{family:"cache",info:"The amount of dirty data for this backing device in the cache.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_usage":{family:"cache",aggregationMethod:"avg",info:"The percentage of cache device which does not contain dirty data, and could potentially be used for writeback.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_cache_read_races":{family:"cache",info:"<b>Read races</b> happen when a bucket was reused and invalidated while data was being read from the cache. When this occurs the data is reread from the backing device. <b>IO errors</b> are decayed by the half life. If the decaying count reaches the limit, dirty data is written out and the cache is disabled.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache":{family:"cache",info:"Hits and misses are counted per individual IO as bcache sees them; a partial hit is counted as a miss. Collisions happen when data was going to be inserted into the cache from a cache miss, but raced with a write and data was already present. Cache miss reads are rounded up to the readahead size, but without overlapping existing cache entries.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_bypass":{family:"cache",info:"Hits and misses for IO that is intended to skip the cache.",en:{instance:{one:"disk",other:"disks"}}},"disk.bcache_cache_alloc":{family:"cache",aggregationMethod:"avg",info:"<p>Working set size.</p><p><b>Unused</b> is the percentage of the cache that does not contain any data. <b>Dirty</b> is the data that is modified in the cache but not yet written to the permanent storage. <b>Clean</b> data matches the data stored on the permanent storage. <b>Metadata</b> is bcache's metadata overhead.</p>",en:{instance:{one:"disk",other:"disks"}}},"nfs.net":{info:"The number of received UDP and TCP packets.",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total received packets"}],en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.rpc":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"RPC Statistics"}],info:"<p>Remote Procedure Call (RPC) statistics.</p></p><b>Calls</b> - all RPC calls. <b>Retransmits</b> - retransmitted calls. <b>AuthRefresh</b> - authentication refresh calls (validating credentials with the server).</p>",en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc2":{info:'NFSv2 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1094#section-2.2" target="_blank">RFC1094</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc3":{info:'NFSv3 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1813#section-3" target="_blank">RFC1813</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfs.proc4":{info:'NFSv4 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS client",other:"NFS clients"}}},"nfsd.readcache":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"NFS Reply Cache Statistics"}],info:"<p>Reply cache statistics. The reply cache keeps track of responses to recently performed non-idempotent transactions, and in case of a replay, the cached response is sent instead of attempting to perform the operation again.</p><b>Hits</b> - client did not receive a reply and re-transmitted its request. This event is undesirable. <b>Misses</b> - an operation that requires caching (idempotent). <b>Nocache</b> - an operation that does not require caching (non-idempotent).",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.filehandles":{info:"<p>File handle statistics. File handles are small pieces of memory that keep track of what file is opened.</p><p><b>Stale</b> - happen when a file handle references a location that has been recycled. This also occurs when the server loses connection and applications are still using files that are no longer accessible.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.io":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"NFS IO Statistics"}],info:"The amount of data transferred to and from disk.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.threads":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"NFS Daemon Threads"}],info:"The number of threads used by the NFS daemon.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.readahead":{info:"<p>Read-ahead cache statistics. NFS read-ahead predictively requests blocks from a file in advance of I/O requests by the application. It is designed to improve client sequential read throughput.</p><p><b>10%</b>-<b>100%</b> - histogram of depth the block was found. This means how far the cached block is from the original block that was first requested. <b>Misses</b> - not found in the read-ahead cache.</p>",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.net":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Network Packets received"}],info:"The number of received UDP and TCP packets.",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.rpc":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"RPC Statistics"}],info:"<p>Remote Procedure Call (RPC) statistics.</p></p><b>Calls</b> - all RPC calls. <b>BadAuth</b> - bad authentication. It does not count if you try to mount from a machine that it's not in your exports file. <b>BadFormat</b> - other errors.</p>",en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc2":{info:'NFSv2 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1094#section-2.2" target="_blank">RFC1094</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc3":{info:'NFSv3 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc1813#section-3" target="_blank">RFC1813</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc4":{info:'NFSv4 RPC calls. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"nfsd.proc4ops":{info:'NFSv4 RPC operations. The individual metrics are described in <a href="https://datatracker.ietf.org/doc/html/rfc8881#section-18" target="_blank">RFC8881</a>.',en:{instance:{one:"NFS server",other:"NFS servers"}}},"zfs.arc_size":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average ZFS ARC Size"}],info:"<p>The size of the ARC.</p><p><b>Arcsz</b> - actual size. <b>Target</b> - target size that the ARC is attempting to maintain (adaptive). <b>Min</b> - minimum size limit. When the ARC is asked to shrink, it will stop shrinking at this value. <b>Max</b> - maximum size limit.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.l2_size":{info:"<p>The size of the L2ARC.</p><p><b>Actual</b> - size of compressed data. <b>Size</b> - size of uncompressed data.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.reads":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Read Requests"}],info:"<p>The number of read requests.</p><p><b>ARC</b> - all prefetch and demand requests. <b>Demand</b> - triggered by an application request. <b>Prefetch</b> - triggered by the prefetch mechanism, not directly from an application request. <b>Metadata</b> - metadata read requests. <b>L2</b> - L2ARC read requests.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.bytes":{info:"The amount of data transferred to and from the L2ARC cache devices.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hits":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Hit Rate of ARC Read Requests"}],info:"<p>Hit rate of the ARC read requests.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.dhits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data and metadata demand read requests. Demand requests are triggered by an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.phits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data and metadata prefetch read requests. Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.mhits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC metadata read requests.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.l2hits":{aggregationMethod:"avg",info:"<p>Hit rate of the L2ARC lookups.</p></p><b>Hits</b> - a data block was in the L2ARC cache and returned. <b>Misses</b> - a data block was not in the L2ARC cache. It will be read from the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.demand_data_hits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data demand read requests. Demand requests are triggered by an application request.</p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.prefetch_data_hits":{aggregationMethod:"avg",info:"<p>Hit rate of the ARC data prefetch read requests. Prefetch requests are triggered by the prefetch mechanism, not directly from an application request.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.list_hits":{info:"MRU (most recently used) and MFU (most frequently used) cache list hits. MRU and MFU lists contain metadata for requested blocks which are cached. Ghost lists contain metadata of the evicted pages on disk.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.arc_size_breakdown":{aggregationMethod:"avg",info:"The size of MRU (most recently used) and MFU (most frequently used) cache.",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.memory_ops":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Memory Operation Statistics"}],info:"<p>Memory operation statistics.</p><p><b>Direct</b> - synchronous memory reclaim. Data is evicted from the ARC and free slabs reaped. <b>Throttled</b> - number of times that ZFS had to limit the ARC growth. A constant increasing of the this value can indicate excessive pressure to evict data from the ARC. <b>Indirect</b> - asynchronous memory reclaim. It reaps free slabs from the ARC cache.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.important_ops":{info:"<p>Eviction and insertion operation statistics.</p><p><b>EvictSkip</b> - skipped data eviction operations. <b>Deleted</b> - old data is evicted (deleted) from the cache. <b>MutexMiss</b> - an attempt to get hash or data block mutex when it is locked during eviction. <b>HashCollisions</b> - occurs when two distinct data block numbers have the same hash value.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.actual_hits":{aggregationMethod:"avg",info:"<p>MRU and MFU cache hit rate.</p><p><b>Hits</b> - a data block was in the ARC DRAM cache and returned. <b>Misses</b> - a data block was not in the ARC DRAM cache. It will be read from the L2ARC cache devices (if available and the data is cached on them) or the pool disks.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hash_elements":{info:"<p>Data Virtual Address (DVA) hash table element statistics.</p><p><b>Current</b> - current number of elements. <b>Max</b> - maximum number of elements seen.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfs.hash_chains":{info:"<p>Data Virtual Address (DVA) hash table chain statistics. A chain is formed when two or more distinct data block numbers have the same hash value.</p><p><b>Current</b> - current number of chains. <b>Max</b> - longest length seen for a chain. If the value is high, performance may degrade as the hash locks are held longer while the chains are walked.</p>",en:{instance:{one:"ZFS system",other:"ZFS systems"}}},"zfspool.state":{info:'ZFS pool state. The overall health of a pool, as reported by <b>zpool status</b>, is determined by the aggregate state of all devices within the pool. For states description, see <a href="https://openzfs.github.io/openzfs-docs/man/7/zpoolconcepts.7.html#Device_Failure_and_Recovery" target="_blank"> ZFS documentation</a>.',en:{instance:{one:"ZFS pool",other:"ZFS pools"}}},"mysql.net":{info:"The amount of data sent to mysql clients (<strong>out</strong>) and received from mysql clients (<strong>in</strong>).",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.queries":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"No. of Slow Queries",selectedDimensions:["slow_queries"],desiredUnits:"queries",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:'The number of statements executed by the server.<ul><li><strong>queries</strong> counts the statements executed within stored SQL programs.</li><li><strong>questions</strong> counts the statements sent to the mysql server by mysql clients.</li><li><strong>slow queries</strong> counts the number of statements that took more than <a href="http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_long_query_time" target="_blank">long_query_time</a> seconds to be executed. For more information about slow queries check the mysql <a href="http://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html" target="_blank">slow query log</a>.</li></ul>',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.handlers":{info:'Usage of the internal handlers of mysql. This chart provides very good insights of what the mysql server is actually doing. (if the chart is not showing all these dimensions it is because they are zero - set <strong>Which dimensions to show?</strong> to <strong>All</strong> from the dashboard settings, to render even the zero values)<ul><li><strong>commit</strong>, the number of internal <a href="http://dev.mysql.com/doc/refman/5.7/en/commit.html" target="_blank">COMMIT</a> statements.</li><li><strong>delete</strong>, the number of times that rows have been deleted from tables.</li><li><strong>prepare</strong>, a counter for the prepare phase of two-phase commit operations.</li><li><strong>read first</strong>, the number of times the first entry in an index was read. A high value suggests that the server is doing a lot of full index scans; e.g. <strong>SELECT col1 FROM foo</strong>, with col1 indexed.</li><li><strong>read key</strong>, the number of requests to read a row based on a key. If this value is high, it is a good indication that your tables are properly indexed for your queries.</li><li><strong>read next</strong>, the number of requests to read the next row in key order. This value is incremented if you are querying an index column with a range constraint or if you are doing an index scan.</li><li><strong>read prev</strong>, the number of requests to read the previous row in key order. This read method is mainly used to optimize <strong>ORDER BY ... DESC</strong>.</li><li><strong>read rnd</strong>, the number of requests to read a row based on a fixed position. A high value indicates you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan entire tables or you have joins that do not use keys properly.</li><li><strong>read rnd next</strong>, the number of requests to read the next row in the data file. This value is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.</li><li><strong>rollback</strong>, the number of requests for a storage engine to perform a rollback operation.</li><li><strong>savepoint</strong>, the number of requests for a storage engine to place a savepoint.</li><li><strong>savepoint rollback</strong>, the number of requests for a storage engine to roll back to a savepoint.</li><li><strong>update</strong>, the number of requests to update a row in a table.</li><li><strong>write</strong>, the number of requests to insert a row in a table.</li></ul>',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.table_locks":{info:"MySQL table locks counters: <ul><li><strong>immediate</strong>, the number of times that a request for a table lock could be granted immediately.</li><li><strong>waited</strong>, the number of times that a request for a table lock could not be granted immediately and a wait was needed. If this is high and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.</li></ul>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_deadlocks":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total No. of Deadlocks",desiredUnits:"deadlocks",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:'A deadlock happens when two or more transactions mutually hold and request for locks, creating a cycle of dependencies. For more information about <a href="https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlocks-handling.html" target="_blank">how to minimize and handle deadlocks</a>.',en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Galera Cluster Status",desiredUnits:"%",colors:s.default[2],layout:{x:6,y:0,w:3,h:5}}],info:"<p>Status of this cluster component.</p><p><b>Primary</b> - primary group configuration, quorum present. <b>Non-Primary</b> - non-primary group configuration, quorum lost. <b>Disconnected</b> - not connected to group, retrying.</p>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_state":{info:"<p>Membership state of this cluster component.</p><p><b>Undefined</b> - undefined state. <b>Joining</b> - the node is attempting to join the cluster. <b>Donor</b> - the node has blocked itself while it sends a State Snapshot Transfer (SST) to bring a new node up to date with the cluster. <b>Joined</b> - the node has successfully joined the cluster. <b>Synced</b> - the node has established a connection with the cluster and synchronized its local databases with those of the cluster. <b>Error</b> - the node is not part of the cluster and does not replicate transactions. This state is provider-specific, check <i>wsrep_local_state_comment</i> variable for a description.</p>",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_weight":{info:"The value is counted as a sum of <b>pc.weight</b> of the nodes in the current Primary Component.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_connected":{info:"<b>0</b> means that the node has not yet connected to any of the cluster components. This may be due to misconfiguration.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.open_transactions":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Open Transactions",desiredUnits:"transactions",colors:s.default[3],layout:{x:9,y:0,w:3,h:5}}],info:"The number of locally running transactions which have been registered inside the wsrep provider. This means transactions which have made operations which have caused write set population to happen. Transactions which are read only are not counted.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.table_open_cache_overflows":{info:"The number of overflows in the table open cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the table open cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.join_issues":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"MySQL Join Operation Issues",desiredUnits:"issues",layout:{x:0,y:5,w:3,h:5}}],info:"The number of issues with joins on the MySQL server. Monitoring this metric can help identify potential performance issues related to joins.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.sort_issues":{info:"The number of issues with sorts on the MySQL server. Monitoring this metric can help identify potential performance issues related to sorting.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.tmp":{info:"The usage of temporary files on the MySQL server. Monitoring this metric can help identify potential performance issues related to temporary files.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.threads_created":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Number of MySQL threads",desiredUnits:"threads",colors:s.default[4],layout:{x:0,y:5,w:3,h:5}}],info:"The number of threads that have been created on the MySQL server. Monitoring this metric can help identify potential performance issues related to thread creation.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.thread_cache_misses":{info:"The number of thread cache misses on the MySQL server. Monitoring this metric can help identify potential performance issues related to the thread cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io":{info:"The I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io_ops":{info:"The number of I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_io_pending_ops":{info:"The number of pending I/O operations on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_log":{info:"The usage of the InnoDB log on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_cur_row_lock":{info:"The number of current row locks on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify potential performance issues related to row locking on the InnoDB storage engine.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_rows":{info:"The number of rows on the InnoDB storage engine on the MySQL server. Monitoring this metric can help identify the usage patterns of the InnoDB storage engine and potential performance issues.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_pages":{info:"The number of pages in the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_pages_flushed":{info:"The number of pages flushed from the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_bytes":{info:"The amount of memory used by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_read_ahead":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"InnoDB Buffer Pool Read Ahead",desiredUnits:"pages/s",colors:s.default[6],layout:{x:6,y:5,w:3,h:5}}],info:"The amount of read ahead performed by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to read ahead on the InnoDB buffer.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_read_ahead_rnd":{info:"The amount of random read ahead performed by the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to random read ahead on the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_buffer_pool_ops":{info:"The number of operations on the InnoDB buffer pool on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB buffer pool.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.innodb_os_log":{info:"The usage of the InnoDB OS log on the MySQL server. Monitoring this metric can help identify potential performance issues related to the InnoDB OS log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.files":{info:"The number of files opened by the MySQL server. Monitoring this metric can help identify potential performance issues related to file opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.files_rate":{info:"The rate of file opening by the MySQL server. Monitoring this metric can help identify potential performance issues related to file opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.opened_tables":{info:"The number of tables opened by the MySQL server. Monitoring this metric can help identify potential performance issues related to table opening.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.process_list_fetch_query_duration":{info:"The duration of queries in the process list on the MySQL server. Monitoring this metric can help identify potential performance issues related to queries in the process list.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.process_list_longest_query_duration":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Longest Query Duration",colors:s.default[7],layout:{x:9,y:5,w:3,h:5}}],info:"The duration of the longest query in the process list on the MySQL server. Monitoring this metric can help identify potential performance issues related to long running queries in the process list.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_ops":{info:"The number of operations on the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache":{info:"The usage of the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_freemem":{info:"The amount of free memory in the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache memory usage.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.qcache_memblocks":{info:"The number of memory blocks in the query cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the query cache memory usage.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_bytes":{info:"The number of bytes in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_queue":{info:"The length of the Galera queue on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_flow_control":{info:"The status of the flow control in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_cluster_size":{info:"The size of the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_ready":{info:"The status of the Galera cluster on the MySQL server, indicating whether it is ready for write sets. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.galera_open_transactions":{info:"The number of open transactions in the Galera cluster on the MySQL server. Monitoring this metric can help identify potential performance issues related to the Galera cluster.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.key_blocks":{info:"The number of blocks in the key cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the key cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.binlog_cache":{info:"The usage of the binary log cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.binlog_stmt_cache":{info:"The usage of the binary log statement cache on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log statement cache.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.slave_behind":{info:"The lag of the slave in the replication on the MySQL server. Monitoring this metric can help identify potential performance issues related to the replication process.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_cpu":{aggregationMethod:"avg",info:"The amount of CPU time used by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to CPU usage by users.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_rows":{info:"The number of rows accessed by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user access to rows.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_commands":{info:"The number of commands executed by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user commands.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_denied_commands":{info:"The number of denied commands for each user on the MySQL server. Monitoring this metric can help identify potential security issues related to user commands.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_binlog_written":{info:"The amount of data written to the binary log by each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to the binary log.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_connections":{info:"The number of connections for each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_lost_connections":{info:"The number of lost connections for each user on the MySQL server. Monitoring this metric can help identify potential performance issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"mysql.userstats_denied_connections":{info:"The number of denied connections for each user on the MySQL server. Monitoring this metric can help identify potential security issues related to user connections.",en:{instance:{one:"MySQL server",other:"MySQL servers"}}},"ping.host_rtt":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Host Latency",layout:{x:6,y:0,w:3,h:5}}],info:"Round-trip time (RTT) is the time it takes for a data packet to reach its destination and return back to its original source.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_std_dev_rtt":{aggregationMethod:"avg",info:"Round-trip time (RTT) standard deviation. The average value of how far each RTT of a ping differs from the average RTT.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_packet_loss":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"gauge",title:"Maximum Host Packet Loss",desiredUnits:"percentage",colors:s.default[1],valueRange:[0,100],layout:{x:9,y:0,w:3,h:5}}],info:"Packet loss occurs when one or more transmitted data packets do not reach their destination. Usually caused by data transfer errors, network congestion or firewall blocking. ICMP echo packets are often treated as lower priority by routers and target hosts, so ping test packet loss may not always translate to application packet loss.",en:{instance:{one:"ping host",other:"ping hosts"}}},"ping.host_packets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Ping Packets Received",colors:s.default[2],valueRange:[0,null],layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Ping Packets Sent",colors:s.default[1],valueRange:[0,null],layout:{x:3,y:0,w:3,h:5}}],info:"Number of ICMP messages sent and received. These counters should be equal if there is no packet loss.",en:{instance:{one:"ping host",other:"ping hosts"}}},"nvme.device_estimated_endurance_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"gauge",title:"Lowest Endurance on device",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[7],layout:{x:0,y:0,w:3,h:5}}],info:"NVM subsystem lifetime used based on the actual usage and the manufacturer's prediction of NVM life. A value of 100 indicates that the estimated endurance of the device has been consumed, but may not indicate a device failure. The value can be greater than 100 if you use the storage beyond its planned lifetime.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_available_spare_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Available Spare Capacity",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[7],layout:{x:3,y:0,w:3,h:5}}],info:"Remaining spare capacity that is available. SSDs provide a set of internal spare capacity, called spare blocks, that can be used to replace blocks that have reached their write operation limit. After all of the spare blocks have been used, the next block that reaches its limit causes the disk to fail.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_composite_temperature":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Maximum device Temperature",desiredUnits:"celcius",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The current composite temperature of the controller and namespace(s) associated with that controller. The manner in which this value is computed is implementation specific and may not represent the actual temperature of any physical point in the NVM subsystem.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_io_transferred_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total IO Transfer per device",desiredUnits:"seconds",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:"The total amount of data read and written by the host.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_power_cycles_count":{info:"Power cycles reflect the number of times this host has been rebooted or the device has been woken up after sleep. A high number of power cycles does not affect the device's life expectancy.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_power_on_time":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Maximum Power On Time",desiredUnits:"seconds",colors:s.default[7],layout:{x:0,y:5,w:3,h:5}}],info:"<a href='https://en.wikipedia.org/wiki/Power-on_hours' target='_blank'>Power-on time</a> is the length of time the device is supplied with power.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_unsafe_shutdowns_count":{info:"The number of times a power outage occurred without a shutdown notification being sent. Depending on the NVMe device you are using, an unsafe shutdown can corrupt user data.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_critical_warnings_state":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Maximum No. of Critical / Warnings",desiredUnits:"seconds",colors:s.default[7],layout:{x:3,y:5,w:3,h:5}}],info:"<p>Critical warnings for the status of the controller. Status active if set to 1.</p><p><b>AvailableSpare</b> - the available spare capacity is below the threshold. <b>TempThreshold</b> - the composite temperature is greater than or equal to an over temperature threshold or less than or equal to an under temperature threshold. <b>NvmSubsystemReliability</b> - the NVM subsystem reliability is degraded due to excessive media or internal errors. <b>ReadOnly</b> - media is placed in read-only mode. <b>VolatileMemBackupFailed</b> - the volatile memory backup device has failed. <b>PersistentMemoryReadOnly</b> - the Persistent Memory Region has become read-only or unreliable.</p>",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_media_errors_rate":{info:"The number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this counter.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_error_log_entries_rate":{info:"The number of entries in the Error Information Log. By itself, an increase in the number of records is not an indicator of any failure condition.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_warning_composite_temperature_time":{info:"The time the device has been operating above the Warning Composite Temperature Threshold (WCTEMP) and below Critical Composite Temperature Threshold (CCTEMP).",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_critical_composite_temperature_time":{info:"The time the device has been operating above the Critical Composite Temperature Threshold (CCTEMP).",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp1_transitions_rate":{info:"The number of times the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>minimizing performance impact</b>, to attempt to lower the Composite Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp2_transitions_rate":{info:"The number of times the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>regardless of the impact on performance (e.g., heavy throttling)</b>, to attempt to lower the Combined Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp1_time":{info:"The amount of time the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>minimizing performance impact</b>, to attempt to lower the Composite Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"nvme.device_thermal_mgmt_temp2_time":{info:"The amount of time the controller has entered lower active power states or performed vendor-specific thermal management actions, <b>regardless of the impact on performance (e.g., heavy throttling)</b>, to attempt to lower the Combined Temperature due to the host-managed thermal management feature.",en:{instance:{one:"NVMe disk",other:"NVMe disks"}},groupBy:["label"],groupByLabel:["device"]},"postfix.qemails":{info:"The <b>qemails</b> metric represents the number of emails currently in the queue in Postfix. This metric should be monitored to ensure that the queue is not growing too large, which can lead to delays in email delivery.",en:{instance:{one:"mail server",other:"mail servers"}}},"postfix.qsize":{info:"The <b>qsize</b> metric represents the total size of emails currently in the queue in Postfix. This metric should be monitored to ensure that the queue is not growing too large, which can lead to delays in email delivery.",en:{instance:{one:"mail server",other:"mail servers"}}},"postgres.connections_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",title:"Average Connections Utilization",desiredUnits:"percentage",colors:s.default[14],layout:{x:0,y:0,w:2.5,h:5}}],info:"<p>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 <i>max_connections</i> parameter (default = 100) defines the maximum number of concurrent connections to the database server. A separate parameter, <i>superuser_reserved_connections</i> (default = 3), defines the quota for superuser connections (so that superusers can connect even if all other connection slots are blocked).</p><p><br></p><p><b>Total connection utilization</b> across all databases. Utilization is measured as a percentage of (<i>max_connections</i> - <i>superuser_reserved_connections</i>). If the utilization is 100% no more new connections will be accepted (superuser connections will still be accepted if superuser quota is available).</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.connections_usage":{info:"<p><b>Connections usage</b> across all databases. The maximum number of concurrent connections to the database server is (<i>max_connections</i> - <i>superuser_reserved_connections</i>). As a general rule, if you need more than 200 connections it is advisable to use connection pooling.</p><p><b>Available</b> - new connections allowed. <b>Used</b> - connections currently in use.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.connections_state_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connection State Count",layout:{x:9,y:0,w:2.5,h:5}}],en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.transactions_duration":{aggregationMethod:"avg",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.queries_duration":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Queries by Duration",layout:{x:0,y:10,w:4.5,h:5}}],info:"Active queries duration histogram. The bins are specified as consecutive, non-overlapping intervals. The value is the number of observed active queries that fall into each interval.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.checkpoints_rate":{info:'<p>Number of checkpoints that have been performed. Checkpoints are periodic maintenance operations the database performs to make sure that everything it\'s been caching in memory has been synchronized with the disk. Ideally checkpoints should be time-driven (scheduled) as opposed to load-driven (requested).</p><p><b>Scheduled</b> - checkpoints triggered as per schedule when time elapsed from the previous checkpoint is greater than <a href="https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-CHECKPOINT-TIMEOUT" target="_blank"><i>checkpoint_timeout</i></a>. <b>Requested</b> - checkpoints triggered due to WAL updates reaching the <a href="https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-MAX-WAL-SIZE" target="_blank"><i>max_wal_size</i></a> before the <i>checkpoint_timeout</i> is reached.</p>',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.checkpoints_time":{info:"<p>Checkpoint timing information. An important indicator of how well checkpoint I/O is performing is the amount of time taken to sync files to disk.</p><p><b>Write</b> - amount of time spent writing files to disk during checkpoint processing. <b>Sync</b> - amount of time spent synchronizing files to disk during checkpoint processing.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_allocated_rate":{info:"Allocated and re-allocated buffers. If a backend process requests data it is either found in a block in shared buffer cache or the block has to be allocated (read from disk). The latter is counted as <b>Allocated</b>.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_io_rate":{info:"<p>Amount of data flushed from memory to disk.</p><p><b>Checkpoint</b> - buffers written during checkpoints. <b>Backend</b> - buffers written directly by a backend. It may happen that a dirty page is requested by a backend process. In this case the page is synced to disk before the page is returned to the client. <b>BgWriter</b> - buffers written by the background writer. PostgreSQL may clear pages with a low usage count in advance. The process scans for dirty pages with a low usage count so that they could be cleared if necessary. Buffers written by this process increment the counter.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.bgwriter_halts_rate":{info:'Number of times the background writer stopped a cleaning scan because it had written too many buffers (exceeding the value of <a href="https://www.postgresql.org/docs/current/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-BACKGROUND-WRITER" target="_blank"><i>bgwriter_lru_maxpages</i></a>).',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.buffers_backend_fsync_rate":{info:"Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write). Any values above zero can indicate problems with storage when fsync queue is completely filled.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_io_rate":{info:"Write-Ahead Logging (WAL) ensures data integrity by ensuring that changes to data files (where tables and indexes reside) are written only after log records describing the changes have been flushed to permanent storage.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_files_count":{info:"<p>Number of WAL logs stored in the directory <i>pg_wal</i> under the data directory.</p><p><b>Written</b> - generated log segments files. <b>Recycled</b> - old log segment files that are no longer needed. Renamed to become future segments in the numbered sequence to avoid the need to create new ones.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.wal_archiving_files_count":{info:'<p>WAL archiving.</p><p><b>Ready</b> - WAL files waiting to be archived. A non-zero value can indicate <i>archive_command</i> is in error, see <a href="https://www.postgresql.org/docs/current/static/continuous-archiving.html" target="_blank">Continuous Archiving and Point-in-Time Recovery</a>. <b>Done</b> - WAL files successfully archived.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.autovacuum_workers_count":{info:'PostgreSQL databases require periodic maintenance known as vacuuming. For many installations, it is sufficient to let vacuuming be performed by the autovacuum daemon. For more information see <a href="https://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM" target="_blank">The Autovacuum Daemon</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_towards_autovacuum_perc":{aggregationMethod:"avg",info:'Percentage towards emergency autovacuum for one or more tables. A forced autovacuum will run once this value reaches 100%. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_perc":{aggregationMethod:"avg",info:'Percentage towards transaction wraparound. A transaction wraparound may occur when this value reaches 100%. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.txid_exhaustion_oldest_txid_num":{info:'The oldest current transaction ID (XID). If for some reason autovacuum fails to clear old XIDs from a table, the system will begin to emit warning messages when the database\'s oldest XIDs reach eleven million transactions from the wraparound point. For more information see <a href="https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND" target="_blank">Preventing Transaction ID Wraparound Failures</a>.',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"dHH:MM:ss",layout:{x:12,y:0,w:2.5,h:1.66}}],info:"The time elapsed since the Postgres process was started.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_app_wal_lag_size":{info:"<p>Replication WAL lag size.</p><p><b>SentLag</b> - sent over the network. <b>WriteLag</b> - written to disk. <b>FlushLag</b> - flushed to disk. <b>ReplayLag</b> - replayed into the database.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_app_wal_lag_time":{info:"<p>Replication WAL lag time.</p><p><b>WriteLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written it, but not yet flushed it or applied it. <b>FlushLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written and flushed it, but not yet applied it. <b>ReplayLag</b> - time elapsed between flushing recent WAL locally and receiving notification that the standby server has written, flushed and applied it.</p>",en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.replication_slot_files_count":{info:'<p>Replication slot files. For more information see <a href="https://www.postgresql.org/docs/current/static/warm-standby.html#STREAMING-REPLICATION-SLOTS" target="_blank">Replication Slots</a>.</p><p><b>WalKeep</b> - WAL files retained by the replication slot. <b>PgReplslotFiles</b> - files present in pg_replslot.</p>',en:{instance:{one:"postgres server",other:"postgres servers"}}},"postgres.db_transactions_ratio":{aggregationMethod:"avg",info:"Percentage of committed/rollback transactions.",en:{instance:{one:"database",other:"databases"}}},"postgres.db_transactions_rate":{info:"<p>Number of transactions that have been performed</p><p><b>Committed</b> - transactions that have been committed. All changes made by the committed transaction become visible to others and are guaranteed to be durable if a crash occurs. <b>Rollback</b> - transactions that have been rolled back. Rollback aborts the current transaction and causes all the updates made by the transaction to be discarded. Single queries that have failed outside the transactions are also accounted as rollbacks.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_connections_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connections Utilization per Database",layout:{x:0,y:5,w:2.5,h:5}}],info:"Connection utilization per database. Utilization is measured as a percentage of <i>CONNECTION LIMIT</i> per database (if set) or <i>max_connections</i> (if <i>CONNECTION LIMIT</i> is not set).",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_connections_count":{info:"Number of current connections per database.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_cache_io_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Cache Miss Ratio",colors:s.default[1],layout:{x:6,y:0,w:2.5,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Cache Miss Ratio per DB",layout:{x:6,y:5,w:2.5,h:5}}],info:'PostgreSQL uses a <b>shared buffer cache</b> to store frequently accessed data in memory, and avoid slower disk reads. If you are seeing performance issues, consider increasing the <a href="https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-SHARED-BUFFERS" target="_blank"><i>shared_buffers</i></a> size or tuning <a href="https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-EFFECTIVE-CACHE-SIZE" target="_blank"><i>effective_cache_size</i></a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_io_rate":{info:"<p>Amount of data read from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_fetched_rows_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,desiredUnits:"percentage",title:"Avg Fetched Row Ratio",colors:s.default[10],layout:{x:3,y:0,w:2,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Fetched Row Ratio per DB",layout:{x:3,y:5,w:2,h:5}}],info:"The percentage of rows that contain data needed to execute the query, out of the total number of rows scanned. A high value indicates that the database is executing queries efficiently, while a low value indicates that the database is performing extra work by scanning a large number of rows that aren't required to process the query. Low values may be caused by missing indexes or inefficient queries.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_read_rows_rate":{info:"<p>Read queries throughput.</p><p><b>Returned</b> - Total number of rows scanned by queries. This value indicates rows returned by the storage layer to be scanned, not rows returned to the client. <b>Fetched</b> - Subset of scanned rows (<b>Returned</b>) that contained data needed to execute the query.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_ops_write_rows_rate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Rows Written per Database",layout:{x:9,y:5,w:2.5,h:5}}],info:"<p>Write queries throughput.</p><p><b>Inserted</b> - number of rows inserted by queries. <b>Deleted</b> - number of rows deleted by queries. <b>Updated</b> - number of rows updated by queries.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_conflicts_rate":{info:'Number of queries canceled due to conflict with recovery on standby servers. To minimize query cancels caused by cleanup records consider configuring <a href="https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-HOT-STANDBY-FEEDBACK" target="_blank"><i>hot_standby_feedback</i></a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_conflicts_reason_rate":{info:"<p>Statistics about queries canceled due to various types of conflicts on standby servers.</p><p><b>Tablespace</b> - queries that have been canceled due to dropped tablespaces. <b>Lock</b> - queries that have been canceled due to lock timeouts. <b>Snapshot</b> - queries that have been canceled due to old snapshots. <b>Bufferpin</b> - queries that have been canceled due to pinned buffers. <b>Deadlock</b> - queries that have been canceled due to deadlocks.</p>",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_deadlocks_rate":{info:"Number of detected deadlocks. When a transaction cannot acquire the requested lock within a certain amount of time (configured by <b>deadlock_timeout</b>), it begins deadlock detection.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_locks_held_count":{info:'Number of held locks. Some of these lock modes are acquired by PostgreSQL automatically before statement execution, while others are provided to be used by applications. All lock modes acquired in a transaction are held for the duration of the transaction. For lock modes details, see <a href="https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES" target="_blank">table-level locks</a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_locks_awaited_count":{info:'Number of awaited locks. It indicates that some transaction is currently waiting to acquire a lock, which implies that some other transaction is holding a conflicting lock mode on the same lockable object. For lock modes details, see <a href="https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES" target="_blank">table-level locks</a>.',en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_temp_files_created_rate":{info:"Number of temporary files created by queries. Complex queries may require more memory than is available (specified by <b>work_mem</b>). When this happens, Postgres reverts to using temporary files - they are actually stored on disk, but only exist for the duration of the request. After the request returns, the temporary files are deleted.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_temp_files_io_rate":{info:"Amount of data written temporarily to disk to execute queries.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.db_size":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["database"],chartLibrary:"bars",title:"Database Sizes",dimensionsSort:"valueDesc",layout:{x:12,y:5,w:2.5,h:5}},{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Database Size",layout:{x:12,y:3.33,w:2.5,h:1.66}}],info:"Actual on-disk usage of the database's data directory and any associated tablespaces.",en:{instance:{one:"database",other:"databases"}},groupBy:["label"],groupByLabel:["database"]},"postgres.databases_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Database count",layout:{x:12,y:1.66,w:2.5,h:1.66}}],info:"Count of databases per PostgreSQL server.",en:{instance:{one:"postgres server",other:"postgres servers"}}},"pgbouncer.client_connections_utilization":{aggregationMethod:"avg",info:"Client connections in use as percentage of <i>max_client_conn</i> (default 100)."},"pgbouncer.db_client_connections":{info:"<p>Client connections in different states.</p><p><b>Active</b> - linked to server connection and can process queries. <b>Waiting</b> - have sent queries but have not yet got a server connection. <b>CancelReq</b> - have not forwarded query cancellations to the server yet.</p>"},"pgbouncer.db_server_connections":{info:"<p>Server connections in different states.</p><p><b>Active</b> - linked to a client. <b>Idle</b> - unused and immediately usable for client queries. <b>Used</b> - have been idle for more than <i>server_check_delay</i>, so they need <i>server_check_query</i> to run on them before they can be used again. <b>Tested</b> - currently running either <i>server_reset_query</i> or <i>server_check_query</i>. <b>Login</b> - currently in the process of logging in.</p>"},"pgbouncer.db_server_connections_utilization":{aggregationMethod:"avg",info:"Server connections in use as percentage of <i>max_db_connections</i> (default 0 - unlimited). This considers the PgBouncer database that the client has connected to, not the PostgreSQL database of the outgoing connection."},"pgbouncer.db_clients_wait_time":{info:"Time spent by clients waiting for a server connection. This shows if the decrease in database performance from the client's point of view was due to exhaustion of the corresponding PgBouncer pool."},"pgbouncer.db_client_max_wait_time":{info:"Waiting time for the first (oldest) client in the queue. If this starts increasing, then the current pool of servers does not handle requests quickly enough."},"pgbouncer.db_transactions":{info:"SQL transactions pooled (proxied) by pgbouncer."},"pgbouncer.db_transactions_time":{info:"Time spent by pgbouncer when connected to PostgreSQL in a transaction, either idle in transaction or executing queries."},"pgbouncer.db_transaction_avg_time":{info:"Average transaction duration."},"pgbouncer.db_queries":{info:"SQL queries pooled (proxied) by pgbouncer."},"pgbouncer.db_queries_time":{info:"Time spent by pgbouncer when actively connected to PostgreSQL, executing queries."},"pgbouncer.db_query_avg_time":{info:"Average query duration."},"pgbouncer.db_network_io":{info:"<p>Network traffic received and sent by pgbouncer.</p><p><b>Received</b> - received from clients. <b>Sent</b> - sent to servers.</p>"},"postgres.table_rows_dead_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Dead Row Ratio",colors:s.default[10],layout:{x:12,y:10,w:2.5,h:5}}],info:"Percentage of dead rows. An increase in dead rows indicates a problem with VACUUM processes, which can slow down your queries.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_rows_count":{info:"<p>Number of rows. When you do an UPDATE or DELETE, the row is not actually physically deleted. For a DELETE, the database simply marks the row as unavailable for future transactions, and for UPDATE, under the hood it is a combined INSERT then DELETE, where the previous version of the row is marked unavailable.</p><p><b>Live</b> - rows that currently in use and can be queried. <b>Dead</b> - deleted rows that will later be reused for new rows from INSERT or UPDATE.</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_rate":{info:"Write queries throughput. If you see a large number of updated and deleted rows, keep an eye on the number of dead rows, as a high percentage of dead rows can slow down your queries.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_hot_ratio":{aggregationMethod:"avg",info:"Percentage of HOT (Heap Only Tuple) updated rows. HOT updates are much more efficient than ordinary updates: less write operations, less WAL writes, vacuum operation has less work to do, increased read efficiency (help to limit table and index bloat).",en:{instance:{one:"table",other:"tables"}}},"postgres.table_ops_rows_hot_rate":{info:"Number of HOT (Heap Only Tuple) updated rows.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_cache_io_ratio":{aggregationMethod:"avg",info:"Table cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_io_rate":{info:"<p>Amount of data read from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_index_cache_io_ratio":{aggregationMethod:"avg",info:"Table indexes cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_index_io_rate":{info:"<p>Amount of data read from all indexes from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_cache_io_ratio":{aggregationMethod:"avg",info:"Table TOAST cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_io_rate":{info:"<p>Amount of data read from TOAST table from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_index_cache_io_ratio":{aggregationMethod:"avg",info:"Table TOAST indexes cache inefficiency. Percentage of data read from disk. Lower is better.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_toast_index_io_rate":{info:"<p>Amount of data read from this table's TOAST table indexes from shared buffer cache or from disk.</p><p><b>Disk</b> - data read from disk. <b>Memory</b> - data read from buffer cache (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache).</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_scans_rate":{info:"<p>Number of scans initiated on this table. If you see that your database regularly performs more sequential scans over time, you can improve its performance by creating an index on data that is frequently accessed.</p><p><b>Index</b> - relying on an index to point to the location of specific rows. <b>Sequential</b> - have to scan through each row of a table sequentially. Typically, take longer than index scans.</p>",en:{instance:{one:"table",other:"tables"}}},"postgres.table_scans_rows_rate":{info:"Number of live rows fetched by scans.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_autovacuum_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was vacuumed by the autovacuum daemon.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_vacuum_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was manually vacuumed (not counting VACUUM FULL).",en:{instance:{one:"table",other:"tables"}}},"postgres.table_autoanalyze_since_time":{aggregationMethod:"min",info:"Time elapsed this table was analyzed by the autovacuum daemon.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_analyze_since_time":{aggregationMethod:"min",info:"Time elapsed since this table was manually analyzed.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_null_columns":{info:"Number of table columns that contain only NULLs.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_total_size":{info:"Actual on-disk size of the table.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_bloat_size_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Table Bloat %",colors:s.default[1],layout:{x:9,y:10,w:2.5,h:5}}],info:"Estimated percentage of bloat in the table. It is normal for tables that are updated frequently to have a small to moderate amount of bloat.",en:{instance:{one:"table",other:"tables"}}},"postgres.table_bloat_size":{info:'Disk space that was used by the table and is available for reuse by the database but has not been reclaimed. Bloated tables require more disk storage and additional I/O that can slow down query execution. Running <a href="https://www.postgresql.org/docs/current/sql-vacuum.html" target="_blank">VACUUM</a> regularly on a table that is updated frequently results in fast reuse of space occupied by expired rows, which prevents the table from growing too large.',en:{instance:{one:"table",other:"tables"}}},"postgres.index_size":{info:"Actual on-disk size of the index.",en:{instance:{one:"index",other:"indexes"}}},"postgres.index_bloat_size_perc":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average Index Bloat %",colors:s.default[1],layout:{x:9,y:10,w:2.5,h:5}}],info:"Estimated percentage of bloat in the index.",en:{instance:{one:"index",other:"indexes"}}},"postgres.index_bloat_size":{info:'Disk space that was used by the index and is available for reuse by the database but has not been reclaimed. Bloat slows down your database and eats up more storage than needed. To recover the space from indexes, recreate them using the <a href="https://www.postgresql.org/docs/current/sql-reindex.html" target="_blank">REINDEX</a> command.',en:{instance:{one:"index",other:"indexes"}}},"postgres.index_usage_status":{info:"An index is considered unused if no scans have been initiated on that index.",en:{instance:{one:"index",other:"indexes"}}},"puppet.jvm_heap":{info:"The <b>jvm_heap</b> metric represents the size of the Java Virtual Machine's heap memory in Puppet. This metric should be monitored to ensure that sufficient memory is allocated for Puppet to operate correctly."},"puppet.jvm_nonheap":{info:"The <b>jvm_nonheap</b> metric represents the size of the Java Virtual Machine's non-heap memory in Puppet. This metric should be monitored to ensure that sufficient memory is allocated for Puppet to operate correctly."},"puppet.cpu":{aggregationMethod:"avg",info:"The <b>cpu</b> metric represents the amount of CPU resources being used by Puppet. This metric should be monitored to ensure that the CPU is not being overutilized and to detect any potential performance issues."},"puppet.fd_open":{info:"The <b>fd_open</b> metric represents the number of open file descriptors in Puppet. This metric should be monitored to ensure that the system is not running out of available file descriptors, which can lead to performance issues."},"redis.ping_latency":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Ping Latency",layout:{x:3,y:0,w:2,h:5}}],info:"The average time it takes from a client request to the server response. High latency could be caused slow commands, over utilized network links or a high backlog in the command queue.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.commands":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Commands",desiredUnits:"Commands",layout:{x:0,y:0,w:2,h:5}}],info:"The Total number of commands processed per second. A significant or unexpected shift in this metric could indicate a problem worth investigating.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.keyspace_lookup_hit_rate":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",valueRange:[0,100],chartLibrary:"gauge",title:"Average Lookup Hit Rate",desiredUnits:"percentage",colors:s.default[0],layout:{x:6,y:0,w:2,h:5}}],info:"Lookup Hitrate = (Keyspace hits / (Keyspace hits + Keyspace misses)) <br> Lower hitrates lead to higher latency, in normal conditions this value should be greater than 80%.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.mem_fragmentation_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",valueRange:[0,100],chartLibrary:"gauge",title:"Max Memory Fragmentation Ratio",desiredUnits:"percentage",colors:s.default[1],layout:{x:9,y:0,w:2,h:5}}],info:"The ratio of memory allocated by the operating system to memory requested by Redis (used_memory_rss/used_memory).",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:12,y:0,w:2,h:2.5}}],en:{instance:{one:"redis server",other:"redis servers"}}},"redis.clients":{mainheads:[{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Connected Clients",layout:{x:12,y:2.5,w:2,h:2.5}}],info:"The current state of clients connecting to or attempting to connect to Redis.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.commands_calls":{info:"Total commands processed per second, by command type. Use this chart to identify most common commands being processed.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.master_last_io_since_time":{aggregationMethod:"min",info:"Time in seconds since the last interaction between replica and primary. A long time interval without communication could indicate a problem on the primary Redis server or on the replica or in the link between them.",en:{instance:{one:"redis server",other:"redis servers"}}},"redis.master_link_down_since_time":{aggregationMethod:"min",info:"Time in seconds since the link between replica and primary went down. This metric is only available when the connection between a primary and its replica has been lost. Any non zero value for this metric is cause for alert.",en:{instance:{one:"redis server",other:"redis servers"}}},"cassandra.client_requests_rate":{info:"Client requests received per second. Consider whether your workload is read-heavy or write-heavy while choosing a compaction strategy."},"cassandra.client_request_read_latency_histogram":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Read latency (99th percentile)",selectedDimensions:["p99"],colors:s.default[12],layout:{x:7.5,y:0,w:2.25,h:5}}],info:"Histogram for read latency, with bins for 50th, 75th, 90th, 95th, 98th, 99th and 99.9th percentile latency values.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_request_write_latency_histogram":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Write latency (99th percentile)",selectedDimensions:["p99"],layout:{x:9.75,y:0,w:2.25,h:5}}],info:"Histogram for write latency, with bins for 50th, 75th, 90th, 95th, 98th, 99th and 99.9th percentile latency values.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_latency":{aggregationMethod:"avg",info:"Total response latency summed over all requests received per second. Latency could be impacted by disk access, network latency or replication configuration.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_hit_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Key Cache Hit Ratio",desiredUnits:"percentage",valueRange:[0,100],colors:s.default[2],layout:{x:4.5,y:0,w:3,h:5}}],info:"Key cache hit ratio indicates the efficiency of the key cache. If ratio is consistently < 80% consider increasing cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_hit_rate":{aggregationMethod:"avg",info:"Key cache hit rate measures the cache hits and misses per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.storage_live_disk_space_used":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Live Disk Space Used",layout:{x:2.25,y:0,w:2.25,h:5}}],info:"Amount of live disk space used. This does not include obsolete data waiting to be garbage collected.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_completed_tasks_rate":{info:"Compaction tasks completed per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_pending_tasks_count":{info:"Total compaction tasks in queue.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_active_tasks_count":{info:"Total tasks currently being processed.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_pending_tasks_count":{info:"Total tasks in queue awaiting a thread for processing.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_blocked_tasks_rate":{info:"Tasks that cannot be queued for processing yet.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.thread_pool_blocked_tasks_count":{info:"Total tasks that cannot yet be queued for processing.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_gc_rate":{info:"Rate of garbage collections.</p><p><b>ParNew</b> - young-generation. <b>cms (ConcurrentMarkSweep)</b> - old-generation.</p>",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_gc_time":{aggregationMethod:"min",info:"Elapsed time of garbage collection.</p><p><b>ParNew</b> - young-generation. <b>cms (ConcurrentMarkSweep)</b> - old-generation.</p>",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_timeouts_rate":{info:"Requests which were not acknowledged within the configurable timeout window.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_unavailables_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Unavailable exceptions",desiredUnits:"requests/s",colors:s.default[1],layout:{x:0,y:0,w:2.25,h:5}}],info:"Requests for which the required number of nodes was unavailable.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_hit_ratio":{aggregationMethod:"avg",info:"Row cache hit ratio indicates the efficiency of the row cache. If ratio is consistently < 80% consider increasing cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_hit_rate":{aggregationMethod:"avg",info:"Row cache hit rate measures the cache hits and misses per second.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_utilization":{aggregationMethod:"avg",info:"The percentage of row cache memory currently in use. High utilization may indicate the need to increase cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.row_cache_size":{info:"The size of the row cache in bytes. Adjusting this value can impact system performance.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_utilization":{aggregationMethod:"avg",info:"The percentage of key cache memory currently in use. High utilization may indicate the need to increase cache size.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.key_cache_size":{info:"The size of the key cache in bytes. Adjusting this value can impact system performance.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.compaction_compacted_rate":{info:"The rate at which compactions are occurring in the system. If this rate is consistently high, it may indicate a need for more resources or a different compaction strategy.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.jvm_memory_used":{info:"The amount of memory used by the Cassandra JVM. High memory usage may indicate the need for additional resources or optimization.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.dropped_messages_rate":{info:"The rate at which messages are being dropped by the system. High rates may indicate a need for additional resources or a problem with the system.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"cassandra.client_requests_failures_rate":{info:"The rate at which client requests are failing. High rates may indicate a problem with the system or the need for additional resources.",en:{instance:{one:"cassandra server",other:"cassandra servers"}}},"coredns.dns_request_count_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total DNS Requests",colors:s.default[12],layout:{x:0,y:0,w:2.5,h:5}}],info:"The total number of DNS requests handled by CoreDNS. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_responses_count_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total DNS Responses",colors:s.default[2],layout:{x:6,y:0,w:2.5,h:5}}],info:"The total number of DNS responses sent by CoreDNS. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_no_matching_zone_dropped_total":{info:"The total number of DNS requests dropped by CoreDNS because no matching zone was found. This can be useful for identifying potential configuration issues.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"coredns.dns_panic_count_total":{info:"The total number of panics that occurred in CoreDNS. This can be useful for identifying potential issues or bugs in the system.",en:{instance:{one:"coredns server",other:"coredns servers"}}},"activemq.messages":{info:"The total number of messages in the broker. This can be useful for understanding overall system throughput.",en:{instance:{one:"broker",other:"brokers"}}},"activemq.unprocessed_messages":{info:"The total number of messages that have not been processed. If this number consistently increases, it may indicate a problem with consumer performance or a bottleneck in the system.",en:{instance:{one:"broker",other:"brokers"}}},"activemq.consumers":{info:"The number of active consumers connected to the broker. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"broker",other:"brokers"}}},"apache.connections":{colors:s.default[4],mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",valueRange:[0,null],title:"Total Apache Connections",colors:s.default[4]}],info:"The total number of connections to the Apache web server. This can be useful for understanding overall system load and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.requests":{colors:s.default[0],mainheads:[{"group_by[1]":["selected"],chartLibrary:"easypiechart",valueRange:[0,null],title:"Total Apache Requests",colors:s.default[0]}],info:"The number of requests processed by the Apache web server. This can be useful for understanding overall system throughput and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.net":{colors:s.default[3],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Apache Bandwidth",valueRange:[0,null],colors:s.default[3]}],info:"The number of bytes transferred over the network by the Apache web server. This can be useful for understanding overall network usage and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.workers":{mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",selectedDimensions:["busy"],chartLibrary:"gauge",title:"Maximum Apache Workers Utilization",valueRange:[0,100],colors:s.default[5]}],info:"The number of worker processes used by the Apache web server. This can be useful for understanding overall system performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.bytesperreq":{colors:s.default[3],info:"The number of bytes transferred per second over the network by the Apache web server. This can be useful for understanding overall network performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.reqpersec":{colors:s.default[4],info:"The number of requests processed per second by the Apache web server. This can be useful for understanding overall system performance and potential bottlenecks.",en:{instance:{one:"web server",other:"web servers"}}},"apache.bytespersec":{colors:s.default[6],info:"The number of bytes transferred per request by the Apache web server. This can be useful for understanding the efficiency of the server and identifying potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"apache.uptime":{aggregationMethod:"min",info:"The amount of time that the Apache web server has been running. This can be useful for understanding the overall health and stability of the server.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.connections":{colors:s.default[4],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",desiredUnits:"percentage",title:"Total Lighttpd Connections",colors:s.default[4]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.requests":{colors:s.default[0],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Lighttpd Requests",colors:s.default[0]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.net":{colors:s.default[3],mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Lighttpd Bandwidth",colors:s.default[3]}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.workers":{mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",selectedDimensions:["busy"],chartLibrary:"gauge",title:"Maximum Lighttpd Workers Utilization",colors:s.default[5],desiredUnits:"percentage"}],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.bytesperreq":{colors:s.default[3],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.reqpersec":{colors:s.default[4],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.bytespersec":{colors:s.default[6],en:{instance:{one:"web server",other:"web servers"}}},"lighttpd.uptime":{aggregationMethod:"min",info:"The uptime of the lighttpd server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.requests":{info:"The total number of requests received by the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.status_codes":{info:"The distribution of HTTP response codes returned by the lighttpd server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.traffic":{info:"The amount of traffic handled by the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.connections":{info:"The number of active connections to the lighttpd server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.connection_states":{info:"The distribution of connection states for the lighttpd server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.memory_usage":{info:"The memory usage of the lighttpd server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"web server",other:"web servers"}}},"lighttpd2.uptime":{info:"The uptime of the lighttpd server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime.",en:{instance:{one:"web server",other:"web servers"}}},"logstash.jvm_threads":{info:"The number of threads currently being used by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing threading issues that may affect its performance."},"logstash.jvm_mem_heap_used":{aggregationMethod:"avg",info:"The amount of memory currently being used by the Logstash JVM's heap. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_eden":{info:"The amount of memory currently being used by the Logstash JVM's Eden memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_survivor":{info:"The amount of memory currently being used by the Logstash JVM's Survivor memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_mem_pools_old":{info:"The amount of memory currently being used by the Logstash JVM's Old memory pool. Monitoring this metric can help identify if the JVM is experiencing memory usage issues that may affect its performance."},"logstash.jvm_gc_collector_count":{info:"The number of garbage collection operations performed by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing performance issues related to garbage collection."},"logstash.jvm_gc_collector_time":{aggregationMethod:"min",info:"The total time spent on garbage collection operations by the Logstash JVM. Monitoring this metric can help identify if the JVM is experiencing performance issues related to garbage collection."},"logstash.open_file_descriptors":{info:"The number of open file descriptors used by Logstash. Monitoring this metric can help identify if Logstash is experiencing file descriptor usage issues that may affect its performance."},"logstash.event":{info:"The number of events processed by Logstash. Monitoring this metric can help identify the usage patterns of Logstash and potential performance issues."},"logstash.event_duration":{info:"The latencies of events processed by Logstash. High latencies may indicate performance issues with Logstash or the components interacting with it."},"logstash.uptime":{aggregationMethod:"min",info:"The uptime of the Logstash server. Monitoring this metric can help identify if the server has been restarted or is experiencing issues with uptime."},"logstash.pipeline_event":{info:"The number of events processed by the specified Logstash pipeline. Monitoring this metric can help identify the usage patterns of the pipeline and potential performance issues."},"mongodb.operations":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Operations",desiredUnits:"operations",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of operations performed by the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.operations_latency":{aggregationMethod:"avg",info:"The latencies of operations performed by the MongoDB server. High latencies may indicate performance issues with the server or the components interacting with it.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Connections",desiredUnits:"connections",colors:s.default[0],layout:{x:3,y:0,w:3,h:5}}],info:"The total number of connections to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections_rate":{info:"The rate of connections to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.connections_state":{info:"The distribution of connection states for the MongoDB server. Monitoring this metric can help identify if there are issues with the server or the components interacting with it.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.network_io":{info:"The amount of network IO performed by the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.network_requests":{info:"The number of requests to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.page_faults":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Page Faults",desiredUnits:"faults",colors:s.default[0],layout:{x:9,y:0,w:3,h:5}}],info:"The number of page faults encountered by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.tcmalloc_generic":{info:"The usage of the TCMalloc generic allocator by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.tcmalloc":{info:"The usage of the TCMalloc allocator by the MongoDB server. Monitoring this metric can help identify if the server is experiencing memory usage issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.asserts":{info:"The number of asserts encountered by the MongoDB server. Monitoring this metric can help identify if the server is encountering issues that may affect its performance.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.current_transactions":{info:"The number of current transactions on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to transactions.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_commit_types":{info:"The distribution of commit types for sharded collections on the MongoDB server. Monitoring this metric can help identify if there are issues with sharding on the server.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.active_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Active Clients",desiredUnits:"clients",colors:s.default[0],layout:{x:0,y:5,w:3,h:5}}],info:"The number of active clients connected to the MongoDB server. Monitoring this metric can help identify the usage patterns of the server and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.queued_operations":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queued Operations",desiredUnits:"operations",colors:s.default[0],layout:{x:3,y:5,w:3,h:5}}],info:"The number of operations that are currently queued on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to queued operations.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.locks":{info:"The distribution of locks held by the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.flow_control_timings":{info:"The timings of flow control events on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to flow control.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_blocks":{info:"The number of blocks currently held in the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_cache":{info:"The usage of the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_capacity":{info:"The capacity of the WiredTiger cache on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to the WiredTiger cache.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_connection":{info:"The number of connections currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to connections.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_cursor":{info:"The number of cursors currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to cursors.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_lock":{info:"The number of locks currently held in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_lock_duration":{info:"The duration of locks held in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to locking.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_log_ops":{info:"The number of operations written to the WiredTiger log on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to logging.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.wiredtiger_transactions":{info:"The number of transactions currently open in the WiredTiger storage engine on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to transactions.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_collections":{info:"The number of collections in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_indexes":{info:"The number of indexes in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_views":{info:"The number of views in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_documents":{info:"The number of documents in the specified database on the MongoDB server. Monitoring this metric can help identify the usage patterns of the database and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.database_storage_size":{info:"The storage size of the specified database on the MongoDB server. Monitoring this metric can help identify if the database is using an appropriate amount of storage.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_lag":{info:"The amount of lag in replication on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_heartbeat_latency":{aggregationMethod:"avg",info:"The latencies of replication heartbeats on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.replication_node_ping":{aggregationMethod:"avg",info:"The latencies of pings to replication nodes on the MongoDB server. Monitoring this metric can help identify if the server is experiencing performance issues related to replication.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_nodes_count":{info:"The number of nodes in the specified shard on the MongoDB server. Monitoring this metric can help identify the usage patterns of the shard and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.shard_databases_status":{info:"The status of the databases in the specified shard on the MongoDB server. Monitoring this metric can help identify if there are issues with the databases in the shard.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"mongodb.chunks":{info:"The number of chunks in the specified shard on the MongoDB server. Monitoring this metric can help identify the usage patterns of the shard and potential performance issues.",en:{instance:{one:"mongodb server",other:"mongodb servers"}}},"nginx.connections":{colors:s.default[4],mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",title:"Total Connections",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"nginx.requests":{colors:s.default[0],mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",title:"Total Requests",colors:s.default[0],layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"nginx.connections_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connection Status",layout:{x:6,y:0,w:3,h:5}}],info:"The current status of connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginx.connections_accepted_handled":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Connections Handled",layout:{x:9,y:0,w:3,h:5}}],info:"The number of accepted and handled connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.client_connections_rate":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",desiredUnits:"connections/s",title:"Total Client Connections Rate",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Accepted and dropped (not handled) connections. A connection is considered <b>dropped</b> if the worker process is unable to get a connection for the request by establishing a new connection or reusing an open one.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.client_connections_count":{mainheads:[{valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Client Connections per State",layout:{x:3,y:0,w:3,h:2.5}}],info:"The current number of client connections. A connection is considered <b>idle</b> if there are currently no active requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_handshakes_rate":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",desiredUnits:"handshakes/s",title:"Total SSL Handshake Rate",colors:s.default[4],layout:{x:3,y:2.5,w:3,h:2.5}}],info:"Successful and failed SSL handshakes.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_session_reuses_rate":{info:"The number of session reuses during SSL handshake.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_handshakes_failures_rate":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",desiredUnits:"failures/s",title:"SSL Handshake Failures",colors:s.default[4],layout:{x:6,y:0,w:3,h:5}}],info:"<p>SSL handshake failures.</p><p><b>NoCommonProtocol</b> - failed because of no common protocol. <b>NoCommonCipher</b> - failed because of no shared cipher. <b>Timeout</b> - failed because of a timeout. <b>PeerRejectedCert</b> - failed because a client rejected the certificate.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.ssl_verification_errors_rate":{info:'<p>SSL verification errors.</p><p><b>NoCert</b> - a client did not provide the required certificate. <b>ExpiredCert</b> - an expired or not yet valid certificate was presented by a client. <b>RevokedCert</b> - a revoked certificate was presented by a client. <b>HostnameMismatch</b> - server"s certificate does not match the hostname. <b>Other</b> - other SSL certificate verification errors.</p>',en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_requests_rate":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"gauge",desiredUnits:"req/s",title:"Total HTTP Requests Rate",colors:s.default[4],layout:{x:9,y:0,w:3,h:5}}],info:"The number of HTTP requests received from clients.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_requests_count":{mainheads:[{chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Total Requests",layout:{x:0,y:5,w:3,h:2.5}}],info:"The current number of client requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"dHH:MM:ss",layout:{x:0,y:7.5,w:3,h:2.5}}],info:"The time elapsed since the NGINX process was started.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Requests Rate",desiredUnits:"requests/s",layout:{x:3,y:5,w:3,h:5}}],info:"The number of requests to the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_responses_per_code_class_rate":{info:"The number of responses from the HTTP Server Zone. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_traffic_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Traffic Rate",desiredUnits:"b/s",layout:{x:6,y:5,w:3,h:5}}],info:"The amount of data transferred to and from the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_processing_count":{info:"The number of client requests that are currently being processed by the HTTP Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_server_zone_requests_discarded_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Server Zone Discarded Requests Rate",desiredUnits:"requests/s",layout:{x:9,y:5,w:3,h:5}}],info:"The number of requests to the HTTP Server Zone completed without sending a response.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_requests_rate":{info:"The number of requests to the HTTP Location Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_responses_per_code_class_rate":{info:"The number of responses from the HTTP Location Zone. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_traffic_rate":{info:"The amount of data transferred to and from the HTTP Location Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_location_zone_requests_discarded_rate":{info:"The number of requests to the HTTP Location Zone completed without sending a response.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_peers_count":{info:"The number of HTTP Upstream servers.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_zombies_count":{info:"The current number of HTTP Upstream servers removed from the group but still processing active client requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_keepalive_count":{info:"The current number of idle keepalive connections to the HTTP Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total HTTP Upstream Request Rate",desiredUnits:"requests/s",layout:{x:0,y:10,w:3,h:5}}],info:"The number of client requests forwarded to the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_responses_per_code_class_rate":{info:"The number of responses received from the HTTP Upstream Server. Responses are grouped by HTTP status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_response_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average HTTP Upstream Response Time",desiredUnits:"milliseconds",layout:{x:3,y:10,w:3,h:5}}],info:"The average time to get a complete response from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_response_header_time":{aggregationMethod:"avg",info:"The average time to get a response header from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_traffic_rate":{info:"The amount of traffic transferred to and from the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Upstream Server State",layout:{x:6,y:10,w:3,h:5}}],info:"The current state of the HTTP Upstream Server. Status is active if set to 1.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_connections_count":{info:"The current number of active connections to the HTTP Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_upstream_server_downtime":{info:"The time the HTTP Upstream Server has spent in the <b>unavail</b>, <b>checking</b>, and <b>unhealthy</b> states.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total HTTP Cache State",desiredUnits:"responses/s",layout:{x:9,y:10,w:3,h:5}}],info:"HTTP cache current state. <b>Cold</b> means that the cache loader process is still loading data from disk into the cache.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_iops":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total HTTP Cache IOPS",desiredUnits:"responses/s",layout:{x:9,y:15,w:3,h:5}}],info:"<p>HTTP cache IOPS.</p><p><b>Served</b> - valid, expired, and revalidated responses read from the cache. <b>Written</b> - miss, expired, and bypassed responses written to the cache. <b>Bypassed</b> - miss, expired, and bypass responses.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_io":{info:"<p>HTTP cache IO.</p><p><b>Served</b> - valid, expired, and revalidated responses read from the cache. <b>Written</b> - miss, expired, and bypassed responses written to the cache. <b>Bypassed</b> - miss, expired, and bypass responses.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.http_cache_size":{info:"The current size of the cache.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Stream Server Zone Connections Rate",desiredUnits:"connections/s",layout:{x:0,y:15,w:3,h:5}}],info:"The number of accepted connections to the Stream Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_sessions_per_code_class_rate":{info:"The number of completed sessions for the Stream Server Zone. Sessions grouped by status code class.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_traffic_rate":{info:"The amount of data transferred to and from the Stream Server Zone.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_processing_count":{info:"The number of client connections to the Stream Server Zone that are currently being processed.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_server_zone_connections_discarded_rate":{info:"The number of connections to the Stream Server Zone completed without creating a session.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_peers_count":{info:"The number of Stream Upstream servers.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_zombies_count":{info:"The current number of HTTP Upstream servers removed from the group but still processing active client connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_connections_rate":{info:"The number of connections forwarded to the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_traffic_rate":{info:"The amount of traffic transferred to and from the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_state":{info:"The current state of the Stream Upstream Server. Status is active if set to 1.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_downtime":{info:"The time the Stream Upstream Server has spent in the <b>unavail</b>, <b>checking</b>, and <b>unhealthy</b> states.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.stream_upstream_server_connections_count":{info:"The current number of connections to the Stream Upstream Server.",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.resolver_zone_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",desiredUnits:"requests/s",title:"Total Resolver Zone Request Rate",colors:s.default[4],layout:{x:3,y:15,w:3,h:5}}],info:"<p>Resolver zone DNS requests.</p><p><b>Name</b> - requests to resolve names to addresses. <b>Srv</b> - requests to resolve SRV records. <b>Addr</b> - requests to resolve addresses to names.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxplus.resolver_zone_responses_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",desiredUnits:"responses/s",title:"Total Resolver Zone Responses Rate",colors:s.default[4],layout:{x:6,y:15,w:3,h:5}}],info:"<p>Resolver zone DNS responses.</p><p><b>NoError</b> - successful responses. <b>FormErr</b> - format error responses. <b>ServFail</b> - server failure responses. <b>NXDomain</b> - host not found responses. <b>NotImp</b> - unimplemented responses. <b>Refused</b> - operation refused responses. <b>TimedOut</b> - timed out requests. <b>Unknown</b> - requests completed with an unknown error.</p>",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.requests_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",layout:{x:0,y:0,w:3,h:5}}],info:"The total number of requests on the nginx server. Monitoring this metric can help identify potential performance issues related to requests.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.active_connections":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Connections",layout:{x:6,y:0,w:3,h:5}}],info:"The number of active connections on the nginx server. Monitoring this metric can help identify potential performance issues related to connections.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:9,y:0,w:3,h:5}}],info:"The uptime of the nginx server. Monitoring this metric can help identify potential performance issues related to server uptime.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.shm_usage":{info:"The usage of the shared memory on the nginx server. Monitoring this metric can help identify potential performance issues related to shared memory usage.",en:{instance:{one:"web server",other:"web servers"}}},"nginxvts.server_requests_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Server Requests",layout:{x:3,y:0,w:3,h:5}}],info:"The total number of requests on the nginx server. Monitoring this metric can help identify potential performance issues related to server requests.",en:{instance:{one:"web server",other:"web servers"}}},"httpcheck.response_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Response Time",layout:{x:0,y:0,w:3,h:5}}],info:"The <b>response time</b> describes the time passed between request and response. Currently, the accuracy of the response time is low and should be used as reference only.",groupBy:["label"],groupByLabel:["_collect_job"]},"httpcheck.response_length":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Response Length",layout:{x:3,y:0,w:3,h:5}}],info:"The <b>response length</b> counts the number of characters in the response body. For static pages, this should be mostly constant.",groupBy:["label"],groupByLabel:["_collect_job"]},"httpcheck.status":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Server Check Status",layout:{x:6,y:0,w:3,h:5}}],info:"This chart verifies the response of the webserver. Each status dimension will have a value of <b>1</b> if triggered. Dimension <b>success</b> is <b>1</b> only if all constraints are satisfied. This chart is most useful for alerts or third-party apps.",groupBy:["label"],groupByLabel:["_collect_job"],dimensionsOnNonDimensionGrouping:["success"]},"netdata.response_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average API Response Time",layout:{x:6,y:0,w:3,h:5}}],info:"The netdata API response time measures the time netdata needed to serve requests. This time includes everything, from the reception of the first byte of a request, to the dispatch of the last byte of its reply, therefore it includes all network latencies involved (i.e. a client over a slow network will influence these metrics).",en:{instance:{one:"agent",other:"agents"}}},"netdata.server_cpu":{mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average CPU usage per Agent",colors:s.default[12]}],info:"The CPU time consumed by Netdata process in user and system space.",en:{instance:{one:"agent",other:"agents"}}},"netdata.memory":{mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",chartLibrary:"easypiechart",title:"Average memory usage per Agent",colors:s.default[1]}],info:"The memory consumed by the Netdata agent.",en:{instance:{one:"agent",other:"agents"}}},"netdata.net":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total network traffic across all agents",layout:{x:9,y:0,w:3,h:5}}],info:"The network traffic generated by Netdata agent.",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_threads":{info:'Show total number of threads and number of active threads. For more details about the threads, see the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ebpf-programs-configuration-options" target="_blank">official documentation</a>.',en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_load_methods":{info:"Show number of threads loaded using legacy code (independent binary) or <b>CO-RE (Compile Once Run Everywhere)</b>.",en:{instance:{one:"agent",other:"agents"}}},"retroshare.bandwidth":{info:"RetroShare inbound and outbound traffic.",mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Inbound",selectedDimensions:["bandwidth_down_kb"],colors:s.default[0]},{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Outbound",selectedDimensions:["bandwidth_up_kb"],colors:s.default[1]}]},"retroshare.peers":{info:"Number of (connected) RetroShare friends.",mainheads:[{"group_by[0]":["selected"],urlOptions:["friends"],selectedDimensions:["peers_connected"],chartLibrary:"easypiechart",title:"Total Connected Friends",desiredUnits:""}]},"retroshare.dht":{info:"Statistics about RetroShare's DHT. These values are estimated!"},"fping.quality":{family:"quality",colors:s.default[10]},"fping.packets":{family:"packets"},"cgroup.cpu_limit":{aggregationMethod:"avg",valueRange:[0,null],mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,100],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum CPU Utilization (within limit)",units:"percentage",layout:{x:0,y:0,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["cgroup_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],selectedDimensions:["used"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Utilization (within limit) per cgroup",units:"percentage",layout:{x:0,y:5,w:4,h:5}}],info:ce,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"max",groupingMethod:"max",valueRange:[0,100],chartLibrary:"gauge",title:"Maximum CPU Utilization",units:"percentage",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["cgroup_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Utilization per cgroup",units:"percentage",layout:{x:4,y:5,w:4,h:5}}],info:le,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttled":{aggregationMethod:"avg",info:de,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttled_duration":{aggregationMethod:"avg",info:he,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_shares":{info:ue,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_per_core":{aggregationMethod:"avg",info:me,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_some_pressure":{aggregationMethod:"avg",info:pe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_some_pressure_stall_time":{info:fe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_full_pressure":{aggregationMethod:"avg",info:ge,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cpu_full_pressure_stall_time":{info:be,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.cpu_limit":{aggregationMethod:"avg",valueRange:[0,null],mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum CPU Utilization (within limit)",units:"percentage"}],info:ce,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"max",chartLibrary:"gauge",title:"Maximum CPU Utilization",units:"percentage"}],info:le,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttled":{aggregationMethod:"avg",info:de,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttled_duration":{aggregationMethod:"avg",info:he,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_shares":{info:ue,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_per_core":{aggregationMethod:"avg",info:me,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_some_pressure":{aggregationMethod:"avg",info:pe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_some_pressure_stall_time":{info:fe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_full_pressure":{aggregationMethod:"avg",info:ge,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.cpu_full_pressure_stall_time":{info:be,en:{instance:{one:"container",other:"containers"}}},"cgroup.mem_utilization":{aggregationMethod:"avg",info:ye,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_usage_limit":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",groupingMethod:"max",valueRange:[0,100],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum Memory Utilization (within limit)",layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["cgroup_name"],"aggregation[0]":"max",groupingMethod:"max",selectedDimensions:["used"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum Memory Utilization (within limit) per cgroup",layout:{x:8,y:5,w:4,h:5}}],info:ve,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_usage":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,selectedDimensions:["ram"],title:"Total RAM Used",colors:s.default[11],layout:{x:9,y:0,w:3,h:5}}],info:_e,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem":{info:we,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_failcnt":{info:ke,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.writeback":{info:Te,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.mem_activity":{info:xe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.pgfaults":{info:Se,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_some_pressure":{aggregationMethod:"avg",info:Ce,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_some_pressure_stall_time":{info:Pe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_full_pressure":{aggregationMethod:"avg",info:Me,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.memory_full_pressure_stall_time":{info:qe,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.mem_utilization":{aggregationMethod:"avg",info:ye,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_usage_limit":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",valueRange:[0,null],selectedDimensions:["used"],chartLibrary:"gauge",title:"Maximum Memory Used (within limit)",units:"percentage"}],info:ve,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_usage":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["ram"],chartLibrary:"gauge",title:"Total RAM Used",units:"MB"}],info:_e,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem":{info:we,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_failcnt":{info:ke,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.writeback":{info:Te,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.mem_activity":{info:xe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.pgfaults":{info:Se,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_some_pressure":{aggregationMethod:"avg",info:Ce,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_some_pressure_stall_time":{info:Pe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_full_pressure":{aggregationMethod:"avg",info:Me,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.memory_full_pressure_stall_time":{info:qe,en:{instance:{one:"container",other:"containers"}}},"cgroup.io":{mainheads:[{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Disk Read",selectedDimensions:["read"],colors:s.default[0],priority:5,layout:{x:0,y:10,w:2,h:5}},{"group_by[0]":["selected"],valueRange:[0,null],chartLibrary:"easypiechart",title:"Total Disk Write",selectedDimensions:["write"],colors:s.default[1],priority:6,layout:{x:2,y:10,w:2,h:5}}],info:Ie,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.serviced_ops":{info:Ee,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.queued_ops":{info:De,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.merged_ops":{info:Le,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttle_io":{info:Ne,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.throttle_serviced_ops":{info:Oe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_some_pressure":{aggregationMethod:"avg",info:Re,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_some_pressure_stall_time":{info:Ae,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_full_pressure":{aggregationMethod:"avg",info:Fe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.io_full_pressure_stall_time":{info:Ue,en:{instance:{one:"cgroup",other:"cgroups"}}},"k8s.cgroup.io":{info:Ie,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.serviced_ops":{info:Ee,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.queued_ops":{info:De,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.merged_ops":{info:Le,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttle_io":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["read"],chartLibrary:"gauge",title:"Total Read Disk I/O",desiredUnits:"KB/s"},{"group_by[0]":["selected"],selectedDimensions:["write"],chartLibrary:"gauge",title:"Total Write Disk I/O",desiredUnits:"KB/s"}],info:Ne,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.throttle_serviced_ops":{info:Oe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_some_pressure":{aggregationMethod:"avg",info:Re,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_some_pressure_stall_time":{info:Ae,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_full_pressure":{aggregationMethod:"avg",info:Fe,en:{instance:{one:"container",other:"containers"}}},"k8s.cgroup.io_full_pressure_stall_time":{info:Ue,en:{instance:{one:"container",other:"containers"}}},"cgroup.swap_read":{info:z,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.swap_write":{info:V,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_open":{info:k,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_open_error":{info:T,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_close":{info:x,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.fd_close_error":{info:S,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_unlink":{info:R,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write":{info:I,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write_error":{info:D,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read":{info:E,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read_error":{info:L,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_write_bytes":{info:N,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_read_bytes":{info:O,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_fsync":{info:A,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_fsync_error":{info:F,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_open":{info:U,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_open_error":{info:B,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_create":{info:Z,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.vfs_create_error":{info:j,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.process_create":{info:b,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.thread_create":{info:y,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_exit":{info:v,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_close":{info:_,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.task_error":{info:w,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_ratio":{aggregationMethod:"avg",info:'Percentage of file accesses that were present in the directory cache. 100% means that every file that was accessed was present in the directory cache. If files are not present in the directory cache 1) they are not present in the file system, 2) the files were not accessed before. Read more about <a href="https://www.kernel.org/doc/htmldocs/filesystems/the_directory_cache.html" target="_blank">directory cache</a>. Netdata also gives a summary for these charts in <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Filesystem submenu</a>.',en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmget":{info:K,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmat":{info:J,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmdt":{info:X,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.shmctl":{info:Y,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.outbound_conn_v4":{info:$,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.outbound_conn_v6":{info:ee,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_send":{info:te,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_recv":{info:ne,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_tcp_send":{info:se,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_tcp_recv":{info:re,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_retransmit":{info:ae,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_udp_send":{info:oe,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_udp_recv":{info:ie,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_hit_ratio":{aggregationMethod:"avg",info:C,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_reference":{info:P,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_not_cache":{info:M,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.dc_not_found":{info:q,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_ratio":{aggregationMethod:"avg",info:H,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_dirties":{info:Q,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_hits":{info:G,en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.cachestat_misses":{info:W,en:{instance:{one:"cgroup",other:"cgroups"}}},"services.cpu":{aggregationMethod:"avg",info:'Total CPU utilization within the system-wide CPU resources (all cores). The amount of time spent by tasks of the cgroup in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and kernel</a> modes.',en:{instance:{one:"system",other:"systems"}}},"services.mem_usage":{aggregationMethod:"avg",info:"The amount of used RAM.",en:{instance:{one:"system",other:"systems"}}},"services.mem_rss":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Resident_set_size" target="_blank">RSS</a> memory. It includes transparent hugepages.',en:{instance:{one:"system",other:"systems"}}},"services.mem_mapped":{info:'The size of <a href="https://en.wikipedia.org/wiki/Memory-mapped_file" target="_blank">memory-mapped</a> files.',en:{instance:{one:"system",other:"systems"}}},"services.mem_cache":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">page cache</a> memory.',en:{instance:{one:"system",other:"systems"}}},"services.mem_writeback":{info:'The amount of file/anon cache that is <a href="https://en.wikipedia.org/wiki/Cache_(computing)#Writing_policies" target="_blank">queued for syncing</a> to disk.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgfault":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Types" target="_blank">page faults</a>. It includes both minor and major page faults.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgmajfault":{info:'The number of <a href="https://en.wikipedia.org/wiki/Page_fault#Major" target="_blank">major</a> page faults.',en:{instance:{one:"system",other:"systems"}}},"services.mem_pgpgin":{info:"The amount of memory charged to the cgroup. The charging event happens each time a page is accounted as either mapped anon page(RSS) or cache page(Page Cache) to the cgroup.",en:{instance:{one:"system",other:"systems"}}},"services.mem_pgpgout":{info:"The amount of memory uncharged from the cgroup. The uncharging event happens each time a page is unaccounted from the cgroup.",en:{instance:{one:"system",other:"systems"}}},"services.mem_failcnt":{info:"The number of memory usage hits limits.",en:{instance:{one:"system",other:"systems"}}},"services.swap_usage":{info:'The amount of used <a href="https://en.wikipedia.org/wiki/Memory_paging#Unix_and_Unix-like_systems" target="_blank">swap</a> memory.',en:{instance:{one:"system",other:"systems"}}},"services.io_read":{info:"The amount of data transferred from specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",en:{instance:{one:"system",other:"systems"}}},"services.io_write":{info:"The amount of data transferred to specific devices as seen by the CFQ scheduler. It is not updated when the CFQ scheduler is operating on a request queue.",en:{instance:{one:"system",other:"systems"}}},"services.io_ops_read":{info:"The number of read operations performed on specific devices as seen by the CFQ scheduler.",en:{instance:{one:"system",other:"systems"}}},"services.io_ops_write":{info:"The number write operations performed on specific devices as seen by the CFQ scheduler.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_read":{info:"The amount of data transferred from specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_write":{info:"The amount of data transferred to specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_ops_read":{info:"The number of read operations performed on specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.throttle_io_ops_write":{info:"The number of write operations performed on specific devices as seen by the throttling policy.",en:{instance:{one:"system",other:"systems"}}},"services.queued_io_ops_read":{info:"The number of queued read requests.",en:{instance:{one:"system",other:"systems"}}},"services.queued_io_ops_write":{info:"The number of queued write requests.",en:{instance:{one:"system",other:"systems"}}},"services.merged_io_ops_read":{info:"The number of read requests merged.",en:{instance:{one:"system",other:"systems"}}},"services.merged_io_ops_write":{info:"The number of write requests merged.",en:{instance:{one:"system",other:"systems"}}},"services.swap_read":{info:z+'<div id="ebpf_services_swap_read"></div>',en:{instance:{one:"system",other:"systems"}}},"services.swap_write":{info:V+'<div id="ebpf_services_swap_write"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_open":{info:k+'<div id="ebpf_services_file_open"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_open_error":{info:T+'<div id="ebpf_services_file_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_close":{info:x+'<div id="ebpf_services_file_closed"></div>',en:{instance:{one:"system",other:"systems"}}},"services.fd_close_error":{info:S+'<div id="ebpf_services_file_close_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_unlink":{info:R+'<div id="ebpf_services_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write":{info:I+'<div id="ebpf_services_vfs_write"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write_error":{info:D+'<div id="ebpf_services_vfs_write_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read":{info:E+'<div id="ebpf_services_vfs_read"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read_error":{info:L+'<div id="ebpf_services_vfs_read_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_write_bytes":{info:N+'<div id="ebpf_services_vfs_write_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_read_bytes":{info:O+'<div id="ebpf_services_vfs_read_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_fsync":{info:A+'<div id="ebpf_services_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_fsync_error":{info:F+'<div id="ebpf_services_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_open":{info:U+'<div id="ebpf_services_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_open_error":{info:B+'<div id="ebpf_services_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_create":{info:Z+'<div id="ebpf_services_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.vfs_create_error":{info:j+'<div id="ebpf_services_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.process_create":{info:b+'<div id="ebpf_services_process_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.thread_create":{info:y+'<div id="ebpf_services_thread_create"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_exit":{info:v+'<div id="ebpf_services_process_exit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_close":{info:_+'<div id="ebpf_services_task_release"></div>',en:{instance:{one:"system",other:"systems"}}},"services.task_error":{info:w+'<div id="ebpf_services_task_error"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_hit_ratio":{aggregationMethod:"avg",info:C+'<div id="ebpf_services_dc_hit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_reference":{info:P+'<div id="ebpf_services_dc_reference"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_not_cache":{info:M+'<div id="ebpf_services_dc_not_cache"></div>',en:{instance:{one:"system",other:"systems"}}},"services.dc_not_found":{info:q+'<div id="ebpf_services_dc_not_found"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_ratio":{aggregationMethod:"avg",info:H+'<div id="ebpf_services_cachestat_ratio"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_dirties":{info:Q+'<div id="ebpf_services_cachestat_dirties"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_hits":{info:G+'<div id="ebpf_services_cachestat_hits"></div>',en:{instance:{one:"system",other:"systems"}}},"services.cachestat_misses":{info:W+'<div id="ebpf_services_cachestat_misses"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmget":{info:K+'<div id="ebpf_services_shm_get"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmat":{info:J+'<div id="ebpf_services_shm_at"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmdt":{info:X+'<div id="ebpf_services_shm_dt"></div>',en:{instance:{one:"system",other:"systems"}}},"services.shmctl":{info:Y+'<div id="ebpf_services_shm_ctl"></div>',en:{instance:{one:"system",other:"systems"}}},"services.outbound_conn_v4":{info:$+'<div id="ebpf_services_outbound_conn_ipv4"></div>',en:{instance:{one:"system",other:"systems"}}},"services.outbound_conn_v6":{info:ee+'<div id="ebpf_services_outbound_conn_ipv6"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_bytes_send":{info:te+'<div id="ebpf_services_bandwidth_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_bytes_recv":{info:ne+'<div id="ebpf_services_bandwidth_received"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_tcp_send":{info:se+'<div id="ebpf_services_bandwidth_tcp_sent"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_tcp_recv":{info:re+'<div id="ebpf_services_bandwidth_tcp_received"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_retransmit":{info:ae+'<div id="ebpf_services_tcp_retransmit"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_udp_send":{info:oe+'<div id="ebpf_services_udp_sendmsg"></div>',en:{instance:{one:"system",other:"systems"}}},"services.net_udp_recv":{info:ie+'<div id="ebpf_services_udp_recv"></div>',en:{instance:{one:"system",other:"systems"}}},"beanstalk.cpu_usage":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total CPU time consumed",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Amount of CPU Time for user and system used by beanstalkd."},"beanstalk.jobs_rate":{info:"The rate of jobs processed by the beanstalkd served."},"beanstalk.connections_rate":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Connections Rate",colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"The rate of connections opened to beanstalkd."},"beanstalk.commands_rate":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Commands Received Rate",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The rate of commands received by beanstalkd."},"beanstalk.current_tubes":{info:"Total number of current tubes on the server including the default tube (which always exists)."},"beanstalk.current_jobs":{info:"Current number of jobs in all tubes grouped by status: urgent, ready, reserved, delayed and buried."},"beanstalk.current_connections":{info:"Current number of connections group by connection type: written, producers, workers, waiting."},"beanstalk.binlog":{info:"The rate of records <b>written</b> to binlog and <b>migrated</b> as part of compaction."},"beanstalk.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:9,y:0,w:3,h:5}}],info:"Total time beanstalkd server has been up for."},"beanstalk.jobs":{info:"Number of jobs currently in the tube grouped by status: urgent, ready, reserved, delayed and buried."},"beanstalk.connections":{info:"The current number of connections to this tube grouped by connection type; using, waiting and watching."},"beanstalk.commands":{info:"The rate of <b>delete</b> and <b>pause</b> commands executed by beanstalkd."},"beanstalk.pause":{info:"Shows info on how long the tube has been paused for, and how long is left remaining on the pause."},"ceph.general_usage":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Usage",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The usage and available space in all ceph cluster."},"ceph.general_objects":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"number",title:"Total Objects",colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"Total number of objects storage on ceph cluster."},"ceph.general_bytes":{info:"Cluster read and write data per second."},"ceph.general_operations":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Operations",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Number of read and write operations per second."},"ceph.general_latency":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Latency",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"Total of apply and commit latency in all OSDs. The apply latency is the total time taken to flush an update to disk. The commit latency is the total time taken to commit an operation to the journal."},"ceph.pool_usage":{info:"The usage space in each pool."},"ceph.pool_objects":{info:"Number of objects presents in each pool."},"ceph.pool_read_bytes":{info:"The rate of read data per second in each pool."},"ceph.pool_write_bytes":{info:"The rate of write data per second in each pool."},"ceph.pool_read_objects":{info:"Number of read objects per second in each pool."},"ceph.pool_write_objects":{info:"Number of write objects per second in each pool."},"ceph.osd_usage":{info:"The usage space in each OSD."},"ceph.osd_size":{info:"Each OSD's size"},"ceph.apply_latency":{aggregationMethod:"avg",info:"Time taken to flush an update in each OSD."},"ceph.commit_latency":{aggregationMethod:"avg",info:"Time taken to commit an operation to the journal in each OSD."},"web_log.squid_response_statuses":{info:"Squid responses by type. <b>success</b> includes <b>1xx</b>, <b>2xx</b>, <b>000</b>, <b>304</b>, <b>error</b> includes <b>5xx</b> and <b>6xx</b>, <b>redirect</b> includes <b>3xx</b> except <b>304</b>, <b>bad</b> includes <b>4xx</b>, <b>other</b> are all the other responses.",mainheads:[{"group_by[0]":["selected"],selectedDimensions:["success"],chartLibrary:"gauge",title:"Total Successful Responses",desiredUnits:"requests/s"},{"group_by[0]":["selected"],selectedDimensions:["redirect"],chartLibrary:"gauge",title:"Total Redirects",desiredUnits:"requests/s"},{"group_by[0]":["selected"],selectedDimensions:["bad"],chartLibrary:"gauge",title:"Total Bad Requests",desiredUnits:"requests/s"},{"group_by[0]":["selected"],selectedDimensions:["error"],chartLibrary:"gauge",title:"Total Server Errors",desiredUnits:"requests/s"}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_response_codes":{info:'Web server responses by code family. According to HTTP standards <b>1xx</b> are informational responses, <b>2xx</b> are successful responses, <b>3xx</b> are redirects (although they include <b>304</b> which is used as "<b>not modified</b>"), <b>4xx</b> are bad requests, <b>5xx</b> are internal server errors. Squid also defines <b>000</b> mostly for UDP requests, and <b>6xx</b> for broken upstream servers sending wrong headers. Finally, <b>other</b> are non-standard responses, and <b>unmatched</b> counts the lines in the log file that are not matched by the plugin (<a href="https://github.com/netdata/netdata/issues/new?title=web_log%20reports%20unmatched%20lines&body=web_log%20plugin%20reports%20unmatched%20lines.%0A%0AThis%20is%20my%20log:%0A%0A%60%60%60txt%0A%0Aplease%20paste%20your%20web%20server%20log%20here%0A%0A%60%60%60" target="_blank">let us know</a> if you have any unmatched).',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_duration":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",selectedDimensions:["avg"],chartLibrary:"gauge",title:"Average Response Time",desiredUnits:"milliseconds"}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_detailed_response_codes":{info:"Number of responses for each response code individually.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_clients":{info:"Unique client IPs accessing squid, within each data collection iteration. If data collection is <b>per second</b>, this chart shows <b>unique client IPs per second</b>.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_clients_all":{info:'Unique client IPs accessing squid since the last restart of netdata. This plugin keeps in memory all the unique IPs that have accessed the server. On very busy squid servers (several millions of unique IPs) you may want to disable this chart (check <a href="https://github.com/netdata/go.d.plugin/blob/master/config/go.d/web_log.conf" target="_blank"><b>/etc/netdata/go.d/web_log.conf</b></a>).',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_transport_methods":{info:"Break down per delivery method: <b>TCP</b> are requests on the HTTP port (usually 3128), <b>UDP</b> are requests on the ICP port (usually 3130), or HTCP port (usually 4128). If ICP logging was disabled using the log_icp_queries option, no ICP replies will be logged. <b>NONE</b> are used to state that squid delivered an unusual response or no response at all. Seen with cachemgr requests and errors, usually when the transaction fails before being classified into one of the above outcomes. Also seen with responses to <b>CONNECT</b> requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_code":{info:'These are combined squid result status codes. A break down per component is given in the following charts. Check the <a href="http://wiki.squid-cache.org/SquidFaq/SquidLogs" target="_blank">squid documentation about them</a>.',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_handling_opts":{info:"These tags are optional and describe why the particular handling was performed or where the request came from. <b>CLIENT</b> means that the client request placed limits affecting the response. Usually seen with client issued a <b>no-cache</b>, or analogous cache control command along with the request. Thus, the cache has to validate the object.<b>IMS</b> states that the client sent a revalidation (conditional) request. <b>ASYNC</b>, is used when the request was generated internally by Squid. Usually this is background fetches for cache information exchanges, background revalidation from stale-while-revalidate cache controls, or ESI sub-objects being loaded. <b>SWAPFAIL</b> is assigned when the object was believed to be in the cache, but could not be accessed. A new copy was requested from the server. <b>REFRESH</b> when a revalidation (conditional) request was sent to the server. <b>SHARED</b> when this request was combined with an existing transaction by collapsed forwarding. NOTE: the existing request is not marked as SHARED. <b>REPLY</b> when particular handling was requested in the HTTP reply from server or peer. Usually seen on DENIED due to http_reply_access ACLs preventing delivery of servers response object to the client.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_object_types":{info:"These tags are optional and describe what type of object was produced. <b>NEGATIVE</b> is only seen on HIT responses, indicating the response was a cached error response. e.g. <b>404 not found</b>. <b>STALE</b> means the object was cached and served stale. This is usually caused by stale-while-revalidate or stale-if-error cache controls. <b>OFFLINE</b> when the requested object was retrieved from the cache during offline_mode. The offline mode never validates any object. <b>INVALID</b> when an invalid request was received. An error response was delivered indicating what the problem was. <b>FAIL</b> is only seen on <b>REFRESH</b> to indicate the revalidation request failed. The response object may be the server provided network error or the stale object which was being revalidated depending on stale-if-error cache control. <b>MODIFIED</b> is only seen on <b>REFRESH</b> responses to indicate revalidation produced a new modified object. <b>UNMODIFIED</b> is only seen on <b>REFRESH</b> responses to indicate revalidation produced a <b>304</b> (Not Modified) status, which was relayed to the client. <b>REDIRECT</b> when squid generated an HTTP redirect response to this request.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_cache_events":{info:'These tags are optional and describe whether the response was loaded from cache, network, or otherwise. <b>HIT</b> when the response object delivered was the local cache object. <b>MEM</b> when the response object came from memory cache, avoiding disk accesses. Only seen on HIT responses. <b>MISS</b> when the response object delivered was the network response object. <b>DENIED</b> when the request was denied by access controls. <b>NOFETCH</b> an ICP specific type, indicating service is alive, but not to be used for this request (sent during "-Y" startup, or during frequent failures, a cache in hit only mode will return either UDP_HIT or UDP_MISS_NOFETCH. Neighbours will thus only fetch hits). <b>TUNNEL</b> when a binary tunnel was established for this transaction.',en:{instance:{one:"web server",other:"web servers"}}},"web_log.squid_transport_errors":{info:"These tags are optional and describe some error conditions which occurred during response delivery (if any). <b>ABORTED</b> when the response was not completed due to the connection being aborted (usually by the client). <b>TIMEOUT</b>, when the response was not completed due to a connection timeout.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.type_requests":{info:"Web server responses by type. <b>success</b> includes <b>1xx</b>, <b>2xx</b>, <b>304</b> and <b>401</b>, <b>error</b> includes <b>5xx</b>, <b>redirect</b> includes <b>3xx</b> except <b>304</b>, <b>bad</b> includes <b>4xx</b> except <b>401</b>, <b>other</b> are all the other responses.",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Requests by Type",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"web_log.request_processing_time":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",selectedDimensions:["avg"],chartLibrary:"gauge",title:"Average Response Time",desiredUnits:"milliseconds"}],en:{instance:{one:"web server",other:"web servers"}}},"portcheck.latency":{aggregationMethod:"avg",info:"The <b>latency</b> describes the time spent connecting to a TCP port. No data is sent or received. Currently, the accuracy of the latency is low and should be used as reference only.",en:{instance:{one:"service",other:"services"}}},"portcheck.status":{info:"The <b>status</b> chart verifies the availability of the service. Each status dimension will have a value of <b>1</b> if triggered. Dimension <b>success</b> is <b>1</b> only if connection could be established. This chart is most useful for alerts and third-party apps.",en:{instance:{one:"service",other:"services"}}},"chrony.stratum":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",valueRange:[0,null],title:"Maximum Stratum",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The stratum indicates the distance (hops) to the computer with the reference clock. The higher the stratum number, the more the timing accuracy and stability degrades.",en:{instance:{one:"system",other:"systems"}}},"chrony.current_correction":{info:"Any error in the system clock is corrected by slightly speeding up or slowing down the system clock until the error has been removed, and then returning to the system clock\u2019s normal speed. A consequence of this is that there will be a period when the system clock (as read by other programs) will be different from chronyd's estimate of the current true time (which it reports to NTP clients when it is operating as a server). The reported value is the difference due to this effect.",en:{instance:{one:"system",other:"systems"}}},"chrony.root_delay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Root Delay",valueRange:[0,null],colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"The total of the network path delays to the stratum-1 computer from which the computer is ultimately synchronised.",en:{instance:{one:"system",other:"systems"}}},"chrony.root_dispersion":{aggregationMethod:"avg",info:"The total dispersion accumulated through all the computers back to the stratum-1 computer from which the computer is ultimately synchronised. Dispersion is due to system clock resolution, statistical measurement variations, etc.",en:{instance:{one:"system",other:"systems"}}},"chrony.last_offset":{aggregationMethod:"avg",info:"The estimated local offset on the last clock update. A positive value indicates the local time (as previously estimated true time) was ahead of the time sources.",en:{instance:{one:"system",other:"systems"}}},"chrony.frequency":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Max Frequency",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The <b>frequency</b> is the rate by which the system\u2019s clock would be wrong if chronyd was not correcting it. It is expressed in ppm (parts per million). For example, a value of 1 ppm would mean that when the system\u2019s clock thinks it has advanced 1 second, it has actually advanced by 1.000001 seconds relative to true time.",en:{instance:{one:"system",other:"systems"}}},"chrony.residual_frequency":{aggregationMethod:"avg",info:"The <b>residual frequency</b> for the currently selected reference source. This reflects any difference between what the measurements from the reference source indicate the frequency should be and the frequency currently being used. The reason this is not always zero is that a smoothing procedure is applied to the frequency.",en:{instance:{one:"system",other:"systems"}}},"chrony.skew":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Skew",layout:{x:9,y:0,w:3,h:5}}],info:"The estimated error bound on the frequency.",en:{instance:{one:"system",other:"systems"}}},"chrony.ref_measurement_time":{aggregationMethod:"min",info:"The time elapsed since the last measurement from the reference source was processed.",en:{instance:{one:"system",other:"systems"}}},"chrony.leap_status":{info:"<p>The current leap status of the source.</p><p><b>Normal</b> - indicates the normal status (no leap second). <b>InsertSecond</b> - indicates that a leap second will be inserted at the end of the month. <b>DeleteSecond</b> - indicates that a leap second will be deleted at the end of the month. <b>Unsynchronised</b> - the server has not synchronized properly with the NTP server.</p>",en:{instance:{one:"system",other:"systems"}}},"chrony.activity":{info:"<p>The number of servers and peers that are online and offline.</p><p><b>Online</b> - the server or peer is currently online (i.e. assumed by chronyd to be reachable). <b>Offline</b> - the server or peer is currently offline (i.e. assumed by chronyd to be unreachable, and no measurements from it will be attempted). <b>BurstOnline</b> - a burst command has been initiated for the server or peer and is being performed. After the burst is complete, the server or peer will be returned to the online state. <b>BurstOffline</b> - a burst command has been initiated for the server or peer and is being performed. After the burst is complete, the server or peer will be returned to the offline state. <b>Unresolved</b> - the name of the server or peer was not resolved to an address yet.</p>",en:{instance:{one:"system",other:"systems"}}},"chrony.rms_offset":{aggregationMethod:"avg",info:"The root mean square (RMS) offset of the system clock from true time. Large offsets may indicate a problem with the clock or network synchronization.",en:{instance:{one:"system",other:"systems"}}},"chrony.update_interval":{aggregationMethod:"avg",info:"The interval between clock updates. Shorter intervals may improve accuracy but may also increase network load.",en:{instance:{one:"system",other:"systems"}}},"couchdb.active_tasks":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Tasks",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Active tasks running on this CouchDB <b>cluster</b>. Four types of tasks currently exist: indexer (view building), replication, database compaction and view compaction.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.replicator_jobs":{info:'Detailed breakdown of any replication jobs in progress on this node. For more information, see the <a href="http://docs.couchdb.org/en/latest/replication/replicator.html" target="_blank">replicator documentation</a>.',en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.open_files":{info:'Count of all files held open by CouchDB. If this value seems pegged at 1024 or 4096, your server process is probably hitting the open file handle limit and <a href="http://docs.couchdb.org/en/latest/maintenance/performance.html#pam-and-ulimit" target="_blank">needs to be increased.</a>',en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.activity":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Activity",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The activity of CouchDB nodes in the cluster. The number of requests being handled by the nodes per second. High values may indicate a high workload on the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.request_methods":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Request Methods",layout:{x:6,y:0,w:3,h:5}}],info:"The distribution of request methods being used on CouchDB nodes in the cluster. This can be useful for identifying the most common operations being performed on the nodes and potential performance bottlenecks.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.response_codes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Response Codes",layout:{x:9,y:0,w:3,h:5}}],info:"The distribution of response codes returned by CouchDB nodes in the cluster. This can be useful for identifying common error codes and potential issues with the nodes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.response_code_classes":{info:"The distribution of response code classes returned by CouchDB nodes in the cluster. This can be useful for identifying the general class of responses being returned by the nodes (e.g. success, error) and potential issues with the nodes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.erlang_vm_memory":{info:"The amount of memory used by the Erlang virtual machine (VM) running on CouchDB nodes in the cluster. This can be useful for monitoring the overall memory usage of the nodes and potential capacity issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.proccounts":{info:"The number of Erlang processes running on CouchDB nodes in the cluster. This can be useful for monitoring the overall workload of the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.peakmsgqueue":{info:"The maximum size of the message queue on CouchDB nodes in the cluster. This can be useful for monitoring the overall workload of the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.reductions":{info:"The number of reductions performed by the Erlang VM on CouchDB nodes in the cluster. Reductions are a measure of the computational work done by the VM and high values may indicate a high workload on the nodes and potential performance issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_file":{info:"The size of CouchDB databases on disk, including data and metadata. This can be useful for monitoring the overall size of the databases and potential capacity issues.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_external":{info:"The total size of CouchDB databases in external storage in bytes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_sizes_active":{info:"The total size of CouchDB databases in active memory in bytes.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_doc_count":{info:"The total number of documents stored in CouchDB databases.",en:{instance:{one:"cluster",other:"clusters"}}},"couchdb.db_doc_del_count":{info:"The total number of deleted documents stored in CouchDB databases.",en:{instance:{one:"cluster",other:"clusters"}}},"freeradius.authentication":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Authentication Requests",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The number of authentication requests that have been processed by the FreeRADIUS server. FreeRADIUS is a RADIUS server, and authentication requests are requests from clients to authenticate themselves with the server. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.authentication_access_responses":{info:"The number of access responses that have been sent by the FreeRADIUS server in response to authentication requests. Access responses are messages sent by the server to either grant or deny access to a client based on the authentication request. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.bad_authentication":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bad Authentication Requests",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"The number of bad authentication requests that have been received by the FreeRADIUS server. Bad authentication requests are requests that are improperly formatted or contain invalid data. Monitoring this metric can provide insight into the usage of the FreeRADIUS server and can help identify any issues with authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_authentication":{info:"The number of proxy authentication requests that have been processed by the FreeRADIUS server. Proxy authentication requests are requests from other RADIUS servers to authenticate a client on their behalf. Monitoring this metric can provide insight into the usage of the FreeRADIUS server as a proxy and can help identify any issues with proxy authentication requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_authentication_access_responses":{info:"The number of access responses that have been sent by the FreeRADIUS server in response to proxy authentication requests. Access responses are messages sent by the server to either grant or deny access to a client based on the authentication request. Monitoring this metric can provide insight into the usage of the FreeRADIUS server as a proxy and can help identify any issues with proxy authentication requests.",en:{instance:{one:"server",other:"servers"}}},"geth.goroutines":{info:"The number of goroutines in the Geth process.",en:{instance:{one:"process",other:"processes"}}},"geth.chaindata_db_size":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total chain data size",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The size of the chain data database.",en:{instance:{one:"database",other:"databases"}}},"geth.chainhead":{info:"The current head of the blockchain."},"geth.p2p_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[12],layout:{x:3,y:0,w:3,h:5}}],info:"The amount of bandwidth used by the P2P network.",en:{instance:{one:"network",other:"networks"}}},"geth.reorgs":{info:"The number of blockchain reorgs that have occurred."},"geth.reorgs_blocks":{info:"The number of blocks that have been reorganized in a blockchain reorg."},"geth.p2p_peers_calls":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total P2P peers calls",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The number of P2P peer calls made by the node."},"haproxy.backend_current_sessions":{info:"The number of current sessions in the backend of the HAProxy server. A session is a connection between a client and the server. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with session management.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_sessions":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"No. of Backend Sessions per proxy",layout:{x:0,y:0,w:3,h:5}}],info:"The total number of sessions in the backend of the HAProxy server. A session is a connection between a client and the server. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with session management.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_response_time_average":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average Response Time per proxy",layout:{x:3,y:0,w:3,h:5}}],info:"The average response time of the backend of the HAProxy server. The response time is the time it takes for the server to respond to a client's request. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with slow response times.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_queue_time_average":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",title:"Average Queue Time per proxy",layout:{x:9,y:0,w:3,h:5}}],info:"The average queue time of the backend of the HAProxy server. The queue time is the time a client's request spends in the server's queue before being processed. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with long queue times.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_current_queue":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Queue Size per proxy",layout:{x:6,y:0,w:3,h:5}}],info:"The current number of requests in the queue of the backend of the HAProxy server. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with the server's ability to handle incoming requests.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_http_responses":{info:"The number of HTTP responses sent by the backend of the HAProxy server. HTTP responses are messages sent by the server in response to client requests. Monitoring this metric can provide insight into the usage of the HAProxy server and can help identify any issues with HTTP responses.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"haproxy.backend_network_io":{info:"The network IO of the backend of the HAProxy server. Network IO is the amount of data transferred over the network by the server. Monitoring this metric can provide insight into the performance of the HAProxy server and can help identify any issues with network performance.",en:{instance:{one:"HAproxy server",other:"HAproxy servers"}}},"hdfs.heap_memory":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Heap Memory",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The amount of heap memory used by the HDFS service. Heap memory is the memory allocated to the Java virtual machine for storing objects. Monitoring this metric can provide insight into the memory usage of the HDFS service and can help identify any issues with memory allocation.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_count_total":{info:"The total number of garbage collection (GC) events that have occurred in the HDFS service. GC events are processes that reclaim memory by removing unused objects. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_time_total":{info:"The total amount of time spent on garbage collection (GC) in the HDFS service. GC is a process that reclaims memory by removing unused objects. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.gc_threshold":{info:"The GC threshold of the HDFS service. The GC threshold is the point at which the HDFS service triggers a GC event. Monitoring this metric can provide insight into the performance of the HDFS service and can help identify any issues with GC performance.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.rpc_bandwidth":{info:"The amount of bandwidth being used by HDFS Remote Procedure Calls (RPCs).",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.rpc_calls":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total RPC Calls",colors:s.default[7],layout:{x:3,y:0,w:3,h:5}}],info:"The number of HDFS Remote Procedure Calls (RPCs) being made.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.avg_queue_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Queue Time",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The average time spent in the queue for HDFS calls.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.avg_processing_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Processing Time",colors:s.default[0],layout:{x:9,y:0,w:3,h:5}}],info:"The average time spent processing HDFS calls.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.datanode_capacity":{info:"The capacity of the HDFS DataNode.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"hdfs.datanode_bandwidth":{info:"The bandwidth used by the HDFS DataNode.",en:{instance:{one:"HDFS service",other:"HDFS services"}}},"isc_dhcps.active_leases_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Leases",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of active leases in the ISC DHCP server. A lease is a contract that allows a client to use a particular IP address for a specified period of time. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with lease management.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"isc_dhcps.pool_active_leases":{info:"The number of active leases in a DHCP pool of the ISC DHCP server. A DHCP pool is a range of IP addresses that are available for allocation to clients. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with DHCP pool management.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"isc_dhcps.pool_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Pool Utilization",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The utilization of a DHCP pool in the ISC DHCP server. The utilization is the percentage of IP addresses in the pool that are currently leased to clients. Monitoring this metric can provide insight into the usage of the ISC DHCP server and can help identify any issues with DHCP pool utilization.",en:{instance:{one:"DHCP server",other:"DHCP servers"}}},"btrfs.disk":{family:"utilization",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",selectedDimensions:["unallocated"],title:"Maximum Unallocated Physical Disk Space",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Physical disk usage of BTRFS. The disk space reported here is the raw physical disk space assigned to the BTRFS volume (i.e. <b>before any RAID levels</b>). BTRFS uses a two-stage allocator, first allocating large regions of disk space for one type of block (data, metadata, or system), and then using a regular block allocator inside those regions. <b>unallocated</b> is the physical disk space that is not allocated yet and is available to become data, metadata or system on demand. When <b>unallocated</b> is zero, all available disk space has been allocated to a specific function. Healthy volumes should ideally have at least five percent of their total space <b>unallocated</b>. You can keep your volume healthy by running the <b>btrfs balance</b> command on it regularly (check <b>man btrfs-balance</b> for more info). Note that some of the space listed as <b>unallocated</b> may not actually be usable if the volume uses devices of different sizes.",en:{instance:{one:"device",other:"devices"}}},"btrfs.data":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (data)",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"Logical disk usage for BTRFS data. Data chunks are used to store the actual file data (file contents). The disk space reported here is the usable allocation (i.e. after any striping or replication). Healthy volumes should ideally have no more than a few GB of free space reported here persistently. Running <b>btrfs balance</b> can help here.",en:{instance:{one:"device",other:"devices"}}},"btrfs.metadata":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (metadata)",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"Logical disk usage for BTRFS metadata. Metadata chunks store most of the filesystem internal structures, as well as information like directory structure and file names. The disk space reported here is the usable allocation (i.e. after any striping or replication). Healthy volumes should ideally have no more than a few GB of free space reported here persistently. Running <b>btrfs balance</b> can help here.",en:{instance:{one:"device",other:"devices"}}},"btrfs.system":{family:"utilization",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Logical Disk Usage (system)",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:"Logical disk usage for BTRFS system. System chunks store information about the allocation of other chunks. The disk space reported here is the usable allocation (i.e. after any striping or replication). The values reported here should be relatively small compared to Data and Metadata, and will scale with the volume size and overall space usage.",en:{instance:{one:"device",other:"devices"}}},"rabbitmq.queued_messages":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queued Messages",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Overall total of ready and unacknowledged queued messages. Messages that are delivered immediately are not counted here."},"rabbitmq.message_rates":{info:"Overall messaging rates including acknowledgements, deliveries, redeliveries, and publishes."},"rabbitmq.global_counts":{info:"Overall totals for channels, consumers, connections, queues and exchanges."},"rabbitmq.file_descriptors":{info:'Total number of used filed descriptors. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-file-handle-limit" target="_blank">Open File Limits</a></b> for further details.'},"rabbitmq.sockets":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Sockets Used",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:'Total number of used socket descriptors. Each used socket also counts as a used file descriptor. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-file-handle-limit" target="_blank">Open File Limits</a></b> for further details.'},"rabbitmq.processes":{info:"Total number of processes running within the Erlang VM. This is not the same as the number of processes running on the host."},"rabbitmq.erlang_run_queue":{info:"Number of Erlang processes the Erlang schedulers have queued to run."},"rabbitmq.memory":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Memory Used",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:'Total amount of memory used by the RabbitMQ. This is a complex statistic that can be further analyzed in the management UI. See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-ram" target="_blank">Memory</a></b> for further details.'},"rabbitmq.disk_space":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Disk Space Consumed",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:'Total amount of disk space consumed by the message store(s). See <b><a href="https://www.rabbitmq.com/production-checklist.html#resource-limits-disk-space" target=_"blank">Disk Space Limits</a></b> for further details.'},"rabbitmq.queue_messages":{info:"Total amount of messages and their states in this queue."},"rabbitmq.queue_messages_stats":{info:"Overall messaging rates including acknowledgements, deliveries, redeliveries, and publishes."},"ntpd.sys_offset":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum System Offset",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"For hosts without any time critical services an offset of &lt; 100 ms should be acceptable even with high network latencies. For hosts with time critical services an offset of about 0.01 ms or less can be achieved by using peers with low delays and configuring optimal <b>poll exponent</b> values.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_jitter":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average System Jitter",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The jitter statistics are exponentially-weighted RMS averages. The system jitter is defined in the NTPv4 specification; the clock jitter statistic is computed by the clock discipline module.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_frequency":{info:"The frequency offset is shown in ppm (parts per million) relative to the frequency of the system. The frequency correction needed for the clock can vary significantly between boots and also due to external influences like temperature or radiation.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_wander":{info:"The wander statistics are exponentially-weighted RMS averages.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_rootdelay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average System Root Delay",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The rootdelay is the round-trip delay to the primary reference clock, similar to the delay shown by the <b>ping</b> command. A lower delay should result in a lower clock offset.",en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_stratum":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum System Stratum",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:'The distance in "hops" to the primary reference clock',en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_tc":{info:'Time constants and poll intervals are expressed as exponents of 2. The default poll exponent of 6 corresponds to a poll interval of 64 s. For typical Internet paths, the optimum poll interval is about 64 s. For fast LANs with modern computers, a poll exponent of 4 (16 s) is appropriate. The <a href="http://doc.ntp.org/current-stable/poll.html" target="_blank">poll process</a> sends NTP packets at intervals determined by the clock discipline algorithm.',en:{instance:{one:"system",other:"systems"}}},"ntpd.sys_precision":{colors:s.default[6],en:{instance:{one:"system",other:"systems"}}},"ntpd.peer_offset":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Peer Offset",colors:s.default[1],layout:{x:0,y:5,w:2,h:5}}],info:"The offset of the peer clock relative to the system clock in milliseconds. Smaller values here weight peers more heavily for selection after the initial synchronization of the local clock. For a system providing time service to other systems, these should be as low as possible.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_delay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Peer Delay",colors:s.default[12],layout:{x:0,y:5,w:2,h:5}}],info:"The round-trip time (RTT) for communication with the peer, similar to the delay shown by the <b>ping</b> command. Not as critical as either the offset or jitter, but still factored into the selection algorithm (because as a general rule, lower delay means more accurate time). In most cases, it should be below 100ms.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_dispersion":{info:"This is a measure of the estimated error between the peer and the local system. Lower values here are better.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_jitter":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Peer Jitter",colors:s.default[4],layout:{x:0,y:5,w:2,h:5}}],info:"This is essentially a remote estimate of the peer's <b>system_jitter</b> value. Lower values here weight highly in favor of peer selection, and this is a good indicator of overall quality of a given time server (good servers will have values not exceeding single digit milliseconds here, with high quality stratum one servers regularly having sub-millisecond jitter).",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_xleave":{info:'This variable is used in interleaved mode (used only in NTP symmetric and broadcast modes). See <a href="http://doc.ntp.org/current-stable/xleave.html" target="_blank">NTP Interleaved Modes</a>.',en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_rootdelay":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Peer Root Delay",colors:s.default[7],layout:{x:0,y:5,w:2,h:5}}],info:"For a stratum 1 server, this is the access latency for the reference clock. For lower stratum servers, it is the sum of the <b>peer_delay</b> and <b>peer_rootdelay</b> for the system they are syncing off of. Similarly to <b>peer_delay</b>, lower values here are technically better, but have limited influence in peer selection.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_rootdisp":{info:"Is the same as <b>peer_rootdelay</b>, but measures accumulated <b>peer_dispersion</b> instead of accumulated <b>peer_delay</b>.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_hmode":{info:"The <b>peer_hmode</b> and <b>peer_pmode</b> variables give info about what mode the packets being sent to and received from a given peer are. Mode 1 is symmetric active (both the local system and the remote peer have each other declared as peers in <b>/etc/ntp.conf</b>), Mode 2 is symmetric passive (only one side has the other declared as a peer), Mode 3 is client, Mode 4 is server, and Mode 5 is broadcast (also used for multicast and manycast operation).",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_pmode":{en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_hpoll":{info:"The <b>peer_hpoll</b> and <b>peer_ppoll</b> variables are log2 representations of the polling interval in seconds.",en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_ppoll":{en:{instance:{one:"peer",other:"peers"}}},"ntpd.peer_precision":{en:{instance:{one:"peer",other:"peers"}}},"spigotmc.tps":{info:"The running 1, 5, and 15 minute average number of server ticks per second. An idealized server will show 20.0 for all values, but in practice this almost never happens. Typical servers should show approximately 19.98-20.0 here. Lower values indicate progressively more server-side lag (and thus that you need better hardware for your server or a lower user limit). For every 0.05 ticks below 20, redstone clocks will lag behind by approximately 0.25%. Values below approximately 19.50 may interfere with complex free-running redstone circuits and will noticeably slow down growth."},"spigotmc.users":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Users",colors:s.default[12],layout:{x:0,y:0,w:3,h:5}}],info:"The number of currently connected users on the monitored Spigot server."},"boinc.tasks":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Tasks",colors:s.default[12],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of tasks and the number of active tasks. Active tasks are those which are either currently being processed, or are partially processed but suspended.",en:{instance:{one:"client",other:"clients"}}},"boinc.states":{mainheads:[{chartLibrary:"bars",title:"Task States",layout:{x:3,y:0,w:3,h:5}}],info:"Counts of tasks in each task state. The normal sequence of states is <b>New</b>, <b>Downloading</b>, <b>Ready to Run</b>, <b>Uploading</b>, <b>Uploaded</b>. Tasks which are marked <b>Ready to Run</b> may be actively running, or may be waiting to be scheduled. <b>Compute Errors</b> are tasks which failed for some reason during execution. <b>Aborted</b> tasks were manually cancelled, and will not be processed. <b>Failed Uploads</b> are otherwise finished tasks which failed to upload to the server, and usually indicate networking issues.",en:{instance:{one:"client",other:"clients"}}},"boinc.sched":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Task Scheduling States",layout:{x:6,y:0,w:3,h:5}}],info:"Counts of active tasks in each scheduling state. <b>Scheduled</b> tasks are the ones which will run if the system is permitted to process tasks. <b>Preempted</b> tasks are on standby, and will run if a <b>Scheduled</b> task stops running for some reason. <b>Uninitialized</b> tasks should never be present, and indicate tha the scheduler has not tried to schedule them yet.",en:{instance:{one:"client",other:"clients"}}},"boinc.process":{info:"Counts of active tasks in each process state. <b>Executing</b> tasks are running right now. <b>Suspended</b> tasks have an associated process, but are not currently running (either because the system isn't processing any tasks right now, or because they have been preempted by higher priority tasks). <b>Quit</b> tasks are exiting gracefully. <b>Aborted</b> tasks exceeded some resource limit, and are being shut down. <b>Copy Pending</b> tasks are waiting on a background file transfer to finish. <b>Uninitialized</b> tasks do not have an associated process yet.",en:{instance:{one:"client",other:"clients"}}},"w1sensor.temp":{aggregationMethod:"avg",info:"Temperature derived from 1-Wire temperature sensors.",en:{instance:{one:"sensor",other:"sensors"}}},"logind.sessions":{info:"Local and remote sessions.",en:{instance:{one:"system",other:"systems"}}},"logind.sessions_type":{mainheads:[{chartLibrary:"bars",title:"Session Types",layout:{x:0,y:0,w:3,h:5}}],info:"<p>Sessions of each session type.</p><p><b>Graphical</b> - sessions are running under one of X11, Mir, or Wayland. <b>Console</b> - sessions are usually regular text mode local logins, but depending on how the system is configured may have an associated GUI. <b>Other</b> - sessions are those that do not fall into the above categories (such as sessions for cron jobs or systemd timer units).</p>",en:{instance:{one:"system",other:"systems"}}},"logind.sessions_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Session States",layout:{x:3,y:0,w:3,h:5}}],info:"<p>Sessions of each session type.</p><p><b>Graphical</b> - sessions are running under one of X11, Mir, or Wayland. <b>Console</b> - sessions are usually regular text mode local logins, but depending on how the system is configured may have an associated GUI. <b>Other</b> - sessions are those that do not fall into the above categories (such as sessions for cron jobs or systemd timer units).</p>",en:{instance:{one:"system",other:"systems"}}},"logind.users_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"User States",layout:{x:6,y:0,w:3,h:5}}],info:"<p>Users in each user state.</p><p><b>Offline</b> - users are not logged in. <b>Closing</b> - users are in the process of logging out without lingering. <b>Online</b> - users are logged in, but have no active sessions. <b>Lingering</b> - users are not logged in, but have one or more services still running. <b>Active</b> - users are logged in, and have at least one active session.</p>",en:{instance:{one:"system",other:"systems"}}},"proxysql.pool_status":{info:"The status of the backend servers. <b>1=ONLINE</b> backend server is fully operational, <b>2=SHUNNED</b> backend sever is temporarily taken out of use because of either too many connection errors in a time that was too short, or replication lag exceeded the allowed threshold, <b>3=OFFLINE_SOFT</b> when a server is put into OFFLINE_SOFT mode, new incoming connections aren't accepted anymore, while the existing connections are kept until they became inactive. In other words, connections are kept in use until the current transaction is completed. This allows to gracefully detach a backend, <b>4=OFFLINE_HARD</b> when a server is put into OFFLINE_HARD mode, the existing connections are dropped, while new incoming connections aren't accepted either. This is equivalent to deleting the server from a hostgroup, or temporarily taking it out of the hostgroup for maintenance work, <b>-1</b> Unknown status.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_net":{info:"The amount of data sent to/received from the backend (This does not include metadata (packets' headers, OK/ERR packets, fields' description, etc).",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_overall_net":{info:"The amount of data sent to/received from the all backends (This does not include metadata (packets' headers, OK/ERR packets, fields' description, etc).",en:{instance:{one:"server",other:"servers"}}},"proxysql.questions":{info:"<b>questions</b> total number of queries sent from frontends, <b>slow_queries</b> number of queries that ran for longer than the threshold in milliseconds defined in global variable <b>mysql-long_query_time</b>. ",en:{instance:{one:"server",other:"servers"}}},"proxysql.connections":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["connected"],chartLibrary:"easypiechart",title:"Total Connected connections",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}},{"group_by[0]":["selected"],selectedDimensions:["aborted"],chartLibrary:"easypiechart",title:"Total Aborted connections",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:"<b>aborted</b> number of frontend connections aborted due to invalid credential or max_connections reached, <b>connected</b> number of frontend connections currently connected, <b>created</b> number of frontend connections created, <b>non_idle</b> number of frontend connections that are not currently idle. ",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_latency":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Max Pool Latency",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The currently ping time in microseconds, as reported from Monitor.",en:{instance:{one:"server",other:"servers"}}},"proxysql.queries":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queries",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The number of queries routed towards this particular backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_used_connections":{info:"The number of connections are currently used by ProxySQL for sending queries to the backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_free_connections":{info:"The number of connections are currently free. They are kept open in order to minimize the time cost of sending a query to the backend server.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_ok_connections":{info:"The number of connections were established successfully.",en:{instance:{one:"server",other:"servers"}}},"proxysql.pool_error_connections":{info:"The number of connections weren't established successfully.",en:{instance:{one:"server",other:"servers"}}},"proxysql.commands_count":{info:"The total number of commands of that type executed",en:{instance:{one:"server",other:"servers"}}},"proxysql.commands_duration":{info:"The total time spent executing commands of that type, in ms",en:{instance:{one:"server",other:"servers"}}},"sensors.temperature":{groupBy:["node"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The temperature of the system as reported by the sensors. High values can indicate cooling issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.fan":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Fan Speed",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The speed of the system fans as reported by the sensors. Low values can indicate cooling issues while high values can indicate excessive noise.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.voltage":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"easypiechart",title:"Minimum Voltage",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The voltage of the system as reported by the sensors. Low values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.current":{groupBy:["node"],aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Current",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:"The current of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.power":{groupBy:["node"],aggregationMethod:"avg",info:"The power of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.energy":{groupBy:["node"],aggregationMethod:"avg",info:"The energy of the system as reported by the sensors. High values can indicate power issues.",en:{instance:{one:"sensor",other:"sensors"}}},"sensors.humidity":{groupBy:["node"],aggregationMethod:"max",info:"The humidity of the system as reported by the sensors. High values can indicate cooling issues.",en:{instance:{one:"sensor",other:"sensors"}}},"tomcat.accesses":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"The number of requests made to the Tomcat server. It is important to monitor this metric to ensure that the server is not overloaded.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The amount of network bandwidth used by the Tomcat server. It is important to monitor this metric to ensure that the server is not overloaded.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.threads":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Threads",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"The number of threads running in the Tomcat application. It is important to monitor this metric to ensure that the application is running efficiently.",en:{instance:{one:"web server",other:"web servers"}}},"tor.traffic":{info:"This metric tracks Tor traffic statistics collected form the Tor control port. It is important to monitor this metric to ensure that the Tor network is not overloaded.",en:{instance:{one:"server",other:"servers"}}},"powersupply.capacity":{family:"charge",aggregationMethod:"avg",info:"The current battery charge.",en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.charge":{family:"charge",info:'<p>The battery charge in Amp-hours.</p><p><b>now</b> - actual charge value. <b>full</b>, <b>empty</b> - last remembered value of charge when battery became full/empty. It also could mean "value of charge when battery considered full/empty at given conditions (temperature, age)". I.e. these attributes represents real thresholds, not design values. <b>full_design</b>, <b>empty_design</b> - design charge values, when battery considered full/empty.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.energy":{family:"charge",info:'<p>The battery charge in Watt-hours.</p><p><b>now</b> - actual charge value. <b>full</b>, <b>empty</b> - last remembered value of charge when battery became full/empty. It also could mean "value of charge when battery considered full/empty at given conditions (temperature, age)". I.e. these attributes represents real thresholds, not design values. <b>full_design</b>, <b>empty_design</b> - design charge values, when battery considered full/empty.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"powersupply.voltage":{family:"voltage",info:'<p>The power supply voltage.</p><p><b>now</b> - current voltage. <b>max</b>, <b>min</b> - voltage values that hardware could only guess (measure and retain) the thresholds of a given power supply. <b>max_design</b>, <b>min_design</b> - design values for maximal and minimal power supply voltages. Maximal/minimal means values of voltages when battery considered "full"/"empty" at normal conditions.</p>',en:{instance:{one:"Power supply",other:"Power supplies"}}},"vsphere.host_mem_usage_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",title:"Top Hosts by Memory Usage",dimensionsSort:"valueDesc",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Percentage of used machine memory: <b>consumed</b> / <b>machine-memory-size</b>.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_mem_usage":{info:'<b>granted</b> is amount of machine memory that is mapped for a host, it equals sum of all granted metrics for all powered-on virtual machines, plus machine memory for vSphere services on the host. <b>consumed</b> is amount of machine memory used on the host, it includes memory used by the Service Console, the VMkernel, vSphere services, plus the total consumed metrics for all running virtual machines. <b>consumed</b> = <b>total host memory</b> - <b>free host memory</b>.<b>active</b> is sum of all active metrics for all powered-on virtual machines plus vSphere services (such as COS, vpxa) on the host.<b>shared</b> is sum of all shared metrics for all powered-on virtual machines, plus amount for vSphere services on the host. <b>sharedcommon</b> is amount of machine memory that is shared by all powered-on virtual machines and vSphere services on the host. <b>shared</b> - <b>sharedcommon</b> = machine memory (host memory) savings (KB). For details see <a href="https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-BFDC988B-F53D-4E97-9793-A002445AFAE1.html" target="_blank">Measuring and Differentiating Types of Memory Usage</a> and <a href="https://vdc-repo.vmware.com/vmwb-repository/dcr-public/fe08899f-1eec-4d8d-b3bc-a6664c168c2c/7fdf97a1-4c0d-4be0-9d43-2ceebbc174d9/doc/memory_counters.html" target="_blank">Memory Counters</a> articles.',en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_mem_swap_rate":{info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>in</b> is sum of <b>swapinRate</b> values for all powered-on virtual machines on the host.<b>swapinRate</b> is rate at which VMKernel reads data into machine memory from the swap file. <b>out</b> is sum of <b>swapoutRate</b> values for all powered-on virtual machines on the host.<b>swapoutRate</b> is rate at which VMkernel writes to the virtual machine\u2019s swap file from machine memory.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.vm_mem_usage_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top VMs by Memory Usage",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"Percentage of used virtual machine \u201cphysical\u201d memory: <b>active</b> / <b>virtual machine configured size</b>.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_usage":{info:'<b>granted</b> is amount of guest \u201cphysical\u201d memory that is mapped to machine memory, it includes <b>shared</b> memory amount. <b>consumed</b> is amount of guest \u201cphysical\u201d memory consumed by the virtual machine for guest memory, <b>consumed</b> = <b>granted</b> - <b>memory saved due to memory sharing</b>. <b>active</b> is amount of memory that is actively used, as estimated by VMkernel based on recently touched memory pages. <b>shared</b> is amount of guest \u201cphysical\u201d memory shared with other virtual machines (through the VMkernel\u2019s transparent page-sharing mechanism, a RAM de-duplication technique). For details see <a href="https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.resmgmt.doc/GUID-BFDC988B-F53D-4E97-9793-A002445AFAE1.html" target="_blank">Measuring and Differentiating Types of Memory Usage</a> and <a href="https://vdc-repo.vmware.com/vmwb-repository/dcr-public/fe08899f-1eec-4d8d-b3bc-a6664c168c2c/7fdf97a1-4c0d-4be0-9d43-2ceebbc174d9/doc/memory_counters.html" target="_blank">Memory Counters</a> articles.',en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_swap_rate":{info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>in</b> is rate at which VMKernel reads data into machine memory from the swap file. <b>out</b> is rate at which VMkernel writes to the virtual machine\u2019s swap file from machine memory.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.vm_mem_swap":{info:"This statistic refers to VMkernel swapping and not to guest OS swapping. <b>swapped</b> is amount of guest physical memory swapped out to the virtual machine's swap file by the VMkernel. Swapped memory stays on disk until the virtual machine needs it.",en:{instance:{one:"vm",other:"vms"}}},"vsphere.cpu_usage_total":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",dimensions:["consumed"],chartLibrary:"easypiechart",title:"Average CPU Usage",colors:s.default[12],layout:{x:6,y:0,w:3,h:5}}],info:"Summary CPU usage statistics across all CPUs/cores."},"vsphere.net_bandwidth_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.net_packets_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.net_errors_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.net_drops_total":{info:"Summary receive/transmit statistics across all network interfaces."},"vsphere.disk_usage_total":{info:"Summary read/write statistics across all disks."},"vsphere.disk_max_latency":{aggregationMethod:"avg",info:"<b>latency</b> is highest latency value across all disks."},"vsphere.overall_status":{info:"<b>0</b> is unknown, <b>1</b> is OK, <b>2</b> is might have a problem, <b>3</b> is definitely has a problem."},"vcsa.system_health":{info:"<b>-1</b>: unknown; <b>0</b>: all components are healthy; <b>1</b>: one or more components might become overloaded soon; <b>2</b>: one or more components in the appliance might be degraded; <b>3</b>: one or more components might be in an unusable status and the appliance might become unresponsive soon; <b>4</b>: no health data is available.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.components_health":{info:"<b>-1</b>: unknown; <b>0</b>: healthy; <b>1</b>: healthy, but may have some problems; <b>2</b>: degraded, and may have serious problems; <b>3</b>: unavailable, or will stop functioning soon; <b>4</b>: no health data is available.",en:{instance:{one:"server appliance",other:"server appliances"}}},"vcsa.software_updates_health":{info:"<b>softwarepackages</b> represents information on available software updates available in the remote vSphere Update Manager repository.<br><b>-1</b>: unknown; <b>0</b>: no updates available; <b>2</b>: non-security updates are available; <b>3</b>: security updates are available; <b>4</b>: an error retrieving information on software updates.",en:{instance:{one:"server appliance",other:"server appliances"}}},"zookeeper.server_state":{info:"<b>0</b>: unknown, <b>1</b>: leader, <b>2</b>: follower, <b>3</b>: observer, <b>4</b>: standalone.",en:{instance:{one:"server",other:"servers"}}},"squidlog.requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[1],layout:{x:0,y:0,w:3,h:5}}],info:"Total number of requests (log lines read). It includes <b>unmatched</b>."},"squidlog.excluded_requests":{info:'<b>unmatched</b> counts the lines in the log file that are not matched by the plugin parser (<a href="https://github.com/netdata/netdata/issues/new?title=squidlog%20reports%20unmatched%20lines&body=squidlog%20plugin%20reports%20unmatched%20lines.%0A%0AThis%20is%20my%20log:%0A%0A%60%60%60txt%0A%0Aplease%20paste%20your%20squid%20server%20log%20here%0A%0A%60%60%60" target="_blank">let us know</a> if you have any unmatched).'},"squidlog.type_requests":{info:"Requests by response type:<br><ul> <li><b>success</b> includes 1xx, 2xx, 0, 304, 401.</li> <li><b>error</b> includes 5xx and 6xx.</li> <li><b>redirect</b> includes 3xx except 304.</li> <li><b>bad</b> includes 4xx except 401.</li> </ul>"},"squidlog.http_status_code_class_responses":{info:'The HTTP response status code classes. According to <a href="https://tools.ietf.org/html/rfc7231" target="_blank">rfc7231</a>:<br> <li><b>1xx</b> is informational responses.</li> <li><b>2xx</b> is successful responses.</li> <li><b>3xx</b> is redirects.</li> <li><b>4xx</b> is bad requests.</li> <li><b>5xx</b> is internal server errors.</li> </ul>Squid also uses <b>0</b> for a result code being unavailable, and <b>6xx</b> to signal an invalid header, a proxy error.'},"squidlog.http_status_code_responses":{info:"Number of responses for each http response status code individually."},"squidlog.uniq_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Unique Clients",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"Unique clients (requesting instances), within each data collection iteration. If data collection is <b>per second</b>, this chart shows <b>unique clients per second</b>."},"squidlog.bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bandwidth",colors:s.default[7],layout:{x:6,y:0,w:3,h:5}}],info:"The size is the amount of data delivered to the clients. Mind that this does not constitute the net object size, as headers are also counted. Also, failed requests may deliver an error page, the size of which is also logged here."},"squidlog.response_time":{aggregationMethod:"avg",info:"The elapsed time considers how many milliseconds the transaction busied the cache. It differs in interpretation between TCP and UDP:<ul> <li><b>TCP</b> this is basically the time from having received the request to when Squid finishes sending the last byte of the response.</li> <li><b>UDP</b> this is the time between scheduling a reply and actually sending it.</li> </ul>Please note that <b>the entries are logged after the reply finished being sent</b>, not during the lifetime of the transaction."},"squidlog.cache_result_code_requests":{info:'The Squid result code is composed of several tags (separated by underscore characters) which describe the response sent to the client. Check the <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Squid_result_codes" target="_blank">squid documentation</a> about them.'},"squidlog.cache_result_code_transport_tag_requests":{info:"These tags are always present and describe delivery method.<br><ul> <li><b>TCP</b> requests on the HTTP port (usually 3128).</li> <li><b>UDP</b> requests on the ICP port (usually 3130) or HTCP port (usually 4128).</li> <li><b>NONE</b> Squid delivered an unusual response or no response at all. Seen with cachemgr requests and errors, usually when the transaction fails before being classified into one of the above outcomes. Also seen with responses to CONNECT requests.</li> </ul>"},"squidlog.cache_result_code_handling_tag_requests":{info:'These tags are optional and describe why the particular handling was performed or where the request came from.<br><ul> <li><b>CF</b> at least one request in this transaction was collapsed. See <a href="http://www.squid-cache.org/Doc/config/collapsed_forwarding/" target="_blank">collapsed_forwarding</a> for more details about request collapsing.</li> <li><b>CLIENT</b> usually seen with client issued a "no-cache", or analogous cache control command along with the request. Thus, the cache has to validate the object.</li> <li><b>IMS</b> the client sent a revalidation (conditional) request.</li> <li><b>ASYNC</b> the request was generated internally by Squid. Usually this is background fetches for cache information exchanges, background revalidation from <i>stale-while-revalidate</i> cache controls, or ESI sub-objects being loaded.</li> <li><b>SWAPFAIL</b> the object was believed to be in the cache, but could not be accessed. A new copy was requested from the server.</li> <li><b>REFRESH</b> a revalidation (conditional) request was sent to the server.</li> <li><b>SHARED</b> this request was combined with an existing transaction by collapsed forwarding.</li> <li><b>REPLY</b> the HTTP reply from server or peer. Usually seen on <b>DENIED</b> due to <a href="http://www.squid-cache.org/Doc/config/http_reply_access/" target="_blank">http_reply_access</a> ACLs preventing delivery of servers response object to the client.</li> </ul>'},"squidlog.cache_code_object_tag_requests":{info:'These tags are optional and describe what type of object was produced.<br><ul> <li><b>NEGATIVE</b> only seen on HIT responses, indicating the response was a cached error response. e.g. <b>404 not found</b>.</li> <li><b>STALE</b> the object was cached and served stale. This is usually caused by <i>stale-while-revalidate</i> or <i>stale-if-error</i> cache controls.</li> <li><b>OFFLINE</b> the requested object was retrieved from the cache during <a href="http://www.squid-cache.org/Doc/config/offline_mode/" target="_blank">offline_mode</a>. The offline mode never validates any object.</li> <li><b>INVALID</b> an invalid request was received. An error response was delivered indicating what the problem was.</li> <li><b>FAILED</b> only seen on <b>REFRESH</b> to indicate the revalidation request failed. The response object may be the server provided network error or the stale object which was being revalidated depending on stale-if-error cache control.</li> <li><b>MODIFIED</b> only seen on <b>REFRESH</b> responses to indicate revalidation produced a new modified object.</li> <li><b>UNMODIFIED</b> only seen on <b>REFRESH</b> responses to indicate revalidation produced a 304 (Not Modified) status. The client gets either a full 200 (OK), a 304 (Not Modified), or (in theory) another response, depending on the client request and other details.</li> <li><b>REDIRECT</b> Squid generated an HTTP redirect response to this request.</li> </ul>'},"squidlog.cache_code_load_source_tag_requests":{info:"These tags are optional and describe whether the response was loaded from cache, network, or otherwise.<br><ul> <li><b>HIT</b> the response object delivered was the local cache object.</li> <li><b>MEM</b> the response object came from memory cache, avoiding disk accesses. Only seen on HIT responses.</li> <li><b>MISS</b> the response object delivered was the network response object.</li> <li><b>DENIED</b> the request was denied by access controls.</li> <li><b>NOFETCH</b> an ICP specific type, indicating service is alive, but not to be used for this request.</li> <li><b>TUNNEL</b> a binary tunnel was established for this transaction.</li> </ul>"},"squidlog.cache_code_error_tag_requests":{info:"These tags are optional and describe some error conditions which occurred during response delivery.<br><ul> <li><b>ABORTED</b> the response was not completed due to the connection being aborted (usually by the client).</li> <li><b>TIMEOUT</b> the response was not completed due to a connection timeout.</li> <li><b>IGNORED</b> while refreshing a previously cached response A, Squid got a response B that was older than A (as determined by the Date header field). Squid ignored response B (and attempted to use A instead).</li> </ul>"},"squidlog.http_method_requests":{info:'The request method to obtain an object. Please refer to section <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Request_methods" target="_blank">request-methods</a> for available methods and their description.'},"squidlog.hier_code_requests":{info:'A code that explains how the request was handled, e.g. by forwarding it to a peer, or going straight to the source. Any hierarchy tag may be prefixed with <b>TIMEOUT_</b>, if the timeout occurs waiting for all ICP replies to return from the neighbours. The timeout is either dynamic, if the <a href="http://www.squid-cache.org/Doc/config/icp_query_timeout/" target="_blank">icp_query_timeout</a> was not set, or the time configured there has run up. Refer to <a href="https://wiki.squid-cache.org/SquidFaq/SquidLogs#Hierarchy_Codes" target="_blank">Hierarchy Codes</a> for details on hierarchy codes.'},"squidlog.server_address_forwarded_requests":{info:"The IP address or hostname where the request (if a miss) was forwarded. For requests sent to origin servers, this is the origin server's IP address. For requests sent to a neighbor cache, this is the neighbor's hostname. NOTE: older versions of Squid would put the origin server hostname here."},"squidlog.mime_type_requests":{info:"The content type of the object as seen in the HTTP reply header. Please note that ICP exchanges usually don't have any content type."},"cockroachdb.process_cpu_time_combined_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average CPU Usage",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"Current combined cpu utilization, calculated as <b>(user+system)/num of logical cpus</b>."},"cockroachdb.host_disk_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Disk Bandwidth",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"Summary disk bandwidth statistics across all system host disks."},"cockroachdb.host_disk_operations":{info:"Summary disk operations statistics across all system host disks."},"cockroachdb.host_disk_iops_in_progress":{info:"Summary disk iops in progress statistics across all system host disks."},"cockroachdb.host_network_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Network Bandwidth",colors:s.default[4],layout:{x:6,y:0,w:3,h:5}}],info:"Summary network bandwidth statistics across all system host network interfaces."},"cockroachdb.host_network_packets":{info:"Summary network packets statistics across all system host network interfaces."},"cockroachdb.live_nodes":{info:"Will be <b>0</b> if this node is not itself live."},"cockroachdb.total_storage_capacity":{info:"Entire disk capacity. It includes non-CR data, CR data, and empty space."},"cockroachdb.storage_capacity_usability":{info:"<b>usable</b> is sum of empty space and CR data, <b>unusable</b> is space used by non-CR data."},"cockroachdb.storage_usable_capacity":{info:"Breakdown of <b>usable</b> space."},"cockroachdb.storage_used_capacity_percentage":{aggregationMethod:"avg",info:"<b>total</b> is % of <b>total</b> space used, <b>usable</b> is % of <b>usable</b> space used."},"cockroachdb.sql_bandwidth":{info:"The total amount of SQL client network traffic."},"cockroachdb.sql_errors":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total SQL Errors",colors:s.default[7],layout:{x:9,y:0,w:3,h:5}}],info:"<b>statement</b> is statements resulting in a planning or runtime error, <b>transaction</b> is SQL transactions abort errors."},"cockroachdb.sql_started_ddl_statements":{info:"The amount of <b>started</b> DDL (Data Definition Language) statements. This type means database schema changes. It includes <b>CREATE</b>, <b>ALTER</b>, <b>DROP</b>, <b>RENAME</b>, <b>TRUNCATE</b> and <b>COMMENT</b> statements."},"cockroachdb.sql_executed_ddl_statements":{info:"The amount of <b>executed</b> DDL (Data Definition Language) statements. This type means database schema changes. It includes <b>CREATE</b>, <b>ALTER</b>, <b>DROP</b>, <b>RENAME</b>, <b>TRUNCATE</b> and <b>COMMENT</b> statements."},"cockroachdb.sql_started_dml_statements":{info:"The amount of <b>started</b> DML (Data Manipulation Language) statements."},"cockroachdb.sql_executed_dml_statements":{info:"The amount of <b>executed</b> DML (Data Manipulation Language) statements."},"cockroachdb.sql_started_tcl_statements":{info:"The amount of <b>started</b> TCL (Transaction Control Language) statements."},"cockroachdb.sql_executed_tcl_statements":{info:"The amount of <b>executed</b> TCL (Transaction Control Language) statements."},"cockroachdb.live_bytes":{info:"The amount of live data used by both applications and the CockroachDB system."},"cockroachdb.kv_transactions":{info:"KV transactions breakdown:<br><ul> <li><b>committed</b> committed KV transactions (including 1PC).</li> <li><b>fast-path_committed</b> KV transaction on-phase commit attempts.</li> <li><b>aborted</b> aborted KV transactions.</li> </ul>"},"cockroachdb.kv_transaction_restarts":{info:'KV transactions restarts breakdown:<br><ul> <li><b>write too old</b> restarts due to a concurrent writer committing first.</li> <li><b>write too old (multiple)</b> restarts due to multiple concurrent writers committing first.</li> <li><b>forwarded timestamp (iso=serializable)</b> restarts due to a forwarded commit timestamp and isolation=SERIALIZABLE".</li> <li><b>possible replay</b> restarts due to possible replays of command batches at the storage layer.</li> <li><b>async consensus failure</b> restarts due to async consensus writes that failed to leave intents.</li> <li><b>read within uncertainty interval</b> restarts due to reading a new value within the uncertainty interval.</li> <li><b>aborted</b> restarts due to an abort by a concurrent transaction (usually due to deadlock).</li> <li><b>push failure</b> restarts due to a transaction push failure.</li> <li><b>unknown</b> restarts due to a unknown reasons.</li> </ul>'},"cockroachdb.ranges":{info:'CockroachDB stores all user data (tables, indexes, etc.) and almost all system data in a giant sorted map of key-value pairs. This keyspace is divided into "ranges", contiguous chunks of the keyspace, so that every key can always be found in a single range.'},"cockroachdb.ranges_replication_problem":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Replication Problems",colors:s.default[12],layout:{x:9,y:0,w:3,h:5}}],info:"Ranges with not optimal number of replicas:<br><ul> <li><b>unavailable</b> ranges with fewer live replicas than needed for quorum.</li> <li><b>under replicated</b> ranges with fewer live replicas than the replication target.</li> <li><b>over replicated</b> ranges with more live replicas than the replication target.</li> </ul>"},"cockroachdb.replicas":{info:"CockroachDB replicates each range (3 times by default) and stores each replica on a different node."},"cockroachdb.replicas_leaders":{info:"For each range, one of the replicas is the <b>leader</b> for write requests, <b>not leaseholders</b> is the number of Raft leaders whose range lease is held by another store."},"cockroachdb.replicas_leaseholders":{info:'For each range, one of the replicas holds the "range lease". This replica, referred to as the <b>leaseholder</b>, is the one that receives and coordinates all read and write requests for the range.'},"cockroachdb.queue_processing_failures":{info:"Failed replicas breakdown by queue:<br><ul> <li><b>gc</b> replicas which failed processing in the GC queue.</li> <li><b>replica gc</b> replicas which failed processing in the replica GC queue.</li> <li><b>replication</b> replicas which failed processing in the replicate queue.</li> <li><b>split</b> replicas which failed processing in the split queue.</li> <li><b>consistency</b> replicas which failed processing in the consistency checker queue.</li> <li><b>raft log</b> replicas which failed processing in the Raft log queue.</li> <li><b>raft snapshot</b> replicas which failed processing in the Raft repair queue.</li> <li><b>time series maintenance</b> replicas which failed processing in the time series maintenance queue.</li> </ul>"},"cockroachdb.rebalancing_queries":{info:"Number of kv-level requests received per second by the store, averaged over a large time period as used in rebalancing decisions."},"cockroachdb.rebalancing_writes":{info:"Number of keys written (i.e. applied by raft) per second to the store, averaged over a large time period as used in rebalancing decisions."},"cockroachdb.slow_requests":{info:"Requests that have been stuck for a long time."},"cockroachdb.timeseries_samples":{info:"The amount of metric samples written to disk."},"cockroachdb.timeseries_write_errors":{info:"The amount of errors encountered while attempting to write metrics to disk."},"cockroachdb.timeseries_write_bytes":{info:"Size of metric samples written to disk."},"cockroachdb.process_cpu_time_percentage":{aggregationMethod:"avg",info:"The percentage of CPU time used by the CockroachDB process. High usage may indicate the need for additional resources or optimization."},"cockroachdb.process_memory":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Memory Usage",colors:s.default[1],layout:{x:0,y:5,w:3,h:5}}],info:"The amount of memory used by the CockroachDB process. High memory usage may indicate the need for additional resources or optimization."},"cockroachdb.process_file_descriptors":{info:"The number of file descriptors used by the CockroachDB process. High usage may indicate the need for additional resources or optimization."},"cockroachdb.process_uptime":{aggregationMethod:"min",info:"The amount of time that the CockroachDB process has been running. This can be useful for understanding the overall health and stability of the system."},"cockroachdb.node_liveness_heartbeats":{info:"The number of liveness heartbeats sent by the CockroachDB node. This can be useful for understanding the overall health and stability of the cluster."},"cockroachdb.sql_statements_total":{info:"The total number of SQL statements executed in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.sql_active_distributed_queries":{info:"The number of active distributed SQL queries in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.sql_distributed_flows":{info:"'The number of active distributed flows in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.rocksdb_table_operations":{info:"The number of RocksDB table operations in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.rocksdb_cache_hit_rate":{aggregationMethod:"avg",info:"The RocksDB cache hit rate in the CockroachDB cluster. This can be useful for understanding the efficiency of the cache and identifying potential performance issues."},"cockroachdb.code_heap_memory_usage":{info:"The amount of memory used by the code heap in the CockroachDB cluster. High usage may indicate the need for additional resources or optimization."},"cockroachdb.goroutines":{info:"The number of goroutines in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"cockroachdb.gc_count":{info:"The number of garbage collection cycles in the CockroachDB cluster. This can be useful for understanding overall system performance and potential bottlenecks."},"cockroachdb.gc_pause":{info:"The total time spent in garbage collection pauses in the CockroachDB cluster. High values may indicate the need for optimization or additional resources."},"cockroachdb.cgo_calls":{info:"The number of CGo calls in the CockroachDB cluster. This can be useful for understanding overall system load and potential bottlenecks."},"perf.instructions_per_cycle":{info:'An IPC < 1.0 likely means memory bound, and an IPC > 1.0 likely means instruction bound. For more details about the metric take a look at this <a href="https://www.brendangregg.com/blog/2017-05-09/cpu-utilization-is-wrong.html" target="_blank">blog post</a>.'},"filesystem.vfs_deleted_objects":{title:"VFS remove",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS unlinker function</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_unlink">application</a> and <a href="#ebpf_services_vfs_unlink">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_unlink"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io":{title:"VFS IO",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write">application</a> and <a href="#ebpf_services_vfs_write">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io_bytes":{title:"VFS bytes written",info:'Total of bytes read or written with success using the <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write_bytes">application</a> and <a href="#ebpf_services_vfs_write_bytes">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io_bytes"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_io_error":{title:"VFS IO error",info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS I/O functions</a>. This chart may not show all file system events if it uses other functions to store data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_write_error">application</a> and <a href="#ebpf_services_vfs_write_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_io_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_fsync":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function</a>. This chart may not show all file system events if it uses other functions to sync data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_sync">application</a> and <a href="#ebpf_services_vfs_sync">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_sync"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_fsync_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS syncer function.</a>. This chart may not show all file system events if it uses other functions to sync data on disk. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_sync_error">application</a> and <a href="#ebpf_services_vfs_sync_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_sync_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_open":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. This chart may not show all file system events if it uses other functions to open files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_open">application</a> and <a href="#ebpf_services_vfs_open">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_open"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_open_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS opener function</a>. This chart may not show all file system events if it uses other functions to open files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_open_error">application</a> and <a href="#ebpf_services_vfs_open_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_open_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_create":{info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. This chart may not show all file system events if it uses other functions to create files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_create">application</a> and <a href="#ebpf_services_vfs_create">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_create"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.vfs_create_error":{info:'Number of failed calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">VFS creator function</a>. This chart may not show all file system events if it uses other functions to create files. Netdata shows virtual file system metrics per <a href="#ebpf_apps_vfs_craete_error">application</a> and <a href="#ebpf_services_vfs_create_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File Systems</a>.<div id="ebpf_global_vfs_create_error"></div>',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring ext4 reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+'to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring ext4 writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring ext4 opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.ext4_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring ext4 syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#ext4" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring xfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring xfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring xfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.xfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring xfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#xfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring nfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring nfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring nfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.nfs_attribute_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each get attribute request monitoring nfs attribute <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#nfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring zfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring zfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring zfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.zfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring zfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#zfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_read_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each read request monitoring btrfs reader <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_write_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each write request monitoring btrfs writer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_open_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each open request monitoring btrfs opener <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"filesystem.btrfs_sync_latency":{aggregationMethod:"avg",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> for each sync request monitoring btrfs syncer <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#btrfs" target="_blank">function</a>.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"mount_points.call":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Syscalls to mount and unmount",layout:{x:6,y:0,w:3,h:5}}],info:'Monitor calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#mount-points" target="_blank">syscalls</a> that are responsible for attaching (<b>mount(2)</b>) or removing filesystems (<b>umount(2)</b>). This chart has relationship with <a href="#menu_filesystem">File systems</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"mount_points.error":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Errors to mount and unmount",colors:s.default[1],layout:{x:9,y:0,w:3,h:5}}],info:'Monitor errors in calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#mount-points" target="_blank">syscalls</a> that are responsible for attaching (<b>mount(2)</b>) or removing filesystems (<b>umount(2)</b>). This chart has relationship with <a href="#menu_filesystem">File systems</a>.'+g,en:{instance:{one:"system",other:"systems"}}},"filesystem.file_descriptor":{info:'Number of calls for internal functions on the Linux kernel responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open and closing files</a>. Netdata shows file access per <a href="#ebpf_apps_file_open">application</a> and <a href="#ebpf_services_file_open">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File systems</a>',en:{instance:{one:"system",other:"systems"}}},"filesystem.file_error":{info:'Number of failed calls to the kernel internal function responsible <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">to open and closing files</a>. Netdata shows file error per <a href="#ebpf_apps_file_open_error">application</a> and <a href="#ebpf_services_file_open_error">cgroup (systemd Services)</a> if <a href="https://learn.netdata.cloud/guides/troubleshoot/monitor-debug-applications-ebpf" target="_blank">apps</a> or <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#integration-with-cgroupsplugin" target="_blank">cgroup (systemd Services)</a> plugins are enabled.'+g+' to monitor <a href="#menu_filesystem">File systems</a>.',en:{instance:{one:"system",other:"systems"}}},"netdata.aclk_status":{valueRange:[0,1],info:"This chart shows if ACLK was online during entirety of the sample duration.",en:{instance:{one:"agent",other:"agents"}}},"netdata.aclk_query_per_second":{info:"This chart shows how many queries were added for ACLK_query thread to process and how many it was actually able to process.",en:{instance:{one:"agent",other:"agents"}}},"netdata.aclk_latency_mqtt":{aggregationMethod:"avg",info:"Measures latency between MQTT publish of the message and it's PUB_ACK being received",en:{instance:{one:"agent",other:"agents"}}},"vernemq.sockets":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["open_sockets"],chartLibrary:"gauge",title:"Total Connected Clients",desiredUnits:"clients"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_processes":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["queue_processes"],chartLibrary:"gauge",title:"Total Queues Processes",desiredUnits:"processes"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_messages":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["queue_message_in"],chartLibrary:"easypiechart",title:"Total MQTT Receive Rate",desiredUnits:"messages/s"},{"group_by[0]":["selected"],selectedDimensions:["queue_message_out"],chartLibrary:"easypiechart",title:"Total MQTT Send Rate",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.average_scheduler_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["system_utilization"],chartLibrary:"gauge",title:"Maximum Scheduler Utilization",colors:s.default[5],desiredUnits:"percentage"}],en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_unsubscribe":{info:"This metric measures the number of MQTT unsubscribe attempts. Monitoring this metric can help identify any potential issues related to unsubscription.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish":{info:"This metric measures the number of MQTT publish attempts. Monitoring this metric can help identify any potential issues related to publishing.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish_errors":{info:"This metric measures the number of errors encountered during MQTT publish attempts. Monitoring this metric can help identify any potential issues related to publishing.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_publish_auth_errors":{info:"This metric measures the number of authentication errors encountered during MQTT publish attempts. Monitoring this metric can help identify any potential authentication issues.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback":{info:"This metric measures the number of MQTT puback requests. A PUBACK message is the response to a PUBLISH message with QoS level 1. A PUBACK message is sent by a server in response to a PUBLISH message from a publishing client, and by a subscriber in response to a PUBLISH message from the server. Monitoring this metric can help identify any potential issues related to acknowledgements.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_ping":{info:"This metric measures the number of MQTT ping requests. Monitoring this metric can help identify any potential issues related to communication.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.messages_rate":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_rate_in"],chartLibrary:"easypiechart",title:"Total Published",desiredUnits:"messages/s"},{"group_by[0]":["selected"],selectedDimensions:["pulsar_rate_out"],chartLibrary:"easypiechart",title:"Total Dispatched",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_msg_rate_redeliver":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_subscription_msg_rate_redeliver"],chartLibrary:"gauge",title:"Total Redelivered",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_blocked_on_unacked_messages":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_subscription_blocked_on_unacked_messages"],chartLibrary:"gauge",title:"Total Blocked On Unacked",desiredUnits:"subscriptions"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.msg_backlog":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["pulsar_msg_backlog"],chartLibrary:"gauge",title:"Total Messages Backlog",desiredUnits:"messages"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_messages_rate":{heads:[{"group_by[0]":["selected"],selectedDimensions:["publish"],chartLibrary:"easypiechart",title:"Total Published",desiredUnits:"messages/s"},{"group_by[0]":["selected"],selectedDimensions:["dispatch"],chartLibrary:"easypiechart",title:"Total Dispatched",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_subscription_msg_rate_redeliver":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["redelivered"],chartLibrary:"gauge",title:"Total Redelivered",desiredUnits:"messages/s"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_subscription_blocked_on_unacked_messages":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["blocked"],chartLibrary:"gauge",title:"Total Blocked On Unacked",desiredUnits:"subscriptions"}],en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_msg_backlog":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["backlog"],chartLibrary:"gauge",title:"Total Messages Backlog",desiredUnits:"messages"}],en:{instance:{one:"broker",other:"brokers"}}},"amdgpu.gpu_utilization":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_utilization":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_clk_frequency":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_clk_frequency":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vram_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vram_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vis_vram_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_vis_vram_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_gtt_usage_perc":{en:{instance:{one:"GPU",other:"GPUs"}}},"amdgpu.gpu_mem_gtt_usage":{en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.fan_speed":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["speed"],chartLibrary:"easypiechart",title:"Maximum Fan Speed",desiredUnits:"percentage"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.temperature":{heads:[{"group_by[0]":["selected"],"aggregation[0]":"max",selectedDimensions:["temp"],chartLibrary:"easypiechart",title:"Maximum Temperature",desiredUnits:"celsius"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.memory_allocated":{heads:[{"group_by[0]":["selected"],selectedDimensions:["used"],chartLibrary:"easypiechart",title:"Total Used Memory",desiredUnits:"MiB"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.power":{aggregationMethod:"avg",heads:[{"group_by[0]":["selected"],selectedDimensions:["power"],chartLibrary:"easypiechart",title:"Total Power Utilization",colors:s.default[5],desiredUnits:"watts"}],en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_pcie_bandwidth_usage":{info:"The amount of PCI Express (PCIe) bandwidth being used by the GPU. Monitoring this metric can help identify if the GPU is being bottlenecked by the PCIe bus and determine if a faster GPU is needed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_fan_speed_perc":{aggregationMethod:"avg",info:"The speed of the GPU's fan in percent. Monitoring this metric is important to ensure that the GPU is not overheating and that the fan is running at the optimal speed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's compute and graphics units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_memory_utilization":{aggregationMethod:"avg",info:"The amount of GPU memory being used. Monitoring this metric can help identify potential memory usage issues and help optimize memory usage for better performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_decoder_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's decoder units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_encoder_utilization":{aggregationMethod:"avg",info:"The amount of utilization of the GPU's encoder units. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_temperature":{info:"The temperature of the GPU in degrees Celsius. Monitoring this metric is important to ensure that the GPU is not overheating and that the fan is running at the optimal speed.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_clock_freq":{info:"The clock frequency of the GPU in MHz. Monitoring this metric can help identify potential bottlenecks in the GPU's performance and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"nvidia_smi.gpu_performance_state":{info:"The performance state of the GPU. Monitoring this metric can help identify potential performance issues and help tune the system for optimal performance.",en:{instance:{one:"GPU",other:"GPUs"}}},"openvpn.active_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Clients"}],info:"The active clients metric indicates the number of clients connected to the OpenVPN server. This metric should be monitored to keep track of the number of connected clients.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.total_traffic":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["out"],chartLibrary:"easypiechart",title:"Total Traffic Sent"},{"group_by[0]":["selected"],selectedDimensions:["in"],chartLibrary:"easypiechart",title:"Total Traffic received"}],info:"The total traffic metric indicates the total amount of data sent and received on the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.user_traffic":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Traffic per User"}],info:"The user traffic metric indicates the amount of data sent and received by each user connected to the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"openvpn.user_connection_time":{aggregationMethod:"avg",info:"The user connection time metric indicates the time each user is connected to the OpenVPN server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"OpenVPN server",other:"OpenVPN servers"}}},"phpdaemon.workers":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Workers",layout:{x:0,y:0,w:3,h:5}}],info:"The workers metric indicates the number of workers running in the phpdaemon. This metric should be monitored to ensure the proper number of workers is running for the best performance.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.alive_workers":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Active Workers",layout:{x:3,y:0,w:3,h:5}}],info:"The alive workers metric indicates the number of workers currently active in the phpdaemon. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.idle_workers":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Idle Workers",layout:{x:6,y:0,w:3,h:5}}],info:"The idle workers metric indicates the number of workers that are currently idle in the phpdaemon. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpdaemon.uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",layout:{x:9,y:0,w:3,h:5}}],info:"The uptime metric indicates the time since the phpdaemon was started. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"daemon",other:"daemons"}}},"phpfpm.connections":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["active"],chartLibrary:"easypiechart",title:"Active Connections",layout:{x:0,y:0,w:3,h:5}}],info:"This metric indicates the connections count across the following dimensions: active, max_active, idle.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",layout:{x:3,y:0,w:3,h:5}}],info:"The requests metric indicates the number of requests processed by the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.performance":{info:"The performance metric indicates the performance of the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_duration":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Request Duration",layout:{x:6,y:0,w:3,h:5}}],info:"The request duration metric indicates the time taken to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_cpu":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Request CPU",layout:{x:9,y:0,w:3,h:5}}],info:"The request CPU metric indicates the amount of CPU used to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"phpfpm.request_mem":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Request Memory",layout:{x:0,y:5,w:3,h:5}}],info:"The request memory metric indicates the amount of memory used to process each request on the phpfpm server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"FastCGI server",other:"FastCGI servers"}}},"pihole.dns_queries_total":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Queries",layout:{x:0,y:0,w:3,h:5}}],info:"The DNS queries total metric indicates the total number of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries":{info:"The DNS queries metric indicates the number of DNS queries that have been made to the Pi-hole server in a given time period. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_percentage":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],selectedDimensions:["blocked"],chartLibrary:"gauge",title:"Blocked Queries %",layout:{x:3,y:0,w:3,h:5}}],info:"The DNS queries percentage metric indicates the percentage of DNS queries that have been made to the Pi-hole server in a given time period. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.unique_clients":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Clients",layout:{x:6,y:0,w:3,h:5}}],info:"The unique clients metric indicates the number of unique clients making DNS queries to the Pi-hole server. This metric should be monitored to ensure the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.blocklist_last_update":{info:"The blocklist last update metric indicates the last time the Pi-hole's blocklist was updated. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_types":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Query Types",layout:{x:9,y:0,w:3,h:5}}],info:"The DNS queries types metric indicates the types of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.domains_on_blocklist":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"number",title:"Domains on Blocklist",layout:{x:0,y:5,w:3,h:5}}],info:"The DNS queries types metric indicates the types of DNS queries that have been made to the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"pihole.dns_queries_forwarded_destination":{aggregationMethod:"avg",info:"The DNS queries forwarded destination metric indicates the destination of the DNS queries that have been forwarded by the Pi-hole server. This metric should be monitored to ensure that the server is running efficiently.",en:{instance:{one:"Pi-hole server",other:"Pi-hole servers"}}},"supervisord.process_state_code":{info:'<a href="http://supervisord.org/subprocess.html#process-states" target="_blank">Process states map</a>: <b>0</b> - stopped, <b>10</b> - starting, <b>20</b> - running, <b>30</b> - backoff,<b>40</b> - stopping, <b>100</b> - exited, <b>200</b> - fatal, <b>1000</b> - unknown.'},"systemd.service_units_state":{info:'Service units start and control daemons and the processes they consist of. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.service.html#" target="_blank"> systemd.service(5)</a>',en:{instance:{one:"Unit",other:"Units"}}},"systemd.socket_unit_state":{info:'Socket units encapsulate local IPC or network sockets in the system, useful for socket-based activation. For details about socket units, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.socket.html#" target="_blank"> systemd.socket(5)</a>, for details on socket-based activation and other forms of activation, see <a href="https://www.freedesktop.org/software/systemd/man/daemon.html#" target="_blank"> daemon(7)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.target_unit_state":{info:'Target units are useful to group units, or provide well-known synchronization points during boot-up, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.target.html#" target="_blank"> systemd.target(5)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.path_unit_state":{info:'Path units may be used to activate other services when file system objects change or are modified. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.path.html#" target="_blank"> systemd.path(5)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.device_unit_state":{info:'Device units expose kernel devices in systemd and may be used to implement device-based activation. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.device.html#" target="_blank"> systemd.device(5)</a>.',en:{instance:{one:"Unit",other:"Units"}}},"systemd.mount_unit_state":{info:'Mount units control mount points in the file system. For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.mount.html#" target="_blank"> systemd.mount(5)</a>.'},"systemd.automount_unit_state":{info:'Automount units provide automount capabilities, for on-demand mounting of file systems as well as parallelized boot-up. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.automount.html#" target="_blank"> systemd.automount(5)</a>.'},"systemd.swap_unit_state":{info:'Swap units are very similar to mount units and encapsulate memory swap partitions or files of the operating system. They are described in <a href="https://www.freedesktop.org/software/systemd/man/systemd.swap.html#" target="_blank"> systemd.swap(5)</a>.'},"systemd.timer_unit_state":{info:'Timer units are useful for triggering activation of other units based on timers. You may find details in <a href="https://www.freedesktop.org/software/systemd/man/systemd.timer.html#" target="_blank"> systemd.timer(5)</a>.'},"systemd.scope_unit_state":{info:'Slice units may be used to group units which manage system processes (such as service and scope units) in a hierarchical tree for resource management purposes. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.scope.html#" target="_blank"> systemd.scope(5)</a>.'},"systemd.slice_unit_state":{info:'Scope units are similar to service units, but manage foreign processes instead of starting them as well. See <a href="https://www.freedesktop.org/software/systemd/man/systemd.slice.html#" target="_blank"> systemd.slice(5)</a>.'},"anomaly_detection.dimensions":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["anomalous"],chartLibrary:"number",desiredUnits:"dimensions",title:"Total Anomalous Dimensions",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["selected"],selectedDimensions:["normal"],chartLibrary:"number",desiredUnits:"dimensions",title:"Total Normal Dimensions",layout:{x:6,y:0,w:3,h:5}}],info:"Total count of dimensions considered anomalous or normal. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["anomalous"]},"anomaly_detection.anomaly_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",colors:s.default[12],title:"% of Anomalous Dimensions",layout:{x:0,y:0,w:3,h:5}}],info:"Percentage of anomalous dimensions. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["anomaly_rate"]},"anomaly_detection.detector_window":{info:"The length of the active window used by the detector. ",en:{instance:{one:"system",other:"systems"}},dimensionsOnNonDimensionGrouping:["above_threshold"]},"anomaly_detection.detector_events":{info:"Flags (0 or 1) to show when an anomaly event has been triggered by the detector. ",en:{instance:{one:"system",other:"systems"}}},"anomaly_detection.prediction_stats":{info:"Diagnostic metrics relating to prediction time of anomaly detection. ",en:{instance:{one:"system",other:"systems"}}},"anomaly_detection.training_stats":{info:"Diagnostic metrics relating to training time of anomaly detection. ",en:{instance:{one:"system",other:"systems"}}},"fail2ban.failed_attempts":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Failed Attempts",layout:{x:0,y:0,w:3,h:5}}],info:"<p>The number of failed attempts.</p><p>This chart reflects the number of 'Found' lines. Found means a line in the service\u2019s log file matches the failregex in its filter.</p>",en:{instance:{one:"service",other:"services"}}},"fail2ban.bans":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Bans",layout:{x:3,y:0,w:3,h:5}}],info:"<p>The number of bans.</p><p>This chart reflects the number of 'Ban' and 'Restore Ban' lines. Ban action happens when the number of failed attempts (maxretry) occurred in the last configured interval (findtime).</p>",en:{instance:{one:"service",other:"services"}}},"fail2ban.banned_ips":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Banned IPs",layout:{x:6,y:0,w:3,h:5}}],info:"<p>The number of banned IP addresses.</p>",en:{instance:{one:"service",other:"services"}}},"consul.node_health_check_status":{info:'The current status of the <a href="https://developer.hashicorp.com/consul/tutorials/developer-discovery/service-registration-health-checks#monitor-a-node" target="_blank">node health check</a>. A node health check monitors the health of the entire node. If the node health check fails, Consul marks the node as unhealthy.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.service_health_check_status":{info:'The current status of the <a href="https://developer.hashicorp.com/consul/tutorials/developer-discovery/service-registration-health-checks#monitor-a-service" target="_blank">service health check</a>. A service check only affects the health of the service it is associated with. If the service health check fails, the DNS interface stops returning that service.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_rate":{mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"RPC Requests Rate Per Client",desiredUnits:"req/s"}],info:"The number of RPC requests to a Consul server.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_exceeded_rate":{info:'The number of rate-limited RPC requests to a Consul server. An Increase of this metric either indicates the load is getting high enough to limit the rate or a <a href="https://developer.hashicorp.com/consul/docs/agent/config/config-files#limits" target="_blank">incorrectly configured</a> Consul agent.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.client_rpc_requests_failed_rate":{info:"The number of failed RPC requests to a Consul server.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.memory_allocated":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"number",title:"Memory Allocated per Consul DC"}],info:"The amount of memory allocated by the Consul process.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.memory_sys":{info:"The amount of memory obtained from the OS.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.gc_pause_time":{aggregationMethod:"avg",info:"The amount of time spent in stop-the-world garbage collection (GC) pauses.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.kvs_apply_time":{aggregationMethod:"avg",info:"The time it takes to complete an update to the KV store.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.kvs_apply_operations_rate":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Key Value Store Operations Rate per DC"}],info:"The number of KV store updates.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.txn_apply_time":{aggregationMethod:"avg",info:"The time spent applying a transaction operation.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.txn_apply_operations_rate":{info:"The number of applied transaction operations.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_commit_time":{aggregationMethod:"avg",info:"The time it takes to commit a new entry to the Raft log on the leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_commits_rate":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Raft Commits Rate per DC"}],info:"The number of applied Raft transactions.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_health_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Health Status Overview",desiredUnits:"status"}],info:"The overall health of the local server cluster. The status is healthy if <b>all servers</b> are considered healthy by Autopilot.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_failure_tolerance":{info:"The number of voting servers that the cluster can lose while continuing to function.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_last_contact_time":{aggregationMethod:"avg",info:"The time since the leader was last able to contact the follower nodes when checking its leader lease.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_elections_rate":{info:"The number of leadership elections. Increments whenever a Consul server starts an election.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leadership_transitions_rate":{mainheads:[{"group_by[0]":["label"],"group_by_label[0]":["datacenter"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Leadership Transitions Rate per DC",desiredUnits:"transitions/s"}],info:"The number of leadership elections. Increments whenever a Consul server becomes a leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.server_leadership_status":{info:"The Consul server leadership status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_thread_main_saturation_perc":{aggregationMethod:"avg",info:"An approximate measurement of the proportion of time the main Raft goroutine is busy and unavailable to accept new work.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_thread_fsm_saturation_perc":{aggregationMethod:"avg",info:"An approximate measurement of the proportion of time the Raft FSM goroutine is busy and unavailable to accept new work.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_fsm_last_restore_duration":{info:"The time taken to restore the FSM from a snapshot on an agent restart or from the leader calling <i>installSnapshot</i>.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_leader_oldest_log_age":{info:"The time elapsed since the oldest journal was written to the leader's journal storage. This can be important for the health of replication when the write rate is high and the snapshot is large, because followers may not be able to recover from a restart if recovery takes longer than the minimum for the current leader.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_rpc_install_snapshot_time":{aggregationMethod:"avg",info:"The time it takes to process the <i>installSnapshot</i> RPC call.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_freelist_bytes":{info:'The number of bytes necessary to encode the freelist metadata. When <a href="https://developer.hashicorp.com/consul/docs/agent/config/config-files#NoFreelistSync" target="_blank">raft_boltdb.NoFreelistSync</a> is set to <i>false</i> these metadata bytes must also be written to disk for each committed log.',en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_logs_per_batch_rate":{info:"The number of logs written per batch to the database.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_boltdb_store_logs_time":{aggregationMethod:"avg",info:"The amount of time spent writing logs to the database.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.license_expiration_time":{aggregationMethod:"min`",info:"The amount of time remaining before Consul Enterprise license expires. When the license expires, some Consul Enterprise features will stop working.",en:{instance:{one:"datacenter",other:"datacenters"}}},"envoy.server_state":{aggregationMethod:"avg",mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Envoy Server States",layout:{x:0,y:0,w:3,h:5}}],info:"Server current state",en:{instance:{one:"server",other:"servers"}}},"envoy.server_connections_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Server Connections Count",colors:s.default[1],layout:{x:3,y:0,w:3,h:5}}],info:"Server current connections",en:{instance:{one:"server",other:"servers"}}},"envoy.server_parent_connections_count":{info:"Server current parent connections",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_allocated_size":{mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top servers by Memory Allocated",layout:{x:6,y:0,w:3,h:5}}],info:"Server memory allocated size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_heap_size":{mainheads:[{"group_by[0]":["instance"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top servers by Heap Size",layout:{x:9,y:0,w:3,h:5}}],info:"Server memory heap size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_memory_physical_size":{info:"Server memory physical size",en:{instance:{one:"server",other:"servers"}}},"envoy.server_uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Server Uptime",colors:s.default[4],layout:{x:0,y:5,w:3,h:5}}],info:"Envoy Server uptime",en:{instance:{one:"server",other:"servers"}}},"envoy.cluster_manager_cluster_count":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"d3pie",title:"Active and Inactive Envoy Clusters ",layout:{x:3,y:5,w:3,h:5}}],info:"Cluster manager current clusters",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_changes_rate":{info:"Cluster manager cluster changes",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_updates_rate":{info:"Cluster manager updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_cluster_updated_via_merge_rate":{info:"Cluster manager updates applied as merged updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_update_merge_cancelled_rate":{info:"Cluster manager cancelled merged updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_manager_update_out_of_merge_window_rate":{info:"Cluster manager out of a merge window updates",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_endpoints_count":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Top Clusters by Membership Endpoints",layout:{x:6,y:5,w:3,h:5}}],info:"Cluster membership current endpoints",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_changes_rate":{info:"Cluster membership changes",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_membership_updates_rate":{info:"Cluster membership update rate",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_active_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Upstream Active Connections",desiredUnits:"connections",colors:s.default[7],layout:{x:9,y:5,w:3,h:5}}],info:"Cluster upstream current active connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_rate":{info:"Cluster upstream connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_http_rate":{info:"Cluster upstream connections by HTTP version",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_destroy_rate":{info:"Cluster upstream destroyed connections rate",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_connect_fail_rate":{info:"Cluster upstream failed connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_connect_timeout_rate":{info:"Cluster upstream timed out connections",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_bytes_rate":{info:"Cluster upstream connection traffic",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_cx_bytes_buffered_size":{info:"Cluster upstream current connection buffered size",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_active_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Upstream Active Requests",desiredUnits:"connections",colors:s.default[7],layout:{x:0,y:10,w:3,h:5}}],info:"Cluster upstream current active requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_rate":{info:"Cluster upstream requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_failed_rate":{info:"Cluster upstream failed requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_active_count":{info:"Cluster upstream current active pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_rate":{info:"Cluster upstream pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_pending_failed_rate":{info:"Cluster upstream failed pending requests",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_rate":{info:"Cluster upstream request retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_success_rate":{info:"Cluster upstream request successful retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.cluster_upstream_rq_retry_backoff_rate":{info:"Cluster upstream request backoff retries",en:{instance:{one:"cluster",other:"clusters"}}},"envoy.listener_manager_listeners_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Listeners Count",desiredUnits:"listeners",colors:s.default[9],layout:{x:3,y:10,w:3,h:5}}],info:"Listener manager current listeners",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_manager_listener_changes_rate":{info:"Listener manager listener changes",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_manager_listener_object_events_rate":{info:"Listener manager listener object events",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_active_count":{info:"Listener admin downstream current active connections",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Downstream Active Connections",desiredUnits:"listeners",colors:s.default[9],layout:{x:6,y:10,w:3,h:5}}],en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_rate":{info:"Listener admin downstream connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_destroy_rate":{info:"Listener admin downstream destroyed connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_transport_socket_connect_timeout_rate":{info:"Listener admin downstream timed out connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_cx_rejected_rate":{info:"Listener admin downstream rejected connections",mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Downstream Rejected Connections",desiredUnits:"listeners",colors:s.default[9],layout:{x:9,y:10,w:3,h:5}}],en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_listener_filter_remote_close_rate":{info:"Listener admin downstream connections closed by remote when peek data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_listener_filter_error_rate":{info:"Listener admin downstream read errors when peeking data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_pre_cx_active_count":{info:"Listener admin downstream current active sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_admin_downstream_pre_cx_timeout_rate":{info:"Listener admin downstream timed out sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_active_count":{info:"Listener downstream current active connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_rate":{info:"Listener downstream connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_destroy_rate":{info:"Listener downstream destroyed connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_transport_socket_connect_timeout_rate":{info:"Listener downstream timed out connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_cx_rejected_rate":{info:"Listener downstream rejected connections",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_listener_filter_remote_close_rate":{info:"Listener downstream connections closed by remote when peek data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_listener_filter_error_rate":{info:"Listener downstream read errors when peeking data for listener filters",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_pre_cx_active_count":{info:"Listener downstream current active sockets",en:{instance:{one:"listener",other:"listeners"}}},"envoy.listener_downstream_pre_cx_timeout_rate":{info:"Listener downstream timed out sockets",en:{instance:{one:"listener",other:"listeners"}}},"k8s_state.node_allocatable_cpu_requests_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average CPU Utilization",valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}}],info:"The percentage of allocated CPU resources used by Pod requests. A Pod is scheduled to run on a Node only if the Node has enough CPU resources available to satisfy the Pod CPU request.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_requests_used":{info:'The amount of allocated CPU resources used by Pod requests. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_limits_utilization":{aggregationMethod:"avg",info:"The percentage of allocated CPU resources used by Pod limits. Total limits may be over 100 percent (overcommitted).",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_cpu_limits_used":{info:'The amount of allocated CPU resources used by Pod limits. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_requests_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Memory Utilization",colors:s.default[4],valueRange:[0,100],layout:{x:9,y:5,w:3,h:5}}],info:"The percentage of allocated memory resources used by Pod requests. A Pod is scheduled to run on a Node only if the Node has enough memory resources available to satisfy the Pod memory request.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_requests_used":{info:"The amount of allocated memory resources used by Pod requests.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_limits_utilization":{aggregationMethod:"avg",info:"The percentage of allocated memory resources used by Pod limits. Total limits may be over 100 percent (overcommitted).",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_mem_limits_used":{info:"The amount of allocated memory resources used by Pod limits.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_pods_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Pods Utilization",colors:s.default[12],valueRange:[0,100],layout:{x:3,y:5,w:3,h:5}}],info:"Pods limit utilization.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_allocatable_pods_usage":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Pods limit usage",layout:{x:8,y:0,w:4,h:2.5}}],info:"<p>Pods limit usage.</p><p><b>Available</b> - the number of Pods available for scheduling. <b>Allocated</b> - the number of Pods that have been scheduled.</p>",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_condition":{info:'Health status. If the status of the Ready condition remains False for longer than the <b>pod-eviction-timeout</b> (the default is 5 minutes), then the node controller triggers API-initiated eviction for all Pods assigned to that node. <a href="https://kubernetes.io/docs/concepts/architecture/nodes/#condition" target="_blank">More info.</a>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_readiness":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Pod Readiness",colors:s.default[0],valueRange:[0,100],layout:{x:0,y:5,w:3,h:5}}],info:"The percentage of Pods that are ready to serve requests.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_readiness_state":{info:"<p>Pods readiness state.</p><p><b>Ready</b> - the Pod has passed its readiness probe and ready to serve requests. <b>Unready</b> - the Pod has not passed its readiness probe yet.</p>",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_condition":{info:'<p>Pods state. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions" target="_blank">More info.</a></p><b>PodReady</b> - the Pod is able to serve requests and should be added to the load balancing pools of all matching Services. <b>PodScheduled</b> - the Pod has been scheduled to a node. <b>PodInitialized</b> - all init containers have completed successfully. <b>ContainersReady</b> - all containers in the Pod are ready.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_pods_phase":{info:'<p>Pods phase. The phase of a Pod is a high-level summary of where the Pod is in its lifecycle. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase" target="_blank">More info.</a></p><p><b>Running</b> - the Pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. <b>Failed</b> - all containers in the Pod have terminated, and at least one container has terminated in failure. That is, the container either exited with non-zero status or was terminated by the system. <b>Succedeed</b> - all containers in the Pod have terminated in success, and will not be restarted. <b>Pending</b> - the Pod has been accepted by the Kubernetes cluster, but one or more of the containers has not been set up and made ready to run.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_containers":{info:"The total number of containers and init containers.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_containers_state":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Containers by State",layout:{x:0,y:20,w:4,h:2.5}}],info:'<p>The number of containers in different lifecycle states. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a></p><p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_init_containers_state":{info:'<p>The number of init containers in different lifecycle states. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a></p><p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_age":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Node Uptime",desiredUnits:"dHH:MM:ss",layout:{x:8,y:2.5,w:4,h:2.5}}],info:"The lifetime of the Node.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.node_schedulability":{info:"The schedulability of nodes in the Kubernetes cluster. Monitoring this metric can help identify if there are issues with the cluster's ability to schedule pods on nodes.",en:{instance:{one:"K8s node",other:"K8s nodes"}}},"k8s_state.pod_cpu_requests_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod CPU Requests used",units:"percentage",colors:s.default[0],layout:{x:0,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU Requests per Pod",units:"percentage",layout:{x:0,y:15,w:3,h:5}}],info:'The overall CPU resource requests for a Pod. This is the sum of the CPU requests for all the Containers in the Pod. Provided the system has CPU time free, a container is guaranteed to be allocated as much CPU as it requests. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_cpu_limits_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod CPU limits used",units:"percentage",layout:{x:3,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum CPU limits per Pod",units:"percentage",layout:{x:3,y:15,w:3,h:5}}],info:'The overall CPU resource limits for a Pod. This is the sum of the CPU limits for all the Containers in the Pod. If set, containers cannot use more CPU than the configured limit. 1000 millicpu is equivalent to <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/#cpu-units" target="_blank">1 physical or virtual CPU core</a>.',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_mem_requests_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod Memory Requests used",units:"percentage",colors:s.default[12],layout:{x:6,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Pod Memory Requests per Pod",units:"percentage",layout:{x:6,y:15,w:3,h:5}}],info:"The overall memory resource requests for a Pod. This is the sum of the memory requests for all the Containers in the Pod.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_mem_limits_used":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"sum",valueRange:[0,null],chartLibrary:"gauge",title:"Total Pod Memory limits used",units:"percentage",colors:s.default[4],layout:{x:9,y:10,w:3,h:5}},{"group_by[0]":["label"],"group_by_label[0]":["k8s_pod_name"],"aggregation[0]":"max",groupingMethod:"max",valueRange:[0,null],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Maximum Memory limits per Pod",units:"percentage",layout:{x:9,y:15,w:3,h:5}}],info:"The overall memory resource limits for a Pod. This is the sum of the memory limits for all the Containers in the Pod. If set, containers cannot use more RAM than the configured limit.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_condition":{info:'The current state of the Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions" target="_blank">More info.</a></p><p><b>PodReady</b> - the Pod is able to serve requests and should be added to the load balancing pools of all matching Services. <b>PodScheduled</b> - the Pod has been scheduled to a node. <b>PodInitialized</b> - all init containers have completed successfully. <b>ContainersReady</b> - all containers in the Pod are ready. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_phase":{mainheads:[{"group_by[0]":["selected"],selectedDimensions:["running"],chartLibrary:"easypiechart",title:"Total Running Pods",desiredUnits:"state",colors:s.default[0],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],selectedDimensions:["failed"],chartLibrary:"easypiechart",title:"Total Failed Pods",desiredUnits:"state",layout:{x:2,y:0,w:2,h:5}},{"group_by[0]":["selected"],selectedDimensions:["succeeded"],chartLibrary:"easypiechart",title:"Total Terminated Pods",desiredUnits:"state",colors:s.default[4],layout:{x:6,y:0,w:2,h:5}},{"group_by[0]":["selected"],selectedDimensions:["pending"],chartLibrary:"easypiechart",title:"Total Pending Pods",desiredUnits:"state",colors:s.default[12],layout:{x:4,y:0,w:2,h:5}}],info:'High-level summary of where the Pod is in its lifecycle. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase" target="_blank">More info.</a></p><p><b>Running</b> - the Pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. <b>Failed</b> - all containers in the Pod have terminated, and at least one container has terminated in failure. That is, the container either exited with non-zero status or was terminated by the system. <b>Succedeed</b> - all containers in the Pod have terminated in success, and will not be restarted. <b>Pending</b> - the Pod has been accepted by the Kubernetes cluster, but one or more of the containers has not been set up and made ready to run. This includes time a Pod spends waiting to be scheduled as well as the time spent downloading container images over the network. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_age":{info:'The <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-lifetime" target="_blank">lifetime</a> of the Pod. ',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_containers":{info:"The number of containers and init containers belonging to the Pod.",en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_containers_state":{info:'The state of each container inside this Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_init_containers_state":{info:'The state of each init container inside this Pod. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"pod",other:"pods"}}},"k8s_state.pod_container_readiness_state":{info:"Specifies whether the container has passed its readiness probe. Kubelet uses readiness probes to know when a container is ready to start accepting traffic.",en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_restarts":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"Container restarts",layout:{x:0,y:22.5,w:4,h:2.5}}],info:"The number of times the container has been restarted.",en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_state":{info:'Current state of the container. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-states" target="_blank">More info.</a> <p><b>Running</b> - a container is executing without issues. <b>Waiting</b> - a container is still running the operations it requires in order to complete start up. <b>Terminated</b> - a container began execution and then either ran to completion or failed for some reason.</p>',en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_waiting_state_reason":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Container waiting state reason",layout:{x:4,y:20,w:4,h:5}}],info:'Reason the container is not yet running. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-state-waiting" target="_blank">More info.</a> ',en:{instance:{one:"container",other:"containers"}}},"k8s_state.pod_container_terminated_state_reason":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Container terminated state reason",layout:{x:8,y:20,w:4,h:5}}],info:'Reason from the last termination of the container. <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-state-terminated" target="_blank">More info.</a>',en:{instance:{one:"container",other:"containers"}}},"k8s_kubelet.apiserver_audit_requests_rejected":{info:"The number of audit requests to the Kubernetes API server that were rejected. Monitoring this metric can help identify if there are issues with the audit configuration or access control policies on the API server.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_failures":{info:"The number of failures when generating data keys for encrypting and decrypting secrets stored in the Kubernetes API server. If this metric is non-zero, it may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_latencies":{info:"The latencies of data key generation requests to the Kubernetes API server. High latencies may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent":{aggregationMethod:"avg",info:"The percentile latencies of data key generation requests to the Kubernetes API server. High latencies may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses":{info:"The number of cache misses when transforming encryption envelopes for secrets stored in the Kubernetes API server. If this metric is non-zero, it may indicate issues with the encryption configuration or key management.",en:{instance:{one:"K8s API server",other:"K8s API servers"}}},"k8s_kubelet.kubelet_containers_running":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Running Containers",colors:s.default[2],layout:{x:3,y:0,w:3,h:5}}],info:"The number of containers running on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with container scheduling or resource allocation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pods_running":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Running Pods",colors:s.default[0],layout:{x:0,y:0,w:3,h:5}}],info:"The number of pods running on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with pod scheduling or resource allocation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pods_log_filesystem_used_bytes":{mainheads:[{chartLibrary:"bars",title:"Pod Logs Disk Usage",layout:{x:9,y:5,w:4,h:5}}],info:"The amount of disk space used by pod logs on the node managed by the kubelet. Monitoring this metric can help identify if there are issues with disk usage or log rotation.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_runtime_operations":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Runtime Operations by Type",layout:{x:6,y:0,w:3,h:5}}],info:"The total number of runtime operations performed by the kubelet on the node, such as starting and stopping containers. Monitoring this metric can help identify if there are issues with the runtime or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_runtime_operations_errors":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Runtime Operations Errors by Type",layout:{x:9,y:0,w:3,h:5}}],info:"The number of runtime operation errors on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the runtime or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_docker_operations":{info:"The total number of Docker operations performed by the kubelet on the node, such as pulling images or creating containers. Monitoring this metric can help identify if there are issues with the Docker daemon or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_docker_operations_errors":{info:"The number of Docker operation errors on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the Docker daemon or container management.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_node_config_error":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Node Congifuration Errors",layout:{x:7,y:5,w:2,h:5}}],info:"The number of errors in the node configuration on the node managed by the kubelet. If this metric is non-zero, it may indicate issues with the node's configuration or the kubelet's ability to read and apply it.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pleg_relist_interval_microseconds":{aggregationMethod:"avg",info:"The interval, in microseconds, between periodic relists performed by the kubelet's Pod Lifecycle Event Generator (PLEG). Monitoring this metric can help identify if the PLEG is not able to keep up with the rate of change in the pod lifecycle on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_pleg_relist_latency_microseconds":{aggregationMethod:"avg",info:"The latency, in microseconds, of the periodic relists performed by the kubelet's Pod Lifecycle Event Generator (PLEG). High latencies may indicate issues with the PLEG or the pod lifecycle on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.kubelet_token_requests":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total and Failed No. of Token Requests",colors:s.default[0],layout:{x:3,y:5,w:3,h:5}}],info:"The number of token requests to the kubelet. Monitoring this metric can help identify if there are issues with authentication or access control on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.rest_client_requests_by_code":{info:"The distribution of HTTP response codes for requests to the kubelet's REST API. Monitoring this metric can help identify if there are issues with the kubelet's API or the components interacting with it.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.rest_client_requests_by_method":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"dygraph",sparkline:!0,overlays:{latestValue:{type:"latestValue"}},hasToolbox:!1,title:"HTTP Requests Rate to API",colors:s.default[0],layout:{x:0,y:5,w:3,h:2.5}}],info:"The distribution of HTTP request methods for requests to the kubelet's REST API. Monitoring this metric can help identify the usage patterns of the API and potential issues with specific request methods.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubelet.volume_manager_total_volumes":{mainheads:[{"group_by[0]":["dimension"],chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Volume Manager State",layout:{x:0,y:7.5,w:3,h:2.5}}],info:"The total number of volumes managed by the kubelet's volume manager. Monitoring this metric can help identify if there are issues with volume management on the node.",en:{instance:{one:"kubelet",other:"kubelets"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Sync Proxy Rules",colors:s.default[4],layout:{x:0,y:0,w:3,h:5}}],info:"The total number of synced proxy rules in the Kubernetes proxy. Monitoring this metric can help identify if there are issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency_microsecond":{aggregationMethod:"avg",info:"The latencies of proxy rule sync operations in the Kubernetes proxy. High latencies may indicate issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency":{aggregationMethod:"avg",info:"The latencies of proxy rule sync operations in the Kubernetes proxy. High latencies may indicate issues with the proxy or its configuration.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.rest_client_requests_by_code":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Response Code Distribution",colors:s.default[4],layout:{x:3,y:0,w:3,h:5}}],info:"The distribution of HTTP response codes for requests to the Kubernetes proxy's REST API. Monitoring this metric can help identify if there are issues with the proxy's API or the components interacting with it.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.rest_client_requests_by_method":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"HTTP Request Method Distribution",colors:s.default[4],layout:{x:6,y:0,w:3,h:5}}],info:"The distribution of HTTP request methods for requests to the Kubernetes proxy's REST API. Monitoring this metric can help identify the usage patterns of the API and potential issues with specific request methods.",en:{instance:{one:"proxy",other:"proxies"}}},"k8s_kubeproxy.http_request_duration":{info:"The latencies of HTTP requests handled by the Kubernetes proxy. High latencies may indicate performance issues with the proxy or the components interacting with it.",en:{instance:{one:"proxy",other:"proxies"}}},"windows.logical_disk_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["read"],title:"Total Disk Read",layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["write"],title:"Total Disk Write",layout:{x:3,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.cpu_utilization_total":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["instance"],"group_by[1]":["selected"],"aggregation[1]":"avg",valueRange:[0,100],chartLibrary:"gauge",desiredUnits:"percentage",title:"Average CPU Utilization",colors:s.default[12],layout:{x:6,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.net_nic_bandwidth":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Net Inbound",layout:{x:9,y:0,w:2,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Net Outbound",layout:{x:12,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.memory_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["percentage-of-instance"],"group_by[1]":["selected"],"aggregation[1]":"max",chartLibrary:"gauge",selectedDimensions:["used"],desiredUnits:"percentage",colors:s.default[0],title:"Maximum RAM Used",valueRange:[0,100],layout:{x:15,y:0,w:2,h:5}}],en:{instance:{one:"system",other:"systems"}}},"windows.processes_cpu_time":{aggregationMethod:"avg",info:'Total CPU utilization. The amount of time spent by the process in <a href="https://en.wikipedia.org/wiki/CPU_modes#Mode_types" target="_blank">user and privileged</a> modes.',en:{instance:{one:"system",other:"systems"}}},"windows.processes_handles":{info:'Total number of <a href="https://learn.microsoft.com/en-us/windows/win32/sysinfo/handles-and-objects" target="_blank">handles</a> the process has open. This number is the sum of the handles currently open by each thread in the process.',en:{instance:{one:"system",other:"systems"}}},"windows.processes_io_operations":{info:"I/O operations issued in different modes (read, write, other). This property counts all I/O activity generated by the process to include file, network, and device I/Os. Read and write mode includes data operations; other mode includes those that do not involve data, such as control operations.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_pool_bytes":{info:"Pool Bytes is the last observed number of bytes in the paged or nonpaged pool. The nonpaged pool is an area of system memory (physical memory used by the operating system) for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated. The paged pool is an area of system memory (physical memory used by the operating system) for objects that can be written to disk when they are not being used.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_active":{info:"Number of times TCP connections have made a direct transition from the CLOSED state to the SYN-SENT state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_established":{info:"Number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_failures":{info:"Number of times TCP connections have made a direct transition to the CLOSED state from the SYN-SENT state or the SYN-RCVD state, plus the number of times TCP connections have made a direct transition from the SYN-RCVD state to the LISTEN state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_passive":{info:"Number of times TCP connections have made a direct transition from the LISTEN state to the SYN-RCVD state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_conns_resets":{info:"Number of times TCP connections have made a direct transition from the LISTEN state to the SYN-RCVD state.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_received":{info:"Rate at which segments are received, including those received in error. This count includes segments received on currently established connections.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_retransmitted":{info:"Rate at which segments are retransmitted, that is, segments transmitted that contain one or more previously transmitted bytes.",en:{instance:{one:"system",other:"systems"}}},"windows.tcp_segments_sent":{info:"Rate at which segments are sent, including those on current connections, but excluding those containing only retransmitted bytes.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_cpu_utilization":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["dimension"],"aggregation[0]":"avg",chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Average CPU per Process",layout:{x:6,y:5,w:2,h:5}}],info:"Total CPU utilization per process.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_memory_usage":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Memory per Process",layout:{x:9,y:5,w:2,h:5}}],dimensionsSort:"valueDesc",info:"Total Memory usage per process.",en:{instance:{one:"system",other:"systems"}}},"windows.processes_io_bytes":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total I/O per Process",layout:{x:0,y:5,w:4,h:5}}],info:"Bytes issued to I/O operations in different modes (read, write, other). This property counts all I/O activity generated by the process to include file, network, and device I/Os. Read and write mode includes data operations; other mode includes those that do not involve data, such as control operations.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_page_faults":{info:"Page faults by the threads executing in this process. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. This can cause the page not to be fetched from disk if it is on the standby list and hence already in main memory, or if it is in use by another process with which the page is shared.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_file_bytes":{info:"Current number of bytes this process has used in the paging file(s). Paging files are used to store pages of memory used by the process that are not contained in other files. Paging files are shared by all processes, and lack of space in paging files can prevent other processes from allocating memory.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"windows.processes_threads":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Active Threads per Process",layout:{x:12,y:5,w:4,h:5}}],info:"Number of threads currently active in this process. An instruction is the basic unit of execution in a processor, and a thread is the object that executes instructions. Every running process has at least one thread.",dimensionsSort:"valueDesc",en:{instance:{one:"system",other:"systems"}}},"iis.website_traffic":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["received"],title:"Total Traffic Received",layout:{x:3,y:0,w:3,h:5}},{"group_by[0]":["selected"],chartLibrary:"easypiechart",selectedDimensions:["sent"],title:"Total Traffic Sent",layout:{x:6,y:0,w:3,h:5}}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_active_connections_count":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Active Connections"}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_requests_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Request Rate",desiredUnits:"Requests/s",colors:s.default[0]}],en:{instance:{one:"web server",other:"web servers"}}},"iis.website_isapi_extension_requests_count":{info:'The number of <a href="https://learn.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms525282(v=vs.90)" target="_blank">ISAPI extension</a> requests that are processed concurrently by the web service.',en:{instance:{one:"web server",other:"web servers"}}},"iis.website_errors_rate":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Errors Rate",desiredUnits:"Errors/s",colors:s.default[0]}],info:"<p>The number of requests that cannot be satisfied by the server.</p><p><b>DocumentLocked</b> - the requested document was locked. Usually reported as HTTP error 423. <b>DocumentNotFound</b> - the requested document was not found. Usually reported as HTTP error 404.</p>",en:{instance:{one:"web server",other:"web servers"}}},"iis.website_uptime":{aggregationMethod:"min",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Uptime",desiredUnits:"Seconds"}],en:{instance:{one:"web server",other:"web servers"}}},"mssql.instance_user_connection":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Connections",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.database_transactions":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Transactions",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.database_data_files_size":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total DB Size",layout:{x:3,y:0,w:3,h:5}}],en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_accessmethods_page_splits":{info:"Page split happens when the page does not have more space. This chart shows the number of page splits per second that occur as the result of overflowing index pages.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_cache_hit_ratio":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0]}],info:"Indicates the percentage of pages found in the buffer cache without having to read from disk. The ratio is the total number of cache hits divided by the total number of cache lookups over the last few thousand page accesses. After a long period of time, the ratio moves very little. Because reading from the cache is much less expensive than reading from disk, you want this ratio to be high.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_bufman_checkpoint_pages":{info:"Indicates the number of pages flushed to disk per second by a checkpoint or other operation that require all dirty pages to be flushed.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_bufman_page_life_expectancy":{info:"Indicates the number of seconds a page will stay in the buffer pool without references.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_memmgr_external_benefit_of_memory":{info:"It is used by the engine to balance memory usage between cache and is useful to support when troubleshooting cases with unexpected cache growth. The value is presented as an integer based on an internal calculation.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sql_errors":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total SQL Errors",desiredUnits:"Errors/s",colors:s.default[0]}],info:"Errors in Microsoft SQL Server.</p><p><b>Db_offline</b> - Tracks severe errors that cause SQL Server to take the current database offline. <b>Info</b> - Information related to error messages that provide information to users but do not cause errors. <b>Kill_connection</b> - Tracks severe errors that cause SQL Server to kill the current connection. <b>User</b> - User errors.</p>",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_auto_parameterization_attempts":{info:"Auto-parameterization occurs when an instance of SQL Server tries to parameterize a Transact-SQL request by replacing some literals with parameters so that reuse of the resulting cached execution plan across multiple similar-looking requests is possible. Note that auto-parameterizations are also known as simple parameterizations in newer versions of SQL Server. This counter does not include forced parameterizations.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_batch_requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Batch Requests",layout:{x:3,y:0,w:3,h:5}}],info:"This statistic is affected by all constraints (such as I/O, number of users, cache size, complexity of requests, and so on). High batch requests mean good throughput.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_safe_auto_parameterization_attempts":{info:"Note that auto-parameterizations are also known as simple parameterizations in later versions of SQL Server.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"mssql.instance_sqlstats_sql_compilations":{info:"Indicates the number of times the compile code path is entered. Includes compiles caused by statement-level recompilations in SQL Server. After SQL Server user activity is stable, this value reaches a steady state.",en:{instance:{one:"SQL server",other:"SQL servers"}}},"ad.binds":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Binds",desiredUnits:"Binds/s",colors:s.default[0]}],en:{instance:{one:"AD server",other:"AD servers"}}},"ad.ldap_searches":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"gauge",title:"Average Cache Hit Ratio",desiredUnits:"Percentage",colors:s.default[0]}],en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_intersite_compressed_traffic":{info:"The compressed size, in bytes, of inbound and outbound compressed replication data (size after compression, from DSAs in other sites).",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_intrasite_compressed_traffic":{info:"The number of bytes replicated that were not compressed (that is., from DSAs in the same site).",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_properties_updated":{info:"The number of properties that are updated due to incoming property winning the reconciliation logic that determines the final value to be replicated.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_objects_filtered":{info:"The number of objects received from inbound replication partners that contained no updates that needed to be applied.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_pending_syncs":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Pending Syncs",layout:{x:3,y:0,w:3,h:5}}],info:"The number of directory synchronizations that are queued for this server but not yet processed.",en:{instance:{one:"AD server",other:"AD servers"}}},"ad.dra_replication_sync_requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"gauge",title:"Total Sync Requests",desiredUnits:"Requests/s",colors:s.default[0]}],info:"The number of directory synchronizations that are queued for this server but not yet processed.",en:{instance:{one:"AD server",other:"AD servers"}}},"netframework.clrexception_thrown":{info:"The exceptions include both .NET exceptions and unmanaged exceptions that are converted into .NET exceptions.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrexception_filters":{info:"An exception filter evaluates regardless of whether an exception is handled.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrexception_finallys":{info:"The metric counts only the finally blocks executed for an exception; finally blocks on normal code paths are not counted by this counter.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrinterop_com_callable_wrappers":{info:"A COM callable wrappers (CCW) is a proxy for a managed object being referenced from an unmanaged COM client.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrinterop_interop_stubs_created":{info:"The Stubs are responsible for marshaling arguments and return values from managed to unmanaged code, and vice versa, during a COM interop call or a platform invoke call.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_methods":{info:"The metric does not include pre-JIT-compiled methods.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_time":{aggregationMethod:"avg",info:"The metric is updated at the end of every JIT compilation phase. A JIT compilation phase occurs when a method and its dependencies are compiled.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrjit_standard_failures":{info:"The failure can occur if the MSIL cannot be verified or if there is an internal error in the JIT compiler.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrloading_loader_heap_size":{info:"The memory committed by the class loader across all application domains is the physical space reserved in the disk paging file.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrloading_assemblies_loaded":{info:"If the assembly is loaded as domain-neutral from multiple application domains, the metric is incremented only once.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrlocksandthreads_recognized_threads":{info:"Displays the total number of threads that have been recognized by the runtime since the application started. These threads are associated with a corresponding managed thread object. The runtime does not create these threads, but they have run inside the runtime at least once.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_heap_size":{info:"The metric shows maximum bytes that can be allocated, but it does not indicate the current number of bytes allocated.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_promoted":{info:"Memory is promoted when it survives a garbage collection.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_number_gc_handles":{info:"Garbage collection handles are handles to resources external to the common language runtime and the managed environment.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_induced_gc":{info:"The metric is updated when an explicit call to GC.Collect happens.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_number_sink_blocks_in_use":{info:"Synchronization blocks are per-object data structures allocated for storing synchronization information. They hold weak references to managed objects and must be scanned by the garbage collector.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_committed":{info:"Committed memory is the physical memory for which space has been reserved in the disk paging file.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_reserved":{info:"Reserved memory is the virtual memory space reserved for the application when no disk or main memory pages have been used.",en:{instance:{one:".NET server",other:".NET servers"}}},"netframework.clrmemory_gc_time":{aggregationMethod:"avg",info:"Displays the percentage of time that was spent performing a garbage collection in the last sample.",en:{instance:{one:".NET server",other:".NET servers"}}},"adaptec_raid.ld_status":{info:"Status of logical devices (1: Failed or Degraded).",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.pd_state":{info:"State of physical devices (1: not Online).",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.smart_warnings":{info:"S.M.A.R.T warnings.",en:{instance:{one:"device",other:"devices"}}},"adaptec_raid.temperature":{info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"alerts.status":{info:"Alert Values.",en:{instance:{one:"alert",other:"alerts"}}},"am2320.temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"am2320.humidity":{aggregationMethod:"avg",info:"Relative Humidity.",en:{instance:{one:"device",other:"devices"}}},"anomalies.probability":{info:"Anomaly Probability.",en:{instance:{one:"device",other:"devices"}}},"anomalies.anomaly":{info:"Anomaly.",en:{instance:{one:"device",other:"devices"}}},"ap.clients":{info:"Connected clients to ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.net":{info:"Bandwidth for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.packets":{info:"Packets for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.issues":{info:"Transmit Issues for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.signal":{info:"Average Signal for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"ap.bitrate":{info:"Bitrate for ${ssid} on ${dev}.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.charge":{aggregationMethod:"avg",info:"UPS Charge.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.battery.voltage":{aggregationMethod:"avg",info:"UPS Battery Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.input.voltage":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.output.voltage":{aggregationMethod:"avg",info:"UPS Output Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.input.frequency":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.load":{aggregationMethod:"avg",info:"UPS Load.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.load_usage":{info:"UPS Load Usage.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.temperature":{aggregationMethod:"avg",info:"UPS Temperature.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.time":{aggregationMethod:"min",info:"UPS Time Remaining.",en:{instance:{one:"device",other:"devices"}}},"apcupsd.online":{info:"UPS ONLINE flag.",en:{instance:{one:"device",other:"devices"}}},"netdata.apps_cpu":{info:"Apps Plugin CPU.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_sizes":{info:"Apps Plugin Files.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_fix":{aggregationMethod:"avg",info:"Apps Plugin Normalization Ratios.",en:{instance:{one:"agent",other:"agents"}}},"netdata.apps_children_fix":{aggregationMethod:"avg",info:"Apps Plugin Exited Children Normalization Ratios.",en:{instance:{one:"agent",other:"agents"}}},"bind_rndc.name_server_statistics":{info:"Name Server Statistics.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.incoming_queries":{info:"Incoming queries.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.outgoing_queries":{info:"Outgoing queries.",en:{instance:{one:"server",other:"servers"}}},"bind_rndc.stats_size":{info:"Named Stats File Size.",en:{instance:{one:"server",other:"servers"}}},"cassandra.storage_exceptions_rate":{info:"Storage exceptions rate.",en:{instance:{one:"db server",other:"db servers"}}},"ceph.pool_read_operations":{info:"Ceph Read Pool Operations/s.",en:{instance:{one:"pool",other:"pools"}}},"ceph.pool_write_operations":{info:"Ceph Write Pool Operations/s.",en:{instance:{one:"pool",other:"pools"}}},"services.services.throttle_io_write":{info:"Systemd Services Throttle Disk Write Bandwidth.",en:{instance:{one:"system",other:"systems"}}},throttle_io_ops_write:{info:"Systemd Services Throttle Disk Write Operations.",en:{instance:{one:"system",other:"systems"}}},"changefinder.scores":{info:"ChangeFinder.",en:{instance:{one:"system",other:"systems"}}},"changefinder.flags":{info:"ChangeFinder.",en:{instance:{one:"system",other:"systems"}}},"cockroachdb.process_cpu_time":{aggregationMethod:"avg",info:"CPU Time.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.sql_connections":{info:"Active SQL Connections.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.logical_data":{info:"Logical Data.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.logical_data_count":{info:"Logical Data Count.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.range_events":{info:"Range Events.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.range_snapshot_events":{info:"Range Snapshot Events.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_read_amplification":{info:"RocksDB Read Amplification.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_cache_usage":{info:"RocksDB Block Cache Usage.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_cache_operations":{info:"RocksDB Block Cache Operations.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.rocksdb_sstables":{info:"RocksDB SSTables.",en:{instance:{one:"db server",other:"db servers"}}},"cockroachdb.replicas_quiescence":{info:"Replicas Quiescence.",en:{instance:{one:"db server",other:"db servers"}}},"consul.autopilot_server_health_status":{info:"Autopilot server health status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_stable_time":{aggregationMethod:"avg",info:"Autopilot server stable time.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_serf_status":{info:"Autopilot server Serf status.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.autopilot_server_voter_status":{info:"Autopilot server Raft voting membership.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.network_lan_rtt":{info:"Network lan RTT.",en:{instance:{one:"datacenter",other:"datacenters"}}},"consul.raft_follower_last_contact_leader_time":{aggregationMethod:"avg",info:"Raft follower last contact with the leader time.",en:{instance:{one:"datacenter",other:"datacenters"}}},"coredns.dns_request_count_total_per_status":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Dropped DNS Requests",selectedDimensions:["dropped"],colors:s.default[1],layout:{x:12,y:0,w:2,h:5}}],info:"Number Of Processed And Dropped DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_requests_count_total_per_per_type":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Requests per Type",layout:{x:3,y:0,w:2.5,h:5}}],info:"Number Of DNS Requests Per Type.",en:{instance:{one:"server",other:"servers"}}},"coredns.dns_responses_count_total_per_rcode":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Responses per Rcode",layout:{x:9,y:0,w:2.5,h:5}}],info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_dns_request_count_total":{info:"Number Of DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_dns_responses_count_total":{info:"Number Of DNS Responses.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_request_count_total_per_status":{info:"Number Of Processed And Dropped DNS Requests.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_requests_count_total_per_per_type":{info:"Number Of DNS Requests Per Type.",en:{instance:{one:"server",other:"servers"}}},"coredns.server_responses_count_total_per_rcode":{info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"server",other:"servers"}}},"coredns.zone_dns_request_count_total":{info:"Number Of DNS Requests.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_dns_responses_count_total":{info:"Number Of DNS Responses.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_proto":{info:"Number Of DNS Requests Per Transport Protocol.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_ip_family":{info:"Number Of DNS Requests Per IP Family.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_requests_count_total_per_per_type":{info:"Number Of DNS Requests Per Type.",en:{instance:{one:"zone",other:"zones"}}},"coredns.zone_responses_count_total_per_rcode":{info:"Number Of DNS Responses Per Rcode.",en:{instance:{one:"zone",other:"zones"}}},"couchbase.bucket_quota_percent_used":{aggregationMethod:"avg",info:"Quota Percent Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_ops_per_sec":{info:"Operations Per Second Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_disk_fetches":{info:"Disk Fetches Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_item_count":{info:"Item Count Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_disk_used_stats":{info:"Disk Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_data_used":{info:"Data Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_mem_used":{info:"Memory Used Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"couchbase.bucket_vb_active_num_non_resident":{info:"Number Of Non-Resident Items Per Bucket.",en:{instance:{one:"bucket",other:"buckets"}}},"cups.dests_state":{family:"destination",info:"Destinations by state.",en:{instance:{one:"system",other:"systems"}}},"cups.dests_option":{family:"destination",info:"Destinations by option.",en:{instance:{one:"system",other:"systems"}}},"cups.job_num":{family:"jobs",info:"Active jobs.",en:{instance:{one:"system",other:"systems"}}},"cups.job_size":{family:"jobs",info:"Active jobs size.",en:{instance:{one:"system",other:"systems"}}},"cups.destination_job_num":{family:"jobs",info:"Active jobs of {destination}.",en:{instance:{one:"destination",other:"destinations"}}},"cups.destination_job_size":{family:"jobs",info:"Active jobs size of {destination}.",en:{instance:{one:"destination",other:"destinations"}}},"dnsdist.queries":{info:"Client queries received.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.queries_dropped":{info:"Client queries dropped.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.packets_dropped":{info:"Packets dropped.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.answers":{info:"Answers statistics.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_responses":{info:"Backend responses.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_commerrors":{info:"Backend communication errors.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.backend_errors":{info:"Backend error responses.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.cache":{info:"Cache performance.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.servercpu":{info:"DNSdist server CPU utilization.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.servermem":{info:"DNSdist server memory utilization.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.query_latency":{aggregationMethod:"avg",info:"Query latency.",en:{instance:{one:"server",other:"servers"}}},"dnsdist.query_latency_avg":{info:"Average latency for the last N queries.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_ranges":{info:"Number of DHCP Ranges.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_hosts":{info:"Number of DHCP Hosts.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq_dhcp.dhcp_range_utilization":{aggregationMethod:"avg",info:"DHCP Range utilization.",en:{instance:{one:"dhcp range",other:"dhcp ranges"}}},"dnsmasq_dhcp.dhcp_range_allocated_leases":{info:"DHCP Range Allocated Leases.",en:{instance:{one:"dhcp range",other:"dhcp ranges"}}},"dnsmasq.servers_queries":{info:"Queries forwarded to the upstream servers.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_performance":{info:"Cache performance.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_operations":{info:"Cache operations.",en:{instance:{one:"server",other:"servers"}}},"dnsmasq.cache_size":{aggregationMethod:"avg",info:"Cache size.",en:{instance:{one:"server",other:"servers"}}},"dns_query.query_status":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"DNS Query Status",layout:{x:0,y:0,w:4,h:5}}],info:"DNS Query Status.",en:{instance:{one:"server",other:"servers"}}},"dns_query.query_time":{aggregationMethod:"avg",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum DNS Query Response Time",valueRange:[0,null],colors:s.default[1],layout:{x:3,y:0,w:4,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average DNS Query Response Time",valueRange:[0,null],colors:s.default[0],layout:{x:9,y:0,w:4,h:5}}],info:"DNS Query Time.",en:{instance:{one:"server",other:"servers"}}},"docker_engine.engine_daemon_container_actions":{info:"Container Actions.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.engine_daemon_container_states_containers":{info:"Containers In Various States.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.builder_builds_failed_total":{info:"Builder Builds Fails By Reason.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.engine_daemon_health_checks_failed_total":{info:"Health Checks.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_leader":{info:"Swarm Manager Leader.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_object_store":{info:"Swarm Manager Object Store.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_nodes_per_state":{info:"Swarm Manager Nodes Per State.",en:{instance:{one:"system",other:"systems"}}},"docker_engine.swarm_manager_tasks_per_state":{info:"Swarm Manager Tasks Per State.",en:{instance:{one:"system",other:"systems"}}},"docker.containers_health_status":{info:"Total number of Docker containers in various health states.",en:{instance:{one:"container",other:"containers"}}},"docker.container_writeable_layer_size":{info:"Docker container writable layer size.",en:{instance:{one:"container",other:"containers"}}},"dockerhub.pulls_sum":{info:"Pulls Summary.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.pulls":{info:"Pulls.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.pulls_rate":{info:"Pulls Rate.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.stars":{info:"Stars.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.status":{info:"Current Status.",en:{instance:{one:"repository",other:"repositories"}}},"dockerhub.last_updated":{info:"Time Since Last Updated.",en:{instance:{one:"repository",other:"repositories"}}},"dovecot.sessions":{info:"Dovecot Active Sessions.",en:{instance:{one:"server",other:"servers"}}},"dovecot.logins":{info:"Dovecot Logins.",en:{instance:{one:"server",other:"servers"}}},"dovecot.commands":{info:"Dovecot Commands.",en:{instance:{one:"server",other:"servers"}}},"dovecot.faults":{info:"Dovecot Page Faults.",en:{instance:{one:"server",other:"servers"}}},"dovecot.context_switches":{info:"Dovecot Context Switches.",en:{instance:{one:"server",other:"servers"}}},"dovecot.io":{info:"Dovecot Disk I/O.",en:{instance:{one:"server",other:"servers"}}},"dovecot.net":{info:"Dovecot Network Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"dovecot.syscalls":{info:"Dovecot Number of SysCalls.",en:{instance:{one:"server",other:"servers"}}},"dovecot.lookup":{info:"Dovecot Lookups.",en:{instance:{one:"server",other:"servers"}}},"dovecot.cache":{info:"Dovecot Cache Hits.",en:{instance:{one:"server",other:"servers"}}},"dovecot.auth":{info:"Dovecot Authentications.",en:{instance:{one:"server",other:"servers"}}},"dovecot.auth_cache":{info:"Dovecot Authentication Cache.",en:{instance:{one:"server",other:"servers"}}},"cgroup.fd_closed":{info:"Files closed.",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.file_open":{info:"Number of open files.",en:{instance:{one:"service",other:"services"}}},"services.file_open_error":{info:"Fails to open files.",en:{instance:{one:"service",other:"services"}}},"services.file_closed":{info:"Files closed.",en:{instance:{one:"service",other:"services"}}},"services.file_close_error":{info:"Fails to close files.",en:{instance:{one:"service",other:"services"}}},"mem.meory_map":{info:"Monitor calls for <code>msync(2)</code>..",en:{instance:{one:"system",other:"systems"}}},"mdstat.mdstat_flush":{info:"MD flushes.",en:{instance:{one:"system",other:"systems"}}},"cgroup.oomkills":{info:"OOM kills. This chart is provided by eBPF plugin..",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.oomkills":{info:"OOM kills. This chart is provided by eBPF plugin..",en:{instance:{one:"service",other:"services"}}},"apps.oomkills":{info:"OOM kills.",en:{instance:{one:"app group",other:"app groups"}}},"cgroup.net_conn_ipv4":{info:"Calls to tcp_v4_connection.",en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_conn_ipv6":{info:"Calls to tcp_v6_connection.",en:{instance:{one:"cgroup",other:"cgroups"}}},"cgroup.net_bytes_sent":{info:"Bytes sent.",en:{instance:{one:"cgroup",other:"cgroups"}}},"services.net_conn_ipv4":{info:"Calls to tcp_v4_connection.",en:{instance:{one:"service",other:"services"}}},"services.net_conn_ipv6":{info:"Calls to tcp_v6_connection.",en:{instance:{one:"service",other:"services"}}},"services.net_bytes_sent":{info:"Bytes sent.",en:{instance:{one:"service",other:"services"}}},"services.net_tcp_retransmit":{info:"Calls to tcp_retransmit.",en:{instance:{one:"service",other:"services"}}},"apps.dc_ratio":{aggregationMethod:"avg",info:"Percentage of files inside directory cache.",en:{instance:{one:"app group",other:"app groups"}}},"services.dc_ratio":{aggregationMethod:"avg",info:"Percentage of files inside directory cache.",en:{instance:{one:"service",other:"services"}}},"filesystem.read_latency":{aggregationMethod:"avg",info:"ext4 latency for each read request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.write_latency":{aggregationMethod:"avg",info:"ext4 latency for each write request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.open_latency":{aggregationMethod:"avg",info:"ext4 latency for each open request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.sync_latency":{aggregationMethod:"avg",info:"ext4 latency for each sync request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"filesystem.attributte_latency":{aggregationMethod:"avg",info:"nfs latency for each attribute request..",en:{instance:{one:"filesystem",other:"filesystems"}}},"netdata.ebpf_aral_stat_size":{info:"Bytes allocated for ARAL..",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_aral_stat_alloc":{info:"Calls to allocate memory.",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_kernel_memory":{info:"Memory allocated for hash tables..",en:{instance:{one:"agent",other:"agents"}}},"netdata.ebpf_hash_tables_count":{info:"Number of hash tables loaded.",en:{instance:{one:"agent",other:"agents"}}},"elasticsearch.node_indices_indexing":{info:"Indexing Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_indexing_current":{info:"Indexing Operations Current.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_indexing_time":{aggregationMethod:"avg",info:"Time Spent On Indexing Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search":{info:"Search Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search_current":{info:"Search Operations Current.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_search_time":{aggregationMethod:"avg",info:"node_indices_search_time.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_refresh":{info:"Refresh Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_refresh_time":{aggregationMethod:"avg",info:"Time Spent On Refresh Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_flush":{info:"Flush Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_flush_time":{aggregationMethod:"avg",info:"Time Spent On Flush Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_fielddata_memory_usage":{info:"Fielddata Cache Memory Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_fielddata_evictions":{info:"Fielddata Evictions.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_count":{info:"Segments Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_memory_usage_total":{info:"Segments Memory Usage Total.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_segments_memory_usage":{info:"Segments Memory Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_translog_operations":{info:"Translog Operations.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_indices_translog_size":{info:"Translog Size.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_file_descriptors":{info:"Process File Descriptors.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_heap":{aggregationMethod:"avg",info:"JVM Heap Percentage Currently in Use.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_heap_bytes":{info:"JVM Heap Commit And Usage.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pools_count":{info:"JVM Buffer Pools Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pool_direct_memory":{info:"JVM Buffer Pool Direct Memory.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_buffer_pool_mapped_memory":{info:"JVM Buffer Pool Mapped Memory.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_gc_count":{info:"JVM Garbage Collections.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_jvm_gc_time":{aggregationMethod:"avg",info:"JVM Time Spent On Garbage Collections.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_thread_pool_queued":{info:"Thread Pool Queued Threads Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.node_thread_pool_rejected":{info:"Thread Pool Rejected Threads Count.",en:{instance:{one:"elastic node",other:"elastic nodes"}}},"elasticsearch.cluster_communication_packets":{info:"Cluster Communication.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_communication":{info:"Cluster Communication Bandwidth.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.http_connections":{info:"HTTP Connections.",en:{instance:{one:"server",other:"servers"}}},"elasticsearch.breakers_trips":{info:"Circuit Breaker Trips Count.",en:{instance:{one:"server",other:"servers"}}},"elasticsearch.cluster_health_status":{info:"Cluster Status.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_number_of_nodes":{info:"Cluster Nodes Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_shards_count":{info:"Cluster Shards Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_pending_tasks":{info:"Cluster Pending Tasks.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_number_of_in_flight_fetch":{info:"Cluster Unfinished Fetches.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_count":{info:"Cluster Indices Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_shards_count":{info:"Cluster Indices Shards Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_docs_count":{info:"Cluster Indices Docs Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_store_size":{info:"Cluster Indices Store Size.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_indices_query_cache":{info:"Cluster Indices Query Cache.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.cluster_nodes_by_role_count":{info:"Cluster Nodes By Role Count.",en:{instance:{one:"cluster",other:"clusters"}}},"elasticsearch.node_index_health":{info:"Index Health.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_shards_count":{info:"Index Shards Count.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_docs_count":{info:"Index Docs Count.",en:{instance:{one:"index",other:"indexes"}}},"elasticsearch.node_index_store_size":{info:"Index Store Size.",en:{instance:{one:"index",other:"indexes"}}},"energid.blockindex":{info:"Blockchain index.",en:{instance:{one:"server",other:"servers"}}},"energid.difficulty":{info:"Blockchain difficulty.",en:{instance:{one:"server",other:"servers"}}},"energid.mempool":{info:"Memory pool.",en:{instance:{one:"server",other:"servers"}}},"energid.secmem":{info:"Secure memory.",en:{instance:{one:"server",other:"servers"}}},"energid.network":{info:"Network.",en:{instance:{one:"server",other:"servers"}}},"energid.timeoffset":{info:"Network time offset.",en:{instance:{one:"server",other:"servers"}}},"energid.utxo_transactions":{info:"Transactions.",en:{instance:{one:"server",other:"servers"}}},"exim.qemails":{info:"Exim Queue Emails.",en:{instance:{one:"server",other:"servers"}}},"fail2ban.faile_attempts":{info:"Failed attempts.",en:{instance:{one:"system",other:"systems"}}},"filecheck.file_existence":{info:"File Existence (0: not exists, 1: exists).",en:{instance:{one:"file",other:"files"}}},"filecheck.file_mtime_ago":{info:"File Time Since the Last Modification.",en:{instance:{one:"file",other:"files"}}},"filecheck.file_size":{info:"File Size.",en:{instance:{one:"file",other:"files"}}},"filecheck.dir_existence":{info:"Dir Existence (0: not exists, 1: exists).",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_mtime_ago":{info:"Dir Time Since the Last Modification.",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_num_of_files":{info:"Dir Number of Files.",en:{instance:{one:"directory",other:"directories"}}},"filecheck.dir_size":{info:"Dir Size.",en:{instance:{one:"directory",other:"directories"}}},"fluentd.retry_count":{info:"Plugin Retry Count.",en:{instance:{one:"plugin",other:"plugins"}}},"fluentd.buffer_queue_length":{info:"Plugin Buffer Queue Length.",en:{instance:{one:"plugin",other:"plugins"}}},"fluentd.buffer_total_queued_size":{info:"Plugin Buffer Total Size.",en:{instance:{one:"plugin",other:"plugins"}}},"cpu.temperature":{info:"Core temperature.",en:{instance:{one:"core",other:"cores"}}},"cpu.scaling_cur_freq":{info:"Current CPU Scaling Frequency.",en:{instance:{one:"system",other:"systems"}}},"system.dev_intr":{info:"Device Interrupts.",en:{instance:{one:"system",other:"systems"}}},"system.soft_intr":{info:"Software Interrupts.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_shared_mem_segs":{info:"IPC Shared Memory Segments.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_shared_mem_size":{info:"IPC Shared Memory Segments Size.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_queues":{info:"Number of IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_messages":{info:"Number of Messages in IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"system.ipc_msq_size":{info:"Size of IPC Message Queues.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpconnaborts":{info:"TCP Connection Aborts.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpofo":{info:"TCP Out-Of-Order Queue.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcpsyncookies":{info:"TCP SYN Cookies.",en:{instance:{one:"system",other:"systems"}}},"ipv4.tcplistenissues":{info:"TCP Listen Socket Issues.",en:{instance:{one:"system",other:"systems"}}},"ipv4.ecnpkts":{info:"IPv4 ECN Statistics.",en:{instance:{one:"system",other:"systems"}}},"ipfw.mem":{info:"Memory allocated by rules.",en:{instance:{one:"system",other:"systems"}}},"ipfw.packets":{info:"Packets.",en:{instance:{one:"system",other:"systems"}}},"ipfw.bytes":{info:"Bytes.",en:{instance:{one:"system",other:"systems"}}},"ipfw.active":{info:"Active rules.",en:{instance:{one:"system",other:"systems"}}},"ipfw.expired":{info:"Expired rules.",en:{instance:{one:"system",other:"systems"}}},"system.packets":{info:"Network Packets.",en:{instance:{one:"system",other:"systems"}}},"zfs.hits_rate":{info:"ZFS ARC Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.dhits_rate":{info:"ZFS Demand Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.phits_rate":{info:"ZFS Prefetch Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.mhits_rate":{info:"ZFS Metadata Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.l2hits_rate":{info:"ZFS L2 Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.actual_hits_rate":{info:"ZFS Actual Cache Hits Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.demand_data_hits_rate":{info:"ZFS Data Demand Efficiency Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.prefetch_data_hits_rate":{info:"ZFS Data Prefetch Efficiency Rate.",en:{instance:{one:"filesystem",other:"filesystems"}}},"zfs.trim_bytes":{info:"Successfully TRIMmed bytes.",en:{instance:{one:"system",other:"systems"}}},"zfs.trim_requests":{info:"TRIM requests.",en:{instance:{one:"system",other:"systems"}}},"ipmi.sel":{groupBy:["node"],info:"IPMI Events.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_state":{info:"IPMI Sensors State.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_temperature_c":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Temperature",layout:{x:2,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Temperature",layout:{x:2,y:2.5,w:2,h:2.5}}],info:"IPMI Sensor Temperature Celsius.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_temperature_f":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Temperature",layout:{x:2,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Temperature",layout:{x:2,y:2.5,w:2,h:2.5}}],info:"IPMI Sensor Temperature Fahrenheit.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_voltage":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Voltage",colors:s.default[12],layout:{x:8,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Voltage",layout:{x:10,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Voltage",layout:{x:10,y:2.5,w:2,h:2.5}}],groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Voltage.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_ampere":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Current.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_fan_speed":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Fan Speed",layout:{x:4,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Fan Speed",layout:{x:6,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Fan Speed",layout:{x:6,y:2.5,w:2,h:2.5}}],groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Fans speed.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_power":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Power.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensor_reading_percent":{groupBy:["label"],groupByLabel:["component"],aggregationMethod:"avg",info:"IPMI Sensor Reading Percentage.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.sensors_states":{info:"IPMI Sensors State.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.temperatures_c":{groupBy:["node"],aggregationMethod:"max",mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Temperature",colors:s.default[1],layout:{x:0,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Temperature",layout:{x:2,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Temperature",layout:{x:2,y:2.5,w:2,h:2.5}}],info:"System Celsius Temperatures read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.temperatures_f":{groupBy:["node"],aggregationMethod:"max",info:"System Celsius Temperatures read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.voltages":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Voltage",colors:s.default[12],layout:{x:8,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Voltage",layout:{x:10,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Voltage",layout:{x:10,y:2.5,w:2,h:2.5}}],groupBy:["node"],aggregationMethod:"avg",info:"System Voltages read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.amps":{groupBy:["node"],aggregationMethod:"avg",info:"System Current read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.rpm":{mainheads:[{"group_by[0]":["selected"],"aggregation[0]":"max",chartLibrary:"easypiechart",title:"Maximum Fan Speed",layout:{x:4,y:0,w:2,h:5}},{"group_by[0]":["selected"],"aggregation[0]":"min",chartLibrary:"number",title:"Minimum Fan Speed",layout:{x:6,y:0,w:2,h:2.5}},{"group_by[0]":["selected"],"aggregation[0]":"avg",chartLibrary:"number",title:"Average Fan Speed",layout:{x:6,y:2.5,w:2,h:2.5}}],groupBy:["node"],aggregationMethod:"avg",info:"System Fans read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.watts":{groupBy:["node"],aggregationMethod:"avg",info:"System Power read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"ipmi.percent":{groupBy:["node"],aggregationMethod:"avg",info:"System Metrics read by IPMI.",en:{instance:{one:"sensor",other:"sensors"}}},"freeradius.proxy_bad_authentication":{info:"Bad Authentication Requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.accounting":{info:"Accounting.",en:{instance:{one:"server",other:"servers"}}},"freeradius.bad_accounting":{info:"Bad Accounting Requests.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_accounting":{info:"Accounting.",en:{instance:{one:"server",other:"servers"}}},"freeradius.proxy_bad_accounting":{info:"Bad Accounting Requests.",en:{instance:{one:"server",other:"servers"}}},"gearman.total_jobs":{info:"Total Jobs.",en:{instance:{one:"server",other:"servers"}}},"gearman.single_job":{info:"{job_name}.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_ancient_io_rate":{info:"Ancient Chaindata rate.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_ancient_io":{info:"Session ancient Chaindata.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_disk_io":{info:"Session chaindata on disk.",en:{instance:{one:"server",other:"servers"}}},"geth.eth_db_chaindata_disk_io_rate":{info:"On disk Chaindata rate.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_pending":{info:"Pending Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_current":{info:"Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.tx_pool_queued":{info:"Queued Transaction Pool.",en:{instance:{one:"server",other:"servers"}}},"geth.p2p_peers":{info:"Number of Peers.",en:{instance:{one:"server",other:"servers"}}},"geth.rpc_calls":{info:"rpc calls.",en:{instance:{one:"server",other:"servers"}}},"expvar.memstats.heap":{info:"memory: size of heap memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.stack":{info:"memory: size of stack memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.mspan":{info:"memory: size of mspan memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.mcache":{info:"memory: size of mcache memory structures.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.live_objects":{info:"memory: number of live objects.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.sys":{info:"memory: size of reserved virtual address space.",en:{instance:{one:"system",other:"systems"}}},"expvar.memstats.gc_pauses":{info:"memory: average duration of GC pauses.",en:{instance:{one:"system",other:"systems"}}},"hddtemp.temperatures":{aggregationMethod:"avg",info:"Disk Temperatures.",en:{instance:{one:"device",other:"devices"}}},"hdfs.threads":{info:"Number of Threads.",en:{instance:{one:"device",other:"devices"}}},"hdfs.logs_total":{info:"Number of Logs.",en:{instance:{one:"device",other:"devices"}}},"hdfs.open_connections":{info:"RPC Open Connections.",en:{instance:{one:"device",other:"devices"}}},"hdfs.call_queue_length":{info:"RPC Call Queue Length.",en:{instance:{one:"device",other:"devices"}}},"hdfs.capacity":{info:"Capacity Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.used_capacity":{info:"Used Capacity Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.load":{info:"Number of Concurrent File Accesses (read/write) Across All DataNodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.volume_failures_total":{info:"Number of Volume Failures Across All Datanodes.",en:{instance:{one:"device",other:"devices"}}},"hdfs.files_total":{info:"Number of Tracked Files.",en:{instance:{one:"device",other:"devices"}}},"hdfs.blocks_total":{info:"Number of Allocated Blocks in the System.",en:{instance:{one:"device",other:"devices"}}},"hdfs.blocks":{info:"Number of Problem Blocks (can point to an unhealthy cluster).",en:{instance:{one:"device",other:"devices"}}},"hdfs.data_nodes":{info:"Number of Data Nodes By Status.",en:{instance:{one:"device",other:"devices"}}},"hdfs.datanode_used_capacity":{info:"Used Capacity.",en:{instance:{one:"device",other:"devices"}}},"hdfs.datanode_failed_volumes":{info:"Number of Failed Volumes.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ctrl_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ctrl_temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"hpssa.ld_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.pd_status":{info:"Status 1 is OK, Status 0 is not OK.",en:{instance:{one:"device",other:"devices"}}},"hpssa.pd_temperature":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"device",other:"devices"}}},"httpcheck.in_state":{aggregationMethod:"avg",info:"HTTP Current State Duration.",en:{instance:{one:"server",other:"servers"}}},"icecast.listeners":{info:"Number Of Listeners.",en:{instance:{one:"server",other:"servers"}}},"ioping.latency":{info:"Read Latency.",en:{instance:{one:"disk",other:"disks"}}},"ipfs.bandwidth":{info:"IPFS Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"ipfs.peers":{info:"IPFS Peers.",en:{instance:{one:"server",other:"servers"}}},"ipfs.repo_size":{info:"IPFS Repo Size.",en:{instance:{one:"server",other:"servers"}}},"ipfs.repo_objects":{info:"IPFS Repo Objects.",en:{instance:{one:"server",other:"servers"}}},"isc_dhcpd.active_leases_total":{info:"Active Leases Total.",en:{instance:{one:"server",other:"servers"}}},"isc_dhcpd.pool_active_leases":{info:"Pool Active Leases.",en:{instance:{one:"pool",other:"pools"}}},"isc_dhcpd.pool_utilization":{aggregationMethod:"avg",info:"Pool Utilization.",en:{instance:{one:"pool",other:"pools"}}},"libreswan.net":{info:"LibreSWAN Tunnel ${name} Traffic.",en:{instance:{one:"tunnel",other:"tunnels"}}},"libreswan.uptime":{aggregationMethod:"min",info:"LibreSWAN Tunnel ${name} Uptime.",en:{instance:{one:"tunnel",other:"tunnels"}}},"lighttpd.scoreboard":{info:"ScoreBoard.",en:{instance:{one:"server",other:"servers"}}},"litespeed.net_throughput":{info:"Network Throughput HTTPS.",en:{instance:{one:"server",other:"servers"}}},"litespeed.connections":{info:"Connections HTTPS.",en:{instance:{one:"server",other:"servers"}}},"litespeed.requests":{info:"Requests.",en:{instance:{one:"server",other:"servers"}}},"litespeed.requests_processing":{info:"Requests In Processing.",en:{instance:{one:"server",other:"servers"}}},"litespeed.cache":{info:"Private Cache Hits.",en:{instance:{one:"server",other:"servers"}}},"litespeed.static":{info:"Static Hits.",en:{instance:{one:"server",other:"servers"}}},"logstash.jvm_mem_heap":{info:"JVM Heap Memory.",en:{instance:{one:"system",other:"systems"}}},"megacli.adapter_degraded":{info:"Adapter State.",en:{instance:{one:"device",other:"devices"}}},"megacli.pd_media_error":{info:"Physical Drives Media Errors.",en:{instance:{one:"device",other:"devices"}}},"megacli.pd_predictive_failure":{info:"Physical Drives Predictive Failures.",en:{instance:{one:"device",other:"devices"}}},"megacli.bbu_relative_charge":{aggregationMethod:"avg",info:"Relative State of Charge.",en:{instance:{one:"battery",other:"batteries"}}},"megacli.bbu_cycle_count":{info:"Cycle Count.",en:{instance:{one:"battery",other:"batteries"}}},"memcached.cache":{info:"Cache Size.",en:{instance:{one:"system",other:"systems"}}},"memcached.net":{info:"Network.",en:{instance:{one:"system",other:"systems"}}},"memcached.connections":{info:"Connections.",en:{instance:{one:"system",other:"systems"}}},"memcached.items":{info:"Items.",en:{instance:{one:"system",other:"systems"}}},"memcached.evicted_reclaimed":{info:"Evicted and Reclaimed Items.",en:{instance:{one:"system",other:"systems"}}},"memcached.get":{info:"Get Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.get_rate":{info:"Get Request Rate.",en:{instance:{one:"system",other:"systems"}}},"memcached.set_rate":{info:"Set Request Rate.",en:{instance:{one:"system",other:"systems"}}},"memcached.delete":{info:"Delete Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.cas":{info:"Check and Set Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.increment":{info:"Increment Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.decrement":{info:"Decrement Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.touch":{info:"Touch Requests.",en:{instance:{one:"system",other:"systems"}}},"memcached.touch_rate":{info:"Touch Request Rate.",en:{instance:{one:"system",other:"systems"}}},"mongodb.operations_rate":{info:"Operations rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.operations_latency_time":{aggregationMethod:"avg",info:"Operations Latency.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.operations_by_type_rate":{info:"Operations by type.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.document_operations_rate":{info:"Document operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.scanned_indexes_rate":{info:"Scanned indexes.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.scanned_documents_rate":{info:"Scanned documents.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.active_clients_count":{info:"Connected clients.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.queued_operations_count":{info:"Queued operations because of a lock.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.lock_acquisitions_rate":{info:"Lock acquisitions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_open_count":{info:"Open cursors.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_open_no_timeout_count":{info:"Open cursors with disabled timeout.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_opened_rate":{info:"Opened cursors rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_timed_out_rate":{info:"Timed-out cursors.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.cursors_by_lifespan_count":{info:"Cursors lifespan.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_count":{info:"Current transactions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_rate":{info:"Transactions rate.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_commits_rate":{info:"Transactions commits.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.transactions_commits_duration_time":{aggregationMethod:"avg",info:"Transactions successful commits duration.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.connections_usage":{info:"Connections usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.connections_by_state_count":{info:"Connections By State.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.asserts_rate":{info:"Raised assertions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_traffic_rate":{info:"Network traffic.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_requests_rate":{info:"Network Requests.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_slow_dns_resolutions_rate":{info:"Slow DNS resolution operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.network_slow_ssl_handshakes_rate":{info:"Slow SSL handshake operations.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_resident_size":{info:"Used resident memory.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_virtual_size":{info:"Used virtual memory.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_page_faults_rate":{info:"Memory page faults.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.memory_tcmalloc_stats":{info:"TCMalloc statistics.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_concurrent_read_transactions_usage":{info:"Wired Tiger concurrent read transactions usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_concurrent_write_transactions_usage":{info:"Wired Tiger concurrent write transactions usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_usage":{info:"Wired Tiger cache usage.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_dirty_space_size":{info:"Wired Tiger cache dirty space size.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_io_rate":{info:"Wired Tiger IO activity.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.wiredtiger_cache_evictions_rate":{info:"Wired Tiger cache evictions.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.database_collection_count":{info:"Database collections.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_indexes_count":{info:"Database indexes.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_views_count":{info:"Database views.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_documents_count":{info:"Database documents.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_data_size":{info:"Database data size.",en:{instance:{one:"database",other:"databases"}}},"mongodb.database_index_size":{info:"Database index size.",en:{instance:{one:"database",other:"databases"}}},"mongodb.repl_set_member_state":{info:"Replica Set member state.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_health_status":{info:"Replica Set member health status.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_replication_lag_time":{aggregationMethod:"max",info:"Replica Set member replication lag.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_heartbeat_latency_time":{aggregationMethod:"avg",info:"Replica Set member heartbeat latency.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_ping_rtt_time":{aggregationMethod:"avg",info:"Replica Set member ping RTT.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.repl_set_member_uptime":{aggregationMethod:"min",info:"Replica Set member uptime.",en:{instance:{one:"replica",other:"replicas"}}},"mongodb.sharding_nodes_count":{info:"Sharding Nodes.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_sharded_databases_count":{info:"Sharded databases.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_sharded_collections_count":{info:"Sharded collections.",en:{instance:{one:"db server",other:"db servers"}}},"mongodb.sharding_shard_chunks_count":{info:"Shard chunks.",en:{instance:{one:"shard",other:"shards"}}},"monit.filesystems":{info:"Filesystems.",en:{instance:{one:"system",other:"systems"}}},"monit.directories":{info:"Directories.",en:{instance:{one:"system",other:"systems"}}},"monit.files":{info:"Files.",en:{instance:{one:"system",other:"systems"}}},"monit.fifos":{info:"Pipes (fifo).",en:{instance:{one:"system",other:"systems"}}},"monit.programs":{info:"Programs statuses.",en:{instance:{one:"system",other:"systems"}}},"monit.services":{info:"Processes statuses.",en:{instance:{one:"system",other:"systems"}}},"monit.process_uptime":{aggregationMethod:"min",info:"Processes uptime.",en:{instance:{one:"system",other:"systems"}}},"monit.process_threads":{info:"Processes threads.",en:{instance:{one:"system",other:"systems"}}},"monit.process_childrens":{info:"Child processes.",en:{instance:{one:"system",other:"systems"}}},"monit.hosts":{info:"Hosts.",en:{instance:{one:"system",other:"systems"}}},"monit.host_latency":{aggregationMethod:"avg",info:"Hosts latency.",en:{instance:{one:"system",other:"systems"}}},"monit.networks":{info:"Network interfaces and addresses.",en:{instance:{one:"system",other:"systems"}}},"mysql.queries_type":{info:"Queries By Type.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connections":{info:"Connections.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connections_active":{info:"Active Connections.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.threads":{info:"Threads.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.innodb_os_log_fsync_writes":{info:"InnoDB OS Log Operations.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.innodb_os_log_io":{info:"InnoDB OS Log Bandwidth.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.connection_errors":{info:"Connection Errors.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.open_tables":{info:"Open Tables.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.process_list_queries_count":{info:"Queries Count.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_writesets":{info:"Replicated Writesets.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_conflicts":{info:"Replication Conflicts.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.galera_thread_count":{info:"Total Number of WSRep (applier/rollbacker) Threads.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.key_requests":{info:"MyISAM Key Cache Requests.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.key_disk_ops":{info:"MyISAM Key Cache Disk Operations.",en:{instance:{one:"db server",other:"db servers"}}},"mysql.slave_status":{info:"I/O / SQL Thread Running State.",en:{instance:{one:"connection",other:"connections"}}},"mysql.userstats_created_transactions":{info:"User Transactions.",en:{instance:{one:"user",other:"users"}}},"mysql.userstats_empty_queries":{info:"User Empty Queries.",en:{instance:{one:"user",other:"users"}}},"netfilter.netlink_new":{info:"Connection Tracker New Connections.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_changes":{info:"Connection Tracker Changes.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_search":{info:"Connection Tracker Searches.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_errors":{info:"Connection Tracker Errors.",en:{instance:{one:"system",other:"systems"}}},"netfilter.netlink_expect":{info:"Connection Tracker Expectations.",en:{instance:{one:"system",other:"systems"}}},"netfilter.nfacct_packets":{info:"Netfilter Accounting Packets.",en:{instance:{one:"system",other:"systems"}}},"netfilter.nfacct_bytes":{info:"Netfilter Accounting Bandwidth.",en:{instance:{one:"system",other:"systems"}}},"nginxvts.connections_total":{info:"Total connections.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.shm_used_node":{info:"Number of node using shared memory.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_responses_total":{info:"Total number of responses by code class.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_traffic_total":{info:"Total amount of data transferred to and from the server.",en:{instance:{one:"server",other:"servers"}}},"nginxvts.server_cache_total":{info:"Total server cache.",en:{instance:{one:"server",other:"servers"}}},"nsd.queries":{info:"queries.",en:{instance:{one:"server",other:"servers"}}},"nsd.zones":{info:"zones.",en:{instance:{one:"server",other:"servers"}}},"nsd.protocols":{info:"protocol.",en:{instance:{one:"server",other:"servers"}}},"nsd.type":{info:"query type.",en:{instance:{one:"server",other:"servers"}}},"nsd.transfer":{info:"transfer.",en:{instance:{one:"server",other:"servers"}}},"nsd.rcode":{info:"return code.",en:{instance:{one:"server",other:"servers"}}},"ntpd.sys_rootdisp":{info:"Total root dispersion to the primary reference clock.",en:{instance:{one:"server",other:"servers"}}},"ntpd.peer_stratum":{info:"Peer stratum.",en:{instance:{one:"peer",other:"peers"}}},"nut.charge":{aggregationMethod:"avg",info:"UPS Charge.",en:{instance:{one:"device",other:"devices"}}},"nut.runtime":{info:"UPS Runtime.",en:{instance:{one:"device",other:"devices"}}},"nut.battery.voltage":{aggregationMethod:"avg",info:"UPS Battery Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.input.voltage":{aggregationMethod:"avg",info:"UPS Input Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.input.current":{aggregationMethod:"avg",info:"UPS Input Current.",en:{instance:{one:"device",other:"devices"}}},"nut.input.frequency":{aggregationMethod:"avg",info:"UPS Input Frequency.",en:{instance:{one:"device",other:"devices"}}},"nut.output.voltage":{aggregationMethod:"avg",info:"UPS Output Voltage.",en:{instance:{one:"device",other:"devices"}}},"nut.load":{aggregationMethod:"avg",info:"UPS Load.",en:{instance:{one:"device",other:"devices"}}},"nut.load_usage":{info:"UPS Load Usage.",en:{instance:{one:"device",other:"devices"}}},"nut.temperature":{aggregationMethod:"avg",info:"UPS Temperature.",en:{instance:{one:"device",other:"devices"}}},"nut.clients":{info:"UPS Connected Clients.",en:{instance:{one:"device",other:"devices"}}},"nvidia_smi.gpu_pcie_bandwidth_utilization":{aggregationMethod:"avg",info:"PCI Express Bandwidth Utilization.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_frame_buffer_memory_usage":{info:"Frame buffer memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_bar1_memory_usage":{info:"BAR1 memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_voltage":{aggregationMethod:"avg",info:"Voltage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_power_draw":{aggregationMethod:"avg",info:"Power draw.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_mode_current_status":{info:"MIG current mode.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_devices_count":{info:"MIG devices.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_frame_buffer_memory_usage":{info:"Frame buffer memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"nvidia_smi.gpu_mig_bar1_memory_usage":{info:"BAR1 memory usage.",en:{instance:{one:"gpu",other:"gpus"}}},"openldap.total_connections":{info:"Total Connections.",en:{instance:{one:"server",other:"servers"}}},"openldap.traffic_stats":{info:"Traffic.",en:{instance:{one:"server",other:"servers"}}},"openldap.operations_status":{info:"Operations Status.",en:{instance:{one:"server",other:"servers"}}},"openldap.referrals":{info:"Referrals.",en:{instance:{one:"server",other:"servers"}}},"openldap.entries":{info:"Entries.",en:{instance:{one:"server",other:"servers"}}},"openldap.ldap_operations":{info:"Operations.",en:{instance:{one:"server",other:"servers"}}},"openldap.waiters":{info:"Waiters.",en:{instance:{one:"server",other:"servers"}}},"opensips.dialogs_active":{info:"OpenSIPS Active Dialogs.",en:{instance:{one:"system",other:"systems"}}},"opensips.users":{info:"OpenSIPS Users.",en:{instance:{one:"system",other:"systems"}}},"opensips.registrar":{info:"OpenSIPS Registrar.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions":{info:"OpenSIPS Transactions.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_rcv":{info:"OpenSIPS Core Receives.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_fwd":{info:"OpenSIPS Core Forwards.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_drop":{info:"OpenSIPS Core Drops.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_err":{info:"OpenSIPS Core Errors.",en:{instance:{one:"system",other:"systems"}}},"opensips.core_bad":{info:"OpenSIPS Core Bad.",en:{instance:{one:"system",other:"systems"}}},"opensips.tm_replies":{info:"OpenSIPS TM Replies.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions_status":{info:"OpenSIPS Transactions Status.",en:{instance:{one:"system",other:"systems"}}},"opensips.transactions_inuse":{info:"OpenSIPS InUse Transactions.",en:{instance:{one:"system",other:"systems"}}},"opensips.sl_replies":{info:"OpenSIPS SL Replies.",en:{instance:{one:"system",other:"systems"}}},"opensips.dialogs":{info:"OpenSIPS Dialogs.",en:{instance:{one:"system",other:"systems"}}},"opensips.net_waiting":{info:"OpenSIPS Network Waiting.",en:{instance:{one:"system",other:"systems"}}},"opensips.uri_checks":{info:"OpenSIPS URI Checks.",en:{instance:{one:"system",other:"systems"}}},"opensips.traces":{info:"OpenSIPS Traces.",en:{instance:{one:"system",other:"systems"}}},"opensips.shmem":{info:"OpenSIPS Shared Memory.",en:{instance:{one:"system",other:"systems"}}},"opensips.shmem_fragment":{info:"OpenSIPS Shared Memory Fragmentation.",en:{instance:{one:"system",other:"systems"}}},"oracledb.session_count":{info:"Session Count.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.session_limit_usage":{info:"Session Limit Usage.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.logons":{info:"Logons.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.physical_disk_read_writes":{info:"Physical Disk Reads/Writes.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.sorts_on_disks":{info:"Sorts On Disk.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.full_table_scans":{info:"Full Table Scans.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.database_wait_time_ratio":{aggregationMethod:"avg",info:"Database Wait Time Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.shared_pool_free_memory":{info:"Shared Pool Free Memory.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.in_memory_sorts_ratio":{aggregationMethod:"avg",info:"In-Memory Sorts Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.sql_service_response_time":{aggregationMethod:"avg",info:"SQL Service Response Time.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.user_rollbacks":{info:"User Rollbacks.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.enqueue_timeouts":{info:"Enqueue Timeouts.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.cache_hit_ration":{aggregationMethod:"avg",info:"Cache Hit Ratio.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.global_cache_blocks":{info:"Global Cache Blocks Events.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.activity":{info:"Activities.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.wait_time":{aggregationMethod:"avg",info:"Wait Time.",en:{instance:{one:"db server",other:"db servers"}}},"oracledb.tablespace_size":{info:"Size.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.tablespace_usage":{info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.tablespace_usage_in_percent":{aggregationMethod:"avg",info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_size":{info:"Size.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_usage":{info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"oracledb.allocated_usage_in_percent":{aggregationMethod:"avg",info:"Usage.",en:{instance:{one:"tablespace",other:"tablespaces"}}},"perf.cpu_cycles":{info:"CPU cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.instructions":{info:"Instructions.",en:{instance:{one:"system",other:"systems"}}},"perf.branch_instructions":{info:"Branch instructions.",en:{instance:{one:"system",other:"systems"}}},"perf.cache":{info:"Cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.bus_cycles":{info:"Bus cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.stalled_cycles":{info:"Stalled frontend and backend cycles.",en:{instance:{one:"system",other:"systems"}}},"perf.migrations":{info:"CPU migrations.",en:{instance:{one:"system",other:"systems"}}},"perf.alignment_faults":{info:"Alignment faults.",en:{instance:{one:"system",other:"systems"}}},"perf.emulation_faults":{info:"Emulation faults.",en:{instance:{one:"system",other:"systems"}}},"perf.l1d_cache":{info:"L1D cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.l1d_cache_prefetch":{info:"L1D prefetch cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.l1i_cache":{info:"L1I cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.ll_cache":{info:"LL cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.dtlb_cache":{info:"DTLB cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.itlb_cache":{info:"ITLB cache operations.",en:{instance:{one:"system",other:"systems"}}},"perf.pbu_cache":{info:"PBU cache operations.",en:{instance:{one:"system",other:"systems"}}},"pihole.unwanted_domains_blocking_status":{info:"Unwanted Domains Blocking Status.",en:{instance:{one:"server",other:"servers"}}},"pika.connections":{info:"Connections.",en:{instance:{one:"server",other:"servers"}}},"pika.clients":{info:"Clients.",en:{instance:{one:"server",other:"servers"}}},"pika.memory":{info:"Memory usage.",en:{instance:{one:"server",other:"servers"}}},"pika.connected_replicas":{info:"Connected replicas.",en:{instance:{one:"server",other:"servers"}}},"pika.commands":{info:"Processed commands.",en:{instance:{one:"server",other:"servers"}}},"pika.commands_calls":{info:"Calls per command.",en:{instance:{one:"server",other:"servers"}}},"pika.database_strings_keys":{info:"Strings type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_strings_expires_keys":{info:"Strings type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_strings_invalid_keys":{info:"Strings type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_keys":{info:"Hashes type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_expires_keys":{info:"Hashes type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_hashes_invalid_keys":{info:"Hashes type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_keys":{info:"Lists type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_expires_keys":{info:"Lists type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_lists_invalid_keys":{info:"Lists type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_keys":{info:"Zsets type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_expires_keys":{info:"Zsets type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_zsets_invalid_keys":{info:"Zsets type invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_keys":{info:"Sets type keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_expires_keys":{info:"Sets type expires keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.database_sets_invalid_keys":{info:"Sets invalid keys per database.",en:{instance:{one:"database",other:"databases"}}},"pika.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"portcheck.state_duration":{info:"Current State Duration.",en:{instance:{one:"server",other:"servers"}}},"postgres.locks_utilization":{aggregationMethod:"avg",info:"Acquired locks utilization.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.catalog_relations_count":{info:"Relation count.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.catalog_relations_size":{info:"Relation size.",en:{instance:{one:"pg server",other:"pg servers"}}},"postgres.table_size":{info:"Table total size.",en:{instance:{one:"table",other:"tables"}}},"powerdns.questions_in":{info:"Incoming questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns.questions_out":{info:"Outgoing questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns.cache_usage":{info:"Cache Usage.",en:{instance:{one:"server",other:"servers"}}},"powerdns.cache_size":{info:"Cache Size.",en:{instance:{one:"server",other:"servers"}}},"powerdns.latency":{info:"Answer latency.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.questions_in":{info:"Incoming questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.questions_out":{info:"Outgoing questions.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.answer_time":{info:"Queries answered within a time range.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.timeouts":{info:"Timeouts on outgoing UDP queries.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.drops":{info:"Drops.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.cache_usage":{info:"Cache Usage.",en:{instance:{one:"server",other:"servers"}}},"powerdns_recursor.cache_size":{info:"Cache Size.",en:{instance:{one:"server",other:"servers"}}},"cpu.cpufreq":{info:"Current CPU Frequency.",en:{instance:{one:"system",other:"systems"}}},"mem.hugepage":{info:"Dedicated HugePages Memory.",en:{instance:{one:"system",other:"systems"}}},"mem.pagetype":{info:"pagetype_Node{node}_{zone}_{type}.",en:{instance:{one:"system",other:"systems"}}},"system.message_queue_message":{info:"IPC Message Queue Number of Messages.",en:{instance:{one:"system",other:"systems"}}},"md.nonredundant":{family:"redundancy",info:"Nonredundant Array Availability.",en:{instance:{one:"device",other:"devices"}}},"wireless.status":{family:"status",info:"Internal status reported by interface..",en:{instance:{one:"device",other:"devices"}}},"btrfs.commits":{family:"commits",info:"BTRFS Commits.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.commits_perc_time":{family:"commits",aggregationMethod:"avg",info:"BTRFS Commits Time Share.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.commit_timings":{family:"commits",info:"BTRFS Commit Timings.",en:{instance:{one:"filesystem",other:"filesystems"}}},"btrfs.device_errors":{family:"errors",info:"BTRFS Device Errors.",en:{instance:{one:"device",other:"devices"}}},"proxysql.client_connections_count":{info:"Client connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_connections_rate":{info:"Client connections rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.server_connections_count":{info:"Server connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.server_connections_rate":{info:"Server connections rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backends_traffic":{info:"Backends traffic.",en:{instance:{one:"server",other:"servers"}}},"proxysql.clients_traffic":{info:"Clients traffic.",en:{instance:{one:"server",other:"servers"}}},"proxysql.active_transactions_count":{info:"Client connections that are currently processing a transaction.",en:{instance:{one:"server",other:"servers"}}},"proxysql.questions_rate":{info:"Client requests / statements executed.",en:{instance:{one:"server",other:"servers"}}},"proxysql.slow_queries_rate":{info:"Slow queries.",en:{instance:{one:"server",other:"servers"}}},"proxysql.queries_rate":{info:"Queries rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backend_statements_count":{info:"Statements available across all backend connections.",en:{instance:{one:"server",other:"servers"}}},"proxysql.backend_statements_rate":{info:"Statements executed against the backends.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_statements_count":{info:"Statements that are in use by clients.",en:{instance:{one:"server",other:"servers"}}},"proxysql.client_statements_rate":{info:"Statements executed by clients.",en:{instance:{one:"server",other:"servers"}}},"proxysql.cached_statements_count":{info:"Global prepared statements.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_entries_count":{info:"Query Cache entries.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_memory_used":{info:"Query Cache memory used.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_io":{info:"Query Cache I/O.",en:{instance:{one:"server",other:"servers"}}},"proxysql.query_cache_requests_rate":{info:"Query Cache requests.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_workers_count":{info:"MySQL monitor workers.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_workers_rate":{info:"MySQL monitor workers rate.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_connect_checks_rate":{info:"MySQL monitor connect checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_ping_checks_rate":{info:"MySQL monitor ping checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_read_only_checks_rate":{info:"MySQL monitor read only checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_monitor_replication_lag_checks_rate":{info:"MySQL monitor replication lag checks.",en:{instance:{one:"server",other:"servers"}}},"proxysql.jemalloc_memory_used":{info:"Jemalloc used memory.",en:{instance:{one:"server",other:"servers"}}},"proxysql.memory_used":{info:"Memory used.",en:{instance:{one:"server",other:"servers"}}},"proxysql.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"proxysql.mysql_command_execution_rate":{info:"MySQL command execution.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_command_execution_time":{aggregationMethod:"avg",info:"MySQL command execution time.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_command_execution_duration":{info:"MySQL command execution duration histogram.",en:{instance:{one:"command",other:"commands"}}},"proxysql.mysql_user_connections_utilization":{aggregationMethod:"avg",info:"MySQL user connections utilization.",en:{instance:{one:"user",other:"users"}}},"proxysql.mysql_user_connections_count":{info:"MySQL user connections used.",en:{instance:{one:"user",other:"users"}}},"proxysql.backend_status":{info:"Backend status.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_connections_usage":{info:"Backend connections usage.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_connections_rate":{info:"Backend connections established.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_queries_rate":{info:"Backend queries.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_traffic":{info:"Backend traffic.",en:{instance:{one:"sql backend",other:"sql backends"}}},"proxysql.backend_latency":{aggregationMethod:"avg",info:"Backend latency.",en:{instance:{one:"sql backend",other:"sql backends"}}},"pulsar.broker_components":{info:"Broker Components.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.throughput_rate":{info:"Throughput Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_size":{info:"Storage Size.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_operations_rate":{info:"Storage Read/Write Operations Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.storage_write_latency":{aggregationMethod:"avg",info:"Storage Write Latency.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.entry_size":{info:"Entry Size.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.subscription_delayed":{info:"Subscriptions Delayed for Dispatching.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_rate":{info:"Replication Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_throughput_rate":{info:"Replication Throughput Rate.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.replication_backlog":{info:"Replication Backlog.",en:{instance:{one:"broker",other:"brokers"}}},"pulsar.namespace_broker_components":{info:"Broker Components.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_throughput_rate":{info:"Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_size":{info:"Storage Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_operations_rate":{info:"Storage Read/Write Operations Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_storage_write_latency":{aggregationMethod:"avg",info:"Storage Write Latency.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_entry_size":{info:"Entry Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_subscription_delayed":{info:"Subscriptions Delayed for Dispatching.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_rate":{info:"Replication Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_throughput_rate":{info:"Replication Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.namespace_replication_backlog":{info:"Replication Backlog.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_producers":{info:"Topic Producers.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscriptions":{info:"Topic Subscriptions.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_consumers":{info:"Topic Consumers.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_messages_rate_in":{info:"Topic Publish Messages Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_messages_rate_out":{info:"Topic Dispatch Messages Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_throughput_rate_in":{info:"Topic Publish Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_throughput_rate_out":{info:"Topic Dispatch Throughput Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_size":{info:"Topic Storage Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_read_rate":{info:"Topic Storage Read Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_storage_write_rate":{info:"Topic Storage Write Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_msg_backlog":{info:"Topic Messages Backlog Size.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_delayed":{info:"Topic Subscriptions Delayed for Dispatching.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_msg_rate_redeliver":{info:"Topic Subscriptions Redelivered Message Rate.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_subscription_blocked_on_unacked_messages":{info:"Topic Subscriptions Blocked On Unacked Messages.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_rate_in":{info:"Topic Replication Rate From Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_rate_out":{info:"Topic Replication Rate To Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_throughput_rate_in":{info:"Topic Replication Throughput Rate From Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_throughput_rate_out":{info:"Topic Replication Throughput Rate To Remote Cluster.",en:{instance:{one:"namespace",other:"namespaces"}}},"pulsar.topic_replication_backlog":{info:"Topic Replication Backlog.",en:{instance:{one:"namespace",other:"namespaces"}}},"puppet.jvm":{info:"JVM Non-Heap.",en:{instance:{one:"server",other:"servers"}}},"puppet.fdopen":{info:"File Descriptors.",en:{instance:{one:"server",other:"servers"}}},"rabbitmq.messages_count":{info:"Messages.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.messages_rate":{info:"Messages.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.objects_count":{info:"Objects.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.connection_churn_rate":{info:"Connection churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.channel_churn_rate":{info:"Channel churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.queue_churn_rate":{info:"Queue churn.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.file_descriptors_count":{info:"File descriptors.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.sockets_count":{info:"Used sockets.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.erlang_processes_count":{info:"Erlang processes.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.erlang_run_queue_processes_count":{info:"Erlang run queue.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.memory_usage":{info:"Memory.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.disk_space_free_size":{info:"Free disk space.",en:{instance:{one:"broker",other:"brokers"}}},"rabbitmq.vhost_messages_count":{info:"Vhost messages.",en:{instance:{one:"vhost",other:"vhosts"}}},"rabbitmq.vhost_messages_rate":{info:"Vhost messages rate.",en:{instance:{one:"vhost",other:"vhosts"}}},"rabbitmq.queue_messages_count":{info:"Queue messages.",en:{instance:{one:"queue",other:"queues"}}},"rabbitmq.queue_messages_rate":{info:"Queue messages rate.",en:{instance:{one:"queue",other:"queues"}}},"redis.connections":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Connections",layout:{x:14,y:0,w:1.999999999,h:5}}],info:"Accepted and rejected (maxclients limit) connections.",en:{instance:{one:"server",other:"servers"}}},"redis.memory":{info:"Memory usage.",en:{instance:{one:"server",other:"servers"}}},"redis.key_eviction_events":{info:"Evicted keys due to maxmemory limit.",en:{instance:{one:"server",other:"servers"}}},"redis.net":{info:"Bandwidth.",en:{instance:{one:"server",other:"servers"}}},"redis.rdb_changes":{info:"TI,TLE.",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_now":{aggregationMethod:"max",info:"Duration of the on-going RDB save operation if any.",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_health":{info:"Status of the last RDB save operation (0: ok, 1: err).",en:{instance:{one:"server",other:"servers"}}},"redis.bgsave_last_rdb_save_since_time":{aggregationMethod:"min",info:"Time elapsed since the last successful RDB save.",en:{instance:{one:"server",other:"servers"}}},"redis.aof_file_size":{info:"AOF file size.",en:{instance:{one:"server",other:"servers"}}},"redis.commands_usec":{info:"Total CPU time consumed by the commands.",en:{instance:{one:"server",other:"servers"}}},"redis.commands_usec_per_sec":{info:"Average CPU consumed per command execution.",en:{instance:{one:"server",other:"servers"}}},"redis.key_expiration_events":{info:"Expired keys.",en:{instance:{one:"server",other:"servers"}}},"redis.database_keys":{info:"Keys per database.",en:{instance:{one:"server",other:"servers"}}},"redis.database_expires_keys":{info:"Keys with an expiration per database.",en:{instance:{one:"server",other:"servers"}}},"redis.connected_replicas":{info:"Connected replicas.",en:{instance:{one:"server",other:"servers"}}},"redis.master_link_status":{info:"Master link status.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_connected_servers":{info:"Connected Servers.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_clients_active":{info:"Active Clients.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_queries":{info:"Queries.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.cluster_documents":{info:"Documents.",en:{instance:{one:"server",other:"servers"}}},"rethinkdb.client_connections":{info:"Client Connections.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.clients_active":{info:"Active Clients.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.queries":{info:"Queries.",en:{instance:{one:"database",other:"databases"}}},"rethinkdb.documents":{info:"Documents.",en:{instance:{one:"database",other:"databases"}}},"riak.kv.throughput":{info:"Reads & writes coordinated by this node.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.vnode_updates":{info:"Update operations coordinated by local vnodes by data type.",en:{instance:{one:"server",other:"servers"}}},"riak.search":{info:"Search queries on the node.",en:{instance:{one:"server",other:"servers"}}},"riak.search.documents":{info:"Documents indexed by search.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.operations":{info:"Consistent node operations.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.latency.get":{info:"Time between reception of a client GET request and subsequent response to client.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.latency.put":{info:"Time between reception of a client PUT request and subsequent response to client.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.counter_merge":{info:"Time it takes to perform an Update Counter operation.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.set_merge":{info:"Time it takes to perform an Update Set operation.",en:{instance:{one:"server",other:"servers"}}},"riak.dt.latency.map_merge":{info:"Time it takes to perform an Update Map operation.",en:{instance:{one:"server",other:"servers"}}},"riak.search.latency.query":{info:"Search query latency.",en:{instance:{one:"server",other:"servers"}}},"riak.search.latency.index":{info:"Time it takes Search to index a new document.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.latency.get":{info:"Strongly consistent read latency.",en:{instance:{one:"server",other:"servers"}}},"riak.consistent.latency.put":{info:"Strongly consistent write latency.",en:{instance:{one:"server",other:"servers"}}},"riak.vm":{info:"Total processes running in the Erlang VM.",en:{instance:{one:"server",other:"servers"}}},"riak.vm.memory.processes":{info:"Memory allocated & used by Erlang processes.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.siblings_encountered.get":{info:"Number of siblings encountered during GET operations by this node during the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.kv.objsize.get":{info:"Object size encountered by this node during the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.search.vnodeq_size":{info:"Number of unprocessed messages in the vnode message queues of Search on this node in the past minute.",en:{instance:{one:"server",other:"servers"}}},"riak.search.index":{info:"Number of writes to Search failed due to bad data format by reason.",en:{instance:{one:"server",other:"servers"}}},"riak.core.protobuf_connections":{info:"Protocol buffer connections by status.",en:{instance:{one:"server",other:"servers"}}},"riak.core.repairs":{info:"Number of repair operations this node has coordinated.",en:{instance:{one:"server",other:"servers"}}},"riak.core.fsm_active":{info:"Active finite state machines by kind.",en:{instance:{one:"server",other:"servers"}}},"riak.core.fsm_rejected":{info:"Finite state machines being rejected by Sidejobs overload protection.",en:{instance:{one:"server",other:"servers"}}},"syscall.rw":{info:"R/Ws.",en:{instance:{one:"server",other:"servers"}}},"smb2.rw":{info:"R/Ws.",en:{instance:{one:"server",other:"servers"}}},"smb2.create_close":{info:"Create/Close.",en:{instance:{one:"server",other:"servers"}}},"smb2.get_set_info":{info:"Info.",en:{instance:{one:"server",other:"servers"}}},"smb2.find":{info:"Find.",en:{instance:{one:"server",other:"servers"}}},"smb2.notify":{info:"Notify.",en:{instance:{one:"server",other:"servers"}}},"smb2.sm_counters":{info:"Lesser Ops.",en:{instance:{one:"server",other:"servers"}}},"scaleio.system_capacity_total":{info:"Total Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_in_use":{info:"Capacity In Use.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_usage":{info:"Capacity Usage.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_available_volume_allocation":{info:"Available For Volume Allocation.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_capacity_health_state":{info:"Capacity Health State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_bandwidth_total":{info:"Primary Backend Bandwidth Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_bandwidth":{info:"Primary Backend Bandwidth.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_iops_total":{info:"Primary Backend IOPS Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_iops":{info:"Primary Backend IOPS.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_workload_primary_io_size_total":{info:"Primary Backend I/O Size Total (Read and Write).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance":{info:"Rebalance.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance_left":{info:"Rebalance Pending Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebalance_time_until_finish":{aggregationMethod:"min",info:"Rebalance Approximate Time Until Finish.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebuild":{info:"Rebuild Bandwidth Total (Forward, Backward and Normal).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_rebuild_left":{info:"Rebuild Pending Capacity Total (Forward, Backward and Normal).",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_defined_components":{info:"Components.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_components_volumes_by_type":{info:"Volumes By Type.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.system_components_volumes_by_mapping":{info:"Volumes By Mapping.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_total":{info:"Total Capacity.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_in_use":{info:"Capacity In Use.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_usage":{info:"Capacity Usage.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_utilization":{aggregationMethod:"avg",info:"Capacity Utilization.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_available_volume_allocation":{info:"Available For Volume Allocation.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_capacity_health_state":{info:"Capacity Health State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.storage_pool_components":{info:"Components.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_mdm_connection_state":{info:"MDM Connection State.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_bandwidth":{info:"Bandwidth.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_iops":{info:"IOPS.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_io_size":{info:"IOPS Size.",en:{instance:{one:"storage server",other:"storage servers"}}},"scaleio.sdc_num_of_mapped_volumed":{info:"Mapped Volumes.",en:{instance:{one:"storage server",other:"storage servers"}}},"mem.slabmemory":{info:"Memory Usage.",en:{instance:{one:"system",other:"systems"}}},"mem.slabfilling":{info:"Object Filling.",en:{instance:{one:"system",other:"systems"}}},"mem.slabwaste":{info:"Memory waste.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_error_rate":{info:"Read Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.seek_error_rate":{info:"Seek Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.soft_read_error_rate":{info:"Soft Read Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_error_rate":{info:"Write Error Rate.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_total_err_corrected":{info:"Read Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.read_total_unc_errors":{info:"Read Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_total_err_corrected":{info:"Write Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.write_total_unc_errors":{info:"Write Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.verify_total_err_corrected":{info:"Verify Error Corrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.verify_total_unc_errors":{info:"Verify Error Uncorrected.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.sata_interface_downshift":{info:"SATA Interface Downshift.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.udma_crc_error_count":{info:"UDMA CRC Error Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.throughput_performance":{info:"Throughput Performance.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.seek_time_performance":{info:"Seek Time Performance.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.start_stop_count":{info:"Start/Stop Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.power_on_hours_count":{info:"Power-On Hours Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.power_cycle_count":{info:"Power Cycle Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.unexpected_power_loss":{info:"Unexpected Power Loss.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.spin_up_time":{aggregationMethod:"avg",info:"Spin-Up Time.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.spin_up_retries":{info:"Spin-up Retries.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.calibration_retries":{info:"Calibration Retries.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.airflow_temperature_celsius":{aggregationMethod:"avg",info:"Airflow Temperature Celsius.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.temperature_celsius":{aggregationMethod:"avg",info:"Temperature.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reallocated_sectors_count":{info:"Reallocated Sectors Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reserved_block_count":{aggregationMethod:"avg",info:"Reserved Block Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.program_fail_count":{info:"Program Fail Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.erase_fail_count":{info:"Erase Fail Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.wear_leveller_worst_case_erase_count":{info:"Wear Leveller Worst Case Erase Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.unused_reserved_nand_blocks":{info:"Unused Reserved NAND Blocks.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.reallocation_event_count":{info:"Reallocation Event Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.current_pending_sector_count":{info:"Current Pending Sector Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.offline_uncorrectable_sector_count":{info:"Offline Uncorrectable Sector Count.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.percent_lifetime_used":{aggregationMethod:"avg",info:"Percent Lifetime Used.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.media_wearout_indicator":{aggregationMethod:"avg",info:"Media Wearout Indicator.",en:{instance:{one:"system",other:"systems"}}},"smartd_log.nand_writes_1gib":{info:"NAND Writes.",en:{instance:{one:"system",other:"systems"}}},"solr.search_requests":{info:"Search Requests.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_errors":{info:"Search Errors.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_errors_by_type":{info:"Search Errors By Type.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_processing_time":{aggregationMethod:"avg",info:"Search Requests Processing Time.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_timings":{info:"Search Requests Timings.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.search_requests_processing_time_percentile":{aggregationMethod:"avg",info:"Search Requests Processing Time Percentile.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests":{info:"Update Requests.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_errors":{info:"Update Errors.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_errors_by_type":{info:"Update Errors By Type.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_processing_time":{aggregationMethod:"avg",info:"Update Requests Processing Time.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_timings":{info:"Update Requests Timings.",en:{instance:{one:"solr server",other:"solr server"}}},"solr.update_requests_processing_time_percentile":{aggregationMethod:"avg",info:"Update Requests Processing Time Percentile.",en:{instance:{one:"solr server",other:"solr server"}}},"spigotmc.mem":{info:"Minecraft Memory Usage.",en:{instance:{one:"spigot server",other:"spigot servers"}}},"springboot2.response_codes":{info:"Response Codes.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.thread":{info:"Threads.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap":{info:"Overview.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_eden":{info:"Eden Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_survivor":{info:"Survivor Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.heap_old":{info:"Old Space.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"springboot2.uptime":{aggregationMethod:"min",info:"The uptime of the Java virtual machine.",en:{instance:{one:"sb2 server",other:"sb2 servers"}}},"squid.clients_net":{info:"Squid Client Bandwidth.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.clients_requests":{info:"Squid Client Requests.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.servers_net":{info:"Squid Server Bandwidth.",en:{instance:{one:"squid instance",other:"squid instances"}}},"squid.servers_requests":{info:"Squid Server Requests.",en:{instance:{one:"squid instance",other:"squid instances"}}},"supervisord.summary_processes":{info:"Processes.",en:{instance:{one:"client / server",other:"clients / servers"}}},"supervisord.processes":{info:"Processes.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_exit_status":{info:"Exit status.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"process group",other:"process groups"}}},"supervisord.process_downtime":{info:"Downtime.",en:{instance:{one:"process group",other:"process groups"}}},"systemd.service_unit_state":{info:"Service Unit State.",en:{instance:{one:"system",other:"systems"}}},"tengine.bandwidth_total":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.connections_total":{info:"Connections.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_total":{info:"Requests.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_per_response_code_family_total":{info:"Requests Per Response Code Family.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_per_response_code_detailed_total":{info:"Requests Per Response Code Detailed.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_upstream_total":{info:"Number Of Requests Calling For Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.tries_upstream_total":{info:"Number Of Times Calling For Upstream.",en:{instance:{one:"web server",other:"web servers"}}},"tengine.requests_upstream_per_response_code_family_total":{info:"Upstream Requests Per Response Code Family.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.processing_time":{aggregationMethod:"avg",info:"processing time.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm":{info:"JVM Memory Pool Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_eden":{info:"Eden Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_survivor":{info:"Survivor Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"tomcat.jvm_tenured":{info:"Tenured Memory Usage.",en:{instance:{one:"web server",other:"web servers"}}},"unbound.queries":{info:"Received Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.queries_ip_ratelimited":{info:"Rate Limited Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.dnscrypt_queries":{info:"DNSCrypt Queries.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache":{info:"Cache Statistics.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_percentage":{aggregationMethod:"avg",info:"Cache Statistics Percentage.",en:{instance:{one:"server",other:"servers"}}},"unbound.prefetch":{info:"Cache Prefetches.",en:{instance:{one:"server",other:"servers"}}},"unbound.expired":{info:"Replies Served From Expired Cache.",en:{instance:{one:"server",other:"servers"}}},"unbound.zero_ttl_replies":{info:"Replies Served From Expired Cache.",en:{instance:{one:"server",other:"servers"}}},"unbound.recursive_replies":{info:"Replies That Needed Recursive Processing.",en:{instance:{one:"server",other:"servers"}}},"unbound.recursion_time":{aggregationMethod:"avg",info:"Time Spent On Recursive Processing.",en:{instance:{one:"server",other:"servers"}}},"unbound.request_list_usage":{info:"Request List Usage.",en:{instance:{one:"server",other:"servers"}}},"unbound.current_request_list_usage":{info:"Current Request List Usage.",en:{instance:{one:"server",other:"servers"}}},"unbound.request_list_jostle_list":{info:"Request List Jostle List Events.",en:{instance:{one:"server",other:"servers"}}},"unbound.tcpusage":{info:"TCP Handler Buffers.",en:{instance:{one:"server",other:"servers"}}},"unbound.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_memory":{info:"Cache Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.mod_memory":{info:"Module Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.mem_streamwait":{info:"TCP and TLS Stream Waif Buffer Memory.",en:{instance:{one:"server",other:"servers"}}},"unbound.cache_count":{info:"Cache Items Count.",en:{instance:{one:"server",other:"servers"}}},"unbound.type_queries":{info:"Queries By Type.",en:{instance:{one:"server",other:"servers"}}},"unbound.class_queries":{info:"Queries By Class.",en:{instance:{one:"server",other:"servers"}}},"unbound.opcode_queries":{info:"Queries By OpCode.",en:{instance:{one:"server",other:"servers"}}},"unbound.flag_queries":{info:"Queries By Flag.",en:{instance:{one:"server",other:"servers"}}},"unbound.rcode_answers":{info:"Replies By RCode.",en:{instance:{one:"server",other:"servers"}}},"unbound.thread_queries":{info:"Thread Received Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_queries_ip_ratelimited":{info:"Thread Rate Limited Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_dnscrypt_queries":{info:"Thread DNSCrypt Queries.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_cache":{info:"Cache Statistics.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_cache_percentage":{aggregationMethod:"avg",info:"Cache Statistics Percentage.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_prefetch":{info:"Cache Prefetches.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_expired":{info:"Replies Served From Expired Cache.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_zero_ttl_replies":{info:"Replies Served From Expired Cache.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_recursive_replies":{info:"Replies That Needed Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_recursion_time":{aggregationMethod:"avg",info:"Time Spent On Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_request_list_usage":{info:"Time Spent On Recursive Processing.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_current_request_list_usage":{info:"Current Request List Usage.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_request_list_jostle_list":{info:"Request List Jostle List Events.",en:{instance:{one:"thread",other:"threads"}}},"unbound.thread_tcpusage":{info:"TCP Handler Buffers.",en:{instance:{one:"thread",other:"threads"}}},"uwsgi.requests":{info:"Requests.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.tx":{info:"Transmitted data.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.avg_rt":{info:"Average request time.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.memory_rss":{info:"RSS (Resident Set Size).",en:{instance:{one:"server",other:"servers"}}},"uwsgi.memory_vsz":{info:"VSZ (Virtual Memory Size).",en:{instance:{one:"server",other:"servers"}}},"uwsgi.exceptions":{info:"Exceptions.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.harakiris":{info:"Harakiris.",en:{instance:{one:"server",other:"servers"}}},"uwsgi.respawns":{info:"Respawns.",en:{instance:{one:"server",other:"servers"}}},"varnish.session_connection":{info:"Connections Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.client_requests":{info:"Client Requests.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.all_time_hit_rate":{aggregationMethod:"avg",info:"All History Hit Rate Ratio.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.current_poll_hit_rate":{aggregationMethod:"avg",info:"Current Poll Hit Rate Ratio.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.cached_objects_expired":{info:"Expired Objects.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.cached_objects_nuked":{info:"Least Recently Used Nuked Objects.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_total":{info:"Number Of Threads In All Pools.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_statistics":{info:"Threads Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.threads_queue_len":{info:"Current Queue Length.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend_connections":{info:"Backend Connections Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend_requests":{info:"Requests To The Backend.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.esi_statistics":{info:"ESI Statistics.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.memory_usage":{info:"Memory Usage.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"accelerator",other:"accelerators"}}},"varnish.backend":{info:"Backend {backend_name}.",en:{instance:{one:"backend",other:"backends"}}},"varnish.storage_usage":{info:"Storage {storage_name} Usage.",en:{instance:{one:"storage",other:"storages"}}},"varnish.storage_alloc_objs":{info:"Storage {storage_name} Allocated Objects.",en:{instance:{one:"storage",other:"storages"}}},"vernemq.socket_operations":{info:"Socket Open and Close Events.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.client_keepalive_expired":{info:"Closed Sockets due to Keepalive Time Expired.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.socket_close_timeout":{info:"Closed Sockets due to no CONNECT Frame On Time.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.socket_errors":{info:"Socket Errors.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_processes_operations":{info:"Queue Processes Setup and Teardown Events.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_process_init_from_storage":{info:"Queue Processes Initialized from Offline Storage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.queue_undelivered_messages":{info:"Undelivered PUBLISH Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_subscriptions":{info:"Subscriptions in the Routing Table.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_matched_subscriptions":{info:"Matched Subscriptions.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.router_memory":{info:"Routing Table Memory Usage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_utilization_scheduler":{aggregationMethod:"avg",info:"Scheduler Utilization.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_processes":{info:"Erlang Processes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_reductions":{info:"Reductions.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_context_switches":{info:"Context Switches.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_io":{info:"Received and Sent Traffic through Ports.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_run_queue":{info:"Processes that are Ready to Run on All Run-Queues.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_gc_count":{info:"GC Count.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_gc_words_reclaimed":{info:"GC Words Reclaimed.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.system_allocated_memory":{info:"Memory Allocated by the Erlang Processes and by the Emulator.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.bandwidth":{info:"Bandwidth.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.retain_messages":{info:"Stored Retained Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.retain_memory":{info:"Stored Retained Messages Memory Usage.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.cluster_bandwidth":{info:"Communication with Other Cluster Nodes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.cluster_dropped":{info:"Traffic Dropped During Communication with Other Cluster Nodes.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.netsplit_unresolved":{info:"Unresolved Netsplits.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.netsplits":{info:"Netsplits.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth":{info:"v5 AUTH.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth_received_reason":{info:"v5 AUTH Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_auth_sent_reason":{info:"v5 AUTH Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_connect":{info:"v3/v5 CONNECT and CONNACK.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_connack_sent_reason":{info:"v3/v5 CONNACK Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect":{info:"v3/v5 DISCONNECT.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect_received_reason":{info:"v5 DISCONNECT Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_disconnect_sent_reason":{info:"v5 DISCONNECT Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe":{info:"v3/v5 SUBSCRIBE and SUBACK.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe_error":{info:"v3/v5 Failed SUBSCRIBE Operations due to a Netsplit.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_subscribe_auth_error":{info:"v3/v5 Unauthorized SUBSCRIBE Attempts.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_received_reason":{info:"v5 PUBACK QoS 1 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_sent_reason":{info:"v5 PUBACK QoS 1 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_puback_invalid_error":{info:"v3/v5 PUBACK QoS 1 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec":{info:"v3/v5 PUBREC QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_received_reason":{info:"v5 PUBREC QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_sent_reason":{info:"v5 PUBREC QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrec_invalid_error":{info:"v3 PUBREC QoS 2 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel":{info:"v3/v5 PUBREL QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel_received_reason":{info:"v5 PUBREL QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubrel_sent_reason":{info:"v5 PUBREL QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcom":{info:"v3/v5 PUBCOMP QoS 2.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_received_reason":{info:"v5 PUBCOMP QoS 2 Received by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_sent_reason":{info:"v5 PUBCOMP QoS 2 Sent by Reason.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.mqtt_pubcomp_invalid_error":{info:"v3/v5 PUBCOMP QoS 2 Received Unexpected Messages.",en:{instance:{one:"broker",other:"brokers"}}},"vernemq.node_uptime":{aggregationMethod:"min",info:"Node Uptime.",en:{instance:{one:"broker",other:"brokers"}}},"vsphere.vm_cpu_usage_total":{aggregationMethod:"avg",info:"Cpu Usage Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_net_bandwidth_total":{info:"Network Bandwidth Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_net_packets_total":{info:"Network Packets Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_net_drops_total":{info:"Network Drops Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_disk_usage_total":{info:"Disk Usage Total.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_disk_max_latency":{aggregationMethod:"avg",info:"Disk Max Latency.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_overall_status":{info:"Overall Alert Status.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.vm_system_uptime":{aggregationMethod:"min",info:"System Uptime.",en:{instance:{one:"VM",other:"VMs"}}},"vsphere.host_cpu_usage_total":{aggregationMethod:"avg",info:"Cpu Usage Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_bandwidth_total":{info:"Network Bandwidth Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_packets_total":{info:"Network Packets Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_drops_total":{info:"Network Drops Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_net_errors_total":{info:"Network Errors Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_disk_usage_total":{info:"Disk Usage Total.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_disk_max_latency":{aggregationMethod:"avg",info:"Disk Max Latency.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_overall_status":{info:"Overall Alert Status.",en:{instance:{one:"host",other:"hosts"}}},"vsphere.host_system_uptime":{aggregationMethod:"min",info:"System Uptime.",en:{instance:{one:"host",other:"hosts"}}},"web_log.requests":{mainheads:[{"group_by[0]":["selected"],chartLibrary:"easypiechart",title:"Total Requests",colors:s.default[12],layout:{x:0,y:0,w:3,h:5}}],info:"Total Requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.excluded_requests":{info:"Excluded Requests.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_responses":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Responses by Status Code Class",layout:{x:9,y:0,w:3,h:5}}],info:"Responses By Status Code Class.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_1xx_responses":{info:"Informational Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_2xx_responses":{info:"Successful Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_3xx_responses":{info:"Redirects Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_4xx_responses":{info:"Client Errors Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.status_code_class_5xx_responses":{info:"Server Errors Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.bandwidth":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.requests_processing_time_histogram":{info:"Requests Processing Time Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.upstream_response_time":{aggregationMethod:"avg",info:"Upstream Response Time.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.upstream_responses_time_histogram":{info:"Upstream Responses Time Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.current_poll_uniq_clients":{info:"Current Poll Unique Clients.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.vhost_requests":{info:"Requests By Vhost.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.port_requests":{info:"Requests By Port.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.scheme_requests":{info:"Requests By Scheme.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.http_method_requests":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Total Requests by HTTP Method",layout:{x:6,y:0,w:3,h:5}}],info:"Requests By HTTP Method.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.http_version_requests":{info:"Requests By HTTP Version.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ip_proto_requests":{info:"Requests By IP Protocol.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ssl_proto_requests":{info:"Requests By SSL Connection Protocol.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.ssl_cipher_suite_requests":{info:"Requests By SSL Connection Cipher Suite.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_requests":{info:"URL Field Requests By Pattern.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_field_pattern_requests":{info:"Custom Field Requests By Pattern.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_time_field_summary":{info:"Custom Time Field Summary.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.custom_time_field_histogram":{info:"Custom Time Field Histogram.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_status_code_responses":{info:"Responses By Status Code.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_http_method_requests":{info:"Requests By HTTP Method.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_bandwidth":{info:"Bandwidth.",en:{instance:{one:"web server",other:"web servers"}}},"web_log.url_pattern_request_processing_time":{aggregationMethod:"avg",info:"Request Processing Time.",en:{instance:{one:"web server",other:"web servers"}}},"whoisquery.time_until_expiration":{info:"Time Until Domain Expiration.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_utilization":{aggregationMethod:"avg",info:"Core CPU Utilization.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_interrupts":{info:"Received and Serviced Hardware Interrupts.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_dpcs":{info:"Received and Serviced Deferred Procedure Calls (DPC).",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.cpu_core_cstate":{aggregationMethod:"avg",info:"Core Time Spent in Low-Power Idle State.",en:{instance:{one:"cpu core",other:"cpu cores"}}},"windows.memory_page_faults":{info:"Memory Page Faults.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_utilization":{aggregationMethod:"avg",info:"Swap Utilization.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_operations":{info:"Swap Operations.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_swap_pages":{info:"Swap Pages.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_cached":{info:"Cached.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_cache_faults":{info:"Cache Faults.",en:{instance:{one:"system",other:"systems"}}},"windows.memory_system_pool":{info:"System Memory Pool.",en:{instance:{one:"system",other:"systems"}}},"windows.logical_disk_utilization":{aggregationMethod:"avg",info:"Space usage.",en:{instance:{one:"disk",other:"disks"}}},"windows.logical_disk_operations":{info:"Operations.",en:{instance:{one:"disk",other:"disks"}}},"windows.logical_disk_latency":{aggregationMethod:"avg",info:"Average Read/Write Latency.",en:{instance:{one:"disk",other:"disks"}}},"windows.net_nic_packets":{info:"Packets.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.net_nic_errors":{info:"Errors.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.net_nic_discarded":{info:"Discards.",en:{instance:{one:"interface",other:"interfaces"}}},"windows.os_processes":{info:"Processes.",en:{instance:{one:"system",other:"systems"}}},"windows.os_users":{info:"Number of Users.",en:{instance:{one:"system",other:"systems"}}},"windows.os_visible_memory_usage":{info:"Visible Memory Usage.",en:{instance:{one:"system",other:"systems"}}},"windows.os_paging_files_usage":{info:"Paging Files Usage.",en:{instance:{one:"system",other:"systems"}}},"windows.system_threads":{info:"Threads.",en:{instance:{one:"system",other:"systems"}}},"windows.system_uptime":{aggregationMethod:"min",info:"Uptime.",en:{instance:{one:"system",other:"systems"}}},"windows.logon_type_sessions":{info:"Active User Logon Sessions By Type.",en:{instance:{one:"system",other:"systems"}}},"windows.thermalzone_temperature":{aggregationMethod:"avg",info:"Thermal zone temperature.",en:{instance:{one:"zone",other:"zones"}}},"windows.processes_page_file_bytes":{info:"Bytes used in page file(s).",en:{instance:{one:"system",other:"systems"}}},"windows.service_state":{info:"Service state.",en:{instance:{one:"service",other:"services"}}},"windows.service_status":{info:"Service status.",en:{instance:{one:"service",other:"services"}}},"iis.website_users_count":{info:"Website users with pending requests.",en:{instance:{one:"website",other:"websites"}}},"iis.website_connection_attempts_rate":{info:"Website connections attempts.",en:{instance:{one:"website",other:"websites"}}},"iis.website_isapi_extension_requests_rate":{info:"Website extensions request.",en:{instance:{one:"website",other:"websites"}}},"iis.website_ftp_file_transfer_rate":{info:"Website FTP file transfer rate.",en:{instance:{one:"website",other:"websites"}}},"iis.website_logon_attempts_rate":{info:"Website logon attempts.",en:{instance:{one:"website",other:"websites"}}},"mssql.instance_bufman_iops":{info:"Number of pages input and output.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_blocked_processes":{info:"Blocked processes.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_locks_lock_wait":{info:"Lock requests that required the caller to wait.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_locks_deadlocks":{info:"Lock requests that resulted in deadlock.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_connection_memory_bytes":{info:"Amount of dynamic memory to maintain connections.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_pending_memory_grants":{info:"Process waiting for memory grant.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_memmgr_server_memory":{info:"Memory committed.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.instance_sqlstats_sql_recompilations":{info:"SQL re-compilations.",en:{instance:{one:"mssql server",other:"mssql servers"}}},"mssql.database_active_transactions":{info:"Active transactions per database.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_backup_restore_operations":{info:"Backup IO per database.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_log_flushed":{info:"Log flushed.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_log_flushes":{info:"Log flushes.",en:{instance:{one:"database",other:"databases"}}},"mssql.database_write_transactions":{info:"Write transactions.",en:{instance:{one:"database",other:"databases"}}},"ad.database_operations":{info:"AD database operations.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.directory_operations":{info:"AD directory operations.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.name_cache_lookups":{info:"Name cache lookups.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.name_cache_hits":{info:"Name cache hits.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.atq_average_request_latency":{aggregationMethod:"avg",info:"Average request processing time.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.atq_outstanding_requests":{info:"Outstanding requests.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.dra_replication_sync_objects_remaining":{info:"DRA replication full sync objects remaining.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.dra_replication_properties_filtered":{info:"DRA replication properties filtered.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.ds_threads":{info:"Directory Service threads.",en:{instance:{one:"ad instance",other:"ad instances"}}},"ad.ldap_last_bind_time":{aggregationMethod:"min",info:"LDAP last successful bind time.",en:{instance:{one:"ad instance",other:"ad instances"}}},"adcs.cert_template_requests":{info:"Certificate requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_failed_requests":{info:"Certificate failed requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_issued_requests":{info:"Certificate issued requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_pending_requests":{info:"Certificate pending requests processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_processing_time":{aggregationMethod:"avg",info:"Certificate last request processing time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_retrievals":{info:"Total of certificate retrievals.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_retrieval_processing_time":{aggregationMethod:"avg",info:"Certificate last retrieval processing time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_cryptographic_signing_time":{aggregationMethod:"avg",info:"Certificate last signing operation request time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_request_policy_module_processing":{info:"Certificate last policy module processing request time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_challenge_responses":{info:"Certificate challenge responses.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_challenge_response_processing_time":{aggregationMethod:"avg",info:"Certificate last challenge response time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_signed_certificate_timestamp_lists":{info:"Certificate Signed Certificate Timestamp Lists processed.",en:{instance:{one:"cert template",other:"cert templates"}}},"adcs.cert_template_signed_certificate_timestamp_list_processing_time":{aggregationMethod:"avg",info:"Certificate last Signed Certificate Timestamp List process time.",en:{instance:{one:"cert template",other:"cert templates"}}},"adfs.ad_login_connection_failures":{info:"Connection failures.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.certificate_authentications":{info:"User Certificate authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_artifact_failures":{info:"Connection failures to the artifact database.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_artifact_query_time_seconds":{aggregationMethod:"avg",info:"Time taken for an artifact database query.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_config_failures":{info:"Connection failures to the configuration database.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.db_config_query_time_seconds":{aggregationMethod:"avg",info:"Time taken for a configuration database query.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.device_authentications":{info:"Device authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.external_authentications":{info:"Authentications from external MFA providers.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.federated_authentications":{info:"Authentications from Federated Sources.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.federation_metadata_requests":{info:"Federation Metadata requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_authorization_requests":{info:"Incoming requests to the OAuth Authorization endpoint.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_authentications":{info:"OAuth client authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_credentials_requests":{info:"OAuth client credentials requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_privkey_jwt_authentications":{info:"OAuth client private key JWT authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_secret_basic_authentications":{info:"OAuth client secret basic authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_secret_post_authentications":{info:"OAuth client secret post authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_client_windows_authentications":{info:"OAuth client windows integrated authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_logon_certificate_requests":{info:"OAuth logon certificate requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_password_grant_requests":{info:"OAuth password grant requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.oauth_token_requests_success":{info:"Successful RP token requests over OAuth protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.passive_requests":{info:"Passive requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.passport_authentications":{info:"Microsoft Passport SSO authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.password_change_requests":{info:"Password change requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.samlp_token_requests_success":{info:"Successful RP token requests over SAML-P protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.sso_authentications":{info:"SSO authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.token_requests":{info:"Token access requests.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.userpassword_authentications":{info:"AD U/P authentications.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.windows_integrated_authentications":{info:"Windows integrated authentications using Kerberos or NTLM.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.wsfed_token_requests_success":{info:"Successful RP token requests over WS-Fed protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"adfs.wstrust_token_requests_success":{info:"Successful RP token requests over WS-Trust protocol.",en:{instance:{one:"adfs instance",other:"adfs instances"}}},"netframework.clrexception_throw_to_catch_depth":{info:"Traversed stack frames.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrinterop_interop_marshallings":{info:"Arguments and return values marshallings.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrjit_il_bytes":{info:"Compiled Microsoft intermediate language (MSIL) bytes.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_appdomains_loaded":{info:"Loaded application domains.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_appdomains_unloaded":{info:"Unloaded application domains.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_classes_loaded":{info:"Loaded classes in all assemblies.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrloading_class_load_failures":{info:"Class load failures.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_queue_length":{info:"Threads waited to acquire a managed lock.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_current_logical_threads":{info:"Logical threads.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_current_physical_threads":{info:"Physical threads.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrlocksandthreads_contentions":{info:"Fails to acquire a managed lock.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_allocated_bytes":{info:"Memory allocated on the garbage collection heap.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_finalization_survivors":{info:"Objects that survived garbage-collection.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_collections":{info:"Garbage collections.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrmemory_number_pinned_objects":{info:"Pinned objects encountered.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_channels":{info:"Registered channels.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_bound_classes_loaded":{info:"Loaded context-bound classes.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_bound_objects":{info:"Allocated context-bound objects.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_context_proxies":{info:"Remoting proxy objects.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_contexts":{info:"Total of remoting contexts.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrremoting_remote_calls":{info:"Remote Procedure Calls (RPC) invoked.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_link_time_checks":{info:"Link-time code access security checks.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_checks_time":{aggregationMethod:"avg",info:"Time spent performing runtime code access security checks.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_stack_walk_depth":{info:"Depth of the stack.",en:{instance:{one:".net process",other:".net processes"}}},"netframework.clrsecurity_runtime_checks":{info:"Runtime code access security checks performed.",en:{instance:{one:".net process",other:".net processes"}}},"exchange.activesync_ping_cmds_pending":{info:"Ping commands pending in queue.",en:{instance:{one:"host",other:"hosts"}}},"exchange.activesync_requests":{info:"HTTP requests received from ASP.NET.",en:{instance:{one:"host",other:"hosts"}}},"exchange.activesync_sync_cmds":{info:"Sync commands processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.autodiscover_requests":{info:"Autodiscover service requests processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.avail_service_requests":{info:"Requests serviced.",en:{instance:{one:"host",other:"hosts"}}},"exchange.owa_current_unique_users":{mainheads:[{chartLibrary:"easypiechart",title:"OWA Unique Users",colors:s.default[12],layout:{x:0,y:0,w:2,h:5}}],info:"Unique users currently logged on to Outlook Web App.",en:{instance:{one:"host",other:"hosts"}}},"exchange.owa_requests_total":{mainheads:[{chartLibrary:"easypiechart",title:"OWA Total Requests",layout:{x:3,y:0,w:2,h:5}}],info:"Requests handled by Outlook Web App.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_active_user_count":{info:"Active unique users in the last 2 minutes.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_avg_latency":{aggregationMethod:"avg",mainheads:[{"aggregation[0]":"avg",chartLibrary:"easypiechart",title:"Average Latency",colors:s.default[1],layout:{x:12,y:0,w:2,h:5}}],info:"Average latency.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_connection_count":{mainheads:[{chartLibrary:"easypiechart",title:"Total Client Connections",colors:s.default[2],layout:{x:15,y:0,w:2,h:5}}],info:"Client connections.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_operations":{info:"RPC operations.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_requests":{info:"Clients requests currently being processed.",en:{instance:{one:"host",other:"hosts"}}},"exchange.rpc_user_count":{info:"RPC users.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_active_mail_box_delivery":{mainheads:[{chartLibrary:"bars",dimensionsSort:"valueDesc",title:"Active Mailbox Delivery Queue",layout:{x:9,y:0,w:4,h:5}}],info:"Active Mailbox Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_external_active_remote_delivery":{info:"External Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_external_largest_delivery":{info:"External Largest Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_internal_active_remote_delivery":{info:"Internal Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_internal_largest_delivery":{info:"Internal Largest Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_retry_mailbox_delivery":{info:"Internal Active Remote Delivery Queue length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.transport_queues_poison":{info:"Poison Queue Length.",en:{instance:{one:"host",other:"hosts"}}},"exchange.workload_active_tasks":{info:"Workload active tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_completed_tasks":{info:"Workload completed tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_queued_tasks":{info:"Workload queued tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_yielded_tasks":{info:"Workload yielded tasks.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.workload_activity_status":{info:"Workload activity status.",en:{instance:{one:"workload",other:"workloads"}}},"exchange.ldap_long_running_ops_per_sec":{info:"Long Running LDAP operations.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_read_time":{aggregationMethod:"avg",info:"Time to send an LDAP read request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_search_time":{aggregationMethod:"avg",info:"Time to send an LDAP search request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_write_time":{aggregationMethod:"avg",info:"Time to send an LDAP search request and receive a response.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.ldap_timeout_errors":{info:"LDAP timeout errors.",en:{instance:{one:"ldap process",other:"ldap processes"}}},"exchange.http_proxy_avg_auth_latency":{aggregationMethod:"avg",info:"Average time spent authenticating CAS.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_avg_cas_processing_latency_sec":{aggregationMethod:"avg",info:"Average time spent authenticating CAS.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_mailbox_proxy_failure_rate":{aggregationMethod:"avg",info:"Percentage of failures between this CAS and MBX servers.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_mailbox_server_locator_avg_latency_sec":{aggregationMethod:"avg",info:"Average latency of MailboxServerLocator web service calls.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_outstanding_proxy_requests":{info:"Concurrent outstanding proxy requests.",en:{instance:{one:"proxy",other:"proxies"}}},"exchange.http_proxy_requests":{info:"Number of proxy requests processed each second.",en:{instance:{one:"proxy",other:"proxies"}}},"wireguard.device_network_io":{info:"Device traffic.",en:{instance:{one:"device",other:"devices"}}},"wireguard.device_peers":{info:"Device peers.",en:{instance:{one:"device",other:"devices"}}},"wireguard.peer_network_io":{info:"Peer traffic.",en:{instance:{one:"peer",other:"peers"}}},"wireguard.peer_latest_handshake_ago":{info:"Peer time elapsed since the latest handshake.",en:{instance:{one:"peer",other:"peers"}}},"x509check.time_until_expiration":{info:"Time Until Certificate Expiration.",en:{instance:{one:"certificate",other:"certificates"}}},"x509check.revocation_status":{info:"Revocation Status.",en:{instance:{one:"certificate",other:"certificates"}}},"xenstat.mem":{info:"Memory Usage.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.domains":{info:"Number of Domains.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.cpus":{info:"Number of CPUs.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xenstat.cpu_freq":{info:"CPU Frequency.",en:{instance:{one:"xenstat instance",other:"xenstat instances"}}},"xendomain.states":{info:"Domain States.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.cpu":{aggregationMethod:"avg",info:"CPU Usage (100% = 1 core).",en:{instance:{one:"domain",other:"domains"}}},"xendomain.mem":{info:"Memory Reservation.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.vcpu":{aggregationMethod:"avg",info:"CPU Usage per VCPU.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.oo_req_vbd":{info:"VBD{%u} Out Of Requests.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.requests_vbd":{info:"VBD{%u} Requests.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.sectors_vbd":{info:"VBD{%u} Read/Written Sectors.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.bytes_network":{info:"Network{%u} Received/Sent Bytes.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.packets_network":{info:"Network{%u} Received/Sent Packets.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.errors_network":{info:"Network{%u} Receive/Transmit Errors.",en:{instance:{one:"domain",other:"domains"}}},"xendomain.drops_network":{info:"Network{%u} Receive/Transmit Drops.",en:{instance:{one:"domain",other:"domains"}}},"zookeeper.requests":{info:"Outstanding Requests.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.requests_latency":{aggregationMethod:"avg",info:"Requests Latency.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.connections":{info:"Alive Connections.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.packets":{info:"Packets.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.file_descriptor":{info:"Open File Descriptors.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.nodes":{info:"Number of Nodes.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.watches":{info:"Number of Watches.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zookeeper.approximate_data_size":{info:"Approximate Data Tree Size.",en:{instance:{one:"zk instance",other:"zk instances"}}},"zscores.z":{info:"Z Score.",en:{instance:{one:"chart",other:"charts"}}},"zscores.3stddev":{info:"Z Score >3.",en:{instance:{one:"chart",other:"charts"}}}}},71929:function(e,t,n){var s=n(87462),r=n(45987),a=(n(23157),n(67294)),o=n(57509),i=n(45335),c=["children","onClick"];t.Z=function(e){var t=e.children,n=e.onClick,l=(0,r.Z)(e,c),d=(0,i.sm)(),h=(0,a.useCallback)((function(e){var t=e.target.hash,s=void 0===t?"":t;s.startsWith("#menu")&&(e.preventDefault(),d.goToLink(s.substr(1))),n&&n(e)}),[d]);return"string"===typeof t?a.createElement(o.TextSmall,(0,s.Z)({color:"sectionDescription",dangerouslySetInnerHTML:{__html:t},onClick:h},l)):t||null}},89692:function(e,t,n){n.d(t,{G_:function(){return X},ZP:function(){return ce},lV:function(){return oe},FO:function(){return te},oS:function(){return ne},iK:function(){return $},JK:function(){return re},bF:function(){return se}});var s=n(4942),r=n(21433),a=(n(74916),n(15306),n(41539),n(39714),n(47042),n(92222),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(39612)),o=n(7592),i=n(1673),c=n(40351),l=n(51257),d=n(53045),h=n(60989),u=n(49356),m=n(44814),p=n(17726),f=n(47810),g=n(9221),b=n(96914),y=n(67992),v=n(57026),_=n(7452),w=n(62160),k=n(8792),T=n(59986),x=n(85241),S=n(81511),C=n(491),P=n(53728),M=n(20446),q=n(32660),I=n(27879),E=n(52571),D=n(34327),L=n(42137),N=n(80955),O=n(2866),R=n(12296),A=n(35117),F=n(42775),U=n(77007),B=n(79186),Z=n(46357),j=n(13914),z=n(91435),V=n(3163),H=n(73793),Q=n(91871),G=n(66062),W={system:{title:"System Overview",icon:n(12690).xV,info:"Overview of the key system metrics."},services:{title:"systemd Services",icon:f.Kb,info:"Resources utilization of <b>systemd services</b>. Netdata monitors all systemd services via <a href='https://en.wikipedia.org/wiki/Cgroups' target='_blank'>cgroups</a> (the resources accounting used by containers). <br /><b>Tip:</b> <br />&#x2022 Default view of cgroup charts show <b>aggregate</b> information from all your VMs and containers <br />&#x2022 For instance level view of cgroups change the Group by to <b>instance</b> <br /><a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'><b>&#x2022; Checkout our docs for more details</b></a>"},ap:{title:"Access Points",icon:Q.$A,info:"Performance metrics for the access points (i.e. wireless interfaces in AP mode) found on the system."},tc:{title:"Quality of Service",icon:G.g4,info:'Netdata collects and visualizes <b>tc</b> class utilization using its <a href="https://github.com/netdata/netdata/blob/master/collectors/tc.plugin/tc-qos-helper.sh.in" target="_blank">tc-helper plugin</a>. If you also use <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a> for setting up QoS, netdata automatically collects interface and class names. If your QoS configuration includes overheads calculation, the values shown here will include these overheads (the total bandwidth for the same interface as reported in the Network Interfaces section, will be lower than the total bandwidth reported here). QoS data collection may have a slight time difference compared to the interface (QoS data collection uses a BASH script, so a shift in data collection of a few milliseconds should be justified).'},net:{title:"Network Interfaces",icon:F.Hw,info:'<p>Performance <a href="https://www.kernel.org/doc/html/latest/networking/statistics.html" target="_blank">metrics for network interfaces</a>.</p><p>Netdata retrieves this data reading the <b>/proc/net/dev</b> file and <b>/sys/class/net/</b> directory.</p>'},Infiniband:{title:"Infiniband ports",icon:F.Hw,info:'<p>Performance and exception statistics for <a href="https://en.wikipedia.org/wiki/InfiniBand" target="_blank">Infiniband</a> ports. The individual port and hardware counter descriptions can be found in the <a href="https://community.mellanox.com/s/article/understanding-mlx5-linux-counters-and-status-parameters" target="_blank">Mellanox knowledge base</a>.'},wireless:{title:"Wireless Interfaces",icon:Q.$A,info:"Performance metrics for wireless interfaces."},ip:{title:"Networking Stack",icon:H.uM,info:function(e){return"linux"===e.os?"Metrics for the networking stack of the system. These metrics are collected from <b>/proc/net/netstat</b> or attaching <b>kprobes</b> to kernel functions, apply to both IPv4 and IPv6 traffic and are related to operation of the kernel networking stack.":"Metrics for the networking stack of the system."}},ipv4:{title:"IPv4 Networking",icon:H.uM,info:'Metrics for the IPv4 stack of the system. <a href="https://en.wikipedia.org/wiki/IPv4" target="_blank">Internet Protocol version 4 (IPv4)</a> is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet. IPv4 is a connectionless protocol for use on packet-switched networks. It operates on a best effort delivery model, in that it does not guarantee delivery, nor does it assure proper sequencing or avoidance of duplicate delivery. These aspects, including data integrity, are addressed by an upper layer transport protocol, such as the Transmission Control Protocol (TCP).'},ipv6:{title:"IPv6 Networking",icon:H.uM,info:'Metrics for the IPv6 stack of the system. <a href="https://en.wikipedia.org/wiki/IPv6" target="_blank">Internet Protocol version 6 (IPv6)</a> is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion. IPv6 is intended to replace IPv4.'},sctp:{title:"SCTP Networking",icon:H.uM,info:'<p><a href="https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol" target="_blank">Stream Control Transmission Protocol (SCTP)</a> is a computer network protocol which operates at the transport layer and serves a role similar to the popular protocols TCP and UDP. SCTP provides some of the features of both UDP and TCP: it is message-oriented like UDP and ensures reliable, in-sequence transport of messages with congestion control like TCP. It differs from those protocols by providing multi-homing and redundant paths to increase resilience and reliability.</p><p>Netdata collects SCTP metrics reading the <b>/proc/net/sctp/snmp</b> file.</p>'},ipvs:{title:"IP Virtual Server",icon:"serviceIPVS",info:'<p><a href="http://www.linuxvirtualserver.org/software/ipvs.html" target="_blank">IPVS (IP Virtual Server)</a> implements transport-layer load balancing inside the Linux kernel, so called Layer-4 switching. IPVS running on a host acts as a load balancer at the front of a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.</p><p>Netdata collects summary statistics, reading <b>/proc/net/ip_vs_stats</b>. To display the statistics information of services and their servers, run <b>ipvsadm -Ln --stats</b> or <b>ipvsadm -Ln --rate</b> for the rate statistics. For details, see <a href="https://linux.die.net/man/8/ipvsadm" target="_blank">ipvsadm(8)</a>.</p>'},netfilter:{title:"Firewall (netfilter)",icon:V.U7,info:"Performance metrics of the netfilter components."},ipfw:{title:"Firewall (ipfw)",icon:V.U7,info:"Counters and memory usage for the ipfw rules."},cpu:{title:"CPUs",icon:z.BD,info:'Detailed information for each CPU of the system. A summary of the system for all CPUs can be found at the <a href="#menu_system">System Overview</a> section.'},mem:{title:"Memory",icon:E.zv,info:"Detailed information about the memory management of the system."},disk:{title:"Disks",icon:l.vc,info:"Charts with performance information for all the system disks. Special care has been given to present disk performance metrics in a way compatible with <b>iostat -x</b>. netdata by default prevents rendering performance charts for individual partitions and unmounted virtual disks. Disabled charts can still be enabled by configuring the relative settings in the netdata configuration file."},mount:{title:"Mount Points",icon:l.vc,info:""},mdstat:{title:"MD arrays",icon:l.vc,info:'<p>RAID devices are virtual devices created from two or more real block devices. <a href="https://man7.org/linux/man-pages/man4/md.4.html" target="_blank">Linux Software RAID</a> devices are implemented through the md (Multiple Devices) device driver.</p><p>Netdata monitors the current status of MD arrays reading <a href="https://raid.wiki.kernel.org/index.php/Mdstat" target="_blank">/proc/mdstat</a> and <b>/sys/block/%s/md/mismatch_cnt</b> files.</p>'},sensors:{title:"Sensors",icon:j.XE,info:"Readings of the configured system sensors."},ipmi:{title:"IPMI",icon:j.XE,info:"The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system's CPU, firmware (BIOS or UEFI) and operating system."},amdgpu:{title:"AMD GPUs",icon:E.zv,info:"Performance and usage metrics for each AMD GPU in the system."},samba:{title:"Samba",icon:k.cC,info:"Performance metrics of the Samba file share operations of this system. Samba is a implementation of Windows services, including Windows SMB protocol file shares."},nfsd:{title:"NFS Server",icon:k.cC,info:'Performance metrics of the Network File Server. <a href="https://en.wikipedia.org/wiki/Network_File_System" target="_blank">NFS</a> is a distributed file system protocol, allowing a user on a client computer to access files over a network, much like local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system.'},nfs:{title:"NFS Client",icon:k.cC,info:'Performance metrics of the <a href="https://en.wikipedia.org/wiki/Network_File_System" target="_blank">NFS</a> operations of this system, acting as an NFS client.'},zfs:{title:"ZFS Cache",icon:k.cC,info:'Performance metrics of the <a href="https://en.wikipedia.org/wiki/ZFS#Caching_mechanisms" target="_blank">ZFS ARC and L2ARC</a>. The following charts visualize all metrics reported by <a href="https://github.com/openzfs/zfs/blob/master/cmd/arcstat/arcstat.in" target="_blank">arcstat.py</a> and <a href="https://github.com/openzfs/zfs/blob/master/cmd/arc_summary/arc_summary3" target="_blank">arc_summary.py</a>.'},zfspool:{title:"ZFS pools",icon:"serviceDatabase",info:"State of ZFS pools."},btrfs:{title:"BTRFS filesystem",icon:k.cC,info:"Disk space metrics for the BTRFS filesystem."},apps:{title:"Applications",icon:"applicationsSolid",info:'Per application statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics for <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin#configuration" target="_blank">application groups</a>. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},groups:{title:"User Groups",icon:I.IL,info:'Per user group statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user group. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},users:{title:"Users",icon:Z.FV,info:'Per user statistics are collected using <a href="https://learn.netdata.cloud/docs/agent/collectors/apps.plugin" target="_blank">apps.plugin</a>. This plugin walks through all processes and aggregates statistics per user. The plugin also counts the resources of exited children. So for processes like shell scripts, the reported values include the resources used by the commands these scripts run within each timeframe.',height:1.5},netdata:{title:"Netdata Monitoring",icon:B.ko,info:"Performance metrics for the operation of netdata itself and its plugins."},aclk_test:{title:"ACLK Test Generator",info:"For internal use to perform integration testing."},example:{title:"Example Charts",info:"Example charts, demonstrating the external plugin architecture."},cgroup:{title:"",icon:"serviceContainer",info:"Netdata collects Container and VM resource utilization metrics from <a href='https://man7.org/linux/man-pages/man7/cgroups.7.html' style='color: green' target='_blank'><b>cgroups</b></a>, a Linux kernel feature that enables the organization, management, and isolation of system resources among groups of processes. The charts show the aggregated view across all instances by default, to visualize the metrics per container or VM instance, <a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'>change the Group by to <b>instance</b></a>"},cgqemu:{title:"",icon:q.To,info:"QEMU virtual machine resource utilization metrics. QEMU (short for Quick Emulator) is a free and open-source hosted hypervisor that performs hardware virtualization."},docker:{title:"Docker",icon:"serviceDockerHubPress",info:"Docker container and image metrics. Charts show aggregated view across all containers by default, to visualize the metrics per container, <a href='https://learn.netdata.cloud/docs/cloud/visualize/overview#group-by-dimension-node-or-chart' style='color: green' target='_blank'>change the Group by to <b>instance</b></a>"},dockerhub:{icon:"serviceDockerHubPress"},fping:{title:"fping",icon:U.Ss,info:"Network latency statistics, via <b>fping</b>. <b>fping</b> is a program to send ICMP echo probes to network hosts, similar to <b>ping</b>, but much better performing when pinging multiple hosts. fping versions after 3.15 can be directly used as netdata plugins."},gearman:{title:"Gearman",icon:g.A8,info:"Gearman is a job server that allows you to do work in parallel, to load balance processing, and to call functions between languages."},ioping:{title:"ioping",icon:U.Ss,info:"Disk latency statistics, via <b>ioping</b>. <b>ioping</b> is a program to read/write data probes from/to a disk."},httpcheck:{title:"Http Check",icon:"serviceHTTPCheck",info:"Web Service availability and latency monitoring using HTTP checks. This plugin is a specialized version of the port check plugin."},cassandra:{title:"Cassandra",icon:"serviceDatabase",info:"Performance metrics for <b>Cassandra</b>, the open source distributed NoSQL database management system.<br>For more information: <br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/cassandra' style='color: green' target='_blank'><b>&#x2022; Netdata Cassandra collector docs</b></a><br><a href='https://www.netdata.cloud/blog/cassandra-monitoring-part1' style='color: green' target='_blank'><b>&#x2022; Cassandra monitoring guide - Part 1</b></a> and <a href='https://www.netdata.cloud/blog/cassandra-monitoring-part2' style='color: green' target='_blank'><b> Part 2</b></a>"},memcached:{title:"memcached",icon:"serviceMemCached",info:"Performance metrics for <b>memcached</b>. Memcached is a general-purpose distributed memory caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read."},monit:{title:"monit",icon:"serviceDatabase",info:"Statuses of checks in <b>monit</b>. Monit is a utility for managing and monitoring processes, programs, files, directories and filesystems on a Unix system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations."},mysql:{title:"MySQL",icon:"serviceMySQLPress",info:"Performance metrics for <b>mysql</b>, the open-source relational database management system (RDBMS)."},nvme:{title:"NVMe",icon:l.vc,info:"NVMe devices SMART and health metrics. Additional information on metrics can be found in the <a href='https://nvmexpress.org/developers/nvme-specification/' target='_blank'>NVM Express Base Specification</a>."},ping:{title:"Ping",icon:F.Hw,info:"Measures round-trip time and packet loss by sending ping messages to network hosts."},postgres:{title:"PostgreSQL",icon:"servicePostgreSQL",info:"Performance metrics for <b>PostgreSQL</b>, the open source object-relational database management system (ORDBMS).<br>For more information:<br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/postgres' style='color: green' target='_blank'><b>&#x2022; Netdata PostgreSQL collector docs</b></a><br><a href='https://www.netdata.cloud/blog/postgresql-monitoring' style='color: green' target='_blank'><b>&#x2022; How to monitor PostgreSQL with Netdata</b></a>"},redis:{title:"Redis",icon:"serviceRedis",info:"Performance metrics for <b>Redis</b>, an in-memory data structure store, used as a distributed, in-memory key\u2013value database, cache and message broker, with optional durability.<br>For more information: <br><a href='https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/redis' style='color: green' target='_blank'><b>&#x2022; Netdata Redis collector docs</b></a><br><a href='https://www.netdata.cloud/blog/redis-monitoring' style='color: green' target='_blank'><b>&#x2022; How to monitor Redis with Netdata</b></a>"},rethinkdbs:{title:"RethinkDB",icon:"serviceRethinkDB",info:"Performance metrics for <b>rethinkdb</b>. RethinkDB is the first open-source scalable database built for realtime applications"},retroshare:{title:"RetroShare",icon:"serviceRetroShare",info:"Performance metrics for <b>RetroShare</b>. RetroShare is open source software for encrypted filesharing, serverless email, instant messaging, online chat, and BBS, based on a friend-to-friend network built on GNU Privacy Guard (GPG)."},riakkv:{title:"Riak KV",icon:"serviceDatabase",info:"Metrics for <b>Riak KV</b>, the distributed key-value store."},ipfs:{title:"IPFS",icon:"serviceIPFS",info:"Performance metrics for the InterPlanetary File System (IPFS), a content-addressable, peer-to-peer hypermedia distribution protocol."},phpfpm:{title:"PHP-FPM",icon:"servicePhpFpm",info:"Performance metrics for <b>PHP-FPM</b>, an alternative FastCGI implementation for PHP."},pihole:{title:"Pi-hole",icon:A.gP,info:'Metrics for <a href="https://pi-hole.net/" target="_blank">Pi-hole</a>, a black hole for Internet advertisements. The metrics returned by Pi-Hole API is all from the last 24 hours.'},portcheck:{title:"Port Check",icon:R.s2,info:"Service availability and latency monitoring using port checks."},postfix:{title:"postfix",icon:S.FU},dovecot:{title:"Dovecot",icon:S.FU},hddtemp:{title:"HDD Temp",icon:w.wh},nginx:{title:"NGINX",icon:"serviceNginx"},nginxplus:{title:"NGINX Plus",icon:"serviceNginx"},apache:{title:"Apache",icon:"serviceApache"},lighttpd:{title:"Lighttpd",icon:"serviceLighthttpd"},web_log:{title:"Web Server Logs",icon:"serviceWebLog",info:"Key web server performance metrics extracted in real-time from web server log files. For web servers, an extended log file format may optionally be used offering timing information and bandwidth for both requests and responses."},squid:{title:"squid",icon:"serviceSquid"},nut:{title:"UPS",icon:c.St},apcupsd:{title:"UPS",icon:c.St},snmp:{title:"SNMP",icon:O.V$},go_expvar:{title:"Go - expvars",icon:M.Md,info:'Statistics about running Go applications exposed by the <a href="https://golang.org/pkg/expvar/" target="_blank">expvar package</a>.'},consul:{title:"Consul",icon:N.IJ,info:'Consul performance and health metrics. For details, see <a href="https://developer.hashicorp.com/consul/docs/agent/telemetry#key-metrics" target="_blank">Key Metrics</a>.'},chrony:{title:"Chrony",icon:L.SZ,info:"The system\u2019s clock performance and peers activity status."},couchdb:{icon:"serviceCouchDB",info:'Performance metrics for <b><a href="https://couchdb.apache.org/" target="_blank">CouchDB</a></b>, the open-source, JSON document-based database with an HTTP API and multi-master replication.'},beanstalk:{title:"Beanstalkd",icon:"serviceBeanstalk",info:'Provides statistics on the <b><a href="http://kr.github.io/beanstalkd/" target="_blank">beanstalkd</a></b> server and any tubes available on that server using data pulled from beanstalkc'},rabbitmq:{title:"RabbitMQ",icon:"serviceRabbitMQ",info:'Performance data for the <b><a href="https://www.rabbitmq.com/" target="_blank">RabbitMQ</a></b> open-source message broker.'},ceph:{title:"Ceph",icon:"serviceDatabase",info:'Provides statistics on the <b><a href="http://ceph.com/" target="_blank">ceph</a></b> cluster server, the open-source distributed storage system.'},ntpd:{title:"NTPd",icon:"serviceNtpdPress",info:'Provides statistics for the internal variables of the Network Time Protocol daemon <b><a href="http://www.ntp.org/" target="_blank">ntpd</a></b> and optional including the configured peers (if enabled in the module configuration). The module presents the performance metrics as shown by <b><a href="http://doc.ntp.org/current-stable/ntpq.html">ntpq</a></b> (the standard NTP query program) using NTP mode 6 UDP packets to communicate with the NTP server.'},spigotmc:{title:"Spigot MC",icon:M.Md,info:'Provides basic performance statistics for the <b><a href="https://www.spigotmc.org/" target="_blank">Spigot Minecraft</a></b> server.'},unbound:{title:"Unbound",icon:D.LE},boinc:{title:"BOINC",icon:E.zv,info:'Provides task counts for <b><a href="http://boinc.berkeley.edu/" target="_blank">BOINC</a></b> distributed computing clients.'},w1sensor:{title:"1-Wire Sensors",icon:w.wh,info:'Data derived from <a href="https://en.wikipedia.org/wiki/1-Wire" target="_blank">1-Wire</a> sensors. Currently temperature sensors are automatically detected.'},logind:{title:"Logind",icon:I.IL,info:'Keeps track of user logins and sessions by querying the <a href="https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html" target="_blank">systemd-logind API</a>.'},powersupply:{title:"Power Supply",icon:c.St,info:'Statistics for the various system power supplies. Data collected from <a href="https://www.kernel.org/doc/Documentation/power/power_supply_class.txt" target="_blank">Linux power supply class</a>.'},xenstat:{title:"Xen Node",icon:T.xf,info:"General statistics for the Xen node. Data collected using <b>xenstat</b> library</a>."},xendomain:{title:"",icon:q.To,info:"Xen domain resource utilization metrics. Netdata reads this information using <b>xenstat</b> library which gives access to the resource usage information (CPU, memory, disk I/O, network) for a virtual machine."},windows:{title:"Windows",icon:i.ts},iis:{title:"IIS",icon:M.Md},mssql:{title:"SQL Server",icon:P.t5},ad:{title:"Active Directory",icon:i.ts},adcs:{title:"AD Certification Service",icon:i.ts},adfs:{title:"AD Federation Service",icon:i.ts},netframework:{title:".NET Framework",icon:C.py},exchange:{title:"Exchange",icon:S.FU},perf:{title:"Perf Counters",icon:x.HL,info:"Performance Monitoring Counters (PMC). Data collected using <b>perf_event_open()</b> system call which utilises Hardware Performance Monitoring Units (PMU)."},vsphere:{title:"vSphere",icon:T.xf,info:'Performance statistics for ESXI hosts and virtual machines. Data collected from <a href="https://www.vmware.com/products/vcenter-server.html" target="_blank">VMware vCenter Server</a> using <b><a href="https://github.com/vmware/govmomi"> govmomi</a></b> library.'},vcsa:{title:"VCSA",icon:T.xf,info:'vCenter Server Appliance health statistics. Data collected from <a href="https://vmware.github.io/vsphere-automation-sdk-rest/vsphere/index.html#SVC_com.vmware.appliance.health" target="_blank">Health API</a>.'},zookeeper:{title:"Zookeeper",icon:"serviceDatabase",info:'Provides health statistics for <b><a href="https://zookeeper.apache.org/" target="_blank">Zookeeper</a></b> server. Data collected through the command port using <b><a href="https://zookeeper.apache.org/doc/r3.5.5/zookeeperAdmin.html#sc_zkCommands">mntr</a></b> command.'},hdfs:{title:"HDFS",icon:k.cC,info:'Provides <b><a href="https://hadoop.apache.org/docs/r3.2.0/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html" target="_blank">Hadoop Distributed File System</a></b> performance statistics. Module collects metrics over <b>Java Management Extensions</b> through the web interface of an <b>HDFS</b> daemon.'},am2320:{title:"AM2320 Sensor",icon:w.wh,info:"Readings from the external AM2320 Sensor."},scaleio:{title:"ScaleIO",icon:"serviceDatabase",info:"Performance and health statistics for various ScaleIO components. Data collected via VxFlex OS Gateway REST API."},squidlog:{title:"Squid log",icon:_.cw},cockroachdb:{title:"CockroachDB",icon:"serviceDatabase",info:"Performance and health statistics for various <b>CockroachDB</b> components."},ebpf:{title:"eBPF",icon:"serviceEBPF",info:"Monitor system calls, internal functions, bytes read, bytes written and errors using <b>eBPF</b>."},filesystem:{title:"Filesystem",icon:l.vc,info:'Number of filesystem events for <a href="#menu_filesystem_submenu_vfs">Virtual File System</a>, <a href="#menu_filesystem_submenu_file_access">File Access</a>, <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Directory cache</a>, and file system latency (<a href="#menu_filesystem_submenu_btrfs_latency">BTRFS</a>, <a href="#menu_filesystem_submenu_ext4_latency">EXT4</a>, <a href="#menu_filesystem_submenu_nfs_latency">NFS</a>, <a href="#menu_filesystem_submenu_xfs_latency">XFS</a>, and <a href="#menu_filesystem_submenu_xfs_latency">ZFS</a>) when your disk has the file system. Filesystem charts have relationship with <a href="#menu_system_submenu_swap">SWAP</a>, <a href="#menu_disk">Disk</a>, <a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, and <a href="#menu_mount">Mount Points</a>.'},vernemq:{title:"VerneMQ",icon:v.lX,info:'Performance data for the <b><a href="https://vernemq.com/" target="_blank">VerneMQ</a></b> open-source MQTT broker.'},pulsar:{title:"Pulsar",icon:v.lX,info:'Summary, namespaces and topics performance data for the <b><a href="http://pulsar.apache.org/" target="_blank">Apache Pulsar</a></b> pub-sub messaging system.'},anomalies:{title:"Anomalies",icon:p.jZ,info:'Anomaly scores relating to key system metrics. A high anomaly probability indicates strange behaviour and may trigger an anomaly prediction from the trained models. Read the <a href="https://github.com/netdata/netdata/tree/master/collectors/python.d.plugin/anomalies" target="_blank">anomalies collector docs</a> for more details.'},alerts:{title:"Alerts",icon:y.qm,info:'Charts showing alert status over time. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alerts/README.md" target="_blank">here</a>.'},statsd:{title:"StatsD",icon:b.St,info:'StatsD is an industry-standard technology stack for monitoring applications and instrumenting any piece of software to deliver custom metrics. Netdata allows the user to organize the metrics in different charts and visualize any application metric easily. Read more on <a href="https://learn.netdata.cloud/docs/agent/collectors/statsd.plugin" target="_blank">Netdata Learn</a>.'},supervisord:{title:"Supervisord",icon:g.A8,info:'Detailed statistics for each group of processes controlled by <b><a href="http://supervisord.org/" target="_blank">Supervisor</a></b>. Netdata collects these metrics using <a href="http://supervisord.org/api.html#supervisor.rpcinterface.SupervisorNamespaceRPCInterface.getAllProcessInfo" target="_blank"><b>getAllProcessInfo</b></a> method.'},systemdunits:{title:"systemd units",icon:f.Kb,info:'<b>systemd</b> provides a dependency system between various entities called "units" of 11 different types. Units encapsulate various objects that are relevant for system boot-up and maintenance. Units may be <b>active</b> (meaning started, bound, plugged in, depending on the unit type), or <b>inactive</b> (meaning stopped, unbound, unplugged), as well as in the process of being activated or deactivated, i.e. between the two states (these states are called <b>activating</b>, <b>deactivating</b>). A special <b>failed</b> state is available as well, which is very similar to <b>inactive</b> and is entered when the service failed in some way (process returned error code on exit, or crashed, an operation timed out, or after too many restarts). For details, see <a href="https://www.freedesktop.org/software/systemd/man/systemd.html" target="_blank"> systemd(1)</a>.'},changefinder:{title:"ChangeFinder",icon:p.jZ,info:'Online changepoint detection using machine learning. More details <a href="https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/changefinder/README.md" target="_blank">here</a>.'},zscores:{title:"Z-Scores",icon:m.WV,info:"Z scores scores relating to key system metrics."},anomaly_detection:{title:"Anomaly Detection",icon:u.qx,info:'Charts relating to anomaly detection, increased <b>anomalous</b> dimensions or a higher than usual <b>anomaly_rate</b> could be signs of some abnormal behaviour. Read our <a href="https://learn.netdata.cloud/guides/monitor/anomaly-detection" target="_blank">anomaly detection guide</a> for more details.'},fail2ban:{title:"Fail2ban",icon:h.is,info:"Netdata keeps track of the current jail status by reading the Fail2ban log file."},wireguard:{title:"WireGuard",icon:d.SP,info:"VPN network interfaces and peers traffic."},prometheus:{icon:"servicePrometheus"},"Kubernetes State":{title:"Kubernetes State",icon:"serviceKubernetes"},"Kubernetes Containers":{title:"Kubernetes Containers",icon:"serviceKubernetes"},"Kubernetes kubelet":{title:"Kubernetes Kubelet",icon:"serviceKubernetes"},"Kubernetes kubeproxy":{title:"Kubernetes Kubeproxy",icon:"serviceKubernetes"},coredns:{title:"CoreDNS",icon:"serviceCoreDns"},dns_query:{title:"DNS Query Response Time",icon:"serviceDns"},sendgrid:{title:"SendGrid",icon:"serviceSendgrid"},smartd_log:{icon:"servicesSmartdlog"},bind:{icon:"serviceBind"},systemd:{icon:"serviceSystemd"},md:{title:"Linux Software RAID",icon:l.vc,info:"Metrics for monitoring Linux Software RAID"},cups:{title:"Printers (cups)",icon:c.St,info:"Metrics for Printer (cups) monitoring"},named:{title:"ISC Bind (named)",icon:"serviceCoreDns",info:"Metrics for named monitoring"},isc_dhcpd:{title:"ISC DHCPd",icon:"serviceCoreDns",info:"Metrics for DHCPd monitoring"}},K={"web_log.squid_bandwidth":{title:"bandwidth",info:'Bandwidth of responses (<b>sent</b>) by squid. This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a>) for accurate accounting of the server bandwidth.'},"web_log.squid_responses":{title:"responses",info:"Information related to the responses sent by squid."},"web_log.squid_requests":{title:"requests",info:"Information related to the requests squid has received."},"web_log.squid_hierarchy":{title:"hierarchy",info:"Performance metrics for the squid hierarchy used to serve the requests."},"web_log.squid_squid_transport":{title:"transport"},"web_log.squid_squid_cache":{title:"cache",info:"Performance metrics for the performance of the squid cache."},"web_log.squid_timings":{title:"timings",info:"Duration of squid requests. Unrealistic spikes may be reported, since squid logs the total time of the requests, when they complete. Especially for HTTPS, the clients get a tunnel from the proxy and exchange requests directly with the upstream servers, so squid cannot evaluate the individual requests and reports the total time the tunnel was open."},"web_log.squid_clients":{title:"clients"},"web_log.bandwidth":{info:'Bandwidth of requests (<b>received</b>) and responses (<b>sent</b>). <b>received</b> requires an extended log format (without it, the web server log does not have this information). This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the web server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. <a href="http://firehol.org/#fireqos" target="_blank">FireQOS</a>) for accurate accounting of the web server bandwidth.'},"web_log.urls":{info:'Number of requests for each <b>URL pattern</b> defined in <a href="https://github.com/netdata/go.d.plugin/blob/master/config/go.d/web_log.conf" target="_blank"><b>/etc/netdata/go.d/web_log.conf</b></a>. This chart counts all requests matching the URL patterns defined, independently of the web server response codes (i.e. both successful and unsuccessful).'},"web_log.clients":{info:"Charts showing the number of unique client IPs, accessing the web server."},"web_log.timings":{info:"Web server response timings - the time the web server needed to prepare and respond to requests. This requires an extended log format and its meaning is web server specific. For most web servers this accounts the time from the reception of a complete request, to the dispatch of the last byte of the response. So, it includes the network delays of responses, but it does not include the network delays of requests."},"mem.ksm":{title:"deduper (ksm)",info:'<a href="https://en.wikipedia.org/wiki/Kernel_same-page_merging" target="_blank">Kernel Same-page Merging</a> (KSM) performance monitoring, read from several files in <b>/sys/kernel/mm/ksm/</b>. KSM is a memory-saving de-duplication feature in the Linux kernel. The KSM daemon ksmd periodically scans those areas of user memory which have been registered with it, looking for pages of identical content which can be replaced by a single write-protected page.'},"mem.hugepages":{info:'Hugepages is a feature that allows the kernel to utilize the multiple page size capabilities of modern hardware architectures. The kernel creates multiple pages of virtual memory, mapped from both physical RAM and swap. There is a mechanism in the CPU architecture called "Translation Lookaside Buffers" (TLB) to manage the mapping of virtual memory pages to actual physical memory addresses. The TLB is a limited hardware resource, so utilizing a large amount of physical memory with the default page size consumes the TLB and adds processing overhead. By utilizing Huge Pages, the kernel is able to create pages of much larger sizes, each page consuming a single resource in the TLB. Huge Pages are pinned to physical RAM and cannot be swapped/paged out.'},"mem.numa":{info:'Non-Uniform Memory Access (NUMA) is a hierarchical memory design the memory access time is dependent on locality. Under NUMA, a processor can access its own local memory faster than non-local memory (memory local to another processor or memory shared between processors). The individual metrics are described in the <a href="https://www.kernel.org/doc/Documentation/numastat.txt" target="_blank">Linux kernel documentation</a>.'},"mem.ecc":{info:'<p><a href="https://en.wikipedia.org/wiki/ECC_memory" target="_blank">ECC memory</a> is a type of computer data storage that uses an error correction code (ECC) to detect and correct n-bit data corruption which occurs in memory. Typically, ECC memory maintains a memory system immune to single-bit errors: the data that is read from each word is always the same as the data that had been written to it, even if one of the bits actually stored has been flipped to the wrong state.</p><p>Memory errors can be classified into two types: <b>Soft errors</b>, which randomly corrupt bits but do not leave physical damage. Soft errors are transient in nature and are not repeatable, can be because of electrical or magnetic interference. <b>Hard errors</b>, which corrupt bits in a repeatable manner because of a physical/hardware defect or an environmental problem.'},"mem.pagetype":{info:'Statistics of free memory available from <a href="https://en.wikipedia.org/wiki/Buddy_memory_allocation" target="_blank">memory buddy allocator</a>. The buddy allocator is the system memory allocator. The whole memory space is split in physical pages, which are grouped by NUMA node, zone, <a href="https://lwn.net/Articles/224254/" target="_blank">migrate type</a>, and size of the block. By keeping pages grouped based on their ability to move, the kernel can reclaim pages within a page block to satisfy a high-order allocation. When the kernel or an application requests some memory, the buddy allocator provides a page that matches closest the request.'},"ip.ecn":{info:'<a href="https://en.wikipedia.org/wiki/Explicit_Congestion_Notification" target="_blank">Explicit Congestion Notification (ECN)</a> is an extension to the IP and to the TCP that allows end-to-end notification of network congestion without dropping packets. ECN is an optional feature that may be used between two ECN-enabled endpoints when the underlying network infrastructure also supports it.'},"ip.multicast":{info:'<a href="https://en.wikipedia.org/wiki/Multicast" target="_blank">IP multicast</a> is a technique for one-to-many communication over an IP network. Multicast uses network infrastructure efficiently by requiring the source to send a packet only once, even if it needs to be delivered to a large number of receivers. The nodes in the network take care of replicating the packet to reach multiple receivers only when necessary.'},"ip.broadcast":{info:'In computer networking, <a href="https://en.wikipedia.org/wiki/Broadcasting_(networking)" target="_blank">broadcasting</a> refers to transmitting a packet that will be received by every device on the network. In practice, the scope of the broadcast is limited to a broadcast domain.'},"netfilter.conntrack":{title:"connection tracker",info:"Netfilter Connection Tracker performance metrics. The connection tracker keeps track of all connections of the machine, inbound and outbound. It works by keeping a database with all open connections, tracking network and address translation and connection expectations."},"netfilter.nfacct":{title:"bandwidth accounting",info:"The following information is read using the <b>nfacct.plugin</b>."},"netfilter.synproxy":{title:"DDoS protection",info:'DDoS protection performance metrics. <a href="https://github.com/firehol/firehol/wiki/Working-with-SYNPROXY" target="_blank">SYNPROXY</a> is a TCP SYN packets proxy. It is used to protect any TCP server (like a web server) from SYN floods and similar DDoS attacks. SYNPROXY intercepts new TCP connections and handles the initial 3-way handshake using syncookies instead of conntrack to establish the connection. It is optimized to handle millions of packets per second utilizing all CPUs available without any concurrency locking between the connections. It can be used for any kind of TCP traffic (even encrypted), since it does not interfere with the content itself.'},"ipfw.dynamic_rules":{title:"dynamic rules",info:"Number of dynamic rules, created by correspondent stateful firewall rules."},"system.softnet_stat":{title:"softnet",info:function(e){return"linux"===e.os?'<p>Statistics for CPUs SoftIRQs related to network receive work. Break down per CPU core can be found at <a href="#menu_cpu_submenu_softnet_stat">CPU / softnet statistics</a>. More information about identifying and troubleshooting network driver related issues can be found at <a href="https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf" target="_blank">Red Hat Enterprise Linux Network Performance Tuning Guide</a>.</p><p><b>Processed</b> - packets processed. <b>Dropped</b> - packets dropped because the network device backlog was full. <b>Squeezed</b> - number of times the network device budget was consumed or the time limit was reached, but more work was available. <b>ReceivedRPS</b> - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. <b>FlowLimitCount</b> - number of times the flow limit has been reached (flow limiting is an optional Receive Packet Steering feature).</p>':"Statistics for CPUs SoftIRQs related to network receive work."}},"system.clock synchronization":{info:'<a href="https://en.wikipedia.org/wiki/Network_Time_Protocol" target="_blank">NTP</a> lets you automatically sync your system time with a remote server. This keeps your machine\u2019s time accurate by syncing with servers that are known to have accurate times.'},"cpu.softnet_stat":{title:"softnet",info:function(e){return"linux"===e.os?'<p>Statistics for CPUs SoftIRQs related to network receive work. Total for all CPU cores can be found at <a href="#menu_system_submenu_softnet_stat">System / softnet statistics</a>. More information about identifying and troubleshooting network driver related issues can be found at <a href="https://access.redhat.com/sites/default/files/attachments/20150325_network_performance_tuning.pdf" target="_blank">Red Hat Enterprise Linux Network Performance Tuning Guide</a>.</p><p><b>Processed</b> - packets processed. <b>Dropped</b> - packets dropped because the network device backlog was full. <b>Squeezed</b> - number of times the network device budget was consumed or the time limit was reached, but more work was available. <b>ReceivedRPS</b> - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. <b>FlowLimitCount</b> - number of times the flow limit has been reached (flow limiting is an optional Receive Packet Steering feature).</p>':'Statistics for per CPUs core SoftIRQs related to network receive work. Total for all CPU cores can be found at <a href="#menu_system_submenu_softnet_stat">System / softnet statistics</a>.'}},"go_expvar.memstats":{title:"memory statistics",info:'Go runtime memory statistics. See <a href="https://golang.org/pkg/runtime/#MemStats" target="_blank">runtime.MemStats</a> documentation for more info about each chart and the values.'},"couchdb.dbactivity":{title:"db activity",info:"Overall database reads and writes for the entire server. This includes any external HTTP traffic, as well as internal replication traffic performed in a cluster to ensure node consistency."},"couchdb.httptraffic":{title:"http traffic breakdown",info:"All HTTP traffic, broken down by type of request (<tt>GET</tt>, <tt>PUT</tt>, <tt>POST</tt>, etc.) and response status code (<tt>200</tt>, <tt>201</tt>, <tt>4xx</tt>, etc.)<br/><br/>Any <tt>5xx</tt> errors here indicate a likely CouchDB bug; check the logfile for further information."},"couchdb.ops":{title:"server operations"},"couchdb.perdbstats":{title:"per db statistics",info:'Statistics per database. This includes <a href="http://docs.couchdb.org/en/latest/api/database/common.html#get--db" target="_blank">3 size graphs per database</a>: active (the size of live data in the database), external (the uncompressed size of the database contents), and file (the size of the file on disk, exclusive of any views and indexes). It also includes the number of documents and number of deleted documents per database.'},"couchdb.erlang":{title:"erlang statistics",info:"Detailed information about the status of the Erlang VM that hosts CouchDB. These are intended for advanced users only. High values of the peak message queue (>10e6) generally indicate an overload condition."},"ntpd.system":{title:"system",info:'Statistics of the system variables as shown by the readlist billboard <b>ntpq -c rl</b>. System variables are assigned an association ID of zero and can also be shown in the readvar billboard <b>ntpq -c "rv 0"</b>. These variables are used in the <a href="http://doc.ntp.org/current-stable/discipline.html" target="_blank">Clock Discipline Algorithm</a>, to calculate the lowest and most stable offset.'},"ntpd.peers":{title:"peers",info:'Statistics of the peer variables for each peer configured in <b>/etc/ntp.conf</b> as shown by the readvar billboard <b>ntpq -c "rv &lt;association&gt;"</b>, while each peer is assigned a nonzero association ID as shown by <b>ntpq -c "apeers"</b>. The module periodically scans for new/changed peers (default: every 60s). <b>ntpd</b> selects the best possible peer from the available peers to synchronize the clock. A minimum of at least 3 peers is required to properly identify the best possible peer.'},"mem.page_cache":{title:"page cache (eBPF)",info:'Number of calls to <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#memory" target="_blank">functions</a> used to manipulate the <a href="https://en.wikipedia.org/wiki/Page_cache" target="_blank">Linux page cache</a>. This chart has a relationship with <a href="#menu_filesystem">File Systems</a>, <a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, and <a href="#menu_disk">Hard Disk</a>.'},"apps.page_cache":{title:"page cache (eBPF)",info:'Netdata also gives a summary for these charts in <a href="#menu_mem_submenu_page_cache">Memory submenu</a>.'},"filesystem.vfs":{title:"vfs (eBPF)",info:'Number of calls to Virtual File System <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#vfs" target="_blank">functions</a> used to manipulate <a href="#menu_filesystem">File Systems</a>.'},"apps.vfs":{title:"vfs (eBPF)",info:'Netdata also gives a summary for these charts in <a href="#menu_filesystem_submenu_vfs">Filesystem submenu</a>.'},"filesystem.ext4_latency":{title:"ext4 latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="http://www.brendangregg.com/blog/2016-10-06/linux-bcc-ext4dist-ext4slower.html" target="_blank">eBPF ext4dist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.xfs_latency":{title:"xfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/xfsdist_example.txt" target="_blank">xfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.nfs_latency":{title:"nfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/nfsdist_example.txt" target="_blank">nfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.zfs_latency":{title:"zfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/zfsdist_example.txt" target="_blank">zfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.btrfs_latency":{title:"btrfs latency (eBPF)",info:'<a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#latency-algorithm" target="_blank">Latency</a> is the time it takes for an event to be completed. Based on the <a href="https://github.com/iovisor/bcc/blob/master/tools/btrfsdist_example.txt" target="_blank">btrfsdist</a> from BCC tools. This chart is provided by the <a href="#menu_netdata_submenu_ebpf">eBPF plugin</a> to monitor <a href="#menu_filesystem">File systems</a>.'},"filesystem.file_access":{title:"file access (eBPF)"},"apps.file_access":{title:"file access (eBPF)",info:'Netdata also gives a summary for this chart on <a href="#menu_filesystem_submenu_file_access">Filesystem submenu</a> (more details on <a href="https://learn.netdata.cloud/docs/agent/collectors/ebpf.plugin#file-descriptor" target="_blank">eBPF plugin file chart section</a>).'},"ip.kernel":{title:"kernel functions (eBPF)"},"apps.net":{title:"network",info:'Netdata also gives a summary for eBPF charts in <a href="#menu_ip_submenu_kernel">Networking Stack submenu</a>.'},"system.ipc semaphores":{info:'System V semaphores is an inter-process communication (IPC) mechanism. It allows processes or threads within a process to synchronize their actions. They are often used to monitor and control the availability of system resources such as shared memory segments. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC semaphore information, run <b>ipcs -us</b>. For limits, run <b>ipcs -ls</b>.'},"system.ipc shared memory":{info:'System V shared memory is an inter-process communication (IPC) mechanism. It allows processes to communicate information by sharing a region of memory. It is the fastest form of inter-process communication available since no kernel involvement occurs when data is passed between the processes (no copying). Typically, processes must synchronize their access to a shared memory object, using, for example, POSIX semaphores. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC shared memory information, run <b>ipcs -um</b>. For limits, run <b>ipcs -lm</b>.'},"system.ipc message queues":{info:'System V message queues is an inter-process communication (IPC) mechanism. It allow processes to exchange data in the form of messages. For details, see <a href="https://man7.org/linux/man-pages/man7/svipc.7.html" target="_blank">svipc(7)</a>. To see the host IPC messages information, run <b>ipcs -uq</b>. For limits, run <b>ipcs -lq</b>.'},"system.interrupts":{info:'<a href="https://en.wikipedia.org/wiki/Interrupt" target="_blank"><b>Interrupts</b></a> are signals sent to the CPU by external devices (normally I/O devices) or programs (running processes). They tell the CPU to stop its current activities and execute the appropriate part of the operating system. Interrupt types are <b>hardware</b> (generated by hardware devices to signal that they need some attention from the OS), <b>software</b> (generated by programs when they want to request a system call to be performed by the operating system), and <b>traps</b> (generated by the CPU itself to indicate that some error or condition occurred for which assistance from the operating system is needed).'},"system.softirqs":{info:'Software interrupts (or "softirqs") are one of the oldest deferred-execution mechanisms in the kernel. Several tasks among those executed by the kernel are not critical: they can be deferred for a long period of time, if necessary. The deferrable tasks can execute with all interrupts enabled (softirqs are patterned after hardware interrupts). Taking them out of the interrupt handler helps keep kernel response time small.'},"cpu.softirqs":{info:'Total number of software interrupts per CPU. To see the total number for the system check the <a href="#menu_system_submenu_softirqs">softirqs</a> section.'},"cpu.interrupts":{info:'Total number of interrupts per CPU. To see the total number for the system check the <a href="#menu_system_submenu_interrupts">interrupts</a> section. The last column in <b>/proc/interrupts</b> provides an interrupt description or the device name that registered the handler for that interrupt.'},"cpu.throttling":{info:" CPU throttling is commonly used to automatically slow down the computer when possible to use less energy and conserve battery."},"cpu.cpuidle":{info:'<a href="https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Processor_states" target="_blank">Idle States (C-states)</a> are used to save power when the processor is idle.'},"services.net":{title:"network (eBPF)"},"services.page_cache":{title:"pache cache (eBPF)"},"netdata.ebpf":{title:"eBPF.plugin",info:'eBPF (extended Berkeley Packet Filter) is used to collect metrics from inside Linux kernel giving a zoom inside your <a href="#ebpf_system_process_thread">Process</a>, <a href="#menu_disk">Hard Disk</a>, <a href="#menu_filesystem">File systems</a> (<a href="#menu_filesystem_submenu_file_access">File Access</a>, and <a href="#menu_filesystem_submenu_directory_cache__eBPF_">Directory Cache</a>), Memory (<a href="#ebpf_global_swap">Swap I/O</a>, <a href="#menu_mem_submenu_page_cache">Page Cache</a>), IRQ (<a href="#ebpf_global_hard_irq">Hard IRQ</a> and <a href="#ebpf_global_soft_irq">Soft IRQ</a> ), <a href="#ebpf_global_shm">Shared Memory</a>, Syscalls (<a href="#menu_mem_submenu_synchronization__eBPF_">Sync</a>, <a href="#menu_mount_submenu_mount__eBPF_">Mount</a>), and <a href="#menu_ip_submenu_kernel">Network</a>.'}};function J(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?J(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var X=function(e,t,n,s){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if("undefined"===typeof e[n])return s;var a=e[n][t];return"undefined"===typeof a?s:"function"===typeof a?a(r):a},$=function(e,t){if(e.sectionTitle)return e.sectionTitle;if("undefined"===typeof e.menuPattern)return X(W,"title",e.id,e.id,t).toString().replace(/_/g," ");var n=e.type||e.id.split(".")[0],s=n===e.menuPattern?"":" ".concat(n.slice(-(n.length-e.menuPattern.length-1)));return"".concat(X(W,"title",e.menuPattern,e.menuPattern,t).toString()," ").concat(s).replace(/_/g," ")},ee=r.Nx,te=function(e){return X(W,"icon",e.menuIcon||e.menuPattern||e.id,ee)},ne=function(e,t){return X(W,"info",e.menuPattern||e.id,null,t)},se=function(e,t,n){var s=t?"".concat(e,".").concat(t):e;return X(K,"title",s,t||e,n).toString().replace(/_/g," ")},re=function(e,t,n){return X(K,"info",t?"".concat(e,".").concat(t):e,null,n)},ae=function(e,t){var n=X(o.Z,"info",e,null,t);return n?'<div class="shorten dashboard-context-info" role="document">'.concat(n,"</div>"):""},oe=function(e,t,n,s){return X(o.Z,t,e,n,s)},ie=function(e){var t;return(null===(t=o.Z[e])||void 0===t?void 0:t.valueRange)||[null,null]},ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.menuId,s=t.subMenuId,r=t.sectionInfo,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=e.context,l=e.domain,d=e.id,h=e.visible,u=e.filteredOut,m=e.hidden;return Y(Y({},o.Z[d]),{},{id:d,chartId:d,menuGroupId:n,subMenuId:s,link:"chart_".concat((0,a.Z)(d)),chartLibrary:"dygraph",info:ae(c,i),sectionInfo:r,valueRange:ie(c),colors:"".concat(X(c||d,"colors",c,"",i)),domain:l,visible:h,filteredOut:u,hidden:m})}},45335:function(e,t,n){n.d(t,{Ze:function(){return i},sm:function(){return c},vH:function(){return l}});var s=n(29439),r=n(67294),a=(0,r.createContext)(),o=(0,r.createContext)(),i=function(e){var t=e.children,n=(0,r.useState)(),i=(0,s.Z)(n,2),c=i[0],l=i[1];return r.createElement(a.Provider,{value:c},r.createElement(o.Provider,{value:l},t))},c=function(){return(0,r.useContext)(a)},l=function(){return(0,r.useContext)(o)}},85993:function(e,t,n){n.d(t,{Lj:function(){return f},UG:function(){return m},VC:function(){return b},YE:function(){return h},fW:function(){return u},jj:function(){return y},nk:function(){return p}});var s=n(87462),r=n(45987),a=n(67294),o=n(6557),i=n.n(o),c=n(44682),l=n(37682),d=["id"],h=(0,c.kr)({}),u=function(e){var t=e.menuGroupById,n=e.children;return a.createElement(h.Provider,{value:t},n)},m=function(e){return(0,l.Z)(h,e)},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return m((function(n){return t(n[e])}))},f=function(e,t){return function(n){var o=n.id,i=(0,r.Z)(n,d),c=p(o,t);return a.createElement(e,(0,s.Z)({},c,i))}},g=(0,c.kr)([]),b=function(e){var t=e.ids,n=e.children;return a.createElement(g.Provider,{value:t},n)},y=function(e){return function(t){var n,r=(0,l.Z)(g,n);return a.createElement(e,(0,s.Z)({menuGroupIds:r},t))}}},62525:function(e,t,n){n.d(t,{Ji:function(){return f},N6:function(){return m},St:function(){return u},Yo:function(){return p},aJ:function(){return h}});var s=n(87462),r=n(45987),a=n(67294),o=n(6557),i=n.n(o),c=n(44682),l=n(37682),d=["id"],h=(0,c.kr)({}),u=function(e){var t=e.subMenuById,n=e.children;return a.createElement(h.Provider,{value:t},n)},m=function(e){return(0,l.Z)(h,e)},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i();return m((function(n){return t(n[e])}))},f=function(e,t){return function(n){var o=n.id,i=(0,r.Z)(n,d),c=p(o,t);return a.createElement(e,(0,s.Z)({},c,i))}}},13962:function(e,t,n){n.d(t,{Z:function(){return w}});var s=n(87462),r=n(45987),a=(n(34553),n(69826),n(41539),n(31672),n(2490),n(59461),n(21249),n(57640),n(9924),n(57327),n(88449),n(59849),n(67294)),o=n(71824),i=n(71059),c=n(89479),l=(n(26833),n(85993)),d=n(62525),h=n(45335),u=n(44682),m=function(e){var t=(0,a.useRef)();return(0,u.Sz)(e,(function(e){return t.current=e,!1})),t},p=(n(88674),function(e,t){var n=(0,o.uK)(),s=m(l.YE),r=m(d.aJ),i=m(o.vv),c=(0,h.vH)(),u=(0,a.useMemo)((function(){return{goToElement:function(n){return!!t.length&&(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;new Promise((function(n){!function t(s){if(0===s)return n();e(),setTimeout((function(){return t(--s)}))}(t)}))}((function(){var s=t.findIndex((function(e){return e.id===n}));if(-1!==s)return e.scrollToIndex(s,{align:"start"})}),5),!0)},goToLink:function(e){var t=Object.values(s.current).find((function(t){return t.link===e}));if(t)return u.goToElement(t.id);var n=Object.values(r.current).find((function(t){return t.link===e}));if(n)return u.goToElement(n.id);var a=Object.values(i.current).find((function(t){return t.link===e}));return a?u.goToElement(a.chartId):void 0}}}),[n,t]);return(0,a.useLayoutEffect)((function(){c(u)}),[u]),u}),f=(n(91038),n(78783),n(27856)),g=["getComponent","element","index"],b=function(e){var t=e.getComponent,n=e.element,o=e.index,i=(0,r.Z)(e,g),c=(0,a.useMemo)((function(){return t(n)}),[n.id,o]);return a.createElement(c,(0,s.Z)({key:n.id},n,{index:o},i,{isVisible:!0}))},y=null,v=(0,a.memo)((0,a.forwardRef)((function(e,t){var n=e.elements,r=e.onScroll,o=e.dashboardOptions,c=e.getComponent,l=(0,a.useRef)(),d=(0,a.useRef)(),h=(0,a.useRef)(),u=(0,a.useRef)(0),m=(0,i.MG)({count:n.length,getScrollElement:function(){return t.current},scrollOffsetFn:function(e){return e?e.target.scrollTop-t.current.offsetTop:0},overscan:1,enableSmoothScroll:!1,estimateSize:function(e){return n[e].size},onChange:function(e){if(l.current!==n.length&&(u.current=0),d.current&&(u.current<5||l.current!==n.length)){u.current=u.current+1,l.current=n.length;var t=n.findIndex((function(e){return e.id===d.current.id}));if(-1===t)return;var s=e.getMeasurements()[t].start;return e.scrollToOffset(s+h.current),clearTimeout(y),void(y=setTimeout((function(){return u.current=5}),200))}l.current=n.length;var r=e.scrollOffset,a=0,o=e.getMeasurements().find((function(e){return(a+=e.size)>r}));o&&(d.current=n[o.index],h.current=r-o.start)}});return p(m,n),a.createElement("div",{ref:t,style:{minHeight:"100%",width:"100%",overflow:"auto"},onScroll:r},a.createElement("div",{style:{minHeight:"".concat(m.getTotalSize(),"px"),width:"100%",position:"relative"}},m.getVirtualItems().map((function(e,t){return a.createElement("div",{key:e.key,ref:m.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:"translateY(".concat(e.start,"px)"),padding:2,zIndex:m.getVirtualItems().length-t},"data-index":e.index},a.createElement(b,(0,s.Z)({},o,{element:n[e.index],index:e.index,getComponent:c})))}))))})),(function(e,t){return e.elements.length===t.elements.length})),_=function(e){var t=e.onActiveMenuGroupId,n=e.onActiveSubMenuId,s=e.getComponent,r=e.dashboardOptions,i=e.initialChartName,l=e.checkVisibility,d=(0,c.If)(),h=(0,o.PZ)((function(e){return e.filter((function(e){return l?l(e.subMenuChartIds||e.chartIds||[e.id]):d(e.subMenuChartIds||e.chartIds||[e.id])}))})),u=(0,a.useRef)(),m=(0,a.useRef)(),p=(0,a.useMemo)((function(){return m.current&&m.current.cancel(),m.current=(0,f.D)(100,(function(e,t,n){var s;if(e){var r=e.getBoundingClientRect().top,a=Array.from(e.querySelectorAll("[data-submenuid], [data-menuid], [data-chartid]")).find((function(e){return e.getBoundingClientRect().top-r>0}));if(a){var o=a.getAttribute("data-menuid");if(o)return t(""),void n(o);t(a.getAttribute("data-submenuid")||(null===(s=a.closest("[data-submenuid]"))||void 0===s?void 0:s.getAttribute("data-submenuid")))}}})),function(){return m.current(u.current,n,t)}}),[h.length,n,t]);return(0,a.useLayoutEffect)((function(){h.length&&p()}),[h.length,i]),a.createElement(v,{elements:h,onScroll:p,dashboardOptions:r,getComponent:s,ref:u})},w=(0,a.memo)(_)},74662:function(e,t,n){n.d(t,{v:function(){return L},Z:function(){return N}});var s=n(29439),r=n(87462),a=n(67294),o=n(57509),i=n(45987),c=(n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(93433)),l=n(4942),d=(n(41539),n(15581),n(2490),n(34514),n(54747),n(2707),n(92222),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(85827),n(25387),n(72608),n(47941),n(69826),n(31672),n(59461),n(19601),n(21249),n(57640),n(9924),n(39612)),h=(n(74916),n(77601),n(4723),n(15306),["menuPattern","menu"]);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,l.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=function(e,t){var n=e.id,r=e.name,a=e.family,o=e.context;return function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.name,a=void 0===r?"":r,o=n.context,c=void 0===o?"":o,l=n.submenuNames,d=void 0===l?{}:l,u=(c||e.chartId).split("."),p=(0,s.Z)(u,3),f=p[0],g=p[1],b=p[2],y=f.split("_"),v=(0,s.Z)(y,2),_=v[0],w=v[1],k=function(t){var n=t.menuPattern,s=t.menu,r=void 0===s?f:s,a=(0,i.Z)(t,h);return m(m(m({id:r,menuPattern:n,key:"".concat(r,"|").concat(e.subMenuId,"|").concat(e.chartId)},a),e),{},{part1:_})},T=function(e){var t=y.length>=2&&w===e?"".concat(_,"_").concat(w):_;return k({menuPattern:t})};switch(_){case"ap":case"net":case"powersupply":case"mount":return k({menu:_});case"cpufreq":case"cpuidle":return k({menu:"cpu"});case"smartd":case"web":return T("log");case"apache":return T("cache");case"bind":return T("rndc");case"go":return T("expvar");case"isc":return T("dhcpd");case"anomaly":return k({});case"disk":return/(inodes|space)/.test(g)||/(inodes|space)/.test(w)?k({menu:"mount"}):k({menu:_});case"k8s":return k("state"===w?{menu:"Kubernetes State"}:w&&"container"!==w?{menu:"Kubernetes ".concat(w)}:{menu:"Kubernetes Containers",flavour:"k8s"});case"cgroup":var x=e.chartId.match(/.*[._/-:]qemu[._/-:]*/)||e.chartId.match(/.*[._/-:]kvm[._/-:]*/)?"cgqemu":"cgroup",S=1===y.length?"Containers & VMs":void 0;return k({menuPattern:x,sectionTitle:S});case"ovpn":var C=y.length>3&&"status"===y[1]&&"log"===y[2]?"".concat(_,"_").concat(w):_;return k({menuPattern:C});case"prometheus":if(b)return k({menu:"".concat(g.replace("-"," ")),menuIcon:"prometheus"});var P=e.subMenuId.split("_")[0];return k({menu:"".concat(P),menuIcon:"prometheus"});case"tc":if("tc.qos"===c&&(!("family"in d)||(null===(t=d[_])||void 0===t?void 0:t[e.subMenuId])===e.subMenuId)){var M=a.split("."),q=(0,s.Z)(M,2)[1];d[_]||(d[_]={}),d[_][e.subMenuId]=q.replace(/^(in_|out_)/,"").replace(/(_in|_out)$/,"")}return k({menu:_,priority:e.chartId.match(/.*-ifb$/)?e.priority-1:e.priority});default:var I=y.length>1?_:void 0;return k({menuPattern:I});case"dnsmasq":if(2==y.length&&"dhcp"===y[1])return k({menu:"".concat(_,"_").concat(w)});if(y.length>=2&&"dhcp"===y[1])return k({menuPattern:"".concat(_,"_").concat(w)});var E=y.length>1?_:void 0;return k({menuPattern:E})}}({chartId:n,subMenuId:a||"all",priority:e.priority,visible:e.visible,filteredOut:e.filteredOut,hidden:e.hidden},{name:r,context:o,submenuNames:t})},f=(n(64211),n(41874),n(41609)),g=n.n(f),b=n(7592),y=n(89692);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,l.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=function(e,t,n){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r={},a=[];return t.forEach((function(t){var o=n(t);(0,y.G_)(b.Z,e,o.context,[]).forEach((function(i,c){var l="function"===typeof i?i(_(_({},s),{},{id:o.id})):i;if(l&&!function(e,t){return!!e&&(Array.isArray(e)?e.some((function(e){return!g()(t(e))})):!g()(t(e)))}(l.hiddenWhen,n)&&(!l.domain||l.domain===o.domain)){var d="".concat(e,"|").concat(t,"|").concat(c),h=_(_({id:d,chartId:t},s),l);r[d]=h,a.push(d)}}))})),[r,a.sort((function(e,t){return r[e].priority-r[t].priority}))]};function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?k(Object(n),!0).forEach((function(t){(0,l.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var x=function(e,t,n){var s={},r={},a={},o={};return e.forEach((function(e){var r=t(e);r.id&&(n[e]=p(function(e){return T(T({},e),{},{family:(0,y.lV)(e.context,"family",e.family)})}(r),s))})),(0,c.Z)(e).sort((function(e,t){var s,r,a,o;return(null===(s=n[e])||void 0===s?void 0:s.priority)-(null===(r=n[t])||void 0===r?void 0:r.priority)||((null===(a=n[e])||void 0===a?void 0:a.key)||"").localeCompare((null===(o=n[t])||void 0===o?void 0:o.key)||"",void 0,{sensitivity:"accent"})})).forEach((function(e){var t=n[e],s="".concat(t.id,"|").concat(t.subMenuId);o[s]||(o[s]=[]),r[t.id]||(r[t.id]=new Set),a[t.id]||(a[t.id]=[]),o[s].push(t.chartId),r[t.id].add(s),a[t.id].push(t.chartId)})),{chartMenus:n,menuGroups:r,menuGroupChartIds:a,subMenus:o,submenuNames:s}},S=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).os,r={},a=x(e,t,r),o=a.menuGroups,i=a.menuGroupChartIds,l=a.subMenus,h=a.submenuNames,u={},m=Object.keys(o).reduce((function(e,a){var l=i[a],h=r[l[0]],m=l.find((function(e){return r[e].menuPattern})),p=m?r[m].menuPattern:"",f=(0,c.Z)(o[a]),g=w("mainheads",l,t,{os:n}),b=(0,s.Z)(g,2),v=b[0],_=b[1];return Object.assign(u,v),e[a]={level:0,id:a,menuPattern:p,priority:h.priority,headIds:_,subMenuIds:f,subMenuChartIds:l,name:(0,y.iK)(h),icon:(0,y.FO)(h),info:(0,y.oS)(h),link:"".concat((0,d.Z)("menu_".concat(a))),size:24,flavour:h.flavour},e}),{}),p=Object.keys(l).reduce((function(e,a){var o,i=l[a],c=r[i[0]],p=m[c.id],f=p.id,g=p.menuPattern,b=w("heads",i,t,{os:n}),v=(0,s.Z)(b,2),_=v[0],k=v[1];Object.assign(u,_);var T=g||f,x=c.subMenuId in(h[c.part1]||{})?"".concat(c.subMenuId," (").concat(null===(o=h[c.part1])||void 0===o?void 0:o[c.subMenuId],")"):(0,y.bF)(T,c.subMenuId);return e[a]={level:1,id:a,menuGroupId:f,priority:c.priority,chartIds:i,headIds:k,name:x,info:(0,y.JK)(T,c.subMenuId),link:"".concat((0,d.Z)("menu_".concat(c.id,"_submenu_").concat(c.subMenuId))),size:24},e}),{}),f=Object.keys(o),g=-1,b=[],v=f.reduce((function(e,s){g+=1;var r=m[s];return(r.headIds||"k8s"===r.flavour)&&b.push(g),[].concat((0,c.Z)(e),[r],(0,c.Z)(m[s].subMenuIds.reduce((function(e,r){g+=1;var a=p[r];return a.headIds&&b.push(g),[].concat((0,c.Z)(e),[a],(0,c.Z)(p[r].chartIds.map((function(e){var a=t(e);if(a)return g+=1,u[e]=(0,y.ZP)(a,{menuId:s,subMenuId:r,sectionInfo:p[r].info},{os:n}),T(T({},u[e]),{},{level:2,size:365,menuKey:m[s].menuPattern||m[s].id})}))))}),[])))}),[]);return r=null,{stickyIndexes:b,allCharts:v,menuGroupIds:f,menuGroupById:m,subMenuById:p,menuChartsAttributeById:u}},C=n(71824),P=n(85993),M=n(62525),q=n(28989),I=n(45335),E=["container","chartIds","getChart","children","getMenu"],D=function(e){var t=e.container,n=e.chartIds,s=e.getChart,r=e.children,o=e.getMenu,c=void 0===o?S:o,l=(0,i.Z)(e,E),d=(0,a.useMemo)((function(){return c(n,s,l)}),[s,n.length]),h=d.allCharts,u=d.menuGroupIds,m=d.menuGroupById,p=d.subMenuById,f=d.menuChartsAttributeById;return a.createElement(C.At,{container:t,menuChartsAttributeById:f,getChart:s,allCharts:h},a.createElement(P.VC,{ids:u},a.createElement(P.fW,{menuGroupById:m},a.createElement(M.St,{subMenuById:p},a.createElement(q.SF,null,a.createElement(I.Ze,null,r))))))},L=function(e){return a.createElement(o.Flex,(0,r.Z)({column:!0,height:"100%",padding:[0,0,2,4],overflow:"auto",className:"node-view__container"},e))},N=function(e){var t=(0,a.useRef)(),n=(0,a.useState)(),i=(0,s.Z)(n,2),c=i[0],l=i[1];return(0,a.useLayoutEffect)((function(){l(t.current)}),[]),a.createElement(o.Flex,{ref:t,height:"100%",width:"100%",overflow:{vertical:"auto"}},c&&a.createElement(D,(0,r.Z)({},e,{container:c})))}},15394:function(e,t,n){n.d(t,{Z:function(){return g}});var s=n(67294),r=n(71824),a=n(45335),o=n(85993),i=n(62525),c=n(28989),l=n(4480),d=n(97945),h=n(37518),u=(0,l.xu)({key:"activeMenuGroupIdValue",default:""}),m=function(){var e=(0,h.UL)(),t=(0,d.pG)();return(0,s.useMemo)((function(){return{roomId:e,nodeId:t}}),[t,e])},p=function(e){return function(t,n){var s=t.querySelector(n);s&&e(s)}},f="scrollIntoViewIfNeeded"in document.body?p((function(e){return e.scrollIntoViewIfNeeded()})):p((function(e){return e.scrollIntoView()})),g=function(e){var t=e.onMenuGroupClick,n=e.onSubMenuClick,d=e.onChartNameChange,h=e.initialChartName,p=e.linkToGo,g=e.contextToGo,b=e.loaded,y=void 0===b||b,v=(0,r.uK)(),_=(0,a.sm)(),w=(0,o.UG)(),k=(0,i.N6)(),T=(0,c.An)(),x=T.setMenuGroupId,S=T.setSubMenuId,C=function(){var e=m();return(0,l.Zl)(u(e))}(),P=(0,s.useRef)(h);(0,s.useLayoutEffect)((function(){y&&_&&p&&!P.current&&_.goToLink(p)}),[_,p]),(0,s.useLayoutEffect)((function(){y&&_&&g&&!P.current&&_.goToElement(g)}),[_,g]);var M=(0,s.useCallback)((function(e){x(e),C(e),f(v,'[data-sidebar="true"] [data-sidebar-menugroupid="'.concat(e,'"]')),e&&w[e]&&d(w[e].link)}),[w]),q=(0,s.useCallback)((function(e){S(e),e in k&&(x(k[e].menuGroupId),f(v,'[data-sidebar="true"] [data-sidebar-submenuid="'.concat(e,'"]')),d(k[e].link))}),[k]);return(0,s.useLayoutEffect)((function(){y&&P.current&&_&&_.goToLink(h)&&(P.current=null)}),[_]),{setActiveMenuGroupId:M,setActiveSubMenuId:q,onMenuGroupClick:(0,s.useCallback)((function(e,n){n&&n.preventDefault(),_.goToElement(e),t(e)}),[_]),onSubMenuClick:(0,s.useCallback)((function(e,t,s){s&&s.preventDefault(),_.goToElement(t),n(e,t)}),[_])}}},22962:function(e,t,n){n.d(t,{Z:function(){return C}});var s=n(29439),r=n(67294),a=n(57509),o=n(65351),i=n(16645),c=n(7693),l=n(92903),d=n(62200),h=n(74059),u=n(9058),m=n(29748),p=n(37518),f=n(5934),g=n(97723),b=n(47133),y=n(78266),v=n(59112),_=n(46667),w=n(33427),k=n(79619),T=n(67336),x=(0,r.memo)((function(e){var t=e.id,n=e.spaceId,o=e.roomId,i=e.chartId,c=e.name,l=(0,_.Z)(),d=(0,s.Z)(l,4),m=d[0],f=d[2],y=d[3],v=(0,b.LJ)(t),x=v.fullyLoaded,S=v.processing,C=(0,T.O9)(t,{onSuccess:function(){(0,w.FR)("Chart added to ".concat(c)),y()}}),P=m&&x,M=(0,h.vu)(n,"slug"),q=(0,p.tE)(o,"slug"),I=(0,g.jN)(t),E=(0,k.Z)(m&&t,{spaceId:n,spaceSlug:M,roomId:o,roomSlug:q}),D=(0,u.e)();(0,r.useEffect)((function(){if(!E&&P){var e=D.getNode({id:i}).getAttributes(),t=e.aggregationMethod,n=e.selectedDimensions,s=e.groupBy,r=e.groupByLabel,a=e.groupingMethod,o=e.chartType,c=e.selectedLabels,l=e.nodesScope,d=e.selectedInstances,h=e.selectedNodes,u=e.contextScope;I(u,{aggregationMethod:t,selectedDimensions:n,groupBy:s,groupByLabel:r,groupingMethod:a,chartType:o,selectedLabels:c,selectedNodes:h,selectedInstances:d,nodesScope:l},(function(){return setTimeout(C,100)}))}}),[P,E]);var L=m&&(S||E);return r.createElement(a.Button,{icon:"plus",onClick:f,isLoading:L,disabled:L})})),S=function(e){var t=e.spaceId,n=e.roomId,s=e.chartId;return[{id:"name",accessorKey:"name",header:"Dashboards",cell:function(e){var t=e.getValue;return r.createElement(a.Flex,{alignItems:"center",gap:3},r.createElement(a.Icon,{name:"dashboards",size:"small",color:"text"}),r.createElement(a.Text,null,t()))}},{id:"plusButton",accessorKey:"id",header:"",cell:function(e){var a=e.getValue,o=e.row;return r.createElement(x,{id:a(),spaceId:t,roomId:n,chartId:s,name:o.original.name})}}]},C=function(e){var t=e.onClose;(0,m.Z)();var n=(0,p.UL)(),_=(0,p.Hm)("name"),w=(0,h.th)(),k=(0,o.Z)("addToDashboardModal"),T=(k.params,k.params.chartId),x=(0,f.ie)(),C=(0,b.QF)(x),P=(0,r.useState)(""),M=(0,s.Z)(P,2),q=M[0],I=M[1],E=(0,r.useState)(!1),D=(0,s.Z)(E,2),L=D[0],N=D[1],O=q.length>0,R=(0,g.Di)(w,n,{onSuccess:t}),A=(0,u.e)().getNode({id:T}),F=(0,r.useMemo)((function(){return S({spaceId:w,roomId:n,chartId:T})}),[w,n,T]),U=function(){if(A){var e=A.getAttributes(),t=e.aggregationMethod,n=e.selectedDimensions,s=e.groupBy,r=e.groupByLabel,a=e.groupingMethod,o=e.chartType,i=e.selectedLabels,c=e.nodesScope,l=e.selectedInstances,d=e.selectedNodes,h=e.contextScope;R(q,h,{aggregationMethod:t,selectedDimensions:n,groupBy:s,groupByLabel:r,groupingMethod:a,chartType:o,selectedLabels:i,nodesScope:c,selectedInstances:l,selectedNodes:d})}},B=(0,f.L)();return r.createElement(i.u6,{right:!0,closeOnEsc:!0,closeOnOverlayClick:!0,onClose:t},r.createElement(c.x,{onClose:t,title:"Add to Dashboard"}),r.createElement(l.B,null,"Select Dashboard"),r.createElement(i.TZ,{gap:3},r.createElement(a.H4,null,"Add chart to one or more dashboards from the ",_),B?r.createElement(a.NetdataTable,{dataColumns:F,data:C}):r.createElement(y.Z,{title:"Loading dashboards..."}),r.createElement(a.H4,null,"Create a new dashboard and add ",T," to it"),r.createElement(v.Z,{value:q,label:"Name",onChange:function(e){return I(e.target.value)},isValid:L,setIsValid:N,isDirty:O,instantFeedback:"all",onKeyDown:function(e){return e.keyCode===d.DV&&L&&U}}),r.createElement(a.Button,{label:"Create & add",onClick:U,disabled:!A||!q})))}},59112:function(e,t,n){var s=n(87462),r=n(29439),a=n(93433),o=n(45987),i=(n(92222),n(67294)),c=n(57509),l=n(30688),d=n(71752),h=n(87574),u=["value","isValid","setIsValid","onChange","label","validators","fieldMessage","fieldIndicator"],m="Dashboard name cannot exceed ".concat(h.x," characters"),p=function(e){var t=e.length<=h.x;return(0,l.f)(t,m)};t.Z=function(e){var t=e.value,n=e.isValid,h=e.setIsValid,m=e.onChange,f=e.label,g=e.validators,b=void 0===g?[]:g,y=e.fieldMessage,v=(e.fieldIndicator,(0,o.Z)(e,u)),_=(0,l.A)([p].concat((0,a.Z)(b))),w=(0,i.useState)(""),k=(0,r.Z)(w,2),T=k[0],x=k[1];return(0,i.useEffect)((function(){var e=_(t),s=e.isValid,r=(0,d.T)(e);!n&&s?h(!0):n&&!s&&h(!1),x(r||"")}),[n,h,_,t]),i.createElement(c.TextInput,(0,s.Z)({label:f||" ",name:"userName",placeholder:"Enter dashboard name",value:t,onChange:m,fieldMessage:y,error:!n&&T},v))}},87574:function(e,t,n){n.d(t,{X:function(){return a},x:function(){return r}});var s=n(46189),r=50,a="".concat(s.Z.assetsBaseURL,"/img/new-dashboard.svg")},274:function(e,t,n){n.d(t,{Q5:function(){return l},Sz:function(){return u},fQ:function(){return d},lh:function(){return m}});var s=n(4942),r=n(45987),a=(n(21249),n(57640),n(9924),n(92222),n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),o=["accountID"];function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var c=function(e){return e.map((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({id:e.accountID},(0,r.Z)(e,o))}))},l=function(e){return a.Z.get("/api/v2/spaces/".concat(e,"/members"),{allow401:!0,transform:c})},d=function(e,t){return a.Z.get("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/members"),{allow401:!0,transform:c})},h=function(e){var t=e.account_ids;return"account_ids=".concat(t.join(","))},u=function(e,t){return a.Z.delete("/api/v1/spaces/".concat(e,"/members"),{paramsSerializer:h,params:{account_ids:t}})},m=function(e,t,n){return a.Z.patch("/api/v1/spaces/".concat(e,"/members/").concat(t),n)}},36560:function(e,t,n){n.d(t,{H:function(){return A},Z:function(){return F}});var s=n(87462),r=n(29439),a=n(67294),o=n(57509),i=n(46667),c=n(37518),l=n(86242),d=n(28350),h=n(36459),u=(n(19601),n(21249),n(57640),n(9924),n(60677)),m=n(94666),p=n(31203),f=n(52428),g=(0,u.default)(o.Flex).withConfig({displayName:"adminsList__RowFlex",componentId:"sc-1pb9ob2-0"})(["&:hover{background:",";}"],(0,o.getColor)("elementBackground")),b=(0,u.default)(o.Icon).withConfig({displayName:"adminsList__StyledIcon",componentId:"sc-1pb9ob2-1"})(["cursor:pointer;"]),y=function(e){var t=Object.assign({},((0,h.Z)(e),e)),n=(0,m.nP)();return a.createElement(o.Flex,(0,s.Z)({column:!0,border:{side:"top",color:"borderSecondary"},flex:"grow",padding:[1,0],height:{max:50},overflow:"auto"},t),n.map((function(e){return a.createElement(g,{flex:{grow:0,shrink:0},key:e.id,padding:[0,4],justifyContent:"between",height:10,alignItems:"center"},a.createElement(o.Flex,{key:e.id,gap:2,alignItems:"center"},a.createElement(p.Z,{src:e.avatarURL,title:e.name}),a.createElement(o.Text,null,e.name),a.createElement(o.Text,{color:"textLite"},e.email)),a.createElement(b,{onClick:(0,f.J)(e.email,{text:"Admin email address copied to your clipboard."}),size:"small",name:"copy",color:"primary"}))})))},v=(0,u.default)(o.Icon).withConfig({displayName:"styled__StyledWarningIcon",componentId:"sc-q96c2w-0"})(["border-radius:50%;overflow:hidden;background:",";"],(0,o.getColor)(["neutral","white"])),_=(0,u.default)(o.Icon).withConfig({displayName:"styled__StyledCheckmarkIcon",componentId:"sc-q96c2w-1"})(["border-radius:50%;overflow:hidden;background:",";padding:6px;width:24px;height:24px;"],(0,o.getColor)("elementBackground")),w=(0,u.default)(o.Icon).withConfig({displayName:"styled__StyledIcon",componentId:"sc-q96c2w-2"})(["transform:",";"],(function(e){return e.closed?"none":"rotate(180deg)"})),k=n(45987),T=n(91008),x=["gaPrefix"],S=function(e){var t=e.gaPrefix,n=void 0===t?"onboarding":t,r=(0,k.Z)(e,x);return a.createElement(o.Flex,(0,s.Z)({column:!0,gap:1,color:"textDescription"},r),a.createElement(o.Text,null,"Need help?"),a.createElement(o.Text,null,"Use our"," ",a.createElement(T.Z,{href:"https://community.netdata.cloud/",target:"_blank","data-ga":"".concat(n,"::click-forums::allpages")},"forums")," ","or public"," ",a.createElement(T.Z,{href:"https://discord.gg/mPZ6WZKKG2",target:"_blank","data-ga":"".concat(n,"::click-discord::allpages")},"discord channel")))},C=n(72911),P=n(91268),M=n(73531),q=n(33335),I=n(46189),E=n(89250),D=n(92432),L=I.Z.demoSlug,N=(0,u.default)(o.Button).withConfig({displayName:"headerButtons__StyledButton",componentId:"sc-11mwk9m-0"})(["&&{padding:2px 16px;font-size:12px;height:auto;width:auto;min-width:96px;}"]),O=function(){var e=(0,E.s0)();return a.createElement(o.Flex,{gap:4},a.createElement(T.Z,{href:"https://learn.netdata.cloud/docs/architecture/deployment-strategies",rel:"noopener noreferrer",target:"_blank"},"Possible Deployment Strategies"),!window.envSettings.onprem&&a.createElement(N,{"data-ga":"no-nodes-view::click-demo::no-nodes-header",flavour:"default",onClick:function(t){e("/spaces/".concat(L)),(0,D.L)("no-nodes-view","click-demo","no-nodes-header"),t.preventDefault()},label:"Live Demo"}))},R=n(8741),A=function(){return a.createElement(a.Fragment,null,a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-memberSection",gap:1},a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-memberHeader",gap:4,height:10,padding:[0,3]},a.createElement(_,{"data-testid":"noNodesView-memberHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.Flex,{justifyContent:"between",flex:!0},a.createElement(o.H3,{color:"textDescription","data-testid":"noNodesView-memberHeaderText"},"You are a member and only space admins can connect new nodes"),a.createElement(O,null))),a.createElement(o.Flex,{"data-testid":"noNodesView-memberDescription",padding:[0,0,2,13]},a.createElement(o.Text,{color:"textDescription","data-testid":"noNodesView-memberDescriptionText"},"Please contact anyone from the list in order to do so"))),a.createElement(o.Flex,{"data-testid":"noNodesView-memberAdminsListSection",padding:[0,0,0,12]},a.createElement(y,{"data-testid":"noNodesView-memberAdminsList"})))},F=function(e){var t=e.videoId,n=(0,c.UL)(),h=(0,l.Z)(n),u=(0,r.Z)(h,2),m=u[0],p=u[1],f=p.onAddNodes,g=p.selectedNodes,b=m.claimedNodeIds.length>0,y=(0,i.Z)(!0),k=(0,r.Z)(y,2),T=k[0],x=k[1],I=(0,q.gI)("node:Create");return a.createElement(P.Z,{column:!1,"data-testid":"noNodesViewPage",gap:12,padding:[6],margin:[0,0,8],rightBar:a.createElement(M.Z,null),overflow:"auto"},a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-cmdSection",flex:{grow:0,shrink:1},width:"100%",gap:2},a.createElement(o.Flex,{"data-testid":"noNodesView-warningBanner",alignItems:"center",background:"warningBackground",gap:4,height:{min:10},padding:[0,3],round:!0},a.createElement(v,{"data-testid":"noNodesView-warningBannerIcon",name:"exclamation",color:"warning"}),a.createElement(o.Text,{color:"bright","data-testid":"noNodesView-warningBannerText"},"You have no nodes.")),I&&a.createElement(a.Fragment,null,a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-adminSection",justifyContent:"between",onClick:b?x:null,cursor:b?"pointer":null},a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-adminHeader",gap:4,height:10,padding:[0,3]},a.createElement(_,{"data-testid":"noNodesView-adminHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.H3,{"data-testid":"noNodesView-adminHeaderText",color:"textDescription"},"Connect new nodes")),a.createElement(o.Flex,{gap:4,alignItems:"center"},a.createElement(O,null),b&&a.createElement(w,{closed:!T,"data-testid":"noNodesView-adminClaimedNodesIcon",name:"chevron_down",color:"textLite"}))),a.createElement(o.Collapsible,{"data-testid":"noNodesView-adminClaimNodesContainer",open:T},a.createElement(o.Flex,{"data-testid":"noNodesView-adminClaimNodes",padding:[0,0,0,12]},a.createElement(R.Z,null)))),!I&&a.createElement(A,null),b&&a.createElement(a.Fragment,null,a.createElement(o.Flex,{alignItems:"center","data-testid":"noNodesView-availableNodesHeader",gap:4,height:10,padding:[0,3]},a.createElement(_,{"data-testid":"noNodesView-availableNodesHeaderIcon",name:"checkmark_s",color:"textLite"}),a.createElement(o.H3,{color:"textDescription","data-testid":"noNodesView-availableNodesHeaderText"},"Add already available nodes")),a.createElement(o.Flex,{height:"100%","data-testid":"noNodesView-availableNodesContainer",padding:[0,0,0,12]},a.createElement(d.Z,(0,s.Z)({"data-testid":"noNodesView-availableNodesList"},m,{onAddNodes:f,canAddNodes:!!g.length,padding:[2,0,8]}))))),t&&a.createElement(o.Flex,{column:!0,"data-testid":"noNodesView-videoSection",flex:{shrink:0,grow:0}},a.createElement(C.Z,{"data-testid":"noNodesView-onboardingVideo",height:296,width:520,videoId:t}),a.createElement(S,{"data-testid":"noNodesView-needHelp",padding:[8,0]})))}},73531:function(e,t,n){n.d(t,{Z:function(){return E}});var s,r=n(87462),a=n(4942),o=n(45987),i=(n(21249),n(57640),n(9924),n(67294)),c=n(57509),l=n(54316),d=n(29814),h=n(72843),u=n(36459),m=n(29439),p=(n(19601),n(46667)),f=n(65211),g=n(97945),b=n(29400),y=n(31509),v=n(50308),_=n.n(v),w=n(3581),k=n(62200),T="Dismissible",x="Collapsed",S={info:{iconName:"information",color:{active:"success",notActive:"textLite"},width:"19px",dataTestId:"nodeInfo-alertsTab",Content:b.Z,label:"Info"},alerts:{iconName:"alarm_bell",color:{active:"success",notActive:"textLite"},width:"14px",Content:y.Z,dataTestId:"nodeInfo-alertsTab",label:"Alerts"}},C=(s={},(0,a.Z)(s,T,(function(){var e=(0,f.d)({resetOnUnmount:!0}),t=(0,m.Z)(e,3);return{isOpen:!!t[0],onClose:t[2],isDismissible:!0,onToggle:_()}})),(0,a.Z)(s,x,(function(e){var t=e.defaultCollapsedState,n=e.nodeId,s=(0,p.Z)(t),r=(0,m.Z)(s,3),o=r[0],c=r[1],l=r[2],d=(0,w.j)(k.G1,n),h=(0,m.Z)(d,2),u=h[0],f=h[1],g=(0,i.useRef)(u),b=(0,i.useCallback)((function(){o||f((0,a.Z)({},n,g.current)),c()}),[o]);return(0,i.useEffect)((function(){o||(g.current=u,f((0,a.Z)({},n,0)))}),[o]),(0,i.useEffect)((function(){0!==u&&l()}),[u]),{isOpen:o,onClose:_(),isDismissible:!1,onToggle:b}})),s),P=function(e){var t=e.showCollapsed,n=e.tabs,s=void 0===n?S:n,r=e.defaultCollapsedState,a=void 0===r||r,o=(0,f.d)({resetOnUnmount:!0}),i=(0,m.Z)(o,1)[0],c=(0,g.Ne)([i]),l=(0,m.Z)(c,1)[0],d=t?x:T,h=Object.assign({},((0,u.Z)(s),s)),p=C[d]({defaultCollapsedState:a,nodeId:l.id}),b=p.isOpen,y=p.onClose,v=p.isDismissible,_=p.onToggle,P=(0,w.j)(d===x?k.G1:k.$9,l.id),M=(0,m.Z)(P,2);return{isOpen:b,onClose:y,isDismissible:v,onToggle:_,availableTabs:h,node:l,selectedTab:M[0],setSelectedTab:M[1],nodeIds:[l.id]}},M=["showCollapsed","tabsToShow"],q=function(e){var t=e.isActive,n=e.color,s=e.width,r=e.name;return i.createElement(c.Icon,{name:r,color:t?n.active:n.notActive,width:s})},I=function(e){var t=e.showCollapsed,n=e.tabsToShow,s=void 0===n?["info","alerts"]:n,u=(0,o.Z)(e,M),m=P({showCollapsed:t}),p=m.isOpen,f=m.onToggle,g=m.onClose,b=m.node,y=m.availableTabs,v=m.selectedTab,_=m.setSelectedTab,w=m.nodeIds;return(0,i.useLayoutEffect)((function(){var e=setTimeout((function(){return window.dispatchEvent(new Event("resize"))}),400);return function(){return clearTimeout(e)}}),[p]),i.createElement(l.ZP,{collapsedComponent:t&&i.createElement(d.Z,{onClickTab:function(e){f(),_((0,a.Z)({},b.id,e))},tabsToShow:s,availableTabs:y}),isOpen:p,onClose:g,onToggle:f,header:t?i.createElement(h.Z,{onToggle:f,isOpen:p,title:"Single Node"}):i.createElement(l.Dh,{isOpen:p,onClose:g,node:b})},i.createElement(c.Tabs,{selected:v,onChange:function(e){return _((0,a.Z)({},b.id,e))},noDefaultBorder:!0,column:!0,overflow:"hidden",height:"100%"},s.map((function(e,t){var n=y[e],s=n.iconName,a=n.color,o=n.width,l=n.Content,d=n.dataTestId;return i.createElement(c.Tab,{"data-testid":d,maxWidth:"50%",key:s,small:!0,label:i.createElement(q,{isActive:v===t,name:s,color:a,width:o})},i.createElement(c.Flex,{column:!0,overflow:{vertical:"auto"},height:"calc(100% - 60px)",position:"relative",gap:4,padding:[1,3]},i.createElement(l,(0,r.Z)({nodeIds:w,node:b},u))))}))))},E=(0,i.memo)(I)},31509:function(e,t,n){n.d(t,{Z:function(){return y}});var s=n(29439),r=n(93433),a=(n(2707),n(21249),n(57640),n(9924),n(67294)),o=n(57509),i=n(77796),c=n(12008),l=n(82351),d=(n(92222),n(60677)),h=n(89405),u=n(50358),m=(0,d.default)(o.TextSmall).withConfig({displayName:"alertItem__ClickableTextSmall",componentId:"sc-10tk55c-0"})(["cursor:pointer;transition:opacity 0.3s ease-in-out;&:hover{opacity:0.7;}"]),p=(0,d.default)(o.Flex).withConfig({displayName:"alertItem__StyledFlex",componentId:"sc-10tk55c-1"})(["&:last-child{border:none;}"]),f=function(e){var t=e.alert,n=e.onAlertClick,s=t.value,r=t.instance,i=t.lastStatusChange,c=t.id,l=t.status,d=t.units,f=t.name,g=(0,h.rA)(),b=g.localeTimeString,y=g.localeDateString,v=(0,a.useMemo)((function(){var e=new Date(1e3*i);return isNaN(e.valueOf())?"":"".concat(y(e,{long:!1})," ").concat(b(e,{secs:!1}))}),[i,b,y]),_=(0,a.useCallback)((function(){n({alertId:c})}),[]);return a.createElement(p,{column:!0,padding:[4,0],gap:2,border:{color:"border",side:"bottom"},"data-testid":"alertItem","data-test-name":"alertItem-".concat(f)},a.createElement(m,{wordBreak:"break-all",strong:!0,onClick:_,"data-testid":"alertItem-chartId"},r),a.createElement(m,{onClick:_,"data-testid":"alertItem-alertName"},f),a.createElement(o.Flex,{alignItems:"center",justifyContent:"between",margin:[1,0,0]},a.createElement(u.Z,{loaded:!0,status:l,units:d,value:s,flex:!1,"data-testid":"alertItem-alertValuePill"}),a.createElement(o.TextMicro,{color:"textLite","data-testid":"alertItem-alertDate"},v)))},g=n(61294),b=function(e,t){return e.status===t.status?0:"critical"===e.status?-1:1},y=function(e){var t=e.nodeIds,n=(0,i.rw)(t),d=(0,c.ER)(n),h=(0,a.useMemo)((function(){return(0,r.Z)(d).sort(b)}),[d]),u=(0,g.Z)(),m=(0,s.Z)(u,4),p=m[0],y=m[1],v=m[3],_=d.length?"(".concat(d.length,")"):"";return a.createElement(o.Flex,{width:"100%",column:!0,overflow:"hidden",padding:[2,0]},a.createElement(o.Flex,{column:!0,gap:5},a.createElement(l.Z,{content:"Currently Active alerts",align:"bottom"},a.createElement(o.TextBig,{strong:!0,"data-testid":"nodeAlertsView-activeAlerts-header"},"Alerts ",_)),!d.length&&a.createElement(o.Flex,{column:!0,gap:8,padding:[0,5],"data-testid":"nodesAlertsView-blankSlate",alignItems:"center"},a.createElement(o.Icon,{name:"checkmark",width:"90px",height:"90px"}),a.createElement(o.H4,{textAlign:"center"},"This node has no active alerts, you are all good!"))),a.createElement(o.Flex,{column:!0,overflow:{vertical:"auto"}},h.map((function(e){return a.createElement(f,{key:e.id,alert:e,onAlertClick:y})}))),p&&v)}},29400:function(e,t,n){n.d(t,{Z:function(){return x}});var s=n(29439),r=n(67294),a=n(57509),o=n(97945),i=n(76184),c=n(32586),l=n(89050),d=function(e){var t=e.node.labels||{},n=t._cloud_instance_region,s=t._cloud_instance_type,a=t._cloud_provider_type;return(0,l.O2)(n)&&(0,l.O2)(s)&&(0,l.O2)(a)?null:r.createElement(i.Z,{name:"Cloud Instance Info"},r.createElement(c.Z,{iconName:"ipNetworking",name:"Cloud provider",size:"small",testId:"rightBar-nodeInfoContent-cloudProvider"},(0,l.MC)(a)),r.createElement(c.Z,{iconName:"universe",name:"Cloud region",size:"small",testId:"rightBar-nodeInfoContent-cloudRegion"},(0,l.MC)(n)),r.createElement(c.Z,{iconName:"disk",name:"Instance type",size:"small",testId:"rightBar-nodeInfoContent-instanceType"},(0,l.MC)(s)))},h=n(83925),u=n(11389),m=function(e){var t=e.node,n=(0,l.Q5)(t.state);return r.createElement(i.Z,{link:"https://learn.netdata.cloud/docs/agent/aclk",name:"Connection"},r.createElement(c.Z,{size:"small",name:"Status",iconName:"integrations",testId:"rightBar-connectionGroup-connectionStatus"},r.createElement(u.Z,{rawState:n})),r.createElement(c.Z,{size:"small",name:"Netdata Agent",iconName:"netdata",testId:"rightBar-connectionGroup-agentVersion"},t.version),t.updateSeverity&&r.createElement(c.Z,{size:"small",name:"Update Status",iconName:"update",testId:"rightBar-connectionGroup-agentVersion"},r.createElement(h.Z,{name:t.name,os:t.os.id,container:t.hw.container,warningLevel:t.updateSeverity,labels:t.labels||{},version:t.version,text:t.updateSeverity})))},p=(n(21249),n(57640),n(9924),n(4942));n(85827),n(41539),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,p.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=[{name:"MySQL",title:"MySQL",iconName:"serviceMySQL",logoFilename:"mysql.svg",category:"Databases",collectors:["python.d.plugin:mysql","go.d.plugin:mysql"],contexts:["mysql.queries","mysql.net","mysql.connections"],priority:1},{name:"MariaDB",title:"MariaDB",iconName:"serviceMariaDB",logoFilename:"mariadb.svg",category:"Databases",collectors:["python.d.plugin:mysql","go.d.plugin:mysql"],contexts:["mysql.queries","mysql.net","mysql.connections"],priority:2},{name:"Oracle Database",title:"Oracle Database",iconName:"osOracle",logoFilename:"oracle.svg",category:"Databases",collectors:["python.d.plugin:oracledb"],contexts:["oracledb.session_count","oracledb.physical_disk_read_writes","oracledb.tablespace_usage_in_percent"],priority:3},{name:"PostgreSQL",title:"PostgreSQL",iconName:"servicePostgreSQL",logoFilename:"postgresql.svg",category:"Databases",collectors:["python.d.plugin:postgres"],contexts:["postgres.checkpointer","postgres.archive_wal","postgres.db_size"],priority:4},{name:"MongoDB",title:"MongoDB",iconName:"serviceMongoDB",logoFilename:"mongodb.svg",category:"Databases",collectors:["python.d.plugin:mongodb"],contexts:["mongodb.active_clients","mongodb.read_operations","mongodb.write_operations"],priority:5},{name:"ElasticSearch",title:"ElasticSearch",iconName:"serviceElasticSearch",logoFilename:"elasticsearch.svg",category:"Databases",collectors:["python.d.plugin:elasticsearch"],contexts:["elastic.search_performance_total","elastic.index_performance_total","elastic.index_segments_memory"],priority:6},{name:"CouchDB",title:"CouchDB",iconName:"serviceCouchDB",logoFilename:"couchdb.svg",category:"Databases",collectors:["python.d.plugin:couchdb"],contexts:["couchdb.activity","couchdb.response_codes"],priority:7},{name:"Proxy SQL",title:"Proxy SQL",iconName:"serviceProxySQL",logoFilename:"proxysql.svg",category:"Databases",collectors:["python.d.plugin:proxysql"],contexts:["proxysql.questions","proxysql.pool_status","proxysql.pool_overall_net"],priority:8},{name:"Redis",title:"Redis",iconName:"serviceRedis",logoFilename:"redis.svg",category:"Databases",collectors:["python.d.plugin:redis"],contexts:["redis.operations","redis.net","redis.connections"],priority:9},{name:"MemCached",title:"MemCached",iconName:"serviceMemCached",logoFilename:"memcached.svg",category:"Databases",collectors:["python.d.plugin:memcached"],contexts:["memcached.cache","memcached.net","memcached.connections"],priority:10},{name:"RethinkDB",title:"RethinkDB",iconName:"serviceRethinkDB",logoFilename:"rethinkdb.svg",category:"Databases",collectors:["python.d.plugin:rethinkdbs"],contexts:["rethinkdb.cluster_queries","rethinkdb.cluster_clients_active","rethinkdb.cluster_connected_servers"],priority:11},{name:"Solr",title:"Solr",iconName:"serviceSolr",logoFilename:"solr.svg",category:"Databases",collectors:["go.d.plugin:solr"],contexts:["solr.search_requests","solr.update_requests"],priority:12},{name:"RabbitMQ",title:"RabbitMQ",iconName:"serviceRabbitMQ",logoFilename:"rabbitmq.svg",category:"Messaging",collectors:["python.d.plugin:rabbitmq","go.d.plugin:rabbitmq"],contexts:["rabbitmq.queued_messages","rabbitmq.erlang_run_queue"],priority:1},{name:"Beanstalkd",title:"Beanstalkd",iconName:"serviceBeanstalk",logoFilename:"beanstalkd.svg",category:"Messaging",collectors:["python.d.plugin:beanstalk"],contexts:["beanstalk.total_jobs_rate","beanstalk.connections_rate","beanstalk.current_tubes"],priority:2},{name:"Apache",title:"Apache",iconName:"serviceApache",logoFilename:"apache.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:apache","go.d.plugin:apache"],contexts:["apache.requests","apache.connections","apache.net"],priority:1},{name:"nginx",title:"nginx",iconName:"serviceNginx",logoFilename:"nginx.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:nginx","go.d.plugin:nginx"],contexts:["nginx.requests","nginx.connections"],priority:2},{name:"nginx+",title:"nginx+",iconName:"serviceNginxPlus",logoFilename:"nginx-plus.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:nginx_plus"],contexts:["nginx_plus.requests_total","nginx_plus.connections_statistics"],priority:3},{name:"lighthttpd",title:"lighthttpd",iconName:"serviceLighthttpd",logoFilename:"lighthttpd.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:lighttpd","go.d.plugin:lighttp"],contexts:["lighttpd.requests","lighttpd.net"],priority:4},{name:"lighthttpd2",title:"lighthttpd2",iconName:"serviceLighthttpd2",logoFilename:"lighthttpd.svg",category:"Web, Proxies, LBs, Streaming",collectors:["go.d.plugin:lighttpd2"],contexts:["lighttpd2.requests","lighttpd2.traffic"],priority:5},{name:"LiteSpeed",title:"LiteSpeed",iconName:"serviceLiteSpeed",logoFilename:"litespeed.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:litespeed"],contexts:["litespeed.requests","litespeed.requests_processing"],priority:6},{name:"Tomcat",title:"Tomcat",iconName:"serviceApacheTomcat",logoFilename:"tomcat.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:tomcat"],contexts:["tomcat.accesses","tomcat.processing_time","tomcat.bandwidth"],priority:7},{name:"PHP FPM",title:"PHP FPM",iconName:"servicePhpFpm",logoFilename:"php-fpm.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:phpfm"],contexts:["phpfpm.performance","phpfpm.requests","phpfpm.connections"],priority:8},{name:"HAproxy",title:"HAproxy",iconName:"serviceHAProxy",logoFilename:"haproxy.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:haproxy"],contexts:["haproxy_f.scur","haproxy_f.bin","haproxy_f.bout"],priority:9},{name:"Squid",title:"Squid",iconName:"serviceSquid",logoFilename:"squid.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:squid"],contexts:["squid.clients_requests","squid.clients_net"],priority:10},{name:"Traefik",title:"Traefik",iconName:"serviceTraefik",logoFilename:"traefik.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:traefik"],contexts:["traefik.response_codes"],priority:11},{name:"Varnish",title:"Varnish",iconName:"serviceVarnish",logoFilename:"varnish.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:varnish"],contexts:["varnish.session_connection","varnish.client_requests"],priority:12},{name:"IPVS",title:"IPVS",iconName:"serviceIPVS",logoFilename:"load-balancer.svg",category:"Web, Proxies, LBs, Streaming",collectors:["proc.plugin:/proc/net/ip_vs_stats"],contexts:["ipvs.sockets","ipvs.packets","ipvs.net"],priority:13},{name:"Web Log",title:"Web Log",iconName:"serviceWebLog",logoFilename:"log-file.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:web_log","go.d.plugin:web_log"],contexts:["web_log.response_codes","web_log.bandwidth"],priority:14},{name:"IPFS",title:"IPFS",iconName:"serviceIPFS",logoFilename:"ipfs.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:ipfs"],contexts:["ipfs.bandwidth","ipfs.peers"],priority:15},{name:"IceCast Media Streaming",title:"IceCast Media Streaming",iconName:"serviceIceCast",logoFilename:"icecast.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:icecast"],contexts:["icecast.listeners"],priority:16},{name:"RetroShare",title:"RetroShare",iconName:"serviceRetroShare",logoFilename:"retroshare.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:retroshare"],contexts:["retroshare.bandwidth","retroshare.peers"],priority:17},{name:"HTTP Check",title:"HTTP Check",iconName:"serviceHTTPCheck",logoFilename:"server-connection.svg",category:"Web, Proxies, LBs, Streaming",collectors:["python.d.plugin:httpcheck","go.d.plugin:httpcheck"],contexts:["httpcheck.responsetime","httpcheck.status"],priority:18},{name:"x509 Check",title:"x509 Check",iconName:"serviceX509Check",logoFilename:"data-encryption.svg",category:"Web, Proxies, LBs, Streaming",collectors:["go.d.plugin:x509check"],contexts:["x509check.time_until_expiration"],priority:19}].reduce((function(e,t){return g(g({},e),{},(0,p.Z)({},t.name,t))}),{}),y=function(e){var t;return(null===(t=b[e])||void 0===t?void 0:t.iconName)||"services"},v=function(e){var t,n=e.node;return null!==(t=n.services)&&void 0!==t&&t.length?r.createElement(i.Z,{link:"https://learn.netdata.cloud/docs/agent/collectors/collectors#service-and-application-collectors",name:"Services"},n.services.map((function(e){return r.createElement(c.Z,{size:"small",key:e,iconName:y(e),name:e,testId:"rightBar-ServicesGroup-service-".concat(e)})}))):null},_=(n(23157),function(e){var t=e.node,n=(void 0===t?{}:t).labels,s=void 0===n?{}:n,a=Object.keys(s).filter((function(e){return!e.startsWith("_")}));return r.createElement(i.Z,{link:"https://learn.netdata.cloud/guides/using-host-labels",name:"Host labels",isEnabled:a.length>0,noDataLabel:"No Data"},a.length>0&&a.map((function(e){return r.createElement(c.Z,{size:"small",key:e,name:e,testId:"rightBar-hostLabelsGroup-label"},s[e])})))}),w=(n(38862),n(52428)),k=function(e){var t=e.node;return r.createElement(i.Z,{name:"Files"},r.createElement(a.Flex,{gap:1,padding:[0,1],alignItems:"center"},r.createElement(a.Box,{sx:{fontWeight:"500",letterSpacing:"1px"},as:a.Text,color:"textLite"},"{;}"),r.createElement(a.TextSmall,null,"View node info in"),r.createElement(a.Flex,{cursor:"pointer",gap:1,onClick:(0,w.J)(JSON.stringify(t),{text:"JSON copied to clipboard"})},r.createElement(a.TextSmall,{color:"primary"},"json"),r.createElement(a.Icon,{color:"primary",size:"small",name:"copy"}))))},T=(0,r.memo)(k),x=function(e){var t,n=e.nodeIds,h=(0,o.Ne)(n),u=(0,s.Z)(h,1)[0],p=(0,l.jo)(u.container,u.virtualization);return r.createElement(a.Flex,{column:!0,gap:1,overflow:{horizontal:"hidden",vertical:"auto"},padding:[2,1,2,0],width:"100%"},r.createElement(a.TextBig,{strong:!0},"Info"),r.createElement(a.Flex,{column:!0,padding:[2,0,3],border:{side:"bottom",color:"borderSecondary"}},false,r.createElement(a.TextSmall,{"data-testid":"rightBar-nodeInfoContent-hostname",strong:!0},"Hostname: ",u.name)),r.createElement(m,{node:u}),r.createElement(d,{node:u}),r.createElement(i.Z,{name:"System info"},r.createElement(c.Z,{size:"small",name:"Type",iconName:"virtualization",testId:"rightBar-nodeInfoContent-type"},r.createElement(a.Pill,{hollow:!0,icon:p.icon,iconSize:p.iconSize,flavour:"neutral"},p.label)),r.createElement(c.Z,{size:"small",name:"O/S version",iconName:"database",testId:"rightBar-nodeInfoContent-osVersions"},(0,l.cB)(u.os.nm,u.os.v,", ")),r.createElement(c.Z,{iconName:"viewSingleNode",name:"Architecture",size:"small",testId:"rightBar-nodeInfoContent-architecture"},(0,l.MC)(u.hw.architecture)),!(null===(t=u.os)||void 0===t||!t.kernel)&&r.createElement(c.Z,{size:"small",name:"Kernel",iconName:"metrics_explorer",testId:"rightBar-nodeInfoContent-kernel"},(0,l.cB)(u.os.kernel.nm,u.os.kernel.v,", ")),r.createElement(c.Z,{size:"small",name:"CPU",iconName:"cpu",testId:"rightBar-nodeInfoContent-cpu"},(0,l.ys)(u.hw.cpuFrequency)," (",(0,l.MC)(u.hw.cpus,1===u.hw.cpus?"Core":"Cores"),")"),r.createElement(c.Z,{size:"small",name:"Memory",iconName:"ram",testId:"rightBar-nodeInfoContent-ram"},(0,l.MC)((0,l.yo)(u.hw.memory),"RAM")),r.createElement(c.Z,{size:"small",name:"Hard disk size",iconName:"disk",testId:"rightBar-nodeInfoContent-disk"},(0,l.yo)(u.hw.diskSpace))),r.createElement(_,{node:u}),r.createElement(v,{node:u}),r.createElement(T,{node:u}))}},65211:function(e,t,n){n.d(t,{d:function(){return i}});var s=n(93433),r=(n(92222),n(4480)),a=n(77823),o=(0,r.cn)({key:"selectedNode",default:null}),i=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).resetOnUnmount,t=void 0!==e&&e,n=(0,r.rb)(o);return(0,a.Z)((function(){t&&n()})),[].concat((0,s.Z)((0,r.FV)(o)),[n])}},3581:function(e,t,n){n.d(t,{j:function(){return l}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942),r=n(4480);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var i=(0,r.xu)({key:"selectedTab",default:{}}),c=(0,r.CG)({key:"selectedTabsState",get:function(e){var t=e.id,n=e.key;return function(e){var s=(0,e.get)(i(t));return n?s[n]:s}},set:function(e){var t=e.id,n=e.key;return function(e,s){(0,e.set)(i(t),(function(e){return{id:t,selectedTabs:o(o({},e[n]),s)}}))}}}),l=function(e,t){var n,s,a="selectedTabs",o=(n=e,s=a,(0,r.sJ)(c({id:n,key:s}))),i=(o?o[t]:0)||0,l=function(e,t){return(0,r.Zl)(c({id:e,key:t}))}(e,a);return[i,l,o]}},2077:function(e,t,n){n.d(t,{mt:function(){return S},yp:function(){return x},VG:function(){return k},d5:function(){return C},$g:function(){return T}});n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070);var s=n(29439),r=n(4942),a=(n(92222),n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(15581),n(34514),n(54747),n(82772),n(26699),n(32023),n(61874),n(9653),n(67294)),o=n(4480),i=n(95248),c=n(18761),l={byContext:{},loaded:!1,loading:!1,method:null,options:null,group:"average",totalDimensionsCount:0},d=(0,o.xu)({key:"weights",default:l});function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,o.CG)({key:"weightsState",get:function(e){return function(t){return(0,t.get)(d(e))}},set:function(e){return function(t,n){return(0,t.set)(d(e),n)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),p={ci:"context",ni:"node",ii:"instance",di:"dimension"},f=function(e,t){return function(n){return(0,r.Z)({},p[e.name],t[e.dictionary][n])}},g={ni:f,ii:function(e,t){return function(n,s,a){return(0,r.Z)({},p[e.name],t[e.dictionary][n]?"".concat(t[e.dictionary][n],"@").concat(t.nodes[s[a.ni]]):null)}},ci:f,di:f,row_type:function(e){return function(t){return{type:e.value[t]}}},weight:function(){return function(e){return{weight:e}}},timeframe:function(e){return function(t){return{highlight:e.labels.reduce((function(e,n,s){return u(u({},e),{},(0,r.Z)({},n,t[s]))}),{})}}},"baseline timeframe":function(e){return function(t){return{baseline:e.labels.reduce((function(e,n,s){return u(u({},e),{},(0,r.Z)({},n,t[s]))}),{})}}}},b={contexts:"ci",nodes:"ni",instances:"ii",dimensions:"di"},y={contexts:"id",nodes:"nodeId",instances:"id",dimensions:"id"},v=function(e,t){return null===e||e>t?t:e},_=function(e,t){return null===e||e<t?t:e},w=function(e){var t=e.flavour,n=e.data,s=e.aggregation,r=e.options,a={},o=0;if("rhs"==t){var i,c=(null===(i=n.v_schema)||void 0===i?void 0:i.items)||[];a=n.result.reduce((function(e,t){var n=t.id,r=t.v;return e[n]=c.reduce((function(e,t,n){var a=t.name,o=t.labels.indexOf(s);return e[a]=r[n][o],e}),{}),e}),{})}else{var l=function(e){var t=Object.keys(e.dictionaries).reduce((function(t,n){t[n]||(t[n]={});var s=y[n];return e.dictionaries[n].forEach((function(e){return t[n][e[b[n]]]="nodeId"===s?e.nd||e.mg:e[s]})),t}),{}),n={},s=e.schema.items.reduce((function(e,s,r){var a=(g[s.name]||g.default)(s,t);return e.push(a),n[s.name]=r,e}),[]);return function(e){return e.reduce((function(t,r,a){return u(u({},t),s[a](r,e,n))}),{})}}(n);a=n.result.reduce((function(e,t){var n=l(t),s=n.dimension,a=n.node,i=n.context,c=n.instance,d=n.type,h=n.weight,u=n.highlight,m=n.baseline;if("node"===d)return e;var p,f,g=(p=e,f=i,function(e,t,n,s,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:v;n&&(n&&"undefined"===typeof p[f][t][n]&&(p[f][t][n]={}),"undefined"===typeof p[f][t][n][e]&&(p[f][t][n][e]=null),s&&(p[f][t][n][e]=a(p[f][t][n][e],r)))});e[i]||(e[i]={dimensions:{},instances:{},nodes:{},weight:null});var b=!!r&&r.includes("anomaly-bit");g("weight","dimensions",s,"dimension"===d,h,b?_:v),g("weight","instances",c,"instance"===d,h,b?_:v),g("weight","nodes",a,"node"===d,h,b?_:v);var y=u?100*u.anomaly_count/u.count:0;g("arHighlight","dimensions",s,"dimension"===d,y,_),g("arHighlight","instances",c,"instance"===d,y,_),g("arHighlight","nodes",a,"node"===d,y,_);var w=m?100*(m.anomaly_count-u.anomaly_count)/(m.count-u.count)===0?1:m.count-u.count:0;g("arBaseline","dimensions",s,"dimension"===d,w,_),g("arBaseline","instances",c,"instance"===d,w,_),g("arBaseline","nodes",a,"node"===d,w,_);var k=w?y/w:0;return g("score","dimensions",s,"dimension"===d,k,_),g("score","instances",c,"instance"===d,k,_),g("score","nodes",a,"node"===d,k,_),"context"===d?e[i].weight=null===e[i].weight||e[i].weight>h?h:e[i].weight:"dimension"===d&&(o+=1),e}),{})}return{byContext:a,totalDimensionsCount:o}},k=function(e,t,n){var s=(0,a.useRef)();return[(0,o._8)((function(r){var a=r.set;return function(r){var o=r.flavour,i=r.highlightAfter,d=r.highlightBefore,h=r.baselineAfter,p=r.baselineBefore,f=r.method,g=r.options,b=r.group,y=r.context,v=r.nodeIds,_=r.aggregation,k=r.groupBy;return a(m(e),u(u({},l),{},{loading:!0})),s.current&&s.current.cancel(),s.current=(0,c.B3)(t,n,{highlightAfter:i,highlightBefore:d,baselineAfter:h,baselineBefore:p,method:f,options:g,group:b,context:y,nodeIds:v,aggregation:_,groupBy:k}),s.current.then((function(t){var n=t.data,s=w({flavour:o,data:n,aggregation:_,options:g}),r=s.byContext,i=s.totalDimensionsCount;a(m(e),{loading:!1,loaded:!0,byContext:r,options:g,totalDimensionsCount:i,method:f,group:b,error:null})})).catch((function(t){var n;if(!t.isCancel)throw a(m(e),u(u({},l),{},{error:(null===t||void 0===t||null===(n=t.response)||void 0===n?void 0:n.data)||t})),t}))}}),[e]),(0,o._8)((function(t){var n=t.reset;return function(){s.current&&s.current.cancel(),n(m(e))}}),[e])]},T=function(e){return(0,o.sJ)(m(e))},x=function(e){return(0,o.rb)(m(e))},S=.01,C=function(e,t,n){var r=k(e,t,n),o=(0,s.Z)(r,2),c=o[0],l=o[1],d=T(e),h=d.loaded,m=d.loading,p=d.byContext,f=d.totalDimensionsCount,g=d.options,b=function(){var e=(0,i.by)("threshold");return e?Number.parseFloat(e):S}(),y=(0,a.useMemo)((function(){var e=0,t=null===g||void 0===g?void 0:g.includes("raw"),n=Object.keys(p).reduce((function(n,s){var r=Object.keys(p[s].dimensions).reduce((function(e,n){return!t&&p[s].dimensions[n].weight>b||(e[n]=p[s].dimensions[n]),e}),{}),a=Object.keys(r).length;return e+=a,a?(n[s]=u(u({},p[s]),{},{dimensions:r}),n):n}),{});return[n,Object.keys(n),e]}),[h,b]),v=(0,s.Z)(y,3),_=v[0],w=v[1],x=v[2];return{threshold:b,metadata:_,contexts:w,dimensionsCount:x,totalDimensionsCount:f,loaded:h,loading:m,getWeights:c,resetWeights:l}}},89479:function(e,t,n){n.d(t,{W2:function(){return p},Q7:function(){return k},PP:function(){return _},dA:function(){return w},Ni:function(){return C},pT:function(){return P},MS:function(){return S},If:function(){return M},jg:function(){return y},QX:function(){return v},hH:function(){return f},Cd:function(){return T},qU:function(){return g},z3:function(){return x},w4:function(){return b}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(93433),r=n(4942),a=(n(47941),n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(85827),n(25387),n(2490),n(72608),n(64211),n(41874),n(67294)),o=n(4480),i=n(37394),c=n(37518),l=n(41331),d={ids:(0,o.xu)({key:"roomChartIds",default:[]}),updatedAt:(0,o.xu)({key:"roomChartsUpdatedAt",default:""}),loaded:(0,o.xu)({key:"roomChartsLoaded",default:!1}),error:(0,o.xu)({key:"roomChartsError",default:null}),versions:(0,o.xu)({key:"versions",default:{}})};function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,o.xu)({key:"roomsChartBatchState",default:{}}),p=(0,o.CG)({key:"roomChartState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(d[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,s){(0,e.set)(d[n](t),s)}}}),f=function(e){return!!(0,o.sJ)(p({id:e,key:"loaded"}))},g=function(e){return(0,o.sJ)(p({id:e,key:"versions"}))},b=function(e){var t=(0,o.Zl)(p({id:e,key:"versions"}));return(0,a.useCallback)((function(e){return t((function(t){return e="function"===typeof e?e(t):e,(0,l.ZP)(t,e,{omit:["contextsSoftHash"]})?t:e}))}),[])},y=function(e){return(0,o.sJ)(p({id:e,key:"ids"}))},v=function(e,t){return(0,o.sJ)(p({id:e,key:t}))},_=(0,o.CG)({key:"roomChartsState",get:function(e){var t=e.id,n=e.key;return function(e){var s=(0,e.get)(m(t))||i.ak;return n?s[n]:s}},set:function(e){var t=e.id,n=e.key;return function(e,s){var a=e.set;"function"!==typeof s?Object.keys(s).length<1||a(m(t),(function(e){return u(u({},e),{},(0,r.Z)({},n,s))})):a(m(t),(function(e){return u(u({},e),{},(0,r.Z)({},n,s(e[n])))}))}}}),w=(0,o.CG)({key:"roomChartsState/ids",get:function(e){var t=e.roomId;return function(e){return(0,e.get)(d.ids(t))}},set:function(e){var t=e.roomId,n=e.merge,r=void 0===n||n;return function(e,n){(0,e.set)(d.ids(t),(function(e){var t=r?(0,s.Z)(new Set([].concat((0,s.Z)(n),(0,s.Z)(e)))):n;return(0,l.ZP)(t,e)?e:t}))}}}),k=(0,o.CG)({key:"roomChartsState/initialize",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.id,n=e.merge,s=void 0===n||n;return function(e,n){var r=e.set,a=n.values,o=n.merge;r(m(t),(function(e){var t=Object.keys(a).reduce((function(t,n){var r=a[n].id;return t[r]=u(u(u(u({},i.ak),(s||o)&&e[r]),a[n]),{},{loaded:!0}),t}),u({},e));return s&&(0,l.ZP)(t,e,{omit:["lastEntry","firstEntry","family"]})?e:t}))}}}),T=function(e,t){return(0,o.sJ)(_({id:e,key:t}))},x=function(e){return(0,o._8)((function(t){var n=t.set;return function(t){return n(m(e),t)}}),[])},S=function(e,t){return(0,o._8)((function(n){var s=n.snapshot;return function(n){return u(u({},s.getLoadable(_({id:e,key:n})).contents),(null===t||void 0===t?void 0:t[n])||{})}}),[e,t])},C=function(e){var t,n,s,r=(0,c.UL)(),a=(0,o.sJ)(m(r));return(null===(t=a[e])||void 0===t?void 0:t.visible)&&!(null!==(n=a[e])&&void 0!==n&&n.filteredOut)&&!(null!==(s=a[e])&&void 0!==s&&s.hidden)},P=function(e){var t=(0,c.UL)(),n=(0,o.sJ)(m(t));return e.some((function(e){var t,s,r;return(null===(t=n[e])||void 0===t?void 0:t.visible)&&!(null!==(s=n[e])&&void 0!==s&&s.filteredOut)&&!(null!==(r=n[e])&&void 0!==r&&r.hidden)}))},M=function(){var e=(0,c.UL)(),t=(0,o.sJ)(m(e));return(0,a.useCallback)((function(e){return e.some((function(e){var n,s,r;return(null===(n=t[e])||void 0===n?void 0:n.visible)&&!(null!==(s=t[e])&&void 0!==s&&s.filteredOut)&&!(null!==(r=t[e])&&void 0!==r&&r.hidden)}))}),[e,t])}},97363:function(e,t,n){n.d(t,{Z:function(){return D}});var s=n(87462),r=n(45987),a=n(67294),o=n(57509),i=n(37518),c=n(97193),l=n(8144),d=["roomId","flavour"],h=function(e){var t=e.roomId,n=e.flavour,o=(0,r.Z)(e,d),i=function(e){return(0,a.useMemo)((function(){return{Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasAlerts:!0},node:{textColor:"text",showAlerts:!0}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale",hasAlerts:!0},node:{textColor:"text",showAlerts:!0}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline",disabled:!0},node:{textColor:"textLite",disabled:!0}}}}),[e])}(n);return"singleNode"===n?null:a.createElement(l.Z,(0,s.Z)({title:"Nodes",testIdPrefix:"nodes",baseKey:t,extraKey:n,param:"selectedIds"},o),a.createElement(c.Z,{baseKey:t,extraKey:n,statusProps:i,background:"mainBackground",itemProps:{padding:[1,1,1,.5],maxLength:24},searchMargin:[0,0,2],height:{max:"300px"}}))},u=(n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(29439)),m=n(4942),p=(n(21249),n(57640),n(9924),n(69720),n(85827),n(41539),n(25387),n(2490),n(72608),n(57327),n(88449),n(59849),n(95248)),f=n(597),g=n(80239),b=n(46742);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var v=function(e){var t=e.extraKey,n=e.param,s=e.paramKey,r=(0,f.K)({extraKey:t,omit:[n],keepAll:!0}),o=(0,p.tk)(n,{extraKey:t});return(0,a.useMemo)((function(){return Object.entries(r.reduce((function(e,t){return e[t[s]]=(e[t[s]]||0)+(t.hidden?0:1),e}),function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},g.VP[n]||{}))).map((function(e){var t=(0,u.Z)(e,2);return{id:t[0],count:t[1]}}))}),[r.filter((function(e){return e.hidden})).length,o])},_=function(e){return e.id},w=function(e){var t=e.baseKey,n=e.param,s=e.paramKey,r=e.extraKey,o=e.testIdPrefix,i=e.title,c=v({param:n,extraKey:r,paramKey:s});return c.length?a.createElement(l.Z,{title:i,testIdPrefix:o,baseKey:t,extraKey:r,param:n},a.createElement(b.ZP,{param:n,baseKey:t,extraKey:r,testIdPrefix:o,collection:c,getValue:_,getLabel:_})):null},k=n(93433),T=(n(92222),n(86535),n(99244),n(74326),n(82499),n(64211),n(41874),n(26699),n(32023),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(91966)),x=n.n(T),S=n(48286),C=["baseKey","extraKey","param","testIdPrefix","itemsProps","itemProps"];function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var q=function(e){var t=e.baseKey,n=e.extraKey,i=e.param,c=e.testIdPrefix,d=e.itemsProps,h=e.itemProps,m=(0,r.Z)(e,C),g=function(e){var t=e.extraKey,n=e.param,s=(0,f.K)({extraKey:t,omit:[n],keepAll:!0}),r=(0,p.tk)(n,{extraKey:t});return(0,a.useMemo)((function(){return Object.entries(s.reduce((function(e,t){var n=t.type,s=t.component,r=t.hidden;return e[n]=e[n]||{count:0,children:{}},e[n].count=(e[n].count||0)+(r?0:1),e[n].children[s]=(e[n].children[s]||0)+(r?0:1),e}),{})).reduce((function(e,t){var n=(0,u.Z)(t,2),s=n[0],r=n[1],a=r.count,o=r.children;return e.push({id:s,count:a,children:Object.entries(o).map((function(e){var t=(0,u.Z)(e,2),n=t[0],r=t[1];return{value:"".concat(s,"|").concat(n),label:n,count:r,level:1}}))}),e}),[])}),[s.filter((function(e){return e.hidden})).length,r])}({param:i,extraKey:n}),b=(0,p.I0)(i,{defaultValue:[],key:t,extraKey:n}),y=(0,u.Z)(b,2),v=y[0],_=y[1];(0,S.Z)((function(){g.length&&v.length&&_((function(e){return e.filter((function(e){return g.some((function(t){return t.children.some((function(t){return t.value===e}))}))}))}))}),[g.length,_]);var w=(0,a.useCallback)((function(e){var t=e.value,n=e.checked;_((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?(0,k.Z)(new Set([].concat((0,k.Z)(e),(0,k.Z)(t)))):x()(e,t):n?[].concat((0,k.Z)(e),[t]):e.filter((function(e){return e!==t}))}))}),[_]),T=(0,a.useMemo)((function(){return function(e){var t=e.options,n=e.selected,s=e.itemsProps;if(!t.length)return[];var r=t.flatMap((function(e){return e.children.map((function(e){return e.value}))})),a=r.length===n.length,o=!a&&!!n.length;return[M(M({},s.head),{},{label:"Select all",value:r,selected:a,indeterminate:o})].concat((0,k.Z)(t.flatMap((function(e){var t=e.id,r=e.children,a=e.count,o=n.length&&!r.some((function(e){return!n.includes(e.value)})),i=!o&&n.length&&r.some((function(e){return n.includes(e.value)}));return r.reduce((function(e,t){var r=n.includes(t.value);return[].concat((0,k.Z)(e),[M(M(M({},s.row),t),{},{selected:r})])}),[M(M({},s.head),{},{label:t,value:r.map((function(e){return e.value})),selected:o,indeterminate:i,count:a})])}))))}({options:g,selected:v,itemsProps:d})}),[v,_,g]);return g.length?a.createElement(l.Z,{title:"Alert type & component",testIdPrefix:c,baseKey:t,extraKey:n,param:i},a.createElement(o.MenuDropdown,(0,s.Z)({hideShadow:!0,height:{max:"300px"},width:{max:"600px"},background:"mainBackground",overflow:"auto",padding:[0,0,3],"data-testid":"".concat(c,'-filter-selections"'),searchMargin:[0,0,2],items:T,onItemClick:w,value:v,"data-value":v.join(",")||"all-selected",hasSearch:g.length>5,itemProps:M({testIdPrefix:c},h)},m))):null};q.defaultProps=b.ZP.defaultProps;var I=q,E=["flavour"],D=(0,a.memo)((function(e){var t=e.flavour,n=(0,r.Z)(e,E),c=(0,i.UL)();return a.createElement(o.Flex,(0,s.Z)({column:!0,overflow:{vertical:"auto"},padding:[0,0,30]},n),"alerts"===t&&a.createElement(a.Fragment,null,a.createElement(w,{title:"Alert status",testIdPrefix:"alert-status",baseKey:c,extraKey:t,param:"alertStatuses",paramKey:"status"}),a.createElement(w,{title:"Alert class",testIdPrefix:"alert-class",baseKey:c,extraKey:t,param:"alertClasses",paramKey:"class"}),a.createElement(I,{testIdPrefix:"alert-type-component",baseKey:c,extraKey:t,param:"alertTypeComponents"}),a.createElement(w,{title:"Alert role",testIdPrefix:"alert-role",baseKey:c,extraKey:t,param:"alertRoles",paramKey:"recipient"})),a.createElement(h,{roomId:c,flavour:t}))}))},49887:function(e,t,n){n.d(t,{Z:function(){return Ze}});n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(87462),r=n(29439),a=n(45987),o=n(4942),i=(n(57327),n(41539),n(88449),n(2490),n(59849),n(47941),n(26699),n(32023),n(21249),n(57640),n(9924),n(67294)),c=n(60677),l=n(57509),d=n(46667),h=n(54316),u=n(29814),m=n(72843),p=n(31509),f=n(29400),g=n(82351),b=(n(23157),n(74916),n(15306),n(85993)),y=n(70982),v=n(28989),_=n(89479),w=n(62525),k=(n(85827),n(25387),n(72608),n(77601),n(5441)),T=n(2077),x=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.flavour,s=t.weightKey,a=void 0===s?"weight":s,o=(0,k.E)(),c=(0,T.$g)({nodeIds:o,flavour:n}),l=c.loaded,d=c.byContext;return(0,i.useMemo)((function(){if(!l)return[!1,null,null];var t=null,n=e.reduce((function(e,n){var s;if(/::/.test(n)){var o=n.split("::");n=o[0],s=o[1]}var i=s?function(e,t,n,s){var r,a=s.max,o=s.maxWeightContext,i=s.weightKey;return null!==(r=e[t])&&void 0!==r&&null!==(r=r.dimensions)&&void 0!==r&&r[n]&&(e[t].dimensions[n][i]||0)>a?[e[t].dimensions[n][i]||0,t]:[a,o]}(d,n,s,{max:e,maxWeightContext:t,weightKey:a}):function(e,t,n){var s=n.max,r=n.maxWeightContext,a=n.weightKey;return e[t]&&(e[t][a]||0)>s?[e[t][a]||0,t]:[s,r]}(d,n,{max:e,maxWeightContext:t,weightKey:a}),c=(0,r.Z)(i,2),l=c[0],h=c[1];return t=h,l}),0);return[!0,n,t]}),[e,d])},S=["tooltipContent","children"],C=c.default.div.attrs((function(e){return{cursor:e.onClick?"pointer":"auto"}})).withConfig({displayName:"info__ComponentWrapper",componentId:"sc-m9u9yb-0"})([""]),P=function(e){var t=e.tooltipContent,n=e.children,r=(0,a.Z)(e,S);return i.createElement(g.Z,{content:t,align:"top",enterDelay:200,activateOn:"hover"},i.createElement(C,r,i.createElement(l.Pill,(0,s.Z)({hollow:!0,flavour:"neutral"},r),n)))},M=n(44109),q=["active","id","name","link","children"],I=["id","arFlavour","showAR","weightKey"],E=["id","onSubMenuClick"],D=["id"];function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var N,O=(0,c.css)(["border-left:1px solid ",";color:",";"],(0,l.getColor)("key"),(0,l.getColor)("key")),R=(0,c.default)(l.TextSmall).attrs((function(e){var t=e.active,n=e.id,s=e.name,r=e.link,i=e.children,c=(0,a.Z)(e,q);return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({"aria-current":t,as:"a",strong:t,padding:[.5,3],role:"listitem",children:s||i||n,href:"#".concat(r),"data-sidebar-submenuid":n,truncate:!0,whiteSpace:"normal"},c)})).withConfig({displayName:"menuItem__MenuItem",componentId:"sc-18613h0-0"})(["&&&{word-wrap:break-word;text-decoration:none;border-left:1px solid transparent;color:",";"," &:hover{","}}"],(0,l.getColor)("textLite"),(function(e){return e.active&&O}),O),A=(0,w.Ji)(function(e){return function(t){var n=t.id,r=(0,a.Z)(t,D),o=(0,v.xz)((function(e){return n===e}));return i.createElement(e,(0,s.Z)({active:o,id:n},r))}}(function(e){return function(t){var n=t.id,r=t.onSubMenuClick,o=(0,a.Z)(t,E),c=(0,i.useMemo)((function(){return r&&function(e){return r(n,e)}}),[r,n]),l=(0,_.pT)(o.chartIds);return o.forceVisibility||l?i.createElement(e,(0,s.Z)({onClick:c,id:n},o)):null}}((N=R,function(e){var t=e.id,n=e.arFlavour,o=void 0===n?"rhs":n,c=e.showAR,d=void 0===c||c,h=e.weightKey,u=(0,a.Z)(e,I),m=x(u.chartIds,{flavour:o,weightKey:h}),p=(0,r.Z)(m,3),f=p[0],g=p[1],b=p[2];return d&&f?i.createElement(l.Flex,{alignItems:"center",justifyContent:"between",width:"97%",padding:[.5,0]},i.createElement(N,(0,s.Z)({id:t},u)),i.createElement(P,{onClick:u.onClick,tooltipContent:b},(0,M.Z)(g))):i.createElement(N,(0,s.Z)({id:t},u))})))),F=["id","subMenuChartIds"],U=["id","chartIds","arFlavour","showAR","weightKey"],B=["subMenuIds","onSubMenuClick"],Z=["id","onMenuGroupClick","onSubMenuClick"],j=["id","active","onMenuGroupClick","onSubMenuClick","showChildren"],z=["id"],V=(0,c.default)(l.Text).attrs({color:"textLite"}).withConfig({displayName:"menuGroup__MenuGroupLabelWrapper",componentId:"sc-1q9pvct-0"})(["font-weight:500;"]),H=(0,c.default)(l.Flex).attrs({flex:!1,color:"textLite",width:6,alignItems:"center",justifyContent:"center"}).withConfig({displayName:"menuGroup__FaIcon",componentId:"sc-1q9pvct-1"})([""]),Q=(0,c.css)(["border-left:2px solid ",";","{color:",";}"],(0,l.getColor)("text"),V,(0,l.getColor)("text")),G=(0,c.default)(l.Flex).attrs({width:"98%"}).withConfig({displayName:"menuGroup__Container",componentId:"sc-1q9pvct-2"})(["&&&{border-left:2px solid transparent;"," "," text-decoration:none;cursor:pointer;&:hover{","}}"],(function(e){return e.active&&Q}),(function(e){return e.active&&"".concat(V," { font-weight: bold; }")}),Q),W=(0,b.Lj)(V,(function(e){var t=e.name,n=e.id;return{children:t||n}})),K=(0,b.Lj)((function(e){var t=e.icon;return t?i.createElement(H,null,l.iconsList[t]?i.createElement(l.Icon,{name:t,size:"small",color:"text"}):i.createElement(y.G,{icon:t})):null}),(function(e){return{icon:e.icon}})),J=(0,i.forwardRef)((function(e,t){var n=e.id,r=e.subMenuChartIds,o=(0,a.Z)(e,F),c=(0,_.pT)(r);return o.forceVisibility||c?i.createElement(G,(0,s.Z)({ref:t,as:"a",gap:2,padding:[1],alignItems:"center",justifyContent:"between","data-sidebar-menugroupid":n},o)):null})),Y=(0,b.Lj)(J,(function(e){var t=e.id,n=e.link,s=e.subMenuChartIds,r=e.forceVisibility;return{id:t,href:"#".concat(n),subMenuChartIds:s,forceVisibility:r}})),X=function(e){var t=e.id,n=e.chartIds,o=e.arFlavour,c=void 0===o?"rhs":o,d=e.showAR,h=void 0===d||d,u=e.weightKey,m=(0,a.Z)(e,U),p=x(n,{flavour:c,weightKey:u}),f=(0,r.Z)(p,3),g=f[0],b=f[1],y=f[2];return i.createElement(Y,(0,s.Z)({id:t},m),i.createElement(l.Flex,null,i.createElement(K,{id:t}),i.createElement(W,{id:t})),h&&g&&i.createElement(P,{tooltipContent:y},(0,M.Z)(b)))},$=(0,b.Lj)((function(e){var t=e.subMenuIds,n=e.onSubMenuClick,r=(0,a.Z)(e,B);return i.createElement(l.Flex,(0,s.Z)({column:!0,role:"list",padding:[0,0,2,0]},r),t.map((function(e){return i.createElement(A,{key:e,id:e,onSubMenuClick:n})})))}),(function(e){return{subMenuIds:e.subMenuIds}})),ee=(0,i.forwardRef)((function(e,t){return i.createElement(l.Flex,(0,s.Z)({as:"li",column:!0,ref:t},e))})),te=function(e){return function(t){var n=t.id,r=(0,a.Z)(t,z),o=(0,v.zE)(n);return i.createElement(e,(0,s.Z)({active:o,id:n},r))}}(function(e){return function(t){var n=t.id,r=t.onMenuGroupClick,o=t.onSubMenuClick,c=(0,a.Z)(t,Z),l=(0,i.useMemo)((function(){return r&&function(e){return r(n,e)}}),[r,n]),d=(0,i.useMemo)((function(){return o&&function(e,t){return o(n,e,t)}}),[o,n]);return i.createElement(e,(0,s.Z)({id:n,onMenuGroupClick:l,onSubMenuClick:d},c))}}((function(e){var t=e.id,n=e.active,r=e.onMenuGroupClick,o=e.onSubMenuClick,c=e.showChildren,l=void 0===c||c,d=(0,a.Z)(e,j),h=(0,b.nk)(t);return h?i.createElement(ee,d,i.createElement(X,(0,s.Z)({},h,{id:t,onClick:r,active:n,chartIds:h.subMenuChartIds})),l&&n&&i.createElement($,{id:t,onSubMenuClick:o})):null}))),ne=["menuGroupIds","onMenuGroupClick","onSubMenuClick","menuGroupProps"],se=(0,i.forwardRef)((function(e,t){return i.createElement(l.Flex,(0,s.Z)({as:"ul",width:"100%",role:"complementary",column:!0,overflow:{vertical:"auto"},"data-sidebar":"true",ref:t},e))})),re=(0,i.memo)((function(e){var t=e.menuGroupIds,n=e.onMenuGroupClick,r=e.onSubMenuClick,o=e.menuGroupProps,c=(0,a.Z)(e,ne);return i.createElement(se,c,t.map((function(e){return i.createElement(te,(0,s.Z)({key:e,id:e,onMenuGroupClick:n,onSubMenuClick:r},o))})))})),ae=(0,b.jj)(re),oe=(0,i.memo)(ae),ie=n(15394),ce=n(92432),le=n(27856),de=n(41481),he=function(){var e=(0,de.KR)(),t=(0,r.Z)(e,2),n=t[0],s=t[1],a=(0,i.useCallback)((0,le.D)(300,(function(e){s(e.target.value),(0,ce.L)("toc-search","search-automatic-trigger","charts-view",e.target.value)})),[]),o=(0,l.useInputValue)({value:n,onChange:a}),c=(0,r.Z)(o,5),d=c[0],h=c[1],u=c[4].resetValue,m=(0,i.useCallback)((function(){s(""),u(),(0,ce.L)("toc-search","clear-search-button","charts-view")}),[]);return i.createElement(l.TextInput,{value:d,onChange:h,size:"small",iconRight:d&&i.createElement(l.Icon,{name:"x",color:"textLite",cursor:"pointer",size:"small",onClick:m,"data-testid":"filterChartsInput-clearButton"}),placeholder:"Search charts",name:"Search charts","data-testid":"filterChartsInput",containerStyles:{width:"100%"}})},ue=n(91008),me=(0,le.D)(300,(function(e,t){return(0,ce.L)("toc-search","search-results","charts-view",e,"".concat(t," -- charts"))})),pe=function(){var e=(0,de.T)(),t=(0,de.J1)(),n=t.filteredChartsCount,s=t.chartsCount;return(0,i.useEffect)((function(){e&&me(e,n)}),[e,n]),i.createElement(i.Fragment,null,i.createElement(l.TextNano,{alignSelf:"end",color:"textLite",margin:[1,0,0],"data-testid":"numberOfChartsIndication"},"Showing"," ",i.createElement(l.TextNano,{strong:!0,color:"textDescription","data-testid":"numberOfChartsIndication-filteredChartsCount"},n)," ","of total"," ",i.createElement(l.TextNano,{strong:!0,color:"textDescription","data-testid":"numberOfChartsIndication-chartsCount"},s)," ","charts"),i.createElement(ue.Z,{Component:l.TextNano,alignSelf:"end","data-ga":"toc-search::click-link-collectors::".concat(name),href:"https://learn.netdata.cloud/docs/agent/collectors/",target:"_blank",rel:"noopener noreferrer"},"Add more charts"))},fe=function(){return(0,de.J1)().filteredChartsCount?null:i.createElement(l.Flex,{width:"100%",gap:1,margin:[4,0,0],padding:[2],round:1,background:"disabledBackground",alignItems:"center","data-testid":"noResultsWereFound"},i.createElement(l.Icon,{name:"information",color:"textDescription"}),i.createElement(l.TextMicro,{strong:!0,color:"textDescription"},"No results were found"))},ge=(0,k.Z)(pe),be=function(){return i.createElement(l.Flex,{column:!0,alignItems:"center",height:{min:"65px"}},i.createElement(he,null),i.createElement(ge,null),i.createElement(fe,null))},ye=n(93433),ve=(n(92222),n(45335)),_e=n(46189),we=n(74059),ke=n(37518),Te=_e.Z.demoSlug,xe=_e.Z.demoFavourites,Se=(0,c.default)(l.Icon).attrs({size:"small",name:"chevron_left",color:"textLite"}).withConfig({displayName:"favourites__StyledChevron",componentId:"sc-mwcyj8-0"})(["transition:transform 0.2s ease-in-out;"]),Ce={showChildren:!1},Pe=function(e){var t,n=e.onMenuGroupClick,s=e.onSubMenuClick,a=e.initialChartName,o=(0,we.uk)(),c=(0,ke.vf)(),h=Te===o&&xe[c]||[],u=(0,b.UG)((t=h,function(e){return t.reduce((function(t,n){return e[n]?[].concat((0,ye.Z)(t),[n]):t}),[])})),m=(0,ie.Z)({onMenuGroupClick:n,onSubMenuClick:s}),p=m.onMenuGroupClick,f=m.onSubMenuClick,g=(0,d.Z)(!0),y=(0,r.Z)(g,2),v=y[0],_=y[1],w=(0,ve.sm)();return(0,i.useEffect)((function(){w&&!a&&u.length&&n(u[0])}),[w,a]),u.length?i.createElement(l.Flex,{column:!0,gap:1,border:{side:"bottom",color:"borderSecondary"},padding:[0,0,2]},i.createElement(l.Flex,{onClick:_,cursor:"pointer",alignItems:"center",justifyContent:"between"},i.createElement(l.Flex,{gap:1,alignItems:"center"},i.createElement("i",{className:"fa-regular fa-star"}),i.createElement(l.Text,{strong:!0,color:"textFocus"},"Favourites")),i.createElement(Se,{rotate:v?1:3,alignSelf:"end"})),i.createElement(l.Collapsible,{open:v,padding:[0,0,0,2]},i.createElement(re,{menuGroupIds:u,onMenuGroupClick:p,onSubMenuClick:f,menuGroupProps:Ce}))):null},Me=function(e){return(0,ce.L)("metric-sidebar","click-".concat(Ie(e)),"mn-overview")},qe=function(e){var t=Ie(e);(0,ce.L)("metric-sidebar","click-".concat(t),"mn-overview",t)},Ie=function(e){return e.startsWith("Kubernetes")?"k8s":e.replace(/[^\w]/g,"-").toLowerCase()},Ee=function(e){var t=e.initialChartName,n=e.loaded,s=e.hasSearch,r=void 0===s||s,a=(0,ie.Z)({onMenuGroupClick:Me,onSubMenuClick:qe,loaded:n}),o=a.onMenuGroupClick,c=a.onSubMenuClick;return i.createElement(i.Fragment,null,r&&i.createElement(l.Flex,{column:!0,position:"sticky",top:"0",gap:1},i.createElement(l.Text,{strong:!0},"Sections and Charts"),i.createElement(be,null)),n&&i.createElement(i.Fragment,null,i.createElement(Pe,{onMenuGroupClick:o,onSubMenuClick:c,initialChartName:t}),i.createElement(oe,{position:"relative",onMenuGroupClick:o,onSubMenuClick:c,width:"100%"})))},De=n(97363),Le=["tabs","hiddenTabs","title","nodeIds","selectedTab","setSelectedTab"];function Ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function Oe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ne(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ne(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Re={color:{active:"success",notActive:"textLite"}},Ae={chartIndexing:Oe(Oe({},Re),{},{iconName:"charts_view",Content:Ee,dataTestId:"nodeInfo-chartIndexing",label:"Charts"}),filters:Oe(Oe({},Re),{},{iconName:"filterList",Content:De.Z,dataTestId:"nodeInfo-filters",label:"Filters"}),alerts:Oe(Oe({},Re),{},{iconName:"alarm_bell",Content:p.Z,dataTestId:"nodeInfo-alertsTab",label:"Alerts"}),info:Oe(Oe({},Re),{},{iconName:"information",dataTestId:"nodeInfo-alertsTab",Content:f.Z,label:"Info"})},Fe=[],Ue=(0,c.default)(l.Tabs).withConfig({displayName:"sidebar__StyledTabs",componentId:"sc-1d5ify6-0"})(["overflow:hidden;height:100%;"]),Be=function(e){var t=e.isActive,n=e.color,s=e.name,r=e.label;return i.createElement(g.Z,{plain:!0,content:r},i.createElement(l.Icon,{name:s,color:t?n.active:n.notActive,height:"18px",width:"18px"}))},Ze=function(e){var t=e.tabs,n=void 0===t?Ae:t,o=e.hiddenTabs,c=void 0===o?Fe:o,p=e.title,f=e.nodeIds,g=void 0===f?Fe:f,b=e.selectedTab,y=e.setSelectedTab,v=(0,a.Z)(e,Le),_=(0,d.Z)(!0),w=(0,r.Z)(_,2),k=w[0],T=w[1],x=(0,i.useMemo)((function(){return Object.keys(n).filter((function(e){return!c.includes(e)}))}),[c]),S=(0,i.useCallback)((function(e){y(e),T()}),[]);return i.createElement(h.ZP,{collapsedComponent:i.createElement(u.Z,{onClickTab:S,availableTabs:n,tabsToShow:x}),isOpen:k,header:i.createElement(m.Z,{isOpen:k,onToggle:T,title:p})},i.createElement(l.Flex,{"data-testid":"overview-info",column:!0,overflow:"hidden",height:"100%"},i.createElement(Ue,{selected:b,onChange:y,noDefaultBorder:!0},x.map((function(e,t){var r=n[e],a=r.iconName,o=r.color,c=r.Content,d=r.dataTestId,h=r.label;return i.createElement(l.Tab,{style:{display:1===x.length?"none":"inherit"},"data-testid":d,maxWidth:"100%",key:a,small:!0,label:i.createElement(Be,{isActive:b===t,name:a,color:o,label:h})},i.createElement(l.Flex,{column:!0,overflow:"hidden",height:"100%",position:"relative",gap:3,padding:[2,3]},i.createElement(c,(0,s.Z)({nodeIds:g},v))))})))))}},40970:function(e,t,n){n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var s=n(4942),r=n(29439),a=(n(47941),n(92222),n(67294)),o=n(44536),i=n(68035),c=n(89479),l=n(95248),d=n(25819),h=n(42448);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=n.spaceId,u=n.autorun,p=void 0!==u&&u,f=(0,a.useState)(null),g=(0,r.Z)(f,2),b=g[0],y=g[1],v=(0,l.by)(),_=v.after,w=v.before,k=(0,a.useRef)();k.current={after:_<0?_:Math.floor(_/1e3),before:_<0?0:Math.ceil(w/1e3)};var T=function(e){if(e&&null!==e&&void 0!==e&&e.response){var t=e.response.data.errorMsgKey;y(t)}else y(e)},x=(0,a.useMemo)((function(){return(0,h.V)(b)?5e3:65e3}),[b]),S=(0,a.useRef)(),C=(0,c.w4)(e),P=function(e){var t=e.results,n=e.versions;C((function(e){return m(m({},e),n)})),y((!t||!Object.keys(t).length)&&"No data for this period")},M=(0,c.qU)(e).contextsHardHash,q=(0,o.Z)(M);return(0,i.Z)((function(){return{cache:!1,key:"spaces.".concat(s,".rooms.").concat(e,".charts"),polling:!1,autorun:p||Boolean(s&&e),fetch:function(){return(0,d.Mn)(s,e,t,m({},k.current))},association:{getIds:function(){return(0,c.dA)({roomId:e,merge:S.current===t})},getError:function(){return(0,c.W2)({id:e,key:"error"})},getLoaded:function(){return(0,c.W2)({id:e,key:"loaded"})},getUpdatedAt:function(){return(0,c.W2)({id:e,key:"updatedAt"})}},getResource:function(t){return(0,c.PP)({id:e,key:t})},getResourcesInitializer:function(){var n=(0,c.Q7)({id:e,merge:S.current===t});return S.current=t,n},getResourceInitialState:function(e){return m({fullyLoaded:!0},e)},onFail:T,pollingOptions:{pollingInterval:x},onReceive:P,after:_,nodeIds:t,force:!0}}),[s,e,t,x,!!q&&!!M&&q!==M,_,w]),b}},29748:function(e,t,n){var s=n(4942),r=(n(2707),n(41539),n(15581),n(2490),n(34514),n(54747),n(21249),n(57640),n(9924),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4480)),a=n(47133),o=n(18997),i=n(74059),c=n(37518),l=n(25819),d=n(5934);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=(0,i.th)(),t=(0,c.UL)(),n=(0,r._8)((function(e){var n=e.set;return function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data,s=(void 0===e?{}:e).results;if(n((0,d.oq)({id:t,key:"loaded"}),!0),null!==s&&void 0!==s&&s.length){var r=s.sort((function(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})}));r.forEach((function(e){return n((0,a.lz)(e.id),(function(t){return u(u({},t),{},{loaded:!0},e)}))}));var o=r.map((function(e){return e.id}));n((0,d.oq)({id:t,key:"ids"}),o)}}}));(0,o.Z)((function(){return{enabled:!!e&&!!t,fetch:function(){return(0,l.j2)(e,t)},onReceive:n}}),[e,t])}},39904:function(e,t,n){n(92222);var s=n(68035),r=n(274),a=n(34912),o=n(44197),i=n(1229),c=n(33335);t.Z=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).polling,l=void 0===n||n,d=(0,c.gI)("room:ReadUsers");(0,s.Z)((function(){return{key:"spaces.".concat(e,".rooms.").concat(t,".members"),autorun:!!e&&!!t&&d,fetch:function(){return(0,r.fQ)(e,t)},polling:l,association:{getError:function(){return(0,i.Ci)({id:t,key:"error"})},getIds:function(){return(0,i.Ci)({id:t,key:"ids"})},getLoaded:function(){return(0,i.Ci)({id:t,key:"loaded"})},getUpdatedAt:function(){return(0,i.Ci)({id:t,key:"updatedAt"})}},sort:function(e,t){return e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})},getResource:function(e){return(0,a.mX)({id:e})},getResourcesInitializer:function(){return a.Bb},getResourceInitialState:function(){return o.E},pollingOptions:{pollingInterval:18e4}}}),[e,t])}},22648:function(e,t,n){n.d(t,{m:function(){return r}});var s=n(94829),r=function(){return(0,s.Z)("(max-width: 767px)")}},37682:function(e,t,n){var s=n(67294),r=n(6557),a=n.n(r),o=n(18446),i=n.n(o),c=n(44682);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a(),n=(0,s.useRef)();return(0,c.Sz)(e,(function(e){var s=t(e);return i()(n.current,s)||(n.current=s),n.current}))}},18997:function(e,t,n){var s=n(29439),r=(n(41539),n(88674),n(17727),n(67294)),a=n(50308),o=n.n(a),i=n(9058),c=n(46189),l=n(29283),d=n(13477);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=(0,i.e)(),a=(0,r.useMemo)((function(){return n?n.getRoot():null}),[n]),h=(0,r.useMemo)(e,t),u=(0,r.useRef)(!1),m=(0,l.Z)(),p=(0,s.Z)(m,2)[1],f=(0,r.useCallback)((function(e){u.current=!1;var t=h.fetch,n=h.onStart,s=void 0===n?o():n,r=h.onFail,i=void 0===r?o():r,l=h.onReceive,d=void 0===l?o():l,m=h.onSettle,f=void 0===m?o():m,g=h.polling,b=void 0===g||g,y=h.pollingOptions;s();var v={timeoutId:null,promise:null},_=function(){return v.promise=t(e),v.promise.then(d).catch((function(e){if(!e.isCancel)throw e})),v.promise},w=function e(){v.timeoutId=setTimeout((function(){return null!==y&&void 0!==y&&y.shouldPause&&a&&(a.getAttribute("hovering")||a.getAttribute("paused"))?e():p.current?void _().then((function(){return!u.current&&b&&e()})).catch((function(t){return!u.current&&!t.isCancel&&b&&e()})):e()}),(null===y||void 0===y?void 0:y.pollingInterval)||c.Z.pollingInterval)};return _().then((function(){return!u.current&&b&&w()})).catch((function(e){return!e.isCancel&&i(e)})).finally(f),function(){var e,t;u.current=!0,null===(e=v.promise)||void 0===e||null===(t=e.cancel)||void 0===t||t.call(e),clearTimeout(v.timeoutId)}}),t),g=(0,d.Iy)("isAnonymous");return(0,r.useEffect)((function(){var e=h.enabled,t=void 0===e||e,n=h.force;if(!g||void 0!==n&&n)return t?f():void 0}),[f]),f}},3975:function(e,t,n){n.d(t,{QF:function(){return c},vq:function(){return l}});var s=n(67294),r=n(89250),a=n(37518),o=n(74059),i=function(e,t,n){var r=t();(0,s.useLayoutEffect)((function(){r!==e&&n(e)}),[r,e])},c=function(){var e=(0,r.UO)().roomSlug,t=(0,a.TF)();return i(e,a.vf,t),e},l=function(){var e=(0,r.UO)().spaceSlug,t=(0,o.$v)();return i(e,o.uk,t),e};t.ZP=function(){return[l(),c()]}}}]); \ No newline at end of file
diff --git a/web/gui/v2/427.ccb665950325037c0dda.css b/web/gui/v2/676.ccb665950325037c0dda.css
index 8ffa259c..8ffa259c 100644
--- a/web/gui/v2/427.ccb665950325037c0dda.css
+++ b/web/gui/v2/676.ccb665950325037c0dda.css
diff --git a/web/gui/v2/723.5cbb8237ca47fb280150.chunk.js b/web/gui/v2/723.44a07361b47c51d272dd.chunk.js
index 639e4b72..f727db17 100644
--- a/web/gui/v2/723.5cbb8237ca47fb280150.chunk.js
+++ b/web/gui/v2/723.44a07361b47c51d272dd.chunk.js
@@ -1 +1 @@
-!function(){try{var o="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(o._sentryDebugIds=o._sentryDebugIds||{},o._sentryDebugIds[t]="9a5b21d0-7053-4344-9049-b564bd77b646",o._sentryDebugIdIdentifier="sentry-dbid-9a5b21d0-7053-4344-9049-b564bd77b646")}catch(o){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[723],{76723:function(o,t,n){n.r(t),n.d(t,{Notification:function(){return f.P_},Warning:function(){return g},createErrorNotification:function(){return f.t_},createNotification:function(){return f.sc},default:function(){return p},showDashboardCreatedNotification:function(){return u.FR},showInvalidDashboardSlugNotification:function(){return u.cH},showJoiningSpaceNotification:function(){return u.P4},showNodesNotification:function(){return u.Q5},showRoomCreationNotification:function(){return u.R6},showRoomsInSpaceNotification:function(){return u.aN},showRoomsNotification:function(){return u.$T},showSpaceNotification:function(){return u.iL},showUsersInRoomNotification:function(){return u.oG},showUsersInSpaceNotification:function(){return u.OU},toast:function(){return d.Z}});var e=n(87462),r=n(45987),i=n(67294),a=n(60677),c=n(15557),s=n(55678),d=n(52631),u=n(33427),f=n(74855),l=["title","children"],g=function(o){var t=o.title,n=o.children,a=(0,r.Z)(o,l);return i.createElement(c.Flex,(0,e.Z)({column:!0,gap:2,background:"warningBackground",backgroundOpacity:.7,round:!0,padding:[4]},a),t&&i.createElement(c.H3,null,t),n)},b=["className"],p=(0,a.default)((function(o){var t=o.className,n=(0,r.Z)(o,b);return i.createElement(c.Box,{className:t},i.createElement(s.Ix,(0,e.Z)({},n,{closeButton:!1})))})).withConfig({displayName:"notifications__Container",componentId:"sc-8t8ne-0"})([".Toastify__toast-container{position:fixed;width:unset;min-width:400px;max-width:500px;z-index:50;color:",";}.Toastify__toast{padding:0;padding-top:5px;background:",";border:1px solid ",";}.Toastify__toast--error{background:",";border:1px solid ",";}.Toastify__toast--warning{background:",";border:1px solid ",";}.Toastify__toast--success{background:",";border:1px solid ",";}.Toastify__toast-icon{display:none;}.Toastify__toast-body{}.Toastify__progress-bar{bottom:unset;top:0;}.Toastify__progress-bar--success{background-color:",";}.Toastify__progress-bar--error{background-color:",";}"],(0,c.getColor)(["neutral","limedSpruce"]),(0,c.getColor)("elementBackground"),(0,c.getColor)("text"),(0,c.getColor)(["red","lavender"]),(0,c.getColor)("error"),(0,c.getColor)("bright"),(0,c.getColor)("warning"),(0,c.getColor)(["green","frostee"]),(0,c.getColor)("success"),(0,c.getColor)("success"),(0,c.getColor)("error"))}}]); \ No newline at end of file
+!function(){try{var o="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(o._sentryDebugIds=o._sentryDebugIds||{},o._sentryDebugIds[t]="cd4d455b-3c8c-439d-a310-359b269e08e0",o._sentryDebugIdIdentifier="sentry-dbid-cd4d455b-3c8c-439d-a310-359b269e08e0")}catch(o){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[723],{76723:function(o,t,n){n.r(t),n.d(t,{Notification:function(){return f.P_},Warning:function(){return g},createErrorNotification:function(){return f.t_},createNotification:function(){return f.sc},default:function(){return p},showDashboardCreatedNotification:function(){return u.FR},showInvalidDashboardSlugNotification:function(){return u.cH},showJoiningSpaceNotification:function(){return u.P4},showNodesNotification:function(){return u.Q5},showRoomCreationNotification:function(){return u.R6},showRoomsInSpaceNotification:function(){return u.aN},showRoomsNotification:function(){return u.$T},showSpaceNotification:function(){return u.iL},showUsersInRoomNotification:function(){return u.oG},showUsersInSpaceNotification:function(){return u.OU},toast:function(){return d.Z}});var e=n(87462),r=n(45987),i=n(67294),a=n(60677),c=n(57509),s=n(55678),d=n(52631),u=n(33427),f=n(74855),l=["title","children"],g=function(o){var t=o.title,n=o.children,a=(0,r.Z)(o,l);return i.createElement(c.Flex,(0,e.Z)({column:!0,gap:2,background:"warningBackground",backgroundOpacity:.7,round:!0,padding:[4]},a),t&&i.createElement(c.H3,null,t),n)},b=["className"],p=(0,a.default)((function(o){var t=o.className,n=(0,r.Z)(o,b);return i.createElement(c.Box,{className:t},i.createElement(s.Ix,(0,e.Z)({},n,{closeButton:!1})))})).withConfig({displayName:"notifications__Container",componentId:"sc-8t8ne-0"})([".Toastify__toast-container{position:fixed;width:unset;min-width:400px;max-width:500px;z-index:50;color:",";}.Toastify__toast{padding:0;padding-top:5px;background:",";border:1px solid ",";}.Toastify__toast--error{background:",";border:1px solid ",";}.Toastify__toast--warning{background:",";border:1px solid ",";}.Toastify__toast--success{background:",";border:1px solid ",";}.Toastify__toast-icon{display:none;}.Toastify__toast-body{}.Toastify__progress-bar{bottom:unset;top:0;}.Toastify__progress-bar--success{background-color:",";}.Toastify__progress-bar--error{background-color:",";}"],(0,c.getColor)(["neutral","limedSpruce"]),(0,c.getColor)("elementBackground"),(0,c.getColor)("text"),(0,c.getColor)(["red","lavender"]),(0,c.getColor)("error"),(0,c.getColor)("bright"),(0,c.getColor)("warning"),(0,c.getColor)(["green","frostee"]),(0,c.getColor)("success"),(0,c.getColor)("success"),(0,c.getColor)("error"))}}]); \ No newline at end of file
diff --git a/web/gui/v2/765.abdc73e99f918c4200a8.chunk.js b/web/gui/v2/765.abdc73e99f918c4200a8.chunk.js
deleted file mode 100644
index 9c1f0fdb..00000000
--- a/web/gui/v2/765.abdc73e99f918c4200a8.chunk.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="71232073-46a8-4b28-b5d9-9b99973f059f",e._sentryDebugIdIdentifier="sentry-dbid-71232073-46a8-4b28-b5d9-9b99973f059f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[765],{39434:function(e,t,n){t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var o={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var l=r?Object.getOwnPropertyDescriptor(e,a):null;l&&(l.get||l.set)?Object.defineProperty(o,a,l):o[a]=e[a]}o.default=e,n&&n.set(e,o);return o}(n(67294)),r=i(n(53087)),a=i(n(81743)),l=["text","maxLength","Component","noTooltip"];function i(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}var u=function(e){var t=e.text,n=e.maxLength,i=void 0===n?15:n,c=e.Component,u=void 0===c?"div":c,s=e.noTooltip,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,l),f=(0,o.useMemo)((function(){return t?(0,r.default)(t,i):null}),[t,i]);return s||f===t?o.default.createElement(u,d,f):o.default.createElement(a.default,{content:t},o.default.createElement(u,d,f))};t.default=u},7922:function(e,t,n){n.r(t),n.d(t,{default:function(){return M}});n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var o=n(87462),r=n(29439),a=n(4942),l=n(93433),i=(n(41539),n(64211),n(2490),n(41874),n(26699),n(32023),n(85827),n(25387),n(72608),n(92222),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(57327),n(88449),n(59849),n(21249),n(57640),n(9924),n(47941),n(67294)),c=n(48286),u=n(91966),s=n.n(u),d=n(89250),f=n(97945),g=n(97193),m=n(95248),p=n(46667),b=n(27261),h=n(9458),v=n(15557),y=n(6973),x=(0,i.forwardRef)((function(e,t){var n=e.selectedNodesNumber;return i.createElement(v.Flex,{"data-testid":"selectNodesIndicator",ref:t,cursor:"pointer"},i.createElement(v.Box,{margin:[0,1,0,0]},i.createElement(v.TextSmall,null,"Selected")),i.createElement(v.Flex,{border:{size:"1px",type:"solid",color:"dropdown"},round:!0,padding:[0,1],width:{min:7.5},height:5,background:"mainBackground",as:v.TextSmall,justifyContent:"center",alignItems:"center",color:"textDescription"},n||"-"))})),w=n(91128),O=n(4514),E=n(89149),C=n(50308),k=n.n(C),j=function(e){var t=e.startAddingNodes,n=void 0===t?k():t,o=e.startShowingIntegrations,r=void 0===o?k():o,a=e.close,l=void 0===a?k():a,c=(0,i.useCallback)((function(){l(),n()}),[n]),u=(0,i.useCallback)((function(){l(),r()}),[r]);return i.createElement(i.Fragment,null,i.createElement(v.Flex,{gap:2,justifyContent:"end",padding:[2,4,0,4]},i.createElement(v.Button,{icon:"nodes_hollow",flavour:"hollow",onClick:c,small:!0,label:"Add Nodes"}),i.createElement(v.Button,{icon:"integrations",flavour:"hollow",onClick:u,small:!0,label:"Integrations"})))},S=n(38671);function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function I(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var L={Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasML:!0,hasAlerts:!0,hasFn:!0},node:{textColor:"text",showAlerts:!0,showMl:!0,showFn:!0}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale",hasML:!0},node:{textColor:"text",showMl:!0}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline"},node:{textColor:"textLite"}}},P=[],_=function(e,t,n,o){var r=!e.some((function(e){return!n.includes(e)})),a=n.length&&!r&&e.some((function(e){return n.includes(e)}));return e.length?e.reduce((function(e,r){var a=o[r],i=a.name,c=a.capabilities,u=n.includes(r);return[].concat((0,l.Z)(e),[I(I({value:r,label:i,nodeId:r,selected:u,status:t,capabilities:c},L[t].node),{},{maxLength:80})])}),[I(I({value:e,selected:r,indeterminate:a,status:t},L[t].head),{},{maxLength:80})]):[]},M=(0,i.memo)((function(){var e=(0,m.wT)(),t=(0,r.Z)(e,2),n=t[0],a=t[1],u=(0,i.useState)(n||P),C=(0,r.Z)(u,2),k=C[0],Z=C[1];(0,i.useEffect)((function(){Z(n||P)}),[n]);var I=(0,p.Z)(!1),L=(0,r.Z)(I,4),M=L[0],N=L[1],T=L[3],D=(0,i.useCallback)((function(){M&&(a(k),T())}),[k]),F=(0,f.HZ)(),A=(0,f.e5)(),B=(0,f.mf)(),R=(0,f.Y0)(),W=(0,i.useCallback)((function(e){var t=e.value,n=e.checked;Z((function(e){return Array.isArray(t)?n?(0,l.Z)(new Set([].concat((0,l.Z)(e),(0,l.Z)(t)))):s()(e,t):n?[].concat((0,l.Z)(e),[t]):e.filter((function(e){return e!==t}))}))}),[]),z=(0,i.useMemo)((function(){return{live:{counter:F.length,statusText:"Live"},stale:{counter:A.length,statusText:"Stale"},offline:{counter:B.length,statusText:"Offline"},unseen:{counter:R.length,statusText:"Unseen"}}}),[F.length,A.length,B.length,R.length]),Y=(0,d.bS)("/spaces/:spaceSlug/rooms/:roomSlug/nodes/:nodeId"),H=(0,w.Z)();(0,c.Z)((function(){H(M)}),[M]);var U=(0,f.d$)(),$=(0,i.useMemo)((function(){var e=_(F,"Live",k,U),t=_(A,"Stale",k,U),n=_(B,"Offline",k,U);return e.concat(t,n)}),[k,F.length,A.length,B.length]),q=(0,p.Z)(),G=(0,r.Z)(q,4),J=G[0],K=G[2],Q=G[3],V=(0,S.Z)().onIntegrationsClick;return i.createElement(i.Fragment,null,i.createElement(v.Menu,{dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":!0},dropdownProps:{height:{max:"60vh"},width:{max:"600px"},overflow:"auto",padding:[0,0,3],"data-testid":"filterNodes-drop"},itemProps:{padding:[1,4],maxLength:60},disabled:!!Y,items:$,Item:g.c,Footer:function(e){return i.createElement(j,(0,o.Z)({startAddingNodes:K,startShowingIntegrations:V},e))},onChange:W,value:k,"data-value":k.join(",")||"all-nodes",closeOnClick:!1,onClose:D,hasSearch:!0},i.createElement(O.Z,{"data-testid":"nodesIndicator",round:"2px",alignItems:"center",justifyContent:"end",width:{min:75},background:"elevationLevelOne",disabled:!!Y},i.createElement(v.Flex,{cursor:"pointer",onClick:N,padding:[2,3],gap:2,alignItems:"center"},i.createElement(v.TextSmall,{strong:!0},"Nodes"),i.createElement(h.Z,null),Object.keys(z).map((function(e){return i.createElement(i.Fragment,{key:e},i.createElement(b.Z,{statusText:z[e].statusText,counter:z[e].counter,statusColor:y.B[e]}),i.createElement(h.Z,null))})),i.createElement(x,{selectedNodesNumber:k.length}),i.createElement(v.Icon,{name:"chevron_down",size:"small",color:"textLite"})))),J&&i.createElement(E.Z,{onClose:Q}))}))},92087:function(e,t,n){var o=n(17854),r=n(19781),a=n(47045),l=n(67066),i=n(47293),c=o.RegExp,u=c.prototype;r&&i((function(){var e=!0;try{c(".","d")}catch(i){e=!1}var t={},n="",o=e?"dgimsy":"gimsy",r=function(e,o){Object.defineProperty(t,e,{get:function(){return n+=o,!0}})},a={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var l in e&&(a.hasIndices="d"),a)r(l,a[l]);return Object.getOwnPropertyDescriptor(u,"flags").get.call(t)!==o||n!==o}))&&a(u,"flags",{configurable:!0,get:l})},82481:function(e,t,n){n(82109)({target:"String",proto:!0},{repeat:n(38415)})}}]); \ No newline at end of file
diff --git a/web/gui/v2/765.e7fa6ef71a637cc3ae4d.chunk.js b/web/gui/v2/765.e7fa6ef71a637cc3ae4d.chunk.js
new file mode 100644
index 00000000..96fc7c58
--- /dev/null
+++ b/web/gui/v2/765.e7fa6ef71a637cc3ae4d.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0dba9bf1-a3b7-431c-aba6-e326e4dd82e8",e._sentryDebugIdIdentifier="sentry-dbid-0dba9bf1-a3b7-431c-aba6-e326e4dd82e8")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[765],{39434:function(e,t,n){t.__esModule=!0,t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var o={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var l=r?Object.getOwnPropertyDescriptor(e,a):null;l&&(l.get||l.set)?Object.defineProperty(o,a,l):o[a]=e[a]}o.default=e,n&&n.set(e,o);return o}(n(67294)),r=i(n(53087)),a=i(n(81743)),l=["text","maxLength","Component","noTooltip"];function i(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}var u=function(e){var t=e.text,n=e.maxLength,i=void 0===n?15:n,c=e.Component,u=void 0===c?"div":c,s=e.noTooltip,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,l),f=(0,o.useMemo)((function(){return t?(0,r.default)(t,i):null}),[t,i]);return s||f===t?o.default.createElement(u,d,f):o.default.createElement(a.default,{content:t},o.default.createElement(u,d,f))};t.default=u},7922:function(e,t,n){n.r(t),n.d(t,{default:function(){return N}});n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var o=n(87462),r=n(29439),a=n(4942),l=n(93433),i=(n(41539),n(64211),n(2490),n(41874),n(26699),n(32023),n(85827),n(25387),n(72608),n(92222),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(57327),n(88449),n(59849),n(21249),n(57640),n(9924),n(47941),n(67294)),c=n(48286),u=n(91966),s=n.n(u),d=n(89250),f=n(97945),g=n(97193),m=n(95248),p=n(46667),b=n(27261),h=n(9458),v=n(57509),y=n(6973),x=(0,i.forwardRef)((function(e,t){var n=e.selectedNodesNumber;return i.createElement(v.Flex,{"data-testid":"selectNodesIndicator",ref:t,cursor:"pointer"},i.createElement(v.Box,{margin:[0,1,0,0]},i.createElement(v.TextSmall,null,"Selected")),i.createElement(v.Flex,{border:{size:"1px",type:"solid",color:"dropdown"},round:!0,padding:[0,1],width:{min:7.5},height:5,background:"mainBackground",as:v.TextSmall,justifyContent:"center",alignItems:"center",color:"textDescription"},n||"-"))})),w=n(91128),O=n(4514),E=n(89149),C=n(50308),k=n.n(C),j=n(53030),S=function(e){var t=e.startAddingNodes,n=void 0===t?k():t,o=e.startShowingIntegrations,r=void 0===o?k():o,a=e.close,l=void 0===a?k():a,c=(0,i.useCallback)((function(){l(),n()}),[n]),u=(0,i.useCallback)((function(){l(),r()}),[r]);return i.createElement(i.Fragment,null,i.createElement(v.Flex,{gap:2,justifyContent:"end",padding:[2,4,0,4]},i.createElement(j.Z,{icon:"nodes_hollow",flavour:"hollow",onClick:c,small:!0,label:"Add Nodes"}),i.createElement(v.Button,{icon:"integrations",flavour:"hollow",onClick:u,small:!0,label:"Integrations"})))},Z=n(38671);function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var P={Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasML:!0,hasAlerts:!0,hasFn:!0},node:{textColor:"text",showAlerts:!0,showMl:!0,showFn:!0}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale",hasML:!0},node:{textColor:"text",showMl:!0}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline"},node:{textColor:"textLite"}}},_=[],M=function(e,t,n,o){var r=!e.some((function(e){return!n.includes(e)})),a=n.length&&!r&&e.some((function(e){return n.includes(e)}));return e.length?e.reduce((function(e,r){var a=o[r],i=a.name,c=a.capabilities,u=n.includes(r);return[].concat((0,l.Z)(e),[L(L({value:r,label:i,nodeId:r,selected:u,status:t,capabilities:c},P[t].node),{},{maxLength:80})])}),[L(L({value:e,selected:r,indeterminate:a,status:t},P[t].head),{},{maxLength:80})]):[]},N=(0,i.memo)((function(){var e=(0,m.wT)(),t=(0,r.Z)(e,2),n=t[0],a=t[1],u=(0,i.useState)(n||_),C=(0,r.Z)(u,2),k=C[0],j=C[1];(0,i.useEffect)((function(){j(n||_)}),[n]);var I=(0,p.Z)(!1),L=(0,r.Z)(I,4),P=L[0],N=L[1],T=L[3],D=(0,i.useCallback)((function(){P&&(a(k),T())}),[k]),F=(0,f.HZ)(),A=(0,f.e5)(),B=(0,f.mf)(),R=(0,f.Y0)(),W=(0,i.useCallback)((function(e){var t=e.value,n=e.checked;j((function(e){return Array.isArray(t)?n?(0,l.Z)(new Set([].concat((0,l.Z)(e),(0,l.Z)(t)))):s()(e,t):n?[].concat((0,l.Z)(e),[t]):e.filter((function(e){return e!==t}))}))}),[]),z=(0,i.useMemo)((function(){return{live:{counter:F.length,statusText:"Live"},stale:{counter:A.length,statusText:"Stale"},offline:{counter:B.length,statusText:"Offline"},unseen:{counter:R.length,statusText:"Unseen"}}}),[F.length,A.length,B.length,R.length]),Y=(0,d.bS)("/spaces/:spaceSlug/rooms/:roomSlug/nodes/:nodeId"),H=(0,w.Z)();(0,c.Z)((function(){H(P)}),[P]);var U=(0,f.d$)(),$=(0,i.useMemo)((function(){var e=M(F,"Live",k,U),t=M(A,"Stale",k,U),n=M(B,"Offline",k,U);return e.concat(t,n)}),[k,F.length,A.length,B.length]),q=(0,p.Z)(),G=(0,r.Z)(q,4),J=G[0],K=G[2],Q=G[3],V=(0,Z.Z)().onIntegrationsClick;return i.createElement(i.Fragment,null,i.createElement(v.Menu,{dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":!0},dropdownProps:{height:{max:"60vh"},width:{max:"600px"},overflow:"auto",padding:[0,0,3],"data-testid":"filterNodes-drop"},itemProps:{padding:[1,4],maxLength:60},disabled:!!Y,items:$,Item:g.c,Footer:function(e){return i.createElement(S,(0,o.Z)({startAddingNodes:K,startShowingIntegrations:V},e))},onChange:W,value:k,"data-value":k.join(",")||"all-nodes",closeOnClick:!1,onClose:D,hasSearch:!0},i.createElement(O.Z,{"data-testid":"nodesIndicator",round:"2px",alignItems:"center",justifyContent:"end",width:{min:75},background:"elevationLevelOne",disabled:!!Y},i.createElement(v.Flex,{cursor:"pointer",onClick:N,padding:[1,3],gap:2,alignItems:"center"},i.createElement(v.TextSmall,{strong:!0},"Nodes"),i.createElement(h.Z,null),Object.keys(z).map((function(e){return i.createElement(i.Fragment,{key:e},i.createElement(b.Z,{statusText:z[e].statusText,counter:z[e].counter,statusColor:y.B[e]}),i.createElement(h.Z,null))})),i.createElement(x,{selectedNodesNumber:k.length}),i.createElement(v.Icon,{name:"chevron_down",size:"small",color:"textLite"})))),J&&i.createElement(E.Z,{onClose:Q}))}))},92087:function(e,t,n){var o=n(17854),r=n(19781),a=n(47045),l=n(67066),i=n(47293),c=o.RegExp,u=c.prototype;r&&i((function(){var e=!0;try{c(".","d")}catch(i){e=!1}var t={},n="",o=e?"dgimsy":"gimsy",r=function(e,o){Object.defineProperty(t,e,{get:function(){return n+=o,!0}})},a={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var l in e&&(a.hasIndices="d"),a)r(l,a[l]);return Object.getOwnPropertyDescriptor(u,"flags").get.call(t)!==o||n!==o}))&&a(u,"flags",{configurable:!0,get:l})},82481:function(e,t,n){n(82109)({target:"String",proto:!0},{repeat:n(38415)})}}]); \ No newline at end of file
diff --git a/web/gui/v2/814.3332136a855b7f4da0ef.chunk.js b/web/gui/v2/814.3332136a855b7f4da0ef.chunk.js
new file mode 100644
index 00000000..ecdf035a
--- /dev/null
+++ b/web/gui/v2/814.3332136a855b7f4da0ef.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="63e109e4-c976-4860-ba18-f6b4ea2d10b6",e._sentryDebugIdIdentifier="sentry-dbid-63e109e4-c976-4860-ba18-f6b4ea2d10b6")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[814],{52428:function(e,t,n){n.d(t,{J:function(){return d}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(58206),a=n(52631),l=n(74855);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){(0,o.Z)(e);var n=(0,l.sc)(c(c({header:"Copied",text:"Command copied to your clipboard! Please run it on your node's terminal.",icon:"gear"},t),{},{success:!0}));a.Z.success(n,{context:"copy"})}}},57387:function(e,t,n){n.d(t,{ZM:function(){return b}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(45987),o=n(4942),a=n(67294),l=n(60677),i=n(57509),c=n(52428),d=["children"],s=["children","confirmationText","commandText"];function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var m=(0,l.default)(i.Box).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({color:"textDescription",background:"modalTabsBackground",border:{side:"all",color:"borderSecondary"},padding:[4,10,4,4],position:"relative",width:"100%"},e)})).withConfig({displayName:"command__StyledTerminalCommand",componentId:"sc-wnwmk3-0"})(["color:",';border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,i.getColor)("textDescription")),p=(0,l.default)(i.Icon).withConfig({displayName:"command__StyledIcon",componentId:"sc-wnwmk3-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),f=(0,l.default)(i.Box).attrs({color:"textDescription",border:{side:"all",color:"borderSecondary"},background:"modalTabsBackground",padding:[0,1]}).withConfig({displayName:"command__CodeText",componentId:"sc-wnwmk3-2"})(["display:inline-block;color:",';border-radius:2px;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,i.getColor)("textDescription")),b=function(e){var t=e.children,n=(0,r.Z)(e,d);return a.createElement(f,n,t)};t.ZP=function(e){var t=e.children,n=e.confirmationText,o=void 0===n?"Command copied to your clipboard.":n,l=e.commandText,d=void 0===l?t:l,u=(0,r.Z)(e,s);return a.createElement(m,u,t,a.createElement(i.Box,{position:"absolute",bottom:"8px",right:"8px"},a.createElement(p,{name:"copy",size:"small",color:"primary",onClick:(0,c.J)(d||t,{text:o})})))}},34885:function(e,t,n){n.d(t,{Z:function(){return m}});var r=n(87462),o=n(45987),a=n(67294),l=n(4211),i=n(57509),c=function(){return a.createElement(i.Text,null,"Something went wrong during document parsing")},d=["transformConfiguration","validationConfig","validate","errorComponent","children"],s=function(e){return function(t){var n=t.transformConfiguration,i=void 0===n?{}:n,s=t.validationConfig,u=void 0===s?{}:s,m=t.validate,p=t.errorComponent,f=t.children,b=(0,o.Z)(t,d),g=function(e){var t=e.markdocContent,n=e.validate,r=e.validationConfig,o=e.transformConfiguration;return(0,a.useMemo)((function(){var e=l.ZP.parse("string"===typeof t?t:""),a=[];return n&&(a=l.ZP.validate(e,r)),{tree:a.length?null:l.ZP.transform(e,o),errors:a}}),[t,n,r,o])}({markdocContent:f,validate:m,validationConfig:u,transformConfiguration:i}),h=g.tree,x=g.errors,v=p&&"function"==typeof p?p:c;return x.length?a.createElement(v,{errors:x}):a.createElement(e,(0,r.Z)({tree:h},b))}},u=(0,a.memo)(s((function(e){var t=e.tree,n=e.renderConfiguration;return l.ZP.renderers.react(t,a,n)}))),m=(s((function(e){var t=e.tree;return l.ZP.renderers.html(t)})),u)},20686:function(e,t,n){n.d(t,{Z:function(){return p}});var r=n(87462),o=n(45987),a=n(67294),l=n(57509),i=n(60677),c=(0,i.default)(l.Icon).attrs({width:12,height:14}).withConfig({displayName:"styled__StyledIcon",componentId:"sc-z9l478-0"})([""]),d=(0,i.default)(l.Flex).attrs({alignItems:"center",justifyContent:"center",padding:[.5,2],round:9}).withConfig({displayName:"styled__StyledPill",componentId:"sc-z9l478-1"})(["cursor:pointer;pointer-events:",";"],(function(e){return e.onClick?"auto":"none"})),s={critical:{background:"errorSemi",color:"error",border:{side:"all",color:"error"}},warning:{background:"warningSemi",color:"warning",border:{side:"all",color:"warning"}},neutral:{background:"generic",color:"text",border:{side:"all",color:"border"}},clear:{background:"successSemi",color:"success",border:{side:"all",color:"success"}},criticalAlertsTable:{background:"errorSemi",color:"error",border:{side:"all",color:"error"}},warningAlertsTable:{background:"warningSemi",color:"warning",border:{side:"all",color:"warning"}},clearAlertsTable:{background:"successSemi",color:"success",border:{side:"all",color:"success"}}},u=["type","icon","children","textSize"],m={small:l.TextSmall,normal:l.Text},p=function(e){var t=e.type,n=e.icon,i=e.children,p=e.textSize,f=(0,o.Z)(e,u),b=s[t]||{},g=b.background,h=b.color,x=b.border,v=p?m[p]:n?l.Text:l.TextMicro;return a.createElement(d,(0,r.Z)({background:g,border:x,gap:1.5},f),n&&a.createElement(c,{name:n,title:n,color:h}),i&&a.createElement(v,{color:h,textTransform:"capitalize",strong:!0,wordBreak:"keep-all",whiteSpace:"nowrap"},i))}},94814:function(e,t,n){n.r(t),n.d(t,{default:function(){return K}});var r=n(29439),o=n(67294),a=n(37518),l=n(12899),i=n(60677),c=n(61193),d=n.n(c),s=n(57509),u=(n(85827),n(41539),n(25387),n(2490),n(72608),n(69826),n(31672),n(59461),n(34885)),m=n(97945),p=function(e){var t=e.label,n=e.value;return o.createElement(s.Flex,{gap:2},o.createElement(s.Text,{strong:!0},t,":"),o.createElement(s.Text,null,n))},f=function(e){var t=e.name,n=e.nodeId,i=e.chartId,c=e.alertOptions,d=(0,a.UL)(),u=(0,l.R3)(),f=(0,r.Z)(u,2)[1],b=(0,m.bV)(n,"name");return o.createElement(s.Flex,{column:!0},c.length>1&&o.createElement(s.Box,{margin:[0,0,2,0]},o.createElement(s.Select,{"data-testid":"".concat(t,"-assistant-modal-alerts-select"),onChange:function(e){var t=e.value;return f({roomId:d,alert:{name:t}})},styles:{size:"tiny"},menuPlacement:"auto",options:c,value:{value:t,label:t}})),1==c.length&&o.createElement(p,{label:"Alert",value:t}),b&&o.createElement(p,{label:"Node",value:b}),i&&o.createElement(p,{label:"Chart id",value:i}))},b=n(87462),g=function(e){return o.createElement(s.Box,(0,b.Z)({as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}},e))},h=n(45987),x=(n(9653),n(91008)),v=n(57387),w=n(46189),y=["level"],E=["children"],C=["children","href"],k=["content"],Z=["content"],I=["ordered","children"],S=i.default.ol.withConfig({displayName:"markdocSchema__OrderedList",componentId:"sc-1maymd4-0"})(["list-style:roman;padding-left:14px;"]),O=i.default.ul.withConfig({displayName:"markdocSchema__UnorderedList",componentId:"sc-1maymd4-1"})(['list-style-image:url("','/img/list-style-image.svg");padding-left:14px;'],w.Z.assetsBaseURL),_={heading:{render:function(e){var t=e.level,n=void 0===t?1:t,r=(0,h.Z)(e,y),a=s.H1;switch(n){case 2:a=s.H2;break;case 3:a=s.H3;break;case 4:a=s.H4;break;case 5:a=s.H5;break;case 6:a=s.H6}return o.createElement(a,(0,b.Z)({margin:[2,0]},r))},attributes:{id:{type:String},level:{type:Number}}},paragraph:{render:function(e){var t=e.children,n=(0,h.Z)(e,E);return o.createElement(s.Flex,(0,b.Z)({padding:[2,0]},n),o.createElement(s.Text,null,t))}},link:{render:function(e){var t=e.children,n=e.href,r=(0,h.Z)(e,C);return o.createElement(x.Z,(0,b.Z)({href:n,rel:"noopener noreferrer",target:"_blank"},r),t)},attributes:{href:{type:String}}},code:{render:function(e){var t=e.content,n=(0,h.Z)(e,k);return o.createElement(v.ZM,n,t)},attributes:{content:{type:String}}},fence:{render:function(e){var t=e.content,n=(0,h.Z)(e,Z);return o.createElement(v.ZP,n,t)},attributes:{content:{type:String}}},list:{render:function(e){var t=e.ordered,n=e.children,r=(0,h.Z)(e,I),a=t?S:O;return o.createElement(a,r,n)},attributes:{ordered:{type:Boolean}}}},z=function(e){var t=e.selectedAlert,n=(0,l.Nu)(),a=(0,r.Z)(n,1)[0],i=t.name,c=t.nodeId,d=t.chartId,m=(0,l.UD)({alarm:i,node:c,chart:d}),p=m.loaded,b=m.value,h=m.hasError,x=a.reduce((function(e,t){var n={value:t.name,label:t.name};return e.find((function(e){return e.label==n.label}))||e.push(n),e}),[]);return p?h?o.createElement(s.Text,null,"Something went wrong"):null!==b&&void 0!==b&&b.result?o.createElement(s.Flex,{column:!0,gap:3},o.createElement(f,{name:i,nodeId:c,chartId:d,alertOptions:x}),o.createElement(g,null),o.createElement(u.Z,{transformConfiguration:{nodes:_}},b.result)):o.createElement(s.Text,null,"No data"):o.createElement(s.Text,null,"Loading...")},P=n(27856),T=n(46667),j=n(82351),M=n(20686),N=n(50308),D=n.n(N),B=(0,i.default)(s.Flex).withConfig({displayName:"minimizedModal__ElevatedContent",componentId:"sc-9ix42v-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),F=(0,i.default)(s.Icon).withConfig({displayName:"minimizedModal__IconAbsolute",componentId:"sc-9ix42v-1"})(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);"]),A=function(e){var t=e.onModalClose,n=void 0===t?D():t;return o.createElement(j.Z,{content:"Close assistant",zIndex:7500},o.createElement(B,{position:"absolute",bottom:"37px",right:"-10px",background:"mainBackground",sx:{borderRadius:"100%"},border:{side:"all",color:"primary",size:"1px",type:"solid"},width:"28px",height:"28px",onClick:n,cursor:"pointer"},o.createElement(F,{name:"x",color:"text",size:"sm"})))},L=function(e){var t=e.alert,n=e.onClick,r=void 0===n?D():n;return o.createElement(j.Z,{content:"Show assistant",zIndex:7500},o.createElement(B,{position:"absolute",top:"0",right:"0",onClick:r,cursor:"pointer"},o.createElement(M.Z,{type:(null===t||void 0===t?void 0:t.status)||"neutral"},null===t||void 0===t?void 0:t.name)))},R=function(e){var t=e.alert,n=e.isMinimized,a=e.maximize,l=void 0===a?D():a,i=e.onModalClose,c=void 0===i?D():i,d=(0,o.useState)(!1),u=(0,r.Z)(d,2),m=u[0],p=u[1];return o.createElement(s.Flex,{position:"relative",width:"56px",height:n?"95px":"56px",onMouseEnter:function(){return p(n)},onMouseLeave:function(){return p(!1)}},o.createElement(B,{position:"absolute",bottom:"0",background:"primary",sx:{borderRadius:"100%"},width:"56px",height:"56px",cursor:"move"},o.createElement(F,{name:"netdataAssistant",size:"large"})),m&&o.createElement(o.Fragment,null,o.createElement(L,{alert:t,onClick:function(){n&&(l(),p(!1))}}),o.createElement(A,{onModalClose:c})))},U=i.default.ul.withConfig({displayName:"helpTooltipContent__List",componentId:"sc-uh9315-0"})(["width:350px;padding-left:16px;list-style:disc outside none;"]),H=function(){return o.createElement(U,null,o.createElement("li",null,"You can drag around the assistant window and navigate to other tabs within the same room, and the assistant window won't go away."),o.createElement("li",null,"Use the buttons at the right to expand, or minimize the assistant window."),o.createElement("li",null,"Hold down the ",o.createElement(s.TextSmall,{strong:!0},"Shift")," button in order to select any text inside the assistant window."))},V=(0,i.default)(s.ModalContent).attrs((function(e){var t=e.expanded;return{width:t?{base:"80vw"}:{base:150,max:150,min:70},height:t?{base:"80vh",min:"80vh"}:{base:150,max:150,min:150},padding:[0,0,4,0]}})).withConfig({displayName:"assistantModal__ModalContent",componentId:"sc-nobbii-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),J=function(){var e=(0,T.Z)(),t=(0,r.Z)(e,2),n=t[0],a=t[1],i=(0,o.useState)(!1),c=(0,r.Z)(i,2),u=c[0],m=c[1],p=(0,o.useState)(!1),f=(0,r.Z)(p,2),b=f[0],g=f[1],h=(0,T.Z)(),x=(0,r.Z)(h,4),v=x[0],w=x[1],y=x[3],E=(0,l.R3)(),C=(0,r.Z)(E,2),k=C[0],Z=C[1],I=(null===k||void 0===k?void 0:k.alert)||{},S=(0,P.D)(300,(function(e){var t=e.target;return g(t.scrollTop>150&&!(null===I||void 0===I||!I.name))})),O=function(){return Z(null)};return o.createElement(s.Modal,{zIndex:7e3,backdrop:!1},o.createElement(d(),{disabled:u},o.createElement(s.Flex,{column:!0,alignItems:"end",gap:3},!v&&o.createElement(V,{expanded:n,cursor:u?"text":"move",tabIndex:0,onKeyDown:function(e){"Shift"==e.key&&m(!0)},onKeyUp:function(){return m(!1)}},o.createElement(s.ModalHeader,{justifyContent:"between"},o.createElement(s.Flex,{gap:2,alignItems:"center"},o.createElement(s.Icon,{name:"netdataAssistant",color:"text"}),b?o.createElement(M.Z,{type:(null===I||void 0===I?void 0:I.status)||"neutral"},null===I||void 0===I?void 0:I.name):o.createElement(s.H4,null,"Netdata Assistant"),o.createElement(j.Z,{plain:!0,isBasic:!0,align:"top",content:H,zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.Icon,{name:"question",color:"textLite",width:"16px",height:"16px"})))),o.createElement(s.Flex,{gap:2,alignItems:"baseline"},o.createElement(j.Z,{align:"bottom",content:"Minimize window",zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.ModalButton,{iconName:"minimize_s",onClick:w,testId:"assistant-modal-minimize-button"}))),o.createElement(j.Z,{align:"bottom",content:n?"Reduce window size":"Expand window",zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.ModalButton,{iconName:n?"reduceSize":"fullScreen",onClick:a,testId:"assistant-modal-expand-collapse-button"}))),o.createElement(j.Z,{align:"bottom",content:"Close window",zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.ModalCloseButton,{onClose:O,testId:"assistant-modal-close-button"}))))),o.createElement(s.ModalBody,{overflow:{vertical:"auto"},onScroll:S,cursor:u?"text":"default"},o.createElement(z,{selectedAlert:I}))),o.createElement(R,{isMinimized:v,maximize:y,alert:I,onModalClose:O}))))},K=function(){var e=(0,a.UL)(),t=(0,l.R3)(),n=(0,r.Z)(t,2),i=n[0],c=n[1],d=i||{},s=d.roomId,u=d.alert;return(0,o.useEffect)((function(){s!=e&&c(null)}),[s,e]),u&&s==e?o.createElement(J,null):null}},12899:function(e,t,n){n.d(t,{R3:function(){return u},Nu:function(){return m},UD:function(){return s}});var r=n(4480),o=n(26398),a=n(74059),l=n(37518),i=(0,r.cn)({key:"assistantAlert",default:null}),c=(0,r.cn)({key:"assistantAlertsAtom",default:[]}),d=(0,r.CG)({key:"assistantSelector",get:function(e){var t=e.space,n=e.room,r=e.alarm,a=e.node,l=e.chart;return function(){return function(e){var t=e.space,n=e.room,r=e.alarm,a=e.node,l=e.chart;return o.Z.post("/api/v1/troubleshoot",{space:t,room:n,alarm:r,node:a,chart:l})}({space:t,room:n,alarm:r,node:a||"dummy-node-id",chart:l||"dummy-chart-id"})}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),s=function(e){var t,n=e.alarm,o=e.node,i=e.chart,c=(0,a.th)(),s=(0,l.UL)(),u=(0,r.$P)(d({space:c,room:s,alarm:n,node:o,chart:i}));return{loaded:"loading"!==u.state,value:null===(t=u.contents)||void 0===t?void 0:t.data,hasError:"hasError"===u.state}},u=function(){return(0,r.FV)(i)},m=function(){return(0,r.FV)(c)}}}]); \ No newline at end of file
diff --git a/web/gui/v2/814.bfc6d4650c1097dc56eb.chunk.js b/web/gui/v2/814.bfc6d4650c1097dc56eb.chunk.js
deleted file mode 100644
index 5656b4bf..00000000
--- a/web/gui/v2/814.bfc6d4650c1097dc56eb.chunk.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="14272f61-6315-4d49-aceb-d17687a49002",e._sentryDebugIdIdentifier="sentry-dbid-14272f61-6315-4d49-aceb-d17687a49002")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[814],{52428:function(e,t,n){n.d(t,{J:function(){return d}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(58206),a=n(52631),l=n(74855);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){(0,o.Z)(e);var n=(0,l.sc)(c(c({header:"Copied",text:"Command copied to your clipboard! Please run it on your node's terminal.",icon:"gear"},t),{},{success:!0}));a.Z.success(n,{context:"copy"})}}},57387:function(e,t,n){n.d(t,{ZM:function(){return g}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(45987),o=n(4942),a=n(67294),l=n(60677),i=n(15557),c=n(52428),d=["children"],s=["children","confirmationText","commandText"];function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var m=(0,l.default)(i.Box).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({color:"textDescription",background:"modalTabsBackground",border:{side:"all",color:"borderSecondary"},padding:[4,10,4,4],position:"relative",width:"100%"},e)})).withConfig({displayName:"command__StyledTerminalCommand",componentId:"sc-wnwmk3-0"})(["color:",';border-radius:2px;overflow-wrap:anywhere;white-space:pre-wrap;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,i.getColor)("textDescription")),p=(0,l.default)(i.Icon).withConfig({displayName:"command__StyledIcon",componentId:"sc-wnwmk3-1"})(["display:flex;align-self:flex-end;cursor:pointer;"]),f=(0,l.default)(i.Box).attrs({color:"textDescription",border:{side:"all",color:"borderSecondary"},background:"modalTabsBackground",padding:[0,1]}).withConfig({displayName:"command__CodeText",componentId:"sc-wnwmk3-2"})(["display:inline-block;color:",';border-radius:2px;font-family:"Courier New",Courier,monospace;letter-spacing:0.09px;line-height:18px;font-size:14px;word-break:break-word;'],(0,i.getColor)("textDescription")),g=function(e){var t=e.children,n=(0,r.Z)(e,d);return a.createElement(f,n,t)};t.ZP=function(e){var t=e.children,n=e.confirmationText,o=void 0===n?"Command copied to your clipboard.":n,l=e.commandText,d=void 0===l?t:l,u=(0,r.Z)(e,s);return a.createElement(m,u,t,a.createElement(i.Box,{position:"absolute",bottom:"8px",right:"8px"},a.createElement(p,{name:"copy",size:"small",color:"primary",onClick:(0,c.J)(d||t,{text:o})})))}},34885:function(e,t,n){n.d(t,{Z:function(){return m}});var r=n(87462),o=n(45987),a=n(67294),l=n(4211),i=n(15557),c=function(){return a.createElement(i.Text,null,"Something went wrong during document parsing")},d=["transformConfiguration","validationConfig","validate","errorComponent","children"],s=function(e){return function(t){var n=t.transformConfiguration,i=void 0===n?{}:n,s=t.validationConfig,u=void 0===s?{}:s,m=t.validate,p=t.errorComponent,f=t.children,g=(0,o.Z)(t,d),b=function(e){var t=e.markdocContent,n=e.validate,r=e.validationConfig,o=e.transformConfiguration;return(0,a.useMemo)((function(){var e=l.ZP.parse("string"===typeof t?t:""),a=[];return n&&(a=l.ZP.validate(e,r)),{tree:a.length?null:l.ZP.transform(e,o),errors:a}}),[t,n,r,o])}({markdocContent:f,validate:m,validationConfig:u,transformConfiguration:i}),h=b.tree,x=b.errors,v=p&&"function"==typeof p?p:c;return x.length?a.createElement(v,{errors:x}):a.createElement(e,(0,r.Z)({tree:h},g))}},u=(0,a.memo)(s((function(e){var t=e.tree,n=e.renderConfiguration;return l.ZP.renderers.react(t,a,n)}))),m=(s((function(e){var t=e.tree;return l.ZP.renderers.html(t)})),u)},20686:function(e,t,n){n.d(t,{Z:function(){return p}});var r=n(87462),o=n(45987),a=n(67294),l=n(15557),i=n(60677),c=(0,i.default)(l.Icon).attrs({width:12,height:14}).withConfig({displayName:"styled__StyledIcon",componentId:"sc-z9l478-0"})([""]),d=(0,i.default)(l.Flex).attrs({alignItems:"center",justifyContent:"center",padding:[.5,2],round:9}).withConfig({displayName:"styled__StyledPill",componentId:"sc-z9l478-1"})(["cursor:pointer;pointer-events:",";"],(function(e){return e.onClick?"auto":"none"})),s={critical:{background:"nodeBadgeBackground",color:"errorLite",border:{side:"all",color:"error"}},warning:{background:"nodeBadgeBackground",color:"warningText",border:{side:"all",color:"warning"}},neutral:{background:"disabledBackground",color:"textDescription",border:{side:"all",color:"tabsBorder"}},clear:{background:"nodeBadgeBackground",color:"successLite",border:{side:"all",color:"success"}},criticalAlertsTable:{background:"nodeBadgeBackground",color:"errorLite",border:{side:"all",color:"error"}},warningAlertsTable:{background:"nodeBadgeBackground",color:"warningText",border:{side:"all",color:"warning"}},clearAlertsTable:{background:"nodeBadgeBackground",color:"successLite",border:{side:"all",color:"success"}}},u=["type","icon","children","textSize"],m={small:l.TextSmall,normal:l.Text},p=function(e){var t=e.type,n=e.icon,i=e.children,p=e.textSize,f=(0,o.Z)(e,u),g=s[t]||{},b=g.background,h=g.color,x=g.border,v=p?m[p]:n?l.Text:l.TextMicro;return a.createElement(d,(0,r.Z)({background:b,border:x,gap:1.5},f),n&&a.createElement(c,{name:n,title:n,color:h}),i&&a.createElement(v,{color:h,textTransform:"capitalize",strong:!0,wordBreak:"keep-all",whiteSpace:"nowrap"},i))}},94814:function(e,t,n){n.r(t),n.d(t,{default:function(){return J}});var r=n(29439),o=n(67294),a=n(37518),l=n(12899),i=n(60677),c=n(61193),d=n.n(c),s=n(15557),u=(n(85827),n(41539),n(25387),n(2490),n(72608),n(69826),n(31672),n(59461),n(34885)),m=n(97945),p=function(e){var t=e.label,n=e.value;return o.createElement(s.Flex,{gap:2},o.createElement(s.Text,{strong:!0},t,":"),o.createElement(s.Text,null,n))},f=function(e){var t=e.name,n=e.nodeId,i=e.chartId,c=e.alertOptions,d=(0,a.UL)(),u=(0,l.R3)(),f=(0,r.Z)(u,2)[1],g=(0,m.bV)(n,"name");return o.createElement(s.Flex,{column:!0},c.length>1&&o.createElement(s.Box,{margin:[0,0,2,0]},o.createElement(s.Select,{"data-testid":"".concat(t,"-assistant-modal-alerts-select"),onChange:function(e){var t=e.value;return f({roomId:d,alert:{name:t}})},styles:{size:"tiny"},menuPlacement:"auto",options:c,value:{value:t,label:t}})),1==c.length&&o.createElement(p,{label:"Alert",value:t}),g&&o.createElement(p,{label:"Node",value:g}),i&&o.createElement(p,{label:"Chart id",value:i}))},g=n(87462),b=function(e){return o.createElement(s.Box,(0,g.Z)({as:"hr",height:"1px",width:"100%",sx:{borderWidth:"1px 0px 0px 0px",borderColor:"borderSecondary",borderStyle:"solid"}},e))},h=n(45987),x=(n(9653),n(91008)),v=n(57387),y=["level"],w=["children"],E=["children","href"],C=["content"],k=["content"],Z=["ordered","children"],I=i.default.ol.withConfig({displayName:"markdocSchema__OrderedList",componentId:"sc-1maymd4-0"})(["list-style:roman;padding-left:14px;"]),S=i.default.ul.withConfig({displayName:"markdocSchema__UnorderedList",componentId:"sc-1maymd4-1"})(['list-style-image:url("/static/img/list-style-image.svg");padding-left:14px;']),O={heading:{render:function(e){var t=e.level,n=void 0===t?1:t,r=(0,h.Z)(e,y),a=s.H1;switch(n){case 2:a=s.H2;break;case 3:a=s.H3;break;case 4:a=s.H4;break;case 5:a=s.H5;break;case 6:a=s.H6}return o.createElement(a,(0,g.Z)({margin:[2,0]},r))},attributes:{id:{type:String},level:{type:Number}}},paragraph:{render:function(e){var t=e.children,n=(0,h.Z)(e,w);return o.createElement(s.Flex,(0,g.Z)({padding:[2,0]},n),o.createElement(s.Text,null,t))}},link:{render:function(e){var t=e.children,n=e.href,r=(0,h.Z)(e,E);return o.createElement(x.Z,(0,g.Z)({href:n,rel:"noopener noreferrer",target:"_blank"},r),t)},attributes:{href:{type:String}}},code:{render:function(e){var t=e.content,n=(0,h.Z)(e,C);return o.createElement(v.ZM,n,t)},attributes:{content:{type:String}}},fence:{render:function(e){var t=e.content,n=(0,h.Z)(e,k);return o.createElement(v.ZP,n,t)},attributes:{content:{type:String}}},list:{render:function(e){var t=e.ordered,n=e.children,r=(0,h.Z)(e,Z),a=t?I:S;return o.createElement(a,r,n)},attributes:{ordered:{type:Boolean}}}},_=function(e){var t=e.selectedAlert,n=(0,l.Nu)(),a=(0,r.Z)(n,1)[0],i=t.name,c=t.nodeId,d=t.chartId,m=(0,l.UD)({alarm:i,node:c,chart:d}),p=m.loaded,g=m.value,h=m.hasError,x=a.reduce((function(e,t){var n={value:t.name,label:t.name};return e.find((function(e){return e.label==n.label}))||e.push(n),e}),[]);return p?h?o.createElement(s.Text,null,"Something went wrong"):null!==g&&void 0!==g&&g.result?o.createElement(s.Flex,{column:!0,gap:3},o.createElement(f,{name:i,nodeId:c,chartId:d,alertOptions:x}),o.createElement(b,null),o.createElement(u.Z,{transformConfiguration:{nodes:O}},g.result)):o.createElement(s.Text,null,"No data"):o.createElement(s.Text,null,"Loading...")},z=n(27856),B=n(46667),T=n(82351),P=n(20686),j=n(50308),M=n.n(j),N=(0,i.default)(s.Flex).withConfig({displayName:"minimizedModal__ElevatedContent",componentId:"sc-9ix42v-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),D=(0,i.default)(s.Icon).withConfig({displayName:"minimizedModal__IconAbsolute",componentId:"sc-9ix42v-1"})(["position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);"]),F=function(e){var t=e.onModalClose,n=void 0===t?M():t;return o.createElement(T.Z,{content:"Close assistant",zIndex:7500},o.createElement(N,{position:"absolute",bottom:"37px",right:"-10px",background:"mainBackground",sx:{borderRadius:"100%"},border:{side:"all",color:"primary",size:"1px",type:"solid"},width:"28px",height:"28px",onClick:n,cursor:"pointer"},o.createElement(D,{name:"x",color:"text",size:"sm"})))},A=function(e){var t=e.alert,n=e.onClick,r=void 0===n?M():n;return o.createElement(T.Z,{content:"Show assistant",zIndex:7500},o.createElement(N,{position:"absolute",top:"0",right:"0",onClick:r,cursor:"pointer"},o.createElement(P.Z,{type:(null===t||void 0===t?void 0:t.status)||"neutral"},null===t||void 0===t?void 0:t.name)))},L=function(e){var t=e.alert,n=e.isMinimized,a=e.maximize,l=void 0===a?M():a,i=e.onModalClose,c=void 0===i?M():i,d=(0,o.useState)(!1),u=(0,r.Z)(d,2),m=u[0],p=u[1];return o.createElement(s.Flex,{position:"relative",width:"56px",height:n?"95px":"56px",onMouseEnter:function(){return p(n)},onMouseLeave:function(){return p(!1)}},o.createElement(N,{position:"absolute",bottom:"0",background:"primary",sx:{borderRadius:"100%"},width:"56px",height:"56px",cursor:"move"},o.createElement(D,{name:"netdataAssistant",size:"large"})),m&&o.createElement(o.Fragment,null,o.createElement(A,{alert:t,onClick:function(){n&&(l(),p(!1))}}),o.createElement(F,{onModalClose:c})))},H=i.default.ul.withConfig({displayName:"helpTooltipContent__List",componentId:"sc-uh9315-0"})(["width:350px;padding-left:16px;list-style:disc outside none;"]),R=function(){return o.createElement(H,null,o.createElement("li",null,"You can drag around the assistant window and navigate to other tabs within the same room, and the assistant window won't go away."),o.createElement("li",null,"Use the buttons at the right to expand, or minimize the assistant window."),o.createElement("li",null,"Hold down the ",o.createElement(s.TextSmall,{strong:!0},"Shift")," button in order to select any text inside the assistant window."))},U=(0,i.default)(s.ModalContent).attrs((function(e){var t=e.expanded;return{width:t?{base:"80vw"}:{base:150,max:150,min:70},height:t?{base:"80vh",min:"80vh"}:{base:150,max:150,min:150},padding:[0,0,4,0]}})).withConfig({displayName:"assistantModal__ModalContent",componentId:"sc-nobbii-0"})(["box-shadow:0 18px 28px rgba(0,0,0,0.5);"]),V=function(){var e=(0,B.Z)(),t=(0,r.Z)(e,2),n=t[0],a=t[1],i=(0,o.useState)(!1),c=(0,r.Z)(i,2),u=c[0],m=c[1],p=(0,o.useState)(!1),f=(0,r.Z)(p,2),g=f[0],b=f[1],h=(0,B.Z)(),x=(0,r.Z)(h,4),v=x[0],y=x[1],w=x[3],E=(0,l.R3)(),C=(0,r.Z)(E,2),k=C[0],Z=C[1],I=(null===k||void 0===k?void 0:k.alert)||{},S=(0,z.D)(300,(function(e){var t=e.target;return b(t.scrollTop>150&&!(null===I||void 0===I||!I.name))})),O=function(){return Z(null)};return o.createElement(s.Modal,{zIndex:7e3,backdrop:!1},o.createElement(d(),{disabled:u},o.createElement(s.Flex,{column:!0,alignItems:"end",gap:3},!v&&o.createElement(U,{expanded:n,cursor:u?"text":"move",tabIndex:0,onKeyDown:function(e){"Shift"==e.key&&m(!0)},onKeyUp:function(){return m(!1)}},o.createElement(s.ModalHeader,{justifyContent:"between"},o.createElement(s.Flex,{gap:2,alignItems:"center"},o.createElement(s.Icon,{name:"netdataAssistant",color:"text"}),g?o.createElement(P.Z,{type:(null===I||void 0===I?void 0:I.status)||"neutral"},null===I||void 0===I?void 0:I.name):o.createElement(s.H4,null,"Netdata Assistant"),o.createElement(T.Z,{plain:!0,isBasic:!0,align:"top",content:R,zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.Icon,{name:"question",color:"textLite",width:"16px",height:"16px"})))),o.createElement(s.Flex,{gap:2,alignItems:"baseline"},o.createElement(T.Z,{align:"bottom",content:"Minimize window",zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.ModalButton,{iconName:"minimize_s",onClick:y,testId:"assistant-modal-minimize-button"}))),o.createElement(T.Z,{align:"bottom",content:n?"Reduce window size":"Expand window",zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.ModalButton,{iconName:n?"reduceSize":"fullScreen",onClick:a,testId:"assistant-modal-expand-collapse-button"}))),o.createElement(T.Z,{align:"bottom",content:"Close window",zIndex:7050},o.createElement(s.Flex,null,o.createElement(s.ModalCloseButton,{onClose:O,testId:"assistant-modal-close-button"}))))),o.createElement(s.ModalBody,{overflow:{vertical:"auto"},onScroll:S,cursor:u?"text":"default"},o.createElement(_,{selectedAlert:I}))),o.createElement(L,{isMinimized:v,maximize:w,alert:I,onModalClose:O}))))},J=function(){var e=(0,a.UL)(),t=(0,l.R3)(),n=(0,r.Z)(t,2),i=n[0],c=n[1],d=i||{},s=d.roomId,u=d.alert;return(0,o.useEffect)((function(){s!=e&&c(null)}),[s,e]),u&&s==e?o.createElement(V,null):null}},12899:function(e,t,n){n.d(t,{R3:function(){return u},Nu:function(){return m},UD:function(){return s}});var r=n(4480),o=n(26398),a=n(74059),l=n(37518),i=(0,r.cn)({key:"assistantAlert",default:null}),c=(0,r.cn)({key:"assistantAlertsAtom",default:[]}),d=(0,r.CG)({key:"assistantSelector",get:function(e){var t=e.space,n=e.room,r=e.alarm,a=e.node,l=e.chart;return function(){return function(e){var t=e.space,n=e.room,r=e.alarm,a=e.node,l=e.chart;return o.Z.post("/api/v1/troubleshoot",{space:t,room:n,alarm:r,node:a,chart:l})}({space:t,room:n,alarm:r,node:a||"dummy-node-id",chart:l||"dummy-chart-id"})}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),s=function(e){var t,n=e.alarm,o=e.node,i=e.chart,c=(0,a.th)(),s=(0,l.UL)(),u=(0,r.$P)(d({space:c,room:s,alarm:n,node:o,chart:i}));return{loaded:"loading"!==u.state,value:null===(t=u.contents)||void 0===t?void 0:t.data,hasError:"hasError"===u.state}},u=function(){return(0,r.FV)(i)},m=function(){return(0,r.FV)(c)}}}]); \ No newline at end of file
diff --git a/web/gui/v2/817.883beafccc77faf546a2.chunk.js b/web/gui/v2/817.cd5bd5294b2afab8578f.chunk.js
index b8f50c53..8fcade97 100644
--- a/web/gui/v2/817.883beafccc77faf546a2.chunk.js
+++ b/web/gui/v2/817.cd5bd5294b2afab8578f.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="40030a9c-9a50-4749-934d-d2a1c619b9c3",e._sentryDebugIdIdentifier="sentry-dbid-40030a9c-9a50-4749-934d-d2a1c619b9c3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[817],{76817:function(e,n,d){d.r(n),d.d(n,{AuthTokenCallback:function(){return f}});var t=d(67294),o=d(58591),f=function(){var e=(0,o.np)("redirect_uri"),n=(0,o.np)("token");return(0,t.useEffect)((function(){e&&n&&(localStorage.setItem("netdataJWT",n),location.href=decodeURIComponent(e))}),[]),null};n.default=f}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="40030a9c-9a50-4749-934d-d2a1c619b9c3",e._sentryDebugIdIdentifier="sentry-dbid-40030a9c-9a50-4749-934d-d2a1c619b9c3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[817],{76817:function(e,n,d){d.r(n),d.d(n,{AuthTokenCallback:function(){return f}});var t=d(67294),o=d(58591),f=function(){var e=(0,o.np)("redirect_uri"),n=(0,o.np)("token");return(0,t.useEffect)((function(){e&&n&&(localStorage.setItem("netdataJWT",n),location.href=decodeURIComponent(e))}),[]),null};n.default=f}}]); \ No newline at end of file
diff --git a/web/gui/v2/837.457977c0c92687b5bf08.chunk.js b/web/gui/v2/837.bedee580bb54cbbff07c.chunk.js
index 33b27ff8..4289f100 100644
--- a/web/gui/v2/837.457977c0c92687b5bf08.chunk.js
+++ b/web/gui/v2/837.bedee580bb54cbbff07c.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8dcf7d68-de18-40b8-809b-f74030b2331a",e._sentryDebugIdIdentifier="sentry-dbid-8dcf7d68-de18-40b8-809b-f74030b2331a")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[837],{92432:function(e,t,n){n.d(t,{L:function(){return r}});var r=function(e,t,n,r,o){var i,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"gaCustomEvent";if(window.envSettings.tracking){if(window.dataLayer){var l={event:a,eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:o};window.dataLayer.push(l)}window.gtag&&window.gtag("event","gaCustomEvent",{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:o}),null!==(i=window.posthog)&&void 0!==i&&i.__loaded&&window.posthog.capture(a,{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r})}}},91940:function(e,t,n){n.d(t,{Z:function(){return D}});var r=n(87462),o=n(45987),i=n(67294),a=n(94829),l=n(15557),c=(0,n(60677).default)(l.Flex).attrs({flex:{grow:"1",shrink:"0"},width:{max:"100%"}}).withConfig({displayName:"panel__Panel",componentId:"sc-4zlw7c-0"})(["",";",";"],(function(e){var t=e.order;return t&&"order: ".concat(t,";")}),(function(e){return e.bgGradient&&"background: linear-gradient(34.14deg, #536775 -26.52%, #2F3A42 53.66%);\n"})),d=n(26502),u=function(){return i.createElement(l.Flex,{alignItems:"center",border:{side:"bottom",color:"disabled"},column:!0,padding:[0,0,8,0]},i.createElement(d.pR,null))},s=(n(21249),n(57640),n(9924),[{icon:"qualityOfServiceSolid",title:"Free forever",text:"Netdata community is free forever and gives you everything you need to start monitoring. For more serious enterprise users, paid subscriptions are available for added-value features."},{icon:"firewallSolid",title:"Privacy by design",text:"Netdata\u2019s distributed architecture is key to its incredible speed and scalability. It\u2019s also key to data safety, as your metrics are only ever streamed live, and will never be centrally stored by Netdata."}]),g=n(29439),m=(n(69826),n(41539),n(31672),n(2490),n(59461),n(46189)),h=n(5429),f=n(26398),p=["children"],v=["downScale"],w=function(e){var t,n=e.downScale,l=(0,o.Z)(e,v),c=(0,a.Z)("(min-width: 992px)");return(t=c?n[0]:n[1],function(e){var n=e.children,a=(0,o.Z)(e,p);return i.createElement(t,(0,r.Z)({color:"bright"},a),n)})(l)},b=n(87854),x=n.n(b),y=n(95348),k=n.n(y),E=new(x())({id:"cloudStatistics",use:"cloudStatistics-usage",viewBox:"0 0 194 146",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 194 146" id="cloudStatistics"><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M9.557 142.145h174.886a7.576 7.576 0 0 0 7.607-7.577v-.594H1.95v.594c0 4.16 3.43 7.577 7.607 7.577Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M81.749 137.688h30.577c2.088 0 3.729-1.634 3.729-3.714H78.02a3.733 3.733 0 0 0 3.729 3.714ZM15.374 108.493V34.949c0-4.457 3.58-8.023 8.055-8.023H60.12M178.701 44.83v89.143H15.374v-17.086M140.442 27h30.204c4.475 0 8.055 3.566 8.055 8.023v2.526" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.879 32.2h38.408c.671 0 1.193.52 1.193 1.189v94.939c0 .668-.522 1.188-1.193 1.188H67.131M20.595 44.086V33.39c0-.669.522-1.189 1.193-1.189h33.187M55.274 129.516H21.863c-.671 0-1.194-.52-1.194-1.188V49.881M78.766 106.487h-7.83c-5.967 0-10.815-4.828-10.815-10.771v-69.83c0-5.943 4.848-10.771 10.814-10.771h19.017M90.698 106.487H86.82" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.208 67.71V95.64c0 5.943-4.848 10.772-10.814 10.772H93.681M107.851 15.114h14.543c5.966 0 10.814 4.83 10.814 10.772V59.39M101.064 1H92.19a2.319 2.319 0 0 0-2.312 2.303v22.954a2.319 2.319 0 0 0 2.312 2.303h8.874a2.319 2.319 0 0 0 2.312-2.302V3.227c0-1.262-1.044-2.228-2.312-2.228Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 24.029a2.977 2.977 0 0 0 2.983-2.972 2.977 2.977 0 0 0-2.983-2.971 2.977 2.977 0 0 0-2.983 2.971 2.977 2.977 0 0 0 2.983 2.972ZM107.851 70.607c-2.834 2.897-6.786 4.68-11.186 4.68-8.652 0-15.662-6.983-15.662-15.6 0-8.618 7.01-15.6 15.662-15.6 8.651 0 15.661 6.982 15.661 15.6 0 2.748-.746 5.348-2.014 7.577" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 64.144c3.296 0 5.967-2.66 5.967-5.943 0-3.282-2.671-5.943-5.967-5.943-3.295 0-5.966 2.66-5.966 5.943 0 3.282 2.671 5.943 5.966 5.943ZM111.207 85.687h3.356M78.766 85.687h28.34M97.037 90.144h10.068M86.224 90.144h7.756M99.424 64.144h-5.519c-2.983 0-5.444 2.451-5.444 5.423v3.491M104.868 73.058v-3.565c0-1.635-.671-3.046-1.79-4.012" /><path fill="#2F3A42" d="M42.808 75.03c-19.315 0-34.915 15.6-34.915 34.914 0 19.315 15.6 34.915 34.915 34.915 19.314 0 34.914-15.6 34.914-34.915 0-19.314-15.6-34.914-34.914-34.914Zm3.714 52.743H34.636L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828a17.786 17.786 0 0 1-17.829 17.829Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M45.556 127.773h-10.92L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828 0 6.463-3.417 12.109-8.617 15.229" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M67.768 85.504c6.166 6.314 9.954 14.932 9.954 24.44 0 19.315-15.6 34.915-34.914 34.915-19.315 0-34.915-15.6-34.915-34.915 0-19.314 15.6-34.914 34.915-34.914 6.091 0 11.886 1.56 16.863 4.308" /></symbol>'}),C=(k().add(E),E),_=function(e){return i.createElement(l.Flex,(0,r.Z)({as:"svg",height:C.height,width:C.width,viewBox:C.viewBox},e),i.createElement("use",{xlinkHref:"#".concat(C.id)}))},S=n(92432),M=function(){return f.Z.get("https://us-east1-netdata-analytics-bi.cloudfunctions.net/netdata_public_metrics_website")},Z=m.Z.demoSlug,B=function(){var e=(0,h.Z)((function(){return{fetch:M}}),[]),t=(0,g.Z)(e,1)[0],n=(0,i.useMemo)((function(){var e,n,r;return t?{nodesOnline:null===(e=t.find((function(e){return"Nodes Online"===e.key})))||void 0===e?void 0:e.value,githubStars:null===(n=t.find((function(e){return"GitHub Stars"===e.key})))||void 0===n?void 0:n.value,dockerHubPulls:null===(r=t.find((function(e){return"DockerHub Pulls"===e.key})))||void 0===r?void 0:r.value}:{}}),[t]),r=n.nodesOnline,o=n.githubStars,a=n.dockerHubPulls;return i.createElement(l.Flex,{column:!0,gap:4},i.createElement(l.Flex,{column:!0,gap:2},i.createElement(_,{height:"160px",padding:[0,0,4,0]}),i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},r||"...")," ","Nodes Online"),i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},o||"...")," ","GitHub Stars"),i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},a||"...")," ","DockerHub Pulls")),i.createElement(w,{downScale:[l.TextBigger,l.TextBig],color:"bright",textAlign:"center",margin:[11,0,0]},"Sign in to monitor your entire infrastructure ",i.createElement("br",null)," with Netdata"),!window.envSettings.onprem&&i.createElement(l.Flex,{justifyContent:"center"},i.createElement(l.Button,{as:"a","data-ga":"signinup::click-demo::sni-view",href:"/spaces/".concat(Z),target:"_blank",onClick:function(){(0,S.L)("signinup","click-demo","sni-view")},label:"Live Demo",padding:[2,8]})))},F=function(e){var t=e.icon,n=e.title,r=e.text,o=(0,a.Z)("(min-width: 475px)");return i.createElement(l.Flex,{gap:4,alignItems:"start"},o&&i.createElement(l.Flex,{background:"transparent",justifyContent:"center",alignItems:"center",height:"64px",width:"64px",round:64,flex:"grow",border:{side:"all",color:"successLite"}},i.createElement(l.Icon,{name:t,height:"20px",widht:"20px",color:"successLite"})),i.createElement(l.Flex,{column:!0,justifyContent:"start",alignItems:"start",gap:2},i.createElement(l.TextBig,{color:"bright",strong:!0},n),i.createElement(l.Text,{color:"selected"},r)))},I=function(){return i.createElement(l.Flex,{column:!0,padding:[16,4,12],width:{max:"500px"},margin:[0,"auto"],gap:14},i.createElement(B,null),i.createElement(l.Flex,{column:!0,gap:8},s.map((function(e,t){return i.createElement(F,(0,r.Z)({key:t},e))}))))},T=["children"],D=function(e){var t=e.children,n=(0,o.Z)(e,T),d=(0,a.Z)("(min-width: 998px)");return i.createElement(l.Flex,(0,r.Z)({height:{min:"100vh"},flexWrap:!0},n),i.createElement(c,{background:"panel",bgGradient:!0,order:d?0:1},i.createElement(I,null)),i.createElement(c,{background:"mainBackground",order:d?1:0},i.createElement(l.Flex,{background:"transparent",column:!0,gap:8,padding:[12,4],width:{max:"500px"},margin:[0,"auto"]},i.createElement(u,null),t)))}},8360:function(e,t,n){var r=n(67294),o=n(15557),i=n(78312),a={url:"https://learn.netdata.cloud/",title:"docs"},l={url:"https://community.netdata.cloud/c/support/cloud-support/15",title:"forums"},c={url:"https://discord.gg/TjM6XCwC4e",title:"public discord channel"};t.Z=function(){return r.createElement(o.Text,{textAlign:"center"},"Need help? Check out our"," ",r.createElement(i.Fg,{href:a.url,target:"_blank",rel:"noopener noreferrer"},a.title,",")," ",r.createElement(i.Fg,{href:l.url,target:"_blank",rel:"noopener noreferrer"},l.title)," ","or"," ",r.createElement(i.Fg,{href:c.url,target:"_blank",rel:"noopener noreferrer"},c.title))}},78312:function(e,t,n){n.d(t,{Fg:function(){return l},P2:function(){return d},Sn:function(){return u},U5:function(){return c},Yb:function(){return s},xG:function(){return a}});var r=n(60677),o=n(15557),i=n(16772),a=r.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),l=r.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,o.getColor)("success"),(0,o.getColor)("success"),(0,o.getColor)("success"),(0,o.getColor)("main"),(0,o.getSizeBy)(1)),c=(0,r.default)(i.Z).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["label{margin-bottom:0;}> div{display:none;}"]),d=(0,r.default)(o.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,o.getSizeBy)(2),(function(e){return e.error&&(0,o.getColor)("error")})),u=(0,r.default)(o.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),s=(0,r.default)(o.Flex).attrs((function(e){var t=e.gap;return{column:!0,gap:void 0===t?8:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},87562:function(e,t,n){n.d(t,{$:function(){return o},G:function(){return i}});n(26699),n(32023),n(92222),n(74916),n(64765);var r=n(58591),o=function(e,t){var n=(0,r.kG)(["expires_at",t]),o=t.includes("join-callback")?decodeURIComponent(n):n;return"".concat(window.location.origin).concat(e,"#").concat(o)},i=function(e,t){var n=window.location,r=n.search,i=n.hash,a=encodeURIComponent(o("/sign-in".concat(r).concat(r.length?"&":"?","oauth=").concat(e,"&"),i)),l=encodeURIComponent(o("/sign-up/verify".concat(r).concat(r.length?"&":"?","oauth=").concat(e,"&"),i));return"/api/v2/auth/account/".concat(e,"?redirect_uri=").concat(a,"&register_uri=").concat(l).concat(t?"&is_unverified_registration=true":"")}},16772:function(e,t,n){var r=n(87462),o=n(45987),i=n(67294),a=n(15557),l=["onChange","value","onKeyDown","label"];t.Z=function(e){var t=e.onChange,n=e.value,c=e.onKeyDown,d=e.label,u=(0,o.Z)(e,l);return i.createElement(a.TextInput,(0,r.Z)({label:d,name:"userEmail",placeholder:"Enter an email address",value:n,onChange:t,onKeyDown:c},u))}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="da4c62c3-72fd-4e22-aefb-0824edf6b5a9",e._sentryDebugIdIdentifier="sentry-dbid-da4c62c3-72fd-4e22-aefb-0824edf6b5a9")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[837],{92432:function(e,t,n){n.d(t,{L:function(){return r}});var r=function(e,t,n,r,o){var i,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"gaCustomEvent";if(window.envSettings.tracking){if(window.dataLayer){var l={event:a,eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:o};window.dataLayer.push(l)}window.gtag&&window.gtag("event","gaCustomEvent",{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:o}),null!==(i=window.posthog)&&void 0!==i&&i.__loaded&&window.posthog.capture(a,{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r})}}},91940:function(e,t,n){n.d(t,{Z:function(){return D}});var r=n(87462),o=n(45987),i=n(67294),a=n(94829),l=n(57509),c=(0,n(60677).default)(l.Flex).attrs({flex:{grow:"1",shrink:"0"},width:{max:"100%"}}).withConfig({displayName:"panel__Panel",componentId:"sc-4zlw7c-0"})(["",";",";"],(function(e){var t=e.order;return t&&"order: ".concat(t,";")}),(function(e){return e.bgGradient&&"background: linear-gradient(34.14deg, #536775 -26.52%, #2F3A42 53.66%);\n"})),d=n(26502),u=function(){return i.createElement(l.Flex,{alignItems:"center",border:{side:"bottom",color:"disabled"},column:!0,padding:[0,0,8,0]},i.createElement(d.pR,null))},s=(n(21249),n(57640),n(9924),[{icon:"qualityOfServiceSolid",title:"Free forever",text:"Netdata community is free forever and gives you everything you need to start monitoring. For more serious enterprise users, paid subscriptions are available for added-value features."},{icon:"firewallSolid",title:"Privacy by design",text:"Netdata\u2019s distributed architecture is key to its incredible speed and scalability. It\u2019s also key to data safety, as your metrics are only ever streamed live, and will never be centrally stored by Netdata."}]),g=n(29439),m=(n(69826),n(41539),n(31672),n(2490),n(59461),n(46189)),h=n(5429),f=n(26398),p=["children"],v=["downScale"],w=function(e){var t,n=e.downScale,l=(0,o.Z)(e,v),c=(0,a.Z)("(min-width: 992px)");return(t=c?n[0]:n[1],function(e){var n=e.children,a=(0,o.Z)(e,p);return i.createElement(t,(0,r.Z)({color:"bright"},a),n)})(l)},b=n(87854),x=n.n(b),y=n(95348),k=n.n(y),E=new(x())({id:"cloudStatistics",use:"cloudStatistics-usage",viewBox:"0 0 194 146",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 194 146" id="cloudStatistics"><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M9.557 142.145h174.886a7.576 7.576 0 0 0 7.607-7.577v-.594H1.95v.594c0 4.16 3.43 7.577 7.607 7.577Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M81.749 137.688h30.577c2.088 0 3.729-1.634 3.729-3.714H78.02a3.733 3.733 0 0 0 3.729 3.714ZM15.374 108.493V34.949c0-4.457 3.58-8.023 8.055-8.023H60.12M178.701 44.83v89.143H15.374v-17.086M140.442 27h30.204c4.475 0 8.055 3.566 8.055 8.023v2.526" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.879 32.2h38.408c.671 0 1.193.52 1.193 1.189v94.939c0 .668-.522 1.188-1.193 1.188H67.131M20.595 44.086V33.39c0-.669.522-1.189 1.193-1.189h33.187M55.274 129.516H21.863c-.671 0-1.194-.52-1.194-1.188V49.881M78.766 106.487h-7.83c-5.967 0-10.815-4.828-10.815-10.771v-69.83c0-5.943 4.848-10.771 10.814-10.771h19.017M90.698 106.487H86.82" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.208 67.71V95.64c0 5.943-4.848 10.772-10.814 10.772H93.681M107.851 15.114h14.543c5.966 0 10.814 4.83 10.814 10.772V59.39M101.064 1H92.19a2.319 2.319 0 0 0-2.312 2.303v22.954a2.319 2.319 0 0 0 2.312 2.303h8.874a2.319 2.319 0 0 0 2.312-2.302V3.227c0-1.262-1.044-2.228-2.312-2.228Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 24.029a2.977 2.977 0 0 0 2.983-2.972 2.977 2.977 0 0 0-2.983-2.971 2.977 2.977 0 0 0-2.983 2.971 2.977 2.977 0 0 0 2.983 2.972ZM107.851 70.607c-2.834 2.897-6.786 4.68-11.186 4.68-8.652 0-15.662-6.983-15.662-15.6 0-8.618 7.01-15.6 15.662-15.6 8.651 0 15.661 6.982 15.661 15.6 0 2.748-.746 5.348-2.014 7.577" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 64.144c3.296 0 5.967-2.66 5.967-5.943 0-3.282-2.671-5.943-5.967-5.943-3.295 0-5.966 2.66-5.966 5.943 0 3.282 2.671 5.943 5.966 5.943ZM111.207 85.687h3.356M78.766 85.687h28.34M97.037 90.144h10.068M86.224 90.144h7.756M99.424 64.144h-5.519c-2.983 0-5.444 2.451-5.444 5.423v3.491M104.868 73.058v-3.565c0-1.635-.671-3.046-1.79-4.012" /><path fill="#2F3A42" d="M42.808 75.03c-19.315 0-34.915 15.6-34.915 34.914 0 19.315 15.6 34.915 34.915 34.915 19.314 0 34.914-15.6 34.914-34.915 0-19.314-15.6-34.914-34.914-34.914Zm3.714 52.743H34.636L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828a17.786 17.786 0 0 1-17.829 17.829Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M45.556 127.773h-10.92L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828 0 6.463-3.417 12.109-8.617 15.229" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M67.768 85.504c6.166 6.314 9.954 14.932 9.954 24.44 0 19.315-15.6 34.915-34.914 34.915-19.315 0-34.915-15.6-34.915-34.915 0-19.314 15.6-34.914 34.915-34.914 6.091 0 11.886 1.56 16.863 4.308" /></symbol>'}),C=(k().add(E),E),_=function(e){return i.createElement(l.Flex,(0,r.Z)({as:"svg",height:C.height,width:C.width,viewBox:C.viewBox},e),i.createElement("use",{xlinkHref:"#".concat(C.id)}))},S=n(92432),M=function(){return f.Z.get("https://us-east1-netdata-analytics-bi.cloudfunctions.net/netdata_public_metrics_website")},Z=m.Z.demoSlug,B=function(){var e=(0,h.Z)((function(){return{fetch:M}}),[]),t=(0,g.Z)(e,1)[0],n=(0,i.useMemo)((function(){var e,n,r;return t?{nodesOnline:null===(e=t.find((function(e){return"Nodes Online"===e.key})))||void 0===e?void 0:e.value,githubStars:null===(n=t.find((function(e){return"GitHub Stars"===e.key})))||void 0===n?void 0:n.value,dockerHubPulls:null===(r=t.find((function(e){return"DockerHub Pulls"===e.key})))||void 0===r?void 0:r.value}:{}}),[t]),r=n.nodesOnline,o=n.githubStars,a=n.dockerHubPulls;return i.createElement(l.Flex,{column:!0,gap:4},i.createElement(l.Flex,{column:!0,gap:2},i.createElement(_,{height:"160px",padding:[0,0,4,0]}),i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},r||"...")," ","Nodes Online"),i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},o||"...")," ","GitHub Stars"),i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},i.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},a||"...")," ","DockerHub Pulls")),i.createElement(w,{downScale:[l.TextBigger,l.TextBig],color:"bright",textAlign:"center",margin:[11,0,0]},"Sign in to monitor your entire infrastructure ",i.createElement("br",null)," with Netdata"),!window.envSettings.onprem&&i.createElement(l.Flex,{justifyContent:"center"},i.createElement(l.Button,{as:"a","data-ga":"signinup::click-demo::sni-view",href:"/spaces/".concat(Z),target:"_blank",onClick:function(){(0,S.L)("signinup","click-demo","sni-view")},label:"Live Demo",padding:[2,8]})))},F=function(e){var t=e.icon,n=e.title,r=e.text,o=(0,a.Z)("(min-width: 475px)");return i.createElement(l.Flex,{gap:4,alignItems:"start"},o&&i.createElement(l.Flex,{background:"transparent",justifyContent:"center",alignItems:"center",height:"64px",width:"64px",round:64,flex:"grow",border:{side:"all",color:"successLite"}},i.createElement(l.Icon,{name:t,height:"20px",widht:"20px",color:"successLite"})),i.createElement(l.Flex,{column:!0,justifyContent:"start",alignItems:"start",gap:2},i.createElement(l.TextBig,{color:"bright",strong:!0},n),i.createElement(l.Text,{color:"selected"},r)))},I=function(){return i.createElement(l.Flex,{column:!0,padding:[16,4,12],width:{max:"500px"},margin:[0,"auto"],gap:14},i.createElement(B,null),i.createElement(l.Flex,{column:!0,gap:8},s.map((function(e,t){return i.createElement(F,(0,r.Z)({key:t},e))}))))},T=["children"],D=function(e){var t=e.children,n=(0,o.Z)(e,T),d=(0,a.Z)("(min-width: 998px)");return i.createElement(l.Flex,(0,r.Z)({height:{min:"100vh"},flexWrap:!0},n),i.createElement(c,{background:"panel",bgGradient:!0,order:d?0:1},i.createElement(I,null)),i.createElement(c,{background:"mainBackground",order:d?1:0},i.createElement(l.Flex,{background:"transparent",column:!0,gap:8,padding:[12,4],width:{max:"500px"},margin:[0,"auto"]},i.createElement(u,null),t)))}},8360:function(e,t,n){var r=n(67294),o=n(57509),i=n(78312),a={url:"https://learn.netdata.cloud/",title:"docs"},l={url:"https://community.netdata.cloud/c/support/cloud-support/15",title:"forums"},c={url:"https://discord.gg/TjM6XCwC4e",title:"public discord channel"};t.Z=function(){return r.createElement(o.Text,{textAlign:"center"},"Need help? Check out our"," ",r.createElement(i.Fg,{href:a.url,target:"_blank",rel:"noopener noreferrer"},a.title,",")," ",r.createElement(i.Fg,{href:l.url,target:"_blank",rel:"noopener noreferrer"},l.title)," ","or"," ",r.createElement(i.Fg,{href:c.url,target:"_blank",rel:"noopener noreferrer"},c.title))}},78312:function(e,t,n){n.d(t,{Fg:function(){return l},P2:function(){return d},Sn:function(){return u},U5:function(){return c},Yb:function(){return s},xG:function(){return a}});var r=n(60677),o=n(57509),i=n(16772),a=r.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),l=r.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,o.getColor)("success"),(0,o.getColor)("success"),(0,o.getColor)("success"),(0,o.getColor)("main"),(0,o.getSizeBy)(1)),c=(0,r.default)(i.Z).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["label{margin-bottom:0;}> div{display:none;}"]),d=(0,r.default)(o.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,o.getSizeBy)(2),(function(e){return e.error&&(0,o.getColor)("error")})),u=(0,r.default)(o.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),s=(0,r.default)(o.Flex).attrs((function(e){var t=e.gap;return{column:!0,gap:void 0===t?8:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},87562:function(e,t,n){n.d(t,{$:function(){return o},G:function(){return i}});n(26699),n(32023),n(92222),n(74916),n(64765);var r=n(58591),o=function(e,t){var n=(0,r.kG)(["expires_at",t]),o=t.includes("join-callback")?decodeURIComponent(n):n;return"".concat(window.location.origin).concat(e,"#").concat(o)},i=function(e,t){var n=window.location,r=n.search,i=n.hash,a=encodeURIComponent(o("/sign-in".concat(r).concat(r.length?"&":"?","oauth=").concat(e,"&"),i)),l=encodeURIComponent(o("/sign-up/verify".concat(r).concat(r.length?"&":"?","oauth=").concat(e,"&"),i));return"/api/v2/auth/account/".concat(e,"?redirect_uri=").concat(a,"&register_uri=").concat(l).concat(t?"&is_unverified_registration=true":"")}},16772:function(e,t,n){var r=n(87462),o=n(45987),i=n(67294),a=n(57509),l=["onChange","value","onKeyDown","label"];t.Z=function(e){var t=e.onChange,n=e.value,c=e.onKeyDown,d=e.label,u=(0,o.Z)(e,l);return i.createElement(a.TextInput,(0,r.Z)({label:d,name:"userEmail",placeholder:"Enter an email address",value:n,onChange:t,onKeyDown:c},u))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/851.c2d4621d872e935ac44a.chunk.js b/web/gui/v2/851.7d3f8a7b3ffc933098b8.chunk.js
index 3eed23e4..c7ad8bcc 100644
--- a/web/gui/v2/851.c2d4621d872e935ac44a.chunk.js
+++ b/web/gui/v2/851.7d3f8a7b3ffc933098b8.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3f9b0a8f-8be2-46e4-8037-73175038574b",e._sentryDebugIdIdentifier="sentry-dbid-3f9b0a8f-8be2-46e4-8037-73175038574b")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[851],{11060:function(e,t,r){var n=r(1702),s=Error,a=n("".replace),i=String(s("zxcasd").stack),o=/\n\s*at [^:]*:[^\n]*/,u=o.test(i);e.exports=function(e,t){if(u&&"string"==typeof e&&!s.prepareStackTrace)for(;t--;)e=a(e,o,"");return e}},5392:function(e,t,r){var n=r(68880),s=r(11060),a=r(22914),i=Error.captureStackTrace;e.exports=function(e,t,r,o){a&&(i?i(e,t):n(e,"stack",s(r,o)))}},22914:function(e,t,r){var n=r(47293),s=r(79114);e.exports=!n((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",s(1,7)),7!==e.stack)}))},58340:function(e,t,r){var n=r(70111),s=r(68880);e.exports=function(e,t){n(t)&&"cause"in t&&s(e,"cause",t.cause)}},56277:function(e,t,r){var n=r(41340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:n(e)}},33197:function(e,t,r){var n=r(1702),s=2147483647,a=/[^\0-\u007E]/,i=/[.\u3002\uFF0E\uFF61]/g,o="Overflow: input needs wider integers to process",u=RangeError,f=n(i.exec),h=Math.floor,c=String.fromCharCode,l=n("".charCodeAt),p=n([].join),g=n([].push),m=n("".replace),d=n("".split),v=n("".toLowerCase),b=function(e){return e+22+75*(e<26)},w=function(e,t,r){var n=0;for(e=r?h(e/700):e>>1,e+=h(e/t);e>455;)e=h(e/35),n+=36;return h(n+36*e/(e+38))},y=function(e){var t=[];e=function(e){for(var t=[],r=0,n=e.length;r<n;){var s=l(e,r++);if(s>=55296&&s<=56319&&r<n){var a=l(e,r++);56320==(64512&a)?g(t,((1023&s)<<10)+(1023&a)+65536):(g(t,s),r--)}else g(t,s)}return t}(e);var r,n,a=e.length,i=128,f=0,m=72;for(r=0;r<e.length;r++)(n=e[r])<128&&g(t,c(n));var d=t.length,v=d;for(d&&g(t,"-");v<a;){var y=s;for(r=0;r<e.length;r++)(n=e[r])>=i&&n<y&&(y=n);var P=v+1;if(y-i>h((s-f)/P))throw u(o);for(f+=(y-i)*P,i=y,r=0;r<e.length;r++){if((n=e[r])<i&&++f>s)throw u(o);if(n==i){for(var S=f,k=36;;){var U=k<=m?1:k>=m+26?26:k-m;if(S<U)break;var R=S-U,H=36-U;g(t,c(b(U+R%H))),S=h(R/H),k+=36}g(t,c(b(S))),m=w(f,P,v==d),f=0,v++}}f++,i++}return p(t,"")};e.exports=function(e){var t,r,n=[],s=d(m(v(e),i,"."),".");for(t=0;t<s.length;t++)r=s[t],g(n,f(a,r)?"xn--"+y(r):r);return p(n,".")}},56967:function(e,t,r){var n=r(82109),s=r(47976),a=r(79518),i=r(27674),o=r(99920),u=r(70030),f=r(68880),h=r(79114),c=r(58340),l=r(5392),p=r(20408),g=r(56277),m=r(5112)("toStringTag"),d=Error,v=[].push,b=function(e,t){var r,n=s(w,this);i?r=i(d(),n?a(this):w):(r=n?this:u(w),f(r,m,"Error")),void 0!==t&&f(r,"message",g(t)),l(r,b,r.stack,1),arguments.length>2&&c(r,arguments[2]);var o=[];return p(e,v,{that:o}),f(r,"errors",o),r};i?i(b,d):o(b,d,{name:!0});var w=b.prototype=u(d.prototype,{constructor:h(1,b),message:h(1,""),name:h(1,"AggregateError")});n({global:!0,constructor:!0,arity:2},{AggregateError:b})},9170:function(e,t,r){r(56967)},34668:function(e,t,r){var n=r(82109),s=r(46916),a=r(19662),i=r(35005),o=r(78523),u=r(12534),f=r(20408),h=r(80612),c="No one promise resolved";n({target:"Promise",stat:!0,forced:h},{any:function(e){var t=this,r=i("AggregateError"),n=o.f(t),h=n.resolve,l=n.reject,p=u((function(){var n=a(t.resolve),i=[],o=0,u=1,p=!1;f(e,(function(e){var a=o++,f=!1;u++,s(n,t,e).then((function(e){f||p||(p=!0,h(e))}),(function(e){f||p||(f=!0,i[a]=e,--u||l(new r(i,c)))}))})),--u||l(new r(i,c))}));return p.error&&l(p.value),n.promise}})},41817:function(e,t,r){var n=r(82109),s=r(19781),a=r(17854),i=r(1702),o=r(92597),u=r(60614),f=r(47976),h=r(41340),c=r(47045),l=r(99920),p=a.Symbol,g=p&&p.prototype;if(s&&u(p)&&(!("description"in g)||void 0!==p().description)){var m={},d=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:h(arguments[0]),t=f(g,this)?new p(e):void 0===e?p():p(e);return""===e&&(m[t]=!0),t};l(d,p),d.prototype=g,g.constructor=d;var v="Symbol(test)"==String(p("test")),b=i(g.valueOf),w=i(g.toString),y=/^Symbol\((.*)\)[^)]+$/,P=i("".replace),S=i("".slice);c(g,"description",{configurable:!0,get:function(){var e=b(this);if(o(m,e))return"";var t=w(e),r=v?S(t,7,-1):P(t,y,"$1");return""===r?void 0:r}}),n({global:!0,constructor:!0,forced:!0},{Symbol:d})}},32165:function(e,t,r){r(26800)("iterator")},68789:function(e,t,r){r(78783);var n,s=r(82109),a=r(19781),i=r(85143),o=r(17854),u=r(49974),f=r(1702),h=r(98052),c=r(47045),l=r(25787),p=r(92597),g=r(21574),m=r(48457),d=r(41589),v=r(28710).codeAt,b=r(33197),w=r(41340),y=r(58003),P=r(48053),S=r(65556),k=r(29909),U=k.set,R=k.getterFor("URL"),H=S.URLSearchParams,L=S.getState,q=o.URL,B=o.TypeError,A=o.parseInt,E=Math.floor,C=Math.pow,x=f("".charAt),I=f(/./.exec),O=f([].join),j=f(1..toString),z=f([].pop),_=f([].push),$=f("".replace),F=f([].shift),T=f("".split),D=f("".slice),M=f("".toLowerCase),N=f([].unshift),J="Invalid scheme",Y="Invalid host",G="Invalid port",K=/[a-z]/i,Q=/[\d+-.a-z]/i,V=/\d/,W=/^0x/i,X=/^[0-7]+$/,Z=/^\d+$/,ee=/^[\da-f]+$/i,te=/[\0\t\n\r #%/:<>?@[\\\]^|]/,re=/[\0\t\n\r #/:<>?@[\\\]^|]/,ne=/^[\u0000-\u0020]+/,se=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ae=/[\t\n\r]/g,ie=function(e){var t,r,n,s;if("number"==typeof e){for(t=[],r=0;r<4;r++)N(t,e%256),e=E(e/256);return O(t,".")}if("object"==typeof e){for(t="",n=function(e){for(var t=null,r=1,n=null,s=0,a=0;a<8;a++)0!==e[a]?(s>r&&(t=n,r=s),n=null,s=0):(null===n&&(n=a),++s);return s>r&&(t=n,r=s),t}(e),r=0;r<8;r++)s&&0===e[r]||(s&&(s=!1),n===r?(t+=r?":":"::",s=!0):(t+=j(e[r],16),r<7&&(t+=":")));return"["+t+"]"}return e},oe={},ue=g({},oe,{" ":1,'"':1,"<":1,">":1,"`":1}),fe=g({},ue,{"#":1,"?":1,"{":1,"}":1}),he=g({},fe,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ce=function(e,t){var r=v(e,0);return r>32&&r<127&&!p(t,e)?e:encodeURIComponent(e)},le={ftp:21,file:null,http:80,https:443,ws:80,wss:443},pe=function(e,t){var r;return 2==e.length&&I(K,x(e,0))&&(":"==(r=x(e,1))||!t&&"|"==r)},ge=function(e){var t;return e.length>1&&pe(D(e,0,2))&&(2==e.length||"/"===(t=x(e,2))||"\\"===t||"?"===t||"#"===t)},me=function(e){return"."===e||"%2e"===M(e)},de={},ve={},be={},we={},ye={},Pe={},Se={},ke={},Ue={},Re={},He={},Le={},qe={},Be={},Ae={},Ee={},Ce={},xe={},Ie={},Oe={},je={},ze=function(e,t,r){var n,s,a,i=w(e);if(t){if(s=this.parse(i))throw B(s);this.searchParams=null}else{if(void 0!==r&&(n=new ze(r,!0)),s=this.parse(i,null,n))throw B(s);(a=L(new H)).bindURL(this),this.searchParams=a}};ze.prototype={type:"URL",parse:function(e,t,r){var s,a,i,o,u,f=this,h=t||de,c=0,l="",g=!1,v=!1,b=!1;for(e=w(e),t||(f.scheme="",f.username="",f.password="",f.host=null,f.port=null,f.path=[],f.query=null,f.fragment=null,f.cannotBeABaseURL=!1,e=$(e,ne,""),e=$(e,se,"$1")),e=$(e,ae,""),s=m(e);c<=s.length;){switch(a=s[c],h){case de:if(!a||!I(K,a)){if(t)return J;h=be;continue}l+=M(a),h=ve;break;case ve:if(a&&(I(Q,a)||"+"==a||"-"==a||"."==a))l+=M(a);else{if(":"!=a){if(t)return J;l="",h=be,c=0;continue}if(t&&(f.isSpecial()!=p(le,l)||"file"==l&&(f.includesCredentials()||null!==f.port)||"file"==f.scheme&&!f.host))return;if(f.scheme=l,t)return void(f.isSpecial()&&le[f.scheme]==f.port&&(f.port=null));l="","file"==f.scheme?h=Be:f.isSpecial()&&r&&r.scheme==f.scheme?h=we:f.isSpecial()?h=ke:"/"==s[c+1]?(h=ye,c++):(f.cannotBeABaseURL=!0,_(f.path,""),h=Ie)}break;case be:if(!r||r.cannotBeABaseURL&&"#"!=a)return J;if(r.cannotBeABaseURL&&"#"==a){f.scheme=r.scheme,f.path=d(r.path),f.query=r.query,f.fragment="",f.cannotBeABaseURL=!0,h=je;break}h="file"==r.scheme?Be:Pe;continue;case we:if("/"!=a||"/"!=s[c+1]){h=Pe;continue}h=Ue,c++;break;case ye:if("/"==a){h=Re;break}h=xe;continue;case Pe:if(f.scheme=r.scheme,a==n)f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.query=r.query;else if("/"==a||"\\"==a&&f.isSpecial())h=Se;else if("?"==a)f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.query="",h=Oe;else{if("#"!=a){f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.path.length--,h=xe;continue}f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.query=r.query,f.fragment="",h=je}break;case Se:if(!f.isSpecial()||"/"!=a&&"\\"!=a){if("/"!=a){f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,h=xe;continue}h=Re}else h=Ue;break;case ke:if(h=Ue,"/"!=a||"/"!=x(l,c+1))continue;c++;break;case Ue:if("/"!=a&&"\\"!=a){h=Re;continue}break;case Re:if("@"==a){g&&(l="%40"+l),g=!0,i=m(l);for(var y=0;y<i.length;y++){var P=i[y];if(":"!=P||b){var S=ce(P,he);b?f.password+=S:f.username+=S}else b=!0}l=""}else if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&f.isSpecial()){if(g&&""==l)return"Invalid authority";c-=m(l).length+1,l="",h=He}else l+=a;break;case He:case Le:if(t&&"file"==f.scheme){h=Ee;continue}if(":"!=a||v){if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&f.isSpecial()){if(f.isSpecial()&&""==l)return Y;if(t&&""==l&&(f.includesCredentials()||null!==f.port))return;if(o=f.parseHost(l))return o;if(l="",h=Ce,t)return;continue}"["==a?v=!0:"]"==a&&(v=!1),l+=a}else{if(""==l)return Y;if(o=f.parseHost(l))return o;if(l="",h=qe,t==Le)return}break;case qe:if(!I(V,a)){if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&f.isSpecial()||t){if(""!=l){var k=A(l,10);if(k>65535)return G;f.port=f.isSpecial()&&k===le[f.scheme]?null:k,l=""}if(t)return;h=Ce;continue}return G}l+=a;break;case Be:if(f.scheme="file","/"==a||"\\"==a)h=Ae;else{if(!r||"file"!=r.scheme){h=xe;continue}if(a==n)f.host=r.host,f.path=d(r.path),f.query=r.query;else if("?"==a)f.host=r.host,f.path=d(r.path),f.query="",h=Oe;else{if("#"!=a){ge(O(d(s,c),""))||(f.host=r.host,f.path=d(r.path),f.shortenPath()),h=xe;continue}f.host=r.host,f.path=d(r.path),f.query=r.query,f.fragment="",h=je}}break;case Ae:if("/"==a||"\\"==a){h=Ee;break}r&&"file"==r.scheme&&!ge(O(d(s,c),""))&&(pe(r.path[0],!0)?_(f.path,r.path[0]):f.host=r.host),h=xe;continue;case Ee:if(a==n||"/"==a||"\\"==a||"?"==a||"#"==a){if(!t&&pe(l))h=xe;else if(""==l){if(f.host="",t)return;h=Ce}else{if(o=f.parseHost(l))return o;if("localhost"==f.host&&(f.host=""),t)return;l="",h=Ce}continue}l+=a;break;case Ce:if(f.isSpecial()){if(h=xe,"/"!=a&&"\\"!=a)continue}else if(t||"?"!=a)if(t||"#"!=a){if(a!=n&&(h=xe,"/"!=a))continue}else f.fragment="",h=je;else f.query="",h=Oe;break;case xe:if(a==n||"/"==a||"\\"==a&&f.isSpecial()||!t&&("?"==a||"#"==a)){if(".."===(u=M(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(f.shortenPath(),"/"==a||"\\"==a&&f.isSpecial()||_(f.path,"")):me(l)?"/"==a||"\\"==a&&f.isSpecial()||_(f.path,""):("file"==f.scheme&&!f.path.length&&pe(l)&&(f.host&&(f.host=""),l=x(l,0)+":"),_(f.path,l)),l="","file"==f.scheme&&(a==n||"?"==a||"#"==a))for(;f.path.length>1&&""===f.path[0];)F(f.path);"?"==a?(f.query="",h=Oe):"#"==a&&(f.fragment="",h=je)}else l+=ce(a,fe);break;case Ie:"?"==a?(f.query="",h=Oe):"#"==a?(f.fragment="",h=je):a!=n&&(f.path[0]+=ce(a,oe));break;case Oe:t||"#"!=a?a!=n&&("'"==a&&f.isSpecial()?f.query+="%27":f.query+="#"==a?"%23":ce(a,oe)):(f.fragment="",h=je);break;case je:a!=n&&(f.fragment+=ce(a,ue))}c++}},parseHost:function(e){var t,r,n;if("["==x(e,0)){if("]"!=x(e,e.length-1))return Y;if(t=function(e){var t,r,n,s,a,i,o,u=[0,0,0,0,0,0,0,0],f=0,h=null,c=0,l=function(){return x(e,c)};if(":"==l()){if(":"!=x(e,1))return;c+=2,h=++f}for(;l();){if(8==f)return;if(":"!=l()){for(t=r=0;r<4&&I(ee,l());)t=16*t+A(l(),16),c++,r++;if("."==l()){if(0==r)return;if(c-=r,f>6)return;for(n=0;l();){if(s=null,n>0){if(!("."==l()&&n<4))return;c++}if(!I(V,l()))return;for(;I(V,l());){if(a=A(l(),10),null===s)s=a;else{if(0==s)return;s=10*s+a}if(s>255)return;c++}u[f]=256*u[f]+s,2!=++n&&4!=n||f++}if(4!=n)return;break}if(":"==l()){if(c++,!l())return}else if(l())return;u[f++]=t}else{if(null!==h)return;c++,h=++f}}if(null!==h)for(i=f-h,f=7;0!=f&&i>0;)o=u[f],u[f--]=u[h+i-1],u[h+--i]=o;else if(8!=f)return;return u}(D(e,1,-1)),!t)return Y;this.host=t}else if(this.isSpecial()){if(e=b(e),I(te,e))return Y;if(t=function(e){var t,r,n,s,a,i,o,u=T(e,".");if(u.length&&""==u[u.length-1]&&u.length--,(t=u.length)>4)return e;for(r=[],n=0;n<t;n++){if(""==(s=u[n]))return e;if(a=10,s.length>1&&"0"==x(s,0)&&(a=I(W,s)?16:8,s=D(s,8==a?1:2)),""===s)i=0;else{if(!I(10==a?Z:8==a?X:ee,s))return e;i=A(s,a)}_(r,i)}for(n=0;n<t;n++)if(i=r[n],n==t-1){if(i>=C(256,5-t))return null}else if(i>255)return null;for(o=z(r),n=0;n<r.length;n++)o+=r[n]*C(256,3-n);return o}(e),null===t)return Y;this.host=t}else{if(I(re,e))return Y;for(t="",r=m(e),n=0;n<r.length;n++)t+=ce(r[n],oe);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return p(le,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"==this.scheme&&1==t&&pe(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,r=e.username,n=e.password,s=e.host,a=e.port,i=e.path,o=e.query,u=e.fragment,f=t+":";return null!==s?(f+="//",e.includesCredentials()&&(f+=r+(n?":"+n:"")+"@"),f+=ie(s),null!==a&&(f+=":"+a)):"file"==t&&(f+="//"),f+=e.cannotBeABaseURL?i[0]:i.length?"/"+O(i,"/"):"",null!==o&&(f+="?"+o),null!==u&&(f+="#"+u),f},setHref:function(e){var t=this.parse(e);if(t)throw B(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"==e)try{return new _e(e.path[0]).origin}catch(r){return"null"}return"file"!=e&&this.isSpecial()?e+"://"+ie(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(w(e)+":",de)},getUsername:function(){return this.username},setUsername:function(e){var t=m(w(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var r=0;r<t.length;r++)this.username+=ce(t[r],he)}},getPassword:function(){return this.password},setPassword:function(e){var t=m(w(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var r=0;r<t.length;r++)this.password+=ce(t[r],he)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?ie(e):ie(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,He)},getHostname:function(){var e=this.host;return null===e?"":ie(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,Le)},getPort:function(){var e=this.port;return null===e?"":w(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""==(e=w(e))?this.port=null:this.parse(e,qe))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+O(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,Ce))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""==(e=w(e))?this.query=null:("?"==x(e,0)&&(e=D(e,1)),this.query="",this.parse(e,Oe)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!=(e=w(e))?("#"==x(e,0)&&(e=D(e,1)),this.fragment="",this.parse(e,je)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var _e=function(e){var t=l(this,$e),r=P(arguments.length,1)>1?arguments[1]:void 0,n=U(t,new ze(e,!1,r));a||(t.href=n.serialize(),t.origin=n.getOrigin(),t.protocol=n.getProtocol(),t.username=n.getUsername(),t.password=n.getPassword(),t.host=n.getHost(),t.hostname=n.getHostname(),t.port=n.getPort(),t.pathname=n.getPathname(),t.search=n.getSearch(),t.searchParams=n.getSearchParams(),t.hash=n.getHash())},$e=_e.prototype,Fe=function(e,t){return{get:function(){return R(this)[e]()},set:t&&function(e){return R(this)[t](e)},configurable:!0,enumerable:!0}};if(a&&(c($e,"href",Fe("serialize","setHref")),c($e,"origin",Fe("getOrigin")),c($e,"protocol",Fe("getProtocol","setProtocol")),c($e,"username",Fe("getUsername","setUsername")),c($e,"password",Fe("getPassword","setPassword")),c($e,"host",Fe("getHost","setHost")),c($e,"hostname",Fe("getHostname","setHostname")),c($e,"port",Fe("getPort","setPort")),c($e,"pathname",Fe("getPathname","setPathname")),c($e,"search",Fe("getSearch","setSearch")),c($e,"searchParams",Fe("getSearchParams")),c($e,"hash",Fe("getHash","setHash"))),h($e,"toJSON",(function(){return R(this).serialize()}),{enumerable:!0}),h($e,"toString",(function(){return R(this).serialize()}),{enumerable:!0}),q){var Te=q.createObjectURL,De=q.revokeObjectURL;Te&&h(_e,"createObjectURL",u(Te,q)),De&&h(_e,"revokeObjectURL",u(De,q))}y(_e,"URL"),s({global:!0,constructor:!0,forced:!i,sham:!a},{URL:_e})},60285:function(e,t,r){r(68789)}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3f9b0a8f-8be2-46e4-8037-73175038574b",e._sentryDebugIdIdentifier="sentry-dbid-3f9b0a8f-8be2-46e4-8037-73175038574b")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[851],{11060:function(e,t,r){var n=r(1702),s=Error,a=n("".replace),i=String(s("zxcasd").stack),o=/\n\s*at [^:]*:[^\n]*/,u=o.test(i);e.exports=function(e,t){if(u&&"string"==typeof e&&!s.prepareStackTrace)for(;t--;)e=a(e,o,"");return e}},5392:function(e,t,r){var n=r(68880),s=r(11060),a=r(22914),i=Error.captureStackTrace;e.exports=function(e,t,r,o){a&&(i?i(e,t):n(e,"stack",s(r,o)))}},22914:function(e,t,r){var n=r(47293),s=r(79114);e.exports=!n((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",s(1,7)),7!==e.stack)}))},58340:function(e,t,r){var n=r(70111),s=r(68880);e.exports=function(e,t){n(t)&&"cause"in t&&s(e,"cause",t.cause)}},56277:function(e,t,r){var n=r(41340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:n(e)}},33197:function(e,t,r){var n=r(1702),s=2147483647,a=/[^\0-\u007E]/,i=/[.\u3002\uFF0E\uFF61]/g,o="Overflow: input needs wider integers to process",u=RangeError,f=n(i.exec),h=Math.floor,c=String.fromCharCode,l=n("".charCodeAt),p=n([].join),g=n([].push),m=n("".replace),d=n("".split),v=n("".toLowerCase),b=function(e){return e+22+75*(e<26)},w=function(e,t,r){var n=0;for(e=r?h(e/700):e>>1,e+=h(e/t);e>455;)e=h(e/35),n+=36;return h(n+36*e/(e+38))},y=function(e){var t=[];e=function(e){for(var t=[],r=0,n=e.length;r<n;){var s=l(e,r++);if(s>=55296&&s<=56319&&r<n){var a=l(e,r++);56320==(64512&a)?g(t,((1023&s)<<10)+(1023&a)+65536):(g(t,s),r--)}else g(t,s)}return t}(e);var r,n,a=e.length,i=128,f=0,m=72;for(r=0;r<e.length;r++)(n=e[r])<128&&g(t,c(n));var d=t.length,v=d;for(d&&g(t,"-");v<a;){var y=s;for(r=0;r<e.length;r++)(n=e[r])>=i&&n<y&&(y=n);var P=v+1;if(y-i>h((s-f)/P))throw u(o);for(f+=(y-i)*P,i=y,r=0;r<e.length;r++){if((n=e[r])<i&&++f>s)throw u(o);if(n==i){for(var S=f,k=36;;){var U=k<=m?1:k>=m+26?26:k-m;if(S<U)break;var R=S-U,H=36-U;g(t,c(b(U+R%H))),S=h(R/H),k+=36}g(t,c(b(S))),m=w(f,P,v==d),f=0,v++}}f++,i++}return p(t,"")};e.exports=function(e){var t,r,n=[],s=d(m(v(e),i,"."),".");for(t=0;t<s.length;t++)r=s[t],g(n,f(a,r)?"xn--"+y(r):r);return p(n,".")}},56967:function(e,t,r){var n=r(82109),s=r(47976),a=r(79518),i=r(27674),o=r(99920),u=r(70030),f=r(68880),h=r(79114),c=r(58340),l=r(5392),p=r(20408),g=r(56277),m=r(5112)("toStringTag"),d=Error,v=[].push,b=function(e,t){var r,n=s(w,this);i?r=i(d(),n?a(this):w):(r=n?this:u(w),f(r,m,"Error")),void 0!==t&&f(r,"message",g(t)),l(r,b,r.stack,1),arguments.length>2&&c(r,arguments[2]);var o=[];return p(e,v,{that:o}),f(r,"errors",o),r};i?i(b,d):o(b,d,{name:!0});var w=b.prototype=u(d.prototype,{constructor:h(1,b),message:h(1,""),name:h(1,"AggregateError")});n({global:!0,constructor:!0,arity:2},{AggregateError:b})},9170:function(e,t,r){r(56967)},34668:function(e,t,r){var n=r(82109),s=r(46916),a=r(19662),i=r(35005),o=r(78523),u=r(12534),f=r(20408),h=r(80612),c="No one promise resolved";n({target:"Promise",stat:!0,forced:h},{any:function(e){var t=this,r=i("AggregateError"),n=o.f(t),h=n.resolve,l=n.reject,p=u((function(){var n=a(t.resolve),i=[],o=0,u=1,p=!1;f(e,(function(e){var a=o++,f=!1;u++,s(n,t,e).then((function(e){f||p||(p=!0,h(e))}),(function(e){f||p||(f=!0,i[a]=e,--u||l(new r(i,c)))}))})),--u||l(new r(i,c))}));return p.error&&l(p.value),n.promise}})},41817:function(e,t,r){var n=r(82109),s=r(19781),a=r(17854),i=r(1702),o=r(92597),u=r(60614),f=r(47976),h=r(41340),c=r(47045),l=r(99920),p=a.Symbol,g=p&&p.prototype;if(s&&u(p)&&(!("description"in g)||void 0!==p().description)){var m={},d=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:h(arguments[0]),t=f(g,this)?new p(e):void 0===e?p():p(e);return""===e&&(m[t]=!0),t};l(d,p),d.prototype=g,g.constructor=d;var v="Symbol(test)"==String(p("test")),b=i(g.valueOf),w=i(g.toString),y=/^Symbol\((.*)\)[^)]+$/,P=i("".replace),S=i("".slice);c(g,"description",{configurable:!0,get:function(){var e=b(this);if(o(m,e))return"";var t=w(e),r=v?S(t,7,-1):P(t,y,"$1");return""===r?void 0:r}}),n({global:!0,constructor:!0,forced:!0},{Symbol:d})}},32165:function(e,t,r){r(26800)("iterator")},68789:function(e,t,r){r(78783);var n,s=r(82109),a=r(19781),i=r(85143),o=r(17854),u=r(49974),f=r(1702),h=r(98052),c=r(47045),l=r(25787),p=r(92597),g=r(21574),m=r(48457),d=r(41589),v=r(28710).codeAt,b=r(33197),w=r(41340),y=r(58003),P=r(48053),S=r(65556),k=r(29909),U=k.set,R=k.getterFor("URL"),H=S.URLSearchParams,L=S.getState,q=o.URL,B=o.TypeError,A=o.parseInt,E=Math.floor,C=Math.pow,x=f("".charAt),I=f(/./.exec),O=f([].join),j=f(1..toString),z=f([].pop),_=f([].push),$=f("".replace),F=f([].shift),T=f("".split),D=f("".slice),M=f("".toLowerCase),N=f([].unshift),J="Invalid scheme",Y="Invalid host",G="Invalid port",K=/[a-z]/i,Q=/[\d+-.a-z]/i,V=/\d/,W=/^0x/i,X=/^[0-7]+$/,Z=/^\d+$/,ee=/^[\da-f]+$/i,te=/[\0\t\n\r #%/:<>?@[\\\]^|]/,re=/[\0\t\n\r #/:<>?@[\\\]^|]/,ne=/^[\u0000-\u0020]+/,se=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ae=/[\t\n\r]/g,ie=function(e){var t,r,n,s;if("number"==typeof e){for(t=[],r=0;r<4;r++)N(t,e%256),e=E(e/256);return O(t,".")}if("object"==typeof e){for(t="",n=function(e){for(var t=null,r=1,n=null,s=0,a=0;a<8;a++)0!==e[a]?(s>r&&(t=n,r=s),n=null,s=0):(null===n&&(n=a),++s);return s>r&&(t=n,r=s),t}(e),r=0;r<8;r++)s&&0===e[r]||(s&&(s=!1),n===r?(t+=r?":":"::",s=!0):(t+=j(e[r],16),r<7&&(t+=":")));return"["+t+"]"}return e},oe={},ue=g({},oe,{" ":1,'"':1,"<":1,">":1,"`":1}),fe=g({},ue,{"#":1,"?":1,"{":1,"}":1}),he=g({},fe,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),ce=function(e,t){var r=v(e,0);return r>32&&r<127&&!p(t,e)?e:encodeURIComponent(e)},le={ftp:21,file:null,http:80,https:443,ws:80,wss:443},pe=function(e,t){var r;return 2==e.length&&I(K,x(e,0))&&(":"==(r=x(e,1))||!t&&"|"==r)},ge=function(e){var t;return e.length>1&&pe(D(e,0,2))&&(2==e.length||"/"===(t=x(e,2))||"\\"===t||"?"===t||"#"===t)},me=function(e){return"."===e||"%2e"===M(e)},de={},ve={},be={},we={},ye={},Pe={},Se={},ke={},Ue={},Re={},He={},Le={},qe={},Be={},Ae={},Ee={},Ce={},xe={},Ie={},Oe={},je={},ze=function(e,t,r){var n,s,a,i=w(e);if(t){if(s=this.parse(i))throw B(s);this.searchParams=null}else{if(void 0!==r&&(n=new ze(r,!0)),s=this.parse(i,null,n))throw B(s);(a=L(new H)).bindURL(this),this.searchParams=a}};ze.prototype={type:"URL",parse:function(e,t,r){var s,a,i,o,u,f=this,h=t||de,c=0,l="",g=!1,v=!1,b=!1;for(e=w(e),t||(f.scheme="",f.username="",f.password="",f.host=null,f.port=null,f.path=[],f.query=null,f.fragment=null,f.cannotBeABaseURL=!1,e=$(e,ne,""),e=$(e,se,"$1")),e=$(e,ae,""),s=m(e);c<=s.length;){switch(a=s[c],h){case de:if(!a||!I(K,a)){if(t)return J;h=be;continue}l+=M(a),h=ve;break;case ve:if(a&&(I(Q,a)||"+"==a||"-"==a||"."==a))l+=M(a);else{if(":"!=a){if(t)return J;l="",h=be,c=0;continue}if(t&&(f.isSpecial()!=p(le,l)||"file"==l&&(f.includesCredentials()||null!==f.port)||"file"==f.scheme&&!f.host))return;if(f.scheme=l,t)return void(f.isSpecial()&&le[f.scheme]==f.port&&(f.port=null));l="","file"==f.scheme?h=Be:f.isSpecial()&&r&&r.scheme==f.scheme?h=we:f.isSpecial()?h=ke:"/"==s[c+1]?(h=ye,c++):(f.cannotBeABaseURL=!0,_(f.path,""),h=Ie)}break;case be:if(!r||r.cannotBeABaseURL&&"#"!=a)return J;if(r.cannotBeABaseURL&&"#"==a){f.scheme=r.scheme,f.path=d(r.path),f.query=r.query,f.fragment="",f.cannotBeABaseURL=!0,h=je;break}h="file"==r.scheme?Be:Pe;continue;case we:if("/"!=a||"/"!=s[c+1]){h=Pe;continue}h=Ue,c++;break;case ye:if("/"==a){h=Re;break}h=xe;continue;case Pe:if(f.scheme=r.scheme,a==n)f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.query=r.query;else if("/"==a||"\\"==a&&f.isSpecial())h=Se;else if("?"==a)f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.query="",h=Oe;else{if("#"!=a){f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.path.length--,h=xe;continue}f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,f.path=d(r.path),f.query=r.query,f.fragment="",h=je}break;case Se:if(!f.isSpecial()||"/"!=a&&"\\"!=a){if("/"!=a){f.username=r.username,f.password=r.password,f.host=r.host,f.port=r.port,h=xe;continue}h=Re}else h=Ue;break;case ke:if(h=Ue,"/"!=a||"/"!=x(l,c+1))continue;c++;break;case Ue:if("/"!=a&&"\\"!=a){h=Re;continue}break;case Re:if("@"==a){g&&(l="%40"+l),g=!0,i=m(l);for(var y=0;y<i.length;y++){var P=i[y];if(":"!=P||b){var S=ce(P,he);b?f.password+=S:f.username+=S}else b=!0}l=""}else if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&f.isSpecial()){if(g&&""==l)return"Invalid authority";c-=m(l).length+1,l="",h=He}else l+=a;break;case He:case Le:if(t&&"file"==f.scheme){h=Ee;continue}if(":"!=a||v){if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&f.isSpecial()){if(f.isSpecial()&&""==l)return Y;if(t&&""==l&&(f.includesCredentials()||null!==f.port))return;if(o=f.parseHost(l))return o;if(l="",h=Ce,t)return;continue}"["==a?v=!0:"]"==a&&(v=!1),l+=a}else{if(""==l)return Y;if(o=f.parseHost(l))return o;if(l="",h=qe,t==Le)return}break;case qe:if(!I(V,a)){if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&f.isSpecial()||t){if(""!=l){var k=A(l,10);if(k>65535)return G;f.port=f.isSpecial()&&k===le[f.scheme]?null:k,l=""}if(t)return;h=Ce;continue}return G}l+=a;break;case Be:if(f.scheme="file","/"==a||"\\"==a)h=Ae;else{if(!r||"file"!=r.scheme){h=xe;continue}if(a==n)f.host=r.host,f.path=d(r.path),f.query=r.query;else if("?"==a)f.host=r.host,f.path=d(r.path),f.query="",h=Oe;else{if("#"!=a){ge(O(d(s,c),""))||(f.host=r.host,f.path=d(r.path),f.shortenPath()),h=xe;continue}f.host=r.host,f.path=d(r.path),f.query=r.query,f.fragment="",h=je}}break;case Ae:if("/"==a||"\\"==a){h=Ee;break}r&&"file"==r.scheme&&!ge(O(d(s,c),""))&&(pe(r.path[0],!0)?_(f.path,r.path[0]):f.host=r.host),h=xe;continue;case Ee:if(a==n||"/"==a||"\\"==a||"?"==a||"#"==a){if(!t&&pe(l))h=xe;else if(""==l){if(f.host="",t)return;h=Ce}else{if(o=f.parseHost(l))return o;if("localhost"==f.host&&(f.host=""),t)return;l="",h=Ce}continue}l+=a;break;case Ce:if(f.isSpecial()){if(h=xe,"/"!=a&&"\\"!=a)continue}else if(t||"?"!=a)if(t||"#"!=a){if(a!=n&&(h=xe,"/"!=a))continue}else f.fragment="",h=je;else f.query="",h=Oe;break;case xe:if(a==n||"/"==a||"\\"==a&&f.isSpecial()||!t&&("?"==a||"#"==a)){if(".."===(u=M(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(f.shortenPath(),"/"==a||"\\"==a&&f.isSpecial()||_(f.path,"")):me(l)?"/"==a||"\\"==a&&f.isSpecial()||_(f.path,""):("file"==f.scheme&&!f.path.length&&pe(l)&&(f.host&&(f.host=""),l=x(l,0)+":"),_(f.path,l)),l="","file"==f.scheme&&(a==n||"?"==a||"#"==a))for(;f.path.length>1&&""===f.path[0];)F(f.path);"?"==a?(f.query="",h=Oe):"#"==a&&(f.fragment="",h=je)}else l+=ce(a,fe);break;case Ie:"?"==a?(f.query="",h=Oe):"#"==a?(f.fragment="",h=je):a!=n&&(f.path[0]+=ce(a,oe));break;case Oe:t||"#"!=a?a!=n&&("'"==a&&f.isSpecial()?f.query+="%27":f.query+="#"==a?"%23":ce(a,oe)):(f.fragment="",h=je);break;case je:a!=n&&(f.fragment+=ce(a,ue))}c++}},parseHost:function(e){var t,r,n;if("["==x(e,0)){if("]"!=x(e,e.length-1))return Y;if(t=function(e){var t,r,n,s,a,i,o,u=[0,0,0,0,0,0,0,0],f=0,h=null,c=0,l=function(){return x(e,c)};if(":"==l()){if(":"!=x(e,1))return;c+=2,h=++f}for(;l();){if(8==f)return;if(":"!=l()){for(t=r=0;r<4&&I(ee,l());)t=16*t+A(l(),16),c++,r++;if("."==l()){if(0==r)return;if(c-=r,f>6)return;for(n=0;l();){if(s=null,n>0){if(!("."==l()&&n<4))return;c++}if(!I(V,l()))return;for(;I(V,l());){if(a=A(l(),10),null===s)s=a;else{if(0==s)return;s=10*s+a}if(s>255)return;c++}u[f]=256*u[f]+s,2!=++n&&4!=n||f++}if(4!=n)return;break}if(":"==l()){if(c++,!l())return}else if(l())return;u[f++]=t}else{if(null!==h)return;c++,h=++f}}if(null!==h)for(i=f-h,f=7;0!=f&&i>0;)o=u[f],u[f--]=u[h+i-1],u[h+--i]=o;else if(8!=f)return;return u}(D(e,1,-1)),!t)return Y;this.host=t}else if(this.isSpecial()){if(e=b(e),I(te,e))return Y;if(t=function(e){var t,r,n,s,a,i,o,u=T(e,".");if(u.length&&""==u[u.length-1]&&u.length--,(t=u.length)>4)return e;for(r=[],n=0;n<t;n++){if(""==(s=u[n]))return e;if(a=10,s.length>1&&"0"==x(s,0)&&(a=I(W,s)?16:8,s=D(s,8==a?1:2)),""===s)i=0;else{if(!I(10==a?Z:8==a?X:ee,s))return e;i=A(s,a)}_(r,i)}for(n=0;n<t;n++)if(i=r[n],n==t-1){if(i>=C(256,5-t))return null}else if(i>255)return null;for(o=z(r),n=0;n<r.length;n++)o+=r[n]*C(256,3-n);return o}(e),null===t)return Y;this.host=t}else{if(I(re,e))return Y;for(t="",r=m(e),n=0;n<r.length;n++)t+=ce(r[n],oe);this.host=t}},cannotHaveUsernamePasswordPort:function(){return!this.host||this.cannotBeABaseURL||"file"==this.scheme},includesCredentials:function(){return""!=this.username||""!=this.password},isSpecial:function(){return p(le,this.scheme)},shortenPath:function(){var e=this.path,t=e.length;!t||"file"==this.scheme&&1==t&&pe(e[0],!0)||e.length--},serialize:function(){var e=this,t=e.scheme,r=e.username,n=e.password,s=e.host,a=e.port,i=e.path,o=e.query,u=e.fragment,f=t+":";return null!==s?(f+="//",e.includesCredentials()&&(f+=r+(n?":"+n:"")+"@"),f+=ie(s),null!==a&&(f+=":"+a)):"file"==t&&(f+="//"),f+=e.cannotBeABaseURL?i[0]:i.length?"/"+O(i,"/"):"",null!==o&&(f+="?"+o),null!==u&&(f+="#"+u),f},setHref:function(e){var t=this.parse(e);if(t)throw B(t);this.searchParams.update()},getOrigin:function(){var e=this.scheme,t=this.port;if("blob"==e)try{return new _e(e.path[0]).origin}catch(r){return"null"}return"file"!=e&&this.isSpecial()?e+"://"+ie(this.host)+(null!==t?":"+t:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(e){this.parse(w(e)+":",de)},getUsername:function(){return this.username},setUsername:function(e){var t=m(w(e));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var r=0;r<t.length;r++)this.username+=ce(t[r],he)}},getPassword:function(){return this.password},setPassword:function(e){var t=m(w(e));if(!this.cannotHaveUsernamePasswordPort()){this.password="";for(var r=0;r<t.length;r++)this.password+=ce(t[r],he)}},getHost:function(){var e=this.host,t=this.port;return null===e?"":null===t?ie(e):ie(e)+":"+t},setHost:function(e){this.cannotBeABaseURL||this.parse(e,He)},getHostname:function(){var e=this.host;return null===e?"":ie(e)},setHostname:function(e){this.cannotBeABaseURL||this.parse(e,Le)},getPort:function(){var e=this.port;return null===e?"":w(e)},setPort:function(e){this.cannotHaveUsernamePasswordPort()||(""==(e=w(e))?this.port=null:this.parse(e,qe))},getPathname:function(){var e=this.path;return this.cannotBeABaseURL?e[0]:e.length?"/"+O(e,"/"):""},setPathname:function(e){this.cannotBeABaseURL||(this.path=[],this.parse(e,Ce))},getSearch:function(){var e=this.query;return e?"?"+e:""},setSearch:function(e){""==(e=w(e))?this.query=null:("?"==x(e,0)&&(e=D(e,1)),this.query="",this.parse(e,Oe)),this.searchParams.update()},getSearchParams:function(){return this.searchParams.facade},getHash:function(){var e=this.fragment;return e?"#"+e:""},setHash:function(e){""!=(e=w(e))?("#"==x(e,0)&&(e=D(e,1)),this.fragment="",this.parse(e,je)):this.fragment=null},update:function(){this.query=this.searchParams.serialize()||null}};var _e=function(e){var t=l(this,$e),r=P(arguments.length,1)>1?arguments[1]:void 0,n=U(t,new ze(e,!1,r));a||(t.href=n.serialize(),t.origin=n.getOrigin(),t.protocol=n.getProtocol(),t.username=n.getUsername(),t.password=n.getPassword(),t.host=n.getHost(),t.hostname=n.getHostname(),t.port=n.getPort(),t.pathname=n.getPathname(),t.search=n.getSearch(),t.searchParams=n.getSearchParams(),t.hash=n.getHash())},$e=_e.prototype,Fe=function(e,t){return{get:function(){return R(this)[e]()},set:t&&function(e){return R(this)[t](e)},configurable:!0,enumerable:!0}};if(a&&(c($e,"href",Fe("serialize","setHref")),c($e,"origin",Fe("getOrigin")),c($e,"protocol",Fe("getProtocol","setProtocol")),c($e,"username",Fe("getUsername","setUsername")),c($e,"password",Fe("getPassword","setPassword")),c($e,"host",Fe("getHost","setHost")),c($e,"hostname",Fe("getHostname","setHostname")),c($e,"port",Fe("getPort","setPort")),c($e,"pathname",Fe("getPathname","setPathname")),c($e,"search",Fe("getSearch","setSearch")),c($e,"searchParams",Fe("getSearchParams")),c($e,"hash",Fe("getHash","setHash"))),h($e,"toJSON",(function(){return R(this).serialize()}),{enumerable:!0}),h($e,"toString",(function(){return R(this).serialize()}),{enumerable:!0}),q){var Te=q.createObjectURL,De=q.revokeObjectURL;Te&&h(_e,"createObjectURL",u(Te,q)),De&&h(_e,"revokeObjectURL",u(De,q))}y(_e,"URL"),s({global:!0,constructor:!0,forced:!i,sham:!a},{URL:_e})},60285:function(e,t,r){r(68789)}}]); \ No newline at end of file
diff --git a/web/gui/v2/86.5e866a98fcb6e62687d3.chunk.js b/web/gui/v2/86.a471108ca7f6fc7080fe.chunk.js
index 877f57e4..e56e49c7 100644
--- a/web/gui/v2/86.5e866a98fcb6e62687d3.chunk.js
+++ b/web/gui/v2/86.a471108ca7f6fc7080fe.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="570b5a0a-9c22-45ad-b606-fb28c780cc0f",e._sentryDebugIdIdentifier="sentry-dbid-570b5a0a-9c22-45ad-b606-fb28c780cc0f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[86],{80606:function(e,t,n){n.d(t,{F:function(){return i},I:function(){return c}});var r=n(4480),o=n(78401),a=(0,r.cn)({key:"cookiePreferences",default:(0,o.O)()}),c=function(){return(0,r.sJ)(a)},i=function(){return(0,r.FV)(a)}},38086:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var r=n(45987),o=n(29439),a=(n(92222),n(9170),n(66992),n(41539),n(88674),n(34668),n(78783),n(33948),n(21249),n(57640),n(9924),n(69826),n(31672),n(2490),n(59461),n(26699),n(32023),n(74916),n(64765),n(15306),n(67294)),c=n(89250),i=n(17563),u=n(26398),d=n(62200),s=n(13477),f=n(25819),l=n(93017),g=n(76201),p=n(74059),w=n(78401),v=n(80606),h=function(){var e;if(null!==(e=window.posthog)&&void 0!==e&&e.__loaded){var t=(new Date).toISOString();window.posthog.register_once({event_source:"cloud",posthog_first_seen_at:t,posthog_first_distinct_id:"get_distinct_id"in window.posthog&&window.posthog.get_distinct_id()})}},_=function(){return(0,a.useEffect)(h,[])},y=n(7335),m=n(18761),b=n(64358),E=n(32950),k=n(78710),I=["cloudRoute","redirect_uri"],O=function(e){var t=e.errorRetry,n=e.token,r=e.redirectUri,o=i.parseUrl(decodeURIComponent(t)),c=o.url,u=o.query.redirect_uri,d=(0,a.useRef)(!1);return d.current||(d.current=!0,window.location="".concat(c,"?token=").concat(n,"&redirect_uri=").concat(u||r)),null},S=function(){var e=(0,s.Iy)("isLoaded"),t=(0,s.Iy)("isAnonymous");(0,g.Z)(),_(),function(){var e=(0,s.Iy)("id"),t=(0,s.Iy)("name"),n=(0,s.Iy)("email"),r=(0,s.Iy)("createdAt"),o=(0,s.Iy)("verifiedEmail"),c=(0,s.Iy)("avatarUrl"),i=(0,p.GM)("loaded"),u=(0,p.GM)("ids"),d=(0,v.I)();(0,a.useEffect)((function(){e&&i&&(0,w.Z)({avatar:c,createdAt:r,email:n,id:e,name:t,spacesCount:u.length,verifiedEmail:o})}),[e,i,d]),(0,a.useEffect)((function(){var e;if(null!==(e=window.posthog)&&void 0!==e&&e.__loaded)try{window.posthog.onFeatureFlags((function(){window.posthog.isFeatureEnabled&&window.posthog.isFeatureEnabled("user-age-less-than-7d")&&window.posthog.startSessionRecording()}))}catch(t){}}),[])}();var n=(0,c.bS)("/sign-in/*"),h=(0,c.bS)("/sign-up/*"),S=!!n||!!h,A=function(){var e=(0,l.Z)(),t=(0,o.Z)(e,2)[1],n=(0,y.DH)();return(0,a.useCallback)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.origin,o=e.id,a=e.name;if(r){var c=decodeURIComponent(o),i=decodeURIComponent(r);(0,m.kq)(o).then((function(e){var r=e.data,o=void 0===r?[]:r;return n(c,i,a),o.length?u.Z.get(d.MC).then((function(e){var t=e.data;return Promise.any(t.map((function(e){return u.Z.get((0,b.W)({spaceId:e.id})).then((function(t){var n=t.data;return Promise.any(n.map((function(t){return(0,f.Fz)({roomId:t.id,spaceId:e.id}).then((function(n){var r=n.nodes.find((function(e){var t=e.id;return o.includes(t)}));if(!r)throw new Error("can't find matching node");var a=window.location,c=a.protocol,i=a.host;return"".concat(c,"//").concat(i,"/spaces/").concat(e.slug,"/rooms/").concat(t.slug,"/nodes/").concat(r.id)}))})))}))})))})).catch((function(){})):(0,m.YZ)(c).then((function(e){var n=e.data.claimed;throw t(n?{errorMsgKey:"ErrForbidden",errorMessage:"You tried to access this Node on Netdata and you don't have access to it. Please contact your Space admin to give you access to it."}:{errorMsgKey:"ErrForbidden",errorMessage:"This Node isn't connected to Netdata. Please connect it, if you have permission for it, or contact your Space admin."}),"no access"}))})).then((function(e){e&&setTimeout(location.assign(e))})).catch((function(){}))}}),[])}(),j=(0,E.Z)();if(!e||j.isFetching||j.hasAccess&&!S)return null;var C=window.location,P=C.pathname,R=C.search,Z=C.hash,F=i.parse(Z),D=F.error_retry,U=F.token,M=i.parse(R),N=M.cloudRoute,T=M.redirect_uri,x=(0,r.Z)(M,I);if(!t&&D)return a.createElement(O,{errorRetry:D,token:U,redirectUri:T});if(!t&&S){if(N){var L=N.includes("join-callback")?decodeURI(N):N,G=Array.isArray(L)?L[0]:L;return a.createElement(c.Fg,{replace:!0,to:G})}return T?(A(x),window.location.replace(decodeURIComponent(T)),null):a.createElement(c.Fg,{replace:!0,to:"/spaces"})}if(k.ZP)return null;if(t&&!S){var J=Z.includes("join-callback")?Z:encodeURIComponent(Z),Y="".concat(R).concat(R?"&":"?","cloudRoute=").concat(P);return a.createElement(c.Fg,{replace:!0,to:{pathname:"/sign-in",search:Y,hash:J}})}return null}},78401:function(e,t,n){n.d(t,{O:function(){return d}});n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(29439),a=(n(85827),n(41539),n(25387),n(2490),n(72608),n(69720),n(26699),n(32023),n(52971)),c=n(85456);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=function(){return Object.entries(a.Ew).reduce((function(e,t){var n=(0,o.Z)(t,2),a=n[0],i=n[1];return u(u({},e),{},(0,r.Z)({},a,(0,c.gs)(i.id)))}),{})};t.Z=function(e){var t=e.avatar,n=e.createdAt,r=e.email,o=e.id,i=e.name,u=e.spacesCount,d=e.verifiedEmail;if(window.envSettings.tracking&&(!r||!r.includes("@netdata.msdc.co"))&&(!o||"00000000-0000-0000-0000-000000000000"!==o)&&(!r||!r.includes("anonymous@netdata.cloud"))){var s,f=new Date,l=f.toISOString(),g=new Date(n),p=Math.floor((f-g)/864e5);if((0,c.gs)(a.Ew.analyticsCookies.id))window.dataLayer&&window.dataLayer.push({event:"UserInfoAvailable",user_id:o,userIdentifier:o,userName:i,userEmail:r,userAccountCreatedAt:n,userAccountCreatedDaysAgo:p,userAvatarURL:t,userEmailVerified:d,spacesCount:u}),window.gtag&&window.gtag("config","G-J69Z2JCTFB",{user_id:o}),null!==(s=window.posthog)&&void 0!==s&&s.__loaded&&(window.posthog.identify(o),window.posthog.people.set({email:r||"unknown email",name:i,netdata_cloud_account_created_at:n,netdata_cloud_account_created_days_ago:p}),window.posthog.register({netdata_cloud_account_created_days_ago:p}),window.posthog.register_once({event_source:"cloud",netdata_cloud_account_created_at:n,netdata_cloud_account_email:r||"unknown email",netdata_cloud_account_id:o,netdata_cloud_signed_in_at:l}))}}},11060:function(e,t,n){var r=n(1702),o=Error,a=r("".replace),c=String(o("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,u=i.test(c);e.exports=function(e,t){if(u&&"string"==typeof e&&!o.prepareStackTrace)for(;t--;)e=a(e,i,"");return e}},5392:function(e,t,n){var r=n(68880),o=n(11060),a=n(22914),c=Error.captureStackTrace;e.exports=function(e,t,n,i){a&&(c?c(e,t):r(e,"stack",o(n,i)))}},22914:function(e,t,n){var r=n(47293),o=n(79114);e.exports=!r((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},58340:function(e,t,n){var r=n(70111),o=n(68880);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},56277:function(e,t,n){var r=n(41340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},56967:function(e,t,n){var r=n(82109),o=n(47976),a=n(79518),c=n(27674),i=n(99920),u=n(70030),d=n(68880),s=n(79114),f=n(58340),l=n(5392),g=n(20408),p=n(56277),w=n(5112)("toStringTag"),v=Error,h=[].push,_=function(e,t){var n,r=o(y,this);c?n=c(v(),r?a(this):y):(n=r?this:u(y),d(n,w,"Error")),void 0!==t&&d(n,"message",p(t)),l(n,_,n.stack,1),arguments.length>2&&f(n,arguments[2]);var i=[];return g(e,h,{that:i}),d(n,"errors",i),n};c?c(_,v):i(_,v,{name:!0});var y=_.prototype=u(v.prototype,{constructor:s(1,_),message:s(1,""),name:s(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:_})},9170:function(e,t,n){n(56967)},34668:function(e,t,n){var r=n(82109),o=n(46916),a=n(19662),c=n(35005),i=n(78523),u=n(12534),d=n(20408),s=n(80612),f="No one promise resolved";r({target:"Promise",stat:!0,forced:s},{any:function(e){var t=this,n=c("AggregateError"),r=i.f(t),s=r.resolve,l=r.reject,g=u((function(){var r=a(t.resolve),c=[],i=0,u=1,g=!1;d(e,(function(e){var a=i++,d=!1;u++,o(r,t,e).then((function(e){d||g||(g=!0,s(e))}),(function(e){d||g||(d=!0,c[a]=e,--u||l(new n(c,f)))}))})),--u||l(new n(c,f))}));return g.error&&l(g.value),r.promise}})}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="aad25552-b924-4618-9bb4-ec336d472497",e._sentryDebugIdIdentifier="sentry-dbid-aad25552-b924-4618-9bb4-ec336d472497")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[86],{80606:function(e,t,n){n.d(t,{F:function(){return c},I:function(){return i}});var r=n(4480),o=n(78401),a=(0,r.cn)({key:"cookiePreferences",default:(0,o.O)()}),i=function(){return(0,r.sJ)(a)},c=function(){return(0,r.FV)(a)}},38086:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var r=n(45987),o=n(29439),a=(n(92222),n(9170),n(66992),n(41539),n(88674),n(34668),n(78783),n(33948),n(21249),n(57640),n(9924),n(69826),n(31672),n(2490),n(59461),n(26699),n(32023),n(74916),n(64765),n(15306),n(67294)),i=n(89250),c=n(17563),d=n(26398),u=n(62200),s=n(13477),f=n(25819),l=n(93017),g=n(76201),p=n(74059),w=n(78401),v=n(80606),h=function(){var e;if(null!==(e=window.posthog)&&void 0!==e&&e.__loaded){var t=(new Date).toISOString();window.posthog.register_once({event_source:"cloud",posthog_first_seen_at:t,posthog_first_distinct_id:"get_distinct_id"in window.posthog&&window.posthog.get_distinct_id()})}},_=function(){return(0,a.useEffect)(h,[])},y=n(7335),m=n(18761),b=n(64358),E=n(32950),k=n(78710),I=["cloudRoute","redirect_uri"],O=function(e){var t=e.errorRetry,n=e.token,r=e.redirectUri,o=c.parseUrl(decodeURIComponent(t)),i=o.url,d=o.query.redirect_uri,u=(0,a.useRef)(!1);return u.current||(u.current=!0,window.location="".concat(i,"?token=").concat(n,"&redirect_uri=").concat(d||r)),null},S=function(){var e=(0,s.Iy)("isLoaded"),t=(0,s.Iy)("isAnonymous");(0,g.Z)(),_(),function(){var e=(0,s.Iy)("id"),t=(0,s.Iy)("name"),n=(0,s.Iy)("email"),r=(0,s.Iy)("createdAt"),o=(0,s.Iy)("verifiedEmail"),i=(0,s.Iy)("avatarUrl"),c=(0,p.GM)("loaded"),d=(0,p.GM)("ids"),u=(0,v.I)();(0,a.useEffect)((function(){e&&c&&(0,w.Z)({avatar:i,createdAt:r,email:n,id:e,name:t,spacesCount:d.length,verifiedEmail:o})}),[e,c,u]),(0,a.useEffect)((function(){var e;if(null!==(e=window.posthog)&&void 0!==e&&e.__loaded)try{window.posthog.onFeatureFlags((function(){window.posthog.isFeatureEnabled&&window.posthog.isFeatureEnabled("user-age-less-than-7d")&&window.posthog.startSessionRecording()}))}catch(t){}}),[])}();var n=(0,i.bS)("/sign-in/*"),h=(0,i.bS)("/sign-up/*"),S=!!n||!!h,A=function(){var e=(0,l.Z)(),t=(0,o.Z)(e,2)[1],n=(0,y.DH)();return(0,a.useCallback)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.origin,o=e.id,a=e.name;if(r){var i=decodeURIComponent(o),c=decodeURIComponent(r);(0,m.kq)(o).then((function(e){var r=e.data,o=void 0===r?[]:r;return n(i,c,a),o.length?d.Z.get(u.MC).then((function(e){var t=e.data;return Promise.any(t.map((function(e){return d.Z.get((0,b.W)({spaceId:e.id})).then((function(t){var n=t.data;return Promise.any(n.map((function(t){return(0,f.Fz)({roomId:t.id,spaceId:e.id}).then((function(n){var r=n.nodes.find((function(e){var t=e.id;return o.includes(t)}));if(!r)throw new Error("can't find matching node");var a=window.location,i=a.protocol,c=a.host;return"".concat(i,"//").concat(c,"/spaces/").concat(e.slug,"/rooms/").concat(t.slug,"/nodes/").concat(r.id)}))})))}))})))})).catch((function(){})):(0,m.YZ)(i).then((function(e){var n=e.data.claimed;throw t(n?{errorMsgKey:"ErrForbidden",errorMessage:"You tried to access this Node on Netdata and you don't have access to it. Please contact your Space admin to give you access to it."}:{errorMsgKey:"ErrForbidden",errorMessage:"This Node isn't connected to Netdata. Please connect it, if you have permission for it, or contact your Space admin."}),"no access"}))})).then((function(e){e&&setTimeout(location.assign(e))})).catch((function(){}))}}),[])}(),j=(0,E.Z)();if(!e||j.isFetching||j.hasAccess&&!S)return null;var C=window.location,P=C.pathname,R=C.search,Z=C.hash,F=c.parse(Z),D=F.error_retry,U=F.token,M=c.parse(R),N=M.cloudRoute,T=M.redirect_uri,x=(0,r.Z)(M,I);if(!t&&D)return a.createElement(O,{errorRetry:D,token:U,redirectUri:T});if(!t&&S){if(N){var L=N.includes("join-callback")?decodeURI(N):N,G=Array.isArray(L)?L[0]:L;return a.createElement(i.Fg,{replace:!0,to:G})}return T?(A(x),window.location.replace(decodeURIComponent(T)),null):a.createElement(i.Fg,{replace:!0,to:"/spaces"})}if(k.ZP)return null;if(t&&!S){var J=Z.includes("join-callback")?Z:encodeURIComponent(Z),Y="".concat(R).concat(R?"&":"?","cloudRoute=").concat(P);return a.createElement(i.Fg,{replace:!0,to:{pathname:"/sign-in",search:Y,hash:J}})}return null}},78401:function(e,t,n){n.d(t,{O:function(){return u}});n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(29439),a=(n(85827),n(41539),n(25387),n(2490),n(72608),n(69720),n(26699),n(32023),n(52971)),i=n(85456);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=function(){return Object.entries(a.Ew).reduce((function(e,t){var n=(0,o.Z)(t,2),a=n[0],c=n[1];return d(d({},e),{},(0,r.Z)({},a,(0,i.gs)(c.id)))}),{})};t.Z=function(e){var t=e.avatar,n=e.createdAt,r=e.email,o=e.id,c=e.name,d=e.spacesCount,u=e.verifiedEmail;if(window.envSettings.tracking&&(!r||!r.includes("@netdata.msdc.co"))&&(!o||"00000000-0000-0000-0000-000000000000"!==o)&&(!r||!r.includes("anonymous@netdata.cloud"))){var s,f=new Date,l=f.toISOString(),g=new Date(n),p=Math.floor((f-g)/864e5);if((0,i.gs)(a.Ew.analyticsCookies.id))window.dataLayer&&window.dataLayer.push({event:"UserInfoAvailable",user_id:o,userIdentifier:o,userName:c,userEmail:r,userAccountCreatedAt:n,userAccountCreatedDaysAgo:p,userAvatarURL:t,userEmailVerified:u,spacesCount:d}),window.gtag&&window.gtag("config","G-J69Z2JCTFB",{user_id:o}),null!==(s=window.posthog)&&void 0!==s&&s.__loaded&&(window.posthog.identify(o),window.posthog.people.set({email:r||"unknown email",name:c,netdata_cloud_account_created_at:n,netdata_cloud_account_created_days_ago:p}),window.posthog.register({netdata_cloud_account_created_days_ago:p}),window.posthog.register_once({event_source:"cloud",netdata_cloud_account_created_at:n,netdata_cloud_account_email:r||"unknown email",netdata_cloud_account_id:o,netdata_cloud_signed_in_at:l}))}}},11060:function(e,t,n){var r=n(1702),o=Error,a=r("".replace),i=String(o("zxcasd").stack),c=/\n\s*at [^:]*:[^\n]*/,d=c.test(i);e.exports=function(e,t){if(d&&"string"==typeof e&&!o.prepareStackTrace)for(;t--;)e=a(e,c,"");return e}},5392:function(e,t,n){var r=n(68880),o=n(11060),a=n(22914),i=Error.captureStackTrace;e.exports=function(e,t,n,c){a&&(i?i(e,t):r(e,"stack",o(n,c)))}},22914:function(e,t,n){var r=n(47293),o=n(79114);e.exports=!r((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",o(1,7)),7!==e.stack)}))},58340:function(e,t,n){var r=n(70111),o=n(68880);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},56277:function(e,t,n){var r=n(41340);e.exports=function(e,t){return void 0===e?arguments.length<2?"":t:r(e)}},56967:function(e,t,n){var r=n(82109),o=n(47976),a=n(79518),i=n(27674),c=n(99920),d=n(70030),u=n(68880),s=n(79114),f=n(58340),l=n(5392),g=n(20408),p=n(56277),w=n(5112)("toStringTag"),v=Error,h=[].push,_=function(e,t){var n,r=o(y,this);i?n=i(v(),r?a(this):y):(n=r?this:d(y),u(n,w,"Error")),void 0!==t&&u(n,"message",p(t)),l(n,_,n.stack,1),arguments.length>2&&f(n,arguments[2]);var c=[];return g(e,h,{that:c}),u(n,"errors",c),n};i?i(_,v):c(_,v,{name:!0});var y=_.prototype=d(v.prototype,{constructor:s(1,_),message:s(1,""),name:s(1,"AggregateError")});r({global:!0,constructor:!0,arity:2},{AggregateError:_})},9170:function(e,t,n){n(56967)},34668:function(e,t,n){var r=n(82109),o=n(46916),a=n(19662),i=n(35005),c=n(78523),d=n(12534),u=n(20408),s=n(80612),f="No one promise resolved";r({target:"Promise",stat:!0,forced:s},{any:function(e){var t=this,n=i("AggregateError"),r=c.f(t),s=r.resolve,l=r.reject,g=d((function(){var r=a(t.resolve),i=[],c=0,d=1,g=!1;u(e,(function(e){var a=c++,u=!1;d++,o(r,t,e).then((function(e){u||g||(g=!0,s(e))}),(function(e){u||g||(u=!0,i[a]=e,--d||l(new n(i,f)))}))})),--d||l(new n(i,f))}));return g.error&&l(g.value),r.promise}})}}]); \ No newline at end of file
diff --git a/web/gui/v2/915.c5be29433632e593abf9.chunk.js b/web/gui/v2/915.c5be29433632e593abf9.chunk.js
new file mode 100644
index 00000000..3f0c7f2c
--- /dev/null
+++ b/web/gui/v2/915.c5be29433632e593abf9.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="3f62decf-86b8-467a-be5c-076bc5049d58",e._sentryDebugIdIdentifier="sentry-dbid-3f62decf-86b8-467a-be5c-076bc5049d58")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[915],{46742:function(e,t,n){n.d(t,{lG:function(){return w},om:function(){return h}});var r=n(29439),o=n(93433),a=n(87462),i=n(45987),c=n(4942),l=(n(47042),n(92222),n(41539),n(39714),n(85827),n(25387),n(2490),n(72608),n(26699),n(32023),n(21249),n(57640),n(9924),n(57327),n(88449),n(59849),n(64211),n(41874),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),u=n(60677),s=n(95248),d=n(57509),f=n(39434),m=["item","onItemClick","itemProps"],p=["value","disabled","onClick","label","selected","indeterminate","textColor","iconName","count","level"],g=["baseKey","extraKey","param","Item","testIdPrefix","collection","getValue","getLabel","itemsProps","itemProps","capitalized","multi"];function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y=function(e){return e?e[0].toUpperCase()+e.slice(1):"Unknown"},h=(0,u.default)(d.Flex).attrs((function(e){return b({as:"li",role:"option",padding:[1,2],gap:1,justifyContent:"between",width:"100%"},e)})).withConfig({displayName:"checkboxes__ItemContainer",componentId:"sc-1vef46u-0"})(["cursor:",";opacity:",";align-items:",";"," ",""],(function(e){return e.disabled?"default":"pointer"}),(function(e){var t=e.stale,n=e.disabled;return(t||n)&!e.selected?.7:1}),(function(e){return e.alignItems||"center"}),(function(e){var t=e.multi,n=e.selected,r=e.theme;return!t&&n&&"\n background-color: ".concat(function(e){var t=e.theme;return("Dark"===t.name?(0,d.getRgbColor)(["green","green20"]):(0,d.getRgbColor)(["green","green195"]))({theme:t})}({theme:r}),";\n ")}),(function(e){var t=e.multi,n=e.selected,r=e.theme;return!t&&!n&&"\n &:hover {\n background-color: ".concat((0,d.getColor)("highlight")({theme:r}),";\n }\n ")})),w=(0,u.default)(d.Checkbox).withConfig({displayName:"checkboxes__FullWidthCheckbox",componentId:"sc-1vef46u-1"})(["width:100%;"]),O=function(e){var t=e.baseKey,n=e.extraKey,c=e.param,u=e.Item,f=e.testIdPrefix,m=e.collection,p=e.getValue,v=e.getLabel,y=e.itemsProps,h=e.itemProps,w=e.capitalized,O=void 0===w||w,x=e.multi,k=void 0===x||x,C=(0,i.Z)(e,g),I=(0,s.I0)(c,{defaultValue:[],key:t,extraKey:n}),P=(0,r.Z)(I,2),j=P[0],E=void 0===j?[]:j,Z=P[1];(0,l.useEffect)((function(){if(m.length&&E.length){var e=E.filter((function(e){return m.some((function(t){return p(t)===e}))}));e.length!==E.length&&Z(e)}}),[m.length,Z]);var L=(0,l.useCallback)((function(e){var t=e.value,n=e.checked;Z(k?function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?t:[]:n?[].concat((0,o.Z)(e),[t]):e.filter((function(e){return e!==t}))}:function(){return n?[t]:[]})}),[Z]),S=(0,l.useMemo)((function(){return function(e){var t=e.collection,n=e.selected,r=e.getValue,a=e.getLabel,i=e.itemsProps,c=e.multi;if(!t.length)return[];var l=c&&t.length<=n.length,u=c&&!l&&!!n.length;return t.reduce((function(e,t){var c=n.includes(r(t));return[].concat((0,o.Z)(e),[b(b(b({},i.row),t),{},{value:r(t),label:a(t),selected:c})])}),c?[b(b({},i.head),{},{label:"Select all",value:t.map(r),selected:l,indeterminate:u})]:[])}({collection:m,selected:E,getValue:p,getLabel:v,itemsProps:y,multi:k})}),[E,Z,m]);return l.createElement(d.MenuDropdown,(0,a.Z)({hideShadow:!0,height:{max:"300px"},width:{max:"600px"},background:"mainBackground",overflow:"auto","data-testid":"".concat(f,'-filter-selections"'),searchMargin:[0,0,2],items:S,Item:u,onItemClick:L,value:E,"data-value":E.join(",")||"all-selected",hasSearch:m.length>5,itemProps:b(b({},h),{},{testIdPrefix:f,capitalized:O,multi:k})},C))},x=function(e){return e};O.defaultProps={itemProps:{padding:[1,.5],maxLength:30,multi:!0},itemsProps:{head:{textColor:"textLite"},row:{textColor:"text"}},Item:function(e){var t=e.item,n=e.onItemClick,r=e.itemProps,o=(0,i.Z)(e,m),c=t.value,u=t.disabled,s=t.onClick,g=t.label,v=t.selected,b=t.indeterminate,O=t.textColor,x=t.iconName,k=t.count,C=t.level,I=void 0===C?0:C,P=(0,i.Z)(t,p),j=r.capitalized,E=r.multi,Z=u||!E&&v,L=function(e){u||(s&&s(e),n({value:c,label:g,checked:!v,item:t}))};return l.createElement(h,(0,a.Z)({"aria-selected":v,selected:v,disabled:Z,stale:0===k||"0"===k},P,o,r,{"data-testid":"".concat(r.testIdPrefix,"-filters-item")}),l.createElement(d.Flex,{gap:2,alignItems:"center",padding:[0,0,0,4*I],width:"100%"},E?l.createElement(w,{"data-testid":"".concat(r.testIdPrefix,"-filters-checkbox-").concat(g),checked:v,disabled:Z,indeterminate:b,onChange:L,label:l.createElement(d.Flex,{gap:1,alignItems:"center",width:"100%"},x&&l.createElement(d.Icon,{name:x,size:"small",color:"textLite"}),l.createElement(f.default,{Component:d.TextSmall,title:g,text:"string"===typeof g&&j?y(g):g.toString(),maxLength:r.maxLength||80,color:O}))}):l.createElement(d.Flex,{gap:1,padding:[0,1],alignItems:"center",onClick:L,"data-testid":"".concat(r.testIdPrefix,"-filters-item-").concat(g)},l.createElement(f.default,{Component:d.TextSmall,title:g,text:"string"===typeof g&&j?y(g):g.toString(),maxLength:r.maxLength||80,color:O}))),!isNaN(k)&&l.createElement(d.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(r.testIdPrefix,"-filters-").concat(g,"-count")},k.toString()))},getValue:x,getLabel:x},t.ZP=O},97193:function(e,t,n){n.d(t,{c:function(){return E}});var r=n(29439),o=n(4942),a=n(93433),i=n(87462),c=n(45987),l=(n(92222),n(41539),n(39714),n(64211),n(2490),n(41874),n(26699),n(32023),n(85827),n(25387),n(72608),n(57327),n(88449),n(59849),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),u=n(91966),s=n.n(u),d=n(95062),f=n.n(d),m=n(79655),p=n(97945),g=n(95248),v=n(57509),b=n(39434),y=n(91008),h=n(72233),w=n(39583),O=n(46742),x=["value","disabled","onClick","label","nodeId","selected","status","indeterminate","textColor","iconName","hasAlerts","hasML","hasFn","showAlerts","showMl","showFn","requireML","requireFn","capabilities","count","multi","checkIsDisabled"],k=["item","onItemClick","itemProps","close"],C=["baseKey","extraKey","statusProps","multi","useFilteredIds","nodeCounts","checkIsDisabled"];function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var j={Live:{head:{label:"Live nodes",textColor:"textLite",iconName:"connectivityStatusLive",hasML:!0,hasAlerts:!0,hasFn:!0},node:{textColor:"text",showAlerts:!0,showMl:!0,showFn:!0}},Stale:{head:{label:"Stale nodes",textColor:"textLite",iconName:"connectivityStatusStale",hasML:!0},node:{textColor:"text",showMl:!0}},Offline:{head:{label:"Offline nodes",textColor:"textLite",iconName:"connectivityStatusOffline"},node:{textColor:"textLite"}}},E=function(e){var t=e.item,n=t.value,r=t.disabled,o=t.onClick,a=t.label,u=t.nodeId,s=t.selected,d=t.status,g=t.indeterminate,C=t.textColor,I=t.iconName,P=t.hasAlerts,j=t.hasML,E=t.hasFn,Z=t.showAlerts,L=t.showMl,S=t.showFn,D=t.requireML,_=t.requireFn,N=t.capabilities,A=t.count,U=t.multi,F=void 0===U||U,M=t.checkIsDisabled,T=void 0===M?f():M,B=(0,c.Z)(t,x),R=e.onItemClick,G=e.itemProps,V=e.close,K=(0,c.Z)(e,k),z=(0,p.m3)(u),J=(0,l.useMemo)((function(){var e;return!S||!N||(null===(e=N.funcs)||void 0===e?void 0:e.enabled)}),[S]),H=(0,l.useMemo)((function(){var e;return!S||!N||(null===(e=N.ml)||void 0===e?void 0:e.enabled)}),[S]),q=r||D&&!H||_&&!J||!F&&s||T(u),$=function(e){q||(o&&o(e),R({value:n,checked:!s,status:d}))},Y=function(e){e.stopPropagation(),null===V||void 0===V||V()};return l.createElement(O.om,(0,i.Z)({"aria-selected":s,selected:s,disabled:q,stale:0===A||"0"===A},B,K,G,{"data-testid":"filterNodes-item-".concat(a),multi:F}),l.createElement(v.Flex,{gap:2,alignItems:"center",flex:!0},F?l.createElement(l.Fragment,null,l.createElement(O.lG,{"data-testid":"filterNodes-checkbox-".concat(a),checked:s,disabled:q,indeterminate:g,onChange:$,label:l.createElement(v.Flex,{gap:1,alignItems:"center"},I&&l.createElement(v.Icon,{name:I,size:"small",color:"textLite"}),l.createElement(b.default,{Component:v.TextSmall,title:a,text:a,maxLength:(null===G||void 0===G?void 0:G.maxLength)||80,color:C,truncate:!0}),"Offline"!==d&&!Array.isArray(n)&&l.createElement(y.Z,{as:m.rU,to:z,state:{nodeId:u},"data-testid":"filterNodes-item-gta",color:"textLite",hoverColor:"text",onClick:Y},l.createElement(v.Icon,{name:"nav_arrow_goto",height:"10px",width:"10px"})))})):l.createElement(v.Flex,{gap:1,padding:[0,1],alignItems:"center",onClick:$,"data-testid":"filterNodes-item-".concat(a),flex:!0},l.createElement(b.default,{Component:v.TextSmall,title:a,text:a,maxLength:(null===G||void 0===G?void 0:G.maxLength)||80,color:C}),"Offline"!==d&&!Array.isArray(n)&&l.createElement(y.Z,{as:m.rU,to:z,state:{nodeId:u},"data-testid":"filterNodes-item-gta",color:"textLite",hoverColor:"text",onClick:Y},l.createElement(v.Icon,{name:"nav_arrow_goto",height:"10px",width:"10px"})))),l.createElement(v.Flex,{gap:1},Z&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:17},l.createElement(w.Z,{id:n,isLive:!0,name:a})),L&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(h.Z,{badge:"ml","data-testid":"nodes-indicator-machine-learning",enabled:H,name:a})),S&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(h.Z,{badge:"fn","data-testid":"nodes-indicator-fn",enabled:J,name:a})),P&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:17},l.createElement(v.Icon,{name:"alarm",size:"small",color:"textLite"}),l.createElement(v.TextSmall,{strong:!0,color:"textLite"},"Alerts")),j&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(v.Icon,{name:"anomaliesLens",size:"small",color:"textLite"}),l.createElement(v.TextSmall,{strong:!0,color:"textLite"},"ML")),E&&l.createElement(v.Flex,{gap:1,justifyContent:"center",width:10},l.createElement(v.Icon,{name:"functions",size:"small",color:"textLite"}),l.createElement(v.TextSmall,{strong:!0,color:"textLite"},"Fn")),!isNaN(A)&&l.createElement(v.Pill,{flavour:"neutral",hollow:!0,"data-testid":"".concat(G.testIdPrefix,"-filters-").concat(a,"-count")},A.toString())))},Z=function(e){var t=e.ids,n=e.status,r=e.selectedIds,o=e.nodesById,i=e.statusProps,c=e.multi,l=void 0===c||c,u=e.nodeCounts,s=e.checkIsDisabled;if(!t.length)return[];var d=l&&!t.some((function(e){return!r.includes(e)})),f=l&&r.length&&!d&&t.some((function(e){return r.includes(e)}));return t.reduce((function(e,t){var c=o[t],d=c.name,f=c.capabilities,m=r.includes(t);return[].concat((0,a.Z)(e),[P(P({value:t,label:d,nodeId:t,selected:m,status:n,capabilities:f},i[n].node),{},{multi:l,checkIsDisabled:s,count:u?u[t]||0:NaN})])}),[P(P({value:t,selected:d,indeterminate:f,disabled:!l,status:n},i[n].head),{},{multi:l})])},L=function(e){return e};t.Z=function(e){var t=e.baseKey,n=e.extraKey,o=e.statusProps,u=void 0===o?j:o,d=e.multi,f=void 0===d||d,m=e.useFilteredIds,b=void 0===m?L:m,y=e.nodeCounts,h=e.checkIsDisabled,w=(0,c.Z)(e,C),O=b((0,g.H7)()),x=(0,g.wT)({defaultValue:[],key:t,extraKey:n}),k=(0,r.Z)(x,2),I=k[0],P=k[1];(0,l.useEffect)((function(){if(O.length&&I.length){var e=I.filter((function(e){return O.includes(e)}));e.length!==I.length&&P(e)}}),[O]);var S=(0,p.HZ)(O),D=(0,p.e5)(O),_=(0,p.mf)(O),N=(0,l.useCallback)((function(e){var t=e.value,n=e.checked;P(f?function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Array.isArray(t)?n?(0,a.Z)(new Set([].concat((0,a.Z)(e),(0,a.Z)(t)))):s()(e,t):n?[].concat((0,a.Z)(e),[t]):e.filter((function(e){return e!==t}))}:function(){return n?[t]:[]})}),[P]),A=(0,p.d$)(),U=(0,l.useMemo)((function(){var e=Z({ids:S,status:"Live",selectedIds:I,nodesById:A,statusProps:u,multi:f,nodeCounts:y,checkIsDisabled:h}),t=Z({ids:D,status:"Stale",selectedIds:I,nodesById:A,statusProps:u,multi:f,nodeCounts:y,checkIsDisabled:h}),n=Z({ids:_,status:"Offline",selectedIds:I,nodesById:A,statusProps:u,multi:f,nodeCounts:y,checkIsDisabled:h});return e.concat(t,n)}),[I,S.length,D.length,_.length,y,h]);return l.createElement(v.MenuDropdown,(0,i.Z)({hideShadow:!0,height:{max:"60vh"},width:{max:"600px"},overflow:"auto","data-testid":"filterNodes-drop",searchMargin:[2],items:U,Item:E,onItemClick:N,value:I,"data-value":I.join(",")||"all-nodes",hasSearch:!0},w))}},48450:function(e,t,n){n.d(t,{Kp:function(){return d},MN:function(){return w},ND:function(){return m},hN:function(){return b},jc:function(){return h},sr:function(){return g},uk:function(){return f}});var r=n(4942),o=(n(21249),n(57640),n(9924),n(41539),n(88674),n(92087),n(74916),n(15306),n(92222),n(82481),n(47941),n(82526),n(57327),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),a=n(66152),i=n(78710);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=function(e){return{id:e.roomID,alertCounter:e.alarmCounter,unreachableCount:e.unreachableCount,state:e.state}},s=function(e){return{results:(e.results||[]).map(u)}},d=function(e){return(0,i.Ly)(e)?Promise.resolve({data:{results:[]}}):o.Z.get("/api/v2/spaces/".concat(e,"/alarms"),{transform:s})},f=function(e){return(0,i.Ly)(e)?Promise.resolve({data:null}):o.Z.get("/api/v2/spaces/".concat(e,"/alarms/metas"))},m={contexts:null,names:null,roles:null},p=function(e){var t=e.alerts,n=void 0===t?[]:t,r=e.nodes,o=void 0===r?[]:r,i=e.alert_instances,c=void 0===i?[]:i;return(0,a.k5)(c.map((function(e){var t=e.ni,r=e.ati,a=e.tr_i,i=e.tr_v,c=e.tr_t,l=e.cfg,u=e.info,s=e.fami,d=e.ch,f=e.ch_n,m=void 0===f?d:f,p=e.ctx,g=e.v,v=e.t,b=e.flags,y=e.st,h=e.src,w=e.units,O=e.to,x=e.cl,k=e.cm,C=e.tp,I=o[t],P=n[r],j=P.nm,E=P.cr,Z=P.wr,L=P.cl,S=P.er,D=P.in,_=P.nd,N=P.cfg;return{mg:I.mg,nd:I.nd,nodeId:I.nd||I.mg,id:a,context:p,value:g,status:y.toLowerCase(),name:j,displayName:(j||"unknown_alert").replace(/_/g," "),alert:alert,criticalCount:E,warningCount:Z,clearCount:L,errorCount:S,instanceCount:D,nodeCount:_,configCount:N,lastStatusChangeValue:i,lastStatusChange:c,configHash:l,info:u,family:s,instance:d,instanceName:m,lastUpdated:v,flags:b,units:w,source:h,recipient:O,class:x,component:k,type:C}})))},g=function(e,t){return(0,i.Ly)(e)?o.Z.get("/api/v2/alerts?options=summary,instances,values,minify&status=raised",{baseURL:window.envSettings.agentApiUrl,transform:p}):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[],contexts:[]},selectors:{status:["raised"]},options:["summary","values","instances"]},{transform:p})},v=function(e){var t=e.transitions,n=void 0===t?[]:t;if(!n[0])return{};var r=n[0],o=r.config_hash_id,a=r.context,i=r.machine_guid,c=r.info,l=r.transition_id,u=r.node_id,s=r.alert,d=r.new,f=d.status,m=d.value,p=r.when,g=r.old,v=g.status,b=g.value,y=g.duration,h=r.instance,w=r.instance_n,O=void 0===w?h:w,x=r.units;return{configHash:o,context:a,name:s,id:l,mg:i,nodeId:u||i,nd:u,alert:s,info:c,displayName:(s||"unknown_alert").replace(/_/g," "),status:f.toLowerCase(),lastStatusChange:p,lastStatusChangeValue:m,prevStatus:v.toLowerCase(),prevValue:b,prevDuration:y,instance:h,instanceName:O,units:x}},b=function(e,t,n){return(0,i.Ly)(e)?o.Z.get("/api/v2/alert_transitions?options=minify&transition=".concat(n),{baseURL:window.envSettings.agentApiUrl,transform:v}).then((function(n){var r=n.data;return x(e,t,r.configHash,r)})):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alert_transitions"),{transition:n},{transform:v}).then((function(n){var r=n.data;return x(e,t,r.configHash,r)}))},y=function(e){var t=e.alerts;return(void 0===t?[]:t).map((function(e){var t=e.nm,n=e.cr,r=e.wr,o=e.cl,a=e.er,i=e.in,c=e.nd,l=e.cfg;return{name:t,displayName:(t||"unknown_alert").replace(/_/g," "),criticalCount:n,warningCount:r,clearCount:o,errorCount:a,instanceCount:i,nodeCount:c,configCount:l}}))},h=function(e,t){return(0,i.Ly)(e)?o.Z.get("/api/v2/alerts?options=minify",{baseURL:window.envSettings.agentApiUrl,transform:y}).then((function(e){return e.data})):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[]}},{transform:y}).then((function(e){return e.data}))},w=function(e,t,n){return(0,i.Ly)(e)?o.Z.get("/api/v2/alerts?options=summary,values,instances,minify&alert=".concat(n),{baseURL:window.envSettings.agentApiUrl,transform:p}).then((function(e){return e.data})):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alerts"),{scope:{nodes:[]},selectors:{alert:[n]},options:["summary","instances","values"]},{transform:p}).then((function(e){return e.data}))},O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.class,r=t.component,o=t.type,a=t.info,i=t.value,c=i.calc,u=void 0===c?"":c,s=i.update_every,d=i.units,f=i.db,m=t.status,p=t.notification||{},g=p.type,v=p.exec,b=p.to,y=p.delay,h=p.repeat||{},w=h.warn,O=h.crit,x=m||{},k=x.warn,C=x.crit,I=x.green,P=x.red,j=f||{},E=j.dimensions,Z=j.method,L=j.after,S=j.before,D=j.options;return l(l({info:a},e),{},{configInfo:a,class:n,component:r,type:o,calculation:u,updateEvery:s,units:d,warning:k,critical:C,lookupDimensions:E,lookupMethod:Z,lookupAfter:L,lookupBefore:S,lookupOptions:D,notificationType:g,exec:v,recipient:b,delay:y,warnRepeatEvery:w,critRepeatEvery:O,green:I,red:P})}},x=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,i.Ly)(e)?o.Z.get("/api/v2/alert_config?options=minify&config=".concat(n),{baseURL:window.envSettings.agentApiUrl,transform:O(r)}):o.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/alert_config"),{config:n},{transform:O(r)})}},84074:function(e,t,n){n.d(t,{E3:function(){return i},Gs:function(){return d},HI:function(){return s},IG:function(){return u},bc:function(){return c},p$:function(){return l}});var r=n(4480),o=n(80239),a=n(48450),i={id:null,loaded:!1,nodeId:null,instance:null,instanceName:null,name:"",calculation:"",lookupAfter:0,lookupBefore:0,status:"unknown",date:"",fullyLoaded:!1,fullyLoading:!1,info:"",configInfo:"",warning:"",critical:"",updateEvery:0,source:"",recipient:"Unknown",units:"",delayUpDuration:null,delayDownDuration:null,delayMaxDuration:null,delayMultiplier:null,delayUpToTimestamp:null,lookupDimensions:"",lookupMethod:"",lookupOptions:"",class:"Unknown",type:"Unknown",component:"Unknown"};t.ZP=(0,r.cn)({key:"alert",default:{}});var c=(0,r.cn)({key:"selectedAlert",default:null}),l=(0,r.cn)({key:"alertsTabsAtom",default:o.U}),u=(0,r.xu)({key:"alertConfigurations",default:function(e){var t=e.spaceId,n=e.roomId;return(0,a.jc)(t,n)}}),s=(0,r.xu)({key:"alertInstances",default:function(e){var t=e.spaceId,n=e.roomId,r=e.name;return(0,a.MN)(t,n,r)}}),d=(0,r.xu)({key:"selectedAlertConfiguration",default:{alertName:null,nodeId:null}})},12008:function(e,t,n){n.d(t,{Bk:function(){return P},E5:function(){return y},ER:function(){return O},E_:function(){return C},JU:function(){return L},O0:function(){return h},__:function(){return S},fp:function(){return b},n_:function(){return E},sb:function(){return k},v3:function(){return D},w4:function(){return Z},yx:function(){return x}});var r=n(4942),o=(n(21249),n(57640),n(9924),n(57327),n(41539),n(88449),n(2490),n(59849),n(85827),n(25387),n(72608),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),a=n(4480),i=n(37518),c=n(96929),l=n(99322),u=n(97945),s=n(80239),d=n(74059),f=n(84074),m=n(48450),p=n(45771);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=(0,a.CG)({key:"alertState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(f.ZP)[t]||f.E3;return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,o){var a=e.set;a(f.ZP,n?"function"!==typeof o?function(e){return v(v({},e),{},(0,r.Z)({},t,v(v({},e[t]),{},(0,r.Z)({},n,o))))}:function(e){return v(v({},e),{},(0,r.Z)({},t,v(v({},e[t]),{},(0,r.Z)({},n,o(e[t][n])))))}:function(e){return v(v({},e),{},(0,r.Z)({},t,v(v(v({},f.E3),e[t]),o)))})}}}),y=function(e,t){return(0,a.sJ)(b({id:e,key:t}))},h=function(){return(0,a.FV)(f.bc)},w=(0,a.CG)({key:"alertsState",get:function(e){return function(t){var n=t.get;return e.map((function(e){return n(b({id:e}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),O=function(e){return(0,a.sJ)(w(e))},x=function(e){var t=(0,i.UL)(),n=(0,d.th)(),r=(0,a._8)((function(r){var o=r.set;return function(){o(b({id:e,key:"fullyLoading"}),!0);var r=(0,m.hN)(n,t,e);return r.then((function(t){var n=t.data;return o(b({id:e}),v(v({},n),{},{fullyLoaded:!0,fullyLoading:!1,loaded:!0}))})).catch((function(){return o(b({id:e,key:"fullyLoading"}),!1)})),function(){return r.cancel()}}}),[t,n]);(0,o.useEffect)((function(){e&&r()}),[e,r])},k=function(){var e=I(),t=(0,c.zN)(),n=(0,u.Ne)(t);return(0,o.useMemo)((function(){return n.map((function(t){var n=e.filter((function(e){return e.nodeId===t.id}));if(!n.length)return t;var o=n.map((function(e){return e.status}));return v(v({},t),{},(0,r.Z)({},s.nb.alertStatus,(0,p.j)(o)))}))}),[e,n])},C=(0,a.CG)({key:"roomAlerts",get:function(e){return function(t){var n=t.get,r=n((0,l.e8)({id:e,key:"ids"}));return n(w(r))}}}),I=function(){var e=(0,i.UL)();return(0,a.sJ)(C(e))},P=function(){var e=(0,i.UL)();return(0,a.sJ)((0,l.e8)({id:e,key:"loaded"}))},j={warning:0,critical:0,clear:0},E=function(e){var t=O(e);return(0,o.useMemo)((function(){return t.reduce((function(e,t){var n=t.status;return e[n]=e[n]+1,e}),v({},j))}),[e])},Z=function(){var e=(0,d.th)(),t=(0,i.UL)();return(0,a.sJ)((0,f.IG)({spaceId:e,roomId:t}))},L=function(e,t){var n=(0,d.th)(),r=(0,i.UL)(),c=(0,a.sJ)((0,f.HI)({spaceId:n,roomId:r,name:e}));return(0,o.useMemo)((function(){return t?c.filter((function(e){return e.nodeId===t})):c}),[c,t])},S=function(){var e=(0,i.UL)();return(0,a.FV)((0,f.Gs)(e))},D=function(){var e=(0,i.UL)();return(0,a.rb)((0,f.Gs)(e))}},38671:function(e,t,n){n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(29439),a=n(67294),i=n(10034),c=n(58591);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=(0,c.m$)(),t=(0,i.Oi)(),n=(0,o.Z)(t,2),r=n[0],l=n[1],s=(0,i.wC)().reset,d=(0,a.useCallback)((function(){s(),(0,c.xs)(u(u({},e),{},{integrationsModalOpen:"true"})),l("true")}),[s,e]);return{isIntegrationsVisible:r,hideIntegrations:(0,a.useCallback)((function(){(0,c.xs)(u(u({},e),{},{integrationsModalOpen:""})),l("")}),[e]),onIntegrationsClick:d}}},77796:function(e,t,n){n.d(t,{in:function(){return s},ev:function(){return m},rw:function(){return p}});var r=n(93433),o=n(4942),a=(n(2707),n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4480)),i=(0,a.cn)({key:"alertIdsByNodeId",default:{}});function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=[],s=(0,a.nZ)({key:"nodesAlertIdsState",get:function(e){return(0,e.get)(i)},set:function(e,t){return(0,e.set)(i,t)}}),d=(0,a.CG)({key:"nodeAlertIdsState",get:function(e){return function(t){return(0,t.get)(i)[e]||u}},set:function(e){return function(t,n){(0,t.set)(i,(function(t){return l(l({},t),{},(0,o.Z)({},e,(0,r.Z)(n).sort((function(e,t){return e.id-t.id}))))}))}}}),f=(0,a.CG)({key:"nodesAlertIdsState",get:function(e){return function(t){var n=(0,t.get)(i);return e.reduce((function(e,t){return[].concat((0,r.Z)(e),(0,r.Z)(n[t]||[]))}),[])}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),m=function(e){return(0,a.sJ)(d(e))},p=function(e){return(0,a.sJ)(f(e))}},4312:function(e,t,n){n.d(t,{Z:function(){return p}});var r=n(87462),o=n(45987),a=n(67294),i=n(82351),c=n(60677),l=n(57509),u=(0,c.default)(l.Flex).attrs((function(){return{width:{max:"315px"},overflow:"hidden"}})).withConfig({displayName:"styled__Container",componentId:"sc-d9qxpb-0"})(["color:",";"],(0,l.getColor)("bright")),s=["children"],d=function(e){var t=e.children,n=(0,o.Z)(e,s);return a.createElement(u,(0,r.Z)({"data-testid":"nodeInfoContent"},n),t)},f=n(89050),m=["align","badge","base","children","connectivityState","content","isBasic","status","nodeName","nodeType"],p=function(e){var t=e.align,n=void 0===t?"bottom":t,c=e.badge,l=e.base,u=void 0===l?{background:"main",padding:[2]}:l,s=e.children,p=e.connectivityState,g=e.content,v=e.isBasic,b=void 0===v||v,y=e.status,h=e.nodeName,w=e.nodeType,O=(0,o.Z)(e,m);return a.createElement(i.Z,(0,r.Z)({align:n,base:u,content:function(){return a.createElement(d,{"data-testid":"nodeInfoTooltip-tooltipContent"},g||(0,f.yK)(c,p,y,h,w))},"data-testid":"nodeInfoTooltip",isBasic:b},O),s)}},39583:function(e,t,n){n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(87462),o=n(4942),a=n(45987),i=n(67294),c=n(57509),l=n(12008),u=n(77796),s=n(89050),d=n(4312),f=["id","isLive","name","onClick"];function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(e){var t=e.id,n=e.isLive,o=e.name,m=e.onClick,g=(0,a.Z)(e,f),v=(0,u.ev)(t),b=(0,l.n_)(v),y=b.critical,h=b.warning,w=p(p({},(null===g||void 0===g?void 0:g["data-testid"])&&{dataTestId:null===g||void 0===g?void 0:g["data-testid"]}),{},{isLive:n}),O=(0,s.kR)(p({count:y,type:"critical"},w)),x=(0,s.kR)(p({count:h,type:"warning"},w));return i.createElement(d.Z,(0,r.Z)({badge:"alerts","data-testid":"node-alerts",nodeName:o},g),i.createElement(c.AlertMasterCard,{onClick:O.text||x.text?m:null,pillLeft:O,pillRight:x}))}},72233:function(e,t,n){var r=n(87462),o=n(45987),a=n(67294),i=n(57509),c=n(89050),l=n(4312),u=["children","badge","enabled","name","onClick"];t.Z=function(e){var t=e.children,n=e.badge,s=e.enabled,d=e.name,f=e.onClick,m=(0,o.Z)(e,u),p=(0,c.Dy)(s);return a.createElement(l.Z,(0,r.Z)({badge:n,"data-testid":"node-".concat(n,"-status"),status:p.status,nodeName:d},m),a.createElement(i.Flex,{alignItems:"center",gap:2,onClick:s?f:void 0,cursor:s&&f?"pointer":"default","data-ga":"nodes-list::click-capability::".concat(p.label)},t,a.createElement(i.Pill,{background:p.background,borderColor:p.border,color:p.color,padding:[1,2],textSize:"small"},p.label)))}},53030:function(e,t,n){var r,o=n(87462),a=n(67294),i=n(57509),c=n(4312),l=n(37518),u=n(74059),s=n(15418),d=(r=i.Button,function(e){var t=(0,l.Hm)(),n=(0,u.Q6)();return a.createElement(s.Z,{permission:"node:Create"},(function(l){var u=a.createElement(r,(0,o.Z)({disabled:!l},e));return l?u:a.createElement(c.Z,{content:n?"You are viewing your local node, connect to cloud and connect multiple nodes to view at once":"Only admin users can add nodes to ".concat(t.name),"data-testid":"addNodeTooltipContainer"},a.createElement(i.Box,null,u))}))});t.Z=d},99322:function(e,t,n){n.d(t,{e8:function(){return i},uy:function(){return c}});var r=n(4480),o=n(37518),a={ids:(0,r.xu)({key:"roomAlertIds",default:[]}),error:(0,r.xu)({key:"roomAlertError",default:null}),updatedAt:(0,r.xu)({key:"roomAlertsUpdatedAt",default:""}),loaded:(0,r.xu)({key:"roomAlertsLoaded",default:!1})},i=(0,r.CG)({key:"roomAlertState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(a[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(a[n](t),r)}}}),c=function(e){return function(e,t){return(0,r.sJ)(i({id:e,key:t}))}((0,o.UL)(),e)}}}]); \ No newline at end of file
diff --git a/web/gui/v2/934.627b38e3de836130d875.chunk.js b/web/gui/v2/934.627b38e3de836130d875.chunk.js
new file mode 100644
index 00000000..ceda96f6
--- /dev/null
+++ b/web/gui/v2/934.627b38e3de836130d875.chunk.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6e232230-eb5a-4eaa-9a27-bb27703eda43",e._sentryDebugIdIdentifier="sentry-dbid-6e232230-eb5a-4eaa-9a27-bb27703eda43")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[934],{64934:function(e,n,t){t.r(n),t.d(n,{Trust:function(){return d}});var a=t(29439),r=(t(74916),t(64765),t(69826),t(41539),t(31672),t(2490),t(59461),t(15306),t(92222),t(67294)),o=t(17563),c=t(57509),i=t(1043),l=t(78266),d=function(){var e=(0,r.useMemo)((function(){var e=window.location.search,n=o.parse(e);return[n.redirect_uri,n.agent_uri]})),n=(0,a.Z)(e,2),t=n[0],d=n[1],u=(0,i.So)(),f=(0,a.Z)(u,3),s=f[0],b=f[1],g=f[2],m=(0,i.aJ)({},[s]),p=(0,a.Z)(m,2),w=p[0],y=p[1];return(0,r.useEffect)((function(){var e=w.find((function(e){return e.url===d}));e&&location.replace("/api/v1/auth/account/origins/".concat(e.id,"/redirect?redirect_uri=").concat(encodeURIComponent(t),"&agent_uri=").concat(encodeURIComponent(d)))}),[t,d,w]),r.createElement(c.Layer,{full:!0},r.createElement(c.Flex,{"data-testid":"trust",alignItems:"center",justifyContent:"center",column:!0,width:"100%",height:"100%",background:"mainBackground",gap:4},r.createElement(l.H,{animate:g}),r.createElement(c.Text,{textAlign:"center"},"Do you trust ",r.createElement(c.Text,{strong:!0},d),"?"),r.createElement(c.Flex,{column:!0,gap:2,alignItems:"center"},r.createElement(c.TextBig,null,"Authorizing this URL will allow it to request your Netdata data."),r.createElement(c.Flex,{gap:2},r.createElement(c.Button,{flavour:"borderless",onClick:function(){return window.location.replace(decodeURIComponent(t))},disabled:y||g},"Cancel"),r.createElement(c.Button,{onClick:function(){return b(d)},disabled:y||g,isLoading:y||g},"Yes")))))};n.default=d}}]); \ No newline at end of file
diff --git a/web/gui/v2/934.9dc27c5ebc538bddabb3.chunk.js b/web/gui/v2/934.9dc27c5ebc538bddabb3.chunk.js
deleted file mode 100644
index 47b179db..00000000
--- a/web/gui/v2/934.9dc27c5ebc538bddabb3.chunk.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3b57f47e-141f-40f3-96c3-da040471e2c8",e._sentryDebugIdIdentifier="sentry-dbid-3b57f47e-141f-40f3-96c3-da040471e2c8")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[934],{64934:function(e,n,t){t.r(n),t.d(n,{Trust:function(){return d}});var r=t(29439),o=(t(74916),t(64765),t(69826),t(41539),t(31672),t(2490),t(59461),t(15306),t(92222),t(67294)),a=t(17563),c=t(15557),i=t(1043),l=t(78266),d=function(){var e=(0,o.useMemo)((function(){var e=window.location.search,n=a.parse(e);return[n.redirect_uri,n.agent_uri]})),n=(0,r.Z)(e,2),t=n[0],d=n[1],u=(0,i.So)(),f=(0,r.Z)(u,3),s=f[0],g=f[1],b=f[2],m=(0,i.aJ)({},[s]),p=(0,r.Z)(m,2),w=p[0],y=p[1];return(0,o.useEffect)((function(){var e=w.find((function(e){return e.url===d}));e&&location.replace("/api/v1/auth/account/origins/".concat(e.id,"/redirect?redirect_uri=").concat(encodeURIComponent(t),"&agent_uri=").concat(encodeURIComponent(d)))}),[t,d,w]),o.createElement(c.Layer,{full:!0},o.createElement(c.Flex,{"data-testid":"trust",alignItems:"center",justifyContent:"center",column:!0,width:"100%",height:"100%",background:"mainBackground",gap:4},o.createElement(l.H,{animate:b}),o.createElement(c.Text,{textAlign:"center"},"Do you trust ",o.createElement(c.Text,{strong:!0},d),"?"),o.createElement(c.Flex,{column:!0,gap:2,alignItems:"center"},o.createElement(c.TextBig,null,"Authorizing this URL will allow it to request your Netdata data."),o.createElement(c.Flex,{gap:2},o.createElement(c.Button,{flavour:"borderless",onClick:function(){return window.location.replace(decodeURIComponent(t))},disabled:y||b},"Cancel"),o.createElement(c.Button,{onClick:function(){return g(d)},disabled:y||b,isLoading:y||b},"Yes")))))};n.default=d}}]); \ No newline at end of file
diff --git a/web/gui/v2/952.8782ae4b4eb5f5d394ba.chunk.js b/web/gui/v2/952.8782ae4b4eb5f5d394ba.chunk.js
new file mode 100644
index 00000000..7010cbec
--- /dev/null
+++ b/web/gui/v2/952.8782ae4b4eb5f5d394ba.chunk.js
@@ -0,0 +1,2 @@
+/*! For license information please see 952.8782ae4b4eb5f5d394ba.chunk.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="10ab0452-7670-4782-8cd7-fb01cf894ef6",e._sentryDebugIdIdentifier="sentry-dbid-10ab0452-7670-4782-8cd7-fb01cf894ef6")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[952],{1673:function(e,t){"use strict";var n="windows",r=[],a="f17a",o="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z";t.DF={prefix:"fab",iconName:n,icon:[448,512,r,a,o]},t.ts=t.DF},35117:function(e,t){"use strict";var n=[128683,"cancel"],r="f05e",a="M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z";t.DF={prefix:"fas",iconName:"ban",icon:[512,512,n,r,a]},t.gP=t.DF},40351:function(e,t){"use strict";var n="battery-half",r=["battery-3"],a="f242",o="M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm208 96H96V320H288V192z";t.DF={prefix:"fas",iconName:n,icon:[576,512,r,a,o]},t.St=t.DF},67992:function(e,t){"use strict";var n="bell",r=[128276,61602],a="f0f3",o="M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.qm=t.DF},91435:function(e,t){"use strict";var n="bolt",r=[9889,"zap"],a="f0e7",o="M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.BD=t.DF},12690:function(e,t){"use strict";var n="bookmark",r=[128278,61591],a="f02e",o="M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z";t.DF={prefix:"fas",iconName:n,icon:[384,512,r,a,o]},t.xV=t.DF},49356:function(e,t){"use strict";var n="brain",r=[129504],a="f5dc",o="M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.qx=t.DF},79186:function(e,t){"use strict";var n="chart-bar",r=["bar-chart"],a="f080",o="M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.ko=t.DF},96914:function(e,t){"use strict";var n="chart-line",r=["line-chart"],a="f201",o="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.St=t.DF},80955:function(e,t){"use strict";var n="circle-notch",r=[],a="f1ce",o="M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.IJ=t.DF},42137:function(e,t){"use strict";var n="clock",r=[128339,"clock-four"],a="f017",o="M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.SZ=t.DF},73793:function(e,t){"use strict";var n="cloud",r=[9729],a="f0c2",o="M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.uM=t.DF},47810:function(e,t,n){"use strict";var r=n(96348);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.Kb=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},57026:function(e,t){"use strict";var n="comments",r=[128490,61670],a="f086",o="M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.lX=t.DF},53728:function(e,t){"use strict";var n="database",r=[],a="f1c0",o="M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.t5=t.DF},53045:function(e,t){"use strict";var n="dragon",r=[128009],a="f6d5",o="M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.SP=t.DF},81511:function(e,t){"use strict";var n="envelope",r=[128386,9993,61443],a="f0e0",o="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.FU=t.DF},77007:function(e,t,n){"use strict";var r=n(89740);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.Ss=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},44814:function(e,t){"use strict";var n="exclamation",r=[10069,10071,61738],a="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM32 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z";t.DF={prefix:"fas",iconName:n,icon:[64,512,r,"21",a]},t.WV=t.DF},20446:function(e,t){"use strict";var n=[128065],r="f06e",a="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z";t.DF={prefix:"fas",iconName:"eye",icon:[576,512,n,r,a]},t.Md=t.DF},7452:function(e,t,n){"use strict";var r=n(76792);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.cw=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},76792:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="file-lines",r=[128441,128462,61686,"file-alt","file-text"],a="f15c",o="M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z";t.definition={prefix:"fas",iconName:n,icon:[384,512,r,a,o]},t.faFileLines=t.definition,t.prefix="fas",t.iconName=n,t.width=384,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},17726:function(e,t){"use strict";var n="flask",r=[],a="f0c3",o="M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.jZ=t.DF},8792:function(e,t){"use strict";var n="folder-open",r=[128194,128449,61717],a="f07c",o="M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z";t.DF={prefix:"fas",iconName:n,icon:[576,512,r,a,o]},t.cC=t.DF},2988:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="gauge-high",r=[62461,"tachometer-alt","tachometer-alt-fast"],a="f625",o="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faGaugeHigh=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},96348:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="gears",r=["cogs"],a="f085",o="M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z";t.definition={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.faGears=t.definition,t.prefix="fas",t.iconName=n,t.width=640,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},66062:function(e,t){"use strict";var n="globe",r=[127760],a="f0ac",o="M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.g4=t.DF},33149:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="hard-drive",r=[128436,"hdd"],a="f0a0",o="M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faHardDrive=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},51257:function(e,t,n){"use strict";var r=n(33149);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.vc=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},53314:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="heart-pulse",r=["heartbeat"],a="f21e",o="M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faHeartPulse=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},12296:function(e,t,n){"use strict";var r=n(53314);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.s2=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},491:function(e,t){"use strict";var n="laptop-code",r=[],a="f5fc",o="M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.py=t.DF},13914:function(e,t){"use strict";var n="leaf",r=[],a="f06c",o="M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.2 5.4c-25.9 5.9-50 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.XE=t.DF},80443:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="list-check",r=["tasks"],a="f0ae",o="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faListCheck=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},52571:function(e,t){"use strict";var n="microchip",r=[],a="f2db",o="M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.zv=t.DF},21433:function(e,t){"use strict";var n="puzzle-piece",r=[129513],a="f12e",o="M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8v0c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2v0c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2v0c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2v0c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8v0c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320v0c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256v0C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2v0z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.Nx=t.DF},2866:function(e,t,n){"use strict";var r=n(38676);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.V$=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},89740:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="right-left",r=["exchange-alt"],a="f362",o="M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faRightLeft=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},59986:function(e,t){"use strict";var n="server",r=[],a="f233",o="M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.xf=t.DF},60989:function(e,t){"use strict";var n="shield",r=[128737,"shield-blank"],a="f132",o="M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.is=t.DF},3163:function(e,t,n){"use strict";var r=n(36856);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.U7=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},36856:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="shield-halved",r=["shield-alt"],a="f3ed",o="M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faShieldHalved=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},38676:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="shuffle",r=[128256,"random"],a="f074",o="M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faShuffle=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},42775:function(e,t){"use strict";var n="sitemap",r=[],a="f0e8",o="M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z";t.DF={prefix:"fas",iconName:n,icon:[576,512,r,a,o]},t.Hw=t.DF},53035:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="table-cells-large",r=["th-large"],a="f009",o="M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faTableCellsLarge=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},85241:function(e,t,n){"use strict";var r=n(2988);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.HL=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},34327:function(e,t){"use strict";var n=[127991],r="f02b",a="M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z";t.DF={prefix:"fas",iconName:"tag",icon:[448,512,n,r,a]},t.LE=t.DF},9221:function(e,t,n){"use strict";var r=n(80443);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.A8=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},83185:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="temperature-half",r=[127777,"temperature-2","thermometer-2","thermometer-half"],a="f2c9",o="M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V208c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z";t.definition={prefix:"fas",iconName:n,icon:[320,512,r,a,o]},t.faTemperatureHalf=t.definition,t.prefix="fas",t.iconName=n,t.width=320,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},32660:function(e,t,n){"use strict";var r=n(53035);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.To=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},62160:function(e,t,n){"use strict";var r=n(83185);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.wh=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},27879:function(e,t){"use strict";var n="user",r=[128100,62144],a="f007",o="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.IL=t.DF},46357:function(e,t){"use strict";var n="users",r=[],a="f0c0",o="M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.FV=t.DF},91871:function(e,t){"use strict";var n="wifi",r=["wifi-3","wifi-strong"],a="f1eb",o="M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.$A=t.DF},70982:function(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){u=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw a}}return o}(e,t)||s(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){if(e){if("string"===typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{G:function(){return Tn}});var d=function(){},p={},m={},v=null,g={mark:d,measure:d};try{"undefined"!==typeof window&&(p=window),"undefined"!==typeof document&&(m=document),"undefined"!==typeof MutationObserver&&(v=MutationObserver),"undefined"!==typeof performance&&(g=performance)}catch(Nn){}var h,b,y,w,O,x=(p.navigator||{}).userAgent,j=void 0===x?"":x,k=p,E=m,P=v,S=g,C=(k.document,!!E.documentElement&&!!E.head&&"function"===typeof E.addEventListener&&"function"===typeof E.createElement),_=~j.indexOf("MSIE")||~j.indexOf("Trident/"),M="___FONT_AWESOME___",D=16,A="fa",T="svg-inline--fa",z="data-fa-i2svg",N="data-fa-pseudo-element",R="data-fa-pseudo-element-pending",L="data-prefix",I="data-icon",F="fontawesome-i2svg",H="async",W=["HTML","HEAD","STYLE","SCRIPT"],V=function(){try{return!0}catch(Nn){return!1}}(),B="classic",U="sharp",Y=[B,U];function Z(e){return new Proxy(e,{get:function(e,t){return t in e?e[t]:e[B]}})}var q=Z((u(h={},B,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit"}),u(h,U,{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light"}),h)),G=Z((u(b={},B,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),u(b,U,{solid:"fass",regular:"fasr",light:"fasl"}),b)),X=Z((u(y={},B,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),u(y,U,{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light"}),y)),K=Z((u(w={},B,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),u(w,U,{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl"}),w)),$=/fa(s|r|l|t|d|b|k|ss|sr|sl)?[\-\ ]/,J="fa-layers-text",Q=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,ee=Z((u(O={},B,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),u(O,U,{900:"fass",400:"fasr",300:"fasl"}),O)),te=[1,2,3,4,5,6,7,8,9,10],ne=te.concat([11,12,13,14,15,16,17,18,19,20]),re=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],ae={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},oe=new Set;Object.keys(G[B]).map(oe.add.bind(oe)),Object.keys(G[U]).map(oe.add.bind(oe));var ie=[].concat(Y,c(oe),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",ae.GROUP,ae.SWAP_OPACITY,ae.PRIMARY,ae.SECONDARY]).concat(te.map((function(e){return"".concat(e,"x")}))).concat(ne.map((function(e){return"w-".concat(e)}))),ue=k.FontAwesomeConfig||{};if(E&&"function"===typeof E.querySelector){[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach((function(e){var t=l(e,2),n=t[0],r=t[1],a=function(e){return""===e||"false"!==e&&("true"===e||e)}(function(e){var t=E.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}(n));void 0!==a&&null!==a&&(ue[r]=a)}))}var le={styleDefault:"solid",familyDefault:"classic",cssPrefix:A,replacementClass:T,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};ue.familyPrefix&&(ue.cssPrefix=ue.familyPrefix);var ce=a(a({},le),ue);ce.autoReplaceSvg||(ce.observeMutations=!1);var se={};Object.keys(le).forEach((function(e){Object.defineProperty(se,e,{enumerable:!0,set:function(t){ce[e]=t,fe.forEach((function(e){return e(se)}))},get:function(){return ce[e]}})})),Object.defineProperty(se,"familyPrefix",{enumerable:!0,set:function(e){ce.cssPrefix=e,fe.forEach((function(e){return e(se)}))},get:function(){return ce.cssPrefix}}),k.FontAwesomeConfig=se;var fe=[];var de=D,pe={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};var me="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function ve(){for(var e=12,t="";e-- >0;)t+=me[62*Math.random()|0];return t}function ge(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function he(e){return e.classList?ge(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function be(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ye(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")}),"")}function we(e){return e.size!==pe.size||e.x!==pe.x||e.y!==pe.y||e.rotate!==pe.rotate||e.flipX||e.flipY}var Oe=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';function xe(){var e=A,t=T,n=se.cssPrefix,r=se.replacementClass,a=Oe;if(n!==e||r!==t){var o=new RegExp("\\.".concat(e,"\\-"),"g"),i=new RegExp("\\--".concat(e,"\\-"),"g"),u=new RegExp("\\.".concat(t),"g");a=a.replace(o,".".concat(n,"-")).replace(i,"--".concat(n,"-")).replace(u,".".concat(r))}return a}var je=!1;function ke(){se.autoAddCss&&!je&&(!function(e){if(e&&C){var t=E.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=E.head.childNodes,r=null,a=n.length-1;a>-1;a--){var o=n[a],i=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(r=o)}E.head.insertBefore(t,r)}}(xe()),je=!0)}var Ee={mixout:function(){return{dom:{css:xe,insertCss:ke}}},hooks:function(){return{beforeDOMElementCreation:function(){ke()},beforeI2svg:function(){ke()}}}},Pe=k||{};Pe[M]||(Pe[M]={}),Pe[M].styles||(Pe[M].styles={}),Pe[M].hooks||(Pe[M].hooks={}),Pe[M].shims||(Pe[M].shims=[]);var Se=Pe[M],Ce=[],_e=!1;function Me(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,o=void 0===a?[]:a;return"string"===typeof e?be(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(be(e[n]),'" ')}),"").trim()}(r),">").concat(o.map(Me).join(""),"</").concat(t,">")}function De(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}C&&((_e=(E.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(E.readyState))||E.addEventListener("DOMContentLoaded",(function e(){E.removeEventListener("DOMContentLoaded",e),_e=1,Ce.map((function(e){return e()}))})));var Ae=function(e,t,n,r){var a,o,i,u=Object.keys(e),l=u.length,c=void 0!==r?function(e,t){return function(n,r,a,o){return e.call(t,n,r,a,o)}}(t,r):t;for(void 0===n?(a=1,i=e[u[0]]):(a=0,i=n);a<l;a++)i=c(i,e[o=u[a]],o,e);return i};function Te(e){var t=function(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var o=e.charCodeAt(n++);56320==(64512&o)?t.push(((1023&a)<<10)+(1023&o)+65536):(t.push(a),n--)}else t.push(a)}return t}(e);return 1===t.length?t[0].toString(16):null}function ze(e){return Object.keys(e).reduce((function(t,n){var r=e[n];return!!r.icon?t[r.iconName]=r.icon:t[n]=r,t}),{})}function Ne(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).skipHooks,r=void 0!==n&&n,o=ze(t);"function"!==typeof Se.hooks.addPack||r?Se.styles[e]=a(a({},Se.styles[e]||{}),o):Se.hooks.addPack(e,ze(t)),"fas"===e&&Ne("fa",t)}var Re,Le,Ie,Fe=Se.styles,He=Se.shims,We=(u(Re={},B,Object.values(X[B])),u(Re,U,Object.values(X[U])),Re),Ve=null,Be={},Ue={},Ye={},Ze={},qe={},Ge=(u(Le={},B,Object.keys(q[B])),u(Le,U,Object.keys(q[U])),Le);function Xe(e,t){var n,r=t.split("-"),a=r[0],o=r.slice(1).join("-");return a!==e||""===o||(n=o,~ie.indexOf(n))?null:o}var Ke,$e=function(){var e=function(e){return Ae(Fe,(function(t,n,r){return t[r]=Ae(n,e,{}),t}),{})};Be=e((function(e,t,n){(t[3]&&(e[t[3]]=n),t[2])&&t[2].filter((function(e){return"number"===typeof e})).forEach((function(t){e[t.toString(16)]=n}));return e})),Ue=e((function(e,t,n){(e[n]=n,t[2])&&t[2].filter((function(e){return"string"===typeof e})).forEach((function(t){e[t]=n}));return e})),qe=e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in Fe||se.autoFetchSvg,n=Ae(He,(function(e,n){var r=n[0],a=n[1],o=n[2];return"far"!==a||t||(a="fas"),"string"===typeof r&&(e.names[r]={prefix:a,iconName:o}),"number"===typeof r&&(e.unicodes[r.toString(16)]={prefix:a,iconName:o}),e}),{names:{},unicodes:{}});Ye=n.names,Ze=n.unicodes,Ve=rt(se.styleDefault,{family:se.familyDefault})};function Je(e,t){return(Be[e]||{})[t]}function Qe(e,t){return(qe[e]||{})[t]}function et(e){return Ye[e]||{prefix:null,iconName:null}}function tt(){return Ve}Ke=function(e){Ve=rt(e.styleDefault,{family:se.familyDefault})},fe.push(Ke),$e();var nt=function(){return{prefix:null,iconName:null,rest:[]}};function rt(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).family,n=void 0===t?B:t,r=q[n][e],a=G[n][e]||G[n][r],o=e in Se.styles?e:null;return a||o||null}var at=(u(Ie={},B,Object.keys(X[B])),u(Ie,U,Object.keys(X[U])),Ie);function ot(e){var t,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).skipLookups,r=void 0!==n&&n,a=(u(t={},B,"".concat(se.cssPrefix,"-").concat(B)),u(t,U,"".concat(se.cssPrefix,"-").concat(U)),t),o=null,i=B;(e.includes(a[B])||e.some((function(e){return at[B].includes(e)})))&&(i=B),(e.includes(a[U])||e.some((function(e){return at[U].includes(e)})))&&(i=U);var l=e.reduce((function(e,t){var n=Xe(se.cssPrefix,t);if(Fe[t]?(t=We[i].includes(t)?K[i][t]:t,o=t,e.prefix=t):Ge[i].indexOf(t)>-1?(o=t,e.prefix=rt(t,{family:i})):n?e.iconName=n:t!==se.replacementClass&&t!==a[B]&&t!==a[U]&&e.rest.push(t),!r&&e.prefix&&e.iconName){var u="fa"===o?et(e.iconName):{},l=Qe(e.prefix,e.iconName);u.prefix&&(o=null),e.iconName=u.iconName||l||e.iconName,e.prefix=u.prefix||e.prefix,"far"!==e.prefix||Fe.far||!Fe.fas||se.autoFetchSvg||(e.prefix="fas")}return e}),nt());return(e.includes("fa-brands")||e.includes("fab"))&&(l.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(l.prefix="fad"),l.prefix||i!==U||!Fe.fass&&!se.autoFetchSvg||(l.prefix="fass",l.iconName=Qe(l.prefix,l.iconName)||l.iconName),"fa"!==l.prefix&&"fa"!==o||(l.prefix=tt()||"fas"),l}var it=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n,r;return t=e,n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=n.reduce(this._pullDefinitions,{});Object.keys(o).forEach((function(t){e.definitions[t]=a(a({},e.definitions[t]||{}),o[t]),Ne(t,o[t]);var n=X[B][t];n&&Ne(n,o[t]),$e()}))}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(e,t){var n=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(n).map((function(t){var r=n[t],a=r.prefix,o=r.iconName,i=r.icon,u=i[2];e[a]||(e[a]={}),u.length>0&&u.forEach((function(t){"string"===typeof t&&(e[a][t]=i)})),e[a][o]=i})),e}}],n&&i(t.prototype,n),r&&i(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),ut=[],lt={},ct={},st=Object.keys(ct);function ft(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a<n;a++)r[a-2]=arguments[a];return(lt[e]||[]).forEach((function(e){t=e.apply(null,[t].concat(r))})),t}function dt(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];(lt[e]||[]).forEach((function(e){e.apply(null,n)}))}function pt(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return ct[e]?ct[e].apply(null,t):void 0}function mt(e){"fa"===e.prefix&&(e.prefix="fas");var t=e.iconName,n=e.prefix||tt();if(t)return t=Qe(n,t)||t,De(vt.definitions,n,t)||De(Se.styles,n,t)}var vt=new it,gt={i2svg:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return C?(dt("beforeI2svg",e),pt("pseudoElements2svg",e),pt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.autoReplaceSvgRoot;!1===se.autoReplaceSvg&&(se.autoReplaceSvg=!0),se.observeMutations=!0,e=function(){bt({autoReplaceSvgRoot:n}),dt("watch",t)},C&&(_e?setTimeout(e,0):Ce.push(e))}},ht={noAuto:function(){se.autoReplaceSvg=!1,se.observeMutations=!1,dt("noAuto")},config:se,dom:gt,parse:{icon:function(e){if(null===e)return null;if("object"===o(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Qe(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=rt(e[0]);return{prefix:n,iconName:Qe(n,t)||t}}if("string"===typeof e&&(e.indexOf("".concat(se.cssPrefix,"-"))>-1||e.match($))){var r=ot(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||tt(),iconName:Qe(r.prefix,r.iconName)||r.iconName}}if("string"===typeof e){var a=tt();return{prefix:a,iconName:Qe(a,e)||e}}}},library:vt,findIconDefinition:mt,toHtml:Me},bt=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,t=void 0===e?E:e;(Object.keys(Se.styles).length>0||se.autoFetchSvg)&&C&&se.autoReplaceSvg&&ht.dom.i2svg({node:t})};function yt(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return Me(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(C){var t=E.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function wt(e){var t=e.icons,n=t.main,r=t.mask,o=e.prefix,i=e.iconName,u=e.transform,l=e.symbol,c=e.title,s=e.maskId,f=e.titleId,d=e.extra,p=e.watchable,m=void 0!==p&&p,v=r.found?r:n,g=v.width,h=v.height,b="fak"===o,y=[se.replacementClass,i?"".concat(se.cssPrefix,"-").concat(i):""].filter((function(e){return-1===d.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(d.classes).join(" "),w={children:[],attributes:a(a({},d.attributes),{},{"data-prefix":o,"data-icon":i,class:y,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(h)})},O=b&&!~d.classes.indexOf("fa-fw")?{width:"".concat(g/h*16*.0625,"em")}:{};m&&(w.attributes[z]=""),c&&(w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(f||ve())},children:[c]}),delete w.attributes.title);var x=a(a({},w),{},{prefix:o,iconName:i,main:n,mask:r,maskId:s,transform:u,symbol:l,styles:a(a({},O),d.styles)}),j=r.found&&n.found?pt("generateAbstractMask",x)||{children:[],attributes:{}}:pt("generateAbstractIcon",x)||{children:[],attributes:{}},k=j.children,E=j.attributes;return x.children=k,x.attributes=E,l?function(e){var t=e.prefix,n=e.iconName,r=e.children,o=e.attributes,i=e.symbol,u=!0===i?"".concat(t,"-").concat(se.cssPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:a(a({},o),{},{id:u}),children:r}]}]}(x):function(e){var t=e.children,n=e.main,r=e.mask,o=e.attributes,i=e.styles,u=e.transform;if(we(u)&&n.found&&!r.found){var l={x:n.width/n.height/2,y:.5};o.style=ye(a(a({},i),{},{"transform-origin":"".concat(l.x+u.x/16,"em ").concat(l.y+u.y/16,"em")}))}return[{tag:"svg",attributes:o,children:t}]}(x)}function Ot(e){var t=e.content,n=e.width,r=e.height,o=e.transform,i=e.title,u=e.extra,l=e.watchable,c=void 0!==l&&l,s=a(a(a({},u.attributes),i?{title:i}:{}),{},{class:u.classes.join(" ")});c&&(s[z]="");var f=a({},u.styles);we(o)&&(f.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?D:n,a=e.height,o=void 0===a?D:a,i=e.startCentered,u=void 0!==i&&i,l="";return l+=u&&_?"translate(".concat(t.x/de-r/2,"em, ").concat(t.y/de-o/2,"em) "):u?"translate(calc(-50% + ".concat(t.x/de,"em), calc(-50% + ").concat(t.y/de,"em)) "):"translate(".concat(t.x/de,"em, ").concat(t.y/de,"em) "),l+="scale(".concat(t.size/de*(t.flipX?-1:1),", ").concat(t.size/de*(t.flipY?-1:1),") "),l+"rotate(".concat(t.rotate,"deg) ")}({transform:o,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var d=ye(f);d.length>0&&(s.style=d);var p=[];return p.push({tag:"span",attributes:s,children:[t]}),i&&p.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),p}var xt=Se.styles;function jt(e){var t=e[0],n=e[1],r=l(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(se.cssPrefix,"-").concat(ae.GROUP)},children:[{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(ae.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(ae.PRIMARY),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var kt={found:!1,width:512,height:512};function Et(e,t){var n=t;return"fa"===t&&null!==se.styleDefault&&(t=tt()),new Promise((function(r,o){pt("missingIconAbstract");if("fa"===n){var i=et(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&xt[t]&&xt[t][e])return r(jt(xt[t][e]));!function(e,t){V||se.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(a(a({},kt),{},{icon:se.showMissingIcons&&e&&pt("missingIconAbstract")||{}}))}))}var Pt=function(){},St=se.measurePerformance&&S&&S.mark&&S.measure?S:{mark:Pt,measure:Pt},Ct='FA "6.4.2"',_t=function(e){St.mark("".concat(Ct," ").concat(e," ends")),St.measure("".concat(Ct," ").concat(e),"".concat(Ct," ").concat(e," begins"),"".concat(Ct," ").concat(e," ends"))},Mt={begin:function(e){return St.mark("".concat(Ct," ").concat(e," begins")),function(){return _t(e)}},end:_t},Dt=function(){};function At(e){return"string"===typeof(e.getAttribute?e.getAttribute(z):null)}function Tt(e){return E.createElementNS("http://www.w3.org/2000/svg",e)}function zt(e){return E.createElement(e)}function Nt(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).ceFn,n=void 0===t?"svg"===e.tag?Tt:zt:t;if("string"===typeof e)return E.createTextNode(e);var r=n(e.tag);return Object.keys(e.attributes||[]).forEach((function(t){r.setAttribute(t,e.attributes[t])})),(e.children||[]).forEach((function(e){r.appendChild(Nt(e,{ceFn:n}))})),r}var Rt={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(Nt(e),t)})),null===t.getAttribute(z)&&se.keepOriginalSource){var n=E.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~he(t).indexOf(se.replacementClass))return Rt.replace(e);var r=new RegExp("".concat(se.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var a=n[0].attributes.class.split(" ").reduce((function(e,t){return t===se.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});n[0].attributes.class=a.toSvg.join(" "),0===a.toNode.length?t.removeAttribute("class"):t.setAttribute("class",a.toNode.join(" "))}var o=n.map((function(e){return Me(e)})).join("\n");t.setAttribute(z,""),t.innerHTML=o}};function Lt(e){e()}function It(e,t){var n="function"===typeof t?t:Dt;if(0===e.length)n();else{var r=Lt;se.mutateApproach===H&&(r=k.requestAnimationFrame||Lt),r((function(){var t=!0===se.autoReplaceSvg?Rt.replace:Rt[se.autoReplaceSvg]||Rt.replace,r=Mt.begin("mutate");e.map(t),r(),n()}))}}var Ft=!1;function Ht(){Ft=!0}function Wt(){Ft=!1}var Vt=null;function Bt(e){if(P&&se.observeMutations){var t=e.treeCallback,n=void 0===t?Dt:t,r=e.nodeCallback,a=void 0===r?Dt:r,o=e.pseudoElementsCallback,i=void 0===o?Dt:o,u=e.observeMutationsRoot,l=void 0===u?E:u;Vt=new P((function(e){if(!Ft){var t=tt();ge(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!At(e.addedNodes[0])&&(se.searchPseudoElements&&i(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&se.searchPseudoElements&&i(e.target.parentNode),"attributes"===e.type&&At(e.target)&&~re.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(L):null,n=e.getAttribute?e.getAttribute(I):null;return t&&n}(e.target)){var r=ot(he(e.target)),o=r.prefix,u=r.iconName;e.target.setAttribute(L,o||t),u&&e.target.setAttribute(I,u)}else(l=e.target)&&l.classList&&l.classList.contains&&l.classList.contains(se.replacementClass)&&a(e.target);var l}))}})),C&&Vt.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Ut(e){var t,n,r=e.getAttribute("data-prefix"),a=e.getAttribute("data-icon"),o=void 0!==e.innerText?e.innerText.trim():"",i=ot(he(e));return i.prefix||(i.prefix=tt()),r&&a&&(i.prefix=r,i.iconName=a),i.iconName&&i.prefix||(i.prefix&&o.length>0&&(i.iconName=(t=i.prefix,n=e.innerText,(Ue[t]||{})[n]||Je(i.prefix,Te(e.innerText)))),!i.iconName&&se.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function Yt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=Ut(e),r=n.iconName,o=n.prefix,i=n.rest,u=function(e){var t=ge(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return se.autoA11y&&(n?t["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(r||ve()):(t["aria-hidden"]="true",t.focusable="false")),t}(e),l=ft("parseNodeAttributes",{},e),c=t.styleParser?function(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce((function(e,t){var n=t.split(":"),r=n[0],a=n.slice(1);return r&&a.length>0&&(e[r]=a.join(":").trim()),e}),{})),n}(e):[];return a({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:o,transform:pe,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:c,attributes:u}},l)}var Zt=Se.styles;function qt(e){var t="nest"===se.autoReplaceSvg?Yt(e,{styleParser:!1}):Yt(e);return~t.extra.classes.indexOf(J)?pt("generateLayersText",e,t):pt("generateSvgReplacementMutation",e,t)}var Gt=new Set;function Xt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!C)return Promise.resolve();var n=E.documentElement.classList,r=function(e){return n.add("".concat(F,"-").concat(e))},a=function(e){return n.remove("".concat(F,"-").concat(e))},o=se.autoFetchSvg?Gt:Y.map((function(e){return"fa-".concat(e)})).concat(Object.keys(Zt));o.includes("fa")||o.push("fa");var i=[".".concat(J,":not([").concat(z,"])")].concat(o.map((function(e){return".".concat(e,":not([").concat(z,"])")}))).join(", ");if(0===i.length)return Promise.resolve();var u=[];try{u=ge(e.querySelectorAll(i))}catch(Nn){}if(!(u.length>0))return Promise.resolve();r("pending"),a("complete");var l=Mt.begin("onTree"),c=u.reduce((function(e,t){try{var n=qt(t);n&&e.push(n)}catch(Nn){V||"MissingIcon"===Nn.name&&console.error(Nn)}return e}),[]);return new Promise((function(e,n){Promise.all(c).then((function(n){It(n,(function(){r("active"),r("complete"),a("pending"),"function"===typeof t&&t(),l(),e()}))})).catch((function(e){l(),n(e)}))}))}function Kt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;qt(e).then((function(e){e&&It([e],t)}))}Y.map((function(e){Gt.add("fa-".concat(e))})),Object.keys(q[B]).map(Gt.add.bind(Gt)),Object.keys(q[U]).map(Gt.add.bind(Gt)),Gt=c(Gt);var $t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?pe:n,o=t.symbol,i=void 0!==o&&o,u=t.mask,l=void 0===u?null:u,c=t.maskId,s=void 0===c?null:c,f=t.title,d=void 0===f?null:f,p=t.titleId,m=void 0===p?null:p,v=t.classes,g=void 0===v?[]:v,h=t.attributes,b=void 0===h?{}:h,y=t.styles,w=void 0===y?{}:y;if(e){var O=e.prefix,x=e.iconName,j=e.icon;return yt(a({type:"icon"},e),(function(){return dt("beforeDOMElementCreation",{iconDefinition:e,params:t}),se.autoA11y&&(d?b["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(m||ve()):(b["aria-hidden"]="true",b.focusable="false")),wt({icons:{main:jt(j),mask:l?jt(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:O,iconName:x,transform:a(a({},pe),r),symbol:i,title:d,maskId:s,titleId:m,extra:{attributes:b,styles:w,classes:g}})}))}},Jt={mixout:function(){return{icon:(e=$t,function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:mt(t||{}),o=n.mask;return o&&(o=(o||{}).icon?o:mt(o||{})),e(r,a(a({},n),{},{mask:o}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=Xt,e.nodeCallback=Kt,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?E:t,r=e.callback;return Xt(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.title,a=t.titleId,o=t.prefix,i=t.transform,u=t.symbol,c=t.mask,s=t.maskId,f=t.extra;return new Promise((function(t,d){Promise.all([Et(n,o),c.iconName?Et(c.iconName,c.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(c){var d=l(c,2),p=d[0],m=d[1];t([e,wt({icons:{main:p,mask:m},prefix:o,iconName:n,transform:i,symbol:u,maskId:s,title:r,titleId:a,extra:f,watchable:!0})])})).catch(d)}))},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,a=e.main,o=e.transform,i=ye(e.styles);return i.length>0&&(r.style=i),we(o)&&(t=pt("generateAbstractTransformGrouping",{main:a,transform:o,containerWidth:a.width,iconWidth:a.width})),n.push(t||a.icon),{children:n,attributes:r}}}},Qt={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return yt({type:"layer"},(function(){dt("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e((function(e){Array.isArray(e)?e.map((function(e){n=n.concat(e.abstract)})):n=n.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(se.cssPrefix,"-layers")].concat(c(r)).join(" ")},children:n}]}))}}}},en={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,o=t.classes,i=void 0===o?[]:o,u=t.attributes,l=void 0===u?{}:u,s=t.styles,f=void 0===s?{}:s;return yt({type:"counter",content:e},(function(){return dt("beforeDOMElementCreation",{content:e,params:t}),function(e){var t=e.content,n=e.title,r=e.extra,o=a(a(a({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),i=ye(r.styles);i.length>0&&(o.style=i);var u=[];return u.push({tag:"span",attributes:o,children:[t]}),n&&u.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),u}({content:e.toString(),title:r,extra:{attributes:l,styles:f,classes:["".concat(se.cssPrefix,"-layers-counter")].concat(c(i))}})}))}}}},tn={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?pe:n,o=t.title,i=void 0===o?null:o,u=t.classes,l=void 0===u?[]:u,s=t.attributes,f=void 0===s?{}:s,d=t.styles,p=void 0===d?{}:d;return yt({type:"text",content:e},(function(){return dt("beforeDOMElementCreation",{content:e,params:t}),Ot({content:e,transform:a(a({},pe),r),title:i,extra:{attributes:f,styles:p,classes:["".concat(se.cssPrefix,"-layers-text")].concat(c(l))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.title,r=t.transform,a=t.extra,o=null,i=null;if(_){var u=parseInt(getComputedStyle(e).fontSize,10),l=e.getBoundingClientRect();o=l.width/u,i=l.height/u}return se.autoA11y&&!n&&(a.attributes["aria-hidden"]="true"),Promise.resolve([e,Ot({content:e.innerHTML,width:o,height:i,transform:r,title:n,extra:a,watchable:!0})])}}},nn=new RegExp('"',"ug"),rn=[1105920,1112319];function an(e,t){var n="".concat(R).concat(t.replace(":","-"));return new Promise((function(r,o){if(null!==e.getAttribute(n))return r();var i=ge(e.children).filter((function(e){return e.getAttribute(N)===t}))[0],u=k.getComputedStyle(e,t),l=u.getPropertyValue("font-family").match(Q),c=u.getPropertyValue("font-weight"),s=u.getPropertyValue("content");if(i&&!l)return e.removeChild(i),r();if(l&&"none"!==s&&""!==s){var f=u.getPropertyValue("content"),d=~["Sharp"].indexOf(l[2])?U:B,p=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(l[2])?G[d][l[2].toLowerCase()]:ee[d][c],m=function(e){var t=e.replace(nn,""),n=function(e,t){var n,r=e.length,a=e.charCodeAt(t);return a>=55296&&a<=56319&&r>t+1&&(n=e.charCodeAt(t+1))>=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}(t,0),r=n>=rn[0]&&n<=rn[1],a=2===t.length&&t[0]===t[1];return{value:Te(a?t[0]:t),isSecondary:r||a}}(f),v=m.value,g=m.isSecondary,h=l[0].startsWith("FontAwesome"),b=Je(p,v),y=b;if(h){var w=function(e){var t=Ze[e],n=Je("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}(v);w.iconName&&w.prefix&&(b=w.iconName,p=w.prefix)}if(!b||g||i&&i.getAttribute(L)===p&&i.getAttribute(I)===y)r();else{e.setAttribute(n,y),i&&e.removeChild(i);var O={iconName:null,title:null,titleId:null,prefix:null,transform:pe,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},x=O.extra;x.attributes[N]=t,Et(b,p).then((function(o){var i=wt(a(a({},O),{},{icons:{main:o,mask:nt()},prefix:p,iconName:y,extra:x,watchable:!0})),u=E.createElementNS("http://www.w3.org/2000/svg","svg");"::before"===t?e.insertBefore(u,e.firstChild):e.appendChild(u),u.outerHTML=i.map((function(e){return Me(e)})).join("\n"),e.removeAttribute(n),r()})).catch(o)}}else r()}))}function on(e){return Promise.all([an(e,"::before"),an(e,"::after")])}function un(e){return e.parentNode!==document.head&&!~W.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(N)&&(!e.parentNode||"svg"!==e.parentNode.tagName)}function ln(e){if(C)return new Promise((function(t,n){var r=ge(e.querySelectorAll("*")).filter(un).map(on),a=Mt.begin("searchPseudoElements");Ht(),Promise.all(r).then((function(){a(),Wt(),t()})).catch((function(){a(),Wt(),n()}))}))}var cn=!1,sn=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},fn={mixout:function(){return{parse:{transform:function(e){return sn(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=sn(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,o=e.iconWidth,i={transform:"translate(".concat(r/2," 256)")},u="translate(".concat(32*n.x,", ").concat(32*n.y,") "),l="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),c="rotate(".concat(n.rotate," 0 0)"),s={outer:i,inner:{transform:"".concat(u," ").concat(l," ").concat(c)},path:{transform:"translate(".concat(o/2*-1," -256)")}};return{tag:"g",attributes:a({},s.outer),children:[{tag:"g",attributes:a({},s.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:a(a({},t.icon.attributes),s.path)}]}]}}}},dn={x:0,y:0,width:"100%",height:"100%"};function pn(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var mn={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?ot(n.split(" ").map((function(e){return e.trim()}))):nt();return r.prefix||(r.prefix=tt()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,o=e.main,i=e.mask,u=e.maskId,l=e.transform,c=o.width,s=o.icon,f=i.width,d=i.icon,p=function(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),i="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),u="rotate(".concat(t.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(o," ").concat(i," ").concat(u)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}({transform:l,containerWidth:f,iconWidth:c}),m={tag:"rect",attributes:a(a({},dn),{},{fill:"white"})},v=s.children?{children:s.children.map(pn)}:{},g={tag:"g",attributes:a({},p.inner),children:[pn(a({tag:s.tag,attributes:a(a({},s.attributes),p.path)},v))]},h={tag:"g",attributes:a({},p.outer),children:[g]},b="mask-".concat(u||ve()),y="clip-".concat(u||ve()),w={tag:"mask",attributes:a(a({},dn),{},{id:b,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,h]},O={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=d,"g"===t.tag?t.children:[t])},w]};return n.push(O,{tag:"rect",attributes:a({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(b,")")},dn)}),{children:n,attributes:r}}}},vn={provides:function(e){var t=!1;k.matchMedia&&(t=k.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:a(a({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var o=a(a({},r),{},{attributeName:"opacity"}),i={tag:"circle",attributes:a(a({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:a(a({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:a(a({},o),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:a(a({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:a(a({},o),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:a(a({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:a(a({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}};!function(e,t){var n=t.mixoutsTo;ut=e,lt={},Object.keys(ct).forEach((function(e){-1===st.indexOf(e)&&delete ct[e]})),ut.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"===typeof t[e]&&(n[e]=t[e]),"object"===o(t[e])&&Object.keys(t[e]).forEach((function(r){n[e]||(n[e]={}),n[e][r]=t[e][r]}))})),e.hooks){var r=e.hooks();Object.keys(r).forEach((function(e){lt[e]||(lt[e]=[]),lt[e].push(r[e])}))}e.provides&&e.provides(ct)}))}([Ee,Jt,Qt,en,tn,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=ln,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?E:t;se.searchPseudoElements&&ln(n)}}},{mixout:function(){return{dom:{unwatch:function(){Ht(),cn=!0}}}},hooks:function(){return{bootstrap:function(){Bt(ft("mutationObserverCallbacks",{}))},noAuto:function(){Vt&&Vt.disconnect()},watch:function(e){var t=e.observeMutationsRoot;cn?Wt():Bt(ft("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},fn,mn,vn,{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}],{mixoutsTo:ht});var gn=ht.parse,hn=ht.icon,bn=n(45697),yn=n.n(bn),wn=n(67294);function On(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?On(Object(n),!0).forEach((function(t){kn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):On(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jn(e){return jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jn(e)}function kn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function En(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function Pn(e){return function(e){if(Array.isArray(e))return Sn(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Sn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Sn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Cn(e){return t=e,(t-=0)===t?e:(e=e.replace(/[\-_\s]+(.)?/g,(function(e,t){return t?t.toUpperCase():""}))).substr(0,1).toLowerCase()+e.substr(1);var t}var _n=["style"];var Mn=!1;try{Mn=!0}catch(Nn){}function Dn(e){return e&&"object"===jn(e)&&e.prefix&&e.iconName&&e.icon?e:gn.icon?gn.icon(e):null===e?null:e&&"object"===jn(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"===typeof e?{prefix:"fas",iconName:e}:void 0}function An(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?kn({},e,t):{}}var Tn=wn.forwardRef((function(e,t){var n=e.icon,r=e.mask,a=e.symbol,o=e.className,i=e.title,u=e.titleId,l=e.maskId,c=Dn(n),s=An("classes",[].concat(Pn(function(e){var t,n=e.beat,r=e.fade,a=e.beatFade,o=e.bounce,i=e.shake,u=e.flash,l=e.spin,c=e.spinPulse,s=e.spinReverse,f=e.pulse,d=e.fixedWidth,p=e.inverse,m=e.border,v=e.listItem,g=e.flip,h=e.size,b=e.rotation,y=e.pull,w=(kn(t={"fa-beat":n,"fa-fade":r,"fa-beat-fade":a,"fa-bounce":o,"fa-shake":i,"fa-flash":u,"fa-spin":l,"fa-spin-reverse":s,"fa-spin-pulse":c,"fa-pulse":f,"fa-fw":d,"fa-inverse":p,"fa-border":m,"fa-li":v,"fa-flip":!0===g,"fa-flip-horizontal":"horizontal"===g||"both"===g,"fa-flip-vertical":"vertical"===g||"both"===g},"fa-".concat(h),"undefined"!==typeof h&&null!==h),kn(t,"fa-rotate-".concat(b),"undefined"!==typeof b&&null!==b&&0!==b),kn(t,"fa-pull-".concat(y),"undefined"!==typeof y&&null!==y),kn(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(w).map((function(e){return w[e]?e:null})).filter((function(e){return e}))}(e)),Pn(o.split(" ")))),f=An("transform","string"===typeof e.transform?gn.transform(e.transform):e.transform),d=An("mask",Dn(r)),p=hn(c,xn(xn(xn(xn({},s),f),d),{},{symbol:a,title:i,titleId:u,maskId:l}));if(!p)return function(){var e;!Mn&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",c),null;var m=p.abstract,v={ref:t};return Object.keys(e).forEach((function(t){Tn.defaultProps.hasOwnProperty(t)||(v[t]=e[t])})),zn(m[0],v)}));Tn.displayName="FontAwesomeIcon",Tn.propTypes={beat:yn().bool,border:yn().bool,beatFade:yn().bool,bounce:yn().bool,className:yn().string,fade:yn().bool,flash:yn().bool,mask:yn().oneOfType([yn().object,yn().array,yn().string]),maskId:yn().string,fixedWidth:yn().bool,inverse:yn().bool,flip:yn().oneOf([!0,!1,"horizontal","vertical","both"]),icon:yn().oneOfType([yn().object,yn().array,yn().string]),listItem:yn().bool,pull:yn().oneOf(["right","left"]),pulse:yn().bool,rotation:yn().oneOf([0,90,180,270]),shake:yn().bool,size:yn().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:yn().bool,spinPulse:yn().bool,spinReverse:yn().bool,symbol:yn().oneOfType([yn().bool,yn().string]),title:yn().string,titleId:yn().string,transform:yn().oneOfType([yn().string,yn().object]),swapOpacity:yn().bool},Tn.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var zn=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof n)return n;var a=(n.children||[]).map((function(n){return e(t,n)})),o=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=r.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,t){var n,r=t.indexOf(":"),a=Cn(t.slice(0,r)),o=t.slice(r+1).trim();return a.startsWith("webkit")?e[(n=a,n.charAt(0).toUpperCase()+n.slice(1))]=o:e[a]=o,e}),{});break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[Cn(t)]=r}return e}),{attrs:{}}),i=r.style,u=void 0===i?{}:i,l=En(r,_n);return o.attrs.style=xn(xn({},o.attrs.style),u),t.apply(void 0,[n.tag,xn(xn({},o.attrs),l)].concat(Pn(a)))}.bind(null,wn.createElement)},59514:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(67294)),a=h(n(60677)),o=n(57509),i=g(n(12460)),u=h(n(43946)),l=g(n(58358)),c=n(54576),s=n(35890),f=h(n(81743)),d=n(86420),p=["children","fractionDigits"],m=["children"];function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(e){return e&&e.__esModule?e:{default:e}}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}function y(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var w=(0,a.default)(o.Flex).attrs({position:"relative","data-testid":"chartPopover-dimension",padding:[1,0]}).withConfig({displayName:"dimension__GridRow",componentId:"sc-wluvip-0"})(["display:contents;"]),O=(0,a.default)(i.ColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"dimension__ColorBackground",componentId:"sc-wluvip-1"})([""]),x={ANOMALY_RATE:"arp",default:"value"},j=function(e){var t=e.children,n=e.fractionDigits,a=void 0===n?0:n,i=y(e,p),u=t.toString().split("."),c=u[0],s=u[1];return r.default.createElement(o.Flex,{alignItems:"center",justifyContent:"end",padding:[0,.5]},r.default.createElement(l.Value,b({},i,{textAlign:"right"}),c),"undefined"!==typeof s&&r.default.createElement(l.Value,i,"."),r.default.createElement(l.Value,b({as:o.Flex,flex:!1,width:1.8*a},i,{textAlign:"left"}),s))},k=function(e){var t=e.children,n=y(e,m);return r.default.createElement(o.Flex,{gap:1,justifyContent:"end"},Object.keys(t).map((function(e){return r.default.createElement(o.Flex,{key:e,border:{size:"1px",side:"all",color:t[e]},round:!0,flex:!1,padding:[0,.5]},r.default.createElement(f.default,{content:s.labels[e]||e},r.default.createElement(l.Value,b({},n,{color:t[e]}),e)))})))},E=function(e){var t=e.id,n=e.strong,a=e.chars,s=e.rowFlavour,f=e.size,p=e.fullCols,m=(0,c.useVisibleDimensionId)(t),v=(0,c.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(w,{opacity:m?null:"weak"},r.default.createElement(o.Flex,{alignItems:"center",gap:1,position:"relative",overflow:"hidden"},r.default.createElement(O,{id:t,valueKey:x[s]||x.default,height:(f>18?18:f<12?12:f)+"px"},r.default.createElement(i.default,{id:t})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:t,strong:n,maxLength:a,fontSize:"1.1em"})),r.default.createElement(l.default,{id:t,strong:n,visible:m,Component:j,fractionDigits:v,color:s===d.rowFlavours.default?"text":"textLite",fontSize:"1.1em"}),p&&r.default.createElement(r.default.Fragment,null,r.default.createElement(l.default,{id:t,strong:n,visible:m,valueKey:"arp",Component:j,fractionDigits:2,color:s===d.rowFlavours.ANOMALY_RATE?"anomalyTextFocus":"anomalyText",fontSize:"1.1em"}),r.default.createElement(l.default,{textAlign:"right",id:t,strong:n,visible:m,valueKey:"pa",Component:k,color:s===d.rowFlavours.ANNOTATIONS?"text":"textLite",fontSize:"1.1em"})))};t.default=E},86420:function(e,t,n){"use strict";t.__esModule=!0,t.rowFlavours=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(60677)),o=n(54576),i=n(90833),u=c(n(9033)),l=c(n(59514));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var f=a.default.div.withConfig({displayName:"dimensions__Grid",componentId:"sc-x7v8hd-0"})(["display:grid;width:100%;grid-template-columns:",";align-items:center;"],(function(e){return"full"===e.cols?"2fr 1fr 1fr 1fr":"3fr 1fr"})),d=[null,null],p=function(e){var t=Math.round((e-70)/18);return t<2?2:t},m=function(e){return p(e)/2},v={ANOMALY_RATE:"ANOMALY_RATE",ANNOTATIONS:"ANNOTATIONS",default:"VALUE"};t.rowFlavours=v;var g={ANOMALY_RATE:"anomalyDesc",ANNOTATIONS:"annotationsDesc",default:"valueDesc"},h=function(e){var t=e.size,n=e.height,a=e.width,c=(0,o.useChart)(),s=(0,o.useAttributeValue)("hoverX")||d,h=s[0],b=s[1],y=(0,o.usePayload)().data,w=(0,r.useMemo)((function(){var e=c.getClosestRow(h)||y.length-1,t=c.onHoverSortDimensions(e,g[b]||c.getAttribute("dimensionsSort")||g.default)||[];c.getAttribute("selectedDimensions").length>0&&(t=t.filter((function(e){return c.isDimensionVisible(e)})));var r=t.findIndex((function(e){return e===b})),a=t.length,o=Math.floor(function(e,t,n){return e<p(n)||t<m(n)?0:t>e-m(n)?t-(m(n)+(e-t)):t-m(n)}(a,r,n)),i=Math.ceil(function(e,t,n){return e<p(n)?e:t<m(n)?t+m(n)+(m(n)-t):t>e-m(n)?e:t+m(n)}(a,r,n));return[o,i,a,t.slice(o,i)]}),[c,b,h,y,n]),O=w[0],x=w[1],j=w[2],k=w[3],E=v[b]||v.default,P=(0,o.useAttributeValue)("cols");return r.default.createElement(r.default.Fragment,null,r.default.createElement(i.TextNano,{fontSize:"1em",color:"textLite"},O>0?"\u2191"+O+" more values":r.default.createElement(r.default.Fragment,null,"\xa0")),r.default.createElement(f,{gap:.5,column:!0,cols:P},r.default.createElement(i.TextMicro,{fontSize:"1em",strong:!0},"Dimension"),r.default.createElement(i.TextMicro,{fontSize:"1em",color:E===v.default?"text":"textLite",textAlign:"right"},"Value"," ",r.default.createElement(u.default,{visible:!0,strong:E===v.default,color:E===v.default?"text":"textLite",fontSize:"1em"})),"full"===P&&r.default.createElement(r.default.Fragment,null,r.default.createElement(i.TextMicro,{fontSize:"1em",strong:E===v.ANOMALY_RATE,color:E===v.ANOMALY_RATE?"text":"textLite",textAlign:"right"},"AR %"),r.default.createElement(i.TextMicro,{fontSize:"1em",strong:E===v.ANNOTATIONS,color:E===v.ANNOTATIONS?"text":"textLite",textAlign:"right"},"Info")),k.map((function(e){return r.default.createElement(l.default,{key:e,id:e,strong:b===e,chars:parseInt(a/("full"===P?15:8)),rowFlavour:E,size:(t-80)/k.length,fullCols:"full"===P})}))),r.default.createElement(i.TextNano,{color:"textLite",fontSize:"1em"},x<j?"\u2193"+(j-x)+" more values":r.default.createElement(r.default.Fragment,null,"\xa0")))},b=(0,r.memo)(h);t.default=b},63076:function(e,t,n){"use strict";t.ZP=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=s(n(58607)),o=n(54576),i=s(n(70486)),u=n(86954),l=s(n(86420)),c=["uiName"];function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}var p=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),s=(0,o.useOnResize)(n),f=s.width,p=s.height,m=f<p?f:p;return r.default.createElement(u.ChartWrapper,{ref:t},r.default.createElement(a.default,d({uiName:n,column:!0,gap:.5,position:"relative"},i),r.default.createElement(l.default,{size:m,height:p,width:f})))}));var m=(0,i.default)(p,{tile:!0});t.ZP=m},58607:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=(r=n(32855))&&r.__esModule?r:{default:r},i=n(54576),u=["uiName"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=function(e){var t=e.uiName,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),r=(0,i.useChart)(),l=(0,a.useRef)();return(0,a.useLayoutEffect)((function(){return r.getUI(t).mount(l.current),function(){return r.getUI(t)&&r.getUI(t).unmount()}}),[]),a.default.createElement(o.default,c({"data-testid":"chartContent",ref:l,height:"100%",width:"100%"},n))};t.default=s},36864:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=(r=n(60677))&&r.__esModule?r:{default:r},o=n(57509);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({"data-testid":"chart",column:!0,position:"relative",round:!0,border:{color:"mainChartBorder",side:"all"},background:"mainChartBg"},e)})).withConfig({displayName:"container__Container",componentId:"sc-sbp2x3-0"})(["::selection{background:transparent;}::-moz-selection{background:transparent;}"]),c=l;t.default=c},1981:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Skeleton=t.D3pie=void 0;var r=p(n(67294)),a=f(n(58607)),o=n(54576),i=p(n(60677)),u=f(n(32855)),l=f(n(70486)),c=n(86954),s=["uiName"];function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=(0,i.default)(u.default).withConfig({displayName:"d3pie__StatsContainer",componentId:"sc-7pf92d-0"})(["font-size:",";"],(function(e){return e.fontSize})),b=(0,i.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),y=(0,i.default)(u.default).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"panelBg",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"d3pie__Skeleton",componentId:"sc-7pf92d-1"})(["animation:"," 1.6s ease-in infinite;"],b);t.Skeleton=y;var w=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,s),u=(0,o.useAttributeValue)("loaded"),l=(0,o.useOnResize)(n),f=l.width,d=l.height,p=f<d?f:d;return r.default.createElement(c.ChartWrapper,m({alignItems:"center",justifyContent:"center",column:!0,ref:t},i),u?r.default.createElement(h,{position:"relative",width:"100%",height:"100%",fontSize:p/15+"px"},r.default.createElement(a.default,{uiName:n})):r.default.createElement(y,null))}));t.D3pie=w;var O=(0,l.default)(w,{tile:!0});t.default=O},44608:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(28524)),o=n(90833),i=c(n(3701)),u=n(54576),l=c(n(4522));function c(e){return e&&e.__esModule?e:{default:e}}var s=function(){var e=(0,u.useAttributeValue)("chartType");return r.default.createElement(l.default,{icon:r.default.createElement(i.default,{svg:a.default,color:"key"}),title:"Chart type",color:"key","data-testid":"cartDetails-chartType"},r.default.createElement(o.TextSmall,{color:"textDescription"},e))};t.default=s},86985:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(67294)),a=s(n(79608)),o=n(90833),i=s(n(32855)),u=s(n(3701)),l=n(54576),c=s(n(4522));function s(e){return e&&e.__esModule?e:{default:e}}var f=function(e){var t=e.title,n=e.children;return r.default.createElement(i.default,{gap:2},r.default.createElement(o.TextSmall,{color:"textDescription"},t),r.default.createElement(i.default,{as:o.TextSmall,background:"elementBackground"},n))},d=function(){var e=(0,l.useAttributeValue)("contextScope");return r.default.createElement(c.default,{icon:r.default.createElement(u.default,{svg:a.default,color:"key"}),title:"Plugin and chart context",color:"key","data-testid":"cartDetails-context"},r.default.createElement(f,{title:"Context"},e.join(", ")))};t.default=d},39915:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(25312)),o=n(90833),i=c(n(3701)),u=n(54576),l=c(n(4522));function c(e){return e&&e.__esModule?e:{default:e}}var s=function(){var e=(0,u.useTitle)(),t=(0,u.useAttributeValue)("info"),n=(0,u.useAttributeValue)("sectionInfo"),c=(0,u.useChart)(),s=function(e){var t=e.target.hash,n=void 0===t?"":t;n.startsWith("#menu")&&(e.preventDefault(),c.sdk.trigger("goToLink",c,n.substr(1)))};return r.default.createElement(l.default,{icon:r.default.createElement(i.default,{svg:a.default,color:"key"}),title:e,color:"key","data-testid":"cartDetails-description"},r.default.createElement(o.TextSmall,{color:"textDescription",dangerouslySetInnerHTML:{__html:n},onClick:s}),r.default.createElement(o.TextSmall,{color:"textDescription",dangerouslySetInnerHTML:{__html:t},onClick:s}))};t.default=s},1496:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=f(n(67294)),a=f(n(60677)),o=f(n(32855)),i=n(54576),u=f(n(86985)),l=f(n(22009)),c=f(n(39915)),s=f(n(44608));function f(e){return e&&e.__esModule?e:{default:e}}var d=(0,a.default)(o.default).attrs({column:!0,padding:[4,3],gap:5,background:"mainBackground",overflow:{vertical:"auto"}}).withConfig({displayName:"details__Container",componentId:"sc-etnkd0-0"})(["inset:0;"]),p=function(){var e=(0,i.useAttributeValue)("nodeName");return r.default.createElement(d,{"data-testid":"cartDetails"},r.default.createElement(c.default,null),e&&r.default.createElement(l.default,null),r.default.createElement(u.default,null),r.default.createElement(s.default,null))};t.default=p},4522:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),a=u(n(32855)),o=n(90833),i=["icon","title","children"];function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){var t=e.icon,n=e.title,u=e.children,c=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i);return r.default.createElement(a.default,l({gap:4},c),t,r.default.createElement(a.default,{column:!0,gap:1,flex:"grow",basis:0},r.default.createElement(o.Text,{strong:!0,color:"key"},n),u&&r.default.createElement(a.default,{column:!0,gap:1},u)))};t.default=c},22009:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(94631)),o=n(90833),i=c(n(3701)),u=n(54576),l=c(n(4522));function c(e){return e&&e.__esModule?e:{default:e}}var s=function(){var e=(0,u.useAttributeValue)("nodeName");return r.default.createElement(l.default,{icon:r.default.createElement(i.default,{svg:a.default,color:"key"}),title:"Source",color:"key","data-testid":"cartDetails-source"},r.default.createElement(o.TextSmall,{color:"textDescription"},e))};t.default=s},28138:function(e,t,n){"use strict";t.ZP=void 0;var r=v(n(67294)),a=p(n(58607)),o=n(54576),i=v(n(60677)),u=p(n(32855)),l=n(90833),c=p(n(70486)),s=n(86954),f=p(n(3640)),d=["uiName"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=(0,i.default)(l.Text).withConfig({displayName:"easyPie__Label",componentId:"sc-1c7qdjs-0"})(["line-height:1;font-size:",";",";"],(function(e){return e.fontSize}),(function(e){return e.isFetching&&f.default}));var w=function(){var e=(0,o.useLatestConvertedValue)("selected");return r.default.createElement(y,{color:"main",fontSize:"2em",strong:!0},e)};var O=function(){var e=(0,o.useUnitSign)();return r.default.createElement(y,{color:"border",fontSize:"1em"},e)};var x=(0,i.default)(u.default).attrs({position:"absolute",column:!0,alignContent:"center",justifyContent:"center",gap:2}).withConfig({displayName:"easyPie__StatsContainer",componentId:"sc-1c7qdjs-1"})(["inset:0;text-align:center;font-size:",";"],(function(e){return e.fontSize}));var j=function(e){var t=e.size;return r.default.createElement(x,{fontSize:t/15+"px"},r.default.createElement(w,null),r.default.createElement(O,null))};var k=(0,i.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),E=(0,i.default)(u.default).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"borderSecondary",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"easyPie__Skeleton",componentId:"sc-1c7qdjs-2"})(["animation:"," 1.6s ease-in infinite;"],k);var P=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,d),u=(0,o.useAttributeValue)("loaded"),l=(0,o.useOnResize)(n),c=l.width,f=l.height,p=c<f?c:f;return r.default.createElement(s.ChartWrapper,{alignItems:"center",ref:t},u?r.default.createElement(a.default,g({uiName:n,position:"relative",justifyContent:"center",alignItems:"center"},i),r.default.createElement(j,{size:p})):r.default.createElement(E,{size:p}))}));var S=(0,c.default)(P,{tile:!0});t.ZP=S},96376:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(57509),i=n(54576),u=(r=n(37101))&&r.__esModule?r:{default:r},l=["labelProps"];function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=a.default.createElement(o.TextMicro,{padding:[0,0,2],color:"textLite"},"When aggregating multiple multiple source time-series metrics to one visible dimension on the chart, use the following aggregation function"),v={heading:"Metrics aggregation",body:"View or select the aggregation function applied when multiple source time-series metrics need to be grouped together to be presented as dimensions on this chart."},g=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,l),r=(0,i.useChart)(),o=(0,i.useAttributeValue)("aggregationMethod"),c=function(e){return(0,a.useMemo)((function(){return[{value:"avg",label:"Average",description:"For each point presented, calculate the average of the metrics contributing to it.",short:"AVG()","data-track":e.track("avg")},{value:"sum",label:"Sum",description:"For each point presented, calculate the sum of the metrics contributing to it.",short:"SUM()","data-track":e.track("sum")},{value:"min",label:"Minimum",description:"For each point presented, present the minimum of the metrics contributing to it.",short:"MIN()","data-track":e.track("min")},{value:"max",label:"Maximum",description:"For each point presented, present the maximum of the metrics contributing to it.",short:"MAX()","data-track":e.track("max")}]}),[e])}(r),f=(c.find((function(e){return e.value===o}))||c[0]).short;return a.default.createElement(u.default,s({value:o,onChange:r.updateAggregationMethodAttribute,items:c,"data-track":r.track("aggregate"),dropTitle:m},n,{labelProps:d({secondaryLabel:"the",label:f,title:v.heading,tooltipProps:v},t)}))},h=(0,a.memo)(g);t.default=h},11627:function(e,t,n){"use strict";t.__esModule=!0,t.uniqueColumn=t.minColumn=t.metricsColumn=t.maxColumn=t.labelColumn=t.instancesColumn=t.contributionColumn=t.avgColumn=t.anomalyRateColumn=t.alertsColumn=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(57509),o=c(n(12460)),i=c(n(9033)),u=n(54576),l=c(n(88811));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}t.labelColumn=function(e){return{id:"label",header:function(){return r.default.createElement(a.TextSmall,{strong:!0},"Name")},size:200,minSize:60,maxSize:800,cell:function(t){var n=t.getValue,i=t.row,c=function(e){return(0,r.useMemo)((function(){return{dimension:"dimensions",node:"nodes",instance:e.intl("instance",2),label:"labels",value:"values",default:"values"}}),[])}((0,u.useChart)());return r.default.createElement(a.Flex,{justifyContent:"between",alignItems:"center",padding:[0,0,0,3*i.depth]},r.default.createElement(a.Flex,{gap:1},r.default.createElement(o.default,{id:i.original.value}),r.default.createElement(a.TextSmall,{strong:!0,onClick:i.original.disabled?void 0:i.getToggleSelectedHandler(),cursor:i.original.disabled?"default":"pointer",whiteSpace:"normal",wordBreak:"break-word"},n())),i.getCanExpand()&&r.default.createElement(l.default,{label:c[i.original.value]||c[e]||c.default,onClick:function(e){i.getToggleExpandedHandler()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},iconRotate:i.getIsExpanded()?2:null,textProps:{fontSize:"10px",color:"textLite"},alignItems:"center"}))}}};t.uniqueColumn=function(){return{id:"unique",header:r.default.createElement(a.TextMicro,{strong:!0},"Unique"),size:45,minSize:30,maxSize:90,cell:function(e){var t=e.getValue;return r.default.createElement(a.TextSmall,{color:"textLite"},t())},sortingFn:"basic"}};t.minColumn=function(){return{id:"min",header:r.default.createElement(a.TextMicro,{strong:!0},"Min ",r.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,n=(0,u.useConverted)(t());return r.default.createElement(a.TextSmall,{color:"textLite"},n)},sortingFn:"basic"}};t.avgColumn=function(){return{id:"avg",header:r.default.createElement(a.TextMicro,{strong:!0},"Avg ",r.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,n=(0,u.useConverted)(t());return r.default.createElement(a.TextSmall,{color:"textLite"},n)},sortingFn:"basic"}};t.maxColumn=function(){return{id:"max",header:r.default.createElement(a.TextMicro,{strong:!0},"Max ",r.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,n=(0,u.useConverted)(t());return r.default.createElement(a.TextSmall,{color:"textLite"},n)},sortingFn:"basic"}};t.instancesColumn=function(){return{id:"instances",header:r.default.createElement(a.TextMicro,{strong:!0},"Instances"),size:60,minSize:30,maxSize:90,cell:function(e){var t,n=e.getValue,o=e.row;if(null==(t=o.original.info)||!t.is)return r.default.createElement(a.TextSmall,{color:"textLite"},n());var i=o.original.info.is,u=i.qr,l=void 0===u?0:u,c=i.sl,s=void 0===c?0:c,f=i.ex,d=void 0===f?0:f;return r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"textLite"},r.default.createElement(a.TextSmall,{color:"primary"},l)," out of ",s+d),r.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:l/(s+d)*100+"%",containerWidth:"100%",border:"none"}))},sortingFn:"basic"}};t.metricsColumn=function(){return{id:"metrics",header:r.default.createElement(a.TextMicro,{strong:!0},"Metrics"),size:80,minSize:60,cell:function(e){var t,n=e.row,o=e.getValue;if(null==(t=n.original.info)||!t.ds)return r.default.createElement(a.TextSmall,{color:"textLite"},o());var i=n.original.info.ds,u=i.qr,l=void 0===u?0:u,c=i.sl,s=void 0===c?0:c,f=i.ex,d=void 0===f?0:f;return r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"textLite"},r.default.createElement(a.TextSmall,{color:"primary"},l)," out of ",s+d),r.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:l/(s+d)*100+"%",containerWidth:"100%",border:"none"}))},sortingFn:"basic"}};t.contributionColumn=function(){return{id:"contribution",header:r.default.createElement(a.TextMicro,{strong:!0},"Vol %"),size:60,minSize:30,maxSize:90,cell:function(e){var t,n=e.row,o=e.getValue;return null!=(t=n.original.info)&&t.sts?r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"primary"},Math.round(100*(o()+Number.EPSILON))/100,"%"),r.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:o()+"%",containerWidth:"100%",border:"none"})):r.default.createElement(a.TextSmall,{color:"textLite"},o())},sortingFn:"basic"}};t.anomalyRateColumn=function(){return{id:"anomalyRate",header:r.default.createElement(a.TextMicro,{strong:!0},"AR %"),size:60,minSize:30,maxSize:90,cell:function(e){var t,n=e.row,o=e.getValue;return null!=(t=n.original.info)&&t.sts?r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"textLite"},Math.round(100*(o()+Number.EPSILON))/100,"%"),r.default.createElement(a.ProgressBar,{background:"progressBg",color:"anomalyText",height:2,width:o()+"%",containerWidth:"100%",border:"none"})):r.default.createElement(a.TextSmall,{color:"textLite"},o())},sortingFn:"basic"}};t.alertsColumn=function(){return{id:"alerts",header:r.default.createElement(a.TextMicro,{strong:!0},"Alerts"),size:70,minSize:60,cell:function(e){var t,n=e.row,o=e.getValue;if(null==(t=n.original.info)||!t.al)return r.default.createElement(a.TextSmall,{color:"textLite"},o());var i=n.original.info.al,u=i.cl,l=void 0===u?0:u,c=i.cr,s=void 0===c?0:c,f=i.wr,d=void 0===f?0:f,p={text:s,flavour:s?"error":"disabledError"},m={text:d,flavour:d?"warning":"disabledWarning"},v={text:l,flavour:l?"clear":"disabledClear"};return r.default.createElement("div",null,r.default.createElement(a.Flex,{flex:!1},r.default.createElement(a.MasterCard,{pillLeft:p,pillRight:m,pillEnd:v})))},sortingFn:"basic"}}},92247:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(37101))&&r.__esModule?r:{default:r},u=["labelProps"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p={heading:"Context",body:"View or select the context applied on this chart."},m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("contextScope"),s=(0,o.useAttributeValue)("contextItems");if(!s.length)return null;var d=(s.find((function(e){return e.value===l[0]}))||s[0]).label;return a.default.createElement(i.default,c({value:l,onChange:r.updateContextScopeAttribute,items:s,"data-track":r.track("contextScope")},n,{labelProps:f({secondaryLabel:"On",label:d,title:p.heading,tooltipProps:p},t)}))},v=(0,a.memo)(m);t.default=v},28646:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(23410))&&r.__esModule?r:{default:r},u=n(33370),l=n(11627),c=["labelProps"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d={heading:"Dimensions",body:"View or filter the original dimensions contributing time-series metrics to this chart. This menu also presents the contribution of each original dimension on the chart, and a break down of the anomaly rate of the data per dimension."},p=[(0,l.labelColumn)(),(0,l.metricsColumn)(),(0,l.contributionColumn)(),(0,l.anomalyRateColumn)(),(0,l.minColumn)(),(0,l.avgColumn)(),(0,l.maxColumn)()],m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("selectedDimensions"),s=(0,o.useAttributeValue)("dimensions"),m=(0,o.useAttributeValue)("dimensionsTotals"),v=(0,a.useCallback)((function(){return Object.keys(s).map((function(e){var t=l.includes(e);return(0,u.getStats)(r,s[e],{key:"dimensions",props:{selected:t}})}))}),[s,l]),g=(0,o.useAttribute)("nodesSortBy"),h=g[0],b=g[1];return a.default.createElement(i.default,f({title:"Dimensions",resourceName:"dimension","data-track":r.track("dimensions"),labelProps:t,onChange:r.updateDimensionsAttribute,getOptions:v,tooltipProps:d,value:l,columns:p,sortBy:h,onSortByChange:b,totals:m},n))},v=(0,a.memo)(m);t.default=v},37101:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.ItemContainer=t.Item=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=n(57509),i=d(n(13563)),u=d(n(25312)),l=d(n(3701)),c=d(n(81743)),s=d(n(88811)),f=["labelProps"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({as:"li",role:"option",padding:[1,2],gap:1,justifyContent:"between"},e)})).withConfig({displayName:"dropdownSingleSelect__ItemContainer",componentId:"sc-u6ous4-0"})(["cursor:",";opacity:",";align-items:",";"," "," ",""],(function(e){return e.disabled?"default":"pointer"}),(function(e){var t=e.disabled,n=e.stale;return e.selected||!n&&!t?1:.7}),(function(e){return e.alignItems||"center"}),(function(e){var t=e.selected,n=e.theme;return t&&"\n background-color: "+function(e){var t=e.theme;return("Dark"===t.name?(0,o.getRgbColor)(["green","netdata"],.3):(0,o.getRgbColor)(["green","frostee"]))({theme:t})}({theme:n})+";\n "}),(function(e){var t=e.selected,n=e.theme;return!t&&"\n &:hover {\n background-color: "+(0,o.getColor)("borderSecondary")({theme:n})+";\n }\n "}),(function(e){var t=e.justDesc,n=e.theme;return t&&"\n pointer-events: none;\n border-top: 1px solid "+(0,o.getColor)("borderSecondary")({theme:n})+";\n "}));t.ItemContainer=h;var b=function(e){var t=e.value,n=e.item,a=e.onItemClick,s=e.itemProps,f=n.value,d=n.label,p=n.description,v=n.justDesc,g=void 0!==v&&v,b=t===f;return r.default.createElement(h,m({},s,{disabled:b,selected:b,onClick:function(){return a(f)},justDesc:g}),r.default.createElement(o.Flex,{column:g,padding:[0,1],alignItems:"start",width:"100%",justifyContent:"between"},!!d&&r.default.createElement(o.Text,null,d,b&&r.default.createElement(l.default,{margin:[-.5,2,-.5,0],width:"14px",height:"14px",color:"primary",svg:i.default})),!!p&&(g?r.default.createElement(o.TextMicro,{color:"textLite"},p):r.default.createElement(c.default,{content:p,zIndex:9999999},r.default.createElement("div",null,r.default.createElement(l.default,{width:"14px",height:"14px",color:"textLite",svg:u.default}))))))};t.Item=b;var y=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,f);return r.default.createElement(o.Menu,m({},n,{Item:b,dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":!0,width:"460px"},dropdownProps:{padding:[0,0,2,0],height:{max:"80vh"}}},n),r.default.createElement(s.default,m({},t,{"data-value":""+(n.value||"No selection")})))},w=(0,r.memo)(y);t.default=w},23410:function(e,t,n){"use strict";t.__esModule=!0,t.meta=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=f(n(60677)),o=n(57509),i=f(n(91211)),u=f(n(88811)),l=f(n(59965)),c=["getOptions","onItemClick","close","columns","sortBy","onSortByChange","expanded","onExpandedChange","tableMeta","enableSubRowSelection","value","newValues","totals","emptyMessage","title","filterSelectedCount"],s=["label","labelProps","onChange","getOptions","secondaryLabel","tooltipProps","value","columns","sortBy","onSortByChange","expanded","onExpandedChange","tableMeta","enableSubRowSelection","totals","emptyMessage","resourceName","title","filterSelectedCount"];function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=(0,a.default)(o.Flex).withConfig({displayName:"dropdownTable__Container",componentId:"sc-194yxs8-0"})(["box-shadow:0 18px 28px ",";list-style-type:none;border-radius:2px;border:1px solid ",";*{box-sizing:border-box;}"],(0,o.getColor)("dropdownShadow"),(0,o.getColor)("borderSecondary")),y=function(e,t,n){return{cellStyles:g(g(g({height:"40px"},(null==e||null==e.getIsExpanded?void 0:e.getIsExpanded())&&{background:"columnHighlight",backgroundOpacity:.7}),e.depth>0&&{backgroundOpacity:.4}),e.depth>0&&0===n&&{border:{side:"left",size:"4px"}}),headStyles:{height:"32px"},styles:{verticalAlign:"middle"},bulkActionsStyles:{padding:[2,0]},searchContainerStyles:{width:"100%",padding:[0,2,0,2]},searchStyles:{inputContainerStyles:{height:"32px",border:{side:"all",size:"1px",color:"inputBg"},background:"inputBg",round:!0,padding:[1,2],_hover:{border:{side:"all",size:"1px",color:"borderSecondary"}}}}}};t.meta=y;var w=function(){},O=[{id:"contribution",desc:!0}],x={},j=function(){return!0},k=function(e){var t=e.getOptions,n=e.onItemClick,a=(e.close,e.columns),u=e.sortBy,s=e.onSortByChange,f=e.expanded,d=e.onExpandedChange,v=e.tableMeta,h=void 0===v?y:v,O=e.enableSubRowSelection,x=e.value,k=e.newValues,P=e.totals,S=e.emptyMessage,C=e.title,_=e.filterSelectedCount,M=void 0===_?j:_,D=m(e,c),A=(0,r.useMemo)(t,[]),T=(0,r.useState)((function(){return E(A,{})})),z=T[0],N=T[1];(0,r.useEffect)((function(){var e=E(A,{});N((function(t){return(0,i.default)(t,e)?t:e}))}),[]);var R=(0,r.useMemo)((function(){return!!k&&(0,i.default)(x,k)}),[k]),L=(0,r.useMemo)((function(){return null!=k&&k.length?M(k).length:0}),[k]);return r.default.createElement(b,p({role:"listbox",background:"dropdown",padding:[0],margin:[1,0],column:!0,tabindex:"-1",flex:!0},D),r.default.createElement(o.NetdataTable,{title:C,background:"dropdownTable",enableResize:!0,enableSorting:!0,enableSelection:!0,dataColumns:a,data:A,onRowSelected:n,onGlobalSearchChange:w,meta:h,sortBy:u,rowSelection:z,onSortingChange:s,expanded:f,onExpandedChange:d,enableSubRowSelection:O,width:{base:250,max:"80vw"}}),r.default.createElement(o.Flex,{padding:[2],justifyContent:"between",alignItems:"center",border:{side:"top",color:"borderSecondary"}},r.default.createElement(o.Flex,{gap:1,alignItems:"center"},r.default.createElement(o.TextSmall,{color:"textLite"},"Selected ",r.default.createElement(o.TextSmall,{strong:!0},L)," out of"," ",r.default.createElement(o.TextSmall,{strong:!0},((null==P?void 0:P.sl)||0)+((null==P?void 0:P.ex)||0)||A.length)),r.default.createElement(o.Button,{padding:[0],flavour:"borderless",width:"auto",height:"auto",cursor:"pointer",color:"primary",onClick:function(){N({}),n([])},disabled:!(null!=k&&k.length)&&!x.length,label:"clear",small:!0}),r.default.createElement(o.Button,{padding:[0],flavour:"borderless",width:"auto",height:"auto",cursor:"pointer",color:"primary",onClick:function(){N(g({},z)),n(x)},disabled:!R,label:"reset",small:!0}),!(null!=k&&k.length)&&!!S&&r.default.createElement(o.TextSmall,{color:"warningText"},S)),P&&r.default.createElement(l.default,p({selected:x},P))))},E=function e(t,n,r){return t.reduce((function(t,n,a){return"undefined"!==typeof r&&(a=r+"."+a),n.selected&&(t[a]=!0),n.children&&e(n.children,t,a),t}),n)},P=function(e){var t=e.label,n=e.labelProps,a=e.onChange,i=e.getOptions,c=e.secondaryLabel,f=e.tooltipProps,d=e.value,v=e.columns,g=e.sortBy,h=void 0===g?O:g,b=e.onSortByChange,y=e.expanded,w=void 0===y?x:y,j=e.onExpandedChange,E=e.tableMeta,P=e.enableSubRowSelection,S=e.totals,C=e.emptyMessage,_=e.resourceName,M=e.title,D=e.filterSelectedCount,A=m(e,s),T=(0,r.useState)(!1),z=T[0],N=T[1],R=(0,r.useState)(),L=R[0],I=R[1],F=(0,r.useRef)();return(0,r.useEffect)((function(){!z&&L&&(F.current=null,a(L))}),[z]),(0,r.useEffect)((function(){return function(){return F.current&&a(F.current)}}),[]),r.default.createElement(o.Menu,p({onChange:function(e){F.current=e,I(e)},hasSearch:!1,closeOnClick:!1,Dropdown:k,dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":!0,keepHorizontal:!0,stretch:null},dropdownProps:{height:{max:"60vh"},width:"100%",overflow:"auto",columns:v,getOptions:i,sortBy:h,onSortByChange:b,expanded:w,onExpandedChange:j,tableMeta:E,enableSubRowSelection:P,value:d,totals:S,newValues:L,emptyMessage:C,title:M,filterSelectedCount:D},value:d,onOpen:function(){return N(!0)},onClose:function(){return N(!1)}},A),r.default.createElement(u.default,p({"data-value":d.join("|")||_+" all-selected",secondaryLabel:c,label:t||r.default.createElement(l.default,p({selected:d},S,{resourceName:_,teaser:!0})),title:f.heading,tooltipProps:f},n)))};t.default=P},40107:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=y(n(67294)),a=n(93501),o=y(n(96376)),i=y(n(28646)),u=y(n(45230)),l=y(n(53926)),c=y(n(92247)),s=y(n(77051)),f=y(n(5628)),d=y(n(25789)),p=y(n(33126)),m=y(n(13249)),v=y(n(18567)),g=y(n(11182)),h=y(n(69790)),b=y(n(3701));function y(e){return e&&e.__esModule?e:{default:e}}var w={secondaryLabel:"The"},O={},x={nodes:{icon:r.default.createElement(b.default,{svg:m.default,color:"textLite",size:"16px"}),padding:[0]},instances:{icon:r.default.createElement(b.default,{svg:v.default,color:"textLite",size:"16px"}),padding:[0]},dimensions:{icon:r.default.createElement(b.default,{svg:g.default,color:"textLite",size:"16px"}),padding:[0]},labels:{icon:r.default.createElement(b.default,{svg:h.default,color:"textLite",size:"16px"}),padding:[0]}},j=function(e){var t=e.plain,n=(0,a.useIsHeatmap)();return t?r.default.createElement(r.default.Fragment,null,r.default.createElement(l.default,{labelProps:x.nodes}),r.default.createElement(u.default,{labelProps:x.instances}),r.default.createElement(i.default,{labelProps:x.dimensions}),r.default.createElement(d.default,{labelProps:x.labels})):r.default.createElement(r.default.Fragment,null,!n&&r.default.createElement(c.default,null),!n&&r.default.createElement(s.default,{labelProps:{secondaryLabel:"Group by"}}),r.default.createElement(o.default,{labelProps:n?w:O}),r.default.createElement(l.default,null),r.default.createElement(u.default,null),r.default.createElement(i.default,null),r.default.createElement(d.default,null),r.default.createElement(f.default,null),r.default.createElement(p.default,null))};t.default=j},44841:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=(r=n(60677))&&r.__esModule?r:{default:r},o=n(57509);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({alignItems:"center",border:{side:"bottom",color:"borderSecondary"},overflow:"auto"},e)})).withConfig({displayName:"filtersContainer__FiltersContainer",componentId:"sc-1f00tzv-0"})(["&::-webkit-scrollbar{height:0;}"]),c=l;t.default=c},77051:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=n(90833),u=(r=n(23410))&&r.__esModule?r:{default:r},l=n(33370),c=n(11627),s=["labelProps"];function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}function p(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var v={heading:"Group by",body:"Slice and dice the source time-series metrics in multiple ways, to get different viewing angles on them. Multiple groupings can be selected at the same time to fine tune the segmentation."},g=[(0,c.labelColumn)("label"),(0,c.uniqueColumn)(),(0,c.metricsColumn)(),(0,c.contributionColumn)(),(0,c.anomalyRateColumn)(),(0,c.minColumn)(),(0,c.avgColumn)(),(0,c.maxColumn)()],h=function(e){var t,n=e.labelProps,r=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,s),c=(0,o.useChart)(),f=(0,o.useAttributeValue)("groupBy"),m=(0,o.useAttributeValue)("groupByLabel"),h=function(e){return(0,a.useMemo)((function(){return[{nm:"node",id:"node",key:"nodes"},{nm:e.intl("instance")+" "+("instance"===e.intl("instance")?"":"(instance)"),id:"instance",key:"instances"},{nm:"dimension",id:"dimension",key:"dimensions"}]}),[])}(c),b=(0,a.useCallback)((function(){var e=c.getAttributes(),t=h.map((function(t){var n=f.includes(t.id);return(0,l.getStats)(c,t,{key:"group-by",childrenKey:"label",props:{contribution:"-",anomalyRate:"-",alerts:"-",min:"-",avg:"-",max:"-",selected:n},childProps:{unique:"-",disabled:"hidden"},children:Object.values(e[t.key])})}));return[].concat(p(t),p(Object.keys(e.labels).map((function(t){return(0,l.getStats)(c,e.labels[t],{key:"group-by",childrenKey:"label",props:{getLabel:function(e){return"label: "+(e.nm||t||e.id)},isLabel:!0,selected:m.includes(t)},childProps:{unique:"-",disabled:"hidden"},children:e.labels[t].vl})}))))}),[f,m]);t=(0,a.useMemo)((function(){var e=f.filter((function(e){return"node"!==e})),t=e.map((function(e){return"label"===e?m.length>1?m.length+" labels":m[0]:e}));return e.length<f.length&&t.push("node"),t.join(", ")}),[f,m]);var y=(0,a.useMemo)((function(){return[].concat(p(f),p(m))}),[f,m]),w=(0,o.useAttribute)("groupBySortBy"),O=w[0],x=w[1],j=(0,o.useAttribute)("groupByExpanded"),k=j[0],E=j[1];return a.default.createElement(u.default,d({title:a.default.createElement(i.TextBig,{strong:!0,whiteSpace:"nowrap"},"Group by"),label:t,"data-track":c.track("group-by"),labelProps:n,onChange:c.updateGroupByAttribute,getOptions:b,secondaryLabel:"Group by",tooltipProps:v,value:y,columns:g,enableSubRowSelection:!1,sortBy:O,onSortByChange:x,expanded:k,onExpandedChange:E,emptyMessage:"Deselecting everything will use GROUP BY DIMENSION by default"},r))},b=(0,a.memo)(h);t.default=b},18947:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(44841)),o=l(n(40107)),i=l(n(34262)),u=["plain"];function l(e){return e&&e.__esModule?e:{default:e}}var c=(0,i.default)((function(e){var t=e.plain,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u);return r.default.createElement(a.default,n,r.default.createElement(o.default,{plain:t}))}));t.default=c},45230:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=n(60773),u=(r=n(23410))&&r.__esModule?r:{default:r},l=n(33370),c=n(11627),s=["labelProps"];function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}var p=[(0,c.labelColumn)(),(0,c.metricsColumn)(),(0,c.contributionColumn)(),(0,c.anomalyRateColumn)(),(0,c.alertsColumn)(),(0,c.minColumn)(),(0,c.avgColumn)(),(0,c.maxColumn)()],m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,s),r=(0,o.useChart)(),c=(0,o.useAttributeValue)("selectedInstances"),f=(0,o.useAttributeValue)("instances"),m=(0,o.useAttributeValue)("instancesTotals"),v=(0,a.useCallback)((function(){return Object.keys(f).map((function(e){return(0,l.getStats)(r,f[e],{id:e,key:"instances",props:{selected:c.includes(e)}})}))}),[f,c]),g=(0,o.useAttribute)("instancesSortBy"),h=g[0],b=g[1],y=function(e){return(0,a.useMemo)((function(){return{heading:(0,i.uppercase)(e.intl("instance",2)),body:"View or filter the "+e.intl("instance",2)+" contributing time-series metrics to this chart. This menu also provides the contribution of each "+e.intl("instance")+" to the volume of the chart, and a break down of the anomaly rate of the queried data per "+e.intl("instance")+"."}}),[])}(r);return a.default.createElement(u.default,d({title:(0,i.uppercase)(r.intl("instance",2)),resourceName:"instance","data-track":r.track("instances"),labelProps:t,onChange:r.updateInstancesAttribute,getOptions:v,tooltipProps:y,value:c,columns:p,sortBy:h,onSortByChange:b,totals:m},n))},v=(0,a.memo)(m);t.default=v},88811:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=p(n(60677)),o=p(n(32855)),i=n(90833),u=p(n(3728)),l=p(n(3701)),c=n(81743),s=n(90509),f=["width","open"],d=["icon","secondaryLabel","tertiaryLabel","label","chevron","iconRotate","textProps"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v.apply(this,arguments)}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var w=(0,a.default)(o.default).attrs((function(e){var t=e.width,n=void 0===t?{max:100}:t,r=e.open,a=y(e,f);return h(h({cursor:"pointer",role:"button",padding:[1],round:!0,gap:1,width:n},r&&{background:"borderSecondary"}),a)})).withConfig({displayName:"label__Container",componentId:"sc-1lmmfid-0"})(["&:hover{background:",";}"],(0,s.getColor)("borderSecondary"));t.Container=w;var O=(0,a.default)(i.TextSmall).attrs({whiteSpace:"nowrap",truncate:!0}).withConfig({displayName:"label__StyledLabel",componentId:"sc-1lmmfid-1"})(["flex:1;"]),x=(0,r.forwardRef)((function(e,t){var n=e.icon,a=e.secondaryLabel,o=e.tertiaryLabel,c=e.label,s=e.chevron,f=void 0===s||s,p=e.iconRotate,m=e.textProps,g=y(e,d);return n?r.default.createElement(w,v({ref:t},g),n):r.default.createElement(w,v({ref:t},g),a&&r.default.createElement(i.TextSmall,{color:"textLite",whiteSpace:"nowrap",truncate:!0},a),r.default.createElement(O,m,c),o&&r.default.createElement(i.TextSmall,{color:"textLite",whiteSpace:"nowrap",truncate:!0},o),f&&r.default.createElement(l.default,{svg:u.default,size:"16px",color:"selected",rotate:p}))})),j=(0,c.withTooltip)(x,{Content:function(e){var t=e.header,n=e.body;return r.default.createElement(o.default,v({column:!0,gap:1},c.tooltipStyleProps),r.default.createElement(i.TextSmall,{color:"bright",strong:!0},t),n&&r.default.createElement(i.TextSmall,{color:"bright"},n))},align:"top"});t.default=j},25789:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(23410))&&r.__esModule?r:{default:r},u=n(33370),l=n(11627),c=["labelProps"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d={heading:"Labels",body:"View or filter the contributing time-series labels to this chart. This menu also presents the contribution of each label on the chart, and a break down of the anomaly rate of the data per label."},p=[(0,l.labelColumn)("value"),(0,l.uniqueColumn)(),(0,l.metricsColumn)(),(0,l.contributionColumn)(),(0,l.anomalyRateColumn)(),(0,l.minColumn)(),(0,l.avgColumn)(),(0,l.maxColumn)()],m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("selectedLabels"),s=(0,o.useAttributeValue)("labels"),m=(0,o.useAttributeValue)("labelsTotals"),v=(0,a.useCallback)((function(){return Object.keys(s).map((function(e){return(0,u.getStats)(r,s[e],{key:"labels",childrenKey:"values",props:{selected:l.includes(e)},childProps:{unique:"-",parentId:e,getIsSelected:function(t){return l.includes(e+":"+t.id)},getValue:function(t){return e+":"+t.id}},children:s[e].vl})}))}),[s,l]),g=(0,o.useAttribute)("labelsSortBy"),h=g[0],b=g[1],y=(0,o.useAttribute)("labelsExpanded"),w=y[0],O=y[1],x=(0,a.useCallback)((function(e){return e.filter((function(e){return!!e.parentId}))}),[]);return a.default.createElement(i.default,f({title:"Labels",resourceName:"label","data-track":r.track("labels"),labelProps:t,onChange:r.updateLabelsAttribute,getOptions:v,tooltipProps:d,value:l,columns:p,enableSubRowSelection:!0,sortBy:h,onSortByChange:b,expanded:w,onExpandedChange:O,totals:m,filterSelectedCount:x},n))},v=(0,a.memo)(m);t.default=v},53926:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(23410))&&r.__esModule?r:{default:r},u=n(33370),l=n(11627),c=["labelProps"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function d(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var m={heading:"Nodes",body:"View or filter the nodes contributing time-series metrics to this chart. This menu also provides the contribution of each node to the volume of the chart, and a break down of the anomaly rate of the queried data per node."},v=[(0,l.labelColumn)("instance"),(0,l.instancesColumn)(),(0,l.metricsColumn)(),(0,l.contributionColumn)(),(0,l.anomalyRateColumn)(),(0,l.alertsColumn)(),(0,l.minColumn)(),(0,l.avgColumn)(),(0,l.maxColumn)()],g=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("selectedNodes"),s=(0,o.useAttributeValue)("nodes"),p=(0,o.useAttributeValue)("instances"),g=(0,o.useAttributeValue)("nodesTotals"),h=(0,o.useAttributeValue)("selectedInstances"),b=(0,a.useCallback)((function(){return Object.keys(s).map((function(e){var t=l.includes(e);return(0,u.getStats)(r,s[e],{id:e,key:"nodes",childrenKey:"instances",props:{selected:t},childProps:{isInstance:!0,getValue:function(t){return t.id+"@"+e},getIsSelected:function(t){return h.includes(t.id+"@"+e)}},children:Object.keys(p).reduce((function(t,n){return p[n].ni===s[e].ni?[].concat(d(t),[p[n]]):t}),[])})}))}),[s,l,h]),y=(0,o.useAttribute)("nodesSortBy"),w=y[0],O=y[1],x=(0,o.useAttribute)("nodesExpanded"),j=x[0],k=x[1],E=(0,a.useCallback)((function(e){return e.filter((function(e){return!e.isInstance}))}),[]);return a.default.createElement(i.default,f({title:"Nodes",resourceName:"node","data-track":r.track("nodes"),labelProps:t,onChange:r.updateNodesAttribute,getOptions:b,tooltipProps:m,value:l,columns:v,sortBy:w,onSortByChange:O,expanded:j,onExpandedChange:k,enableSubRowSelection:!1,totals:g,filterSelectedCount:E},n))},h=(0,a.memo)(g);t.default=h},33126:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),a=u(n(60677)),o=n(57509),i=n(41145);function u(e){return e&&e.__esModule?e:{default:e}}var l=(0,a.default)(o.Button).attrs({flavour:"borderless",label:"Reset",width:"initial",height:"initial",padding:[0,1],title:"Reset Filters",small:!0,neutral:!0}).withConfig({displayName:"reset__StyledButton",componentId:"sc-kilpc3-0"})(["&&{height:initial;font-weight:normal;}"]),c=function(e){var t,n=e.attribute,a=void 0===n?"pristine":n,o=e.resetFunction,u=(0,i.useChart)(),c=(0,i.useAttributeValue)(a),s=0===(null==(t=Object.keys(c))?void 0:t.length);return r.default.createElement(l,{disabled:s,onClick:null!=o?o:u.resetPristine,"data-track":u.track("reset")})};t.default=c},63209:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),a=u(n(32855)),o=u(n(44841)),i=u(n(88811));function u(e){return e&&e.__esModule?e:{default:e}}var l=function(){return r.default.createElement(o.default,null,r.default.createElement(a.default,{gap:1},r.default.createElement(i.default,{width:"90px",background:"borderSecondary",secondaryLabel:"",label:""}),r.default.createElement(i.default,{width:"120px",background:"borderSecondary"}),r.default.createElement(i.default,{width:"100px",background:"borderSecondary"})))};t.default=l},5628:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(57509),i=n(54576),u=(r=n(37101))&&r.__esModule?r:{default:r},l=["labelProps"];function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m={percentile:"95","trimmed-mean":"5","trimmed-median":"5"},v={heading:"Aliases aggregation over time",body:"The percentile or percentage of the data you want to focus for the percentile or trimmed functions selected."},g={heading:"Time aggregation",body:"View or select the aggregation function applied on each time-series metric when the number of points in the database are more than the points your screen resolution provides to present this chart. This function is helpful when viewing long time-frames, like days, weeks or months, to quickly spot anomalies, spikes or dives."},h=a.default.createElement(o.TextMicro,{padding:[0,0,2],color:"textLite"},"When the screen resolution provides less points than the points available of the source time-series metrics, use the following aggregation function over time on each metric to reduce the number of points"),b=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,l),r=(0,i.useChart)(),o=(0,i.useAttributeValue)("groupingMethod").match(/[\d.]+|\D+/g)||[],c=o[0],f=void 0===c?"":c,p=o[1],b=void 0===p?"":p,y=(0,i.useAttributeValue)("viewUpdateEvery"),w=(0,i.useAttributeValue)("perTier"),O=function(e,t){void 0===t&&(t=[]);var n=t,r=n[0],o=n.slice(1);return(0,a.useMemo)((function(){return[{value:"min",label:"Minimum",description:"Reveal short dives that would otherwise be smoothed out.",short:"MIN()","data-track":e.track("time-aggregation-min")},{value:"max",label:"Maximum",description:"Reveal short spikes that would otherwise be smoothed out.",short:"MAX()","data-track":e.track("time-aggregation-max")},{value:"average",label:"Mean or Average",description:"Calculate the longer term average, as if data were collected at screen resolution.",short:"AVG()","data-track":e.track("time-aggregation-average")},{value:"sum",label:"Sum",description:"Provide the sum of the points that are aggregated over time. Use it when a sense of volume is needed over the aggregation period. It may not be sensible to use this function on all data types.",short:"SUM()","data-track":e.track("time-aggregation-sum")},Array.isArray(o)&&"undefined"!==typeof(null==r?void 0:r.points)&&{justDesc:!0,description:"The functions below lose accuracy when applied on tiered data, compared to high resolution data. Your current query is "+100*r.points/t.reduce((function(e,t){return e+t.points}),0)+"% high resolution and "+100*o.reduce((function(e,t){return e+t.points}),0)/t.reduce((function(e,t){return e+t.points}),0).toFixed(2)+"% tiered data of lower resolution."},{value:"percentile",label:"Percentile",description:"Provide the maximum value of a percentage of the aggregated points, having the smaller values. The default is p95, which provides the maximum value of the aggregated points after ignoring the top 5% of them.",short:"PERCENTILE()","data-track":e.track("time-aggregation-percentile95")},{value:"trimmed-mean",label:"Trimmed Average or Trimmed Mean",description:"Like average, but first remove a percentage of the extreme high and low values.",short:"TRIMMEAN()","data-track":e.track("time-aggregation-trimmed-mean5")},{value:"median",label:"Median",description:"The middle value of all points that would otherwise be smoothed out. This function works like average, but short extreme dives and spikes influence it significantly less than average.",short:"MEDIAN()","data-track":e.track("time-aggregation-median")},{value:"trimmed-median",label:"Trimmed Median",description:"Like median, but first remove a percentage of the extreme high and low values.",short:"TRIMMEDIAN()","data-track":e.track("time-aggregation-trimmed-median5")},{value:"stddev",label:"Standard deviation",description:"Reveal how far each point lies from the average. A high standard deviation means that values are generally far from the average, while a low standard deviation indicates that values are clustered close to the mean. The result is again in the original units of the data source metric.",short:"STDDEV()","data-track":e.track("time-aggregation-stddev")},{value:"cv",label:"Coefficient of variation or Relative standard deviation",description:"The ratio of the standard deviation to the average. Its use is the same as standard deviation, but expressed as a percentage related to the average. The units change to %.",short:"CV()","data-track":e.track("time-aggregation-cv")},{value:"incremental-sum",label:"Incremental Sum or Delta",description:"Provide the difference between the newest and the oldest values of the aggregated points. Each point will be positive if the trend grows and negative if the trend shrinks.",short:"DELTA()","data-track":e.track("time-aggregation-incremental-sum")},{value:"ses",label:"Single exponential smoothing",description:"Use the aggregated points to produce a forecast of the next value, and reveal the forecasted value. Use it when there are indications that the trend is more predictable using the more recent points than the older ones.",short:"SES()","data-track":e.track("time-aggregation-ses")},{value:"des",label:"Double exponential smoothing",description:"Like single exponential smoothing, but better suited when the aggregated points may have a strong trend.",short:"DES()","data-track":e.track("time-aggregation-des")}].filter(Boolean)}),[e,null==r?void 0:r.points])}(r,w),x=function(e){var t=e.chart,n=e.method;return(0,a.useMemo)((function(){return"percentile"===n?[{value:"25",label:"25th",short:"25th","data-track":t.track("time-aggregation-percentile25")},{value:"50",label:"50th",short:"50th","data-track":t.track("time-aggregation-percentile50")},{value:"75",label:"75th",short:"75th","data-track":t.track("time-aggregation-percentile75")},{value:"80",label:"80th",short:"80th","data-track":t.track("time-aggregation-percentile80")},{value:"90",label:"90th",short:"90th","data-track":t.track("time-aggregation-percentile90")},{value:"95",label:"95th",short:"95th","data-track":t.track("time-aggregation-percentile95")},{value:"97",label:"97th",short:"97th","data-track":t.track("time-aggregation-percentile97")},{value:"98",label:"98th",short:"98th","data-track":t.track("time-aggregation-percentile98")},{value:"99",label:"99th",short:"99th","data-track":t.track("time-aggregation-percentile99")}]:n.includes("trimmed")?[{value:"1",label:"1%",short:"1%","data-track":t.track("time-aggregation-"+n+"1")},{value:"2",label:"2%",short:"2%","data-track":t.track("time-aggregation-"+n+"2")},{value:"3",label:"3%",short:"3%","data-track":t.track("time-aggregation-"+n+"3")},{value:"5",label:"5%",short:"5%","data-track":t.track("time-aggregation-"+n+"5")},{value:"10",label:"10%",short:"10%","data-track":t.track("time-aggregation-"+n+"10")},{value:"15",label:"15%",short:"15%","data-track":t.track("time-aggregation-"+n+"15")},{value:"20",label:"20%",short:"20%","data-track":t.track("time-aggregation-"+n+"20")},{value:"25",label:"25%",short:"25%","data-track":t.track("time-aggregation-"+n+"25")}]:[]}),[t,n])}({chart:r,method:f}),j=(O.find((function(e){return e.value===f}))||O[0]).short,k=x.find((function(e){return e.value===b}))||x[0];return a.default.createElement(a.default.Fragment,null,b&&a.default.createElement(u.default,s({value:b,onChange:function(e){return r.updateTimeAggregationMethodAttribute({alias:e,method:f})},items:x,"data-track":r.track("groupingMethodAlias")},n,{labelProps:d({secondaryLabel:"each as",label:k.short,title:v.heading,tooltipProps:v},t)})),a.default.createElement(u.default,s({value:f,onChange:function(e){return r.updateTimeAggregationMethodAttribute({alias:m[e],method:e})},items:O,"data-track":r.track("groupingMethod"),dropTitle:h},n,{labelProps:d({secondaryLabel:!b&&"each as",tertiaryLabel:"every "+y+"s",label:j,title:g.heading,tooltipProps:g},t)})))},y=(0,a.memo)(b);t.default=y},59965:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=n(90833),o=c(n(13563)),i=c(n(45724)),u=c(n(3701)),l=n(54576);function c(e){return e&&e.__esModule?e:{default:e}}var s=function(e){var t=e.selected,n=void 0===t?[]:t,c=e.qr,s=void 0===c?0:c,f=e.fl,d=void 0===f?0:f,p=e.sl,m=void 0===p?0:p,v=e.ex,g=void 0===v?0:v,h=e.teaser,b=void 0!==h&&h,y=e.resourceName,w=m+g,O=n.length&&n.length<s?n.length:s,x=d>0||b&&s<(n.length||w),j=(b?n.length||w:n.length)||m,k=(0,l.useChart)();return r.default.createElement(a.TextMicro,{color:"textLite"},r.default.createElement(a.TextMicro,{color:b?"text":"primary"},O),b?" ":" queried",!b&&r.default.createElement(u.default,{margin:[-.5,1,-.5,0],width:"14px",height:"14px",color:"primary",svg:o.default}),!!d&&r.default.createElement(r.default.Fragment,null,b?r.default.createElement(a.TextMicro,{color:"errorLite"}," +"):"+ ",r.default.createElement(a.TextMicro,{color:"errorLite"},d),b?" ":"failed ",r.default.createElement(u.default,{margin:[-.5,1,-.5,0],width:"14px",height:"14px",color:"errorLite",svg:i.default})),x&&r.default.createElement(r.default.Fragment,null,"of ",r.default.createElement(a.TextMicro,{color:b?"textLite":"text"},j),b?" ":" selected"),!b&&s!==w&&r.default.createElement(r.default.Fragment,null,"out of ",r.default.createElement(a.TextMicro,null,w)," available"),y?k.intl(y,x?j:O):"")};t.default=s},33370:function(e,t){"use strict";t.__esModule=!0,t.getStats=void 0;var n=["getValue","getLabel","getIsSelected"];function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i=function(e,t){return e&&(null==e?void 0:e[t])||0},u=function(e){return e?i(e,"qr")+i(e,"qr")/(i(e,"ex")+i(e,"sl")):"-"},l=function(e){return e?3*i(e,"cr")+2*i(e,"wr")+i(e,"cl"):"-"};t.getStats=function e(t,r,o){var c=void 0===o?{}:o,s=c.id,f=c.key,d=c.childrenKey,p=c.children,m=void 0===p?[]:p,v=c.childProps,g=c.props,h=g.getValue,b=g.getLabel,y=g.getIsSelected,w=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(g,n);return a(a({label:(null==b?void 0:b(r))||r.nm||s||r.id,value:(null==h?void 0:h(r))||s||r.id,"data-track":t.track(f+"-"+(s||r.id||r.nm)),unique:m.length,instances:u(r.is),metrics:u(r.ds),contribution:i(r.sts,"con"),anomalyRate:i(r.sts,"arp"),min:i(r.sts,"min"),avg:i(r.sts,"avg"),max:i(r.sts,"max"),alerts:l(r.al),info:r,selected:(null==y?void 0:y(r))||!1},w),{},{children:m.map((function(n){return e(t,n,{key:f+"-"+d,props:v})}))})}},34262:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=i(n(67294)),a=n(54576),o=i(n(63209));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){return function(t){return(0,a.useInitialLoading)()?r.default.createElement(o.default,t):r.default.createElement(e,t)}}},16374:function(e,t,n){"use strict";t.ZP=void 0;var r=g(n(67294)),a=g(n(60677)),o=n(57509),i=m(n(58607)),u=n(54576),l=n(90509),c=m(n(70486)),s=n(86954),f=m(n(3640)),d=["empty","index","uiName"],p=["uiName"];function m(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}function w(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var O=(0,a.default)(o.Text).withConfig({displayName:"gauge__Label",componentId:"sc-1o49axm-0"})(["line-height:1;font-size:",";flex:",";",";"],(function(e){return e.fontSize}),(function(e){var t=e.flex;return void 0===t?0:t}),(function(e){return e.isFetching&&f.default})),x=(0,a.default)(O).withConfig({displayName:"gauge__StrokeLabel",componentId:"sc-1o49axm-1"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,l.getColor)("border"),(0,l.getColor)("border"),(0,l.getColor)("border"),(0,l.getColor)("border")),j=function(){var e=(0,u.useLatestConvertedValue)("selected");return r.default.createElement(x,{flex:"2",color:"main",fontSize:"2em",strong:!0},e)};var k=function(){var e=(0,u.useUnitSign)();return r.default.createElement(O,{color:"textLite",fontSize:"1em"},e)};var E=function(e){var t=e.empty,n=e.index,a=e.uiName,o=w(e,d),i=(0,u.useChart)(),l=i.getUI(a).getMinMax();return r.default.createElement(O,y({color:"textLite",fontSize:"1.3em"},o),t?"-":i.getConvertedValue(l[n]))};var P=(0,a.default)(o.Flex).attrs({alignItems:"center",justifyContent:"between",flex:!0}).withConfig({displayName:"gauge__BoundsContainer",componentId:"sc-1o49axm-2"})([""]);var S=function(e){var t=e.uiName;return r.default.createElement(P,null,r.default.createElement(E,{index:0,uiName:t}),r.default.createElement(E,{index:1,uiName:t}))};var C=(0,a.default)(o.Flex).attrs({position:"absolute",column:!0,alignContent:"center",justifyContent:"center"}).withConfig({displayName:"gauge__StatsContainer",componentId:"sc-1o49axm-3"})(["inset:",";text-align:center;font-size:",";"],(function(e){return e.inset}),(function(e){return e.fontSize}));var _=function(e){var t=e.uiName,n=(0,u.useOnResize)(t),a=n.width,o=n.height,i=a<o?a:o;return r.default.createElement(r.default.Fragment,null,r.default.createElement(C,{fontSize:i/15+"px",inset:"50% 15% 0%"},r.default.createElement(k,null)),r.default.createElement(C,{fontSize:i/15+"px",inset:"35% 15% 0%"},r.default.createElement(j,null)),r.default.createElement(C,{fontSize:i/15+"px",inset:"80% "+(100-.8*i*100/a)/2+"% 0%"},r.default.createElement(S,{uiName:t})))};var M=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),D=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"borderSecondary",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"gauge__Skeleton",componentId:"sc-1o49axm-4"})(["animation:"," 1.6s ease-in infinite;"],M);var A=(0,r.forwardRef)((function(e,t){var n=e.uiName,a=w(e,p),o=(0,u.useAttributeValue)("loaded");return r.default.createElement(s.ChartWrapper,{alignItems:"center",justifyContent:"center",column:!0,ref:t,gap:0},o?r.default.createElement(r.default.Fragment,null,r.default.createElement(i.default,y({uiName:n,position:"relative",justifyContent:"center",alignItems:"center"},a),r.default.createElement("canvas",null)),r.default.createElement(_,{uiName:n})):r.default.createElement(D,null))}));var T=(0,c.default)(A,{tile:!0});t.ZP=T},14567:function(e,t,n){"use strict";t.__esModule=!0,t.makeGetColor=t.getWidth=t.default=void 0;var r,a=n(69032),o=n(63840),i=n(51834),u=n(31859),l=(r=n(61406))&&r.__esModule?r:{default:r};function c(){c=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(_){l=function(e,t,n){return e[t]=n}}function s(e,t,n,a){var o=t&&t.prototype instanceof p?t:p,i=Object.create(o.prototype),u=new P(a||[]);return r(i,"_invoke",{value:x(e,n,u)}),i}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(_){return{type:"throw",arg:_}}}e.wrap=s;var d={};function p(){}function m(){}function v(){}var g={};l(g,o,(function(){return this}));var h=Object.getPrototypeOf,b=h&&h(h(S([])));b&&b!==t&&n.call(b,o)&&(g=b);var y=v.prototype=p.prototype=Object.create(g);function w(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function a(r,o,i,u){var l=f(e[r],e,o);if("throw"!==l.type){var c=l.arg,s=c.value;return s&&"object"==typeof s&&n.call(s,"__await")?t.resolve(s.__await).then((function(e){a("next",e,i,u)}),(function(e){a("throw",e,i,u)})):t.resolve(s).then((function(e){c.value=e,i(c)}),(function(e){return a("throw",e,i,u)}))}u(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){a(e,n,t,r)}))}return o=o?o.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return C()}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var u=j(i,n);if(u){if(u===d)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=f(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===d)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function j(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,j(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var a=f(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,d;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:C}}function C(){return{value:void 0,done:!0}}return m.prototype=v,r(y,"constructor",{value:v,configurable:!0}),r(v,"constructor",{value:m,configurable:!0}),m.displayName=l(v,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,l(e,u,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},w(O.prototype),l(O.prototype,i,(function(){return this})),e.AsyncIterator=O,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new O(s(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},w(y),l(y,u,"Generator"),l(y,o,(function(){return this})),l(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=S,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(u&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;E(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},e}t.getWidth=function(e,t){var n=void 0===t?{}:t,r=n.aspectRatio,a=n.cellSize,o=(0,u.getRows)(e,r),i=(0,u.getColumns)(o,r);return(0,u.getFullWidth)(i,a)};var s=function(e,t){var n=void 0===t?{}:t,r=n.aspectRatio,a=n.cellSize,o=n.padding,i=(0,u.getRows)(e,r),l=(0,u.getColumns)(i,r);return{width:(0,u.getFullWidth)(l,a),height:(0,u.getFullHeight)(i,a,o),columns:Math.ceil(l)}},f=function(e,t,n){return(0,a.scaleLinear)().domain([e,t]).range(n)};t.makeGetColor=f;t.default=function(e,t,n,r){var a=c().mark(M),d=n.onMouseenter,p=n.onMouseout;void 0===r&&(r={});var m=r,v=m.cellSize,g=m.cellPadding,h=m.cellStroke,b=void 0===h?2:h,y=m.lineWidth,w=void 0===y?1:y,O=m.colorRange,x=void 0===O?[e.getThemeAttribute("themeGroupBoxesMin"),e.getThemeAttribute("themeGroupBoxesMax")]:O,j=t.getContext("2d"),k=(0,i.createCanvas)(j.width,j.height),E=k.getContext("2d"),P=-1,S=function(){},C=function(){},_=function(){};function M(n,m){var h,y,O,M,D,A,T,z,N;return c().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:h=s(n,r),y=h.width,O=h.height,M=h.columns,k.width=parseInt(y),k.height=parseInt(O),E.clearRect(0,0,k.width,k.height),D=e.getAttribute("min"),A=e.getAttribute("max"),T=f(D,A,x),z=function(t,n,r){t.beginPath(),t.fillStyle=T(e.getRowDimensionValue(n,m));var a=(0,u.getXPosition)(M,r,v),o=(0,u.getYPosition)(M,r,v);w&&b&&t.clearRect(a-w,o-w,(0,u.getCellBoxSize)(v,g)+b,(0,u.getCellBoxSize)(v,g)+b),t.fillRect(a,o,(0,u.getCellBoxSize)(v,g),(0,u.getCellBoxSize)(v,g))},N=0;case 9:if(!(N<n.length)){a.next=17;break}if(z(E,n[N],N),!(0,o.unstable_shouldYield)()){a.next=14;break}return void(a.next=14);case 14:++N,a.next=9;break;case 17:S(),_(),(0,i.copyCanvas)(k,t),_=(0,l.default)(t,M,n.length,{onMouseenter:d,onMouseout:p},r),S=function(){return-1!==P&&z(j,n[P],P)},C=function(e){S(),P=e;var t=(0,u.getXPosition)(M,e,v),n=(0,u.getYPosition)(M,e,v);w&&b&&(j.lineWidth=w,j.strokeStyle="#fff",j.strokeRect(t+w,n+w,(0,u.getCellBoxSize)(v,g)-b,(0,u.getCellBoxSize)(v,g)-b))};case 23:case"end":return a.stop()}}),a)}return{clear:function(){S(),_(),j.clearRect(0,0,t.width,t.height),E.clearRect(0,0,k.width,k.height)},update:M,activateBox:function(e){return C(e)},deactivateBox:function(){return S()}}}},61406:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(31859);t.default=function(e,t,n,a,o){var i=a.onMouseenter,u=a.onMouseout,l=void 0===o?{}:o,c=l.cellSize,s=l.cellPadding,f=-1,d=function(n){var a=e.getBoundingClientRect(),o=(0,r.getXPosition)(t,n,c),i=(0,r.getYPosition)(t,n,c),u=a.left+o,l=a.top+i,f=(0,r.getCellBoxSize)(c,s);return{index:n,left:u,top:l,right:u+f,bottom:l+f,width:f,height:f,offsetX:o,offsetY:i}},p=function(){u(d(f)),f=-1},m=function(e){var a=e.offsetX,o=e.offsetY,u=(0,r.getOffsetPosition)(a,c),l=(0,r.getOffsetPosition)(o,c)*t+u;l!==f&&(-1!==f&&p(),l>=n||(i(d(l)),f=l))};return e.addEventListener("mousemove",m),e.addEventListener("mouseout",p),function(){e.removeEventListener("mousemove",m),e.removeEventListener("mouseout",p)}}},9549:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=u(n(67294)),a=u(n(32855)),o=u(n(78122)),i=u(n(88578));function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){return r.default.createElement(a.default,l({border:{side:"top",color:"borderSecondary"},"data-testid":"chartLegend",column:!0},e))};t.Container=c;var s=function(){return r.default.createElement(c,null,r.default.createElement(o.default,null),r.default.createElement(a.default,{alignItems:"center",padding:[2]},r.default.createElement(i.default,null)))};t.default=s},88578:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(60677)),o=l(n(32855)),i=n(90833),u=n(54576);function l(e){return e&&e.__esModule?e:{default:e}}var c=(0,a.default)(o.default).attrs({width:"320px",height:"12px",round:!0}).withConfig({displayName:"legend__LinearColorScaleBar",componentId:"sc-1iit0cq-0"})(["background:linear-gradient( to right,",","," );"],(function(e){return e.minColor}),(function(e){return e.maxColor})),s=function(){var e=(0,u.useChart)(),t=(0,u.useAttributeValue)("min"),n=(0,u.useAttributeValue)("max"),a=(0,u.useUnitSign)(),l=(0,u.useAttributeValue)("selectedContexts").join(", "),s=(0,u.useAttributeValue)("contextScope").join(", ");(0,u.useAttributeValue)("theme");var f=e.getThemeAttribute("themeGroupBoxesMin"),d=e.getThemeAttribute("themeGroupBoxesMax");return r.default.createElement(o.default,{"data-testid":"groupBox-legend",gap:4,alignItems:"center"},r.default.createElement(i.TextNano,{strong:!0},l&&"*"!==l?l:s),r.default.createElement(o.default,{gap:2,alignItems:"center"},r.default.createElement(i.TextNano,null,e.getConvertedValue(t)," ",a),r.default.createElement(c,{minColor:f,maxColor:d}),r.default.createElement(i.TextNano,null,e.getConvertedValue(n)," ",a)))};t.default=s},88515:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576),o=d(n(58802)),i=d(n(14567)),u=d(n(51653)),l=d(n(87951)),c=["uiName","dimensions","groupLabel"],s=["index"],f=["index"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){m=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(_){l=function(e,t,n){return e[t]=n}}function c(e,t,n,a){var o=t&&t.prototype instanceof d?t:d,i=Object.create(o.prototype),u=new P(a||[]);return r(i,"_invoke",{value:x(e,n,u)}),i}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(_){return{type:"throw",arg:_}}}e.wrap=c;var f={};function d(){}function p(){}function v(){}var g={};l(g,o,(function(){return this}));var h=Object.getPrototypeOf,b=h&&h(h(S([])));b&&b!==t&&n.call(b,o)&&(g=b);var y=v.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function a(r,o,i,u){var l=s(e[r],e,o);if("throw"!==l.type){var c=l.arg,f=c.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){a("next",e,i,u)}),(function(e){a("throw",e,i,u)})):t.resolve(f).then((function(e){c.value=e,i(c)}),(function(e){return a("throw",e,i,u)}))}u(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){a(e,n,t,r)}))}return o=o?o.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return C()}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var u=j(i,n);if(u){if(u===f)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=s(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function j(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,j(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var a=s(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,f;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:C}}function C(){return{value:void 0,done:!0}}return p.prototype=v,r(y,"constructor",{value:v,configurable:!0}),r(v,"constructor",{value:p,configurable:!0}),p.displayName=l(v,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,l(e,u,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},w(O.prototype),l(O.prototype,i,(function(){return this})),e.AsyncIterator=O,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new O(c(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},w(y),l(y,u,"Generator"),l(y,o,(function(){return this})),l(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=S,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(u&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;E(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function v(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var g=function(e){var t=e.uiName,n=e.dimensions,d=e.groupLabel,p=v(e,c),g=(0,a.useChart)(),h=(0,r.useRef)(),b=(0,r.useRef)(),y=(0,r.useRef)(),w=(0,r.useState)(null),O=w[0],x=w[1],j=(0,r.useRef)(-1),k=(0,r.useRef)();(0,r.useLayoutEffect)((function(){return y.current=(0,i.default)(g,b.current,{onMouseenter:function(e){var t=e.index,n=v(e,s);j.current=t,y.current.activateBox(t),k.current=setTimeout((function(){x({target:{getBoundingClientRect:function(){return n}},index:t})}),100)},onMouseout:function(){j.current=-1,clearTimeout(k.current),requestAnimationFrame((function(){x((function(e){return-1===j.current||j.current!==(null==e?void 0:e.index)?(y.current.deactivateBox(),j.current=-1,null):e}))}))},onClick:function(e){void 0===e&&(e={});var t=e,n=t.index,r=v(t,f);j.current=n,y.current.activateBox(n),k.current=setTimeout((function(){x({target:{getBoundingClientRect:function(){return r}},index:n})}),100)}},p),function(){return y.current.clear()}}),[]);var E=(0,u.default)(t),P=(0,o.default)(),S=P[1],C=P[2],_=(0,a.useAttributeValue)("theme");(0,r.useLayoutEffect)((function(){return S(m().mark((function e(){return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return O&&h.current&&h.current[O.index]!==n[O.index]&&(y.current.deactivateBox(),x(null),j.current=-1),h.current=n,e.delegateYield(y.current.update(n,E),"t0",3);case 3:case"end":return e.stop()}}),e)}))),function(){return C()}}),[E,S,C,_]);var M=(0,r.useMemo)((function(){if(O){var e=n[O.index].split(",");return e[e.length-1]}}),[n[null==O?void 0:O.index]]);return r.default.createElement(r.Fragment,null,r.default.createElement("canvas",{"data-testid":"groupBox",ref:b}),O&&r.default.createElement(l.default,{target:O.target,label:M,index:O.index,groupLabel:d,data:E,id:n[O.index]}))};t.default=g},98950:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.SkeletonIcon=void 0;var r=d(n(67294)),a=d(n(60677)),o=n(57509),i=n(54576),u=s(n(1496)),l=s(n(88515)),c=s(n(78927));function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),g=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){m(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"borderSecondary",flex:!0,height:50},e)})).withConfig({displayName:"groupBoxes__Skeleton",componentId:"sc-1m75n17-0"})(["animation:"," 1.6s ease-in infinite;"],v),h=function(){var e=(0,i.useLoadingColor)();return r.default.createElement(g,{background:e})};t.SkeletonIcon=h;var b=function e(t){var n=t.uiName,a=t.subTree,u=t.data,c=t.label,s=t.groupedBy,f=t.hasMore,d=Object.values(a),p=s[0],m=s.slice(1),v=(0,i.useColor)("themeBackground");return r.default.createElement(o.Flex,{"data-testid":"groupBoxWrapper",column:!0,alignItems:"start",gap:1,margin:[0,3,3,0],border:!!f&&{color:"borderSecondary",side:"all"},round:f,padding:f?[2]:[0],position:"relative"},r.default.createElement(o.Box,f&&{position:"absolute",top:"-12px",left:1,background:v,padding:[0,1]},r.default.createElement(o.TextMicro,{strong:f,"data-testid":"groupBoxWrapper-title",whiteSpace:"nowrap"},c,u.length>3&&r.default.createElement("span",null,"(",d.length,")"))),m.length?Object.keys(a).map((function(t){return r.default.createElement(e,{key:t,label:t,subTree:a[t],data:u,uiName:n,groupedBy:m,hasMore:m.length>1})})):r.default.createElement(l.default,{dimensions:d,groupLabel:c,uiName:n,groupKey:p}))},y=function(e){var t=e.uiName,n=(0,c.default)(t),a=n.data,l=n.tree,s=(0,i.useAttributeValue)("loaded"),f=(0,i.useAttributeValue)("showingInfo"),d=(0,i.useAttributeValue)("viewDimensions").grouped_by||[],p=d[0],m=d.slice(1);return s?r.default.createElement(o.Flex,{"data-testid":"groupBoxes",flexWrap:!0,flex:!0,position:"relative",height:{min:"150px"}},f?r.default.createElement(u.default,null):m.length?Object.keys(l).map((function(e){return r.default.createElement(b,{key:e,label:e,subTree:l[e],data:a,uiName:t,groupedBy:m,hasMore:m.length>1})})):r.default.createElement(b,{key:p,label:p,subTree:l,data:a,uiName:t,groupedBy:m})):r.default.createElement(h,null)},w=(0,r.memo)(y);t.default=w},20581:function(e,t,n){"use strict";t.ZP=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=v(n(11557)),o=v(n(36657)),i=v(n(70486)),u=n(54576),l=v(n(58607)),c=v(n(79779)),s=v(n(18947)),f=v(n(36864)),d=v(n(98950)),p=v(n(9549)),m=["uiName"];function v(e){return e&&e.__esModule?e:{default:e}}function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,m),v=(0,u.useChart)(),g=(0,o.default)({onHover:v.focus,onBlur:v.blur,isOut:function(e){return!e||!e.closest("[data-toolbox]")&&!e.closest("[data-testid=chart]")}},[v]),b=(0,a.default)((function(e){g.current=e,t.current=e}))[1],y=(0,u.useAttributeValue)("showingInfo");return r.default.createElement(f.default,h({ref:b},i),r.default.createElement(c.default,null),r.default.createElement(s.default,null),r.default.createElement(l.default,{uiName:n,column:!0,gap:4,padding:[4,2]},r.default.createElement(d.default,{uiName:n})),!y&&r.default.createElement(p.default,null))}));var y=(0,i.default)(b);t.ZP=y},87951:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(73935)),o=c(n(82633)),i=c(n(86518)),u=c(n(91183)),l=c(n(66220));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var f={right:"left",bottom:"top"},d={right:"left",top:"bottom"},p={left:"right",bottom:"top"},m={left:"right",top:"bottom"},v=function(e){var t=e.target,n=e.label,c=e.index,s=e.groupLabel,v=e.data,g=e.id,h=(0,r.useRef)(),b=(0,r.useRef)(),y=(0,r.useState)(m),w=y[0],O=y[1];b.current=(0,i.default)(t,h,w,"width"),(0,r.useEffect)((function(){if(null!=t&&t.getBoundingClientRect){var e=t.getBoundingClientRect(),n=e.right,r=e.bottom,a=window.innerHeight,o=window.innerWidth,i=h.current.getBoundingClientRect(),u=i.width,l=i.height;O(function(e,t){return e&&t?f:e?d:t?p:m}(n+u>o,r+l>a))}}),[t]),(0,r.useEffect)((function(){b.current()}),[w]);var x=(0,u.default)();return a.default.createPortal(r.default.createElement(o.default,{"data-toolbox":!0,ref:h,width:{max:"100%"},column:!0,"data-testid":"drop",sx:{pointerEvents:"none"}},r.default.createElement(l.default,{"data-testid":"chartPopover",label:n,index:c,groupLabel:s,data:v,id:g})),x)};t.default=v},47201:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=i(n(67294)),a=i(n(60677)),o=n(57509);function i(e){return e&&e.__esModule?e:{default:e}}var u=(0,a.default)(o.Flex).attrs({"data-testid":"chartPopover-label"}).withConfig({displayName:"label__GridRow",componentId:"sc-1j7ox7-0"})(["display:contents;"]),l=function(e){var t=e.label,n=e.value;return r.default.createElement(u,null,r.default.createElement(o.TextMicro,{padding:[1,0]},t),r.default.createElement(o.TextSmall,{strong:!0},(null==n?void 0:n.join(", "))||"-"))};t.default=l},66220:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(60677)),o=n(57509),i=n(54576),u=n(12460),l=c(n(47201));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var f=(0,a.default)(o.Flex).attrs((function(e){return{round:!0,border:{side:"all",color:"elementBackground"},width:{min:"196px",max:e.maxWidth?e.maxWidth+"px":"80vw"},background:"dropdown",column:!0,padding:[4],gap:1}})).withConfig({displayName:"labels__Container",componentId:"sc-5eymlk-0"})(["box-shadow:0px 8px 12px rgba(9,30,66,0.15),0px 0px 1px rgba(9,30,66,0.31);"]),d=(0,a.default)(u.BaseColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"labels__ColorBackground",componentId:"sc-5eymlk-1"})([""]),p=a.default.div.withConfig({displayName:"labels__Grid",componentId:"sc-5eymlk-2"})(["display:grid;width:100%;grid-template-columns:auto 2fr;column-gap:8px;align-items:center;"]),m=function(e){var t=e.index,n=e.label,a=e.groupLabel,u=e.data,c=e.id,s=(0,i.useChart)(),m=s.getAttribute("viewDimensions"),v=(0,i.useAttributeValue)("min"),g=(0,i.useAttributeValue)("max"),h=.9*s.getUI().getChartWidth(),b=s.getRowDimensionValue(c,u),y=(0,i.useConverted)(b,{valueKey:"percent"});return r.default.createElement(f,{"data-testid":"chartPopover-labels",maxWidth:h,gap:2},r.default.createElement(o.Flex,{column:!0,gap:1},r.default.createElement(o.TextMicro,null,a),r.default.createElement(o.TextMicro,{strong:!0},n),r.default.createElement(o.Flex,{alignItems:"center",position:"relative"},r.default.createElement(d,{value:b,min:v,max:g,bg:s.getThemeAttribute("themeGroupBoxesMax"),height:"18px"}),r.default.createElement(o.TextMicro,{padding:[1,2],strong:!0},y,"-"!==y&&"%"))),!(null==m||!m.labels)&&r.default.createElement(p,{gap:1,column:!0},Object.keys(m.labels).map((function(e){var n;return r.default.createElement(l.default,{key:e,label:e,value:null==(n=m.labels[e])?void 0:n[t]})}))))},v=(0,r.memo)(m);t.default=v},78927:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54576);t.default=function(e){var t=(0,r.useChart)(),n=(0,r.useForceUpdate)();return(0,r.useImmediateListener)((function(){return t.getUI(e).on("groupBoxChanged",n)}),[t]),t.getUI(e).getGroupBox()}},51653:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54576);t.default=function(e){var t=(0,r.useChart)(),n=(0,r.useForceUpdate)();return(0,r.useImmediateListener)((function(){return t.getUI(e).on("groupBoxRowDataChanged",n)}),[t]),t.getUI(e).getGroupBoxRowData()}},31859:function(e,t){"use strict";t.__esModule=!0,t.getYPosition=t.getXPosition=t.getRows=t.getOffsetPosition=t.getFullWidth=t.getFullHeight=t.getColumns=t.getCellBoxSize=t.defaultPadding=t.defaultCellSize=t.defaultAspectRatio=void 0;var n=17;t.defaultCellSize=n;t.defaultPadding=1;var r=Math.round(16/9);t.defaultAspectRatio=r;t.getCellBoxSize=function(e,t){return void 0===e&&(e=n),void 0===t&&(t=1),e-t};t.getRows=function(e,t){return void 0===t&&(t=r),Math.sqrt(e.length/t)};t.getColumns=function(e,t){return void 0===t&&(t=r),e*t};t.getXPosition=function(e,t,r){return void 0===r&&(r=n),Math.floor(t%e)*r};t.getYPosition=function(e,t,r){return void 0===r&&(r=n),Math.floor(t/e)*r};t.getFullWidth=function(e,t){return void 0===t&&(t=n),Math.ceil(e)*t};t.getFullHeight=function(e,t,r){return void 0===t&&(t=n),void 0===r&&(r=n),Math.ceil(e)*t+r};t.getOffsetPosition=function(e,t){return void 0===t&&(t=n),Math.floor(e/t)}},79779:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(32855)),o=n(54576),i=c(n(2713)),u=c(n(21040)),l=n(96808);function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=function(e){return r.default.createElement(a.default,f({alignItems:"center",justifyContent:"start",padding:[1,2],gap:.5,border:{side:"bottom",color:"borderSecondary"},"data-testid":"chartHeader",height:"25px",background:"mainChartHeaderBg"},e))};t.Container=d;var p=function(){var e=(0,o.useAttributeValue)("leftHeaderElements");return r.default.createElement(d,null,e.map((function(e,t,n){return r.default.createElement(r.Fragment,{key:t},r.default.createElement(e,null),n[t+1]?r.default.createElement(u.default,null):null)})),r.default.createElement(l.Title,null),r.default.createElement(i.default,null))};t.default=p},18839:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(60677);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u={default:"default",selectVertical:"row-resize",select:"col-resize",highlight:"crosshair"},l=o(o({},u),{},{pan:"grabbing"}),c=(0,r.css)(["cursor:",";"," &:active{cursor:",";}"],(function(e){return u[e.navigation]||u.default}),(function(e){var t=l[e.navigation];return t?"\n &:active {\n cursor: "+t+";\n }\n ":""}),(function(e){return l[e.navigation]||u.default}));t.default=c},39434:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=u(n(53087)),o=u(n(81743)),i=["text","maxLength","Component","noTooltip"];function u(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}var c=function(e){var t=e.text,n=e.maxLength,u=void 0===n?15:n,l=e.Component,c=void 0===l?"div":l,s=e.noTooltip,f=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i),d=(0,r.useMemo)((function(){return t?(0,a.default)(t,u):null}),[t,u]);return s||d===t?r.default.createElement(c,f,d):r.default.createElement(o.default,{content:t},r.default.createElement(c,f,d))};t.default=c},3640:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(60677),a=(0,r.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),o=(0,r.css)(["animation:"," 1.6s ease-in infinite;"],a);t.default=o},58802:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(67294),a=n(63840);t.default=function(){var e=(0,r.useState)(!1),t=e[0],n=e[1],o=(0,r.useRef)(),i=(0,r.useRef)(),u=(0,r.useCallback)((function(){o.current&&((0,a.unstable_cancelCallback)(o.current),o.current=void 0,n(!1)),i.current&&(i.current(),i.current=void 0)}),[]),l=(0,r.useCallback)((function(e,t){void 0===t&&(t=a.unstable_IdlePriority),u();var r=e(),l=(0,a.unstable_runWithPriority)(t,(function e(){var t=r.next();if(i.current=t.value,!t.done)return e;n(!1)}));l&&((0,a.unstable_runWithPriority)(a.unstable_ImmediatePriority,(function(){return n(!0)})),o.current=(0,a.unstable_scheduleCallback)(t,l))}),[]);return(0,r.useEffect)((function(){return u}),[]),[t,l,u]}},70486:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(67294)),a=n(54576),o=s(n(2855)),i=s(n(92767)),u=s(n(91272)),l=s(n(40287)),c=s(n(86954));function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){void 0===t&&(t={});var n=(0,i.default)((0,l.default)((0,o.default)((0,u.default)(e))));t.tile&&(n=(0,c.default)(n)),n=(0,a.withChartProvider)(n);return function(e){return r.default.createElement(n,e)}}},2855:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=a?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(r,i,u):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576);function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}t.default=function(e){var t=(0,r.forwardRef)((function(t,n){var o=(0,a.useChart)();return r.default.createElement(e,i({"data-track":o.track("container")},t,{ref:n}))}));return(0,r.memo)(t)}},91272:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var u=a?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(r,o,u):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576),o=["isVisible"];function i(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(this,arguments)}t.default=function(e){return(0,r.forwardRef)((function(t,n){var i=t.isVisible,l=void 0===i||i,c=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(t,o),s=(0,a.useChart)();return(0,a.useImmediateListener)((function(){if(l&&(!c.uiName||"default"===c.uiName)){var e=window.requestAnimationFrame(s.activate);return function(){window.cancelAnimationFrame(e),s.deactivate()}}}),[l,s,c.uiName]),r.default.createElement(e,u({ref:n},c))}))}},92767:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=u(n(32855)),o=u(n(56872)),i=n(54576);function u(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}t.default=function(e){return(0,r.forwardRef)((function(t,n){return(0,i.useAttributeValue)("fullscreen")?r.default.createElement(o.default,{full:!0},r.default.createElement(a.default,{background:"mainBackground",flex:!0,width:{max:"inherit"},padding:[4]},r.default.createElement(e,c({},t,{ref:n})))):r.default.createElement(e,c({},t,{ref:n}))}))}},40287:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576),o=n(24298),i=["height","flex"];function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}t.default=function(e){var t=function(t){var n=t.height,u=void 0===n?"100%":n,c=t.flex,s=void 0===c||c,f=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(t,i),d=(0,a.useChart)(),p=(0,r.useRef)(),m=d.getAttribute("enabledHeightResize")&&d.getAttribute("height")||u;return(0,r.useLayoutEffect)((function(){var e=0;return(0,o.unregister)(d.on("resizeYMove",(function(t){var n=e+t+4;if(!(n<185)){var r=n+"px";p.current.style.height=r,d.getUI().trigger("resize"),d.updateHeight(r)}})).on("resizeYStart",(function(){e=p.current.clientHeight})),d.onAttributeChange("expanded",(function(t){e=p.current.clientHeight,d.trigger("resizeYMove",t?d.getAttribute("expandedHeight"):-d.getAttribute("expandedHeight"))})))}),[d]),r.default.createElement(e,l({ref:p,height:m,flex:s},f))};return(0,r.memo)(t)}},86954:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Title=t.HeadWrapper=t.ChartWrapper=void 0;var r=b(n(67294)),a=b(n(60677)),o=n(54585),i=n(57509),u=b(n(88055)),l=b(n(3701)),c=b(n(34675)),s=b(n(36657)),f=n(54576),d=b(n(18947)),p=n(12460),m=b(n(81743)),v=["size"],g=["children","uiName"],h=["count"];function b(e){return e&&e.__esModule?e:{default:e}}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){x(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function x(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var k=(0,a.default)(i.Text).withConfig({displayName:"withTile__Label",componentId:"sc-1oake2r-0"})(["line-height:1;font-size:",";"],(function(e){return e.fontSize})),E=(0,a.default)(i.Flex).attrs((function(e){var t=e.size,n=j(e,v);return O({background:"panelBg",round:!0,fontSize:parseInt(t/3,10),height:"100%",width:"100%"},n)})).withConfig({displayName:"withTile__ChartHeadWrapper",componentId:"sc-1oake2r-1"})(["font-size:","px;"],(function(e){return e.fontSize>12?12:e.fontSize<9?9:e.fontSize})),P=function(){var e=(0,f.useChart)(),t=(0,f.useTitle)();return r.default.createElement(k,{fontSize:"1em",textAlign:"center",color:"sectionDescription",width:"80%",onClick:function(t){t.preventDefault(),e.sdk.trigger("goToLink",e)},cursor:"pointer",padding:[2,0,0]},t)};t.Title=P;var S=function(e){var t,n=e.children,a=e.uiName,v=j(e,g),h=(0,f.useOnResize)().parentWidth,b=(0,f.useAttributeValue)("focused"),w=null==(t=(0,f.useDimensionIds)())?void 0:t[0],O=(0,o.useWindowSize)(a).width,x=parseInt((h||O)/30,10);x=x<20?20:x>50?50:x;var k=(0,f.useChart)(),S=(0,s.default)({onHover:k.focus,onBlur:k.blur,isOut:function(e){return!e||!e.closest("[data-toolbox]")&&!e.closest("[data-testid=chart]")}},[k]);return r.default.createElement(E,y({size:x},v,{ref:S}),r.default.createElement(i.Flex,{column:!0,width:"24px",padding:[2,1]},r.default.createElement(c.default,{plain:!0}),r.default.createElement(i.Collapsible,{open:b,column:!0},r.default.createElement(d.default,{column:!0,background:"elementBackground",border:"none",justifyContent:"start",plain:!0}))),r.default.createElement(i.Flex,{column:!0,alignItems:"center",justifyContent:"center",padding:[1,0,2],height:"100%",width:"100%",position:"relative",overflow:"hidden"},r.default.createElement(P,null),n),r.default.createElement(i.Flex,{column:!0,width:"24px",alignItems:"center",padding:[4,1],gap:2},"selected"===w&&r.default.createElement(r.default.Fragment,null,r.default.createElement(i.Flex,{column:!0,height:"100%",width:"2px",background:"nodeBadgeBackground",justifyContent:"end"},r.default.createElement(p.ColorBar,{id:"selected",valueKey:"arp",width:"2px",styleDimension:"height",round:.5})),r.default.createElement(m.default,{content:"Anomaly rate for this metric"},r.default.createElement(l.default,{svg:u.default,color:"anomalyTextLite",size:"14px"})))))};t.HeadWrapper=S;var C=(0,a.default)(i.Flex).attrs((function(e){return O({column:!0,justifyContent:"center",alignContent:"center",gap:2,position:"relative",width:"100%",height:"100%",overflow:"hidden"},e)})).withConfig({displayName:"withTile__ChartWrapper",componentId:"sc-1oake2r-2"})([""]);t.ChartWrapper=C;t.default=function(e){return function(t){var n=t.count,a=j(t,h);return r.default.createElement(S,{count:n,uiName:a.uiName},r.default.createElement(e,a))}}},44473:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.ContentWrapper=t.Container=void 0;var r=b(n(67294)),a=b(n(60677)),o=g(n(32855)),i=n(54576),u=n(36657),l=g(n(58607)),c=g(n(98079)),s=g(n(44945)),f=g(n(13828)),d=g(n(35815)),p=n(29270),m=g(n(22810)),v=g(n(18839));function g(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function b(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}var w={dygraph:(0,a.css)([""," ",""],m.default,v.default)},O=(0,a.default)(o.default).withConfig({displayName:"chartContentWrapper__StyledContainer",componentId:"sc-ngouqx-0"})(["",""],(function(e){var t=e.chartLibrary;return w[t]||""}));t.ContentWrapper=function(e){return r.default.createElement(o.default,y({position:"relative",column:!0,flex:!0,overflow:"hidden","data-testid":"contentWrapper"},e))};var x=(0,r.forwardRef)((function(e,t){var n=(0,i.useAttributeValue)("chartLibrary"),a=(0,i.useAttributeValue)("navigation");return r.default.createElement(O,y({ref:t,chartLibrary:n,position:"relative",flex:!0,"data-testid":"chartContentWrapper",height:"100%",overflow:"hidden",navigation:a},e))}));t.Container=x;var j=function(e){var t=e.uiName,n=(0,u.useHovered)({isOut:function(e){return!e||!e.closest("[data-toolbox]")}}),a=n[0],o=n[1],m=(0,i.useInitialLoading)(),v=(0,i.useEmpty)(),g=(0,i.useAttributeValue)("hasToolbox"),h=(0,i.useAttributeValue)("processing");return r.default.createElement(x,{ref:a},!m&&r.default.createElement(l.default,null),!m&&r.default.createElement(d.default,{uiName:t}),m&&r.default.createElement(f.default,null),g&&o&&!v&&r.default.createElement(s.default,null),h&&r.default.createElement(p.Processing,null),r.default.createElement(c.default,{uiName:t}))};t.default=j},38566:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=g(n(67294)),a=m(n(32855)),o=m(n(47817)),i=m(n(11307)),u=m(n(7775)),l=n(91970),c=n(90833),s=m(n(30871)),f=m(n(35211)),d=g(n(3701)),p=n(54576);function m(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b={as:function(e){return r.default.createElement(d.default,h({svg:u.default},e))},size:"16px"},y=function(e){var t=e.item,n=t.value,a=t.label,o=e.value,u=e.onItemClick;return r.default.createElement(l.ItemContainer,{"data-testid":"chartDimensionFilter-"+n},r.default.createElement(i.default,{label:r.default.createElement(c.TextSmall,{"data-testid":"chartDimensionFilter-label"},a),checked:n===o,onChange:function(e){return u(e.target.value)},value:n,"data-testid":"chartDimensionFilter-input",name:"dimensionsSort",iconProps:b}))},w={default:f.default,nameAsc:s.default,nameDesc:f.default,valueAsc:s.default,valueDesc:f.default,anomalyAsc:s.default,anomalyDesc:f.default},O=function(e){var t=(0,p.useChart)(),n=(0,r.useState)(t.getAttribute("dimensionsSort")),i=n[0],u=n[1];(0,r.useEffect)((function(){return t.onAttributeChange("dimensionsSort",u)}),[t]);var l=function(e){return(0,r.useMemo)((function(){return[{value:"default",label:"Default","data-track":e.track("default")},{value:"nameAsc",label:"Sort by name A\u2192Z","data-track":e.track("nameAsc")},{value:"nameDesc",label:"Sort by name Z\u2192A","data-track":e.track("nameDesc")},{value:"valueAsc",label:"Sort by value Min\u2192Max","data-track":e.track("valueAsc")},{value:"valueDesc",label:"Sort by value Max\u2192Min","data-track":e.track("valueDesc")},{value:"anomalyAsc",label:"Sort by anomaly Min\u2192Max","data-track":e.track("anomalyAsc")},{value:"anomalyDesc",label:"Sort by anomaly Max\u2192Min","data-track":e.track("anomalyDesc")}]}),[e])}(t);return r.default.createElement(a.default,h({padding:[0,4,3],"data-testid":"chartDimensionSort"},e),r.default.createElement(o.default,{value:i,items:l,dropProps:{align:{bottom:"top",left:"left"},"data-toolbox":!0},dropdownProps:{width:"200px",padding:[2,0]},Item:y,onChange:function(e){return t.updateAttribute("dimensionsSort",e)}},r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:w[i],size:"16px"}),"data-testid":"chartDimensionSort-toggle",title:"Sort dimensions by name or value",small:!0})))};t.default=O},12460:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.ColorBar=t.Color=t.BaseColorBar=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=d(n(32855)),i=n(54576),u=n(93501),l=["bg"],c=["value","min","max","valueKey","bg","styleDimension"],s=["id","valueKey"],f=["id"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var b=(0,a.default)(o.default).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({width:"4px",round:!0,"data-testid":"chartDimensions-color",flex:!1,background:e.bg},h(e,l))})).withConfig({displayName:"color__Color",componentId:"sc-1ooxdoy-0"})(["pointer-events:none;"]);t.Color=b;var y=function(e){var t=e.value,n=e.min,a=e.max,o=e.valueKey,i=e.bg,l=e.styleDimension,s=void 0===l?"width":l,f=h(e,c),d=(0,r.useRef)();(0,r.useLayoutEffect)((function(){if(d.current){requestAnimationFrame((function(){return d.current&&(d.current.style[s]=t?100*(Math.abs(t)-n)/(a-n)+"%":0)}))}}),[t,o,n,a]);var p=(0,u.useIsHeatmap)(),v=(0,u.useGetColor)(.4);return i?r.default.createElement(b,m({ref:d,width:{min:1},bg:i,sx:{background:p?v(t):void 0}},f)):null};t.BaseColorBar=y;t.ColorBar=function(e){var t=e.id,n=e.valueKey,a=h(e,s),o=(0,i.useChart)(),u="arp"===n?"anomalyTextLite":o.selectDimensionColor(t),l="arp"===n?0:o.getAttribute("min"),c="arp"===n?100:o.getAttribute("max"),f=Math.abs(l),d=Math.abs(c),p=c>0?l<0?0:l:d,v=(0,i.useLatestValue)(t,{valueKey:n})||0;return r.default.createElement(y,m({value:v,min:p,max:d>f?d:f,valueKey:n,bg:u},a))};var w=function(e){var t=e.id,n=h(e,f),a=(0,i.useChart)().selectDimensionColor(t);return a?r.default.createElement(b,m({bg:a},n)):null};t.default=w},43946:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Name=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(57509),i=n(54576),u=(r=n(39434))&&r.__esModule?r:{default:r},l=["children","maxLength"],c=["id"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function d(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var p=(0,a.memo)((0,a.forwardRef)((function(e,t){var n=e.children,r=e.maxLength,i=void 0===r?32:r,c=d(e,l);return a.default.createElement(u.default,f({text:n,maxLength:i,Component:o.TextMicro,color:"textDescription",whiteSpace:"nowrap",ref:t,"data-testid":"chartDimensions-name"},c))})));t.Name=p;var m=function(e){var t=e.id,n=d(e,c),r=(0,i.useChart)().getDimensionName(t);return a.default.createElement(p,n,r)};t.default=m},9033:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Value=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(90833),o=n(54576),i=["visible"];function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){return r.default.createElement(a.TextMicro,l({color:"textDescription",whiteSpace:"nowrap",truncate:!0,"data-testid":"chartDimensions-units"},e))};t.Value=c;var s=function(e){var t=e.visible,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i),a=(0,o.useUnitSign)();return t?r.default.createElement(c,n,a):null},f=(0,r.memo)(s);t.default=f},58358:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Value=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(57509),o=n(54576),i=["id","visible","valueKey","period","objKey","Component"];function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=(0,r.forwardRef)((function(e,t){return r.default.createElement(a.TextMicro,l({color:"textDescription","data-testid":"chartDimensions-value"},e,{ref:t}))}));t.Value=c;var s=(0,r.forwardRef)((function(e,t){var n=e.id,a=e.visible,u=e.valueKey,s=e.period,f=void 0===s?"latest":s,d=e.objKey,p=e.Component,m=void 0===p?c:p,v=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i),g=(0,o.useConvertedValue)(n,f,{valueKey:u,objKey:d,allowNull:!0});return a?r.default.createElement(m,l({},v,{ref:t}),g):null}));t.default=s},13589:function(e,t){"use strict";t.__esModule=!0,t.tabs=t.actions=void 0;t.actions={values:"values",drillDown:"drillDown",compare:"compare",correlate:"correlate"};t.tabs={window:"window",selectedArea:"selectedArea"}},25830:function(e,t,n){"use strict";t.__esModule=!0,t.valueColumn=t.minColumn=t.maxColumn=t.labelColumn=t.avgColumn=t.anomalyColumn=void 0;var r=g(n(67294)),a=n(57509),o=g(n(60677)),i=v(n(12460)),u=g(n(43946)),l=g(n(9033)),c=v(n(58358)),s=n(54576),f=g(n(88811)),d=n(19151),p=["children","fractionDigits"];function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(e){return e&&e.__esModule?e:{default:e}}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b=(0,o.default)(i.ColorBar).attrs({position:"absolute",top:1,left:2,backgroundOpacity:.4,round:.5}).withConfig({displayName:"columns__ColorBackground",componentId:"sc-dglxe7-0"})([""]),y={ANOMALY_RATE:"arp",default:"value"},w={dimension:"dimensions",node:"nodes",instance:"instances",label:"labels",value:"values",default:"values"},O=[];t.labelColumn=function(e){return{id:"label",header:function(){return r.default.createElement(a.TextSmall,{strong:!0},"Name")},size:300,minSize:60,cell:function(t){var n=t.row,o=n.original,l=n.depth,c=void 0===l?0:l,p=n.getCanExpand,m=n.getToggleExpandedHandler,v=n.getIsExpanded,g=((0,s.useAttributeValue)("hoverX")||O)[1],h=d.rowFlavours[g]||d.rowFlavours.default,x=(0,s.useVisibleDimensionId)(o);(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(a.Flex,{justifyContent:"between",alignItems:"center",padding:[0,0,0,3*c],opacity:x?null:"weak"},r.default.createElement(a.Flex,{alignItems:"center",gap:1,position:"relative",width:"100%"},x&&r.default.createElement(b,{id:o,valueKey:y[h]||y.default,height:"18px"},r.default.createElement(i.default,{id:o})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:o})),p()&&r.default.createElement(f.default,{label:w[g.original.value]||w[e]||w.default,onClick:function(e){m()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},iconRotate:v()?2:null,textProps:{fontSize:"10px",color:"textLite"}}))}}};var x=function(e){var t=e.children,n=e.fractionDigits,o=void 0===n?0:n,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,p),u=t.toString().split("."),l=u[0],s=u[1];return r.default.createElement(a.Flex,{alignItems:"center",justifyContent:"start"},r.default.createElement(c.Value,h({},i,{flex:!1,basis:3*1.6,textAlign:"right"}),l),"undefined"!==typeof s&&r.default.createElement(c.Value,i,"."),r.default.createElement(c.Value,h({as:a.Flex,flex:!1,width:1.6*o},i,{textAlign:"left"}),s))};t.valueColumn=function(){return{id:"value",header:r.default.createElement(a.TextMicro,null,"Value ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var t=e.row,n=t.original,a=(t.depth,t.getCanExpand,t.getToggleExpandedHandler,t.getIsExpanded,(0,s.useVisibleDimensionId)(n)),o=(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(c.default,{period:"latest",id:n,visible:a,Component:x,fractionDigits:o})},sortingFn:"basic"}};t.anomalyColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-arp":"arp",header:r.default.createElement(a.TextMicro,null,"AR %"),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"arp",Component:x,fractionDigits:2,color:"anomalyTextFocus"})},sortingFn:"basic"}};t.minColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-min":"min",header:r.default.createElement(a.TextMicro,null,"Min ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"min",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.avgColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-avg":"avg",header:r.default.createElement(a.TextMicro,null,"Avg ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"avg",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.maxColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-max":"max",header:r.default.createElement(a.TextMicro,null,"Max ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"max",Component:x,fractionDigits:2})},sortingFn:"basic"}}},45275:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(57509),i=n(60773),u=n(41145),l=(r=n(1981))&&r.__esModule?r:{default:r},c=n(25830);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=function(e,t,n){return{cellStyles:d(d(d({height:"40px"},(null==e||null==e.getIsExpanded?void 0:e.getIsExpanded())&&{background:"columnHighlight",backgroundOpacity:.7}),e.depth>0&&{backgroundOpacity:.4}),e.depth>0&&0===n&&{border:{side:"left",size:"4px"}}),headStyles:{height:"32px"},styles:{verticalAlign:"middle"},bulkActionsStyles:{padding:[2,0]},searchContainerStyles:{width:"100%",padding:[0,2,0,2]},searchStyles:{inputContainerStyles:{height:"20px",border:{side:"all",size:"1px",color:"inputBg"},background:"inputBg",round:!0,padding:[1,2],_hover:{border:{side:"all",size:"1px",color:"borderSecondary"}}}}}},v=function(){var e=(0,u.useDimensionIds)(),t=function(e,t){void 0===t&&(t={});var n=(0,u.useAttributeValue)("hoverX");return(0,a.useMemo)((function(){var r=d({period:e},t),u=d(d({},r),{},{objKey:"dbDimensions",unitsKey:"dbUnits"});return[{id:"Dimensions",header:function(){return a.default.createElement(o.TextSmall,null,"Dimension (",n?"hovering":"latest"," value)")},columns:[(0,c.labelColumn)(),(0,c.valueColumn)()]},{id:"visible",header:function(){return a.default.createElement(o.TextSmall,null,(0,i.uppercase)(e)," points")},columns:[(0,c.minColumn)(r),(0,c.avgColumn)(r),(0,c.maxColumn)(r),(0,c.anomalyColumn)(r)]},{id:"aggregated",header:function(){return a.default.createElement(o.TextSmall,null,"Aggregated points")},columns:[(0,c.minColumn)(u),(0,c.avgColumn)(u),(0,c.maxColumn)(u),(0,c.anomalyColumn)(u)]}]}),[e,!!n])}((0,u.useAttributeValue)("weightsTab")),n=(0,u.useChart)();return(0,a.useMemo)((function(){return n.makeChartUI("custom","d3pie")}),[]),a.default.createElement(o.Flex,{gap:2},a.default.createElement(o.NetdataTable,{enableSorting:!0,dataColumns:t,data:e,meta:m,width:"100%"}),a.default.createElement(l.default,{chart:n,uiName:"custom"}))};t.default=v},41865:function(e,t,n){"use strict";t.__esModule=!0,t.valueColumn=t.minColumn=t.maxColumn=t.labelColumn=t.avgColumn=t.anomalyColumn=void 0;var r=g(n(67294)),a=n(57509),o=g(n(60677)),i=v(n(12460)),u=g(n(43946)),l=g(n(9033)),c=v(n(58358)),s=n(54576),f=g(n(88811)),d=n(19151),p=["children","fractionDigits"];function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(e){return e&&e.__esModule?e:{default:e}}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b=(0,o.default)(i.ColorBar).attrs({position:"absolute",top:1,left:2,backgroundOpacity:.4,round:.5}).withConfig({displayName:"columns__ColorBackground",componentId:"sc-19w2dpa-0"})([""]),y={ANOMALY_RATE:"arp",default:"value"},w={dimension:"dimensions",node:"nodes",instance:"instances",label:"labels",value:"values",default:"values"},O=[];t.labelColumn=function(e){return{id:"label",header:function(){return r.default.createElement(a.TextSmall,{strong:!0},"Name")},size:300,minSize:60,cell:function(t){var n=t.row,o=n.original,l=n.depth,c=void 0===l?0:l,p=n.getCanExpand,m=n.getToggleExpandedHandler,v=n.getIsExpanded,g=((0,s.useAttributeValue)("hoverX")||O)[1],h=d.rowFlavours[g]||d.rowFlavours.default,x=(0,s.useVisibleDimensionId)(o);(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(a.Flex,{justifyContent:"between",alignItems:"center",padding:[0,0,0,3*c],opacity:x?null:"weak"},r.default.createElement(a.Flex,{alignItems:"center",gap:1,position:"relative",width:"100%"},x&&r.default.createElement(b,{id:o,valueKey:y[h]||y.default,height:"18px"},r.default.createElement(i.default,{id:o})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:o})),p()&&r.default.createElement(f.default,{label:w[g.original.value]||w[e]||w.default,onClick:function(e){m()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},iconRotate:v()?2:null,textProps:{fontSize:"10px",color:"textLite"}}))}}};var x=function(e){var t=e.children,n=e.fractionDigits,o=void 0===n?0:n,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,p),u=t.toString().split("."),l=u[0],s=u[1];return r.default.createElement(a.Flex,{alignItems:"center",justifyContent:"start"},r.default.createElement(c.Value,h({},i,{flex:!1,basis:3*1.6,textAlign:"right"}),l),"undefined"!==typeof s&&r.default.createElement(c.Value,i,"."),r.default.createElement(c.Value,h({as:a.Flex,flex:!1,width:1.6*o},i,{textAlign:"left"}),s))};t.valueColumn=function(){return{id:"value",header:r.default.createElement(a.TextMicro,null,"Value ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var t=e.row,n=t.original,a=(t.depth,t.getCanExpand,t.getToggleExpandedHandler,t.getIsExpanded,(0,s.useVisibleDimensionId)(n)),o=(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(c.default,{period:"latest",id:n,visible:a,Component:x,fractionDigits:o})},sortingFn:"basic"}};t.anomalyColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-arp":"arp",header:r.default.createElement(a.TextMicro,null,"AR %"),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"arp",Component:x,fractionDigits:2,color:"anomalyTextFocus"})},sortingFn:"basic"}};t.minColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-min":"min",header:r.default.createElement(a.TextMicro,null,"Min ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"min",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.avgColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-avg":"avg",header:r.default.createElement(a.TextMicro,null,"Avg ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"avg",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.maxColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-max":"max",header:r.default.createElement(a.TextMicro,null,"Max ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"max",Component:x,fractionDigits:2})},sortingFn:"basic"}}},65190:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(57509),o=n(60773),i=n(41145),u=n(41865);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t,n){return{cellStyles:s(s(s({height:"40px"},(null==e||null==e.getIsExpanded?void 0:e.getIsExpanded())&&{background:"columnHighlight",backgroundOpacity:.7}),e.depth>0&&{backgroundOpacity:.4}),e.depth>0&&0===n&&{border:{side:"left",size:"4px"}}),headStyles:{height:"32px"},styles:{verticalAlign:"middle"},bulkActionsStyles:{padding:[2,0]},searchContainerStyles:{width:"100%",padding:[0,2,0,2]},searchStyles:{inputContainerStyles:{height:"20px",border:{side:"all",size:"1px",color:"inputBg"},background:"inputBg",round:!0,padding:[1,2],_hover:{border:{side:"all",size:"1px",color:"borderSecondary"}}}}}},p=function(){var e=(0,i.useDimensionIds)(),t=function(e,t){void 0===t&&(t={});var n=(0,i.useAttributeValue)("hoverX");return(0,r.useMemo)((function(){var i=s({period:e},t),l=s(s({},i),{},{objKey:"dbDimensions",unitsKey:"dbUnits"});return[{id:"Dimensions",header:function(){return r.default.createElement(a.TextSmall,null,"Dimension (",n?"hovering":"latest"," value)")},columns:[(0,u.labelColumn)(),(0,u.valueColumn)()]},{id:"visible",header:function(){return r.default.createElement(a.TextSmall,null,(0,o.uppercase)(e)," points")},columns:[(0,u.minColumn)(i),(0,u.avgColumn)(i),(0,u.maxColumn)(i),(0,u.anomalyColumn)(i)]},{id:"aggregated",header:function(){return r.default.createElement(a.TextSmall,null,"Aggregated points")},columns:[(0,u.minColumn)(l),(0,u.avgColumn)(l),(0,u.maxColumn)(l),(0,u.anomalyColumn)(l)]}]}),[e,!!n])}((0,i.useAttributeValue)("weightsTab"));return r.default.createElement(a.Flex,null,r.default.createElement(a.NetdataTable,{enableSorting:!0,dataColumns:t,data:e,meta:d,width:"100%"}))};t.default=p},30483:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=(l(n(60677)),n(57509)),o=n(54576),i=n(13589),u=["onClick"];function l(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=function(e){e.onClick;var t=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),n=(0,o.useChart)(),l=(0,o.useAttributeValue)("weightsAction"),s=(0,o.useAttributeValue)("weightsTab");return r.default.createElement(a.Flex,c({justifyContent:"between"},t),r.default.createElement(a.Flex,{gap:6},r.default.createElement(a.Flex,{gap:1},r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.values!==l,icon:"line_chart",onClick:function(){return n.updateAttribute("weightsAction",i.actions.values)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.drillDown!==l,icon:"weights_drill_down",onClick:function(){return n.updateAttribute("weightsAction",i.actions.drillDown)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.compare!==l,icon:"weights_compare",onClick:function(){return n.updateAttribute("weightsAction",i.actions.compare)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.correlate!==l,icon:"correlation_inv",onClick:function(){return n.updateAttribute("weightsAction",i.actions.correlate)}})),r.default.createElement(a.Flex,{gap:1},r.default.createElement(a.Button,{tiny:!0,neutral:i.tabs.window!==s,label:"Window",onClick:function(){return n.updateAttribute("weightsTab",i.tabs.window)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.tabs.selectedArea!==s,label:"Selected area",disabled:!0,onClick:function(){return n.updateAttribute("weightsTab",i.tabs.selectedArea)}}))))};t.default=s},50657:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(57509),i=n(54576),u=s(n(30483)),l=s(n(45275)),c=(s(n(65190)),n(13589));function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}var d=((r={})[c.actions.values]=l.default,r[c.actions.drillDown]=l.default,r[c.actions.compare]=l.default,r[c.actions.correlate]=l.default,r),p=function(){var e=(0,i.useAttributeValue)("expandedHeight"),t=(0,i.useAttributeValue)("weightsAction"),n=(0,a.useMemo)((function(){return d[t]||d.values}),[t]);return a.default.createElement(o.Flex,{height:e+"px",column:!0,gap:2,padding:[4]},a.default.createElement(u.default,null),a.default.createElement(n,null))};t.default=p},58768:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(60677)),o=n(57509),i=c(n(51289)),u=n(54576),l=c(n(3701));function c(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({"data-testid":"chartExpander",alignItems:"center",justifyContent:"center",gap:1},e)})).withConfig({displayName:"expander__Container",componentId:"sc-19kn93v-0"})(["&:hover > *{color:",";fill:",";}"],(0,o.getColor)("text"),(0,o.getColor)("text")),p=function(){var e=(0,u.useChart)(),t=(0,u.useAttributeValue)("expanded");return r.default.createElement(d,{cursor:"pointer",onClick:function(){return e.updateAttribute("expanded",!t)},alignSelf:"center"},r.default.createElement(l.default,{svg:i.default,color:"textLite",width:"7.5px",height:"5px",rotate:t?2:0}),r.default.createElement(o.TextSmall,{color:"textLite"},t?"Collapse":"Expand"),r.default.createElement(l.default,{svg:i.default,color:"textLite",width:"7.5px",height:"5px",rotate:t?2:0}))};t.default=p},13289:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=m(n(67294)),a=n(57509),o=m(n(817)),i=m(n(39757)),u=m(n(38566)),l=m(n(51081)),c=n(41145),s=m(n(78122)),f=m(n(50657)),d=m(n(58768)),p=n(93501);function m(e){return e&&e.__esModule?e:{default:e}}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v.apply(this,arguments)}var g=function(e){return r.default.createElement(a.Flex,v({border:{side:"top",color:"borderSecondary"},"data-testid":"chartLegend",column:!0},e))};t.Container=g;var h=function(){return(0,c.useAttributeValue)("enabledHeightResize")?r.default.createElement(a.Box,{position:"absolute",right:0,bottom:"-4px"},r.default.createElement(l.default,null)):null},b=function(){var e=(0,c.useAttributeValue)("showingInfo"),t=(0,c.useAttributeValue)("expanded"),n=(0,c.useAttributeValue)("expandable"),l=(0,p.useIsHeatmap)();return r.default.createElement(g,null,r.default.createElement(s.default,null),!e&&r.default.createElement(r.default.Fragment,null,l&&r.default.createElement(i.default,null),r.default.createElement(a.Flex,{alignItems:"center"},r.default.createElement(u.default,null),r.default.createElement(o.default,null)),t&&r.default.createElement(f.default,null)),n?r.default.createElement(a.Flex,{flex:!0,position:"relative",alignItems:"center",justifyContent:"center",border:{side:"top",color:"borderSecondary"}},r.default.createElement(d.default,null),r.default.createElement(h,null)):r.default.createElement(h,null))};t.default=b},65855:function(e,t,n){"use strict";t.ZP=t.x1=void 0;var r=h(n(67294)),a=v(n(11557)),o=v(n(36657)),i=v(n(70486)),u=n(54576),l=v(n(79779)),c=v(n(1496)),s=h(n(44473)),f=v(n(18947)),d=v(n(36864)),p=v(n(13289)),m=["hasHeader","hasFooter","hasFilters","height","uiName"];function v(e){return e&&e.__esModule?e:{default:e}}function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}var y=(0,r.forwardRef)((function(e,t){var n=e.hasHeader,i=void 0===n||n,v=e.hasFooter,g=void 0===v||v,h=e.hasFilters,y=void 0===h||h,w=e.height,O=e.uiName,x=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,m),j=(0,u.useChart)(),k=(0,u.useAttributeValue)("showingInfo"),E=(0,u.useAttributeValue)("sparkline"),P=(0,o.default)({onHover:j.focus,onBlur:j.blur,isOut:function(e){return!e||!e.closest("[data-toolbox]")&&!e.closest("[data-testid=chart]")}},[j]),S=(0,a.default)((function(e){P.current=e,t.current=e}))[1];return r.default.createElement(d.default,b({ref:S},E&&{border:!1},x,{height:w}),i&&r.default.createElement(l.default,null),y&&r.default.createElement(f.default,null),r.default.createElement(s.ContentWrapper,null,k?r.default.createElement(c.default,null):r.default.createElement(s.default,{uiName:O})),g&&r.default.createElement(p.default,null))}));t.x1=y;var w=(0,i.default)(y);t.ZP=w},78122:function(e,t,n){"use strict";t.__esModule=!0,t.getDateDiff=t.default=void 0;var r=u(n(67294)),a=u(n(32855)),o=n(54576),i=n(90833);function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e){var t=e.timestamp,n=(0,o.useFormatTime)(t),a=(0,o.useFormatDate)(t);return r.default.createElement(i.TextNano,{color:"textDescription","data-testid":"chartIndicator-dateTime-latest-value"},a," \u2022 ",n)},p=function(){var e,t=(0,o.useChart)(),n=((0,o.useAttributeValue)("hoverX")||[])[0],u=(0,o.usePayload)().data;if(!u.length)return null;var l=null==(e=u[n?t.getClosestRow(n):u.length-1])?void 0:e[0];return r.default.createElement(a.default,{gap:1},r.default.createElement(i.TextNano,{color:"textLite"},n?"Hovering":"Latest",":"),!!l&&r.default.createElement(d,{timestamp:l}))},m=86400,v=3600,g=function(e,t){var n=a=t-e,r=Math.floor(n/m),a=n-r*m,o=Math.floor(a/v);a-=o*v;var i=Math.floor(a/60);return[{value:r,unit:"d",check:function(){return n>=m&&!!r}},{value:o,unit:"h",check:function(){return n>=v&&!!o}},{value:i,unit:"m",check:function(){return!!i}},{value:a-=60*i,unit:"s",check:function(){return n<v&&!!a}}].reduce((function(e,t){var n=function(e){var t,n=e.value,r=e.unit,a=e.check,o=e.hasPrev;if(null!=a&&a())return""+(o?(t=n)>9?t:"0"+t:n)+r}(s(s({},t),{},{hasPrev:!!e[e.length-1]}));return n&&e.push(n),e}),[])};t.getDateDiff=g;var h=function(e){var t=e.date,n=e.after,u=e.before,l=(0,o.useFormatTime)(1e3*n),c=(0,o.useFormatTime)(1e3*u),s=g(n,u);return r.default.createElement(a.default,{gap:1},r.default.createElement(i.TextNano,{color:"textDescription"},t," \u2022"),r.default.createElement(i.TextNano,{color:"textLite"},l," \u2192 ",c),r.default.createElement(i.TextNano,{color:"textDescription"},"\u2022 ",s))},b=function(e){var t=e.afterDate,n=e.beforeDate,u=e.after,l=e.before,c=(0,o.useFormatTime)(1e3*u),s=(0,o.useFormatTime)(1e3*l),f=g(u,l);return r.default.createElement(a.default,{gap:1},r.default.createElement(i.TextNano,{color:"textDescription"},t," \u2022"),r.default.createElement(i.TextNano,{color:"textLite"},c," \u2192"),r.default.createElement(i.TextNano,{color:"textDescription"},n," \u2022"),r.default.createElement(i.TextNano,{color:"textLite"},s),r.default.createElement(i.TextNano,{color:"textDescription"},"\u2022 ",f))},y=function(e){var t=e.after,n=e.before,a=(0,o.useFormatDate)(1e3*n),i=(0,o.useFormatDate)(1e3*t);return a===i?r.default.createElement(h,{date:i,after:t,before:n}):r.default.createElement(b,{afterDate:i,beforeDate:a,after:t,before:n})},w=function(e){var t,n=(0,o.useChart)(),u=(0,o.useAttributeValue)("overlays").highlight,c=null==u?void 0:u.range,s=null!=(t=null==u?void 0:u.moveX)?t:{},f=s.after,d=s.before;return r.default.createElement(a.default,l({padding:[1],gap:1,justifyContent:"between",flex:!0},e),c?r.default.createElement(a.default,{onClick:function(){d&&f&&n.moveX(f,d)},cursor:"pointer",gap:1,padding:[0,11,0]},r.default.createElement(i.TextNano,{color:"textLite"},"Highlight:"),r.default.createElement(y,{after:c[0],before:c[1]})):r.default.createElement("div",null),r.default.createElement(p,null))};t.default=w},3171:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.SkeletonDimension=t.EmptyDimension=void 0;var r,a=v(n(67294)),o=n(60677),i=n(57509),u=v(n(12460)),l=v(n(43946)),c=v(n(58358)),s=v(n(81743)),f=(r=n(9033))&&r.__esModule?r:{default:r},d=n(54576),p=n(93501);function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}var h=(0,a.forwardRef)((function(e,t){return a.default.createElement(i.Flex,g({ref:t,width:{min:22,max:50},flex:!1,gap:1,"data-testid":"chartLegendDimension"},e))}));t.SkeletonDimension=function(){var e=(0,o.useTheme)();return a.default.createElement(h,null,a.default.createElement(u.Color,{bg:(0,i.getColor)("placeholder")({theme:e})}),a.default.createElement(i.Flex,{flex:!0,gap:1,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(i.Flex,{height:"10px",width:"76px",background:"borderSecondary",round:!0}),a.default.createElement(i.Flex,{height:"10px",width:"34px",background:"borderSecondary",round:!0,"data-testid":"chartLegendDimension-valueContainer"})))};t.EmptyDimension=function(){var e=(0,o.useTheme)();return a.default.createElement(h,null,a.default.createElement(u.Color,{bg:(0,i.getColor)("placeholder")({theme:e})}),a.default.createElement(i.Flex,{flex:!0,gap:1,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(l.Name,null,"No data"),a.default.createElement(c.Value,null,"-")))};var b=function(e){var t=e.id,n=(0,d.useLatestValue)(t,{valueKey:"arp"});return a.default.createElement(i.ProgressBar,{height:.5,color:"anomalyText",width:Math.abs(n)+"%"})},y=function(e){return a.default.createElement(i.Flex,g({},s.tooltipStyleProps,e,{column:!0,gap:1}))},w=function(e){var t=e.id,n=e.name,r=(0,d.useUnits)(),o=(0,d.useLatestValue)(t);return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.TextSmall,{color:"bright",strong:!0,wordBreak:"break-word"},n),a.default.createElement(i.TextSmall,{color:"bright",whiteSpace:"nowrap"},o," ",r))},O=(0,a.forwardRef)((function(e,t){var n=e.id,r=(0,d.useVisibleDimensionId)(n),o=(0,d.useChart)(),m=o.getDimensionName(n),v=(0,p.useIsHeatmap)();return a.default.createElement(h,{ref:t,opacity:r?null:"weak",cursor:"pointer",onClick:function(e){var t=e.shiftKey||e.ctrlKey||e.metaKey;o.toggleDimensionId(n,{merge:t})},"data-track":o.track("dimension-"+m)},!v&&a.default.createElement(u.default,{id:n}),a.default.createElement(s.default,{Content:y,content:r?a.default.createElement(w,{id:n,name:m}):null},a.default.createElement(i.Flex,{flex:!0,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(l.default,{id:n,maxLength:32,noTooltip:!0}),a.default.createElement(b,{id:n}),a.default.createElement(i.Flex,{gap:1,alignItems:"end","data-testid":"chartLegendDimension-valueContainer",flex:!0},a.default.createElement(c.default,{id:n,strong:!0,visible:r,Component:i.TextBig}),a.default.createElement(f.default,{visible:r})))))}));t.default=O},39757:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(60677)),o=l(n(32855)),i=n(90833),u=n(54576);function l(e){return e&&e.__esModule?e:{default:e}}var c=(0,a.default)(o.default).attrs({width:"320px",height:"12px",round:!0}).withConfig({displayName:"heatmapColors__LinearColorScaleBar",componentId:"sc-13fexd8-0"})(["background:linear-gradient( to right,rgb(62,73,137),rgb(49,104,142),rgb(38,130,142),rgb(31,158,137),rgb(53,183,121),rgb(110,206,88),rgb(181,222,43),rgb(253,231,37) );"]),s=function(){var e=(0,u.useChart)(),t=(0,u.useAttributeValue)("max"),n=(0,u.useUnitSign)();return(0,u.useAttributeValue)("theme"),r.default.createElement(o.default,{"data-testid":"heatmap-legend",gap:2,alignItems:"center",padding:[2,11]},r.default.createElement(i.TextNano,null,e.getConvertedValue(0)," ",n),r.default.createElement(c,null),r.default.createElement(i.TextNano,null,e.getConvertedValue(t)," ",n))};t.default=s},817:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=v(n(67294)),a=p(n(60677)),o=n(42189),i=p(n(32855)),u=p(n(67679)),l=p(n(36179)),c=p(n(84436)),s=n(54576),f=v(n(3171)),d=p(n(3701));function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}function h(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var y=(0,a.default)(i.default).attrs({gap:1,padding:[0,0,2],alignItems:"center",flex:!0,basis:"40px","data-testid":"chartLegend"}).withConfig({displayName:"legend__Container",componentId:"sc-czwham-0"})(["overflow-x:auto;overflow-x:overlay;height:45px;::-webkit-scrollbar{height:6px;}"]),w=Array.from(Array(5)),O=function(){return r.default.createElement(r.Fragment,null,w.map((function(e,t){return r.default.createElement(f.SkeletonDimension,{key:t})})))},x=(0,r.memo)((function(e){var t=e.setRef,n=(0,s.useDimensionIds)();return n?r.default.createElement(r.Fragment,null,n.map((function(e){return r.default.createElement(f.default,{ref:t,key:e,id:e})}))):null})),j=function(e){var t=(0,s.useDimensionIds)(),n=(0,s.useChart)(),a=(0,s.useInitialLoading)(),p=(0,s.useEmpty)(),m=(0,s.useAttributeValue)("active"),v=(0,r.useRef)(null),b=(0,r.useRef)([]),w=(0,c.default)(v,b,[],!0),j=w[0],k=w[1],E=w[2];(0,r.useEffect)((function(){v.current&&m&&v.current.scrollTo({left:n.getAttribute("legendScroll")})}),[v.current,m]),(0,r.useEffect)((function(){var e=function(){var e,t=((e=v.current)?{x:e.scrollLeft}:{x:0}).x;n.updateAttribute("legendScroll",t),E()};e();var t=(0,o.debounce)(300,e);if(t(),window.addEventListener("resize",t),v.current)return v.current.addEventListener("scroll",e),function(){window.removeEventListener("resize",t),v.current&&v.current.removeEventListener("scroll",e)}}),[v.current]);var P=(0,r.useCallback)((function(e){e&&(b.current.includes(e)||(b.current=[].concat(h(b.current),[e])),t.length<b.current.length&&(b.current=b.current.filter((function(t){return t.getAttribute("id")===e.getAttribute("id")}))))}),[t.length]);return r.default.createElement(r.default.Fragment,null,j&&r.default.createElement(i.default,{"data-testid":"filterTray-arrowLeft",cursor:"pointer",onClick:function(e){e.preventDefault();var t=v.current;t.scrollTo({left:t.scrollLeft-100,behavior:"smooth"})},padding:[2]},r.default.createElement(d.default,{svg:u.default,color:"key",size:"8px"})),r.default.createElement(y,g({ref:v},e,{"data-track":n.track("legend")}),!a&&!p&&r.default.createElement(x,{setRef:P}),a&&r.default.createElement(O,null),!a&&p&&r.default.createElement(f.EmptyDimension,null)),k&&r.default.createElement(i.default,{"data-testid":"filterTray-arrowRight",cursor:"pointer",onClick:function(e){e.preventDefault();var t=v.current;t.scrollTo({left:t.scrollLeft+100,behavior:"smooth"})},padding:[2]},r.default.createElement(d.default,{svg:l.default,color:"key",size:"8px"})))};t.default=j},13247:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=n(54576),o=l(n(213)),i=n(90833);function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}var c={critical:"error",clear:"success"},s=function(e){var t=e.id,n=(0,a.useAttributeValue)("overlays")[t],u=n.status,l=n.value,s=c[u]||u,f=(0,o.getColors)(s).color;return r.default.createElement(o.default,{type:s,noBorder:!0},r.default.createElement(i.TextSmall,{color:f},"Triggered value:"," ",r.default.createElement(i.TextSmall,{strong:!0,color:f},l)))},f=(0,r.memo)(s);t.default=f},55823:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=n(54576),o=l(n(213)),i=n(90833);function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}var c={critical:"error",clear:"success"},s=function(e){var t=e.id,n=(0,a.useAttributeValue)("overlays")[t],u=n.status,l=n.valueTriggered,s=c[u]||u,f=(0,o.getColors)(s).color;return r.default.createElement(o.default,{type:s,noBorder:!0},r.default.createElement(i.TextSmall,{color:f},"Triggered value:"," ",r.default.createElement(i.TextSmall,{strong:!0,color:f},l)))},f=(0,r.memo)(s);t.default=f},23708:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(67294)),a=s(n(60677)),o=n(90833),i=n(54576),u=s(n(39434)),l=s(n(81743)),c=["field","normalize"];function s(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=(0,a.default)(u.default).withConfig({displayName:"chartName__StyledShortener",componentId:"sc-q7d2de-0"})(["text-shadow:0 18px 28px rgba(9,30,66,0.15),0 0 1px rgba(9,30,66,0.31);pointer-events:none;"]),p=function(e){var t=e.field,n=e.normalize,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),u=(0,i.useAttributeValue)(t),s=(0,i.useChart)();return n&&(u=n(u,s.getAttributes())),u?r.default.createElement(l.default,{content:u},r.default.createElement(d,f({color:"key",text:u,Component:o.TextSmall},a))):null};t.default=p},59204:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.alignment=void 0;var r,a,o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),i=(r=n(60677))&&r.__esModule?r:{default:r},u=n(57509),l=n(54576),c=["id","align","right","fixed","children","uiName"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d={chartMiddle:"chartMiddle",elementMiddle:"elementMiddle",elementRight:"elementRight",elementLeft:"elementLeft",elementFull:"elementFull"};t.alignment=d;var p=((a={})[d.chartMiddle]=function(e){var t,n=e.from,r=e.chartWidth,a=e.element;return[60,Math.min(n-24,60+r/2+(null==(t=a.firstChild)?void 0:t.offsetWidth)/2)]},a[d.chartLeft]=function(e){var t,n=e.chartWidth;return[0,(null==(t=e.element.firstChild)?void 0:t.offsetWidth)-n]},a[d.elementMiddle]=function(e){var t,n=e.from;return[n,n+e.width/2+(null==(t=e.element.firstChild)?void 0:t.offsetWidth)/2]},a[d.elementRight]=function(e){var t=e.from;return[t,t+e.width]},a[d.elementLeft]=function(e){var t=e.from;return[t,t]},a),m=(0,i.default)(u.Flex).withConfig({displayName:"container__HorizontalContainer",componentId:"sc-n9fh2a-0"})(["position:absolute;",";",";",";",";",";",";overflow:hidden;"],(function(e){return e.noTransform?"":"transform: translateY(-50%)"}),(function(e){var t=e.top;return t&&"top: "+t+";"}),(function(e){var t=e.bottom;return t&&"bottom: "+t+";"}),(function(e){var t=e.left;return t&&"left: "+t+";"}),(function(e){var t=e.right;return t&&"right: "+t+";"}),(function(e){return e.noEvents&&"pointer-events: none;"})),v=function(e){var t=e.id,n=e.align,r=e.right,a=void 0===r?0:r,i=e.fixed,u=e.children,s=e.uiName,v=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),g=(0,o.useRef)(),h=(0,o.useState)(),b=h[0],y=h[1],w=(0,l.useChart)(),O=function(e){if(w&&w.getUI(s)&&e&&g.current){var t=function(e,t,n,r,a){void 0===e&&(e=d.elementMiddle);var o=n.from,i=n.width,u=t.getUI(a).getChartWidth();return(p[e]||p.elementMiddle)({from:o,width:i,chartWidth:u,element:r})}(n,w,e,g.current,s),r=t[1];g.current.style.right="calc(100% - "+(r+a)+"px)"}};return(0,o.useLayoutEffect)((function(){return!i&&w.getUI(s).on("overlayedAreaChanged:"+t,(function(e){O(e),y((function(t){return!!t!==!!e?e:t}))}))}),[]),(0,o.useLayoutEffect)((function(){return!i&&O(b)}),[b]),b||i?o.default.createElement(m,f({ref:g},v),u):null},g=(0,o.memo)(v);t.default=g},10253:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Period=void 0;var r=p(n(67294)),a=p(n(60677)),o=p(n(32855)),i=p(n(48196)),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(3701)),l=p(n(81743)),c=n(54576),s=n(78122),f=n(90833);function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e){return e&&e.__esModule?e:{default:e}}var m=(0,a.default)(u.Button).withConfig({displayName:"correlation__CorrelationButton",componentId:"sc-a0l0u6-0"})(["pointer-events:all;"]);t.Period=function(e){var t=e.id,n=(0,c.useAttributeValue)("overlays")[t].range,a=n[0],o=n[1],i=(0,s.getDateDiff)(a,o);return r.default.createElement(f.TextNano,{strong:!0},i)};var v=function(e){var t=e.id,n=(0,c.useAttributeValue)("overlays")[t].range,a=n[0],s=function(e){return e<15?"requires 15 secs minimum selection":""}(n[1]-a),f=(0,c.useChart)();return r.default.createElement(l.default,{content:s?"Metrics correlation: "+s:"Run metrics correlation"},r.default.createElement(o.default,null,r.default.createElement(m,{"data-track":f.track("metrics-correlation"),icon:r.default.createElement(u.default,{svg:i.default,size:"20px"}),onClick:function(){return f.sdk.trigger("correlation",f,n)},"data-testid":"highlight-correlations",disabled:!!s})))};t.default=v},9745:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Divider=void 0;var r=d(n(67294)),a=s(n(60677)),o=s(n(32855)),i=n(90833),u=n(90509),l=d(n(10253)),c=n(54576);function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}var m=(0,a.default)(o.default).attrs({justifyContent:"center",alignItems:"center",gap:2,height:"40px",alignSelf:"center",round:!0,width:{min:"70px"},padding:[1,2],border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"highlight__StyledHighlight",componentId:"sc-e18ttp-0"})(["background-color:","80;"],(0,u.getColor)("mainBackground")),v=(0,a.default)(o.default).withConfig({displayName:"highlight__Divider",componentId:"sc-e18ttp-1"})(["background:",";height:16px;width:1px;"],(0,u.getColor)("borderSecondary"));t.Divider=v;var g=(0,r.memo)((function(e){return r.default.createElement(o.default,{column:!0,gap:[.5]},r.default.createElement(i.TextNano,{strong:!0,textTransform:"uppercase",color:"textLite"},"Range"),r.default.createElement(l.Period,e))})),h=function(e){var t=e.id,n=e.correlationProps,a=(0,c.useAttributeValue)("hasCorrelation");return(0,c.useAttributeValue)("focused")?r.default.createElement(m,null,r.default.createElement(g,{id:t}),a?r.default.createElement(r.default.Fragment,null,r.default.createElement(v,null),r.default.createElement(l.default,p({id:t},n))):null):null},b=(0,r.memo)(h);t.default=b},35815:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(67148))&&r.__esModule?r:{default:r},u=["type"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=function(e){var t=e.uiName,n=(0,o.useAttributeValue)("overlays");return a.default.createElement(a.Fragment,null,Object.keys(n).map((function(e){var r=n[e],o=r.type,l=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(r,u),s=i.default[o];return a.default.createElement(s,c({key:e,id:e,uiName:t},l))})))},f=(0,a.memo)(s);t.default=f},51399:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(60677)),o=n(57509),i=n(54576),u=["dimensionId","textProps"];function l(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=(0,a.default)(o.Text).withConfig({displayName:"latestValue__StrokeLabel",componentId:"sc-1x8pqx7-0"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary")),f=(0,a.default)(o.Flex).withConfig({displayName:"latestValue__StyledFlex",componentId:"sc-1x8pqx7-1"})(["pointer-events:none;"]),d={color:"text",whiteSpace:"nowrap"},p=function(e){var t=e.dimensionId,n=e.textProps,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),o=(0,i.useUnitSign)(),l=(0,i.useLatestConvertedValue)(t);return l?r.default.createElement(f,c({column:!0},a),r.default.createElement(s,c({fontSize:"2.1em",lineHeight:"1.1em",strong:!0},d,n),l),r.default.createElement(s,c({fontSize:"1.1em",strong:!0},d,{color:"border"},n),o)):r.default.createElement(s,c({fontSize:"2.5em",strong:!0},d,n,a),"string"!==typeof l?"Loading...":"No data")};t.default=p},29270:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Processing=void 0;var r=c(n(67294)),a=c(n(60677)),o=c(n(32855)),i=n(90833),u=n(54576),l=["defaultValue","uiName"];function c(e){return e&&e.__esModule?e:{default:e}}var s=(0,a.default)(o.default).attrs({column:!0,round:!0,border:{side:"all",color:"borderSecondary"},gap:1,padding:[1,2],flex:!1}).withConfig({displayName:"proceeded__ProceededContainer",componentId:"sc-ac5spo-0"})(["direction:initial;"]),f=function(e){var t=e.defaultValue,n=e.uiName,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,l),o=(0,u.useChart)().getUI(n).getChartWidth(),c=(0,u.useChartError)();return o<240?null:c&&t?r.default.createElement(s,a,r.default.createElement(i.Text,{textAlign:"center",textTransform:"firstLetter"},c||t)):null},d=(0,a.default)(o.default).withConfig({displayName:"proceeded__CenterContainer",componentId:"sc-ac5spo-1"})(["z-index:60000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);"]);t.Processing=function(){return r.default.createElement(d,null,r.default.createElement(f,{defaultValue:"Processing"}))};var p=f;t.default=p},67148:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=w(n(67294)),a=w(n(60677)),o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(59204)),i=w(n(13247)),u=w(n(55823)),l=w(n(9745)),c=w(n(29270)),s=w(n(23708)),f=w(n(51399)),d=w(n(24018)),p=n(54576),m=["id"],v=["id"],g=["id"],h=["id","uiName"],b=["containerProps"];function y(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}function w(e){return e&&e.__esModule?e:{default:e}}function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},O.apply(this,arguments)}function x(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var j=(0,a.default)(d.default).withConfig({displayName:"types__NoEventsContainer",componentId:"sc-19vz950-0"})(["pointer-events:none;"]),k={alarm:function(e){var t=e.id,n=x(e,m);return r.default.createElement(o.default,O({id:t,top:"20px",margin:[0,2,0,0],align:o.alignment.elementLeft},n),r.default.createElement(i.default,{id:t}))},alarmRange:function(e){var t=e.id,n=x(e,v);return r.default.createElement(o.default,O({id:t,top:"20px",margin:[0,2,0,0],align:o.alignment.elementLeft},n),r.default.createElement(u.default,{id:t}))},highlight:function(e){var t=e.id,n=x(e,g);return(0,p.useAttributeValue)("sparkline")?null:r.default.createElement(o.default,O({id:t,align:o.alignment.elementRight,bottom:"25px",right:100},n,{noEvents:!0}),r.default.createElement(l.default,{id:t}))},proceeded:function(e){var t=e.id,n=e.uiName,a=x(e,h);return r.default.createElement(o.default,O({id:t,top:"50%",align:o.alignment.chartMiddle,uiName:n},a),r.default.createElement(c.default,{id:t,uiName:n}))},name:function(e){var t=e.containerProps,n=x(e,b);return r.default.createElement(j,O({isAbsolute:!0,position:"top",margin:[2,0,0,0]},t),r.default.createElement(s.default,n))},latestValue:function(e){return r.default.createElement(j,{isAbsolute:!0,position:"center"},r.default.createElement(f.default,e))}};t.default=k},32931:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(67294)),a=h(n(60677)),o=n(57509),i=g(n(12460)),u=h(n(43946)),l=g(n(58358)),c=n(54576),s=n(35890),f=n(93501),d=n(19151),p=["children","fractionDigits"],m=["children","showFull"];function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(e){return e&&e.__esModule?e:{default:e}}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}function y(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var w=(0,a.default)(o.Flex).attrs({position:"relative","data-testid":"chartPopover-dimension",padding:[1,0]}).withConfig({displayName:"dimension__GridRow",componentId:"sc-adzl1v-0"})(["display:contents;"]),O=(0,a.default)(i.ColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"dimension__ColorBackground",componentId:"sc-adzl1v-1"})([""]),x={ANOMALY_RATE:"arp",default:"value"},j=function(e){var t=e.children,n=e.fractionDigits,a=void 0===n?0:n,i=y(e,p),u=t.toString().split("."),c=u[0],s=u[1];return r.default.createElement(o.Flex,{alignItems:"center",justifyContent:"end"},r.default.createElement(l.Value,b({},i,{textAlign:"right"}),c),"undefined"!==typeof s&&r.default.createElement(l.Value,i,"."),r.default.createElement(l.Value,b({as:o.Flex,flex:!1,width:1.6*a},i,{textAlign:"left"}),s))},k=function(e){var t=e.children,n=e.showFull,a=y(e,m);return r.default.createElement(o.Flex,{gap:1,justifyContent:"end"},Object.keys(t).map((function(e){return r.default.createElement(o.Flex,{key:e,border:{size:"1px",side:"all",color:t[e]},round:!0,flex:!1,padding:[0,.5]},r.default.createElement(l.Value,b({},a,{color:t[e]}),n&&s.labels[e]||e))})))},E=function(e){var t=e.id,n=e.strong,a=e.chars,s=e.rowFlavour,p=(0,c.useVisibleDimensionId)(t),m=(0,c.useChart)().getAttribute("unitsConversionFractionDigits"),v=(0,f.useIsHeatmap)();return r.default.createElement(w,{opacity:p?null:"weak"},r.default.createElement(o.Flex,{alignItems:"center",gap:1,position:"relative"},r.default.createElement(O,{id:t,valueKey:x[s]||x.default,height:"18px"},!v&&r.default.createElement(i.default,{id:t})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:t,strong:n,maxLength:a,noTooltip:!0,color:n?"textFocus":"text"})),r.default.createElement(l.default,{id:t,strong:n,visible:p,Component:j,fractionDigits:m,color:s===d.rowFlavours.default?n?"textFocus":"text":"textLite"}),r.default.createElement(l.default,{id:t,strong:n,visible:p,valueKey:"arp",Component:j,fractionDigits:2,color:s===d.rowFlavours.ANOMALY_RATE?"anomalyTextFocus":"anomalyText"}),r.default.createElement(l.default,{textAlign:"right",id:t,strong:n,visible:p,valueKey:"pa",Component:k,color:s===d.rowFlavours.ANNOTATIONS?n?"textFocus":"text":"textLite",showFull:s===d.rowFlavours.ANNOTATIONS}))};t.default=E},19151:function(e,t,n){"use strict";t.__esModule=!0,t.rowFlavours=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=n(57509),i=n(54576),u=n(90833),l=d(n(9033)),c=d(n(8051)),s=d(n(60616)),f=d(n(32931));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var m=(0,a.default)(o.Flex).attrs({round:!0,border:{side:"all",color:"elementBackground"},width:{min:"196px",max:"80vw"},background:"dropdown",column:!0,padding:[4],gap:1}).withConfig({displayName:"dimensions__Container",componentId:"sc-172on4u-0"})(["box-shadow:0px 8px 12px rgba(9,30,66,0.15),0px 0px 1px rgba(9,30,66,0.31);"]),v=a.default.div.withConfig({displayName:"dimensions__Grid",componentId:"sc-172on4u-1"})(["display:grid;width:100%;grid-template-columns:minmax(150px,max-content) 60px 60px minmax(80px,auto);align-items:center;"]),g=a.default.div.withConfig({displayName:"dimensions__GridHeader",componentId:"sc-172on4u-2"})(["display:contents;"]),h=[null,null],b=function(){var e=Math.floor((window.innerHeight-500)/15)||16;return e<5?5:10},y=function(){return b()/2},w={ANOMALY_RATE:"ANOMALY_RATE",ANNOTATIONS:"ANNOTATIONS",default:"VALUE"};t.rowFlavours=w;var O={ANOMALY_RATE:"anomalyDesc",ANNOTATIONS:"annotationsDesc",default:"valueDesc"},x=function(e){var t=e.uiName,n=(0,i.useChart)(),a=(0,i.useAttributeValue)("hoverX")||h,d=a[0],p=a[1],x=(0,r.useMemo)((function(){var e=n.getClosestRow(d),t=n.onHoverSortDimensions(e,O[p]||O.default)||[];n.getAttribute("selectedDimensions").length>0&&(t=t.filter((function(e){return n.isDimensionVisible(e)})));var r=t.findIndex((function(e){return e===p})),a=t.length,o=Math.floor(function(e,t){return e<b()||t<y()?0:t>e-y()?t-(y()+(e-t)):t-y()}(a,r)),i=Math.ceil(function(e,t){return e<b()?e:t<y()?t+y()+(y()-t):t>e-y()?e:t+y()}(a,r));return[o,i,a,t.slice(o,i)]}),[n,p,d]),j=x[0],k=x[1],E=x[2],P=x[3],S=(0,i.useOnResize)(t),C=S.parentWidth,_=S.width,M=.9*(C>_?C:_),D=w[p]||w.default;return r.default.createElement(m,{"data-testid":"chartPopover-dimensions",gap:2},r.default.createElement(o.Flex,{column:!0,gap:1},d&&r.default.createElement(s.default,{value:d}),r.default.createElement(c.default,null)),r.default.createElement(o.Flex,{flex:!1,height:3},j>0&&r.default.createElement(u.TextNano,{color:"textLite"},"\u2191",j," more values")),r.default.createElement(v,{gap:1,column:!0},r.default.createElement(g,null,r.default.createElement(u.TextMicro,{strong:!0},"Dimension"),r.default.createElement(u.TextMicro,{color:D===w.default?"text":"textLite",textAlign:"right"},"Value","heatmap"!==n.getAttribute("chartType")&&r.default.createElement(r.default.Fragment,null," ",r.default.createElement(l.default,{visible:!0,strong:D===w.default,color:D===w.default?"text":"textLite"}))),r.default.createElement(u.TextMicro,{strong:D===w.ANOMALY_RATE,color:D===w.ANOMALY_RATE?"text":"textLite",textAlign:"right"},"AR %"),r.default.createElement(u.TextMicro,{strong:D===w.ANNOTATIONS,color:D===w.ANNOTATIONS?"text":"textLite",textAlign:"right"},"Info")),P.map((function(e){return r.default.createElement(f.default,{key:e,id:e,strong:p===e,chars:M<600?50:100,rowFlavour:D})}))),r.default.createElement(o.Flex,{flex:!1,height:3},k<E&&r.default.createElement(u.TextNano,{color:"textLite",margin:[2,0,0]},"\u2193",E-k," more values")))},j=(0,r.memo)(x);t.default=j},98079:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(32855)),o=n(24298),i=n(54576),u=d(n(73935)),l=d(n(82633)),c=d(n(86518)),s=d(n(91183)),f=d(n(19151));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var m={right:"left",bottom:"top"},v={right:"left",top:"bottom"},g={left:"right",bottom:"top"},h={left:"right",top:"bottom"},b=function(e){var t=e.uiName,n=(0,i.useChart)(),d=(0,r.useRef)(),p=(0,r.useState)(),b=p[0],y=p[1],w=(0,r.useRef)(),O=(0,r.useRef)(),x=(0,r.useState)(!1),j=x[0],k=x[1],E=(0,r.useState)(m),P=E[0],S=E[1];w.current=b,O.current=(0,c.default)(b,d,P,"width"),(0,r.useEffect)((function(){return(0,o.unregister)(n.getUI(t).on("mousemove",(function(e){if(!n.getAttribute("panning")&&!n.getAttribute("highlighting")){var t=e.offsetX||e.layerX,r=e.offsetY||e.layerY;if(k(!0),w.current){w.current.style.left=t+"px",w.current.style.top=r+"px",O.current();var a=window.innerHeight,o=window.innerWidth,i=d.current.getBoundingClientRect(),u=i.width,l=i.height;S(function(e,t){return e&&t?m:e?v:t?g:h}(t+u>o,r+l>a))}}})),n.getUI(t).on("mouseout",(function(){return k(!1)})),n.onAttributeChange("panning",(function(e){return e&&k(!1)})),n.onAttributeChange("highlighting",(function(e){return e&&k(!1)})))}),[n]);var C=(0,s.default)();return j?r.default.createElement(r.Fragment,null,r.default.createElement(a.default,{ref:function(e){return y(e)},position:"absolute"}),u.default.createPortal(r.default.createElement(l.default,{"data-toolbox":!0,margin:[P.top?2:-2,P.right?-2:2],ref:d,width:{max:"100%"},column:!0,"data-testid":"drop",sx:{pointerEvents:"none"}},r.default.createElement(f.default,{uiName:t,"data-testid":"chartPopover"})),C)):null};t.default=b},60616:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var u=a?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(r,o,u):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(90833),o=n(54576);function i(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}var u=function(e){var t=e.value,n=(0,o.useChart)(),i=(0,r.useMemo)((function(){return n.formatDate(t)+" \u2022 "+n.formatTime(t)}),[t]);return r.default.createElement(a.TextMicro,{color:"textDescription","data-testid":"chartPopover-timestamp"},i)};t.default=u},8051:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(90833),i=(r=n(32855))&&r.__esModule?r:{default:r},u=n(54576);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}var c=function(){var e=(0,u.useAttributeValue)("viewUpdateEvery"),t=(0,u.useAttributeValue)("updateEvery"),n=(0,u.useAttributeValue)("groupingMethod");return a.default.createElement(a.Fragment,null,a.default.createElement(i.default,{gap:1,"data-testid":"chartPopover-collection"},a.default.createElement(o.TextMicro,{color:"textLite"},"Granularity:"),a.default.createElement(o.TextMicro,{color:"textDescription"},t,"s")),e!==t&&a.default.createElement(i.default,{gap:1,"data-testid":"chartPopover-collection"},a.default.createElement(o.TextMicro,{color:"textLite"},"View point:"),a.default.createElement(o.TextMicro,{color:"textDescription"},n," ",e,"s")))};t.default=c},51081:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=l(n(60677)),o=l(n(259)),i=n(54576),u=l(n(3701));function l(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}var f=(0,a.default)(u.default).attrs({color:"textLite",hoverColor:"textDescription",svg:o.default,size:"16px",alignSelf:"end"}).withConfig({displayName:"resize__Drag",componentId:"sc-v4rzku-0"})(["cursor:ns-resize;"]),d=function(e){e.preventDefault(),e.stopPropagation()},p=function(e){var t=(0,i.useChart)(),n=function(e){e.preventDefault(),t.trigger("resizeYStart");var n="touchstart"===e.type?e.touches[0].clientY:e.clientY,r=function(e){var r=e-n;t.trigger("resizeYMove",r)},a=function(e){return r(e.clientY)},o=function(e){return r(e.touches[0].clientY)};"touchstart"===e.type?(document.addEventListener("touchmove",o),document.addEventListener("touchend",(function e(){document.removeEventListener("touchmove",o),document.removeEventListener("touchend",e),t.trigger("resizeYEnd")}))):(document.addEventListener("mousemove",a),document.addEventListener("mouseup",(function e(){document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",e),t.trigger("resizeYEnd")})))};return r.default.createElement(f,s({onDoubleClick:d,onMouseDown:n,onTouchStart:n,alignSelf:"end",margin:[0,0,0,1]},e))},m=(0,r.memo)(p);t.default=m},21040:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=o(n(67294)),a=o(n(32855));function o(e){return e&&e.__esModule?e:{default:e}}var i=function(e){var t=e.disabled;return r.default.createElement(a.default,{width:"1px",background:t?"disabled":"borderSecondary"})};t.default=i},13828:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=f(n(67294)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(60677)),o=n(57509),i=n(54576),u=f(n(3701)),l=f(n(41330)),c=["height"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(e){return e&&e.__esModule?e:{default:e}}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}var p=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),m=(0,a.default)(u.default).attrs({svg:l.default,width:"100%"}).withConfig({displayName:"skeleton__SkeletonIcon",componentId:"sc-x7r6du-0"})(["animation:"," 1.6s ease-in infinite;"],p),v=function(e){var t=e.height,n=void 0===t?"90%":t,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),u=(0,i.useLoadingColor)();return r.default.createElement(o.Flex,d({flex:!0,padding:[0,0,0,10]},a),r.default.createElement(m,{color:u,height:n}))};t.default=v},44945:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(67294)),a=v(n(60677)),o=n(90509),i=v(n(32855)),u=v(n(57138)),l=v(n(97507)),c=v(n(69666)),s=v(n(65828)),f=v(n(44636)),d=h(n(3701)),p=n(54576),m=v(n(14821));function v(e){return e&&e.__esModule?e:{default:e}}function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}var y=(0,a.default)(i.default).attrs({padding:[.5],gap:1,round:!0,border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"toolbox__Container",componentId:"sc-de41bx-0"})(["position:absolute;top:18px;right:8px;background:",";&:hover{background:",";}"],(0,o.getRgbColor)("elementBackground",.5),(0,o.getColor)("elementBackground")),w=function(){var e=(0,p.useChart)(),t=(0,p.useAttributeValue)("after");return r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:f.default,size:"16px"}),title:"Reset zoom",onClick:e.resetNavigation,"data-testid":"chartToolbox-zoomReset","data-track":e.track("zoomReset"),disabled:-900===t,padding:"2px",small:!0})},O=(0,r.forwardRef)((function(e,t){var n=(0,p.useChart)(),a=(0,p.useAttribute)("navigation"),o=a[0],i=a[1],f=(0,p.useAttributeValue)("highlighting"),v=(0,p.useAttributeValue)("panning");return f||v?null:r.default.createElement(y,b({"data-testid":"chartToolbox","data-toolbox":"true"},e,{ref:t,"data-track":n.track("toolbox")}),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:u.default,size:"16px"}),title:"Pan",onClick:function(){return i("pan")},active:"pan"===o,"data-testid":"chartToolbox-pan",stroked:!0,"data-track":n.track("pan"),padding:"2px",small:!0}),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:l.default,size:"16px"}),title:"Highlight",onClick:function(){return i("highlight")},active:"highlight"===o,"data-testid":"chartToolbox-highlight","data-track":n.track("highlight"),padding:"2px",small:!0}),r.default.createElement(m.default,null),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:c.default,size:"16px"}),title:"Zoom in",onClick:n.zoomIn,"data-testid":"chartToolbox-zoomIn","data-track":n.track("zoomIn"),padding:"2px",small:!0}),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:s.default,size:"16px"}),title:"Zoom out",onClick:n.zoomOut,"data-testid":"chartToolbox-zoomOut","data-track":n.track("zoomOut"),padding:"2px",small:!0}),r.default.createElement(w,null))}));t.default=O},14821:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=v(n(67294)),a=p(n(69999)),o=p(n(89416)),i=p(n(22874)),u=p(n(54194)),l=p(n(47817)),c=n(54576),s=v(n(3701)),f=p(n(32855)),d=["value","onChange","onClick","open","item"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}var w=(0,r.forwardRef)((function(e,t){var n=e.value,a=e.onChange,o=e.onClick,l=e.open,c=e.item,p=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,d),m=c.icon,v=c.value,g=c.title;return r.default.createElement(f.default,y({ref:t,alignItems:"end"},p),r.default.createElement(s.Button,{icon:m,title:g,active:n===v,onClick:function(){return a(v)},padding:"2px",small:!0}),r.default.createElement(s.Button,{icon:r.default.createElement(s.default,{svg:l?i.default:u.default,size:"12px"}),onClick:o,padding:"2px",stroked:!0,small:!0}))})),O=function(e){var t=e.onItemClick,n=e.items[0],a=n.icon,o=n.value,i=n.title;return r.default.createElement(f.default,{background:"dropdown",round:{side:"bottom"},border:{side:"bottom",color:"borderSecondary"},padding:[1,0],"data-toolbox":!0},r.default.createElement(s.Button,{title:i,icon:a,onClick:function(){return t(o)},padding:"2px",small:!0}))},x=function(){var e=(0,c.useChart)(),t=(0,c.useAttribute)("navigation"),n=t[0],i=t[1],u=function(e){return(0,r.useMemo)((function(){return[{value:"select",title:"Select and zoom",icon:r.default.createElement(s.default,{svg:a.default,size:"16px"}),"data-track":e.track("selectHorizontal")},{value:"selectVertical",title:"Select vertical and zoom",icon:r.default.createElement(s.default,{svg:o.default,size:"16px"}),"data-track":e.track("selectVertical")}]}),[e])}(e),f=(0,r.useMemo)((function(){return u.reduce((function(e,t){return t.value===n?h(h({},e),{},{selectedItem:t}):h(h({},e),{},{remainingItems:[t]})}),{selectedItem:u[0],remainingItems:[]})}),[n]),d=f.selectedItem,p=f.remainingItems;return r.default.createElement(l.default,{value:n,onChange:i,items:p,Dropdown:O,"data-track":"select"},r.default.createElement(w,{value:n,onChange:i,item:d}))},j=(0,r.memo)(x);t.default=j},18892:function(e,t,n){"use strict";t.ZP=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=n(90833),i=d(n(58607)),u=n(54576),l=n(90509),c=d(n(70486)),s=n(86954),f=["uiName"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}var v=(0,a.default)(o.Text).withConfig({displayName:"number__StrokeLabel",componentId:"sc-1m5956t-0"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary")),g=function(e){var t=(0,u.useLatestConvertedValue)("selected");return r.default.createElement(v,m({color:"main",fontSize:"2em",strong:!0},e),t)};var h=function(e){var t=(0,u.useUnitSign)();return r.default.createElement(o.Text,m({color:"border",fontSize:"1em"},e),t)};var b=(0,r.forwardRef)((function(e,t){var n=e.uiName,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,f);return r.default.createElement(s.ChartWrapper,{ref:t},r.default.createElement(i.default,m({uiName:n,column:!0,alignItems:"center",justifyContent:"center",position:"relative"},a),r.default.createElement(g,null),r.default.createElement(h,null)))}));var y=(0,c.default)(b,{tile:!0});t.ZP=y},96808:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Title=void 0;var r=u(n(67294)),a=u(n(32855)),o=n(90833),i=n(54576);function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){var t=(0,i.useTitle)(),n=(0,i.useUnitSign)({long:!0}),u=(0,i.useName)();return r.default.createElement(a.default,l({overflow:"hidden","data-testid":"chartHeaderStatus-title",gap:1,flex:"shrink",justifyContent:"start"},e),r.default.createElement(o.TextSmall,{color:"textDescription",truncate:!0},t),!!u&&r.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap"},t?"\u2022 ":"",u),!!n&&r.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap"},"\u2022 [",n,"]"))};t.Title=c;var s=(0,i.withChartProvider)(c);t.default=s},2713:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=s(n(67294)),a=s(n(32855)),o=n(54576),i=s(n(21040));t.Separator=i.default;var u=s(n(96415));t.ChartType=u.default;var l=s(n(70873));t.Fullscreen=l.default;var c=s(n(43460));function s(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}t.Information=c.default;var d=function(e){return r.default.createElement(a.default,f({gap:1,justifyContent:"end",alignItem:"center",flex:!0,"data-testid":"chartHeaderToolbox",alignSelf:"end"},e))};t.Container=d;var p=function(e){var t=!(0,o.useAttributeValue)("focused"),n=(0,o.useAttributeValue)("toolboxElements");return r.default.createElement(d,e,n.map((function(e,n){return r.default.createElement(e,{key:n,disabled:t})})))};t.default=p},51834:function(e,t){"use strict";t.__esModule=!0,t.createCanvas=t.copyCanvas=void 0;t.createCanvas=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,n};t.copyCanvas=function(e,t){t.width=e.width,t.height=e.height;var n=t.getContext("2d");n.clearRect(0,0,t.width,t.height),n.drawImage(e,0,0)}},60773:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.uppercase=t.underscoredKeys=t.underscoreToCamel=t.objectTransformator=t.camelizeKeys=t.camelToUnderscore=void 0;t.uppercase=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};var o=function(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase()};t.camelToUnderscore=o;var i=function(e){return e.replace(/([_][a-z])/g,(function(e){return e[1].toUpperCase()}))};t.underscoreToCamel=i;var u=[],l=function(e,t,n){var a;return r(r({},e),{},((a={})[o(t)]=n,a))},c=function(e,t,n){var a;return r(r({},e),{},((a={})[i(t)]=n,a))},s=function(e,t){var n=t.func,a=t.action,o=t.omit,i=void 0===o?u:o;return Array.isArray(e)?e.map((function(e){return n(e,{omit:i})})):"object"===typeof e&&e?Object.keys(e).reduce((function(t,o){var u;if(i.includes(o))return r(r({},t),{},((u={})[o]=e[o],u));var l=n(e[o],{omit:i});return a(t,o,l)}),{}):e};t.objectTransformator=s;t.underscoredKeys=function e(t,n){var r=(void 0===n?{}:n).omit;return s(t,{func:e,action:l,omit:void 0===r?u:r})};t.camelizeKeys=function e(t,n){var r=(void 0===n?{}:n).omit;return s(t,{func:e,action:c,omit:void 0===r?u:r})}},20640:function(e,t,n){"use strict";var r=n(11742),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,i,u,l,c,s=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),u=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.ariaHidden="true",c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=a[t.format]||a.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),u.selectNodeContents(c),l.addRange(u),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");s=!0}catch(f){n&&console.error("unable to copy using execCommand: ",f),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),s=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(u):l.removeAllRanges()),c&&document.body.removeChild(c),i()}return s}},28091:function(e,t,n){"use strict";var r=n(46916),a=n(19670),o=n(70030),i=n(58173),u=n(89190),l=n(29909),c=n(35005),s=n(66462),f=n(76178),d=c("Promise"),p="AsyncFromSyncIterator",m=l.set,v=l.getterFor(p),g=function(e,t,n){var r=e.done;d.resolve(e.value).then((function(e){t(f(e,r))}),n)},h=function(e){e.type=p,m(this,e)};h.prototype=u(o(s),{next:function(){var e=v(this);return new d((function(t,n){var o=a(r(e.next,e.iterator));g(o,t,n)}))},return:function(){var e=v(this).iterator;return new d((function(t,n){var o=i(e,"return");if(void 0===o)return t(f(void 0,!0));var u=a(r(o,e));g(u,t,n)}))}}),e.exports=h},6790:function(e,t,n){"use strict";var r=n(43157),a=n(26244),o=n(7207),i=n(49974),u=function(e,t,n,l,c,s,f,d){for(var p,m,v=c,g=0,h=!!f&&i(f,d);g<l;)g in n&&(p=h?h(n[g],g,t):n[g],s>0&&r(p)?(m=a(p),v=u(e,t,p,m,v,s-1)-1):(o(v+1),e[v]=p),v++),g++;return v};e.exports=u},62617:function(e,t,n){"use strict";var r=n(46916),a=n(60614),o=n(19670),i=n(24942),u=n(71246),l=n(58173),c=n(5112),s=n(28091),f=c("asyncIterator");e.exports=function(e){var t,n=o(e),c=!0,d=l(n,f);return a(d)||(d=u(n),c=!1),void 0!==d?t=r(d,n):(t=n,c=!0),o(t),i(c?t:new s(i(t)))}},72897:function(e,t,n){"use strict";var r=n(46916),a=n(19670),o=n(24942),i=n(71246);e.exports=function(e,t){t&&"string"===typeof e||a(e);var n=i(e);return o(a(void 0!==n?r(n,e):e))}},20403:function(e){"use strict";var t=Math.log,n=Math.LOG10E;e.exports=Math.log10||function(e){return t(e)*n}},34553:function(e,t,n){"use strict";var r=n(82109),a=n(42092).findIndex,o=n(51223),i="findIndex",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),r({target:"Array",proto:!0,forced:u},{findIndex:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}}),o(i)},86535:function(e,t,n){"use strict";var r=n(82109),a=n(6790),o=n(19662),i=n(47908),u=n(26244),l=n(65417);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=i(this),r=u(n);return o(e),(t=l(n,0)).length=a(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},99244:function(e,t,n){"use strict";n(51223)("flatMap")},40658:function(e,t,n){"use strict";n(82109)({target:"Math",stat:!0},{log10:n(20403)})},92087:function(e,t,n){"use strict";var r=n(17854),a=n(19781),o=n(47045),i=n(67066),u=n(47293),l=r.RegExp,c=l.prototype;a&&u((function(){var e=!0;try{l(".","d")}catch(u){e=!1}var t={},n="",r=e?"dgimsy":"gimsy",a=function(e,r){Object.defineProperty(t,e,{get:function(){return n+=r,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var i in e&&(o.hasIndices="d"),o)a(i,o[i]);return Object.getOwnPropertyDescriptor(c,"flags").get.call(t)!==r||n!==r}))&&o(c,"flags",{configurable:!0,get:i})},82481:function(e,t,n){"use strict";n(82109)({target:"String",proto:!0},{repeat:n(38415)})},74326:function(e,t,n){"use strict";var r=n(82109),a=n(46916),o=n(19662),i=n(19670),u=n(70111),l=n(24942),c=n(45348),s=n(76178),f=n(62617),d=n(21753),p=n(31913),m=c((function(e){var t=this,n=t.iterator,r=t.mapper;return new e((function(o,l){var c=function(e){t.done=!0,l(e)},p=function(e){d(n,c,e,c)},m=function(){try{e.resolve(i(a(t.next,n))).then((function(n){try{if(i(n).done)t.done=!0,o(s(void 0,!0));else{var a=n.value;try{var l=r(a,t.counter++),d=function(e){try{t.inner=f(e),v()}catch(n){p(n)}};u(l)?e.resolve(l).then(d,p):d(l)}catch(m){p(m)}}}catch(g){c(g)}}),c)}catch(l){c(l)}},v=function(){var n=t.inner;if(n)try{e.resolve(i(a(n.next,n.iterator))).then((function(e){try{i(e).done?(t.inner=null,m()):o(s(e.value,!1))}catch(n){p(n)}}),p)}catch(r){p(r)}else m()};v()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:p},{flatMap:function(e){return i(this),o(e),new m(l(this),{mapper:e,inner:null})}})},82499:function(e,t,n){"use strict";var r=n(82109),a=n(46916),o=n(19662),i=n(19670),u=n(24942),l=n(72897),c=n(54956),s=n(99212),f=n(31913),d=c((function(){for(var e,t,n=this.iterator,r=this.mapper;;){if(t=this.inner)try{if(!(e=i(a(t.next,t.iterator))).done)return e.value;this.inner=null}catch(o){s(n,"throw",o)}if(e=i(a(this.next,n)),this.done=!!e.done)return;try{this.inner=l(r(e.value,this.counter++),!1)}catch(o){s(n,"throw",o)}}}));r({target:"Iterator",proto:!0,real:!0,forced:f},{flatMap:function(e){return i(this),o(e),new d(u(this),{mapper:e,inner:null})}})},61973:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(83946),a=n(51820),o=n(13882);function i(e,t){(0,o.Z)(2,arguments);var n=(0,r.Z)(t);return(0,a.Z)(e,1e3*n)}},33511:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(83946),a=n(61973),o=n(13882);function i(e,t){(0,o.Z)(2,arguments);var n=(0,r.Z)(t);return(0,a.Z)(e,-n)}},99960:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},47915:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var o=n(99960),i=n(97790);a(n(97790),t);var u={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,n){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof t&&(n=t,t=u),"object"===typeof e&&(t=e,e=void 0),this.callback=null!==e&&void 0!==e?e:null,this.options=null!==t&&void 0!==t?t:u,this.elementCB=null!==n&&void 0!==n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?o.ElementType.Tag:void 0,r=new i.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===o.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new i.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===o.ElementType.Comment)this.lastNode.data+=e;else{var t=new i.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new i.Text(""),t=new i.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new i.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"===typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},97790:function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),a=this&&this.__assign||function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},a.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.cloneNode=t.hasChildren=t.isDocument=t.isDirective=t.isComment=t.isText=t.isCDATA=t.isTag=t.Element=t.Document=t.CDATA=t.NodeWithChildren=t.ProcessingInstruction=t.Comment=t.Text=t.DataNode=t.Node=void 0;var o=n(99960),i=function(){function e(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent},set:function(e){this.parent=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev},set:function(e){this.prev=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next},set:function(e){this.next=e},enumerable:!1,configurable:!0}),e.prototype.cloneNode=function(e){return void 0===e&&(e=!1),O(this,e)},e}();t.Node=i;var u=function(e){function t(t){var n=e.call(this)||this;return n.data=t,n}return r(t,e),Object.defineProperty(t.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!1,configurable:!0}),t}(i);t.DataNode=u;var l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Text,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),t}(u);t.Text=l;var c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Comment,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),t}(u);t.Comment=c;var s=function(e){function t(t,n){var r=e.call(this,n)||this;return r.name=t,r.type=o.ElementType.Directive,r}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),t}(u);t.ProcessingInstruction=s;var f=function(e){function t(t){var n=e.call(this)||this;return n.children=t,n}return r(t,e),Object.defineProperty(t.prototype,"firstChild",{get:function(){var e;return null!==(e=this.children[0])&&void 0!==e?e:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(i);t.NodeWithChildren=f;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.CDATA,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(f);t.CDATA=d;var p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Root,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(f);t.Document=p;var m=function(e){function t(t,n,r,a){void 0===r&&(r=[]),void 0===a&&(a="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var i=e.call(this,r)||this;return i.name=t,i.attribs=n,i.type=a,i}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(f);function v(e){return(0,o.isTag)(e)}function g(e){return e.type===o.ElementType.CDATA}function h(e){return e.type===o.ElementType.Text}function b(e){return e.type===o.ElementType.Comment}function y(e){return e.type===o.ElementType.Directive}function w(e){return e.type===o.ElementType.Root}function O(e,t){var n;if(void 0===t&&(t=!1),h(e))n=new l(e.data);else if(b(e))n=new c(e.data);else if(v(e)){var r=t?x(e.children):[],o=new m(e.name,a({},e.attribs),r);r.forEach((function(e){return e.parent=o})),null!=e.namespace&&(o.namespace=e.namespace),e["x-attribsNamespace"]&&(o["x-attribsNamespace"]=a({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(o["x-attribsPrefix"]=a({},e["x-attribsPrefix"])),n=o}else if(g(e)){r=t?x(e.children):[];var i=new d(r);r.forEach((function(e){return e.parent=i})),n=i}else if(w(e)){r=t?x(e.children):[];var u=new p(r);r.forEach((function(e){return e.parent=u})),e["x-mode"]&&(u["x-mode"]=e["x-mode"]),n=u}else{if(!y(e))throw new Error("Not implemented yet: ".concat(e.type));var f=new s(e.name,e.data);null!=e["x-name"]&&(f["x-name"]=e["x-name"],f["x-publicId"]=e["x-publicId"],f["x-systemId"]=e["x-systemId"]),n=f}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function x(e){for(var t=e.map((function(e){return O(e,!0)})),n=1;n<t.length;n++)t[n].prev=t[n-1],t[n-1].next=t[n];return t}t.Element=m,t.isTag=v,t.isCDATA=g,t.isText=h,t.isComment=b,t.isDirective=y,t.isDocument=w,t.hasChildren=function(e){return Object.prototype.hasOwnProperty.call(e,"children")},t.cloneNode=O},38252:function(e){"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,o;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!==a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!==a--;)if(!Object.prototype.hasOwnProperty.call(n,o[a]))return!1;for(a=r;0!==a--;){var i=o[a];if(("_owner"!==i||!t.$$typeof)&&!e(t[i],n[i]))return!1}return!0}return t!==t&&n!==n}},99376:function(e,t){var n=Object.keys;t.D=function(e,t){if(e===t)return!0;if(!(e instanceof Object)||!(t instanceof Object))return!1;for(var r=n(e),a=r.length,o=0;o<a;o++)if(!(r[o]in t))return!1;for(o=0;o<a;o++)if(e[r[o]]!==t[r[o]])return!1;return a===n(t).length}},60885:function(e,t){t.CASE_SENSITIVE_TAG_NAMES=["animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","linearGradient","radialGradient","textPath"]},38276:function(e){var t="html",n="head",r="body",a=/<([a-zA-Z]+[0-9]?)/,o=/<head[^]*>/i,i=/<body[^]*>/i,u=function(){throw new Error("This browser does not support `document.implementation.createHTMLDocument`")},l=function(){throw new Error("This browser does not support `DOMParser.prototype.parseFromString`")},c="object"===typeof window&&window.DOMParser;if("function"===typeof c){var s=new c;u=l=function(e,t){return t&&(e="<"+t+">"+e+"</"+t+">"),s.parseFromString(e,"text/html")}}if("object"===typeof document&&document.implementation){var f=document.implementation.createHTMLDocument();u=function(e,t){return t?(f.documentElement.querySelector(t).innerHTML=e,f):(f.documentElement.innerHTML=e,f)}}var d,p="object"===typeof document?document.createElement("template"):{};p.content&&(d=function(e){return p.innerHTML=e,p.content.childNodes}),e.exports=function(e){var c,s,f,p,m=e.match(a);switch(m&&m[1]&&(c=m[1].toLowerCase()),c){case t:return s=l(e),o.test(e)||(f=s.querySelector(n))&&f.parentNode.removeChild(f),i.test(e)||(f=s.querySelector(r))&&f.parentNode.removeChild(f),s.querySelectorAll(t);case n:case r:return p=(s=u(e)).querySelectorAll(c),i.test(e)&&o.test(e)?p[0].parentNode.childNodes:p;default:return d?d(e):(f=u(e,r).querySelector(r)).childNodes}}},14152:function(e,t,n){var r=n(38276),a=n(1507).formatDOM,o=/<(![a-zA-Z\s]+)>/;e.exports=function(e){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(""===e)return[];var t,n=e.match(o);return n&&n[1]&&(t=n[1]),a(r(e),null,t)}},1507:function(e,t,n){for(var r,a=n(47915),o=n(60885).CASE_SENSITIVE_TAG_NAMES,i=a.Comment,u=a.Element,l=a.ProcessingInstruction,c=a.Text,s={},f=0,d=o.length;f<d;f++)r=o[f],s[r.toLowerCase()]=r;function p(e){for(var t,n={},r=0,a=e.length;r<a;r++)n[(t=e[r]).name]=t.value;return n}function m(e){var t=function(e){return s[e]}(e=e.toLowerCase());return t||e}t.formatAttributes=p,t.formatDOM=function e(t,n,r){n=n||null;for(var a,o=[],s=0,f=t.length;s<f;s++){var d,v=t[s];switch(v.nodeType){case 1:a=m(v.nodeName),(d=new u(a,p(v.attributes))).children=e("template"===a?v.content.childNodes:v.childNodes,d);break;case 3:d=new c(v.nodeValue);break;case 8:d=new i(v.nodeValue);break;default:continue}var g=o[s-1]||null;g&&(g.next=d),d.parent=n,d.prev=g,d.next=null,o.push(d)}return r&&((d=new l(r.substring(0,r.indexOf(" ")).toLowerCase(),r)).next=o[0]||null,d.parent=n,o.unshift(d),o[1]&&(o[1].prev=o[0])),o}},30488:function(e,t,n){var r=n(47915),a=n(14152),o=n(50484),i=n(53670);a="function"===typeof a.default?a.default:a;var u={lowerCaseAttributeNames:!1};function l(e,t){if("string"!==typeof e)throw new TypeError("First argument must be a string");return""===e?[]:i(a(e,(t=t||{}).htmlparser2||u),t)}l.domToReact=i,l.htmlToDOM=a,l.attributesToProps=o,l.Comment=r.Comment,l.Element=r.Element,l.ProcessingInstruction=r.ProcessingInstruction,l.Text=r.Text,e.exports=l,l.default=l},50484:function(e,t,n){var r=n(83),a=n(74606),o=["checked","value"],i=["input","select","textarea"],u={reset:!0,submit:!0};function l(e){return r.possibleStandardNames[e]}e.exports=function(e,t){var n,c,s,f,d,p={},m=(e=e||{}).type&&u[e.type];for(n in e)if(s=e[n],r.isCustomAttribute(n))p[n]=s;else if(f=l(c=n.toLowerCase()))switch(d=r.getPropertyInfo(f),-1===o.indexOf(f)||-1===i.indexOf(t)||m||(f=l("default"+c)),p[f]=s,d&&d.type){case r.BOOLEAN:p[f]=!0;break;case r.OVERLOADED_BOOLEAN:""===s&&(p[f]=!0)}else a.PRESERVE_CUSTOM_ATTRIBUTES&&(p[n]=s);return a.setStyleProp(e.style,p),p}},53670:function(e,t,n){var r=n(67294),a=n(50484),o=n(74606),i=o.setStyleProp,u=o.canTextBeChildOfNode;function l(e){return o.PRESERVE_CUSTOM_ATTRIBUTES&&"tag"===e.type&&o.isCustomComponent(e.name,e.attribs)}e.exports=function e(t,n){for(var c,s,f,d,p,m=(n=n||{}).library||r,v=m.cloneElement,g=m.createElement,h=m.isValidElement,b=[],y="function"===typeof n.replace,w=n.transform||o.returnFirstArg,O=n.trim,x=0,j=t.length;x<j;x++)if(c=t[x],y&&h(f=n.replace(c)))j>1&&(f=v(f,{key:f.key||x})),b.push(w(f,c,x));else if("text"!==c.type){switch(d=c.attribs,l(c)?i(d.style,d):d&&(d=a(d,c.name)),p=null,c.type){case"script":case"style":c.children[0]&&(d.dangerouslySetInnerHTML={__html:c.children[0].data});break;case"tag":"textarea"===c.name&&c.children[0]?d.defaultValue=c.children[0].data:c.children&&c.children.length&&(p=e(c.children,n));break;default:continue}j>1&&(d.key=x),b.push(w(g(c.name,d,p),c,x))}else{if((s=!c.data.trim().length)&&c.parent&&!u(c.parent))continue;if(O&&s)continue;b.push(w(c.data,c,x))}return 1===b.length?b[0]:b}},74606:function(e,t,n){var r=n(67294),a=n(41476).default;var o=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]);var i={reactCompat:!0};var u=r.version.split(".")[0]>=16,l=new Set(["tr","tbody","thead","tfoot","colgroup","table","head","html","frameset"]);e.exports={PRESERVE_CUSTOM_ATTRIBUTES:u,ELEMENTS_WITH_NO_TEXT_CHILDREN:l,invertObject:function(e,t){if(!e||"object"!==typeof e)throw new TypeError("First argument must be an object");var n="function"===typeof t,r={},a={};for(var o in e){var i=e[o];n&&(r=t(o,i))&&2===r.length?a[r[0]]=r[1]:"string"===typeof i&&(a[i]=o)}return a},isCustomComponent:function(e,t){return-1===e.indexOf("-")?t&&"string"===typeof t.is:!o.has(e)},setStyleProp:function(e,t){if(null!==e&&void 0!==e)try{t.style=a(e,i)}catch(n){t.style={}}},canTextBeChildOfNode:function(e){return!l.has(e.name)},returnFirstArg:function(e){return e}}},18139:function(e){var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,l=/^\s+|\s+$/g,c="";function s(e){return e?e.replace(l,c):c}e.exports=function(e,l){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var f=1,d=1;function p(e){var t=e.match(n);t&&(f+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function m(){var e={line:f,column:d};return function(t){return t.position=new v(e),y(),t}}function v(e){this.start=e,this.end={line:f,column:d},this.source=l.source}v.prototype.content=e;var g=[];function h(t){var n=new Error(l.source+":"+f+":"+d+": "+t);if(n.reason=t,n.filename=l.source,n.line=f,n.column=d,n.source=e,!l.silent)throw n;g.push(n)}function b(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function y(){b(r)}function w(e){var t;for(e=e||[];t=O();)!1!==t&&e.push(t);return e}function O(){var t=m();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return h("End of comment missing");var r=e.slice(2,n-2);return d+=2,p(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}function x(){var e=m(),n=b(a);if(n){if(O(),!b(o))return h("property missing ':'");var r=b(i),l=e({type:"declaration",property:s(n[0].replace(t,c)),value:r?s(r[0].replace(t,c)):c});return b(u),l}}return y(),function(){var e,t=[];for(w(t);e=x();)!1!==e&&(t.push(e),w(t));return t}()}},36808:function(e,t,n){var r,a;!function(o){if(void 0===(a="function"===typeof(r=o)?r.call(t,n,t,e):r)||(e.exports=a),!0,e.exports=o(),!!0){var i=window.Cookies,u=window.Cookies=o();u.noConflict=function(){return window.Cookies=i,u}}}((function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function a(){}function o(t,n,o){if("undefined"!==typeof document){"number"===typeof(o=e({path:"/"},a.defaults,o)).expires&&(o.expires=new Date(1*new Date+864e5*o.expires)),o.expires=o.expires?o.expires.toUTCString():"";try{var i=JSON.stringify(n);/^[\{\[]/.test(i)&&(n=i)}catch(c){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var u="";for(var l in o)o[l]&&(u+="; "+l,!0!==o[l]&&(u+="="+o[l].split(";")[0]));return document.cookie=t+"="+n+u}}function i(e,n){if("undefined"!==typeof document){for(var a={},o=document.cookie?document.cookie.split("; "):[],i=0;i<o.length;i++){var u=o[i].split("="),l=u.slice(1).join("=");n||'"'!==l.charAt(0)||(l=l.slice(1,-1));try{var c=t(u[0]);if(l=(r.read||r)(l,c)||t(l),n)try{l=JSON.parse(l)}catch(s){}if(a[c]=l,e===c)break}catch(s){}}return e?a[e]:a}}return a.set=o,a.get=function(e){return i(e,!1)},a.getJSON=function(e){return i(e,!0)},a.remove=function(t,n){o(t,"",e(n,{expires:-1}))},a.defaults={},a.withConverter=n,a}((function(){}))}))},72307:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",a=1,o=2,i=9007199254740991,u="[object Arguments]",l="[object Array]",c="[object AsyncFunction]",s="[object Boolean]",f="[object Date]",d="[object Error]",p="[object Function]",m="[object GeneratorFunction]",v="[object Map]",g="[object Number]",h="[object Null]",b="[object Object]",y="[object Promise]",w="[object Proxy]",O="[object RegExp]",x="[object Set]",j="[object String]",k="[object Symbol]",E="[object Undefined]",P="[object WeakMap]",S="[object ArrayBuffer]",C="[object DataView]",_=/^\[object .+?Constructor\]$/,M=/^(?:0|[1-9]\d*)$/,D={};D["[object Float32Array]"]=D["[object Float64Array]"]=D["[object Int8Array]"]=D["[object Int16Array]"]=D["[object Int32Array]"]=D["[object Uint8Array]"]=D["[object Uint8ClampedArray]"]=D["[object Uint16Array]"]=D["[object Uint32Array]"]=!0,D[u]=D[l]=D[S]=D[s]=D[C]=D[f]=D[d]=D[p]=D[v]=D[g]=D[b]=D[O]=D[x]=D[j]=D[P]=!1;var A="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,T="object"==typeof self&&self&&self.Object===Object&&self,z=A||T||Function("return this")(),N=t&&!t.nodeType&&t,R=N&&e&&!e.nodeType&&e,L=R&&R.exports===N,I=L&&A.process,F=function(){try{return I&&I.binding&&I.binding("util")}catch(e){}}(),H=F&&F.isTypedArray;function W(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function V(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function B(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var U,Y,Z=Array.prototype,q=Function.prototype,G=Object.prototype,X=z["__core-js_shared__"],K=q.toString,$=G.hasOwnProperty,J=function(){var e=/[^.]+$/.exec(X&&X.keys&&X.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Q=G.toString,ee=RegExp("^"+K.call($).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),te=L?z.Buffer:void 0,ne=z.Symbol,re=z.Uint8Array,ae=G.propertyIsEnumerable,oe=Z.splice,ie=ne?ne.toStringTag:void 0,ue=Object.getOwnPropertySymbols,le=te?te.isBuffer:void 0,ce=(U=Object.keys,Y=Object,function(e){return U(Y(e))}),se=Ie(z,"DataView"),fe=Ie(z,"Map"),de=Ie(z,"Promise"),pe=Ie(z,"Set"),me=Ie(z,"WeakMap"),ve=Ie(Object,"create"),ge=Ve(se),he=Ve(fe),be=Ve(de),ye=Ve(pe),we=Ve(me),Oe=ne?ne.prototype:void 0,xe=Oe?Oe.valueOf:void 0;function je(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ke(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ee(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Pe(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Ee;++t<n;)this.add(e[t])}function Se(e){var t=this.__data__=new ke(e);this.size=t.size}function Ce(e,t){var n=Ye(e),r=!n&&Ue(e),a=!n&&!r&&Ze(e),o=!n&&!r&&!a&&$e(e),i=n||r||a||o,u=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=u.length;for(var c in e)!t&&!$.call(e,c)||i&&("length"==c||a&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||We(c,l))||u.push(c);return u}function _e(e,t){for(var n=e.length;n--;)if(Be(e[n][0],t))return n;return-1}function Me(e){return null==e?void 0===e?E:h:ie&&ie in Object(e)?function(e){var t=$.call(e,ie),n=e[ie];try{e[ie]=void 0;var r=!0}catch(o){}var a=Q.call(e);r&&(t?e[ie]=n:delete e[ie]);return a}(e):function(e){return Q.call(e)}(e)}function De(e){return Ke(e)&&Me(e)==u}function Ae(e,t,n,r,i){return e===t||(null==e||null==t||!Ke(e)&&!Ke(t)?e!==e&&t!==t:function(e,t,n,r,i,c){var p=Ye(e),m=Ye(t),h=p?l:He(e),y=m?l:He(t),w=(h=h==u?b:h)==b,E=(y=y==u?b:y)==b,P=h==y;if(P&&Ze(e)){if(!Ze(t))return!1;p=!0,w=!1}if(P&&!w)return c||(c=new Se),p||$e(e)?Ne(e,t,n,r,i,c):function(e,t,n,r,i,u,l){switch(n){case C:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case S:return!(e.byteLength!=t.byteLength||!u(new re(e),new re(t)));case s:case f:case g:return Be(+e,+t);case d:return e.name==t.name&&e.message==t.message;case O:case j:return e==t+"";case v:var c=V;case x:var p=r&a;if(c||(c=B),e.size!=t.size&&!p)return!1;var m=l.get(e);if(m)return m==t;r|=o,l.set(e,t);var h=Ne(c(e),c(t),r,i,u,l);return l.delete(e),h;case k:if(xe)return xe.call(e)==xe.call(t)}return!1}(e,t,h,n,r,i,c);if(!(n&a)){var _=w&&$.call(e,"__wrapped__"),M=E&&$.call(t,"__wrapped__");if(_||M){var D=_?e.value():e,A=M?t.value():t;return c||(c=new Se),i(D,A,n,r,c)}}if(!P)return!1;return c||(c=new Se),function(e,t,n,r,o,i){var u=n&a,l=Re(e),c=l.length,s=Re(t),f=s.length;if(c!=f&&!u)return!1;var d=c;for(;d--;){var p=l[d];if(!(u?p in t:$.call(t,p)))return!1}var m=i.get(e);if(m&&i.get(t))return m==t;var v=!0;i.set(e,t),i.set(t,e);var g=u;for(;++d<c;){var h=e[p=l[d]],b=t[p];if(r)var y=u?r(b,h,p,t,e,i):r(h,b,p,e,t,i);if(!(void 0===y?h===b||o(h,b,n,r,i):y)){v=!1;break}g||(g="constructor"==p)}if(v&&!g){var w=e.constructor,O=t.constructor;w==O||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof O&&O instanceof O||(v=!1)}return i.delete(e),i.delete(t),v}(e,t,n,r,i,c)}(e,t,n,r,Ae,i))}function Te(e){return!(!Xe(e)||function(e){return!!J&&J in e}(e))&&(qe(e)?ee:_).test(Ve(e))}function ze(e){if(!function(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototype||G;return e===n}(e))return ce(e);var t=[];for(var n in Object(e))$.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Ne(e,t,n,r,i,u){var l=n&a,c=e.length,s=t.length;if(c!=s&&!(l&&s>c))return!1;var f=u.get(e);if(f&&u.get(t))return f==t;var d=-1,p=!0,m=n&o?new Pe:void 0;for(u.set(e,t),u.set(t,e);++d<c;){var v=e[d],g=t[d];if(r)var h=l?r(g,v,d,t,e,u):r(v,g,d,e,t,u);if(void 0!==h){if(h)continue;p=!1;break}if(m){if(!W(t,(function(e,t){if(a=t,!m.has(a)&&(v===e||i(v,e,n,r,u)))return m.push(t);var a}))){p=!1;break}}else if(v!==g&&!i(v,g,n,r,u)){p=!1;break}}return u.delete(e),u.delete(t),p}function Re(e){return function(e,t,n){var r=t(e);return Ye(e)?r:function(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}(r,n(e))}(e,Je,Fe)}function Le(e,t){var n=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function Ie(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Te(n)?n:void 0}je.prototype.clear=function(){this.__data__=ve?ve(null):{},this.size=0},je.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},je.prototype.get=function(e){var t=this.__data__;if(ve){var n=t[e];return n===r?void 0:n}return $.call(t,e)?t[e]:void 0},je.prototype.has=function(e){var t=this.__data__;return ve?void 0!==t[e]:$.call(t,e)},je.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ve&&void 0===t?r:t,this},ke.prototype.clear=function(){this.__data__=[],this.size=0},ke.prototype.delete=function(e){var t=this.__data__,n=_e(t,e);return!(n<0)&&(n==t.length-1?t.pop():oe.call(t,n,1),--this.size,!0)},ke.prototype.get=function(e){var t=this.__data__,n=_e(t,e);return n<0?void 0:t[n][1]},ke.prototype.has=function(e){return _e(this.__data__,e)>-1},ke.prototype.set=function(e,t){var n=this.__data__,r=_e(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ee.prototype.clear=function(){this.size=0,this.__data__={hash:new je,map:new(fe||ke),string:new je}},Ee.prototype.delete=function(e){var t=Le(this,e).delete(e);return this.size-=t?1:0,t},Ee.prototype.get=function(e){return Le(this,e).get(e)},Ee.prototype.has=function(e){return Le(this,e).has(e)},Ee.prototype.set=function(e,t){var n=Le(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Pe.prototype.add=Pe.prototype.push=function(e){return this.__data__.set(e,r),this},Pe.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.clear=function(){this.__data__=new ke,this.size=0},Se.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Se.prototype.get=function(e){return this.__data__.get(e)},Se.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ke){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ee(r)}return n.set(e,t),this.size=n.size,this};var Fe=ue?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}(ue(e),(function(t){return ae.call(e,t)})))}:function(){return[]},He=Me;function We(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||M.test(e))&&e>-1&&e%1==0&&e<t}function Ve(e){if(null!=e){try{return K.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function Be(e,t){return e===t||e!==e&&t!==t}(se&&He(new se(new ArrayBuffer(1)))!=C||fe&&He(new fe)!=v||de&&He(de.resolve())!=y||pe&&He(new pe)!=x||me&&He(new me)!=P)&&(He=function(e){var t=Me(e),n=t==b?e.constructor:void 0,r=n?Ve(n):"";if(r)switch(r){case ge:return C;case he:return v;case be:return y;case ye:return x;case we:return P}return t});var Ue=De(function(){return arguments}())?De:function(e){return Ke(e)&&$.call(e,"callee")&&!ae.call(e,"callee")},Ye=Array.isArray;var Ze=le||function(){return!1};function qe(e){if(!Xe(e))return!1;var t=Me(e);return t==p||t==m||t==c||t==w}function Ge(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=i}function Xe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ke(e){return null!=e&&"object"==typeof e}var $e=H?function(e){return function(t){return e(t)}}(H):function(e){return Ke(e)&&Ge(e.length)&&!!D[Me(e)]};function Je(e){return null!=(t=e)&&Ge(t.length)&&!qe(t)?Ce(e):ze(e);var t}e.exports=function(e,t){return Ae(e,t)}},41609:function(e,t,n){var r=n(280),a=n(64160),o=n(35694),i=n(1469),u=n(98612),l=n(44144),c=n(25726),s=n(36719),f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(u(e)&&(i(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||s(e)||o(e)))return!e.length;var t=a(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},22810:function(e,t,n){"use strict";n.r(t)},48564:function(){},79424:function(){},97142:function(e,t){"use strict";t.I=function(e){e.client&&(document.head.appendChild(e.msh=document.createElement("style")),e.createRule=function(t,n){var r=t+"{}";n&&(r=n+"{"+r+"}");var a=n?e.msh.sheet:e.sh.sheet,o=a.insertRule(r,a.cssRules.length),i=(a.cssRules||a.rules)[o];if(i.index=o,n){var u=(i.cssRules||i.rules)[0];i.style=u.style,i.styleMap=u.styleMap}return i})}},52099:function(e,t,n){"use strict";var r=n(39662).D;t.I=function(e){if(e.client){0;var t=e.kebab;n.prototype.diff=function(e){var n,r=this.decl,a=this.rule.style;for(n in r)void 0===e[n]&&a.removeProperty(n);for(n in e)e[n]!==r[n]&&a.setProperty(t(n),e[n]);this.decl=e},n.prototype.del=function(){r(this.rule)},a.prototype.diff=function(e){var t=this.tree;for(var r in t)if(void 0===e[r]){var a=t[r];for(var o in a)a[o].del()}for(var r in e)if(void 0===t[r])for(var o in e[r]){(l=new n(o,r)).diff(e[r][o]),e[r][o]=l}else{var i=t[r],u=e[r];for(var o in i)u[o]||i[o].del();for(var o in u){var l;(l=i[o])?(l.diff(u[o]),u[o]=l):((l=new n(o,r)).diff(u[o]),u[o]=l)}}this.tree=e},e.VRule=n,e.VSheet=a}function n(t,n){this.rule=e.createRule(t,n),this.decl={}}function a(){this.tree={}}}},87749:function(e,t){t.z=function e(t,n,r,a){var o,i,u={},l=!1;for(o in n)"object"!==typeof(i=n[o])&&(l=!0,u[o]=i);for(o in l&&(t[a]||(t[a]={}),t[a][r]=u),n)if("object"===typeof(i=n[o]))if("@"===o[0])e(t,i,r,o);else{var c=o.indexOf("&")>-1,s=r.split(",");if(c)for(var f=0;f<s.length;f++)s[f]=o.replace(/&/g,s[f]);else for(f=0;f<s.length;f++)s[f]=s[f]+" "+o;e(t,i,s.join(","),a)}}},39662:function(e,t){t.D=function(e){var t=e.index,n=e.parentStyleSheet,r=n.cssRules||n.rules;for(t=Math.max(t,r.length-1);t>=0;){if(r[t]===e){n.deleteRule(t);break}t--}}},40818:function(e,t){"use strict";var n=/[A-Z]/g;t.U=function(e){var t=(e=e||{}).assign||Object.assign;var r=t({raw:"",pfx:"_",client:"object"===typeof window,assign:t,stringify:JSON.stringify,kebab:function(e){return e.replace(n,"-$&").toLowerCase()},decl:function(e,t){return(e=r.kebab(e))+":"+t+";"},hash:function(e){return function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return"_"+(t>>>0).toString(36)}(r.stringify(e))},selector:function(e,t){return e+(":"===t[0]?"":" ")+t},putRaw:function(e){r.raw+=e}},e);return r.client&&(r.sh||document.head.appendChild(r.sh=document.createElement("style")),r.putRaw=function(e){var t=r.sh.sheet;try{t.insertRule(e,t.cssRules.length)}catch(n){}}),r.put=function(e,t,n){var a,o,i="",u=[];for(a in t)(o=t[a])instanceof Object&&!(o instanceof Array)?u.push(a):i+=r.decl(a,o,e,n);i&&(i=e+"{"+i+"}",r.putRaw(n?n+"{"+i+"}":i));for(var l=0;l<u.length;l++)"@"===(a=u[l])[0]&&"@font-face"!==a?r.putAt(e,t[a],a):r.put(r.selector(e,a),t[a],n)},r.putAt=r.put,r}},75966:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=d(n(67294)),o=d(n(45697)),i=n(61193),u=n(1706),l=n(67493),c=n(7373),s=n(92886),f=d(n(86010));function d(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){w(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function h(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=y(e);if(t){var o=y(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return b(e)}(this,n)}}function b(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&g(e,t)}(s,e);var t,n,r,o=h(s);function s(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(b(e=o.call.apply(o,[this].concat(n))),"state",{resizing:null,dragging:null,className:""}),w(b(e),"elementRef",a.default.createRef()),w(b(e),"onDragStart",(function(t,n){var r=n.node,a=e.props,o=a.onDragStart,i=a.transformScale;if(o){var u={top:0,left:0},l=r.offsetParent;if(l){var s=l.getBoundingClientRect(),f=r.getBoundingClientRect(),d=f.left/i,p=s.left/i,m=f.top/i,v=s.top/i;u.left=d-p+l.scrollLeft,u.top=m-v+l.scrollTop,e.setState({dragging:u});var g=(0,c.calcXY)(e.getPositionParams(),u.top,u.left,e.props.w,e.props.h),h=g.x,y=g.y;return o.call(b(e),e.props.i,h,y,{e:t,node:r,newPosition:u})}}})),w(b(e),"onDrag",(function(t,n){var r=n.node,a=n.deltaX,o=n.deltaY,i=e.props.onDrag;if(i){if(!e.state.dragging)throw new Error("onDrag called before onDragStart.");var u=e.state.dragging.top+o,l=e.state.dragging.left+a,s=e.props,f=s.isBounded,d=s.i,p=s.w,m=s.h,v=s.containerWidth,g=e.getPositionParams();if(f){var h=r.offsetParent;if(h){var y=e.props,w=y.margin,O=y.rowHeight,x=h.clientHeight-(0,c.calcGridItemWHPx)(m,O,w[1]);u=(0,c.clamp)(u,0,x);var j=(0,c.calcGridColWidth)(g),k=v-(0,c.calcGridItemWHPx)(p,j,w[0]);l=(0,c.clamp)(l,0,k)}}var E={top:u,left:l};e.setState({dragging:E});var P=(0,c.calcXY)(g,u,l,p,m),S=P.x,C=P.y;return i.call(b(e),d,S,C,{e:t,node:r,newPosition:E})}})),w(b(e),"onDragStop",(function(t,n){var r=n.node,a=e.props.onDragStop;if(a){if(!e.state.dragging)throw new Error("onDragEnd called before onDragStart.");var o=e.props,i=o.w,u=o.h,l=o.i,s=e.state.dragging,f=s.left,d=s.top,p={top:d,left:f};e.setState({dragging:null});var m=(0,c.calcXY)(e.getPositionParams(),d,f,i,u),v=m.x,g=m.y;return a.call(b(e),l,v,g,{e:t,node:r,newPosition:p})}})),w(b(e),"onResizeStop",(function(t,n){e.onResizeHandler(t,n,"onResizeStop")})),w(b(e),"onResizeStart",(function(t,n){e.onResizeHandler(t,n,"onResizeStart")})),w(b(e),"onResize",(function(t,n){e.onResizeHandler(t,n,"onResize")})),e}return t=s,n=[{key:"shouldComponentUpdate",value:function(e,t){if(this.props.children!==e.children)return!0;if(this.props.droppingPosition!==e.droppingPosition)return!0;var n=(0,c.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),r=(0,c.calcGridItemPosition)(this.getPositionParams(e),e.x,e.y,e.w,e.h,t);return!(0,l.fastPositionEqual)(n,r)||this.props.useCSSTransforms!==e.useCSSTransforms}},{key:"componentDidMount",value:function(){this.moveDroppingItem({})}},{key:"componentDidUpdate",value:function(e){this.moveDroppingItem(e)}},{key:"moveDroppingItem",value:function(e){var t=this.props.droppingPosition;if(t){var n=this.elementRef.current;if(n){var r=e.droppingPosition||{left:0,top:0},a=this.state.dragging,o=a&&t.left!==r.left||t.top!==r.top;if(a){if(o){var i=t.left-a.left,u=t.top-a.top;this.onDrag(t.e,{node:n,deltaX:i,deltaY:u})}}else this.onDragStart(t.e,{node:n,deltaX:t.left,deltaY:t.top})}}}},{key:"getPositionParams",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}},{key:"createStyle",value:function(e){var t,n=this.props,r=n.usePercentages,a=n.containerWidth;return n.useCSSTransforms?t=(0,l.setTransform)(e):(t=(0,l.setTopLeft)(e),r&&(t.left=(0,l.perc)(e.left/a),t.width=(0,l.perc)(e.width/a))),t}},{key:"mixinDraggable",value:function(e,t){return a.default.createElement(i.DraggableCore,{disabled:!t,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},e)}},{key:"mixinResizable",value:function(e,t,n){var r=this.props,o=r.cols,i=r.x,l=r.minW,s=r.minH,f=r.maxW,d=r.maxH,p=r.transformScale,m=r.resizeHandles,v=r.resizeHandle,g=this.getPositionParams(),h=(0,c.calcGridItemPosition)(g,0,0,o-i,0).width,b=(0,c.calcGridItemPosition)(g,0,0,l,s),y=(0,c.calcGridItemPosition)(g,0,0,f,d),w=[b.width,b.height],O=[Math.min(y.width,h),Math.min(y.height,1/0)];return a.default.createElement(u.Resizable,{draggableOpts:{disabled:!n},className:n?void 0:"react-resizable-hide",width:t.width,height:t.height,minConstraints:w,maxConstraints:O,onResizeStop:this.onResizeStop,onResizeStart:this.onResizeStart,onResize:this.onResize,transformScale:p,resizeHandles:m,handle:v},e)}},{key:"onResizeHandler",value:function(e,t,n){var r=t.node,a=t.size,o=this.props[n];if(o){var i=this.props,u=i.cols,l=i.x,s=i.y,f=i.i,d=i.maxH,p=i.minH,m=this.props,v=m.minW,g=m.maxW,h=(0,c.calcWH)(this.getPositionParams(),a.width,a.height,l,s),b=h.w,y=h.h;v=Math.max(v,1),g=Math.min(g,u-l),b=(0,c.clamp)(b,v,g),y=(0,c.clamp)(y,p,d),this.setState({resizing:"onResizeStop"===n?null:a}),o.call(this,f,b,y,{e:e,node:r,size:a})}}},{key:"render",value:function(){var e=this.props,t=e.x,n=e.y,r=e.w,o=e.h,i=e.isDraggable,u=e.isResizable,l=e.droppingPosition,s=e.useCSSTransforms,d=(0,c.calcGridItemPosition)(this.getPositionParams(),t,n,r,o,this.state),p=a.default.Children.only(this.props.children),v=a.default.cloneElement(p,{ref:this.elementRef,className:(0,f.default)("react-grid-item",p.props.className,this.props.className,{static:this.props.static,resizing:Boolean(this.state.resizing),"react-draggable":i,"react-draggable-dragging":Boolean(this.state.dragging),dropping:Boolean(l),cssTransforms:s}),style:m(m(m({},this.props.style),p.props.style),this.createStyle(d))});return v=this.mixinResizable(v,d,u),v=this.mixinDraggable(v,i)}}],n&&v(t.prototype,n),r&&v(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(a.default.Component);t.default=O,w(O,"propTypes",{children:o.default.element,cols:o.default.number.isRequired,containerWidth:o.default.number.isRequired,rowHeight:o.default.number.isRequired,margin:o.default.array.isRequired,maxRows:o.default.number.isRequired,containerPadding:o.default.array.isRequired,x:o.default.number.isRequired,y:o.default.number.isRequired,w:o.default.number.isRequired,h:o.default.number.isRequired,minW:function(e,t){var n=e[t];return"number"!==typeof n?new Error("minWidth not Number"):n>e.w||n>e.maxW?new Error("minWidth larger than item width/maxWidth"):void 0},maxW:function(e,t){var n=e[t];return"number"!==typeof n?new Error("maxWidth not Number"):n<e.w||n<e.minW?new Error("maxWidth smaller than item width/minWidth"):void 0},minH:function(e,t){var n=e[t];return"number"!==typeof n?new Error("minHeight not Number"):n>e.h||n>e.maxH?new Error("minHeight larger than item height/maxHeight"):void 0},maxH:function(e,t){var n=e[t];return"number"!==typeof n?new Error("maxHeight not Number"):n<e.h||n<e.minH?new Error("maxHeight smaller than item height/minHeight"):void 0},i:o.default.string.isRequired,resizeHandles:s.resizeHandleAxesType,resizeHandle:s.resizeHandleType,onDragStop:o.default.func,onDragStart:o.default.func,onDrag:o.default.func,onResizeStop:o.default.func,onResizeStart:o.default.func,onResize:o.default.func,isDraggable:o.default.bool.isRequired,isResizable:o.default.bool.isRequired,isBounded:o.default.bool.isRequired,static:o.default.bool,useCSSTransforms:o.default.bool.isRequired,transformScale:o.default.number,className:o.default.string,handle:o.default.string,cancel:o.default.string,droppingPosition:o.default.shape({e:o.default.object.isRequired,left:o.default.number.isRequired,top:o.default.number.isRequired})}),w(O,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1})},49580:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(a,i,u):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=f(n(72307)),i=f(n(86010)),u=n(67493),l=n(7373),c=f(n(75966)),s=f(n(92886));function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){k(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){u=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw a}}return o}(e,t)||h(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){if(e){if("string"===typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e,t){return w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},w(e,t)}function O(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=j(e);if(t){var o=j(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return x(e)}(this,n)}}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function j(e){return j=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},j(e)}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E="react-grid-layout",P=!1;try{P=/firefox/i.test(navigator.userAgent)}catch(C){}var S=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&w(e,t)}(f,e);var t,n,r,s=O(f);function f(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return k(x(e=s.call.apply(s,[this].concat(n))),"state",{activeDrag:null,layout:(0,u.synchronizeLayoutWithChildren)(e.props.layout,e.props.children,e.props.cols,(0,u.compactType)(e.props),e.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,droppingDOMNode:null,children:[]}),k(x(e),"dragEnterCounter",0),k(x(e),"onDragStart",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state.layout,c=(0,u.getLayoutItem)(l,t);if(c)return e.setState({oldDragItem:(0,u.cloneLayoutItem)(c),oldLayout:l}),e.props.onDragStart(l,c,c,null,o,i)})),k(x(e),"onDrag",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state.oldDragItem,c=e.state.layout,s=e.props,f=s.cols,d=s.allowOverlap,p=s.preventCollision,m=(0,u.getLayoutItem)(c,t);if(m){var v={w:m.w,h:m.h,x:m.x,y:m.y,placeholder:!0,i:t};c=(0,u.moveElement)(c,m,n,r,!0,p,(0,u.compactType)(e.props),f,d),e.props.onDrag(c,l,m,v,o,i),e.setState({layout:d?c:(0,u.compact)(c,(0,u.compactType)(e.props),f),activeDrag:v})}})),k(x(e),"onDragStop",(function(t,n,r,a){var o=a.e,i=a.node;if(e.state.activeDrag){var l=e.state.oldDragItem,c=e.state.layout,s=e.props,f=s.cols,d=s.preventCollision,p=s.allowOverlap,m=(0,u.getLayoutItem)(c,t);if(m){c=(0,u.moveElement)(c,m,n,r,!0,d,(0,u.compactType)(e.props),f,p),e.props.onDragStop(c,l,m,null,o,i);var v=p?c:(0,u.compact)(c,(0,u.compactType)(e.props),f),g=e.state.oldLayout;e.setState({activeDrag:null,layout:v,oldDragItem:null,oldLayout:null}),e.onLayoutMaybeChanged(v,g)}}})),k(x(e),"onResizeStart",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state.layout,c=(0,u.getLayoutItem)(l,t);c&&(e.setState({oldResizeItem:(0,u.cloneLayoutItem)(c),oldLayout:e.state.layout}),e.props.onResizeStart(l,c,c,null,o,i))})),k(x(e),"onResize",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state,c=l.layout,s=l.oldResizeItem,f=e.props,d=f.cols,p=f.preventCollision,m=f.allowOverlap,h=(0,u.withLayoutItem)(c,t,(function(e){var t;if(p&&!m){var a=(0,u.getAllCollisions)(c,v(v({},e),{},{w:n,h:r})).filter((function(t){return t.i!==e.i}));if(t=a.length>0){var o=1/0,i=1/0;a.forEach((function(t){t.x>e.x&&(o=Math.min(o,t.x)),t.y>e.y&&(i=Math.min(i,t.y))})),Number.isFinite(o)&&(e.w=o-e.x),Number.isFinite(i)&&(e.h=i-e.y)}}return t||(e.w=n,e.h=r),e})),b=g(h,2),y=b[0],w=b[1];if(w){var O={w:w.w,h:w.h,x:w.x,y:w.y,static:!0,i:t};e.props.onResize(y,s,w,O,o,i),e.setState({layout:m?y:(0,u.compact)(y,(0,u.compactType)(e.props),d),activeDrag:O})}})),k(x(e),"onResizeStop",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state,c=l.layout,s=l.oldResizeItem,f=e.props,d=f.cols,p=f.allowOverlap,m=(0,u.getLayoutItem)(c,t);e.props.onResizeStop(c,s,m,null,o,i);var v=p?c:(0,u.compact)(c,(0,u.compactType)(e.props),d),g=e.state.oldLayout;e.setState({activeDrag:null,layout:v,oldResizeItem:null,oldLayout:null}),e.onLayoutMaybeChanged(v,g)})),k(x(e),"onDragOver",(function(t){var n;if(t.preventDefault(),t.stopPropagation(),P&&(null===(n=t.nativeEvent.target)||void 0===n||!n.classList.contains(E)))return!1;var r=e.props,o=r.droppingItem,i=r.onDropDragOver,u=r.margin,c=r.cols,s=r.rowHeight,f=r.maxRows,d=r.width,m=r.containerPadding,g=r.transformScale,h=null===i||void 0===i?void 0:i(t);if(!1===h)return e.state.droppingDOMNode&&e.removeDroppingPlaceholder(),!1;var b=v(v({},o),h),y=e.state.layout,w=t.nativeEvent,O=w.layerX,x=w.layerY,j={left:O/g,top:x/g,e:t};if(e.state.droppingDOMNode){if(e.state.droppingPosition){var k=e.state.droppingPosition,S=k.left,C=k.top;(S!=O||C!=x)&&e.setState({droppingPosition:j})}}else{var _={cols:c,margin:u,maxRows:f,rowHeight:s,containerWidth:d,containerPadding:m||u},M=(0,l.calcXY)(_,x,O,b.w,b.h);e.setState({droppingDOMNode:a.createElement("div",{key:b.i}),droppingPosition:j,layout:[].concat(p(y),[v(v({},b),{},{x:M.x,y:M.y,static:!1,isDraggable:!0})])})}})),k(x(e),"removeDroppingPlaceholder",(function(){var t=e.props,n=t.droppingItem,r=t.cols,a=e.state.layout,o=(0,u.compact)(a.filter((function(e){return e.i!==n.i})),(0,u.compactType)(e.props),r);e.setState({layout:o,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})})),k(x(e),"onDragLeave",(function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter--,0===e.dragEnterCounter&&e.removeDroppingPlaceholder()})),k(x(e),"onDragEnter",(function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter++})),k(x(e),"onDrop",(function(t){t.preventDefault(),t.stopPropagation();var n=e.props.droppingItem,r=e.state.layout,a=r.find((function(e){return e.i===n.i}));e.dragEnterCounter=0,e.removeDroppingPlaceholder(),e.props.onDrop(r,a,t)})),e}return t=f,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n;return t.activeDrag?null:((0,o.default)(e.layout,t.propsLayout)&&e.compactType===t.compactType?(0,u.childrenEqual)(e.children,t.children)||(n=t.layout):n=e.layout,n?{layout:(0,u.synchronizeLayoutWithChildren)(n,e.children,e.cols,(0,u.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}}],(n=[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.children!==e.children||!(0,u.fastRGLPropsEqual)(this.props,e,o.default)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}},{key:"componentDidUpdate",value:function(e,t){if(!this.state.activeDrag){var n=this.state.layout,r=t.layout;this.onLayoutMaybeChanged(n,r)}}},{key:"containerHeight",value:function(){if(this.props.autoSize){var e=(0,u.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+2*t+"px"}}},{key:"onLayoutMaybeChanged",value:function(e,t){t||(t=this.state.layout),(0,o.default)(t,e)||this.props.onLayoutChange(e)}},{key:"placeholder",value:function(){var e=this.state.activeDrag;if(!e)return null;var t=this.props,n=t.width,r=t.cols,o=t.margin,i=t.containerPadding,u=t.rowHeight,l=t.maxRows,s=t.useCSSTransforms,f=t.transformScale;return a.createElement(c.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:"react-grid-placeholder",containerWidth:n,cols:r,margin:o,containerPadding:i||o,maxRows:l,rowHeight:u,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:s,transformScale:f},a.createElement("div",null))}},{key:"processGridItem",value:function(e,t){if(e&&e.key){var n=(0,u.getLayoutItem)(this.state.layout,String(e.key));if(!n)return null;var r=this.props,o=r.width,i=r.cols,l=r.margin,s=r.containerPadding,f=r.rowHeight,d=r.maxRows,p=r.isDraggable,m=r.isResizable,v=r.isBounded,g=r.useCSSTransforms,h=r.transformScale,b=r.draggableCancel,y=r.draggableHandle,w=r.resizeHandles,O=r.resizeHandle,x=this.state,j=x.mounted,k=x.droppingPosition,E="boolean"===typeof n.isDraggable?n.isDraggable:!n.static&&p,P="boolean"===typeof n.isResizable?n.isResizable:!n.static&&m,S=n.resizeHandles||w,C=E&&v&&!1!==n.isBounded;return a.createElement(c.default,{containerWidth:o,cols:i,margin:l,containerPadding:s||l,maxRows:d,rowHeight:f,cancel:b,handle:y,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:E,isResizable:P,isBounded:C,useCSSTransforms:g&&j,usePercentages:!j,transformScale:h,w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,minH:n.minH,minW:n.minW,maxH:n.maxH,maxW:n.maxW,static:n.static,droppingPosition:t?k:void 0,resizeHandles:S,resizeHandle:O},e)}}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.style,o=t.isDroppable,l=t.innerRef,c=(0,i.default)(E,n),s=v({height:this.containerHeight()},r);return a.createElement("div",{ref:l,className:c,style:s,onDrop:o?this.onDrop:u.noop,onDragLeave:o?this.onDragLeave:u.noop,onDragEnter:o?this.onDragEnter:u.noop,onDragOver:o?this.onDragOver:u.noop},a.Children.map(this.props.children,(function(t){return e.processGridItem(t)})),o&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}])&&y(t.prototype,n),r&&y(t,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(a.Component);t.default=S,k(S,"displayName","ReactGridLayout"),k(S,"propTypes",s.default),k(S,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:u.noop,onDragStart:u.noop,onDrag:u.noop,onDragStop:u.noop,onResizeStart:u.noop,onResize:u.noop,onResizeStop:u.noop,onDrop:u.noop,onDropDragOver:u.noop})},92886:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resizeHandleType=t.resizeHandleAxesType=t.default=void 0;var r=o(n(45697)),a=o(n(67294));function o(e){return e&&e.__esModule?e:{default:e}}var i=r.default.arrayOf(r.default.oneOf(["s","w","e","n","sw","nw","se","ne"]));t.resizeHandleAxesType=i;var u=r.default.oneOfType([r.default.node,r.default.func]);t.resizeHandleType=u;var l={className:r.default.string,style:r.default.object,width:r.default.number,autoSize:r.default.bool,cols:r.default.number,draggableCancel:r.default.string,draggableHandle:r.default.string,verticalCompact:function(e){e.verticalCompact,0},compactType:r.default.oneOf(["vertical","horizontal"]),layout:function(e){var t=e.layout;void 0!==t&&n(67493).validateLayout(t,"layout")},margin:r.default.arrayOf(r.default.number),containerPadding:r.default.arrayOf(r.default.number),rowHeight:r.default.number,maxRows:r.default.number,isBounded:r.default.bool,isDraggable:r.default.bool,isResizable:r.default.bool,allowOverlap:r.default.bool,preventCollision:r.default.bool,useCSSTransforms:r.default.bool,transformScale:r.default.number,isDroppable:r.default.bool,resizeHandles:i,resizeHandle:u,onLayoutChange:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onDragStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,onResizeStop:r.default.func,onDrop:r.default.func,droppingItem:r.default.shape({i:r.default.string.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired}),children:function(e,t){var n=e[t],r={};a.default.Children.forEach(n,(function(e){if(null!=(null===e||void 0===e?void 0:e.key)){if(r[e.key])throw new Error('Duplicate child key "'+e.key+'" found! This will cause problems in ReactGridLayout.');r[e.key]=!0}}))},innerRef:r.default.any};t.default=l},65966:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(a,i,u):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=f(n(45697)),i=f(n(72307)),u=n(67493),l=n(5651),c=f(n(49580)),s=["breakpoint","breakpoints","cols","layouts","margin","containerPadding","onBreakpointChange","onLayoutChange","onWidthChange"];function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){x(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},b(e,t)}function y(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=O(e);if(t){var o=O(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return w(e)}(this,n)}}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e){return O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},O(e)}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j=function(e){return Object.prototype.toString.call(e)};function k(e,t){return null==e?null:Array.isArray(e)?e:e[t]}var E=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&b(e,t)}(f,e);var t,n,r,o=y(f);function f(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return x(w(e=o.call.apply(o,[this].concat(n))),"state",e.generateInitialState()),x(w(e),"onLayoutChange",(function(t){e.props.onLayoutChange(t,g(g({},e.props.layouts),{},x({},e.state.breakpoint,t)))})),e}return t=f,r=[{key:"getDerivedStateFromProps",value:function(e,t){if(!(0,i.default)(e.layouts,t.layouts)){var n=t.breakpoint,r=t.cols;return{layout:(0,l.findOrGenerateResponsiveLayout)(e.layouts,e.breakpoints,n,n,r,e.compactType),layouts:e.layouts}}return null}}],(n=[{key:"generateInitialState",value:function(){var e=this.props,t=e.width,n=e.breakpoints,r=e.layouts,a=e.cols,o=(0,l.getBreakpointFromWidth)(n,t),i=(0,l.getColsFromBreakpoint)(o,a),u=!1===this.props.verticalCompact?null:this.props.compactType;return{layout:(0,l.findOrGenerateResponsiveLayout)(r,n,o,o,i,u),breakpoint:o,cols:i}}},{key:"componentDidUpdate",value:function(e){this.props.width==e.width&&this.props.breakpoint===e.breakpoint&&(0,i.default)(this.props.breakpoints,e.breakpoints)&&(0,i.default)(this.props.cols,e.cols)||this.onWidthChange(e)}},{key:"onWidthChange",value:function(e){var t=this.props,n=t.breakpoints,r=t.cols,a=t.layouts,o=t.compactType,i=this.props.breakpoint||(0,l.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),c=this.state.breakpoint,s=(0,l.getColsFromBreakpoint)(i,r),f=g({},a);if(c!==i||e.breakpoints!==n||e.cols!==r){c in f||(f[c]=(0,u.cloneLayout)(this.state.layout));var d=(0,l.findOrGenerateResponsiveLayout)(f,n,i,c,s,o);d=(0,u.synchronizeLayoutWithChildren)(d,this.props.children,s,o,this.props.allowOverlap),f[i]=d,this.props.onLayoutChange(d,f),this.props.onBreakpointChange(i,s),this.setState({breakpoint:i,layout:d,cols:s})}var p=k(this.props.margin,i),m=k(this.props.containerPadding,i);this.props.onWidthChange(this.props.width,p,s,m)}},{key:"render",value:function(){var e=this.props,t=(e.breakpoint,e.breakpoints,e.cols,e.layouts,e.margin),n=e.containerPadding,r=(e.onBreakpointChange,e.onLayoutChange,e.onWidthChange,m(e,s));return a.createElement(c.default,p({},r,{margin:k(t,this.state.breakpoint),containerPadding:k(n,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}}])&&h(t.prototype,n),r&&h(t,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(a.Component);t.default=E,x(E,"propTypes",{breakpoint:o.default.string,breakpoints:o.default.object,allowOverlap:o.default.bool,cols:o.default.object,margin:o.default.oneOfType([o.default.array,o.default.object]),containerPadding:o.default.oneOfType([o.default.array,o.default.object]),layouts:function(e,t){if("[object Object]"!==j(e[t]))throw new Error("Layout property must be an object. Received: "+j(e[t]));Object.keys(e[t]).forEach((function(t){if(!(t in e.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,u.validateLayout)(e.layouts[t],"layouts."+t)}))},width:o.default.number.isRequired,onBreakpointChange:o.default.func,onLayoutChange:o.default.func,onWidthChange:o.default.func}),x(E,"defaultProps",{breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},containerPadding:{lg:null,md:null,sm:null,xs:null,xxs:null},layouts:{},margin:[10,10],allowOverlap:!1,onBreakpointChange:u.noop,onLayoutChange:u.noop,onWidthChange:u.noop})},7373:function(e,t){"use strict";function n(e){var t=e.margin,n=e.containerPadding,r=e.containerWidth,a=e.cols;return(r-t[0]*(a-1)-2*n[0])/a}function r(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function a(e,t,n){return Math.max(Math.min(e,n),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.calcGridColWidth=n,t.calcGridItemPosition=function(e,t,a,o,i,u){var l=e.margin,c=e.containerPadding,s=e.rowHeight,f=n(e),d={};u&&u.resizing?(d.width=Math.round(u.resizing.width),d.height=Math.round(u.resizing.height)):(d.width=r(o,f,l[0]),d.height=r(i,s,l[1]));u&&u.dragging?(d.top=Math.round(u.dragging.top),d.left=Math.round(u.dragging.left)):(d.top=Math.round((s+l[1])*a+c[1]),d.left=Math.round((f+l[0])*t+c[0]));return d},t.calcGridItemWHPx=r,t.calcWH=function(e,t,r,o,i){var u=e.margin,l=e.maxRows,c=e.cols,s=e.rowHeight,f=n(e),d=Math.round((t+u[0])/(f+u[0])),p=Math.round((r+u[1])/(s+u[1]));return d=a(d,0,c-o),p=a(p,0,l-i),{w:d,h:p}},t.calcXY=function(e,t,r,o,i){var u=e.margin,l=e.cols,c=e.rowHeight,s=e.maxRows,f=n(e),d=Math.round((r-u[0])/(f+u[0])),p=Math.round((t-u[1])/(c+u[1]));return d=a(d,0,l-o),p=a(p,0,s-i),{x:d,y:p}},t.clamp=a},27135:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=function(e){var t;return t=function(t){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&d(e,t)}(o,t);var n=function(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}(this,n)}}(o);function o(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o);for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return v(p(e=n.call.apply(n,[this].concat(r))),"state",{width:1280}),v(p(e),"elementRef",a.createRef()),v(p(e),"mounted",!1),v(p(e),"onWindowResize",(function(){if(e.mounted){var t=e.elementRef.current;t instanceof HTMLElement&&t.offsetWidth&&e.setState({width:t.offsetWidth})}})),e}return function(e,t,n){t&&f(e.prototype,t);n&&f(e,n);Object.defineProperty(e,"prototype",{writable:!1})}(o,[{key:"componentDidMount",value:function(){this.mounted=!0,window.addEventListener("resize",this.onWindowResize),this.onWindowResize()}},{key:"componentWillUnmount",value:function(){this.mounted=!1,window.removeEventListener("resize",this.onWindowResize)}},{key:"render",value:function(){var t=this.props,n=t.measureBeforeMount,r=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(t,u);return n&&!this.mounted?a.createElement("div",{className:(0,i.default)(this.props.className,g),style:this.props.style,ref:this.elementRef}):a.createElement(e,s({innerRef:this.elementRef},r,this.state))}}]),o}(a.Component),v(t,"defaultProps",{measureBeforeMount:!1}),v(t,"propTypes",{measureBeforeMount:o.default.bool}),t};var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(a,i,u):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=l(n(45697)),i=l(n(86010)),u=["measureBeforeMount"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g="react-grid-layout"},31362:function(e){e.exports=function(e,t,n){return e===t||e.className===t.className&&n(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&n(e.verticalCompact,t.verticalCompact)&&n(e.compactType,t.compactType)&&n(e.layout,t.layout)&&n(e.margin,t.margin)&&n(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.allowOverlap===t.allowOverlap&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&n(e.resizeHandles,t.resizeHandles)&&n(e.resizeHandle,t.resizeHandle)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&n(e.droppingItem,t.droppingItem)&&n(e.innerRef,t.innerRef)}},5651:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findOrGenerateResponsiveLayout=function(e,t,n,o,i,u){if(e[n])return(0,r.cloneLayout)(e[n]);for(var l=e[o],c=a(t),s=c.slice(c.indexOf(n)),f=0,d=s.length;f<d;f++){var p=s[f];if(e[p]){l=e[p];break}}return l=(0,r.cloneLayout)(l||[]),(0,r.compact)((0,r.correctBounds)(l,{cols:i}),u,i)},t.getBreakpointFromWidth=function(e,t){for(var n=a(e),r=n[0],o=1,i=n.length;o<i;o++){var u=n[o];t>e[u]&&(r=u)}return r},t.getColsFromBreakpoint=function(e,t){if(!t[e])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+" is missing!");return t[e]},t.sortBreakpoints=a;var r=n(67493);function a(e){return Object.keys(e).sort((function(t,n){return e[t]-e[n]}))}},67493:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bottom=f,t.childrenEqual=function(e,t){return(0,r.default)(a.default.Children.map(e,(function(e){return null===e||void 0===e?void 0:e.key})),a.default.Children.map(t,(function(e){return null===e||void 0===e?void 0:e.key})))},t.cloneLayout=d,t.cloneLayoutItem=m,t.collides=g,t.compact=h,t.compactItem=w,t.compactType=function(e){var t=e||{},n=t.verticalCompact,r=t.compactType;return!1===n?null:r},t.correctBounds=O,t.fastPositionEqual=function(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height},t.fastRGLPropsEqual=void 0,t.getAllCollisions=k,t.getFirstCollision=j,t.getLayoutItem=x,t.getStatics=E,t.modifyLayout=p,t.moveElement=P,t.moveElementAwayFromCollision=S,t.noop=void 0,t.perc=function(e){return 100*e+"%"},t.setTopLeft=function(e){var t=e.top,n=e.left,r=e.width,a=e.height;return{top:"".concat(t,"px"),left:"".concat(n,"px"),width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.setTransform=function(e){var t=e.top,n=e.left,r=e.width,a=e.height,o="translate(".concat(n,"px,").concat(t,"px)");return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.sortLayoutItems=C,t.sortLayoutItemsByColRow=M,t.sortLayoutItemsByRowCol=_,t.synchronizeLayoutWithChildren=function(e,t,n,r,o){e=e||[];var i=[];a.default.Children.forEach(t,(function(t){if(null!=(null===t||void 0===t?void 0:t.key)){var n=x(e,String(t.key));if(n)i.push(m(n));else{!c&&t.props._grid&&console.warn("`_grid` properties on children have been deprecated as of React 15.2. Please use `data-grid` or add your properties directly to the `layout`.");var r=t.props["data-grid"]||t.props._grid;r?(c||D([r],"ReactGridLayout.children"),i.push(m(u(u({},r),{},{i:t.key})))):i.push(m({w:1,h:1,x:0,y:f(i),i:String(t.key)}))}}}));var l=O(i,{cols:n});return o?l:h(l,r,n)},t.validateLayout=D,t.withLayoutItem=function(e,t,n){var r=x(e,t);return r?(r=n(m(r)),[e=p(e,r),r]):[e,null]};var r=o(n(72307)),a=o(n(67294));function o(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=!0,s=!1;function f(e){for(var t,n=0,r=0,a=e.length;r<a;r++)(t=e[r].y+e[r].h)>n&&(n=t);return n}function d(e){for(var t=Array(e.length),n=0,r=e.length;n<r;n++)t[n]=m(e[n]);return t}function p(e,t){for(var n=Array(e.length),r=0,a=e.length;r<a;r++)t.i===e[r].i?n[r]=t:n[r]=e[r];return n}function m(e){return{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:Boolean(e.moved),static:Boolean(e.static),isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,isBounded:e.isBounded}}var v=n(31362);function g(e,t){return e.i!==t.i&&(!(e.x+e.w<=t.x)&&(!(e.x>=t.x+t.w)&&(!(e.y+e.h<=t.y)&&!(e.y>=t.y+t.h))))}function h(e,t,n){for(var r=E(e),a=C(e,t),o=Array(e.length),i=0,u=a.length;i<u;i++){var l=m(a[i]);l.static||(l=w(r,l,t,n,a),r.push(l)),o[e.indexOf(a[i])]=l,l.moved=!1}return o}t.fastRGLPropsEqual=v;var b={x:"w",y:"h"};function y(e,t,n,r){var a=b[r];t[r]+=1;for(var o=e.map((function(e){return e.i})).indexOf(t.i)+1;o<e.length;o++){var i=e[o];if(!i.static){if(i.y>t.y+t.h)break;g(t,i)&&y(e,i,n+t[a],r)}}t[r]=n}function w(e,t,n,r,a){var o,i="horizontal"===n;if("vertical"===n)for(t.y=Math.min(f(e),t.y);t.y>0&&!j(e,t);)t.y--;else if(i)for(;t.x>0&&!j(e,t);)t.x--;for(;o=j(e,t);)i?y(a,t,o.x+o.w,"x"):y(a,t,o.y+o.h,"y"),i&&t.x+t.w>r&&(t.x=r-t.w,t.y++);return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function O(e,t){for(var n=E(e),r=0,a=e.length;r<a;r++){var o=e[r];if(o.x+o.w>t.cols&&(o.x=t.cols-o.w),o.x<0&&(o.x=0,o.w=t.cols),o.static)for(;j(n,o);)o.y++;else n.push(o)}return e}function x(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n].i===t)return e[n]}function j(e,t){for(var n=0,r=e.length;n<r;n++)if(g(e[n],t))return e[n]}function k(e,t){return e.filter((function(e){return g(e,t)}))}function E(e){return e.filter((function(e){return e.static}))}function P(e,t,n,r,a,o,i,u,l){if(t.static&&!0!==t.isDraggable)return e;if(t.y===r&&t.x===n)return e;A("Moving element ".concat(t.i," to [").concat(String(n),",").concat(String(r),"] from [").concat(t.x,",").concat(t.y,"]"));var c=t.x,s=t.y;"number"===typeof n&&(t.x=n),"number"===typeof r&&(t.y=r),t.moved=!0;var f=C(e,i);("vertical"===i&&"number"===typeof r?s>=r:"horizontal"===i&&"number"===typeof n&&c>=n)&&(f=f.reverse());var p=k(f,t),m=p.length>0;if(m&&l)return d(e);if(m&&o)return A("Collision prevented on ".concat(t.i,", reverting.")),t.x=c,t.y=s,t.moved=!1,e;for(var v=0,g=p.length;v<g;v++){var h=p[v];A("Resolving collision between ".concat(t.i," at [").concat(t.x,",").concat(t.y,"] and ").concat(h.i," at [").concat(h.x,",").concat(h.y,"]")),h.moved||(e=h.static?S(e,h,t,a,i,u):S(e,t,h,a,i,u))}return e}function S(e,t,n,r,a,o){var i="horizontal"===a,u="horizontal"!==a,l=t.static;if(r){r=!1;var c={x:i?Math.max(t.x-n.w,0):n.x,y:u?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"};if(!j(e,c))return A("Doing reverse collision on ".concat(n.i," up to [").concat(c.x,",").concat(c.y,"].")),P(e,n,i?c.x:void 0,u?c.y:void 0,r,l,a,o)}return P(e,n,i?n.x+1:void 0,u?n.y+1:void 0,r,l,a,o)}function C(e,t){return"horizontal"===t?M(e):"vertical"===t?_(e):e}function _(e){return e.slice(0).sort((function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1}))}function M(e){return e.slice(0).sort((function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1}))}function D(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Layout",n=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(var r=0,a=e.length;r<a;r++)for(var o=e[r],i=0;i<n.length;i++)if("number"!==typeof o[n[i]])throw new Error("ReactGridLayout: "+t+"["+r+"]."+n[i]+" must be a number!")}function A(){var e;s&&(e=console).log.apply(e,arguments)}t.noop=function(){}},69968:function(e,t,n){e.exports=n(49580).default,e.exports.utils=n(67493),e.exports.Responsive=n(65966).default,e.exports.Responsive.utils=n(5651),e.exports.WidthProvider=n(27135).default},9446:function(e,t,n){!function(e,t){"use strict";function n(e){return e*Math.PI/180}function r(e,t,n){return e>n?n:e<t?t:e}function a(e,t){return t/100*e}function o(e,t){return e+t/2}function i(e,t){var r=n(e);return{dx:t*Math.cos(r),dy:t*Math.sin(r)}}function u(e){return"number"===typeof e}function l(e,t){return"function"===typeof e?e(t):e}function c(e,t){var n=Object.assign({},t,e);for(var r in t)void 0===e[r]&&(n[r]=t[r]);return n}function s(e){for(var t=0,n=0;n<e.length;n++)t+=e[n].value;return t}function f(e){for(var t=e.data,n=e.lengthAngle,o=e.totalValue,i=e.paddingAngle,u=e.startAngle,l=o||s(t),c=r(n,-360,360),f=360===Math.abs(c)?t.length:t.length-1,d=Math.abs(i)*Math.sign(n),p=c-d*f,m=0,v=[],g=0;g<t.length;g++){var h=t[g],b=0===l?0:h.value/l*100,y=a(p,b),w=m+u;m=m+y+d,v.push(Object.assign({percentage:b,startAngle:w,degrees:y},h))}return v}function d(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}function p(e){var n=e.renderLabel,r=e.labelProps,a=n(r);if("string"===typeof a||"number"===typeof a){r.dataEntry,r.dataIndex;var o=d(r,["dataEntry","dataIndex"]);return t.createElement("text",Object.assign({dominantBaseline:"central"},o),a)}return t.isValidElement(a)?a:null}function m(e){var t=1e14;return Math.round((e+Number.EPSILON)*t)/t}function v(e){var t=e.labelPosition,n=e.lineWidth,r=m(e.labelHorizontalShift);return 0===r?"middle":t>100?r>0?"start":"end":t<100-n?r>0?"end":"start":"middle"}function g(e,t){return e.map((function(e,n){var r,u=null!=(r=l(t.segmentsShift,n))?r:0,c=a(t.radius,t.labelPosition)+u,s=i(o(e.startAngle,e.degrees),c),f=s.dx,d=s.dy;return{x:t.center[0],y:t.center[1],dx:f,dy:d,textAnchor:v({labelPosition:t.labelPosition,lineWidth:t.lineWidth,labelHorizontalShift:f}),dataEntry:e,dataIndex:n,style:l(t.labelStyle,n)}}))}function h(e,n){var r=n.label;if(r)return g(e,n).map((function(e,n){return t.createElement(p,{key:"label-"+(e.dataEntry.key||n),renderLabel:r,labelProps:e})}))}var b=function(e,t,n,r,a){var o=a-r;if(0===o)return[];var i=n*Math.cos(r)+e,u=n*Math.sin(r)+t,l=n*Math.cos(a)+e,c=n*Math.sin(a)+t;return[["M",i,u],["A",n,n,0,Math.abs(o)<=Math.PI?"0":"1",o<0?"0":"1",l,c]]};function y(e,t,a,o,i){var u=r(o,-359.999,359.999);return b(e,t,i,n(a),n(a+u)).map((function(e){return e.join(" ")})).join(" ")}function w(e){var r,l,c=e.cx,s=e.cy,f=e.lengthAngle,p=e.lineWidth,m=e.radius,v=e.shift,g=void 0===v?0:v,h=e.reveal,b=e.rounded,w=e.startAngle,O=e.title,x=d(e,["cx","cy","lengthAngle","lineWidth","radius","shift","reveal","rounded","startAngle","title"]),j=m-p/2,k=i(o(w,f),g),E=y(c+k.dx,s+k.dy,w,f,j);if(u(h)){var P=n(j)*f;l=(r=Math.abs(P))-a(r,h)}return t.createElement("path",Object.assign({d:E,fill:"none",strokeWidth:p,strokeDasharray:r,strokeDashoffset:l,strokeLinecap:b?"round":void 0},x),O&&t.createElement("title",null,O))}function O(e,t,n){var r="stroke-dashoffset "+e+"ms "+t;return n&&n.transition&&(r=r+","+n.transition),{transition:r}}function x(e){return e.animate&&!u(e.reveal)?100:e.reveal}function j(e,t){return e&&function(n){e(n,t)}}function k(e,n,r){var o=null!=r?r:x(n),i=n.radius,u=n.center,c=u[0],s=u[1],f=a(i,n.lineWidth),d=e.map((function(e,r){var a=l(n.segmentsStyle,r);return t.createElement(w,{cx:c,cy:s,key:e.key||r,lengthAngle:e.degrees,lineWidth:f,radius:i,rounded:n.rounded,reveal:o,shift:l(n.segmentsShift,r),startAngle:e.startAngle,title:e.title,style:Object.assign({},a,n.animate&&O(n.animationDuration,n.animationEasing,a)),stroke:e.color,tabIndex:n.segmentsTabIndex,onBlur:j(n.onBlur,r),onClick:j(n.onClick,r),onFocus:j(n.onFocus,r),onKeyDown:j(n.onKeyDown,r),onMouseOver:j(n.onMouseOver,r),onMouseOut:j(n.onMouseOut,r)})}));return n.background&&d.unshift(t.createElement(w,{cx:c,cy:s,key:"bg",lengthAngle:n.lengthAngle,lineWidth:f,radius:i,rounded:n.rounded,startAngle:n.startAngle,stroke:n.background})),d}var E={animationDuration:500,animationEasing:"ease-out",center:[50,50],data:[],labelPosition:50,lengthAngle:360,lineWidth:100,paddingAngle:0,radius:50,startAngle:0,viewBoxSize:[100,100]};function P(e){var n=c(e,E),r=t.useState(n.animate?0:null),a=r[0],o=r[1];t.useEffect((function(){n.animate&&o(null)}),[]);var i=f(n);return t.createElement("svg",{viewBox:"0 0 "+n.viewBoxSize[0]+" "+n.viewBoxSize[1],width:"100%",height:"100%",className:n.className,style:n.style},k(i,n,a),h(i,n),n.children)}e.PieChart=P,e.pieChartDefaultProps=E}(t,n(67294))},83:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){u=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}Object.defineProperty(t,"__esModule",{value:!0});var o=2,i=3,u=4;function l(e,t,n,r,a,l,c){this.acceptsBooleans=t===o||t===i||t===u,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=c}var c={};["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"].forEach((function(e){c[e]=new l(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=r(e,2),n=t[0],a=t[1];c[n]=new l(n,1,!1,a,null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){c[e]=new l(e,o,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){c[e]=new l(e,o,!1,e,null,!1,!1)})),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach((function(e){c[e]=new l(e,i,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){c[e]=new l(e,i,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){c[e]=new l(e,u,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){c[e]=new l(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){c[e]=new l(e,5,!1,e.toLowerCase(),null,!1,!1)}));var s=/[\-\:]([a-z])/g,f=function(e){return e[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach((function(e){var t=e.replace(s,f);c[t]=new l(t,1,!1,e,null,!1,!1)})),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach((function(e){var t=e.replace(s,f);c[t]=new l(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(s,f);c[t]=new l(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){c[e]=new l(e,1,!1,e.toLowerCase(),null,!1,!1)}));c.xlinkHref=new l("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){c[e]=new l(e,1,!1,e.toLowerCase(),null,!0,!0)}));var d=n(78229),p=d.CAMELCASE,m=d.SAME,v=d.possibleStandardNames,g=RegExp.prototype.test.bind(new RegExp("^(data|aria)-[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$")),h=Object.keys(v).reduce((function(e,t){var n=v[t];return n===m?e[t]=t:n===p?e[t.toLowerCase()]=t:e[t]=n,e}),{});t.BOOLEAN=i,t.BOOLEANISH_STRING=o,t.NUMERIC=5,t.OVERLOADED_BOOLEAN=u,t.POSITIVE_NUMERIC=6,t.RESERVED=0,t.STRING=1,t.getPropertyInfo=function(e){return c.hasOwnProperty(e)?c[e]:null},t.isCustomAttribute=g,t.possibleStandardNames=h},78229:function(e,t){t.SAME=0;t.CAMELCASE=1,t.possibleStandardNames={accept:0,acceptCharset:1,"accept-charset":"acceptCharset",accessKey:1,action:0,allowFullScreen:1,alt:0,as:0,async:0,autoCapitalize:1,autoComplete:1,autoCorrect:1,autoFocus:1,autoPlay:1,autoSave:1,capture:0,cellPadding:1,cellSpacing:1,challenge:0,charSet:1,checked:0,children:0,cite:0,class:"className",classID:1,className:1,cols:0,colSpan:1,content:0,contentEditable:1,contextMenu:1,controls:0,controlsList:1,coords:0,crossOrigin:1,dangerouslySetInnerHTML:1,data:0,dateTime:1,default:0,defaultChecked:1,defaultValue:1,defer:0,dir:0,disabled:0,disablePictureInPicture:1,disableRemotePlayback:1,download:0,draggable:0,encType:1,enterKeyHint:1,for:"htmlFor",form:0,formMethod:1,formAction:1,formEncType:1,formNoValidate:1,formTarget:1,frameBorder:1,headers:0,height:0,hidden:0,high:0,href:0,hrefLang:1,htmlFor:1,httpEquiv:1,"http-equiv":"httpEquiv",icon:0,id:0,innerHTML:1,inputMode:1,integrity:0,is:0,itemID:1,itemProp:1,itemRef:1,itemScope:1,itemType:1,keyParams:1,keyType:1,kind:0,label:0,lang:0,list:0,loop:0,low:0,manifest:0,marginWidth:1,marginHeight:1,max:0,maxLength:1,media:0,mediaGroup:1,method:0,min:0,minLength:1,multiple:0,muted:0,name:0,noModule:1,nonce:0,noValidate:1,open:0,optimum:0,pattern:0,placeholder:0,playsInline:1,poster:0,preload:0,profile:0,radioGroup:1,readOnly:1,referrerPolicy:1,rel:0,required:0,reversed:0,role:0,rows:0,rowSpan:1,sandbox:0,scope:0,scoped:0,scrolling:0,seamless:0,selected:0,shape:0,size:0,sizes:0,span:0,spellCheck:1,src:0,srcDoc:1,srcLang:1,srcSet:1,start:0,step:0,style:0,summary:0,tabIndex:1,target:0,title:0,type:0,useMap:1,value:0,width:0,wmode:0,wrap:0,about:0,accentHeight:1,"accent-height":"accentHeight",accumulate:0,additive:0,alignmentBaseline:1,"alignment-baseline":"alignmentBaseline",allowReorder:1,alphabetic:0,amplitude:0,arabicForm:1,"arabic-form":"arabicForm",ascent:0,attributeName:1,attributeType:1,autoReverse:1,azimuth:0,baseFrequency:1,baselineShift:1,"baseline-shift":"baselineShift",baseProfile:1,bbox:0,begin:0,bias:0,by:0,calcMode:1,capHeight:1,"cap-height":"capHeight",clip:0,clipPath:1,"clip-path":"clipPath",clipPathUnits:1,clipRule:1,"clip-rule":"clipRule",color:0,colorInterpolation:1,"color-interpolation":"colorInterpolation",colorInterpolationFilters:1,"color-interpolation-filters":"colorInterpolationFilters",colorProfile:1,"color-profile":"colorProfile",colorRendering:1,"color-rendering":"colorRendering",contentScriptType:1,contentStyleType:1,cursor:0,cx:0,cy:0,d:0,datatype:0,decelerate:0,descent:0,diffuseConstant:1,direction:0,display:0,divisor:0,dominantBaseline:1,"dominant-baseline":"dominantBaseline",dur:0,dx:0,dy:0,edgeMode:1,elevation:0,enableBackground:1,"enable-background":"enableBackground",end:0,exponent:0,externalResourcesRequired:1,fill:0,fillOpacity:1,"fill-opacity":"fillOpacity",fillRule:1,"fill-rule":"fillRule",filter:0,filterRes:1,filterUnits:1,floodOpacity:1,"flood-opacity":"floodOpacity",floodColor:1,"flood-color":"floodColor",focusable:0,fontFamily:1,"font-family":"fontFamily",fontSize:1,"font-size":"fontSize",fontSizeAdjust:1,"font-size-adjust":"fontSizeAdjust",fontStretch:1,"font-stretch":"fontStretch",fontStyle:1,"font-style":"fontStyle",fontVariant:1,"font-variant":"fontVariant",fontWeight:1,"font-weight":"fontWeight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:1,"glyph-name":"glyphName",glyphOrientationHorizontal:1,"glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphOrientationVertical:1,"glyph-orientation-vertical":"glyphOrientationVertical",glyphRef:1,gradientTransform:1,gradientUnits:1,hanging:0,horizAdvX:1,"horiz-adv-x":"horizAdvX",horizOriginX:1,"horiz-origin-x":"horizOriginX",ideographic:0,imageRendering:1,"image-rendering":"imageRendering",in2:0,in:0,inlist:0,intercept:0,k1:0,k2:0,k3:0,k4:0,k:0,kernelMatrix:1,kernelUnitLength:1,kerning:0,keyPoints:1,keySplines:1,keyTimes:1,lengthAdjust:1,letterSpacing:1,"letter-spacing":"letterSpacing",lightingColor:1,"lighting-color":"lightingColor",limitingConeAngle:1,local:0,markerEnd:1,"marker-end":"markerEnd",markerHeight:1,markerMid:1,"marker-mid":"markerMid",markerStart:1,"marker-start":"markerStart",markerUnits:1,markerWidth:1,mask:0,maskContentUnits:1,maskUnits:1,mathematical:0,mode:0,numOctaves:1,offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:1,"overline-position":"overlinePosition",overlineThickness:1,"overline-thickness":"overlineThickness",paintOrder:1,"paint-order":"paintOrder",panose1:0,"panose-1":"panose1",pathLength:1,patternContentUnits:1,patternTransform:1,patternUnits:1,pointerEvents:1,"pointer-events":"pointerEvents",points:0,pointsAtX:1,pointsAtY:1,pointsAtZ:1,prefix:0,preserveAlpha:1,preserveAspectRatio:1,primitiveUnits:1,property:0,r:0,radius:0,refX:1,refY:1,renderingIntent:1,"rendering-intent":"renderingIntent",repeatCount:1,repeatDur:1,requiredExtensions:1,requiredFeatures:1,resource:0,restart:0,result:0,results:0,rotate:0,rx:0,ry:0,scale:0,security:0,seed:0,shapeRendering:1,"shape-rendering":"shapeRendering",slope:0,spacing:0,specularConstant:1,specularExponent:1,speed:0,spreadMethod:1,startOffset:1,stdDeviation:1,stemh:0,stemv:0,stitchTiles:1,stopColor:1,"stop-color":"stopColor",stopOpacity:1,"stop-opacity":"stopOpacity",strikethroughPosition:1,"strikethrough-position":"strikethroughPosition",strikethroughThickness:1,"strikethrough-thickness":"strikethroughThickness",string:0,stroke:0,strokeDasharray:1,"stroke-dasharray":"strokeDasharray",strokeDashoffset:1,"stroke-dashoffset":"strokeDashoffset",strokeLinecap:1,"stroke-linecap":"strokeLinecap",strokeLinejoin:1,"stroke-linejoin":"strokeLinejoin",strokeMiterlimit:1,"stroke-miterlimit":"strokeMiterlimit",strokeWidth:1,"stroke-width":"strokeWidth",strokeOpacity:1,"stroke-opacity":"strokeOpacity",suppressContentEditableWarning:1,suppressHydrationWarning:1,surfaceScale:1,systemLanguage:1,tableValues:1,targetX:1,targetY:1,textAnchor:1,"text-anchor":"textAnchor",textDecoration:1,"text-decoration":"textDecoration",textLength:1,textRendering:1,"text-rendering":"textRendering",to:0,transform:0,typeof:0,u1:0,u2:0,underlinePosition:1,"underline-position":"underlinePosition",underlineThickness:1,"underline-thickness":"underlineThickness",unicode:0,unicodeBidi:1,"unicode-bidi":"unicodeBidi",unicodeRange:1,"unicode-range":"unicodeRange",unitsPerEm:1,"units-per-em":"unitsPerEm",unselectable:0,vAlphabetic:1,"v-alphabetic":"vAlphabetic",values:0,vectorEffect:1,"vector-effect":"vectorEffect",version:0,vertAdvY:1,"vert-adv-y":"vertAdvY",vertOriginX:1,"vert-origin-x":"vertOriginX",vertOriginY:1,"vert-origin-y":"vertOriginY",vHanging:1,"v-hanging":"vHanging",vIdeographic:1,"v-ideographic":"vIdeographic",viewBox:1,viewTarget:1,visibility:0,vMathematical:1,"v-mathematical":"vMathematical",vocab:0,widths:0,wordSpacing:1,"word-spacing":"wordSpacing",writingMode:1,"writing-mode":"writingMode",x1:0,x2:0,x:0,xChannelSelector:1,xHeight:1,"x-height":"xHeight",xlinkActuate:1,"xlink:actuate":"xlinkActuate",xlinkArcrole:1,"xlink:arcrole":"xlinkArcrole",xlinkHref:1,"xlink:href":"xlinkHref",xlinkRole:1,"xlink:role":"xlinkRole",xlinkShow:1,"xlink:show":"xlinkShow",xlinkTitle:1,"xlink:title":"xlinkTitle",xlinkType:1,"xlink:type":"xlinkType",xmlBase:1,"xml:base":"xmlBase",xmlLang:1,"xml:lang":"xmlLang",xmlns:0,"xml:space":"xmlSpace",xmlnsXlink:1,"xmlns:xlink":"xmlnsXlink",xmlSpace:1,y1:0,y2:0,y:0,yChannelSelector:1,z:0,zoomAndPan:1}},22827:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(61193),o=n(59069),i=n(448),u=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}var m=function(e){var t,n;function i(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).handleRefs={},t.lastHandleRect=null,t.slack=null,t}n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,p(t,n);var l=i.prototype;return l.componentWillUnmount=function(){this.resetData()},l.resetData=function(){this.lastHandleRect=this.slack=null},l.runConstraints=function(e,t){var n=this.props,r=n.minConstraints,a=n.maxConstraints,o=n.lockAspectRatio;if(!r&&!a&&!o)return[e,t];if(o){var i=this.props.width/this.props.height,u=e-this.props.width,l=t-this.props.height;Math.abs(u)>Math.abs(l*i)?t=e/i:e=t*i}var c=e,s=t,f=this.slack||[0,0],d=f[0],p=f[1];return e+=d,t+=p,r&&(e=Math.max(r[0],e),t=Math.max(r[1],t)),a&&(e=Math.min(a[0],e),t=Math.min(a[1],t)),this.slack=[d+(c-e),p+(s-t)],[e,t]},l.resizeHandler=function(e,t){var n=this;return function(r,a){var o=a.node,i=a.deltaX,u=a.deltaY;"onResizeStart"===e&&n.resetData();var l=("both"===n.props.axis||"x"===n.props.axis)&&"n"!==t&&"s"!==t,c=("both"===n.props.axis||"y"===n.props.axis)&&"e"!==t&&"w"!==t;if(l||c){var s=t[0],f=t[t.length-1],d=o.getBoundingClientRect();if(null!=n.lastHandleRect){if("w"===f)i+=d.left-n.lastHandleRect.left;if("n"===s)u+=d.top-n.lastHandleRect.top}n.lastHandleRect=d,"w"===f&&(i=-i),"n"===s&&(u=-u);var p=n.props.width+(l?i/n.props.transformScale:0),m=n.props.height+(c?u/n.props.transformScale:0),v=n.runConstraints(p,m);p=v[0],m=v[1];var g=p!==n.props.width||m!==n.props.height,h="function"===typeof n.props[e]?n.props[e]:null;h&&!("onResize"===e&&!g)&&(null==r.persist||r.persist(),h(r,{node:o,size:{width:p,height:m},handle:t})),"onResizeStop"===e&&n.resetData()}}},l.renderResizeHandle=function(e,t){var n=this.props.handle;if(!n)return r.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e,ref:t});if("function"===typeof n)return n(e,t);var a=f({ref:t},"string"===typeof n.type?{}:{handleAxis:e});return r.cloneElement(n,a)},l.render=function(){var e=this,t=this.props,n=t.children,i=t.className,l=t.draggableOpts,s=(t.width,t.height,t.handle,t.handleSize,t.lockAspectRatio,t.axis,t.minConstraints,t.maxConstraints,t.onResize,t.onResizeStop,t.onResizeStart,t.resizeHandles),d=(t.transformScale,function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(t,u));return(0,o.cloneElement)(n,f(f({},d),{},{className:(i?i+" ":"")+"react-resizable",children:[].concat(n.props.children,s.map((function(t){var n,o=null!=(n=e.handleRefs[t])?n:e.handleRefs[t]=r.createRef();return r.createElement(a.DraggableCore,c({},l,{nodeRef:o,key:"resizableHandle-"+t,onStop:e.resizeHandler("onResizeStop",t),onStart:e.resizeHandler("onResizeStart",t),onDrag:e.resizeHandler("onResize",t)}),e.renderResizeHandle(t,o))})))}))},i}(r.Component);t.default=m,m.propTypes=i.resizableProps,m.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1}},8735:function(e,t,n){"use strict";t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=l(n(45697)),o=l(n(22827)),i=n(448),u=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},m(e,t)}var v=function(e){var t,n;function a(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).state={width:t.props.width,height:t.props.height,propsWidth:t.props.width,propsHeight:t.props.height},t.onResize=function(e,n){var r=n.size;t.props.onResize?(null==e.persist||e.persist(),t.setState(r,(function(){return t.props.onResize&&t.props.onResize(e,n)}))):t.setState(r)},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,m(t,n),a.getDerivedStateFromProps=function(e,t){return t.propsWidth!==e.width||t.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null},a.prototype.render=function(){var e=this.props,t=e.handle,n=e.handleSize,a=(e.onResize,e.onResizeStart),i=e.onResizeStop,l=e.draggableOpts,c=e.minConstraints,f=e.maxConstraints,p=e.lockAspectRatio,m=e.axis,v=(e.width,e.height,e.resizeHandles),g=e.style,h=e.transformScale,b=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u);return r.createElement(o.default,{axis:m,draggableOpts:l,handle:t,handleSize:n,height:this.state.height,lockAspectRatio:p,maxConstraints:f,minConstraints:c,onResizeStart:a,onResize:this.onResize,onResizeStop:i,resizeHandles:v,transformScale:h,width:this.state.width},r.createElement("div",s({},b,{style:d(d({},g),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},a}(r.Component);t.default=v,v.propTypes=d(d({},i.resizableProps),{},{children:a.default.element})},448:function(e,t,n){"use strict";t.__esModule=!0,t.resizableProps=void 0;var r,a=(r=n(45697))&&r.__esModule?r:{default:r};n(61193);var o={axis:a.default.oneOf(["both","x","y","none"]),className:a.default.string,children:a.default.element.isRequired,draggableOpts:a.default.shape({allowAnyClick:a.default.bool,cancel:a.default.string,children:a.default.node,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:a.default.node,grid:a.default.arrayOf(a.default.number),handle:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number}),height:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=t[0];return"both"===o.axis||"y"===o.axis?(r=a.default.number).isRequired.apply(r,t):a.default.number.apply(a.default,t)},handle:a.default.oneOfType([a.default.node,a.default.func]),handleSize:a.default.arrayOf(a.default.number),lockAspectRatio:a.default.bool,maxConstraints:a.default.arrayOf(a.default.number),minConstraints:a.default.arrayOf(a.default.number),onResizeStop:a.default.func,onResizeStart:a.default.func,onResize:a.default.func,resizeHandles:a.default.arrayOf(a.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:a.default.number,width:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=t[0];return"both"===o.axis||"x"===o.axis?(r=a.default.number).isRequired.apply(r,t):a.default.number.apply(a.default,t)}};t.resizableProps=o},59069:function(e,t,n){"use strict";t.__esModule=!0,t.cloneElement=function(e,t){t.style&&e.props.style&&(t.style=i(i({},e.props.style),t.style));t.className&&e.props.className&&(t.className=e.props.className+" "+t.className);return a.default.cloneElement(e,t)};var r,a=(r=n(67294))&&r.__esModule?r:{default:r};function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},1706:function(e,t,n){"use strict";e.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},e.exports.Resizable=n(22827).default,e.exports.ResizableBox=n(8735).default},54585:function(e,t,n){"use strict";n.r(t),n.d(t,{createBreakpoint:function(){return Pe},createGlobalState:function(){return mn},createMemo:function(){return o},createReducer:function(){return l},createReducerContext:function(){return i},createStateContext:function(){return c},ensuredForwardRef:function(){return ne},useAsync:function(){return p},useAsyncFn:function(){return d},useAsyncRetry:function(){return m},useAudio:function(){return b},useBattery:function(){return j},useBeforeUnload:function(){return k},useBoolean:function(){return P},useClickAway:function(){return C},useCookie:function(){return D},useCopyToClipboard:function(){return z},useCounter:function(){return F},useCss:function(){return q},useCustomCompareEffect:function(){return G},useDebounce:function(){return X.Z},useDeepCompareEffect:function(){return K},useDefault:function(){return $},useDrop:function(){return J},useDropArea:function(){return Q},useEffectOnce:function(){return ee.Z},useEnsuredForwardedRef:function(){return te},useError:function(){return ue},useEvent:function(){return ie},useFavicon:function(){return le},useFirstMountState:function(){return Wt.Z},useFullscreen:function(){return fe},useGeolocation:function(){return de},useGetSet:function(){return I},useGetSetState:function(){return pe},useHarmonicIntervalFn:function(){return ge},useHash:function(){return vn},useHover:function(){return be},useHoverDirty:function(){return ye},useIdle:function(){return xe},useIntersection:function(){return je},useInterval:function(){return ke.Z},useIsomorphicLayoutEffect:function(){return U.Z},useKey:function(){return Ee},useKeyPress:function(){return Se},useKeyPressEvent:function(){return Ce},useLatest:function(){return _e},useLifecycles:function(){return Me},useList:function(){return De},useLocalStorage:function(){return Ae},useLocation:function(){return Re},useLockBodyScroll:function(){return Be},useLogger:function(){return Ue},useLongPress:function(){return Ze},useMap:function(){return qe},useMeasure:function(){return sn.Z},useMedia:function(){return Ge.Z},useMediaDevices:function(){return Xe},useMediatedState:function(){return Ke},useMethods:function(){return $e},useMotion:function(){return Qe},useMount:function(){return et},useMountedState:function(){return f},useMouse:function(){return rt},useMouseHovered:function(){return ot},useMouseWheel:function(){return it},useMultiStateValidator:function(){return on},useNetworkState:function(){return st},useNumber:function(){return ft},useObservable:function(){return dt},useOrientation:function(){return mt},usePageLeave:function(){return vt},usePermission:function(){return gt},usePinchZoom:function(){return fn},usePrevious:function(){return ht.Z},usePreviousDistinct:function(){return bt.Z},usePromise:function(){return yt},useQueue:function(){return wt},useRaf:function(){return Ot},useRafLoop:function(){return xt},useRafState:function(){return nt},useRendersCount:function(){return dn},useScratch:function(){return St},useScroll:function(){return Ct},useScrollbarWidth:function(){return an},useScrolling:function(){return _t},useSearchParam:function(){return Et},useSessionStorage:function(){return Mt},useSet:function(){return pn},useSetState:function(){return v},useShallowCompareEffect:function(){return Tt},useSize:function(){return Lt},useSlider:function(){return It},useSpeech:function(){return Ft},useStartTyping:function(){return Ht},useStateList:function(){return Bt},useStateValidator:function(){return nn},useStateWithHistory:function(){return Vt},useThrottle:function(){return Ut},useThrottleFn:function(){return Yt},useTimeout:function(){return qt},useTimeoutFn:function(){return Zt.Z},useTitle:function(){return Xt},useToggle:function(){return E.Z},useTween:function(){return $t},useUnmount:function(){return tt.Z},useUnmountPromise:function(){return Jt},useUpdate:function(){return R},useUpdateEffect:function(){return u.Z},useUpsert:function(){return Qt},useVibrate:function(){return en},useVideo:function(){return tn},useWindowScroll:function(){return ln},useWindowSize:function(){return cn}});var r=n(67294),a=n.t(r,2),o=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0,r.useMemo)((function(){return e.apply(void 0,t)}),t)}},i=function(e,t){var n=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(n);if(null==e)throw new Error("useReducerContext must be used inside a ReducerProvider.");return e},function(a){var o=a.children,i=a.initialState;return function(e,t){return(0,r.createElement)(n.Provider,e,t)}({value:(0,r.useReducer)(e,void 0!==i?i:t)},o)},n]},u=n(48286);var l=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,a=(n=e,function(e,t){return n.reduceRight((function(t,n){return n(e)(t)}),t)});return function(e,t,n){void 0===n&&(n=function(e){return e});var o=(0,r.useRef)(n(t)),i=(0,r.useState)(o.current)[1],l=(0,r.useCallback)((function(t){return o.current=e(o.current,t),i(o.current),t}),[e]),c=(0,r.useRef)(a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return c.current.apply(c,e)}},l));return(0,u.Z)((function(){c.current=a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return c.current.apply(c,e)}},l)}),[l]),[o.current,c.current]}},c=function(e){var t=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(t);if(null==e)throw new Error("useStateContext must be used inside a StateProvider.");return e},function(n){var a=n.children,o=n.initialValue;return function(e,n){return(0,r.createElement)(t.Provider,e,n)}({value:(0,r.useState)(void 0!==o?o:e)},a)},t]},s=n(5272);function f(){var e=(0,r.useRef)(!1),t=(0,r.useCallback)((function(){return e.current}),[]);return(0,r.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),t}function d(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var a=(0,r.useRef)(0),o=f(),i=(0,r.useState)(n),u=i[0],l=i[1],c=(0,r.useCallback)((function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=++a.current;return u.loading||l((function(e){return(0,s.__assign)((0,s.__assign)({},e),{loading:!0})})),e.apply(void 0,t).then((function(e){return o()&&r===a.current&&l({value:e,loading:!1}),e}),(function(e){return o()&&r===a.current&&l({error:e,loading:!1}),e}))}),t);return[u,c]}function p(e,t){void 0===t&&(t=[]);var n=d(e,t,{loading:!0}),a=n[0],o=n[1];return(0,r.useEffect)((function(){o()}),[o]),a}var m=function(e,t){void 0===t&&(t=[]);var n=(0,r.useState)(0),a=n[0],o=n[1],i=p(e,(0,s.__spreadArrays)(t,[a])),u=i.loading,l=(0,r.useCallback)((function(){u||o((function(e){return e+1}))}),(0,s.__spreadArrays)(t,[u]));return(0,s.__assign)((0,s.__assign)({},i),{retry:l})},v=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(e){a((function(t){return Object.assign({},t,e instanceof Function?e(t):e)}))}),[])]};function g(e){for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function h(e){return function(t){var n,a;a=r.isValidElement(t)?(n=t).props:t;var o=v({buffered:[],time:0,duration:0,paused:!0,muted:!1,volume:1,playing:!1}),i=o[0],u=o[1],l=(0,r.useRef)(null),c=function(e,t){return function(n){try{t&&t(n)}finally{e&&e(n)}}},f=function(){return u({paused:!1})},d=function(){return u({playing:!0})},p=function(){return u({playing:!1})},m=function(){return u({paused:!0,playing:!1})},h=function(){var e=l.current;e&&u({muted:e.muted,volume:e.volume})},b=function(){var e=l.current;if(e){var t=e.duration,n=e.buffered;u({duration:t,buffered:g(n)})}},y=function(){var e=l.current;e&&u({time:e.currentTime})},w=function(){var e=l.current;e&&u({buffered:g(e.buffered)})};n=n?r.cloneElement(n,(0,s.__assign)((0,s.__assign)({controls:!1},a),{ref:l,onPlay:c(a.onPlay,f),onPlaying:c(a.onPlaying,d),onWaiting:c(a.onWaiting,p),onPause:c(a.onPause,m),onVolumeChange:c(a.onVolumeChange,h),onDurationChange:c(a.onDurationChange,b),onTimeUpdate:c(a.onTimeUpdate,y),onProgress:c(a.onProgress,w)})):r.createElement(e,(0,s.__assign)((0,s.__assign)({controls:!1},a),{ref:l,onPlay:c(a.onPlay,f),onPlaying:c(a.onPlaying,d),onWaiting:c(a.onWaiting,p),onPause:c(a.onPause,m),onVolumeChange:c(a.onVolumeChange,h),onDurationChange:c(a.onDurationChange,b),onTimeUpdate:c(a.onTimeUpdate,y),onProgress:c(a.onProgress,w)}));var O=!1,x={play:function(){var e=l.current;if(e&&!O){var t=e.play();if("object"===typeof t){O=!0;var n=function(){O=!1};t.then(n,n)}return t}},pause:function(){var e=l.current;if(e&&!O)return e.pause()},seek:function(e){var t=l.current;t&&void 0!==i.duration&&(e=Math.min(i.duration,Math.max(0,e)),t.currentTime=e)},volume:function(e){var t=l.current;t&&(e=Math.min(1,Math.max(0,e)),t.volume=e,u({volume:e}))},mute:function(){var e=l.current;e&&(e.muted=!0)},unmute:function(){var e=l.current;e&&(e.muted=!1)}};return(0,r.useEffect)((function(){var e=l.current;e&&(u({volume:e.volume,muted:e.muted,paused:e.paused}),a.autoPlay&&e.paused&&x.play())}),[a.src]),[n,i,x,l]}}var b=h("audio"),y=n(76362),w=n(38252),O=n.n(w)(),x=y.ae?navigator:void 0;var j=x&&"function"===typeof x.getBattery?function(){var e=(0,r.useState)({isSupported:!0,fetched:!1}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,r=null,a=function(){if(e&&r){var a={isSupported:!0,fetched:!0,level:r.level,charging:r.charging,dischargingTime:r.dischargingTime,chargingTime:r.chargingTime};!O(t,a)&&n(a)}};return x.getBattery().then((function(t){e&&(r=t,(0,y.on)(r,"chargingchange",a),(0,y.on)(r,"chargingtimechange",a),(0,y.on)(r,"dischargingtimechange",a),(0,y.on)(r,"levelchange",a),a())})),function(){e=!1,r&&((0,y.S1)(r,"chargingchange",a),(0,y.S1)(r,"chargingtimechange",a),(0,y.S1)(r,"dischargingtimechange",a),(0,y.S1)(r,"levelchange",a))}}),[]),t}:function(){return{isSupported:!1}},k=function(e,t){void 0===e&&(e=!0);var n=(0,r.useCallback)((function(n){if("function"!==typeof e||e())return n.preventDefault(),t&&(n.returnValue=t),t}),[e,t]);(0,r.useEffect)((function(){if(e)return(0,y.on)(window,"beforeunload",n),function(){return(0,y.S1)(window,"beforeunload",n)}}),[e,n])},E=n(89211),P=E.Z,S=["mousedown","touchstart"],C=function(e,t,n){void 0===n&&(n=S);var a=(0,r.useRef)(t);(0,r.useEffect)((function(){a.current=t}),[t]),(0,r.useEffect)((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&a.current(t)},r=0,o=n;r<o.length;r++){var i=o[r];(0,y.on)(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var a=r[e];(0,y.S1)(document,a,t)}}}),[n,e])},_=n(36808),M=n.n(_),D=function(e){var t=(0,r.useState)((function(){return M().get(e)||null})),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t,n){M().set(e,t,n),a(t)}),[e]),(0,r.useCallback)((function(){M().remove(e),a(null)}),[e])]},A=n(20640),T=n.n(A),z=function(){var e=f(),t=v({value:void 0,error:void 0,noUserInteraction:!0}),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t){var n,r;if(e())try{if("string"!==typeof t&&"number"!==typeof t){var o=new Error("Cannot copy typeof "+typeof t+" to clipboard, must be a string");return void a({value:t,error:o,noUserInteraction:!0})}if(""===t){o=new Error("Cannot copy empty string to clipboard.");return void a({value:t,error:o,noUserInteraction:!0})}r=t.toString(),n=T()(r),a({value:r,error:void 0,noUserInteraction:n})}catch(o){a({value:r,error:o,noUserInteraction:n})}}),[])]},N=function(e){return(e+1)%1e6};function R(){return(0,r.useReducer)(N,0)[1]}function L(e,t){return"function"===typeof e?e.length?e(t):e():e}function I(e){var t=(0,r.useRef)(L(e)),n=R();return(0,r.useMemo)((function(){return[function(){return t.current},function(e){t.current=L(e,t.current),n()}]}),[])}function F(e,t,n){void 0===e&&(e=0),void 0===t&&(t=null),void 0===n&&(n=null);var a=L(e);"number"!==typeof a&&console.error("initialValue has to be a number, got "+typeof e),"number"===typeof n?a=Math.max(a,n):null!==n&&console.error("min has to be a number, got "+typeof n),"number"===typeof t?a=Math.min(a,t):null!==t&&console.error("max has to be a number, got "+typeof t);var o=I(a),i=o[0],u=o[1];return[i(),(0,r.useMemo)((function(){var e=function(e){var r=i(),a=L(e,r);r!==a&&("number"===typeof n&&(a=Math.max(a,n)),"number"===typeof t&&(a=Math.min(a,t)),r!==a&&u(a))};return{get:i,set:e,inc:function(t){void 0===t&&(t=1);var n=L(t,i());"number"!==typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e+n}))},dec:function(t){void 0===t&&(t=1);var n=L(t,i());"number"!==typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e-n}))},reset:function(t){void 0===t&&(t=a);var n=L(t,i());"number"!==typeof n&&console.error("value has to be a number or function returning a number, got "+typeof n),a=n,e(n)}}}),[a,n,t])]}var H=n(40818),W=n(97142),V=n(52099),B=n(87749),U=n(11042),Y=(0,H.U)();(0,W.I)(Y),(0,V.I)(Y);var Z=0,q=function(e){var t=(0,r.useMemo)((function(){return"react-use-css-"+(Z++).toString(36)}),[]),n=(0,r.useMemo)((function(){return new Y.VSheet}),[]);return(0,U.Z)((function(){var r={};return(0,B.z)(r,e,"."+t,""),n.diff(r),function(){n.diff({})}})),t},G=function(e,t,n){var a=(0,r.useRef)(void 0);a.current&&n(t,a.current)||(a.current=t),(0,r.useEffect)(e,a.current)},X=n(62554),K=function(e,t){G(e,t,O)},$=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return void 0===a||null===a?[e,o]:[a,o]},J=function(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=e.onFiles,a=e.onText,o=e.onUri,i=(0,r.useState)(!1),u=i[0],l=i[1],c=(0,r.useCallback)(l,[]),f=(0,r.useMemo)((function(){return function(e){return function(t,n){var r=t.getData("text/uri-list");if(r)(e.onUri||y.ZT)(r,n);else if(t.files&&t.files.length)(e.onFiles||y.ZT)(Array.from(t.files),n);else if(n.clipboardData){var a=n.clipboardData.getData("text");(e.onText||y.ZT)(a,n)}}}(e)}),[n,a,o]);return(0,r.useEffect)((function(){var e=function(e){e.preventDefault(),c(!0)},t=function(e){e.preventDefault(),c(!0)},n=function(){c(!1)},r=function(){c(!1)},o=function(e){e.preventDefault(),c(!1),f(e.dataTransfer,e)},i=function(e){f(e.clipboardData,e)};return(0,y.on)(document,"dragover",e),(0,y.on)(document,"dragenter",t),(0,y.on)(document,"dragleave",n),(0,y.on)(document,"dragexit",r),(0,y.on)(document,"drop",o),a&&(0,y.on)(document,"paste",i),function(){(0,y.S1)(document,"dragover",e),(0,y.S1)(document,"dragenter",t),(0,y.S1)(document,"dragleave",n),(0,y.S1)(document,"dragexit",r),(0,y.S1)(document,"drop",o),(0,y.S1)(document,"paste",i)}}),(0,s.__spreadArrays)([f],t)),{over:u}},Q=function(e){void 0===e&&(e={});var t=e.onFiles,n=e.onText,a=e.onUri,o=f(),i=(0,r.useState)(!1),u=i[0],l=i[1],c=(0,r.useMemo)((function(){return function(e,t){return function(n,r){var a=n.getData("text/uri-list");a?(e.onUri||y.ZT)(a,r):n.files&&n.files.length?(e.onFiles||y.ZT)(Array.from(n.files),r):n.items&&n.items.length&&n.items[0].getAsString((function(n){t&&(e.onText||y.ZT)(n,r)}))}}(e,o())}),[t,n,a]),s=(0,r.useMemo)((function(){return function(e,t){return{onDragOver:function(e){e.preventDefault()},onDragEnter:function(e){e.preventDefault(),t(!0)},onDragLeave:function(){t(!1)},onDrop:function(n){n.preventDefault(),n.persist(),t(!1),e(n.dataTransfer,n)},onPaste:function(t){t.persist(),e(t.clipboardData,t)}}}(c,l)}),[c,l]);return[s,{over:u}]},ee=n(18127);function te(e){var t=(0,r.useRef)(e&&e.current);return(0,r.useEffect)((function(){e&&(e.current=t.current)}),[e]),t}function ne(e){return(0,r.forwardRef)((function(t,n){var r=te(n);return e(t,r)}))}var re=y.jU?window:null,ae=function(e){return!!e.addEventListener},oe=function(e){return!!e.on},ie=function(e,t,n,a){void 0===n&&(n=re),(0,r.useEffect)((function(){if(t&&n)return ae(n)?(0,y.on)(n,e,t,a):oe(n)&&n.on(e,t,a),function(){ae(n)?(0,y.S1)(n,e,t,a):oe(n)&&n.off(e,t,a)}}),[e,t,n,JSON.stringify(a)])},ue=function(){var e=(0,r.useState)(null),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(t)throw t}),[t]),(0,r.useCallback)((function(e){n(e)}),[])},le=function(e){(0,r.useEffect)((function(){var t=document.querySelector("link[rel*='icon']")||document.createElement("link");t.type="image/x-icon",t.rel="shortcut icon",t.href=e,document.getElementsByTagName("head")[0].appendChild(t)}),[e])},ce=n(10577),se=n.n(ce),fe=function(e,t,n){void 0===n&&(n={});var a=n.video,o=n.onClose,i=void 0===o?y.ZT:o,u=(0,r.useState)(t),l=u[0],c=u[1];return(0,U.Z)((function(){if(t&&e.current){var n=function(){(null===a||void 0===a?void 0:a.current)&&(0,y.S1)(a.current,"webkitendfullscreen",n),i()},r=function(){if(se().isEnabled){var e=se().isFullscreen;c(e),e||i()}};if(se().isEnabled){try{se().request(e.current),c(!0)}catch(u){i(u),c(!1)}se().on("change",r)}else a&&a.current&&a.current.webkitEnterFullscreen?(a.current.webkitEnterFullscreen(),(0,y.on)(a.current,"webkitendfullscreen",n),c(!0)):(i(),c(!1));return function(){if(c(!1),se().isEnabled)try{se().off("change",r),se().exit()}catch(o){}else a&&a.current&&a.current.webkitExitFullscreen&&((0,y.S1)(a.current,"webkitendfullscreen",n),a.current.webkitExitFullscreen())}}}),[t,a,e]),l},de=function(e){var t,n=(0,r.useState)({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now()}),a=n[0],o=n[1],i=!0,u=function(e){i&&o({loading:!1,accuracy:e.coords.accuracy,altitude:e.coords.altitude,altitudeAccuracy:e.coords.altitudeAccuracy,heading:e.coords.heading,latitude:e.coords.latitude,longitude:e.coords.longitude,speed:e.coords.speed,timestamp:e.timestamp})},l=function(e){return i&&o((function(t){return(0,s.__assign)((0,s.__assign)({},t),{loading:!1,error:e})}))};return(0,r.useEffect)((function(){return navigator.geolocation.getCurrentPosition(u,l,e),t=navigator.geolocation.watchPosition(u,l,e),function(){i=!1,navigator.geolocation.clearWatch(t)}}),[]),a},pe=function(e){void 0===e&&(e={});var t=R(),n=(0,r.useRef)((0,s.__assign)({},e));return[(0,r.useCallback)((function(){return n.current}),[]),(0,r.useCallback)((function(e){e&&(Object.assign(n.current,e),t())}),[])]},me=0,ve={},ge=function(e,t){void 0===t&&(t=0);var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=function(e,t){var n,r=me++;if(ve[t])ve[t].listeners[r]=e;else{var a=setInterval((function(){for(var e,n=ve[t].listeners,r=!1,a=0,o=Object.values(n);a<o.length;a++){var i=o[a];try{i()}catch(u){r=!0,e=u}}if(r)throw e}),t);ve[t]={ms:t,timer:a,listeners:(n={},n[r]=e,n)}}return{bucket:ve[t],id:r}}((function(){return n.current()}),t);return function(){return function(e){var t=e.bucket,n=e.id;delete t.listeners[n];var r=!1;for(var a in t.listeners){r=!0;break}r||(clearInterval(t.timer),delete ve[t.ms])}(e)}}}),[t])},he=r.useState,be=function(e){var t,n,a=he(!1),o=a[0],i=a[1];return"function"===typeof e&&(e=e(o)),[r.cloneElement(e,{onMouseEnter:(n=e.props.onMouseEnter,function(e){(n||y.ZT)(e),i(!0)}),onMouseLeave:(t=e.props.onMouseLeave,function(e){(t||y.ZT)(e),i(!1)})}),o]},ye=function(e,t){void 0===t&&(t=!0);var n=(0,r.useState)(!1),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){return o(!0)},r=function(){return o(!1)};t&&e&&e.current&&((0,y.on)(e.current,"mouseover",n),(0,y.on)(e.current,"mouseout",r));var a=e.current;return function(){t&&a&&((0,y.S1)(a,"mouseover",n),(0,y.S1)(a,"mouseout",r))}}),[t,e]),a};function we(e,t,n,r){var a,o=!1,i=0;function u(){a&&clearTimeout(a)}function l(){for(var l=arguments.length,c=new Array(l),s=0;s<l;s++)c[s]=arguments[s];var f=this,d=Date.now()-i;function p(){i=Date.now(),n.apply(f,c)}o||(r&&!a&&p(),u(),void 0===r&&d>e?p():!0!==t&&(a=setTimeout(r?function(){a=void 0}:p,void 0===r?e-d:e)))}return"boolean"!==typeof t&&(r=n,n=t,t=void 0),l.cancel=function(){u(),o=!0},l}var Oe=["mousemove","mousedown","resize","keydown","touchstart","wheel"],xe=function(e,t,n){void 0===e&&(e=6e4),void 0===t&&(t=!1),void 0===n&&(n=Oe);var a=(0,r.useState)(t),o=a[0],i=a[1];return(0,r.useEffect)((function(){for(var t,r=!0,a=o,u=function(e){r&&(a=e,i(e))},l=we(50,(function(){a&&u(!1),clearTimeout(t),t=setTimeout((function(){return u(!0)}),e)})),c=function(){document.hidden||l()},s=0;s<n.length;s++)(0,y.on)(window,n[s],l);return(0,y.on)(document,"visibilitychange",c),t=setTimeout((function(){return u(!0)}),e),function(){r=!1;for(var e=0;e<n.length;e++)(0,y.S1)(window,n[e],l);(0,y.S1)(document,"visibilitychange",c)}}),[e,n]),o},je=function(e,t){var n=(0,r.useState)(null),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(e.current&&"function"===typeof IntersectionObserver){var n=new IntersectionObserver((function(e){o(e[0])}),t);return n.observe(e.current),function(){o(null),n.disconnect()}}return function(){}}),[e.current,t.threshold,t.root,t.rootMargin]),a},ke=n(43337),Ee=function(e,t,n,a){void 0===t&&(t=y.ZT),void 0===n&&(n={}),void 0===a&&(a=[e]);var o=n.event,i=void 0===o?"keydown":o,u=n.target,l=n.options,c=(0,r.useMemo)((function(){var n,r="function"===typeof(n=e)?n:"string"===typeof n?function(e){return e.key===n}:n?function(){return!0}:function(){return!1};return function(e){if(r(e))return t(e)}}),a);ie(i,c,u,l)},Pe=function(e){return void 0===e&&(e={laptopL:1440,laptop:1024,tablet:768}),function(){var t=(0,r.useState)(y.jU?window.innerWidth:0),n=t[0],a=t[1];(0,r.useEffect)((function(){var e=function(){a(window.innerWidth)};return e(),(0,y.on)(window,"resize",e),function(){(0,y.S1)(window,"resize",e)}}));var o=(0,r.useMemo)((function(){return Object.entries(e).sort((function(e,t){return e[1]>=t[1]?1:-1}))}),[e]),i=o.reduce((function(e,t){var r=t[0],a=t[1];return n>=a?r:e}),o[0][0]);return i}},Se=function(e){var t=(0,r.useState)([!1,null]),n=t[0],a=t[1];return Ee(e,(function(e){return a([!0,e])}),{event:"keydown"},[n]),Ee(e,(function(e){return a([!1,e])}),{event:"keyup"},[n]),n},Ce=function(e,t,n,r){void 0===r&&(r=Se);var a=r(e),o=a[0],i=a[1];(0,u.Z)((function(){!o&&n?n(i):o&&t&&t(i)}),[o])},_e=function(e){var t=(0,r.useRef)(e);return t.current=e,t},Me=function(e,t){(0,r.useEffect)((function(){return e&&e(),function(){t&&t()}}),[])};var De=function(e){void 0===e&&(e=[]);var t=(0,r.useRef)(L(e)),n=R(),a=(0,r.useMemo)((function(){var r={set:function(e){t.current=L(e,t.current),n()},push:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.length&&a.set((function(t){return t.concat(e)}))},updateAt:function(e,t){a.set((function(n){var r=n.slice();return r[e]=t,r}))},insertAt:function(e,t){a.set((function(n){var r=n.slice();return e>r.length?r[e]=t:r.splice(e,0,t),r}))},update:function(e,t){a.set((function(n){return n.map((function(n){return e(n,t)?t:n}))}))},updateFirst:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0&&a.updateAt(r,n)},upsert:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0?a.updateAt(r,n):a.push(n)},sort:function(e){a.set((function(t){return t.slice().sort(e)}))},filter:function(e,t){a.set((function(n){return n.slice().filter(e,t)}))},removeAt:function(e){a.set((function(t){var n=t.slice();return n.splice(e,1),n}))},clear:function(){a.set([])},reset:function(){a.set(L(e).slice())}};return r.remove=r.removeAt,r}),[]);return[t.current,a]},Ae=function(e,t,n){if(!y.jU)return[t,y.ZT,y.ZT];if(!e)throw new Error("useLocalStorage key may not be falsy");var a=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,o=(0,r.useRef)((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,o=localStorage.getItem(e);return null!==o?a(o):(t&&localStorage.setItem(e,r(t)),t)}catch(i){return t}})),i=(0,r.useState)((function(){return o.current(e)})),u=i[0],l=i[1];(0,r.useLayoutEffect)((function(){return l(o.current(e))}),[e]);var c=(0,r.useCallback)((function(t){try{var r="function"===typeof t?t(u):t;if("undefined"===typeof r)return;var o=void 0;o=n?n.raw?"string"===typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,o),l(a(o))}catch(i){}}),[e,l]),s=(0,r.useCallback)((function(){try{localStorage.removeItem(e),l(void 0)}catch(i){}}),[e,l]);return[u,c,s]},Te=function(e){var t=window.history,n=t[e];t[e]=function(t){var r=n.apply(this,arguments),a=new Event(e.toLowerCase());return a.state=t,window.dispatchEvent(a),r}};y.jU&&(Te("pushState"),Te("replaceState"));var ze=function(e){var t=window.history,n=t.state,r=t.length,a=window.location;return{trigger:e,state:n,length:r,hash:a.hash,host:a.host,hostname:a.hostname,href:a.href,origin:a.origin,pathname:a.pathname,port:a.port,protocol:a.protocol,search:a.search}},Ne="function"===typeof Event,Re=y.jU&&Ne?function(){var e=(0,r.useState)(ze("load")),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){return n(ze("popstate"))},t=function(){return n(ze("pushstate"))},r=function(){return n(ze("replacestate"))};return(0,y.on)(window,"popstate",e),(0,y.on)(window,"pushstate",t),(0,y.on)(window,"replacestate",r),function(){(0,y.S1)(window,"popstate",e),(0,y.S1)(window,"pushstate",t),(0,y.S1)(window,"replacestate",r)}}),[]),t}:function(){return{trigger:"load",length:1}};function Le(e){if(!e)return null;if("BODY"===e.tagName)return e;if("IFRAME"===e.tagName){var t=e.contentDocument;return t?t.body:null}return e.offsetParent?Le(e.offsetParent):null}function Ie(e){var t=e||window.event;return t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)}var Fe=y.jU&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),He=new Map,We="object"===typeof document?document:void 0,Ve=!1,Be=We?function(e,t){void 0===e&&(e=!0);var n=(0,r.useRef)(We.body);t=t||n;var a=function(e){var t=He.get(e);t&&(1===t.counter?(He.delete(e),Fe?(e.ontouchmove=null,Ve&&((0,y.S1)(document,"touchmove",Ie),Ve=!1)):e.style.overflow=t.initialOverflow):He.set(e,{counter:t.counter-1,initialOverflow:t.initialOverflow}))};(0,r.useEffect)((function(){var n=Le(t.current);n&&(e?function(e){var t=He.get(e);t?He.set(e,{counter:t.counter+1,initialOverflow:t.initialOverflow}):(He.set(e,{counter:1,initialOverflow:e.style.overflow}),Fe?Ve||((0,y.on)(document,"touchmove",Ie,{passive:!1}),Ve=!0):e.style.overflow="hidden")}(n):a(n))}),[e,t.current]),(0,r.useEffect)((function(){var e=Le(t.current);if(e)return function(){a(e)}}),[])}:function(e,t){void 0===e&&(e=!0)},Ue=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];(0,ee.Z)((function(){return console.log.apply(console,(0,s.__spreadArrays)([e+" mounted"],t)),function(){return console.log(e+" unmounted")}})),(0,u.Z)((function(){console.log.apply(console,(0,s.__spreadArrays)([e+" updated"],t))}))},Ye=function(e){(function(e){return"touches"in e})(e)&&e.touches.length<2&&e.preventDefault&&e.preventDefault()},Ze=function(e,t){var n=void 0===t?{}:t,a=n.isPreventDefault,o=void 0===a||a,i=n.delay,u=void 0===i?300:i,l=(0,r.useRef)(),c=(0,r.useRef)(),s=(0,r.useCallback)((function(t){o&&t.target&&((0,y.on)(t.target,"touchend",Ye,{passive:!1}),c.current=t.target),l.current=setTimeout((function(){return e(t)}),u)}),[e,u,o]),f=(0,r.useCallback)((function(){l.current&&clearTimeout(l.current),o&&c.current&&(0,y.S1)(c.current,"touchend",Ye)}),[o]);return{onMouseDown:function(e){return s(e)},onTouchStart:function(e){return s(e)},onMouseUp:f,onMouseLeave:f,onTouchEnd:f}},qe=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{set:function(e,t){a((function(n){var r;return(0,s.__assign)((0,s.__assign)({},n),((r={})[e]=t,r))}))},setAll:function(e){a(e)},remove:function(e){a((function(t){var n=t,r=e;n[r];return(0,s.__rest)(n,["symbol"===typeof r?r:r+""])}))},reset:function(){return a(e)}}}),[a]),i=(0,s.__assign)({get:(0,r.useCallback)((function(e){return n[e]}),[n])},o);return[n,i]},Ge=n(94829),Xe=y.ae&&navigator.mediaDevices?function(){var e=(0,r.useState)({}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,t=function(){navigator.mediaDevices.enumerateDevices().then((function(t){e&&n({devices:t.map((function(e){return{deviceId:e.deviceId,groupId:e.groupId,kind:e.kind,label:e.label}}))})})).catch(y.ZT)};return(0,y.on)(navigator.mediaDevices,"devicechange",t),t(),function(){e=!1,(0,y.S1)(navigator.mediaDevices,"devicechange",t)}}),[]),t}:function(){return{}};function Ke(e,t){var n=(0,r.useRef)(e),a=(0,r.useState)(t),o=a[0],i=a[1];return[o,(0,r.useCallback)((function(e){2===n.current.length?n.current(e,i):i(n.current(e))}),[o])]}var $e=function(e,t){var n=(0,r.useMemo)((function(){return function(t,n){var r;return(r=e(t))[n.type].apply(r,n.payload)}}),[e]),a=(0,r.useReducer)(n,t),o=a[0],i=a[1],u=(0,r.useMemo)((function(){return Object.keys(e(t)).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i({type:t,payload:e})},e}),{})}),[e,t]);return[o,u]},Je={acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null},rotationRate:{alpha:null,beta:null,gamma:null},interval:16},Qe=function(e){void 0===e&&(e=Je);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(e){var t=e.acceleration,n=e.accelerationIncludingGravity,r=e.rotationRate,o=e.interval;a({acceleration:{x:t.x,y:t.y,z:t.z},accelerationIncludingGravity:{x:n.x,y:n.y,z:n.z},rotationRate:{alpha:r.alpha,beta:r.beta,gamma:r.gamma},interval:o})};return(0,y.on)(window,"devicemotion",e),function(){(0,y.S1)(window,"devicemotion",e)}}),[]),n},et=function(e){(0,ee.Z)((function(){e()}))},tt=n(77823),nt=function(e){var t=(0,r.useRef)(0),n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useCallback)((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){o(e)}))}),[]);return(0,tt.Z)((function(){cancelAnimationFrame(t.current)})),[a,i]},rt=function(e){var t=nt({docX:0,docY:0,posX:0,posY:0,elX:0,elY:0,elH:0,elW:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(t){if(e&&e.current){var n=e.current.getBoundingClientRect(),r=n.left,o=n.top,i=n.width,u=n.height,l=r+window.pageXOffset,c=o+window.pageYOffset,s=t.pageX-l,f=t.pageY-c;a({docX:t.pageX,docY:t.pageY,posX:l,posY:c,elX:s,elY:f,elH:u,elW:i})}};return(0,y.on)(document,"mousemove",t),function(){(0,y.S1)(document,"mousemove",t)}}),[e]),n},at={current:null},ot=function(e,t){void 0===t&&(t={});var n=!!t.whenHovered,r=!!t.bound,a=ye(e,n),o=rt(n&&!a?at:e);return r&&(o.elX=Math.max(0,Math.min(o.elX,o.elW)),o.elY=Math.max(0,Math.min(o.elY,o.elH))),o},it=function(){var e=(0,r.useState)(0),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(e){n(e.deltaY+t)};return(0,y.on)(window,"wheel",e,!1),function(){return(0,y.S1)(window,"wheel",e)}})),t},ut=y.ae?navigator:void 0,lt=ut&&(ut.connection||ut.mozConnection||ut.webkitConnection);function ct(e){var t=null===ut||void 0===ut?void 0:ut.onLine,n=null===e||void 0===e?void 0:e.online;return{online:t,previous:n,since:t!==n?new Date:null===e||void 0===e?void 0:e.since,downlink:null===lt||void 0===lt?void 0:lt.downlink,downlinkMax:null===lt||void 0===lt?void 0:lt.downlinkMax,effectiveType:null===lt||void 0===lt?void 0:lt.effectiveType,rtt:null===lt||void 0===lt?void 0:lt.rtt,saveData:null===lt||void 0===lt?void 0:lt.saveData,type:null===lt||void 0===lt?void 0:lt.type}}function st(e){var t=(0,r.useState)(null!==e&&void 0!==e?e:ct),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(){a(ct)};return(0,y.on)(window,"online",e,{passive:!0}),(0,y.on)(window,"offline",e,{passive:!0}),lt&&(0,y.on)(lt,"change",e,{passive:!0}),function(){(0,y.S1)(window,"online",e),(0,y.S1)(window,"offline",e),lt&&(0,y.S1)(lt,"change",e)}}),[]),n}var ft=F;var dt=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return(0,U.Z)((function(){var t=e.subscribe(o);return function(){return t.unsubscribe()}}),[e]),a},pt={angle:0,type:"landscape-primary"},mt=function(e){void 0===e&&(e=pt);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=window.screen,n=!0,r=function(){if(n){var r=t.orientation;if(r){var o=r.angle,i=r.type;a({angle:o,type:i})}else void 0!==window.orientation?a({angle:"number"===typeof window.orientation?window.orientation:0,type:""}):a(e)}};return(0,y.on)(window,"orientationchange",r),r(),function(){n=!1,(0,y.S1)(window,"orientationchange",r)}}),[]),n},vt=function(e,t){void 0===t&&(t=[]),(0,r.useEffect)((function(){if(e){var t=function(t){var n=(t=t||window.event).relatedTarget||t.toElement;n&&"HTML"!==n.nodeName||e()};return(0,y.on)(document,"mouseout",t),function(){(0,y.S1)(document,"mouseout",t)}}}),t)},gt=function(e){var t=(0,r.useState)(""),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=!0,n=null,r=function(){t&&a((function(){var e;return null!==(e=null===n||void 0===n?void 0:n.state)&&void 0!==e?e:""}))};return navigator.permissions.query(e).then((function(e){n=e,(0,y.on)(n,"change",r),r()})).catch(y.ZT),function(){n&&(0,y.S1)(n,"change",r),t=!1,n=null}}),[e]),n},ht=n(37176),bt=n(44536),yt=function(){var e=f();return(0,r.useCallback)((function(t){return new Promise((function(n,r){t.then((function(t){e()&&n(t)}),(function(t){e()&&r(t)}))}))}),[])},wt=function(e){void 0===e&&(e=[]);var t=(0,r.useState)(e),n=t[0],a=t[1];return{add:function(e){a((function(t){return(0,s.__spreadArrays)(t,[e])}))},remove:function(){var e;return a((function(t){var n=t[0],r=t.slice(1);return e=n,r})),e},get first(){return n[0]},get last(){return n[n.length-1]},get size(){return n.length}}},Ot=function(e,t){void 0===e&&(e=1e12),void 0===t&&(t=0);var n=(0,r.useState)(0),a=n[0],o=n[1];return(0,U.Z)((function(){var n,r,a,i=function(){var t=Math.min(1,(Date.now()-a)/e);o(t),u()},u=function(){n=requestAnimationFrame(i)},l=setTimeout((function(){r=setTimeout((function(){cancelAnimationFrame(n),o(1)}),e),a=Date.now(),u()}),t);return function(){clearTimeout(r),clearTimeout(l),cancelAnimationFrame(n)}}),[e,t]),a};function xt(e,t){void 0===t&&(t=!0);var n=(0,r.useRef)(null),a=(0,r.useRef)(!1),o=(0,r.useRef)(e);o.current=e;var i=(0,r.useCallback)((function(e){a.current&&(o.current(e),n.current=requestAnimationFrame(i))}),[]),u=(0,r.useMemo)((function(){return[function(){a.current&&(a.current=!1,n.current&&cancelAnimationFrame(n.current))},function(){a.current||(a.current=!0,n.current=requestAnimationFrame(i))},function(){return a.current}]}),[]);return(0,r.useEffect)((function(){return t&&u[1](),u[0]}),[]),u}var jt,kt=function(e,t){return new URLSearchParams(e).get(t)},Et=y.jU?function(e){var t=window.location,n=(0,r.useState)((function(){return kt(t.search,e)})),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){o(kt(t.search,e))};return(0,y.on)(window,"popstate",n),(0,y.on)(window,"pushstate",n),(0,y.on)(window,"replacestate",n),function(){(0,y.S1)(window,"popstate",n),(0,y.S1)(window,"pushstate",n),(0,y.S1)(window,"replacestate",n)}}),[]),a}:function(){return null},Pt=(n(76297),function(e){void 0===e&&(e={});var t=e.disabled,n=_e(e),a=(0,r.useState)({isScratching:!1}),o=a[0],i=a[1],u=(0,r.useRef)(o),l=(0,r.useRef)(!1),c=(0,r.useRef)(null),f=(0,r.useState)(null),d=f[0],p=f[1];return(0,r.useEffect)((function(){if(!t&&d){var e,r,a=function(e,t){cancelAnimationFrame(c.current),c.current=requestAnimationFrame((function(){var r=d.getBoundingClientRect(),a=r.left,o=r.top,l=a+window.scrollX,c=o+window.scrollY,f=e-l,p=t-c;i((function(e){var t=(0,s.__assign)((0,s.__assign)({},e),{dx:f-(e.x||0),dy:p-(e.y||0),end:Date.now(),isScratching:!0});return u.current=t,(n.current.onScratch||y.ZT)(t),t}))}))},o=function(e){a(e.pageX,e.pageY)},f=function(e){a(e.changedTouches[0].pageX,e.changedTouches[0].pageY)},p=function(){l.current&&(l.current=!1,u.current=(0,s.__assign)((0,s.__assign)({},u.current),{isScratching:!1}),(n.current.onScratchEnd||y.ZT)(u.current),i({isScratching:!1}),(0,y.S1)(window,"mousemove",o),(0,y.S1)(window,"touchmove",f),(0,y.S1)(window,"mouseup",e),(0,y.S1)(window,"touchend",r))};e=p,r=p;var m=function(t,a){if(l.current){var c=d.getBoundingClientRect(),s=c.left,p=c.top,m=s+window.scrollX,v=p+window.scrollY,g=t-m,h=a-v,b=Date.now(),w={isScratching:!0,start:b,end:b,docX:t,docY:a,x:g,y:h,dx:0,dy:0,elH:d.offsetHeight,elW:d.offsetWidth,elX:m,elY:v};u.current=w,(n.current.onScratchStart||y.ZT)(w),i(w),(0,y.on)(window,"mousemove",o),(0,y.on)(window,"touchmove",f),(0,y.on)(window,"mouseup",e),(0,y.on)(window,"touchend",r)}},v=function(e){l.current=!0,m(e.pageX,e.pageY)},g=function(e){l.current=!0,m(e.changedTouches[0].pageX,e.changedTouches[0].pageY)};return(0,y.on)(d,"mousedown",v),(0,y.on)(d,"touchstart",g),function(){(0,y.S1)(d,"mousedown",v),(0,y.S1)(d,"touchstart",g),(0,y.S1)(window,"mousemove",o),(0,y.S1)(window,"touchmove",f),(0,y.S1)(window,"mouseup",e),(0,y.S1)(window,"touchend",r),c.current&&cancelAnimationFrame(c.current),c.current=null,l.current=!1,u.current={isScratching:!1},i(u.current)}}}),[d,t,n]),[p,o]}),St=Pt,Ct=function(e){var t=nt({x:0,y:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(){e.current&&a({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&(0,y.on)(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&(0,y.S1)(e.current,"scroll",t)}}),[e]),n},_t=function(e){var t=(0,r.useState)(!1),n=t[0],a=t[1];return(0,r.useEffect)((function(){if(e.current){var t,n=function(){a(!0),clearTimeout(t),t=setTimeout((function(){a(!1)}),150)};return(0,y.on)(e.current,"scroll",n,!1),function(){e.current&&(0,y.S1)(e.current,"scroll",n,!1)}}return function(){}}),[e]),n},Mt=function(e,t,n){if(!y.jU)return[t,function(){}];var a=(0,r.useState)((function(){try{var r=sessionStorage.getItem(e);return"string"!==typeof r?(sessionStorage.setItem(e,n?String(t):JSON.stringify(t)),t):n?r:JSON.parse(r||"null")}catch(a){return t}})),o=a[0],i=a[1];return(0,r.useEffect)((function(){try{var t=n?String(o):JSON.stringify(o);sessionStorage.setItem(e,t)}catch(a){}})),[o,i]},Dt=n(99376),At=function(e,t){return e.every((function(e,n){return(0,Dt.D)(e,t[n])}))},Tt=function(e,t){G(e,t,At)},zt=r.useState,Nt=r.useEffect,Rt=r.useRef,Lt=function(e,t){var n=void 0===t?{}:t,o=n.width,i=void 0===o?1/0:o,u=n.height,l=void 0===u?1/0:u;if(!y.jU)return["function"===typeof e?e({width:i,height:l}):e,{width:i,height:l}];var c=zt({width:i,height:l}),f=c[0],d=c[1];"function"===typeof e&&(e=e(f));var p=e.props.style||{},m=Rt(null),v=null,g=function(){var e=m.current,t=e?{width:e.offsetWidth,height:e.offsetHeight}:{width:i,height:l};d(t)},h=function(e){(0,y.on)(e,"resize",g),setTimeout(g,35)};return Nt((function(){var e=m.current;if(e){if(e.contentWindow)v=e.contentWindow,h(v);else{var t=function(){(0,y.on)(e,"load",t),v=e.contentWindow,h(v)};(0,y.S1)(e,"load",t)}return function(){v&&v.removeEventListener&&(0,y.S1)(v,"resize",g)}}}),[]),p.position="relative",[r.cloneElement.apply(a,(0,s.__spreadArrays)([e,{style:p}],(0,s.__spreadArrays)([r.createElement("iframe",{ref:m,style:{background:"transparent",border:"none",height:"100%",left:0,position:"absolute",top:0,width:"100%",zIndex:-1}})],r.Children.toArray(e.props.children)))),f]},It=function(e,t){void 0===t&&(t={});var n=f(),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useRef)(0),u=v({isSliding:!1,value:0}),l=u[0],c=u[1];return o.current=l.value,(0,r.useEffect)((function(){if(y.jU){var r=void 0===t.styles||t.styles,u=void 0!==t.reverse&&t.reverse;e.current&&r&&(e.current.style.userSelect="none");var l=function(){!a.current&&n()&&((t.onScrubStart||y.ZT)(),a.current=!0,c({isSliding:!0}),v())},s=function(){a.current&&n()&&((t.onScrubStop||y.ZT)(o.current),a.current=!1,c({isSliding:!1}),g())},f=function(e){l(),d(e)},d=t.vertical?function(e){return h(e.clientY)}:function(e){return h(e.clientX)},p=function(e){l(),m(e)},m=t.vertical?function(e){return h(e.changedTouches[0].clientY)}:function(e){return h(e.changedTouches[0].clientX)},v=function(){(0,y.on)(document,"mousemove",d),(0,y.on)(document,"mouseup",s),(0,y.on)(document,"touchmove",m),(0,y.on)(document,"touchend",s)},g=function(){(0,y.S1)(document,"mousemove",d),(0,y.S1)(document,"mouseup",s),(0,y.S1)(document,"touchmove",m),(0,y.S1)(document,"touchend",s)},h=function(r){cancelAnimationFrame(i.current),i.current=requestAnimationFrame((function(){if(n()&&e.current){var a=e.current.getBoundingClientRect(),o=t.vertical?a.top:a.left,i=t.vertical?a.height:a.width;if(!i)return;var l=(r-o)/i;l>1?l=1:l<0&&(l=0),u&&(l=1-l),c({value:l}),(t.onScrub||y.ZT)(l)}}))};return(0,y.on)(e.current,"mousedown",f),(0,y.on)(e.current,"touchstart",p),function(){(0,y.S1)(e.current,"mousedown",f),(0,y.S1)(e.current,"touchstart",p)}}}),[e,t.vertical]),l};!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(jt||(jt={}));var Ft=function(e,t){var n=(0,r.useRef)(!1),a=(0,r.useState)((function(){var e=t.voice||{},n=e.lang,r=void 0===n?"default":n,a=e.name,o=void 0===a?"":a;return{isPlaying:!1,status:jt[jt.init],lang:t.lang||"default",voiceInfo:{lang:r,name:o},rate:t.rate||1,pitch:t.pitch||1,volume:t.volume||1}})),o=a[0],i=a[1],u=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,s.__assign)((0,s.__assign)({},e),{isPlaying:!0,status:jt[jt.play]})}))}),[]),l=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,s.__assign)((0,s.__assign)({},e),{isPlaying:!1,status:jt[jt.pause]})}))}),[]),c=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,s.__assign)((0,s.__assign)({},e),{isPlaying:!1,status:jt[jt.end]})}))}),[]);return(0,r.useEffect)((function(){n.current=!0;var r=new SpeechSynthesisUtterance(e);return t.lang&&(r.lang=t.lang),t.voice&&(r.voice=t.voice),r.rate=t.rate||1,r.pitch=t.pitch||1,r.volume=t.volume||1,r.onstart=u,r.onpause=l,r.onresume=u,r.onend=c,window.speechSynthesis.speak(r),function(){n.current=!1}}),[]),o},Ht=function(e){(0,U.Z)((function(){var t=function(t){!function(){var e=document.activeElement,t=document.body;if(!e)return!1;if(e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")}()&&function(e){var t=e.keyCode,n=e.metaKey,r=e.ctrlKey,a=e.altKey;return!(n||r||a)&&(t>=48&&t<=57||t>=65&&t<=90)}(t)&&e(t)};return(0,y.on)(document,"keydown",t),function(){(0,y.S1)(document,"keydown",t)}}),[])},Wt=n(30644);function Vt(e,t,n){if(void 0===t&&(t=10),t<1)throw new Error("Capacity has to be greater than 1, got '"+t+"'");var a=(0,Wt.Z)(),o=(0,r.useState)(e),i=o[0],u=o[1],l=(0,r.useRef)(null!==n&&void 0!==n?n:[]),c=(0,r.useRef)(0);return a&&(l.current.length?(l.current[l.current.length-1]!==e&&l.current.push(e),l.current.length>t&&(l.current=l.current.slice(l.current.length-t))):l.current.push(e),c.current=l.current.length&&l.current.length-1),[i,(0,r.useCallback)((function(e){u((function(n){return(e=L(e,n))!==n&&(c.current<l.current.length-1&&(l.current=l.current.slice(0,c.current+1)),c.current=l.current.push(e)-1,l.current.length>t&&(l.current=l.current.slice(l.current.length-t))),e}))}),[i,t]),(0,r.useMemo)((function(){return{history:l.current,position:c.current,capacity:t,back:function(e){void 0===e&&(e=1),c.current&&u((function(){return c.current-=Math.min(e,c.current),l.current[c.current]}))},forward:function(e){void 0===e&&(e=1),c.current!==l.current.length-1&&u((function(){return c.current=Math.min(c.current+e,l.current.length-1),l.current[c.current]}))},go:function(e){e!==c.current&&u((function(){return c.current=e<0?Math.max(l.current.length+e,0):Math.min(l.current.length-1,e),l.current[c.current]}))}}}),[i])]}function Bt(e){void 0===e&&(e=[]);var t=f(),n=R(),a=(0,r.useRef)(0);(0,u.Z)((function(){e.length<=a.current&&(a.current=e.length-1,n())}),[e.length]);var o=(0,r.useMemo)((function(){return{next:function(){return o.setStateAt(a.current+1)},prev:function(){return o.setStateAt(a.current-1)},setStateAt:function(r){t()&&e.length&&r!==a.current&&(a.current=r>=0?r%e.length:e.length+r%e.length,n())},setState:function(r){if(t()){var o=e.length?e.indexOf(r):-1;if(-1===o)throw new Error("State '"+r+"' is not a valid state (does not exist in state list)");a.current=o,n()}}}}),[e]);return(0,s.__assign)({state:e[a.current],currentIndex:a.current},o)}var Ut=function(e,t){void 0===t&&(t=200);var n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useRef)(),u=(0,r.useRef)(null),l=(0,r.useRef)(0);return(0,r.useEffect)((function(){if(i.current)u.current=e,l.current=!0;else{o(e);var n=function(){l.current?(l.current=!1,o(u.current),i.current=setTimeout(n,t)):i.current=void 0};i.current=setTimeout(n,t)}}),[e]),(0,tt.Z)((function(){i.current&&clearTimeout(i.current)})),a},Yt=function(e,t,n){void 0===t&&(t=200);var a=(0,r.useState)(null),o=a[0],i=a[1],u=(0,r.useRef)(),l=(0,r.useRef)();return(0,r.useEffect)((function(){if(u.current)l.current=n;else{i(e.apply(void 0,n));var r=function(){l.current?(i(e.apply(void 0,l.current)),l.current=void 0,u.current=setTimeout(r,t)):u.current=void 0};u.current=setTimeout(r,t)}}),n),(0,tt.Z)((function(){u.current&&clearTimeout(u.current)})),o},Zt=n(34513);function qt(e){void 0===e&&(e=0);var t=R();return(0,Zt.Z)(t,e)}var Gt={restoreOnUnmount:!1};var Xt="undefined"!==typeof document?function(e,t){void 0===t&&(t=Gt);var n=(0,r.useRef)(document.title);document.title!==e&&(document.title=e),(0,r.useEffect)((function(){return t&&t.restoreOnUnmount?function(){document.title=n.current}:void 0}),[])}:function(e){},Kt=n(75534),$t=function(e,t,n){return void 0===e&&(e="inCirc"),void 0===t&&(t=200),void 0===n&&(n=0),(0,Kt.U[e])(Ot(t,n))},Jt=function(){var e=(0,r.useRef)(!1);return(0,ee.Z)((function(){return function(){e.current=!0}})),(0,r.useMemo)((function(){return function(t,n){return new Promise((function(r,a){t.then((function(t){e.current||r(t)}),(function(t){e.current?n?n(t):console.error("useUnmountPromise",t):a(t)}))}))}}),[])};function Qt(e,t){void 0===t&&(t=[]);var n=De(t),r=n[0],a=n[1];return[r,(0,s.__assign)((0,s.__assign)({},a),{upsert:function(t){a.upsert(e,t)}})]}var en=y.ae&&"vibrate"in navigator?function(e,t,n){void 0===e&&(e=!0),void 0===t&&(t=[1e3,1e3]),void 0===n&&(n=!0),(0,r.useEffect)((function(){var r;if(e&&(navigator.vibrate(t),n)){var a=t instanceof Array?t.reduce((function(e,t){return e+t})):t;r=setInterval((function(){navigator.vibrate(t)}),a)}return function(){e&&(navigator.vibrate(0),n&&clearInterval(r))}}),[e])}:y.ZT,tn=h("video");function nn(e,t,n){void 0===n&&(n=[void 0]);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),u=i[0],l=i[1],c=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,l):l(a.current(o.current))}),[l]);return(0,r.useEffect)((function(){c()}),[e]),[u,c]}var rn=function(e){if("undefined"==typeof document)return 0;if(document.body&&(!document.readyState||"loading"!==document.readyState)){if(!0!==e&&"number"==typeof rn.__cache)return rn.__cache;var t=document.createElement("div"),n=t.style;n.display="block",n.position="absolute",n.width="100px",n.height="100px",n.left="-999px",n.top="-999px",n.overflow="scroll",document.body.insertBefore(t,null);var r=t.clientWidth;if(0!==r)return rn.__cache=100-r,document.body.removeChild(t),rn.__cache;document.body.removeChild(t)}};function an(){var e=(0,r.useState)(rn()),t=e[0],n=e[1];return(0,r.useEffect)((function(){if("undefined"===typeof t){var e=requestAnimationFrame((function(){n(rn())}));return function(){return cancelAnimationFrame(e)}}}),[]),t}function on(e,t,n){if(void 0===n&&(n=[void 0]),"object"!==typeof e)throw new Error("states expected to be an object or array, got "+typeof e);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),u=i[0],l=i[1],c=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,l):l(a.current(o.current))}),[l]);return(0,r.useEffect)((function(){c()}),Object.values(e)),[u,c]}var un,ln=function(){var e=nt((function(){return{x:y.jU?window.pageXOffset:0,y:y.jU?window.pageYOffset:0}})),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){n((function(e){var t=window.pageXOffset,n=window.pageYOffset;return e.x!==t||e.y!==n?{x:t,y:n}:e}))};return e(),(0,y.on)(window,"scroll",e,{capture:!1,passive:!0}),function(){(0,y.S1)(window,"scroll",e)}}),[]),t},cn=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=nt({width:y.jU?window.innerWidth:e,height:y.jU?window.innerHeight:t}),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(y.jU){var e=function(){o({width:window.innerWidth,height:window.innerHeight})};return(0,y.on)(window,"resize",e),function(){(0,y.S1)(window,"resize",e)}}}),[]),a},sn=n(88553);!function(e){e.ZOOMING_IN="ZOOMING_IN",e.ZOOMING_OUT="ZOOMING_OUT"}(un||(un={}));var fn=function(e){var t=(0,r.useMemo)((function(){return{evCache:[],prevDiff:-1}}),[e.current]),n=(0,r.useState)(),a=n[0],o=n[1],i=function(e){for(var n=0;n<t.evCache.length;n++)if(e.pointerId==t.evCache[n].pointerId){t.evCache[n]=e;break}if(2==t.evCache.length){var r=Math.abs(t.evCache[0].clientX-t.evCache[1].clientX);t.prevDiff>0&&(r>t.prevDiff&&o([un.ZOOMING_IN,r]),r<t.prevDiff&&o([un.ZOOMING_OUT,r])),t.prevDiff=r}},u=function(e){t.evCache.push(e)},l=function(e){c(e),t.evCache.length<2&&(t.prevDiff=-1)},c=function(e){for(var n=0;n<t.evCache.length;n++)if(t.evCache[n].pointerId==e.pointerId){t.evCache.splice(n,1);break}};return(0,r.useEffect)((function(){(null===e||void 0===e?void 0:e.current)&&(e.current.onpointerdown=u,e.current.onpointermove=i,e.current.onpointerup=l,e.current.onpointercancel=l,e.current.onpointerout=l,e.current.onpointerleave=l)}),[null===e||void 0===e?void 0:e.current]),a?{zoomingState:a[0],pinchState:a[1]}:{zoomingState:null,pinchState:0}};function dn(){return++(0,r.useRef)(0).current}var pn=function(e){void 0===e&&(e=new Set);var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{add:function(e){return a((function(t){return new Set((0,s.__spreadArrays)(Array.from(t),[e]))}))},remove:function(e){return a((function(t){return new Set(Array.from(t).filter((function(t){return t!==e})))}))},toggle:function(e){return a((function(t){return t.has(e)?new Set(Array.from(t).filter((function(t){return t!==e}))):new Set((0,s.__spreadArrays)(Array.from(t),[e]))}))},reset:function(){return a(e)}}}),[a]),i=(0,s.__assign)({has:(0,r.useCallback)((function(e){return n.has(e)}),[n])},o);return[n,i]};function mn(e){var t={state:e instanceof Function?e():e,setState:function(e){t.state=L(e,t.state),t.setters.forEach((function(e){return e(t.state)}))},setters:[]};return function(){var e=(0,r.useState)(t.state),n=e[0],a=e[1];return(0,ee.Z)((function(){return function(){t.setters=t.setters.filter((function(e){return e!==a}))}})),(0,U.Z)((function(){t.setters.includes(a)||t.setters.push(a)})),[n,t.setState]}}var vn=function(){var e=(0,r.useState)((function(){return window.location.hash})),t=e[0],n=e[1],a=(0,r.useCallback)((function(){n(window.location.hash)}),[]);Me((function(){(0,y.on)(window,"hashchange",a)}),(function(){(0,y.S1)(window,"hashchange",a)}));var o=(0,r.useCallback)((function(e){e!==t&&(window.location.hash=e)}),[t]);return[t,o]}},76362:function(e,t,n){"use strict";n.d(t,{S1:function(){return o},ZT:function(){return r},ae:function(){return u},jU:function(){return i},on:function(){return a}});var r=function(){};function a(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function o(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var i="undefined"!==typeof window,u="undefined"!==typeof navigator},11042:function(e,t,n){"use strict";var r=n(67294),a=n(76362).jU?r.useLayoutEffect:r.useEffect;t.Z=a},88553:function(e,t,n){"use strict";var r=n(67294),a=n(11042),o=n(76362),i={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};t.Z=o.jU&&"undefined"!==typeof window.ResizeObserver?function(){var e=(0,r.useState)(null),t=e[0],n=e[1],o=(0,r.useState)(i),u=o[0],l=o[1],c=(0,r.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,a=t.width,o=t.height,i=t.top,u=t.left,c=t.bottom,s=t.right;l({x:n,y:r,width:a,height:o,top:i,left:u,bottom:c,right:s})}}))}),[]);return(0,a.Z)((function(){if(t)return c.observe(t),function(){c.disconnect()}}),[t]),[n,u]}:function(){return[o.ZT,i]}},94829:function(e,t,n){"use strict";var r=n(67294),a=n(76362);t.Z=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!a.jU&&window.matchMedia(e).matches}(e,t)),o=n[0],i=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&i(!!n.matches)};return n.addListener(r),i(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),o}},44536:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(67294),a=n(30644),o=function(e,t){return e===t};function i(e,t){void 0===t&&(t=o);var n=(0,r.useRef)(),i=(0,r.useRef)(e);return(0,a.Z)()||t(i.current,e)||(n.current=i.current,i.current=e),n.current}},84758:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5272).__importDefault(n(54738));t.default=function(e){return!e.prototype?r.default(e):e}},25921:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divWrapper=void 0;var r=n(5272),a=r.__importStar(n(67294)),o=r.__importDefault(n(84758)),i=a.createElement,u=function(e,t,n,a){var o;return i(e,t?r.__assign(((o={})[t]=a,o),n):r.__assign(r.__assign({},a),n))};t.divWrapper=function(e,t,n,r){return i("div",null,u(e,t,n,r))};t.default=function(e,t,n){void 0===n&&(n=u);var r=function(a,u,l){void 0===u&&(u=t),void 0===l&&(l=null);var c="string"===typeof a;if(c)return function(e){return r(e,a||t,u)};var s=function(t){return i(e,l,(function(e){return n(a,u,t,e)}))};return c?o.default(s):s};return r}},60584:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5272).__importDefault(n(12454)),a=function(e){return[e]};t.default=function(e,t){return void 0===t&&(t=a),function(n){return r.default(n,e.apply(void 0,t(n)))}}},76297:function(e,t,n){"use strict";var r=n(5272);r.__importDefault(n(12454)).default,r.__importDefault(n(25921)).default,r.__importDefault(n(60584)).default},12454:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5272),a=n(67294),o=parseInt(a.version.substr(0,a.version.indexOf(".")))>15;t.default=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var u=e.render,l=e.children,c=void 0===l?u:l,s=e.component,f=e.comp,d=void 0===f?s:f;return"function"===typeof c?c.apply(void 0,r.__spreadArrays([t],n)):d?a.createElement(d,t):c instanceof Array?o?c:a.createElement.apply(void 0,r.__spreadArrays(["div",null],c)):c&&c instanceof Object?"string"===typeof c.type?c:a.cloneElement(c,Object.assign({},c.props,t)):c||null}},54738:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5272),a=r.__importStar(n(67294));t.default=function(e){var t=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(n,t),n.prototype.render=function(){return e(this.props,this.context)},n}(a.Component);return t}},10577:function(e){!function(){"use strict";var t="undefined"!==typeof window&&"undefined"!==typeof window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,a=n.length,o={};r<a;r++)if((e=n[r])&&e[1]in t){for(r=0;r<e.length;r++)o[n[0][r]]=e[r];return o}return!1}(),a={change:r.fullscreenchange,error:r.fullscreenerror},o={request:function(e,n){return new Promise(function(a,o){var i=function(){this.off("change",i),a()}.bind(this);this.on("change",i);var u=(e=e||t.documentElement)[r.requestFullscreen](n);u instanceof Promise&&u.then(i).catch(o)}.bind(this))},exit:function(){return new Promise(function(e,n){if(this.isFullscreen){var a=function(){this.off("change",a),e()}.bind(this);this.on("change",a);var o=t[r.exitFullscreen]();o instanceof Promise&&o.then(a).catch(n)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=a[e];r&&t.addEventListener(r,n,!1)},off:function(e,n){var r=a[e];r&&t.removeEventListener(r,n,!1)},raw:r};r?(Object.defineProperties(o,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),n?e.exports=o:window.screenfull=o):n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()},41476:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};t.__esModule=!0;var a=r(n(57848)),o=n(26678);t.default=function(e,t){var n={};return e&&"string"===typeof e?((0,a.default)(e,(function(e,r){e&&r&&(n[(0,o.camelCase)(e,t)]=r)})),n):n}},26678:function(e,t){"use strict";t.__esModule=!0,t.camelCase=void 0;var n=/^--[a-zA-Z0-9-]+$/,r=/-([a-z])/g,a=/^[^-]+$/,o=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,u=function(e,t){return t.toUpperCase()},l=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){return void 0===t&&(t={}),function(e){return!e||a.test(e)||n.test(e)}(e)?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(i,l):e.replace(o,l)).replace(r,u))}},57848:function(e,t,n){var r=n(18139);function a(e,t){var n,a=null;if(!e||"string"!==typeof e)return a;for(var o,i,u=r(e),l="function"===typeof t,c=0,s=u.length;c<s;c++)o=(n=u[c]).property,i=n.value,l?t(o,i,n):i&&(a||(a={}),a[o]=i);return a}e.exports=a,e.exports.default=a},41330:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"skeleton",use:"skeleton-usage",viewBox:"0 0 1225 192",content:'<symbol xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 1225 192" id="skeleton"><path d="M-.464 126.486a.501.501 0 0 0-.036.187V197a.5.5 0 0 0 .5.5h1925.5c.28 0 .5-.224.5-.5V87.914a.498.498 0 0 0-.37-.483l-90.5-24.046a.503.503 0 0 0-.44.091l-88.62 70.036-67.7-75.319a.491.491 0 0 0-.63-.09l-111.22 69.485-102.25-64.143a.51.51 0 0 0-.68.132l-73.12 101.88-88.08-107.247a.505.505 0 0 0-.65-.11l-94.3 57.511-85.73-19.511a.49.49 0 0 0-.22 0l-96.57 22.108-15.8-26.017a.492.492 0 0 0-.33-.23l-71.441-14.668a.499.499 0 0 0-.287.026l-36.471 14.667a.503.503 0 0 0-.15.094l-33.007 30.039-27.171-48.716a.5.5 0 0 0-.814-.085l-51.672 59.467-84.567-55.42a.499.499 0 0 0-.654.094l-38.053 44.679-49.087-58.56-36.95-62.01a.5.5 0 0 0-.911.122l-33.249 120.05-27.307-40.101a.5.5 0 0 0-.819-.012l-33.743 46.692-51.595-20.913a.5.5 0 0 0-.357-.007l-89.706 32.263-80.733-47.642a.5.5 0 0 0-.662.14l-53.702 75.383-52.412-27.689-43.396-104.383a.5.5 0 0 0-.826-.15L82.968 63.1l-37.61-48.07a.5.5 0 0 0-.858.12L-.464 126.486Z" /></symbol>'});i().add(u);t.default=u},48196:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"correlations",use:"correlations-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="correlations"><path d="M12.99 15.24 17 17.58V22h2v-5.57l-4.02-2.35-1.99 1.16Zm9.22-9.45L18 1.59 13.79 5.8a.996.996 0 1 0 1.41 1.41l1.8-1.8v4.01l-5 2.92-5-2.91V5.41L8.79 7.2c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L6 1.59l-4.21 4.2A.996.996 0 1 0 3.2 7.2L5 5.41v5.16l5.02 2.93L5 16.43V22h2v-4.43l12-7V5.41l1.79 1.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41Z" /></symbol>'});i().add(u);t.default=u},24631:function(e,t,n){"use strict";var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"dashboard_add_chart",use:"dashboard_add_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="dashboard_add_chart"><path d="M20.333 14.844V7.978l-3.889-3.89-6.666 6.667-2.223-2.222-3.888 3.89v3.4a4.514 4.514 0 0 0 4.51 4.51H13.4a5.066 5.066 0 0 1-.722-1.666h-4.5a2.85 2.85 0 0 1-2.845-2.845v-2.71l2.222-2.223 2.223 2.222 6.666-6.667 2.223 2.223v5.177a3.692 3.692 0 0 0-1.112-.177 3.893 3.893 0 0 0-3.889 3.888 3.893 3.893 0 0 0 3.89 3.89 3.893 3.893 0 0 0 3.888-3.89 3.85 3.85 0 0 0-1.11-2.71Zm-.555 3.545h-1.39v1.389h-1.666v-1.39h-1.389v-1.666h1.39v-1.389h1.666v1.39h1.389v1.666Z" /></symbol>'});i().add(u);t.Z=u},89416:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"drag_vertical",use:"drag_vertical-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="drag_vertical"><path d="M3 15h8.25v4.628l-1.943-1.936L8.25 18.75 12 22.5l3.75-3.75-1.057-1.058-1.943 1.936V15H21v-1.5H3V15ZM8.25 5.25l1.057 1.058 1.943-1.936V9H3v1.5h18V9h-8.25V4.372l1.943 1.936L15.75 5.25 12 1.5 8.25 5.25Z" /></symbol>'});i().add(u);t.default=u},79608:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"plugins",use:"plugins-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plugins"><path d="M21.71 7.29c-.94-.94-2.47-.94-3.41 0L16 9.59 14.41 8l2.29-2.29c.94-.94.94-2.47 0-3.41s-2.47-.94-3.41 0L11 4.59l-.57-.57a1.31 1.31 0 0 0-1.85 0L6.86 5.73c-.84.84-1.4 1.89-1.63 3.05l-.65 3.23-.33.33c-.58.58-.9 1.35-.9 2.17 0 .82.32 1.59.9 2.16l.84.84L2.3 20.3a.996.996 0 0 0 .71 1.7c.26 0 .51-.1.71-.29l2.78-2.8.84.84a3.068 3.068 0 0 0 4.33-.01l.33-.33 3.23-.65a5.99 5.99 0 0 0 3.05-1.63L20 15.41c.51-.51.51-1.34 0-1.85l-.57-.57 2.29-2.29c.93-.93.93-2.47-.01-3.41Zm-7-3.58c.16-.16.42-.16.59 0 .16.16.16.42 0 .59L13 6.59 12.41 6l2.3-2.29Zm2.15 12.02c-.56.56-1.26.93-2.03 1.09l-3.82.76-.76.76c-.41.41-1.09.41-1.5 0l-3.08-3.09a1.06 1.06 0 0 1 0-1.5l.76-.76.69-3.46 3.77 3.76c.78.78 2.05.78 2.83 0L7.94 7.53c.1-.13.21-.26.33-.38L9.5 5.91l8.59 8.59-1.23 1.23Zm3.43-6.44L18 11.59l-.59-.59 2.29-2.29c.16-.16.42-.16.59 0 .16.16.16.42 0 .58Z" /></symbol>'});i().add(u);t.default=u},97507:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"selected_area",use:"selected_area-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="selected_area"><path d="M15 19.5h3v3h1.5v-3h3V18h-3v-3H18v3h-3v1.5ZM9 19.5h3V18H9v1.5ZM6 19.5V18H3v-3H1.5v3A1.5 1.5 0 0 0 3 19.5h3ZM18 12h1.5V9H18v3ZM18 3v3h1.5V3A1.5 1.5 0 0 0 18 1.5h-3V3h3ZM1.5 12H3V9H1.5v3ZM9 3h3V1.5H9V3ZM3 6V3h3V1.5H3A1.5 1.5 0 0 0 1.5 3v3H3Z" /></symbol>'});i().add(u);t.default=u},11742:function(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},75534:function(e,t){"use strict";t.U={linear:function(e){return e},quadratic:function(e){return e*(-e*e*e+4*e*e-6*e+4)},cubic:function(e){return e*(4*e*e-9*e+6)},elastic:function(e){return e*(33*e*e*e*e-106*e*e*e+126*e*e-67*e+15)},inQuad:function(e){return e*e},outQuad:function(e){return e*(2-e)},inOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},inCubic:function(e){return e*e*e},outCubic:function(e){return--e*e*e+1},inOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},inQuart:function(e){return e*e*e*e},outQuart:function(e){return 1- --e*e*e*e},inOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},inQuint:function(e){return e*e*e*e*e},outQuint:function(e){return 1+--e*e*e*e*e},inOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},inSine:function(e){return 1-Math.cos(e*(Math.PI/2))},outSine:function(e){return Math.sin(e*(Math.PI/2))},inOutSine:function(e){return-(Math.cos(Math.PI*e)-1)/2},inExpo:function(e){return Math.pow(2,10*(e-1))},outExpo:function(e){return 1-Math.pow(2,-10*e)},inOutExpo:function(e){return(e/=.5)<1?Math.pow(2,10*(e-1))/2:(e--,(2-Math.pow(2,-10*e))/2)},inCirc:function(e){return 1-Math.sqrt(1-e*e)},outCirc:function(e){return Math.sqrt(1-(e-=1)*e)},inOutCirc:function(e){return(e/=.5)<1?-(Math.sqrt(1-e*e)-1)/2:(e-=2,(Math.sqrt(1-e*e)+1)/2)}}},44682:function(e,t,n){"use strict";n.d(t,{Sz:function(){return f},kr:function(){return s}});var r=n(67294),a=n(63840),o=n(73935);const i=Symbol(),u=Symbol(),l="undefined"==typeof window||/ServerSideRendering/.test(window.navigator&&window.navigator.userAgent)?r.useEffect:r.useLayoutEffect,c=a.unstable_runWithPriority?e=>(0,a.unstable_runWithPriority)(a.unstable_NormalPriority,e):e=>e();function s(e){const t=(0,r.createContext)({[i]:{v:{current:e},n:{current:-1},l:new Set,u:e=>e()}});var n;return t[u]=t.Provider,t.Provider=(n=t.Provider,({value:e,children:t})=>{const a=(0,r.useRef)(e),u=(0,r.useRef)(0),[s,f]=(0,r.useState)(null);s&&(s(e),f(null));const d=(0,r.useRef)();if(!d.current){const e=new Set,t=(t,n)=>{(0,o.unstable_batchedUpdates)((()=>{u.current+=1;const r={n:u.current};null!=n&&n.suspense&&(r.n*=-1,r.p=new Promise((e=>{f((()=>t=>{r.v=t,delete r.p,e(t)}))}))),e.forEach((e=>e(r))),t()}))};d.current={[i]:{v:a,n:u,l:e,u:t}}}return l((()=>{a.current=e,u.current+=1,c((()=>{d.current[i].l.forEach((t=>{t({n:u.current,v:e})}))}))}),[e]),(0,r.createElement)(n,{value:d.current},t)}),delete t.Consumer,t}function f(e,t){const n=(0,r.useContext)(e)[i];const{v:{current:a},n:{current:o},l:u}=n,c=t(a),[s,f]=(0,r.useReducer)(((e,n)=>{if(!n)return[a,c];if("p"in n)throw n.p;if(n.n===o)return Object.is(e[1],c)?e:[a,c];try{if("v"in n){if(Object.is(e[0],n.v))return e;const r=t(n.v);return Object.is(e[1],r)?e:[n.v,r]}}catch(e){}return[...e]}),[a,c]);return Object.is(s[1],c)||f(),l((()=>(u.add(f),()=>{u.delete(f)})),[u]),s[1]}},25935:function(e,t,n){"use strict";var r=n(30488);r.domToReact,r.htmlToDOM,r.attributesToProps,r.Comment,r.Element,r.ProcessingInstruction,r.Text;t.ZP=r}}]); \ No newline at end of file
diff --git a/web/gui/v2/952.fd601224f55afda56157.chunk.js.LICENSE.txt b/web/gui/v2/952.8782ae4b4eb5f5d394ba.chunk.js.LICENSE.txt
index 3140f22b..3140f22b 100644
--- a/web/gui/v2/952.fd601224f55afda56157.chunk.js.LICENSE.txt
+++ b/web/gui/v2/952.8782ae4b4eb5f5d394ba.chunk.js.LICENSE.txt
diff --git a/web/gui/v2/952.fd601224f55afda56157.chunk.js b/web/gui/v2/952.fd601224f55afda56157.chunk.js
deleted file mode 100644
index b256fa4e..00000000
--- a/web/gui/v2/952.fd601224f55afda56157.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see 952.fd601224f55afda56157.chunk.js.LICENSE.txt */
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="81de5f97-3990-45ef-84a0-bbc78382d1e2",e._sentryDebugIdIdentifier="sentry-dbid-81de5f97-3990-45ef-84a0-bbc78382d1e2")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[952],{1673:function(e,t){"use strict";var n="windows",r=[],a="f17a",o="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z";t.DF={prefix:"fab",iconName:n,icon:[448,512,r,a,o]},t.ts=t.DF},35117:function(e,t){"use strict";var n=[128683,"cancel"],r="f05e",a="M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z";t.DF={prefix:"fas",iconName:"ban",icon:[512,512,n,r,a]},t.gP=t.DF},40351:function(e,t){"use strict";var n="battery-half",r=["battery-3"],a="f242",o="M464 160c8.8 0 16 7.2 16 16V336c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16H464zM80 96C35.8 96 0 131.8 0 176V336c0 44.2 35.8 80 80 80H464c44.2 0 80-35.8 80-80V320c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32V176c0-44.2-35.8-80-80-80H80zm208 96H96V320H288V192z";t.DF={prefix:"fas",iconName:n,icon:[576,512,r,a,o]},t.St=t.DF},67992:function(e,t){"use strict";var n="bell",r=[128276,61602],a="f0f3",o="M224 0c-17.7 0-32 14.3-32 32V51.2C119 66 64 130.6 64 208v18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416H416c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3H224 160c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.qm=t.DF},91435:function(e,t){"use strict";var n="bolt",r=[9889,"zap"],a="f0e7",o="M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.BD=t.DF},12690:function(e,t){"use strict";var n="bookmark",r=[128278,61591],a="f02e",o="M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z";t.DF={prefix:"fas",iconName:n,icon:[384,512,r,a,o]},t.xV=t.DF},49356:function(e,t){"use strict";var n="brain",r=[129504],a="f5dc",o="M184 0c30.9 0 56 25.1 56 56V456c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56V56c0-30.9 25.1-56 56-56z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.qx=t.DF},79186:function(e,t){"use strict";var n="chart-bar",r=["bar-chart"],a="f080",o="M32 32c17.7 0 32 14.3 32 32V400c0 8.8 7.2 16 16 16H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H80c-44.2 0-80-35.8-80-80V64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H160c-17.7 0-32-14.3-32-32s14.3-32 32-32z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.ko=t.DF},96914:function(e,t){"use strict";var n="chart-line",r=["line-chart"],a="f201",o="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V400c0 44.2 35.8 80 80 80H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H80c-8.8 0-16-7.2-16-16V64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.St=t.DF},80955:function(e,t){"use strict";var n="circle-notch",r=[],a="f1ce",o="M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.IJ=t.DF},42137:function(e,t){"use strict";var n="clock",r=[128339,"clock-four"],a="f017",o="M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.SZ=t.DF},73793:function(e,t){"use strict";var n="cloud",r=[9729],a="f0c2",o="M0 336c0 79.5 64.5 144 144 144H512c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.uM=t.DF},47810:function(e,t,n){"use strict";var r=n(96348);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.Kb=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},57026:function(e,t){"use strict";var n="comments",r=[128490,61670],a="f086",o="M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2 0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.3-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9l0 0 0 0-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.lX=t.DF},53728:function(e,t){"use strict";var n="database",r=[],a="f1c0",o="M448 80v48c0 44.2-100.3 80-224 80S0 172.2 0 128V80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6V288c0 44.2-100.3 80-224 80S0 332.2 0 288V186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6V432c0 44.2-100.3 80-224 80S0 476.2 0 432V346.1z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.t5=t.DF},53045:function(e,t){"use strict";var n="dragon",r=[128009],a="f6d5",o="M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0H416h32 16c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48H538.5c-17 0-33.3-6.7-45.3-18.7L480 160H448v21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512H496 432 32.3c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1V181.5v-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3v.6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87V227c0 32.8 8.4 64.8 24 93H112c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.SP=t.DF},81511:function(e,t){"use strict";var n="envelope",r=[128386,9993,61443],a="f0e0",o="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.FU=t.DF},77007:function(e,t,n){"use strict";var r=n(89740);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.Ss=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},44814:function(e,t){"use strict";var n="exclamation",r=[10069,10071,61738],a="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64V320c0 17.7 14.3 32 32 32s32-14.3 32-32V64zM32 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z";t.DF={prefix:"fas",iconName:n,icon:[64,512,r,"21",a]},t.WV=t.DF},20446:function(e,t){"use strict";var n=[128065],r="f06e",a="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z";t.DF={prefix:"fas",iconName:"eye",icon:[576,512,n,r,a]},t.Md=t.DF},7452:function(e,t,n){"use strict";var r=n(76792);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.cw=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},76792:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="file-lines",r=[128441,128462,61686,"file-alt","file-text"],a="f15c",o="M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z";t.definition={prefix:"fas",iconName:n,icon:[384,512,r,a,o]},t.faFileLines=t.definition,t.prefix="fas",t.iconName=n,t.width=384,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},17726:function(e,t){"use strict";var n="flask",r=[],a="f0c3",o="M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.jZ=t.DF},8792:function(e,t){"use strict";var n="folder-open",r=[128194,128449,61717],a="f07c",o="M88.7 223.8L0 375.8V96C0 60.7 28.7 32 64 32H181.5c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7H416c35.3 0 64 28.7 64 64v32H144c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224H544c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480H32c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z";t.DF={prefix:"fas",iconName:n,icon:[576,512,r,a,o]},t.cC=t.DF},2988:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="gauge-high",r=[62461,"tachometer-alt","tachometer-alt-fast"],a="f625",o="M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faGaugeHigh=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},96348:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="gears",r=["cogs"],a="f085",o="M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z";t.definition={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.faGears=t.definition,t.prefix="fas",t.iconName=n,t.width=640,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},66062:function(e,t){"use strict";var n="globe",r=[127760],a="f0ac",o="M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.g4=t.DF},33149:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="hard-drive",r=[128436,"hdd"],a="f0a0",o="M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V280.4c-17-15.2-39.4-24.4-64-24.4H64c-24.6 0-47 9.2-64 24.4V96zM64 288H448c35.3 0 64 28.7 64 64v64c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V352c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faHardDrive=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},51257:function(e,t,n){"use strict";var r=n(33149);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.vc=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},53314:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="heart-pulse",r=["heartbeat"],a="f21e",o="M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4h87c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31H476.3c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240h-132c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9H16c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9v-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1v5.8c0 16.9-2.8 33.5-8.3 49.1z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faHeartPulse=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},12296:function(e,t,n){"use strict";var r=n(53314);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.s2=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},491:function(e,t){"use strict";var n="laptop-code",r=[],a="f5fc",o="M64 96c0-35.3 28.7-64 64-64H512c35.3 0 64 28.7 64 64V352H512V96H128V352H64V96zM0 403.2C0 392.6 8.6 384 19.2 384H620.8c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8H76.8C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.py=t.DF},13914:function(e,t){"use strict";var n="leaf",r=[],a="f06c",o="M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5h88c8.8 0 16 7.2 16 16s-7.2 16-16 16H288 216s0 0 0 0c-16.6 0-32.7 1.9-48.2 5.4c-25.9 5.9-50 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440v16c0 13.3 10.7 24 24 24s24-10.7 24-24V440c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.XE=t.DF},80443:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="list-check",r=["tasks"],a="f0ae",o="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faListCheck=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},52571:function(e,t){"use strict";var n="microchip",r=[],a="f2db",o="M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64c-35.3 0-64 28.7-64 64H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64v56H24c-13.3 0-24 10.7-24 24s10.7 24 24 24H64c0 35.3 28.7 64 64 64v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448h56v40c0 13.3 10.7 24 24 24s24-10.7 24-24V448c35.3 0 64-28.7 64-64h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V280h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448V176h40c13.3 0 24-10.7 24-24s-10.7-24-24-24H448c0-35.3-28.7-64-64-64V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H280V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H176V24zM160 128H352c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32zm192 32H160V352H352V160z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.zv=t.DF},21433:function(e,t){"use strict";var n="puzzle-piece",r=[129513],a="f12e",o="M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8v0c0 12.8 10.4 23.2 23.2 23.2H336c26.5 0 48 21.5 48 48v56.8c0 12.8 10.4 23.2 23.2 23.2v0c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2v0c-12.8 0-23.2 10.4-23.2 23.2V464c0 26.5-21.5 48-48 48H279.2c-12.8 0-23.2-10.4-23.2-23.2v0c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8v0c0 12.8-10.4 23.2-23.2 23.2H48c-26.5 0-48-21.5-48-48V343.2C0 330.4 10.4 320 23.2 320v0c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256v0C10.4 256 0 245.6 0 232.8V176c0-26.5 21.5-48 48-48H168.8c12.8 0 23.2-10.4 23.2-23.2v0z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.Nx=t.DF},2866:function(e,t,n){"use strict";var r=n(38676);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.V$=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},89740:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="right-left",r=["exchange-alt"],a="f362",o="M32 96l320 0V32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32H160v64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64H480z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faRightLeft=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},59986:function(e,t){"use strict";var n="server",r=[],a="f233",o="M64 32C28.7 32 0 60.7 0 96v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64v64c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V352c0-35.3-28.7-64-64-64H64zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.xf=t.DF},60989:function(e,t){"use strict";var n="shield",r=[128737,"shield-blank"],a="f132",o="M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z";t.DF={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.is=t.DF},3163:function(e,t,n){"use strict";var r=n(36856);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.U7=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},36856:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="shield-halved",r=["shield-alt"],a="f3ed",o="M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8V444.8C394 378 431.1 230.1 432 141.4L256 66.8l0 0z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faShieldHalved=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},38676:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="shuffle",r=[128256,"random"],a="f074",o="M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V160H352c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96h32V64c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6V416H352c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H96c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8h32V320c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faShuffle=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},42775:function(e,t){"use strict";var n="sitemap",r=[],a="f0e8",o="M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z";t.DF={prefix:"fas",iconName:n,icon:[576,512,r,a,o]},t.Hw=t.DF},53035:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="table-cells-large",r=["th-large"],a="f009",o="M448 96V224H288V96H448zm0 192V416H288V288H448zM224 224H64V96H224V224zM64 288H224V416H64V288zM64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z";t.definition={prefix:"fas",iconName:n,icon:[512,512,r,a,o]},t.faTableCellsLarge=t.definition,t.prefix="fas",t.iconName=n,t.width=512,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},85241:function(e,t,n){"use strict";var r=n(2988);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.HL=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},34327:function(e,t){"use strict";var n=[127991],r="f02b",a="M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z";t.DF={prefix:"fas",iconName:"tag",icon:[448,512,n,r,a]},t.LE=t.DF},9221:function(e,t,n){"use strict";var r=n(80443);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.A8=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},83185:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="temperature-half",r=[127777,"temperature-2","thermometer-2","thermometer-half"],a="f2c9",o="M160 64c-26.5 0-48 21.5-48 48V276.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5V112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112V276.5c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6V112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3V208c0-8.8 7.2-16 16-16s16 7.2 16 16V322.7c18.6 6.6 32 24.4 32 45.3z";t.definition={prefix:"fas",iconName:n,icon:[320,512,r,a,o]},t.faTemperatureHalf=t.definition,t.prefix="fas",t.iconName=n,t.width=320,t.height=512,t.ligatures=r,t.unicode=a,t.svgPathData=o,t.aliases=r},32660:function(e,t,n){"use strict";var r=n(53035);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.To=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},62160:function(e,t,n){"use strict";var r=n(83185);t.DF={prefix:r.prefix,iconName:r.iconName,icon:[r.width,r.height,r.aliases,r.unicode,r.svgPathData]},t.wh=t.DF,r.prefix,r.iconName,r.width,r.height,r.aliases,r.unicode,r.svgPathData,r.aliases},27879:function(e,t){"use strict";var n="user",r=[128100,62144],a="f007",o="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z";t.DF={prefix:"fas",iconName:n,icon:[448,512,r,a,o]},t.IL=t.DF},46357:function(e,t){"use strict";var n="users",r=[],a="f0c0",o="M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192h42.7c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0H21.3C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7h42.7C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3H405.3zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352H378.7C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7H154.7c-14.7 0-26.7-11.9-26.7-26.7z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.FV=t.DF},91871:function(e,t){"use strict";var n="wifi",r=["wifi-3","wifi-strong"],a="f1eb",o="M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z";t.DF={prefix:"fas",iconName:n,icon:[640,512,r,a,o]},t.$A=t.DF},70982:function(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){u=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw a}}return o}(e,t)||s(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){if(e){if("string"===typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{G:function(){return Tn}});var d=function(){},p={},m={},v=null,g={mark:d,measure:d};try{"undefined"!==typeof window&&(p=window),"undefined"!==typeof document&&(m=document),"undefined"!==typeof MutationObserver&&(v=MutationObserver),"undefined"!==typeof performance&&(g=performance)}catch(Nn){}var h,b,y,w,O,x=(p.navigator||{}).userAgent,j=void 0===x?"":x,k=p,E=m,P=v,S=g,C=(k.document,!!E.documentElement&&!!E.head&&"function"===typeof E.addEventListener&&"function"===typeof E.createElement),_=~j.indexOf("MSIE")||~j.indexOf("Trident/"),M="___FONT_AWESOME___",D=16,A="fa",T="svg-inline--fa",z="data-fa-i2svg",N="data-fa-pseudo-element",R="data-fa-pseudo-element-pending",L="data-prefix",I="data-icon",F="fontawesome-i2svg",W="async",H=["HTML","HEAD","STYLE","SCRIPT"],V=function(){try{return!0}catch(Nn){return!1}}(),B="classic",U="sharp",Y=[B,U];function Z(e){return new Proxy(e,{get:function(e,t){return t in e?e[t]:e[B]}})}var q=Z((u(h={},B,{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fad:"duotone","fa-duotone":"duotone",fab:"brands","fa-brands":"brands",fak:"kit","fa-kit":"kit"}),u(h,U,{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light"}),h)),G=Z((u(b={},B,{solid:"fas",regular:"far",light:"fal",thin:"fat",duotone:"fad",brands:"fab",kit:"fak"}),u(b,U,{solid:"fass",regular:"fasr",light:"fasl"}),b)),X=Z((u(y={},B,{fab:"fa-brands",fad:"fa-duotone",fak:"fa-kit",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"}),u(y,U,{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light"}),y)),K=Z((u(w={},B,{"fa-brands":"fab","fa-duotone":"fad","fa-kit":"fak","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"}),u(w,U,{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl"}),w)),$=/fa(s|r|l|t|d|b|k|ss|sr|sl)?[\-\ ]/,J="fa-layers-text",Q=/Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i,ee=Z((u(O={},B,{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"}),u(O,U,{900:"fass",400:"fasr",300:"fasl"}),O)),te=[1,2,3,4,5,6,7,8,9,10],ne=te.concat([11,12,13,14,15,16,17,18,19,20]),re=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],ae={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},oe=new Set;Object.keys(G[B]).map(oe.add.bind(oe)),Object.keys(G[U]).map(oe.add.bind(oe));var ie=[].concat(Y,c(oe),["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","fw","inverse","layers-counter","layers-text","layers","li","pull-left","pull-right","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul",ae.GROUP,ae.SWAP_OPACITY,ae.PRIMARY,ae.SECONDARY]).concat(te.map((function(e){return"".concat(e,"x")}))).concat(ne.map((function(e){return"w-".concat(e)}))),ue=k.FontAwesomeConfig||{};if(E&&"function"===typeof E.querySelector){[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-auto-a11y","autoA11y"],["data-search-pseudo-elements","searchPseudoElements"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]].forEach((function(e){var t=l(e,2),n=t[0],r=t[1],a=function(e){return""===e||"false"!==e&&("true"===e||e)}(function(e){var t=E.querySelector("script["+e+"]");if(t)return t.getAttribute(e)}(n));void 0!==a&&null!==a&&(ue[r]=a)}))}var le={styleDefault:"solid",familyDefault:"classic",cssPrefix:A,replacementClass:T,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};ue.familyPrefix&&(ue.cssPrefix=ue.familyPrefix);var ce=a(a({},le),ue);ce.autoReplaceSvg||(ce.observeMutations=!1);var se={};Object.keys(le).forEach((function(e){Object.defineProperty(se,e,{enumerable:!0,set:function(t){ce[e]=t,fe.forEach((function(e){return e(se)}))},get:function(){return ce[e]}})})),Object.defineProperty(se,"familyPrefix",{enumerable:!0,set:function(e){ce.cssPrefix=e,fe.forEach((function(e){return e(se)}))},get:function(){return ce.cssPrefix}}),k.FontAwesomeConfig=se;var fe=[];var de=D,pe={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};var me="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function ve(){for(var e=12,t="";e-- >0;)t+=me[62*Math.random()|0];return t}function ge(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function he(e){return e.classList?ge(e.classList):(e.getAttribute("class")||"").split(" ").filter((function(e){return e}))}function be(e){return"".concat(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function ye(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")}),"")}function we(e){return e.size!==pe.size||e.x!==pe.x||e.y!==pe.y||e.rotate!==pe.rotate||e.flipX||e.flipY}var Oe=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Regular";\n --fa-font-light: normal 300 1em/1 "Font Awesome 6 Light";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Thin";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";\n}\n\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\n overflow: visible;\n box-sizing: content-box;\n}\n\n.svg-inline--fa {\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285705em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: var(--fa-pull-margin, 0.3em);\n width: auto;\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n top: 0.25em;\n}\n.svg-inline--fa.fa-fw {\n width: var(--fa-fw-width, 1.25em);\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\n transform: scale(var(--fa-counter-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\n transform: scale(var(--fa-layers-scale, 0.25));\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: 0.625em;\n line-height: 0.1em;\n vertical-align: 0.225em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n line-height: 0.0833333337em;\n vertical-align: 0.125em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n line-height: 0.0714285718em;\n vertical-align: 0.0535714295em;\n}\n\n.fa-lg {\n font-size: 1.25em;\n line-height: 0.05em;\n vertical-align: -0.075em;\n}\n\n.fa-xl {\n font-size: 1.5em;\n line-height: 0.0416666682em;\n vertical-align: -0.125em;\n}\n\n.fa-2xl {\n font-size: 2em;\n line-height: 0.03125em;\n vertical-align: -0.1875em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: var(--fa-li-margin, 2.5em);\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: calc(var(--fa-li-width, 2em) * -1);\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.08em);\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\n}\n\n.fa-pull-left {\n float: left;\n margin-right: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right {\n float: right;\n margin-left: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n -webkit-animation-name: fa-beat;\n animation-name: fa-beat;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n -webkit-animation-name: fa-bounce;\n animation-name: fa-bounce;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n -webkit-animation-name: fa-fade;\n animation-name: fa-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n -webkit-animation-name: fa-beat-fade;\n animation-name: fa-beat-fade;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n -webkit-animation-name: fa-flip;\n animation-name: fa-flip;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n -webkit-animation-name: fa-shake;\n animation-name: fa-shake;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\n animation-delay: var(--fa-animation-delay, 0s);\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\n animation-duration: var(--fa-animation-duration, 2s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n -webkit-animation-name: fa-spin;\n animation-name: fa-spin;\n -webkit-animation-direction: var(--fa-animation-direction, normal);\n animation-direction: var(--fa-animation-direction, normal);\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\n animation-duration: var(--fa-animation-duration, 1s);\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n.fa-bounce,\n.fa-fade,\n.fa-beat-fade,\n.fa-flip,\n.fa-pulse,\n.fa-shake,\n.fa-spin,\n.fa-spin-pulse {\n -webkit-animation-delay: -1ms;\n animation-delay: -1ms;\n -webkit-animation-duration: 1ms;\n animation-duration: 1ms;\n -webkit-animation-iteration-count: 1;\n animation-iteration-count: 1;\n -webkit-transition-delay: 0s;\n transition-delay: 0s;\n -webkit-transition-duration: 0s;\n transition-duration: 0s;\n }\n}\n@-webkit-keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 45% {\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@-webkit-keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-bounce {\n 0% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n -webkit-transform: scale(1, 1) translateY(0);\n transform: scale(1, 1) translateY(0);\n }\n}\n@-webkit-keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@-webkit-keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@-webkit-keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-flip {\n 50% {\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@-webkit-keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@keyframes fa-shake {\n 0% {\n -webkit-transform: rotate(-15deg);\n transform: rotate(-15deg);\n }\n 4% {\n -webkit-transform: rotate(15deg);\n transform: rotate(15deg);\n }\n 8%, 24% {\n -webkit-transform: rotate(-18deg);\n transform: rotate(-18deg);\n }\n 12%, 28% {\n -webkit-transform: rotate(18deg);\n transform: rotate(18deg);\n }\n 16% {\n -webkit-transform: rotate(-22deg);\n transform: rotate(-22deg);\n }\n 20% {\n -webkit-transform: rotate(22deg);\n transform: rotate(22deg);\n }\n 32% {\n -webkit-transform: rotate(-12deg);\n transform: rotate(-12deg);\n }\n 36% {\n -webkit-transform: rotate(12deg);\n transform: rotate(12deg);\n }\n 40%, 100% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n}\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\n transform: rotate(var(--fa-rotate-angle, none));\n}\n\n.fa-stack {\n display: inline-block;\n vertical-align: middle;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n z-index: var(--fa-stack-z-index, auto);\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.sr-only,\n.fa-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.sr-only-focusable:not(:focus),\n.fa-sr-only-focusable:not(:focus) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse,\n.fa-duotone.fa-inverse {\n color: var(--fa-inverse, #fff);\n}';function xe(){var e=A,t=T,n=se.cssPrefix,r=se.replacementClass,a=Oe;if(n!==e||r!==t){var o=new RegExp("\\.".concat(e,"\\-"),"g"),i=new RegExp("\\--".concat(e,"\\-"),"g"),u=new RegExp("\\.".concat(t),"g");a=a.replace(o,".".concat(n,"-")).replace(i,"--".concat(n,"-")).replace(u,".".concat(r))}return a}var je=!1;function ke(){se.autoAddCss&&!je&&(!function(e){if(e&&C){var t=E.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=E.head.childNodes,r=null,a=n.length-1;a>-1;a--){var o=n[a],i=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(r=o)}E.head.insertBefore(t,r)}}(xe()),je=!0)}var Ee={mixout:function(){return{dom:{css:xe,insertCss:ke}}},hooks:function(){return{beforeDOMElementCreation:function(){ke()},beforeI2svg:function(){ke()}}}},Pe=k||{};Pe[M]||(Pe[M]={}),Pe[M].styles||(Pe[M].styles={}),Pe[M].hooks||(Pe[M].hooks={}),Pe[M].shims||(Pe[M].shims=[]);var Se=Pe[M],Ce=[],_e=!1;function Me(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,o=void 0===a?[]:a;return"string"===typeof e?be(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(be(e[n]),'" ')}),"").trim()}(r),">").concat(o.map(Me).join(""),"</").concat(t,">")}function De(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}C&&((_e=(E.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(E.readyState))||E.addEventListener("DOMContentLoaded",(function e(){E.removeEventListener("DOMContentLoaded",e),_e=1,Ce.map((function(e){return e()}))})));var Ae=function(e,t,n,r){var a,o,i,u=Object.keys(e),l=u.length,c=void 0!==r?function(e,t){return function(n,r,a,o){return e.call(t,n,r,a,o)}}(t,r):t;for(void 0===n?(a=1,i=e[u[0]]):(a=0,i=n);a<l;a++)i=c(i,e[o=u[a]],o,e);return i};function Te(e){var t=function(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var o=e.charCodeAt(n++);56320==(64512&o)?t.push(((1023&a)<<10)+(1023&o)+65536):(t.push(a),n--)}else t.push(a)}return t}(e);return 1===t.length?t[0].toString(16):null}function ze(e){return Object.keys(e).reduce((function(t,n){var r=e[n];return!!r.icon?t[r.iconName]=r.icon:t[n]=r,t}),{})}function Ne(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).skipHooks,r=void 0!==n&&n,o=ze(t);"function"!==typeof Se.hooks.addPack||r?Se.styles[e]=a(a({},Se.styles[e]||{}),o):Se.hooks.addPack(e,ze(t)),"fas"===e&&Ne("fa",t)}var Re,Le,Ie,Fe=Se.styles,We=Se.shims,He=(u(Re={},B,Object.values(X[B])),u(Re,U,Object.values(X[U])),Re),Ve=null,Be={},Ue={},Ye={},Ze={},qe={},Ge=(u(Le={},B,Object.keys(q[B])),u(Le,U,Object.keys(q[U])),Le);function Xe(e,t){var n,r=t.split("-"),a=r[0],o=r.slice(1).join("-");return a!==e||""===o||(n=o,~ie.indexOf(n))?null:o}var Ke,$e=function(){var e=function(e){return Ae(Fe,(function(t,n,r){return t[r]=Ae(n,e,{}),t}),{})};Be=e((function(e,t,n){(t[3]&&(e[t[3]]=n),t[2])&&t[2].filter((function(e){return"number"===typeof e})).forEach((function(t){e[t.toString(16)]=n}));return e})),Ue=e((function(e,t,n){(e[n]=n,t[2])&&t[2].filter((function(e){return"string"===typeof e})).forEach((function(t){e[t]=n}));return e})),qe=e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in Fe||se.autoFetchSvg,n=Ae(We,(function(e,n){var r=n[0],a=n[1],o=n[2];return"far"!==a||t||(a="fas"),"string"===typeof r&&(e.names[r]={prefix:a,iconName:o}),"number"===typeof r&&(e.unicodes[r.toString(16)]={prefix:a,iconName:o}),e}),{names:{},unicodes:{}});Ye=n.names,Ze=n.unicodes,Ve=rt(se.styleDefault,{family:se.familyDefault})};function Je(e,t){return(Be[e]||{})[t]}function Qe(e,t){return(qe[e]||{})[t]}function et(e){return Ye[e]||{prefix:null,iconName:null}}function tt(){return Ve}Ke=function(e){Ve=rt(e.styleDefault,{family:se.familyDefault})},fe.push(Ke),$e();var nt=function(){return{prefix:null,iconName:null,rest:[]}};function rt(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).family,n=void 0===t?B:t,r=q[n][e],a=G[n][e]||G[n][r],o=e in Se.styles?e:null;return a||o||null}var at=(u(Ie={},B,Object.keys(X[B])),u(Ie,U,Object.keys(X[U])),Ie);function ot(e){var t,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).skipLookups,r=void 0!==n&&n,a=(u(t={},B,"".concat(se.cssPrefix,"-").concat(B)),u(t,U,"".concat(se.cssPrefix,"-").concat(U)),t),o=null,i=B;(e.includes(a[B])||e.some((function(e){return at[B].includes(e)})))&&(i=B),(e.includes(a[U])||e.some((function(e){return at[U].includes(e)})))&&(i=U);var l=e.reduce((function(e,t){var n=Xe(se.cssPrefix,t);if(Fe[t]?(t=He[i].includes(t)?K[i][t]:t,o=t,e.prefix=t):Ge[i].indexOf(t)>-1?(o=t,e.prefix=rt(t,{family:i})):n?e.iconName=n:t!==se.replacementClass&&t!==a[B]&&t!==a[U]&&e.rest.push(t),!r&&e.prefix&&e.iconName){var u="fa"===o?et(e.iconName):{},l=Qe(e.prefix,e.iconName);u.prefix&&(o=null),e.iconName=u.iconName||l||e.iconName,e.prefix=u.prefix||e.prefix,"far"!==e.prefix||Fe.far||!Fe.fas||se.autoFetchSvg||(e.prefix="fas")}return e}),nt());return(e.includes("fa-brands")||e.includes("fab"))&&(l.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(l.prefix="fad"),l.prefix||i!==U||!Fe.fass&&!se.autoFetchSvg||(l.prefix="fass",l.iconName=Qe(l.prefix,l.iconName)||l.iconName),"fa"!==l.prefix&&"fa"!==o||(l.prefix=tt()||"fas"),l}var it=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n,r;return t=e,n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=n.reduce(this._pullDefinitions,{});Object.keys(o).forEach((function(t){e.definitions[t]=a(a({},e.definitions[t]||{}),o[t]),Ne(t,o[t]);var n=X[B][t];n&&Ne(n,o[t]),$e()}))}},{key:"reset",value:function(){this.definitions={}}},{key:"_pullDefinitions",value:function(e,t){var n=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(n).map((function(t){var r=n[t],a=r.prefix,o=r.iconName,i=r.icon,u=i[2];e[a]||(e[a]={}),u.length>0&&u.forEach((function(t){"string"===typeof t&&(e[a][t]=i)})),e[a][o]=i})),e}}],n&&i(t.prototype,n),r&&i(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),ut=[],lt={},ct={},st=Object.keys(ct);function ft(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a<n;a++)r[a-2]=arguments[a];return(lt[e]||[]).forEach((function(e){t=e.apply(null,[t].concat(r))})),t}function dt(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];(lt[e]||[]).forEach((function(e){e.apply(null,n)}))}function pt(){var e=arguments[0],t=Array.prototype.slice.call(arguments,1);return ct[e]?ct[e].apply(null,t):void 0}function mt(e){"fa"===e.prefix&&(e.prefix="fas");var t=e.iconName,n=e.prefix||tt();if(t)return t=Qe(n,t)||t,De(vt.definitions,n,t)||De(Se.styles,n,t)}var vt=new it,gt={i2svg:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return C?(dt("beforeI2svg",e),pt("pseudoElements2svg",e),pt("i2svg",e)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.autoReplaceSvgRoot;!1===se.autoReplaceSvg&&(se.autoReplaceSvg=!0),se.observeMutations=!0,e=function(){bt({autoReplaceSvgRoot:n}),dt("watch",t)},C&&(_e?setTimeout(e,0):Ce.push(e))}},ht={noAuto:function(){se.autoReplaceSvg=!1,se.observeMutations=!1,dt("noAuto")},config:se,dom:gt,parse:{icon:function(e){if(null===e)return null;if("object"===o(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:Qe(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=rt(e[0]);return{prefix:n,iconName:Qe(n,t)||t}}if("string"===typeof e&&(e.indexOf("".concat(se.cssPrefix,"-"))>-1||e.match($))){var r=ot(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||tt(),iconName:Qe(r.prefix,r.iconName)||r.iconName}}if("string"===typeof e){var a=tt();return{prefix:a,iconName:Qe(a,e)||e}}}},library:vt,findIconDefinition:mt,toHtml:Me},bt=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,t=void 0===e?E:e;(Object.keys(Se.styles).length>0||se.autoFetchSvg)&&C&&se.autoReplaceSvg&&ht.dom.i2svg({node:t})};function yt(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return Me(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(C){var t=E.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function wt(e){var t=e.icons,n=t.main,r=t.mask,o=e.prefix,i=e.iconName,u=e.transform,l=e.symbol,c=e.title,s=e.maskId,f=e.titleId,d=e.extra,p=e.watchable,m=void 0!==p&&p,v=r.found?r:n,g=v.width,h=v.height,b="fak"===o,y=[se.replacementClass,i?"".concat(se.cssPrefix,"-").concat(i):""].filter((function(e){return-1===d.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(d.classes).join(" "),w={children:[],attributes:a(a({},d.attributes),{},{"data-prefix":o,"data-icon":i,class:y,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(g," ").concat(h)})},O=b&&!~d.classes.indexOf("fa-fw")?{width:"".concat(g/h*16*.0625,"em")}:{};m&&(w.attributes[z]=""),c&&(w.children.push({tag:"title",attributes:{id:w.attributes["aria-labelledby"]||"title-".concat(f||ve())},children:[c]}),delete w.attributes.title);var x=a(a({},w),{},{prefix:o,iconName:i,main:n,mask:r,maskId:s,transform:u,symbol:l,styles:a(a({},O),d.styles)}),j=r.found&&n.found?pt("generateAbstractMask",x)||{children:[],attributes:{}}:pt("generateAbstractIcon",x)||{children:[],attributes:{}},k=j.children,E=j.attributes;return x.children=k,x.attributes=E,l?function(e){var t=e.prefix,n=e.iconName,r=e.children,o=e.attributes,i=e.symbol,u=!0===i?"".concat(t,"-").concat(se.cssPrefix,"-").concat(n):i;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:a(a({},o),{},{id:u}),children:r}]}]}(x):function(e){var t=e.children,n=e.main,r=e.mask,o=e.attributes,i=e.styles,u=e.transform;if(we(u)&&n.found&&!r.found){var l={x:n.width/n.height/2,y:.5};o.style=ye(a(a({},i),{},{"transform-origin":"".concat(l.x+u.x/16,"em ").concat(l.y+u.y/16,"em")}))}return[{tag:"svg",attributes:o,children:t}]}(x)}function Ot(e){var t=e.content,n=e.width,r=e.height,o=e.transform,i=e.title,u=e.extra,l=e.watchable,c=void 0!==l&&l,s=a(a(a({},u.attributes),i?{title:i}:{}),{},{class:u.classes.join(" ")});c&&(s[z]="");var f=a({},u.styles);we(o)&&(f.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?D:n,a=e.height,o=void 0===a?D:a,i=e.startCentered,u=void 0!==i&&i,l="";return l+=u&&_?"translate(".concat(t.x/de-r/2,"em, ").concat(t.y/de-o/2,"em) "):u?"translate(calc(-50% + ".concat(t.x/de,"em), calc(-50% + ").concat(t.y/de,"em)) "):"translate(".concat(t.x/de,"em, ").concat(t.y/de,"em) "),l+="scale(".concat(t.size/de*(t.flipX?-1:1),", ").concat(t.size/de*(t.flipY?-1:1),") "),l+"rotate(".concat(t.rotate,"deg) ")}({transform:o,startCentered:!0,width:n,height:r}),f["-webkit-transform"]=f.transform);var d=ye(f);d.length>0&&(s.style=d);var p=[];return p.push({tag:"span",attributes:s,children:[t]}),i&&p.push({tag:"span",attributes:{class:"sr-only"},children:[i]}),p}var xt=Se.styles;function jt(e){var t=e[0],n=e[1],r=l(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(se.cssPrefix,"-").concat(ae.GROUP)},children:[{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(ae.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(se.cssPrefix,"-").concat(ae.PRIMARY),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var kt={found:!1,width:512,height:512};function Et(e,t){var n=t;return"fa"===t&&null!==se.styleDefault&&(t=tt()),new Promise((function(r,o){pt("missingIconAbstract");if("fa"===n){var i=et(e)||{};e=i.iconName||e,t=i.prefix||t}if(e&&t&&xt[t]&&xt[t][e])return r(jt(xt[t][e]));!function(e,t){V||se.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(a(a({},kt),{},{icon:se.showMissingIcons&&e&&pt("missingIconAbstract")||{}}))}))}var Pt=function(){},St=se.measurePerformance&&S&&S.mark&&S.measure?S:{mark:Pt,measure:Pt},Ct='FA "6.4.0"',_t=function(e){St.mark("".concat(Ct," ").concat(e," ends")),St.measure("".concat(Ct," ").concat(e),"".concat(Ct," ").concat(e," begins"),"".concat(Ct," ").concat(e," ends"))},Mt={begin:function(e){return St.mark("".concat(Ct," ").concat(e," begins")),function(){return _t(e)}},end:_t},Dt=function(){};function At(e){return"string"===typeof(e.getAttribute?e.getAttribute(z):null)}function Tt(e){return E.createElementNS("http://www.w3.org/2000/svg",e)}function zt(e){return E.createElement(e)}function Nt(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).ceFn,n=void 0===t?"svg"===e.tag?Tt:zt:t;if("string"===typeof e)return E.createTextNode(e);var r=n(e.tag);return Object.keys(e.attributes||[]).forEach((function(t){r.setAttribute(t,e.attributes[t])})),(e.children||[]).forEach((function(e){r.appendChild(Nt(e,{ceFn:n}))})),r}var Rt={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach((function(e){t.parentNode.insertBefore(Nt(e),t)})),null===t.getAttribute(z)&&se.keepOriginalSource){var n=E.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~he(t).indexOf(se.replacementClass))return Rt.replace(e);var r=new RegExp("".concat(se.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var a=n[0].attributes.class.split(" ").reduce((function(e,t){return t===se.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e}),{toNode:[],toSvg:[]});n[0].attributes.class=a.toSvg.join(" "),0===a.toNode.length?t.removeAttribute("class"):t.setAttribute("class",a.toNode.join(" "))}var o=n.map((function(e){return Me(e)})).join("\n");t.setAttribute(z,""),t.innerHTML=o}};function Lt(e){e()}function It(e,t){var n="function"===typeof t?t:Dt;if(0===e.length)n();else{var r=Lt;se.mutateApproach===W&&(r=k.requestAnimationFrame||Lt),r((function(){var t=!0===se.autoReplaceSvg?Rt.replace:Rt[se.autoReplaceSvg]||Rt.replace,r=Mt.begin("mutate");e.map(t),r(),n()}))}}var Ft=!1;function Wt(){Ft=!0}function Ht(){Ft=!1}var Vt=null;function Bt(e){if(P&&se.observeMutations){var t=e.treeCallback,n=void 0===t?Dt:t,r=e.nodeCallback,a=void 0===r?Dt:r,o=e.pseudoElementsCallback,i=void 0===o?Dt:o,u=e.observeMutationsRoot,l=void 0===u?E:u;Vt=new P((function(e){if(!Ft){var t=tt();ge(e).forEach((function(e){if("childList"===e.type&&e.addedNodes.length>0&&!At(e.addedNodes[0])&&(se.searchPseudoElements&&i(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&se.searchPseudoElements&&i(e.target.parentNode),"attributes"===e.type&&At(e.target)&&~re.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(L):null,n=e.getAttribute?e.getAttribute(I):null;return t&&n}(e.target)){var r=ot(he(e.target)),o=r.prefix,u=r.iconName;e.target.setAttribute(L,o||t),u&&e.target.setAttribute(I,u)}else(l=e.target)&&l.classList&&l.classList.contains&&l.classList.contains(se.replacementClass)&&a(e.target);var l}))}})),C&&Vt.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Ut(e){var t,n,r=e.getAttribute("data-prefix"),a=e.getAttribute("data-icon"),o=void 0!==e.innerText?e.innerText.trim():"",i=ot(he(e));return i.prefix||(i.prefix=tt()),r&&a&&(i.prefix=r,i.iconName=a),i.iconName&&i.prefix||(i.prefix&&o.length>0&&(i.iconName=(t=i.prefix,n=e.innerText,(Ue[t]||{})[n]||Je(i.prefix,Te(e.innerText)))),!i.iconName&&se.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function Yt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=Ut(e),r=n.iconName,o=n.prefix,i=n.rest,u=function(e){var t=ge(e.attributes).reduce((function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e}),{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return se.autoA11y&&(n?t["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(r||ve()):(t["aria-hidden"]="true",t.focusable="false")),t}(e),l=ft("parseNodeAttributes",{},e),c=t.styleParser?function(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce((function(e,t){var n=t.split(":"),r=n[0],a=n.slice(1);return r&&a.length>0&&(e[r]=a.join(":").trim()),e}),{})),n}(e):[];return a({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:o,transform:pe,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:i,styles:c,attributes:u}},l)}var Zt=Se.styles;function qt(e){var t="nest"===se.autoReplaceSvg?Yt(e,{styleParser:!1}):Yt(e);return~t.extra.classes.indexOf(J)?pt("generateLayersText",e,t):pt("generateSvgReplacementMutation",e,t)}var Gt=new Set;function Xt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!C)return Promise.resolve();var n=E.documentElement.classList,r=function(e){return n.add("".concat(F,"-").concat(e))},a=function(e){return n.remove("".concat(F,"-").concat(e))},o=se.autoFetchSvg?Gt:Y.map((function(e){return"fa-".concat(e)})).concat(Object.keys(Zt));o.includes("fa")||o.push("fa");var i=[".".concat(J,":not([").concat(z,"])")].concat(o.map((function(e){return".".concat(e,":not([").concat(z,"])")}))).join(", ");if(0===i.length)return Promise.resolve();var u=[];try{u=ge(e.querySelectorAll(i))}catch(Nn){}if(!(u.length>0))return Promise.resolve();r("pending"),a("complete");var l=Mt.begin("onTree"),c=u.reduce((function(e,t){try{var n=qt(t);n&&e.push(n)}catch(Nn){V||"MissingIcon"===Nn.name&&console.error(Nn)}return e}),[]);return new Promise((function(e,n){Promise.all(c).then((function(n){It(n,(function(){r("active"),r("complete"),a("pending"),"function"===typeof t&&t(),l(),e()}))})).catch((function(e){l(),n(e)}))}))}function Kt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;qt(e).then((function(e){e&&It([e],t)}))}Y.map((function(e){Gt.add("fa-".concat(e))})),Object.keys(q[B]).map(Gt.add.bind(Gt)),Object.keys(q[U]).map(Gt.add.bind(Gt)),Gt=c(Gt);var $t=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?pe:n,o=t.symbol,i=void 0!==o&&o,u=t.mask,l=void 0===u?null:u,c=t.maskId,s=void 0===c?null:c,f=t.title,d=void 0===f?null:f,p=t.titleId,m=void 0===p?null:p,v=t.classes,g=void 0===v?[]:v,h=t.attributes,b=void 0===h?{}:h,y=t.styles,w=void 0===y?{}:y;if(e){var O=e.prefix,x=e.iconName,j=e.icon;return yt(a({type:"icon"},e),(function(){return dt("beforeDOMElementCreation",{iconDefinition:e,params:t}),se.autoA11y&&(d?b["aria-labelledby"]="".concat(se.replacementClass,"-title-").concat(m||ve()):(b["aria-hidden"]="true",b.focusable="false")),wt({icons:{main:jt(j),mask:l?jt(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:O,iconName:x,transform:a(a({},pe),r),symbol:i,title:d,maskId:s,titleId:m,extra:{attributes:b,styles:w,classes:g}})}))}},Jt={mixout:function(){return{icon:(e=$t,function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:mt(t||{}),o=n.mask;return o&&(o=(o||{}).icon?o:mt(o||{})),e(r,a(a({},n),{},{mask:o}))})};var e},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=Xt,e.nodeCallback=Kt,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?E:t,r=e.callback;return Xt(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.title,a=t.titleId,o=t.prefix,i=t.transform,u=t.symbol,c=t.mask,s=t.maskId,f=t.extra;return new Promise((function(t,d){Promise.all([Et(n,o),c.iconName?Et(c.iconName,c.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then((function(c){var d=l(c,2),p=d[0],m=d[1];t([e,wt({icons:{main:p,mask:m},prefix:o,iconName:n,transform:i,symbol:u,maskId:s,title:r,titleId:a,extra:f,watchable:!0})])})).catch(d)}))},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,a=e.main,o=e.transform,i=ye(e.styles);return i.length>0&&(r.style=i),we(o)&&(t=pt("generateAbstractTransformGrouping",{main:a,transform:o,containerWidth:a.width,iconWidth:a.width})),n.push(t||a.icon),{children:n,attributes:r}}}},Qt={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return yt({type:"layer"},(function(){dt("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e((function(e){Array.isArray(e)?e.map((function(e){n=n.concat(e.abstract)})):n=n.concat(e.abstract)})),[{tag:"span",attributes:{class:["".concat(se.cssPrefix,"-layers")].concat(c(r)).join(" ")},children:n}]}))}}}},en={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,o=t.classes,i=void 0===o?[]:o,u=t.attributes,l=void 0===u?{}:u,s=t.styles,f=void 0===s?{}:s;return yt({type:"counter",content:e},(function(){return dt("beforeDOMElementCreation",{content:e,params:t}),function(e){var t=e.content,n=e.title,r=e.extra,o=a(a(a({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),i=ye(r.styles);i.length>0&&(o.style=i);var u=[];return u.push({tag:"span",attributes:o,children:[t]}),n&&u.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),u}({content:e.toString(),title:r,extra:{attributes:l,styles:f,classes:["".concat(se.cssPrefix,"-layers-counter")].concat(c(i))}})}))}}}},tn={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?pe:n,o=t.title,i=void 0===o?null:o,u=t.classes,l=void 0===u?[]:u,s=t.attributes,f=void 0===s?{}:s,d=t.styles,p=void 0===d?{}:d;return yt({type:"text",content:e},(function(){return dt("beforeDOMElementCreation",{content:e,params:t}),Ot({content:e,transform:a(a({},pe),r),title:i,extra:{attributes:f,styles:p,classes:["".concat(se.cssPrefix,"-layers-text")].concat(c(l))}})}))}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.title,r=t.transform,a=t.extra,o=null,i=null;if(_){var u=parseInt(getComputedStyle(e).fontSize,10),l=e.getBoundingClientRect();o=l.width/u,i=l.height/u}return se.autoA11y&&!n&&(a.attributes["aria-hidden"]="true"),Promise.resolve([e,Ot({content:e.innerHTML,width:o,height:i,transform:r,title:n,extra:a,watchable:!0})])}}},nn=new RegExp('"',"ug"),rn=[1105920,1112319];function an(e,t){var n="".concat(R).concat(t.replace(":","-"));return new Promise((function(r,o){if(null!==e.getAttribute(n))return r();var i=ge(e.children).filter((function(e){return e.getAttribute(N)===t}))[0],u=k.getComputedStyle(e,t),l=u.getPropertyValue("font-family").match(Q),c=u.getPropertyValue("font-weight"),s=u.getPropertyValue("content");if(i&&!l)return e.removeChild(i),r();if(l&&"none"!==s&&""!==s){var f=u.getPropertyValue("content"),d=~["Sharp"].indexOf(l[2])?U:B,p=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(l[2])?G[d][l[2].toLowerCase()]:ee[d][c],m=function(e){var t=e.replace(nn,""),n=function(e,t){var n,r=e.length,a=e.charCodeAt(t);return a>=55296&&a<=56319&&r>t+1&&(n=e.charCodeAt(t+1))>=56320&&n<=57343?1024*(a-55296)+n-56320+65536:a}(t,0),r=n>=rn[0]&&n<=rn[1],a=2===t.length&&t[0]===t[1];return{value:Te(a?t[0]:t),isSecondary:r||a}}(f),v=m.value,g=m.isSecondary,h=l[0].startsWith("FontAwesome"),b=Je(p,v),y=b;if(h){var w=function(e){var t=Ze[e],n=Je("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}(v);w.iconName&&w.prefix&&(b=w.iconName,p=w.prefix)}if(!b||g||i&&i.getAttribute(L)===p&&i.getAttribute(I)===y)r();else{e.setAttribute(n,y),i&&e.removeChild(i);var O={iconName:null,title:null,titleId:null,prefix:null,transform:pe,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},x=O.extra;x.attributes[N]=t,Et(b,p).then((function(o){var i=wt(a(a({},O),{},{icons:{main:o,mask:nt()},prefix:p,iconName:y,extra:x,watchable:!0})),u=E.createElement("svg");"::before"===t?e.insertBefore(u,e.firstChild):e.appendChild(u),u.outerHTML=i.map((function(e){return Me(e)})).join("\n"),e.removeAttribute(n),r()})).catch(o)}}else r()}))}function on(e){return Promise.all([an(e,"::before"),an(e,"::after")])}function un(e){return e.parentNode!==document.head&&!~H.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(N)&&(!e.parentNode||"svg"!==e.parentNode.tagName)}function ln(e){if(C)return new Promise((function(t,n){var r=ge(e.querySelectorAll("*")).filter(un).map(on),a=Mt.begin("searchPseudoElements");Wt(),Promise.all(r).then((function(){a(),Ht(),t()})).catch((function(){a(),Ht(),n()}))}))}var cn=!1,sn=function(e){return e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},fn={mixout:function(){return{parse:{transform:function(e){return sn(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=sn(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,o=e.iconWidth,i={transform:"translate(".concat(r/2," 256)")},u="translate(".concat(32*n.x,", ").concat(32*n.y,") "),l="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),c="rotate(".concat(n.rotate," 0 0)"),s={outer:i,inner:{transform:"".concat(u," ").concat(l," ").concat(c)},path:{transform:"translate(".concat(o/2*-1," -256)")}};return{tag:"g",attributes:a({},s.outer),children:[{tag:"g",attributes:a({},s.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:a(a({},t.icon.attributes),s.path)}]}]}}}},dn={x:0,y:0,width:"100%",height:"100%"};function pn(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var mn={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?ot(n.split(" ").map((function(e){return e.trim()}))):nt();return r.prefix||(r.prefix=tt()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,o=e.main,i=e.mask,u=e.maskId,l=e.transform,c=o.width,s=o.icon,f=i.width,d=i.icon,p=function(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),i="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),u="rotate(".concat(t.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(o," ").concat(i," ").concat(u)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}({transform:l,containerWidth:f,iconWidth:c}),m={tag:"rect",attributes:a(a({},dn),{},{fill:"white"})},v=s.children?{children:s.children.map(pn)}:{},g={tag:"g",attributes:a({},p.inner),children:[pn(a({tag:s.tag,attributes:a(a({},s.attributes),p.path)},v))]},h={tag:"g",attributes:a({},p.outer),children:[g]},b="mask-".concat(u||ve()),y="clip-".concat(u||ve()),w={tag:"mask",attributes:a(a({},dn),{},{id:b,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,h]},O={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=d,"g"===t.tag?t.children:[t])},w]};return n.push(O,{tag:"rect",attributes:a({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(b,")")},dn)}),{children:n,attributes:r}}}},vn={provides:function(e){var t=!1;k.matchMedia&&(t=k.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:a(a({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var o=a(a({},r),{},{attributeName:"opacity"}),i={tag:"circle",attributes:a(a({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||i.children.push({tag:"animate",attributes:a(a({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:a(a({},o),{},{values:"1;0;1;1;0;1;"})}),e.push(i),e.push({tag:"path",attributes:a(a({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:a(a({},o),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:a(a({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:a(a({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}};!function(e,t){var n=t.mixoutsTo;ut=e,lt={},Object.keys(ct).forEach((function(e){-1===st.indexOf(e)&&delete ct[e]})),ut.forEach((function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach((function(e){"function"===typeof t[e]&&(n[e]=t[e]),"object"===o(t[e])&&Object.keys(t[e]).forEach((function(r){n[e]||(n[e]={}),n[e][r]=t[e][r]}))})),e.hooks){var r=e.hooks();Object.keys(r).forEach((function(e){lt[e]||(lt[e]=[]),lt[e].push(r[e])}))}e.provides&&e.provides(ct)}))}([Ee,Jt,Qt,en,tn,{hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=ln,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?E:t;se.searchPseudoElements&&ln(n)}}},{mixout:function(){return{dom:{unwatch:function(){Wt(),cn=!0}}}},hooks:function(){return{bootstrap:function(){Bt(ft("mutationObserverCallbacks",{}))},noAuto:function(){Vt&&Vt.disconnect()},watch:function(e){var t=e.observeMutationsRoot;cn?Ht():Bt(ft("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},fn,mn,vn,{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}],{mixoutsTo:ht});var gn=ht.parse,hn=ht.icon,bn=n(45697),yn=n.n(bn),wn=n(67294);function On(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?On(Object(n),!0).forEach((function(t){kn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):On(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function jn(e){return jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jn(e)}function kn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function En(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function Pn(e){return function(e){if(Array.isArray(e))return Sn(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Sn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Sn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Cn(e){return t=e,(t-=0)===t?e:(e=e.replace(/[\-_\s]+(.)?/g,(function(e,t){return t?t.toUpperCase():""}))).substr(0,1).toLowerCase()+e.substr(1);var t}var _n=["style"];var Mn=!1;try{Mn=!0}catch(Nn){}function Dn(e){return e&&"object"===jn(e)&&e.prefix&&e.iconName&&e.icon?e:gn.icon?gn.icon(e):null===e?null:e&&"object"===jn(e)&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"===typeof e?{prefix:"fas",iconName:e}:void 0}function An(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?kn({},e,t):{}}var Tn=wn.forwardRef((function(e,t){var n=e.icon,r=e.mask,a=e.symbol,o=e.className,i=e.title,u=e.titleId,l=e.maskId,c=Dn(n),s=An("classes",[].concat(Pn(function(e){var t,n=e.beat,r=e.fade,a=e.beatFade,o=e.bounce,i=e.shake,u=e.flash,l=e.spin,c=e.spinPulse,s=e.spinReverse,f=e.pulse,d=e.fixedWidth,p=e.inverse,m=e.border,v=e.listItem,g=e.flip,h=e.size,b=e.rotation,y=e.pull,w=(kn(t={"fa-beat":n,"fa-fade":r,"fa-beat-fade":a,"fa-bounce":o,"fa-shake":i,"fa-flash":u,"fa-spin":l,"fa-spin-reverse":s,"fa-spin-pulse":c,"fa-pulse":f,"fa-fw":d,"fa-inverse":p,"fa-border":m,"fa-li":v,"fa-flip":!0===g,"fa-flip-horizontal":"horizontal"===g||"both"===g,"fa-flip-vertical":"vertical"===g||"both"===g},"fa-".concat(h),"undefined"!==typeof h&&null!==h),kn(t,"fa-rotate-".concat(b),"undefined"!==typeof b&&null!==b&&0!==b),kn(t,"fa-pull-".concat(y),"undefined"!==typeof y&&null!==y),kn(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(w).map((function(e){return w[e]?e:null})).filter((function(e){return e}))}(e)),Pn(o.split(" ")))),f=An("transform","string"===typeof e.transform?gn.transform(e.transform):e.transform),d=An("mask",Dn(r)),p=hn(c,xn(xn(xn(xn({},s),f),d),{},{symbol:a,title:i,titleId:u,maskId:l}));if(!p)return function(){var e;!Mn&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",c),null;var m=p.abstract,v={ref:t};return Object.keys(e).forEach((function(t){Tn.defaultProps.hasOwnProperty(t)||(v[t]=e[t])})),zn(m[0],v)}));Tn.displayName="FontAwesomeIcon",Tn.propTypes={beat:yn().bool,border:yn().bool,beatFade:yn().bool,bounce:yn().bool,className:yn().string,fade:yn().bool,flash:yn().bool,mask:yn().oneOfType([yn().object,yn().array,yn().string]),maskId:yn().string,fixedWidth:yn().bool,inverse:yn().bool,flip:yn().oneOf([!0,!1,"horizontal","vertical","both"]),icon:yn().oneOfType([yn().object,yn().array,yn().string]),listItem:yn().bool,pull:yn().oneOf(["right","left"]),pulse:yn().bool,rotation:yn().oneOf([0,90,180,270]),shake:yn().bool,size:yn().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:yn().bool,spinPulse:yn().bool,spinReverse:yn().bool,symbol:yn().oneOfType([yn().bool,yn().string]),title:yn().string,titleId:yn().string,transform:yn().oneOfType([yn().string,yn().object]),swapOpacity:yn().bool},Tn.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var zn=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof n)return n;var a=(n.children||[]).map((function(n){return e(t,n)})),o=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=r.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,t){var n,r=t.indexOf(":"),a=Cn(t.slice(0,r)),o=t.slice(r+1).trim();return a.startsWith("webkit")?e[(n=a,n.charAt(0).toUpperCase()+n.slice(1))]=o:e[a]=o,e}),{});break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[Cn(t)]=r}return e}),{attrs:{}}),i=r.style,u=void 0===i?{}:i,l=En(r,_n);return o.attrs.style=xn(xn({},o.attrs.style),u),t.apply(void 0,[n.tag,xn(xn({},o.attrs),l)].concat(Pn(a)))}.bind(null,wn.createElement)},59514:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(67294)),a=h(n(60677)),o=n(15557),i=g(n(12460)),u=h(n(43946)),l=g(n(58358)),c=n(54576),s=n(35890),f=h(n(81743)),d=n(86420),p=["children","fractionDigits"],m=["children"];function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(e){return e&&e.__esModule?e:{default:e}}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}function y(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var w=(0,a.default)(o.Flex).attrs({position:"relative","data-testid":"chartPopover-dimension",padding:[1,0]}).withConfig({displayName:"dimension__GridRow",componentId:"sc-wluvip-0"})(["display:contents;"]),O=(0,a.default)(i.ColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"dimension__ColorBackground",componentId:"sc-wluvip-1"})([""]),x={ANOMALY_RATE:"arp",default:"value"},j=function(e){var t=e.children,n=e.fractionDigits,a=void 0===n?0:n,i=y(e,p),u=t.toString().split("."),c=u[0],s=u[1];return r.default.createElement(o.Flex,{alignItems:"center",justifyContent:"end",padding:[0,.5]},r.default.createElement(l.Value,b({},i,{textAlign:"right"}),c),"undefined"!==typeof s&&r.default.createElement(l.Value,i,"."),r.default.createElement(l.Value,b({as:o.Flex,flex:!1,width:1.8*a},i,{textAlign:"left"}),s))},k=function(e){var t=e.children,n=y(e,m);return r.default.createElement(o.Flex,{gap:1,justifyContent:"end"},Object.keys(t).map((function(e){return r.default.createElement(o.Flex,{key:e,border:{size:"1px",side:"all",color:t[e]},round:!0,flex:!1,padding:[0,.5]},r.default.createElement(f.default,{content:s.labels[e]||e},r.default.createElement(l.Value,b({},n,{color:t[e]}),e)))})))},E=function(e){var t=e.id,n=e.strong,a=e.chars,s=e.rowFlavour,f=e.size,p=e.fullCols,m=(0,c.useVisibleDimensionId)(t),v=(0,c.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(w,{opacity:m?null:"weak"},r.default.createElement(o.Flex,{alignItems:"center",gap:1,position:"relative",overflow:"hidden"},r.default.createElement(O,{id:t,valueKey:x[s]||x.default,height:(f>18?18:f<12?12:f)+"px"},r.default.createElement(i.default,{id:t})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:t,strong:n,maxLength:a,fontSize:"1.1em"})),r.default.createElement(l.default,{id:t,strong:n,visible:m,Component:j,fractionDigits:v,color:s===d.rowFlavours.default?"text":"textLite",fontSize:"1.1em"}),p&&r.default.createElement(r.default.Fragment,null,r.default.createElement(l.default,{id:t,strong:n,visible:m,valueKey:"arp",Component:j,fractionDigits:2,color:s===d.rowFlavours.ANOMALY_RATE?"anomalyTextFocus":"anomalyText",fontSize:"1.1em"}),r.default.createElement(l.default,{textAlign:"right",id:t,strong:n,visible:m,valueKey:"pa",Component:k,color:s===d.rowFlavours.ANNOTATIONS?"text":"textLite",fontSize:"1.1em"})))};t.default=E},86420:function(e,t,n){"use strict";t.__esModule=!0,t.rowFlavours=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(60677)),o=n(54576),i=n(90833),u=c(n(9033)),l=c(n(59514));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var f=a.default.div.withConfig({displayName:"dimensions__Grid",componentId:"sc-x7v8hd-0"})(["display:grid;width:100%;grid-template-columns:",";align-items:center;"],(function(e){return"full"===e.cols?"2fr 1fr 1fr 1fr":"3fr 1fr"})),d=[null,null],p=function(e){var t=Math.round((e-70)/18);return t<2?2:t},m=function(e){return p(e)/2},v={ANOMALY_RATE:"ANOMALY_RATE",ANNOTATIONS:"ANNOTATIONS",default:"VALUE"};t.rowFlavours=v;var g={ANOMALY_RATE:"anomalyDesc",ANNOTATIONS:"annotationsDesc",default:"valueDesc"},h=function(e){var t=e.size,n=e.height,a=e.width,c=(0,o.useChart)(),s=(0,o.useAttributeValue)("hoverX")||d,h=s[0],b=s[1],y=(0,o.usePayload)().data,w=(0,r.useMemo)((function(){var e=c.getClosestRow(h)||y.length-1,t=c.onHoverSortDimensions(e,g[b]||c.getAttribute("dimensionsSort")||g.default)||[];c.getAttribute("selectedDimensions").length>0&&(t=t.filter((function(e){return c.isDimensionVisible(e)})));var r=t.findIndex((function(e){return e===b})),a=t.length,o=Math.floor(function(e,t,n){return e<p(n)||t<m(n)?0:t>e-m(n)?t-(m(n)+(e-t)):t-m(n)}(a,r,n)),i=Math.ceil(function(e,t,n){return e<p(n)?e:t<m(n)?t+m(n)+(m(n)-t):t>e-m(n)?e:t+m(n)}(a,r,n));return[o,i,a,t.slice(o,i)]}),[c,b,h,y,n]),O=w[0],x=w[1],j=w[2],k=w[3],E=v[b]||v.default,P=(0,o.useAttributeValue)("cols");return r.default.createElement(r.default.Fragment,null,r.default.createElement(i.TextNano,{fontSize:"1em",color:"textLite"},O>0?"\u2191"+O+" more values":r.default.createElement(r.default.Fragment,null,"\xa0")),r.default.createElement(f,{gap:.5,column:!0,cols:P},r.default.createElement(i.TextMicro,{fontSize:"1em",strong:!0},"Dimension"),r.default.createElement(i.TextMicro,{fontSize:"1em",color:E===v.default?"text":"textLite",textAlign:"right"},"Value"," ",r.default.createElement(u.default,{visible:!0,strong:E===v.default,color:E===v.default?"text":"textLite",fontSize:"1em"})),"full"===P&&r.default.createElement(r.default.Fragment,null,r.default.createElement(i.TextMicro,{fontSize:"1em",strong:E===v.ANOMALY_RATE,color:E===v.ANOMALY_RATE?"text":"textLite",textAlign:"right"},"AR %"),r.default.createElement(i.TextMicro,{fontSize:"1em",strong:E===v.ANNOTATIONS,color:E===v.ANNOTATIONS?"text":"textLite",textAlign:"right"},"Info")),k.map((function(e){return r.default.createElement(l.default,{key:e,id:e,strong:b===e,chars:parseInt(a/("full"===P?15:8)),rowFlavour:E,size:(t-80)/k.length,fullCols:"full"===P})}))),r.default.createElement(i.TextNano,{color:"textLite",fontSize:"1em"},x<j?"\u2193"+(j-x)+" more values":r.default.createElement(r.default.Fragment,null,"\xa0")))},b=(0,r.memo)(h);t.default=b},63076:function(e,t,n){"use strict";t.ZP=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=s(n(58607)),o=n(54576),i=s(n(70486)),u=n(86954),l=s(n(86420)),c=["uiName"];function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}var p=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),s=(0,o.useOnResize)(n),f=s.width,p=s.height,m=f<p?f:p;return r.default.createElement(u.ChartWrapper,{ref:t},r.default.createElement(a.default,d({uiName:n,column:!0,gap:.5,position:"relative"},i),r.default.createElement(l.default,{size:m,height:p,width:f})))}));var m=(0,i.default)(p,{tile:!0});t.ZP=m},58607:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=(r=n(32855))&&r.__esModule?r:{default:r},i=n(54576),u=["uiName"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=function(e){var t=e.uiName,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),r=(0,i.useChart)(),l=(0,a.useRef)();return(0,a.useLayoutEffect)((function(){return r.getUI(t).mount(l.current),function(){return r.getUI(t)&&r.getUI(t).unmount()}}),[]),a.default.createElement(o.default,c({"data-testid":"chartContent",ref:l,height:"100%",width:"100%"},n))};t.default=s},36864:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=(r=n(60677))&&r.__esModule?r:{default:r},o=n(15557);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({"data-testid":"chart",column:!0,position:"relative",border:{color:"borderSecondary",side:"all"},round:!0},e)})).withConfig({displayName:"container__Container",componentId:"sc-sbp2x3-0"})(["::selection{background:transparent;}::-moz-selection{background:transparent;}"]),c=l;t.default=c},1981:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Skeleton=t.D3pie=void 0;var r=p(n(67294)),a=f(n(58607)),o=n(54576),i=p(n(60677)),u=f(n(32855)),l=f(n(70486)),c=n(86954),s=["uiName"];function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=(0,i.default)(u.default).withConfig({displayName:"d3pie__StatsContainer",componentId:"sc-7pf92d-0"})(["font-size:",";"],(function(e){return e.fontSize})),b=(0,i.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),y=(0,i.default)(u.default).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"borderSecondary",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"d3pie__Skeleton",componentId:"sc-7pf92d-1"})(["animation:"," 1.6s ease-in infinite;"],b);t.Skeleton=y;var w=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,s),u=(0,o.useAttributeValue)("loaded"),l=(0,o.useOnResize)(n),f=l.width,d=l.height,p=f<d?f:d;return r.default.createElement(c.ChartWrapper,m({alignItems:"center",justifyContent:"center",column:!0,ref:t},i),u?r.default.createElement(h,{position:"relative",width:"100%",height:"100%",fontSize:p/15+"px"},r.default.createElement(a.default,{uiName:n})):r.default.createElement(y,null))}));t.D3pie=w;var O=(0,l.default)(w,{tile:!0});t.default=O},44608:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(28524)),o=n(90833),i=c(n(3701)),u=n(54576),l=c(n(4522));function c(e){return e&&e.__esModule?e:{default:e}}var s=function(){var e=(0,u.useAttributeValue)("chartType");return r.default.createElement(l.default,{icon:r.default.createElement(i.default,{svg:a.default,color:"key"}),title:"Chart type",color:"key","data-testid":"cartDetails-chartType"},r.default.createElement(o.TextSmall,{color:"textDescription"},e))};t.default=s},86985:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(67294)),a=s(n(79608)),o=n(90833),i=s(n(32855)),u=s(n(3701)),l=n(54576),c=s(n(4522));function s(e){return e&&e.__esModule?e:{default:e}}var f=function(e){var t=e.title,n=e.children;return r.default.createElement(i.default,{gap:2},r.default.createElement(o.TextSmall,{color:"textDescription"},t),r.default.createElement(i.default,{as:o.TextSmall,background:"elementBackground"},n))},d=function(){var e=(0,l.useAttributeValue)("contextScope");return r.default.createElement(c.default,{icon:r.default.createElement(u.default,{svg:a.default,color:"key"}),title:"Plugin and chart context",color:"key","data-testid":"cartDetails-context"},r.default.createElement(f,{title:"Context"},e.join(", ")))};t.default=d},39915:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(25312)),o=n(90833),i=c(n(3701)),u=n(54576),l=c(n(4522));function c(e){return e&&e.__esModule?e:{default:e}}var s=function(){var e=(0,u.useTitle)(),t=(0,u.useAttributeValue)("info"),n=(0,u.useAttributeValue)("sectionInfo"),c=(0,u.useChart)(),s=function(e){var t=e.target.hash,n=void 0===t?"":t;n.startsWith("#menu")&&(e.preventDefault(),c.sdk.trigger("goToLink",c,n.substr(1)))};return r.default.createElement(l.default,{icon:r.default.createElement(i.default,{svg:a.default,color:"key"}),title:e,color:"key","data-testid":"cartDetails-description"},r.default.createElement(o.TextSmall,{color:"textDescription",dangerouslySetInnerHTML:{__html:n},onClick:s}),r.default.createElement(o.TextSmall,{color:"textDescription",dangerouslySetInnerHTML:{__html:t},onClick:s}))};t.default=s},1496:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=f(n(67294)),a=f(n(60677)),o=f(n(32855)),i=n(54576),u=f(n(86985)),l=f(n(22009)),c=f(n(39915)),s=f(n(44608));function f(e){return e&&e.__esModule?e:{default:e}}var d=(0,a.default)(o.default).attrs({column:!0,padding:[4,3],gap:5,background:"mainBackground",overflow:{vertical:"auto"}}).withConfig({displayName:"details__Container",componentId:"sc-etnkd0-0"})(["inset:0;"]),p=function(){var e=(0,i.useAttributeValue)("nodeName");return r.default.createElement(d,{"data-testid":"cartDetails"},r.default.createElement(c.default,null),e&&r.default.createElement(l.default,null),r.default.createElement(u.default,null),r.default.createElement(s.default,null))};t.default=p},4522:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),a=u(n(32855)),o=n(90833),i=["icon","title","children"];function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){var t=e.icon,n=e.title,u=e.children,c=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i);return r.default.createElement(a.default,l({gap:4},c),t,r.default.createElement(a.default,{column:!0,gap:1,flex:"grow",basis:0},r.default.createElement(o.Text,{strong:!0,color:"key"},n),u&&r.default.createElement(a.default,{column:!0,gap:1},u)))};t.default=c},22009:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(94631)),o=n(90833),i=c(n(3701)),u=n(54576),l=c(n(4522));function c(e){return e&&e.__esModule?e:{default:e}}var s=function(){var e=(0,u.useAttributeValue)("nodeName");return r.default.createElement(l.default,{icon:r.default.createElement(i.default,{svg:a.default,color:"key"}),title:"Source",color:"key","data-testid":"cartDetails-source"},r.default.createElement(o.TextSmall,{color:"textDescription"},e))};t.default=s},28138:function(e,t,n){"use strict";t.ZP=void 0;var r=v(n(67294)),a=p(n(58607)),o=n(54576),i=v(n(60677)),u=p(n(32855)),l=n(90833),c=p(n(70486)),s=n(86954),f=p(n(3640)),d=["uiName"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=(0,i.default)(l.Text).withConfig({displayName:"easyPie__Label",componentId:"sc-1c7qdjs-0"})(["line-height:1;font-size:",";",";"],(function(e){return e.fontSize}),(function(e){return e.isFetching&&f.default}));var w=function(){var e=(0,o.useLatestConvertedValue)("selected");return r.default.createElement(y,{color:"main",fontSize:"2em",strong:!0},e)};var O=function(){var e=(0,o.useUnitSign)();return r.default.createElement(y,{color:"border",fontSize:"1em"},e)};var x=(0,i.default)(u.default).attrs({position:"absolute",column:!0,alignContent:"center",justifyContent:"center",gap:2}).withConfig({displayName:"easyPie__StatsContainer",componentId:"sc-1c7qdjs-1"})(["inset:0;text-align:center;font-size:",";"],(function(e){return e.fontSize}));var j=function(e){var t=e.size;return r.default.createElement(x,{fontSize:t/15+"px"},r.default.createElement(w,null),r.default.createElement(O,null))};var k=(0,i.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),E=(0,i.default)(u.default).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"borderSecondary",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"easyPie__Skeleton",componentId:"sc-1c7qdjs-2"})(["animation:"," 1.6s ease-in infinite;"],k);var P=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,d),u=(0,o.useAttributeValue)("loaded"),l=(0,o.useOnResize)(n),c=l.width,f=l.height,p=c<f?c:f;return r.default.createElement(s.ChartWrapper,{alignItems:"center",ref:t},u?r.default.createElement(a.default,g({uiName:n,position:"relative",justifyContent:"center",alignItems:"center"},i),r.default.createElement(j,{size:p})):r.default.createElement(E,{size:p}))}));var S=(0,c.default)(P,{tile:!0});t.ZP=S},96376:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(15557),i=n(54576),u=(r=n(37101))&&r.__esModule?r:{default:r},l=["labelProps"];function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=a.default.createElement(o.TextMicro,{padding:[0,0,2],color:"textLite"},"When aggregating multiple multiple source time-series metrics to one visible dimension on the chart, use the following aggregation function"),v={heading:"Metrics aggregation",body:"View or select the aggregation function applied when multiple source time-series metrics need to be grouped together to be presented as dimensions on this chart."},g=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,l),r=(0,i.useChart)(),o=(0,i.useAttributeValue)("aggregationMethod"),c=function(e){return(0,a.useMemo)((function(){return[{value:"avg",label:"Average",description:"For each point presented, calculate the average of the metrics contributing to it.",short:"AVG()","data-track":e.track("avg")},{value:"sum",label:"Sum",description:"For each point presented, calculate the sum of the metrics contributing to it.",short:"SUM()","data-track":e.track("sum")},{value:"min",label:"Minimum",description:"For each point presented, present the minimum of the metrics contributing to it.",short:"MIN()","data-track":e.track("min")},{value:"max",label:"Maximum",description:"For each point presented, present the maximum of the metrics contributing to it.",short:"MAX()","data-track":e.track("max")}]}),[e])}(r),f=(c.find((function(e){return e.value===o}))||c[0]).short;return a.default.createElement(u.default,s({value:o,onChange:r.updateAggregationMethodAttribute,items:c,"data-track":r.track("aggregate"),dropTitle:m},n,{labelProps:d({secondaryLabel:"the",label:f,title:v.heading,tooltipProps:v},t)}))},h=(0,a.memo)(g);t.default=h},11627:function(e,t,n){"use strict";t.__esModule=!0,t.uniqueColumn=t.minColumn=t.metricsColumn=t.maxColumn=t.labelColumn=t.instancesColumn=t.contributionColumn=t.avgColumn=t.anomalyRateColumn=t.alertsColumn=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(15557),o=c(n(12460)),i=c(n(9033)),u=n(54576),l=c(n(88811));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}t.labelColumn=function(e){return{id:"label",header:function(){return r.default.createElement(a.TextSmall,{strong:!0},"Name")},size:200,minSize:60,maxSize:800,cell:function(t){var n=t.getValue,i=t.row,c=function(e){return(0,r.useMemo)((function(){return{dimension:"dimensions",node:"nodes",instance:e.intl("instance",2),label:"labels",value:"values",default:"values"}}),[])}((0,u.useChart)());return r.default.createElement(a.Flex,{justifyContent:"between",alignItems:"center",padding:[0,0,0,3*i.depth]},r.default.createElement(a.Flex,{gap:1},r.default.createElement(o.default,{id:i.original.value}),r.default.createElement(a.TextSmall,{strong:!0,onClick:i.original.disabled?void 0:i.getToggleSelectedHandler(),cursor:i.original.disabled?"default":"pointer",whiteSpace:"normal",wordBreak:"break-word"},n())),i.getCanExpand()&&r.default.createElement(l.default,{label:c[i.original.value]||c[e]||c.default,onClick:function(e){i.getToggleExpandedHandler()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},iconRotate:i.getIsExpanded()?2:null,textProps:{fontSize:"10px",color:"textLite"}}))}}};t.uniqueColumn=function(){return{id:"unique",header:r.default.createElement(a.TextMicro,{strong:!0},"Unique"),size:45,minSize:30,maxSize:90,cell:function(e){var t=e.getValue;return r.default.createElement(a.TextSmall,{color:"textLite"},t())},sortingFn:"basic"}};t.minColumn=function(){return{id:"min",header:r.default.createElement(a.TextMicro,{strong:!0},"Min ",r.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,n=(0,u.useConverted)(t());return r.default.createElement(a.TextSmall,{color:"textLite"},n)},sortingFn:"basic"}};t.avgColumn=function(){return{id:"avg",header:r.default.createElement(a.TextMicro,{strong:!0},"Avg ",r.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,n=(0,u.useConverted)(t());return r.default.createElement(a.TextSmall,{color:"textLite"},n)},sortingFn:"basic"}};t.maxColumn=function(){return{id:"max",header:r.default.createElement(a.TextMicro,{strong:!0},"Max ",r.default.createElement(i.default,{visible:!0})),size:60,minSize:30,maxSize:90,cell:function(e){var t=e.getValue,n=(0,u.useConverted)(t());return r.default.createElement(a.TextSmall,{color:"textLite"},n)},sortingFn:"basic"}};t.instancesColumn=function(){return{id:"instances",header:r.default.createElement(a.TextMicro,{strong:!0},"Instances"),size:60,minSize:30,maxSize:90,cell:function(e){var t,n=e.getValue,o=e.row;if(null==(t=o.original.info)||!t.is)return r.default.createElement(a.TextSmall,{color:"textLite"},n());var i=o.original.info.is,u=i.qr,l=void 0===u?0:u,c=i.sl,s=void 0===c?0:c,f=i.ex,d=void 0===f?0:f;return r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"textLite"},r.default.createElement(a.TextSmall,{color:"primary"},l)," out of ",s+d),r.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:l/(s+d)*100+"%",containerWidth:"100%",border:"none"}))},sortingFn:"basic"}};t.metricsColumn=function(){return{id:"metrics",header:r.default.createElement(a.TextMicro,{strong:!0},"Metrics"),size:80,minSize:60,cell:function(e){var t,n=e.row,o=e.getValue;if(null==(t=n.original.info)||!t.ds)return r.default.createElement(a.TextSmall,{color:"textLite"},o());var i=n.original.info.ds,u=i.qr,l=void 0===u?0:u,c=i.sl,s=void 0===c?0:c,f=i.ex,d=void 0===f?0:f;return r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"textLite"},r.default.createElement(a.TextSmall,{color:"primary"},l)," out of ",s+d),r.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:l/(s+d)*100+"%",containerWidth:"100%",border:"none"}))},sortingFn:"basic"}};t.contributionColumn=function(){return{id:"contribution",header:r.default.createElement(a.TextMicro,{strong:!0},"Vol %"),size:60,minSize:30,maxSize:90,cell:function(e){var t,n=e.row,o=e.getValue;return null!=(t=n.original.info)&&t.sts?r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"primary"},Math.round(100*(o()+Number.EPSILON))/100,"%"),r.default.createElement(a.ProgressBar,{background:"progressBg",color:["green","deyork"],height:2,width:o()+"%",containerWidth:"100%",border:"none"})):r.default.createElement(a.TextSmall,{color:"textLite"},o())},sortingFn:"basic"}};t.anomalyRateColumn=function(){return{id:"anomalyRate",header:r.default.createElement(a.TextMicro,{strong:!0},"AR %"),size:60,minSize:30,maxSize:90,cell:function(e){var t,n=e.row,o=e.getValue;return null!=(t=n.original.info)&&t.sts?r.default.createElement(r.default.Fragment,null,r.default.createElement(a.TextSmall,{color:"textLite"},Math.round(100*(o()+Number.EPSILON))/100,"%"),r.default.createElement(a.ProgressBar,{background:"progressBg",color:"anomalyText",height:2,width:o()+"%",containerWidth:"100%",border:"none"})):r.default.createElement(a.TextSmall,{color:"textLite"},o())},sortingFn:"basic"}};t.alertsColumn=function(){return{id:"alerts",header:r.default.createElement(a.TextMicro,{strong:!0},"Alerts"),size:70,minSize:60,cell:function(e){var t,n=e.row,o=e.getValue;if(null==(t=n.original.info)||!t.al)return r.default.createElement(a.TextSmall,{color:"textLite"},o());var i=n.original.info.al,u=i.cl,l=void 0===u?0:u,c=i.cr,s=void 0===c?0:c,f=i.wr,d=void 0===f?0:f,p={text:s,flavour:s?"error":"disabledError"},m={text:d,flavour:d?"warning":"disabledWarning"},v={text:l,flavour:l?"clear":"disabledClear"};return r.default.createElement("div",null,r.default.createElement(a.Flex,{flex:!1},r.default.createElement(a.MasterCard,{pillLeft:p,pillRight:m,pillEnd:v})))},sortingFn:"basic"}}},92247:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(37101))&&r.__esModule?r:{default:r},u=["labelProps"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p={heading:"Context",body:"View or select the context applied on this chart."},m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("contextScope"),s=(0,o.useAttributeValue)("contextItems");if(!s.length)return null;var d=(s.find((function(e){return e.value===l[0]}))||s[0]).label;return a.default.createElement(i.default,c({value:l,onChange:r.updateContextScopeAttribute,items:s,"data-track":r.track("contextScope")},n,{labelProps:f({secondaryLabel:"On",label:d,title:p.heading,tooltipProps:p},t)}))},v=(0,a.memo)(m);t.default=v},28646:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(23410))&&r.__esModule?r:{default:r},u=n(33370),l=n(11627),c=["labelProps"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d={heading:"Dimensions",body:"View or filter the original dimensions contributing time-series metrics to this chart. This menu also presents the contribution of each original dimension on the chart, and a break down of the anomaly rate of the data per dimension."},p=[(0,l.labelColumn)(),(0,l.metricsColumn)(),(0,l.contributionColumn)(),(0,l.anomalyRateColumn)(),(0,l.minColumn)(),(0,l.avgColumn)(),(0,l.maxColumn)()],m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("selectedDimensions"),s=(0,o.useAttributeValue)("dimensions"),m=(0,o.useAttributeValue)("dimensionsTotals"),v=(0,a.useCallback)((function(){return Object.keys(s).map((function(e){var t=l.includes(e);return(0,u.getStats)(r,s[e],{key:"dimensions",props:{selected:t}})}))}),[s,l]),g=(0,o.useAttribute)("nodesSortBy"),h=g[0],b=g[1];return a.default.createElement(i.default,f({title:"Dimensions",resourceName:"dimension","data-track":r.track("dimensions"),labelProps:t,onChange:r.updateDimensionsAttribute,getOptions:v,tooltipProps:d,value:l,columns:p,sortBy:h,onSortByChange:b,totals:m},n))},v=(0,a.memo)(m);t.default=v},37101:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.ItemContainer=t.Item=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=n(15557),i=d(n(13563)),u=d(n(25312)),l=d(n(3701)),c=d(n(81743)),s=d(n(88811)),f=["labelProps"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var h=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({as:"li",role:"option",padding:[1,2],gap:1,justifyContent:"between"},e)})).withConfig({displayName:"dropdownSingleSelect__ItemContainer",componentId:"sc-u6ous4-0"})(["cursor:",";opacity:",";align-items:",";"," "," ",""],(function(e){return e.disabled?"default":"pointer"}),(function(e){var t=e.disabled,n=e.stale;return e.selected||!n&&!t?1:.7}),(function(e){return e.alignItems||"center"}),(function(e){var t=e.selected,n=e.theme;return t&&"\n background-color: "+function(e){var t=e.theme;return("Dark"===t.name?(0,o.getRgbColor)(["green","netdata"],.3):(0,o.getRgbColor)(["green","frostee"]))({theme:t})}({theme:n})+";\n "}),(function(e){var t=e.selected,n=e.theme;return!t&&"\n &:hover {\n background-color: "+(0,o.getColor)("borderSecondary")({theme:n})+";\n }\n "}),(function(e){var t=e.justDesc,n=e.theme;return t&&"\n pointer-events: none;\n border-top: 1px solid "+(0,o.getColor)("borderSecondary")({theme:n})+";\n "}));t.ItemContainer=h;var b=function(e){var t=e.value,n=e.item,a=e.onItemClick,s=e.itemProps,f=n.value,d=n.label,p=n.description,v=n.justDesc,g=void 0!==v&&v,b=t===f;return r.default.createElement(h,m({},s,{disabled:b,selected:b,onClick:function(){return a(f)},justDesc:g}),r.default.createElement(o.Flex,{column:g,padding:[0,1],alignItems:"start",width:"100%",justifyContent:"between"},!!d&&r.default.createElement(o.Text,null,d,b&&r.default.createElement(l.default,{margin:[-.5,2,-.5,0],width:"14px",height:"14px",color:"primary",svg:i.default})),!!p&&(g?r.default.createElement(o.TextMicro,{color:"textLite"},p):r.default.createElement(c.default,{content:p,zIndex:9999999},r.default.createElement("div",null,r.default.createElement(l.default,{width:"14px",height:"14px",color:"textLite",svg:u.default}))))))};t.Item=b;var y=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,f);return r.default.createElement(o.Menu,m({},n,{Item:b,dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":!0,width:"460px"},dropdownProps:{padding:[0,0,2,0],height:{max:"80vh"}}},n),r.default.createElement(s.default,m({},t,{"data-value":""+(n.value||"No selection")})))},w=(0,r.memo)(y);t.default=w},23410:function(e,t,n){"use strict";t.__esModule=!0,t.meta=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=f(n(60677)),o=n(15557),i=f(n(91211)),u=f(n(88811)),l=f(n(59965)),c=["getOptions","onItemClick","close","columns","sortBy","onSortByChange","expanded","onExpandedChange","tableMeta","enableSubRowSelection","value","newValues","totals","emptyMessage","title","filterSelectedCount"],s=["label","labelProps","onChange","getOptions","secondaryLabel","tooltipProps","value","columns","sortBy","onSortByChange","expanded","onExpandedChange","tableMeta","enableSubRowSelection","totals","emptyMessage","resourceName","title","filterSelectedCount"];function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=(0,a.default)(o.Flex).withConfig({displayName:"dropdownTable__Container",componentId:"sc-194yxs8-0"})(["box-shadow:0 18px 28px ",";list-style-type:none;border-radius:2px;border:1px solid ",";*{box-sizing:border-box;}"],(0,o.getColor)("dropdownShadow"),(0,o.getColor)("borderSecondary")),y=function(e,t,n){return{cellStyles:g(g(g({height:"40px"},(null==e||null==e.getIsExpanded?void 0:e.getIsExpanded())&&{background:"columnHighlight",backgroundOpacity:.7}),e.depth>0&&{backgroundOpacity:.4}),e.depth>0&&0===n&&{border:{side:"left",size:"4px"}}),headStyles:{height:"32px"},styles:{verticalAlign:"middle"},bulkActionsStyles:{padding:[2,0]},searchContainerStyles:{width:"100%",padding:[0,2,0,2]},searchStyles:{inputContainerStyles:{height:"32px",border:{side:"all",size:"1px",color:"inputBg"},background:"inputBg",round:!0,padding:[1,2],_hover:{border:{side:"all",size:"1px",color:"borderSecondary"}}}}}};t.meta=y;var w=function(){},O=[{id:"contribution",desc:!0}],x={},j=function(){return!0},k=function(e){var t=e.getOptions,n=e.onItemClick,a=(e.close,e.columns),u=e.sortBy,s=e.onSortByChange,f=e.expanded,d=e.onExpandedChange,v=e.tableMeta,h=void 0===v?y:v,O=e.enableSubRowSelection,x=e.value,k=e.newValues,P=e.totals,S=e.emptyMessage,C=e.title,_=e.filterSelectedCount,M=void 0===_?j:_,D=m(e,c),A=(0,r.useMemo)(t,[]),T=(0,r.useState)((function(){return E(A,{})})),z=T[0],N=T[1];(0,r.useEffect)((function(){var e=E(A,{});N((function(t){return(0,i.default)(t,e)?t:e}))}),[]);var R=(0,r.useMemo)((function(){return!!k&&(0,i.default)(x,k)}),[k]),L=(0,r.useMemo)((function(){return null!=k&&k.length?M(k).length:0}),[k]);return r.default.createElement(b,p({role:"listbox",background:"dropdown",padding:[0],margin:[1,0],column:!0,tabindex:"-1",flex:!0},D),r.default.createElement(o.NetdataTable,{title:C,background:"dropdownTable",enableResize:!0,enableSorting:!0,enableSelection:!0,dataColumns:a,data:A,onRowSelected:n,onGlobalSearchChange:w,meta:h,sortBy:u,rowSelection:z,onSortingChange:s,expanded:f,onExpandedChange:d,enableSubRowSelection:O,width:{base:250,max:"80vw"}}),r.default.createElement(o.Flex,{padding:[2],justifyContent:"between",alignItems:"center",border:{side:"top",color:"borderSecondary"}},r.default.createElement(o.Flex,{gap:1,alignItems:"center"},r.default.createElement(o.TextSmall,{color:"textLite"},"Selected ",r.default.createElement(o.TextSmall,{strong:!0},L)," out of"," ",r.default.createElement(o.TextSmall,{strong:!0},((null==P?void 0:P.sl)||0)+((null==P?void 0:P.ex)||0)||A.length)),r.default.createElement(o.Button,{padding:[0],flavour:"borderless",width:"auto",height:"auto",cursor:"pointer",color:"primary",onClick:function(){N({}),n([])},disabled:!(null!=k&&k.length)&&!x.length,label:"clear",small:!0}),r.default.createElement(o.Button,{padding:[0],flavour:"borderless",width:"auto",height:"auto",cursor:"pointer",color:"primary",onClick:function(){N(g({},z)),n(x)},disabled:!R,label:"reset",small:!0}),!(null!=k&&k.length)&&!!S&&r.default.createElement(o.TextSmall,{color:"warningText"},S)),P&&r.default.createElement(l.default,p({selected:x},P))))},E=function e(t,n,r){return t.reduce((function(t,n,a){return"undefined"!==typeof r&&(a=r+"."+a),n.selected&&(t[a]=!0),n.children&&e(n.children,t,a),t}),n)},P=function(e){var t=e.label,n=e.labelProps,a=e.onChange,i=e.getOptions,c=e.secondaryLabel,f=e.tooltipProps,d=e.value,v=e.columns,g=e.sortBy,h=void 0===g?O:g,b=e.onSortByChange,y=e.expanded,w=void 0===y?x:y,j=e.onExpandedChange,E=e.tableMeta,P=e.enableSubRowSelection,S=e.totals,C=e.emptyMessage,_=e.resourceName,M=e.title,D=e.filterSelectedCount,A=m(e,s),T=(0,r.useState)(!1),z=T[0],N=T[1],R=(0,r.useState)(),L=R[0],I=R[1],F=(0,r.useRef)();return(0,r.useEffect)((function(){!z&&L&&(F.current=null,a(L))}),[z]),(0,r.useEffect)((function(){return function(){return F.current&&a(F.current)}}),[]),r.default.createElement(o.Menu,p({onChange:function(e){F.current=e,I(e)},hasSearch:!1,closeOnClick:!1,Dropdown:k,dropProps:{align:{top:"bottom",left:"left"},"data-toolbox":!0,keepHorizontal:!0,stretch:null},dropdownProps:{height:{max:"60vh"},width:"100%",overflow:"auto",columns:v,getOptions:i,sortBy:h,onSortByChange:b,expanded:w,onExpandedChange:j,tableMeta:E,enableSubRowSelection:P,value:d,totals:S,newValues:L,emptyMessage:C,title:M,filterSelectedCount:D},value:d,onOpen:function(){return N(!0)},onClose:function(){return N(!1)}},A),r.default.createElement(u.default,p({"data-value":d.join("|")||_+" all-selected",secondaryLabel:c,label:t||r.default.createElement(l.default,p({selected:d},S,{resourceName:_,teaser:!0})),title:f.heading,tooltipProps:f},n)))};t.default=P},40107:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=y(n(67294)),a=n(93501),o=y(n(96376)),i=y(n(28646)),u=y(n(45230)),l=y(n(53926)),c=y(n(92247)),s=y(n(77051)),f=y(n(5628)),d=y(n(25789)),p=y(n(33126)),m=y(n(13249)),v=y(n(18567)),g=y(n(11182)),h=y(n(69790)),b=y(n(3701));function y(e){return e&&e.__esModule?e:{default:e}}var w={secondaryLabel:"The"},O={},x={nodes:{icon:r.default.createElement(b.default,{svg:m.default,color:"textLite",size:"16px"}),padding:[0]},instances:{icon:r.default.createElement(b.default,{svg:v.default,color:"textLite",size:"16px"}),padding:[0]},dimensions:{icon:r.default.createElement(b.default,{svg:g.default,color:"textLite",size:"16px"}),padding:[0]},labels:{icon:r.default.createElement(b.default,{svg:h.default,color:"textLite",size:"16px"}),padding:[0]}},j=function(e){var t=e.plain,n=(0,a.useIsHeatmap)();return t?r.default.createElement(r.default.Fragment,null,r.default.createElement(l.default,{labelProps:x.nodes}),r.default.createElement(u.default,{labelProps:x.instances}),r.default.createElement(i.default,{labelProps:x.dimensions}),r.default.createElement(d.default,{labelProps:x.labels})):r.default.createElement(r.default.Fragment,null,!n&&r.default.createElement(c.default,null),!n&&r.default.createElement(s.default,{labelProps:{secondaryLabel:"Group by"}}),r.default.createElement(o.default,{labelProps:n?w:O}),r.default.createElement(l.default,null),r.default.createElement(u.default,null),r.default.createElement(i.default,null),r.default.createElement(d.default,null),r.default.createElement(f.default,null),r.default.createElement(p.default,null))};t.default=j},44841:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=(r=n(60677))&&r.__esModule?r:{default:r},o=n(15557);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({alignItems:"center",border:{side:"bottom",color:"borderSecondary"},overflow:"auto"},e)})).withConfig({displayName:"filtersContainer__FiltersContainer",componentId:"sc-1f00tzv-0"})(["&::-webkit-scrollbar{height:0;}"]),c=l;t.default=c},77051:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=n(90833),u=(r=n(23410))&&r.__esModule?r:{default:r},l=n(33370),c=n(11627),s=["labelProps"];function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}function p(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var v={heading:"Group by",body:"Slice and dice the source time-series metrics in multiple ways, to get different viewing angles on them. Multiple groupings can be selected at the same time to fine tune the segmentation."},g=[(0,c.labelColumn)("label"),(0,c.uniqueColumn)(),(0,c.metricsColumn)(),(0,c.contributionColumn)(),(0,c.anomalyRateColumn)(),(0,c.minColumn)(),(0,c.avgColumn)(),(0,c.maxColumn)()],h=function(e){var t,n=e.labelProps,r=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,s),c=(0,o.useChart)(),f=(0,o.useAttributeValue)("groupBy"),m=(0,o.useAttributeValue)("groupByLabel"),h=function(e){return(0,a.useMemo)((function(){return[{nm:"node",id:"node",key:"nodes"},{nm:e.intl("instance")+" "+("instance"===e.intl("instance")?"":"(instance)"),id:"instance",key:"instances"},{nm:"dimension",id:"dimension",key:"dimensions"}]}),[])}(c),b=(0,a.useCallback)((function(){var e=c.getAttributes(),t=h.map((function(t){var n=f.includes(t.id);return(0,l.getStats)(c,t,{key:"group-by",childrenKey:"label",props:{contribution:"-",anomalyRate:"-",alerts:"-",min:"-",avg:"-",max:"-",selected:n},childProps:{unique:"-",disabled:"hidden"},children:Object.values(e[t.key])})}));return[].concat(p(t),p(Object.keys(e.labels).map((function(t){return(0,l.getStats)(c,e.labels[t],{key:"group-by",childrenKey:"label",props:{getLabel:function(e){return"label: "+(e.nm||t||e.id)},isLabel:!0,selected:m.includes(t)},childProps:{unique:"-",disabled:"hidden"},children:e.labels[t].vl})}))))}),[f,m]);t=(0,a.useMemo)((function(){var e=f.filter((function(e){return"node"!==e})),t=e.map((function(e){return"label"===e?m.length>1?m.length+" labels":m[0]:e}));return e.length<f.length&&t.push("node"),t.join(", ")}),[f,m]);var y=(0,a.useMemo)((function(){return[].concat(p(f),p(m))}),[f,m]),w=(0,o.useAttribute)("groupBySortBy"),O=w[0],x=w[1],j=(0,o.useAttribute)("groupByExpanded"),k=j[0],E=j[1];return a.default.createElement(u.default,d({title:a.default.createElement(i.TextBig,{strong:!0,whiteSpace:"nowrap"},"Group by"),label:t,"data-track":c.track("group-by"),labelProps:n,onChange:c.updateGroupByAttribute,getOptions:b,secondaryLabel:"Group by",tooltipProps:v,value:y,columns:g,enableSubRowSelection:!1,sortBy:O,onSortByChange:x,expanded:k,onExpandedChange:E,emptyMessage:"Deselecting everything will use GROUP BY DIMENSION by default"},r))},b=(0,a.memo)(h);t.default=b},18947:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(44841)),o=l(n(40107)),i=l(n(34262)),u=["plain"];function l(e){return e&&e.__esModule?e:{default:e}}var c=(0,i.default)((function(e){var t=e.plain,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u);return r.default.createElement(a.default,n,r.default.createElement(o.default,{plain:t}))}));t.default=c},45230:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=n(60773),u=(r=n(23410))&&r.__esModule?r:{default:r},l=n(33370),c=n(11627),s=["labelProps"];function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}var p=[(0,c.labelColumn)(),(0,c.metricsColumn)(),(0,c.contributionColumn)(),(0,c.anomalyRateColumn)(),(0,c.alertsColumn)(),(0,c.minColumn)(),(0,c.avgColumn)(),(0,c.maxColumn)()],m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,s),r=(0,o.useChart)(),c=(0,o.useAttributeValue)("selectedInstances"),f=(0,o.useAttributeValue)("instances"),m=(0,o.useAttributeValue)("instancesTotals"),v=(0,a.useCallback)((function(){return Object.keys(f).map((function(e){return(0,l.getStats)(r,f[e],{id:e,key:"instances",props:{selected:c.includes(e)}})}))}),[f,c]),g=(0,o.useAttribute)("instancesSortBy"),h=g[0],b=g[1],y=function(e){return(0,a.useMemo)((function(){return{heading:(0,i.uppercase)(e.intl("instance",2)),body:"View or filter the "+e.intl("instance",2)+" contributing time-series metrics to this chart. This menu also provides the contribution of each "+e.intl("instance")+" to the volume of the chart, and a break down of the anomaly rate of the queried data per "+e.intl("instance")+"."}}),[])}(r);return a.default.createElement(u.default,d({title:(0,i.uppercase)(r.intl("instance",2)),resourceName:"instance","data-track":r.track("instances"),labelProps:t,onChange:r.updateInstancesAttribute,getOptions:v,tooltipProps:y,value:c,columns:p,sortBy:h,onSortByChange:b,totals:m},n))},v=(0,a.memo)(m);t.default=v},88811:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=p(n(60677)),o=p(n(32855)),i=n(90833),u=p(n(3728)),l=p(n(3701)),c=n(81743),s=n(90509),f=["width","open"],d=["icon","secondaryLabel","tertiaryLabel","label","chevron","iconRotate","textProps"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v.apply(this,arguments)}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var w=(0,a.default)(o.default).attrs((function(e){var t=e.width,n=void 0===t?{max:100}:t,r=e.open,a=y(e,f);return h(h({cursor:"pointer",role:"button",padding:[1],round:!0,gap:1,width:n},r&&{background:"borderSecondary"}),a)})).withConfig({displayName:"label__Container",componentId:"sc-1lmmfid-0"})(["&:hover{background:",";}"],(0,s.getColor)("borderSecondary"));t.Container=w;var O=(0,a.default)(i.TextSmall).attrs({whiteSpace:"nowrap",truncate:!0}).withConfig({displayName:"label__StyledLabel",componentId:"sc-1lmmfid-1"})(["flex:1;"]),x=(0,r.forwardRef)((function(e,t){var n=e.icon,a=e.secondaryLabel,o=e.tertiaryLabel,c=e.label,s=e.chevron,f=void 0===s||s,p=e.iconRotate,m=e.textProps,g=y(e,d);return n?r.default.createElement(w,v({ref:t},g),n):r.default.createElement(w,v({ref:t},g),a&&r.default.createElement(i.TextSmall,{color:"textLite",whiteSpace:"nowrap",truncate:!0},a),r.default.createElement(O,m,c),o&&r.default.createElement(i.TextSmall,{color:"textLite",whiteSpace:"nowrap",truncate:!0},o),f&&r.default.createElement(l.default,{svg:u.default,size:"16px",color:"selected",rotate:p}))})),j=(0,c.withTooltip)(x,{Content:function(e){var t=e.header,n=e.body;return r.default.createElement(o.default,v({column:!0,gap:1},c.tooltipStyleProps),r.default.createElement(i.TextSmall,{color:"bright",strong:!0},t),n&&r.default.createElement(i.TextSmall,{color:"bright"},n))},align:"top"});t.default=j},25789:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(23410))&&r.__esModule?r:{default:r},u=n(33370),l=n(11627),c=["labelProps"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d={heading:"Labels",body:"View or filter the contributing time-series labels to this chart. This menu also presents the contribution of each label on the chart, and a break down of the anomaly rate of the data per label."},p=[(0,l.labelColumn)("value"),(0,l.uniqueColumn)(),(0,l.metricsColumn)(),(0,l.contributionColumn)(),(0,l.anomalyRateColumn)(),(0,l.minColumn)(),(0,l.avgColumn)(),(0,l.maxColumn)()],m=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("selectedLabels"),s=(0,o.useAttributeValue)("labels"),m=(0,o.useAttributeValue)("labelsTotals"),v=(0,a.useCallback)((function(){return Object.keys(s).map((function(e){return(0,u.getStats)(r,s[e],{key:"labels",childrenKey:"values",props:{selected:l.includes(e)},childProps:{unique:"-",parentId:e,getIsSelected:function(t){return l.includes(e+":"+t.id)},getValue:function(t){return e+":"+t.id}},children:s[e].vl})}))}),[s,l]),g=(0,o.useAttribute)("labelsSortBy"),h=g[0],b=g[1],y=(0,o.useAttribute)("labelsExpanded"),w=y[0],O=y[1],x=(0,a.useCallback)((function(e){return e.filter((function(e){return!!e.parentId}))}),[]);return a.default.createElement(i.default,f({title:"Labels",resourceName:"label","data-track":r.track("labels"),labelProps:t,onChange:r.updateLabelsAttribute,getOptions:v,tooltipProps:d,value:l,columns:p,enableSubRowSelection:!0,sortBy:h,onSortByChange:b,expanded:w,onExpandedChange:O,totals:m,filterSelectedCount:x},n))},v=(0,a.memo)(m);t.default=v},53926:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(23410))&&r.__esModule?r:{default:r},u=n(33370),l=n(11627),c=["labelProps"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function d(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var m={heading:"Nodes",body:"View or filter the nodes contributing time-series metrics to this chart. This menu also provides the contribution of each node to the volume of the chart, and a break down of the anomaly rate of the queried data per node."},v=[(0,l.labelColumn)("instance"),(0,l.instancesColumn)(),(0,l.metricsColumn)(),(0,l.contributionColumn)(),(0,l.anomalyRateColumn)(),(0,l.alertsColumn)(),(0,l.minColumn)(),(0,l.avgColumn)(),(0,l.maxColumn)()],g=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),r=(0,o.useChart)(),l=(0,o.useAttributeValue)("selectedNodes"),s=(0,o.useAttributeValue)("nodes"),p=(0,o.useAttributeValue)("instances"),g=(0,o.useAttributeValue)("nodesTotals"),h=(0,o.useAttributeValue)("selectedInstances"),b=(0,a.useCallback)((function(){return Object.keys(s).map((function(e){var t=l.includes(e);return(0,u.getStats)(r,s[e],{id:e,key:"nodes",childrenKey:"instances",props:{selected:t},childProps:{isInstance:!0,getValue:function(t){return t.id+"@"+e},getIsSelected:function(t){return h.includes(t.id+"@"+e)}},children:Object.keys(p).reduce((function(t,n){return p[n].ni===s[e].ni?[].concat(d(t),[p[n]]):t}),[])})}))}),[s,l,h]),y=(0,o.useAttribute)("nodesSortBy"),w=y[0],O=y[1],x=(0,o.useAttribute)("nodesExpanded"),j=x[0],k=x[1],E=(0,a.useCallback)((function(e){return e.filter((function(e){return!e.isInstance}))}),[]);return a.default.createElement(i.default,f({title:"Nodes",resourceName:"node","data-track":r.track("nodes"),labelProps:t,onChange:r.updateNodesAttribute,getOptions:b,tooltipProps:m,value:l,columns:v,sortBy:w,onSortByChange:O,expanded:j,onExpandedChange:k,enableSubRowSelection:!1,totals:g,filterSelectedCount:E},n))},h=(0,a.memo)(g);t.default=h},33126:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),a=u(n(60677)),o=n(15557),i=n(41145);function u(e){return e&&e.__esModule?e:{default:e}}var l=(0,a.default)(o.Button).attrs({flavour:"borderless",label:"Reset",width:"initial",height:"initial",padding:[0,1],title:"Reset Filters",small:!0,neutral:!0}).withConfig({displayName:"reset__StyledButton",componentId:"sc-kilpc3-0"})(["&&{height:initial;font-weight:normal;}"]),c=function(e){var t,n=e.attribute,a=void 0===n?"pristine":n,o=e.resetFunction,u=(0,i.useChart)(),c=(0,i.useAttributeValue)(a),s=0===(null==(t=Object.keys(c))?void 0:t.length);return r.default.createElement(l,{disabled:s,onClick:null!=o?o:u.resetPristine,"data-track":u.track("reset")})};t.default=c},63209:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(67294)),a=u(n(32855)),o=u(n(44841)),i=u(n(88811));function u(e){return e&&e.__esModule?e:{default:e}}var l=function(){return r.default.createElement(o.default,null,r.default.createElement(a.default,{gap:1},r.default.createElement(i.default,{width:"90px",background:"borderSecondary",secondaryLabel:"",label:""}),r.default.createElement(i.default,{width:"120px",background:"borderSecondary"}),r.default.createElement(i.default,{width:"100px",background:"borderSecondary"})))};t.default=l},5628:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(15557),i=n(54576),u=(r=n(37101))&&r.__esModule?r:{default:r},l=["labelProps"];function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m={percentile:"95","trimmed-mean":"5","trimmed-median":"5"},v={heading:"Aliases aggregation over time",body:"The percentile or percentage of the data you want to focus for the percentile or trimmed functions selected."},g={heading:"Time aggregation",body:"View or select the aggregation function applied on each time-series metric when the number of points in the database are more than the points your screen resolution provides to present this chart. This function is helpful when viewing long time-frames, like days, weeks or months, to quickly spot anomalies, spikes or dives."},h=a.default.createElement(o.TextMicro,{padding:[0,0,2],color:"textLite"},"When the screen resolution provides less points than the points available of the source time-series metrics, use the following aggregation function over time on each metric to reduce the number of points"),b=function(e){var t=e.labelProps,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,l),r=(0,i.useChart)(),o=(0,i.useAttributeValue)("groupingMethod").match(/[\d.]+|\D+/g)||[],c=o[0],f=void 0===c?"":c,p=o[1],b=void 0===p?"":p,y=(0,i.useAttributeValue)("viewUpdateEvery"),w=(0,i.useAttributeValue)("perTier"),O=function(e,t){void 0===t&&(t=[]);var n=t,r=n[0],o=n.slice(1);return(0,a.useMemo)((function(){return[{value:"min",label:"Minimum",description:"Reveal short dives that would otherwise be smoothed out.",short:"MIN()","data-track":e.track("time-aggregation-min")},{value:"max",label:"Maximum",description:"Reveal short spikes that would otherwise be smoothed out.",short:"MAX()","data-track":e.track("time-aggregation-max")},{value:"average",label:"Mean or Average",description:"Calculate the longer term average, as if data were collected at screen resolution.",short:"AVG()","data-track":e.track("time-aggregation-average")},{value:"sum",label:"Sum",description:"Provide the sum of the points that are aggregated over time. Use it when a sense of volume is needed over the aggregation period. It may not be sensible to use this function on all data types.",short:"SUM()","data-track":e.track("time-aggregation-sum")},Array.isArray(o)&&"undefined"!==typeof(null==r?void 0:r.points)&&{justDesc:!0,description:"The functions below lose accuracy when applied on tiered data, compared to high resolution data. Your current query is "+100*r.points/t.reduce((function(e,t){return e+t.points}),0)+"% high resolution and "+100*o.reduce((function(e,t){return e+t.points}),0)/t.reduce((function(e,t){return e+t.points}),0).toFixed(2)+"% tiered data of lower resolution."},{value:"percentile",label:"Percentile",description:"Provide the maximum value of a percentage of the aggregated points, having the smaller values. The default is p95, which provides the maximum value of the aggregated points after ignoring the top 5% of them.",short:"PERCENTILE()","data-track":e.track("time-aggregation-percentile95")},{value:"trimmed-mean",label:"Trimmed Average or Trimmed Mean",description:"Like average, but first remove a percentage of the extreme high and low values.",short:"TRIMMEAN()","data-track":e.track("time-aggregation-trimmed-mean5")},{value:"median",label:"Median",description:"The middle value of all points that would otherwise be smoothed out. This function works like average, but short extreme dives and spikes influence it significantly less than average.",short:"MEDIAN()","data-track":e.track("time-aggregation-median")},{value:"trimmed-median",label:"Trimmed Median",description:"Like median, but first remove a percentage of the extreme high and low values.",short:"TRIMMEDIAN()","data-track":e.track("time-aggregation-trimmed-median5")},{value:"stddev",label:"Standard deviation",description:"Reveal how far each point lies from the average. A high standard deviation means that values are generally far from the average, while a low standard deviation indicates that values are clustered close to the mean. The result is again in the original units of the data source metric.",short:"STDDEV()","data-track":e.track("time-aggregation-stddev")},{value:"cv",label:"Coefficient of variation or Relative standard deviation",description:"The ratio of the standard deviation to the average. Its use is the same as standard deviation, but expressed as a percentage related to the average. The units change to %.",short:"CV()","data-track":e.track("time-aggregation-cv")},{value:"incremental-sum",label:"Incremental Sum or Delta",description:"Provide the difference between the newest and the oldest values of the aggregated points. Each point will be positive if the trend grows and negative if the trend shrinks.",short:"DELTA()","data-track":e.track("time-aggregation-incremental-sum")},{value:"ses",label:"Single exponential smoothing",description:"Use the aggregated points to produce a forecast of the next value, and reveal the forecasted value. Use it when there are indications that the trend is more predictable using the more recent points than the older ones.",short:"SES()","data-track":e.track("time-aggregation-ses")},{value:"des",label:"Double exponential smoothing",description:"Like single exponential smoothing, but better suited when the aggregated points may have a strong trend.",short:"DES()","data-track":e.track("time-aggregation-des")}].filter(Boolean)}),[e,null==r?void 0:r.points])}(r,w),x=function(e){var t=e.chart,n=e.method;return(0,a.useMemo)((function(){return"percentile"===n?[{value:"25",label:"25th",short:"25th","data-track":t.track("time-aggregation-percentile25")},{value:"50",label:"50th",short:"50th","data-track":t.track("time-aggregation-percentile50")},{value:"75",label:"75th",short:"75th","data-track":t.track("time-aggregation-percentile75")},{value:"80",label:"80th",short:"80th","data-track":t.track("time-aggregation-percentile80")},{value:"90",label:"90th",short:"90th","data-track":t.track("time-aggregation-percentile90")},{value:"95",label:"95th",short:"95th","data-track":t.track("time-aggregation-percentile95")},{value:"97",label:"97th",short:"97th","data-track":t.track("time-aggregation-percentile97")},{value:"98",label:"98th",short:"98th","data-track":t.track("time-aggregation-percentile98")},{value:"99",label:"99th",short:"99th","data-track":t.track("time-aggregation-percentile99")}]:n.includes("trimmed")?[{value:"1",label:"1%",short:"1%","data-track":t.track("time-aggregation-"+n+"1")},{value:"2",label:"2%",short:"2%","data-track":t.track("time-aggregation-"+n+"2")},{value:"3",label:"3%",short:"3%","data-track":t.track("time-aggregation-"+n+"3")},{value:"5",label:"5%",short:"5%","data-track":t.track("time-aggregation-"+n+"5")},{value:"10",label:"10%",short:"10%","data-track":t.track("time-aggregation-"+n+"10")},{value:"15",label:"15%",short:"15%","data-track":t.track("time-aggregation-"+n+"15")},{value:"20",label:"20%",short:"20%","data-track":t.track("time-aggregation-"+n+"20")},{value:"25",label:"25%",short:"25%","data-track":t.track("time-aggregation-"+n+"25")}]:[]}),[t,n])}({chart:r,method:f}),j=(O.find((function(e){return e.value===f}))||O[0]).short,k=x.find((function(e){return e.value===b}))||x[0];return a.default.createElement(a.default.Fragment,null,b&&a.default.createElement(u.default,s({value:b,onChange:function(e){return r.updateTimeAggregationMethodAttribute({alias:e,method:f})},items:x,"data-track":r.track("groupingMethodAlias")},n,{labelProps:d({secondaryLabel:"each as",label:k.short,title:v.heading,tooltipProps:v},t)})),a.default.createElement(u.default,s({value:f,onChange:function(e){return r.updateTimeAggregationMethodAttribute({alias:m[e],method:e})},items:O,"data-track":r.track("groupingMethod"),dropTitle:h},n,{labelProps:d({secondaryLabel:!b&&"each as",tertiaryLabel:"every "+y+"s",label:j,title:g.heading,tooltipProps:g},t)})))},y=(0,a.memo)(b);t.default=y},59965:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=n(90833),o=c(n(13563)),i=c(n(45724)),u=c(n(3701)),l=n(54576);function c(e){return e&&e.__esModule?e:{default:e}}var s=function(e){var t=e.selected,n=void 0===t?[]:t,c=e.qr,s=void 0===c?0:c,f=e.fl,d=void 0===f?0:f,p=e.sl,m=void 0===p?0:p,v=e.ex,g=void 0===v?0:v,h=e.teaser,b=void 0!==h&&h,y=e.resourceName,w=m+g,O=n.length&&n.length<s?n.length:s,x=d>0||b&&s<(n.length||w),j=(b?n.length||w:n.length)||m,k=(0,l.useChart)();return r.default.createElement(a.TextMicro,{color:"textLite"},r.default.createElement(a.TextMicro,{color:b?"text":"primary"},O),b?" ":" queried",!b&&r.default.createElement(u.default,{margin:[-.5,1,-.5,0],width:"14px",height:"14px",color:"primary",svg:o.default}),!!d&&r.default.createElement(r.default.Fragment,null,b?r.default.createElement(a.TextMicro,{color:"errorLite"}," +"):"+ ",r.default.createElement(a.TextMicro,{color:"errorLite"},d),b?" ":"failed ",r.default.createElement(u.default,{margin:[-.5,1,-.5,0],width:"14px",height:"14px",color:"errorLite",svg:i.default})),x&&r.default.createElement(r.default.Fragment,null,"of ",r.default.createElement(a.TextMicro,{color:b?"textLite":"text"},j),b?" ":" selected"),!b&&s!==w&&r.default.createElement(r.default.Fragment,null,"out of ",r.default.createElement(a.TextMicro,null,w)," available"),y?k.intl(y,x?j:O):"")};t.default=s},33370:function(e,t){"use strict";t.__esModule=!0,t.getStats=void 0;var n=["getValue","getLabel","getIsSelected"];function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var i=function(e,t){return e&&(null==e?void 0:e[t])||0},u=function(e){return e?i(e,"qr")+i(e,"qr")/(i(e,"ex")+i(e,"sl")):"-"},l=function(e){return e?3*i(e,"cr")+2*i(e,"wr")+i(e,"cl"):"-"};t.getStats=function e(t,r,o){var c=void 0===o?{}:o,s=c.id,f=c.key,d=c.childrenKey,p=c.children,m=void 0===p?[]:p,v=c.childProps,g=c.props,h=g.getValue,b=g.getLabel,y=g.getIsSelected,w=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(g,n);return a(a({label:(null==b?void 0:b(r))||r.nm||s||r.id,value:(null==h?void 0:h(r))||s||r.id,"data-track":t.track(f+"-"+(s||r.id||r.nm)),unique:m.length,instances:u(r.is),metrics:u(r.ds),contribution:i(r.sts,"con"),anomalyRate:i(r.sts,"arp"),min:i(r.sts,"min"),avg:i(r.sts,"avg"),max:i(r.sts,"max"),alerts:l(r.al),info:r,selected:(null==y?void 0:y(r))||!1},w),{},{children:m.map((function(n){return e(t,n,{key:f+"-"+d,props:v})}))})}},34262:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=i(n(67294)),a=n(54576),o=i(n(63209));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){return function(t){return(0,a.useInitialLoading)()?r.default.createElement(o.default,t):r.default.createElement(e,t)}}},16374:function(e,t,n){"use strict";t.ZP=void 0;var r=g(n(67294)),a=g(n(60677)),o=n(15557),i=m(n(58607)),u=n(54576),l=n(90509),c=m(n(70486)),s=n(86954),f=m(n(3640)),d=["empty","index","uiName"],p=["uiName"];function m(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}function w(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var O=(0,a.default)(o.Text).withConfig({displayName:"gauge__Label",componentId:"sc-1o49axm-0"})(["line-height:1;font-size:",";flex:",";",";"],(function(e){return e.fontSize}),(function(e){var t=e.flex;return void 0===t?0:t}),(function(e){return e.isFetching&&f.default})),x=(0,a.default)(O).withConfig({displayName:"gauge__StrokeLabel",componentId:"sc-1o49axm-1"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary")),j=function(){var e=(0,u.useLatestConvertedValue)("selected");return r.default.createElement(x,{flex:"2",color:"main",fontSize:"2em",strong:!0},e)};var k=function(){var e=(0,u.useUnitSign)();return r.default.createElement(O,{color:"border",fontSize:"1em"},e)};var E=function(e){var t=e.empty,n=e.index,a=e.uiName,o=w(e,d),i=(0,u.useChart)(),l=i.getUI(a).getMinMax();return r.default.createElement(O,y({color:"border",fontSize:"1.3em"},o),t?"-":i.getConvertedValue(l[n]))};var P=(0,a.default)(o.Flex).attrs({alignItems:"center",justifyContent:"between",flex:!0}).withConfig({displayName:"gauge__BoundsContainer",componentId:"sc-1o49axm-2"})([""]);var S=function(e){var t=e.uiName;return r.default.createElement(P,null,r.default.createElement(E,{index:0,uiName:t}),r.default.createElement(E,{index:1,uiName:t}))};var C=(0,a.default)(o.Flex).attrs({position:"absolute",column:!0,alignContent:"center",justifyContent:"center"}).withConfig({displayName:"gauge__StatsContainer",componentId:"sc-1o49axm-3"})(["inset:",";text-align:center;font-size:",";"],(function(e){return e.inset}),(function(e){return e.fontSize}));var _=function(e){var t=e.uiName,n=(0,u.useOnResize)(t),a=n.width,o=n.height,i=a<o?a:o;return r.default.createElement(r.default.Fragment,null,r.default.createElement(C,{fontSize:i/15+"px",inset:"50% 15% 0%"},r.default.createElement(k,null)),r.default.createElement(C,{fontSize:i/15+"px",inset:"35% 15% 0%"},r.default.createElement(j,null)),r.default.createElement(C,{fontSize:i/15+"px",inset:"80% "+(100-.8*i*100/a)/2+"% 0%"},r.default.createElement(S,{uiName:t})))};var M=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),D=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"borderSecondary",round:"100%",width:"100%",height:"100%"},e)})).withConfig({displayName:"gauge__Skeleton",componentId:"sc-1o49axm-4"})(["animation:"," 1.6s ease-in infinite;"],M);var A=(0,r.forwardRef)((function(e,t){var n=e.uiName,a=w(e,p),o=(0,u.useAttributeValue)("loaded");return r.default.createElement(s.ChartWrapper,{alignItems:"center",justifyContent:"center",column:!0,ref:t,gap:0},o?r.default.createElement(r.default.Fragment,null,r.default.createElement(i.default,y({uiName:n,position:"relative",justifyContent:"center",alignItems:"center"},a),r.default.createElement("canvas",null)),r.default.createElement(_,{uiName:n})):r.default.createElement(D,null))}));var T=(0,c.default)(A,{tile:!0});t.ZP=T},14567:function(e,t,n){"use strict";t.__esModule=!0,t.makeGetColor=t.getWidth=t.default=void 0;var r,a=n(69032),o=n(63840),i=n(51834),u=n(31859),l=(r=n(61406))&&r.__esModule?r:{default:r};function c(){c=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(_){l=function(e,t,n){return e[t]=n}}function s(e,t,n,a){var o=t&&t.prototype instanceof p?t:p,i=Object.create(o.prototype),u=new P(a||[]);return r(i,"_invoke",{value:x(e,n,u)}),i}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(_){return{type:"throw",arg:_}}}e.wrap=s;var d={};function p(){}function m(){}function v(){}var g={};l(g,o,(function(){return this}));var h=Object.getPrototypeOf,b=h&&h(h(S([])));b&&b!==t&&n.call(b,o)&&(g=b);var y=v.prototype=p.prototype=Object.create(g);function w(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function a(r,o,i,u){var l=f(e[r],e,o);if("throw"!==l.type){var c=l.arg,s=c.value;return s&&"object"==typeof s&&n.call(s,"__await")?t.resolve(s.__await).then((function(e){a("next",e,i,u)}),(function(e){a("throw",e,i,u)})):t.resolve(s).then((function(e){c.value=e,i(c)}),(function(e){return a("throw",e,i,u)}))}u(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){a(e,n,t,r)}))}return o=o?o.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return C()}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var u=j(i,n);if(u){if(u===d)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=f(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===d)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function j(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,j(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var a=f(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,d;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:C}}function C(){return{value:void 0,done:!0}}return m.prototype=v,r(y,"constructor",{value:v,configurable:!0}),r(v,"constructor",{value:m,configurable:!0}),m.displayName=l(v,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,l(e,u,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},w(O.prototype),l(O.prototype,i,(function(){return this})),e.AsyncIterator=O,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new O(s(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},w(y),l(y,u,"Generator"),l(y,o,(function(){return this})),l(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=S,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(u&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,d):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;E(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},e}t.getWidth=function(e,t){var n=void 0===t?{}:t,r=n.aspectRatio,a=n.cellSize,o=(0,u.getRows)(e,r),i=(0,u.getColumns)(o,r);return(0,u.getFullWidth)(i,a)};var s=function(e,t){var n=void 0===t?{}:t,r=n.aspectRatio,a=n.cellSize,o=n.padding,i=(0,u.getRows)(e,r),l=(0,u.getColumns)(i,r);return{width:(0,u.getFullWidth)(l,a),height:(0,u.getFullHeight)(i,a,o),columns:Math.ceil(l)}},f=function(e,t,n){return(0,a.scaleLinear)().domain([e,t]).range(n)};t.makeGetColor=f;t.default=function(e,t,n,r){var a=c().mark(M),d=n.onMouseenter,p=n.onMouseout;void 0===r&&(r={});var m=r,v=m.cellSize,g=m.cellPadding,h=m.cellStroke,b=void 0===h?2:h,y=m.lineWidth,w=void 0===y?1:y,O=m.colorRange,x=void 0===O?[e.getThemeAttribute("themeGroupBoxesMin"),e.getThemeAttribute("themeGroupBoxesMax")]:O,j=t.getContext("2d"),k=(0,i.createCanvas)(j.width,j.height),E=k.getContext("2d"),P=-1,S=function(){},C=function(){},_=function(){};function M(n,m){var h,y,O,M,D,A,T,z,N;return c().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:h=s(n,r),y=h.width,O=h.height,M=h.columns,k.width=parseInt(y),k.height=parseInt(O),E.clearRect(0,0,k.width,k.height),D=e.getAttribute("min"),A=e.getAttribute("max"),T=f(D,A,x),z=function(t,n,r){t.beginPath(),t.fillStyle=T(e.getRowDimensionValue(n,m));var a=(0,u.getXPosition)(M,r,v),o=(0,u.getYPosition)(M,r,v);w&&b&&t.clearRect(a-w,o-w,(0,u.getCellBoxSize)(v,g)+b,(0,u.getCellBoxSize)(v,g)+b),t.fillRect(a,o,(0,u.getCellBoxSize)(v,g),(0,u.getCellBoxSize)(v,g))},N=0;case 9:if(!(N<n.length)){a.next=17;break}if(z(E,n[N],N),!(0,o.unstable_shouldYield)()){a.next=14;break}return void(a.next=14);case 14:++N,a.next=9;break;case 17:S(),_(),(0,i.copyCanvas)(k,t),_=(0,l.default)(t,M,n.length,{onMouseenter:d,onMouseout:p},r),S=function(){return-1!==P&&z(j,n[P],P)},C=function(e){S(),P=e;var t=(0,u.getXPosition)(M,e,v),n=(0,u.getYPosition)(M,e,v);w&&b&&(j.lineWidth=w,j.strokeStyle="#fff",j.strokeRect(t+w,n+w,(0,u.getCellBoxSize)(v,g)-b,(0,u.getCellBoxSize)(v,g)-b))};case 23:case"end":return a.stop()}}),a)}return{clear:function(){S(),_(),j.clearRect(0,0,t.width,t.height),E.clearRect(0,0,k.width,k.height)},update:M,activateBox:function(e){return C(e)},deactivateBox:function(){return S()}}}},61406:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(31859);t.default=function(e,t,n,a,o){var i=a.onMouseenter,u=a.onMouseout,l=void 0===o?{}:o,c=l.cellSize,s=l.cellPadding,f=-1,d=function(n){var a=e.getBoundingClientRect(),o=(0,r.getXPosition)(t,n,c),i=(0,r.getYPosition)(t,n,c),u=a.left+o,l=a.top+i,f=(0,r.getCellBoxSize)(c,s);return{index:n,left:u,top:l,right:u+f,bottom:l+f,width:f,height:f,offsetX:o,offsetY:i}},p=function(){u(d(f)),f=-1},m=function(e){var a=e.offsetX,o=e.offsetY,u=(0,r.getOffsetPosition)(a,c),l=(0,r.getOffsetPosition)(o,c)*t+u;l!==f&&(-1!==f&&p(),l>=n||(i(d(l)),f=l))};return e.addEventListener("mousemove",m),e.addEventListener("mouseout",p),function(){e.removeEventListener("mousemove",m),e.removeEventListener("mouseout",p)}}},9549:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=u(n(67294)),a=u(n(32855)),o=u(n(78122)),i=u(n(88578));function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){return r.default.createElement(a.default,l({border:{side:"top",color:"borderSecondary"},"data-testid":"chartLegend",column:!0},e))};t.Container=c;var s=function(){return r.default.createElement(c,null,r.default.createElement(o.default,null),r.default.createElement(a.default,{alignItems:"center",padding:[2]},r.default.createElement(i.default,null)))};t.default=s},88578:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(60677)),o=l(n(32855)),i=n(90833),u=n(54576);function l(e){return e&&e.__esModule?e:{default:e}}var c=(0,a.default)(o.default).attrs({width:"320px",height:"12px",round:!0}).withConfig({displayName:"legend__LinearColorScaleBar",componentId:"sc-1iit0cq-0"})(["background:linear-gradient( to right,",","," );"],(function(e){return e.minColor}),(function(e){return e.maxColor})),s=function(){var e=(0,u.useChart)(),t=(0,u.useAttributeValue)("min"),n=(0,u.useAttributeValue)("max"),a=(0,u.useUnitSign)(),l=(0,u.useAttributeValue)("selectedContexts").join(", "),s=(0,u.useAttributeValue)("contextScope").join(", ");(0,u.useAttributeValue)("theme");var f=e.getThemeAttribute("themeGroupBoxesMin"),d=e.getThemeAttribute("themeGroupBoxesMax");return r.default.createElement(o.default,{"data-testid":"groupBox-legend",gap:4,alignItems:"center"},r.default.createElement(i.TextNano,{strong:!0},l&&"*"!==l?l:s),r.default.createElement(o.default,{gap:2,alignItems:"center"},r.default.createElement(i.TextNano,null,e.getConvertedValue(t)," ",a),r.default.createElement(c,{minColor:f,maxColor:d}),r.default.createElement(i.TextNano,null,e.getConvertedValue(n)," ",a)))};t.default=s},88515:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576),o=d(n(58802)),i=d(n(14567)),u=d(n(51653)),l=d(n(87951)),c=["uiName","dimensions","groupLabel"],s=["index"],f=["index"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){m=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,r=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",i=a.asyncIterator||"@@asyncIterator",u=a.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(_){l=function(e,t,n){return e[t]=n}}function c(e,t,n,a){var o=t&&t.prototype instanceof d?t:d,i=Object.create(o.prototype),u=new P(a||[]);return r(i,"_invoke",{value:x(e,n,u)}),i}function s(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(_){return{type:"throw",arg:_}}}e.wrap=c;var f={};function d(){}function p(){}function v(){}var g={};l(g,o,(function(){return this}));var h=Object.getPrototypeOf,b=h&&h(h(S([])));b&&b!==t&&n.call(b,o)&&(g=b);var y=v.prototype=d.prototype=Object.create(g);function w(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function a(r,o,i,u){var l=s(e[r],e,o);if("throw"!==l.type){var c=l.arg,f=c.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){a("next",e,i,u)}),(function(e){a("throw",e,i,u)})):t.resolve(f).then((function(e){c.value=e,i(c)}),(function(e){return a("throw",e,i,u)}))}u(l.arg)}var o;r(this,"_invoke",{value:function(e,n){function r(){return new t((function(t,r){a(e,n,t,r)}))}return o=o?o.then(r,r):r()}})}function x(e,t,n){var r="suspendedStart";return function(a,o){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw o;return C()}for(n.method=a,n.arg=o;;){var i=n.delegate;if(i){var u=j(i,n);if(u){if(u===f)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=s(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}function j(e,t){var n=t.method,r=e.iterator[n];if(void 0===r)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,j(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),f;var a=s(r,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,f;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:C}}function C(){return{value:void 0,done:!0}}return p.prototype=v,r(y,"constructor",{value:v,configurable:!0}),r(v,"constructor",{value:p,configurable:!0}),p.displayName=l(v,u,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,l(e,u,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},w(O.prototype),l(O.prototype,i,(function(){return this})),e.AsyncIterator=O,e.async=function(t,n,r,a,o){void 0===o&&(o=Promise);var i=new O(c(t,n,r,a),o);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},w(y),l(y,u,"Generator"),l(y,o,(function(){return this})),l(y,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},e.values=S,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return i.type="throw",i.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var u=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(u&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(u){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;E(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},e}function v(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var g=function(e){var t=e.uiName,n=e.dimensions,d=e.groupLabel,p=v(e,c),g=(0,a.useChart)(),h=(0,r.useRef)(),b=(0,r.useRef)(),y=(0,r.useRef)(),w=(0,r.useState)(null),O=w[0],x=w[1],j=(0,r.useRef)(-1),k=(0,r.useRef)();(0,r.useLayoutEffect)((function(){return y.current=(0,i.default)(g,b.current,{onMouseenter:function(e){var t=e.index,n=v(e,s);j.current=t,y.current.activateBox(t),k.current=setTimeout((function(){x({target:{getBoundingClientRect:function(){return n}},index:t})}),100)},onMouseout:function(){j.current=-1,clearTimeout(k.current),requestAnimationFrame((function(){x((function(e){return-1===j.current||j.current!==(null==e?void 0:e.index)?(y.current.deactivateBox(),j.current=-1,null):e}))}))},onClick:function(e){void 0===e&&(e={});var t=e,n=t.index,r=v(t,f);j.current=n,y.current.activateBox(n),k.current=setTimeout((function(){x({target:{getBoundingClientRect:function(){return r}},index:n})}),100)}},p),function(){return y.current.clear()}}),[]);var E=(0,u.default)(t),P=(0,o.default)(),S=P[1],C=P[2],_=(0,a.useAttributeValue)("theme");(0,r.useLayoutEffect)((function(){return S(m().mark((function e(){return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return O&&h.current&&h.current[O.index]!==n[O.index]&&(y.current.deactivateBox(),x(null),j.current=-1),h.current=n,e.delegateYield(y.current.update(n,E),"t0",3);case 3:case"end":return e.stop()}}),e)}))),function(){return C()}}),[E,S,C,_]);var M=(0,r.useMemo)((function(){if(O){var e=n[O.index].split(",");return e[e.length-1]}}),[n[null==O?void 0:O.index]]);return r.default.createElement(r.Fragment,null,r.default.createElement("canvas",{"data-testid":"groupBox",ref:b}),O&&r.default.createElement(l.default,{target:O.target,label:M,index:O.index,groupLabel:d,data:E,id:n[O.index]}))};t.default=g},98950:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.SkeletonIcon=void 0;var r=d(n(67294)),a=d(n(60677)),o=n(15557),i=n(54576),u=s(n(1496)),l=s(n(88515)),c=s(n(78927));function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),g=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){m(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({background:"borderSecondary",flex:!0,height:50},e)})).withConfig({displayName:"groupBoxes__Skeleton",componentId:"sc-1m75n17-0"})(["animation:"," 1.6s ease-in infinite;"],v),h=function(){var e=(0,i.useLoadingColor)();return r.default.createElement(g,{background:e})};t.SkeletonIcon=h;var b=function e(t){var n=t.uiName,a=t.subTree,u=t.data,c=t.label,s=t.groupedBy,f=t.hasMore,d=Object.values(a),p=s[0],m=s.slice(1),v=(0,i.useColor)("themeBackground");return r.default.createElement(o.Flex,{"data-testid":"groupBoxWrapper",column:!0,alignItems:"start",gap:1,margin:[0,3,3,0],border:!!f&&{color:"borderSecondary",side:"all"},round:f,padding:f?[2]:[0],position:"relative"},r.default.createElement(o.Box,f&&{position:"absolute",top:"-12px",left:1,background:v,padding:[0,1]},r.default.createElement(o.TextMicro,{strong:f,"data-testid":"groupBoxWrapper-title",whiteSpace:"nowrap"},c,u.length>3&&r.default.createElement("span",null,"(",d.length,")"))),m.length?Object.keys(a).map((function(t){return r.default.createElement(e,{key:t,label:t,subTree:a[t],data:u,uiName:n,groupedBy:m,hasMore:m.length>1})})):r.default.createElement(l.default,{dimensions:d,groupLabel:c,uiName:n,groupKey:p}))},y=function(e){var t=e.uiName,n=(0,c.default)(t),a=n.data,l=n.tree,s=(0,i.useAttributeValue)("loaded"),f=(0,i.useAttributeValue)("showingInfo"),d=(0,i.useAttributeValue)("viewDimensions").grouped_by||[],p=d[0],m=d.slice(1);return s?r.default.createElement(o.Flex,{"data-testid":"groupBoxes",flexWrap:!0,flex:!0,position:"relative",height:{min:"150px"}},f?r.default.createElement(u.default,null):m.length?Object.keys(l).map((function(e){return r.default.createElement(b,{key:e,label:e,subTree:l[e],data:a,uiName:t,groupedBy:m,hasMore:m.length>1})})):r.default.createElement(b,{key:p,label:p,subTree:l,data:a,uiName:t,groupedBy:m})):r.default.createElement(h,null)},w=(0,r.memo)(y);t.default=w},20581:function(e,t,n){"use strict";t.ZP=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=v(n(11557)),o=v(n(36657)),i=v(n(70486)),u=n(54576),l=v(n(58607)),c=v(n(79779)),s=v(n(18947)),f=v(n(36864)),d=v(n(98950)),p=v(n(9549)),m=["uiName"];function v(e){return e&&e.__esModule?e:{default:e}}function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b=(0,r.forwardRef)((function(e,t){var n=e.uiName,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,m),v=(0,u.useChart)(),g=(0,o.default)({onHover:v.focus,onBlur:v.blur,isOut:function(e){return!e||!e.closest("[data-toolbox]")&&!e.closest("[data-testid=chart]")}},[v]),b=(0,a.default)((function(e){g.current=e,t.current=e}))[1],y=(0,u.useAttributeValue)("showingInfo");return r.default.createElement(f.default,h({ref:b},i),r.default.createElement(c.default,null),r.default.createElement(s.default,null),r.default.createElement(l.default,{uiName:n,column:!0,gap:4,padding:[4,2]},r.default.createElement(d.default,{uiName:n})),!y&&r.default.createElement(p.default,null))}));var y=(0,i.default)(b);t.ZP=y},87951:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(73935)),o=c(n(82633)),i=c(n(86518)),u=c(n(91183)),l=c(n(66220));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var f={right:"left",bottom:"top"},d={right:"left",top:"bottom"},p={left:"right",bottom:"top"},m={left:"right",top:"bottom"},v=function(e){var t=e.target,n=e.label,c=e.index,s=e.groupLabel,v=e.data,g=e.id,h=(0,r.useRef)(),b=(0,r.useRef)(),y=(0,r.useState)(m),w=y[0],O=y[1];b.current=(0,i.default)(t,h,w,"width"),(0,r.useEffect)((function(){if(null!=t&&t.getBoundingClientRect){var e=t.getBoundingClientRect(),n=e.right,r=e.bottom,a=window.innerHeight,o=window.innerWidth,i=h.current.getBoundingClientRect(),u=i.width,l=i.height;O(function(e,t){return e&&t?f:e?d:t?p:m}(n+u>o,r+l>a))}}),[t]),(0,r.useEffect)((function(){b.current()}),[w]);var x=(0,u.default)();return a.default.createPortal(r.default.createElement(o.default,{"data-toolbox":!0,ref:h,width:{max:"100%"},column:!0,"data-testid":"drop",sx:{pointerEvents:"none"}},r.default.createElement(l.default,{"data-testid":"chartPopover",label:n,index:c,groupLabel:s,data:v,id:g})),x)};t.default=v},47201:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=i(n(67294)),a=i(n(60677)),o=n(15557);function i(e){return e&&e.__esModule?e:{default:e}}var u=(0,a.default)(o.Flex).attrs({"data-testid":"chartPopover-label"}).withConfig({displayName:"label__GridRow",componentId:"sc-1j7ox7-0"})(["display:contents;"]),l=function(e){var t=e.label,n=e.value;return r.default.createElement(u,null,r.default.createElement(o.TextMicro,{padding:[1,0]},t),r.default.createElement(o.TextSmall,{strong:!0},(null==n?void 0:n.join(", "))||"-"))};t.default=l},66220:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(60677)),o=n(15557),i=n(54576),u=n(12460),l=c(n(47201));function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var f=(0,a.default)(o.Flex).attrs((function(e){return{round:!0,border:{side:"all",color:"elementBackground"},width:{min:"196px",max:e.maxWidth?e.maxWidth+"px":"80vw"},background:"dropdown",column:!0,padding:[4],gap:1}})).withConfig({displayName:"labels__Container",componentId:"sc-5eymlk-0"})(["box-shadow:0px 8px 12px rgba(9,30,66,0.15),0px 0px 1px rgba(9,30,66,0.31);"]),d=(0,a.default)(u.BaseColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"labels__ColorBackground",componentId:"sc-5eymlk-1"})([""]),p=a.default.div.withConfig({displayName:"labels__Grid",componentId:"sc-5eymlk-2"})(["display:grid;width:100%;grid-template-columns:auto 2fr;column-gap:8px;align-items:center;"]),m=function(e){var t=e.index,n=e.label,a=e.groupLabel,u=e.data,c=e.id,s=(0,i.useChart)(),m=s.getAttribute("viewDimensions")||{},v=(0,i.useAttributeValue)("min"),g=(0,i.useAttributeValue)("max"),h=.9*s.getUI().getChartWidth(),b=s.getRowDimensionValue(c,u),y=(0,i.useConverted)(b,{valueKey:"percent"});return r.default.createElement(f,{"data-testid":"chartPopover-labels",maxWidth:h,gap:2},r.default.createElement(o.Flex,{column:!0,gap:1},r.default.createElement(o.TextMicro,null,a),r.default.createElement(o.TextMicro,{strong:!0},n),r.default.createElement(o.Flex,{alignItems:"center",position:"relative"},r.default.createElement(d,{value:b,min:v,max:g,bg:s.getThemeAttribute("themeGroupBoxesMax"),height:"18px"}),r.default.createElement(o.TextMicro,{padding:[1,2],strong:!0},y,"-"!==y&&"%"))),r.default.createElement(p,{gap:1,column:!0},Object.keys(m.labels).map((function(e){var n;return r.default.createElement(l.default,{key:e,label:e,value:null==(n=m.labels[e])?void 0:n[t]})}))))},v=(0,r.memo)(m);t.default=v},78927:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54576);t.default=function(e){var t=(0,r.useChart)(),n=(0,r.useForceUpdate)();return(0,r.useImmediateListener)((function(){return t.getUI(e).on("groupBoxChanged",n)}),[t]),t.getUI(e).getGroupBox()}},51653:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(54576);t.default=function(e){var t=(0,r.useChart)(),n=(0,r.useForceUpdate)();return(0,r.useImmediateListener)((function(){return t.getUI(e).on("groupBoxRowDataChanged",n)}),[t]),t.getUI(e).getGroupBoxRowData()}},31859:function(e,t){"use strict";t.__esModule=!0,t.getYPosition=t.getXPosition=t.getRows=t.getOffsetPosition=t.getFullWidth=t.getFullHeight=t.getColumns=t.getCellBoxSize=t.defaultPadding=t.defaultCellSize=t.defaultAspectRatio=void 0;var n=17;t.defaultCellSize=n;t.defaultPadding=1;var r=Math.round(16/9);t.defaultAspectRatio=r;t.getCellBoxSize=function(e,t){return void 0===e&&(e=n),void 0===t&&(t=1),e-t};t.getRows=function(e,t){return void 0===t&&(t=r),Math.sqrt(e.length/t)};t.getColumns=function(e,t){return void 0===t&&(t=r),e*t};t.getXPosition=function(e,t,r){return void 0===r&&(r=n),Math.floor(t%e)*r};t.getYPosition=function(e,t,r){return void 0===r&&(r=n),Math.floor(t/e)*r};t.getFullWidth=function(e,t){return void 0===t&&(t=n),Math.ceil(e)*t};t.getFullHeight=function(e,t,r){return void 0===t&&(t=n),void 0===r&&(r=n),Math.ceil(e)*t+r};t.getOffsetPosition=function(e,t){return void 0===t&&(t=n),Math.floor(e/t)}},79779:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=c(n(32855)),o=n(54576),i=c(n(2713)),u=c(n(21040)),l=n(96808);function c(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=function(e){return r.default.createElement(a.default,f({alignItems:"center",justifyContent:"start",padding:[1,2],gap:.5,border:{side:"bottom",color:"borderSecondary"},"data-testid":"chartHeader",height:"25px"},e))};t.Container=d;var p=function(){var e=(0,o.useAttributeValue)("leftHeaderElements");return r.default.createElement(d,null,e.map((function(e,t,n){return r.default.createElement(r.Fragment,{key:t},r.default.createElement(e,null),n[t+1]?r.default.createElement(u.default,null):null)})),r.default.createElement(l.Title,null),r.default.createElement(i.default,null))};t.default=p},18839:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(60677);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u={default:"default",selectVertical:"row-resize",select:"col-resize",highlight:"crosshair"},l=o(o({},u),{},{pan:"grabbing"}),c=(0,r.css)(["cursor:",";"," &:active{cursor:",";}"],(function(e){return u[e.navigation]||u.default}),(function(e){var t=l[e.navigation];return t?"\n &:active {\n cursor: "+t+";\n }\n ":""}),(function(e){return l[e.navigation]||u.default}));t.default=c},39434:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=u(n(53087)),o=u(n(81743)),i=["text","maxLength","Component","noTooltip"];function u(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}var c=function(e){var t=e.text,n=e.maxLength,u=void 0===n?15:n,l=e.Component,c=void 0===l?"div":l,s=e.noTooltip,f=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i),d=(0,r.useMemo)((function(){return t?(0,a.default)(t,u):null}),[t,u]);return s||d===t?r.default.createElement(c,f,d):r.default.createElement(o.default,{content:t},r.default.createElement(c,f,d))};t.default=c},3640:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(60677),a=(0,r.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),o=(0,r.css)(["animation:"," 1.6s ease-in infinite;"],a);t.default=o},58802:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(67294),a=n(63840);t.default=function(){var e=(0,r.useState)(!1),t=e[0],n=e[1],o=(0,r.useRef)(),i=(0,r.useRef)(),u=(0,r.useCallback)((function(){o.current&&((0,a.unstable_cancelCallback)(o.current),o.current=void 0,n(!1)),i.current&&(i.current(),i.current=void 0)}),[]),l=(0,r.useCallback)((function(e,t){void 0===t&&(t=a.unstable_IdlePriority),u();var r=e(),l=(0,a.unstable_runWithPriority)(t,(function e(){var t=r.next();if(i.current=t.value,!t.done)return e;n(!1)}));l&&((0,a.unstable_runWithPriority)(a.unstable_ImmediatePriority,(function(){return n(!0)})),o.current=(0,a.unstable_scheduleCallback)(t,l))}),[]);return(0,r.useEffect)((function(){return u}),[]),[t,l,u]}},70486:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(67294)),a=n(54576),o=s(n(2855)),i=s(n(92767)),u=s(n(91272)),l=s(n(40287)),c=s(n(86954));function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){void 0===t&&(t={});var n=(0,i.default)((0,l.default)((0,o.default)((0,u.default)(e))));t.tile&&(n=(0,c.default)(n)),n=(0,a.withChartProvider)(n);return function(e){return r.default.createElement(n,e)}}},2855:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=a?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(r,i,u):r[i]=e[i]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576);function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}t.default=function(e){var t=(0,r.forwardRef)((function(t,n){var o=(0,a.useChart)();return r.default.createElement(e,i({"data-track":o.track("container")},t,{ref:n}))}));return(0,r.memo)(t)}},91272:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var u=a?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(r,o,u):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576),o=["isVisible"];function i(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(this,arguments)}t.default=function(e){return(0,r.forwardRef)((function(t,n){var i=t.isVisible,l=void 0===i||i,c=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(t,o),s=(0,a.useChart)();return(0,a.useImmediateListener)((function(){if(l&&(!c.uiName||"default"===c.uiName)){var e=window.requestAnimationFrame(s.activate);return function(){window.cancelAnimationFrame(e),s.deactivate()}}}),[l,s,c.uiName]),r.default.createElement(e,u({ref:n},c))}))}},92767:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=u(n(32855)),o=u(n(56872)),i=n(54576);function u(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}t.default=function(e){return(0,r.forwardRef)((function(t,n){return(0,i.useAttributeValue)("fullscreen")?r.default.createElement(o.default,{full:!0},r.default.createElement(a.default,{background:"mainBackground",flex:!0,width:{max:"inherit"},padding:[4]},r.default.createElement(e,c({},t,{ref:n})))):r.default.createElement(e,c({},t,{ref:n}))}))}},40287:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(54576),o=n(24298),i=["height","flex"];function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}t.default=function(e){var t=function(t){var n=t.height,u=void 0===n?"100%":n,c=t.flex,s=void 0===c||c,f=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(t,i),d=(0,a.useChart)(),p=(0,r.useRef)(),m=d.getAttribute("enabledHeightResize")&&d.getAttribute("height")||u;return(0,r.useLayoutEffect)((function(){var e=0;return(0,o.unregister)(d.on("resizeYMove",(function(t){var n=e+t+4;if(!(n<185)){var r=n+"px";p.current.style.height=r,d.getUI().trigger("resize"),d.updateHeight(r)}})).on("resizeYStart",(function(){e=p.current.clientHeight})),d.onAttributeChange("expanded",(function(t){e=p.current.clientHeight,d.trigger("resizeYMove",t?d.getAttribute("expandedHeight"):-d.getAttribute("expandedHeight"))})))}),[d]),r.default.createElement(e,l({ref:p,height:m,flex:s},f))};return(0,r.memo)(t)}},86954:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Title=t.HeadWrapper=t.ChartWrapper=void 0;var r=b(n(67294)),a=b(n(60677)),o=n(54585),i=n(15557),u=b(n(88055)),l=b(n(3701)),c=b(n(34675)),s=b(n(36657)),f=n(54576),d=b(n(18947)),p=n(12460),m=b(n(81743)),v=["size"],g=["children","uiName"],h=["count"];function b(e){return e&&e.__esModule?e:{default:e}}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){x(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function x(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var k=(0,a.default)(i.Text).withConfig({displayName:"withTile__Label",componentId:"sc-1oake2r-0"})(["line-height:1;font-size:",";"],(function(e){return e.fontSize})),E=(0,a.default)(i.Flex).attrs((function(e){var t=e.size,n=j(e,v);return O({background:"elementBackground",round:!0,fontSize:parseInt(t/3,10),height:"100%",width:"100%"},n)})).withConfig({displayName:"withTile__ChartHeadWrapper",componentId:"sc-1oake2r-1"})(["font-size:","px;"],(function(e){return e.fontSize>12?12:e.fontSize<9?9:e.fontSize})),P=function(){var e=(0,f.useChart)(),t=(0,f.useTitle)();return r.default.createElement(k,{fontSize:"1em",textAlign:"center",color:"sectionDescription",width:"80%",onClick:function(t){t.preventDefault(),e.sdk.trigger("goToLink",e)},cursor:"pointer"},t)};t.Title=P;var S=function(e){var t,n=e.children,a=e.uiName,v=j(e,g),h=(0,f.useOnResize)().parentWidth,b=(0,f.useAttributeValue)("focused"),w=null==(t=(0,f.useDimensionIds)())?void 0:t[0],O=(0,o.useWindowSize)(a).width,x=parseInt((h||O)/30,10);x=x<20?20:x>50?50:x;var k=(0,f.useChart)(),S=(0,s.default)({onHover:k.focus,onBlur:k.blur,isOut:function(e){return!e||!e.closest("[data-toolbox]")&&!e.closest("[data-testid=chart]")}},[k]);return r.default.createElement(E,y({size:x},v,{ref:S}),r.default.createElement(i.Flex,{column:!0,width:"16px",padding:[1,0]},r.default.createElement(c.default,{plain:!0}),r.default.createElement(i.Collapsible,{open:b,column:!0},r.default.createElement(d.default,{column:!0,background:"elementBackground",border:"none",justifyContent:"start",plain:!0}))),r.default.createElement(i.Flex,{column:!0,alignItems:"center",justifyContent:"center",padding:[1,0,0],height:"100%",width:"100%",position:"relative",overflow:"hidden"},r.default.createElement(P,null),n),r.default.createElement(i.Flex,{column:!0,width:"16px",alignItems:"center",padding:[4,1],gap:2},"selected"===w&&r.default.createElement(r.default.Fragment,null,r.default.createElement(i.Flex,{column:!0,height:"100%",width:"2px",background:"nodeBadgeBackground",justifyContent:"end"},r.default.createElement(p.ColorBar,{id:"selected",valueKey:"arp",width:"2px",styleDimension:"height",round:.5})),r.default.createElement(m.default,{content:"Anomaly rate for this metric"},r.default.createElement(l.default,{svg:u.default,color:"anomalyTextLite",size:"14px"})))))};t.HeadWrapper=S;var C=(0,a.default)(i.Flex).attrs((function(e){return O({column:!0,justifyContent:"center",alignContent:"center",gap:2,position:"relative",width:"100%",height:"100%",overflow:"hidden"},e)})).withConfig({displayName:"withTile__ChartWrapper",componentId:"sc-1oake2r-2"})([""]);t.ChartWrapper=C;t.default=function(e){return function(t){var n=t.count,a=j(t,h);return r.default.createElement(S,{count:n,uiName:a.uiName},r.default.createElement(e,a))}}},44473:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.ContentWrapper=t.Container=void 0;var r=b(n(67294)),a=b(n(60677)),o=g(n(32855)),i=n(54576),u=n(36657),l=g(n(58607)),c=g(n(98079)),s=g(n(44945)),f=g(n(13828)),d=g(n(35815)),p=n(29270),m=g(n(22810)),v=g(n(18839));function g(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function b(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}var w={dygraph:(0,a.css)([""," ",""],m.default,v.default)},O=(0,a.default)(o.default).withConfig({displayName:"chartContentWrapper__StyledContainer",componentId:"sc-ngouqx-0"})(["",""],(function(e){var t=e.chartLibrary;return w[t]||""}));t.ContentWrapper=function(e){return r.default.createElement(o.default,y({position:"relative",column:!0,flex:!0,overflow:"hidden","data-testid":"contentWrapper"},e))};var x=(0,r.forwardRef)((function(e,t){var n=(0,i.useAttributeValue)("chartLibrary"),a=(0,i.useAttributeValue)("navigation");return r.default.createElement(O,y({ref:t,chartLibrary:n,position:"relative",flex:!0,"data-testid":"chartContentWrapper",height:"100%",overflow:"hidden",navigation:a},e))}));t.Container=x;var j=function(e){var t=e.uiName,n=(0,u.useHovered)({isOut:function(e){return!e||!e.closest("[data-toolbox]")}}),a=n[0],o=n[1],m=(0,i.useInitialLoading)(),v=(0,i.useEmpty)(),g=(0,i.useAttributeValue)("hasToolbox"),h=(0,i.useAttributeValue)("processing");return r.default.createElement(x,{ref:a},!m&&r.default.createElement(l.default,null),!m&&r.default.createElement(d.default,{uiName:t}),m&&r.default.createElement(f.default,null),g&&o&&!v&&r.default.createElement(s.default,null),h&&r.default.createElement(p.Processing,null),r.default.createElement(c.default,{uiName:t}))};t.default=j},38566:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=g(n(67294)),a=m(n(32855)),o=m(n(47817)),i=m(n(11307)),u=m(n(7775)),l=n(91970),c=n(90833),s=m(n(30871)),f=m(n(35211)),d=g(n(3701)),p=n(54576);function m(e){return e&&e.__esModule?e:{default:e}}function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b={as:function(e){return r.default.createElement(d.default,h({svg:u.default},e))},size:"16px"},y=function(e){var t=e.item,n=t.value,a=t.label,o=e.value,u=e.onItemClick;return r.default.createElement(l.ItemContainer,{"data-testid":"chartDimensionFilter-"+n},r.default.createElement(i.default,{label:r.default.createElement(c.TextSmall,{"data-testid":"chartDimensionFilter-label"},a),checked:n===o,onChange:function(e){return u(e.target.value)},value:n,"data-testid":"chartDimensionFilter-input",name:"dimensionsSort",iconProps:b}))},w={default:f.default,nameAsc:s.default,nameDesc:f.default,valueAsc:s.default,valueDesc:f.default,anomalyAsc:s.default,anomalyDesc:f.default},O=function(e){var t=(0,p.useChart)(),n=(0,r.useState)(t.getAttribute("dimensionsSort")),i=n[0],u=n[1];(0,r.useEffect)((function(){return t.onAttributeChange("dimensionsSort",u)}),[t]);var l=function(e){return(0,r.useMemo)((function(){return[{value:"default",label:"Default","data-track":e.track("default")},{value:"nameAsc",label:"Sort by name A\u2192Z","data-track":e.track("nameAsc")},{value:"nameDesc",label:"Sort by name Z\u2192A","data-track":e.track("nameDesc")},{value:"valueAsc",label:"Sort by value Min\u2192Max","data-track":e.track("valueAsc")},{value:"valueDesc",label:"Sort by value Max\u2192Min","data-track":e.track("valueDesc")},{value:"anomalyAsc",label:"Sort by anomaly Min\u2192Max","data-track":e.track("anomalyAsc")},{value:"anomalyDesc",label:"Sort by anomaly Max\u2192Min","data-track":e.track("anomalyDesc")}]}),[e])}(t);return r.default.createElement(a.default,h({padding:[0,4,3],"data-testid":"chartDimensionSort"},e),r.default.createElement(o.default,{value:i,items:l,dropProps:{align:{bottom:"top",left:"left"},"data-toolbox":!0},dropdownProps:{width:"200px",padding:[2,0]},Item:y,onChange:function(e){return t.updateAttribute("dimensionsSort",e)}},r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:w[i],size:"16px"}),"data-testid":"chartDimensionSort-toggle",title:"Sort dimensions by name or value",small:!0})))};t.default=O},12460:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.ColorBar=t.Color=t.BaseColorBar=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=d(n(32855)),i=n(54576),u=n(93501),l=["bg"],c=["value","min","max","valueKey","bg","styleDimension"],s=["id","valueKey"],f=["id"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var b=(0,a.default)(o.default).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({width:"4px",round:!0,"data-testid":"chartDimensions-color",flex:!1,background:e.bg},h(e,l))})).withConfig({displayName:"color__Color",componentId:"sc-1ooxdoy-0"})(["pointer-events:none;"]);t.Color=b;var y=function(e){var t=e.value,n=e.min,a=e.max,o=e.valueKey,i=e.bg,l=e.styleDimension,s=void 0===l?"width":l,f=h(e,c),d=(0,r.useRef)();(0,r.useLayoutEffect)((function(){if(d.current){requestAnimationFrame((function(){return d.current&&(d.current.style[s]=t?100*(Math.abs(t)-n)/(a-n)+"%":0)}))}}),[t,o,n,a]);var p=(0,u.useIsHeatmap)(),v=(0,u.useGetColor)(.4);return i?r.default.createElement(b,m({ref:d,width:{min:1},bg:i,sx:{background:p?v(t):void 0}},f)):null};t.BaseColorBar=y;t.ColorBar=function(e){var t=e.id,n=e.valueKey,a=h(e,s),o=(0,i.useChart)(),u="arp"===n?"anomalyTextLite":o.selectDimensionColor(t),l="arp"===n?0:o.getAttribute("min"),c="arp"===n?100:o.getAttribute("max"),f=Math.abs(l),d=Math.abs(c),p=c>0?l<0?0:l:d,v=(0,i.useLatestValue)(t,{valueKey:n})||0;return r.default.createElement(y,m({value:v,min:p,max:d>f?d:f,valueKey:n,bg:u},a))};var w=function(e){var t=e.id,n=h(e,f),a=(0,i.useChart)().selectDimensionColor(t);return a?r.default.createElement(b,m({bg:a},n)):null};t.default=w},43946:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Name=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(15557),i=n(54576),u=(r=n(39434))&&r.__esModule?r:{default:r},l=["children","maxLength"],c=["id"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function d(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var p=(0,a.memo)((0,a.forwardRef)((function(e,t){var n=e.children,r=e.maxLength,i=void 0===r?32:r,c=d(e,l);return a.default.createElement(u.default,f({text:n,maxLength:i,Component:o.TextMicro,color:"textDescription",whiteSpace:"nowrap",ref:t,"data-testid":"chartDimensions-name"},c))})));t.Name=p;var m=function(e){var t=e.id,n=d(e,c),r=(0,i.useChart)().getDimensionName(t);return a.default.createElement(p,n,r)};t.default=m},9033:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Value=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(90833),o=n(54576),i=["visible"];function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){return r.default.createElement(a.TextMicro,l({color:"textDescription",whiteSpace:"nowrap",truncate:!0,"data-testid":"chartDimensions-units"},e))};t.Value=c;var s=function(e){var t=e.visible,n=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i),a=(0,o.useUnitSign)();return t?r.default.createElement(c,n,a):null},f=(0,r.memo)(s);t.default=f},58358:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Value=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(15557),o=n(54576),i=["id","visible","valueKey","period","objKey","Component"];function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=(0,r.forwardRef)((function(e,t){return r.default.createElement(a.TextMicro,l({color:"textDescription","data-testid":"chartDimensions-value"},e,{ref:t}))}));t.Value=c;var s=(0,r.forwardRef)((function(e,t){var n=e.id,a=e.visible,u=e.valueKey,s=e.period,f=void 0===s?"latest":s,d=e.objKey,p=e.Component,m=void 0===p?c:p,v=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,i),g=(0,o.useConvertedValue)(n,f,{valueKey:u,objKey:d,allowNull:!0});return a?r.default.createElement(m,l({},v,{ref:t}),g):null}));t.default=s},13589:function(e,t){"use strict";t.__esModule=!0,t.tabs=t.actions=void 0;t.actions={values:"values",drillDown:"drillDown",compare:"compare",correlate:"correlate"};t.tabs={window:"window",selectedArea:"selectedArea"}},25830:function(e,t,n){"use strict";t.__esModule=!0,t.valueColumn=t.minColumn=t.maxColumn=t.labelColumn=t.avgColumn=t.anomalyColumn=void 0;var r=g(n(67294)),a=n(15557),o=g(n(60677)),i=v(n(12460)),u=g(n(43946)),l=g(n(9033)),c=v(n(58358)),s=n(54576),f=g(n(88811)),d=n(19151),p=["children","fractionDigits"];function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(e){return e&&e.__esModule?e:{default:e}}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b=(0,o.default)(i.ColorBar).attrs({position:"absolute",top:1,left:2,backgroundOpacity:.4,round:.5}).withConfig({displayName:"columns__ColorBackground",componentId:"sc-dglxe7-0"})([""]),y={ANOMALY_RATE:"arp",default:"value"},w={dimension:"dimensions",node:"nodes",instance:"instances",label:"labels",value:"values",default:"values"},O=[];t.labelColumn=function(e){return{id:"label",header:function(){return r.default.createElement(a.TextSmall,{strong:!0},"Name")},size:300,minSize:60,cell:function(t){var n=t.row,o=n.original,l=n.depth,c=void 0===l?0:l,p=n.getCanExpand,m=n.getToggleExpandedHandler,v=n.getIsExpanded,g=((0,s.useAttributeValue)("hoverX")||O)[1],h=d.rowFlavours[g]||d.rowFlavours.default,x=(0,s.useVisibleDimensionId)(o);(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(a.Flex,{justifyContent:"between",alignItems:"center",padding:[0,0,0,3*c],opacity:x?null:"weak"},r.default.createElement(a.Flex,{alignItems:"center",gap:1,position:"relative",width:"100%"},x&&r.default.createElement(b,{id:o,valueKey:y[h]||y.default,height:"18px"},r.default.createElement(i.default,{id:o})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:o})),p()&&r.default.createElement(f.default,{label:w[g.original.value]||w[e]||w.default,onClick:function(e){m()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},iconRotate:v()?2:null,textProps:{fontSize:"10px",color:"textLite"}}))}}};var x=function(e){var t=e.children,n=e.fractionDigits,o=void 0===n?0:n,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,p),u=t.toString().split("."),l=u[0],s=u[1];return r.default.createElement(a.Flex,{alignItems:"center",justifyContent:"start"},r.default.createElement(c.Value,h({},i,{flex:!1,basis:3*1.6,textAlign:"right"}),l),"undefined"!==typeof s&&r.default.createElement(c.Value,i,"."),r.default.createElement(c.Value,h({as:a.Flex,flex:!1,width:1.6*o},i,{textAlign:"left"}),s))};t.valueColumn=function(){return{id:"value",header:r.default.createElement(a.TextMicro,null,"Value ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var t=e.row,n=t.original,a=(t.depth,t.getCanExpand,t.getToggleExpandedHandler,t.getIsExpanded,(0,s.useVisibleDimensionId)(n)),o=(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(c.default,{period:"latest",id:n,visible:a,Component:x,fractionDigits:o})},sortingFn:"basic"}};t.anomalyColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-arp":"arp",header:r.default.createElement(a.TextMicro,null,"AR %"),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"arp",Component:x,fractionDigits:2,color:"anomalyTextFocus"})},sortingFn:"basic"}};t.minColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-min":"min",header:r.default.createElement(a.TextMicro,null,"Min ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"min",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.avgColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-avg":"avg",header:r.default.createElement(a.TextMicro,null,"Avg ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"avg",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.maxColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-max":"max",header:r.default.createElement(a.TextMicro,null,"Max ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"max",Component:x,fractionDigits:2})},sortingFn:"basic"}}},45275:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(15557),i=n(60773),u=n(41145),l=(r=n(1981))&&r.__esModule?r:{default:r},c=n(25830);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=function(e,t,n){return{cellStyles:d(d(d({height:"40px"},(null==e||null==e.getIsExpanded?void 0:e.getIsExpanded())&&{background:"columnHighlight",backgroundOpacity:.7}),e.depth>0&&{backgroundOpacity:.4}),e.depth>0&&0===n&&{border:{side:"left",size:"4px"}}),headStyles:{height:"32px"},styles:{verticalAlign:"middle"},bulkActionsStyles:{padding:[2,0]},searchContainerStyles:{width:"100%",padding:[0,2,0,2]},searchStyles:{inputContainerStyles:{height:"20px",border:{side:"all",size:"1px",color:"inputBg"},background:"inputBg",round:!0,padding:[1,2],_hover:{border:{side:"all",size:"1px",color:"borderSecondary"}}}}}},v=function(){var e=(0,u.useDimensionIds)(),t=function(e,t){void 0===t&&(t={});var n=(0,u.useAttributeValue)("hoverX");return(0,a.useMemo)((function(){var r=d({period:e},t),u=d(d({},r),{},{objKey:"dbDimensions",unitsKey:"dbUnits"});return[{id:"Dimensions",header:function(){return a.default.createElement(o.TextSmall,null,"Dimension (",n?"hovering":"latest"," value)")},columns:[(0,c.labelColumn)(),(0,c.valueColumn)()]},{id:"visible",header:function(){return a.default.createElement(o.TextSmall,null,(0,i.uppercase)(e)," points")},columns:[(0,c.minColumn)(r),(0,c.avgColumn)(r),(0,c.maxColumn)(r),(0,c.anomalyColumn)(r)]},{id:"aggregated",header:function(){return a.default.createElement(o.TextSmall,null,"Aggregated points")},columns:[(0,c.minColumn)(u),(0,c.avgColumn)(u),(0,c.maxColumn)(u),(0,c.anomalyColumn)(u)]}]}),[e,!!n])}((0,u.useAttributeValue)("weightsTab")),n=(0,u.useChart)();return(0,a.useMemo)((function(){return n.makeChartUI("custom","d3pie")}),[]),a.default.createElement(o.Flex,{gap:2},a.default.createElement(o.NetdataTable,{enableSorting:!0,dataColumns:t,data:e,meta:m,width:"100%"}),a.default.createElement(l.default,{chart:n,uiName:"custom"}))};t.default=v},41865:function(e,t,n){"use strict";t.__esModule=!0,t.valueColumn=t.minColumn=t.maxColumn=t.labelColumn=t.avgColumn=t.anomalyColumn=void 0;var r=g(n(67294)),a=n(15557),o=g(n(60677)),i=v(n(12460)),u=g(n(43946)),l=g(n(9033)),c=v(n(58358)),s=n(54576),f=g(n(88811)),d=n(19151),p=["children","fractionDigits"];function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(e){return e&&e.__esModule?e:{default:e}}function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h.apply(this,arguments)}var b=(0,o.default)(i.ColorBar).attrs({position:"absolute",top:1,left:2,backgroundOpacity:.4,round:.5}).withConfig({displayName:"columns__ColorBackground",componentId:"sc-19w2dpa-0"})([""]),y={ANOMALY_RATE:"arp",default:"value"},w={dimension:"dimensions",node:"nodes",instance:"instances",label:"labels",value:"values",default:"values"},O=[];t.labelColumn=function(e){return{id:"label",header:function(){return r.default.createElement(a.TextSmall,{strong:!0},"Name")},size:300,minSize:60,cell:function(t){var n=t.row,o=n.original,l=n.depth,c=void 0===l?0:l,p=n.getCanExpand,m=n.getToggleExpandedHandler,v=n.getIsExpanded,g=((0,s.useAttributeValue)("hoverX")||O)[1],h=d.rowFlavours[g]||d.rowFlavours.default,x=(0,s.useVisibleDimensionId)(o);(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(a.Flex,{justifyContent:"between",alignItems:"center",padding:[0,0,0,3*c],opacity:x?null:"weak"},r.default.createElement(a.Flex,{alignItems:"center",gap:1,position:"relative",width:"100%"},x&&r.default.createElement(b,{id:o,valueKey:y[h]||y.default,height:"18px"},r.default.createElement(i.default,{id:o})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:o})),p()&&r.default.createElement(f.default,{label:w[g.original.value]||w[e]||w.default,onClick:function(e){m()(e),setTimeout((function(){return e.target.scrollIntoView({behavior:"smooth",block:"nearest"})}))},iconRotate:v()?2:null,textProps:{fontSize:"10px",color:"textLite"}}))}}};var x=function(e){var t=e.children,n=e.fractionDigits,o=void 0===n?0:n,i=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,p),u=t.toString().split("."),l=u[0],s=u[1];return r.default.createElement(a.Flex,{alignItems:"center",justifyContent:"start"},r.default.createElement(c.Value,h({},i,{flex:!1,basis:3*1.6,textAlign:"right"}),l),"undefined"!==typeof s&&r.default.createElement(c.Value,i,"."),r.default.createElement(c.Value,h({as:a.Flex,flex:!1,width:1.6*o},i,{textAlign:"left"}),s))};t.valueColumn=function(){return{id:"value",header:r.default.createElement(a.TextMicro,null,"Value ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var t=e.row,n=t.original,a=(t.depth,t.getCanExpand,t.getToggleExpandedHandler,t.getIsExpanded,(0,s.useVisibleDimensionId)(n)),o=(0,s.useChart)().getAttribute("unitsConversionFractionDigits");return r.default.createElement(c.default,{period:"latest",id:n,visible:a,Component:x,fractionDigits:o})},sortingFn:"basic"}};t.anomalyColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-arp":"arp",header:r.default.createElement(a.TextMicro,null,"AR %"),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"arp",Component:x,fractionDigits:2,color:"anomalyTextFocus"})},sortingFn:"basic"}};t.minColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-min":"min",header:r.default.createElement(a.TextMicro,null,"Min ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"min",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.avgColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-avg":"avg",header:r.default.createElement(a.TextMicro,null,"Avg ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"avg",Component:x,fractionDigits:2})},sortingFn:"basic"}};t.maxColumn=function(e){var t=e.period,n=e.objKey;return{id:n?n+"-max":"max",header:r.default.createElement(a.TextMicro,null,"Max ",r.default.createElement(l.default,{visible:!0})),size:45,minSize:45,cell:function(e){var a=e.row,o=a.original,i=(a.depth,a.getCanExpand,a.getToggleExpandedHandler,a.getIsExpanded,(0,s.useVisibleDimensionId)(o));return r.default.createElement(c.default,{period:t,objKey:n,textAlign:"right",id:o,visible:i,valueKey:"max",Component:x,fractionDigits:2})},sortingFn:"basic"}}},65190:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(15557),o=n(60773),i=n(41145),u=n(41865);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t,n){return{cellStyles:s(s(s({height:"40px"},(null==e||null==e.getIsExpanded?void 0:e.getIsExpanded())&&{background:"columnHighlight",backgroundOpacity:.7}),e.depth>0&&{backgroundOpacity:.4}),e.depth>0&&0===n&&{border:{side:"left",size:"4px"}}),headStyles:{height:"32px"},styles:{verticalAlign:"middle"},bulkActionsStyles:{padding:[2,0]},searchContainerStyles:{width:"100%",padding:[0,2,0,2]},searchStyles:{inputContainerStyles:{height:"20px",border:{side:"all",size:"1px",color:"inputBg"},background:"inputBg",round:!0,padding:[1,2],_hover:{border:{side:"all",size:"1px",color:"borderSecondary"}}}}}},p=function(){var e=(0,i.useDimensionIds)(),t=function(e,t){void 0===t&&(t={});var n=(0,i.useAttributeValue)("hoverX");return(0,r.useMemo)((function(){var i=s({period:e},t),l=s(s({},i),{},{objKey:"dbDimensions",unitsKey:"dbUnits"});return[{id:"Dimensions",header:function(){return r.default.createElement(a.TextSmall,null,"Dimension (",n?"hovering":"latest"," value)")},columns:[(0,u.labelColumn)(),(0,u.valueColumn)()]},{id:"visible",header:function(){return r.default.createElement(a.TextSmall,null,(0,o.uppercase)(e)," points")},columns:[(0,u.minColumn)(i),(0,u.avgColumn)(i),(0,u.maxColumn)(i),(0,u.anomalyColumn)(i)]},{id:"aggregated",header:function(){return r.default.createElement(a.TextSmall,null,"Aggregated points")},columns:[(0,u.minColumn)(l),(0,u.avgColumn)(l),(0,u.maxColumn)(l),(0,u.anomalyColumn)(l)]}]}),[e,!!n])}((0,i.useAttributeValue)("weightsTab"));return r.default.createElement(a.Flex,null,r.default.createElement(a.NetdataTable,{enableSorting:!0,dataColumns:t,data:e,meta:d,width:"100%"}))};t.default=p},30483:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=(l(n(60677)),n(15557)),o=n(54576),i=n(13589),u=["onClick"];function l(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=function(e){e.onClick;var t=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),n=(0,o.useChart)(),l=(0,o.useAttributeValue)("weightsAction"),s=(0,o.useAttributeValue)("weightsTab");return r.default.createElement(a.Flex,c({justifyContent:"between"},t),r.default.createElement(a.Flex,{gap:6},r.default.createElement(a.Flex,{gap:1},r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.values!==l,icon:"line_chart",onClick:function(){return n.updateAttribute("weightsAction",i.actions.values)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.drillDown!==l,icon:"weights_drill_down",onClick:function(){return n.updateAttribute("weightsAction",i.actions.drillDown)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.compare!==l,icon:"weights_compare",onClick:function(){return n.updateAttribute("weightsAction",i.actions.compare)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.actions.correlate!==l,icon:"correlation_inv",onClick:function(){return n.updateAttribute("weightsAction",i.actions.correlate)}})),r.default.createElement(a.Flex,{gap:1},r.default.createElement(a.Button,{tiny:!0,neutral:i.tabs.window!==s,label:"Window",onClick:function(){return n.updateAttribute("weightsTab",i.tabs.window)}}),r.default.createElement(a.Button,{tiny:!0,neutral:i.tabs.selectedArea!==s,label:"Selected area",disabled:!0,onClick:function(){return n.updateAttribute("weightsTab",i.tabs.selectedArea)}}))))};t.default=s},50657:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(15557),i=n(54576),u=s(n(30483)),l=s(n(45275)),c=(s(n(65190)),n(13589));function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}var d=((r={})[c.actions.values]=l.default,r[c.actions.drillDown]=l.default,r[c.actions.compare]=l.default,r[c.actions.correlate]=l.default,r),p=function(){var e=(0,i.useAttributeValue)("expandedHeight"),t=(0,i.useAttributeValue)("weightsAction"),n=(0,a.useMemo)((function(){return d[t]||d.values}),[t]);return a.default.createElement(o.Flex,{height:e+"px",column:!0,gap:2,padding:[4]},a.default.createElement(u.default,null),a.default.createElement(n,null))};t.default=p},58768:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=c(n(67294)),a=c(n(60677)),o=n(15557),i=c(n(51289)),u=n(54576),l=c(n(3701));function c(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=(0,a.default)(o.Flex).attrs((function(e){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({"data-testid":"chartExpander",alignItems:"center",justifyContent:"center",gap:1},e)})).withConfig({displayName:"expander__Container",componentId:"sc-19kn93v-0"})(["&:hover > *{color:",";fill:",";}"],(0,o.getColor)("text"),(0,o.getColor)("text")),p=function(){var e=(0,u.useChart)(),t=(0,u.useAttributeValue)("expanded");return r.default.createElement(d,{cursor:"pointer",onClick:function(){return e.updateAttribute("expanded",!t)},alignSelf:"center"},r.default.createElement(l.default,{svg:i.default,color:"textLite",width:"7.5px",height:"5px",rotate:t?2:0}),r.default.createElement(o.TextSmall,{color:"textLite"},t?"Collapse":"Expand"),r.default.createElement(l.default,{svg:i.default,color:"textLite",width:"7.5px",height:"5px",rotate:t?2:0}))};t.default=p},13289:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=m(n(67294)),a=n(15557),o=m(n(817)),i=m(n(39757)),u=m(n(38566)),l=m(n(51081)),c=n(41145),s=m(n(78122)),f=m(n(50657)),d=m(n(58768)),p=n(93501);function m(e){return e&&e.__esModule?e:{default:e}}function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v.apply(this,arguments)}var g=function(e){return r.default.createElement(a.Flex,v({border:{side:"top",color:"borderSecondary"},"data-testid":"chartLegend",column:!0},e))};t.Container=g;var h=function(){return(0,c.useAttributeValue)("enabledHeightResize")?r.default.createElement(a.Box,{position:"absolute",right:0,bottom:"-4px"},r.default.createElement(l.default,null)):null},b=function(){var e=(0,c.useAttributeValue)("showingInfo"),t=(0,c.useAttributeValue)("expanded"),n=(0,c.useAttributeValue)("expandable"),l=(0,p.useIsHeatmap)();return r.default.createElement(g,null,r.default.createElement(s.default,null),!e&&r.default.createElement(r.default.Fragment,null,l&&r.default.createElement(i.default,null),r.default.createElement(a.Flex,{alignItems:"center"},r.default.createElement(u.default,null),r.default.createElement(o.default,null)),t&&r.default.createElement(f.default,null)),n?r.default.createElement(a.Flex,{flex:!0,position:"relative",alignItems:"center",justifyContent:"center",border:{side:"top",color:"borderSecondary"}},r.default.createElement(d.default,null),r.default.createElement(h,null)):r.default.createElement(h,null))};t.default=b},65855:function(e,t,n){"use strict";t.ZP=t.x1=void 0;var r=h(n(67294)),a=v(n(11557)),o=v(n(36657)),i=v(n(70486)),u=n(54576),l=v(n(79779)),c=v(n(1496)),s=h(n(44473)),f=v(n(18947)),d=v(n(36864)),p=v(n(13289)),m=["hasHeader","hasFooter","hasFilters","height","uiName"];function v(e){return e&&e.__esModule?e:{default:e}}function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}var y=(0,r.forwardRef)((function(e,t){var n=e.hasHeader,i=void 0===n||n,v=e.hasFooter,g=void 0===v||v,h=e.hasFilters,y=void 0===h||h,w=e.height,O=e.uiName,x=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,m),j=(0,u.useChart)(),k=(0,u.useAttributeValue)("showingInfo"),E=(0,u.useAttributeValue)("sparkline"),P=(0,o.default)({onHover:j.focus,onBlur:j.blur,isOut:function(e){return!e||!e.closest("[data-toolbox]")&&!e.closest("[data-testid=chart]")}},[j]),S=(0,a.default)((function(e){P.current=e,t.current=e}))[1];return r.default.createElement(d.default,b({ref:S},E&&{border:!1},x,{height:w}),i&&r.default.createElement(l.default,null),y&&r.default.createElement(f.default,null),r.default.createElement(s.ContentWrapper,null,k?r.default.createElement(c.default,null):r.default.createElement(s.default,{uiName:O})),g&&r.default.createElement(p.default,null))}));t.x1=y;var w=(0,i.default)(y);t.ZP=w},78122:function(e,t,n){"use strict";t.__esModule=!0,t.getDateDiff=t.default=void 0;var r=u(n(67294)),a=u(n(32855)),o=n(54576),i=n(90833);function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){f(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e){var t=e.timestamp,n=(0,o.useFormatTime)(t),a=(0,o.useFormatDate)(t);return r.default.createElement(i.TextNano,{color:"textDescription","data-testid":"chartIndicator-dateTime-latest-value"},a," \u2022 ",n)},p=function(){var e,t=(0,o.useChart)(),n=((0,o.useAttributeValue)("hoverX")||[])[0],u=(0,o.usePayload)().data;if(!u.length)return null;var l=null==(e=u[n?t.getClosestRow(n):u.length-1])?void 0:e[0];return r.default.createElement(a.default,{gap:1},r.default.createElement(i.TextNano,{color:"textLite"},n?"Hovering":"Latest",":"),!!l&&r.default.createElement(d,{timestamp:l}))},m=86400,v=3600,g=function(e,t){var n=a=t-e,r=Math.floor(n/m),a=n-r*m,o=Math.floor(a/v);a-=o*v;var i=Math.floor(a/60);return[{value:r,unit:"d",check:function(){return n>=m&&!!r}},{value:o,unit:"h",check:function(){return n>=v&&!!o}},{value:i,unit:"m",check:function(){return!!i}},{value:a-=60*i,unit:"s",check:function(){return n<v&&!!a}}].reduce((function(e,t){var n=function(e){var t,n=e.value,r=e.unit,a=e.check,o=e.hasPrev;if(null!=a&&a())return""+(o?(t=n)>9?t:"0"+t:n)+r}(s(s({},t),{},{hasPrev:!!e[e.length-1]}));return n&&e.push(n),e}),[])};t.getDateDiff=g;var h=function(e){var t=e.date,n=e.after,u=e.before,l=(0,o.useFormatTime)(1e3*n),c=(0,o.useFormatTime)(1e3*u),s=g(n,u);return r.default.createElement(a.default,{gap:1},r.default.createElement(i.TextNano,{color:"textDescription"},t," \u2022"),r.default.createElement(i.TextNano,{color:"textLite"},l," \u2192 ",c),r.default.createElement(i.TextNano,{color:"textDescription"},"\u2022 ",s))},b=function(e){var t=e.afterDate,n=e.beforeDate,u=e.after,l=e.before,c=(0,o.useFormatTime)(1e3*u),s=(0,o.useFormatTime)(1e3*l),f=g(u,l);return r.default.createElement(a.default,{gap:1},r.default.createElement(i.TextNano,{color:"textDescription"},t," \u2022"),r.default.createElement(i.TextNano,{color:"textLite"},c," \u2192"),r.default.createElement(i.TextNano,{color:"textDescription"},n," \u2022"),r.default.createElement(i.TextNano,{color:"textLite"},s),r.default.createElement(i.TextNano,{color:"textDescription"},"\u2022 ",f))},y=function(e){var t=e.after,n=e.before,a=(0,o.useFormatDate)(1e3*n),i=(0,o.useFormatDate)(1e3*t);return a===i?r.default.createElement(h,{date:i,after:t,before:n}):r.default.createElement(b,{afterDate:i,beforeDate:a,after:t,before:n})},w=function(e){var t,n=(0,o.useChart)(),u=(0,o.useAttributeValue)("overlays").highlight,c=null==u?void 0:u.range,s=null!=(t=null==u?void 0:u.moveX)?t:{},f=s.after,d=s.before;return r.default.createElement(a.default,l({padding:[1],gap:1,justifyContent:"between",flex:!0},e),c?r.default.createElement(a.default,{onClick:function(){d&&f&&n.moveX(f,d)},cursor:"pointer",gap:1,padding:[0,11,0]},r.default.createElement(i.TextNano,{color:"textLite"},"Highlight:"),r.default.createElement(y,{after:c[0],before:c[1]})):r.default.createElement("div",null),r.default.createElement(p,null))};t.default=w},3171:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.SkeletonDimension=t.EmptyDimension=void 0;var r,a=v(n(67294)),o=n(60677),i=n(15557),u=v(n(12460)),l=v(n(43946)),c=v(n(58358)),s=v(n(81743)),f=(r=n(9033))&&r.__esModule?r:{default:r},d=n(54576),p=n(93501);function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}var h=(0,a.forwardRef)((function(e,t){return a.default.createElement(i.Flex,g({ref:t,width:{min:22,max:50},flex:!1,gap:1,"data-testid":"chartLegendDimension"},e))}));t.SkeletonDimension=function(){var e=(0,o.useTheme)();return a.default.createElement(h,null,a.default.createElement(u.Color,{bg:(0,i.getColor)("placeholder")({theme:e})}),a.default.createElement(i.Flex,{flex:!0,gap:1,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(i.Flex,{height:"10px",width:"76px",background:"borderSecondary",round:!0}),a.default.createElement(i.Flex,{height:"10px",width:"34px",background:"borderSecondary",round:!0,"data-testid":"chartLegendDimension-valueContainer"})))};t.EmptyDimension=function(){var e=(0,o.useTheme)();return a.default.createElement(h,null,a.default.createElement(u.Color,{bg:(0,i.getColor)("placeholder")({theme:e})}),a.default.createElement(i.Flex,{flex:!0,gap:1,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(l.Name,null,"No data"),a.default.createElement(c.Value,null,"-")))};var b=function(e){var t=e.id,n=(0,d.useLatestValue)(t,{valueKey:"arp"});return a.default.createElement(i.ProgressBar,{height:.5,color:"anomalyText",width:Math.abs(n)+"%"})},y=function(e){return a.default.createElement(i.Flex,g({},s.tooltipStyleProps,e,{column:!0,gap:1}))},w=function(e){var t=e.id,n=e.name,r=(0,d.useUnits)(),o=(0,d.useLatestValue)(t);return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.TextSmall,{color:"bright",strong:!0,wordBreak:"break-word"},n),a.default.createElement(i.TextSmall,{color:"bright",whiteSpace:"nowrap"},o," ",r))},O=(0,a.forwardRef)((function(e,t){var n=e.id,r=(0,d.useVisibleDimensionId)(n),o=(0,d.useChart)(),m=o.getDimensionName(n),v=(0,p.useIsHeatmap)();return a.default.createElement(h,{ref:t,opacity:r?null:"weak",cursor:"pointer",onClick:function(e){var t=e.shiftKey||e.ctrlKey||e.metaKey;o.toggleDimensionId(n,{merge:t})},"data-track":o.track("dimension-"+m)},!v&&a.default.createElement(u.default,{id:n}),a.default.createElement(s.default,{Content:y,content:r?a.default.createElement(w,{id:n,name:m}):null},a.default.createElement(i.Flex,{flex:!0,column:!0,overflow:"hidden","data-testid":"chartLegendDimension-details"},a.default.createElement(l.default,{id:n,maxLength:32,noTooltip:!0}),a.default.createElement(b,{id:n}),a.default.createElement(i.Flex,{gap:1,alignItems:"end","data-testid":"chartLegendDimension-valueContainer",flex:!0},a.default.createElement(c.default,{id:n,strong:!0,visible:r,Component:i.TextBig}),a.default.createElement(f.default,{visible:r})))))}));t.default=O},39757:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(60677)),o=l(n(32855)),i=n(90833),u=n(54576);function l(e){return e&&e.__esModule?e:{default:e}}var c=(0,a.default)(o.default).attrs({width:"320px",height:"12px",round:!0}).withConfig({displayName:"heatmapColors__LinearColorScaleBar",componentId:"sc-13fexd8-0"})(["background:linear-gradient( to right,rgb(62,73,137),rgb(49,104,142),rgb(38,130,142),rgb(31,158,137),rgb(53,183,121),rgb(110,206,88),rgb(181,222,43),rgb(253,231,37) );"]),s=function(){var e=(0,u.useChart)(),t=(0,u.useAttributeValue)("max"),n=(0,u.useUnitSign)();return(0,u.useAttributeValue)("theme"),r.default.createElement(o.default,{"data-testid":"heatmap-legend",gap:2,alignItems:"center",padding:[2,11]},r.default.createElement(i.TextNano,null,e.getConvertedValue(0)," ",n),r.default.createElement(c,null),r.default.createElement(i.TextNano,null,e.getConvertedValue(t)," ",n))};t.default=s},817:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=v(n(67294)),a=p(n(60677)),o=n(42189),i=p(n(32855)),u=p(n(67679)),l=p(n(36179)),c=p(n(84436)),s=n(54576),f=v(n(3171)),d=p(n(3701));function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g.apply(this,arguments)}function h(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var y=(0,a.default)(i.default).attrs({gap:1,padding:[0,0,2],alignItems:"center",flex:!0,basis:"40px","data-testid":"chartLegend"}).withConfig({displayName:"legend__Container",componentId:"sc-czwham-0"})(["overflow-x:auto;overflow-x:overlay;height:45px;::-webkit-scrollbar{height:6px;}"]),w=Array.from(Array(5)),O=function(){return r.default.createElement(r.Fragment,null,w.map((function(e,t){return r.default.createElement(f.SkeletonDimension,{key:t})})))},x=(0,r.memo)((function(e){var t=e.setRef,n=(0,s.useDimensionIds)();return n?r.default.createElement(r.Fragment,null,n.map((function(e){return r.default.createElement(f.default,{ref:t,key:e,id:e})}))):null})),j=function(e){var t=(0,s.useDimensionIds)(),n=(0,s.useChart)(),a=(0,s.useInitialLoading)(),p=(0,s.useEmpty)(),m=(0,s.useAttributeValue)("active"),v=(0,r.useRef)(null),b=(0,r.useRef)([]),w=(0,c.default)(v,b,[],!0),j=w[0],k=w[1],E=w[2];(0,r.useEffect)((function(){v.current&&m&&v.current.scrollTo({left:n.getAttribute("legendScroll")})}),[v.current,m]),(0,r.useEffect)((function(){var e=function(){var e,t=((e=v.current)?{x:e.scrollLeft}:{x:0}).x;n.updateAttribute("legendScroll",t),E()};e();var t=(0,o.debounce)(300,e);if(t(),window.addEventListener("resize",t),v.current)return v.current.addEventListener("scroll",e),function(){window.removeEventListener("resize",t),v.current&&v.current.removeEventListener("scroll",e)}}),[v.current]);var P=(0,r.useCallback)((function(e){e&&(b.current.includes(e)||(b.current=[].concat(h(b.current),[e])),t.length<b.current.length&&(b.current=b.current.filter((function(t){return t.getAttribute("id")===e.getAttribute("id")}))))}),[t.length]);return r.default.createElement(r.default.Fragment,null,j&&r.default.createElement(i.default,{"data-testid":"filterTray-arrowLeft",cursor:"pointer",onClick:function(e){e.preventDefault();var t=v.current;t.scrollTo({left:t.scrollLeft-100,behavior:"smooth"})},padding:[2]},r.default.createElement(d.default,{svg:u.default,color:"key",size:"8px"})),r.default.createElement(y,g({ref:v},e,{"data-track":n.track("legend")}),!a&&!p&&r.default.createElement(x,{setRef:P}),a&&r.default.createElement(O,null),!a&&p&&r.default.createElement(f.EmptyDimension,null)),k&&r.default.createElement(i.default,{"data-testid":"filterTray-arrowRight",cursor:"pointer",onClick:function(e){e.preventDefault();var t=v.current;t.scrollTo({left:t.scrollLeft+100,behavior:"smooth"})},padding:[2]},r.default.createElement(d.default,{svg:l.default,color:"key",size:"8px"})))};t.default=j},13247:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=n(54576),o=l(n(213)),i=n(90833);function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}var c={critical:"error",clear:"success"},s=function(e){var t=e.id,n=(0,a.useAttributeValue)("overlays")[t],u=n.status,l=n.value,s=c[u]||u,f=(0,o.getColors)(s).color;return r.default.createElement(o.default,{type:s,noBorder:!0},r.default.createElement(i.TextSmall,{color:f},"Triggered value:"," ",r.default.createElement(i.TextSmall,{strong:!0,color:f},l)))},f=(0,r.memo)(s);t.default=f},55823:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=n(54576),o=l(n(213)),i=n(90833);function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function l(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}var c={critical:"error",clear:"success"},s=function(e){var t=e.id,n=(0,a.useAttributeValue)("overlays")[t],u=n.status,l=n.valueTriggered,s=c[u]||u,f=(0,o.getColors)(s).color;return r.default.createElement(o.default,{type:s,noBorder:!0},r.default.createElement(i.TextSmall,{color:f},"Triggered value:"," ",r.default.createElement(i.TextSmall,{strong:!0,color:f},l)))},f=(0,r.memo)(s);t.default=f},23708:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(67294)),a=s(n(60677)),o=n(90833),i=n(54576),u=s(n(39434)),l=s(n(81743)),c=["field","normalize"];function s(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d=(0,a.default)(u.default).withConfig({displayName:"chartName__StyledShortener",componentId:"sc-q7d2de-0"})(["text-shadow:0 18px 28px rgba(9,30,66,0.15),0 0 1px rgba(9,30,66,0.31);pointer-events:none;"]),p=function(e){var t=e.field,n=e.normalize,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),u=(0,i.useAttributeValue)(t),s=(0,i.useChart)();return n&&(u=n(u,s.getAttributes())),u?r.default.createElement(l.default,{content:u},r.default.createElement(d,f({color:"key",text:u,Component:o.TextSmall},a))):null};t.default=p},59204:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.alignment=void 0;var r,a,o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),i=(r=n(60677))&&r.__esModule?r:{default:r},u=n(15557),l=n(54576),c=["id","align","right","fixed","children","uiName"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}var d={chartMiddle:"chartMiddle",elementMiddle:"elementMiddle",elementRight:"elementRight",elementLeft:"elementLeft",elementFull:"elementFull"};t.alignment=d;var p=((a={})[d.chartMiddle]=function(e){var t,n=e.from,r=e.chartWidth,a=e.element;return[60,Math.min(n-24,60+r/2+(null==(t=a.firstChild)?void 0:t.offsetWidth)/2)]},a[d.chartLeft]=function(e){var t,n=e.chartWidth;return[0,(null==(t=e.element.firstChild)?void 0:t.offsetWidth)-n]},a[d.elementMiddle]=function(e){var t,n=e.from;return[n,n+e.width/2+(null==(t=e.element.firstChild)?void 0:t.offsetWidth)/2]},a[d.elementRight]=function(e){var t=e.from;return[t,t+e.width]},a[d.elementLeft]=function(e){var t=e.from;return[t,t]},a),m=(0,i.default)(u.Flex).withConfig({displayName:"container__HorizontalContainer",componentId:"sc-n9fh2a-0"})(["position:absolute;",";",";",";",";",";",";overflow:hidden;"],(function(e){return e.noTransform?"":"transform: translateY(-50%)"}),(function(e){var t=e.top;return t&&"top: "+t+";"}),(function(e){var t=e.bottom;return t&&"bottom: "+t+";"}),(function(e){var t=e.left;return t&&"left: "+t+";"}),(function(e){var t=e.right;return t&&"right: "+t+";"}),(function(e){return e.noEvents&&"pointer-events: none;"})),v=function(e){var t=e.id,n=e.align,r=e.right,a=void 0===r?0:r,i=e.fixed,u=e.children,s=e.uiName,v=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),g=(0,o.useRef)(),h=(0,o.useState)(),b=h[0],y=h[1],w=(0,l.useChart)(),O=function(e){if(w&&w.getUI(s)&&e&&g.current){var t=function(e,t,n,r,a){void 0===e&&(e=d.elementMiddle);var o=n.from,i=n.width,u=t.getUI(a).getChartWidth();return(p[e]||p.elementMiddle)({from:o,width:i,chartWidth:u,element:r})}(n,w,e,g.current,s),r=t[1];g.current.style.right="calc(100% - "+(r+a)+"px)"}};return(0,o.useLayoutEffect)((function(){return!i&&w.getUI(s).on("overlayedAreaChanged:"+t,(function(e){O(e),y((function(t){return!!t!==!!e?e:t}))}))}),[]),(0,o.useLayoutEffect)((function(){return!i&&O(b)}),[b]),b||i?o.default.createElement(m,f({ref:g},v),u):null},g=(0,o.memo)(v);t.default=g},10253:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Period=void 0;var r=p(n(67294)),a=p(n(60677)),o=p(n(32855)),i=p(n(48196)),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(3701)),l=p(n(81743)),c=n(54576),s=n(78122),f=n(90833);function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e){return e&&e.__esModule?e:{default:e}}var m=(0,a.default)(u.Button).withConfig({displayName:"correlation__CorrelationButton",componentId:"sc-a0l0u6-0"})(["pointer-events:all;"]);t.Period=function(e){var t=e.id,n=(0,c.useAttributeValue)("overlays")[t].range,a=n[0],o=n[1],i=(0,s.getDateDiff)(a,o);return r.default.createElement(f.TextNano,{strong:!0},i)};var v=function(e){var t=e.id,n=(0,c.useAttributeValue)("overlays")[t].range,a=n[0],s=function(e){return e<15?"requires 15 secs minimum selection":""}(n[1]-a),f=(0,c.useChart)();return r.default.createElement(l.default,{content:s?"Metrics correlation: "+s:"Run metrics correlation"},r.default.createElement(o.default,null,r.default.createElement(m,{"data-track":f.track("metrics-correlation"),icon:r.default.createElement(u.default,{svg:i.default,size:"20px"}),onClick:function(){return f.sdk.trigger("correlation",f,n)},"data-testid":"highlight-correlations",disabled:!!s})))};t.default=v},9745:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Divider=void 0;var r=d(n(67294)),a=s(n(60677)),o=s(n(32855)),i=n(90833),u=n(90509),l=d(n(10253)),c=n(54576);function s(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}var m=(0,a.default)(o.default).attrs({justifyContent:"center",alignItems:"center",gap:2,height:"40px",alignSelf:"center",round:!0,width:{min:"70px"},padding:[1,2],border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"highlight__StyledHighlight",componentId:"sc-e18ttp-0"})(["background-color:","80;"],(0,u.getColor)("mainBackground")),v=(0,a.default)(o.default).withConfig({displayName:"highlight__Divider",componentId:"sc-e18ttp-1"})(["background:",";height:16px;width:1px;"],(0,u.getColor)("borderSecondary"));t.Divider=v;var g=(0,r.memo)((function(e){return r.default.createElement(o.default,{column:!0,gap:[.5]},r.default.createElement(i.TextNano,{strong:!0,textTransform:"uppercase",color:"textLite"},"Range"),r.default.createElement(l.Period,e))})),h=function(e){var t=e.id,n=e.correlationProps,a=(0,c.useAttributeValue)("hasCorrelation");return(0,c.useAttributeValue)("focused")?r.default.createElement(m,null,r.default.createElement(g,{id:t}),a?r.default.createElement(r.default.Fragment,null,r.default.createElement(v,null),r.default.createElement(l.default,p({id:t},n))):null):null},b=(0,r.memo)(h);t.default=b},35815:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(54576),i=(r=n(67148))&&r.__esModule?r:{default:r},u=["type"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=function(e){var t=e.uiName,n=(0,o.useAttributeValue)("overlays");return a.default.createElement(a.Fragment,null,Object.keys(n).map((function(e){var r=n[e],o=r.type,l=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(r,u),s=i.default[o];return a.default.createElement(s,c({key:e,id:e,uiName:t},l))})))},f=(0,a.memo)(s);t.default=f},51399:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=l(n(67294)),a=l(n(60677)),o=n(15557),i=n(54576),u=["dimensionId","textProps"];function l(e){return e&&e.__esModule?e:{default:e}}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}var s=(0,a.default)(o.Text).withConfig({displayName:"latestValue__StrokeLabel",componentId:"sc-1x8pqx7-0"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary"),(0,o.getColor)("borderSecondary")),f=(0,a.default)(o.Flex).withConfig({displayName:"latestValue__StyledFlex",componentId:"sc-1x8pqx7-1"})(["pointer-events:none;"]),d={color:"text",whiteSpace:"nowrap"},p=function(e){var t=e.dimensionId,n=e.textProps,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u),o=(0,i.useUnitSign)(),l=(0,i.useLatestConvertedValue)(t);return l?r.default.createElement(f,c({alignItems:"baseline",gap:1},a),r.default.createElement(s,c({fontSize:"2.5em",strong:!0},d,n),l),r.default.createElement(s,c({fontSize:"1.3em"},d,n),o)):r.default.createElement(s,c({fontSize:"2.5em",strong:!0},d,n,a),"string"!==typeof l?"Loading...":"No data")};t.default=p},29270:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Processing=void 0;var r=c(n(67294)),a=c(n(60677)),o=c(n(32855)),i=n(90833),u=n(54576),l=["defaultValue","uiName"];function c(e){return e&&e.__esModule?e:{default:e}}var s=(0,a.default)(o.default).attrs({column:!0,round:!0,border:{side:"all",color:"borderSecondary"},gap:1,padding:[1,2],flex:!1}).withConfig({displayName:"proceeded__ProceededContainer",componentId:"sc-ac5spo-0"})(["direction:initial;"]),f=function(e){var t=e.defaultValue,n=e.uiName,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,l),o=(0,u.useChart)().getUI(n).getChartWidth(),c=(0,u.useChartError)();return o<240?null:c&&t?r.default.createElement(s,a,r.default.createElement(i.Text,{textAlign:"center",textTransform:"firstLetter"},c||t)):null},d=(0,a.default)(o.default).withConfig({displayName:"proceeded__CenterContainer",componentId:"sc-ac5spo-1"})(["z-index:60000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);"]);t.Processing=function(){return r.default.createElement(d,null,r.default.createElement(f,{defaultValue:"Processing"}))};var p=f;t.default=p},67148:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=w(n(67294)),a=w(n(60677)),o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(59204)),i=w(n(13247)),u=w(n(55823)),l=w(n(9745)),c=w(n(29270)),s=w(n(23708)),f=w(n(51399)),d=w(n(24018)),p=n(54576),m=["id"],v=["id"],g=["id"],h=["id","uiName"],b=["containerProps"];function y(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}function w(e){return e&&e.__esModule?e:{default:e}}function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},O.apply(this,arguments)}function x(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var j=(0,a.default)(d.default).withConfig({displayName:"types__NoEventsContainer",componentId:"sc-19vz950-0"})(["pointer-events:none;"]),k={alarm:function(e){var t=e.id,n=x(e,m);return r.default.createElement(o.default,O({id:t,top:"20px",margin:[0,2,0,0],align:o.alignment.elementLeft},n),r.default.createElement(i.default,{id:t}))},alarmRange:function(e){var t=e.id,n=x(e,v);return r.default.createElement(o.default,O({id:t,top:"20px",margin:[0,2,0,0],align:o.alignment.elementLeft},n),r.default.createElement(u.default,{id:t}))},highlight:function(e){var t=e.id,n=x(e,g);return(0,p.useAttributeValue)("sparkline")?null:r.default.createElement(o.default,O({id:t,align:o.alignment.elementRight,bottom:"25px",right:100},n,{noEvents:!0}),r.default.createElement(l.default,{id:t}))},proceeded:function(e){var t=e.id,n=e.uiName,a=x(e,h);return r.default.createElement(o.default,O({id:t,top:"50%",align:o.alignment.chartMiddle,uiName:n},a),r.default.createElement(c.default,{id:t,uiName:n}))},name:function(e){var t=e.containerProps,n=x(e,b);return r.default.createElement(j,O({isAbsolute:!0,position:"top",margin:[2,0,0,0]},t),r.default.createElement(s.default,n))},latestValue:function(e){return r.default.createElement(j,{isAbsolute:!0,position:"center"},r.default.createElement(f.default,e))}};t.default=k},32931:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(67294)),a=h(n(60677)),o=n(15557),i=g(n(12460)),u=h(n(43946)),l=g(n(58358)),c=n(54576),s=n(35890),f=n(93501),d=n(19151),p=["children","fractionDigits"],m=["children","showFull"];function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function g(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function h(e){return e&&e.__esModule?e:{default:e}}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}function y(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}var w=(0,a.default)(o.Flex).attrs({position:"relative","data-testid":"chartPopover-dimension",padding:[1,0]}).withConfig({displayName:"dimension__GridRow",componentId:"sc-adzl1v-0"})(["display:contents;"]),O=(0,a.default)(i.ColorBar).attrs({position:"absolute",top:1,left:0,backgroundOpacity:.4,round:.5}).withConfig({displayName:"dimension__ColorBackground",componentId:"sc-adzl1v-1"})([""]),x={ANOMALY_RATE:"arp",default:"value"},j=function(e){var t=e.children,n=e.fractionDigits,a=void 0===n?0:n,i=y(e,p),u=t.toString().split("."),c=u[0],s=u[1];return r.default.createElement(o.Flex,{alignItems:"center",justifyContent:"end"},r.default.createElement(l.Value,b({},i,{textAlign:"right"}),c),"undefined"!==typeof s&&r.default.createElement(l.Value,i,"."),r.default.createElement(l.Value,b({as:o.Flex,flex:!1,width:1.6*a},i,{textAlign:"left"}),s))},k=function(e){var t=e.children,n=e.showFull,a=y(e,m);return r.default.createElement(o.Flex,{gap:1,justifyContent:"end"},Object.keys(t).map((function(e){return r.default.createElement(o.Flex,{key:e,border:{size:"1px",side:"all",color:t[e]},round:!0,flex:!1,padding:[0,.5]},r.default.createElement(l.Value,b({},a,{color:t[e]}),n&&s.labels[e]||e))})))},E=function(e){var t=e.id,n=e.strong,a=e.chars,s=e.rowFlavour,p=(0,c.useVisibleDimensionId)(t),m=(0,c.useChart)().getAttribute("unitsConversionFractionDigits"),v=(0,f.useIsHeatmap)();return r.default.createElement(w,{opacity:p?null:"weak"},r.default.createElement(o.Flex,{alignItems:"center",gap:1,position:"relative"},r.default.createElement(O,{id:t,valueKey:x[s]||x.default,height:"18px"},!v&&r.default.createElement(i.default,{id:t})),r.default.createElement(u.default,{padding:[1,2],flex:!0,id:t,strong:n,maxLength:a,noTooltip:!0,color:n?"textFocus":"text"})),r.default.createElement(l.default,{id:t,strong:n,visible:p,Component:j,fractionDigits:m,color:s===d.rowFlavours.default?n?"textFocus":"text":"textLite"}),r.default.createElement(l.default,{id:t,strong:n,visible:p,valueKey:"arp",Component:j,fractionDigits:2,color:s===d.rowFlavours.ANOMALY_RATE?"anomalyTextFocus":"anomalyText"}),r.default.createElement(l.default,{textAlign:"right",id:t,strong:n,visible:p,valueKey:"pa",Component:k,color:s===d.rowFlavours.ANNOTATIONS?n?"textFocus":"text":"textLite",showFull:s===d.rowFlavours.ANNOTATIONS}))};t.default=E},19151:function(e,t,n){"use strict";t.__esModule=!0,t.rowFlavours=t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=n(15557),i=n(54576),u=n(90833),l=d(n(9033)),c=d(n(8051)),s=d(n(60616)),f=d(n(32931));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var m=(0,a.default)(o.Flex).attrs({round:!0,border:{side:"all",color:"elementBackground"},width:{min:"196px",max:"80vw"},background:"dropdown",column:!0,padding:[4],gap:1}).withConfig({displayName:"dimensions__Container",componentId:"sc-172on4u-0"})(["box-shadow:0px 8px 12px rgba(9,30,66,0.15),0px 0px 1px rgba(9,30,66,0.31);"]),v=a.default.div.withConfig({displayName:"dimensions__Grid",componentId:"sc-172on4u-1"})(["display:grid;width:100%;grid-template-columns:minmax(150px,max-content) 60px 60px minmax(80px,auto);align-items:center;"]),g=a.default.div.withConfig({displayName:"dimensions__GridHeader",componentId:"sc-172on4u-2"})(["display:contents;"]),h=[null,null],b=function(){var e=Math.floor((window.innerHeight-500)/15)||16;return e<5?5:10},y=function(){return b()/2},w={ANOMALY_RATE:"ANOMALY_RATE",ANNOTATIONS:"ANNOTATIONS",default:"VALUE"};t.rowFlavours=w;var O={ANOMALY_RATE:"anomalyDesc",ANNOTATIONS:"annotationsDesc",default:"valueDesc"},x=function(e){var t=e.uiName,n=(0,i.useChart)(),a=(0,i.useAttributeValue)("hoverX")||h,d=a[0],p=a[1],x=(0,r.useMemo)((function(){var e=n.getClosestRow(d),t=n.onHoverSortDimensions(e,O[p]||O.default)||[];n.getAttribute("selectedDimensions").length>0&&(t=t.filter((function(e){return n.isDimensionVisible(e)})));var r=t.findIndex((function(e){return e===p})),a=t.length,o=Math.floor(function(e,t){return e<b()||t<y()?0:t>e-y()?t-(y()+(e-t)):t-y()}(a,r)),i=Math.ceil(function(e,t){return e<b()?e:t<y()?t+y()+(y()-t):t>e-y()?e:t+y()}(a,r));return[o,i,a,t.slice(o,i)]}),[n,p,d]),j=x[0],k=x[1],E=x[2],P=x[3],S=(0,i.useOnResize)(t),C=S.parentWidth,_=S.width,M=.9*(C>_?C:_),D=w[p]||w.default;return r.default.createElement(m,{"data-testid":"chartPopover-dimensions",gap:2},r.default.createElement(o.Flex,{column:!0,gap:1},d&&r.default.createElement(s.default,{value:d}),r.default.createElement(c.default,null)),r.default.createElement(o.Flex,{flex:!1,height:3},j>0&&r.default.createElement(u.TextNano,{color:"textLite"},"\u2191",j," more values")),r.default.createElement(v,{gap:1,column:!0},r.default.createElement(g,null,r.default.createElement(u.TextMicro,{strong:!0},"Dimension"),r.default.createElement(u.TextMicro,{color:D===w.default?"text":"textLite",textAlign:"right"},"Value","heatmap"!==n.getAttribute("chartType")&&r.default.createElement(r.default.Fragment,null," ",r.default.createElement(l.default,{visible:!0,strong:D===w.default,color:D===w.default?"text":"textLite"}))),r.default.createElement(u.TextMicro,{strong:D===w.ANOMALY_RATE,color:D===w.ANOMALY_RATE?"text":"textLite",textAlign:"right"},"AR %"),r.default.createElement(u.TextMicro,{strong:D===w.ANNOTATIONS,color:D===w.ANNOTATIONS?"text":"textLite",textAlign:"right"},"Info")),P.map((function(e){return r.default.createElement(f.default,{key:e,id:e,strong:p===e,chars:M<600?50:100,rowFlavour:D})}))),r.default.createElement(o.Flex,{flex:!1,height:3},k<E&&r.default.createElement(u.TextNano,{color:"textLite",margin:[2,0,0]},"\u2193",E-k," more values")))},j=(0,r.memo)(x);t.default=j},98079:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(32855)),o=n(24298),i=n(54576),u=d(n(73935)),l=d(n(82633)),c=d(n(86518)),s=d(n(91183)),f=d(n(19151));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var m={right:"left",bottom:"top"},v={right:"left",top:"bottom"},g={left:"right",bottom:"top"},h={left:"right",top:"bottom"},b=function(e){var t=e.uiName,n=(0,i.useChart)(),d=(0,r.useRef)(),p=(0,r.useState)(),b=p[0],y=p[1],w=(0,r.useRef)(),O=(0,r.useRef)(),x=(0,r.useState)(!1),j=x[0],k=x[1],E=(0,r.useState)(m),P=E[0],S=E[1];w.current=b,O.current=(0,c.default)(b,d,P,"width"),(0,r.useEffect)((function(){return(0,o.unregister)(n.getUI(t).on("mousemove",(function(e){if(!n.getAttribute("panning")&&!n.getAttribute("highlighting")){var t=e.offsetX||e.layerX,r=e.offsetY||e.layerY;if(k(!0),w.current){w.current.style.left=t+"px",w.current.style.top=r+"px",O.current();var a=window.innerHeight,o=window.innerWidth,i=d.current.getBoundingClientRect(),u=i.width,l=i.height;S(function(e,t){return e&&t?m:e?v:t?g:h}(t+u>o,r+l>a))}}})),n.getUI(t).on("mouseout",(function(){return k(!1)})),n.onAttributeChange("panning",(function(e){return e&&k(!1)})),n.onAttributeChange("highlighting",(function(e){return e&&k(!1)})))}),[n]);var C=(0,s.default)();return j?r.default.createElement(r.Fragment,null,r.default.createElement(a.default,{ref:function(e){return y(e)},position:"absolute"}),u.default.createPortal(r.default.createElement(l.default,{"data-toolbox":!0,margin:[P.top?2:-2,P.right?-2:2],ref:d,width:{max:"100%"},column:!0,"data-testid":"drop",sx:{pointerEvents:"none"}},r.default.createElement(f.default,{uiName:t,"data-testid":"chartPopover"})),C)):null};t.default=b},60616:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var u=a?Object.getOwnPropertyDescriptor(e,o):null;u&&(u.get||u.set)?Object.defineProperty(r,o,u):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(90833),o=n(54576);function i(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}var u=function(e){var t=e.value,n=(0,o.useChart)(),i=(0,r.useMemo)((function(){return n.formatDate(t)+" \u2022 "+n.formatTime(t)}),[t]);return r.default.createElement(a.TextMicro,{color:"textDescription","data-testid":"chartPopover-timestamp"},i)};t.default=u},8051:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r,a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),o=n(90833),i=(r=n(32855))&&r.__esModule?r:{default:r},u=n(54576);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}var c=function(){var e=(0,u.useAttributeValue)("viewUpdateEvery"),t=(0,u.useAttributeValue)("updateEvery"),n=(0,u.useAttributeValue)("groupingMethod");return a.default.createElement(a.Fragment,null,a.default.createElement(i.default,{gap:1,"data-testid":"chartPopover-collection"},a.default.createElement(o.TextMicro,{color:"textLite"},"Granularity:"),a.default.createElement(o.TextMicro,{color:"textDescription"},t,"s")),e!==t&&a.default.createElement(i.default,{gap:1,"data-testid":"chartPopover-collection"},a.default.createElement(o.TextMicro,{color:"textLite"},"View point:"),a.default.createElement(o.TextMicro,{color:"textDescription"},n," ",e,"s")))};t.default=c},51081:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=l(n(60677)),o=l(n(259)),i=n(54576),u=l(n(3701));function l(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}var f=(0,a.default)(u.default).attrs({color:"textLite",hoverColor:"textDescription",svg:o.default,size:"16px",alignSelf:"end"}).withConfig({displayName:"resize__Drag",componentId:"sc-v4rzku-0"})(["cursor:ns-resize;"]),d=function(e){e.preventDefault(),e.stopPropagation()},p=function(e){var t=(0,i.useChart)(),n=function(e){e.preventDefault(),t.trigger("resizeYStart");var n="touchstart"===e.type?e.touches[0].clientY:e.clientY,r=function(e){var r=e-n;t.trigger("resizeYMove",r)},a=function(e){return r(e.clientY)},o=function(e){return r(e.touches[0].clientY)};"touchstart"===e.type?(document.addEventListener("touchmove",o),document.addEventListener("touchend",(function e(){document.removeEventListener("touchmove",o),document.removeEventListener("touchend",e),t.trigger("resizeYEnd")}))):(document.addEventListener("mousemove",a),document.addEventListener("mouseup",(function e(){document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",e),t.trigger("resizeYEnd")})))};return r.default.createElement(f,s({onDoubleClick:d,onMouseDown:n,onTouchStart:n,alignSelf:"end",margin:[0,0,0,1]},e))},m=(0,r.memo)(p);t.default=m},21040:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=o(n(67294)),a=o(n(32855));function o(e){return e&&e.__esModule?e:{default:e}}var i=function(e){var t=e.disabled;return r.default.createElement(a.default,{width:"1px",background:t?"disabled":"borderSecondary"})};t.default=i},13828:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=f(n(67294)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(60677)),o=n(15557),i=n(54576),u=f(n(3701)),l=f(n(41330)),c=["height"];function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}function f(e){return e&&e.__esModule?e:{default:e}}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(this,arguments)}var p=(0,a.keyframes)(["from{opacity:0.2;}to{opacity:0.6;}"]),m=(0,a.default)(u.default).attrs({svg:l.default,width:"100%"}).withConfig({displayName:"skeleton__SkeletonIcon",componentId:"sc-x7r6du-0"})(["animation:"," 1.6s ease-in infinite;"],p),v=function(e){var t=e.height,n=void 0===t?"90%":t,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,c),u=(0,i.useLoadingColor)();return r.default.createElement(o.Flex,d({flex:!0,padding:[0,0,0,10]},a),r.default.createElement(m,{color:u,height:n}))};t.default=v},44945:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=h(n(67294)),a=v(n(60677)),o=n(90509),i=v(n(32855)),u=v(n(57138)),l=v(n(97507)),c=v(n(69666)),s=v(n(65828)),f=v(n(44636)),d=h(n(3701)),p=n(54576),m=v(n(14821));function v(e){return e&&e.__esModule?e:{default:e}}function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},b.apply(this,arguments)}var y=(0,a.default)(i.default).attrs({padding:[.5],gap:1,round:!0,border:{side:"all",color:"borderSecondary"}}).withConfig({displayName:"toolbox__Container",componentId:"sc-de41bx-0"})(["position:absolute;top:18px;right:8px;background:",";&:hover{background:",";}"],(0,o.getRgbColor)("elementBackground",.5),(0,o.getColor)("elementBackground")),w=function(){var e=(0,p.useChart)(),t=(0,p.useAttributeValue)("after");return r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:f.default,size:"16px"}),title:"Reset zoom",onClick:e.resetNavigation,"data-testid":"chartToolbox-zoomReset","data-track":e.track("zoomReset"),disabled:-900===t,padding:"2px",small:!0})},O=(0,r.forwardRef)((function(e,t){var n=(0,p.useChart)(),a=(0,p.useAttribute)("navigation"),o=a[0],i=a[1],f=(0,p.useAttributeValue)("highlighting"),v=(0,p.useAttributeValue)("panning");return f||v?null:r.default.createElement(y,b({"data-testid":"chartToolbox","data-toolbox":"true"},e,{ref:t,"data-track":n.track("toolbox")}),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:u.default,size:"16px"}),title:"Pan",onClick:function(){return i("pan")},active:"pan"===o,"data-testid":"chartToolbox-pan",stroked:!0,"data-track":n.track("pan"),padding:"2px",small:!0}),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:l.default,size:"16px"}),title:"Highlight",onClick:function(){return i("highlight")},active:"highlight"===o,"data-testid":"chartToolbox-highlight","data-track":n.track("highlight"),padding:"2px",small:!0}),r.default.createElement(m.default,null),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:c.default,size:"16px"}),title:"Zoom in",onClick:n.zoomIn,"data-testid":"chartToolbox-zoomIn","data-track":n.track("zoomIn"),padding:"2px",small:!0}),r.default.createElement(d.Button,{icon:r.default.createElement(d.default,{svg:s.default,size:"16px"}),title:"Zoom out",onClick:n.zoomOut,"data-testid":"chartToolbox-zoomOut","data-track":n.track("zoomOut"),padding:"2px",small:!0}),r.default.createElement(w,null))}));t.default=O},14821:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=v(n(67294)),a=p(n(69999)),o=p(n(89416)),i=p(n(22874)),u=p(n(54194)),l=p(n(47817)),c=n(54576),s=v(n(3701)),f=p(n(32855)),d=["value","onChange","onClick","open","item"];function p(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){b(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function b(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(){return y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y.apply(this,arguments)}var w=(0,r.forwardRef)((function(e,t){var n=e.value,a=e.onChange,o=e.onClick,l=e.open,c=e.item,p=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,d),m=c.icon,v=c.value,g=c.title;return r.default.createElement(f.default,y({ref:t,alignItems:"end"},p),r.default.createElement(s.Button,{icon:m,title:g,active:n===v,onClick:function(){return a(v)},padding:"2px",small:!0}),r.default.createElement(s.Button,{icon:r.default.createElement(s.default,{svg:l?i.default:u.default,size:"12px"}),onClick:o,padding:"2px",stroked:!0,small:!0}))})),O=function(e){var t=e.onItemClick,n=e.items[0],a=n.icon,o=n.value,i=n.title;return r.default.createElement(f.default,{background:"dropdown",round:{side:"bottom"},border:{side:"bottom",color:"borderSecondary"},padding:[1,0],"data-toolbox":!0},r.default.createElement(s.Button,{title:i,icon:a,onClick:function(){return t(o)},padding:"2px",small:!0}))},x=function(){var e=(0,c.useChart)(),t=(0,c.useAttribute)("navigation"),n=t[0],i=t[1],u=function(e){return(0,r.useMemo)((function(){return[{value:"select",title:"Select and zoom",icon:r.default.createElement(s.default,{svg:a.default,size:"16px"}),"data-track":e.track("selectHorizontal")},{value:"selectVertical",title:"Select vertical and zoom",icon:r.default.createElement(s.default,{svg:o.default,size:"16px"}),"data-track":e.track("selectVertical")}]}),[e])}(e),f=(0,r.useMemo)((function(){return u.reduce((function(e,t){return t.value===n?h(h({},e),{},{selectedItem:t}):h(h({},e),{},{remainingItems:[t]})}),{selectedItem:u[0],remainingItems:[]})}),[n]),d=f.selectedItem,p=f.remainingItems;return r.default.createElement(l.default,{value:n,onChange:i,items:p,Dropdown:O,"data-track":"select"},r.default.createElement(w,{value:n,onChange:i,item:d}))},j=(0,r.memo)(x);t.default=j},18892:function(e,t,n){"use strict";t.ZP=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=d(n(60677)),o=n(90833),i=d(n(58607)),u=n(54576),l=n(90509),c=d(n(70486)),s=n(86954),f=["uiName"];function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}var v=(0,a.default)(o.Text).withConfig({displayName:"number__StrokeLabel",componentId:"sc-1m5956t-0"})(["text-shadow:0.02em 0 ",",0 0.02em ",",-0.02em 0 ",",0 -0.02em ",";"],(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary"),(0,l.getColor)("borderSecondary")),g=function(e){var t=(0,u.useLatestConvertedValue)("selected");return r.default.createElement(v,m({color:"main",fontSize:"2em",strong:!0},e),t)};var h=function(e){var t=(0,u.useUnitSign)();return r.default.createElement(o.Text,m({color:"border",fontSize:"1em"},e),t)};var b=(0,r.forwardRef)((function(e,t){var n=e.uiName,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,f);return r.default.createElement(s.ChartWrapper,{ref:t},r.default.createElement(i.default,m({uiName:n,column:!0,alignItems:"center",justifyContent:"center",position:"relative"},a),r.default.createElement(g,null),r.default.createElement(h,null)))}));var y=(0,c.default)(b,{tile:!0});t.ZP=y},96808:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Title=void 0;var r=u(n(67294)),a=u(n(32855)),o=n(90833),i=n(54576);function u(e){return e&&e.__esModule?e:{default:e}}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(this,arguments)}var c=function(e){var t=(0,i.useTitle)(),n=(0,i.useUnitSign)({long:!0}),u=(0,i.useName)();return r.default.createElement(a.default,l({overflow:"hidden","data-testid":"chartHeaderStatus-title",gap:1,flex:"shrink",justifyContent:"start"},e),r.default.createElement(o.TextSmall,{color:"textDescription",truncate:!0},t),!!u&&r.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap"},t?"\u2022 ":"",u),!!n&&r.default.createElement(o.TextSmall,{color:"textLite",whiteSpace:"nowrap"},"\u2022 [",n,"]"))};t.Title=c;var s=(0,i.withChartProvider)(c);t.default=s},2713:function(e,t,n){"use strict";t.__esModule=!0,t.default=t.Container=void 0;var r=s(n(67294)),a=s(n(32855)),o=n(54576),i=s(n(21040));t.Separator=i.default;var u=s(n(96415));t.ChartType=u.default;var l=s(n(70873));t.Fullscreen=l.default;var c=s(n(43460));function s(e){return e&&e.__esModule?e:{default:e}}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}t.Information=c.default;var d=function(e){return r.default.createElement(a.default,f({gap:1,justifyContent:"end",alignItem:"center",flex:!0,"data-testid":"chartHeaderToolbox",alignSelf:"end"},e))};t.Container=d;var p=function(e){var t=!(0,o.useAttributeValue)("focused"),n=(0,o.useAttributeValue)("toolboxElements");return r.default.createElement(d,e,n.map((function(e,n){return r.default.createElement(e,{key:n,disabled:t})})))};t.default=p},51834:function(e,t){"use strict";t.__esModule=!0,t.createCanvas=t.copyCanvas=void 0;t.createCanvas=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,n};t.copyCanvas=function(e,t){t.width=e.width,t.height=e.height;var n=t.getContext("2d");n.clearRect(0,0,t.width,t.height),n.drawImage(e,0,0)}},60773:function(e,t){"use strict";function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.__esModule=!0,t.uppercase=t.underscoredKeys=t.underscoreToCamel=t.objectTransformator=t.camelizeKeys=t.camelToUnderscore=void 0;t.uppercase=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};var o=function(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase()};t.camelToUnderscore=o;var i=function(e){return e.replace(/([_][a-z])/g,(function(e){return e[1].toUpperCase()}))};t.underscoreToCamel=i;var u=[],l=function(e,t,n){var a;return r(r({},e),{},((a={})[o(t)]=n,a))},c=function(e,t,n){var a;return r(r({},e),{},((a={})[i(t)]=n,a))},s=function(e,t){var n=t.func,a=t.action,o=t.omit,i=void 0===o?u:o;return Array.isArray(e)?e.map((function(e){return n(e,{omit:i})})):"object"===typeof e&&e?Object.keys(e).reduce((function(t,o){var u;if(i.includes(o))return r(r({},t),{},((u={})[o]=e[o],u));var l=n(e[o],{omit:i});return a(t,o,l)}),{}):e};t.objectTransformator=s;t.underscoredKeys=function e(t,n){var r=(void 0===n?{}:n).omit;return s(t,{func:e,action:l,omit:void 0===r?u:r})};t.camelizeKeys=function e(t,n){var r=(void 0===n?{}:n).omit;return s(t,{func:e,action:c,omit:void 0===r?u:r})}},20640:function(e,t,n){"use strict";var r=n(11742),a={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,o,i,u,l,c,s=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),u=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.ariaHidden="true",c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=a[t.format]||a.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),u.selectNodeContents(c),l.addRange(u),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");s=!0}catch(f){n&&console.error("unable to copy using execCommand: ",f),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),s=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),o=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(o,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(u):l.removeAllRanges()),c&&document.body.removeChild(c),i()}return s}},28091:function(e,t,n){"use strict";var r=n(46916),a=n(19670),o=n(70030),i=n(58173),u=n(89190),l=n(29909),c=n(35005),s=n(66462),f=n(76178),d=c("Promise"),p="AsyncFromSyncIterator",m=l.set,v=l.getterFor(p),g=function(e,t,n){var r=e.done;d.resolve(e.value).then((function(e){t(f(e,r))}),n)},h=function(e){e.type=p,m(this,e)};h.prototype=u(o(s),{next:function(){var e=v(this);return new d((function(t,n){var o=a(r(e.next,e.iterator));g(o,t,n)}))},return:function(){var e=v(this).iterator;return new d((function(t,n){var o=i(e,"return");if(void 0===o)return t(f(void 0,!0));var u=a(r(o,e));g(u,t,n)}))}}),e.exports=h},6790:function(e,t,n){"use strict";var r=n(43157),a=n(26244),o=n(7207),i=n(49974),u=function(e,t,n,l,c,s,f,d){for(var p,m,v=c,g=0,h=!!f&&i(f,d);g<l;)g in n&&(p=h?h(n[g],g,t):n[g],s>0&&r(p)?(m=a(p),v=u(e,t,p,m,v,s-1)-1):(o(v+1),e[v]=p),v++),g++;return v};e.exports=u},62617:function(e,t,n){"use strict";var r=n(46916),a=n(60614),o=n(19670),i=n(24942),u=n(71246),l=n(58173),c=n(5112),s=n(28091),f=c("asyncIterator");e.exports=function(e){var t,n=o(e),c=!0,d=l(n,f);return a(d)||(d=u(n),c=!1),void 0!==d?t=r(d,n):(t=n,c=!0),o(t),i(c?t:new s(i(t)))}},72897:function(e,t,n){"use strict";var r=n(46916),a=n(19670),o=n(24942),i=n(71246);e.exports=function(e,t){t&&"string"===typeof e||a(e);var n=i(e);return o(a(void 0!==n?r(n,e):e))}},20403:function(e){"use strict";var t=Math.log,n=Math.LOG10E;e.exports=Math.log10||function(e){return t(e)*n}},34553:function(e,t,n){"use strict";var r=n(82109),a=n(42092).findIndex,o=n(51223),i="findIndex",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),r({target:"Array",proto:!0,forced:u},{findIndex:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}}),o(i)},86535:function(e,t,n){"use strict";var r=n(82109),a=n(6790),o=n(19662),i=n(47908),u=n(26244),l=n(65417);r({target:"Array",proto:!0},{flatMap:function(e){var t,n=i(this),r=u(n);return o(e),(t=l(n,0)).length=a(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},99244:function(e,t,n){"use strict";n(51223)("flatMap")},40658:function(e,t,n){"use strict";n(82109)({target:"Math",stat:!0},{log10:n(20403)})},92087:function(e,t,n){"use strict";var r=n(17854),a=n(19781),o=n(47045),i=n(67066),u=n(47293),l=r.RegExp,c=l.prototype;a&&u((function(){var e=!0;try{l(".","d")}catch(u){e=!1}var t={},n="",r=e?"dgimsy":"gimsy",a=function(e,r){Object.defineProperty(t,e,{get:function(){return n+=r,!0}})},o={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var i in e&&(o.hasIndices="d"),o)a(i,o[i]);return Object.getOwnPropertyDescriptor(c,"flags").get.call(t)!==r||n!==r}))&&o(c,"flags",{configurable:!0,get:i})},82481:function(e,t,n){"use strict";n(82109)({target:"String",proto:!0},{repeat:n(38415)})},74326:function(e,t,n){"use strict";var r=n(82109),a=n(46916),o=n(19662),i=n(19670),u=n(70111),l=n(24942),c=n(45348),s=n(76178),f=n(62617),d=n(21753),p=n(31913),m=c((function(e){var t=this,n=t.iterator,r=t.mapper;return new e((function(o,l){var c=function(e){t.done=!0,l(e)},p=function(e){d(n,c,e,c)},m=function(){try{e.resolve(i(a(t.next,n))).then((function(n){try{if(i(n).done)t.done=!0,o(s(void 0,!0));else{var a=n.value;try{var l=r(a,t.counter++),d=function(e){try{t.inner=f(e),v()}catch(n){p(n)}};u(l)?e.resolve(l).then(d,p):d(l)}catch(m){p(m)}}}catch(g){c(g)}}),c)}catch(l){c(l)}},v=function(){var n=t.inner;if(n)try{e.resolve(i(a(n.next,n.iterator))).then((function(e){try{i(e).done?(t.inner=null,m()):o(s(e.value,!1))}catch(n){p(n)}}),p)}catch(r){p(r)}else m()};v()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:p},{flatMap:function(e){return i(this),o(e),new m(l(this),{mapper:e,inner:null})}})},82499:function(e,t,n){"use strict";var r=n(82109),a=n(46916),o=n(19662),i=n(19670),u=n(24942),l=n(72897),c=n(54956),s=n(99212),f=n(31913),d=c((function(){for(var e,t,n=this.iterator,r=this.mapper;;){if(t=this.inner)try{if(!(e=i(a(t.next,t.iterator))).done)return e.value;this.inner=null}catch(o){s(n,"throw",o)}if(e=i(a(this.next,n)),this.done=!!e.done)return;try{this.inner=l(r(e.value,this.counter++),!1)}catch(o){s(n,"throw",o)}}}));r({target:"Iterator",proto:!0,real:!0,forced:f},{flatMap:function(e){return i(this),o(e),new d(u(this),{mapper:e,inner:null})}})},61973:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(83946),a=n(51820),o=n(13882);function i(e,t){(0,o.Z)(2,arguments);var n=(0,r.Z)(t);return(0,a.Z)(e,1e3*n)}},33511:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(83946),a=n(61973),o=n(13882);function i(e,t){(0,o.Z)(2,arguments);var n=(0,r.Z)(t);return(0,a.Z)(e,-n)}},99960:function(e,t){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},47915:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,a)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var o=n(99960),i=n(97790);a(n(97790),t);var u={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,n){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"===typeof t&&(n=t,t=u),"object"===typeof e&&(t=e,e=void 0),this.callback=null!==e&&void 0!==e?e:null,this.options=null!==t&&void 0!==t?t:u,this.elementCB=null!==n&&void 0!==n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new i.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?o.ElementType.Tag:void 0,r=new i.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===o.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new i.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===o.ElementType.Comment)this.lastNode.data+=e;else{var t=new i.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new i.Text(""),t=new i.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new i.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"===typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},97790:function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),a=this&&this.__assign||function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},a.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.cloneNode=t.hasChildren=t.isDocument=t.isDirective=t.isComment=t.isText=t.isCDATA=t.isTag=t.Element=t.Document=t.CDATA=t.NodeWithChildren=t.ProcessingInstruction=t.Comment=t.Text=t.DataNode=t.Node=void 0;var o=n(99960),i=function(){function e(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}return Object.defineProperty(e.prototype,"parentNode",{get:function(){return this.parent},set:function(e){this.parent=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"previousSibling",{get:function(){return this.prev},set:function(e){this.prev=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextSibling",{get:function(){return this.next},set:function(e){this.next=e},enumerable:!1,configurable:!0}),e.prototype.cloneNode=function(e){return void 0===e&&(e=!1),O(this,e)},e}();t.Node=i;var u=function(e){function t(t){var n=e.call(this)||this;return n.data=t,n}return r(t,e),Object.defineProperty(t.prototype,"nodeValue",{get:function(){return this.data},set:function(e){this.data=e},enumerable:!1,configurable:!0}),t}(i);t.DataNode=u;var l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Text,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 3},enumerable:!1,configurable:!0}),t}(u);t.Text=l;var c=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Comment,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 8},enumerable:!1,configurable:!0}),t}(u);t.Comment=c;var s=function(e){function t(t,n){var r=e.call(this,n)||this;return r.name=t,r.type=o.ElementType.Directive,r}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),t}(u);t.ProcessingInstruction=s;var f=function(e){function t(t){var n=e.call(this)||this;return n.children=t,n}return r(t,e),Object.defineProperty(t.prototype,"firstChild",{get:function(){var e;return null!==(e=this.children[0])&&void 0!==e?e:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"lastChild",{get:function(){return this.children.length>0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(i);t.NodeWithChildren=f;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.CDATA,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(f);t.CDATA=d;var p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Root,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(f);t.Document=p;var m=function(e){function t(t,n,r,a){void 0===r&&(r=[]),void 0===a&&(a="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var i=e.call(this,r)||this;return i.name=t,i.attribs=n,i.type=a,i}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(f);function v(e){return(0,o.isTag)(e)}function g(e){return e.type===o.ElementType.CDATA}function h(e){return e.type===o.ElementType.Text}function b(e){return e.type===o.ElementType.Comment}function y(e){return e.type===o.ElementType.Directive}function w(e){return e.type===o.ElementType.Root}function O(e,t){var n;if(void 0===t&&(t=!1),h(e))n=new l(e.data);else if(b(e))n=new c(e.data);else if(v(e)){var r=t?x(e.children):[],o=new m(e.name,a({},e.attribs),r);r.forEach((function(e){return e.parent=o})),null!=e.namespace&&(o.namespace=e.namespace),e["x-attribsNamespace"]&&(o["x-attribsNamespace"]=a({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(o["x-attribsPrefix"]=a({},e["x-attribsPrefix"])),n=o}else if(g(e)){r=t?x(e.children):[];var i=new d(r);r.forEach((function(e){return e.parent=i})),n=i}else if(w(e)){r=t?x(e.children):[];var u=new p(r);r.forEach((function(e){return e.parent=u})),e["x-mode"]&&(u["x-mode"]=e["x-mode"]),n=u}else{if(!y(e))throw new Error("Not implemented yet: ".concat(e.type));var f=new s(e.name,e.data);null!=e["x-name"]&&(f["x-name"]=e["x-name"],f["x-publicId"]=e["x-publicId"],f["x-systemId"]=e["x-systemId"]),n=f}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function x(e){for(var t=e.map((function(e){return O(e,!0)})),n=1;n<t.length;n++)t[n].prev=t[n-1],t[n-1].next=t[n];return t}t.Element=m,t.isTag=v,t.isCDATA=g,t.isText=h,t.isComment=b,t.isDirective=y,t.isDocument=w,t.hasChildren=function(e){return Object.prototype.hasOwnProperty.call(e,"children")},t.cloneNode=O},38252:function(e){"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,a,o;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(a=r;0!==a--;)if(!e(t[a],n[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(a=r;0!==a--;)if(!Object.prototype.hasOwnProperty.call(n,o[a]))return!1;for(a=r;0!==a--;){var i=o[a];if(("_owner"!==i||!t.$$typeof)&&!e(t[i],n[i]))return!1}return!0}return t!==t&&n!==n}},99376:function(e,t){var n=Object.keys;t.D=function(e,t){if(e===t)return!0;if(!(e instanceof Object)||!(t instanceof Object))return!1;for(var r=n(e),a=r.length,o=0;o<a;o++)if(!(r[o]in t))return!1;for(o=0;o<a;o++)if(e[r[o]]!==t[r[o]])return!1;return a===n(t).length}},60885:function(e,t){t.CASE_SENSITIVE_TAG_NAMES=["animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","linearGradient","radialGradient","textPath"]},38276:function(e){var t="html",n="head",r="body",a=/<([a-zA-Z]+[0-9]?)/,o=/<head[^]*>/i,i=/<body[^]*>/i,u=function(){throw new Error("This browser does not support `document.implementation.createHTMLDocument`")},l=function(){throw new Error("This browser does not support `DOMParser.prototype.parseFromString`")},c="object"===typeof window&&window.DOMParser;if("function"===typeof c){var s=new c;u=l=function(e,t){return t&&(e="<"+t+">"+e+"</"+t+">"),s.parseFromString(e,"text/html")}}if("object"===typeof document&&document.implementation){var f=document.implementation.createHTMLDocument();u=function(e,t){return t?(f.documentElement.querySelector(t).innerHTML=e,f):(f.documentElement.innerHTML=e,f)}}var d,p="object"===typeof document?document.createElement("template"):{};p.content&&(d=function(e){return p.innerHTML=e,p.content.childNodes}),e.exports=function(e){var c,s,f,p,m=e.match(a);switch(m&&m[1]&&(c=m[1].toLowerCase()),c){case t:return s=l(e),o.test(e)||(f=s.querySelector(n))&&f.parentNode.removeChild(f),i.test(e)||(f=s.querySelector(r))&&f.parentNode.removeChild(f),s.querySelectorAll(t);case n:case r:return p=(s=u(e)).querySelectorAll(c),i.test(e)&&o.test(e)?p[0].parentNode.childNodes:p;default:return d?d(e):(f=u(e,r).querySelector(r)).childNodes}}},14152:function(e,t,n){var r=n(38276),a=n(1507).formatDOM,o=/<(![a-zA-Z\s]+)>/;e.exports=function(e){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(""===e)return[];var t,n=e.match(o);return n&&n[1]&&(t=n[1]),a(r(e),null,t)}},1507:function(e,t,n){for(var r,a=n(47915),o=n(60885).CASE_SENSITIVE_TAG_NAMES,i=a.Comment,u=a.Element,l=a.ProcessingInstruction,c=a.Text,s={},f=0,d=o.length;f<d;f++)r=o[f],s[r.toLowerCase()]=r;function p(e){for(var t,n={},r=0,a=e.length;r<a;r++)n[(t=e[r]).name]=t.value;return n}function m(e){var t=function(e){return s[e]}(e=e.toLowerCase());return t||e}t.formatAttributes=p,t.formatDOM=function e(t,n,r){n=n||null;for(var a,o=[],s=0,f=t.length;s<f;s++){var d,v=t[s];switch(v.nodeType){case 1:a=m(v.nodeName),(d=new u(a,p(v.attributes))).children=e("template"===a?v.content.childNodes:v.childNodes,d);break;case 3:d=new c(v.nodeValue);break;case 8:d=new i(v.nodeValue);break;default:continue}var g=o[s-1]||null;g&&(g.next=d),d.parent=n,d.prev=g,d.next=null,o.push(d)}return r&&((d=new l(r.substring(0,r.indexOf(" ")).toLowerCase(),r)).next=o[0]||null,d.parent=n,o.unshift(d),o[1]&&(o[1].prev=o[0])),o}},30488:function(e,t,n){var r=n(47915),a=n(14152),o=n(50484),i=n(53670);a="function"===typeof a.default?a.default:a;var u={lowerCaseAttributeNames:!1};function l(e,t){if("string"!==typeof e)throw new TypeError("First argument must be a string");return""===e?[]:i(a(e,(t=t||{}).htmlparser2||u),t)}l.domToReact=i,l.htmlToDOM=a,l.attributesToProps=o,l.Comment=r.Comment,l.Element=r.Element,l.ProcessingInstruction=r.ProcessingInstruction,l.Text=r.Text,e.exports=l,l.default=l},50484:function(e,t,n){var r=n(83),a=n(74606),o=["checked","value"],i=["input","select","textarea"],u={reset:!0,submit:!0};function l(e){return r.possibleStandardNames[e]}e.exports=function(e,t){var n,c,s,f,d,p={},m=(e=e||{}).type&&u[e.type];for(n in e)if(s=e[n],r.isCustomAttribute(n))p[n]=s;else if(f=l(c=n.toLowerCase()))switch(d=r.getPropertyInfo(f),-1===o.indexOf(f)||-1===i.indexOf(t)||m||(f=l("default"+c)),p[f]=s,d&&d.type){case r.BOOLEAN:p[f]=!0;break;case r.OVERLOADED_BOOLEAN:""===s&&(p[f]=!0)}else a.PRESERVE_CUSTOM_ATTRIBUTES&&(p[n]=s);return a.setStyleProp(e.style,p),p}},53670:function(e,t,n){var r=n(67294),a=n(50484),o=n(74606),i=o.setStyleProp,u=o.canTextBeChildOfNode;function l(e){return o.PRESERVE_CUSTOM_ATTRIBUTES&&"tag"===e.type&&o.isCustomComponent(e.name,e.attribs)}e.exports=function e(t,n){for(var o,c,s,f,d,p=(n=n||{}).library||r,m=p.cloneElement,v=p.createElement,g=p.isValidElement,h=[],b="function"===typeof n.replace,y=n.trim,w=0,O=t.length;w<O;w++)if(o=t[w],b&&g(s=n.replace(o)))O>1&&(s=m(s,{key:s.key||w})),h.push(s);else if("text"!==o.type){switch(f=o.attribs,l(o)?i(f.style,f):f&&(f=a(f,o.name)),d=null,o.type){case"script":case"style":o.children[0]&&(f.dangerouslySetInnerHTML={__html:o.children[0].data});break;case"tag":"textarea"===o.name&&o.children[0]?f.defaultValue=o.children[0].data:o.children&&o.children.length&&(d=e(o.children,n));break;default:continue}O>1&&(f.key=w),h.push(v(o.name,f,d))}else{if((c=!o.data.trim().length)&&o.parent&&!u(o.parent))continue;if(y&&c)continue;h.push(o.data)}return 1===h.length?h[0]:h}},74606:function(e,t,n){var r=n(67294),a=n(41476).default;var o={reactCompat:!0};var i=r.version.split(".")[0]>=16,u=new Set(["tr","tbody","thead","tfoot","colgroup","table","head","html","frameset"]);e.exports={PRESERVE_CUSTOM_ATTRIBUTES:i,invertObject:function(e,t){if(!e||"object"!==typeof e)throw new TypeError("First argument must be an object");var n,r,a="function"===typeof t,o={},i={};for(n in e)r=e[n],a&&(o=t(n,r))&&2===o.length?i[o[0]]=o[1]:"string"===typeof r&&(i[r]=n);return i},isCustomComponent:function(e,t){if(-1===e.indexOf("-"))return t&&"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}},setStyleProp:function(e,t){if(null!==e&&void 0!==e)try{t.style=a(e,o)}catch(n){t.style={}}},canTextBeChildOfNode:function(e){return!u.has(e.name)},elementsWithNoTextChildren:u}},18139:function(e){var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,l=/^\s+|\s+$/g,c="";function s(e){return e?e.replace(l,c):c}e.exports=function(e,l){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var f=1,d=1;function p(e){var t=e.match(n);t&&(f+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function m(){var e={line:f,column:d};return function(t){return t.position=new v(e),y(),t}}function v(e){this.start=e,this.end={line:f,column:d},this.source=l.source}v.prototype.content=e;var g=[];function h(t){var n=new Error(l.source+":"+f+":"+d+": "+t);if(n.reason=t,n.filename=l.source,n.line=f,n.column=d,n.source=e,!l.silent)throw n;g.push(n)}function b(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function y(){b(r)}function w(e){var t;for(e=e||[];t=O();)!1!==t&&e.push(t);return e}function O(){var t=m();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return h("End of comment missing");var r=e.slice(2,n-2);return d+=2,p(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}function x(){var e=m(),n=b(a);if(n){if(O(),!b(o))return h("property missing ':'");var r=b(i),l=e({type:"declaration",property:s(n[0].replace(t,c)),value:r?s(r[0].replace(t,c)):c});return b(u),l}}return y(),function(){var e,t=[];for(w(t);e=x();)!1!==e&&(t.push(e),w(t));return t}()}},36808:function(e,t,n){var r,a;!function(o){if(void 0===(a="function"===typeof(r=o)?r.call(t,n,t,e):r)||(e.exports=a),!0,e.exports=o(),!!0){var i=window.Cookies,u=window.Cookies=o();u.noConflict=function(){return window.Cookies=i,u}}}((function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function a(){}function o(t,n,o){if("undefined"!==typeof document){"number"===typeof(o=e({path:"/"},a.defaults,o)).expires&&(o.expires=new Date(1*new Date+864e5*o.expires)),o.expires=o.expires?o.expires.toUTCString():"";try{var i=JSON.stringify(n);/^[\{\[]/.test(i)&&(n=i)}catch(c){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var u="";for(var l in o)o[l]&&(u+="; "+l,!0!==o[l]&&(u+="="+o[l].split(";")[0]));return document.cookie=t+"="+n+u}}function i(e,n){if("undefined"!==typeof document){for(var a={},o=document.cookie?document.cookie.split("; "):[],i=0;i<o.length;i++){var u=o[i].split("="),l=u.slice(1).join("=");n||'"'!==l.charAt(0)||(l=l.slice(1,-1));try{var c=t(u[0]);if(l=(r.read||r)(l,c)||t(l),n)try{l=JSON.parse(l)}catch(s){}if(a[c]=l,e===c)break}catch(s){}}return e?a[e]:a}}return a.set=o,a.get=function(e){return i(e,!1)},a.getJSON=function(e){return i(e,!0)},a.remove=function(t,n){o(t,"",e(n,{expires:-1}))},a.defaults={},a.withConverter=n,a}((function(){}))}))},72307:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",a=1,o=2,i=9007199254740991,u="[object Arguments]",l="[object Array]",c="[object AsyncFunction]",s="[object Boolean]",f="[object Date]",d="[object Error]",p="[object Function]",m="[object GeneratorFunction]",v="[object Map]",g="[object Number]",h="[object Null]",b="[object Object]",y="[object Promise]",w="[object Proxy]",O="[object RegExp]",x="[object Set]",j="[object String]",k="[object Symbol]",E="[object Undefined]",P="[object WeakMap]",S="[object ArrayBuffer]",C="[object DataView]",_=/^\[object .+?Constructor\]$/,M=/^(?:0|[1-9]\d*)$/,D={};D["[object Float32Array]"]=D["[object Float64Array]"]=D["[object Int8Array]"]=D["[object Int16Array]"]=D["[object Int32Array]"]=D["[object Uint8Array]"]=D["[object Uint8ClampedArray]"]=D["[object Uint16Array]"]=D["[object Uint32Array]"]=!0,D[u]=D[l]=D[S]=D[s]=D[C]=D[f]=D[d]=D[p]=D[v]=D[g]=D[b]=D[O]=D[x]=D[j]=D[P]=!1;var A="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,T="object"==typeof self&&self&&self.Object===Object&&self,z=A||T||Function("return this")(),N=t&&!t.nodeType&&t,R=N&&e&&!e.nodeType&&e,L=R&&R.exports===N,I=L&&A.process,F=function(){try{return I&&I.binding&&I.binding("util")}catch(e){}}(),W=F&&F.isTypedArray;function H(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function V(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function B(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var U,Y,Z=Array.prototype,q=Function.prototype,G=Object.prototype,X=z["__core-js_shared__"],K=q.toString,$=G.hasOwnProperty,J=function(){var e=/[^.]+$/.exec(X&&X.keys&&X.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Q=G.toString,ee=RegExp("^"+K.call($).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),te=L?z.Buffer:void 0,ne=z.Symbol,re=z.Uint8Array,ae=G.propertyIsEnumerable,oe=Z.splice,ie=ne?ne.toStringTag:void 0,ue=Object.getOwnPropertySymbols,le=te?te.isBuffer:void 0,ce=(U=Object.keys,Y=Object,function(e){return U(Y(e))}),se=Ie(z,"DataView"),fe=Ie(z,"Map"),de=Ie(z,"Promise"),pe=Ie(z,"Set"),me=Ie(z,"WeakMap"),ve=Ie(Object,"create"),ge=Ve(se),he=Ve(fe),be=Ve(de),ye=Ve(pe),we=Ve(me),Oe=ne?ne.prototype:void 0,xe=Oe?Oe.valueOf:void 0;function je(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function ke(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ee(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Pe(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Ee;++t<n;)this.add(e[t])}function Se(e){var t=this.__data__=new ke(e);this.size=t.size}function Ce(e,t){var n=Ye(e),r=!n&&Ue(e),a=!n&&!r&&Ze(e),o=!n&&!r&&!a&&$e(e),i=n||r||a||o,u=i?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],l=u.length;for(var c in e)!t&&!$.call(e,c)||i&&("length"==c||a&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||He(c,l))||u.push(c);return u}function _e(e,t){for(var n=e.length;n--;)if(Be(e[n][0],t))return n;return-1}function Me(e){return null==e?void 0===e?E:h:ie&&ie in Object(e)?function(e){var t=$.call(e,ie),n=e[ie];try{e[ie]=void 0;var r=!0}catch(o){}var a=Q.call(e);r&&(t?e[ie]=n:delete e[ie]);return a}(e):function(e){return Q.call(e)}(e)}function De(e){return Ke(e)&&Me(e)==u}function Ae(e,t,n,r,i){return e===t||(null==e||null==t||!Ke(e)&&!Ke(t)?e!==e&&t!==t:function(e,t,n,r,i,c){var p=Ye(e),m=Ye(t),h=p?l:We(e),y=m?l:We(t),w=(h=h==u?b:h)==b,E=(y=y==u?b:y)==b,P=h==y;if(P&&Ze(e)){if(!Ze(t))return!1;p=!0,w=!1}if(P&&!w)return c||(c=new Se),p||$e(e)?Ne(e,t,n,r,i,c):function(e,t,n,r,i,u,l){switch(n){case C:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case S:return!(e.byteLength!=t.byteLength||!u(new re(e),new re(t)));case s:case f:case g:return Be(+e,+t);case d:return e.name==t.name&&e.message==t.message;case O:case j:return e==t+"";case v:var c=V;case x:var p=r&a;if(c||(c=B),e.size!=t.size&&!p)return!1;var m=l.get(e);if(m)return m==t;r|=o,l.set(e,t);var h=Ne(c(e),c(t),r,i,u,l);return l.delete(e),h;case k:if(xe)return xe.call(e)==xe.call(t)}return!1}(e,t,h,n,r,i,c);if(!(n&a)){var _=w&&$.call(e,"__wrapped__"),M=E&&$.call(t,"__wrapped__");if(_||M){var D=_?e.value():e,A=M?t.value():t;return c||(c=new Se),i(D,A,n,r,c)}}if(!P)return!1;return c||(c=new Se),function(e,t,n,r,o,i){var u=n&a,l=Re(e),c=l.length,s=Re(t),f=s.length;if(c!=f&&!u)return!1;var d=c;for(;d--;){var p=l[d];if(!(u?p in t:$.call(t,p)))return!1}var m=i.get(e);if(m&&i.get(t))return m==t;var v=!0;i.set(e,t),i.set(t,e);var g=u;for(;++d<c;){var h=e[p=l[d]],b=t[p];if(r)var y=u?r(b,h,p,t,e,i):r(h,b,p,e,t,i);if(!(void 0===y?h===b||o(h,b,n,r,i):y)){v=!1;break}g||(g="constructor"==p)}if(v&&!g){var w=e.constructor,O=t.constructor;w==O||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof O&&O instanceof O||(v=!1)}return i.delete(e),i.delete(t),v}(e,t,n,r,i,c)}(e,t,n,r,Ae,i))}function Te(e){return!(!Xe(e)||function(e){return!!J&&J in e}(e))&&(qe(e)?ee:_).test(Ve(e))}function ze(e){if(!function(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototype||G;return e===n}(e))return ce(e);var t=[];for(var n in Object(e))$.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Ne(e,t,n,r,i,u){var l=n&a,c=e.length,s=t.length;if(c!=s&&!(l&&s>c))return!1;var f=u.get(e);if(f&&u.get(t))return f==t;var d=-1,p=!0,m=n&o?new Pe:void 0;for(u.set(e,t),u.set(t,e);++d<c;){var v=e[d],g=t[d];if(r)var h=l?r(g,v,d,t,e,u):r(v,g,d,e,t,u);if(void 0!==h){if(h)continue;p=!1;break}if(m){if(!H(t,(function(e,t){if(a=t,!m.has(a)&&(v===e||i(v,e,n,r,u)))return m.push(t);var a}))){p=!1;break}}else if(v!==g&&!i(v,g,n,r,u)){p=!1;break}}return u.delete(e),u.delete(t),p}function Re(e){return function(e,t,n){var r=t(e);return Ye(e)?r:function(e,t){for(var n=-1,r=t.length,a=e.length;++n<r;)e[a+n]=t[n];return e}(r,n(e))}(e,Je,Fe)}function Le(e,t){var n=e.__data__;return function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}(t)?n["string"==typeof t?"string":"hash"]:n.map}function Ie(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return Te(n)?n:void 0}je.prototype.clear=function(){this.__data__=ve?ve(null):{},this.size=0},je.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},je.prototype.get=function(e){var t=this.__data__;if(ve){var n=t[e];return n===r?void 0:n}return $.call(t,e)?t[e]:void 0},je.prototype.has=function(e){var t=this.__data__;return ve?void 0!==t[e]:$.call(t,e)},je.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ve&&void 0===t?r:t,this},ke.prototype.clear=function(){this.__data__=[],this.size=0},ke.prototype.delete=function(e){var t=this.__data__,n=_e(t,e);return!(n<0)&&(n==t.length-1?t.pop():oe.call(t,n,1),--this.size,!0)},ke.prototype.get=function(e){var t=this.__data__,n=_e(t,e);return n<0?void 0:t[n][1]},ke.prototype.has=function(e){return _e(this.__data__,e)>-1},ke.prototype.set=function(e,t){var n=this.__data__,r=_e(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ee.prototype.clear=function(){this.size=0,this.__data__={hash:new je,map:new(fe||ke),string:new je}},Ee.prototype.delete=function(e){var t=Le(this,e).delete(e);return this.size-=t?1:0,t},Ee.prototype.get=function(e){return Le(this,e).get(e)},Ee.prototype.has=function(e){return Le(this,e).has(e)},Ee.prototype.set=function(e,t){var n=Le(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Pe.prototype.add=Pe.prototype.push=function(e){return this.__data__.set(e,r),this},Pe.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.clear=function(){this.__data__=new ke,this.size=0},Se.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Se.prototype.get=function(e){return this.__data__.get(e)},Se.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ke){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ee(r)}return n.set(e,t),this.size=n.size,this};var Fe=ue?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,a=0,o=[];++n<r;){var i=e[n];t(i,n,e)&&(o[a++]=i)}return o}(ue(e),(function(t){return ae.call(e,t)})))}:function(){return[]},We=Me;function He(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||M.test(e))&&e>-1&&e%1==0&&e<t}function Ve(e){if(null!=e){try{return K.call(e)}catch(t){}try{return e+""}catch(t){}}return""}function Be(e,t){return e===t||e!==e&&t!==t}(se&&We(new se(new ArrayBuffer(1)))!=C||fe&&We(new fe)!=v||de&&We(de.resolve())!=y||pe&&We(new pe)!=x||me&&We(new me)!=P)&&(We=function(e){var t=Me(e),n=t==b?e.constructor:void 0,r=n?Ve(n):"";if(r)switch(r){case ge:return C;case he:return v;case be:return y;case ye:return x;case we:return P}return t});var Ue=De(function(){return arguments}())?De:function(e){return Ke(e)&&$.call(e,"callee")&&!ae.call(e,"callee")},Ye=Array.isArray;var Ze=le||function(){return!1};function qe(e){if(!Xe(e))return!1;var t=Me(e);return t==p||t==m||t==c||t==w}function Ge(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=i}function Xe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ke(e){return null!=e&&"object"==typeof e}var $e=W?function(e){return function(t){return e(t)}}(W):function(e){return Ke(e)&&Ge(e.length)&&!!D[Me(e)]};function Je(e){return null!=(t=e)&&Ge(t.length)&&!qe(t)?Ce(e):ze(e);var t}e.exports=function(e,t){return Ae(e,t)}},41609:function(e,t,n){var r=n(280),a=n(64160),o=n(35694),i=n(1469),u=n(98612),l=n(44144),c=n(25726),s=n(36719),f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(u(e)&&(i(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||s(e)||o(e)))return!e.length;var t=a(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},22810:function(e,t,n){"use strict";n.r(t)},48564:function(){},79424:function(){},97142:function(e,t){"use strict";t.I=function(e){e.client&&(document.head.appendChild(e.msh=document.createElement("style")),e.createRule=function(t,n){var r=t+"{}";n&&(r=n+"{"+r+"}");var a=n?e.msh.sheet:e.sh.sheet,o=a.insertRule(r,a.cssRules.length),i=(a.cssRules||a.rules)[o];if(i.index=o,n){var u=(i.cssRules||i.rules)[0];i.style=u.style,i.styleMap=u.styleMap}return i})}},52099:function(e,t,n){"use strict";var r=n(39662).D;t.I=function(e){if(e.client){0;var t=e.kebab;n.prototype.diff=function(e){var n,r=this.decl,a=this.rule.style;for(n in r)void 0===e[n]&&a.removeProperty(n);for(n in e)e[n]!==r[n]&&a.setProperty(t(n),e[n]);this.decl=e},n.prototype.del=function(){r(this.rule)},a.prototype.diff=function(e){var t=this.tree;for(var r in t)if(void 0===e[r]){var a=t[r];for(var o in a)a[o].del()}for(var r in e)if(void 0===t[r])for(var o in e[r]){(l=new n(o,r)).diff(e[r][o]),e[r][o]=l}else{var i=t[r],u=e[r];for(var o in i)u[o]||i[o].del();for(var o in u){var l;(l=i[o])?(l.diff(u[o]),u[o]=l):((l=new n(o,r)).diff(u[o]),u[o]=l)}}this.tree=e},e.VRule=n,e.VSheet=a}function n(t,n){this.rule=e.createRule(t,n),this.decl={}}function a(){this.tree={}}}},87749:function(e,t){t.z=function e(t,n,r,a){var o,i,u={},l=!1;for(o in n)"object"!==typeof(i=n[o])&&(l=!0,u[o]=i);for(o in l&&(t[a]||(t[a]={}),t[a][r]=u),n)if("object"===typeof(i=n[o]))if("@"===o[0])e(t,i,r,o);else{var c=o.indexOf("&")>-1,s=r.split(",");if(c)for(var f=0;f<s.length;f++)s[f]=o.replace(/&/g,s[f]);else for(f=0;f<s.length;f++)s[f]=s[f]+" "+o;e(t,i,s.join(","),a)}}},39662:function(e,t){t.D=function(e){var t=e.index,n=e.parentStyleSheet,r=n.cssRules||n.rules;for(t=Math.max(t,r.length-1);t>=0;){if(r[t]===e){n.deleteRule(t);break}t--}}},40818:function(e,t){"use strict";var n=/[A-Z]/g;t.U=function(e){var t=(e=e||{}).assign||Object.assign;var r=t({raw:"",pfx:"_",client:"object"===typeof window,assign:t,stringify:JSON.stringify,kebab:function(e){return e.replace(n,"-$&").toLowerCase()},decl:function(e,t){return(e=r.kebab(e))+":"+t+";"},hash:function(e){return function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return"_"+(t>>>0).toString(36)}(r.stringify(e))},selector:function(e,t){return e+(":"===t[0]?"":" ")+t},putRaw:function(e){r.raw+=e}},e);return r.client&&(r.sh||document.head.appendChild(r.sh=document.createElement("style")),r.putRaw=function(e){var t=r.sh.sheet;try{t.insertRule(e,t.cssRules.length)}catch(n){}}),r.put=function(e,t,n){var a,o,i="",u=[];for(a in t)(o=t[a])instanceof Object&&!(o instanceof Array)?u.push(a):i+=r.decl(a,o,e,n);i&&(i=e+"{"+i+"}",r.putRaw(n?n+"{"+i+"}":i));for(var l=0;l<u.length;l++)"@"===(a=u[l])[0]&&"@font-face"!==a?r.putAt(e,t[a],a):r.put(r.selector(e,a),t[a],n)},r.putAt=r.put,r}},75966:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=d(n(67294)),o=d(n(45697)),i=n(61193),u=n(1706),l=n(67493),c=n(7373),s=n(92886),f=d(n(86010));function d(e){return e&&e.__esModule?e:{default:e}}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){w(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function h(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=y(e);if(t){var o=y(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return b(e)}(this,n)}}function b(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&g(e,t)}(s,e);var t,n,r,o=h(s);function s(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return w(b(e=o.call.apply(o,[this].concat(n))),"state",{resizing:null,dragging:null,className:""}),w(b(e),"elementRef",a.default.createRef()),w(b(e),"onDragStart",(function(t,n){var r=n.node,a=e.props,o=a.onDragStart,i=a.transformScale;if(o){var u={top:0,left:0},l=r.offsetParent;if(l){var s=l.getBoundingClientRect(),f=r.getBoundingClientRect(),d=f.left/i,p=s.left/i,m=f.top/i,v=s.top/i;u.left=d-p+l.scrollLeft,u.top=m-v+l.scrollTop,e.setState({dragging:u});var g=(0,c.calcXY)(e.getPositionParams(),u.top,u.left,e.props.w,e.props.h),h=g.x,y=g.y;return o.call(b(e),e.props.i,h,y,{e:t,node:r,newPosition:u})}}})),w(b(e),"onDrag",(function(t,n){var r=n.node,a=n.deltaX,o=n.deltaY,i=e.props.onDrag;if(i){if(!e.state.dragging)throw new Error("onDrag called before onDragStart.");var u=e.state.dragging.top+o,l=e.state.dragging.left+a,s=e.props,f=s.isBounded,d=s.i,p=s.w,m=s.h,v=s.containerWidth,g=e.getPositionParams();if(f){var h=r.offsetParent;if(h){var y=e.props,w=y.margin,O=y.rowHeight,x=h.clientHeight-(0,c.calcGridItemWHPx)(m,O,w[1]);u=(0,c.clamp)(u,0,x);var j=(0,c.calcGridColWidth)(g),k=v-(0,c.calcGridItemWHPx)(p,j,w[0]);l=(0,c.clamp)(l,0,k)}}var E={top:u,left:l};e.setState({dragging:E});var P=(0,c.calcXY)(g,u,l,p,m),S=P.x,C=P.y;return i.call(b(e),d,S,C,{e:t,node:r,newPosition:E})}})),w(b(e),"onDragStop",(function(t,n){var r=n.node,a=e.props.onDragStop;if(a){if(!e.state.dragging)throw new Error("onDragEnd called before onDragStart.");var o=e.props,i=o.w,u=o.h,l=o.i,s=e.state.dragging,f=s.left,d=s.top,p={top:d,left:f};e.setState({dragging:null});var m=(0,c.calcXY)(e.getPositionParams(),d,f,i,u),v=m.x,g=m.y;return a.call(b(e),l,v,g,{e:t,node:r,newPosition:p})}})),w(b(e),"onResizeStop",(function(t,n){e.onResizeHandler(t,n,"onResizeStop")})),w(b(e),"onResizeStart",(function(t,n){e.onResizeHandler(t,n,"onResizeStart")})),w(b(e),"onResize",(function(t,n){e.onResizeHandler(t,n,"onResize")})),e}return t=s,n=[{key:"shouldComponentUpdate",value:function(e,t){if(this.props.children!==e.children)return!0;if(this.props.droppingPosition!==e.droppingPosition)return!0;var n=(0,c.calcGridItemPosition)(this.getPositionParams(this.props),this.props.x,this.props.y,this.props.w,this.props.h,this.state),r=(0,c.calcGridItemPosition)(this.getPositionParams(e),e.x,e.y,e.w,e.h,t);return!(0,l.fastPositionEqual)(n,r)||this.props.useCSSTransforms!==e.useCSSTransforms}},{key:"componentDidMount",value:function(){this.moveDroppingItem({})}},{key:"componentDidUpdate",value:function(e){this.moveDroppingItem(e)}},{key:"moveDroppingItem",value:function(e){var t=this.props.droppingPosition;if(t){var n=this.elementRef.current;if(n){var r=e.droppingPosition||{left:0,top:0},a=this.state.dragging,o=a&&t.left!==r.left||t.top!==r.top;if(a){if(o){var i=t.left-a.left,u=t.top-a.top;this.onDrag(t.e,{node:n,deltaX:i,deltaY:u})}}else this.onDragStart(t.e,{node:n,deltaX:t.left,deltaY:t.top})}}}},{key:"getPositionParams",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}},{key:"createStyle",value:function(e){var t,n=this.props,r=n.usePercentages,a=n.containerWidth;return n.useCSSTransforms?t=(0,l.setTransform)(e):(t=(0,l.setTopLeft)(e),r&&(t.left=(0,l.perc)(e.left/a),t.width=(0,l.perc)(e.width/a))),t}},{key:"mixinDraggable",value:function(e,t){return a.default.createElement(i.DraggableCore,{disabled:!t,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},e)}},{key:"mixinResizable",value:function(e,t,n){var r=this.props,o=r.cols,i=r.x,l=r.minW,s=r.minH,f=r.maxW,d=r.maxH,p=r.transformScale,m=r.resizeHandles,v=r.resizeHandle,g=this.getPositionParams(),h=(0,c.calcGridItemPosition)(g,0,0,o-i,0).width,b=(0,c.calcGridItemPosition)(g,0,0,l,s),y=(0,c.calcGridItemPosition)(g,0,0,f,d),w=[b.width,b.height],O=[Math.min(y.width,h),Math.min(y.height,1/0)];return a.default.createElement(u.Resizable,{draggableOpts:{disabled:!n},className:n?void 0:"react-resizable-hide",width:t.width,height:t.height,minConstraints:w,maxConstraints:O,onResizeStop:this.onResizeStop,onResizeStart:this.onResizeStart,onResize:this.onResize,transformScale:p,resizeHandles:m,handle:v},e)}},{key:"onResizeHandler",value:function(e,t,n){var r=t.node,a=t.size,o=this.props[n];if(o){var i=this.props,u=i.cols,l=i.x,s=i.y,f=i.i,d=i.maxH,p=i.minH,m=this.props,v=m.minW,g=m.maxW,h=(0,c.calcWH)(this.getPositionParams(),a.width,a.height,l,s),b=h.w,y=h.h;v=Math.max(v,1),g=Math.min(g,u-l),b=(0,c.clamp)(b,v,g),y=(0,c.clamp)(y,p,d),this.setState({resizing:"onResizeStop"===n?null:a}),o.call(this,f,b,y,{e:e,node:r,size:a})}}},{key:"render",value:function(){var e=this.props,t=e.x,n=e.y,r=e.w,o=e.h,i=e.isDraggable,u=e.isResizable,l=e.droppingPosition,s=e.useCSSTransforms,d=(0,c.calcGridItemPosition)(this.getPositionParams(),t,n,r,o,this.state),p=a.default.Children.only(this.props.children),v=a.default.cloneElement(p,{ref:this.elementRef,className:(0,f.default)("react-grid-item",p.props.className,this.props.className,{static:this.props.static,resizing:Boolean(this.state.resizing),"react-draggable":i,"react-draggable-dragging":Boolean(this.state.dragging),dropping:Boolean(l),cssTransforms:s}),style:m(m(m({},this.props.style),p.props.style),this.createStyle(d))});return v=this.mixinResizable(v,d,u),v=this.mixinDraggable(v,i)}}],n&&v(t.prototype,n),r&&v(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}(a.default.Component);t.default=O,w(O,"propTypes",{children:o.default.element,cols:o.default.number.isRequired,containerWidth:o.default.number.isRequired,rowHeight:o.default.number.isRequired,margin:o.default.array.isRequired,maxRows:o.default.number.isRequired,containerPadding:o.default.array.isRequired,x:o.default.number.isRequired,y:o.default.number.isRequired,w:o.default.number.isRequired,h:o.default.number.isRequired,minW:function(e,t){var n=e[t];return"number"!==typeof n?new Error("minWidth not Number"):n>e.w||n>e.maxW?new Error("minWidth larger than item width/maxWidth"):void 0},maxW:function(e,t){var n=e[t];return"number"!==typeof n?new Error("maxWidth not Number"):n<e.w||n<e.minW?new Error("maxWidth smaller than item width/minWidth"):void 0},minH:function(e,t){var n=e[t];return"number"!==typeof n?new Error("minHeight not Number"):n>e.h||n>e.maxH?new Error("minHeight larger than item height/maxHeight"):void 0},maxH:function(e,t){var n=e[t];return"number"!==typeof n?new Error("maxHeight not Number"):n<e.h||n<e.minH?new Error("maxHeight smaller than item height/minHeight"):void 0},i:o.default.string.isRequired,resizeHandles:s.resizeHandleAxesType,resizeHandle:s.resizeHandleType,onDragStop:o.default.func,onDragStart:o.default.func,onDrag:o.default.func,onResizeStop:o.default.func,onResizeStart:o.default.func,onResize:o.default.func,isDraggable:o.default.bool.isRequired,isResizable:o.default.bool.isRequired,isBounded:o.default.bool.isRequired,static:o.default.bool,useCSSTransforms:o.default.bool.isRequired,transformScale:o.default.number,className:o.default.string,handle:o.default.string,cancel:o.default.string,droppingPosition:o.default.shape({e:o.default.object.isRequired,left:o.default.number.isRequired,top:o.default.number.isRequired})}),w(O,"defaultProps",{className:"",cancel:"",handle:"",minH:1,minW:1,maxH:1/0,maxW:1/0,transformScale:1})},49580:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(a,i,u):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=f(n(72307)),i=f(n(86010)),u=n(67493),l=n(7373),c=f(n(75966)),s=f(n(92886));function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){k(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function g(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){u=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw a}}return o}(e,t)||h(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){if(e){if("string"===typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e,t){return w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},w(e,t)}function O(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=j(e);if(t){var o=j(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return x(e)}(this,n)}}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function j(e){return j=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},j(e)}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E="react-grid-layout",P=!1;try{P=/firefox/i.test(navigator.userAgent)}catch(C){}var S=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&w(e,t)}(f,e);var t,n,r,s=O(f);function f(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return k(x(e=s.call.apply(s,[this].concat(n))),"state",{activeDrag:null,layout:(0,u.synchronizeLayoutWithChildren)(e.props.layout,e.props.children,e.props.cols,(0,u.compactType)(e.props),e.props.allowOverlap),mounted:!1,oldDragItem:null,oldLayout:null,oldResizeItem:null,droppingDOMNode:null,children:[]}),k(x(e),"dragEnterCounter",0),k(x(e),"onDragStart",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state.layout,c=(0,u.getLayoutItem)(l,t);if(c)return e.setState({oldDragItem:(0,u.cloneLayoutItem)(c),oldLayout:l}),e.props.onDragStart(l,c,c,null,o,i)})),k(x(e),"onDrag",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state.oldDragItem,c=e.state.layout,s=e.props,f=s.cols,d=s.allowOverlap,p=s.preventCollision,m=(0,u.getLayoutItem)(c,t);if(m){var v={w:m.w,h:m.h,x:m.x,y:m.y,placeholder:!0,i:t};c=(0,u.moveElement)(c,m,n,r,!0,p,(0,u.compactType)(e.props),f,d),e.props.onDrag(c,l,m,v,o,i),e.setState({layout:d?c:(0,u.compact)(c,(0,u.compactType)(e.props),f),activeDrag:v})}})),k(x(e),"onDragStop",(function(t,n,r,a){var o=a.e,i=a.node;if(e.state.activeDrag){var l=e.state.oldDragItem,c=e.state.layout,s=e.props,f=s.cols,d=s.preventCollision,p=s.allowOverlap,m=(0,u.getLayoutItem)(c,t);if(m){c=(0,u.moveElement)(c,m,n,r,!0,d,(0,u.compactType)(e.props),f,p),e.props.onDragStop(c,l,m,null,o,i);var v=p?c:(0,u.compact)(c,(0,u.compactType)(e.props),f),g=e.state.oldLayout;e.setState({activeDrag:null,layout:v,oldDragItem:null,oldLayout:null}),e.onLayoutMaybeChanged(v,g)}}})),k(x(e),"onResizeStart",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state.layout,c=(0,u.getLayoutItem)(l,t);c&&(e.setState({oldResizeItem:(0,u.cloneLayoutItem)(c),oldLayout:e.state.layout}),e.props.onResizeStart(l,c,c,null,o,i))})),k(x(e),"onResize",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state,c=l.layout,s=l.oldResizeItem,f=e.props,d=f.cols,p=f.preventCollision,m=f.allowOverlap,h=(0,u.withLayoutItem)(c,t,(function(e){var t;if(p&&!m){var a=(0,u.getAllCollisions)(c,v(v({},e),{},{w:n,h:r})).filter((function(t){return t.i!==e.i}));if(t=a.length>0){var o=1/0,i=1/0;a.forEach((function(t){t.x>e.x&&(o=Math.min(o,t.x)),t.y>e.y&&(i=Math.min(i,t.y))})),Number.isFinite(o)&&(e.w=o-e.x),Number.isFinite(i)&&(e.h=i-e.y)}}return t||(e.w=n,e.h=r),e})),b=g(h,2),y=b[0],w=b[1];if(w){var O={w:w.w,h:w.h,x:w.x,y:w.y,static:!0,i:t};e.props.onResize(y,s,w,O,o,i),e.setState({layout:m?y:(0,u.compact)(y,(0,u.compactType)(e.props),d),activeDrag:O})}})),k(x(e),"onResizeStop",(function(t,n,r,a){var o=a.e,i=a.node,l=e.state,c=l.layout,s=l.oldResizeItem,f=e.props,d=f.cols,p=f.allowOverlap,m=(0,u.getLayoutItem)(c,t);e.props.onResizeStop(c,s,m,null,o,i);var v=p?c:(0,u.compact)(c,(0,u.compactType)(e.props),d),g=e.state.oldLayout;e.setState({activeDrag:null,layout:v,oldResizeItem:null,oldLayout:null}),e.onLayoutMaybeChanged(v,g)})),k(x(e),"onDragOver",(function(t){var n;if(t.preventDefault(),t.stopPropagation(),P&&(null===(n=t.nativeEvent.target)||void 0===n||!n.classList.contains(E)))return!1;var r=e.props,o=r.droppingItem,i=r.onDropDragOver,u=r.margin,c=r.cols,s=r.rowHeight,f=r.maxRows,d=r.width,m=r.containerPadding,g=r.transformScale,h=null===i||void 0===i?void 0:i(t);if(!1===h)return e.state.droppingDOMNode&&e.removeDroppingPlaceholder(),!1;var b=v(v({},o),h),y=e.state.layout,w=t.nativeEvent,O=w.layerX,x=w.layerY,j={left:O/g,top:x/g,e:t};if(e.state.droppingDOMNode){if(e.state.droppingPosition){var k=e.state.droppingPosition,S=k.left,C=k.top;(S!=O||C!=x)&&e.setState({droppingPosition:j})}}else{var _={cols:c,margin:u,maxRows:f,rowHeight:s,containerWidth:d,containerPadding:m||u},M=(0,l.calcXY)(_,x,O,b.w,b.h);e.setState({droppingDOMNode:a.createElement("div",{key:b.i}),droppingPosition:j,layout:[].concat(p(y),[v(v({},b),{},{x:M.x,y:M.y,static:!1,isDraggable:!0})])})}})),k(x(e),"removeDroppingPlaceholder",(function(){var t=e.props,n=t.droppingItem,r=t.cols,a=e.state.layout,o=(0,u.compact)(a.filter((function(e){return e.i!==n.i})),(0,u.compactType)(e.props),r);e.setState({layout:o,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})})),k(x(e),"onDragLeave",(function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter--,0===e.dragEnterCounter&&e.removeDroppingPlaceholder()})),k(x(e),"onDragEnter",(function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter++})),k(x(e),"onDrop",(function(t){t.preventDefault(),t.stopPropagation();var n=e.props.droppingItem,r=e.state.layout,a=r.find((function(e){return e.i===n.i}));e.dragEnterCounter=0,e.removeDroppingPlaceholder(),e.props.onDrop(r,a,t)})),e}return t=f,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n;return t.activeDrag?null:((0,o.default)(e.layout,t.propsLayout)&&e.compactType===t.compactType?(0,u.childrenEqual)(e.children,t.children)||(n=t.layout):n=e.layout,n?{layout:(0,u.synchronizeLayoutWithChildren)(n,e.children,e.cols,(0,u.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}}],(n=[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.children!==e.children||!(0,u.fastRGLPropsEqual)(this.props,e,o.default)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}},{key:"componentDidUpdate",value:function(e,t){if(!this.state.activeDrag){var n=this.state.layout,r=t.layout;this.onLayoutMaybeChanged(n,r)}}},{key:"containerHeight",value:function(){if(this.props.autoSize){var e=(0,u.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+2*t+"px"}}},{key:"onLayoutMaybeChanged",value:function(e,t){t||(t=this.state.layout),(0,o.default)(t,e)||this.props.onLayoutChange(e)}},{key:"placeholder",value:function(){var e=this.state.activeDrag;if(!e)return null;var t=this.props,n=t.width,r=t.cols,o=t.margin,i=t.containerPadding,u=t.rowHeight,l=t.maxRows,s=t.useCSSTransforms,f=t.transformScale;return a.createElement(c.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:"react-grid-placeholder",containerWidth:n,cols:r,margin:o,containerPadding:i||o,maxRows:l,rowHeight:u,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:s,transformScale:f},a.createElement("div",null))}},{key:"processGridItem",value:function(e,t){if(e&&e.key){var n=(0,u.getLayoutItem)(this.state.layout,String(e.key));if(!n)return null;var r=this.props,o=r.width,i=r.cols,l=r.margin,s=r.containerPadding,f=r.rowHeight,d=r.maxRows,p=r.isDraggable,m=r.isResizable,v=r.isBounded,g=r.useCSSTransforms,h=r.transformScale,b=r.draggableCancel,y=r.draggableHandle,w=r.resizeHandles,O=r.resizeHandle,x=this.state,j=x.mounted,k=x.droppingPosition,E="boolean"===typeof n.isDraggable?n.isDraggable:!n.static&&p,P="boolean"===typeof n.isResizable?n.isResizable:!n.static&&m,S=n.resizeHandles||w,C=E&&v&&!1!==n.isBounded;return a.createElement(c.default,{containerWidth:o,cols:i,margin:l,containerPadding:s||l,maxRows:d,rowHeight:f,cancel:b,handle:y,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:E,isResizable:P,isBounded:C,useCSSTransforms:g&&j,usePercentages:!j,transformScale:h,w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,minH:n.minH,minW:n.minW,maxH:n.maxH,maxW:n.maxW,static:n.static,droppingPosition:t?k:void 0,resizeHandles:S,resizeHandle:O},e)}}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.style,o=t.isDroppable,l=t.innerRef,c=(0,i.default)(E,n),s=v({height:this.containerHeight()},r);return a.createElement("div",{ref:l,className:c,style:s,onDrop:o?this.onDrop:u.noop,onDragLeave:o?this.onDragLeave:u.noop,onDragEnter:o?this.onDragEnter:u.noop,onDragOver:o?this.onDragOver:u.noop},a.Children.map(this.props.children,(function(t){return e.processGridItem(t)})),o&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}])&&y(t.prototype,n),r&&y(t,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(a.Component);t.default=S,k(S,"displayName","ReactGridLayout"),k(S,"propTypes",s.default),k(S,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:u.noop,onDragStart:u.noop,onDrag:u.noop,onDragStop:u.noop,onResizeStart:u.noop,onResize:u.noop,onResizeStop:u.noop,onDrop:u.noop,onDropDragOver:u.noop})},92886:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resizeHandleType=t.resizeHandleAxesType=t.default=void 0;var r=o(n(45697)),a=o(n(67294));function o(e){return e&&e.__esModule?e:{default:e}}var i=r.default.arrayOf(r.default.oneOf(["s","w","e","n","sw","nw","se","ne"]));t.resizeHandleAxesType=i;var u=r.default.oneOfType([r.default.node,r.default.func]);t.resizeHandleType=u;var l={className:r.default.string,style:r.default.object,width:r.default.number,autoSize:r.default.bool,cols:r.default.number,draggableCancel:r.default.string,draggableHandle:r.default.string,verticalCompact:function(e){e.verticalCompact,0},compactType:r.default.oneOf(["vertical","horizontal"]),layout:function(e){var t=e.layout;void 0!==t&&n(67493).validateLayout(t,"layout")},margin:r.default.arrayOf(r.default.number),containerPadding:r.default.arrayOf(r.default.number),rowHeight:r.default.number,maxRows:r.default.number,isBounded:r.default.bool,isDraggable:r.default.bool,isResizable:r.default.bool,allowOverlap:r.default.bool,preventCollision:r.default.bool,useCSSTransforms:r.default.bool,transformScale:r.default.number,isDroppable:r.default.bool,resizeHandles:i,resizeHandle:u,onLayoutChange:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onDragStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,onResizeStop:r.default.func,onDrop:r.default.func,droppingItem:r.default.shape({i:r.default.string.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired}),children:function(e,t){var n=e[t],r={};a.default.Children.forEach(n,(function(e){if(null!=(null===e||void 0===e?void 0:e.key)){if(r[e.key])throw new Error('Duplicate child key "'+e.key+'" found! This will cause problems in ReactGridLayout.');r[e.key]=!0}}))},innerRef:r.default.any};t.default=l},65966:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(a,i,u):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=f(n(45697)),i=f(n(72307)),u=n(67493),l=n(5651),c=f(n(49580)),s=["breakpoint","breakpoints","cols","layouts","margin","containerPadding","onBreakpointChange","onLayoutChange","onWidthChange"];function f(e){return e&&e.__esModule?e:{default:e}}function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){x(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e,t){return b=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},b(e,t)}function y(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=O(e);if(t){var o=O(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return w(e)}(this,n)}}function w(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function O(e){return O=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},O(e)}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j=function(e){return Object.prototype.toString.call(e)};function k(e,t){return null==e?null:Array.isArray(e)?e:e[t]}var E=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&b(e,t)}(f,e);var t,n,r,o=y(f);function f(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return x(w(e=o.call.apply(o,[this].concat(n))),"state",e.generateInitialState()),x(w(e),"onLayoutChange",(function(t){e.props.onLayoutChange(t,g(g({},e.props.layouts),{},x({},e.state.breakpoint,t)))})),e}return t=f,r=[{key:"getDerivedStateFromProps",value:function(e,t){if(!(0,i.default)(e.layouts,t.layouts)){var n=t.breakpoint,r=t.cols;return{layout:(0,l.findOrGenerateResponsiveLayout)(e.layouts,e.breakpoints,n,n,r,e.compactType),layouts:e.layouts}}return null}}],(n=[{key:"generateInitialState",value:function(){var e=this.props,t=e.width,n=e.breakpoints,r=e.layouts,a=e.cols,o=(0,l.getBreakpointFromWidth)(n,t),i=(0,l.getColsFromBreakpoint)(o,a),u=!1===this.props.verticalCompact?null:this.props.compactType;return{layout:(0,l.findOrGenerateResponsiveLayout)(r,n,o,o,i,u),breakpoint:o,cols:i}}},{key:"componentDidUpdate",value:function(e){this.props.width==e.width&&this.props.breakpoint===e.breakpoint&&(0,i.default)(this.props.breakpoints,e.breakpoints)&&(0,i.default)(this.props.cols,e.cols)||this.onWidthChange(e)}},{key:"onWidthChange",value:function(e){var t=this.props,n=t.breakpoints,r=t.cols,a=t.layouts,o=t.compactType,i=this.props.breakpoint||(0,l.getBreakpointFromWidth)(this.props.breakpoints,this.props.width),c=this.state.breakpoint,s=(0,l.getColsFromBreakpoint)(i,r),f=g({},a);if(c!==i||e.breakpoints!==n||e.cols!==r){c in f||(f[c]=(0,u.cloneLayout)(this.state.layout));var d=(0,l.findOrGenerateResponsiveLayout)(f,n,i,c,s,o);d=(0,u.synchronizeLayoutWithChildren)(d,this.props.children,s,o,this.props.allowOverlap),f[i]=d,this.props.onLayoutChange(d,f),this.props.onBreakpointChange(i,s),this.setState({breakpoint:i,layout:d,cols:s})}var p=k(this.props.margin,i),m=k(this.props.containerPadding,i);this.props.onWidthChange(this.props.width,p,s,m)}},{key:"render",value:function(){var e=this.props,t=(e.breakpoint,e.breakpoints,e.cols,e.layouts,e.margin),n=e.containerPadding,r=(e.onBreakpointChange,e.onLayoutChange,e.onWidthChange,m(e,s));return a.createElement(c.default,p({},r,{margin:k(t,this.state.breakpoint),containerPadding:k(n,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}}])&&h(t.prototype,n),r&&h(t,r),Object.defineProperty(t,"prototype",{writable:!1}),f}(a.Component);t.default=E,x(E,"propTypes",{breakpoint:o.default.string,breakpoints:o.default.object,allowOverlap:o.default.bool,cols:o.default.object,margin:o.default.oneOfType([o.default.array,o.default.object]),containerPadding:o.default.oneOfType([o.default.array,o.default.object]),layouts:function(e,t){if("[object Object]"!==j(e[t]))throw new Error("Layout property must be an object. Received: "+j(e[t]));Object.keys(e[t]).forEach((function(t){if(!(t in e.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,u.validateLayout)(e.layouts[t],"layouts."+t)}))},width:o.default.number.isRequired,onBreakpointChange:o.default.func,onLayoutChange:o.default.func,onWidthChange:o.default.func}),x(E,"defaultProps",{breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},containerPadding:{lg:null,md:null,sm:null,xs:null,xxs:null},layouts:{},margin:[10,10],allowOverlap:!1,onBreakpointChange:u.noop,onLayoutChange:u.noop,onWidthChange:u.noop})},7373:function(e,t){"use strict";function n(e){var t=e.margin,n=e.containerPadding,r=e.containerWidth,a=e.cols;return(r-t[0]*(a-1)-2*n[0])/a}function r(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function a(e,t,n){return Math.max(Math.min(e,n),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.calcGridColWidth=n,t.calcGridItemPosition=function(e,t,a,o,i,u){var l=e.margin,c=e.containerPadding,s=e.rowHeight,f=n(e),d={};u&&u.resizing?(d.width=Math.round(u.resizing.width),d.height=Math.round(u.resizing.height)):(d.width=r(o,f,l[0]),d.height=r(i,s,l[1]));u&&u.dragging?(d.top=Math.round(u.dragging.top),d.left=Math.round(u.dragging.left)):(d.top=Math.round((s+l[1])*a+c[1]),d.left=Math.round((f+l[0])*t+c[0]));return d},t.calcGridItemWHPx=r,t.calcWH=function(e,t,r,o,i){var u=e.margin,l=e.maxRows,c=e.cols,s=e.rowHeight,f=n(e),d=Math.round((t+u[0])/(f+u[0])),p=Math.round((r+u[1])/(s+u[1]));return d=a(d,0,c-o),p=a(p,0,l-i),{w:d,h:p}},t.calcXY=function(e,t,r,o,i){var u=e.margin,l=e.cols,c=e.rowHeight,s=e.maxRows,f=n(e),d=Math.round((r-u[0])/(f+u[0])),p=Math.round((t-u[1])/(c+u[1]));return d=a(d,0,l-o),p=a(p,0,s-i),{x:d,y:p}},t.clamp=a},27135:function(e,t,n){"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=function(e){var t;return t=function(t){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&d(e,t)}(o,t);var n=function(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,a=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}(this,n)}}(o);function o(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o);for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return v(p(e=n.call.apply(n,[this].concat(r))),"state",{width:1280}),v(p(e),"elementRef",a.createRef()),v(p(e),"mounted",!1),v(p(e),"onWindowResize",(function(){if(e.mounted){var t=e.elementRef.current;t instanceof HTMLElement&&t.offsetWidth&&e.setState({width:t.offsetWidth})}})),e}return function(e,t,n){t&&f(e.prototype,t);n&&f(e,n);Object.defineProperty(e,"prototype",{writable:!1})}(o,[{key:"componentDidMount",value:function(){this.mounted=!0,window.addEventListener("resize",this.onWindowResize),this.onWindowResize()}},{key:"componentWillUnmount",value:function(){this.mounted=!1,window.removeEventListener("resize",this.onWindowResize)}},{key:"render",value:function(){var t=this.props,n=t.measureBeforeMount,r=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(t,u);return n&&!this.mounted?a.createElement("div",{className:(0,i.default)(this.props.className,g),style:this.props.style,ref:this.elementRef}):a.createElement(e,s({innerRef:this.elementRef},r,this.state))}}]),o}(a.Component),v(t,"defaultProps",{measureBeforeMount:!1}),v(t,"propTypes",{measureBeforeMount:o.default.bool}),t};var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=o?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(a,i,u):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=l(n(45697)),i=l(n(86010)),u=["measureBeforeMount"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g="react-grid-layout"},31362:function(e){e.exports=function(e,t,n){return e===t||e.className===t.className&&n(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&n(e.verticalCompact,t.verticalCompact)&&n(e.compactType,t.compactType)&&n(e.layout,t.layout)&&n(e.margin,t.margin)&&n(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.allowOverlap===t.allowOverlap&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&n(e.resizeHandles,t.resizeHandles)&&n(e.resizeHandle,t.resizeHandle)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&n(e.droppingItem,t.droppingItem)&&n(e.innerRef,t.innerRef)}},5651:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findOrGenerateResponsiveLayout=function(e,t,n,o,i,u){if(e[n])return(0,r.cloneLayout)(e[n]);for(var l=e[o],c=a(t),s=c.slice(c.indexOf(n)),f=0,d=s.length;f<d;f++){var p=s[f];if(e[p]){l=e[p];break}}return l=(0,r.cloneLayout)(l||[]),(0,r.compact)((0,r.correctBounds)(l,{cols:i}),u,i)},t.getBreakpointFromWidth=function(e,t){for(var n=a(e),r=n[0],o=1,i=n.length;o<i;o++){var u=n[o];t>e[u]&&(r=u)}return r},t.getColsFromBreakpoint=function(e,t){if(!t[e])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+" is missing!");return t[e]},t.sortBreakpoints=a;var r=n(67493);function a(e){return Object.keys(e).sort((function(t,n){return e[t]-e[n]}))}},67493:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bottom=f,t.childrenEqual=function(e,t){return(0,r.default)(a.default.Children.map(e,(function(e){return null===e||void 0===e?void 0:e.key})),a.default.Children.map(t,(function(e){return null===e||void 0===e?void 0:e.key})))},t.cloneLayout=d,t.cloneLayoutItem=m,t.collides=g,t.compact=h,t.compactItem=w,t.compactType=function(e){var t=e||{},n=t.verticalCompact,r=t.compactType;return!1===n?null:r},t.correctBounds=O,t.fastPositionEqual=function(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height},t.fastRGLPropsEqual=void 0,t.getAllCollisions=k,t.getFirstCollision=j,t.getLayoutItem=x,t.getStatics=E,t.modifyLayout=p,t.moveElement=P,t.moveElementAwayFromCollision=S,t.noop=void 0,t.perc=function(e){return 100*e+"%"},t.setTopLeft=function(e){var t=e.top,n=e.left,r=e.width,a=e.height;return{top:"".concat(t,"px"),left:"".concat(n,"px"),width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.setTransform=function(e){var t=e.top,n=e.left,r=e.width,a=e.height,o="translate(".concat(n,"px,").concat(t,"px)");return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.sortLayoutItems=C,t.sortLayoutItemsByColRow=M,t.sortLayoutItemsByRowCol=_,t.synchronizeLayoutWithChildren=function(e,t,n,r,o){e=e||[];var i=[];a.default.Children.forEach(t,(function(t){if(null!=(null===t||void 0===t?void 0:t.key)){var n=x(e,String(t.key));if(n)i.push(m(n));else{!c&&t.props._grid&&console.warn("`_grid` properties on children have been deprecated as of React 15.2. Please use `data-grid` or add your properties directly to the `layout`.");var r=t.props["data-grid"]||t.props._grid;r?(c||D([r],"ReactGridLayout.children"),i.push(m(u(u({},r),{},{i:t.key})))):i.push(m({w:1,h:1,x:0,y:f(i),i:String(t.key)}))}}}));var l=O(i,{cols:n});return o?l:h(l,r,n)},t.validateLayout=D,t.withLayoutItem=function(e,t,n){var r=x(e,t);return r?(r=n(m(r)),[e=p(e,r),r]):[e,null]};var r=o(n(72307)),a=o(n(67294));function o(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=!0,s=!1;function f(e){for(var t,n=0,r=0,a=e.length;r<a;r++)(t=e[r].y+e[r].h)>n&&(n=t);return n}function d(e){for(var t=Array(e.length),n=0,r=e.length;n<r;n++)t[n]=m(e[n]);return t}function p(e,t){for(var n=Array(e.length),r=0,a=e.length;r<a;r++)t.i===e[r].i?n[r]=t:n[r]=e[r];return n}function m(e){return{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:Boolean(e.moved),static:Boolean(e.static),isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,isBounded:e.isBounded}}var v=n(31362);function g(e,t){return e.i!==t.i&&(!(e.x+e.w<=t.x)&&(!(e.x>=t.x+t.w)&&(!(e.y+e.h<=t.y)&&!(e.y>=t.y+t.h))))}function h(e,t,n){for(var r=E(e),a=C(e,t),o=Array(e.length),i=0,u=a.length;i<u;i++){var l=m(a[i]);l.static||(l=w(r,l,t,n,a),r.push(l)),o[e.indexOf(a[i])]=l,l.moved=!1}return o}t.fastRGLPropsEqual=v;var b={x:"w",y:"h"};function y(e,t,n,r){var a=b[r];t[r]+=1;for(var o=e.map((function(e){return e.i})).indexOf(t.i)+1;o<e.length;o++){var i=e[o];if(!i.static){if(i.y>t.y+t.h)break;g(t,i)&&y(e,i,n+t[a],r)}}t[r]=n}function w(e,t,n,r,a){var o,i="horizontal"===n;if("vertical"===n)for(t.y=Math.min(f(e),t.y);t.y>0&&!j(e,t);)t.y--;else if(i)for(;t.x>0&&!j(e,t);)t.x--;for(;o=j(e,t);)i?y(a,t,o.x+o.w,"x"):y(a,t,o.y+o.h,"y"),i&&t.x+t.w>r&&(t.x=r-t.w,t.y++);return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function O(e,t){for(var n=E(e),r=0,a=e.length;r<a;r++){var o=e[r];if(o.x+o.w>t.cols&&(o.x=t.cols-o.w),o.x<0&&(o.x=0,o.w=t.cols),o.static)for(;j(n,o);)o.y++;else n.push(o)}return e}function x(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n].i===t)return e[n]}function j(e,t){for(var n=0,r=e.length;n<r;n++)if(g(e[n],t))return e[n]}function k(e,t){return e.filter((function(e){return g(e,t)}))}function E(e){return e.filter((function(e){return e.static}))}function P(e,t,n,r,a,o,i,u,l){if(t.static&&!0!==t.isDraggable)return e;if(t.y===r&&t.x===n)return e;A("Moving element ".concat(t.i," to [").concat(String(n),",").concat(String(r),"] from [").concat(t.x,",").concat(t.y,"]"));var c=t.x,s=t.y;"number"===typeof n&&(t.x=n),"number"===typeof r&&(t.y=r),t.moved=!0;var f=C(e,i);("vertical"===i&&"number"===typeof r?s>=r:"horizontal"===i&&"number"===typeof n&&c>=n)&&(f=f.reverse());var p=k(f,t),m=p.length>0;if(m&&l)return d(e);if(m&&o)return A("Collision prevented on ".concat(t.i,", reverting.")),t.x=c,t.y=s,t.moved=!1,e;for(var v=0,g=p.length;v<g;v++){var h=p[v];A("Resolving collision between ".concat(t.i," at [").concat(t.x,",").concat(t.y,"] and ").concat(h.i," at [").concat(h.x,",").concat(h.y,"]")),h.moved||(e=h.static?S(e,h,t,a,i,u):S(e,t,h,a,i,u))}return e}function S(e,t,n,r,a,o){var i="horizontal"===a,u="horizontal"!==a,l=t.static;if(r){r=!1;var c={x:i?Math.max(t.x-n.w,0):n.x,y:u?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"};if(!j(e,c))return A("Doing reverse collision on ".concat(n.i," up to [").concat(c.x,",").concat(c.y,"].")),P(e,n,i?c.x:void 0,u?c.y:void 0,r,l,a,o)}return P(e,n,i?n.x+1:void 0,u?n.y+1:void 0,r,l,a,o)}function C(e,t){return"horizontal"===t?M(e):"vertical"===t?_(e):e}function _(e){return e.slice(0).sort((function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1}))}function M(e){return e.slice(0).sort((function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1}))}function D(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Layout",n=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(var r=0,a=e.length;r<a;r++)for(var o=e[r],i=0;i<n.length;i++)if("number"!==typeof o[n[i]])throw new Error("ReactGridLayout: "+t+"["+r+"]."+n[i]+" must be a number!")}function A(){var e;s&&(e=console).log.apply(e,arguments)}t.noop=function(){}},69968:function(e,t,n){e.exports=n(49580).default,e.exports.utils=n(67493),e.exports.Responsive=n(65966).default,e.exports.Responsive.utils=n(5651),e.exports.WidthProvider=n(27135).default},9446:function(e,t,n){!function(e,t){"use strict";function n(e){return e*Math.PI/180}function r(e,t,n){return e>n?n:e<t?t:e}function a(e,t){return t/100*e}function o(e,t){return e+t/2}function i(e,t){var r=n(e);return{dx:t*Math.cos(r),dy:t*Math.sin(r)}}function u(e){return"number"===typeof e}function l(e,t){return"function"===typeof e?e(t):e}function c(e,t){var n=Object.assign({},t,e);for(var r in t)void 0===e[r]&&(n[r]=t[r]);return n}function s(e){for(var t=0,n=0;n<e.length;n++)t+=e[n].value;return t}function f(e){for(var t=e.data,n=e.lengthAngle,o=e.totalValue,i=e.paddingAngle,u=e.startAngle,l=o||s(t),c=r(n,-360,360),f=360===Math.abs(c)?t.length:t.length-1,d=Math.abs(i)*Math.sign(n),p=c-d*f,m=0,v=[],g=0;g<t.length;g++){var h=t[g],b=0===l?0:h.value/l*100,y=a(p,b),w=m+u;m=m+y+d,v.push(Object.assign({percentage:b,startAngle:w,degrees:y},h))}return v}function d(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}function p(e){var n=e.renderLabel,r=e.labelProps,a=n(r);if("string"===typeof a||"number"===typeof a){r.dataEntry,r.dataIndex;var o=d(r,["dataEntry","dataIndex"]);return t.createElement("text",Object.assign({dominantBaseline:"central"},o),a)}return t.isValidElement(a)?a:null}function m(e){var t=1e14;return Math.round((e+Number.EPSILON)*t)/t}function v(e){var t=e.labelPosition,n=e.lineWidth,r=m(e.labelHorizontalShift);return 0===r?"middle":t>100?r>0?"start":"end":t<100-n?r>0?"end":"start":"middle"}function g(e,t){return e.map((function(e,n){var r,u=null!=(r=l(t.segmentsShift,n))?r:0,c=a(t.radius,t.labelPosition)+u,s=i(o(e.startAngle,e.degrees),c),f=s.dx,d=s.dy;return{x:t.center[0],y:t.center[1],dx:f,dy:d,textAnchor:v({labelPosition:t.labelPosition,lineWidth:t.lineWidth,labelHorizontalShift:f}),dataEntry:e,dataIndex:n,style:l(t.labelStyle,n)}}))}function h(e,n){var r=n.label;if(r)return g(e,n).map((function(e,n){return t.createElement(p,{key:"label-"+(e.dataEntry.key||n),renderLabel:r,labelProps:e})}))}var b=function(e,t,n,r,a){var o=a-r;if(0===o)return[];var i=n*Math.cos(r)+e,u=n*Math.sin(r)+t,l=n*Math.cos(a)+e,c=n*Math.sin(a)+t;return[["M",i,u],["A",n,n,0,Math.abs(o)<=Math.PI?"0":"1",o<0?"0":"1",l,c]]};function y(e,t,a,o,i){var u=r(o,-359.999,359.999);return b(e,t,i,n(a),n(a+u)).map((function(e){return e.join(" ")})).join(" ")}function w(e){var r,l,c=e.cx,s=e.cy,f=e.lengthAngle,p=e.lineWidth,m=e.radius,v=e.shift,g=void 0===v?0:v,h=e.reveal,b=e.rounded,w=e.startAngle,O=e.title,x=d(e,["cx","cy","lengthAngle","lineWidth","radius","shift","reveal","rounded","startAngle","title"]),j=m-p/2,k=i(o(w,f),g),E=y(c+k.dx,s+k.dy,w,f,j);if(u(h)){var P=n(j)*f;l=(r=Math.abs(P))-a(r,h)}return t.createElement("path",Object.assign({d:E,fill:"none",strokeWidth:p,strokeDasharray:r,strokeDashoffset:l,strokeLinecap:b?"round":void 0},x),O&&t.createElement("title",null,O))}function O(e,t,n){var r="stroke-dashoffset "+e+"ms "+t;return n&&n.transition&&(r=r+","+n.transition),{transition:r}}function x(e){return e.animate&&!u(e.reveal)?100:e.reveal}function j(e,t){return e&&function(n){e(n,t)}}function k(e,n,r){var o=null!=r?r:x(n),i=n.radius,u=n.center,c=u[0],s=u[1],f=a(i,n.lineWidth),d=e.map((function(e,r){var a=l(n.segmentsStyle,r);return t.createElement(w,{cx:c,cy:s,key:e.key||r,lengthAngle:e.degrees,lineWidth:f,radius:i,rounded:n.rounded,reveal:o,shift:l(n.segmentsShift,r),startAngle:e.startAngle,title:e.title,style:Object.assign({},a,n.animate&&O(n.animationDuration,n.animationEasing,a)),stroke:e.color,tabIndex:n.segmentsTabIndex,onBlur:j(n.onBlur,r),onClick:j(n.onClick,r),onFocus:j(n.onFocus,r),onKeyDown:j(n.onKeyDown,r),onMouseOver:j(n.onMouseOver,r),onMouseOut:j(n.onMouseOut,r)})}));return n.background&&d.unshift(t.createElement(w,{cx:c,cy:s,key:"bg",lengthAngle:n.lengthAngle,lineWidth:f,radius:i,rounded:n.rounded,startAngle:n.startAngle,stroke:n.background})),d}var E={animationDuration:500,animationEasing:"ease-out",center:[50,50],data:[],labelPosition:50,lengthAngle:360,lineWidth:100,paddingAngle:0,radius:50,startAngle:0,viewBoxSize:[100,100]};function P(e){var n=c(e,E),r=t.useState(n.animate?0:null),a=r[0],o=r[1];t.useEffect((function(){n.animate&&o(null)}),[]);var i=f(n);return t.createElement("svg",{viewBox:"0 0 "+n.viewBoxSize[0]+" "+n.viewBoxSize[1],width:"100%",height:"100%",className:n.className,style:n.style},k(i,n,a),h(i,n),n.children)}e.PieChart=P,e.pieChartDefaultProps=E}(t,n(67294))},83:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){u=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(u)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}Object.defineProperty(t,"__esModule",{value:!0});var o=2,i=3,u=4;function l(e,t,n,r,a,l,c){this.acceptsBooleans=t===o||t===i||t===u,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=c}var c={};["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"].forEach((function(e){c[e]=new l(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=r(e,2),n=t[0],a=t[1];c[n]=new l(n,1,!1,a,null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){c[e]=new l(e,o,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){c[e]=new l(e,o,!1,e,null,!1,!1)})),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach((function(e){c[e]=new l(e,i,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){c[e]=new l(e,i,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){c[e]=new l(e,u,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){c[e]=new l(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){c[e]=new l(e,5,!1,e.toLowerCase(),null,!1,!1)}));var s=/[\-\:]([a-z])/g,f=function(e){return e[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach((function(e){var t=e.replace(s,f);c[t]=new l(t,1,!1,e,null,!1,!1)})),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach((function(e){var t=e.replace(s,f);c[t]=new l(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(s,f);c[t]=new l(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){c[e]=new l(e,1,!1,e.toLowerCase(),null,!1,!1)}));c.xlinkHref=new l("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){c[e]=new l(e,1,!1,e.toLowerCase(),null,!0,!0)}));var d=n(78229),p=d.CAMELCASE,m=d.SAME,v=d.possibleStandardNames,g=RegExp.prototype.test.bind(new RegExp("^(data|aria)-[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$")),h=Object.keys(v).reduce((function(e,t){var n=v[t];return n===m?e[t]=t:n===p?e[t.toLowerCase()]=t:e[t]=n,e}),{});t.BOOLEAN=i,t.BOOLEANISH_STRING=o,t.NUMERIC=5,t.OVERLOADED_BOOLEAN=u,t.POSITIVE_NUMERIC=6,t.RESERVED=0,t.STRING=1,t.getPropertyInfo=function(e){return c.hasOwnProperty(e)?c[e]:null},t.isCustomAttribute=g,t.possibleStandardNames=h},78229:function(e,t){t.SAME=0;t.CAMELCASE=1,t.possibleStandardNames={accept:0,acceptCharset:1,"accept-charset":"acceptCharset",accessKey:1,action:0,allowFullScreen:1,alt:0,as:0,async:0,autoCapitalize:1,autoComplete:1,autoCorrect:1,autoFocus:1,autoPlay:1,autoSave:1,capture:0,cellPadding:1,cellSpacing:1,challenge:0,charSet:1,checked:0,children:0,cite:0,class:"className",classID:1,className:1,cols:0,colSpan:1,content:0,contentEditable:1,contextMenu:1,controls:0,controlsList:1,coords:0,crossOrigin:1,dangerouslySetInnerHTML:1,data:0,dateTime:1,default:0,defaultChecked:1,defaultValue:1,defer:0,dir:0,disabled:0,disablePictureInPicture:1,disableRemotePlayback:1,download:0,draggable:0,encType:1,enterKeyHint:1,for:"htmlFor",form:0,formMethod:1,formAction:1,formEncType:1,formNoValidate:1,formTarget:1,frameBorder:1,headers:0,height:0,hidden:0,high:0,href:0,hrefLang:1,htmlFor:1,httpEquiv:1,"http-equiv":"httpEquiv",icon:0,id:0,innerHTML:1,inputMode:1,integrity:0,is:0,itemID:1,itemProp:1,itemRef:1,itemScope:1,itemType:1,keyParams:1,keyType:1,kind:0,label:0,lang:0,list:0,loop:0,low:0,manifest:0,marginWidth:1,marginHeight:1,max:0,maxLength:1,media:0,mediaGroup:1,method:0,min:0,minLength:1,multiple:0,muted:0,name:0,noModule:1,nonce:0,noValidate:1,open:0,optimum:0,pattern:0,placeholder:0,playsInline:1,poster:0,preload:0,profile:0,radioGroup:1,readOnly:1,referrerPolicy:1,rel:0,required:0,reversed:0,role:0,rows:0,rowSpan:1,sandbox:0,scope:0,scoped:0,scrolling:0,seamless:0,selected:0,shape:0,size:0,sizes:0,span:0,spellCheck:1,src:0,srcDoc:1,srcLang:1,srcSet:1,start:0,step:0,style:0,summary:0,tabIndex:1,target:0,title:0,type:0,useMap:1,value:0,width:0,wmode:0,wrap:0,about:0,accentHeight:1,"accent-height":"accentHeight",accumulate:0,additive:0,alignmentBaseline:1,"alignment-baseline":"alignmentBaseline",allowReorder:1,alphabetic:0,amplitude:0,arabicForm:1,"arabic-form":"arabicForm",ascent:0,attributeName:1,attributeType:1,autoReverse:1,azimuth:0,baseFrequency:1,baselineShift:1,"baseline-shift":"baselineShift",baseProfile:1,bbox:0,begin:0,bias:0,by:0,calcMode:1,capHeight:1,"cap-height":"capHeight",clip:0,clipPath:1,"clip-path":"clipPath",clipPathUnits:1,clipRule:1,"clip-rule":"clipRule",color:0,colorInterpolation:1,"color-interpolation":"colorInterpolation",colorInterpolationFilters:1,"color-interpolation-filters":"colorInterpolationFilters",colorProfile:1,"color-profile":"colorProfile",colorRendering:1,"color-rendering":"colorRendering",contentScriptType:1,contentStyleType:1,cursor:0,cx:0,cy:0,d:0,datatype:0,decelerate:0,descent:0,diffuseConstant:1,direction:0,display:0,divisor:0,dominantBaseline:1,"dominant-baseline":"dominantBaseline",dur:0,dx:0,dy:0,edgeMode:1,elevation:0,enableBackground:1,"enable-background":"enableBackground",end:0,exponent:0,externalResourcesRequired:1,fill:0,fillOpacity:1,"fill-opacity":"fillOpacity",fillRule:1,"fill-rule":"fillRule",filter:0,filterRes:1,filterUnits:1,floodOpacity:1,"flood-opacity":"floodOpacity",floodColor:1,"flood-color":"floodColor",focusable:0,fontFamily:1,"font-family":"fontFamily",fontSize:1,"font-size":"fontSize",fontSizeAdjust:1,"font-size-adjust":"fontSizeAdjust",fontStretch:1,"font-stretch":"fontStretch",fontStyle:1,"font-style":"fontStyle",fontVariant:1,"font-variant":"fontVariant",fontWeight:1,"font-weight":"fontWeight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:1,"glyph-name":"glyphName",glyphOrientationHorizontal:1,"glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphOrientationVertical:1,"glyph-orientation-vertical":"glyphOrientationVertical",glyphRef:1,gradientTransform:1,gradientUnits:1,hanging:0,horizAdvX:1,"horiz-adv-x":"horizAdvX",horizOriginX:1,"horiz-origin-x":"horizOriginX",ideographic:0,imageRendering:1,"image-rendering":"imageRendering",in2:0,in:0,inlist:0,intercept:0,k1:0,k2:0,k3:0,k4:0,k:0,kernelMatrix:1,kernelUnitLength:1,kerning:0,keyPoints:1,keySplines:1,keyTimes:1,lengthAdjust:1,letterSpacing:1,"letter-spacing":"letterSpacing",lightingColor:1,"lighting-color":"lightingColor",limitingConeAngle:1,local:0,markerEnd:1,"marker-end":"markerEnd",markerHeight:1,markerMid:1,"marker-mid":"markerMid",markerStart:1,"marker-start":"markerStart",markerUnits:1,markerWidth:1,mask:0,maskContentUnits:1,maskUnits:1,mathematical:0,mode:0,numOctaves:1,offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:1,"overline-position":"overlinePosition",overlineThickness:1,"overline-thickness":"overlineThickness",paintOrder:1,"paint-order":"paintOrder",panose1:0,"panose-1":"panose1",pathLength:1,patternContentUnits:1,patternTransform:1,patternUnits:1,pointerEvents:1,"pointer-events":"pointerEvents",points:0,pointsAtX:1,pointsAtY:1,pointsAtZ:1,prefix:0,preserveAlpha:1,preserveAspectRatio:1,primitiveUnits:1,property:0,r:0,radius:0,refX:1,refY:1,renderingIntent:1,"rendering-intent":"renderingIntent",repeatCount:1,repeatDur:1,requiredExtensions:1,requiredFeatures:1,resource:0,restart:0,result:0,results:0,rotate:0,rx:0,ry:0,scale:0,security:0,seed:0,shapeRendering:1,"shape-rendering":"shapeRendering",slope:0,spacing:0,specularConstant:1,specularExponent:1,speed:0,spreadMethod:1,startOffset:1,stdDeviation:1,stemh:0,stemv:0,stitchTiles:1,stopColor:1,"stop-color":"stopColor",stopOpacity:1,"stop-opacity":"stopOpacity",strikethroughPosition:1,"strikethrough-position":"strikethroughPosition",strikethroughThickness:1,"strikethrough-thickness":"strikethroughThickness",string:0,stroke:0,strokeDasharray:1,"stroke-dasharray":"strokeDasharray",strokeDashoffset:1,"stroke-dashoffset":"strokeDashoffset",strokeLinecap:1,"stroke-linecap":"strokeLinecap",strokeLinejoin:1,"stroke-linejoin":"strokeLinejoin",strokeMiterlimit:1,"stroke-miterlimit":"strokeMiterlimit",strokeWidth:1,"stroke-width":"strokeWidth",strokeOpacity:1,"stroke-opacity":"strokeOpacity",suppressContentEditableWarning:1,suppressHydrationWarning:1,surfaceScale:1,systemLanguage:1,tableValues:1,targetX:1,targetY:1,textAnchor:1,"text-anchor":"textAnchor",textDecoration:1,"text-decoration":"textDecoration",textLength:1,textRendering:1,"text-rendering":"textRendering",to:0,transform:0,typeof:0,u1:0,u2:0,underlinePosition:1,"underline-position":"underlinePosition",underlineThickness:1,"underline-thickness":"underlineThickness",unicode:0,unicodeBidi:1,"unicode-bidi":"unicodeBidi",unicodeRange:1,"unicode-range":"unicodeRange",unitsPerEm:1,"units-per-em":"unitsPerEm",unselectable:0,vAlphabetic:1,"v-alphabetic":"vAlphabetic",values:0,vectorEffect:1,"vector-effect":"vectorEffect",version:0,vertAdvY:1,"vert-adv-y":"vertAdvY",vertOriginX:1,"vert-origin-x":"vertOriginX",vertOriginY:1,"vert-origin-y":"vertOriginY",vHanging:1,"v-hanging":"vHanging",vIdeographic:1,"v-ideographic":"vIdeographic",viewBox:1,viewTarget:1,visibility:0,vMathematical:1,"v-mathematical":"vMathematical",vocab:0,widths:0,wordSpacing:1,"word-spacing":"wordSpacing",writingMode:1,"writing-mode":"writingMode",x1:0,x2:0,x:0,xChannelSelector:1,xHeight:1,"x-height":"xHeight",xlinkActuate:1,"xlink:actuate":"xlinkActuate",xlinkArcrole:1,"xlink:arcrole":"xlinkArcrole",xlinkHref:1,"xlink:href":"xlinkHref",xlinkRole:1,"xlink:role":"xlinkRole",xlinkShow:1,"xlink:show":"xlinkShow",xlinkTitle:1,"xlink:title":"xlinkTitle",xlinkType:1,"xlink:type":"xlinkType",xmlBase:1,"xml:base":"xmlBase",xmlLang:1,"xml:lang":"xmlLang",xmlns:0,"xml:space":"xmlSpace",xmlnsXlink:1,"xmlns:xlink":"xmlnsXlink",xmlSpace:1,y1:0,y2:0,y:0,yChannelSelector:1,z:0,zoomAndPan:1}},22827:function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=n(61193),o=n(59069),i=n(448),u=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}var m=function(e){var t,n;function i(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).handleRefs={},t.lastHandleRect=null,t.slack=null,t}n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,p(t,n);var l=i.prototype;return l.componentWillUnmount=function(){this.resetData()},l.resetData=function(){this.lastHandleRect=this.slack=null},l.runConstraints=function(e,t){var n=this.props,r=n.minConstraints,a=n.maxConstraints,o=n.lockAspectRatio;if(!r&&!a&&!o)return[e,t];if(o){var i=this.props.width/this.props.height,u=e-this.props.width,l=t-this.props.height;Math.abs(u)>Math.abs(l*i)?t=e/i:e=t*i}var c=e,s=t,f=this.slack||[0,0],d=f[0],p=f[1];return e+=d,t+=p,r&&(e=Math.max(r[0],e),t=Math.max(r[1],t)),a&&(e=Math.min(a[0],e),t=Math.min(a[1],t)),this.slack=[d+(c-e),p+(s-t)],[e,t]},l.resizeHandler=function(e,t){var n=this;return function(r,a){var o=a.node,i=a.deltaX,u=a.deltaY;"onResizeStart"===e&&n.resetData();var l=("both"===n.props.axis||"x"===n.props.axis)&&"n"!==t&&"s"!==t,c=("both"===n.props.axis||"y"===n.props.axis)&&"e"!==t&&"w"!==t;if(l||c){var s=t[0],f=t[t.length-1],d=o.getBoundingClientRect();if(null!=n.lastHandleRect){if("w"===f)i+=d.left-n.lastHandleRect.left;if("n"===s)u+=d.top-n.lastHandleRect.top}n.lastHandleRect=d,"w"===f&&(i=-i),"n"===s&&(u=-u);var p=n.props.width+(l?i/n.props.transformScale:0),m=n.props.height+(c?u/n.props.transformScale:0),v=n.runConstraints(p,m);p=v[0],m=v[1];var g=p!==n.props.width||m!==n.props.height,h="function"===typeof n.props[e]?n.props[e]:null;h&&!("onResize"===e&&!g)&&(null==r.persist||r.persist(),h(r,{node:o,size:{width:p,height:m},handle:t})),"onResizeStop"===e&&n.resetData()}}},l.renderResizeHandle=function(e,t){var n=this.props.handle;if(!n)return r.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e,ref:t});if("function"===typeof n)return n(e,t);var a=f({ref:t},"string"===typeof n.type?{}:{handleAxis:e});return r.cloneElement(n,a)},l.render=function(){var e=this,t=this.props,n=t.children,i=t.className,l=t.draggableOpts,s=(t.width,t.height,t.handle,t.handleSize,t.lockAspectRatio,t.axis,t.minConstraints,t.maxConstraints,t.onResize,t.onResizeStop,t.onResizeStart,t.resizeHandles),d=(t.transformScale,function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(t,u));return(0,o.cloneElement)(n,f(f({},d),{},{className:(i?i+" ":"")+"react-resizable",children:[].concat(n.props.children,s.map((function(t){var n,o=null!=(n=e.handleRefs[t])?n:e.handleRefs[t]=r.createRef();return r.createElement(a.DraggableCore,c({},l,{nodeRef:o,key:"resizableHandle-"+t,onStop:e.resizeHandler("onResizeStop",t),onStart:e.resizeHandler("onResizeStart",t),onDrag:e.resizeHandler("onResize",t)}),e.renderResizeHandle(t,o))})))}))},i}(r.Component);t.default=m,m.propTypes=i.resizableProps,m.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1}},8735:function(e,t,n){"use strict";t.default=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}r.default=e,n&&n.set(e,r);return r}(n(67294)),a=l(n(45697)),o=l(n(22827)),i=n(448),u=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},m(e,t)}var v=function(e){var t,n;function a(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).state={width:t.props.width,height:t.props.height,propsWidth:t.props.width,propsHeight:t.props.height},t.onResize=function(e,n){var r=n.size;t.props.onResize?(null==e.persist||e.persist(),t.setState(r,(function(){return t.props.onResize&&t.props.onResize(e,n)}))):t.setState(r)},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,m(t,n),a.getDerivedStateFromProps=function(e,t){return t.propsWidth!==e.width||t.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null},a.prototype.render=function(){var e=this.props,t=e.handle,n=e.handleSize,a=(e.onResize,e.onResizeStart),i=e.onResizeStop,l=e.draggableOpts,c=e.minConstraints,f=e.maxConstraints,p=e.lockAspectRatio,m=e.axis,v=(e.width,e.height,e.resizeHandles),g=e.style,h=e.transformScale,b=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,u);return r.createElement(o.default,{axis:m,draggableOpts:l,handle:t,handleSize:n,height:this.state.height,lockAspectRatio:p,maxConstraints:f,minConstraints:c,onResizeStart:a,onResize:this.onResize,onResizeStop:i,resizeHandles:v,transformScale:h,width:this.state.width},r.createElement("div",s({},b,{style:d(d({},g),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},a}(r.Component);t.default=v,v.propTypes=d(d({},i.resizableProps),{},{children:a.default.element})},448:function(e,t,n){"use strict";t.__esModule=!0,t.resizableProps=void 0;var r,a=(r=n(45697))&&r.__esModule?r:{default:r};n(61193);var o={axis:a.default.oneOf(["both","x","y","none"]),className:a.default.string,children:a.default.element.isRequired,draggableOpts:a.default.shape({allowAnyClick:a.default.bool,cancel:a.default.string,children:a.default.node,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:a.default.node,grid:a.default.arrayOf(a.default.number),handle:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number}),height:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=t[0];return"both"===o.axis||"y"===o.axis?(r=a.default.number).isRequired.apply(r,t):a.default.number.apply(a.default,t)},handle:a.default.oneOfType([a.default.node,a.default.func]),handleSize:a.default.arrayOf(a.default.number),lockAspectRatio:a.default.bool,maxConstraints:a.default.arrayOf(a.default.number),minConstraints:a.default.arrayOf(a.default.number),onResizeStop:a.default.func,onResizeStart:a.default.func,onResize:a.default.func,resizeHandles:a.default.arrayOf(a.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:a.default.number,width:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=t[0];return"both"===o.axis||"x"===o.axis?(r=a.default.number).isRequired.apply(r,t):a.default.number.apply(a.default,t)}};t.resizableProps=o},59069:function(e,t,n){"use strict";t.__esModule=!0,t.cloneElement=function(e,t){t.style&&e.props.style&&(t.style=i(i({},e.props.style),t.style));t.className&&e.props.className&&(t.className=e.props.className+" "+t.className);return a.default.cloneElement(e,t)};var r,a=(r=n(67294))&&r.__esModule?r:{default:r};function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},1706:function(e,t,n){"use strict";e.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},e.exports.Resizable=n(22827).default,e.exports.ResizableBox=n(8735).default},86718:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655).__importDefault(n(45503));t.default=function(e){return!e.prototype?r.default(e):e}},27162:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divWrapper=void 0;var r=n(70655),a=r.__importStar(n(67294)),o=r.__importDefault(n(86718)),i=a.createElement,u=function(e,t,n,a){var o;return i(e,t?r.__assign(((o={})[t]=a,o),n):r.__assign(r.__assign({},a),n))};t.divWrapper=function(e,t,n,r){return i("div",null,u(e,t,n,r))};t.default=function(e,t,n){void 0===n&&(n=u);var r=function(a,u,l){void 0===u&&(u=t),void 0===l&&(l=null);var c="string"===typeof a;if(c)return function(e){return r(e,a||t,u)};var s=function(t){return i(e,l,(function(e){return n(a,u,t,e)}))};return c?o.default(s):s};return r}},3:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655).__importDefault(n(95364)),a=function(e){return[e]};t.default=function(e,t){return void 0===t&&(t=a),function(n){return r.default(n,e.apply(void 0,t(n)))}}},96260:function(e,t,n){"use strict";var r=n(70655);r.__importDefault(n(95364)).default,r.__importDefault(n(27162)).default,r.__importDefault(n(3)).default},95364:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655),a=n(67294),o=parseInt(a.version.substr(0,a.version.indexOf(".")))>15;t.default=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var u=e.render,l=e.children,c=void 0===l?u:l,s=e.component,f=e.comp,d=void 0===f?s:f;return"function"===typeof c?c.apply(void 0,r.__spreadArrays([t],n)):d?a.createElement(d,t):c instanceof Array?o?c:a.createElement.apply(void 0,r.__spreadArrays(["div",null],c)):c&&c instanceof Object?"string"===typeof c.type?c:a.cloneElement(c,Object.assign({},c.props,t)):c||null}},45503:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(70655),a=r.__importStar(n(67294));t.default=function(e){var t=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(n,t),n.prototype.render=function(){return e(this.props,this.context)},n}(a.Component);return t}},54585:function(e,t,n){"use strict";n.r(t),n.d(t,{createBreakpoint:function(){return Pe},createGlobalState:function(){return mn},createMemo:function(){return o},createReducer:function(){return l},createReducerContext:function(){return i},createStateContext:function(){return c},ensuredForwardRef:function(){return ne},useAsync:function(){return p},useAsyncFn:function(){return d},useAsyncRetry:function(){return m},useAudio:function(){return b},useBattery:function(){return j},useBeforeUnload:function(){return k},useBoolean:function(){return P},useClickAway:function(){return C},useCookie:function(){return D},useCopyToClipboard:function(){return z},useCounter:function(){return F},useCss:function(){return q},useCustomCompareEffect:function(){return G},useDebounce:function(){return X.Z},useDeepCompareEffect:function(){return K},useDefault:function(){return $},useDrop:function(){return J},useDropArea:function(){return Q},useEffectOnce:function(){return ee.Z},useEnsuredForwardedRef:function(){return te},useError:function(){return ue},useEvent:function(){return ie},useFavicon:function(){return le},useFirstMountState:function(){return Ht.Z},useFullscreen:function(){return fe},useGeolocation:function(){return de},useGetSet:function(){return I},useGetSetState:function(){return pe},useHarmonicIntervalFn:function(){return ge},useHash:function(){return vn},useHover:function(){return be},useHoverDirty:function(){return ye},useIdle:function(){return xe},useIntersection:function(){return je},useInterval:function(){return ke.Z},useIsomorphicLayoutEffect:function(){return U.Z},useKey:function(){return Ee},useKeyPress:function(){return Se},useKeyPressEvent:function(){return Ce},useLatest:function(){return _e},useLifecycles:function(){return Me},useList:function(){return De},useLocalStorage:function(){return Ae},useLocation:function(){return Re},useLockBodyScroll:function(){return Be},useLogger:function(){return Ue},useLongPress:function(){return Ze},useMap:function(){return qe},useMeasure:function(){return sn.Z},useMedia:function(){return Ge.Z},useMediaDevices:function(){return Xe},useMediatedState:function(){return Ke},useMethods:function(){return $e},useMotion:function(){return Qe},useMount:function(){return et},useMountedState:function(){return f},useMouse:function(){return rt},useMouseHovered:function(){return ot},useMouseWheel:function(){return it},useMultiStateValidator:function(){return on},useNetworkState:function(){return st},useNumber:function(){return ft},useObservable:function(){return dt},useOrientation:function(){return mt},usePageLeave:function(){return vt},usePermission:function(){return gt},usePinchZoom:function(){return fn},usePrevious:function(){return ht.Z},usePreviousDistinct:function(){return bt.Z},usePromise:function(){return yt},useQueue:function(){return wt},useRaf:function(){return Ot},useRafLoop:function(){return xt},useRafState:function(){return nt},useRendersCount:function(){return dn},useScratch:function(){return St},useScroll:function(){return Ct},useScrollbarWidth:function(){return an},useScrolling:function(){return _t},useSearchParam:function(){return Et},useSessionStorage:function(){return Mt},useSet:function(){return pn},useSetState:function(){return v},useShallowCompareEffect:function(){return Tt},useSize:function(){return Lt},useSlider:function(){return It},useSpeech:function(){return Ft},useStartTyping:function(){return Wt},useStateList:function(){return Bt},useStateValidator:function(){return nn},useStateWithHistory:function(){return Vt},useThrottle:function(){return Ut},useThrottleFn:function(){return Yt},useTimeout:function(){return qt},useTimeoutFn:function(){return Zt.Z},useTitle:function(){return Xt},useToggle:function(){return E.Z},useTween:function(){return $t},useUnmount:function(){return tt.Z},useUnmountPromise:function(){return Jt},useUpdate:function(){return R},useUpdateEffect:function(){return u.Z},useUpsert:function(){return Qt},useVibrate:function(){return en},useVideo:function(){return tn},useWindowScroll:function(){return ln},useWindowSize:function(){return cn}});var r=n(67294),a=n.t(r,2),o=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0,r.useMemo)((function(){return e.apply(void 0,t)}),t)}},i=function(e,t){var n=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(n);if(null==e)throw new Error("useReducerContext must be used inside a ReducerProvider.");return e},function(a){var o=a.children,i=a.initialState;return function(e,t){return(0,r.createElement)(n.Provider,e,t)}({value:(0,r.useReducer)(e,void 0!==i?i:t)},o)},n]},u=n(48286);var l=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,a=(n=e,function(e,t){return n.reduceRight((function(t,n){return n(e)(t)}),t)});return function(e,t,n){void 0===n&&(n=function(e){return e});var o=(0,r.useRef)(n(t)),i=(0,r.useState)(o.current)[1],l=(0,r.useCallback)((function(t){return o.current=e(o.current,t),i(o.current),t}),[e]),c=(0,r.useRef)(a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return c.current.apply(c,e)}},l));return(0,u.Z)((function(){c.current=a({getState:function(){return o.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return c.current.apply(c,e)}},l)}),[l]),[o.current,c.current]}},c=function(e){var t=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(t);if(null==e)throw new Error("useStateContext must be used inside a StateProvider.");return e},function(n){var a=n.children,o=n.initialValue;return function(e,n){return(0,r.createElement)(t.Provider,e,n)}({value:(0,r.useState)(void 0!==o?o:e)},a)},t]},s=n(70655);function f(){var e=(0,r.useRef)(!1),t=(0,r.useCallback)((function(){return e.current}),[]);return(0,r.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),t}function d(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var a=(0,r.useRef)(0),o=f(),i=(0,r.useState)(n),u=i[0],l=i[1],c=(0,r.useCallback)((function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=++a.current;return u.loading||l((function(e){return(0,s.__assign)((0,s.__assign)({},e),{loading:!0})})),e.apply(void 0,t).then((function(e){return o()&&r===a.current&&l({value:e,loading:!1}),e}),(function(e){return o()&&r===a.current&&l({error:e,loading:!1}),e}))}),t);return[u,c]}function p(e,t){void 0===t&&(t=[]);var n=d(e,t,{loading:!0}),a=n[0],o=n[1];return(0,r.useEffect)((function(){o()}),[o]),a}var m=function(e,t){void 0===t&&(t=[]);var n=(0,r.useState)(0),a=n[0],o=n[1],i=p(e,(0,s.__spreadArrays)(t,[a])),u=i.loading,l=(0,r.useCallback)((function(){u||o((function(e){return e+1}))}),(0,s.__spreadArrays)(t,[u]));return(0,s.__assign)((0,s.__assign)({},i),{retry:l})},v=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(e){a((function(t){return Object.assign({},t,e instanceof Function?e(t):e)}))}),[])]};function g(e){for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function h(e){return function(t){var n,a;a=r.isValidElement(t)?(n=t).props:t;var o=v({buffered:[],time:0,duration:0,paused:!0,muted:!1,volume:1,playing:!1}),i=o[0],u=o[1],l=(0,r.useRef)(null),c=function(e,t){return function(n){try{t&&t(n)}finally{e&&e(n)}}},f=function(){return u({paused:!1})},d=function(){return u({playing:!0})},p=function(){return u({playing:!1})},m=function(){return u({paused:!0,playing:!1})},h=function(){var e=l.current;e&&u({muted:e.muted,volume:e.volume})},b=function(){var e=l.current;if(e){var t=e.duration,n=e.buffered;u({duration:t,buffered:g(n)})}},y=function(){var e=l.current;e&&u({time:e.currentTime})},w=function(){var e=l.current;e&&u({buffered:g(e.buffered)})};n=n?r.cloneElement(n,(0,s.__assign)((0,s.__assign)({controls:!1},a),{ref:l,onPlay:c(a.onPlay,f),onPlaying:c(a.onPlaying,d),onWaiting:c(a.onWaiting,p),onPause:c(a.onPause,m),onVolumeChange:c(a.onVolumeChange,h),onDurationChange:c(a.onDurationChange,b),onTimeUpdate:c(a.onTimeUpdate,y),onProgress:c(a.onProgress,w)})):r.createElement(e,(0,s.__assign)((0,s.__assign)({controls:!1},a),{ref:l,onPlay:c(a.onPlay,f),onPlaying:c(a.onPlaying,d),onWaiting:c(a.onWaiting,p),onPause:c(a.onPause,m),onVolumeChange:c(a.onVolumeChange,h),onDurationChange:c(a.onDurationChange,b),onTimeUpdate:c(a.onTimeUpdate,y),onProgress:c(a.onProgress,w)}));var O=!1,x={play:function(){var e=l.current;if(e&&!O){var t=e.play();if("object"===typeof t){O=!0;var n=function(){O=!1};t.then(n,n)}return t}},pause:function(){var e=l.current;if(e&&!O)return e.pause()},seek:function(e){var t=l.current;t&&void 0!==i.duration&&(e=Math.min(i.duration,Math.max(0,e)),t.currentTime=e)},volume:function(e){var t=l.current;t&&(e=Math.min(1,Math.max(0,e)),t.volume=e,u({volume:e}))},mute:function(){var e=l.current;e&&(e.muted=!0)},unmute:function(){var e=l.current;e&&(e.muted=!1)}};return(0,r.useEffect)((function(){var e=l.current;e&&(u({volume:e.volume,muted:e.muted,paused:e.paused}),a.autoPlay&&e.paused&&x.play())}),[a.src]),[n,i,x,l]}}var b=h("audio"),y=n(76362),w=n(38252),O=n.n(w)(),x=y.ae?navigator:void 0;var j=x&&"function"===typeof x.getBattery?function(){var e=(0,r.useState)({isSupported:!0,fetched:!1}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,r=null,a=function(){if(e&&r){var a={isSupported:!0,fetched:!0,level:r.level,charging:r.charging,dischargingTime:r.dischargingTime,chargingTime:r.chargingTime};!O(t,a)&&n(a)}};return x.getBattery().then((function(t){e&&(r=t,(0,y.on)(r,"chargingchange",a),(0,y.on)(r,"chargingtimechange",a),(0,y.on)(r,"dischargingtimechange",a),(0,y.on)(r,"levelchange",a),a())})),function(){e=!1,r&&((0,y.S1)(r,"chargingchange",a),(0,y.S1)(r,"chargingtimechange",a),(0,y.S1)(r,"dischargingtimechange",a),(0,y.S1)(r,"levelchange",a))}}),[]),t}:function(){return{isSupported:!1}},k=function(e,t){void 0===e&&(e=!0);var n=(0,r.useCallback)((function(n){if("function"!==typeof e||e())return n.preventDefault(),t&&(n.returnValue=t),t}),[e,t]);(0,r.useEffect)((function(){if(e)return(0,y.on)(window,"beforeunload",n),function(){return(0,y.S1)(window,"beforeunload",n)}}),[e,n])},E=n(89211),P=E.Z,S=["mousedown","touchstart"],C=function(e,t,n){void 0===n&&(n=S);var a=(0,r.useRef)(t);(0,r.useEffect)((function(){a.current=t}),[t]),(0,r.useEffect)((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&a.current(t)},r=0,o=n;r<o.length;r++){var i=o[r];(0,y.on)(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var a=r[e];(0,y.S1)(document,a,t)}}}),[n,e])},_=n(36808),M=n.n(_),D=function(e){var t=(0,r.useState)((function(){return M().get(e)||null})),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t,n){M().set(e,t,n),a(t)}),[e]),(0,r.useCallback)((function(){M().remove(e),a(null)}),[e])]},A=n(20640),T=n.n(A),z=function(){var e=f(),t=v({value:void 0,error:void 0,noUserInteraction:!0}),n=t[0],a=t[1];return[n,(0,r.useCallback)((function(t){var n,r;if(e())try{if("string"!==typeof t&&"number"!==typeof t){var o=new Error("Cannot copy typeof "+typeof t+" to clipboard, must be a string");return void a({value:t,error:o,noUserInteraction:!0})}if(""===t){o=new Error("Cannot copy empty string to clipboard.");return void a({value:t,error:o,noUserInteraction:!0})}r=t.toString(),n=T()(r),a({value:r,error:void 0,noUserInteraction:n})}catch(o){a({value:r,error:o,noUserInteraction:n})}}),[])]},N=function(e){return(e+1)%1e6};function R(){return(0,r.useReducer)(N,0)[1]}function L(e,t){return"function"===typeof e?e.length?e(t):e():e}function I(e){var t=(0,r.useRef)(L(e)),n=R();return(0,r.useMemo)((function(){return[function(){return t.current},function(e){t.current=L(e,t.current),n()}]}),[])}function F(e,t,n){void 0===e&&(e=0),void 0===t&&(t=null),void 0===n&&(n=null);var a=L(e);"number"!==typeof a&&console.error("initialValue has to be a number, got "+typeof e),"number"===typeof n?a=Math.max(a,n):null!==n&&console.error("min has to be a number, got "+typeof n),"number"===typeof t?a=Math.min(a,t):null!==t&&console.error("max has to be a number, got "+typeof t);var o=I(a),i=o[0],u=o[1];return[i(),(0,r.useMemo)((function(){var e=function(e){var r=i(),a=L(e,r);r!==a&&("number"===typeof n&&(a=Math.max(a,n)),"number"===typeof t&&(a=Math.min(a,t)),r!==a&&u(a))};return{get:i,set:e,inc:function(t){void 0===t&&(t=1);var n=L(t,i());"number"!==typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e+n}))},dec:function(t){void 0===t&&(t=1);var n=L(t,i());"number"!==typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e-n}))},reset:function(t){void 0===t&&(t=a);var n=L(t,i());"number"!==typeof n&&console.error("value has to be a number or function returning a number, got "+typeof n),a=n,e(n)}}}),[a,n,t])]}var W=n(40818),H=n(97142),V=n(52099),B=n(87749),U=n(11042),Y=(0,W.U)();(0,H.I)(Y),(0,V.I)(Y);var Z=0,q=function(e){var t=(0,r.useMemo)((function(){return"react-use-css-"+(Z++).toString(36)}),[]),n=(0,r.useMemo)((function(){return new Y.VSheet}),[]);return(0,U.Z)((function(){var r={};return(0,B.z)(r,e,"."+t,""),n.diff(r),function(){n.diff({})}})),t},G=function(e,t,n){var a=(0,r.useRef)(void 0);a.current&&n(t,a.current)||(a.current=t),(0,r.useEffect)(e,a.current)},X=n(62554),K=function(e,t){G(e,t,O)},$=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return void 0===a||null===a?[e,o]:[a,o]},J=function(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=e.onFiles,a=e.onText,o=e.onUri,i=(0,r.useState)(!1),u=i[0],l=i[1],c=(0,r.useCallback)(l,[]),f=(0,r.useMemo)((function(){return function(e){return function(t,n){var r=t.getData("text/uri-list");if(r)(e.onUri||y.ZT)(r,n);else if(t.files&&t.files.length)(e.onFiles||y.ZT)(Array.from(t.files),n);else if(n.clipboardData){var a=n.clipboardData.getData("text");(e.onText||y.ZT)(a,n)}}}(e)}),[n,a,o]);return(0,r.useEffect)((function(){var e=function(e){e.preventDefault(),c(!0)},t=function(e){e.preventDefault(),c(!0)},n=function(){c(!1)},r=function(){c(!1)},o=function(e){e.preventDefault(),c(!1),f(e.dataTransfer,e)},i=function(e){f(e.clipboardData,e)};return(0,y.on)(document,"dragover",e),(0,y.on)(document,"dragenter",t),(0,y.on)(document,"dragleave",n),(0,y.on)(document,"dragexit",r),(0,y.on)(document,"drop",o),a&&(0,y.on)(document,"paste",i),function(){(0,y.S1)(document,"dragover",e),(0,y.S1)(document,"dragenter",t),(0,y.S1)(document,"dragleave",n),(0,y.S1)(document,"dragexit",r),(0,y.S1)(document,"drop",o),(0,y.S1)(document,"paste",i)}}),(0,s.__spreadArrays)([f],t)),{over:u}},Q=function(e){void 0===e&&(e={});var t=e.onFiles,n=e.onText,a=e.onUri,o=f(),i=(0,r.useState)(!1),u=i[0],l=i[1],c=(0,r.useMemo)((function(){return function(e,t){return function(n,r){var a=n.getData("text/uri-list");a?(e.onUri||y.ZT)(a,r):n.files&&n.files.length?(e.onFiles||y.ZT)(Array.from(n.files),r):n.items&&n.items.length&&n.items[0].getAsString((function(n){t&&(e.onText||y.ZT)(n,r)}))}}(e,o())}),[t,n,a]),s=(0,r.useMemo)((function(){return function(e,t){return{onDragOver:function(e){e.preventDefault()},onDragEnter:function(e){e.preventDefault(),t(!0)},onDragLeave:function(){t(!1)},onDrop:function(n){n.preventDefault(),n.persist(),t(!1),e(n.dataTransfer,n)},onPaste:function(t){t.persist(),e(t.clipboardData,t)}}}(c,l)}),[c,l]);return[s,{over:u}]},ee=n(18127);function te(e){var t=(0,r.useRef)(e&&e.current);return(0,r.useEffect)((function(){e&&(e.current=t.current)}),[e]),t}function ne(e){return(0,r.forwardRef)((function(t,n){var r=te(n);return e(t,r)}))}var re=y.jU?window:null,ae=function(e){return!!e.addEventListener},oe=function(e){return!!e.on},ie=function(e,t,n,a){void 0===n&&(n=re),(0,r.useEffect)((function(){if(t&&n)return ae(n)?(0,y.on)(n,e,t,a):oe(n)&&n.on(e,t,a),function(){ae(n)?(0,y.S1)(n,e,t,a):oe(n)&&n.off(e,t,a)}}),[e,t,n,JSON.stringify(a)])},ue=function(){var e=(0,r.useState)(null),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(t)throw t}),[t]),(0,r.useCallback)((function(e){n(e)}),[])},le=function(e){(0,r.useEffect)((function(){var t=document.querySelector("link[rel*='icon']")||document.createElement("link");t.type="image/x-icon",t.rel="shortcut icon",t.href=e,document.getElementsByTagName("head")[0].appendChild(t)}),[e])},ce=n(10577),se=n.n(ce),fe=function(e,t,n){void 0===n&&(n={});var a=n.video,o=n.onClose,i=void 0===o?y.ZT:o,u=(0,r.useState)(t),l=u[0],c=u[1];return(0,U.Z)((function(){if(t&&e.current){var n=function(){(null===a||void 0===a?void 0:a.current)&&(0,y.S1)(a.current,"webkitendfullscreen",n),i()},r=function(){if(se().isEnabled){var e=se().isFullscreen;c(e),e||i()}};if(se().isEnabled){try{se().request(e.current),c(!0)}catch(u){i(u),c(!1)}se().on("change",r)}else a&&a.current&&a.current.webkitEnterFullscreen?(a.current.webkitEnterFullscreen(),(0,y.on)(a.current,"webkitendfullscreen",n),c(!0)):(i(),c(!1));return function(){if(c(!1),se().isEnabled)try{se().off("change",r),se().exit()}catch(o){}else a&&a.current&&a.current.webkitExitFullscreen&&((0,y.S1)(a.current,"webkitendfullscreen",n),a.current.webkitExitFullscreen())}}}),[t,a,e]),l},de=function(e){var t,n=(0,r.useState)({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now()}),a=n[0],o=n[1],i=!0,u=function(e){i&&o({loading:!1,accuracy:e.coords.accuracy,altitude:e.coords.altitude,altitudeAccuracy:e.coords.altitudeAccuracy,heading:e.coords.heading,latitude:e.coords.latitude,longitude:e.coords.longitude,speed:e.coords.speed,timestamp:e.timestamp})},l=function(e){return i&&o((function(t){return(0,s.__assign)((0,s.__assign)({},t),{loading:!1,error:e})}))};return(0,r.useEffect)((function(){return navigator.geolocation.getCurrentPosition(u,l,e),t=navigator.geolocation.watchPosition(u,l,e),function(){i=!1,navigator.geolocation.clearWatch(t)}}),[]),a},pe=function(e){void 0===e&&(e={});var t=R(),n=(0,r.useRef)((0,s.__assign)({},e));return[(0,r.useCallback)((function(){return n.current}),[]),(0,r.useCallback)((function(e){e&&(Object.assign(n.current,e),t())}),[])]},me=0,ve={},ge=function(e,t){void 0===t&&(t=0);var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=function(e,t){var n,r=me++;if(ve[t])ve[t].listeners[r]=e;else{var a=setInterval((function(){for(var e,n=ve[t].listeners,r=!1,a=0,o=Object.values(n);a<o.length;a++){var i=o[a];try{i()}catch(u){r=!0,e=u}}if(r)throw e}),t);ve[t]={ms:t,timer:a,listeners:(n={},n[r]=e,n)}}return{bucket:ve[t],id:r}}((function(){return n.current()}),t);return function(){return function(e){var t=e.bucket,n=e.id;delete t.listeners[n];var r=!1;for(var a in t.listeners){r=!0;break}r||(clearInterval(t.timer),delete ve[t.ms])}(e)}}}),[t])},he=r.useState,be=function(e){var t,n,a=he(!1),o=a[0],i=a[1];return"function"===typeof e&&(e=e(o)),[r.cloneElement(e,{onMouseEnter:(n=e.props.onMouseEnter,function(e){(n||y.ZT)(e),i(!0)}),onMouseLeave:(t=e.props.onMouseLeave,function(e){(t||y.ZT)(e),i(!1)})}),o]},ye=function(e,t){void 0===t&&(t=!0);var n=(0,r.useState)(!1),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){return o(!0)},r=function(){return o(!1)};t&&e&&e.current&&((0,y.on)(e.current,"mouseover",n),(0,y.on)(e.current,"mouseout",r));var a=e.current;return function(){t&&a&&((0,y.S1)(a,"mouseover",n),(0,y.S1)(a,"mouseout",r))}}),[t,e]),a};function we(e,t,n,r){var a,o=!1,i=0;function u(){a&&clearTimeout(a)}function l(){for(var l=arguments.length,c=new Array(l),s=0;s<l;s++)c[s]=arguments[s];var f=this,d=Date.now()-i;function p(){i=Date.now(),n.apply(f,c)}o||(r&&!a&&p(),u(),void 0===r&&d>e?p():!0!==t&&(a=setTimeout(r?function(){a=void 0}:p,void 0===r?e-d:e)))}return"boolean"!==typeof t&&(r=n,n=t,t=void 0),l.cancel=function(){u(),o=!0},l}var Oe=["mousemove","mousedown","resize","keydown","touchstart","wheel"],xe=function(e,t,n){void 0===e&&(e=6e4),void 0===t&&(t=!1),void 0===n&&(n=Oe);var a=(0,r.useState)(t),o=a[0],i=a[1];return(0,r.useEffect)((function(){for(var t,r=!0,a=o,u=function(e){r&&(a=e,i(e))},l=we(50,(function(){a&&u(!1),clearTimeout(t),t=setTimeout((function(){return u(!0)}),e)})),c=function(){document.hidden||l()},s=0;s<n.length;s++)(0,y.on)(window,n[s],l);return(0,y.on)(document,"visibilitychange",c),t=setTimeout((function(){return u(!0)}),e),function(){r=!1;for(var e=0;e<n.length;e++)(0,y.S1)(window,n[e],l);(0,y.S1)(document,"visibilitychange",c)}}),[e,n]),o},je=function(e,t){var n=(0,r.useState)(null),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(e.current&&"function"===typeof IntersectionObserver){var n=new IntersectionObserver((function(e){o(e[0])}),t);return n.observe(e.current),function(){o(null),n.disconnect()}}return function(){}}),[e.current,t.threshold,t.root,t.rootMargin]),a},ke=n(43337),Ee=function(e,t,n,a){void 0===t&&(t=y.ZT),void 0===n&&(n={}),void 0===a&&(a=[e]);var o=n.event,i=void 0===o?"keydown":o,u=n.target,l=n.options,c=(0,r.useMemo)((function(){var n,r="function"===typeof(n=e)?n:"string"===typeof n?function(e){return e.key===n}:n?function(){return!0}:function(){return!1};return function(e){if(r(e))return t(e)}}),a);ie(i,c,u,l)},Pe=function(e){return void 0===e&&(e={laptopL:1440,laptop:1024,tablet:768}),function(){var t=(0,r.useState)(y.jU?window.innerWidth:0),n=t[0],a=t[1];(0,r.useEffect)((function(){var e=function(){a(window.innerWidth)};return e(),(0,y.on)(window,"resize",e),function(){(0,y.S1)(window,"resize",e)}}));var o=(0,r.useMemo)((function(){return Object.entries(e).sort((function(e,t){return e[1]>=t[1]?1:-1}))}),[e]),i=o.reduce((function(e,t){var r=t[0],a=t[1];return n>=a?r:e}),o[0][0]);return i}},Se=function(e){var t=(0,r.useState)([!1,null]),n=t[0],a=t[1];return Ee(e,(function(e){return a([!0,e])}),{event:"keydown"},[n]),Ee(e,(function(e){return a([!1,e])}),{event:"keyup"},[n]),n},Ce=function(e,t,n,r){void 0===r&&(r=Se);var a=r(e),o=a[0],i=a[1];(0,u.Z)((function(){!o&&n?n(i):o&&t&&t(i)}),[o])},_e=function(e){var t=(0,r.useRef)(e);return t.current=e,t},Me=function(e,t){(0,r.useEffect)((function(){return e&&e(),function(){t&&t()}}),[])};var De=function(e){void 0===e&&(e=[]);var t=(0,r.useRef)(L(e)),n=R(),a=(0,r.useMemo)((function(){var r={set:function(e){t.current=L(e,t.current),n()},push:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.length&&a.set((function(t){return t.concat(e)}))},updateAt:function(e,t){a.set((function(n){var r=n.slice();return r[e]=t,r}))},insertAt:function(e,t){a.set((function(n){var r=n.slice();return e>r.length?r[e]=t:r.splice(e,0,t),r}))},update:function(e,t){a.set((function(n){return n.map((function(n){return e(n,t)?t:n}))}))},updateFirst:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0&&a.updateAt(r,n)},upsert:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0?a.updateAt(r,n):a.push(n)},sort:function(e){a.set((function(t){return t.slice().sort(e)}))},filter:function(e,t){a.set((function(n){return n.slice().filter(e,t)}))},removeAt:function(e){a.set((function(t){var n=t.slice();return n.splice(e,1),n}))},clear:function(){a.set([])},reset:function(){a.set(L(e).slice())}};return r.remove=r.removeAt,r}),[]);return[t.current,a]},Ae=function(e,t,n){if(!y.jU)return[t,y.ZT,y.ZT];if(!e)throw new Error("useLocalStorage key may not be falsy");var a=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,o=(0,r.useRef)((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,o=localStorage.getItem(e);return null!==o?a(o):(t&&localStorage.setItem(e,r(t)),t)}catch(i){return t}})),i=(0,r.useState)((function(){return o.current(e)})),u=i[0],l=i[1];(0,r.useLayoutEffect)((function(){return l(o.current(e))}),[e]);var c=(0,r.useCallback)((function(t){try{var r="function"===typeof t?t(u):t;if("undefined"===typeof r)return;var o=void 0;o=n?n.raw?"string"===typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,o),l(a(o))}catch(i){}}),[e,l]),s=(0,r.useCallback)((function(){try{localStorage.removeItem(e),l(void 0)}catch(i){}}),[e,l]);return[u,c,s]},Te=function(e){var t=window.history,n=t[e];t[e]=function(t){var r=n.apply(this,arguments),a=new Event(e.toLowerCase());return a.state=t,window.dispatchEvent(a),r}};y.jU&&(Te("pushState"),Te("replaceState"));var ze=function(e){var t=window.history,n=t.state,r=t.length,a=window.location;return{trigger:e,state:n,length:r,hash:a.hash,host:a.host,hostname:a.hostname,href:a.href,origin:a.origin,pathname:a.pathname,port:a.port,protocol:a.protocol,search:a.search}},Ne="function"===typeof Event,Re=y.jU&&Ne?function(){var e=(0,r.useState)(ze("load")),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){return n(ze("popstate"))},t=function(){return n(ze("pushstate"))},r=function(){return n(ze("replacestate"))};return(0,y.on)(window,"popstate",e),(0,y.on)(window,"pushstate",t),(0,y.on)(window,"replacestate",r),function(){(0,y.S1)(window,"popstate",e),(0,y.S1)(window,"pushstate",t),(0,y.S1)(window,"replacestate",r)}}),[]),t}:function(){return{trigger:"load",length:1}};function Le(e){if(!e)return null;if("BODY"===e.tagName)return e;if("IFRAME"===e.tagName){var t=e.contentDocument;return t?t.body:null}return e.offsetParent?Le(e.offsetParent):null}function Ie(e){var t=e||window.event;return t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)}var Fe=y.jU&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),We=new Map,He="object"===typeof document?document:void 0,Ve=!1,Be=He?function(e,t){void 0===e&&(e=!0);var n=(0,r.useRef)(He.body);t=t||n;var a=function(e){var t=We.get(e);t&&(1===t.counter?(We.delete(e),Fe?(e.ontouchmove=null,Ve&&((0,y.S1)(document,"touchmove",Ie),Ve=!1)):e.style.overflow=t.initialOverflow):We.set(e,{counter:t.counter-1,initialOverflow:t.initialOverflow}))};(0,r.useEffect)((function(){var n=Le(t.current);n&&(e?function(e){var t=We.get(e);t?We.set(e,{counter:t.counter+1,initialOverflow:t.initialOverflow}):(We.set(e,{counter:1,initialOverflow:e.style.overflow}),Fe?Ve||((0,y.on)(document,"touchmove",Ie,{passive:!1}),Ve=!0):e.style.overflow="hidden")}(n):a(n))}),[e,t.current]),(0,r.useEffect)((function(){var e=Le(t.current);if(e)return function(){a(e)}}),[])}:function(e,t){void 0===e&&(e=!0)},Ue=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];(0,ee.Z)((function(){return console.log.apply(console,(0,s.__spreadArrays)([e+" mounted"],t)),function(){return console.log(e+" unmounted")}})),(0,u.Z)((function(){console.log.apply(console,(0,s.__spreadArrays)([e+" updated"],t))}))},Ye=function(e){(function(e){return"touches"in e})(e)&&e.touches.length<2&&e.preventDefault&&e.preventDefault()},Ze=function(e,t){var n=void 0===t?{}:t,a=n.isPreventDefault,o=void 0===a||a,i=n.delay,u=void 0===i?300:i,l=(0,r.useRef)(),c=(0,r.useRef)(),s=(0,r.useCallback)((function(t){o&&t.target&&((0,y.on)(t.target,"touchend",Ye,{passive:!1}),c.current=t.target),l.current=setTimeout((function(){return e(t)}),u)}),[e,u,o]),f=(0,r.useCallback)((function(){l.current&&clearTimeout(l.current),o&&c.current&&(0,y.S1)(c.current,"touchend",Ye)}),[o]);return{onMouseDown:function(e){return s(e)},onTouchStart:function(e){return s(e)},onMouseUp:f,onMouseLeave:f,onTouchEnd:f}},qe=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{set:function(e,t){a((function(n){var r;return(0,s.__assign)((0,s.__assign)({},n),((r={})[e]=t,r))}))},setAll:function(e){a(e)},remove:function(e){a((function(t){var n=t,r=e;n[r];return(0,s.__rest)(n,["symbol"===typeof r?r:r+""])}))},reset:function(){return a(e)}}}),[a]),i=(0,s.__assign)({get:(0,r.useCallback)((function(e){return n[e]}),[n])},o);return[n,i]},Ge=n(94829),Xe=y.ae&&navigator.mediaDevices?function(){var e=(0,r.useState)({}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,t=function(){navigator.mediaDevices.enumerateDevices().then((function(t){e&&n({devices:t.map((function(e){return{deviceId:e.deviceId,groupId:e.groupId,kind:e.kind,label:e.label}}))})})).catch(y.ZT)};return(0,y.on)(navigator.mediaDevices,"devicechange",t),t(),function(){e=!1,(0,y.S1)(navigator.mediaDevices,"devicechange",t)}}),[]),t}:function(){return{}};function Ke(e,t){var n=(0,r.useRef)(e),a=(0,r.useState)(t),o=a[0],i=a[1];return[o,(0,r.useCallback)((function(e){2===n.current.length?n.current(e,i):i(n.current(e))}),[o])]}var $e=function(e,t){var n=(0,r.useMemo)((function(){return function(t,n){var r;return(r=e(t))[n.type].apply(r,n.payload)}}),[e]),a=(0,r.useReducer)(n,t),o=a[0],i=a[1],u=(0,r.useMemo)((function(){return Object.keys(e(t)).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i({type:t,payload:e})},e}),{})}),[e,t]);return[o,u]},Je={acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null},rotationRate:{alpha:null,beta:null,gamma:null},interval:16},Qe=function(e){void 0===e&&(e=Je);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(e){var t=e.acceleration,n=e.accelerationIncludingGravity,r=e.rotationRate,o=e.interval;a({acceleration:{x:t.x,y:t.y,z:t.z},accelerationIncludingGravity:{x:n.x,y:n.y,z:n.z},rotationRate:{alpha:r.alpha,beta:r.beta,gamma:r.gamma},interval:o})};return(0,y.on)(window,"devicemotion",e),function(){(0,y.S1)(window,"devicemotion",e)}}),[]),n},et=function(e){(0,ee.Z)((function(){e()}))},tt=n(77823),nt=function(e){var t=(0,r.useRef)(0),n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useCallback)((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){o(e)}))}),[]);return(0,tt.Z)((function(){cancelAnimationFrame(t.current)})),[a,i]},rt=function(e){var t=nt({docX:0,docY:0,posX:0,posY:0,elX:0,elY:0,elH:0,elW:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(t){if(e&&e.current){var n=e.current.getBoundingClientRect(),r=n.left,o=n.top,i=n.width,u=n.height,l=r+window.pageXOffset,c=o+window.pageYOffset,s=t.pageX-l,f=t.pageY-c;a({docX:t.pageX,docY:t.pageY,posX:l,posY:c,elX:s,elY:f,elH:u,elW:i})}};return(0,y.on)(document,"mousemove",t),function(){(0,y.S1)(document,"mousemove",t)}}),[e]),n},at={current:null},ot=function(e,t){void 0===t&&(t={});var n=!!t.whenHovered,r=!!t.bound,a=ye(e,n),o=rt(n&&!a?at:e);return r&&(o.elX=Math.max(0,Math.min(o.elX,o.elW)),o.elY=Math.max(0,Math.min(o.elY,o.elH))),o},it=function(){var e=(0,r.useState)(0),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(e){n(e.deltaY+t)};return(0,y.on)(window,"wheel",e,!1),function(){return(0,y.S1)(window,"wheel",e)}})),t},ut=y.ae?navigator:void 0,lt=ut&&(ut.connection||ut.mozConnection||ut.webkitConnection);function ct(e){var t=null===ut||void 0===ut?void 0:ut.onLine,n=null===e||void 0===e?void 0:e.online;return{online:t,previous:n,since:t!==n?new Date:null===e||void 0===e?void 0:e.since,downlink:null===lt||void 0===lt?void 0:lt.downlink,downlinkMax:null===lt||void 0===lt?void 0:lt.downlinkMax,effectiveType:null===lt||void 0===lt?void 0:lt.effectiveType,rtt:null===lt||void 0===lt?void 0:lt.rtt,saveData:null===lt||void 0===lt?void 0:lt.saveData,type:null===lt||void 0===lt?void 0:lt.type}}function st(e){var t=(0,r.useState)(null!==e&&void 0!==e?e:ct),n=t[0],a=t[1];return(0,r.useEffect)((function(){var e=function(){a(ct)};return(0,y.on)(window,"online",e,{passive:!0}),(0,y.on)(window,"offline",e,{passive:!0}),lt&&(0,y.on)(lt,"change",e,{passive:!0}),function(){(0,y.S1)(window,"online",e),(0,y.S1)(window,"offline",e),lt&&(0,y.S1)(lt,"change",e)}}),[]),n}var ft=F;var dt=function(e,t){var n=(0,r.useState)(t),a=n[0],o=n[1];return(0,U.Z)((function(){var t=e.subscribe(o);return function(){return t.unsubscribe()}}),[e]),a},pt={angle:0,type:"landscape-primary"},mt=function(e){void 0===e&&(e=pt);var t=(0,r.useState)(e),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=window.screen,n=!0,r=function(){if(n){var r=t.orientation;if(r){var o=r.angle,i=r.type;a({angle:o,type:i})}else void 0!==window.orientation?a({angle:"number"===typeof window.orientation?window.orientation:0,type:""}):a(e)}};return(0,y.on)(window,"orientationchange",r),r(),function(){n=!1,(0,y.S1)(window,"orientationchange",r)}}),[]),n},vt=function(e,t){void 0===t&&(t=[]),(0,r.useEffect)((function(){if(e){var t=function(t){var n=(t=t||window.event).relatedTarget||t.toElement;n&&"HTML"!==n.nodeName||e()};return(0,y.on)(document,"mouseout",t),function(){(0,y.S1)(document,"mouseout",t)}}}),t)},gt=function(e){var t=(0,r.useState)(""),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=!0,n=null,r=function(){t&&a((function(){var e;return null!==(e=null===n||void 0===n?void 0:n.state)&&void 0!==e?e:""}))};return navigator.permissions.query(e).then((function(e){n=e,(0,y.on)(n,"change",r),r()})).catch(y.ZT),function(){n&&(0,y.S1)(n,"change",r),t=!1,n=null}}),[e]),n},ht=n(37176),bt=n(44536),yt=function(){var e=f();return(0,r.useCallback)((function(t){return new Promise((function(n,r){t.then((function(t){e()&&n(t)}),(function(t){e()&&r(t)}))}))}),[])},wt=function(e){void 0===e&&(e=[]);var t=(0,r.useState)(e),n=t[0],a=t[1];return{add:function(e){a((function(t){return(0,s.__spreadArrays)(t,[e])}))},remove:function(){var e;return a((function(t){var n=t[0],r=t.slice(1);return e=n,r})),e},get first(){return n[0]},get last(){return n[n.length-1]},get size(){return n.length}}},Ot=function(e,t){void 0===e&&(e=1e12),void 0===t&&(t=0);var n=(0,r.useState)(0),a=n[0],o=n[1];return(0,U.Z)((function(){var n,r,a,i=function(){var t=Math.min(1,(Date.now()-a)/e);o(t),u()},u=function(){n=requestAnimationFrame(i)},l=setTimeout((function(){r=setTimeout((function(){cancelAnimationFrame(n),o(1)}),e),a=Date.now(),u()}),t);return function(){clearTimeout(r),clearTimeout(l),cancelAnimationFrame(n)}}),[e,t]),a};function xt(e,t){void 0===t&&(t=!0);var n=(0,r.useRef)(null),a=(0,r.useRef)(!1),o=(0,r.useRef)(e);o.current=e;var i=(0,r.useCallback)((function(e){a.current&&(o.current(e),n.current=requestAnimationFrame(i))}),[]),u=(0,r.useMemo)((function(){return[function(){a.current&&(a.current=!1,n.current&&cancelAnimationFrame(n.current))},function(){a.current||(a.current=!0,n.current=requestAnimationFrame(i))},function(){return a.current}]}),[]);return(0,r.useEffect)((function(){return t&&u[1](),u[0]}),[]),u}var jt,kt=function(e,t){return new URLSearchParams(e).get(t)},Et=y.jU?function(e){var t=window.location,n=(0,r.useState)((function(){return kt(t.search,e)})),a=n[0],o=n[1];return(0,r.useEffect)((function(){var n=function(){o(kt(t.search,e))};return(0,y.on)(window,"popstate",n),(0,y.on)(window,"pushstate",n),(0,y.on)(window,"replacestate",n),function(){(0,y.S1)(window,"popstate",n),(0,y.S1)(window,"pushstate",n),(0,y.S1)(window,"replacestate",n)}}),[]),a}:function(){return null},Pt=(n(96260),function(e){void 0===e&&(e={});var t=e.disabled,n=_e(e),a=(0,r.useState)({isScratching:!1}),o=a[0],i=a[1],u=(0,r.useRef)(o),l=(0,r.useRef)(!1),c=(0,r.useRef)(null),f=(0,r.useState)(null),d=f[0],p=f[1];return(0,r.useEffect)((function(){if(!t&&d){var e,r,a=function(e,t){cancelAnimationFrame(c.current),c.current=requestAnimationFrame((function(){var r=d.getBoundingClientRect(),a=r.left,o=r.top,l=a+window.scrollX,c=o+window.scrollY,f=e-l,p=t-c;i((function(e){var t=(0,s.__assign)((0,s.__assign)({},e),{dx:f-(e.x||0),dy:p-(e.y||0),end:Date.now(),isScratching:!0});return u.current=t,(n.current.onScratch||y.ZT)(t),t}))}))},o=function(e){a(e.pageX,e.pageY)},f=function(e){a(e.changedTouches[0].pageX,e.changedTouches[0].pageY)},p=function(){l.current&&(l.current=!1,u.current=(0,s.__assign)((0,s.__assign)({},u.current),{isScratching:!1}),(n.current.onScratchEnd||y.ZT)(u.current),i({isScratching:!1}),(0,y.S1)(window,"mousemove",o),(0,y.S1)(window,"touchmove",f),(0,y.S1)(window,"mouseup",e),(0,y.S1)(window,"touchend",r))};e=p,r=p;var m=function(t,a){if(l.current){var c=d.getBoundingClientRect(),s=c.left,p=c.top,m=s+window.scrollX,v=p+window.scrollY,g=t-m,h=a-v,b=Date.now(),w={isScratching:!0,start:b,end:b,docX:t,docY:a,x:g,y:h,dx:0,dy:0,elH:d.offsetHeight,elW:d.offsetWidth,elX:m,elY:v};u.current=w,(n.current.onScratchStart||y.ZT)(w),i(w),(0,y.on)(window,"mousemove",o),(0,y.on)(window,"touchmove",f),(0,y.on)(window,"mouseup",e),(0,y.on)(window,"touchend",r)}},v=function(e){l.current=!0,m(e.pageX,e.pageY)},g=function(e){l.current=!0,m(e.changedTouches[0].pageX,e.changedTouches[0].pageY)};return(0,y.on)(d,"mousedown",v),(0,y.on)(d,"touchstart",g),function(){(0,y.S1)(d,"mousedown",v),(0,y.S1)(d,"touchstart",g),(0,y.S1)(window,"mousemove",o),(0,y.S1)(window,"touchmove",f),(0,y.S1)(window,"mouseup",e),(0,y.S1)(window,"touchend",r),c.current&&cancelAnimationFrame(c.current),c.current=null,l.current=!1,u.current={isScratching:!1},i(u.current)}}}),[d,t,n]),[p,o]}),St=Pt,Ct=function(e){var t=nt({x:0,y:0}),n=t[0],a=t[1];return(0,r.useEffect)((function(){var t=function(){e.current&&a({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&(0,y.on)(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&(0,y.S1)(e.current,"scroll",t)}}),[e]),n},_t=function(e){var t=(0,r.useState)(!1),n=t[0],a=t[1];return(0,r.useEffect)((function(){if(e.current){var t,n=function(){a(!0),clearTimeout(t),t=setTimeout((function(){a(!1)}),150)};return(0,y.on)(e.current,"scroll",n,!1),function(){e.current&&(0,y.S1)(e.current,"scroll",n,!1)}}return function(){}}),[e]),n},Mt=function(e,t,n){if(!y.jU)return[t,function(){}];var a=(0,r.useState)((function(){try{var r=sessionStorage.getItem(e);return"string"!==typeof r?(sessionStorage.setItem(e,n?String(t):JSON.stringify(t)),t):n?r:JSON.parse(r||"null")}catch(a){return t}})),o=a[0],i=a[1];return(0,r.useEffect)((function(){try{var t=n?String(o):JSON.stringify(o);sessionStorage.setItem(e,t)}catch(a){}})),[o,i]},Dt=n(99376),At=function(e,t){return e.every((function(e,n){return(0,Dt.D)(e,t[n])}))},Tt=function(e,t){G(e,t,At)},zt=r.useState,Nt=r.useEffect,Rt=r.useRef,Lt=function(e,t){var n=void 0===t?{}:t,o=n.width,i=void 0===o?1/0:o,u=n.height,l=void 0===u?1/0:u;if(!y.jU)return["function"===typeof e?e({width:i,height:l}):e,{width:i,height:l}];var c=zt({width:i,height:l}),f=c[0],d=c[1];"function"===typeof e&&(e=e(f));var p=e.props.style||{},m=Rt(null),v=null,g=function(){var e=m.current,t=e?{width:e.offsetWidth,height:e.offsetHeight}:{width:i,height:l};d(t)},h=function(e){(0,y.on)(e,"resize",g),setTimeout(g,35)};return Nt((function(){var e=m.current;if(e){if(e.contentWindow)v=e.contentWindow,h(v);else{var t=function(){(0,y.on)(e,"load",t),v=e.contentWindow,h(v)};(0,y.S1)(e,"load",t)}return function(){v&&v.removeEventListener&&(0,y.S1)(v,"resize",g)}}}),[]),p.position="relative",[r.cloneElement.apply(a,(0,s.__spreadArrays)([e,{style:p}],(0,s.__spreadArrays)([r.createElement("iframe",{ref:m,style:{background:"transparent",border:"none",height:"100%",left:0,position:"absolute",top:0,width:"100%",zIndex:-1}})],r.Children.toArray(e.props.children)))),f]},It=function(e,t){void 0===t&&(t={});var n=f(),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useRef)(0),u=v({isSliding:!1,value:0}),l=u[0],c=u[1];return o.current=l.value,(0,r.useEffect)((function(){if(y.jU){var r=void 0===t.styles||t.styles,u=void 0!==t.reverse&&t.reverse;e.current&&r&&(e.current.style.userSelect="none");var l=function(){!a.current&&n()&&((t.onScrubStart||y.ZT)(),a.current=!0,c({isSliding:!0}),v())},s=function(){a.current&&n()&&((t.onScrubStop||y.ZT)(o.current),a.current=!1,c({isSliding:!1}),g())},f=function(e){l(),d(e)},d=t.vertical?function(e){return h(e.clientY)}:function(e){return h(e.clientX)},p=function(e){l(),m(e)},m=t.vertical?function(e){return h(e.changedTouches[0].clientY)}:function(e){return h(e.changedTouches[0].clientX)},v=function(){(0,y.on)(document,"mousemove",d),(0,y.on)(document,"mouseup",s),(0,y.on)(document,"touchmove",m),(0,y.on)(document,"touchend",s)},g=function(){(0,y.S1)(document,"mousemove",d),(0,y.S1)(document,"mouseup",s),(0,y.S1)(document,"touchmove",m),(0,y.S1)(document,"touchend",s)},h=function(r){cancelAnimationFrame(i.current),i.current=requestAnimationFrame((function(){if(n()&&e.current){var a=e.current.getBoundingClientRect(),o=t.vertical?a.top:a.left,i=t.vertical?a.height:a.width;if(!i)return;var l=(r-o)/i;l>1?l=1:l<0&&(l=0),u&&(l=1-l),c({value:l}),(t.onScrub||y.ZT)(l)}}))};return(0,y.on)(e.current,"mousedown",f),(0,y.on)(e.current,"touchstart",p),function(){(0,y.S1)(e.current,"mousedown",f),(0,y.S1)(e.current,"touchstart",p)}}}),[e,t.vertical]),l};!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(jt||(jt={}));var Ft=function(e,t){var n=(0,r.useRef)(!1),a=(0,r.useState)((function(){var e=t.voice||{},n=e.lang,r=void 0===n?"default":n,a=e.name,o=void 0===a?"":a;return{isPlaying:!1,status:jt[jt.init],lang:t.lang||"default",voiceInfo:{lang:r,name:o},rate:t.rate||1,pitch:t.pitch||1,volume:t.volume||1}})),o=a[0],i=a[1],u=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,s.__assign)((0,s.__assign)({},e),{isPlaying:!0,status:jt[jt.play]})}))}),[]),l=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,s.__assign)((0,s.__assign)({},e),{isPlaying:!1,status:jt[jt.pause]})}))}),[]),c=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,s.__assign)((0,s.__assign)({},e),{isPlaying:!1,status:jt[jt.end]})}))}),[]);return(0,r.useEffect)((function(){n.current=!0;var r=new SpeechSynthesisUtterance(e);return t.lang&&(r.lang=t.lang),t.voice&&(r.voice=t.voice),r.rate=t.rate||1,r.pitch=t.pitch||1,r.volume=t.volume||1,r.onstart=u,r.onpause=l,r.onresume=u,r.onend=c,window.speechSynthesis.speak(r),function(){n.current=!1}}),[]),o},Wt=function(e){(0,U.Z)((function(){var t=function(t){!function(){var e=document.activeElement,t=document.body;if(!e)return!1;if(e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")}()&&function(e){var t=e.keyCode,n=e.metaKey,r=e.ctrlKey,a=e.altKey;return!(n||r||a)&&(t>=48&&t<=57||t>=65&&t<=90)}(t)&&e(t)};return(0,y.on)(document,"keydown",t),function(){(0,y.S1)(document,"keydown",t)}}),[])},Ht=n(30644);function Vt(e,t,n){if(void 0===t&&(t=10),t<1)throw new Error("Capacity has to be greater than 1, got '"+t+"'");var a=(0,Ht.Z)(),o=(0,r.useState)(e),i=o[0],u=o[1],l=(0,r.useRef)(null!==n&&void 0!==n?n:[]),c=(0,r.useRef)(0);return a&&(l.current.length?(l.current[l.current.length-1]!==e&&l.current.push(e),l.current.length>t&&(l.current=l.current.slice(l.current.length-t))):l.current.push(e),c.current=l.current.length&&l.current.length-1),[i,(0,r.useCallback)((function(e){u((function(n){return(e=L(e,n))!==n&&(c.current<l.current.length-1&&(l.current=l.current.slice(0,c.current+1)),c.current=l.current.push(e)-1,l.current.length>t&&(l.current=l.current.slice(l.current.length-t))),e}))}),[i,t]),(0,r.useMemo)((function(){return{history:l.current,position:c.current,capacity:t,back:function(e){void 0===e&&(e=1),c.current&&u((function(){return c.current-=Math.min(e,c.current),l.current[c.current]}))},forward:function(e){void 0===e&&(e=1),c.current!==l.current.length-1&&u((function(){return c.current=Math.min(c.current+e,l.current.length-1),l.current[c.current]}))},go:function(e){e!==c.current&&u((function(){return c.current=e<0?Math.max(l.current.length+e,0):Math.min(l.current.length-1,e),l.current[c.current]}))}}}),[i])]}function Bt(e){void 0===e&&(e=[]);var t=f(),n=R(),a=(0,r.useRef)(0);(0,u.Z)((function(){e.length<=a.current&&(a.current=e.length-1,n())}),[e.length]);var o=(0,r.useMemo)((function(){return{next:function(){return o.setStateAt(a.current+1)},prev:function(){return o.setStateAt(a.current-1)},setStateAt:function(r){t()&&e.length&&r!==a.current&&(a.current=r>=0?r%e.length:e.length+r%e.length,n())},setState:function(r){if(t()){var o=e.length?e.indexOf(r):-1;if(-1===o)throw new Error("State '"+r+"' is not a valid state (does not exist in state list)");a.current=o,n()}}}}),[e]);return(0,s.__assign)({state:e[a.current],currentIndex:a.current},o)}var Ut=function(e,t){void 0===t&&(t=200);var n=(0,r.useState)(e),a=n[0],o=n[1],i=(0,r.useRef)(),u=(0,r.useRef)(null),l=(0,r.useRef)(0);return(0,r.useEffect)((function(){if(i.current)u.current=e,l.current=!0;else{o(e);var n=function(){l.current?(l.current=!1,o(u.current),i.current=setTimeout(n,t)):i.current=void 0};i.current=setTimeout(n,t)}}),[e]),(0,tt.Z)((function(){i.current&&clearTimeout(i.current)})),a},Yt=function(e,t,n){void 0===t&&(t=200);var a=(0,r.useState)(null),o=a[0],i=a[1],u=(0,r.useRef)(),l=(0,r.useRef)();return(0,r.useEffect)((function(){if(u.current)l.current=n;else{i(e.apply(void 0,n));var r=function(){l.current?(i(e.apply(void 0,l.current)),l.current=void 0,u.current=setTimeout(r,t)):u.current=void 0};u.current=setTimeout(r,t)}}),n),(0,tt.Z)((function(){u.current&&clearTimeout(u.current)})),o},Zt=n(34513);function qt(e){void 0===e&&(e=0);var t=R();return(0,Zt.Z)(t,e)}var Gt={restoreOnUnmount:!1};var Xt="undefined"!==typeof document?function(e,t){void 0===t&&(t=Gt);var n=(0,r.useRef)(document.title);document.title!==e&&(document.title=e),(0,r.useEffect)((function(){return t&&t.restoreOnUnmount?function(){document.title=n.current}:void 0}),[])}:function(e){},Kt=n(75534),$t=function(e,t,n){return void 0===e&&(e="inCirc"),void 0===t&&(t=200),void 0===n&&(n=0),(0,Kt.U[e])(Ot(t,n))},Jt=function(){var e=(0,r.useRef)(!1);return(0,ee.Z)((function(){return function(){e.current=!0}})),(0,r.useMemo)((function(){return function(t,n){return new Promise((function(r,a){t.then((function(t){e.current||r(t)}),(function(t){e.current?n?n(t):console.error("useUnmountPromise",t):a(t)}))}))}}),[])};function Qt(e,t){void 0===t&&(t=[]);var n=De(t),r=n[0],a=n[1];return[r,(0,s.__assign)((0,s.__assign)({},a),{upsert:function(t){a.upsert(e,t)}})]}var en=y.ae&&"vibrate"in navigator?function(e,t,n){void 0===e&&(e=!0),void 0===t&&(t=[1e3,1e3]),void 0===n&&(n=!0),(0,r.useEffect)((function(){var r;if(e&&(navigator.vibrate(t),n)){var a=t instanceof Array?t.reduce((function(e,t){return e+t})):t;r=setInterval((function(){navigator.vibrate(t)}),a)}return function(){e&&(navigator.vibrate(0),n&&clearInterval(r))}}),[e])}:y.ZT,tn=h("video");function nn(e,t,n){void 0===n&&(n=[void 0]);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),u=i[0],l=i[1],c=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,l):l(a.current(o.current))}),[l]);return(0,r.useEffect)((function(){c()}),[e]),[u,c]}var rn=function(e){if("undefined"==typeof document)return 0;if(document.body&&(!document.readyState||"loading"!==document.readyState)){if(!0!==e&&"number"==typeof rn.__cache)return rn.__cache;var t=document.createElement("div"),n=t.style;n.display="block",n.position="absolute",n.width="100px",n.height="100px",n.left="-999px",n.top="-999px",n.overflow="scroll",document.body.insertBefore(t,null);var r=t.clientWidth;if(0!==r)return rn.__cache=100-r,document.body.removeChild(t),rn.__cache;document.body.removeChild(t)}};function an(){var e=(0,r.useState)(rn()),t=e[0],n=e[1];return(0,r.useEffect)((function(){if("undefined"===typeof t){var e=requestAnimationFrame((function(){n(rn())}));return function(){return cancelAnimationFrame(e)}}}),[]),t}function on(e,t,n){if(void 0===n&&(n=[void 0]),"object"!==typeof e)throw new Error("states expected to be an object or array, got "+typeof e);var a=(0,r.useRef)(t),o=(0,r.useRef)(e);a.current=t,o.current=e;var i=(0,r.useState)(n),u=i[0],l=i[1],c=(0,r.useCallback)((function(){a.current.length>=2?a.current(o.current,l):l(a.current(o.current))}),[l]);return(0,r.useEffect)((function(){c()}),Object.values(e)),[u,c]}var un,ln=function(){var e=nt((function(){return{x:y.jU?window.pageXOffset:0,y:y.jU?window.pageYOffset:0}})),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){n((function(e){var t=window.pageXOffset,n=window.pageYOffset;return e.x!==t||e.y!==n?{x:t,y:n}:e}))};return e(),(0,y.on)(window,"scroll",e,{capture:!1,passive:!0}),function(){(0,y.S1)(window,"scroll",e)}}),[]),t},cn=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=nt({width:y.jU?window.innerWidth:e,height:y.jU?window.innerHeight:t}),a=n[0],o=n[1];return(0,r.useEffect)((function(){if(y.jU){var e=function(){o({width:window.innerWidth,height:window.innerHeight})};return(0,y.on)(window,"resize",e),function(){(0,y.S1)(window,"resize",e)}}}),[]),a},sn=n(88553);!function(e){e.ZOOMING_IN="ZOOMING_IN",e.ZOOMING_OUT="ZOOMING_OUT"}(un||(un={}));var fn=function(e){var t=(0,r.useMemo)((function(){return{evCache:[],prevDiff:-1}}),[e.current]),n=(0,r.useState)(),a=n[0],o=n[1],i=function(e){for(var n=0;n<t.evCache.length;n++)if(e.pointerId==t.evCache[n].pointerId){t.evCache[n]=e;break}if(2==t.evCache.length){var r=Math.abs(t.evCache[0].clientX-t.evCache[1].clientX);t.prevDiff>0&&(r>t.prevDiff&&o([un.ZOOMING_IN,r]),r<t.prevDiff&&o([un.ZOOMING_OUT,r])),t.prevDiff=r}},u=function(e){t.evCache.push(e)},l=function(e){c(e),t.evCache.length<2&&(t.prevDiff=-1)},c=function(e){for(var n=0;n<t.evCache.length;n++)if(t.evCache[n].pointerId==e.pointerId){t.evCache.splice(n,1);break}};return(0,r.useEffect)((function(){(null===e||void 0===e?void 0:e.current)&&(e.current.onpointerdown=u,e.current.onpointermove=i,e.current.onpointerup=l,e.current.onpointercancel=l,e.current.onpointerout=l,e.current.onpointerleave=l)}),[null===e||void 0===e?void 0:e.current]),a?{zoomingState:a[0],pinchState:a[1]}:{zoomingState:null,pinchState:0}};function dn(){return++(0,r.useRef)(0).current}var pn=function(e){void 0===e&&(e=new Set);var t=(0,r.useState)(e),n=t[0],a=t[1],o=(0,r.useMemo)((function(){return{add:function(e){return a((function(t){return new Set((0,s.__spreadArrays)(Array.from(t),[e]))}))},remove:function(e){return a((function(t){return new Set(Array.from(t).filter((function(t){return t!==e})))}))},toggle:function(e){return a((function(t){return t.has(e)?new Set(Array.from(t).filter((function(t){return t!==e}))):new Set((0,s.__spreadArrays)(Array.from(t),[e]))}))},reset:function(){return a(e)}}}),[a]),i=(0,s.__assign)({has:(0,r.useCallback)((function(e){return n.has(e)}),[n])},o);return[n,i]};function mn(e){var t={state:e instanceof Function?e():e,setState:function(e){t.state=L(e,t.state),t.setters.forEach((function(e){return e(t.state)}))},setters:[]};return function(){var e=(0,r.useState)(t.state),n=e[0],a=e[1];return(0,ee.Z)((function(){return function(){t.setters=t.setters.filter((function(e){return e!==a}))}})),(0,U.Z)((function(){t.setters.includes(a)||t.setters.push(a)})),[n,t.setState]}}var vn=function(){var e=(0,r.useState)((function(){return window.location.hash})),t=e[0],n=e[1],a=(0,r.useCallback)((function(){n(window.location.hash)}),[]);Me((function(){(0,y.on)(window,"hashchange",a)}),(function(){(0,y.S1)(window,"hashchange",a)}));var o=(0,r.useCallback)((function(e){e!==t&&(window.location.hash=e)}),[t]);return[t,o]}},76362:function(e,t,n){"use strict";n.d(t,{S1:function(){return o},ZT:function(){return r},ae:function(){return u},jU:function(){return i},on:function(){return a}});var r=function(){};function a(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function o(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var i="undefined"!==typeof window,u="undefined"!==typeof navigator},11042:function(e,t,n){"use strict";var r=n(67294),a=n(76362).jU?r.useLayoutEffect:r.useEffect;t.Z=a},88553:function(e,t,n){"use strict";var r=n(67294),a=n(11042),o=n(76362),i={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};t.Z=o.jU&&"undefined"!==typeof window.ResizeObserver?function(){var e=(0,r.useState)(null),t=e[0],n=e[1],o=(0,r.useState)(i),u=o[0],l=o[1],c=(0,r.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,a=t.width,o=t.height,i=t.top,u=t.left,c=t.bottom,s=t.right;l({x:n,y:r,width:a,height:o,top:i,left:u,bottom:c,right:s})}}))}),[]);return(0,a.Z)((function(){if(t)return c.observe(t),function(){c.disconnect()}}),[t]),[n,u]}:function(){return[o.ZT,i]}},94829:function(e,t,n){"use strict";var r=n(67294),a=n(76362);t.Z=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!a.jU&&window.matchMedia(e).matches}(e,t)),o=n[0],i=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&i(!!n.matches)};return n.addListener(r),i(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),o}},44536:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(67294),a=n(30644),o=function(e,t){return e===t};function i(e,t){void 0===t&&(t=o);var n=(0,r.useRef)(),i=(0,r.useRef)(e);return(0,a.Z)()||t(i.current,e)||(n.current=i.current,i.current=e),n.current}},10577:function(e){!function(){"use strict";var t="undefined"!==typeof window&&"undefined"!==typeof window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,a=n.length,o={};r<a;r++)if((e=n[r])&&e[1]in t){for(r=0;r<e.length;r++)o[n[0][r]]=e[r];return o}return!1}(),a={change:r.fullscreenchange,error:r.fullscreenerror},o={request:function(e,n){return new Promise(function(a,o){var i=function(){this.off("change",i),a()}.bind(this);this.on("change",i);var u=(e=e||t.documentElement)[r.requestFullscreen](n);u instanceof Promise&&u.then(i).catch(o)}.bind(this))},exit:function(){return new Promise(function(e,n){if(this.isFullscreen){var a=function(){this.off("change",a),e()}.bind(this);this.on("change",a);var o=t[r.exitFullscreen]();o instanceof Promise&&o.then(a).catch(n)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=a[e];r&&t.addEventListener(r,n,!1)},off:function(e,n){var r=a[e];r&&t.removeEventListener(r,n,!1)},raw:r};r?(Object.defineProperties(o,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),n?e.exports=o:window.screenfull=o):n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()},41476:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};t.__esModule=!0;var a=r(n(57848)),o=n(26678);t.default=function(e,t){var n={};return e&&"string"===typeof e?((0,a.default)(e,(function(e,r){e&&r&&(n[(0,o.camelCase)(e,t)]=r)})),n):n}},26678:function(e,t){"use strict";t.__esModule=!0,t.camelCase=void 0;var n=/^--[a-zA-Z0-9-]+$/,r=/-([a-z])/g,a=/^[^-]+$/,o=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,u=function(e,t){return t.toUpperCase()},l=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){return void 0===t&&(t={}),function(e){return!e||a.test(e)||n.test(e)}(e)?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(i,l):e.replace(o,l)).replace(r,u))}},57848:function(e,t,n){var r=n(18139);function a(e,t){var n,a=null;if(!e||"string"!==typeof e)return a;for(var o,i,u=r(e),l="function"===typeof t,c=0,s=u.length;c<s;c++)o=(n=u[c]).property,i=n.value,l?t(o,i,n):i&&(a||(a={}),a[o]=i);return a}e.exports=a,e.exports.default=a},41330:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"skeleton",use:"skeleton-usage",viewBox:"0 0 1225 192",content:'<symbol xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" viewBox="0 0 1225 192" id="skeleton"><path d="M-.464 126.486a.501.501 0 0 0-.036.187V197a.5.5 0 0 0 .5.5h1925.5c.28 0 .5-.224.5-.5V87.914a.498.498 0 0 0-.37-.483l-90.5-24.046a.503.503 0 0 0-.44.091l-88.62 70.036-67.7-75.319a.491.491 0 0 0-.63-.09l-111.22 69.485-102.25-64.143a.51.51 0 0 0-.68.132l-73.12 101.88-88.08-107.247a.505.505 0 0 0-.65-.11l-94.3 57.511-85.73-19.511a.49.49 0 0 0-.22 0l-96.57 22.108-15.8-26.017a.492.492 0 0 0-.33-.23l-71.441-14.668a.499.499 0 0 0-.287.026l-36.471 14.667a.503.503 0 0 0-.15.094l-33.007 30.039-27.171-48.716a.5.5 0 0 0-.814-.085l-51.672 59.467-84.567-55.42a.499.499 0 0 0-.654.094l-38.053 44.679-49.087-58.56-36.95-62.01a.5.5 0 0 0-.911.122l-33.249 120.05-27.307-40.101a.5.5 0 0 0-.819-.012l-33.743 46.692-51.595-20.913a.5.5 0 0 0-.357-.007l-89.706 32.263-80.733-47.642a.5.5 0 0 0-.662.14l-53.702 75.383-52.412-27.689-43.396-104.383a.5.5 0 0 0-.826-.15L82.968 63.1l-37.61-48.07a.5.5 0 0 0-.858.12L-.464 126.486Z" /></symbol>'});i().add(u);t.default=u},48196:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"correlations",use:"correlations-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="correlations"><path d="M12.99 15.24 17 17.58V22h2v-5.57l-4.02-2.35-1.99 1.16Zm9.22-9.45L18 1.59 13.79 5.8a.996.996 0 1 0 1.41 1.41l1.8-1.8v4.01l-5 2.92-5-2.91V5.41L8.79 7.2c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41L6 1.59l-4.21 4.2A.996.996 0 1 0 3.2 7.2L5 5.41v5.16l5.02 2.93L5 16.43V22h2v-4.43l12-7V5.41l1.79 1.79c.2.2.45.29.71.29.26 0 .51-.1.71-.29a.996.996 0 0 0 0-1.41Z" /></symbol>'});i().add(u);t.default=u},24631:function(e,t,n){"use strict";var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"dashboard_add_chart",use:"dashboard_add_chart-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="dashboard_add_chart"><path d="M20.333 14.844V7.978l-3.889-3.89-6.666 6.667-2.223-2.222-3.888 3.89v3.4a4.514 4.514 0 0 0 4.51 4.51H13.4a5.066 5.066 0 0 1-.722-1.666h-4.5a2.85 2.85 0 0 1-2.845-2.845v-2.71l2.222-2.223 2.223 2.222 6.666-6.667 2.223 2.223v5.177a3.692 3.692 0 0 0-1.112-.177 3.893 3.893 0 0 0-3.889 3.888 3.893 3.893 0 0 0 3.89 3.89 3.893 3.893 0 0 0 3.888-3.89 3.85 3.85 0 0 0-1.11-2.71Zm-.555 3.545h-1.39v1.389h-1.666v-1.39h-1.389v-1.666h1.39v-1.389h1.666v1.39h1.389v1.666Z" /></symbol>'});i().add(u);t.Z=u},89416:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"drag_vertical",use:"drag_vertical-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="drag_vertical"><path d="M3 15h8.25v4.628l-1.943-1.936L8.25 18.75 12 22.5l3.75-3.75-1.057-1.058-1.943 1.936V15H21v-1.5H3V15ZM8.25 5.25l1.057 1.058 1.943-1.936V9H3v1.5h18V9h-8.25V4.372l1.943 1.936L15.75 5.25 12 1.5 8.25 5.25Z" /></symbol>'});i().add(u);t.default=u},79608:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"plugins",use:"plugins-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="plugins"><path d="M21.71 7.29c-.94-.94-2.47-.94-3.41 0L16 9.59 14.41 8l2.29-2.29c.94-.94.94-2.47 0-3.41s-2.47-.94-3.41 0L11 4.59l-.57-.57a1.31 1.31 0 0 0-1.85 0L6.86 5.73c-.84.84-1.4 1.89-1.63 3.05l-.65 3.23-.33.33c-.58.58-.9 1.35-.9 2.17 0 .82.32 1.59.9 2.16l.84.84L2.3 20.3a.996.996 0 0 0 .71 1.7c.26 0 .51-.1.71-.29l2.78-2.8.84.84a3.068 3.068 0 0 0 4.33-.01l.33-.33 3.23-.65a5.99 5.99 0 0 0 3.05-1.63L20 15.41c.51-.51.51-1.34 0-1.85l-.57-.57 2.29-2.29c.93-.93.93-2.47-.01-3.41Zm-7-3.58c.16-.16.42-.16.59 0 .16.16.16.42 0 .59L13 6.59 12.41 6l2.3-2.29Zm2.15 12.02c-.56.56-1.26.93-2.03 1.09l-3.82.76-.76.76c-.41.41-1.09.41-1.5 0l-3.08-3.09a1.06 1.06 0 0 1 0-1.5l.76-.76.69-3.46 3.77 3.76c.78.78 2.05.78 2.83 0L7.94 7.53c.1-.13.21-.26.33-.38L9.5 5.91l8.59 8.59-1.23 1.23Zm3.43-6.44L18 11.59l-.59-.59 2.29-2.29c.16-.16.42-.16.59 0 .16.16.16.42 0 .58Z" /></symbol>'});i().add(u);t.default=u},97507:function(e,t,n){"use strict";n.r(t);var r=n(87854),a=n.n(r),o=n(95348),i=n.n(o),u=new(a())({id:"selected_area",use:"selected_area-usage",viewBox:"0 0 24 24",content:'<symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" id="selected_area"><path d="M15 19.5h3v3h1.5v-3h3V18h-3v-3H18v3h-3v1.5ZM9 19.5h3V18H9v1.5ZM6 19.5V18H3v-3H1.5v3A1.5 1.5 0 0 0 3 19.5h3ZM18 12h1.5V9H18v3ZM18 3v3h1.5V3A1.5 1.5 0 0 0 18 1.5h-3V3h3ZM1.5 12H3V9H1.5v3ZM9 3h3V1.5H9V3ZM3 6V3h3V1.5H3A1.5 1.5 0 0 0 1.5 3v3H3Z" /></symbol>'});i().add(u);t.default=u},11742:function(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},75534:function(e,t){"use strict";t.U={linear:function(e){return e},quadratic:function(e){return e*(-e*e*e+4*e*e-6*e+4)},cubic:function(e){return e*(4*e*e-9*e+6)},elastic:function(e){return e*(33*e*e*e*e-106*e*e*e+126*e*e-67*e+15)},inQuad:function(e){return e*e},outQuad:function(e){return e*(2-e)},inOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},inCubic:function(e){return e*e*e},outCubic:function(e){return--e*e*e+1},inOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},inQuart:function(e){return e*e*e*e},outQuart:function(e){return 1- --e*e*e*e},inOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},inQuint:function(e){return e*e*e*e*e},outQuint:function(e){return 1+--e*e*e*e*e},inOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},inSine:function(e){return 1-Math.cos(e*(Math.PI/2))},outSine:function(e){return Math.sin(e*(Math.PI/2))},inOutSine:function(e){return-(Math.cos(Math.PI*e)-1)/2},inExpo:function(e){return Math.pow(2,10*(e-1))},outExpo:function(e){return 1-Math.pow(2,-10*e)},inOutExpo:function(e){return(e/=.5)<1?Math.pow(2,10*(e-1))/2:(e--,(2-Math.pow(2,-10*e))/2)},inCirc:function(e){return 1-Math.sqrt(1-e*e)},outCirc:function(e){return Math.sqrt(1-(e-=1)*e)},inOutCirc:function(e){return(e/=.5)<1?-(Math.sqrt(1-e*e)-1)/2:(e-=2,(Math.sqrt(1-e*e)+1)/2)}}},44682:function(e,t,n){"use strict";n.d(t,{Sz:function(){return f},kr:function(){return s}});var r=n(67294),a=n(63840),o=n(73935);const i=Symbol(),u=Symbol(),l="undefined"==typeof window||/ServerSideRendering/.test(window.navigator&&window.navigator.userAgent)?r.useEffect:r.useLayoutEffect,c=a.unstable_runWithPriority?e=>(0,a.unstable_runWithPriority)(a.unstable_NormalPriority,e):e=>e();function s(e){const t=(0,r.createContext)({[i]:{v:{current:e},n:{current:-1},l:new Set,u:e=>e()}});var n;return t[u]=t.Provider,t.Provider=(n=t.Provider,({value:e,children:t})=>{const a=(0,r.useRef)(e),u=(0,r.useRef)(0),[s,f]=(0,r.useState)(null);s&&(s(e),f(null));const d=(0,r.useRef)();if(!d.current){const e=new Set,t=(t,n)=>{(0,o.unstable_batchedUpdates)((()=>{u.current+=1;const r={n:u.current};null!=n&&n.suspense&&(r.n*=-1,r.p=new Promise((e=>{f((()=>t=>{r.v=t,delete r.p,e(t)}))}))),e.forEach((e=>e(r))),t()}))};d.current={[i]:{v:a,n:u,l:e,u:t}}}return l((()=>{a.current=e,u.current+=1,c((()=>{d.current[i].l.forEach((t=>{t({n:u.current,v:e})}))}))}),[e]),(0,r.createElement)(n,{value:d.current},t)}),delete t.Consumer,t}function f(e,t){const n=(0,r.useContext)(e)[i];const{v:{current:a},n:{current:o},l:u}=n,c=t(a),[s,f]=(0,r.useReducer)(((e,n)=>{if(!n)return[a,c];if("p"in n)throw n.p;if(n.n===o)return Object.is(e[1],c)?e:[a,c];try{if("v"in n){if(Object.is(e[0],n.v))return e;const r=t(n.v);return Object.is(e[1],r)?e:[n.v,r]}}catch(e){}return[...e]}),[a,c]);return Object.is(s[1],c)||f(),l((()=>(u.add(f),()=>{u.delete(f)})),[u]),s[1]}},25935:function(e,t,n){"use strict";var r=n(30488);r.domToReact,r.htmlToDOM,r.attributesToProps,r.Comment,r.Element,r.ProcessingInstruction,r.Text;t.ZP=r}}]); \ No newline at end of file
diff --git a/web/gui/v2/969.888044e63adb99d3626d.chunk.js b/web/gui/v2/969.64ecdcbb7383f4baee16.chunk.js
index 5f0d5dc6..2f849977 100644
--- a/web/gui/v2/969.888044e63adb99d3626d.chunk.js
+++ b/web/gui/v2/969.64ecdcbb7383f4baee16.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="32a21b29-475e-474e-884b-27f4f6e7d2ea",e._sentryDebugIdIdentifier="sentry-dbid-32a21b29-475e-474e-884b-27f4f6e7d2ea")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[969],{65969:function(e,n,d){d.r(n);var f=d(29439),t=d(67294),l=d(61152),o=d(15794),a=d(18663);n.default=function(){var e=(0,l.Z)("manageInvitations"),n=(0,f.Z)(e,4),d=n[0],r=n[3];return t.createElement(o.Z,null,d&&t.createElement(a.l,{onClose:r}))}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="32a21b29-475e-474e-884b-27f4f6e7d2ea",e._sentryDebugIdIdentifier="sentry-dbid-32a21b29-475e-474e-884b-27f4f6e7d2ea")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[969],{65969:function(e,n,d){d.r(n);var f=d(29439),t=d(67294),l=d(61152),o=d(15794),a=d(18663);n.default=function(){var e=(0,l.Z)("manageInvitations"),n=(0,f.Z)(e,4),d=n[0],b=n[3];return t.createElement(o.Z,null,d&&t.createElement(a.l,{onClose:b}))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/977.96e2ff6feb44e920b79e.chunk.js b/web/gui/v2/977.f955167348f6c9037af1.chunk.js
index 2c2276de..584d71a6 100644
--- a/web/gui/v2/977.96e2ff6feb44e920b79e.chunk.js
+++ b/web/gui/v2/977.f955167348f6c9037af1.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="ad16849a-842c-420b-9e25-4763fbd33db3",e._sentryDebugIdIdentifier="sentry-dbid-ad16849a-842c-420b-9e25-4763fbd33db3")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[977],{92432:function(e,t,n){n.d(t,{L:function(){return r}});var r=function(e,t,n,r,i){var o,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"gaCustomEvent";if(window.envSettings.tracking){if(window.dataLayer){var l={event:a,eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:i};window.dataLayer.push(l)}window.gtag&&window.gtag("event","gaCustomEvent",{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:i}),null!==(o=window.posthog)&&void 0!==o&&o.__loaded&&window.posthog.capture(a,{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r})}}},91940:function(e,t,n){n.d(t,{Z:function(){return L}});var r=n(87462),i=n(45987),o=n(67294),a=n(94829),l=n(15557),c=(0,n(60677).default)(l.Flex).attrs({flex:{grow:"1",shrink:"0"},width:{max:"100%"}}).withConfig({displayName:"panel__Panel",componentId:"sc-4zlw7c-0"})(["",";",";"],(function(e){var t=e.order;return t&&"order: ".concat(t,";")}),(function(e){return e.bgGradient&&"background: linear-gradient(34.14deg, #536775 -26.52%, #2F3A42 53.66%);\n"})),d=n(26502),u=function(){return o.createElement(l.Flex,{alignItems:"center",border:{side:"bottom",color:"disabled"},column:!0,padding:[0,0,8,0]},o.createElement(d.pR,null))},s=(n(21249),n(57640),n(9924),[{icon:"qualityOfServiceSolid",title:"Free forever",text:"Netdata community is free forever and gives you everything you need to start monitoring. For more serious enterprise users, paid subscriptions are available for added-value features."},{icon:"firewallSolid",title:"Privacy by design",text:"Netdata\u2019s distributed architecture is key to its incredible speed and scalability. It\u2019s also key to data safety, as your metrics are only ever streamed live, and will never be centrally stored by Netdata."}]),g=n(29439),m=(n(69826),n(41539),n(31672),n(2490),n(59461),n(46189)),f=n(5429),p=n(26398),h=["children"],v=["downScale"],w=function(e){var t,n=e.downScale,l=(0,i.Z)(e,v),c=(0,a.Z)("(min-width: 992px)");return(t=c?n[0]:n[1],function(e){var n=e.children,a=(0,i.Z)(e,h);return o.createElement(t,(0,r.Z)({color:"bright"},a),n)})(l)},b=n(87854),y=n.n(b),x=n(95348),k=n.n(x),E=new(y())({id:"cloudStatistics",use:"cloudStatistics-usage",viewBox:"0 0 194 146",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 194 146" id="cloudStatistics"><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M9.557 142.145h174.886a7.576 7.576 0 0 0 7.607-7.577v-.594H1.95v.594c0 4.16 3.43 7.577 7.607 7.577Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M81.749 137.688h30.577c2.088 0 3.729-1.634 3.729-3.714H78.02a3.733 3.733 0 0 0 3.729 3.714ZM15.374 108.493V34.949c0-4.457 3.58-8.023 8.055-8.023H60.12M178.701 44.83v89.143H15.374v-17.086M140.442 27h30.204c4.475 0 8.055 3.566 8.055 8.023v2.526" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.879 32.2h38.408c.671 0 1.193.52 1.193 1.189v94.939c0 .668-.522 1.188-1.193 1.188H67.131M20.595 44.086V33.39c0-.669.522-1.189 1.193-1.189h33.187M55.274 129.516H21.863c-.671 0-1.194-.52-1.194-1.188V49.881M78.766 106.487h-7.83c-5.967 0-10.815-4.828-10.815-10.771v-69.83c0-5.943 4.848-10.771 10.814-10.771h19.017M90.698 106.487H86.82" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.208 67.71V95.64c0 5.943-4.848 10.772-10.814 10.772H93.681M107.851 15.114h14.543c5.966 0 10.814 4.83 10.814 10.772V59.39M101.064 1H92.19a2.319 2.319 0 0 0-2.312 2.303v22.954a2.319 2.319 0 0 0 2.312 2.303h8.874a2.319 2.319 0 0 0 2.312-2.302V3.227c0-1.262-1.044-2.228-2.312-2.228Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 24.029a2.977 2.977 0 0 0 2.983-2.972 2.977 2.977 0 0 0-2.983-2.971 2.977 2.977 0 0 0-2.983 2.971 2.977 2.977 0 0 0 2.983 2.972ZM107.851 70.607c-2.834 2.897-6.786 4.68-11.186 4.68-8.652 0-15.662-6.983-15.662-15.6 0-8.618 7.01-15.6 15.662-15.6 8.651 0 15.661 6.982 15.661 15.6 0 2.748-.746 5.348-2.014 7.577" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 64.144c3.296 0 5.967-2.66 5.967-5.943 0-3.282-2.671-5.943-5.967-5.943-3.295 0-5.966 2.66-5.966 5.943 0 3.282 2.671 5.943 5.966 5.943ZM111.207 85.687h3.356M78.766 85.687h28.34M97.037 90.144h10.068M86.224 90.144h7.756M99.424 64.144h-5.519c-2.983 0-5.444 2.451-5.444 5.423v3.491M104.868 73.058v-3.565c0-1.635-.671-3.046-1.79-4.012" /><path fill="#2F3A42" d="M42.808 75.03c-19.315 0-34.915 15.6-34.915 34.914 0 19.315 15.6 34.915 34.915 34.915 19.314 0 34.914-15.6 34.914-34.915 0-19.314-15.6-34.914-34.914-34.914Zm3.714 52.743H34.636L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828a17.786 17.786 0 0 1-17.829 17.829Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M45.556 127.773h-10.92L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828 0 6.463-3.417 12.109-8.617 15.229" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M67.768 85.504c6.166 6.314 9.954 14.932 9.954 24.44 0 19.315-15.6 34.915-34.914 34.915-19.315 0-34.915-15.6-34.915-34.915 0-19.314 15.6-34.914 34.915-34.914 6.091 0 11.886 1.56 16.863 4.308" /></symbol>'}),C=(k().add(E),E),S=function(e){return o.createElement(l.Flex,(0,r.Z)({as:"svg",height:C.height,width:C.width,viewBox:C.viewBox},e),o.createElement("use",{xlinkHref:"#".concat(C.id)}))},_=n(92432),Z=function(){return p.Z.get("https://us-east1-netdata-analytics-bi.cloudfunctions.net/netdata_public_metrics_website")},M=m.Z.demoSlug,T=function(){var e=(0,f.Z)((function(){return{fetch:Z}}),[]),t=(0,g.Z)(e,1)[0],n=(0,o.useMemo)((function(){var e,n,r;return t?{nodesOnline:null===(e=t.find((function(e){return"Nodes Online"===e.key})))||void 0===e?void 0:e.value,githubStars:null===(n=t.find((function(e){return"GitHub Stars"===e.key})))||void 0===n?void 0:n.value,dockerHubPulls:null===(r=t.find((function(e){return"DockerHub Pulls"===e.key})))||void 0===r?void 0:r.value}:{}}),[t]),r=n.nodesOnline,i=n.githubStars,a=n.dockerHubPulls;return o.createElement(l.Flex,{column:!0,gap:4},o.createElement(l.Flex,{column:!0,gap:2},o.createElement(S,{height:"160px",padding:[0,0,4,0]}),o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},r||"...")," ","Nodes Online"),o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},i||"...")," ","GitHub Stars"),o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},a||"...")," ","DockerHub Pulls")),o.createElement(w,{downScale:[l.TextBigger,l.TextBig],color:"bright",textAlign:"center",margin:[11,0,0]},"Sign in to monitor your entire infrastructure ",o.createElement("br",null)," with Netdata"),!window.envSettings.onprem&&o.createElement(l.Flex,{justifyContent:"center"},o.createElement(l.Button,{as:"a","data-ga":"signinup::click-demo::sni-view",href:"/spaces/".concat(M),target:"_blank",onClick:function(){(0,_.L)("signinup","click-demo","sni-view")},label:"Live Demo",padding:[2,8]})))},B=function(e){var t=e.icon,n=e.title,r=e.text,i=(0,a.Z)("(min-width: 475px)");return o.createElement(l.Flex,{gap:4,alignItems:"start"},i&&o.createElement(l.Flex,{background:"transparent",justifyContent:"center",alignItems:"center",height:"64px",width:"64px",round:64,flex:"grow",border:{side:"all",color:"successLite"}},o.createElement(l.Icon,{name:t,height:"20px",widht:"20px",color:"successLite"})),o.createElement(l.Flex,{column:!0,justifyContent:"start",alignItems:"start",gap:2},o.createElement(l.TextBig,{color:"bright",strong:!0},n),o.createElement(l.Text,{color:"selected"},r)))},F=function(){return o.createElement(l.Flex,{column:!0,padding:[16,4,12],width:{max:"500px"},margin:[0,"auto"],gap:14},o.createElement(T,null),o.createElement(l.Flex,{column:!0,gap:8},s.map((function(e,t){return o.createElement(B,(0,r.Z)({key:t},e))}))))},I=["children"],L=function(e){var t=e.children,n=(0,i.Z)(e,I),d=(0,a.Z)("(min-width: 998px)");return o.createElement(l.Flex,(0,r.Z)({height:{min:"100vh"},flexWrap:!0},n),o.createElement(c,{background:"panel",bgGradient:!0,order:d?0:1},o.createElement(F,null)),o.createElement(c,{background:"mainBackground",order:d?1:0},o.createElement(l.Flex,{background:"transparent",column:!0,gap:8,padding:[12,4],width:{max:"500px"},margin:[0,"auto"]},o.createElement(u,null),t)))}},8360:function(e,t,n){var r=n(67294),i=n(15557),o=n(78312),a={url:"https://learn.netdata.cloud/",title:"docs"},l={url:"https://community.netdata.cloud/c/support/cloud-support/15",title:"forums"},c={url:"https://discord.gg/TjM6XCwC4e",title:"public discord channel"};t.Z=function(){return r.createElement(i.Text,{textAlign:"center"},"Need help? Check out our"," ",r.createElement(o.Fg,{href:a.url,target:"_blank",rel:"noopener noreferrer"},a.title,",")," ",r.createElement(o.Fg,{href:l.url,target:"_blank",rel:"noopener noreferrer"},l.title)," ","or"," ",r.createElement(o.Fg,{href:c.url,target:"_blank",rel:"noopener noreferrer"},c.title))}},98977:function(e,t,n){n.r(t);var r=n(67294),i=n(15557),o=n(1043),a=n(78312),l=n(97096),c=n(8360),d=n(91940);t.default=function(){var e=(0,o.T4)();return r.createElement(d.Z,{"data-testid":"signIn"},r.createElement(i.H1,{textAlign:"center"},"Thank you!"),r.createElement(i.TextBig,{textAlign:"center"},"Your email has been verified."),r.createElement(a.Yb,{gap:8,onSubmit:function(e){return e.preventDefault()}},r.createElement(i.TextBig,{textAlign:"center"},"Please accept our ",r.createElement(l.w,{tagging:"snue-view"})," and"," ",r.createElement(l.F,{tagging:"snue-view"}),"."),r.createElement(i.Flex,{width:"100%",justifyContent:"center",alignItems:"center","data-testid":"signUpVerification-acceptTerms"},r.createElement(a.Sn,{type:"submit",label:"I accept",onClick:e,"data-ga":"signinup::click-signup::snue-view","data-testid":"signUpVerification-acceptTerms-submit",width:"100%"}))),r.createElement(c.Z,null))}},78312:function(e,t,n){n.d(t,{Fg:function(){return l},P2:function(){return d},Sn:function(){return u},U5:function(){return c},Yb:function(){return s},xG:function(){return a}});var r=n(60677),i=n(15557),o=n(16772),a=r.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),l=r.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("main"),(0,i.getSizeBy)(1)),c=(0,r.default)(o.Z).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["label{margin-bottom:0;}> div{display:none;}"]),d=(0,r.default)(i.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,i.getSizeBy)(2),(function(e){return e.error&&(0,i.getColor)("error")})),u=(0,r.default)(i.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),s=(0,r.default)(i.Flex).attrs((function(e){var t=e.gap;return{column:!0,gap:void 0===t?8:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},97096:function(e,t,n){n.d(t,{F:function(){return c},w:function(){return l}});n(92222);var r=n(67294),i=n(78312),o={link:"https://www.netdata.cloud/terms",title:"Terms And Conditions",dataGa:"signinup::click-terms::"},a=function(e){var t=e.link,n=e.title,o=e.dataGa;return function(e){var a=e.tagging;return r.createElement(i.Fg,{href:t,target:"_blank",rel:"noopener noreferrer","data-ga":"".concat(o).concat(a)},n)}},l=a({link:"https://www.netdata.cloud/privacy",title:"Privacy Policy",dataGa:"signinup::click-privacy::"}),c=a(o)},16772:function(e,t,n){var r=n(87462),i=n(45987),o=n(67294),a=n(15557),l=["onChange","value","onKeyDown","label"];t.Z=function(e){var t=e.onChange,n=e.value,c=e.onKeyDown,d=e.label,u=(0,i.Z)(e,l);return o.createElement(a.TextInput,(0,r.Z)({label:d,name:"userEmail",placeholder:"Enter an email address",value:n,onChange:t,onKeyDown:c},u))}},76362:function(e,t,n){n.d(t,{S1:function(){return o},ZT:function(){return r},ae:function(){return l},jU:function(){return a},on:function(){return i}});var r=function(){};function i(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function o(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var a="undefined"!==typeof window,l="undefined"!==typeof navigator},94829:function(e,t,n){var r=n(67294),i=n(76362);t.Z=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!i.jU&&window.matchMedia(e).matches}(e,t)),o=n[0],a=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&a(!!n.matches)};return n.addListener(r),a(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),o}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6faf8c73-b069-4079-8d5c-2c607644c15a",e._sentryDebugIdIdentifier="sentry-dbid-6faf8c73-b069-4079-8d5c-2c607644c15a")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[977],{92432:function(e,t,n){n.d(t,{L:function(){return r}});var r=function(e,t,n,r,i){var o,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"gaCustomEvent";if(window.envSettings.tracking){if(window.dataLayer){var l={event:a,eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:i};window.dataLayer.push(l)}window.gtag&&window.gtag("event","gaCustomEvent",{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r,eventResults:i}),null!==(o=window.posthog)&&void 0!==o&&o.__loaded&&window.posthog.capture(a,{eventCategory:e,eventAction:t,eventLabel:n,eventValue:r})}}},91940:function(e,t,n){n.d(t,{Z:function(){return L}});var r=n(87462),i=n(45987),o=n(67294),a=n(94829),l=n(57509),c=(0,n(60677).default)(l.Flex).attrs({flex:{grow:"1",shrink:"0"},width:{max:"100%"}}).withConfig({displayName:"panel__Panel",componentId:"sc-4zlw7c-0"})(["",";",";"],(function(e){var t=e.order;return t&&"order: ".concat(t,";")}),(function(e){return e.bgGradient&&"background: linear-gradient(34.14deg, #536775 -26.52%, #2F3A42 53.66%);\n"})),d=n(26502),u=function(){return o.createElement(l.Flex,{alignItems:"center",border:{side:"bottom",color:"disabled"},column:!0,padding:[0,0,8,0]},o.createElement(d.pR,null))},s=(n(21249),n(57640),n(9924),[{icon:"qualityOfServiceSolid",title:"Free forever",text:"Netdata community is free forever and gives you everything you need to start monitoring. For more serious enterprise users, paid subscriptions are available for added-value features."},{icon:"firewallSolid",title:"Privacy by design",text:"Netdata\u2019s distributed architecture is key to its incredible speed and scalability. It\u2019s also key to data safety, as your metrics are only ever streamed live, and will never be centrally stored by Netdata."}]),g=n(29439),m=(n(69826),n(41539),n(31672),n(2490),n(59461),n(46189)),f=n(5429),p=n(26398),h=["children"],v=["downScale"],w=function(e){var t,n=e.downScale,l=(0,i.Z)(e,v),c=(0,a.Z)("(min-width: 992px)");return(t=c?n[0]:n[1],function(e){var n=e.children,a=(0,i.Z)(e,h);return o.createElement(t,(0,r.Z)({color:"bright"},a),n)})(l)},b=n(87854),y=n.n(b),x=n(95348),k=n.n(x),E=new(y())({id:"cloudStatistics",use:"cloudStatistics-usage",viewBox:"0 0 194 146",content:'<symbol xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 194 146" id="cloudStatistics"><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M9.557 142.145h174.886a7.576 7.576 0 0 0 7.607-7.577v-.594H1.95v.594c0 4.16 3.43 7.577 7.607 7.577Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M81.749 137.688h30.577c2.088 0 3.729-1.634 3.729-3.714H78.02a3.733 3.733 0 0 0 3.729 3.714ZM15.374 108.493V34.949c0-4.457 3.58-8.023 8.055-8.023H60.12M178.701 44.83v89.143H15.374v-17.086M140.442 27h30.204c4.475 0 8.055 3.566 8.055 8.023v2.526" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.879 32.2h38.408c.671 0 1.193.52 1.193 1.189v94.939c0 .668-.522 1.188-1.193 1.188H67.131M20.595 44.086V33.39c0-.669.522-1.189 1.193-1.189h33.187M55.274 129.516H21.863c-.671 0-1.194-.52-1.194-1.188V49.881M78.766 106.487h-7.83c-5.967 0-10.815-4.828-10.815-10.771v-69.83c0-5.943 4.848-10.771 10.814-10.771h19.017M90.698 106.487H86.82" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M133.208 67.71V95.64c0 5.943-4.848 10.772-10.814 10.772H93.681M107.851 15.114h14.543c5.966 0 10.814 4.83 10.814 10.772V59.39M101.064 1H92.19a2.319 2.319 0 0 0-2.312 2.303v22.954a2.319 2.319 0 0 0 2.312 2.303h8.874a2.319 2.319 0 0 0 2.312-2.302V3.227c0-1.262-1.044-2.228-2.312-2.228Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 24.029a2.977 2.977 0 0 0 2.983-2.972 2.977 2.977 0 0 0-2.983-2.971 2.977 2.977 0 0 0-2.983 2.971 2.977 2.977 0 0 0 2.983 2.972ZM107.851 70.607c-2.834 2.897-6.786 4.68-11.186 4.68-8.652 0-15.662-6.983-15.662-15.6 0-8.618 7.01-15.6 15.662-15.6 8.651 0 15.661 6.982 15.661 15.6 0 2.748-.746 5.348-2.014 7.577" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M96.664 64.144c3.296 0 5.967-2.66 5.967-5.943 0-3.282-2.671-5.943-5.967-5.943-3.295 0-5.966 2.66-5.966 5.943 0 3.282 2.671 5.943 5.966 5.943ZM111.207 85.687h3.356M78.766 85.687h28.34M97.037 90.144h10.068M86.224 90.144h7.756M99.424 64.144h-5.519c-2.983 0-5.444 2.451-5.444 5.423v3.491M104.868 73.058v-3.565c0-1.635-.671-3.046-1.79-4.012" /><path fill="#2F3A42" d="M42.808 75.03c-19.315 0-34.915 15.6-34.915 34.914 0 19.315 15.6 34.915 34.915 34.915 19.314 0 34.914-15.6 34.914-34.915 0-19.314-15.6-34.914-34.914-34.914Zm3.714 52.743H34.636L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828a17.786 17.786 0 0 1-17.829 17.829Z" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M45.556 127.773h-10.92L24.98 92.116h21.543c9.88 0 17.829 7.948 17.829 17.828 0 6.463-3.417 12.109-8.617 15.229" /><path stroke="#68C47D" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M67.768 85.504c6.166 6.314 9.954 14.932 9.954 24.44 0 19.315-15.6 34.915-34.914 34.915-19.315 0-34.915-15.6-34.915-34.915 0-19.314 15.6-34.914 34.915-34.914 6.091 0 11.886 1.56 16.863 4.308" /></symbol>'}),C=(k().add(E),E),S=function(e){return o.createElement(l.Flex,(0,r.Z)({as:"svg",height:C.height,width:C.width,viewBox:C.viewBox},e),o.createElement("use",{xlinkHref:"#".concat(C.id)}))},_=n(92432),Z=function(){return p.Z.get("https://us-east1-netdata-analytics-bi.cloudfunctions.net/netdata_public_metrics_website")},M=m.Z.demoSlug,T=function(){var e=(0,f.Z)((function(){return{fetch:Z}}),[]),t=(0,g.Z)(e,1)[0],n=(0,o.useMemo)((function(){var e,n,r;return t?{nodesOnline:null===(e=t.find((function(e){return"Nodes Online"===e.key})))||void 0===e?void 0:e.value,githubStars:null===(n=t.find((function(e){return"GitHub Stars"===e.key})))||void 0===n?void 0:n.value,dockerHubPulls:null===(r=t.find((function(e){return"DockerHub Pulls"===e.key})))||void 0===r?void 0:r.value}:{}}),[t]),r=n.nodesOnline,i=n.githubStars,a=n.dockerHubPulls;return o.createElement(l.Flex,{column:!0,gap:4},o.createElement(l.Flex,{column:!0,gap:2},o.createElement(S,{height:"160px",padding:[0,0,4,0]}),o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},r||"...")," ","Nodes Online"),o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},i||"...")," ","GitHub Stars"),o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center"},o.createElement(w,{downScale:[l.TextBigger,l.TextBigger],color:"bright",textAlign:"center",strong:!0},a||"...")," ","DockerHub Pulls")),o.createElement(w,{downScale:[l.TextBigger,l.TextBig],color:"bright",textAlign:"center",margin:[11,0,0]},"Sign in to monitor your entire infrastructure ",o.createElement("br",null)," with Netdata"),!window.envSettings.onprem&&o.createElement(l.Flex,{justifyContent:"center"},o.createElement(l.Button,{as:"a","data-ga":"signinup::click-demo::sni-view",href:"/spaces/".concat(M),target:"_blank",onClick:function(){(0,_.L)("signinup","click-demo","sni-view")},label:"Live Demo",padding:[2,8]})))},B=function(e){var t=e.icon,n=e.title,r=e.text,i=(0,a.Z)("(min-width: 475px)");return o.createElement(l.Flex,{gap:4,alignItems:"start"},i&&o.createElement(l.Flex,{background:"transparent",justifyContent:"center",alignItems:"center",height:"64px",width:"64px",round:64,flex:"grow",border:{side:"all",color:"successLite"}},o.createElement(l.Icon,{name:t,height:"20px",widht:"20px",color:"successLite"})),o.createElement(l.Flex,{column:!0,justifyContent:"start",alignItems:"start",gap:2},o.createElement(l.TextBig,{color:"bright",strong:!0},n),o.createElement(l.Text,{color:"selected"},r)))},F=function(){return o.createElement(l.Flex,{column:!0,padding:[16,4,12],width:{max:"500px"},margin:[0,"auto"],gap:14},o.createElement(T,null),o.createElement(l.Flex,{column:!0,gap:8},s.map((function(e,t){return o.createElement(B,(0,r.Z)({key:t},e))}))))},I=["children"],L=function(e){var t=e.children,n=(0,i.Z)(e,I),d=(0,a.Z)("(min-width: 998px)");return o.createElement(l.Flex,(0,r.Z)({height:{min:"100vh"},flexWrap:!0},n),o.createElement(c,{background:"panel",bgGradient:!0,order:d?0:1},o.createElement(F,null)),o.createElement(c,{background:"mainBackground",order:d?1:0},o.createElement(l.Flex,{background:"transparent",column:!0,gap:8,padding:[12,4],width:{max:"500px"},margin:[0,"auto"]},o.createElement(u,null),t)))}},8360:function(e,t,n){var r=n(67294),i=n(57509),o=n(78312),a={url:"https://learn.netdata.cloud/",title:"docs"},l={url:"https://community.netdata.cloud/c/support/cloud-support/15",title:"forums"},c={url:"https://discord.gg/TjM6XCwC4e",title:"public discord channel"};t.Z=function(){return r.createElement(i.Text,{textAlign:"center"},"Need help? Check out our"," ",r.createElement(o.Fg,{href:a.url,target:"_blank",rel:"noopener noreferrer"},a.title,",")," ",r.createElement(o.Fg,{href:l.url,target:"_blank",rel:"noopener noreferrer"},l.title)," ","or"," ",r.createElement(o.Fg,{href:c.url,target:"_blank",rel:"noopener noreferrer"},c.title))}},98977:function(e,t,n){n.r(t);var r=n(67294),i=n(57509),o=n(1043),a=n(78312),l=n(97096),c=n(8360),d=n(91940);t.default=function(){var e=(0,o.T4)();return r.createElement(d.Z,{"data-testid":"signIn"},r.createElement(i.H1,{textAlign:"center"},"Thank you!"),r.createElement(i.TextBig,{textAlign:"center"},"Your email has been verified."),r.createElement(a.Yb,{gap:8,onSubmit:function(e){return e.preventDefault()}},r.createElement(i.TextBig,{textAlign:"center"},"Please accept our ",r.createElement(l.w,{tagging:"snue-view"})," and"," ",r.createElement(l.F,{tagging:"snue-view"}),"."),r.createElement(i.Flex,{width:"100%",justifyContent:"center",alignItems:"center","data-testid":"signUpVerification-acceptTerms"},r.createElement(a.Sn,{type:"submit",label:"I accept",onClick:e,"data-ga":"signinup::click-signup::snue-view","data-testid":"signUpVerification-acceptTerms-submit",width:"100%"}))),r.createElement(c.Z,null))}},78312:function(e,t,n){n.d(t,{Fg:function(){return l},P2:function(){return d},Sn:function(){return u},U5:function(){return c},Yb:function(){return s},xG:function(){return a}});var r=n(60677),i=n(57509),o=n(16772),a=r.default.div.withConfig({displayName:"styled__SvgContainer",componentId:"sc-16ytcl4-0"})(["width:42px;height:42px;flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:2px;background:white;"]),l=r.default.a.withConfig({displayName:"styled__StyledLink",componentId:"sc-16ytcl4-1"})(["display:inline-flex;align-items:center;text-decoration:none;color:",";cursor:pointer;&:hover{text-decoration:underline;color:"," !important;}&:visited{color:",";}> svg{fill:",";padding-right:",";}"],(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("success"),(0,i.getColor)("main"),(0,i.getSizeBy)(1)),c=(0,r.default)(o.Z).withConfig({displayName:"styled__EmailInput",componentId:"sc-16ytcl4-2"})(["label{margin-bottom:0;}> div{display:none;}"]),d=(0,r.default)(i.Checkbox).withConfig({displayName:"styled__StyledCheckbox",componentId:"sc-16ytcl4-3"})(["margin:0 "," 0 0;& div:last-child{border-color:",";}"],(0,i.getSizeBy)(2),(function(e){return e.error&&(0,i.getColor)("error")})),u=(0,r.default)(i.Button).withConfig({displayName:"styled__StyledButton",componentId:"sc-16ytcl4-4"})(["&&{height:44px;}"]),s=(0,r.default)(i.Flex).attrs((function(e){var t=e.gap;return{column:!0,gap:void 0===t?8:t,alignSelf:"center",padding:[0,0,8,0],border:{side:"bottom",color:"disabled"},width:{max:"320px"}}})).withConfig({displayName:"styled__FormContainer",componentId:"sc-16ytcl4-5"})(["width:100%;"])},97096:function(e,t,n){n.d(t,{F:function(){return c},w:function(){return l}});n(92222);var r=n(67294),i=n(78312),o={link:"https://www.netdata.cloud/terms",title:"Terms And Conditions",dataGa:"signinup::click-terms::"},a=function(e){var t=e.link,n=e.title,o=e.dataGa;return function(e){var a=e.tagging;return r.createElement(i.Fg,{href:t,target:"_blank",rel:"noopener noreferrer","data-ga":"".concat(o).concat(a)},n)}},l=a({link:"https://www.netdata.cloud/privacy",title:"Privacy Policy",dataGa:"signinup::click-privacy::"}),c=a(o)},16772:function(e,t,n){var r=n(87462),i=n(45987),o=n(67294),a=n(57509),l=["onChange","value","onKeyDown","label"];t.Z=function(e){var t=e.onChange,n=e.value,c=e.onKeyDown,d=e.label,u=(0,i.Z)(e,l);return o.createElement(a.TextInput,(0,r.Z)({label:d,name:"userEmail",placeholder:"Enter an email address",value:n,onChange:t,onKeyDown:c},u))}},76362:function(e,t,n){n.d(t,{S1:function(){return o},ZT:function(){return r},ae:function(){return l},jU:function(){return a},on:function(){return i}});var r=function(){};function i(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function o(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var a="undefined"!==typeof window,l="undefined"!==typeof navigator},94829:function(e,t,n){var r=n(67294),i=n(76362);t.Z=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!i.jU&&window.matchMedia(e).matches}(e,t)),o=n[0],a=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&a(!!n.matches)};return n.addListener(r),a(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),o}}}]); \ No newline at end of file
diff --git a/web/gui/v2/Makefile.am b/web/gui/v2/Makefile.am
index d7b02207..11cb2e71 100644
--- a/web/gui/v2/Makefile.am
+++ b/web/gui/v2/Makefile.am
@@ -10,76 +10,76 @@ dist_noinst_DATA = \
webv2dir=$(webdir)/v2
dist_webv2_DATA = \
- $(srcdir)/102.dc7f30189e6e1105143b.chunk.js \
- $(srcdir)/129.59192a62539648e72a38.chunk.js \
- $(srcdir)/147.dcf17e31c752be5e1c60.chunk.js \
- $(srcdir)/18.d27b3a3f82b13e4e31b5.chunk.js \
- $(srcdir)/18.d27b3a3f82b13e4e31b5.chunk.js.LICENSE.txt \
- $(srcdir)/193.94e6e52842fb25d00193.chunk.js \
- $(srcdir)/20.a271e6cfa915fdaf3602.chunk.js \
- $(srcdir)/241.9c26252244ccad9ac280.chunk.js \
- $(srcdir)/252.ecac74e9755e6d96573c.chunk.js \
- $(srcdir)/264.a5876f358dd6972563d5.chunk.js \
+ $(srcdir)/102.625f7fb40793758916f1.chunk.js \
+ $(srcdir)/129.1d087d9f7fb4bfa3cb72.chunk.js \
+ $(srcdir)/147.d9a3ab5a852935e0e203.chunk.js \
+ $(srcdir)/18.89d32c7ee15496f689f3.chunk.js \
+ $(srcdir)/18.89d32c7ee15496f689f3.chunk.js.LICENSE.txt \
+ $(srcdir)/193.6c0f51af21cfef8bce9d.chunk.js \
+ $(srcdir)/20.625d62276782f5f021c5.chunk.js \
+ $(srcdir)/241.dcc517f9189cb747150e.chunk.js \
+ $(srcdir)/252.c34ade07cc21e6fd9b8e.chunk.js \
+ $(srcdir)/264.296e4fe770b1756ed46b.chunk.js \
+ $(srcdir)/27.23f7ef0669e969b74f95.chunk.js \
+ $(srcdir)/27.23f7ef0669e969b74f95.chunk.js.LICENSE.txt \
$(srcdir)/27.384da655707f4c3b6153.css \
- $(srcdir)/27.922062ec65b1e01389ee.chunk.js \
- $(srcdir)/27.922062ec65b1e01389ee.chunk.js.LICENSE.txt \
- $(srcdir)/277.93f8d8d191859a1c59dc.chunk.js \
- $(srcdir)/282.8b52e573f86730f801fc.chunk.js \
- $(srcdir)/324.4fc60bcaa065dab2898f.chunk.js \
- $(srcdir)/359.fde431aadc6dd872d1b3.chunk.js \
- $(srcdir)/360.035df4a77480670d5715.chunk.js \
- $(srcdir)/376.9a81f019e3c71e29c4e1.js \
- $(srcdir)/376.9a81f019e3c71e29c4e1.js.LICENSE.txt \
+ $(srcdir)/282.112f65cb06615e413141.chunk.js \
+ $(srcdir)/324.328e79181dbe63b612fa.chunk.js \
+ $(srcdir)/359.aefe439f4f7fb9a02e15.chunk.js \
+ $(srcdir)/360.a55ccd8aeddca3df6bd0.chunk.js \
+ $(srcdir)/376.e533843d1907d4e8dafa.js \
+ $(srcdir)/376.e533843d1907d4e8dafa.js.LICENSE.txt \
$(srcdir)/3D_PARTY_LICENSES.txt \
- $(srcdir)/427.acd538b4ce317d11342e.chunk.js \
- $(srcdir)/427.ccb665950325037c0dda.css \
- $(srcdir)/43.178b68b4bde3a2876bd8.chunk.js \
- $(srcdir)/447.d73a7051f850d9257b12.chunk.js \
- $(srcdir)/451.c12c367c27438b213814.chunk.js \
- $(srcdir)/470.f28faa6be4559491ed1e.chunk.js \
- $(srcdir)/502.9438cab3c9c41c42ed57.chunk.js \
- $(srcdir)/510.d6163fa8dc978bbb2b42.chunk.js \
- $(srcdir)/514.58ab6c1ac3b8af2f0016.chunk.js \
- $(srcdir)/514.58ab6c1ac3b8af2f0016.chunk.js.LICENSE.txt \
- $(srcdir)/533.bf2c24b99df0c8f8a234.chunk.js \
- $(srcdir)/564.22a72ae2b4d5c2e659a1.chunk.js \
- $(srcdir)/575.9daac2298d0395fdf183.chunk.js \
- $(srcdir)/575.9daac2298d0395fdf183.chunk.js.LICENSE.txt \
- $(srcdir)/597.5d5a03215ae545861922.chunk.js \
- $(srcdir)/610.d671813e159356dd5674.chunk.js \
- $(srcdir)/654.89446e8c7a0b8bba60ba.chunk.js \
- $(srcdir)/655.e9a4b596ea0a5d9c7bff.chunk.js \
- $(srcdir)/663.08e4639637c3d8f77b7c.chunk.js \
- $(srcdir)/723.5cbb8237ca47fb280150.chunk.js \
+ $(srcdir)/43.36c13bf5ecbdd5373881.chunk.js \
+ $(srcdir)/447.99c65cf897c2e7a4e174.chunk.js \
+ $(srcdir)/451.aec55cb715f41fc72a63.chunk.js \
+ $(srcdir)/470.5ab9b3dc905a52581ba0.chunk.js \
+ $(srcdir)/502.517f9b221f4ed676c586.chunk.js \
+ $(srcdir)/510.ea4a79b1c75b8035f760.chunk.js \
+ $(srcdir)/514.af9132e943f111b25f1c.chunk.js \
+ $(srcdir)/514.af9132e943f111b25f1c.chunk.js.LICENSE.txt \
+ $(srcdir)/533.7791da896bd0af46ae45.chunk.js \
+ $(srcdir)/564.2354fe745e05d75abbf2.chunk.js \
+ $(srcdir)/575.76dcaacb1c2276f86dea.chunk.js \
+ $(srcdir)/575.76dcaacb1c2276f86dea.chunk.js.LICENSE.txt \
+ $(srcdir)/597.cb6f23362a28e63af220.chunk.js \
+ $(srcdir)/610.1001494a66c38627ff37.chunk.js \
+ $(srcdir)/654.67b0714ebd49a65d277c.chunk.js \
+ $(srcdir)/655.6b819502f310febec992.chunk.js \
+ $(srcdir)/663.a89b1206f4b293aabe4b.chunk.js \
+ $(srcdir)/676.4ce73c27b29d5f4672bb.chunk.js \
+ $(srcdir)/676.ccb665950325037c0dda.css \
+ $(srcdir)/723.44a07361b47c51d272dd.chunk.js \
$(srcdir)/723.cc9fa5f3bdc0bf3ab2fc.css \
- $(srcdir)/765.abdc73e99f918c4200a8.chunk.js \
- $(srcdir)/814.bfc6d4650c1097dc56eb.chunk.js \
- $(srcdir)/817.883beafccc77faf546a2.chunk.js \
- $(srcdir)/837.457977c0c92687b5bf08.chunk.js \
- $(srcdir)/851.c2d4621d872e935ac44a.chunk.js \
- $(srcdir)/86.5e866a98fcb6e62687d3.chunk.js \
- $(srcdir)/934.9dc27c5ebc538bddabb3.chunk.js \
- $(srcdir)/952.fd601224f55afda56157.chunk.js \
- $(srcdir)/952.fd601224f55afda56157.chunk.js.LICENSE.txt \
- $(srcdir)/969.888044e63adb99d3626d.chunk.js \
- $(srcdir)/977.96e2ff6feb44e920b79e.chunk.js \
+ $(srcdir)/765.e7fa6ef71a637cc3ae4d.chunk.js \
+ $(srcdir)/814.3332136a855b7f4da0ef.chunk.js \
+ $(srcdir)/817.cd5bd5294b2afab8578f.chunk.js \
+ $(srcdir)/837.bedee580bb54cbbff07c.chunk.js \
+ $(srcdir)/851.7d3f8a7b3ffc933098b8.chunk.js \
+ $(srcdir)/86.a471108ca7f6fc7080fe.chunk.js \
+ $(srcdir)/915.c5be29433632e593abf9.chunk.js \
+ $(srcdir)/934.627b38e3de836130d875.chunk.js \
+ $(srcdir)/952.8782ae4b4eb5f5d394ba.chunk.js \
+ $(srcdir)/952.8782ae4b4eb5f5d394ba.chunk.js.LICENSE.txt \
+ $(srcdir)/969.64ecdcbb7383f4baee16.chunk.js \
+ $(srcdir)/977.f955167348f6c9037af1.chunk.js \
$(srcdir)/LICENSE.md \
$(srcdir)/agent.html \
- $(srcdir)/allFiles.6.27.0.json \
+ $(srcdir)/allFiles.6.28.0.json \
$(srcdir)/allFiles.6.json \
+ $(srcdir)/app.04e10fe5e2e2b4abb9de.js \
$(srcdir)/app.0917ff2bf5d3b8b0678d.css \
- $(srcdir)/app.24424bcb6923064df250.js \
$(srcdir)/bundlesManifest.6.json \
- $(srcdir)/editor.0483213ccc286f86f266.chunk.js \
+ $(srcdir)/editor.2c7891085085940ad860.chunk.js \
$(srcdir)/favicon.ico \
$(srcdir)/index.html \
$(srcdir)/local-agent.html \
- $(srcdir)/npm.react.dom.fcbeaa7a1582a429a00e.js \
- $(srcdir)/npm.react.dom.fcbeaa7a1582a429a00e.js.LICENSE.txt \
+ $(srcdir)/npm.react.dom.5f194c629d90a617d1ac.js \
+ $(srcdir)/npm.react.dom.5f194c629d90a617d1ac.js.LICENSE.txt \
$(srcdir)/registry-access.html \
$(srcdir)/registry-alert-redirect.html \
$(srcdir)/registry-hello.html \
- $(srcdir)/runtime.db3b1f7db7a8e8ecf561.js \
+ $(srcdir)/runtime.519955e002a87da88924.js \
$(srcdir)/sw.js \
$(NULL)
diff --git a/web/gui/v2/agent.html b/web/gui/v2/agent.html
index a53ec9e3..b1986599 100644
--- a/web/gui/v2/agent.html
+++ b/web/gui/v2/agent.html
@@ -27,7 +27,7 @@
demoFavourites: {"postgresql":["postgres"],"redis":["redis"],"dns-query":["dns_query"],"http-endpoints":["httpcheck"],"nginx":["web_log","nginx"],"apache":["apache"],"host-reachability":["ping"],"cassandra":["cassandra"],"coredns":["coredns"],"logind":["logind"],"iis":["iis"],"active-directory":["ad"],"windows":["windows","ad","iis","mssql","exchange","netframework"],"docker":["cgroup","docker"]},
webpackPublicPath: "https://app.netdata.cloud",
agentApiUrl: searchParams.get("agent") || getBasename(),
- version: "6.27.0",
+ version: "6.28.0",
tracking: false,
cookieDomain: ".netdata.cloud",
onprem: false
@@ -139,7 +139,8 @@
mg: data.agent.machine_guid,
nd: data.agent.node_id,
claimId: data.agent.claim_id,
- cloudStatus: data.cloud_status
+ cloudStatus: data.cloud_status,
+ xNetdataAuthHeader: data["X-Netdata-Auth"] || false
}
diff --git a/web/gui/v2/allFiles.6.27.0.json b/web/gui/v2/allFiles.6.28.0.json
index e1222c7d..d9cb546a 100644
--- a/web/gui/v2/allFiles.6.27.0.json
+++ b/web/gui/v2/allFiles.6.28.0.json
@@ -1,56 +1,56 @@
{
"bundlesManifest.json": "/bundlesManifest.6.json",
"app.css": "/app.0917ff2bf5d3b8b0678d.css",
- "app.js": "/app.24424bcb6923064df250.js",
- "runtime.js": "/runtime.db3b1f7db7a8e8ecf561.js",
- "360.chunk.js": "/360.035df4a77480670d5715.chunk.js",
- "252.chunk.js": "/252.ecac74e9755e6d96573c.chunk.js",
- "934.chunk.js": "/934.9dc27c5ebc538bddabb3.chunk.js",
- "817.chunk.js": "/817.883beafccc77faf546a2.chunk.js",
- "241.chunk.js": "/241.9c26252244ccad9ac280.chunk.js",
- "977.chunk.js": "/977.96e2ff6feb44e920b79e.chunk.js",
- "86.chunk.js": "/86.5e866a98fcb6e62687d3.chunk.js",
- "282.chunk.js": "/282.8b52e573f86730f801fc.chunk.js",
- "510.chunk.js": "/510.d6163fa8dc978bbb2b42.chunk.js",
+ "app.js": "/app.04e10fe5e2e2b4abb9de.js",
+ "runtime.js": "/runtime.519955e002a87da88924.js",
+ "360.chunk.js": "/360.a55ccd8aeddca3df6bd0.chunk.js",
+ "252.chunk.js": "/252.c34ade07cc21e6fd9b8e.chunk.js",
+ "934.chunk.js": "/934.627b38e3de836130d875.chunk.js",
+ "817.chunk.js": "/817.cd5bd5294b2afab8578f.chunk.js",
+ "241.chunk.js": "/241.dcc517f9189cb747150e.chunk.js",
+ "977.chunk.js": "/977.f955167348f6c9037af1.chunk.js",
+ "86.chunk.js": "/86.a471108ca7f6fc7080fe.chunk.js",
+ "282.chunk.js": "/282.112f65cb06615e413141.chunk.js",
+ "510.chunk.js": "/510.ea4a79b1c75b8035f760.chunk.js",
"723.css": "/723.cc9fa5f3bdc0bf3ab2fc.css",
- "723.chunk.js": "/723.5cbb8237ca47fb280150.chunk.js",
- "814.chunk.js": "/814.bfc6d4650c1097dc56eb.chunk.js",
- "147.chunk.js": "/147.dcf17e31c752be5e1c60.chunk.js",
- "264.chunk.js": "/264.a5876f358dd6972563d5.chunk.js",
- "969.chunk.js": "/969.888044e63adb99d3626d.chunk.js",
- "102.chunk.js": "/102.dc7f30189e6e1105143b.chunk.js",
- "427.css": "/427.ccb665950325037c0dda.css",
- "427.chunk.js": "/427.acd538b4ce317d11342e.chunk.js",
- "765.chunk.js": "/765.abdc73e99f918c4200a8.chunk.js",
- "447.chunk.js": "/447.d73a7051f850d9257b12.chunk.js",
- "654.chunk.js": "/654.89446e8c7a0b8bba60ba.chunk.js",
- "610.chunk.js": "/610.d671813e159356dd5674.chunk.js",
- "533.chunk.js": "/533.bf2c24b99df0c8f8a234.chunk.js",
- "359.chunk.js": "/359.fde431aadc6dd872d1b3.chunk.js",
- "451.chunk.js": "/451.c12c367c27438b213814.chunk.js",
- "564.chunk.js": "/564.22a72ae2b4d5c2e659a1.chunk.js",
- "43.chunk.js": "/43.178b68b4bde3a2876bd8.chunk.js",
- "324.chunk.js": "/324.4fc60bcaa065dab2898f.chunk.js",
- "597.chunk.js": "/597.5d5a03215ae545861922.chunk.js",
- "editor.js": "/editor.0483213ccc286f86f266.chunk.js",
- "20.chunk.js": "/20.a271e6cfa915fdaf3602.chunk.js",
- "npm.react.dom.js": "/npm.react.dom.fcbeaa7a1582a429a00e.js",
- "376.js": "/376.9a81f019e3c71e29c4e1.js",
- "514.chunk.js": "/514.58ab6c1ac3b8af2f0016.chunk.js",
- "470.chunk.js": "/470.f28faa6be4559491ed1e.chunk.js",
- "193.chunk.js": "/193.94e6e52842fb25d00193.chunk.js",
- "952.chunk.js": "/952.fd601224f55afda56157.chunk.js",
+ "723.chunk.js": "/723.44a07361b47c51d272dd.chunk.js",
+ "814.chunk.js": "/814.3332136a855b7f4da0ef.chunk.js",
+ "147.chunk.js": "/147.d9a3ab5a852935e0e203.chunk.js",
+ "264.chunk.js": "/264.296e4fe770b1756ed46b.chunk.js",
+ "969.chunk.js": "/969.64ecdcbb7383f4baee16.chunk.js",
+ "102.chunk.js": "/102.625f7fb40793758916f1.chunk.js",
+ "676.css": "/676.ccb665950325037c0dda.css",
+ "676.chunk.js": "/676.4ce73c27b29d5f4672bb.chunk.js",
+ "765.chunk.js": "/765.e7fa6ef71a637cc3ae4d.chunk.js",
+ "447.chunk.js": "/447.99c65cf897c2e7a4e174.chunk.js",
+ "654.chunk.js": "/654.67b0714ebd49a65d277c.chunk.js",
+ "610.chunk.js": "/610.1001494a66c38627ff37.chunk.js",
+ "533.chunk.js": "/533.7791da896bd0af46ae45.chunk.js",
+ "359.chunk.js": "/359.aefe439f4f7fb9a02e15.chunk.js",
+ "451.chunk.js": "/451.aec55cb715f41fc72a63.chunk.js",
+ "564.chunk.js": "/564.2354fe745e05d75abbf2.chunk.js",
+ "43.chunk.js": "/43.36c13bf5ecbdd5373881.chunk.js",
+ "324.chunk.js": "/324.328e79181dbe63b612fa.chunk.js",
+ "597.chunk.js": "/597.cb6f23362a28e63af220.chunk.js",
+ "editor.js": "/editor.2c7891085085940ad860.chunk.js",
+ "20.chunk.js": "/20.625d62276782f5f021c5.chunk.js",
+ "npm.react.dom.js": "/npm.react.dom.5f194c629d90a617d1ac.js",
+ "376.js": "/376.e533843d1907d4e8dafa.js",
+ "514.chunk.js": "/514.af9132e943f111b25f1c.chunk.js",
+ "470.chunk.js": "/470.5ab9b3dc905a52581ba0.chunk.js",
+ "193.chunk.js": "/193.6c0f51af21cfef8bce9d.chunk.js",
+ "952.chunk.js": "/952.8782ae4b4eb5f5d394ba.chunk.js",
"27.css": "/27.384da655707f4c3b6153.css",
- "27.chunk.js": "/27.922062ec65b1e01389ee.chunk.js",
- "851.chunk.js": "/851.c2d4621d872e935ac44a.chunk.js",
- "18.chunk.js": "/18.d27b3a3f82b13e4e31b5.chunk.js",
- "575.chunk.js": "/575.9daac2298d0395fdf183.chunk.js",
- "502.chunk.js": "/502.9438cab3c9c41c42ed57.chunk.js",
- "663.chunk.js": "/663.08e4639637c3d8f77b7c.chunk.js",
- "129.chunk.js": "/129.59192a62539648e72a38.chunk.js",
- "277.chunk.js": "/277.93f8d8d191859a1c59dc.chunk.js",
- "655.chunk.js": "/655.e9a4b596ea0a5d9c7bff.chunk.js",
- "837.chunk.js": "/837.457977c0c92687b5bf08.chunk.js",
+ "27.chunk.js": "/27.23f7ef0669e969b74f95.chunk.js",
+ "851.chunk.js": "/851.7d3f8a7b3ffc933098b8.chunk.js",
+ "18.chunk.js": "/18.89d32c7ee15496f689f3.chunk.js",
+ "575.chunk.js": "/575.76dcaacb1c2276f86dea.chunk.js",
+ "502.chunk.js": "/502.517f9b221f4ed676c586.chunk.js",
+ "663.chunk.js": "/663.a89b1206f4b293aabe4b.chunk.js",
+ "129.chunk.js": "/129.1d087d9f7fb4bfa3cb72.chunk.js",
+ "915.chunk.js": "/915.c5be29433632e593abf9.chunk.js",
+ "655.chunk.js": "/655.6b819502f310febec992.chunk.js",
+ "837.chunk.js": "/837.bedee580bb54cbbff07c.chunk.js",
"3D_PARTY_LICENSES.txt": "/3D_PARTY_LICENSES.txt",
"static/site/pages/holding-page-503/holding-page-503.svg": "/static/site/pages/holding-page-503/holding-page-503.svg",
"favicon.ico": "/favicon.ico",
@@ -81,9 +81,9 @@
"static/img/logos/services/apache.svg": "/static/img/logos/services/apache.svg",
"static/img/logos/services/beanstalkd.svg": "/static/img/logos/services/beanstalkd.svg",
"static/img/logos/services/golang.svg": "/static/img/logos/services/golang.svg",
- "static/img/logos/services/activemq.svg": "/static/img/logos/services/activemq.svg",
"agent.html": "/agent.html",
"local-agent.html": "/local-agent.html",
+ "static/img/logos/services/activemq.svg": "/static/img/logos/services/activemq.svg",
"static/img/logos/os/kubernetes.svg": "/static/img/logos/os/kubernetes.svg",
"static/img/logos/services/kubernetes.svg": "/static/img/logos/services/kubernetes.svg",
"static/img/logos/services/systemd.svg": "/static/img/logos/services/systemd.svg",
@@ -245,54 +245,54 @@
"static/site/pages/holding-page-503/netdata-logo-white.svg": "/static/site/pages/holding-page-503/netdata-logo-white.svg",
"static/img/logos/services/hub.svg": "/static/img/logos/services/hub.svg",
"app.css.map": "/app.0917ff2bf5d3b8b0678d.css.map",
- "app.js.map": "/app.24424bcb6923064df250.js.map",
- "runtime.js.map": "/runtime.db3b1f7db7a8e8ecf561.js.map",
- "360.chunk.js.map": "/360.035df4a77480670d5715.chunk.js.map",
- "252.chunk.js.map": "/252.ecac74e9755e6d96573c.chunk.js.map",
- "934.chunk.js.map": "/934.9dc27c5ebc538bddabb3.chunk.js.map",
- "817.chunk.js.map": "/817.883beafccc77faf546a2.chunk.js.map",
- "241.chunk.js.map": "/241.9c26252244ccad9ac280.chunk.js.map",
- "977.chunk.js.map": "/977.96e2ff6feb44e920b79e.chunk.js.map",
- "86.chunk.js.map": "/86.5e866a98fcb6e62687d3.chunk.js.map",
- "282.chunk.js.map": "/282.8b52e573f86730f801fc.chunk.js.map",
- "510.chunk.js.map": "/510.d6163fa8dc978bbb2b42.chunk.js.map",
+ "app.js.map": "/app.04e10fe5e2e2b4abb9de.js.map",
+ "runtime.js.map": "/runtime.519955e002a87da88924.js.map",
+ "360.chunk.js.map": "/360.a55ccd8aeddca3df6bd0.chunk.js.map",
+ "252.chunk.js.map": "/252.c34ade07cc21e6fd9b8e.chunk.js.map",
+ "934.chunk.js.map": "/934.627b38e3de836130d875.chunk.js.map",
+ "817.chunk.js.map": "/817.cd5bd5294b2afab8578f.chunk.js.map",
+ "241.chunk.js.map": "/241.dcc517f9189cb747150e.chunk.js.map",
+ "977.chunk.js.map": "/977.f955167348f6c9037af1.chunk.js.map",
+ "86.chunk.js.map": "/86.a471108ca7f6fc7080fe.chunk.js.map",
+ "282.chunk.js.map": "/282.112f65cb06615e413141.chunk.js.map",
+ "510.chunk.js.map": "/510.ea4a79b1c75b8035f760.chunk.js.map",
"723.css.map": "/723.cc9fa5f3bdc0bf3ab2fc.css.map",
- "723.chunk.js.map": "/723.5cbb8237ca47fb280150.chunk.js.map",
- "814.chunk.js.map": "/814.bfc6d4650c1097dc56eb.chunk.js.map",
- "147.chunk.js.map": "/147.dcf17e31c752be5e1c60.chunk.js.map",
- "264.chunk.js.map": "/264.a5876f358dd6972563d5.chunk.js.map",
- "969.chunk.js.map": "/969.888044e63adb99d3626d.chunk.js.map",
- "102.chunk.js.map": "/102.dc7f30189e6e1105143b.chunk.js.map",
- "427.css.map": "/427.ccb665950325037c0dda.css.map",
- "427.chunk.js.map": "/427.acd538b4ce317d11342e.chunk.js.map",
- "765.chunk.js.map": "/765.abdc73e99f918c4200a8.chunk.js.map",
- "447.chunk.js.map": "/447.d73a7051f850d9257b12.chunk.js.map",
- "654.chunk.js.map": "/654.89446e8c7a0b8bba60ba.chunk.js.map",
- "610.chunk.js.map": "/610.d671813e159356dd5674.chunk.js.map",
- "533.chunk.js.map": "/533.bf2c24b99df0c8f8a234.chunk.js.map",
- "359.chunk.js.map": "/359.fde431aadc6dd872d1b3.chunk.js.map",
- "451.chunk.js.map": "/451.c12c367c27438b213814.chunk.js.map",
- "564.chunk.js.map": "/564.22a72ae2b4d5c2e659a1.chunk.js.map",
- "43.chunk.js.map": "/43.178b68b4bde3a2876bd8.chunk.js.map",
- "324.chunk.js.map": "/324.4fc60bcaa065dab2898f.chunk.js.map",
- "597.chunk.js.map": "/597.5d5a03215ae545861922.chunk.js.map",
- "editor.chunk.js.map": "/editor.0483213ccc286f86f266.chunk.js.map",
- "20.chunk.js.map": "/20.a271e6cfa915fdaf3602.chunk.js.map",
- "npm.react.dom.js.map": "/npm.react.dom.fcbeaa7a1582a429a00e.js.map",
- "376.js.map": "/376.9a81f019e3c71e29c4e1.js.map",
- "514.chunk.js.map": "/514.58ab6c1ac3b8af2f0016.chunk.js.map",
- "470.chunk.js.map": "/470.f28faa6be4559491ed1e.chunk.js.map",
- "193.chunk.js.map": "/193.94e6e52842fb25d00193.chunk.js.map",
- "952.chunk.js.map": "/952.fd601224f55afda56157.chunk.js.map",
+ "723.chunk.js.map": "/723.44a07361b47c51d272dd.chunk.js.map",
+ "814.chunk.js.map": "/814.3332136a855b7f4da0ef.chunk.js.map",
+ "147.chunk.js.map": "/147.d9a3ab5a852935e0e203.chunk.js.map",
+ "264.chunk.js.map": "/264.296e4fe770b1756ed46b.chunk.js.map",
+ "969.chunk.js.map": "/969.64ecdcbb7383f4baee16.chunk.js.map",
+ "102.chunk.js.map": "/102.625f7fb40793758916f1.chunk.js.map",
+ "676.css.map": "/676.ccb665950325037c0dda.css.map",
+ "676.chunk.js.map": "/676.4ce73c27b29d5f4672bb.chunk.js.map",
+ "765.chunk.js.map": "/765.e7fa6ef71a637cc3ae4d.chunk.js.map",
+ "447.chunk.js.map": "/447.99c65cf897c2e7a4e174.chunk.js.map",
+ "654.chunk.js.map": "/654.67b0714ebd49a65d277c.chunk.js.map",
+ "610.chunk.js.map": "/610.1001494a66c38627ff37.chunk.js.map",
+ "533.chunk.js.map": "/533.7791da896bd0af46ae45.chunk.js.map",
+ "359.chunk.js.map": "/359.aefe439f4f7fb9a02e15.chunk.js.map",
+ "451.chunk.js.map": "/451.aec55cb715f41fc72a63.chunk.js.map",
+ "564.chunk.js.map": "/564.2354fe745e05d75abbf2.chunk.js.map",
+ "43.chunk.js.map": "/43.36c13bf5ecbdd5373881.chunk.js.map",
+ "324.chunk.js.map": "/324.328e79181dbe63b612fa.chunk.js.map",
+ "597.chunk.js.map": "/597.cb6f23362a28e63af220.chunk.js.map",
+ "editor.chunk.js.map": "/editor.2c7891085085940ad860.chunk.js.map",
+ "20.chunk.js.map": "/20.625d62276782f5f021c5.chunk.js.map",
+ "npm.react.dom.js.map": "/npm.react.dom.5f194c629d90a617d1ac.js.map",
+ "376.js.map": "/376.e533843d1907d4e8dafa.js.map",
+ "514.chunk.js.map": "/514.af9132e943f111b25f1c.chunk.js.map",
+ "470.chunk.js.map": "/470.5ab9b3dc905a52581ba0.chunk.js.map",
+ "193.chunk.js.map": "/193.6c0f51af21cfef8bce9d.chunk.js.map",
+ "952.chunk.js.map": "/952.8782ae4b4eb5f5d394ba.chunk.js.map",
"27.css.map": "/27.384da655707f4c3b6153.css.map",
- "27.chunk.js.map": "/27.922062ec65b1e01389ee.chunk.js.map",
- "851.chunk.js.map": "/851.c2d4621d872e935ac44a.chunk.js.map",
- "18.chunk.js.map": "/18.d27b3a3f82b13e4e31b5.chunk.js.map",
- "575.chunk.js.map": "/575.9daac2298d0395fdf183.chunk.js.map",
- "502.chunk.js.map": "/502.9438cab3c9c41c42ed57.chunk.js.map",
- "663.chunk.js.map": "/663.08e4639637c3d8f77b7c.chunk.js.map",
- "129.chunk.js.map": "/129.59192a62539648e72a38.chunk.js.map",
- "277.chunk.js.map": "/277.93f8d8d191859a1c59dc.chunk.js.map",
- "655.chunk.js.map": "/655.e9a4b596ea0a5d9c7bff.chunk.js.map",
- "837.chunk.js.map": "/837.457977c0c92687b5bf08.chunk.js.map"
+ "27.chunk.js.map": "/27.23f7ef0669e969b74f95.chunk.js.map",
+ "851.chunk.js.map": "/851.7d3f8a7b3ffc933098b8.chunk.js.map",
+ "18.chunk.js.map": "/18.89d32c7ee15496f689f3.chunk.js.map",
+ "575.chunk.js.map": "/575.76dcaacb1c2276f86dea.chunk.js.map",
+ "502.chunk.js.map": "/502.517f9b221f4ed676c586.chunk.js.map",
+ "663.chunk.js.map": "/663.a89b1206f4b293aabe4b.chunk.js.map",
+ "129.chunk.js.map": "/129.1d087d9f7fb4bfa3cb72.chunk.js.map",
+ "915.chunk.js.map": "/915.c5be29433632e593abf9.chunk.js.map",
+ "655.chunk.js.map": "/655.6b819502f310febec992.chunk.js.map",
+ "837.chunk.js.map": "/837.bedee580bb54cbbff07c.chunk.js.map"
} \ No newline at end of file
diff --git a/web/gui/v2/allFiles.6.json b/web/gui/v2/allFiles.6.json
index e1222c7d..d9cb546a 100644
--- a/web/gui/v2/allFiles.6.json
+++ b/web/gui/v2/allFiles.6.json
@@ -1,56 +1,56 @@
{
"bundlesManifest.json": "/bundlesManifest.6.json",
"app.css": "/app.0917ff2bf5d3b8b0678d.css",
- "app.js": "/app.24424bcb6923064df250.js",
- "runtime.js": "/runtime.db3b1f7db7a8e8ecf561.js",
- "360.chunk.js": "/360.035df4a77480670d5715.chunk.js",
- "252.chunk.js": "/252.ecac74e9755e6d96573c.chunk.js",
- "934.chunk.js": "/934.9dc27c5ebc538bddabb3.chunk.js",
- "817.chunk.js": "/817.883beafccc77faf546a2.chunk.js",
- "241.chunk.js": "/241.9c26252244ccad9ac280.chunk.js",
- "977.chunk.js": "/977.96e2ff6feb44e920b79e.chunk.js",
- "86.chunk.js": "/86.5e866a98fcb6e62687d3.chunk.js",
- "282.chunk.js": "/282.8b52e573f86730f801fc.chunk.js",
- "510.chunk.js": "/510.d6163fa8dc978bbb2b42.chunk.js",
+ "app.js": "/app.04e10fe5e2e2b4abb9de.js",
+ "runtime.js": "/runtime.519955e002a87da88924.js",
+ "360.chunk.js": "/360.a55ccd8aeddca3df6bd0.chunk.js",
+ "252.chunk.js": "/252.c34ade07cc21e6fd9b8e.chunk.js",
+ "934.chunk.js": "/934.627b38e3de836130d875.chunk.js",
+ "817.chunk.js": "/817.cd5bd5294b2afab8578f.chunk.js",
+ "241.chunk.js": "/241.dcc517f9189cb747150e.chunk.js",
+ "977.chunk.js": "/977.f955167348f6c9037af1.chunk.js",
+ "86.chunk.js": "/86.a471108ca7f6fc7080fe.chunk.js",
+ "282.chunk.js": "/282.112f65cb06615e413141.chunk.js",
+ "510.chunk.js": "/510.ea4a79b1c75b8035f760.chunk.js",
"723.css": "/723.cc9fa5f3bdc0bf3ab2fc.css",
- "723.chunk.js": "/723.5cbb8237ca47fb280150.chunk.js",
- "814.chunk.js": "/814.bfc6d4650c1097dc56eb.chunk.js",
- "147.chunk.js": "/147.dcf17e31c752be5e1c60.chunk.js",
- "264.chunk.js": "/264.a5876f358dd6972563d5.chunk.js",
- "969.chunk.js": "/969.888044e63adb99d3626d.chunk.js",
- "102.chunk.js": "/102.dc7f30189e6e1105143b.chunk.js",
- "427.css": "/427.ccb665950325037c0dda.css",
- "427.chunk.js": "/427.acd538b4ce317d11342e.chunk.js",
- "765.chunk.js": "/765.abdc73e99f918c4200a8.chunk.js",
- "447.chunk.js": "/447.d73a7051f850d9257b12.chunk.js",
- "654.chunk.js": "/654.89446e8c7a0b8bba60ba.chunk.js",
- "610.chunk.js": "/610.d671813e159356dd5674.chunk.js",
- "533.chunk.js": "/533.bf2c24b99df0c8f8a234.chunk.js",
- "359.chunk.js": "/359.fde431aadc6dd872d1b3.chunk.js",
- "451.chunk.js": "/451.c12c367c27438b213814.chunk.js",
- "564.chunk.js": "/564.22a72ae2b4d5c2e659a1.chunk.js",
- "43.chunk.js": "/43.178b68b4bde3a2876bd8.chunk.js",
- "324.chunk.js": "/324.4fc60bcaa065dab2898f.chunk.js",
- "597.chunk.js": "/597.5d5a03215ae545861922.chunk.js",
- "editor.js": "/editor.0483213ccc286f86f266.chunk.js",
- "20.chunk.js": "/20.a271e6cfa915fdaf3602.chunk.js",
- "npm.react.dom.js": "/npm.react.dom.fcbeaa7a1582a429a00e.js",
- "376.js": "/376.9a81f019e3c71e29c4e1.js",
- "514.chunk.js": "/514.58ab6c1ac3b8af2f0016.chunk.js",
- "470.chunk.js": "/470.f28faa6be4559491ed1e.chunk.js",
- "193.chunk.js": "/193.94e6e52842fb25d00193.chunk.js",
- "952.chunk.js": "/952.fd601224f55afda56157.chunk.js",
+ "723.chunk.js": "/723.44a07361b47c51d272dd.chunk.js",
+ "814.chunk.js": "/814.3332136a855b7f4da0ef.chunk.js",
+ "147.chunk.js": "/147.d9a3ab5a852935e0e203.chunk.js",
+ "264.chunk.js": "/264.296e4fe770b1756ed46b.chunk.js",
+ "969.chunk.js": "/969.64ecdcbb7383f4baee16.chunk.js",
+ "102.chunk.js": "/102.625f7fb40793758916f1.chunk.js",
+ "676.css": "/676.ccb665950325037c0dda.css",
+ "676.chunk.js": "/676.4ce73c27b29d5f4672bb.chunk.js",
+ "765.chunk.js": "/765.e7fa6ef71a637cc3ae4d.chunk.js",
+ "447.chunk.js": "/447.99c65cf897c2e7a4e174.chunk.js",
+ "654.chunk.js": "/654.67b0714ebd49a65d277c.chunk.js",
+ "610.chunk.js": "/610.1001494a66c38627ff37.chunk.js",
+ "533.chunk.js": "/533.7791da896bd0af46ae45.chunk.js",
+ "359.chunk.js": "/359.aefe439f4f7fb9a02e15.chunk.js",
+ "451.chunk.js": "/451.aec55cb715f41fc72a63.chunk.js",
+ "564.chunk.js": "/564.2354fe745e05d75abbf2.chunk.js",
+ "43.chunk.js": "/43.36c13bf5ecbdd5373881.chunk.js",
+ "324.chunk.js": "/324.328e79181dbe63b612fa.chunk.js",
+ "597.chunk.js": "/597.cb6f23362a28e63af220.chunk.js",
+ "editor.js": "/editor.2c7891085085940ad860.chunk.js",
+ "20.chunk.js": "/20.625d62276782f5f021c5.chunk.js",
+ "npm.react.dom.js": "/npm.react.dom.5f194c629d90a617d1ac.js",
+ "376.js": "/376.e533843d1907d4e8dafa.js",
+ "514.chunk.js": "/514.af9132e943f111b25f1c.chunk.js",
+ "470.chunk.js": "/470.5ab9b3dc905a52581ba0.chunk.js",
+ "193.chunk.js": "/193.6c0f51af21cfef8bce9d.chunk.js",
+ "952.chunk.js": "/952.8782ae4b4eb5f5d394ba.chunk.js",
"27.css": "/27.384da655707f4c3b6153.css",
- "27.chunk.js": "/27.922062ec65b1e01389ee.chunk.js",
- "851.chunk.js": "/851.c2d4621d872e935ac44a.chunk.js",
- "18.chunk.js": "/18.d27b3a3f82b13e4e31b5.chunk.js",
- "575.chunk.js": "/575.9daac2298d0395fdf183.chunk.js",
- "502.chunk.js": "/502.9438cab3c9c41c42ed57.chunk.js",
- "663.chunk.js": "/663.08e4639637c3d8f77b7c.chunk.js",
- "129.chunk.js": "/129.59192a62539648e72a38.chunk.js",
- "277.chunk.js": "/277.93f8d8d191859a1c59dc.chunk.js",
- "655.chunk.js": "/655.e9a4b596ea0a5d9c7bff.chunk.js",
- "837.chunk.js": "/837.457977c0c92687b5bf08.chunk.js",
+ "27.chunk.js": "/27.23f7ef0669e969b74f95.chunk.js",
+ "851.chunk.js": "/851.7d3f8a7b3ffc933098b8.chunk.js",
+ "18.chunk.js": "/18.89d32c7ee15496f689f3.chunk.js",
+ "575.chunk.js": "/575.76dcaacb1c2276f86dea.chunk.js",
+ "502.chunk.js": "/502.517f9b221f4ed676c586.chunk.js",
+ "663.chunk.js": "/663.a89b1206f4b293aabe4b.chunk.js",
+ "129.chunk.js": "/129.1d087d9f7fb4bfa3cb72.chunk.js",
+ "915.chunk.js": "/915.c5be29433632e593abf9.chunk.js",
+ "655.chunk.js": "/655.6b819502f310febec992.chunk.js",
+ "837.chunk.js": "/837.bedee580bb54cbbff07c.chunk.js",
"3D_PARTY_LICENSES.txt": "/3D_PARTY_LICENSES.txt",
"static/site/pages/holding-page-503/holding-page-503.svg": "/static/site/pages/holding-page-503/holding-page-503.svg",
"favicon.ico": "/favicon.ico",
@@ -81,9 +81,9 @@
"static/img/logos/services/apache.svg": "/static/img/logos/services/apache.svg",
"static/img/logos/services/beanstalkd.svg": "/static/img/logos/services/beanstalkd.svg",
"static/img/logos/services/golang.svg": "/static/img/logos/services/golang.svg",
- "static/img/logos/services/activemq.svg": "/static/img/logos/services/activemq.svg",
"agent.html": "/agent.html",
"local-agent.html": "/local-agent.html",
+ "static/img/logos/services/activemq.svg": "/static/img/logos/services/activemq.svg",
"static/img/logos/os/kubernetes.svg": "/static/img/logos/os/kubernetes.svg",
"static/img/logos/services/kubernetes.svg": "/static/img/logos/services/kubernetes.svg",
"static/img/logos/services/systemd.svg": "/static/img/logos/services/systemd.svg",
@@ -245,54 +245,54 @@
"static/site/pages/holding-page-503/netdata-logo-white.svg": "/static/site/pages/holding-page-503/netdata-logo-white.svg",
"static/img/logos/services/hub.svg": "/static/img/logos/services/hub.svg",
"app.css.map": "/app.0917ff2bf5d3b8b0678d.css.map",
- "app.js.map": "/app.24424bcb6923064df250.js.map",
- "runtime.js.map": "/runtime.db3b1f7db7a8e8ecf561.js.map",
- "360.chunk.js.map": "/360.035df4a77480670d5715.chunk.js.map",
- "252.chunk.js.map": "/252.ecac74e9755e6d96573c.chunk.js.map",
- "934.chunk.js.map": "/934.9dc27c5ebc538bddabb3.chunk.js.map",
- "817.chunk.js.map": "/817.883beafccc77faf546a2.chunk.js.map",
- "241.chunk.js.map": "/241.9c26252244ccad9ac280.chunk.js.map",
- "977.chunk.js.map": "/977.96e2ff6feb44e920b79e.chunk.js.map",
- "86.chunk.js.map": "/86.5e866a98fcb6e62687d3.chunk.js.map",
- "282.chunk.js.map": "/282.8b52e573f86730f801fc.chunk.js.map",
- "510.chunk.js.map": "/510.d6163fa8dc978bbb2b42.chunk.js.map",
+ "app.js.map": "/app.04e10fe5e2e2b4abb9de.js.map",
+ "runtime.js.map": "/runtime.519955e002a87da88924.js.map",
+ "360.chunk.js.map": "/360.a55ccd8aeddca3df6bd0.chunk.js.map",
+ "252.chunk.js.map": "/252.c34ade07cc21e6fd9b8e.chunk.js.map",
+ "934.chunk.js.map": "/934.627b38e3de836130d875.chunk.js.map",
+ "817.chunk.js.map": "/817.cd5bd5294b2afab8578f.chunk.js.map",
+ "241.chunk.js.map": "/241.dcc517f9189cb747150e.chunk.js.map",
+ "977.chunk.js.map": "/977.f955167348f6c9037af1.chunk.js.map",
+ "86.chunk.js.map": "/86.a471108ca7f6fc7080fe.chunk.js.map",
+ "282.chunk.js.map": "/282.112f65cb06615e413141.chunk.js.map",
+ "510.chunk.js.map": "/510.ea4a79b1c75b8035f760.chunk.js.map",
"723.css.map": "/723.cc9fa5f3bdc0bf3ab2fc.css.map",
- "723.chunk.js.map": "/723.5cbb8237ca47fb280150.chunk.js.map",
- "814.chunk.js.map": "/814.bfc6d4650c1097dc56eb.chunk.js.map",
- "147.chunk.js.map": "/147.dcf17e31c752be5e1c60.chunk.js.map",
- "264.chunk.js.map": "/264.a5876f358dd6972563d5.chunk.js.map",
- "969.chunk.js.map": "/969.888044e63adb99d3626d.chunk.js.map",
- "102.chunk.js.map": "/102.dc7f30189e6e1105143b.chunk.js.map",
- "427.css.map": "/427.ccb665950325037c0dda.css.map",
- "427.chunk.js.map": "/427.acd538b4ce317d11342e.chunk.js.map",
- "765.chunk.js.map": "/765.abdc73e99f918c4200a8.chunk.js.map",
- "447.chunk.js.map": "/447.d73a7051f850d9257b12.chunk.js.map",
- "654.chunk.js.map": "/654.89446e8c7a0b8bba60ba.chunk.js.map",
- "610.chunk.js.map": "/610.d671813e159356dd5674.chunk.js.map",
- "533.chunk.js.map": "/533.bf2c24b99df0c8f8a234.chunk.js.map",
- "359.chunk.js.map": "/359.fde431aadc6dd872d1b3.chunk.js.map",
- "451.chunk.js.map": "/451.c12c367c27438b213814.chunk.js.map",
- "564.chunk.js.map": "/564.22a72ae2b4d5c2e659a1.chunk.js.map",
- "43.chunk.js.map": "/43.178b68b4bde3a2876bd8.chunk.js.map",
- "324.chunk.js.map": "/324.4fc60bcaa065dab2898f.chunk.js.map",
- "597.chunk.js.map": "/597.5d5a03215ae545861922.chunk.js.map",
- "editor.chunk.js.map": "/editor.0483213ccc286f86f266.chunk.js.map",
- "20.chunk.js.map": "/20.a271e6cfa915fdaf3602.chunk.js.map",
- "npm.react.dom.js.map": "/npm.react.dom.fcbeaa7a1582a429a00e.js.map",
- "376.js.map": "/376.9a81f019e3c71e29c4e1.js.map",
- "514.chunk.js.map": "/514.58ab6c1ac3b8af2f0016.chunk.js.map",
- "470.chunk.js.map": "/470.f28faa6be4559491ed1e.chunk.js.map",
- "193.chunk.js.map": "/193.94e6e52842fb25d00193.chunk.js.map",
- "952.chunk.js.map": "/952.fd601224f55afda56157.chunk.js.map",
+ "723.chunk.js.map": "/723.44a07361b47c51d272dd.chunk.js.map",
+ "814.chunk.js.map": "/814.3332136a855b7f4da0ef.chunk.js.map",
+ "147.chunk.js.map": "/147.d9a3ab5a852935e0e203.chunk.js.map",
+ "264.chunk.js.map": "/264.296e4fe770b1756ed46b.chunk.js.map",
+ "969.chunk.js.map": "/969.64ecdcbb7383f4baee16.chunk.js.map",
+ "102.chunk.js.map": "/102.625f7fb40793758916f1.chunk.js.map",
+ "676.css.map": "/676.ccb665950325037c0dda.css.map",
+ "676.chunk.js.map": "/676.4ce73c27b29d5f4672bb.chunk.js.map",
+ "765.chunk.js.map": "/765.e7fa6ef71a637cc3ae4d.chunk.js.map",
+ "447.chunk.js.map": "/447.99c65cf897c2e7a4e174.chunk.js.map",
+ "654.chunk.js.map": "/654.67b0714ebd49a65d277c.chunk.js.map",
+ "610.chunk.js.map": "/610.1001494a66c38627ff37.chunk.js.map",
+ "533.chunk.js.map": "/533.7791da896bd0af46ae45.chunk.js.map",
+ "359.chunk.js.map": "/359.aefe439f4f7fb9a02e15.chunk.js.map",
+ "451.chunk.js.map": "/451.aec55cb715f41fc72a63.chunk.js.map",
+ "564.chunk.js.map": "/564.2354fe745e05d75abbf2.chunk.js.map",
+ "43.chunk.js.map": "/43.36c13bf5ecbdd5373881.chunk.js.map",
+ "324.chunk.js.map": "/324.328e79181dbe63b612fa.chunk.js.map",
+ "597.chunk.js.map": "/597.cb6f23362a28e63af220.chunk.js.map",
+ "editor.chunk.js.map": "/editor.2c7891085085940ad860.chunk.js.map",
+ "20.chunk.js.map": "/20.625d62276782f5f021c5.chunk.js.map",
+ "npm.react.dom.js.map": "/npm.react.dom.5f194c629d90a617d1ac.js.map",
+ "376.js.map": "/376.e533843d1907d4e8dafa.js.map",
+ "514.chunk.js.map": "/514.af9132e943f111b25f1c.chunk.js.map",
+ "470.chunk.js.map": "/470.5ab9b3dc905a52581ba0.chunk.js.map",
+ "193.chunk.js.map": "/193.6c0f51af21cfef8bce9d.chunk.js.map",
+ "952.chunk.js.map": "/952.8782ae4b4eb5f5d394ba.chunk.js.map",
"27.css.map": "/27.384da655707f4c3b6153.css.map",
- "27.chunk.js.map": "/27.922062ec65b1e01389ee.chunk.js.map",
- "851.chunk.js.map": "/851.c2d4621d872e935ac44a.chunk.js.map",
- "18.chunk.js.map": "/18.d27b3a3f82b13e4e31b5.chunk.js.map",
- "575.chunk.js.map": "/575.9daac2298d0395fdf183.chunk.js.map",
- "502.chunk.js.map": "/502.9438cab3c9c41c42ed57.chunk.js.map",
- "663.chunk.js.map": "/663.08e4639637c3d8f77b7c.chunk.js.map",
- "129.chunk.js.map": "/129.59192a62539648e72a38.chunk.js.map",
- "277.chunk.js.map": "/277.93f8d8d191859a1c59dc.chunk.js.map",
- "655.chunk.js.map": "/655.e9a4b596ea0a5d9c7bff.chunk.js.map",
- "837.chunk.js.map": "/837.457977c0c92687b5bf08.chunk.js.map"
+ "27.chunk.js.map": "/27.23f7ef0669e969b74f95.chunk.js.map",
+ "851.chunk.js.map": "/851.7d3f8a7b3ffc933098b8.chunk.js.map",
+ "18.chunk.js.map": "/18.89d32c7ee15496f689f3.chunk.js.map",
+ "575.chunk.js.map": "/575.76dcaacb1c2276f86dea.chunk.js.map",
+ "502.chunk.js.map": "/502.517f9b221f4ed676c586.chunk.js.map",
+ "663.chunk.js.map": "/663.a89b1206f4b293aabe4b.chunk.js.map",
+ "129.chunk.js.map": "/129.1d087d9f7fb4bfa3cb72.chunk.js.map",
+ "915.chunk.js.map": "/915.c5be29433632e593abf9.chunk.js.map",
+ "655.chunk.js.map": "/655.6b819502f310febec992.chunk.js.map",
+ "837.chunk.js.map": "/837.bedee580bb54cbbff07c.chunk.js.map"
} \ No newline at end of file
diff --git a/web/gui/v2/app.24424bcb6923064df250.js b/web/gui/v2/app.04e10fe5e2e2b4abb9de.js
index cc78b647..453c92be 100644
--- a/web/gui/v2/app.24424bcb6923064df250.js
+++ b/web/gui/v2/app.04e10fe5e2e2b4abb9de.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f3529b18-e37a-40db-aff4-3aebaee7c07b",e._sentryDebugIdIdentifier="sentry-dbid-f3529b18-e37a-40db-aff4-3aebaee7c07b")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[143],{64637:function(e,t,n){"use strict";n.d(t,{a:function(){return o},db:function(){return i},fm:function(){return a},h2:function(){return c},lV:function(){return u}});n(47042),n(74916),n(15306),n(73210);var r=n(53087),o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return(0,r.default)(e,t)},a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]&&arguments[1]?e.toLowerCase():e;return t.charAt(0).toUpperCase()+t.slice(1)},i=function(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2")},c=function(e){return e.replace(/([^:]\/)\/+/g,"$1")},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e=(e=(e=(e=e.trim()).replace(/\s+/g,"-")).replace(/[^a-zA-Z0-9-]/g,"")).toLowerCase()}},41331:function(e,t,n){"use strict";n.d(t,{hX:function(){return o}});var r=n(71002),o=(n(41539),n(68216),n(2490),n(79433),n(91038),n(78783),n(57327),n(88449),n(59849),n(26699),n(32023),n(47941),n(64211),n(41874),function(e,t){var n=t.omit,r=void 0===n?[]:n,o=t.keep,a=void 0===o?[]:o;return r.length||a.length?e.filter((function(e){return a.length?a.includes(e):!r.includes(e)})):e});t.ZP=function e(t,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t===n)return!0;if("object"!==(0,r.Z)(t)||null===t||"object"!==(0,r.Z)(n)||null===n)return!1;var i=o(Object.keys(t),a),c=o(Object.keys(n),a);if(i.length!==c.length)return!1;var u=Object.prototype.hasOwnProperty.bind(n);return!i.some((function(r){return!u(r)||(t[r]!==n[r]||!e(t[r],n[r],a))}))}},38609:function(e,t,n){"use strict";var r=n(71002),o=n(93433),a=(n(85827),n(41539),n(25387),n(2490),n(72608),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(47941),n(41331)),i=function(e,t,n){var r=(0,a.hX)(e,n);return r.reduce((function(e,t,o){return e.push(u(t,r[o],n)),e}),[])},c=function(e,t,n){var r=(0,a.hX)((0,o.Z)(new Set([].concat((0,o.Z)(Object.keys(e)),(0,o.Z)(Object.keys(t))))),n),i=Object.prototype.hasOwnProperty.bind(t);return r.reduce((function(r,o){return i(o)?r[o]=u(e[o],t[o],n):r[o]=e[o],r}),{})},u=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e===t||"object"!==(0,r.Z)(e)||null===e||"object"!==(0,r.Z)(t)||null===t?t:Array.isArray(t)?i(e,0,n):c(e,t,n)};t.Z=u},58591:function(e,t,n){"use strict";n.d(t,{bp:function(){return g},kG:function(){return p},m$:function(){return f},np:function(){return m},xs:function(){return v}});var r=n(29439),o=(n(74916),n(23123),n(85827),n(41539),n(25387),n(2490),n(72608),n(82772),n(69720),n(21249),n(57640),n(9924),n(92222),n(59242)),a=n.n(o),i=n(82492),c=n.n(i),u=n(57557),s=n.n(u),l=/[&;]/,f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:decodeURIComponent(window.location.hash.substr(1));return 0===e.length?{}:e.split(l).reduce((function(e,t){var n=t.indexOf("=");-1!==n&&(e[t.substring(0,n)]=t.substring(n+1));return e}),{})},d=function(e){var t=Object.entries(e);return 0===t.length?"":t.map((function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];return"".concat(n,"=").concat(encodeURIComponent(o))})).join("&")},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1)),n=s()(f(t),e);return d(n)},v=(a()([f,d]),function(e){var t=f();c()(t,e);var n="#".concat(d(t)),r=history.state;location.hash=n,history.replaceState(r,"",n)}),m=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1));return f(t)[e]},g=function(e){history.replaceState(history.state,"","#".concat(p(e)))}},78710:function(e,t,n){"use strict";n.d(t,{xZ:function(){return y},Fb:function(){return h},aD:function(){return b},HM:function(){return g},Xh:function(){return m},ZP:function(){return A},vT:function(){return S},iM:function(){return d},Ly:function(){return O},tj:function(){return p},se:function(){return v}});var r,o,a,i=n(4942),c=(n(74916),n(15306),n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(75674)),u=n(64637);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=(null===(r=window.envSettings)||void 0===r?void 0:r.isAgent)||!1,d=function(){var e,t,n;return f&&!(null!==(e=window.localNetdataAgent)&&void 0!==e&&e.cloudEnabled||"disabled"!==(null===(t=window.localNetdataRegistry)||void 0===t?void 0:t.cloudStatus)&&"unavailable"!==(null===(n=window.localNetdataRegistry)||void 0===n?void 0:n.cloudStatus)||localStorage.getItem("netdataJWT"))},p=/\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud)\/?.*/,v=f?window.location.pathname.replace(p,""):"/",m=(0,u.lV)((null===(o=window.localNetdataRegistry)||void 0===o?void 0:o.hostname)||"agent"),g=(null===(a=window.localNetdataRegistry)||void 0===a?void 0:a.mg)||"agent",b={createdAt:"",description:"",iconURL:"",id:g,error:null,loaded:!0,name:m,slug:m,permissions:{"user:ChangeName":"user:ChangeName","user:ChangeTheme":"user:ChangeTheme","user:ChangeEmailSetting":"user:ChangeEmailSetting","user:ChangeSpaceRoomNotifications":!1,"user:AddAPIToken":"user:AddAPIToken","user:DeleteAPIToken":"user:DeleteAPIToken","user:ReplaceAPIToken":"user:ReplaceAPIToken","user:CreateSpace":"user:CreateSpace","user:UpdateVisitedNodes":"user:UpdateVisitedNodes","space:Read":"space:Read","space:UpdateMeta":"space:UpdateMeta","room:ReadUsers":"room:ReadUsers","room:ReadAll":"room:ReadAll","room:Read":"room:Read","alert:ReadAll":"alert:ReadAll","function:ReadAll":"function:ReadAll","function:ExecAll":"function:ExecAll","function:Exec":"function:Exec","function:ExecPrivileged":"function:ExecPrivileged","feed:ReadBasic":"feed:ReadBasic","feed:ReadManagement":"feed:ReadManagement","billing:ReadAll":"billing:ReadAll","billing:ReadBasic":"billing:ReadBasic","visitedNodes:Update":"visitedNodes:Update","visitedNodes:ReadAll":"visitedNodes:ReadAll"}},h="local",y=l(l({},c.Z),{},{id:h,slug:h,name:h,loaded:!0,fullyLoaded:!0,spaceId:g,untouchable:!1}),S="overview",O=function(e){return f&&e===g},A=f},2145:function(e,t,n){"use strict";var r=n(15861),o=n(64687),a=n.n(o),i=(n(92222),n(47941),n(67294));t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n="refreshed-after-lazy-import",o=t?"".concat(t,"-").concat(n):n;return(0,i.lazy)((0,r.Z)(a().mark((function t(){var n,r;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=JSON.parse(window.sessionStorage.getItem(o)||"false"),t.prev=1,t.next=4,e();case 4:return r=t.sent,window.sessionStorage.setItem(o,"false"),t.abrupt("return",r);case 9:if(t.prev=9,t.t0=t.catch(1),n){t.next=14;break}return window.sessionStorage.setItem(o,"true"),t.abrupt("return",window.location.reload());case 14:throw t.t0;case 15:case"end":return t.stop()}}),t,null,[[1,9]])}))))}},66152:function(e,t,n){"use strict";n.d(t,{Tg:function(){return v},k5:function(){return p},v:function(){return d}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(71002),o=n(4942);n(74916),n(15306),n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(26699),n(32023);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var c=[],u=function(e,t,n){return i(i({},e),{},(0,o.Z)({},function(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase()}(t),n))},s=function(e,t,n){return i(i({},e),{},(0,o.Z)({},function(e){return e.replace(/([_][a-z])/g,(function(e){return e[1].toUpperCase()}))}(t),n))},l=function(e,t,n){return i(i({},e),{},(0,o.Z)({},function(e){return e.replace(/([\s\-_][a-z])/g,(function(e){return e[1].toUpperCase()}))}(t),n))},f=function(e,t){var n=t.func,a=t.action,u=t.omit,s=void 0===u?c:u,l=t.depth,f=void 0===l?0:l;return(f-=1)?Array.isArray(e)?e.map((function(e){return n(e,{omit:s})})):"object"===(0,r.Z)(e)&&e?Object.keys(e).reduce((function(t,r){if(s.includes(r))return i(i({},t),{},(0,o.Z)({},r,e[r]));var c=n(e[r],{omit:s});return a(t,r,c)}),{}):e:e},d=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.omit,o=n.depth;return f(t,{func:e,action:u,omit:r,depth:o})},p=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.omit,o=n.depth;return f(t,{func:e,action:s,omit:r,depth:o})},v=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.omit,o=n.depth;return f(t,{func:e,action:l,omit:r,depth:o})}},26398:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(4942),o=n(29439),a=(n(74916),n(77601),n(47941),n(4723),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(52861)),i=n(46189),c=n(78710),u=(n(15306),n(92222),n(64765),n(64637)),s=(n(26699),n(32023),function(e,t,n){var r=n.includes("join-callback")?n:encodeURIComponent(n);return"".concat(t).concat(t?"&":"?","cloudRoute=").concat(e).concat(r)});function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=function(e){return function(t,n){try{if(/text\/plain/.test(n.getContentType()))throw{errorMessage:t};var r=JSON.parse(t||"{}");if(r.errorMsgKey)throw r;return e?e(r):r}catch(o){return o}}},p=function(e){return e},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=e.apply(void 0,n),a=o.catch((function(e){var t,r;if(401!==(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.status)||null!==e&&void 0!==e&&null!==(r=e.config)&&void 0!==r&&r.allow401)throw e;if(c.ZP){var o=window.location.origin+window.location.pathname.replace(c.tj,"");if(n[1].baseURL===window.envSettings.agentApiUrl)throw e;window.location.href=(0,u.h2)("".concat(window.envSettings.cloudUrl,"/trust?redirect_uri=").concat(encodeURIComponent(window.location.href),"&agent_uri=").concat(encodeURIComponent(o||window.envSettings.agentApiUrl)))}else{var a=window.location,i=a.pathname,l=a.search,f=a.hash;if(!/(sign-(in|up)|join-space)/.test(i))return window.location.replace((0,u.h2)("".concat(c.ZP?window.envSettings.cloudUrl:"","/sign-in").concat(s(i,l,f))))}}));return a.cancel=o.cancel,a}}((function(n){for(var r,u,s=arguments.length,l=new Array(s>1?s-1:0),v=1;v<s;v++)l[v-1]=arguments[v];var m=t?l:[null,l[0]],g=(0,o.Z)(m,2),b=g[0],h=g[1],y=void 0===h?{}:h,S=a.Z.CancelToken.source(),O=y.transform,A=void 0===O?p:O,w=localStorage.getItem("netdataJWT"),k=null===(r=window.localNetdataRegistry)||void 0===r?void 0:r.mg,P=localStorage.getItem("agentJWT:".concat(k)),Z=y.baseURL||i.Z.apiBaseURL||"",E=function(n,r){return t?a.Z[e](n,b,r):a.Z[e](n,r)}(n,f(f({},y),{},{baseURL:Z,transformResponse:[d(A)],cancelToken:S.token},(!!w||!!P)&&{headers:f(f(f({},null===y||void 0===y?void 0:y.headers),/netdata\.cloud/.test(Z)&&{Authorization:"Bearer ".concat(w)}),Z===window.envSettings.agentApiUrl&&P&&"undefined"!==P&&{Authorization:"Bearer ".concat(P)})})),j=E.catch((function(e){throw e.isCancel=a.Z.isCancel(e),e}));j.cancel=function(){return S.cancel()};var x=null===(u=n.match(/\/spaces\/(.+?)\//))||void 0===u?void 0:u[1];return(0,c.Ly)(x)&&j.cancel(),j}))},m={get:v("get"),post:v("post",!0),patch:v("patch",!0),put:v("put",!0),delete:v("delete")}},16634:function(e,t){"use strict";t.Z=function(e){if(!e.response){var t=e.message||"Something went wrong";return{errorCode:500,errorMessage:t,errorMsgKey:500,status:500,statusText:t}}var n=e.response,r=n.data;return{errorCode:r.errorCode,errorMessage:r.errorMessage,errorMsgKey:r.errorMsgKey,status:n.status,statusText:n.statusText}}},28234:function(e,t,n){"use strict";n.d(t,{r:function(){return o}});n(66992),n(51532),n(41539),n(78783),n(10072),n(23042),n(99137),n(71957),n(96306),n(103),n(74592),n(58276),n(35082),n(12813),n(18222),n(38563),n(50336),n(7512),n(33948);var r=new Map([["ErrParsingRequestBody","Bad Request"],["ErrUntrustedRedirectURI","Untrusted Redirect URI"],["ErrInternalServerError","Internal Server Error"],["ErrUnauthenticated","User Not Authenticated"],["ErrInvalidLastUpdatedRange","Invalid Time Selection"],["ErrForbidden","Forbidden"],["ErrInvalidEmail","Invalid E-mail"],["ErrInvalidRedirectURI","Invalid Redirect URI"],["ErrMissingStateCookie","Missing Authentication Cookie"],["ErrIncorrectChallengeResponse","Incorrect Response"],["ErrAccountDeleted","Account Deleted!"],["ErrInvalidAccountID","Invalid Account ID"],["ErrVisitedNodeNotFound","Node Not Found"],["ErrAccountIsTheLastMemberOfAPaidSpace","Cannot delete account"],["ErrWworkspaceSlugTaken","Space Slug Unavailable"],["ErrInvalidWorkspaceName","Bad Space Name"],["ErrNotWorkspaceMember","User is not a Space member"],["ErrInvalidWorkspaceID","Invalid Space ID"],["ErrWorkspaceNotFound","No Space Found"],["ErrSpaceSlugTaken","Space Slug Unavailable"],["ErrInvalidSpaceName","Invalid Space Name"],["ErrNotSpaceMember","Not a Space Member"],["ErrForbiddenNotAdmin","Not a Space Admin"],["ErrLastSpaceAdmin","Last Admin In Space"],["ErrLastSpaceMember","Last Member In Space"],["ErrInvalidSpaceID","Bad Space ID"],["ErrInvalidMemberID","Bad Member ID"],["ErrForbiddenNotMember","Not a Member"],["ErrMissingMemberIDs","No Member IDs Given"],["ErrSpaceNotFound","Space Not Found"],["ErrSpaceMemberNotFound","Space Member Not Found"],["ErrMissingTokenIDs","Token ID Not Found"],["ErrCannotDeleteCurrentToken","You cannot delete the token in use for this session"],["ErrInvalidRole","Invalid Member Role"],["ErrCannotLeaveSpace","Cannot Leave Space"],["ErrInvalidSpaceDescription","Invalid Space Description"],["ErrInvalidEmailDomain","Invalid Email Domain"],["ErrCanNotDeletePaidSpace","Cannot delete paid space"],["ErrAgentCanceledBigResponse","Agent's response is too big"],["ErrAgentExpired","Agent is overloaded"],["ErrAgentTimeout","Timeout waiting agent response"],["ErrAlreadyClaimed","Node Already Claimed"],["ErrContextNotFound","Node doesn't have the requested context"],["ErrInternal","Internal server error"],["ErrInvalidNodeID","Invalid Node ID"],["ErrMissingNodeIDs","No Node IDs Given"],["ErrNoData","Node doesn't have data for the requested period"],["ErrNodeNotFound","Node Not Found"],["ErrNodeUnreachable","Unreachable Node"],["ErrUnreachable","Node is unreachable"],["ErrNodeInstanceNotFound","Node doesn't exist on Netdata"],["ErrRoomNameExist","Room Name Already Exists"],["ErrInvalidRoomName","Invalid Room Name"],["ErrRoomNotFound","Room Not Found"],["ErrInvalidRoomID","Invalid Room ID"],["ErrRoomNameTaken","Room Name Unavailable"],["ErrContextNotFound","Context Not Found"],["ErrNodeContextNotFound","Metric Context Not Found"],["ErrInvalidContextID","Invalid Metric Context ID"],["ErrForbiddenNotRoomMember","Not a Room Member"],["ErrUntouchableRoom","Room Cannot Be Changed"],["ErrRoomCannotBeDefault","Private Room Cannot Be Set As Default"],["ErrInvalidRoomDescription","Invalid Room Description"],["ErrRoomMemberAlreadyExists","Member Already Exists In Room"],["ErrAllowedMembersIncreased","Space member limit"],["ErrPendingInvitationsLimitReached","Pending invitations limit"],["ErrSpaceMembersLimitReached","Space member limit"],["Network Error","No internet connection"],["Timeout","Timeout"],["default","Something went wrong"]]),o=function(e){if(e)return r.has(e)?r.get(e):r.get("default")}},91008:function(e,t,n){"use strict";var r,o=n(87462),a=n(45987),i=(n(92222),n(67294)),c=n(79655),u=n(60677),s=n(15557),l=n(82351),f=["alignItems","disabledColor","color","flavour","hoverColor","visitedColor","gap","strong"],d=["Component","as","disabled","onClick","to","href","isBasic"],p=["boxProps","showToolTip","content","align","isBasic"],v={default:{initial:"primary",visited:"accent",hover:"primary"},tableLink:{initial:"text",visited:"text",hover:"primary"}},m=function(e){return(0,u.default)(e).withConfig({displayName:"anchor",componentId:"sc-oaxxs6-0"})(["",""],(function(e){var t=e.disabled,n=e.color,r=e.hoverColor,o=e.disabledColor,a=e.visitedColor,i=e.theme,c=e.flavour,u=void 0===c?"default":c;return t?function(e){var t,n,r,o=e.disabledColor,a=e.color,i=e.theme,c=e.flavour,u=e.visitedColor;return"\n color: ".concat((0,s.getColor)(o||a||(null===(t=v[c])||void 0===t?void 0:t.initial))({theme:i}),";\n ").concat(o?"":"opacity: 0.4;","\n pointer-events: none;\n\n & > svg > use {\n fill: ").concat((0,s.getColor)(o||a||(null===(n=v[c])||void 0===n?void 0:n.initial))({theme:i}),";\n }\n \n &:visited {\n color: ").concat((0,s.getColor)(u||o||a||(null===(r=v[c])||void 0===r?void 0:r.visited))({theme:i}),";\n }\n")}({disabledColor:o,color:n,theme:i,flavour:u}):function(e){var t,n,r,o,a,i,c=e.color,u=e.theme,l=e.hoverColor,f=e.visitedColor,d=e.flavour;return"\n color: ".concat((0,s.getColor)(c||(null===(t=v[d])||void 0===t?void 0:t.initial))({theme:u}),";\n & > svg > use {\n fill: ").concat((0,s.getColor)(c||(null===(n=v[d])||void 0===n?void 0:n.initial))({theme:u}),";\n }\n &:hover {\n color: ").concat((0,s.getColor)(l||(null===(r=v[d])||void 0===r?void 0:r.hover))({theme:u})," !important;\n & > svg > use {\n fill: ").concat((0,s.getColor)(l||(null===(o=v[d])||void 0===o?void 0:o.hover))({theme:u})," !important;\n }\n }\n &:visited {\n color: ").concat((0,s.getColor)(f||c||(null===(a=v[d])||void 0===a?void 0:a.visited))({theme:u}),";\n & > svg > use {\n fill: ").concat((0,s.getColor)(f||c||(null===(i=v[d])||void 0===i?void 0:i.visited))({theme:u}),";\n }\n }\n cursor:pointer\n")}({color:n,theme:i,hoverColor:r,visitedColor:a,flavour:u})}))},g=m("a"),b=m((0,i.forwardRef)((function(e,t){e.alignItems,e.disabledColor,e.color,e.flavour,e.hoverColor,e.visitedColor,e.gap,e.strong;var n=(0,a.Z)(e,f);return i.createElement(c.rU,(0,o.Z)({ref:t},n))}))),h=function(e){return e.preventDefault()};t.Z=(r=function(e){var t=e.Component,n=void 0===t?s.Text:t,r=e.as,c=void 0===r?"a":r,u=e.disabled,l=e.onClick,f=e.to,p=e.href,v=(e.isBasic,(0,a.Z)(e,d));return i.createElement(n,(0,o.Z)({as:"a"===c?g:b,disabled:u,onClick:u?h:l},f&&!u&&{to:f},p&&!u&&{href:p},v))},function(e){var t=e.boxProps,n=e.showToolTip,o=e.content,c=e.align,u=e.isBasic,f=(0,a.Z)(e,p);return n?i.createElement(l.Z,{plain:!0,content:o,align:c,isBasic:u},i.createElement(s.Box,t,i.createElement(r,f))):i.createElement(r,f)})},92501:function(e,t,n){"use strict";n.d(t,{NY:function(){return p},Pf:function(){return g}});n(41539),n(81299),n(12419);var r=n(15671),o=n(43144),a=n(60136),i=n(82963),c=n(61120),u=n(24975),s=n(67294),l=n(15557),f=n(91008);function d(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=(0,c.Z)(e);if(t){var o=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return(0,i.Z)(this,n)}}var p=function(e){var t=e.title,n=void 0===t?"Oops, something unexpected happened!":t,r=e.message,o=void 0===r?"":r;return s.createElement(l.Flex,{alignItems:"center",justifyContent:"center","data-testid":"error-boundary",flex:!0},s.createElement(l.Flex,{flex:!0,column:!0,alignItems:"center",gap:4,width:{max:115}},s.createElement(l.H3,null,n),!!o&&s.createElement(l.Text,null,o),s.createElement(l.Text,null,"We track these errors automatically, but if the problem persists feel free to contact us with a"," ",s.createElement(f.Z,{href:"https://github.com/netdata/netdata-cloud/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},"ticket"),", a"," ",s.createElement(f.Z,{href:"https://community.netdata.cloud/",target:"_blank",rel:"noopener noreferrer"},"post in the forum")," ","or through"," ",s.createElement(f.Z,{href:"https://discord.com/invite/mPZ6WZKKG2",target:"_blank",rel:"noopener noreferrer"},"Discord"),"."),s.createElement(l.Text,null,"In the meantime you can refresh this page"),s.createElement(l.Button,{label:"Refresh",icon:"refresh",onClick:function(){return window.location.reload()},"data-ga":"error-boundary::click-reload::reload-on-error","data-testid":"error-boundary-reload"})))},v=function(e){(0,a.Z)(n,e);var t=d(n);function n(e){var o;return(0,r.Z)(this,n),(o=t.call(this,e)).state={hasError:!1},o}return(0,o.Z)(n,[{key:"componentDidCatch",value:function(e,t){console.log(e,t)}},{key:"render",value:function(){return this.state.hasError?s.createElement(p,null):this.props.children}}],[{key:"getDerivedStateFromError",value:function(e){return{hasError:!0}}}]),n}(s.Component),m=function(e){(0,a.Z)(n,e);var t=d(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,o.Z)(n)}(u.SV);m.defaultProps={fallback:p};var g=function(e){var t=window.envSettings.tracking?m:v;return function(n){return s.createElement(t,{fallback:p},s.createElement(e,n))}};t.ZP=m},14600:function(e,t,n){"use strict";n.d(t,{E:function(){return v},K:function(){return d}});var r=n(45987),o=n(4942),a=n(29439),i=(n(92222),n(41539),n(39714),n(74916),n(15306),n(85827),n(25387),n(2490),n(72608),n(4723),n(15581),n(34514),n(54747),n(2707),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),[{value:"Dateline Standard Time",abbr:"DST",text:"International Date Line West",utc:["Etc/GMT+12"]},{value:"UTC-11",abbr:"U",text:"Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{value:"Hawaiian Standard Time",abbr:"HST",text:"Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{value:"Alaskan Standard Time",abbr:"AKDT",text:"Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{value:"Pacific Standard Time (Mexico)",abbr:"PDT",text:"Baja California",utc:["America/Santa_Isabel"]},{value:"Pacific Standard Time",abbr:"PST",text:"Pacific Time (US & Canada)",utc:["America/Los_Angeles","America/Dawson","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{value:"US Mountain Standard Time",abbr:"UMST",text:"Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{value:"Mountain Standard Time (Mexico)",abbr:"MDT",text:"Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{value:"Mountain Standard Time",abbr:"MDT",text:"Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{value:"Central America Standard Time",abbr:"CAST",text:"Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{value:"Central Standard Time",abbr:"CDT",text:"Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{value:"Central Standard Time (Mexico)",abbr:"CDT",text:"Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{value:"Canada Central Standard Time",abbr:"CCST",text:"Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{value:"SA Pacific Standard Time",abbr:"SPST",text:"Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{value:"Eastern Standard Time",abbr:"EDT",text:"Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{value:"US Eastern Standard Time",abbr:"UEDT",text:"Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{value:"Venezuela Standard Time",abbr:"VST",text:"Caracas",utc:["America/Caracas"]},{value:"Paraguay Standard Time",abbr:"PYT",text:"Asuncion",utc:["America/Asuncion"]},{value:"Atlantic Standard Time",abbr:"ADT",text:"Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{value:"Central Brazilian Standard Time",abbr:"CBST",text:"Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{value:"SA Western Standard Time",abbr:"SWST",text:"Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{value:"Pacific SA Standard Time",abbr:"PSST",text:"Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{value:"Newfoundland Standard Time",abbr:"NDT",text:"Newfoundland",utc:["America/St_Johns"]},{value:"E. South America Standard Time",abbr:"ESAST",text:"Brasilia",utc:["America/Sao_Paulo"]},{value:"Argentina Standard Time",abbr:"AST",text:"Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{value:"SA Eastern Standard Time",abbr:"SEST",text:"Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{value:"Greenland Standard Time",abbr:"GDT",text:"Greenland",utc:["America/Godthab"]},{value:"Montevideo Standard Time",abbr:"MST",text:"Montevideo",utc:["America/Montevideo"]},{value:"Bahia Standard Time",abbr:"BST",text:"Salvador",utc:["America/Bahia"]},{value:"UTC-02",abbr:"U",text:"Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{value:"Mid-Atlantic Standard Time",abbr:"MDT",text:"Mid-Atlantic - Old",utc:[]},{value:"Azores Standard Time",abbr:"ADT",text:"Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{value:"Cape Verde Standard Time",abbr:"CVST",text:"Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{value:"Morocco Standard Time",abbr:"MDT",text:"Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{value:"UTC",abbr:"UTC",text:"Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{value:"GMT Standard Time",abbr:"GMT",text:"Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"GMT Standard Time",abbr:"GDT",text:"Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{value:"Greenwich Standard Time",abbr:"GST",text:"Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{value:"W. Europe Standard Time",abbr:"WEDT",text:"Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{value:"Central Europe Standard Time",abbr:"CEDT",text:"Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{value:"Romance Standard Time",abbr:"RDT",text:"Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{value:"Central European Standard Time",abbr:"CEDT",text:"Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{value:"W. Central Africa Standard Time",abbr:"WCAST",text:"West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{value:"Namibia Standard Time",abbr:"NST",text:"Windhoek",utc:["Africa/Windhoek"]},{value:"GTB Standard Time",abbr:"GDT",text:"Athens, Bucharest",utc:["Europe/Athens","Asia/Nicosia","Europe/Bucharest","Europe/Chisinau"]},{value:"Middle East Standard Time",abbr:"MEDT",text:"Beirut",utc:["Asia/Beirut"]},{value:"Egypt Standard Time",abbr:"EST",text:"Cairo",utc:["Africa/Cairo"]},{value:"Syria Standard Time",abbr:"SDT",text:"Damascus",utc:["Asia/Damascus"]},{value:"E. Europe Standard Time",abbr:"EEDT",text:"E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"South Africa Standard Time",abbr:"SAST",text:"Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{value:"FLE Standard Time",abbr:"FDT",text:"Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"Turkey Standard Time",abbr:"TDT",text:"Istanbul",utc:["Europe/Istanbul"]},{value:"Israel Standard Time",abbr:"JDT",text:"Jerusalem",utc:["Asia/Jerusalem"]},{value:"Libya Standard Time",abbr:"LST",text:"Tripoli",utc:["Africa/Tripoli"]},{value:"Jordan Standard Time",abbr:"JST",text:"Amman",utc:["Asia/Amman"]},{value:"Arabic Standard Time",abbr:"AST",text:"Baghdad",utc:["Asia/Baghdad"]},{value:"Kaliningrad Standard Time",abbr:"KST",text:"Kaliningrad",utc:["Europe/Kaliningrad"]},{value:"Arab Standard Time",abbr:"AST",text:"Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{value:"E. Africa Standard Time",abbr:"EAST",text:"Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{value:"Moscow Standard Time",abbr:"MSK",text:"Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{value:"Samara Time",abbr:"SAMT",text:"Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{value:"Iran Standard Time",abbr:"IDT",text:"Tehran",utc:["Asia/Tehran"]},{value:"Arabian Standard Time",abbr:"AST",text:"Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{value:"Azerbaijan Standard Time",abbr:"ADT",text:"Baku",utc:["Asia/Baku"]},{value:"Mauritius Standard Time",abbr:"MST",text:"Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{value:"Georgian Standard Time",abbr:"GET",text:"Tbilisi",utc:["Asia/Tbilisi"]},{value:"Caucasus Standard Time",abbr:"CST",text:"Yerevan",utc:["Asia/Yerevan"]},{value:"Afghanistan Standard Time",abbr:"AST",text:"Kabul",utc:["Asia/Kabul"]},{value:"West Asia Standard Time",abbr:"WAST",text:"Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{value:"Yekaterinburg Time",abbr:"YEKT",text:"Yekaterinburg",utc:["Asia/Yekaterinburg"]},{value:"Pakistan Standard Time",abbr:"PKT",text:"Islamabad, Karachi",utc:["Asia/Karachi"]},{value:"India Standard Time",abbr:"IST",text:"Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata"]},{value:"India Standard Time",abbr:"IST",text:"Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{value:"Sri Lanka Standard Time",abbr:"SLST",text:"Sri Jayawardenepura",utc:["Asia/Colombo"]},{value:"Nepal Standard Time",abbr:"NST",text:"Kathmandu",utc:["Asia/Kathmandu"]},{value:"Central Asia Standard Time",abbr:"CAST",text:"Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{value:"Bangladesh Standard Time",abbr:"BST",text:"Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{value:"Myanmar Standard Time",abbr:"MST",text:"Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{value:"SE Asia Standard Time",abbr:"SAST",text:"Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{value:"N. Central Asia Standard Time",abbr:"NCAST",text:"Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{value:"China Standard Time",abbr:"CST",text:"Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{value:"North Asia Standard Time",abbr:"NAST",text:"Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{value:"Singapore Standard Time",abbr:"MPST",text:"Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{value:"W. Australia Standard Time",abbr:"WAST",text:"Perth",utc:["Australia/Perth","Antarctica/Casey"]},{value:"Taipei Standard Time",abbr:"TST",text:"Taipei",utc:["Asia/Taipei"]},{value:"Ulaanbaatar Standard Time",abbr:"UST",text:"Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{value:"North Asia East Standard Time",abbr:"NAEST",text:"Irkutsk",utc:["Asia/Irkutsk"]},{value:"Japan Standard Time",abbr:"JST",text:"Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{value:"Korea Standard Time",abbr:"KST",text:"Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{value:"Cen. Australia Standard Time",abbr:"CAST",text:"Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{value:"AUS Central Standard Time",abbr:"ACST",text:"Darwin",utc:["Australia/Darwin"]},{value:"E. Australia Standard Time",abbr:"EAST",text:"Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{value:"AUS Eastern Standard Time",abbr:"AEST",text:"Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{value:"West Pacific Standard Time",abbr:"WPST",text:"Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{value:"Tasmania Standard Time",abbr:"TST",text:"Hobart",utc:["Australia/Currie","Australia/Hobart"]},{value:"Yakutsk Standard Time",abbr:"YST",text:"Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{value:"Central Pacific Standard Time",abbr:"CPST",text:"Solomon Is., New Caledonia",utc:["Etc/GMT-11"]},{value:"Vladivostok Standard Time",abbr:"VST",text:"Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{value:"New Zealand Standard Time",abbr:"NZST",text:"Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{value:"UTC+12",abbr:"U",text:"Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{value:"Fiji Standard Time",abbr:"FST",text:"Fiji",utc:["Pacific/Fiji"]},{value:"Magadan Standard Time",abbr:"MST",text:"Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{value:"Kamchatka Standard Time",abbr:"KDT",text:"Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{value:"Tonga Standard Time",abbr:"TST",text:"Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{value:"Samoa Standard Time",abbr:"SST",text:"Samoa",utc:["Pacific/Apia"]}]),c=["utc"];function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l=new Date,f=function(){try{return new Intl.DateTimeFormat("default",{}).resolvedOptions().timeZone||"Etc/GMT"}catch(e){return"Etc/GMT"}},d=function(){var e={};return i.reduce((function(t,n){var r=n.utc;try{var o=new Intl.DateTimeFormat("fr",{timeZone:r[0],timeZoneName:"short"}).format(l).match(/[\u2212+].+/)||[],i=function(e){return e?e.replace("\u2212","-"):""}((0,a.Z)(o,1)[0]);if(e[i])return t.concat(s(s({},n),{},{offset:e[i]}));var c=function(e){if(!e)return"+0";var t=e.split(":");return t.length>1?"".concat(t[0]).concat((t[1]/60).toString().substr(1)):t[0]}(i);return e[i]=c,t.concat(s(s({},n),{},{offset:c}))}catch(u){return t}}),[])}().sort((function(e,t){return e.offset-t.offset})),p=function(e){return e.reduce((function(e,t){var n=t.utc,o=(0,r.Z)(t,c);return n.forEach((function(t){return e[t]=s(s({},o),{},{utc:t})})),e}),{})}(d),v=function(e,t){var n=t||("default"===e?f():e);return p[n in p?n:f()]||{}}},98469:function(e,t,n){"use strict";n.r(t),n.d(t,{isTryingToJoinWorkspace:function(){return s}});n(26699),n(32023),n(66992),n(41539),n(78783),n(33948),n(41637);var r=n(67294),o=n(89250),a=n(62200),i=n(78266),c=n(13477),u=n(33427),s=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").includes("/join-space")},l="Successfully joined space!";t.default=function(){var e=(0,c.Iy)("isAnonymous"),t=(0,o.s0)(),n=new URLSearchParams(window.location.hash.substr(1));return(0,r.useEffect)((function(){if(!e){var r=n.has("error_msg_key")?decodeURIComponent(n.get("error_msg_key")||""):null;if(r){var o=n.has("error_message")?decodeURIComponent(n.get("error_message")||""):null;r===a.Sq?(0,u.P4)(l):(0,u.P4)(o||"Error joining space",!0),t("/spaces",{replace:!0})}else(0,u.P4)(l)}}),[e]),r.createElement(i.Z,{title:"Adding you to the space..."})}},78266:function(e,t,n){"use strict";n.d(t,{H:function(){return d}});var r=n(87462),o=n(45987),a=n(67294),i=n(60677),c=n(15557),u=["title","width","height"],s=["title","body","iconProps","animate"],l=(0,i.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),f=(0,i.default)(c.Icon).withConfig({displayName:"loader__StyledIcon",componentId:"sc-a76ek6-0"})(["width:",";height:",";animation:",";"],(function(e){return e.width}),(function(e){return e.height}),(function(e){return e.animate?(0,i.css)([""," 1.6s ease-in infinite"],l):""})),d=function(e){var t=e.title,n=void 0===t?"Loading":t,i=e.width,c=void 0===i?"208px":i,s=e.height,l=void 0===s?"177px":s,d=(0,o.Z)(e,u);return a.createElement(f,(0,r.Z)({name:"netdata",color:"primary",title:n,"data-testid":"loading-logo",width:c,height:l},d))};t.Z=function(e){var t=e.title,n=e.body,i=e.iconProps,u=e.animate,l=void 0===u||u,f=(0,o.Z)(e,s);return a.createElement(c.Flex,(0,r.Z)({column:!0,height:"100vh",background:"mainBackground",width:"100%",justifyContent:"center",alignItems:"center"},f),a.createElement(d,(0,r.Z)({},i,{animate:l})),t&&a.createElement(c.H3,{color:"text",margin:[1,0,0]},t),n&&a.createElement(c.Text,{color:"text",margin:[4.5,0,0]},n))}},74855:function(e,t,n){"use strict";n.d(t,{P_:function(){return l},sc:function(){return d},t_:function(){return f}});var r=n(87462),o=n(45987),a=n(67294),i=n(15557),c=n(28234),u=["errorCode","errorMessage","errorMsgKey"],s={success:"success",error:"error",warning:"warning",default:"border"},l=function(e){var t=e.header,n=e.text,r=e.icon,o=e.renderContent,c=e.success,u=e.error,l=e.warning,f=(c?"success":u&&"error")||l&&"warning"||"default";return a.createElement(i.Flex,{padding:[2],alignItems:"center",justifyContent:"between"},a.createElement(i.Flex,{alignItems:"center",gap:3},r&&a.createElement(i.Flex,{flex:!1},a.createElement(i.Icon,{color:s[f],name:r,size:"large"})),a.createElement(i.Flex,{column:!0,gap:1},t&&a.createElement(i.H5,{color:s[f]},t),n&&a.createElement(i.TextSmall,{color:s[f]},n),o&&o(e))),a.createElement(i.Flex,null,a.createElement(i.Icon,{name:"x",size:"large",color:s[f]})))},f=function(e){e.errorCode;var t=e.errorMessage,n=e.errorMsgKey,i=(0,o.Z)(e,u);return a.createElement(l,(0,r.Z)({error:!0,icon:"error",text:t,header:(0,c.r)(n)},i))},d=function(e){return a.createElement(l,e)}},33427:function(e,t,n){"use strict";n.d(t,{$T:function(){return s},FR:function(){return g},OU:function(){return f},P4:function(){return p},Q5:function(){return u},R6:function(){return m},aN:function(){return d},cH:function(){return b},iL:function(){return v},oG:function(){return l}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(52631),a=n(74855);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=function(e){var t={header:"Nodes",text:e},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"node"}));o.Z.success(n,{context:"showNodesNotification"})},s=function(e){var t={header:"Rooms",text:e},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showRoomsNotification"})},l=function(e){var t={header:"Room users",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Users left the room!":"Users were added to room!")},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showUsersInRoomNotification"})},f=function(e){var t={header:"Space users",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Users left the space!":"Users were added to space!")},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showUsersInSpaceNotification"})},d=function(e){var t={header:"Rooms",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Rooms removed from Space!":"Rooms were added to Space!")},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showRoomsInSpaceNotification"})},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={header:t?"Error joining space":"Welcome!",text:e},r=(0,a.sc)(c(c({},n),{},{success:!t,icon:"gear"}));t?o.Z.error(r,{context:"showJoiningSpaceNotification"}):o.Z.success(r,{context:"showJoiningSpaceNotification"})},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={header:t?"Space removed":"Space added",text:e},r=(0,a.sc)(c(c({},n),{},{success:!t,icon:"gear"}));o.Z.success(r,{context:"showSpaceNotification"})},m=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={header:t?"Error creating room":"Rooms",text:e},r=(0,a.sc)(c(c({},n),{},{success:!t,icon:"gear"}));t?o.Z.error(r,{context:"showRoomCreationNotification"}):o.Z.success(r,{context:"showRoomCreationNotification"})},g=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={text:e},r=(0,a.sc)(c(c({},n),{},{text:e,success:!t,icon:"chart_added"}));t?o.Z.error(r,{context:"showDashboardCreatedNotification"}):o.Z.success(r,{context:"showDashboardCreatedNotification"})},b=function(){var e=(0,a.sc)({header:"Dashboard",text:"Invalid dashboard link. Please double-check the dashboard you are trying to access.",success:!1});o.Z.error(e,{context:"showInvalidDashboardSlugNotification"})}},52631:function(e,t,n){"use strict";n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(45987),a=n(55678),i=["context"],c=["context"];function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l={position:a.Am.POSITION.BOTTOM_RIGHT,autoClose:1e4,pauseOnFocusLoss:!1},f={};t.Z={success:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.context,r=(0,o.Z)(t,i);n&&f[n]&&(a.Am.dismiss(f[n]),delete f[n]),f[n]=a.Am.success(e,s(s({},l),r))},error:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.context,r=(0,o.Z)(t,c);n&&f[n]&&(a.Am.dismiss(f[n]),delete f[n]),f[n]=a.Am.error(e,s(s({},l),r))},dismiss:function(e){return a.Am.dismiss(e)}}},9058:function(e,t,n){"use strict";n.d(t,{Z:function(){return h},e:function(){return b}});var r=n(4942),o=n(29439),a=(n(41539),n(15581),n(2490),n(34514),n(54747),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(67294)),i=n(33937),c=n(48286),u=n(25382),s=n(24298),l=n(95248),f=n(74059),d=n(58591),p=n(14600);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=(0,a.createContext)(null),b=function(){return(0,a.useContext)(g)},h=function(e){var t,n=e.children,r=(0,i.R)("theme");r=r&&"unspecified"!==r?r:"dark";var v=(0,l.I0)(),b=(0,o.Z)(v,2),h=b[0],y=h.after,S=h.before,O=h.utc,A=h.highlight,w=b[1],k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.after,n=e.before;return(0,a.useMemo)((function(){if(t=+t,n=+n,!isNaN(t)&&!isNaN(n)&&t&&n)return{type:"highlight",range:[Math.floor(t/1e3),Math.ceil(n/1e3)]}}),[t,n])}(A),P=(0,a.useMemo)((function(){return{after:y<0?y:Math.floor(y/1e3),before:y<0?0:Math.ceil(S/1e3)}}),[y,S]),Z=(0,f.Q6)(),E=(0,a.useMemo)((function(){var e=function(){var e=(0,d.m$)().utc;return(0,p.E)("default",e).utc}(),t=(0,u.Z)({attributes:m(m({theme:r,timezone:e,overlays:m({},k&&{highlight:k})},P),{},{agent:Z,width:.8*window.innerWidth,expandable:!1})});return window.netdataSDK=t,t}),[]);(0,c.Z)((function(){E.getNodes().forEach((function(e){return e.updateAttribute("theme",r)}))}),[r]),(0,c.Z)((function(){var e=E.getRoot().getAttribute("timezone");O!==e&&E.getRoot().getApplicableNodes({syncTimezone:!0}).forEach((function(e){return e.updateAttributes({timezone:O})}))}),[O]),(0,c.Z)((function(){var e=E.getRoot().getAttribute("overlays");if(k)E.getRoot().updateAttribute("overlays",m(m({},e),{},{highlight:k})),E.getRoot().getApplicableNodes({syncHighlight:!0}).forEach((function(e){return e.updateAttribute("overlays",m(m({},e.getAttribute("overlays")),{},{highlight:k}))}));else{var t=m({},e);delete t.highlight,E.getRoot().updateAttribute("overlays",t),E.getRoot().getApplicableNodes({syncHighlight:!0}).forEach((function(e){var t=m({},e.getAttribute("overlays"));delete t.highlight,e.updateAttribute("overlays",t)}))}}),[k]),(0,a.useEffect)((function(){var e=P.after,t=P.before;E.getRoot().moveX(e,t)}),[P]);var j=localStorage.getItem("netdataJWT"),x=null===(t=window.localNetdataRegistry)||void 0===t?void 0:t.mg,T=localStorage.getItem("agentJWT:".concat(x)),C=Z?T:j;return(0,a.useEffect)((function(){E.getNodes().forEach((function(e){return e.updateAttributes({bearer:C,agent:Z})}))}),[Z,C]),(0,a.useEffect)((function(){return(0,s.unregister)(E.getRoot().onAttributeChange("after",(function(){var e=E.getRoot().getAttributes(),t=e.after,n=e.before;w({after:t<0?t:1e3*t,before:t<0?0:1e3*n})})),E.getRoot().onAttributeChange("overlays",(function(e,t){var n=e.highlight;if(n!==t.highlight){var r=null===n||void 0===n?void 0:n.range;if(r){var a=(0,o.Z)(r,2),i=a[0],c=a[1];w({highlight:{after:1e3*i,before:1e3*c}})}else w({highlight:{after:null,before:null}})}})))}),[E]),E?a.createElement(g.Provider,{value:E},n):n}},15794:function(e,t,n){"use strict";n.d(t,{k:function(){return l}});var r=n(36459),o=n(87462),a=(n(19601),n(67294)),i=n(60677),c=n(15557),u=n(33937),s={light:c.DefaultTheme,dark:c.DarkTheme,unspecified:c.DarkTheme},l=function(e,t){return function(n){var o=Object.assign({},((0,r.Z)(n),n));return a.createElement(i.ThemeProvider,{theme:s[t]||s.unspecified},a.createElement(e,o))}};t.Z=function(e){var t=(0,u.R)("theme");return a.createElement(i.ThemeProvider,(0,o.Z)({},e,{theme:s[e.theme?e.theme:t]||s.unspecified}))}},82351:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(87462),o=n(45987),a=n(67294),i=n(15557),c=["neutral","black"],u=function(e){var t=e.children,n=e.background,o=e.isBasic,u=e.padding;return a.createElement(i.Flex,(0,r.Z)({padding:u||[1.5,2],margin:[2],background:n||c,round:1,alignSelf:"start"},!o&&{width:{max:"300px"}}),a.createElement(i.TextSmall,{color:"bright"},t))},s=function(e,t){var n=t.background,r=t.isBasic,o=t.padding,i="function"===typeof e?e():e;return"string"===typeof e||r?a.createElement(u,{background:n,isBasic:r,padding:o},i):i},l=["children","content","isBasic"],f=function(e){var t=e.children,n=e.content,c=e.isBasic,u=(0,o.Z)(e,l),f=(0,a.useCallback)((function(){return s(n,{isBasic:c})}),[n]);return n?a.createElement(i.Tooltip,(0,r.Z)({plain:!0,animation:!0,content:f},u),t):t}},46189:function(e,t){"use strict";t.Z={assetsBaseURL:"".concat(window.envSettings.cloudUrl,"/static"),apiBaseURL:window.envSettings.apiUrl,demoUrl:"".concat(window.envSettings.cloudUrl,"/spaces/netdata-demo"),demoSlug:window.envSettings.demoSlug,demoFavourites:window.envSettings.demoFavourites,demoDefaultRoomViews:{default:"overview"},pollingInterval:3e4,defaultRoomView:"home",integrationsView:"integrate-anything"}},62200:function(e,t,n){"use strict";n.d(t,{$9:function(){return d},DV:function(){return s},G1:function(){return f},I3:function(){return y},Ku:function(){return p},MC:function(){return a},OI:function(){return b},R7:function(){return m},Sq:function(){return S},WV:function(){return v},_b:function(){return h},gP:function(){return i},li:function(){return o},mX:function(){return l},sf:function(){return u},t5:function(){return g},v$:function(){return c}});var r=n(2375),o="/api/v2",a="/api/v3/spaces",i=r.Z,c=20,u=22,s=13,l=["J2kdSTRJzV4","KCFFZ_qfKXk"],f="SINGLE_NODE_VIEW_PAGE",d="NODE_VIEW_PAGE",p=["info","alerts"],v={live:{statusTextColor:"primary",indicatorWrapperColor:"primary",counterColor:"primary"},stale:{statusTextColor:["green","vista"],indicatorWrapperColor:["green","vista"],counterColor:["green","vista"]},offline:{statusTextColor:"textLite",indicatorWrapperColor:"textLite",counterColor:"textLite"},unseen:{statusTextColor:"textLite",indicatorWrapperColor:"textLite",counterColor:"textLite"}},m={completed:{icon:"check",indicatorWrapperColor:"primary",textColor:"primary",text:"Completed",tooltip:"has been claimed and has successfully connected to Netdata at least once"},pending:{icon:"clock_hollow",indicatorWrapperColor:"textLite",textColor:"textLite",text:"Pending...",tooltip:"has been claimed but never connected to the Netdata."}},g=[1,39,1],b=[1,40,0],h="v1.39.1",y="v1.40.0",S="ErrSpaceMemberAlreadyExists"},87917:function(e,t,n){"use strict";n.d(t,{Jo:function(){return o},QR:function(){return a},xJ:function(){return r}});n(92222),n(57327),n(41539),n(88449),n(2490),n(59849);var r=function(e){return["admin","manager","troubleshooter","observer","billing"].concat("EarlyBird"===e?"member":[])},o=function(e){return[e["user:SetAdmin"]&&"admin",e["user:SetManager"]&&"manager",e["user:SetMember"]&&"member",e["user:SetTroubleshooter"]&&"troubleshooter",e["user:SetObserver"]&&"observer",e["user:SetBilling"]&&"billing"].filter(Boolean)},a=function(e){return[e["user:SetFromAdmin"]&&"admin",e["user:SetFromManager"]&&"manager",e["user:SetFromMember"]&&"member",e["user:SetFromTroubleshooter"]&&"troubleshooter",e["user:SetFromObserver"]&&"observer",e["user:SetFromBilling"]&&"billing"].filter(Boolean)}},80239:function(e,t,n){"use strict";n.d(t,{U:function(){return o},UV:function(){return a},VP:function(){return i},nb:function(){return r}});var r={alertStatus:"alertStatus",os:"os"},o=0,a="https://learn.netdata.cloud/docs/monitor/configure-alerts#edit-health-configuration-files",i={alertStatuses:{critical:0,warning:0},alertClasses:{Errors:0,Latency:0,Utilization:0,Workload:0}}},71992:function(e,t,n){"use strict";n.d(t,{h:function(){return v},Z:function(){return g}});var r=n(29439),o=n(87462),a=n(45987),i=(n(92222),n(67294)),c=n(15557),u=n(46667),s=n(60677),l=(0,s.default)(c.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1}).withConfig({displayName:"styled__Drop",componentId:"sc-1x9syns-0"})(["box-sizing:content-box;"]),f=(0,s.default)(c.TextSmall).withConfig({displayName:"styled__DropdownItemClickable",componentId:"sc-1x9syns-1"})(["cursor:pointer;pointer-events:",";"," &:hover{background-color:",";}"],(function(e){return e.isDisabled?"none":"auto"}),(function(e){return e.isDisabled&&"color: ".concat((0,c.getColor)("textLite")(e),";")}),(0,c.getColor)("selected")),d=["children","color","disabled","icon"],p=["Component","category","context"],v=function(e){var t=e.children,n=e.color,r=void 0===n?"text":n,u=e.disabled,s=e.icon,l=(0,a.Z)(e,d);return i.createElement(f,(0,o.Z)({as:c.Flex,"data-testid":"dropdownItem",gap:2,isDisabled:u,padding:[2,4]},l),i.createElement(c.Icon,{color:u?"textLite":r,"data-testid":"dropdownItem-icon",height:"16px",name:s,width:"16px"}),i.createElement(c.Text,{color:r,"data-testid":"dropdownItem-text",whiteSpace:"nowrap"},t))},m=(0,i.forwardRef)((function(e,t){var n=e.Component,r=e.category,c=e.context,u=(0,a.Z)(e,p);return i.createElement(n,(0,o.Z)({"data-ga":"".concat(r,"::").concat(c,"::options"),"data-testid":"chartOptions",icon:"nav_dots",flavour:"borderless",neutral:!0,small:!0,padding:0,ref:t,title:"Options"},u))})),g=function(e){var t=e.Component,n=void 0===t?c.Button:t,o=e.category,a=e.context,s=e.children,f=e.testId,d=(0,u.Z)(),p=(0,r.Z)(d,4),v=p[0],g=p[1],b=p[3],h=(0,i.useRef)(),y=f||"chartsDropdown";return i.createElement(i.Fragment,null,i.createElement(m,{"data-testid":"".concat(y,"-button"),category:o,context:a,onClick:g,ref:h,Component:n}),h.current&&v&&i.createElement(l,{close:b,"data-testid":y,onClickOutside:b,onEsc:b,target:h.current},s({close:b})))}},1043:function(e,t,n){"use strict";n.d(t,{aJ:function(){return C},R2:function(){return M},O9:function(){return j},iM:function(){return x},UQ:function(){return N},T4:function(){return D},So:function(){return I}});var r=n(4942),o=n(45987),a=n(15861),i=n(29439),c=n(64687),u=n.n(c),s=(n(92222),n(74916),n(64765),n(21249),n(57640),n(9924),n(15306),n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),l=n(89250),f=n(74059),d=n(17563),p=n(26398),v=n(5429),m=n(93017),g=n(68008),b=n(76201),h=n(78710),y=n(13477),S=n(94510),O=n(98469);function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?A(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var k=function(e){var t=e.cloudRoute,n=e.redirectUri;try{if(!(0,O.isTryingToJoinWorkspace)(t))return"";var r=function(e){var t=d.parse(e),n=t.error_retry||t.token?w(w({},t),{},{token:decodeURIComponent(t.token)}):d.parse(decodeURIComponent(e)),r=n.error_retry,o=n.token;return o||(o=d.parse(r).token),{inviteToken:o,spaceId:/spaces\/(.*)\/join-callback/.exec(r)[1]}}(n),o=r.inviteToken,a=r.spaceId;return"?".concat(d.stringify({token:o,space:a}))}catch(i){return console.warn("error parsing join-callback url",i),""}},P=["onSuccess","onFail"];function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var E=function(e){var t,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,r=void 0===n?"/sign-up":n;if(window.envSettings.tracking){var o="".concat(r,"/thank-you");window.dataLayer.push({event:"pageview",virtualPage:"".concat(o).concat(e)}),window.posthog.setPersonPropertiesForFlags({netdata_cloud_account_created_days_ago:0}),(0,b.o)("".concat(null===(t=window)||void 0===t||null===(t=t.location)||void 0===t?void 0:t.origin).concat(o).concat(e))}},j=function(e){return(0,g.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return p.Z.patch("/api/v1/accounts/".concat(e),t)}),[e])},x=function(){var e=(0,l.TH)(),t=e.search,n=e.hash,r=(0,l.bS)("/sign-up"),o=(0,l.bS)("/sign-in"),c=r?r.pathname:o?o.pathname:"",f=(0,l.s0)(),d=(0,m.Z)(),v=(0,i.Z)(d,2),g=v[0],b=v[1];return(0,s.useCallback)(function(){var e=(0,a.Z)(u().mark((function e(r){var o,a,i,s,l;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.email,a=r.redirectURI,i=r.registerURI,s=r.isUnverifiedRegistration,l=r.resend,e.prev=1,e.next=4,p.Z.post("/api/v2/auth/account/magic-link",{email:o,redirectURI:a,registerURI:i,isUnverifiedRegistration:s});case 4:g({header:"Sign in email sent"}),l||(E(t,{path:c}),f("/sign-in/magic-link-sent".concat(t).concat(n),{state:{email:o}})),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),b({header:"Sign in",text:"Invalid email"});case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}(),[])},T=function(e){var t=e.authorized_origins;return(void 0===t?[]:t).map((function(e){return{id:e.id,url:e.url,lastAccessedAt:e.last_accessed_at}}),[])},C=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.onSuccess,n=e.onFail,a=(0,o.Z)(e,P),i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(0,v.Z)((function(){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({fetch:function(){return p.Z.get("/api/v1/auth/account/origins",{transform:T})},initialValue:[],isDefaultLoading:!0,onSuccess:function(e){null===t||void 0===t||t(e)},onFail:function(e){null===n||void 0===n||n(e)}},a)}),i)},I=function(){var e=(0,s.useState)(""),t=(0,i.Z)(e,2),n=t[0],r=t[1],o=(0,s.useState)(!1),c=(0,i.Z)(o,2),l=c[0],f=c[1],d=(0,m.Z)(),v=(0,i.Z)(d,2)[1],g=(0,s.useCallback)(function(){var e=(0,a.Z)(u().mark((function e(t){var n;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),e.prev=1,e.next=4,p.Z.post("/api/v1/auth/account/origins",{origin_url:t});case 4:n=e.sent,r(n.authorized_origin_url),f(!1),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(1),v({header:"Trust URL",text:"We couldn't trust the URL"}),f(!1);case 13:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}(),[]);return[n,g,l]},D=function(e){e&&e.preventDefault();var t=(0,m.Z)(),n=(0,i.Z)(t,2)[1],r=(0,l.TH)().search,o=d.parse(r),c=o.cloudRoute,f=o.oauth,v=o.token,g=o.username,b=o.redirect_uri,h=(0,S.pi)(),y=k({cloudRoute:c,redirectUri:b});return(0,s.useCallback)((0,a.Z)(u().mark((function e(){var t;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="/api/v2/auth/account/".concat(f||"magic-link","/register"),e.prev=1,e.next=4,p.Z.post("".concat(t).concat(y),{token:v,username:g});case 4:h(),E(r),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),n(e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])}))),[f,v,g])},N=function(){var e=(0,f.Q6)();return(0,s.useCallback)((0,a.Z)(u().mark((function e(){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(localStorage.clear(),!h.ZP){e.next=3;break}return e.abrupt("return",window.location.reload());case 3:return e.next=5,p.Z.post("/api/v1/auth/account/logout");case 5:return e.abrupt("return",window.location.replace("/sign-in"));case 6:case"end":return e.stop()}}),e)}))),[e])},M=function(){var e=(0,y.jr)(),t=N(),n=(0,m.Z)(),r=(0,i.Z)(n,2)[1];return(0,s.useCallback)((0,a.Z)(u().mark((function n(){return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,p.Z.delete("/api/v1/accounts/".concat(e));case 3:t(),n.next=9;break;case 6:n.prev=6,n.t0=n.catch(0),r(n.t0);case 9:case"end":return n.stop()}}),n,null,[[0,6]])}))),[])}},94510:function(e,t,n){"use strict";n.d(t,{pi:function(){return w}});var r=n(15861),o=n(4942),a=n(45987),i=n(64687),c=n.n(i),u=(n(47941),n(41539),n(88674),n(85827),n(25387),n(2490),n(72608),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),s=n(4480),l=n(26398),f=n(62200),d=n(78710),p=n(80239),v=["permissions","settings"];function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b={auth_type:"",avatarURL:null,createdAt:"",email:"",id:null,name:"",termsAccepted:!0,isAnonymous:!1,authorizedOrigins:[]},h={theme:"unspecified",spacePanelCollapsed:!0,alertsGrouping:p.nb.alertStatus},y=function(e){var t=e.permissions,n=e.settings,r=(0,a.Z)(e,v),o=r.id===f.gP;return{permissions:t,settings:n,user:g(g({},r),{},{isAnonymous:o,termsAccepted:o||r.termsAccepted})}},S=function(){var e,t,n=JSON.parse(localStorage.getItem("userSettings"))||{},r={user:g(g({},b),{},{id:(null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.pg)||null,isLoaded:!0,isAnonymous:!0}),permissions:{},settings:g(g(g({},h),n),{},{isLoaded:!0})};if((0,d.iM)())return Promise.resolve(r);return function(){var e,a;return null===(e=t)||void 0===e||null===(a=e.cancel)||void 0===a||a.call(e),(t=l.Z.get("/api/v2/accounts/me",{transform:y,allow401:!0})).then((function(e){var t=e.data,a=t.user,i=t.permissions,c=void 0===i?[]:i,u=t.settings;return d.ZP&&a.isAnonymous?r:{user:g(g(g({},b),a),{},{isLoaded:!0}),permissions:c.reduce((function(e,t){return g(g({},e),{},(0,o.Z)({},t,t))}),{}),settings:g(g(g(g({},h),n),u),{},{isLoaded:!0})}})).catch((function(){return d.ZP?r:{user:g(g({},b),{},{isLoaded:!0}),permissions:{},settings:g(g(g({},h),n),{},{isLoaded:!0})}}))}()},O=(0,s.cn)({key:"currentUserFetcher",default:null}),A=(0,s.cn)({key:"checkAuthAtom",default:1}),w=function(){var e=(0,s.Zl)(A),t=(0,s.Zl)(O);return(0,u.useCallback)((0,r.Z)(c().mark((function n(){var r;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,S();case 2:r=n.sent,t(r),e((function(e){return e+1}));case 5:case"end":return n.stop()}}),n)}))),[])},k=(0,s.nZ)({key:"fullStateFetcher",get:function(){var e=(0,r.Z)(c().mark((function e(t){var n,r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.get,e.t0=n(O),e.t0){e.next=6;break}return e.next=5,S();case 5:e.t0=e.sent;case 6:return r=e.t0,e.abrupt("return",r);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()});t.ZP=(0,s.CG)({key:"currentUserFullState",get:function(e){return function(t){return(0,t.get)(k)[e]}}})},33335:function(e,t,n){"use strict";n.d(t,{SX:function(){return b},QB:function(){return S},M2:function(){return O},gI:function(){return y}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=(n(41539),n(85827),n(25387),n(2490),n(72608),n(47941),n(67294)),a=n(4480),i=n(41331),c=n(74059),u=n(78710),s=(0,a.xu)({key:"permissionsBySpaceId",default:{},effects:function(e){return(0,u.Ly)(e)?[function(e){var t=e.setSelf;"get"===e.trigger&&t(u.aD.permissions)}]:[]}}),l=n(87917),f=n(94510),d=(0,a.cn)({key:"userPermissions",default:(0,f.ZP)("permissions")});function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=["space:Leave","room:Create","space:InviteUser","space:RemoveUser","space:UpdateMeta","space:Delete","room:Delete","room:AddNode","node:Delete","user:ChangeRoles","room:UpdateMeta","room:Leave","room:RemoveNode","billing:Manage"],g={"space:ReadSettings":function(e){return!m.some((function(t){return!e[t]}))}},b=(0,a.CG)({key:"permissionsSelector",get:function(e){return function(t){return(0,t.get)(s(e))}},set:function(e){return function(t){var n=t.set,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n(s(e),(function(e){return(0,i.ZP)(e,r)?e:r}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),h=function(e){var t=(0,c.th)(),n=(0,a.sJ)(b(e||t)),i=(0,a.$P)(d);return(0,o.useMemo)((function(){var e,t=v({},n);return"hasValue"===i.state&&(t=v(v({},t),i.contents)),v(v({},e=t),Object.keys(g).reduce((function(t,n){return g[n](e)?v(v({},t),{},(0,r.Z)({},n,n)):t}),{}))}),[n,i.state])},y=function(e,t){return!!h(t)[e]},S=function(){var e=h();return(0,o.useMemo)((function(){return(0,l.Jo)(e)}),[e])},O=function(){var e=h();return(0,o.useMemo)((function(){return(0,l.QR)(e)}),[e])}},33937:function(e,t,n){"use strict";n.d(t,{k:function(){return h},R:function(){return b}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(15861),o=n(29439),a=n(4942),i=n(64687),c=n.n(i),u=n(4480),s=n(23109),l=n(94510),f=(0,u.cn)({key:"currentUserSettings",default:(0,l.ZP)("settings")}),d=n(1043),p=n(13477);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=(0,u.CG)({key:"userSettings",get:function(e){return function(t){var n=(0,t.get)(f);return e?n[e]:n}},set:function(e){return function(t,n){return(0,t.set)(f,(function(t){return e?m(m({},t),{},(0,a.Z)({},e,n)):n}))}}}),b=function(e){return(0,u.sJ)(g(e))},h=function(e){var t=b(e),n=function(e){var t=(0,p.Iy)("isAnonymous"),n=(0,u.Zl)(g(e)),i=(0,p.jr)(),l=(0,d.O9)(i),f=(0,s.Z)("userSettings",{}),v=(0,o.Z)(f,2)[1];return(0,u._8)((function(o){var i=o.snapshot;return function(){var o=(0,r.Z)(c().mark((function r(o){var u,s,f,d;return c().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n(o),u=i.retain(),r.prev=2,r.next=5,i.getPromise(g());case 5:if(s=r.sent,f=m(m({},s),e?(0,a.Z)({},e,o):o),!t){r.next=10;break}return v(f),r.abrupt("return");case 10:return r.next=12,l({settings:f});case 12:r.next=20;break;case 14:return r.prev=14,r.t0=r.catch(2),r.next=18,i.getPromise(g());case 18:d=r.sent,n(e?d[e]:d);case 20:return r.prev=20,u(),r.finish(20);case 23:case"end":return r.stop()}}),r,null,[[2,14,20,23]])})));return function(e){return o.apply(this,arguments)}}()}),[e])}(e);return[t,n]}},49674:function(e,t,n){"use strict";var r=n(4480),o=n(94510);t.Z=(0,r.cn)({key:"currentUser",default:(0,o.ZP)("user")})},13477:function(e,t,n){"use strict";n.d(t,{Iy:function(){return p},KL:function(){return d},ec:function(){return g},jr:function(){return v},oH:function(){return m}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(15861),o=n(4942),a=n(64687),i=n.n(a),c=n(4480),u=n(49674),s=n(1043);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=(0,c.CG)({key:"userState",get:function(e){return function(t){var n=(0,t.get)(u.Z);return e?n[e]:n}},set:function(e){return function(t,n){(0,t.set)(u.Z,(function(t){return e?f(f({},t),{},(0,o.Z)({},e,n)):f(f({},t),n)}))}}}),p=function(e){return(0,c.sJ)(d(e))},v=function(){return(0,c.sJ)(d("id"))},m=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.shouldPersist,a=t.onSuccess,u=t.onFail,l=(0,c.Zl)(d(e)),p=v(),m=(0,s.O9)(p);return(0,c._8)((function(t){var c=t.snapshot;return function(){var t=(0,r.Z)(i().mark((function t(r){var u,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(l(r),n){t.next=3;break}return t.abrupt("return");case 3:return u=c.retain(),t.prev=4,t.next=7,m(f({},e?(0,o.Z)({},e,r):r));case 7:a&&a(),t.next=16;break;case 10:return t.prev=10,t.t0=t.catch(4),t.next=14,c.getPromise(d());case 14:s=t.sent,l(e?s[e]:s);case 16:return t.prev=16,u(),t.finish(16);case 19:case"end":return t.stop()}}),t,null,[[4,10,16,19]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,a,u])},g=function(e,t){return[p(e),m(e,t)]}},67336:function(e,t,n){"use strict";n.d(t,{B1:function(){return w},O9:function(){return P},R2:function(){return k},RO:function(){return A}});n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070);var r=n(45987),o=n(4942),a=n(29439),i=(n(41539),n(39714),n(21249),n(57640),n(9924),n(47941),n(85827),n(25387),n(2490),n(72608),n(15581),n(34514),n(54747),n(4480)),c=n(68008),u=n(93017),s=n(37518),l=n(74059),f=n(19665),d=n(47133),p=n(6811),v=n(22841),m=n(9058),g=n(45215),b=n(79619),h=n(39878),y=["pristine"];function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A=function(e,t){var n=(0,u.Z)(),r=(0,a.Z)(n,2),o=r[0],i=r[1];return(0,c.Z)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=(0,f.DB)(e,t,n);return r.then((function(){return o({header:"Dashboards",text:"Dashboard successfully created!"})})).catch((function(e){return!e.isCancel&&i(e)})),r}),[e,t])},w=function(){var e=(0,u.Z)(),t=(0,a.Z)(e,2),n=t[0],r=t[1];return(0,c.Z)((function(e){var t=e.dashboards,o=t.map((function(e){return e.id})).toString(),a=t[0].roomId,i=t[0].spaceId;return(0,f.iM)(i,a,o).then((function(){return n({header:"Dashboards",text:"Dashboards successfully deleted!"})})).catch((function(e){return!e.isCancel&&r}))}),[])},k=function(e){var t=(0,d.LJ)(e,"spaceId"),n=(0,d.LJ)(e,"roomId"),r=(0,u.Z)(),o=(0,a.Z)(r,2),i=o[0],s=o[1];return(0,c.Z)((function(){var r=(0,f.iM)(t,n,e);return r.then((function(){return i({header:"Dashboards",text:"Dashboard successfully deleted!"})})).catch((function(e){return!e.isCancel&&s(e)})),r}),[e,t,n])},P=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.onSuccess,o=t.onFail,a=(0,m.e)(),c=(0,l.th)(),u=(0,s.UL)();return(0,i._8)((function(t){var i=t.snapshot,s=t.set;return function(){s((0,d.Y3)({id:e,key:"processing"}),!0);var t=i.getLoadable((0,d.Y3)({id:e})).contents,l=i.getLoadable((0,p.sX)({id:e,key:"layout"})).contents,m=i.getLoadable((0,v.oz)({id:e})).contents,S=(0,g.ZO)(a,e),A={version:t.version+1,name:t.name,snapshot:{uiState:l,items:Object.keys(m).map((function(e){if(!S||"text"===m[e].type)return O({},m[e]);var t=S.getNode({cardId:e},{inherit:!1},S.getChildren()).getAttributes(),n=t.pristine,o=(0,r.Z)(t,y),a=Object.keys(n).reduce((function(e,t){return e[t]=o[t],e}),O({},m[e]));return O(O({},m[e]),a)}))}},w=(0,f.Y)(c,u,e,A);return w.then((function(e){var t=e.data,r=t.createdAt,o=t.id,a=t.name,i=t.roomID,c=t.slug,u=t.spaceID,l=t.updatedAt,f=t.version,m=(0,b.m)(t).cards;s((0,v.oz)({id:o}),m),s((0,d.Y3)({id:o}),(function(e){return O(O({},e),{},{createdAt:r,id:o,name:a,roomId:i,slug:c,spaceId:u,updatedAt:l,version:f,processing:!1})})),s(h.UU,c),s((0,h.c7)([u,i,c]),o),s((0,p.Kl)(o)),S&&Object.keys(m).forEach((function(e){"text"!==m[e].type&&S.getNode({cardId:e}).removePristine()})),n&&n(t)})).catch((function(t){throw s((0,d.Y3)({id:e,key:"processing"},!1)),o&&o(t),t})),w}}))}},97723:function(e,t,n){"use strict";n.d(t,{CO:function(){return I},Di:function(){return T},EW:function(){return x},Kq:function(){return Z},Zj:function(){return j},jN:function(){return E},qN:function(){return C}});var r=n(15861),o=n(93433),a=n(4942),i=n(64687),c=n.n(i),u=(n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(57327),n(88449),n(59849),n(15581),n(34514),n(54747),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(67294)),s=n(4480),l=n(28721),f=n(54227),d=n(5934),p=n(44850),v=n(98475),m=n(47133),g=n(6811),b=n(22841),h=n(19665),y=n(67336);function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return O(O(O({},p.js),p.v),{},{id:(0,l.Z)(),type:"chart",contextScope:e},t)},w=function(e){return function(t,n){var r=t.reduce((function(e,t){var n=t.y+t.h;return n>e?n:e}),0);return[].concat((0,o.Z)(t),[O(O({},e),{},{i:n,y:r})])}},k=w(v.Mk),P=w(v.b1),Z=function(e){return(0,s._8)((function(t){var n=t.set;return function(){var t=(0,l.Z)(),r=O(O(O({},p.js),p.Xw),{},{id:t,type:"text",editing:!0});n((0,m.Y3)({id:e,key:"cardIds"}),(function(e){return[].concat((0,o.Z)(e),[t])})),n((0,g.Fu)(e),(function(e){return P(e,t)})),n((0,b.oz)({id:e,resourceId:t}),r)}}))},E=function(e){return(0,s._8)((function(t){var n=t.set;return function(t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=A(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),i=a.id;n((0,m.Y3)({id:e,key:"cardIds"}),(function(e){return[].concat((0,o.Z)(e),[i])})),n((0,g.Fu)(e),(function(e){return k(e,i)})),n((0,b.oz)({id:e,resourceId:i}),a),r()}}))},j=function(e,t){return(0,s._8)((function(n){var r=n.set;return function(){r((0,m.Y3)({id:e,key:"cardIds"}),(function(e){return e.filter((function(e){return e!==t}))})),r((0,g.Fu)(e),(function(e){return e.filter((function(e){return e.i!==t}))})),r((0,b.oz)({id:e}),(function(e){var n=O({},e);return delete n[t],n}))}}))},x=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,i=(0,y.RO)(e,t);return(0,s._8)((function(n){var u=n.set;return function(){var n=(0,r.Z)(c().mark((function n(r){var s,l,f,p,v=arguments;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=v.length>1&&void 0!==v[1]?v[1]:o,n.prev=1,n.next=4,i(r);case 4:l=n.sent,f=l.data,p=O(O(O({},r),{},{spaceId:e,roomId:t},f),{},{loaded:!0}),u((0,m.lz)(f.id),p),u((0,d.$3)(t),p),s&&s(p),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(1),a?a(r):console.warn("failed",n.t0);case 15:case"end":return n.stop()}}),n,null,[[1,12]])})));return function(e){return n.apply(this,arguments)}}()}),[i,e,o,a])},T=function(e,t,n){var r=x(e,t,n);return(0,u.useCallback)((function(o,a,i){var c=A(a,i);return r({name:o},(function(r){var o;(0,h.Y)(e,t,r.id,{version:r.version+1||2,snapshot:{uiState:k([],c.id),items:[O(O({},c),{},{cardAttributes:O(O({},i),{},{id:c.id})})]}}),null===n||void 0===n||null===(o=n.onSuccess)||void 0===o||o.call(n,r)}))}),[r])},C=function(e){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.onSuccess,o=t.onFail,a=(0,f.Le)();return(0,s._8)((function(t){var i=t.snapshot,u=t.set;return function(){var t=(0,r.Z)(c().mark((function t(r){var s,l;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=r.ids,t.next=3,i.getPromise((0,m.NM)(s));case 3:return l=t.sent,t.prev=4,t.next=7,e({dashboards:l});case 7:l.forEach((function(e){var t=e.id,n=e.roomId;u((0,m._d)(t)),u((0,d.Mg)(n),[t]),a(t)})),n&&n(l),t.next=14;break;case 11:t.prev=11,t.t0=t.catch(4),o?o(l):console.warn("failed",t.t0);case 14:case"end":return t.stop()}}),t,null,[[4,11]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,o])}((0,y.B1)(),e)},I=function(e,t){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,i=(0,m.LJ)(e,"spaceId"),u=(0,m.LJ)(e,"roomId"),l=(0,f.Le)();return(0,s._8)((function(n){var i=n.snapshot,s=n.set;return(0,r.Z)(c().mark((function n(){var r;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,i.getPromise((0,m.Y3)({id:e}));case 2:return r=n.sent,n.prev=3,n.next=6,t();case 6:s((0,m._d)(e)),s((0,d.Mg)(u),[e]),l(e),o&&o(r),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(3),a?a(r):console.warn("failed",n.t0);case 15:case"end":return n.stop()}}),n,null,[[3,12]])})))}),[t,i,u,e,o,a])}(e,(0,y.R2)(e),t)}},19665:function(e,t,n){"use strict";n.d(t,{AK:function(){return c},DB:function(){return a},Y:function(){return o},iM:function(){return i}});n(92222);var r=n(26398),o=function(e,t,n,o){return r.Z.patch("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards/").concat(n),o)},a=function(e,t,n){return r.Z.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards"),n)},i=function(e,t,n){return r.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards?dashboard_ids=").concat(n))},c=function(e,t,n){return r.Z.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards/").concat(n))}},44850:function(e,t,n){"use strict";n.d(t,{Xw:function(){return a},js:function(){return i},v:function(){return o}});var r=n(4480),o={pristine:{},id:null},a={pristine:{},id:null,text:"<p><br/></p>",editing:!1},i={id:"",type:""};t.ZP=(0,r.xu)({key:"dashboardCards",default:{}})},22841:function(e,t,n){"use strict";n.d(t,{IT:function(){return d},I_:function(){return f},_q:function(){return l},oz:function(){return u}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(4480),a=n(44850);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=(0,o.CG)({key:"dashboardCardsState",get:function(e){var t=e.id,n=e.resourceId;return function(e){var r=(0,e.get)((0,a.ZP)(t));return n?r[n]||a.js:r}},set:function(e){var t=e.id,n=e.resourceId;return function(e,o){var i=e.set;return n?"function"===typeof o?i((0,a.ZP)(t),(function(e){return c(c({},e),{},(0,r.Z)({},n,o(e[n])))})):void i((0,a.ZP)(t),(function(e){return c(c({},e),{},(0,r.Z)({},n,c(c({},e[n]),o)))})):i((0,a.ZP)(t),o)}}}),s=(0,o.CG)({key:"dashboardCardState",get:function(e){var t=e.id,n=e.resourceId,r=e.key;return function(e){var o=(0,e.get)(u({id:t,resourceId:n}));return r?o[r]:o}},set:function(e){var t=e.id,n=e.resourceId,o=e.key;return function(e,a){return(0,e.set)(u({id:t,resourceId:n}),(0,r.Z)({},o,a))}}}),l=function(e,t){return(0,o.sJ)(u({id:e,resourceId:t}))},f=function(e,t,n){return(0,o.sJ)(s({id:e,resourceId:t,key:n}))},d=function(e,t,n){return(0,o.Zl)(s({id:e,resourceId:t,key:n}))}},98475:function(e,t,n){"use strict";n.d(t,{E3:function(){return i},Mk:function(){return a},b1:function(){return o}});var r=n(4480),o={i:null,x:0,y:0,w:3,h:4,minW:2,minH:4},a={i:null,x:0,y:0,w:10,h:9,minW:6,minH:8},i={layout:[],pristine:{}};t.ZP=(0,r.xu)({key:"dashboardLayout",default:i})},6811:function(e,t,n){"use strict";n.d(t,{sX:function(){return v},Kl:function(){return g},Fu:function(){return m},ZL:function(){return b}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(4480),a=n(41331);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=n(98475);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"pristine";return{updatePristine:function(t,n,o){if(!(n in(t[e]||{}))&&!(0,a.ZP)(t[n],o))return c(c({},t),{},(0,r.Z)({},e,c(c({},t[e]),{},(0,r.Z)({},n,t[n]))));if((0,a.ZP)(t[e][n],o)){var i=c({},t[e]);return delete i[n],c(c({},t),{},(0,r.Z)({},e,i))}return t},resetPristine:function(t){return c(c(c({},t),t[e]),{},(0,r.Z)({},e,{}))}}}(),d=f.updatePristine,p=f.resetPristine,v=(0,o.CG)({key:"dashboardLayoutState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)((0,u.ZP)(t));return n?r[n]:r}},set:function(e){return function(t,n){(0,t.set)((0,u.ZP)(e),l(l({},u.E3),{},{layout:n}))}}}),m=(0,o.CG)({key:"updateDashboardLayoutState",get:function(e){return function(t){return(0,t.get)(v({id:e,key:"layout"}))}},set:function(e){return function(t,n){(0,t.set)((0,u.ZP)(e),(function(e){return l(l({},d(e,"layout",n)),{},{layout:n})}))}}}),g=(0,o.CG)({key:"removePristineDashboardLayoutState",set:function(e){return function(t){(0,t.set)((0,u.ZP)(e),(function(e){return l(l({},e),{},{pristine:{}})}))}}}),b=((0,o.CG)({key:"removePristineDashboardLayoutState",set:function(e){return function(t){(0,t.set)((0,u.ZP)(e),(function(e){return p(e)}))}}}),function(e){var t=function(e,t){return(0,o.sJ)(v({id:e,key:t}))}(e,"layout"),n=function(e){return(0,o.Zl)(m(e))}(e);return[t,n]})},47133:function(e,t,n){"use strict";n.d(t,{Z7:function(){return k},lz:function(){return w},g4:function(){return Z},_d:function(){return P},Y3:function(){return h},NM:function(){return O},r0:function(){return C},FV:function(){return I},DS:function(){return T},HI:function(){return y},LJ:function(){return S},QF:function(){return A}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(29439),o=n(4942),a=(n(21249),n(57640),n(9924),n(47941),n(41539),n(64211),n(2490),n(41874),n(92222),n(67294)),i=n(4480),c=n(74059),u=n(37518),s=n(9058),l=n(6811),f=n(22841),d=n(39878),p={id:null,loaded:!1,fullyLoaded:!1,loading:!0,processing:!1,isOwner:!1,spaceSlug:"",roomSlug:"",spaceId:"",roomId:"",name:"",slug:"",version:0,createdAt:"",updatedAt:"",cardIds:[]},v=(0,i.xu)({key:"dashboard",default:p}),m=n(45215);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=(0,i.CG)({key:"dashboardState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(v(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.set;return n?"function"===typeof r?a(v(t),(function(e){return b(b({},e),{},(0,o.Z)({},n,r(e[n])))})):void a(v(t),(function(e){return b(b({},e),{},(0,o.Z)({},n,r))})):a(v(t),b(b({},p),r))}}}),y=function(e){var t=e.id,n=e.key;return(0,i.FV)(h({id:t,key:n}))},S=function(e,t){return(0,i.sJ)(h({id:e,key:t}))},O=(0,i.CG)({key:"dashboardsState",get:function(e){return function(t){var n=t.get;return e.map((function(e){return n(h({id:e}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),A=function(e){return(0,i.sJ)(O(e))},w=(0,i.CG)({key:"dashboardInitializeState",get:function(e){return function(t){return(0,t.get)(v(e))}},set:function(e){return function(t,n){var r=t.set;r(h({id:e}),b(b({},n),{},{loaded:!0}));var o=n.spaceId,a=n.roomId,i=n.slug;r((0,d.c7)([o,a,i]),e)}}}),k=(0,i.CG)({key:"dashboardFullyInitializeState",set:function(e){return function(t,n){var r=t.set,o=n.layout,a=n.dashboard,i=n.cards;r(h({id:e}),b(b({},a),{},{loaded:!0,fullyLoaded:!0,loading:!1})),r((0,l.sX)(e),o),r((0,f.oz)({id:e}),i);var c=a.spaceId,u=a.roomId,s=a.slug;r((0,d.c7)([c,u,s]),e)}}}),P=(0,i.CG)({key:"dashboardReset",set:function(e){return function(t){var n=t.get,r=t.set,o=t.reset,a=n(v(e)),i=a.spaceId,c=a.roomId,u=a.slug;o(v(e)),r(d.UU,null),o((0,d.c7)([i,c,u]))}}}),Z=(0,i.CG)({key:"dashboardLoadingState",set:function(e){return function(t,n){(0,t.set)(h({id:e,key:"loading"}),n)}}}),E=function(e){var t=e.pristine,n=void 0===t?{}:t;return 0===Object.keys(n).length},j=(0,i.CG)({key:"dashboardIsPristineState",get:function(e){return function(t){var n=(0,t.get)((0,f.oz)({id:e}));return!Object.keys(n).length||Object.keys(n).some((function(e){return E(n[e])}))}}}),x=(0,i.CG)({key:"dashboardLayoutIsPristineState",get:function(e){return function(t){var n=t.get;return E(n((0,l.sX)({id:e})))}}}),T=function(e){var t=(0,s.e)(),n=function(){var n=(0,m.ZO)(t,e);return!n||!n.getChildren().some((function(e){return t=e.getAttribute("pristine"),!(0===Object.keys(t).length);var t}))},o=(0,a.useState)(n),c=(0,r.Z)(o,2),u=c[0],l=c[1];(0,a.useEffect)((function(){return null===t||void 0===t?void 0:t.on("pristineChanged",(function(){return l(n)}))}),[t]);var f=(0,i.sJ)(j(e)),d=(0,i.sJ)(x(e));return u&&f&&d},C=function(e){var t=(0,c.th)(),n=(0,u.UL)(),r=(0,d.FP)();return(0,d.qh)(t,n,e||r)},I=function(e){var t=C();return S(t,e)}},39878:function(e,t,n){"use strict";n.d(t,{FP:function(){return i},Jh:function(){return c},UU:function(){return o},c7:function(){return a},qh:function(){return u}});var r=n(4480),o=(0,r.cn)({key:"currentDashboardSlug",default:null}),a=(0,r.xu)({key:"dashboardIdBySlug",default:""}),i=function(){return(0,r.sJ)(o)},c=function(e){return(0,r.Zl)(o,e)},u=function(e,t,n){return(0,r.sJ)(a([e,t,n]))}},45215:function(e,t,n){"use strict";n.d(t,{ZP:function(){return J},ZO:function(){return G},vL:function(){return F}});var r=n(4942),o=(n(69826),n(41539),n(31672),n(2490),n(59461),n(74916),n(4723),n(92222),n(15581),n(34514),n(54747),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(67294)),a=n(34675),i=n(74059),c=n(9058),u=n(95248),s=n(48286),l=n(47133),f=n(29439),d=n(87462),p=n(89250),v=n(64036),m=n(54576),g=n(3701),b=n(22841),h=(n(15306),n(71992)),y=n(45987),S=["category","closeParent","context","openDialog"],O=function(e){var t=e.category,n=e.closeParent,r=e.context,a=e.openDialog,i=(0,y.Z)(e,S);return o.createElement(h.h,(0,d.Z)({icon:"trashcan",onClick:function(){a(),n()},"data-ga":"".concat(t,"::click-remove::").concat(r),"data-testid":"removeChart-option"},i),"Remove")},A=n(15557),w=n(97723),k=n(97945),P=function(e){var t=e.cardId,n=e.close,r=e.id,a=(0,b.I_)(r,t),i=a.nodeId,c=a.chartId,u=(0,k.bV)(i,"name"),s=(0,w.Zj)(r,t);return o.createElement(A.ConfirmationDialog,{"data-ga":"remove-chart-dialog","data-testid":"removeChartDialog",handleConfirm:s,handleDecline:n,message:o.createElement(o.Fragment,null,"You are about to remove ",o.createElement("strong",null,c),u&&o.createElement(o.Fragment,null," ","of node ",o.createElement("strong",null,u)),".",o.createElement("br",null),"Are you sure you want to continue?"),title:"Remove chart"})},Z=n(46667),E="chart-options",j="custom-dashboard",x=function(e){var t=e.id,n=e.cardId,r=e.onClick,a=(0,p.s0)(),i=(0,b.I_)(t,n,"chartId"),c=(0,l.LJ)(t),u=c.spaceSlug,s=c.roomSlug;return o.createElement(h.h,{icon:"line_chart",onClick:function(){r();var e,t=(e=i,"".concat("chart_").concat(e.replace(/ /g,"_").replace(/:/g,"_").replace(/\(/g,"_").replace(/\)/g,"_").replace(/\./g,"_").replace(/\//g,"_")));a("/spaces/".concat(u,"/rooms/").concat(s,"/overview#chartName=").concat(t))},"data-ga":"".concat(E,"::click-go-to-chart::").concat(j),"data-testid":"chart-goToChart"},"Go to Chart")},T=(0,o.forwardRef)((function(e,t){return o.createElement(g.Button,(0,d.Z)({},e,{icon:o.createElement(g.default,{svg:v.Z,size:"16px"}),ref:t}))})),C=function(){var e=(0,Z.Z)(),t=(0,f.Z)(e,4),n=t[0],r=t[2],a=t[3],i=(0,m.useAttributeValue)("cardId"),c=(0,m.useAttributeValue)("dashboardId");return o.createElement(o.Fragment,null,o.createElement(h.Z,{Component:T,category:E,context:j,testId:"chartDropdown"},(function(e){var t=e.close;return o.createElement(o.Fragment,null,o.createElement(x,{id:c,cardId:i,onClick:t}),o.createElement(O,{cardId:i,category:E,closeParent:t,context:j,"data-testid":"chart-remove",id:c,openDialog:r}))})),n&&o.createElement(P,{cardId:i,close:a,id:c}))},I=n(60677),D=n(16071),N=(0,I.default)(g.Button).withConfig({displayName:"drag__DragButton",componentId:"sc-1t95u2-0"})(["cursor:",";"],(function(e){return e.grabbing?"grabbing":"grab"})),M=function(e){var t=(0,m.useAttributeValue)("onMouseDownDrag"),n=(0,m.useAttributeValue)("onMouseUpDrag"),r=(0,m.useAttributeValue)("onTouchEndDrag"),a=(0,Z.Z)(),i=(0,f.Z)(a,4),c=i[0],u=i[2],s=i[3];return o.createElement(N,(0,d.Z)({icon:o.createElement(g.default,{svg:D.Z,size:"16px"}),title:"Drag & rearrange","data-testid":"chartHeaderToolbox-drag"},e,{onMouseDown:function(){u(),t.apply(void 0,arguments)},onMouseUp:function(){s(),n.apply(void 0,arguments)},onTouchEnd:function(){s(),r.apply(void 0,arguments)},grabbing:c}))},R=n(96415),_=n(70873),U=n(43460);function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var G=function(e,t){return e&&e.getRoot().getChildren().find((function(e){return e.match({id:t})}))},F=function(e){return function(t){return"dashboard-page::".concat(e.getAttribute("id"),"::").concat(t)}},J=function(e){var t=(0,l.LJ)(e),n=t.spaceId,r=t.roomId,f=(0,c.e)(),d=(0,u.TA)({extraKey:"dashboard"}),p=(0,i.Q6)();(0,o.useMemo)((function(){if(f){var t=G(f,e);t||(t=f.makeContainer({attributes:B(B({},f.getRoot().getAttributes()),{},{id:e,navigation:"pan",nodesScope:d,enabledHeightResize:!1,overlays:{proceeded:{type:"proceeded"}},host:p?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(n,"/rooms/").concat(r),leftHeaderElements:[C,a.default],toolboxElements:[U.default,R.default,_.default,M]})}),f.appendChild(t))}}),[f,e]),(0,s.Z)((function(){if(f){var t=G(f,e);t&&t.getNodes().forEach((function(e){return e.updateAttribute("nodesScope",d)}))}}),[f,r,d]),(0,o.useEffect)((function(){return function(){var t=G(f,e);t&&t.destroy()}}),[f,r])}},79619:function(e,t,n){"use strict";n.d(t,{m:function(){return Z}});var r=n(15861),o=n(29439),a=n(71002),i=n(4942),c=n(45987),u=n(64687),s=n.n(u),l=(n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(85827),n(47941),n(23157),n(73210),n(25387),n(2490),n(72608),n(21249),n(57640),n(9924),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),f=n(4480),d=n(98475),p=n(44850),v=n(19665),m=n(47133),g=["i"],b=["aggregationMethod","chartType","dimensions","selectedDimensions","filteredLabels","selectedLabels","selectedNodeIds","selectedNodes","selectedInstances","chartId","groupBy","groupingMethod","id","host"],h=["type","cardID","id","chartID","chartId","nodeID","nodeId","chartMetadata","context","attributes","cardAttributes","contextScope","text"];function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var O={TextCard:"text",ChartCard:"chart",compositeChart:"chart",chart:"chart",text:"text"},A=new Set(["text","chart"]),w=["x","y","h","w"],k=function(e,t){var n,r,o=t.i,a=(0,c.Z)(t,g),i=null!==(n=e[o])&&void 0!==n&&n.type&&"text"!==(null===(r=e[o])||void 0===r?void 0:r.type)?d.Mk:d.b1;return w.reduce((function(e,t){return e[t]=a[t]||0===a[t]?a[t]:i[t],e}),S(S({},i),{},{i:o}))},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.trim().startsWith("<p>")?e:"<p>".concat(e,"</p>")},Z=function(e){var t=e.id,n=e.name,r=e.slug,o=e.version,i=e.createdAt,u=e.updatedAt,s=e.snapshot,l=s.uiState,f=s.items||[],d=[],v=f.reduce((function(e,t){var n=t.type,r=t.cardID,o=t.id,i=void 0===o?r:o,u=t.chartID,s=t.chartId,l=void 0===s?u:s,f=t.nodeID,v=t.nodeId,m=void 0===v?f:v,g=t.chartMetadata,y=t.context,w=t.attributes,k=t.cardAttributes,Z=void 0===k?w:k,E=t.contextScope,j=t.text,x=(0,c.Z)(t,h);if(E=E||[y||(null===g||void 0===g?void 0:g.context)||l],n=O[n]||n,e[i]={id:i,type:n,nodeId:m,contextScope:E},A.has(n)){if(d.push(i),"text"===n)return e[i]=S(S(S({},p.Xw),Z),{},{text:P(j||Z.text)},e[i]),e;e[i]=function(e){var t=e.aggregationMethod,n=e.chartType,r=e.dimensions,o=void 0===r?[]:r,i=e.selectedDimensions,u=void 0===i?o||[]:i,s=e.filteredLabels,l=void 0===s?[]:s,f=e.selectedLabels,d=void 0===f?l||[]:f,v=e.selectedNodeIds,m=void 0===v?[]:v,g=e.selectedNodes,h=void 0===g?m||[]:g,y=e.selectedInstances,O=void 0===y?[]:y,A=e.chartId,w=e.groupBy,k=e.groupingMethod,P=e.id,Z=(e.host,(0,c.Z)(e,b));return S(S({},p.v),{},{aggregationMethod:t||"avg",chartType:n||"line",selectedDimensions:Array.isArray(u)?u:[],selectedLabels:Array.isArray(d)?d:d&&"object"===(0,a.Z)(d)?Object.keys(d):[],selectedNodes:Array.isArray(h)?h:[],selectedInstances:Array.isArray(O)?O:A?[A]:[],groupBy:Array.isArray(w)?w:w?[w]:["dimension"],groupingMethod:k||"average",id:P},Z)}(S(S(S({},x),Z),{},{chartId:l},e[i]))}return e}),{});return{layout:l?l.map((function(e){return k(v,e)})):f.map((function(e){var t=e.layout;return k(v,t)})),dashboard:{id:t,name:n,slug:r,version:o,createdAt:i,updatedAt:u,cardIds:d},cards:v}};t.Z=function(e,t){var n=t.spaceId,a=t.spaceSlug,i=t.roomId,c=t.roomSlug,u=(0,l.useState)(!0),d=(0,o.Z)(u,2),p=d[0],g=d[1],b=(0,f._8)((function(t){var o=t.set;return(0,r.Z)(s().mark((function t(){var r,u,l,f,d,p;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return g(!0),o((0,m.g4)(e),!0),t.next=4,(0,v.AK)(n,i,e);case 4:r=t.sent,u=r.data,l=Z(u),f=l.layout,d=l.dashboard,p=l.cards,o((0,m.Z7)(e),{layout:f,dashboard:S(S({},d),{},{spaceSlug:a,roomSlug:c,spaceId:n,roomId:i}),cards:p}),g(!1),o((0,m.g4)(e),!1);case 10:case"end":return t.stop()}}),t)})))}));return(0,l.useEffect)((function(){e&&b(e)}),[e]),p}},44197:function(e,t,n){"use strict";n.d(t,{E:function(){return o}});var r=n(4480),o={id:null,avatarURL:null,deactivated:!1,email:"",joinedAt:null,name:"",role:""};t.Z=(0,r.cn)({key:"member",default:{}})},34912:function(e,t,n){"use strict";n.d(t,{Bb:function(){return p},Vr:function(){return d},W3:function(){return f},mX:function(){return l}});var r=n(4942),o=(n(21249),n(57640),n(9924),n(41539),n(15581),n(2490),n(34514),n(54747),n(66992),n(33948),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4480)),a=n(38609),i=n(41331),c=n(44197);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l=(0,o.CG)({key:"memberState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(c.Z)[t]||c.E;return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,o){var a=e.set;a(c.Z,n?"function"!==typeof o?function(e){return s(s({},e),{},(0,r.Z)({},t,s(s({},e[t]),{},(0,r.Z)({},n,o))))}:function(e){return s(s({},e),{},(0,r.Z)({},t,s(s({},e[t]),{},(0,r.Z)({},n,o(e[t][n])))))}:function(e){return s(s({},e),{},(0,r.Z)({},t,s(s(s({},c.E),e[t]),o)))})}}}),f=(0,o.CG)({key:"membersState",get:function(e){return function(t){var n=t.get;return e.map((function(e){return n(l({id:e}))}))}},set:function(){return function(e,t){var n=e.set,r=(0,e.get)(c.Z);t.forEach((function(e){r[e.id]=e})),n(c.Z,r)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),d=function(e){return(0,o.sJ)(f(e))},p=(0,o.nZ)({key:"membersInitialize",get:function(e){return(0,e.get)(c.Z)},set:function(e,t){var n=e.set,r=t.values,o=t.merge;return n(c.Z,(function(e){var t=o?(0,a.Z)(e,r):r;return(0,i.ZP)(t,e)?e:t}))}})},54227:function(e,t,n){"use strict";n.d(t,{UK:function(){return P},ZS:function(){return S},bV:function(){return O},Yy:function(){return A},Le:function(){return w},CN:function(){return k}});var r=n(4942),o=n(29439),a=n(93433),i=(n(69826),n(41539),n(31672),n(2490),n(59461),n(92222),n(57327),n(88449),n(59849),n(40561),n(21249),n(57640),n(9924),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),c=n(4480),u=n(74059),s=n(37518),l=(n(88674),n(38862),function(e){var t=e.spaceSlug,n=e.roomSlug;return"".concat(t,"-").concat(n,"-tabs")}),f=function(e,t){var n=e.spaceSlug,r=e.roomSlug,o=l({spaceSlug:n,roomSlug:r});Promise.resolve().then((function(){try{localStorage.setItem(o,JSON.stringify(t))}catch(e){}}))},d=(0,c.xu)({key:"navigation",default:function(e){var t=e.spaceSlug,n=e.roomSlug,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{var o=l({spaceSlug:t,roomSlug:n}),a=localStorage.getItem(o);return a?JSON.parse(a):r}catch(i){return r}}});function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,c.CG)({key:"navigationTabsState",get:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e){return(0,e.get)(d({spaceSlug:t,roomSlug:n}))}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){var o=e.set;r&&t&&n&&o(d({spaceSlug:t,roomSlug:n}),(function(e){if(e.find((function(e){var t=e.id;return r.id===t})))return e;var o=[].concat((0,a.Z)(e),[r]);return f({spaceSlug:t,roomSlug:n},o),o}))}}}),g=(0,c.CG)({key:"navigationTabsState/remove",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){(0,e.set)(d({spaceSlug:t,roomSlug:n}),(function(e){var o=e.filter((function(e,t){return t!==r}));return f({spaceSlug:t,roomSlug:n},o),o}))}}}),b=(0,c.CG)({key:"navigationTabsState/removeById",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){(0,e.set)(d({spaceSlug:t,roomSlug:n}),(function(e){var o=e.filter((function(e){return e.id!==r}));return f({spaceSlug:t,roomSlug:n},o),o}))}}}),h=(0,c.CG)({key:"navigationTabsState/reorder",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){var i=e.set,c=r.sourceIndex,u=r.destinationIndex;i(d({spaceSlug:t,roomSlug:n}),(function(e){var r=(0,a.Z)(e),i=r.splice(c,1),s=(0,o.Z)(i,1)[0];return r.splice(u,0,s),f({spaceSlug:t,roomSlug:n},r),r}))}}}),y=(0,c.CG)({key:"navigationTabsState/removeById",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){var o=e.set,a=r.id,i=r.slug,c=r.path;o(d({spaceSlug:t,roomSlug:n}),(function(e){var r=e.map((function(e){return e.id!==a?e:v(v({},e),{},{title:i,path:c})}));return f({spaceSlug:t,roomSlug:n},r),r}))}}}),S=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.sJ)(m({spaceSlug:e,roomSlug:t}))},O=function(e){var t=e.title,n=e.path,r=e.id,o=e.destination,a=e.type,l=void 0===a?"nodes":a,f=e.params,d=e.isReady,p=void 0===d||d,v=(0,s.A3)(),g=(0,u.uk)(),b=(0,s.vf)(),h=(0,c.Zl)(m({spaceSlug:g,roomSlug:b}));(0,i.useEffect)((function(){p&&(r&&t&&h({id:r,title:t,type:l,icon:"alerts"===l?"alarm":"node_hollow",params:f,path:"".concat(n||v,"/").concat(l,"/").concat(o)}))}),[v,t,n,r,o,l,h,p])},A=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(g({spaceSlug:e,roomSlug:t}))},w=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(b({spaceSlug:e,roomSlug:t}))},k=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(h({spaceSlug:e,roomSlug:t}))},P=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(y({spaceSlug:e,roomSlug:t}))}},18761:function(e,t,n){"use strict";n.d(t,{B3:function(){return O},BC:function(){return v},Fz:function(){return f},RX:function(){return h},Sd:function(){return b},Wy:function(){return d},XG:function(){return p},YZ:function(){return m},kq:function(){return g},op:function(){return l},yM:function(){return s}});n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=(n(92222),n(21249),n(57640),n(9924),n(47941),n(26398)),a=n(78710),i=n(66152);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var s=function(e){return o.Z.get("/api/v1/agents/".concat(e,"/user_agent_node_access"),{transform:i.k5})},l=function(e,t,n){return o.Z.get("/api/v2/bearer_get_token?node_id=".concat(e,"&claim_id=").concat(n,"&machine_guid=").concat(t),{transform:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{token:e.token,expiration:e.expiration,bearerProtection:e.bearer_protection}}})},f=function(e){return o.Z.get("/api/v1/accounts/".concat(e,"/nodes"))},d=function(e,t){return o.Z.post("/api/v1/accounts/".concat(e,"/nodes/").concat(t,"/touch"))},p=function(e,t){return o.Z.get("/api/v1/accounts/".concat(e,"/nodes/").concat(encodeURIComponent(t)))},v=function(e,t){var n=(0,a.Ly)(t);o.Z.get(n?"/api/v1/info":"/api/v1/nodes/".concat(e,"/info"),{transform:function(t){return u(u({},t),{},{nodeId:e})},baseURL:n?window.envSettings.agentApiUrl:""})},m=function(e){return o.Z.get("/api/v1/agents/".concat(e,"/info"))},g=function(e){return o.Z.get("/api/v1/agents/".concat(e,"/user_access"),{transform:function(e){return e.authorizedNodeIDs}}).catch((function(){return{data:[]}}))},b=function(e,t){return o.Z.delete("/api/v1/accounts/".concat(e,"/nodes"),{params:{node_ids:t.join(",")}})},h=function(e,t,n,r){return o.Z.put("/api/v1/accounts/".concat(e,"/nodes/").concat(t),{name:n,urls:r})},y="*",S=[y],O=function(e,t,n){var r=n.baselineAfter,i=n.baselineBefore,c=n.highlightAfter,u=n.highlightBefore,s=n.method,l=n.options,f=n.group,d=n.nodeIds,p=n.points,v=n.context,m=n.aggregation,g=void 0===m?"avg":m,b=n.groupBy,h=void 0===b?[]:b;return(0,a.Ly)(e)?o.Z.get("".concat(window.envSettings.agentApiUrl,"/api/v2/weights"),{params:{format:"json",options:"".concat(Array.isArray(l)?l.join("|"):l,"|minify|nonzero|unaligned"),contexts:y,scope_contexts:v||y,scope_nodes:d.join("|")||y,nodes:y,instances:y,dimensions:y,labels:y,group_by:h.join("|"),aggregation:g,method:s||"ks2",time_group:f||"average",time_group_options:"",time_resampling:0,after:Math.floor(c/1e3),before:Math.floor(u/1e3),points:p,baseline_after:Math.floor(r/1e3),baseline_before:Math.floor(i/1e3)}}):o.Z.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/weights"),{selectors:{nodes:S,contexts:S,dimensions:S,labels:S,alerts:S},aggregations:{time:{time_group:f||"average",time_group_options:"",time_resampling:0},metrics:[{group_by:h,aggregation:g}]},window:{after:Math.floor(c/1e3),before:Math.floor(u/1e3),points:p,baseline:{after:Math.floor(r/1e3),before:Math.floor(i/1e3)}},scope:{nodes:d,contexts:v?[v]:S},method:s||"ks2",options:l?Array.isArray(l)?l:[l]:[],timeout:3e4})}},48854:function(e,t,n){"use strict";n.d(t,{a:function(){return o}});var r=n(4480),o={fullyLoaded:!1,loaded:!1,id:null,mg:null,nd:null,isDeleted:!1,name:"",version:"",ni:null,labels:{},hw:{architecture:"",cpuFrequency:"",cpus:"",memory:"",diskSpace:"",virtualization:"",container:""},os:{id:"",nm:"",v:"",kernel:{nm:"",v:""}},capabilities:{},state:"",isProtobufCapable:!0,urls:[],accessCount:0,lastAccessTime:"",updateSeverity:"",hasAccessibleData:!1,isLive:!1};t.Z=(0,r.cn)({key:"nodes",default:{}})},97945:function(e,t,n){"use strict";n.d(t,{$E:function(){return w},HZ:function(){return T},Hg:function(){return V},Jz:function(){return G},M2:function(){return B},Mm:function(){return j},Ne:function(){return k},Ng:function(){return U},TQ:function(){return S},WR:function(){return z},Xw:function(){return Z},Y0:function(){return R},bV:function(){return A},d$:function(){return F},e5:function(){return I},m3:function(){return K},mf:function(){return N},pG:function(){return W},zP:function(){return O}});var r=n(93433),o=n(4942),a=n(15861),i=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(57327),n(88449),n(59849),n(26699),n(32023),n(66992),n(33948),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(64687)),c=n.n(i),u=n(67294),s=n(4480),l=n(89250),f=n(38609),d=n(41331),p=n(96929),v=n(37518),m=n(48854),g=n(18761);function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y=(0,s.CG)({key:"nodeInfoState",get:function(e){var t=e.nodeId,n=e.spaceId;return(0,a.Z)(c().mark((function e(){var r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,g.BC)(t,n);case 3:return r=e.sent,e.abrupt("return",r.data);case 7:e.prev=7,e.t0=e.catch(0);case 9:case"end":return e.stop()}}),e,null,[[0,7]])})))}}),S=function(e,t){return(0,s.$P)(y({nodeId:e,spaceId:t}))},O=(0,s.CG)({key:"nodeState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(m.Z)[t]||m.a;return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.set;return n?"function"===typeof r?a(m.Z,(function(e){var a=e[t]||m.a;return h(h({},e),{},(0,o.Z)({},t,h(h({},a),{},(0,o.Z)({},n,r(a[n])))))})):void a(m.Z,(function(e){var a=e[t]||m.a;return h(h({},e),{},(0,o.Z)({},t,h(h({},a),{},(0,o.Z)({},n,r))))})):a(m.Z,(function(e){return h(h({},e),{},(0,o.Z)({},t,h(h({},m.a),r)))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),A=function(e,t){return(0,s.sJ)(O({id:e,key:t}))},w=(0,s.CG)({key:"nodesState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.map((function(e){return n[e]||m.a}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),k=function(e){var t=(0,p.zN)();return(0,s.sJ)(w(e||t))},P=(0,s.CG)({key:"cloudNodeIdsSelector",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.reduce((function(e,t){var o;return null!==(o=n[t])&&void 0!==o&&o.nd?[].concat((0,r.Z)(e),[n[t].nd]):e}),[])}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),Z=function(e){return(0,s.sJ)(P(e||[]))},E=(0,s.CG)({key:"queryableNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t,r;return(null===(t=n[e])||void 0===t?void 0:t.isLive)||"stale"===(null===(r=n[e])||void 0===r?void 0:r.state)}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),j=function(e){var t=(0,p.zN)();return(0,s.sJ)(E(e||t))},x=(0,s.CG)({key:"liveNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t?void 0:t.isLive}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),T=function(e){var t=(0,p.zN)();return(0,s.sJ)(x(e||t))},C=(0,s.CG)({key:"staleNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return"stale"===(null===(t=n[e])||void 0===t?void 0:t.state)}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),I=function(e){var t=(0,p.zN)();return(0,s.sJ)(C(e||t))},D=(0,s.CG)({key:"offlineNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t?void 0:t.isOffline}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),N=function(e){var t=(0,p.zN)();return(0,s.sJ)(D(e||t))},M=(0,s.CG)({key:"unseenNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t?void 0:t.isUnseen}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),R=function(e){var t=(0,p.zN)();return(0,s.sJ)(M(e||t))},_=((0,s.CG)({key:"mlNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t||null===(t=t.capabilities)||void 0===t||null===(t=t.ml)||void 0===t?void 0:t.enabled}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),(0,s.CG)({key:"needUpdateNodeIdsState",get:function(e){var t=e.ids,n=e.severities,r=void 0===n?["warning","critical"]:n;return function(e){var n=(0,e.get)(m.Z);return t.filter((function(e){var t;return r.includes(null===(t=n[e])||void 0===t?void 0:t.updateSeverity)}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}})),U=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.ids,n=e.severity,r=T();return(0,s.sJ)(_(h({ids:t||r},n&&{severities:[n]})))},L=(0,s.CG)({key:"fnNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t||null===(t=t.capabilities.funcs)||void 0===t?void 0:t.enabled}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),B=function(e){var t=(0,p.zN)();return(0,s.sJ)(L(e||t))},G=(0,s.nZ)({key:"nodesState/initialize",get:function(e){return(0,e.get)(m.Z)},set:function(e,t){var n=e.set,r=t.values,o=t.merge;return n(m.Z,(function(e){var t=o?(0,f.Z)(e,r):r;return(0,d.ZP)(t,e)?e:t}))}}),F=function(){return(0,s.sJ)(G)},J=function(){var e=(0,v.A3)();return e&&"".concat(e,"/nodes")},K=function(e){var t=J();return"".concat(t,"/").concat(e)},V=function(){var e=J();return function(t){return"".concat(e,"/").concat(t)}},z=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).alertId,n=function(){var e=(0,l.s0)(),t=J();return(0,u.useCallback)((function(n,r){e("".concat(t,"/").concat(n),r?{state:r}:"")}),[t,e])}();return(0,u.useCallback)((function(){return n(e,{alertId:t})}),[n])},W=function(){var e;return null===(e=(0,l.bS)("/spaces/:spaceSlug/rooms/:roomSlug/nodes/:nodeId"))||void 0===e||null===(e=e.params)||void 0===e?void 0:e.nodeId}},82902:function(e,t,n){"use strict";n.d(t,{Ly:function(){return s},Ud:function(){return c},V6:function(){return a},XY:function(){return u}});var r=n(29439),o=(n(74916),n(15306),n(21249),n(57640),n(9924),n(9653),n(62200)),a=function(e){return 1===e?"Node":"Nodes"},i=[1,26],c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i;if(!e||"unknown"===e)return!1;var n=function(e){return e.replace(/^v/,"").split(".")}(e).map((function(e){return Number(e)})),o=(0,r.Z)(n,3),a=o[0],c=o[1],u=o[2];return!(a&&!isNaN(a)&&!isNaN(c))||(a<t[0]||!(a>t[0])&&(c<t[1]||!(c>t[1])&&u<t[2]))},u={docker:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#docker",mac:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#macos",binpkg:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#issues-with-older-binpkg-installs",default:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#updates-for-most-systems"},s=function(e){var t=e.container,n=e.os,r=e._install_type,a=e.version,i=c(a,o.OI);return t||n||r?u["docker"===t?"docker":"mac"===n?"mac":"binpkg"===r&&i?"binpkg":"default"]:u.default}},95248:function(e,t,n){"use strict";n.d(t,{dz:function(){return I},D0:function(){return U},tk:function(){return R},I0:function(){return M},by:function(){return D},wT:function(){return G},c6:function(){return L},TA:function(){return J},H7:function(){return K},Sf:function(){return _},TQ:function(){return N},XT:function(){return B}});var r={};n.r(r),n.d(r,{global:function(){return b},specific:function(){return k}});var o={};n.r(o),n.d(o,{global:function(){return j},specific:function(){return y}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var a=n(4942),i=n(4480),c=n(37518),u=n(96929),s=n(45987),l=(n(21249),n(57640),n(9924),n(92222),n(58591)),f=n(14600),d=["after","before","correlation","utc"],p=["correlation"],v=["highlight"];function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=function(){return[function(e){(0,e.onSet)((function(e,t){var n=e.after,r=e.before,o=e.correlation,a=e.utc,i=(0,s.Z)(e,d),c=(t.correlation,(0,s.Z)(t,p));r=n<0?0:r;var u,m=(0,f.E)("default",a||c.utc).offset,b=void 0===m?"":m,h=(u=i.modalParams||c.modalParams)?Object.keys(u).map((function(e){return"".concat(e,"=").concat(u[e])})).join(","):"",y=g(g(g({},c),i),{},{after:n,before:r,offset:b,metrics_correlation:o,utc:a,modalParams:h}),S=y.highlight,O=(0,s.Z)(y,v);S.after?(0,l.xs)(g({highlight_after:S.after,highlight_before:S.before},O)):((0,l.xs)(O),(0,l.bp)(["highlight_after","highlight_before"]))}))}]},h=(n(39714),n(85827),n(25387),n(72608),n(91058),n(23157),n(74916),n(15306),{default:function(e){return e?e.split(","):[]},isPolling:function(e){return"true"===e},pollingInterval:function(e){return e?parseInt(e,10):0},sortColumn:function(e){return e},sortDirection:function(e){return e},query:function(e){return e},chartName:function(e){return e},tocSearch:function(e){return e}}),y=function(e){var t=e.key,n=e.extraKey,r=void 0===n?"":n;if(!t&&!r)return{};var o="".concat(t,"-").concat(r,"-"),a=(0,l.m$)();return Object.keys(a).reduce((function(e,t){if(!t.startsWith(o))return e;var n=t.replace(o,""),r=h[n]||h.default;return e[n]=r(a[t]),e}),{})};function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A=function(e){return e.toString()},w={default:function(e){return Array.isArray(e)?e.join(","):(e||"").toString()},isPolling:A,pollingInterval:A,sortColumn:A,sortDirection:A,query:A,chartName:A,tocSearch:A},k=function(e){var t=e.key,n=e.extraKey,r=void 0===n?"":n,o="".concat(t,"-").concat(r,"-");return[function(e){var n=e.setSelf,o=e.trigger,a=e.node,i=e.getLoadable;if("get"===o){if(Object.keys(i(a).contents).length)return;var c=(0,l.m$)();if(Object.keys(c).length)return;setTimeout((function(){return n(y({key:t,extraKey:r}))}))}},function(e){(0,e.onSet)((function(e,t){var n=O(O({},t),e),r=[],a=Object.keys(n).reduce((function(e,t){if("undefined"===typeof n[t])return r.push(o+t),e;var a=w[t]||w.default;return e[o+t]=a(n[t]),e}),{});(0,l.xs)(a),(0,l.bp)(r)}))}]},P=n(29439);n(9653);function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var j=function(){var e,t=(0,l.m$)(),n=t.after,r=void 0===n?-900:n,o=t.before,a=void 0===o?0:o,i=t.utc,c=void 0===i?"default":i,u=t.highlight_after,s=t.highlight_before,d=t.metrics_correlation,p=void 0!==d&&d,v=t.timezoneName,m=t.modal,g=void 0===m?"":m,b=t.modalTab,h=void 0===b?"":b,y=t.modalParams,S=(0,f.E)("default",c),O=S.offset,A=void 0===O?0:O,w=S.utc,k=S.text,Z=v&&"undefined"!==v?v:void 0===k?"":k,j={after:isNaN(Number(u))?Number(u):null,before:isNaN(Number(s))?Number(s):null},x=isNaN(Number(r))?-900:Number(r),T={after:x,before:x<0?0:isNaN(Number(a))?x+900:Number(a),utc:w,offset:A,timezoneName:Z,modal:g,modalTab:h};return j.after?(0,l.xs)(E({highlight_after:j.after,highlight_before:j.before,metrics_correlation:p},T)):(0,l.xs)(E({metrics_correlation:p},T)),E(E({highlight:j,correlation:"true"===p},T),{},{modalParams:(e=y,e&&e.split(",").reduce((function(e,t){var n=t.split("="),r=(0,P.Z)(n,2),o=r[0],a=r[1];return e[o]=a,e}),{}))})},x=(0,i.xu)({key:"paramsAtom",default:function(e){return(o[e.key]||y)(e)},effects:function(e){return(r[e.key]||k)(e)}});function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var I=(0,i.CG)({key:"paramsState",get:function(e){var t=e.key,n=void 0===t?"global":t,r=e.extraKey,o=e.param;return function(e){var t=(0,e.get)(x({key:n,extraKey:r}));return o?t[o]:t}},set:function(e){var t=e.key,n=void 0===t?"global":t,r=e.extraKey,o=e.param;return function(e,t){(0,e.set)(x({key:n,extraKey:r}),(function(e){return"function"===typeof t?o?C(C({},e),{},(0,a.Z)({},o,t(e[o]))):C(C({},e),t(e)):o?C(C({},e),{},(0,a.Z)({},o,t)):C(C({},e),t)}))}}}),D=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,r=t.extraKey,o=t.defaultValue,a=(0,i.sJ)(I({key:n,param:e,extraKey:r}));return"undefined"===typeof a?o:a},N=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,r=t.extraKey;return(0,i.Zl)(I({key:n,param:e,extraKey:r}))},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,r=t.extraKey,o=t.defaultValue;return[D(e,{key:n,extraKey:r,defaultValue:o}),N(e,{key:n,extraKey:r})]},R=function(e,t){var n=t.extraKey,r=t.defaultValue,o=(0,c.UL)();return D(e,{key:o,extraKey:n,defaultValue:r})},_=function(e,t){var n=t.extraKey,r=(0,c.UL)();return N(e,{key:r,extraKey:n})},U=function(e,t){var n=t.extraKey,r=t.defaultValue;return[R(e,{extraKey:n,defaultValue:r}),_(e,{extraKey:n})]},L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=e.defaultValue,o=(0,c.UL)();return D("selectedNodeIds",{key:t||o,extraKey:n,defaultValue:r})},B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=(0,c.UL)();return N("selectedNodeIds",{key:t||r,extraKey:n})},G=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=e.defaultValue;return[L({key:t,extraKey:n,defaultValue:r}),B({key:t,extraKey:n})]},F=[],J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=e.defaultValue,o=void 0===r?F:r,a=L({key:t}),i=L({key:t,extraKey:n});return null!==i&&void 0!==i&&i.length?i:null!==a&&void 0!==a&&a.length?a:o},K=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=(0,u.zN)()||F;return J({key:t,extraKey:n,defaultValue:r})}},8018:function(e,t,n){"use strict";n.d(t,{Bl:function(){return S},GT:function(){return O},O9:function(){return d},R2:function(){return p},RO:function(){return m},ar:function(){return g},og:function(){return y},qn:function(){return b},tn:function(){return v},xj:function(){return h}});var r=n(84506),o=n(29439),a=(n(41539),n(88674),n(47042),n(93017)),i=n(68008),c=n(13477),u=n(74059),s=n(37518),l=n(25819),f=n(1229),d=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).silent,n=void 0!==t&&t,r=(0,s.tE)(e,"spaceId"),f=(0,a.Z)(),d=(0,o.Z)(f,2),p=d[0],v=d[1],m=(0,c.Iy)("isAnonymous"),g=(0,u.Q6)();return(0,i.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(m||g)return Promise.resolve().then((function(){return!n&&p({header:"Rooms",text:"Connect to cloud to be able to save your settings!"})}));var o=(0,l.R$)(r,e,t);return o.then((function(){return!n&&p({header:"Rooms",text:"Room successfully updated!"})})).catch((function(e){return!e.isCancel&&v(e)})),o}),[e,m,g,r])},p=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1],f=(0,s.tE)(t,"name");return(0,i.Z)((function(){var n=(0,l.GX)(e,t);return n.then((function(){return c({header:"Rooms",text:"Room ".concat(f," was successfully deleted!")})})).catch((function(e){return!e.isCancel&&u(e)})),n}),[t,e])},v=function(e,t){var n=(0,a.Z)(),u=(0,o.Z)(n,2)[1],d=(0,c.jr)(),v=(0,i.Z)((function(){var n=(0,l.EP)(e,t,d);return n.catch((function(e){return!e.isCancel&&u(e)})),n}),[e,t,d]),m=(0,f.IT)(t,"ids"),g=(0,r.Z)(m),b=g[0],h=g.slice(1),y=p(e,t),S=(0,s.tE)(t,"untouchable");return h.length||b!==d||S?v:y},m=function(e){var t=(0,a.Z)(),n=(0,o.Z)(t,2),r=n[0],c=n[1];return(0,i.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=(0,l.dB)(e,t);return n.then((function(){return r({header:"Rooms",text:"Room ".concat(t.name," was successfully created!")})})).catch((function(e){return!e.isCancel&&c(e)})),n}),[e])},g=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(n){var r=(0,l.r7)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Member".concat(n.length>1?"s":""," successfully added!")})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[e])},b=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onSuccess,u=n.onFail,f=(0,c.jr)(),d=(0,a.Z)(),p=(0,o.Z)(d,2),v=p[0],m=p[1],g=(0,s.s)(t);return(0,i.Z)((function(){var n=(0,l.r7)(e,t,[f]);return n.then((function(){g({isMember:!0}),v({header:"Rooms",text:"Successfully joined the room"}),null===r||void 0===r||r()})).catch((function(e){!e.isCancel&&m(e),null===u||void 0===u||u()})),n}),[t,g,e])},h=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(n){var r=(0,l.EP)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Member".concat(n.length>1?"s":""," successfully removed!")})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[t,e])},y=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=(0,l.Uf)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Nodes successfully added!"})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[t,e])},S=function(e){var t=(0,a.Z)(),n=(0,o.Z)(t,2),r=n[0],c=n[1];return(0,i.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=(0,l.OE)(e,t);return n.then((function(){return r({header:"Rooms",text:"Node successfully deleted!"})})).catch((function(e){return!e.isCancel&&c(e)})),n}),[e])},O=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(n){var r=(0,l.r4)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Nodes successfully removed!"})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[t,e])}},25819:function(e,t,n){"use strict";n.d(t,{EP:function(){return E},Fz:function(){return b},GX:function(){return P},Mn:function(){return y},OE:function(){return x},R$:function(){return k},Uf:function(){return j},dB:function(){return A},fv:function(){return w},j2:function(){return O},mP:function(){return C},r4:function(){return T},r7:function(){return Z}});var r=n(4942),o=n(45987),a=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(47941),n(69826),n(31672),n(59461),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),i=n(66152),c=n(53338),u=n(62200),s=n(82902),l=n(78710),f=["nm","capabilities","v"],d=["context","chartType"],p=["name"];function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=function(e){var t=e.nodes;return(void 0===t?[]:t).map((function(e){var t,n=e.nm,r=e.capabilities,a=e.v,l=(0,o.Z)(e,f);return m(m({name:n,version:a,hasAccessibleData:c.ce[l.state],isOffline:l.state===c.AS.offline,isUnseen:l.state===c.AS.unseen,isLive:c.ez[l.state],updateSeverity:(t=a,(0,s.Ud)(t,u.t5)?"critical":(0,s.Ud)(t,u.OI)?"warning":null),capabilities:r.reduce((function(e,t){return e[t.name]=t,e}),{})},(0,i.k5)(l)),{},{labels:l.labels||{},id:l.nd||l.mg})}))},b=function(e){var t=e.roomId,n=e.spaceId;return(0,l.Ly)(n)?a.Z.get("/api/v2/nodes",{baseURL:window.envSettings.agentApiUrl,transform:g}):a.Z.post("/api/v3/spaces/".concat(n,"/rooms/").concat(t,"/nodes"),{scope:{nodes:[]}},{transform:g})},h=function(e){var t=e.context,n=e.chartType;return m({id:t,name:t,context:t,chartType:void 0===n?"":n},(0,o.Z)(e,d))},y=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0,o=r.after,c=r.before;return(0,l.Ly)(e)?a.Z.get("/api/v2/contexts?scope_nodes=".concat(n.join("|")||"*"),{baseURL:window.envSettings.agentApiUrl,transform:function(e){var t=e.contexts,n=void 0===t?{}:t,r=e.versions,o=void 0===r?{}:r;return{results:Object.keys(n).map((function(e){return h(m(m({},(0,i.k5)(n[e])),{},{id:e,context:e}))})),versions:(0,i.k5)(o)}}}):a.Z.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/contexts"),{scope:{contexts:["*"],nodes:[]},selectors:{contexts:[],nodes:n},window:{after:o,before:c}},{transform:function(e){var t=e.contexts,n=void 0===t?{}:t,r=e.versions,o=void 0===r?{}:r;return{results:Object.keys(n).map((function(e){return h(m(m({},(0,i.k5)(n[e])),{},{id:e,context:e}))})),versions:(0,i.k5)(o)}}})},S=function(e,t){return function(n){return{results:n.results.map((function(n){return m(m({},n),{},{spaceId:e,roomId:t})}))}}},O=function(e,t){return a.Z.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards"),{transform:S(e,t)})},A=function(e,t){return a.Z.post("/api/v1/spaces/".concat(e,"/rooms"),t)},w=function(e,t){return a.Z.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t))},k=function(e,t,n){return a.Z.patch("/api/v1/spaces/".concat(e,"/rooms/").concat(t),n)},P=function(e,t){return a.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t))},Z=function(e,t,n){return a.Z.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/members"),n)},E=function(e,t,n){return a.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/members?account_ids=").concat(n))},j=function(e,t,n){return a.Z.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/claimed-nodes"),n)},x=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return a.Z.delete("/api/v1/spaces/".concat(e,"/nodes"),{data:{node_ids:t}})},T=function(e,t,n){return a.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/claimed-nodes?node_ids=").concat(n))},C=function(e,t,n,c){var u,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=function(e){return e.length?{node_ids:e}:{}}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]);return e.length?e.reduce((function(e,t){var n=t.name,r=(0,o.Z)(t,p);return e.provider[n]=r,e}),{filter:m({},t),provider:{}}):{filter:m({},t),provider:{nodes:{},charts:{},spaceroom:{},alerts:{},dashboards:{}}}}(n,c);return a.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/overview/stats"),s,{transform:(u=n,function(e){var t=(0,i.k5)(e,{depth:3}),n=t.results,o=t.providers,a=new Date;return u.reduce((function(e,t){var i=t.name,c=t.projections;return m(m({},e),{},(0,r.Z)({},i,m(m(m({},o.find((function(e){return e.provider===i}))),n["".concat(i,"Stats")]),{},{updatedAt:a},c?(0,r.Z)({},"".concat(c,"_updatedAt"),a):{})))}),{})})})}},91850:function(e,t,n){"use strict";n.d(t,{IV:function(){return c},xh:function(){return u}});var r=n(29439),o=n(4480),a=n(78710),i=n(75674),c=(0,o.cn)({key:"currentRoomSlug",default:null}),u=(0,o.xu)({key:"roomIdBySlug",default:"",effects:function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];return(0,a.Ly)(n)&&o===a.Fb?[function(e){var t=e.setSelf;"get"===e.trigger&&t(a.Fb)}]:[]}});t.ZP=(0,o.xu)({key:"room",default:i.Z,effects:function(e){return a.ZP&&e===a.Fb?[function(e){var t=e.setSelf;"get"===e.trigger&&t(a.xZ)}]:[]}})},53338:function(e,t,n){"use strict";n.d(t,{AS:function(){return c},TY:function(){return r},ce:function(){return a},ez:function(){return i},i_:function(){return o}});var r="All nodes",o="all-nodes",a={created:!1,reachable:!0,stale:!0,unreachable:!1},i={created:!0,reachable:!0,stale:!1,unreachable:!1},c={offline:"unreachable",unseen:"created",stale:"stale",live:"reachable"}},5934:function(e,t,n){"use strict";n.d(t,{oq:function(){return l},$3:function(){return v},Mg:function(){return m},ie:function(){return d},L:function(){return p}});var r=n(93433),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(26833),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(4480)),a=n(91966),i=n.n(a),c=n(47133),u=n(37518),s={ids:(0,o.xu)({key:"roomDashboardIds",default:[]}),loaded:(0,o.xu)({key:"roomDashboardsLoaded",default:!1})},l=(0,o.CG)({key:"roomDashboardState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(s[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){return(0,e.set)(s[n](t),r)}}}),f=function(e,t){return(0,o.sJ)(l({id:e,key:t}))},d=function(){var e=(0,u.UL)();return f(e,"ids")},p=function(){var e=(0,u.UL)();return f(e,"loaded")},v=(0,o.CG)({key:"roomDashboardsState/add",set:function(e){return function(t,n){var o=t.set,a=t.get,i=function(e){return a((0,c.Y3)({id:e,key:"name"}))};o(s.ids(e),(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),[n.id]))).sort((function(e,t){return i(e).localeCompare(i(t),void 0,{sensitivity:"accent"})}))}))}}}),m=(0,o.CG)({key:"roomDashboardsState/remove",set:function(e){return function(t,n){(0,t.set)(s.ids(e),(function(e){return i()(e,n)}))}}})},75674:function(e,t){"use strict";t.Z={loaded:!1,fullyLoaded:!1,id:null,isMember:!1,name:"",memberCount:null,nodeCount:null,description:"",private:!1,slug:"",spaceId:null,createdAt:"",untouchable:!0,metrics:[{id:"system.cpu",context:"system.cpu",dimensions:[],enableAllDimensions:!0,hidden:!1,title:"Total CPU",unit:"percentage"},{id:"system.load",context:"system.load",dimensions:[{id:"load15",name:"load15"}],enableAllDimensions:!1,hidden:!1,title:"Load 15",unit:"load"},{id:"mem.available",context:"mem.available",dimensions:[],enableAllDimensions:!0,hidden:!1,title:"Mem Available",unit:"MiB"},{id:"system.swap",context:"system.swap",dimensions:[{id:"free",name:"free"}],enableAllDimensions:!1,hidden:!1,title:"Swap Free",unit:"MiB"},{id:"system.io-in",context:"system.io",dimensions:[{id:"in",name:"in"}],enableAllDimensions:!1,hidden:!1,title:"Disk Reads",unit:"KiB/s"},{id:"system.io-out",context:"system.io",dimensions:[{id:"out",name:"out"}],enableAllDimensions:!1,hidden:!1,title:"Disk Writes",unit:"KiB/s"},{id:"system.net-received",context:"system.net",dimensions:[{id:"InOctets",name:"received"}],enableAllDimensions:!1,hidden:!1,title:"Network In",unit:"kilobits/s"},{id:"system.net-sent",context:"system.net",dimensions:[{id:"OutOctets",name:"sent"}],enableAllDimensions:!1,hidden:!1,title:"Network Out",unit:"kilobits/s"}]}},1229:function(e,t,n){"use strict";n.d(t,{Ci:function(){return f},r3:function(){return g},e1:function(){return p},lA:function(){return v},GA:function(){return h},IT:function(){return d}});var r=n(93433),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(26833),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(4480)),a=n(91966),i=n.n(a),c=n(34912),u=n(37518),s={ids:(0,o.xu)({key:"roomMemberIds",default:[]}),error:(0,o.xu)({key:"roomMembersError",default:null}),updatedAt:(0,o.xu)({key:"roomMembersUpdatedAt",default:""}),loaded:(0,o.xu)({key:"roomMembersLoaded",default:!1})},l=n(8018),f=(0,o.CG)({key:"roomMemberState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(s[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(s[n](t),r)}}}),d=function(e,t){return(0,o.sJ)(f({id:e,key:t}))},p=function(){var e=(0,u.UL)();return d(e,"ids")},v=function(){var e=p();return(0,c.Vr)(e)},m=(0,o.CG)({key:"roomMembersState/add",set:function(e){return function(t,n){var o=t.set,a=t.get,i=function(e){return a((0,c.mX)({id:e,key:"name"}))};o(s.ids(e),(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),(0,r.Z)(n)))).sort((function(e,t){return i(e).localeCompare(i(t),void 0,{sensitivity:"accent"})}))}))}}}),g=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onSuccess,a=n.onFail,i=(0,l.ar)(e,t);return(0,o._8)((function(e){var n=e.set;return function(e){try{i(e),n(m(t),e),r&&r(e)}catch(o){a&&a(e)}}}),[i,e,r,a])},b=(0,o.CG)({key:"roomMembersState/remove",set:function(e){return function(t,n){return(0,t.set)(s.ids(e),(function(e){return i()(e,n)}))}}}),h=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onSuccess,a=n.onFail,i=(0,l.xj)(e,t);return(0,o._8)((function(e){var n=e.set;return function(e){try{i(e),n(b(t),e),r&&r(e)}catch(o){a&&a(e)}}}),[i,e,t,r,a])}},29495:function(e,t,n){"use strict";n.d(t,{gl:function(){return w},c0:function(){return x},jN:function(){return A},xQ:function(){return O},dh:function(){return E},uA:function(){return P},VP:function(){return j},Y6:function(){return Z}});var r=n(93433),o=n(29439),a=n(15861),i=n(4942),c=n(64687),u=n.n(c),s=(n(21249),n(57640),n(9924),n(41539),n(15581),n(2490),n(34514),n(54747),n(57327),n(88449),n(59849),n(92222),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(4480)),l=n(28721),f=n(8018);n(85827),n(25387),n(72608);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v=n(75674).Z.metrics.reduce((function(e,t){return p(p({},e),{},(0,i.Z)({},t.id,t))}),{}),m={id:null,title:"",context:"",unit:"",dimensions:[],enableAllDimensions:!1,hidden:!1},g=(0,s.xu)({key:"roomMetricIds",default:Object.keys(v)}),b=(0,s.xu)({key:"roomMetrics",default:function(e){return v[e]||{}}});function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var S=(0,s.CG)({key:"roomMetricState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(b(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var o=e.set;return n?"function"===typeof r?o(b(t),(function(e){return y(y({},e),{},(0,i.Z)({},n,r(e[n])))})):void o(b(t),(function(e){return y(y({},e),{},(0,i.Z)({},n,r))})):o(b(t),"function"===typeof r?r:y(y({},m),r))}}}),O=function(e,t){return(0,s.sJ)(S({id:e,key:t}))},A=function(e){return(0,s.rb)(b(e))},w=(0,s.CG)({key:"roomMetricIdsState",get:function(e){return function(t){return(0,t.get)(g(e))}},set:function(e){return function(t,n){var r=t.set;r(g(e),n.map((function(e){return e.id}))),n.forEach((function(e){return r(b(e.id),e)}))}}}),k=(0,s.CG)({key:"roomMetricsState",get:function(e){return function(t){var n=t.get;return n(w(e)).map((function(e){return n(b(e))}))}}}),P=function(e){return(0,s.sJ)(k(e))},Z=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shouldPersist,n=void 0===t||t,r=(0,f.O9)(e,{silent:!0});return(0,s._8)((function(t){var i=t.set,c=t.snapshot;return function(){var t=(0,a.Z)(u().mark((function t(a){var s,l,f,d,p,v,m,g,b=arguments;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(s=b.length,l=new Array(s>1?s-1:0),f=1;f<s;f++)l[f-1]=b[f];if(d=1===l.length?[l[0]]:l,p=(0,o.Z)(d,2),v=p[0],m=p[1],i(S({id:a,key:v}),m),n){t.next=5;break}return t.abrupt("return");case 5:return t.prev=5,t.next=8,c.map((function(e){return(0,e.set)(S({id:a,key:v}),m)})).getPromise(k(e));case 8:return g=t.sent,t.next=11,r({metrics:g});case 11:t.next=21;break;case 13:return t.prev=13,t.t0=t.catch(5),t.t1=i,t.t2=S({id:e,key:v}),t.next=19,c.getPromise(S({id:e,key:v}));case 19:t.t3=t.sent,(0,t.t1)(t.t2,t.t3);case 21:case"end":return t.stop()}}),t,null,[[5,13]])})));return function(e){return t.apply(this,arguments)}}()}),[e])},E=function(e){return[P(e),Z(e)]},j=function(e){var t=(0,f.O9)(e);return(0,s._8)((function(n){var o=n.set,i=n.snapshot;return function(){var n=(0,a.Z)(u().mark((function n(a){var c,s,f,d,p;return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c="new"===a.id,n.next=3,i.getPromise(k(e));case 3:return s=n.sent,f=s.filter((function(e){return e.id!==a.id})),d=c?y(y({},a),{},{id:(0,l.Z)()}):a,p=[].concat((0,r.Z)(f),[d]),n.next=9,t({metrics:p});case 9:o(S({id:d.id}),d),c&&o(g(e),(function(e){return[].concat((0,r.Z)(e),[d.id])}));case 11:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}),[e])},x=function(e){var t=(0,f.O9)(e,{silent:!0});return(0,s._8)((function(n){var r=n.set,o=n.reset,i=n.snapshot;return function(){var n=(0,a.Z)(u().mark((function n(a){var c,s;return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,i.getPromise(k(e));case 2:return c=n.sent,s=c.filter((function(e){return e.id!==a})),n.next=6,t({metrics:s});case 6:r(g(e),(function(e){return e.filter((function(e){return e!==a}))})),o(b(a));case 8:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}),[e])}},96929:function(e,t,n){"use strict";n.d(t,{kY:function(){return m},Nj:function(){return b},iB:function(){return w},zN:function(){return S},fD:function(){return O},Ww:function(){return Z},nI:function(){return E},X7:function(){return g},IW:function(){return y}});var r=n(15861),o=n(93433),a=n(64687),i=n.n(a),c=(n(85827),n(41539),n(25387),n(2490),n(72608),n(21249),n(57640),n(9924),n(15581),n(34514),n(54747),n(26699),n(32023),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(4480)),u=n(91966),s=n.n(u),l=n(97945),f=n(37518),d=n(8018),p={ids:(0,c.xu)({key:"roomNodeIds",default:[]}),error:(0,c.xu)({key:"roomNodesError",default:null}),updatedAt:(0,c.xu)({key:"roomNodesUpdatedAt",default:""}),loaded:(0,c.xu)({key:"roomNodesLoaded",default:!1})},v={nodes:(0,c.xu)({key:"roomNodesOptions",default:[]}),error:(0,c.xu)({key:"roomNodesOptionsError",default:null}),loaded:(0,c.xu)({key:"roomNodesOptionsLoaded",default:!1})},m=(0,c.CG)({key:"roomNodeState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(p[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(p[n](t),r)}}}),g=function(e,t){return(0,c.sJ)(m({id:e,key:t}))},b=(0,c.CG)({key:"roomNodesOptions",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(v[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(v[n](t),r)}}}),h=(0,c.CG)({key:"roomsNodesOptions",get:function(e){return function(t){var n=t.get;return null!==e&&void 0!==e&&e.length?e.reduce((function(e,t){var r=e.map((function(e){return e.value}));return n(b({id:t,key:"nodes"})).forEach((function(t){r.includes(t.value)||e.push(t)})),e}),[]):[]}}}),y=function(e){return(0,c.sJ)(h(e))},S=function(){var e=(0,f.UL)();return g(e,"ids")},O=function(){var e=(0,f.UL)();return g(e,"loaded")},A=(0,c.CG)({key:"roomNodesState/add",get:function(){return function(){return null}},set:function(e){return function(t,n){var r=t.set,a=t.get,i=function(e){return a((0,l.zP)({id:e,key:"name"}))};r(p.ids(e),(function(e){return(0,o.Z)(new Set([].concat((0,o.Z)(e),(0,o.Z)(n)))).sort((function(e,t){return i(e).localeCompare(i(t),void 0,{sensitivity:"accent"})}))})),r(p.updatedAt(e),"")}}}),w=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.onSuccess,u=n.onFail,s=(0,d.og)(e,t);return(0,c._8)((function(e){var n=e.set;return function(){var e=(0,r.Z)(i().mark((function e(r){var c,l,f,d=arguments;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=(d.length>1&&void 0!==d[1]?d[1]:{}).makeCallback,l=void 0===c||c,e.prev=1,e.next=4,s(r);case 4:(f=e.sent)&&r.reduce((function(e,t,n){var r;return null!==(r=f[n])&&void 0!==r&&r.errorCode?e:[].concat((0,o.Z)(e),[t])}),[]),n(A(t),r),l&&a&&a(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),l&&u&&u(r);case 13:case"end":return e.stop()}}),e,null,[[1,10]])})));return function(t){return e.apply(this,arguments)}}()}),[s,e,a,u])},k=(0,c.CG)({key:"roomNodesState/obsolete",get:function(){return function(){return null}},set:function(e){var t=e.roomId,n=e.nodeIds;return function(e){var r=e.set;r(p.ids(t),(function(e){return s()(e,n)})),r(p.updatedAt(t),"")}}}),P=(0,c.CG)({key:"roomNodesState/remove",get:function(){return function(){return null}},set:function(e){return function(t,n){var r=t.set;r(p.ids(e),(function(e){return s()(e,n)})),r(p.updatedAt(e),"")}}}),Z=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,u=(0,d.Bl)(e);return(0,c._8)((function(e){var n=e.set;return function(){var e=(0,r.Z)(i().mark((function e(r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,u(r);case 3:r.map((function(e){n((0,l.zP)({id:e,key:"state"}),"deleted")})),t.map((function(e){n(k({roomId:e,nodeIds:r}))})),o&&o(r),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),a&&a();case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(t){return e.apply(this,arguments)}}()}),[u,e,o,a])},E=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,u=(0,d.GT)(e,t);return(0,c._8)((function(e){var n=e.set;return function(){var e=(0,r.Z)(i().mark((function e(r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,u(r);case 3:n(P(t),r),o&&o(r),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),a&&a(r);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(t){return e.apply(this,arguments)}}()}),[u,e,t,o,a])}},37518:function(e,t,n){"use strict";n.d(t,{ZB:function(){return Z},n2:function(){return j},Dq:function(){return C},jW:function(){return F},UL:function(){return U},A3:function(){return B},vf:function(){return M},Hm:function(){return L},Jb:function(){return G},IX:function(){return N},iC:function(){return D},HM:function(){return _},tE:function(){return x},TF:function(){return R},s:function(){return T}});var r=n(15861),o=n(4942),a=n(45987),i=n(64687),c=n.n(i),u=(n(41539),n(15581),n(2490),n(34514),n(54747),n(57327),n(88449),n(59849),n(92222),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(4480)),s=n(95383),l=n(74059),f=n(53338),d=n(4474),p=n(91850),v=n(75674),m=n(8018),g=n(83338),b=n(29495),h=n(67294),y=n(19368),S=n(23383),O=n(71172),A=function(e){var t="".concat((0,y.P)()).concat((0,S.e)(e));return(0,h.useCallback)((function(e){return(0,O.c)({key:t,handleResults:function(t){return t.results.concat(e)}})}),[t])},w=["settings"];function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?k(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Z=(0,u.CG)({key:"roomInitialize",get:function(e){return function(t){return(0,t.get)((0,p.ZP)(e))}},set:function(){return function(e,t){var n=e.set,r=t.settings,o=(0,a.Z)(t,w);n((0,p.ZP)(o.id),(function(e){return P(P(P({},v.Z),e),o)})),n((0,p.xh)([o.spaceId,o.slug]),o.id),r&&n((0,g.Z)(o.id),(function(e){return P(P({},e),r)})),o.metrics&&n((0,b.gl)(o.id),o.metrics)}}}),E=(0,u.CG)({key:"roomsInitialize",get:function(){return function(){return null}},set:function(){return function(e,t){var n=e.set;t.forEach((function(e){n(Z(e.id),e)}))}}}),j=(0,u.CG)({key:"roomState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)((0,p.ZP)(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.set;a((0,p.ZP)(t),n?"function"!==typeof r?function(e){return P(P({},e),{},(0,o.Z)({},n,r))}:function(e){return P(P({},e),{},(0,o.Z)({},n,r(e[n])))}:P(P({},v.Z),r))}},reset:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.reset,i=e.set;n?i((0,p.ZP)(t),"function"!==typeof r?function(e){return P(P({},e),{},(0,o.Z)({},n,r))}:function(e){return P(P({},e),{},(0,o.Z)({},n,r(e[n])))}):a((0,p.ZP)(t))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),x=function(e,t){return(0,u.sJ)(j({id:e,key:t}))},T=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,a=t.shouldPersist,i=t.onSuccess,s=t.onFail,l=(0,u.Zl)(j({id:e,key:n})),f=(0,m.O9)(e);return(0,u._8)((function(t){var u=t.snapshot;return function(){var t=(0,r.Z)(c().mark((function t(r){var d,p;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(d=n?(0,o.Z)({},n,r):r,l((function(e){return P(P({},e),d)})),a){t.next=4;break}return t.abrupt("return");case 4:return t.next=6,u.getPromise(j({id:e}));case 6:return p=t.sent,t.prev=7,t.next=10,f(d);case 10:i&&i(r),t.next=17;break;case 13:t.prev=13,t.t0=t.catch(7),l(n?p[n]:p),s&&s(r);case 17:case"end":return t.stop()}}),t,null,[[7,13]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,a,i,s])},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.onSuccess,o=t.onFail,a=(0,m.RO)(e),i=A(e);return(0,u._8)((function(t){var u=t.set;return function(){var t=(0,r.Z)(c().mark((function t(r){var l,f,d;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,a(r);case 3:return l=t.sent,f=l.data,d=P(P(P({},r),{},{spaceId:e},f),{},{loaded:!0}),t.next=8,i(d);case 8:u(E(),[d]),u((0,s.oC)(e),d),n&&n(d),t.next=16;break;case 13:t.prev=13,t.t0=t.catch(0),o&&o(r);case 16:case"end":return t.stop()}}),t,null,[[0,13]])})));return function(e){return t.apply(this,arguments)}}()}),[a,e,n,o,i])},I=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,i=(0,u.rb)(j({id:e})),l=x(e,"spaceId");return(0,u._8)((function(n){var u=n.snapshot,f=n.set,v=n.reset;return(0,r.Z)(c().mark((function n(){var r,m,g;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,u.getPromise(j({id:e}));case 2:return r=n.sent,n.next=5,u.getPromise((0,s.q3)({id:r.spaceId}));case 5:return m=n.sent,g=(0,d.rZ)(m.filter((function(t){return t.id!==e}))),n.prev=7,n.next=10,t();case 10:v((0,p.xh)([l,r.slug])),f(p.IV,g),f((0,s.v0)(l),r.id),i(),o&&o(r),n.next=20;break;case 17:n.prev=17,n.t0=n.catch(7),a&&a(r);case 20:case"end":return n.stop()}}),n,null,[[7,17]])})))}),[t,l,e,o,a])},D=function(e,t){var n=x(e,"spaceId"),r=(0,m.tn)(n,e);return I(e,r,t)},N=function(e,t){var n=x(e,"spaceId"),r=(0,m.R2)(n,e);return I(e,r,t)},M=function(){return(0,u.sJ)(p.IV)},R=function(e){return(0,u.Zl)(p.IV,e)},_=function(e,t){return(0,u.sJ)((0,p.xh)([e,t]))},U=function(e){var t=(0,l.th)(),n=M();return _(t,e||n)},L=function(e){var t=U();return x(t,e)},B=function(){var e=(0,l.uk)(),t=M();return e&&t&&"/spaces/".concat(e,"/rooms/").concat(t)},G=function(){return(0,s.J7)().filter((function(e){return e.slug===f.i_}))[0]||{id:""}},F=function(){var e=G().id,t=void 0===e?"":e;return"member"===(0,l.OS)("roleInSpace")&&!!t}},83338:function(e,t,n){"use strict";var r=n(4480);t.Z=(0,r.xu)({key:"roomSettings",default:{groupMode:""}})},310:function(e,t,n){"use strict";n.d(t,{y:function(){return r}});var r=function(e,t){return t.untouchable?1:e.untouchable?-1:e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})}},30266:function(e,t,n){"use strict";n.d(t,{$F:function(){return b},A6:function(){return g},NX:function(){return p},Ns:function(){return v},Q0:function(){return y},oq:function(){return d},wh:function(){return m}});var r=n(4942),o=n(45987),a=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),i=n(66152),c=n(62200),u=n(64358),s=["permissions"];function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=function(){return a.Z.get(c.MC,{transform:function(e){return e.map((function(e){var t=e.permissions;return f(f({},(0,o.Z)(e,s)),{},{permissions:t.reduce((function(e,t){return f(f({},e),{},(0,r.Z)({},t,t))}),{})})}))}})},p=function(e){return a.Z.get("/api/v3/spaces/slug/".concat(e))},v=function(e){return a.Z.delete("/api/v1/spaces/".concat(e))},m=function(e){return a.Z.post("/api/v1/spaces",{name:e})},g=function(e,t){return a.Z.post("/api/v1/spaces/default",{email:t},{headers:{"Netdata-Account-Id":e}})},b=function(e,t){return a.Z.patch("/api/v1/spaces/".concat(e),t)},h=function(e){return function(t){return t.map((function(t){return f(f({},(0,i.k5)(t)),{},{spaceId:e})}))}},y=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).defaultParam,n=void 0!==t&&t;return a.Z.get((0,u.W)({spaceId:e}),{params:{default:n},transform:h(e)})}},58502:function(e,t,n){"use strict";n.d(t,{$V:function(){return i},E3:function(){return a},bo:function(){return c}});var r=n(4480),o=n(78710),a={createdAt:"",description:"",iconURL:"",id:"",error:null,loaded:!1,name:"",slug:""},i=(0,r.cn)({key:"currentSpaceSlug",default:null}),c=(0,r.xu)({key:"spaceIdBySlug",default:"",effects:function(e){return o.ZP&&e===o.Xh?[function(e){var t=e.setSelf;"get"===e.trigger&&t(o.HM)}]:[]}});t.ZP=(0,r.xu)({key:"space",default:a,effects:function(e){return(0,o.Ly)(e)?[function(e){var t=e.setSelf;"get"===e.trigger&&t(o.aD)}]:[]}})},46585:function(e,t,n){"use strict";n.d(t,{Eu:function(){return o},Pf:function(){return a},Qy:function(){return i},T$:function(){return c}});var r=n(67294),o="SPACE_NOT_FOUND",a=5,i=20,c={delete:r.createElement(r.Fragment,null,"Cannot delete last space of account.",r.createElement("br",null),"You can delete your account instead."),leave:r.createElement(r.Fragment,null,"Cannot leave last space of account.",r.createElement("br",null),"You can delete your account instead.")}},57079:function(e,t,n){"use strict";var r=(0,n(4480).cn)({key:"publicSpacesAtom",default:[]});t.Z=r},95383:function(e,t,n){"use strict";n.d(t,{r1:function(){return f},q3:function(){return b},Ad:function(){return l},oC:function(){return m},v0:function(){return g},J7:function(){return y},yE:function(){return v},Gn:function(){return p},WY:function(){return h},y3:function(){return d}});var r=n(93433),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(26833),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(57327),n(88449),n(59849),n(21249),n(57640),n(9924),n(4480)),a=n(37518),i=n(74059),c=n(78710),u={ids:(0,o.xu)({key:"spaceRoomIds",default:[],effects:function(e){return(0,c.Ly)(e)?[function(e){var t=e.onSet,n=e.trigger,o=e.setSelf;"get"===n&&o([c.Fb]),t((function(e){o([c.Fb].concat((0,r.Z)(e)))}))}]:[]}}),updatedAt:(0,o.xu)({key:"spaceRoomsUpdatedAt",default:""}),loaded:(0,o.xu)({key:"spaceRoomsLoaded",default:!1,effects:function(e){return(0,c.Ly)(e)?[function(e){var t=e.trigger,n=e.setSelf;"get"===t&&n(!0)}]:[]}})},s=n(310),l=(0,o.CG)({key:"spaceRoomState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(u[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(u[n](t),r)}}}),f=function(e,t){Object.values(u).forEach((function(n){return e(n(t))}))},d=function(e,t){return(0,o.sJ)(l({id:e,key:t}))},p=function(e){var t=(0,i.th)();return d(t,e)},v=function(){var e=(0,i.th)();return d(e,"ids")},m=(0,o.CG)({key:"spaceRoomsState/add",get:function(){return function(){return null}},set:function(e){return function(t,n){var o=t.set,i=t.get,c=function(e){return i((0,a.n2)({id:e}))};o(l({id:e,key:"ids"}),(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),[n.id]))).sort((function(e,t){return(0,s.y)(c(e),c(t))}))})),o(l({id:e,key:"loaded"}),!0),o(l({id:e,key:"updatedAt"}),"")}}}),g=(0,o.CG)({key:"spaceRoomsState/remove",get:function(){return function(){return null}},set:function(e){return function(t,n){var r=t.set;r(l({id:e,key:"ids"}),(function(e){return e.filter((function(e){return e!==n}))})),r(l({id:e,key:"loaded"}),!0),r(l({id:e,key:"updatedAt"}),"")}}}),b=(0,o.CG)({key:"spaceFullRooms",get:function(e){var t=e.id,n=e.key;return function(e){var r=e.get;return r(l({id:t,key:"ids"})).map((function(e){return r((0,a.n2)({id:e,key:n}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),h=function(e,t){return(0,o.sJ)(b({id:e,key:t}))},y=function(e){var t=(0,i.th)();return h(t,e)}},74059:function(e,t,n){"use strict";n.d(t,{BN:function(){return b},YH:function(){return g},U7:function(){return m},st:function(){return p},Iw:function(){return O},th:function(){return k},uk:function(){return A},OS:function(){return Z},Zu:function(){return E},$v:function(){return w},VZ:function(){return S},Q6:function(){return P},vu:function(){return h},GM:function(){return y}});var r=n(4942),o=n(93433),a=(n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(15581),n(2490),n(34514),n(54747),n(21249),n(57640),n(9924),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4480)),i=n(78710),c=n(49674),u={ids:(0,a.cn)({key:"spaceIds",default:[],effects:i.ZP?[function(e){var t=e.onSet,n=e.trigger,r=e.setSelf;"get"===n&&r([i.HM]),t((function(e){r([i.HM].concat((0,o.Z)(e)))}))}]:[]}),error:(0,a.cn)({key:"spacesError",default:null}),updatedAt:(0,a.cn)({key:"spacesUpdatedAt",default:""}),loaded:(0,a.cn)({key:"spacesLoaded",default:!1,effects:[function(e){var t,n=e.trigger,r=e.setSelf;null!==(t=(0,e.getLoadable)(c.Z).contents)&&void 0!==t&&t.isAnonymous&&"get"===n&&r(!0)}]})},s=n(58502),l=n(57079);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=(0,a.CG)({key:"spacesState",get:function(e){return function(t){return(0,t.get)(u[e])}},set:function(e){return function(t,n){(0,t.set)(u[e],n)}}}),v=(0,a.nZ)({key:"availableSpaceIds",get:function(e){var t=e.get,n=t(p("ids")),r=t(l.Z);return(0,o.Z)(new Set([].concat((0,o.Z)(n),(0,o.Z)(r))))}}),m=(0,a.CG)({key:"spaceState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)((0,s.ZP)(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,o){var a=e.set;a((0,s.ZP)(t),n?"function"!==typeof o?function(e){return d(d({},e),{},(0,r.Z)({},n,o))}:function(e){return d(d({},e),{},(0,r.Z)({},n,o(e[n])))}:d(d({},s.E3),o))}}}),g=(0,a.CG)({key:"spaceIdBySlugState",get:function(e){return function(t){return(0,t.get)((0,s.bo)(e))}},set:function(){return function(e,t){var n=e.set;t.forEach((function(e){n((0,s.bo)(e.slug),e.id)}))}}}),b=(0,a.nZ)({key:"currentSpaceIdState",get:function(e){var t=e.get,n=t(s.$V);return t(g(n))}}),h=function(e,t){return(0,a.sJ)(m({id:e,key:t}))},y=function(e){return(0,a.sJ)(p(e))},S=function(e){return(0,a.sJ)(g(e))},O=function(){return(0,a.sJ)(v)},A=function(){return(0,a.sJ)(s.$V)},w=function(e){return(0,a.Zl)(s.$V,e)},k=function(){return(0,a.sJ)(b)},P=function(){return(0,i.Ly)(k())},Z=function(e){var t=k();return h(t,e)},E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,a._8)((function(t){var n=t.snapshot;return function(){return e.map((function(e){return n.getLoadable(m({id:e})).contents}))}}))()}},32950:function(e,t,n){"use strict";var r=n(74059),o=n(94979),a=n(46585),i=n(78710);t.Z=function(){var e=(0,o.V)(),t=(0,r.VZ)(e),n=(0,r.vu)(t||a.Eu),c=(0,r.GM)("error");return(0,i.Ly)(t)?{isFetching:!1,hasAccess:!0}:{isFetching:!!e&&!n.loaded&&!c&&!n.error,hasAccess:n.loaded&&!c&&!n.error}}},94979:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z},V:function(){return P}});var r=n(93433),o=n(4942),a=n(45987),i=n(15861),c=n(29439),u=n(64687),s=n.n(u),l=(n(85827),n(41539),n(25387),n(2490),n(72608),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4480)),f=n(89250),d=n(30266),p=n(67294),v=n(74059),m="/spaces/:spaceSlug/*",g=n(13477),b=n(33335),h=n(57079),y=n(46585),S=n(16634),O=n(78710),A=["id","permissions"];function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var P=function(){var e;return null===(e=(0,f.bS)(m))||void 0===e||null===(e=e.params)||void 0===e?void 0:e.spaceSlug},Z=function(){var e=function(){var e=(0,f.bS)(m),t=((null===e||void 0===e?void 0:e.params)||{}).spaceSlug,n=(0,v.$v)(),r=(0,v.uk)();return(0,p.useEffect)((function(){r!==t&&n(t)}),[r,t]),t}(),t=(0,p.useState)(null),n=(0,c.Z)(t,2),u=n[0],w=n[1],P=(0,g.Iy)("isAnonymous"),Z=(0,l._8)((function(t){var n=t.set;return(0,i.Z)(s().mark((function t(){var i,c,u,l,f;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,d.NX)(e);case 3:i=t.sent,c=i.data,u=c.id,l=c.permissions,f=(0,a.Z)(c,A),n((0,b.SX)(u),l.reduce((function(e,t){return k(k({},e),{},(0,o.Z)({},t,t))}),{})),n((0,v.U7)({id:u}),(function(e){return k(k(k({},e),f),{},{loaded:!0})})),n((0,v.YH)(),[{id:u,slug:e}]),n(h.Z,(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),[u])))})),P&&n((0,v.st)("loaded"),!0),t.next=17;break;case 13:t.prev=13,t.t0=t.catch(0),n((0,v.U7)({id:y.Eu}),(function(e){return k(k({},e),{},{error:(0,S.Z)(t.t0)})})),w(t.t0);case 17:case"end":return t.stop()}}),t,null,[[0,13]])})))}),[P,e]);return(0,p.useEffect)((function(){O.ZP&&e===O.Xh||e&&Z()}),[Z,e]),u}},23383:function(e,t,n){"use strict";n.d(t,{e:function(){return s}});var r=n(68035),o=n(37518),a=n(30266),i=n(95383),c=n(310),u=n(78710),s=function(e){return"spaces.".concat(e,".rooms")};t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.autorun,l=void 0===n||n,f=t.polling,d=void 0===f||f;return(0,r.Z)((function(){return{key:s(e),autorun:l&&!!e,polling:d,fetch:function(){return(0,a.Q0)(e)},association:{getIds:function(){return(0,i.Ad)({id:e,key:"ids"})},getLoaded:function(){return(0,i.Ad)({id:e,key:"loaded"})},getUpdatedAt:function(){return(0,i.Ad)({id:e,key:"updatedAt"})}},sort:c.y,getResource:function(e){return(0,o.ZB)(e)},pollingOptions:{pollingInterval:69e3},force:!u.ZP}}),[e])}},5429:function(e,t,n){"use strict";var r=n(29439),o=(n(41539),n(88674),n(17727),n(67294)),a=function(){};t.Z=function(e,t){var n=(0,o.useMemo)(e,t),i=n.fetch,c=n.enabled,u=void 0===c||c,s=n.initialValue,l=n.onFail,f=void 0===l?a:l,d=n.onSettle,p=void 0===d?a:d,v=n.onSuccess,m=void 0===v?a:v,g=n.isDefaultLoading,b=void 0!==g&&g,h=(0,o.useState)(s),y=(0,r.Z)(h,2),S=y[0],O=y[1],A=(0,o.useState)(b),w=(0,r.Z)(A,2),k=w[0],P=w[1],Z=(0,o.useState)(null),E=(0,r.Z)(Z,2),j=E[0],x=E[1],T=(0,o.useRef)(!0);return(0,o.useEffect)((function(){if(u){O(s),P(!0),x(null);var e=i();return e.then((function(e){var t=e.data;T.current&&(O(t),m(t))})).catch((function(e){T.current&&(e.isCancel||(x(e),f(e)))})).finally((function(){T.current&&(P(!1),p())})),function(){var t;return null===e||void 0===e||null===(t=e.cancel)||void 0===t?void 0:t.call(e)}}}),t),(0,o.useEffect)((function(){return function(){return T.current=!1}}),[]),[S,k,j]}},68008:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e,t){var n=(0,r.useRef)();return(0,r.useCallback)((function(){var t,r;return n.current&&(null===(t=(r=n.current).cancel)||void 0===t||t.call(r)),n.current=e.apply(void 0,arguments),n.current}),t)}},23109:function(e,t,n){"use strict";var r=n(29439),o=(n(38862),n(47941),n(67294)),a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=localStorage.getItem(e);return n?JSON.parse(n):t};t.Z=function(e,t){var n=(0,o.useState)((function(){return a(e,t)})),i=(0,r.Z)(n,2),c=i[0],u=i[1];return(0,o.useEffect)((function(){return localStorage.setItem(e,JSON.stringify(c))}),[c]),[c,u]}},93017:function(e,t,n){"use strict";var r=n(4942),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(67294)),a=n(52631),i=n(74855);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=(0,o.useRef)({}),n=(0,o.useCallback)((function(n){var r=(0,i.sc)(u(u({},n),{},{success:!0}));t.current[e]&&a.Z.dismiss(t.current[e]),t.current[e]=a.Z.success(r)}),[]),r=(0,o.useCallback)((function(n){var r,o=null===n||void 0===n||null===(r=n.response)||void 0===r?void 0:r.data,c=(0,i.t_)(null!==o&&void 0!==o&&o.errorMessage?o:u({errorMessage:n.message,errorMsgKey:n.message},n));t.current[e]&&a.Z.dismiss(t.current[e]),t.current[e]=a.Z.error(c)}),[]),c=(0,o.useCallback)((function(e){return e.forEach(r)}),[]);return[n,r,c]}},76201:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(67294),o=n(89250),a=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;null!==(e=window.posthog)&&void 0!==e&&e.__loaded&&window.posthog.capture("$pageview",{$current_url:t})};t.Z=function(){var e=(0,o.TH)().pathname;(0,r.useEffect)((function(){a()}),[e])}},95192:function(e,t,n){"use strict";n.d(t,{Z:function(){return u},$:function(){return c}});var r=n(24678),o=n(50308),a=n.n(o),i=function(e){if(!e)throw new Error("Please pass a name for the idb store");var t=(0,r.MT)(e,"".concat(e,"-cache")),n=function(e,n){return(0,r.t8)(e,function(e){return{value:e,timestamp:Date.now()}}(n),t).catch(a())};return{store:t,set:n,get:function(e){var o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=i.fetch,u=i.maxAge,s=void 0===u?86400:u,l=(0,r.U2)(e,t).then((function(t){var r=1e3*s;return t&&t.timestamp+r>Date.now()?t.value:c?(o=c()).then((function(t){return n(e,t),t})):null})).catch(a());return l.abort=function(){return o&&o.abort()},l},clear:function(){return(0,r.ZH)(t).catch(a())},del:function(e){return(0,r.IV)(e,t).catch(a())}}}("netdata"),c=86400,u=function(e,t){var n,r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).maxAge,o=function(){if(n){var e=new Error("rejected");throw e.isCancel=!0,e}},a=i.get(e,{maxAge:r}).then((function(e){if(o(),e)return t(e)})).then((function(){return o(),function(t){return i.set(e,t)}}));return a.abort=function(){n=!0},a}},71172:function(e,t,n){"use strict";n.d(t,{c:function(){return c}});var r=n(15861),o=n(64687),a=n.n(o),i=n(95192),c=function(){var e=(0,r.Z)(a().mark((function e(t){var n,r,o,c,u;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.key,r=t.handleResults,c=function(e){return o={updatedAt:"",results:r(e)}},e.next=4,(0,i.Z)(n,c);case 4:return u=e.sent,e.abrupt("return",u(o));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},19368:function(e,t,n){"use strict";n.d(t,{P:function(){return o}});var r=n(13477),o=function(){var e=(0,r.jr)();return"user.".concat(e,".")}},68035:function(e,t,n){"use strict";var r=n(45987),o=n(15861),a=n(29439),i=n(93433),c=n(4942),u=n(64687),s=n.n(u),l=(n(85827),n(41539),n(25387),n(2490),n(72608),n(2707),n(57327),n(88449),n(59849),n(26699),n(32023),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(15581),n(34514),n(54747),n(21249),n(57640),n(9924),n(88674),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(67294)),f=n(4480),d=n(41331),p=n(6557),v=n.n(p),m=n(29283),g=n(9058),b=n(16634),h=n(46189),y=n(13477),S=n(95192),O=n(19368),A=n(93017),w=["fetchResources","onReceive","getUpdatedAt","getError","clearRef","onFail"],k=["polling","fetch","association","pollingOptions"],P=["key"];function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var j=(0,f.cn)({key:"subscriptionsLatestError",default:0}),x=(0,f.CG)({key:"useSubscribe/updateState",get:function(){return function(){return null}},set:function(){return function(e,t){var n=e.get,r=e.set,o=t.results,a=t.wasDiff,c=t.updatedAt,u=t.getResource,s=t.getResourcesInitializer,l=t.getResourceInitialState,f=t.getUpdatedAt,p=t.getLoaded,m=t.getIds,g=t.getError,b=t.sort,h=t.saveToCache,y=t.restored,S=void 0!==y&&y,O=t.polling,A=void 0===O||O;o=o||[],g&&r(g(),null);var w=function(){r(f(),c),r(p(),!S||"restored")};if(0===o.length&&a)w();else{var k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v();return e.reduce((function(e,n){return n.loaded=!0,"deleted"===n.state||n.isDeleted?e.deleted.push(n.id):(e.byId[n.id]=E(E({},t(n)),n),e.effected.push(n.id)),e}),{deleted:[],effected:[],byId:{}})}(o,l),P=k.effected,Z=k.deleted,j=k.byId,x=function(e){return e in j?j[e]:n(u(e))},T=[];r(m(),(function(e){return!a&&A||!A?(T=P.length?P:T,b&&T.sort((function(e,t){return b(x(e),x(t))})),T):(Z.length&&(T=e.filter((function(e){return!Z.includes(e)}))),a&&P.length&&(T=(0,i.Z)(new Set([].concat((0,i.Z)(e),(0,i.Z)(P)))),b&&T.sort((function(e,t){return b(x(e),x(t))}))),(0,d.ZP)(T,e)?e:T)})),s?r(s(),{values:j,merge:!0}):P.forEach((function(e){return r(u(e),(function(t){return E(E({},t),{},{loaded:!0},j[e])}))})),w(),h&&h({results:T.map(x),updatedAt:c})}}}});t.Z=function(e,t){var n=(0,O.P)(),c=(0,y.Iy)("isAnonymous"),u=(0,l.useMemo)((function(){var t=e(),o=t.key,a=(0,r.Z)(t,P);return E({key:"".concat(n).concat(o)},a)}),[e].concat((0,i.Z)(t),[c])),d=function(e){var t=(0,g.e)(),n=(0,l.useMemo)((function(){return t?t.getRoot():null}),[t]),i=(0,m.Z)(),c=(0,a.Z)(i,2)[1],u=(0,A.Z)(e.key),d=(0,a.Z)(u,2)[1],p=(0,f._8)((function(e){var t=e.snapshot,n=e.set;return function(){var e=(0,o.Z)(s().mark((function e(r,o){var a,i,c,u;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=o.getError,i=o.onFail,c=Date.now(),e.next=4,t.getPromise(j);case 4:if(u=e.sent,!(r.isCancel||u+1e4>c)){e.next=7;break}throw r;case 7:throw a&&n(a(),(0,b.Z)(r)),n(j,c),i?i(r):d(r),r;case 11:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()}),[e]),v=(0,f._8)((function(e){var t=e.snapshot,n=e.set;return function(){var e=(0,o.Z)(s().mark((function e(a,i){var c,u,l,f,d,m,g,b,h,y;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=i.fetchResources,u=i.onReceive,l=i.getUpdatedAt,f=i.getError,d=i.clearRef,m=i.onFail,g=(0,r.Z)(i,w),e.next=3,t.getPromise(l());case 3:return b=e.sent,h=function(){return d.promise=c(b),d.promise.catch(function(){var e=(0,o.Z)(s().mark((function e(t){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",p(t,{onFail:m,getError:f}));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},y=function(e){var t=Array.isArray(e),r=t?e:e.results,o=t?"":e.updatedAt;return null===u||void 0===u||u(E(E({},t?{results:r}:E({results:[]},e)),{},{lastUpdated:b})),n(x(),E({fetchResources:c,results:r,wasDiff:!!b,updatedAt:o,getUpdatedAt:l,getError:f,clearRef:d,onFail:m},g)),new Promise((function(e){return setTimeout(e,0)}))},e.abrupt("return",h().then((function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data;return y(void 0===e?{}:e)})).catch((function(e){if(e.isCancel||1===a)throw e;return v(--a,E({fetchResources:c,onReceive:u,getUpdatedAt:l,getError:f,clearRef:d,onFail:m},g))})));case 7:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()}),[e]);return(0,l.useCallback)((function(t){var o=e.polling,a=void 0===o||o,i=e.fetch,u=e.association,s=e.pollingOptions,l=(0,r.Z)(e,k),f={timeoutId:null,animationFrameId:null,promise:null,killed:!1},d=function(){return v(2,E(E({fetchResources:i,saveToCache:t,polling:a,clearRef:f},u),l))},p=function e(){f.killed||(f.timeoutId=setTimeout((function(){f.animationFrameId=requestAnimationFrame((function(){return n&&(n.getAttribute("hovering")||n.getAttribute("paused"))?e():c.current?void d().then(e).catch((function(t){return!t.isCancel&&e()})):e()}))}),(null===s||void 0===s?void 0:s.pollingInterval)||h.Z.pollingInterval))};return d().then(a?p:null).catch((function(e){return a&&!e.isCancel&&p()})),function(){var e,t;f.killed=!0,null===(e=f.promise)||void 0===e||null===(t=e.cancel)||void 0===t||t.call(e),cancelAnimationFrame(f.animationFrameId),clearTimeout(f.timeoutId)}}),[e])}(u),p=(0,f._8)((function(e){var t=e.set;return function(e){var n,r=e.results,o=void 0===r?[]:r,a=e.updatedAt,i=void 0===a?"":a,c=(Array.isArray(o)&&o.length)>0;return null===(n=u.onReceive)||void 0===n||n.call(u,{results:o,lastUpdated:""}),t(x(),E(E(E({results:o,updatedAt:c?i:""},u),u.association),{},{restored:c})),new Promise((function(e){return setTimeout(e,0)}))}}),t),v=(0,f._8)((function(e){var t=e.snapshot;return function(){var e=u.association.getLoaded,n=u.key,r=u.cache,o=void 0===r||r,a=u.maxCacheAge;if(t.getLoadable(e()).contents||!o)return d();var i,c=(0,S.Z)(n,p,{maxAge:a||S.$});return c.then((function(e){i=d(e)})).catch((function(){})),function(){var e;c.abort(),null===(e=i)||void 0===e||e()}}}));return(0,l.useEffect)((function(){var e=u.autorun,t=void 0===e||e,n=u.force;if((!c||void 0!==n&&n)&&t)return v()}),[c].concat((0,i.Z)(t))),d}},46667:function(e,t,n){"use strict";var r=n(29439),o=n(67294);t.Z=function(e){var t=(0,o.useState)(!!e),n=(0,r.Z)(t,2),a=n[0],i=n[1];return[a,(0,o.useCallback)((function(e){return i((function(t){return"boolean"===typeof e?e:!t}))}),[]),(0,o.useCallback)((function(){return i(!0)}),[]),(0,o.useCallback)((function(){return i(!1)}),[])]}},4474:function(e,t,n){"use strict";n.d(t,{Pf:function(){return b},rZ:function(){return O}});var r=n(29439),o=(n(41539),n(64211),n(2490),n(41874),n(67294)),a=n(89250),i=n(12599),c=n(74059),u=n(95383),s=n(32950),l=n(53338),f=n(5934),d=n(37518),p=n(47133),v=n(46189),m=n(33427),g=n(78710),b=function(){var e=(0,a.s0)(),t=(0,a.UO)(),n=(0,d.A3)(),r=(0,p.r0)(t.dashboardSlug),i=(0,f.L)(),c=(0,o.useRef)(!1);(0,o.useEffect)((function(){!0===i&&(r?c.current=!0:(e("".concat(n,"/dashboards")),c.current||(0,m.cH)()))}),[i,r])},h=v.Z.demoSlug,y=v.Z.demoDefaultRoomViews,S=v.Z.defaultRoomView,O=function(e){var t;return e.length?e.some((function(e){return e.slug===l.i_}))?l.i_:null===(t=e[0])||void 0===t?void 0:t.slug:null};t.ZP=function(){(0,a.TH)();var e=(0,a.s0)(),t=(0,a.bS)({path:"/spaces/:spaceSlug/*"}),n=(0,a.bS)({path:"/spaces/:spaceSlug/rooms/:roomSlug/*"}),l=(0,a.bS)({path:"/*"}),f=(null===n||void 0===n?void 0:n.params)||(null===t||void 0===t?void 0:t.params)||(null===l||void 0===l?void 0:l.params),p=!!(0,a.bS)({path:"/spaces/:spaceSlug/settings/*"}),v=(0,c.VZ)(f.spaceSlug),m=(0,c.GM)("loaded"),b=(0,d.HM)(v,f.roomSlug),A=(0,u.Gn)("loaded"),w=(0,c.Iw)(),k=(0,r.Z)(w,1)[0],P=(0,c.vu)(k,"slug"),Z=(0,s.Z)().isFetching,E=(0,u.J7)(),j=(0,c.$v)(),x=(0,c.uk)();(0,o.useEffect)((function(){if(!Z&&(g.ZP||m&&"restored"!==m)&&(!p||!v))if(v&&x!==f.spaceSlug)j(f.spaceSlug);else if((!v||A)&&(!v||!b)){var t=v?f.spaceSlug:P,n=b?null===f||void 0===f?void 0:f.roomSlug:O(E);e(v&&A&&!n?(0,i.Gn)("/spaces/:spaceSlug/no-rooms",{spaceSlug:t}):function(e,t){if(!t)return(0,i.Gn)("/spaces/:spaceSlug/",{spaceSlug:e});var n=h===e?y[t]||y.default:g.ZP&&e===g.Xh&&t===g.Fb?g.vT:S;return(0,i.Gn)("/spaces/:spaceSlug/rooms/:roomSlug/".concat(n),{spaceSlug:e,roomSlug:t})}(t,n),{replace:!0})}}),[p,Z,f.roomSlug,f.spaceSlug,b,A,!!E.length,m,v,P,x])}},29283:function(e,t,n){"use strict";var r=n(29439),o=n(67294);t.Z=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=(0,o.useState)(e),n=(0,r.Z)(t,2),a=n[0],i=n[1],c=(0,o.useRef)(a);return(0,o.useEffect)((function(){var e=function(){c.current=!1,i(!1)};window.addEventListener("blur",e);var t=function(){c.current=!0,i(!0)};return window.addEventListener("focus",t),function(){window.removeEventListener("blur",e),window.removeEventListener("focus",t)}}),[]),[a,c]}},85732:function(e,t,n){"use strict";n(66992),n(41539),n(88674),n(78783),n(33948),n(57327),n(88449),n(2490),n(59849),n(92222),n(74916),n(77601);var r=n(67294),o=n(2145),a=n(20745),i=n(4480),c=n(79655),u=n(89250),s=n(27923),l=n(95659),f=n(9058),d=n(15794),p=n(92501),v=n(78266),m=n(78710),g=(n(4723),n(82772),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function b(e,t){navigator.serviceWorker.register(e).then((function(e){n.g.registration=e,e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See http://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((function(e){console.error("Error during service worker registration:",e)}))}n(64765),n(15306);var h=n(47323),y=function(e,t){return t.search=t.search||e.location.search,t.hash=t.hash||e.location.hash,t},S=function(e){return"string"===typeof e?{pathname:e}:e},O=(0,h.lX)({window:window}),A=O.push,w=O.replace;O.push=function(e,t){return A.apply(O,[y(O,S(e)),t])},O.replace=function(e,t){w.apply(O,[y(O,S(e)),t])};var k=O,P=JSON.parse('{"u2":"cloud-frontend","i8":"6.27.0"}'),Z=(0,o.Z)((function(){return Promise.all([n.e(851),n.e(360)]).then(n.bind(n,79360))}),"Redirects"),E=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(837),n.e(252)]).then(n.bind(n,46019))}),"SignIn"),j=(0,o.Z)((function(){return n.e(934).then(n.bind(n,64934))}),"Trust"),x=(0,o.Z)((function(){return n.e(817).then(n.bind(n,76817))}),"AuthTokenCallback"),T=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(837),n.e(241)]).then(n.bind(n,1178))}),"MagicLinkSent"),C=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(977)]).then(n.bind(n,98977))}),"SignUpVerification"),I=(0,o.Z)((function(){return Promise.all([n.e(655),n.e(86)]).then(n.bind(n,38086))}),"CheckAuth"),D=(0,o.Z)((function(){return Promise.all([n.e(655),n.e(282)]).then(n.bind(n,38282))}),"App"),N=(0,o.Z)((function(){return n.e(510).then(n.bind(n,89510))}),"GlobalStyles"),M=(0,o.Z)((function(){return n.e(723).then(n.bind(n,76723))}),"Notifications"),R=(0,o.Z)((function(){return Promise.all([n.e(470),n.e(193),n.e(814)]).then(n.bind(n,94814))}),"Assistant");window.envSettings.tracking?setTimeout((function(){var e,t=[!(null===(e=window)||void 0===e||null===(e=e.posthog)||void 0===e||!e.SentryIntegration)&&new window.posthog.SentryIntegration(window.posthog,"netdata-inc",5210883)].filter(Boolean);s.S({dsn:"https://43a4669badb04eee941ec8b242991df7@o382276.ingest.sentry.io/5210883",maxBreadcrumbs:100,release:"".concat(P.u2,"@").concat(P.i8),debug:!1,integrations:t,tracesSampleRate:.2,environment:window.location.host,denyUrls:[],autoSessionTracking:!1,beforeSend:function(e,t){var n,r=t.originalException,o=void 0===r?{}:r;if(!/netdata\.cloud/.test(null===e||void 0===e||null===(n=e.request)||void 0===n||null===(n=n.headers)||void 0===n?void 0:n.Referer))return null;if(!o)return e;var a=o.response,i=void 0===a?{}:a,c=o.isCancel,u=void 0!==c&&c,s=o.message;if(u)return null;if("Network Error"===s)return null;if("No data for this period"===s)return null;var l=i.status;return l>=400&&l<=599?null:e},ignoreErrors:["Non-Error exception captured","Non-Error promise rejection captured","Request aborted",/ResizeObserver/,"timeout exceeded","this.get_config is not a function",/IndexSizeError/,"Invalid time value","not_found",/A mutation operation was attempted on a database that did not allow mutations/]}),window.addEventListener("beforeunload",(function(){try{l.Gd().getClient().getOptions().enabled=!1}catch(e){}}))}),500):console.log("Running in development mode version:",P.u2,P.i8);var _,U=(0,d.k)(p.NY,"light"),L=function(){return r.createElement(i.Wh,null,r.createElement(r.Suspense,{fallback:""},r.createElement(f.Z,null,r.createElement(d.Z,null,r.createElement(p.ZP,{fallback:U},r.createElement(r.Suspense,{fallback:""},r.createElement(N,null),r.createElement(M,null),r.createElement(R,null),r.createElement(c.M,{className:"router",history:k,basename:m.ZP?m.se:"/"},r.createElement(u.Z5,null,r.createElement(u.AW,{path:"*",element:r.createElement(I,null)})),r.createElement(r.Suspense,{fallback:r.createElement(v.Z,null)},r.createElement(u.Z5,null,!m.ZP&&r.createElement(r.Fragment,null,r.createElement(u.AW,{path:"/sign-in",element:r.createElement(E,null)}),r.createElement(u.AW,{path:"/trust",element:r.createElement(j,null)}),r.createElement(u.AW,{path:"/sign-up",element:r.createElement(u.Fg,{to:"/sign-in",replace:!0})}),r.createElement(u.AW,{path:"/sign-up/verify",element:r.createElement(C,null)}),r.createElement(u.AW,{path:"/sign-in/magic-link-sent",element:r.createElement(T,null)})),r.createElement(u.AW,{path:"/cloud/origin/callback",element:r.createElement(x,null)}),r.createElement(u.AW,{path:"/redirects",element:r.createElement(Z,null)}),r.createElement(u.AW,{path:"*",element:r.createElement(D,null)}))))))))))};(0,a.s)(document.getElementById("app")).render(r.createElement(L,null)),"serviceWorker"in navigator&&window.addEventListener("load",(function(){var e="".concat(window.envSettings.webpackPublicPath,"/sw.js");g?(function(e,t){fetch(e).then((function(n){var r=n.headers.get("content-type");404===n.status||null!=r&&-1===r.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):b(e,t)})).catch((function(){console.log("No internet connection found. App is running in offline mode.")}))}(e,_),navigator.serviceWorker.ready.then((function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit http://bit.ly/CRA-PWA")}))):b(e,_)}))},95482:function(e,t,n){"use strict";n(74916),n(15306);n.p=window.envSettings.isAgent&&!window.envSettings.webpackPublicPath?window.envSettings.agentApiUrl+"/v2/":"".concat(window.envSettings.webpackPublicPath||"","/").replace(/([^:]\/)\/+/g,"$1")},29127:function(e,t,n){"use strict";n(92222),n(47042),n(41539),n(39714),n(74916),n(4723),n(24603),n(88386),n(88674);var r="timeout",o="success",a="skipped";window.envSettings.tracking&&(!function(e,t){var n,r,o,a;t.__SV||(window.posthog=t,t._i=[],t.init=function(i,c,u){function s(e,t){var n=t.split(".");2==n.length&&(e=e[n[0]],t=n[1]),e[t]=function(){e.push([t].concat(Array.prototype.slice.call(arguments,0)))}}(o=e.createElement("script")).type="text/javascript",o.async=!0,o.src=c.api_host+"/static/array.js",(a=e.getElementsByTagName("script")[0]).parentNode.insertBefore(o,a);var l=t;for(void 0!==u?l=t[u]=[]:u="posthog",l.people=l.people||[],l.toString=function(e){var t="posthog";return"posthog"!==u&&(t+="."+u),e||(t+=" (stub)"),t},l.people.toString=function(){return l.toString(1)+".people (stub)"},n="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags".split(" "),r=0;r<n.length;r++)s(l,n[r]);t._i.push([i,c,u])},t.__SV=1)}(document,window.posthog||[]),window.posthog.init(window.envSettings.posthogToken,{api_host:"https://app.posthog.com",disable_session_recording:!0,opt_in_site_apps:!0}),function(e,t,n,r,o){e[r]=e[r]||[],e[r].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var a=t.getElementsByTagName(n)[0],i=t.createElement(n);i.async=!0,i.src="https://www.googletagmanager.com/gtm.js?id=GTM-N6CBMJD",a.parentNode.insertBefore(i,a)}(window,document,"script","dataLayer"),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.async,i=void 0===n||n,c=t.defer,u=void 0!==c&&c,s=t.insertAfter,l=t.insertBefore,f=t.timeout,d=void 0===f?5e3:f,p=t.attrs,v=t.skipIf;return new Promise((function(t,n){if("function"===typeof v&&v())t(a);else{var c=setTimeout((function(){n(r)}),d),f=document.createElement("script");if(f.type="text/javascript",f.src=e,f.async=i,f.defer=u,p)for(var m in p)f.setAttribute(m,p[m]);f.onerror=function(e){n(new URIError("loadScript: the script ".concat(e.target.src," is not accessible.")))},f.onload=function(){clearTimeout(c),t(o)},s?s.parentNode.insertBefore(f,s.nextSibling):l?l.parentNode.insertBefore(f,l):document.body.appendChild(f)}}))}("https://www.googletagmanager.com/gtag/js?id=G-J69Z2JCTFB").then((function(){window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)};var e=function(e){var t;return(null===(t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)")))||void 0===t?void 0:t.pop())||"granted"};window.gtag("consent","default",{ad_storage:e("analyticsCookies"),analytics_storage:e("analyticsCookies"),functionality_storage:e("defaultCookies")}),window.gtag("js",new Date),window.gtag("config","G-J69Z2JCTFB")})))},64358:function(e,t,n){"use strict";n.d(t,{W:function(){return o}});n(92222);var r=n(62200),o=function(e){var t=e.spaceId;return"".concat(r.li,"/spaces/").concat(t,"/rooms?show_all=true")}},47165:function(){}},function(e){e.O(0,[143],(function(){[655,86,282].map(e.E)}),5);var t=function(t){return e(e.s=t)};e.O(0,[967,376],(function(){return t(95482),t(29127),t(85732)}));e.O()}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="468bb2fa-4c8b-457c-80bd-e465a48b629e",e._sentryDebugIdIdentifier="sentry-dbid-468bb2fa-4c8b-457c-80bd-e465a48b629e")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[143],{64637:function(e,t,n){"use strict";n.d(t,{a:function(){return o},db:function(){return i},fm:function(){return a},h2:function(){return c},lV:function(){return u}});n(47042),n(74916),n(15306),n(73210);var r=n(53087),o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return(0,r.default)(e,t)},a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]&&arguments[1]?e.toLowerCase():e;return t.charAt(0).toUpperCase()+t.slice(1)},i=function(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2")},c=function(e){return e.replace(/([^:]\/)\/+/g,"$1")},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e=(e=(e=(e=e.trim()).replace(/\s+/g,"-")).replace(/[^a-zA-Z0-9-]/g,"")).toLowerCase()}},41331:function(e,t,n){"use strict";n.d(t,{hX:function(){return o}});var r=n(71002),o=(n(41539),n(68216),n(2490),n(79433),n(91038),n(78783),n(57327),n(88449),n(59849),n(26699),n(32023),n(47941),n(64211),n(41874),function(e,t){var n=t.omit,r=void 0===n?[]:n,o=t.keep,a=void 0===o?[]:o;return r.length||a.length?e.filter((function(e){return a.length?a.includes(e):!r.includes(e)})):e});t.ZP=function e(t,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t===n)return!0;if("object"!==(0,r.Z)(t)||null===t||"object"!==(0,r.Z)(n)||null===n)return!1;var i=o(Object.keys(t),a),c=o(Object.keys(n),a);if(i.length!==c.length)return!1;var u=Object.prototype.hasOwnProperty.bind(n);return!i.some((function(r){return!u(r)||(t[r]!==n[r]||!e(t[r],n[r],a))}))}},38609:function(e,t,n){"use strict";var r=n(71002),o=n(93433),a=(n(85827),n(41539),n(25387),n(2490),n(72608),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(47941),n(41331)),i=function(e,t,n){var r=(0,a.hX)(e,n);return r.reduce((function(e,t,o){return e.push(u(t,r[o],n)),e}),[])},c=function(e,t,n){var r=(0,a.hX)((0,o.Z)(new Set([].concat((0,o.Z)(Object.keys(e)),(0,o.Z)(Object.keys(t))))),n),i=Object.prototype.hasOwnProperty.bind(t);return r.reduce((function(r,o){return i(o)?r[o]=u(e[o],t[o],n):r[o]=e[o],r}),{})},u=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e===t||"object"!==(0,r.Z)(e)||null===e||"object"!==(0,r.Z)(t)||null===t?t:Array.isArray(t)?i(e,0,n):c(e,t,n)};t.Z=u},58591:function(e,t,n){"use strict";n.d(t,{bp:function(){return g},kG:function(){return p},m$:function(){return f},np:function(){return m},xs:function(){return v}});var r=n(29439),o=(n(74916),n(23123),n(85827),n(41539),n(25387),n(2490),n(72608),n(82772),n(69720),n(21249),n(57640),n(9924),n(92222),n(59242)),a=n.n(o),i=n(82492),c=n.n(i),u=n(57557),s=n.n(u),l=/[&;]/,f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:decodeURIComponent(window.location.hash.substr(1));return 0===e.length?{}:e.split(l).reduce((function(e,t){var n=t.indexOf("=");-1!==n&&(e[t.substring(0,n)]=t.substring(n+1));return e}),{})},d=function(e){var t=Object.entries(e);return 0===t.length?"":t.map((function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];return"".concat(n,"=").concat(encodeURIComponent(o))})).join("&")},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1)),n=s()(f(t),e);return d(n)},v=(a()([f,d]),function(e){var t=f();c()(t,e);var n="#".concat(d(t)),r=history.state;location.hash=n,history.replaceState(r,"",n)}),m=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:decodeURIComponent(window.location.hash.substr(1));return f(t)[e]},g=function(e){history.replaceState(history.state,"","#".concat(p(e)))}},78710:function(e,t,n){"use strict";n.d(t,{xZ:function(){return y},Fb:function(){return h},aD:function(){return b},HM:function(){return g},Xh:function(){return m},ZP:function(){return A},vT:function(){return S},iM:function(){return d},Ly:function(){return O},tj:function(){return p},se:function(){return v}});var r,o,a,i=n(4942),c=(n(74916),n(15306),n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(75674)),u=n(64637);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=(null===(r=window.envSettings)||void 0===r?void 0:r.isAgent)||!1,d=function(){var e,t,n;return f&&!(null!==(e=window.localNetdataAgent)&&void 0!==e&&e.cloudEnabled||"disabled"!==(null===(t=window.localNetdataRegistry)||void 0===t?void 0:t.cloudStatus)&&"unavailable"!==(null===(n=window.localNetdataRegistry)||void 0===n?void 0:n.cloudStatus)||localStorage.getItem("netdataJWT"))},p=/\/(spaces|nodes|overview|alerts|dashboards|anomalies|events|cloud)\/?.*/,v=f?window.location.pathname.replace(p,""):"/",m=(0,u.lV)((null===(o=window.localNetdataRegistry)||void 0===o?void 0:o.hostname)||"agent"),g=(null===(a=window.localNetdataRegistry)||void 0===a?void 0:a.mg)||"agent",b={createdAt:"",description:"",iconURL:"",id:g,error:null,loaded:!0,name:m,slug:m,permissions:{"user:ChangeName":"user:ChangeName","user:ChangeTheme":"user:ChangeTheme","user:ChangeEmailSetting":"user:ChangeEmailSetting","user:ChangeSpaceRoomNotifications":!1,"user:AddAPIToken":"user:AddAPIToken","user:DeleteAPIToken":"user:DeleteAPIToken","user:ReplaceAPIToken":"user:ReplaceAPIToken","user:CreateSpace":"user:CreateSpace","user:UpdateVisitedNodes":"user:UpdateVisitedNodes","space:Read":"space:Read","space:UpdateMeta":"space:UpdateMeta","room:ReadUsers":"room:ReadUsers","room:ReadAll":"room:ReadAll","room:Read":"room:Read","alert:ReadAll":"alert:ReadAll","function:ReadAll":"function:ReadAll","function:ExecAll":"function:ExecAll","function:Exec":"function:Exec","function:ExecPrivileged":"function:ExecPrivileged","feed:ReadBasic":"feed:ReadBasic","feed:ReadManagement":"feed:ReadManagement","billing:ReadAll":"billing:ReadAll","billing:ReadBasic":"billing:ReadBasic","visitedNodes:Update":"visitedNodes:Update","visitedNodes:ReadAll":"visitedNodes:ReadAll"}},h="local",y=l(l({},c.Z),{},{id:h,slug:h,name:h,loaded:!0,fullyLoaded:!0,spaceId:g,untouchable:!1}),S="overview",O=function(e){return f&&e===g},A=f},2145:function(e,t,n){"use strict";var r=n(15861),o=n(64687),a=n.n(o),i=(n(92222),n(47941),n(67294));t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n="refreshed-after-lazy-import",o=t?"".concat(t,"-").concat(n):n;return(0,i.lazy)((0,r.Z)(a().mark((function t(){var n,r;return a().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=JSON.parse(window.sessionStorage.getItem(o)||"false"),t.prev=1,t.next=4,e();case 4:return r=t.sent,window.sessionStorage.setItem(o,"false"),t.abrupt("return",r);case 9:if(t.prev=9,t.t0=t.catch(1),n){t.next=14;break}return window.sessionStorage.setItem(o,"true"),t.abrupt("return",window.location.reload());case 14:throw t.t0;case 15:case"end":return t.stop()}}),t,null,[[1,9]])}))))}},66152:function(e,t,n){"use strict";n.d(t,{Tg:function(){return v},k5:function(){return p},v:function(){return d}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(71002),o=n(4942);n(74916),n(15306),n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(26699),n(32023);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var c=[],u=function(e,t,n){return i(i({},e),{},(0,o.Z)({},function(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase()}(t),n))},s=function(e,t,n){return i(i({},e),{},(0,o.Z)({},function(e){return e.replace(/([_][a-z])/g,(function(e){return e[1].toUpperCase()}))}(t),n))},l=function(e,t,n){return i(i({},e),{},(0,o.Z)({},function(e){return e.replace(/([\s\-_][a-z])/g,(function(e){return e[1].toUpperCase()}))}(t),n))},f=function(e,t){var n=t.func,a=t.action,u=t.omit,s=void 0===u?c:u,l=t.depth,f=void 0===l?0:l;return(f-=1)?Array.isArray(e)?e.map((function(e){return n(e,{omit:s})})):"object"===(0,r.Z)(e)&&e?Object.keys(e).reduce((function(t,r){if(s.includes(r))return i(i({},t),{},(0,o.Z)({},r,e[r]));var c=n(e[r],{omit:s});return a(t,r,c)}),{}):e:e},d=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.omit,o=n.depth;return f(t,{func:e,action:u,omit:r,depth:o})},p=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.omit,o=n.depth;return f(t,{func:e,action:s,omit:r,depth:o})},v=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.omit,o=n.depth;return f(t,{func:e,action:l,omit:r,depth:o})}},26398:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(4942),o=n(29439),a=(n(74916),n(77601),n(47941),n(4723),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(52861)),i=n(46189),c=n(78710),u=(n(15306),n(92222),n(64765),n(64637)),s=(n(26699),n(32023),function(e,t,n){var r=n.includes("join-callback")?n:encodeURIComponent(n);return"".concat(t).concat(t?"&":"?","cloudRoute=").concat(e).concat(r)});function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=function(e){return function(t,n){try{if(/text\/plain/.test(n.getContentType()))throw{errorMessage:t};var r=JSON.parse(t||"{}");if(r.errorMsgKey)throw r;return e?e(r):r}catch(o){return o}}},p=function(e){return e},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=e.apply(void 0,n),a=o.catch((function(e){var t,r;if(401!==(null===e||void 0===e||null===(t=e.response)||void 0===t?void 0:t.status)||null!==e&&void 0!==e&&null!==(r=e.config)&&void 0!==r&&r.allow401)throw e;if(c.ZP){var o=window.location.origin+window.location.pathname.replace(c.tj,"");if(n[1].baseURL===window.envSettings.agentApiUrl)throw e;window.location.href=(0,u.h2)("".concat(window.envSettings.cloudUrl,"/trust?redirect_uri=").concat(encodeURIComponent(window.location.href),"&agent_uri=").concat(encodeURIComponent(o||window.envSettings.agentApiUrl)))}else{var a=window.location,i=a.pathname,l=a.search,f=a.hash;if(!/(sign-(in|up)|join-space)/.test(i))return window.location.replace((0,u.h2)("".concat(c.ZP?window.envSettings.cloudUrl:"","/sign-in").concat(s(i,l,f))))}}));return a.cancel=o.cancel,a}}((function(n){for(var r,u,s,l=arguments.length,v=new Array(l>1?l-1:0),m=1;m<l;m++)v[m-1]=arguments[m];var g=t?v:[null,v[0]],b=(0,o.Z)(g,2),h=b[0],y=b[1],S=void 0===y?{}:y,O=a.Z.CancelToken.source(),A=S.transform,w=void 0===A?p:A,k=localStorage.getItem("netdataJWT"),P=null===(r=window.localNetdataRegistry)||void 0===r?void 0:r.mg,Z=localStorage.getItem("agentJWT:".concat(P)),E=S.baseURL||i.Z.apiBaseURL||"",j=function(n,r){return t?a.Z[e](n,h,r):a.Z[e](n,r)}(n,f(f({},S),{},{baseURL:E,transformResponse:[d(w)],cancelToken:O.token},(!!k||!!Z)&&{headers:f(f(f({},null===S||void 0===S?void 0:S.headers),/netdata\.cloud/.test(E)&&{Authorization:"Bearer ".concat(k)}),E===window.envSettings.agentApiUrl&&Z&&"undefined"!==Z&&(null!==(u=window.localNetdataRegistry)&&void 0!==u&&u.xNetdataAuthHeader?{"X-Netdata-Auth":"Bearer ".concat(Z)}:{Authorization:"Bearer ".concat(Z)}))})),x=j.catch((function(e){throw e.isCancel=a.Z.isCancel(e),e}));x.cancel=function(){return O.cancel()};var T=null===(s=n.match(/\/spaces\/(.+?)\//))||void 0===s?void 0:s[1];return(0,c.Ly)(T)&&x.cancel(),x}))},m={get:v("get"),post:v("post",!0),patch:v("patch",!0),put:v("put",!0),delete:v("delete")}},16634:function(e,t){"use strict";t.Z=function(e){if(!e.response){var t=e.message||"Something went wrong";return{errorCode:500,errorMessage:t,errorMsgKey:500,status:500,statusText:t}}var n=e.response,r=n.data;return{errorCode:r.errorCode,errorMessage:r.errorMessage,errorMsgKey:r.errorMsgKey,status:n.status,statusText:n.statusText}}},28234:function(e,t,n){"use strict";n.d(t,{r:function(){return o}});n(66992),n(51532),n(41539),n(78783),n(10072),n(23042),n(99137),n(71957),n(96306),n(103),n(74592),n(58276),n(35082),n(12813),n(18222),n(38563),n(50336),n(7512),n(33948);var r=new Map([["ErrParsingRequestBody","Bad Request"],["ErrUntrustedRedirectURI","Untrusted Redirect URI"],["ErrInternalServerError","Internal Server Error"],["ErrUnauthenticated","User Not Authenticated"],["ErrInvalidLastUpdatedRange","Invalid Time Selection"],["ErrForbidden","Forbidden"],["ErrInvalidEmail","Invalid E-mail"],["ErrInvalidRedirectURI","Invalid Redirect URI"],["ErrMissingStateCookie","Missing Authentication Cookie"],["ErrIncorrectChallengeResponse","Incorrect Response"],["ErrAccountDeleted","Account Deleted!"],["ErrInvalidAccountID","Invalid Account ID"],["ErrVisitedNodeNotFound","Node Not Found"],["ErrAccountIsTheLastMemberOfAPaidSpace","Cannot delete account"],["ErrWworkspaceSlugTaken","Space Slug Unavailable"],["ErrInvalidWorkspaceName","Bad Space Name"],["ErrNotWorkspaceMember","User is not a Space member"],["ErrInvalidWorkspaceID","Invalid Space ID"],["ErrWorkspaceNotFound","No Space Found"],["ErrSpaceSlugTaken","Space Slug Unavailable"],["ErrInvalidSpaceName","Invalid Space Name"],["ErrNotSpaceMember","Not a Space Member"],["ErrForbiddenNotAdmin","Not a Space Admin"],["ErrLastSpaceAdmin","Last Admin In Space"],["ErrLastSpaceMember","Last Member In Space"],["ErrInvalidSpaceID","Bad Space ID"],["ErrInvalidMemberID","Bad Member ID"],["ErrForbiddenNotMember","Not a Member"],["ErrMissingMemberIDs","No Member IDs Given"],["ErrSpaceNotFound","Space Not Found"],["ErrSpaceMemberNotFound","Space Member Not Found"],["ErrMissingTokenIDs","Token ID Not Found"],["ErrCannotDeleteCurrentToken","You cannot delete the token in use for this session"],["ErrInvalidRole","Invalid Member Role"],["ErrCannotLeaveSpace","Cannot Leave Space"],["ErrInvalidSpaceDescription","Invalid Space Description"],["ErrInvalidEmailDomain","Invalid Email Domain"],["ErrCanNotDeletePaidSpace","Cannot delete paid space"],["ErrAgentCanceledBigResponse","Agent's response is too big"],["ErrAgentExpired","Agent is overloaded"],["ErrAgentTimeout","Timeout waiting agent response"],["ErrAlreadyClaimed","Node Already Claimed"],["ErrContextNotFound","Node doesn't have the requested context"],["ErrInternal","Internal server error"],["ErrInvalidNodeID","Invalid Node ID"],["ErrMissingNodeIDs","No Node IDs Given"],["ErrNoData","Node doesn't have data for the requested period"],["ErrNodeNotFound","Node Not Found"],["ErrNodeUnreachable","Unreachable Node"],["ErrUnreachable","Node is unreachable"],["ErrNodeInstanceNotFound","Node doesn't exist on Netdata"],["ErrRoomNameExist","Room Name Already Exists"],["ErrInvalidRoomName","Invalid Room Name"],["ErrRoomNotFound","Room Not Found"],["ErrInvalidRoomID","Invalid Room ID"],["ErrRoomNameTaken","Room Name Unavailable"],["ErrContextNotFound","Context Not Found"],["ErrNodeContextNotFound","Metric Context Not Found"],["ErrInvalidContextID","Invalid Metric Context ID"],["ErrForbiddenNotRoomMember","Not a Room Member"],["ErrUntouchableRoom","Room Cannot Be Changed"],["ErrRoomCannotBeDefault","Private Room Cannot Be Set As Default"],["ErrInvalidRoomDescription","Invalid Room Description"],["ErrRoomMemberAlreadyExists","Member Already Exists In Room"],["ErrAllowedMembersIncreased","Space member limit"],["ErrPendingInvitationsLimitReached","Pending invitations limit"],["ErrSpaceMembersLimitReached","Space member limit"],["Network Error","No internet connection"],["Timeout","Timeout"],["default","Something went wrong"]]),o=function(e){if(e)return r.has(e)?r.get(e):r.get("default")}},91008:function(e,t,n){"use strict";var r,o=n(87462),a=n(45987),i=(n(92222),n(67294)),c=n(79655),u=n(60677),s=n(57509),l=n(82351),f=["alignItems","disabledColor","color","flavour","hoverColor","visitedColor","gap","strong"],d=["Component","as","disabled","onClick","to","href","isBasic"],p=["boxProps","showToolTip","content","align","isBasic"],v={default:{initial:"primary",visited:"accent",hover:"primary"},tableLink:{initial:"text",visited:"text",hover:"primary"}},m=function(e){return(0,u.default)(e).withConfig({displayName:"anchor",componentId:"sc-oaxxs6-0"})(["",""],(function(e){var t=e.disabled,n=e.color,r=e.hoverColor,o=e.disabledColor,a=e.visitedColor,i=e.theme,c=e.flavour,u=void 0===c?"default":c;return t?function(e){var t,n,r,o=e.disabledColor,a=e.color,i=e.theme,c=e.flavour,u=e.visitedColor;return"\n color: ".concat((0,s.getColor)(o||a||(null===(t=v[c])||void 0===t?void 0:t.initial))({theme:i}),";\n ").concat(o?"":"opacity: 0.4;","\n pointer-events: none;\n\n & > svg > use {\n fill: ").concat((0,s.getColor)(o||a||(null===(n=v[c])||void 0===n?void 0:n.initial))({theme:i}),";\n }\n \n &:visited {\n color: ").concat((0,s.getColor)(u||o||a||(null===(r=v[c])||void 0===r?void 0:r.visited))({theme:i}),";\n }\n")}({disabledColor:o,color:n,theme:i,flavour:u}):function(e){var t,n,r,o,a,i,c=e.color,u=e.theme,l=e.hoverColor,f=e.visitedColor,d=e.flavour;return"\n color: ".concat((0,s.getColor)(c||(null===(t=v[d])||void 0===t?void 0:t.initial))({theme:u}),";\n & > svg > use {\n fill: ").concat((0,s.getColor)(c||(null===(n=v[d])||void 0===n?void 0:n.initial))({theme:u}),";\n }\n &:hover {\n color: ").concat((0,s.getColor)(l||(null===(r=v[d])||void 0===r?void 0:r.hover))({theme:u})," !important;\n & > svg > use {\n fill: ").concat((0,s.getColor)(l||(null===(o=v[d])||void 0===o?void 0:o.hover))({theme:u})," !important;\n }\n }\n &:visited {\n color: ").concat((0,s.getColor)(f||c||(null===(a=v[d])||void 0===a?void 0:a.visited))({theme:u}),";\n & > svg > use {\n fill: ").concat((0,s.getColor)(f||c||(null===(i=v[d])||void 0===i?void 0:i.visited))({theme:u}),";\n }\n }\n cursor:pointer\n")}({color:n,theme:i,hoverColor:r,visitedColor:a,flavour:u})}))},g=m("a"),b=m((0,i.forwardRef)((function(e,t){e.alignItems,e.disabledColor,e.color,e.flavour,e.hoverColor,e.visitedColor,e.gap,e.strong;var n=(0,a.Z)(e,f);return i.createElement(c.rU,(0,o.Z)({ref:t},n))}))),h=function(e){return e.preventDefault()};t.Z=(r=function(e){var t=e.Component,n=void 0===t?s.Text:t,r=e.as,c=void 0===r?"a":r,u=e.disabled,l=e.onClick,f=e.to,p=e.href,v=(e.isBasic,(0,a.Z)(e,d));return i.createElement(n,(0,o.Z)({as:"a"===c?g:b,disabled:u,onClick:u?h:l},f&&!u&&{to:f},p&&!u&&{href:p},v))},function(e){var t=e.boxProps,n=e.showToolTip,o=e.content,c=e.align,u=e.isBasic,f=(0,a.Z)(e,p);return n?i.createElement(l.Z,{plain:!0,content:o,align:c,isBasic:u},i.createElement(s.Box,t,i.createElement(r,f))):i.createElement(r,f)})},92501:function(e,t,n){"use strict";n.d(t,{NY:function(){return p},Pf:function(){return g}});n(41539),n(81299),n(12419);var r=n(15671),o=n(43144),a=n(60136),i=n(82963),c=n(61120),u=n(24975),s=n(67294),l=n(57509),f=n(91008);function d(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=(0,c.Z)(e);if(t){var o=(0,c.Z)(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return(0,i.Z)(this,n)}}var p=function(e){var t=e.title,n=void 0===t?"Oops, something unexpected happened!":t,r=e.message,o=void 0===r?"":r;return s.createElement(l.Flex,{alignItems:"center",justifyContent:"center","data-testid":"error-boundary",flex:!0},s.createElement(l.Flex,{flex:!0,column:!0,alignItems:"center",gap:4,width:{max:115}},s.createElement(l.H3,null,n),!!o&&s.createElement(l.Text,null,o),s.createElement(l.Text,null,"We track these errors automatically, but if the problem persists feel free to contact us with a"," ",s.createElement(f.Z,{href:"https://github.com/netdata/netdata-cloud/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},"ticket"),", a"," ",s.createElement(f.Z,{href:"https://community.netdata.cloud/",target:"_blank",rel:"noopener noreferrer"},"post in the forum")," ","or through"," ",s.createElement(f.Z,{href:"https://discord.com/invite/mPZ6WZKKG2",target:"_blank",rel:"noopener noreferrer"},"Discord"),"."),s.createElement(l.Text,null,"In the meantime you can refresh this page"),s.createElement(l.Button,{label:"Refresh",icon:"refresh",onClick:function(){return window.location.reload()},"data-ga":"error-boundary::click-reload::reload-on-error","data-testid":"error-boundary-reload"})))},v=function(e){(0,a.Z)(n,e);var t=d(n);function n(e){var o;return(0,r.Z)(this,n),(o=t.call(this,e)).state={hasError:!1},o}return(0,o.Z)(n,[{key:"componentDidCatch",value:function(e,t){console.log(e,t)}},{key:"render",value:function(){return this.state.hasError?s.createElement(p,null):this.props.children}}],[{key:"getDerivedStateFromError",value:function(e){return{hasError:!0}}}]),n}(s.Component),m=function(e){(0,a.Z)(n,e);var t=d(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,o.Z)(n)}(u.SV);m.defaultProps={fallback:p};var g=function(e){var t=window.envSettings.tracking?m:v;return function(n){return s.createElement(t,{fallback:p},s.createElement(e,n))}};t.ZP=m},14600:function(e,t,n){"use strict";n.d(t,{E:function(){return v},K:function(){return d}});var r=n(45987),o=n(4942),a=n(29439),i=(n(92222),n(41539),n(39714),n(74916),n(15306),n(85827),n(25387),n(2490),n(72608),n(4723),n(15581),n(34514),n(54747),n(2707),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),[{value:"Dateline Standard Time",abbr:"DST",text:"International Date Line West",utc:["Etc/GMT+12"]},{value:"UTC-11",abbr:"U",text:"Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{value:"Hawaiian Standard Time",abbr:"HST",text:"Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{value:"Alaskan Standard Time",abbr:"AKDT",text:"Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{value:"Pacific Standard Time (Mexico)",abbr:"PDT",text:"Baja California",utc:["America/Santa_Isabel"]},{value:"Pacific Standard Time",abbr:"PST",text:"Pacific Time (US & Canada)",utc:["America/Los_Angeles","America/Dawson","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{value:"US Mountain Standard Time",abbr:"UMST",text:"Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{value:"Mountain Standard Time (Mexico)",abbr:"MDT",text:"Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{value:"Mountain Standard Time",abbr:"MDT",text:"Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{value:"Central America Standard Time",abbr:"CAST",text:"Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{value:"Central Standard Time",abbr:"CDT",text:"Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{value:"Central Standard Time (Mexico)",abbr:"CDT",text:"Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{value:"Canada Central Standard Time",abbr:"CCST",text:"Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{value:"SA Pacific Standard Time",abbr:"SPST",text:"Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{value:"Eastern Standard Time",abbr:"EDT",text:"Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{value:"US Eastern Standard Time",abbr:"UEDT",text:"Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{value:"Venezuela Standard Time",abbr:"VST",text:"Caracas",utc:["America/Caracas"]},{value:"Paraguay Standard Time",abbr:"PYT",text:"Asuncion",utc:["America/Asuncion"]},{value:"Atlantic Standard Time",abbr:"ADT",text:"Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{value:"Central Brazilian Standard Time",abbr:"CBST",text:"Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{value:"SA Western Standard Time",abbr:"SWST",text:"Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{value:"Pacific SA Standard Time",abbr:"PSST",text:"Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{value:"Newfoundland Standard Time",abbr:"NDT",text:"Newfoundland",utc:["America/St_Johns"]},{value:"E. South America Standard Time",abbr:"ESAST",text:"Brasilia",utc:["America/Sao_Paulo"]},{value:"Argentina Standard Time",abbr:"AST",text:"Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{value:"SA Eastern Standard Time",abbr:"SEST",text:"Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{value:"Greenland Standard Time",abbr:"GDT",text:"Greenland",utc:["America/Godthab"]},{value:"Montevideo Standard Time",abbr:"MST",text:"Montevideo",utc:["America/Montevideo"]},{value:"Bahia Standard Time",abbr:"BST",text:"Salvador",utc:["America/Bahia"]},{value:"UTC-02",abbr:"U",text:"Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{value:"Mid-Atlantic Standard Time",abbr:"MDT",text:"Mid-Atlantic - Old",utc:[]},{value:"Azores Standard Time",abbr:"ADT",text:"Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{value:"Cape Verde Standard Time",abbr:"CVST",text:"Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{value:"Morocco Standard Time",abbr:"MDT",text:"Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{value:"UTC",abbr:"UTC",text:"Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{value:"GMT Standard Time",abbr:"GMT",text:"Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{value:"GMT Standard Time",abbr:"GDT",text:"Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{value:"Greenwich Standard Time",abbr:"GST",text:"Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{value:"W. Europe Standard Time",abbr:"WEDT",text:"Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{value:"Central Europe Standard Time",abbr:"CEDT",text:"Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{value:"Romance Standard Time",abbr:"RDT",text:"Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{value:"Central European Standard Time",abbr:"CEDT",text:"Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{value:"W. Central Africa Standard Time",abbr:"WCAST",text:"West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{value:"Namibia Standard Time",abbr:"NST",text:"Windhoek",utc:["Africa/Windhoek"]},{value:"GTB Standard Time",abbr:"GDT",text:"Athens, Bucharest",utc:["Europe/Athens","Asia/Nicosia","Europe/Bucharest","Europe/Chisinau"]},{value:"Middle East Standard Time",abbr:"MEDT",text:"Beirut",utc:["Asia/Beirut"]},{value:"Egypt Standard Time",abbr:"EST",text:"Cairo",utc:["Africa/Cairo"]},{value:"Syria Standard Time",abbr:"SDT",text:"Damascus",utc:["Asia/Damascus"]},{value:"E. Europe Standard Time",abbr:"EEDT",text:"E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"South Africa Standard Time",abbr:"SAST",text:"Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{value:"FLE Standard Time",abbr:"FDT",text:"Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{value:"Turkey Standard Time",abbr:"TDT",text:"Istanbul",utc:["Europe/Istanbul"]},{value:"Israel Standard Time",abbr:"JDT",text:"Jerusalem",utc:["Asia/Jerusalem"]},{value:"Libya Standard Time",abbr:"LST",text:"Tripoli",utc:["Africa/Tripoli"]},{value:"Jordan Standard Time",abbr:"JST",text:"Amman",utc:["Asia/Amman"]},{value:"Arabic Standard Time",abbr:"AST",text:"Baghdad",utc:["Asia/Baghdad"]},{value:"Kaliningrad Standard Time",abbr:"KST",text:"Kaliningrad",utc:["Europe/Kaliningrad"]},{value:"Arab Standard Time",abbr:"AST",text:"Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{value:"E. Africa Standard Time",abbr:"EAST",text:"Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{value:"Moscow Standard Time",abbr:"MSK",text:"Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{value:"Samara Time",abbr:"SAMT",text:"Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{value:"Iran Standard Time",abbr:"IDT",text:"Tehran",utc:["Asia/Tehran"]},{value:"Arabian Standard Time",abbr:"AST",text:"Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{value:"Azerbaijan Standard Time",abbr:"ADT",text:"Baku",utc:["Asia/Baku"]},{value:"Mauritius Standard Time",abbr:"MST",text:"Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{value:"Georgian Standard Time",abbr:"GET",text:"Tbilisi",utc:["Asia/Tbilisi"]},{value:"Caucasus Standard Time",abbr:"CST",text:"Yerevan",utc:["Asia/Yerevan"]},{value:"Afghanistan Standard Time",abbr:"AST",text:"Kabul",utc:["Asia/Kabul"]},{value:"West Asia Standard Time",abbr:"WAST",text:"Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{value:"Yekaterinburg Time",abbr:"YEKT",text:"Yekaterinburg",utc:["Asia/Yekaterinburg"]},{value:"Pakistan Standard Time",abbr:"PKT",text:"Islamabad, Karachi",utc:["Asia/Karachi"]},{value:"India Standard Time",abbr:"IST",text:"Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata"]},{value:"India Standard Time",abbr:"IST",text:"Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Calcutta"]},{value:"Sri Lanka Standard Time",abbr:"SLST",text:"Sri Jayawardenepura",utc:["Asia/Colombo"]},{value:"Nepal Standard Time",abbr:"NST",text:"Kathmandu",utc:["Asia/Kathmandu"]},{value:"Central Asia Standard Time",abbr:"CAST",text:"Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{value:"Bangladesh Standard Time",abbr:"BST",text:"Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{value:"Myanmar Standard Time",abbr:"MST",text:"Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{value:"SE Asia Standard Time",abbr:"SAST",text:"Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{value:"N. Central Asia Standard Time",abbr:"NCAST",text:"Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{value:"China Standard Time",abbr:"CST",text:"Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{value:"North Asia Standard Time",abbr:"NAST",text:"Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{value:"Singapore Standard Time",abbr:"MPST",text:"Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{value:"W. Australia Standard Time",abbr:"WAST",text:"Perth",utc:["Australia/Perth","Antarctica/Casey"]},{value:"Taipei Standard Time",abbr:"TST",text:"Taipei",utc:["Asia/Taipei"]},{value:"Ulaanbaatar Standard Time",abbr:"UST",text:"Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{value:"North Asia East Standard Time",abbr:"NAEST",text:"Irkutsk",utc:["Asia/Irkutsk"]},{value:"Japan Standard Time",abbr:"JST",text:"Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{value:"Korea Standard Time",abbr:"KST",text:"Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{value:"Cen. Australia Standard Time",abbr:"CAST",text:"Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{value:"AUS Central Standard Time",abbr:"ACST",text:"Darwin",utc:["Australia/Darwin"]},{value:"E. Australia Standard Time",abbr:"EAST",text:"Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{value:"AUS Eastern Standard Time",abbr:"AEST",text:"Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{value:"West Pacific Standard Time",abbr:"WPST",text:"Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{value:"Tasmania Standard Time",abbr:"TST",text:"Hobart",utc:["Australia/Currie","Australia/Hobart"]},{value:"Yakutsk Standard Time",abbr:"YST",text:"Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{value:"Central Pacific Standard Time",abbr:"CPST",text:"Solomon Is., New Caledonia",utc:["Etc/GMT-11"]},{value:"Vladivostok Standard Time",abbr:"VST",text:"Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{value:"New Zealand Standard Time",abbr:"NZST",text:"Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{value:"UTC+12",abbr:"U",text:"Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{value:"Fiji Standard Time",abbr:"FST",text:"Fiji",utc:["Pacific/Fiji"]},{value:"Magadan Standard Time",abbr:"MST",text:"Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{value:"Kamchatka Standard Time",abbr:"KDT",text:"Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{value:"Tonga Standard Time",abbr:"TST",text:"Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{value:"Samoa Standard Time",abbr:"SST",text:"Samoa",utc:["Pacific/Apia"]}]),c=["utc"];function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l=new Date,f=function(){try{return new Intl.DateTimeFormat("default",{}).resolvedOptions().timeZone||"Etc/GMT"}catch(e){return"Etc/GMT"}},d=function(){var e={};return i.reduce((function(t,n){var r=n.utc;try{var o=new Intl.DateTimeFormat("fr",{timeZone:r[0],timeZoneName:"short"}).format(l).match(/[\u2212+].+/)||[],i=function(e){return e?e.replace("\u2212","-"):""}((0,a.Z)(o,1)[0]);if(e[i])return t.concat(s(s({},n),{},{offset:e[i]}));var c=function(e){if(!e)return"+0";var t=e.split(":");return t.length>1?"".concat(t[0]).concat((t[1]/60).toString().substr(1)):t[0]}(i);return e[i]=c,t.concat(s(s({},n),{},{offset:c}))}catch(u){return t}}),[])}().sort((function(e,t){return e.offset-t.offset})),p=function(e){return e.reduce((function(e,t){var n=t.utc,o=(0,r.Z)(t,c);return n.forEach((function(t){return e[t]=s(s({},o),{},{utc:t})})),e}),{})}(d),v=function(e,t){var n=t||("default"===e?f():e);return p[n in p?n:f()]||{}}},98469:function(e,t,n){"use strict";n.r(t),n.d(t,{isTryingToJoinWorkspace:function(){return s}});n(26699),n(32023),n(66992),n(41539),n(78783),n(33948),n(41637);var r=n(67294),o=n(89250),a=n(62200),i=n(78266),c=n(13477),u=n(33427),s=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").includes("/join-space")},l="Successfully joined space!";t.default=function(){var e=(0,c.Iy)("isAnonymous"),t=(0,o.s0)(),n=new URLSearchParams(window.location.hash.substr(1));return(0,r.useEffect)((function(){if(!e){var r=n.has("error_msg_key")?decodeURIComponent(n.get("error_msg_key")||""):null;if(r){var o=n.has("error_message")?decodeURIComponent(n.get("error_message")||""):null;r===a.Sq?(0,u.P4)(l):(0,u.P4)(o||"Error joining space",!0),t("/spaces",{replace:!0})}else(0,u.P4)(l)}}),[e]),r.createElement(i.Z,{title:"Adding you to the space..."})}},78266:function(e,t,n){"use strict";n.d(t,{H:function(){return d}});var r=n(87462),o=n(45987),a=n(67294),i=n(60677),c=n(57509),u=["title","width","height"],s=["title","body","iconProps","animate"],l=(0,i.keyframes)(["from{opacity:0.4;}to{opacity:1;}"]),f=(0,i.default)(c.Icon).withConfig({displayName:"loader__StyledIcon",componentId:"sc-a76ek6-0"})(["width:",";height:",";animation:",";"],(function(e){return e.width}),(function(e){return e.height}),(function(e){return e.animate?(0,i.css)([""," 1.6s ease-in infinite"],l):""})),d=function(e){var t=e.title,n=void 0===t?"Loading":t,i=e.width,c=void 0===i?"208px":i,s=e.height,l=void 0===s?"177px":s,d=(0,o.Z)(e,u);return a.createElement(f,(0,r.Z)({name:"netdata",color:"primary",title:n,"data-testid":"loading-logo",width:c,height:l},d))};t.Z=function(e){var t=e.title,n=e.body,i=e.iconProps,u=e.animate,l=void 0===u||u,f=(0,o.Z)(e,s);return a.createElement(c.Flex,(0,r.Z)({column:!0,height:"100vh",background:"mainBackground",width:"100%",justifyContent:"center",alignItems:"center"},f),a.createElement(d,(0,r.Z)({},i,{animate:l})),t&&a.createElement(c.H3,{color:"text",margin:[1,0,0]},t),n&&a.createElement(c.Text,{color:"text",margin:[4.5,0,0]},n))}},74855:function(e,t,n){"use strict";n.d(t,{P_:function(){return l},sc:function(){return d},t_:function(){return f}});var r=n(87462),o=n(45987),a=n(67294),i=n(57509),c=n(28234),u=["errorCode","errorMessage","errorMsgKey"],s={success:"success",error:"error",warning:"warning",default:"border"},l=function(e){var t=e.header,n=e.text,r=e.icon,o=e.renderContent,c=e.success,u=e.error,l=e.warning,f=(c?"success":u&&"error")||l&&"warning"||"default";return a.createElement(i.Flex,{padding:[2],alignItems:"center",justifyContent:"between"},a.createElement(i.Flex,{alignItems:"center",gap:3},r&&a.createElement(i.Flex,{flex:!1},a.createElement(i.Icon,{color:s[f],name:r,size:"large"})),a.createElement(i.Flex,{column:!0,gap:1},t&&a.createElement(i.H5,{color:s[f]},t),n&&a.createElement(i.TextSmall,{color:s[f]},n),o&&o(e))),a.createElement(i.Flex,null,a.createElement(i.Icon,{name:"x",size:"large",color:s[f]})))},f=function(e){e.errorCode;var t=e.errorMessage,n=e.errorMsgKey,i=(0,o.Z)(e,u);return a.createElement(l,(0,r.Z)({error:!0,icon:"error",text:t,header:(0,c.r)(n)},i))},d=function(e){return a.createElement(l,e)}},33427:function(e,t,n){"use strict";n.d(t,{$T:function(){return s},FR:function(){return g},OU:function(){return f},P4:function(){return p},Q5:function(){return u},R6:function(){return m},aN:function(){return d},cH:function(){return b},iL:function(){return v},oG:function(){return l}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(52631),a=n(74855);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=function(e){var t={header:"Nodes",text:e},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"node"}));o.Z.success(n,{context:"showNodesNotification"})},s=function(e){var t={header:"Rooms",text:e},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showRoomsNotification"})},l=function(e){var t={header:"Room users",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Users left the room!":"Users were added to room!")},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showUsersInRoomNotification"})},f=function(e){var t={header:"Space users",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Users left the space!":"Users were added to space!")},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showUsersInSpaceNotification"})},d=function(e){var t={header:"Rooms",text:e||(arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"Rooms removed from Space!":"Rooms were added to Space!")},n=(0,a.sc)(c(c({},t),{},{success:!0,icon:"space"}));o.Z.success(n,{context:"showRoomsInSpaceNotification"})},p=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={header:t?"Error joining space":"Welcome!",text:e},r=(0,a.sc)(c(c({},n),{},{success:!t,icon:"gear"}));t?o.Z.error(r,{context:"showJoiningSpaceNotification"}):o.Z.success(r,{context:"showJoiningSpaceNotification"})},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={header:t?"Space removed":"Space added",text:e},r=(0,a.sc)(c(c({},n),{},{success:!t,icon:"gear"}));o.Z.success(r,{context:"showSpaceNotification"})},m=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={header:t?"Error creating room":"Rooms",text:e},r=(0,a.sc)(c(c({},n),{},{success:!t,icon:"gear"}));t?o.Z.error(r,{context:"showRoomCreationNotification"}):o.Z.success(r,{context:"showRoomCreationNotification"})},g=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={text:e},r=(0,a.sc)(c(c({},n),{},{text:e,success:!t,icon:"chart_added"}));t?o.Z.error(r,{context:"showDashboardCreatedNotification"}):o.Z.success(r,{context:"showDashboardCreatedNotification"})},b=function(){var e=(0,a.sc)({header:"Dashboard",text:"Invalid dashboard link. Please double-check the dashboard you are trying to access.",success:!1});o.Z.error(e,{context:"showInvalidDashboardSlugNotification"})}},52631:function(e,t,n){"use strict";n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(45987),a=n(55678),i=["context"],c=["context"];function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l={position:a.Am.POSITION.BOTTOM_RIGHT,autoClose:1e4,pauseOnFocusLoss:!1},f={};t.Z={success:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.context,r=(0,o.Z)(t,i);n&&f[n]&&(a.Am.dismiss(f[n]),delete f[n]),f[n]=a.Am.success(e,s(s({},l),r))},error:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.context,r=(0,o.Z)(t,c);n&&f[n]&&(a.Am.dismiss(f[n]),delete f[n]),f[n]=a.Am.error(e,s(s({},l),r))},dismiss:function(e){return a.Am.dismiss(e)}}},9058:function(e,t,n){"use strict";n.d(t,{Z:function(){return h},e:function(){return b}});var r=n(4942),o=n(29439),a=(n(41539),n(15581),n(2490),n(34514),n(54747),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(67294)),i=n(33937),c=n(48286),u=n(25382),s=n(24298),l=n(95248),f=n(74059),d=n(58591),p=n(14600);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=(0,a.createContext)(null),b=function(){return(0,a.useContext)(g)},h=function(e){var t,n=e.children,r=(0,i.R)("theme");r=r&&"unspecified"!==r?r:"dark";var v=(0,l.I0)(),b=(0,o.Z)(v,2),h=b[0],y=h.after,S=h.before,O=h.utc,A=h.highlight,w=b[1],k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.after,n=e.before;return(0,a.useMemo)((function(){if(t=+t,n=+n,!isNaN(t)&&!isNaN(n)&&t&&n)return{type:"highlight",range:[Math.floor(t/1e3),Math.ceil(n/1e3)]}}),[t,n])}(A),P=(0,a.useMemo)((function(){return{after:y<0?y:Math.floor(y/1e3),before:y<0?0:Math.ceil(S/1e3)}}),[y,S]),Z=(0,f.Q6)(),E=(0,a.useMemo)((function(){var e=function(){var e=(0,d.m$)().utc;return(0,p.E)("default",e).utc}(),t=(0,u.Z)({attributes:m(m({theme:r,timezone:e,overlays:m({},k&&{highlight:k})},P),{},{agent:Z,width:.8*window.innerWidth,expandable:!1})});return window.netdataSDK=t,t}),[]);(0,c.Z)((function(){E.getNodes().forEach((function(e){return e.updateAttribute("theme",r)}))}),[r]),(0,c.Z)((function(){var e=E.getRoot().getAttribute("timezone");O!==e&&E.getRoot().getApplicableNodes({syncTimezone:!0}).forEach((function(e){return e.updateAttributes({timezone:O})}))}),[O]),(0,c.Z)((function(){var e=E.getRoot().getAttribute("overlays");if(k)E.getRoot().updateAttribute("overlays",m(m({},e),{},{highlight:k})),E.getRoot().getApplicableNodes({syncHighlight:!0}).forEach((function(e){return e.updateAttribute("overlays",m(m({},e.getAttribute("overlays")),{},{highlight:k}))}));else{var t=m({},e);delete t.highlight,E.getRoot().updateAttribute("overlays",t),E.getRoot().getApplicableNodes({syncHighlight:!0}).forEach((function(e){var t=m({},e.getAttribute("overlays"));delete t.highlight,e.updateAttribute("overlays",t)}))}}),[k]),(0,a.useEffect)((function(){var e=P.after,t=P.before;E.getRoot().moveX(e,t)}),[P]);var j=localStorage.getItem("netdataJWT"),x=null===(t=window.localNetdataRegistry)||void 0===t?void 0:t.mg,T=localStorage.getItem("agentJWT:".concat(x)),C=Z?T:j;return(0,a.useEffect)((function(){E.getNodes().forEach((function(e){var t;return e.updateAttributes(m(m({},null!==(t=window.localNetdataRegistry)&&void 0!==t&&t.xNetdataAuthHeader?{xNetdataBearer:C}:{bearer:C}),{},{agent:Z}))}))}),[Z,C]),(0,a.useEffect)((function(){return(0,s.unregister)(E.getRoot().onAttributeChange("after",(function(){var e=E.getRoot().getAttributes(),t=e.after,n=e.before;w({after:t<0?t:1e3*t,before:t<0?0:1e3*n})})),E.getRoot().onAttributeChange("overlays",(function(e,t){var n=e.highlight;if(n!==t.highlight){var r=null===n||void 0===n?void 0:n.range;if(r){var a=(0,o.Z)(r,2),i=a[0],c=a[1];w({highlight:{after:1e3*i,before:1e3*c}})}else w({highlight:{after:null,before:null}})}})))}),[E]),E?a.createElement(g.Provider,{value:E},n):n}},15794:function(e,t,n){"use strict";n.d(t,{k:function(){return l}});var r=n(36459),o=n(87462),a=(n(19601),n(67294)),i=n(60677),c=n(57509),u=n(33937),s={light:c.DefaultTheme,dark:c.DarkTheme,unspecified:c.DarkTheme},l=function(e,t){return function(n){var o=Object.assign({},((0,r.Z)(n),n));return a.createElement(i.ThemeProvider,{theme:s[t]||s.unspecified},a.createElement(e,o))}};t.Z=function(e){var t=(0,u.R)("theme");return a.createElement(i.ThemeProvider,(0,o.Z)({},e,{theme:s[e.theme?e.theme:t]||s.unspecified}))}},82351:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(87462),o=n(45987),a=n(67294),i=n(57509),c=["neutral","black"],u=function(e){var t=e.children,n=e.background,o=e.isBasic,u=e.padding;return a.createElement(i.Flex,(0,r.Z)({padding:u||[1.5,2],margin:[2],background:n||c,round:1,alignSelf:"start"},!o&&{width:{max:"300px"}}),a.createElement(i.TextSmall,{color:"bright"},t))},s=function(e,t){var n=t.background,r=t.isBasic,o=t.padding,i="function"===typeof e?e():e;return"string"===typeof e||r?a.createElement(u,{background:n,isBasic:r,padding:o},i):i},l=["children","content","isBasic"],f=function(e){var t=e.children,n=e.content,c=e.isBasic,u=(0,o.Z)(e,l),f=(0,a.useCallback)((function(){return s(n,{isBasic:c})}),[n]);return n?a.createElement(i.Tooltip,(0,r.Z)({plain:!0,animation:!0,content:f},u),t):t}},46189:function(e,t){"use strict";t.Z={assetsBaseURL:"".concat(window.envSettings.cloudUrl,"/static"),apiBaseURL:window.envSettings.apiUrl,demoUrl:"".concat(window.envSettings.cloudUrl,"/spaces/netdata-demo"),demoSlug:window.envSettings.demoSlug,demoFavourites:window.envSettings.demoFavourites,demoDefaultRoomViews:{default:"overview"},pollingInterval:3e4,defaultRoomView:"home",integrationsView:"integrate-anything"}},62200:function(e,t,n){"use strict";n.d(t,{$9:function(){return d},DV:function(){return s},G1:function(){return f},I3:function(){return y},Ku:function(){return p},MC:function(){return a},OI:function(){return b},R7:function(){return m},Sq:function(){return S},WV:function(){return v},_b:function(){return h},gP:function(){return i},li:function(){return o},mX:function(){return l},sf:function(){return u},t5:function(){return g},v$:function(){return c}});var r=n(2375),o="/api/v2",a="/api/v3/spaces",i=r.Z,c=20,u=22,s=13,l=["J2kdSTRJzV4","KCFFZ_qfKXk"],f="SINGLE_NODE_VIEW_PAGE",d="NODE_VIEW_PAGE",p=["info","alerts"],v={live:{statusTextColor:"primary",indicatorWrapperColor:"primary",counterColor:"primary"},stale:{statusTextColor:["green","vista"],indicatorWrapperColor:["green","vista"],counterColor:["green","vista"]},offline:{statusTextColor:"textLite",indicatorWrapperColor:"textLite",counterColor:"textLite"},unseen:{statusTextColor:"textLite",indicatorWrapperColor:"textLite",counterColor:"textLite"}},m={completed:{icon:"check",indicatorWrapperColor:"primary",textColor:"primary",text:"Completed",tooltip:"has been claimed and has successfully connected to Netdata at least once"},pending:{icon:"clock_hollow",indicatorWrapperColor:"textLite",textColor:"textLite",text:"Pending...",tooltip:"has been claimed but never connected to the Netdata."}},g=[1,39,1],b=[1,40,0],h="v1.39.1",y="v1.40.0",S="ErrSpaceMemberAlreadyExists"},87917:function(e,t,n){"use strict";n.d(t,{Jo:function(){return o},QR:function(){return a},xJ:function(){return r}});n(92222),n(57327),n(41539),n(88449),n(2490),n(59849);var r=function(e){return["admin","manager","troubleshooter","observer","billing"].concat("EarlyBird"===e?"member":[])},o=function(e){return[e["user:SetAdmin"]&&"admin",e["user:SetManager"]&&"manager",e["user:SetMember"]&&"member",e["user:SetTroubleshooter"]&&"troubleshooter",e["user:SetObserver"]&&"observer",e["user:SetBilling"]&&"billing"].filter(Boolean)},a=function(e){return[e["user:SetFromAdmin"]&&"admin",e["user:SetFromManager"]&&"manager",e["user:SetFromMember"]&&"member",e["user:SetFromTroubleshooter"]&&"troubleshooter",e["user:SetFromObserver"]&&"observer",e["user:SetFromBilling"]&&"billing"].filter(Boolean)}},80239:function(e,t,n){"use strict";n.d(t,{U:function(){return o},UV:function(){return a},VP:function(){return i},nb:function(){return r}});var r={alertStatus:"alertStatus",os:"os"},o=0,a="https://learn.netdata.cloud/docs/alerting/health-configuration-reference#edit-health-configuration-files",i={alertStatuses:{critical:0,warning:0},alertClasses:{Errors:0,Latency:0,Utilization:0,Workload:0}}},71992:function(e,t,n){"use strict";n.d(t,{h:function(){return v},Z:function(){return g}});var r=n(29439),o=n(87462),a=n(45987),i=(n(92222),n(67294)),c=n(57509),u=n(46667),s=n(60677),l=(0,s.default)(c.Drop).attrs({align:{top:"bottom",left:"left"},animation:!0,background:"dropdown",column:!0,margin:[.5,0,0],overflow:{vertical:"auto"},padding:[2,0],round:1}).withConfig({displayName:"styled__Drop",componentId:"sc-1x9syns-0"})(["box-sizing:content-box;"]),f=(0,s.default)(c.TextSmall).withConfig({displayName:"styled__DropdownItemClickable",componentId:"sc-1x9syns-1"})(["cursor:pointer;pointer-events:",";"," &:hover{background-color:",";}"],(function(e){return e.isDisabled?"none":"auto"}),(function(e){return e.isDisabled&&"color: ".concat((0,c.getColor)("textLite")(e),";")}),(0,c.getColor)("selected")),d=["children","color","disabled","icon"],p=["Component","category","context"],v=function(e){var t=e.children,n=e.color,r=void 0===n?"text":n,u=e.disabled,s=e.icon,l=(0,a.Z)(e,d);return i.createElement(f,(0,o.Z)({as:c.Flex,"data-testid":"dropdownItem",gap:2,isDisabled:u,padding:[2,4]},l),i.createElement(c.Icon,{color:u?"textLite":r,"data-testid":"dropdownItem-icon",height:"16px",name:s,width:"16px"}),i.createElement(c.Text,{color:r,"data-testid":"dropdownItem-text",whiteSpace:"nowrap"},t))},m=(0,i.forwardRef)((function(e,t){var n=e.Component,r=e.category,c=e.context,u=(0,a.Z)(e,p);return i.createElement(n,(0,o.Z)({"data-ga":"".concat(r,"::").concat(c,"::options"),"data-testid":"chartOptions",icon:"nav_dots",flavour:"borderless",neutral:!0,small:!0,padding:0,ref:t,title:"Options"},u))})),g=function(e){var t=e.Component,n=void 0===t?c.Button:t,o=e.category,a=e.context,s=e.children,f=e.testId,d=(0,u.Z)(),p=(0,r.Z)(d,4),v=p[0],g=p[1],b=p[3],h=(0,i.useRef)(),y=f||"chartsDropdown";return i.createElement(i.Fragment,null,i.createElement(m,{"data-testid":"".concat(y,"-button"),category:o,context:a,onClick:g,ref:h,Component:n}),h.current&&v&&i.createElement(l,{close:b,"data-testid":y,onClickOutside:b,onEsc:b,target:h.current},s({close:b})))}},1043:function(e,t,n){"use strict";n.d(t,{aJ:function(){return C},R2:function(){return M},O9:function(){return j},iM:function(){return x},UQ:function(){return N},T4:function(){return D},So:function(){return I}});var r=n(4942),o=n(45987),a=n(15861),i=n(29439),c=n(64687),u=n.n(c),s=(n(92222),n(74916),n(64765),n(21249),n(57640),n(9924),n(15306),n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),l=n(89250),f=n(74059),d=n(17563),p=n(26398),v=n(5429),m=n(93017),g=n(68008),b=n(76201),h=n(78710),y=n(13477),S=n(94510),O=n(98469);function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?A(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var k=function(e){var t=e.cloudRoute,n=e.redirectUri;try{if(!(0,O.isTryingToJoinWorkspace)(t))return"";var r=function(e){var t=d.parse(e),n=t.error_retry||t.token?w(w({},t),{},{token:decodeURIComponent(t.token)}):d.parse(decodeURIComponent(e)),r=n.error_retry,o=n.token;return o||(o=d.parse(r).token),{inviteToken:o,spaceId:/spaces\/(.*)\/join-callback/.exec(r)[1]}}(n),o=r.inviteToken,a=r.spaceId;return"?".concat(d.stringify({token:o,space:a}))}catch(i){return console.warn("error parsing join-callback url",i),""}},P=["onSuccess","onFail"];function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var E=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).path,n=void 0===t?"/sign-up":t;if(window.envSettings.tracking)try{var r,o="".concat(n,"/thank-you");window.dataLayer.push({event:"pageview",virtualPage:"".concat(o).concat(e)}),window.posthog.setPersonPropertiesForFlags({netdata_cloud_account_created_days_ago:0}),(0,b.o)("".concat(null===(r=window)||void 0===r||null===(r=r.location)||void 0===r?void 0:r.origin).concat(o).concat(e))}catch(a){}},j=function(e){return(0,g.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return p.Z.patch("/api/v1/accounts/".concat(e),t)}),[e])},x=function(){var e=(0,l.TH)(),t=e.search,n=e.hash,r=(0,l.bS)("/sign-up"),o=(0,l.bS)("/sign-in"),c=r?r.pathname:o?o.pathname:"",f=(0,l.s0)(),d=(0,m.Z)(),v=(0,i.Z)(d,2),g=v[0],b=v[1];return(0,s.useCallback)(function(){var e=(0,a.Z)(u().mark((function e(r){var o,a,i,s,l;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.email,a=r.redirectURI,i=r.registerURI,s=r.isUnverifiedRegistration,l=r.resend,e.prev=1,e.next=4,p.Z.post("/api/v2/auth/account/magic-link",{email:o,redirectURI:a,registerURI:i,isUnverifiedRegistration:s});case 4:g({header:"Sign in email sent"}),l||(E(t,{path:c}),f("/sign-in/magic-link-sent".concat(t).concat(n),{state:{email:o}})),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),b({header:"Sign in",text:"Invalid email"});case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}(),[])},T=function(e){var t=e.authorized_origins;return(void 0===t?[]:t).map((function(e){return{id:e.id,url:e.url,lastAccessedAt:e.last_accessed_at}}),[])},C=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.onSuccess,n=e.onFail,a=(0,o.Z)(e,P),i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(0,v.Z)((function(){return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({fetch:function(){return p.Z.get("/api/v1/auth/account/origins",{transform:T})},initialValue:[],isDefaultLoading:!0,onSuccess:function(e){null===t||void 0===t||t(e)},onFail:function(e){null===n||void 0===n||n(e)}},a)}),i)},I=function(){var e=(0,s.useState)(""),t=(0,i.Z)(e,2),n=t[0],r=t[1],o=(0,s.useState)(!1),c=(0,i.Z)(o,2),l=c[0],f=c[1],d=(0,m.Z)(),v=(0,i.Z)(d,2)[1],g=(0,s.useCallback)(function(){var e=(0,a.Z)(u().mark((function e(t){var n;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),e.prev=1,e.next=4,p.Z.post("/api/v1/auth/account/origins",{origin_url:t});case 4:n=e.sent,r(n.authorized_origin_url),f(!1),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(1),v({header:"Trust URL",text:"We couldn't trust the URL"}),f(!1);case 13:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}(),[]);return[n,g,l]},D=function(e){e&&e.preventDefault();var t=(0,m.Z)(),n=(0,i.Z)(t,2)[1],r=(0,l.TH)().search,o=d.parse(r),c=o.cloudRoute,f=o.oauth,v=o.token,g=o.username,b=o.redirect_uri,h=(0,S.pi)(),y=k({cloudRoute:c,redirectUri:b});return(0,s.useCallback)((0,a.Z)(u().mark((function e(){var t;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t="/api/v2/auth/account/".concat(f||"magic-link","/register"),e.prev=1,e.next=4,p.Z.post("".concat(t).concat(y),{token:v,username:g});case 4:h(),E(r),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),n(e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])}))),[f,v,g])},N=function(){var e=(0,f.Q6)();return(0,s.useCallback)((0,a.Z)(u().mark((function e(){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(localStorage.clear(),!h.ZP){e.next=3;break}return e.abrupt("return",window.location.reload());case 3:return e.next=5,p.Z.post("/api/v1/auth/account/logout");case 5:return e.abrupt("return",window.location.replace("/sign-in"));case 6:case"end":return e.stop()}}),e)}))),[e])},M=function(){var e=(0,y.jr)(),t=N(),n=(0,m.Z)(),r=(0,i.Z)(n,2)[1];return(0,s.useCallback)((0,a.Z)(u().mark((function n(){return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,p.Z.delete("/api/v1/accounts/".concat(e));case 3:t(),n.next=9;break;case 6:n.prev=6,n.t0=n.catch(0),r(n.t0);case 9:case"end":return n.stop()}}),n,null,[[0,6]])}))),[])}},94510:function(e,t,n){"use strict";n.d(t,{pi:function(){return w}});var r=n(15861),o=n(4942),a=n(45987),i=n(64687),c=n.n(i),u=(n(47941),n(41539),n(88674),n(85827),n(25387),n(2490),n(72608),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),s=n(4480),l=n(26398),f=n(62200),d=n(78710),p=n(80239),v=["permissions","settings"];function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b={auth_type:"",avatarURL:null,createdAt:"",email:"",id:null,name:"",termsAccepted:!0,isAnonymous:!1,authorizedOrigins:[]},h={theme:"unspecified",spacePanelCollapsed:!0,alertsGrouping:p.nb.alertStatus},y=function(e){var t=e.permissions,n=e.settings,r=(0,a.Z)(e,v),o=r.id===f.gP;return{permissions:t,settings:n,user:g(g({},r),{},{isAnonymous:o,termsAccepted:o||r.termsAccepted})}},S=function(){var e,t,n=JSON.parse(localStorage.getItem("userSettings"))||{},r={user:g(g({},b),{},{id:(null===(e=window.localNetdataRegistry)||void 0===e?void 0:e.pg)||null,isLoaded:!0,isAnonymous:!0}),permissions:{},settings:g(g(g({},h),n),{},{isLoaded:!0})};if((0,d.iM)())return Promise.resolve(r);return function(){var e,a;return null===(e=t)||void 0===e||null===(a=e.cancel)||void 0===a||a.call(e),(t=l.Z.get("/api/v2/accounts/me",{transform:y,allow401:!0})).then((function(e){var t=e.data,a=t.user,i=t.permissions,c=void 0===i?[]:i,u=t.settings;return d.ZP&&a.isAnonymous?r:{user:g(g(g({},b),a),{},{isLoaded:!0}),permissions:c.reduce((function(e,t){return g(g({},e),{},(0,o.Z)({},t,t))}),{}),settings:g(g(g(g({},h),n),u),{},{isLoaded:!0})}})).catch((function(){return d.ZP?r:{user:g(g({},b),{},{isLoaded:!0}),permissions:{},settings:g(g(g({},h),n),{},{isLoaded:!0})}}))}()},O=(0,s.cn)({key:"currentUserFetcher",default:null}),A=(0,s.cn)({key:"checkAuthAtom",default:1}),w=function(){var e=(0,s.Zl)(A),t=(0,s.Zl)(O);return(0,u.useCallback)((0,r.Z)(c().mark((function n(){var r;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,S();case 2:r=n.sent,t(r),e((function(e){return e+1}));case 5:case"end":return n.stop()}}),n)}))),[])},k=(0,s.nZ)({key:"fullStateFetcher",get:function(){var e=(0,r.Z)(c().mark((function e(t){var n,r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.get,e.t0=n(O),e.t0){e.next=6;break}return e.next=5,S();case 5:e.t0=e.sent;case 6:return r=e.t0,e.abrupt("return",r);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()});t.ZP=(0,s.CG)({key:"currentUserFullState",get:function(e){return function(t){return(0,t.get)(k)[e]}}})},33335:function(e,t,n){"use strict";n.d(t,{SX:function(){return b},QB:function(){return S},M2:function(){return O},gI:function(){return y}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=(n(41539),n(85827),n(25387),n(2490),n(72608),n(47941),n(67294)),a=n(4480),i=n(41331),c=n(74059),u=n(78710),s=(0,a.xu)({key:"permissionsBySpaceId",default:{},effects:function(e){return(0,u.Ly)(e)?[function(e){var t=e.setSelf;"get"===e.trigger&&t(u.aD.permissions)}]:[]}}),l=n(87917),f=n(94510),d=(0,a.cn)({key:"userPermissions",default:(0,f.ZP)("permissions")});function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=["space:Leave","room:Create","space:InviteUser","space:RemoveUser","space:UpdateMeta","space:Delete","room:Delete","room:AddNode","node:Delete","user:ChangeRoles","room:UpdateMeta","room:Leave","room:RemoveNode","billing:Manage"],g={"space:ReadSettings":function(e){return!m.some((function(t){return!e[t]}))}},b=(0,a.CG)({key:"permissionsSelector",get:function(e){return function(t){return(0,t.get)(s(e))}},set:function(e){return function(t){var n=t.set,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};n(s(e),(function(e){return(0,i.ZP)(e,r)?e:r}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),h=function(e){var t=(0,c.th)(),n=(0,a.sJ)(b(e||t)),i=(0,a.$P)(d);return(0,o.useMemo)((function(){var e,t=v({},n);return"hasValue"===i.state&&(t=v(v({},t),i.contents)),v(v({},e=t),Object.keys(g).reduce((function(t,n){return g[n](e)?v(v({},t),{},(0,r.Z)({},n,n)):t}),{}))}),[n,i.state])},y=function(e,t){return!!h(t)[e]},S=function(){var e=h();return(0,o.useMemo)((function(){return(0,l.Jo)(e)}),[e])},O=function(){var e=h();return(0,o.useMemo)((function(){return(0,l.QR)(e)}),[e])}},33937:function(e,t,n){"use strict";n.d(t,{k:function(){return h},R:function(){return b}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(15861),o=n(29439),a=n(4942),i=n(64687),c=n.n(i),u=n(4480),s=n(23109),l=n(94510),f=(0,u.cn)({key:"currentUserSettings",default:(0,l.ZP)("settings")}),d=n(1043),p=n(13477);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=(0,u.CG)({key:"userSettings",get:function(e){return function(t){var n=(0,t.get)(f);return e?n[e]:n}},set:function(e){return function(t,n){return(0,t.set)(f,(function(t){return e?m(m({},t),{},(0,a.Z)({},e,n)):n}))}}}),b=function(e){return(0,u.sJ)(g(e))},h=function(e){var t=b(e),n=function(e){var t=(0,p.Iy)("isAnonymous"),n=(0,u.Zl)(g(e)),i=(0,p.jr)(),l=(0,d.O9)(i),f=(0,s.Z)("userSettings",{}),v=(0,o.Z)(f,2)[1];return(0,u._8)((function(o){var i=o.snapshot;return function(){var o=(0,r.Z)(c().mark((function r(o){var u,s,f,d;return c().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n(o),u=i.retain(),r.prev=2,r.next=5,i.getPromise(g());case 5:if(s=r.sent,f=m(m({},s),e?(0,a.Z)({},e,o):o),!t){r.next=10;break}return v(f),r.abrupt("return");case 10:return r.next=12,l({settings:f});case 12:r.next=20;break;case 14:return r.prev=14,r.t0=r.catch(2),r.next=18,i.getPromise(g());case 18:d=r.sent,n(e?d[e]:d);case 20:return r.prev=20,u(),r.finish(20);case 23:case"end":return r.stop()}}),r,null,[[2,14,20,23]])})));return function(e){return o.apply(this,arguments)}}()}),[e])}(e);return[t,n]}},49674:function(e,t,n){"use strict";var r=n(4480),o=n(94510);t.Z=(0,r.cn)({key:"currentUser",default:(0,o.ZP)("user")})},13477:function(e,t,n){"use strict";n.d(t,{Iy:function(){return p},KL:function(){return d},ec:function(){return g},jr:function(){return v},oH:function(){return m}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(15861),o=n(4942),a=n(64687),i=n.n(a),c=n(4480),u=n(49674),s=n(1043);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=(0,c.CG)({key:"userState",get:function(e){return function(t){var n=(0,t.get)(u.Z);return e?n[e]:n}},set:function(e){return function(t,n){(0,t.set)(u.Z,(function(t){return e?f(f({},t),{},(0,o.Z)({},e,n)):f(f({},t),n)}))}}}),p=function(e){return(0,c.sJ)(d(e))},v=function(){return(0,c.sJ)(d("id"))},m=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.shouldPersist,a=t.onSuccess,u=t.onFail,l=(0,c.Zl)(d(e)),p=v(),m=(0,s.O9)(p);return(0,c._8)((function(t){var c=t.snapshot;return function(){var t=(0,r.Z)(i().mark((function t(r){var u,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(l(r),n){t.next=3;break}return t.abrupt("return");case 3:return u=c.retain(),t.prev=4,t.next=7,m(f({},e?(0,o.Z)({},e,r):r));case 7:a&&a(),t.next=16;break;case 10:return t.prev=10,t.t0=t.catch(4),t.next=14,c.getPromise(d());case 14:s=t.sent,l(e?s[e]:s);case 16:return t.prev=16,u(),t.finish(16);case 19:case"end":return t.stop()}}),t,null,[[4,10,16,19]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,a,u])},g=function(e,t){return[p(e),m(e,t)]}},67336:function(e,t,n){"use strict";n.d(t,{B1:function(){return w},O9:function(){return P},R2:function(){return k},RO:function(){return A}});n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070);var r=n(45987),o=n(4942),a=n(29439),i=(n(41539),n(39714),n(21249),n(57640),n(9924),n(47941),n(85827),n(25387),n(2490),n(72608),n(15581),n(34514),n(54747),n(4480)),c=n(68008),u=n(93017),s=n(37518),l=n(74059),f=n(19665),d=n(47133),p=n(6811),v=n(22841),m=n(9058),g=n(45215),b=n(79619),h=n(39878),y=["pristine"];function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A=function(e,t){var n=(0,u.Z)(),r=(0,a.Z)(n,2),o=r[0],i=r[1];return(0,c.Z)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=(0,f.DB)(e,t,n);return r.then((function(){return o({header:"Dashboards",text:"Dashboard successfully created!"})})).catch((function(e){return!e.isCancel&&i(e)})),r}),[e,t])},w=function(){var e=(0,u.Z)(),t=(0,a.Z)(e,2),n=t[0],r=t[1];return(0,c.Z)((function(e){var t=e.dashboards,o=t.map((function(e){return e.id})).toString(),a=t[0].roomId,i=t[0].spaceId;return(0,f.iM)(i,a,o).then((function(){return n({header:"Dashboards",text:"Dashboards successfully deleted!"})})).catch((function(e){return!e.isCancel&&r}))}),[])},k=function(e){var t=(0,d.LJ)(e,"spaceId"),n=(0,d.LJ)(e,"roomId"),r=(0,u.Z)(),o=(0,a.Z)(r,2),i=o[0],s=o[1];return(0,c.Z)((function(){var r=(0,f.iM)(t,n,e);return r.then((function(){return i({header:"Dashboards",text:"Dashboard successfully deleted!"})})).catch((function(e){return!e.isCancel&&s(e)})),r}),[e,t,n])},P=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.onSuccess,o=t.onFail,a=(0,m.e)(),c=(0,l.th)(),u=(0,s.UL)();return(0,i._8)((function(t){var i=t.snapshot,s=t.set;return function(){s((0,d.Y3)({id:e,key:"processing"}),!0);var t=i.getLoadable((0,d.Y3)({id:e})).contents,l=i.getLoadable((0,p.sX)({id:e,key:"layout"})).contents,m=i.getLoadable((0,v.oz)({id:e})).contents,S=(0,g.ZO)(a,e),A={version:t.version+1,name:t.name,snapshot:{uiState:l,items:Object.keys(m).map((function(e){if(!S||"text"===m[e].type)return O({},m[e]);var t=S.getNode({cardId:e},{inherit:!1},S.getChildren()).getAttributes(),n=t.pristine,o=(0,r.Z)(t,y),a=Object.keys(n).reduce((function(e,t){return e[t]=o[t],e}),O({},m[e]));return O(O({},m[e]),a)}))}},w=(0,f.Y)(c,u,e,A);return w.then((function(e){var t=e.data,r=t.createdAt,o=t.id,a=t.name,i=t.roomID,c=t.slug,u=t.spaceID,l=t.updatedAt,f=t.version,m=(0,b.m)(t).cards;s((0,v.oz)({id:o}),m),s((0,d.Y3)({id:o}),(function(e){return O(O({},e),{},{createdAt:r,id:o,name:a,roomId:i,slug:c,spaceId:u,updatedAt:l,version:f,processing:!1})})),s(h.UU,c),s((0,h.c7)([u,i,c]),o),s((0,p.Kl)(o)),S&&Object.keys(m).forEach((function(e){"text"!==m[e].type&&S.getNode({cardId:e}).removePristine()})),n&&n(t)})).catch((function(t){throw s((0,d.Y3)({id:e,key:"processing"},!1)),o&&o(t),t})),w}}))}},97723:function(e,t,n){"use strict";n.d(t,{CO:function(){return I},Di:function(){return T},EW:function(){return x},Kq:function(){return Z},Zj:function(){return j},jN:function(){return E},qN:function(){return C}});var r=n(15861),o=n(93433),a=n(4942),i=n(64687),c=n.n(i),u=(n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(57327),n(88449),n(59849),n(15581),n(34514),n(54747),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(67294)),s=n(4480),l=n(28721),f=n(54227),d=n(5934),p=n(44850),v=n(98475),m=n(47133),g=n(6811),b=n(22841),h=n(19665),y=n(67336);function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return O(O(O({},p.js),p.v),{},{id:(0,l.Z)(),type:"chart",contextScope:e},t)},w=function(e){return function(t,n){var r=t.reduce((function(e,t){var n=t.y+t.h;return n>e?n:e}),0);return[].concat((0,o.Z)(t),[O(O({},e),{},{i:n,y:r})])}},k=w(v.Mk),P=w(v.b1),Z=function(e){return(0,s._8)((function(t){var n=t.set;return function(){var t=(0,l.Z)(),r=O(O(O({},p.js),p.Xw),{},{id:t,type:"text",editing:!0});n((0,m.Y3)({id:e,key:"cardIds"}),(function(e){return[].concat((0,o.Z)(e),[t])})),n((0,g.Fu)(e),(function(e){return P(e,t)})),n((0,b.oz)({id:e,resourceId:t}),r)}}))},E=function(e){return(0,s._8)((function(t){var n=t.set;return function(t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},a=A(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),i=a.id;n((0,m.Y3)({id:e,key:"cardIds"}),(function(e){return[].concat((0,o.Z)(e),[i])})),n((0,g.Fu)(e),(function(e){return k(e,i)})),n((0,b.oz)({id:e,resourceId:i}),a),r()}}))},j=function(e,t){return(0,s._8)((function(n){var r=n.set;return function(){r((0,m.Y3)({id:e,key:"cardIds"}),(function(e){return e.filter((function(e){return e!==t}))})),r((0,g.Fu)(e),(function(e){return e.filter((function(e){return e.i!==t}))})),r((0,b.oz)({id:e}),(function(e){var n=O({},e);return delete n[t],n}))}}))},x=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,i=(0,y.RO)(e,t);return(0,s._8)((function(n){var u=n.set;return function(){var n=(0,r.Z)(c().mark((function n(r){var s,l,f,p,v=arguments;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=v.length>1&&void 0!==v[1]?v[1]:o,n.prev=1,n.next=4,i(r);case 4:l=n.sent,f=l.data,p=O(O(O({},r),{},{spaceId:e,roomId:t},f),{},{loaded:!0}),u((0,m.lz)(f.id),p),u((0,d.$3)(t),p),s&&s(p),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(1),a?a(r):console.warn("failed",n.t0);case 15:case"end":return n.stop()}}),n,null,[[1,12]])})));return function(e){return n.apply(this,arguments)}}()}),[i,e,o,a])},T=function(e,t,n){var r=x(e,t,n);return(0,u.useCallback)((function(o,a,i){var c=A(a,i);return r({name:o},(function(r){var o;(0,h.Y)(e,t,r.id,{version:r.version+1||2,snapshot:{uiState:k([],c.id),items:[O(O({},c),{},{cardAttributes:O(O({},i),{},{id:c.id})})]}}),null===n||void 0===n||null===(o=n.onSuccess)||void 0===o||o.call(n,r)}))}),[r])},C=function(e){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.onSuccess,o=t.onFail,a=(0,f.Le)();return(0,s._8)((function(t){var i=t.snapshot,u=t.set;return function(){var t=(0,r.Z)(c().mark((function t(r){var s,l;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return s=r.ids,t.next=3,i.getPromise((0,m.NM)(s));case 3:return l=t.sent,t.prev=4,t.next=7,e({dashboards:l});case 7:l.forEach((function(e){var t=e.id,n=e.roomId;u((0,m._d)(t)),u((0,d.Mg)(n),[t]),a(t)})),n&&n(l),t.next=14;break;case 11:t.prev=11,t.t0=t.catch(4),o?o(l):console.warn("failed",t.t0);case 14:case"end":return t.stop()}}),t,null,[[4,11]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,o])}((0,y.B1)(),e)},I=function(e,t){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,i=(0,m.LJ)(e,"spaceId"),u=(0,m.LJ)(e,"roomId"),l=(0,f.Le)();return(0,s._8)((function(n){var i=n.snapshot,s=n.set;return(0,r.Z)(c().mark((function n(){var r;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,i.getPromise((0,m.Y3)({id:e}));case 2:return r=n.sent,n.prev=3,n.next=6,t();case 6:s((0,m._d)(e)),s((0,d.Mg)(u),[e]),l(e),o&&o(r),n.next=15;break;case 12:n.prev=12,n.t0=n.catch(3),a?a(r):console.warn("failed",n.t0);case 15:case"end":return n.stop()}}),n,null,[[3,12]])})))}),[t,i,u,e,o,a])}(e,(0,y.R2)(e),t)}},19665:function(e,t,n){"use strict";n.d(t,{AK:function(){return c},DB:function(){return a},Y:function(){return o},iM:function(){return i}});n(92222);var r=n(26398),o=function(e,t,n,o){return r.Z.patch("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards/").concat(n),o)},a=function(e,t,n){return r.Z.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards"),n)},i=function(e,t,n){return r.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards?dashboard_ids=").concat(n))},c=function(e,t,n){return r.Z.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards/").concat(n))}},44850:function(e,t,n){"use strict";n.d(t,{Xw:function(){return a},js:function(){return i},v:function(){return o}});var r=n(4480),o={pristine:{},id:null},a={pristine:{},id:null,text:"<p><br/></p>",editing:!1},i={id:"",type:""};t.ZP=(0,r.xu)({key:"dashboardCards",default:{}})},22841:function(e,t,n){"use strict";n.d(t,{IT:function(){return d},I_:function(){return f},_q:function(){return l},oz:function(){return u}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(4480),a=n(44850);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=(0,o.CG)({key:"dashboardCardsState",get:function(e){var t=e.id,n=e.resourceId;return function(e){var r=(0,e.get)((0,a.ZP)(t));return n?r[n]||a.js:r}},set:function(e){var t=e.id,n=e.resourceId;return function(e,o){var i=e.set;return n?"function"===typeof o?i((0,a.ZP)(t),(function(e){return c(c({},e),{},(0,r.Z)({},n,o(e[n])))})):void i((0,a.ZP)(t),(function(e){return c(c({},e),{},(0,r.Z)({},n,c(c({},e[n]),o)))})):i((0,a.ZP)(t),o)}}}),s=(0,o.CG)({key:"dashboardCardState",get:function(e){var t=e.id,n=e.resourceId,r=e.key;return function(e){var o=(0,e.get)(u({id:t,resourceId:n}));return r?o[r]:o}},set:function(e){var t=e.id,n=e.resourceId,o=e.key;return function(e,a){return(0,e.set)(u({id:t,resourceId:n}),(0,r.Z)({},o,a))}}}),l=function(e,t){return(0,o.sJ)(u({id:e,resourceId:t}))},f=function(e,t,n){return(0,o.sJ)(s({id:e,resourceId:t,key:n}))},d=function(e,t,n){return(0,o.Zl)(s({id:e,resourceId:t,key:n}))}},98475:function(e,t,n){"use strict";n.d(t,{E3:function(){return i},Mk:function(){return a},b1:function(){return o}});var r=n(4480),o={i:null,x:0,y:0,w:3,h:4,minW:2,minH:4},a={i:null,x:0,y:0,w:10,h:9,minW:6,minH:8},i={layout:[],pristine:{}};t.ZP=(0,r.xu)({key:"dashboardLayout",default:i})},6811:function(e,t,n){"use strict";n.d(t,{sX:function(){return v},Kl:function(){return g},Fu:function(){return m},ZL:function(){return b}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=n(4480),a=n(41331);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var u=n(98475);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"pristine";return{updatePristine:function(t,n,o){if(!(n in(t[e]||{}))&&!(0,a.ZP)(t[n],o))return c(c({},t),{},(0,r.Z)({},e,c(c({},t[e]),{},(0,r.Z)({},n,t[n]))));if((0,a.ZP)(t[e][n],o)){var i=c({},t[e]);return delete i[n],c(c({},t),{},(0,r.Z)({},e,i))}return t},resetPristine:function(t){return c(c(c({},t),t[e]),{},(0,r.Z)({},e,{}))}}}(),d=f.updatePristine,p=f.resetPristine,v=(0,o.CG)({key:"dashboardLayoutState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)((0,u.ZP)(t));return n?r[n]:r}},set:function(e){return function(t,n){(0,t.set)((0,u.ZP)(e),l(l({},u.E3),{},{layout:n}))}}}),m=(0,o.CG)({key:"updateDashboardLayoutState",get:function(e){return function(t){return(0,t.get)(v({id:e,key:"layout"}))}},set:function(e){return function(t,n){(0,t.set)((0,u.ZP)(e),(function(e){return l(l({},d(e,"layout",n)),{},{layout:n})}))}}}),g=(0,o.CG)({key:"removePristineDashboardLayoutState",set:function(e){return function(t){(0,t.set)((0,u.ZP)(e),(function(e){return l(l({},e),{},{pristine:{}})}))}}}),b=((0,o.CG)({key:"removePristineDashboardLayoutState",set:function(e){return function(t){(0,t.set)((0,u.ZP)(e),(function(e){return p(e)}))}}}),function(e){var t=function(e,t){return(0,o.sJ)(v({id:e,key:t}))}(e,"layout"),n=function(e){return(0,o.Zl)(m(e))}(e);return[t,n]})},47133:function(e,t,n){"use strict";n.d(t,{Z7:function(){return k},lz:function(){return w},g4:function(){return Z},_d:function(){return P},Y3:function(){return h},NM:function(){return O},r0:function(){return C},FV:function(){return I},DS:function(){return T},HI:function(){return y},LJ:function(){return S},QF:function(){return A}});n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(29439),o=n(4942),a=(n(21249),n(57640),n(9924),n(47941),n(41539),n(64211),n(2490),n(41874),n(92222),n(67294)),i=n(4480),c=n(74059),u=n(37518),s=n(9058),l=n(6811),f=n(22841),d=n(39878),p={id:null,loaded:!1,fullyLoaded:!1,loading:!0,processing:!1,isOwner:!1,spaceSlug:"",roomSlug:"",spaceId:"",roomId:"",name:"",slug:"",version:0,createdAt:"",updatedAt:"",cardIds:[]},v=(0,i.xu)({key:"dashboard",default:p}),m=n(45215);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=(0,i.CG)({key:"dashboardState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(v(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.set;return n?"function"===typeof r?a(v(t),(function(e){return b(b({},e),{},(0,o.Z)({},n,r(e[n])))})):void a(v(t),(function(e){return b(b({},e),{},(0,o.Z)({},n,r))})):a(v(t),b(b({},p),r))}}}),y=function(e){var t=e.id,n=e.key;return(0,i.FV)(h({id:t,key:n}))},S=function(e,t){return(0,i.sJ)(h({id:e,key:t}))},O=(0,i.CG)({key:"dashboardsState",get:function(e){return function(t){var n=t.get;return e.map((function(e){return n(h({id:e}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),A=function(e){return(0,i.sJ)(O(e))},w=(0,i.CG)({key:"dashboardInitializeState",get:function(e){return function(t){return(0,t.get)(v(e))}},set:function(e){return function(t,n){var r=t.set;r(h({id:e}),b(b({},n),{},{loaded:!0}));var o=n.spaceId,a=n.roomId,i=n.slug;r((0,d.c7)([o,a,i]),e)}}}),k=(0,i.CG)({key:"dashboardFullyInitializeState",set:function(e){return function(t,n){var r=t.set,o=n.layout,a=n.dashboard,i=n.cards;r(h({id:e}),b(b({},a),{},{loaded:!0,fullyLoaded:!0,loading:!1})),r((0,l.sX)(e),o),r((0,f.oz)({id:e}),i);var c=a.spaceId,u=a.roomId,s=a.slug;r((0,d.c7)([c,u,s]),e)}}}),P=(0,i.CG)({key:"dashboardReset",set:function(e){return function(t){var n=t.get,r=t.set,o=t.reset,a=n(v(e)),i=a.spaceId,c=a.roomId,u=a.slug;o(v(e)),r(d.UU,null),o((0,d.c7)([i,c,u]))}}}),Z=(0,i.CG)({key:"dashboardLoadingState",set:function(e){return function(t,n){(0,t.set)(h({id:e,key:"loading"}),n)}}}),E=function(e){var t=e.pristine,n=void 0===t?{}:t;return 0===Object.keys(n).length},j=(0,i.CG)({key:"dashboardIsPristineState",get:function(e){return function(t){var n=(0,t.get)((0,f.oz)({id:e}));return!Object.keys(n).length||Object.keys(n).some((function(e){return E(n[e])}))}}}),x=(0,i.CG)({key:"dashboardLayoutIsPristineState",get:function(e){return function(t){var n=t.get;return E(n((0,l.sX)({id:e})))}}}),T=function(e){var t=(0,s.e)(),n=function(){var n=(0,m.ZO)(t,e);return!n||!n.getChildren().some((function(e){return t=e.getAttribute("pristine"),!(0===Object.keys(t).length);var t}))},o=(0,a.useState)(n),c=(0,r.Z)(o,2),u=c[0],l=c[1];(0,a.useEffect)((function(){return null===t||void 0===t?void 0:t.on("pristineChanged",(function(){return l(n)}))}),[t]);var f=(0,i.sJ)(j(e)),d=(0,i.sJ)(x(e));return u&&f&&d},C=function(e){var t=(0,c.th)(),n=(0,u.UL)(),r=(0,d.FP)();return(0,d.qh)(t,n,e||r)},I=function(e){var t=C();return S(t,e)}},39878:function(e,t,n){"use strict";n.d(t,{FP:function(){return i},Jh:function(){return c},UU:function(){return o},c7:function(){return a},qh:function(){return u}});var r=n(4480),o=(0,r.cn)({key:"currentDashboardSlug",default:null}),a=(0,r.xu)({key:"dashboardIdBySlug",default:""}),i=function(){return(0,r.sJ)(o)},c=function(e){return(0,r.Zl)(o,e)},u=function(e,t,n){return(0,r.sJ)(a([e,t,n]))}},45215:function(e,t,n){"use strict";n.d(t,{ZP:function(){return J},ZO:function(){return G},vL:function(){return F}});var r=n(4942),o=(n(69826),n(41539),n(31672),n(2490),n(59461),n(74916),n(4723),n(92222),n(15581),n(34514),n(54747),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(67294)),a=n(34675),i=n(74059),c=n(9058),u=n(95248),s=n(48286),l=n(47133),f=n(29439),d=n(87462),p=n(89250),v=n(64036),m=n(54576),g=n(3701),b=n(22841),h=(n(15306),n(71992)),y=n(45987),S=["category","closeParent","context","openDialog"],O=function(e){var t=e.category,n=e.closeParent,r=e.context,a=e.openDialog,i=(0,y.Z)(e,S);return o.createElement(h.h,(0,d.Z)({icon:"trashcan",onClick:function(){a(),n()},"data-ga":"".concat(t,"::click-remove::").concat(r),"data-testid":"removeChart-option"},i),"Remove")},A=n(57509),w=n(97723),k=n(97945),P=function(e){var t=e.cardId,n=e.close,r=e.id,a=(0,b.I_)(r,t),i=a.nodeId,c=a.chartId,u=(0,k.bV)(i,"name"),s=(0,w.Zj)(r,t);return o.createElement(A.ConfirmationDialog,{"data-ga":"remove-chart-dialog","data-testid":"removeChartDialog",handleConfirm:s,handleDecline:n,message:o.createElement(o.Fragment,null,"You are about to remove ",o.createElement("strong",null,c),u&&o.createElement(o.Fragment,null," ","of node ",o.createElement("strong",null,u)),".",o.createElement("br",null),"Are you sure you want to continue?"),title:"Remove chart"})},Z=n(46667),E="chart-options",j="custom-dashboard",x=function(e){var t=e.id,n=e.cardId,r=e.onClick,a=(0,p.s0)(),i=(0,b.I_)(t,n,"chartId"),c=(0,l.LJ)(t),u=c.spaceSlug,s=c.roomSlug;return o.createElement(h.h,{icon:"line_chart",onClick:function(){r();var e,t=(e=i,"".concat("chart_").concat(e.replace(/ /g,"_").replace(/:/g,"_").replace(/\(/g,"_").replace(/\)/g,"_").replace(/\./g,"_").replace(/\//g,"_")));a("/spaces/".concat(u,"/rooms/").concat(s,"/overview#chartName=").concat(t))},"data-ga":"".concat(E,"::click-go-to-chart::").concat(j),"data-testid":"chart-goToChart"},"Go to Chart")},T=(0,o.forwardRef)((function(e,t){return o.createElement(g.Button,(0,d.Z)({},e,{icon:o.createElement(g.default,{svg:v.Z,size:"16px"}),ref:t}))})),C=function(){var e=(0,Z.Z)(),t=(0,f.Z)(e,4),n=t[0],r=t[2],a=t[3],i=(0,m.useAttributeValue)("cardId"),c=(0,m.useAttributeValue)("dashboardId");return o.createElement(o.Fragment,null,o.createElement(h.Z,{Component:T,category:E,context:j,testId:"chartDropdown"},(function(e){var t=e.close;return o.createElement(o.Fragment,null,o.createElement(x,{id:c,cardId:i,onClick:t}),o.createElement(O,{cardId:i,category:E,closeParent:t,context:j,"data-testid":"chart-remove",id:c,openDialog:r}))})),n&&o.createElement(P,{cardId:i,close:a,id:c}))},I=n(60677),D=n(16071),N=(0,I.default)(g.Button).withConfig({displayName:"drag__DragButton",componentId:"sc-1t95u2-0"})(["cursor:",";"],(function(e){return e.grabbing?"grabbing":"grab"})),M=function(e){var t=(0,m.useAttributeValue)("onMouseDownDrag"),n=(0,m.useAttributeValue)("onMouseUpDrag"),r=(0,m.useAttributeValue)("onTouchEndDrag"),a=(0,Z.Z)(),i=(0,f.Z)(a,4),c=i[0],u=i[2],s=i[3];return o.createElement(N,(0,d.Z)({icon:o.createElement(g.default,{svg:D.Z,size:"16px"}),title:"Drag & rearrange","data-testid":"chartHeaderToolbox-drag"},e,{onMouseDown:function(){u(),t.apply(void 0,arguments)},onMouseUp:function(){s(),n.apply(void 0,arguments)},onTouchEnd:function(){s(),r.apply(void 0,arguments)},grabbing:c}))},R=n(96415),_=n(70873),U=n(43460);function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var G=function(e,t){return e&&e.getRoot().getChildren().find((function(e){return e.match({id:t})}))},F=function(e){return function(t){return"dashboard-page::".concat(e.getAttribute("id"),"::").concat(t)}},J=function(e){var t=(0,l.LJ)(e),n=t.spaceId,r=t.roomId,f=(0,c.e)(),d=(0,u.TA)({extraKey:"dashboard"}),p=(0,i.Q6)();(0,o.useMemo)((function(){if(f){var t=G(f,e);t||(t=f.makeContainer({attributes:B(B({},f.getRoot().getAttributes()),{},{id:e,navigation:"pan",nodesScope:d,enabledHeightResize:!1,overlays:{proceeded:{type:"proceeded"}},host:p?"".concat(window.envSettings.agentApiUrl,"/api/v2"):"".concat(window.envSettings.apiUrl,"/api/v3/spaces/").concat(n,"/rooms/").concat(r),leftHeaderElements:[C,a.default],toolboxElements:[U.default,R.default,_.default,M]})}),f.appendChild(t))}}),[f,e]),(0,s.Z)((function(){if(f){var t=G(f,e);t&&t.getNodes().forEach((function(e){return e.updateAttribute("nodesScope",d)}))}}),[f,r,d]),(0,o.useEffect)((function(){return function(){var t=G(f,e);t&&t.destroy()}}),[f,r])}},79619:function(e,t,n){"use strict";n.d(t,{m:function(){return Z}});var r=n(15861),o=n(29439),a=n(71002),i=n(4942),c=n(45987),u=n(64687),s=n.n(u),l=(n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(85827),n(47941),n(23157),n(73210),n(25387),n(2490),n(72608),n(21249),n(57640),n(9924),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),f=n(4480),d=n(98475),p=n(44850),v=n(19665),m=n(47133),g=["i"],b=["aggregationMethod","chartType","dimensions","selectedDimensions","filteredLabels","selectedLabels","selectedNodeIds","selectedNodes","selectedInstances","chartId","groupBy","groupingMethod","id","host"],h=["type","cardID","id","chartID","chartId","nodeID","nodeId","chartMetadata","context","attributes","cardAttributes","contextScope","text"];function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var O={TextCard:"text",ChartCard:"chart",compositeChart:"chart",chart:"chart",text:"text"},A=new Set(["text","chart"]),w=["x","y","h","w"],k=function(e,t){var n,r,o=t.i,a=(0,c.Z)(t,g),i=null!==(n=e[o])&&void 0!==n&&n.type&&"text"!==(null===(r=e[o])||void 0===r?void 0:r.type)?d.Mk:d.b1;return w.reduce((function(e,t){return e[t]=a[t]||0===a[t]?a[t]:i[t],e}),S(S({},i),{},{i:o}))},P=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.trim().startsWith("<p>")?e:"<p>".concat(e,"</p>")},Z=function(e){var t=e.id,n=e.name,r=e.slug,o=e.version,i=e.createdAt,u=e.updatedAt,s=e.snapshot,l=s.uiState,f=s.items||[],d=[],v=f.reduce((function(e,t){var n=t.type,r=t.cardID,o=t.id,i=void 0===o?r:o,u=t.chartID,s=t.chartId,l=void 0===s?u:s,f=t.nodeID,v=t.nodeId,m=void 0===v?f:v,g=t.chartMetadata,y=t.context,w=t.attributes,k=t.cardAttributes,Z=void 0===k?w:k,E=t.contextScope,j=t.text,x=(0,c.Z)(t,h);if(E=E||[y||(null===g||void 0===g?void 0:g.context)||l],n=O[n]||n,e[i]={id:i,type:n,nodeId:m,contextScope:E},A.has(n)){if(d.push(i),"text"===n)return e[i]=S(S(S({},p.Xw),Z),{},{text:P(j||Z.text)},e[i]),e;e[i]=function(e){var t=e.aggregationMethod,n=e.chartType,r=e.dimensions,o=void 0===r?[]:r,i=e.selectedDimensions,u=void 0===i?o||[]:i,s=e.filteredLabels,l=void 0===s?[]:s,f=e.selectedLabels,d=void 0===f?l||[]:f,v=e.selectedNodeIds,m=void 0===v?[]:v,g=e.selectedNodes,h=void 0===g?m||[]:g,y=e.selectedInstances,O=void 0===y?[]:y,A=e.chartId,w=e.groupBy,k=e.groupingMethod,P=e.id,Z=(e.host,(0,c.Z)(e,b));return S(S({},p.v),{},{aggregationMethod:t||"avg",chartType:n||"line",selectedDimensions:Array.isArray(u)?u:[],selectedLabels:Array.isArray(d)?d:d&&"object"===(0,a.Z)(d)?Object.keys(d):[],selectedNodes:Array.isArray(h)?h:[],selectedInstances:Array.isArray(O)?O:A?[A]:[],groupBy:Array.isArray(w)?w:w?[w]:["dimension"],groupingMethod:k||"average",id:P},Z)}(S(S(S({},x),Z),{},{chartId:l},e[i]))}return e}),{});return{layout:l?l.map((function(e){return k(v,e)})):f.map((function(e){var t=e.layout;return k(v,t)})),dashboard:{id:t,name:n,slug:r,version:o,createdAt:i,updatedAt:u,cardIds:d},cards:v}};t.Z=function(e,t){var n=t.spaceId,a=t.spaceSlug,i=t.roomId,c=t.roomSlug,u=(0,l.useState)(!0),d=(0,o.Z)(u,2),p=d[0],g=d[1],b=(0,f._8)((function(t){var o=t.set;return(0,r.Z)(s().mark((function t(){var r,u,l,f,d,p;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return g(!0),o((0,m.g4)(e),!0),t.next=4,(0,v.AK)(n,i,e);case 4:r=t.sent,u=r.data,l=Z(u),f=l.layout,d=l.dashboard,p=l.cards,o((0,m.Z7)(e),{layout:f,dashboard:S(S({},d),{},{spaceSlug:a,roomSlug:c,spaceId:n,roomId:i}),cards:p}),g(!1),o((0,m.g4)(e),!1);case 10:case"end":return t.stop()}}),t)})))}));return(0,l.useEffect)((function(){e&&b(e)}),[e]),p}},44197:function(e,t,n){"use strict";n.d(t,{E:function(){return o}});var r=n(4480),o={id:null,avatarURL:null,deactivated:!1,email:"",joinedAt:null,name:"",role:""};t.Z=(0,r.cn)({key:"member",default:{}})},34912:function(e,t,n){"use strict";n.d(t,{Bb:function(){return p},Vr:function(){return d},W3:function(){return f},mX:function(){return l}});var r=n(4942),o=(n(21249),n(57640),n(9924),n(41539),n(15581),n(2490),n(34514),n(54747),n(66992),n(33948),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4480)),a=n(38609),i=n(41331),c=n(44197);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l=(0,o.CG)({key:"memberState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(c.Z)[t]||c.E;return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,o){var a=e.set;a(c.Z,n?"function"!==typeof o?function(e){return s(s({},e),{},(0,r.Z)({},t,s(s({},e[t]),{},(0,r.Z)({},n,o))))}:function(e){return s(s({},e),{},(0,r.Z)({},t,s(s({},e[t]),{},(0,r.Z)({},n,o(e[t][n])))))}:function(e){return s(s({},e),{},(0,r.Z)({},t,s(s(s({},c.E),e[t]),o)))})}}}),f=(0,o.CG)({key:"membersState",get:function(e){return function(t){var n=t.get;return e.map((function(e){return n(l({id:e}))}))}},set:function(){return function(e,t){var n=e.set,r=(0,e.get)(c.Z);t.forEach((function(e){r[e.id]=e})),n(c.Z,r)}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),d=function(e){return(0,o.sJ)(f(e))},p=(0,o.nZ)({key:"membersInitialize",get:function(e){return(0,e.get)(c.Z)},set:function(e,t){var n=e.set,r=t.values,o=t.merge;return n(c.Z,(function(e){var t=o?(0,a.Z)(e,r):r;return(0,i.ZP)(t,e)?e:t}))}})},54227:function(e,t,n){"use strict";n.d(t,{UK:function(){return P},ZS:function(){return S},bV:function(){return O},Yy:function(){return A},Le:function(){return w},CN:function(){return k}});var r=n(4942),o=n(29439),a=n(93433),i=(n(69826),n(41539),n(31672),n(2490),n(59461),n(92222),n(57327),n(88449),n(59849),n(40561),n(21249),n(57640),n(9924),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(67294)),c=n(4480),u=n(74059),s=n(37518),l=(n(88674),n(38862),function(e){var t=e.spaceSlug,n=e.roomSlug;return"".concat(t,"-").concat(n,"-tabs")}),f=function(e,t){var n=e.spaceSlug,r=e.roomSlug,o=l({spaceSlug:n,roomSlug:r});Promise.resolve().then((function(){try{localStorage.setItem(o,JSON.stringify(t))}catch(e){}}))},d=(0,c.xu)({key:"navigation",default:function(e){var t=e.spaceSlug,n=e.roomSlug,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];try{var o=l({spaceSlug:t,roomSlug:n}),a=localStorage.getItem(o);return a?JSON.parse(a):r}catch(i){return r}}});function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,c.CG)({key:"navigationTabsState",get:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e){return(0,e.get)(d({spaceSlug:t,roomSlug:n}))}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){var o=e.set;r&&t&&n&&o(d({spaceSlug:t,roomSlug:n}),(function(e){if(e.find((function(e){var t=e.id;return r.id===t})))return e;var o=[].concat((0,a.Z)(e),[r]);return f({spaceSlug:t,roomSlug:n},o),o}))}}}),g=(0,c.CG)({key:"navigationTabsState/remove",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){(0,e.set)(d({spaceSlug:t,roomSlug:n}),(function(e){var o=e.filter((function(e,t){return t!==r}));return f({spaceSlug:t,roomSlug:n},o),o}))}}}),b=(0,c.CG)({key:"navigationTabsState/removeById",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){(0,e.set)(d({spaceSlug:t,roomSlug:n}),(function(e){var o=e.filter((function(e){return e.id!==r}));return f({spaceSlug:t,roomSlug:n},o),o}))}}}),h=(0,c.CG)({key:"navigationTabsState/reorder",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){var i=e.set,c=r.sourceIndex,u=r.destinationIndex;i(d({spaceSlug:t,roomSlug:n}),(function(e){var r=(0,a.Z)(e),i=r.splice(c,1),s=(0,o.Z)(i,1)[0];return r.splice(u,0,s),f({spaceSlug:t,roomSlug:n},r),r}))}}}),y=(0,c.CG)({key:"navigationTabsState/removeById",get:function(){return function(){return null}},set:function(e){var t=e.spaceSlug,n=e.roomSlug;return function(e,r){var o=e.set,a=r.id,i=r.slug,c=r.path;o(d({spaceSlug:t,roomSlug:n}),(function(e){var r=e.map((function(e){return e.id!==a?e:v(v({},e),{},{title:i,path:c})}));return f({spaceSlug:t,roomSlug:n},r),r}))}}}),S=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.sJ)(m({spaceSlug:e,roomSlug:t}))},O=function(e){var t=e.title,n=e.path,r=e.id,o=e.destination,a=e.type,l=void 0===a?"nodes":a,f=e.params,d=e.isReady,p=void 0===d||d,v=(0,s.A3)(),g=(0,u.uk)(),b=(0,s.vf)(),h=(0,c.Zl)(m({spaceSlug:g,roomSlug:b}));(0,i.useEffect)((function(){p&&(r&&t&&h({id:r,title:t,type:l,icon:"alerts"===l?"alarm":"node_hollow",params:f,path:"".concat(n||v,"/").concat(l,"/").concat(o)}))}),[v,t,n,r,o,l,h,p])},A=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(g({spaceSlug:e,roomSlug:t}))},w=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(b({spaceSlug:e,roomSlug:t}))},k=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(h({spaceSlug:e,roomSlug:t}))},P=function(){var e=(0,u.uk)(),t=(0,s.vf)();return(0,c.Zl)(y({spaceSlug:e,roomSlug:t}))}},18761:function(e,t,n){"use strict";n.d(t,{B3:function(){return O},BC:function(){return v},Fz:function(){return f},RX:function(){return h},Sd:function(){return b},Wy:function(){return d},XG:function(){return p},YZ:function(){return m},kq:function(){return g},op:function(){return l},yM:function(){return s}});n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var r=n(4942),o=(n(92222),n(21249),n(57640),n(9924),n(47941),n(26398)),a=n(78710),i=n(66152);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var s=function(e){return o.Z.get("/api/v1/agents/".concat(e,"/user_agent_node_access"),{transform:i.k5})},l=function(e,t,n){return o.Z.get("/api/v2/bearer_get_token?node_id=".concat(e,"&claim_id=").concat(n,"&machine_guid=").concat(t),{transform:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{token:e.token,expiration:e.expiration,bearerProtection:e.bearer_protection}}})},f=function(e){return o.Z.get("/api/v1/accounts/".concat(e,"/nodes"))},d=function(e,t){return o.Z.post("/api/v1/accounts/".concat(e,"/nodes/").concat(t,"/touch"))},p=function(e,t){return o.Z.get("/api/v1/accounts/".concat(e,"/nodes/").concat(encodeURIComponent(t)))},v=function(e,t){var n=(0,a.Ly)(t);o.Z.get(n?"/api/v1/info":"/api/v1/nodes/".concat(e,"/info"),{transform:function(t){return u(u({},t),{},{nodeId:e})},baseURL:n?window.envSettings.agentApiUrl:""})},m=function(e){return o.Z.get("/api/v1/agents/".concat(e,"/info"))},g=function(e){return o.Z.get("/api/v1/agents/".concat(e,"/user_access"),{transform:function(e){return e.authorizedNodeIDs}}).catch((function(){return{data:[]}}))},b=function(e,t){return o.Z.delete("/api/v1/accounts/".concat(e,"/nodes"),{params:{node_ids:t.join(",")}})},h=function(e,t,n,r){return o.Z.put("/api/v1/accounts/".concat(e,"/nodes/").concat(t),{name:n,urls:r})},y="*",S=[y],O=function(e,t,n){var r=n.baselineAfter,i=n.baselineBefore,c=n.highlightAfter,u=n.highlightBefore,s=n.method,l=n.options,f=n.group,d=n.nodeIds,p=n.points,v=n.context,m=n.aggregation,g=void 0===m?"avg":m,b=n.groupBy,h=void 0===b?[]:b;return(0,a.Ly)(e)?o.Z.get("".concat(window.envSettings.agentApiUrl,"/api/v2/weights"),{params:{format:"json",options:"".concat(Array.isArray(l)?l.join("|"):l,"|minify|nonzero|unaligned"),contexts:y,scope_contexts:v||y,scope_nodes:d.join("|")||y,nodes:y,instances:y,dimensions:y,labels:y,group_by:h.join("|"),aggregation:g,method:s||"ks2",time_group:f||"average",time_group_options:"",time_resampling:0,after:Math.floor(c/1e3),before:Math.floor(u/1e3),points:p,baseline_after:Math.floor(r/1e3),baseline_before:Math.floor(i/1e3)}}):o.Z.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/weights"),{selectors:{nodes:S,contexts:S,dimensions:S,labels:S,alerts:S},aggregations:{time:{time_group:f||"average",time_group_options:"",time_resampling:0},metrics:[{group_by:h,aggregation:g}]},window:{after:Math.floor(c/1e3),before:Math.floor(u/1e3),points:p,baseline:{after:Math.floor(r/1e3),before:Math.floor(i/1e3)}},scope:{nodes:d,contexts:v?[v]:S},method:s||"ks2",options:l?Array.isArray(l)?l:[l]:[],timeout:3e4})}},48854:function(e,t,n){"use strict";n.d(t,{a:function(){return o}});var r=n(4480),o={fullyLoaded:!1,loaded:!1,id:null,mg:null,nd:null,isDeleted:!1,name:"",version:"",ni:null,labels:{},hw:{architecture:"",cpuFrequency:"",cpus:"",memory:"",diskSpace:"",virtualization:"",container:""},os:{id:"",nm:"",v:"",kernel:{nm:"",v:""}},capabilities:{},state:"",isProtobufCapable:!0,urls:[],accessCount:0,lastAccessTime:"",updateSeverity:"",hasAccessibleData:!1,isLive:!1};t.Z=(0,r.cn)({key:"nodes",default:{}})},97945:function(e,t,n){"use strict";n.d(t,{$E:function(){return w},HZ:function(){return T},Hg:function(){return V},Jz:function(){return G},M2:function(){return B},Mm:function(){return j},Ne:function(){return k},Ng:function(){return U},TQ:function(){return S},WR:function(){return z},Xw:function(){return Z},Y0:function(){return R},bV:function(){return A},d$:function(){return F},e5:function(){return I},m3:function(){return K},mf:function(){return N},pG:function(){return W},zP:function(){return O}});var r=n(93433),o=n(4942),a=n(15861),i=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(57327),n(88449),n(59849),n(26699),n(32023),n(66992),n(33948),n(47941),n(82526),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(64687)),c=n.n(i),u=n(67294),s=n(4480),l=n(89250),f=n(38609),d=n(41331),p=n(96929),v=n(37518),m=n(48854),g=n(18761);function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y=(0,s.CG)({key:"nodeInfoState",get:function(e){var t=e.nodeId,n=e.spaceId;return(0,a.Z)(c().mark((function e(){var r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,g.BC)(t,n);case 3:return r=e.sent,e.abrupt("return",r.data);case 7:e.prev=7,e.t0=e.catch(0);case 9:case"end":return e.stop()}}),e,null,[[0,7]])})))}}),S=function(e,t){return(0,s.$P)(y({nodeId:e,spaceId:t}))},O=(0,s.CG)({key:"nodeState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(m.Z)[t]||m.a;return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.set;return n?"function"===typeof r?a(m.Z,(function(e){var a=e[t]||m.a;return h(h({},e),{},(0,o.Z)({},t,h(h({},a),{},(0,o.Z)({},n,r(a[n])))))})):void a(m.Z,(function(e){var a=e[t]||m.a;return h(h({},e),{},(0,o.Z)({},t,h(h({},a),{},(0,o.Z)({},n,r))))})):a(m.Z,(function(e){return h(h({},e),{},(0,o.Z)({},t,h(h({},m.a),r)))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),A=function(e,t){return(0,s.sJ)(O({id:e,key:t}))},w=(0,s.CG)({key:"nodesState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.map((function(e){return n[e]||m.a}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),k=function(e){var t=(0,p.zN)();return(0,s.sJ)(w(e||t))},P=(0,s.CG)({key:"cloudNodeIdsSelector",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.reduce((function(e,t){var o;return null!==(o=n[t])&&void 0!==o&&o.nd?[].concat((0,r.Z)(e),[n[t].nd]):e}),[])}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),Z=function(e){return(0,s.sJ)(P(e||[]))},E=(0,s.CG)({key:"queryableNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t,r;return(null===(t=n[e])||void 0===t?void 0:t.isLive)||"stale"===(null===(r=n[e])||void 0===r?void 0:r.state)}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),j=function(e){var t=(0,p.zN)();return(0,s.sJ)(E(e||t))},x=(0,s.CG)({key:"liveNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t?void 0:t.isLive}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),T=function(e){var t=(0,p.zN)();return(0,s.sJ)(x(e||t))},C=(0,s.CG)({key:"staleNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return"stale"===(null===(t=n[e])||void 0===t?void 0:t.state)}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),I=function(e){var t=(0,p.zN)();return(0,s.sJ)(C(e||t))},D=(0,s.CG)({key:"offlineNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t?void 0:t.isOffline}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),N=function(e){var t=(0,p.zN)();return(0,s.sJ)(D(e||t))},M=(0,s.CG)({key:"unseenNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t?void 0:t.isUnseen}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),R=function(e){var t=(0,p.zN)();return(0,s.sJ)(M(e||t))},_=((0,s.CG)({key:"mlNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t||null===(t=t.capabilities)||void 0===t||null===(t=t.ml)||void 0===t?void 0:t.enabled}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),(0,s.CG)({key:"needUpdateNodeIdsState",get:function(e){var t=e.ids,n=e.severities,r=void 0===n?["warning","critical"]:n;return function(e){var n=(0,e.get)(m.Z);return t.filter((function(e){var t;return r.includes(null===(t=n[e])||void 0===t?void 0:t.updateSeverity)}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}})),U=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.ids,n=e.severity,r=T();return(0,s.sJ)(_(h({ids:t||r},n&&{severities:[n]})))},L=(0,s.CG)({key:"fnNodeIdsState",get:function(e){return function(t){var n=(0,t.get)(m.Z);return e.filter((function(e){var t;return null===(t=n[e])||void 0===t||null===(t=t.capabilities.funcs)||void 0===t?void 0:t.enabled}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),B=function(e){var t=(0,p.zN)();return(0,s.sJ)(L(e||t))},G=(0,s.nZ)({key:"nodesState/initialize",get:function(e){return(0,e.get)(m.Z)},set:function(e,t){var n=e.set,r=t.values,o=t.merge;return n(m.Z,(function(e){var t=o?(0,f.Z)(e,r):r;return(0,d.ZP)(t,e)?e:t}))}}),F=function(){return(0,s.sJ)(G)},J=function(){var e=(0,v.A3)();return e&&"".concat(e,"/nodes")},K=function(e){var t=J();return"".concat(t,"/").concat(e)},V=function(){var e=J();return function(t){return"".concat(e,"/").concat(t)}},z=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).alertId,n=function(){var e=(0,l.s0)(),t=J();return(0,u.useCallback)((function(n,r){e("".concat(t,"/").concat(n),r?{state:r}:"")}),[t,e])}();return(0,u.useCallback)((function(){return n(e,{alertId:t})}),[n])},W=function(){var e;return null===(e=(0,l.bS)("/spaces/:spaceSlug/rooms/:roomSlug/nodes/:nodeId"))||void 0===e||null===(e=e.params)||void 0===e?void 0:e.nodeId}},82902:function(e,t,n){"use strict";n.d(t,{Ly:function(){return s},Ud:function(){return c},V6:function(){return a},XY:function(){return u}});var r=n(29439),o=(n(74916),n(15306),n(21249),n(57640),n(9924),n(9653),n(62200)),a=function(e){return 1===e?"Node":"Nodes"},i=[1,26],c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i;if(!e||"unknown"===e)return!1;var n=function(e){return e.replace(/^v/,"").split(".")}(e).map((function(e){return Number(e)})),o=(0,r.Z)(n,3),a=o[0],c=o[1],u=o[2];return!(a&&!isNaN(a)&&!isNaN(c))||(a<t[0]||!(a>t[0])&&(c<t[1]||!(c>t[1])&&u<t[2]))},u={docker:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#docker",mac:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#macos",binpkg:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#issues-with-older-binpkg-installs",default:"https://learn.netdata.cloud/docs/agent/packaging/installer/update#updates-for-most-systems"},s=function(e){var t=e.container,n=e.os,r=e._install_type,a=e.version,i=c(a,o.OI);return t||n||r?u["docker"===t?"docker":"mac"===n?"mac":"binpkg"===r&&i?"binpkg":"default"]:u.default}},95248:function(e,t,n){"use strict";n.d(t,{dz:function(){return I},D0:function(){return U},tk:function(){return R},I0:function(){return M},by:function(){return D},wT:function(){return G},c6:function(){return L},TA:function(){return J},H7:function(){return K},Sf:function(){return _},TQ:function(){return N},XT:function(){return B}});var r={};n.r(r),n.d(r,{global:function(){return b},specific:function(){return k}});var o={};n.r(o),n.d(o,{global:function(){return j},specific:function(){return y}});n(47941),n(82526),n(57327),n(41539),n(88449),n(2490),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070);var a=n(4942),i=n(4480),c=n(37518),u=n(96929),s=n(45987),l=(n(21249),n(57640),n(9924),n(92222),n(58591)),f=n(14600),d=["after","before","correlation","utc"],p=["correlation"],v=["highlight"];function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=function(){return[function(e){(0,e.onSet)((function(e,t){var n=e.after,r=e.before,o=e.correlation,a=e.utc,i=(0,s.Z)(e,d),c=(t.correlation,(0,s.Z)(t,p));r=n<0?0:r;var u,m=(0,f.E)("default",a||c.utc).offset,b=void 0===m?"":m,h=(u=i.modalParams||c.modalParams)?Object.keys(u).map((function(e){return"".concat(e,"=").concat(u[e])})).join(","):"",y=g(g(g({},c),i),{},{after:n,before:r,offset:b,metrics_correlation:o,utc:a,modalParams:h}),S=y.highlight,O=(0,s.Z)(y,v);S.after?(0,l.xs)(g({highlight_after:S.after,highlight_before:S.before},O)):((0,l.xs)(O),(0,l.bp)(["highlight_after","highlight_before"]))}))}]},h=(n(39714),n(85827),n(25387),n(72608),n(91058),n(23157),n(74916),n(15306),{default:function(e){return e?e.split(","):[]},isPolling:function(e){return"true"===e},pollingInterval:function(e){return e?parseInt(e,10):0},sortColumn:function(e){return e},sortDirection:function(e){return e},query:function(e){return e},chartName:function(e){return e},tocSearch:function(e){return e}}),y=function(e){var t=e.key,n=e.extraKey,r=void 0===n?"":n;if(!t&&!r)return{};var o="".concat(t,"-").concat(r,"-"),a=(0,l.m$)();return Object.keys(a).reduce((function(e,t){if(!t.startsWith(o))return e;var n=t.replace(o,""),r=h[n]||h.default;return e[n]=r(a[t]),e}),{})};function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A=function(e){return e.toString()},w={default:function(e){return Array.isArray(e)?e.join(","):(e||"").toString()},isPolling:A,pollingInterval:A,sortColumn:A,sortDirection:A,query:A,chartName:A,tocSearch:A},k=function(e){var t=e.key,n=e.extraKey,r=void 0===n?"":n,o="".concat(t,"-").concat(r,"-");return[function(e){var n=e.setSelf,o=e.trigger,a=e.node,i=e.getLoadable;if("get"===o){if(Object.keys(i(a).contents).length)return;var c=(0,l.m$)();if(Object.keys(c).length)return;setTimeout((function(){return n(y({key:t,extraKey:r}))}))}},function(e){(0,e.onSet)((function(e,t){var n=O(O({},t),e),r=[],a=Object.keys(n).reduce((function(e,t){if("undefined"===typeof n[t])return r.push(o+t),e;var a=w[t]||w.default;return e[o+t]=a(n[t]),e}),{});(0,l.xs)(a),(0,l.bp)(r)}))}]},P=n(29439);n(9653);function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var j=function(){var e,t=(0,l.m$)(),n=t.after,r=void 0===n?-900:n,o=t.before,a=void 0===o?0:o,i=t.utc,c=void 0===i?"default":i,u=t.highlight_after,s=t.highlight_before,d=t.metrics_correlation,p=void 0!==d&&d,v=t.timezoneName,m=t.modal,g=void 0===m?"":m,b=t.modalTab,h=void 0===b?"":b,y=t.modalParams,S=(0,f.E)("default",c),O=S.offset,A=void 0===O?0:O,w=S.utc,k=S.text,Z=v&&"undefined"!==v?v:void 0===k?"":k,j={after:isNaN(Number(u))?Number(u):null,before:isNaN(Number(s))?Number(s):null},x=isNaN(Number(r))?-900:Number(r),T={after:x,before:x<0?0:isNaN(Number(a))?x+900:Number(a),utc:w,offset:A,timezoneName:Z,modal:g,modalTab:h};return j.after?(0,l.xs)(E({highlight_after:j.after,highlight_before:j.before,metrics_correlation:p},T)):(0,l.xs)(E({metrics_correlation:p},T)),E(E({highlight:j,correlation:"true"===p},T),{},{modalParams:(e=y,e&&e.split(",").reduce((function(e,t){var n=t.split("="),r=(0,P.Z)(n,2),o=r[0],a=r[1];return e[o]=a,e}),{}))})},x=(0,i.xu)({key:"paramsAtom",default:function(e){return(o[e.key]||y)(e)},effects:function(e){return(r[e.key]||k)(e)}});function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){(0,a.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var I=(0,i.CG)({key:"paramsState",get:function(e){var t=e.key,n=void 0===t?"global":t,r=e.extraKey,o=e.param;return function(e){var t=(0,e.get)(x({key:n,extraKey:r}));return o?t[o]:t}},set:function(e){var t=e.key,n=void 0===t?"global":t,r=e.extraKey,o=e.param;return function(e,t){(0,e.set)(x({key:n,extraKey:r}),(function(e){return"function"===typeof t?o?C(C({},e),{},(0,a.Z)({},o,t(e[o]))):C(C({},e),t(e)):o?C(C({},e),{},(0,a.Z)({},o,t)):C(C({},e),t)}))}}}),D=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,r=t.extraKey,o=t.defaultValue,a=(0,i.sJ)(I({key:n,param:e,extraKey:r}));return"undefined"===typeof a?o:a},N=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,r=t.extraKey;return(0,i.Zl)(I({key:n,param:e,extraKey:r}))},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,r=t.extraKey,o=t.defaultValue;return[D(e,{key:n,extraKey:r,defaultValue:o}),N(e,{key:n,extraKey:r})]},R=function(e,t){var n=t.extraKey,r=t.defaultValue,o=(0,c.UL)();return D(e,{key:o,extraKey:n,defaultValue:r})},_=function(e,t){var n=t.extraKey,r=(0,c.UL)();return N(e,{key:r,extraKey:n})},U=function(e,t){var n=t.extraKey,r=t.defaultValue;return[R(e,{extraKey:n,defaultValue:r}),_(e,{extraKey:n})]},L=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=e.defaultValue,o=(0,c.UL)();return D("selectedNodeIds",{key:t||o,extraKey:n,defaultValue:r})},B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=(0,c.UL)();return N("selectedNodeIds",{key:t||r,extraKey:n})},G=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=e.defaultValue;return[L({key:t,extraKey:n,defaultValue:r}),B({key:t,extraKey:n})]},F=[],J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=e.defaultValue,o=void 0===r?F:r,a=L({key:t}),i=L({key:t,extraKey:n});return null!==i&&void 0!==i&&i.length?i:null!==a&&void 0!==a&&a.length?a:o},K=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=e.extraKey,r=(0,u.zN)()||F;return J({key:t,extraKey:n,defaultValue:r})}},8018:function(e,t,n){"use strict";n.d(t,{Bl:function(){return S},GT:function(){return O},O9:function(){return d},R2:function(){return p},RO:function(){return m},ar:function(){return g},og:function(){return y},qn:function(){return b},tn:function(){return v},xj:function(){return h}});var r=n(84506),o=n(29439),a=(n(41539),n(88674),n(47042),n(93017)),i=n(68008),c=n(13477),u=n(74059),s=n(37518),l=n(25819),f=n(1229),d=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).silent,n=void 0!==t&&t,r=(0,s.tE)(e,"spaceId"),f=(0,a.Z)(),d=(0,o.Z)(f,2),p=d[0],v=d[1],m=(0,c.Iy)("isAnonymous"),g=(0,u.Q6)();return(0,i.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(m||g)return Promise.resolve().then((function(){return!n&&p({header:"Rooms",text:"Connect to cloud to be able to save your settings!"})}));var o=(0,l.R$)(r,e,t);return o.then((function(){return!n&&p({header:"Rooms",text:"Room successfully updated!"})})).catch((function(e){return!e.isCancel&&v(e)})),o}),[e,m,g,r])},p=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1],f=(0,s.tE)(t,"name");return(0,i.Z)((function(){var n=(0,l.GX)(e,t);return n.then((function(){return c({header:"Rooms",text:"Room ".concat(f," was successfully deleted!")})})).catch((function(e){return!e.isCancel&&u(e)})),n}),[t,e])},v=function(e,t){var n=(0,a.Z)(),u=(0,o.Z)(n,2)[1],d=(0,c.jr)(),v=(0,i.Z)((function(){var n=(0,l.EP)(e,t,d);return n.catch((function(e){return!e.isCancel&&u(e)})),n}),[e,t,d]),m=(0,f.IT)(t,"ids"),g=(0,r.Z)(m),b=g[0],h=g.slice(1),y=p(e,t),S=(0,s.tE)(t,"untouchable");return h.length||b!==d||S?v:y},m=function(e){var t=(0,a.Z)(),n=(0,o.Z)(t,2),r=n[0],c=n[1];return(0,i.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=(0,l.dB)(e,t);return n.then((function(){return r({header:"Rooms",text:"Room ".concat(t.name," was successfully created!")})})).catch((function(e){return!e.isCancel&&c(e)})),n}),[e])},g=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(n){var r=(0,l.r7)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Member".concat(n.length>1?"s":""," successfully added!")})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[e])},b=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onSuccess,u=n.onFail,f=(0,c.jr)(),d=(0,a.Z)(),p=(0,o.Z)(d,2),v=p[0],m=p[1],g=(0,s.s)(t);return(0,i.Z)((function(){var n=(0,l.r7)(e,t,[f]);return n.then((function(){g({isMember:!0}),v({header:"Rooms",text:"Successfully joined the room"}),null===r||void 0===r||r()})).catch((function(e){!e.isCancel&&m(e),null===u||void 0===u||u()})),n}),[t,g,e])},h=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(n){var r=(0,l.EP)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Member".concat(n.length>1?"s":""," successfully removed!")})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[t,e])},y=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=(0,l.Uf)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Nodes successfully added!"})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[t,e])},S=function(e){var t=(0,a.Z)(),n=(0,o.Z)(t,2),r=n[0],c=n[1];return(0,i.Z)((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=(0,l.OE)(e,t);return n.then((function(){return r({header:"Rooms",text:"Node successfully deleted!"})})).catch((function(e){return!e.isCancel&&c(e)})),n}),[e])},O=function(e,t){var n=(0,a.Z)(),r=(0,o.Z)(n,2),c=r[0],u=r[1];return(0,i.Z)((function(n){var r=(0,l.r4)(e,t,n);return r.then((function(){return c({header:"Rooms",text:"Nodes successfully removed!"})})).catch((function(e){return!e.isCancel&&u(e)})),r}),[t,e])}},25819:function(e,t,n){"use strict";n.d(t,{EP:function(){return E},Fz:function(){return b},GX:function(){return P},Mn:function(){return y},OE:function(){return x},R$:function(){return k},Uf:function(){return j},dB:function(){return A},fv:function(){return w},j2:function(){return O},mP:function(){return C},r4:function(){return T},r7:function(){return Z}});var r=n(4942),o=n(45987),a=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(92222),n(47941),n(69826),n(31672),n(59461),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),i=n(66152),c=n(53338),u=n(62200),s=n(82902),l=n(78710),f=["nm","capabilities","v"],d=["context","chartType"],p=["name"];function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var g=function(e){var t=e.nodes;return(void 0===t?[]:t).map((function(e){var t,n=e.nm,r=e.capabilities,a=e.v,l=(0,o.Z)(e,f);return m(m({name:n,version:a,hasAccessibleData:c.ce[l.state],isOffline:l.state===c.AS.offline,isUnseen:l.state===c.AS.unseen,isLive:c.ez[l.state],updateSeverity:(t=a,(0,s.Ud)(t,u.t5)?"critical":(0,s.Ud)(t,u.OI)?"warning":null),capabilities:r.reduce((function(e,t){return e[t.name]=t,e}),{})},(0,i.k5)(l)),{},{labels:l.labels||{},id:l.nd||l.mg})}))},b=function(e){var t=e.roomId,n=e.spaceId;return(0,l.Ly)(n)?a.Z.get("/api/v2/nodes",{baseURL:window.envSettings.agentApiUrl,transform:g}):a.Z.post("/api/v3/spaces/".concat(n,"/rooms/").concat(t,"/nodes"),{scope:{nodes:[]}},{transform:g})},h=function(e){var t=e.context,n=e.chartType;return m({id:t,name:t,context:t,chartType:void 0===n?"":n},(0,o.Z)(e,d))},y=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0,o=r.after,c=r.before;return(0,l.Ly)(e)?a.Z.get("/api/v2/contexts?scope_nodes=".concat(n.join("|")||"*"),{baseURL:window.envSettings.agentApiUrl,transform:function(e){var t=e.contexts,n=void 0===t?{}:t,r=e.versions,o=void 0===r?{}:r;return{results:Object.keys(n).map((function(e){return h(m(m({},(0,i.k5)(n[e])),{},{id:e,context:e}))})),versions:(0,i.k5)(o)}}}):a.Z.post("/api/v3/spaces/".concat(e,"/rooms/").concat(t,"/contexts"),{scope:{contexts:["*"],nodes:[]},selectors:{contexts:[],nodes:n},window:{after:o,before:c}},{transform:function(e){var t=e.contexts,n=void 0===t?{}:t,r=e.versions,o=void 0===r?{}:r;return{results:Object.keys(n).map((function(e){return h(m(m({},(0,i.k5)(n[e])),{},{id:e,context:e}))})),versions:(0,i.k5)(o)}}})},S=function(e,t){return function(n){return{results:n.results.map((function(n){return m(m({},n),{},{spaceId:e,roomId:t})}))}}},O=function(e,t){return a.Z.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/dashboards"),{transform:S(e,t)})},A=function(e,t){return a.Z.post("/api/v1/spaces/".concat(e,"/rooms"),t)},w=function(e,t){return a.Z.get("/api/v1/spaces/".concat(e,"/rooms/").concat(t))},k=function(e,t,n){return a.Z.patch("/api/v1/spaces/".concat(e,"/rooms/").concat(t),n)},P=function(e,t){return a.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t))},Z=function(e,t,n){return a.Z.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/members"),n)},E=function(e,t,n){return a.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/members?account_ids=").concat(n))},j=function(e,t,n){return a.Z.post("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/claimed-nodes"),n)},x=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return a.Z.delete("/api/v1/spaces/".concat(e,"/nodes"),{data:{node_ids:t}})},T=function(e,t,n){return a.Z.delete("/api/v1/spaces/".concat(e,"/rooms/").concat(t,"/claimed-nodes?node_ids=").concat(n))},C=function(e,t,n,c){var u,s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=function(e){return e.length?{node_ids:e}:{}}(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]);return e.length?e.reduce((function(e,t){var n=t.name,r=(0,o.Z)(t,p);return e.provider[n]=r,e}),{filter:m({},t),provider:{}}):{filter:m({},t),provider:{nodes:{},charts:{},spaceroom:{},alerts:{},dashboards:{}}}}(n,c);return a.Z.post("/api/v2/spaces/".concat(e,"/rooms/").concat(t,"/overview/stats"),s,{transform:(u=n,function(e){var t=(0,i.k5)(e,{depth:3}),n=t.results,o=t.providers,a=new Date;return u.reduce((function(e,t){var i=t.name,c=t.projections;return m(m({},e),{},(0,r.Z)({},i,m(m(m({},o.find((function(e){return e.provider===i}))),n["".concat(i,"Stats")]),{},{updatedAt:a},c?(0,r.Z)({},"".concat(c,"_updatedAt"),a):{})))}),{})})})}},91850:function(e,t,n){"use strict";n.d(t,{IV:function(){return c},xh:function(){return u}});var r=n(29439),o=n(4480),a=n(78710),i=n(75674),c=(0,o.cn)({key:"currentRoomSlug",default:null}),u=(0,o.xu)({key:"roomIdBySlug",default:"",effects:function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];return(0,a.Ly)(n)&&o===a.Fb?[function(e){var t=e.setSelf;"get"===e.trigger&&t(a.Fb)}]:[]}});t.ZP=(0,o.xu)({key:"room",default:i.Z,effects:function(e){return a.ZP&&e===a.Fb?[function(e){var t=e.setSelf;"get"===e.trigger&&t(a.xZ)}]:[]}})},53338:function(e,t,n){"use strict";n.d(t,{AS:function(){return c},TY:function(){return r},ce:function(){return a},ez:function(){return i},i_:function(){return o}});var r="All nodes",o="all-nodes",a={created:!1,reachable:!0,stale:!0,unreachable:!1},i={created:!0,reachable:!0,stale:!1,unreachable:!1},c={offline:"unreachable",unseen:"created",stale:"stale",live:"reachable"}},5934:function(e,t,n){"use strict";n.d(t,{oq:function(){return l},$3:function(){return v},Mg:function(){return m},ie:function(){return d},L:function(){return p}});var r=n(93433),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(26833),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(4480)),a=n(91966),i=n.n(a),c=n(47133),u=n(37518),s={ids:(0,o.xu)({key:"roomDashboardIds",default:[]}),loaded:(0,o.xu)({key:"roomDashboardsLoaded",default:!1})},l=(0,o.CG)({key:"roomDashboardState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(s[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){return(0,e.set)(s[n](t),r)}}}),f=function(e,t){return(0,o.sJ)(l({id:e,key:t}))},d=function(){var e=(0,u.UL)();return f(e,"ids")},p=function(){var e=(0,u.UL)();return f(e,"loaded")},v=(0,o.CG)({key:"roomDashboardsState/add",set:function(e){return function(t,n){var o=t.set,a=t.get,i=function(e){return a((0,c.Y3)({id:e,key:"name"}))};o(s.ids(e),(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),[n.id]))).sort((function(e,t){return i(e).localeCompare(i(t),void 0,{sensitivity:"accent"})}))}))}}}),m=(0,o.CG)({key:"roomDashboardsState/remove",set:function(e){return function(t,n){(0,t.set)(s.ids(e),(function(e){return i()(e,n)}))}}})},75674:function(e,t){"use strict";t.Z={loaded:!1,fullyLoaded:!1,id:null,isMember:!1,name:"",memberCount:null,nodeCount:null,description:"",private:!1,slug:"",spaceId:null,createdAt:"",untouchable:!0,metrics:[{id:"system.cpu",context:"system.cpu",dimensions:[],enableAllDimensions:!0,hidden:!1,title:"Total CPU",unit:"percentage"},{id:"system.load",context:"system.load",dimensions:[{id:"load15",name:"load15"}],enableAllDimensions:!1,hidden:!1,title:"Load 15",unit:"load"},{id:"mem.available",context:"mem.available",dimensions:[],enableAllDimensions:!0,hidden:!1,title:"Mem Available",unit:"MiB"},{id:"system.swap",context:"system.swap",dimensions:[{id:"free",name:"free"}],enableAllDimensions:!1,hidden:!1,title:"Swap Free",unit:"MiB"},{id:"system.io-in",context:"system.io",dimensions:[{id:"in",name:"in"}],enableAllDimensions:!1,hidden:!1,title:"Disk Reads",unit:"KiB/s"},{id:"system.io-out",context:"system.io",dimensions:[{id:"out",name:"out"}],enableAllDimensions:!1,hidden:!1,title:"Disk Writes",unit:"KiB/s"},{id:"system.net-received",context:"system.net",dimensions:[{id:"InOctets",name:"received"}],enableAllDimensions:!1,hidden:!1,title:"Network In",unit:"kilobits/s"},{id:"system.net-sent",context:"system.net",dimensions:[{id:"OutOctets",name:"sent"}],enableAllDimensions:!1,hidden:!1,title:"Network Out",unit:"kilobits/s"}]}},1229:function(e,t,n){"use strict";n.d(t,{Ci:function(){return f},r3:function(){return g},e1:function(){return p},lA:function(){return v},GA:function(){return h},IT:function(){return d}});var r=n(93433),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(26833),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(4480)),a=n(91966),i=n.n(a),c=n(34912),u=n(37518),s={ids:(0,o.xu)({key:"roomMemberIds",default:[]}),error:(0,o.xu)({key:"roomMembersError",default:null}),updatedAt:(0,o.xu)({key:"roomMembersUpdatedAt",default:""}),loaded:(0,o.xu)({key:"roomMembersLoaded",default:!1})},l=n(8018),f=(0,o.CG)({key:"roomMemberState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(s[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(s[n](t),r)}}}),d=function(e,t){return(0,o.sJ)(f({id:e,key:t}))},p=function(){var e=(0,u.UL)();return d(e,"ids")},v=function(){var e=p();return(0,c.Vr)(e)},m=(0,o.CG)({key:"roomMembersState/add",set:function(e){return function(t,n){var o=t.set,a=t.get,i=function(e){return a((0,c.mX)({id:e,key:"name"}))};o(s.ids(e),(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),(0,r.Z)(n)))).sort((function(e,t){return i(e).localeCompare(i(t),void 0,{sensitivity:"accent"})}))}))}}}),g=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onSuccess,a=n.onFail,i=(0,l.ar)(e,t);return(0,o._8)((function(e){var n=e.set;return function(e){try{i(e),n(m(t),e),r&&r(e)}catch(o){a&&a(e)}}}),[i,e,r,a])},b=(0,o.CG)({key:"roomMembersState/remove",set:function(e){return function(t,n){return(0,t.set)(s.ids(e),(function(e){return i()(e,n)}))}}}),h=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onSuccess,a=n.onFail,i=(0,l.xj)(e,t);return(0,o._8)((function(e){var n=e.set;return function(e){try{i(e),n(b(t),e),r&&r(e)}catch(o){a&&a(e)}}}),[i,e,t,r,a])}},29495:function(e,t,n){"use strict";n.d(t,{gl:function(){return w},c0:function(){return x},jN:function(){return A},xQ:function(){return O},dh:function(){return E},uA:function(){return P},VP:function(){return j},Y6:function(){return Z}});var r=n(93433),o=n(29439),a=n(15861),i=n(4942),c=n(64687),u=n.n(c),s=(n(21249),n(57640),n(9924),n(41539),n(15581),n(2490),n(34514),n(54747),n(57327),n(88449),n(59849),n(92222),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(4480)),l=n(28721),f=n(8018);n(85827),n(25387),n(72608);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v=n(75674).Z.metrics.reduce((function(e,t){return p(p({},e),{},(0,i.Z)({},t.id,t))}),{}),m={id:null,title:"",context:"",unit:"",dimensions:[],enableAllDimensions:!1,hidden:!1},g=(0,s.xu)({key:"roomMetricIds",default:Object.keys(v)}),b=(0,s.xu)({key:"roomMetrics",default:function(e){return v[e]||{}}});function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var S=(0,s.CG)({key:"roomMetricState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)(b(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var o=e.set;return n?"function"===typeof r?o(b(t),(function(e){return y(y({},e),{},(0,i.Z)({},n,r(e[n])))})):void o(b(t),(function(e){return y(y({},e),{},(0,i.Z)({},n,r))})):o(b(t),"function"===typeof r?r:y(y({},m),r))}}}),O=function(e,t){return(0,s.sJ)(S({id:e,key:t}))},A=function(e){return(0,s.rb)(b(e))},w=(0,s.CG)({key:"roomMetricIdsState",get:function(e){return function(t){return(0,t.get)(g(e))}},set:function(e){return function(t,n){var r=t.set;r(g(e),n.map((function(e){return e.id}))),n.forEach((function(e){return r(b(e.id),e)}))}}}),k=(0,s.CG)({key:"roomMetricsState",get:function(e){return function(t){var n=t.get;return n(w(e)).map((function(e){return n(b(e))}))}}}),P=function(e){return(0,s.sJ)(k(e))},Z=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shouldPersist,n=void 0===t||t,r=(0,f.O9)(e,{silent:!0});return(0,s._8)((function(t){var i=t.set,c=t.snapshot;return function(){var t=(0,a.Z)(u().mark((function t(a){var s,l,f,d,p,v,m,g,b=arguments;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:for(s=b.length,l=new Array(s>1?s-1:0),f=1;f<s;f++)l[f-1]=b[f];if(d=1===l.length?[l[0]]:l,p=(0,o.Z)(d,2),v=p[0],m=p[1],i(S({id:a,key:v}),m),n){t.next=5;break}return t.abrupt("return");case 5:return t.prev=5,t.next=8,c.map((function(e){return(0,e.set)(S({id:a,key:v}),m)})).getPromise(k(e));case 8:return g=t.sent,t.next=11,r({metrics:g});case 11:t.next=21;break;case 13:return t.prev=13,t.t0=t.catch(5),t.t1=i,t.t2=S({id:e,key:v}),t.next=19,c.getPromise(S({id:e,key:v}));case 19:t.t3=t.sent,(0,t.t1)(t.t2,t.t3);case 21:case"end":return t.stop()}}),t,null,[[5,13]])})));return function(e){return t.apply(this,arguments)}}()}),[e])},E=function(e){return[P(e),Z(e)]},j=function(e){var t=(0,f.O9)(e);return(0,s._8)((function(n){var o=n.set,i=n.snapshot;return function(){var n=(0,a.Z)(u().mark((function n(a){var c,s,f,d,p;return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c="new"===a.id,n.next=3,i.getPromise(k(e));case 3:return s=n.sent,f=s.filter((function(e){return e.id!==a.id})),d=c?y(y({},a),{},{id:(0,l.Z)()}):a,p=[].concat((0,r.Z)(f),[d]),n.next=9,t({metrics:p});case 9:o(S({id:d.id}),d),c&&o(g(e),(function(e){return[].concat((0,r.Z)(e),[d.id])}));case 11:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}),[e])},x=function(e){var t=(0,f.O9)(e,{silent:!0});return(0,s._8)((function(n){var r=n.set,o=n.reset,i=n.snapshot;return function(){var n=(0,a.Z)(u().mark((function n(a){var c,s;return u().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,i.getPromise(k(e));case 2:return c=n.sent,s=c.filter((function(e){return e.id!==a})),n.next=6,t({metrics:s});case 6:r(g(e),(function(e){return e.filter((function(e){return e!==a}))})),o(b(a));case 8:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}()}),[e])}},96929:function(e,t,n){"use strict";n.d(t,{kY:function(){return m},Nj:function(){return b},iB:function(){return w},zN:function(){return S},fD:function(){return O},Ww:function(){return Z},nI:function(){return E},X7:function(){return g},IW:function(){return y}});var r=n(15861),o=n(93433),a=n(64687),i=n.n(a),c=(n(85827),n(41539),n(25387),n(2490),n(72608),n(21249),n(57640),n(9924),n(15581),n(34514),n(54747),n(26699),n(32023),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(4480)),u=n(91966),s=n.n(u),l=n(97945),f=n(37518),d=n(8018),p={ids:(0,c.xu)({key:"roomNodeIds",default:[]}),error:(0,c.xu)({key:"roomNodesError",default:null}),updatedAt:(0,c.xu)({key:"roomNodesUpdatedAt",default:""}),loaded:(0,c.xu)({key:"roomNodesLoaded",default:!1})},v={nodes:(0,c.xu)({key:"roomNodesOptions",default:[]}),error:(0,c.xu)({key:"roomNodesOptionsError",default:null}),loaded:(0,c.xu)({key:"roomNodesOptionsLoaded",default:!1})},m=(0,c.CG)({key:"roomNodeState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(p[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(p[n](t),r)}}}),g=function(e,t){return(0,c.sJ)(m({id:e,key:t}))},b=(0,c.CG)({key:"roomNodesOptions",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(v[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(v[n](t),r)}}}),h=(0,c.CG)({key:"roomsNodesOptions",get:function(e){return function(t){var n=t.get;return null!==e&&void 0!==e&&e.length?e.reduce((function(e,t){var r=e.map((function(e){return e.value}));return n(b({id:t,key:"nodes"})).forEach((function(t){r.includes(t.value)||e.push(t)})),e}),[]):[]}}}),y=function(e){return(0,c.sJ)(h(e))},S=function(){var e=(0,f.UL)();return g(e,"ids")},O=function(){var e=(0,f.UL)();return g(e,"loaded")},A=(0,c.CG)({key:"roomNodesState/add",get:function(){return function(){return null}},set:function(e){return function(t,n){var r=t.set,a=t.get,i=function(e){return a((0,l.zP)({id:e,key:"name"}))};r(p.ids(e),(function(e){return(0,o.Z)(new Set([].concat((0,o.Z)(e),(0,o.Z)(n)))).sort((function(e,t){return i(e).localeCompare(i(t),void 0,{sensitivity:"accent"})}))})),r(p.updatedAt(e),"")}}}),w=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.onSuccess,u=n.onFail,s=(0,d.og)(e,t);return(0,c._8)((function(e){var n=e.set;return function(){var e=(0,r.Z)(i().mark((function e(r){var c,l,f,d=arguments;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=(d.length>1&&void 0!==d[1]?d[1]:{}).makeCallback,l=void 0===c||c,e.prev=1,e.next=4,s(r);case 4:(f=e.sent)&&r.reduce((function(e,t,n){var r;return null!==(r=f[n])&&void 0!==r&&r.errorCode?e:[].concat((0,o.Z)(e),[t])}),[]),n(A(t),r),l&&a&&a(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),l&&u&&u(r);case 13:case"end":return e.stop()}}),e,null,[[1,10]])})));return function(t){return e.apply(this,arguments)}}()}),[s,e,a,u])},k=(0,c.CG)({key:"roomNodesState/obsolete",get:function(){return function(){return null}},set:function(e){var t=e.roomId,n=e.nodeIds;return function(e){var r=e.set;r(p.ids(t),(function(e){return s()(e,n)})),r(p.updatedAt(t),"")}}}),P=(0,c.CG)({key:"roomNodesState/remove",get:function(){return function(){return null}},set:function(e){return function(t,n){var r=t.set;r(p.ids(e),(function(e){return s()(e,n)})),r(p.updatedAt(e),"")}}}),Z=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,u=(0,d.Bl)(e);return(0,c._8)((function(e){var n=e.set;return function(){var e=(0,r.Z)(i().mark((function e(r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,u(r);case 3:r.map((function(e){n((0,l.zP)({id:e,key:"state"}),"deleted")})),t.map((function(e){n(k({roomId:e,nodeIds:r}))})),o&&o(r),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),a&&a();case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(t){return e.apply(this,arguments)}}()}),[u,e,o,a])},E=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,u=(0,d.GT)(e,t);return(0,c._8)((function(e){var n=e.set;return function(){var e=(0,r.Z)(i().mark((function e(r){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,u(r);case 3:n(P(t),r),o&&o(r),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),a&&a(r);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(t){return e.apply(this,arguments)}}()}),[u,e,t,o,a])}},37518:function(e,t,n){"use strict";n.d(t,{ZB:function(){return Z},n2:function(){return j},Dq:function(){return C},jW:function(){return F},UL:function(){return U},A3:function(){return B},vf:function(){return M},Hm:function(){return L},Jb:function(){return G},IX:function(){return N},iC:function(){return D},HM:function(){return _},tE:function(){return x},TF:function(){return R},s:function(){return T}});var r=n(15861),o=n(4942),a=n(45987),i=n(64687),c=n.n(i),u=(n(41539),n(15581),n(2490),n(34514),n(54747),n(57327),n(88449),n(59849),n(92222),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(4480)),s=n(95383),l=n(74059),f=n(53338),d=n(4474),p=n(91850),v=n(75674),m=n(8018),g=n(83338),b=n(29495),h=n(67294),y=n(19368),S=n(23383),O=n(71172),A=function(e){var t="".concat((0,y.P)()).concat((0,S.e)(e));return(0,h.useCallback)((function(e){return(0,O.c)({key:t,handleResults:function(t){return t.results.concat(e)}})}),[t])},w=["settings"];function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?k(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Z=(0,u.CG)({key:"roomInitialize",get:function(e){return function(t){return(0,t.get)((0,p.ZP)(e))}},set:function(){return function(e,t){var n=e.set,r=t.settings,o=(0,a.Z)(t,w);n((0,p.ZP)(o.id),(function(e){return P(P(P({},v.Z),e),o)})),n((0,p.xh)([o.spaceId,o.slug]),o.id),r&&n((0,g.Z)(o.id),(function(e){return P(P({},e),r)})),o.metrics&&n((0,b.gl)(o.id),o.metrics)}}}),E=(0,u.CG)({key:"roomsInitialize",get:function(){return function(){return null}},set:function(){return function(e,t){var n=e.set;t.forEach((function(e){n(Z(e.id),e)}))}}}),j=(0,u.CG)({key:"roomState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)((0,p.ZP)(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.set;a((0,p.ZP)(t),n?"function"!==typeof r?function(e){return P(P({},e),{},(0,o.Z)({},n,r))}:function(e){return P(P({},e),{},(0,o.Z)({},n,r(e[n])))}:P(P({},v.Z),r))}},reset:function(e){var t=e.id,n=e.key;return function(e,r){var a=e.reset,i=e.set;n?i((0,p.ZP)(t),"function"!==typeof r?function(e){return P(P({},e),{},(0,o.Z)({},n,r))}:function(e){return P(P({},e),{},(0,o.Z)({},n,r(e[n])))}):a((0,p.ZP)(t))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),x=function(e,t){return(0,u.sJ)(j({id:e,key:t}))},T=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.key,a=t.shouldPersist,i=t.onSuccess,s=t.onFail,l=(0,u.Zl)(j({id:e,key:n})),f=(0,m.O9)(e);return(0,u._8)((function(t){var u=t.snapshot;return function(){var t=(0,r.Z)(c().mark((function t(r){var d,p;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(d=n?(0,o.Z)({},n,r):r,l((function(e){return P(P({},e),d)})),a){t.next=4;break}return t.abrupt("return");case 4:return t.next=6,u.getPromise(j({id:e}));case 6:return p=t.sent,t.prev=7,t.next=10,f(d);case 10:i&&i(r),t.next=17;break;case 13:t.prev=13,t.t0=t.catch(7),l(n?p[n]:p),s&&s(r);case 17:case"end":return t.stop()}}),t,null,[[7,13]])})));return function(e){return t.apply(this,arguments)}}()}),[e,n,a,i,s])},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.onSuccess,o=t.onFail,a=(0,m.RO)(e),i=A(e);return(0,u._8)((function(t){var u=t.set;return function(){var t=(0,r.Z)(c().mark((function t(r){var l,f,d;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,a(r);case 3:return l=t.sent,f=l.data,d=P(P(P({},r),{},{spaceId:e},f),{},{loaded:!0}),t.next=8,i(d);case 8:u(E(),[d]),u((0,s.oC)(e),d),n&&n(d),t.next=16;break;case 13:t.prev=13,t.t0=t.catch(0),o&&o(r);case 16:case"end":return t.stop()}}),t,null,[[0,13]])})));return function(e){return t.apply(this,arguments)}}()}),[a,e,n,o,i])},I=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.onSuccess,a=n.onFail,i=(0,u.rb)(j({id:e})),l=x(e,"spaceId");return(0,u._8)((function(n){var u=n.snapshot,f=n.set,v=n.reset;return(0,r.Z)(c().mark((function n(){var r,m,g;return c().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,u.getPromise(j({id:e}));case 2:return r=n.sent,n.next=5,u.getPromise((0,s.q3)({id:r.spaceId}));case 5:return m=n.sent,g=(0,d.rZ)(m.filter((function(t){return t.id!==e}))),n.prev=7,n.next=10,t();case 10:v((0,p.xh)([l,r.slug])),f(p.IV,g),f((0,s.v0)(l),r.id),i(),o&&o(r),n.next=20;break;case 17:n.prev=17,n.t0=n.catch(7),a&&a(r);case 20:case"end":return n.stop()}}),n,null,[[7,17]])})))}),[t,l,e,o,a])},D=function(e,t){var n=x(e,"spaceId"),r=(0,m.tn)(n,e);return I(e,r,t)},N=function(e,t){var n=x(e,"spaceId"),r=(0,m.R2)(n,e);return I(e,r,t)},M=function(){return(0,u.sJ)(p.IV)},R=function(e){return(0,u.Zl)(p.IV,e)},_=function(e,t){return(0,u.sJ)((0,p.xh)([e,t]))},U=function(e){var t=(0,l.th)(),n=M();return _(t,e||n)},L=function(e){var t=U();return x(t,e)},B=function(){var e=(0,l.uk)(),t=M();return e&&t&&"/spaces/".concat(e,"/rooms/").concat(t)},G=function(){return(0,s.J7)().filter((function(e){return e.slug===f.i_}))[0]||{id:""}},F=function(){var e=G().id,t=void 0===e?"":e;return"member"===(0,l.OS)("roleInSpace")&&!!t}},83338:function(e,t,n){"use strict";var r=n(4480);t.Z=(0,r.xu)({key:"roomSettings",default:{groupMode:""}})},310:function(e,t,n){"use strict";n.d(t,{y:function(){return r}});var r=function(e,t){return t.untouchable?1:e.untouchable?-1:e.name.localeCompare(t.name,void 0,{sensitivity:"accent"})}},30266:function(e,t,n){"use strict";n.d(t,{$F:function(){return b},A6:function(){return g},NX:function(){return p},Ns:function(){return v},Q0:function(){return y},oq:function(){return d},wh:function(){return m}});var r=n(4942),o=n(45987),a=(n(21249),n(57640),n(9924),n(85827),n(41539),n(25387),n(2490),n(72608),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(26398)),i=n(66152),c=n(62200),u=n(64358),s=["permissions"];function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var d=function(){return a.Z.get(c.MC,{transform:function(e){return e.map((function(e){var t=e.permissions;return f(f({},(0,o.Z)(e,s)),{},{permissions:t.reduce((function(e,t){return f(f({},e),{},(0,r.Z)({},t,t))}),{})})}))}})},p=function(e){return a.Z.get("/api/v3/spaces/slug/".concat(e))},v=function(e){return a.Z.delete("/api/v1/spaces/".concat(e))},m=function(e){return a.Z.post("/api/v1/spaces",{name:e})},g=function(e,t){return a.Z.post("/api/v1/spaces/default",{email:t},{headers:{"Netdata-Account-Id":e}})},b=function(e,t){return a.Z.patch("/api/v1/spaces/".concat(e),t)},h=function(e){return function(t){return t.map((function(t){return f(f({},(0,i.k5)(t)),{},{spaceId:e})}))}},y=function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).defaultParam,n=void 0!==t&&t;return a.Z.get((0,u.W)({spaceId:e}),{params:{default:n},transform:h(e)})}},58502:function(e,t,n){"use strict";n.d(t,{$V:function(){return i},E3:function(){return a},bo:function(){return c}});var r=n(4480),o=n(78710),a={createdAt:"",description:"",iconURL:"",id:"",error:null,loaded:!1,name:"",slug:""},i=(0,r.cn)({key:"currentSpaceSlug",default:null}),c=(0,r.xu)({key:"spaceIdBySlug",default:"",effects:function(e){return o.ZP&&e===o.Xh?[function(e){var t=e.setSelf;"get"===e.trigger&&t(o.HM)}]:[]}});t.ZP=(0,r.xu)({key:"space",default:a,effects:function(e){return(0,o.Ly)(e)?[function(e){var t=e.setSelf;"get"===e.trigger&&t(o.aD)}]:[]}})},46585:function(e,t,n){"use strict";n.d(t,{Eu:function(){return o},Pf:function(){return a},Qy:function(){return i},T$:function(){return c}});var r=n(67294),o="SPACE_NOT_FOUND",a=5,i=20,c={delete:r.createElement(r.Fragment,null,"Cannot delete last space of account.",r.createElement("br",null),"You can delete your account instead."),leave:r.createElement(r.Fragment,null,"Cannot leave last space of account.",r.createElement("br",null),"You can delete your account instead.")}},57079:function(e,t,n){"use strict";var r=(0,n(4480).cn)({key:"publicSpacesAtom",default:[]});t.Z=r},95383:function(e,t,n){"use strict";n.d(t,{r1:function(){return f},q3:function(){return b},Ad:function(){return l},oC:function(){return m},v0:function(){return g},J7:function(){return y},yE:function(){return v},Gn:function(){return p},WY:function(){return h},y3:function(){return d}});var r=n(93433),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(26833),n(2707),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(57327),n(88449),n(59849),n(21249),n(57640),n(9924),n(4480)),a=n(37518),i=n(74059),c=n(78710),u={ids:(0,o.xu)({key:"spaceRoomIds",default:[],effects:function(e){return(0,c.Ly)(e)?[function(e){var t=e.onSet,n=e.trigger,o=e.setSelf;"get"===n&&o([c.Fb]),t((function(e){o([c.Fb].concat((0,r.Z)(e)))}))}]:[]}}),updatedAt:(0,o.xu)({key:"spaceRoomsUpdatedAt",default:""}),loaded:(0,o.xu)({key:"spaceRoomsLoaded",default:!1,effects:function(e){return(0,c.Ly)(e)?[function(e){var t=e.trigger,n=e.setSelf;"get"===t&&n(!0)}]:[]}})},s=n(310),l=(0,o.CG)({key:"spaceRoomState",get:function(e){var t=e.id,n=e.key;return function(e){return(0,e.get)(u[n](t))}},set:function(e){var t=e.id,n=e.key;return function(e,r){(0,e.set)(u[n](t),r)}}}),f=function(e,t){Object.values(u).forEach((function(n){return e(n(t))}))},d=function(e,t){return(0,o.sJ)(l({id:e,key:t}))},p=function(e){var t=(0,i.th)();return d(t,e)},v=function(){var e=(0,i.th)();return d(e,"ids")},m=(0,o.CG)({key:"spaceRoomsState/add",get:function(){return function(){return null}},set:function(e){return function(t,n){var o=t.set,i=t.get,c=function(e){return i((0,a.n2)({id:e}))};o(l({id:e,key:"ids"}),(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),[n.id]))).sort((function(e,t){return(0,s.y)(c(e),c(t))}))})),o(l({id:e,key:"loaded"}),!0),o(l({id:e,key:"updatedAt"}),"")}}}),g=(0,o.CG)({key:"spaceRoomsState/remove",get:function(){return function(){return null}},set:function(e){return function(t,n){var r=t.set;r(l({id:e,key:"ids"}),(function(e){return e.filter((function(e){return e!==n}))})),r(l({id:e,key:"loaded"}),!0),r(l({id:e,key:"updatedAt"}),"")}}}),b=(0,o.CG)({key:"spaceFullRooms",get:function(e){var t=e.id,n=e.key;return function(e){var r=e.get;return r(l({id:t,key:"ids"})).map((function(e){return r((0,a.n2)({id:e,key:n}))}))}},cachePolicy_UNSTABLE:{eviction:"most-recent"}}),h=function(e,t){return(0,o.sJ)(b({id:e,key:t}))},y=function(e){var t=(0,i.th)();return h(t,e)}},74059:function(e,t,n){"use strict";n.d(t,{BN:function(){return b},YH:function(){return g},U7:function(){return m},st:function(){return p},Iw:function(){return O},th:function(){return k},uk:function(){return A},OS:function(){return Z},Zu:function(){return E},$v:function(){return w},VZ:function(){return S},Q6:function(){return P},vu:function(){return h},GM:function(){return y}});var r=n(4942),o=n(93433),a=(n(66992),n(41539),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(15581),n(2490),n(34514),n(54747),n(21249),n(57640),n(9924),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(4480)),i=n(78710),c=n(49674),u={ids:(0,a.cn)({key:"spaceIds",default:[],effects:i.ZP?[function(e){var t=e.onSet,n=e.trigger,r=e.setSelf;"get"===n&&r([i.HM]),t((function(e){r([i.HM].concat((0,o.Z)(e)))}))}]:[]}),error:(0,a.cn)({key:"spacesError",default:null}),updatedAt:(0,a.cn)({key:"spacesUpdatedAt",default:""}),loaded:(0,a.cn)({key:"spacesLoaded",default:!1,effects:[function(e){var t,n=e.trigger,r=e.setSelf;null!==(t=(0,e.getLoadable)(c.Z).contents)&&void 0!==t&&t.isAnonymous&&"get"===n&&r(!0)}]})},s=n(58502),l=n(57079);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=(0,a.CG)({key:"spacesState",get:function(e){return function(t){return(0,t.get)(u[e])}},set:function(e){return function(t,n){(0,t.set)(u[e],n)}}}),v=(0,a.nZ)({key:"availableSpaceIds",get:function(e){var t=e.get,n=t(p("ids")),r=t(l.Z);return(0,o.Z)(new Set([].concat((0,o.Z)(n),(0,o.Z)(r))))}}),m=(0,a.CG)({key:"spaceState",get:function(e){var t=e.id,n=e.key;return function(e){var r=(0,e.get)((0,s.ZP)(t));return n?r[n]:r}},set:function(e){var t=e.id,n=e.key;return function(e,o){var a=e.set;a((0,s.ZP)(t),n?"function"!==typeof o?function(e){return d(d({},e),{},(0,r.Z)({},n,o))}:function(e){return d(d({},e),{},(0,r.Z)({},n,o(e[n])))}:d(d({},s.E3),o))}}}),g=(0,a.CG)({key:"spaceIdBySlugState",get:function(e){return function(t){return(0,t.get)((0,s.bo)(e))}},set:function(){return function(e,t){var n=e.set;t.forEach((function(e){n((0,s.bo)(e.slug),e.id)}))}}}),b=(0,a.nZ)({key:"currentSpaceIdState",get:function(e){var t=e.get,n=t(s.$V);return t(g(n))}}),h=function(e,t){return(0,a.sJ)(m({id:e,key:t}))},y=function(e){return(0,a.sJ)(p(e))},S=function(e){return(0,a.sJ)(g(e))},O=function(){return(0,a.sJ)(v)},A=function(){return(0,a.sJ)(s.$V)},w=function(e){return(0,a.Zl)(s.$V,e)},k=function(){return(0,a.sJ)(b)},P=function(){return(0,i.Ly)(k())},Z=function(e){var t=k();return h(t,e)},E=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(0,a._8)((function(t){var n=t.snapshot;return function(){return e.map((function(e){return n.getLoadable(m({id:e})).contents}))}}))()}},32950:function(e,t,n){"use strict";var r=n(74059),o=n(94979),a=n(46585),i=n(78710);t.Z=function(){var e=(0,o.V)(),t=(0,r.VZ)(e),n=(0,r.vu)(t||a.Eu),c=(0,r.GM)("error");return(0,i.Ly)(t)?{isFetching:!1,hasAccess:!0}:{isFetching:!!e&&!n.loaded&&!c&&!n.error,hasAccess:n.loaded&&!c&&!n.error}}},94979:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z},V:function(){return P}});var r=n(93433),o=n(4942),a=n(45987),i=n(15861),c=n(29439),u=n(64687),s=n.n(u),l=(n(85827),n(41539),n(25387),n(2490),n(72608),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(15581),n(34514),n(54747),n(49337),n(33321),n(69070),n(4480)),f=n(89250),d=n(30266),p=n(67294),v=n(74059),m="/spaces/:spaceSlug/*",g=n(13477),b=n(33335),h=n(57079),y=n(46585),S=n(16634),O=n(78710),A=["id","permissions"];function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var P=function(){var e;return null===(e=(0,f.bS)(m))||void 0===e||null===(e=e.params)||void 0===e?void 0:e.spaceSlug},Z=function(){var e=function(){var e=(0,f.bS)(m),t=((null===e||void 0===e?void 0:e.params)||{}).spaceSlug,n=(0,v.$v)(),r=(0,v.uk)();return(0,p.useEffect)((function(){r!==t&&n(t)}),[r,t]),t}(),t=(0,p.useState)(null),n=(0,c.Z)(t,2),u=n[0],w=n[1],P=(0,g.Iy)("isAnonymous"),Z=(0,l._8)((function(t){var n=t.set;return(0,i.Z)(s().mark((function t(){var i,c,u,l,f;return s().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,d.NX)(e);case 3:i=t.sent,c=i.data,u=c.id,l=c.permissions,f=(0,a.Z)(c,A),n((0,b.SX)(u),l.reduce((function(e,t){return k(k({},e),{},(0,o.Z)({},t,t))}),{})),n((0,v.U7)({id:u}),(function(e){return k(k(k({},e),f),{},{loaded:!0})})),n((0,v.YH)(),[{id:u,slug:e}]),n(h.Z,(function(e){return(0,r.Z)(new Set([].concat((0,r.Z)(e),[u])))})),P&&n((0,v.st)("loaded"),!0),t.next=17;break;case 13:t.prev=13,t.t0=t.catch(0),n((0,v.U7)({id:y.Eu}),(function(e){return k(k({},e),{},{error:(0,S.Z)(t.t0)})})),w(t.t0);case 17:case"end":return t.stop()}}),t,null,[[0,13]])})))}),[P,e]);return(0,p.useEffect)((function(){O.ZP&&e===O.Xh||e&&Z()}),[Z,e]),u}},23383:function(e,t,n){"use strict";n.d(t,{e:function(){return s}});var r=n(68035),o=n(37518),a=n(30266),i=n(95383),c=n(310),u=n(78710),s=function(e){return"spaces.".concat(e,".rooms")};t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.autorun,l=void 0===n||n,f=t.polling,d=void 0===f||f;return(0,r.Z)((function(){return{key:s(e),autorun:l&&!!e,polling:d,fetch:function(){return(0,a.Q0)(e)},association:{getIds:function(){return(0,i.Ad)({id:e,key:"ids"})},getLoaded:function(){return(0,i.Ad)({id:e,key:"loaded"})},getUpdatedAt:function(){return(0,i.Ad)({id:e,key:"updatedAt"})}},sort:c.y,getResource:function(e){return(0,o.ZB)(e)},pollingOptions:{pollingInterval:69e3},force:!u.ZP}}),[e])}},5429:function(e,t,n){"use strict";var r=n(29439),o=(n(41539),n(88674),n(17727),n(67294)),a=function(){};t.Z=function(e,t){var n=(0,o.useMemo)(e,t),i=n.fetch,c=n.enabled,u=void 0===c||c,s=n.initialValue,l=n.onFail,f=void 0===l?a:l,d=n.onSettle,p=void 0===d?a:d,v=n.onSuccess,m=void 0===v?a:v,g=n.isDefaultLoading,b=void 0!==g&&g,h=(0,o.useState)(s),y=(0,r.Z)(h,2),S=y[0],O=y[1],A=(0,o.useState)(b),w=(0,r.Z)(A,2),k=w[0],P=w[1],Z=(0,o.useState)(null),E=(0,r.Z)(Z,2),j=E[0],x=E[1],T=(0,o.useRef)(!0);return(0,o.useEffect)((function(){if(u){O(s),P(!0),x(null);var e=i();return e.then((function(e){var t=e.data;T.current&&(O(t),m(t))})).catch((function(e){T.current&&(e.isCancel||(x(e),f(e)))})).finally((function(){T.current&&(P(!1),p())})),function(){var t;return null===e||void 0===e||null===(t=e.cancel)||void 0===t?void 0:t.call(e)}}}),t),(0,o.useEffect)((function(){return function(){return T.current=!1}}),[]),[S,k,j]}},68008:function(e,t,n){"use strict";var r=n(67294);t.Z=function(e,t){var n=(0,r.useRef)();return(0,r.useCallback)((function(){var t,r;return n.current&&(null===(t=(r=n.current).cancel)||void 0===t||t.call(r)),n.current=e.apply(void 0,arguments),n.current}),t)}},23109:function(e,t,n){"use strict";var r=n(29439),o=(n(38862),n(47941),n(67294)),a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=localStorage.getItem(e);return n?JSON.parse(n):t};t.Z=function(e,t){var n=(0,o.useState)((function(){return a(e,t)})),i=(0,r.Z)(n,2),c=i[0],u=i[1];return(0,o.useEffect)((function(){return localStorage.setItem(e,JSON.stringify(c))}),[c]),[c,u]}},93017:function(e,t,n){"use strict";var r=n(4942),o=(n(41539),n(15581),n(2490),n(34514),n(54747),n(47941),n(82526),n(57327),n(88449),n(59849),n(38880),n(49337),n(33321),n(69070),n(67294)),a=n(52631),i=n(74855);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=(0,o.useRef)({}),n=(0,o.useCallback)((function(n){var r=(0,i.sc)(u(u({},n),{},{success:!0}));t.current[e]&&a.Z.dismiss(t.current[e]),t.current[e]=a.Z.success(r)}),[]),r=(0,o.useCallback)((function(n){var r,o=null===n||void 0===n||null===(r=n.response)||void 0===r?void 0:r.data,c=(0,i.t_)(null!==o&&void 0!==o&&o.errorMessage?o:u({errorMessage:n.message,errorMsgKey:n.message},n));t.current[e]&&a.Z.dismiss(t.current[e]),t.current[e]=a.Z.error(c)}),[]),c=(0,o.useCallback)((function(e){return e.forEach(r)}),[]);return[n,r,c]}},76201:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(67294),o=n(89250),a=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;null!==(e=window.posthog)&&void 0!==e&&e.__loaded&&window.posthog.capture("$pageview",{$current_url:t})};t.Z=function(){var e=(0,o.TH)().pathname;(0,r.useEffect)((function(){a()}),[e])}},95192:function(e,t,n){"use strict";n.d(t,{Z:function(){return u},$:function(){return c}});var r=n(24678),o=n(50308),a=n.n(o),i=function(e){if(!e)throw new Error("Please pass a name for the idb store");var t=(0,r.MT)(e,"".concat(e,"-cache")),n=function(e,n){return(0,r.t8)(e,function(e){return{value:e,timestamp:Date.now()}}(n),t).catch(a())};return{store:t,set:n,get:function(e){var o,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=i.fetch,u=i.maxAge,s=void 0===u?86400:u,l=(0,r.U2)(e,t).then((function(t){var r=1e3*s;return t&&t.timestamp+r>Date.now()?t.value:c?(o=c()).then((function(t){return n(e,t),t})):null})).catch(a());return l.abort=function(){return o&&o.abort()},l},clear:function(){return(0,r.ZH)(t).catch(a())},del:function(e){return(0,r.IV)(e,t).catch(a())}}}("netdata"),c=86400,u=function(e,t){var n,r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).maxAge,o=function(){if(n){var e=new Error("rejected");throw e.isCancel=!0,e}},a=i.get(e,{maxAge:r}).then((function(e){if(o(),e)return t(e)})).then((function(){return o(),function(t){return i.set(e,t)}}));return a.abort=function(){n=!0},a}},71172:function(e,t,n){"use strict";n.d(t,{c:function(){return c}});var r=n(15861),o=n(64687),a=n.n(o),i=n(95192),c=function(){var e=(0,r.Z)(a().mark((function e(t){var n,r,o,c,u;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.key,r=t.handleResults,c=function(e){return o={updatedAt:"",results:r(e)}},e.next=4,(0,i.Z)(n,c);case 4:return u=e.sent,e.abrupt("return",u(o));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},19368:function(e,t,n){"use strict";n.d(t,{P:function(){return o}});var r=n(13477),o=function(){var e=(0,r.jr)();return"user.".concat(e,".")}},68035:function(e,t,n){"use strict";var r=n(45987),o=n(15861),a=n(29439),i=n(93433),c=n(4942),u=n(64687),s=n.n(u),l=(n(85827),n(41539),n(25387),n(2490),n(72608),n(2707),n(57327),n(88449),n(59849),n(26699),n(32023),n(66992),n(70189),n(78783),n(88921),n(96248),n(13599),n(11477),n(64362),n(15389),n(90401),n(45164),n(91238),n(54837),n(87485),n(56767),n(76651),n(61437),n(35285),n(39865),n(33948),n(92222),n(15581),n(34514),n(54747),n(21249),n(57640),n(9924),n(88674),n(47941),n(82526),n(38880),n(49337),n(33321),n(69070),n(67294)),f=n(4480),d=n(41331),p=n(6557),v=n.n(p),m=n(29283),g=n(9058),b=n(16634),h=n(46189),y=n(13477),S=n(95192),O=n(19368),A=n(93017),w=["fetchResources","onReceive","getUpdatedAt","getError","clearRef","onFail"],k=["polling","fetch","association","pollingOptions"],P=["key"];function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(n),!0).forEach((function(t){(0,c.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var j=(0,f.cn)({key:"subscriptionsLatestError",default:0}),x=(0,f.CG)({key:"useSubscribe/updateState",get:function(){return function(){return null}},set:function(){return function(e,t){var n=e.get,r=e.set,o=t.results,a=t.wasDiff,c=t.updatedAt,u=t.getResource,s=t.getResourcesInitializer,l=t.getResourceInitialState,f=t.getUpdatedAt,p=t.getLoaded,m=t.getIds,g=t.getError,b=t.sort,h=t.saveToCache,y=t.restored,S=void 0!==y&&y,O=t.polling,A=void 0===O||O;o=o||[],g&&r(g(),null);var w=function(){r(f(),c),r(p(),!S||"restored")};if(0===o.length&&a)w();else{var k=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v();return e.reduce((function(e,n){return n.loaded=!0,"deleted"===n.state||n.isDeleted?e.deleted.push(n.id):(e.byId[n.id]=E(E({},t(n)),n),e.effected.push(n.id)),e}),{deleted:[],effected:[],byId:{}})}(o,l),P=k.effected,Z=k.deleted,j=k.byId,x=function(e){return e in j?j[e]:n(u(e))},T=[];r(m(),(function(e){return!a&&A||!A?(T=P.length?P:T,b&&T.sort((function(e,t){return b(x(e),x(t))})),T):(Z.length&&(T=e.filter((function(e){return!Z.includes(e)}))),a&&P.length&&(T=(0,i.Z)(new Set([].concat((0,i.Z)(e),(0,i.Z)(P)))),b&&T.sort((function(e,t){return b(x(e),x(t))}))),(0,d.ZP)(T,e)?e:T)})),s?r(s(),{values:j,merge:!0}):P.forEach((function(e){return r(u(e),(function(t){return E(E({},t),{},{loaded:!0},j[e])}))})),w(),h&&h({results:T.map(x),updatedAt:c})}}}});t.Z=function(e,t){var n=(0,O.P)(),c=(0,y.Iy)("isAnonymous"),u=(0,l.useMemo)((function(){var t=e(),o=t.key,a=(0,r.Z)(t,P);return E({key:"".concat(n).concat(o)},a)}),[e].concat((0,i.Z)(t),[c])),d=function(e){var t=(0,g.e)(),n=(0,l.useMemo)((function(){return t?t.getRoot():null}),[t]),i=(0,m.Z)(),c=(0,a.Z)(i,2)[1],u=(0,A.Z)(e.key),d=(0,a.Z)(u,2)[1],p=(0,f._8)((function(e){var t=e.snapshot,n=e.set;return function(){var e=(0,o.Z)(s().mark((function e(r,o){var a,i,c,u;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=o.getError,i=o.onFail,c=Date.now(),e.next=4,t.getPromise(j);case 4:if(u=e.sent,!(r.isCancel||u+1e4>c)){e.next=7;break}throw r;case 7:throw a&&n(a(),(0,b.Z)(r)),n(j,c),i?i(r):d(r),r;case 11:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()}),[e]),v=(0,f._8)((function(e){var t=e.snapshot,n=e.set;return function(){var e=(0,o.Z)(s().mark((function e(a,i){var c,u,l,f,d,m,g,b,h,y;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=i.fetchResources,u=i.onReceive,l=i.getUpdatedAt,f=i.getError,d=i.clearRef,m=i.onFail,g=(0,r.Z)(i,w),e.next=3,t.getPromise(l());case 3:return b=e.sent,h=function(){return d.promise=c(b),d.promise.catch(function(){var e=(0,o.Z)(s().mark((function e(t){return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",p(t,{onFail:m,getError:f}));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},y=function(e){var t=Array.isArray(e),r=t?e:e.results,o=t?"":e.updatedAt;return null===u||void 0===u||u(E(E({},t?{results:r}:E({results:[]},e)),{},{lastUpdated:b})),n(x(),E({fetchResources:c,results:r,wasDiff:!!b,updatedAt:o,getUpdatedAt:l,getError:f,clearRef:d,onFail:m},g)),new Promise((function(e){return setTimeout(e,0)}))},e.abrupt("return",h().then((function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).data;return y(void 0===e?{}:e)})).catch((function(e){if(e.isCancel||1===a)throw e;return v(--a,E({fetchResources:c,onReceive:u,getUpdatedAt:l,getError:f,clearRef:d,onFail:m},g))})));case 7:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}()}),[e]);return(0,l.useCallback)((function(t){var o=e.polling,a=void 0===o||o,i=e.fetch,u=e.association,s=e.pollingOptions,l=(0,r.Z)(e,k),f={timeoutId:null,animationFrameId:null,promise:null,killed:!1},d=function(){return v(2,E(E({fetchResources:i,saveToCache:t,polling:a,clearRef:f},u),l))},p=function e(){f.killed||(f.timeoutId=setTimeout((function(){f.animationFrameId=requestAnimationFrame((function(){return n&&(n.getAttribute("hovering")||n.getAttribute("paused"))?e():c.current?void d().then(e).catch((function(t){return!t.isCancel&&e()})):e()}))}),(null===s||void 0===s?void 0:s.pollingInterval)||h.Z.pollingInterval))};return d().then(a?p:null).catch((function(e){return a&&!e.isCancel&&p()})),function(){var e,t;f.killed=!0,null===(e=f.promise)||void 0===e||null===(t=e.cancel)||void 0===t||t.call(e),cancelAnimationFrame(f.animationFrameId),clearTimeout(f.timeoutId)}}),[e])}(u),p=(0,f._8)((function(e){var t=e.set;return function(e){var n,r=e.results,o=void 0===r?[]:r,a=e.updatedAt,i=void 0===a?"":a,c=(Array.isArray(o)&&o.length)>0;return null===(n=u.onReceive)||void 0===n||n.call(u,{results:o,lastUpdated:""}),t(x(),E(E(E({results:o,updatedAt:c?i:""},u),u.association),{},{restored:c})),new Promise((function(e){return setTimeout(e,0)}))}}),t),v=(0,f._8)((function(e){var t=e.snapshot;return function(){var e=u.association.getLoaded,n=u.key,r=u.cache,o=void 0===r||r,a=u.maxCacheAge;if(t.getLoadable(e()).contents||!o)return d();var i,c=(0,S.Z)(n,p,{maxAge:a||S.$});return c.then((function(e){i=d(e)})).catch((function(){})),function(){var e;c.abort(),null===(e=i)||void 0===e||e()}}}));return(0,l.useEffect)((function(){var e=u.autorun,t=void 0===e||e,n=u.force;if((!c||void 0!==n&&n)&&t)return v()}),[c].concat((0,i.Z)(t))),d}},46667:function(e,t,n){"use strict";var r=n(29439),o=n(67294);t.Z=function(e){var t=(0,o.useState)(!!e),n=(0,r.Z)(t,2),a=n[0],i=n[1];return[a,(0,o.useCallback)((function(e){return i((function(t){return"boolean"===typeof e?e:!t}))}),[]),(0,o.useCallback)((function(){return i(!0)}),[]),(0,o.useCallback)((function(){return i(!1)}),[])]}},4474:function(e,t,n){"use strict";n.d(t,{Pf:function(){return b},rZ:function(){return O}});var r=n(29439),o=(n(41539),n(64211),n(2490),n(41874),n(67294)),a=n(89250),i=n(12599),c=n(74059),u=n(95383),s=n(32950),l=n(53338),f=n(5934),d=n(37518),p=n(47133),v=n(46189),m=n(33427),g=n(78710),b=function(){var e=(0,a.s0)(),t=(0,a.UO)(),n=(0,d.A3)(),r=(0,p.r0)(t.dashboardSlug),i=(0,f.L)(),c=(0,o.useRef)(!1);(0,o.useEffect)((function(){!0===i&&(r?c.current=!0:(e("".concat(n,"/dashboards")),c.current||(0,m.cH)()))}),[i,r])},h=v.Z.demoSlug,y=v.Z.demoDefaultRoomViews,S=v.Z.defaultRoomView,O=function(e){var t;return e.length?e.some((function(e){return e.slug===l.i_}))?l.i_:null===(t=e[0])||void 0===t?void 0:t.slug:null};t.ZP=function(){(0,a.TH)();var e=(0,a.s0)(),t=(0,a.bS)({path:"/spaces/:spaceSlug/*"}),n=(0,a.bS)({path:"/spaces/:spaceSlug/rooms/:roomSlug/*"}),l=(0,a.bS)({path:"/*"}),f=(null===n||void 0===n?void 0:n.params)||(null===t||void 0===t?void 0:t.params)||(null===l||void 0===l?void 0:l.params),p=!!(0,a.bS)({path:"/spaces/:spaceSlug/settings/*"}),v=(0,c.VZ)(f.spaceSlug),m=(0,c.GM)("loaded"),b=(0,d.HM)(v,f.roomSlug),A=(0,u.Gn)("loaded"),w=(0,c.Iw)(),k=(0,r.Z)(w,1)[0],P=(0,c.vu)(k,"slug"),Z=(0,s.Z)().isFetching,E=(0,u.J7)(),j=(0,c.$v)(),x=(0,c.uk)();(0,o.useEffect)((function(){if(!Z&&(g.ZP||m&&"restored"!==m)&&(!p||!v))if(v&&x!==f.spaceSlug)j(f.spaceSlug);else if((!v||A)&&(!v||!b)){var t=v?f.spaceSlug:P,n=b?null===f||void 0===f?void 0:f.roomSlug:O(E);e(v&&A&&!n?(0,i.Gn)("/spaces/:spaceSlug/no-rooms",{spaceSlug:t}):function(e,t){if(!t)return(0,i.Gn)("/spaces/:spaceSlug/",{spaceSlug:e});var n=h===e?y[t]||y.default:g.ZP&&e===g.Xh&&t===g.Fb?g.vT:S;return(0,i.Gn)("/spaces/:spaceSlug/rooms/:roomSlug/".concat(n),{spaceSlug:e,roomSlug:t})}(t,n),{replace:!0})}}),[p,Z,f.roomSlug,f.spaceSlug,b,A,!!E.length,m,v,P,x])}},29283:function(e,t,n){"use strict";var r=n(29439),o=n(67294);t.Z=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=(0,o.useState)(e),n=(0,r.Z)(t,2),a=n[0],i=n[1],c=(0,o.useRef)(a);return(0,o.useEffect)((function(){var e=function(){c.current=!1,i(!1)};window.addEventListener("blur",e);var t=function(){c.current=!0,i(!0)};return window.addEventListener("focus",t),function(){window.removeEventListener("blur",e),window.removeEventListener("focus",t)}}),[]),[a,c]}},85732:function(e,t,n){"use strict";n(66992),n(41539),n(88674),n(78783),n(33948),n(57327),n(88449),n(2490),n(59849),n(92222),n(74916),n(77601);var r=n(67294),o=n(2145),a=n(20745),i=n(4480),c=n(79655),u=n(89250),s=n(27923),l=n(95659),f=n(9058),d=n(15794),p=n(92501),v=n(78266),m=n(78710),g=(n(4723),n(82772),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function b(e,t){navigator.serviceWorker.register(e).then((function(e){n.g.registration=e,e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See http://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((function(e){console.error("Error during service worker registration:",e)}))}n(64765),n(15306);var h=n(47323),y=function(e,t){return t.search=t.search||e.location.search,t.hash=t.hash||e.location.hash,t},S=function(e){return"string"===typeof e?{pathname:e}:e},O=(0,h.lX)({window:window}),A=O.push,w=O.replace;O.push=function(e,t){return A.apply(O,[y(O,S(e)),t])},O.replace=function(e,t){w.apply(O,[y(O,S(e)),t])};var k=O,P=JSON.parse('{"u2":"cloud-frontend","i8":"6.28.0"}'),Z=(0,o.Z)((function(){return Promise.all([n.e(851),n.e(360)]).then(n.bind(n,79360))}),"Redirects"),E=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(837),n.e(252)]).then(n.bind(n,46019))}),"SignIn"),j=(0,o.Z)((function(){return n.e(934).then(n.bind(n,64934))}),"Trust"),x=(0,o.Z)((function(){return n.e(817).then(n.bind(n,76817))}),"AuthTokenCallback"),T=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(837),n.e(241)]).then(n.bind(n,1178))}),"MagicLinkSent"),C=(0,o.Z)((function(){return Promise.all([n.e(502),n.e(977)]).then(n.bind(n,98977))}),"SignUpVerification"),I=(0,o.Z)((function(){return Promise.all([n.e(655),n.e(86)]).then(n.bind(n,38086))}),"CheckAuth"),D=(0,o.Z)((function(){return Promise.all([n.e(655),n.e(282)]).then(n.bind(n,38282))}),"App"),N=(0,o.Z)((function(){return n.e(510).then(n.bind(n,89510))}),"GlobalStyles"),M=(0,o.Z)((function(){return n.e(723).then(n.bind(n,76723))}),"Notifications"),R=(0,o.Z)((function(){return Promise.all([n.e(470),n.e(193),n.e(814)]).then(n.bind(n,94814))}),"Assistant");window.envSettings.tracking?setTimeout((function(){var e,t=[!(null===(e=window)||void 0===e||null===(e=e.posthog)||void 0===e||!e.SentryIntegration)&&new window.posthog.SentryIntegration(window.posthog,"netdata-inc",5210883)].filter(Boolean);s.S({dsn:"https://43a4669badb04eee941ec8b242991df7@o382276.ingest.sentry.io/5210883",maxBreadcrumbs:100,release:"".concat(P.u2,"@").concat(P.i8),debug:!1,integrations:t,tracesSampleRate:.2,environment:window.location.host,denyUrls:[],autoSessionTracking:!1,beforeSend:function(e,t){var n,r=t.originalException,o=void 0===r?{}:r;if(!/netdata\.cloud/.test(null===e||void 0===e||null===(n=e.request)||void 0===n||null===(n=n.headers)||void 0===n?void 0:n.Referer))return null;if(!o)return e;var a=o.response,i=void 0===a?{}:a,c=o.isCancel,u=void 0!==c&&c,s=o.message;if(u)return null;if("Network Error"===s)return null;if("No data for this period"===s)return null;var l=i.status;return l>=400&&l<=599?null:e},ignoreErrors:["Non-Error exception captured","Non-Error promise rejection captured","Request aborted",/ResizeObserver/,"timeout exceeded","this.get_config is not a function",/IndexSizeError/,"Invalid time value","not_found",/A mutation operation was attempted on a database that did not allow mutations/]}),window.addEventListener("beforeunload",(function(){try{l.Gd().getClient().getOptions().enabled=!1}catch(e){}}))}),500):console.log("Running in development mode version:",P.u2,P.i8);var _,U=(0,d.k)(p.NY,"light"),L=function(){return r.createElement(i.Wh,null,r.createElement(r.Suspense,{fallback:""},r.createElement(f.Z,null,r.createElement(d.Z,null,r.createElement(p.ZP,{fallback:U},r.createElement(r.Suspense,{fallback:""},r.createElement(N,null),r.createElement(M,null),r.createElement(R,null),r.createElement(c.M,{className:"router",history:k,basename:m.ZP?m.se:"/"},r.createElement(u.Z5,null,r.createElement(u.AW,{path:"*",element:r.createElement(I,null)})),r.createElement(r.Suspense,{fallback:r.createElement(v.Z,null)},r.createElement(u.Z5,null,!m.ZP&&r.createElement(r.Fragment,null,r.createElement(u.AW,{path:"/sign-in",element:r.createElement(E,null)}),r.createElement(u.AW,{path:"/trust",element:r.createElement(j,null)}),r.createElement(u.AW,{path:"/sign-up",element:r.createElement(u.Fg,{to:"/sign-in",replace:!0})}),r.createElement(u.AW,{path:"/sign-up/verify",element:r.createElement(C,null)}),r.createElement(u.AW,{path:"/sign-in/magic-link-sent",element:r.createElement(T,null)})),r.createElement(u.AW,{path:"/cloud/origin/callback",element:r.createElement(x,null)}),r.createElement(u.AW,{path:"/redirects",element:r.createElement(Z,null)}),r.createElement(u.AW,{path:"*",element:r.createElement(D,null)}))))))))))};(0,a.s)(document.getElementById("app")).render(r.createElement(L,null)),"serviceWorker"in navigator&&window.addEventListener("load",(function(){var e="".concat(window.envSettings.webpackPublicPath,"/sw.js");g?(function(e,t){fetch(e).then((function(n){var r=n.headers.get("content-type");404===n.status||null!=r&&-1===r.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):b(e,t)})).catch((function(){console.log("No internet connection found. App is running in offline mode.")}))}(e,_),navigator.serviceWorker.ready.then((function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit http://bit.ly/CRA-PWA")}))):b(e,_)}))},95482:function(e,t,n){"use strict";n(74916),n(15306);n.p=window.envSettings.isAgent&&!window.envSettings.webpackPublicPath?window.envSettings.agentApiUrl+"/v2/":"".concat(window.envSettings.webpackPublicPath||"","/").replace(/([^:]\/)\/+/g,"$1")},29127:function(e,t,n){"use strict";n(92222),n(47042),n(41539),n(39714),n(74916),n(4723),n(24603),n(88386),n(88674);var r="timeout",o="success",a="skipped";window.envSettings.tracking&&(!function(e,t){var n,r,o,a;t.__SV||(window.posthog=t,t._i=[],t.init=function(i,c,u){function s(e,t){var n=t.split(".");2==n.length&&(e=e[n[0]],t=n[1]),e[t]=function(){e.push([t].concat(Array.prototype.slice.call(arguments,0)))}}(o=e.createElement("script")).type="text/javascript",o.async=!0,o.src=c.api_host+"/static/array.js",(a=e.getElementsByTagName("script")[0]).parentNode.insertBefore(o,a);var l=t;for(void 0!==u?l=t[u]=[]:u="posthog",l.people=l.people||[],l.toString=function(e){var t="posthog";return"posthog"!==u&&(t+="."+u),e||(t+=" (stub)"),t},l.people.toString=function(){return l.toString(1)+".people (stub)"},n="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags".split(" "),r=0;r<n.length;r++)s(l,n[r]);t._i.push([i,c,u])},t.__SV=1)}(document,window.posthog||[]),window.posthog.init(window.envSettings.posthogToken,{api_host:"https://app.posthog.com",disable_session_recording:!0,opt_in_site_apps:!0}),function(e,t,n,r,o){e[r]=e[r]||[],e[r].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var a=t.getElementsByTagName(n)[0],i=t.createElement(n);i.async=!0,i.src="https://www.googletagmanager.com/gtm.js?id=GTM-N6CBMJD",a.parentNode.insertBefore(i,a)}(window,document,"script","dataLayer"),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.async,i=void 0===n||n,c=t.defer,u=void 0!==c&&c,s=t.insertAfter,l=t.insertBefore,f=t.timeout,d=void 0===f?5e3:f,p=t.attrs,v=t.skipIf;return new Promise((function(t,n){if("function"===typeof v&&v())t(a);else{var c=setTimeout((function(){n(r)}),d),f=document.createElement("script");if(f.type="text/javascript",f.src=e,f.async=i,f.defer=u,p)for(var m in p)f.setAttribute(m,p[m]);f.onerror=function(e){n(new URIError("loadScript: the script ".concat(e.target.src," is not accessible.")))},f.onload=function(){clearTimeout(c),t(o)},s?s.parentNode.insertBefore(f,s.nextSibling):l?l.parentNode.insertBefore(f,l):document.body.appendChild(f)}}))}("https://www.googletagmanager.com/gtag/js?id=G-J69Z2JCTFB").then((function(){window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)};var e=function(e){var t;return(null===(t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)")))||void 0===t?void 0:t.pop())||"granted"};window.gtag("consent","default",{ad_storage:e("analyticsCookies"),analytics_storage:e("analyticsCookies"),functionality_storage:e("defaultCookies")}),window.gtag("js",new Date),window.gtag("config","G-J69Z2JCTFB")})))},64358:function(e,t,n){"use strict";n.d(t,{W:function(){return o}});n(92222);var r=n(62200),o=function(e){var t=e.spaceId;return"".concat(r.li,"/spaces/").concat(t,"/rooms?show_all=true")}},47165:function(){}},function(e){e.O(0,[143],(function(){[655,86,282].map(e.E)}),5);var t=function(t){return e(e.s=t)};e.O(0,[967,376],(function(){return t(95482),t(29127),t(85732)}));e.O()}]); \ No newline at end of file
diff --git a/web/gui/v2/bundlesManifest.6.json b/web/gui/v2/bundlesManifest.6.json
index 80607a18..71cb99f8 100644
--- a/web/gui/v2/bundlesManifest.6.json
+++ b/web/gui/v2/bundlesManifest.6.json
@@ -1,7 +1,7 @@
{
"app.css": "/app.0917ff2bf5d3b8b0678d.css",
- "app.js": "/app.24424bcb6923064df250.js",
- "runtime.js": "/runtime.db3b1f7db7a8e8ecf561.js",
- "npm.react.dom.js": "/npm.react.dom.fcbeaa7a1582a429a00e.js",
- "376.js": "/376.9a81f019e3c71e29c4e1.js"
+ "app.js": "/app.04e10fe5e2e2b4abb9de.js",
+ "runtime.js": "/runtime.519955e002a87da88924.js",
+ "npm.react.dom.js": "/npm.react.dom.5f194c629d90a617d1ac.js",
+ "376.js": "/376.e533843d1907d4e8dafa.js"
} \ No newline at end of file
diff --git a/web/gui/v2/editor.0483213ccc286f86f266.chunk.js b/web/gui/v2/editor.2c7891085085940ad860.chunk.js
index 06188bab..b9f99fab 100644
--- a/web/gui/v2/editor.0483213ccc286f86f266.chunk.js
+++ b/web/gui/v2/editor.2c7891085085940ad860.chunk.js
@@ -1 +1 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c8539ccd-5bc1-4882-93e3-6f145901f551",e._sentryDebugIdIdentifier="sentry-dbid-c8539ccd-5bc1-4882-93e3-6f145901f551")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[189],{8937:function(e,t,n){n.r(t);var o=n(87462),d=n(45987),i=n(67294),r=n(5575),l=n(15557),a=n(60677),f=["autoFocus"],c=(0,a.default)(r.default).attrs({"data-testid":"editor"}).withConfig({displayName:"editor__StyledEditor",componentId:"sc-c7iwfz-0"})(["position:relative;outline:none;word-wrap:break-word;&.medium-editor-placeholder:after{color:",";content:attr(data-placeholder) !important;font-style:italic;left:0;position:absolute;top:0;white-space:pre;padding:inherit;margin:inherit;}"],(0,l.getColor)("border"));t.default=function(e){var t=e.autoFocus,n=(0,d.Z)(e,f),r=(0,i.useRef)();return(0,i.useLayoutEffect)((function(){if(t){var e=r.current.medium.elements[0].lastChild;e.scrollIntoView(),r.current.medium.selectElement(e),document.getSelection().collapseToEnd()}}),[]),i.createElement(c,(0,o.Z)({ref:r},n))}}}]); \ No newline at end of file
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4194552e-574d-4692-b711-532cb17a3f4b",e._sentryDebugIdIdentifier="sentry-dbid-4194552e-574d-4692-b711-532cb17a3f4b")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[189],{8937:function(e,t,n){n.r(t);var o=n(87462),d=n(45987),i=n(67294),r=n(5575),l=n(57509),a=n(60677),f=["autoFocus"],u=(0,a.default)(r.default).attrs({"data-testid":"editor"}).withConfig({displayName:"editor__StyledEditor",componentId:"sc-c7iwfz-0"})(["position:relative;outline:none;word-wrap:break-word;&.medium-editor-placeholder:after{color:",";content:attr(data-placeholder) !important;font-style:italic;left:0;position:absolute;top:0;white-space:pre;padding:inherit;margin:inherit;}"],(0,l.getColor)("border"));t.default=function(e){var t=e.autoFocus,n=(0,d.Z)(e,f),r=(0,i.useRef)();return(0,i.useLayoutEffect)((function(){if(t){var e=r.current.medium.elements[0].lastChild;e.scrollIntoView(),r.current.medium.selectElement(e),document.getSelection().collapseToEnd()}}),[]),i.createElement(u,(0,o.Z)({ref:r},n))}}}]); \ No newline at end of file
diff --git a/web/gui/v2/index.html b/web/gui/v2/index.html
index d59760b7..661e796b 100644
--- a/web/gui/v2/index.html
+++ b/web/gui/v2/index.html
@@ -27,7 +27,7 @@
demoFavourites: {"postgresql":["postgres"],"redis":["redis"],"dns-query":["dns_query"],"http-endpoints":["httpcheck"],"nginx":["web_log","nginx"],"apache":["apache"],"host-reachability":["ping"],"cassandra":["cassandra"],"coredns":["coredns"],"logind":["logind"],"iis":["iis"],"active-directory":["ad"],"windows":["windows","ad","iis","mssql","exchange","netframework"],"docker":["cgroup","docker"]},
webpackPublicPath: "",
agentApiUrl: searchParams.get("agent") || getBasename(),
- version: "6.27.0",
+ version: "6.28.0",
tracking: false,
cookieDomain: ".netdata.cloud",
onprem: false
@@ -139,7 +139,8 @@
mg: data.agent.machine_guid,
nd: data.agent.node_id,
claimId: data.agent.claim_id,
- cloudStatus: data.cloud_status
+ cloudStatus: data.cloud_status,
+ xNetdataAuthHeader: data["X-Netdata-Auth"] || false
}
diff --git a/web/gui/v2/local-agent.html b/web/gui/v2/local-agent.html
index d59760b7..661e796b 100644
--- a/web/gui/v2/local-agent.html
+++ b/web/gui/v2/local-agent.html
@@ -27,7 +27,7 @@
demoFavourites: {"postgresql":["postgres"],"redis":["redis"],"dns-query":["dns_query"],"http-endpoints":["httpcheck"],"nginx":["web_log","nginx"],"apache":["apache"],"host-reachability":["ping"],"cassandra":["cassandra"],"coredns":["coredns"],"logind":["logind"],"iis":["iis"],"active-directory":["ad"],"windows":["windows","ad","iis","mssql","exchange","netframework"],"docker":["cgroup","docker"]},
webpackPublicPath: "",
agentApiUrl: searchParams.get("agent") || getBasename(),
- version: "6.27.0",
+ version: "6.28.0",
tracking: false,
cookieDomain: ".netdata.cloud",
onprem: false
@@ -139,7 +139,8 @@
mg: data.agent.machine_guid,
nd: data.agent.node_id,
claimId: data.agent.claim_id,
- cloudStatus: data.cloud_status
+ cloudStatus: data.cloud_status,
+ xNetdataAuthHeader: data["X-Netdata-Auth"] || false
}
diff --git a/web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js b/web/gui/v2/npm.react.dom.5f194c629d90a617d1ac.js
index b8a126ae..71147185 100644
--- a/web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js
+++ b/web/gui/v2/npm.react.dom.5f194c629d90a617d1ac.js
@@ -1,2 +1,2 @@
-/*! For license information please see npm.react.dom.fcbeaa7a1582a429a00e.js.LICENSE.txt */
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ba8710fb-a254-41ba-8ea0-904d4f370e2d",e._sentryDebugIdIdentifier="sentry-dbid-ba8710fb-a254-41ba-8ea0-904d4f370e2d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[967],{64448:function(e,n,t){var r=t(67294),l=t(63840);function a(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t<arguments.length;t++)n+="&args[]="+encodeURIComponent(arguments[t]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,u={};function i(e,n){s(e,n),s(e+"Capture",n)}function s(e,n){for(u[e]=n,e=0;e<n.length;e++)o.add(n[e])}var c=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),f=Object.prototype.hasOwnProperty,d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e,n,t,r,l,a,o){this.acceptsBooleans=2===n||3===n||4===n,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=a,this.removeEmptyString=o}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var n=e[0];g[n]=new h(n,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,n,t,r){var l=g.hasOwnProperty(n)?g[n]:null;(null!==l?0!==l.type:r||!(2<n.length)||"o"!==n[0]&&"O"!==n[0]||"n"!==n[1]&&"N"!==n[1])&&(function(e,n,t,r){if(null===n||"undefined"===typeof n||function(e,n,t,r){if(null!==t&&0===t.type)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==t?!t.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,n,t,r))return!0;if(r)return!1;if(null!==t)switch(t.type){case 3:return!n;case 4:return!1===n;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}(n,t,l,r)&&(t=null),r||null===l?function(e){return!!f.call(m,e)||!f.call(p,e)&&(d.test(e)?m[e]=!0:(p[e]=!0,!1))}(n)&&(null===t?e.removeAttribute(n):e.setAttribute(n,""+t)):l.mustUseProperty?e[l.propertyName]=null===t?3!==l.type&&"":t:(n=l.attributeName,r=l.attributeNamespace,null===t?e.removeAttribute(n):(t=3===(l=l.type)||4===l&&!0===t?"":""+t,r?e.setAttributeNS(r,n,t):e.setAttribute(n,t))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),S=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),z=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),P=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),T=Symbol.for("react.memo"),M=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var F=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var D=Symbol.iterator;function R(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=D&&e[D]||e["@@iterator"])?e:null}var O,I=Object.assign;function U(e){if(void 0===O)try{throw Error()}catch(t){var n=t.stack.trim().match(/\n( *(at )?)/);O=n&&n[1]||""}return"\n"+O+e}var V=!1;function A(e,n){if(!e||V)return"";V=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(s){var r=s}Reflect.construct(e,[],n)}else{try{n.call()}catch(s){r=s}e.call(n.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"===typeof s.stack){for(var l=s.stack.split("\n"),a=r.stack.split("\n"),o=l.length-1,u=a.length-1;1<=o&&0<=u&&l[o]!==a[u];)u--;for(;1<=o&&0<=u;o--,u--)if(l[o]!==a[u]){if(1!==o||1!==u)do{if(o--,0>--u||l[o]!==a[u]){var i="\n"+l[o].replace(" at new "," at ");return e.displayName&&i.includes("<anonymous>")&&(i=i.replace("<anonymous>",e.displayName)),i}}while(1<=o&&0<=u);break}}}finally{V=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?U(e):""}function B(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=A(e.type,!1);case 11:return e=A(e.type.render,!1);case 1:return e=A(e.type,!0);default:return""}}function H(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case E:return"StrictMode";case P:return"Suspense";case L:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case z:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case N:var n=e.render;return(e=e.displayName)||(e=""!==(e=n.displayName||n.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case T:return null!==(n=e.displayName||null)?n:H(e.type)||"Memo";case M:n=e._payload,e=e._init;try{return H(e(n))}catch(t){}}return null}function Q(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=n.render).displayName||e.name||"",n.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return H(n);case 8:return n===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof n)return n.displayName||n.name||null;if("string"===typeof n)return n}return null}function W(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function j(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function $(e){e._valueTracker||(e._valueTracker=function(e){var n=j(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&"undefined"!==typeof t&&"function"===typeof t.get&&"function"===typeof t.set){var l=t.get,a=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e))}function K(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=j(e)?e.checked?"true":"false":e.value),(e=r)!==t&&(n.setValue(e),!0)}function q(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}function Y(e,n){var t=n.checked;return I({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=t?t:e._wrapperState.initialChecked})}function X(e,n){var t=null==n.defaultValue?"":n.defaultValue,r=null!=n.checked?n.checked:n.defaultChecked;t=W(null!=n.value?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:"checkbox"===n.type||"radio"===n.type?null!=n.checked:null!=n.value}}function G(e,n){null!=(n=n.checked)&&b(e,"checked",n,!1)}function Z(e,n){G(e,n);var t=W(n.value),r=n.type;if(null!=t)"number"===r?(0===t&&""===e.value||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");n.hasOwnProperty("value")?ee(e,n.type,t):n.hasOwnProperty("defaultValue")&&ee(e,n.type,W(n.defaultValue)),null==n.checked&&null!=n.defaultChecked&&(e.defaultChecked=!!n.defaultChecked)}function J(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!("submit"!==r&&"reset"!==r||void 0!==n.value&&null!==n.value))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}""!==(t=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==t&&(e.name=t)}function ee(e,n,t){"number"===n&&q(e.ownerDocument)===e||(null==t?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var ne=Array.isArray;function te(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l<t.length;l++)n["$"+t[l]]=!0;for(t=0;t<e.length;t++)l=n.hasOwnProperty("$"+e[t].value),e[t].selected!==l&&(e[t].selected=l),l&&r&&(e[t].defaultSelected=!0)}else{for(t=""+W(t),n=null,l=0;l<e.length;l++){if(e[l].value===t)return e[l].selected=!0,void(r&&(e[l].defaultSelected=!0));null!==n||e[l].disabled||(n=e[l])}null!==n&&(n.selected=!0)}}function re(e,n){if(null!=n.dangerouslySetInnerHTML)throw Error(a(91));return I({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,n){var t=n.value;if(null==t){if(t=n.children,n=n.defaultValue,null!=t){if(null!=n)throw Error(a(92));if(ne(t)){if(1<t.length)throw Error(a(93));t=t[0]}n=t}null==n&&(n=""),t=n}e._wrapperState={initialValue:W(t)}}function ae(e,n){var t=W(n.value),r=W(n.defaultValue);null!=t&&((t=""+t)!==e.value&&(e.value=t),null==n.defaultValue&&e.defaultValue!==t&&(e.defaultValue=t)),null!=r&&(e.defaultValue=""+r)}function oe(e){var n=e.textContent;n===e._wrapperState.initialValue&&""!==n&&null!==n&&(e.value=n)}function ue(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ie(e,n){return null==e||"http://www.w3.org/1999/xhtml"===e?ue(n):"http://www.w3.org/2000/svg"===e&&"foreignObject"===n?"http://www.w3.org/1999/xhtml":e}var se,ce,fe=(ce=function(e,n){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=n;else{for((se=se||document.createElement("div")).innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=se.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,n,t,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,n)}))}:ce);function de(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType)return void(t.nodeValue=n)}e.textContent=n}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,n,t){return null==n||"boolean"===typeof n||""===n?"":t||"number"!==typeof n||0===n||pe.hasOwnProperty(e)&&pe[e]?(""+n).trim():n+"px"}function ge(e,n){for(var t in e=e.style,n)if(n.hasOwnProperty(t)){var r=0===t.indexOf("--"),l=he(t,n[t],r);"float"===t&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}Object.keys(pe).forEach((function(e){me.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),pe[n]=pe[e]}))}));var ve=I({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,n){if(n){if(ve[e]&&(null!=n.children||null!=n.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=n.dangerouslySetInnerHTML){if(null!=n.children)throw Error(a(60));if("object"!==typeof n.dangerouslySetInnerHTML||!("__html"in n.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=n.style&&"object"!==typeof n.style)throw Error(a(62))}}function be(e,n){if(-1===e.indexOf("-"))return"string"===typeof n.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ke=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Se=null,xe=null,Ee=null;function Ce(e){if(e=bl(e)){if("function"!==typeof Se)throw Error(a(280));var n=e.stateNode;n&&(n=wl(n),Se(e.stateNode,e.type,n))}}function _e(e){xe?Ee?Ee.push(e):Ee=[e]:xe=e}function ze(){if(xe){var e=xe,n=Ee;if(Ee=xe=null,Ce(e),n)for(e=0;e<n.length;e++)Ce(n[e])}}function Ne(e,n){return e(n)}function Pe(){}var Le=!1;function Te(e,n,t){if(Le)return e(n,t);Le=!0;try{return Ne(e,n,t)}finally{Le=!1,(null!==xe||null!==Ee)&&(Pe(),ze())}}function Me(e,n){var t=e.stateNode;if(null===t)return null;var r=wl(t);if(null===r)return null;t=r[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(t&&"function"!==typeof t)throw Error(a(231,n,typeof t));return t}var Fe=!1;if(c)try{var De={};Object.defineProperty(De,"passive",{get:function(){Fe=!0}}),window.addEventListener("test",De,De),window.removeEventListener("test",De,De)}catch(ce){Fe=!1}function Re(e,n,t,r,l,a,o,u,i){var s=Array.prototype.slice.call(arguments,3);try{n.apply(t,s)}catch(c){this.onError(c)}}var Oe=!1,Ie=null,Ue=!1,Ve=null,Ae={onError:function(e){Oe=!0,Ie=e}};function Be(e,n,t,r,l,a,o,u,i){Oe=!1,Ie=null,Re.apply(Ae,arguments)}function He(e){var n=e,t=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do{0!==(4098&(n=e).flags)&&(t=n.return),e=n.return}while(e)}return 3===n.tag?t:null}function Qe(e){if(13===e.tag){var n=e.memoizedState;if(null===n&&(null!==(e=e.alternate)&&(n=e.memoizedState)),null!==n)return n.dehydrated}return null}function We(e){if(He(e)!==e)throw Error(a(188))}function je(e){return null!==(e=function(e){var n=e.alternate;if(!n){if(null===(n=He(e)))throw Error(a(188));return n!==e?null:e}for(var t=e,r=n;;){var l=t.return;if(null===l)break;var o=l.alternate;if(null===o){if(null!==(r=l.return)){t=r;continue}break}if(l.child===o.child){for(o=l.child;o;){if(o===t)return We(l),e;if(o===r)return We(l),n;o=o.sibling}throw Error(a(188))}if(t.return!==r.return)t=l,r=o;else{for(var u=!1,i=l.child;i;){if(i===t){u=!0,t=l,r=o;break}if(i===r){u=!0,r=l,t=o;break}i=i.sibling}if(!u){for(i=o.child;i;){if(i===t){u=!0,t=o,r=l;break}if(i===r){u=!0,r=o,t=l;break}i=i.sibling}if(!u)throw Error(a(189))}}if(t.alternate!==r)throw Error(a(190))}if(3!==t.tag)throw Error(a(188));return t.stateNode.current===t?e:n}(e))?$e(e):null}function $e(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var n=$e(e);if(null!==n)return n;e=e.sibling}return null}var Ke=l.unstable_scheduleCallback,qe=l.unstable_cancelCallback,Ye=l.unstable_shouldYield,Xe=l.unstable_requestPaint,Ge=l.unstable_now,Ze=l.unstable_getCurrentPriorityLevel,Je=l.unstable_ImmediatePriority,en=l.unstable_UserBlockingPriority,nn=l.unstable_NormalPriority,tn=l.unstable_LowPriority,rn=l.unstable_IdlePriority,ln=null,an=null;var on=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(un(e)/sn|0)|0},un=Math.log,sn=Math.LN2;var cn=64,fn=4194304;function dn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,o=268435455&t;if(0!==o){var u=o&~l;0!==u?r=dn(u):0!==(a&=o)&&(r=dn(a))}else 0!==(o=t&~l)?r=dn(o):0!==a&&(r=dn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&((l=r&-r)>=(a=n&-n)||16===l&&0!==(4194240&a)))return n;if(0!==(4&r)&&(r|=16&t),0!==(n=e.entangledLanes))for(e=e.entanglements,n&=r;0<n;)l=1<<(t=31-on(n)),r|=e[t],n&=~l;return r}function mn(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return-1}}function hn(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function gn(){var e=cn;return 0===(4194240&(cn<<=1))&&(cn=64),e}function vn(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function yn(e,n,t){e.pendingLanes|=n,536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[n=31-on(n)]=t}function bn(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-on(t),l=1<<r;l&n|e[r]&n&&(e[r]|=n),t&=~l}}var kn=0;function wn(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var Sn,xn,En,Cn,_n,zn=!1,Nn=[],Pn=null,Ln=null,Tn=null,Mn=new Map,Fn=new Map,Dn=[],Rn="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function On(e,n){switch(e){case"focusin":case"focusout":Pn=null;break;case"dragenter":case"dragleave":Ln=null;break;case"mouseover":case"mouseout":Tn=null;break;case"pointerover":case"pointerout":Mn.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Fn.delete(n.pointerId)}}function In(e,n,t,r,l,a){return null===e||e.nativeEvent!==a?(e={blockedOn:n,domEventName:t,eventSystemFlags:r,nativeEvent:a,targetContainers:[l]},null!==n&&(null!==(n=bl(n))&&xn(n)),e):(e.eventSystemFlags|=r,n=e.targetContainers,null!==l&&-1===n.indexOf(l)&&n.push(l),e)}function Un(e){var n=yl(e.target);if(null!==n){var t=He(n);if(null!==t)if(13===(n=t.tag)){if(null!==(n=Qe(t)))return e.blockedOn=n,void _n(e.priority,(function(){En(t)}))}else if(3===n&&t.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===t.tag?t.stateNode.containerInfo:null)}e.blockedOn=null}function Vn(e){if(null!==e.blockedOn)return!1;for(var n=e.targetContainers;0<n.length;){var t=Xn(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(null!==t)return null!==(n=bl(t))&&xn(n),e.blockedOn=t,!1;var r=new(t=e.nativeEvent).constructor(t.type,t);ke=r,t.target.dispatchEvent(r),ke=null,n.shift()}return!0}function An(e,n,t){Vn(e)&&t.delete(n)}function Bn(){zn=!1,null!==Pn&&Vn(Pn)&&(Pn=null),null!==Ln&&Vn(Ln)&&(Ln=null),null!==Tn&&Vn(Tn)&&(Tn=null),Mn.forEach(An),Fn.forEach(An)}function Hn(e,n){e.blockedOn===n&&(e.blockedOn=null,zn||(zn=!0,l.unstable_scheduleCallback(l.unstable_NormalPriority,Bn)))}function Qn(e){function n(n){return Hn(n,e)}if(0<Nn.length){Hn(Nn[0],e);for(var t=1;t<Nn.length;t++){var r=Nn[t];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Pn&&Hn(Pn,e),null!==Ln&&Hn(Ln,e),null!==Tn&&Hn(Tn,e),Mn.forEach(n),Fn.forEach(n),t=0;t<Dn.length;t++)(r=Dn[t]).blockedOn===e&&(r.blockedOn=null);for(;0<Dn.length&&null===(t=Dn[0]).blockedOn;)Un(t),null===t.blockedOn&&Dn.shift()}var Wn=k.ReactCurrentBatchConfig,jn=!0;function $n(e,n,t,r){var l=kn,a=Wn.transition;Wn.transition=null;try{kn=1,qn(e,n,t,r)}finally{kn=l,Wn.transition=a}}function Kn(e,n,t,r){var l=kn,a=Wn.transition;Wn.transition=null;try{kn=4,qn(e,n,t,r)}finally{kn=l,Wn.transition=a}}function qn(e,n,t,r){if(jn){var l=Xn(e,n,t,r);if(null===l)Wr(e,n,r,Yn,t),On(e,r);else if(function(e,n,t,r,l){switch(n){case"focusin":return Pn=In(Pn,e,n,t,r,l),!0;case"dragenter":return Ln=In(Ln,e,n,t,r,l),!0;case"mouseover":return Tn=In(Tn,e,n,t,r,l),!0;case"pointerover":var a=l.pointerId;return Mn.set(a,In(Mn.get(a)||null,e,n,t,r,l)),!0;case"gotpointercapture":return a=l.pointerId,Fn.set(a,In(Fn.get(a)||null,e,n,t,r,l)),!0}return!1}(l,e,n,t,r))r.stopPropagation();else if(On(e,r),4&n&&-1<Rn.indexOf(e)){for(;null!==l;){var a=bl(l);if(null!==a&&Sn(a),null===(a=Xn(e,n,t,r))&&Wr(e,n,r,Yn,t),a===l)break;l=a}null!==l&&r.stopPropagation()}else Wr(e,n,r,null,t)}}var Yn=null;function Xn(e,n,t,r){if(Yn=null,null!==(e=yl(e=we(r))))if(null===(n=He(e)))e=null;else if(13===(t=n.tag)){if(null!==(e=Qe(n)))return e;e=null}else if(3===t){if(n.stateNode.current.memoizedState.isDehydrated)return 3===n.tag?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Yn=e,null}function Gn(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ze()){case Je:return 1;case en:return 4;case nn:case tn:return 16;case rn:return 536870912;default:return 16}default:return 16}}var Zn=null,Jn=null,et=null;function nt(){if(et)return et;var e,n,t=Jn,r=t.length,l="value"in Zn?Zn.value:Zn.textContent,a=l.length;for(e=0;e<r&&t[e]===l[e];e++);var o=r-e;for(n=1;n<=o&&t[r-n]===l[a-n];n++);return et=l.slice(e,1<n?1-n:void 0)}function tt(e){var n=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===n&&(e=13):e=n,10===e&&(e=13),32<=e||13===e?e:0}function rt(){return!0}function lt(){return!1}function at(e){function n(n,t,r,l,a){for(var o in this._reactName=n,this._targetInst=r,this.type=t,this.nativeEvent=l,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(l):l[o]);return this.isDefaultPrevented=(null!=l.defaultPrevented?l.defaultPrevented:!1===l.returnValue)?rt:lt,this.isPropagationStopped=lt,this}return I(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=rt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=rt)},persist:function(){},isPersistent:rt}),n}var ot,ut,it,st={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ct=at(st),ft=I({},st,{view:0,detail:0}),dt=at(ft),pt=I({},ft,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ct,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==it&&(it&&"mousemove"===e.type?(ot=e.screenX-it.screenX,ut=e.screenY-it.screenY):ut=ot=0,it=e),ot)},movementY:function(e){return"movementY"in e?e.movementY:ut}}),mt=at(pt),ht=at(I({},pt,{dataTransfer:0})),gt=at(I({},ft,{relatedTarget:0})),vt=at(I({},st,{animationName:0,elapsedTime:0,pseudoElement:0})),yt=I({},st,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bt=at(yt),kt=at(I({},st,{data:0})),wt={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},St={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xt={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Et(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):!!(e=xt[e])&&!!n[e]}function Ct(){return Et}var _t=I({},ft,{key:function(e){if(e.key){var n=wt[e.key]||e.key;if("Unidentified"!==n)return n}return"keypress"===e.type?13===(e=tt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?St[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ct,charCode:function(e){return"keypress"===e.type?tt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),zt=at(_t),Nt=at(I({},pt,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pt=at(I({},ft,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ct})),Lt=at(I({},st,{propertyName:0,elapsedTime:0,pseudoElement:0})),Tt=I({},pt,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Mt=at(Tt),Ft=[9,13,27,32],Dt=c&&"CompositionEvent"in window,Rt=null;c&&"documentMode"in document&&(Rt=document.documentMode);var Ot=c&&"TextEvent"in window&&!Rt,It=c&&(!Dt||Rt&&8<Rt&&11>=Rt),Ut=String.fromCharCode(32),Vt=!1;function At(e,n){switch(e){case"keyup":return-1!==Ft.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bt(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Ht=!1;var Qt={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wt(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===n?!!Qt[e.type]:"textarea"===n}function jt(e,n,t,r){_e(r),0<(n=$r(n,"onChange")).length&&(t=new ct("onChange","change",null,t,r),e.push({event:t,listeners:n}))}var $t=null,Kt=null;function qt(e){Ur(e,0)}function Yt(e){if(K(kl(e)))return e}function Xt(e,n){if("change"===e)return n}var Gt=!1;if(c){var Zt;if(c){var Jt="oninput"in document;if(!Jt){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jt="function"===typeof er.oninput}Zt=Jt}else Zt=!1;Gt=Zt&&(!document.documentMode||9<document.documentMode)}function nr(){$t&&($t.detachEvent("onpropertychange",tr),Kt=$t=null)}function tr(e){if("value"===e.propertyName&&Yt(Kt)){var n=[];jt(n,Kt,e,we(e)),Te(qt,n)}}function rr(e,n,t){"focusin"===e?(nr(),Kt=t,($t=n).attachEvent("onpropertychange",tr)):"focusout"===e&&nr()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yt(Kt)}function ar(e,n){if("click"===e)return Yt(n)}function or(e,n){if("input"===e||"change"===e)return Yt(n)}var ur="function"===typeof Object.is?Object.is:function(e,n){return e===n&&(0!==e||1/e===1/n)||e!==e&&n!==n};function ir(e,n){if(ur(e,n))return!0;if("object"!==typeof e||null===e||"object"!==typeof n||null===n)return!1;var t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(r=0;r<t.length;r++){var l=t[r];if(!f.call(n,l)||!ur(e[l],n[l]))return!1}return!0}function sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,n){var t,r=sr(e);for(e=0;r;){if(3===r.nodeType){if(t=e+r.textContent.length,e<=n&&t>=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(e,n){return!(!e||!n)&&(e===n||(!e||3!==e.nodeType)&&(n&&3===n.nodeType?fr(e,n.parentNode):"contains"in e?e.contains(n):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(n))))}function dr(){for(var e=window,n=q();n instanceof e.HTMLIFrameElement;){try{var t="string"===typeof n.contentWindow.location.href}catch(r){t=!1}if(!t)break;n=q((e=n.contentWindow).document)}return n}function pr(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}function mr(e){var n=dr(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&fr(t.ownerDocument.documentElement,t)){if(null!==r&&pr(t))if(n=r.start,void 0===(e=r.end)&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if((e=(n=t.ownerDocument||document)&&n.defaultView||window).getSelection){e=e.getSelection();var l=t.textContent.length,a=Math.min(r.start,l);r=void 0===r.end?a:Math.min(r.end,l),!e.extend&&a>r&&(l=r,r=a,a=l),l=cr(t,a);var o=cr(t,r);l&&o&&(1!==e.rangeCount||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((n=n.createRange()).setStart(l.node,l.offset),e.removeAllRanges(),a>r?(e.addRange(n),e.extend(o.node,o.offset)):(n.setEnd(o.node,o.offset),e.addRange(n)))}for(n=[],e=t;e=e.parentNode;)1===e.nodeType&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof t.focus&&t.focus(),t=0;t<n.length;t++)(e=n[t]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=c&&"documentMode"in document&&11>=document.documentMode,gr=null,vr=null,yr=null,br=!1;function kr(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;br||null==gr||gr!==q(r)||("selectionStart"in(r=gr)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&ir(yr,r)||(yr=r,0<(r=$r(vr,"onSelect")).length&&(n=new ct("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=gr)))}function wr(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var Sr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},xr={},Er={};function Cr(e){if(xr[e])return xr[e];if(!Sr[e])return e;var n,t=Sr[e];for(n in t)if(t.hasOwnProperty(n)&&n in Er)return xr[e]=t[n];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete Sr.animationend.animation,delete Sr.animationiteration.animation,delete Sr.animationstart.animation),"TransitionEvent"in window||delete Sr.transitionend.transition);var _r=Cr("animationend"),zr=Cr("animationiteration"),Nr=Cr("animationstart"),Pr=Cr("transitionend"),Lr=new Map,Tr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Mr(e,n){Lr.set(e,n),i(n,[e])}for(var Fr=0;Fr<Tr.length;Fr++){var Dr=Tr[Fr];Mr(Dr.toLowerCase(),"on"+(Dr[0].toUpperCase()+Dr.slice(1)))}Mr(_r,"onAnimationEnd"),Mr(zr,"onAnimationIteration"),Mr(Nr,"onAnimationStart"),Mr("dblclick","onDoubleClick"),Mr("focusin","onFocus"),Mr("focusout","onBlur"),Mr(Pr,"onTransitionEnd"),s("onMouseEnter",["mouseout","mouseover"]),s("onMouseLeave",["mouseout","mouseover"]),s("onPointerEnter",["pointerout","pointerover"]),s("onPointerLeave",["pointerout","pointerover"]),i("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),i("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),i("onBeforeInput",["compositionend","keypress","textInput","paste"]),i("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Or=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Ir(e,n,t){var r=e.type||"unknown-event";e.currentTarget=t,function(e,n,t,r,l,o,u,i,s){if(Be.apply(this,arguments),Oe){if(!Oe)throw Error(a(198));var c=Ie;Oe=!1,Ie=null,Ue||(Ue=!0,Ve=c)}}(r,n,void 0,e),e.currentTarget=null}function Ur(e,n){n=0!==(4&n);for(var t=0;t<e.length;t++){var r=e[t],l=r.event;r=r.listeners;e:{var a=void 0;if(n)for(var o=r.length-1;0<=o;o--){var u=r[o],i=u.instance,s=u.currentTarget;if(u=u.listener,i!==a&&l.isPropagationStopped())break e;Ir(l,u,s),a=i}else for(o=0;o<r.length;o++){if(i=(u=r[o]).instance,s=u.currentTarget,u=u.listener,i!==a&&l.isPropagationStopped())break e;Ir(l,u,s),a=i}}}if(Ue)throw e=Ve,Ue=!1,Ve=null,e}function Vr(e,n){var t=n[hl];void 0===t&&(t=n[hl]=new Set);var r=e+"__bubble";t.has(r)||(Qr(n,e,2,!1),t.add(r))}function Ar(e,n,t){var r=0;n&&(r|=4),Qr(t,e,r,n)}var Br="_reactListening"+Math.random().toString(36).slice(2);function Hr(e){if(!e[Br]){e[Br]=!0,o.forEach((function(n){"selectionchange"!==n&&(Or.has(n)||Ar(n,!1,e),Ar(n,!0,e))}));var n=9===e.nodeType?e:e.ownerDocument;null===n||n[Br]||(n[Br]=!0,Ar("selectionchange",!1,n))}}function Qr(e,n,t,r){switch(Gn(n)){case 1:var l=$n;break;case 4:l=Kn;break;default:l=qn}t=l.bind(null,n,t,e),l=void 0,!Fe||"touchstart"!==n&&"touchmove"!==n&&"wheel"!==n||(l=!0),r?void 0!==l?e.addEventListener(n,t,{capture:!0,passive:l}):e.addEventListener(n,t,!0):void 0!==l?e.addEventListener(n,t,{passive:l}):e.addEventListener(n,t,!1)}function Wr(e,n,t,r,l){var a=r;if(0===(1&n)&&0===(2&n)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var u=r.stateNode.containerInfo;if(u===l||8===u.nodeType&&u.parentNode===l)break;if(4===o)for(o=r.return;null!==o;){var i=o.tag;if((3===i||4===i)&&((i=o.stateNode.containerInfo)===l||8===i.nodeType&&i.parentNode===l))return;o=o.return}for(;null!==u;){if(null===(o=yl(u)))return;if(5===(i=o.tag)||6===i){r=a=o;continue e}u=u.parentNode}}r=r.return}Te((function(){var r=a,l=we(t),o=[];e:{var u=Lr.get(e);if(void 0!==u){var i=ct,s=e;switch(e){case"keypress":if(0===tt(t))break e;case"keydown":case"keyup":i=zt;break;case"focusin":s="focus",i=gt;break;case"focusout":s="blur",i=gt;break;case"beforeblur":case"afterblur":i=gt;break;case"click":if(2===t.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":i=mt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":i=ht;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":i=Pt;break;case _r:case zr:case Nr:i=vt;break;case Pr:i=Lt;break;case"scroll":i=dt;break;case"wheel":i=Mt;break;case"copy":case"cut":case"paste":i=bt;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":i=Nt}var c=0!==(4&n),f=!c&&"scroll"===e,d=c?null!==u?u+"Capture":null:u;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==d&&(null!=(h=Me(m,d))&&c.push(jr(m,h,p)))),f)break;m=m.return}0<c.length&&(u=new i(u,s,null,t,l),o.push({event:u,listeners:c}))}}if(0===(7&n)){if(i="mouseout"===e||"pointerout"===e,(!(u="mouseover"===e||"pointerover"===e)||t===ke||!(s=t.relatedTarget||t.fromElement)||!yl(s)&&!s[ml])&&(i||u)&&(u=l.window===l?l:(u=l.ownerDocument)?u.defaultView||u.parentWindow:window,i?(i=r,null!==(s=(s=t.relatedTarget||t.toElement)?yl(s):null)&&(s!==(f=He(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(i=null,s=r),i!==s)){if(c=mt,h="onMouseLeave",d="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Nt,h="onPointerLeave",d="onPointerEnter",m="pointer"),f=null==i?u:kl(i),p=null==s?u:kl(s),(u=new c(h,m+"leave",i,t,l)).target=f,u.relatedTarget=p,h=null,yl(l)===r&&((c=new c(d,m+"enter",s,t,l)).target=p,c.relatedTarget=f,h=c),f=h,i&&s)e:{for(d=s,m=0,p=c=i;p;p=Kr(p))m++;for(p=0,h=d;h;h=Kr(h))p++;for(;0<m-p;)c=Kr(c),m--;for(;0<p-m;)d=Kr(d),p--;for(;m--;){if(c===d||null!==d&&c===d.alternate)break e;c=Kr(c),d=Kr(d)}c=null}else c=null;null!==i&&qr(o,u,i,c,!1),null!==s&&null!==f&&qr(o,f,s,c,!0)}if("select"===(i=(u=r?kl(r):window).nodeName&&u.nodeName.toLowerCase())||"input"===i&&"file"===u.type)var g=Xt;else if(Wt(u))if(Gt)g=or;else{g=lr;var v=rr}else(i=u.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===u.type||"radio"===u.type)&&(g=ar);switch(g&&(g=g(e,r))?jt(o,g,t,l):(v&&v(e,u,r),"focusout"===e&&(v=u._wrapperState)&&v.controlled&&"number"===u.type&&ee(u,"number",u.value)),v=r?kl(r):window,e){case"focusin":(Wt(v)||"true"===v.contentEditable)&&(gr=v,vr=r,yr=null);break;case"focusout":yr=vr=gr=null;break;case"mousedown":br=!0;break;case"contextmenu":case"mouseup":case"dragend":br=!1,kr(o,t,l);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":kr(o,t,l)}var y;if(Dt)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Ht?At(e,t)&&(b="onCompositionEnd"):"keydown"===e&&229===t.keyCode&&(b="onCompositionStart");b&&(It&&"ko"!==t.locale&&(Ht||"onCompositionStart"!==b?"onCompositionEnd"===b&&Ht&&(y=nt()):(Jn="value"in(Zn=l)?Zn.value:Zn.textContent,Ht=!0)),0<(v=$r(r,b)).length&&(b=new kt(b,e,null,t,l),o.push({event:b,listeners:v}),y?b.data=y:null!==(y=Bt(t))&&(b.data=y))),(y=Ot?function(e,n){switch(e){case"compositionend":return Bt(n);case"keypress":return 32!==n.which?null:(Vt=!0,Ut);case"textInput":return(e=n.data)===Ut&&Vt?null:e;default:return null}}(e,t):function(e,n){if(Ht)return"compositionend"===e||!Dt&&At(e,n)?(e=nt(),et=Jn=Zn=null,Ht=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return It&&"ko"!==n.locale?null:n.data}}(e,t))&&(0<(r=$r(r,"onBeforeInput")).length&&(l=new kt("onBeforeInput","beforeinput",null,t,l),o.push({event:l,listeners:r}),l.data=y))}Ur(o,n)}))}function jr(e,n,t){return{instance:e,listener:n,currentTarget:t}}function $r(e,n){for(var t=n+"Capture",r=[];null!==e;){var l=e,a=l.stateNode;5===l.tag&&null!==a&&(l=a,null!=(a=Me(e,t))&&r.unshift(jr(e,a,l)),null!=(a=Me(e,n))&&r.push(jr(e,a,l))),e=e.return}return r}function Kr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function qr(e,n,t,r,l){for(var a=n._reactName,o=[];null!==t&&t!==r;){var u=t,i=u.alternate,s=u.stateNode;if(null!==i&&i===r)break;5===u.tag&&null!==s&&(u=s,l?null!=(i=Me(t,a))&&o.unshift(jr(t,i,u)):l||null!=(i=Me(t,a))&&o.push(jr(t,i,u))),t=t.return}0!==o.length&&e.push({event:n,listeners:o})}var Yr=/\r\n?/g,Xr=/\u0000|\uFFFD/g;function Gr(e){return("string"===typeof e?e:""+e).replace(Yr,"\n").replace(Xr,"")}function Zr(e,n,t){if(n=Gr(n),Gr(e)!==n&&t)throw Error(a(425))}function Jr(){}var el=null,nl=null;function tl(e,n){return"textarea"===e||"noscript"===e||"string"===typeof n.children||"number"===typeof n.children||"object"===typeof n.dangerouslySetInnerHTML&&null!==n.dangerouslySetInnerHTML&&null!=n.dangerouslySetInnerHTML.__html}var rl="function"===typeof setTimeout?setTimeout:void 0,ll="function"===typeof clearTimeout?clearTimeout:void 0,al="function"===typeof Promise?Promise:void 0,ol="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof al?function(e){return al.resolve(null).then(e).catch(ul)}:rl;function ul(e){setTimeout((function(){throw e}))}function il(e,n){var t=n,r=0;do{var l=t.nextSibling;if(e.removeChild(t),l&&8===l.nodeType)if("/$"===(t=l.data)){if(0===r)return e.removeChild(l),void Qn(n);r--}else"$"!==t&&"$?"!==t&&"$!"!==t||r++;t=l}while(t);Qn(n)}function sl(e){for(;null!=e;e=e.nextSibling){var n=e.nodeType;if(1===n||3===n)break;if(8===n){if("$"===(n=e.data)||"$!"===n||"$?"===n)break;if("/$"===n)return null}}return e}function cl(e){e=e.previousSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if("$"===t||"$!"===t||"$?"===t){if(0===n)return e;n--}else"/$"===t&&n++}e=e.previousSibling}return null}var fl=Math.random().toString(36).slice(2),dl="__reactFiber$"+fl,pl="__reactProps$"+fl,ml="__reactContainer$"+fl,hl="__reactEvents$"+fl,gl="__reactListeners$"+fl,vl="__reactHandles$"+fl;function yl(e){var n=e[dl];if(n)return n;for(var t=e.parentNode;t;){if(n=t[ml]||t[dl]){if(t=n.alternate,null!==n.child||null!==t&&null!==t.child)for(e=cl(e);null!==e;){if(t=e[dl])return t;e=cl(e)}return n}t=(e=t).parentNode}return null}function bl(e){return!(e=e[dl]||e[ml])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function kl(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function wl(e){return e[pl]||null}var Sl=[],xl=-1;function El(e){return{current:e}}function Cl(e){0>xl||(e.current=Sl[xl],Sl[xl]=null,xl--)}function _l(e,n){xl++,Sl[xl]=e.current,e.current=n}var zl={},Nl=El(zl),Pl=El(!1),Ll=zl;function Tl(e,n){var t=e.type.contextTypes;if(!t)return zl;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in t)a[l]=n[l];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ml(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Fl(){Cl(Pl),Cl(Nl)}function Dl(e,n,t){if(Nl.current!==zl)throw Error(a(168));_l(Nl,n),_l(Pl,t)}function Rl(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,"function"!==typeof r.getChildContext)return t;for(var l in r=r.getChildContext())if(!(l in n))throw Error(a(108,Q(e)||"Unknown",l));return I({},t,r)}function Ol(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||zl,Ll=Nl.current,_l(Nl,e),_l(Pl,Pl.current),!0}function Il(e,n,t){var r=e.stateNode;if(!r)throw Error(a(169));t?(e=Rl(e,n,Ll),r.__reactInternalMemoizedMergedChildContext=e,Cl(Pl),Cl(Nl),_l(Nl,e)):Cl(Pl),_l(Pl,t)}var Ul=null,Vl=!1,Al=!1;function Bl(e){null===Ul?Ul=[e]:Ul.push(e)}function Hl(){if(!Al&&null!==Ul){Al=!0;var e=0,n=kn;try{var t=Ul;for(kn=1;e<t.length;e++){var r=t[e];do{r=r(!0)}while(null!==r)}Ul=null,Vl=!1}catch(l){throw null!==Ul&&(Ul=Ul.slice(e+1)),Ke(Je,Hl),l}finally{kn=n,Al=!1}}return null}var Ql=[],Wl=0,jl=null,$l=0,Kl=[],ql=0,Yl=null,Xl=1,Gl="";function Zl(e,n){Ql[Wl++]=$l,Ql[Wl++]=jl,jl=e,$l=n}function Jl(e,n,t){Kl[ql++]=Xl,Kl[ql++]=Gl,Kl[ql++]=Yl,Yl=e;var r=Xl;e=Gl;var l=32-on(r)-1;r&=~(1<<l),t+=1;var a=32-on(n)+l;if(30<a){var o=l-l%5;a=(r&(1<<o)-1).toString(32),r>>=o,l-=o,Xl=1<<32-on(n)+l|t<<l|r,Gl=a+e}else Xl=1<<a|t<<l|r,Gl=e}function ea(e){null!==e.return&&(Zl(e,1),Jl(e,1,0))}function na(e){for(;e===jl;)jl=Ql[--Wl],Ql[Wl]=null,$l=Ql[--Wl],Ql[Wl]=null;for(;e===Yl;)Yl=Kl[--ql],Kl[ql]=null,Gl=Kl[--ql],Kl[ql]=null,Xl=Kl[--ql],Kl[ql]=null}var ta=null,ra=null,la=!1,aa=null;function oa(e,n){var t=Ms(5,null,null,0);t.elementType="DELETED",t.stateNode=n,t.return=e,null===(n=e.deletions)?(e.deletions=[t],e.flags|=16):n.push(t)}function ua(e,n){switch(e.tag){case 5:var t=e.type;return null!==(n=1!==n.nodeType||t.toLowerCase()!==n.nodeName.toLowerCase()?null:n)&&(e.stateNode=n,ta=e,ra=sl(n.firstChild),!0);case 6:return null!==(n=""===e.pendingProps||3!==n.nodeType?null:n)&&(e.stateNode=n,ta=e,ra=null,!0);case 13:return null!==(n=8!==n.nodeType?null:n)&&(t=null!==Yl?{id:Xl,overflow:Gl}:null,e.memoizedState={dehydrated:n,treeContext:t,retryLane:1073741824},(t=Ms(18,null,null,0)).stateNode=n,t.return=e,e.child=t,ta=e,ra=null,!0);default:return!1}}function ia(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function sa(e){if(la){var n=ra;if(n){var t=n;if(!ua(e,n)){if(ia(e))throw Error(a(418));n=sl(t.nextSibling);var r=ta;n&&ua(e,n)?oa(r,t):(e.flags=-4097&e.flags|2,la=!1,ta=e)}}else{if(ia(e))throw Error(a(418));e.flags=-4097&e.flags|2,la=!1,ta=e}}}function ca(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ta=e}function fa(e){if(e!==ta)return!1;if(!la)return ca(e),la=!0,!1;var n;if((n=3!==e.tag)&&!(n=5!==e.tag)&&(n="head"!==(n=e.type)&&"body"!==n&&!tl(e.type,e.memoizedProps)),n&&(n=ra)){if(ia(e))throw da(),Error(a(418));for(;n;)oa(e,n),n=sl(n.nextSibling)}if(ca(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,n=0;e;){if(8===e.nodeType){var t=e.data;if("/$"===t){if(0===n){ra=sl(e.nextSibling);break e}n--}else"$"!==t&&"$!"!==t&&"$?"!==t||n++}e=e.nextSibling}ra=null}}else ra=ta?sl(e.stateNode.nextSibling):null;return!0}function da(){for(var e=ra;e;)e=sl(e.nextSibling)}function pa(){ra=ta=null,la=!1}function ma(e){null===aa?aa=[e]:aa.push(e)}var ha=k.ReactCurrentBatchConfig;function ga(e,n){if(e&&e.defaultProps){for(var t in n=I({},n),e=e.defaultProps)void 0===n[t]&&(n[t]=e[t]);return n}return n}var va=El(null),ya=null,ba=null,ka=null;function wa(){ka=ba=ya=null}function Sa(e){var n=va.current;Cl(va),e._currentValue=n}function xa(e,n,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,null!==r&&(r.childLanes|=n)):null!==r&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function Ea(e,n){ya=e,ka=ba=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&n)&&(ku=!0),e.firstContext=null)}function Ca(e){var n=e._currentValue;if(ka!==e)if(e={context:e,memoizedValue:n,next:null},null===ba){if(null===ya)throw Error(a(308));ba=e,ya.dependencies={lanes:0,firstContext:e}}else ba=ba.next=e;return n}var _a=null;function za(e){null===_a?_a=[e]:_a.push(e)}function Na(e,n,t,r){var l=n.interleaved;return null===l?(t.next=t,za(n)):(t.next=l.next,l.next=t),n.interleaved=t,Pa(e,r)}function Pa(e,n){e.lanes|=n;var t=e.alternate;for(null!==t&&(t.lanes|=n),t=e,e=e.return;null!==e;)e.childLanes|=n,null!==(t=e.alternate)&&(t.childLanes|=n),t=e,e=e.return;return 3===t.tag?t.stateNode:null}var La=!1;function Ta(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ma(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Fa(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Da(e,n,t){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&Pi)){var l=r.pending;return null===l?n.next=n:(n.next=l.next,l.next=n),r.pending=n,Pa(e,t)}return null===(l=r.interleaved)?(n.next=n,za(r)):(n.next=l.next,l.next=n),r.interleaved=n,Pa(e,t)}function Ra(e,n,t){if(null!==(n=n.updateQueue)&&(n=n.shared,0!==(4194240&t))){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,bn(e,t)}}function Oa(e,n){var t=e.updateQueue,r=e.alternate;if(null!==r&&t===(r=r.updateQueue)){var l=null,a=null;if(null!==(t=t.firstBaseUpdate)){do{var o={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};null===a?l=a=o:a=a.next=o,t=t.next}while(null!==t);null===a?l=a=n:a=a.next=n}else l=a=n;return t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=t)}null===(e=t.lastBaseUpdate)?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function Ia(e,n,t,r){var l=e.updateQueue;La=!1;var a=l.firstBaseUpdate,o=l.lastBaseUpdate,u=l.shared.pending;if(null!==u){l.shared.pending=null;var i=u,s=i.next;i.next=null,null===o?a=s:o.next=s,o=i;var c=e.alternate;null!==c&&((u=(c=c.updateQueue).lastBaseUpdate)!==o&&(null===u?c.firstBaseUpdate=s:u.next=s,c.lastBaseUpdate=i))}if(null!==a){var f=l.baseState;for(o=0,c=s=i=null,u=a;;){var d=u.lane,p=u.eventTime;if((r&d)===d){null!==c&&(c=c.next={eventTime:p,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var m=e,h=u;switch(d=n,p=t,h.tag){case 1:if("function"===typeof(m=h.payload)){f=m.call(p,f,d);break e}f=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null===(d="function"===typeof(m=h.payload)?m.call(p,f,d):m)||void 0===d)break e;f=I({},f,d);break e;case 2:La=!0}}null!==u.callback&&0!==u.lane&&(e.flags|=64,null===(d=l.effects)?l.effects=[u]:d.push(u))}else p={eventTime:p,lane:d,tag:u.tag,payload:u.payload,callback:u.callback,next:null},null===c?(s=c=p,i=f):c=c.next=p,o|=d;if(null===(u=u.next)){if(null===(u=l.shared.pending))break;u=(d=u).next,d.next=null,l.lastBaseUpdate=d,l.shared.pending=null}}if(null===c&&(i=f),l.baseState=i,l.firstBaseUpdate=s,l.lastBaseUpdate=c,null!==(n=l.shared.interleaved)){l=n;do{o|=l.lane,l=l.next}while(l!==n)}else null===a&&(l.shared.lanes=0);Ii|=o,e.lanes=o,e.memoizedState=f}}function Ua(e,n,t){if(e=n.effects,n.effects=null,null!==e)for(n=0;n<e.length;n++){var r=e[n],l=r.callback;if(null!==l){if(r.callback=null,r=t,"function"!==typeof l)throw Error(a(191,l));l.call(r)}}}var Va=(new r.Component).refs;function Aa(e,n,t,r){t=null===(t=t(r,n=e.memoizedState))||void 0===t?n:I({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var Ba={isMounted:function(e){return!!(e=e._reactInternals)&&He(e)===e},enqueueSetState:function(e,n,t){e=e._reactInternals;var r=ns(),l=ts(e),a=Fa(r,l);a.payload=n,void 0!==t&&null!==t&&(a.callback=t),null!==(n=Da(e,a,l))&&(rs(n,e,l,r),Ra(n,e,l))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=ns(),l=ts(e),a=Fa(r,l);a.tag=1,a.payload=n,void 0!==t&&null!==t&&(a.callback=t),null!==(n=Da(e,a,l))&&(rs(n,e,l,r),Ra(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=ns(),r=ts(e),l=Fa(t,r);l.tag=2,void 0!==n&&null!==n&&(l.callback=n),null!==(n=Da(e,l,r))&&(rs(n,e,r,t),Ra(n,e,r))}};function Ha(e,n,t,r,l,a,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,o):!n.prototype||!n.prototype.isPureReactComponent||(!ir(t,r)||!ir(l,a))}function Qa(e,n,t){var r=!1,l=zl,a=n.contextType;return"object"===typeof a&&null!==a?a=Ca(a):(l=Ml(n)?Ll:Nl.current,a=(r=null!==(r=n.contextTypes)&&void 0!==r)?Tl(e,l):zl),n=new n(t,a),e.memoizedState=null!==n.state&&void 0!==n.state?n.state:null,n.updater=Ba,e.stateNode=n,n._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=a),n}function Wa(e,n,t,r){e=n.state,"function"===typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),"function"===typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&Ba.enqueueReplaceState(n,n.state,null)}function ja(e,n,t,r){var l=e.stateNode;l.props=t,l.state=e.memoizedState,l.refs=Va,Ta(e);var a=n.contextType;"object"===typeof a&&null!==a?l.context=Ca(a):(a=Ml(n)?Ll:Nl.current,l.context=Tl(e,a)),l.state=e.memoizedState,"function"===typeof(a=n.getDerivedStateFromProps)&&(Aa(e,n,a,t),l.state=e.memoizedState),"function"===typeof n.getDerivedStateFromProps||"function"===typeof l.getSnapshotBeforeUpdate||"function"!==typeof l.UNSAFE_componentWillMount&&"function"!==typeof l.componentWillMount||(n=l.state,"function"===typeof l.componentWillMount&&l.componentWillMount(),"function"===typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount(),n!==l.state&&Ba.enqueueReplaceState(l,l.state,null),Ia(e,t,l,r),l.state=e.memoizedState),"function"===typeof l.componentDidMount&&(e.flags|=4194308)}function $a(e,n,t){if(null!==(e=t.ref)&&"function"!==typeof e&&"object"!==typeof e){if(t._owner){if(t=t._owner){if(1!==t.tag)throw Error(a(309));var r=t.stateNode}if(!r)throw Error(a(147,e));var l=r,o=""+e;return null!==n&&null!==n.ref&&"function"===typeof n.ref&&n.ref._stringRef===o?n.ref:(n=function(e){var n=l.refs;n===Va&&(n=l.refs={}),null===e?delete n[o]:n[o]=e},n._stringRef=o,n)}if("string"!==typeof e)throw Error(a(284));if(!t._owner)throw Error(a(290,e))}return e}function Ka(e,n){throw e=Object.prototype.toString.call(n),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function qa(e){return(0,e._init)(e._payload)}function Ya(e){function n(n,t){if(e){var r=n.deletions;null===r?(n.deletions=[t],n.flags|=16):r.push(t)}}function t(t,r){if(!e)return null;for(;null!==r;)n(t,r),r=r.sibling;return null}function r(e,n){for(e=new Map;null!==n;)null!==n.key?e.set(n.key,n):e.set(n.index,n),n=n.sibling;return e}function l(e,n){return(e=Ds(e,n)).index=0,e.sibling=null,e}function o(n,t,r){return n.index=r,e?null!==(r=n.alternate)?(r=r.index)<t?(n.flags|=2,t):r:(n.flags|=2,t):(n.flags|=1048576,t)}function u(n){return e&&null===n.alternate&&(n.flags|=2),n}function i(e,n,t,r){return null===n||6!==n.tag?((n=Us(t,e.mode,r)).return=e,n):((n=l(n,t)).return=e,n)}function s(e,n,t,r){var a=t.type;return a===x?f(e,n,t.props.children,r,t.key):null!==n&&(n.elementType===a||"object"===typeof a&&null!==a&&a.$$typeof===M&&qa(a)===n.type)?((r=l(n,t.props)).ref=$a(e,n,t),r.return=e,r):((r=Rs(t.type,t.key,t.props,null,e.mode,r)).ref=$a(e,n,t),r.return=e,r)}function c(e,n,t,r){return null===n||4!==n.tag||n.stateNode.containerInfo!==t.containerInfo||n.stateNode.implementation!==t.implementation?((n=Vs(t,e.mode,r)).return=e,n):((n=l(n,t.children||[])).return=e,n)}function f(e,n,t,r,a){return null===n||7!==n.tag?((n=Os(t,e.mode,r,a)).return=e,n):((n=l(n,t)).return=e,n)}function d(e,n,t){if("string"===typeof n&&""!==n||"number"===typeof n)return(n=Us(""+n,e.mode,t)).return=e,n;if("object"===typeof n&&null!==n){switch(n.$$typeof){case w:return(t=Rs(n.type,n.key,n.props,null,e.mode,t)).ref=$a(e,null,n),t.return=e,t;case S:return(n=Vs(n,e.mode,t)).return=e,n;case M:return d(e,(0,n._init)(n._payload),t)}if(ne(n)||R(n))return(n=Os(n,e.mode,t,null)).return=e,n;Ka(e,n)}return null}function p(e,n,t,r){var l=null!==n?n.key:null;if("string"===typeof t&&""!==t||"number"===typeof t)return null!==l?null:i(e,n,""+t,r);if("object"===typeof t&&null!==t){switch(t.$$typeof){case w:return t.key===l?s(e,n,t,r):null;case S:return t.key===l?c(e,n,t,r):null;case M:return p(e,n,(l=t._init)(t._payload),r)}if(ne(t)||R(t))return null!==l?null:f(e,n,t,r,null);Ka(e,t)}return null}function m(e,n,t,r,l){if("string"===typeof r&&""!==r||"number"===typeof r)return i(n,e=e.get(t)||null,""+r,l);if("object"===typeof r&&null!==r){switch(r.$$typeof){case w:return s(n,e=e.get(null===r.key?t:r.key)||null,r,l);case S:return c(n,e=e.get(null===r.key?t:r.key)||null,r,l);case M:return m(e,n,t,(0,r._init)(r._payload),l)}if(ne(r)||R(r))return f(n,e=e.get(t)||null,r,l,null);Ka(n,r)}return null}function h(l,a,u,i){for(var s=null,c=null,f=a,h=a=0,g=null;null!==f&&h<u.length;h++){f.index>h?(g=f,f=null):g=f.sibling;var v=p(l,f,u[h],i);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&n(l,f),a=o(v,a,h),null===c?s=v:c.sibling=v,c=v,f=g}if(h===u.length)return t(l,f),la&&Zl(l,h),s;if(null===f){for(;h<u.length;h++)null!==(f=d(l,u[h],i))&&(a=o(f,a,h),null===c?s=f:c.sibling=f,c=f);return la&&Zl(l,h),s}for(f=r(l,f);h<u.length;h++)null!==(g=m(f,l,h,u[h],i))&&(e&&null!==g.alternate&&f.delete(null===g.key?h:g.key),a=o(g,a,h),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return n(l,e)})),la&&Zl(l,h),s}function g(l,u,i,s){var c=R(i);if("function"!==typeof c)throw Error(a(150));if(null==(i=c.call(i)))throw Error(a(151));for(var f=c=null,h=u,g=u=0,v=null,y=i.next();null!==h&&!y.done;g++,y=i.next()){h.index>g?(v=h,h=null):v=h.sibling;var b=p(l,h,y.value,s);if(null===b){null===h&&(h=v);break}e&&h&&null===b.alternate&&n(l,h),u=o(b,u,g),null===f?c=b:f.sibling=b,f=b,h=v}if(y.done)return t(l,h),la&&Zl(l,g),c;if(null===h){for(;!y.done;g++,y=i.next())null!==(y=d(l,y.value,s))&&(u=o(y,u,g),null===f?c=y:f.sibling=y,f=y);return la&&Zl(l,g),c}for(h=r(l,h);!y.done;g++,y=i.next())null!==(y=m(h,l,g,y.value,s))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),u=o(y,u,g),null===f?c=y:f.sibling=y,f=y);return e&&h.forEach((function(e){return n(l,e)})),la&&Zl(l,g),c}return function e(r,a,o,i){if("object"===typeof o&&null!==o&&o.type===x&&null===o.key&&(o=o.props.children),"object"===typeof o&&null!==o){switch(o.$$typeof){case w:e:{for(var s=o.key,c=a;null!==c;){if(c.key===s){if((s=o.type)===x){if(7===c.tag){t(r,c.sibling),(a=l(c,o.props.children)).return=r,r=a;break e}}else if(c.elementType===s||"object"===typeof s&&null!==s&&s.$$typeof===M&&qa(s)===c.type){t(r,c.sibling),(a=l(c,o.props)).ref=$a(r,c,o),a.return=r,r=a;break e}t(r,c);break}n(r,c),c=c.sibling}o.type===x?((a=Os(o.props.children,r.mode,i,o.key)).return=r,r=a):((i=Rs(o.type,o.key,o.props,null,r.mode,i)).ref=$a(r,a,o),i.return=r,r=i)}return u(r);case S:e:{for(c=o.key;null!==a;){if(a.key===c){if(4===a.tag&&a.stateNode.containerInfo===o.containerInfo&&a.stateNode.implementation===o.implementation){t(r,a.sibling),(a=l(a,o.children||[])).return=r,r=a;break e}t(r,a);break}n(r,a),a=a.sibling}(a=Vs(o,r.mode,i)).return=r,r=a}return u(r);case M:return e(r,a,(c=o._init)(o._payload),i)}if(ne(o))return h(r,a,o,i);if(R(o))return g(r,a,o,i);Ka(r,o)}return"string"===typeof o&&""!==o||"number"===typeof o?(o=""+o,null!==a&&6===a.tag?(t(r,a.sibling),(a=l(a,o)).return=r,r=a):(t(r,a),(a=Us(o,r.mode,i)).return=r,r=a),u(r)):t(r,a)}}var Xa=Ya(!0),Ga=Ya(!1),Za={},Ja=El(Za),eo=El(Za),no=El(Za);function to(e){if(e===Za)throw Error(a(174));return e}function ro(e,n){switch(_l(no,n),_l(eo,e),_l(Ja,Za),e=n.nodeType){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:ie(null,"");break;default:n=ie(n=(e=8===e?n.parentNode:n).namespaceURI||null,e=e.tagName)}Cl(Ja),_l(Ja,n)}function lo(){Cl(Ja),Cl(eo),Cl(no)}function ao(e){to(no.current);var n=to(Ja.current),t=ie(n,e.type);n!==t&&(_l(eo,e),_l(Ja,t))}function oo(e){eo.current===e&&(Cl(Ja),Cl(eo))}var uo=El(0);function io(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||"$?"===t.data||"$!"===t.data))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var so=[];function co(){for(var e=0;e<so.length;e++)so[e]._workInProgressVersionPrimary=null;so.length=0}var fo=k.ReactCurrentDispatcher,po=k.ReactCurrentBatchConfig,mo=0,ho=null,go=null,vo=null,yo=!1,bo=!1,ko=0,wo=0;function So(){throw Error(a(321))}function xo(e,n){if(null===n)return!1;for(var t=0;t<n.length&&t<e.length;t++)if(!ur(e[t],n[t]))return!1;return!0}function Eo(e,n,t,r,l,o){if(mo=o,ho=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,fo.current=null===e||null===e.memoizedState?uu:iu,e=t(r,l),bo){o=0;do{if(bo=!1,ko=0,25<=o)throw Error(a(301));o+=1,vo=go=null,n.updateQueue=null,fo.current=su,e=t(r,l)}while(bo)}if(fo.current=ou,n=null!==go&&null!==go.next,mo=0,vo=go=ho=null,yo=!1,n)throw Error(a(300));return e}function Co(){var e=0!==ko;return ko=0,e}function _o(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===vo?ho.memoizedState=vo=e:vo=vo.next=e,vo}function zo(){if(null===go){var e=ho.alternate;e=null!==e?e.memoizedState:null}else e=go.next;var n=null===vo?ho.memoizedState:vo.next;if(null!==n)vo=n,go=e;else{if(null===e)throw Error(a(310));e={memoizedState:(go=e).memoizedState,baseState:go.baseState,baseQueue:go.baseQueue,queue:go.queue,next:null},null===vo?ho.memoizedState=vo=e:vo=vo.next=e}return vo}function No(e,n){return"function"===typeof n?n(e):n}function Po(e){var n=zo(),t=n.queue;if(null===t)throw Error(a(311));t.lastRenderedReducer=e;var r=go,l=r.baseQueue,o=t.pending;if(null!==o){if(null!==l){var u=l.next;l.next=o.next,o.next=u}r.baseQueue=l=o,t.pending=null}if(null!==l){o=l.next,r=r.baseState;var i=u=null,s=null,c=o;do{var f=c.lane;if((mo&f)===f)null!==s&&(s=s.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var d={lane:f,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===s?(i=s=d,u=r):s=s.next=d,ho.lanes|=f,Ii|=f}c=c.next}while(null!==c&&c!==o);null===s?u=r:s.next=i,ur(r,n.memoizedState)||(ku=!0),n.memoizedState=r,n.baseState=u,n.baseQueue=s,t.lastRenderedState=r}if(null!==(e=t.interleaved)){l=e;do{o=l.lane,ho.lanes|=o,Ii|=o,l=l.next}while(l!==e)}else null===l&&(t.lanes=0);return[n.memoizedState,t.dispatch]}function Lo(e){var n=zo(),t=n.queue;if(null===t)throw Error(a(311));t.lastRenderedReducer=e;var r=t.dispatch,l=t.pending,o=n.memoizedState;if(null!==l){t.pending=null;var u=l=l.next;do{o=e(o,u.action),u=u.next}while(u!==l);ur(o,n.memoizedState)||(ku=!0),n.memoizedState=o,null===n.baseQueue&&(n.baseState=o),t.lastRenderedState=o}return[o,r]}function To(){}function Mo(e,n){var t=ho,r=zo(),l=n(),o=!ur(r.memoizedState,l);if(o&&(r.memoizedState=l,ku=!0),r=r.queue,Wo(Ro.bind(null,t,r,e),[e]),r.getSnapshot!==n||o||null!==vo&&1&vo.memoizedState.tag){if(t.flags|=2048,Vo(9,Do.bind(null,t,r,l,n),void 0,null),null===Li)throw Error(a(349));0!==(30&mo)||Fo(t,n,l)}return l}function Fo(e,n,t){e.flags|=16384,e={getSnapshot:n,value:t},null===(n=ho.updateQueue)?(n={lastEffect:null,stores:null},ho.updateQueue=n,n.stores=[e]):null===(t=n.stores)?n.stores=[e]:t.push(e)}function Do(e,n,t,r){n.value=t,n.getSnapshot=r,Oo(n)&&Io(e)}function Ro(e,n,t){return t((function(){Oo(n)&&Io(e)}))}function Oo(e){var n=e.getSnapshot;e=e.value;try{var t=n();return!ur(e,t)}catch(r){return!0}}function Io(e){var n=Pa(e,1);null!==n&&rs(n,e,1,-1)}function Uo(e){var n=_o();return"function"===typeof e&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:e},n.queue=e,e=e.dispatch=tu.bind(null,ho,e),[n.memoizedState,e]}function Vo(e,n,t,r){return e={tag:e,create:n,destroy:t,deps:r,next:null},null===(n=ho.updateQueue)?(n={lastEffect:null,stores:null},ho.updateQueue=n,n.lastEffect=e.next=e):null===(t=n.lastEffect)?n.lastEffect=e.next=e:(r=t.next,t.next=e,e.next=r,n.lastEffect=e),e}function Ao(){return zo().memoizedState}function Bo(e,n,t,r){var l=_o();ho.flags|=e,l.memoizedState=Vo(1|n,t,void 0,void 0===r?null:r)}function Ho(e,n,t,r){var l=zo();r=void 0===r?null:r;var a=void 0;if(null!==go){var o=go.memoizedState;if(a=o.destroy,null!==r&&xo(r,o.deps))return void(l.memoizedState=Vo(n,t,a,r))}ho.flags|=e,l.memoizedState=Vo(1|n,t,a,r)}function Qo(e,n){return Bo(8390656,8,e,n)}function Wo(e,n){return Ho(2048,8,e,n)}function jo(e,n){return Ho(4,2,e,n)}function $o(e,n){return Ho(4,4,e,n)}function Ko(e,n){return"function"===typeof n?(e=e(),n(e),function(){n(null)}):null!==n&&void 0!==n?(e=e(),n.current=e,function(){n.current=null}):void 0}function qo(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,Ho(4,4,Ko.bind(null,n,e),t)}function Yo(){}function Xo(e,n){var t=zo();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&xo(n,r[1])?r[0]:(t.memoizedState=[e,n],e)}function Go(e,n){var t=zo();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&xo(n,r[1])?r[0]:(e=e(),t.memoizedState=[e,n],e)}function Zo(e,n,t){return 0===(21&mo)?(e.baseState&&(e.baseState=!1,ku=!0),e.memoizedState=t):(ur(t,n)||(t=gn(),ho.lanes|=t,Ii|=t,e.baseState=!0),n)}function Jo(e,n){var t=kn;kn=0!==t&&4>t?t:4,e(!0);var r=po.transition;po.transition={};try{e(!1),n()}finally{kn=t,po.transition=r}}function eu(){return zo().memoizedState}function nu(e,n,t){var r=ts(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},ru(e))lu(n,t);else if(null!==(t=Na(e,n,t,r))){rs(t,e,r,ns()),au(t,n,r)}}function tu(e,n,t){var r=ts(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(ru(e))lu(n,l);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=n.lastRenderedReducer))try{var o=n.lastRenderedState,u=a(o,t);if(l.hasEagerState=!0,l.eagerState=u,ur(u,o)){var i=n.interleaved;return null===i?(l.next=l,za(n)):(l.next=i.next,i.next=l),void(n.interleaved=l)}}catch(s){}null!==(t=Na(e,n,l,r))&&(rs(t,e,r,l=ns()),au(t,n,r))}}function ru(e){var n=e.alternate;return e===ho||null!==n&&n===ho}function lu(e,n){bo=yo=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function au(e,n,t){if(0!==(4194240&t)){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,bn(e,t)}}var ou={readContext:Ca,useCallback:So,useContext:So,useEffect:So,useImperativeHandle:So,useInsertionEffect:So,useLayoutEffect:So,useMemo:So,useReducer:So,useRef:So,useState:So,useDebugValue:So,useDeferredValue:So,useTransition:So,useMutableSource:So,useSyncExternalStore:So,useId:So,unstable_isNewReconciler:!1},uu={readContext:Ca,useCallback:function(e,n){return _o().memoizedState=[e,void 0===n?null:n],e},useContext:Ca,useEffect:Qo,useImperativeHandle:function(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,Bo(4194308,4,Ko.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Bo(4194308,4,e,n)},useInsertionEffect:function(e,n){return Bo(4,2,e,n)},useMemo:function(e,n){var t=_o();return n=void 0===n?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=_o();return n=void 0!==t?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=nu.bind(null,ho,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},_o().memoizedState=e},useState:Uo,useDebugValue:Yo,useDeferredValue:function(e){return _o().memoizedState=e},useTransition:function(){var e=Uo(!1),n=e[0];return e=Jo.bind(null,e[1]),_o().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=ho,l=_o();if(la){if(void 0===t)throw Error(a(407));t=t()}else{if(t=n(),null===Li)throw Error(a(349));0!==(30&mo)||Fo(r,n,t)}l.memoizedState=t;var o={value:t,getSnapshot:n};return l.queue=o,Qo(Ro.bind(null,r,o,e),[e]),r.flags|=2048,Vo(9,Do.bind(null,r,o,t,n),void 0,null),t},useId:function(){var e=_o(),n=Li.identifierPrefix;if(la){var t=Gl;n=":"+n+"R"+(t=(Xl&~(1<<32-on(Xl)-1)).toString(32)+t),0<(t=ko++)&&(n+="H"+t.toString(32)),n+=":"}else n=":"+n+"r"+(t=wo++).toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},iu={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Wo,useImperativeHandle:qo,useInsertionEffect:jo,useLayoutEffect:$o,useMemo:Go,useReducer:Po,useRef:Ao,useState:function(){return Po(No)},useDebugValue:Yo,useDeferredValue:function(e){return Zo(zo(),go.memoizedState,e)},useTransition:function(){return[Po(No)[0],zo().memoizedState]},useMutableSource:To,useSyncExternalStore:Mo,useId:eu,unstable_isNewReconciler:!1},su={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Wo,useImperativeHandle:qo,useInsertionEffect:jo,useLayoutEffect:$o,useMemo:Go,useReducer:Lo,useRef:Ao,useState:function(){return Lo(No)},useDebugValue:Yo,useDeferredValue:function(e){var n=zo();return null===go?n.memoizedState=e:Zo(n,go.memoizedState,e)},useTransition:function(){return[Lo(No)[0],zo().memoizedState]},useMutableSource:To,useSyncExternalStore:Mo,useId:eu,unstable_isNewReconciler:!1};function cu(e,n){try{var t="",r=n;do{t+=B(r),r=r.return}while(r);var l=t}catch(a){l="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:n,stack:l,digest:null}}function fu(e,n,t){return{value:e,source:null,stack:null!=t?t:null,digest:null!=n?n:null}}function du(e,n){try{console.error(n.value)}catch(t){setTimeout((function(){throw t}))}}var pu="function"===typeof WeakMap?WeakMap:Map;function mu(e,n,t){(t=Fa(-1,t)).tag=3,t.payload={element:null};var r=n.value;return t.callback=function(){ji||(ji=!0,$i=r),du(0,n)},t}function hu(e,n,t){(t=Fa(-1,t)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var l=n.value;t.payload=function(){return r(l)},t.callback=function(){du(0,n)}}var a=e.stateNode;return null!==a&&"function"===typeof a.componentDidCatch&&(t.callback=function(){du(0,n),"function"!==typeof r&&(null===Ki?Ki=new Set([this]):Ki.add(this));var e=n.stack;this.componentDidCatch(n.value,{componentStack:null!==e?e:""})}),t}function gu(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new pu;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(l.add(t),e=_s.bind(null,e,n,t),n.then(e,e))}function vu(e){do{var n;if((n=13===e.tag)&&(n=null===(n=e.memoizedState)||null!==n.dehydrated),n)return e;e=e.return}while(null!==e);return null}function yu(e,n,t,r,l){return 0===(1&e.mode)?(e===n?e.flags|=65536:(e.flags|=128,t.flags|=131072,t.flags&=-52805,1===t.tag&&(null===t.alternate?t.tag=17:((n=Fa(-1,1)).tag=2,Da(t,n,1))),t.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var bu=k.ReactCurrentOwner,ku=!1;function wu(e,n,t,r){n.child=null===e?Ga(n,null,t,r):Xa(n,e.child,t,r)}function Su(e,n,t,r,l){t=t.render;var a=n.ref;return Ea(n,l),r=Eo(e,n,t,r,a,l),t=Co(),null===e||ku?(la&&t&&ea(n),n.flags|=1,wu(e,n,r,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ju(e,n,l))}function xu(e,n,t,r,l){if(null===e){var a=t.type;return"function"!==typeof a||Fs(a)||void 0!==a.defaultProps||null!==t.compare||void 0!==t.defaultProps?((e=Rs(t.type,null,r,n,n.mode,l)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,Eu(e,n,a,r,l))}if(a=e.child,0===(e.lanes&l)){var o=a.memoizedProps;if((t=null!==(t=t.compare)?t:ir)(o,r)&&e.ref===n.ref)return ju(e,n,l)}return n.flags|=1,(e=Ds(a,r)).ref=n.ref,e.return=n,n.child=e}function Eu(e,n,t,r,l){if(null!==e){var a=e.memoizedProps;if(ir(a,r)&&e.ref===n.ref){if(ku=!1,n.pendingProps=r=a,0===(e.lanes&l))return n.lanes=e.lanes,ju(e,n,l);0!==(131072&e.flags)&&(ku=!0)}}return zu(e,n,t,r,l)}function Cu(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&n.mode))n.memoizedState={baseLanes:0,cachePool:null,transitions:null},_l(Di,Fi),Fi|=t;else{if(0===(1073741824&t))return e=null!==a?a.baseLanes|t:t,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,_l(Di,Fi),Fi|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:t,_l(Di,Fi),Fi|=r}else null!==a?(r=a.baseLanes|t,n.memoizedState=null):r=t,_l(Di,Fi),Fi|=r;return wu(e,n,l,t),n.child}function _u(e,n){var t=n.ref;(null===e&&null!==t||null!==e&&e.ref!==t)&&(n.flags|=512,n.flags|=2097152)}function zu(e,n,t,r,l){var a=Ml(t)?Ll:Nl.current;return a=Tl(n,a),Ea(n,l),t=Eo(e,n,t,r,a,l),r=Co(),null===e||ku?(la&&r&&ea(n),n.flags|=1,wu(e,n,t,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ju(e,n,l))}function Nu(e,n,t,r,l){if(Ml(t)){var a=!0;Ol(n)}else a=!1;if(Ea(n,l),null===n.stateNode)Wu(e,n),Qa(n,t,r),ja(n,t,r,l),r=!0;else if(null===e){var o=n.stateNode,u=n.memoizedProps;o.props=u;var i=o.context,s=t.contextType;"object"===typeof s&&null!==s?s=Ca(s):s=Tl(n,s=Ml(t)?Ll:Nl.current);var c=t.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof o.getSnapshotBeforeUpdate;f||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==r||i!==s)&&Wa(n,o,r,s),La=!1;var d=n.memoizedState;o.state=d,Ia(n,r,o,l),i=n.memoizedState,u!==r||d!==i||Pl.current||La?("function"===typeof c&&(Aa(n,t,c,r),i=n.memoizedState),(u=La||Ha(n,t,u,r,d,i,s))?(f||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(n.flags|=4194308)):("function"===typeof o.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=i),o.props=r,o.state=i,o.context=s,r=u):("function"===typeof o.componentDidMount&&(n.flags|=4194308),r=!1)}else{o=n.stateNode,Ma(e,n),u=n.memoizedProps,s=n.type===n.elementType?u:ga(n.type,u),o.props=s,f=n.pendingProps,d=o.context,"object"===typeof(i=t.contextType)&&null!==i?i=Ca(i):i=Tl(n,i=Ml(t)?Ll:Nl.current);var p=t.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==f||d!==i)&&Wa(n,o,r,i),La=!1,d=n.memoizedState,o.state=d,Ia(n,r,o,l);var m=n.memoizedState;u!==f||d!==m||Pl.current||La?("function"===typeof p&&(Aa(n,t,p,r),m=n.memoizedState),(s=La||Ha(n,t,s,r,d,m,i)||!1)?(c||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,m,i),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,m,i)),"function"===typeof o.componentDidUpdate&&(n.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=m),o.props=r,o.state=m,o.context=i,r=s):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return Pu(e,n,t,r,a,l)}function Pu(e,n,t,r,l,a){_u(e,n);var o=0!==(128&n.flags);if(!r&&!o)return l&&Il(n,t,!1),ju(e,n,a);r=n.stateNode,bu.current=n;var u=o&&"function"!==typeof t.getDerivedStateFromError?null:r.render();return n.flags|=1,null!==e&&o?(n.child=Xa(n,e.child,null,a),n.child=Xa(n,null,u,a)):wu(e,n,u,a),n.memoizedState=r.state,l&&Il(n,t,!0),n.child}function Lu(e){var n=e.stateNode;n.pendingContext?Dl(0,n.pendingContext,n.pendingContext!==n.context):n.context&&Dl(0,n.context,!1),ro(e,n.containerInfo)}function Tu(e,n,t,r,l){return pa(),ma(l),n.flags|=256,wu(e,n,t,r),n.child}var Mu,Fu,Du,Ru,Ou={dehydrated:null,treeContext:null,retryLane:0};function Iu(e){return{baseLanes:e,cachePool:null,transitions:null}}function Uu(e,n,t){var r,l=n.pendingProps,o=uo.current,u=!1,i=0!==(128&n.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!==(2&o)),r?(u=!0,n.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),_l(uo,1&o),null===e)return sa(n),null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&n.mode)?n.lanes=1:"$!"===e.data?n.lanes=8:n.lanes=1073741824,null):(i=l.children,e=l.fallback,u?(l=n.mode,u=n.child,i={mode:"hidden",children:i},0===(1&l)&&null!==u?(u.childLanes=0,u.pendingProps=i):u=Is(i,l,0,null),e=Os(e,l,t,null),u.return=n,e.return=n,u.sibling=e,n.child=u,n.child.memoizedState=Iu(t),n.memoizedState=Ou,e):Vu(n,i));if(null!==(o=e.memoizedState)&&null!==(r=o.dehydrated))return function(e,n,t,r,l,o,u){if(t)return 256&n.flags?(n.flags&=-257,Au(e,n,u,r=fu(Error(a(422))))):null!==n.memoizedState?(n.child=e.child,n.flags|=128,null):(o=r.fallback,l=n.mode,r=Is({mode:"visible",children:r.children},l,0,null),(o=Os(o,l,u,null)).flags|=2,r.return=n,o.return=n,r.sibling=o,n.child=r,0!==(1&n.mode)&&Xa(n,e.child,null,u),n.child.memoizedState=Iu(u),n.memoizedState=Ou,o);if(0===(1&n.mode))return Au(e,n,u,null);if("$!"===l.data){if(r=l.nextSibling&&l.nextSibling.dataset)var i=r.dgst;return r=i,Au(e,n,u,r=fu(o=Error(a(419)),r,void 0))}if(i=0!==(u&e.childLanes),ku||i){if(null!==(r=Li)){switch(u&-u){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}0!==(l=0!==(l&(r.suspendedLanes|u))?0:l)&&l!==o.retryLane&&(o.retryLane=l,Pa(e,l),rs(r,e,l,-1))}return gs(),Au(e,n,u,r=fu(Error(a(421))))}return"$?"===l.data?(n.flags|=128,n.child=e.child,n=Ns.bind(null,e),l._reactRetry=n,null):(e=o.treeContext,ra=sl(l.nextSibling),ta=n,la=!0,aa=null,null!==e&&(Kl[ql++]=Xl,Kl[ql++]=Gl,Kl[ql++]=Yl,Xl=e.id,Gl=e.overflow,Yl=n),n=Vu(n,r.children),n.flags|=4096,n)}(e,n,i,l,r,o,t);if(u){u=l.fallback,i=n.mode,r=(o=e.child).sibling;var s={mode:"hidden",children:l.children};return 0===(1&i)&&n.child!==o?((l=n.child).childLanes=0,l.pendingProps=s,n.deletions=null):(l=Ds(o,s)).subtreeFlags=14680064&o.subtreeFlags,null!==r?u=Ds(r,u):(u=Os(u,i,t,null)).flags|=2,u.return=n,l.return=n,l.sibling=u,n.child=l,l=u,u=n.child,i=null===(i=e.child.memoizedState)?Iu(t):{baseLanes:i.baseLanes|t,cachePool:null,transitions:i.transitions},u.memoizedState=i,u.childLanes=e.childLanes&~t,n.memoizedState=Ou,l}return e=(u=e.child).sibling,l=Ds(u,{mode:"visible",children:l.children}),0===(1&n.mode)&&(l.lanes=t),l.return=n,l.sibling=null,null!==e&&(null===(t=n.deletions)?(n.deletions=[e],n.flags|=16):t.push(e)),n.child=l,n.memoizedState=null,l}function Vu(e,n){return(n=Is({mode:"visible",children:n},e.mode,0,null)).return=e,e.child=n}function Au(e,n,t,r){return null!==r&&ma(r),Xa(n,e.child,null,t),(e=Vu(n,n.pendingProps.children)).flags|=2,n.memoizedState=null,e}function Bu(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),xa(e.return,n,t)}function Hu(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function Qu(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(wu(e,n,r.children,t),0!==(2&(r=uo.current)))r=1&r|2,n.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bu(e,t,n);else if(19===e.tag)Bu(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(_l(uo,r),0===(1&n.mode))n.memoizedState=null;else switch(l){case"forwards":for(t=n.child,l=null;null!==t;)null!==(e=t.alternate)&&null===io(e)&&(l=t),t=t.sibling;null===(t=l)?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),Hu(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(null!==(e=l.alternate)&&null===io(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}Hu(n,!0,t,null,a);break;case"together":Hu(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Wu(e,n){0===(1&n.mode)&&null!==e&&(e.alternate=null,n.alternate=null,n.flags|=2)}function ju(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),Ii|=n.lanes,0===(t&n.childLanes))return null;if(null!==e&&n.child!==e.child)throw Error(a(153));if(null!==n.child){for(t=Ds(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=Ds(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function $u(e,n){if(!la)switch(e.tailMode){case"hidden":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case"collapsed":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ku(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=14680064&l.subtreeFlags,r|=14680064&l.flags,l.return=e,l=l.sibling;else for(l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function qu(e,n,t){var r=n.pendingProps;switch(na(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ku(n),null;case 1:case 17:return Ml(n.type)&&Fl(),Ku(n),null;case 3:return r=n.stateNode,lo(),Cl(Pl),Cl(Nl),co(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fa(n)?n.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&n.flags)||(n.flags|=1024,null!==aa&&(us(aa),aa=null))),Fu(e,n),Ku(n),null;case 5:oo(n);var l=to(no.current);if(t=n.type,null!==e&&null!=n.stateNode)Du(e,n,t,r,l),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!r){if(null===n.stateNode)throw Error(a(166));return Ku(n),null}if(e=to(Ja.current),fa(n)){r=n.stateNode,t=n.type;var o=n.memoizedProps;switch(r[dl]=n,r[pl]=o,e=0!==(1&n.mode),t){case"dialog":Vr("cancel",r),Vr("close",r);break;case"iframe":case"object":case"embed":Vr("load",r);break;case"video":case"audio":for(l=0;l<Rr.length;l++)Vr(Rr[l],r);break;case"source":Vr("error",r);break;case"img":case"image":case"link":Vr("error",r),Vr("load",r);break;case"details":Vr("toggle",r);break;case"input":X(r,o),Vr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},Vr("invalid",r);break;case"textarea":le(r,o),Vr("invalid",r)}for(var i in ye(t,o),l=null,o)if(o.hasOwnProperty(i)){var s=o[i];"children"===i?"string"===typeof s?r.textContent!==s&&(!0!==o.suppressHydrationWarning&&Zr(r.textContent,s,e),l=["children",s]):"number"===typeof s&&r.textContent!==""+s&&(!0!==o.suppressHydrationWarning&&Zr(r.textContent,s,e),l=["children",""+s]):u.hasOwnProperty(i)&&null!=s&&"onScroll"===i&&Vr("scroll",r)}switch(t){case"input":$(r),J(r,o,!0);break;case"textarea":$(r),oe(r);break;case"select":case"option":break;default:"function"===typeof o.onClick&&(r.onclick=Jr)}r=l,n.updateQueue=r,null!==r&&(n.flags|=4)}else{i=9===l.nodeType?l:l.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=ue(t)),"http://www.w3.org/1999/xhtml"===e?"script"===t?((e=i.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=i.createElement(t,{is:r.is}):(e=i.createElement(t),"select"===t&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,t),e[dl]=n,e[pl]=r,Mu(e,n,!1,!1),n.stateNode=e;e:{switch(i=be(t,r),t){case"dialog":Vr("cancel",e),Vr("close",e),l=r;break;case"iframe":case"object":case"embed":Vr("load",e),l=r;break;case"video":case"audio":for(l=0;l<Rr.length;l++)Vr(Rr[l],e);l=r;break;case"source":Vr("error",e),l=r;break;case"img":case"image":case"link":Vr("error",e),Vr("load",e),l=r;break;case"details":Vr("toggle",e),l=r;break;case"input":X(e,r),l=Y(e,r),Vr("invalid",e);break;case"option":default:l=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},l=I({},r,{value:void 0}),Vr("invalid",e);break;case"textarea":le(e,r),l=re(e,r),Vr("invalid",e)}for(o in ye(t,l),s=l)if(s.hasOwnProperty(o)){var c=s[o];"style"===o?ge(e,c):"dangerouslySetInnerHTML"===o?null!=(c=c?c.__html:void 0)&&fe(e,c):"children"===o?"string"===typeof c?("textarea"!==t||""!==c)&&de(e,c):"number"===typeof c&&de(e,""+c):"suppressContentEditableWarning"!==o&&"suppressHydrationWarning"!==o&&"autoFocus"!==o&&(u.hasOwnProperty(o)?null!=c&&"onScroll"===o&&Vr("scroll",e):null!=c&&b(e,o,c,i))}switch(t){case"input":$(e),J(e,r,!1);break;case"textarea":$(e),oe(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(o=r.value)?te(e,!!r.multiple,o,!1):null!=r.defaultValue&&te(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof l.onClick&&(e.onclick=Jr)}switch(t){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(n.flags|=4)}null!==n.ref&&(n.flags|=512,n.flags|=2097152)}return Ku(n),null;case 6:if(e&&null!=n.stateNode)Ru(e,n,e.memoizedProps,r);else{if("string"!==typeof r&&null===n.stateNode)throw Error(a(166));if(t=to(no.current),to(Ja.current),fa(n)){if(r=n.stateNode,t=n.memoizedProps,r[dl]=n,(o=r.nodeValue!==t)&&null!==(e=ta))switch(e.tag){case 3:Zr(r.nodeValue,t,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Zr(r.nodeValue,t,0!==(1&e.mode))}o&&(n.flags|=4)}else(r=(9===t.nodeType?t:t.ownerDocument).createTextNode(r))[dl]=n,n.stateNode=r}return Ku(n),null;case 13:if(Cl(uo),r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(la&&null!==ra&&0!==(1&n.mode)&&0===(128&n.flags))da(),pa(),n.flags|=98560,o=!1;else if(o=fa(n),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(a(318));if(!(o=null!==(o=n.memoizedState)?o.dehydrated:null))throw Error(a(317));o[dl]=n}else pa(),0===(128&n.flags)&&(n.memoizedState=null),n.flags|=4;Ku(n),o=!1}else null!==aa&&(us(aa),aa=null),o=!0;if(!o)return 65536&n.flags?n:null}return 0!==(128&n.flags)?(n.lanes=t,n):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(n.child.flags|=8192,0!==(1&n.mode)&&(null===e||0!==(1&uo.current)?0===Ri&&(Ri=3):gs())),null!==n.updateQueue&&(n.flags|=4),Ku(n),null);case 4:return lo(),Fu(e,n),null===e&&Hr(n.stateNode.containerInfo),Ku(n),null;case 10:return Sa(n.type._context),Ku(n),null;case 19:if(Cl(uo),null===(o=n.memoizedState))return Ku(n),null;if(r=0!==(128&n.flags),null===(i=o.rendering))if(r)$u(o,!1);else{if(0!==Ri||null!==e&&0!==(128&e.flags))for(e=n.child;null!==e;){if(null!==(i=io(e))){for(n.flags|=128,$u(o,!1),null!==(r=i.updateQueue)&&(n.updateQueue=r,n.flags|=4),n.subtreeFlags=0,r=t,t=n.child;null!==t;)e=r,(o=t).flags&=14680066,null===(i=o.alternate)?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,o.type=i.type,e=i.dependencies,o.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),t=t.sibling;return _l(uo,1&uo.current|2),n.child}e=e.sibling}null!==o.tail&&Ge()>Qi&&(n.flags|=128,r=!0,$u(o,!1),n.lanes=4194304)}else{if(!r)if(null!==(e=io(i))){if(n.flags|=128,r=!0,null!==(t=e.updateQueue)&&(n.updateQueue=t,n.flags|=4),$u(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate&&!la)return Ku(n),null}else 2*Ge()-o.renderingStartTime>Qi&&1073741824!==t&&(n.flags|=128,r=!0,$u(o,!1),n.lanes=4194304);o.isBackwards?(i.sibling=n.child,n.child=i):(null!==(t=o.last)?t.sibling=i:n.child=i,o.last=i)}return null!==o.tail?(n=o.tail,o.rendering=n,o.tail=n.sibling,o.renderingStartTime=Ge(),n.sibling=null,t=uo.current,_l(uo,r?1&t|2:1&t),n):(Ku(n),null);case 22:case 23:return ds(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(1&n.mode)?0!==(1073741824&Fi)&&(Ku(n),6&n.subtreeFlags&&(n.flags|=8192)):Ku(n),null;case 24:case 25:return null}throw Error(a(156,n.tag))}function Yu(e,n){switch(na(n),n.tag){case 1:return Ml(n.type)&&Fl(),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return lo(),Cl(Pl),Cl(Nl),co(),0!==(65536&(e=n.flags))&&0===(128&e)?(n.flags=-65537&e|128,n):null;case 5:return oo(n),null;case 13:if(Cl(uo),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(a(340));pa()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return Cl(uo),null;case 4:return lo(),null;case 10:return Sa(n.type._context),null;case 22:case 23:return ds(),null;default:return null}}Mu=function(e,n){for(var t=n.child;null!==t;){if(5===t.tag||6===t.tag)e.appendChild(t.stateNode);else if(4!==t.tag&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===n)break;for(;null===t.sibling;){if(null===t.return||t.return===n)return;t=t.return}t.sibling.return=t.return,t=t.sibling}},Fu=function(){},Du=function(e,n,t,r){var l=e.memoizedProps;if(l!==r){e=n.stateNode,to(Ja.current);var a,o=null;switch(t){case"input":l=Y(e,l),r=Y(e,r),o=[];break;case"select":l=I({},l,{value:void 0}),r=I({},r,{value:void 0}),o=[];break;case"textarea":l=re(e,l),r=re(e,r),o=[];break;default:"function"!==typeof l.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(c in ye(t,r),t=null,l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&null!=l[c])if("style"===c){var i=l[c];for(a in i)i.hasOwnProperty(a)&&(t||(t={}),t[a]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(u.hasOwnProperty(c)?o||(o=[]):(o=o||[]).push(c,null));for(c in r){var s=r[c];if(i=null!=l?l[c]:void 0,r.hasOwnProperty(c)&&s!==i&&(null!=s||null!=i))if("style"===c)if(i){for(a in i)!i.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(t||(t={}),t[a]="");for(a in s)s.hasOwnProperty(a)&&i[a]!==s[a]&&(t||(t={}),t[a]=s[a])}else t||(o||(o=[]),o.push(c,t)),t=s;else"dangerouslySetInnerHTML"===c?(s=s?s.__html:void 0,i=i?i.__html:void 0,null!=s&&i!==s&&(o=o||[]).push(c,s)):"children"===c?"string"!==typeof s&&"number"!==typeof s||(o=o||[]).push(c,""+s):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(u.hasOwnProperty(c)?(null!=s&&"onScroll"===c&&Vr("scroll",e),o||i===s||(o=[])):(o=o||[]).push(c,s))}t&&(o=o||[]).push("style",t);var c=o;(n.updateQueue=c)&&(n.flags|=4)}},Ru=function(e,n,t,r){t!==r&&(n.flags|=4)};var Xu=!1,Gu=!1,Zu="function"===typeof WeakSet?WeakSet:Set,Ju=null;function ei(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(r){Cs(e,n,r)}else t.current=null}function ni(e,n,t){try{t()}catch(r){Cs(e,n,r)}}var ti=!1;function ri(e,n,t){var r=n.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,void 0!==a&&ni(n,t,a)}l=l.next}while(l!==r)}}function li(e,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function ai(e){var n=e.ref;if(null!==n){var t=e.stateNode;e.tag,e=t,"function"===typeof n?n(e):n.current=e}}function oi(e){var n=e.alternate;null!==n&&(e.alternate=null,oi(n)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(n=e.stateNode)&&(delete n[dl],delete n[pl],delete n[hl],delete n[gl],delete n[vl])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ui(e){return 5===e.tag||3===e.tag||4===e.tag}function ii(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ui(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function si(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?8===t.nodeType?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(8===t.nodeType?(n=t.parentNode).insertBefore(e,t):(n=t).appendChild(e),null!==(t=t._reactRootContainer)&&void 0!==t||null!==n.onclick||(n.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(si(e,n,t),e=e.sibling;null!==e;)si(e,n,t),e=e.sibling}function ci(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ci(e,n,t),e=e.sibling;null!==e;)ci(e,n,t),e=e.sibling}var fi=null,di=!1;function pi(e,n,t){for(t=t.child;null!==t;)mi(e,n,t),t=t.sibling}function mi(e,n,t){if(an&&"function"===typeof an.onCommitFiberUnmount)try{an.onCommitFiberUnmount(ln,t)}catch(u){}switch(t.tag){case 5:Gu||ei(t,n);case 6:var r=fi,l=di;fi=null,pi(e,n,t),di=l,null!==(fi=r)&&(di?(e=fi,t=t.stateNode,8===e.nodeType?e.parentNode.removeChild(t):e.removeChild(t)):fi.removeChild(t.stateNode));break;case 18:null!==fi&&(di?(e=fi,t=t.stateNode,8===e.nodeType?il(e.parentNode,t):1===e.nodeType&&il(e,t),Qn(e)):il(fi,t.stateNode));break;case 4:r=fi,l=di,fi=t.stateNode.containerInfo,di=!0,pi(e,n,t),fi=r,di=l;break;case 0:case 11:case 14:case 15:if(!Gu&&(null!==(r=t.updateQueue)&&null!==(r=r.lastEffect))){l=r=r.next;do{var a=l,o=a.destroy;a=a.tag,void 0!==o&&(0!==(2&a)||0!==(4&a))&&ni(t,n,o),l=l.next}while(l!==r)}pi(e,n,t);break;case 1:if(!Gu&&(ei(t,n),"function"===typeof(r=t.stateNode).componentWillUnmount))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(u){Cs(t,n,u)}pi(e,n,t);break;case 21:pi(e,n,t);break;case 22:1&t.mode?(Gu=(r=Gu)||null!==t.memoizedState,pi(e,n,t),Gu=r):pi(e,n,t);break;default:pi(e,n,t)}}function hi(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new Zu),n.forEach((function(n){var r=Ps.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))}))}}function gi(e,n){var t=n.deletions;if(null!==t)for(var r=0;r<t.length;r++){var l=t[r];try{var o=e,u=n,i=u;e:for(;null!==i;){switch(i.tag){case 5:fi=i.stateNode,di=!1;break e;case 3:case 4:fi=i.stateNode.containerInfo,di=!0;break e}i=i.return}if(null===fi)throw Error(a(160));mi(o,u,l),fi=null,di=!1;var s=l.alternate;null!==s&&(s.return=null),l.return=null}catch(c){Cs(l,n,c)}}if(12854&n.subtreeFlags)for(n=n.child;null!==n;)vi(n,e),n=n.sibling}function vi(e,n){var t=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gi(n,e),yi(e),4&r){try{ri(3,e,e.return),li(3,e)}catch(g){Cs(e,e.return,g)}try{ri(5,e,e.return)}catch(g){Cs(e,e.return,g)}}break;case 1:gi(n,e),yi(e),512&r&&null!==t&&ei(t,t.return);break;case 5:if(gi(n,e),yi(e),512&r&&null!==t&&ei(t,t.return),32&e.flags){var l=e.stateNode;try{de(l,"")}catch(g){Cs(e,e.return,g)}}if(4&r&&null!=(l=e.stateNode)){var o=e.memoizedProps,u=null!==t?t.memoizedProps:o,i=e.type,s=e.updateQueue;if(e.updateQueue=null,null!==s)try{"input"===i&&"radio"===o.type&&null!=o.name&&G(l,o),be(i,u);var c=be(i,o);for(u=0;u<s.length;u+=2){var f=s[u],d=s[u+1];"style"===f?ge(l,d):"dangerouslySetInnerHTML"===f?fe(l,d):"children"===f?de(l,d):b(l,f,d,c)}switch(i){case"input":Z(l,o);break;case"textarea":ae(l,o);break;case"select":var p=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!o.multiple;var m=o.value;null!=m?te(l,!!o.multiple,m,!1):p!==!!o.multiple&&(null!=o.defaultValue?te(l,!!o.multiple,o.defaultValue,!0):te(l,!!o.multiple,o.multiple?[]:"",!1))}l[pl]=o}catch(g){Cs(e,e.return,g)}}break;case 6:if(gi(n,e),yi(e),4&r){if(null===e.stateNode)throw Error(a(162));l=e.stateNode,o=e.memoizedProps;try{l.nodeValue=o}catch(g){Cs(e,e.return,g)}}break;case 3:if(gi(n,e),yi(e),4&r&&null!==t&&t.memoizedState.isDehydrated)try{Qn(n.containerInfo)}catch(g){Cs(e,e.return,g)}break;case 4:default:gi(n,e),yi(e);break;case 13:gi(n,e),yi(e),8192&(l=e.child).flags&&(o=null!==l.memoizedState,l.stateNode.isHidden=o,!o||null!==l.alternate&&null!==l.alternate.memoizedState||(Hi=Ge())),4&r&&hi(e);break;case 22:if(f=null!==t&&null!==t.memoizedState,1&e.mode?(Gu=(c=Gu)||f,gi(n,e),Gu=c):gi(n,e),yi(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!f&&0!==(1&e.mode))for(Ju=e,f=e.child;null!==f;){for(d=Ju=f;null!==Ju;){switch(m=(p=Ju).child,p.tag){case 0:case 11:case 14:case 15:ri(4,p,p.return);break;case 1:ei(p,p.return);var h=p.stateNode;if("function"===typeof h.componentWillUnmount){r=p,t=p.return;try{n=r,h.props=n.memoizedProps,h.state=n.memoizedState,h.componentWillUnmount()}catch(g){Cs(r,t,g)}}break;case 5:ei(p,p.return);break;case 22:if(null!==p.memoizedState){Si(d);continue}}null!==m?(m.return=p,Ju=m):Si(d)}f=f.sibling}e:for(f=null,d=e;;){if(5===d.tag){if(null===f){f=d;try{l=d.stateNode,c?"function"===typeof(o=l.style).setProperty?o.setProperty("display","none","important"):o.display="none":(i=d.stateNode,u=void 0!==(s=d.memoizedProps.style)&&null!==s&&s.hasOwnProperty("display")?s.display:null,i.style.display=he("display",u))}catch(g){Cs(e,e.return,g)}}}else if(6===d.tag){if(null===f)try{d.stateNode.nodeValue=c?"":d.memoizedProps}catch(g){Cs(e,e.return,g)}}else if((22!==d.tag&&23!==d.tag||null===d.memoizedState||d===e)&&null!==d.child){d.child.return=d,d=d.child;continue}if(d===e)break e;for(;null===d.sibling;){if(null===d.return||d.return===e)break e;f===d&&(f=null),d=d.return}f===d&&(f=null),d.sibling.return=d.return,d=d.sibling}}break;case 19:gi(n,e),yi(e),4&r&&hi(e);case 21:}}function yi(e){var n=e.flags;if(2&n){try{e:{for(var t=e.return;null!==t;){if(ui(t)){var r=t;break e}t=t.return}throw Error(a(160))}switch(r.tag){case 5:var l=r.stateNode;32&r.flags&&(de(l,""),r.flags&=-33),ci(e,ii(e),l);break;case 3:case 4:var o=r.stateNode.containerInfo;si(e,ii(e),o);break;default:throw Error(a(161))}}catch(u){Cs(e,e.return,u)}e.flags&=-3}4096&n&&(e.flags&=-4097)}function bi(e,n,t){Ju=e,ki(e,n,t)}function ki(e,n,t){for(var r=0!==(1&e.mode);null!==Ju;){var l=Ju,a=l.child;if(22===l.tag&&r){var o=null!==l.memoizedState||Xu;if(!o){var u=l.alternate,i=null!==u&&null!==u.memoizedState||Gu;u=Xu;var s=Gu;if(Xu=o,(Gu=i)&&!s)for(Ju=l;null!==Ju;)i=(o=Ju).child,22===o.tag&&null!==o.memoizedState?xi(l):null!==i?(i.return=o,Ju=i):xi(l);for(;null!==a;)Ju=a,ki(a,n,t),a=a.sibling;Ju=l,Xu=u,Gu=s}wi(e)}else 0!==(8772&l.subtreeFlags)&&null!==a?(a.return=l,Ju=a):wi(e)}}function wi(e){for(;null!==Ju;){var n=Ju;if(0!==(8772&n.flags)){var t=n.alternate;try{if(0!==(8772&n.flags))switch(n.tag){case 0:case 11:case 15:Gu||li(5,n);break;case 1:var r=n.stateNode;if(4&n.flags&&!Gu)if(null===t)r.componentDidMount();else{var l=n.elementType===n.type?t.memoizedProps:ga(n.type,t.memoizedProps);r.componentDidUpdate(l,t.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=n.updateQueue;null!==o&&Ua(n,o,r);break;case 3:var u=n.updateQueue;if(null!==u){if(t=null,null!==n.child)switch(n.child.tag){case 5:case 1:t=n.child.stateNode}Ua(n,u,t)}break;case 5:var i=n.stateNode;if(null===t&&4&n.flags){t=i;var s=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":s.autoFocus&&t.focus();break;case"img":s.src&&(t.src=s.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===n.memoizedState){var c=n.alternate;if(null!==c){var f=c.memoizedState;if(null!==f){var d=f.dehydrated;null!==d&&Qn(d)}}}break;default:throw Error(a(163))}Gu||512&n.flags&&ai(n)}catch(p){Cs(n,n.return,p)}}if(n===e){Ju=null;break}if(null!==(t=n.sibling)){t.return=n.return,Ju=t;break}Ju=n.return}}function Si(e){for(;null!==Ju;){var n=Ju;if(n===e){Ju=null;break}var t=n.sibling;if(null!==t){t.return=n.return,Ju=t;break}Ju=n.return}}function xi(e){for(;null!==Ju;){var n=Ju;try{switch(n.tag){case 0:case 11:case 15:var t=n.return;try{li(4,n)}catch(i){Cs(n,t,i)}break;case 1:var r=n.stateNode;if("function"===typeof r.componentDidMount){var l=n.return;try{r.componentDidMount()}catch(i){Cs(n,l,i)}}var a=n.return;try{ai(n)}catch(i){Cs(n,a,i)}break;case 5:var o=n.return;try{ai(n)}catch(i){Cs(n,o,i)}}}catch(i){Cs(n,n.return,i)}if(n===e){Ju=null;break}var u=n.sibling;if(null!==u){u.return=n.return,Ju=u;break}Ju=n.return}}var Ei,Ci=Math.ceil,_i=k.ReactCurrentDispatcher,zi=k.ReactCurrentOwner,Ni=k.ReactCurrentBatchConfig,Pi=0,Li=null,Ti=null,Mi=0,Fi=0,Di=El(0),Ri=0,Oi=null,Ii=0,Ui=0,Vi=0,Ai=null,Bi=null,Hi=0,Qi=1/0,Wi=null,ji=!1,$i=null,Ki=null,qi=!1,Yi=null,Xi=0,Gi=0,Zi=null,Ji=-1,es=0;function ns(){return 0!==(6&Pi)?Ge():-1!==Ji?Ji:Ji=Ge()}function ts(e){return 0===(1&e.mode)?1:0!==(2&Pi)&&0!==Mi?Mi&-Mi:null!==ha.transition?(0===es&&(es=gn()),es):0!==(e=kn)?e:e=void 0===(e=window.event)?16:Gn(e.type)}function rs(e,n,t,r){if(50<Gi)throw Gi=0,Zi=null,Error(a(185));yn(e,t,r),0!==(2&Pi)&&e===Li||(e===Li&&(0===(2&Pi)&&(Ui|=t),4===Ri&&is(e,Mi)),ls(e,r),1===t&&0===Pi&&0===(1&n.mode)&&(Qi=Ge()+500,Vl&&Hl()))}function ls(e,n){var t=e.callbackNode;!function(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=e.pendingLanes;0<a;){var o=31-on(a),u=1<<o,i=l[o];-1===i?0!==(u&t)&&0===(u&r)||(l[o]=mn(u,n)):i<=n&&(e.expiredLanes|=u),a&=~u}}(e,n);var r=pn(e,e===Li?Mi:0);if(0===r)null!==t&&qe(t),e.callbackNode=null,e.callbackPriority=0;else if(n=r&-r,e.callbackPriority!==n){if(null!=t&&qe(t),1===n)0===e.tag?function(e){Vl=!0,Bl(e)}(ss.bind(null,e)):Bl(ss.bind(null,e)),ol((function(){0===(6&Pi)&&Hl()})),t=null;else{switch(wn(r)){case 1:t=Je;break;case 4:t=en;break;case 16:default:t=nn;break;case 536870912:t=rn}t=Ls(t,as.bind(null,e))}e.callbackPriority=n,e.callbackNode=t}}function as(e,n){if(Ji=-1,es=0,0!==(6&Pi))throw Error(a(327));var t=e.callbackNode;if(xs()&&e.callbackNode!==t)return null;var r=pn(e,e===Li?Mi:0);if(0===r)return null;if(0!==(30&r)||0!==(r&e.expiredLanes)||n)n=vs(e,r);else{n=r;var l=Pi;Pi|=2;var o=hs();for(Li===e&&Mi===n||(Wi=null,Qi=Ge()+500,ps(e,n));;)try{bs();break}catch(i){ms(e,i)}wa(),_i.current=o,Pi=l,null!==Ti?n=0:(Li=null,Mi=0,n=Ri)}if(0!==n){if(2===n&&(0!==(l=hn(e))&&(r=l,n=os(e,l))),1===n)throw t=Oi,ps(e,0),is(e,r),ls(e,Ge()),t;if(6===n)is(e,r);else{if(l=e.current.alternate,0===(30&r)&&!function(e){for(var n=e;;){if(16384&n.flags){var t=n.updateQueue;if(null!==t&&null!==(t=t.stores))for(var r=0;r<t.length;r++){var l=t[r],a=l.getSnapshot;l=l.value;try{if(!ur(a(),l))return!1}catch(u){return!1}}}if(t=n.child,16384&n.subtreeFlags&&null!==t)t.return=n,n=t;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}(l)&&(2===(n=vs(e,r))&&(0!==(o=hn(e))&&(r=o,n=os(e,o))),1===n))throw t=Oi,ps(e,0),is(e,r),ls(e,Ge()),t;switch(e.finishedWork=l,e.finishedLanes=r,n){case 0:case 1:throw Error(a(345));case 2:case 5:Ss(e,Bi,Wi);break;case 3:if(is(e,r),(130023424&r)===r&&10<(n=Hi+500-Ge())){if(0!==pn(e,0))break;if(((l=e.suspendedLanes)&r)!==r){ns(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=rl(Ss.bind(null,e,Bi,Wi),n);break}Ss(e,Bi,Wi);break;case 4:if(is(e,r),(4194240&r)===r)break;for(n=e.eventTimes,l=-1;0<r;){var u=31-on(r);o=1<<u,(u=n[u])>l&&(l=u),r&=~o}if(r=l,10<(r=(120>(r=Ge()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ci(r/1960))-r)){e.timeoutHandle=rl(Ss.bind(null,e,Bi,Wi),r);break}Ss(e,Bi,Wi);break;default:throw Error(a(329))}}}return ls(e,Ge()),e.callbackNode===t?as.bind(null,e):null}function os(e,n){var t=Ai;return e.current.memoizedState.isDehydrated&&(ps(e,n).flags|=256),2!==(e=vs(e,n))&&(n=Bi,Bi=t,null!==n&&us(n)),e}function us(e){null===Bi?Bi=e:Bi.push.apply(Bi,e)}function is(e,n){for(n&=~Vi,n&=~Ui,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var t=31-on(n),r=1<<t;e[t]=-1,n&=~r}}function ss(e){if(0!==(6&Pi))throw Error(a(327));xs();var n=pn(e,0);if(0===(1&n))return ls(e,Ge()),null;var t=vs(e,n);if(0!==e.tag&&2===t){var r=hn(e);0!==r&&(n=r,t=os(e,r))}if(1===t)throw t=Oi,ps(e,0),is(e,n),ls(e,Ge()),t;if(6===t)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,Ss(e,Bi,Wi),ls(e,Ge()),null}function cs(e,n){var t=Pi;Pi|=1;try{return e(n)}finally{0===(Pi=t)&&(Qi=Ge()+500,Vl&&Hl())}}function fs(e){null!==Yi&&0===Yi.tag&&0===(6&Pi)&&xs();var n=Pi;Pi|=1;var t=Ni.transition,r=kn;try{if(Ni.transition=null,kn=1,e)return e()}finally{kn=r,Ni.transition=t,0===(6&(Pi=n))&&Hl()}}function ds(){Fi=Di.current,Cl(Di)}function ps(e,n){e.finishedWork=null,e.finishedLanes=0;var t=e.timeoutHandle;if(-1!==t&&(e.timeoutHandle=-1,ll(t)),null!==Ti)for(t=Ti.return;null!==t;){var r=t;switch(na(r),r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&Fl();break;case 3:lo(),Cl(Pl),Cl(Nl),co();break;case 5:oo(r);break;case 4:lo();break;case 13:case 19:Cl(uo);break;case 10:Sa(r.type._context);break;case 22:case 23:ds()}t=t.return}if(Li=e,Ti=e=Ds(e.current,null),Mi=Fi=n,Ri=0,Oi=null,Vi=Ui=Ii=0,Bi=Ai=null,null!==_a){for(n=0;n<_a.length;n++)if(null!==(r=(t=_a[n]).interleaved)){t.interleaved=null;var l=r.next,a=t.pending;if(null!==a){var o=a.next;a.next=l,r.next=o}t.pending=r}_a=null}return e}function ms(e,n){for(;;){var t=Ti;try{if(wa(),fo.current=ou,yo){for(var r=ho.memoizedState;null!==r;){var l=r.queue;null!==l&&(l.pending=null),r=r.next}yo=!1}if(mo=0,vo=go=ho=null,bo=!1,ko=0,zi.current=null,null===t||null===t.return){Ri=1,Oi=n,Ti=null;break}e:{var o=e,u=t.return,i=t,s=n;if(n=Mi,i.flags|=32768,null!==s&&"object"===typeof s&&"function"===typeof s.then){var c=s,f=i,d=f.tag;if(0===(1&f.mode)&&(0===d||11===d||15===d)){var p=f.alternate;p?(f.updateQueue=p.updateQueue,f.memoizedState=p.memoizedState,f.lanes=p.lanes):(f.updateQueue=null,f.memoizedState=null)}var m=vu(u);if(null!==m){m.flags&=-257,yu(m,u,i,0,n),1&m.mode&&gu(o,c,n),s=c;var h=(n=m).updateQueue;if(null===h){var g=new Set;g.add(s),n.updateQueue=g}else h.add(s);break e}if(0===(1&n)){gu(o,c,n),gs();break e}s=Error(a(426))}else if(la&&1&i.mode){var v=vu(u);if(null!==v){0===(65536&v.flags)&&(v.flags|=256),yu(v,u,i,0,n),ma(cu(s,i));break e}}o=s=cu(s,i),4!==Ri&&(Ri=2),null===Ai?Ai=[o]:Ai.push(o),o=u;do{switch(o.tag){case 3:o.flags|=65536,n&=-n,o.lanes|=n,Oa(o,mu(0,s,n));break e;case 1:i=s;var y=o.type,b=o.stateNode;if(0===(128&o.flags)&&("function"===typeof y.getDerivedStateFromError||null!==b&&"function"===typeof b.componentDidCatch&&(null===Ki||!Ki.has(b)))){o.flags|=65536,n&=-n,o.lanes|=n,Oa(o,hu(o,i,n));break e}}o=o.return}while(null!==o)}ws(t)}catch(k){n=k,Ti===t&&null!==t&&(Ti=t=t.return);continue}break}}function hs(){var e=_i.current;return _i.current=ou,null===e?ou:e}function gs(){0!==Ri&&3!==Ri&&2!==Ri||(Ri=4),null===Li||0===(268435455&Ii)&&0===(268435455&Ui)||is(Li,Mi)}function vs(e,n){var t=Pi;Pi|=2;var r=hs();for(Li===e&&Mi===n||(Wi=null,ps(e,n));;)try{ys();break}catch(l){ms(e,l)}if(wa(),Pi=t,_i.current=r,null!==Ti)throw Error(a(261));return Li=null,Mi=0,Ri}function ys(){for(;null!==Ti;)ks(Ti)}function bs(){for(;null!==Ti&&!Ye();)ks(Ti)}function ks(e){var n=Ei(e.alternate,e,Fi);e.memoizedProps=e.pendingProps,null===n?ws(e):Ti=n,zi.current=null}function ws(e){var n=e;do{var t=n.alternate;if(e=n.return,0===(32768&n.flags)){if(null!==(t=qu(t,n,Fi)))return void(Ti=t)}else{if(null!==(t=Yu(t,n)))return t.flags&=32767,void(Ti=t);if(null===e)return Ri=6,void(Ti=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(n=n.sibling))return void(Ti=n);Ti=n=e}while(null!==n);0===Ri&&(Ri=5)}function Ss(e,n,t){var r=kn,l=Ni.transition;try{Ni.transition=null,kn=1,function(e,n,t,r){do{xs()}while(null!==Yi);if(0!==(6&Pi))throw Error(a(327));t=e.finishedWork;var l=e.finishedLanes;if(null===t)return null;if(e.finishedWork=null,e.finishedLanes=0,t===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var o=t.lanes|t.childLanes;if(function(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<t;){var l=31-on(t),a=1<<l;n[l]=0,r[l]=-1,e[l]=-1,t&=~a}}(e,o),e===Li&&(Ti=Li=null,Mi=0),0===(2064&t.subtreeFlags)&&0===(2064&t.flags)||qi||(qi=!0,Ls(nn,(function(){return xs(),null}))),o=0!==(15990&t.flags),0!==(15990&t.subtreeFlags)||o){o=Ni.transition,Ni.transition=null;var u=kn;kn=1;var i=Pi;Pi|=4,zi.current=null,function(e,n){if(el=jn,pr(e=dr())){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{t.nodeType,o.nodeType}catch(w){t=null;break e}var u=0,i=-1,s=-1,c=0,f=0,d=e,p=null;n:for(;;){for(var m;d!==t||0!==l&&3!==d.nodeType||(i=u+l),d!==o||0!==r&&3!==d.nodeType||(s=u+r),3===d.nodeType&&(u+=d.nodeValue.length),null!==(m=d.firstChild);)p=d,d=m;for(;;){if(d===e)break n;if(p===t&&++c===l&&(i=u),p===o&&++f===r&&(s=u),null!==(m=d.nextSibling))break;p=(d=p).parentNode}d=m}t=-1===i||-1===s?null:{start:i,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(nl={focusedElem:e,selectionRange:t},jn=!1,Ju=n;null!==Ju;)if(e=(n=Ju).child,0!==(1028&n.subtreeFlags)&&null!==e)e.return=n,Ju=e;else for(;null!==Ju;){n=Ju;try{var h=n.alternate;if(0!==(1024&n.flags))switch(n.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,v=h.memoizedState,y=n.stateNode,b=y.getSnapshotBeforeUpdate(n.elementType===n.type?g:ga(n.type,g),v);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var k=n.stateNode.containerInfo;1===k.nodeType?k.textContent="":9===k.nodeType&&k.documentElement&&k.removeChild(k.documentElement);break;default:throw Error(a(163))}}catch(w){Cs(n,n.return,w)}if(null!==(e=n.sibling)){e.return=n.return,Ju=e;break}Ju=n.return}h=ti,ti=!1}(e,t),vi(t,e),mr(nl),jn=!!el,nl=el=null,e.current=t,bi(t,e,l),Xe(),Pi=i,kn=u,Ni.transition=o}else e.current=t;if(qi&&(qi=!1,Yi=e,Xi=l),o=e.pendingLanes,0===o&&(Ki=null),function(e){if(an&&"function"===typeof an.onCommitFiberRoot)try{an.onCommitFiberRoot(ln,e,void 0,128===(128&e.current.flags))}catch(n){}}(t.stateNode),ls(e,Ge()),null!==n)for(r=e.onRecoverableError,t=0;t<n.length;t++)l=n[t],r(l.value,{componentStack:l.stack,digest:l.digest});if(ji)throw ji=!1,e=$i,$i=null,e;0!==(1&Xi)&&0!==e.tag&&xs(),o=e.pendingLanes,0!==(1&o)?e===Zi?Gi++:(Gi=0,Zi=e):Gi=0,Hl()}(e,n,t,r)}finally{Ni.transition=l,kn=r}return null}function xs(){if(null!==Yi){var e=wn(Xi),n=Ni.transition,t=kn;try{if(Ni.transition=null,kn=16>e?16:e,null===Yi)var r=!1;else{if(e=Yi,Yi=null,Xi=0,0!==(6&Pi))throw Error(a(331));var l=Pi;for(Pi|=4,Ju=e.current;null!==Ju;){var o=Ju,u=o.child;if(0!==(16&Ju.flags)){var i=o.deletions;if(null!==i){for(var s=0;s<i.length;s++){var c=i[s];for(Ju=c;null!==Ju;){var f=Ju;switch(f.tag){case 0:case 11:case 15:ri(8,f,o)}var d=f.child;if(null!==d)d.return=f,Ju=d;else for(;null!==Ju;){var p=(f=Ju).sibling,m=f.return;if(oi(f),f===c){Ju=null;break}if(null!==p){p.return=m,Ju=p;break}Ju=m}}}var h=o.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var v=g.sibling;g.sibling=null,g=v}while(null!==g)}}Ju=o}}if(0!==(2064&o.subtreeFlags)&&null!==u)u.return=o,Ju=u;else e:for(;null!==Ju;){if(0!==(2048&(o=Ju).flags))switch(o.tag){case 0:case 11:case 15:ri(9,o,o.return)}var y=o.sibling;if(null!==y){y.return=o.return,Ju=y;break e}Ju=o.return}}var b=e.current;for(Ju=b;null!==Ju;){var k=(u=Ju).child;if(0!==(2064&u.subtreeFlags)&&null!==k)k.return=u,Ju=k;else e:for(u=b;null!==Ju;){if(0!==(2048&(i=Ju).flags))try{switch(i.tag){case 0:case 11:case 15:li(9,i)}}catch(S){Cs(i,i.return,S)}if(i===u){Ju=null;break e}var w=i.sibling;if(null!==w){w.return=i.return,Ju=w;break e}Ju=i.return}}if(Pi=l,Hl(),an&&"function"===typeof an.onPostCommitFiberRoot)try{an.onPostCommitFiberRoot(ln,e)}catch(S){}r=!0}return r}finally{kn=t,Ni.transition=n}}return!1}function Es(e,n,t){e=Da(e,n=mu(0,n=cu(t,n),1),1),n=ns(),null!==e&&(yn(e,1,n),ls(e,n))}function Cs(e,n,t){if(3===e.tag)Es(e,e,t);else for(;null!==n;){if(3===n.tag){Es(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"===typeof n.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Ki||!Ki.has(r))){n=Da(n,e=hu(n,e=cu(t,e),1),1),e=ns(),null!==n&&(yn(n,1,e),ls(n,e));break}}n=n.return}}function _s(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),n=ns(),e.pingedLanes|=e.suspendedLanes&t,Li===e&&(Mi&t)===t&&(4===Ri||3===Ri&&(130023424&Mi)===Mi&&500>Ge()-Hi?ps(e,0):Vi|=t),ls(e,n)}function zs(e,n){0===n&&(0===(1&e.mode)?n=1:(n=fn,0===(130023424&(fn<<=1))&&(fn=4194304)));var t=ns();null!==(e=Pa(e,n))&&(yn(e,n,t),ls(e,t))}function Ns(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),zs(e,t)}function Ps(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(n),zs(e,t)}function Ls(e,n){return Ke(e,n)}function Ts(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ms(e,n,t,r){return new Ts(e,n,t,r)}function Fs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ds(e,n){var t=e.alternate;return null===t?((t=Ms(e.tag,n,e.key,e.mode)).elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=14680064&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Rs(e,n,t,r,l,o){var u=2;if(r=e,"function"===typeof e)Fs(e)&&(u=1);else if("string"===typeof e)u=5;else e:switch(e){case x:return Os(t.children,l,o,n);case E:u=8,l|=8;break;case C:return(e=Ms(12,t,n,2|l)).elementType=C,e.lanes=o,e;case P:return(e=Ms(13,t,n,l)).elementType=P,e.lanes=o,e;case L:return(e=Ms(19,t,n,l)).elementType=L,e.lanes=o,e;case F:return Is(t,l,o,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case _:u=10;break e;case z:u=9;break e;case N:u=11;break e;case T:u=14;break e;case M:u=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(n=Ms(u,t,n,l)).elementType=e,n.type=r,n.lanes=o,n}function Os(e,n,t,r){return(e=Ms(7,e,r,n)).lanes=t,e}function Is(e,n,t,r){return(e=Ms(22,e,r,n)).elementType=F,e.lanes=t,e.stateNode={isHidden:!1},e}function Us(e,n,t){return(e=Ms(6,e,null,n)).lanes=t,e}function Vs(e,n,t){return(n=Ms(4,null!==e.children?e.children:[],e.key,n)).lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function As(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=vn(0),this.expirationTimes=vn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=vn(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Bs(e,n,t,r,l,a,o,u,i){return e=new As(e,n,t,u,i),1===n?(n=1,!0===a&&(n|=8)):n=0,a=Ms(3,null,null,n),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ta(a),e}function Hs(e){if(!e)return zl;e:{if(He(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(Ml(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(null!==n);throw Error(a(171))}if(1===e.tag){var t=e.type;if(Ml(t))return Rl(e,t,n)}return n}function Qs(e,n,t,r,l,a,o,u,i){return(e=Bs(t,r,!0,e,0,a,0,u,i)).context=Hs(null),t=e.current,(a=Fa(r=ns(),l=ts(t))).callback=void 0!==n&&null!==n?n:null,Da(t,a,l),e.current.lanes=l,yn(e,l,r),ls(e,r),e}function Ws(e,n,t,r){var l=n.current,a=ns(),o=ts(l);return t=Hs(t),null===n.context?n.context=t:n.pendingContext=t,(n=Fa(a,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(n.callback=r),null!==(e=Da(l,n,o))&&(rs(e,l,o,a),Ra(e,l,o)),o}function js(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function $s(e,n){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t<n?t:n}}function Ks(e,n){$s(e,n),(e=e.alternate)&&$s(e,n)}Ei=function(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps||Pl.current)ku=!0;else{if(0===(e.lanes&t)&&0===(128&n.flags))return ku=!1,function(e,n,t){switch(n.tag){case 3:Lu(n),pa();break;case 5:ao(n);break;case 1:Ml(n.type)&&Ol(n);break;case 4:ro(n,n.stateNode.containerInfo);break;case 10:var r=n.type._context,l=n.memoizedProps.value;_l(va,r._currentValue),r._currentValue=l;break;case 13:if(null!==(r=n.memoizedState))return null!==r.dehydrated?(_l(uo,1&uo.current),n.flags|=128,null):0!==(t&n.child.childLanes)?Uu(e,n,t):(_l(uo,1&uo.current),null!==(e=ju(e,n,t))?e.sibling:null);_l(uo,1&uo.current);break;case 19:if(r=0!==(t&n.childLanes),0!==(128&e.flags)){if(r)return Qu(e,n,t);n.flags|=128}if(null!==(l=n.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),_l(uo,uo.current),r)break;return null;case 22:case 23:return n.lanes=0,Cu(e,n,t)}return ju(e,n,t)}(e,n,t);ku=0!==(131072&e.flags)}else ku=!1,la&&0!==(1048576&n.flags)&&Jl(n,$l,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;Wu(e,n),e=n.pendingProps;var l=Tl(n,Nl.current);Ea(n,t),l=Eo(null,n,r,e,l,t);var o=Co();return n.flags|=1,"object"===typeof l&&null!==l&&"function"===typeof l.render&&void 0===l.$$typeof?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Ml(r)?(o=!0,Ol(n)):o=!1,n.memoizedState=null!==l.state&&void 0!==l.state?l.state:null,Ta(n),l.updater=Ba,n.stateNode=l,l._reactInternals=n,ja(n,r,e,t),n=Pu(null,n,r,!0,o,t)):(n.tag=0,la&&o&&ea(n),wu(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(Wu(e,n),e=n.pendingProps,r=(l=r._init)(r._payload),n.type=r,l=n.tag=function(e){if("function"===typeof e)return Fs(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===N)return 11;if(e===T)return 14}return 2}(r),e=ga(r,e),l){case 0:n=zu(null,n,r,e,t);break e;case 1:n=Nu(null,n,r,e,t);break e;case 11:n=Su(null,n,r,e,t);break e;case 14:n=xu(null,n,r,ga(r.type,e),t);break e}throw Error(a(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,zu(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 1:return r=n.type,l=n.pendingProps,Nu(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 3:e:{if(Lu(n),null===e)throw Error(a(387));r=n.pendingProps,l=(o=n.memoizedState).element,Ma(e,n),Ia(n,r,null,t);var u=n.memoizedState;if(r=u.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},n.updateQueue.baseState=o,n.memoizedState=o,256&n.flags){n=Tu(e,n,r,t,l=cu(Error(a(423)),n));break e}if(r!==l){n=Tu(e,n,r,t,l=cu(Error(a(424)),n));break e}for(ra=sl(n.stateNode.containerInfo.firstChild),ta=n,la=!0,aa=null,t=Ga(n,null,r,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling}else{if(pa(),r===l){n=ju(e,n,t);break e}wu(e,n,r,t)}n=n.child}return n;case 5:return ao(n),null===e&&sa(n),r=n.type,l=n.pendingProps,o=null!==e?e.memoizedProps:null,u=l.children,tl(r,l)?u=null:null!==o&&tl(r,o)&&(n.flags|=32),_u(e,n),wu(e,n,u,t),n.child;case 6:return null===e&&sa(n),null;case 13:return Uu(e,n,t);case 4:return ro(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=Xa(n,null,r,t):wu(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,Su(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 7:return wu(e,n,n.pendingProps,t),n.child;case 8:case 12:return wu(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,o=n.memoizedProps,u=l.value,_l(va,r._currentValue),r._currentValue=u,null!==o)if(ur(o.value,u)){if(o.children===l.children&&!Pl.current){n=ju(e,n,t);break e}}else for(null!==(o=n.child)&&(o.return=n);null!==o;){var i=o.dependencies;if(null!==i){u=o.child;for(var s=i.firstContext;null!==s;){if(s.context===r){if(1===o.tag){(s=Fa(-1,t&-t)).tag=2;var c=o.updateQueue;if(null!==c){var f=(c=c.shared).pending;null===f?s.next=s:(s.next=f.next,f.next=s),c.pending=s}}o.lanes|=t,null!==(s=o.alternate)&&(s.lanes|=t),xa(o.return,t,n),i.lanes|=t;break}s=s.next}}else if(10===o.tag)u=o.type===n.type?null:o.child;else if(18===o.tag){if(null===(u=o.return))throw Error(a(341));u.lanes|=t,null!==(i=u.alternate)&&(i.lanes|=t),xa(u,t,n),u=o.sibling}else u=o.child;if(null!==u)u.return=o;else for(u=o;null!==u;){if(u===n){u=null;break}if(null!==(o=u.sibling)){o.return=u.return,u=o;break}u=u.return}o=u}wu(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Ea(n,t),r=r(l=Ca(l)),n.flags|=1,wu(e,n,r,t),n.child;case 14:return l=ga(r=n.type,n.pendingProps),xu(e,n,r,l=ga(r.type,l),t);case 15:return Eu(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:ga(r,l),Wu(e,n),n.tag=1,Ml(r)?(e=!0,Ol(n)):e=!1,Ea(n,t),Qa(n,r,l),ja(n,r,l,t),Pu(null,n,r,!0,e,t);case 19:return Qu(e,n,t);case 22:return Cu(e,n,t)}throw Error(a(156,n.tag))};var qs="function"===typeof reportError?reportError:function(e){console.error(e)};function Ys(e){this._internalRoot=e}function Xs(e){this._internalRoot=e}function Gs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Js(){}function ec(e,n,t,r,l){var a=t._reactRootContainer;if(a){var o=a;if("function"===typeof l){var u=l;l=function(){var e=js(o);u.call(e)}}Ws(n,o,e,l)}else o=function(e,n,t,r,l){if(l){if("function"===typeof r){var a=r;r=function(){var e=js(o);a.call(e)}}var o=Qs(n,r,e,0,null,!1,0,"",Js);return e._reactRootContainer=o,e[ml]=o.current,Hr(8===e.nodeType?e.parentNode:e),fs(),o}for(;l=e.lastChild;)e.removeChild(l);if("function"===typeof r){var u=r;r=function(){var e=js(i);u.call(e)}}var i=Bs(e,0,!1,null,0,!1,0,"",Js);return e._reactRootContainer=i,e[ml]=i.current,Hr(8===e.nodeType?e.parentNode:e),fs((function(){Ws(n,i,t,r)})),i}(t,n,e,l,r);return js(o)}Xs.prototype.render=Ys.prototype.render=function(e){var n=this._internalRoot;if(null===n)throw Error(a(409));Ws(e,n,null,null)},Xs.prototype.unmount=Ys.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var n=e.containerInfo;fs((function(){Ws(null,e,null,null)})),n[ml]=null}},Xs.prototype.unstable_scheduleHydration=function(e){if(e){var n=Cn();e={blockedOn:null,target:e,priority:n};for(var t=0;t<Dn.length&&0!==n&&n<Dn[t].priority;t++);Dn.splice(t,0,e),0===t&&Un(e)}},Sn=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var t=dn(n.pendingLanes);0!==t&&(bn(n,1|t),ls(n,Ge()),0===(6&Pi)&&(Qi=Ge()+500,Hl()))}break;case 13:fs((function(){var n=Pa(e,1);if(null!==n){var t=ns();rs(n,e,1,t)}})),Ks(e,1)}},xn=function(e){if(13===e.tag){var n=Pa(e,134217728);if(null!==n)rs(n,e,134217728,ns());Ks(e,134217728)}},En=function(e){if(13===e.tag){var n=ts(e),t=Pa(e,n);if(null!==t)rs(t,e,n,ns());Ks(e,n)}},Cn=function(){return kn},_n=function(e,n){var t=kn;try{return kn=e,n()}finally{kn=t}},Se=function(e,n,t){switch(n){case"input":if(Z(e,t),n=t.name,"radio"===t.type&&null!=n){for(t=e;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<t.length;n++){var r=t[n];if(r!==e&&r.form===e.form){var l=wl(r);if(!l)throw Error(a(90));K(r),Z(r,l)}}}break;case"textarea":ae(e,t);break;case"select":null!=(n=t.value)&&te(e,!!t.multiple,n,!1)}},Ne=cs,Pe=fs;var nc={usingClientEntryPoint:!1,Events:[bl,kl,wl,_e,ze,cs]},tc={findFiberByHostInstance:yl,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},rc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=je(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var lc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!lc.isDisabled&&lc.supportsFiber)try{ln=lc.inject(rc),an=lc}catch(ce){}}n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=nc,n.createPortal=function(e,n){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Gs(n))throw Error(a(200));return function(e,n,t){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:n,implementation:t}}(e,n,null,t)},n.createRoot=function(e,n){if(!Gs(e))throw Error(a(299));var t=!1,r="",l=qs;return null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(t=!0),void 0!==n.identifierPrefix&&(r=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),n=Bs(e,1,!1,null,0,t,0,r,l),e[ml]=n.current,Hr(8===e.nodeType?e.parentNode:e),new Ys(n)},n.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var n=e._reactInternals;if(void 0===n){if("function"===typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=je(n))?null:e.stateNode},n.flushSync=function(e){return fs(e)},n.hydrate=function(e,n,t){if(!Zs(n))throw Error(a(200));return ec(null,e,n,!0,t)},n.hydrateRoot=function(e,n,t){if(!Gs(e))throw Error(a(405));var r=null!=t&&t.hydratedSources||null,l=!1,o="",u=qs;if(null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(l=!0),void 0!==t.identifierPrefix&&(o=t.identifierPrefix),void 0!==t.onRecoverableError&&(u=t.onRecoverableError)),n=Qs(n,null,e,1,null!=t?t:null,l,0,o,u),e[ml]=n.current,Hr(e),r)for(e=0;e<r.length;e++)l=(l=(t=r[e])._getVersion)(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,l]:n.mutableSourceEagerHydrationData.push(t,l);return new Xs(n)},n.render=function(e,n,t){if(!Zs(n))throw Error(a(200));return ec(null,e,n,!1,t)},n.unmountComponentAtNode=function(e){if(!Zs(e))throw Error(a(40));return!!e._reactRootContainer&&(fs((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[ml]=null}))})),!0)},n.unstable_batchedUpdates=cs,n.unstable_renderSubtreeIntoContainer=function(e,n,t,r){if(!Zs(t))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return ec(e,n,t,!1,r)},n.version="18.2.0-next-9e3b772b8-20220608"},20745:function(e,n,t){var r=t(73935);n.s=r.createRoot,r.hydrateRoot},73935:function(e,n,t){!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}(),e.exports=t(64448)}}]); \ No newline at end of file
+/*! For license information please see npm.react.dom.5f194c629d90a617d1ac.js.LICENSE.txt */
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ba8710fb-a254-41ba-8ea0-904d4f370e2d",e._sentryDebugIdIdentifier="sentry-dbid-ba8710fb-a254-41ba-8ea0-904d4f370e2d")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[967],{64448:function(e,n,t){var r=t(67294),l=t(63840);function a(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t<arguments.length;t++)n+="&args[]="+encodeURIComponent(arguments[t]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,u={};function i(e,n){s(e,n),s(e+"Capture",n)}function s(e,n){for(u[e]=n,e=0;e<n.length;e++)o.add(n[e])}var c=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),f=Object.prototype.hasOwnProperty,d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e,n,t,r,l,a,o){this.acceptsBooleans=2===n||3===n||4===n,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=t,this.propertyName=e,this.type=n,this.sanitizeURL=a,this.removeEmptyString=o}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var n=e[0];g[n]=new h(n,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,n,t,r){var l=g.hasOwnProperty(n)?g[n]:null;(null!==l?0!==l.type:r||!(2<n.length)||"o"!==n[0]&&"O"!==n[0]||"n"!==n[1]&&"N"!==n[1])&&(function(e,n,t,r){if(null===n||"undefined"===typeof n||function(e,n,t,r){if(null!==t&&0===t.type)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==t?!t.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,n,t,r))return!0;if(r)return!1;if(null!==t)switch(t.type){case 3:return!n;case 4:return!1===n;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}(n,t,l,r)&&(t=null),r||null===l?function(e){return!!f.call(m,e)||!f.call(p,e)&&(d.test(e)?m[e]=!0:(p[e]=!0,!1))}(n)&&(null===t?e.removeAttribute(n):e.setAttribute(n,""+t)):l.mustUseProperty?e[l.propertyName]=null===t?3!==l.type&&"":t:(n=l.attributeName,r=l.attributeNamespace,null===t?e.removeAttribute(n):(t=3===(l=l.type)||4===l&&!0===t?"":""+t,r?e.setAttributeNS(r,n,t):e.setAttribute(n,t))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var n=e.replace(v,y);g[n]=new h(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),S=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),C=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),z=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),P=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),T=Symbol.for("react.memo"),M=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var F=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var D=Symbol.iterator;function R(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=D&&e[D]||e["@@iterator"])?e:null}var O,I=Object.assign;function U(e){if(void 0===O)try{throw Error()}catch(t){var n=t.stack.trim().match(/\n( *(at )?)/);O=n&&n[1]||""}return"\n"+O+e}var V=!1;function A(e,n){if(!e||V)return"";V=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(s){var r=s}Reflect.construct(e,[],n)}else{try{n.call()}catch(s){r=s}e.call(n.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"===typeof s.stack){for(var l=s.stack.split("\n"),a=r.stack.split("\n"),o=l.length-1,u=a.length-1;1<=o&&0<=u&&l[o]!==a[u];)u--;for(;1<=o&&0<=u;o--,u--)if(l[o]!==a[u]){if(1!==o||1!==u)do{if(o--,0>--u||l[o]!==a[u]){var i="\n"+l[o].replace(" at new "," at ");return e.displayName&&i.includes("<anonymous>")&&(i=i.replace("<anonymous>",e.displayName)),i}}while(1<=o&&0<=u);break}}}finally{V=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?U(e):""}function B(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=A(e.type,!1);case 11:return e=A(e.type.render,!1);case 1:return e=A(e.type,!0);default:return""}}function H(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case E:return"StrictMode";case P:return"Suspense";case L:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case z:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case N:var n=e.render;return(e=e.displayName)||(e=""!==(e=n.displayName||n.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case T:return null!==(n=e.displayName||null)?n:H(e.type)||"Memo";case M:n=e._payload,e=e._init;try{return H(e(n))}catch(t){}}return null}function Q(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=n.render).displayName||e.name||"",n.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return H(n);case 8:return n===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof n)return n.displayName||n.name||null;if("string"===typeof n)return n}return null}function W(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function j(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function $(e){e._valueTracker||(e._valueTracker=function(e){var n=j(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&"undefined"!==typeof t&&"function"===typeof t.get&&"function"===typeof t.set){var l=t.get,a=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e))}function K(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=j(e)?e.checked?"true":"false":e.value),(e=r)!==t&&(n.setValue(e),!0)}function q(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}function Y(e,n){var t=n.checked;return I({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=t?t:e._wrapperState.initialChecked})}function X(e,n){var t=null==n.defaultValue?"":n.defaultValue,r=null!=n.checked?n.checked:n.defaultChecked;t=W(null!=n.value?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:"checkbox"===n.type||"radio"===n.type?null!=n.checked:null!=n.value}}function G(e,n){null!=(n=n.checked)&&b(e,"checked",n,!1)}function Z(e,n){G(e,n);var t=W(n.value),r=n.type;if(null!=t)"number"===r?(0===t&&""===e.value||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");n.hasOwnProperty("value")?ee(e,n.type,t):n.hasOwnProperty("defaultValue")&&ee(e,n.type,W(n.defaultValue)),null==n.checked&&null!=n.defaultChecked&&(e.defaultChecked=!!n.defaultChecked)}function J(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!("submit"!==r&&"reset"!==r||void 0!==n.value&&null!==n.value))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}""!==(t=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==t&&(e.name=t)}function ee(e,n,t){"number"===n&&q(e.ownerDocument)===e||(null==t?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var ne=Array.isArray;function te(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l<t.length;l++)n["$"+t[l]]=!0;for(t=0;t<e.length;t++)l=n.hasOwnProperty("$"+e[t].value),e[t].selected!==l&&(e[t].selected=l),l&&r&&(e[t].defaultSelected=!0)}else{for(t=""+W(t),n=null,l=0;l<e.length;l++){if(e[l].value===t)return e[l].selected=!0,void(r&&(e[l].defaultSelected=!0));null!==n||e[l].disabled||(n=e[l])}null!==n&&(n.selected=!0)}}function re(e,n){if(null!=n.dangerouslySetInnerHTML)throw Error(a(91));return I({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,n){var t=n.value;if(null==t){if(t=n.children,n=n.defaultValue,null!=t){if(null!=n)throw Error(a(92));if(ne(t)){if(1<t.length)throw Error(a(93));t=t[0]}n=t}null==n&&(n=""),t=n}e._wrapperState={initialValue:W(t)}}function ae(e,n){var t=W(n.value),r=W(n.defaultValue);null!=t&&((t=""+t)!==e.value&&(e.value=t),null==n.defaultValue&&e.defaultValue!==t&&(e.defaultValue=t)),null!=r&&(e.defaultValue=""+r)}function oe(e){var n=e.textContent;n===e._wrapperState.initialValue&&""!==n&&null!==n&&(e.value=n)}function ue(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ie(e,n){return null==e||"http://www.w3.org/1999/xhtml"===e?ue(n):"http://www.w3.org/2000/svg"===e&&"foreignObject"===n?"http://www.w3.org/1999/xhtml":e}var se,ce,fe=(ce=function(e,n){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=n;else{for((se=se||document.createElement("div")).innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=se.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,n,t,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,n)}))}:ce);function de(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType)return void(t.nodeValue=n)}e.textContent=n}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,n,t){return null==n||"boolean"===typeof n||""===n?"":t||"number"!==typeof n||0===n||pe.hasOwnProperty(e)&&pe[e]?(""+n).trim():n+"px"}function ge(e,n){for(var t in e=e.style,n)if(n.hasOwnProperty(t)){var r=0===t.indexOf("--"),l=he(t,n[t],r);"float"===t&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}Object.keys(pe).forEach((function(e){me.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),pe[n]=pe[e]}))}));var ve=I({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,n){if(n){if(ve[e]&&(null!=n.children||null!=n.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=n.dangerouslySetInnerHTML){if(null!=n.children)throw Error(a(60));if("object"!==typeof n.dangerouslySetInnerHTML||!("__html"in n.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=n.style&&"object"!==typeof n.style)throw Error(a(62))}}function be(e,n){if(-1===e.indexOf("-"))return"string"===typeof n.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ke=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Se=null,xe=null,Ee=null;function Ce(e){if(e=bl(e)){if("function"!==typeof Se)throw Error(a(280));var n=e.stateNode;n&&(n=wl(n),Se(e.stateNode,e.type,n))}}function _e(e){xe?Ee?Ee.push(e):Ee=[e]:xe=e}function ze(){if(xe){var e=xe,n=Ee;if(Ee=xe=null,Ce(e),n)for(e=0;e<n.length;e++)Ce(n[e])}}function Ne(e,n){return e(n)}function Pe(){}var Le=!1;function Te(e,n,t){if(Le)return e(n,t);Le=!0;try{return Ne(e,n,t)}finally{Le=!1,(null!==xe||null!==Ee)&&(Pe(),ze())}}function Me(e,n){var t=e.stateNode;if(null===t)return null;var r=wl(t);if(null===r)return null;t=r[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(t&&"function"!==typeof t)throw Error(a(231,n,typeof t));return t}var Fe=!1;if(c)try{var De={};Object.defineProperty(De,"passive",{get:function(){Fe=!0}}),window.addEventListener("test",De,De),window.removeEventListener("test",De,De)}catch(ce){Fe=!1}function Re(e,n,t,r,l,a,o,u,i){var s=Array.prototype.slice.call(arguments,3);try{n.apply(t,s)}catch(c){this.onError(c)}}var Oe=!1,Ie=null,Ue=!1,Ve=null,Ae={onError:function(e){Oe=!0,Ie=e}};function Be(e,n,t,r,l,a,o,u,i){Oe=!1,Ie=null,Re.apply(Ae,arguments)}function He(e){var n=e,t=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do{0!==(4098&(n=e).flags)&&(t=n.return),e=n.return}while(e)}return 3===n.tag?t:null}function Qe(e){if(13===e.tag){var n=e.memoizedState;if(null===n&&(null!==(e=e.alternate)&&(n=e.memoizedState)),null!==n)return n.dehydrated}return null}function We(e){if(He(e)!==e)throw Error(a(188))}function je(e){return null!==(e=function(e){var n=e.alternate;if(!n){if(null===(n=He(e)))throw Error(a(188));return n!==e?null:e}for(var t=e,r=n;;){var l=t.return;if(null===l)break;var o=l.alternate;if(null===o){if(null!==(r=l.return)){t=r;continue}break}if(l.child===o.child){for(o=l.child;o;){if(o===t)return We(l),e;if(o===r)return We(l),n;o=o.sibling}throw Error(a(188))}if(t.return!==r.return)t=l,r=o;else{for(var u=!1,i=l.child;i;){if(i===t){u=!0,t=l,r=o;break}if(i===r){u=!0,r=l,t=o;break}i=i.sibling}if(!u){for(i=o.child;i;){if(i===t){u=!0,t=o,r=l;break}if(i===r){u=!0,r=o,t=l;break}i=i.sibling}if(!u)throw Error(a(189))}}if(t.alternate!==r)throw Error(a(190))}if(3!==t.tag)throw Error(a(188));return t.stateNode.current===t?e:n}(e))?$e(e):null}function $e(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var n=$e(e);if(null!==n)return n;e=e.sibling}return null}var Ke=l.unstable_scheduleCallback,qe=l.unstable_cancelCallback,Ye=l.unstable_shouldYield,Xe=l.unstable_requestPaint,Ge=l.unstable_now,Ze=l.unstable_getCurrentPriorityLevel,Je=l.unstable_ImmediatePriority,en=l.unstable_UserBlockingPriority,nn=l.unstable_NormalPriority,tn=l.unstable_LowPriority,rn=l.unstable_IdlePriority,ln=null,an=null;var on=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(un(e)/sn|0)|0},un=Math.log,sn=Math.LN2;var cn=64,fn=4194304;function dn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,o=268435455&t;if(0!==o){var u=o&~l;0!==u?r=dn(u):0!==(a&=o)&&(r=dn(a))}else 0!==(o=t&~l)?r=dn(o):0!==a&&(r=dn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&((l=r&-r)>=(a=n&-n)||16===l&&0!==(4194240&a)))return n;if(0!==(4&r)&&(r|=16&t),0!==(n=e.entangledLanes))for(e=e.entanglements,n&=r;0<n;)l=1<<(t=31-on(n)),r|=e[t],n&=~l;return r}function mn(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return-1}}function hn(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function gn(){var e=cn;return 0===(4194240&(cn<<=1))&&(cn=64),e}function vn(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function yn(e,n,t){e.pendingLanes|=n,536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[n=31-on(n)]=t}function bn(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-on(t),l=1<<r;l&n|e[r]&n&&(e[r]|=n),t&=~l}}var kn=0;function wn(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var Sn,xn,En,Cn,_n,zn=!1,Nn=[],Pn=null,Ln=null,Tn=null,Mn=new Map,Fn=new Map,Dn=[],Rn="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function On(e,n){switch(e){case"focusin":case"focusout":Pn=null;break;case"dragenter":case"dragleave":Ln=null;break;case"mouseover":case"mouseout":Tn=null;break;case"pointerover":case"pointerout":Mn.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Fn.delete(n.pointerId)}}function In(e,n,t,r,l,a){return null===e||e.nativeEvent!==a?(e={blockedOn:n,domEventName:t,eventSystemFlags:r,nativeEvent:a,targetContainers:[l]},null!==n&&(null!==(n=bl(n))&&xn(n)),e):(e.eventSystemFlags|=r,n=e.targetContainers,null!==l&&-1===n.indexOf(l)&&n.push(l),e)}function Un(e){var n=yl(e.target);if(null!==n){var t=He(n);if(null!==t)if(13===(n=t.tag)){if(null!==(n=Qe(t)))return e.blockedOn=n,void _n(e.priority,(function(){En(t)}))}else if(3===n&&t.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===t.tag?t.stateNode.containerInfo:null)}e.blockedOn=null}function Vn(e){if(null!==e.blockedOn)return!1;for(var n=e.targetContainers;0<n.length;){var t=Xn(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(null!==t)return null!==(n=bl(t))&&xn(n),e.blockedOn=t,!1;var r=new(t=e.nativeEvent).constructor(t.type,t);ke=r,t.target.dispatchEvent(r),ke=null,n.shift()}return!0}function An(e,n,t){Vn(e)&&t.delete(n)}function Bn(){zn=!1,null!==Pn&&Vn(Pn)&&(Pn=null),null!==Ln&&Vn(Ln)&&(Ln=null),null!==Tn&&Vn(Tn)&&(Tn=null),Mn.forEach(An),Fn.forEach(An)}function Hn(e,n){e.blockedOn===n&&(e.blockedOn=null,zn||(zn=!0,l.unstable_scheduleCallback(l.unstable_NormalPriority,Bn)))}function Qn(e){function n(n){return Hn(n,e)}if(0<Nn.length){Hn(Nn[0],e);for(var t=1;t<Nn.length;t++){var r=Nn[t];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Pn&&Hn(Pn,e),null!==Ln&&Hn(Ln,e),null!==Tn&&Hn(Tn,e),Mn.forEach(n),Fn.forEach(n),t=0;t<Dn.length;t++)(r=Dn[t]).blockedOn===e&&(r.blockedOn=null);for(;0<Dn.length&&null===(t=Dn[0]).blockedOn;)Un(t),null===t.blockedOn&&Dn.shift()}var Wn=k.ReactCurrentBatchConfig,jn=!0;function $n(e,n,t,r){var l=kn,a=Wn.transition;Wn.transition=null;try{kn=1,qn(e,n,t,r)}finally{kn=l,Wn.transition=a}}function Kn(e,n,t,r){var l=kn,a=Wn.transition;Wn.transition=null;try{kn=4,qn(e,n,t,r)}finally{kn=l,Wn.transition=a}}function qn(e,n,t,r){if(jn){var l=Xn(e,n,t,r);if(null===l)Wr(e,n,r,Yn,t),On(e,r);else if(function(e,n,t,r,l){switch(n){case"focusin":return Pn=In(Pn,e,n,t,r,l),!0;case"dragenter":return Ln=In(Ln,e,n,t,r,l),!0;case"mouseover":return Tn=In(Tn,e,n,t,r,l),!0;case"pointerover":var a=l.pointerId;return Mn.set(a,In(Mn.get(a)||null,e,n,t,r,l)),!0;case"gotpointercapture":return a=l.pointerId,Fn.set(a,In(Fn.get(a)||null,e,n,t,r,l)),!0}return!1}(l,e,n,t,r))r.stopPropagation();else if(On(e,r),4&n&&-1<Rn.indexOf(e)){for(;null!==l;){var a=bl(l);if(null!==a&&Sn(a),null===(a=Xn(e,n,t,r))&&Wr(e,n,r,Yn,t),a===l)break;l=a}null!==l&&r.stopPropagation()}else Wr(e,n,r,null,t)}}var Yn=null;function Xn(e,n,t,r){if(Yn=null,null!==(e=yl(e=we(r))))if(null===(n=He(e)))e=null;else if(13===(t=n.tag)){if(null!==(e=Qe(n)))return e;e=null}else if(3===t){if(n.stateNode.current.memoizedState.isDehydrated)return 3===n.tag?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Yn=e,null}function Gn(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ze()){case Je:return 1;case en:return 4;case nn:case tn:return 16;case rn:return 536870912;default:return 16}default:return 16}}var Zn=null,Jn=null,et=null;function nt(){if(et)return et;var e,n,t=Jn,r=t.length,l="value"in Zn?Zn.value:Zn.textContent,a=l.length;for(e=0;e<r&&t[e]===l[e];e++);var o=r-e;for(n=1;n<=o&&t[r-n]===l[a-n];n++);return et=l.slice(e,1<n?1-n:void 0)}function tt(e){var n=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===n&&(e=13):e=n,10===e&&(e=13),32<=e||13===e?e:0}function rt(){return!0}function lt(){return!1}function at(e){function n(n,t,r,l,a){for(var o in this._reactName=n,this._targetInst=r,this.type=t,this.nativeEvent=l,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(l):l[o]);return this.isDefaultPrevented=(null!=l.defaultPrevented?l.defaultPrevented:!1===l.returnValue)?rt:lt,this.isPropagationStopped=lt,this}return I(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=rt)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=rt)},persist:function(){},isPersistent:rt}),n}var ot,ut,it,st={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ct=at(st),ft=I({},st,{view:0,detail:0}),dt=at(ft),pt=I({},ft,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ct,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==it&&(it&&"mousemove"===e.type?(ot=e.screenX-it.screenX,ut=e.screenY-it.screenY):ut=ot=0,it=e),ot)},movementY:function(e){return"movementY"in e?e.movementY:ut}}),mt=at(pt),ht=at(I({},pt,{dataTransfer:0})),gt=at(I({},ft,{relatedTarget:0})),vt=at(I({},st,{animationName:0,elapsedTime:0,pseudoElement:0})),yt=I({},st,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bt=at(yt),kt=at(I({},st,{data:0})),wt={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},St={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xt={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Et(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):!!(e=xt[e])&&!!n[e]}function Ct(){return Et}var _t=I({},ft,{key:function(e){if(e.key){var n=wt[e.key]||e.key;if("Unidentified"!==n)return n}return"keypress"===e.type?13===(e=tt(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?St[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ct,charCode:function(e){return"keypress"===e.type?tt(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tt(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),zt=at(_t),Nt=at(I({},pt,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Pt=at(I({},ft,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ct})),Lt=at(I({},st,{propertyName:0,elapsedTime:0,pseudoElement:0})),Tt=I({},pt,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Mt=at(Tt),Ft=[9,13,27,32],Dt=c&&"CompositionEvent"in window,Rt=null;c&&"documentMode"in document&&(Rt=document.documentMode);var Ot=c&&"TextEvent"in window&&!Rt,It=c&&(!Dt||Rt&&8<Rt&&11>=Rt),Ut=String.fromCharCode(32),Vt=!1;function At(e,n){switch(e){case"keyup":return-1!==Ft.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bt(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Ht=!1;var Qt={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wt(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===n?!!Qt[e.type]:"textarea"===n}function jt(e,n,t,r){_e(r),0<(n=$r(n,"onChange")).length&&(t=new ct("onChange","change",null,t,r),e.push({event:t,listeners:n}))}var $t=null,Kt=null;function qt(e){Ur(e,0)}function Yt(e){if(K(kl(e)))return e}function Xt(e,n){if("change"===e)return n}var Gt=!1;if(c){var Zt;if(c){var Jt="oninput"in document;if(!Jt){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jt="function"===typeof er.oninput}Zt=Jt}else Zt=!1;Gt=Zt&&(!document.documentMode||9<document.documentMode)}function nr(){$t&&($t.detachEvent("onpropertychange",tr),Kt=$t=null)}function tr(e){if("value"===e.propertyName&&Yt(Kt)){var n=[];jt(n,Kt,e,we(e)),Te(qt,n)}}function rr(e,n,t){"focusin"===e?(nr(),Kt=t,($t=n).attachEvent("onpropertychange",tr)):"focusout"===e&&nr()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yt(Kt)}function ar(e,n){if("click"===e)return Yt(n)}function or(e,n){if("input"===e||"change"===e)return Yt(n)}var ur="function"===typeof Object.is?Object.is:function(e,n){return e===n&&(0!==e||1/e===1/n)||e!==e&&n!==n};function ir(e,n){if(ur(e,n))return!0;if("object"!==typeof e||null===e||"object"!==typeof n||null===n)return!1;var t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(r=0;r<t.length;r++){var l=t[r];if(!f.call(n,l)||!ur(e[l],n[l]))return!1}return!0}function sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,n){var t,r=sr(e);for(e=0;r;){if(3===r.nodeType){if(t=e+r.textContent.length,e<=n&&t>=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(e,n){return!(!e||!n)&&(e===n||(!e||3!==e.nodeType)&&(n&&3===n.nodeType?fr(e,n.parentNode):"contains"in e?e.contains(n):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(n))))}function dr(){for(var e=window,n=q();n instanceof e.HTMLIFrameElement;){try{var t="string"===typeof n.contentWindow.location.href}catch(r){t=!1}if(!t)break;n=q((e=n.contentWindow).document)}return n}function pr(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}function mr(e){var n=dr(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&fr(t.ownerDocument.documentElement,t)){if(null!==r&&pr(t))if(n=r.start,void 0===(e=r.end)&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if((e=(n=t.ownerDocument||document)&&n.defaultView||window).getSelection){e=e.getSelection();var l=t.textContent.length,a=Math.min(r.start,l);r=void 0===r.end?a:Math.min(r.end,l),!e.extend&&a>r&&(l=r,r=a,a=l),l=cr(t,a);var o=cr(t,r);l&&o&&(1!==e.rangeCount||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((n=n.createRange()).setStart(l.node,l.offset),e.removeAllRanges(),a>r?(e.addRange(n),e.extend(o.node,o.offset)):(n.setEnd(o.node,o.offset),e.addRange(n)))}for(n=[],e=t;e=e.parentNode;)1===e.nodeType&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof t.focus&&t.focus(),t=0;t<n.length;t++)(e=n[t]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=c&&"documentMode"in document&&11>=document.documentMode,gr=null,vr=null,yr=null,br=!1;function kr(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;br||null==gr||gr!==q(r)||("selectionStart"in(r=gr)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&ir(yr,r)||(yr=r,0<(r=$r(vr,"onSelect")).length&&(n=new ct("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=gr)))}function wr(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var Sr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},xr={},Er={};function Cr(e){if(xr[e])return xr[e];if(!Sr[e])return e;var n,t=Sr[e];for(n in t)if(t.hasOwnProperty(n)&&n in Er)return xr[e]=t[n];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete Sr.animationend.animation,delete Sr.animationiteration.animation,delete Sr.animationstart.animation),"TransitionEvent"in window||delete Sr.transitionend.transition);var _r=Cr("animationend"),zr=Cr("animationiteration"),Nr=Cr("animationstart"),Pr=Cr("transitionend"),Lr=new Map,Tr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Mr(e,n){Lr.set(e,n),i(n,[e])}for(var Fr=0;Fr<Tr.length;Fr++){var Dr=Tr[Fr];Mr(Dr.toLowerCase(),"on"+(Dr[0].toUpperCase()+Dr.slice(1)))}Mr(_r,"onAnimationEnd"),Mr(zr,"onAnimationIteration"),Mr(Nr,"onAnimationStart"),Mr("dblclick","onDoubleClick"),Mr("focusin","onFocus"),Mr("focusout","onBlur"),Mr(Pr,"onTransitionEnd"),s("onMouseEnter",["mouseout","mouseover"]),s("onMouseLeave",["mouseout","mouseover"]),s("onPointerEnter",["pointerout","pointerover"]),s("onPointerLeave",["pointerout","pointerover"]),i("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),i("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),i("onBeforeInput",["compositionend","keypress","textInput","paste"]),i("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Or=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Ir(e,n,t){var r=e.type||"unknown-event";e.currentTarget=t,function(e,n,t,r,l,o,u,i,s){if(Be.apply(this,arguments),Oe){if(!Oe)throw Error(a(198));var c=Ie;Oe=!1,Ie=null,Ue||(Ue=!0,Ve=c)}}(r,n,void 0,e),e.currentTarget=null}function Ur(e,n){n=0!==(4&n);for(var t=0;t<e.length;t++){var r=e[t],l=r.event;r=r.listeners;e:{var a=void 0;if(n)for(var o=r.length-1;0<=o;o--){var u=r[o],i=u.instance,s=u.currentTarget;if(u=u.listener,i!==a&&l.isPropagationStopped())break e;Ir(l,u,s),a=i}else for(o=0;o<r.length;o++){if(i=(u=r[o]).instance,s=u.currentTarget,u=u.listener,i!==a&&l.isPropagationStopped())break e;Ir(l,u,s),a=i}}}if(Ue)throw e=Ve,Ue=!1,Ve=null,e}function Vr(e,n){var t=n[hl];void 0===t&&(t=n[hl]=new Set);var r=e+"__bubble";t.has(r)||(Qr(n,e,2,!1),t.add(r))}function Ar(e,n,t){var r=0;n&&(r|=4),Qr(t,e,r,n)}var Br="_reactListening"+Math.random().toString(36).slice(2);function Hr(e){if(!e[Br]){e[Br]=!0,o.forEach((function(n){"selectionchange"!==n&&(Or.has(n)||Ar(n,!1,e),Ar(n,!0,e))}));var n=9===e.nodeType?e:e.ownerDocument;null===n||n[Br]||(n[Br]=!0,Ar("selectionchange",!1,n))}}function Qr(e,n,t,r){switch(Gn(n)){case 1:var l=$n;break;case 4:l=Kn;break;default:l=qn}t=l.bind(null,n,t,e),l=void 0,!Fe||"touchstart"!==n&&"touchmove"!==n&&"wheel"!==n||(l=!0),r?void 0!==l?e.addEventListener(n,t,{capture:!0,passive:l}):e.addEventListener(n,t,!0):void 0!==l?e.addEventListener(n,t,{passive:l}):e.addEventListener(n,t,!1)}function Wr(e,n,t,r,l){var a=r;if(0===(1&n)&&0===(2&n)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var u=r.stateNode.containerInfo;if(u===l||8===u.nodeType&&u.parentNode===l)break;if(4===o)for(o=r.return;null!==o;){var i=o.tag;if((3===i||4===i)&&((i=o.stateNode.containerInfo)===l||8===i.nodeType&&i.parentNode===l))return;o=o.return}for(;null!==u;){if(null===(o=yl(u)))return;if(5===(i=o.tag)||6===i){r=a=o;continue e}u=u.parentNode}}r=r.return}Te((function(){var r=a,l=we(t),o=[];e:{var u=Lr.get(e);if(void 0!==u){var i=ct,s=e;switch(e){case"keypress":if(0===tt(t))break e;case"keydown":case"keyup":i=zt;break;case"focusin":s="focus",i=gt;break;case"focusout":s="blur",i=gt;break;case"beforeblur":case"afterblur":i=gt;break;case"click":if(2===t.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":i=mt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":i=ht;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":i=Pt;break;case _r:case zr:case Nr:i=vt;break;case Pr:i=Lt;break;case"scroll":i=dt;break;case"wheel":i=Mt;break;case"copy":case"cut":case"paste":i=bt;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":i=Nt}var c=0!==(4&n),f=!c&&"scroll"===e,d=c?null!==u?u+"Capture":null:u;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==d&&(null!=(h=Me(m,d))&&c.push(jr(m,h,p)))),f)break;m=m.return}0<c.length&&(u=new i(u,s,null,t,l),o.push({event:u,listeners:c}))}}if(0===(7&n)){if(i="mouseout"===e||"pointerout"===e,(!(u="mouseover"===e||"pointerover"===e)||t===ke||!(s=t.relatedTarget||t.fromElement)||!yl(s)&&!s[ml])&&(i||u)&&(u=l.window===l?l:(u=l.ownerDocument)?u.defaultView||u.parentWindow:window,i?(i=r,null!==(s=(s=t.relatedTarget||t.toElement)?yl(s):null)&&(s!==(f=He(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(i=null,s=r),i!==s)){if(c=mt,h="onMouseLeave",d="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Nt,h="onPointerLeave",d="onPointerEnter",m="pointer"),f=null==i?u:kl(i),p=null==s?u:kl(s),(u=new c(h,m+"leave",i,t,l)).target=f,u.relatedTarget=p,h=null,yl(l)===r&&((c=new c(d,m+"enter",s,t,l)).target=p,c.relatedTarget=f,h=c),f=h,i&&s)e:{for(d=s,m=0,p=c=i;p;p=Kr(p))m++;for(p=0,h=d;h;h=Kr(h))p++;for(;0<m-p;)c=Kr(c),m--;for(;0<p-m;)d=Kr(d),p--;for(;m--;){if(c===d||null!==d&&c===d.alternate)break e;c=Kr(c),d=Kr(d)}c=null}else c=null;null!==i&&qr(o,u,i,c,!1),null!==s&&null!==f&&qr(o,f,s,c,!0)}if("select"===(i=(u=r?kl(r):window).nodeName&&u.nodeName.toLowerCase())||"input"===i&&"file"===u.type)var g=Xt;else if(Wt(u))if(Gt)g=or;else{g=lr;var v=rr}else(i=u.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===u.type||"radio"===u.type)&&(g=ar);switch(g&&(g=g(e,r))?jt(o,g,t,l):(v&&v(e,u,r),"focusout"===e&&(v=u._wrapperState)&&v.controlled&&"number"===u.type&&ee(u,"number",u.value)),v=r?kl(r):window,e){case"focusin":(Wt(v)||"true"===v.contentEditable)&&(gr=v,vr=r,yr=null);break;case"focusout":yr=vr=gr=null;break;case"mousedown":br=!0;break;case"contextmenu":case"mouseup":case"dragend":br=!1,kr(o,t,l);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":kr(o,t,l)}var y;if(Dt)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Ht?At(e,t)&&(b="onCompositionEnd"):"keydown"===e&&229===t.keyCode&&(b="onCompositionStart");b&&(It&&"ko"!==t.locale&&(Ht||"onCompositionStart"!==b?"onCompositionEnd"===b&&Ht&&(y=nt()):(Jn="value"in(Zn=l)?Zn.value:Zn.textContent,Ht=!0)),0<(v=$r(r,b)).length&&(b=new kt(b,e,null,t,l),o.push({event:b,listeners:v}),y?b.data=y:null!==(y=Bt(t))&&(b.data=y))),(y=Ot?function(e,n){switch(e){case"compositionend":return Bt(n);case"keypress":return 32!==n.which?null:(Vt=!0,Ut);case"textInput":return(e=n.data)===Ut&&Vt?null:e;default:return null}}(e,t):function(e,n){if(Ht)return"compositionend"===e||!Dt&&At(e,n)?(e=nt(),et=Jn=Zn=null,Ht=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return It&&"ko"!==n.locale?null:n.data}}(e,t))&&(0<(r=$r(r,"onBeforeInput")).length&&(l=new kt("onBeforeInput","beforeinput",null,t,l),o.push({event:l,listeners:r}),l.data=y))}Ur(o,n)}))}function jr(e,n,t){return{instance:e,listener:n,currentTarget:t}}function $r(e,n){for(var t=n+"Capture",r=[];null!==e;){var l=e,a=l.stateNode;5===l.tag&&null!==a&&(l=a,null!=(a=Me(e,t))&&r.unshift(jr(e,a,l)),null!=(a=Me(e,n))&&r.push(jr(e,a,l))),e=e.return}return r}function Kr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function qr(e,n,t,r,l){for(var a=n._reactName,o=[];null!==t&&t!==r;){var u=t,i=u.alternate,s=u.stateNode;if(null!==i&&i===r)break;5===u.tag&&null!==s&&(u=s,l?null!=(i=Me(t,a))&&o.unshift(jr(t,i,u)):l||null!=(i=Me(t,a))&&o.push(jr(t,i,u))),t=t.return}0!==o.length&&e.push({event:n,listeners:o})}var Yr=/\r\n?/g,Xr=/\u0000|\uFFFD/g;function Gr(e){return("string"===typeof e?e:""+e).replace(Yr,"\n").replace(Xr,"")}function Zr(e,n,t){if(n=Gr(n),Gr(e)!==n&&t)throw Error(a(425))}function Jr(){}var el=null,nl=null;function tl(e,n){return"textarea"===e||"noscript"===e||"string"===typeof n.children||"number"===typeof n.children||"object"===typeof n.dangerouslySetInnerHTML&&null!==n.dangerouslySetInnerHTML&&null!=n.dangerouslySetInnerHTML.__html}var rl="function"===typeof setTimeout?setTimeout:void 0,ll="function"===typeof clearTimeout?clearTimeout:void 0,al="function"===typeof Promise?Promise:void 0,ol="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof al?function(e){return al.resolve(null).then(e).catch(ul)}:rl;function ul(e){setTimeout((function(){throw e}))}function il(e,n){var t=n,r=0;do{var l=t.nextSibling;if(e.removeChild(t),l&&8===l.nodeType)if("/$"===(t=l.data)){if(0===r)return e.removeChild(l),void Qn(n);r--}else"$"!==t&&"$?"!==t&&"$!"!==t||r++;t=l}while(t);Qn(n)}function sl(e){for(;null!=e;e=e.nextSibling){var n=e.nodeType;if(1===n||3===n)break;if(8===n){if("$"===(n=e.data)||"$!"===n||"$?"===n)break;if("/$"===n)return null}}return e}function cl(e){e=e.previousSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if("$"===t||"$!"===t||"$?"===t){if(0===n)return e;n--}else"/$"===t&&n++}e=e.previousSibling}return null}var fl=Math.random().toString(36).slice(2),dl="__reactFiber$"+fl,pl="__reactProps$"+fl,ml="__reactContainer$"+fl,hl="__reactEvents$"+fl,gl="__reactListeners$"+fl,vl="__reactHandles$"+fl;function yl(e){var n=e[dl];if(n)return n;for(var t=e.parentNode;t;){if(n=t[ml]||t[dl]){if(t=n.alternate,null!==n.child||null!==t&&null!==t.child)for(e=cl(e);null!==e;){if(t=e[dl])return t;e=cl(e)}return n}t=(e=t).parentNode}return null}function bl(e){return!(e=e[dl]||e[ml])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function kl(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function wl(e){return e[pl]||null}var Sl=[],xl=-1;function El(e){return{current:e}}function Cl(e){0>xl||(e.current=Sl[xl],Sl[xl]=null,xl--)}function _l(e,n){xl++,Sl[xl]=e.current,e.current=n}var zl={},Nl=El(zl),Pl=El(!1),Ll=zl;function Tl(e,n){var t=e.type.contextTypes;if(!t)return zl;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in t)a[l]=n[l];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ml(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Fl(){Cl(Pl),Cl(Nl)}function Dl(e,n,t){if(Nl.current!==zl)throw Error(a(168));_l(Nl,n),_l(Pl,t)}function Rl(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,"function"!==typeof r.getChildContext)return t;for(var l in r=r.getChildContext())if(!(l in n))throw Error(a(108,Q(e)||"Unknown",l));return I({},t,r)}function Ol(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||zl,Ll=Nl.current,_l(Nl,e),_l(Pl,Pl.current),!0}function Il(e,n,t){var r=e.stateNode;if(!r)throw Error(a(169));t?(e=Rl(e,n,Ll),r.__reactInternalMemoizedMergedChildContext=e,Cl(Pl),Cl(Nl),_l(Nl,e)):Cl(Pl),_l(Pl,t)}var Ul=null,Vl=!1,Al=!1;function Bl(e){null===Ul?Ul=[e]:Ul.push(e)}function Hl(){if(!Al&&null!==Ul){Al=!0;var e=0,n=kn;try{var t=Ul;for(kn=1;e<t.length;e++){var r=t[e];do{r=r(!0)}while(null!==r)}Ul=null,Vl=!1}catch(l){throw null!==Ul&&(Ul=Ul.slice(e+1)),Ke(Je,Hl),l}finally{kn=n,Al=!1}}return null}var Ql=[],Wl=0,jl=null,$l=0,Kl=[],ql=0,Yl=null,Xl=1,Gl="";function Zl(e,n){Ql[Wl++]=$l,Ql[Wl++]=jl,jl=e,$l=n}function Jl(e,n,t){Kl[ql++]=Xl,Kl[ql++]=Gl,Kl[ql++]=Yl,Yl=e;var r=Xl;e=Gl;var l=32-on(r)-1;r&=~(1<<l),t+=1;var a=32-on(n)+l;if(30<a){var o=l-l%5;a=(r&(1<<o)-1).toString(32),r>>=o,l-=o,Xl=1<<32-on(n)+l|t<<l|r,Gl=a+e}else Xl=1<<a|t<<l|r,Gl=e}function ea(e){null!==e.return&&(Zl(e,1),Jl(e,1,0))}function na(e){for(;e===jl;)jl=Ql[--Wl],Ql[Wl]=null,$l=Ql[--Wl],Ql[Wl]=null;for(;e===Yl;)Yl=Kl[--ql],Kl[ql]=null,Gl=Kl[--ql],Kl[ql]=null,Xl=Kl[--ql],Kl[ql]=null}var ta=null,ra=null,la=!1,aa=null;function oa(e,n){var t=Ms(5,null,null,0);t.elementType="DELETED",t.stateNode=n,t.return=e,null===(n=e.deletions)?(e.deletions=[t],e.flags|=16):n.push(t)}function ua(e,n){switch(e.tag){case 5:var t=e.type;return null!==(n=1!==n.nodeType||t.toLowerCase()!==n.nodeName.toLowerCase()?null:n)&&(e.stateNode=n,ta=e,ra=sl(n.firstChild),!0);case 6:return null!==(n=""===e.pendingProps||3!==n.nodeType?null:n)&&(e.stateNode=n,ta=e,ra=null,!0);case 13:return null!==(n=8!==n.nodeType?null:n)&&(t=null!==Yl?{id:Xl,overflow:Gl}:null,e.memoizedState={dehydrated:n,treeContext:t,retryLane:1073741824},(t=Ms(18,null,null,0)).stateNode=n,t.return=e,e.child=t,ta=e,ra=null,!0);default:return!1}}function ia(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function sa(e){if(la){var n=ra;if(n){var t=n;if(!ua(e,n)){if(ia(e))throw Error(a(418));n=sl(t.nextSibling);var r=ta;n&&ua(e,n)?oa(r,t):(e.flags=-4097&e.flags|2,la=!1,ta=e)}}else{if(ia(e))throw Error(a(418));e.flags=-4097&e.flags|2,la=!1,ta=e}}}function ca(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ta=e}function fa(e){if(e!==ta)return!1;if(!la)return ca(e),la=!0,!1;var n;if((n=3!==e.tag)&&!(n=5!==e.tag)&&(n="head"!==(n=e.type)&&"body"!==n&&!tl(e.type,e.memoizedProps)),n&&(n=ra)){if(ia(e))throw da(),Error(a(418));for(;n;)oa(e,n),n=sl(n.nextSibling)}if(ca(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,n=0;e;){if(8===e.nodeType){var t=e.data;if("/$"===t){if(0===n){ra=sl(e.nextSibling);break e}n--}else"$"!==t&&"$!"!==t&&"$?"!==t||n++}e=e.nextSibling}ra=null}}else ra=ta?sl(e.stateNode.nextSibling):null;return!0}function da(){for(var e=ra;e;)e=sl(e.nextSibling)}function pa(){ra=ta=null,la=!1}function ma(e){null===aa?aa=[e]:aa.push(e)}var ha=k.ReactCurrentBatchConfig;function ga(e,n){if(e&&e.defaultProps){for(var t in n=I({},n),e=e.defaultProps)void 0===n[t]&&(n[t]=e[t]);return n}return n}var va=El(null),ya=null,ba=null,ka=null;function wa(){ka=ba=ya=null}function Sa(e){var n=va.current;Cl(va),e._currentValue=n}function xa(e,n,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,null!==r&&(r.childLanes|=n)):null!==r&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function Ea(e,n){ya=e,ka=ba=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&n)&&(ku=!0),e.firstContext=null)}function Ca(e){var n=e._currentValue;if(ka!==e)if(e={context:e,memoizedValue:n,next:null},null===ba){if(null===ya)throw Error(a(308));ba=e,ya.dependencies={lanes:0,firstContext:e}}else ba=ba.next=e;return n}var _a=null;function za(e){null===_a?_a=[e]:_a.push(e)}function Na(e,n,t,r){var l=n.interleaved;return null===l?(t.next=t,za(n)):(t.next=l.next,l.next=t),n.interleaved=t,Pa(e,r)}function Pa(e,n){e.lanes|=n;var t=e.alternate;for(null!==t&&(t.lanes|=n),t=e,e=e.return;null!==e;)e.childLanes|=n,null!==(t=e.alternate)&&(t.childLanes|=n),t=e,e=e.return;return 3===t.tag?t.stateNode:null}var La=!1;function Ta(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ma(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Fa(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Da(e,n,t){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&Pi)){var l=r.pending;return null===l?n.next=n:(n.next=l.next,l.next=n),r.pending=n,Pa(e,t)}return null===(l=r.interleaved)?(n.next=n,za(r)):(n.next=l.next,l.next=n),r.interleaved=n,Pa(e,t)}function Ra(e,n,t){if(null!==(n=n.updateQueue)&&(n=n.shared,0!==(4194240&t))){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,bn(e,t)}}function Oa(e,n){var t=e.updateQueue,r=e.alternate;if(null!==r&&t===(r=r.updateQueue)){var l=null,a=null;if(null!==(t=t.firstBaseUpdate)){do{var o={eventTime:t.eventTime,lane:t.lane,tag:t.tag,payload:t.payload,callback:t.callback,next:null};null===a?l=a=o:a=a.next=o,t=t.next}while(null!==t);null===a?l=a=n:a=a.next=n}else l=a=n;return t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=t)}null===(e=t.lastBaseUpdate)?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}function Ia(e,n,t,r){var l=e.updateQueue;La=!1;var a=l.firstBaseUpdate,o=l.lastBaseUpdate,u=l.shared.pending;if(null!==u){l.shared.pending=null;var i=u,s=i.next;i.next=null,null===o?a=s:o.next=s,o=i;var c=e.alternate;null!==c&&((u=(c=c.updateQueue).lastBaseUpdate)!==o&&(null===u?c.firstBaseUpdate=s:u.next=s,c.lastBaseUpdate=i))}if(null!==a){var f=l.baseState;for(o=0,c=s=i=null,u=a;;){var d=u.lane,p=u.eventTime;if((r&d)===d){null!==c&&(c=c.next={eventTime:p,lane:0,tag:u.tag,payload:u.payload,callback:u.callback,next:null});e:{var m=e,h=u;switch(d=n,p=t,h.tag){case 1:if("function"===typeof(m=h.payload)){f=m.call(p,f,d);break e}f=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null===(d="function"===typeof(m=h.payload)?m.call(p,f,d):m)||void 0===d)break e;f=I({},f,d);break e;case 2:La=!0}}null!==u.callback&&0!==u.lane&&(e.flags|=64,null===(d=l.effects)?l.effects=[u]:d.push(u))}else p={eventTime:p,lane:d,tag:u.tag,payload:u.payload,callback:u.callback,next:null},null===c?(s=c=p,i=f):c=c.next=p,o|=d;if(null===(u=u.next)){if(null===(u=l.shared.pending))break;u=(d=u).next,d.next=null,l.lastBaseUpdate=d,l.shared.pending=null}}if(null===c&&(i=f),l.baseState=i,l.firstBaseUpdate=s,l.lastBaseUpdate=c,null!==(n=l.shared.interleaved)){l=n;do{o|=l.lane,l=l.next}while(l!==n)}else null===a&&(l.shared.lanes=0);Ii|=o,e.lanes=o,e.memoizedState=f}}function Ua(e,n,t){if(e=n.effects,n.effects=null,null!==e)for(n=0;n<e.length;n++){var r=e[n],l=r.callback;if(null!==l){if(r.callback=null,r=t,"function"!==typeof l)throw Error(a(191,l));l.call(r)}}}var Va=(new r.Component).refs;function Aa(e,n,t,r){t=null===(t=t(r,n=e.memoizedState))||void 0===t?n:I({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var Ba={isMounted:function(e){return!!(e=e._reactInternals)&&He(e)===e},enqueueSetState:function(e,n,t){e=e._reactInternals;var r=ns(),l=ts(e),a=Fa(r,l);a.payload=n,void 0!==t&&null!==t&&(a.callback=t),null!==(n=Da(e,a,l))&&(rs(n,e,l,r),Ra(n,e,l))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=ns(),l=ts(e),a=Fa(r,l);a.tag=1,a.payload=n,void 0!==t&&null!==t&&(a.callback=t),null!==(n=Da(e,a,l))&&(rs(n,e,l,r),Ra(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=ns(),r=ts(e),l=Fa(t,r);l.tag=2,void 0!==n&&null!==n&&(l.callback=n),null!==(n=Da(e,l,r))&&(rs(n,e,r,t),Ra(n,e,r))}};function Ha(e,n,t,r,l,a,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,o):!n.prototype||!n.prototype.isPureReactComponent||(!ir(t,r)||!ir(l,a))}function Qa(e,n,t){var r=!1,l=zl,a=n.contextType;return"object"===typeof a&&null!==a?a=Ca(a):(l=Ml(n)?Ll:Nl.current,a=(r=null!==(r=n.contextTypes)&&void 0!==r)?Tl(e,l):zl),n=new n(t,a),e.memoizedState=null!==n.state&&void 0!==n.state?n.state:null,n.updater=Ba,e.stateNode=n,n._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=l,e.__reactInternalMemoizedMaskedChildContext=a),n}function Wa(e,n,t,r){e=n.state,"function"===typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),"function"===typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&Ba.enqueueReplaceState(n,n.state,null)}function ja(e,n,t,r){var l=e.stateNode;l.props=t,l.state=e.memoizedState,l.refs=Va,Ta(e);var a=n.contextType;"object"===typeof a&&null!==a?l.context=Ca(a):(a=Ml(n)?Ll:Nl.current,l.context=Tl(e,a)),l.state=e.memoizedState,"function"===typeof(a=n.getDerivedStateFromProps)&&(Aa(e,n,a,t),l.state=e.memoizedState),"function"===typeof n.getDerivedStateFromProps||"function"===typeof l.getSnapshotBeforeUpdate||"function"!==typeof l.UNSAFE_componentWillMount&&"function"!==typeof l.componentWillMount||(n=l.state,"function"===typeof l.componentWillMount&&l.componentWillMount(),"function"===typeof l.UNSAFE_componentWillMount&&l.UNSAFE_componentWillMount(),n!==l.state&&Ba.enqueueReplaceState(l,l.state,null),Ia(e,t,l,r),l.state=e.memoizedState),"function"===typeof l.componentDidMount&&(e.flags|=4194308)}function $a(e,n,t){if(null!==(e=t.ref)&&"function"!==typeof e&&"object"!==typeof e){if(t._owner){if(t=t._owner){if(1!==t.tag)throw Error(a(309));var r=t.stateNode}if(!r)throw Error(a(147,e));var l=r,o=""+e;return null!==n&&null!==n.ref&&"function"===typeof n.ref&&n.ref._stringRef===o?n.ref:(n=function(e){var n=l.refs;n===Va&&(n=l.refs={}),null===e?delete n[o]:n[o]=e},n._stringRef=o,n)}if("string"!==typeof e)throw Error(a(284));if(!t._owner)throw Error(a(290,e))}return e}function Ka(e,n){throw e=Object.prototype.toString.call(n),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function qa(e){return(0,e._init)(e._payload)}function Ya(e){function n(n,t){if(e){var r=n.deletions;null===r?(n.deletions=[t],n.flags|=16):r.push(t)}}function t(t,r){if(!e)return null;for(;null!==r;)n(t,r),r=r.sibling;return null}function r(e,n){for(e=new Map;null!==n;)null!==n.key?e.set(n.key,n):e.set(n.index,n),n=n.sibling;return e}function l(e,n){return(e=Ds(e,n)).index=0,e.sibling=null,e}function o(n,t,r){return n.index=r,e?null!==(r=n.alternate)?(r=r.index)<t?(n.flags|=2,t):r:(n.flags|=2,t):(n.flags|=1048576,t)}function u(n){return e&&null===n.alternate&&(n.flags|=2),n}function i(e,n,t,r){return null===n||6!==n.tag?((n=Us(t,e.mode,r)).return=e,n):((n=l(n,t)).return=e,n)}function s(e,n,t,r){var a=t.type;return a===x?f(e,n,t.props.children,r,t.key):null!==n&&(n.elementType===a||"object"===typeof a&&null!==a&&a.$$typeof===M&&qa(a)===n.type)?((r=l(n,t.props)).ref=$a(e,n,t),r.return=e,r):((r=Rs(t.type,t.key,t.props,null,e.mode,r)).ref=$a(e,n,t),r.return=e,r)}function c(e,n,t,r){return null===n||4!==n.tag||n.stateNode.containerInfo!==t.containerInfo||n.stateNode.implementation!==t.implementation?((n=Vs(t,e.mode,r)).return=e,n):((n=l(n,t.children||[])).return=e,n)}function f(e,n,t,r,a){return null===n||7!==n.tag?((n=Os(t,e.mode,r,a)).return=e,n):((n=l(n,t)).return=e,n)}function d(e,n,t){if("string"===typeof n&&""!==n||"number"===typeof n)return(n=Us(""+n,e.mode,t)).return=e,n;if("object"===typeof n&&null!==n){switch(n.$$typeof){case w:return(t=Rs(n.type,n.key,n.props,null,e.mode,t)).ref=$a(e,null,n),t.return=e,t;case S:return(n=Vs(n,e.mode,t)).return=e,n;case M:return d(e,(0,n._init)(n._payload),t)}if(ne(n)||R(n))return(n=Os(n,e.mode,t,null)).return=e,n;Ka(e,n)}return null}function p(e,n,t,r){var l=null!==n?n.key:null;if("string"===typeof t&&""!==t||"number"===typeof t)return null!==l?null:i(e,n,""+t,r);if("object"===typeof t&&null!==t){switch(t.$$typeof){case w:return t.key===l?s(e,n,t,r):null;case S:return t.key===l?c(e,n,t,r):null;case M:return p(e,n,(l=t._init)(t._payload),r)}if(ne(t)||R(t))return null!==l?null:f(e,n,t,r,null);Ka(e,t)}return null}function m(e,n,t,r,l){if("string"===typeof r&&""!==r||"number"===typeof r)return i(n,e=e.get(t)||null,""+r,l);if("object"===typeof r&&null!==r){switch(r.$$typeof){case w:return s(n,e=e.get(null===r.key?t:r.key)||null,r,l);case S:return c(n,e=e.get(null===r.key?t:r.key)||null,r,l);case M:return m(e,n,t,(0,r._init)(r._payload),l)}if(ne(r)||R(r))return f(n,e=e.get(t)||null,r,l,null);Ka(n,r)}return null}function h(l,a,u,i){for(var s=null,c=null,f=a,h=a=0,g=null;null!==f&&h<u.length;h++){f.index>h?(g=f,f=null):g=f.sibling;var v=p(l,f,u[h],i);if(null===v){null===f&&(f=g);break}e&&f&&null===v.alternate&&n(l,f),a=o(v,a,h),null===c?s=v:c.sibling=v,c=v,f=g}if(h===u.length)return t(l,f),la&&Zl(l,h),s;if(null===f){for(;h<u.length;h++)null!==(f=d(l,u[h],i))&&(a=o(f,a,h),null===c?s=f:c.sibling=f,c=f);return la&&Zl(l,h),s}for(f=r(l,f);h<u.length;h++)null!==(g=m(f,l,h,u[h],i))&&(e&&null!==g.alternate&&f.delete(null===g.key?h:g.key),a=o(g,a,h),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return n(l,e)})),la&&Zl(l,h),s}function g(l,u,i,s){var c=R(i);if("function"!==typeof c)throw Error(a(150));if(null==(i=c.call(i)))throw Error(a(151));for(var f=c=null,h=u,g=u=0,v=null,y=i.next();null!==h&&!y.done;g++,y=i.next()){h.index>g?(v=h,h=null):v=h.sibling;var b=p(l,h,y.value,s);if(null===b){null===h&&(h=v);break}e&&h&&null===b.alternate&&n(l,h),u=o(b,u,g),null===f?c=b:f.sibling=b,f=b,h=v}if(y.done)return t(l,h),la&&Zl(l,g),c;if(null===h){for(;!y.done;g++,y=i.next())null!==(y=d(l,y.value,s))&&(u=o(y,u,g),null===f?c=y:f.sibling=y,f=y);return la&&Zl(l,g),c}for(h=r(l,h);!y.done;g++,y=i.next())null!==(y=m(h,l,g,y.value,s))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),u=o(y,u,g),null===f?c=y:f.sibling=y,f=y);return e&&h.forEach((function(e){return n(l,e)})),la&&Zl(l,g),c}return function e(r,a,o,i){if("object"===typeof o&&null!==o&&o.type===x&&null===o.key&&(o=o.props.children),"object"===typeof o&&null!==o){switch(o.$$typeof){case w:e:{for(var s=o.key,c=a;null!==c;){if(c.key===s){if((s=o.type)===x){if(7===c.tag){t(r,c.sibling),(a=l(c,o.props.children)).return=r,r=a;break e}}else if(c.elementType===s||"object"===typeof s&&null!==s&&s.$$typeof===M&&qa(s)===c.type){t(r,c.sibling),(a=l(c,o.props)).ref=$a(r,c,o),a.return=r,r=a;break e}t(r,c);break}n(r,c),c=c.sibling}o.type===x?((a=Os(o.props.children,r.mode,i,o.key)).return=r,r=a):((i=Rs(o.type,o.key,o.props,null,r.mode,i)).ref=$a(r,a,o),i.return=r,r=i)}return u(r);case S:e:{for(c=o.key;null!==a;){if(a.key===c){if(4===a.tag&&a.stateNode.containerInfo===o.containerInfo&&a.stateNode.implementation===o.implementation){t(r,a.sibling),(a=l(a,o.children||[])).return=r,r=a;break e}t(r,a);break}n(r,a),a=a.sibling}(a=Vs(o,r.mode,i)).return=r,r=a}return u(r);case M:return e(r,a,(c=o._init)(o._payload),i)}if(ne(o))return h(r,a,o,i);if(R(o))return g(r,a,o,i);Ka(r,o)}return"string"===typeof o&&""!==o||"number"===typeof o?(o=""+o,null!==a&&6===a.tag?(t(r,a.sibling),(a=l(a,o)).return=r,r=a):(t(r,a),(a=Us(o,r.mode,i)).return=r,r=a),u(r)):t(r,a)}}var Xa=Ya(!0),Ga=Ya(!1),Za={},Ja=El(Za),eo=El(Za),no=El(Za);function to(e){if(e===Za)throw Error(a(174));return e}function ro(e,n){switch(_l(no,n),_l(eo,e),_l(Ja,Za),e=n.nodeType){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:ie(null,"");break;default:n=ie(n=(e=8===e?n.parentNode:n).namespaceURI||null,e=e.tagName)}Cl(Ja),_l(Ja,n)}function lo(){Cl(Ja),Cl(eo),Cl(no)}function ao(e){to(no.current);var n=to(Ja.current),t=ie(n,e.type);n!==t&&(_l(eo,e),_l(Ja,t))}function oo(e){eo.current===e&&(Cl(Ja),Cl(eo))}var uo=El(0);function io(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||"$?"===t.data||"$!"===t.data))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var so=[];function co(){for(var e=0;e<so.length;e++)so[e]._workInProgressVersionPrimary=null;so.length=0}var fo=k.ReactCurrentDispatcher,po=k.ReactCurrentBatchConfig,mo=0,ho=null,go=null,vo=null,yo=!1,bo=!1,ko=0,wo=0;function So(){throw Error(a(321))}function xo(e,n){if(null===n)return!1;for(var t=0;t<n.length&&t<e.length;t++)if(!ur(e[t],n[t]))return!1;return!0}function Eo(e,n,t,r,l,o){if(mo=o,ho=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,fo.current=null===e||null===e.memoizedState?uu:iu,e=t(r,l),bo){o=0;do{if(bo=!1,ko=0,25<=o)throw Error(a(301));o+=1,vo=go=null,n.updateQueue=null,fo.current=su,e=t(r,l)}while(bo)}if(fo.current=ou,n=null!==go&&null!==go.next,mo=0,vo=go=ho=null,yo=!1,n)throw Error(a(300));return e}function Co(){var e=0!==ko;return ko=0,e}function _o(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===vo?ho.memoizedState=vo=e:vo=vo.next=e,vo}function zo(){if(null===go){var e=ho.alternate;e=null!==e?e.memoizedState:null}else e=go.next;var n=null===vo?ho.memoizedState:vo.next;if(null!==n)vo=n,go=e;else{if(null===e)throw Error(a(310));e={memoizedState:(go=e).memoizedState,baseState:go.baseState,baseQueue:go.baseQueue,queue:go.queue,next:null},null===vo?ho.memoizedState=vo=e:vo=vo.next=e}return vo}function No(e,n){return"function"===typeof n?n(e):n}function Po(e){var n=zo(),t=n.queue;if(null===t)throw Error(a(311));t.lastRenderedReducer=e;var r=go,l=r.baseQueue,o=t.pending;if(null!==o){if(null!==l){var u=l.next;l.next=o.next,o.next=u}r.baseQueue=l=o,t.pending=null}if(null!==l){o=l.next,r=r.baseState;var i=u=null,s=null,c=o;do{var f=c.lane;if((mo&f)===f)null!==s&&(s=s.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var d={lane:f,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===s?(i=s=d,u=r):s=s.next=d,ho.lanes|=f,Ii|=f}c=c.next}while(null!==c&&c!==o);null===s?u=r:s.next=i,ur(r,n.memoizedState)||(ku=!0),n.memoizedState=r,n.baseState=u,n.baseQueue=s,t.lastRenderedState=r}if(null!==(e=t.interleaved)){l=e;do{o=l.lane,ho.lanes|=o,Ii|=o,l=l.next}while(l!==e)}else null===l&&(t.lanes=0);return[n.memoizedState,t.dispatch]}function Lo(e){var n=zo(),t=n.queue;if(null===t)throw Error(a(311));t.lastRenderedReducer=e;var r=t.dispatch,l=t.pending,o=n.memoizedState;if(null!==l){t.pending=null;var u=l=l.next;do{o=e(o,u.action),u=u.next}while(u!==l);ur(o,n.memoizedState)||(ku=!0),n.memoizedState=o,null===n.baseQueue&&(n.baseState=o),t.lastRenderedState=o}return[o,r]}function To(){}function Mo(e,n){var t=ho,r=zo(),l=n(),o=!ur(r.memoizedState,l);if(o&&(r.memoizedState=l,ku=!0),r=r.queue,Wo(Ro.bind(null,t,r,e),[e]),r.getSnapshot!==n||o||null!==vo&&1&vo.memoizedState.tag){if(t.flags|=2048,Vo(9,Do.bind(null,t,r,l,n),void 0,null),null===Li)throw Error(a(349));0!==(30&mo)||Fo(t,n,l)}return l}function Fo(e,n,t){e.flags|=16384,e={getSnapshot:n,value:t},null===(n=ho.updateQueue)?(n={lastEffect:null,stores:null},ho.updateQueue=n,n.stores=[e]):null===(t=n.stores)?n.stores=[e]:t.push(e)}function Do(e,n,t,r){n.value=t,n.getSnapshot=r,Oo(n)&&Io(e)}function Ro(e,n,t){return t((function(){Oo(n)&&Io(e)}))}function Oo(e){var n=e.getSnapshot;e=e.value;try{var t=n();return!ur(e,t)}catch(r){return!0}}function Io(e){var n=Pa(e,1);null!==n&&rs(n,e,1,-1)}function Uo(e){var n=_o();return"function"===typeof e&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:e},n.queue=e,e=e.dispatch=tu.bind(null,ho,e),[n.memoizedState,e]}function Vo(e,n,t,r){return e={tag:e,create:n,destroy:t,deps:r,next:null},null===(n=ho.updateQueue)?(n={lastEffect:null,stores:null},ho.updateQueue=n,n.lastEffect=e.next=e):null===(t=n.lastEffect)?n.lastEffect=e.next=e:(r=t.next,t.next=e,e.next=r,n.lastEffect=e),e}function Ao(){return zo().memoizedState}function Bo(e,n,t,r){var l=_o();ho.flags|=e,l.memoizedState=Vo(1|n,t,void 0,void 0===r?null:r)}function Ho(e,n,t,r){var l=zo();r=void 0===r?null:r;var a=void 0;if(null!==go){var o=go.memoizedState;if(a=o.destroy,null!==r&&xo(r,o.deps))return void(l.memoizedState=Vo(n,t,a,r))}ho.flags|=e,l.memoizedState=Vo(1|n,t,a,r)}function Qo(e,n){return Bo(8390656,8,e,n)}function Wo(e,n){return Ho(2048,8,e,n)}function jo(e,n){return Ho(4,2,e,n)}function $o(e,n){return Ho(4,4,e,n)}function Ko(e,n){return"function"===typeof n?(e=e(),n(e),function(){n(null)}):null!==n&&void 0!==n?(e=e(),n.current=e,function(){n.current=null}):void 0}function qo(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,Ho(4,4,Ko.bind(null,n,e),t)}function Yo(){}function Xo(e,n){var t=zo();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&xo(n,r[1])?r[0]:(t.memoizedState=[e,n],e)}function Go(e,n){var t=zo();n=void 0===n?null:n;var r=t.memoizedState;return null!==r&&null!==n&&xo(n,r[1])?r[0]:(e=e(),t.memoizedState=[e,n],e)}function Zo(e,n,t){return 0===(21&mo)?(e.baseState&&(e.baseState=!1,ku=!0),e.memoizedState=t):(ur(t,n)||(t=gn(),ho.lanes|=t,Ii|=t,e.baseState=!0),n)}function Jo(e,n){var t=kn;kn=0!==t&&4>t?t:4,e(!0);var r=po.transition;po.transition={};try{e(!1),n()}finally{kn=t,po.transition=r}}function eu(){return zo().memoizedState}function nu(e,n,t){var r=ts(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},ru(e))lu(n,t);else if(null!==(t=Na(e,n,t,r))){rs(t,e,r,ns()),au(t,n,r)}}function tu(e,n,t){var r=ts(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(ru(e))lu(n,l);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=n.lastRenderedReducer))try{var o=n.lastRenderedState,u=a(o,t);if(l.hasEagerState=!0,l.eagerState=u,ur(u,o)){var i=n.interleaved;return null===i?(l.next=l,za(n)):(l.next=i.next,i.next=l),void(n.interleaved=l)}}catch(s){}null!==(t=Na(e,n,l,r))&&(rs(t,e,r,l=ns()),au(t,n,r))}}function ru(e){var n=e.alternate;return e===ho||null!==n&&n===ho}function lu(e,n){bo=yo=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function au(e,n,t){if(0!==(4194240&t)){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,bn(e,t)}}var ou={readContext:Ca,useCallback:So,useContext:So,useEffect:So,useImperativeHandle:So,useInsertionEffect:So,useLayoutEffect:So,useMemo:So,useReducer:So,useRef:So,useState:So,useDebugValue:So,useDeferredValue:So,useTransition:So,useMutableSource:So,useSyncExternalStore:So,useId:So,unstable_isNewReconciler:!1},uu={readContext:Ca,useCallback:function(e,n){return _o().memoizedState=[e,void 0===n?null:n],e},useContext:Ca,useEffect:Qo,useImperativeHandle:function(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,Bo(4194308,4,Ko.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Bo(4194308,4,e,n)},useInsertionEffect:function(e,n){return Bo(4,2,e,n)},useMemo:function(e,n){var t=_o();return n=void 0===n?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=_o();return n=void 0!==t?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=nu.bind(null,ho,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},_o().memoizedState=e},useState:Uo,useDebugValue:Yo,useDeferredValue:function(e){return _o().memoizedState=e},useTransition:function(){var e=Uo(!1),n=e[0];return e=Jo.bind(null,e[1]),_o().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=ho,l=_o();if(la){if(void 0===t)throw Error(a(407));t=t()}else{if(t=n(),null===Li)throw Error(a(349));0!==(30&mo)||Fo(r,n,t)}l.memoizedState=t;var o={value:t,getSnapshot:n};return l.queue=o,Qo(Ro.bind(null,r,o,e),[e]),r.flags|=2048,Vo(9,Do.bind(null,r,o,t,n),void 0,null),t},useId:function(){var e=_o(),n=Li.identifierPrefix;if(la){var t=Gl;n=":"+n+"R"+(t=(Xl&~(1<<32-on(Xl)-1)).toString(32)+t),0<(t=ko++)&&(n+="H"+t.toString(32)),n+=":"}else n=":"+n+"r"+(t=wo++).toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},iu={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Wo,useImperativeHandle:qo,useInsertionEffect:jo,useLayoutEffect:$o,useMemo:Go,useReducer:Po,useRef:Ao,useState:function(){return Po(No)},useDebugValue:Yo,useDeferredValue:function(e){return Zo(zo(),go.memoizedState,e)},useTransition:function(){return[Po(No)[0],zo().memoizedState]},useMutableSource:To,useSyncExternalStore:Mo,useId:eu,unstable_isNewReconciler:!1},su={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Wo,useImperativeHandle:qo,useInsertionEffect:jo,useLayoutEffect:$o,useMemo:Go,useReducer:Lo,useRef:Ao,useState:function(){return Lo(No)},useDebugValue:Yo,useDeferredValue:function(e){var n=zo();return null===go?n.memoizedState=e:Zo(n,go.memoizedState,e)},useTransition:function(){return[Lo(No)[0],zo().memoizedState]},useMutableSource:To,useSyncExternalStore:Mo,useId:eu,unstable_isNewReconciler:!1};function cu(e,n){try{var t="",r=n;do{t+=B(r),r=r.return}while(r);var l=t}catch(a){l="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:n,stack:l,digest:null}}function fu(e,n,t){return{value:e,source:null,stack:null!=t?t:null,digest:null!=n?n:null}}function du(e,n){try{console.error(n.value)}catch(t){setTimeout((function(){throw t}))}}var pu="function"===typeof WeakMap?WeakMap:Map;function mu(e,n,t){(t=Fa(-1,t)).tag=3,t.payload={element:null};var r=n.value;return t.callback=function(){ji||(ji=!0,$i=r),du(0,n)},t}function hu(e,n,t){(t=Fa(-1,t)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var l=n.value;t.payload=function(){return r(l)},t.callback=function(){du(0,n)}}var a=e.stateNode;return null!==a&&"function"===typeof a.componentDidCatch&&(t.callback=function(){du(0,n),"function"!==typeof r&&(null===Ki?Ki=new Set([this]):Ki.add(this));var e=n.stack;this.componentDidCatch(n.value,{componentStack:null!==e?e:""})}),t}function gu(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new pu;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(l.add(t),e=_s.bind(null,e,n,t),n.then(e,e))}function vu(e){do{var n;if((n=13===e.tag)&&(n=null===(n=e.memoizedState)||null!==n.dehydrated),n)return e;e=e.return}while(null!==e);return null}function yu(e,n,t,r,l){return 0===(1&e.mode)?(e===n?e.flags|=65536:(e.flags|=128,t.flags|=131072,t.flags&=-52805,1===t.tag&&(null===t.alternate?t.tag=17:((n=Fa(-1,1)).tag=2,Da(t,n,1))),t.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var bu=k.ReactCurrentOwner,ku=!1;function wu(e,n,t,r){n.child=null===e?Ga(n,null,t,r):Xa(n,e.child,t,r)}function Su(e,n,t,r,l){t=t.render;var a=n.ref;return Ea(n,l),r=Eo(e,n,t,r,a,l),t=Co(),null===e||ku?(la&&t&&ea(n),n.flags|=1,wu(e,n,r,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ju(e,n,l))}function xu(e,n,t,r,l){if(null===e){var a=t.type;return"function"!==typeof a||Fs(a)||void 0!==a.defaultProps||null!==t.compare||void 0!==t.defaultProps?((e=Rs(t.type,null,r,n,n.mode,l)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,Eu(e,n,a,r,l))}if(a=e.child,0===(e.lanes&l)){var o=a.memoizedProps;if((t=null!==(t=t.compare)?t:ir)(o,r)&&e.ref===n.ref)return ju(e,n,l)}return n.flags|=1,(e=Ds(a,r)).ref=n.ref,e.return=n,n.child=e}function Eu(e,n,t,r,l){if(null!==e){var a=e.memoizedProps;if(ir(a,r)&&e.ref===n.ref){if(ku=!1,n.pendingProps=r=a,0===(e.lanes&l))return n.lanes=e.lanes,ju(e,n,l);0!==(131072&e.flags)&&(ku=!0)}}return zu(e,n,t,r,l)}function Cu(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&n.mode))n.memoizedState={baseLanes:0,cachePool:null,transitions:null},_l(Di,Fi),Fi|=t;else{if(0===(1073741824&t))return e=null!==a?a.baseLanes|t:t,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,_l(Di,Fi),Fi|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:t,_l(Di,Fi),Fi|=r}else null!==a?(r=a.baseLanes|t,n.memoizedState=null):r=t,_l(Di,Fi),Fi|=r;return wu(e,n,l,t),n.child}function _u(e,n){var t=n.ref;(null===e&&null!==t||null!==e&&e.ref!==t)&&(n.flags|=512,n.flags|=2097152)}function zu(e,n,t,r,l){var a=Ml(t)?Ll:Nl.current;return a=Tl(n,a),Ea(n,l),t=Eo(e,n,t,r,a,l),r=Co(),null===e||ku?(la&&r&&ea(n),n.flags|=1,wu(e,n,t,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,ju(e,n,l))}function Nu(e,n,t,r,l){if(Ml(t)){var a=!0;Ol(n)}else a=!1;if(Ea(n,l),null===n.stateNode)Wu(e,n),Qa(n,t,r),ja(n,t,r,l),r=!0;else if(null===e){var o=n.stateNode,u=n.memoizedProps;o.props=u;var i=o.context,s=t.contextType;"object"===typeof s&&null!==s?s=Ca(s):s=Tl(n,s=Ml(t)?Ll:Nl.current);var c=t.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof o.getSnapshotBeforeUpdate;f||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==r||i!==s)&&Wa(n,o,r,s),La=!1;var d=n.memoizedState;o.state=d,Ia(n,r,o,l),i=n.memoizedState,u!==r||d!==i||Pl.current||La?("function"===typeof c&&(Aa(n,t,c,r),i=n.memoizedState),(u=La||Ha(n,t,u,r,d,i,s))?(f||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(n.flags|=4194308)):("function"===typeof o.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=i),o.props=r,o.state=i,o.context=s,r=u):("function"===typeof o.componentDidMount&&(n.flags|=4194308),r=!1)}else{o=n.stateNode,Ma(e,n),u=n.memoizedProps,s=n.type===n.elementType?u:ga(n.type,u),o.props=s,f=n.pendingProps,d=o.context,"object"===typeof(i=t.contextType)&&null!==i?i=Ca(i):i=Tl(n,i=Ml(t)?Ll:Nl.current);var p=t.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==f||d!==i)&&Wa(n,o,r,i),La=!1,d=n.memoizedState,o.state=d,Ia(n,r,o,l);var m=n.memoizedState;u!==f||d!==m||Pl.current||La?("function"===typeof p&&(Aa(n,t,p,r),m=n.memoizedState),(s=La||Ha(n,t,s,r,d,m,i)||!1)?(c||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,m,i),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,m,i)),"function"===typeof o.componentDidUpdate&&(n.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=m),o.props=r,o.state=m,o.context=i,r=s):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return Pu(e,n,t,r,a,l)}function Pu(e,n,t,r,l,a){_u(e,n);var o=0!==(128&n.flags);if(!r&&!o)return l&&Il(n,t,!1),ju(e,n,a);r=n.stateNode,bu.current=n;var u=o&&"function"!==typeof t.getDerivedStateFromError?null:r.render();return n.flags|=1,null!==e&&o?(n.child=Xa(n,e.child,null,a),n.child=Xa(n,null,u,a)):wu(e,n,u,a),n.memoizedState=r.state,l&&Il(n,t,!0),n.child}function Lu(e){var n=e.stateNode;n.pendingContext?Dl(0,n.pendingContext,n.pendingContext!==n.context):n.context&&Dl(0,n.context,!1),ro(e,n.containerInfo)}function Tu(e,n,t,r,l){return pa(),ma(l),n.flags|=256,wu(e,n,t,r),n.child}var Mu,Fu,Du,Ru,Ou={dehydrated:null,treeContext:null,retryLane:0};function Iu(e){return{baseLanes:e,cachePool:null,transitions:null}}function Uu(e,n,t){var r,l=n.pendingProps,o=uo.current,u=!1,i=0!==(128&n.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!==(2&o)),r?(u=!0,n.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),_l(uo,1&o),null===e)return sa(n),null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&n.mode)?n.lanes=1:"$!"===e.data?n.lanes=8:n.lanes=1073741824,null):(i=l.children,e=l.fallback,u?(l=n.mode,u=n.child,i={mode:"hidden",children:i},0===(1&l)&&null!==u?(u.childLanes=0,u.pendingProps=i):u=Is(i,l,0,null),e=Os(e,l,t,null),u.return=n,e.return=n,u.sibling=e,n.child=u,n.child.memoizedState=Iu(t),n.memoizedState=Ou,e):Vu(n,i));if(null!==(o=e.memoizedState)&&null!==(r=o.dehydrated))return function(e,n,t,r,l,o,u){if(t)return 256&n.flags?(n.flags&=-257,Au(e,n,u,r=fu(Error(a(422))))):null!==n.memoizedState?(n.child=e.child,n.flags|=128,null):(o=r.fallback,l=n.mode,r=Is({mode:"visible",children:r.children},l,0,null),(o=Os(o,l,u,null)).flags|=2,r.return=n,o.return=n,r.sibling=o,n.child=r,0!==(1&n.mode)&&Xa(n,e.child,null,u),n.child.memoizedState=Iu(u),n.memoizedState=Ou,o);if(0===(1&n.mode))return Au(e,n,u,null);if("$!"===l.data){if(r=l.nextSibling&&l.nextSibling.dataset)var i=r.dgst;return r=i,Au(e,n,u,r=fu(o=Error(a(419)),r,void 0))}if(i=0!==(u&e.childLanes),ku||i){if(null!==(r=Li)){switch(u&-u){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}0!==(l=0!==(l&(r.suspendedLanes|u))?0:l)&&l!==o.retryLane&&(o.retryLane=l,Pa(e,l),rs(r,e,l,-1))}return gs(),Au(e,n,u,r=fu(Error(a(421))))}return"$?"===l.data?(n.flags|=128,n.child=e.child,n=Ns.bind(null,e),l._reactRetry=n,null):(e=o.treeContext,ra=sl(l.nextSibling),ta=n,la=!0,aa=null,null!==e&&(Kl[ql++]=Xl,Kl[ql++]=Gl,Kl[ql++]=Yl,Xl=e.id,Gl=e.overflow,Yl=n),n=Vu(n,r.children),n.flags|=4096,n)}(e,n,i,l,r,o,t);if(u){u=l.fallback,i=n.mode,r=(o=e.child).sibling;var s={mode:"hidden",children:l.children};return 0===(1&i)&&n.child!==o?((l=n.child).childLanes=0,l.pendingProps=s,n.deletions=null):(l=Ds(o,s)).subtreeFlags=14680064&o.subtreeFlags,null!==r?u=Ds(r,u):(u=Os(u,i,t,null)).flags|=2,u.return=n,l.return=n,l.sibling=u,n.child=l,l=u,u=n.child,i=null===(i=e.child.memoizedState)?Iu(t):{baseLanes:i.baseLanes|t,cachePool:null,transitions:i.transitions},u.memoizedState=i,u.childLanes=e.childLanes&~t,n.memoizedState=Ou,l}return e=(u=e.child).sibling,l=Ds(u,{mode:"visible",children:l.children}),0===(1&n.mode)&&(l.lanes=t),l.return=n,l.sibling=null,null!==e&&(null===(t=n.deletions)?(n.deletions=[e],n.flags|=16):t.push(e)),n.child=l,n.memoizedState=null,l}function Vu(e,n){return(n=Is({mode:"visible",children:n},e.mode,0,null)).return=e,e.child=n}function Au(e,n,t,r){return null!==r&&ma(r),Xa(n,e.child,null,t),(e=Vu(n,n.pendingProps.children)).flags|=2,n.memoizedState=null,e}function Bu(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),xa(e.return,n,t)}function Hu(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function Qu(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(wu(e,n,r.children,t),0!==(2&(r=uo.current)))r=1&r|2,n.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bu(e,t,n);else if(19===e.tag)Bu(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(_l(uo,r),0===(1&n.mode))n.memoizedState=null;else switch(l){case"forwards":for(t=n.child,l=null;null!==t;)null!==(e=t.alternate)&&null===io(e)&&(l=t),t=t.sibling;null===(t=l)?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),Hu(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(null!==(e=l.alternate)&&null===io(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}Hu(n,!0,t,null,a);break;case"together":Hu(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Wu(e,n){0===(1&n.mode)&&null!==e&&(e.alternate=null,n.alternate=null,n.flags|=2)}function ju(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),Ii|=n.lanes,0===(t&n.childLanes))return null;if(null!==e&&n.child!==e.child)throw Error(a(153));if(null!==n.child){for(t=Ds(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=Ds(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function $u(e,n){if(!la)switch(e.tailMode){case"hidden":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case"collapsed":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ku(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=14680064&l.subtreeFlags,r|=14680064&l.flags,l.return=e,l=l.sibling;else for(l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function qu(e,n,t){var r=n.pendingProps;switch(na(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ku(n),null;case 1:case 17:return Ml(n.type)&&Fl(),Ku(n),null;case 3:return r=n.stateNode,lo(),Cl(Pl),Cl(Nl),co(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fa(n)?n.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&n.flags)||(n.flags|=1024,null!==aa&&(us(aa),aa=null))),Fu(e,n),Ku(n),null;case 5:oo(n);var l=to(no.current);if(t=n.type,null!==e&&null!=n.stateNode)Du(e,n,t,r,l),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!r){if(null===n.stateNode)throw Error(a(166));return Ku(n),null}if(e=to(Ja.current),fa(n)){r=n.stateNode,t=n.type;var o=n.memoizedProps;switch(r[dl]=n,r[pl]=o,e=0!==(1&n.mode),t){case"dialog":Vr("cancel",r),Vr("close",r);break;case"iframe":case"object":case"embed":Vr("load",r);break;case"video":case"audio":for(l=0;l<Rr.length;l++)Vr(Rr[l],r);break;case"source":Vr("error",r);break;case"img":case"image":case"link":Vr("error",r),Vr("load",r);break;case"details":Vr("toggle",r);break;case"input":X(r,o),Vr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!o.multiple},Vr("invalid",r);break;case"textarea":le(r,o),Vr("invalid",r)}for(var i in ye(t,o),l=null,o)if(o.hasOwnProperty(i)){var s=o[i];"children"===i?"string"===typeof s?r.textContent!==s&&(!0!==o.suppressHydrationWarning&&Zr(r.textContent,s,e),l=["children",s]):"number"===typeof s&&r.textContent!==""+s&&(!0!==o.suppressHydrationWarning&&Zr(r.textContent,s,e),l=["children",""+s]):u.hasOwnProperty(i)&&null!=s&&"onScroll"===i&&Vr("scroll",r)}switch(t){case"input":$(r),J(r,o,!0);break;case"textarea":$(r),oe(r);break;case"select":case"option":break;default:"function"===typeof o.onClick&&(r.onclick=Jr)}r=l,n.updateQueue=r,null!==r&&(n.flags|=4)}else{i=9===l.nodeType?l:l.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=ue(t)),"http://www.w3.org/1999/xhtml"===e?"script"===t?((e=i.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=i.createElement(t,{is:r.is}):(e=i.createElement(t),"select"===t&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,t),e[dl]=n,e[pl]=r,Mu(e,n,!1,!1),n.stateNode=e;e:{switch(i=be(t,r),t){case"dialog":Vr("cancel",e),Vr("close",e),l=r;break;case"iframe":case"object":case"embed":Vr("load",e),l=r;break;case"video":case"audio":for(l=0;l<Rr.length;l++)Vr(Rr[l],e);l=r;break;case"source":Vr("error",e),l=r;break;case"img":case"image":case"link":Vr("error",e),Vr("load",e),l=r;break;case"details":Vr("toggle",e),l=r;break;case"input":X(e,r),l=Y(e,r),Vr("invalid",e);break;case"option":default:l=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},l=I({},r,{value:void 0}),Vr("invalid",e);break;case"textarea":le(e,r),l=re(e,r),Vr("invalid",e)}for(o in ye(t,l),s=l)if(s.hasOwnProperty(o)){var c=s[o];"style"===o?ge(e,c):"dangerouslySetInnerHTML"===o?null!=(c=c?c.__html:void 0)&&fe(e,c):"children"===o?"string"===typeof c?("textarea"!==t||""!==c)&&de(e,c):"number"===typeof c&&de(e,""+c):"suppressContentEditableWarning"!==o&&"suppressHydrationWarning"!==o&&"autoFocus"!==o&&(u.hasOwnProperty(o)?null!=c&&"onScroll"===o&&Vr("scroll",e):null!=c&&b(e,o,c,i))}switch(t){case"input":$(e),J(e,r,!1);break;case"textarea":$(e),oe(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(o=r.value)?te(e,!!r.multiple,o,!1):null!=r.defaultValue&&te(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof l.onClick&&(e.onclick=Jr)}switch(t){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(n.flags|=4)}null!==n.ref&&(n.flags|=512,n.flags|=2097152)}return Ku(n),null;case 6:if(e&&null!=n.stateNode)Ru(e,n,e.memoizedProps,r);else{if("string"!==typeof r&&null===n.stateNode)throw Error(a(166));if(t=to(no.current),to(Ja.current),fa(n)){if(r=n.stateNode,t=n.memoizedProps,r[dl]=n,(o=r.nodeValue!==t)&&null!==(e=ta))switch(e.tag){case 3:Zr(r.nodeValue,t,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Zr(r.nodeValue,t,0!==(1&e.mode))}o&&(n.flags|=4)}else(r=(9===t.nodeType?t:t.ownerDocument).createTextNode(r))[dl]=n,n.stateNode=r}return Ku(n),null;case 13:if(Cl(uo),r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(la&&null!==ra&&0!==(1&n.mode)&&0===(128&n.flags))da(),pa(),n.flags|=98560,o=!1;else if(o=fa(n),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(a(318));if(!(o=null!==(o=n.memoizedState)?o.dehydrated:null))throw Error(a(317));o[dl]=n}else pa(),0===(128&n.flags)&&(n.memoizedState=null),n.flags|=4;Ku(n),o=!1}else null!==aa&&(us(aa),aa=null),o=!0;if(!o)return 65536&n.flags?n:null}return 0!==(128&n.flags)?(n.lanes=t,n):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(n.child.flags|=8192,0!==(1&n.mode)&&(null===e||0!==(1&uo.current)?0===Ri&&(Ri=3):gs())),null!==n.updateQueue&&(n.flags|=4),Ku(n),null);case 4:return lo(),Fu(e,n),null===e&&Hr(n.stateNode.containerInfo),Ku(n),null;case 10:return Sa(n.type._context),Ku(n),null;case 19:if(Cl(uo),null===(o=n.memoizedState))return Ku(n),null;if(r=0!==(128&n.flags),null===(i=o.rendering))if(r)$u(o,!1);else{if(0!==Ri||null!==e&&0!==(128&e.flags))for(e=n.child;null!==e;){if(null!==(i=io(e))){for(n.flags|=128,$u(o,!1),null!==(r=i.updateQueue)&&(n.updateQueue=r,n.flags|=4),n.subtreeFlags=0,r=t,t=n.child;null!==t;)e=r,(o=t).flags&=14680066,null===(i=o.alternate)?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,o.type=i.type,e=i.dependencies,o.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),t=t.sibling;return _l(uo,1&uo.current|2),n.child}e=e.sibling}null!==o.tail&&Ge()>Qi&&(n.flags|=128,r=!0,$u(o,!1),n.lanes=4194304)}else{if(!r)if(null!==(e=io(i))){if(n.flags|=128,r=!0,null!==(t=e.updateQueue)&&(n.updateQueue=t,n.flags|=4),$u(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate&&!la)return Ku(n),null}else 2*Ge()-o.renderingStartTime>Qi&&1073741824!==t&&(n.flags|=128,r=!0,$u(o,!1),n.lanes=4194304);o.isBackwards?(i.sibling=n.child,n.child=i):(null!==(t=o.last)?t.sibling=i:n.child=i,o.last=i)}return null!==o.tail?(n=o.tail,o.rendering=n,o.tail=n.sibling,o.renderingStartTime=Ge(),n.sibling=null,t=uo.current,_l(uo,r?1&t|2:1&t),n):(Ku(n),null);case 22:case 23:return ds(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(1&n.mode)?0!==(1073741824&Fi)&&(Ku(n),6&n.subtreeFlags&&(n.flags|=8192)):Ku(n),null;case 24:case 25:return null}throw Error(a(156,n.tag))}function Yu(e,n){switch(na(n),n.tag){case 1:return Ml(n.type)&&Fl(),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return lo(),Cl(Pl),Cl(Nl),co(),0!==(65536&(e=n.flags))&&0===(128&e)?(n.flags=-65537&e|128,n):null;case 5:return oo(n),null;case 13:if(Cl(uo),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(a(340));pa()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return Cl(uo),null;case 4:return lo(),null;case 10:return Sa(n.type._context),null;case 22:case 23:return ds(),null;default:return null}}Mu=function(e,n){for(var t=n.child;null!==t;){if(5===t.tag||6===t.tag)e.appendChild(t.stateNode);else if(4!==t.tag&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===n)break;for(;null===t.sibling;){if(null===t.return||t.return===n)return;t=t.return}t.sibling.return=t.return,t=t.sibling}},Fu=function(){},Du=function(e,n,t,r){var l=e.memoizedProps;if(l!==r){e=n.stateNode,to(Ja.current);var a,o=null;switch(t){case"input":l=Y(e,l),r=Y(e,r),o=[];break;case"select":l=I({},l,{value:void 0}),r=I({},r,{value:void 0}),o=[];break;case"textarea":l=re(e,l),r=re(e,r),o=[];break;default:"function"!==typeof l.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(c in ye(t,r),t=null,l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&null!=l[c])if("style"===c){var i=l[c];for(a in i)i.hasOwnProperty(a)&&(t||(t={}),t[a]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(u.hasOwnProperty(c)?o||(o=[]):(o=o||[]).push(c,null));for(c in r){var s=r[c];if(i=null!=l?l[c]:void 0,r.hasOwnProperty(c)&&s!==i&&(null!=s||null!=i))if("style"===c)if(i){for(a in i)!i.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(t||(t={}),t[a]="");for(a in s)s.hasOwnProperty(a)&&i[a]!==s[a]&&(t||(t={}),t[a]=s[a])}else t||(o||(o=[]),o.push(c,t)),t=s;else"dangerouslySetInnerHTML"===c?(s=s?s.__html:void 0,i=i?i.__html:void 0,null!=s&&i!==s&&(o=o||[]).push(c,s)):"children"===c?"string"!==typeof s&&"number"!==typeof s||(o=o||[]).push(c,""+s):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(u.hasOwnProperty(c)?(null!=s&&"onScroll"===c&&Vr("scroll",e),o||i===s||(o=[])):(o=o||[]).push(c,s))}t&&(o=o||[]).push("style",t);var c=o;(n.updateQueue=c)&&(n.flags|=4)}},Ru=function(e,n,t,r){t!==r&&(n.flags|=4)};var Xu=!1,Gu=!1,Zu="function"===typeof WeakSet?WeakSet:Set,Ju=null;function ei(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(r){Cs(e,n,r)}else t.current=null}function ni(e,n,t){try{t()}catch(r){Cs(e,n,r)}}var ti=!1;function ri(e,n,t){var r=n.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,void 0!==a&&ni(n,t,a)}l=l.next}while(l!==r)}}function li(e,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function ai(e){var n=e.ref;if(null!==n){var t=e.stateNode;e.tag,e=t,"function"===typeof n?n(e):n.current=e}}function oi(e){var n=e.alternate;null!==n&&(e.alternate=null,oi(n)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(n=e.stateNode)&&(delete n[dl],delete n[pl],delete n[hl],delete n[gl],delete n[vl])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ui(e){return 5===e.tag||3===e.tag||4===e.tag}function ii(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ui(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function si(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?8===t.nodeType?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(8===t.nodeType?(n=t.parentNode).insertBefore(e,t):(n=t).appendChild(e),null!==(t=t._reactRootContainer)&&void 0!==t||null!==n.onclick||(n.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(si(e,n,t),e=e.sibling;null!==e;)si(e,n,t),e=e.sibling}function ci(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ci(e,n,t),e=e.sibling;null!==e;)ci(e,n,t),e=e.sibling}var fi=null,di=!1;function pi(e,n,t){for(t=t.child;null!==t;)mi(e,n,t),t=t.sibling}function mi(e,n,t){if(an&&"function"===typeof an.onCommitFiberUnmount)try{an.onCommitFiberUnmount(ln,t)}catch(u){}switch(t.tag){case 5:Gu||ei(t,n);case 6:var r=fi,l=di;fi=null,pi(e,n,t),di=l,null!==(fi=r)&&(di?(e=fi,t=t.stateNode,8===e.nodeType?e.parentNode.removeChild(t):e.removeChild(t)):fi.removeChild(t.stateNode));break;case 18:null!==fi&&(di?(e=fi,t=t.stateNode,8===e.nodeType?il(e.parentNode,t):1===e.nodeType&&il(e,t),Qn(e)):il(fi,t.stateNode));break;case 4:r=fi,l=di,fi=t.stateNode.containerInfo,di=!0,pi(e,n,t),fi=r,di=l;break;case 0:case 11:case 14:case 15:if(!Gu&&(null!==(r=t.updateQueue)&&null!==(r=r.lastEffect))){l=r=r.next;do{var a=l,o=a.destroy;a=a.tag,void 0!==o&&(0!==(2&a)||0!==(4&a))&&ni(t,n,o),l=l.next}while(l!==r)}pi(e,n,t);break;case 1:if(!Gu&&(ei(t,n),"function"===typeof(r=t.stateNode).componentWillUnmount))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(u){Cs(t,n,u)}pi(e,n,t);break;case 21:pi(e,n,t);break;case 22:1&t.mode?(Gu=(r=Gu)||null!==t.memoizedState,pi(e,n,t),Gu=r):pi(e,n,t);break;default:pi(e,n,t)}}function hi(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new Zu),n.forEach((function(n){var r=Ps.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))}))}}function gi(e,n){var t=n.deletions;if(null!==t)for(var r=0;r<t.length;r++){var l=t[r];try{var o=e,u=n,i=u;e:for(;null!==i;){switch(i.tag){case 5:fi=i.stateNode,di=!1;break e;case 3:case 4:fi=i.stateNode.containerInfo,di=!0;break e}i=i.return}if(null===fi)throw Error(a(160));mi(o,u,l),fi=null,di=!1;var s=l.alternate;null!==s&&(s.return=null),l.return=null}catch(c){Cs(l,n,c)}}if(12854&n.subtreeFlags)for(n=n.child;null!==n;)vi(n,e),n=n.sibling}function vi(e,n){var t=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gi(n,e),yi(e),4&r){try{ri(3,e,e.return),li(3,e)}catch(g){Cs(e,e.return,g)}try{ri(5,e,e.return)}catch(g){Cs(e,e.return,g)}}break;case 1:gi(n,e),yi(e),512&r&&null!==t&&ei(t,t.return);break;case 5:if(gi(n,e),yi(e),512&r&&null!==t&&ei(t,t.return),32&e.flags){var l=e.stateNode;try{de(l,"")}catch(g){Cs(e,e.return,g)}}if(4&r&&null!=(l=e.stateNode)){var o=e.memoizedProps,u=null!==t?t.memoizedProps:o,i=e.type,s=e.updateQueue;if(e.updateQueue=null,null!==s)try{"input"===i&&"radio"===o.type&&null!=o.name&&G(l,o),be(i,u);var c=be(i,o);for(u=0;u<s.length;u+=2){var f=s[u],d=s[u+1];"style"===f?ge(l,d):"dangerouslySetInnerHTML"===f?fe(l,d):"children"===f?de(l,d):b(l,f,d,c)}switch(i){case"input":Z(l,o);break;case"textarea":ae(l,o);break;case"select":var p=l._wrapperState.wasMultiple;l._wrapperState.wasMultiple=!!o.multiple;var m=o.value;null!=m?te(l,!!o.multiple,m,!1):p!==!!o.multiple&&(null!=o.defaultValue?te(l,!!o.multiple,o.defaultValue,!0):te(l,!!o.multiple,o.multiple?[]:"",!1))}l[pl]=o}catch(g){Cs(e,e.return,g)}}break;case 6:if(gi(n,e),yi(e),4&r){if(null===e.stateNode)throw Error(a(162));l=e.stateNode,o=e.memoizedProps;try{l.nodeValue=o}catch(g){Cs(e,e.return,g)}}break;case 3:if(gi(n,e),yi(e),4&r&&null!==t&&t.memoizedState.isDehydrated)try{Qn(n.containerInfo)}catch(g){Cs(e,e.return,g)}break;case 4:default:gi(n,e),yi(e);break;case 13:gi(n,e),yi(e),8192&(l=e.child).flags&&(o=null!==l.memoizedState,l.stateNode.isHidden=o,!o||null!==l.alternate&&null!==l.alternate.memoizedState||(Hi=Ge())),4&r&&hi(e);break;case 22:if(f=null!==t&&null!==t.memoizedState,1&e.mode?(Gu=(c=Gu)||f,gi(n,e),Gu=c):gi(n,e),yi(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!f&&0!==(1&e.mode))for(Ju=e,f=e.child;null!==f;){for(d=Ju=f;null!==Ju;){switch(m=(p=Ju).child,p.tag){case 0:case 11:case 14:case 15:ri(4,p,p.return);break;case 1:ei(p,p.return);var h=p.stateNode;if("function"===typeof h.componentWillUnmount){r=p,t=p.return;try{n=r,h.props=n.memoizedProps,h.state=n.memoizedState,h.componentWillUnmount()}catch(g){Cs(r,t,g)}}break;case 5:ei(p,p.return);break;case 22:if(null!==p.memoizedState){Si(d);continue}}null!==m?(m.return=p,Ju=m):Si(d)}f=f.sibling}e:for(f=null,d=e;;){if(5===d.tag){if(null===f){f=d;try{l=d.stateNode,c?"function"===typeof(o=l.style).setProperty?o.setProperty("display","none","important"):o.display="none":(i=d.stateNode,u=void 0!==(s=d.memoizedProps.style)&&null!==s&&s.hasOwnProperty("display")?s.display:null,i.style.display=he("display",u))}catch(g){Cs(e,e.return,g)}}}else if(6===d.tag){if(null===f)try{d.stateNode.nodeValue=c?"":d.memoizedProps}catch(g){Cs(e,e.return,g)}}else if((22!==d.tag&&23!==d.tag||null===d.memoizedState||d===e)&&null!==d.child){d.child.return=d,d=d.child;continue}if(d===e)break e;for(;null===d.sibling;){if(null===d.return||d.return===e)break e;f===d&&(f=null),d=d.return}f===d&&(f=null),d.sibling.return=d.return,d=d.sibling}}break;case 19:gi(n,e),yi(e),4&r&&hi(e);case 21:}}function yi(e){var n=e.flags;if(2&n){try{e:{for(var t=e.return;null!==t;){if(ui(t)){var r=t;break e}t=t.return}throw Error(a(160))}switch(r.tag){case 5:var l=r.stateNode;32&r.flags&&(de(l,""),r.flags&=-33),ci(e,ii(e),l);break;case 3:case 4:var o=r.stateNode.containerInfo;si(e,ii(e),o);break;default:throw Error(a(161))}}catch(u){Cs(e,e.return,u)}e.flags&=-3}4096&n&&(e.flags&=-4097)}function bi(e,n,t){Ju=e,ki(e,n,t)}function ki(e,n,t){for(var r=0!==(1&e.mode);null!==Ju;){var l=Ju,a=l.child;if(22===l.tag&&r){var o=null!==l.memoizedState||Xu;if(!o){var u=l.alternate,i=null!==u&&null!==u.memoizedState||Gu;u=Xu;var s=Gu;if(Xu=o,(Gu=i)&&!s)for(Ju=l;null!==Ju;)i=(o=Ju).child,22===o.tag&&null!==o.memoizedState?xi(l):null!==i?(i.return=o,Ju=i):xi(l);for(;null!==a;)Ju=a,ki(a,n,t),a=a.sibling;Ju=l,Xu=u,Gu=s}wi(e)}else 0!==(8772&l.subtreeFlags)&&null!==a?(a.return=l,Ju=a):wi(e)}}function wi(e){for(;null!==Ju;){var n=Ju;if(0!==(8772&n.flags)){var t=n.alternate;try{if(0!==(8772&n.flags))switch(n.tag){case 0:case 11:case 15:Gu||li(5,n);break;case 1:var r=n.stateNode;if(4&n.flags&&!Gu)if(null===t)r.componentDidMount();else{var l=n.elementType===n.type?t.memoizedProps:ga(n.type,t.memoizedProps);r.componentDidUpdate(l,t.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var o=n.updateQueue;null!==o&&Ua(n,o,r);break;case 3:var u=n.updateQueue;if(null!==u){if(t=null,null!==n.child)switch(n.child.tag){case 5:case 1:t=n.child.stateNode}Ua(n,u,t)}break;case 5:var i=n.stateNode;if(null===t&&4&n.flags){t=i;var s=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":s.autoFocus&&t.focus();break;case"img":s.src&&(t.src=s.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===n.memoizedState){var c=n.alternate;if(null!==c){var f=c.memoizedState;if(null!==f){var d=f.dehydrated;null!==d&&Qn(d)}}}break;default:throw Error(a(163))}Gu||512&n.flags&&ai(n)}catch(p){Cs(n,n.return,p)}}if(n===e){Ju=null;break}if(null!==(t=n.sibling)){t.return=n.return,Ju=t;break}Ju=n.return}}function Si(e){for(;null!==Ju;){var n=Ju;if(n===e){Ju=null;break}var t=n.sibling;if(null!==t){t.return=n.return,Ju=t;break}Ju=n.return}}function xi(e){for(;null!==Ju;){var n=Ju;try{switch(n.tag){case 0:case 11:case 15:var t=n.return;try{li(4,n)}catch(i){Cs(n,t,i)}break;case 1:var r=n.stateNode;if("function"===typeof r.componentDidMount){var l=n.return;try{r.componentDidMount()}catch(i){Cs(n,l,i)}}var a=n.return;try{ai(n)}catch(i){Cs(n,a,i)}break;case 5:var o=n.return;try{ai(n)}catch(i){Cs(n,o,i)}}}catch(i){Cs(n,n.return,i)}if(n===e){Ju=null;break}var u=n.sibling;if(null!==u){u.return=n.return,Ju=u;break}Ju=n.return}}var Ei,Ci=Math.ceil,_i=k.ReactCurrentDispatcher,zi=k.ReactCurrentOwner,Ni=k.ReactCurrentBatchConfig,Pi=0,Li=null,Ti=null,Mi=0,Fi=0,Di=El(0),Ri=0,Oi=null,Ii=0,Ui=0,Vi=0,Ai=null,Bi=null,Hi=0,Qi=1/0,Wi=null,ji=!1,$i=null,Ki=null,qi=!1,Yi=null,Xi=0,Gi=0,Zi=null,Ji=-1,es=0;function ns(){return 0!==(6&Pi)?Ge():-1!==Ji?Ji:Ji=Ge()}function ts(e){return 0===(1&e.mode)?1:0!==(2&Pi)&&0!==Mi?Mi&-Mi:null!==ha.transition?(0===es&&(es=gn()),es):0!==(e=kn)?e:e=void 0===(e=window.event)?16:Gn(e.type)}function rs(e,n,t,r){if(50<Gi)throw Gi=0,Zi=null,Error(a(185));yn(e,t,r),0!==(2&Pi)&&e===Li||(e===Li&&(0===(2&Pi)&&(Ui|=t),4===Ri&&is(e,Mi)),ls(e,r),1===t&&0===Pi&&0===(1&n.mode)&&(Qi=Ge()+500,Vl&&Hl()))}function ls(e,n){var t=e.callbackNode;!function(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=e.pendingLanes;0<a;){var o=31-on(a),u=1<<o,i=l[o];-1===i?0!==(u&t)&&0===(u&r)||(l[o]=mn(u,n)):i<=n&&(e.expiredLanes|=u),a&=~u}}(e,n);var r=pn(e,e===Li?Mi:0);if(0===r)null!==t&&qe(t),e.callbackNode=null,e.callbackPriority=0;else if(n=r&-r,e.callbackPriority!==n){if(null!=t&&qe(t),1===n)0===e.tag?function(e){Vl=!0,Bl(e)}(ss.bind(null,e)):Bl(ss.bind(null,e)),ol((function(){0===(6&Pi)&&Hl()})),t=null;else{switch(wn(r)){case 1:t=Je;break;case 4:t=en;break;case 16:default:t=nn;break;case 536870912:t=rn}t=Ls(t,as.bind(null,e))}e.callbackPriority=n,e.callbackNode=t}}function as(e,n){if(Ji=-1,es=0,0!==(6&Pi))throw Error(a(327));var t=e.callbackNode;if(xs()&&e.callbackNode!==t)return null;var r=pn(e,e===Li?Mi:0);if(0===r)return null;if(0!==(30&r)||0!==(r&e.expiredLanes)||n)n=vs(e,r);else{n=r;var l=Pi;Pi|=2;var o=hs();for(Li===e&&Mi===n||(Wi=null,Qi=Ge()+500,ps(e,n));;)try{bs();break}catch(i){ms(e,i)}wa(),_i.current=o,Pi=l,null!==Ti?n=0:(Li=null,Mi=0,n=Ri)}if(0!==n){if(2===n&&(0!==(l=hn(e))&&(r=l,n=os(e,l))),1===n)throw t=Oi,ps(e,0),is(e,r),ls(e,Ge()),t;if(6===n)is(e,r);else{if(l=e.current.alternate,0===(30&r)&&!function(e){for(var n=e;;){if(16384&n.flags){var t=n.updateQueue;if(null!==t&&null!==(t=t.stores))for(var r=0;r<t.length;r++){var l=t[r],a=l.getSnapshot;l=l.value;try{if(!ur(a(),l))return!1}catch(u){return!1}}}if(t=n.child,16384&n.subtreeFlags&&null!==t)t.return=n,n=t;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}(l)&&(2===(n=vs(e,r))&&(0!==(o=hn(e))&&(r=o,n=os(e,o))),1===n))throw t=Oi,ps(e,0),is(e,r),ls(e,Ge()),t;switch(e.finishedWork=l,e.finishedLanes=r,n){case 0:case 1:throw Error(a(345));case 2:case 5:Ss(e,Bi,Wi);break;case 3:if(is(e,r),(130023424&r)===r&&10<(n=Hi+500-Ge())){if(0!==pn(e,0))break;if(((l=e.suspendedLanes)&r)!==r){ns(),e.pingedLanes|=e.suspendedLanes&l;break}e.timeoutHandle=rl(Ss.bind(null,e,Bi,Wi),n);break}Ss(e,Bi,Wi);break;case 4:if(is(e,r),(4194240&r)===r)break;for(n=e.eventTimes,l=-1;0<r;){var u=31-on(r);o=1<<u,(u=n[u])>l&&(l=u),r&=~o}if(r=l,10<(r=(120>(r=Ge()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ci(r/1960))-r)){e.timeoutHandle=rl(Ss.bind(null,e,Bi,Wi),r);break}Ss(e,Bi,Wi);break;default:throw Error(a(329))}}}return ls(e,Ge()),e.callbackNode===t?as.bind(null,e):null}function os(e,n){var t=Ai;return e.current.memoizedState.isDehydrated&&(ps(e,n).flags|=256),2!==(e=vs(e,n))&&(n=Bi,Bi=t,null!==n&&us(n)),e}function us(e){null===Bi?Bi=e:Bi.push.apply(Bi,e)}function is(e,n){for(n&=~Vi,n&=~Ui,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var t=31-on(n),r=1<<t;e[t]=-1,n&=~r}}function ss(e){if(0!==(6&Pi))throw Error(a(327));xs();var n=pn(e,0);if(0===(1&n))return ls(e,Ge()),null;var t=vs(e,n);if(0!==e.tag&&2===t){var r=hn(e);0!==r&&(n=r,t=os(e,r))}if(1===t)throw t=Oi,ps(e,0),is(e,n),ls(e,Ge()),t;if(6===t)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,Ss(e,Bi,Wi),ls(e,Ge()),null}function cs(e,n){var t=Pi;Pi|=1;try{return e(n)}finally{0===(Pi=t)&&(Qi=Ge()+500,Vl&&Hl())}}function fs(e){null!==Yi&&0===Yi.tag&&0===(6&Pi)&&xs();var n=Pi;Pi|=1;var t=Ni.transition,r=kn;try{if(Ni.transition=null,kn=1,e)return e()}finally{kn=r,Ni.transition=t,0===(6&(Pi=n))&&Hl()}}function ds(){Fi=Di.current,Cl(Di)}function ps(e,n){e.finishedWork=null,e.finishedLanes=0;var t=e.timeoutHandle;if(-1!==t&&(e.timeoutHandle=-1,ll(t)),null!==Ti)for(t=Ti.return;null!==t;){var r=t;switch(na(r),r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&Fl();break;case 3:lo(),Cl(Pl),Cl(Nl),co();break;case 5:oo(r);break;case 4:lo();break;case 13:case 19:Cl(uo);break;case 10:Sa(r.type._context);break;case 22:case 23:ds()}t=t.return}if(Li=e,Ti=e=Ds(e.current,null),Mi=Fi=n,Ri=0,Oi=null,Vi=Ui=Ii=0,Bi=Ai=null,null!==_a){for(n=0;n<_a.length;n++)if(null!==(r=(t=_a[n]).interleaved)){t.interleaved=null;var l=r.next,a=t.pending;if(null!==a){var o=a.next;a.next=l,r.next=o}t.pending=r}_a=null}return e}function ms(e,n){for(;;){var t=Ti;try{if(wa(),fo.current=ou,yo){for(var r=ho.memoizedState;null!==r;){var l=r.queue;null!==l&&(l.pending=null),r=r.next}yo=!1}if(mo=0,vo=go=ho=null,bo=!1,ko=0,zi.current=null,null===t||null===t.return){Ri=1,Oi=n,Ti=null;break}e:{var o=e,u=t.return,i=t,s=n;if(n=Mi,i.flags|=32768,null!==s&&"object"===typeof s&&"function"===typeof s.then){var c=s,f=i,d=f.tag;if(0===(1&f.mode)&&(0===d||11===d||15===d)){var p=f.alternate;p?(f.updateQueue=p.updateQueue,f.memoizedState=p.memoizedState,f.lanes=p.lanes):(f.updateQueue=null,f.memoizedState=null)}var m=vu(u);if(null!==m){m.flags&=-257,yu(m,u,i,0,n),1&m.mode&&gu(o,c,n),s=c;var h=(n=m).updateQueue;if(null===h){var g=new Set;g.add(s),n.updateQueue=g}else h.add(s);break e}if(0===(1&n)){gu(o,c,n),gs();break e}s=Error(a(426))}else if(la&&1&i.mode){var v=vu(u);if(null!==v){0===(65536&v.flags)&&(v.flags|=256),yu(v,u,i,0,n),ma(cu(s,i));break e}}o=s=cu(s,i),4!==Ri&&(Ri=2),null===Ai?Ai=[o]:Ai.push(o),o=u;do{switch(o.tag){case 3:o.flags|=65536,n&=-n,o.lanes|=n,Oa(o,mu(0,s,n));break e;case 1:i=s;var y=o.type,b=o.stateNode;if(0===(128&o.flags)&&("function"===typeof y.getDerivedStateFromError||null!==b&&"function"===typeof b.componentDidCatch&&(null===Ki||!Ki.has(b)))){o.flags|=65536,n&=-n,o.lanes|=n,Oa(o,hu(o,i,n));break e}}o=o.return}while(null!==o)}ws(t)}catch(k){n=k,Ti===t&&null!==t&&(Ti=t=t.return);continue}break}}function hs(){var e=_i.current;return _i.current=ou,null===e?ou:e}function gs(){0!==Ri&&3!==Ri&&2!==Ri||(Ri=4),null===Li||0===(268435455&Ii)&&0===(268435455&Ui)||is(Li,Mi)}function vs(e,n){var t=Pi;Pi|=2;var r=hs();for(Li===e&&Mi===n||(Wi=null,ps(e,n));;)try{ys();break}catch(l){ms(e,l)}if(wa(),Pi=t,_i.current=r,null!==Ti)throw Error(a(261));return Li=null,Mi=0,Ri}function ys(){for(;null!==Ti;)ks(Ti)}function bs(){for(;null!==Ti&&!Ye();)ks(Ti)}function ks(e){var n=Ei(e.alternate,e,Fi);e.memoizedProps=e.pendingProps,null===n?ws(e):Ti=n,zi.current=null}function ws(e){var n=e;do{var t=n.alternate;if(e=n.return,0===(32768&n.flags)){if(null!==(t=qu(t,n,Fi)))return void(Ti=t)}else{if(null!==(t=Yu(t,n)))return t.flags&=32767,void(Ti=t);if(null===e)return Ri=6,void(Ti=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(n=n.sibling))return void(Ti=n);Ti=n=e}while(null!==n);0===Ri&&(Ri=5)}function Ss(e,n,t){var r=kn,l=Ni.transition;try{Ni.transition=null,kn=1,function(e,n,t,r){do{xs()}while(null!==Yi);if(0!==(6&Pi))throw Error(a(327));t=e.finishedWork;var l=e.finishedLanes;if(null===t)return null;if(e.finishedWork=null,e.finishedLanes=0,t===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var o=t.lanes|t.childLanes;if(function(e,n){var t=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<t;){var l=31-on(t),a=1<<l;n[l]=0,r[l]=-1,e[l]=-1,t&=~a}}(e,o),e===Li&&(Ti=Li=null,Mi=0),0===(2064&t.subtreeFlags)&&0===(2064&t.flags)||qi||(qi=!0,Ls(nn,(function(){return xs(),null}))),o=0!==(15990&t.flags),0!==(15990&t.subtreeFlags)||o){o=Ni.transition,Ni.transition=null;var u=kn;kn=1;var i=Pi;Pi|=4,zi.current=null,function(e,n){if(el=jn,pr(e=dr())){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{t.nodeType,o.nodeType}catch(w){t=null;break e}var u=0,i=-1,s=-1,c=0,f=0,d=e,p=null;n:for(;;){for(var m;d!==t||0!==l&&3!==d.nodeType||(i=u+l),d!==o||0!==r&&3!==d.nodeType||(s=u+r),3===d.nodeType&&(u+=d.nodeValue.length),null!==(m=d.firstChild);)p=d,d=m;for(;;){if(d===e)break n;if(p===t&&++c===l&&(i=u),p===o&&++f===r&&(s=u),null!==(m=d.nextSibling))break;p=(d=p).parentNode}d=m}t=-1===i||-1===s?null:{start:i,end:s}}else t=null}t=t||{start:0,end:0}}else t=null;for(nl={focusedElem:e,selectionRange:t},jn=!1,Ju=n;null!==Ju;)if(e=(n=Ju).child,0!==(1028&n.subtreeFlags)&&null!==e)e.return=n,Ju=e;else for(;null!==Ju;){n=Ju;try{var h=n.alternate;if(0!==(1024&n.flags))switch(n.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,v=h.memoizedState,y=n.stateNode,b=y.getSnapshotBeforeUpdate(n.elementType===n.type?g:ga(n.type,g),v);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var k=n.stateNode.containerInfo;1===k.nodeType?k.textContent="":9===k.nodeType&&k.documentElement&&k.removeChild(k.documentElement);break;default:throw Error(a(163))}}catch(w){Cs(n,n.return,w)}if(null!==(e=n.sibling)){e.return=n.return,Ju=e;break}Ju=n.return}h=ti,ti=!1}(e,t),vi(t,e),mr(nl),jn=!!el,nl=el=null,e.current=t,bi(t,e,l),Xe(),Pi=i,kn=u,Ni.transition=o}else e.current=t;if(qi&&(qi=!1,Yi=e,Xi=l),o=e.pendingLanes,0===o&&(Ki=null),function(e){if(an&&"function"===typeof an.onCommitFiberRoot)try{an.onCommitFiberRoot(ln,e,void 0,128===(128&e.current.flags))}catch(n){}}(t.stateNode),ls(e,Ge()),null!==n)for(r=e.onRecoverableError,t=0;t<n.length;t++)l=n[t],r(l.value,{componentStack:l.stack,digest:l.digest});if(ji)throw ji=!1,e=$i,$i=null,e;0!==(1&Xi)&&0!==e.tag&&xs(),o=e.pendingLanes,0!==(1&o)?e===Zi?Gi++:(Gi=0,Zi=e):Gi=0,Hl()}(e,n,t,r)}finally{Ni.transition=l,kn=r}return null}function xs(){if(null!==Yi){var e=wn(Xi),n=Ni.transition,t=kn;try{if(Ni.transition=null,kn=16>e?16:e,null===Yi)var r=!1;else{if(e=Yi,Yi=null,Xi=0,0!==(6&Pi))throw Error(a(331));var l=Pi;for(Pi|=4,Ju=e.current;null!==Ju;){var o=Ju,u=o.child;if(0!==(16&Ju.flags)){var i=o.deletions;if(null!==i){for(var s=0;s<i.length;s++){var c=i[s];for(Ju=c;null!==Ju;){var f=Ju;switch(f.tag){case 0:case 11:case 15:ri(8,f,o)}var d=f.child;if(null!==d)d.return=f,Ju=d;else for(;null!==Ju;){var p=(f=Ju).sibling,m=f.return;if(oi(f),f===c){Ju=null;break}if(null!==p){p.return=m,Ju=p;break}Ju=m}}}var h=o.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var v=g.sibling;g.sibling=null,g=v}while(null!==g)}}Ju=o}}if(0!==(2064&o.subtreeFlags)&&null!==u)u.return=o,Ju=u;else e:for(;null!==Ju;){if(0!==(2048&(o=Ju).flags))switch(o.tag){case 0:case 11:case 15:ri(9,o,o.return)}var y=o.sibling;if(null!==y){y.return=o.return,Ju=y;break e}Ju=o.return}}var b=e.current;for(Ju=b;null!==Ju;){var k=(u=Ju).child;if(0!==(2064&u.subtreeFlags)&&null!==k)k.return=u,Ju=k;else e:for(u=b;null!==Ju;){if(0!==(2048&(i=Ju).flags))try{switch(i.tag){case 0:case 11:case 15:li(9,i)}}catch(S){Cs(i,i.return,S)}if(i===u){Ju=null;break e}var w=i.sibling;if(null!==w){w.return=i.return,Ju=w;break e}Ju=i.return}}if(Pi=l,Hl(),an&&"function"===typeof an.onPostCommitFiberRoot)try{an.onPostCommitFiberRoot(ln,e)}catch(S){}r=!0}return r}finally{kn=t,Ni.transition=n}}return!1}function Es(e,n,t){e=Da(e,n=mu(0,n=cu(t,n),1),1),n=ns(),null!==e&&(yn(e,1,n),ls(e,n))}function Cs(e,n,t){if(3===e.tag)Es(e,e,t);else for(;null!==n;){if(3===n.tag){Es(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"===typeof n.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Ki||!Ki.has(r))){n=Da(n,e=hu(n,e=cu(t,e),1),1),e=ns(),null!==n&&(yn(n,1,e),ls(n,e));break}}n=n.return}}function _s(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),n=ns(),e.pingedLanes|=e.suspendedLanes&t,Li===e&&(Mi&t)===t&&(4===Ri||3===Ri&&(130023424&Mi)===Mi&&500>Ge()-Hi?ps(e,0):Vi|=t),ls(e,n)}function zs(e,n){0===n&&(0===(1&e.mode)?n=1:(n=fn,0===(130023424&(fn<<=1))&&(fn=4194304)));var t=ns();null!==(e=Pa(e,n))&&(yn(e,n,t),ls(e,t))}function Ns(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),zs(e,t)}function Ps(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(n),zs(e,t)}function Ls(e,n){return Ke(e,n)}function Ts(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ms(e,n,t,r){return new Ts(e,n,t,r)}function Fs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ds(e,n){var t=e.alternate;return null===t?((t=Ms(e.tag,n,e.key,e.mode)).elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=14680064&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Rs(e,n,t,r,l,o){var u=2;if(r=e,"function"===typeof e)Fs(e)&&(u=1);else if("string"===typeof e)u=5;else e:switch(e){case x:return Os(t.children,l,o,n);case E:u=8,l|=8;break;case C:return(e=Ms(12,t,n,2|l)).elementType=C,e.lanes=o,e;case P:return(e=Ms(13,t,n,l)).elementType=P,e.lanes=o,e;case L:return(e=Ms(19,t,n,l)).elementType=L,e.lanes=o,e;case F:return Is(t,l,o,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case _:u=10;break e;case z:u=9;break e;case N:u=11;break e;case T:u=14;break e;case M:u=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(n=Ms(u,t,n,l)).elementType=e,n.type=r,n.lanes=o,n}function Os(e,n,t,r){return(e=Ms(7,e,r,n)).lanes=t,e}function Is(e,n,t,r){return(e=Ms(22,e,r,n)).elementType=F,e.lanes=t,e.stateNode={isHidden:!1},e}function Us(e,n,t){return(e=Ms(6,e,null,n)).lanes=t,e}function Vs(e,n,t){return(n=Ms(4,null!==e.children?e.children:[],e.key,n)).lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function As(e,n,t,r,l){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=vn(0),this.expirationTimes=vn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=vn(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Bs(e,n,t,r,l,a,o,u,i){return e=new As(e,n,t,u,i),1===n?(n=1,!0===a&&(n|=8)):n=0,a=Ms(3,null,null,n),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ta(a),e}function Hs(e){if(!e)return zl;e:{if(He(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(Ml(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(null!==n);throw Error(a(171))}if(1===e.tag){var t=e.type;if(Ml(t))return Rl(e,t,n)}return n}function Qs(e,n,t,r,l,a,o,u,i){return(e=Bs(t,r,!0,e,0,a,0,u,i)).context=Hs(null),t=e.current,(a=Fa(r=ns(),l=ts(t))).callback=void 0!==n&&null!==n?n:null,Da(t,a,l),e.current.lanes=l,yn(e,l,r),ls(e,r),e}function Ws(e,n,t,r){var l=n.current,a=ns(),o=ts(l);return t=Hs(t),null===n.context?n.context=t:n.pendingContext=t,(n=Fa(a,o)).payload={element:e},null!==(r=void 0===r?null:r)&&(n.callback=r),null!==(e=Da(l,n,o))&&(rs(e,l,o,a),Ra(e,l,o)),o}function js(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function $s(e,n){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t<n?t:n}}function Ks(e,n){$s(e,n),(e=e.alternate)&&$s(e,n)}Ei=function(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps||Pl.current)ku=!0;else{if(0===(e.lanes&t)&&0===(128&n.flags))return ku=!1,function(e,n,t){switch(n.tag){case 3:Lu(n),pa();break;case 5:ao(n);break;case 1:Ml(n.type)&&Ol(n);break;case 4:ro(n,n.stateNode.containerInfo);break;case 10:var r=n.type._context,l=n.memoizedProps.value;_l(va,r._currentValue),r._currentValue=l;break;case 13:if(null!==(r=n.memoizedState))return null!==r.dehydrated?(_l(uo,1&uo.current),n.flags|=128,null):0!==(t&n.child.childLanes)?Uu(e,n,t):(_l(uo,1&uo.current),null!==(e=ju(e,n,t))?e.sibling:null);_l(uo,1&uo.current);break;case 19:if(r=0!==(t&n.childLanes),0!==(128&e.flags)){if(r)return Qu(e,n,t);n.flags|=128}if(null!==(l=n.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),_l(uo,uo.current),r)break;return null;case 22:case 23:return n.lanes=0,Cu(e,n,t)}return ju(e,n,t)}(e,n,t);ku=0!==(131072&e.flags)}else ku=!1,la&&0!==(1048576&n.flags)&&Jl(n,$l,n.index);switch(n.lanes=0,n.tag){case 2:var r=n.type;Wu(e,n),e=n.pendingProps;var l=Tl(n,Nl.current);Ea(n,t),l=Eo(null,n,r,e,l,t);var o=Co();return n.flags|=1,"object"===typeof l&&null!==l&&"function"===typeof l.render&&void 0===l.$$typeof?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Ml(r)?(o=!0,Ol(n)):o=!1,n.memoizedState=null!==l.state&&void 0!==l.state?l.state:null,Ta(n),l.updater=Ba,n.stateNode=l,l._reactInternals=n,ja(n,r,e,t),n=Pu(null,n,r,!0,o,t)):(n.tag=0,la&&o&&ea(n),wu(null,n,l,t),n=n.child),n;case 16:r=n.elementType;e:{switch(Wu(e,n),e=n.pendingProps,r=(l=r._init)(r._payload),n.type=r,l=n.tag=function(e){if("function"===typeof e)return Fs(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===N)return 11;if(e===T)return 14}return 2}(r),e=ga(r,e),l){case 0:n=zu(null,n,r,e,t);break e;case 1:n=Nu(null,n,r,e,t);break e;case 11:n=Su(null,n,r,e,t);break e;case 14:n=xu(null,n,r,ga(r.type,e),t);break e}throw Error(a(306,r,""))}return n;case 0:return r=n.type,l=n.pendingProps,zu(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 1:return r=n.type,l=n.pendingProps,Nu(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 3:e:{if(Lu(n),null===e)throw Error(a(387));r=n.pendingProps,l=(o=n.memoizedState).element,Ma(e,n),Ia(n,r,null,t);var u=n.memoizedState;if(r=u.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:u.cache,pendingSuspenseBoundaries:u.pendingSuspenseBoundaries,transitions:u.transitions},n.updateQueue.baseState=o,n.memoizedState=o,256&n.flags){n=Tu(e,n,r,t,l=cu(Error(a(423)),n));break e}if(r!==l){n=Tu(e,n,r,t,l=cu(Error(a(424)),n));break e}for(ra=sl(n.stateNode.containerInfo.firstChild),ta=n,la=!0,aa=null,t=Ga(n,null,r,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling}else{if(pa(),r===l){n=ju(e,n,t);break e}wu(e,n,r,t)}n=n.child}return n;case 5:return ao(n),null===e&&sa(n),r=n.type,l=n.pendingProps,o=null!==e?e.memoizedProps:null,u=l.children,tl(r,l)?u=null:null!==o&&tl(r,o)&&(n.flags|=32),_u(e,n),wu(e,n,u,t),n.child;case 6:return null===e&&sa(n),null;case 13:return Uu(e,n,t);case 4:return ro(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=Xa(n,null,r,t):wu(e,n,r,t),n.child;case 11:return r=n.type,l=n.pendingProps,Su(e,n,r,l=n.elementType===r?l:ga(r,l),t);case 7:return wu(e,n,n.pendingProps,t),n.child;case 8:case 12:return wu(e,n,n.pendingProps.children,t),n.child;case 10:e:{if(r=n.type._context,l=n.pendingProps,o=n.memoizedProps,u=l.value,_l(va,r._currentValue),r._currentValue=u,null!==o)if(ur(o.value,u)){if(o.children===l.children&&!Pl.current){n=ju(e,n,t);break e}}else for(null!==(o=n.child)&&(o.return=n);null!==o;){var i=o.dependencies;if(null!==i){u=o.child;for(var s=i.firstContext;null!==s;){if(s.context===r){if(1===o.tag){(s=Fa(-1,t&-t)).tag=2;var c=o.updateQueue;if(null!==c){var f=(c=c.shared).pending;null===f?s.next=s:(s.next=f.next,f.next=s),c.pending=s}}o.lanes|=t,null!==(s=o.alternate)&&(s.lanes|=t),xa(o.return,t,n),i.lanes|=t;break}s=s.next}}else if(10===o.tag)u=o.type===n.type?null:o.child;else if(18===o.tag){if(null===(u=o.return))throw Error(a(341));u.lanes|=t,null!==(i=u.alternate)&&(i.lanes|=t),xa(u,t,n),u=o.sibling}else u=o.child;if(null!==u)u.return=o;else for(u=o;null!==u;){if(u===n){u=null;break}if(null!==(o=u.sibling)){o.return=u.return,u=o;break}u=u.return}o=u}wu(e,n,l.children,t),n=n.child}return n;case 9:return l=n.type,r=n.pendingProps.children,Ea(n,t),r=r(l=Ca(l)),n.flags|=1,wu(e,n,r,t),n.child;case 14:return l=ga(r=n.type,n.pendingProps),xu(e,n,r,l=ga(r.type,l),t);case 15:return Eu(e,n,n.type,n.pendingProps,t);case 17:return r=n.type,l=n.pendingProps,l=n.elementType===r?l:ga(r,l),Wu(e,n),n.tag=1,Ml(r)?(e=!0,Ol(n)):e=!1,Ea(n,t),Qa(n,r,l),ja(n,r,l,t),Pu(null,n,r,!0,e,t);case 19:return Qu(e,n,t);case 22:return Cu(e,n,t)}throw Error(a(156,n.tag))};var qs="function"===typeof reportError?reportError:function(e){console.error(e)};function Ys(e){this._internalRoot=e}function Xs(e){this._internalRoot=e}function Gs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zs(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Js(){}function ec(e,n,t,r,l){var a=t._reactRootContainer;if(a){var o=a;if("function"===typeof l){var u=l;l=function(){var e=js(o);u.call(e)}}Ws(n,o,e,l)}else o=function(e,n,t,r,l){if(l){if("function"===typeof r){var a=r;r=function(){var e=js(o);a.call(e)}}var o=Qs(n,r,e,0,null,!1,0,"",Js);return e._reactRootContainer=o,e[ml]=o.current,Hr(8===e.nodeType?e.parentNode:e),fs(),o}for(;l=e.lastChild;)e.removeChild(l);if("function"===typeof r){var u=r;r=function(){var e=js(i);u.call(e)}}var i=Bs(e,0,!1,null,0,!1,0,"",Js);return e._reactRootContainer=i,e[ml]=i.current,Hr(8===e.nodeType?e.parentNode:e),fs((function(){Ws(n,i,t,r)})),i}(t,n,e,l,r);return js(o)}Xs.prototype.render=Ys.prototype.render=function(e){var n=this._internalRoot;if(null===n)throw Error(a(409));Ws(e,n,null,null)},Xs.prototype.unmount=Ys.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var n=e.containerInfo;fs((function(){Ws(null,e,null,null)})),n[ml]=null}},Xs.prototype.unstable_scheduleHydration=function(e){if(e){var n=Cn();e={blockedOn:null,target:e,priority:n};for(var t=0;t<Dn.length&&0!==n&&n<Dn[t].priority;t++);Dn.splice(t,0,e),0===t&&Un(e)}},Sn=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var t=dn(n.pendingLanes);0!==t&&(bn(n,1|t),ls(n,Ge()),0===(6&Pi)&&(Qi=Ge()+500,Hl()))}break;case 13:fs((function(){var n=Pa(e,1);if(null!==n){var t=ns();rs(n,e,1,t)}})),Ks(e,1)}},xn=function(e){if(13===e.tag){var n=Pa(e,134217728);if(null!==n)rs(n,e,134217728,ns());Ks(e,134217728)}},En=function(e){if(13===e.tag){var n=ts(e),t=Pa(e,n);if(null!==t)rs(t,e,n,ns());Ks(e,n)}},Cn=function(){return kn},_n=function(e,n){var t=kn;try{return kn=e,n()}finally{kn=t}},Se=function(e,n,t){switch(n){case"input":if(Z(e,t),n=t.name,"radio"===t.type&&null!=n){for(t=e;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<t.length;n++){var r=t[n];if(r!==e&&r.form===e.form){var l=wl(r);if(!l)throw Error(a(90));K(r),Z(r,l)}}}break;case"textarea":ae(e,t);break;case"select":null!=(n=t.value)&&te(e,!!t.multiple,n,!1)}},Ne=cs,Pe=fs;var nc={usingClientEntryPoint:!1,Events:[bl,kl,wl,_e,ze,cs]},tc={findFiberByHostInstance:yl,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},rc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=je(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var lc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!lc.isDisabled&&lc.supportsFiber)try{ln=lc.inject(rc),an=lc}catch(ce){}}n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=nc,n.createPortal=function(e,n){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Gs(n))throw Error(a(200));return function(e,n,t){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:n,implementation:t}}(e,n,null,t)},n.createRoot=function(e,n){if(!Gs(e))throw Error(a(299));var t=!1,r="",l=qs;return null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(t=!0),void 0!==n.identifierPrefix&&(r=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),n=Bs(e,1,!1,null,0,t,0,r,l),e[ml]=n.current,Hr(8===e.nodeType?e.parentNode:e),new Ys(n)},n.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var n=e._reactInternals;if(void 0===n){if("function"===typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return e=null===(e=je(n))?null:e.stateNode},n.flushSync=function(e){return fs(e)},n.hydrate=function(e,n,t){if(!Zs(n))throw Error(a(200));return ec(null,e,n,!0,t)},n.hydrateRoot=function(e,n,t){if(!Gs(e))throw Error(a(405));var r=null!=t&&t.hydratedSources||null,l=!1,o="",u=qs;if(null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(l=!0),void 0!==t.identifierPrefix&&(o=t.identifierPrefix),void 0!==t.onRecoverableError&&(u=t.onRecoverableError)),n=Qs(n,null,e,1,null!=t?t:null,l,0,o,u),e[ml]=n.current,Hr(e),r)for(e=0;e<r.length;e++)l=(l=(t=r[e])._getVersion)(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,l]:n.mutableSourceEagerHydrationData.push(t,l);return new Xs(n)},n.render=function(e,n,t){if(!Zs(n))throw Error(a(200));return ec(null,e,n,!1,t)},n.unmountComponentAtNode=function(e){if(!Zs(e))throw Error(a(40));return!!e._reactRootContainer&&(fs((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[ml]=null}))})),!0)},n.unstable_batchedUpdates=cs,n.unstable_renderSubtreeIntoContainer=function(e,n,t,r){if(!Zs(t))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return ec(e,n,t,!1,r)},n.version="18.2.0-next-9e3b772b8-20220608"},20745:function(e,n,t){var r=t(73935);n.s=r.createRoot,r.hydrateRoot},73935:function(e,n,t){!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}(),e.exports=t(64448)}}]); \ No newline at end of file
diff --git a/web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js.LICENSE.txt b/web/gui/v2/npm.react.dom.5f194c629d90a617d1ac.js.LICENSE.txt
index eef3c563..eef3c563 100644
--- a/web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js.LICENSE.txt
+++ b/web/gui/v2/npm.react.dom.5f194c629d90a617d1ac.js.LICENSE.txt
diff --git a/web/gui/v2/runtime.519955e002a87da88924.js b/web/gui/v2/runtime.519955e002a87da88924.js
new file mode 100644
index 00000000..01d3c8f9
--- /dev/null
+++ b/web/gui/v2/runtime.519955e002a87da88924.js
@@ -0,0 +1 @@
+!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7f4d33a4-64de-4c6c-9974-0bcfa8e4e8aa",e._sentryDebugIdIdentifier="sentry-dbid-7f4d33a4-64de-4c6c-9974-0bcfa8e4e8aa")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},function(){"use strict";var e={},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var f=n[r]={id:r,loaded:!1,exports:{}};return e[r].call(f.exports,f,f.exports,t),f.loaded=!0,f.exports}t.m=e,function(){var e=[];t.O=function(n,r,o,f){if(!r){var a=1/0;for(u=0;u<e.length;u++){r=e[u][0],o=e[u][1],f=e[u][2];for(var c=!0,d=0;d<r.length;d++)(!1&f||a>=f)&&Object.keys(t.O).every((function(e){return t.O[e](r[d])}))?r.splice(d--,1):(c=!1,f<a&&(a=f));if(c){e.splice(u--,1);var i=o();void 0!==i&&(n=i)}}return n}f=f||0;for(var u=e.length;u>0&&e[u-1][2]>f;u--)e[u]=e[u-1];e[u]=[r,o,f]}}(),t.F={},t.E=function(e){Object.keys(t.F).map((function(n){t.F[n](e)}))},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},function(){var e,n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};t.t=function(r,o){if(1&o&&(r=this(r)),8&o)return r;if("object"===typeof r&&r){if(4&o&&r.__esModule)return r;if(16&o&&"function"===typeof r.then)return r}var f=Object.create(null);t.r(f);var a={};e=e||[null,n({}),n([]),n(n)];for(var c=2&o&&r;"object"==typeof c&&!~e.indexOf(c);c=n(c))Object.getOwnPropertyNames(c).forEach((function(e){a[e]=function(){return r[e]}}));return a.default=function(){return r},t.d(f,a),f}}(),t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return(189===e?"editor":e)+"."+{18:"89d32c7ee15496f689f3",20:"625d62276782f5f021c5",27:"23f7ef0669e969b74f95",43:"36c13bf5ecbdd5373881",86:"a471108ca7f6fc7080fe",102:"625f7fb40793758916f1",129:"1d087d9f7fb4bfa3cb72",147:"d9a3ab5a852935e0e203",189:"2c7891085085940ad860",193:"6c0f51af21cfef8bce9d",241:"dcc517f9189cb747150e",252:"c34ade07cc21e6fd9b8e",264:"296e4fe770b1756ed46b",282:"112f65cb06615e413141",324:"328e79181dbe63b612fa",359:"aefe439f4f7fb9a02e15",360:"a55ccd8aeddca3df6bd0",447:"99c65cf897c2e7a4e174",451:"aec55cb715f41fc72a63",470:"5ab9b3dc905a52581ba0",502:"517f9b221f4ed676c586",510:"ea4a79b1c75b8035f760",514:"af9132e943f111b25f1c",533:"7791da896bd0af46ae45",564:"2354fe745e05d75abbf2",575:"76dcaacb1c2276f86dea",597:"cb6f23362a28e63af220",610:"1001494a66c38627ff37",654:"67b0714ebd49a65d277c",655:"6b819502f310febec992",663:"a89b1206f4b293aabe4b",676:"4ce73c27b29d5f4672bb",723:"44a07361b47c51d272dd",765:"e7fa6ef71a637cc3ae4d",814:"3332136a855b7f4da0ef",817:"cd5bd5294b2afab8578f",837:"bedee580bb54cbbff07c",851:"7d3f8a7b3ffc933098b8",915:"c5be29433632e593abf9",934:"627b38e3de836130d875",952:"8782ae4b4eb5f5d394ba",969:"64ecdcbb7383f4baee16",977:"f955167348f6c9037af1"}[e]+".chunk.js"},t.miniCssF=function(e){return e+"."+{27:"384da655707f4c3b6153",676:"ccb665950325037c0dda",723:"cc9fa5f3bdc0bf3ab2fc"}[e]+".css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="cloud-frontend:";t.l=function(r,o,f,a){if(e[r])e[r].push(o);else{var c,d;if(void 0!==f)for(var i=document.getElementsByTagName("script"),u=0;u<i.length;u++){var b=i[u];if(b.getAttribute("src")==r||b.getAttribute("data-webpack")==n+f){c=b;break}}c||(d=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,t.nc&&c.setAttribute("nonce",t.nc),c.setAttribute("data-webpack",n+f),c.src=r),e[r]=[o];var l=function(n,t){c.onerror=c.onload=null,clearTimeout(s);var o=e[r];if(delete e[r],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((function(e){return e(t)})),n)return n(t)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),d&&document.head.appendChild(c)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/",function(){if("undefined"!==typeof document){var e=function(e){return new Promise((function(n,r){var o=t.miniCssF(e),f=t.p+o;if(function(e,n){for(var t=document.getElementsByTagName("link"),r=0;r<t.length;r++){var o=(a=t[r]).getAttribute("data-href")||a.getAttribute("href");if("stylesheet"===a.rel&&(o===e||o===n))return a}var f=document.getElementsByTagName("style");for(r=0;r<f.length;r++){var a;if((o=(a=f[r]).getAttribute("data-href"))===e||o===n)return a}}(o,f))return n();!function(e,n,t,r,o){var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.onerror=f.onload=function(t){if(f.onerror=f.onload=null,"load"===t.type)r();else{var a=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.href||n,d=new Error("Loading CSS chunk "+e+" failed.\n("+c+")");d.code="CSS_CHUNK_LOAD_FAILED",d.type=a,d.request=c,f.parentNode&&f.parentNode.removeChild(f),o(d)}},f.href=n,t?t.parentNode.insertBefore(f,t.nextSibling):document.head.appendChild(f)}(e,f,null,n,r)}))},n={666:0};t.f.miniCss=function(t,r){n[t]?r.push(n[t]):0!==n[t]&&{27:1,676:1,723:1}[t]&&r.push(n[t]=e(t).then((function(){n[t]=0}),(function(e){throw delete n[t],e})))}}}(),function(){var e={666:0};t.f.j=function(n,r){var o=t.o(e,n)?e[n]:void 0;if(0!==o)if(o)r.push(o[2]);else if(666!=n){var f=new Promise((function(t,r){o=e[n]=[t,r]}));r.push(o[2]=f);var a=t.p+t.u(n),c=new Error;t.l(a,(function(r){if(t.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var f=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;c.message="Loading chunk "+n+" failed.\n("+f+": "+a+")",c.name="ChunkLoadError",c.type=f,c.request=a,o[1](c)}}),"chunk-"+n,n)}else e[n]=0},t.F.j=function(n){if((!t.o(e,n)||void 0===e[n])&&666!=n){e[n]=null;var r=document.createElement("link");t.nc&&r.setAttribute("nonce",t.nc),r.rel="prefetch",r.as="script",r.href=t.p+t.u(n),document.head.appendChild(r)}},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,f,a=r[0],c=r[1],d=r[2],i=0;if(a.some((function(n){return 0!==e[n]}))){for(o in c)t.o(c,o)&&(t.m[o]=c[o]);if(d)var u=d(t)}for(n&&n(r);i<a.length;i++)f=a[i],t.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return t.O(u)},r=self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}(),t.nc=void 0,function(){var e={147:[264],282:[470,27,147],597:[20],654:[597]};t.f.prefetch=function(n,r){Promise.all(r).then((function(){var r=e[n];Array.isArray(r)&&r.map(t.E)}))}}()}(); \ No newline at end of file
diff --git a/web/gui/v2/runtime.db3b1f7db7a8e8ecf561.js b/web/gui/v2/runtime.db3b1f7db7a8e8ecf561.js
deleted file mode 100644
index 683c05e8..00000000
--- a/web/gui/v2/runtime.db3b1f7db7a8e8ecf561.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6ffc167f-b5af-4bf1-8e8d-ece016262d9f",e._sentryDebugIdIdentifier="sentry-dbid-6ffc167f-b5af-4bf1-8e8d-ece016262d9f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},function(){"use strict";var e={},n={};function t(r){var f=n[r];if(void 0!==f)return f.exports;var o=n[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}t.m=e,function(){var e=[];t.O=function(n,r,f,o){if(!r){var d=1/0;for(u=0;u<e.length;u++){r=e[u][0],f=e[u][1],o=e[u][2];for(var c=!0,a=0;a<r.length;a++)(!1&o||d>=o)&&Object.keys(t.O).every((function(e){return t.O[e](r[a])}))?r.splice(a--,1):(c=!1,o<d&&(d=o));if(c){e.splice(u--,1);var i=f();void 0!==i&&(n=i)}}return n}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,f,o]}}(),t.F={},t.E=function(e){Object.keys(t.F).map((function(n){t.F[n](e)}))},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},function(){var e,n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};t.t=function(r,f){if(1&f&&(r=this(r)),8&f)return r;if("object"===typeof r&&r){if(4&f&&r.__esModule)return r;if(16&f&&"function"===typeof r.then)return r}var o=Object.create(null);t.r(o);var d={};e=e||[null,n({}),n([]),n(n)];for(var c=2&f&&r;"object"==typeof c&&!~e.indexOf(c);c=n(c))Object.getOwnPropertyNames(c).forEach((function(e){d[e]=function(){return r[e]}}));return d.default=function(){return r},t.d(o,d),o}}(),t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return(189===e?"editor":e)+"."+{18:"d27b3a3f82b13e4e31b5",20:"a271e6cfa915fdaf3602",27:"922062ec65b1e01389ee",43:"178b68b4bde3a2876bd8",86:"5e866a98fcb6e62687d3",102:"dc7f30189e6e1105143b",129:"59192a62539648e72a38",147:"dcf17e31c752be5e1c60",189:"0483213ccc286f86f266",193:"94e6e52842fb25d00193",241:"9c26252244ccad9ac280",252:"ecac74e9755e6d96573c",264:"a5876f358dd6972563d5",277:"93f8d8d191859a1c59dc",282:"8b52e573f86730f801fc",324:"4fc60bcaa065dab2898f",359:"fde431aadc6dd872d1b3",360:"035df4a77480670d5715",427:"acd538b4ce317d11342e",447:"d73a7051f850d9257b12",451:"c12c367c27438b213814",470:"f28faa6be4559491ed1e",502:"9438cab3c9c41c42ed57",510:"d6163fa8dc978bbb2b42",514:"58ab6c1ac3b8af2f0016",533:"bf2c24b99df0c8f8a234",564:"22a72ae2b4d5c2e659a1",575:"9daac2298d0395fdf183",597:"5d5a03215ae545861922",610:"d671813e159356dd5674",654:"89446e8c7a0b8bba60ba",655:"e9a4b596ea0a5d9c7bff",663:"08e4639637c3d8f77b7c",723:"5cbb8237ca47fb280150",765:"abdc73e99f918c4200a8",814:"bfc6d4650c1097dc56eb",817:"883beafccc77faf546a2",837:"457977c0c92687b5bf08",851:"c2d4621d872e935ac44a",934:"9dc27c5ebc538bddabb3",952:"fd601224f55afda56157",969:"888044e63adb99d3626d",977:"96e2ff6feb44e920b79e"}[e]+".chunk.js"},t.miniCssF=function(e){return e+"."+{27:"384da655707f4c3b6153",427:"ccb665950325037c0dda",723:"cc9fa5f3bdc0bf3ab2fc"}[e]+".css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="cloud-frontend:";t.l=function(r,f,o,d){if(e[r])e[r].push(f);else{var c,a;if(void 0!==o)for(var i=document.getElementsByTagName("script"),u=0;u<i.length;u++){var l=i[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==n+o){c=l;break}}c||(a=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,t.nc&&c.setAttribute("nonce",t.nc),c.setAttribute("data-webpack",n+o),c.src=r),e[r]=[f];var b=function(n,t){c.onerror=c.onload=null,clearTimeout(s);var f=e[r];if(delete e[r],c.parentNode&&c.parentNode.removeChild(c),f&&f.forEach((function(e){return e(t)})),n)return n(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=b.bind(null,c.onerror),c.onload=b.bind(null,c.onload),a&&document.head.appendChild(c)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/",function(){if("undefined"!==typeof document){var e=function(e){return new Promise((function(n,r){var f=t.miniCssF(e),o=t.p+f;if(function(e,n){for(var t=document.getElementsByTagName("link"),r=0;r<t.length;r++){var f=(d=t[r]).getAttribute("data-href")||d.getAttribute("href");if("stylesheet"===d.rel&&(f===e||f===n))return d}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var d;if((f=(d=o[r]).getAttribute("data-href"))===e||f===n)return d}}(f,o))return n();!function(e,n,t,r,f){var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.onerror=o.onload=function(t){if(o.onerror=o.onload=null,"load"===t.type)r();else{var d=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.href||n,a=new Error("Loading CSS chunk "+e+" failed.\n("+c+")");a.code="CSS_CHUNK_LOAD_FAILED",a.type=d,a.request=c,o.parentNode&&o.parentNode.removeChild(o),f(a)}},o.href=n,t?t.parentNode.insertBefore(o,t.nextSibling):document.head.appendChild(o)}(e,o,null,n,r)}))},n={666:0};t.f.miniCss=function(t,r){n[t]?r.push(n[t]):0!==n[t]&&{27:1,427:1,723:1}[t]&&r.push(n[t]=e(t).then((function(){n[t]=0}),(function(e){throw delete n[t],e})))}}}(),function(){var e={666:0};t.f.j=function(n,r){var f=t.o(e,n)?e[n]:void 0;if(0!==f)if(f)r.push(f[2]);else if(666!=n){var o=new Promise((function(t,r){f=e[n]=[t,r]}));r.push(f[2]=o);var d=t.p+t.u(n),c=new Error;t.l(d,(function(r){if(t.o(e,n)&&(0!==(f=e[n])&&(e[n]=void 0),f)){var o=r&&("load"===r.type?"missing":r.type),d=r&&r.target&&r.target.src;c.message="Loading chunk "+n+" failed.\n("+o+": "+d+")",c.name="ChunkLoadError",c.type=o,c.request=d,f[1](c)}}),"chunk-"+n,n)}else e[n]=0},t.F.j=function(n){if((!t.o(e,n)||void 0===e[n])&&666!=n){e[n]=null;var r=document.createElement("link");t.nc&&r.setAttribute("nonce",t.nc),r.rel="prefetch",r.as="script",r.href=t.p+t.u(n),document.head.appendChild(r)}},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var f,o,d=r[0],c=r[1],a=r[2],i=0;if(d.some((function(n){return 0!==e[n]}))){for(f in c)t.o(c,f)&&(t.m[f]=c[f]);if(a)var u=a(t)}for(n&&n(r);i<d.length;i++)o=d[i],t.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return t.O(u)},r=self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}(),t.nc=void 0,function(){var e={147:[264],282:[470,27,147],597:[20],654:[597]};t.f.prefetch=function(n,r){Promise.all(r).then((function(){var r=e[n];Array.isArray(r)&&r.map(t.E)}))}}()}(); \ No newline at end of file
diff --git a/web/gui/v2/sw.js b/web/gui/v2/sw.js
index e394d8c6..7a53662c 100644
--- a/web/gui/v2/sw.js
+++ b/web/gui/v2/sw.js
@@ -1 +1 @@
-!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="1ba6ec11-c7cb-417f-8603-a40b998c5ea1",t._sentryDebugIdIdentifier="sentry-dbid-1ba6ec11-c7cb-417f-8603-a40b998c5ea1")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"d3c83511ea495cef1d9f8179d5492b454e88bcc8"},function(){"use strict";var t={9662:function(t,e,n){var r=n(614),o=n(6330),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a function")}},9483:function(t,e,n){var r=n(4411),o=n(6330),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a constructor")}},6077:function(t,e,n){var r=n(614),o=String,i=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw i("Can't set "+o(t)+" as a prototype")}},1223:function(t,e,n){var r=n(5112),o=n(30),i=n(3070).f,a=r("unscopables"),s=Array.prototype;void 0==s[a]&&i(s,a,{configurable:!0,value:o(null)}),t.exports=function(t){s[a][t]=!0}},5787:function(t,e,n){var r=n(7976),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw o("Incorrect invocation")}},9670:function(t,e,n){var r=n(111),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not an object")}},1318:function(t,e,n){var r=n(5656),o=n(1400),i=n(6244),a=function(t){return function(e,n,a){var s,c=r(e),u=i(c),f=o(a,u);if(t&&n!=n){for(;u>f;)if((s=c[f++])!=s)return!0}else for(;u>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},2092:function(t,e,n){var r=n(9974),o=n(1702),i=n(8361),a=n(7908),s=n(6244),c=n(5417),u=o([].push),f=function(t){var e=1==t,n=2==t,o=3==t,f=4==t,h=6==t,l=7==t,d=5==t||h;return function(p,y,v,g){for(var m,w,b=a(p),x=i(b),_=r(y,v),S=s(x),R=0,E=g||c,T=e?E(p,S):n||l?E(p,0):void 0;S>R;R++)if((d||R in x)&&(w=_(m=x[R],R,b),t))if(e)T[R]=w;else if(w)switch(t){case 3:return!0;case 5:return m;case 6:return R;case 2:u(T,m)}else switch(t){case 4:return!1;case 7:u(T,m)}return h?-1:o||f?f:T}};t.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},1194:function(t,e,n){var r=n(7293),o=n(5112),i=n(7392),a=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},206:function(t,e,n){var r=n(1702);t.exports=r([].slice)},7475:function(t,e,n){var r=n(3157),o=n(4411),i=n(111),a=n(5112)("species"),s=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(o(e)&&(e===s||r(e.prototype))||i(e)&&null===(e=e[a]))&&(e=void 0)),void 0===e?s:e}},5417:function(t,e,n){var r=n(7475);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},1753:function(t,e,n){var r=n(6916),o=n(5005),i=n(8173);t.exports=function(t,e,n,a){try{var s=i(t,"return");if(s)return o("Promise").resolve(r(s,t)).then((function(){e(n)}),(function(t){a(t)}))}catch(c){return a(c)}e(n)}},5348:function(t,e,n){var r=n(6916),o=n(2534),i=n(9670),a=n(30),s=n(8880),c=n(9190),u=n(5112),f=n(9909),h=n(5005),l=n(8173),d=n(6462),p=n(6178),y=n(9212),v=h("Promise"),g=u("toStringTag"),m="AsyncIteratorHelper",w="WrapForValidAsyncIterator",b=f.set,x=function(t){var e=!t,n=f.getterFor(t?w:m),s=function(t){var r=o((function(){return n(t)})),i=r.error,a=r.value;return i||e&&a.done?{exit:!0,value:i?v.reject(a):v.resolve(p(void 0,!0))}:{exit:!1,value:a}};return c(a(d),{next:function(){var t=s(this),e=t.value;if(t.exit)return e;var n=o((function(){return i(e.nextHandler(v))})),r=n.error,a=n.value;return r&&(e.done=!0),r?v.reject(a):v.resolve(a)},return:function(){var e=s(this),n=e.value;if(e.exit)return n;n.done=!0;var a,c,u=n.iterator,f=o((function(){if(n.inner)try{y(n.inner.iterator,"normal")}catch(t){return y(u,"throw",t)}return l(u,"return")}));return a=c=f.value,f.error?v.reject(c):void 0===a?v.resolve(p(void 0,!0)):(c=(f=o((function(){return r(a,u)}))).value,f.error?v.reject(c):t?v.resolve(c):v.resolve(c).then((function(t){return i(t),p(void 0,!0)})))}})},_=x(!0),S=x(!1);s(S,g,"Async Iterator Helper"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?w:m,r.nextHandler=t,r.counter=0,r.done=!1,b(this,r)};return n.prototype=e?_:S,n}},3232:function(t,e,n){var r=n(6916),o=n(9662),i=n(9670),a=n(111),s=n(4942),c=n(5348),u=n(6178),f=n(1753),h=c((function(t){var e=this,n=e.iterator,o=e.mapper;return new t((function(s,c){var h=function(t){e.done=!0,c(t)},l=function(t){f(n,h,t,h)};t.resolve(i(r(e.next,n))).then((function(n){try{if(i(n).done)e.done=!0,s(u(void 0,!0));else{var r=n.value;try{var c=o(r,e.counter++),f=function(t){s(u(t,!1))};a(c)?t.resolve(c).then(f,l):f(c)}catch(d){l(d)}}}catch(p){h(p)}}),h)}))}));t.exports=function(t){return i(this),o(t),new h(s(this),{mapper:t})}},6462:function(t,e,n){var r,o,i=n(7854),a=n(5465),s=n(614),c=n(30),u=n(9518),f=n(8052),h=n(5112),l=n(1913),d="USE_FUNCTION_CONSTRUCTOR",p=h("asyncIterator"),y=i.AsyncIterator,v=a.AsyncIteratorPrototype;if(v)r=v;else if(s(y))r=y.prototype;else if(a[d]||i[d])try{o=u(u(u(Function("return async function*(){}()")()))),u(o)===Object.prototype&&(r=o)}catch(g){}r?l&&(r=c(r)):r={},s(r[p])||f(r,p,(function(){return this})),t.exports=r},3411:function(t,e,n){var r=n(9670),o=n(9212);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){o(t,"throw",a)}}},7072:function(t,e,n){var r=n(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(s){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(s){}return n}},4326:function(t,e,n){var r=n(1702),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},648:function(t,e,n){var r=n(1694),o=n(614),i=n(4326),a=n(5112)("toStringTag"),s=Object,c="Arguments"==i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=s(t),a))?n:c?i(e):"Object"==(r=i(e))&&o(e.callee)?"Arguments":r}},9920:function(t,e,n){var r=n(2597),o=n(3887),i=n(1236),a=n(3070);t.exports=function(t,e,n){for(var s=o(e),c=a.f,u=i.f,f=0;f<s.length;f++){var h=s[f];r(t,h)||n&&r(n,h)||c(t,h,u(e,h))}}},4964:function(t,e,n){var r=n(5112)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(o){}}return!1}},8544:function(t,e,n){var r=n(7293);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},6178:function(t){t.exports=function(t,e){return{value:t,done:e}}},8880:function(t,e,n){var r=n(9781),o=n(3070),i=n(9114);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9114:function(t){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},7045:function(t,e,n){var r=n(6339),o=n(3070);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),o.f(t,e,n)}},8052:function(t,e,n){var r=n(614),o=n(3070),i=n(6339),a=n(3072);t.exports=function(t,e,n,s){s||(s={});var c=s.enumerable,u=void 0!==s.name?s.name:e;if(r(n)&&i(n,u,s),s.global)c?t[e]=n:a(e,n);else{try{s.unsafe?t[e]&&(c=!0):delete t[e]}catch(f){}c?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},9190:function(t,e,n){var r=n(8052);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},3072:function(t,e,n){var r=n(7854),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},9781:function(t,e,n){var r=n(7293);t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4154:function(t){var e="object"==typeof document&&document.all,n="undefined"==typeof e&&void 0!==e;t.exports={all:e,IS_HTMLDDA:n}},317:function(t,e,n){var r=n(7854),o=n(111),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},8324:function(t){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},8509:function(t,e,n){var r=n(317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;t.exports=o===Object.prototype?void 0:o},7871:function(t,e,n){var r=n(3823),o=n(5268);t.exports=!r&&!o&&"object"==typeof window&&"object"==typeof document},3823:function(t){t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},1528:function(t,e,n){var r=n(8113);t.exports=/ipad|iphone|ipod/i.test(r)&&"undefined"!=typeof Pebble},6833:function(t,e,n){var r=n(8113);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},5268:function(t,e,n){var r=n(4326);t.exports="undefined"!=typeof process&&"process"==r(process)},1036:function(t,e,n){var r=n(8113);t.exports=/web0s(?!.*chrome)/i.test(r)},8113:function(t){t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},7392:function(t,e,n){var r,o,i=n(7854),a=n(8113),s=i.process,c=i.Deno,u=s&&s.versions||c&&c.version,f=u&&u.v8;f&&(o=(r=f.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},748:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:function(t,e,n){var r=n(7854),o=n(1236).f,i=n(8880),a=n(8052),s=n(3072),c=n(9920),u=n(4705);t.exports=function(t,e){var n,f,h,l,d,p=t.target,y=t.global,v=t.stat;if(n=y?r:v?r[p]||s(p,{}):(r[p]||{}).prototype)for(f in e){if(l=e[f],h=t.dontCallGetSet?(d=o(n,f))&&d.value:n[f],!u(y?f:p+(v?".":"#")+f,t.forced)&&void 0!==h){if(typeof l==typeof h)continue;c(l,h)}(t.sham||h&&h.sham)&&i(l,"sham",!0),a(n,f,l,t)}}},7293:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},2104:function(t,e,n){var r=n(4374),o=Function.prototype,i=o.apply,a=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},9974:function(t,e,n){var r=n(1470),o=n(9662),i=n(4374),a=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?a(t,e):function(){return t.apply(e,arguments)}}},4374:function(t,e,n){var r=n(7293);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},6916:function(t,e,n){var r=n(4374),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6530:function(t,e,n){var r=n(9781),o=n(2597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),c=s&&"something"===function(){}.name,u=s&&(!r||r&&a(i,"name").configurable);t.exports={EXISTS:s,PROPER:c,CONFIGURABLE:u}},5668:function(t,e,n){var r=n(1702),o=n(9662);t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},1470:function(t,e,n){var r=n(4326),o=n(1702);t.exports=function(t){if("Function"===r(t))return o(t)}},1702:function(t,e,n){var r=n(4374),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);t.exports=r?a:function(t){return function(){return i.apply(t,arguments)}}},5005:function(t,e,n){var r=n(7854),o=n(614);t.exports=function(t,e){return arguments.length<2?(n=r[t],o(n)?n:void 0):r[t]&&r[t][e];var n}},4942:function(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},1246:function(t,e,n){var r=n(648),o=n(8173),i=n(8554),a=n(7497),s=n(5112)("iterator");t.exports=function(t){if(!i(t))return o(t,s)||o(t,"@@iterator")||a[r(t)]}},4121:function(t,e,n){var r=n(6916),o=n(9662),i=n(9670),a=n(6330),s=n(1246),c=TypeError;t.exports=function(t,e){var n=arguments.length<2?s(t):e;if(o(n))return i(r(n,t));throw c(a(t)+" is not iterable")}},8044:function(t,e,n){var r=n(1702),o=n(3157),i=n(614),a=n(4326),s=n(1340),c=r([].push);t.exports=function(t){if(i(t))return t;if(o(t)){for(var e=t.length,n=[],r=0;r<e;r++){var u=t[r];"string"==typeof u?c(n,u):"number"!=typeof u&&"Number"!=a(u)&&"String"!=a(u)||c(n,s(u))}var f=n.length,h=!0;return function(t,e){if(h)return h=!1,e;if(o(this))return e;for(var r=0;r<f;r++)if(n[r]===t)return e}}}},8173:function(t,e,n){var r=n(9662),o=n(8554);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},7854:function(t,e,n){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||this||Function("return this")()},2597:function(t,e,n){var r=n(1702),o=n(7908),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},3501:function(t){t.exports={}},842:function(t){t.exports=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(n){}}},490:function(t,e,n){var r=n(5005);t.exports=r("document","documentElement")},4664:function(t,e,n){var r=n(9781),o=n(7293),i=n(317);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:function(t,e,n){var r=n(1702),o=n(7293),i=n(4326),a=Object,s=r("".split);t.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?s(t,""):a(t)}:a},2788:function(t,e,n){var r=n(1702),o=n(614),i=n(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},9909:function(t,e,n){var r,o,i,a=n(4811),s=n(7854),c=n(111),u=n(8880),f=n(2597),h=n(5465),l=n(6200),d=n(3501),p="Object already initialized",y=s.TypeError,v=s.WeakMap;if(a||h.state){var g=h.state||(h.state=new v);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw y(p);return e.facade=t,g.set(t,e),e},o=function(t){return g.get(t)||{}},i=function(t){return g.has(t)}}else{var m=l("state");d[m]=!0,r=function(t,e){if(f(t,m))throw y(p);return e.facade=t,u(t,m,e),e},o=function(t){return f(t,m)?t[m]:{}},i=function(t){return f(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw y("Incompatible receiver, "+t+" required");return n}}}},7659:function(t,e,n){var r=n(5112),o=n(7497),i=r("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},3157:function(t,e,n){var r=n(4326);t.exports=Array.isArray||function(t){return"Array"==r(t)}},614:function(t,e,n){var r=n(4154),o=r.all;t.exports=r.IS_HTMLDDA?function(t){return"function"==typeof t||t===o}:function(t){return"function"==typeof t}},4411:function(t,e,n){var r=n(1702),o=n(7293),i=n(614),a=n(648),s=n(5005),c=n(2788),u=function(){},f=[],h=s("Reflect","construct"),l=/^\s*(?:class|function)\b/,d=r(l.exec),p=!l.exec(u),y=function(t){if(!i(t))return!1;try{return h(u,f,t),!0}catch(e){return!1}},v=function(t){if(!i(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!d(l,c(t))}catch(e){return!0}};v.sham=!0,t.exports=!h||o((function(){var t;return y(y.call)||!y(Object)||!y((function(){t=!0}))||t}))?v:y},4705:function(t,e,n){var r=n(7293),o=n(614),i=/#|\.prototype\./,a=function(t,e){var n=c[s(t)];return n==f||n!=u&&(o(e)?r(e):!!e)},s=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},c=a.data={},u=a.NATIVE="N",f=a.POLYFILL="P";t.exports=a},8554:function(t){t.exports=function(t){return null===t||void 0===t}},111:function(t,e,n){var r=n(614),o=n(4154),i=o.all;t.exports=o.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:r(t)||t===i}:function(t){return"object"==typeof t?null!==t:r(t)}},1913:function(t){t.exports=!1},7850:function(t,e,n){var r=n(111),o=n(4326),i=n(5112)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},2190:function(t,e,n){var r=n(5005),o=n(614),i=n(7976),a=n(3307),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,s(t))}},408:function(t,e,n){var r=n(9974),o=n(6916),i=n(9670),a=n(6330),s=n(7659),c=n(6244),u=n(7976),f=n(4121),h=n(1246),l=n(9212),d=TypeError,p=function(t,e){this.stopped=t,this.result=e},y=p.prototype;t.exports=function(t,e,n){var v,g,m,w,b,x,_,S=n&&n.that,R=!(!n||!n.AS_ENTRIES),E=!(!n||!n.IS_RECORD),T=!(!n||!n.IS_ITERATOR),q=!(!n||!n.INTERRUPTED),O=r(e,S),C=function(t){return v&&l(v,"normal",t),new p(!0,t)},D=function(t){return R?(i(t),q?O(t[0],t[1],C):O(t[0],t[1])):q?O(t,C):O(t)};if(E)v=t.iterator;else if(T)v=t;else{if(!(g=h(t)))throw d(a(t)+" is not iterable");if(s(g)){for(m=0,w=c(t);w>m;m++)if((b=D(t[m]))&&u(y,b))return b;return new p(!1)}v=f(t,g)}for(x=E?t.next:v.next;!(_=o(x,v)).done;){try{b=D(_.value)}catch(I){l(v,"throw",I)}if("object"==typeof b&&b&&u(y,b))return b}return new p(!1)}},9212:function(t,e,n){var r=n(6916),o=n(9670),i=n(8173);t.exports=function(t,e,n){var a,s;o(t);try{if(!(a=i(t,"return"))){if("throw"===e)throw n;return n}a=r(a,t)}catch(c){s=!0,a=c}if("throw"===e)throw n;if(s)throw a;return o(a),n}},3061:function(t,e,n){var r=n(3383).IteratorPrototype,o=n(30),i=n(9114),a=n(8003),s=n(7497),c=function(){return this};t.exports=function(t,e,n,u){var f=e+" Iterator";return t.prototype=o(r,{next:i(+!u,n)}),a(t,f,!1,!0),s[f]=c,t}},4956:function(t,e,n){var r=n(6916),o=n(30),i=n(8880),a=n(9190),s=n(5112),c=n(9909),u=n(8173),f=n(3383).IteratorPrototype,h=n(6178),l=n(9212),d=s("toStringTag"),p="IteratorHelper",y="WrapForValidIterator",v=c.set,g=function(t){var e=c.getterFor(t?y:p);return a(o(f),{next:function(){var n=e(this);if(t)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return h(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=e(this),o=n.iterator;if(n.done=!0,t){var i=u(o,"return");return i?r(i,o):h(void 0,!0)}if(n.inner)try{l(n.inner.iterator,"normal")}catch(a){return l(o,"throw",a)}return l(o,"normal"),h(void 0,!0)}})},m=g(!0),w=g(!1);i(w,d,"Iterator Helper"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?y:p,r.nextHandler=t,r.counter=0,r.done=!1,v(this,r)};return n.prototype=e?m:w,n}},1656:function(t,e,n){var r=n(2109),o=n(6916),i=n(1913),a=n(6530),s=n(614),c=n(3061),u=n(9518),f=n(7674),h=n(8003),l=n(8880),d=n(8052),p=n(5112),y=n(7497),v=n(3383),g=a.PROPER,m=a.CONFIGURABLE,w=v.IteratorPrototype,b=v.BUGGY_SAFARI_ITERATORS,x=p("iterator"),_="keys",S="values",R="entries",E=function(){return this};t.exports=function(t,e,n,a,p,v,T){c(n,e,a);var q,O,C,D=function(t){if(t===p&&k)return k;if(!b&&t in L)return L[t];switch(t){case _:case S:case R:return function(){return new n(this,t)}}return function(){return new n(this)}},I=e+" Iterator",j=!1,L=t.prototype,P=L[x]||L["@@iterator"]||p&&L[p],k=!b&&P||D(p),N="Array"==e&&L.entries||P;if(N&&(q=u(N.call(new t)))!==Object.prototype&&q.next&&(i||u(q)===w||(f?f(q,w):s(q[x])||d(q,x,E)),h(q,I,!0,!0),i&&(y[I]=E)),g&&p==S&&P&&P.name!==S&&(!i&&m?l(L,"name",S):(j=!0,k=function(){return o(P,this)})),p)if(O={values:D(S),keys:v?k:D(_),entries:D(R)},T)for(C in O)(b||j||!(C in L))&&d(L,C,O[C]);else r({target:e,proto:!0,forced:b||j},O);return i&&!T||L[x]===k||d(L,x,k,{name:p}),y[e]=k,O}},487:function(t,e,n){var r=n(6916),o=n(9662),i=n(9670),a=n(4942),s=n(4956),c=n(3411),u=s((function(){var t=this.iterator,e=i(r(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return i(this),o(t),new u(a(this),{mapper:t})}},3383:function(t,e,n){var r,o,i,a=n(7293),s=n(614),c=n(111),u=n(30),f=n(9518),h=n(8052),l=n(5112),d=n(1913),p=l("iterator"),y=!1;[].keys&&("next"in(i=[].keys())?(o=f(f(i)))!==Object.prototype&&(r=o):y=!0),!c(r)||a((function(){var t={};return r[p].call(t)!==t}))?r={}:d&&(r=u(r)),s(r[p])||h(r,p,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:y}},7497:function(t){t.exports={}},6244:function(t,e,n){var r=n(7466);t.exports=function(t){return r(t.length)}},6339:function(t,e,n){var r=n(1702),o=n(7293),i=n(614),a=n(2597),s=n(9781),c=n(6530).CONFIGURABLE,u=n(2788),f=n(9909),h=f.enforce,l=f.get,d=String,p=Object.defineProperty,y=r("".slice),v=r("".replace),g=r([].join),m=s&&!o((function(){return 8!==p((function(){}),"length",{value:8}).length})),w=String(String).split("String"),b=t.exports=function(t,e,n){"Symbol("===y(d(e),0,7)&&(e="["+v(d(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!a(t,"name")||c&&t.name!==e)&&(s?p(t,"name",{value:e,configurable:!0}):t.name=e),m&&n&&a(n,"arity")&&t.length!==n.arity&&p(t,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(o){}var r=h(t);return a(r,"source")||(r.source=g(w,"string"==typeof e?e:"")),t};Function.prototype.toString=b((function(){return i(this)&&l(this).source||u(this)}),"toString")},4758:function(t){var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},5948:function(t,e,n){var r,o,i,a,s,c=n(7854),u=n(9974),f=n(1236).f,h=n(261).set,l=n(8572),d=n(6833),p=n(1528),y=n(1036),v=n(5268),g=c.MutationObserver||c.WebKitMutationObserver,m=c.document,w=c.process,b=c.Promise,x=f(c,"queueMicrotask"),_=x&&x.value;if(!_){var S=new l,R=function(){var t,e;for(v&&(t=w.domain)&&t.exit();e=S.get();)try{e()}catch(n){throw S.head&&r(),n}t&&t.enter()};d||v||y||!g||!m?!p&&b&&b.resolve?((a=b.resolve(void 0)).constructor=b,s=u(a.then,a),r=function(){s(R)}):v?r=function(){w.nextTick(R)}:(h=u(h,c),r=function(){h(R)}):(o=!0,i=m.createTextNode(""),new g(R).observe(i,{characterData:!0}),r=function(){i.data=o=!o}),_=function(t){S.head||r(),S.add(t)}}t.exports=_},8523:function(t,e,n){var r=n(9662),o=TypeError,i=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw o("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new i(t)}},3929:function(t,e,n){var r=n(7850),o=TypeError;t.exports=function(t){if(r(t))throw o("The method doesn't accept regular expressions");return t}},30:function(t,e,n){var r,o=n(9670),i=n(6048),a=n(748),s=n(3501),c=n(490),u=n(317),f=n(6200),h="prototype",l="script",d=f("IE_PROTO"),p=function(){},y=function(t){return"<"+l+">"+t+"</"+l+">"},v=function(t){t.write(y("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}g="undefined"!=typeof document?document.domain&&r?v(r):function(){var t,e=u("iframe"),n="java"+l+":";return e.style.display="none",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(y("document.F=Object")),t.close(),t.F}():v(r);for(var t=a.length;t--;)delete g[h][a[t]];return g()};s[d]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(p[h]=o(t),n=new p,p[h]=null,n[d]=t):n=g(),void 0===e?n:i.f(n,e)}},6048:function(t,e,n){var r=n(9781),o=n(3353),i=n(3070),a=n(9670),s=n(5656),c=n(1956);e.f=r&&!o?Object.defineProperties:function(t,e){a(t);for(var n,r=s(e),o=c(e),u=o.length,f=0;u>f;)i.f(t,n=o[f++],r[n]);return t}},3070:function(t,e,n){var r=n(9781),o=n(4664),i=n(3353),a=n(9670),s=n(4948),c=TypeError,u=Object.defineProperty,f=Object.getOwnPropertyDescriptor,h="enumerable",l="configurable",d="writable";e.f=r?i?function(t,e,n){if(a(t),e=s(e),a(n),"function"===typeof t&&"prototype"===e&&"value"in n&&d in n&&!n[d]){var r=f(t,e);r&&r[d]&&(t[e]=n.value,n={configurable:l in n?n[l]:r[l],enumerable:h in n?n[h]:r[h],writable:!1})}return u(t,e,n)}:u:function(t,e,n){if(a(t),e=s(e),a(n),o)try{return u(t,e,n)}catch(r){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},1236:function(t,e,n){var r=n(9781),o=n(6916),i=n(5296),a=n(9114),s=n(5656),c=n(4948),u=n(2597),f=n(4664),h=Object.getOwnPropertyDescriptor;e.f=r?h:function(t,e){if(t=s(t),e=c(e),f)try{return h(t,e)}catch(n){}if(u(t,e))return a(!o(i.f,t,e),t[e])}},8006:function(t,e,n){var r=n(6324),o=n(748).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},5181:function(t,e){e.f=Object.getOwnPropertySymbols},9518:function(t,e,n){var r=n(2597),o=n(614),i=n(7908),a=n(6200),s=n(8544),c=a("IE_PROTO"),u=Object,f=u.prototype;t.exports=s?u.getPrototypeOf:function(t){var e=i(t);if(r(e,c))return e[c];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof u?f:null}},7976:function(t,e,n){var r=n(1702);t.exports=r({}.isPrototypeOf)},6324:function(t,e,n){var r=n(1702),o=n(2597),i=n(5656),a=n(1318).indexOf,s=n(3501),c=r([].push);t.exports=function(t,e){var n,r=i(t),u=0,f=[];for(n in r)!o(s,n)&&o(r,n)&&c(f,n);for(;e.length>u;)o(r,n=e[u++])&&(~a(f,n)||c(f,n));return f}},1956:function(t,e,n){var r=n(6324),o=n(748);t.exports=Object.keys||function(t){return r(t,o)}},5296:function(t,e){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},7674:function(t,e,n){var r=n(5668),o=n(9670),i=n(6077);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=r(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(a){}return function(n,r){return o(n),i(r),e?t(n,r):n.__proto__=r,n}}():void 0)},288:function(t,e,n){var r=n(1694),o=n(648);t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},2140:function(t,e,n){var r=n(6916),o=n(614),i=n(111),a=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&o(n=t.toString)&&!i(s=r(n,t)))return s;if(o(n=t.valueOf)&&!i(s=r(n,t)))return s;if("string"!==e&&o(n=t.toString)&&!i(s=r(n,t)))return s;throw a("Can't convert object to primitive value")}},3887:function(t,e,n){var r=n(5005),o=n(1702),i=n(8006),a=n(5181),s=n(9670),c=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(s(t)),n=a.f;return n?c(e,n(t)):e}},2534:function(t){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},3702:function(t,e,n){var r=n(7854),o=n(2492),i=n(614),a=n(4705),s=n(2788),c=n(5112),u=n(7871),f=n(3823),h=n(1913),l=n(7392),d=o&&o.prototype,p=c("species"),y=!1,v=i(r.PromiseRejectionEvent),g=a("Promise",(function(){var t=s(o),e=t!==String(o);if(!e&&66===l)return!0;if(h&&(!d.catch||!d.finally))return!0;if(!l||l<51||!/native code/.test(t)){var n=new o((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[p]=r,!(y=n.then((function(){}))instanceof r))return!0}return!e&&(u||f)&&!v}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:v,SUBCLASSING:y}},2492:function(t,e,n){var r=n(7854);t.exports=r.Promise},9478:function(t,e,n){var r=n(9670),o=n(111),i=n(8523);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},612:function(t,e,n){var r=n(2492),o=n(7072),i=n(3702).CONSTRUCTOR;t.exports=i||!o((function(t){r.all(t).then(void 0,(function(){}))}))},8572:function(t){var e=function(){this.head=null,this.tail=null};e.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=e},4488:function(t,e,n){var r=n(8554),o=TypeError;t.exports=function(t){if(r(t))throw o("Can't call method on "+t);return t}},6340:function(t,e,n){var r=n(5005),o=n(7045),i=n(5112),a=n(9781),s=i("species");t.exports=function(t){var e=r(t);a&&e&&!e[s]&&o(e,s,{configurable:!0,get:function(){return this}})}},8003:function(t,e,n){var r=n(3070).f,o=n(2597),i=n(5112)("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!o(t,i)&&r(t,i,{configurable:!0,value:e})}},6200:function(t,e,n){var r=n(2309),o=n(9711),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},5465:function(t,e,n){var r=n(7854),o=n(3072),i="__core-js_shared__",a=r[i]||o(i,{});t.exports=a},2309:function(t,e,n){var r=n(1913),o=n(5465);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.32.0",mode:r?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.0/LICENSE",source:"https://github.com/zloirock/core-js"})},6707:function(t,e,n){var r=n(9670),o=n(9483),i=n(8554),a=n(5112)("species");t.exports=function(t,e){var n,s=r(t).constructor;return void 0===s||i(n=r(s)[a])?e:o(n)}},8710:function(t,e,n){var r=n(1702),o=n(9303),i=n(1340),a=n(4488),s=r("".charAt),c=r("".charCodeAt),u=r("".slice),f=function(t){return function(e,n){var r,f,h=i(a(e)),l=o(n),d=h.length;return l<0||l>=d?t?"":void 0:(r=c(h,l))<55296||r>56319||l+1===d||(f=c(h,l+1))<56320||f>57343?t?s(h,l):r:t?u(h,l,l+2):f-56320+(r-55296<<10)+65536}};t.exports={codeAt:f(!1),charAt:f(!0)}},6293:function(t,e,n){var r=n(7392),o=n(7293),i=n(7854).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol();return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},261:function(t,e,n){var r,o,i,a,s=n(7854),c=n(2104),u=n(9974),f=n(614),h=n(2597),l=n(7293),d=n(490),p=n(206),y=n(317),v=n(8053),g=n(6833),m=n(5268),w=s.setImmediate,b=s.clearImmediate,x=s.process,_=s.Dispatch,S=s.Function,R=s.MessageChannel,E=s.String,T=0,q={},O="onreadystatechange";l((function(){r=s.location}));var C=function(t){if(h(q,t)){var e=q[t];delete q[t],e()}},D=function(t){return function(){C(t)}},I=function(t){C(t.data)},j=function(t){s.postMessage(E(t),r.protocol+"//"+r.host)};w&&b||(w=function(t){v(arguments.length,1);var e=f(t)?t:S(t),n=p(arguments,1);return q[++T]=function(){c(e,void 0,n)},o(T),T},b=function(t){delete q[t]},m?o=function(t){x.nextTick(D(t))}:_&&_.now?o=function(t){_.now(D(t))}:R&&!g?(a=(i=new R).port2,i.port1.onmessage=I,o=u(a.postMessage,a)):s.addEventListener&&f(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!l(j)?(o=j,s.addEventListener("message",I,!1)):o=O in y("script")?function(t){d.appendChild(y("script"))[O]=function(){d.removeChild(this),C(t)}}:function(t){setTimeout(D(t),0)}),t.exports={set:w,clear:b}},1400:function(t,e,n){var r=n(9303),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},5656:function(t,e,n){var r=n(8361),o=n(4488);t.exports=function(t){return r(o(t))}},9303:function(t,e,n){var r=n(4758);t.exports=function(t){var e=+t;return e!==e||0===e?0:r(e)}},7466:function(t,e,n){var r=n(9303),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},7908:function(t,e,n){var r=n(4488),o=Object;t.exports=function(t){return o(r(t))}},7593:function(t,e,n){var r=n(6916),o=n(111),i=n(2190),a=n(8173),s=n(2140),c=n(5112),u=TypeError,f=c("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,c=a(t,f);if(c){if(void 0===e&&(e="default"),n=r(c,t,e),!o(n)||i(n))return n;throw u("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},4948:function(t,e,n){var r=n(7593),o=n(2190);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},1694:function(t,e,n){var r={};r[n(5112)("toStringTag")]="z",t.exports="[object z]"===String(r)},1340:function(t,e,n){var r=n(648),o=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return o(t)}},6330:function(t){var e=String;t.exports=function(t){try{return e(t)}catch(n){return"Object"}}},9711:function(t,e,n){var r=n(1702),o=0,i=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},3307:function(t,e,n){var r=n(6293);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(t,e,n){var r=n(9781),o=n(7293);t.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},8053:function(t){var e=TypeError;t.exports=function(t,n){if(t<n)throw e("Not enough arguments");return t}},4811:function(t,e,n){var r=n(7854),o=n(614),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},5112:function(t,e,n){var r=n(7854),o=n(2309),i=n(2597),a=n(9711),s=n(6293),c=n(3307),u=r.Symbol,f=o("wks"),h=c?u.for||u:u&&u.withoutSetter||a;t.exports=function(t){return i(f,t)||(f[t]=s&&i(u,t)?u[t]:h("Symbol."+t)),f[t]}},7327:function(t,e,n){var r=n(2109),o=n(2092).filter;r({target:"Array",proto:!0,forced:!n(1194)("filter")},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},6992:function(t,e,n){var r=n(5656),o=n(1223),i=n(7497),a=n(9909),s=n(3070).f,c=n(1656),u=n(6178),f=n(1913),h=n(9781),l="Array Iterator",d=a.set,p=a.getterFor(l);t.exports=c(Array,"Array",(function(t,e){d(this,{type:l,target:r(t),index:0,kind:e})}),(function(){var t=p(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,u(void 0,!0)):u("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values");var y=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!f&&h&&"values"!==y.name)try{s(y,"name",{value:"values"})}catch(v){}},1249:function(t,e,n){var r=n(2109),o=n(2092).map;r({target:"Array",proto:!0,forced:!n(1194)("map")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},8862:function(t,e,n){var r=n(2109),o=n(5005),i=n(2104),a=n(6916),s=n(1702),c=n(7293),u=n(614),f=n(2190),h=n(206),l=n(8044),d=n(6293),p=String,y=o("JSON","stringify"),v=s(/./.exec),g=s("".charAt),m=s("".charCodeAt),w=s("".replace),b=s(1..toString),x=/[\uD800-\uDFFF]/g,_=/^[\uD800-\uDBFF]$/,S=/^[\uDC00-\uDFFF]$/,R=!d||c((function(){var t=o("Symbol")();return"[null]"!=y([t])||"{}"!=y({a:t})||"{}"!=y(Object(t))})),E=c((function(){return'"\\udf06\\ud834"'!==y("\udf06\ud834")||'"\\udead"'!==y("\udead")})),T=function(t,e){var n=h(arguments),r=l(e);if(u(r)||void 0!==t&&!f(t))return n[1]=function(t,e){if(u(r)&&(e=a(r,this,p(t),e)),!f(e))return e},i(y,null,n)},q=function(t,e,n){var r=g(n,e-1),o=g(n,e+1);return v(_,t)&&!v(S,o)||v(S,t)&&!v(_,r)?"\\u"+b(m(t,0),16):t};y&&r({target:"JSON",stat:!0,arity:3,forced:R||E},{stringify:function(t,e,n){var r=h(arguments),o=i(R?T:y,null,r);return E&&"string"==typeof o?w(o,x,q):o}})},1539:function(t,e,n){var r=n(1694),o=n(8052),i=n(288);r||o(Object.prototype,"toString",i,{unsafe:!0})},821:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(8523),s=n(2534),c=n(408);r({target:"Promise",stat:!0,forced:n(612)},{all:function(t){var e=this,n=a.f(e),r=n.resolve,u=n.reject,f=s((function(){var n=i(e.resolve),a=[],s=0,f=1;c(t,(function(t){var i=s++,c=!1;f++,o(n,e,t).then((function(t){c||(c=!0,a[i]=t,--f||r(a))}),u)})),--f||r(a)}));return f.error&&u(f.value),n.promise}})},4164:function(t,e,n){var r=n(2109),o=n(1913),i=n(3702).CONSTRUCTOR,a=n(2492),s=n(5005),c=n(614),u=n(8052),f=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(t){return this.then(void 0,t)}}),!o&&c(a)){var h=s("Promise").prototype.catch;f.catch!==h&&u(f,"catch",h,{unsafe:!0})}},3401:function(t,e,n){var r,o,i,a=n(2109),s=n(1913),c=n(5268),u=n(7854),f=n(6916),h=n(8052),l=n(7674),d=n(8003),p=n(6340),y=n(9662),v=n(614),g=n(111),m=n(5787),w=n(6707),b=n(261).set,x=n(5948),_=n(842),S=n(2534),R=n(8572),E=n(9909),T=n(2492),q=n(3702),O=n(8523),C="Promise",D=q.CONSTRUCTOR,I=q.REJECTION_EVENT,j=q.SUBCLASSING,L=E.getterFor(C),P=E.set,k=T&&T.prototype,N=T,A=k,U=u.TypeError,M=u.document,F=u.process,B=O.f,K=B,W=!!(M&&M.createEvent&&u.dispatchEvent),H="unhandledrejection",G=function(t){var e;return!(!g(t)||!v(e=t.then))&&e},V=function(t,e){var n,r,o,i=e.value,a=1==e.state,s=a?t.ok:t.fail,c=t.resolve,u=t.reject,h=t.domain;try{s?(a||(2===e.rejection&&Y(e),e.rejection=1),!0===s?n=i:(h&&h.enter(),n=s(i),h&&(h.exit(),o=!0)),n===t.promise?u(U("Promise-chain cycle")):(r=G(n))?f(r,n,c,u):c(n)):u(i)}catch(l){h&&!o&&h.exit(),u(l)}},$=function(t,e){t.notified||(t.notified=!0,x((function(){for(var n,r=t.reactions;n=r.get();)V(n,t);t.notified=!1,e&&!t.rejection&&Q(t)})))},z=function(t,e,n){var r,o;W?((r=M.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!I&&(o=u["on"+t])?o(r):t===H&&_("Unhandled promise rejection",n)},Q=function(t){f(b,u,(function(){var e,n=t.facade,r=t.value;if(J(t)&&(e=S((function(){c?F.emit("unhandledRejection",r,n):z(H,n,r)})),t.rejection=c||J(t)?2:1,e.error))throw e.value}))},J=function(t){return 1!==t.rejection&&!t.parent},Y=function(t){f(b,u,(function(){var e=t.facade;c?F.emit("rejectionHandled",e):z("rejectionhandled",e,t.value)}))},X=function(t,e,n){return function(r){t(e,r,n)}},Z=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,$(t,!0))},tt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw U("Promise can't be resolved itself");var r=G(e);r?x((function(){var n={done:!1};try{f(r,e,X(tt,n,t),X(Z,n,t))}catch(o){Z(n,o,t)}})):(t.value=e,t.state=1,$(t,!1))}catch(o){Z({done:!1},o,t)}}};if(D&&(A=(N=function(t){m(this,A),y(t),f(r,this);var e=L(this);try{t(X(tt,e),X(Z,e))}catch(n){Z(e,n)}}).prototype,(r=function(t){P(this,{type:C,done:!1,notified:!1,parent:!1,reactions:new R,rejection:!1,state:0,value:void 0})}).prototype=h(A,"then",(function(t,e){var n=L(this),r=B(w(this,N));return n.parent=!0,r.ok=!v(t)||t,r.fail=v(e)&&e,r.domain=c?F.domain:void 0,0==n.state?n.reactions.add(r):x((function(){V(r,n)})),r.promise})),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=X(tt,e),this.reject=X(Z,e)},O.f=B=function(t){return t===N||undefined===t?new o(t):K(t)},!s&&v(T)&&k!==Object.prototype)){i=k.then,j||h(k,"then",(function(t,e){var n=this;return new N((function(t,e){f(i,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete k.constructor}catch(et){}l&&l(k,A)}a({global:!0,constructor:!0,wrap:!0,forced:D},{Promise:N}),d(N,C,!1,!0),p(C)},8674:function(t,e,n){n(3401),n(821),n(4164),n(6027),n(683),n(6294)},6027:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(8523),s=n(2534),c=n(408);r({target:"Promise",stat:!0,forced:n(612)},{race:function(t){var e=this,n=a.f(e),r=n.reject,u=s((function(){var a=i(e.resolve);c(t,(function(t){o(a,e,t).then(n.resolve,r)}))}));return u.error&&r(u.value),n.promise}})},683:function(t,e,n){var r=n(2109),o=n(6916),i=n(8523);r({target:"Promise",stat:!0,forced:n(3702).CONSTRUCTOR},{reject:function(t){var e=i.f(this);return o(e.reject,void 0,t),e.promise}})},6294:function(t,e,n){var r=n(2109),o=n(5005),i=n(1913),a=n(2492),s=n(3702).CONSTRUCTOR,c=n(9478),u=o("Promise"),f=i&&!s;r({target:"Promise",stat:!0,forced:i||s},{resolve:function(t){return c(f&&this===u?a:this,t)}})},7852:function(t,e,n){var r=n(2109),o=n(1470),i=n(1236).f,a=n(7466),s=n(1340),c=n(3929),u=n(4488),f=n(4964),h=n(1913),l=o("".endsWith),d=o("".slice),p=Math.min,y=f("endsWith");r({target:"String",proto:!0,forced:!(!h&&!y&&!!function(){var t=i(String.prototype,"endsWith");return t&&!t.writable}())&&!y},{endsWith:function(t){var e=s(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=e.length,o=void 0===n?r:p(a(n),r),i=s(t);return l?l(e,i,o):d(e,o-i.length,o)===i}})},8783:function(t,e,n){var r=n(8710).charAt,o=n(1340),i=n(9909),a=n(1656),s=n(6178),c="String Iterator",u=i.set,f=i.getterFor(c);a(String,"String",(function(t){u(this,{type:c,string:o(t),index:0})}),(function(){var t,e=f(this),n=e.string,o=e.index;return o>=n.length?s(void 0,!0):(t=r(n,o),e.index+=t.length,s(t,!1))}))},8449:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(9670),s=n(111),c=n(4942),u=n(5348),f=n(6178),h=n(1753),l=n(1913),d=u((function(t){var e=this,n=e.iterator,r=e.predicate;return new t((function(i,c){var u=function(t){e.done=!0,c(t)},l=function(t){h(n,u,t,u)},d=function(){try{t.resolve(a(o(e.next,n))).then((function(n){try{if(a(n).done)e.done=!0,i(f(void 0,!0));else{var o=n.value;try{var c=r(o,e.counter++),h=function(t){t?i(f(o,!1)):d()};s(c)?t.resolve(c).then(h,l):h(c)}catch(p){l(p)}}}catch(y){u(y)}}),u)}catch(c){u(c)}};d()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:l},{filter:function(t){return a(this),i(t),new d(c(this),{predicate:t})}})},7640:function(t,e,n){var r=n(2109),o=n(3232);r({target:"AsyncIterator",proto:!0,real:!0,forced:n(1913)},{map:o})},2490:function(t,e,n){var r=n(2109),o=n(7854),i=n(5787),a=n(614),s=n(9518),c=n(8880),u=n(7293),f=n(2597),h=n(5112),l=n(3383).IteratorPrototype,d=n(1913),p=h("toStringTag"),y=TypeError,v=o.Iterator,g=d||!a(v)||v.prototype!==l||!u((function(){v({})})),m=function(){if(i(this,l),s(this)===l)throw y("Abstract class Iterator not directly constructable")};f(l,p)||c(l,p,"Iterator"),!g&&f(l,"constructor")&&l.constructor!==Object||c(l,"constructor",m),m.prototype=l,r({global:!0,constructor:!0,forced:g},{Iterator:m})},9849:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(9670),s=n(4942),c=n(4956),u=n(3411),f=n(1913),h=c((function(){for(var t,e,n=this.iterator,r=this.predicate,i=this.next;;){if(t=a(o(i,n)),this.done=!!t.done)return;if(e=t.value,u(n,r,[e,this.counter++],!0))return e}}));r({target:"Iterator",proto:!0,real:!0,forced:f},{filter:function(t){return a(this),i(t),new h(s(this),{predicate:t})}})},9924:function(t,e,n){var r=n(2109),o=n(487);r({target:"Iterator",proto:!0,real:!0,forced:n(1913)},{map:o})},3948:function(t,e,n){var r=n(7854),o=n(8324),i=n(8509),a=n(6992),s=n(8880),c=n(5112),u=c("iterator"),f=c("toStringTag"),h=a.values,l=function(t,e){if(t){if(t[u]!==h)try{s(t,u,h)}catch(r){t[u]=h}if(t[f]||s(t,f,e),o[e])for(var n in a)if(t[n]!==a[n])try{s(t,n,a[n])}catch(r){t[n]=a[n]}}};for(var d in o)l(r[d]&&r[d].prototype,d);l(i,"DOMTokenList")},6272:function(){try{self["workbox:background-sync:7.0.0"]&&_()}catch(t){}},4895:function(){try{self["workbox:cacheable-response:7.0.0"]&&_()}catch(t){}},913:function(){try{self["workbox:core:7.0.0"]&&_()}catch(t){}},6550:function(){try{self["workbox:expiration:7.0.0"]&&_()}catch(t){}},7977:function(){try{self["workbox:precaching:7.0.0"]&&_()}catch(t){}},9144:function(){try{self["workbox:recipes:7.0.0"]&&_()}catch(t){}},9080:function(){try{self["workbox:routing:7.0.0"]&&_()}catch(t){}},6873:function(){try{self["workbox:strategies:7.0.0"]&&_()}catch(t){}}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r].call(i.exports,i,i.exports,n),i.exports}n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}(),function(){n(7327),n(1539),n(8449),n(2490),n(9849),n(7852),n(6992),n(8674),n(8783),n(3948),n(1249),n(7640),n(9924),n(8862),n(913);const t=(t,...e)=>{let n=t;return e.length>0&&(n+=` :: ${JSON.stringify(e)}`),n};class e extends Error{constructor(e,n){super(t(e,n)),this.name=e,this.details=n}}const r=new Set;const o={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!==typeof registration?registration.scope:""},i=t=>[o.prefix,t,o.suffix].filter((t=>t&&t.length>0)).join("-"),a=t=>t||i(o.precache),s=t=>t||i(o.runtime);function c(t,e){const n=new URL(t);for(const r of e)n.searchParams.delete(r);return n.href}let u;function f(t){t.then((()=>{}))}class h{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const l=t=>new URL(String(t),location.href).href.replace(new RegExp(`^${location.origin}`),"");function d(t,e){const n=e();return t.waitUntil(n),n}async function p(t,n){let r=null;if(t.url){r=new URL(t.url).origin}if(r!==self.location.origin)throw new e("cross-origin-copy-response",{origin:r});const o=t.clone(),i={headers:new Headers(o.headers),status:o.status,statusText:o.statusText},a=n?n(i):i,s=function(){if(void 0===u){const e=new Response("");if("body"in e)try{new Response(e.body),u=!0}catch(t){u=!1}u=!1}return u}()?o.body:await o.blob();return new Response(s,a)}n(9080);const y=t=>t&&"object"===typeof t?t:{handle:t};class v{constructor(t,e,n="GET"){this.handler=y(e),this.match=t,this.method=n}setCatchHandler(t){this.catchHandler=y(t)}}class g extends v{constructor(t,e,n){super((({url:e})=>{const n=t.exec(e.href);if(n&&(e.origin===location.origin||0===n.index))return n.slice(1)}),e,n)}}class m{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,n=this.handleRequest({request:e,event:t});n&&t.respondWith(n)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data;0;const n=Promise.all(e.urlsToCache.map((e=>{"string"===typeof e&&(e=[e]);const n=new Request(...e);return this.handleRequest({request:n,event:t})})));t.waitUntil(n),t.ports&&t.ports[0]&&n.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const n=new URL(t.url,location.href);if(!n.protocol.startsWith("http"))return void 0;const r=n.origin===location.origin,{params:o,route:i}=this.findMatchingRoute({event:e,request:t,sameOrigin:r,url:n});let a=i&&i.handler;const s=t.method;if(!a&&this._defaultHandlerMap.has(s)&&(a=this._defaultHandlerMap.get(s)),!a)return void 0;let c;try{c=a.handle({url:n,request:t,event:e,params:o})}catch(f){c=Promise.reject(f)}const u=i&&i.catchHandler;return c instanceof Promise&&(this._catchHandler||u)&&(c=c.catch((async r=>{if(u){0;try{return await u.handle({url:n,request:t,event:e,params:o})}catch(i){i instanceof Error&&(r=i)}}if(this._catchHandler)return this._catchHandler.handle({url:n,request:t,event:e});throw r}))),c}findMatchingRoute({url:t,sameOrigin:e,request:n,event:r}){const o=this._routes.get(n.method)||[];for(const i of o){let o;const a=i.match({url:t,sameOrigin:e,request:n,event:r});if(a)return o=a,(Array.isArray(o)&&0===o.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"===typeof a)&&(o=void 0),{route:i,params:o}}return{}}setDefaultHandler(t,e="GET"){this._defaultHandlerMap.set(e,y(t))}setCatchHandler(t){this._catchHandler=y(t)}registerRoute(t){this._routes.has(t.method)||this._routes.set(t.method,[]),this._routes.get(t.method).push(t)}unregisterRoute(t){if(!this._routes.has(t.method))throw new e("unregister-route-but-not-found-with-method",{method:t.method});const n=this._routes.get(t.method).indexOf(t);if(!(n>-1))throw new e("unregister-route-route-not-registered");this._routes.get(t.method).splice(n,1)}}let w;const b=()=>(w||(w=new m,w.addFetchListener(),w.addCacheListener()),w);function x(t,n,r){let o;if("string"===typeof t){const e=new URL(t,location.href);0;o=new v((({url:t})=>t.href===e.href),n,r)}else if(t instanceof RegExp)o=new g(t,n,r);else if("function"===typeof t)o=new v(t,n,r);else{if(!(t instanceof v))throw new e("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return b().registerRoute(o),o}n(6873);const _={cacheWillUpdate:async({response:t})=>200===t.status||0===t.status?t:null};function S(t){return"string"===typeof t?new Request(t):t}class R{constructor(t,e){this._cacheKeys={},Object.assign(this,e),this.event=e.event,this._strategy=t,this._handlerDeferred=new h,this._extendLifetimePromises=[],this._plugins=[...t.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(t){const{event:n}=this;let r=S(t);if("navigate"===r.mode&&n instanceof FetchEvent&&n.preloadResponse){const t=await n.preloadResponse;if(t)return t}const o=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))r=await t({request:r.clone(),event:n})}catch(a){if(a instanceof Error)throw new e("plugin-error-request-will-fetch",{thrownErrorMessage:a.message})}const i=r.clone();try{let t;t=await fetch(r,"navigate"===r.mode?void 0:this._strategy.fetchOptions);for(const e of this.iterateCallbacks("fetchDidSucceed"))t=await e({event:n,request:i,response:t});return t}catch(s){throw o&&await this.runCallbacks("fetchDidFail",{error:s,event:n,originalRequest:o.clone(),request:i.clone()}),s}}async fetchAndCachePut(t){const e=await this.fetch(t),n=e.clone();return this.waitUntil(this.cachePut(t,n)),e}async cacheMatch(t){const e=S(t);let n;const{cacheName:r,matchOptions:o}=this._strategy,i=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},o),{cacheName:r});n=await caches.match(i,a);for(const s of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await s({cacheName:r,matchOptions:o,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(t,n){const o=S(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const a=await this.getCacheKey(o,"write");if(!n)throw new e("cache-put-with-no-response",{url:l(a.url)});const s=await this._ensureResponseSafeToCache(n);if(!s)return!1;const{cacheName:u,matchOptions:f}=this._strategy,h=await self.caches.open(u),d=this.hasCallback("cacheDidUpdate"),p=d?await async function(t,e,n,r){const o=c(e.url,n);if(e.url===o)return t.match(e,r);const i=Object.assign(Object.assign({},r),{ignoreSearch:!0}),a=await t.keys(e,i);for(const s of a)if(o===c(s.url,n))return t.match(s,r)}(h,a.clone(),["__WB_REVISION__"],f):null;try{await h.put(a,d?s.clone():s)}catch(y){if(y instanceof Error)throw"QuotaExceededError"===y.name&&await async function(){for(const t of r)await t()}(),y}for(const e of this.iterateCallbacks("cacheDidUpdate"))await e({cacheName:u,oldResponse:p,newResponse:s.clone(),request:a,event:this.event});return!0}async getCacheKey(t,e){const n=`${t.url} | ${e}`;if(!this._cacheKeys[n]){let r=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))r=S(await t({mode:e,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(t){for(const e of this._strategy.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const n of this.iterateCallbacks(t))await n(e)}*iterateCallbacks(t){for(const e of this._strategy.plugins)if("function"===typeof e[t]){const n=this._pluginStateMap.get(e),r=r=>{const o=Object.assign(Object.assign({},r),{state:n});return e[t](o)};yield r}}waitUntil(t){return this._extendLifetimePromises.push(t),t}async doneWaiting(){let t;for(;t=this._extendLifetimePromises.shift();)await t}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(t){let e=t,n=!1;for(const r of this.iterateCallbacks("cacheWillUpdate"))if(e=await r({request:this.request,response:e,event:this.event})||void 0,n=!0,!e)break;return n||e&&200!==e.status&&(e=void 0),e}}class E{constructor(t={}){this.cacheName=s(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,n="string"===typeof t.request?new Request(t.request):t.request,r="params"in t?t.params:void 0,o=new R(this,{event:e,request:n,params:r}),i=this._getResponse(o,n,e);return[i,this._awaitComplete(i,o,n,e)]}async _getResponse(t,n,r){let o;await t.runCallbacks("handlerWillStart",{event:r,request:n});try{if(o=await this._handle(n,t),!o||"error"===o.type)throw new e("no-response",{url:n.url})}catch(i){if(i instanceof Error)for(const e of t.iterateCallbacks("handlerDidError"))if(o=await e({error:i,event:r,request:n}),o)break;if(!o)throw i}for(const e of t.iterateCallbacks("handlerWillRespond"))o=await e({event:r,request:n,response:o});return o}async _awaitComplete(t,e,n,r){let o,i;try{o=await t}catch(i){}try{await e.runCallbacks("handlerDidRespond",{event:r,request:n,response:o}),await e.doneWaiting()}catch(a){a instanceof Error&&(i=a)}if(await e.runCallbacks("handlerDidComplete",{event:r,request:n,response:o,error:i}),e.destroy(),i)throw i}}n(4895);class T{constructor(t={}){this._statuses=t.statuses,this._headers=t.headers}isResponseCacheable(t){let e=!0;return this._statuses&&(e=this._statuses.includes(t.status)),this._headers&&e&&(e=Object.keys(this._headers).some((e=>t.headers.get(e)===this._headers[e]))),e}}class q{constructor(t){this.cacheWillUpdate=async({response:t})=>this._cacheableResponse.isResponseCacheable(t)?t:null,this._cacheableResponse=new T(t)}}const O=(t,e)=>e.some((e=>t instanceof e));let C,D;const I=new WeakMap,j=new WeakMap,L=new WeakMap,P=new WeakMap,k=new WeakMap;let N={get(t,e,n){if(t instanceof IDBTransaction){if("done"===e)return j.get(t);if("objectStoreNames"===e)return t.objectStoreNames||L.get(t);if("store"===e)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return M(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t}};function A(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(D||(D=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(F(this),e),M(I.get(this))}:function(...e){return M(t.apply(F(this),e))}:function(e,...n){const r=t.call(F(this),e,...n);return L.set(r,e.sort?e.sort():[e]),M(r)}}function U(t){return"function"===typeof t?A(t):(t instanceof IDBTransaction&&function(t){if(j.has(t))return;const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",i),t.removeEventListener("abort",i)},o=()=>{e(),r()},i=()=>{n(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",o),t.addEventListener("error",i),t.addEventListener("abort",i)}));j.set(t,e)}(t),O(t,C||(C=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,N):t)}function M(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("success",o),t.removeEventListener("error",i)},o=()=>{e(M(t.result)),r()},i=()=>{n(t.error),r()};t.addEventListener("success",o),t.addEventListener("error",i)}));return e.then((e=>{e instanceof IDBCursor&&I.set(e,t)})).catch((()=>{})),k.set(e,t),e}(t);if(P.has(t))return P.get(t);const e=U(t);return e!==t&&(P.set(t,e),k.set(e,t)),e}const F=t=>k.get(t);function B(t,e,{blocked:n,upgrade:r,blocking:o,terminated:i}={}){const a=indexedDB.open(t,e),s=M(a);return r&&a.addEventListener("upgradeneeded",(t=>{r(M(a.result),t.oldVersion,t.newVersion,M(a.transaction),t)})),n&&a.addEventListener("blocked",(t=>n(t.oldVersion,t.newVersion,t))),s.then((t=>{i&&t.addEventListener("close",(()=>i())),o&&t.addEventListener("versionchange",(t=>o(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),s}const K=["get","getKey","getAll","getAllKeys","count"],W=["put","add","delete","clear"],H=new Map;function G(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!==typeof e)return;if(H.get(e))return H.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,o=W.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!K.includes(n))return;const i=async function(t,...e){const i=this.transaction(t,o?"readwrite":"readonly");let a=i.store;return r&&(a=a.index(e.shift())),(await Promise.all([a[n](...e),o&&i.done]))[0]};return H.set(e,i),i}N=(t=>({...t,get:(e,n,r)=>G(e,n)||t.get(e,n,r),has:(e,n)=>!!G(e,n)||t.has(e,n)}))(N);n(6550);const V="cache-entries",$=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class z{constructor(t){this._db=null,this._cacheName=t}_upgradeDb(t){const e=t.createObjectStore(V,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(t){this._upgradeDb(t),this._cacheName&&function(t,{blocked:e}={}){const n=indexedDB.deleteDatabase(t);e&&n.addEventListener("blocked",(t=>e(t.oldVersion,t))),M(n).then((()=>{}))}(this._cacheName)}async setTimestamp(t,e){const n={url:t=$(t),timestamp:e,cacheName:this._cacheName,id:this._getId(t)},r=(await this.getDb()).transaction(V,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(t){const e=await this.getDb(),n=await e.get(V,this._getId(t));return null===n||void 0===n?void 0:n.timestamp}async expireEntries(t,e){const n=await this.getDb();let r=await n.transaction(V).store.index("timestamp").openCursor(null,"prev");const o=[];let i=0;for(;r;){const n=r.value;n.cacheName===this._cacheName&&(t&&n.timestamp<t||e&&i>=e?o.push(r.value):i++),r=await r.continue()}const a=[];for(const s of o)await n.delete(V,s.id),a.push(s.url);return a}_getId(t){return this._cacheName+"|"+$(t)}async getDb(){return this._db||(this._db=await B("workbox-expiration",1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class Q{constructor(t,e={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=e.maxEntries,this._maxAgeSeconds=e.maxAgeSeconds,this._matchOptions=e.matchOptions,this._cacheName=t,this._timestampModel=new z(t)}async expireEntries(){if(this._isRunning)return void(this._rerunRequested=!0);this._isRunning=!0;const t=this._maxAgeSeconds?Date.now()-1e3*this._maxAgeSeconds:0,e=await this._timestampModel.expireEntries(t,this._maxEntries),n=await self.caches.open(this._cacheName);for(const r of e)await n.delete(r,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,f(this.expireEntries()))}async updateTimestamp(t){await this._timestampModel.setTimestamp(t,Date.now())}async isURLExpired(t){if(this._maxAgeSeconds){const e=await this._timestampModel.getTimestamp(t),n=Date.now()-1e3*this._maxAgeSeconds;return void 0===e||e<n}return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}n(9144);n(7977);function J(t){if(!t)throw new e("add-to-cache-list-unexpected-type",{entry:t});if("string"===typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:n,url:r}=t;if(!r)throw new e("add-to-cache-list-unexpected-type",{entry:t});if(!n){const t=new URL(r,location.href);return{cacheKey:t.href,url:t.href}}const o=new URL(r,location.href),i=new URL(r,location.href);return o.searchParams.set("__WB_REVISION__",n),{cacheKey:o.href,url:i.href}}class Y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:n})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;n?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return n}}}class X{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const n=(null===e||void 0===e?void 0:e.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return n?new Request(n,{headers:t.headers}):t},this._precacheController=t}}class Z extends E{constructor(t={}){t.cacheName=a(t.cacheName),super(t),this._fallbackToNetwork=!1!==t.fallbackToNetwork,this.plugins.push(Z.copyRedirectedCacheableResponsesPlugin)}async _handle(t,e){const n=await e.cacheMatch(t);return n||(e.event&&"install"===e.event.type?await this._handleInstall(t,e):await this._handleFetch(t,e))}async _handleFetch(t,n){let r;const o=n.params||{};if(!this._fallbackToNetwork)throw new e("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{0;const e=o.integrity,i=t.integrity,a=!i||i===e;if(r=await n.fetch(new Request(t,{integrity:"no-cors"!==t.mode?i||e:void 0})),e&&a&&"no-cors"!==t.mode){this._useDefaultCacheabilityPluginIfNeeded();await n.cachePut(t,r.clone());0}}return r}async _handleInstall(t,n){this._useDefaultCacheabilityPluginIfNeeded();const r=await n.fetch(t);if(!await n.cachePut(t,r.clone()))throw new e("bad-precaching-response",{url:t.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let t=null,e=0;for(const[n,r]of this.plugins.entries())r!==Z.copyRedirectedCacheableResponsesPlugin&&(r===Z.defaultPrecacheCacheabilityPlugin&&(t=n),r.cacheWillUpdate&&e++);0===e?this.plugins.push(Z.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}Z.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:t}){return!t||t.status>=400?null:t}},Z.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:t}){return t.redirected?await p(t):t}};class tt{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new Z({cacheName:a(t),plugins:[...e,new X({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(t){this.addToCacheList(t),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(t){const n=[];for(const r of t){"string"===typeof r?n.push(r):r&&void 0===r.revision&&n.push(r.url);const{cacheKey:t,url:o}=J(r),i="string"!==typeof r&&r.revision?"reload":"default";if(this._urlsToCacheKeys.has(o)&&this._urlsToCacheKeys.get(o)!==t)throw new e("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(o),secondEntry:t});if("string"!==typeof r&&r.integrity){if(this._cacheKeysToIntegrities.has(t)&&this._cacheKeysToIntegrities.get(t)!==r.integrity)throw new e("add-to-cache-list-conflicting-integrities",{url:o});this._cacheKeysToIntegrities.set(t,r.integrity)}if(this._urlsToCacheKeys.set(o,t),this._urlsToCacheModes.set(o,i),n.length>0){const t=`Workbox is precaching URLs without revision info: ${n.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,(async()=>{const e=new Y;this.strategy.plugins.push(e);for(const[o,i]of this._urlsToCacheKeys){const e=this._cacheKeysToIntegrities.get(i),n=this._urlsToCacheModes.get(o),r=new Request(o,{integrity:e,cache:n,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:r,event:t}))}const{updatedURLs:n,notUpdatedURLs:r}=e;return{updatedURLs:n,notUpdatedURLs:r}}))}activate(t){return d(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(const o of e)n.has(o.url)||(await t.delete(o),r.push(o.url));return{deletedURLs:r}}))}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this._urlsToCacheKeys.get(e.href)}getIntegrityForCacheKey(t){return this._cacheKeysToIntegrities.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,n=this.getCacheKeyForURL(e);if(n){return(await self.caches.open(this.strategy.cacheName)).match(n)}}createHandlerBoundToURL(t){const n=this.getCacheKeyForURL(t);if(!n)throw new e("non-precached-url",{url:t});return e=>(e.request=new Request(t),e.params=Object.assign({cacheKey:n},e.params),this.strategy.handle(e))}}let et;const nt=()=>(et||(et=new tt),et);function rt(t){return nt().matchPrecache(t)}class ot extends v{constructor(t,e){super((({request:n})=>{const r=t.getURLsToCacheKeys();for(const o of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:n="index.html",cleanURLs:r=!0,urlManipulation:o}={}){const i=new URL(t,location.href);i.hash="",yield i.href;const a=function(t,e=[]){for(const n of[...t.searchParams.keys()])e.some((t=>t.test(n)))&&t.searchParams.delete(n);return t}(i,e);if(yield a.href,n&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=n,yield t.href}if(r){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(o){const t=o({url:i});for(const e of t)yield e.href}}(n.url,e)){const e=r.get(o);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}n(6272);const it="requests",at="queueName";class st{constructor(){this._db=null}async addEntry(t){const e=(await this.getDb()).transaction(it,"readwrite",{durability:"relaxed"});await e.store.add(t),await e.done}async getFirstEntryId(){const t=await this.getDb(),e=await t.transaction(it).store.openCursor();return null===e||void 0===e?void 0:e.value.id}async getAllEntriesByQueueName(t){const e=await this.getDb(),n=await e.getAllFromIndex(it,at,IDBKeyRange.only(t));return n||new Array}async getEntryCountByQueueName(t){return(await this.getDb()).countFromIndex(it,at,IDBKeyRange.only(t))}async deleteEntry(t){const e=await this.getDb();await e.delete(it,t)}async getFirstEntryByQueueName(t){return await this.getEndEntryFromIndex(IDBKeyRange.only(t),"next")}async getLastEntryByQueueName(t){return await this.getEndEntryFromIndex(IDBKeyRange.only(t),"prev")}async getEndEntryFromIndex(t,e){const n=await this.getDb(),r=await n.transaction(it).store.index(at).openCursor(t,e);return null===r||void 0===r?void 0:r.value}async getDb(){return this._db||(this._db=await B("workbox-background-sync",3,{upgrade:this._upgradeDb})),this._db}_upgradeDb(t,e){e>0&&e<3&&t.objectStoreNames.contains(it)&&t.deleteObjectStore(it);t.createObjectStore(it,{autoIncrement:!0,keyPath:"id"}).createIndex(at,at,{unique:!1})}}class ct{constructor(t){this._queueName=t,this._queueDb=new st}async pushEntry(t){delete t.id,t.queueName=this._queueName,await this._queueDb.addEntry(t)}async unshiftEntry(t){const e=await this._queueDb.getFirstEntryId();e?t.id=e-1:delete t.id,t.queueName=this._queueName,await this._queueDb.addEntry(t)}async popEntry(){return this._removeEntry(await this._queueDb.getLastEntryByQueueName(this._queueName))}async shiftEntry(){return this._removeEntry(await this._queueDb.getFirstEntryByQueueName(this._queueName))}async getAll(){return await this._queueDb.getAllEntriesByQueueName(this._queueName)}async size(){return await this._queueDb.getEntryCountByQueueName(this._queueName)}async deleteEntry(t){await this._queueDb.deleteEntry(t)}async _removeEntry(t){return t&&await this.deleteEntry(t.id),t}}const ut=["method","referrer","referrerPolicy","mode","credentials","cache","redirect","integrity","keepalive"];class ft{static async fromRequest(t){const e={url:t.url,headers:{}};"GET"!==t.method&&(e.body=await t.clone().arrayBuffer());for(const[n,r]of t.headers.entries())e.headers[n]=r;for(const n of ut)void 0!==t[n]&&(e[n]=t[n]);return new ft(e)}constructor(t){"navigate"===t.mode&&(t.mode="same-origin"),this._requestData=t}toObject(){const t=Object.assign({},this._requestData);return t.headers=Object.assign({},this._requestData.headers),t.body&&(t.body=t.body.slice(0)),t}toRequest(){return new Request(this._requestData.url,this._requestData)}clone(){return new ft(this.toObject())}}const ht="workbox-background-sync",lt=new Set,dt=t=>{const e={request:new ft(t.requestData).toRequest(),timestamp:t.timestamp};return t.metadata&&(e.metadata=t.metadata),e};self.skipWaiting(),self.addEventListener("activate",(()=>self.clients.claim())),x((function(t){return"navigate"===t.request.mode}),new class extends E{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(_),this._networkTimeoutSeconds=t.networkTimeoutSeconds||0}async _handle(t,n){const r=[];const o=[];let i;if(this._networkTimeoutSeconds){const{id:e,promise:a}=this._getTimeoutPromise({request:t,logs:r,handler:n});i=e,o.push(a)}const a=this._getNetworkPromise({timeoutId:i,request:t,logs:r,handler:n});o.push(a);const s=await n.waitUntil((async()=>await n.waitUntil(Promise.race(o))||await a)());if(!s)throw new e("no-response",{url:t.url});return s}_getTimeoutPromise({request:t,logs:e,handler:n}){let r;return{promise:new Promise((e=>{r=setTimeout((async()=>{e(await n.cacheMatch(t))}),1e3*this._networkTimeoutSeconds)})),id:r}}async _getNetworkPromise({timeoutId:t,request:e,logs:n,handler:r}){let o,i;try{i=await r.fetchAndCachePut(e)}catch(a){a instanceof Error&&(o=a)}return t&&clearTimeout(t),!o&&i||(i=await r.cacheMatch(e)),i}}({cacheName:"pages",plugins:[new q({statuses:[200]})]})),x((function(t){var e=t.request;return"style"===e.destination||"script"===e.destination||"worker"===e.destination}),new class extends E{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(_)}async _handle(t,n){const r=n.fetchAndCachePut(t).catch((()=>{}));n.waitUntil(r);let o,i=await n.cacheMatch(t);if(i)0;else{0;try{i=await r}catch(a){a instanceof Error&&(o=a)}}if(!i)throw new e("no-response",{url:t.url,error:o});return i}}({cacheName:"assets",plugins:[new q({statuses:[200]})]})),x((function(t){return"image"===t.request.destination}),new class extends E{async _handle(t,n){let r,o=await n.cacheMatch(t);if(o)0;else{0;try{o=await n.fetchAndCachePut(t)}catch(i){i instanceof Error&&(r=i)}0}if(!o)throw new e("no-response",{url:t.url,error:r});return o}}({cacheName:"images",plugins:[new q({statuses:[200]}),new class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:n,cachedResponse:r})=>{if(!r)return null;const o=this._isResponseDateFresh(r),i=this._getCacheExpiration(n);f(i.expireEntries());const a=i.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(s){0}return o?r:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const n=this._getCacheExpiration(t);await n.updateTimestamp(e.url),await n.expireEntries()},this._config=t,this._maxAgeSeconds=t.maxAgeSeconds,this._cacheExpirations=new Map,t.purgeOnQuotaError&&function(t){r.add(t)}((()=>this.deleteCacheAndMetadata()))}_getCacheExpiration(t){if(t===s())throw new e("expire-custom-caches-only");let n=this._cacheExpirations.get(t);return n||(n=new Q(t,this._config),this._cacheExpirations.set(t,n)),n}_isResponseDateFresh(t){if(!this._maxAgeSeconds)return!0;const e=this._getDateHeaderTimestamp(t);if(null===e)return!0;return e>=Date.now()-1e3*this._maxAgeSeconds}_getDateHeaderTimestamp(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),n=new Date(e).getTime();return isNaN(n)?null:n}async deleteCacheAndMetadata(){for(const[t,e]of this._cacheExpirations)await self.caches.delete(t),await e.delete();this._cacheExpirations=new Map}}({maxEntries:500,maxAgeSeconds:2592e3})]})),function(t={}){const e=t.pageFallback||"offline.html",n=t.imageFallback||!1,r=t.fontFallback||!1;self.addEventListener("install",(t=>{const o=[e];n&&o.push(n),r&&o.push(r),t.waitUntil(self.caches.open("workbox-offline-fallbacks").then((t=>t.addAll(o))))})),function(t){b().setCatchHandler(t)}((async t=>{const o=t.request.destination,i=await self.caches.open("workbox-offline-fallbacks");if("document"===o){return await rt(e)||await i.match(e)||Response.error()}if("image"===o&&!1!==n){return await rt(n)||await i.match(n)||Response.error()}if("font"===o&&!1!==r){return await rt(r)||await i.match(r)||Response.error()}return Response.error()}))}({pageFallback:"index.html"});var pt=new class{constructor(t,{forceSyncFallback:n,onSync:r,maxRetentionTime:o}={}){if(this._syncInProgress=!1,this._requestsAddedDuringSync=!1,lt.has(t))throw new e("duplicate-queue-name",{name:t});lt.add(t),this._name=t,this._onSync=r||this.replayRequests,this._maxRetentionTime=o||10080,this._forceSyncFallback=Boolean(n),this._queueStore=new ct(this._name),this._addSyncListener()}get name(){return this._name}async pushRequest(t){await this._addRequest(t,"push")}async unshiftRequest(t){await this._addRequest(t,"unshift")}async popRequest(){return this._removeRequest("pop")}async shiftRequest(){return this._removeRequest("shift")}async getAll(){const t=await this._queueStore.getAll(),e=Date.now(),n=[];for(const r of t){const t=60*this._maxRetentionTime*1e3;e-r.timestamp>t?await this._queueStore.deleteEntry(r.id):n.push(dt(r))}return n}async size(){return await this._queueStore.size()}async _addRequest({request:t,metadata:e,timestamp:n=Date.now()},r){const o={requestData:(await ft.fromRequest(t.clone())).toObject(),timestamp:n};switch(e&&(o.metadata=e),r){case"push":await this._queueStore.pushEntry(o);break;case"unshift":await this._queueStore.unshiftEntry(o)}this._syncInProgress?this._requestsAddedDuringSync=!0:await this.registerSync()}async _removeRequest(t){const e=Date.now();let n;switch(t){case"pop":n=await this._queueStore.popEntry();break;case"shift":n=await this._queueStore.shiftEntry()}if(n){const r=60*this._maxRetentionTime*1e3;return e-n.timestamp>r?this._removeRequest(t):dt(n)}}async replayRequests(){let t;for(;t=await this.shiftRequest();)try{await fetch(t.request.clone())}catch(n){throw await this.unshiftRequest(t),new e("queue-replay-failed",{name:this._name})}}async registerSync(){if("sync"in self.registration&&!this._forceSyncFallback)try{await self.registration.sync.register(`${ht}:${this._name}`)}catch(t){0}}_addSyncListener(){"sync"in self.registration&&!this._forceSyncFallback?self.addEventListener("sync",(t=>{if(t.tag===`${ht}:${this._name}`){0;const e=async()=>{let e;this._syncInProgress=!0;try{await this._onSync({queue:this})}catch(n){if(n instanceof Error)throw e=n,e}finally{!this._requestsAddedDuringSync||e&&!t.lastChance||await this.registerSync(),this._syncInProgress=!1,this._requestsAddedDuringSync=!1}};t.waitUntil(e())}})):this._onSync({queue:this})}static get _queueNames(){return lt}}("netdata"),yt=function(t,e){return pt._queueStore.getAll().then((function(n){return n.filter((function(n){var r=n.requestData;return r.method===e&&r.url.endsWith(t)}))})).then((function(t){return Promise.all(t.map((function(t){var e=t.id;return pt._queueStore.deleteEntry(e)})))}))};self.addEventListener("message",(function(t){if("removeBgSynced"===t.data.type){var e=t.data,n=e.url,r=e.method;return yt(n,r)}}));var vt,gt=function(t,e){return new Response(JSON.stringify({statusText:e,error:t}),{headers:{"Content-Type":"application/json"}})};self.addEventListener("fetch",(function(t){if("POST"===t.request.method){var e=t.request.headers.get("bgSync");if(e){var n=t.request,r=n.url,o=n.method;yt(r,o)}t.respondWith(fetch(t.request.clone()).catch((function(){return e?pt.pushRequest({request:t.request}).then((function(){return gt("Request pushed for background sync","bgSynced")})):gt("This action is disabled while app is offline","offline")})))}})),function(t){nt().precache(t)}([{'revision':null,'url':'/102.dc7f30189e6e1105143b.chunk.js'},{'revision':null,'url':'/129.59192a62539648e72a38.chunk.js'},{'revision':null,'url':'/18.d27b3a3f82b13e4e31b5.chunk.js'},{'revision':null,'url':'/193.94e6e52842fb25d00193.chunk.js'},{'revision':null,'url':'/20.a271e6cfa915fdaf3602.chunk.js'},{'revision':null,'url':'/241.9c26252244ccad9ac280.chunk.js'},{'revision':null,'url':'/252.ecac74e9755e6d96573c.chunk.js'},{'revision':null,'url':'/264.a5876f358dd6972563d5.chunk.js'},{'revision':null,'url':'/27.384da655707f4c3b6153.css'},{'revision':null,'url':'/27.922062ec65b1e01389ee.chunk.js'},{'revision':null,'url':'/277.93f8d8d191859a1c59dc.chunk.js'},{'revision':null,'url':'/282.8b52e573f86730f801fc.chunk.js'},{'revision':null,'url':'/324.4fc60bcaa065dab2898f.chunk.js'},{'revision':null,'url':'/359.fde431aadc6dd872d1b3.chunk.js'},{'revision':null,'url':'/360.035df4a77480670d5715.chunk.js'},{'revision':null,'url':'/427.acd538b4ce317d11342e.chunk.js'},{'revision':null,'url':'/427.ccb665950325037c0dda.css'},{'revision':null,'url':'/43.178b68b4bde3a2876bd8.chunk.js'},{'revision':null,'url':'/447.d73a7051f850d9257b12.chunk.js'},{'revision':null,'url':'/451.c12c367c27438b213814.chunk.js'},{'revision':null,'url':'/470.f28faa6be4559491ed1e.chunk.js'},{'revision':null,'url':'/502.9438cab3c9c41c42ed57.chunk.js'},{'revision':null,'url':'/510.d6163fa8dc978bbb2b42.chunk.js'},{'revision':null,'url':'/514.58ab6c1ac3b8af2f0016.chunk.js'},{'revision':null,'url':'/533.bf2c24b99df0c8f8a234.chunk.js'},{'revision':null,'url':'/564.22a72ae2b4d5c2e659a1.chunk.js'},{'revision':null,'url':'/575.9daac2298d0395fdf183.chunk.js'},{'revision':null,'url':'/597.5d5a03215ae545861922.chunk.js'},{'revision':null,'url':'/610.d671813e159356dd5674.chunk.js'},{'revision':null,'url':'/654.89446e8c7a0b8bba60ba.chunk.js'},{'revision':null,'url':'/655.e9a4b596ea0a5d9c7bff.chunk.js'},{'revision':null,'url':'/663.08e4639637c3d8f77b7c.chunk.js'},{'revision':null,'url':'/723.5cbb8237ca47fb280150.chunk.js'},{'revision':null,'url':'/723.cc9fa5f3bdc0bf3ab2fc.css'},{'revision':null,'url':'/765.abdc73e99f918c4200a8.chunk.js'},{'revision':null,'url':'/814.bfc6d4650c1097dc56eb.chunk.js'},{'revision':null,'url':'/817.883beafccc77faf546a2.chunk.js'},{'revision':null,'url':'/837.457977c0c92687b5bf08.chunk.js'},{'revision':null,'url':'/851.c2d4621d872e935ac44a.chunk.js'},{'revision':null,'url':'/86.5e866a98fcb6e62687d3.chunk.js'},{'revision':null,'url':'/934.9dc27c5ebc538bddabb3.chunk.js'},{'revision':null,'url':'/952.fd601224f55afda56157.chunk.js'},{'revision':null,'url':'/969.888044e63adb99d3626d.chunk.js'},{'revision':null,'url':'/977.96e2ff6feb44e920b79e.chunk.js'},{'revision':'0e1548d5a1dda8dc39f882b5e33ab4ab','url':'/agent.html'},{'revision':null,'url':'/app.0917ff2bf5d3b8b0678d.css'},{'revision':null,'url':'/app.24424bcb6923064df250.js'},{'revision':null,'url':'/editor.0483213ccc286f86f266.chunk.js'},{'revision':'e08379c90f9e3b1fbb4258a6b5bae56c','url':'/favicon.ico'},{'revision':'4783f232d019d296d24550bfbd997da6','url':'/index.html'},{'revision':'318c3fc17412f081ff265c86642427f4','url':'/local-agent.html'},{'revision':null,'url':'/npm.react.dom.fcbeaa7a1582a429a00e.js'},{'revision':'1672a7cb2791386207147c24045852ec','url':'/registry-access.html'},{'revision':'fcec2b200e165b8768d60ffeb08ede61','url':'/registry-alert-redirect.html'},{'revision':'21c4873805db3adee3ff03e98a4c9a4f','url':'/registry-hello.html'},{'revision':null,'url':'/runtime.db3b1f7db7a8e8ecf561.js'},{'revision':'5dd984c78c1a70f4ca75372381c3f167','url':'/static/email/img/clea_badge.png'},{'revision':'f5e2223e3717188e5c00970e92299ce4','url':'/static/email/img/clea_siren.png'},{'revision':'22f52d199eb809360c56bf0b700b6b36','url':'/static/email/img/community_icon.png'},{'revision':'878dc9b7f75cec8d25b00296035fea03','url':'/static/email/img/configure_icon.png'},{'revision':'b9c0ff9e2f2315782a21c22052610bab','url':'/static/email/img/crit_badge.png'},{'revision':'72217b81d53177a1bafeb6874c8b7a3e','url':'/static/email/img/crit_siren.png'},{'revision':'97baf0add3259a28ef85eeef80b9df24','url':'/static/email/img/flood_siren.png'},{'revision':'f3773d6a68f16eb900899d4d77e7f000','url':'/static/email/img/full_logo.png'},{'revision':'1c2161a8ada89f2840bb49c7436ad814','url':'/static/email/img/header.png'},{'revision':'5069c93255c7e1ed005a14720d3373c2','url':'/static/email/img/isotype_600.png'},{'revision':'78f1e90b91baf6c7bc368aeb63c70815','url':'/static/email/img/label_critical.png'},{'revision':'d13f63a3d7041323a2c62620bb4bafbe','url':'/static/email/img/label_recovered.png'},{'revision':'6c7196c720144a76316f57e74e413613','url':'/static/email/img/label_warning.png'},{'revision':'0e52319aad8575d826c1de7b995c1c3d','url':'/static/email/img/reachability_siren.png'},{'revision':'d5264fe0e464ca63c47339de49573fce','url':'/static/email/img/warn_badge.png'},{'revision':'9ada8f1a03e8e337bc4d962ebb9c4feb','url':'/static/email/img/warn_siren.png'},{'revision':'7b0e67fc51980fa64b924a3faaebf8cd','url':'/static/img/list-style-image.svg'},{'revision':'d83d3c90a4263c8d600115238947cb8b','url':'/static/img/logos/os/alpine.svg'},{'revision':'ea2783c91526825a87d91cfb67b3880a','url':'/static/img/logos/os/arch.svg'},{'revision':'721e109311dcc775f1fc4548dab1c8ee','url':'/static/img/logos/os/centos.svg'},{'revision':'91335d2e37a1ba13cf2e72e27019a75f','url':'/static/img/logos/os/coreos.svg'},{'revision':'681aceb3743f4b8e655eeefa90eca437','url':'/static/img/logos/os/debian.svg'},{'revision':'9e7e2a8b1f48d4ab5b1900c097369c3a','url':'/static/img/logos/os/docker.svg'},{'revision':'d8dbc0537e6f97cec246e4f28b601ebf','url':'/static/img/logos/os/fedora.svg'},{'revision':'8b792ad3a91245301764356558799e30','url':'/static/img/logos/os/freebsd.svg'},{'revision':'0a6fc28cf7759f84e1d93c2d63b77f47','url':'/static/img/logos/os/freenas.svg'},{'revision':'511628407431ba05e6c5e8a832de06d7','url':'/static/img/logos/os/gentoo.svg'},{'revision':'3a15213ddffc497c558cabac9f1e2c2b','url':'/static/img/logos/os/kubernetes.svg'},{'revision':'ba7fb927e9783914045d7afd9e6882ad','url':'/static/img/logos/os/linux-small.svg'},{'revision':'0a4343315317f2ff0b790b7866edce88','url':'/static/img/logos/os/linux.svg'},{'revision':'f88a55fc3eb331ca7a6963e9eb6c1a98','url':'/static/img/logos/os/macos.svg'},{'revision':'ef9272e7450b383179627d5f0314fa60','url':'/static/img/logos/os/manjaro.svg'},{'revision':'9b072ec8e40c84a9131027a78bf235b6','url':'/static/img/logos/os/openstack.svg'},{'revision':'acf55d0ad532af1516d1737f7f9713ef','url':'/static/img/logos/os/opensuse.svg'},{'revision':'285b0145e5a52bf6eabc58ddb38ecb3d','url':'/static/img/logos/os/openwrt.svg'},{'revision':'4e134a6123ca0d8362e17f33044ba57c','url':'/static/img/logos/os/oracle.svg'},{'revision':'c04f55b3e9ec5d22c85645d27e1ed18b','url':'/static/img/logos/os/pfsense.svg'},{'revision':'309f0c6b9a270f8bd8801925fb9db0f5','url':'/static/img/logos/os/placeholder.svg'},{'revision':'3da67b7657fedcdded70bdf08bc9d08a','url':'/static/img/logos/os/raspberry-pi.svg'},{'revision':'e38b0ed9b6920282b6cf5a3625215916','url':'/static/img/logos/os/redhat.svg'},{'revision':'bc5e56c6fb341824f80daa604bad88d9','url':'/static/img/logos/os/suse.svg'},{'revision':'6b0c8d4e8e727fee4856daa3ba92ee81','url':'/static/img/logos/os/ubuntu.svg'},{'revision':'c52ffc08f2b2ea56e46cd884495d2148','url':'/static/img/logos/services/access-point.svg'},{'revision':'88d7dacdf13278537ad4e9d0aff23ed3','url':'/static/img/logos/services/activemq.svg'},{'revision':'37f2e886c72fbcd47b5ffb60733b77d8','url':'/static/img/logos/services/adaptec.svg'},{'revision':'b658355ba2fea4b5d6cbada0d0339306','url':'/static/img/logos/services/alerta.svg'},{'revision':'b39016f9bee1ce8648f67791a98817dc','url':'/static/img/logos/services/apache.svg'},{'revision':'3b5ade779f8d749d48db9b82aa943b61','url':'/static/img/logos/services/apc.svg'},{'revision':'e9433c11ec53f07466dbd9ed4d6fd751','url':'/static/img/logos/services/aws-sns.svg'},{'revision':'ecebea115e1ab4bead943b8962317022','url':'/static/img/logos/services/aws.svg'},{'revision':'55df8093275489f75fe20fa6c222216d','url':'/static/img/logos/services/beanstalkd.svg'},{'revision':'ed0a1dd09b109d2610baa566e3d402d0','url':'/static/img/logos/services/boinc.svg'},{'revision':'1312c86e65d32bc28d278d961887a628','url':'/static/img/logos/services/btrfs.svg'},{'revision':'146643d089f1e17457a5c8fdf1013b4c','url':'/static/img/logos/services/ceph.svg'},{'revision':'627837dc14e607ad41b6c4b5cef8b561','url':'/static/img/logos/services/chrony.svg'},{'revision':'19b1e40e32bb21d3d6273b4aae4a88b4','url':'/static/img/logos/services/cloud.svg'},{'revision':'df2ea1496b38af73fd91511b3688e15d','url':'/static/img/logos/services/concul.svg'},{'revision':'87876ce57a48c3f9e3a870cd78860c12','url':'/static/img/logos/services/consul.svg'},{'revision':'89588c4cdc6110051867c4b332e03e2c','url':'/static/img/logos/services/container.svg'},{'revision':'42d91a75181a1e0054df5cbef8b19742','url':'/static/img/logos/services/couchdb.svg'},{'revision':'264bc7ec295e4f9ad8fae82c3e86ded9','url':'/static/img/logos/services/cups.svg'},{'revision':'21e5c11a69d6efac921261f84f9f6df8','url':'/static/img/logos/services/data-encryption.svg'},{'revision':'cec1f9696feaadad408bfa8ca3927748','url':'/static/img/logos/services/ddos.svg'},{'revision':'f8389ca1a741a115313bede9ac02e2c0','url':'/static/img/logos/services/discord.svg'},{'revision':'1f5925ba222bad29609c3ca13ace2a99','url':'/static/img/logos/services/dns.svg'},{'revision':'d36e442f9a9c2697a460aa9f20a6f2bc','url':'/static/img/logos/services/docker.svg'},{'revision':'0f3ae584bfe2858b76bf3d118bebbf97','url':'/static/img/logos/services/dovecot.svg'},{'revision':'616f3fbc10d44774dac9269fd9295d07','url':'/static/img/logos/services/elasticsearch.svg'},{'revision':'feef131e8226cab9c345db605ed9a353','url':'/static/img/logos/services/email.svg'},{'revision':'28250741b5ea758b05bc551c66f0034f','url':'/static/img/logos/services/exim.svg'},{'revision':'4f454fc8b9fb38a613d711d83e2b1de1','url':'/static/img/logos/services/fail2ban.svg'},{'revision':'8cd2efa3851a165fbdfe766b2fef5294','url':'/static/img/logos/services/flock.svg'},{'revision':'eb6a015ece746762e9daa21bab1fe352','url':'/static/img/logos/services/fluentd.svg'},{'revision':'a33e398da7592844b73596a119954d16','url':'/static/img/logos/services/fping.svg'},{'revision':'e2580c9d7c50d69452101a884bac1552','url':'/static/img/logos/services/freeradius.svg'},{'revision':'ed4decb646a1338a4de9d7d30046ca50','url':'/static/img/logos/services/fronius.svg'},{'revision':'8d2f6602566650a7320a84996cf85d64','url':'/static/img/logos/services/gnu-freeipmi.svg'},{'revision':'48a303cfacef14ec35c336700bc333b8','url':'/static/img/logos/services/golang.svg'},{'revision':'24119b2c7bc0ca689b3acff70add2dfb','url':'/static/img/logos/services/grafana.svg'},{'revision':'3222dddb4457a92b49aa0d181d15be75','url':'/static/img/logos/services/graphite.svg'},{'revision':'515578af549c0541e1a175401d0b1487','url':'/static/img/logos/services/haproxy.svg'},{'revision':'caa9e97043c09e7f41d8140cd12a588d','url':'/static/img/logos/services/hub.svg'},{'revision':'23380102fadd7b7fb5f5eb4867484cff','url':'/static/img/logos/services/icecast.svg'},{'revision':'e0d3a56bbd7c3f009bdfafd6f867c0a0','url':'/static/img/logos/services/influxdb.svg'},{'revision':'e4987ef9ecf165d37a1599bd34f7a32c','url':'/static/img/logos/services/ipfs.svg'},{'revision':'514198d5f8bfa868543c56dfda56c5da','url':'/static/img/logos/services/irc.svg'},{'revision':'ce975a0ba008f30d0c14939f7e0f827d','url':'/static/img/logos/services/isc.svg'},{'revision':'07140ef847fe0bc0e911ade34c55b184','url':'/static/img/logos/services/kafka.svg'},{'revision':'b87b04cbf08cf172f165038f1c0e46ae','url':'/static/img/logos/services/kairosdb.svg'},{'revision':'4fd5b032dcf53217880e08898d0b6b6a','url':'/static/img/logos/services/kavenegar.svg'},{'revision':'63eb0a355174ebdee113dfc29ff5deb9','url':'/static/img/logos/services/key-file.svg'},{'revision':'3a15213ddffc497c558cabac9f1e2c2b','url':'/static/img/logos/services/kubernetes.svg'},{'revision':'db604bbefea8679c6e92de00e90fff2d','url':'/static/img/logos/services/libreswan.svg'},{'revision':'1f5e6a545bf2334ef55f0e5fd9b91813','url':'/static/img/logos/services/libvirt.svg'},{'revision':'0ed40155ecbac111c5a7fae1d5daeebf','url':'/static/img/logos/services/lighthttpd.svg'},{'revision':'0a4343315317f2ff0b790b7866edce88','url':'/static/img/logos/services/linux.svg'},{'revision':'9718b33406088daa4454cba53a056daa','url':'/static/img/logos/services/litespeed.svg'},{'revision':'cb6a3538307e259541f9534ec860b1c2','url':'/static/img/logos/services/lm-sensors.svg'},{'revision':'1fdd6d0222b695e7b7c12a331201ff32','url':'/static/img/logos/services/load-balancer.svg'},{'revision':'aa4fa3f5f9a6008f133eed5f84593f9c','url':'/static/img/logos/services/log-file.svg'},{'revision':'13b57ad683334e6ad6966d6056b588b0','url':'/static/img/logos/services/logstash.svg'},{'revision':'ff0c16aebe4bb98cf9e7a5298c3fde18','url':'/static/img/logos/services/lxd.svg'},{'revision':'1b8e06489889edfb34285fe46c7b5292','url':'/static/img/logos/services/mariadb.svg'},{'revision':'2bcccabfb9f9a61687d297d69dca3ecf','url':'/static/img/logos/services/memcached.svg'},{'revision':'ee9729556cc02b21cb86fb832d9912b4','url':'/static/img/logos/services/messagebird.svg'},{'revision':'554c7d4bfd63a3da33773978fd291c06','url':'/static/img/logos/services/mongodb.svg'},{'revision':'9a9f461839a56d2ff17154a9a6e7af94','url':'/static/img/logos/services/monit.svg'},{'revision':'0650308601e047a9d10849bfb5b14b9e','url':'/static/img/logos/services/monitoring.svg'},{'revision':'cb6f4722f30229d118df97232dfd1bb5','url':'/static/img/logos/services/mysql.svg'},{'revision':'88a4b79f7a62e579744305c60b043192','url':'/static/img/logos/services/netfilter.svg'},{'revision':'bff32cb5a58a4094689e21779eb7c339','url':'/static/img/logos/services/network-protocol.svg'},{'revision':'4f067ece273f0d3b7463431243c32acd','url':'/static/img/logos/services/network.svg'},{'revision':'4df305d04c05a610efb748f0b40389f4','url':'/static/img/logos/services/nfs.svg'},{'revision':'005f7d382db87e26219f39df46d6821c','url':'/static/img/logos/services/nginx-plus.svg'},{'revision':'88fa37ab9246ae06ed55393cac16d284','url':'/static/img/logos/services/nginx.svg'},{'revision':'ced49ab6b19cc20a8a79986040723b3e','url':'/static/img/logos/services/notification-bell.svg'},{'revision':'544013e6e5ca11faca9dc5168646c6f6','url':'/static/img/logos/services/nsd.svg'},{'revision':'6625b96ed3de57f8d650f4b2f74f2646','url':'/static/img/logos/services/ntpd.svg'},{'revision':'2e3fa402d78b86a353bebfac81e83cda','url':'/static/img/logos/services/nut.svg'},{'revision':'0e32d0a7061b73cb22a6c89ac1076203','url':'/static/img/logos/services/nvidia.svg'},{'revision':'6cb3393e07eef198cee8bf3d4aba85e6','url':'/static/img/logos/services/openldap.svg'},{'revision':'48ec69a3e8ccac0a39623a33c121df6e','url':'/static/img/logos/services/opensips.svg'},{'revision':'3a6a3ba2db69e1d00073f0fd119fe7a9','url':'/static/img/logos/services/opentsdb.svg'},{'revision':'cb690dd03f447f755bd65bfb5eab31d6','url':'/static/img/logos/services/openvpn.svg'},{'revision':'3ffc09fdda22563262e755b751048948','url':'/static/img/logos/services/openzfs.svg'},{'revision':'4e134a6123ca0d8362e17f33044ba57c','url':'/static/img/logos/services/oracle.svg'},{'revision':'ec7d7bd17fcd96e0e397c7afbe9b0b86','url':'/static/img/logos/services/pagerduty.svg'},{'revision':'e58a44749755f5b3fc6121128f565d52','url':'/static/img/logos/services/php-fpm.svg'},{'revision':'ad7c4cbd376944596a970a12cf9a4b0f','url':'/static/img/logos/services/placeholder.svg'},{'revision':'fc6874e19ea3b14f186713711a6a807a','url':'/static/img/logos/services/postfix.svg'},{'revision':'9318272b34b560d9180cc7b3a05c469b','url':'/static/img/logos/services/postgresql.svg'},{'revision':'d825c708929a70d1fe6afeb04026c52a','url':'/static/img/logos/services/powerdns.svg'},{'revision':'f22e171bc3012a1cb6aec8383d2dacba','url':'/static/img/logos/services/processor.svg'},{'revision':'074db273ef932a67d91b58e7ba1f49d3','url':'/static/img/logos/services/prometheus.svg'},{'revision':'fc96e1058c107b8a706f2400d2eebd18','url':'/static/img/logos/services/prowl.svg'},{'revision':'f76d643a46b74c411a26abb9df6dc13e','url':'/static/img/logos/services/proxysql.svg'},{'revision':'e824c97149c47467e3a892c7f049ea47','url':'/static/img/logos/services/puppet.svg'},{'revision':'96d29544af13d15bf087628e61d00a01','url':'/static/img/logos/services/pushbullet.svg'},{'revision':'f3406eb327f651cbb68f8e2e607f2ade','url':'/static/img/logos/services/pushover.svg'},{'revision':'ce86ca8f0b89ced3af53b8e153fb834e','url':'/static/img/logos/services/qos.svg'},{'revision':'e5b7e2321d339b19425bba6a81807c55','url':'/static/img/logos/services/rabbitmq.svg'},{'revision':'3da67b7657fedcdded70bdf08bc9d08a','url':'/static/img/logos/services/raspberry-pi.svg'},{'revision':'4aaff929af8a78f0a5e3c1b27a0b6725','url':'/static/img/logos/services/redis.svg'},{'revision':'62a26d4b8ba048586ea156c370232f4e','url':'/static/img/logos/services/rethinkdb.svg'},{'revision':'bc32d1e8b2f2041ee9c4f17ffe7fc5e9','url':'/static/img/logos/services/retroshare.svg'},{'revision':'4754e936fdc04775f41e97e8ecf43476','url':'/static/img/logos/services/rocketchat.svg'},{'revision':'7b3d7a3d2568050ffc6b66a63a840675','url':'/static/img/logos/services/samba.svg'},{'revision':'67a062ebdfeda9b78b4f7891bff232f2','url':'/static/img/logos/services/server-connection.svg'},{'revision':'838e94185a05b5a7e49342e15a7f7bab','url':'/static/img/logos/services/slack.svg'},{'revision':'da52172208b4aec912606dee840b13fc','url':'/static/img/logos/services/sma.svg'},{'revision':'b0082760ed739c2590d402cac899bbfd','url':'/static/img/logos/services/smstools3.svg'},{'revision':'54e21eda70fe847d4f78407a6db25309','url':'/static/img/logos/services/solr.svg'},{'revision':'0c5fb25f01e875d092de9e438d2ea102','url':'/static/img/logos/services/spigot.svg'},{'revision':'449e8efbf3e642eecc4d8e0b1fe7cb1d','url':'/static/img/logos/services/springboot.svg'},{'revision':'80b8939c121fe88cafaa77c9ebe6a42a','url':'/static/img/logos/services/squid.svg'},{'revision':'e0eb22ed4bda376d3507b6419821f4cf','url':'/static/img/logos/services/statsd.svg'},{'revision':'633d9a54c151ebbf900072edfb0c4b1d','url':'/static/img/logos/services/stiebel.svg'},{'revision':'6b3ea1af797d26f2e6edfb09bc625974','url':'/static/img/logos/services/systemd.svg'},{'revision':'74ac39199f7cd7e51317c7dcec8ffa38','url':'/static/img/logos/services/telegram.svg'},{'revision':'fd469d8c5263d5779aeb2438bcc522d1','url':'/static/img/logos/services/temperature.svg'},{'revision':'600debbf4e6330d59f7766a6745ad7e9','url':'/static/img/logos/services/tomcat.svg'},{'revision':'5f2ce630abe1c94babea5c580beae308','url':'/static/img/logos/services/tor.svg'},{'revision':'21ada136fb2dce8fe83adef6b0a5b480','url':'/static/img/logos/services/traefik.svg'},{'revision':'6a4543f55f5e77426d62ea8a70b8d4b3','url':'/static/img/logos/services/twilio.svg'},{'revision':'5bbb626cf4089b75bca96b79a902ea3c','url':'/static/img/logos/services/unbound.svg'},{'revision':'fb38f4938299ffc15a7f2f7d03c0b892','url':'/static/img/logos/services/uwsgi.svg'},{'revision':'b4ed2bd8f11af926ff3cb36c09b4c685','url':'/static/img/logos/services/varnish.svg'},{'revision':'808ea0cb2c5ca2c326e01db195886a3b','url':'/static/img/logos/services/veritas.svg'},{'revision':'6b5671ca02ac46b24a4855c213a9aa8b','url':'/static/img/logos/services/xen.svg'},{'revision':'2979340c1e70ef3704e49b02636adb38','url':'/static/img/mail/isotype.png'},{'revision':'fe6f76b747c61fa79f928c7f6065b2d6','url':'/static/img/mail/isotype.svg'},{'revision':'b3b7f9062d7a7e513bd5b2fc2b70b6ca','url':'/static/img/mail/logotype.png'},{'revision':'3f248bee4fd9e28b502a9a7b5bbb6a67','url':'/static/img/mail/logotype.svg'},{'revision':'e29b616a92eedb81e384399aff80c4f0','url':'/static/img/no-filter-results.png'},{'revision':'7153f80147c2569abe9ab1c0a8eb1662','url':'/static/img/no-nodes-room.svg'},{'revision':'6e19f3a1d042f942197670d18981ee75','url':'/static/img/rack.png'},{'revision':'7ec80a5bbf8954caa7923824f2d328f9','url':'/static/site/pages/holding-page-503/holding-page-503.css'},{'revision':'7989e3f7e500355800fc92b4d52d8987','url':'/static/site/pages/holding-page-503/holding-page-503.svg'},{'revision':'18209f4fb770a5449a944bdfc04eb1cb','url':'/static/site/pages/holding-page-503/index.html'},{'revision':'2e0c62f8ec8a99a9c75c3097f3090b9a','url':'/static/site/pages/holding-page-503/multiple-logos-group.svg'},{'revision':'c447e6faaa6d064c23f19305e614dd6c','url':'/static/site/pages/holding-page-503/netdata-logo-white.svg'},{'revision':'348e5a20b0cee6622c9f2219ff05a19c','url':'/static/site/pages/holding-page-503/reset.svg'},{'revision':'2dc864bf27446c99badebaee5832aeae','url':'/static/splash.css'}]),function(t){const e=nt();x(new ot(e,t))}(vt)}()}(); \ No newline at end of file
+!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},e=(new Error).stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="1ba6ec11-c7cb-417f-8603-a40b998c5ea1",t._sentryDebugIdIdentifier="sentry-dbid-1ba6ec11-c7cb-417f-8603-a40b998c5ea1")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"1f9bd6d85714735ca8bbf884fbe65fc5566ec047"},function(){"use strict";var t={9662:function(t,e,n){var r=n(614),o=n(6330),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a function")}},9483:function(t,e,n){var r=n(4411),o=n(6330),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a constructor")}},6077:function(t,e,n){var r=n(614),o=String,i=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw i("Can't set "+o(t)+" as a prototype")}},1223:function(t,e,n){var r=n(5112),o=n(30),i=n(3070).f,a=r("unscopables"),s=Array.prototype;void 0==s[a]&&i(s,a,{configurable:!0,value:o(null)}),t.exports=function(t){s[a][t]=!0}},5787:function(t,e,n){var r=n(7976),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw o("Incorrect invocation")}},9670:function(t,e,n){var r=n(111),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not an object")}},1318:function(t,e,n){var r=n(5656),o=n(1400),i=n(6244),a=function(t){return function(e,n,a){var s,c=r(e),u=i(c),f=o(a,u);if(t&&n!=n){for(;u>f;)if((s=c[f++])!=s)return!0}else for(;u>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},2092:function(t,e,n){var r=n(9974),o=n(1702),i=n(8361),a=n(7908),s=n(6244),c=n(5417),u=o([].push),f=function(t){var e=1==t,n=2==t,o=3==t,f=4==t,h=6==t,l=7==t,d=5==t||h;return function(p,y,v,g){for(var m,w,b=a(p),x=i(b),_=r(y,v),S=s(x),R=0,E=g||c,T=e?E(p,S):n||l?E(p,0):void 0;S>R;R++)if((d||R in x)&&(w=_(m=x[R],R,b),t))if(e)T[R]=w;else if(w)switch(t){case 3:return!0;case 5:return m;case 6:return R;case 2:u(T,m)}else switch(t){case 4:return!1;case 7:u(T,m)}return h?-1:o||f?f:T}};t.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},1194:function(t,e,n){var r=n(7293),o=n(5112),i=n(7392),a=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},206:function(t,e,n){var r=n(1702);t.exports=r([].slice)},7475:function(t,e,n){var r=n(3157),o=n(4411),i=n(111),a=n(5112)("species"),s=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(o(e)&&(e===s||r(e.prototype))||i(e)&&null===(e=e[a]))&&(e=void 0)),void 0===e?s:e}},5417:function(t,e,n){var r=n(7475);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},1753:function(t,e,n){var r=n(6916),o=n(5005),i=n(8173);t.exports=function(t,e,n,a){try{var s=i(t,"return");if(s)return o("Promise").resolve(r(s,t)).then((function(){e(n)}),(function(t){a(t)}))}catch(c){return a(c)}e(n)}},5348:function(t,e,n){var r=n(6916),o=n(2534),i=n(9670),a=n(30),s=n(8880),c=n(9190),u=n(5112),f=n(9909),h=n(5005),l=n(8173),d=n(6462),p=n(6178),y=n(9212),v=h("Promise"),g=u("toStringTag"),m="AsyncIteratorHelper",w="WrapForValidAsyncIterator",b=f.set,x=function(t){var e=!t,n=f.getterFor(t?w:m),s=function(t){var r=o((function(){return n(t)})),i=r.error,a=r.value;return i||e&&a.done?{exit:!0,value:i?v.reject(a):v.resolve(p(void 0,!0))}:{exit:!1,value:a}};return c(a(d),{next:function(){var t=s(this),e=t.value;if(t.exit)return e;var n=o((function(){return i(e.nextHandler(v))})),r=n.error,a=n.value;return r&&(e.done=!0),r?v.reject(a):v.resolve(a)},return:function(){var e=s(this),n=e.value;if(e.exit)return n;n.done=!0;var a,c,u=n.iterator,f=o((function(){if(n.inner)try{y(n.inner.iterator,"normal")}catch(t){return y(u,"throw",t)}return l(u,"return")}));return a=c=f.value,f.error?v.reject(c):void 0===a?v.resolve(p(void 0,!0)):(c=(f=o((function(){return r(a,u)}))).value,f.error?v.reject(c):t?v.resolve(c):v.resolve(c).then((function(t){return i(t),p(void 0,!0)})))}})},_=x(!0),S=x(!1);s(S,g,"Async Iterator Helper"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?w:m,r.nextHandler=t,r.counter=0,r.done=!1,b(this,r)};return n.prototype=e?_:S,n}},3232:function(t,e,n){var r=n(6916),o=n(9662),i=n(9670),a=n(111),s=n(4942),c=n(5348),u=n(6178),f=n(1753),h=c((function(t){var e=this,n=e.iterator,o=e.mapper;return new t((function(s,c){var h=function(t){e.done=!0,c(t)},l=function(t){f(n,h,t,h)};t.resolve(i(r(e.next,n))).then((function(n){try{if(i(n).done)e.done=!0,s(u(void 0,!0));else{var r=n.value;try{var c=o(r,e.counter++),f=function(t){s(u(t,!1))};a(c)?t.resolve(c).then(f,l):f(c)}catch(d){l(d)}}}catch(p){h(p)}}),h)}))}));t.exports=function(t){return i(this),o(t),new h(s(this),{mapper:t})}},6462:function(t,e,n){var r,o,i=n(7854),a=n(5465),s=n(614),c=n(30),u=n(9518),f=n(8052),h=n(5112),l=n(1913),d="USE_FUNCTION_CONSTRUCTOR",p=h("asyncIterator"),y=i.AsyncIterator,v=a.AsyncIteratorPrototype;if(v)r=v;else if(s(y))r=y.prototype;else if(a[d]||i[d])try{o=u(u(u(Function("return async function*(){}()")()))),u(o)===Object.prototype&&(r=o)}catch(g){}r?l&&(r=c(r)):r={},s(r[p])||f(r,p,(function(){return this})),t.exports=r},3411:function(t,e,n){var r=n(9670),o=n(9212);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(a){o(t,"throw",a)}}},7072:function(t,e,n){var r=n(5112)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[r]=function(){return this},Array.from(a,(function(){throw 2}))}catch(s){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(s){}return n}},4326:function(t,e,n){var r=n(1702),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},648:function(t,e,n){var r=n(1694),o=n(614),i=n(4326),a=n(5112)("toStringTag"),s=Object,c="Arguments"==i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=s(t),a))?n:c?i(e):"Object"==(r=i(e))&&o(e.callee)?"Arguments":r}},9920:function(t,e,n){var r=n(2597),o=n(3887),i=n(1236),a=n(3070);t.exports=function(t,e,n){for(var s=o(e),c=a.f,u=i.f,f=0;f<s.length;f++){var h=s[f];r(t,h)||n&&r(n,h)||c(t,h,u(e,h))}}},4964:function(t,e,n){var r=n(5112)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(o){}}return!1}},8544:function(t,e,n){var r=n(7293);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},6178:function(t){t.exports=function(t,e){return{value:t,done:e}}},8880:function(t,e,n){var r=n(9781),o=n(3070),i=n(9114);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9114:function(t){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},7045:function(t,e,n){var r=n(6339),o=n(3070);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),o.f(t,e,n)}},8052:function(t,e,n){var r=n(614),o=n(3070),i=n(6339),a=n(3072);t.exports=function(t,e,n,s){s||(s={});var c=s.enumerable,u=void 0!==s.name?s.name:e;if(r(n)&&i(n,u,s),s.global)c?t[e]=n:a(e,n);else{try{s.unsafe?t[e]&&(c=!0):delete t[e]}catch(f){}c?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},9190:function(t,e,n){var r=n(8052);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},3072:function(t,e,n){var r=n(7854),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},9781:function(t,e,n){var r=n(7293);t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},4154:function(t){var e="object"==typeof document&&document.all,n="undefined"==typeof e&&void 0!==e;t.exports={all:e,IS_HTMLDDA:n}},317:function(t,e,n){var r=n(7854),o=n(111),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},8324:function(t){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},8509:function(t,e,n){var r=n(317)("span").classList,o=r&&r.constructor&&r.constructor.prototype;t.exports=o===Object.prototype?void 0:o},7871:function(t,e,n){var r=n(3823),o=n(5268);t.exports=!r&&!o&&"object"==typeof window&&"object"==typeof document},3823:function(t){t.exports="object"==typeof Deno&&Deno&&"object"==typeof Deno.version},1528:function(t,e,n){var r=n(8113);t.exports=/ipad|iphone|ipod/i.test(r)&&"undefined"!=typeof Pebble},6833:function(t,e,n){var r=n(8113);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},5268:function(t,e,n){var r=n(4326);t.exports="undefined"!=typeof process&&"process"==r(process)},1036:function(t,e,n){var r=n(8113);t.exports=/web0s(?!.*chrome)/i.test(r)},8113:function(t){t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},7392:function(t,e,n){var r,o,i=n(7854),a=n(8113),s=i.process,c=i.Deno,u=s&&s.versions||c&&c.version,f=u&&u.v8;f&&(o=(r=f.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},748:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},2109:function(t,e,n){var r=n(7854),o=n(1236).f,i=n(8880),a=n(8052),s=n(3072),c=n(9920),u=n(4705);t.exports=function(t,e){var n,f,h,l,d,p=t.target,y=t.global,v=t.stat;if(n=y?r:v?r[p]||s(p,{}):(r[p]||{}).prototype)for(f in e){if(l=e[f],h=t.dontCallGetSet?(d=o(n,f))&&d.value:n[f],!u(y?f:p+(v?".":"#")+f,t.forced)&&void 0!==h){if(typeof l==typeof h)continue;c(l,h)}(t.sham||h&&h.sham)&&i(l,"sham",!0),a(n,f,l,t)}}},7293:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},2104:function(t,e,n){var r=n(4374),o=Function.prototype,i=o.apply,a=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},9974:function(t,e,n){var r=n(1470),o=n(9662),i=n(4374),a=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?a(t,e):function(){return t.apply(e,arguments)}}},4374:function(t,e,n){var r=n(7293);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},6916:function(t,e,n){var r=n(4374),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6530:function(t,e,n){var r=n(9781),o=n(2597),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),c=s&&"something"===function(){}.name,u=s&&(!r||r&&a(i,"name").configurable);t.exports={EXISTS:s,PROPER:c,CONFIGURABLE:u}},5668:function(t,e,n){var r=n(1702),o=n(9662);t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},1470:function(t,e,n){var r=n(4326),o=n(1702);t.exports=function(t){if("Function"===r(t))return o(t)}},1702:function(t,e,n){var r=n(4374),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);t.exports=r?a:function(t){return function(){return i.apply(t,arguments)}}},5005:function(t,e,n){var r=n(7854),o=n(614);t.exports=function(t,e){return arguments.length<2?(n=r[t],o(n)?n:void 0):r[t]&&r[t][e];var n}},4942:function(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},1246:function(t,e,n){var r=n(648),o=n(8173),i=n(8554),a=n(7497),s=n(5112)("iterator");t.exports=function(t){if(!i(t))return o(t,s)||o(t,"@@iterator")||a[r(t)]}},4121:function(t,e,n){var r=n(6916),o=n(9662),i=n(9670),a=n(6330),s=n(1246),c=TypeError;t.exports=function(t,e){var n=arguments.length<2?s(t):e;if(o(n))return i(r(n,t));throw c(a(t)+" is not iterable")}},8044:function(t,e,n){var r=n(1702),o=n(3157),i=n(614),a=n(4326),s=n(1340),c=r([].push);t.exports=function(t){if(i(t))return t;if(o(t)){for(var e=t.length,n=[],r=0;r<e;r++){var u=t[r];"string"==typeof u?c(n,u):"number"!=typeof u&&"Number"!=a(u)&&"String"!=a(u)||c(n,s(u))}var f=n.length,h=!0;return function(t,e){if(h)return h=!1,e;if(o(this))return e;for(var r=0;r<f;r++)if(n[r]===t)return e}}}},8173:function(t,e,n){var r=n(9662),o=n(8554);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},7854:function(t,e,n){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||this||Function("return this")()},2597:function(t,e,n){var r=n(1702),o=n(7908),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},3501:function(t){t.exports={}},842:function(t){t.exports=function(t,e){try{1==arguments.length?console.error(t):console.error(t,e)}catch(n){}}},490:function(t,e,n){var r=n(5005);t.exports=r("document","documentElement")},4664:function(t,e,n){var r=n(9781),o=n(7293),i=n(317);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},8361:function(t,e,n){var r=n(1702),o=n(7293),i=n(4326),a=Object,s=r("".split);t.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?s(t,""):a(t)}:a},2788:function(t,e,n){var r=n(1702),o=n(614),i=n(5465),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},9909:function(t,e,n){var r,o,i,a=n(4811),s=n(7854),c=n(111),u=n(8880),f=n(2597),h=n(5465),l=n(6200),d=n(3501),p="Object already initialized",y=s.TypeError,v=s.WeakMap;if(a||h.state){var g=h.state||(h.state=new v);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw y(p);return e.facade=t,g.set(t,e),e},o=function(t){return g.get(t)||{}},i=function(t){return g.has(t)}}else{var m=l("state");d[m]=!0,r=function(t,e){if(f(t,m))throw y(p);return e.facade=t,u(t,m,e),e},o=function(t){return f(t,m)?t[m]:{}},i=function(t){return f(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw y("Incompatible receiver, "+t+" required");return n}}}},7659:function(t,e,n){var r=n(5112),o=n(7497),i=r("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},3157:function(t,e,n){var r=n(4326);t.exports=Array.isArray||function(t){return"Array"==r(t)}},614:function(t,e,n){var r=n(4154),o=r.all;t.exports=r.IS_HTMLDDA?function(t){return"function"==typeof t||t===o}:function(t){return"function"==typeof t}},4411:function(t,e,n){var r=n(1702),o=n(7293),i=n(614),a=n(648),s=n(5005),c=n(2788),u=function(){},f=[],h=s("Reflect","construct"),l=/^\s*(?:class|function)\b/,d=r(l.exec),p=!l.exec(u),y=function(t){if(!i(t))return!1;try{return h(u,f,t),!0}catch(e){return!1}},v=function(t){if(!i(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!d(l,c(t))}catch(e){return!0}};v.sham=!0,t.exports=!h||o((function(){var t;return y(y.call)||!y(Object)||!y((function(){t=!0}))||t}))?v:y},4705:function(t,e,n){var r=n(7293),o=n(614),i=/#|\.prototype\./,a=function(t,e){var n=c[s(t)];return n==f||n!=u&&(o(e)?r(e):!!e)},s=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},c=a.data={},u=a.NATIVE="N",f=a.POLYFILL="P";t.exports=a},8554:function(t){t.exports=function(t){return null===t||void 0===t}},111:function(t,e,n){var r=n(614),o=n(4154),i=o.all;t.exports=o.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:r(t)||t===i}:function(t){return"object"==typeof t?null!==t:r(t)}},1913:function(t){t.exports=!1},7850:function(t,e,n){var r=n(111),o=n(4326),i=n(5112)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},2190:function(t,e,n){var r=n(5005),o=n(614),i=n(7976),a=n(3307),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,s(t))}},408:function(t,e,n){var r=n(9974),o=n(6916),i=n(9670),a=n(6330),s=n(7659),c=n(6244),u=n(7976),f=n(4121),h=n(1246),l=n(9212),d=TypeError,p=function(t,e){this.stopped=t,this.result=e},y=p.prototype;t.exports=function(t,e,n){var v,g,m,w,b,x,_,S=n&&n.that,R=!(!n||!n.AS_ENTRIES),E=!(!n||!n.IS_RECORD),T=!(!n||!n.IS_ITERATOR),q=!(!n||!n.INTERRUPTED),O=r(e,S),C=function(t){return v&&l(v,"normal",t),new p(!0,t)},D=function(t){return R?(i(t),q?O(t[0],t[1],C):O(t[0],t[1])):q?O(t,C):O(t)};if(E)v=t.iterator;else if(T)v=t;else{if(!(g=h(t)))throw d(a(t)+" is not iterable");if(s(g)){for(m=0,w=c(t);w>m;m++)if((b=D(t[m]))&&u(y,b))return b;return new p(!1)}v=f(t,g)}for(x=E?t.next:v.next;!(_=o(x,v)).done;){try{b=D(_.value)}catch(I){l(v,"throw",I)}if("object"==typeof b&&b&&u(y,b))return b}return new p(!1)}},9212:function(t,e,n){var r=n(6916),o=n(9670),i=n(8173);t.exports=function(t,e,n){var a,s;o(t);try{if(!(a=i(t,"return"))){if("throw"===e)throw n;return n}a=r(a,t)}catch(c){s=!0,a=c}if("throw"===e)throw n;if(s)throw a;return o(a),n}},3061:function(t,e,n){var r=n(3383).IteratorPrototype,o=n(30),i=n(9114),a=n(8003),s=n(7497),c=function(){return this};t.exports=function(t,e,n,u){var f=e+" Iterator";return t.prototype=o(r,{next:i(+!u,n)}),a(t,f,!1,!0),s[f]=c,t}},4956:function(t,e,n){var r=n(6916),o=n(30),i=n(8880),a=n(9190),s=n(5112),c=n(9909),u=n(8173),f=n(3383).IteratorPrototype,h=n(6178),l=n(9212),d=s("toStringTag"),p="IteratorHelper",y="WrapForValidIterator",v=c.set,g=function(t){var e=c.getterFor(t?y:p);return a(o(f),{next:function(){var n=e(this);if(t)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return h(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=e(this),o=n.iterator;if(n.done=!0,t){var i=u(o,"return");return i?r(i,o):h(void 0,!0)}if(n.inner)try{l(n.inner.iterator,"normal")}catch(a){return l(o,"throw",a)}return l(o,"normal"),h(void 0,!0)}})},m=g(!0),w=g(!1);i(w,d,"Iterator Helper"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?y:p,r.nextHandler=t,r.counter=0,r.done=!1,v(this,r)};return n.prototype=e?m:w,n}},1656:function(t,e,n){var r=n(2109),o=n(6916),i=n(1913),a=n(6530),s=n(614),c=n(3061),u=n(9518),f=n(7674),h=n(8003),l=n(8880),d=n(8052),p=n(5112),y=n(7497),v=n(3383),g=a.PROPER,m=a.CONFIGURABLE,w=v.IteratorPrototype,b=v.BUGGY_SAFARI_ITERATORS,x=p("iterator"),_="keys",S="values",R="entries",E=function(){return this};t.exports=function(t,e,n,a,p,v,T){c(n,e,a);var q,O,C,D=function(t){if(t===p&&k)return k;if(!b&&t in L)return L[t];switch(t){case _:case S:case R:return function(){return new n(this,t)}}return function(){return new n(this)}},I=e+" Iterator",j=!1,L=t.prototype,P=L[x]||L["@@iterator"]||p&&L[p],k=!b&&P||D(p),N="Array"==e&&L.entries||P;if(N&&(q=u(N.call(new t)))!==Object.prototype&&q.next&&(i||u(q)===w||(f?f(q,w):s(q[x])||d(q,x,E)),h(q,I,!0,!0),i&&(y[I]=E)),g&&p==S&&P&&P.name!==S&&(!i&&m?l(L,"name",S):(j=!0,k=function(){return o(P,this)})),p)if(O={values:D(S),keys:v?k:D(_),entries:D(R)},T)for(C in O)(b||j||!(C in L))&&d(L,C,O[C]);else r({target:e,proto:!0,forced:b||j},O);return i&&!T||L[x]===k||d(L,x,k,{name:p}),y[e]=k,O}},487:function(t,e,n){var r=n(6916),o=n(9662),i=n(9670),a=n(4942),s=n(4956),c=n(3411),u=s((function(){var t=this.iterator,e=i(r(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return i(this),o(t),new u(a(this),{mapper:t})}},3383:function(t,e,n){var r,o,i,a=n(7293),s=n(614),c=n(111),u=n(30),f=n(9518),h=n(8052),l=n(5112),d=n(1913),p=l("iterator"),y=!1;[].keys&&("next"in(i=[].keys())?(o=f(f(i)))!==Object.prototype&&(r=o):y=!0),!c(r)||a((function(){var t={};return r[p].call(t)!==t}))?r={}:d&&(r=u(r)),s(r[p])||h(r,p,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:y}},7497:function(t){t.exports={}},6244:function(t,e,n){var r=n(7466);t.exports=function(t){return r(t.length)}},6339:function(t,e,n){var r=n(1702),o=n(7293),i=n(614),a=n(2597),s=n(9781),c=n(6530).CONFIGURABLE,u=n(2788),f=n(9909),h=f.enforce,l=f.get,d=String,p=Object.defineProperty,y=r("".slice),v=r("".replace),g=r([].join),m=s&&!o((function(){return 8!==p((function(){}),"length",{value:8}).length})),w=String(String).split("String"),b=t.exports=function(t,e,n){"Symbol("===y(d(e),0,7)&&(e="["+v(d(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!a(t,"name")||c&&t.name!==e)&&(s?p(t,"name",{value:e,configurable:!0}):t.name=e),m&&n&&a(n,"arity")&&t.length!==n.arity&&p(t,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(o){}var r=h(t);return a(r,"source")||(r.source=g(w,"string"==typeof e?e:"")),t};Function.prototype.toString=b((function(){return i(this)&&l(this).source||u(this)}),"toString")},4758:function(t){var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},5948:function(t,e,n){var r,o,i,a,s,c=n(7854),u=n(9974),f=n(1236).f,h=n(261).set,l=n(8572),d=n(6833),p=n(1528),y=n(1036),v=n(5268),g=c.MutationObserver||c.WebKitMutationObserver,m=c.document,w=c.process,b=c.Promise,x=f(c,"queueMicrotask"),_=x&&x.value;if(!_){var S=new l,R=function(){var t,e;for(v&&(t=w.domain)&&t.exit();e=S.get();)try{e()}catch(n){throw S.head&&r(),n}t&&t.enter()};d||v||y||!g||!m?!p&&b&&b.resolve?((a=b.resolve(void 0)).constructor=b,s=u(a.then,a),r=function(){s(R)}):v?r=function(){w.nextTick(R)}:(h=u(h,c),r=function(){h(R)}):(o=!0,i=m.createTextNode(""),new g(R).observe(i,{characterData:!0}),r=function(){i.data=o=!o}),_=function(t){S.head||r(),S.add(t)}}t.exports=_},8523:function(t,e,n){var r=n(9662),o=TypeError,i=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw o("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new i(t)}},3929:function(t,e,n){var r=n(7850),o=TypeError;t.exports=function(t){if(r(t))throw o("The method doesn't accept regular expressions");return t}},30:function(t,e,n){var r,o=n(9670),i=n(6048),a=n(748),s=n(3501),c=n(490),u=n(317),f=n(6200),h="prototype",l="script",d=f("IE_PROTO"),p=function(){},y=function(t){return"<"+l+">"+t+"</"+l+">"},v=function(t){t.write(y("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}g="undefined"!=typeof document?document.domain&&r?v(r):function(){var t,e=u("iframe"),n="java"+l+":";return e.style.display="none",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(y("document.F=Object")),t.close(),t.F}():v(r);for(var t=a.length;t--;)delete g[h][a[t]];return g()};s[d]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(p[h]=o(t),n=new p,p[h]=null,n[d]=t):n=g(),void 0===e?n:i.f(n,e)}},6048:function(t,e,n){var r=n(9781),o=n(3353),i=n(3070),a=n(9670),s=n(5656),c=n(1956);e.f=r&&!o?Object.defineProperties:function(t,e){a(t);for(var n,r=s(e),o=c(e),u=o.length,f=0;u>f;)i.f(t,n=o[f++],r[n]);return t}},3070:function(t,e,n){var r=n(9781),o=n(4664),i=n(3353),a=n(9670),s=n(4948),c=TypeError,u=Object.defineProperty,f=Object.getOwnPropertyDescriptor,h="enumerable",l="configurable",d="writable";e.f=r?i?function(t,e,n){if(a(t),e=s(e),a(n),"function"===typeof t&&"prototype"===e&&"value"in n&&d in n&&!n[d]){var r=f(t,e);r&&r[d]&&(t[e]=n.value,n={configurable:l in n?n[l]:r[l],enumerable:h in n?n[h]:r[h],writable:!1})}return u(t,e,n)}:u:function(t,e,n){if(a(t),e=s(e),a(n),o)try{return u(t,e,n)}catch(r){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},1236:function(t,e,n){var r=n(9781),o=n(6916),i=n(5296),a=n(9114),s=n(5656),c=n(4948),u=n(2597),f=n(4664),h=Object.getOwnPropertyDescriptor;e.f=r?h:function(t,e){if(t=s(t),e=c(e),f)try{return h(t,e)}catch(n){}if(u(t,e))return a(!o(i.f,t,e),t[e])}},8006:function(t,e,n){var r=n(6324),o=n(748).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},5181:function(t,e){e.f=Object.getOwnPropertySymbols},9518:function(t,e,n){var r=n(2597),o=n(614),i=n(7908),a=n(6200),s=n(8544),c=a("IE_PROTO"),u=Object,f=u.prototype;t.exports=s?u.getPrototypeOf:function(t){var e=i(t);if(r(e,c))return e[c];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof u?f:null}},7976:function(t,e,n){var r=n(1702);t.exports=r({}.isPrototypeOf)},6324:function(t,e,n){var r=n(1702),o=n(2597),i=n(5656),a=n(1318).indexOf,s=n(3501),c=r([].push);t.exports=function(t,e){var n,r=i(t),u=0,f=[];for(n in r)!o(s,n)&&o(r,n)&&c(f,n);for(;e.length>u;)o(r,n=e[u++])&&(~a(f,n)||c(f,n));return f}},1956:function(t,e,n){var r=n(6324),o=n(748);t.exports=Object.keys||function(t){return r(t,o)}},5296:function(t,e){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},7674:function(t,e,n){var r=n(5668),o=n(9670),i=n(6077);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=r(Object.prototype,"__proto__","set"))(n,[]),e=n instanceof Array}catch(a){}return function(n,r){return o(n),i(r),e?t(n,r):n.__proto__=r,n}}():void 0)},288:function(t,e,n){var r=n(1694),o=n(648);t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},2140:function(t,e,n){var r=n(6916),o=n(614),i=n(111),a=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&o(n=t.toString)&&!i(s=r(n,t)))return s;if(o(n=t.valueOf)&&!i(s=r(n,t)))return s;if("string"!==e&&o(n=t.toString)&&!i(s=r(n,t)))return s;throw a("Can't convert object to primitive value")}},3887:function(t,e,n){var r=n(5005),o=n(1702),i=n(8006),a=n(5181),s=n(9670),c=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(s(t)),n=a.f;return n?c(e,n(t)):e}},2534:function(t){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},3702:function(t,e,n){var r=n(7854),o=n(2492),i=n(614),a=n(4705),s=n(2788),c=n(5112),u=n(7871),f=n(3823),h=n(1913),l=n(7392),d=o&&o.prototype,p=c("species"),y=!1,v=i(r.PromiseRejectionEvent),g=a("Promise",(function(){var t=s(o),e=t!==String(o);if(!e&&66===l)return!0;if(h&&(!d.catch||!d.finally))return!0;if(!l||l<51||!/native code/.test(t)){var n=new o((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))};if((n.constructor={})[p]=r,!(y=n.then((function(){}))instanceof r))return!0}return!e&&(u||f)&&!v}));t.exports={CONSTRUCTOR:g,REJECTION_EVENT:v,SUBCLASSING:y}},2492:function(t,e,n){var r=n(7854);t.exports=r.Promise},9478:function(t,e,n){var r=n(9670),o=n(111),i=n(8523);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},612:function(t,e,n){var r=n(2492),o=n(7072),i=n(3702).CONSTRUCTOR;t.exports=i||!o((function(t){r.all(t).then(void 0,(function(){}))}))},8572:function(t){var e=function(){this.head=null,this.tail=null};e.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}},t.exports=e},4488:function(t,e,n){var r=n(8554),o=TypeError;t.exports=function(t){if(r(t))throw o("Can't call method on "+t);return t}},6340:function(t,e,n){var r=n(5005),o=n(7045),i=n(5112),a=n(9781),s=i("species");t.exports=function(t){var e=r(t);a&&e&&!e[s]&&o(e,s,{configurable:!0,get:function(){return this}})}},8003:function(t,e,n){var r=n(3070).f,o=n(2597),i=n(5112)("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!o(t,i)&&r(t,i,{configurable:!0,value:e})}},6200:function(t,e,n){var r=n(2309),o=n(9711),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},5465:function(t,e,n){var r=n(7854),o=n(3072),i="__core-js_shared__",a=r[i]||o(i,{});t.exports=a},2309:function(t,e,n){var r=n(1913),o=n(5465);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.32.0",mode:r?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.0/LICENSE",source:"https://github.com/zloirock/core-js"})},6707:function(t,e,n){var r=n(9670),o=n(9483),i=n(8554),a=n(5112)("species");t.exports=function(t,e){var n,s=r(t).constructor;return void 0===s||i(n=r(s)[a])?e:o(n)}},8710:function(t,e,n){var r=n(1702),o=n(9303),i=n(1340),a=n(4488),s=r("".charAt),c=r("".charCodeAt),u=r("".slice),f=function(t){return function(e,n){var r,f,h=i(a(e)),l=o(n),d=h.length;return l<0||l>=d?t?"":void 0:(r=c(h,l))<55296||r>56319||l+1===d||(f=c(h,l+1))<56320||f>57343?t?s(h,l):r:t?u(h,l,l+2):f-56320+(r-55296<<10)+65536}};t.exports={codeAt:f(!1),charAt:f(!0)}},6293:function(t,e,n){var r=n(7392),o=n(7293),i=n(7854).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol();return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},261:function(t,e,n){var r,o,i,a,s=n(7854),c=n(2104),u=n(9974),f=n(614),h=n(2597),l=n(7293),d=n(490),p=n(206),y=n(317),v=n(8053),g=n(6833),m=n(5268),w=s.setImmediate,b=s.clearImmediate,x=s.process,_=s.Dispatch,S=s.Function,R=s.MessageChannel,E=s.String,T=0,q={},O="onreadystatechange";l((function(){r=s.location}));var C=function(t){if(h(q,t)){var e=q[t];delete q[t],e()}},D=function(t){return function(){C(t)}},I=function(t){C(t.data)},j=function(t){s.postMessage(E(t),r.protocol+"//"+r.host)};w&&b||(w=function(t){v(arguments.length,1);var e=f(t)?t:S(t),n=p(arguments,1);return q[++T]=function(){c(e,void 0,n)},o(T),T},b=function(t){delete q[t]},m?o=function(t){x.nextTick(D(t))}:_&&_.now?o=function(t){_.now(D(t))}:R&&!g?(a=(i=new R).port2,i.port1.onmessage=I,o=u(a.postMessage,a)):s.addEventListener&&f(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!l(j)?(o=j,s.addEventListener("message",I,!1)):o=O in y("script")?function(t){d.appendChild(y("script"))[O]=function(){d.removeChild(this),C(t)}}:function(t){setTimeout(D(t),0)}),t.exports={set:w,clear:b}},1400:function(t,e,n){var r=n(9303),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},5656:function(t,e,n){var r=n(8361),o=n(4488);t.exports=function(t){return r(o(t))}},9303:function(t,e,n){var r=n(4758);t.exports=function(t){var e=+t;return e!==e||0===e?0:r(e)}},7466:function(t,e,n){var r=n(9303),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},7908:function(t,e,n){var r=n(4488),o=Object;t.exports=function(t){return o(r(t))}},7593:function(t,e,n){var r=n(6916),o=n(111),i=n(2190),a=n(8173),s=n(2140),c=n(5112),u=TypeError,f=c("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,c=a(t,f);if(c){if(void 0===e&&(e="default"),n=r(c,t,e),!o(n)||i(n))return n;throw u("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},4948:function(t,e,n){var r=n(7593),o=n(2190);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},1694:function(t,e,n){var r={};r[n(5112)("toStringTag")]="z",t.exports="[object z]"===String(r)},1340:function(t,e,n){var r=n(648),o=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return o(t)}},6330:function(t){var e=String;t.exports=function(t){try{return e(t)}catch(n){return"Object"}}},9711:function(t,e,n){var r=n(1702),o=0,i=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},3307:function(t,e,n){var r=n(6293);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},3353:function(t,e,n){var r=n(9781),o=n(7293);t.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},8053:function(t){var e=TypeError;t.exports=function(t,n){if(t<n)throw e("Not enough arguments");return t}},4811:function(t,e,n){var r=n(7854),o=n(614),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},5112:function(t,e,n){var r=n(7854),o=n(2309),i=n(2597),a=n(9711),s=n(6293),c=n(3307),u=r.Symbol,f=o("wks"),h=c?u.for||u:u&&u.withoutSetter||a;t.exports=function(t){return i(f,t)||(f[t]=s&&i(u,t)?u[t]:h("Symbol."+t)),f[t]}},7327:function(t,e,n){var r=n(2109),o=n(2092).filter;r({target:"Array",proto:!0,forced:!n(1194)("filter")},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},6992:function(t,e,n){var r=n(5656),o=n(1223),i=n(7497),a=n(9909),s=n(3070).f,c=n(1656),u=n(6178),f=n(1913),h=n(9781),l="Array Iterator",d=a.set,p=a.getterFor(l);t.exports=c(Array,"Array",(function(t,e){d(this,{type:l,target:r(t),index:0,kind:e})}),(function(){var t=p(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,u(void 0,!0)):u("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values");var y=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!f&&h&&"values"!==y.name)try{s(y,"name",{value:"values"})}catch(v){}},1249:function(t,e,n){var r=n(2109),o=n(2092).map;r({target:"Array",proto:!0,forced:!n(1194)("map")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},8862:function(t,e,n){var r=n(2109),o=n(5005),i=n(2104),a=n(6916),s=n(1702),c=n(7293),u=n(614),f=n(2190),h=n(206),l=n(8044),d=n(6293),p=String,y=o("JSON","stringify"),v=s(/./.exec),g=s("".charAt),m=s("".charCodeAt),w=s("".replace),b=s(1..toString),x=/[\uD800-\uDFFF]/g,_=/^[\uD800-\uDBFF]$/,S=/^[\uDC00-\uDFFF]$/,R=!d||c((function(){var t=o("Symbol")();return"[null]"!=y([t])||"{}"!=y({a:t})||"{}"!=y(Object(t))})),E=c((function(){return'"\\udf06\\ud834"'!==y("\udf06\ud834")||'"\\udead"'!==y("\udead")})),T=function(t,e){var n=h(arguments),r=l(e);if(u(r)||void 0!==t&&!f(t))return n[1]=function(t,e){if(u(r)&&(e=a(r,this,p(t),e)),!f(e))return e},i(y,null,n)},q=function(t,e,n){var r=g(n,e-1),o=g(n,e+1);return v(_,t)&&!v(S,o)||v(S,t)&&!v(_,r)?"\\u"+b(m(t,0),16):t};y&&r({target:"JSON",stat:!0,arity:3,forced:R||E},{stringify:function(t,e,n){var r=h(arguments),o=i(R?T:y,null,r);return E&&"string"==typeof o?w(o,x,q):o}})},1539:function(t,e,n){var r=n(1694),o=n(8052),i=n(288);r||o(Object.prototype,"toString",i,{unsafe:!0})},821:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(8523),s=n(2534),c=n(408);r({target:"Promise",stat:!0,forced:n(612)},{all:function(t){var e=this,n=a.f(e),r=n.resolve,u=n.reject,f=s((function(){var n=i(e.resolve),a=[],s=0,f=1;c(t,(function(t){var i=s++,c=!1;f++,o(n,e,t).then((function(t){c||(c=!0,a[i]=t,--f||r(a))}),u)})),--f||r(a)}));return f.error&&u(f.value),n.promise}})},4164:function(t,e,n){var r=n(2109),o=n(1913),i=n(3702).CONSTRUCTOR,a=n(2492),s=n(5005),c=n(614),u=n(8052),f=a&&a.prototype;if(r({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(t){return this.then(void 0,t)}}),!o&&c(a)){var h=s("Promise").prototype.catch;f.catch!==h&&u(f,"catch",h,{unsafe:!0})}},3401:function(t,e,n){var r,o,i,a=n(2109),s=n(1913),c=n(5268),u=n(7854),f=n(6916),h=n(8052),l=n(7674),d=n(8003),p=n(6340),y=n(9662),v=n(614),g=n(111),m=n(5787),w=n(6707),b=n(261).set,x=n(5948),_=n(842),S=n(2534),R=n(8572),E=n(9909),T=n(2492),q=n(3702),O=n(8523),C="Promise",D=q.CONSTRUCTOR,I=q.REJECTION_EVENT,j=q.SUBCLASSING,L=E.getterFor(C),P=E.set,k=T&&T.prototype,N=T,A=k,U=u.TypeError,M=u.document,F=u.process,B=O.f,K=B,W=!!(M&&M.createEvent&&u.dispatchEvent),H="unhandledrejection",G=function(t){var e;return!(!g(t)||!v(e=t.then))&&e},V=function(t,e){var n,r,o,i=e.value,a=1==e.state,s=a?t.ok:t.fail,c=t.resolve,u=t.reject,h=t.domain;try{s?(a||(2===e.rejection&&Y(e),e.rejection=1),!0===s?n=i:(h&&h.enter(),n=s(i),h&&(h.exit(),o=!0)),n===t.promise?u(U("Promise-chain cycle")):(r=G(n))?f(r,n,c,u):c(n)):u(i)}catch(l){h&&!o&&h.exit(),u(l)}},$=function(t,e){t.notified||(t.notified=!0,x((function(){for(var n,r=t.reactions;n=r.get();)V(n,t);t.notified=!1,e&&!t.rejection&&Q(t)})))},z=function(t,e,n){var r,o;W?((r=M.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),u.dispatchEvent(r)):r={promise:e,reason:n},!I&&(o=u["on"+t])?o(r):t===H&&_("Unhandled promise rejection",n)},Q=function(t){f(b,u,(function(){var e,n=t.facade,r=t.value;if(J(t)&&(e=S((function(){c?F.emit("unhandledRejection",r,n):z(H,n,r)})),t.rejection=c||J(t)?2:1,e.error))throw e.value}))},J=function(t){return 1!==t.rejection&&!t.parent},Y=function(t){f(b,u,(function(){var e=t.facade;c?F.emit("rejectionHandled",e):z("rejectionhandled",e,t.value)}))},X=function(t,e,n){return function(r){t(e,r,n)}},Z=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,$(t,!0))},tt=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw U("Promise can't be resolved itself");var r=G(e);r?x((function(){var n={done:!1};try{f(r,e,X(tt,n,t),X(Z,n,t))}catch(o){Z(n,o,t)}})):(t.value=e,t.state=1,$(t,!1))}catch(o){Z({done:!1},o,t)}}};if(D&&(A=(N=function(t){m(this,A),y(t),f(r,this);var e=L(this);try{t(X(tt,e),X(Z,e))}catch(n){Z(e,n)}}).prototype,(r=function(t){P(this,{type:C,done:!1,notified:!1,parent:!1,reactions:new R,rejection:!1,state:0,value:void 0})}).prototype=h(A,"then",(function(t,e){var n=L(this),r=B(w(this,N));return n.parent=!0,r.ok=!v(t)||t,r.fail=v(e)&&e,r.domain=c?F.domain:void 0,0==n.state?n.reactions.add(r):x((function(){V(r,n)})),r.promise})),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=X(tt,e),this.reject=X(Z,e)},O.f=B=function(t){return t===N||undefined===t?new o(t):K(t)},!s&&v(T)&&k!==Object.prototype)){i=k.then,j||h(k,"then",(function(t,e){var n=this;return new N((function(t,e){f(i,n,t,e)})).then(t,e)}),{unsafe:!0});try{delete k.constructor}catch(et){}l&&l(k,A)}a({global:!0,constructor:!0,wrap:!0,forced:D},{Promise:N}),d(N,C,!1,!0),p(C)},8674:function(t,e,n){n(3401),n(821),n(4164),n(6027),n(683),n(6294)},6027:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(8523),s=n(2534),c=n(408);r({target:"Promise",stat:!0,forced:n(612)},{race:function(t){var e=this,n=a.f(e),r=n.reject,u=s((function(){var a=i(e.resolve);c(t,(function(t){o(a,e,t).then(n.resolve,r)}))}));return u.error&&r(u.value),n.promise}})},683:function(t,e,n){var r=n(2109),o=n(6916),i=n(8523);r({target:"Promise",stat:!0,forced:n(3702).CONSTRUCTOR},{reject:function(t){var e=i.f(this);return o(e.reject,void 0,t),e.promise}})},6294:function(t,e,n){var r=n(2109),o=n(5005),i=n(1913),a=n(2492),s=n(3702).CONSTRUCTOR,c=n(9478),u=o("Promise"),f=i&&!s;r({target:"Promise",stat:!0,forced:i||s},{resolve:function(t){return c(f&&this===u?a:this,t)}})},7852:function(t,e,n){var r=n(2109),o=n(1470),i=n(1236).f,a=n(7466),s=n(1340),c=n(3929),u=n(4488),f=n(4964),h=n(1913),l=o("".endsWith),d=o("".slice),p=Math.min,y=f("endsWith");r({target:"String",proto:!0,forced:!(!h&&!y&&!!function(){var t=i(String.prototype,"endsWith");return t&&!t.writable}())&&!y},{endsWith:function(t){var e=s(u(this));c(t);var n=arguments.length>1?arguments[1]:void 0,r=e.length,o=void 0===n?r:p(a(n),r),i=s(t);return l?l(e,i,o):d(e,o-i.length,o)===i}})},8783:function(t,e,n){var r=n(8710).charAt,o=n(1340),i=n(9909),a=n(1656),s=n(6178),c="String Iterator",u=i.set,f=i.getterFor(c);a(String,"String",(function(t){u(this,{type:c,string:o(t),index:0})}),(function(){var t,e=f(this),n=e.string,o=e.index;return o>=n.length?s(void 0,!0):(t=r(n,o),e.index+=t.length,s(t,!1))}))},8449:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(9670),s=n(111),c=n(4942),u=n(5348),f=n(6178),h=n(1753),l=n(1913),d=u((function(t){var e=this,n=e.iterator,r=e.predicate;return new t((function(i,c){var u=function(t){e.done=!0,c(t)},l=function(t){h(n,u,t,u)},d=function(){try{t.resolve(a(o(e.next,n))).then((function(n){try{if(a(n).done)e.done=!0,i(f(void 0,!0));else{var o=n.value;try{var c=r(o,e.counter++),h=function(t){t?i(f(o,!1)):d()};s(c)?t.resolve(c).then(h,l):h(c)}catch(p){l(p)}}}catch(y){u(y)}}),u)}catch(c){u(c)}};d()}))}));r({target:"AsyncIterator",proto:!0,real:!0,forced:l},{filter:function(t){return a(this),i(t),new d(c(this),{predicate:t})}})},7640:function(t,e,n){var r=n(2109),o=n(3232);r({target:"AsyncIterator",proto:!0,real:!0,forced:n(1913)},{map:o})},2490:function(t,e,n){var r=n(2109),o=n(7854),i=n(5787),a=n(614),s=n(9518),c=n(8880),u=n(7293),f=n(2597),h=n(5112),l=n(3383).IteratorPrototype,d=n(1913),p=h("toStringTag"),y=TypeError,v=o.Iterator,g=d||!a(v)||v.prototype!==l||!u((function(){v({})})),m=function(){if(i(this,l),s(this)===l)throw y("Abstract class Iterator not directly constructable")};f(l,p)||c(l,p,"Iterator"),!g&&f(l,"constructor")&&l.constructor!==Object||c(l,"constructor",m),m.prototype=l,r({global:!0,constructor:!0,forced:g},{Iterator:m})},9849:function(t,e,n){var r=n(2109),o=n(6916),i=n(9662),a=n(9670),s=n(4942),c=n(4956),u=n(3411),f=n(1913),h=c((function(){for(var t,e,n=this.iterator,r=this.predicate,i=this.next;;){if(t=a(o(i,n)),this.done=!!t.done)return;if(e=t.value,u(n,r,[e,this.counter++],!0))return e}}));r({target:"Iterator",proto:!0,real:!0,forced:f},{filter:function(t){return a(this),i(t),new h(s(this),{predicate:t})}})},9924:function(t,e,n){var r=n(2109),o=n(487);r({target:"Iterator",proto:!0,real:!0,forced:n(1913)},{map:o})},3948:function(t,e,n){var r=n(7854),o=n(8324),i=n(8509),a=n(6992),s=n(8880),c=n(5112),u=c("iterator"),f=c("toStringTag"),h=a.values,l=function(t,e){if(t){if(t[u]!==h)try{s(t,u,h)}catch(r){t[u]=h}if(t[f]||s(t,f,e),o[e])for(var n in a)if(t[n]!==a[n])try{s(t,n,a[n])}catch(r){t[n]=a[n]}}};for(var d in o)l(r[d]&&r[d].prototype,d);l(i,"DOMTokenList")},6272:function(){try{self["workbox:background-sync:7.0.0"]&&_()}catch(t){}},4895:function(){try{self["workbox:cacheable-response:7.0.0"]&&_()}catch(t){}},913:function(){try{self["workbox:core:7.0.0"]&&_()}catch(t){}},6550:function(){try{self["workbox:expiration:7.0.0"]&&_()}catch(t){}},7977:function(){try{self["workbox:precaching:7.0.0"]&&_()}catch(t){}},9144:function(){try{self["workbox:recipes:7.0.0"]&&_()}catch(t){}},9080:function(){try{self["workbox:routing:7.0.0"]&&_()}catch(t){}},6873:function(){try{self["workbox:strategies:7.0.0"]&&_()}catch(t){}}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r].call(i.exports,i,i.exports,n),i.exports}n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}(),function(){n(7327),n(1539),n(8449),n(2490),n(9849),n(7852),n(6992),n(8674),n(8783),n(3948),n(1249),n(7640),n(9924),n(8862),n(913);const t=(t,...e)=>{let n=t;return e.length>0&&(n+=` :: ${JSON.stringify(e)}`),n};class e extends Error{constructor(e,n){super(t(e,n)),this.name=e,this.details=n}}const r=new Set;const o={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!==typeof registration?registration.scope:""},i=t=>[o.prefix,t,o.suffix].filter((t=>t&&t.length>0)).join("-"),a=t=>t||i(o.precache),s=t=>t||i(o.runtime);function c(t,e){const n=new URL(t);for(const r of e)n.searchParams.delete(r);return n.href}let u;function f(t){t.then((()=>{}))}class h{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const l=t=>new URL(String(t),location.href).href.replace(new RegExp(`^${location.origin}`),"");function d(t,e){const n=e();return t.waitUntil(n),n}async function p(t,n){let r=null;if(t.url){r=new URL(t.url).origin}if(r!==self.location.origin)throw new e("cross-origin-copy-response",{origin:r});const o=t.clone(),i={headers:new Headers(o.headers),status:o.status,statusText:o.statusText},a=n?n(i):i,s=function(){if(void 0===u){const e=new Response("");if("body"in e)try{new Response(e.body),u=!0}catch(t){u=!1}u=!1}return u}()?o.body:await o.blob();return new Response(s,a)}n(9080);const y=t=>t&&"object"===typeof t?t:{handle:t};class v{constructor(t,e,n="GET"){this.handler=y(e),this.match=t,this.method=n}setCatchHandler(t){this.catchHandler=y(t)}}class g extends v{constructor(t,e,n){super((({url:e})=>{const n=t.exec(e.href);if(n&&(e.origin===location.origin||0===n.index))return n.slice(1)}),e,n)}}class m{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,n=this.handleRequest({request:e,event:t});n&&t.respondWith(n)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data;0;const n=Promise.all(e.urlsToCache.map((e=>{"string"===typeof e&&(e=[e]);const n=new Request(...e);return this.handleRequest({request:n,event:t})})));t.waitUntil(n),t.ports&&t.ports[0]&&n.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const n=new URL(t.url,location.href);if(!n.protocol.startsWith("http"))return void 0;const r=n.origin===location.origin,{params:o,route:i}=this.findMatchingRoute({event:e,request:t,sameOrigin:r,url:n});let a=i&&i.handler;const s=t.method;if(!a&&this._defaultHandlerMap.has(s)&&(a=this._defaultHandlerMap.get(s)),!a)return void 0;let c;try{c=a.handle({url:n,request:t,event:e,params:o})}catch(f){c=Promise.reject(f)}const u=i&&i.catchHandler;return c instanceof Promise&&(this._catchHandler||u)&&(c=c.catch((async r=>{if(u){0;try{return await u.handle({url:n,request:t,event:e,params:o})}catch(i){i instanceof Error&&(r=i)}}if(this._catchHandler)return this._catchHandler.handle({url:n,request:t,event:e});throw r}))),c}findMatchingRoute({url:t,sameOrigin:e,request:n,event:r}){const o=this._routes.get(n.method)||[];for(const i of o){let o;const a=i.match({url:t,sameOrigin:e,request:n,event:r});if(a)return o=a,(Array.isArray(o)&&0===o.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"===typeof a)&&(o=void 0),{route:i,params:o}}return{}}setDefaultHandler(t,e="GET"){this._defaultHandlerMap.set(e,y(t))}setCatchHandler(t){this._catchHandler=y(t)}registerRoute(t){this._routes.has(t.method)||this._routes.set(t.method,[]),this._routes.get(t.method).push(t)}unregisterRoute(t){if(!this._routes.has(t.method))throw new e("unregister-route-but-not-found-with-method",{method:t.method});const n=this._routes.get(t.method).indexOf(t);if(!(n>-1))throw new e("unregister-route-route-not-registered");this._routes.get(t.method).splice(n,1)}}let w;const b=()=>(w||(w=new m,w.addFetchListener(),w.addCacheListener()),w);function x(t,n,r){let o;if("string"===typeof t){const e=new URL(t,location.href);0;o=new v((({url:t})=>t.href===e.href),n,r)}else if(t instanceof RegExp)o=new g(t,n,r);else if("function"===typeof t)o=new v(t,n,r);else{if(!(t instanceof v))throw new e("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return b().registerRoute(o),o}n(6873);const _={cacheWillUpdate:async({response:t})=>200===t.status||0===t.status?t:null};function S(t){return"string"===typeof t?new Request(t):t}class R{constructor(t,e){this._cacheKeys={},Object.assign(this,e),this.event=e.event,this._strategy=t,this._handlerDeferred=new h,this._extendLifetimePromises=[],this._plugins=[...t.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(t){const{event:n}=this;let r=S(t);if("navigate"===r.mode&&n instanceof FetchEvent&&n.preloadResponse){const t=await n.preloadResponse;if(t)return t}const o=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))r=await t({request:r.clone(),event:n})}catch(a){if(a instanceof Error)throw new e("plugin-error-request-will-fetch",{thrownErrorMessage:a.message})}const i=r.clone();try{let t;t=await fetch(r,"navigate"===r.mode?void 0:this._strategy.fetchOptions);for(const e of this.iterateCallbacks("fetchDidSucceed"))t=await e({event:n,request:i,response:t});return t}catch(s){throw o&&await this.runCallbacks("fetchDidFail",{error:s,event:n,originalRequest:o.clone(),request:i.clone()}),s}}async fetchAndCachePut(t){const e=await this.fetch(t),n=e.clone();return this.waitUntil(this.cachePut(t,n)),e}async cacheMatch(t){const e=S(t);let n;const{cacheName:r,matchOptions:o}=this._strategy,i=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},o),{cacheName:r});n=await caches.match(i,a);for(const s of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await s({cacheName:r,matchOptions:o,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(t,n){const o=S(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const a=await this.getCacheKey(o,"write");if(!n)throw new e("cache-put-with-no-response",{url:l(a.url)});const s=await this._ensureResponseSafeToCache(n);if(!s)return!1;const{cacheName:u,matchOptions:f}=this._strategy,h=await self.caches.open(u),d=this.hasCallback("cacheDidUpdate"),p=d?await async function(t,e,n,r){const o=c(e.url,n);if(e.url===o)return t.match(e,r);const i=Object.assign(Object.assign({},r),{ignoreSearch:!0}),a=await t.keys(e,i);for(const s of a)if(o===c(s.url,n))return t.match(s,r)}(h,a.clone(),["__WB_REVISION__"],f):null;try{await h.put(a,d?s.clone():s)}catch(y){if(y instanceof Error)throw"QuotaExceededError"===y.name&&await async function(){for(const t of r)await t()}(),y}for(const e of this.iterateCallbacks("cacheDidUpdate"))await e({cacheName:u,oldResponse:p,newResponse:s.clone(),request:a,event:this.event});return!0}async getCacheKey(t,e){const n=`${t.url} | ${e}`;if(!this._cacheKeys[n]){let r=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))r=S(await t({mode:e,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(t){for(const e of this._strategy.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const n of this.iterateCallbacks(t))await n(e)}*iterateCallbacks(t){for(const e of this._strategy.plugins)if("function"===typeof e[t]){const n=this._pluginStateMap.get(e),r=r=>{const o=Object.assign(Object.assign({},r),{state:n});return e[t](o)};yield r}}waitUntil(t){return this._extendLifetimePromises.push(t),t}async doneWaiting(){let t;for(;t=this._extendLifetimePromises.shift();)await t}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(t){let e=t,n=!1;for(const r of this.iterateCallbacks("cacheWillUpdate"))if(e=await r({request:this.request,response:e,event:this.event})||void 0,n=!0,!e)break;return n||e&&200!==e.status&&(e=void 0),e}}class E{constructor(t={}){this.cacheName=s(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,n="string"===typeof t.request?new Request(t.request):t.request,r="params"in t?t.params:void 0,o=new R(this,{event:e,request:n,params:r}),i=this._getResponse(o,n,e);return[i,this._awaitComplete(i,o,n,e)]}async _getResponse(t,n,r){let o;await t.runCallbacks("handlerWillStart",{event:r,request:n});try{if(o=await this._handle(n,t),!o||"error"===o.type)throw new e("no-response",{url:n.url})}catch(i){if(i instanceof Error)for(const e of t.iterateCallbacks("handlerDidError"))if(o=await e({error:i,event:r,request:n}),o)break;if(!o)throw i}for(const e of t.iterateCallbacks("handlerWillRespond"))o=await e({event:r,request:n,response:o});return o}async _awaitComplete(t,e,n,r){let o,i;try{o=await t}catch(i){}try{await e.runCallbacks("handlerDidRespond",{event:r,request:n,response:o}),await e.doneWaiting()}catch(a){a instanceof Error&&(i=a)}if(await e.runCallbacks("handlerDidComplete",{event:r,request:n,response:o,error:i}),e.destroy(),i)throw i}}n(4895);class T{constructor(t={}){this._statuses=t.statuses,this._headers=t.headers}isResponseCacheable(t){let e=!0;return this._statuses&&(e=this._statuses.includes(t.status)),this._headers&&e&&(e=Object.keys(this._headers).some((e=>t.headers.get(e)===this._headers[e]))),e}}class q{constructor(t){this.cacheWillUpdate=async({response:t})=>this._cacheableResponse.isResponseCacheable(t)?t:null,this._cacheableResponse=new T(t)}}const O=(t,e)=>e.some((e=>t instanceof e));let C,D;const I=new WeakMap,j=new WeakMap,L=new WeakMap,P=new WeakMap,k=new WeakMap;let N={get(t,e,n){if(t instanceof IDBTransaction){if("done"===e)return j.get(t);if("objectStoreNames"===e)return t.objectStoreNames||L.get(t);if("store"===e)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return M(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t}};function A(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(D||(D=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(F(this),e),M(I.get(this))}:function(...e){return M(t.apply(F(this),e))}:function(e,...n){const r=t.call(F(this),e,...n);return L.set(r,e.sort?e.sort():[e]),M(r)}}function U(t){return"function"===typeof t?A(t):(t instanceof IDBTransaction&&function(t){if(j.has(t))return;const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("complete",o),t.removeEventListener("error",i),t.removeEventListener("abort",i)},o=()=>{e(),r()},i=()=>{n(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",o),t.addEventListener("error",i),t.addEventListener("abort",i)}));j.set(t,e)}(t),O(t,C||(C=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,N):t)}function M(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("success",o),t.removeEventListener("error",i)},o=()=>{e(M(t.result)),r()},i=()=>{n(t.error),r()};t.addEventListener("success",o),t.addEventListener("error",i)}));return e.then((e=>{e instanceof IDBCursor&&I.set(e,t)})).catch((()=>{})),k.set(e,t),e}(t);if(P.has(t))return P.get(t);const e=U(t);return e!==t&&(P.set(t,e),k.set(e,t)),e}const F=t=>k.get(t);function B(t,e,{blocked:n,upgrade:r,blocking:o,terminated:i}={}){const a=indexedDB.open(t,e),s=M(a);return r&&a.addEventListener("upgradeneeded",(t=>{r(M(a.result),t.oldVersion,t.newVersion,M(a.transaction),t)})),n&&a.addEventListener("blocked",(t=>n(t.oldVersion,t.newVersion,t))),s.then((t=>{i&&t.addEventListener("close",(()=>i())),o&&t.addEventListener("versionchange",(t=>o(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),s}const K=["get","getKey","getAll","getAllKeys","count"],W=["put","add","delete","clear"],H=new Map;function G(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!==typeof e)return;if(H.get(e))return H.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,o=W.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!K.includes(n))return;const i=async function(t,...e){const i=this.transaction(t,o?"readwrite":"readonly");let a=i.store;return r&&(a=a.index(e.shift())),(await Promise.all([a[n](...e),o&&i.done]))[0]};return H.set(e,i),i}N=(t=>({...t,get:(e,n,r)=>G(e,n)||t.get(e,n,r),has:(e,n)=>!!G(e,n)||t.has(e,n)}))(N);n(6550);const V="cache-entries",$=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class z{constructor(t){this._db=null,this._cacheName=t}_upgradeDb(t){const e=t.createObjectStore(V,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(t){this._upgradeDb(t),this._cacheName&&function(t,{blocked:e}={}){const n=indexedDB.deleteDatabase(t);e&&n.addEventListener("blocked",(t=>e(t.oldVersion,t))),M(n).then((()=>{}))}(this._cacheName)}async setTimestamp(t,e){const n={url:t=$(t),timestamp:e,cacheName:this._cacheName,id:this._getId(t)},r=(await this.getDb()).transaction(V,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(t){const e=await this.getDb(),n=await e.get(V,this._getId(t));return null===n||void 0===n?void 0:n.timestamp}async expireEntries(t,e){const n=await this.getDb();let r=await n.transaction(V).store.index("timestamp").openCursor(null,"prev");const o=[];let i=0;for(;r;){const n=r.value;n.cacheName===this._cacheName&&(t&&n.timestamp<t||e&&i>=e?o.push(r.value):i++),r=await r.continue()}const a=[];for(const s of o)await n.delete(V,s.id),a.push(s.url);return a}_getId(t){return this._cacheName+"|"+$(t)}async getDb(){return this._db||(this._db=await B("workbox-expiration",1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class Q{constructor(t,e={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=e.maxEntries,this._maxAgeSeconds=e.maxAgeSeconds,this._matchOptions=e.matchOptions,this._cacheName=t,this._timestampModel=new z(t)}async expireEntries(){if(this._isRunning)return void(this._rerunRequested=!0);this._isRunning=!0;const t=this._maxAgeSeconds?Date.now()-1e3*this._maxAgeSeconds:0,e=await this._timestampModel.expireEntries(t,this._maxEntries),n=await self.caches.open(this._cacheName);for(const r of e)await n.delete(r,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,f(this.expireEntries()))}async updateTimestamp(t){await this._timestampModel.setTimestamp(t,Date.now())}async isURLExpired(t){if(this._maxAgeSeconds){const e=await this._timestampModel.getTimestamp(t),n=Date.now()-1e3*this._maxAgeSeconds;return void 0===e||e<n}return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}}n(9144);n(7977);function J(t){if(!t)throw new e("add-to-cache-list-unexpected-type",{entry:t});if("string"===typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:n,url:r}=t;if(!r)throw new e("add-to-cache-list-unexpected-type",{entry:t});if(!n){const t=new URL(r,location.href);return{cacheKey:t.href,url:t.href}}const o=new URL(r,location.href),i=new URL(r,location.href);return o.searchParams.set("__WB_REVISION__",n),{cacheKey:o.href,url:i.href}}class Y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:n})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;n?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return n}}}class X{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const n=(null===e||void 0===e?void 0:e.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return n?new Request(n,{headers:t.headers}):t},this._precacheController=t}}class Z extends E{constructor(t={}){t.cacheName=a(t.cacheName),super(t),this._fallbackToNetwork=!1!==t.fallbackToNetwork,this.plugins.push(Z.copyRedirectedCacheableResponsesPlugin)}async _handle(t,e){const n=await e.cacheMatch(t);return n||(e.event&&"install"===e.event.type?await this._handleInstall(t,e):await this._handleFetch(t,e))}async _handleFetch(t,n){let r;const o=n.params||{};if(!this._fallbackToNetwork)throw new e("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{0;const e=o.integrity,i=t.integrity,a=!i||i===e;if(r=await n.fetch(new Request(t,{integrity:"no-cors"!==t.mode?i||e:void 0})),e&&a&&"no-cors"!==t.mode){this._useDefaultCacheabilityPluginIfNeeded();await n.cachePut(t,r.clone());0}}return r}async _handleInstall(t,n){this._useDefaultCacheabilityPluginIfNeeded();const r=await n.fetch(t);if(!await n.cachePut(t,r.clone()))throw new e("bad-precaching-response",{url:t.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let t=null,e=0;for(const[n,r]of this.plugins.entries())r!==Z.copyRedirectedCacheableResponsesPlugin&&(r===Z.defaultPrecacheCacheabilityPlugin&&(t=n),r.cacheWillUpdate&&e++);0===e?this.plugins.push(Z.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}Z.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:t}){return!t||t.status>=400?null:t}},Z.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:t}){return t.redirected?await p(t):t}};class tt{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new Z({cacheName:a(t),plugins:[...e,new X({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(t){this.addToCacheList(t),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(t){const n=[];for(const r of t){"string"===typeof r?n.push(r):r&&void 0===r.revision&&n.push(r.url);const{cacheKey:t,url:o}=J(r),i="string"!==typeof r&&r.revision?"reload":"default";if(this._urlsToCacheKeys.has(o)&&this._urlsToCacheKeys.get(o)!==t)throw new e("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(o),secondEntry:t});if("string"!==typeof r&&r.integrity){if(this._cacheKeysToIntegrities.has(t)&&this._cacheKeysToIntegrities.get(t)!==r.integrity)throw new e("add-to-cache-list-conflicting-integrities",{url:o});this._cacheKeysToIntegrities.set(t,r.integrity)}if(this._urlsToCacheKeys.set(o,t),this._urlsToCacheModes.set(o,i),n.length>0){const t=`Workbox is precaching URLs without revision info: ${n.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,(async()=>{const e=new Y;this.strategy.plugins.push(e);for(const[o,i]of this._urlsToCacheKeys){const e=this._cacheKeysToIntegrities.get(i),n=this._urlsToCacheModes.get(o),r=new Request(o,{integrity:e,cache:n,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:i},request:r,event:t}))}const{updatedURLs:n,notUpdatedURLs:r}=e;return{updatedURLs:n,notUpdatedURLs:r}}))}activate(t){return d(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(const o of e)n.has(o.url)||(await t.delete(o),r.push(o.url));return{deletedURLs:r}}))}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this._urlsToCacheKeys.get(e.href)}getIntegrityForCacheKey(t){return this._cacheKeysToIntegrities.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,n=this.getCacheKeyForURL(e);if(n){return(await self.caches.open(this.strategy.cacheName)).match(n)}}createHandlerBoundToURL(t){const n=this.getCacheKeyForURL(t);if(!n)throw new e("non-precached-url",{url:t});return e=>(e.request=new Request(t),e.params=Object.assign({cacheKey:n},e.params),this.strategy.handle(e))}}let et;const nt=()=>(et||(et=new tt),et);function rt(t){return nt().matchPrecache(t)}class ot extends v{constructor(t,e){super((({request:n})=>{const r=t.getURLsToCacheKeys();for(const o of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:n="index.html",cleanURLs:r=!0,urlManipulation:o}={}){const i=new URL(t,location.href);i.hash="",yield i.href;const a=function(t,e=[]){for(const n of[...t.searchParams.keys()])e.some((t=>t.test(n)))&&t.searchParams.delete(n);return t}(i,e);if(yield a.href,n&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=n,yield t.href}if(r){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(o){const t=o({url:i});for(const e of t)yield e.href}}(n.url,e)){const e=r.get(o);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}n(6272);const it="requests",at="queueName";class st{constructor(){this._db=null}async addEntry(t){const e=(await this.getDb()).transaction(it,"readwrite",{durability:"relaxed"});await e.store.add(t),await e.done}async getFirstEntryId(){const t=await this.getDb(),e=await t.transaction(it).store.openCursor();return null===e||void 0===e?void 0:e.value.id}async getAllEntriesByQueueName(t){const e=await this.getDb(),n=await e.getAllFromIndex(it,at,IDBKeyRange.only(t));return n||new Array}async getEntryCountByQueueName(t){return(await this.getDb()).countFromIndex(it,at,IDBKeyRange.only(t))}async deleteEntry(t){const e=await this.getDb();await e.delete(it,t)}async getFirstEntryByQueueName(t){return await this.getEndEntryFromIndex(IDBKeyRange.only(t),"next")}async getLastEntryByQueueName(t){return await this.getEndEntryFromIndex(IDBKeyRange.only(t),"prev")}async getEndEntryFromIndex(t,e){const n=await this.getDb(),r=await n.transaction(it).store.index(at).openCursor(t,e);return null===r||void 0===r?void 0:r.value}async getDb(){return this._db||(this._db=await B("workbox-background-sync",3,{upgrade:this._upgradeDb})),this._db}_upgradeDb(t,e){e>0&&e<3&&t.objectStoreNames.contains(it)&&t.deleteObjectStore(it);t.createObjectStore(it,{autoIncrement:!0,keyPath:"id"}).createIndex(at,at,{unique:!1})}}class ct{constructor(t){this._queueName=t,this._queueDb=new st}async pushEntry(t){delete t.id,t.queueName=this._queueName,await this._queueDb.addEntry(t)}async unshiftEntry(t){const e=await this._queueDb.getFirstEntryId();e?t.id=e-1:delete t.id,t.queueName=this._queueName,await this._queueDb.addEntry(t)}async popEntry(){return this._removeEntry(await this._queueDb.getLastEntryByQueueName(this._queueName))}async shiftEntry(){return this._removeEntry(await this._queueDb.getFirstEntryByQueueName(this._queueName))}async getAll(){return await this._queueDb.getAllEntriesByQueueName(this._queueName)}async size(){return await this._queueDb.getEntryCountByQueueName(this._queueName)}async deleteEntry(t){await this._queueDb.deleteEntry(t)}async _removeEntry(t){return t&&await this.deleteEntry(t.id),t}}const ut=["method","referrer","referrerPolicy","mode","credentials","cache","redirect","integrity","keepalive"];class ft{static async fromRequest(t){const e={url:t.url,headers:{}};"GET"!==t.method&&(e.body=await t.clone().arrayBuffer());for(const[n,r]of t.headers.entries())e.headers[n]=r;for(const n of ut)void 0!==t[n]&&(e[n]=t[n]);return new ft(e)}constructor(t){"navigate"===t.mode&&(t.mode="same-origin"),this._requestData=t}toObject(){const t=Object.assign({},this._requestData);return t.headers=Object.assign({},this._requestData.headers),t.body&&(t.body=t.body.slice(0)),t}toRequest(){return new Request(this._requestData.url,this._requestData)}clone(){return new ft(this.toObject())}}const ht="workbox-background-sync",lt=new Set,dt=t=>{const e={request:new ft(t.requestData).toRequest(),timestamp:t.timestamp};return t.metadata&&(e.metadata=t.metadata),e};self.skipWaiting(),self.addEventListener("activate",(()=>self.clients.claim())),x((function(t){return"navigate"===t.request.mode}),new class extends E{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(_),this._networkTimeoutSeconds=t.networkTimeoutSeconds||0}async _handle(t,n){const r=[];const o=[];let i;if(this._networkTimeoutSeconds){const{id:e,promise:a}=this._getTimeoutPromise({request:t,logs:r,handler:n});i=e,o.push(a)}const a=this._getNetworkPromise({timeoutId:i,request:t,logs:r,handler:n});o.push(a);const s=await n.waitUntil((async()=>await n.waitUntil(Promise.race(o))||await a)());if(!s)throw new e("no-response",{url:t.url});return s}_getTimeoutPromise({request:t,logs:e,handler:n}){let r;return{promise:new Promise((e=>{r=setTimeout((async()=>{e(await n.cacheMatch(t))}),1e3*this._networkTimeoutSeconds)})),id:r}}async _getNetworkPromise({timeoutId:t,request:e,logs:n,handler:r}){let o,i;try{i=await r.fetchAndCachePut(e)}catch(a){a instanceof Error&&(o=a)}return t&&clearTimeout(t),!o&&i||(i=await r.cacheMatch(e)),i}}({cacheName:"pages",plugins:[new q({statuses:[200]})]})),x((function(t){var e=t.request;return"style"===e.destination||"script"===e.destination||"worker"===e.destination}),new class extends E{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(_)}async _handle(t,n){const r=n.fetchAndCachePut(t).catch((()=>{}));n.waitUntil(r);let o,i=await n.cacheMatch(t);if(i)0;else{0;try{i=await r}catch(a){a instanceof Error&&(o=a)}}if(!i)throw new e("no-response",{url:t.url,error:o});return i}}({cacheName:"assets",plugins:[new q({statuses:[200]})]})),x((function(t){return"image"===t.request.destination}),new class extends E{async _handle(t,n){let r,o=await n.cacheMatch(t);if(o)0;else{0;try{o=await n.fetchAndCachePut(t)}catch(i){i instanceof Error&&(r=i)}0}if(!o)throw new e("no-response",{url:t.url,error:r});return o}}({cacheName:"images",plugins:[new q({statuses:[200]}),new class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:n,cachedResponse:r})=>{if(!r)return null;const o=this._isResponseDateFresh(r),i=this._getCacheExpiration(n);f(i.expireEntries());const a=i.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(s){0}return o?r:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const n=this._getCacheExpiration(t);await n.updateTimestamp(e.url),await n.expireEntries()},this._config=t,this._maxAgeSeconds=t.maxAgeSeconds,this._cacheExpirations=new Map,t.purgeOnQuotaError&&function(t){r.add(t)}((()=>this.deleteCacheAndMetadata()))}_getCacheExpiration(t){if(t===s())throw new e("expire-custom-caches-only");let n=this._cacheExpirations.get(t);return n||(n=new Q(t,this._config),this._cacheExpirations.set(t,n)),n}_isResponseDateFresh(t){if(!this._maxAgeSeconds)return!0;const e=this._getDateHeaderTimestamp(t);if(null===e)return!0;return e>=Date.now()-1e3*this._maxAgeSeconds}_getDateHeaderTimestamp(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),n=new Date(e).getTime();return isNaN(n)?null:n}async deleteCacheAndMetadata(){for(const[t,e]of this._cacheExpirations)await self.caches.delete(t),await e.delete();this._cacheExpirations=new Map}}({maxEntries:500,maxAgeSeconds:2592e3})]})),function(t={}){const e=t.pageFallback||"offline.html",n=t.imageFallback||!1,r=t.fontFallback||!1;self.addEventListener("install",(t=>{const o=[e];n&&o.push(n),r&&o.push(r),t.waitUntil(self.caches.open("workbox-offline-fallbacks").then((t=>t.addAll(o))))})),function(t){b().setCatchHandler(t)}((async t=>{const o=t.request.destination,i=await self.caches.open("workbox-offline-fallbacks");if("document"===o){return await rt(e)||await i.match(e)||Response.error()}if("image"===o&&!1!==n){return await rt(n)||await i.match(n)||Response.error()}if("font"===o&&!1!==r){return await rt(r)||await i.match(r)||Response.error()}return Response.error()}))}({pageFallback:"index.html"});var pt=new class{constructor(t,{forceSyncFallback:n,onSync:r,maxRetentionTime:o}={}){if(this._syncInProgress=!1,this._requestsAddedDuringSync=!1,lt.has(t))throw new e("duplicate-queue-name",{name:t});lt.add(t),this._name=t,this._onSync=r||this.replayRequests,this._maxRetentionTime=o||10080,this._forceSyncFallback=Boolean(n),this._queueStore=new ct(this._name),this._addSyncListener()}get name(){return this._name}async pushRequest(t){await this._addRequest(t,"push")}async unshiftRequest(t){await this._addRequest(t,"unshift")}async popRequest(){return this._removeRequest("pop")}async shiftRequest(){return this._removeRequest("shift")}async getAll(){const t=await this._queueStore.getAll(),e=Date.now(),n=[];for(const r of t){const t=60*this._maxRetentionTime*1e3;e-r.timestamp>t?await this._queueStore.deleteEntry(r.id):n.push(dt(r))}return n}async size(){return await this._queueStore.size()}async _addRequest({request:t,metadata:e,timestamp:n=Date.now()},r){const o={requestData:(await ft.fromRequest(t.clone())).toObject(),timestamp:n};switch(e&&(o.metadata=e),r){case"push":await this._queueStore.pushEntry(o);break;case"unshift":await this._queueStore.unshiftEntry(o)}this._syncInProgress?this._requestsAddedDuringSync=!0:await this.registerSync()}async _removeRequest(t){const e=Date.now();let n;switch(t){case"pop":n=await this._queueStore.popEntry();break;case"shift":n=await this._queueStore.shiftEntry()}if(n){const r=60*this._maxRetentionTime*1e3;return e-n.timestamp>r?this._removeRequest(t):dt(n)}}async replayRequests(){let t;for(;t=await this.shiftRequest();)try{await fetch(t.request.clone())}catch(n){throw await this.unshiftRequest(t),new e("queue-replay-failed",{name:this._name})}}async registerSync(){if("sync"in self.registration&&!this._forceSyncFallback)try{await self.registration.sync.register(`${ht}:${this._name}`)}catch(t){0}}_addSyncListener(){"sync"in self.registration&&!this._forceSyncFallback?self.addEventListener("sync",(t=>{if(t.tag===`${ht}:${this._name}`){0;const e=async()=>{let e;this._syncInProgress=!0;try{await this._onSync({queue:this})}catch(n){if(n instanceof Error)throw e=n,e}finally{!this._requestsAddedDuringSync||e&&!t.lastChance||await this.registerSync(),this._syncInProgress=!1,this._requestsAddedDuringSync=!1}};t.waitUntil(e())}})):this._onSync({queue:this})}static get _queueNames(){return lt}}("netdata"),yt=function(t,e){return pt._queueStore.getAll().then((function(n){return n.filter((function(n){var r=n.requestData;return r.method===e&&r.url.endsWith(t)}))})).then((function(t){return Promise.all(t.map((function(t){var e=t.id;return pt._queueStore.deleteEntry(e)})))}))};self.addEventListener("message",(function(t){if("removeBgSynced"===t.data.type){var e=t.data,n=e.url,r=e.method;return yt(n,r)}}));var vt,gt=function(t,e){return new Response(JSON.stringify({statusText:e,error:t}),{headers:{"Content-Type":"application/json"}})};self.addEventListener("fetch",(function(t){if("POST"===t.request.method){var e=t.request.headers.get("bgSync");if(e){var n=t.request,r=n.url,o=n.method;yt(r,o)}t.respondWith(fetch(t.request.clone()).catch((function(){return e?pt.pushRequest({request:t.request}).then((function(){return gt("Request pushed for background sync","bgSynced")})):gt("This action is disabled while app is offline","offline")})))}})),function(t){nt().precache(t)}([{'revision':null,'url':'/102.625f7fb40793758916f1.chunk.js'},{'revision':null,'url':'/129.1d087d9f7fb4bfa3cb72.chunk.js'},{'revision':null,'url':'/18.89d32c7ee15496f689f3.chunk.js'},{'revision':null,'url':'/193.6c0f51af21cfef8bce9d.chunk.js'},{'revision':null,'url':'/20.625d62276782f5f021c5.chunk.js'},{'revision':null,'url':'/241.dcc517f9189cb747150e.chunk.js'},{'revision':null,'url':'/252.c34ade07cc21e6fd9b8e.chunk.js'},{'revision':null,'url':'/264.296e4fe770b1756ed46b.chunk.js'},{'revision':null,'url':'/27.23f7ef0669e969b74f95.chunk.js'},{'revision':null,'url':'/27.384da655707f4c3b6153.css'},{'revision':null,'url':'/282.112f65cb06615e413141.chunk.js'},{'revision':null,'url':'/324.328e79181dbe63b612fa.chunk.js'},{'revision':null,'url':'/359.aefe439f4f7fb9a02e15.chunk.js'},{'revision':null,'url':'/360.a55ccd8aeddca3df6bd0.chunk.js'},{'revision':null,'url':'/43.36c13bf5ecbdd5373881.chunk.js'},{'revision':null,'url':'/447.99c65cf897c2e7a4e174.chunk.js'},{'revision':null,'url':'/451.aec55cb715f41fc72a63.chunk.js'},{'revision':null,'url':'/470.5ab9b3dc905a52581ba0.chunk.js'},{'revision':null,'url':'/502.517f9b221f4ed676c586.chunk.js'},{'revision':null,'url':'/510.ea4a79b1c75b8035f760.chunk.js'},{'revision':null,'url':'/514.af9132e943f111b25f1c.chunk.js'},{'revision':null,'url':'/533.7791da896bd0af46ae45.chunk.js'},{'revision':null,'url':'/564.2354fe745e05d75abbf2.chunk.js'},{'revision':null,'url':'/575.76dcaacb1c2276f86dea.chunk.js'},{'revision':null,'url':'/597.cb6f23362a28e63af220.chunk.js'},{'revision':null,'url':'/610.1001494a66c38627ff37.chunk.js'},{'revision':null,'url':'/654.67b0714ebd49a65d277c.chunk.js'},{'revision':null,'url':'/655.6b819502f310febec992.chunk.js'},{'revision':null,'url':'/663.a89b1206f4b293aabe4b.chunk.js'},{'revision':null,'url':'/676.4ce73c27b29d5f4672bb.chunk.js'},{'revision':null,'url':'/676.ccb665950325037c0dda.css'},{'revision':null,'url':'/723.44a07361b47c51d272dd.chunk.js'},{'revision':null,'url':'/723.cc9fa5f3bdc0bf3ab2fc.css'},{'revision':null,'url':'/765.e7fa6ef71a637cc3ae4d.chunk.js'},{'revision':null,'url':'/814.3332136a855b7f4da0ef.chunk.js'},{'revision':null,'url':'/817.cd5bd5294b2afab8578f.chunk.js'},{'revision':null,'url':'/837.bedee580bb54cbbff07c.chunk.js'},{'revision':null,'url':'/851.7d3f8a7b3ffc933098b8.chunk.js'},{'revision':null,'url':'/86.a471108ca7f6fc7080fe.chunk.js'},{'revision':null,'url':'/915.c5be29433632e593abf9.chunk.js'},{'revision':null,'url':'/934.627b38e3de836130d875.chunk.js'},{'revision':null,'url':'/952.8782ae4b4eb5f5d394ba.chunk.js'},{'revision':null,'url':'/969.64ecdcbb7383f4baee16.chunk.js'},{'revision':null,'url':'/977.f955167348f6c9037af1.chunk.js'},{'revision':'bcc58a986c2061583781d04e050787e1','url':'/agent.html'},{'revision':null,'url':'/app.04e10fe5e2e2b4abb9de.js'},{'revision':null,'url':'/app.0917ff2bf5d3b8b0678d.css'},{'revision':null,'url':'/editor.2c7891085085940ad860.chunk.js'},{'revision':'e08379c90f9e3b1fbb4258a6b5bae56c','url':'/favicon.ico'},{'revision':'394b1594f32cfdc919c0d19a3ed59004','url':'/index.html'},{'revision':'cf5f1842e7fd6ee134bb4590991bce72','url':'/local-agent.html'},{'revision':null,'url':'/npm.react.dom.5f194c629d90a617d1ac.js'},{'revision':'1672a7cb2791386207147c24045852ec','url':'/registry-access.html'},{'revision':'fcec2b200e165b8768d60ffeb08ede61','url':'/registry-alert-redirect.html'},{'revision':'21c4873805db3adee3ff03e98a4c9a4f','url':'/registry-hello.html'},{'revision':null,'url':'/runtime.519955e002a87da88924.js'},{'revision':'5dd984c78c1a70f4ca75372381c3f167','url':'/static/email/img/clea_badge.png'},{'revision':'f5e2223e3717188e5c00970e92299ce4','url':'/static/email/img/clea_siren.png'},{'revision':'22f52d199eb809360c56bf0b700b6b36','url':'/static/email/img/community_icon.png'},{'revision':'878dc9b7f75cec8d25b00296035fea03','url':'/static/email/img/configure_icon.png'},{'revision':'b9c0ff9e2f2315782a21c22052610bab','url':'/static/email/img/crit_badge.png'},{'revision':'72217b81d53177a1bafeb6874c8b7a3e','url':'/static/email/img/crit_siren.png'},{'revision':'97baf0add3259a28ef85eeef80b9df24','url':'/static/email/img/flood_siren.png'},{'revision':'f3773d6a68f16eb900899d4d77e7f000','url':'/static/email/img/full_logo.png'},{'revision':'1c2161a8ada89f2840bb49c7436ad814','url':'/static/email/img/header.png'},{'revision':'5069c93255c7e1ed005a14720d3373c2','url':'/static/email/img/isotype_600.png'},{'revision':'78f1e90b91baf6c7bc368aeb63c70815','url':'/static/email/img/label_critical.png'},{'revision':'d13f63a3d7041323a2c62620bb4bafbe','url':'/static/email/img/label_recovered.png'},{'revision':'6c7196c720144a76316f57e74e413613','url':'/static/email/img/label_warning.png'},{'revision':'0e52319aad8575d826c1de7b995c1c3d','url':'/static/email/img/reachability_siren.png'},{'revision':'d5264fe0e464ca63c47339de49573fce','url':'/static/email/img/warn_badge.png'},{'revision':'9ada8f1a03e8e337bc4d962ebb9c4feb','url':'/static/email/img/warn_siren.png'},{'revision':'7b0e67fc51980fa64b924a3faaebf8cd','url':'/static/img/list-style-image.svg'},{'revision':'d83d3c90a4263c8d600115238947cb8b','url':'/static/img/logos/os/alpine.svg'},{'revision':'ea2783c91526825a87d91cfb67b3880a','url':'/static/img/logos/os/arch.svg'},{'revision':'721e109311dcc775f1fc4548dab1c8ee','url':'/static/img/logos/os/centos.svg'},{'revision':'91335d2e37a1ba13cf2e72e27019a75f','url':'/static/img/logos/os/coreos.svg'},{'revision':'681aceb3743f4b8e655eeefa90eca437','url':'/static/img/logos/os/debian.svg'},{'revision':'9e7e2a8b1f48d4ab5b1900c097369c3a','url':'/static/img/logos/os/docker.svg'},{'revision':'d8dbc0537e6f97cec246e4f28b601ebf','url':'/static/img/logos/os/fedora.svg'},{'revision':'8b792ad3a91245301764356558799e30','url':'/static/img/logos/os/freebsd.svg'},{'revision':'0a6fc28cf7759f84e1d93c2d63b77f47','url':'/static/img/logos/os/freenas.svg'},{'revision':'511628407431ba05e6c5e8a832de06d7','url':'/static/img/logos/os/gentoo.svg'},{'revision':'3a15213ddffc497c558cabac9f1e2c2b','url':'/static/img/logos/os/kubernetes.svg'},{'revision':'ba7fb927e9783914045d7afd9e6882ad','url':'/static/img/logos/os/linux-small.svg'},{'revision':'0a4343315317f2ff0b790b7866edce88','url':'/static/img/logos/os/linux.svg'},{'revision':'f88a55fc3eb331ca7a6963e9eb6c1a98','url':'/static/img/logos/os/macos.svg'},{'revision':'ef9272e7450b383179627d5f0314fa60','url':'/static/img/logos/os/manjaro.svg'},{'revision':'9b072ec8e40c84a9131027a78bf235b6','url':'/static/img/logos/os/openstack.svg'},{'revision':'acf55d0ad532af1516d1737f7f9713ef','url':'/static/img/logos/os/opensuse.svg'},{'revision':'285b0145e5a52bf6eabc58ddb38ecb3d','url':'/static/img/logos/os/openwrt.svg'},{'revision':'4e134a6123ca0d8362e17f33044ba57c','url':'/static/img/logos/os/oracle.svg'},{'revision':'c04f55b3e9ec5d22c85645d27e1ed18b','url':'/static/img/logos/os/pfsense.svg'},{'revision':'309f0c6b9a270f8bd8801925fb9db0f5','url':'/static/img/logos/os/placeholder.svg'},{'revision':'3da67b7657fedcdded70bdf08bc9d08a','url':'/static/img/logos/os/raspberry-pi.svg'},{'revision':'e38b0ed9b6920282b6cf5a3625215916','url':'/static/img/logos/os/redhat.svg'},{'revision':'bc5e56c6fb341824f80daa604bad88d9','url':'/static/img/logos/os/suse.svg'},{'revision':'6b0c8d4e8e727fee4856daa3ba92ee81','url':'/static/img/logos/os/ubuntu.svg'},{'revision':'c52ffc08f2b2ea56e46cd884495d2148','url':'/static/img/logos/services/access-point.svg'},{'revision':'88d7dacdf13278537ad4e9d0aff23ed3','url':'/static/img/logos/services/activemq.svg'},{'revision':'37f2e886c72fbcd47b5ffb60733b77d8','url':'/static/img/logos/services/adaptec.svg'},{'revision':'b658355ba2fea4b5d6cbada0d0339306','url':'/static/img/logos/services/alerta.svg'},{'revision':'b39016f9bee1ce8648f67791a98817dc','url':'/static/img/logos/services/apache.svg'},{'revision':'3b5ade779f8d749d48db9b82aa943b61','url':'/static/img/logos/services/apc.svg'},{'revision':'e9433c11ec53f07466dbd9ed4d6fd751','url':'/static/img/logos/services/aws-sns.svg'},{'revision':'ecebea115e1ab4bead943b8962317022','url':'/static/img/logos/services/aws.svg'},{'revision':'55df8093275489f75fe20fa6c222216d','url':'/static/img/logos/services/beanstalkd.svg'},{'revision':'ed0a1dd09b109d2610baa566e3d402d0','url':'/static/img/logos/services/boinc.svg'},{'revision':'1312c86e65d32bc28d278d961887a628','url':'/static/img/logos/services/btrfs.svg'},{'revision':'146643d089f1e17457a5c8fdf1013b4c','url':'/static/img/logos/services/ceph.svg'},{'revision':'627837dc14e607ad41b6c4b5cef8b561','url':'/static/img/logos/services/chrony.svg'},{'revision':'19b1e40e32bb21d3d6273b4aae4a88b4','url':'/static/img/logos/services/cloud.svg'},{'revision':'df2ea1496b38af73fd91511b3688e15d','url':'/static/img/logos/services/concul.svg'},{'revision':'87876ce57a48c3f9e3a870cd78860c12','url':'/static/img/logos/services/consul.svg'},{'revision':'89588c4cdc6110051867c4b332e03e2c','url':'/static/img/logos/services/container.svg'},{'revision':'42d91a75181a1e0054df5cbef8b19742','url':'/static/img/logos/services/couchdb.svg'},{'revision':'264bc7ec295e4f9ad8fae82c3e86ded9','url':'/static/img/logos/services/cups.svg'},{'revision':'21e5c11a69d6efac921261f84f9f6df8','url':'/static/img/logos/services/data-encryption.svg'},{'revision':'cec1f9696feaadad408bfa8ca3927748','url':'/static/img/logos/services/ddos.svg'},{'revision':'f8389ca1a741a115313bede9ac02e2c0','url':'/static/img/logos/services/discord.svg'},{'revision':'1f5925ba222bad29609c3ca13ace2a99','url':'/static/img/logos/services/dns.svg'},{'revision':'d36e442f9a9c2697a460aa9f20a6f2bc','url':'/static/img/logos/services/docker.svg'},{'revision':'0f3ae584bfe2858b76bf3d118bebbf97','url':'/static/img/logos/services/dovecot.svg'},{'revision':'616f3fbc10d44774dac9269fd9295d07','url':'/static/img/logos/services/elasticsearch.svg'},{'revision':'feef131e8226cab9c345db605ed9a353','url':'/static/img/logos/services/email.svg'},{'revision':'28250741b5ea758b05bc551c66f0034f','url':'/static/img/logos/services/exim.svg'},{'revision':'4f454fc8b9fb38a613d711d83e2b1de1','url':'/static/img/logos/services/fail2ban.svg'},{'revision':'8cd2efa3851a165fbdfe766b2fef5294','url':'/static/img/logos/services/flock.svg'},{'revision':'eb6a015ece746762e9daa21bab1fe352','url':'/static/img/logos/services/fluentd.svg'},{'revision':'a33e398da7592844b73596a119954d16','url':'/static/img/logos/services/fping.svg'},{'revision':'e2580c9d7c50d69452101a884bac1552','url':'/static/img/logos/services/freeradius.svg'},{'revision':'ed4decb646a1338a4de9d7d30046ca50','url':'/static/img/logos/services/fronius.svg'},{'revision':'8d2f6602566650a7320a84996cf85d64','url':'/static/img/logos/services/gnu-freeipmi.svg'},{'revision':'48a303cfacef14ec35c336700bc333b8','url':'/static/img/logos/services/golang.svg'},{'revision':'24119b2c7bc0ca689b3acff70add2dfb','url':'/static/img/logos/services/grafana.svg'},{'revision':'3222dddb4457a92b49aa0d181d15be75','url':'/static/img/logos/services/graphite.svg'},{'revision':'515578af549c0541e1a175401d0b1487','url':'/static/img/logos/services/haproxy.svg'},{'revision':'caa9e97043c09e7f41d8140cd12a588d','url':'/static/img/logos/services/hub.svg'},{'revision':'23380102fadd7b7fb5f5eb4867484cff','url':'/static/img/logos/services/icecast.svg'},{'revision':'e0d3a56bbd7c3f009bdfafd6f867c0a0','url':'/static/img/logos/services/influxdb.svg'},{'revision':'e4987ef9ecf165d37a1599bd34f7a32c','url':'/static/img/logos/services/ipfs.svg'},{'revision':'514198d5f8bfa868543c56dfda56c5da','url':'/static/img/logos/services/irc.svg'},{'revision':'ce975a0ba008f30d0c14939f7e0f827d','url':'/static/img/logos/services/isc.svg'},{'revision':'07140ef847fe0bc0e911ade34c55b184','url':'/static/img/logos/services/kafka.svg'},{'revision':'b87b04cbf08cf172f165038f1c0e46ae','url':'/static/img/logos/services/kairosdb.svg'},{'revision':'4fd5b032dcf53217880e08898d0b6b6a','url':'/static/img/logos/services/kavenegar.svg'},{'revision':'63eb0a355174ebdee113dfc29ff5deb9','url':'/static/img/logos/services/key-file.svg'},{'revision':'3a15213ddffc497c558cabac9f1e2c2b','url':'/static/img/logos/services/kubernetes.svg'},{'revision':'db604bbefea8679c6e92de00e90fff2d','url':'/static/img/logos/services/libreswan.svg'},{'revision':'1f5e6a545bf2334ef55f0e5fd9b91813','url':'/static/img/logos/services/libvirt.svg'},{'revision':'0ed40155ecbac111c5a7fae1d5daeebf','url':'/static/img/logos/services/lighthttpd.svg'},{'revision':'0a4343315317f2ff0b790b7866edce88','url':'/static/img/logos/services/linux.svg'},{'revision':'9718b33406088daa4454cba53a056daa','url':'/static/img/logos/services/litespeed.svg'},{'revision':'cb6a3538307e259541f9534ec860b1c2','url':'/static/img/logos/services/lm-sensors.svg'},{'revision':'1fdd6d0222b695e7b7c12a331201ff32','url':'/static/img/logos/services/load-balancer.svg'},{'revision':'aa4fa3f5f9a6008f133eed5f84593f9c','url':'/static/img/logos/services/log-file.svg'},{'revision':'13b57ad683334e6ad6966d6056b588b0','url':'/static/img/logos/services/logstash.svg'},{'revision':'ff0c16aebe4bb98cf9e7a5298c3fde18','url':'/static/img/logos/services/lxd.svg'},{'revision':'1b8e06489889edfb34285fe46c7b5292','url':'/static/img/logos/services/mariadb.svg'},{'revision':'2bcccabfb9f9a61687d297d69dca3ecf','url':'/static/img/logos/services/memcached.svg'},{'revision':'ee9729556cc02b21cb86fb832d9912b4','url':'/static/img/logos/services/messagebird.svg'},{'revision':'554c7d4bfd63a3da33773978fd291c06','url':'/static/img/logos/services/mongodb.svg'},{'revision':'9a9f461839a56d2ff17154a9a6e7af94','url':'/static/img/logos/services/monit.svg'},{'revision':'0650308601e047a9d10849bfb5b14b9e','url':'/static/img/logos/services/monitoring.svg'},{'revision':'cb6f4722f30229d118df97232dfd1bb5','url':'/static/img/logos/services/mysql.svg'},{'revision':'88a4b79f7a62e579744305c60b043192','url':'/static/img/logos/services/netfilter.svg'},{'revision':'bff32cb5a58a4094689e21779eb7c339','url':'/static/img/logos/services/network-protocol.svg'},{'revision':'4f067ece273f0d3b7463431243c32acd','url':'/static/img/logos/services/network.svg'},{'revision':'4df305d04c05a610efb748f0b40389f4','url':'/static/img/logos/services/nfs.svg'},{'revision':'005f7d382db87e26219f39df46d6821c','url':'/static/img/logos/services/nginx-plus.svg'},{'revision':'88fa37ab9246ae06ed55393cac16d284','url':'/static/img/logos/services/nginx.svg'},{'revision':'ced49ab6b19cc20a8a79986040723b3e','url':'/static/img/logos/services/notification-bell.svg'},{'revision':'544013e6e5ca11faca9dc5168646c6f6','url':'/static/img/logos/services/nsd.svg'},{'revision':'6625b96ed3de57f8d650f4b2f74f2646','url':'/static/img/logos/services/ntpd.svg'},{'revision':'2e3fa402d78b86a353bebfac81e83cda','url':'/static/img/logos/services/nut.svg'},{'revision':'0e32d0a7061b73cb22a6c89ac1076203','url':'/static/img/logos/services/nvidia.svg'},{'revision':'6cb3393e07eef198cee8bf3d4aba85e6','url':'/static/img/logos/services/openldap.svg'},{'revision':'48ec69a3e8ccac0a39623a33c121df6e','url':'/static/img/logos/services/opensips.svg'},{'revision':'3a6a3ba2db69e1d00073f0fd119fe7a9','url':'/static/img/logos/services/opentsdb.svg'},{'revision':'cb690dd03f447f755bd65bfb5eab31d6','url':'/static/img/logos/services/openvpn.svg'},{'revision':'3ffc09fdda22563262e755b751048948','url':'/static/img/logos/services/openzfs.svg'},{'revision':'4e134a6123ca0d8362e17f33044ba57c','url':'/static/img/logos/services/oracle.svg'},{'revision':'ec7d7bd17fcd96e0e397c7afbe9b0b86','url':'/static/img/logos/services/pagerduty.svg'},{'revision':'e58a44749755f5b3fc6121128f565d52','url':'/static/img/logos/services/php-fpm.svg'},{'revision':'ad7c4cbd376944596a970a12cf9a4b0f','url':'/static/img/logos/services/placeholder.svg'},{'revision':'fc6874e19ea3b14f186713711a6a807a','url':'/static/img/logos/services/postfix.svg'},{'revision':'9318272b34b560d9180cc7b3a05c469b','url':'/static/img/logos/services/postgresql.svg'},{'revision':'d825c708929a70d1fe6afeb04026c52a','url':'/static/img/logos/services/powerdns.svg'},{'revision':'f22e171bc3012a1cb6aec8383d2dacba','url':'/static/img/logos/services/processor.svg'},{'revision':'074db273ef932a67d91b58e7ba1f49d3','url':'/static/img/logos/services/prometheus.svg'},{'revision':'fc96e1058c107b8a706f2400d2eebd18','url':'/static/img/logos/services/prowl.svg'},{'revision':'f76d643a46b74c411a26abb9df6dc13e','url':'/static/img/logos/services/proxysql.svg'},{'revision':'e824c97149c47467e3a892c7f049ea47','url':'/static/img/logos/services/puppet.svg'},{'revision':'96d29544af13d15bf087628e61d00a01','url':'/static/img/logos/services/pushbullet.svg'},{'revision':'f3406eb327f651cbb68f8e2e607f2ade','url':'/static/img/logos/services/pushover.svg'},{'revision':'ce86ca8f0b89ced3af53b8e153fb834e','url':'/static/img/logos/services/qos.svg'},{'revision':'e5b7e2321d339b19425bba6a81807c55','url':'/static/img/logos/services/rabbitmq.svg'},{'revision':'3da67b7657fedcdded70bdf08bc9d08a','url':'/static/img/logos/services/raspberry-pi.svg'},{'revision':'4aaff929af8a78f0a5e3c1b27a0b6725','url':'/static/img/logos/services/redis.svg'},{'revision':'62a26d4b8ba048586ea156c370232f4e','url':'/static/img/logos/services/rethinkdb.svg'},{'revision':'bc32d1e8b2f2041ee9c4f17ffe7fc5e9','url':'/static/img/logos/services/retroshare.svg'},{'revision':'4754e936fdc04775f41e97e8ecf43476','url':'/static/img/logos/services/rocketchat.svg'},{'revision':'7b3d7a3d2568050ffc6b66a63a840675','url':'/static/img/logos/services/samba.svg'},{'revision':'67a062ebdfeda9b78b4f7891bff232f2','url':'/static/img/logos/services/server-connection.svg'},{'revision':'838e94185a05b5a7e49342e15a7f7bab','url':'/static/img/logos/services/slack.svg'},{'revision':'da52172208b4aec912606dee840b13fc','url':'/static/img/logos/services/sma.svg'},{'revision':'b0082760ed739c2590d402cac899bbfd','url':'/static/img/logos/services/smstools3.svg'},{'revision':'54e21eda70fe847d4f78407a6db25309','url':'/static/img/logos/services/solr.svg'},{'revision':'0c5fb25f01e875d092de9e438d2ea102','url':'/static/img/logos/services/spigot.svg'},{'revision':'449e8efbf3e642eecc4d8e0b1fe7cb1d','url':'/static/img/logos/services/springboot.svg'},{'revision':'80b8939c121fe88cafaa77c9ebe6a42a','url':'/static/img/logos/services/squid.svg'},{'revision':'e0eb22ed4bda376d3507b6419821f4cf','url':'/static/img/logos/services/statsd.svg'},{'revision':'633d9a54c151ebbf900072edfb0c4b1d','url':'/static/img/logos/services/stiebel.svg'},{'revision':'6b3ea1af797d26f2e6edfb09bc625974','url':'/static/img/logos/services/systemd.svg'},{'revision':'74ac39199f7cd7e51317c7dcec8ffa38','url':'/static/img/logos/services/telegram.svg'},{'revision':'fd469d8c5263d5779aeb2438bcc522d1','url':'/static/img/logos/services/temperature.svg'},{'revision':'600debbf4e6330d59f7766a6745ad7e9','url':'/static/img/logos/services/tomcat.svg'},{'revision':'5f2ce630abe1c94babea5c580beae308','url':'/static/img/logos/services/tor.svg'},{'revision':'21ada136fb2dce8fe83adef6b0a5b480','url':'/static/img/logos/services/traefik.svg'},{'revision':'6a4543f55f5e77426d62ea8a70b8d4b3','url':'/static/img/logos/services/twilio.svg'},{'revision':'5bbb626cf4089b75bca96b79a902ea3c','url':'/static/img/logos/services/unbound.svg'},{'revision':'fb38f4938299ffc15a7f2f7d03c0b892','url':'/static/img/logos/services/uwsgi.svg'},{'revision':'b4ed2bd8f11af926ff3cb36c09b4c685','url':'/static/img/logos/services/varnish.svg'},{'revision':'808ea0cb2c5ca2c326e01db195886a3b','url':'/static/img/logos/services/veritas.svg'},{'revision':'6b5671ca02ac46b24a4855c213a9aa8b','url':'/static/img/logos/services/xen.svg'},{'revision':'2979340c1e70ef3704e49b02636adb38','url':'/static/img/mail/isotype.png'},{'revision':'fe6f76b747c61fa79f928c7f6065b2d6','url':'/static/img/mail/isotype.svg'},{'revision':'b3b7f9062d7a7e513bd5b2fc2b70b6ca','url':'/static/img/mail/logotype.png'},{'revision':'3f248bee4fd9e28b502a9a7b5bbb6a67','url':'/static/img/mail/logotype.svg'},{'revision':'e29b616a92eedb81e384399aff80c4f0','url':'/static/img/no-filter-results.png'},{'revision':'7153f80147c2569abe9ab1c0a8eb1662','url':'/static/img/no-nodes-room.svg'},{'revision':'6e19f3a1d042f942197670d18981ee75','url':'/static/img/rack.png'},{'revision':'7ec80a5bbf8954caa7923824f2d328f9','url':'/static/site/pages/holding-page-503/holding-page-503.css'},{'revision':'7989e3f7e500355800fc92b4d52d8987','url':'/static/site/pages/holding-page-503/holding-page-503.svg'},{'revision':'18209f4fb770a5449a944bdfc04eb1cb','url':'/static/site/pages/holding-page-503/index.html'},{'revision':'2e0c62f8ec8a99a9c75c3097f3090b9a','url':'/static/site/pages/holding-page-503/multiple-logos-group.svg'},{'revision':'c447e6faaa6d064c23f19305e614dd6c','url':'/static/site/pages/holding-page-503/netdata-logo-white.svg'},{'revision':'348e5a20b0cee6622c9f2219ff05a19c','url':'/static/site/pages/holding-page-503/reset.svg'},{'revision':'2dc864bf27446c99badebaee5832aeae','url':'/static/splash.css'}]),function(t){const e=nt();x(new ot(e,t))}(vt)}()}(); \ No newline at end of file
diff --git a/web/server/web_client.c b/web/server/web_client.c
index 92d97e8a..456de689 100644
--- a/web/server/web_client.c
+++ b/web/server/web_client.c
@@ -22,8 +22,8 @@ inline int web_client_bearer_required(struct web_client *w) {
w->response.data->content_type = CT_TEXT_PLAIN;
buffer_flush(w->response.data);
buffer_strcat(w->response.data, "An authorization bearer is required to access the resource.");
- w->response.code = HTTP_RESP_UNAUTHORIZED;
- return HTTP_RESP_UNAUTHORIZED;
+ w->response.code = HTTP_RESP_PRECOND_FAIL;
+ return HTTP_RESP_PRECOND_FAIL;
}
static inline int bad_request_multiple_dashboard_versions(struct web_client *w) {